1

私は現在、PHP-FPM サーバーのクラスターを管理していますが、それらすべてが互いに同期しなくなる傾向があります。アプリ サーバー (Magento) の上で使用しているアプリケーションでは、管理者がシステム上のさまざまなファイルを変更できますが、サイトがクラスター化されたセットアップになっているため、ファイルを変更すると、単一のインスタンスでのみ変更されます (クラスタ内のさまざまなマシンのアプリケーション サーバーの 1 つ)。

これらすべてのサーバーの同期を維持できる Linux 用のオープンソース アプリケーションはありますか? 同期するマシンからの変更をリッスンできる小さな VM インスタンスを作成することに問題はありません。理論的には、完璧なアプリケーションには、同期する各マシンで実行される小さなクライアントがあり、マスター サーバーと通信して、各マシンからどのように/何を同期するかを決定します。

集中型ファイル サーバーを実行する可能性については既に検討しましたが、残念ながら、私のアプリケーション サーバーは EC2 と物理マシンの間に分散しているため、これは実行不可能です。複数のアプリ サーバーがあるため (サイトの負荷に応じて動的に作成されるものもあります)、rsync cron ジョブを設定するだけでは効率的ではありません。ファイルを他のすべてのマシンに送信するには、各マシンで cron ジョブを変更する必要があるからです。クラスター内のマシンであり、それは不要なデータ転送/ssh 接続の束になります。

4

2 に答える 2

1

私は同様のソリューションの設定を扱っています。私はそこまでの道のりです。lsyncd を使用することをお勧めします。これは基本的にディスクの変更を監視し、すぐに (または任意の間隔で) rsync を使用してファイルをサーバーのリストに自動的に同期します。

私が抱えている唯一の問題は、サーバーリストを最新の状態に保つことです。いつでも追加のサーバーを起動できるため、クラスターにマシンが追加または削除されるたびに、クラスター内の各マシンに通知する必要があります。

lsyncd は検討すべき優れたソリューションだと思います。私が抱えている問題は、あなたにとっても問題であることが判明する可能性があり、それはまだ解決されていません.

于 2014-03-13T20:32:51.747 に答える
0

数十または数百のサーバーを相互同期する代わりに、はるかに効率的で信頼性が高く、最も単純な「管理ノード」を1 つだけ維持し、そこからの変更をすべての「ワーカー ノード」にレプリケートします。

たとえば、当社では開発サーバー -> ステージング サーバー -> ライブ バックエンド ワークフローを使用しており、すべての変更はカスタム php+rsync フロント エンドを使用してサーバー間で転送されます。これにより、開発者は更新をライブ環境のステージング サーバーにプッシュし、変更をテストして、ライブ バックエンドに段階的にロールすることができます。

同様のアプローチは、あなたの場合にも非常にうまく機能します。明らかに、これはプラグ アンド プレイ ソリューションではありませんが、保守性とスケーラビリティの両方の点で、最も簡単な方法だと思います。

于 2012-12-12T07:53:26.227 に答える