LVM : 縮減文件系統的容量


有擴展就有縮減,我們在前文《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 容量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM