网亿兴云CBlock关于分布式数据中心基于分布式存储的Windows ODX实现与优化

时间:2022-05-22 07:57:27

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.兴和云网的分布式数据中心云存储产品

  网亿兴云CBlock是“武汉兴和云网科技股份有限公司”开发的一款创新服务型产品,这款产品是以机柜形式来交付,它是由服务器、存储、网络设备,以及系统软件、应用和管理软件组成,是一个典型的超融合架构。CBlcok从管理职能提升的角度为用户提供“云桌面中心”、“云灾备中心”、“云资源中心”和“云管理中心”四大功能。
网亿兴云CBlock是一款数据中心资源引擎,使客户在原有虚拟化或私有云前提下,具备公有云服务和私有云交付的能力。 CBlock融合了数据中心所需的服务器、网络、存储、安全和管理等软硬件资源,创造性的提供虚拟数据中心服务、云灾备中心服务、云桌面中心服务、云管理中心服务四大功能,弥补了目前市场上常见的云主机、云备份、云盘等公有云资源服务的功能缺失,并能实现动态的可伸缩性以及全面的可用性和可靠性,使数据中心的资源管理工作职能产生质的飞越。

  3.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 命令,发送卸载查询请求给存储控制器,查询卸载读/写的结果。

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

  4.1令牌的管理和同步