大多数IT管理人员将虚拟操作环境(VOE),比如VMware ESX架构,看作降低IT运营成本的灵丹妙药。但是,为了理解VOE所能带来的好处,IT人员必须做好准备,并处理两个维度上的可扩展性问题:虚拟机(VM)应扩展到能够支持I/O密集型或计算密集型应用程序,而VOE服务器应扩展到能够支持越来越多的VM。
对于存储局域网(SAN)管理者来说,VOE极大地改变了SAN架构的变化来源,因为光纤通道(FC)架构的变化将来自SAN架构边缘所发生的变化:通过数据中心的服务器,而不是存储阵列,来推动新的业务模式。
当资源密集型的应用程序被部署在一个VM上时,这些应用程序会产生大量的数据传输负荷,并且在容量、吞吐量以及可靠性等方面考验底层的VOE存储系统。这种情况限制了VOE的可扩展性,即每个VOE服务器上可部署的VM数量,并且还影响了VOE服务器在SAN连接合并中的作用。
为了在各个层面上解决VOE的I/O问题,QLogic推出了一系列8GB/秒光纤通道架构解决方案。这些解决方案的产品包括QLogic 2500系列的光纤通道主机总线适配器(HBA),以及SANbox 5800系列可堆叠交换机,这种交换机带有20个8GB/秒光纤通道端口以及4个20GB/秒堆叠端口。
鉴于QLogic的8GB/秒SAN架构的I/O吞吐性能,该SAN架构可为用户带来快速的投资回报,并极大地简化VOE的管理。QLogic 2500 HBA提供2个8GB/秒端口,它可以为一个VOE服务器提供足够的带宽来支持8个虚拟机,它所提供的带宽相当于8个专门的2GB/秒HBA为8个物理服务器所提供的带宽。这种性能有助于提高虚拟机在VOE服务器之间的移动性,而这种移动性对于IT人员来说又是很重要的,因为虚拟机的移动有助于平衡系统的工作负荷并最大化资源的利用效率。
同样重要的是,QLogic系列产品对设备虚拟化的支持达到了新的层次。随着VOE的加速普及,以及虚拟机越来越成为业务关键型应用程序的部署选择,跟踪SAN内I/O资源的利用将成为IT人员的重要内容。对于任何一个IT系统虚拟化或系统合并项目来说,一个重要的标准就是共享的存储架构是否能够快速且有效地扩展。这种共享的架构应能够允许用户流畅地移动、控制和平衡工作负荷及数据。
为了评估QLogic的8GB/秒FC SAN架构在VOE功能性以及可扩展性方面的能力,openBench实验室使用VMware ESX 3.5,并建立了一个可以用来评估VOE可扩展性的实验环境。
作为VOE物理架构的基础设施,我们在主机服务器上使用了带多核处理器的戴尔PowerEdge 6850服务器,该服务器带有4个3.66Hz的英特尔Xeon处理器。为了进一步构建SAN架构,我们使用了一个4GB/秒QLogic QLE2460 HBA,一个8GB/秒QLE2560 HBA,以及一个SANbox 5802V交换机。为了构建高速存储阵列,我们部署了两个Texas Memory Systems RamSan-400固态磁盘(SSD)阵列。每个SAN存储系统都有4个控制器,每个控制器都有2个4GB/秒光纤通道端口。最后,我们设置了8个虚拟机。在Windows Server 2003操作系统下,我们在虚拟机上运行了oblLoad 和IOmeter标杆测试程序。
为了系统能够出现潜在的SAN瓶颈,我们openBench实验室所建立的VOE可扩展性试验环境采用了最糟糕的设置。我们有意地设计光纤架构布局,以便能够对QLogic QLE2560 HBA和 SANbox 5802V交换机的运行带来最大的压力。我们只部署了一个光纤通道交换机,并将4条4GB/秒数据通道合并到一个8GB/秒HBA上。通过这种布置,性能瓶颈和可扩展性瓶颈将只出现在SAN传输和VOE问题上。
为了能够最大限度地利用VOE,共享存储SAN是非常关键的。虚拟机负载平衡以及高可用性取决于虚拟机的可移动性,而后者又是通过VMotion这样的软件来实现的。因此,VOE主机服务器在访问同一存储的时候,必须避免对与虚拟机有关的服务水平协定(SLA)带来负面影响。
使问题更复杂化的另一方面是,虚拟机存储设备的虚拟化通常只着眼于如何简化虚拟机系统管理,它们的做法就是将所有的磁盘资源从概念上分隔成各个独立的直连式存储(DAS)设备。虽然对于许多初始的虚拟机项目来说,这种DAS设备虚拟化模式所带来简便性是非常理想的,但是,如果用户需要将大型企业级应用程序予以合并,并且这些大型应用程序是专门在SAN环境的系统上运行的话,那么这种模式就会带来许多问题。
首先,这种系统虚拟化模式使得系统只有很少的VOE服务器能够用来保证所有虚拟机的I/O水平,每个虚拟机都处在一个1U服务器上面,并带一个专门的2GB/秒FC SAN连接。由于虚拟机在服务器之间的移动性是提升VOE使用价值的关键,因此HBA的性能必须能够与多核处理器的性能相匹配,只有这样才能够方便地在一个服务器上支持8到16个虚拟机。
其次,IT人员需要解决多个操作问题,比如,在物理系统被迁移到VOE中的虚拟机的时候,需要计算SAN资源和控制基于分区的设备访问。一个专门在SAN中运行的系统可以采用虚拟机的形式,从而同光纤架构本身相独立。但是IT人员的负担就加重了,因为他们在修改现有操作、流程的过程中必须做很多工作,并编制有关的存储资源的报告。这些任务的计划编制和执行之繁重就足以妨碍物理系统到VOE的迁移。
在一个基于VMware ESX 3.5的VOE中,管理人员可以将所有的FC HBA设置成专属于ESX服务器的设备。这是因为,虚拟机上的所有存储都是虚拟化的,它把每个逻辑卷都描绘成一个直连式SCSI(小型计算机系统接口)磁盘驱动器。
一般情况下,这个逻辑卷的载体是一个VMware文件系统(VMFS)卷。一个VMFS卷被称为一个数据存储(datastore),并带有.vmdk的扩展名。重要的是,VMFS为所有的虚拟机磁盘文件提供了分布式锁。通过分布式锁,一个包含多个虚拟机磁盘文件的数据存储可以被多个ESX服务器所访问。另一个替代方法就是在虚拟机本身的文件系统上使用裸LUN(逻辑单元号),通过VMFS本身的指针文件,将来自VMFS文件系统的访问请求重定向到裸LUN。这种方法被称为裸设备映射(RDM)。
我们在ESX服务器上从八台虚拟机中使用IOmeter来驱动I/O读取的吞吐量。理论上使用QLE2560 HBA总I/O吞吐量约为800MBps。也就是说,每一个虚拟机上内部的I/O大约为100Mbps。这一级的I/O读取量对于物理机连接到使用SATA或SAS驱动器的FC阵列是比较合适的。另一方面,我们的ESX服务器的读取量是有限的,在QLE2460上大约为400MBps。这将每个虚拟机上的I/O吞吐量限制在约50MBps。
从虚拟机的角度来看,能够匹配虚拟机的SAN架构是直到最近才出现的。对于SAN对象来说,比如交换机、HBA和存储设备,它们必须通过全局名称(WWN)才能独一无二地标志为光纤架构内的对象。如果没有唯一的全局名称,那么虚拟机就只能通过VOE服务器上所安装的物理HBA的全局名称来访问SAN存储LUN。实际上,这使得虚拟机在SAN中是不可视的。
对于虚拟机来说,其进入存储网络的第一步就是光纤通道端口虚拟化的推出。N端口ID虚拟化是ANSI(美国国家标准学会)T11小组所制定的标准,该技术被称为NPIV。VMware ESX 3.5能够支持NPIV感知型SAN交换机与HBA。ESX管理员现在可以创建一个WWN标志集合,在这个集合里,管理员可以为物理的FC HBA端口建立一个全局节点名称(WWNN)和4个虚拟的全局端口名称(WWPN)。
虚拟WWPN可以分配给任何一个使用裸设备映射(RDM)磁盘的虚拟机。当虚拟机启动的时候,VM内核(VMkernel)将寻找访问SAN上的LUN的访问路径。一旦在NPIV感知型HBA上发现一个路径,VM内核就会初始化一个唯一的虚拟端口(VPORT)。在SAN架构内,这个VPORT显示为虚拟机上所安装的虚拟HBA的端口。
一旦我们给一个虚拟机分配好了一个虚拟端口全局名称,那么NPIV感知型的QLogic SANbox 5802V交换机就会马上认出这个新的端口全局名称。然后,该交换机将同时把最初的QLogic HBA端口全局名称和新的VMware虚拟HBA端口全局名称联系到交换机上的同一个端口上。
从可扩展性的角度来说,8GB/秒光纤通道架构可以提供快速的投资回报。由于服务器性能的快速提升,对带宽的需求也在不断增加。在市场上推出了四核处理器和高速PCI-e总线后,我们现在已经能经常看到一个商品服务器上承载8个或8个以上的虚拟机。
在这样的环境中,8GB/秒架构可以帮助用户优化存储资源的利用,避免用户因为给VOE服务器配置多个HBA和交换机端口所带来的额外成本。一个双端口8GB/秒QLE2560 HBA可以为一个ESX服务器提供足够的I/O带宽来支持8个虚拟机,每个虚拟机都可以得到相当于专门的2GB/秒FC连接的带宽。
在测试吞吐量的时候,我们首先希望能够测试出在一个8GB/秒QLogic HBA环境下的一个虚拟机可以产生的I/O传输的数量。其次,我们希望能够测试出HBA上的一个主动端口是否可以满足来自VOE主机服务器上的所有I/O请求。为了能够单独测试出这些性能数据,我们使用了QLogic Enterprise Fabric Suite软件来监控SANbox 5802V每个端口上的所有传输。
实验的第一步是测试在QLogic 2560 HBA环境下一个虚拟机所能产生的I/O传输。我们利用两个TMS固态磁盘来作为RDM磁盘,然后我们开始oblLoad标杆测试。在每个I/O请求为8KB的情况下,我们的虚拟机每秒可以处理超过6万个I/O(IOPS)。虚拟机的这种I/O请求处理能力有很大的意义。
我们测试中所看到的IOPS数字显示虚拟机有能力将用途扩展到I/O密集型的应用程序,比如Exchange、SQL Server和Oracle。同样重要的是,我们的虚拟机在处理这种I/O负荷的过程中,读取数据的速度超过了500MB/秒,这个吞吐量水平,比起4GB/秒HBA(比如QLE2460)上的一个光纤通道端口所能支持的最高吞吐量还要高出25%。换句话说,我们主机服务器上的一个4GB/秒HBA限制了虚拟机所能达到的I/O吞吐量。
我们的另一个性能测试目的就是测试8GB/秒SAN架构能否扩展成一个VOE,并提高多个虚拟机的存储资源利用率水平。我们在第一步试验中发现了虚拟机的I/O性能瓶颈,为了更好的衡量这种瓶颈,我们同时利用一个8GB/秒QLE2560 HBA和一个4GB/秒 QLE2460 HBA来处理8个虚拟机以及8个逻辑驱动器所产生的I/O传输,其中8个逻辑驱动器是位于TMS SSD固态磁盘阵列上。对于带多个4GB/秒设备的SAN环境来说,RamSan-400阵列是ESX服务器的理想选择。
为了进行这些测试,我们在每个HBA上设置了两个端口,这两个端口可以作为主动-被动式故障复原组合。测试开始后,我们让所有8个虚拟机都开始运行一个工作进程,进行读取I/O操作。在测试过程中,我们在固定时间间隔内逐渐提高I/O块的大小。在我们的试验设置下,ESX服务器的理论读取吞吐量被限制到了800MB/秒(如果使用QLE2560)和400MB/秒(如果使用QLE2460)。
至于单个虚拟机,ESX服务器的内部负载平衡机制使每个虚拟机在QLE2560上的吞吐量限制在了100MB/秒。但是,如果使用QLE2460,那么随着I/O块大小的提高,单个虚拟机的吞吐量被限制在了50MB/秒。不过,如果使用8KB的I/O块,那么VOE服务器上的8个虚拟机的读取速度可以超过50MB/秒,总的I/O工作量可以超过400MB/秒–这个结果基本符合我们此前在单个虚拟机上进行oblLoad标杆测试所得出的结果。更重要的结论还包括,在读取SATA磁盘或SAS磁盘所构建的RAID(独立磁盘冗余阵列)-5阵列上的数据的时候,Windows系统一般能够达到110MB/秒到130MB/秒的I/O吞吐水平。
在我们最后的I/O压力测试中,我们测试了8GB/秒QLogic 2560 HBA上一个主动端口,在4GB/秒连接的情况下,处理多个读取和写入I/O流的能力,这些I/O流来自多个存储阵列。为了进行这项测试,我们设置了4个虚拟机,每个虚拟机都配有专门的RDM卷,这些RDM卷来自两个固态磁盘阵列中的一个。在其中两个虚拟机上,我们运行了一个IOmeter进程,在32KB的I/O请求下进行数据读取。在另外两个虚拟机上,我们也运行了IOmeter进程,是在32KB的I/O请求下将数据写入RDM卷。
在进行数据读取操作的两个虚拟机上,我们的ESX服务器都可以将I/O吞吐量保持在800MB/秒以上,然后我们在剩下的两个虚拟机上进行了IOmeter数据写入操作。我们让多个虚拟机同时进行多个存储阵列的数据读取和数据写入操作,使用QLogic QLE2560 HBA的主机服务器保持了全双工I/O吞吐量水平,而且该吞吐量比起4GB/秒HBA所能维持的最高带宽还要高出70%。从另一个角度来说,一个带2个光纤通道端口的8GB/秒HBA可以为一个主机VOE服务器上的8个虚拟机提供相当于8个2GB/秒HBA的带宽水平。
本文作者Jack Fegreus是openBench实验室的首席技术官。