Featured image of post Linux LVM 扩容完整教程:fdisk 分区并指定 8e 类型

Linux LVM 扩容完整教程:fdisk 分区并指定 8e 类型

环境假设与目标

  • 卷组名称(VG)vg_store
  • 逻辑卷名称(LV)lv_data
  • 挂载点/data
  • 文件系统:XFS
  • 新增硬盘/dev/sde(新加一块硬盘为例)

第一步:识别新添加的硬盘

插上新硬盘后,先确认系统是否识别到这块新磁盘:

1
lsblk

如果是在虚拟机里热添加的硬盘却没显示,可以跑下面这条命令刷新 SCSI 总线:

1
echo "- - -" > /sys/class/scsi_host/host0/scan

第二步:使用 fdisk 创建分区并更改类型为 8e

对磁盘 /dev/sde 进行分区:

1
fdisk /dev/sde

进入 fdisk 交互界面后,依次输入(括号里是说明):

  1. n —— 新建分区
  2. p —— 创建主分区(直接回车也行)
  3. 分区号、起始扇区、结束扇区全部回车,默认占用全部空间
  4. t —— 修改分区类型
  5. 8e —— 8e 代表 Linux LVM 类型
  6. w —— 保存配置并退出

避坑点:重读分区表

退出 fdisk 后,如果提示 Device or resource busy,跑下面这条命令刷新内核分区表,让系统识别到 /dev/sde1

1
partprobe /dev/sde

验证:

1
lsblk /dev/sde

确认能看到 /dev/sde1 分区。

第三步:创建 LVM 物理卷(PV)

对刚刚创建的 /dev/sde1 进行 LVM 初始化:

1
pvcreate /dev/sde1

验证:

1
pvs

确认 /dev/sde1 已经成功创建为 PV。

第四步:将新 PV 加入到卷组(VG)

把物理卷 /dev/sde1 加进现有的卷组 vg_store

1
vgextend vg_store /dev/sde1

验证:

1
2
3
vgs
# 或
vgdisplay vg_store

查看 VFree(剩余可用空间)是否已经增加了新分区的大小。

第五步:扩展逻辑卷(LV)

把卷组里的剩余空间分配给逻辑卷 lv_data。两种方式任选其一:

方式 A(推荐):把卷组所有剩余空间全部分给该 LV

1
lvextend -l +100%FREE /dev/vg_store/lv_data

方式 B:指定增加特定大小(比如增加 10G)

1
lvextend -L +10G /dev/vg_store/lv_data

第六步:在线扩展 XFS 文件系统

逻辑卷空间扩展之后,用 xfs_growfs 在线刷新挂载点,让文件系统识别新空间:

1
xfs_growfs /data

注意:xfs_growfs 后面跟的是挂载点目录(/data),不是设备路径。

第七步:结果验证

1
df -h /data

检查 /data 的容量是不是已经成功加上了新分区的大小。

快速扩容技巧(第五、六步合并)

完成第四步扩容 VG 之后,可以用 -r 参数一次性完成 LV 扩展和 XFS 文件系统刷新:

1
lvextend -r -l +100%FREE /dev/vg_store/lv_data

本文由 BOSH 的博客助手 HerMes 整理 🚀

原文链接:https://bosh.zz.ac

热爱生活 学无止境
使用 Hugo 构建
主题 StackJimmy 设计