8

複数の EC2 インスタンス間でストレージを共有する際に問題に直面しています。負荷の高いジョブを実行する必要があるため、実行するには多くのインスタンスが必要です。一方では、1 つのサーバー インスタンスに接続された EBS ボリュームがあります。反対側には、ワーカー インスタンスがあります。このワーカー インスタンスの AMI を作成してから、この AMI の複数のインスタンス コピーを作成しました。すべて同じ VPC 上で実行されています。基本的に、サーバー インスタンスはジョブを送信し、ワーカーはジョブを実行しています。ワーカーがジョブを実行しているときに、次のような共有ストレージにいくつかのログ ファイルを保存したいと思います。

worker_1/logfile.log

worker_2/logfile.log

それを行うための最良の解決策は何ですか?

  • 同じEBS ボリュームを複数のインスタンスにアタッチすることはできないと読みました。
  • 私はGlusterFSを見ましたが、ここに私が見つけたものがあります:

「異なるアベイラビリティーゾーンにある 2 つのサーバーで概念実証を実現する前に、ext4 ファイルシステムを使用して EBS ボリュームをレプリケートします。GlusterFS を使用すべきでないケースをリストします。ログなど、複数のサーバーから同時に書き込まれるシーケンシャル ファイル。ロックログを GlusterFS 内に保存すると、システムが深刻な問題を引き起こす可能性があります。理想的な解決策は、ログをローカルに保存し、S3 を使用してアーカイブすることです。必要に応じて、S3 に保存する前または後に複数のサーバー ログを統合できます。」

  • 最後に、s3fsでマウントされたS3 バケットも確認​​しましたが、これも適切なオプションではないことがわかりました。

「s3fs でファイルを部分的に更新することはできないため、1 バイトを変更するとファイル全体が再アップロードされます」 . 次に、小さな増分変更を行いたい場合は、明確にノーです。s3fs を使用することはできません - S3 はそのようには機能せず、ファイルを段階的に変更することはできません。」

では、私の問題を解決し、従業員がログ ファイルを共有ストレージに書き込めるようにするにはどうすればよいでしょうか?

ご協力いただきありがとうございます!

ロマンゾ

4

4 に答える 4

4

答えてくれてありがとう。しかし、最終的にインスタンス間で NFS を使用しており、非常にうまく機能しています!

于 2013-08-15T05:15:23.797 に答える
0

各ワーカーがログをローカル ディスク (場合によってはエフェメラル パーティションにも) に書き込み、終了後に各ワーカーが独自の大きなログ ファイルを S3 にアップロードするオプションを検討しましたか?

これは、Elastic MapReduce を使用して Hadoop クラスターでいくつかの分散タスクを実行するときに起こることと多少似ています。

高い書き込みスループット (エフェメラル パーティションを使用する場合はローカル ディスクに書き込むため) と、ファイルを S3 に送信するための高いアップロード スループット (利用可能な多くのワーカーの帯域幅があるため) が得られます。

于 2013-07-04T04:01:03.290 に答える