LXD,基于 Linux 容器的虚拟机

2016-04-17 11:24:52 +08:00
 kaneg
这个技术是 Ubuntu 母公司推出的,很早就看到过,不过没有深入学习,最近貌似已经到 2.0 ,应该是很稳定了。尽管这个技术的底层是用的是和 docker 一样的 Linux 容器,但在使用的体验中更接近一个全主机虚拟机。而比起全虚拟机来说,其秒级的启动速度则是无与伦比。

目前这个东东在开发和测试环境中如果用的好的话,应该可以极大地降低成本和部署时间。
链接: http://www.ubuntu.com/cloud/lxd
10552 次点击
所在节点    Linux
22 条回复
whatot
2016-04-17 11:34:33 +08:00
2.0 也是上周一刚发布的,现在用那就真是小白鼠了

另外这是官网, https://linuxcontainers.org/lxd/,不是上面那个
xhowhy
2016-04-17 11:37:46 +08:00
好用吗
xiaoyu9527
2016-04-17 11:38:36 +08:00
性能如何?
kaneg
2016-04-17 11:59:30 +08:00
因为是基于 Linux 容器的,它里面的进程归根到底都是主机里的进程,所以相对全虚拟技术,它的性能是接近主机的。
kaneg
2016-04-17 12:04:57 +08:00
如 @whatot 所指, 其技术网站是在 https://linuxcontainers.org/lxd/。
代码在 Github 上: https://github.com/lxc/lxd
defunct9
2016-04-17 12:06:25 +08:00
docker 两种底层, lxc 或者自己的。 lxd 基于 lxc
babytomas
2016-04-17 13:12:08 +08:00
说到 Ubuntu ,我就又想到了一件事。

再过 3 天之后, Ubuntu 16.04 就要发布了。
jarlyyn
2016-04-17 13:23:10 +08:00
C 社的东西都敢用……

从 unity 准确的说是 ubuntu. One 之后,哪个东西成功过…
raysonx
2016-04-17 14:14:50 +08:00
有時間去關注一下。
直覺上,這是一個加強版的 openvz
neoblackcap
2016-04-17 17:43:28 +08:00
用了 lxc 根本就不可能像虚拟机,至少你 linux 内核能动?你一个实例导致 kernel panic 立刻全部爆炸。

有强隔离需求的同学请使用 kvm, xen, hyper-v 等虚拟化技术。对于普通的 container 需求,我认为用 docker 就好了,毕竟 docker 已经有很多人用了,坑都填了不少,网上能找到解决方案。
kaneg
2016-04-17 18:22:49 +08:00
@neoblackcap 说它不是虚拟机我认同,比较是基于 LXC 的。但比起 docker 来说就不一样了, docker 的目标是应用基本的隔离,而 lxd 则是模仿 host 级别的隔离。至少在表现出来的行为,跟一个持续运行的 linux host 没有什么太大差别。
hjc4869
2016-04-17 18:46:31 +08:00
完全虚拟化的 vm 启动 Ubuntu 也只要 3 秒不到啊。。。
janxin
2016-04-17 20:20:44 +08:00
@kaneg 本质上区别不大,比如 OpenVZ
fcicq
2016-04-17 22:16:11 +08:00
user NS 的隔离可靠性和 illumos 系还差的远. 不使用传统虚拟化基础方法部署不可信 docker 镜像就是玩火.
neoblackcap
2016-04-17 22:35:41 +08:00
@kaneg 我倒想知道它如何模仿 OS 级别的隔离?只要基于 lxc ,那么他们必将共用一个内核啊,那你其中一个程序导致 kernel panic 就会全部爆炸啊,这个对不对?再模仿也不能超越技术的限制嘛。
基于 lxc 的应用不是没有, infoq 上面雪球就作过一场演讲,讲的就是他们 IO 密集型的应用都是用 lxc 部署管理的,其他 CPU 密集型服务则是 docker (原话是 DB 是用 lxc ,应用使用 docker)。

回到你所说的用 lxd 会提高开发效率的话题,我不认可,很多开发 linux 程序的同学都是用 mac 的, docker 现在至少是原生支持 OS X 了。在 OS X 上用 LXD 必然会用到 VM ,那么为什么不直接用 VM ,写一个初始化的部署脚本或者是制作一个公用的镜像又不是什么难事。去到运维的阶段,我相信运维的人员会对 docker 更加熟悉。 LXD 跟 docker 比起来没有什么优点,它不能完全取代 VM ,但在进程层面又比不过 docker ,那么为什么要用它?它这个定位我觉得是没有抓到痛点。
JohnDeng
2016-04-17 23:18:05 +08:00
@neoblackcap 哈哈哈哈其实 Docker 也是自己利用 Virtualbox API 去做工具启动而已本质上也还是 VM 。 LXD 需要生态,生态自然也是 Docker 的优势。但不管是哪种,规模不大的应用上 Container 都是杀鸡用牛刀,白白提高复杂度。
neoblackcap
2016-04-17 23:25:41 +08:00
@JohnDeng 不是吧,最近出个了 beta ,那是原生啊, windows 也是啊,我觉得是一个 syscall 的 wrapper
xiaoyu9527
2016-04-18 09:13:50 +08:00
也就是跟 OPENVZ 类似的虚拟化?

那种跟虚拟主机差不多呀。
JohnDeng
2016-04-18 10:54:30 +08:00
@neoblackcap 你是说 Docker toolbox 吧
neoblackcap
2016-04-18 15:02:43 +08:00
@JohnDeng 不是,再看了一下他们的日志,原来是用系统自带的虚拟化,地址在这里 https://blog.docker.com/2016/03/docker-for-mac-windows-beta/

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

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

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

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

© 2021 V2EX