1. LVM释义
LVM标识逻辑卷管理(Logical Volume management),主要用于服务器管理Linux系统上的磁盘。其优势在于不停机扩容(注意,不推荐缩容,虽然ext4支持缩容操作)。本文基于Ubuntu 22.04进行演示,分配了100G大小的原始磁盘,基于此磁盘创建LVM分区。
# 使用如下命令识别原始磁盘,输出如下图所示
sudo fdisk -l | grep -i /dev/sd
使用如上命令,可以发现磁盘上已有/dev/sda盘。
使用pvs命令,可发现已基于/dev/sda3创建PV(Physical Volume),并将/dev/sda3添加到ubuntu-vg(VG: Volume Group,卷组)下,当前PV空间约98G,未被使用的空间大约为49G。磁盘被分配PV以及VG的原因是在Ubuntu的安装步骤中,文件系统操作这一步会提示创建LVM分区,具体如下图所示:
2. 初始化新增物理磁盘
2.1 添加磁盘
给当前主机分配空间约25G的磁盘,重新查看磁盘信息,可发现新增/dev/sdb磁盘(空间25G)。
2.2 创建PV
基于/dev/sdb磁盘创建PV,具体如下所示:
执行pvcreate创建PV成功后,使用pvs查看PV状态(亦可使用sudo pvdisplay /dev/sdb查看),可发现/dev/sdb尚未添加至VG。
2.3 创建VG
执行vgcreate命令,成功将PV(/dev/sdb)添加至VG(vgusr)中,空间25G,Physical Extend(PE)大小为 4 MB。
2.4 创建LV
LV指逻辑卷(Logical Volume),现在使用lvcreate创建LV。
此处,基于VG(vgusr)创建空间为10G,名称为lvusr01的逻辑卷。
此处,使用lvs或lvdisplay即可查看lvusr01的状态,需要注意查看/dev/vgusr/lvusr01(/dev/vg-name/lv-name)。
2.5 格式化LVM分区
使用mkfs命令格式化LVM分区,当前的LVM分区是/dev/vgusr/lvusr01。可以选择将LVM分区格式化为xfs或ext4(需要注意xfs无法进行缩容操作),此处我们选择格式化为ext4。
如果需要使用格式化后的LVM分区,我们需要将其挂载至指定文件夹,此处我们创建文件夹/data/usr01执行挂载。
此处,我们将/data/usr01文件夹挂载至lvm分区/dev/vgusr/lvusr01下,使用df -Th可查看详细挂载信息(挂载信息可查看VG以及LV信息)。
执行以上命令,即可完成LVM分区/dev/vgusr/lvusr01的永久挂载。
3. LVM扩容
3.1 LVM扩容步骤
检查逻辑卷(LV)所在卷组中是否有足够的未分配空间;
如果有未分配空间,可以使用这些空间扩展逻辑卷;
如果没有,给系统添加新的磁盘或者LUN;
将物理磁盘转换为物理卷(PV);
扩展卷组;
增加逻辑卷大小;
扩大文件系统;
检查扩展的文件系统大小。
3.2 添加磁盘添加至VG
此处新增磁盘/dev/sdc,执行步骤如下所示:
# 查看新增磁盘信息
sudo fdisk -l | grep -i /dev/sd
# 将新增磁盘/dev/sdc创建为PV
sudo pvcreate /dev/sdc
# 查看PV创建情况
sudo pvdisplay /dev/sdc
# 查看当前的VG信息(选择需要扩容的VG)
sudo vgs
# 执行对vgusr的扩容操作(添加新创建的PV)
sudo vgextend vgusr /dev/sdc
# 查看扩容后的vgusr信息
sudo vgdisplay vgusr
具体执行信息详见下图:
3.3 扩展逻辑卷
现在给/data/usr01文件夹进行扩容操作(创建过程详见上文),执行步骤如下所示:
# 查看当前分区情况
sudo lvs
# 执行扩容操作(添加10G空间)
sudo lvextend -L +10G /dev/mapper/vgusr-lvusr01
# 补充:
# 1.使用百分比进行扩展:lvextend -l +40%FREE /dev/mapper/vgusr-lvusr01
# 2.基于PE大小进行扩展:lvextend -l +2560 /dev/mapper/vgusr-lvusr01
# 调整文件系统的大小以扩展逻辑卷内的空间(针对ext4文件系统)
resize2fs /dev/mapper/vgusr-lvusr01
# 补充:针对xfs文件系统,可使用:xfs_growfs /dev/mapper/vgusr-lvusr01
# 查看扩容后的文件系统信息
sudo df -hT /data/usr01/
具体执行信息详见下图: