准备工作:安全与规划
在进行任何磁盘操作之前,充分的准备工作是必不可少的,这可以有效避免数据丢失等灾难性事故。
数据备份:这是最重要的一步,虽然 LVM 操作相对安全,但任何对磁盘的修改都存在潜在风险,请务必将重要数据、配置文件等进行完整备份。
检查当前磁盘状态:使用以下命令查看当前的磁盘分区和挂载情况,做到心中有数。
df -hT lsblk
df -hT
会以易读的格式显示已挂载文件系统的空间使用情况及其类型(如 XFS, ext4)。lsblk
则以树状结构清晰地展示磁盘、分区和逻辑卷之间的关系。确认新增磁盘空间:在虚拟化环境或物理服务器上新加了硬盘后,系统可能不会立即识别,您可以使用
echo 1 > /sys/class/scsi_device/.../device/rescan
或重启服务器来使系统识别新硬件,通过fdisk -l
命令可以查看到新加入的磁盘设备,/dev/sdb
。
扩展 LVM 分区(推荐方案)
假设我们已经有一块新磁盘 /dev/sdb
,现在需要将其空间全部添加到根分区(通常为 /dev/mapper/centos-root
)。
创建物理卷
需要将新磁盘初始化为 LVM 可以管理的物理卷(PV)。
pvcreate /dev/sdb
执行后,系统会提示成功创建物理卷,您可以使用 pvs
或 pvdisplay
命令查看新创建的物理卷信息。
扩展卷组
将新创建的物理卷添加到现有的卷组(VG)中,卷组的名称通常为 centos
或 cl
,可以通过 vgs
命令查看。
# 假设卷组名为 centos vgextend centos /dev/sdb
执行此命令后,centos
卷组的总空间就增加了,同样,可以使用 vgs
或 vgdisplay
查看扩展后的卷组信息,您会看到 VSize
(卷组总大小)和 VFree
(可用空间)相应增加。
扩展逻辑卷
卷组有了空闲空间,我们可以将这些空间分配给需要扩容的逻辑卷(LV),例如根分区对应的逻辑卷。
# 假设逻辑卷路径为 /dev/centos/root # 使用 -l +100%FREE 参数将卷组所有空闲空间分配给该逻辑卷 lvextend -l +100%FREE /dev/centos/root
您也可以指定具体的大小,例如增加 50GB:lvextend -L +50G /dev/centos/root
使用 lvs
或 lvdisplay
可以确认逻辑卷的大小已经更新。
调整文件系统大小
这是最后一步,也是至关重要的一步,虽然逻辑卷的大小已经改变,但上层的文件系统并不知道这一变化,需要手动通知它调整其边界,此操作根据文件系统的类型有所不同。
- 对于 XFS 文件系统(CentOS 7/8 默认):
xfs_growfs /dev/centos/root
- 对于 ext4 文件系统:
resize2fs /dev/centos/root
执行完成后,再次使用 df -hT
查看,您会发现根分区的可用空间已经成功增加,整个过程无需重启服务器。
为了方便查阅,下表小编总结了核心命令:
操作阶段 | 命令示例 | 作用说明 |
---|---|---|
初始化物理卷 | pvcreate /dev/sdb | 将新磁盘标记为 LVM 物理卷 |
扩展卷组 | vgextend centos /dev/sdb | 将物理卷加入指定卷组,增加总容量 |
扩展逻辑卷 | lvextend -l +100%FREE /dev/centos/root | 将卷组空闲空间分配给逻辑卷 |
调整 XFS 文件系统 | xfs_growfs /dev/mapper/centos-root | 在线扩展 XFS 文件系统至逻辑卷大小 |
调整 ext4 文件系统 | resize2fs /dev/centos/root | 在线扩展 ext4 文件系统至逻辑卷大小 |
特殊情况:扩展现有磁盘上的分区
在某些虚拟化场景下,我们不是增加新磁盘,而是直接扩展了原有虚拟磁盘的大小(例如将 /dev/sda
从 100GB 扩展到 200GB),这种情况下,操作略有不同。
- 使用
parted
或fdisk
删除原有分区并重新创建一个更大的分区(注意起始扇区必须与原分区完全一致)。 - 重新创建分区后,由于它已经是 LVM 类型的物理卷,无需再用
pvcreate
,只需使用pvresize
命令刷新物理卷信息即可。pvresize /dev/sda2 # 假设扩展的是 /dev/sda2 分区
- 后续步骤(
vgextend
变为可选,如果卷组已经包含此PV)与上文中的“步骤三”和“步骤四”完全相同,直接扩展逻辑卷和文件系统即可。
此方法风险较高,操作 fdisk
/parted
时务必谨慎,确保起始扇区无误,否则数据将丢失。
相关问答FAQs
我可以缩小一个 LVM 分区吗?
解答:可以,但操作比扩展要复杂且风险更高,对于 XFS 文件系统,它不支持在线缩小的操作,通常需要备份数据,删除并重建逻辑卷,格式化后再恢复数据,对于 ext4 文件系统,虽然 resize2fs
支持缩小,但过程必须严格遵循“先缩小文件系统,再缩小逻辑卷”的顺序,任何缩小操作都强烈建议在备份数据后进行,并在维护窗口期执行。
解答:这是一个常见的疏忽。lvextend
命令只扩展了逻辑卷(LV)的“容器”大小,但没有自动扩展其内部的文件系统,您必须根据文件系统类型,执行对应的文件系统扩容命令(如 xfs_growfs
或 resize2fs
),从 CentOS 7 开始,lvextend
命令提供了一个 -r
或 --resizefs
选项,可以在扩展逻辑卷的同时自动调整文件系统大小,lvextend -r -l +100%FREE /dev/centos/root
,这会一步到位,更加便捷。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复