擴容數據盤_Linux
隨着業務的增長,您的數據盤容量可能無法滿足數據存儲的需要,這時您可以使用磁盤擴容功能擴容數據盤。
本文以一個高效雲盤的數據盤和一個運行CentOS 7.3 64位的ECS實例為例,說明如何擴容數據盤並使擴容后的容量可用。
您可以按以下步驟完成擴容操作:
前提條件
-
實例處於 運行中 (Running) 或 已停止(Stopped) 狀態。
-
數據盤的狀態為 待掛載 或 使用中。
-
數據盤已做分區。
-
建議在擴容數據盤之前手動創建快照,以備份數據。
注意事項
-
擴容這種數據盤需要在控制台上重啟實例后才能使擴容后的容量生效,而重啟實例會停止實例,中斷您的業務,所以請您謹慎操作。
-
包年包月實例如果做過 續費降配 操作,當前計費周期的剩余時間內,實例上的包年包月雲盤不支持擴容磁盤操作。
-
如果數據盤正在創建快照,則不允許執行擴容數據盤的操作。
-
磁盤擴容功能只能擴容數據盤,不能擴容系統盤或本地盤(本地 SSD 盤等)。
步驟 1. 在控制台上擴容數據盤的磁盤空間
按以下步驟在控制台上擴容數據盤的磁盤空間:
- 登錄 ECS管理控制台。
- 在左側導航欄里,選擇 說明 如果您需要擴容的數據盤已經掛載在某個實例上,您可以單擊 實例,找到相應實例后,進入實例詳情頁,並單擊 本實例磁盤。
- 選擇地域。
- 找到需要擴容的磁盤,並在 操作 列中,選擇
- 在 磁盤擴容 頁面上,設置 擴容后容量,在本示例中為30 GiB。擴容后容量只能比當前容量大。
- 待頁面上顯示費用信息后,單擊 確定擴容。
說明 擴容成功后,磁盤列表里即顯示擴容后的容量。但是,如果您的數據盤已經掛載到實例上,只有在控制台上 重啟實例 后,登錄實例才能看到新的磁盤空間容量。
在控制台上擴容數據盤的磁盤空間后,
- 如果數據盤已經掛載到實例上,您必須 登錄實例擴容文件系統。
- 如果數據盤未掛載到實例上,您必須先掛載數據盤(參見 掛載雲盤),再根據數據盤的實際情況執行不同的操作:
- 如果這是一個未格式化的數據盤,您必須格式化數據盤。詳細信息,請參見 Linux 格式化和掛載數據盤。
- 如果這個數據盤之前已經格式化並分區,您必須 登錄實例擴容文件系統。
步驟 2. 登錄實例擴容文件系統
在ECS控制台上完成磁盤擴容后,磁盤每個分區的文件系統並未擴容。您需要登錄實例擴容文件系統。
在本示例中,假設數據盤掛載在一台Linux實例上,實例的操作系統為CentOS 7.3 64位,未擴容前的數據盤只有一個主分區(/dev/vdb1,ext4文件系統),文件系統的掛載點為 /resizetest,文件系統擴容完成后,數據盤仍然只有一個主分區。
- 遠程連接實例。
- 運行
umount
命令卸載主分區。umount /dev/vdb1
說明 使用df -h
查看是否卸載成功,如果看不到 /dev/vdb1 的信息表示卸載成功。以下為示例輸出結果。[root@iXXXXXX ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 1.5G 36G 4% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 312K 496M 1% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/0
- 使用
fdisk
命令刪除原來的分區並創建新分區:- 運行命令
fdisk -l
羅列分區信息並記錄擴容前數據盤的最終容量、起始扇區(First sector)位置。 - 運行命令
fdisk [數據盤設備名]
進入fdisk
界面。本示例中,命令為fdisk /dev/vdb
。 - 輸入 d 並按回車鍵,刪除原來的分區。
說明 刪除分區不會造成數據盤內數據的丟失。
- 輸入 n 並按回車鍵,開始創建新的分區。
- 輸入 p 並按回車鍵,選擇創建主分區。因為創建的是一個單分區數據盤,所以只需要創建主分區。
說明 如果要創建4個以上的分區,您應該創建至少一個擴展分區,即選擇
e
。 - 輸入分區編號並按回車鍵。因為這里僅創建一個分區,所以輸入 1。
- 輸入第一個可用的扇區編號:為了保證數據的一致性,First sector需要與原來的分區保持一致。在本示例中,按回車鍵采用默認值。
- 輸入最后一個扇區編號:因為這里僅創建一個分區,所以按回車鍵采用默認值。
- 輸入
wq
並按回車鍵,開始分區。[root@iXXXXXX ~]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): First sector (2048-62914559, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559): Using default value 62914559 Partition 1 of type Linux and of size 30 GiB is set Command (m for help): wq The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
- 運行命令
- 部分操作系統里,修改分區后可能會重新自動掛載文件系統。建議先執行
df -h
重新查看文件系統空間和使用情況。如果文件系統重新被掛載,執行umount [文件系統名稱]
再次卸載文件系統。 - 檢查文件系統,並變更文件系統大小。
e2fsck -f /dev/vdb1 # 檢查文件系統 resize2fs /dev/vdb1 # 變更文件系統大小
說明- 使用
e2fsck
時,由於系統需要檢查並訂正文件系統元數據,所以速度較慢、耗時較長,請耐心等待。 - 正確使用
e2fsck
和resize2fs
指令,不會造成原有數據丟失。
以下為示例輸出結果。
[root@iXXXXXX ~]# e2fsck -f /dev/vdb1 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/vdb1: 11/1835008 files (0.0% non-contiguous), 159218/7339776 blocks [root@iXXXXXX ~]# resize2fs /dev/vdb1 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/vdb1 to 7864064 (4k) blocks. The filesystem on /dev/vdb1 is now 7864064 blocks long.
- 使用
- 將擴容完成的文件系統掛載到原來的掛載點(如本示例中的 /resizetest)。
mount /dev/vdb1 /resizetest
- 查看文件系統空間和使用情況:運行命令
df -h
。如果出現擴容后的文件系統信息,說明掛載成功,可以使用擴容后的文件系統了。說明 掛載操作完成后,不需要在控制台上重啟實例即可開始使用擴容后的文件系統。以下為示例輸出結果。
[root@iXXXXXX ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 1.5G 36G 4% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 312K 496M 1% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/0 /dev/vdb1 30G 44M 28G 1% /resizetest