在 SAN 驱动器之间复制和移动文件时,卸载数据传输(ODX)技术可将 CPU 与网络负担卸载给 SAN 硬件。该功能非常适合需要从虚拟机模板库供应新虚拟机的云环境,或触发虚拟磁盘操作后需要复制大量数据的场合,例如虚拟磁盘合并、存储迁移,以及实时迁移。执行这类操作的存储设备必须能够支持卸载(例如支持卸载的 iSCSI、光纤通道 SAN,或 Windows Server 2012 R2 文件服务器),借此 Hyper V 宿主机的处理器可用于处理更多虚拟机负载。
若不使用 ODX,客户可能需要耗费大量网络带宽,并使用大量 CPU 与内存资源才能执行某些与数据有关的任务,例如大文件复制或虚拟机存储迁移。这些任务的操作可能还需要耗费大量时间,就算在高速 10GbE 网络中,任务进行过程中也会导致性能大幅退化。
Windows Server 2012 R2 中的卸载数据传输(ODX)可供您更加充分地利用现有的外部存储阵列,直接在存储阵列间快速移动大文件和虚拟机,并降低宿主机 CPU 与网络带宽的使用率。通过配合支持卸载的 SAN 存储硬件使用,ODX 可在不占用 Hyper-V 宿主机 CPU 资源的情况下通过存储设备执行文件复制操作,由存储设备直接从一个存储位置读取数据,并写入到另一个位置。
ODX 使用基于令牌的机制在智能存储阵列内部或之间读写数据。此时不再需要通过宿主机中转所有数据,只需要在源与目标位置之间复制一个很小的令牌。这种令牌实际上代表了数据的时间点状态。例如,在存储位置(可能是存储阵列内部或之间)复制文件或迁移虚拟机时,复制的实际上是代表虚拟机文件的令牌,因此不再需要通过服务器复制底层数据。在基于令牌的复制操作中,将发生下图所示操作:
在支持 ODX 的 SAN 中,当用户将文件从一个卷复制到另一个卷时,会自动发生下列情况(甚至支持通过资源管理器进行的复制和粘贴操作):
1. 用户使用 Windows 资源管理器、命令行界面,或虚拟机迁移向导复制或移动文件。
2. Windows Server 2012 将该请求自动转换为 ODX(前提是存储阵列支持),并获得代表数据的令牌。
3. 在源服务器与目标服务器之间复制该令牌。
4. 将令牌提交给存储阵列。
5. 存储阵列在内部执行文件复制或移动操作,并为用户显示操作状态。
前提需求
要使用 Hyper-V 对 ODX 的支持,需满足下列条件:
1) Windows Server 2012、Windows Server 2012 R2、Hyper-V Server 2012 或 Hyper-V Server 2012 R2。
2) 虚拟磁盘文件保存在支持 ODX 的硬件上,并通过虚拟 SCSI 设备或直直通磁盘的方式连接到虚拟机。
3) 将 ODX 兼容的光纤通道 LUN 分配到虚拟机的虚拟光纤通道适配器。
4) 连接到虚拟 IDE 接口的 VHD 或 VHDX 虚拟磁盘不支持这种优化,因为集成式开发环境(IDE)不支持 ODX。
1. 要想使用新的ODX技术,首先需要收集有关存储阵列的复制管理器(操作系统)信息,这包括:
1) 复制管理器的名称和版本分别是什么?
2) 复制管理器是否支持 ODX?
3) 复制管理器是否支持来自相同供应商的多个存储阵列之间的 ODX 操作?
4) 不活跃计时器的默认值是多少?这指定计时器过期后复制管理器要等到多长时间才能使闲置的令牌失效。
5) 复制管理器的最大令牌容量是多少?
6) 最佳的传送大小是多少?这指示 Windows 如何发送大小最适宜存储阵列的“读”与“写”命令。
关于ODX本人了解的也不是很多,主要是通过TechNet官网
http://technet.microsoft.com/zh-cn/library/hh831487.aspx
2. 使用一下命令验证想使用的ODX的服务器是否支持ODX技术
以管理员权限查询注册表项以确定筛选器驱动程序是否已选择性加入 ODX 支持
get-itemproperty hklm:\system\currentcontrolset\services\<filtername> -name "SupportedFeatures"
3. 使用以下命令禁用服务器上的 ODX,并在代表性数据传输过程中创建系统性能报告,并建立性能基线
1) 以管理员身份打开 Windows PowerShell 会话
2) 检查目前是否已启用 ODX(它处于默认状态下),操作方法是验证注册表中的 FilterSupportedFeaturesMode 值是否等于 0
get-itemproperty hklm:\system\currentcontrolset\control\filesystem -name "FilterSupportedFeaturesMode"
3) 使用以下命令禁用 ODX 支持
set-itemproperty hklm:\system\currentcontrolset\control\filesystem -name "FilterSupportedFeaturesMode" -value 1
4) 打开服务器管理器,点击右上角工具,选择性能监控器
5) 展开“数据收集器集”和“系统”,右键单击“System Performance系统性能”,然后单击“开始”。性能监控器将花费 60 秒收集数据
6) 展开报告,展开系统,展开System Porformance,点击生成的性能报告,查看CPU 使用率、网络使用率、磁盘字节/秒相关数据
4. 启用ODX并验证性能
1)以管理员身份打开 Windows PowerShell 会话并键入以下命令
set-itemproperty hklm:\system\currentcontrolset\control\filesystem -name "FilterSupportedFeaturesMode" -value 0
2)再次执行上述步骤,展开“数据收集器集”和“系统”,右键单击“System Performance系统性能”,然后单击“开始”。
3)当评估ODX的性能时,应查看在禁用 ODX 时创建的基线的不同之处
a) CPU使用率应较低(仅比数据传输之前略高)。这表明服务器无需管理数据传输。
b) 网络使用率应较低(仅比数据传输之前略高)。这显示数据传输绕过了服务器。
c) 磁盘字节/秒的值应较高。这反映出在阵列或 SAN 内部直接传输的性能有所提高。
启用(或重新启用)ODX,重复基线测试和比较结果。如果ODX符合预期,CPU和网络利用率应该是更低的,因为服务器的CPU和网卡端口不直接处理转移工作;磁盘活动性应该是更高的,因为数据正在更有效地执行磁盘-磁盘(而不是磁盘-服务器-磁盘)。如果结果相反,需要确认ODX是否完全启用并重新检查Windows服务器、存储数组、存储协议和其他需求的配置是否正确。定期重复ODX基线测试,可以发现任何性能恶化迹象,这时可能需要故障诊断,优化或升级。
通过避免服务器干涉直接在存储位置之间移动数据,卸载数据传输提高了存储效率。但ODX支持目前尚不普遍,用户必须考虑硬件和软件兼容性需求。最好是在实验室环境中对ODX配置和性能优势,特别是混合存储阵列硬件或Windows服务器和存储过滤驱动程序的版本等进行测试。制定计划和测试可以避免当存储系统意外被迫返回到非ODX操作时付出昂贵的性能代价。