by shigemk2

当面は技術的なことしか書かない

サーバ/インフラを支える技術3 1 DNSサーバの冗長化

前回
サーバ/インフラを支える技術2 5 高速で軽量なストレージサーバの選択 - by shigemk2

元来DNSサーバの障害は起きにくいものだが、
いざ起こると原因が判明するまでに時間と手間がかかる。

  • レゾルバライブラリを利用した冗長化と性能低下の危険性
  • サーバファームにおけるDNS冗長化

レゾルバライブラリによる冗長化
DNSサーバの冗長化は可能であるが、問い合わせがタイムアウトになったら
次のネームサーバへ問い合わせるという仕様により、エラーによるストップで
はなく、性能低下が起こる。これにより、性能低下が障害によるものなのかど
うか判別するのが困難となっている。

DNSサーバの場合障害が起きてもシステム停止が起きないのがややこしい
ところである。

クライアントがサーバの異常を検出する方法がタイムアウト以外にない
レゾルバライブラリによる冗長化は避けたほうがよい。

サーバファームでDNS冗長化する方法のほうがベターであるといえる。

具体的には、VRRPkeepalivedを利用してActive/Active構成でDNSサーバを
負荷分散する。片方のDNSサーバに異常が起きたら自動的に別のDNSサーバに
フェイルオーバする方法を取る。

keepalivedでフェイルオーバをさせつつ、仮想IPアドレスを利用して、
負荷分散を図る。

Active/Active構成により、ロードバランサを利用することになる。
ただ、同一サブネット上での負荷分散のため、NAT構成ではなく
DSR構成とする必要がある
(ロードバランサはLinuxではIVPSとkeepalivedを利用する←keepalived.conf
で設定)

DNSサーバでの障害はあまり起こらないのだが、
原因が判明するまでに時間と手間がかかるので、しっかりとした
対策を取るべきでしょうと書いてありました。

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)