linux分区与lvm操作

以下是 Linux 分区、物理卷(PV)、卷组(VG)、逻辑卷(LV)的 详细实操指南,涵盖 初始化、扩容、文件系统调整 等操作。以 LVM 为核心,结合具体案例逐步演示。


一、环境准备

案例场景

  • 物理磁盘:假设新增一块磁盘 /dev/sdb,容量为 20GB
  • 目标:将此磁盘初始化为 LVM 结构,创建逻辑卷并挂载到 /data 目录,后续演示扩容操作。

二、LVM 初始化操作

1. 分区或直接使用整块磁盘

  • 方式1:直接使用整块磁盘(不分区)
    1
    sudo pvcreate /dev/sdb   # 将整个磁盘初始化为物理卷
  • 方式2:创建分区后使用(推荐)
    1
    2
    3
    4
    5
    6
    sudo parted /dev/sdb
    (parted) mklabel gpt # 创建 GPT 分区表
    (parted) mkpart primary 0% 100% # 创建一个占满磁盘的分区
    (parted) set 1 lvm on # 标记分区为 LVM 类型
    (parted) quit
    sudo pvcreate /dev/sdb1 # 初始化分区为物理卷

2. 创建卷组(VG)

1
2
sudo vgcreate vg_data /dev/sdb1  # 创建名为 vg_data 的卷组
vgdisplay # 查看卷组信息

3. 创建逻辑卷(LV)

1
2
sudo lvcreate -n lv_data -L 10G vg_data  # 创建名为 lv_data 的 10G 逻辑卷
lvdisplay # 查看逻辑卷信息

4. 格式化并挂载

1
2
3
4
5
sudo mkfs.xfs /dev/vg_data/lv_data       # 格式化为 XFS 文件系统(也可用 ext4)
sudo mkdir /data
sudo mount /dev/vg_data/lv_data /data # 临时挂载
echo "/dev/vg_data/lv_data /data xfs defaults 0 0" | sudo tee -a /etc/fstab # 永久挂载
df -h | grep /data # 验证挂载结果

三、LVM 扩容操作

案例1:向卷组(VG)添加新物理卷(PV)

场景vg_data 空间不足,新增一块磁盘 /dev/sdc

1. 初始化新磁盘为物理卷

1
2
3
sudo pvcreate /dev/sdc          # 直接使用整块磁盘(或先分区)
sudo vgextend vg_data /dev/sdc # 将新 PV 加入卷组
vgdisplay vg_data # 查看扩展后的 VG 容量

2. 扩展逻辑卷(LV)

1
2
3
sudo lvextend -L +5G /dev/vg_data/lv_data  # 增加 5G 空间
# 或使用所有剩余空间:
# sudo lvextend -l +100%FREE /dev/vg_data/lv_data

3. 扩展文件系统

  • XFS 文件系统
    1
    sudo xfs_growfs /data  # 直接扩展(无需卸载)
  • EXT4 文件系统
    1
    sudo resize2fs /dev/vg_data/lv_data

案例2:在线缩小逻辑卷(谨慎操作!)

注意:XFS 文件系统不支持缩小!EXT4 需先卸载分区。

1
2
3
4
5
sudo umount /data                   # 卸载分区
sudo e2fsck -f /dev/vg_data/lv_data # 强制检查文件系统
sudo resize2fs /dev/vg_data/lv_data 8G # 缩小文件系统到 8G
sudo lvreduce -L 8G /dev/vg_data/lv_data # 缩小逻辑卷
sudo mount /dev/vg_data/lv_data /data # 重新挂载

四、非 LVM 分区扩容(传统方式)

案例场景

/dev/sda2 分区(挂载到 /home)从 10G 扩展到 15G,磁盘末尾有未分配空间。

1. 使用 parted 调整分区

1
2
3
sudo parted /dev/sda
(parted) resizepart 2 15GB # 调整分区结束位置
(parted) quit

2. 扩展文件系统

  • EXT4
    1
    sudo resize2fs /dev/sda2
  • XFS
    1
    sudo xfs_growfs /home

五、关键命令速查表

操作 命令
创建物理卷 pvcreate /dev/sdX
创建卷组 vgcreate vg_name /dev/sdX
创建逻辑卷 lvcreate -n lv_name -L size vg_name
扩展卷组 vgextend vg_name /dev/sdY
扩展逻辑卷 lvextend -L +size /dev/vg_name/lv_name
扩展文件系统(ext4) resize2fs /dev/vg_name/lv_name
扩展文件系统(xfs) xfs_growfs /mount_point
查看物理卷 pvdisplay
查看卷组 vgdisplay
查看逻辑卷 lvdisplay

六、注意事项

  1. 备份数据:所有磁盘操作均有风险,操作前务必备份重要数据。
  2. 文件系统兼容性:XFS 不支持缩小,EXT4 缩小需卸载分区。
  3. 虚拟机操作:扩展虚拟磁盘后,需在系统内通过 parted 调整分区或 LVM。
  4. 在线扩容:LVM 支持在线扩容(无需重启),但缩小需谨慎。
  5. 分区对齐:使用 parted 时,确保分区起始位置对齐(默认自动对齐)。

通过以上步骤,您可以灵活管理 Linux 分区的扩容与 LVM 操作。如果仍有疑问,建议在测试环境中模拟操作后再应用到生产环境。