Linux系统下LVM逻辑卷损坏后的数据恢复
2020-12-23张天亮刘小斌于由美孙兆宽邹金津宫臣
张天亮 刘小斌 于由美 孙兆宽 邹金津 宫臣
[摘 要] 辽河油田勘探开发研究环境支撑着勘探开发地震解释、储层反演等地质综合研究工作。这些软件运行在Linux操作系统的服务器上,采用SAN或NAS架构的存储来保存成果数据。本文提供了一种Linux系统下磁盘阵列分区信息恢复的方法,通过比对不同的磁盘使用格式,找到分区表差异。通过多次试验分析,探寻得出LV卷分区信息损坏后,恢复逻辑卷的方法。
[关键词] SAN存储;LVM卷管理;数据恢复
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 21. 066
[中图分类号] TP393 [文献标识码] A [文章编号] 1673 - 0194(2020)21- 0149- 02
0 引 言
在能源、银行等部门常常使用Linux/Unix操作系统的服务器,产生的数据往往存储在磁盘阵列中,采用双机备份或者异地备份的方式,保证数据安全。服务器与磁盘阵列采用SAN或NAS等常用架构模式连接,有时因为异常操作或感染病毒,会影响磁盘,导致磁盘的某个分区消失,严重时会导致操作系统无法启动甚至损坏。究其原因,就是硬盘分区表受损。一旦分区表遭到破坏,就会导致磁盘丢失等硬盘故障,硬盘的分区表可以说是支撑硬盘正常读取等操作的基础。操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,最后写入需要存储的数据文件[1]。
1 LVM逻辑卷管理介绍
随着数据量的增加,磁盘存储空间的需求会增加很多,每一次需求的增加就意味着需要重新分配一次磁盘,这种方式很麻烦,也很费时间。我们可以用LVM逻辑卷管理来解决这类的磁盘管理问题,LVM(Logic Volume Manager)被称为逻辑卷管理,它是Linux环境下对磁盘分区进行操作并管理的一种机制。由于LVM的逻辑卷的大小更改可以动态调整,且不会出现丢失数据等情况。
LVM管理的方式很简单,就是通过将底层的裸设备抽象并封装起来,然后以逻辑的方式呈现给上层来应用。
1.1 LVM逻辑卷管理的5个基本概念
PV(Physical Volume)物理卷,处于LVM最底层,是LVM最基本的物理组成部分。
VG(Volume Group)卷组,就是我们使用的磁盘,可以进行分区,对于LVM上面的文件系统而言,VG就是一个大磁盘,可以由多个PV构成。
LG(Logical Volume)逻辑卷,LV就是VG分隔成的类似分区的磁盘空间,可以格式化后建立文件系统并挂载使用。
PE(Physical Extent):物理区域是用于分配的最小物理存储单元,物理区域在建立卷组时指定其大小,默认的大小为4MB。一旦确立后就不能更改,相同卷组内全部物理卷的物理区域大小一致,且有唯一编号,PE是LVM寻址的最小单元。
LE(Logical Extent):逻辑区域是逻辑卷的最小存储单元,可用于分配,逻辑区域的大小取决于其所在的逻辑卷对应卷组中物理区域的大小。在同一个卷组中,LE和PE的大小是相同的并一一对应。图1为LVM管理示意。
1.2 LVM的创建步骤
① 挂载物理磁盘或者识别新分配的磁盘;
② 物理磁盘初始化为一个物理卷PV:
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3
③ 将一个或多个的物理卷PV组合成一个或多个卷组VG;
vgcreate VolGroup /dev/sdb1 /dev/sdb2 /dev/sdb3
④从VG中创建逻辑卷LV;
lvcreate -L 5.5T -n lv_data VolGroup
⑤根据实际需要将逻辑卷挂载使用;
mkfs.ext3 /dev/VolGroup/lv_data,再挂载
⑥可以通过pvdisplay、vgdisplay、lvdisplay等命令查看物理卷、卷组和逻辑卷,并可根据需要对磁盘或逻辑卷进行扩展vgextend lvextend和缩减lvreduce。
LVM逻辑卷管理在做删除操作时,需要按照与创建LVM操作的相反进行,即删除LV,删除VG,删除PV。
每次新建一个LV卷后,系统会在LVM的backup文件夹记录相应的PV、VG、LV的信息和VG的归档日志,这些资料可用于文件系统或者磁盘故障时逻辑卷的恢复。
2 恢复LVM方法
辽河油田勘探开发研究环境支撑着勘探开发的地震解释、储层反演、地质综合研究等工作,这些研究需要大量的存储空间,每个应用的存储空间在容量、数量上都不相同,因此采用了LVM逻辑卷管理,方便对存储空间进行扩充或缩减。通过将用户数据及用户目录建立在LVM上,可以随时按要求增大缩小,或根据使用情况对各逻辑卷进行扩充等调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不中断应用服务的情况下,把用户数据从旧硬盘空间迁移到新硬盘空间中去。后台存储采用SAN架构,有利于数据的安全传输。
一次定时重启,造成了信息不同步的小概率事件,使系统不能正常重启。在修复过程中,发现部分LV卷的头部信息自动更改为GPT分区格式,导致了此次故障发生。
通过大量测试研究,掌握了此类问题的解决方法。首先,通过dd命令完整备份物理设备,保证数据不会因为误操作而丢失。然后按照图2所示步骤,进行恢复操作。
①通过fdisk或者dd命令将出错LV卷的物理设备磁盘前34个扇区清零处理;
②按照备份的PV信息恢复PV卷;
③按照备份的VG信息恢复VG卷组;
④激活VG卷组;
⑤挂载LV卷,并验证数据。
3 结 语
本文通过一个生产过程中实际的案例,结合LVM自身存储特性,试验得出一种Linux系统下磁盘分区文件修复方法。通过试验分析磁盘设备头部分区表信息,找到一種在保证原有LV卷数据不丢失的情况下,恢复LV的头部信息的解决办法,达到了预期效果。分区表的恢复是一种十分危险的操作,并不是每一次的操作都能达到预期效果。恢复时,首先要细心谨慎,任何一点错误都有可能导致数据的永久丢失;其次,要做好系统的数据备份及分区表备份工作。
主要参考文献
[1]翟常亮,贾东,蓝朝祥,等.Windows下LVM被删除逻辑卷的数据恢复[J].电脑知识与技术,2014.6,10(18):4338-4340.