web-dev-qa-db-ja.com

DNSラウンドロビンは、1つがダウンした場合のみですか?

私は2つのサーバーを持っており、処理能力と負荷の点で同等の機能を備えています。私が達成しようとしているのはこれです:(私はすでにDNSサーバーを所有して実行しているので、これは問題にはなりません)。

サーバーAは、sub.domain.comへのすべての着信要求を処理します。サーバーBは、サーバーAがダウンしている間のみ処理します。決定するのに少し待つ必要がある場合は、OKAYです。

出来ますか?加重ラウンドロビンは、最初の要求が正常に配信された場合にのみ次のサーバーに進むため、必要なものに対しては機能せず、通常のラウンドロビンも機能しません。

サーバーAのsub.domain.comが利用できない場合、AがオンラインになるまでサーバーBに転送するようにする方法はありますか?

おかげで、これは私のプロジェクトの一貫性に本当に役立ちます。

2
U4iK_HaZe

サーバーAのsub.domain.comが利用できない場合、AがオンラインになるまでサーバーBに転送するようにする方法はありますか?

DNS経由ではありません-少なくとも、カスタムDNSサーバーがオンザフライでレコードを監視および変更しない限り(これはあまりうまく機能しません)。この動作を実現するには、フェイルオーバーロジックを処理するクライアントとサーバーの間にシステムが必要です。 HAProxyは常に優れたオプションであり、httpトラフィックであると仮定すると、一般的なWebサーバーのいくつかのフレーバー(Apache、nginx、lighttpd)でも必要な処理を実行できます。

6
Shane Madden

F5 GTMは、とりわけこれを正確に実行します。デバイスでテストを実行して、デバイスが稼働しているかどうかを確認してから、DNSレコードを適切な値に変更します。

特に冒険心がある場合は、DNSゾーンの動的更新を許可できます。次に、ホストBから、ある種のスクリプトを使用してホストAに対してチェックを実行します。ホストAがダウン/到達不能/応答不能であることを検出すると、DNS更新要求を送信してIPを変更できます。ホストAはその逆を実行でき、一定時間の「稼働」後にDNSレコードをIPに自動的に戻します。

HAProxyのオプション、またはCARPなどの他の高可用性オプションを使用してスイングすることも、 Linux-HA.org サイトを確認することもできます。

2
Jon Angliss

別のオプションはCARPのようなものです。両方のサーバーに仮想IPアドレスを割り当て、サーバーは定期的に相互にpingを実行し、「マスター」が稼働している限りトラフィックを取得しますが、応答が停止すると、スレーブがそのIPを引き継ぎます。これにより、アプリケーションに対して完全に透過的になります。

CARP-Common Address Redundancy Protocol

2
Allan Jude