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

Amazon EBS ボリュームの初期化

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

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

重要

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

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

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

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

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

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

スナップショットから復元された 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=128k --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

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