LVM学习记录


以下内容主要来自于系统运维|Lnux LVM简明教程

简介

逻辑卷管理LVM是用来管理磁盘的一个工具。传统分区使用固定大小分区,重新调整大小十分麻烦,而LVM就是解决这个问题的。

LVM使用分层结构,如下图所示。

lvm的结构

这其中就涉及到我们后面需要操作的三个核心组件,物理卷,卷组,逻辑卷。

首先,实际的物理磁盘及其划分的分区被成为物理卷(PV),一个或多个物理卷可以用来创建卷组(VG)。基于卷组可以创建逻辑卷(LV)。在一个卷组中可以创建多个逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

LVM的基本操作

准备磁盘分区

通过使用fdisk,创建磁盘分区。我们需要创建3个1G分区,注意,并不要求分区的大小一致。同样,分区需要使用‘8e’类型来使他们可用于LVM。

image-20230228203832204

重复上面的操作来创建其他两个分区。分区创建完成后,我们应该有类似如下的输出:

image-20230228203852946

其中/dev/sdb1, /dev/sdb2等就是我们所说的磁盘分区。

准备物理卷(PV)

通过pvcreate可以在磁盘分区上创建物理卷。

pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3

使用pvdisplay命令可以检查查看当前机器上的物理卷情况。

image-20230228200547018在我自己的主机上的显示情况如下。

image-20230228195319297

使用pvremove可以删除物理卷

pvremove /dev/sdb1

准备卷组(VG)

使用vgcreate进行卷组的创建。

下列命令用来创建名为’volume-group1’的卷组,使用/dev/sdb1, /dev/sdb2 和 /dev/sdb3创建。

vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3

使用vgdisplay来查看主机上的卷组

image-20230228200533379

在我自己的主机上如下所示。

image-20230228195636340

从众我们可以看到卷组的使用量/总量。物理卷给卷组提供空间,只要这个卷组中还有可用空间,我们就可以随意创建逻辑卷。

vgs命令也可以查看卷组的信息,但是比较简略。

image-20230228202204131

使用vgremove删除卷组。

vgremove volume-group1

创建逻辑卷(LV)

使用lvcreate进行裸机卷的创建。下面是创建一个名为1v1大小为100MB的逻辑卷。

lvcreate -L 100M -n 1v1 volume-group1

逻辑卷可以使用lvdisplay命令查看。

image-20230228200516138

我自己的机器上显示效果如下。

image-20230228200100937

我们可以格式化和挂载逻辑卷。

# mkfs.ext4 /dev/volume-group1/lv1
# mkdir /lvm-mount
# mount /dev/volume-group1/lv1 /lvm-mount/ 

使用lvremove可以删除逻辑卷。

# umount /lvm-mount/
# lvremove /dev/volume-group1/lv1 

拓展一个LVM卷

逻辑卷的大小是可以调整的。在调整逻辑卷大小之后,也要对文件系统调整大小进行匹配。这个额外的步骤各不相同,取决于创建文件系统的类型。

首先需要卸载掉1v1卷。

umount /lvm-mount/

然后设置卷的大小为200M

lvresize -L 200M /dev/volume-group1/1v1

也可以用lvextend命令来进行了扩容

lvextend -l +100%FREE /dev/VolGroup00/lv_root

将当前卷组中所有的空闲空间都拓展到lv_root这个逻辑卷中。

接下来检查磁盘错误

e2fsck -f /dev/volume-group1/1v1

运行一下命令拓展文件系统

resize2fs /dev/volume-group1/1v1

然后检查一下lv的状态来验证。

image-20230228201156682

缩减一个LVM卷

和上面差不多的步骤。需要注意的是减少后逻辑卷的大小值如果小于存储数据的大小,存储在后面的数据会丢失。

umount /dev/volume-group1/lv1 # 卸载掉卷。
e2fsck -f /dev/volume-group1/lv1  # 检测磁盘错误。
resize2fs /dev/volume-group1/lv1 100M # 缩小文件系统,更新ext4信息。
lvresize -L 100M /dev/volume-group1/lv1 #减少逻辑卷大小

最后验证调整后的逻辑卷大小。

image-20230228201506275

拓展一个卷组

将一个物理卷添加到卷组。主要用于将一个新挂载的磁盘加入到LVM中。

检查现在的卷组状态。

image-20230228201607136

创建一个2GB分区sdc1,类型为LVM(8e)

image-20230228201643623

再创建物理卷并拓展卷组。

pvcreate /dev/sdc1
vgextend volume-group1 /dev/sdc1

使用vgdisplay来验证。

image-20230228201755935

只要是8e类型的磁盘分区都可以用来拓展卷组。

lvm用法实践

centos中将home分区合并到/分区

  1. 备份home分区的文件并卸载home分区

    tar cvf /tmp/home.tar /home
    umount /home
  1. 取消home分区的开机挂载,把/etc/fstab里面的/dev/mapper/centos-home这一行注释掉。

  2. 删除与home分区有关的进程

    fuser -m -v -i -k /home 
  1. 删除/home所在的lv

    lvremove /dev/mapper/centos-home
  1. 拓展/root所在的lv,将剩下全部可用大小都分配给root

    lvextend -l +100%FREE /dev/mapper/centos-root
    # 下面的命令应该用哪一个?
    xfs_growfs /dev/mapper/centos-root 
    resize2fs /dev/mapper/centos-root 
  1. 把原来备份的home目录中的东西放到/home文件夹中。

评论
评论
 上一篇
git的一些学习记录 git的一些学习记录
Git 操作 git远程与本地的操作 git重新设置远程仓库地址 git remote rm origin git remote add origin 你的新远程仓库地址 git删除远程分支 git push origin --dele
2023-02-20 Zhang Rui
下一篇 
adb使用学习 adb使用学习
无线连接在开发者选项里打开无线调试,点击使用配对码配对设备获取ip端口号和配对码。 控制台里运行 adb pair 192.168.2.37:42551常用命令查看文件 adb shell ls / 电脑发文件到手机 adb push
2022-12-24 Zhang Rui
  目录