1. 程式人生 > >LVM邏輯卷詳解及建立

LVM邏輯卷詳解及建立

    


我們先來看一下這張圖片:

image.png

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檔案系統

    image.png

partprobe /dev/sdb:通知核心重新讀取磁碟

接下來我們建立一個PV

pvcreate /dev/sdb1

image.png

這裡我們可以使用pvdisplay檢視一下

image.png


接下我們建立一個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

image.png

如果我們想要縮減vg卷組,首先我們要將卷組中想要移除pv中的資料移到卷組中其它的pv上面,然後在縮減

pvmove /dev/sdb5

vgreduce  myvg  /dev/sdb5

image.png

現在我們來建立一個名稱為mylv的邏輯卷

lvcreate -L 2G -n mylv myvg

image.png

對邏輯捲進行格式化並掛載到/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

image.png

備註: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

image.png

這樣我們就完成了對邏輯卷的縮減


上述所有內容就是對邏輯卷管理的一些概述與操作。