LVM基本應用,擴展及縮減實現
LVM是使用純軟件的方式來組織一個或多個底層硬件設備為一個抽象的邏輯設備來使用的這一解決方案。它用到了內核中的dm模塊:
dm: device mapper,將一個或多個底層設備組織成一個邏輯設備的模塊
如上圖所示:底層PV(物理卷可能是硬盤設備,分區或RAID等),一個或多個PV組織成一個VG(邏輯卷),卷組是不能直接格式化使用的,所以在VG之上,還需要創建LV進行格式化使用。VG在邏輯層面上將每一個PV提供的空間劃分成多個PE(physcal Extent,默認4M)來使用, LV根據VG提供的PE數量動態的擴展或縮減大小,VG的空間也可以隨著PV的增減進行動態的擴展或縮減。
創建LV的相關命令:
PV管理工具:
pvs: 簡要pv信息顯示
pvdisplay: 顯示pv的詳細信息
pvcreate /dev/DEVICE: 創建pv
pvremove /dev/PV_NAME:移除PV
VG管理工具:
vgs: 簡要顯示vg信息
vgdisplay:顯示vg的詳細信息
vgcreate [-s PE_SIZE[kKmMgGtTpPeE]] VG_NAME /dev/DEVICE : 創建vg
vgextend VG_NAME /dev/DEVICEE: vg擴展
vgreduce VG_NAME /dev/DEVICE: 縮減vg
需要先做pvmove
vgremove /dev/VG_NAME:vg移除
LV管理工具:
lvs: 簡要顯示lv信息
lvdisplay:詳細顯示lv信息
lvcreate -L #[mMgGtT] -n LV_NAME VG_NAME : 創建lv
lvremove /dev/VG_NAME/LV_NAME: 移除lv
擴展邏輯卷步驟:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME: 擴展物理邊界
resize2fs /dev/VG_NAME/LV_NAME (EXT系列的文件格式):修改邏輯邊界
縮減邏輯卷步驟:
umount /dev/VG_NAME/LV_NAME: 先卸載LV
e2fsck -f /dev/VG_NAME/LV_NAME: 強制檢測和修復文件系統
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:縮減邏輯邊界
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:縮減物理邊界
mount: 重新掛載lv
LV另一個功能:snapshot
快照就是某一時刻立即創建一個對原卷文件元數據的監視器,當原卷上文件元數據要變化的時候,先把原文件復制一份到快照卷上,而沒有變化的就指向原卷上的文件數據。
快照的相關命令:
lvcreate -L #[mMgGtT] -p r -s -n SNAPSHOT_LV_NAME ORIGINAL_NAME: 創建一個只讀的快照
練習1: 創建一個至少有兩個pv組成的大小為4G的名為testvg的VG,要求PE大小為16MB,而後在卷組中創建大小為
3G的邏輯卷testlv,掛載至/users目錄
1. 創建至少兩個分區,大小各位2G: /dev/sda3,/dev/sda5,dev/sda6,調整分區id為8e
2. 創建PV: pvcreate /dev/sda{3,5}
3.創建vg: vgcreate -s 16M myvg /dev/sda{3,5}
4.創建testlv: lvcreate -L 3G -n testlv myvg
4.格式化: mke2fs -t ext4 -b 1024 -L MYLV -m 3 /dev/myvg/mylv
5. 掛載到/users: mkdir /users, mount /dev/myvg/testlv /users
練習2:新建用戶archlinux,要求其家目錄為/users/archlinux,而後su切換至archlinux用戶,
復制、etc/pam.d目錄至自己的家目錄
1. useradd -d /users/archlinux archlinux
2. su - archlinux
3. su root(以root用戶身份復制文件)cp -rf -a /etc/pam.d /users/archlinux
練習3:擴展testlv至5G,要求archlinux用戶的文件不能丟失
1.再創建一個2G的PV: pvcreate /dev/sda6
2. vgextend myvg /dev/sda6
3.lvextend -L 5G /dev/myvg/testlv
4.resize2fs /dev/myvg/testlv
練習4:收縮testlv至3G,要求archlinux用戶的文件不能丟失
1. umount /dev/myvg/testlv
2. e2fsck -f /dev/myvg/testlv
3.resize2fs /dev/myvg/testlv 3G
4. lvreduce 3G /dev/myvg/testlv
練習5:對testlv創建快照,並嘗試基於快照備份數據,驗證快照的功能
lvcreate -s -p r - L 500M -n mysnap /dev/myvg/testlv
LVM基本應用,擴展及縮減實現