虚拟化的卖点很容易理解:谁都希望将使用率不足的物理服务器转化为高性能的虚拟服务器群,并且可以根据需要对其进行扩展和压缩。但虚拟化的秘诀在于实现效能的最大化,因此人们通常建议部署全新的基础设施来实现这一目的。
无论您需要的是单台主机服务器还是建设完全虚拟化的基础设施,以下的几条大致指导原则将能够帮助您确保在少花钱、多办事的前提下满足自己的需要。
核心越多越好
在购买任何服务器的时候,您的购买决策一开始考虑的便是选择CPU。在虚拟化主机中,核心的数量几乎每次都比单个核心的速度要重要。在许多情况下,您会发现,如果服务器的核心数量足够多,即使用的只是1.7GHz的核心,这台服务器中也能挤进去数量多得惊人的虚拟服务器。
如果您的预算充足,可以购买配有2.93GHz Westmere芯片的服务器,您无论如何也应当选择它。但是,如果您使用的是每个核心速度为1.7GHz至2.2GHz,每个CPU有6个核心的AMD Opteron 4000系列CPU,您同样也可以压榨出巨大的处理能力。采用此类CPU的几台双CPU服务器就足以支持一个中等规模的虚拟化框架。
几十年前就有人断言 - "CPU越快,服务器就越快",这个判断仍然是有效的,但主要适用于单线程的计算密集型任务。在普通的服务器运营中,CPU在其运行周期中的大部分时间都处于空闲状态下。即使CPU有了任务,其它子系统的低速状态也会使高速CPU处于等待状态,等着数量从磁盘、内存或网络中被检索出来。如果您必须要在低时钟速度的6、8或12核心CPU与更快时钟速度的4或6核心CPU之间做出选择,一定要选核心数量多的CPU。
尽可能使用最大的内存
当您计算虚拟主机的价格时,应当在财力允许的范围内在其中包含尽可能大的内存。内存的大小是限制可运行虚拟服务器数量的最大因素。在一台有12、16或24个核心的服务器中安装64GB内存是极有必要的,即使内存的价格会随存储密度的提高而爆涨也是值得的。
的确,这些4GB和8GB的DIMM要比一堆2GB的DIMM贵很多,但当您需要分配内存负载时,就不必因此再去购买新的物理服务器。当您无需购买新的服务器时,也就无需再去购买新的软件授权。
机架冗余
这条建议的重点是,您必须拥有足够的物理服务器才能在失去某一台服务器时不至于受到致命打击。而且更理想的情况是,如果您的实施规模足够大,即使失去多台物理服务器也不会受到太大的影响。虽然现代服务器已经被证明不太容易着火,但这种火灾的确偶尔会发生,因此您需要为此类灾难做好准备。
此外,您还绝对需要通过定期维护来建立一个安全网。如果您不能让物理主机停机15分钟并更换出现故障的DIMM,因为剩下的服务器无力应付由于损失这台服务器而造成的内存或处理负载,那么您的麻烦就大了,而且您已经丧失了服务器虚拟化本应具备的主要优势之一:缩短计划的停机时间。当您的一台物理服务器因维护而下线时,您肯定不希望为了降低总体负载而让某些虚拟服务器停止服务。很明显,您至少应当运行一个N+1模式的服务器群,如果能够在此基础上加以扩展就更为理想了。
存储池
任何符合现实的虚拟化平台都应建立在共享存储之上。在没有共享式存储的情况下,每一台服务器基本上都是一个孤岛,而在这些孤岛服务器上运行的虚拟机无法免受物理服务器故障的侵害。此外,在没有共享式存储的条件下,建设和扩展虚拟化基础设施会变得更加困难,而且工作也会更加琐碎。事实上,除非我们讨论的是非常非常小的虚拟化建设项目,使用共享式存储是惟一的途径 - 这是一项必须遵守的铁定规则。
为此,应确保您的共享式存储解决方案尽可能地强健。无论您计划使用iSCSI、NFS,还是光纤通道,您最好在开始采购交换机、HBA和磁盘之前仔细了解自己的磁盘I/O需求。在很多情况下,SATA驱动器对于一般用途的服务器虚拟化来说已是绰绰有余。而在另外一些情况下,NFS能够在日常计算需求方面提供比iSCSI更强的性能。因此,您的选择可能会与您的存储厂商背道而驰,但是,只要您执行的不是事务最巨大的磁盘负载,您可能根本不需要基于SSD或SAS的阵列。
事实上,如果您不需要为每台服务器提供万兆的速度,使用这些更快的存储装置就根本没有意义。随着廉价磁盘的广泛普及,您根本没有必要再继续坚持使用传统的RAID5;完全可以选择RAID6或更为理想的RAID10来建设您的阵列。的确,您可能在空间方面要有所让步,但这些选择的性能和可靠性肯定会让它们物有所值。
网络连接
在联网方面,将多个千兆铜线链路汇聚在一起比单独实施万兆链路更为便宜,但万兆能够为您提供巨大的增长潜力。需要记住的是,与数量相对较少,速度相对较快,但在虚拟服务器负载下超负荷运转的服务器相比,日后升级带万兆网卡的服务器会更简单,而且可能更便宜。通用虚拟服务器无法在普通的服务流量或磁盘I/O方面充分利用万兆的速度,但事务量较大的应用却可以用到这种能力,因此您应当根据自己的需求做出有效的平衡。
最后,需要记住的是,服务器虚拟化能够压缩几乎所有的物理单元,因此您应付这些组件可能出现故障的能力越强,系统总体的表现就越好。利用在电力和散热方面节省的资金,您完全可以添加第二个存储阵列,在预算允许的范围内开展复制工作,这样就可以直接导致您几乎每天晚上都可以睡个安稳觉了。