我有自己的电子邮件服务器,它为几十个用户提供服务。我现在需要替换它,并且我希望替换的是在虚拟机管理程序下运行的虚拟服务器映像。
我对新服务器系统的计划包括以下内容:
仅运行免费的开源软件。
运行至少三个虚拟映像:电子邮件服务器、HTTP 服务器和 SSH 服务器。我计划运行一个 Web 电子邮件系统(例如松鼠邮件)。
虚拟机管理程序操作系统将采用 Debian Stable(目前为 Debian 5.0“lenny”)。客户操作系统也将采用 Debian Stable。
软件 RAID 使用镜像 (RAID 1) 配置中的两个硬盘。
我需要尽快启动并运行虚拟机管理程序和电子邮件客户机映像,因为我担心我的旧服务器可能会出现硬件故障。(它每天重新启动大约三次!)
这是我为未来做好一切准备的黄金机会。什么是完美的设置?我应该如何配置我的系统?
我的主要问题是:
我应该使用虚拟机? 我打算使用西恩但是我在其他 ServerFault 问题中看到,有些人推荐 KVM 作为未来的最佳选择。我现在需要稳定可靠的东西,并且需要让它快速运行……如果 Xen 更稳定或者 KVM 比较棘手,我现在可以使用 Xen。(Debian 不会很快放弃对 Xen 的支持!)
我应该使用逻辑卷管理器使用我的虚拟机管理程序,还是忽略它?我倾向于让事情尽可能简单,而 LVM 似乎会增加另一层复杂性;但另一方面,我认为它现在已经稳定和成熟,如果我的虚拟服务器映像的需求发生变化,这种灵活性可能会很有价值。
是否有一些 GUI 或基于 Web 的工具可用于管理 KVM/Xen?我当前的电子邮件服务器甚至没有 X11;我只能通过 SSH 进行管理。
任何其他建议或提示都将受到感激。
如果你想了解我的硬件,以下是一些重要的基础知识:
AMD BE-2300 芯片(双核;支持 AMD-V 虚拟化指令)
4 GB 内存
两个相同的 250 GB Seagate 硬盘
答案1
老实说,我看不出使用任何虚拟化技术能带来什么好处。
- 您仍在使用一台服务器,硬件使用量并没有减少。
- 由于您只有这一个服务器,因此迁移虚拟机(甚至在运行时)的可能好处并不适用。
- 保持虚拟机运行所需的工作量实际上有所增加,因为您必须对虚拟机管理程序以及每个映像进行基本管理,而没有足够的机器来通过自动执行常见任务获得很多好处。此外,您还需要关注主管这一额外层。
- 同时,对于如此小的用户群来说,在不同的机器上提供网络和邮件服务的好处相当小,即使在逻辑上分开的情况下,您仍然需要同样的谨慎来保证它们的安全。
在我看来,虚拟化是一项很酷的技术,但它并不适用于所有地方,而且仅仅因为每个人都采用虚拟化就采用虚拟化并不是一个好主意(再次强调,这是我的观点)。
答案2
由于您在主机和客户虚拟机上运行相同的操作系统 Linux,因此我建议您选择用户模式Linux, 或者开放VZ。
UML 最初是一个经过修改的 Linux 内核,可以作为用户模式进程启动。它被广泛用于托管公司,以及需要在单个服务器上模拟大量虚拟机的人员。OpenVZ 源自更多的企业背景,并且更多地模仿 Solaris 容器化。其理念是,您可以对系统进行分区,并在容器中安装软件,而不会影响系统的其余部分。要删除软件,只需删除容器即可。
在你决定之前先看看这两个网站。我认为 OpenVZ 似乎更适合你,但这在很大程度上取决于你未来的计划,也就是说,最好选择一个你将来可能用于工作的。
UML 和 OpenVZ 与 XEN 和 KVM 有很大不同。简而言之,XEN 和 KVM 是成熟的虚拟化管理程序,允许在 x86 硬件上运行任何支持的操作系统,但 UML 和 OpenVZ 是 chroot jail 概念的扩展,允许隔离不同的 Linux 进程。如果您打算只使用 Linux,那么最好避免 XEN 和 KVM 的复杂性。
因此,OpenVZ 和 UML 扩展了 Linux 系统的功能,但 XEN 或 KVM 允许您将其转变为运行 MS-Windows、FreeBSD、OpenSolaris 和其他系统的非 Linux 系统。
如果您想运行 XEN,那么您应该运行完全支持它的发行版,例如 OpenSUSE 11。
答案3
我的旧服务器终于坏掉了。我不得不赶紧启动新服务器。
因此我继续执行原来的计划 A,并使用 Xen。
这是我的设置。我不知道它是否“完美”,但这是我的想法:
该服务器有两个相同的硬盘,分区如下:
- 分区 1:0.5 GB /boot
- 分区 2:4 GB Linux 软件 RAID(将为 /dev/md0)
- 分区 3:232 GB Linux 软件 RAID(将为 /dev/md1)
- 分区 5:2 GB /rescue
/dev/md1 设备又被格式化为 Linux LVM 分区。
GRUB 安装在 /boot 中,这是一个普通的 ext3 分区。
Dom0 系统安装在 /dev/md0 中,这也是一个普通的 ext3 分区。
分区 5 中安装了一个“救援”系统,也是一个普通的 ext3 分区。这是一个完整的可启动 Debian,事实上,这是我安装的第一个东西;我从该系统安装了磁盘的其余部分。
两个磁盘都安装了 GRUB 和“救援”系统。在紧急情况下,应该可以从两个磁盘之一启动某种 Linux 系统,以解决问题并让服务器再次运行。
最初我尝试使用 Xen 的“libvirt”工具,例如“virt-manager”。根据我的经验,我必须说“libvirt”在 Debian 5.0 Lenny 中是不成熟的,我不推荐它。
然后我转向使用较旧的工具,即“xen-tools”;特别是“xen-create-image”。由于我的用户都使用 Maildir 设置(每封电子邮件一个文件),而不是 mbox 设置(每个电子邮件文件夹一个文件),所以我尝试使用 ReiserFS。xen-create-image 可以很好地创建映像,但它无法启动。我决定使用 XFS,而且成功了。
(实际上,我并不确定对于许多小文件设置来说 XFS 是否比 ext3 好很多,但正如我所说的,在我的旧服务器坏了之后,我匆忙地完成了这一切。)
我决定对 Xen 映像使用 LVM 的两个主要原因:
性能。我发现几个网页都说,当 Xen 的图像位于 LVM 上时,其性能比文件系统上的文件中的图像更好。
易于调整大小。我使用小图像启动虚拟机,如果需要,我可以扩大它们。
我的新服务器上的 BIOS 有一个功能,您可以在启动时按 F8,然后选择启动设备。我已使用此功能测试我是否能从我的两个硬盘中的任何一个使用 GRUB 启动。
我的旧服务器甚至没有安装 X11。我决定在新服务器上安装 GNOME 桌面,希望我可以使用 virt-manager 等很酷的 GUI 工具。我发现 4 GB 对于现代 GNOME 安装来说不是很大;一切都适合,但没有太多可用空间。如果我从头开始,我会在 /dev/md0 上为 Dom0 OS 提供 10 GB。如果我真的空间不足,我可能会将 /usr/bin 移动到在 LVM 下创建的新卷中。
Dom0 安装在 RAID 卷上,而不是 LVM 上。我读到一些评论说有些内核从 LVM 启动有困难,所以我就简单处理了。
我强烈建议在硬盘末端安装一个小型“救援”系统。然后,不要将该系统安装到主系统中,这样疯狂的进程(如rm -rf /
)就不会破坏它。通过启动一个正常工作的系统、安装损坏系统的卷,然后修复某些问题,可以轻松解决许多问题。
感谢所有给我答案的人。
答案4
我们对 KVM 管理的体验非常满意虚拟-经理,连接通过 ssh 进行 qemu。设置、配置、修改、销毁以及全面使用客户操作系统都非常容易。此选项也适用于 Xen,因此您可以对任一虚拟机管理程序使用相同的命令。