? ??
我們先來看一下這張圖片:
PV: 底層的一個硬盤設備,可以是一個分區,也可能是一個RAID。我們可以把這個塊設備創建成一個物理卷格式,即一個PV。
VG: 將一個或多個PV提供的存儲空間在一個更低的單位上劃分成一個個獨立的存儲單元,并且把這些存儲單元合成一個較為高層的組件叫做卷組vg;
? ? ? ?其中vg可以包含多個物理卷。我們這里可以看到vg有點類似于擴展分區,這種格式的分區是沒有辦法創建文件系統的,必須要它劃分成邏輯分區。
LV: 在vg的基礎上再次創建LV的組件,LV才是真正意義上的邏輯卷。每一個LV邏輯卷都是一個獨立的文件系統,可以被格式化掛載使用,LV的大小可以是vg內的任意大小空間;
? ? ? ?lv可以支持動態擴展的,當存儲空間不夠時,可以再添加pe,當空間足夠時,可以刪除的多余的pe,并且這個過程是不損害lv當中原有的數據的,lv的大小可以動態擴展跟收縮。
PE: vg會在一個邏輯層次上將每一個pv所提供的物理空間劃分成固定大小的PE.(物理盤區),然后在vg上面創建lv,所為創建lv的過程就是指定一定數量的pe來組成邏輯存儲單元的過程。
pv管理工具:
? ? ? ? pvs:簡要顯示pv的信息
? ? ? ? pvdisplay:顯示pv的詳細信息
? ? ? ??pvcreate ?/dev/DEVICE:創建PV
vg管理工具:
? ? ? ? vgs:簡要顯示vg的信息
? ? ? ? vgdisplay:顯示vg的詳細信息
? ? ? ? vgcreate ?卷組名 ?/dev/DEVICE:創建vg
? ? ? ? vgextend ?VolumeGroupNam??PhysicalDevicePath:? 擴展vg
? ? ? ??vgreduce ?VolumeGroupNam??PhysicalDevicePath:? 縮減vg
? ? ? ? 備注:這里我們要注意在縮減前先做pvmove進行物理層次的縮減即PV的縮減
?lv管理工具:
? ? ? ?lvs:簡要顯示lv的信息
? ? ? ?lvdisplay:顯示lv的詳細信息,路徑為/dev/卷組名稱/卷組
? ? ? ?lvcreate -L ?[大小MGT] ?-n NAME VolumeGroup(vg名稱)
? ? ? ?lvcreate -L 128M??-n mylv myvg
? ? ? ?lvremove ?/dev/VG_NAME/LV_NAME:刪除邏輯卷
? ? ? 擴展邏輯卷:
? ? ? ?lvextend -L ?[+]MGT ?/dev/VG_NAME/VL_NAME
? ? ? ?resize2fs ? /dev/VG_NAME/LV_NAME 只適用于ext文件系統
? ? ? 縮減邏輯卷:(縮減后的空間一定要能容納現有所有的數據)
? ? ? ?umount ?/dev/VG_NAME/LV_NAME
? ? ? ?e2fsck -f /dev/VG_NAME/LV_NAME
? ? ? ?resize2fs /dev/VG_NAME/LV_NAME ? [MGT] 縮減文件系統
? ? ? ?lvreduce -L [-]MGT /dev/VG_NAME/LV_NAME 縮減邏輯卷
? ? ? ?mount ?/dev/VG_NAME/LV_NAME 掛載
接下來我們用一個示例來講解一下邏輯卷的創建與管理
首先我們新添加一塊磁盤/dev/sdb
然后創建三個5G的分區,磁盤格式設置為LVM格式,并為其創建ext4文件系統
????
partprobe /dev/sdb:通知內核重新讀取磁盤
接下來我們創建一個PV
pvcreate /dev/sdb1
這里我們可以使用pvdisplay查看一下
接下我們創建一個vg
vgcreate? myvg? /dev/sdb1
如果不制定大小的話,默認創建出來的vg卷中的PE大小為4M,想要為PE指定大小可以使用-s選項
vgcreate -s 10 myvg? /dev/sdb1
這樣創建出來的PE大小為10M?
注意:如果我們想要刪除次卷組可以使用命令vgremove
例如刪除剛剛創建的myvg卷組
vgremove? myvg
我們現在可以將第一個邏輯分區添加到剛剛創建好的myvg中
pvcreate /dev/sdb5
vgextend myvg? /dev/sdb5
如果我們想要縮減vg卷組,首先我們要將卷組中想要移除pv中的數據移到卷組中其它的pv上面,然后在縮減
pvmove /dev/sdb5
vgreduce? myvg? /dev/sdb5
現在我們來創建一個名稱為mylv的邏輯卷
lvcreate -L 2G -n mylv myvg
對邏輯卷進行格式化并掛載到/mnt/test目錄上
mke2fs? -t? ext4? /dev/myvg/mylv
mount /dev/myvg/mylv? ?/mnt/test
這時候這個邏輯卷分區就可以正常使用了,我們復制一個文件做一下測試
cp /etc/fstab? ?/mnt/test
擴展邏輯卷
lvextencet? -L 5G? /dev/myvg/mylv
并重新出創建文件系統
resize2fs? ?/dev/myvg/mylv
備注:resize2fs命令只適用于ext文件系統類型,如果是xfs,btrfs文件系統則需要使用別的命令
設置開機自動掛載
在/etc/fstab文件中添加
/dev/myvg/mylv? ?/mnt/test? ? ext4? defaults? ?0? 0??
縮減邏輯卷
先縮減文件系統到指定大小
第一步:先卸載文件系統
umount? /dev/myvg/mylv
第二步:e2fsck -f /dev/myvg/mylv做文件系統的強制檢測文件系統修復
e2fsck -f /dev/myvg/mylv
第三步:resize2fs? ?/dev/myvg/mylv? #[mg]
resize2fs? ?/dev/myvg/mylv 3G
lvreduce -L 3G? /dev/myvg/mylv
這樣我們就完成了對邏輯卷的縮減
上述所有內容就是對邏輯卷管理的一些概述與操作。
轉載于:https://blog.51cto.com/11970509/2316064