Amazon EBS ボリュームの初期化 - Amazon Elastic Compute Cloud

Amazon EBS ボリュームの初期化

空の EBS ボリュームは、作成されるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は事前ウォーミングと呼ばれました) を必要としません。

スナップショットから作成されたボリュームの場合、アクセスする前に、ストレージブロックが Amazon S3 からプルダウンされてボリュームに書き込こまれる必要があります。この事前処理には一定の時間がかかるため、各ブロックへの初回アクセス時には、I/O 操作のレイテンシーが著しく増加する可能性があります。ボリュームのパフォーマンスは、すべてのブロックがダウンロードされてボリュームに書き込まれると正常値に達します。

重要

スナップショットから作成された io1 ボリュームを初期化している間は、ボリュームのパフォーマンスが想定レベルの 50% を下回る場合があります。このため、ボリュームは [I/O Performance (I/O 性能)] ステータスチェックで warning 状態が表示されます。これは想定の動作です。初期化中の io1 ボリュームの warning 状態は無視してかまいません。詳細については、「EBS ボリュームステータスチェック」を参照してください。

ほとんどのアプリケーションにとって、ボリュームの存続期間全体で初期化コストを割り当てることは、許容範囲内です。本番環境におけるこの初期パフォーマンスヒットは、以下のいずれかの方法で回避できます。

  • ボリューム全体の即時初期化を強制する。詳細については、「Windows の Amazon EBS ボリュームの初期化」を参照してください。

  • スナップショットの高速スナップショット復元を有効化して、スナップショットから作成される EBS ボリュームが作成時に完全に初期化され、各ボリュームのあらゆるプロビジョンドパフォーマンスが即座に発揮されるようにします。詳細については、「Amazon EBS 高速スナップショット復元」を参照してください。

Windows の Amazon EBS ボリュームの初期化

新しい EBS ボリュームは、利用可能になるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は事前ウォーミングと呼ばれました) を必要としません。スナップショットから作成されたボリュームの場合、ボリュームのすべてのブロックから読み取りを行うには Windows 用の dd または fio を使用します。ボリュームのすべてのデータが保持されます。

Linux での Amazon EBS ボリュームの初期化については、「Linux での Amazon EBS ボリュームの初期化」を参照してください。

どちらのツールを使用する前も、次のようにシステム上のディスクについての情報を収集してください。

  1. システムで使用可能なディスクを一覧表示するには、wmic コマンドを使用します。

    wmic diskdrive get size,deviceid

    出力例を次に示します。

    DeviceID Size \\.\PHYSICALDRIVE2 80517265920 \\.\PHYSICALDRIVE1 80517265920 \\.\PHYSICALDRIVE0 128849011200 \\.\PHYSICALDRIVE3 107372805120
  2. dd または fio を使用して、初期化するディスクを識別します。C: ドライブは、\\.\PHYSICALDRIVE0 にあります。使用するドライブ番号がはっきりしない場合は、diskmgmt.msc ユーティリティを使用して、ドライブ文字とディスクドライブ番号を比較できます。

dd を使用する

dd をインストールおよび使用してボリュームを初期化するには、次の手順を実行します。

注記

このステップは、使用している EC2 インスタンスの帯域幅、ボリュームに対してプロビジョニングされている IOPS、そしてボリュームのサイズに応じて、数分から数時間かかることがあります。

Windows 用 dd をインストールする

Windows 用 dd プログラムは、Linux や Unix システムで共通して使用できる dd プログラムと同様の環境を提供します。このプログラムを使用すると、スナップショットから作成された Amazon EBS ボリュームを初期化することができます。このドキュメントの執筆時点では、最新のベータバージョンには、スナップショットから作成されたボリュームを初期化するために必要な /dev/null 仮想デバイスが含まれています。プログラムの詳細なドキュメントは、http://www.chrysocome.net/dd から入手できます。

  1. Windows 用の最新バイナリバージョンの dd を、http://www.chrysocome.net/dd からダウンロードします。ボリュームを初期化するには、0.6 ベータ 3 以降のバージョンを使用する必要があります。

  2. (オプション) 簡単に覚えられる場所に、コマンドラインユーティリティ用のフォルダを作成します (C:\bin など)。コマンドラインユーティリティ用にフォルダを既に指定した場合、次の手順を実行する代わりに、そのフォルダを使用できます。

  3. バイナリパッケージを解凍し、dd.exe ファイルをコマンドラインユーティリティのフォルダ (C:\bin など) にコピーします。

  4. どこからでもフォルダ内のプログラムを実行できるようにするため、Path 環境変数にコマンドラインユーティリティのフォルダを追加します。

    重要

    以下の手順を行っても、現在開いているコマンドプロンプトウィンドウの環境変数は更新されません。これらの手順を完了してからコマンドプロンプトウィンドウを開くと、更新分が反映されます。環境が適切に設定されたことを確認するために、新しいコマンドプロンプトウィンドウを開く必要があるのは、このためです。

    1. [スタート] を選択し、[PC] のコンテキスト (右クリック) メニューを開いて、[プロパティ] を選択します。

    2. [システムの詳細設定]、[環境変数] の順に選択します。

    3. [システム環境変数] で [Path] 変数を選択し、[編集] を選択します。

    4. [変数値] として、既存の値の最後に、セミコロンとコマンドラインユーティリティフォルダの場所 (;C:\bin\)) を追加します。

    5. [OK] をクリックして、[システム変数の編集] ウィンドウを閉じます。

Windows 用 dd を使用してボリュームを初期化するには

  1. 指定したデバイスのすべてのブロックの読み取り (および /dev/null 仮想デバイスへの出力の送信) を実行するには、次のコマンドを実行します。このコマンドは、既存のデータを安全に初期化します。

    重要

    dd を誤って使用すると、ボリュームのデータが失われる場合があります。以下のコマンド例に正確に従ってください。if=\\.\PHYSICALDRIVEn パラメータのみ、読み出しているデバイスの名前によって異なります。

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

    dd がボリュームの末尾を超えて読み取りを行おうとすると、エラーが表示されることがあります。これは安全に無視できます。

  2. この操作が終了すると、新規ボリュームを使用する準備が完了します。詳細については、「Windows で Amazon EBS ボリュームを使用できるようにする」を参照してください。

fio の使用

fio をインストールおよび使用してボリュームを初期化するには、次の手順を実行します。

Windows 用 fio をインストールするには

Windows 用 fio プログラムは、Linux や Unix システムで共通して使用できる fio プログラムと同様の環境を提供します。このプログラムを使用すると、スナップショットから作成された Amazon EBS ボリュームを初期化することができます。詳細については、「https://github.com/axboe/fio」を参照してください。

  1. fioMSI インストーラ (最新の x86 または x64 ビルドを選択後、[アーティファクト] を選択) をダウンロードします。

  2. インストール fio.

Windows 用 fio を使用してボリュームを初期化するには

  1. 次のようなコマンドを実行してボリュームを初期化します。

    fio --filename=\\.\PHYSICALDRIVEn --rw=read --bs=128k --iodepth=32 --direct=1 --name=volume-initialize
  2. この操作が終了すると、新規ボリュームを使用する準備が完了します。詳細については、「Windows で Amazon EBS ボリュームを使用できるようにする」を参照してください。