前言
Logical Volume Manager (LVM) 提供了一種靈活叹阔、高效的方式來管理存儲(chǔ)資源师妙,使得存儲(chǔ)的擴(kuò)容诗祸、縮容和刪除變得更加簡單。緊接上篇文章LVM的創(chuàng)建突照,本文將詳細(xì)介紹如何使用LVM進(jìn)行這些操作帮非,以幫助企業(yè)根據(jù)業(yè)務(wù)需求動(dòng)態(tài)調(diào)整存儲(chǔ)容量,提高存儲(chǔ)資源的利用率。
一末盔、LV擴(kuò)容
1.1 查看當(dāng)前l(fā)v配置
[root@db1 ~]# lvs
? LV? ? VG? ? Attr? ? ? LSize? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert
? backup klas? -wi-a----- <31.81g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? root? klas? -wi-ao----? 65.14g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? swap? klas? -wi-ao----? 2.04g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? lv01? vg_01 -wi-ao----? 25.00g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
邏輯卷lv01使用的是邏輯卷組vg_01
1.2 查看邏輯卷組vg_01使用情況
[root@db1 ~]# vgs
? VG? ? #PV #LV #SN Attr? VSize? VFree
? klas? ? 1? 3? 0 wz--n- <99.00g? ? 0
? vg_01? 2? 1? 0 wz--n-? 39.99g 14.99g
vg_01剩余14.99GB
1.3 擴(kuò)容lv01?
1)lvextend擴(kuò)容
指定擴(kuò)容容量
lvextend -L +2G vg_01/lv01
? Size of logical volume vg_01/lv01 changed from 25.00 GiB (6400 extents) to 27.00 GiB (6912 extents).
? Logical volume vg_01/lv01 successfully resized.
查看擴(kuò)容情況
[root@db1 ~]# lvdisplay? /dev/vg_01/lv01
? --- Logical volume ---
? LV Path? ? ? ? ? ? ? ? /dev/vg_01/lv01
? LV Name? ? ? ? ? ? ? ? lv01
? VG Name? ? ? ? ? ? ? ? vg_01
? LV UUID? ? ? ? ? ? ? ? 4Z9OQ1-d73H-JTKd-HSHO-E4Zy-Pdi0-nSpQGS
? LV Write Access? ? ? ? read/write
? LV Creation host, time db1, 2024-07-02 05:26:25 +0800
? LV Status? ? ? ? ? ? ? available
? # open? ? ? ? ? ? ? ? 1
? LV Size? ? ? ? ? ? ? ? 27.00 GiB
? Current LE? ? ? ? ? ? 6912
? Segments? ? ? ? ? ? ? 2
? Allocation? ? ? ? ? ? inherit
? Read ahead sectors? ? auto
? - currently set to? ? 8192
? Block device? ? ? ? ? 253:3
2)指定增加的PE個(gè)數(shù)來對(duì)邏輯卷進(jìn)行擴(kuò)容
查看PE大小
[root@db1 ~]# vgdisplay? vg_01
? --- Volume group ---
? VG Name? ? ? ? ? ? ? vg_01
? System ID? ? ? ? ? ?
? Format? ? ? ? ? ? ? ? lvm2
? Metadata Areas? ? ? ? 2
? Metadata Sequence No? 3
? VG Access? ? ? ? ? ? read/write
? VG Status? ? ? ? ? ? resizable
? MAX LV? ? ? ? ? ? ? ? 0
? Cur LV? ? ? ? ? ? ? ? 1
? Open LV? ? ? ? ? ? ? 1
? Max PV? ? ? ? ? ? ? ? 0
? Cur PV? ? ? ? ? ? ? ? 2
? Act PV? ? ? ? ? ? ? ? 2
? VG Size? ? ? ? ? ? ? 39.99 GiB
? PE Size? ? ? ? ? ? ? 4.00 MiB? -->PE大小為4M
? Total PE? ? ? ? ? ? ? 10238
? Alloc PE / Size? ? ? 6912 / 27.00 GiB
? Free? PE / Size? ? ? 3326 / 12.99 GiB
? VG UUID? ? ? ? ? ? ? VkDVkl-gkSu-eJoF-qC8R-KQcZ-Ux2B-KsdHBG
擴(kuò)容2G
需要擴(kuò)容的PE數(shù)量:2048/4=512
lvextend -l +512 /dev/vg_01/lv01
查看擴(kuò)容情況
[root@db1 ~]# lvdisplay /dev/vg_01/lv01
? --- Logical volume ---
? LV Path? ? ? ? ? ? ? ? /dev/vg_01/lv01
? LV Name? ? ? ? ? ? ? ? lv01
? VG Name? ? ? ? ? ? ? ? vg_01
? LV UUID? ? ? ? ? ? ? ? 4Z9OQ1-d73H-JTKd-HSHO-E4Zy-Pdi0-nSpQGS
? LV Write Access? ? ? ? read/write
? LV Creation host, time db1, 2024-07-02 05:26:25 +0800
? LV Status? ? ? ? ? ? ? available
? # open? ? ? ? ? ? ? ? 1
? LV Size? ? ? ? ? ? ? ? 29.00 GiB? -->從27GB擴(kuò)容到29GB
? Current LE? ? ? ? ? ? 7424
? Segments? ? ? ? ? ? ? 2
? Allocation? ? ? ? ? ? inherit
? Read ahead sectors? ? auto
? - currently set to? ? 8192
? Block device? ? ? ? ? 253:3
3)將vg所有剩余空間進(jìn)行擴(kuò)容
擴(kuò)容vg所有容量
[root@db1 ~]# lvextend -l +100%FREE /dev/vg_01/lv01
? Size of logical volume vg_01/lv01 changed from 29.00 GiB (7424 extents) to 39.99 GiB (10238 extents).
? Logical volume vg_01/lv01 successfully resized.
查看擴(kuò)容情況
[root@db1 ~]#? lvdisplay? /dev/vg_01/lv01
? --- Logical volume ---
? LV Path? ? ? ? ? ? ? ? /dev/vg_01/lv01
? LV Name? ? ? ? ? ? ? ? lv01
? VG Name? ? ? ? ? ? ? ? vg_01
? LV UUID? ? ? ? ? ? ? ? 4Z9OQ1-d73H-JTKd-HSHO-E4Zy-Pdi0-nSpQGS
? LV Write Access? ? ? ? read/write
? LV Creation host, time db1, 2024-07-02 05:26:25 +0800
? LV Status? ? ? ? ? ? ? available
? # open? ? ? ? ? ? ? ? 1
? LV Size? ? ? ? ? ? ? ? 39.99 GiB? -->lv擁有VG所有的容量
? Current LE? ? ? ? ? ? 10238
? Segments? ? ? ? ? ? ? 2
? Allocation? ? ? ? ? ? inherit
? Read ahead sectors? ? auto
? - currently set to? ? 8192
? Block device? ? ? ? ? 253:3
1.4 擴(kuò)容vg
當(dāng)前所有的vg容量已經(jīng)全部分配完筑舅,此時(shí)lv需要擴(kuò)容,必須要先擴(kuò)容vg
[root@db1 ~]# vgs
? VG? ? #PV #LV #SN Attr? VSize? VFree
? klas? ? 1? 3? 0 wz--n- <99.00g? ? 0
? vg_01? 2? 1? 0 wz--n-? 39.99g? ? 0
1) 確認(rèn)新的磁盤
[root@db1 ~]# lsblk
NAME? ? ? ? ? ? MAJ:MIN RM? SIZE RO TYPE MOUNTPOINT
sda? ? ? ? ? ? ? 8:0? ? 0? 20G? 0 disk
└─vg_01-lv01? ? 253:3? ? 0? 40G? 0 lvm? /data
sdb? ? ? ? ? ? ? 8:16? 0? 20G? 0 disk
└─vg_01-lv01? ? 253:3? ? 0? 40G? 0 lvm? /data
sdc? ? ? ? ? ? ? 8:32? 0? 20G? 0 disk? ==》sdc是新添加的磁盤陨舱,大小為20g
sr0? ? ? ? ? ? ? 11:0? ? 1? ? 4G? 0 rom?
nvme0n1? ? ? ? 259:0? ? 0? 100G? 0 disk
├─nvme0n1p1? ? 259:1? ? 0? ? 1G? 0 part /boot
└─nvme0n1p2? ? 259:2? ? 0? 99G? 0 part
? ├─klas-root? 253:0? ? 0 65.1G? 0 lvm? /
? ├─klas-swap? 253:1? ? 0? ? 2G? 0 lvm? [SWAP]
? └─klas-backup 253:2? ? 0 31.8G? 0 lvm?
2) 創(chuàng)建pv
[root@db1 ~]# pvcreate /dev/sdc
? Physical volume "/dev/sdc" successfully created.
3) 添加到vg
[root@db1 ~]# vgextend vg_01 /dev/sdc
? Volume group "vg_01" successfully extended
4)分配空間到lv
確認(rèn)vg剩余空間
[root@db1 ~]# vgs
? VG? ? #PV #LV #SN Attr? VSize? VFree?
? klas? ? 1? 3? 0 wz--n- <99.00g? ? ? 0
? vg_01? 3? 1? 0 wz--n- <59.99g <20.00g
添加空間到lv
[root@db1 ~]# lvextend -L +2G vg_01/lv01
? Size of logical volume vg_01/lv01 changed from 39.99 GiB (10238 extents) to 41.99 GiB (10750 extents).
? Logical volume vg_01/lv01 successfully resized.
確認(rèn)擴(kuò)容成功
[root@db1 ~]# lvs
? LV? ? VG? ? Attr? ? ? LSize? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert
? backup klas? -wi-a----- <31.81g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? root? klas? -wi-ao----? 65.14g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? swap? klas? -wi-ao----? 2.04g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? lv01? vg_01 -wi-ao----? 41.99g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
二翠拣、LVM縮容
2.1 umount掛載點(diǎn)
--查看掛載點(diǎn)
mount -l
或
df -h
--卸載掛載點(diǎn)
umount /data
如果不卸載文件系統(tǒng),縮容會(huì)提示在線縮容不支持:
[root@db1 ~]# resize2fs /dev/vg_01/lv01 5G
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/vg_01/lv01 is mounted on /data; on-line resizing required
resize2fs: On-line shrinking not supported
2.2 查看邏輯卷lv01
[root@db1 ~]# lvs
? LV? ? VG? ? Attr? ? ? LSize? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert
? backup klas? -wi-a----- <31.81g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? root? klas? -wi-ao----? 65.14g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? swap? klas? -wi-ao----? 2.04g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? lv01? vg_01 -wi-a-----? 39.99g
2.3 縮容lv01
檢查邏輯卷
[root@db1 ~]# e2fsck -f /dev/vg_01/lv01
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
/lost+found not found.? Create<y>? yes
Pass 4: Checking reference counts
Pass 5: Checking group summary information
縮容lv
[root@db1 ~]# resize2fs /dev/vg_01/lv01 5G
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/vg_01/lv01 to 1310720 (4k) blocks.
The filesystem on /dev/vg_01/lv01 is now 1310720 (4k) blocks long.
[root@db1 ~]# lvs
? LV? ? VG? ? Attr? ? ? LSize? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert
? backup klas? -wi-a----- <31.81g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? root? klas? -wi-ao----? 65.14g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? swap? klas? -wi-ao----? 2.04g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? lv01? vg_01 -wi-a-----? 39.99g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
[root@db1 ~]#
[root@db1 ~]# lvreduce -L 5G /dev/vg_01/lv01 5G
? Command does not accept argument: 5G.
[root@db1 ~]# lvreduce -L 5G /dev/vg_01/lv01
? WARNING: Reducing active logical volume to 5.00 GiB.
? THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_01/lv01? [y/n]:
? WARNING: Invalid input ''.
Do you really want to reduce vg_01/lv01? [y/n]: y
? Size of logical volume vg_01/lv01 changed from 39.99 GiB (10238 extents) to 5.00 GiB (1280 extents).
? Logical volume vg_01/lv01 successfully resized.
確認(rèn)縮容成功
[root@db1 ~]# lvs
? LV? ? VG? ? Attr? ? ? LSize? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert
? backup klas? -wi-a----- <31.81g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? root? klas? -wi-ao----? 65.14g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? swap? klas? -wi-ao----? 2.04g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? lv01? vg_01 -wi-a-----? 5.00g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
[root@db1 ~]#
2.4 重新掛載
mount掛載
mount -a
或
mount /dev/vg_01/lv01 /data
檢查確認(rèn)掛載點(diǎn)
df -Th
三游盲、LVM刪除
3.1 卸載文件系統(tǒng)
umount /dev/data
3.2 刪除lv
[root@db1 ~]# lvremove /dev/vg_01/lv01
Do you really want to remove active logical volume vg_01/lv01? [y/n]: y
? Logical volume "lv01" successfully removed
3.3 刪除vg
[root@db1 ~]# vgremove vg_01
? Volume group "vg_01" successfully removed
3.4 刪除pv
[root@db1 ~]# pvremove /dev/sda /dev/sdb /dev/sdc
? Labels on physical volume "/dev/sda" successfully wiped.
? Labels on physical volume "/dev/sdb" successfully wiped.
? Labels on physical volume "/dev/sdc" successfully wiped.
或
[root@db1 ~]# pvremove /dev/sd{a,b,c}
四误墓、結(jié)語
LVM作為一項(xiàng)成熟且強(qiáng)大的存儲(chǔ)管理技術(shù),為企業(yè)和個(gè)人提供了靈活益缎、高效谜慌、可靠的存儲(chǔ)解決方案。通過本文的介紹莺奔,相信您已經(jīng)對(duì)LVM有了更深入的理解欣范,并掌握了如何在實(shí)際環(huán)境中管理和優(yōu)化LVM。隨著技術(shù)的發(fā)展令哟,LVM將繼續(xù)發(fā)揮其在存儲(chǔ)領(lǐng)域的核心作用恼琼,幫助企業(yè)構(gòu)建更加穩(wěn)健、可擴(kuò)展的存儲(chǔ)基礎(chǔ)設(shè)施励饵,以應(yīng)對(duì)未來的挑戰(zhàn)驳癌。