有擴充就有縮減,我們在前文《LVM : 擴充檔案系統的容量》中介紹了通過 LVM 擴充檔案系統的方法,本文我們接着前文的 demo 介紹通過 LVM 縮減檔案系統的方法。說明:本文的示範環境為 ubuntu 16.04。
前文中我們把檔案系統 /dev/mapper/nickvg-nicklv00 的容量從 15G 擴充到了 65G(顯示為 64G):
接下來我們再把它重新縮減為 15G,并移除新添加的磁盤 /dev/sde。解除安裝檔案系統
與擴充檔案系統的容量不同,如果是縮減檔案系統的容量,需要解除安裝檔案系統後再進行縮減操作。
如果沒有解除安裝檔案系統,會有上圖中的提示。解除安裝檔案系統本身非常簡單,使用 umount 指令就可以搞定,我們要解除安裝的檔案系統的挂載點為 /home/doc:
$ sudo umount /home/doc
使用 resize2fs 指令縮減檔案系統
解除安裝完檔案系統就可以使用 resize2fs 指令來縮減其容量了,我們的目标是把它縮回 15G:
$ sudo resize2fs /dev/nickvg/nicklv00 15G
提示先運作 e2fsck -f /dev/nickvg/nicklv00 指令。e2fsck 指令用于檢查 ext2/ext3/ext4 檔案系統的完整性,通過适當的選項可以嘗試修複出現的錯誤。e2fsck 執行後的傳回值及代表意義如下:
- 0 沒有任何錯誤發生。
- 1 檔案系統發生錯誤,并且已經修正。
- 2 檔案系統發生錯誤,并且已經修正。
- 4 檔案系統發生錯誤,但沒有修正。
- 8 運作時發生錯誤。
- 16 使用的文法發生錯誤。
- 128 共享的函數庫發生錯誤。
$ sudo e2fsck -f /dev/nickvg/nicklv00
-f 選項表示即使檔案系統沒有錯誤迹象,仍強制檢查正确性。上圖中的 0 表示我們的檔案系統沒有被檢測出錯誤,我們重新執行 resize2fs 指令,這次就可以成功執行了:
使用 lvreduce 指令縮減 LV
在縮減 LV 前先檢視一下其基本資訊:
$ sudo lvs nickvg/nicklv00
上圖顯示 LV nickvg/nicklv00 的容量為 65G,而我們縮減後的檔案系統隻有 15G,是以我們是可以縮減這個 LV 的,我們直接把它縮減到 15G:
$ sudo lvreduce -L 15G nickvg/nicklv00 或 $ sudo lvreduce -L 15G /dev/nickvg/nicklv00
檢視下結果:
$ sudo lvdisplay nickvg/nicklv00
LV 的容量變成了 15G,Current LE 的數量為 480。
從 VG 中移除 PV
檢查名稱為 nickvg 的 VG 的資訊:
$ sudo vgdisplay nickvg
結果顯示 VG 的總容量為 69.94G,已經配置設定了 15G,還有 54.94G 空閑。接下來通過 pvs 指令來檢視 PV 與 VG 的關系:
$ sudo pvs
名稱為 nickvg 的 VG 由 /dev/sdd1 和 /dev/sde1 兩個 PV 組成,其中 /dev/sde1 完全空閑,我們可以把這個 PV 從 VG 中移除掉。vgreduce 指令可以從 VG 中移除 PV:
$ sudo vgreduce nickvg /dev/sde1
從 VG 中移除 PV /dev/sde1 後再次檢視 pv 的狀态:
此時 /dev/sde1 已經不屬于任何 VG。
移除 PV
所謂的移除 PV,就是使用 pvremove 指令移除 PV 裝置上的标簽,讓 LVM 無法識别該裝置是一個 PV。下面我們就來移除 PV /dev/sde1:
$ sudo pvremove /dev/sde1
在 pvremove 指令移除 /dev/sde1 後,pvs 指令輸出的結果中就找不到名稱為 /dev/sde1 的 PV 了。
删除磁盤分區并移除硬碟
檢視裝置檔案:
$ ls /dev/sde*
其中的 /dev/sde1 就是磁盤分區的裝置檔案,讓我們先用 gdisk 指令檢視這個分區的資訊:
$ sudo gdisk /dev/sde
然後再删除它:
再去檢視 sde 開頭的裝置檔案,發現 /dev/sde1 已經不見了:
最後關機移除硬碟就可以了。
如果沒有設定開機自動挂載檔案系統,還需要在開機後重新手動挂載檔案系統 /dev/mapper/nickvg-nicklv00 到 /home/doc 目錄。
總結
與擴充檔案系統容量不同,在 Ubuntu 16.04 中使用 resize2fs 指令縮減檔案系統的容量需要事先解除安裝檔案系統。其實實際使用中縮減檔案系統的時候并不多,大家往往甯願犧牲一些存儲空間也不願看到折騰丢資料的情況。
參考:
縮小 LVM 空間
鳥哥的私房菜:縮小 LV 容量
作者:sparkdev
出處:http://www.cnblogs.com/sparkdev/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。