CN107403003A - 一种分布式副本文件仲裁方法 - Google Patents
一种分布式副本文件仲裁方法 Download PDFInfo
- Publication number
- CN107403003A CN107403003A CN201710602385.2A CN201710602385A CN107403003A CN 107403003 A CN107403003 A CN 107403003A CN 201710602385 A CN201710602385 A CN 201710602385A CN 107403003 A CN107403003 A CN 107403003A
- Authority
- CN
- China
- Prior art keywords
- node
- event log
- log value
- arbitration
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Abstract
一种分布式副本文件仲裁方法,包括以下步骤:步骤一:对三个节点A、B、C分别进行加锁;步骤二:向三个节点A、B、C副本的事件日志值分别加1记录到各个副本的扩展属性中;步骤三:对节点A、B副本进行完整的写操作,在仲裁节点C中创建一个空文件;步骤四:若节点写成功,则事件日志值减1,若节点写失败,节点的事件日志值不变;步骤五:对节点A、B、C进行解锁;步骤六:如果仲裁节点C的事件日志值为0,节点A、B的事件日志值为1,则写入成功。本发明在存储大文件时,本方案的空间利用率从1/3增加到了接近50%;同时,三个一组的副本方案又防止了脑裂现象的出现。
Description
技术领域
本发明涉及分布式副本技术领域,尤其是涉及一种分布式副本文件仲裁方法。
背景技术
目前市面上的分布式文件系统存在如下缺陷: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的节点为源,对另一个节点进行数据同步;
3)如果两个普通节点的数据不一致,节点上的事件日志都是自身为0,对端节点的事件日志为1(即相互指责对方数据错误,两个节点出现脑裂现象),则需借助仲裁节点,根据仲裁节点上的事件日志值,判断哪个为源,即为0的节点作为源,为1的节点作为恢复目标。
本发明的创新点为:
1、通过2个普通节点与1个仲裁节点的方案防止分布式冗余文件系统的脑裂。
2、3个节点中,只有2个节点存储完整数据,另1个节点存储空文件、目录层次和扩展属性,节省了空间。
与现有技术相比,本发明有何优点:
1、使用本文件系统,可以有效的防止脑裂的发生;
2、本文件系统的仲裁节点使用极小的存储空间,大大的提高了空间利用率;
3、仲裁节点可以使用配置相对较低的硬件,节约了硬件成本;
4、每三个节点一组的方案也提供了安全可靠的扩展性。
Claims (1)
1.一种分布式副本文件仲裁方法,涉及若干组节点,每组节点设有三个节点,分别为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,则写入成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710602385.2A CN107403003A (zh) | 2017-07-21 | 2017-07-21 | 一种分布式副本文件仲裁方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710602385.2A CN107403003A (zh) | 2017-07-21 | 2017-07-21 | 一种分布式副本文件仲裁方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107403003A true CN107403003A (zh) | 2017-11-28 |
Family
ID=60402269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710602385.2A Pending CN107403003A (zh) | 2017-07-21 | 2017-07-21 | 一种分布式副本文件仲裁方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107403003A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992219A (zh) * | 2019-04-11 | 2019-07-09 | 深信服科技股份有限公司 | 分布式存储方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131468A1 (en) * | 2008-11-25 | 2010-05-27 | International Business Machines Corporation | Arbitration Token for Managing Data Integrity and Data Accuracy of Information Services that Utilize Distributed Data Replicas |
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN104702693A (zh) * | 2015-03-19 | 2015-06-10 | 华为技术有限公司 | 两节点系统分区的处理方法和节点 |
CN104766025A (zh) * | 2015-03-23 | 2015-07-08 | 中国人民解放军信息工程大学 | 分布式文件系统的拟态防篡改方法 |
CN105577776A (zh) * | 2015-12-17 | 2016-05-11 | 上海爱数信息技术股份有限公司 | 基于数据仲裁者副本的分布式存储系统及方法 |
CN105740295A (zh) * | 2014-12-12 | 2016-07-06 | 中国移动通信集团公司 | 一种分布式数据的处理方法及装置 |
-
2017
- 2017-07-21 CN CN201710602385.2A patent/CN107403003A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131468A1 (en) * | 2008-11-25 | 2010-05-27 | International Business Machines Corporation | Arbitration Token for Managing Data Integrity and Data Accuracy of Information Services that Utilize Distributed Data Replicas |
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN105740295A (zh) * | 2014-12-12 | 2016-07-06 | 中国移动通信集团公司 | 一种分布式数据的处理方法及装置 |
CN104702693A (zh) * | 2015-03-19 | 2015-06-10 | 华为技术有限公司 | 两节点系统分区的处理方法和节点 |
CN104766025A (zh) * | 2015-03-23 | 2015-07-08 | 中国人民解放军信息工程大学 | 分布式文件系统的拟态防篡改方法 |
CN105577776A (zh) * | 2015-12-17 | 2016-05-11 | 上海爱数信息技术股份有限公司 | 基于数据仲裁者副本的分布式存储系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992219A (zh) * | 2019-04-11 | 2019-07-09 | 深信服科技股份有限公司 | 分布式存储方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018098972A1 (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
CN101577735B (zh) | 一种接管故障元数据服务器的方法、装置及系统 | |
CN106933843B (zh) | 数据库心跳检测方法以及装置 | |
US10423501B2 (en) | Metadata recovery method and apparatus | |
CN105426427A (zh) | 基于raid 0 存储的mpp 数据库集群副本实现方法 | |
CN104679772A (zh) | 分布式数据仓库中删除文件的方法、装置、设备及系统 | |
CN101414946B (zh) | 一种远程数据备份方法及介质服务器 | |
CN104424162A (zh) | 一种生成最近使用的文档记录的方法及装置 | |
CN106227731A (zh) | 一种数据处理方法、装置及分布式文件系统 | |
CN102402562A (zh) | 数据库异地容灾方法及系统 | |
CN108572793A (zh) | 数据写入和数据恢复方法、装置、电子设备及存储介质 | |
CN109298976B (zh) | 一种异构数据库集群备份系统及方法 | |
CN107229540A (zh) | 一种基于时间点的数据库恢复方法及系统 | |
CN102968361A (zh) | 一种raid数据自修复的方法 | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
CN106201340A (zh) | 一种存储数据的方法、存储设备、电子设备 | |
CN107403003A (zh) | 一种分布式副本文件仲裁方法 | |
CN106874141A (zh) | 一种数据存储负载的容错方法及iptv系统 | |
CN108920301A (zh) | 数据备份方法以及系统、数据恢复方法以及系统 | |
CN112052121A (zh) | 一种硬盘数据的恢复方法及系统 | |
US20150370648A1 (en) | Redundant system and redundancy method | |
CN105930357A (zh) | 分布式文件系统及数据节点数据存储处理的方法、装置 | |
CN104376088A (zh) | 一种云数据库的分布式同步方法及数据库系统 | |
CN107515801A (zh) | 一种基于关系型数据库的数据自动修复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171128 |
|
RJ01 | Rejection of invention patent application after publication |