在線擴容雲盤(Linux系統)


雲盤(系統盤或數據盤)使用空間不足時,您可以擴容雲盤的存儲容量。本文介紹如何在不需要停止實例運行的情況下為Linux系統進行擴容雲盤。

限制條件:實例的Linux內核不低於3.6.0版本。您可以使用uname -a命令查看內核版本

步驟一:創建快照

  1. 登錄ECS管理控制台。
  2. 在左側導航欄,選擇實例與鏡像 > 實例。
  3. 在頂部菜單欄左上角處,選擇地域。
  4. 找到需要擴容雲盤的實例,單擊實例ID。
  5. 在實例詳情頁,單擊雲盤頁簽。
  6. 找到需要擴容的雲盤,在操作列單擊創建快照。
  7. 在彈出的對話框中,輸入快照名稱,並按需綁定標簽后,單擊創建。
  8. 單擊快照頁簽,查看已創建的快照。
  9. 當快照的進度為100%時,表示快照創建完成,您可以執行后續操作。

步驟二:在控制台擴容雲盤容量

  1. 在實例詳情頁,單擊雲盤頁簽。
  2. 選擇需要擴容的雲盤,在操作列單擊更多 > 雲盤擴容。
  3. 如果需要批量擴容多個雲盤,請使用阿里雲賬號在存儲與快照 > 雲盤頁面選擇多個雲盤后,單擊底部的雲盤擴容。掛載在同一ECS實例下的雲盤不支持批量擴容功能。
  4. 說明 只有阿里雲賬號可以執行批量擴容,RAM用戶無權限操作,請使用阿里雲賬號登錄ECS管理控制台。
  5. 在磁盤擴容頁面,選中在線擴容,並設置擴容后容量。
  6. 設置的擴容后容量不允許小於當前容量。
  7. 確認費用,閱讀並選中《雲服務器ECS服務條款》后,單擊確認擴容。
  8. 閱讀磁盤擴容須知后,單擊已閱讀,繼續擴容,完成支付。

步驟三:查看雲盤分區情況

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實例。

當您通過切換字符編碼,成功完成擴容分區后,建議您按需切回原有字符編碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM