在本指南中,我们将介绍如何在 Linux 中逐步创建扩展 lvm 分区。
1、基础概念
- PV:physical volume 物理卷,同一磁盘可划分为多个物理卷
- VG:volume group 卷组,一个到多个PV可组成一个卷组
- LVM 是逻辑卷管理 (Logical Volume Management) 的缩写,它是 Linux 系统上专门为服务器推荐的管理磁盘或存储的方法。LVM 分区的一个主要优点是我们可以在线扩展它的大小,而不需要任何停机时间。也可以减少 LVM 分区,但不建议。
- 挂载点:lv与挂载点是1:1的关系
综上:Linux的磁盘管理其实就是把物理磁盘先进行划分,分成一块块pv,然后对pv进行分组形成vg,再将vg分配给lv,最后将lv挂载到挂载点上进行使用。之所以进行这么多层次的划分,就是为了能灵活的对磁盘进行逻辑上的区分使用。
2、前期准备,创建PV
在磁盘 /dev/sdb 上创建 PV 之前,确保安装了 lvm2 包
sudo apt install lvm2 // On Ubuntu / Debian
sudo dnf install lvm2 // on RHEL / CentOS
运行如下 pvcreate 命令在磁盘 /dev/sdb 上创建 PV
pvcreate /dev/sdb
结果:Physical volume “/dev/sdb” successfully created.
3、 创建 VG (卷组)
- 要创建卷组,我们将使用 vgcreate 命令。创建 VG 就是将 PV 添加到卷组中。
sudo vgcreate ubuntu-vg /dev/sdb
结果:Volume group “ubuntu-vg” successfully created
- 查看 VG (ubuntu-vg) 的状态,运行如下命令。
vgs ubuntu-vg
# 或者
vgdisplay ubuntu-vg
以上输出说明卷组 (ubuntu-vg) 的大小为 1.75 GB,物理扩展 (PE) 的大小为 4MB。PE 的大小可以在创建 VG 时更改。
4、创建 LV (逻辑卷)
- lvcreate 命令用于从逻辑卷组中创建逻辑卷。
lvcreate -L 1.2T -n ubuntu-lv2 /dev/ubuntu-vg
创建一个/dev/ubuntu-vg卷组下1.2T大小的名为ubuntu-lv2的逻辑卷。
结果:Logical volume “ubuntu-lv2” created.
- 查看 LV 的状态,运行如下命令
lvs /dev/volgrp01/lv01
# 或者
lvdisplay /dev/volgrp01/lv01
上面的输出说明已经成功创建了大小为 1.2T 的 LV(ubuntu-lv2 )。
5、LVM 分区格式化
- 使用 mkfs 命令 格式化 LVM 分区,在本例中 LVM 分区是 /dev/ubuntu-vg/ubuntu-lv2,运行以下命令将 LVM 分区格式化为 ext4 文件系统。
mkfs.ext4 /dev/ubuntu-vg/ubuntu-lv2
- 创建挂载 /ubuntu-lv2 目录
mkdir /ubuntu-lv2
- 运行 mount 命令把分区挂载在 /ubuntu-lv2
mount /dev/ubuntu-vg/ubuntu-lv2 /ubuntu-lv2
6、扩展lvm的大小
- 查看卷组中是否有多余的磁盘空间
vgdisplay
如果卷组有剩余空间,可以使用以下命令对逻辑卷进行扩容,如下图,扩容后再查看逻辑卷(lvs)发现大小已经更改
lvextend -L +358G /dev/ubuntu-vg/ubuntu-lv2
Logical volume ubuntu-vg/ubuntu-lv2 successfully resized
- 针对ext2/ext3/ext4文件系统的resize2fs命令来进行调整文件系统大小,针对xfs系统文件使用xfs_growfs来调整大小。
resize2fs /dev/ubuntu-vg/ubuntu-lv2
xfs_growfs /dev/ubuntu-vg/ubuntu-lv2