Amazon EBS ボリュームの初期化
EBS スナップショットまたは別の EBS ボリューム (ボリュームコピー) から Amazon EBS ボリュームを作成する場合、データブロックにアクセスする前に、データブロックをボリュームに書き込む必要があります。スナップショットから作成されたボリュームの場合は、データブロックを Amazon S3 から新しいボリュームにダウンロードする必要があります。ボリュームコピーの場合は、データブロックをソースボリュームからボリュームコピーにコピーする必要があります。このプロセスはボリューム初期化と呼ばれます。この間、初期化されるボリュームでは、I/O レイテンシーが増加し、パフォーマンスが低下する可能性があります。フルボリュームのパフォーマンスは、すべてのブロックがダウンロードされてボリュームに書き込まれた場合にのみ達成されます。
注記
空のボリュームは、作成直後に最大パフォーマンスを実現し、初期化は必要ありません。
デフォルトのボリューム初期化レートは初期化プロセス全体で変動するため、完了時間が予測できなくなる可能性があります。ボリューム初期化に関連するパフォーマンスへの影響を最小限に抑えるため、次のオプションを使用できます。
注記
ボリューム初期化レートと高速スナップショット復元は、ボリュームコピーではサポートされていません。詳細については、「Initialization」を参照してください。
トピック
ボリューム初期化に Amazon EBS プロビジョンドレートを使用する
スナップショットから Amazon EBS ボリュームを作成する場合、オプションで、100~300 MiB/秒の範囲のボリューム初期化の Amazon EBS プロビジョンドレート (ボリューム初期化レート) を指定できます。ボリューム初期化レートを指定すると、スナップショットブロックは Amazon S3 からダウンロードされ、作成後に指定されたレートでボリュームに書き込まれます。これにより、予測可能な時間内に完全に初期化され、完全にパフォーマンスを発揮するボリュームを作成できます。
ボリューム初期化レートは、複数のボリュームを同時に作成していて、すべてのボリュームを予測可能な時間内に初期化する必要がある場合に特に便利です。
注記
ボリューム初期化の Amazon EBS プロビジョンドレートは、すべての Amazon EBS ボリュームタイプ、および Amazon EC2 Mac インスタンスを含むすべての Amazon EC2 インスタンスタイプでサポートされています。
ボリューム初期化レートは以下の場合に指定できます。
-
個々のボリューム作成リクエストの場合
-
インスタンス起動リクエストの EBS ボリュームブロックデバイスマッピングの場合
-
起動テンプレートの EBS ボリュームブロックデバイスマッピングの場合
-
ルートボリューム置換タスクによって作成された EBS ボリュームの場合
-
Amazon EKS クラスター (EBS CSI ドライバーによって作成) および Amazon ECS クラスターの EBS ボリュームの場合
仕組み
ボリューム初期化レートでボリュームを作成すると、スナップショットブロックは指定したレートで Amazon S3 からボリュームにダウンロードされます。
ボリューム初期化にかかる時間は、以下によって異なります。
-
スナップショットのデータサイズ (作成されるボリュームのサイズではありません)。
ヒント
スナップショットのデータサイズを確認するには、describe-snapshots コマンド出力の
FullSnapshotSizeInBytesフィールド、またはコンソールの [フルスナップショットサイズ] フィールドを確認します。 -
指定したボリューム初期化レート
例えば、10 GiB のデータを持つスナップショットを使用して 20 GiB ボリュームを作成し、300 MiB/秒のボリューム初期化レートを指定すると、ボリュームは約 34.1 秒 (10 GiB / 300 MiB/秒 = 34.1 秒) で完全に初期化されます。同様に、同じスナップショットとボリューム初期化レートで同時に 10 個のボリュームを作成すると、10 個のボリュームすべてが 34.1 秒で完全に初期化されます。
考慮事項
-
ボリューム初期化レートは 100~300 MiB/秒の間で指定できます。
-
ボリューム初期化レートを指定する場合、料金と完了時間は、スナップショットデータのサイズ (ボリュームのサイズではありません) と指定したレートによって決まります。詳細については、「請求」を参照してください。
-
Amazon EBS は、お客様が 99% の時間用に指定したボリューム初期化レートの 10% 以内の平均レートを提供します。
-
ボリューム初期化レートを指定し、高速スナップショット復元が有効になっているスナップショットを使用した場合、Amazon EBS では高速スナップショット復元ではなく指定されたレートが使用されます。高速スナップショット復元を使用したい場合は、ボリューム初期化レートを指定しないでください。
-
容量の制約またはクォータの超過により、Amazon EBS が指定されたボリューム初期化レートでボリュームを初期化できない場合、リクエストは失敗します。
-
AWS Outposts、ローカルゾーン、または Wavelength Zone で作成されたボリュームのボリューム初期化レートを指定することはできません。
クォータ
同時ボリューム作成リクエスト間でリクエストできる累積ボリューム初期化レートには、5,000 MiB/秒の制限があります。例えば、100 MiB/秒のレートで 50 件の同時ボリューム作成リクエスト (50 件の同時リクエスト x 100 MiB/秒のレート)、または 200 MiB/秒のレートで 25 件の同時リクエスト (25 件の同時リクエスト x 200 MiB/秒のレート) を実行できます。この制限はリージョンごとに適用されます。リクエストがこの制限を超えると、リクエストは失敗します。その場合は進行中のリクエストの一部が完了するまで待つか、クォータの引き上げをリクエストします。詳細については、「Amazon EBS のクォータ」を参照してください。
請求
ボリューム初期化レートでボリュームを作成すると、スナップショットデータの GiB あたりのレート、指定した初期化レートの MiB あたりのレートで請求されます。レートはリージョンによって異なります。詳細については、Amazon EBS の料金表
ボリュームのサイズではなく、スナップショットデータのサイズに基づいて請求されます。例えば、サイズが 100 GiB のボリュームのスナップショットを作成したものの、データ量が 50 GiB しかない場合、スナップショットのボリュームサイズが 100 GiB であっても、スナップショットのデータサイズは 50 GiB となります。そのスナップショットを使用してボリュームを作成し、ボリューム初期化レートを指定する場合、請求は 50 GiB のスナップショットデータに基づいて行われます。
ヒント
スナップショットのデータサイズを確認するには、describe-snapshots コマンド出力の FullSnapshotSizeInBytes フィールド、またはコンソールの [フルスナップショットサイズ] フィールドを確認します。
計算式は次のとおりです。
rate for Regionxsnapshot data sizexvolume 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 で、スナップショットから作成されたボリュームを初期化するには
-
新しく復元されたボリュームを Linux インスタンスにアタッチします。
-
インスタンスのブロックデバイスを一覧表示するには、lsblk コマンドを使用します。
$lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 30G 0 disk xvda1 202:1 0 8G 0 disk /ここでは、新しいボリューム
/dev/xvdfがアタッチされていますが、マウントされていないことがわかります (MOUNTPOINT列の下にリストされているパスがないため)。 -
デバイスのすべてのブロックを読み取るには、dd ユーティリティまたは fio ユーティリティを使用します。Linux システムにデフォルトでインストールされているのは dd コマンドですが、マルチスレッドの読み取りが可能な fio の方が、処理速度が大幅に速くなります。
注記
このステップは、使用している EC2 インスタンスの帯域幅、ボリュームに対してプロビジョニングされている IOPS、そしてボリュームのサイズに応じて、数分から数時間かかることがあります。
[dd]
if(入力ファイル) パラメータは、初期化するドライブに設定します。of(出力ファイル) パラメータは、Linux ヌル仮想デバイス/dev/nullに設定する必要があります。bsパラメータは、読み取り操作のブロックサイズに設定します。最適なパフォーマンスを得るには、この値を 1 MB に設定します。重要
dd を誤って使用すると、ボリュームのデータが失われる場合があります。以下のコマンド例に正確に従ってください。
if=/dev/パラメータのみ、読み出しているデバイスの名前によって異なります。xvdf$sudo dd if=/dev/xvdfof=/dev/null bs=1M[fio] システムに fio がインストールされている場合、ボリュームを初期化するには次のコマンドを使用します。
--filename(入力ファイル) パラメータは、初期化するドライブに設定します。$sudo fio --filename=/dev/xvdf--rw=read --bs=1M --iodepth=32 --ioengine=libaio --direct=1 --name=volume-initializeAmazon Linux に fio をインストールするには、次のコマンドを使用します。
sudo yum install -y fioUbuntu に fio インストールするには、次のコマンドを使用します。
sudo apt-get install -y fioこの操作が終了すると、読み取り操作のレポートが表示されます。これでボリュームを使用する準備ができました。詳細については、「Amazon EBS ボリュームを使用できるようにする」を参照してください。
どちらのツールを使用する前も、次のようにシステム上のディスクについての情報を収集してください。
システムディスクに関する情報を収集するには
-
システムで使用可能なディスクを一覧表示するには、wmic コマンドを使用します。
wmic diskdrive get size,deviceid出力例を次に示します。
DeviceID Size \\.\PHYSICALDRIVE2 80517265920 \\.\PHYSICALDRIVE1 80517265920 \\.\PHYSICALDRIVE0 128849011200 \\.\PHYSICALDRIVE3 107372805120 -
dd または fio を使用して、初期化するディスクを識別します。
C:ドライブは、\\.\PHYSICALDRIVE0にあります。使用するドライブ番号がはっきりしない場合は、diskmgmt.mscユーティリティを使用して、ドライブ文字とディスクドライブ番号を比較できます。