阅读更多
引用
作者简介:文刘飞,杉岩数据联合创始人 引擎架构师

编者按:服务器虚拟化技术在提高服务器利用率的同时,也消耗了大量的CPU、内存和网络带宽资源,本文从存储卸载加速的背景出发,探讨基于分布式存储的Windows ODX的实现与优化。

1.存储卸载加速的背景
服务器虚拟化成为数据中心的主流技术,大量运行的虚拟机大大提高了服务器的利用率,对虚拟机进行批量的创建、复制、迁移极大的简化了IT运维的同时,也带来了大量的数据拷贝操作,进而消耗了服务器的大量CPU、内存和网络带宽资源。

针对于这些问题,VMware提出了VAAI(vStorage API for Array Integration)接口,希望将VMware基础架构的某些功能委托给存储阵列去实现,通过减少数据对于虚拟机和物理服务器的资源消耗,从而提升VMware基础架构的性能。

同时,Microsoft也在Windows 8或Windows Server 2012中新增了卸载数据传输(Offloaded Data Transfer ODX)这一功能,期望把数据拷贝功能卸载到存储硬件中,降低虚拟化服务器的开销。

本文将和您一起探讨Windows ODX的实现与优化

通过配合支持卸载的存储硬件使用,ODX可在不占用 Hyper-V 宿主机 CPU 资源的情况下通过存储设备执行文件复制操作,由存储设备直接从一个存储位置读取数据,并写入到另一个位置。卸载数据传输的设计符合T10 XCOPY Lite规范,对数据拷贝加速进行了端到端的设计,理论上支持在不同存储厂商的存储设备之间进行数据复制。

2.ODX实现原理概述
ODX使用基于令牌的机制在智能存储阵列内部或之间复制数据。待复制的源文件和目标文件可以在同一个卷上、同一服务器管理的两个不同卷、或者多个服务器共享的群集共享卷上。

令牌是一个512字节的随机数,令牌代表了一个或多个extent(最多128MB的实际数据),一般是一个文件或文件的一部分。令牌由存储控制器通过哈希算法产生,同时令牌具有一定的生命周期。因此微软一直认为安全性和兼容性是Windows ODX区别于 VMware VAAI的一个显著特征。

由于传给主机的是代表数据的令牌,而不是数据本身,因此大大提高了数据复制的性能。同时由于ODX的命令交互比较多,因此ODX文件复制要求文件至少为256KB,太小的文件所产生的开销会使得XCOPY操作变得没有任何意义。

图1 Windows ODX基于令牌的复制操作

如上图所示,利用ODX实现数据复制的主要操作流程如下所示:
  • 用户通过Windows Explorer或命令行执行文件复制/移动。
  • Windows 8或Windows Server 2012发送一个读请求给存储控制器要求执行数据拷贝(POPULATE_TOKEN命令,包含了源LBA/Block length pair list)
  • 存储控制器创建代表数据的令牌并发送回主机(SP创建PIT token)
  • 主机使用令牌发起写请求给存储控制器(WRITE_USING_TOKEN命令,包含一个目标LBA/Block length pair list)
  • 存储控制器根据令牌信息,验证令牌的有效性和源数据位置,并把数据传输数据到目标位置。
  • 最后存储控制器把ODX复制的结果发送给主机(主机使用RECEIVE_ROD_TOKEN_INFORMATION命令查询结果)

为了实现ODX功能,ODX增加了如下几个SCSI命令:
  • POPULATE_TOKEN命令,发送卸载读请求给存储控制器,请求针对虚拟磁盘LUN A的某段数据产生一个数据令牌。
  • WRITE_USING_TOKEN命令,携带数据令牌发送卸载写请求给存储控制器,请求把该令牌所代表的数据复制到指定位置。
  • RECEIVE_ROD_TOKEN_INFORMATION 命令,发送卸载查询请求给存储控制器,查询卸载读/写的结果。

3.ODX在分布式存储的优化

3.1令牌的管理和同步
对于分布式存储集群,通常会提供多个存储控制器来实现IO的并发访问以及IO路径的高可用(如图2所示)。同时Windows服务器通过iSCSI MPIO和分布式存储连接以后,ODX可能会对不同的存储控制器分别下发POPULATE_TOKEN命令和WRITE_USING_TOKEN命令。这就要求某一个存储控制器产生的数据令牌需要和其他存储控制进行实时同步。同时令牌具有一定的生命周期, 因此存储控制器需要保证数据令牌的唯一性,并且定期清理已经过期的数据令牌。

图2 提供多个ISCSI服务端的分布式存储集群


3.2 ODX相关参数调优
ODX进行数据复制时,默认传输的一个数据片段大小为64MB,支持传输的最大数据片段为256MB。由于不同的分布式存储环境,所配置的HDD、SSD磁盘数量各不相同,因此不同环境最有的数据传输切片大小也各不一样。ODX支持通过存储的VPD描述去建议最优的数据切片大小。因此可以结合分布式存储的配置情况,选择最优的数据传输片段大小。

考虑到分布式存储在产生数据令牌时,需要在各存储控制器之间通过网络进行实时同步,时延开销比较大,因此可以通过配置参数,最大化数据令牌所代表的数据块大小,减少POPULATE_TOKEN命令的发送次数。

3.3 ODX相关的流量控制以及一些异常处理
ODX进行数据复制时,通常都是大数据块的读写,这样会对存储服务器的硬盘带来很大的压力,进而影响对其他IO业务的处理。因此有必要在同时存在其他业务IO时,对ODX相关的IO做一定的流量限制。

在某些异常场景,WRITE_USING_TOKEN命令的目标位置和源文件位置会发生重叠,这样有可能会导致数据处理不正确,因此在执行写操作前需要增加一些位置校验。

4.ODX的优化效果
杉岩数据的SandStone UPS作为企业级软件定义存储产品,对Windows ODX实现了完美的支持,借助ODX,SandStone UPS大大节省服务器的网络带宽和CPU资源。下图为Windows 2012服务器通过1G网络连接SandStone USP进行数据复制的测试。

从任务管理器可以看到,在做数据复制时,网络带宽和内存、CPU消耗都不大,特性是网络带宽只占用了200K左右,但是数据复制显示的速度平均有200MB,远超过1G网络带宽的限制。(说明一下:200k是Windows和存储控制器直接带宽,Windows只是发送控制命令,实际的数据传输是在存储网络间进行的。)

以上,就是我们在Windows ODX上的具体优化实践,本着开放、务实的技术理念,未来,将积极吸取行业的优秀经验和技术产品,从而为用户打造一套更加完善的需求解决方案。(责编/魏伟)
  • 大小: 69.9 KB
  • 大小: 120.7 KB
  • 大小: 144.8 KB
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • AUTOSAR从入门到精通-中间件通信DDS(三)

    DDS(Data Distribution Service数据分发服务)是对象管理组织OMG的有关分布式实时系统中数据发布的一个较新的规范(2004年12月发布1.0版,2007年1月发布1.2版)。DDS规范采用了发布/订阅体系结构,但对实时性要求提供更...

  • 开发者必看!Windows Server 2012全攻略

    品牌:微软操作系统1Windows Server 2012概论 与往常不同的是,今年在服务器领域发生了翻天覆地的变化。从底层的新品架构推动服务器基础设施扑面而来的升级换代,到构建云基础架构平台上分布式处理系统应对大数据...

  • 微软HPC解决方案概述与实作

    例如,一个分布式群集的节点,可以是server,pc,hpc,可以是跨机房,跨地区,跨国,可以是windows,linux,unix,可以分布式计算里面再包括多个群集,多个节点,基本上分布式群集最大的一个特点,就是对提供计算的...

  • 微软HPC解决方案

    首先我们先来看下高性能群集与其它几种群集的不同   高可用群集:群集所有节点,来维持一个应用的持续运作,如果当前应用所在节点失败,自动故障转移至其它节点 负载均衡群集:群集所有节点来平衡一个应用的访问...

  • BizTalk学习笔记系列之二:实例说明如何使用BizTalk

    存储和交付体系结构组合在一起,使基于编排的应用场合的吞吐率有了极大的提高。 该编排引擎通过自动事务缓冲池进一步优化了性能。此外,该引擎的向外扩充模型允许编排处理以负载平衡的方式分散在一个 BizTalk 群集...

  • Biztalk 知识整理

    我们就用这个来实现发送端口与接收端口的关联。在条件表达式中设置: BTS.ReceivePortName == ReceiveFiles  10. 启动BizTalk 应用程序验证程序  右击Hello World应用程序选择Start。打开刚才配置的接收文件夹...

  • 基于ssm+vue的垃圾分类网站(java毕业设计,包括源码,数据库,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SSM 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:vue/html5 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

  • Flutter分析:带有质量平衡部分机翼的MATLAB计算(含Elastic轴与中心对齐)

    内容概要:本文档主要针对含有质量平衡段(即弹性轴和重心重合点xa=0)的硬翼Flutter问题提供了MATLAB解决方案。文档通过迭代的方式对一系列参数(如频率比(fr)、弹性轴(E)和半径(r)等)进行操作,并利用贝塞尔函数(Kn)来评估flutter速度(UFhat),从而预测了不同质比(mu)下flutter的缩减速度变化情况。同时,文档包含了绘图命令以视觉展示减小颤振速度随质量比变化的趋势以及相应的MATLAB代码。 适合人群:航空工程、飞行器动力学领域的科研工作者,工程师及研究生。尤其是那些从事飞行安全性和稳定性研究的专业人士。 使用场景及目标:主要用于解决飞行器设计过程中遇到的具体颤振问题,能够为设计新型飞机或其他有翼飞行物体提供科学依据和技术支持。它还能够辅助教育,帮助相关专业的学生理解flutter现象及其预防措施。 其他说明:此文件是以数值方法探讨带质量平衡的翅膀颤振特性的实例,在工程上有着重要意义。对于希望深入学习此类问题的人来说,这是一个极好的参考资料和实验平台。然而,实际应用还需要进一步考虑真实条件下的复杂因素,因此需要更多的专业知识和背景资料的支持。

  • GUI面板MATLAB人脸识别系统.zip

    GUI面板MATLAB人脸识别系统

  • 2023年全国计算机二级笔记.pdf

    2023年全国计算机二级笔记.pdf

  • 【人机交互】MATLAB水果成熟度分析.zip

    【人机交互】MATLAB水果成熟度分析

  • 基于SSM+JSP的个人交友网站+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

  • Java毕业设计-SpringBoot+Vue的车辆充电桩(附源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

  • 2023年秋季学期公共课计算机基础与应用.pdf

    2023年秋季学期公共课计算机基础与应用.pdf

  • 基于SSM+JSP的多用户博客个人网站+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

  • 联邦基金目标利率数据.xlsx

    美联储在2024年9月18日宣布将其调50个基点,降至4.75%至5.00%之间的水平。这是美联储自2020年3月以来首次降息,也是自2023年7月将利率水平调升至历史高位后的首次下调,标志着货币政策由紧缩周期向宽松周期的转向 数据名称:美国联邦基金有效利率、目标利率历史数据 样本数量:12667条 数据年份:1990.1-2024.9 数据说明:包括有效利率、目标利率 更新日期:2024年9月

  • 基于SpringBoot+Vue的招聘信息管理系统 (2)(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目,仅供学习参考。 Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

  • Delpih 12.3控件之ddj-installer-20250211.zip

    Delpih 12.3控件之ddj_installer_20250211.zip

  • 【工程项目】MATLAB车牌识别SVM方法,模板匹配太多人做了.zip

    【工程项目】MATLAB车牌识别SVM方法,模板匹配太多人做了

Global site tag (gtag.js) - Google Analytics