天天看點

LVM學習之邏輯卷及卷組縮小空間

上一篇文章,我們學習了如何給lvm的邏輯卷及卷組擴容。這篇文章我們來學習,如何給lvm的邏輯卷及卷組縮小空間。

<b>注意邏輯卷的縮小一定要離線操作,不能是線上操作,否則會造成邏輯卷損壞,以緻造成資料的丢失。</b>

縮小邏輯卷一定要按照如下步驟進行:

1、解除安裝已經挂載的邏輯卷

2、縮小檔案系統,使用resize2fs指令

3、縮小邏輯卷

4、檢視縮小後的邏輯卷

5、挂載邏輯卷

先來檢視邏輯卷的空間大小,使用lvs或者lvdisplay指令,如下:

LVM學習之邏輯卷及卷組縮小空間

通過上圖我們可以看到,目前邏輯卷/dev/vg1/data的空間大小為800m,而且已經挂載到/testlvm目錄下,并且/testlvm目錄下已經有一個檔案test.txt。

先來解除安裝邏輯卷,如下:

umount /testlvm/

LVM學習之邏輯卷及卷組縮小空間

邏輯卷的挂載解除安裝完畢後,我們來縮小檔案系統使用resize2fs指令。我們現在要把邏輯卷/dev/vg1/data由原來的800m縮小為300m,指令如下:

resize2fs /dev/vg1/data 300m

LVM學習之邏輯卷及卷組縮小空間

有關resize2fs指令的使用,可以檢視resize2fs的幫助文檔,如下:

LVM學習之邏輯卷及卷組縮小空間

接着系統會提示先先運作e2fsck指令,該指令是用來檢查邏輯卷是否有問題的,參數-f是遇見錯誤直接修複不提示。如下:

e2fsck -f /dev/vg1/data

LVM學習之邏輯卷及卷組縮小空間

e2fsck運作完畢後,我們再來執行resize2fs /dev/vg1/data 300m,如下:

LVM學習之邏輯卷及卷組縮小空間

我們可以看到現在沒有報錯,現在檔案系統的大小已經壓縮為300m。

下面我們開始縮小邏輯卷lv,我們可以通過lvreduce指令來實作。如下:

lvreduce -l 300 /dev/vg1/data

LVM學習之邏輯卷及卷組縮小空間

有關lvreduce指令的使用,我們看幫助。如下:

LVM學習之邏輯卷及卷組縮小空間

邏輯卷空間縮小後,我們再次來使用lvs及lvdisplay指令進行檢視,如下:

LVM學習之邏輯卷及卷組縮小空間

通過上圖我們可以很明顯的看到邏輯卷/dev/vg1/data的空間已經縮小至300m。那麼我們現在挂載該邏輯卷到/testlvm目錄下并檢視該目錄的内容是否和邏輯卷分區縮小前的一樣,如下:

mount /dev/vg1/data /testlvm/

LVM學習之邏輯卷及卷組縮小空間

通過上圖,我們可以很明顯的看到/testlvm目錄的大小,已經縮小為300m。而且/testlvm目錄下的test.txt檔案還是存在的,說明我們已經成功的為邏輯卷縮小空間。

以上有關邏輯卷的空間縮小,下面我們再來介紹有關卷組的空間縮小。

其實卷組的空間縮小就是把已經加入卷組的實體卷删除,先來檢視卷組中目前有的實體卷,如下:

LVM學習之邏輯卷及卷組縮小空間

通過上圖,我們可以很明顯的看到目前系統中兩個實體卷/dev/sda5/、/dev/sda6,而且這兩個實體卷已經都加入到卷組vg1中。

這個我們是通過圖中标記出來的黃色部分知道的,同時我們也知道這兩個實體卷的大小都是1000m,卷組vg1的大小為2000m。

我們現在要把實體卷/dev/sda6删除,這個就相當于縮小了卷組vg1的大小。我們可以通過vgreduce指令來實作,如下:

vgreduce vg1 /dev/sda6

LVM學習之邏輯卷及卷組縮小空間

有關vgreduce的使用,可以檢視幫助文檔,如下:

LVM學習之邏輯卷及卷組縮小空間

現在我們再來檢視卷組vg1的大小,如下:

LVM學習之邏輯卷及卷組縮小空間

通過上圖,我們可以很明顯的看到卷組vg1現在的大小已經是1000m。而且實體卷/dev/sda6目前不屬于任何一個卷組。

<b>注意:卷組縮小空間,一定要要卷組的空閑空間大小大于删除的實體卷的空間大小。</b>

到此lvm邏輯卷及卷組的空間縮小到此結束,下篇文章我們将介紹有關如何删除邏輯卷及卷組。