2团
Published on 2023-06-07 / 14 Visits
0
0

LVM操作指南

1. LVM释义

LVM标识逻辑卷管理(Logical Volume management),主要用于服务器管理Linux系统上的磁盘。其优势在于不停机扩容(注意,不推荐缩容,虽然ext4支持缩容操作)。本文基于Ubuntu 22.04进行演示,分配了100G大小的原始磁盘,基于此磁盘创建LVM分区。

# 使用如下命令识别原始磁盘,输出如下图所示
sudo fdisk -l | grep -i /dev/sd

lvm-fdisk-1.PNG

使用如上命令,可以发现磁盘上已有/dev/sda盘。

使用pvs命令,可发现已基于/dev/sda3创建PV(Physical Volume),并将/dev/sda3添加到ubuntu-vg(VG: Volume Group,卷组)下,当前PV空间约98G,未被使用的空间大约为49G。磁盘被分配PV以及VG的原因是在Ubuntu的安装步骤中,文件系统操作这一步会提示创建LVM分区,具体如下图所示:

ubuntu-fileststem-setup.PNG

2. 初始化新增物理磁盘

2.1 添加磁盘

给当前主机分配空间约25G的磁盘,重新查看磁盘信息,可发现新增/dev/sdb磁盘(空间25G)。

lvm-fdisk-2.PNG

2.2 创建PV

基于/dev/sdb磁盘创建PV,具体如下所示:

pv-create-1.PNG

执行pvcreate创建PV成功后,使用pvs查看PV状态(亦可使用sudo pvdisplay /dev/sdb查看),可发现/dev/sdb尚未添加至VG。

2.3 创建VG

vg-create-1.PNG

执行vgcreate命令,成功将PV(/dev/sdb)添加至VG(vgusr)中,空间25G,Physical Extend(PE)大小为 4 MB。

2.4 创建LV

LV指逻辑卷(Logical Volume),现在使用lvcreate创建LV。

lv-create-1.PNG

此处,基于VG(vgusr)创建空间为10G,名称为lvusr01的逻辑卷。

lv-create-2.PNG

此处,使用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。

mkfs-ext4.PNG

如果需要使用格式化后的LVM分区,我们需要将其挂载至指定文件夹,此处我们创建文件夹/data/usr01执行挂载。

mount-lvm-1.PNG

此处,我们将/data/usr01文件夹挂载至lvm分区/dev/vgusr/lvusr01下,使用df -Th可查看详细挂载信息(挂载信息可查看VG以及LV信息)。

mount-lvm-2.PNG

执行以上命令,即可完成LVM分区/dev/vgusr/lvusr01的永久挂载。

3. LVM扩容

3.1 LVM扩容步骤

  1. 检查逻辑卷(LV)所在卷组中是否有足够的未分配空间;

  1. 如果有未分配空间,可以使用这些空间扩展逻辑卷;

  2. 如果没有,给系统添加新的磁盘或者LUN;

  3. 将物理磁盘转换为物理卷(PV);

  4. 扩展卷组;

  5. 增加逻辑卷大小;

  6. 扩大文件系统;

  7. 检查扩展的文件系统大小。

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

具体执行信息详见下图:

lvm-extend-1.PNG

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/

具体执行信息详见下图:

lvm-extend-2.PNG

4. 参考文章

  1. 如何在 Linux 中扩展/增加 LVM 大小(逻辑卷调整)

  2. How to Create LVM (Logical Volume) in Linux


Comment