AWS(EC2)インフラストラクチャ上に共有ファイルシステム/ファイルサーバーをセットアップして、レプリケーションと非常に簡単なフェイルオーバーを提供することを検討しています。このファイルシステムは、サイズが数メガバイトの数百万のファイルをホストする可能性があります。これらのファイルは、複数のクライアントVMからアクセス(読み取り/書き込み)されます。プライマリファイルサーバーに障害が発生した場合、クライアントがファイルを失うことなくレプリカファイルサーバーにフェイルオーバーできるようにしたい(つまり、レプリケーションをリアルタイムにしたい)。私はいくつかのオプションを見てきました:
より良い解決策はありますか?
いくつかの更新された情報。あなたが私のようで、この機能を非常に長い間望んでいた場合は、Amazon Elastic File System(EFS)を使用してください。これは、複数のアベイラビリティーゾーンに複製されたNFSマウントです。
(問題をぶつけて申し訳ありませんが、この回答のグーグルランクは十分に高いので、おそらく少数の人々がこの解決策を探しています。)
簡単ではありませんが、同期レプリケーションにDRBDを使用し、NFSサービスのフェイルオーバーとノード間のエクスポートを自動化するためにPacemaker + Corosyncを使用して(クライアントアクセスを中断することなく)AmazonEC2でNFSクラスターをセットアップすることができます。
同期(「リアルタイム」)での複製を計画している場合は、両方のEC2インスタンスを同じゾーンに配置して、それらの間のレイテンシを制限する必要があります。そうしないと、そのネットワーク遅延がディスク遅延に変換されます。
また、AmazonEC2インスタンスでIPアドレスを簡単に割り当て/割り当て解除することはできません。 IPアドレスを再割り当てするには、APIを使用する(またはWeb GUIを使用する)必要があります。クライアントがアクティブノードへの接続に使用するフローティングIPアドレスには、IPアドレスの移動が必要です。これを機能させるには、「IPaddr2」ペースメーカーリソースエージェントの変更が必要になります。これはbashスクリプトです。