雲端硬碟擴充容量後,需擴容分區與檔案系統才可使用新增容量空間。由於雲端硬碟不可縮容,請在操作前充分評估業務容量需求。
擴容流程
雲端硬碟擴容主要包含兩個步驟:
擴充雲端硬碟容量:在ECS控制台購買擴容空間。這類似於買了更大的硬碟,但還沒裝進電腦。支付成功不代表擴容結束。
擴容分區與檔案系統:在伺服器作業系統裡“啟用”新空間。 相當於進入電腦系統,讓系統識別並使用這塊新硬碟的空間。
步驟一:擴充雲端硬碟容量
前提條件
請確保滿足以下任一條件:
雲端硬碟已掛載到ECS執行個體,需要確保執行個體未到期,且執行個體狀態為運行中(Running)或已停止(Stopped)。
雲端硬碟狀態為待掛載(Available)。
操作步驟
訪問ECS控制台-Block Storage-雲端硬碟。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
單擊目標雲端硬碟操作列中的擴容。
強烈建議提前為雲端硬碟建立快照備份資料,避免擴容時誤操作導致資料丟失,在確定目標盤與須知頁面核實資訊後,單擊建立快照,設定快照名稱和保留時間後單擊確認。
重要使用快照會產生費用。

當是否支援擴容列變為是後,單擊確認擴容。
快照建立時間長度受到資料量和頻寬等因素影響,可訪問ECS控制台-快照,在目標快照的進度列中查看進度。
在配置擴容方式與容量嚮導頁面,設定擴容參數並確認費用後,單擊擴容。
重要擴充雲端硬碟容量時會收取新增容量的費用。
參數
說明
擴容後的容量
擴容後容量不允許小於當前容量。
擴容方式
線上擴容(推薦):擴充容量後無需重啟執行個體,修改後的容量直接生效。
離線擴容:雲端硬碟處於待掛載狀態、執行個體處於已停止狀態或部分執行個體規格僅支援離線擴充容量。
(條件必選)若為訂用帳戶雲端硬碟,請在支付彈框中等待5秒倒計時結束後,單擊確認,去支付,完成支付後返回擴容流程,單擊已完成支付,關閉。
如果未完成支付,但單擊了已完成支付,關閉,無法繼續擴容,需要單擊去支付訂單,完成支付後返回擴容流程。
步驟二:擴容分區及檔案系統
前提條件
若雲端硬碟狀態為待掛載(Available),需掛載至ECS執行個體。
如果資料盤未建立檔案系統,請依照初始化資料盤完成後續操作。
操作步驟
在完成雲端硬碟容量擴充後,需要擴容分區和檔案系統方可使用新增的容量。阿里雲提供了兩種方式:
通過控制台擴容(推薦):在控制台利用雲助手進行擴容,無需手動輸入命令,操作便捷。
通過命令列擴容:登入執行個體手動輸入命令來執行擴容。該方式操作性強,適用範圍廣泛。
通過控制台擴容(推薦)
若不慎關閉該頁面,可前往執行個體詳情頁的Block Storage頁簽,再次進入操作介面。
在待擴容分區與檔案系統區塊中,單擊擴容分區及檔案系統。
如果未授權雲助手,每次擴容均需按介面指引完成授權。
當頁面提示雲助手查詢或執行失敗或執行個體作業系統版本不支援時,請通過命令列擴容雲端硬碟。

在通過雲助手進行擴容分區及檔案系統操作對話方塊中單擊立即執行,當提示雲助手執行擴容分區及檔案系統成功時表示擴容已完成。單擊關閉退出指令介面。

通過命令列擴容
擴容分區
請先在執行個體詳情頁面中查看作業系統版本,CentOS 6及以下、OpenSUSE 42.3、Debian 8及以下版本,請通過離線擴容分區和檔案系統方式操作。
登入ECS執行個體。
訪問ECS控制台-執行個體。在頁面左側頂部,選擇目標資源所在的資源群組和地區。
進入目標執行個體詳情頁,單擊遠端連線,選擇通過Workbench遠端連線。根據頁面提示登入,進入終端頁面。
執行分區擴容。
運行
sudo lsblk,確認待擴容雲端硬碟裝置名稱及分區編號。$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 50G 0 disk ├─vda1 253:1 0 2M 0 part ├─vda2 253:2 0 200M 0 part /boot/efi └─vda3 253:3 0 39.8G 0 part / vdb 253:16 0 40G 0 disk /data如果待擴容雲端硬碟不存在分區,則無需擴容分區,可直接擴容檔案系統。樣本中資料盤
vdb不存在分區,無需擴容分區。如果待擴容雲端硬碟容量大於分區總容量,需要擴容分區。樣本中系統硬碟
vda容量為50GiB,存在三個分區,分區總容量為40GiB,需對最後一個編號為3的分區vda3擴容。重要僅支援對單塊雲端硬碟的最後一個分區擴容。
常用裝置命名及分區格式如下:
如果sudo lsblk顯示vgx形式,表明正在使用LVM管理磁碟分割,在控制台完成容量擴充操作後,需通過LVM擴容邏輯卷。
裝置類型
裝置名稱
分區編號
非NVMe協議雲端硬碟
格式為
vd[a-z],如vda(系統硬碟),vdb,vdc等。格式為
vd[a-z]<分區編號>,如vda3分區編號為3。NVMe協議雲端硬碟
格式為
nvmeXn1,如nvme0n1,nvme1n1,nvme2n1等。格式為
nvmeXn1p<分區編號>,如nvme0n1p1分區編號為1。
安裝擴容工具。
Alibaba Cloud Linux、CentOS等類型
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart type sgdisk || sudo yum install -y gdiskDebian、Ubuntu等類型。
sudo apt-get update sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdisk執行分區擴容指令。
將命令中的
<裝置名稱>與<分區編號>調整為步驟a中擷取到的裝置名稱與分區編號後執行命令。重要請注意,裝置名稱和分區編號之間有空格。
sudo LC_ALL=en_US.UTF-8 growpart /dev/<裝置名稱> <分區編號>當回執內容中包含關鍵字
CHANGED,表示指令執行成功。若執行失敗可通過擴容分區的常見問題定位並修複問題。命令中的
LC_ALL=en_US.UTF-8是用於適配中文系統編碼的環境變數。
校正分區擴容結果。
運行
sudo lsblk命令,若分區總量等於裝置容量,樣本中裝置vda容量大小與分區總量都為50GiB,表明分區擴容完成。接下來需要擴容檔案系統,才能使新增空間可用。$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 50G 0 disk ├─vda1 253:1 0 2M 0 part ├─vda2 253:2 0 200M 0 part /boot/efi └─vda3 253:3 0 49.8G 0 part / vdb 253:16 0 40G 0 disk /data
擴容檔案系統
運行命令
sudo lsblk -f,記錄待擴容雲端硬碟的目標裝置名稱、檔案系統類型和掛載目錄,後續執行擴容檔案系統指令時需要使用。$ sudo lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb ext4 3d7a3861-da22-484e-bbf4-b09375894b4f /data如果裝置存在分區,目標裝置名稱為最後一個分區名稱。樣本中系統硬碟
vda目標裝置名稱為vda3,檔案系統類型為ext4,掛載目錄為/。如果裝置不存在分區,目標裝置名稱與裝置名稱一致。樣本中資料盤
vdb目標裝置名稱為vdb,檔案系統類型為ext4,掛載目錄為/data。
執行擴容檔案系統。
檢查檔案系統擴容是否成功。
運行
sudo df -Th,確認檔案系統大小(回執中Size欄位對應的值)是否與雲端硬碟容量基本一致。檔案系統建立時會佔用部分容量用於儲存中繼資料,因此檔案系統大小可能小於控制台容量。
計費說明
擴充雲端硬碟容量時會收取新增容量的費用,計費方式和原雲端硬碟一致。
訂用帳戶雲端硬碟:容量擴充成功後,將立即以新容量進行計費。按剩餘時間長度補足新舊容量差額費用。
差額費用=包月價格/30天*剩餘時間長度*新增容量。
剩餘時間長度單位為天,數值精確到秒。
隨用隨付雲端硬碟:容量擴充成功後,將立即按新容量進行計費。計費時間長度以小時為單位折算,下一小時將產生當前小時的消費明細。
如果已購買儲存容量單位包SCU,可自動抵扣隨用隨付雲端硬碟賬單。更多資訊,請參見Block Storage計費。
常見問題
擴充雲端硬碟容量的常見問題
為什麼擴充容量後,系統下容量不生效?
在完成雲端硬碟容量擴充後,作業系統無法自動識別新增的容量空間,還需要根據實際使用的分區和檔案系統類型來手動擴容。
如何通過API介面擴容雲端硬碟?
強烈建議擴充雲端硬碟容量前調用API介面CreateSnapshot為雲端硬碟建立快照備份資料,防止誤操作導致資料丟失。
使用快照會產生快照費用。
快照建立完成後,可通過調用API介面ResizeDisk擴充雲端硬碟容量。
擴容雲端硬碟容量後,還需要擴充分區及檔案系統。
通過調用 RunCommand介面向目標執行個體發送指令(可參考通過命令列擴容指令)搭配調用 DescribeInvocations介面查詢命令回執,實現分區與檔案系統的擴容。
已知曉並備份,繼續擴容置灰,無法選擇怎麼辦?
檢查雲端硬碟是否正在建立快照。建立快照期間不支援擴容。請等待快照完成後,再執行擴容操作。
已經做了離線擴容,但不想重啟執行個體怎麼辦?
離線擴容需重啟執行個體生效。若業務不允許重啟,但已選擇離線擴容,可以通過一次1GiB的線上擴容,使新增容量和之前的離線擴容線上生效。該操作屬於二次擴容,會產生額外費用,請根據實際業務需求謹慎操作。
僅支援離線擴容的部分執行個體規格。
ecs.ebmc4.8xlarge
ecs.ebmhfg5.2xlarge
ecs.ebmg5.24xlarge
ecs.t1
ecs.s1
ecs.s2
ecs.s3
ecs.c1
ecs.c2
ecs.m1
ecs.m2
如何再次進入雲助手擴容分區與檔案系統介面?
該功能處於邀測階段,僅部分客戶及情境支援查看並開啟雲助手檢測功能,再次進入擴容介面。
在執行個體詳情頁的Block Storage頁面中,開啟雲助手檢測功能。
若無雲助手檢測功能,請通過命令列擴容雲端硬碟。

將游標懸停在目標雲端硬碟的系統內狀態檢測下的2/3檢測通過處,單擊擴容分區及檔案系統重新進入。
擴容分區後分區容量沒有生效。
執行sudo lsblk查看Size欄位,若分區容量與裝置容量不一致,表示未生效。擴容分區通常無需重啟。若擴容分區未生效,可能是作業系統版本較低的原因,需要重啟執行個體使其生效。
擴容分區的常見問題
運行擴容分區growpart命令時,提示
no tools available to resize disk with 'gpt'.FAILED: failed to get a resizer for id ''。作業系統沒有安裝
gdisk工具。擴容GPT分區時還需要gdisk工具,請根據作業系統類型安裝。CentOS等類型。
type sgdisk || sudo yum install -y gdiskDebian、Ubuntu等類型。
sudo apt-get update type sgdisk || sudo apt-get install -y gdisk
運行擴容分區growpart命令時,提示
sudo: growpart: command not found。作業系統沒有安裝
growpart工具。請根據作業系統類型,分別運行以下指令安裝growpart工具(擴容GPT分區時還需要gdisk工具)。CentOS等類型。
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart type sgdisk || sudo yum install -y gdiskDebian、Ubuntu等類型。
sudo apt-get update sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdisk
運行擴容分區growpart命令時,提示
unexpected output in sfdisk --version [sfdisk,來自 util-linux 2.23.2]。原因:中文版作業系統使用了非en_US.UTF-8的字元編碼類型。
解決方案:
運行
locale命令查看ECS執行個體的字元編碼類型,如果不是en_US.UTF-8,請將其修改為該編碼。運行以下命令,切換字元編碼類型。
export LANG=en_US.UTF-8如果問題仍未解決,運行以下命令,切換字元編碼類型。
export LC_ALL=en_US.UTF-8
如果問題仍未解決,請嘗試運行
reboot命令重啟ECS執行個體。
重要當通過切換字元編碼,成功完成擴容分區後,建議按需切回原有字元編碼。
運行擴容分區growpart命令時,提示
mkdir: cannot create directory ... No space left on device。磁碟容量空間不足,導致建立臨時目錄失敗。需要清理無用的檔案後再進行擴容。
運行擴容分區growpart命令時,提示
unexpected output in sfdisk --version [sfdisk (util-linux-ng 2.17.2)]。fdisk版本與growpart版本不相容。需要嘗試將growpart版本降低到0.27。
運行擴容分區growpart命令時,提示
FAILED: unable to determine partition type。雲端硬碟未分區,無需執行擴容分區操作。直接擴容檔案系統即可。
運行擴容分區growpart命令時,提示
WARNING: MBR/dos partitioned disk is larger than 2TB. Additional space will go unused。MBR分區類型不支援2 TiB以上的雲端硬碟。需先轉換資料盤MBR分區為GPT分區,然後再擴容GPT分區。
執行
sudo lsblk,分區只擴容到了2TiB。MBR分區類型不支援2 TiB以上的雲端硬碟。需先轉換資料盤MBR分區為GPT分區,然後再擴容GPT分區。
在CentOS 6中安裝growpart工具時提示
Error: Cannot retrieve repository metadata。CentOS 6作業系統版本已結束生命週期(EOL),需將CentOS 6 EOL切換源後再安裝工具。
運行擴容分區growpart命令時,提示
NOCHANGE: partition 1 could only be grown by 2015 [fudge=2048]。擴容分區時無可用容量空間,通常是因為控制台離線擴容雲端硬碟後未重啟執行個體,導致雲端硬碟尚未生效。離線擴容後,必須通過ECS控制台或API介面重啟或啟動執行個體(在執行個體內部執行
reboot命令重啟無效)。
擴容檔案系統的常見問題
運行擴容檔案系統resize2fs命令時,提示
Couldn't find valid filesystem superblock.或open: Is a directory while opening /mnt。擴容檔案系統時需要指定正確的雲端硬碟分區名稱,非裝置名稱或掛載目錄。
運行擴容檔案系統resize2fs命令時,提示
The filesystem is already ... blocks long. Nothing to do!。原因:檔案系統無可擴容的容量空間,可能是分區未擴容或者擴容未生效導致。
解決方案:
請先確認是否已成功利用growpart擴容分區,如果遺漏需先執行growpart命令擴容分區。
如果成功執行了growpart命令擴容分區,可能是因為作業系統版本較低,無法線上更新系統磁碟分割表。請嘗試執行重啟執行個體後,再執行resize2fs命令。
運行擴容檔案系統resize2fs命令時,提示
resize2fs: Permission denied to resize filesystem。原因:一般是檔案系統本身不一致存在錯誤,導致檔案系統擴容失敗。
解決方案:
運行
dmesg -T | grep fs命令,如果輸出There are errors in the filesystem類似資訊,說明檔案系統不一致。建立快照為雲端硬碟做好資料備份。
在業務允許的情況下,運行
umount命令,根據實際環境卸載已掛載的分區或者整塊盤。如果是系統硬碟(無法
umount),則要卸載並掛載系統硬碟至其他執行個體的方式,進行修複。嘗試使用
e2fsck命令進行修複。
運行擴容檔案系統resize2fs命令時,提示
inodes (4294967296) must be less than 4294967295。原因:初始化時未正確設定
bytes-per-inode。若需擴容至64TiB,需要在建立檔案系統時,在命令中添加
-i 65536。解決方案:建立新盤進行資料拷貝。
重要bytes-per-inode在雲端硬碟初始化後無法更改。為當前執行個體建立目標容量的空資料盤。
在初始化資料盤,建立ext4檔案系統時,在指令中添加
-i 65536。將原盤資料手動拷貝至新盤。
驗證業務是否恢複。操作完成後,建議重啟相關服務並檢查業務是否正常運行。
系統下雲端硬碟容量為什麼與購買容量不一致?
檔案系統建立時會佔用部分容量用於儲存中繼資料,因此檔案系統大小可能小於控制台容量。