一种用于对象存储的分布式迁移方法技术

技术编号:26596459 阅读:13 留言:0更新日期:2020-12-04 21:18
本发明专利技术特别涉及一种用于对象存储的分布式迁移方法。该用于对象存储的分布式迁移方法,部署一个分布式集群,包括一个主节点与数个副节点,通过对象名、存储类型、存储权限、对象大小或创建时间段对各个节点进行筛选,只对符合要求的节点进行迁移;当在迁移过程中发现迁移对象中出现坏节点时,将坏掉节点的任务分配给迁移对象中其余的存活节点即可。该用于对象存储的分布式迁移方法,基于对象存储S3协议的特性,部署一个能够自动组建、自动维护的迁移集群,高效并安全地将对象从一个对象存储系统内迁移到另外一个对象存储系统内,最大限度的减少了人工的运维工作。

【技术实现步骤摘要】
一种用于对象存储的分布式迁移方法
本专利技术涉及云计算与对象存储迁移
,特别涉及一种用于对象存储的分布式迁移方法。
技术介绍
对象存储是一种可以原生支持HTTP/HTTPS协议的分布式存储产品,只要连接上互联网,就可以直接使用对象存储的服务。随着对象存储的发展与成熟,越来越多的互联网网站、APP开始将一些静态资源存储到对象存储服务中,既减轻了服务器的压力,又可以降低成本。现在有很多家不同的对象存储服务提供商,当用户有想要更换对象存储服务商,或者想在多个对象存储服务商处做安全冗余时,就会产生对象存储迁移的需求。但是而现有的迁移工具效率较低且往往是单机部署,无法通过建立集群来达到提升速度的目的。为了高效并安全地将对象从一个对象存储系统内迁移到另外一个对象存储系统内,本专利技术提出了一种用于对象存储的分布式迁移方法。
技术实现思路
本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的用于对象存储的分布式迁移方法。本专利技术是通过如下技术方案实现的:一种用于对象存储的分布式迁移方法,其特征在于:部署一个分布式集群,包括一个主节点与数个副节点,通过对象名、存储类型、存储权限、对象大小或创建时间段对各个节点进行筛选,只对符合要求的节点进行迁移;当在迁移过程中发现迁移对象中出现坏节点时,将坏掉节点的任务分配给迁移对象中其余的存活节点即可。包括以下步骤:S1.原对象存储服务的准备在原对象存储服务的待迁移的桶中创建一个迁移专用的文件夹,并在其下面创建一个迁移信息文件,用于存储目标对象存储桶信息和迁移对象筛选规则;迁移开始后至迁移结束前,原对象存储桶内的对象可以增加,但不能删除,且增加的对象不会被迁移过去。S2.迁移节点的准备与启动迁移节点在启动前设置启动参数;分布式集群的所有节点在连接上原对象存储桶后先在迁移文件夹中查询是否有名为master的文件,以确定主节点和副节点;副节点读取master文件内容,根据master文件里记载的host与ip信息向主节点发送注册请求;主节点在初始化结束后,也给自己发送注册请求,开启自己节点的迁移任务;主节点收到注册请求后,在迁移文件夹中创建出来一个以注册节点host为名的任务文件和以该节点的host.log为名的日志文件;所述任务文件负责保存被分配的任务以及副节点的ip,上升时日志文件负责保存该节点已经执行的进度;S3.新节点加入与迁移任务的执行迁移任务以Etag前缀的形式存放于桶内该节点host命名的文件中;当有新节点注册加入分布式集群时,主节点从已存在节点中取出适当的Etag前缀,放入新节点的任务文件中,并在文件中标识出任务来自哪个节点,然后将取出的Etag前缀已存在节点的任务文件中删除;当主节点创建新节点的日志文件时,将各个从老节点拿来的Etag前缀的最新日志加入到新节点的日志文件中,新节点根据日志文件中的Etag前缀继续任务;新节点从总已取出的对象个数最少的任务开始,若该任务某次取出的对象列表中包含有其他任务的结束标记,则启动结束标记对应的其他任务,与该任务并行迁移,以此类推,直至新节点分配到的所有任务都一起进行;在节点执行迁移任务时,每次从原对象存储桶中取一批对象列表出来,然后查看自己的任务列表,得到自己最新的任务前缀,然后根据迁移对象筛选规则与Etag前缀,并将被筛选出的迁移对象传到新对象存储桶中;该批对象传完后,将已取出的对象列表的结束标记,总已取出的对象个数以及此次筛选的Etag前缀记录下来;S4.节点自管理主节点和副节点都对外提供有健康检查接口;主节点定时检查副节点的健康状况,当发现副节点挂掉时,立即将挂掉的副节点的任务平均分配给其他存活的副节点;副节点也定时检查主节点的健康状况,当发现主节点挂掉时,除主节点外最老的副节点自动变为主节点,并将master文件内的ip与host改写为自己的,然后执行主节点维护集群的任务;S5.迁移任务的结束当任务日志的结束标记为null时,表示该任务已经遍历所有的已有对象,该任务的迁移对象已尽数迁移,任务已终结,新节点加入时不再将该任务分配给新节点;当分布式集群所有的迁移任务都已完成后,主节点打印结束日志,提示迁移任务已完成。所述步骤S1中,存储目标对象存储桶信息包括目标对象存储桶的access-key,secret-key以及endpoint和桶名信息;节点通过读取迁移信息文件连接新的对象存储桶,并向新的对象存储桶内放入对象。所述步骤S2中,启动参数包括迁移专用文件夹的文件夹名,迁移信息文件的文件名,迁移节点的节点名(在整个迁移集群中必须独一无二),待迁移对象存储的access-key,secret-key以及endpoint和桶名信息。所述步骤S2中,如果分布式集群节点在连接上原对象存储桶后没有在迁移文件夹中查询到名为master的文件,则建立master文件,并且将master文件的内容修改为自己的host名字与ip,表示该节点为主节点;如果迁移文件夹中已有名为master的文件,则表示分布式集群内已有主节点,自己为副节点。所述步骤S1中,迁移信息文件中还可以设置集群的规模上限,该指标为16的n次方;所述步骤S3中,根据迁移对象的Etag的前m个字符来分配任务,将任务分为16m份,m是根据迁移信息文件中的集群规模n得到的自然数;当主节点第一次收到注册请求时,主节点将所有的前缀都写入该注册节点的任务文件中。如果m为1,即以Etag的第一个字符分配,则将任务分为16份;如果m为2,即以Etag的前两个字符分配,则将任务分为256份,以此类推。所述步骤S3中,主节点定期检查各个节点是否有重复的任务,如果发现有重复的任务则将任务较多的节点的重复任务删除。所述步骤S4中,当分布式集群中最老的副节点与主节点同时挂掉时,master文件内ip与host仍保持为原主节点不变,直至副节点对主节点的健康检查连续失效时,则将次老的副节点变为主节点;若副节点对主节点的健康检查仍连续失效,再次老的副节点变为主节点,以此类推。所述步骤S5中,当副节点完成自己的全部任务后,自动重置并作为新节点再加入集群,寻求新任务。本专利技术的有益效果是:该用于对象存储的分布式迁移方法,基于对象存储S3协议的特性,部署一个能够自动组建、自动维护的迁移集群,高效并安全地将对象从一个对象存储系统内迁移到另外一个对象存储系统内,最大限度的减少了人工的运维工作。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图1为本专利技术用于对象存储的分布式迁移系统各节点与各文件的关系示意图。附图2本文档来自技高网...

【技术保护点】
1.一种用于对象存储的分布式迁移方法,其特征在于:部署一个分布式集群,包括一个主节点与数个副节点,通过对象名、存储类型、存储权限、对象大小或创建时间段对各个节点进行筛选,只对符合要求的节点进行迁移;/n当在迁移过程中发现迁移对象中出现坏节点时,将坏掉节点的任务分配给迁移对象中其余的存活节点即可。/n

【技术特征摘要】
1.一种用于对象存储的分布式迁移方法,其特征在于:部署一个分布式集群,包括一个主节点与数个副节点,通过对象名、存储类型、存储权限、对象大小或创建时间段对各个节点进行筛选,只对符合要求的节点进行迁移;
当在迁移过程中发现迁移对象中出现坏节点时,将坏掉节点的任务分配给迁移对象中其余的存活节点即可。


2.根据权利要求1所述的用于对象存储的分布式迁移方法,其特征在于,包括以下步骤:
S1.原对象存储服务的准备
在原对象存储服务的待迁移的桶中创建一个迁移专用的文件夹,并在其下面创建一个迁移信息文件,用于存储目标对象存储桶信息和迁移对象筛选规则;
迁移开始后至迁移结束前,原对象存储桶内的对象可以增加,但不能删除,且增加的对象不会被迁移过去;
S2.迁移节点的准备与启动
迁移节点在启动前设置启动参数;
分布式集群的所有节点在连接上原对象存储桶后先在迁移文件夹中查询是否有名为master的文件,以确定主节点和副节点;副节点读取master文件内容,根据master文件里记载的host与ip信息向主节点发送注册请求;主节点在初始化结束后,也给自己发送注册请求,开启自己节点的迁移任务;
主节点收到注册请求后,在迁移文件夹中创建出来一个以注册节点host为名的任务文件和以该节点的host.log为名的日志文件;所述任务文件负责保存被分配的任务以及副节点的ip,所述日志文件负责保存该节点已经执行的进度;
S3.新节点加入与迁移任务的执行
迁移任务以Etag前缀的形式存放于桶内该节点host命名的文件中;当有新节点注册加入分布式集群时,主节点从已存在节点中取出适当的Etag前缀,放入新节点的任务文件中,并在文件中标识出任务来自哪个节点,然后将取出的Etag前缀已存在节点的任务文件中删除;
当主节点创建新节点的日志文件时,将各个从老节点拿来的Etag前缀的最新日志加入到新节点的日志文件中,新节点根据日志文件中的Etag前缀继续任务;
新节点从总已取出的对象个数最少的任务开始,若该任务某次取出的对象列表中包含有其他任务的结束标记,则启动结束标记对应的其他任务,与该任务并行迁移,以此类推,直至新节点分配到的所有任务都一起进行;
在节点执行迁移任务时,每次从原对象存储桶中取一批对象列表出来,然后查看自己的任务列表,得到自己最新的任务前缀,然后根据迁移对象筛选规则与Etag前缀,并将被筛选出的迁移对象传到新对象存储桶中;该批对象传完后,将已取出的对象列表的结束标记,总已取出的对象个数以及此次筛选的Etag前缀记录下来;
S4.节点自管理
主节点和副节点都对外提供有健康检查接口;
主节点定时检查副节点的健康状况,当发现副节点挂掉时,立即将挂掉的副节点的任务平均分配给其他存活的副节点;
副节点也定时检查主节点的健康状况...

【专利技术属性】
技术研发人员:王方王大帅李超高传集
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1