管理逻辑卷
工作原理
产生原因
- 硬盘分区或部署为RAID后在修改分区大小时就非常不容易,此时用户随着实际的需求变化而动态调整硬盘分区大小时受到限制,无灵活性
- LVM(Logical Volume Manager )允许用户对硬盘资源进行动态调整
总结:就是为了更好的扩容
LVM基本概念
-
PE(physical extent)物理区域:物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小默认为4MB。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致
-
物理卷(physical volume):简称PV,物理卷可以是整个硬盘、硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
-
卷组**(Volume Group)**:简称VG,可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称
可以自定义
-
逻辑卷(logical volume):简称LV,相当于物理分区。逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展或缩小空间。系统中的多个逻辑卷,可以属于同一个卷组,也可以属于不同的多个卷组
部署逻辑卷
常用的LVM部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
示例
- 例1:恢复快照,在虚拟机中添加3块新硬盘,2块硬盘创建物理卷及卷组,划分出150MB空间的逻辑卷并格式化挂载使用
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 8.4G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 400M 0 part /boot
└─nvme0n1p2 259:2 0 19.6G 0 part
├─rhel-root 253:0 0 15.6G 0 lvm /
└─rhel-swap 253:1 0 4G 0 lvm [SWAP]
[root@server ~]# pvcreate /dev/sda /dev/sdb
Physical volume "/dev/sda" successfully created.
Physical volume "/dev/sdb" successfully created.
[root@server ~]# vgcreate /dev/VG1 /dev/sda /dev/sdb
Volume group "VG1" successfully created
[root@server ~]# vgdisplay /dev/VG1
--- Volume group ---
VG Name VG1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID pZb1wT-cgox-wnx9-EuZy-4IIZ-MvzJ-OsM9fH
[root@server ~]# lvcreate -n lv1 -L 150M VG1
Rounding up size to full physical extent 152.00 MiB
Logical volume "lv1" created.
[root@server ~]# lvdisplay /dev/VG1/lv1
--- Logical volume ---
LV Path /dev/VG1/lv1
LV Name lv1
VG Name VG1
LV UUID QnqBhq-LEAM-n2NZ-gkXr-qu4s-6HL8-deMQGd
LV Write Access read/write
LV Creation host, time server, 2024-04-17 15:08:26 +0800
LV Status available
# open 0
LV Size 152.00 MiB
Current LE 38
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
[root@server ~]# mkfs.xfs /dev/VG1/lv1
[root@server ~]# mkdir /LVM1
[root@server ~]# mount /dev/VG1/lv1 /LVM1/
[root@server ~]# vim /etc/fstab
[root@server ~]# mount -a
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
└─VG1-lv1 253:2 0 152M 0 lvm /LVM1
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 8.4G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 400M 0 part /boot
└─nvme0n1p2 259:2 0 19.6G 0 part
├─rhel-root 253:0 0 15.6G 0 lvm /
└─rhel-swap 253:1 0 4G 0 lvm [SWAP]
小知识点
-
# 注意: -l :表示以PE物理卷基本存储单位4MB为单位划分,给出 4MB的倍数 -L :直接给出容量,如150MB,注意实际容量趋近于150MB
-
# 注意:使用 -L +100M增加了100M,如果增加到400M,使用-L 400M
-
# 注意:此时文件系统没有扩容 [root@server ~]# df -h | grep lv1 /dev/mapper/VG1-lv1 147M 8.9M 138M 7% /LVM1 # 使用xfs_growfs文件系统扩容 [root@server ~]# xfs_growfs /dev/VG1/lv1 data blocks changed from 38912 to 153600 [root@server ~]# df -h | grep lv1 /dev/mapper/VG1-lv1 595M 13M 582M 3% /LVM1