概述

VMware在VMware vSphere 4.1中以插件形式引入了vStorage API for Array Integration(VAAI),并通过VMware vSphere 5提供了本机VAAI支持。VAAI通过将锁定和块操作无缝地卸载到存储阵列上,显著增强了存储和服务器的集成。

LIO为VMware vSphere 5提供了本机VAAI支持,另请参见Datera. vStorage APIs for Array Integration, Linux Target wiki, 2013.。

功能

LIO目标支持以下VAAI功能:

VAAI原语概述

名称 T10原语 描述 NFS LIO
ATS 硬件辅助锁定
COMPARE_AND_WRITE
启用对块存储设备的精细锁定,从而提高性能。 支持 N/A 支持
Zero 块清零
WRITE_SAME
精简配置阵列的通信机制。 在创建VMDK时使用。 支持 N/A 支持
Clone 完全复制 XCopy
EXTENDED_COPY
命令阵列复制LUN中的数据。用于克隆和VMotion操作。 支持 N/A 支持
Delete 空间回收
UNMAP
允许精简配置的阵列清除未使用的VMFS空间。 支持 N/A 支持(默认禁用)

可以从VMware ESX 5 CLI验证VMware VAAI的存在及其功能,如下所示:

~ # esxcli storage core device vaai status get
naa.6001405a2e547c17329487b865d1a66e
VAAI Plugin Name:
ATS Status: supported
Clone Status: supported
Zero Status: supported
Delete Status: unsupported

**注意:**默认情况下,删除是禁用的,有关更多详细信息,请参见下文。

原语

ATS

ATS(原子测试和设置)可以说是VMware推出的最有价值的存储技术之一。 与前面的T10永久预留相比,它可以更精细地锁定块存储设备,请参见Datera. Persistent Reservations, Linux Target wiki, 2013.,后者只能在完整LUN上运行。 因此,ATS允许更多的并发性,从而显着提高共享LUN的性能。

例如,惠普报告说,使用VAAI,每个LUN支持的虚拟机数量是不使用VAAI的虚拟机数量的六倍。ATS使用T10 COMPARE_AND_WRITE命令来允许在一个原子操作中比较和写入SCSI块。

NFS不需要ATS,因为锁定不是问题,VM文件的共享与LUN的共享不同。

可以从VMware ESX 5 CLI验证功能是否存在:

~ # esxcfg-advcfg -g /VMFS3/HardwareAcceleratedLocking
Value of HardwareAcceleratedLocking is 1

VMware实际上根据底层文件系统类型和历史记录使用ATS:

VAAI硬件上 新的VMFS-5 升级的VMFS-5 VMFS-3
Single-extent datastore
reservations
仅支持ATS [1] ATS,但也支持回退到SCSI-2 Reservation ATS,但也支持回退到SCSI-2 Reservation
Multi-extent datastore
当锁在非头部时
仅支持在ATS硬件上生成 ATS,除了non-head extent被锁定 ATS,除了non-head extent被锁定

\1. 如果再非ATS存储设备上创建新的VMFS-5,则会使用SCSI-2 Reservation。

\2. 当使用ATS创建multi-extent datastore时,vCenter Server将过滤掉非ATS设备,所以只有支持ATS原语的设备会被使用。

Zero

精简配置很难实现,因为存储阵列不知道主机中发生了什么。VAAI包括一个用于传递空闲空间的通用接口,因此允许大范围的块立即清零。

Zero使用T10 WRITE_SAME命令,并且默认为1 MB块大小。 Zero仅适用于VMDK内部的容量。 vSphere 5可以将WRITE_SAME与T10 UNMAP命令结合使用。

可以从VMware ESX 5 CLI验证功能是否存在:

~ # esxcfg-advcfg -g /DataMover/HardwareAcceleratedInit
Value of HardwareAcceleratedInit is 1

要从ESX 5 CLI禁用Zero,请执行以下操作:

~ # esxcfg-advcfg -s 0 /DataMover/HardwareAcceleratedInit
Value of HardwareAcceleratedInit is 0

此更改将立即生效,而无需VMware进行“重新扫描全部”。

Clone

这是签名VAAI命令。ESX管理程序可以命令阵列代表它复制一系列数据,而不是从阵列中读取每个数据块然后将其写回。如果支持并启用克隆,VMware的虚拟机克隆和虚拟机vMotion等操作可以变得非常快。提速10倍以上是可以实现的,特别是在速度较慢的网络连接(如1 GbE)上基于快速闪存的备份存储上。

克隆使用T10 EXTENDED_COPY命令,默认为4MB的块大小。

可以从VMware ESX 5 CLI验证功能是否存在:

~ # esxcfg-advcfg -g /DataMover/HardwareAcceleratedMove
Value of HardwareAcceleratedMove is 1

要从ESX 5 CLI禁用克隆,请执行以下操作:

~ # esxcfg-advcfg -s 0 /DataMover/HardwareAcceleratedMove
Value of HardwareAcceleratedMove is 0

此更改将立即生效,而无需VMware进行“重新扫描全部”。

Delete

克隆和vMotion等VMFS操作没有向存储阵列提供任何提示,以清除未使用的VMFS空间。因此,一些最大的存储操作无法加速或“减少”。

Delete使用T10 UNMAP命令允许具有自动精简功能的阵列卸载清理未使用的VMFS空间。

但是,vCenter 5无法正确处理等待存储阵列返回UNMAP命令状态的情况,因此在vSphere 5中默认禁用Delete功能。

可以从VMware ESX 5 CLI验证功能是否存在:

~ # esxcli –server=<my_esx_server> -u root system settings advanced list -–option /VMFS3/EnableBlockDelete
Type: integer
Int Value: 0
Default Int Value: 0
Min Value: 0
Max Value: 1
String Value:
Default String Value:
Valid Characters:
Description: Enable VMFS block delete  when UNMAP is issued from guest OS

要从ESX 5 CLI启用删除(另请参见[16]):

~ # esxcli –server=<my_esx_server> -u root system settings advanced set –int-value 1 -–option /VMFS3/EnableBlockDelete
Value of EnableBlockDelete is 1

许多SATA ssd有正确处理UNMAP的问题,所以在LIO中默认禁用UNMAP。

要启用UNMAP,请启动targetcli shell,输入相应的Backstore设备的上下文,并设置emulate_tpu属性:

/backstores/iblock/fioa> set attribute emulate_tpu=1
Parameter emulate_tpu is now '1'.
/backstores/iblock/fioa>

重启ESX主机,或重新登录到Backstore,以使Delete操作得到认可,然后从VMware ESX 5 CLI验证其是否存在:

~ # esxcli storage core device vaai status get
naa.6001405a2e547c17329487b865d1a66e
VAAI Plugin Name:
ATS Status: supported
Clone Status: supported
Zero Status: supported
Delete Status: supported

性能

概述

VAAI提供的性能改进可分为三类:

  • 减少了完成虚拟机克隆和块清零操作的时间。
  • 减少了服务器计算和存储网络资源的使用。
  • 从每个数据存储的虚拟机数量和一个数据存储所连接的ESX服务器数量方面提高了VMFS数据存储的可伸缩性。

在任何给定环境中看到的实际改进取决于许多因素,将在下一节中讨论。在某些环境中,改进可能很小。

克隆,迁移和清零虚拟机

完全复制和块清零操作的最大因素是限制因素是在存储控制器的前端还是后端。如果存储网络的吞吐量慢于后端存储的处理能力,则可以分担读、写虚拟磁盘以进行克隆和迁移以及为虚拟磁盘初始化写入零的大量工作,这将大有帮助。

ESX服务器使用1 GbE iSCSI连接到具有SSD或闪存的Linux存储系统时,可能会出现实质性改善的一个示例。 1 Gbps的前端不能支持足够的吞吐量以饱和后端。 但是,当卸载克隆或块清零操作时,只有小负载的小命令会通过前端,而实际的I/O则由存储控制器本身直接完成到磁盘的操作。

VMFS数据存储的可扩展性

传统上,来自各种来源(包括VMware专业服务最佳实践)的文档建议每个VMFS数据存储区推荐20至30个VM,有时甚至更少。 VMware Lab Manager的文档建议将集群中的ESX服务器数量限制为八个。这些建议的限制部分是由于SCSI预留对性能和可靠性的影响。大量使用某些功能(例如VMware快照和链接克隆)会触发大量VMFS元数据更新,因此需要锁定。在vSphere 4.1之前,可以通过使用SCSI永久预留短暂锁定整个LUN来获得对较小对象的可靠锁定。在预留期间尝试访问LUN的任何其他服务器都将失败,并且默认情况下将等待并重试多达80次。这种等待和重试增加了虚拟机的感知延迟并降低了吞吐量。在极端情况下,如果另一台服务器超过重试次数,则错误将记录在VMkernel日志中,并且I / O可能会作为故障返回到VM。

当所有共享数据存储的ESX服务器都支持VAAI时,ATS可以消除SCSI永久预留,至少由于获得较小的锁而导致的预留。 结果是,可以将数据存储区扩展到比以前更多的VM和连接的服务器。

Datera在单个VMFS数据存储中最多测试了128个VM。 由于ESX中最大可寻址LUN大小为2 TB,因此在测试中将VM的数量限制为128个,这意味着每个VM最多可占用16 GB,包括虚拟磁盘,虚拟交换和任何其他文件。 小于此大小的虚拟磁盘通常无法为OS和任何应用程序提供足够的空间。

使用iometer在虚拟机上生成和测量负载。对于某些测试,所有虚拟机都有负载。在其他情况下,例如当一组虚拟机启动、停止或挂起时,负载只被放置在运行中的虚拟机上。

当iometer工作负载运行在其他没有启动、停止或挂起的虚拟机上时,会运行诸如启动、停止和挂起大量虚拟机的测试。在所有运行iometer的虚拟机上运行其它测试,并在所有或某些较大的虚拟机子集上尽可能快地创建和删除VMware快照。

这些测试的结果表明,使用VAAI时,在使用VAAI之前或未使用VAAI之前测得的性能影响已被消除或显着降低,以至于数据存储可以可靠地扩展到单个LUN中的128个VM。

统计

ESX 5中的VMware esxtop命令在“磁盘设备”视图下提供了两组用于VAAI操作的新计数器。两组计数器都包含三个VAAI密钥原语。要查看VAAI统计信息,请从VMware ESX 5 CLI运行esxtop,然后执行以下步骤:

~ # esxtop
  1. 按“u”切换到磁盘设备统计视图。

  2. 按“f”选择字段,或按“o”更改其顺序。

    注意:这将选择一组计数器,而不是单个计数器。

  3. 按“o”选择VAAI统计和/或“p”选择VAAI延迟统计。

  4. (可选)通过分别按“f”、“g”和“I”来取消选择Queue Stats、I/O Stats和Overall Latency Stats,以简化显示。

  5. 要查看整个LUN字段,请按“L”(大写),然后输入一个数字(“36”足够宽,可以看到一个LUN的完整NAA ID)。

esxtop的输出类似于以下内容:

4:46:50am up 44 min, 281 worlds, 0 VMs, 0 vCPUs; CPU load average: 0.00, 0.00, 0.00
DEVICE CLONE_RD CLONE_WR CLONE_F MBC_RD/s MBC_WR/s ATS ATSF ZERO ZE-
RO_F MBZERO/s DELETE DELETE_F MBDEL/s
naa.60014050e4485b9bdc841d09478888e6 0 0 0 0.00 0.00 23 0 0
0 0.00 0 0 0.00
naa.600140515743d5195b0498b8aad6fdd2 1583 792 0 0.00 0.00 1322 0 23
0 0.00 0 0 0.00
naa.60014053937c69d44ff4e0b9e5a95398 0 0 0 0.00 0.00 0 0 0
0 0.00 0 0 0.00
naa.60014055fcf891d0c5b4a60a66942400 4746 3955 0 0.00 0.00 4402 0 45
0 0.00 0 0 0.00
naa.600140573d94f8e531d4d1ab5c8a72ef 0 0 0 0.00 0.00 23 0 0
0 0.00 0 0 0.00
naa.6001405a2e547c17329487b865d1a66e 3164 4746 0 0.00 0.00 5692 0 54
0 0.00 0 0 0.00
naa.6001405a3a17fe4483c46f994f74b4e6 0 0 0 0.00 0.00 0 0 0
0 0.00 0 0 0.00
t10.ATA_____ST3400832AS_____________ 0 0 0 0.00 0.00 0 0 0
0 0.00 0 0 0.00

esxtop中的VAAI计数器为:

计数器名称 描述
DEVICE 支持VAAI(支持的存储系统上的LUN)的设备按其NAA ID列出。可以从vCenter中的数据存储属性、虚拟存储控制台中的存储详细信息SAN视图或使用:
vmkfstools -P/vmfs/volumes/
命令获取数据存储的NAA ID。LIO LUN以naa.6001405开始。
注意:列出了除外部存储系统上的LUN以外的设备或数据存储,如CD-ROM、内部磁盘(可能是内部RAID控制器上的物理磁盘或LUN)和NFS数据存储,但VAAI计数器的值均为零。
CLONE_RD 从该LUN中Full Copy执行读的次数
CLONE_WR Full Copy写入到该LUN的次数
CLONE_F 此LUN上已经失败的Full Copy命令数
MBC_RD/s Full Copy命令从该LUN读的有效吞吐量(MB/秒)
MBC_WR/s Full Copy命令写到该LUN的有效吞吐量(MB/秒)
ATS 此LUN上成功锁定命令的数量
ATSF 此LUN上已经失败的锁定命令的数量
ZERO 此LUN上成功完成的块清零命令的数量
ZERO_F 此LUN上失败的块清零命令的数量
MBZERO/s 此LUN上的块清零命令的有效吞吐量(以兆字节/秒为单位)

除非重启服务器,否则对操作进行计数的计数器不会返回零。 当没有相应原语的命令正在进行时,吞吐量计数器为零。

使用VAAI的VMFS数据存储和Storage VMotion操作之间的克隆,对一个LUN进行增量克隆读,对另一个LUN进行克隆写。 无论如何,克隆读列和克隆写列的总数应相等。

最佳实践

对于VAAI克隆操作,ESX可以增加或减少传输的数据块的大小,以适应可用的网络带宽。 在ESX 5 Shell中,过程如下。

检查VAAI克隆操作的当前数据传输块大小:

~ # esxcfg-advcfg -g /DataMover/MaxHWTRansferSize
Value of MaxHWTransferSize is 4096

对于vSphere 5,默认块大小为4096 kB。

增大VAAI克隆块的大小会导致使用单个EXTENDED_COPY命令复制更多数据,从而减少了协议开销和克隆操作所需的总时间:

~ # esxcfg-advcfg /DataMover/MaxHWTRansferSize –s 16384
Value of MaxHWTransferSize is 16384

通常,最大块大小为16384 kB可获得最佳性能。

LIO SCSI目标还允许调整命令队列大小,即正在运行的未完成SCSI命令的最大数量。 为了获得最佳性能,应将队列大小设置为最大值。

在相应的TPG上下文中,从targetcli shell中执行以下步骤:

/iscsi/iqn.20...a0e4a11/tpgt1> set attribute default_cmdsn_depth=128
/iscsi/iqn.20...a0e4a11/tpgt1>

VMware VAAI相关推荐

  1. 关于VMware VAAI说明

    VMware vSphere 5.0及以上版本推出VAAI存储特性(VMware vSphere Storage APIs Array Integration,也称为硬件加速).VAAI工作是将VMw ...

  2. 超融合详细对比:市面各主流超融合产品及厂商优劣势解密

    随着超融合在国内市场兴起并逐步成为主流,一场针对于IT基础架构的技术变革悄然而至.沿用二十多年的传统IT架构面临着新一代架构的严重冲击.近几年来,面对巨大的市场机遇,超融合厂商也如雨后春笋,不断涌现. ...

  3. 华为云计算HCIE学习笔记-FusionStorage

    专业阵列介绍(不是FS): 一个交换机上连有几个CNA和一个VRM,CNA连接着SAN交换机,SAN交换机连着专业的Array阵列,它是由一个控制框和几个硬盘框组成的.控制框如果是双控制器的话(双活控 ...

  4. ​浙江省交通运输物流信息服务中心平台容灾设备采购二期项目

    浙江省交通运输物流信息服务中心平台容灾设备采购二期项目   采购清单 序号 采购内容 数量 1 高端存储系统 1台 2 存储网关 1台 3 存储系统扩容 1套 4 光纤交换机扩容 1套 5 WAF防火 ...

  5. 新版飞康CDP、NSS全新功能完全解读

    近期,美国飞康软件公司对外正式发布了飞康CDP连续数据保护解决方案v7.5版本和飞康NSS存储虚拟化解决方案v7.5版本,两个新版本的解决方案都将采用全新的RecoverTrac™ v2.7 灾难恢复 ...

  6. 飞康公司正式发布CDP和NSS v7.5版本 全面支持云架构

    全球磁盘式数据保护解决方案领导厂商,美国飞康软件公司 (NASDAQ:FALC) 今天正式对外发布飞康CDP连续数据保护解决方案v7.5版本和飞康NSS存储虚拟化解决方案v7.5版本,两个新版本的解决 ...

  7. 四川省公安厅容灾项目招标

    四川省公安厅容灾项目. UPS电源系统扩容 和局域网及综合布线改造工程项目技术和资质要求公示   四川省政府采购中心受采购人的委托,拟对 四川省公安厅容灾项目.UPS电源系统扩容和局域网及综合布线改造 ...

  8. 中国移动分布式块存储最大单揭晓,浪潮等中标

    中国移动采购与招标网11月1日消息,中国移动2019年至2020年分布式块存储产品集中采购中标候选人正式公示,按照公布的中标信息总体统计来看,该项目分布式块存储产品共计采购910套.这成为了中国移动和 ...

  9. 关于VMware上的VAAI特性详解

    一般来说我们的存储在适配VMware的时候,会牵涉搭配VAAI特性,经常听到VAAI这到底是什么呢? VAAI的全称是VMware's Storage APIs for Array Integrati ...

最新文章

  1. 将Eclipse代码导入到AndroidStudio的两种方式
  2. ansible(4)——配置文件及以对面某个用户来登录
  3. 改变窗口的外观和大小
  4. Spring Boot:(五)静态资源和拦截器处理
  5. 你能卖什么,决定了你的收入落在什么档次
  6. mysql索引超出了数组接线_索引超出数组范围是什么意思
  7. 啦啦外卖43.5学习研究开发
  8. 写给非网工的CCNA教程(3)聊聊ping命令后的原理
  9. Python和R语言的区别
  10. 层次分析matlab例题,层次分析法例题
  11. learning ddr tRP and tRP tRTP CL tRAS
  12. [句子成分] 一、主语
  13. AI 可靠性论文整理
  14. ubuntu18.04在状态栏显示网速
  15. 华为老总任正非给公司患抑郁症员工的一封信
  16. DELL存储SCv3020组件概念
  17. 用python画爱心写一句话_python中用turtle画爱心表白
  18. html如何查看字体样式,css2.0文档查阅及字体样式
  19. es的基本操作(创建索引,添加数据,删除数据,判断索引是否存在)
  20. 【SVN】windows SVN安装使用教程(服务器4.3.4版本/客户端1.11.0版本)

热门文章

  1. html5/css实现字体上划线
  2. CSS:“ ”这个符号在css中一般用 arial字体
  3. 在 VMware vSphere 中构建 Kubernetes 存储环境
  4. 简单数据复杂数据的区别
  5. 如何下载知网上的论文?
  6. 非极大值抑制(NMS)的几种实现优化
  7. 认识TIA博途Portal软件平台
  8. matlab diff函数用法_Matlab-计算机代数工具箱
  9. 多路测量实时同步工作原理_数字示波器原理
  10. 除了知网、百度,还有什么查阅资料的网站或软件吗?