1. 程式人生 > >linux基礎學習【12】

linux基礎學習【12】

pre 分享 提示符 image gic 新建 遷移數據 數據 row

lvm (logical volume manager)

邏輯卷管理

pv    ##物理卷         被lv命令處理過的物理分區
vg    ##物理卷組    被組裝到一起的物理卷
pe    ##物理擴展      lvm設備的最小單元,lvm時pe的整數倍
lvm ##邏輯卷       直接使用的設備,可以增大縮減並保持原有數據不變

lvm建立

建立分區並指定標簽為8e
pvcreate /dev/vdb1               ##建立物理卷
vgcreate /vg0 /dev/vdb1     ##將物理卷歸入卷組
lvcreate -L 20M -n lv0 vg0  ##從vg0卷組中抽出20M劃為邏輯卷lv0
mkfs.xfs /dev/vg0/lv0           ##搭建文件系統
mount /dev/vg0/lv0 /mnt     ##掛載
df -h /mnt                               ##查看掛載
parted -l                                   ##查看未掛載的文件系統

查看未使用的磁盤

技術分享圖片


新建100M大小的分區

技術分享圖片


修改分區id為8e(Linux LVM)

技術分享圖片


pvcreate /dev/vdb1               ##建立物理卷
vgcreate /vg0 /dev/vdb1     ##將物理卷歸入卷組
lvcreate -L 40M -n lv0 vg0  ##從vg0卷組中抽出20M劃為邏輯卷lv0

技術分享圖片


格式化為xfs文件系統

技術分享圖片


掛載

技術分享圖片


監控此時的pv/vg/lv信息

技術分享圖片


lvm拉伸(擴容)

lvm支持熱拉伸
當vg中的剩余容量充足時
lvextend -L 80M /dev/vg0/lv0    ##當cg容量足夠,擴展lv0到80M
xfs_growfs /dev/vg0/lv0     ##擴展文件系統

擴展lv0到80M

技術分享圖片


當vg中剩余容量不足時
再次建立分區並指定標簽8e
pvcreate /dev/vdb2      ##建立新的物理卷
vgextend vg0 /dev/vdb2      ##將物理卷歸入卷組
lvextend -L 200M /dev/vg0/lv0   ##擴展lv0到200M
xfs_growfs /dev/vg0/lv0     ##擴展文件系統

建立新的物理卷

技術分享圖片


歸入卷組vg0

技術分享圖片


擴展邏輯卷lv0到300M

技術分享圖片


擴展文件系統

技術分享圖片


針對ext文件系統的設備的拉伸和縮減

umount /mnt         ##卸載,ext不支持熱縮減
mkfs.ext4 /dev/vg0/lv0      ##格式化lv0為ext4文件系統
mount /dev/vg0/lv0 /mnt     ##掛載

格式化為ext4並掛載

技術分享圖片


拉伸

lvextend -L 400M /dev/vg0/lv0   ##擴展邏輯卷lv0到400M
resize2fs /dev/vg0/lv0                ##擴展ext4文件系統

擴展到400M

技術分享圖片


擴展ext4文件系統

技術分享圖片


縮減

umount /dev/vg0/lv0                   ##卸載
e2fsck -f /dev/vg0/lv0                  ##強制檢查文件系統
resize2fs /dev/vg0/lv0 100M        ##縮減文件系統到100M
lvreduce -L 100M /dev/vg0/lv0   ##縮減邏輯卷到100M
mount /dev/cg0/lv0 /mnt         ##掛載

卸載並檢查(不支持熱縮減)

技術分享圖片


縮減文件系統

技術分享圖片


縮減邏輯卷

技術分享圖片


縮減物理卷組

vgreduce vg0 /dev/vdb2      ##從vg0中取出vdb2
vgextend vg0 /dev/vdb2      ##將vdb2添加入vg0
註意已被占用的磁盤無法去除,縮減前需要遷移數據並解除占用

技術分享圖片


數據遷移

pvmove /dev/vdb1 /dev/vdb2  ##將vdb1中數據遷移到vdb2中
vgreduce vg0 /dev/vdb1      ##從vg0中取出vdb1
pvremove /dev/vdb1      ##從物理卷中刪除vdb1

將vdb1中數據遷移到vdb2中,註意此時不要打斷,等待100%後,命令提示符自動出現,否則有可能會損壞雙方文件導致不可用

技術分享圖片


從vg0中取出vdb1

技術分享圖片


從pv中刪除vdb1

技術分享圖片


創建lvm快照

lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0/lv0-backup /mnt
如果寫入數據大於40M,會損壞設備
會自動卸載掉lv0-backup,再次掛載會報錯
刪除重建後看到原設備

創建並掛載

技術分享圖片


寫入60M的數據(快照只有40M),自動損壞解除掛載

技術分享圖片


再次掛載報錯

技術分享圖片


刪除重建後恢復

技術分享圖片

linux基礎學習【12】