逻辑卷管理(LVM)
逻辑卷
1.整合分散空间(整合未使用的磁盘空间,可以是一个磁盘的空间也可以是不同磁盘的空间,可以是一整块儿磁盘,也可以是磁盘的分区;但是不能把分区的剩余空间拿来使用)
2.空间可以扩展(不会影响原来的数据内容,不会影响读入和使用)
LVM工作方式
在“分区--->格式化”中间增加的一个逻辑层
—— 零散空间存储(PV 物理卷)----整合的虚拟磁盘(VG 卷组)----虚拟的分区(LV 逻辑卷)
将众多的PV(物理卷)组成VG(卷组),再将VG(卷组)中划分LV(逻辑卷)
LVM管理工具
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan扫描 | pvscan | vgscan | lvscan |
Create创建 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | / | vgextend | lvextend |
LVM快速部署及使用
基本思路
—准备至少一个空闲分区(/dev/sdb1)
—创建卷组:vgcreate 卷组名 空闲分区...
—创建逻辑卷:lvcreate -L 大小 -n 名称 卷组名
一、制作逻辑卷
1.创建物理卷
[root@njw ~]# pvs //扫描查看有没有物理卷(等用于命令pvscan),没有输出结果就是没有
[root@njw ~]# pvcreate /dev/sdb1 /dev/sdb2
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
[root@njw ~]# pvs //扫面查看物理卷创建成功
//也可以省略第一步创建物理卷,直接创建卷组
2.创建卷组
—命令格式:vgcreate 卷组名 空闲分区路径
[root@njw ~]# vgs //扫描查看有没有卷组(等用于命令vgscan),没有输出结果就是没有
[root@njw ~]# vgcreate systemvg /dev/sdb[1-2] #没有物理卷时,会将/dev/sdb[1-2]自动转化成物理卷,在组成卷组
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Volume group "systemvg" successfully created
[root@njw ~]# vgs #查看卷组基本信息
VG #PV #LV #SN Attr VSize VFree
systemvg 2 0 0 wz--n- 7.99g 7.99g
[root@njw ~]# pvs #查看物理卷基本信息
PV VG Fmt Attr PSize PFree
/dev/sdb1 systemvg lvm2 a-- <4.00g <4.00g
/dev/sdb2 systemvg lvm2 a-- <4.00g <4.00g
3.创建逻辑卷
—命令格式:lvcreate -n 逻辑卷名 -L 大小 基于的卷组名
[root@njw ~]# lvcreate -n mylv -L 6G systemvg
Logical volume "mylv" created.
[root@njw ~]# lvs #查看逻辑卷的信息
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv systemvg -wi-a----- 6.00g
[root@njw ~]# vgs #查看卷组的信息
VG #PV #LV #SN Attr VSize VFree
systemvg 2 1 0 wz--n- 7.99g 1.99g
4.逻辑卷的使用
[root@njw ~]# ls /dev/systemvg/mylv #生成了一个快捷方式
[root@njw ~]# ls -l /dev/systemvg/mylv
[root@njw ~]# mkfs.xfs /dev/systemvg/mylv
[root@njw ~]# blkid /dev/systemvg/mylv #查看文件系统类型
/dev/systemvg/mylv: UUID="00a476d3-8670-4f71-adef-3fc3cf4392c9" BLOCK_SIZE="512" TYPE="xfs"
[root@njw ~]# vim /etc/fstab #设置开机自动挂载
/dev/systemvg/mylv /lv xfs defaults 0 0
[root@njw ~]# mkdir /lv #创建挂载点目录
[root@njw ~]# mount -a
[root@njw ~]# df -h
注:图中系统文件/dev/mapper/systemvg-mylv和集群共享存储多路径有关,也是一种快捷方式,和/dev/systemvg/mylv一样,都链接到/dm-0
二、逻辑卷的线上扩展
可以扩展正在使用的逻辑卷,无需卸载,不影响原来数据的读入和使用,可以在挂载的状态下进行扩展。
1.卷组有足够的剩余空间
1)扩展逻辑卷
[root@njw ~]# lvextend -L 7G /dev/systemvg/mylv #将逻辑卷空间大小扩展到7G
Size of logical volume systemvg/mylv changed from 6.00 GiB (1536 extents) to 7.00 GiB (1792 extents).
Logical volume systemvg/mylv successfully resized.
[root@njw ~]# lvs #查看逻辑卷空间的大小
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv systemvg -wi-ao---- 7.00g
2)扩展文件系统大小(刷新文件系统)
resize2fs:扩展ext4文件系统
xfs_growfs:扩展xfs文件系统
[root@njw ~]# df -h #图中6G大小为未扩展文件系统时的大小
[root@njw ~]# xfs_growfs /dev/systemvg/mylv
[root@njw ~]# df -h ##图中7G大小为扩展后文件系统时的大小
2.卷组没有足够剩余空间
1)扩展卷组空间
[root@njw ~]# vgextend systemvg /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
Volume group "systemvg" successfully extended
[root@njw ~]# vgs
VG #PV #LV #SN Attr VSize VFree
systemvg 3 1 0 wz--n- <11.99g <4.99g
[root@njw ~]# vgextend systemvg /dev/sdc
Physical volume "/dev/sdc" successfully created.
Volume group "systemvg" successfully extended
[root@njw ~]# vgs
VG #PV #LV #SN Attr VSize VFree
systemvg 4 1 0 wz--n- 21.98g 14.98g
2)扩展逻辑卷空间
[root@njw ~]# lvextend -L 18G /dev/systemvg/mylv
Size of logical volume systemvg/mylv changed from 7.00 GiB (1792 extents) to 18.00 GiB (4608 extents).
Logical volume systemvg/mylv successfully resized.
[root@njw ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv systemvg -wi-ao---- 18.00g
3)扩展文件系统大小(刷新文件系统)
[root@njw ~]# df -h
[root@njw ~]# xfs_growfs /dev/systemvg/mylv
[root@njw ~]# df -h
了解内容:逻辑卷也可以缩小
ext4文件系统支持缩减
xfs文件系统不支持缩减
卷组划分空间的单位:PE 默认1PE=4M
[root@njw ~]# vgdisplay systemvg #查看卷组的详细信息
例题:请划分一个大小为250M的逻辑卷lvredhat
修改PE的大小
[root@njw ~]# vgchange -s 1M systemvg #将PE大小修改为1M
Volume group "systemvg" successfully changed
[root@njw ~]# vgdisplay
[root@njw ~]# lvcreate -L 250M -n lvredhat systemvg
Logical volume "lvredhat" created.
[root@njw ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvredhat systemvg -wi-a----- 250.00m
mylv systemvg -wi-ao---- 18.00g
例题:请划分一个大小为800个PE组成的逻辑卷lvtest
[root@njw ~]# lvcreate -l 800 -n lvtest systemvg #注:选项[-l]指定PE的个数
Logical volume "lvtest" created.
[root@njw ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvredhat systemvg -wi-a----- 250.00m
lvtest systemvg -wi-a----- 800.00m
mylv systemvg -wi-ao---- 18.00g
逻辑卷的删除
顺序:先删逻辑卷,然后再删除卷组,最后删除物理卷
[root@njw ~]# lvremove /dev/systemvg/mylv
Logical volume systemvg/mylv contains a filesystem in use. #正在使用时无法删除
[root@njw ~]# umount /lv
[root@njw ~]# lvremove /dev/systemvg/mylv #删除逻辑卷mylv
Do you really want to remove active logical volume systemvg/mylv? [y/n]: y
Logical volume "mylv" successfully removed
[root@njw ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvredhat systemvg -wi-a----- 250.00m
lvtest systemvg -wi-a----- 800.00m
[root@njw ~]# vgremove systemvg #删除卷组
Do you really want to remove volume group "systemvg" containing 2 logical volumes? [y/n]: y
Do you really want to remove active logical volume systemvg/lvredhat? [y/n]: y
Logical volume "lvredhat" successfully removed
Do you really want to remove active logical volume systemvg/lvtest? [y/n]: y
Logical volume "lvtest" successfully removed
Volume group "systemvg" successfully removed
[root@njw ~]# vgs