サーバとL2スイッチの接続を冗長化する設計の基本
インフラを設計する上で冗長化による信頼性向上は避けて通れない道です。サーバとL2スイッチの接続を冗長化する設計については意外と情報が少ないのでまとめてみました。変なこと書いてたらご指摘ください。
インフラ設計の基本は単一障害点(SPOF)を取り除くことです。構成要素のうち1つが故障してもサービスを維持できるように設計します。構成要素は以下のものが挙げられます:
ただし、これらすべての故障に備えようとすると費用対効果が割に合わないので、ローカルディスクから下を冗長化する構成が一般的と思います。絶対に止まってはいけないサービスは別ですけどね。
冗長化の種類
サーバを冗長化するにはクラスタを組みます。クラスタはActive-ActiveとActive-Standby(HA)の二種類に分かれます。ワーカーを監視して動いているものにリクエストを投げるという動作が基本です。mod_proxy_balancerとかHeartbeatとかUltra Monkeyが有名ですね。
サーバのHAクラスタは設計や運用のコストが高いデメリットがあります。例えば、NFSクラスタを切り替える場合、共有ディスクの付け替え、仮想IPの付け替え、プロセス起動など複雑な手順が必要になるためトラブルが起きやすく、停止時間も長くなります。NIC障害などはなるべく下位のレイヤで吸収してあげる方が良いです。
ネットワークを冗長化するには経路を複数作ります。使える経路にパケットやフレームを流すという動作が基本です。VLAN trunk、Link Aggregation、VRRP、STP、動的ルーティングを組み合わせて実現します。
サーバとネットワークの接続を冗長化するには下図のような構成が基本です。
この構成では、LANケーブルが1本抜けたりスイッチが壊れたりしてもサービスを継続できるようになっています。例えば、WebサーバのNIC#1が壊れた場合はこんな感じになります。
WebサーバではNIC#2に切り替わりますが、DBサーバはNIC#1のままです。そのため、パケットはSW1とSW2をつなぐ渡り線を通ることになります。
それでは、サーバとネットワークの仕組みを見ていきます。
サーバの構成
サーバでは2枚のNICを協調動作させます。具体的には、NICの接続状況を監視し、生きているNICにフレームを流すようにします。2枚とも生きている場合は優先度の高いものを選びます。これをbondingやteamingといいます。
ここからはLinuxの話。bondingは物理NICに依存しないカーネルドライバなので、どんなNICの組み合わせでも使えます。私の自宅では Intel e1000e と Realtek 8169 をbondingしています。
NICの死活監視は2つの方式を選択できます。1つは miimon で、NICのリンクステータスを監視します。リンクアップしているか監視するだけなので、L2スイッチから先の障害を検知できない問題があります。もう1つは arp_ip_target で、特定のIPアドレスのARP応答が返ってくるか監視します。経路障害を確実に検知できるメリットがありますが、ネットワークに無駄なトラフィックが発生するデメリットもあります。
# /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 mode=1 primary=eth0 miimon=500
L2スイッチの構成
NICから伸びる2本のLANケーブルは別々のL2スイッチに接続します。これはスイッチ自体の障害に備えるためです。2台のスイッチは同一のセグメントに属するようにします。
この構成では2台のスイッチを2本のLANケーブルで接続していますが、実は1本でも構いません。1本の場合は障害時に帯域を確保できなくなる可能性がありますが、ループがなくなるのでごく普通のスイッチングハブを使えるようになります*1。
スイッチ間の接続はLink Aggregation(802.3ad)を使います。複数本のLANケーブルを束ねて1本のリンクとして使います。本数の分だけ帯域は大きくなります。
今回は単純化した例を紹介しましたが、実際には上位のL3スイッチやファイアウォールを冗長化したり、VLANでサーバを区分けすることになります。
サーバエンジニアとネットワークエンジニアでついつい分業してしまいがちですが、両者の仕組みを理解しておけばトラブルが起きても大丈夫!たぶん!
インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
- 作者: みやたひろし
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/12/26
- メディア: 単行本
- この商品を含むブログ (8件) を見る
インフラ/ネットワークエンジニアのためのネットワーク・デザインパターン 実務で使えるネットワーク構成の最適解27
- 作者: みやたひろし
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/12/26
- メディア: 単行本
- この商品を含むブログ (3件) を見る
- 作者: 福永勇二
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/03/29
- メディア: 単行本
- この商品を含むブログ (1件) を見る
*1:安物ハブが使えることは果たしてメリットなのか^^;