评测:8GB/S FC SAN可支持虚拟操作环境
Bill 发表于:08年11月03日 16:40 [原创] 存储在线
我们在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)。