LVM原理
PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
不同的物理卷可以构成卷组,逻辑卷则是对卷组进行详细的划分,一个卷组可划分为多个逻辑卷。
1.创建物理卷PV
[root@localhost ~]# pvcreate /dev/sda
Physical volume "/dev/sda" successfully created.
[root@localhost ~]# pvcreate /dev/nvme0n2
WARNING: dos signature detected on /dev/nvme0n2 at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/nvme0n2.
Physical volume "/dev/nvme0n2" successfully created.
[root@localhost ~]# pvs 查看物理卷信息
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <49.00g 0
/dev/nvme0n2 lvm2 --- 20.00g 20.00g
/dev/sda lvm2 --- 5.00g 5.00g
[root@localhost ~]# pvdisplay 查看更详细的物理卷信息
2.创建卷组VG
[root@localhost ~]# vgcreate vgname /dev/sda /dev/nvme0n2 //vgname表示所取得卷组名
Volume group "vgname" successfully created
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 1 2 0 wz--n- <49.00g 0
vgname 2 0 0 wz--n- 24.99g 24.99g
[root@localhost ~]# vgdisplay
3.创建逻辑卷LV(Logical Volumes)
-n表示逻辑卷取的名字 -L表示所分配的大小 vgname表示在vg为vgname上分配 //xfs不支持缩小
[root@localhost ~]# lvcreate -n lv1 -L 5G vgname
WARNING: LVM2_member signature detected on /dev/vgname/lv1 at offset 536. Wipe it? [y/n]: y
Wiping LVM2_member signature on /dev/vgname/lv1.
Logical volume "lv1" created.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- <45.06g
swap rhel -wi-ao---- <3.94g
lv1 vgname -wi-a----- 5.00g
查看LV信息
[root@localhost ~]# ll /dev/mapper/vgname-lv1
lrwxrwxrwx. 1 root root 7 Nov 23 06:51 /dev/mapper/vgname-lv1 -> ../dm-2
[root@localhost ~]# ll /dev/vgname/lv1
lrwxrwxrwx. 1 root root 7 Nov 23 06:51 /dev/vgname/lv1 -> ../dm-2
4.格式化逻辑卷lv1
[root@localhost ~]# mkfs.xfs /dev/mapper/vgname-lv1
meta-data=/dev/mapper/vgname-lv1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5.挂载
[root@localhost /]# mkdir haha
[root@localhost /]# mount /dev/mapper/vgname-lv1 /haha
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.9M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 46G 4.8G 41G 11% /
/dev/nvme0n1p1 1014M 240M 775M 24% /boot
tmpfs 371M 1.2M 370M 1% /run/user/42
tmpfs 371M 6.8M 365M 2% /run/user/0
/dev/sr0 8.9G 8.9G 0 100% /run/media/root/RHEL-8-3-0-BaseOS-x86_64
/dev/mapper/vgname-lv1 5.0G 68M 5.0G 2% /haha
删除lvm步骤
1.取消挂载
[root@localhost /]# umount /dev/mapper/vgname-lv1
2.删除LV
[root@localhost /]# lvremove /dev/vgname/lv1
Do you really want to remove active logical volume vgname/lv1? [y/n]: y
Logical volume "lv1" successfully removed
3.删除VG
[root@localhost /]# vgremove vgname
Volume group "vgname" successfully removed
4.删除PV
[root@localhost /]# pvremove /dev/sda
Labels on physical volume "/dev/sda" successfully wiped.
[root@localhost /]# pvremove /dev/nvme0n2
Labels on physical volume "/dev/nvme0n2" successfully wiped.
注意:lvm进行分区时 xfs文件不支持缩小