虚拟化是一个广义术语,通常指的是在虚拟基础上而不是在实际基础上运行的计算组件。它是简化管理和优化资源的解决方案。服务器虚拟化是一种集成基于x86的服务器以提高资源利用率和性能的技术。
本文从企业业务系统和管理的角度,重点分析了X86技术架构下虚拟网卡和SR-IOV,NUMA,虚拟磁盘格式的特点,探讨了不同应用下的资源划分和性能优化方案。场景。希望通过多应用系统下的实践和优化配置,提高X86服务器的性能和资源利用效率。
1,x86虚拟化两种常见架构
对于x86虚拟化,有两种常见的体系结构:托管体系结构和裸机体系结构。托管体系结构在操作系统之上运行虚拟化层,并作为具有对硬件的广泛支持的应用程序运行。相比之下,裸机架构直接在x86硬件系统上运行虚拟化层,可以直接访问硬件资源而无需通过操作系统进行硬件访问,因此效率更高。
VMware Workstation和VMware Server均基于托管架构,VMware ESX Server是业界第一款裸机架构虚拟化产品,具有第五代产品。 ESX Server需要在经VMware认证的硬件平台上运行,该平台可提供出色的性能,以满足大型数据中心的性能需求。本文主要讨论基于X86裸机架构的服务器资源划分和性能优化。
2.三级x86虚拟化资源分区
服务器的资源划分很简单,包括网络,计算和存储。每个虚拟机都处于连接的网络中,承担某些计算任务,并存储计算的数据以供业务使用。
将多个方案的VM测试数据与X86物理服务器上的VM虚拟化进行比较。另一种技术是SR-IOV。 SR-IOV技术是INTEL基于硬件的虚拟化解决方案,可提高性能和可扩展性。 SR-IOV标准允许在虚拟机之间有效共享PCIe(外围组件互连快速)设备,并且它在硬件中实现以实现与本机性能相当的网络I/O.性能。例如,如果我们通过SR-IOV技术将X86物理服务器上的10千兆位NIC划分为4个虚拟NIC,并将其用于4个虚拟机,则网络传输性能将远高于虚拟化NIC。?测试方法:在一台X86物理服务器上,4台虚拟机启用jperf服务器作为网络数据接收端;在另一个X86物理服务器上,4个VM使jperf客户端能够连接到jperf服务器以发送网络数据包,同时对网络加压。流。两个X86主机是双10千兆位NIC。
SR-IOV虚拟化测试架构如图2所示:
图2:SR-IOV虚拟化测试架构
网络传输的数据量如表2所示。
正常虚拟化传输的最大数据量为4.6 Gbps,而SR-IOV的直接硬件虚拟化可达到9.4 Gbps。
具有SR-IOV功能的设备还具有以下优点:节能,减少适配器数量,简化布线和减少交换机端口。 SR-IOV具有许多优点,但也存在许多局限性。例如,VMWARE中的许多功能将无法用于SR-IOV虚拟机。如Vmotion,Storage Vmotion,Vshield,NetFlow,High Availability,FT,DRS,DPM,暂停和恢复,快照,热添加和删除虚拟设备,加入群集环境。
因此,当我们考虑x86网络虚拟化时,我们需要结合性能,业务功能和基础架构来考虑。如果企业需要更高的性能并且不需要更多的灵活性,请考虑SR-IOV技术。否则,选择X86通用网络虚拟化技术,结合VMWARE进行部署。
2.2计算水平
从计算级别,可以将X86物理服务器上的CPU和内存资源提供给虚拟机。今天的高性能X86服务器一般都是多CPU多核系统,NUMA架构将变得越来越流行,因为这种架构可以解决多处理器多核与非核交互带来的新CPU和内存资源统一内存架构。分配方法和提高消耗大量内存的工作负载性能的挑战。 NUMA架构如图3所示:
图3:NUMA架构图
在传统的服务器架构下,它存储在单个存储池中,适用于单处理器或单核系统。但是,当多个内核同时访问内存空间时,这种传统的统一访问方法会导致资源争用和性能问题。
NUMA是服务器CPU和内存设计的新架构,它通过对服务器的每个CPU的内存进行分区来改变内存呈现给CPU的方式。每个分区(或内存块)称为NUMA节点,与该分区关联的处理器可以更快地访问NUMA内存,并且不需要与其他NUMA节点竞争服务器上的资源(其他内存分区分配给其他处理器) )。 NUMA还支持任何处理器访问服务器上的任何内存。?处理器当然可以访问位于不同区域的存储器数据,但是需要在本地NUMA节点之外进行更多传输,并且需要来自目标NUMA节点的确认。这会增加总体开销并影响CPU和内存子系统的性能。
例如,一台服务器具有两个八核处理器和128GB内存,在NUMA架构中,每个处理器可以控制64GB的物理内存,每个处理器的八个核心中的每个核心的每个核心将对应一个8GB的NUMA节点。这将如何影响虚拟机性能?
由于每个处理器核心比其他节点更快地访问NUMA节点中的存储器,因此当虚拟机存储器大小小于或等于NUMA节点的存储器大小时,虚拟机理论上可以实现最佳性能。因此,当我们在此物理服务器上分配虚拟机时,不要为每个虚拟机分配超过8GB的内存。
如果为虚拟机分配了更多内存,则虚拟机必须访问其NUMA节点之外的某些内存,这会或多或少地影响其性能。如果应用程序可以感知NUMA,那就更好了。 vSphere使用vNUMA创建了解NUMA的虚拟机。虚拟机将分为虚拟NUMA节点,每个vNUMA节点将放置在不同的物理NUMA节点上。虽然虚拟机仍在两个NUMA节点之间扩展,但虚拟机内的操作系统和应用程序可以感知NUMA,并且将优化资源使用。
NUMA对数据中心服务器上安装和选择数据的方式进行了许多更改。在向服务器添加物理内存时,我们需要注意增加的内存在NUMA节点之间进行平衡和匹配,以便主板上的每个处理器具有相同的内存。如果您在服务器上配置更多内存,我们就会举例说明,您必须在处理器之间平衡这些内存模块。如果添加64GB内存,每个处理器将分配32GB内存(每个处理器可用的内存将增加到96GB,服务器总内存将达到192GB),并且每个NUMA节点的内存大小将为8GB。增加到12GB。
结合VMWARE的最佳实践,VMware通常建议CPU最多支持64个vCPU,一般不超过32个。最好不要过度配置;内存一般不给出建议,根据内存的大小,会有不同的要求。当然,最好不要拨打NUMA单位。
另请注意,NUMA体系结构仅适用于物理CPU(套接字),而不适用于内核(Core)。由于每个Socket控制的内存插槽不同,请确保内存插槽均匀。例如,128G内存分为8个16G内存模块,然后4个应插入一个插槽的内存插槽中,另外4个将插入另一个插槽的内存插槽中。将vCPU资源分配给虚拟机时,它们也应在Socket/Core中分配尽可能多的次数,例如1X1,1X2,1X4,1X8,2X1,2X2,2X4,2X8等,但不要使用2X3 ,2X5,2X7组合。后续组合可能导致跨套接字的内存调用,这很容易导致性能下降。?2.3存储级别
从存储角度来看,X86物理服务器上的VM连接到后端以存储绘制的LUN。在Lun上创建虚拟磁盘有三种方法:密集配置延迟清零,密集配置清零和精简配置。如图4所示:
图4:三种磁盘模式
Thick provisioning zeroed thick以默认的thick格式创建虚拟磁盘,在创建过程中分配虚拟磁盘所需的所有空间。保留在物理设备上的任何数据在创建时都不会被擦除,但在虚拟机首次执行写入操作时会根据需要将其清零。简单地说,就是立即分配指定大小的空间。空间中的数据不会暂时清空,然后根据需要清除。急切的归零厚度会创建一个厚磁盘,支持集群功能,例如Fault Tolerance。
创建虚拟磁盘时,为虚拟磁盘分配所需的空间。与平面格式相反,物理设备上保存的数据在创建过程中归零。以这种格式创建磁盘可能比创建其他类型的磁盘花费更长的时间。简单地说,它立即分配指定大小的空间并清除空间中的所有数据;精简配置使用精简配置格式。最初,精简配置磁盘仅使用磁盘最初所需的数据存储空间。如果瘦磁盘将来需要更多空间,它可以增长到分配给它的最大容量。简单地说,指定磁盘文件增长的最大空间,并在需要增长时检查是否超出了限制。
此外,与厚配置格式相比,精简配置格式在VM使用时会产生一些负面的性能影响。这是因为精简配置格式的磁盘是动态扩展的。磁盘上一次不会生成几千兆字节的vmdk文件,因此它不会占用连续的磁盘空间,就像具有密集配置格式的磁盘一样,因此访问精简配置格式当磁盘正在使用时,它将不可避免地影响磁盘IO性能,因为磁头在不连续的磁盘块之间移动并且寻址时间很长。
总之,精简配置格式的性能不如部署或应用程序的性能那么厚。因此,如果空间不足,建议您使用密集配置的虚拟磁盘。
3.结合x86虚拟化后的业务性能优化
例如,Linux下的postfix邮件系统,包括邮件服务器,数据库和网络。来自磁盘的邮件系统最大的问题之一是它不是很多大文件来读写,而是读取和写入许多小文件,这些读写请求来自同一个多个进程或线程时间。对于如此大量的小文件读写应用程序服务,建议在分配邮件用户所在的磁盘时使用精简配置模式。这避免了大量的初始空间,并且可以按需增长。?从内存的角度来看,对于postfix,它的每个进程都不会占用太多内存,我们期望在磁盘缓存中自动使用大量内存来增加磁盘I/O速率,当然,我们这样做不需要操作,Linux已经为我们做了!默认情况下,Linux虚拟内存管理将所有可用内存空间用作硬盘缓存。因此,在具有几千兆字节内存的生产Linux系统中,您经常可以看到可用内存仅为20MB。从处理器看邮件系统,无论是smtp还是imap,CPU使用率都不是很大。这样,当我们分配CPU和内存资源时,我们可以根据NUMA架构配置固定大小的单元。例如,具有两个八核处理器和128GB内存的服务器可以虚拟化为四个邮件服务器,每个服务器可以分配到四个核心和32G。
从网络的角度来看,邮件系统会经常使用网络子系统,但邮件系统的瓶颈仍然是磁盘的吞吐量而不是网络的吞吐量。对应此应用程序不需要强大的交互,允许延迟,因此网卡是虚拟的还是SR-IOV的影响并不显着。
对于邮件系统的数据库服务器,由于小文件是随机读写的,数据库的磁盘可以选择密集配置模式来改善小数据块的IO。
对于不同的业务系统,需要详细分析具体问题。性能优化不是一次性事件。随着业务的发展和变化,优化的技术手段和方法也会相应变化。
4.从企业日常使用和管理的角度对x86服务器进行
不同的企业应用程序具有不同的CPU和内存资源和空间利用率。如何使用NUMA架构来优化资源分配和提高性能对于企业数据中心管理也非常有意义
上海IT外包服务网 链接:http://www.linemore.com