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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EBS ボリュームの初期化

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

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

重要

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

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

  • ボリューム全体の即時初期化を強制する。詳細については、Linux インスタンス (Linux インスタンス) または Windows インスタンス (Windows インスタンス) を参照してください。

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

Linux で、スナップショットから作成されたボリュームを初期化するには
  1. 新しく復元されたボリュームを Linux インスタンスにアタッチします。

  2. インスタンスのブロックデバイスを一覧表示するには、lsblk コマンドを使用します。

    [ec2-user ~]$ 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. デバイスのすべてのブロックを読み取るには、dd ユーティリティまたは fio ユーティリティを使用します。Linux システムにデフォルトでインストールされているのは dd コマンドですが、マルチスレッドの読み取りが可能な fio の方が、処理速度が大幅に速くなります。

    注記

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

    [dd] if (入力ファイル) パラメータは、初期化するドライブに設定します。of (出力ファイル) パラメータは、Linux ヌル仮想デバイス /dev/null に設定する必要があります。bs パラメータは、読み取り操作のブロックサイズに設定します。最適なパフォーマンスを得るには、この値を 1 MB に設定します。

    重要

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

    [ec2-user ~]$ sudo dd if=/dev/xvdf of=/dev/null bs=1M

    [fio] システムに fio がインストールされている場合、ボリュームを初期化するには次のコマンドを使用します。--filename (入力ファイル) パラメータは、初期化するドライブに設定します。

    [ec2-user ~]$ 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. dd または fio を使用して、初期化するディスクを識別します。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. Windows 用の最新バイナリバージョンの dd を、http://www.chrysocome.net/dd からダウンロードします。

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

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

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

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

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

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

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

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

  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 ボリュームを使用できるようにする」を参照してください。