擴容邏輯卷前,必須確保卷組有足夠的剩餘容量,若容量不足,需先通過新增或擴容物理卷的方式擴容卷組後,再擴容邏輯卷並調整其檔案系統大小。
工作原理
擴容邏輯卷主要包含兩個步驟:
擴容卷組:邏輯卷的空間源於其所在的卷組。因此,須先通過擴容物理卷或新增物理卷方式為卷組增加可用容量。
擴容邏輯卷:將卷組中的新增空間分配給目標邏輯卷,然後擴充其上的檔案系統,以使作業系統能夠正常使用。
操作步驟
LVM建立邏輯卷不提供資料冗餘,對於生產資料,請務必考慮應用程式層冗餘方案或使用阿里雲快照一致性組,保護資料。
步驟一:擴容卷組
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
查看卷組剩餘容量。
執行
sudo vgs指令,根據VG和VFree欄位擷取卷組名稱及卷組剩餘容量。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 79.99g 0樣本中,卷組名稱
vg_01,總容量為79.99 GiB,剩餘容量為 0 GiB,需先擴容卷組。若卷組空間有剩餘則可直接擴容邏輯卷。擴容卷組。
擴容卷組中物理卷
查看物理卷與雲端硬碟的對應關係。
執行
sudo pvs -a -o +devices命令,確定物理卷(通過PV欄位擷取)對應的雲端硬碟名稱(通過Devices欄位擷取),並記錄物理卷名稱和雲端硬碟名稱。sudo pvs -a -o +devicesPV VG Fmt Attr PSize PFree Devices /dev/vda1 --- 0 0 /dev/vda2 --- 0 0 /dev/vda3 --- 0 0 /dev/vdb vg_01 lvm2 a-- <40.00g 0 /dev/vdb(0) /dev/vdc1 vg_01 lvm2 a-- <40.00g 0 /dev/vdc1(0)擴充雲端硬碟容量。
訪問ECS控制台-Block Storage-雲端硬碟。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
單擊目標雲端硬碟操作列中的擴容。
在確定目標盤與須知頁面,核實資訊後單擊已知曉並備份,繼續擴容。
在配置擴容方式與容量嚮導頁面,設定擴容參數並確認費用後,單擊擴容。
以將雲端硬碟容量由40 GiB擴充至50 GiB為例,需填寫擴容後的容量為50 GiB。
重要擴充雲端硬碟容量時會收取新增容量的費用。
(條件必選)若為訂用帳戶雲端硬碟,請在支付彈框中等待5秒倒計時結束後,單擊確認,去支付,完成支付後返回擴容流程,單擊已完成支付,關閉。
如果未完成支付,但單擊了已完成支付,關閉,需要單擊操作列的查看關聯訂單,完成支付。
(條件必選)若待擴容物理卷對應雲端硬碟的分區,需要在ECS執行個體內擴容分區。
將命令中的
<雲端硬碟名稱>與<分區編號>替換為步驟a中擷取到的雲端硬碟名稱與分區編號後執行命令。重要雲端硬碟名稱和分區編號之間有空格。
sudo LC_ALL=en_US.UTF-8 growpart <雲端硬碟名稱> <分區編號>以擴容
/dev/vdc1為例,需要執行sudo LC_ALL=en_US.UTF-8 growpart /dev/vdc 1。當回執內容中包含關鍵字
CHANGED,表示指令執行成功。擴容物理卷。
<物理卷名稱>可通過步驟a擷取。sudo pvresize <物理卷名稱>以擴容物理卷
/dev/vdb為例,需執行:sudo pvresize /dev/vdb。當輸出內容中包含關鍵詞
1 physical volume(s) resized or updated,表示指令執行成功。驗證卷組擴容是否生效。
運行
sudo vgs,確認卷組剩餘可用容量(回執中VFree欄位對應的值)是否符合新增預期。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 89.99g 10.00g樣本中,卷組
vg_01的容量由79.99 GiB增加至89.99 GiB,剩餘容量VFree為10 GiB, 符合預期,卷組擴容成功。
新增物理卷並加入卷組
在確保雲端硬碟已建立並掛載至目標執行個體(無需初始化)的情況下,執行以下操作。
擷取建立資料盤的裝置名稱。
執行
sudo lsblk -f,根據NAME和FSTYPE欄位,確定建立資料盤的裝置名稱。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb LVM2_member okx24E-qSjZ-zv9l-lOkm-Pcxu-q6KX-qzRcCu └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdc LVM2_member ISeUSM-AhRp-KdNN-7pWJ-HxGW-2AEq-85m9dE └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdd樣本中,裝置名稱
vdd無分區及檔案系統(FSTYPE為空白)為建立資料盤。建立物理卷並將其加入卷組中。
重要建立物理卷會刪除資料盤中資料,請確保資料盤為空白。
<新盤的裝置名稱>可通過上一步擷取。sudo vgextend <卷組名稱> /dev/<新盤的裝置名稱>以將雲端硬碟
vdd初始化成物理卷並添加至卷組vg_01為例,需執行sudo vgextend vg_01 /dev/vdd。當輸出內容中包含關鍵詞
successfully extended,表示指令執行成功。驗證卷組擴容是否生效。
運行
sudo vgs,確認卷組剩餘可用容量(回執中VSize欄位對應的值)是否符合新增預期。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 3 1 0 wz--n- <89.99g <10.00g樣本中,卷組
vg_01的容量由79.99 GiB增加至89.99 GiB,剩餘容量VFree約為10 GiB, 符合預期,卷組擴容成功。
步驟二:擴容邏輯卷
擷取邏輯卷路徑。
運行
sudo lvdisplay命令,根據LV Path欄位擷取邏輯卷路徑,後續擴容邏輯卷時需要使用。sudo lvdisplay--- Logical volume --- LV Path /dev/vg_01/lv01 LV Name lv01 VG Name vg_01 LV UUID DAD6Fy-4lbd-9EW9-UTvx-rGti-hYss-txxxxx LV Write Access read/write LV Creation host, time iZbp1hww2c2kyj54i1xxxxx, 2025-09-22 10:37:58 +0800 LV Status available # open 1 LV Size 79.99 GiB Current LE 20478 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256樣本中,邏輯卷
lv01的邏輯卷路徑為/dev/vg_01/lv01。擴容邏輯卷。
sudo lvextend -L +<邏輯卷容量> <邏輯卷路徑>參數
說明
<邏輯卷容量>
需小於卷組剩餘可用容量。
<邏輯卷路徑>
需替換為上一步擷取的待擴容邏輯卷路徑。
以邏輯卷路徑為
/dev/vg_01/lv01,新增10 GiB容量為例,執行sudo lvextend -L +10G /dev/vg_01/lv01。當輸出內容中包含關鍵詞
successfully resized,表示擴容邏輯捲成功。擴容檔案系統。
運行命令
sudo lsblk -f,根據FSTYPE和MOUNTPOINT欄位,確定並記錄待擴容邏輯卷的檔案系統類型和掛載目錄,後續執行擴容檔案系統指令時需要使用。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb LVM2_member okx24E-qSjZ-zv9l-lOkm-Pcxu-q6KX-qzRcCu └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdc LVM2_member ISeUSM-AhRp-KdNN-7pWJ-HxGW-2AEq-85m9dE └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01樣本中邏輯卷路徑
/dev/vg_01/lv01的檔案系統類型為xfs,掛載目錄為/mnt/lv01。擴容檔案系統。
ext2/ext3/ext4檔案系統。
將命令中的變數
<邏輯卷路徑>替換為擷取的邏輯卷路徑。sudo resize2fs <邏輯卷路徑>以擴容邏輯卷lv01(路徑為/dev/vg_01/lv01)為例,需執行:
sudo resize2fs /dev/vg_01/lv01。xfs檔案系統。
將命令中的
<掛載目錄>替換為擷取的邏輯卷掛載目錄。sudo xfs_growfs <掛載目錄>以擴容邏輯卷(掛載點為/mnt/lv01)為例,需執行:
sudo xfs_growfs /mnt/lv01。
檢查檔案系統擴容是否成功。
運行
sudo df -Th,確認檔案系統大小(回執中Size欄位對應的值)是否與邏輯卷新容量基本一致。檔案系統建立時會佔用部分容量用於儲存中繼資料,因此檔案系統大小可能略小於邏輯卷容量。
計費說明
擴容邏輯卷時,會收取以下費用。
通過擴容物理卷擴容卷組:
擴充雲端硬碟容量時會收取新增容量的費用,計費方式和原雲端硬碟一致。
訂用帳戶雲端硬碟:容量擴充成功後,將立即以新容量進行計費。按剩餘時間長度補足新舊容量差額費用。
差額費用=包月價格/30天*剩餘時間長度*新增容量。
剩餘時間長度單位為天,數值精確到秒。
隨用隨付雲端硬碟:容量擴充成功後,將立即按新容量進行計費。計費時間長度以小時為單位折算,下一小時將產生當前小時的消費明細。
通過新增物理卷擴容卷組:
雲端硬碟的計費項目因類型而異,包括雲端硬碟容量費用、預配置效能費用及效能突發費用。除效能突發費用在突發後計費外,其他費用在建立後即開始計費,無論是否掛載至執行個體,不同類型或地區雲端硬碟價格可能不同。
更多資訊,請參見Block Storage計費。
常見問題
安裝工具時提示“404 Not Found”如何解決?
CentOS 6、Debian 9/10/11作業系統已結束生命週期,需要先切換Centos源地址或Debian 9/10/11源地址後再進行工具安裝。
擴容邏輯卷時提示
Insufficient free space錯誤怎麼辦?擴容邏輯卷時,新增容量需小於卷組可用空間。
查看卷組剩餘容量。
執行
sudo vgs指令,根據VSize欄位擷取卷組剩餘容量。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 89.99g 10.00g樣本中邏輯卷的新增容量不可超過卷組剩餘的10 GiB容量。
將剩餘空間全部用於邏輯卷擴充。
<邏輯卷路徑>需替換為擷取的待擴容邏輯卷路徑。sudo lvextend -l +100%FREE <邏輯卷路徑>