如果您使用LVM(Logical Volume Manager)創建的邏輯卷使用空間不足時,您可以擴容邏輯卷。本文介紹了如何通過LVM擴容一個邏輯卷。
前提條件
已創建一個邏輯卷。具體操作,請參見創建邏輯卷。
操作步驟
您可以通過以下兩種方式來擴容邏輯卷。
方式一:擴容云盤以擴容邏輯卷容量
擴容原理
如下圖所示,當邏輯卷容量不能滿足您當前業務需求時,您可以通過擴容已有云盤容量,來擴展邏輯卷的容量。
擴容步驟
下文通過擴容云盤/dev/vdb
,為邏輯卷lv01
增加10 GiB容量為例,指導您如何擴容邏輯卷。
(可選)通過快照一致性組進行備份數據。具體操作,請參見創建快照一致性組。
遠程連接ECS實例。
關于連接方式的介紹,請參見連接方式概述。
擴容云盤(例如擴容云盤
/dev/vdb
)。為目標云盤擴容容量(例如新增10 GiB容量)。具體操作,請參見步驟一:擴容云盤容量。
(可選)若云盤已分區,需為云盤擴容分區。具體操作,請參見步驟1:擴容分區。如果云盤未分區,則跳過該步驟。
您可以通過
lsblk
命令查看云盤是否分區。如下圖的示例,則表示云盤/dev/vdb
未分區,/dev/vdc
已分區。
擴容物理卷。
執行以下命令,確定已擴容的云盤或云盤分區對應的物理卷名稱,后續命令需使用。
PV列為物理卷名稱,Devices列為物理卷對應的云盤或云盤分區。
sudo pvs -a -o +devices
上圖示例,云盤
/dev/vdb
對應的物理卷名稱為/dev/vdb
。運行以下命令,擴容云盤對應的物理卷。
sudo pvresize <物理卷名稱>
以擴容物理卷
/dev/vdb
為例,則命令為:sudo pvresize /dev/vdb
回顯類似如下信息,表示擴容物理卷成功。
擴容邏輯卷和文件系統。
運行以下命令,獲取邏輯卷路徑、名稱、所屬卷組等信息,后續操作步驟需使用。
sudo lvdisplay
LV Path:邏輯卷路徑,例如
/dev/vg_01/lv01
。LV Name:邏輯卷名稱,例如
lv01
。VG Name:邏輯卷所屬的卷組名稱,例如
vg_01
。LV Size:邏輯卷的大小,圖示信息為59 GiB。
運行以下命令,擴容邏輯卷。
sudo lvextend -L <增/減邏輯卷容量> <邏輯卷路徑>
示例命令:為邏輯卷(路徑為
/dev/vg_01/lv01
)新增10 GiB容量。sudo lvextend -L +10G /dev/vg_01/lv01
回顯類似如下信息,表示您為邏輯卷(lv01)新增了10 GiB空間。
運行以下命令,擴容邏輯卷文件系統。
執行
df -Th
命令,查詢邏輯卷的文件系統類型(即Type列的值),根據文件系統類型選擇擴容命令。ext4文件系統
sudo resize2fs <邏輯卷路徑>
以擴容邏輯卷lv01(路徑為/dev/vg_01/lv01)為例,則命令為:
sudo resize2fs /dev/vg_01/lv01
xfs文件系統
sudo xfs_growfs <邏輯卷掛載點>
以擴容邏輯卷lv01(掛載點為/media/lv01)為例,則命令為:
sudo xfs_growfs /media/lv01
運行以下命令,查看邏輯卷擴容結果。
df -h
回顯類似如下信息,表示已為邏輯卷新增10 GiB容量(文件系統本身會占用部分存儲空間)。
方式二:新增云盤以擴容邏輯卷容量
擴容原理
如下圖所示,當邏輯卷容量不能滿足您當前業務需求時,您可以通過新增云盤,來擴展邏輯卷(LV)的容量。
擴容步驟
下文通過新創建云盤(云盤設備名為/dev/vdd
、容量為20 GiB)、創建物理卷、然后將物理卷添加到卷組中等操作,指導您如何擴容邏輯卷。
為ECS實例新創建并掛載1塊云盤,無需初始化。
遠程連接ECS實例。
關于連接方式的介紹,請參見連接方式概述。
運行以下命令,用新增云盤創建物理卷。
sudo pvcreate <云盤設備名稱>
示例命令:使用新增云盤
/dev/vdd
創建1塊物理卷。sudo pvcreate /dev/vdd
回顯類似如下信息,表示創建物理卷成功。
擴容卷組。
運行以下命令,查看卷組信息。
sudo vgs
回顯類似如下信息,表示卷組名稱
vg_01
,當前卷組容量為 59.99GiB,剩余空間不足 1GiB。運行以下命令,擴容卷組。
sudo vgextend <卷組名稱> <物理卷名稱>
示例命令:將物理卷
/dev/vdd
添加至卷組vg_01
中。sudo vgextend vg_01 /dev/vdd
回顯類似如下信息,表示擴容卷組成功。
運行以下命令,查看卷組信息。
sudo vgs
回顯類似如下信息,卷組
vg_01
的容量由59.99 GiB增加至79.99 GiB,說明卷組擴容成功。
擴容邏輯卷和文件系統。
運行以下命令,獲取邏輯卷路徑、名稱、所屬卷組等信息,后續操作步驟需使用。
sudo lvdisplay
LV Path:邏輯卷路徑,例如
/dev/vg_01/lv01
。LV Name:邏輯卷名稱,例如
lv01
。VG Name:邏輯卷所屬的卷組名稱,例如
vg_01
。LV Size:邏輯卷的大小,圖示信息為59 GiB。
運行以下命令,擴容邏輯卷。
sudo lvextend -L <增/減邏輯卷容量> <邏輯卷路徑>
示例命令:為邏輯卷(路徑為
/dev/vg_01/lv01
)新增20 GiB容量。sudo lvextend -L +20G /dev/vg_01/lv01
回顯類似如下信息,表示您為邏輯卷(lv01)新增了20 GiB空間。
運行以下命令,擴容邏輯卷文件系統。
執行
df -Th
命令,查詢邏輯卷的文件系統類型(即Type列的值),根據文件系統類型選擇擴容命令。ext4文件系統
sudo resize2fs <邏輯卷路徑>
以擴容邏輯卷lv01(路徑為/dev/vg_01/lv01)為例,則命令為:
sudo resize2fs /dev/vg_01/lv01
xfs文件系統
sudo xfs_growfs <邏輯卷掛載點>
以擴容邏輯卷lv01(掛載點為/media/lv01)為例,則命令為:
sudo xfs_growfs /media/lv01
運行以下命令,查看邏輯卷擴容結果。
df -h
回顯類似如下信息,表示已為邏輯卷新增20 GiB容量(文件系統本身會占用部分存儲空間)。