Linux 之 邏輯卷管理(lvm)
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁碟分割槽進行管理的一種機制。LVM是在磁碟分割槽和檔案系統之間新增的一個邏輯層,來為檔案系統遮蔽下層磁碟分割槽佈局,提供一個抽象的儲存卷,在儲存捲上建立檔案系統。
通過LVM系統管理員可以輕鬆管理磁碟分割槽,如:將若干個磁碟分割槽連線為一個整塊的卷組 (volumegroup),形成一個儲存池。管理員可以在卷組上隨意建立邏輯卷組(logicalvolumes),並進一步在邏輯卷組上建立檔案系統。
以下介紹幾個與LVM相關的術語
物理卷(Physical Volume,PV):是LVM的基本儲存邏輯塊,但和基本的物理儲存介質(如分割槽、磁碟等)比較,卻包含有與LVM相關的管理引數。
卷組(Volume Group,VG):類似於非LVM系統中的物理磁碟,其由一個或多個物理卷PV組成。可以在卷組上建立一個或多個LV(邏輯卷)
邏輯卷(Logical Volume,LV):類似於非LVM系統中的磁碟分割槽,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立檔案系統(比如/home或者/usr等)。直接使用的裝置,可以增大縮減並保持原有資料不變。
物理塊(Physical Extent,PE):每一個物理卷PV被劃分為稱為PE(Physical Extents)的基本單元,pe是lvm裝置的最小儲存單元,lvm是pe的整數倍。
lvm的建立
實驗環境設定:
1)fdisk -l ###/檢視是vdb中是否存在之前的分割槽情況,如果有,fdisk /dev/vdb,刪除所有的分割槽
2)umount /mnt ###解除之前的掛載
3)vim /etc/fstab ###刪除之前在檔案中的操作
1. watch -n 1 'pvs;echo====;vgs;echo====;lvs;df -h /mnt'
監控結果如下:
2.建立分割槽並改變分割槽 id 為8e
3.命令建立邏輯卷
pvcreate /dev/vdb1 ##物理分割槽處理,初始化物理卷pv
vgcreate vg0 /dev/vdb1 ##建立物理卷組vg0
lvcreate -L 20M -n lv0 vg0 ##建立邏輯卷lv0,大小為20M
mkfs.xfs /dev/vg0/lv0 ##格式化邏輯卷lv0,使改邏輯卷可以使用
mount /dev/vg0/lv0 /mnt ##掛載
df -h /mnt ##顯示掛載點為/mnt的掛載資訊
可以看出邏輯卷lv0成功掛載了
監控結果:
lvm的拉伸
lvm支援熱拉伸
針對xfs檔案系統的拉伸
1.當vg中的剩餘容量足夠時
lvextend -L 400M /dev/vg0/lv0 ###將裝置拉伸至400M
xfs_growfs /dev/vg0/lv0 ###l拉伸檔案系統,不用指定拉伸的大小,系統自動補
2.當vg中的剩餘容量不足時,再次建立分割槽並修改標籤為8e
fdisk /dev/vdb ###再次建立分割槽vdb2並修改標籤為8e
pvcreate /dev/vdb2 ###建立物理卷
vgextend vg0 /dev/vdb2 ###將物理卷vdb2放在物理卷組vg0裡
lvextend -L 500M /dev/vg0/lv0 ###擴容邏輯卷lv0到500M,但是拉大的一部分沒有被格式化
xfs_growfs /dev/vg0/lv0 ###直接拉伸擴容部分的邏輯卷,mkfs.xfs /dev/vg0/lv0是將整個邏輯捲進行拉伸
監控結果:
針對ext檔案系統的拉伸和縮減
umount /mnt ##因為之前做xfs實驗,所以先解掛
mkfs.ext4 /dev/vg0/lv0 ##改變格式為ext4
mount /dev/vg0/lv0 /mnt ##掛載
mount ##檢視當前掛載情況,檢查是不是成功修改為ext4格式
拉伸
lvextend -L 550M /dev/vg0/lv0 ##擴容邏輯卷lv0到550M
resize2fs /dev/vg0/lv0 ## 類似於xfs格式的xfs_growfs命令,修改檔案系統的大小
縮減
umount /dev/vg0/lv0 ###不支援熱縮減,需要先解掛
e2fsck -f /dev/vg0/lv0 ###掃描
resize2fs /dev/vg0/lv0/ 400M ###縮減檔案系統至400M
lvreduce -L 400M /dev/vg0/lv0 ###縮減裝置
mount /dev/vg0/lv0 /mnt ###掛載
vg的縮減
vgreduce vg0 /dev/vdb2
監控結果:
vg的擴充套件
vgextend vg0 /dev/vdb2
監控結果:
資料的遷移(移除含有資料的裝置)
直接將物理卷/dev/vdb1移出卷組vg0會報如下錯誤:
當兩個裝置都被佔用時,需先將一個裝置中的檔案移動到另一個檔案
然後將物理卷/dev/vdb1移出卷組vg0
最後移除物理卷。
lvm快照
快照的作用主要用於資料備份與恢復,快照的損壞不影響其他裝置的正常工作。
lvcreate -L 10M -n lv0-backup -s /dev/vg0/lv0 ###建立名為lv0-backup的快照
mount /dev/vg0/lv0-backup /mnt ###掛載
dd if=/dev/zero of=/mnt/file bs=1M count=50 ###擷取的資料大於10M,會損壞裝置
裝置自動解除掛載
再次掛載會報錯
重新生成
lvremove /dev/vg0/lv0-backup
llvcreate -L 10M -n lv0-backup -s /dev/vg0/lv0
還原:
umount /dev/vg0/lv0-backup ##快照解掛
lvremove /dev/vg0/lv0-backup ##移除快照
umount /mnt ### lv0解掛
lvremove /dev/vg0/lv0 ##移除lv0
vgremove vg0 ##移除vg0
pvremove /dev/vdb1 ##移除裝置
監控結果: