我知道这里有大量的虚拟化线程,但它们似乎都比较旧,我想为 2012 年准备好一个全新的线程。
我目前正在评估 Xen、OpenVZ 和 KVM 的虚拟化用途。我很难决定使用哪个。运行此操作系统的操作系统最好是 Debian。客户操作系统将全部基于 *nix,大多数也是 Debian。不需要 Windows、macos 或其他奇特的东西。我有一台服务器,它有 16GB 的 RAM 和一个 xeon 处理器。我还有一个软件 raid 1 磁盘配置,具有 3TB 的 raid 容量。
我正在设置此环境,以便根据信任级别和软件版本将当前服务器托管的站点分开。例如,我知道有些站点可能存在安全漏洞,其他站点应该是完全安全的,还有一些站点需要旧版本的 PHP。
总而言之,我想设置 3 个不同的客户端:一个用于受信任的客户端,一个用于不受信任的客户端,一个用于旧的 php 客户端。
我的问题部分在于如何正确管理备份:我喜欢使用 Bacula 或 duplicity 来管理我的备份,因为它们具有增量加密备份。我不希望我的任何客户站点因为备份过程而离线。我也只有 100 GB 的远程异地备份空间,所以我想明智地使用它,而不是只是把我的所有东西都转储到那里。从备份中恢复应该很快 [无需下载巨大的 iso 文件!]。
我也想正确分配磁盘空间。我读过很多关于 LVM 的精彩文章,以及它如何让人们的生活更轻松。假设有一个 raid 1 [raid1 下有两个 3TB 磁盘],您将如何布置分区图?
如果有人能够与我分享他的个人经验、设置配置以及关于不同虚拟化平台的成功/失败案例,我将非常高兴,以实现与我类似的目标。
谢谢!
答案1
我建议使用 KVM - 这样您的虚拟机管理程序和 Dom0 就可以成为您熟悉的标准 Debian。使用 KVM,虚拟机管理程序和 Dom0 是同一台机器 - KVM 背后的设计原则之一是,最好的虚拟机管理程序是功能齐全的 Linux 系统。
使用 Xen,虚拟机管理程序在裸机上运行,并且 Dom0 与所有客户 DomU 一起在其内部运行,有点像特殊用途的虚拟机。
我认为容器式虚拟化相对于简单的虚拟托管并没有提供足够多的实际好处,因此不值得费心。
为了提高性能,我认为您将 LVM 用于 VM 映像(而不是 fs 上的映像文件)的计划是一个好主意。
或者,你可以使用linux系统(注意:不是 zfs-fuse,它太慢了)它非常稳定和可靠。 问题是你必须从 ubuntu zfsonlinux PPA 下载 debianised 源包,然后为 debian 重新编译它们。 如果你熟悉编译包,这很容易,如果你不熟悉,可能就不是那么容易了。
zfs 为您提供了 LVM 的所有功能,但限制更少(例如,即使正在运行的 VM 卷也可以快速轻松地创建快照),并且学习难度更低。如果您已经熟悉 LVM,那么最后一个就不是什么大问题了。
免责声明:我有自己的观点,因此有偏见。
我不是 Xen 的粉丝。我使用过 Xen 和 KVM,也尝试过 vmware(也使用过 virtualbox,尽管它更像是面向终端用户/桌面的虚拟化工具,而不是服务器虚拟化),我非常喜欢 KVM。它很好用,没有愚蠢的麻烦。
我希望最近 Xen 合并到主线内核中能够快速改进 Xen。摆脱使用旧内核版本肯定不会有什么坏处。
同样,我也不太喜欢 LVM。我过去使用过它,因为没有其他东西能做到它的作用。然而,我从来没有喜欢它,并且一直认为它笨拙、晦涩且过于复杂。我已经使用 zfsonlinux 几个月了,它完全符合我对 LVM 的期望。我希望我再也不需要构建或管理另一个 lvm 系统了。
答案2
您还应该尝试一下 LxC (Linux 容器),它提供类似 OpenVZ 的 OS 级虚拟化,但受主线内核支持。这种技术可能更适合您,因为您可以期待更高的密度(比 KVM / Xen 更多的“虚拟机”)。