一塊全新的資料盤掛載到Linux系統的ECS執行個體後,還不能直接儲存資料,通常需要初始化後才能被作業系統識別並用於儲存資料。如果您的資料盤容量小於等於2 TiB且需要通過雲端硬碟分區來分類儲存和管理資料,可以按照本文進行分區、掛載檔案系統等初始化操作。
Linux初始化操作僅適用於隨ECS執行個體建立的空資料盤或新建立並掛載至ECS執行個體的空資料盤。更多資訊,請參見操作環境。
前提條件
資料盤已掛載到ECS執行個體(資料盤狀態為使用中)。具體操作,請參見掛載資料盤。
隨執行個體建立的資料盤已經掛載,可忽略。
操作步驟
本操作以Alibaba Cloud Linux 3作業系統為例,不同作業系統可能操作命令不同,請根據實際環境進行操作。
步驟一:登入ECS執行個體並查看資料盤
遠端連線ECS執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
運行以下命令,擷取資料盤的裝置名稱。
sudo fdisk -lu
運行結果如下所示,表示當前ECS執行個體掛載了兩塊雲端硬碟:
①:
/dev/vda
是系統硬碟,隨執行個體建立的系統硬碟已預設初始化,無需再初始化。②:
/dev/vdb
是待初始化的資料盤。
(條件必選)步驟二:為資料盤建立分區
如果您需要通過雲端硬碟分區來分類儲存和管理資料,例如將應用程式、檔案或資料等分開存放,便於管理和維護,您需要執行本步驟建立分區。如果您希望直接以裸裝置形式使用雲端硬碟,無需分區直接建立檔案系統即可。具體操作,請參見在裸裝置上建立檔案系統。
不同分區類型支援的最大分區容量和分區數量不同。更多資訊,請參見分區格式介紹。
如果您使用的雲端硬碟容量後續有可能會擴容到2 TiB以上,分區時請採用GPT分區。否則由於MBR分區容量的限制,您將無法直接擴容至所需容量大小,這可能導致需要重新分區和格式化雲端硬碟,進而導致資料丟失。
建立GPT分區
按以下步驟通過Parted分區工具為小於等於2 TiB的資料盤建立GPT分區。
運行以下命令,安裝Parted工具。
sudo yum install -y parted
說明yum
命令適用於CentOS等Linux發行版本。其他Linux發行版本,請根據實際使用的包管理軟體修改安裝命令。例如Debian或Ubuntu,請使用以下命令安裝Parted工具:sudo apt-get update sudo apt-get install -y parted
使用Parted工具為資料盤進行分區。
運行以下命令,開始分區。本操作以資料盤
/dev/vdb
為例。sudo parted /dev/vdb
其中,
/dev/vdb
是資料盤的裝置名稱,請您根據實際環境替換。在Parted互動命令列中輸入以下內容,設定GPT分區格式。
mklabel gpt
輸入以下內容,劃分分區,並設定分區的開始位置和結束位置。
mkpart <分區名稱> <初始位置> <結束位置>
重要分區的開始位置和結束位置請使用MiB、GiB等(預設4096B對齊)單位,否則會影響分區對齊,嚴重影響雲端硬碟效能。
<分區名稱>、<初始位置>、<結束位置>請根據實際情況進行劃分。
單分區樣本:以劃分一個主要磁碟分割、分區名為primary,開始位置為1MiB,100%容量給到第一個分區為例。
mkpart primary 1MiB 100%
多分區樣本:以劃分兩個分區、第一個分區名為primary,分區容量為20GiB,剩餘容量劃分至第二個分區secondary為例,需要分別執行:
mkpart primary 1MiB 20GiB mkpart secondary 20GiB 100%
(條件必選)如果您的單塊雲端硬碟需要建立多個分區,您需要重複執行步驟c建立其他分區。
運行以下命令,檢查分區是否對齊。
其中,
1
是對應的分區號,通常建議您做分區對齊,以擷取更好的雲端硬碟效能。align-check optimal 1
如果分區是對齊的,結果如下所示:
1 aligned
說明如果返回的是
1 not aligned
,表示分區未對齊。如何處理,請參見初始化雲端硬碟FAQ。輸入以下內容,查看分區表。
print
輸入以下內容,退出Parted工具。
quit
分區過程如下所示。
運行以下命令,使系統重讀分區表。
partprobe
運行以下命令,查看新分區資訊。本操作以資料盤
/dev/vdb
為例。sudo fdisk -lu /dev/vdb
其中,
/dev/vdb
是資料盤的裝置名稱,請您根據實際環境替換。運行結果如下所示,如果出現gpt的相關資訊,表示新分區已建立完成。
建立MBR分區
按以下步驟通過fdisk分區工具為小於等於2 TiB的資料盤建立MBR分區。
建立一個MBR分區。
運行以下命令,對資料盤進行分區。本操作以資料盤
/dev/vdb
為例。sudo fdisk -u /dev/vdb
其中,
/dev/vdb
是資料盤的裝置名稱,請您根據實際環境替換。回顯資訊如下圖所示。
在fdisk互動命令列,輸入p並按
Enter
鍵,查看資料盤的分區情況。回顯資訊如下圖所示。
輸入n並按
Enter
鍵,開始建立分區。回顯資訊如下圖所示。
表示雲端硬碟有兩種分區類型:
p
表示主要磁碟分割。e
表示擴充分區。說明關於分區的說明,請參見分區格式介紹。
以建立一個主要分區為例。輸入p並按
Enter
鍵,開始建立一個主要磁碟分割。回顯資訊如下圖所示。
Partition number
表示主要磁碟分割編號,可以選擇1-4。輸入分區編號,按
Enter
鍵。本樣本以建立一個主要磁碟分割為例,直接按
Enter
鍵,表示主要磁碟分割的分區編號為1
。回顯資訊如下圖所示。
輸入起始扇區編號,按
Enter
鍵。First sector
表示分區可用空間的起始扇區編號,可以選擇2048-83886079,預設值為2048。本樣本中,直接按Enter
鍵,表示選擇預設起始扇區編號2048
。回顯資訊如下圖所示。
說明系統會自動提示分區可用空間的起始扇區編號和截止扇區編號,可以在該區間內自訂或者使用預設值。分區的起始扇區編號必須小於截止扇區編號。
輸入最後一個扇區編號,按
Enter
鍵。Last sector
表示分區可用空間的截止扇區編號,可以選擇2048-83886079,預設值為83886079。本樣本中,直接按Enter
鍵,表示選擇預設截止扇區編號83886079
。回顯資訊如下圖所示。
說明系統會自動提示分區可用空間的起始扇區編號和截止扇區編號,可以在該區間內自訂或者使用預設值。分區的起始扇區編號必須小於截止扇區編號。
輸入p並按
Enter
鍵,查看該資料盤的分區規劃情況。回顯資訊如下圖所示,表示建立分區
/dev/vdb1
的詳細資料。說明如果上述分區操作有誤,請輸入
q
退出fdisk分區工具,之前的分區結果不會被保留,您可以按照上述步驟重新分區。輸入w並按
Enter
鍵,將分區結果寫入分區表中。回顯資訊如下圖所示,表示分區建立完成。
(條件必選)如果您的單塊雲端硬碟需要建立多個分區,需要重複執行步驟1建立其他分區。
運行以下命令,查看新分區資訊。本操作以資料盤
/dev/vdb
為例。sudo fdisk -lu /dev/vdb
其中,
/dev/vdb
是資料盤的裝置名稱,請您根據實際環境替換。運行結果如下圖所示,如果出現
/dev/vdb1
的相關資訊,表示新分區已建立完成。
步驟三:建立並掛載檔案系統
無論雲端硬碟是否進行了分區,雲端硬碟在使用前都需要建立並掛載檔案系統,才能被作業系統識別並正常使用。不同檔案系統支援的分區大小不同,請您根據實際需求建立檔案系統。
運行以下命令,安裝e2fsprogs工具。
sudo yum install -y e2fsprogs
說明此步驟中yum命令適用於CentOS等Linux發行版本。其他Linux發行版本,請根據實際使用的包管理軟體修改安裝命令。例如Debian或Ubuntu,請使用
apt-get install <軟體包名稱>
。運行以下命令,建立檔案系統。以下樣本命令介紹如何建立ext4和xfs檔案系統。
建立ext4檔案系統
sudo mkfs -t ext4 /dev/vdb1
其中,
/dev/vdb1
是資料盤的分區名稱,請您根據實際環境替換。說明當資料盤容量為16 TiB,在建立ext4檔案系統報錯時,您需要檢查e2fsprogs工具包的版本是否高於1.42,並安裝高版本的e2fsprogs工具包。具體操作,請參見如何升級e2fsprogs工具包?。
ext4檔案系統的lazy init功能會影響資料盤的I/O效能,您可以關閉ext4檔案系統的lazy init功能。具體操作,請參見如何關閉Linux執行個體的lazy init功能?。
如下圖所示的樣本資訊表示為資料盤分區
/dev/vdb1
建立一個ext4檔案系統。建立xfs檔案系統
sudo mkfs -t xfs /dev/vdb1
其中,
/dev/vdb1
是資料盤的分區名稱,請您根據實際環境替換。如下圖所示的樣本資訊表示為資料盤分區
/dev/vdb1
建立一個xfs檔案系統。運行以下命令,掛載檔案系統。
說明掛載ext4檔案系統時,您可以根據業務需求在
mount
命令中使用不同的掛載參數,以滿足您對檔案系統的資料安全性和效能要求。更多資訊,請參見ext4檔案系統掛載參數說明。sudo mount /dev/vdb1 /mnt
其中:
/dev/vdb1
是資料盤的分區名稱,請您根據實際環境替換。/mnt
是分區的掛載點。掛載點可以是已有目錄,或執行sudo mkdir -p <新目錄>
命令建立新目錄作為掛載點,例如sudo mkdir -p /data
。
運行以下命令,檢查掛載結果是否符合您的預期。
df -Th
結果如下所示,如果出現建立檔案系統的資訊,表示檔案系統掛載成功。
步驟四:配置開機自動掛載分區
您可以根據需要在/etc/fstab中寫入新分區資訊,配置開機自動掛載,以確保系統每次啟動時會自動掛載雲端硬碟分區。
運行以下命令,備份/etc/fstab檔案。
sudo cp /etc/fstab /etc/fstab.bak
在/etc/fstab裡寫入新分區資訊。
sudo sh -c "echo `blkid /dev/vdb1 | awk '{print \$2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab"
其中:
/dev/vdb1
:資料盤的分區名稱,您需要根據實際環境進行替換(通過df -Th
命令擷取)。/mnt
:分區的掛載點,您需要根據已設定的掛載點進行替換(通過df -Th
命令擷取)。ext4
:分區的檔案系統類型,您需要根據已建立的檔案系統類型進行替換(通過df -Th
命令擷取)。defaults
:檔案系統的掛載參數。您可以根據實際需求選擇對應的掛載參數,請參見fstab說明。
說明Ubuntu 12.04系統不支援barrier,您需要運行
sudo sh -c "echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /mnt ext4 barrier=0 0 0 >> /etc/fstab"
命令。(條件必選)如果單盤有多個連續分區的情況,需要分別將多個分區資訊寫入/etc/fstab中。
例如資料盤
/dev/vdb
有2個分區/dev/vdb1
和/dev/vdb2
,需要分別執行以下命令:sudo sh -c "echo `blkid /dev/vdb1 | awk '{print \$2}' | sed 's/\"//g'` </dev/vdb1的掛載點> </dev/vdb1的檔案系統類型> defaults 0 0 >> /etc/fstab" sudo sh -c "echo `blkid /dev/vdb2 | awk '{print \$2}' | sed 's/\"//g'` </dev/vdb2的掛載點> </dev/vdb2的檔案系統類型> defaults 0 0 >> /etc/fstab"
運行以下命令,查看/etc/fstab中的新分區資訊。
cat /etc/fstab
結果如下所示,可以查詢已配置的
/dev/vdb1
的分區資訊。說明如果查詢的分區資訊有誤,您可以手動編輯/etc/fstab檔案,刪除錯誤分區資訊後,再重新添加分區資訊。具體操作,請參見在fstab檔案中配置UUID方式自動掛載資料盤。
運行以下命令,驗證自動掛載功能是否生效。
sudo umount /dev/vdb1 sudo mount -a mount | grep /mnt
結果如下所示,可以查詢檔案系統掛載資訊,說明自動掛載功能生效。
初始化雲端硬碟FAQ
建立GPT分區時,分區未對齊如何解決?
Linux執行個體如何升級e2fsprogs工具包?
如何關閉Linux執行個體的lazy init功能?
相關文檔
如果您的雲端硬碟容量大於2 TiB且需要通過雲端硬碟分區來分類儲存和管理資料。具體操作,請參見初始化大於2 TiB資料盤。
如果您希望直接以裸裝置形式使用(即不需要對雲端硬碟進行分區),您只需在初始化過程中為該裸裝置建立檔案系統即可。具體操作,請參見在裸裝置上建立檔案系統。
當雲端硬碟使用空間不足時,可以擴容雲端硬碟容量增加雲端硬碟儲存空間。更多資訊,請參見雲端硬碟擴容指引。