VMware 解决方案规划设计 虚拟化技术的引入大大减少了需要维护和管理的设备,如服务器、交换机、机架、网线、UPS、空调等。原先设备可以根据制度进行折旧报废、或者利旧更新,使得IT管理人员有了更多的选择。虚拟化可以提高资源利用率,降低硬件采购成本,更加节能和节省空间,让整个数据中心更加灵活。 下图是实施了VMware虚拟化方案之后的IT整体架构。
图:数据中心整体架构图
服务器虚拟化后,我们搭建了虚拟化集群,并统一进行管理。原有的服务器设备仍然可以正常运行,并且与虚拟化服务器融合在一起。 随着虚拟化的不断应用,可以不断动态地增加虚拟化集群的规模,搭建更健康的IT体系架构。客户端方面,延续了原先的访问模式,对于虚拟服务器的数据交互等操作,等同于原先传统物理服务器的的访问模式,不会对业务系统造成任何不利影响。 本章节接下来的部分,将从计算,存储,网络,可用性,管理与监控五个方面对客户的数据中心进行全面高效的规划设计。 计算资源规划虚拟机上运行着为各个用户和整个业务线提供支持的应用与服务,其中有很多都是关键业务应用,因此,用户必须正确设计、调配和管理虚拟机,以确保这些应用与服务能够高效运行。 VMware ESXi主机是数据中心的基本计算构造块,这些主机资源聚合起来可构建高可用动态资源池环境,作为数据中心各应用的整体计算资源。 本小节将根据客户的生产环境,对计算资源进行整体规划,包括物理服务器,虚拟机等资源。 Ø 指导原则与最佳实践 u 除非确实需要多个虚拟CPU (vCPU),否则默认配置一个,使用尽可能少的虚拟CPU。操作系统必须支持对称多处理(SMP)功能。应用必须是多线程的,才能受益于多个虚拟CPU。虚拟CPU的数量不得超过主机上物理CPU核心(或超线程)的数量。 u 不要规划使用主机的所有CPU或内存资源,在设计中保留一些可用资源。要实现虚拟机内存性能最优化,关键是在物理RAM中保留虚拟机的活动内存,应避免过量分配活动内存。 u 始终将透明页共享保持启用状态,始终加载VMware Tools并启用内存释放。 u 资源池CPU和内存份额设置不能用于配置虚拟机优先级。资源池可用于为虚拟机分配专用CPU和内存资源。 u 在工作负载极易变化的环境中配置vSphere DPM,以降低能耗和散热成本。 u 部署一个系统磁盘和一个单独的应用数据磁盘。如果系统磁盘和数据磁盘需要相同的I/O特征(RAID级别、存储带宽和延迟),应将它们一起放置在一个数据存储中。 u 应用要求应作为向虚拟机分配资源的主要指标。使用默认设置部署虚拟机,明确采用其他配置的情况除外。 u 像保护物理机一样保护虚拟机的安全。确保为虚拟基础架构中的每个虚拟机启用了防病毒、反间谍软件、入侵检测和防火墙。确保随时更新所有的安全保护措施。应用合适的最新补丁,要将虚拟机软件和应用保持在最新状态,应使用补丁程序管理工具,或者安装和配置Update Manager。 u 为避免管理连接问题,应向每个ESXi主机分配静态IP地址和主机名。为便于管理,应为DNS配置每个ESXi主机的主机名和IP地址。 u 确保数据中心有足够的电源和散热容量以避免服务中断。 u 无论选择了哪个硬件平台,都应设计一致的平台配置,特别是在VMware集群中。一致性包括CPU类型、内存容量和内存插槽分配、网卡和主机总线适配器类型,以及PCI插槽分配。 u 使用一个或多个启用了vSphere HA和DRS的集群,以增加可用性和可扩展性。 u 使用横向扩展还是纵向扩展集群由集群用途、基础架构规模、vSphere限制以及资金和运营成本等因素确定。 Ø 计算资源规划 基于上述指导原则与最佳实践,结合客户数据中心的实际情况,我们对计算资源进行如下的规划设计。 我们使用容量规划工具对客户数据中心里的1000款不同的应用进行了采样评测,以获取这些应用对CPU和内存的需求情况,具体的分析结果如下所示。 [td] 表:CPU资源需求 [td] 表:内存资源需求 我们建议如下的ESXi主机CPU与内存配置。 [td] 表:ESXi主机CPU配置建议 [td] 表:ESXi主机内存配置建议 对于上述配置的一些说明如下。 u 每台服务器的运算能力按照峰值而非平均值进行估算,确保可以支持虚拟机应用同时运行的最高值。 u CPU和内存的估算需要预留20%的空间用于突发的计算能力过量。 u 内存共享按照50%的比例进行估算,这个数值是基于整合的应用全部以WindowsServer 2003服务器操作系统进行核算的。 接下来,我们将根据上面这些应用需求与ESXi主机配置,对计算资源进行估算。 下面这个公式用来估算可以满足数据中心中这些虚拟机在CPU峰值时正常运行所需的ESXi主机个数。 | =
需要的ESXi主机个数 | 每台ESXi主机的可用CPU |
根据上述公式,客户为了使这1000款应用可以在CPU峰值时正常运行所需的ESXi主机个数是: | = 16.59
个ESXi主机 | 30,720MHz
(每台主机的可用CPU频率) |
下面这个公式用来估算可以满足数据中心中这些虚拟机在内存峰值时正常运行所需的ESXi主机个数。 | =需要的ESXi主机个数 | 每台ESXi主机的可用内存 |
根据上述公式,客户为了使这1000款应用可以在内存峰值时正常运行所需的ESXi主机个数是: | =
13.67
个ESXi主机 | 26,214MB
(每台主机的可用内存) |
从CPU的角来说,需要17台ESXi主机,而从内存的角度来看,则需要14台物理主机。很显然,我们应该为该数据中心配置17台ESXi主机并组建集群。为了使用vSphere的高可用功能,我们还需要添加一台ESXi主机到该集群,因此,总的物理主机数目为18台。 上述对计算资源的规划可以满足虚拟机环境资源突发时的资源溢出要求。 存储资源规划正确的存储设计对组织实现其业务目标有着积极的影响,可以为性能良好的虚拟数据中心奠定一定的基础。它可以保护数据免受恶意或者意外破坏的影响,同时防止未经授权的用户访问数据。存储设计必须经过合理优化,以满足应用、服务、管理员和用户的多样性需求。 存储资源规划的目标是战略性地协调业务应用与存储基础架构,以降低成本、改善性能、提高可用性、提供安全性,以及增强功能,同时将应用数据分配到相应的存储层。 本小节将根据客户的生产环境,对存储资源进行整体规划,包括共享存储逻辑规划,存储空间规划,存储I/O控制规划,存储分层规划等。 Ø 指导原则与最佳实践 在规划存储资源时,我们会遵循如下的指导原则与最佳实践。 u 构建模块化存储解决方案,该方案可以随时间推移不断扩展,以满足组织的需求,用户无需替换现有的存储基础架构。在模块化存储解决方案中,应同时考虑容量和性能。 u 每个存储层具有不同的性能、容量和可用性特征,只要不是每个应用都需要昂贵、高性能、高度可用的存储,设计不同的存储层将十分经济高效。 u 配置存储多路径功能,配置主机、交换机和存储阵列级别的冗余以便提高可用性、可扩展性和性能。 u 允许集群中的所有主机访问相同的数据存储。 u 启用VMware vSphere Storage APIs - Array Integration (VAAI)与存储I/O控制。配置存储DRS以根据使用和延迟进行平衡。 u 根据SLA、工作负载和成本在vSphere中创建多个存储配置文件,并将存储配置文件与相应的提供商虚拟数据中心对应起来。 u 对于光纤通道、NFS和iSCSI存储,可对存储进行相应设计,以降低延迟并提高可用性。对于每秒要处理大量事务的工作负载来说,将工作负载分配到不同位置尤其重要(如数据采集或事务日志记录系统)。通过减少存储路径中的跃点数量来降低延迟。 u NFS存储的最大容量取决于阵列供应商。单个NFS数据存储的容量取决于将访问数据存储的每个虚拟机所需的空间,乘以在延迟可接受的情况下可以访问数据存储的虚拟机数量。考虑将存储DRS配置为使其成员数据存储的使用量保持在80%(默认设置)的均衡水平。 u 单个VMFS数据存储的容量取决于将访问数据存储的每个虚拟机所需的空间,乘以在延迟可接受的情况下可以访问数据存储的虚拟机数量。考虑配置存储DRS,使数据存储使用量保持在80%的均衡水平。保留10%到20%的额外容量,用于容纳快照、交换文件和日志文件 u 为促进对iSCSI资源的稳定访问,应该为iSCSI启动器和目标配置静态IP地址。 u 对于基于IP的存储,应使用单独的专用网络或VLAN以隔离存储流量,避免与其他流量类型争用资源,从而可以降低延迟并提高性能。 u 根据可用性要求选择一个RAID级别,对大多数虚拟机工作负载而言,如果阵列具有足够的电池供电缓存,RAID级别对性能不会产生影响。 u 对于大多数应用,除非存在对RDM的特定需求,否则请使用VMDK磁盘。
Ø 共享存储逻辑规划 考虑采用本地存储将无法形成整个虚拟化集群资源池,因此无法有效地使用vSphere虚拟化环境的高可用,灵活配置等功能。本方案将建议购置或利用现有的存储交换网络SAN网络,并新增磁盘阵列作为共享SAN存储,同时做好相应的设备(SAN HBA卡、交换机等)布线、空间、场地布局等相应的规划。 在设计存储架构时应该充分考虑到冗余和性能,因此存储架构的选择根据国家和各省级数据中心整体应用对存储的IOPS和吞吐量的需求进行规划,涉及到端到端的主机适配器选择、控制器和端口数量选择以及磁盘数量和RAID方式选择等。 每台vSphere服务器到存储的连接示意图如下所示。 图:每台服务器的存储连接示意图
针对上图的一些说明如下。 u 确保每个ESXi主机内虚拟机并发IO队列长度与HBA适配卡设置保持一致。 u 底层LUN的需求根据实际虚拟机应用对存储IOPS的实际需求进行规划。 u 根据应用的需要设置LUN的RAID结构,如对于随机读写的数据库如Oracle、SQL数据库,建议在LUN级别采用RAID10结构,对于数据库日志通常为连续写或恢复时连续读,建议在LUN级别采用RAID5结构。 u 对于IO密集型的应用尽量采用单独的VMFS存储,避免在存储端与其他应用产生IO争用。 u 多个虚拟机共用一个数据存储或者多个主机共享一个数据存储时,可以启用存储队列QoS确保核心应用的延时在可控范围以及对数据存储读写的优先级。 u 通常情况下1~2TB的LUN大小具有较好的性能和可管理性。 u 磁盘阵列的选择应该满足整个虚拟化环境最大IOPS的吞吐量需求,并配置足够的存储处理器、缓存和端口数。 u 对于双活ALUA磁盘阵列(非双活磁盘阵列),为了防止链路抖动,对于每个LUN在同一时间配置只有一个ESXi服务器通过一个存储处理器进行访问,这就需要在多路径策略选择时设置为MRU(最近使用策略),该策略可以保证只有在某个路径故障时才启用另一个存储处理器连接LUN。
Ø 存储空间规划 规划LUN容量时,建议每个LUN运行10到20个VM(数据事务类应用可以适当减少),并且每个LUN的使用量不超过容量的80%。 若VM需要直接访问存储卷,如NTFS或EXT3,应在存储中另外创建一LUN,以RDM方式映射到VM,VM以裸磁盘方式使用。 LUN容量规划的公式如下所示。 LUN容量 = (Z x (X + Y) *1.25) 其中: n Z = 每LUN上驻留10个虚拟机 n Y = 虚拟磁盘文件容量 n X = 内存大小 根据客户的实际生产环境的情况,即:1GB内存,单一VMDK文件需要80GB,LUN容量计算如下: LUN容量= (10 x (1 + 80) * 1.25)
≈
1000 GB 根据最佳实践,部署的每一个VMFS文件系统下最好分配一个LUN磁盘,这样可以避免虚拟机文件VMDK跨LUN造成的性能不一致等问题。因此在构建VMFS文件系统的空间时应该充分考虑在其上运行的虚拟机数量和可增长空间,在规划时将LUN的空间预留充足。虽然将来仍然可以利用vmkfstools等工具在线扩充VMFS,但是仍然无法避免上述虚拟机磁盘跨LUN使用的问题。 我们建议客户采用如下的存储配置。 [td] 表:存储配置建议 Ø 存储分层规划 每个存储层具有不同的性能、容量和可用性特征,只要不是每个应用都需要昂贵、高性能、高度可用的存储,设计不同的存储层将十分经济高效。一个典型的存储分层实例如下图所示。 图:存储分层实例
在规划存储分层时,我们主要考量应用和服务的如下存储特征。 u 每秒I/O操作数(IOPS)要求 u 每秒兆字节数(MBps)要求 u 容量要求 u 可用性要求 u 延迟要求 并依据下列信息将应用及服务移至设计有匹配特征的存储层。 u 考虑任何现有的服务级别协议(SLA) u 数据在信息生命周期中可能会在存储层之间移动 基于上述原则,我们为客户所做的存储分层规划如下所示。 [td] | | | | | | | | | - 电子邮件 - Web 服务器 - 客户资源管理 | | | | | | | | | | | | | | | | | | |
表:存储分层实现 Ø 数据存储群集规划 数据存储以及与数据存储群集关联的主机必须符合特定要求,才能成功使用数据存储群集功能。 创建数据存储群集时,应遵循下列准则。 u 数据存储群集必须包含类似的或可互换的数据存储。 一个数据存储群集中可以混用不同大小和I/O能力的数据存储,还可以混用来自不同阵列和供应商的数据存储。但是,下列类型的数据存储不能共存于一个数据存储群集中。 · 在同一个数据存储群集中,不能组合使用NFS和VMFS数据存储。 · 在同一个启用了存储DRS的数据存储群集中,不能结合使用复制的数据存储和非复制的数据存储。 u 连接到数据存储群集中的数据存储的所有主机必须是ESXi 5.0及更高版本。如果数据存储群集中的数据存储连接到ESX/ESXi 4.x及更早版本的主机,则存储DRS不会运行。 u 数据存储群集中不能包含跨多个数据中心共享的数据存储。 u 最佳做法是,启用了硬件加速的数据存储不能与未启用硬件加速的数据存储放在同一个数据存储群集中。数据存储群集中的数据存储必须属于同类,才能保证实现硬件加速支持的行为。 基于上述原则,我们建议户采用如下数据存储集群规划。 表:数据存储集群设计 |