背景

阿里云云主机两块 100G 的云盘合一个逻辑卷(LV)来使用,单个的 100G 磁盘不够用,需要合在一起使用,并且方便以后扩容

基本知识

  • 磁盘 /dev/xvdb /dev/xvdc
  • 分区, 使用 fdisk 进行分区 fdisk > n > p > 1..4, 主分区最多只有 4 个
  • 准备分区后,将分区类型变为 LVM 分区,fdisk > t > 8e, 8e 是 LVM 类型 ID
  • 物理卷(PV),卷组(VG),逻辑卷(LV),从磁盘分区创建 PV,通过 PV 创建 VG 或者把 PV 加入已有的 VG,在 VG 上创建 LV,LV 看起来就是逻辑的上磁盘,使用和真实的磁盘没什么明显区别, 在 LV 上构建文件系统

创建

  • 创建物理卷 pvcreate /dev/xvdb1,对分区进行操作
  • 创建 vg0 卷组 vgcreate vg0 /dev/xvdb1
  • 查看卷组 vgdisplay, 可以看到卷组有多大
  • 在 vg0 上创建 data 逻辑卷 lvcreate -L 99G -n data vg0 或者 lvcreate -l 25556 -n data vg0
  • 创建文件系统 mkfs.ext4 /dev/vg0/data
  • 挂载到系统目录即可使用 mount /dev/vg0/data /mnt 或者在 /etc/fstab 添加一行,然后 mount -a

添加磁盘

  • 创建物理卷 pvcreate /dev/xvdc1,对分区进行操作
  • 添加到 vg0 卷组 vgextend vg0 /dev/xvdc1
  • 扩容逻辑卷 lvextend -L +99G /dev/vg0/data, 可以通过 vgdispaly 查看卷组剩余空间有多少
  • 扩容文件系统 resize2fs /dev/vg0/data, 不需要卸载逻辑卷,可以在线完成扩容

备注

过程中有一块磁盘已经在使用,需要 umount 后再加入 LVM,出现了 device is busy 的情况,系统提示使用 lsof 或者 fuser 查询哪些进程在使用这个磁盘或者目录,最后通过 fuser 查询到进程号后,kill -9 pid 后解决 fuser -m /mnt

参考链接