如果您要分區格式化一塊大於2 TiB的作資料盤用的雲端碟(本文統一稱為 大容量資料盤,小於2 TiB的資料盤統稱為 小容量資料盤),您必須採用GPT分區形式。本文檔描述了如何在不同的作業系統裡分區格式化一塊大容量資料盤。
说明 | |
如果您要分區格式化一塊小於2 TiB的資料盤,請參見 Linux 格式化和掛載資料盤 和 Windows 格式化資料盤。 |
注意事項
分區格式化大容量資料盤時,需要注意以下事項:
-
大容量資料盤支援的分區工具和檔案系統如下表所示。
作業系統 分區工具 檔案系統 Linux parted
ext4或xfs Windows 磁碟管理 NTFS -
不建議使用小容量資料盤的快照建立大容量資料盤
理論上,您可以使用一塊小容量資料盤的快照建立一個大容量資料盤,但是我們不建議您這麼做,而是建立空的大容量資料盤,或者使用大容量資料盤的快照建立大容量資料盤。原因如下:
- 使用小容量資料盤的快照建立大容量資料盤時,系統只完成塊裝置級的磁碟擴容,並沒有實現分區格式和檔案系統的自動轉換。
- 如果小容量資料盤快照中使用的是MBR分區格式,以上提到的分區工具(Linux上的
parted
和Windows上的 磁碟管理)都不能在保留資料的前提下將分區形式從MBR轉換為GPT。所以,即使您使用小容量資料盤的快照建立了大容量資料盤,在分區格式化時,您都需要刪除原有資料,再按照GPT格式分區。如果您已經用小容量資料盤的快照建立了大容量資料盤,請參見 Windows裡分區格式化由小容量資料盤的快照建立的大容量資料盤 。说明 如果小容量資料盤快照本身就是GPT分區格式,或者您另有強大的分區工具,則不在此列。您可以根據自身情況來選擇。
-
資料盤快照的影響
大容量資料盤的資料量很大,但是建立快照的速度和小容量資料盤是一樣的,所以每天建立快照的時間會與資料量成比例增長。建立快照的速度和資料的增量成正比,髒資料越多,建立快照耗時越久。
Windows裡分區格式化空的大容量資料盤
這部分以Windows Server 2008 R2 64位系統為例,說明如何在Windows執行個體中分區格式化一塊大容量資料盤。假設需要處理的資料盤是一個4 TiB的空盤。
資料盤已經掛載到執行個體上。具體操作,請參見挂载云盘。
按以下步驟分區格式化一塊大容量資料盤:
- 遠端連線Windows執行個體。
- 在工作列裡,單擊 表徵圖。
- 在 伺服器管理員 的左側導覽列裡,選擇 。
- 找到需要分區格式化的磁碟(本樣本中為 磁碟 4)。磁碟狀態顯示為 離線。
- 右擊磁碟 4周邊空白處,單擊 聯機。
聯機後,磁碟 4的狀態顯示為 沒有初始化。
- 按右鍵磁碟 4周邊的空白區,在快顯功能表中,選擇 初始化磁碟。
- 在 初始化磁碟 對話方塊裡,選擇 磁碟 4,並選擇磁碟分割形式為 GPT。
- 在 磁碟管理 視窗,按右鍵磁碟 4的 未分配 區域,選擇 新建簡單磁碟區,建立一個4 TiB的NTFS格式的卷。
- 在 新建簡單磁碟區嚮導 中,完成以下操作:
- 單擊 下一步。
- 指定卷大小:指定簡單磁碟區大小。如果您只要建立一個主區,使用預設值。單擊 下一步。您也可以把 磁碟 4 分成多個分區來使用。
说明 NTFS卷上的最大尺寸,理論上,NTFS的最大卷包含264-1個簇。實際上,WinXP Pro中,NTFS卷的最大限制是232-1個簇。舉例來說,如果是64 KiB的簇,那NTFS卷的最大尺寸就是約256 TiB 。如果選擇4 KiB的簇,那NTFS卷的最大尺寸就是約16 TiB。NTFS會根據磁碟的容量來自動選擇簇的大小。 - 分配磁碟機代號和路徑:選擇一個磁碟機代號(即盤符),如本樣本中選擇G。單擊 下一步。
- 格式化分區:選擇格式化設定,包括檔案系統、配置單位大小和卷標,確認是否 執行快速格式化 和 啟用檔案和檔案夾壓縮。這裡僅選擇 執行快速格式化。單擊 下一步。
- 開始建立新簡單磁碟區。當嚮導對話方塊裡顯示已經完成新簡單磁碟區的建立時,單擊 完成,關閉 新建簡單磁碟區嚮導。
格式化分區完成後,磁碟管理 中 磁碟 4 的狀態如下截圖所示。
Windows裡分區格式化由小容量資料盤的快照建立的大容量資料盤
如果您使用一個小容量資料盤的快照建立了一塊大容量資料盤,您需要先將資料盤的分區形式從MBR轉為GPT,再格式化資料盤,原來快照的資料將無法保存,所以我們不建議您使用小容量資料盤的快照建立大容量資料盤。
如果您確實建立了這樣的大容量資料盤,按以下步驟分區格式化這塊資料盤。本樣本中的作業系統是Windows Server 2012 R2 64位,假設需要處理的資料盤容量為3 TiB。
資料盤已經 掛載 到執行個體上。
按以下步驟分區格式化一塊大容量資料盤:
- 遠端連線Windows執行個體。
- 在Windows Server案頭,按右鍵 開始 表徵圖,選擇 磁碟管理。
未格式化分區的資料盤(如本樣本中的磁碟 2)處於 離線 狀態。
- 按右鍵磁碟 2周邊的空白區,在快顯功能表中,選擇 離線。
- 按右鍵一個簡單磁碟區,在快顯功能表中,選擇 刪除卷。
- 按右鍵磁碟 2周邊的空白區,在快顯功能表中,選擇 轉換成GPT磁碟。
- 在 磁碟管理 視窗,按右鍵磁碟 2的 未分配 區域,選擇 新建簡單磁碟區,建立一個3 TiB的NTFS格式的卷。
- 在 新建簡單磁碟區嚮導 中,完成以下操作:
- 單擊 下一步。
- 指定卷大小:指定簡單磁碟區大小。如果您只要建立一個主區,使用預設值。單擊 下一步。您也可以把 磁碟 2 分成多個分區來使用。
说明 NTFS卷上的最大尺寸,理論上,NTFS的最大卷包含264-1個簇。實際上,WinXP Pro中,NTFS卷的最大限制是232-1個簇。舉例來說,如果是64 KiB的簇,那NTFS卷的最大尺寸就是約256 TiB。如果選擇4 KiB的簇,那NTFS卷的最大尺寸就是約16 TiB。NTFS會根據磁碟的容量來自動選擇簇的大小。 - 分配磁碟機代號和路徑:選擇一個磁碟機代號(即盤符),如本樣本中選擇E。單擊 下一步。
- 格式化分區:選擇格式化設定,包括檔案系統、配置單位大小和卷標,確認是否 執行快速格式化 和 啟用檔案和檔案夾壓縮。這裡僅選擇 執行快速格式化。單擊 下一步。
- 開始建立新簡單磁碟區。當嚮導對話方塊裡顯示已經完成新簡單磁碟區的建立時,單擊 完成,關閉 新建簡單磁碟區嚮導。
格式化分區完成後,磁碟管理 中 磁碟 4 的狀態如下截圖所示。
Linux裡分區格式化大容量資料盤
對於Linux執行個體上掛載的大容量資料盤,採用GPT分區形式。Linux系統裡,大容量資料盤一般採用xfs或者ext4檔案系統。
這部分以CentOS 7.4 64位系統為例,說明如何在Linux執行個體上使用 parted 和 e2fsprogs 工具分區並格式化一個大容量資料盤。假設需要處理的資料盤是一個新建的3 TiB的空盤,裝置名稱為 /dev/vdd。
您的Linux執行個體上已經安裝了 parted。如果未安裝,運行命令 yum install -y parted
。
您的Linux執行個體上已經安裝了 e2fsprogs。如果未安裝,運行命令 yum install -y e2fsprogs
。
資料盤已經掛載到執行個體上。詳細資料,請參見挂载云盘。
按以下步驟分區格式化大容量資料盤,並掛載檔案系統:
- 運行命令
fdisk -l
查看資料盤是否存在。返回結果應包括如下所示的資訊。如果沒有,表示您未掛載資料盤。Disk /dev/vdd: 3221.2 GB, 3221225472000 bytes, 6291456000 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
- 運行命令
parted /dev/vdd
開始分區:- 運行命令
mklabel gpt
,將MBR分區形式轉為GPT分區形式。 - 運行命令
mkpart primary ext4 <StartSector> <EndSector>
,劃分一個採用ext4檔案系統的主要磁碟分割,並設定分區的開始位置和結束位置。如果一個資料盤只分一個分區,則運行命令mkpart primary ext4 0 -1
。说明 您也可以使用xfs檔案系統。 - 運行命令
print
,查看分區表。(parted) mkpart primary ext4 0 -1 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? ignore (parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdd: 3221GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 3221GB 3221GB primary
- 運行命令
quit
,退出 parted 操作。
- 運行命令
- 運行命令
partprobe
,使系統重讀分區表。 - 運行以下命令,建立一個ext4檔案系統,並使 /dev/vdd1 分區使用ext4。
mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/vdd1
说明 - 如果您要關閉ext4檔案系統的lazy init功能,避免該功能對資料盤I/O效能的影響,可以參考 附錄2:關閉lazy init功能。
- 如果資料盤的容量為16 TiB,需要使用指定版本的e2fsprogs工具包格式化,請參考 附錄1:升級e2fsprogs工具包。
- 如果您要建立一個xfs檔案系統,運行命令
mkfs -t xfs /dev/vdd1
。
- 運行命令
mkdir /test
,建立一個名為 /test 的掛載點。 - 運行命令
mount /dev/vdd1 /test
,將分區 /dev/vdd1 掛載到 /test。 - 運行命令
df -h
,查看目前磁碟空間和使用方式。如果返回結果裡出現新建檔案系統的資訊,說明掛載成功,可以使用新的檔案系統了。掛載完成後,不需要重啟執行個體即可開始使用新的檔案系統。
[root@izXXXXz ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 6.4G 31G 18% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 364K 496M 1% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/0 /dev/vdd1 2.9T 89M 2.8T 1% /test
- (可選)向 /etc/fstab 寫入新分區資訊,啟動開機自動掛載分區。
- (可選)運行命令
cp /etc/fstab /etc/fstab.bak
,備份 etc/fstab。 - 運行命令
echo /dev/vdd1 /test ext4 defaults 0 0 >> /etc/fstab
,向 /etc/fstab 裡寫入新分區資訊。 - 運行命令
cat /etc/fstab
,查看 /etc/fstab 的資訊。如果返回結果裡出現了寫入的新分區資訊,說明寫入成功。
- (可選)運行命令
至此,您已經成功分區並格式化了一個3 TiB資料盤。
如果資料盤容量為16 TiB,您需要使用1.42及以上版本的e2fsprogs工具包完成ext4檔案系統格式化。如果e2fsprogs版本太低(比如:e2fsprogs 1.41.11等),會出現如下錯誤資訊:
mkfs.ext4: Size of device /dev/vdd too big to be expressed in 32 bits using a blocksize of 4096.
您需要按以下方式安裝高版本的e2fsprogs,如本樣本中使用的1.42.8:
- 運行命令
rpm -qa | grep e2fsprogs
檢查e2fsprogs當前的版本。如果目前的版本低於1.42,按以下步驟安裝軟體。
- 運行以下命令下載 1.42.8 版本的e2fsprogs。您可以在 e2fsprogs 找到最新的軟體包。
wget https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.8/e2fsprogs-1.42.8.tar.gz
- 依次運行以下命令,編譯高版本的工具。
tar xvzf e2fsprogs-1.42.8.tar.gz cd e2fsprogs-1.42.8 ./configure make make install
- 運行命令
rpm -qa | grep e2fsprogs
檢查是否成功安裝高版本軟體。
ext4檔案系統的lazy init功能,預設開啟。該功能開啟時,系統後台會發起一個線程持續地初始化ext4檔案系統的metadata,從而延遲metadata初始化。所以在剛格式化資料盤的一段時間內IOPS會受到影響,比如,資料盤的IOPS效能測試的資料會明顯偏低。
如果要在格式化以後馬上測試資料盤效能,您需要運行以下命令在格式檔案系統時關閉lazy_init功能。
mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -E lazy_itable_init=0,lazy_journal_init=0 /dev/vdd1
關閉lazy init功能後,格式化的時間會大幅度地延長,格式化32 TiB的資料盤可能需要10-30分鐘。
請您根據自身的需要選擇是否使用lazy init功能。