LVM邏輯卷管理是Linux對磁盤分區進行管理的一種機制,普通磁盤無法實現動態擴展,而LVM就是將物理磁盤融合成一個巨大的存儲池,用戶可以按需求動態的調整磁盤的容量,使磁盤容量更好的被利用。
- LVM的組成部分:
- 物理卷(PV): 由磁盤或分區轉化而成的物理分區.
- 卷組(VG): 將多個物理卷組合在一起組成了卷組,組成同一個卷組的可以是同一個硬盤的不同分區,也可以是不同硬盤上的不同分區,我們通常把卷組理解為一塊硬盤.
- 邏輯卷(LV): 把卷組理解為硬盤的話,那么我們的邏輯卷則是硬盤上的分區,邏輯卷可以進行格式化,存儲數據.
- 物理擴展(PE): PE卷組的最小存儲單元,PE所在的位置是VG卷組,即硬盤上,那么我們可以把PE理解為硬盤上的扇區,默認是4MB,可自由配置.
創建/移除物理卷(PV): 使用系統中存在的/dev/sdb /dev/sdc
磁盤,并將兩個磁盤加入到PV物理卷組中.
[root@localhost ~]# ll /dev/sd[b-z]
brw-rw---- 1 root disk 8, 16 Sep 21 22:04 /dev/sdb
brw-rw---- 1 root disk 8, 32 Sep 21 22:04 /dev/sdc
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc # 此處拿2塊硬盤創建
[root@localhost ~]# pvremove /dev/sdc # 移除/dev/sdd磁盤
[root@localhost ~]# pvs #查詢創建好的硬盤
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <9.00g 0
/dev/sdb lvm2 --- 10.00g 10.00g
創建VG卷組: 創建VG卷組,VG卷組要在PV物理卷中選擇,創建命令如下.
vgcreate -s [指定PE大小] [VG卷組名] [分區路徑] [分區路徑][.....]
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <9.00g 0
/dev/sdb lvm2 --- 10.00g 10.00g
/dev/sdc lvm2 --- 10.00g 10.00g
[root@localhost ~]# vgcreate -s 4M my_vg /dev/sdb /dev/sdc #此處就是創建一個VG卷組
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <9.00g 0
my_vg 2 0 0 wz--n- 19.99g 19.99g #這就是VG卷組,名字是my_vg
添加新的PV到VG卷組: 給當前my_vg
卷組添加新的PV
,也就是擴展卷組
vgextend [卷組名] [物理卷分區]
[root@localhost ~]# vgextend my_vg /dev/sdd #添加一個PV到指定卷組
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <9.00g 0
/dev/sdb my_vg lvm2 a-- <10.00g <10.00g
/dev/sdc my_vg lvm2 a-- <10.00g <10.00g
/dev/sdd my_vg lvm2 a-- <10.00g <10.00g #已被劃分到my_vg卷組
移除單個PV: 在VG卷組里移除一個PV,將/dev/sdd
從my_vg
卷組里移除
vgreduce [卷組名] [物理卷分區]
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <9.00g 0
/dev/sdb my_vg lvm2 a-- <10.00g <10.00g
/dev/sdc my_vg lvm2 a-- <10.00g <10.00g
/dev/sdd my_vg lvm2 a-- <10.00g <10.00g
[root@localhost ~]# vgreduce my_vg /dev/sdd #將/dev/sdd從my_vg卷組里移除
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <9.00g 0
/dev/sdb my_vg lvm2 a-- <10.00g <10.00g
/dev/sdc my_vg lvm2 a-- <10.00g <10.00g
/dev/sdd lvm2 --- 10.00g 10.00g
移除整個VG卷組: 將創建的my_vg
徹底移除,移除整個卷組
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <9.00g 0
my_vg 2 0 0 wz--n- 19.99g 19.99g
[root@localhost ~]# vgremove my_vg #移除整個卷組
Volume group "my_vg" successfully removed
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <9.00g 0
移除空閑VG卷組: 將卷組中空閑的VG從PV中移除,也就是如果該卷組空間為空,則移除掉.
vgreduce -a [卷組名]
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <9.00g 0
my_vg 3 0 0 wz--n- <29.99g <29.99g
[root@localhost ~]# vgreduce -a my_vg #只移除空卷組
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <9.00g 0
my_vg 1 0 0 wz--n- <10.00g <10.00g
創建LVM邏輯卷: 創建一個LVM邏輯卷名字是my_lv
并從my_vg
中劃分空間,劃分10G空間
lvcreate -L [指定大小] -n [LV名字] [VG卷組:從哪個卷組里劃分]
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <8.00g
swap centos -wi-ao---- 1.00g
[root@localhost ~]# lvcreate -L 10G -n my_lv my_vg #創建LVM邏輯卷
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <8.00g
swap centos -wi-ao---- 1.00g
my_lv my_vg -wi-a----- 10.00g
格式化并掛載LVM: 測試LVM是否正常工作,在創建好LVM以后需要手動格式化
[root@localhost ~]# mkdir /LVM #首先創建一個掛載點
[root@localhost ~]# mkfs.ext4 /dev/my_vg/my_lv #格式化LVM分區
[root@localhost ~]# mount /dev/my_vg/my_lv /LVM/ #掛載LVM
LV容量增加(擴容): 將LV的容量增加5G的空間,需要注意擴展要先擴展LVM,然后再擴展文件系統
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 8.0G 1.2G 6.9G 15% /
/dev/sda1 1014M 130M 885M 13% /boot
/dev/mapper/my_vg-my_lv 9.8G 37M 9.2G 1% /LVM ←此處是10G
[root@localhost ~]# lvextend -L +5G /dev/my_vg/my_lv #執行增加命令,從VG卷組劃分5G
[root@localhost ~]# resize2fs -f /dev/my_vg/my_lv #擴展文件系統
[root@localhost ~]# df -h #驗證擴展結果
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 8.0G 1.2G 6.9G 15% /
/dev/sda1 1014M 130M 885M 13% /boot
/dev/mapper/my_vg-my_lv 15G 41M 14G 1% /LVM ←此處已經從10G 增加到15G
LV容量縮小(收縮): 將LV的容量縮小5G的空間,縮小要先卸載分區并檢查分區,然后縮小文件系統,最后再縮小LVM
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 8.0G 1.2G 6.9G 15% /
/dev/sda1 1014M 130M 885M 13% /boot
/dev/mapper/my_vg-my_lv 15G 41M 14G 1% /LVM ←此處顯示15G空間
[root@localhost ~]# umount /dev/my_vg/my_lv #卸載LVM卷組
[root@localhost ~]# e2fsck -f /dev/my_vg/my_lv #檢查文件系統
[root@localhost ~]# resize2fs -f /dev/my_vg/my_lv 10G(減小后的大小) #縮小文件系統
[root@localhost ~]# lvreduce -L 10G /dev/my_vg/my_lv #縮小LVM
Do you really want to reduce my_vg/my_lv? [y/n]: y #輸入y
[root@localhost ~]# mount /dev/my_vg/my_lv /LVM/ #掛載
[root@localhost ~]# df -h #再次查看分區變化
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 8.0G 1.2G 6.9G 15% /
/dev/sda1 1014M 130M 885M 13% /boot
/dev/mapper/my_vg-my_lv 9.8G 37M 9.2G 1% /LVM
←此處已經從15G變成10G
對LVM拍攝快照: LVM支持快照的拍攝與恢復,快照拍攝可以使用lvcreate
命令.
lvcreate [-s 快照] -n [快照名] -L [快照大小] [指定分區]
[root@localhost LVM]# lvcreate -s -n mylv_back -L 200M /dev/my_vg/my_lv #給/LVM目錄拍攝快照
[root@localhost LVM]# lvs #查看快照
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <8.00g
swap centos -wi-ao---- 1.00g
my_lv my_vg owi-aos--- 10.00g
mylv_back my_vg swi-a-s--- 200.00m my_lv 0.01 ←此處就是快照
對LVM恢復快照: 回復LVM快照時,第一步需要創建一個掛載點,然后將mylv_back
掛載到掛載點上,從中拷貝出來即可.
[root@localhost LVM]# rm -fr * #模擬被刪除
[root@localhost LVM]# mkdir /back #創建掛載點
[root@localhost LVM]# mount /dev/my_vg/mylv_back /back/ #掛載備份文件
[root@localhost LVM]# cp -a /back/* ./ #復制備份文件
[root@localhost LVM]# ls
鏈接:https://www.cnblogs.com/LyShark/p/10167313.html
(版權歸原作者所有,侵刪)
文末福利
掃描下方二維碼,回復666添加助理,回復暗號“Linux命令”,100%能免費領取成功。
本文鏈接:http://www.thecarconnectin.com/46626.html
網友評論comments