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的访问不是直接的(无优化的),而是通过辅助控制器以不对称方式发生。