Amazon EBS ボリュームの初期化
空の EBS ボリュームは、作成されるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は事前ウォーミングと呼ばれました) を必要としません。
スナップショットから作成されたボリュームの場合、アクセスする前に、ストレージブロックが Amazon S3 からプルダウンされてボリュームに書き込こまれる必要があります。この事前処理には一定の時間がかかるため、各ブロックへの初回アクセス時には、I/O 操作のレイテンシーが著しく増加する可能性があります。ボリュームのパフォーマンスは、すべてのブロックがダウンロードされてボリュームに書き込まれると正常値に達します。
スナップショットから作成された Provisioned IOPS SSD ボリュームを初期化している間は、ボリュームのパフォーマンスが想定レベルの 50% を下回る場合があります。このため、ボリュームは [I/O Performance (I/O 性能)] ステータスチェックで warning
状態が表示されます。これは想定の動作です。初期化中の Provisioned IOPS SSD ボリュームの warning
状態は無視してかまいません。詳細については、「EBS ボリュームステータスチェック」を参照してください。
ほとんどのアプリケーションにとって、ボリュームの存続期間全体で初期化コストを割り当てることは、許容範囲内です。本番環境におけるこの初期パフォーマンスヒットは、以下のいずれかの方法で回避できます。
-
ボリューム全体の即時初期化を強制する。詳細については、「」、「Windows での Amazon EBS ボリュームの初期化」を参照してください。
-
スナップショットの高速スナップショット復元を有効化して、スナップショットから作成される EBS ボリュームが作成時に完全に初期化され、各ボリュームのあらゆるプロビジョンドパフォーマンスが即座に発揮されるようにします。詳細については、「Amazon EBS 高速スナップショット復元」を参照してください。
Windows での Amazon EBS ボリュームの初期化
新しい EBS ボリュームは、利用可能になるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は事前ウォーミングと呼ばれました) を必要としません。スナップショットから作成されたボリュームの場合、ボリュームのすべてのブロックから読み取りを行うには Windows 用の dd または fio を使用します。ボリュームのすべてのデータが保持されます。
Linux での Amazon EBS ボリュームの初期化については、「Linux での Amazon EBS ボリュームの初期化」を参照してください。
どちらのツールを使用する前も、次のようにシステム上のディスクについての情報を収集してください。
システムディスクに関する情報を収集するには
-
システムで使用可能なディスクを一覧表示するには、wmic コマンドを使用します。
wmic diskdrive get size,deviceid
出力例を次に示します。
DeviceID Size \\.\PHYSICALDRIVE2 80517265920 \\.\PHYSICALDRIVE1 80517265920 \\.\PHYSICALDRIVE0 128849011200 \\.\PHYSICALDRIVE3 107372805120
-
dd または fio を使用して、初期化するディスクを識別します。
C:
ドライブは、\\.\PHYSICALDRIVE0
にあります。使用するドライブ番号がはっきりしない場合は、diskmgmt.msc
ユーティリティを使用して、ドライブ文字とディスクドライブ番号を比較できます。
ddを使用
dd をインストールおよび使用してボリュームを初期化するには、次の手順を実行します。
重要な考慮事項
-
ボリュームの初期化には、使用している EC2 インスタンスの帯域幅、ボリュームに対してプロビジョニングされている IOPS、そしてボリュームのサイズに応じて、数分から数時間かかることがあります。
-
dd を誤って使用すると、ボリュームのデータが失われる場合があります。この手順を正確に実行してください。
Windows 向け dd をインストールするには
Windows 用 dd プログラムは、Linux や Unix システムで共通して使用できる dd プログラムと同様の環境を提供します。このプログラムを使用すると、スナップショットから作成された Amazon EBS ボリュームを初期化することができます。最新のベータバージョンでは、/dev/null
仮想デバイスをサポートしています。以前のバージョンをインストールする場合は、代わりに nul
仮想デバイスを使用できます。詳細なドキュメントは、http://www.chrysocome.net/dd
-
Windows 用の最新バイナリバージョンの dd を、http://www.chrysocome.net/dd
からダウンロードします。 -
(オプション) 簡単に覚えられる場所に、コマンドラインユーティリティ用のフォルダを作成します (
C:\bin
など)。コマンドラインユーティリティ用にフォルダを既に指定した場合、次の手順を実行する代わりに、そのフォルダを使用できます。 -
バイナリパッケージを解凍し、
dd.exe
ファイルをコマンドラインユーティリティのフォルダ (C:\bin
など) にコピーします。 -
どこからでもフォルダ内のプログラムを実行できるようにするため、Path 環境変数にコマンドラインユーティリティのフォルダを追加します。
-
[スタート] を選択し、[PC] のコンテキスト (右クリック) メニューを開いて、[プロパティ] を選択します。
-
[システムの詳細設定]、[環境変数] の順に選択します。
-
[システム環境変数] で [Path] 変数を選択し、[編集] を選択します。
-
[変数値] として、既存の値の最後に、セミコロンとコマンドラインユーティリティフォルダの場所 (
;C:\bin\)
) を追加します。 -
[OK] をクリックして、[システム変数の編集] ウィンドウを閉じます。
-
-
新しいコマンドプロンプトウィンドウを開きます。前の手順を行っても、現在開いているコマンドプロンプトウィンドウの環境変数は更新されません。前の手順を完了した時点で開くコマンドプロンプトウィンドウが更新されます。
Windows 用 dd を使ってボリュームを初期化するには
指定したデバイスのすべてのブロックの読み取り (および /dev/null
仮想デバイスへの出力の送信) を実行するには、次のコマンドを実行します。このコマンドは、既存のデータを安全に初期化します。
dd if=\\.\PHYSICALDRIVE
n
of=/dev/null bs=1M --progress --size
dd がボリュームの末尾を超えて読み取りを行おうとすると、エラーが表示されることがあります。このエラーを無視しても問題ありません。
以前のバージョンの dd コマンドを使用した場合、そのコマンドは /dev/null
デバイスをサポートしていません。代わりに、次のように nul
デバイスを使用することができます。
dd if=\\.\PHYSICALDRIVE
n
of=nul bs=1M --progress --size
fioを使用
fio をインストールおよび使用してボリュームを初期化するには、次の手順を実行します。
Windows 用 fio をインストールするには
Windows 用 fio プログラムは、Linux や Unix システムで共通して使用できる fio プログラムと同様の環境を提供します。このプログラムを使用すると、スナップショットから作成された Amazon EBS ボリュームを初期化することができます。詳細については、「https://github.com/axboe/fio
fioMSI
インストーラ (最新の x86 または x64 ビルドを選択後、[アーティファクト] を選択) をダウンロードします。 -
fio をインストールします。
Windows 用 fio を使用してボリュームを初期化するには
-
次のようなコマンドを実行してボリュームを初期化します。
fio --filename=\\.\PHYSICALDRIVE
n
--rw=read --bs=128k --iodepth=32 --direct=1 --name=volume-initialize -
この操作が終了すると、新規ボリュームを使用する準備が完了します。詳細については、「Windows で Amazon EBS ボリュームを使用できるようにする」を参照してください。