隨著業務的增長,您的資料盤容量可能無法滿足資料存放區的需要,這時您可以使用 磁碟擴容 功能擴容資料盤。
说明 | |
|
本文以一個高效雲端碟的資料盤和一個運行CentOS 7.3 64位的 ECS 執行個體為例,說明如何擴容資料盤並使擴容後的容量可用。
您可以按以下步驟完成擴容操作:
步驟 1. 在控制台上擴容資料盤的磁碟空間
按以下步驟在控制台上擴容資料盤的磁碟空間:
- 登入 ECS管理主控台。
- 在左側導覽列裡,選擇
说明 如果您需要擴容的資料盤已經掛載在某個執行個體上,您可以單擊 執行個體,找到相應執行個體後,進入執行個體詳情頁,並單擊 本執行個體磁碟。
。
- 選擇地域。
- 找到需要擴容的磁碟,並在 操作 列中,選擇 。
- 在 磁碟擴容 頁面上,設定 擴容後容量,在本樣本中為30 GiB。擴容後容量只能比當前容量大。
- 待頁面上顯示費用資訊後,單擊 確定擴容。
说明 擴容成功後,磁碟列表裡即顯示擴容後的容量。但是,如果您的資料盤已經掛載到執行個體上,只有在控制台上 重啟執行個體 後,登入執行個體才能看到新的磁碟空間容量。
在控制台上擴容資料盤的磁碟空間後,
- 如果資料盤已經掛載到執行個體上,您必須執行 步驟 2. 登入執行個體擴容檔案系統。
- 如果資料盤未掛載到執行個體上,您必須先掛載資料盤(參見挂载云盘),再根據資料盤的實際情況執行不同的操作:
- 如果這是一個未格式化的資料盤,您必須格式化資料盤。詳細資料,請參見 Linux 格式化和掛載資料盤。
- 如果這個資料盤之前已經格式化並分區,您必須 步驟 2. 登入執行個體擴容檔案系統。
步驟 2. 登入執行個體擴容檔案系統
在ECS控制台上完成磁碟擴容後,磁碟每個分區的檔案系統並未擴容。您需要登入執行個體擴容檔案系統。
在本樣本中,假設資料盤掛載在一台Linux執行個體上,執行個體的作業系統為CentOS 7.3 64位,未擴容前的資料盤只有一個主要磁碟分割(/dev/vdb1,ext4檔案系統),檔案系統的掛載點為 /resizetest,檔案系統擴容完成後,資料盤仍然只有一個主要磁碟分割。
- 使用使用者名密碼驗證串連 Linux 執行個體。
- 運行
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
命令刪除原來的分區並建立新分區:说明 如果您使用 parted
工具操作分區,不能與fdisk
交叉使用,否則會導致分區的起始扇區不一致。關於parted
工具的使用說明可以參考這裡。- 運行命令
fdisk -l
羅列分區資訊並記錄擴容前資料盤的最終容量、起始扇區(First sector)位置。 - 運行命令
fdisk [資料盤裝置名稱]
進入fdisk
介面。本樣本中,命令為fdisk /dev/vdb
。 - 輸入
d
並按回車鍵,刪除原來的分區。说明 刪除分區不會造成資料盤內資料的丟失。 - 輸入
n
並按回車鍵,開始建立新的分區。 - 輸入
p
並按回車鍵,選擇建立主要磁碟分割。因為建立的是一個單分區資料盤,所以只需要建立主要磁碟分割。说明 如果要建立4個以上的分區,您應該建立至少一個擴充分區,即選擇 e
。 - 輸入分區編號並按回車鍵。因為這裡僅建立一個分區,所以輸入 1。
- 輸入第一個可用的扇區編號:為了保證資料的一致性,First sector需要與原來的分區保持一致。在本樣本中,按回車鍵採用預設值。
说明 如果發現First sector顯示的位置和之前記錄的不一致,說明之前可能使用 parted
來分區,那麼就停止當前的fdisk
操作,使用parted
重新操作。 - 輸入最後一個扇區編號:因為這裡僅建立一個分區,所以按回車鍵採用預設值。
- 輸入
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.
说明 如果您使用的是 parted
工具,進入parted
介面後,輸入p
羅列當前的分區情況。如果有分區,則使用 rm+ 序號來刪除老的分區表,然後使用unit s
定義起始位置,單位使用扇區個數計量,最後使用mkpart
命令來建立即可,如下圖所示。
- 運行命令
- 部分作業系統裡,修改分區後可能會重新自動掛載檔案系統。建議先執行
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