目录
1 什么是LVM
1.1 LVM的简介
LVM的全称是Logical Volume Manager,中文翻译是逻辑卷管理器。它是Linux下对磁盘分区的一种管理方式。它将几个物分区或磁盘通过软件组合成一块大磁盘(VG),让后将这块大磁盘划分为可使用的分区(LV),最后将这些分区挂载、使用。
1.2 LVM中的术语
1.2.1 物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
1.2.2 卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
1.2.3 逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
2 LVM的实现
2.1 创建分区并更改文件系统
[root@localhost ~]# fdisk -l /dev/sd[a,b]
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4196351 4194304 2G 83 Linux
/dev/sda2 4196352 10485759 6289408 3G 8e Linux LVM
Disk identifier: 0xf5bba6f7
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
/dev/sdb2 4196352 10485759 6289408 3G 8e Linux LVM
[root@localhost ~]#
2.2 将分区改为物理卷
将分区转变为物理卷
[root@localhost ~]# pvcreate /dev/sd{a,b}{1,2}
Physical volume "/dev/sda1" successfully created.
Physical volume "/dev/sda2" successfully created.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]#
查找系统中具有的PV磁盘
[root@localhost ~]# pvscan
PV /dev/nvme0n1p2 VG rl lvm2 [<19.00 GiB / 0 free]
PV /dev/sda1 lvm2 [2.00 GiB]
PV /dev/sda2 lvm2 [<3.00 GiB]
PV /dev/sdb1 lvm2 [2.00 GiB]
PV /dev/sdb2 lvm2 [<3.00 GiB]
PV /dev/sdc lvm2 [5.00 GiB]
Total: 6 [33.99 GiB] / in use: 1 [<19.00 GiB] / in no VG: 5 [<15.00 GiB]
[root@localhost ~]#
将PV属性删除
[root@localhost ~]# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
[root@localhost ~]#
2.3 创建卷组
创建VG
#创建一个名为vg1的卷组
[root@localhost ~]# vgcreate vg1 /dev/sda{1,2} /dev/sdb1
Volume group "vg1" successfully created
[root@localhost ~]#
查找系统中的VG
[root@localhost ~]# vgscan
Found volume group "rl" using metadata type lvm2
Found volume group "vg1" using metadata type lvm2
[root@localhost ~]#
在VG中增加PV
[root@localhost ~]# vgextend vg1 /dev/sdb2
Volume group "vg1" successfully extended
[root@localhost ~]#
在VG中删除PV
[root@localhost ~]# vgextend vg1 /dev/sdc
Volume group "vg1" successfully extended
[root@localhost ~]# vgreduce vg1 /dev/sdc
Removed "/dev/sdc" from volume group "vg1"
[root@localhost ~]#
删除VG
[root@localhost ~]# vgremove vg1
Volume group "vg1" successfully removed
[root@localhost ~]#
2.3 建立逻辑卷
建立LV
#在vg1中创建一个大小为3G,名为lv1的逻辑卷
[root@localhost ~]# lvcreate -L 3G -n lv1 vg1
Logical volume "lv1" created.
[root@localhost ~]#
#将vg1中剩余的空间全部用来创建一个名为lv2的逻辑卷
[root@localhost ~]# lvcreate -l 100%VG -n lv2 vg1
Reducing 100%VG to remaining free space 6.98 GiB in VG.
Logical volume "lv2" created.
[root@localhost ~]# lvscan
ACTIVE '/dev/vg1/lv1' [3.00 GiB] inherit
ACTIVE '/dev/vg1/lv2' [6.98 GiB] inherit
Found volume group "vg1" using metadata type lvm2
[root@localhost ~]# vgdisplay vg1
--- Volume group ---
......略......
VG Size 9.98 GiB
PE Size 4.00 MiB
Total PE 2556
Alloc PE / Size 2556 / 9.98 GiB
Free PE / Size 0 / 0
VG UUID SyogVT-qaL1-vP3B-QxHP-ypv2-kUzS-i4SzaQ
[root@localhost ~]#
查找系统中的LV
[root@localhost ~]# lvscan
ACTIVE '/dev/rl/swap' [2.00 GiB] inherit
ACTIVE '/dev/rl/root' [<17.00 GiB] inherit
ACTIVE '/dev/vg1/lv1' [3.00 GiB] inherit
ACTIVE '/dev/vg1/lv2' [6.98 GiB] inherit
[root@localhost ~]#
删除LV
[root@localhost ~]# lvremove /dev/vg1/lv{1,2}
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
Logical volume "lv1" successfully removed.
Do you really want to remove active logical volume vg1/lv2? [y/n]: y
Logical volume "lv2" successfully removed.
[root@localhost ~]#