全部產品
Search
文件中心

Elastic Compute Service:初始化小於等於2 TiB資料盤(Linux)

更新時間:Dec 03, 2024

一塊全新的資料盤掛載到Linux系統的ECS執行個體後,還不能直接儲存資料,通常需要初始化後才能被作業系統識別並用於儲存資料。如果您的資料盤容量小於等於2 TiB且需要通過雲端硬碟分區來分類儲存和管理資料,可以按照本文進行分區、掛載檔案系統等初始化操作。

說明

Linux初始化操作僅適用於隨ECS執行個體建立的空資料盤或新建立並掛載至ECS執行個體的空資料盤。更多資訊,請參見操作環境

前提條件

資料盤已掛載到ECS執行個體(資料盤狀態為使用中)。具體操作,請參見掛載資料盤

說明

隨執行個體建立的資料盤已經掛載,可忽略。

操作步驟

本操作以Alibaba Cloud Linux 3作業系統為例,不同作業系統可能操作命令不同,請根據實際環境進行操作。

步驟一:登入ECS執行個體並查看資料盤

  1. 遠端連線ECS執行個體。

  2. 運行以下命令,擷取資料盤的裝置名稱。

    sudo fdisk -lu

    運行結果如下所示,表示當前ECS執行個體掛載了兩塊雲端硬碟:

    • ①:/dev/vda是系統硬碟,隨執行個體建立的系統硬碟已預設初始化,無需再初始化。

    • ②:/dev/vdb是待初始化的資料盤。

    image

(條件必選)步驟二:為資料盤建立分區

如果您需要通過雲端硬碟分區來分類儲存和管理資料,例如將應用程式、檔案或資料等分開存放,便於管理和維護,您需要執行本步驟建立分區。如果您希望直接以裸裝置形式使用雲端硬碟,無需分區直接建立檔案系統即可。具體操作,請參見在裸裝置上建立檔案系統

重要
  • 不同分區類型支援的最大分區容量和分區數量不同。更多資訊,請參見分區格式介紹

  • 如果您使用的雲端硬碟容量後續有可能會擴容到2 TiB以上,分區時請採用GPT分區。否則由於MBR分區容量的限制,您將無法直接擴容至所需容量大小,這可能導致需要重新分區和格式化雲端硬碟,進而導致資料丟失。

建立GPT分區

按以下步驟通過Parted分區工具為小於等於2 TiB的資料盤建立GPT分區。

  1. 運行以下命令,安裝Parted工具。

    sudo yum install -y parted
    說明

    yum命令適用於CentOS等Linux發行版本。其他Linux發行版本,請根據實際使用的包管理軟體修改安裝命令。例如Debian或Ubuntu,請使用以下命令安裝Parted工具:

    sudo apt-get update
    sudo apt-get install -y parted
  2. 使用Parted工具為資料盤進行分區。

    1. 運行以下命令,開始分區。本操作以資料盤/dev/vdb為例。

      sudo parted /dev/vdb

      其中,/dev/vdb是資料盤的裝置名稱,請您根據實際環境替換。

    2. 在Parted互動命令列中輸入以下內容,設定GPT分區格式。

      mklabel gpt
    3. 輸入以下內容,劃分分區,並設定分區的開始位置和結束位置。

      mkpart <分區名稱> <初始位置> <結束位置>
      重要

      分區的開始位置和結束位置請使用MiB、GiB等(預設4096B對齊)單位,否則會影響分區對齊,嚴重影響雲端硬碟效能。

      <分區名稱>、<初始位置>、<結束位置>請根據實際情況進行劃分。

      • 單分區樣本:以劃分一個主要磁碟分割、分區名為primary,開始位置為1MiB,100%容量給到第一個分區為例。

        mkpart primary 1MiB 100%
      • 多分區樣本:以劃分兩個分區、第一個分區名為primary,分區容量為20GiB,剩餘容量劃分至第二個分區secondary為例,需要分別執行:

        mkpart primary 1MiB 20GiB
        mkpart secondary 20GiB 100%
    4. (條件必選)如果您的單塊雲端硬碟需要建立多個分區,您需要重複執行步驟c建立其他分區。

    5. 運行以下命令,檢查分區是否對齊。

      其中,1是對應的分區號,通常建議您做分區對齊,以擷取更好的雲端硬碟效能。

      align-check optimal 1

      如果分區是對齊的,結果如下所示:

      1 aligned
      說明

      如果返回的是1 not aligned,表示分區未對齊。如何處理,請參見初始化雲端硬碟FAQ

    6. 輸入以下內容,查看分區表。

      print
    7. 輸入以下內容,退出Parted工具。

      quit

    分區過程如下所示。

    image.png

  3. 運行以下命令,使系統重讀分區表。

    partprobe
  4. 運行以下命令,查看新分區資訊。本操作以資料盤/dev/vdb為例。

    sudo fdisk -lu /dev/vdb

    其中,/dev/vdb是資料盤的裝置名稱,請您根據實際環境替換。

    運行結果如下所示,如果出現gpt的相關資訊,表示新分區已建立完成。

    image.png

建立MBR分區

按以下步驟通過fdisk分區工具為小於等於2 TiB的資料盤建立MBR分區。

  1. 建立一個MBR分區。

    1. 運行以下命令,對資料盤進行分區。本操作以資料盤/dev/vdb為例。

      sudo fdisk -u /dev/vdb

      其中,/dev/vdb是資料盤的裝置名稱,請您根據實際環境替換。

      回顯資訊如下圖所示。

      image.png

    2. 在fdisk互動命令列,輸入p並按Enter鍵,查看資料盤的分區情況。

      回顯資訊如下圖所示。

      image.png

    3. 輸入n並按Enter鍵,開始建立分區。

      回顯資訊如下圖所示。

      image.png

      表示雲端硬碟有兩種分區類型:

      • p表示主要磁碟分割。

      • e表示擴充分區。

        說明

        關於分區的說明,請參見分區格式介紹

    4. 以建立一個主要分區為例。輸入p並按Enter鍵,開始建立一個主要磁碟分割。

      回顯資訊如下圖所示。

      image.png

      Partition number表示主要磁碟分割編號,可以選擇1-4。

    5. 輸入分區編號,按Enter鍵。

      本樣本以建立一個主要磁碟分割為例,直接Enter,表示主要磁碟分割的分區編號為1

      回顯資訊如下圖所示。

      image.png

    6. 輸入起始扇區編號,按Enter鍵。

      First sector表示分區可用空間的起始扇區編號,可以選擇2048-83886079,預設值為2048。本樣本中,直接Enter,表示選擇預設起始扇區編號2048

      回顯資訊如下圖所示。

      image.png

      說明

      系統會自動提示分區可用空間的起始扇區編號和截止扇區編號,可以在該區間內自訂或者使用預設值。分區的起始扇區編號必須小於截止扇區編號。

    7. 輸入最後一個扇區編號,按Enter鍵。

      Last sector表示分區可用空間的截止扇區編號,可以選擇2048-83886079,預設值為83886079。本樣本中,直接Enter,表示選擇預設截止扇區編號83886079

      回顯資訊如下圖所示。

      image.png

      說明

      系統會自動提示分區可用空間的起始扇區編號和截止扇區編號,可以在該區間內自訂或者使用預設值。分區的起始扇區編號必須小於截止扇區編號。

    8. 輸入p並按Enter鍵,查看該資料盤的分區規劃情況。

      回顯資訊如下圖所示,表示建立分區/dev/vdb1的詳細資料。

      image.png

      說明

      如果上述分區操作有誤,請輸入q退出fdisk分區工具,之前的分區結果不會被保留,您可以按照上述步驟重新分區。

    9. 輸入w並按Enter鍵,將分區結果寫入分區表中。

      回顯資訊如下圖所示,表示分區建立完成。

      image.png

  2. (條件必選)如果您的單塊雲端硬碟需要建立多個分區,需要重複執行步驟1建立其他分區。

  3. 運行以下命令,查看新分區資訊。本操作以資料盤/dev/vdb為例。

    sudo fdisk -lu /dev/vdb

    其中,/dev/vdb是資料盤的裝置名稱,請您根據實際環境替換。

    運行結果如下圖所示,如果出現/dev/vdb1的相關資訊,表示新分區已建立完成。

    image.png

步驟三:建立並掛載檔案系統

無論雲端硬碟是否進行了分區,雲端硬碟在使用前都需要建立並掛載檔案系統,才能被作業系統識別並正常使用。不同檔案系統支援的分區大小不同,請您根據實際需求建立檔案系統。

  1. 運行以下命令,安裝e2fsprogs工具。

    sudo yum install -y e2fsprogs
    說明

    此步驟中yum命令適用於CentOS等Linux發行版本。其他Linux發行版本,請根據實際使用的包管理軟體修改安裝命令。例如Debian或Ubuntu,請使用apt-get install <軟體包名稱>

  2. 運行以下命令,建立檔案系統。以下樣本命令介紹如何建立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檔案系統。

    image.png

    建立xfs檔案系統

    sudo mkfs -t xfs /dev/vdb1

    其中,/dev/vdb1是資料盤的分區名稱,請您根據實際環境替換。

    如下圖所示的樣本資訊表示為資料盤分區/dev/vdb1建立一個xfs檔案系統。

    image.png

  3. 運行以下命令,掛載檔案系統。

    說明

    掛載ext4檔案系統時,您可以根據業務需求在mount命令中使用不同的掛載參數,以滿足您對檔案系統的資料安全性和效能要求。更多資訊,請參見ext4檔案系統掛載參數說明

    sudo mount /dev/vdb1 /mnt

    其中:

    • /dev/vdb1是資料盤的分區名稱,請您根據實際環境替換。

    • /mnt是分區的掛載點。掛載點可以是已有目錄,或執行sudo mkdir -p <新目錄>命令建立新目錄作為掛載點,例如sudo mkdir -p /data

  4. 運行以下命令,檢查掛載結果是否符合您的預期。

    df -Th

    結果如下所示,如果出現建立檔案系統的資訊,表示檔案系統掛載成功。

    image

步驟四:配置開機自動掛載分區

您可以根據需要在/etc/fstab中寫入新分區資訊,配置開機自動掛載,以確保系統每次啟動時會自動掛載雲端硬碟分區。

  1. 運行以下命令,備份/etc/fstab檔案。

    sudo cp /etc/fstab /etc/fstab.bak
  2. /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"命令。

  3. (條件必選)如果單盤有多個連續分區的情況,需要分別將多個分區資訊寫入/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"
  4. 運行以下命令,查看/etc/fstab中的新分區資訊。

    cat /etc/fstab

    結果如下所示,可以查詢已配置的/dev/vdb1的分區資訊。

    image.png

    說明

    如果查詢的分區資訊有誤,您可以手動編輯/etc/fstab檔案,刪除錯誤分區資訊後,再重新添加分區資訊。具體操作,請參見在fstab檔案中配置UUID方式自動掛載資料盤

  5. 運行以下命令,驗證自動掛載功能是否生效。

    sudo umount /dev/vdb1
    sudo mount -a
    mount | grep /mnt

    結果如下所示,可以查詢檔案系統掛載資訊,說明自動掛載功能生效。

    image

初始化雲端硬碟FAQ

建立GPT分區時,分區未對齊如何解決?

  1. 運行以下命令,重新開始分區。本操作以資料盤/dev/vdb為例。

    sudo parted /dev/vdb
  2. 在parted工具分區介面,輸入以下內容,刪除錯誤分區,以錯誤分區號為1為例 (錯誤number號可以通過print查看)

    重要

    請在刪除分區前,確保分區內無資料或者資料已備份。

    rm 1
  3. 運行以下命令,保證開始位置與結束位置的單位為MiB、GiB,重新劃分分區。以MiB為例:

    mkpart primary <開始位置>MiB <結束位置>MiB 

Linux執行個體如何升級e2fsprogs工具包?

如果資料盤容量為16 TiB,您需要使用1.42及以上版本的e2fsprogs工具包完成ext4檔案系統格式化。如果e2fsprogs版本低於1.42,會出現如下錯誤資訊。

mkfs.ext4: Size of device /dev/vdb too big to be expressed in 32 bits using a blocksize of 4096.            

您需要按以下方式安裝高版本的e2fsprogs,例如本樣本中使用的1.42.8。

  1. 運行以下命令,檢查e2fsprogs當前的版本。

    rpm -qa | grep e2fsprogs

    運行結果如下所示。

    查詢版本

    如果目前的版本低於1.42,按以下步驟安裝軟體。

  2. 運行以下命令,下載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 --no-check-certificate
  3. 編譯高版本的工具。

    1. 運行以下命令,解壓軟體包。

      tar xvzf e2fsprogs-1.42.8.tar.gz
    2. 運行以下命令,進入軟體包目錄。

      cd e2fsprogs-1.42.8
    3. 運行以下命令,產生Makefile檔案。

      ./configure
    4. 運行以下命令,編譯e2fsprogs。

      make
    5. 運行以下命令,安裝e2fsprogs。

      make install
  4. 運行以下命令,檢查是否成功更新版本。

    rpm -qa | grep e2fsprogs

如何關閉Linux執行個體的lazy init功能?

ext4檔案系統預設開啟lazy init功能。該功能開啟時,執行個體會發起一個線程持續地初始化ext4檔案系統的metadata,從而延遲metadata初始化。因此,在格式化資料盤後的近期時間內,雲端硬碟的IOPS效能會受到影響,IOPS效能測試的資料會明顯偏低。

如果您需要在格式化以後馬上測試資料盤效能,請運行以下命令在格式檔案系統時關閉lazy_init功能。

sudo 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/vdb1
說明

關閉lazy init功能後,格式化的時間會大幅度延長,格式化32 TiB的資料盤可能需要10分鐘~30分鐘。請您根據自身的需要選擇是否使用lazy init功能。

相關文檔

  • 如果您的雲端硬碟容量大於2 TiB且需要通過雲端硬碟分區來分類儲存和管理資料。具體操作,請參見初始化大於2 TiB資料盤

  • 如果您希望直接以裸裝置形式使用(即不需要對雲端硬碟進行分區),您只需在初始化過程中為該裸裝置建立檔案系統即可。具體操作,請參見在裸裝置上建立檔案系統

  • 當雲端硬碟使用空間不足時,可以擴容雲端硬碟容量增加雲端硬碟儲存空間。更多資訊,請參見雲端硬碟擴容指引