VMware ESX Server 设计(转载) - [工作记录]

 

结构和设计
即使ESX Server 3.0有许多新的、有用的特性,但是在一段时期内可能一些用户还是会使用和部署ESX Server 2.5.x。出于这个考虑下面我们会综合介绍ESX Server 2.5.x和ESX Server3.0的体系结构和设计。

一、ESX Server 2.5.x的设计
这本红皮书不能代替Vmware的官方文档,关于如何去安装和使用ESX Server 2.5.x的详细信息请到下面链接查看Vmware提供的文档
http://www.vmware.com/support/pubs/esx_pubs.html
下面我们讨论的体系结构和设计中,我们假设一个应用环境,它由最少两个ESXServer系统、共享的SAN存储、VirtualCenter和VMotion。

1.ESX Server 2.5.x特性概述
ESX Server 2.5.x有下面的特性
ESX server物理机
·每ESX Server支持16个逻辑CPU
·每ESX Server支持80个虚拟机CPU
·每ESX Server支持64GB内存
·支持8个swap文件,每个swap文件的最大容量为64GB
·每系统支持64个适配器
·支持8个千兆网卡或者16个百兆网卡
·每个虚拟交换机支持32个虚拟机
·每ESX Server支持16个光纤通道卡
·每个存储阵列支持128个LUN
·每ESX Server支持128个LUN

ESX Server 2.5.x虚拟机
·通过可选的vSMP模块,每个虚拟机可以支持2个虚拟CPU
·每个虚拟机支持3.6GB内存
·支持4个虚拟scsi适配器并且可以支持到15个scsi硬盘
·虚拟磁盘容量支持9GB
·支持4个虚拟网卡
关于最新的支持操作系统和硬件的列表可以参考下面链接提供的系统兼容向导。
http://www.vmware.com/vmtn/resources/esx_resources.html

2.ESX Server 2.5.x的虚拟结构
ESX Server 2.5.x的虚拟结构由下面几个部分组成
·ESX Server 2.5.x
·VirtualCenter 1.3
·vSMP
·Vmotion
ESXServer运行在一个物理机上。VirtualCenter即可以运行在物理机上也可以运行在一个虚拟机上。如果你决定将VirtualCenter运行在一个虚拟机上,你需要考虑一个问题,如果虚拟机所属的ESXServer离线了,你将不能访问VirtualCenter直到ESXServer重新上线或者你将虚拟机重新运行在另一个机器上。vSMP和VMotion是已经安装的特性但是需要一个license去激活。
VMware提供了一个VIN(Virtual Infrastructure Node)license,内容如下
·ESX Server license
·Virtual SMP license
·VirtualCenter Agent license
·vMotion license
购买VIN license比单独购买各个license更节省成本。

3.服务器的规模
使用服务器的规模由以下几个因素决定
·目前方案的规模
·将来发展的估计
·高可用性和容灾计划
·预算的限制
有一些不同的方法去估算你将需要的ESX服务器的数量,下面介绍最流行的两种:
·最容易的方法是计算每个4-5个虚拟CPU对应一个物理CPU
这个结果是大概一个4路服务器对应16-20个虚拟CPU,一个8路服务器对应32-40个虚拟CPU,这里假设每个虚拟CPU运行的负载量适中。
关于内存方面,如果你给每个虚拟机分配1GB内存,在大多数情况下已经足够处理虚拟机运行,管理终端和虚拟管理了。如果你计划在虚拟机上运行一些内存敏感的应用,应该适当的加大这个值。
根据上面的估算,我们可以用一个8路(2节点)、配置32GB内存的x3950支持32个虚拟机,用一个16路(4节点)、配置64GB的x3950支持64个虚拟机。
上面的估算都是基于一个单核CPU,因为一个双核CPU不那不能提供100%的相当于两个单核cpu运行性能,我们建议你按1.5个单核CPU来估算1个双核CPU,也就是每双核CPU对应6-7个虚拟机。
·如果你有一些运行应用的物理机,也可以通过计算CPU利用率平均峰值来换算成MHz总数来进行虚拟机数量的估算。例如,如果你有两个500MHz的CPU,CPU利用率平均峰值为50%,那么你的虚拟机CPU计算结果应为500MHz。
为了得到CPU利用率的平均峰值,你需要对CPU的利用率在运行着应用的情况下至少进行一周的记录,为了计算结果更准确建议进行一个月的记录。如果你已经有了企业级的监控软件比如IBM Tivoli、HP OpenView、NetIQ等等,那么你已经可以直接通过这些软件得到你想要的信息。
下一步你需要把你所有运行ESX Server的服务器的主频加起来。例如,一个配置3GHzCPU的2节点8路的x3950服务器计算结果为24000MHz。计算结果先需要减去10%,这部分是终端OS需要的,结果是21600MHz。
因为附加的占用率和过载的情况下需要减去一些数量,通常20%是安全的数值。得到了17280MHz可以提供给虚拟机的应用运行。分为每个虚拟机500MHz,结果为大概可以运行34个虚拟机(17,280/500=34.5)。
你可以用类似的方法来估算虚拟系统所需要的内存总量。首先在物理机上得到平均内存利用率,然后每个虚拟机加上54MB为了虚拟化的开销,为内存平均利用率超过512MB的系统加上32MB内存,这些就是你的虚拟机需要的内存总量。还需要加上分配给Service Console的内存(一个8路的ESX Server系统这个值一般设为512MB),加上VMkernel所需的24MB内存,这就是整个系统需要的内存总量。
例如,你有10个平均内存利用率为512MB的物理机需要转换为虚拟机总量为5120MB,加上每个虚拟机54MB的虚拟化开销(5120+540=5660 MB),这是虚拟机需要的总量。再加上Service Console需要的内存(5660+512= 6172 MB)和VMkernel的24MB内存(6172+24=6196),得到最后的结果是这10个虚拟机需要6GB内存。
我们看到上面两种方法在8路的x3950服务器上得出的结果很相似,其实按照一般的经验通常上面两种方法估算的结果都是很接近的,所以为了节省时间,我们建议使用第一种方法来初步规划你的ESX Server的规模。
未来方案规模的发展是很难去决定的。经常出现这样的情况,当一些公司第一次执行VMware的虚拟环境的时候先部署了一部分虚拟机,但是使用后发现了虚拟环境带来了很多的好处并且没有降低系统的运行效率,这样新的虚拟机的数量迅速增加,超过了现有的CPU、内存和I/O资源,这将导致总体的运行效率收到影响。所以需要为虚拟环境的扩展提前作出一定的考虑。

4.关于VMotion
在设计虚拟环境的时候,VMotion需要被做为一个重点去考虑。VMotion特性可以实现在虚拟机保持运行的情况下实现虚拟机在物理机之间的转移。因为VMotion需要在两个物理机之间转移系统运行的一些底层的状态,所有要求两个物理平台的CPU必须运行一样的指令集。这就意味着执行VMotion操作的物理服务器的CPU必须符合下列的要求
·同厂商的CPU产品(Intel or AMD)
·同系列的CPU产品(Pentium III, Pentium 4, Opteron, etc)
有时同样系列的CPU产品在扩展特性上会有很大的不同,比如64位扩展技术和SSE3。在这种情况下不能实现VMotion的操作即使是同样系列的CPU。CPU的主频和缓存不是考虑的主要因素,但是一些扩展特性的不同可能导致在物理机之间的VMotion操作失败。
例如,x366和x260服务器和x3950使用同样类型的CPU,它们适合与x3950配置VMotion操作。然而其他使用不同CPU的xSeries服务器就不能了。
VMotion要求准备一个专署的网卡,VMware要求提供一个千兆网卡供VMotion使用。但是如果你只有百兆网卡可用,也可以配置VMware使用百兆网卡,当然这样VMotion的时间将显著增加。另外一个重要的要求是VMotion要求一个共享的存储。

5.计划你的Server farm
在VirtualCenter 1.x中,一个farm就是一个组成你的虚拟环境的ESX Server系统的组。一个farm也是一个VMotion的划分,这意味着相互配置了VMotion操作的服务器必须在同一个farm中。在计划的过程中,你需要考虑每个farm中主机的数量。下面是VMware帮助你划分farm的一些参考:
·VMware建议连接到一个单独VMFS卷上的ESX Server不要超过16个。
·VMware建议每个LUN不要划分超过32个I/O敏感的虚拟机,或者100个对I/O要求很低的虚拟机。
·每个VMFS卷不要超过255个文件。
·存储容量有2TB的限制。
因为VMotion要求共享的存储,那么将限制每个farm可以有16个ESX Server。你可能希望去创建一个小一点的farm,那么可以创建一个使用VMotion的一个只有两个ESX Server的farm。

6.存储容量
就像服务器规模的估算一样,没有一个普遍的答案应用到每个不同的环境中。前面部分已经提到了每个VMFS卷运行I/O需求敏感的虚拟机的数量不要超过32个,应该尽量的减少资源争用和SCSI锁情况的出现。
有很多方法去决定VMFS卷的合适大小,下面是最简单的方法。
如果你决定用2个8路的x3950服务器,每个服务器运行32个虚拟机将符合对CPU性能的要求。用前面提到的32个虚拟机每LUN的策略来看,你需要为这些虚拟机建立两个LUN。如果你建立新的虚拟机可以先估算一下虚拟硬盘的平均容量。如果每个虚拟机平均需要20GB硬盘,这样每个LUN需要640GB。你还需要加上一些附加的容量为了以后的扩展需要,通常10%是个合适的比率,加上这部分结果为720GB。如果你计划使用redo日志,需要相应的多划分一些空间。

7.规划网络
在服务器farm设计网络部分的时候有很多的选项,对这些选项的选择一般都是基于你的物理网络或者公司的网络安全策略。重要的一点是ESX Server强烈建议使用千兆网络连接。

在ESX Server 2.5.x配置网络的时候,你需要考虑三个基本的组成部分。
·Service console
出于对运行效率和网络安全的考虑,VMware建议你为Service console提供一个专用的网卡。你可以把service console网卡连接在你的数据中心的专用的管理网络中。
在默认的配置中,一个百兆网卡足以提供service console所需的带宽。如果你计划用service console运行备份或者其他需要高带宽的应用,就建议使用千兆网卡。

·虚拟机
虚拟机使用一个与service console分离的网络。虽然系统并没有强制要求使用千兆网卡,但在实际应用中我们建议你使用千兆网卡提供虚拟机的网络连接,因为32个虚拟机将产生巨大的网络通讯量。
一个比较好的计划是10-20个虚拟机使用一个千兆网卡。这意味着一个8路x3950运行32个虚拟机最少需要2个千兆网卡。请注意这是最小的建议,再添加1个或2个千兆网卡将为虚拟机提供更充足的带宽。
另外一个需要考虑的是VLAN的配置,假设你的数据中心里有多个VLAN需要应用到虚拟机上,这种情况下你有两种不同的选择:
第一种是为每个物理的VLAN在ESX Server上配置一块网卡,当你的网络环境比较简单的时候可以使用这个选择,但是如果你有10个网络这个选择就变的不可行了。注意ESX Server 2.5.x仅仅支持最大8个千兆网卡。
另一种是使用ESX Server对VLAN(802.1q)的支持,这个选项为每个VLAN创建一个虚拟的端口组在虚拟交换机上。如果你的物理交换机支持,建议你使用这种方法。
在配置中还需要考虑虚拟机网络的冗余连接,ESX Server 2.5.x不仅支持多个网卡连接到一个虚拟交换机提高带宽,也提供了对网卡失败的冗余切换。为了实现高可用性我们建议你对网卡进行绑定。

·VMotion
VMware要求为VMotion提供一个独立的千兆网卡。不推荐使用百兆网卡,因为这将大大影响运行效率。你应该为VMotion单独分配一个千兆网卡并且划分单独的子网。
如果你只有两个运行ESX Server的服务器,你可以使用交叉线直接连接两个服务器的网卡作为虚拟网络使用,这个方法也可以在排除VMotion的故障的时候使用。

8.网络负载均衡
ESX Server 2.5.x为虚拟机提供了两种网络负载均衡的方法。
·基于MAC地址的网络负载均衡是ESX Server默认的方式。这种方法简单的将两个物理网卡连接到虚拟交换机不需要在物理交换机上进行额外的配置,缺点是负载均衡的效率不是非常理想,这种方法有时使一个虚拟机经常使用某一个物理的网卡,并且不能手动的调整每个虚拟机使用的物理网卡。
·基于ip的网络负载均衡,这种方法提供了一种网络负载均衡的更好选择,缺点是你需要在你的物理交换机上进行额外的配置,需要配置你的物理交换机的802.3ad协议(或者Cisco交换机的EtherChannel)。这是一个实现高运行效率的选择。
以上是对ESX Server 2.5.x的网络的概述。一些高级的应用,比如备份网络、DMZ网络和配置的细节超出了这本红皮书的介绍范围。如果需要更深入的信息请访问VMware的官方网站,链接如下
http://www.vmware.com/support/pubs/esx_pubs.html
http://www.vmware.com/vmtn/resources/esx_resources.html