[发明专利]一种分布式副本文件仲裁方法在审
申请号: | 201710602385.2 | 申请日: | 2017-07-21 |
公开(公告)号: | CN107403003A | 公开(公告)日: | 2017-11-28 |
发明(设计)人: | 陈瑶;徐斐;李强 | 申请(专利权)人: | 南京智网云联信息科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市汉唐知识产权代理有限公司44399 | 代理人: | 周丹 |
地址: | 210032 江苏省南京市高*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 副本 文件 仲裁 方法 | ||
技术领域
本发明涉及分布式副本技术领域,尤其是涉及一种分布式副本文件仲裁方法。
背景技术
目前市面上的分布式文件系统存在如下缺陷:1、使用两个节点互备的脑裂现象,即当两个节点通信出现障碍时,数据无法同步,故障恢复后,两个节点相互指责对方数据错误,这样文件系统无法判断数据的正确性,从而导致文件系统输入/输出错误;(2)为了防止脑裂,通常会部署三个或以上节点,可以根据策略,少数服从多数,但是该方案的磁盘空间利用率较低,只有1/3或者更低,造成资源浪费。
因此,有必要提供一种新的技术方案以克服上述缺陷。
发明内容
本发明的目的在于提供一种可有效解决上述技术问题的分布式副本文件仲裁方法。
为达到本发明之目的,采用如下技术方案:
一种分布式副本文件仲裁方法,涉及若干组节点,每组节点设有三个节点,分别为A、B、C,其中第三个节点C为仲裁节点,其余两个节点A、B为普通节点,仲裁节点C上只保存文件名,分布式副本文件仲裁方法的工作方法包括以下步骤:
步骤一:对三个节点A、B、C分别进行加锁,即进行全局加锁;
步骤二:向三个节点A、B、C副本的事件日志值分别加1(初始值为0),记录到各个副本的扩展属性中;
步骤三:对节点A、B副本进行完整的写操作,在仲裁节点C中创建一个空文件;
步骤四:若节点写成功,则事件日志值减1,若节点写失败,节点的事件日志值不变,节点的事件日志值记录到各个节点的扩展属性中;
步骤五:对节点A、B、C进行解锁,即全局解锁;
步骤六:如果其中两个节点的事件日志值为1,且其中之一为仲裁节点C,假设为节点A、C,且节点B的事件日志值为0,如果仲裁节点C指出节点A的数据有错误,则写入失败,否则写入成功;如果仲裁节点C的事件日志值为0,节点A、B的事件日志值为1,则写入成功;如果仲裁节点C的事件日志值为1,且节点A、B的事件日志值为0,则写入成功。
与现有技术相比,本发明具有如下有益效果:本发明分布式副本文件仲裁方法使用三的倍数个节点,每三个节点为一组做副本备份,其中,每一组中的第三个节点为仲裁节点,该节点只存储空文件、目录层次和扩展属性,它所消耗的存储空间为4KB乘以文件个数,另两个节点保存完整数据,因此,在存储大文件时,本方案的空间利用率从1/3增加到了接近50%;同时,三个一组的副本方案又防止了脑裂现象的出现。
具体实施方式
本发明分布式副本文件仲裁方法涉及若干组节点,每组节点设有三个节点,分别为A、B、C,其中第三个节点C为仲裁节点,其余两个节点A、B为普通节点,同一文件在节点A、B上各保存一份,仲裁节点C上只保存文件名,也就是在相同路径下保存一个空文件和扩展属性。在文件系统中,记录描述副本状态的称之为事件日志,记录在每个副本文件扩展属性里,每个节点都会保存自身和其他节点的事件日志,读入内存后以矩阵形式判断是否需要修复以及要以哪个副本为源进行修复。
本发明分布式副本文件仲裁方法包括以下步骤:
步骤一:对三个节点A、B、C分别进行加锁,即进行全局加锁;
步骤二:向三个节点A、B、C副本的事件日志值分别加1(初始值为0),记录到各个副本的扩展属性中;
步骤三:对节点A、B副本进行完整的写操作,在仲裁节点C中创建一个空文件;
步骤四:若节点写成功,则事件日志值减1,若节点写失败,节点的事件日志值不变,节点的事件日志值记录到各个节点的扩展属性中;
步骤五:对节点A、B、C进行解锁,即全局解锁;
步骤六:如果其中两个节点的事件日志值为1,且其中之一为仲裁节点C,假设为节点A、C,且节点B的事件日志值为0,如果仲裁节点C指出节点A的数据有错误,则写入失败,否则写入成功;如果仲裁节点C的事件日志值为0,节点A、B的事件日志值为1,则写入成功;如果仲裁节点C的事件日志值为1,且节点A、B的事件日志值为0,则写入成功。
本发明分布式副本文件仲裁方法的文件健康检查方法如下:
1)如果是仲裁节点的事件日志出现错误,只需创建空文件和更新事件日志即可;
2)如果是两个普通节点数据不一致,则以自身事件日志为0,对端事件日志值为1的节点为源,对另一个节点进行数据同步;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京智网云联信息科技有限公司,未经南京智网云联信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710602385.2/2.html,转载请声明来源钻瓜专利网。