18

ec2 インスタンスに付属するエフェメラル ストレージを使用して、データベースを /mnt に保持しています。ec2 API ツールを使用してバックアップを作成するには、ボリューム ID が必要ですが、AWS コンソールでは、8 GB のルート ストレージのボリューム ID のみを見つけることができます。

一時ストレージのバックアップが必要な場合はどうすればよいですか? インスタンス ストレージをバックアップするための代替手段はありますか?

4

4 に答える 4

31

何よりもまず、Amazon EC2の一時的なストレージに永続的な価値のあるものを保存ないください。エフェメラル ストレージの概念、 Amazon EC2 インスタンス ストレージAmazon EBSのそれぞれの違い、およびデータの安全性とバックアップ要件に関する重要な意味についての誤解:

エフェメラル ストレージは、停止/開始サイクルで失われ通常はなくなる可能性があるため、永続的な価値のあるものは絶対にそこに置きたくありません。つまり、スワップ ファイルのように、簡単に失ったり再構築したりできる一時的なデータのみをそこに置きます。または、計算中に使用される厳密に一時的なデータ。もちろん、たとえばそこに巨大なインデックスを保存することもできますが、何らかの理由 (インスタンスの再起動、ハードウェア障害など) でストレージがクリアされた後に、これらを再構築する準備をしておく必要があります。

  • これは、Eric Hammond がYou Should Use EBS Boot Instances on Amazon EC2で見事にまとめた多くの理由の 1 つです。この記事では、2 つのストレージ概念の歴史と相違点を概説し、エフェメラル ストレージの残りのわずかな利点 (主に豊富で無料であること) を評価しています。 )。

問題解決

これらの説明により、EBS ボリューム (つまり、EBS スナップショット) のみに適用されるメカニズムで一時ストレージ ボリュームをバックアップできない理由が明確になります。したがって、選択した通常のオペレーティング システム レベルのバックアップ ツールを使用して前者をバックアップできます。Duplicityは一般的な選択肢であり、オプションでAmazon S3を容易にします

于 2012-05-25T08:27:05.767 に答える
6

エフェメラル ストレージ (インスタンス ストレージ) は、そのままでは /tmp フォルダーのようなもので、再起動後にその内容が消えます。もちろん、エフェメラル ドライブの内容はソフト リブートでは破棄されませんが、インスタンスがいつ終了するかを現実的に制御または予測することはできないため、破棄されたかのように扱う必要があります。

これはすでに指摘されています。

私が指摘したいのは、AMI を適切に作成して構成すれば、実際のストレージ用に EBS ドライブも保持している限り、エフェメラル ストレージを使用して (読み取り) スループットを大幅に向上させることができるということです。

私が現在使用しているのは、bcache を備えた Linux (Ubuntu Tahr) インスタンスです。これは主に、bcache カーネルのサポートが比較的新しく (IIRC、bcache を使用した最初のものは 3.10 でした)、できるだけ新しいカーネルが必要であるためです。また、Tahr は Ubuntu の次の LTS バージョンであり、私のプロジェクトの立ち上げが近づいたときに最終版になります ;)

Bcache は、デフォルト設定では、EBS の永続性を提供しながら、一時ストレージの読み取り速度の恩恵を受けることができます: 高速キャッシュ デバイス (一時 SSD) を取得し、それを使用して低速デバイス (EBS) を高速化します。キャッシュデバイスを介した書き込み (つまり、一時キャッシュと EBS への同時書き込み)。

これは、インスタンスがクラッシュしたり停止したりした場合でも、キャッシュなしで EBS ボリュームを直接マウントし、EBS ボリュームのみを使用する場合と同じようにすべてのデータにアクセスできることを意味します。また、ワイプされたエフェメラル デバイスを再構成し、それらを EBS へのキャッシュとして再構成して、非常に高速な読み取りとシークを再び利用できるようにすることもできます。

私の特定のセットアップは、mdadm を使用してストライプモードで RAID された 2 つの EBS デバイスと、同じ方法で RAID された 2 つのエフェメラル SSD デバイスです。次に、エフェメラル配列をキャッシュとして使用し、EBS 配列を「バックアップ」デバイスとして使用して、それらを bcache で構成しました。EBS ドライブは任意のサイズにすることができ、いつでも拡張できます (EC2 では少し注意が必要です。現在の EBS ボリュームのスナップショットを作成し、そのスナップショットに基づいて新しいより大きなボリュームを作成する必要があるためです。サイズを変更することはできません)。既存の EBS ボリューム)。

もちろん、起動時にインスタンス内で実行されるスクリプトを作成して、エフェメラル ストレージを構成し、それを EBS バックアップ デバイスのキャッシュ デバイスとしてアタッチする必要があります。mdadmbcacheを読んで試してみることをお勧めします。

記録として、Cassandra ストレス ツールを使用してテストしたところ、エフェメラル ドライブをストライピングするだけの場合よりも、エフェメラル ドライブで bcached された EBS ボリュームの方が優れた読み取りパフォーマンスが得られました。これは、非常に巧妙な bcache で使用されるアルゴリズムによるものです。

エフェメラル ドライブをキャッシュとして使用すると、ネットワーク トラフィックも削減され、EBS の I/O が削減され、月々の請求額が削減されるため、費用対効果が高くなります。

また、bcache が提供するさまざまな種類のキャッシュにも注意してください。

  1. 書き戻す: SSD を読み取り/書き込みデバイスとして使用し、ページをキャッシュから削除する必要がある場合にのみバックアップ デバイスに書き込みます。これは、クラッシュまたは停止時にバックアップ デバイスが役に立たなくなるため、EC2 のエフェメラル セットアップには役立ちません。
  2. ライト スルー: すべての書き込みはキャッシュとバックアップの両方に行われます。これにより、バックアップ デバイスは常にキャッシュ デバイスと同じように最新の状態に保たれ、キャッシュ デバイスがなくても常に使用できます。EC2 に便利です。
  3. ライト アラウンド: すべての書き込みはバックアップ デバイスに直接行われ、将来そのデータに対して読み取り要求が発生するまで、キャッシュ デバイスには書き込まれません。読み取りのみがキャッシュ デバイスにキャッシュされます。これはライトスルーと同じくらい安全であり、書き込みが近い将来読み取られる可能性が低いことがわかっている場合に役立ちます。これにより、頻繁に要求されないデータでキャッシュ デバイスがいっぱいになるのを回避できるため、要求されたデータ用により多くのスペースを確保できます。いくつかの例として、ファイル アップロード サーバー、大量のログ データを書き込むシステムなどがあります。データ セット全体が一時的なストレージ サイズよりもかなり大きいことがわかっている場合は、これが最も効率的である可能性が高くなります。多数のユースケースでのオプション。
于 2014-02-14T08:59:42.457 に答える
2

ソフトウェア RAID ミラーを構成できる場合は、EBS でバックアップされたディスクをインスタンスに接続し、ミラーを構成してから、レプリケーションが完了するまで待ちます。インスタンスを作成した後、この方法を使用して「一時的な」データを EBS に移動することに成功しました (シャットダウンして再起動したくありませんでした)。

EBS にデータを取得したら、EBS イメージでバックアップします。

この方法は、異なる同一のインスタンスで実行されているデータの複数のコピーがある場合に特にうまく機能しますが、そのうちの 1 つだけが EBS に永続化される必要があります (私の場合、Couchbase サーバーを使用して、CB データは一時的なドライブにありましたが、私は 1 つ持っていました)クラスター上のすべてのデータが最終的に EBS になるように、EBS にミラーリングされたインスタンスの数)。

于 2013-06-02T23:26:46.383 に答える
1

ファイルレベルのバックアップ ソリューション (EBS スナップショットに基づくものではない) は、エフェメラル ストレージをバックアップできます。とはいえ、一時ストレージをいつ使用するかを検討し、それを永続データに使用する十分な理由を用意する必要があります。Cassandra などの特定のアプリケーションでは、これが推奨される構成です。その場合、バックアップ ソリューションはほとんどの場合、エフェメラル ストレージから、スナップショットが作成される EBS ボリュームまたは直接 S3 にデータをダンプします。場合によっては、レプリケーションを定義して、エフェメラル デバイス内のすべてのデータが EBS ボリュームにもレプリケートされるようにすることができます。

于 2015-01-28T16:52:29.450 に答える