System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及云存储,具体为基于cow实现云硬盘在大规模集群场景在线无感迁移的方法。
技术介绍
1、目前已知的迁移方式主要是在计算侧采用冷迁移和热迁移的方式;。
2、1、冷迁移方案
3、在迁移到另外的计算节点时,这段时间虚拟机实例是处于宕机状态的,即关闭电源的虚拟机进行迁移。通过冷迁移,可以选择将关联的磁盘从一个数据存储移动到另一个数据存储,实例需要重启才能工作。适用于对象系统可用性要求不是很高的时候,迁移过程中会关机,拷贝instance的镜像文件和重建libvirt.xml(这个配置文件中会涉及网络环境,存储设备等配置),并重新在目标主机上启动。但是,这个方案对于大规模的在线业务系统而言是无法接受的,所以出现了下面的热迁移方案。
4、热迁移方案,即虚拟机保存/恢复(save/restore):将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。在线迁移(或'真正的在线迁移')。实例几乎没有宕机时间。用于当实例需要在迁移时保持运行。在线迁移有下面几种类型:基于共享存储的在线迁移(live migration):需要实例保存在nfs共享存储中,所有的hypervisor都可以访问共享存储,主要是实例的内存状态的迁移,速度会很快。块在线迁移(block migration):不要求实例存储在共享文件系统中,即无须共享存储。当各主机上vm使用的是本地存储,而不是共享存储时,要实现迁移,需要实现镜像文件和内存
技术实现思路
1、本专利技术的目的在于提供基于cow实现云硬盘在大规模集群场景在线无感迁移的方法,以解决上述
技术介绍
中提出的在大规模云数据中心中因存储空间超配,集群规模达到瓶颈无法扩容而需要大规模虚机跨存储集群迁移的问题。
2、为实现上述目的,本专利技术提供如下技术方案:基于cow实现云硬盘在大规模集群场景在线无感迁移的方法,所述方法包括以下步骤:
3、针对主集群设置扩展集群列表;
4、客户端更新并选择扩展集群;
5、执行写入流程;
6、执行读取流程。
7、优选的,针对主集群设置扩展集群列表的具体操作包括:
8、当前存储集群a规模已经到达瓶颈且容量接近告警水位,在线的云硬盘持续有新数据写入,扩展新的存储集群b、c、d;
9、新增cli客户端设置扩展集群命令行,运维人员通过调用命令行设置扩展集群列表,cli发送rpc setbackuppoollist,集群数据管理中心收到rpc进行持久化处理,并在服务端更新扩展集群列表版本号,完成后返回成功。
10、优选的,客户端更新并选择扩展集群的具体操作包括:
11、集群管理中心客户端定期向集群管理中心获取集群状态、扩展集群信息的版本号,并与本地版本号进行比较;
12、如果本地版本号低于返回的版本号,从集群管理中心获取最新集群扩展列表,并更新到本地;
13、客户端卷定期会从集群管理中心客户端收集集群扩展列表,如果发现列表不为空,根据自身的object map统计剩余需要的空间,并发送chooserpc到集群管理中心选择扩展集群,集群管理中心收到rpc后,根据扩展集群的容量情况选择容量空间最大的集群,并反馈客户端;
14、集群管理中心更新该扩展集群的剩余可用容量,持久化到全局元数据系统;
15、卷客户端收到扩展集群信息后,将扩展集群信息持久化到卷的属性信息中。
16、优选的,执行写入流程的具体操作包括:
17、客户端卷收到write(off,len)命令,假设卷所在主集群为a,扩展集群为a’;如果不存在扩展集群a’,那么走正常io到a集群流程;
18、将卷write(off,len)按卷chunk块大小,切分为不同的chunk request请求;
19、根据chunkid哈希选择合适的虚拟磁盘id,然后根据冗余和一致性哈希算法选择出冗余分区的磁盘组;并发将chunk request发送到磁盘组主磁盘服务,主磁盘服务将数据持久化后返回给客户端;
20、客户端收到成功后,更新内存object map,并将元数据发送到元数据服务持久化,成功后,写io返回成功;如果存在扩展集群a’,那么根据a集群中卷的objectmap判断对应的chunk是否存在,如果已经存在,走如下流程:
21、从a集群读出对应的一个或多个chunks;将新写入的数据在内存中更新到对应的chunks;将更新后的chunk按正常的写入流程,写入到a’集群中;
22、更新objectmap,并将对应的chunk源bit表示为1,表示扩展集群,正常为0主集群;写io返回成功。
23、优选的,执行读取流程的具体操作包括:
24、客户端卷收到read(off,len)命令;根据off,len解析objectmap信息,表示chunk在集群aora’;
25、构建chunk request,如果在a集群,那么根据chunkid定位到主磁盘服务,并发送读请求到主服务;主服务从磁盘读取数据并返回客户端;
26、如果在a’集群,发送读请求到a’集群;客户端根据从a和a’集群返回的数据组装为一个整体,读io返回成功。
27、与现有技术相比,本专利技术的有益效果是:
28、本专利技术提出的基于cow实现云硬盘在大规模集群场景在线无感迁移的方法,通过向主集群中设置扩展集群列表,所有虚机开通的云硬盘感知到扩展集群后,为自己申请扩展集群,并在新的写入发生时,触发cow,将新数据写入扩展集群,每个云硬盘有且仅有一个扩展集群;通过底层存储系统基于cow实现在线无感数据的迁移,大大提升降低新存储集群的成本,同时降低因处理海量虚机带来的资源投入。
本文档来自技高网...【技术保护点】
1.基于COW实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的基于COW实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:针对主集群设置扩展集群列表的具体操作包括:
3.根据权利要求1所述的基于COW实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:客户端更新并选择扩展集群的具体操作包括:
4.根据权利要求1所述的基于COW实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:执行写入流程的具体操作包括:
5.根据权利要求1所述的基于COW实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:执行读取流程的具体操作包括:
【技术特征摘要】
1.基于cow实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的基于cow实现云硬盘在大规模集群场景在线无感迁移的方法,其特征在于:针对主集群设置扩展集群列表的具体操作包括:
3.根据权利要求1所述的基于cow实现云硬盘在大规模集群场景在线无感迁移...
【专利技术属性】
技术研发人员:陈孝委,尹萍,孙兴艳,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。