LVM实践全纪录

马哥Linux运维

共 12928字,需浏览 26分钟

 ·

3天前

要求创建一个5G的逻辑卷

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

1.准备好物理设备,sdb、sdc硬盘

[root@uos01 ~]# lsblk /dev/sd[b,c]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk

2.创建物理卷

[root@uos01 ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.

查看物理卷

[root@uos01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 uos lvm2 a-- <23.50g 0
/dev/sdb lvm2 --- 10.00g 10.00g
/dev/sdc lvm2 --- 10.00g 10.00g

查看详细信息

[root@uos01 ~]# pvdisplay /dev/sdb
"/dev/sdb" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ujZ7N1-pZ2p-e6UK-k9vL-XspG-Gw0H-kA7Tmp
[root@uos01 ~]# pvdisplay /dev/sdc
"/dev/sdc" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID RJridM-pc1m-OCG2-c5Vu-a2RH-NfdU-vQCI8k

3.创建卷组myvg01,加入物理卷PV

[root@uos01 ~]# vgcreate myvg01 /dev/sdb /dev/sdc
Volume group "myvg01" successfully created

查看卷组信息

[root@uos01 ~]# vgs myvg01 
VG #PV #LV #SN Attr VSize VFree
myvg01 2 0 0 wz--n- 19.99g 19.99g
[root@uos01 ~]# vgdisplay myvg01 
--- Volume group ---
VG Name myvg01
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 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID S4cFUe-cvEZ-RQZa-cSCS-PzA9-3ARB-gXZwoG

4.创建逻辑卷

参数解释

-n:指定逻辑卷的名字
-L:指定逻辑卷的大小
-l:指定逻辑卷的大小
举例:
-l 100 100个PE,每个PE大小默认4M,故逻辑卷大小为400M
-l 50%free 卷组剩余空间的50%
-L 5G 创建大小为5GB的逻辑卷

创建逻辑卷mylv01

[root@uos01 ~]# lvcreate -n mylv01 -L 5G myvg01 
Logical volume "mylv01" created.

查看逻辑卷信息

[root@uos01 ~]# lvs /dev/myvg01/mylv01 
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv01 myvg01 -wi-a----- 5.00g
[root@uos01 ~]# lvdisplay /dev/myvg01/mylv01 
--- Logical volume ---
LV Path /dev/myvg01/mylv01
LV Name mylv01
VG Name myvg01
LV UUID 8923dl-0uCR-Fox1-aJKY-c3IQ-d62K-EKjR7J
LV Write Access read/write
LV Creation host, time uos01, 2024-08-28 16:09:14 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3

可以在系统中的两个地方,找到lv分区信息

[root@uos01 ~]# ll /dev/mapper/myvg01-mylv01 
lrwxrwxrwx 1 root root 7 8月 28 16:09 /dev/mapper/myvg01-mylv01 -> ../dm-3
[root@uos01 ~]# ll /dev/myvg01/mylv01
lrwxrwxrwx 1 root root 7 8月 28 16:09 /dev/myvg01/mylv01 -> ../dm-3

查看卷组还剩余多少空间

[root@uos01 ~]# vgs myvg01 
VG #PV #LV #SN Attr VSize VFree
myvg01 2 1 0 wz--n- 19.99g 14.99g

再创建一个200M的逻辑卷mylv02,每个LE默认4M,用-l 100 参数指定100个LE,因此是400M

[root@uos01 ~]# lvcreate -n mylv02 -l 100 myvg01
Logical volume "mylv02" created.

查看mylv02大小

[root@uos01 ~]# lvs /dev/myvg01/mylv02
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv02 myvg01 -wi-a----- 400.00m

查看myvg01剩余大小

[root@uos01 ~]# vgs myvg01 
VG #PV #LV #SN Attr VSize VFree
myvg01 2 2 0 wz--n- 19.99g 14.60g

创建卷组剩余空间的50%,逻辑卷mylv03

[root@uos01 ~]# lvcreate -n mylv03 -l 50%free myvg01
Logical volume "mylv03" created.

查看mylv03

[root@uos01 ~]# lvs /dev/myvg01/mylv03
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv03 myvg01 -wi-a----- 7.30g

查看此时vg剩余

[root@uos01 ~]# vgs myvg01 
VG #PV #LV #SN Attr VSize VFree
myvg01 2 3 0 wz--n- 19.99g 7.30g

5.格式化逻辑卷mylv01

[root@uos01 ~]# mkfs.xfs /dev/myvg01/mylv01
meta-data=/dev/myvg01/mylv01 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
Discarding blocks...Done.

6.挂载逻辑卷使用

[root@uos01 ~]# mkdir /funlyp-lv01
[root@uos01 ~]# mount /dev/myvg01/mylv01 /funlyp-lv01/
[root@uos01 ~]# df -Th | grep funlyp
/dev/mapper/myvg01-mylv01 xfs 5.0G 68M 5.0G 2% /funlyp-lv01
[root@uos01 ~]#

写入数据

[root@uos01 ~]# touch /funlyp-lv01/lvm实践操作.log
[root@uos01 ~]# ls /funlyp-lv01/
lvm实践操作.log


lvm动态扩容

任务:你现在觉得这个分区太小了,不够用,如何扩容?

思路:
1.查看该挂载点,对应的逻辑卷是哪一个/dev/mapper/vg01-lv01
2.查看该逻辑卷所在的卷组,是否还有剩余空间。
3.如果vg01空间不够,就得先扩容卷组,再扩容逻辑卷
4.如果vg01空间足够,直接扩容逻辑卷

直接逻辑卷扩容

1.查看挂载点,属于哪个逻辑卷

[root@uos01 ~]# df -Th | grep funlyp
/dev/mapper/myvg01-mylv01 xfs 5.0G 68M 5.0G 2% /funlyp-lv01

2.查看逻辑卷大小

[root@uos01 ~]# lvs /dev/mapper/myvg01-mylv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv01 myvg01 -wi-ao---- 5.00g

3.查看卷组空间

[root@uos01 ~]# vgs myvg01 
VG #PV #LV #SN Attr VSize VFree
myvg01 2 3 0 wz--n- 19.99g 7.30g

4.卷组空间还剩7.3G,直接扩容逻辑卷

直接扩容加5G

[root@uos01 ~]# lvextend -L +5G /dev/myvg01/mylv01
Size of logical volume myvg01/mylv01 changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents).
Logical volume myvg01/mylv01 successfully resized.

查看扩容结果

[root@uos01 ~]# df -Th | grep funlyp
/dev/mapper/myvg01-mylv01 xfs 5.0G 68M 5.0G 2% /funlyp-lv01

发现容量未更新
同步文件系统,使其容量更新,只针对xfs

[root@uos01 ~]# xfs_growfs /dev/myvg01/mylv01
meta-data=/dev/mapper/myvg01-mylv01 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
data blocks changed from 1310720 to 2621440

再次查看扩容结果

[root@uos01 ~]# df -Th | grep funlyp
/dev/mapper/myvg01-mylv01 xfs 10G 104M 9.9G 2% /funlyp-lv01

xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!!!!)
硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。
可以选择用ext4文件系统,支持扩缩容


还是觉得逻辑卷容量太小了,想要扩容到20G

先扩容卷组,再扩容逻辑卷

1.查看逻辑卷大小和卷组空间

[root@uos01 ~]# lvs /dev/mapper/myvg01-mylv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv01 myvg01 -wi-ao---- 10.00g
[root@uos01 ~]# vgs myvg01
VG #PV #LV #SN Attr VSize VFree
myvg01 2 3 0 wz--n- 19.99g 2.30g


2.卷组空间已经不够支持逻辑卷扩容到20G了,得先扩容卷组

添加新硬盘sde

[root@uos01 ~]# lsblk /dev/sde
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sde 8:64 0 10G 0 disk

再把sde制作成物理卷pv

[root@uos01 ~]# pvcreate /dev/sde
WARNING: dos signature detected on /dev/sde at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sde.
Physical volume "/dev/sde" successfully created.
[root@uos01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 uos lvm2 a-- <23.50g 0
/dev/sdb myvg01 lvm2 a-- <10.00g 0
/dev/sdc myvg01 lvm2 a-- <10.00g 2.30g
/dev/sde lvm2 --- 10.00g 10.00g

添加物理卷到卷组(卷组扩容)

[root@uos01 ~]# vgextend myvg01 /dev/sde
Volume group "myvg01" successfully extended
[root@uos01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 uos lvm2 a-- <23.50g 0
/dev/sdb myvg01 lvm2 a-- <10.00g 0
/dev/sdc myvg01 lvm2 a-- <10.00g 2.30g
/dev/sde myvg01 lvm2 a-- <10.00g <10.00g
注意:
正常情况下,应该先将/dev/sde物理设备创建为物理卷再加入到卷组中;如果直接加入卷组,系统会自动帮你将其做成物理卷。

查看扩容后的卷组

[root@uos01 ~]# vgs myvg01 
VG #PV #LV #SN Attr VSize VFree
myvg01 3 3 0 wz--n- <29.99g <12.30g

3.扩容逻辑卷mylv01到20G

[root@uos01 ~]# lvextend -L +10G /dev/myvg01/mylv01
Size of logical volume myvg01/mylv01 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume myvg01/mylv01 successfully resized.

查看扩容后的逻辑卷

[root@uos01 ~]# lvs /dev/myvg01/mylv01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv01 myvg01 -wi-ao---- 20.00g

查看挂载目录的容量,发现还未更新

[root@uos01 ~]# df -h | grep funlyp
/dev/mapper/myvg01-mylv01 10G 104M 9.9G 2% /funlyp-lv01

手动更新

[root@uos01 ~]# xfs_growfs /dev/myvg01/mylv01
meta-data=/dev/mapper/myvg01-mylv01 isize=512 agcount=8, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2621440, 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
data blocks changed from 2621440 to 5242880

再次查看已更新

[root@uos01 ~]# 
[root@uos01 ~]# df -h | grep funlyp
/dev/mapper/myvg01-mylv01 20G 176M 20G 1% /funlyp-lv01



删除lvm

当你需要删除逻辑卷,怎么操作

思路:
需要提前把数据备份好,然后依次删除
* 逻辑卷
* 卷组
* 物理卷

1.取消挂载

root@uos01 ~]# umount /funlyp-lv01 

2.删除逻辑卷mylv01

[root@uos01 ~]# lvremove /dev/myvg01/mylv0
/dev/myvg01/mylv01 /dev/myvg01/mylv02 /dev/myvg01/mylv03
[root@uos01 ~]# lvremove /dev/myvg01/mylv01
Do you really want to remove active logical volume myvg01/mylv01? [y/n]: y
Logical volume "mylv01" successfully removed.
[root@uos01 ~]#
[root@uos01 ~]# lvs /dev/myvg01
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv02 myvg01 -wi-a----- 400.00m
mylv03 myvg01 -wi-a----- 7.30g

已成功删除逻辑卷mylv01,此时查看还有卷组myvg01上还存在两个逻辑卷。

3.删除卷组myvg01

直接删除卷组,会提示先删除卷组下的逻辑卷,然后再删除卷组。

[root@uos01 ~]# vgremove myvg01 
Do you really want to remove volume group "myvg01" containing 2 logical volumes? [y/n]: y
Do you really want to remove active logical volume myvg01/mylv02? [y/n]: y
Logical volume "mylv02" successfully removed.
Do you really want to remove active logical volume myvg01/mylv03? [y/n]: y
Logical volume "mylv03" successfully removed.
Volume group "myvg01" successfully removed
[root@uos01 ~]#

4.删除物理卷

查看本机上的物理卷pv

[root@uos01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 uos lvm2 a-- <23.50g 0
/dev/sdb lvm2 --- 10.00g 10.00g
/dev/sdc lvm2 --- 10.00g 10.00g
/dev/sde lvm2 --- 10.00g 10.00g

删除物理卷/dev/sdb /dev/sdc /dev/sde

[root@uos01 ~]# pvremove /dev/sdb /dev/sdc /dev/sde
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sde" successfully wiped.

查看lvm相关信息,是否还有残留

[root@uos01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root uos -wi-ao---- <17.50g
swap uos -wi-ao---- 4.00g
var uos -wi-ao---- 2.00g
[root@uos01 ~]#
[root@uos01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 uos lvm2 a-- <23.50g 0
[root@uos01 ~]#
[root@uos01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
uos 1 3 0 wz--n- <23.50g 0
[root@uos01 ~]#

链接:https://www.cnblogs.com/funlyp/p/18385199

(版权归原作者所有,侵删)

浏览 91
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报