再谈Linux磁盘扩容(pvresize直接扩容PV)

本文档详细介绍了在Linux环境下,由于误操作导致LVM分区信息丢失后的恢复过程。首先,演示了正常扩容LVM的步骤,然后模拟了一个错误场景,即在扩容过程中错误地创建了分区,从而导致LVM信息丢失。在备份数据后,通过分析LVM备份文件并执行相关命令,成功恢复了VG信息,并最终实现了LV的扩容。整个过程对于理解LVM管理和故障恢复具有重要参考价值。

前段时间写了关于VMware下LVM是否还具有优势的帖子,后边写了一个磁盘直接扩展partation的帖子,今天就写写最后剩下的一种情况。

其实前面帖子里边提到过现在好多人做pv的时候不给磁盘划分partation ,直接用整个磁盘创建PV。然后最近工作上就遇到一个需求,一个lv挂载到单独的目录下,现在需要给这个目录扩容,恰巧这个lv所在的vg是由一个单独磁盘做的PV组成的,然后工程师没看明白就直接fdisk了这个磁盘尝试创建partation,然后整个的pv vg lv信息都看不到了。

下面还是通过测试环境演示一下。

首先演示一下正常的扩容操作流程:

 测试环境中sdb最开始是11G,直接做成了PV,pv创建了vg,vg上创建了lv,lv上创建了文件系统挂载到了/mnt目录,目前整个流程下来都是11G大小。

现在需要把/mnt目录扩容到15G

首先直接把sdb的磁盘从11G扩容到15G

然执行partprobe命令扫描一下磁盘,可以看到磁盘已经扩容到15G了,但是里边的lv还是11G 

执行pvresize -t测试一下扩容是否可以,测试成功后直接执行pvresize,可以看到pv,vg都已经扩容到15G了,但是LV还是11G

剩下的操作就是比较常规的了,扩容lv,扩容文件系统。

下面演示一下出现我最开始说的那种操作失误以后怎么处理:(我就直接在我测试环境上做了,现在需求是把/mnt目录扩容到20G)

这是磁盘扩容后的环境,磁盘扩容到20G了,lv还是15G。

 

上面这段操作就是我在sdb上创建了一个LVM格式的partation,成功的把原来的PV,vg和LV信息搞没了,现在就需要来研究一下怎么恢复回来。

 首先,需要抽根烟冷静一下

要确认上面的操作其实只是修改了磁盘上的磁盘头文件,真正的数据目前看还是都可以正常访问的,所以最重要的首先是要进行数据备份。

备份完成以后,先把刚才创建的partation删掉

 

可以看到刚创建的partation删除掉了,但是原来的pv信息还是不在。继续尝试修复lvm。

在/etc/lvm/archive和/etc/lvm/backup目录下其实是有每次pv、vg、lv的操作记录,通过这些记录尝试修复vg。

 

使用 vgcfgrestore --list testvg查看每个操作文件中记录的步骤。

可以看到最后一次lv操作记录的日志是在/etc/lvm/backup/testvg文件

首先查看备份文件中pv的UUID,重建PV(这步骤如果不做,操作系统每次重启一下LV都是非激活状态)

执行第一次恢复VG的命令(这次命令主要是把sdb的配置找回来)

执行重建pv命令

第一次执行重建pv的时候报错了,因为当时的vg在执行恢复以后是active状态,需要先给他设置成not active,然后就可以执行成功。

第二次执行VG修复命令

 

可以看到原来的vg信息已经恢复成功。LV激活后,后面扩容就按照上个章节的步骤扩就可以了 

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值