一种面向云计算分布式存储的容灾备份方法论文_魏能强, 陈源, 任少波

摘要:随着大数据时代的到来,数据对企业越发关键,人们对数据容灾备份技术的关注点越来越高,数据的备份和恢复技术研究对业务持续运行具有重要意义。传统的容灾备份方式灵活性差、运营成本高、安全性低,基于这种考虑,提出云计算分布式存储的容灾备份方法,设计数据备份模型和数据恢复模型,使用双重备份和定期扫描的方式保证数据的高可靠性以便降低存储开销,同时利用加解密技术和离散存储的方式保证数据的安全性。云计算备份已成为主流研究方向,面向云计算分布式存储的容灾备份方法为容灾备份研究提供新的思路。

关键词:容灾备份;数据备份;数据恢复;云计算;分布式存储

中图法分类号 TP311

A Disaster Recovery Backup method for Cloud Computing Distributed Storage

xxx1)

1) (Chengdu University of Information Technology, Chengdu, 610043)

Abstract With the arrival of big data era, data is more and more critical to companies and enterprises, and people pay more and more attention to data disaster recovery backup technology. The research of data backup and recovery is of great significance to the continuous operation of business. The traditional disaster recovery backup method has poor flexibility, high operation cost and low security. Based on this consideration, the disaster recovery backup method of cloud computing distributed storage is proposed, the data backup model and data recovery model are designed, and the dual backup and periodic scanning are used to ensure the high reliability of the data in order to reduce the storage overhead. At the same time, encryption and decryption technology and discrete storage are used to ensure the security of the data. Cloud computing backup has become a mainstream research direction, and disaster recovery backup method for cloud computing distributed storage provides a new idea for disaster recovery backup research.

Key words disaster recovery backup; data backup; data recovery; cloud computing; distributed storage

1 引 言

互联网时代,数据已经成为诸多行业的宝贵财富,金融服务、电子商务、网络社交、电话通讯等领域对数据保护的重视程度更为突出。考虑到台风、地震等自然灾害和网络计算机病毒等不确定性因素,越来越多企业对核心业务和关键数据进行复制备份以便日后恢复数据,这就是容灾备份[1]。当计算机遇到灾难短期内无法正常提供服务时,可紧急切换至已备份的计算机保证系统能正常运行。在过去,由于基础设备匮乏、技术不成熟等原因,人们更多地使用本地保存备份的方式。本地保存备份的方法存在着数据安全隐患问题,有学者提出在异地建立、维护一个备份存储系统,并使用本地磁带备份、异地保存的备份方式,即将本地关键数据备份然后送往异地保存,该方式存在着恢复数据慢、存储介质难管理等问题。热备份站点备份则通过网络传输的方式同步或异步定期备份,在数据存储和数据恢复方面都明显优于前者。发展至今,出现高级的“双活”备援中心容灾备份,该方式在较远的地方建立一个数据中心并且时刻处于工作状态和数据备份状态,当本地数据中心发生灾难,远处数据中心接替其继续工作,该方式运营成本高,一般企业难以承受。基于“双活”容灾备份方式基础上,目前有学者提出更高级的两地三中心和多生产中心集中容灾备份的方式[2]。

随着云计算[3]概念的提出,海量数据的计算、储存和共享广泛应用于各行各业,例如行为轨迹[4,6]和社交网络[5]等为大数据研究提供必要条件,基于分布式存储技术[7]的云端服务容灾备份已成为可能。目前,分布式存储系统有Amazon AWS S3、Google One、阿里云OSS、华为云OceanStor、腾讯云CVM等,这些系统都具有智能化存储、运营成本低、弹性可扩展等特点。因此,针对容灾备份问题,使用云平台的分布式存储系统能有效解决海量数据快速迁移的难题。本课题提出云计算分布式存储的方法,通过供应商提供的分布式存储系统对数据进行备份,设计数据备份模型和数据恢复模型,为容灾备份研究提供一种新的研究思路。上述容灾备份方式如图一所示。

图一 容灾备份方式

2 相关工作

传统的容灾备份方式存在管理复杂、运营成本高、数据不安全等一系列问题,研究者不断提出新的容灾备份方式,为企业持续运作提供有效保障。Yu等人[8]提出协同多个云服务提供商的资源,使用统一的接口对数据进行容灾备份策略,而云与云之间的内部工作流程对用户不可见。该策略对备份数据在云之间进行多份复制以免数据丢失,在数据恢复过程中则选取其中一份进行恢复即可。相比考虑企业个体的容灾备份方式,该策略能满足不同人群需求。Zhu等人[9]认为保持数据中心不间断使用至关重要,远程备份的方式可以更好地满足业务持续使用。首先,对不同的容灾备份和容灾恢复技术进行分类,其中容灾备份包括基于应用、基于数据库、基于站点、基于虚拟化存储和基于远程数据复制,而容灾恢复包括冷备份、暖备份和热备份。然后,使用RPO(Recovery Point Object)和RTO(Recovery Time Objective)两个指标对容灾中心进行等级划分,并分析出当前容灾中心都使用异步数据恢复的机制。最后,文章提出一种分布式存储的容灾策略,把本地和云端两个不同的站点虚拟化为一个共享卷,卷与卷之间互相同步读写数据进行数据备份和恢复。Alshammari等人[10]认为PRCR(Proactive Replica Checking for Reliability)只在一个云供应商内使用3份副本数据容灾备份欠妥,提出多云之间使用1至2个副本作为备份数据,提高数据吞吐量和减少带宽消耗。其核心做法是通过副本管理模块定期扫描元数据表,当副本丢失或到期则采取相应文件操作,保证数据的高可靠性。

3 云计算分布式存储的容灾备份

容灾备份[11,12,13]是一个包括数据备份和数据恢复的完整流程,企业可以制定定期备份或实时备份计划,当灾难发生时可紧急恢复备份数据确保业务正常运行。使用云计算容灾备份具有存储空间大、运营成本低、存储速度快、安全性高等特点,本文从企业运营成本及数据安全性的角度出发,提出一种使用多云分布式存储的云计算容灾备份方法,总体设计如图2所示。

图2 总体设计图

图2是由多个云平台之间相互调度资源,以便满足用户数据备份和恢复的需求,流程说明如下:企业可以抽象为单个用户,用户直接使用云平台统一的接口直接对数据进行备份和恢复操作,而不需要了解内部复杂的机制;由于云平台与云平台之间操作系统类型和版本存在差异,需要协调云平台提供商(Cloud Provider, CP)开发统一的容灾请求接口(Disaster Recovery Application Programming Interface, DRAPI);用户使用统一的容灾请求接口对云平台的管理节点(Manager Node)发起任务命令,进行备份或恢复数据;云平台的管理节点是云平台的智能核心管理程序,负责监控本平台资源情况变化、调度分配数据备份或数据恢复命令等一系列核心任务,但管理节点不直接接受用户备份数据,而是协调分配资源空闲的子节点与用户完成数据的传输,当本地云平台资源紧张时,管理节点可以通过容灾接口向其他云平台发起请求。

数据备份模型

数据备份是指用户通过云平台接口发起备份请求,把数据备份到云平台服务器上,与GFS[14](Google File System)、HDFS[15](Hadoop Distributed File System)使用3个副本备份方式不同,本文仅使用2个副本的方式进行备份,具体流程如下:

(1)用户使用账号登录云平台,选择需要备份的数据、设置备份的时间期限,发起备份请求。

(2)云平台接收到备份请求后,管理节点根据用户备份数据的大小和时间期限制定备份方法,通知空闲的子节点(Sub Node)进入准备状态,等待与用户进行数据传输。当本地平台资源紧张时,管理节点使用接口对其他平台发起请求,接受方平台管理节点收到请求制定备份计划,若平台资源紧张则继续使用接口转发至其余平台。

(3)管理节点通知用户与子节点开始数据传输,并开辟对应大小的存储空间,子节点对备份数据进行切分。考虑数据安全和传输时间因素,对切分数据使用公钥快速加密[16]算法加密分块数据[17],把加密后的分块数据作为副本双份存储到离散的空间中,最后在数据表(Data Table)中记录副本的位置索引、数据大小相关信息、用户相关信息等,数据备份工作完成。

数据备份模型伪代码如下:

算法1:数据备份算法

输入:备份文件F,备份时间期限T。

输出:备份结果Rs。

1. blockList = [], block_data = null;

2. request = generate_request(F, T);

3. node = choose_SubNode(request);

4. s = size(F);

5. alloc_space(s);

6. flag = link(node);

7. if(flag == 1)

8. for(i=0; i<=s; i++)

9. block_data = segment_data(F, node);

10. block_data = encryption(block_data);

11. blockList.add(block_data);

12. end for

13. else

14. return 0;

15. Rs = storage(blockList, T);

16. return RS;

算法1的主要步骤:

(1)创建blockList集合用于存储加密后的分块数据,创建block_data变量用于临时记录分块数据(第1行)。

(2)创建备份请求,参数F为需要备份的文件,T为备份时间期限(第2行)。

(3)管理节点选择空闲的子节点node(第3行)。

(4)计算备份文件的大小,为后续切分数据做准备(第4行)。

(5)管理节点开辟云端存储空间,为备份数据作备份准备(第5行)。

(6)子节点与客户端连接,如果连接标记flag为1,则表示连接成功,进入后续步骤(第6、7行)。

(7)连接成功,子节点对备份数据进行切分和加密,加密后的块数据加入到集合blockList中(第8~12行)。

(8)连接失败,返回0(第13~14行)。

(9)对加密的块数据进行离散存储,并在数据表中记录副本的位置索引、数据大小相关信息、用户相关信息等(第15行)。

(10)返回备份结果Rs(第16行)。

图3 数据备份流程图

图3是数据备份的具体流程图,假设CP1云平台资源能满足用户的需求,则数据具体备份步骤如下:1) 用户使用DRAPI发起数据备份请求;2) 管理节点接收到数据备份请求;3) 管理节点查看本地资源使用情况,根据用户数据大小和相关信息开辟存储区域;4) 管理节点选择一个空闲的子节点,子节点进入准备状态;5) 用户发送数据文件,子节点对数据进行切分;6) 子节点切分的数据使用公钥快速加密算法,得到加密数据;7) 子节点把加密的副本双份送到对应的存储区域;8) 子节点把副本位置索引及用户相关信息记录到数据表中。

除此之外,由于云平台使用双重备份数据策略,考虑到数据丢失等因素,管理节点需要定期根据数据表的索引位置进行文件扫描。当其中一份数据缺失时,使用另一份数据进行备份,确保云端始终有2个数据副本。当用户备份数据超过存储日期,则自动清除副本,降低云端存储开销。

数据恢复模型

数据恢复是指用户从云平台中把之前备份的数据同步下来,当灾难发生时,保持本地数据和云端数据的一致性,具体流程如下:

(1)用户使用账号登录云平台,选择云平台中已备份数据,发起数据恢复请求。

(2)云平台接收到数据恢复请求后,管理节点通知空闲的子节点进入准备状态,子节点通过管理节点传过来的信息在数据表中找到副本文件的位置。

(3)子节点取出云平台服务器备份的数据,对备份数据进行解密和拼接后,然后把数据传给用户,数据恢复工作完成。

图4 数据恢复流程图

数据备份模型伪代码如下:

算法2:数据恢复算法

输入:备份文件信息info。

输出:备份文件F。

1. blockList = [], block_data = null, fileList = [];

2. request = generate_request(info);

3. node = choose_SubNode(request);

4. flag = link(node);

5. if(flag == 1)

6. fileList = search(info);

7. for(each p in fileList )

8. block_data = decryption(p);

9. blockList.add(block_data);

10. end for

11. else

12. return 0;

13. F = joint(blockList);

14. return F;

算法2的主要步骤:

(1)创建blockList集合用于存储解密后的块数据,创建block_data变量用于临时记录解密的块数据,创建fileList集合用于存储云端搜索到的块数据(第1行)。

(2)创建备份请求,参数info为备份文件信息 (第2行)。

(3)管理节点选择空闲的子节点node(第3行)。

(4)子节点与客户端连接,如果连接标记flag为1,则表示连接成功,进入后续步骤(第4、5行)。

(5)子节点根据备份文件信息info搜索云端备份块数据,并保存于fileList集合中(第6行)。

(6)连接成功,遍历fileList集合,对块数据进行解密,并把解密的块数据加入到blockList集合中(第6~10行)。

(7)连接失败,返回0(第11~12行)。

(8)对块数据集合进行拼接,还原成完整的备份数据F(第13行)。

(9)返回备份文件F(第14行)。

图4是数据恢复的具体流程图,假设用户的备份数据存储在CP1云平台中,则数据具体备份步骤如下:1) 用户使用DRAPI发起数据恢复请求;2) 管理节点接收到数据恢复请求;3) 管理节点选择一个空闲的子节点并把要恢复文件信息传给子节点,子节点进入准备状态;4) 子节点根据文件信息在数据表中找到对应的副本位置;5) 子节点取出备份数据;6) 子节点对数据进行解密;7) 子节点对数据进行拼接,发送给用户。

4 结束语

本文提出分布式存储的云计算平台容灾备份方法,相比传统的容灾备份方式,该方法运行成本低、数据安全高、数据完整性高,随着大数据[18,19]和人工智能[20]的发展,云平台的容灾备份必定是大势所趋。由于云平台之间的差异性,协调各个云平台供应商对接口进行细致地开发具有一定挑战,平台与平台之间的兼容性也需要不断加强。另外,数据安全也是人们关注的一个焦点,云平台在数据备份和数据恢复过程中,数据的加密和解密环节必须做到传输时无法破解,数据库的安全也需要高度重视。目前分布式存储的云计算平台容灾备份方法虽然还存在一些问题,但随着模型的优化和版本的迭代,在未来将会提出更先进的容灾备份方法。

参 考 文 献

[1]韩德志, 谢长生, 李怀阳. 存储备份技术探析. 计算机应用研究, 2004, 21(6): 1-4.

[2]王云芳. 云计算资源池容灾中心建设解决方案研究. 互联网天地, 2015, (2):1-7.

[3]方巍, 文学志, 潘吴斌. 云计算:概念、技术及应用研究综述. 2012, 4(4): 351-361.

[4]Qiao Shaojie, Shen Dayong, Wang Xiaoteng, et al. A Self-adaptive Parameter Selection Trajectory Prediction Approach Via Hidden Markov Models. IEEE Transactions on Intelligent Transportation Systems, 2015, 16(1): 284-296.

[5]Qiao Shaojie, Han Nan, Gao Yunjun, et al. A Fast Parallel Community Discovery Model on Complex Networks Through Approximate Optimization. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(9): 1638-1651.

[6]Qiao Shaojie, Han Nan, Wang Junfeng, et al. Predicting Long-term Trajectories of Connected Vehicles Via Prefix-projection Technique. IEEE Transactions on Intelligent Transportation Systems, 2017, 19(7): 2305-2315.

[7]郭威, 谢光伟, 张帆,李敏. 一种分布式存储系统拟态化架构设计与实现[J/OL]. 计算机工程:1-9[2019-12-26]. https://doi.org/10.19678/j.issn.1000-3428.0056660.

[8]Gu Yu, Wang Dongsheng, Liu Chuanyi. DR-Cloud: Multi-cloud Based Disaster Recovery Service. Tsinghua Science and Technology, 2014, 19(1): 13-23.

[9]Zhu T, Xie Y, Song Y, et al. IT Disaster Tolerance and Application Classification for Data Centers. Procedia Computer Science, 2017, (107): 341-346.

[10]M. Alshammari, A. Alwan, A. Nordin, A. Abualkishik. Disaster Recovery with Minimum Replica Plan for Reliability Checking in Multi-Cloud. International Conference on Ambient Systems Networks and Technologies Procedia Computer Science, 2018: 247-254.

[11]Siham H, Darah A. A Proposed Virtual Private Cloud-Based Disaster Recovery Strategy. 2019 IEEE Jordan International Joint Conference on Electrical Engineering and Information Technology (JEEIT), Amman, Jordan, 2019: 9-11.

[12]Hassen B.R, Hatem B.S. Disaster Recovery as a Service: A Disaster Recovery Plan in the Cloud for SMEs. 2016 Global Summit on Computer & Information Technology (GSCIT), Sousse, 2016: 32-37.

[13]Abdelfatah A.T, Raneem D, Lana S. Disaster Recovery Techniques in Cloud Computing. 2019 IEEE Jordan International Joint Conference on Electrical Engineering and Information Technology (JEEIT), Amman, Jordan, 2019: 845-850.

[14]Wang Mengdi, Li Bo, Zhao Yongxin, et al. Formalizing Google File System. 2014 IEEE 20th Pacific Rim International Symposium on Dependable Computing, Singapore, 2014: 190-191.

[15]Wang Xin, Su Jianhua. Research of Distributed Data Store Based on HDFS. 2013 International Conference on Computational and Information Sciences, Shiyang, 2013: 1457-1459.

[16]刘晓星, 胡畅霞, 刘明生. 公钥加密算法RSA的一种快速实现方法. 微计算机信息, 2006, (18): 118-119.

[17]刘京义. 快速加密Linux文件, 网络安全和信息化, 2017, (12): 92-95.

[18]罗圣美, 李明, 叶郁文. 大数据容灾备份技术挑战和增量备份解决方案. 大数据, 2015, 1(3): 106-112.

[19]姜成斌. 大数据时代下对辽阳石化数据备份与容灾的思考. 中国管理信息化, 2015, 18(6): 74.

[20]黄亮. 云栖大会看人工智能下灾备业务的未来. 计算机与网络, 43(20): 75.

论文作者:魏能强, 陈源, 任少波

论文发表刊物:《科学与技术》2019年第22期

论文发表时间:2020/4/29

标签:;  ;  ;  ;  ;  ;  ;  ;  

一种面向云计算分布式存储的容灾备份方法论文_魏能强, 陈源, 任少波
下载Doc文档

猜你喜欢