温馨提示×

Linux分卷在虚拟化环境中如何配置

小樊
41
2025-11-22 08:59:28
栏目: 云计算

Linux 分卷在虚拟化环境中的配置指南

一 前置准备与规划

  • 在虚拟化平台(如 VMware ESXiKVM/QEMUHyper‑V)为虚拟机新增一块或多块虚拟磁盘,启动后使用 lsblk 确认新盘(如 /dev/sdb)。
  • 规划分区方案:使用 MBRGPT;若采用 LVM,建议将分区类型设为 Linux LVM(8E)
  • 常用工具:fdisk/parted(分区)、LVM(pvcreate/vgcreate/lvcreate)、文件系统工具(mkfs.ext4/mkfs.xfs)、挂载与自动挂载(mount /etc/fstab)。
  • 注意:操作前做好数据备份,避免误删分区或覆盖数据。

二 方案一 使用 LVM 创建与管理分卷(推荐)

  • 分区与内核识别
    • 分区:使用 fdisk /dev/sdb(MBR)或 parted(GPT);如用 fdisk,创建分区后将类型设为 8E
    • 识别:执行 partprobe /dev/sdbpartx -a /dev/sdb,使内核立即读取新分区表。
  • 初始化 LVM 对象
    • 创建物理卷:pvcreate /dev/sdb1(若整盘使用可直接 pvcreate /dev/sdb)。
    • 创建卷组:vgcreate vg_data /dev/sdb1
    • 创建逻辑卷:lvcreate -L 20G -n lv_data vg_data(或 -l +100%Free 使用全部空闲空间)。
  • 格式化与挂载
    • 格式化:
      • mkfs.ext4 /dev/vg_data/lv_datamkfs.xfs /dev/vg_data/lv_data
    • 挂载:
      • 创建目录:mkdir -p /data
      • 挂载:mount /dev/vg_data/lv_data /data
      • 开机自动挂载(/etc/fstab):
        • ext4:/dev/mapper/vg_data-lv_data /data ext4 defaults 0 0
        • xfs:/dev/mapper/vg_data-lv_data /data xfs defaults 0 0
  • 验证:df -hTlsblkpvs/vgs/lvs

三 在线扩容与缩容要点

  • 场景 A:向卷组添加新磁盘后再扩 LV
    • 新增虚拟磁盘 → 分区并识别(如 /dev/sdc1)。
    • 扩展卷组:vgextend vg_data /dev/sdc1
    • 扩展逻辑卷:lvextend -l +100%Free /dev/vg_data/lv_data
    • 扩展文件系统:
      • ext4:resize2fs /dev/vg_data/lv_data
      • xfs:xfs_growfs /data
  • 场景 B:仅增大已有虚拟磁盘的容量(整盘为 PV 的场景)
    • 在虚拟化平台将虚拟磁盘容量调大 → 重启或重新扫描(如 echo 1 > /sys/class/scsi_device/…/rescan)。
    • 扩展分区(如将 sdb1 扩至新容量,工具可用 parted resizepart)。
    • 通知内核:partprobe /dev/sdbpartx -u /dev/sdb
    • 扩展 PV:pvresize /dev/sdb1
    • 扩展 LV 与文件系统(同上)。
  • 缩容提示(高风险,务必先备份并卸载)
    • 先缩减文件系统到目标大小(ext4 可离线缩减,xfs 不支持在线缩减),再 lvreduce,最后检查。
  • 验证:df -hlvsvgs

四 常见问题与排查

  • 新盘不识别:确认已执行 partprobe/partx,或重启;检查虚拟机设置中磁盘已连接。
  • 扩展后容量未生效:确认执行了对应文件系统的扩容命令(resize2fs/xfs_growfs)。
  • LVM 命令不存在:在 CentOS/RHEL 上安装 lvm2(如 yum install -y lvm2)。
  • 分区类型错误:使用 LVM 时确保分区类型为 8E(fdisk 中 t → 8E)。
  • 多盘与扩展分区:创建 PV 时尽量使用独立主分区,避免包含 扩展分区 本身。

五 不使用 LVM 的简化做法

  • 单盘单分区:
    • 分区:fdisk /dev/sdb → n → w;识别:partprobe /dev/sdb
    • 格式化:mkfs.ext4 /dev/sdb1
    • 挂载:mkdir -p /data && mount /dev/sdb1 /data;/etc/fstab 添加:/dev/sdb1 /data ext4 defaults 0 0
  • 多盘合并挂载到同一目录(不建议生产):可用 mdadm 创建 RAID0/RAID1 后再格式化与挂载,或采用上层应用做条带/副本。

0