逻辑卷实战案例-逻辑卷应用

发布时间 2023-10-21 14:49:57作者: HR·

案例需求:

创建一个2.5G大小的逻辑卷

案例思路:

  1. 物理的设备
  2. 将物理设备做成物理卷
  3. 创建卷组并将物理卷加入其中
  4. 创建逻辑卷
  5. 格式化逻辑卷
  6. 挂载使用

案例实现

步骤:
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

案例思路

  1. 查看/lv1目录所对应的逻辑卷是哪一个 /dev/mapper/vg1-lv1
  2. 查看当前逻辑卷所在的卷组vg1剩余空间是否足够
  3. 如果vg1空间不够,得先扩容卷组,再扩容逻辑卷
  4. 如果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