逻辑卷实战案例-逻辑卷应用
案例需求:
创建一个2.5G大小的逻辑卷
案例思路:
- 物理的设备
- 将物理设备做成物理卷
- 创建卷组并将物理卷加入其中
- 创建逻辑卷
- 格式化逻辑卷
- 挂载使用
案例实现
步骤:
1. 物理设备
[root@zutuanxue ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part /disk1
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 2G 0 part
├─sdb4 8:20 0 2G 0 part
└─sdb5 8:21 0 2G 0 part
2. 创建物理卷
[root@zutuanxue ~]# pvcreate /dev/sdb{1,2}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
查看物理卷:
[root@zutuanxue ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 2.00g 2.00g
/dev/sdb2 lvm2 --- 2.00g 2.00g
[root@zutuanxue ~]# pvscan
PV /dev/sda2 VG cl lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb1 lvm2 [2.00 GiB]
PV /dev/sdb2 lvm2 [2.00 GiB]
Total: 3 [<23.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 2 [4.00 GiB]
[root@zutuanxue ~]# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1 #物理卷名称
VG Name #卷组名称
PV Size 2.00 GiB #大小
Allocatable NO #是否已分配出去
PE Size 0 #PE大小
Total PE 0 #PE总数
Free PE 0 #空闲PE
Allocated PE 0 #可分配PE
PV UUID 3M4...lT #UUID
3. 创建卷组并将物理卷加入其中
[root@zutuanxue ~]# vgcreate vg1 /dev/sdb{1,2}
Volume group "vg1" successfully created
查看卷组信息:
[root@zutuanxue ~]# vgs vg1
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 3.99g 3.99g
[root@zutuanxue ~]# vgscan #扫描系统中有哪些卷组
Reading all physical volumes. This may take a while...
Found volume group "vg1" using metadata type lvm2
Found volume group "cl" using metadata type lvm2
[root@zutuanxue ~]# vgdisplay 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 3.99 GiB #卷组大小
PE Size 4.00 MiB #PE大小
Total PE 1022 #PE数量
Alloc PE / Size 0/0 #已分配的PE/容量
Free PE / Size 1022/3.99 GiB #可分配的PE/容量
VG UUID CQ6p...K9I
4. 创建逻辑卷
[root@zutuanxue ~]# lvcreate -n lv1 -L 2.5G vg1
Logical volume "lv1" created.
在操作系统层面映射两个地方:
[root@zutuanxue ~]# ll /dev/mapper/vg1-lv1
lrwxrwxrwx 1 root root 7 12月 10 05:47 /dev/mapper/vg1-lv1 -> ../dm-2
[root@zutuanxue ~]# ll /dev/vg1/lv1
lrwxrwxrwx 1 root root 7 12月 10 05:47 /dev/vg1/lv1 -> ../dm-2
[root@zutuanxue ~]# ll /dev/dm-2
brw-rw---- 1 root disk 253, 2 12月 10 05:47 /dev/dm-2
lvcreate参数
-n:指定逻辑卷的名字
-L:指定逻辑卷的大小
-l:指定逻辑卷的大小
举例:
-l 100 100个PE,每个PE大小默认4M,故逻辑卷大小为400M
-l 50%free 卷组剩余空间的50%
[root@zutuanxue ~]# vgs vg1
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz--n- 3.99g 1.49g
创建大小为200M的逻辑卷lv02;每个PE为4M,-l 50指定50个PE,大小为200M
[root@zutuanxue ~]# lvcreate -n lv2 -l 50 vg1
Logical volume "lv2" created.
[root@zutuanxue ~]# vgs vg1
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 3.99g <1.30g
[root@manage01 ~]# lvs /dev/vg01/lv02
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv02 vg01 -wi-a----- 200.00m
创建大小为剩余卷组vg01空间的50%的逻辑卷lv03
[root@zutuanxue ~]# lvcreate -n lv3 -l 50%free vg1
Logical volume "lv3" created.
[root@zutuanxue ~]# vgs vg1
VG #PV #LV #SN Attr VSize VFree
vg1 2 3 0 wz--n- 3.99g 664.00m
查看逻辑卷的信息:
[root@zutuanxue ~]# lvs /dev/vg1/lv1
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 2.50g
[root@zutuanxue ~]# lvs /dev/vg1/lv2
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv2 vg1 -wi-a----- 200.00m
[root@zutuanxue ~]# lvs /dev/vg1/lv3
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv3 vg1 -wi-a----- 664.00m
[root@zutuanxue ~]# lvdisplay /dev/vg1/lv1
--- Logical volume ---
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID jj9Sj1-zHuo-qpBZ-Dkk1-LVYB-HyUH-LQ6edW
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-12-10 05:46:59 -0500
LV Status available
# open 0
LV Size 2.50 GiB
Current LE 640
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
5. 格式化逻辑卷
[root@zutuanxue ~]# mkfs.ext4 /dev/vg1/lv1
6. 挂载使用
1)创建一个空的挂载点
[root@zutuanxue /]# mkdir /lv1
2)挂载使用
[root@zutuanxue /]# mount /dev/vg1/lv1 /lv1/
案例需求
将/lv1目录动态扩容到3G
案例思路
- 查看/lv1目录所对应的逻辑卷是哪一个 /dev/mapper/vg1-lv1
- 查看当前逻辑卷所在的卷组vg1剩余空间是否足够
- 如果vg1空间不够,得先扩容卷组,再扩容逻辑卷
- 如果vg1空间足够,直接扩容逻辑卷
案例实现
步骤:
1. 查看/lv1目录属于哪个卷组
[root@zutuanxue /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 2.4G 7.5M 2.3G 1% /lv1
[root@zutuanxue /]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao---- <17.00g
swap cl -wi-ao---- 2.00g
lv1 vg1 -wi-ao---- 2.50g
lv2 vg1 -wi-a----- 200.00m
lv3 vg1 -wi-a----- 664.00m
2. 卷组的剩余空间
[root@zutuanxue /]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 2 0 wz--n- <19.00g 0
vg1 2 4 0 wz--n- 3.99g 664.00m
结果:当前卷组空间不足我扩容
3. 扩容逻辑卷所在的卷组
1)首先得有物理设备 /dev/sdb3
2) 将物理设备做成物理卷
[root@zutuanxue /]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@zutuanxue /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <19.00g 0
/dev/sdb1 vg1 lvm2 a-- <2.00g 0
/dev/sdb2 vg1 lvm2 a-- <2.00g 464.00m
/dev/sdb3 lvm2 --- 2.00g 2.00g
3)将物理卷加入到卷组中(卷组扩容)
[root@zutuanxue /]# vgextend vg1 /dev/sdb3
Volume group "vg1" successfully extended
[root@zutuanxue /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 cl lvm2 a-- <19.00g 0
/dev/sdb1 vg1 lvm2 a-- <2.00g 0
/dev/sdb2 vg1 lvm2 a-- <2.00g 464.00m
/dev/sdb3 vg1 lvm2 a-- <2.00g <2.00g
注意:
正常情况下,应该先将/dev/sdb3物理设备创建为物理卷再加入到卷组中;如果直接加入卷组,系统会自动帮你将其做成物理卷。
[root@zutuanxue /]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 2 0 wz--n- <19.00g 0
vg1 3 4 0 wz--n- <5.99g <2.45g
4. 扩容逻辑卷
[root@zutuanxue /]# lvextend -L 3G /dev/vg1/lv1
-L 3G最终的大小
或者
[root@zutuanxue /]# lvextend -L +1.5G /dev/vg1/lv1 -L +1.5G 扩容1.5G
5. 查看结果
[root@zutuanxue /]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao---- <17.00g
swap cl -wi-ao---- 2.00g
lv1 vg1 -wi-ao---- 3.00g 已经扩容到了3G
[root@zutuanxue /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 2.4G 7.5M 2.3G 1% /lv1
实际并没有改变
6. 同步文件系统
[root@zutuanxue /]# resize2fs /dev/vg1/lv1 #该命令适用于ext分区
[root@manage01 ~]# xfs_growfs /dev/vg1/lv1 #该命令适用于xfs分区
7. 再次查看验证
[root@zutuanxue /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 2.9G 7.5M 2.8G 1% /lv1
扩容成功
案例需求
将lv1逻辑卷由原来的3G缩小为2G
案例思路
1、卸载逻辑卷
2、扫描逻辑卷
3、裁剪率lv1文件系统
4、裁剪逻辑卷lv1
5、挂载使用
案例实现
ext分区逻辑卷裁剪
[root@zutuanxue /]# umount /lv1
[root@zutuanxue /]# e2fsck -f /dev/vg1/lv1 检验文件系统
[root@zutuanxue /]# resize2fs /dev/vg1/lv1 2G 裁剪文件系统到2G
[root@zutuanxue /]# lvreduce /dev/vg1/lv1 -L 2G 裁剪逻辑卷
[root@zutuanxue /]# mount /dev/vg1/lv1 /lv1/ 挂载使用
[root@zutuanxue /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 2.0G 9.0M 1.8G 1% /lv1
xfs分区逻辑卷裁剪
案例思路:
1、将lv2的文件系统格式化为xfs
2、将/dev/vg1/lv2挂载到/lv2
3、在/lv2中建立一个文件,写入内容
4、备份数据
5、卸载分区并裁剪逻辑卷
6、格式化裁剪后的逻辑卷
7、导入数据
1)备份数据命令
xfsdump
2)备份数据
[root@zutuanxue /]# xfsdump -f /root/lv2.img /lv2
#挂载点目录后面不要加"/"
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.8 (dump format 3.0) - type ^C for status and control
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> lv2
session label entered: "lv2"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of localhost.localdomain:/lv2
xfsdump: dump date: Tue Dec 10 06:33:44 2019
xfsdump: session id: 15936371-b967-4c2c-8995-49eb702792fe
xfsdump: session label: "lv2"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 20800 bytes
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> lv2
media label entered: "lv2"
--------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 21016 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 14 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /root/lv2.img OK (success)
xfsdump: Dump Status: SUCCESS
3)裁剪
[root@zutuanxue ~]# umount /lv2
[root@zutuanxue ~]# lvreduce /dev/vg1/lv2 -L 100M
WARNING: Reducing active logical volume to 2.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
Size of logical volume vg01/lv01 changed from 7.00 GiB (1792 extents) to 2.00 GiB (512 extents).
Logical volume vg01/lv01 successfully resized.
4)格式化
[root@zutuanxue ~]# mkfs.xfs -f /dev/vg1/lv2
[root@zutuanxue ~]# mount /dev/vg1/lv2 /lv2
5)恢复数据 -f source
[root@zutuanxue ~]# xfsrestore -f /root/lv2.img /lv2
.
.
.
xfsrestore: Restore Status: SUCCESS
root@zutuanxue ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv2 95M 6.0M 89M 7% /lv2
[root@zutuanxue ~]# cat /lv2/filea
hahaha