ESC

開始輸入,可搜尋發票、服務、域名、工單,以及 更多...

搜尋... Ctrl+K
Linux 伺服器

Linux LVM 擴容磁碟教程:lvextend 擴容與 growpart 擴容根分割槽

6 個步驟 6 分鐘閱讀 1002 次閱讀 80
本文目錄

磁碟空間不夠時,如果系統使用了 LVM(邏輯卷管理),就可以在不重灌系統、通常也無需停機的情況下增加容量。本文介紹 Linux 使用 LVM 擴容磁碟的兩種常見場景:新增一塊硬碟加入卷組,以及原有磁碟被擴大後擴充套件分割槽;同時說明沒有 LVM 時如何用 growpart 擴容根分割槽。命令適用於 Debian/Ubuntu 與 CentOS/Rocky/AlmaLinux,以 root 執行。

擴容操作涉及分割槽表和檔案系統,雖然通常是安全的線上操作,但仍建議先做快照或備份重要資料,並逐條執行、確認輸出後再進行下一步。

步驟 1:安裝 LVM 工具並檢視當前磁碟結構

先安裝 lvm2 和 growpart 所在的軟體包,然後用 lsblk、pvs、vgs、lvs 瞭解當前佈局:哪塊磁碟是物理卷(PV),卷組(VG)叫什麼名字,邏輯卷(LV)掛載在哪裡。下文以卷組 vg0、邏輯卷 /dev/vg0/root 為例,請替換為實際名稱。

# Debian / Ubuntu
apt update && apt install -y lvm2 cloud-guest-utils

# CentOS / Rocky / AlmaLinux
dnf install -y lvm2 cloud-utils-growpart

# Inspect the current layout
lsblk
pvs
vgs
lvs
df -hT

步驟 2:場景 A——新增硬碟加入 LVM 卷組

如果是額外新增了一塊新硬碟(如 /dev/vdc),先將它初始化為物理卷,再加入現有卷組。執行後 vgs 中的 VFree 會增加,表示卷組有了可分配的空閒空間。注意不要對已有資料的磁碟執行 pvcreate。

# Scenario A: a new disk /dev/vdc was added
pvcreate /dev/vdc
vgextend vg0 /dev/vdc
vgs vg0

步驟 3:場景 B——原磁碟擴大後用 growpart 擴充套件分割槽

如果是原有磁碟容量被調大(例如從 40G 升級到 100G),需要先用 growpart 擴充套件分割槽到磁碟末尾,再用 pvresize 讓物理卷識別新增空間。注意 growpart 的磁碟名和分割槽號之間有空格。

# Scenario B: the existing disk /dev/vda was enlarged and the PV is partition 2
growpart /dev/vda 2
pvresize /dev/vda2
vgs

步驟 4:使用 lvextend 擴容邏輯卷

卷組有空閒空間後,用 lvextend 把空間分配給目標邏輯卷。-l +100%FREE 表示使用全部剩餘空間,-L +50G 表示增加固定大小。

# Give all free space in the VG to the logical volume
lvextend -l +100%FREE /dev/vg0/root

# Or add a fixed amount
lvextend -L +50G /dev/vg0/data

步驟 5:擴充套件檔案系統(resize2fs / xfs_growfs)

邏輯卷變大後,檔案系統還需要同步擴充套件,df 中才會顯示新容量。ext4 使用 resize2fs 指定邏輯卷路徑,XFS 使用 xfs_growfs 指定掛載點。也可以給 lvextend 加 -r 引數,一步完成邏輯卷和檔案系統的擴容。

# ext4
resize2fs /dev/vg0/root

# XFS (pass the mount point)
xfs_growfs /

# Alternative: extend LV and filesystem in one step
lvextend -r -l +100%FREE /dev/vg0/root

df -hT

步驟 6:沒有 LVM 時用 growpart 擴容根分割槽

很多雲映象的根分割槽是普通分割槽而非 LVM。磁碟升級後,只需 growpart 擴充套件分割槽,再擴充套件檔案系統即可,全程線上完成,無需重啟。

# Root partition without LVM, e.g. /dev/vda1 mounted on /
growpart /dev/vda 1
resize2fs /dev/vda1      # ext4
xfs_growfs /             # XFS
df -hT /

常見問題

growpart 提示 NOCHANGE 是什麼意思?

說明分割槽後面沒有可用空間,可能是磁碟容量尚未生效或分割槽已是最大。可先確認 lsblk 中磁碟大小是否已變大,必要時重啟伺服器後再試。

XFS 檔案系統可以縮小嗎?

不可以,XFS 只支援擴大。如果需要縮小,只能備份資料後重新建立檔案系統。ext4 支援縮小,但必須先解除安裝,操作風險較高,建議謹慎執行。

根分割槽後面緊跟著 swap 分割槽導致無法擴容怎麼辦?

需要先關閉並刪除該 swap 分割槽,擴容根分割槽後再改用 swap 檔案,或在空閒空間重建 swap。此操作較複雜,如不熟悉可提交工單尋求協助。

如按以上步驟操作後仍無法解決,歡迎提交工單聯絡 IMIDC 7×24 技術支援。提交時請註明伺服器 IP、作業系統、已執行的命令和報錯截圖,工程師可以更快定位問題。

這篇文章有幫助嗎?

相關教程