由於部分Linux作業系統版本較舊,雲端硬碟無法在作業系統內使用growpart等工具線上(雲端硬碟是mount狀態)擴容,這種情況需要採用離線(雲端硬碟是umount狀態)擴容的方式才能使雲端硬碟擴容生效。本文主要介紹如何離線擴容Linux資料盤。
前提條件
已建立快照備份資料。
為防止操作失誤導致資料丟失,建議您在操作前使用快照備份資料。具體操作,請參見建立快照。
資料盤已初始化並在控制台上擴容了雲端硬碟容量。
具體操作,請參見初始化資料盤和步驟一:擴容雲端硬碟容量。
遠端連線ECS執行個體。
關於串連方式的介紹,請參見ECS遠端連線方式概述。
背景資訊
本文樣本中使用的配置如下:
ECS執行個體的作業系統:公用鏡像Alibaba Cloud Linux 2.1903 LTS 64位
資料盤:高效雲端硬碟
資料盤裝置名稱:/dev/vdb。
若您使用的作業系統和資料盤裝置名稱與本文樣本不同,請根據實際情況調整命令或參數配置。
在文中使用mount
命令掛載檔案系統時,請根據實際需求選擇對應的掛載參數,以滿足您對檔案系統的資料安全性以及效能的要求。更多資訊,請參見ext4檔案系統掛載參數說明。
確認分區表格式和檔案系統
運行以下命令確認資料盤的分區表格式。
sudo fdisk -lu /dev/vdb
本樣本中,原有的資料盤空間已做分區/dev/vdb1。
如果
System
為Linux
,說明資料盤使用的是MBR分區表格式。如果
System
為GPT
,說明資料盤使用的是GPT分區表格式。
[testuser@ecshost ~]# sudo fdisk -lu /dev/vdb Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux
說明如果您的資料盤尚未分區,命令返回結果中不會出現分區資訊。
運行以下命令確認已有分區的檔案系統類型。
blkid /dev/vdb1
本樣本中,/dev/vdb1的檔案系統類型為ext4。
[testuser@ecshost ~]# blkid /dev/vdb1 /dev/vdb1: UUID="e97bf1e2-fc84-4c11-9652-73********24" TYPE="ext4"
說明未分區並且未建立檔案系統的資料盤,以及已分區但未建立檔案系統的資料盤,不會返回結果。
運行以下命令確認檔案系統的狀態。
ext*檔案系統:
sudo e2fsck -n /dev/vdb1
xfs檔案系統:
sudo xfs_repair -n /dev/vdb1
btrfs檔案系統:
sudo btrfsck /dev/vdb1
不同檔案系統的查詢樣本如下:
ext*和xfs檔案系統的樣本結果如下所示,當檔案系統狀態為clean,表示檔案系統狀態正常。如果狀態不是clean,請排查並修複。
[testuser@ecshost ~]# sudo e2fsck -n /dev/vdb1 Warning! /dev/vdb1 is mounted. Warning: skipping journal recovery because doing a read-only filesystem check. /dev/vdb1: clean, 11/1310720 files, 126322/5242624 blocks
btrfs檔案系統的樣本結果如下所示,例如found 114688 bytes used err is 0表示檔案系統狀態正常。如果查詢結果中存在報錯提示,請排查並修複。
[testuser@ecshost ~]# sudo btrfsck /dev/vdb1 Checking filesystem on /dev/vdb1 UUID: 1234b7a7-68ff-4f48-a88c-8943f27f1234 checking extents checking free space cache checking fs roots checking csums checking root refs found 114688 bytes used err is 0 total csum bytes: 0 total tree bytes: 114688 total fs tree bytes: 32768 total extent tree bytes: 16384 btree space waste bytes: 109471 file data blocks allocated: 0 referenced 0
選擇擴容分區或檔案系統的方式
根據您查詢到的分區格式和檔案系統情況確定操作選項。
擴容情境 | 相關操作 |
資料盤已分區並建立檔案系統 |
|
全新資料盤,未分區,未建立檔案系統 | 在控制台擴容資料盤空間後,請參見初始化小於等於2 TiB資料盤(Linux)或者初始化大於2 TiB資料盤。 |
資料盤是裸裝置,已建立檔案系統,未分區 | 在控制台擴容資料盤空間後,請參見選項五:擴容裸裝置檔案系統。 |
資料盤未掛載到執行個體上 | 掛載資料盤到執行個體後,請參見本文檔的操作步驟完成擴容。 |
如果一個已有分區採用了MBR分區格式,則不支援擴容到2 TiB及以上。為避免造成資料丟失,建議您建立一塊大於2TiB的雲端硬碟,格式化一個GPT分區,再將MBR分區中的資料拷貝到GPT分區中。具體操作,請參見初始化大於2 TiB資料盤。
當出現因擴容格式化工具問題導致的擴容失敗時,您可以提前升級工具版本,或者卸載工具後重新安裝。
選項一:擴充已有MBR分區
為了防止資料丟失,不建議擴容已掛載的分區和檔案系統。請先取消掛載(umount)分區,完成擴容並正常使用後,重新掛載(mount)。針對不同的Linux核心版本,推薦以下操作方式:
執行個體核心版本小於3.6:先取消掛載該分區,再修改分區表,最後擴容檔案系統。
執行個體核心版本大於等於3.6:先修改對應分區表,再通知核心更新分區表,最後擴容檔案系統。
如果新增空間用於擴容已有的MBR分區,按照以下步驟在執行個體中完成擴容:
修改分區表。
運行以下命令查看分區資訊,並記錄舊分區的起始和結束的扇區位置。
sudo fdisk -lu /dev/vdb
本樣本中,分區/dev/vdb1的起始扇區是2048,結束扇區是41943039。
[testuser@ecshost ~]# sudo fdisk -lu /dev/vdb Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux
查看資料盤的掛載路徑,根據返回的檔案路徑卸載分區,直至完全卸載已掛載的分區。
查看掛載(mount)資訊。
mount | grep "/dev/vdb"
取消掛載(umount)資料盤。
sudo umount /dev/vdb1
查看操作結果。
mount | grep "/dev/vdb"
樣本結果如下所示。
[testuser@ecshost ~]# mount | grep "/dev/vdb" /dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered) [testuser@ecshost ~]# sudo umount /dev/vdb1 [testuser@ecshost ~]# mount | grep "/dev/vdb"
使用fdisk工具刪除舊分區。
警告刪除舊分區如果出錯,可能會刪除分區內的資料。如有重要資料(例如資料庫中的使用者資料),請在操作前進行備份,避免因刪除舊分區而造成資料丟失。
運行
sudo fdisk -u /dev/vdb
:分區資料盤。輸入p:列印分區表。
輸入d:刪除分區。
輸入p:確認分區已刪除。
輸入w:儲存修改並退出。
以下為刪除舊分區的命令列互動樣本。
[testuser@ecshost ~]# sudo fdisk -u /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): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
使用fdisk命令建立分區。
運行
sudo fdisk -u /dev/vdb
:分區資料盤。輸入p:列印分區表。
輸入n:建立分區。
輸入p:選擇分區類型為主要磁碟分割。
輸入<分區號>:選擇分區號。本樣本選取了1。
設定新分區的起始位置和結束位置。
警告新分區的起始位置必須和舊分區的起始位置相同,結束位置必須大於舊分區的結束位置,否則會導致擴容失敗。
輸入w:儲存修改並退出。
以下為擴容分區的命令列互動樣本。本樣本中,將/dev/vdb1由20GiB擴容到40GiB。
[testuser@ecshost ~]# sudo fdisk -u /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): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x9277b47b Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-83886079, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): Partition 1 of type Linux and of size 40 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
運行以下任一命令通知核心更新分區表。
sudo partprobe /dev/vdb
說明如果您在CentOS 6作業系統上,發現報錯資訊
-bash: partprobe: command not found
,可先切換yum源,具體操作,請參見CentOS 6 EOL如何切換源?;再運行命令sudo yum install -y parted
安裝parted;最後重新運行命令。sudo partx -u /dev/vdb1
運行以下命令確保分區表已經增加。
sudo lsblk /dev/vdb
運行以下命令再次檢查檔案系統,確認擴容分區後的檔案系統狀態為clean。
sudo e2fsck -f /dev/vdb1
說明如果運行命令後未顯示檔案系統狀態為clean,您可以嘗試用
sudo e2fsck -n /dev/vdb1
檢查。
擴容檔案系統。
ext*檔案系統(例如ext3和ext4):依次運行以下命令調整ext*檔案系統大小並重新掛載分區。
調整ext*檔案系統大小。
sudo resize2fs /dev/vdb1
分區掛載到/mnt。
sudo mount /dev/vdb1 /mnt
xfs檔案系統:依次運行以下命令先重新掛載分區,再調整xfs檔案系統大小。
分區掛載到/mnt。
sudo mount /dev/vdb1 /mnt
調整xfs檔案系統大小。
sudo xfs_growfs /mnt
說明新版xfs_growfs根據掛載點識別待擴容裝置,例如
xfs_growfs /mnt
。您可以運行xfs_growfs --help
查看不同版本xfs_growfs的使用方法。btrfs檔案系統:依次運行以下命令先重新掛載分區,再調整btrfs檔案系統大小。
分區掛載到/mnt。
sudo mount /dev/vdb1 /mnt
調整btrfs檔案系統大小。
sudo btrfs filesystem resize max /mnt
選項二:新增並格式化MBR分區
如果新增空間用於增加新的MBR分區,按照以下步驟在執行個體中完成擴容:
運行以下命令建立分區。
sudo fdisk -u /dev/vdb
以下為建立分區的命令列互動樣本。本樣本中,為新增的20GiB建立分區,作為/dev/vdb2使用。
[testuser@ecshost ~]# sudo fdisk -u /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 commad. Command (m for help): p Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x2b31a2a3 Device Boot Start End Blocks Id System /dev/vdb1 2048 41943039 20970496 83 Linux Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): 2 First sector (41943040-83886079, default 41943040): Using default value 41943040 Last sector, +sectors or +size{K,M,G} (41943040-83886079, default 83886079): Using default value 83886079 Partition 2 of type Linux and of size 20 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
運行以下命令查看分區。
lsblk /dev/vdb
樣本結果如下所示。
[testuser@ecshost ~]# lsblk /dev/vdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vdb 253:16 0 40G 0 disk ├─vdb1 253:17 0 20G 0 part └─vdb2 253:18 0 20G 0 part
運行以下命令建立檔案系統。
建立ext4檔案系統:
sudo mkfs.ext4 /dev/vdb2
建立xfs檔案系統:
sudo mkfs.xfs -f /dev/vdb2
建立btrfs檔案系統:
sudo mkfs.btrfs /dev/vdb2
運行以下命令查看檔案系統資訊。
blkid /dev/vdb2
樣本結果如下所示。
[testuser@ecshost ~]# blkid /dev/vdb2 /dev/vdb2: UUID="e3f336dc-d534-4fdd-****-b6ff1a55bdbb" TYPE="ext4"
運行以下命令掛載分區。
sudo mount /dev/vdb2 /mnt
運行以下命令查看目前資料盤空間和使用方式。
df -h
顯示建立檔案系統的資訊,表示掛載成功。
[testuser@ecshost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 1.6G 36G 5% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 460K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vdb2 9.8G 37M 9.2G 1% /mnt tmpfs 783M 0 783M 0% /run/user/0
選項三:擴充已有GPT分區
如果新增空間用於擴容已有的GPT分區,按照以下步驟在執行個體中完成擴容:
查看資料盤的掛載路徑,根據返回的檔案路徑卸載分區,直至完全卸載已掛載的分區。
查看掛載(mount)資訊。
mount | grep "/dev/vdb"
取消掛載(umount)資料盤。
sudo umount /dev/vdb1
查看操作結果。
mount | grep "/dev/vdb"
樣本結果如下所示。
[testuser@ecshost ~]# mount | grep "/dev/vdb" /dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered) [testuser@ecshost ~]# sudo umount /dev/vdb1 [testuser@ecshost ~]# mount | grep "/dev/vdb"
使用Parted工具為現有GPT分區分配容量。
運行以下命令進入Parted分區工具。
sudo parted /dev/vdb
如需查看Parted工具使用說明,運行
help
命令。運行以下命令查看分區資訊,並記錄現有分區的分區號和起始扇區的值。
print
若介面提示
Fix/Ignore/Cancel?
和Fix/Ignore?
,均輸入Fix即可。本樣本中,現有分區大小為1TiB,分區號(即
Number
的值)為1
,起始扇區(即Start
)的值為1049kB
。運行以下命令刪除現有分區。
rm <分區號>
本樣本中,現有分區的分區號為
1
,因此命令為:rm 1
運行以下命令重新建立主要磁碟分割。
mkpart primary <原分區的起始扇區> <容量分配百分比>
本樣本中,原分區的起始扇區為
1049kB
,且要將擴容後的總容量(即3TiB)全部分配給該分區,因此命令為:mkpart primary 1049kB 100%
運行以下命令查看新分區是否建立成功。
print
如下圖所示,新的GPT分區仍為1號分區,容量已變更為3TiB。
運行以下命令退出Parted分區工具。
quit
以下為命令列互動樣本。
[testuser@ecshost ~]# sudo parted /dev/vdb GNU Parted 3.1 Using /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Error: The backup GPT table is not at the end of the disk, as it should be. This might mean that another operating system believes the disk is smaller. Fix, by moving the backup to the end (and removing the old backup)? Fix/Ignore/Cancel? Fix Warning: Not all of the space available to /dev/vdb appears to be used, you can fix the GPT to use all of the space (an extra 4294967296 blocks) or continue with the current setting? Fix/Ignore? Fix Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1100GB 1100GB ext4 primary (parted) rm 1 (parted) mkpart primary 1049kB 100% (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 3299GB 3299GB ext4 primary (parted) quit Information: You may need to update /etc/fstab.
運行以下命令確認檔案系統一致性。
sudo fsck -f /dev/vdb1
樣本結果如下所示。
[testuser@ecshost ~]# sudo fsck -f /dev/vdb1 fsck from util-linux 2.23.2 e2fsck 1.43.5 (04-Aug-2017) 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/67108864 files (0.0% non-contiguous), 4265369/268434944 blocks
擴充分區對應的檔案系統並重新掛載分區。
ext*檔案系統(例如ext3和ext4):
運行以下命令調整新分區的ext*檔案系統大小。
sudo resize2fs /dev/vdb1
運行以下命令重新掛載分區。
sudo mount /dev/vdb1 /mnt
xfs檔案系統:
運行以下命令重新掛載分區。
sudo mount /dev/vdb1 /mnt
運行以下命令調整xfs檔案系統大小。
sudo xfs_growfs /mnt
說明新版xfs_growfs根據掛載點識別待擴容裝置,例如
xfs_growfs /mnt
。您可以運行xfs_growfs --help
查看不同版本xfs_growfs的使用方法。btrfs檔案系統:
運行以下命令重新掛載分區。
sudo mount /dev/vdb1 /mnt
運行以下命令調整btrfs檔案系統大小。
sudo btrfs filesystem resize max /mnt
選項四:新增並格式化GPT分區
如果新增空間用於增加新的分區並希望使用GPT分區格式,按照以下步驟在執行個體中完成擴容。樣本採用一塊32 TiB的資料盤,已有一個4.8TiB的分區/dev/vdb1,此次建立了一個/dev/vdb2分區。
運行以下命令查看資料盤中已有分區的資訊。
sudo fdisk -l
樣本結果如下所示。
[testuser@ecshost ~]# sudo fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000b1b45 Device Boot Start End Blocks Id System /dev/vda1 * 2048 83875364 41936658+ 83 Linux WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/vdb: 35184.4 GB, 35184372088832 bytes, 68719476736 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt Disk identifier: BCE92401-F427-45CC-8B0D-B30EDF279C2F # Start End Size Type Name 1 2048 10307921919 4.8T Microsoft basic mnt
使用Parted工具建立新分區並分配容量。
運行以下命令進入Parted工具。
sudo parted /dev/vdb
運行以下命令查看資料盤待分配的容量,記錄已有分區的扇區位置和容量。
print free
樣本中/dev/vdb1的起始位置為1049KB,結束扇區為5278GB,容量為5278GiB。
(parted) print free Model: Virtio Block Device (virtblk) Disk /dev/vdb: 35.2TB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 5278GB 5278GB ext4 mnt 5278GB 35.2TB 29.9TB Free Space
運行以下命令設定起始扇區和分配容量。
mkpart <分區名稱> <起始扇區> <容量分配百分比>
以下樣本建立了一個名為test的/dev/vdb2分區,起始扇區為上一個分區的結束扇區,並將所有新增空間分配給該分區。
mkpart test 5278GB 100%
運行以下命令查看容量(Size)是否發生變化。
print
樣本結果如下所示。
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 35.2TB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 5278GB 5278GB ext4 mnt 2 5278GB 35.2TB 29.9TB test
運行以下命令退出Parted工具。
quit
為新分區建立檔案系統。
建立ext4檔案系統:
sudo mkfs.ext4 /dev/vdb2
建立ext3檔案系統:
sudo mkfs.ext3 /dev/vdb2
建立xfs檔案系統:
sudo mkfs.xfs -f /dev/vdb2
建立btrfs檔案系統:
sudo mkfs.btrfs /dev/vdb2
樣本中建立了一個xfs檔案系統,如下所示。
[testuser@ecshost ~]# sudo mkfs -t xfs /dev/vdb2 meta-data=/dev/vdb2 isize=512 agcount=28, agsize=268435455 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=7301444096, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=521728, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
運行以下命令查看分區容量變化。
sudo fdisk -l
樣本結果如下所示。
[testuser@ecshost ~]# sudo fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000b1b45 Device Boot Start End Blocks Id System /dev/vda1 * 2048 83875364 41936658+ 83 Linux WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/vdb: 35184.4 GB, 35184372088832 bytes, 68719476736 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt Disk identifier: BCE92401-F427-45CC-8B0D-B30EDF279C2F # Start End Size Type Name 1 2048 10307921919 4.8T Microsoft basic mnt 2 10307921920 68719474687 27.2T Microsoft basic test
運行以下命令查看存放裝置的檔案系統類型。
blkid
樣本結果如下所示。
[testuser@ecshost ~]# blkid /dev/vda1: UUID="ed95c595-4813-480e-****-85b1347842e8" TYPE="ext4" /dev/vdb1: UUID="21e91bbc-7bca-4c08-****-88d5b3a2303d" TYPE="ext4" PARTLABEL="mnt" PARTUUID="576235e0-5e04-4b76-****-741cbc7e98cb" /dev/vdb2: UUID="a7dcde59-8f0f-4193-****-362a27192fb1" TYPE="xfs" PARTLABEL="test" PARTUUID="464a9fa9-3933-4365-****-c42de62d2864"
掛載新分區。
sudo mount /dev/vdb2 /mnt
選項五:擴容裸裝置檔案系統
當資料盤沒有建立分區,並且在裸裝置上建立了檔案系統時,您可以參見以下步驟直接擴容檔案系統。
運行以下命令查看存放裝置的檔案系統類型。
df -Th
以下樣本返回分區(/dev/vdb)檔案系統類型為xfs。
[testuser@ecshost ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 434M 0 434M 0% /dev tmpfs tmpfs 446M 0 446M 0% /dev/shm tmpfs tmpfs 446M 524K 446M 1% /run tmpfs tmpfs 446M 0 446M 0% /sys/fs/cgroup /dev/vda1 ext4 20G 2.5G 17G 14% / tmpfs tmpfs 90M 0 90M 0% /run/user/0 /dev/vdb xfs 20G 53M 20G 1% /mnt
根據不同的檔案系統類型,執行以下不同的操作來擴容檔案系統。
xfs檔案系統
執行xfs_growfs命令擴容檔案系統。
sudo xfs_growfs /mnt
其中,
/mnt
為檔案系統的掛載點。說明新版xfs_growfs根據掛載點識別待擴容裝置,例如
xfs_growfs /mnt
。您可以運行xfs_growfs --help
查看不同版本xfs_growfs的使用方法。ext*和btrfs檔案系統
查看掛載(mount)資訊。
mount | grep "/dev/vdb"
取消掛載(umount)資料盤。
sudo umount /dev/vdb
查看操作結果。
mount | grep "/dev/vdb"
樣本結果如下所示。
[testuser@ecshost ~]# mount | grep "/dev/vdb" /dev/vdb on /mnt type ext4 (rw,relatime,data=ordered) [testuser@ecshost ~]# sudo umount /dev/vdb [testuser@ecshost ~]# mount | grep "/dev/vdb"
擴容檔案系統。
ext*檔案系統:執行resize2fs命令擴容檔案系統。
sudo resize2fs /dev/vdb
btrfs檔案系統:執行btrfs命令擴容檔案系統。
sudo btrfs filesystem resize max /mnt
其中,
/mnt
為檔案系統的掛載點。
將雲端硬碟掛載至掛載點。
sudo mount /dev/vdb /mnt
運行
df -Th
查看資料盤擴容結果。df -Th
以下樣本顯示檔案系統容量完成擴充,表示擴容成功。
[testuser@ecshost ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 434M 0 434M 0% /dev tmpfs tmpfs 446M 0 446M 0% /dev/shm tmpfs tmpfs 446M 524K 446M 1% /run tmpfs tmpfs 446M 0 446M 0% /sys/fs/cgroup /dev/vda1 ext4 20G 2.5G 17G 14% / tmpfs tmpfs 90M 0 90M 0% /run/user/0 /dev/vdb xfs 30G 63M 30G 1% /mnt