3.11 VMware 存储API
VMware提供的API允许管理员和发布者扩展vSphere 5功能。
3.11.1 vStorage API for Array Intergration
vStorage API for Array Intergration(VAAI)是一组应用编程接口,提供VMware和存储阵列制造商之间的互操作性,以更智能的方式与VMware通信。有些任务负载可以转移到存储阵列,减轻ESXi主机的负载。
注意:处理器制造商已经在芯片中集成了Intel VT和AMDV指令,减少高消耗的CPU侦听。处理器制造商对服务器所做的正是VAAI对存储阵列所做的。这些API现在对于获得高级别的整合似乎是必不可少的。
表3-4列出了vSphere 4.1中的VAAI和vSphere 5中的VAAI2。
下面是表3-4中列出的各种特性的简单说明。
硬件加速锁:没有这个API,SCSI保留就会在全局LUN级别上完成。有了这个API,SCSI保留工作在块级别而不是LUN级别上完成,这样与SCSI保留相关的问题较少,而且减少了VM启动的时间,在虚拟桌面基础架构(VDI)项目中更是如此。
硬件加速置零:没有这个API,创建数据存储时,“置零”由服务器完成,服务器向存储阵列发送SCSI命令。有了这个API,ESX服务器初始化一个命令,存储阵列负责重复这个操作并在结束时通知ESX服务器。这减少了ESXi服务器和存储阵列之间的流量。
硬件加速复制:没有这个API,复制操作从ESX服务器向存储阵列进行。有了这个API,数据由存储阵列的阵列中移动,没有通过服务器。这减少了ESXi服务器的负载和数据迁移所需的时间。
在vSphere 5中,为VAAI 2定义了一些新的概念:
死空间回收(Dead Space Reclaim):当虚拟磁盘被删除,或者精简配置LUN上使用Storage vMotion将一个虚拟磁盘从数据存储中迁移到另一个数据存储之后,可以恢复不再使用的空间。ESXi 5.0通过VAAI命令将释放数据块的有关信息发送给存储系统,然后存储系统恢复这些数据块。
精简配置空间用尽(Thin Provisoning Out of Space)API:预防精简配置LUN上的存储空间问题。
精简配置LUN报告:在vCenter中可以识别使用的存储阵列。
超过限额:当数据存储中超过容量阈值时,在vCenter中显示警告。
空间用尽行为:VM在写入之前确定空间是否足够。如果存储空间已满,在vCenter中显示警告信息,然后VM暂停(其他VM继续运行)。
NAS VAAI存储定义了如下概念。
全文件复制:NAS可以冷方式进行vmdk文件的复制和快照操作,类似于VMFS块复制(全复制)。
扩展统计:可以看到NFS数据存储上已经消耗的空间。
空间保留:允许为NAS存储创建厚配置模式vmdk文件。
3.11.2 vSphere 存储API:存储感知
vStorage API for Storage Awareness(VASA)是一个存储检测API,可直接从vCenter进行存储阵列相关信息的虚拟化,这些信息包括复制、RAID类型、压缩、重复数据消除、精简或者厚格式、磁盘类型、快照状态和性能(IOPS/MBps)。此外,vStorage API可用于配置驱动存储。
3.12 多路径
多路径(multipathing)可以定义为使用冗余组件(如适配器和交换机)以创建服务器和存储设备之间逻辑路径的一种解决方案。
3.12.1 可插入存储架构
可插入存储架构(Pluggable Storage Architecture,PSA)是一组API,允许存储制造商在VMkernel层中直接插入代码,从而开发第三方软件(如EMC PowerPath VE),提供与存储阵列技术直接相关的更高级负载均衡功能。但是VMware也提供标准的基本多路径机制,即原生多路径(Native MultiPathing,NMP),这些功能分布在以下API中:存储阵列类型插件(Storage Array Type Plug-in,SATP)负责与存储阵列通信;路径选择插件(Path Selection Plug-in,PSP)提供路径之间的负载均衡。
如图3-22所示,VMware提供三种PSP。
最近使用(Most Recently Used,MRU):选择ESXi启动时发现的第一个路径。如果这一路径不可访问,ESXi选择替代路径。
固定:使用设计为首选路径的专用路径。如果没有配置,则使用启动时发现的路径。这一路径无法再使用时,随机选择可用路径。当该路径再次可用时,ESXi又会使用固定首选路径。
循环(Round Robin,RR):自动选择所有可用路径,以循环的方式将I/O发送到每条路径,这能实现基本的负载均衡。PSA协调NMP操作,第三方软件协调多路径插件(MPP)软件。
NMP循环路径选择策略有一个I/O操作限制参数,控制每条路径切换到下条路径之前发送的I/O操作数量。默认值为1000,因此,NIP默认在向给定路径发送1000次I/O之后转向另一条路径。调整循环路径选择I/O操作限制,能够显著地改进某种工作负载下的性能(例如联机事务处理[online transaction processing,OLTP])。在随机和OLTP工作负载环境中,将循环路径选择参数设置为较低的数字可以得到最好的吞吐率,但是对于顺序工作负载,降低该值不会得到同样显著的改进。因此,有些硬件存储公司建议将NMP循环路径选择I/O操作限制参数设置为较低的值(可以设置为1)。
第三方软件解决方案使用更高级的算法,因为循环选择算法有一个局限性,在进行自动分配的时候没有考虑路径级别上的实际活动。有些软件建立动态负载均衡,设计为在任何时候都使用所有路径,而不是像循环路径算法那样,在同一时间仅用一条路径来负担所有I/O负载。
3.12.2 模式
访问共享存储空间的数据是虚拟环境的基础。VMware强烈建议实施多种LUN访问路径。最小值是两条路径,但是VMware建立使用四条路径。多路径提供冗余的LUN访问路径,从而减少了服务中断。路径不可用时,会使用另一条路径,这不会造成服务中断。这些切换机制被称作多路径I/O(MultiPath I/O,MPIO)。
在VMware中,如图3-23所示,存储可以采用不同的模式。
主动/主动:在给定时刻,一个LUN同时连接到多个存储控制器。I/O可以同时来自多个控制器。
主动/被动:在给定时刻,一个控制器拥有一个LUN(从属LUN)。只要LUN链接到该控制器,其他控制器就不能向它发送I/O。
ALUA:对LUN的访问不是直接的(无优化的),而是通过辅助控制器以不对称方式发生。