发明名称 一种基于云计算平台的容灾存储方法
摘要 本发明是一种基于云计算平台的容灾存储模型,该模型,在部署时可以降低对网络带宽和节点存储容量的要求;同时,当数据节点中P个数据节点同时出现故障时,仍能很好很快地实现数据的恢复,极好地保障了数据的完整性。其原理是当用户上传的数据比较大时,先将数据进行一定程度的分割,再将分割后的数据块交叉存储在数据节点上。运用这种方式实现的存储,允许节点集群中P个节点同时出现故障,即在集群中P个节点同时出现故障的情况下,仍可以保证用户数据的完整性,同时恢复的速度比目前主流的全副本放置模型要快许多。其中P为一小于节点数目的常数。
申请公布号 CN102780769B 申请公布日期 2015.01.28
申请号 CN201210229227.4 申请日期 2012.07.04
申请人 南京邮电大学 发明人 付雄;王义波;王汝传;孙力娟;韩志杰;季一木;戴华
分类号 H04L29/08(2006.01)I;H04L12/24(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 一种基于云计算平台的容灾存储方法,其特征在于该方法在某几个数据节点同时出现故障的情况下,仍能很快很好地实现数据的恢复,保障数据的可靠性,其步骤主要如下:步骤1.根据设计要求和系统性能,确定副本节点数n,同时确定用户数据文件大小M的阀值Q,其中阀值Q将来用于确定副本复制方案;步骤2.计算用户数据文件大小M,当M≤Q时执行步骤3,否则执行步骤4;步骤3.将数据复制n份,在每个节点上各存储一份完整的数据副本和其校验和;步骤4.根据数据节点个数n,将整个数据文件分割为相同大小的n(n‑1)份;步骤5.将每一份数据再分割为相同大小的ε份,其中ε为一用户设定参数,分割后每一份数据大小为m,其大小可通过式(1)来计算:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>m</mi><mo>=</mo><mfrac><mi>M</mi><mrow><mi>n</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&epsiv;</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000602210350000011.GIF" wi="1427" he="145" /></maths>步骤6.将分割的n(n‑1)ε份数据平均分配到n个节点上,则每个节点存储(n‑1)ε份数据,称这些数据为节点N<sub>i</sub>的本地数据L<sub>i</sub>;注:L表示本地数据,L<sub>i</sub>表示节点i的本地数据;步骤7.将节点N<sub>i</sub>存储的本地数据块进行逻辑组划分,即将ε个数据划为一组,并将划分后的组进行编号;步骤8.由步骤6可知,一个节点本地数据可以划分的逻辑组数为(n‑1)个,令逻辑组为<img file="FDA0000602210350000012.GIF" wi="633" he="85" />令G<sub>i</sub>表示节点N<sub>i</sub>的所有逻辑组,<img file="FDA0000602210350000013.GIF" wi="71" he="76" />表示当前逻辑组;步骤9.令刨除节点N<sub>i</sub>后的所有参与存储的节点集合为剩余节点集合,找出每个节点的剩余节点集合,即式(2)<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><munderover><mo>&cup;</mo><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>2</mn></mrow></munderover><msubsup><mover><mi>N</mi><mo>&OverBar;</mo></mover><mi>i</mi><mi>y</mi></msubsup><mo>=</mo><munderover><mo>&cup;</mo><mrow><mi>j</mi><mo>=</mo><mn>0</mn><mo>,</mo><mi>j</mi><mo>&NotEqual;</mo><mi>i</mi></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>N</mi><mi>j</mi></msub><mo>,</mo><msubsup><mover><mi>N</mi><mo>&OverBar;</mo></mover><mi>i</mi><mi>y</mi></msubsup><mo>=</mo><msub><mi>N</mi><mi>j</mi></msub><mo>,</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>y</mi><mo>=</mo><mi>j</mi></mtd><mtd><mi>j</mi><mo>&lt;</mo><mi>i</mi></mtd></mtr><mtr><mtd><mi>y</mi><mo>=</mo><mi>j</mi><mo>-</mo><mn>1</mn></mtd><mtd><mi>j</mi><mo>></mo><mi>i</mi></mtd></mtr></mtable></mfenced><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000602210350000014.GIF" wi="1430" he="163" /></maths>步骤10.将节点N<sub>i</sub>上G<sub>i</sub>的数据存储到刨除N<sub>i</sub>的其他(n‑1)个节点<img file="FDA0000602210350000015.GIF" wi="70" he="78" />上,表示为<img file="FDA0000602210350000016.GIF" wi="219" he="78" />并满足式(3),<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mrow><mo>(</mo><munderover><mo>&cup;</mo><mrow><mi>r</mi><mo>=</mo><mi>e</mi></mrow><mi>w</mi></munderover><mrow><mo>(</mo><msubsup><mi>G</mi><mi>i</mi><mi>r</mi></msubsup><mo>&RightArrow;</mo><msubsup><mover><mi>N</mi><mo>&OverBar;</mo></mover><mi>i</mi><mi>e</mi></msubsup><mo>)</mo></mrow><mo>)</mo></mrow><mfenced open='|' close=''><mtable><mtr><mtd><mi>n</mi><mo>-</mo><mn>2</mn></mtd></mtr><mtr><mtd><mi>e</mi><mo>=</mo><mn>0</mn></mtd></mtr></mtable></mfenced><mo>{</mo><mi>w</mi><mo>=</mo><mrow><mo>(</mo><mi>e</mi><mo>+</mo><mrow><mo>(</mo><mi>p</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mi>mod</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mi>p</mi><mo>&le;</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000602210350000017.GIF" wi="1446" he="162" /></maths>其中:p为指定的常数,→表示存储到。
地址 210003 江苏省南京市鼓楼区新模范马路66号