基于云计算平台人工恢复虚拟磁盘数据方法的研究

2019-07-08 06:46吴金兴
计算机时代 2019年6期
关键词:数据恢复云计算方法

吴金兴

摘  要: 目前介绍在云计算平台上人工恢复虚拟磁盘数据的技术文献比较少,让很多企业用户因缺乏自行处理能力而需采购数据恢复服务,做不到即时挽救数据和节约费用。在云计算平台上通过一常见的典型虚拟磁盘故障实例,研究对虚拟磁盘的三种操作方法,并结合系统运维和数据恢復的技术成功安全地恢复用户数据。总结了这些方法在企业生产环境中的应用注意事项。

关键词: 云计算; 虚拟磁盘; 数据恢复; 方法

中图分类号:TP309.3          文献标志码:A     文章编号:1006-8228(2019)06-37-04

Abstract: At present, there are few of technical documents on manual recovery of the virtual disk data on cloud computing platform, so many enterprise users need to purchase data recovery service because of lack of self-processing ability, and can't immediately save the data and save cost. In this paper, through a typical example of virtual disk failure on cloud computing platform, three methods of operating virtual disk are studied, and combined with the technologies of system operation and maintenance and data recovery, the user data is recovered successfully and safely. The points should pay attention to in the application of these methods in the enterprise production environment are summarized.

Key words: cloud computing; virtual disk; data recovery; method

0 引言

云计算[1]是继上世纪八十年代大型计算机到客户端-服务器的大转变之后的又一种巨变。云计算是分布式计算、并行计算、效用计算、存储、虚拟化、负载均衡、热备份冗余等传统计算机和网络技术发展融合的产物。OpenStack作为影响力最大的开源云计算平台,当它在国内被推广应用后,基于它弥生出了许多公有云和私有云的产品,这些产品给用户或者企业带来非常便利的场景应用和生产环境应用。但是,这也导致用户数据或者企业数据被集中存储在数据中心,而且是基于虚拟化技术存储的。

信息数据是非常重要的,常用办法是定时备份。虽然云计算的多主机集群技术可解决虚拟实例(VM)在单主机上运行的故障问题。但是当VM系统出现宕机时,可能会因VM的虚拟磁盘文件太大、系统业务需要不能停机或者缺乏备份工具等等客观因素,导致VM的数据做不到秒级的备份,备份数据存在时效性问题或缺失性问题,这情况下只能通过人工技术手段进行数据恢复了。

在云计算平台(下简称云平台)方面,缺乏对虚拟实例进行数据恢复的文献供企业的运维人员参考,使其难以做到快速自行解决问题和节约维护成本。

1 解决思路

在数据恢复开始阶段,通常对于传统硬件磁盘的处理有两种方法:一是把故障磁盘拆卸并换挂到恢复工作的计算机系统;二是通过软件工具镜像磁盘[2],把镜像文件复制到恢复工作的计算机系统。然后运用数据恢复软件对磁盘或者磁盘镜像文件具体分析,再用不同的数据恢复技术方案处理。云平台的实例也包含vCPU,虚拟内存,虚拟磁盘等。因此,对于虚拟磁盘的数据恢复,我们也是可以借鉴传统方式进行的方法。

在云平台上,无论实例的存储类型是本地存储还是共享存储,它的启动磁盘在平台的UI界面上都是无法卸载的,这就导致无法将此磁盘换载到另一个实例中进行识别读取数据了。那么应该如何对这些虚拟磁盘进行操作,下面将通过一个日常运维中最为常见的典型磁盘故障案例进行举例。

2 实验研究

2.1 案例环境介绍

我司于2014年上线了基于OpenStack平台二次开发的私有云产品,采用KVM虚拟化技术,虚拟机实例是通过用libvirt XML[3]配置文件进行定义的,虚拟磁盘文件存放在云平台的实例运行主机的本地存储路径中。虚拟机实例从windows XP 操作系统虚拟化模板创建,虚拟磁盘文件格式为Qcow2[4],其中启动磁盘大小为20GB,另设置一个虚拟磁盘为10GB,文件系统都是NTFS。云计算节点主机的操作系统为Centos 6.5 linux。故障虚拟机实例ID为i-21(instance-00000021),平台中的实例名称为nocvm5,系统故障为“error loading operating system”,属于磁盘级别的故障,如图1所示,用户把数据文件保存在操作系统默认的“桌面”和“我的文档”。用于恢复数据的虚拟机实例ID为i-3f(instance-0000003f),平台的实例名称为nocvm26,与nocvm5运行在同一计算节点主机。案例需求是恢复虚拟机nocvm5的“桌面”和“我的文档”的用户数据文件。

2.2 数据恢复操作的操作过程和方法

2.2.1 方法一:磁盘换挂读取

使用远程终端工具登录nocvm5和nocvm26同在的计算节点主机centos系统,将实例nocvm5的启动磁盘挂载到实例nocvm26中识别读取,然后进行数据恢复操作。

步骤1 在云平台中关闭实例nocvm5和nocvm26,在主机系统上进入“/etc/libvirt/qemu”路径,备份虚拟化实例[5]的XML文件,操作过程见图2(b)的步骤1。在生产环境中,强烈建议对修改的操作,先备份后谨慎操作。

步骤2 查看instance-00000021.xml文件,把文件中disk模块的source file值(即实例的虚拟磁盘文件具体路径)记录下来,hd_0.img文件为启动盘,hd_1.img文件为第2磁盘。编辑3f.xml文件,修改后的内容见图2(a),图中矩形区域为增加内容,source file的值为磁盘文件路径;dev的值为磁盘数的设备编号,从vda开始不能重复,此处vdc是第三个磁盘;若添加其他磁盘,复制此段代码并修改source file和dev的值即可。主机命令操作见图2(b)的步骤2。

步骤3 在主机系统上取消定义[6]虚拟机实例nocvm26,然后用修改后的3f.xml定义虚拟机实例nocvm26,见图2(b)的步骤3。

步骤4 前3个步骤是磁盘换挂过程,此处开始为数据恢复的操作步骤。首先在云平台中启动虚拟机实例nocvm26,然后远程连接其XP系统,在“我的电脑”中会出现“本地磁盘E”,即新挂载的故障磁盘。但是,它的文件系统NTFS格式丢失了,运行E盘时会错误提示磁盘未格式化,这也就是由其引导的操作系统无法启动的问题所在。注意事项,千万不能格式化故障磁盘!

步骤5 运行准备好的winhex软件[7-8]进行数据恢复。在winhex程序菜单中依次选择“Tools”→“open disk ..”→“Physical Media”→“HD2”打开Hard disk 2(即E盘),仔细分析磁盘扇区数据并发现有被修改过的痕迹,boot sector的数据被重写为FF,如图3(a)。再次打开Hard disk 0(即当前nocvm26的C盘),查看其正常的boot sector,如图3(b)。此案例的修复办法有两种:一是使用NTFS的boot sector备份数据[9]来修复;二是因disk2和disk0是相同虚拟镜像模板创建的,所以NTFS的boot sector数据是一样的,可用此来修复。本案例因disk2被破坏,所以用了第二种解决办法,复制disk0的000007E00至000007FFF扇区数据后在disk2的000007E00处开始写入,写入结果如图3(c)所示,然后点击“保存”。刷新“我的电脑”并打开E盘,此时E盘的系统文件已可识别,如图3(d),但不建议用户继续使用。将用户的数据文件存储到安全的位置,完成后退出所有程序,关闭系统。

步骤6 在主机系统上取消定义实例nocvm26,使用instance-0000003f.xmlbak文件重定义实例nocvm26,见图2(b)的步骤6。

2.2.2 方法二:磁盘文件格式转换

因磁盘文件格式是Qcow2,數据恢复工具不能直接读取hd_0.img里面的数据。因此需要将Qcow2文件格式转换成Raw格式[4]后,再把Raw镜像文件转移到数据恢复工作的计算机系统上,用数据恢复软件打开Raw镜像文件,数据恢复过程参考方法一。

在主机上磁盘格式转换的命令,如下:

此方法缺点明显,磁盘转换的时间与磁盘大小成正比,特别是磁盘越大,转换所需时间越长,文件转移的时间越长,总恢复时间就更多。而且在转换过程中会占用主机系统一定的运行资源。此方法在生产环境中不可取,测试环境可以实验。

2.2.3 方法三:利用win PE启动的ISO光盘镜像

在互联网下载一个免费win PE系统的ISO光盘镜像文件,它集成了磁盘管理工具和数据恢复等系统维护软件。然后利用云计算平台可以上传光盘镜像的功能,将win PE的ISO文件上传到平台,设置虚拟实例nocvm5一个光驱,然后选择引导以光盘镜像启动虚拟机,如图4(a)至(b)所示。启动nocvm5并进入win PE 系统后,根据具体故障情况分析,数据恢复过程参考方法一。注意,必须将恢复后的数据文件转移到其他网络存储介质上。在虚拟环境下,win PE系统可能会因显卡驱动程序不兼容而导致桌面显示不正常,请更换兼容虚拟化的win PE光盘镜像。

3 讨论

综上所述,方法三的技术要求比较低,是最安全的。方法一的底层操作技术,在运维时会经常使用到,建议灵活去应用;而且对于技术资深者而言,方法一优于方法三。方法二,如果云计算平台启用了加密技术,导出的磁盘文件可能经过加密处理,脱离了此平台后会无法进行解密而且效率低,建议熟知格式转换方法即可。总之,在生产环境中,应当谨慎地根据实际环境条件选择最佳的方法。

4 结束语

上述的方法对基于OpenStack云计算平台和KVM虚拟化技术的云产品是通用可行的,其他虚拟化平台可以借鉴此方法,万变不离其宗,根据平台特性和配置环境去研究分析与具体处理。另外,上述案例中是对Windows系统的虚拟磁盘恢复,与其他操作系统的磁盘恢复过程不一样。从云平台运维技术到数据恢复技术的贯穿,取决于掌握技术知识面的程度,作为系统运维人员应该努力去学习和积累,希望此文能够帮助更多的同行和计算机爱好者。

参考文献(References):

[1] 蓝天狂海.云计算.百度百科.https://baike.baidu.com/item/%E4%BA%91%E8%AE%A1%E7%AE%97/9969353?fr=aladdin,2018-12-24.

[2] 马林.数据重现-文件系统原理精解与数据恢复最佳实践[M].清华大学出版,2009.4(1):417-431

[3] Libvirt XML Format. https://libvirt.org/formatdomain.html#elementsDisks

[4] Mark McLoughlin.The QCOW2 Image Format.https://people.gnome.org/~markmc/qcow-image-format.html,2008-9-11.

[5] shanliangliuxing.openstack中虚拟机实例的备份与恢复.https://blog.csdn.net/shanliangliuxing/article/details/8271935,2012-12-18.

[6] 上善若水75.Ubuntu12.10下搭建基于KVM-QEMU的虚拟机环境(九).https://blog.csdn.net/hbsong75/article/details/9247111,2013-07-04.

[7] 莫顾尔在.winhex比较详细的图文使用教程.https://blog.csdn.net/weixin_39282491/article/details/80881468,2018-07-02.

[8] bcbobo21cn.图解WinHex使用入门.https://blog.csdn.net/bcbobo21cn/article/details/51187699.

[9] 狂爱莎娇.用winhex解决“磁盘未被格式化,是否格式化”.http://blog.sina.com.cn/s/blog_40748c3c0100fpz8.html,2009-12-02.

猜你喜欢
数据恢复云计算方法
常见硬盘数据丢失的分析与恢复
可能是方法不对
浅议数据安全与恢复
基于Android—x86的windows恢复系统研究与设计
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用
数据备份技术
用对方法才能瘦
四大方法 教你不再“坐以待病”!