本节书摘来自异步社区《深入学习VMware vSphere 6》一书中的第1章,第1.2节,作者:王春海著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 虚拟化应用概述
要搭建企业虚拟化的基础平台,有两种选择。其一是选择全新的服务器、存储器及交换机,直接搭建新的虚拟化平台,之后再安装配置一些应用服务器;另外一种是使用现有的设备,通过安装虚拟化产品、虚拟化原有的服务器来实现。这时候就要考虑原来的一些基础设备,如原来的服务器、存储、交换机。这些要根据服务器、存储的性能、参数,综合考虑。
1.2.1 虚拟化与传统物理服务器的区别
在传统的应用中,每个应用(或项目)运行在单独的物理服务器中,每个物理服务器只跑一个网站或运行一个项目。在大多数的政府、企业中,单台服务器大多配置了1个CPU、2~3个硬盘做RAID1或RAID5、单电源、单网络(服务器2块网卡或4块网卡只用一块)。而在虚拟化的项目中,虚拟化主机服务器大多配置2~4个CPU,6~10个甚至更多硬盘做RAID5或RAID50、RAID10,2~4个电源,4个或更多的物理网卡冗余。虚拟化中每台服务器都有冗余,在服务器中的单一网卡、硬盘、电源,甚至CPU出现问题时都会有冗余设备接替。另外,在虚拟化项目中,通常采用共享的存储,虚拟机保存在共享的存储中,即使某台主机完全损坏,运行在该主机上的虚拟机也会在其他物理主机启动,保证业务系统不会中断。
组成虚拟化项目中每个节点主机的性能更高。单一的应用主机,大多配置2个硬盘做RAID1,或者3个硬盘做RAID5,这样磁盘性能比较低。如果是3块硬盘做RAID5,不如再添加1块硬盘,4块硬盘组建RAID10,可以获得较好的读写性能。在虚拟化主机中,通常用6块或更多的硬盘,组建RAID5、RAID50或者RAID10,磁盘性能较高。另外,虽然虚拟化后是在同一个主机上跑多个虚拟机,但这些虚拟机并不会在同一时刻都要求较高的CPU与磁盘、内存利用率。根据多年的虚拟化实施经验,在虚拟化后,不会降低原来的每个应用的响应速度,而是会略有增加。
当前一些单位,为了成本考虑,采取大容量、低转速的SATA或SAS(7200转)的磁盘组成RAID。如果采用这种磁盘,例如采用1TB、2TB、3TB,甚至4TB的7200转磁盘,建议采用至少8块组成RAID10,而不是采用4块组成RAID5。由于RAID5的写惩罚为4,在较低转速、较低性能硬盘、较小数量采用RAID5时,其写性能非常低,不建议采用。另外,大容量的磁盘,在RAID重建时,需要花费更长的时间。
1.2.2 企业虚拟化进程
在企业实施虚拟化的时候,有两种方案,一种是新建全新的虚拟化数据中心,另一种是利用现有的基础设施,升级改进,或者是添加一部分新的设备(服务器、存储、交换机),与原有的设备组成一个新的数据中心,并且将原有的设备慢慢虚拟化。
在企业实施虚拟化的过程中,大多是先虚拟化不太重要的物理机,将这些物理机迁移到虚拟机中运行一段时间(通常为1周的时间),查看虚拟化后是否对业务应用有所影响,并模拟一些故障,对以后可能出现的问题进行实验,等这些测试完成之后,再虚拟化其他的物理机。而一些不适合虚拟化的应用仍然会运行在原来的物理主机上,例如,用作视频点播的服务器、重要的数据库服务器等这些应用。
1.2.3 vSphere虚拟化规划要点
在使用VMware vSphere 6作为虚拟化基础平台前,要选择服务器(硬盘、网卡、内存、CPU)、存储(控制器数量、接口类型、磁盘)、交换机等设备。简单来说,如果你只有一台服务器,那么虚拟机会放在这一台“本地服务器”的“本地硬盘”中。如果有多台服务器(服务器数量多于2台),要充分发挥vSphere的优势(群集、容错、VMotion),采用共享存储是必然的选择。但在vSphere 6中又多了一个选择,可以利用服务器本地硬盘通过网络组建VSAN,实现原来传统架构(虚拟机运行在ESXi主机,但虚拟机保存在共享存储,而不是服务器本地硬盘)的共享存储的功能。
在规划vSphere虚拟化系统时,要考虑以下几点:服务器与存储的数量,VMware ESXi安装在何位置,ESXi服务器网卡与虚拟机网络,是使用共享存储,还是VSAN等。
关于VMware ESXi系统:可以将VMware ESXi安装在服务器本地硬盘、服务器主板上的U盘或SD卡,或通过共享存储划分给服务器的空间。不推荐为服务器单独配置SAS或SATA盘,尤其是两块盘组建RAID1用来安装VMware ESXi,这是严重的浪费。
【说明】
现在大多数的虚拟化项目是商务与技术分离的。一般是商务先去谈业务,等签订合同之后,技术人员负责实施。但许多商务并不是特别地“精通”虚拟化,他们可能更多为了利润或其他原因,给客户推荐一些不太合适的“配置”。例如,在许多虚拟化项目中,尤其是在一些“不差钱”的单位,在配置了EMC等高端共享存储之后,还会为服务器配置6块甚至更多的SAS磁盘,而这些磁盘仅仅用来安装ESXi的系统。
如果你的服务器没有配置RAID卡,或者只有一块本地SAS磁盘,那么,由于VMware ESXi不能安装在这两个磁盘中(SSD与SAS),你可以为服务器配置最小1GB的U盘,将VMware ESXi安装在U盘中。例如,IBM服务器主板上有USB接口,HP服务器主板有CF卡插槽,这都是用来安装虚拟化系统的。
关于服务器的网卡:遵循管理与生产分离的原则,并且为了提高系统的可靠性(冗余),推荐至少为每个服务器配置4个网卡(或4端口网卡),每个网卡(端口)至少是千兆。在VMware vSphere中,为VMware ESXi管理地址分配两个网卡,组建标准虚拟交换机,为生产(虚拟机网络流量)分配两个网卡,组建标准交换机或分布式交换机(与多个VMware ESXi主机)。对于生产环境所使用的网卡及标准或分布式交换机,如果有多个网段,通过创建“端口组”的方式,为每个VLAN网段创建一个对应的“端口组”,并且为虚拟机分配对应的端口即可解决。一般情况下,可以将VMotion、Fault Tolerance放置在“管理端口”上。
【说明】
有一次,一个单位在设计ESXi网络系统时,每台服务器都是较为高端的4路CPU、128GB内存、6块网卡的主机,但这些ESXi主机所连接的网络竟然是百兆网络(现有网络是百兆网络,没有考虑升级,因为这个部门不负责网络)。更过分的是这6块网卡在设计时,1块网卡做ESXi主机管理及1个生产网络,另5块网卡连接到5个不同的网络(不同的业务科室在不同的网段)。而采用6块网卡的原因是一共有6个不同的网段,那么如果有10个不同的网络是不是就要用10块网卡?如果有30个、50个,甚至更多呢?那服务器有这么多位置插这些网卡吗?在这个设计中,使用4块网卡即可(2个管理,2个生产跑VLAN),另外需要将核心网络升级到千兆。
如果要使用VSAN,还要再配置2个网卡,为VSAN使用单独的网卡。
如果使用iSCSI的存储,也要为iSCSI单独配置2个网卡。另外,建议选择10Gb或40Gb以太网,1Gb的网络不建议使用iSCSI,因为这是性能瓶颈。
关于VSAN:如果要使用VSAN,而不是使用共享存储,每台服务器至少有一个单独的固态硬盘、一个或多个物理磁盘。一般情况下,服务器都有多个硬盘并且有RAID,你可以使用RAID划分出一个20GB的逻辑磁盘(不要太小,也不要太大),用来安装VMware ESXi系统,剩下的空间划分第2个逻辑磁盘,用作VSAN。另外还要为服务器配置至少一个单独的固态硬盘(SSD),用作VSAN的缓存。
从USB、SD设备引导Virtual SAN主机时,引导设备的大小必须至少为4GB。如果ESXi主机的内存大于512GB,则从SATADOM或磁盘设备引导主机。从SATADOM设备引导Virtual SAN后,必须使用单层单元(SLC)设备,并且引导设备的大小必须至少为16GB。
1.2.4 如何利用现有基础架构
对于原来的32位服务器,原则上是全部淘汰,因为这些服务器购买时间较长,性能较低,潜在故障率较高,不能满足现有应用。如果是近一、两年新购买的服务器,则考虑将这些服务器整合、扩充,用作虚拟化主机。大多数服务器能扩充到很高的配置,而标配并不是很高。例如,IBM 3850 X5服务器最大可以扩充到4个CPU、1TB内存、双电源。以CPU为例,IBM 3850 X5出厂标配2个CPU,这CPU可以是6核、8核。如果企业现有多台IBM 3850 X5服务器(如2台或更多),可以将这2台的CPU放到其中一台,而另一台则可以新购4个8核的CPU。同样,内存也可以集中到一台,另一台则配置多个单条8GB的内存。同样,对于其他厂家的服务器,例如DELL R910,标配2个CPU,最大支持4个CPU、2TB内存、4冗余电源,如图1-2-1所示。
在虚拟化实施的过程中,如果使用现有的服务器,推荐优先为服务器添加内存、网卡,其次是配置冗余电源、CPU。至于硬盘,在企业虚拟化项目中,优先是配置共享的存储,其次是添加本地硬盘。
除了做虚拟化主机外,还可以将原有的服务器改作存储服务器。例如,如果某服务器配置较低并且不具有升级的价值,但具有较多的本地硬盘时,可以将硬盘集中到某台服务器中,将这台服务器通过安装openfiler(32位或64位产品都有)、Windows Server 2008 R2或Windows Server 2012,组成存储服务器,通过千兆网络为虚拟化环境提供iSCSI的网络存储,这些存储可以用来做数据备份或扩展。
1.2.5 服务器性能与容量规划
在实施虚拟化的前期,有一个虚拟机容量规划。就是一台物理服务器上,最大能放多少虚拟机。实际上这是一个综合的问题,既要考虑主机的CPU、内存、磁盘(容量与性能),也要考虑运行的虚拟机需要的资源。在实际使用时,系统总有至少30%,甚至更高的富余容量,不可能让一个主机上的资源利用率超过80%,以致接近100%,否则一旦达到这些数值,整个系统响应会比较慢。
在估算虚拟化的容量时,在只考虑CPU的情况下,可以将物理CPU与虚拟CPU按照1∶4~1∶10,甚至更高的比例规划。例如,一台物理的主机具有4个8核心的CPU,在内存、存储足够的情况下,按照1∶5的比例,则可以虚拟出4×8×5=160个VCPU,假设每个虚拟机需要2个VCPU,则可以创建80个虚拟机。在实际实施虚拟化的项目中,大多数虚拟机对CPU的要求并不是非常高,即使为虚拟机分配了4个或更多的CPU,但实际上该虚拟机的CPU使用率只有10%以下,这时候所消耗的物理主机CPU资源不足0.5个。如图1-2-2所示,这是使用vCenter Operations Manager统计的容量分配过剩的虚拟机,从列表中可以看出,大多数虚拟机的CPU利用率不足10%,实际使用的内存也较低(尽管为大多数虚拟机分配了2GB内存,但实际使用只有256MB~576MB内存之间)。
在虚拟化的项目中,对内存占用是最大、要求最高的。在实际使用中也是如此,管理员会发现,物理主机的内存使用率会接近80%,甚至90%。因为在同一物理主机上,规划的虚拟机数量较多,而且每个虚拟机分配的内存又较大(总是超过该虚拟机实际使用的内存),所以会导致主机可用内存减少,如图1-2-3所示,这是某正在运行中的VMware ESXi 6主机的CPU与内存使用情况。
在为物理主机配置内存时,要考虑在该主机上运行多少虚拟机,这些虚拟机一共需要多少内存。一般情况下,每个虚拟机需要的内存在1GB~4GB,甚至更多,还要为VMware ESXi预留一部分内存。通常情况下,配置了4个8核心CPU的主机,一般需要配置96GB,甚至更高的内存,配置2个6核心CPU的主机,通常要配置32GB~64GB内存。
1.2.6 统计与计算现有容量
如果要将现有的物理服务器迁移到虚拟机中,可以制作一张统计表,包括现有物理服务器的CPU型号、数量、CPU利用率,现有内存及内存利用率,现有硬盘数量、大小、RAID及使用情况。表1-1是某单位现有服务器的情况统计(在实际情况下,该单位服务器大约有100台,表1-1及后文表1-2只是列出了部分服务器的型号及资源使用统计)。
根据上表,我们计算每台服务器实际需要的CPU、内存与磁盘空间,计算方式为:
实际CPU资源=该台服务器CPU频率×CPU数量×CPU使用率
实际内存资源=该台服务器内存×内存使用率
实际硬盘空间=硬盘容量−剩余空间
例如,该表中第一台服务器需要3.0GHz×2×15%=0.9GHz,内存为2GB×30=0.6GB,硬盘为73GB-30GB=43GB。
然后在表1-1后面计算,实际得出情况如表1-2所示。
经过计算,本项目中已经使用了91.1944GHz的CPU资源,以CPU频率3.0HzCPU为例,则需要30核心(负载100%),但要考虑整体项目中CPU的负载率为60%~75%,以及管理等其他开销,则至少需要40个CPU核心,如果配置4个6核心的服务器,则需要大约4台物理主机。至于内存,现在已经使用了182GB,加上管理以及富余,以360GB计算,每服务器96GB~128GB即可。
如果不购买新的服务器,而从中选择4~8台高配置的服务器(如6台),将这100台服务器使用虚拟化技术,迁移到其中的6台,则节省的电费(以每台服务器400W、工业用电1.1元/度计算)约34.69万元。
如果要使用现有的服务器,则需要为某些做虚拟化主机的服务器扩充内存。使用现有服务器,如果不扩充现有服务器的CPU,在2个CPU的主机中,将内存扩充到64GB为宜。
根据表1-2计算可知,己使用6.9TB的硬盘容量,要为整个虚拟化系统规划10TB,甚至更多的存储。在备份原有服务器数据的情况下,可以集中300GB、146GB的硬盘到虚拟化主机上统一使用。在使用6台物理服务器做虚拟化主机的情况下,每台服务器需要1.5TB~3TB的空间。在使用RAID5时,使用6块300GB即可提供1.5TB可用容量,使用8块300GB做RAID50时可提供1.8TB可用容量。使用12块300GB硬盘、RAID50时可提供3TB的容量。
1.2.7 新购服务器的选择
在实施虚拟化的过程中,如果现有服务器满足需求,则可以使用现有的服务器,如果现有服务器不能完全满足需求,则可以部分采用现有服务器,然后再采购新的服务器。
在规划vSphere数据中心时,有两种不同的作法。一种是较小的服务器数量,但每台服务器的性能较高。例如,使用4CPU、4U的机架式服务器。另一种是较多的服务器数量,但每服务器服务器性能相对较差。例如,使用2CPU、2U的机架式服务器。还有一种是使用更为集中的刀片服务器。具体采用哪种,看企业需求、预算。
如果采购新的服务器,可供选择的产品比较多。如果单位机房在机柜存放,则优先采购机架式服务器。采购的原则是:
(1)如果2U的服务器能满足需求,则采用2U的服务器。通常情况下,2U的服务器最大支持2个CPU,标配1个CPU。在这个时候,就要配置2个CPU。
如果2U的服务器不能满足需求,则采用4U的服务器。通常情况下,4U的服务器最大支持4个CPU并标配2个CPU,在购置服务器时,为服务器配置4个CPU为宜。如果对服务器的数量不做限制,采购两倍的2U服务器要比采购4U的服务器节省更多的资金,并且性能大多数也能满足需求。
(2)CPU:在CPU频率与核心数选择时,尽可能选择多核心较低频率的CPU。因为根据Intel研究显示,利用频率的提高增加13%的性能,在耗电上要增加73%。增加1个核心并将频率降低20%,性能可以增加70%,而耗电仅增加2%。如果再增加两个核心,总耗电仅增加6%,而性能增加210%。
(3)内存:在配置服务器的时候,尽可能为服务器配置较大内存。在虚拟化项目中,内存比CPU更重要。一般情况下,2个6核心的2U服务器配置64GB内存,4个6核心或8核心的4U服务器配置128GB或更多的内存。
(4)网卡:在选择服务器的时候,还要考虑服务器的网卡数量,至少要为服务器配置2接口的千兆网卡,推荐4端口千兆网卡。
(5)电源:尽可能配置两个电源。一般情况下,2U服务器选择2个450W的电源可以满足需求,4U服务器选择2个750W电源可以满足需求。
(6)硬盘:如果虚拟机保存在服务器的本地存储,而不是网络存储,则为服务器配置6个硬盘做RAID5,或者8个硬盘做RAID50为宜。由于服务器硬盘槽位有限,故不能选择太小的硬盘,当前性价比高的是600GB的SAS硬盘。2.5英寸SAS硬盘转速是10000转,3.5英寸SAS硬盘转速为15000转。选择2.5英寸硬盘具有较高的IOPS。
至于服务器的品牌,则可以选择IBM、HP或Dell。表1-3所示是几款服务器的型号及规格。
几种服务器外形如图1-2-4~图1-2-6所示。
为了提高服务器的密度,一些厂商采用类似“刀片”服务器的作法,在2U大小的机架中,集成4个节点服务器,这样一台服务器相当于4台独立的服务器使用,进一步节省了空间,如DELL PowerEdge C6100就是这么一款机器,它支持12个3.5英寸或24个2.5英寸热插拔SAS、SATA或固态硬盘,集成4个节点,每个节点可以配2个CPU、96GB内存、2端口网卡。通过共享电源、风扇和底板,可以有效降低功耗,实现高能效并节省运营成本。C6100正面、背面如图1-2-7、图1-2-8所示。
当对服务器占用空间有较高要求时,可以配置刀片服务器,如华为Tecal E6000服务器,8U的空间,可以最大配置10个刀片服务器,每个服务器可以配2个CPU、2个SAS硬盘、12个内存插槽、双端口网卡。华为E6000系列服务器如图1-2-9所示。
1.2.8 存储的选择
在虚拟化项目中,推荐采用存储设备,而不是服务器本地硬盘。在配置共享的存储设备,并且虚拟机保存在存储设备时,才能快速实现并使用HA、FT、vMotion等技术。在使用VMware vSphere实施虚拟化项目时,一个推荐的作法是将VMware ESXi安装在服务器的本地硬盘上,这个本地硬盘可以是一个固态硬盘(30GB~60GB即可),也可以是一个SD卡(配置1GB~2GB的SD卡即可),甚至可以是1GB~2GB的U盘。如果服务器没有配置本地硬盘,也可以从存储上为服务器划分5.2GB~10GB的分区用于启动。
【说明】
(1)要安装ESXi6,至少需要容量为1GB的引导设备。如果从本地磁盘或SAN/iSCSI LUN进行引导,则需要5.2GB的磁盘,以便可以在引导设备上创建VMFS卷和4GB的暂存分区。如果使用较小的磁盘或LUN,则安装程序将尝试在一个单独的本地磁盘上分配暂存区域。如果找不到本地磁盘,则暂存分区/scratch将位于ESXi主机ramdisk上,并链接至/tmp/scratch。由于USB和SD容易对I/O产生影响,安装程序不会在这些设备上创建暂存分区。同样,使用大型USB/SD设备并无明显优势,因为ESXi仅使用前1GB的空间。在USB或SD设备上进行安装时,安装程序将尝试在可用的本地磁盘或数据存储上分配暂存区域。如果未找到本地磁盘或数据存储,则/scratch将被放置在ramdisk上。您应在安装之后重新配置/scratch以使用持久性的数据存储。
(2)在HP DL380 G8系列服务器主板上集成了SD接口,IBM 3650 M4主板集成了USB接口。可以将SD卡或U盘插在该接口中用于安装VMware ESXi。
如果在虚拟化项目中选择存储,项目中服务器数量较少时,可以选择SAS HBA接口(见图1-2-10)的存储,如果服务器数量较多,则需要选择FC HBA接口(见图1-2-11)的存储并配置FC的光纤交换机。SAS HBA接口可以达到6Gbps,而FC HBA接口可以达到8 Gbps。
在选择存储设备的时候,要考虑整个虚拟化系统中需要用到的存储容量、磁盘性能、接口数量、接口的带宽。对于容量来说,整个存储设计的容量要是实际使用容量的2倍以上。例如,整个数据中心已经使用了1TB的磁盘空间(所有己用空间加到一起),则在设计存储时,要至少设计2TB的存储空间(是配置RAID之后,而不是没有配置RAID、所有磁盘相加的空间)。
例如:如果需要2TB的空间,在使用600GB的硬盘,用RAID10时,则需要8块硬盘,实际容量是4个硬盘的容量,600GB×4≈2.4TB。如果要用RAID5时,则需要5块硬盘。
在存储设计中另外一个重要的参数是IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。每个磁盘系统的IOPS是有上限的,如果设计的存储系统实际的IOPS超过了磁盘组的上限,则系统反应会变慢,影响系统的性能。简单来说,15000转的磁盘的IOPS是150,10000转的磁盘的IOPS是100,普通的SATA硬盘的IOPS大约是70~80。一般情况下,在做桌面虚拟化时,每个虚拟机的IOPS可以设计为3~5个,普通的虚拟服务器IOPS可以规划为15~30个(看实际情况)。当设计一个同时运行100个虚拟机的系统时,IOPS则至少要规划为2000个。如果采用10000转的SAS磁盘,则至少需要20个磁盘。当然这只是简单的测算,后文会专门介绍IOPS的计算。
在规划存储时,还要考虑存储的接口数量及接口的速度。通常来说,在规划一个具有4主机、1个存储的系统中,采用具有2个接口器、4个SAS接口的存储服务器是比较合适的。如果有更多的主机,或者主机需要冗余的接口,则可以考虑配FC接口的存储,并采用光纤交换机连接存储与服务器。表1-4所示是几种低端存储的型号及参数,可以满足大多数的中小企业虚拟化系统。
1.2.9 网络及交换机的选择
在一个虚拟化环境里,每台物理服务器一般拥有更高的网卡密度。虚拟化主机有6个、8个,甚至更多的网络接口卡(NIC)是常见的,反之,没有被虚拟化的服务器只有2个或4个NIC。这成为数据中心里的一个问题,因为边缘或分布交换机放在机架里,以简化网络布线,然后向上传输到网络核心。在这种解决方案里,一个典型的48端口的交换机仅能处理4~8台虚拟主机。为了完全填满机架,需要更多的边缘或分布交换机。
在虚拟化环境里,当多个工作负荷整合到这些主机里时,运行在主机上的工作负荷数量大了,网络流量增加了,网络利用率将不再像过去每台物理服务器上那样低了。
为了调节来自整合工作负荷增加的网络流量,可能需要增加从边缘或分布交换机到网络核心的向上传输数量,这时对交换机的背板带宽及上行线路就提出较高的要求。
另一个关键的改变来自最新一代虚拟化产品的动态性质,其诸如热迁移和多主机动态资源管理。虚拟化里固有的动态更改性能意味着不能再对服务器之间的流量流动做任何假设。
在进行虚拟机之间的动态迁移,或者将虚拟机从一个存储迁移到另一个存储时,为了减少迁移的时间,不对关键业务造成影响,在迁移期间会占用大量的网络资源,另外,在迁移的时候,虽然可以减少并发迁移的数量,但在某些应用中,可能会同时迁移多台虚拟机,这对交换机背板带宽以及交换机性能的要求更高。
当工作负荷捆绑于虚拟硬件,机架或交换机被告知将交换大量的网络流量时,服务器能分配流量到机架或交换机。既然工作负荷能动态地从一台物理主机移动到一台完全不同的物理主机,在网络设计里,位置不再用到。网络设计现在必须调节动态数据流,这可能从任何虚拟化主机到其他虚拟化主机或者物理工作负荷开始。摒弃传统的core/edge设计,数据中心网络可能需要找寻更多全网状架构或“光纤”,这能完全调节来自任何虚拟化主机或者其他虚拟化主机的交易流。
另外,虚拟化使数据中心里网络层的一些能见度降低了。网络工程师在虚拟交换机里没有能见度,也不能轻松决定哪个物理NIC对应哪个虚拟交换机。这在故障检修中是最重要的信息,为了减少故障率,为交换机配置冗余的业务板及冗余电源也应该考虑,同时,在尽可能的前提下,配置更好的交换机。
在大多数的情况下,物理主机配置4个千兆网卡,并且为了冗余,尽可能是每两个网卡绑定在一起,用作负载均衡及故障转移。
对于中小企业虚拟化环境中,配置华为S57系列千兆交换机即可满足大多数的需求。华为S5700系列分24端口、48端口两种。如果需要更高的网络性能,可以选择华为S9300系列交换机。如果在虚拟化规划中,物理主机中的虚拟机只需要在同一个网段(或者在两个等有限的网段中),并且对性能要求不高,但对价钱敏感的时候,可以选择华为的S1700系列普通交换机。无论是VMware ESXi,还是Hyper-V Server,都支持在虚拟交换机中划分VLAN,即将主机网卡连接到交换机的Trunk端口,然后在虚拟交换机一端划分VLAN,这样可以在只有一到两个物理网卡时,让虚拟机划分到所属网络中的不同VLAN中。表1-5所示是推荐的一些交换机型号及参数。
【说明】
华为S5700系列为盒式设备,机箱高度为1U,提供精简版(LI)、标准版(SI)、增强版(EI)和高级版(HI)四种产品版本。精简版提供完备的二层功能;标准版支持二层和基本的三层功能;增强版支持复杂的路由协议和更为丰富的业务特性;高级版除了提供上述增强版的功能外,还支持MPLS、硬件OAM等高级功能。在使用时可以根据需要选择。
1.2.10 虚拟桌面规划
在虚拟化项目中,存储、服务器、网络,这三者相辅相成,缺一不可。在规划的时候,任何一个环节如果存在瓶颈,都会影响总体的性能。服务器、网络、存储前文已经有过介绍,而在本节,我们以VMware View(虚拟桌面)的规划与设计为例对存储或服务器中所使用的磁盘、磁盘数量进行深入介绍。
许多初次学习虚拟化或准备实施虚拟化项目的工程师,经常问我:我有4台服务器,256GB内存,能跑300个虚拟桌面吗?也有人问我,要配200个桌面,需要什么配置?
对于这些,我经常很无奈。虚拟化(无论服务器虚拟化,还是桌面虚拟化)是一个综合的应用、配置。CPU、内存、存储、网络、应用,任何一点,都可能会形成瓶颈。这不是由单单某一个方面决定的。
我有时举例,你有一批货物,要从A地运到B地,有一辆车,能否满足需求?这既要看你车的承重量(负载),也要看车厢的体积(能否放得下),还要看从A到B这个路上,有没有路能承担,有没有堵车,另外,你需要多长时间拉过去,一趟能否拉完,这些都是问题。
简单来说,设计VMware View桌面,要看你的每个桌面的用途,需要安装的操作系统,大多数软件运行时所需要的CPU个数、内存大小、存储的空间以及所需要的IOPS,最后要看桌面的数量。
计算或统计出每个View桌面的情况,再乘以桌面数量,得出一个大体的数目。
之后再规划需要的服务器的数量、每个服务器的配置、存储的配置,得出一个相对合理的结果。在规划时,物理CPU核心与虚拟CPU核心、物理内存与虚拟内存进行适当比例选择。
典型的View体系结构设计采用容器策略,容器包含相应的组件,而组件则可通过使用 vSphere 5.1或更高版本基础架构最多支持10000个远程桌面。由于硬件配置、所用的View和vSphere软件版本以及其他特定于环境的设计因素的不同,容器的定义可能存在差异。
总体来说,要规划View桌面,需要:
估算虚拟机桌面的内存要求。
估算虚拟机桌面的CPU要求。
选择合适的系统磁盘大小。
具体的规划我们不展开讨论,一般情况下,不同类型员工的View桌面,即运行在vSphere中的虚拟机,需求存在很大差异,因此很多企业都通过试运行来确定企业中不同类型员工所需的适当内存设置。
开始时最好分配1GB(32位Windows7或更高版本桌面)或2GB(64位Windows7或更高版本桌面)的内存。如果要将其中的一个硬件图形加速功能用于3D工作负载,VMware建议使用2个虚拟CPU和4GB的RAM。在试运行阶段中,需要监视不同类型员工的使用性能和所用磁盘空间,并做出适当调整,最后确定适用于每种类型员工的最佳设置。
在估算CPU时,必须收集有关各类企业员工平均CPU利用率的信息。
对CPU的具体要求因员工类型而异。在试运行阶段,请使用性能监测工具(如虚拟机中的Perfmon、ESXi中的esxtop或vCenter Server性能监测工具)来了解这些员工组的平均及峰值CPU利用率。另外请遵循以下原则。
(1)软件开发人员或其他具有高性能需求的超级用户对CPU的要求可能高于知识型员工和任务型员工。对于计算密集型任务、需要用PCoIP显示协议播放720p视频,以及64位Windows 7和更高版本桌面,我们建议您部署双虚拟CPU。
(2)至于其他情形,则建议使用单虚拟 CPU。
在分配磁盘空间时,还要为操作系统、应用程序和用户可能会安装或生成的其他内容提供足够的空间。这个容量通常低于物理 PC 磁盘的容量。
数据中心磁盘空间每千兆字节的成本通常高于传统PC部署中台式机或笔记本电脑的成本,因此需要对操作系统映像大小进行优化。以下建议可用于优化映像大小。
(1)删除不需要的文件。例如,减少临时Internet文件的配额。
(2)关闭Windows服务,例如,索引器服务、磁盘碎片整理程序服务和还原点。
(3)选择能满足未来增长需要的虚拟磁盘大小,但不要过大。
(4)使用集中的文件共享或View Composer 永久磁盘存储用户生成的内容和安装的应用程序。
(5)如果你正在使用vSphere5.1或更高版本,请为vCenter Server和链接克隆桌面池启用空间回收功能。
根据整个系统中VMware View桌面的数量规划所需要的VMware ESXi主机。例如,如果你需要同时运行300个View桌面,每个View桌面准备运行32位的Windows7专业版或企业版,每个虚拟机3GB内存、2个vCPU,24GB的操作系统硬盘空间(克隆链接,共享),每用户20GB的存储空间。
则整个View系统需要900GB虚拟内存、600个虚拟CPU,200个用户需要6TB的存储空间。
(1)作为一般性架构,通常以每个CPU核心运行8到10个虚拟桌面作为考虑计算容量的依据。所以,当需要600个虚拟CPU时,需要大约60个CPU核心。如果每CPU是6核心,则大约需要10个CPU。如果每服务器配2个6核心的CPU,则需要5台服务器。
(2)从虚拟桌面RAM、主机RAM和过量分配比率方面思考内存容量问题。尽管可以为每个CPU核心部署8到10个虚拟桌面,但如果虚拟桌面占用1GB或更多的RAM,就必须仔细衡量物理RAM需求。
虚拟机内存与物理主机内存的比例,这个要具体考虑。在初期,可以按2∶1的比例来配置,例如总虚拟内存需要900GB,则可以配500GB左右的物理内存。考虑到需要5台服务器,则每台服务器配128GB内存较为合适。如果内存不能满足需求,则可以考虑将每服务器内存扩充到196GB或256GB。
(3)存储,则是最重要的。单独从容量来看,当用户需求为6TB时,物理存储的容量应该不低于其1.5倍容量,即9TB~12TB。更重要的是大容量的View桌面还需要考虑另外一个重要的参数,IOPS。
1.2.11 磁盘与IOPS
在规划存储系统时,要考虑的两大瓶颈主要体现在2个方面:吞吐量与IOPS。
吞吐量主要取决于阵列的构架,光纤通道的大小(阵列一般都是光纤阵列,至于SCSI这样的SSA阵列,我们不讨论)以及硬盘的个数。阵列的构架因每个阵列不同而不同,它们也都存在内部带宽(类似于PC的系统总线),不过一般情况下,内部带宽都设计得很充足,不是瓶颈的所在。
光纤通道的影响还是比较大的,一块8Gb的光纤卡,所能支撑的最大流量应当是8Gb/10(小b)=800MB/s(大B)的实际流量。一个双控制器,每控制器4个光纤接口,所能实现的最大吞吐量则是2×4×800MB=6400MB/s。
IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。
决定IOPS主要取决于阵列的算法、cache命中率,以及磁盘个数。阵列的算法因为不同的阵列不同而不同,所以,在使用每个存储之前,有必要了解这个存储的一些算法规则与限制。
cache的命中率取决于数据的分布、cache size的大小、数据访问的规则,以及cache的算法,如果完整地讨论下来,会变得很复杂。在这里只强调一个cache的命中率,如果一个阵列,读cache的命中率越高越好,一般表示它可以支持更多的IOPS,为什么这么说呢?这就需要讨论硬盘IOPS关系了。
每个不同类型物理硬盘能处理的IOPS是有限制的,如表1-6所示。
如果一个阵列有100块15KRPM的光纤硬盘,那么,它能撑的最大IOPS为100×180=18000,这个为硬件限制的理论值,如果超过这个值,硬盘的响应可能会变得非常缓慢而不能正常提供业务。
在raid5与raid10上,读iops没有差别,但是,相同的业务写iops,最终落在磁盘上的iops是有差别的,而我们评估的却正是磁盘的IOPS,如果达到了磁盘的限制,性能肯定是上不去了。
如果知道磁盘的类型(接口、转速)、磁盘个数,想求这些磁盘所能提供的最高IOPS,可以根据下列公式计算。
如果有了规划的IOPS,选择了磁盘类型,而需要磁盘个数,可以根据下列公式计算。
其中,写惩罚,RAID-5单次写入需要分别对数据位和校验位进行2次读和2次写,所以写惩罚为4,而RAID10的写惩罚则是2。
同样,对于上述案例中的300个View桌面,要计算IOPS,应该如下规划。首先了解View桌面在不同状态时所需要的IOPS。
- 系统启动时:26IOPS
- 系统登录时:14IOPS
-
工作时
- 轻量:4~8IOPS
- 普通:8~12IOPS
- 重量:12~20IOPS
- 空闲时:4IOPS
- 登出时:12IOPS
- 离线:0IOPS
- 那么,我们规划300个View桌面可以同时工作,但最多有100个可能会同时启动,则:
- 100个同时启动时:2600IOPS
- 100个系统登录时:1400IOPS
-
300个工作时
- 轻量:1200~2400IOPS
- 普通:2400~3600IOPS
- 重量:3600~6000IOPS
- 空闲时:1200IOPS
- 登出时:3600IOPS
针对此案例,我们可以设计一共需要3000个IOPS的存储系统。
根据上面的计算公式,在需要3000个IOPS时:
选择10000转的600GB的SAS磁盘,选择RAID5,在cache命中率30%时,如果60%读,40%写,计算得数为46.6。如果是20%读,80%写,计算得数为77.07。
如果是45个磁盘,每5~6个组成一个RAID5。这样大约组成9组,每组磁盘空间浪费一块。如果是46个,实际上空间约是9×4×600GB=21600GB=21.6TB。
同样是10000转的600GB的SAS磁盘,选择RAID10,在cache命中率30%时,如果读60%,写40%,则需要28.15个磁盘,如果读20%,写80%,则需要40.15个磁盘。
在RAID10中,28个磁盘,提供的空间是14×600GB=7.2TB,40个磁盘,提供的空间是20×600GB=12TB。