
我目前有以下分區:
ACTIVE '/dev/vg_server/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg_server/lv_home' [1.76 TiB] inherit
ACTIVE '/dev/vg_server/lv_swap' [5.86 GiB] inherit
我想減少lv_home
幾乎空的分區並lv_root
在接近滿時增加分區。我有完整備份,但想在實時伺服器上執行此操作,但我無法在該伺服器上使用即時 CD。
我想調整分割區大小並重新啟動,並讓所有內容很快重新運行。有沒有一種比較安全的方法來做到這一點?
答案1
基本問題是避免使用備份。如果lv_home
真的是“幾乎空了”,
- 您可以縮小它(調整檔案系統的大小,然後縮小邏輯磁碟區),並且
- 使用釋放的空間作為要複製到
lv_home
的臨時磁碟區。 - 然後,現有的
lv_home
是空的,你可以拆除它,lv_root
根據需要擴展,並且 - 最後(如果
lv_home
是真的最初那麼小),將臨時磁碟區的內容移回不需要的空白空間部分lv_root
,並將其與臨時空間合併。
當然,建議的排序假設底層磁碟分割的順序相同。 LVM 不適合上下移動分割區(某些脫機磁碟分割工具可能會這樣做)。
現在 - OP的問題沒有提到底層檔案系統是否都駐留在一個實體磁碟上,以及它們的磁碟分割區是否處於相同的順序。如果它們都駐留在一個實體磁碟上,則會出現問題是使用 MBR(最多 4 個實體分割區)還是 GPT (128) 進行分割區 - 請參閱範例MBR 和 GPT 有什麼不同?。在前一種情況下,OP 可能必須建立一個擴展分割區作為調整大小的分割區的基礎lv_home
。
LVM 本質上是三層:物理層、磁碟區和邏輯層。為了保持整潔,物理磁碟最好相鄰。但 LVM 並不要求這樣做。可以lv_home
一步縮小(及其檔案系統和實體分區),然後在最後的空間中建立新的實體分區,將該分區新增至對應的磁碟區組中,lv_root
然後執行resize2fs
擴展檔案系統。 Resizing up 有很多現成的做法;情況遠沒有那麼嚴重——直到最近,文件中還附有警告,解釋說您可以使用該工具破壞您的文件系統。
這些可能會有所幫助:
答案2
使用lvextended
指令更改邏輯卷的大小:
lvextend -l +4607 /dev/vg_home/LogVol01
resize2fs /dev/vg_home/LogVol01
我建議從概念上閱讀有關在此網站上調整lvm大小和減少。