雲盤(系統盤或數據盤)使用空間不足時,您可以擴容雲盤的存儲容量。本文介紹如何在不需要停止實例運行的情況下為Linux系統進行擴容雲盤。
限制條件:實例的Linux內核不低於3.6.0版本。您可以使用uname -a命令查看內核版本
步驟一:創建快照
- 登錄ECS管理控制台。
- 在左側導航欄,選擇實例與鏡像 > 實例。
- 在頂部菜單欄左上角處,選擇地域。
- 找到需要擴容雲盤的實例,單擊實例ID。
- 在實例詳情頁,單擊雲盤頁簽。
- 找到需要擴容的雲盤,在操作列單擊創建快照。
- 在彈出的對話框中,輸入快照名稱,並按需綁定標簽后,單擊創建。
- 單擊快照頁簽,查看已創建的快照。
- 當快照的進度為100%時,表示快照創建完成,您可以執行后續操作。
步驟二:在控制台擴容雲盤容量
- 在實例詳情頁,單擊雲盤頁簽。
- 選擇需要擴容的雲盤,在操作列單擊更多 > 雲盤擴容。
- 如果需要批量擴容多個雲盤,請使用阿里雲賬號在存儲與快照 > 雲盤頁面選擇多個雲盤后,單擊底部的雲盤擴容。掛載在同一ECS實例下的雲盤不支持批量擴容功能。
- 說明 只有阿里雲賬號可以執行批量擴容,RAM用戶無權限操作,請使用阿里雲賬號登錄ECS管理控制台。
- 在磁盤擴容頁面,選中在線擴容,並設置擴容后容量。
- 設置的擴容后容量不允許小於當前容量。
- 確認費用,閱讀並選中《雲服務器ECS服務條款》后,單擊確認擴容。
- 閱讀磁盤擴容須知后,單擊已閱讀,繼續擴容,完成支付。
步驟三:查看雲盤分區情況
fdisk -lu
序號 | 分區 | 說明 |
---|---|---|
① | /dev/vda1 | 系統盤,System取值Linux表示為MBR分區。 |
② | /dev/vdb1 | 數據盤,System取值Linux表示為MBR分區。 |
③ | /dev/vdc1 | 數據盤,System取值GPT表示為GPT分區。 |
步驟四:擴容分區
安裝growpart工具。
yum install -y cloud-utils-growpart
運行以下命令擴容分區
growpart /dev/vda 1
步驟五:擴容文件系統
擴容ext*(例如ext4)文件系統:運行以下命令擴容文件系統
resize2fs /dev/vda1
/dev/vda1和/dev/vdb1都是分區名稱,您需要根據實際情況修改。
擴容xfs文件系統:運行以下命令擴容數據盤/dev/vdc1的文件系統。
xfs_growfs /media/vdc
/media/vdc為/dev/vdc1的掛載點,您需要根據實際情況修改。
擴容btrfs文件系統:如果您的數據盤文件系統為btrfs,則需要運行以下命令擴容文件系統
btrfs filesystem resize max /mountpoint
/mountpoint為數據盤對應的掛載點,您需要根據實際情況修改。
運行以下命令檢查擴容后結果。
df -Th
擴容完成后,您需要根據實際情況檢查數據是否正常。
如果擴容成功,ECS實例中的業務程序能夠正常運行,則完成操作。
如果擴容失敗,則通過備份的快照回滾數據。
支持在線擴容的操作系統
支持在線擴容的Linux公共鏡像(或基於公共鏡像制作的自定義鏡像)包括:
Alibaba Cloud Linux:Alibaba Cloud Linux 2版本和Alibaba Cloud Linux 3版本
CentOS:
CentOS 6:CentOS 6.8及以上版本
CentOS 7:CentOS 7.2及以上版本
CentOS 8及以上版本
Red Hat Enterprise Linux:
RHEL 6:RHEL 6.9及以上版本
RHEL 7:RHEL 7.4及以上版本
RHEL 8及以上版本
Ubuntu:Ubuntu 16及以上版本
Debian:Debian 8及以上版本
SUSE:SUSE 12 SP2及以上版本
OpenSUSE:OpenSUSE 42.3及以上版本
常見問題
- 問題:運行growpart /dev/vda 1時,提示unexpected output in sfdisk --version [sfdisk,來自 util-linux 2.23.2]。
- 解決方案:
- 運行locale命令查看ECS實例的字符編碼類型,將非en_US.UTF-8的字符編碼類型切換成en_US.UTF-8。
- 運行以下命令,切換字符編碼類型。
- LANG=en_US.UTF-8
- 如果問題仍未解決,運行以下命令,切換字符編碼類型。
- export LC_ALL=en_US.UTF-8
- 如果問題仍未解決,運行以下命令,切換字符編碼類型。
- localectl set-locale LANG=en_US.UTF-8
- 如果采用以上方案無法解決問題時,運行以下命令,切換字符編碼類型。
- export LANGUAGE=en_US.UTF-8
- 如果問題仍未解決,請您嘗試運行reboot命令重啟ECS實例。
當您通過切換字符編碼,成功完成擴容分區后,建議您按需切回原有字符編碼。