エフェメラルデバイスとebsデバイスは、文字の付いたデバイスファイル名をほとんどとることができるため、デバイス名だけに依存しないでください。デバイス名は、以下で概要を説明するように、一時的であるかどうかを判断するために重要です。「ephemeral」または「ebs」という単語を含むマウントポイント名に依存することも同様に信頼できません。
これの一部はEC2 GUIを介して実行できますが、サーバー自体でいくつかのコマンドを実行する必要があるため、ここでは「すべてのコマンドライン」メソッドを提供します。m3.medium CentOSミニマル6.5インスタンスストア(エフェメラル)を使用したAMIの例を紹介します。
1)wgetユーティリティをインストールします yum install -y wget
2)実行 wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -
この例のインスタンスストアでサポートされているAMI-上記のコマンド#2の出力は次のとおりです。
ami
ephemeral0
比較のために、EBSボリュームのみ(一時的なドライブなし)のEBSバックアップCentOSサーバーからの出力例を以下に示します。
ami
ebs2
ebs3
後でEBSボリュームを持つEBSバックアップインスタンスに戻ります。とりあえず、エフェメラルドライブを示す元のインスタンスストアでサポートされたAMIの例から続けましょう。
エフェメラルドライブにマップされているデバイスファイルを確認するには、もう一度wgetを実行します。今回は、上記の#2で検出したエフェメラルドライブの名前をURLに追加します。
3) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -
そして、この例では、出力は/でした:
sdb
これは、/ dev / sdb〜/ dev / sdeがebsデバイスであると想定できないという上記の私のポイントを強調しています。かもしれないけど- EBSあるの/ dev / xvdbは/ dev / xvdeていること本当である私のシステムでは、常には/ dev / xvde1で始まるこれらのデバイスの手紙の存在はおそらくあなたが使用している、OS、地域、AMIなどに依存して、。余談ですが、「ebs」名があれば#3を実行でき(例:)、ebs2
同様の出力が得られます。
4)次に、実行します lsblk
この場合、出力は次のようになります。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvde1 202:65 0 8G 0 disk /
xvdf 202:80 0 4G 0 disk
これは、デバイスが一時的なものであるかどうかを通知するためにマウントポイントに依存することはできないという上からの私のポイントを強調しています。
また、EC2デバイスのボリューム文字とOSのマッピング文字の間のマッピングが一致していないことにも気づくでしょう。ここで良いニュースの小さな断片は、ドライブ文字自体が一致しない場合でも、ドライブ文字が同じ順序で増加することです。それでは、デバイスマッピングのメタデータから「その他」のドライブ文字を取得しましょう。上記のように、2つのデバイスマッピングがあり、1つはともう1つはami
と呼ばれていましたephemeral0
。ephemeral0はすでに調べたので、amiを調べてみましょう。
5) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -
出力は次のとおりです。
sda1
OSマッピングの最下位の文字はEC2ブロックデバイスマッピングの最下位の文字であると自信を持って結論付けることができ、そこから上にインクリメントできます。したがって:
/dev/sda1 = /dev/xvde1
そして /dev/sdb = /dev/xvdf
最後に重要なことですが、ブロックデバイスマッピングami
は、それがEBSに基づいているか、インスタンスストアに基づいているかにはすぐには対応しません。実行するコマンドがもう1つあります。
6) wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -
私は、特定の EBSが唯一のインスタンスストアボリュームがマニフェスト(S3におけるAMIのバンドルセグメントのマニフェストリスト名とパス)を持っているので、AMIのマニフェストのパスを持っていないバックアップされていること。私がチェックした場合、インスタンスストアamiに対して実行したときの上記の#6の結果は次のようなものです。
someamibucketname/someamidescription/someamidescription.manifest.xml
一方、EBSを使用したAMIに対して#6を実行すると、次のようになります。
(unknown)