CN104052611B - 一种云存储***数据可用性维护方法及其装置 - Google Patents
一种云存储***数据可用性维护方法及其装置 Download PDFInfo
- Publication number
- CN104052611B CN104052611B CN201310078118.1A CN201310078118A CN104052611B CN 104052611 B CN104052611 B CN 104052611B CN 201310078118 A CN201310078118 A CN 201310078118A CN 104052611 B CN104052611 B CN 104052611B
- Authority
- CN
- China
- Prior art keywords
- lease
- node
- correcting
- burst
- eleting codes
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种云存储***数据可用性维护方法及其装置,属于云存储技术领域,解决现有数据可用性维护方法存在的元数据服务器或超级节点的单点故障导致数据可用性维护中断的问题。本发明的方法,用于具有中心存储服务器、元数据服务器和P2P网络的***中,包括编码步骤、订立租约步骤、执行租约步骤和租约维护步骤。本发明的装置,包括编码模块、订立租约模块、执行租约模块和租约维护模块。本发明充分利用P2P对等节点的计算、存储、网络资源,高效地将数据块的可用性维护在稳定的目标值以上,避免因P2P网络中高流动性导致数据块可用性降低甚至不可用,降低因数据可用性维护带来的网络、存储、计算开销,从而使混合结构的云存储***真正具有高性能、高可用性。
Description
技术领域
本发明属于云存储技术领域,具体涉及一种云存储***数据可用性维护方法及其装置。
背景技术
当今每天都会产生和累积大量重要数据,快速、可靠地存储这些数据非常重要。大多数传统的存储解决方案采用数据中心提供存储服务,往往数据存储速度慢且花费代价高。因此,采用P2P网络与中心存储服务器相结合的***能带来更快的存储速度和更低廉的花费,但是,这种存储***的缺陷是数据分布在中心存储服务器和P2P网络中,数据的可用性很难稳定维持在一个目标可用性水平,且用于维护数据可用性的开销太大。为了屏蔽***中中心存储服务器宕机、数据块损坏、P2P网络中对等节点的暂时或永久失效,让***能够保障数据的可用性稳定维持在一个目标值,通常采取数据冗余。
数据冗余主要包含两类方式:副本冗余和纠删码冗余。其中,纠删码冗余的过程是:采用参数是(m,n)的纠删码将原始数据块分成m个分片,然后将m个分片编码成n(n>m)个分片,并保障其中任意m个分片都可以重构数据块,见H.Weatherspoon andJ.Kubiatowicz,“Erasure coding vs.replication:A quantitative comparison.”,IPTPS,2002年3月4日。由于P2P网络中对等节点频繁的流入流出,具有高动态性,采用副本冗余将消耗大量的网络带宽用于修复丢失的副本数据块;而采用纠删码冗余将消耗大量的计算资源用于编码解码以进行纠删码分片修复。尽管有些新的算法如rotated Reed-Solomon编码能够高效地进行纠删码分片修复,但是其实现复杂,将导致***复杂度增高。
而采用副本结合纠删码的方式,能更好地进行数据容错和纠删码分片修复,从而更高效地维护数据可用性,大多数现有的存储***数据可用性维护方法,采用元数据服务器主动轮询的策略,每隔一段时间元数据服务器向所有P2P对等节点发送心跳包,以确定对等节点的在线状态以及对等节点维护的纠删码分片的状态,对于纠删码分片损坏或者对等节点下线的情况,元数据服务器更新元数据信息,并根据再复制策略执行再复制操作,但是轮询的时间间隔不易选择,如果间隔时间过长,则容易造成大量数据块不可用;如果间隔时间过短,则造成大量不必要的网络开销,严重影响效率。由于是元数据服务器主动轮询,轮询的过程中若发生纠删码分片丢失超过阈值导致数据块急需修复,元数据服务器不能及时探知,从而错过最佳修复时机导致不可用。元数据服务器的单点故障将导致数据可用性维护中断,且很难恢复到最新的状态,因此元数据服务器成为可用性维护的瓶颈。
现有混合结构的云存储***中,例如wuala网站(http://www.wuala.com/en/),为了便于对高动态的对等节点进行管理,将对等节点分成若干组,每组由发起备份节点作为超级节点,由超级节点完成元数据服务器的部分轮询职能,超级节点容易成为新的热点,超级节点的宕机将导致组内的服务中断,极大地影响了数据的可用性维护。
为清楚地理解本发明,以下对有关术语进行解释:
纠删码:一种纠正删除错误的纠错码。采用纠删码将原始数据块编码分成n片,n个纠删码分片中只需要通过k(k<n)个分片即可重构得到原始数据块。
数据可用性:在一段时间内的任意一个时刻,数据可以被正常访问存取的概率。
租约:颁发者在一定期限内给予持有者一定权利的协议。在此***中,指元数据服务器与租约节点之间签订的协议,将数据可用性管理的权利颁发给租约节点。一个数据块对应一个租约,一个租约对应一个租约节点。租约中包含超时时间,租约只在超时时间段内有效,超过此时间,则需重新订立租约。元素据服务器中存有租约列表,列表中包含所有与元数据服务器签订的所有租约。
阈值:为了保证数据在P2P网络中的可靠性,网络中幸存的纠删码分片的个数下限值。
WsaRecv库函数:一种异步接收数据的库函数,本发明运行在LINUX或WINDOWS环境下,两者均存在WsaRecv库函数。
惰性再复制:在P2P网络中,纠删码分片数目减少但不低于阈值时,不进行复制操作;仅当纠删码分片数目减少到阈值以下时再进行复制操作。
发明内容
本发明提供一种云存储***数据可用性维护方法,同时提供其装置,解决现有数据可用性维护方法所存在的元数据服务器或超级节点的单点故障导致数据可用性维护中断的问题。
本发明所提供的一种云存储***数据可用性维护方法,用于具有中心存储服务器、元数据服务器和P2P网络的***中,包括编码步骤、订立租约步骤、执行租约步骤和租约维护步骤,其特征在于:
(1)编码步骤,包括下述子步骤:
(1.1)P2P网络中发起备份的对等节点,将待存储数据块分为b个分片,再将b个分片编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,1≤b<n;每个纠删码分片元数据包括纠删码分片所属数据块ID、纠删码分片ID以及从P2P网络中随机选择的1个对等节点的ID和通讯地址;
(1.2)发起备份的对等节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送到P2P网络中n个其他对等节点上,接收到纠删码分片的n个对等节点先将接收到的纠删码分片及对应的纠删码分片元数据进行本地存储,再向元数据服务器发送各自的纠删码分片元数据;
(2)订立租约步骤,包括下述子步骤:
(2.1)元数据服务器收集到n个纠删码分片元数据后,生成一个租约存储在本地内存的租约列表中;租约的表项包括租约ID、租约超时时间、租约状态、阈值、n个纠删码分片在P2P网络中和对等节点的映射关系;租约状态分为未决、正常、异常、失效;n个纠删码分片在P2P网络中和对等节点的映射关系由纠删码分片ID列表、持有纠删码分片对等节点ID列表和相应对等节点地址列表构成;
元数据服务器再设定租约超时时间,并根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值T,将所述租约超时时间、阈值T、n个纠删码分片在P2P网络中和对等节点的映射关系填入租约中,租约状态置为未决;
(2.2)元数据服务器从成员组中选择一个对等节点作为租约节点,向其发送租约,并判断是否收到租约节点返回收到消息,是则进行子步骤(2.3),否则继续执行子步骤(2.2);
所述成员组由发起备份的对等节点和拥有纠删码分片的各对等节点构成;
(2.3)元数据服务器将租约中租约状态置为正常,向租约节点发送发送数据块到中心存储服务器的命令,租约节点收到命令后将数据块发送到中心存储服务器;租约节点和元数据服务器同时分别执行步骤(3)和步骤(4);
(3)执行租约步骤,包括下述子步骤:
(3.1)租约节点将租约中租约状态置为正常,并实时监视成员组中其他对等节点是否下线,是则将下线对等节点ID置为丢失标识,表明其对应纠删码分片丢失,再进行子步骤(3.2);否则继续进行子步骤(3.1);
(3.2)判断成员组中对等节点的数量是否低于阈值T,是则将租约中租约状态更改为异常,进行子步骤(3.3),否则转子步骤(3.1);
(3.3)判断租约节点是否为发起备份的对等节点,是则转子步骤(3.4),否则转子步骤(3.5);
(3.4)租约节点将待存储数据块编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子步骤(3.8);
(3.5)租约节点判断中心存储服务器是否繁忙,是则转子步骤(3.6),否则转子步骤(3.7),
(3.6)租约节点先从成员组内其他各对等节点处获取所有纠删码分片,重构原始数据块,再将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子步骤(3.8);
(3.7)租约节点向中心存储服务器请求数据块,得到数据块后,将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子步骤(3.8);
(3.8)租约节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送给P2P网络中其他对等节点,同时更新租约中纠删码分片在P2P网络中和对等节点的映射关系,并将其发送给元数据服务器,转子步骤(3.1);
(4)租约维护步骤,包括下述子步骤:
(4.1)元数据服务器将租约状态置为正常,对所发出的租约进行计时,判断是否在租约超时时间内,是则进行子步骤(4.2),否则向租约节点发送撤销租约命令,租约节点收到命令后,将租约状态置为失效,不再对成员组内成员进行管理,转子步骤(2.2);
(4.2)元数据服务器接收来自中心存储服务器的数据块副本数目变化消息,并根据其采取相应措施:若数据块副本数目增多,则转子步骤(4.3);若数据块副本数目减少,则判断中心存储服务器中是否有幸存数据块副本,是则中心存储服务器进行本地复制,否则判断中心存储服务器是否繁忙,是则转子步骤(4.3),否则转子步骤(4.4);
(4.3)元数据服务器根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值,并将阈值发送给租约节点,租约节点收到阈值后,将其置换租约中的原有阈值T,转步骤(3);
(4.4)元数据服务器向租约节点发送命令,要求租约节点发送数据块到中心存储服务器,租约节点收到命令后将数据块发送到中心存储服务器;
(4.5)元数据服务器实时定期判断是否接收到租约节点消息,是则根据租约节点发送过来的纠删码分片在P2P网络中和对等节点的映射关系,更新租约中的相应内容;否则转子步骤(2.2)。
所述的云存储***数据可用性维护方法,其特征在于:
所述子步骤(2.1)和子步骤(4.3)中,计算所述阈值包括下述过程:
A、计算数据块在中心存储服务器中的可用性As:As=1-(1-us)m,式中,uS为中心存储服务器中服务器的平均可用性,各服务器的可用性由厂商提供;m为数据块在中心存储服务器中的副本数;
B、计算数据块在P2P网络中的可用性Ap:其中0.9≤A<1,为数据块在云存储***中欲达到的整体目标可用性,由***设计给出;
C、计算阈值T=c×b,其中,b是数据块的分片数,c为数据块在P2P网络中的冗余度:
式中,系数k在正态分布表中,令根据的值查出,正态分布表中,概率表示服从正态分布的变量取小于或等于k值的概率;uP为P2P网络中对等节点平均可用性,由各对等点的可用性求均值得到,各对等点的可用性为对等节点每天在线时间比率。
所述的云存储***数据可用性维护方法,其特征在于:
所述订立租约步骤(2)的子步骤(2.2)中,元数据服务器从成员组中选择一个对等节点作为租约节点时,优先选择发起备份的对等节点,只有在其下线或者该对等节点中原始数据丢失的情况下,才选择成员组中其他对等节点作为租约节点。
所述的云存储***数据可用性维护方法,其特征在于:
所述子步骤(2.3)和子步骤(4.4)中,租约节点将数据块发送给中心存储服务器时,先判断是否租约节点为发起备份的对等节点,是则租约节点直接将本地数据块发送给中心存储服务器,否则租约节点先从成员组内其他对等节点处获取纠删码分片,重构原始数据块,再进行发送。
冗余度c的计算公式以及Ap与k值关系的推导过程可见R.Bhagwan、S.Savage andG. M.Voelker,“Replication strategies for highly available peer-to-peersystems”,Technical Report,Nov 2002。
本发明所提供的一种云存储***数据可用性维护装置,用于具有中心存储服务器、元数据服务器和P2P网络的***中,包括编码模块、订立租约模块、执行租约模块和租约维护模块,其特征在于:
(1)编码模块,包括下述子模块:
(1.1)P2P网络中发起备份的对等节点,将待存储数据块分为b个分片,再将b个分片编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,1≤b<n;每个纠删码分片元数据包括纠删码分片所属数据块ID、纠删码分片ID以及从P2P网络中随机选择的1个对等节点的ID和通讯地址;
(1.2)发起备份的对等节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送到P2P网络中n个其他对等节点上,接收到纠删码分片的n个对等节点先将接收到的纠删码分片及对应的纠删码分片元数据进行本地存储,再向元数据服务器发送各自的纠删码分片元数据;
(2)订立租约模块,包括下述子模块:
(2.1)元数据服务器收集到n个纠删码分片元数据后,生成一个租约存储在本地内存的租约列表中;租约的表项包括租约ID、租约超时时间、租约状态、阈值、n个纠删码分片在P2P网络中和对等节点的映射关系;租约状态分为未决、正常、异常、失效;n个纠删码分片在P2P网络中和对等节点的映射关系由纠删码分片ID列表、持有纠删码分片对等节点ID列表和相应对等节点地址列表构成;
元数据服务器再设定租约超时时间,并根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值T,将所述租约超时时间、阈值T、n个纠删码分片在P2P网络中和对等节点的映射关系填入租约中,租约状态置为未决;
(2.2)元数据服务器从成员组中选择一个对等节点作为租约节点,向其发送租约,并判断是否收到租约节点返回收到消息,是则进行子模块(2.3),否则继续执行子模块(2.2);
所述成员组由发起备份的对等节点和拥有纠删码分片的各对等节点构成;
(2.3)元数据服务器将租约中租约状态置为正常,向租约节点发送发送数据块到中心存储服务器的命令,租约节点收到命令后将数据块发送到中心存储服务器;租约节点和元数据服务器同时分别执行模块(3)和模块(4);
(3)执行租约模块,包括下述子模块:
(3.1)租约节点将租约中租约状态置为正常,并实时监视成员组中其他对等节点是否下线,是则将下线对等节点ID置为丢失标识,表明其对应纠删码分片丢失,再进行子模块(3.2);否则继续进行子模块(3.1);
(3.2)判断成员组中对等节点的数量是否低于阈值T,是则将租约中租约状态更改为异常,进行子模块(3.3),否则转子模块(3.1);
(3.3)判断租约节点是否为发起备份的对等节点,是则转子模块(3.4),否则转子模块(3.5);
(3.4)租约节点将待存储数据块编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子模块(3.8);
(3.5)租约节点判断中心存储服务器是否繁忙,是则转子模块(3.6),否则转子模块(3.7),
(3.6)租约节点先从成员组内其他各对等节点处获取所有纠删码分片,重构原始数据块,再将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子模块(3.8);
(3.7)租约节点向中心存储服务器请求数据块,得到数据块后,将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子模块(3.8);
(3.8)租约节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送给P2P网络中其他对等节点,同时更新租约中纠删码分片在P2P网络中和对等节点的映射关系,并将其发送给元数据服务器,转子模块(3.1);
(4)租约维护模块,包括下述子模块:
(4.1)元数据服务器将租约状态置为正常,对所发出的租约进行计时,判断是否在租约超时时间内,是则进行子模块(4.2),否则向租约节点发送撤销租约命令,租约节点收到命令后,将租约状态置为失效,不再对成员组内成员进行管理,转子模块(2.2);
(4.2)元数据服务器接收来自中心存储服务器的数据块副本数目变化消息,并根据其采取相应措施:若数据块副本数目增多,则转子模块(4.3);若数据块副本数目减少,则判断中心存储服务器中是否有幸存数据块副本,是则中心存储服务器进行本地复制,否则判断中心存储服务器是否繁忙,是则转子模块(4.3),否则转子模块(4.4);
(4.3)元数据服务器根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值,并将阈值发送给租约节点,租约节点收到阈值后,将其置换租约中的原有阈值T,转模块(3);
(4.4)元数据服务器向租约节点发送命令,要求租约节点发送数据块到中心存储服务器,租约节点收到命令后将数据块发送到中心存储服务器;
(4.5)元数据服务器实时定期判断是否接收到租约节点消息,是则根据租约节点发送过来的纠删码分片在P2P网络中和对等节点的映射关系,更新租约中的相应内容;否则转子模块(2.2)。
所述的云存储***数据可用性维护装置,其特征在于:
所述子模块(2.1)和子模块(4.3)中,计算所述阈值包括下述子模块:
A、计算数据块在中心存储服务器中的可用性As:As=1-(1-us)m,式中,uS为中心存储服务器中服务器的平均可用性,各服务器的可用性由厂商提供;m为数据块在中心存储服务器中的副本数;
B、计算数据块在P2P网络中的可用性Ap:其中0.9≤A<1,为数据块在云存储***中欲达到的整体目标可用性,由***设计给出;
C、计算阈值T=c×b,其中,b是数据块的分片数,c为数据块在P2P网络中的冗余度:
式中,系数k在正态分布表中,令根据的值查出,正态分布表中,概率表示服从正态分布的变量取小于或等于k值的概率;uP为P2P网络中对等节点平均可用性,由各对等点的可用性求均值得到,各对等点的可用性为对等节点每天在线时间比率。
所述的云存储***数据可用性维护装置,其特征在于:
所述订立租约模块(2)的子模块(2.2)中,元数据服务器从成员组中选择一个对等节点作为租约节点时,优先选择发起备份的对等节点,只有在其下线或者该对等节点中原始数据丢失的情况下,才选择成员组中其他对等节点作为租约节点。
所述的云存储***数据可用性维护装置,其特征在于:
所述子模块(2.3)和子模块(4.4)中,租约节点将数据块发送给中心存储服务器时,先判断是否租约节点为发起备份的对等节点,是则租约节点直接将本地数据块发送给中心存储服务器,否则租约节点先从成员组内其他对等节点处获取纠删码分片,重构原始数据块,再进行发送。
本发明提出在混合结构的云存储***中,中心存储服务器负责存储所有数据块,且以多副本形式进行一部分冗余存储,另一部分冗余数据由P2P网络中的对等节点以纠删码形式进行分布式存储,副本对存储空间消耗大,但是实现、维护工作简单;而纠删码对存储空间消耗小,实现、维护工作复杂,针对P2P网络中对等节点流动频繁的特点,必须以较小的冗余度满足尽可能大的可用性需求,因此在P2P网络中采用纠删码技术进行冗余存储。元数据服务器在P2P网络中动态选择对等节点担任租约节点,实现租约节点的动态切换,元数据服务器通过租约机制将数据可用性维护工作分配给租约节点,元数据服务器根据中心存储服务器和租约节点的消息,通过惰性再复制和动态计算阈值执行数据的再复制操作,使数据块的可用性维持在一个相对稳定的状态,从而避免了传统方法对P2P网络中对等节点的轮询导致的巨大网络通信开销以及轮询时间间隔过长导致数据不可修复情形,同时解决超级节点宕机导致的服务中断问题。
本发明提出了租约的概念,租约是用于描述数据块在P2P网络中以纠删码形式存储的状态的数据结构,元数据服务器负责租约的订立、撤销、状态更新、重新订立等维护工作,P2P网络中所有存储某数据块纠删码分片的对等节点以及发起备份的对等节点组成一个成员组,元数据服务器从成员组中选择一个对等节点作为租约节点,对其发送命令执行订立租约操作,持有租约的租约节点负责对成员组内对等节点的上下线状态进行实时监视,成员组内对等节点上下线将触发租约节点更新租约状态,并根据阈值和惰性再复制,决定是否需要通知元数据服务器,元数据服务器只需要对租约节点进行实时监视,并在收到租约节点的消息后执行再复制操作以及更新、维护租约状态。
本发明中,采用惰性再复制和动态阈值计算,实时再复制将极大地消耗网络带宽,对于流动频繁的P2P网络,对等节点的频繁上下线将导致元数据服务器频繁地执行数据的再复制操作,采用惰性再复制能极大地减少不必要的网络带宽消耗。根据存储数据的可用性的目标,通过混合结构的云存储***中数据块可用性计算,可以计算得到P2P网络中纠删码分片至少需要多少分片幸存以保障数据块在***中的可用性稳定在目标可用性以上,于是将此分片数定义为阈值,阈值量化了数据块可用性状态,是惰性再复制的基础,惰性再复制极大地降低了中心存储服务器的网络通信开销、计算开销、存储开销,充分的利用了P2P网络的存储、网络、计算资源;由于再复制策略考虑到中心存储的负载,因此,再复制操作可能导致中心存储的数据副本数以及P2P网络中纠删码分片数的增减,通过动态阈值计算,可以根据当前数据分布状态对阈值进行重新计算并相应地更新租约状态。
综上所述,本发明中,元数据服务器使用租约机制将可用性维护开销分担到租约节点上,通过被动接收租约节点的报告,执行再复制操作,修复丢失的数据,能够充分利用P2P对等节点的计算、存储、网络资源,高效地将数据块的可用性维护在一个稳定的目标值以上,避免因P2P网络中高流动性导致数据块可用性降低甚至不可用,降低因数据可用性维护带来的网络、存储、计算开销,从而使混合结构的云存储***真正具有高性能、高可用性。
附图说明
图1为本发明的方法流程示意图;
图2为执行租约步骤流程示意图;
图3为租约维护步骤流程示意图;
图4为计算阈值流程示意图。
具体实施方式
以下结合实施例和附图对本发明进一步说明。
如图1所示,本发明用于具有中心存储服务器、元数据服务器和P2P网络的***中,包括编码步骤、订立租约步骤、执行租约步骤和租约维护步骤。
本发明的实施例,用于具有中心存储服务器、元数据服务器和P2P网络的***中,中心存储服务器中有100台服务器,P2P网络中有1000个初始对等节点,***要求达到的可用性A=0.999,包括下述步骤:
(1)编码步骤,包括下述子步骤:
(1.1)P2P网络中发起备份的对等节点,将待存储数据块分为100个分片,再将100个分片编码成300个纠删码分片,同时生成对应的300个纠删码分片元数据;每个纠删码分片元数据包括纠删码分片所属数据块ID=1、纠删码分片ID(1≤ID≤300)以及从P2P网络中随机选择的1个对等节点的ID(1≤ID≤1000)和通讯地址;
(1.2)发起备份的对等节点将300个纠删码分片连同对应的300个纠删码分片元数据分别发送到P2P网络中300个其他对等节点上,接收到纠删码分片的300个对等节点先将接收到的纠删码分片及对应的纠删码分片元数据进行本地存储,再向元数据服务器发送各自的纠删码分片元数据;
(2)订立租约步骤,包括下述子步骤:
(2.1)元数据服务器收集到300个纠删码分片元数据后,生成一个租约存储在本地内存的租约列表中;将租约中租约ID设置为1、租约超时时间设置为300s、租约状态设置为未决,将阈值字段设置为249,并将300个纠删码分片在P2P网络中和对等节点的映射关系填入租约中;300个纠删码分片在P2P网络中和对等节点的映射关系由纠删码分片ID(1≤ID≤300)列表、持有纠删码分片对等节点ID(1≤ID≤1000)列表和相应对等节点地址列表构成;此时计算阈值过程如下:中心存储服务器中数据块副本数目m=0,中心存储服务器的平均可用性经查询每台服务器宕机概率后取平均值得到us=0.9,由公式As=1-(1-us)m计算得到为0,再由公式计算得到Ap=0.999,通过查询正态分布表,得到k=3.30,P2P网络中对等节点平均可用性经过对各对等节点在线时间进行统计得到up=0.5,代入下式:
得到c=2.49,因此阈值T=249;
(2.2)元数据服务器从成员组中选择一个对等节点作为租约节点,向其发送租约,并判断是否收到租约节点返回收到消息,是则进行子步骤(2.3),否则继续执行子步骤(2.2);
所述成员组由发起备份的对等节点和拥有纠删码分片的各对等节点构成;
(2.3)元数据服务器将租约中租约状态置为正常,向租约节点发送发送数据块到中心存储服务器的命令,租约节点收到命令后将数据块发送到中心存储服务器;租约节点和元数据服务器同时分别执行步骤(3)和步骤(4);
(3)执行租约步骤,如图2所示,包括下述子步骤:
(3.1)租约节点将租约中租约状态置为正常,并实时监视成员组中其他对等节点是否下线,是则将下线对等节点ID置为0,表明其对应纠删码分片丢失,再进行子步骤(3.2);否则继续进行子步骤(3.1);
(3.2)判断成员组中对等节点的数量是否低于阈值T=249,是则将租约中租约状态更改为异常,进行子步骤(3.3),否则转子步骤(3.1);
(3.3)判断租约节点是否为发起备份的对等节点,是则转子步骤(3.4),否则转子步骤(3.5);
(3.4)租约节点将待存储数据块编码成300个纠删码分片,同时生成对应的300个纠删码分片元数据,转子步骤(3.8);
(3.5)租约节点判断中心存储服务器是否繁忙,是则转子步骤(3.6),否则转子步骤(3.7),
(3.6)租约节点先从成员组内其他各对等节点处获取所有纠删码分片,重构原始数据块,再将其编码成300个纠删码分片,同时生成对应的300个纠删码分片元数据,转子步骤(3.8);
(3.7)租约节点向中心存储服务器请求数据块,得到数据块后,将其编码成300个纠删码分片,同时生成对应的300个纠删码分片元数据,转子步骤(3.8);
(3.8)租约节点将300个纠删码分片连同对应的300个纠删码分片元数据分别发送给P2P网络中其他对等节点,同时更新租约中纠删码分片在P2P网络中和对等节点的映射关系,并将其发送给元数据服务器,转子步骤(3.1);
(4)租约维护步骤,如图3所示,包括下述子步骤:
(4.1)元数据服务器将租约状态置为正常,对所发出的租约进行计时,判断是否在租约超时时间(300s)内,是则进行子步骤(4.2),否则向租约节点发送撤销租约命令,租约节点收到命令后,将租约状态置为失效,不再对成员组内成员进行管理,转子步骤(2.2);
(4.2)元数据服务器接收来自中心存储服务器的数据块副本数目变化消息,并根据其采取相应措施:若数据块副本数目增多,则转子步骤(4.3);若数据块副本数目减少,则判断中心存储服务器中是否有幸存数据块副本,是则中心存储服务器进行本地复制,否则判断中心存储服务器是否繁忙,是则转子步骤(4.3),否则转子步骤(4.4);
(4.3)元数据服务器根据数据块在中心存储服务器和P2P网络中的分布情况(若此时中心存储服务器中存在数据块的2个副本)计算阈值T=219,并将阈值发送给租约节点,租约节点收到阈值后,将其置换租约中的原有阈值T,转步骤(3);此时阈值的计算过程如下:中心存储服务器中数据块副本数目m=2,中心存储服务器的平均可用性经查询每台服务器宕机概率后取平均值得到us=0.9,由公式As=1-(1-us)m计算得到为0.99,再由公式计算得到Ap=0.900,通过查询正态分布表,得到k=1.65,P2P网络中对等节点平均可用性经过对各对等节点在线时间进行统计得到up=0.5,代入下式
得到c=2.19,因此阈值T=219;
(4.4)元数据服务器向租约节点发送命令,要求租约节点发送数据块到中心存储服务器,租约节点收到命令后将数据块发送到中心存储服务器;
(4.5)元数据服务器实时定期判断是否接收到租约节点消息,是则根据租约节点发送过来的纠删码分片在P2P网络中和对等节点的映射关系,更新租约中的相应内容;否则转子步骤(2.2)。
如图4所示,所述子步骤(2.1)和子步骤(4.3)中,计算所述阈值包括下述过程:
A、计算数据块在中心存储服务器中的可用性As:As=1-(1-us)m,式中,uS为中心存储服务器中服务器的平均可用性,各服务器的可用性由厂商提供;m为数据块在中心存储服务器中的副本数;
B、计算数据块在P2P网络中的可用性Ap:其中0.9≤A<1,为数据块在云存储***中欲达到的整体目标可用性,由***设计给出;
C、计算阈值T=c×b,其中,b是数据块的分片数,c为数据块在P2P网络中的冗余度:
式中,系数k在正态分布表中,令根据的值查出,正态分布表中,概率表示服从正态分布的变量取小于或等于k值的概率;uP为P2P网络中对等节点平均可用性,由各对等点的可用性求均值得到,各对等点的可用性为对等节点每天在线时间比率。
Claims (8)
1.一种云存储***数据可用性维护方法,用于具有中心存储服务器、元数据服务器和P2P网络的***中,包括编码步骤、订立租约步骤、执行租约步骤和租约维护步骤,其特征在于:
(1)编码步骤,包括下述子步骤:
(1.1)P2P网络中发起备份的对等节点,将待存储数据块分为b个分片,再将b个分片编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,1≤b<n;每个纠删码分片元数据包括纠删码分片所属数据块ID、纠删码分片ID以及从P2P网络中随机选择的1个对等节点的ID和通讯地址;
(1.2)发起备份的对等节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送到P2P网络中n个其他对等节点上,接收到纠删码分片的n个对等节点先将接收到的纠删码分片及对应的纠删码分片元数据进行本地存储,再向元数据服务器发送各自的纠删码分片元数据;
(2)订立租约步骤,包括下述子步骤:
(2.1)元数据服务器收集到n个纠删码分片元数据后,生成一个租约存储在本地内存的租约列表中;租约的表项包括租约ID、租约超时时间、租约状态、阈值、n个纠删码分片在P2P网络中和对等节点的映射关系;租约状态分为未决、正常、异常、失效;n个纠删码分片在P2P网络中和对等节点的映射关系由纠删码分片ID列表、持有纠删码分片对等节点ID列表和相应对等节点地址列表构成;
元数据服务器再设定租约超时时间,并根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值T,将所述租约超时时间、阈值T、n个纠删码分片在P2P网络中和对等节点的映射关系填入租约中,租约状态置为未决;
(2.2)元数据服务器从成员组中选择一个对等节点作为租约节点,向其发送租约,并判断是否收到租约节点返回收到消息,是则进行子步骤(2.3),否则继续执行子步骤(2.2);
所述成员组由发起备份的对等节点和拥有纠删码分片的各对等节点构成;
(2.3)元数据服务器将租约中租约状态置为正常,向租约节点发送发送数据块到中心存储服务器的命令,租约节点收到命令后将数据块发送到中心存储服务器;租约节点和元数据服务器同时分别执行步骤(3)和步骤(4);
(3)执行租约步骤,包括下述子步骤:
(3.1)租约节点将租约中租约状态置为正常,并实时监视成员组中其他对等节点是否下线,是则将下线对等节点ID置为丢失标识,表明其对应纠删码分片丢失,再进行子步骤(3.2);否则继续进行子步骤(3.1);
(3.2)判断成员组中对等节点的数量是否低于阈值T,是则将租约中租约状态更改为异常,进行子步骤(3.3),否则转子步骤(3.1);
(3.3)判断租约节点是否为发起备份的对等节点,是则转子步骤(3.4),否则转子步骤(3.5);
(3.4)租约节点将待存储数据块编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子步骤(3.8);
(3.5)租约节点判断中心存储服务器是否繁忙,是则转子步骤(3.6),否则转子步骤(3.7),
(3.6)租约节点先从成员组内其他各对等节点处获取所有纠删码分片,重构原始数据块,再将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子步骤(3.8);
(3.7)租约节点向中心存储服务器请求数据块,得到数据块后,将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子步骤(3.8);
(3.8)租约节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送给P2P网络中其他对等节点,同时更新租约中纠删码分片在P2P网络中和对等节点的映射关系,并将其发送给元数据服务器,转子步骤(3.1);
(4)租约维护步骤,包括下述子步骤:
(4.1)元数据服务器将租约状态置为正常,对所发出的租约进行计时,判断是否在租约超时时间内,是则进行子步骤(4.2),否则向租约节点发送撤销租约命令,租约节点收到命令后,将租约状态置为失效,不再对成员组内成员进行管理,转子步骤(2.2);
(4.2)元数据服务器接收来自中心存储服务器的数据块副本数目变化消息,并根据其采取相应措施:若数据块副本数目增多,则转子步骤(4.3);若数据块副本数目减少,则判断中心存储服务器中是否有幸存数据块副本,是则中心存储服务器进行本地复制,否则判断中心存储服务器是否繁忙,是则转子步骤(4.3),否则转子步骤(4.4);
(4.3)元数据服务器根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值,并将阈值发送给租约节点,租约节点收到阈值后,将其置换租约中的原有阈值T,转步骤(3);
(4.4)元数据服务器向租约节点发送命令,要求租约节点发送数据块到中心存储服务器,租约节点收到命令后将数据块发送到中心存储服务器;
(4.5)元数据服务器实时定期判断是否接收到租约节点消息,是则根据租约节点发送过来的纠删码分片在P2P网络中和对等节点的映射关系,更新租约中的相应内容;否则转子步骤(2.2)。
2.如权利要求1所述的云存储***数据可用性维护方法,其特征在于:
所述子步骤(2.1)和子步骤(4.3)中,计算所述阈值包括下述过程:
A、计算数据块在中心存储服务器中的可用性As:As=1-(1-us)m,式中,uS为中心存储服务器中服务器的平均可用性,各服务器的可用性由厂商提供;m为数据块在中心存储服务器中的副本数;
B、计算数据块在P2P网络中的可用性Ap:其中0.9≤A<1,为数据块在云存储***中欲达到的整体目标可用性,由***设计给出;
C、计算阈值为c×b,其中,b是数据块的分片数,c为数据块在P2P网络中的冗余度:
式中,系数k在正态分布表中,令根据的值查出,正态分布表中,概率表示服从正态分布的变量取小于或等于k值的概率;uP为P2P网络中对等节点平均可用性,由各对等点的可用性求均值得到,各对等点的可用性为对等节点每天在线时间比率。
3.如权利要求1或2所述的云存储***数据可用性维护方法,其特征在于:
所述订立租约步骤(2)的子步骤(2.2)中,元数据服务器从成员组中选择一个对等节点作为租约节点时,优先选择发起备份的对等节点,只有在其下线或者该对等节点中原始数据丢失的情况下,才选择成员组中其他对等节点作为租约节点。
4.如权利要求3所述的云存储***数据可用性维护方法,其特征在于:
所述子步骤(2.3)和子步骤(4.4)中,租约节点将数据块发送给中心存储服务器时,先判断是否租约节点为发起备份的对等节点,是则租约节点直接将本地数据块发送给中心存储服务器,否则租约节点先从成员组内其他对等节点处获取纠删码分片,重构原始数据块,再进行发送。
5.一种云存储***数据可用性维护装置,用于具有中心存储服务器、元数据服务器和P2P网络的***中,包括编码模块、订立租约模块、执行租约模块和租约维护模块,其特征在于:
(1)编码模块,包括下述子模块:
(1.1)P2P网络中发起备份的对等节点,将待存储数据块分为b个分片,再将b个分片编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,1≤b<n;每个纠删码分片元数据包括纠删码分片所属数据块ID、纠删码分片ID以及从P2P网络中随机选择的1个对等节点的ID和通讯地址;
(1.2)发起备份的对等节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送到P2P网络中n个其他对等节点上,接收到纠删码分片的n个对等节点先将接收到的纠删码分片及对应的纠删码分片元数据进行本地存储,再向元数据服务器发送各自的纠删码分片元数据;
(2)订立租约模块,包括下述子模块:
(2.1)元数据服务器收集到n个纠删码分片元数据后,生成一个租约存储在本地内存的租约列表中;租约的表项包括租约ID、租约超时时间、租约状态、阈值、n个纠删码分片在P2P网络中和对等节点的映射关系;租约状态分为未决、正常、异常、失效;n个纠删码分片在P2P网络中和对等节点的映射关系由纠删码分片ID列表、持有纠删码分片对等节点ID列表和相应对等节点地址列表构成;
元数据服务器再设定租约超时时间,并根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值T,将所述租约超时时间、阈值T、n个纠删码分片在P2P网络中和对等节点的映射关系填入租约中,租约状态置为未决;
(2.2)元数据服务器从成员组中选择一个对等节点作为租约节点,向其发送租约,并判断是否收到租约节点返回收到消息,是则进行子模块(2.3),否则继续执行子模块(2.2);
所述成员组由发起备份的对等节点和拥有纠删码分片的各对等节点构成;
(2.3)元数据服务器将租约中租约状态置为正常,向租约节点发送发送数据块到中心存储服务器的命令,租约节点收到命令后将数据块发送到中心存储服务器;租约节点和元数据服务器同时分别执行模块(3)和模块(4);
(3)执行租约模块,包括下述子模块:
(3.1)租约节点将租约中租约状态置为正常,并实时监视成员组中其他对等节点是否下线,是则将下线对等节点ID置为丢失标识,表明其对应纠删码分片丢失,再进行子模块(3.2);否则继续进行子模块(3.1);
(3.2)判断成员组中对等节点的数量是否低于阈值T,是则将租约中租约状态更改为异常,进行子模块(3.3),否则转子模块(3.1);
(3.3)判断租约节点是否为发起备份的对等节点,是则转子模块(3.4),否则转子模块(3.5);
(3.4)租约节点将待存储数据块编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子模块(3.8);
(3.5)租约节点判断中心存储服务器是否繁忙,是则转子模块(3.6),否则转子模块(3.7),
(3.6)租约节点先从成员组内其他各对等节点处获取所有纠删码分片,重构原始数据块,再将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子模块(3.8);
(3.7)租约节点向中心存储服务器请求数据块,得到数据块后,将其编码成n个纠删码分片,同时生成对应的n个纠删码分片元数据,转子模块(3.8);
(3.8)租约节点将n个纠删码分片连同对应的n个纠删码分片元数据分别发送给P2P网络中其他对等节点,同时更新租约中纠删码分片在P2P网络中和对等节点的映射关系,并将其发送给元数据服务器,转子模块(3.1);
(4)租约维护模块,包括下述子模块:
(4.1)元数据服务器将租约状态置为正常,对所发出的租约进行计时,判断是否在租约超时时间内,是则进行子模块(4.2),否则向租约节点发送撤销租约命令,租约节点收到命令后,将租约状态置为失效,不再对成员组内成员进行管理,转子模块(2.2);
(4.2)元数据服务器接收来自中心存储服务器的数据块副本数目变化消息,并根据其采取相应措施:若数据块副本数目增多,则转子模块(4.3);若数据块副本数目减少,则判断中心存储服务器中是否有幸存数据块副本,是则中心存储服务器进行本地复制,否则判断中心存储服务器是否繁忙,是则转子模块(4.3),否则转子模块(4.4);
(4.3)元数据服务器根据数据块在中心存储服务器和P2P网络中的分布情况计算阈值,并将阈值发送给租约节点,租约节点收到阈值后,将其置换租约中的原有阈值T,转模块(3);
(4.4)元数据服务器向租约节点发送命令,要求租约节点发送数据块到中心存储服务器,租约节点收到命令后将数据块发送到中心存储服务器;
(4.5)元数据服务器实时定期判断是否接收到租约节点消息,是则根据租约节点发送过来的纠删码分片在P2P网络中和对等节点的映射关系,更新租约中的相应内容;否则转子模块(2.2)。
6.如权利要求5所述的云存储***数据可用性维护装置,其特征在于:
所述子模块(2.1)和子模块(4.3)中,计算所述阈值包括下述子模块:
A、计算数据块在中心存储服务器中的可用性As:As=1-(1-us)m,式中,uS为中心存储服务器中服务器的平均可用性,各服务器的可用性由厂商提供;m为数据块在中心存储服务器中的副本数;
B、计算数据块在P2P网络中的可用性Ap:其中0.9≤A<1,为数据块在云存储***中欲达到的整体目标可用性,由***设计给出;
C、计算阈值为c×b,其中,b是数据块的分片数,c为数据块在P2P网络中的冗余度:
式中,系数k在正态分布表中,令根据的值查出,正态分布表中,概率表示服从正态分布的变量取小于或等于k值的概率;uP为P2P网络中对等节点平均可用性,由各对等点的可用性求均值得到,各对等点的可用性为对等节点每天在线时间比率。
7.如权利要求5或6所述的云存储***数据可用性维护装置,其特征在于:
所述订立租约模块(2)的子模块(2.2)中,元数据服务器从成员组中选择一个对等节点作为租约节点时,优先选择发起备份的对等节点,只有在其下线或者该对等节点中原始数据丢失的情况下,才选择成员组中其他对等节点作为租约节点。
8.如权利要求7所述的云存储***数据可用性维护装置,其特征在于:
所述子模块(2.3)和子模块(4.4)中,租约节点将数据块发送给中心存储服务器时,先判断是否租约节点为发起备份的对等节点,是则租约节点直接将本地数据块发送给中心存储服务器,否则租约节点先从成员组内其他对等节点处获取纠删码分片,重构原始数据块,再进行发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310078118.1A CN104052611B (zh) | 2013-03-12 | 2013-03-12 | 一种云存储***数据可用性维护方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310078118.1A CN104052611B (zh) | 2013-03-12 | 2013-03-12 | 一种云存储***数据可用性维护方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104052611A CN104052611A (zh) | 2014-09-17 |
CN104052611B true CN104052611B (zh) | 2017-04-19 |
Family
ID=51504996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310078118.1A Active CN104052611B (zh) | 2013-03-12 | 2013-03-12 | 一种云存储***数据可用性维护方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104052611B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866430B (zh) * | 2015-04-30 | 2017-12-15 | 上海交通大学 | 结合主从备份和纠删码的内存计算***高可用优化方法 |
CN106686095A (zh) * | 2016-12-30 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于纠删码技术的数据存储方法及装置 |
CN113821179B (zh) * | 2021-11-23 | 2022-02-22 | 阿里云计算有限公司 | 数据存储方法和装置、计算设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储*** |
CN102571991A (zh) * | 2012-03-27 | 2012-07-11 | 电子科技大学 | 基于多级映射的大规模多副本分布式存储***及其应用方法 |
CN102681793A (zh) * | 2012-04-16 | 2012-09-19 | 华中科技大学 | 一种基于纠删码集群存储***的局部式数据更新方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925624B2 (en) * | 2006-03-31 | 2011-04-12 | Amazon Technologies, Inc. | System and method for providing high availability data |
-
2013
- 2013-03-12 CN CN201310078118.1A patent/CN104052611B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储*** |
CN102571991A (zh) * | 2012-03-27 | 2012-07-11 | 电子科技大学 | 基于多级映射的大规模多副本分布式存储***及其应用方法 |
CN102681793A (zh) * | 2012-04-16 | 2012-09-19 | 华中科技大学 | 一种基于纠删码集群存储***的局部式数据更新方法 |
Non-Patent Citations (2)
Title |
---|
《Cloud and Rain Effects on AltiKa/SARAL Ka-Band Radar Altimeter——Part I: Modeling and Mean Annual Data Availability》;Jean Tournadre等;《IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING》;20090630;第47卷(第6期);全文 * |
《计算机云备份技术的特征及可用性评估模型的建立》;尤松等;《常州信息职业技术学院学报》;20120831;第11卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104052611A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10691366B2 (en) | Policy-based hierarchical data protection in distributed storage | |
CN106406758B (zh) | 一种基于分布式存储***的数据处理方法及存储设备 | |
CN102523234B (zh) | 一种应用服务器集群实现方法及*** | |
US9785498B2 (en) | Archival storage and retrieval system | |
CN102523279B (zh) | 一种分布式文件***及其热点文件存取方法 | |
EP2435916B1 (en) | Cache data processing using cache cluster with configurable modes | |
CN103023938B (zh) | 一种服务器集群的服务能力控制方法和*** | |
Cuenca-Acunam et al. | Autonomous replication for high availability in unstructured P2P systems | |
CN103631666B (zh) | 数据冗余容错的适配管理设备、服务设备、***及方法 | |
Liu et al. | Novasky: Cinematic-quality VoD in a P2P storage cloud | |
CN102316097B (zh) | 一种减少用户等待时间的流媒体调度分发方法 | |
US11442827B2 (en) | Policy-based hierarchical data protection in distributed storage | |
JP4459999B2 (ja) | 投票を活用した無停止サービスシステム及びそのシステムにおける情報更新及び提供方法 | |
CN105069152A (zh) | 数据处理方法及装置 | |
CN104052611B (zh) | 一种云存储***数据可用性维护方法及其装置 | |
CN108989106A (zh) | 一种分布式集群的数据处理方法、装置及*** | |
CN110990448B (zh) | 一种支持容错的分布式查询方法及装置 | |
CN101551781B (zh) | 一种p2p视频点播***中的硬盘缓存替换方法 | |
CN101729582B (zh) | 分布式存储的管理方法、装置及*** | |
CN106886376B (zh) | 一种基于多属性最优化的海洋监测数据副本管理方法 | |
CN109871365A (zh) | 一种分布式文件*** | |
Chiniah et al. | Dynamic erasure coding policy allocation (DECPA) in Hadoop 3.0 | |
CN109167690A (zh) | 一种分布式***中节点服务的恢复方法、装置及相关设备 | |
CN105635278A (zh) | 一种管理存储***的元数据的方法以及元数据服务器 | |
CN102970349B (zh) | 一种dht网络的存储负载均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |