Intel Clear Containers

2015-05-20 14:04:48 +08:00
 efi

与内核紧耦合的透明虚拟机。

启动速度150毫秒菊快无比。

安全性完爆Docker。

试用:

$ sh boot-cow.sh
  # lkvm run -k ./vmlinux.container -m 1024 -c 6 --name guest-28299
  Warning: ./vmlinux.container is not a bzImage. Trying to load it as a flat binary...
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.0.0-16.container (mockbuild@kojibuild03) (gcc version 4.9.2 (Clear Linux Software for Intel Architecture) ) #1 SMP Tue May 12 17:20:44 UTC 2015
[    0.000000] Command line: noapic noacpi pci=conf1 reboot=k panic=1 i8042.direct=1 i8042.dumbkbd=1 i8042.nopnp=1 console=ttyS0 earlyprintk=serial i8042.noaux=1 rw tsc=reliable no_timer_check noreplace-smp  root=/dev/plkvm0p3  init=/usr/lib/systemd/systemd initcall_debug rootfstype=ext4 rootflags=dax,data=ordered dhcp rcupdate.rcu_expedited=1 console=hvc0 quiet dhcp
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000ffffe] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000003fffffff] usable
[    0.000000] bootconsole [earlyser0] enabled
Check discovery
Discovery
Check discovery
Check response
Response

Clear Linux Software for Intel Architecture clr hvc0
clr login:

实现原理见 http://lwn.net/SubscriberLink/644675/5be656c24083e53b/

主页 https://clearlinux.org/ Clear Linux是Intel结合OpenStack搞得一些虚拟化花样。核心就是kvmtool,几个内核patch,和malloc_trim()。

6431 次点击
所在节点    Linux
32 条回复
twl007
2015-05-21 03:13:17 +08:00
@Andiry 但是这样的话其实多了性能开销 而且NVM呃 我现在如果有PCI-E SSD的话要怎么开启这个特性……


@efi 放哪有关系么 - - 东西好不好用跟他放的地方有问题么

再者我是没用过 但是我看了他自己的公开文档了 我只是引用了文档里面的话 他文档里面写的不是么 如果文档不更新放的地方再好有什么用 还有我基于文档的理解有问题么 而且那文档还是你发出来的 Orz - - ||||

http://lwn.net/SubscriberLink/644675/5be656c24083e53b/

Performance in this regard is primarily measured using two metrics: startup time and memory overhead. The first is about how quickly your data center can respond to an incoming request (say a user logs into your email system); the second is about how many containers you can pack on a single server.

他们自己说的 按照他们的标准DAX有什么贡献 实现这个减小内存消耗+提升安全性 但是我个人意见是会影响到回复请求的能力 毕竟你再怎么模拟底层依旧是传统的硬盘 而且块设备的操作方式逻辑明显跟传统硬盘差的远 这样不会有影响么
efi
2015-05-21 03:30:36 +08:00
@twl007 你自己找了一个五年前LWN发的报道当作文档……
文档在这 http://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/tree/tools/kvm/README?h=tools/kvm

这里用DAX跟NVM不NVM没任何关系。虚拟机一大开销是guest里面的块设备又要穿过一遍guest的page cache和VMM,这里只是借用DAX的功能去掉中间环节。
twl007
2015-05-21 03:49:02 +08:00
@efi 是你给出的链接 里面就有对于DAX的链接 不是我找的 - 0 -

而且他的目的不止如此吧 按他说的第一是减小内存消耗 第二点就是可以分割不同的虚拟机对于同镜像的操作 按他说的分割完后一旦某个虚拟机重启其所有的操作都会还原 不会影响到原始镜像

而且他靠设备驱动去在虚拟机里面模拟块设备这样不会有额外开销么 而且他这个设计也没说出是针对块设备访问开销设计的 只是借用DAX来实现zero-copy, no-memory-cost solution for getting all operating-system code and data into the guest's user space

不过可能本机真的有硬件NVM的时候去掉他这个模拟性能估计会好的多了 - - |||| 不过NVM必须是PCI-E SSD么…… 如果普通的ssd也行的话倒是可以考虑试试看 PCI-E太贵了……
twl007
2015-05-21 03:58:06 +08:00
@efi 囧 是我错了…… 我对块设备的理解太狭隘了 呃 的确是加速了某一方面的快设备的访问速度 但是有一个问题时如果我可以直接访问虚拟机的物理内存 不通过VMM 那么每个虚拟机所占用的实际无力内存大小是动态调整的么
Andiry
2015-05-21 04:07:53 +08:00
@twl007 NVM就是memory,DAX就是直接读写它而不通过block layer,要直接读写就必须能够byte-addressable,NAND SSD再快也不是NVM

这里主要用处还是减少内存消耗,性能当然有提升但我认为不是主要的,因为最后还是要转换成disk读写
twl007
2015-05-21 04:29:47 +08:00
@Andiry 唔 - - 我现在也这么觉得…… 不过NVM的话不是非易失性存储器么 我查了一下硬件标准也有 系统支持的也差不多了 好像记得看服务器指标的时候看过NVM支持 不过好贵 - - ||||| 看文档说能提供系统突然断电后再开机继续从断电前的状态启动……

不过他这样支持DAX了 其不是意味着虚拟机一但初始化之后那一大段内存地址就固定了 后期就不能再根据不同的虚拟机占用不同来动态调整实际物理内存占用了 不知道我这么理解有没有错 0 0
Andiry
2015-05-21 04:46:49 +08:00
@twl007 mmap的地址是固定的(其实也可以remap),但是不等于数据一定要在内存中。不访问的page可以不map,访问过的page也可以swap out。无非是再次访问的时候多一次page fault。
twl007
2015-05-21 04:56:19 +08:00
@Andiry 那么这就是说将内存管理交给Linux自己了 而他不在负责具体的虚拟机内存管理 一旦初始化完虚拟机分配玩内存就完事了?

因为最近一直在接触vmware的一套 根据vmware自己的说法他们可以动态分配物理内存给虚拟机 甚至可以通过故意挤压某些空闲虚拟机令其释放内存给其他的虚拟使用

可能这个设计的就是轻量级虚拟机所以并不需要考虑这么多的东西?
Andiry
2015-05-21 05:21:36 +08:00
@twl007 VMware那篇论文我也看过,上个世纪的东西了。内部机制早就改了
pyKun
2015-05-21 13:46:39 +08:00
这个事情有应用的前途,osv 的人要惊呆了...

还有国内的dvm

下周赶紧立个项目研究下这事...
qiukun
2015-05-21 17:56:21 +08:00
@efi 去北邮人 linux 版发大概有人应
twl007
2015-05-22 03:48:02 +08:00
@Andiry 查了一下文档 vmware现在依旧是动态管理 0 0 按他说的很有效 = = ||||| 等我跑个几百个虚拟机就知道有效没有了 囧

http://www.vmware.com/files/pdf/mem_mgmt_perf_vsphere5.pdf

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/192451

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX