一种低延迟的分布式元数据服务迁移方法和系统与流程

文档序号:16972555发布日期:2019-02-26 18:41阅读:152来源:国知局
本发明涉及计算机存储领域,特别涉及一种低延迟的分布式元数据服务迁移方法和系统。
背景技术
::分布式元数据服务迁移机制的本质是元数据集合管理权限的切换以及迁移过程中的元数据一致性的保证。当发生元数据服务迁移时,分布式元数据服务提供方(迁出端)需要等到自身的元数据与状态数据完全迁移到分布式元数据服务的迁入端之后,才能够对分布式元数据服务请求方提供分布式元数据服务,该方法存在gracetime延迟问题。gracetime是迁入端等待所有客户端完成状态恢复的最小时间。在该迁移方法中,迁入端必须要等待所有客户端完成状态恢复之后才能提供正常元数据服务。其原因在于,如果某个客户端没有完成一些锁状态的恢复,而这个时候其他客户端对锁状态对应的元数据进行访问的话将可能导致不一致的共享访问。pnfs是nfsv4的高性能增强,它在保持了nfsv4操作系统和硬件平台独立的同时又提供了对并行文件系统的直接存储访问。在pnfs中gracetime设置为90s,这是在很多应用环境中是无法容忍的。ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统。对于各个典型系统的元数据迁移方法,在迁移透明性方面,ceph透明性良好,而storagetank(存储池)透明性差,应用需中断。在迁移延迟方面,我们仅考虑迁移透明的系统。子卷粒度版本蓝鲸集群文件系统系统存在gracetime,延迟巨大,而ceph相对较快,但是也存在一些不足导致延迟过高。ceph采用了两阶段提交协议来保证迁移过程的一致性,需要在迁入端大量记录日志,相当耗时。基于分布式元数据服务迁移的本质,参考以上各种典型系统的迁移原理,结合研究平台细粒度版本的蓝鲸集群文件系统原型系统的结构特点,本发明拟实现一个适用于细粒度版本的蓝鲸集群文件系统平台系统结构的,基于元数据服务迁移框架的,低延迟的分布式元数据服务迁移机制。技术实现要素:为了解决上述技术问题,本发明在原有的蓝鲸集群文件系统(bwfs)细粒度版本的分布式元数据服务迁移机制基础上,提出了结合分布式元数据服务迁移各阶段的迁移子卷的状态,对分布式元数据操作进行分类处理的方法,解决了分布式元数据服务迁移延迟过高的问题,提供了一种低延迟的分布式元数据服务迁移机制。具体地说,本发明公开了一种低延迟的分布式元数据服务迁移方法,其中包括:步骤1、获取分布式元数据服务迁出端,作为迁出端,获取分布式元数据服务迁入端,作为迁入端,将该迁出端的状态设置为“元数据迁移”,并将该迁入端的状态设置为“元数据接收”,该迁出端导出被迁移子卷至该迁入端;步骤2、该迁出端修改该被迁移子卷的状态为“状态迁移”,该迁出端将该被迁移子卷中文件的状态复制到该迁入端;步骤3、该迁入端在本地元数据服务器映射表更新该被迁移子卷对应的表项为“本地”,该迁出端在本地元数据服务器映射表更新该被迁移子卷对应的表项为“非本地”,该迁出端本地卸载该被迁移子卷。该低延迟的分布式元数据服务迁移方法,其中该步骤1还包括:将该迁出端的状态设置为“元数据迁移”后,进行该被迁移子卷的元数据的下刷,该迁入端挂载该被迁移子卷,该迁入端修改该被迁移子卷的分布式日志的状态为normal,该迁出端导出被迁移子卷至该迁入端后,该迁入端修改该被迁移子卷的状态为“本地”;该步骤2还包括:该迁出端将该被迁移子卷中文件的状态通过远程过程调用复制到该迁入端;该步骤3还包括:该迁出端修改该被迁移子卷的状态为“不在本地”,该迁出端释放该被迁移子卷中文件的状态。该低延迟的分布式元数据服务迁移方法,其中当该步骤1正在执行且收到分布式元数据写请求时,返回给服务请求方第一错误码和该迁入端的ip,该服务请求方创建远程服务调用客户端,然后等待数据迁移结束;当该步骤2正在执行且收到该服务请求方重试的写请求后,返回给该服务请求方第二错误码,该服务请求方得知元数据迁移完毕,根据该迁入端的ip,将该写请求发送到该迁入端。该低延迟的分布式元数据服务迁移方法,其中当该步骤2正在执行且收到分布式元数据写请求时,返回给该服务请求方第二错误码和该迁入端的ip,该服务请求方根据该迁入端的ip,将该写请求发送到该迁入端。该低延迟的分布式元数据服务迁移方法,其中当该步骤3正在执行且收到分布式元数据写请求时,返回给服务请求方第三错误码和迁入端的ip,该服务请求方根据该迁入端的ip创建该迁入端的rpcclient,以将该写请求重定向发送到该迁入端。该低延迟的分布式元数据服务迁移方法,其中当该步骤1正在执行且收到分布式元数据读请求时,响应该读请求并返回该迁入端的ip,服务请求方收到该迁入端的ip后,更新本地元数据服务器映射表中该迁移子卷所在的ip。该低延迟的分布式元数据服务迁移方法,其中当该步骤2正在执行且收到分布式元数据读请求时,返回给服务请求方第二错误码和该迁入端的ip,服务请求方根据该迁入端的ip创建迁入端的rpcclient,以将该读请求重定向发送到该迁入端。该低延迟的分布式元数据服务迁移方法,其中当该步骤3正在执行且收到分布式元数据读请求时,返回给服务请求方第三错误码和该迁入端的ip。服务请求方根据该迁入端的ip创建该迁入端的rpcclient,以将该读请求重定向发送到该迁入端。本发明还公开了一种低延迟的分布式元数据服务迁移系统,其中包括:元数据迁移模块,用于获取分布式元数据服务迁出端,作为迁出端,获取分布式元数据服务迁入端,作为迁入端,将该迁出端的状态设置为“元数据迁移”,并将该迁入端的状态设置为“元数据接收”,该迁出端导出被迁移子卷至该迁入端;状态迁移模块,用于使该迁出端修改该被迁移子卷的状态为“状态迁移”,该迁出端将该被迁移子卷中文件的状态复制到该迁入端;卸载模块,用于使该迁入端在本地mds_table更新该被迁移子卷对应的表项为“本地”,该迁出端在本地mds_table更新该被迁移子卷对应的表项为“非本地”,该迁出端本地卸载该被迁移子卷。该低延迟的分布式元数据服务迁移系统,其中该元数据迁移模块还包括:将该迁出端的状态设置为“元数据迁移”后,进行该被迁移子卷的元数据的下刷,该迁入端挂载该被迁移子卷,该迁入端修改该被迁移子卷的分布式日志的状态为normal,该迁出端导出被迁移子卷至该迁入端后,该迁入端修改该被迁移子卷的状态为“本地”;该状态迁移模块还包括:该迁出端将该被迁移子卷中文件的状态通过远程过程调用复制到该迁入端;该卸载模块还包括:该迁出端修改该被迁移子卷的状态为“不在本地”,该迁出端释放该被迁移子卷中文件的状态;其中,当该元数据迁移模块正在运行且收到分布式元数据写请求时,返回给服务请求方第一错误码和该迁入端的ip,该服务请求方创建远程服务调用客户端,然后等待数据迁移结束;当该状态迁移模块正在运行且收到该服务请求方重试的写请求后,返回给该服务请求方第二错误码,该服务请求方得知元数据迁移完毕,根据该迁入端的ip,将该写请求发送到该迁入端;当该状态迁移模块正在运行且收到分布式元数据写请求时,返回给该服务请求方第二错误码和该迁入端的ip,该服务请求方根据该迁入端的ip,将该写请求发送到该迁入端;当该卸载模块正在运行且收到分布式元数据写请求时,返回给服务请求方第三错误码和迁入端的ip,该服务请求方根据该迁入端的ip创建该迁入端的rpcclient,以将该写请求重定向发送到该迁入端;当该元数据迁移模块正在运行且收到分布式元数据读请求时,响应该读请求并返回该迁入端的ip,服务请求方收到该迁入端的ip后,更新本地元数据服务器映射表中该迁移子卷所在的ip;当该状态迁移模块正在运行且收到分布式元数据读请求时,返回给服务请求方第二错误码和该迁入端的ip,服务请求方根据该迁入端的ip创建迁入端的rpcclient,以将该读请求重定向发送到该迁入端;当该卸载模块正在运行且收到分布式元数据读请求时,返回给服务请求方第三错误码和该迁入端的ip。服务请求方根据该迁入端的ip创建该迁入端的rpcclient,以将该读请求重定向发送到该迁入端。由此,本发明可以:在进行分布式元数据服务迁移过程分阶段后,可以在不同阶段响应不同类型的分布式元数据服务请求,避免了分布式元数据服务迁移延迟过高问题。附图说明图1为分布式元数据读响应延迟图;图2为分布式元数据写响应延迟图;图3为meta-migrating阶段分布式元数据写流程图;图4为meta-migrating阶段分布式元数据另一写流程图;图5为state-migrating阶段分布式元数据写流程;图6为absent阶段分布式元数据写流程图;图7为meta-migrating阶段分布式元数据读流程图;图8为state-migrating阶段分布式元数据读流程图;图9为absent阶段分布式元数据读流程图。具体实施方式为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。本发明包括细分迁移阶段和分阶段响应不同类型操作两个部分。细分迁移阶段:原有的分布式元数据服务迁移过程的各阶段对分布式元数据服务请求方是透明的,当分布式元数据服务提供方发生迁移时,服务请求方的访问请求会一直被阻塞直到整个分布式元数据服务迁移过程完毕,才会去分布式元数据服务迁入端进行分布式元数据的访问请求。因此,需要对分布式元数据服务整个过程的各阶段进行进一步分析。如下表1所示,本发明把第一阶段命名为meta-migrating,其定义区间为[服务迁出端的状态设置为“元数据迁移”,服务迁出端的状态设置为“状态迁移”)。在第二阶段中为了保持与原有的元数据服务前移框架的语义基本一致不产生二义性,我们把第二阶段从逻辑上又划分为两个阶段:state-migrating,其定义区间为[服务迁出端的状态设置为[“状态迁移”,服务迁出端修改被迁移子卷fsx的状态为“不在本地”);absent,其定义区间为[服务迁出端修改被迁移子卷fsx的状态为“不在本地”,服务迁出端本地卸载被迁移子卷fsx]。其中迁出端和迁入端都是是元数据服务器。表1迁移过程阶段细分:原有的分布式元数据服务迁移过程,经过重新规划以后,被迁移子卷fsx对分布式元数据读写请求响应的情况图示1,图示2。分阶段响应不同类型操作:对分布式元数据操作的定义是:在多mds架构中,仅涉及到两台mds或多台mds(statfs操作)的元数据操作。多mds架构:该架构把一个元数据卷和一个数据卷格式化为一个文件系统,这称为一个文件系统卷。在集群系统中,每个文件系统卷的粒度都比较小,以至于每个元数据服务器可以管理若干个文件系统卷。touch、rm两个操作不会有涉及两台mds的情况。对于其他操作会有涉及到两台mds或多台mds的情况,因此对于每个操作的第二个子操作的请求的接收方来说,我们可以做以下归类,如表2所示。其中touch是创建文件的操作,它的核心子操作有两个:1.在父目录中添加创建文件的目录项。2.为新创建的文件申请inode。rm是删除文件的操作,它的核心子操作有两个:1.在父目录中删除被删除文件的目录项。2.释放被删除文件的inode。分布式元数据读操作:statfs。分布式元数据写操作:mkdir、rmdir、hardlink、rename。statfs查询文件系统相关的信息;mkdir创建文件夹;rmdir删除文件夹;hardlink创建源文件的硬链接;rename为原文件重命名。接下来需要分情况讨论,分布式元数据服务迁移过程中meta-migrating、state-migrating、absent三个阶段可以响应的分布式元数据操作。表2各阶段响应操作分布式元数据写请求情况分析与设计分布式元数据写请求时服务迁出端处于meta-migrating阶段。当收到分布式元数据写(meta_write)类型的请求,返回给服务请求方nfs4err_metamigrating错误码和服务迁入端mds的ip。服务请求方收到新的ip后创建rpcclient,然后等待数据迁移结束,如图示3。rpcclient作用是用来跟服务端建立rpc链接。rpc(remoteprocedurecall)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。服务迁出端元数据迁移完毕,进入state-migrating阶段,收到服务请求方重试的分布式元数据写(meta_write)请求后,返回给服务请求方nfs4err_metaabsent错误码。服务请求方得知元数据迁移完毕,将分布式元数据写请求重定向发送到服务迁入端,如图示4。分布式元数据写请求时服务迁出端处于state-migrating阶段。当收到分布式元数据写(meta_write)类型的请求,返回给服务请求方nfs4err_metaabsent错误码和服务迁入端mds的ip。服务请求方根据返回的ip创建服务迁入端的rpcclient,将分布式元数据写请求重定向发送到服务迁入端,如图示5。分布式元数据写请求时服务迁出端处于absent阶段。当收到分布式元数据写(meta_write)类型的请求,返回给服务请求方nfs4err_migratecomplete错误码和服务迁入端mds的ip。服务请求方根据返回的ip创建服务迁入端的rpcclient,将分布式元数据写请求重定向发送到服务迁入端,如图示6。分布式元数据读请求情况分析与设计:分布式元数据读请求时服务迁出端处于meta-migrating阶段。服务迁出端正处于meta-migrating阶段时,收到分布式元数据读(meta_read)类型的请求,响应请求并返回服务迁入端mds的ip。服务请求方收到服务迁入端mds的ip后,更新本地的mds_table中迁移子卷fsx所在mds的ip,如图示7。分布式元数据读请求时服务迁出端处于state-migrating阶段。服务迁出端正处于state-migrating阶段,得到分布式元数据读(meta_read)类型的请求,返回给服务请求方nfs4err_metaabsent错误码和服务迁入端mds的ip.服务请求方根据返回的ip创建服务迁入端的rpcclient,将分布式元数据读请求重定向发送到服务迁入端,如图示8。分布式元数据读请求时服务迁出端处于absent阶段。、服务迁出端的元数据与状态数据都已迁移完毕,处于absent状态,得到分布式元数据读(meta_read)类型的请求,返回给服务请求方nfs4err_migratecomplete错误码和服务迁入端mds的ip。服务请求方根据返回的ip创建服务迁入端的rpcclient,将分布式元数据读请求重定向发送到服务迁入端,如图示9。以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。本发明还公开了一种低延迟的分布式元数据服务迁移系统,其中包括:元数据迁移模块,用于获取分布式元数据服务迁出端,作为迁出端,获取分布式元数据服务迁入端,作为迁入端,将该迁出端的状态设置为“元数据迁移”,并将该迁入端的状态设置为“元数据接收”,该迁出端导出被迁移子卷至该迁入端;状态迁移模块,用于使该迁出端修改该被迁移子卷的状态为“状态迁移”,该迁出端将该被迁移子卷中文件的状态复制到该迁入端;卸载模块,用于使该迁入端在本地mds_table更新该被迁移子卷对应的表项为“本地”,该迁出端在本地mds_table更新该被迁移子卷对应的表项为“非本地”,该迁出端本地卸载该被迁移子卷。该低延迟的分布式元数据服务迁移系统,其中该元数据迁移模块还包括:将该迁出端的状态设置为“元数据迁移”后,进行该被迁移子卷的元数据的下刷,该迁入端挂载该被迁移子卷,该迁入端修改该被迁移子卷的分布式日志的状态为normal,该迁出端导出被迁移子卷至该迁入端后,该迁入端修改该被迁移子卷的状态为“本地”;该状态迁移模块还包括:该迁出端将该被迁移子卷中文件的状态通过远程过程调用复制到该迁入端;该卸载模块还包括:该迁出端修改该被迁移子卷的状态为“不在本地”,该迁出端释放该被迁移子卷中文件的状态;其中,当该元数据迁移模块正在运行且收到分布式元数据写请求时,返回给服务请求方第一错误码和该迁入端的ip,该服务请求方创建远程服务调用客户端,然后等待数据迁移结束;当该状态迁移模块正在运行且收到该服务请求方重试的写请求后,返回给该服务请求方第二错误码,该服务请求方得知元数据迁移完毕,根据该迁入端的ip,将该写请求发送到该迁入端;当该状态迁移模块正在运行且收到分布式元数据写请求时,返回给该服务请求方第二错误码和该迁入端的ip,该服务请求方根据该迁入端的ip,将该写请求发送到该迁入端;当该卸载模块正在运行且收到分布式元数据写请求时,返回给服务请求方第三错误码和迁入端的ip,该服务请求方根据该迁入端的ip创建该迁入端的rpcclient,以将该写请求重定向发送到该迁入端;当该元数据迁移模块正在运行且收到分布式元数据读请求时,响应该读请求并返回该迁入端的ip,服务请求方收到该迁入端的ip后,更新本地元数据服务器映射表中该迁移子卷所在的ip;当该状态迁移模块正在运行且收到分布式元数据读请求时,返回给服务请求方第二错误码和该迁入端的ip,服务请求方根据该迁入端的ip创建迁入端的rpcclient,以将该读请求重定向发送到该迁入端;当该卸载模块正在运行且收到分布式元数据读请求时,返回给服务请求方第三错误码和该迁入端的ip。服务请求方根据该迁入端的ip创建该迁入端的rpcclient,以将该读请求重定向发送到该迁入端。本发明发明点包括:1、分布式元数据服务迁移过程分段机制,将分布式元数据服务迁移过程细分为meta-migrating、state-migrating、absent三个阶段;2、对分布式元数据操作进行归类机制,在细分迁移阶段基础上分阶段响应不同类型的分布式元数据服务类型。虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本
技术领域
:技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1