私は現在、Apache、mysql、およびsshを使用してubuntulinuxを実行している小さなWebサーバーを管理しています。 rsyncを使用して別のサーバーにバックアップしていますが、/ backupディレクトリにバックアップしています。
最初のサーバーがダウンした場合に2番目のサーバーのIPを変更して、すべてのユーザー、ファイル、データベースなどを準備できるように設定したいと思います。
誰かがこれについて行くための最も簡単な/最良の方法について何か提案がありますか?
考慮事項
ファイルベースのサービス(Webサーバーなど)の場合、rsyncは2番目のサーバーを効果的に最新の状態に保つことができます ユーザー、構成など)-データベースに関しては、少し複雑になります(MySQLとスレーブサーバーを使用しました)このため、非常に効果的でした。いくつかのHA /スタンバイ構成でPostgreSQLも使用しましたが、はるかに不器用でした)
これを少しのIP盗難(故障したマシンのIPをバックアップマシンのインターフェースに割り当てるための簡単なスクリプト)と組み合わせると、比較的簡単なセットアップが可能になりますが、迅速な回復が可能になります。
考慮すべきことは1つだけです。フェイルバックに注意してください。サービスをバックアップマシンに移動することは1つのことです。障害を修正したらサービスを元に戻すと、問題が発生する可能性があります。データベースに細心の注意を払ってください。
LinuxHAは、もう少し自動化することにした場合、これに対する(やや重い)アプローチです。
---(http://www.linux-ha.org/
rsyncまたはdrbdを使用してバックアップサーバーの同期を維持するか、3番目のサーバーからnfsを介してデータをマウントできます。シンプルにしたい場合は、バックアップサーバー上の同じディレクトリの場所にソースサーバーとしてバックアップします。
heartbeat2は、IPアドレスを管理するための優れたソリューションであり、自動または手動のフェイルオーバー用のツールを提供します。また、arpキャッシュのフラッシュなど、私が考えもしなかったことを考慮に入れています。
ここでは仮想化が役立ちます。 2台のサーバーをホストサーバーとして実行し、両方とも1台の仮想サーバーを使用できるようにすることができます。ライブサーバーでは仮想サーバーが実行されていますが、バックアップサーバーでは仮想サーバーが「オフ」になっていますが、そのサーバーのファイルシステムには引き続きアクセスできます。
次に、ライブ仮想サーバーからバックアップ仮想サーバーへの定期的なrsyncを実行できます。ライブサーバーがダウンした場合は、バックアップ仮想サーバーを起動するだけです。
詳細は、使用する仮想化ソフトウェアによって異なります(以前、linux-vserverでこれを実行しました)が、いくつかの重要なポイントは次のとおりです。
ハートビートでこれができると思いますが、使用しない場合は、Webサーバーの仮想IPを手動で設定することをお勧めします。
各Webサーバーには、独自の実IPと仮想IPがあります。仮想IPは、アクティブなWebサーバーである場合にのみマシンに割り当てられます。
この設定は、ssh、rsync、およびその他すべてのツールが、IPアドレスの変更に混乱することなく実際のIPで実行し続けることができることを意味します。