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

  网亿兴云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令牌的管理和同步

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

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

  4.2 ODX相关参数调优

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

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

  4.3 ODX相关的流量控制以及一些异常处理

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

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

  5.ODX的优化效果

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

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

  以上,就是我们在Windows ODX上的具体优化实践,本着开放、务实的技术理念,未来,将积极吸取行业的优秀经验和技术产品,从而为用户打造一套更加完善的需求解决方案。

时间: 03-30

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

当数据库遇上云计算 网亿兴云解决方案

数据库遇上云计算 网亿兴云解决方案 [日期:2016-07-21] 来源: 中关村在线  作者: [字体:大 中 小] 人们对数据管理的需求由来已久.1950年,雷明顿兰德公司在"Univac I"计算机上推出了磁带驱动器,每秒可以输入数百条记录.六十年代,计算机开始广泛引用于数据管理,传统的文件系统已经不能满足人们的需要,能够统一管理和共享数据的数据库管理系统应运而生.如今,数据已经不再是简单的储存和管理,基于云的数据库正衍生出越来越多的玩法和应用场景. 数据库遇上云计算 网亿兴云解

亿方云——30元/月/每账户

经过分析,是VS2008+QT4+Python(不知道是怎么嵌进去的),并且还是打碎了存储的 https://www.fangcloud.com/home/plans --------------------------------------------------------------------- --------------------------------------------------------------------- 现在云存储的加密形式基本上都是分布式的,够快联想金山

网盘和云备份 区别在哪里

如果要说起网盘和云备份,你会怎么对比呢? 首先从定义上看看下两者之间的区别吧 网盘,又称网络U盘.网络硬盘,是由互联网公司推出的在线存储服务,向用户提供文件的存储.访问.备份.共享等文件管理等功能.用户可以把网盘看成一个放在网络上的硬盘或U盘,不管你是在家中.单位或其它任何地方,只要你连接到因特网,你就可以管理.编辑网盘里的文件.不需要随身携带,更不怕丢失. 云备份,就是把个人数据的通讯录.短信.图片等资料通过云存储的方式备份在网络上面. 早期限于用户信息的稀缺,个人信息存储需求并不高,存储的空

用友iuap云运维平台支持基于K8s的微服务架构

什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大.更实际的问题.该架构强调的一些准则:单一职责.协议轻量.进程隔离.数据分离.独立部署.按需伸缩. 什么是Kubernetes? Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能:

(桌面虚拟化最佳实践--呼叫中心系统优化之二)存储和服务器优化项目

VMware方案中母版盘优化 在具备SSD盘的局点,桌面母盘(replica盘)采用高性能SSD存储,以提高整个桌面池的使用性能. 一个母盘对应不超过64个虚拟机(即一个桌面池不超过64个虚拟机). 磁盘RAID优化 虚拟机母版盘.操作系统盘.linux文件服务器均采用RAID0+1技术,NAS文件服务器采用raid5,以提高磁盘读写性能. 存储LUN优化 按照安装指南,一个LUN按规划25~30个(该值如有变化,以最新的发布资料为准)虚拟机进行配置划分,以提高LUN的读写性能. 服务器优化 该

网盘、云盘共享文件搜索引擎链接收藏目录

注:这篇文章仅仅作为一个链接收藏目录,是综合别人的文章,故分为好几个部分.搜索云盘资源时,可以多个试用几个网址,目录存在重复,因此可以根据重复次数参考搜索质量. ////////////////////////PART ONE///////////////////////// 网盘搜索引擎 去转盘网:http://www.quzhuanpan.com/ 西林街:http://www.xilinjie.com/ 找文件:http://www.zhaofile.com/ EV搜索:http://ww

Windows Azure 配置实现虚拟机外网IP绑定(云服务)

我们上一篇介绍了如何对已存在的虚拟网络的外网IP做绑定,今天主要介绍配置实现虚拟机外网绑定,两者区别在于一个已存在,一个不存在,如果不存在的话,我们需要新建一个云服务,同时对新建的云服务做标记,标记后,可创建对应得虚拟机来完成外网IP绑定,具体见下:首先注意配置保留虚拟机外网IP需要注意以下事项 一. 操作前的注意事项: 1. 如果虚拟机要使用虚拟网络,只能在Regional Vnet中使用ReservedIP,已经有部署的基于地缘组的虚拟网络无法直接转换为Regional Vnet 2. 这个

《刺杀金正恩》1080p全高清无水印,附中文字幕下载(百度网盘/360云盘)

种子和字幕下载地址: http://www.400gb.com/shared/folder_7815729_16bb4208/ 360云盘:http://yunpan.cn/cfNBXqZwUspkG  提取码 6b9b 百度云盘:http://pan.baidu.com/s/1gd7sKpX 刺杀金正恩电影截图

牛客网左程云老师的算法视频个人总结

第一节课 第一题:题意与leetcode354的问题相同 算法原型 最长递增子序列问题 /* * 题意:求出给定序列的最长递增子序列的长度,给定序列不是有序的,子序列不是子数组,元素在原数组中不必是连续的 * */ /* * solutions1: 时间复杂度O(n^2),空间复杂度O(n) * 新建一个辅助数组h,h[i]表示以nums[i]结尾的最长递增子序列的长度 * h[i]值的确定,需要nums[i]与nums[j](0<=j<i)做比较,h[i] = h[j] + 1 (when

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 微服务概述 单体应用通常指在一个程序中满足多个业务或技术领域的需求,不同的需求领域内化为模块.假定我们要开发一个Web应用,通常的MVC模式可以满足要求.针对不同领域有不少代码生成工具