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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间写了关于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激活后,后面扩容就按照上个章节的步骤扩就可以了 

### Linux磁盘扩容无需重启的方法 对于Linux系统,在不重启的情况下完成磁盘扩容主要依赖于在线调整分区大小以及文件系统的动态扩展能力。当面对物理服务器或虚拟环境中的存储需求增长时,可以采用如下方法来实现这一目标。 #### 动态调整LVM逻辑卷 如果当前使用的是一种基于LVM(Logical Volume Manager)架构设置,则可以通过命令行工具轻松地执行在线操作而不需要重新启动机器。具体来说: - 首先确认新添加的空间已经被识别并分配给了相应的PV(Physical Volume),这一步骤通常是在hypervisor层面完成的; - 接下来利用`pvdisplay`, `vgdisplay` 和 `lvdisplay` 来查看现有的物理卷、卷组和逻辑卷的信息; - 使用`pvresize` 命令更新已存在的物理卷以反映新的可用空间; ```bash pvresize /dev/sdXn # 替换sdXn为实际设备名称 ``` - 扩展对应的LV (Logic Volume),这里假设要扩展现有的根目录所在的逻辑卷 `/dev/mapper/centos-root`; ```bash lvextend -l +100%FREE /dev/mapper/centos-root ``` - 对文件系统进行在线扩展,例如ext4类型的文件系统可使用`resize2fs` 工具来进行无中断的操作: ```bash resize2fs /dev/mapper/centos-root ``` 以上过程可以在不停机的状态下安全有效地完成整个磁盘扩容流程[^1]。 #### 文件系统级别的处理 除了通过LVM管理外,某些特定条件下也可以直接针对非LVM配置下的EXT系列或其他支持热插拔特性的文件系统实施类似的策略。不过需要注意的是这类场景相对少见,并且可能涉及到更复杂的前期准备工作如创建额外未分配空间作为缓冲区域等措施。 另外值得注意的一点是,在线修改任何重要的操作系统组件都存在潜在风险,因此建议在正式环境中应用前务必做好充分的数据备份工作并且熟悉恢复方案[^2]。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值