温馨提示×

centos虚拟机如何使用LVM管理磁盘

小樊
39
2025-11-21 19:06:09
栏目: 云计算

CentOS 虚拟机使用 LVM 管理磁盘

一 准备与概念

  • 关键概念:PV(物理卷)VG(卷组)LV(逻辑卷)。PV 可以是整块磁盘或分区;多个 PV 组成 VG,形成可弹性分配的存储池;在 VG 上创建 LV 并格式化文件系统后挂载使用。
  • 适用场景:虚拟机新增磁盘、在线扩容、跨盘统一管理、按需分配与回收空间。
  • 常用工具:安装 LVM 工具包(如未安装)yum install -y lvm2;查看设备 lsblkfdisk -l

二 新磁盘初始化与 LVM 搭建

  • 步骤概览:识别新盘 → 分区(可选,类型设为 Linux LVM 8e)→ 创建 PV → 创建 VG → 创建 LV → 格式化 → 挂载 → 开机自动挂载。
  • 示例命令(以新盘 /dev/sdb 为例,使用 XFS 文件系统):
    # 1) 识别磁盘
    lsblk
    
    # 2) 分区(可选,整盘也可直接做 PV)
    fdisk /dev/sdb
    # n → p → 回车 → 回车 → t → 8e → w
    
    # 3) 创建 PV(整盘或分区均可)
    pvcreate /dev/sdb1
    
    # 4) 创建 VG
    vgcreate vg_data /dev/sdb1
    
    # 5) 创建 LV(示例 10G)
    lvcreate -L 10G -n lv_data vg_data
    
    # 6) 格式化 LV 为 XFS
    mkfs.xfs /dev/vg_data/lv_data
    
    # 7) 挂载
    mkdir -p /data
    mount /dev/vg_data/lv_data /data
    
    # 8) 开机自动挂载(建议使用 UUID 或 /dev/mapper/ 路径)
    blkid /dev/vg_data/lv_data
    # 将输出中的 UUID 写入 /etc/fstab,例如:
    # UUID=<你的UUID>  /data  xfs  defaults  0 0
    
  • 提示:也可在创建 LV 时直接占满剩余空间 lvcreate -l 100%FREE -n lv_data vg_data

三 在线扩容 LV 与文件系统

  • 场景 A:在现有 VG 有空闲空间时扩容 LV
    1. 扩容 LV(示例增加 +5G
      lvextend -L +5G /dev/vg_data/lv_data
      
    2. 扩展文件系统
      • XFS:xfs_growfs /mount/point(如 xfs_growfs /data
      • ext4:resize2fs /dev/vg_data/lv_data
    3. 验证
      df -h
      
  • 场景 B:先给虚拟机新增磁盘,再扩容 VG 和 LV
    1. 虚拟机层面扩展虚拟磁盘后,识别新盘
      echo "- - -" > /sys/class/scsi_host/host0/scan
      # 可按需尝试 host1/host2
      lsblk
      
    2. 初始化新盘为 PV 并扩容 VG
      pvcreate /dev/sdc
      vgextend vg_data /dev/sdc
      
    3. 扩容 LV 与文件系统(同场景 A 步骤 1–3)。

四 缩减与删除(含注意事项)

  • 缩减(高风险,务必先备份)
    • XFS 不支持在线缩减。如需缩减,请先备份、重建为 ext4 后再缩减。
    • ext4 流程:先缩减文件系统,再缩减 LV
      umount /data
      e2fsck -f /dev/vg_data/lv_data
      resize2fs /dev/vg_data/lv_data 5G
      lvreduce -L 5G /dev/vg_data/lv_data
      mount /data
      
  • 删除(按依赖逆序)
    umount /data
    lvremove /dev/vg_data/lv_data
    vgremove vg_data
    pvremove /dev/sdb1
    
  • 常用状态查看
    pvs && vgs && lvs
    
  • 注意:缩减前确保数据可备份、文件系统健康;生产环境建议先在测试环境演练。

五 大于 2TB 磁盘与 GPT 分区建议

  • 当单盘容量超过 2TB 时,建议使用 GPT 分区表(MBR 最大约 2TB)。
  • 使用 partedgdisk 创建 GPT 分区,再将分区初始化为 PV:
    parted /dev/sdb mklabel gpt
    parted /dev/sdb mkpart lvm1 0% 100%
    pvcreate /dev/sdb1
    
  • 其余步骤与上文一致。

0