我正在整合一个双核xeon四核(即总共8个核心)12GB内存的Linux服务器,以取代几个旧的小型服务器。 我想使用虚拟化来了解它,因为使用旧服务器的个人需要保持分离。
我将有一个RAID镜像中的两个120GB SSD驱动器和一个RAID镜像中的两个2TB SATA II驱动器。
我相信我将使用Ubuntu 10.04 LTS与KVM作为主机系统,Ubuntu 10.04作为主要的资源密集型访客虚拟机。 另外三个访客虚拟机可能是Debian Lenny,使用率低,优先级低。
下面的资源分配计划是否有意义,或者是否有更多有经验的用户看到陷阱?
特别是12GB的主机系统文件是否会有足够的空间?
12GB的交换是否足够? 将SSD用于交换空间是不是一个好主意?
主虚拟机是最常用的服务器,需要快速的磁盘I / O,经常重build大约30GB的MySQL数据库,需要大量的文件存储空间,运行Apache和邮件服务器。 如果此服务器运行不佳,则会浪费整个硬件购买。
我应该如何对磁盘进行分区,以便最轻松地告诉主机系统在哪里放置各种访客虚拟机? 也就是说,我希望主虚拟机能够利用其SSD核心/操作系统文件更快的SSD驱动器,并使用SATA驱动器来存储它,并希望不那么重要的虚拟机只使用一部分SATA驱动器, SSD。
我可以分配更多的内存或CPU到来宾虚拟机(overcommit),而不会造成问题,或只是不值得吗?
感谢您的任何build议。
我的设置有点类似,效果很好。 Virt-manager使它变得非常简单(即使在ssh X转发它也能很好地运行)。 一些随意的想法:
我将使用LVM + virtio(可能除了非常大的卷;在virtio中似乎有一个“1TB问题”)。 你可以把IO密集型虚拟机的卷放到最快速的部分。
交换:除非你确切地知道为什么你可能根本不需要12GB。
在小系统上,我build议从系统卷中分割出数据量。 你可能会使用8GB的系统文件中的4个,这些“哎呀”时刻只剩下4GB。 当根卷不满时,系统performance得更好。
你用什么样的raid? DM-softraid或一些电池支持的硬件控制器?
把系统文件放在SSD上会给你很好的启动时间,但是不会太多。 把数据文件(esp寻求密集的东西)放在SSD上会让你很快乐。
如果你没有完全填满你的SSD,Afaik仍然会有一些好处,使LVM容易使用20%的未使用(从来没有写过),只是为它量一笔。
与任何硬件重build一样,我希望使用ECC内存。
“看起来你打算把许多独立的,有效的服务器机器集中到一个巨大的单点故障服务器上。” 我认为你错了。 KVM是故障切换解决scheme的不错select。 只需将XML定义文件引入其他服务器,并为群集中的所有服务器使用共享存储和/或相同的网卡configuration。 testing过,工作。 记住关于LACP和链路聚合 – 也行之有效:)
12 GB应该足够你的系统。
12GB应该足够用于交换。 我不会太担心交换访问速度,因为交换通常没有太多用处。 有了你的可用内存,你不应该看到任何重大的交换。 如果需要较大的临时空间,则可能需要使用较大的交换空间,并使用tmpfs作为/ tmp。
您可以手动将虚拟系统文件系统作为文件或分区进行放置。 无论你放在哪里,他们都会在哪里。
你有更多的RAM和CPU比出现需要。 观察服务器上的内存使用情况,并根据需要增加。
我将在服务器上安装一个munin服务器进程,在服务器和所有虚拟服务器上安装munin客户端。 这将使您能够快速确定是否有任何需要维护的瓶颈。
我不会过量使用RAM,但根据负载情况,您应该能够过度使用CPU。 鉴于你增加的权力,这不应该是必要的。 KVM允许您为这两项指定的最大值都高于启动时使用的最大值。 我没有尝试dynamic更改这些值。
这听起来像一个testing服务器,我们已经:)
那么,即使他们可以做550MB / s的读取和530MB / s的写入,也要避免OCZ Vertex SSD – 它们可能只是太错误了,你可以在网上阅读。 但是我自己没有testing过。
对于我来说,最好的select仍然是RAID 10arrays中的SAS或FC驱动器,即使SSD将执行更多的IO,但其寿命是有限的(从SMART获得数据!)。 当一个磁盘出现故障时,你只需要replace它,当所有的SSD都是同一个系列,所有的都会一次失败,会发生什么? 呃。
是的,我可以确认存储虚拟机是非常密集的IO。 有一天,我打开屏幕,Ubuntu服务器说IO队列太大或类似的东西,它挂了很长一段时间。
我为虚拟机分配尽可能多的CPU / RAM,例如,如果要部署新的虚拟机,我在维护时减less了其余部分的内存,但对于新虚拟机来说不够多。
现在我正在testing绑定在一起,正确桥接KVM虚拟机。 我成功设置绑定模式LACP和循环(testing说,拔掉电缆时丢失了1个数据包)。 现在我想知道是否有可能通过networking到2G的KVM虚拟机…
接下来是build立集群。
作为一个系统pipe理员负责保持运行,这个计划会给我一个不安的感觉。 看起来你打算把许多独立的,有效的服务器机器集中到一个大型的单点故障服务器上。 这种超级服务器的任何停机都意味着所有服务的停机时间,而不仅仅是它们的一个子集。
我会build议使用您的预算来调配,例如,两三台较小的服务器。 您仍然可以使用虚拟化将您的服务划分到不同的容器中,以确保安全性,并且便于备份和迁移。
我不喜欢你的光盘。 看起来完全错误的焦点。
我将有一个RAID镜像中的两个120GB SSD驱动器和一个RAID镜像中的两个2TB SATA II驱动器。
假设你使用120GB的操作系统和32TB的虚拟机器人 – 欢迎来到吸IO。 好的,当然,你的服务器很小。
无论如何,在这里我的一些服务器:
10Gb基于AMD的Hyper-V(适合16GB,我们确实有BIOS问题)。 OS +光盘位于RAID 10,Adaptec,4x 320GB黑色Scorptio上。 IO负载是坏的。 我觉得它超载。 它现在升级到16GB,但虚拟机的数量将减less – 在修补等过程中的IO负载太多。
64GB,8核心AMD opterons。 我有一个4x300gb Velocirraptors我RAID 10就可以了。 越来越饱,我感到负荷。 真的感觉到了。 我刚刚升级到RAID 10中的6个猛禽,可能会更高。 这台服务器上有一些数据库服务器,但是几乎所有的数据库服务器都有独立的光盘。 RAID控制器是SAS基础架构上的Adaptec 5805。
正如oyu所看到的 – 你的IO子系统真的很糟糕。 内存过量使用会使其变得更糟。 SSD可以很好地工作,但仍然太方便。 如果你把虚拟机放在2tb驱动器上,你的IO就会吮吸。 他们可能每个都有250 IOPS左右 – 与我在猛龙上testing的450我相比,我用了很多,而且他们在高端RAID控制器上。
我有一个很好的SuperMicro笼子,有24个光盘插槽供大型服务器使用;)