メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Amazon EBS ボリュームの初期化

新しい EBS ボリュームは、利用可能になるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は事前ウォーミングと呼ばれました) を必要としません。ただし、スナップショットから復元されたボリュームのストレージブロックは、アクセスするためには事前に初期化する必要があります (Amazon S3 からプルダウンしてボリュームに書き込みます)。この準備処理には時間がかかるため、初めて各ブロックにアクセスした場合に、I/O 操作のレイテンシーの著しい増加が発生する可能性があります。ほとんどのアプリケーションにとって、ボリュームの存続期間全体でこのコストを割り当てることは、許容範囲内です。一度データにアクセスされると、パフォーマンスは元に戻ります。

ボリュームを使用する前に、そのボリュームのすべてのブロックを対象に、読み取りを実行することで、本番環境におけるパフォーマンスの低下を回避することができます。このプロセスを「初期化」と呼びます。スナップショットから作成された新しいボリュームの場合は、ボリュームを使用する前に、データのあるすべてのブロックを読み取る必要があります。

重要

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

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

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

スナップショットから復元された Linux のボリュームを初期化するには

  1. 新しく復元されたボリュームを Linux インスタンスにアタッチします。

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

    Copy
    [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 に設定します。

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

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

    Copy
    [ec2-user ~]$ sudo fio --filename=/dev/xvdf --rw=read --bs=128k --iodepth=32 --ioengine=libaio --direct=1 --name=volume-initialize

    Amazon Linux に fio をインストールするには、次のコマンドを使用します。

    Copy
    sudo yum install -y fio

    Ubuntu に fio インストールするには、次のコマンドを使用します。

    Copy
    sudo apt-get install -y fio

    この操作が終了すると、読み取り操作のレポートが表示されます。これでボリュームを使用する準備ができました。詳細については、「Amazon EBS ボリュームを使用できるようにする」を参照してください。