我有我自己的电子邮件服务器,它为几十个用户服务。 我现在需要replace它,并且我希望replace为在虚拟机pipe理程序下运行的虚拟服务器映像。
我的新服务器系统的计划包括以下内容:
只运行免费的开源软件。
运行至less三个虚拟映像:电子邮件服务器,HTTP服务器和SSH服务器。 我打算运行一个networking电子邮件系统(如SquirrelMail )。
pipe理程序操作系统将是Debian Stable(现在是Debian 5.0“lenny”)。 客户操作系统也将Debian稳定。
软件RAID在镜像(RAID 1)configuration中使用两个硬盘驱动器。
我需要尽快让虚拟机pipe理程序和电子邮件客户机映像运行起来,因为我担心我的旧服务器可能即将发生硬件故障。 (它每天重复三次!)
这是我为将来设置正确的黄金机会。 什么是完美的设置? 我应该如何configuration我的系统?
我的主要问题:
我应该使用KVM吗? 我打算使用Xen,但在其他ServerFault问题中,我看到一些人推荐KVM作为未来的最佳select。 我现在需要一些稳定可靠的东西,而且我需要快速地开展工作……如果Xen更加稳定,或者如果KVM很棘手,我现在可以和Xen一起去。 (Debian不会很快放弃对Xen的支持!)
我应该使用LVM与我的pipe理程序,还是离开呢? 我倾向于尽可能简单地使事情变得简单,LVM似乎会增加另一层复杂性; 但另一方面,我认为现在是稳定和成熟的,如果我的虚拟服务器映像的需求发生变化的话,灵活性也许是有价值的。
有一些GUI或基于Web的工具可以用来pipe理KVM / Xen吗? 我目前的电子邮件服务器甚至没有X11; 我只通过SSH进行pipe理。
任何其他的意见或build议将受到感谢。
如果你想知道我的硬件,这里是重要的基础知识:
AMD BE-2300芯片(双核;支持AMD-V虚拟化指令)
4 GB RAM
两个相同的250 GB希捷硬盘
老实说,我不明白使用任何虚拟化技术会带来怎样的好处。
在我看来,虚拟化是一种很酷的技术,并不适合到处都是,因为每个人都做虚拟化并不是一个好主意(在我看来)。
由于您在主机和来宾虚拟机上都运行相同的操作系统Linux,因此build议您从用户模式Linux或OpenVZ中进行select 。
UML开始作为一个经过修改的Linux内核,可以作为用户模式进程启动。 它已被广泛用于托pipe公司,以及需要在单个服务器上模拟大量虚拟机的人员。 OpenVZ来自于更多的企业背景,更多的是在Solaris容器上进行build模。 这个想法是,你可以分割你的系统,并将软件安装在一个不影响系统其余部分的容器中。 要删除软件,只需删除该容器。
在决定之前,先看看这两个网站。 我认为OpenVZ似乎更适合你,但很大程度上取决于你的未来计划,也就是说最好select一个你将来可以用来工作的计划。
UML和OpenVZ都与XEN和KVM完全不同。 简而言之,XEN和KVM是成熟的虚拟化pipe理程序,允许运行x86硬件上支持的任何操作系统,但UML和OpenVZ是chroot jail概念的扩展,允许隔离不同的Linux进程。 如果你打算只使用Linux,那么最好避免XEN和KVM的复杂性。
所以OpenVZ和UML扩展了Linux系统的function,但XEN或KVM可以让你把它变成运行MS-Windows,FreeBSD,OpenSolaris等的非Linux系统。
如果你想运行XEN,那么你应该运行一个完全支持它的发行版,比如OpenSUSE 11。
我的旧服务器终于死了。 我不得不快速提出新的服务器。
所以我继续我的原始计划A,并使用Xen。
这是我的设置。 我不知道这是不是“完美”,但这是我所知道的:
服务器有两个相同的硬盘,分区如下:
/ dev / md1设备又被格式化为Linux LVM分区。
GRUB安装在/ boot,这是一个普通的ext3分区。
Dom0系统安装在/ dev / md0中,这也是一个普通的ext3分区。
“救援”系统安装在分区5中,也是一个普通的ext3分区。 这是一个完整的启动Debian,实际上是我安装的第一件事情; 我从该系统安装了其余的磁盘。
两个磁盘都安装了GRUB和“救援”系统。 在紧急情况下,应该可以从两个磁盘之一启动某种Linux系统,以便解决问题并使服务器再次运行。
起初,我尝试使用Xen的“libvirt”工具,比如“virt-manager”。 根据我的经验,我必须说在Debian 5.0 Lenny中“libvirt”是不完整的,我不推荐它。
然后我转向旧的工具,“xen-tools”的东西; 特别是“xen-create-image”。 因为我的用户都有一个Maildir设置(每个电子邮件一个文件),而不是一个mbox设置(每个电子邮件文件夹一个文件),我试图使用ReiserFS。 xen-create-image创build的图像就好了,但是不会启动。 我决定使用XFS,而且工作。
(我不太确定XFS是否比ext3好得多,但是正如我所说的,在我的旧服务器死亡之后,我做了所有这些工作。
我决定将LVM用于我的Xen映像的两个主要原因是:
性能。 我发现有几个网页说Xen在LVM上的图像效果比在文件系统上的图像要好。
易于resize。 我开始使用小图片创build我的虚拟机,如果需要,我可以扩展它们。
我的新服务器上的BIOS有一个function,在启动过程中你可以点击F8,然后select一个启动设备。 我用这个来testing我可以从两个硬盘中的任何一个启动GRUB。
我的旧服务器甚至没有安装X11。 我决定在新的服务器上安装一个GNOME桌面,希望能够使用像virt-manager这样酷的GUI工具。 我发现4 GB对于现代GNOME安装来说并不是很大; 一切都合适,但没有太多的自由空间。 如果我重新开始,我会给/ dev / md0上的Dom0 OS 10 GB。 如果我真的被榨干空间,我可能会将/ usr / bin移动到LVM下创build的新卷中。
Dom0安装在RAID卷上,而不是LVM。 我读了一些有关LVM启动困难的内核的评论,所以我只是把事情简单化了。
我真的build议在你的硬盘末端放一个小小的“救援”系统。 然后,甚至不要在你的主系统中安装这个系统,这样暴力程序(如rm -rf / )就不能破坏它。 有很多问题可以通过启动一个工作系统,安装容量与损坏的系统,然后修理东西来解决。
感谢所有给我答复的人。
我做了类似的事情,除了我使用Centos。
关于攻击者重新使用密码访问其他主机的其他评论是值得担心的。 我的回答:只使用ssh密钥,并确保你不允许ssh密钥从你的SSH客户端转发。 (这将允许你login的主机上的恶意根用户重用会话密钥,像你一样连接到另一个主机)另外,如果每个盒子有不同的root密码,你应该考虑设置你的cli提示符或配色scheme主机提醒你你在哪个主机上,这样你就不会意外地键入不同的主机的root密码。
4Gb对于你正在讨论的主机数量来说是一个很好的数字,但是它很容易为其他主机设置其他用途,我敢打赌你会在太久之前碰到这个限制。
我们对于由virt – managerpipe理的KVM有着积极的经验, 通过ssh与qemu连接。 使用客户操作系统进行设置,configuration,修改,销毁以及全方位的操作非常简单。 这个选项也适用于Xen,所以你可以使用与hypervisor相同的命令。
我曾经使用debian stable来做kvm,但过了一段时间,我转而使用proxmox-ve(webpipe理)。 我自己学了很多东西,但是我很懒。 关于proxmox-ve的好处是它允许你同时使用kvm和openvz和802.1q vlans等(不幸的是,kvm中的vlan和802.1q不同)。 两者(openvz和kvm)之间最大的区别是,由于kvm使用它自己的内核,性能更差。 另外,你需要有硬件虚拟化工具。