初始化 Amazon EBS 磁碟區 - Amazon EBS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

初始化 Amazon EBS 磁碟區

當您從快照建立磁碟區時,必須從 Amazon S3 下載快照中的儲存區塊並寫入磁碟區,然後才能存取它們。此程序稱為磁碟區初始化。在此期間,磁碟區可能會遇到 I/O 延遲增加和效能降低的情況。只有在所有儲存區塊都下載並寫入磁碟區後,才能達到完整磁碟區效能。

注意

空的磁碟區會在建立後立即提供其最高效能,且不需要初始化。

預設磁碟區初始化速率會在整個初始化過程中波動,這可能會使完成時間無法預測。

若要將與磁碟區初始化相關的效能影響降至最低,您可以使用下列選項:

使用 Amazon EBS 佈建費率進行磁碟區初始化

當您從快照建立 Amazon EBS 磁碟區時,您可以選擇指定磁碟區初始化的 Amazon EBS 佈建速率 (磁碟區初始化速率),範圍介於 100 到 300 MiB/s 之間。如果您指定磁碟區初始化速率,快照區塊會從 Amazon S3 下載,並在建立後以指定的速率寫入磁碟區。這可讓您建立在可預測的時間內完全初始化和完全執行的磁碟區。

當您同時建立多個磁碟區時,使用磁碟區初始化率特別有用,而且您需要所有磁碟區初始化可預測的時間量。

您可以指定磁碟區初始化速率:

  • 對於個別磁碟區建立請求

  • 對於執行個體啟動請求中的 EBS 磁碟區區塊型設備映射

  • 對於啟動範本中的 EBS 磁碟區區塊型設備映射

  • 對於根磁碟區替換任務建立的 EBS 磁碟區

  • 對於 Amazon EKS 叢集 (由 EBS CSI 驅動程式建立) 和 Amazon ECS 叢集上的 EBS 磁碟區

運作方式

當您建立具有磁碟區初始化速率的磁碟區時,快照區塊會以您指定的速率從 Amazon S3 下載到磁碟區。

初始化磁碟區所需的時間取決於下列項目:

  • 快照資料的大小,而不是要建立的磁碟區大小。

    提示

    若要尋找快照的資料大小,請檢查 describe-snapshots 命令輸出中的 FullSnapshotSizeInBytes 欄位,或主控台中的完整快照大小欄位。

  • 您指定的磁碟區初始化速率

例如,如果您使用具有 10 GiB 資料的快照建立 20 GiB 磁碟區,並指定 300 MiB/s 的磁碟區初始化速率,則磁碟區會在大約 34.1 秒內完全初始化 (10 GiB/300 MiB/s = 34.1 秒)。同樣地,如果您同時建立具有相同快照和磁碟區初始化速率的 10 個磁碟區,則所有 10 個磁碟區將在 34.1 秒內完全初始化。

考量事項

  • 您可以指定介於 100 和 300 MiB/s 之間的磁碟區初始化速率。

  • 當您指定磁碟區初始化速率時,費用和完成時間取決於快照資料的大小 (而非磁碟區的大小) 和您指定的速率。如需詳細資訊,請參閱帳單

  • Amazon EBS 會提供平均速率,該速率在您 99% 時間所指定磁碟區初始化速率的 10% 內。

  • 如果您指定磁碟區初始化速率並使用已啟用快速快照還原的快照,Amazon EBS 會使用指定的速率,而不是快速快照還原。若要改用快速快照還原,請勿指定磁碟區初始化速率。

  • 如果由於容量限制或您已超過配額,Amazon EBS 無法以指定的磁碟區初始化速率初始化磁碟區,請求會失敗。

  • 您無法為在本機區域 AWS Outposts或 Wavelength 區域中建立的磁碟區指定磁碟區初始化速率。

配額

您可以跨並行磁碟區建立請求請求的累積磁碟區初始化速率限制為 5,000 MiB/s。例如,您可以發出 50 個並行磁碟區建立請求,速率為 100 MiB/s (50 個同時請求 * 100 MiB/s 速率),或 25 個並行請求,速率為 200 MiB/s (25 個同時請求 * 200 MiB/s 速率)。此限制適用於每個區域。如果請求超過此限制,則會失敗。您可以等待某些進行中請求完成或請求提高配額。如需詳細資訊,請參閱Amazon EBS 的配額

監控

當您以磁碟區初始化速率建立磁碟區時,Amazon EventBridge 事件會在初始化完成後五分鐘內傳送至您的帳戶。如需詳細資訊,請參閱EBS 磁碟區初始化事件

如果您在初始化完成之前或在初始化完成後 5 分鐘內刪除磁碟區,則可能不會收到事件。

帳單

當您建立具有磁碟區初始化速率的磁碟區時,會向您收取每個 GiB 的快照資料速率、每個 MiB 的指定初始化速率。費率因區域而異。如需詳細資訊,請參閱 Amazon EBS 定價

您需要根據快照資料的大小付費,而非磁碟區的大小。例如,如果您建立大小為 100 GiB 但只有 50 GiB 資料的磁碟區快照,則快照的磁碟區大小為 100 GiB,但快照資料大小為 50 GiB。如果您使用該快照來建立磁碟區並指定磁碟區初始化速率,您的費用會根據快照資料的 50 GiB 計算。

提示

若要尋找快照的資料大小,請檢查 describe-snapshots 命令輸出中的 FullSnapshotSizeInBytes 欄位,或主控台中的完整快照大小欄位。

公式如下:

rate for Region x snapshot data size x volume initialization rate

一旦磁碟區進入 active 狀態,就會向您收取完整金額。失敗的請求不會計費。

如果您在磁碟區初始化完成之前刪除磁碟區,您仍需支付請求的磁碟區初始化費率。

使用已啟用快速快照還原的快照

如果您從已啟用快速快照還原的快照建立磁碟區,該磁碟區會在建立時完全初始化,並立即提供其完整效能。如需使用快速快照還原的詳細資訊,請參閱 Amazon EBS 快速快照還原

建立後手動初始化磁碟區

您可以在建立之後手動初始化 Amazon EBS 磁碟區,以協助將磁碟區初始化的效能影響降至最低。

您可以使用下列程序,在建立之後手動初始化 Amazon EBS 磁碟區。

重要

在初始化從快照建立的 Provisioned IOPS SSD 磁碟區時,磁碟區的效能可能會降到預期的 50% 以下,並導致磁碟區在 I/O Performance (I/O 效能) 狀態檢查中顯示 warning 狀態。這是預期的情況,因此在初始化 Provisioned IOPS SSD 磁碟區時,您可以忽略這些磁碟區的 warning 狀態。如需詳細資訊,請參閱Amazon EBS 磁碟區狀態檢查

在 Linux 上初始化從快照建立的磁碟區
  1. 將新還原的磁碟區連接至您的 Linux 執行個體。

  2. 使用 lsblk 命令列出執行個體上的區塊型儲存設備。

    $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 30G 0 disk xvda1 202:1 0 8G 0 disk /

    在這裡,您可以看到新磁碟區 /dev/xvdf 已連接,但未掛載 (因為在 MOUNTPOINT 欄下沒有列出路徑)。

  3. 請使用 ddfio 公用程式來讀取裝置上的所有區塊。dd 命令在 Linux 系統上為預設安裝,但是 fio 速度較快,因為允許多執行緒讀取。

    注意

    此步驟可能需要幾分鐘至幾個小時,取決於您的 EC2 執行個體頻寬、為磁碟區佈建的 IOPS 以及磁碟區大小。

    [dd] if (輸入檔案) 參數應設定為您希望初始化的磁碟機。of (輸出檔案) 參數應設定為 Linux null 虛擬裝置,/dev/nullbs 參數設定讀取操作的區塊大小;為獲得最佳效能,應將其設定為 1 MB。

    重要

    錯誤使用 dd 可能會輕易破壞磁碟區的資料。請務必嚴格遵循以下範例命令。只有 if=/dev/xvdf 參數取決於您正在讀取的裝置名稱。

    $ sudo dd if=/dev/xvdf of=/dev/null bs=1M

    [fio] 如果您的系統上安裝了 fio,請使用下列命令來初始化您的磁碟區。--filename (輸入檔案) 參數應設定為您希望初始化的磁碟機。

    $ sudo fio --filename=/dev/xvdf --rw=read --bs=1M --iodepth=32 --ioengine=libaio --direct=1 --name=volume-initialize

    若要在 Amazon Linux 上安裝 fio,請使用下列命令:

    sudo yum install -y fio

    若要在 Ubuntu 上安裝 fio,請使用下列命令:

    sudo apt-get install -y fio

    操作完成後,您將看到讀取操作的報告。您的磁碟區現在已可使用。如需詳細資訊,請參閱讓 Amazon EBS 磁碟區可供使用

在使用任一工具之前,請按照下列步驟來收集系統中磁碟機的資訊:

若要收集系統磁碟的相關資訊
  1. 使用 wmic 命令,列出系統上的可用磁碟機:

    wmic diskdrive get size,deviceid

    下列為範例輸出:

    DeviceID Size \\.\PHYSICALDRIVE2 80517265920 \\.\PHYSICALDRIVE1 80517265920 \\.\PHYSICALDRIVE0 128849011200 \\.\PHYSICALDRIVE3 107372805120
  2. 使用 ddfio 來識別要初始化的磁碟機。C: 磁碟機在 \\.\PHYSICALDRIVE0 上。如果您不確定要使用哪個磁碟機代號,則可以使用 diskmgmt.msc 公用程式將磁碟機代號與磁碟機號碼做比較。

Use the dd utility

完成下列程序以安裝並使用 dd 來初始化磁碟區。

重要考量
  • 初始化磁碟機可能需要幾分鐘至幾個小時,取決於您的 EC2 執行個體頻寬、為磁碟區佈建的 IOPS 以及磁碟區大小。

  • 錯誤使用 dd 可能會輕易破壞磁碟區的資料。請務必嚴格遵循此程序。

若要安裝 Windows 的 dd

用於 Windows 程式的 dd 提供與 Linux 和 Unix 系統一般可用的 dd 程式類似體驗,讓您能初始化從快照中建立的 Amazon EBS 磁碟區。最新的測試版本可支援 /dev/null 虛擬裝置。如果您安裝舊版,則可以改用 nul 虛擬裝置。完如需完整文件,請參閱 http://www.chrysocome.net/dd

  1. 請從 http://www.chrysocome.net/dd 下載 Windows 之 dd 的最新二進位版本。

  2. (選用) 為命令列公用程式建立一個易於定位和記憶的資料夾,如 C:\bin。如果您已經有命令列公用程式的指定資料夾,則可以在下列步驟中使用該資料夾。

  3. 解壓縮該二進位套件並將 dd.exe 檔案複製到命令列公用程式資料夾 (例如 C:\bin)。

  4. 將命令列公用程式資料夾新增至 Path 環境變數中,以便您可以從任何位置執行該資料夾中的程式。

    1. 選擇 Start (啟動),開啟內容功能表 (用滑鼠右鍵按一下) 的 Computer (我的電腦),並選擇 Properties (屬性)

    2. 選擇 Advanced system settings (進階系統設定)Environment Variables (環境變數)

    3. 針對 System Variables (系統變數),選取 Path (路徑) 變數,並選取 Edit (編輯)

    4. 針對變數值,將分號和命令列公用程式資料夾 (;C:\bin\)) 的位置附加到現有值的結尾。

    5. 選擇 OK (確認) 以關閉 Edit System Variable (編輯系統變數) 視窗。

  5. 開啟新的命令提示視窗。上一步不會更新目前命令提示視窗中的環境變數。因您已完成上一步而開啟的命令提示字元視窗已更新。

若要使用 Windows 的 dd 來初始化磁碟區

執行下列命令來讀取指定裝置上的所有區塊 (並將輸出傳送至 /dev/null 虛擬裝置)。該命令會安全地初始化您的現有資料。

dd if=\\.\PHYSICALDRIVEn of=/dev/null bs=1M --progress --size

如果 dd 嘗試讀取超過磁碟區的結尾,您可能會發生錯誤。您可以放心忽略此錯誤。

如果您使用舊版 dd 指令,則其不支援 /dev/null 裝置。反之,您可以使用以下所示的 nul 裝置。

dd if=\\.\PHYSICALDRIVEn of=nul bs=1M --progress --size
Use the fio utility

完成下列程序以安裝並使用 fio 來初始化磁碟區。

安裝 Windows 的 fio

用於 Windows 程式的 fio 提供與 Linux 和 Unix 系統一般可用的 fio 程式類似體驗,允許您初始化從快照中建立的 Amazon EBS 磁碟區。如需詳細資訊,請參閱 https://github.com/axboe/fio

  1. 展開最新版本的資產並選取 fio MSI 安裝程式,下載該 MSI 安裝程式。

  2. 安裝 fio

使用 Windows 的 fio 來初始化磁碟區
  1. 質性類似於下列的命令來初始化磁碟區:

    fio --filename=\\.\PHYSICALDRIVEn --rw=read --bs=128k --iodepth=32 --direct=1 --name=volume-initialize
  2. 操作完成後,您即可使用新磁碟區。如需詳細資訊,請參閱讓 Amazon EBS 磁碟區可供使用