1.操作場景
本文以雲服務器的操作系統為“CentOS 7.4 64位”為例,采用fdisk分區工具為數據盤設置分區。
MBR支持的磁盤最大容量為2 TB,GPT最大支持的磁盤容量為18 EB,因此當您初始化容量大於2 TB的磁盤時,分區形式請采用GPT。對於Linux操作系統而言,當磁盤分區形式選用GPT時,fdisk分區工具將無法使用,需要采用parted工具。
不同雲服務器的操作系統的格式化操作可能不同,本文僅供參考,具體操作步驟和差異請參考對應的雲服務器操作系統的產品文檔。注意:
首次使用雲硬盤時,如果您未參考本章節對雲硬盤執行初始化操作,主要包括創建分區和文件系統等操作,那么當后續擴容雲硬盤時,新增容量部分的磁盤可能無法正常使用。
2.前提條件
- 已掛載數據盤至雲服務器,且該數據盤未初始化。
3.划分分區並掛載磁盤
本操作以該場景為例,當雲服務器掛載了一塊新的數據盤時,使用fdisk分區工具將該數據盤設為主分區,分區形式默認設置為MBR,文件系統設為ext4格式,掛載在“/mnt/sdc”下,並設置開機啟動自動掛載。
- 執行以下命令,查看新增數據盤。fdisk -l回顯類似如下信息:
[root@ecs-test-0001 ~]# 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: 0x000bcb4e
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 83886079 41942016 83 Linux
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 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
表示當前的雲服務器有兩塊磁盤,“/dev/vda”是系統盤,“/dev/vdb”是新增數據盤。
2.執行以下命令,進入fdisk分區工具,開始對新增數據盤執行分區操作。fdisk 新增數據盤以新掛載的數據盤“/dev/vdb”為例:fdisk /dev/vdb回顯類似如下信息:
[root@ecs-test-0001 ~]# 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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x38717fc1.
Command (m for help):
3.輸入“n”,按“Enter”,開始新建分區。回顯類似如下信息:
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
表示磁盤有兩種分區類型:
- “p”表示主分區。
- “e”表示擴展分區。
說明:
磁盤使用MBR分區形式,最多可以創建4個主分區,或者3個主分區加1個擴展分區,擴展分區不可以直接使用,需要划分成若干個邏輯分區才可以使用。
磁盤使用GPT分區形式時,沒有主分區、擴展分區以及邏輯分區之分。
4. 以創建一個主要分區為例,輸入“p”,按“Enter”,開始創建一個主分區。回顯類似如下信息:
Select (default p): p
Partition number (1-4, default 1):
“Partition number”表示主分區編號,可以選擇1-4。
5.以分區編號選擇“1”為例,輸入主分區編號“1”,按“Enter”。回顯類似如下信息:
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
“First sector”表示起始磁柱值,可以選擇2048-209715199,默認為2048。
6. 以選擇默認起始磁柱值2048為例,按“Enter”。
系統會自動提示分區可用空間的起始磁柱值和截止磁柱值,可以在該區間內自定義,或者使用默認值。起始磁柱值必須小於分區的截止磁柱值。回顯類似如下信息:
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
“Last sector”表示截止磁柱值,可以選擇2048-209715199,默認為209715199。
7.以選擇默認截止磁柱值209715199為例,按“Enter”。
系統會自動提示分區可用空間的起始磁柱值和截止磁柱值,可以在該區間內自定義,或者使用默認值。起始磁柱值必須小於分區的截止磁柱值。
回顯類似如下信息:
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help):
表示分區完成,即為數據盤新建了1個分區。
8.輸入“p”,按“Enter”,查看新建分區的詳細信息。回顯類似如下信息:
Command (m for help): p
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 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: 0x38717fc1
Device Boot Start End Blocks Id System
/dev/vdb1 2048 209715199 104856576 83 Linux
Command (m for help):
表示新建分區“/dev/vdb1”的詳細信息。
9. 輸入“w”,按“Enter”,將分區結果寫入分區表中。回顯類似如下信息:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
表示分區創建完成。
說明:
如果之前分區操作有誤,請輸入“q”,則會退出fdisk分區工具,之前的分區結果將不會被保留。
10.執行以下命令,將新的分區表變更同步至操作系統。
partprobe
11.執行以下命令,將新建分區文件系統設為系統所需格式。
mkfs -t 文件系統格式 /dev/vdb1
以設置文件系統為“ext4”為例:
mkfs -t ext4 /dev/vdb1回顯類似如下信息:
[root@ecs-test-0001 ~]# mkfs -t ext4 /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
Fileexperience label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214144 blocks
1310707 blocks (5.00%) reserved for the super user
First data block=0
Maximum fileexperience blocks=2174746624
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and fileexperience accounting information: done
格式化需要等待一段時間,請觀察系統運行狀態,不要退出。注意:
不同文件系統支持的分區大小不同,請根據您的業務需求選擇合適的文件系統。
12.執行以下命令,新建掛載目錄。
mkdir 掛載目錄
以新建掛載目錄“/mnt/sdc”為例:
mkdir /mnt/sdc
13.執行以下命令,將新建分區掛載到步驟12中創建的目錄下。
mount 磁盤分區 掛載目錄
以掛載新建分區“/dev/vdb1”至“/mnt/sdc”為例:
mount /dev/vdb1 /mnt/sdc
14.執行以下命令,查看掛載結果。
df -TH
回顯類似如下信息:
[root@ecs-test-0001 ~]# df -TH
Fileexperience Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 43G 1.9G 39G 5% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 9.1M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs tmpfs 398M 0 398M 0% /run/user/0
/dev/vdb1 ext4 106G 63M 101G 1% /mnt/sdc
表示新建分區“/dev/vdb1”已掛載至“/mnt/sdc”。
說明:
雲服務器重啟后,掛載會失效。您可以修改“/etc/fstab”文件,將新建磁盤分區設置為開機自動掛載,請參見設置開機自動掛載磁盤分區。
4.設置開機自動掛載磁盤分區
設置雲服務器系統啟動時自動掛載磁盤分區,不能采用在“/etc/fstab”直接指定設備名(比如/dev/vdb1)的方法,因為雲中設備的順序編碼在關閉或者開啟雲服務器過程中可能發生改變,例如/dev/vdb1可能會變成/dev/vdb2。推薦使用UUID來配置自動掛載磁盤分區。
說明:
UUID(universally unique identifier)是Linux系統為磁盤分區提供的唯一的標識字符串。
1.執行如下命令,查詢磁盤分區的UUID。
blkid 磁盤分區
以查詢磁盤分區“/dev/vdb1”的UUID為例:
blkid /dev/vdb1
回顯類似如下信息:
[root@ecs-test-0001 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"
表示“/dev/vdb1”的UUID。
2.執行以下命令,使用VI編輯器打開“fstab”文件。
vi /etc/fstab
3.按“i”,進入編輯模式。
4. 將光標移至文件末尾,按“Enter”,添加如下內容。
UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /mnt/sdc ext4 defaults 0 2
以內容上僅為示例,具體請以實際情況為准,參數說明如下:
- 第一列為UUID,此處填寫1中查詢到的磁盤分區的UUID。
- 第二列為磁盤分區的掛載目錄,可以通過df -TH命令查詢。
- 第三列為磁盤分區的文件系統格式, 可以通過df -TH命令查詢。
- 第四列為磁盤分區的掛載選項,此處通常設置為defaults即可。
- 第五列為Linux dump備份選項。
- 0表示不使用Linux dump備份。現在通常不使用dump備份,此處設置為0即可。
- 1表示使用Linux dump備份。
- 第六列為fsck選項,即開機時是否使用fsck檢查磁盤。
- 0表示不檢驗。
- 掛載點為(/)根目錄的分區,此處必須填寫1。根分區設置為1,其他分區只能從2開始,系統會按照數字從小到大依次檢查下去。
5. 按“ESC”后,輸入“:wq”,按“Enter”。保存設置並退出編輯器。
6.執行以下步驟,驗證自動掛載功能。
a.執行如下命令,卸載已掛載的分區。
umount 磁盤分區
命令示例:
umount /dev/vdb1
b.執行如下命令,將“/etc/fstab”文件所有內容重新加載。
mount -a
c.執行如下命令,查詢文件系統掛載信息。
mount | grep 掛載目錄
命令示例:
mount | grep /mnt/sdc
回顯類似如下信息,說明自動掛載功能生效:
root@ecs-test-0001 ~]# mount | grep /mnt/sdc /dev/vdb1 on /mnt/sdc type ext4 (rw,relatime,data=ordered)