可以使用“容器”技术将单台机器上的网站与底层操作系统相互隔离(即不使用 ESX 等裸机虚拟机管理程序),例如:
- chroot
- 开放VZ
- 虚拟机
- 西恩
- FreeBSD 监狱
- Solaris 区域
- LXC(Linux 容器)
- (... 详情请见此处...)
每种方法的优点、缺点和其他重要细节是什么?
答案1
chroot
优点:
- 传统上用作隔离容器
- 相同的操作系统,因此没有虚拟化开销
- 有大量的文档存在,例如Apache 的 chroot
缺点:
- 需要所有系统二进制文件的副本
- 并非设计目的 -如果用户可以成为 root,他们就可以突破
答案2
来自华纳的链接是一个很好的起点:)
如果你只使用Linux:
开放VZ
- 需要内核补丁
- 最新发行版并不真正支持(例如 Ubuntu Lucid)
龙芯
- 在标准内核上运行
- 配置非常简单(例如http://www.kwalinux.nl/lxc-containers/935/)
事实上,这些都是更奢侈的 chroot 选项:您实际上并没有具有自己资源的独立 VM(虚拟机)(即,它们都使用相同的磁盘)。
freeBSD jail 和 Solaris zone 的“缺点”在于它们或多或少是专有的,并且用户群较小。此外,使用 jail 和 zone 时,您没有真正独立的 VM。
如果您想要完全虚拟化并且有闲钱:
VMware 的 vSphere
是我的选择。通过完整许可,您可以获得以下不错的选择:
- 精简配置(仅声明磁盘空间真的使用)
- HA(高可用性:比如当底层硬件崩溃时移动虚拟机)
- vMotion(动态移动虚拟机)
- DRS(分布式资源调度程序)
- DPM(分布式电源管理)
- 分布式交换机(集中交换机配置)。
最终,许可成本将抵消服务器设置、硬件和功耗方面的成本降低,当然这取决于虚拟化程度。在我看来,vSphere 最大的缺点是依赖于管理视窗客户端(运行 vCenter)。
西恩
我相信您仍然使用模板来设置 VM(虚拟机),但使用 VMware 可以很容易地设置 kickstart 服务器和 PXE 启动/kickstart 新 VM。
简而言之:这完全取决于您的需求:)