by shigemk2

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

サーバ/インフラを支える技術3 3 ネットワークの冗長化

前回
サーバ/インフラを支える技術3 2 ストレージサーバの冗長化 - by shigemk2

L1とL2の構成要素で故障するポイント

  • LANケーブル(断線やコネクタの接触不良)
  • NIC(ネットワークカード、リンクのアップとダウンを繰り返す)
  • ネットワークスイッチのポート(ポートだけの故障もありうる)
  • ネットワークスイッチ(スイッチがまるごと故障する)

リンクの故障を回避するために、サーバとスイッチの間の
接続を冗長化する。

NICを複数用意してLANケーブルも同じ数だけ
用意する方法がまず考えられるが、各NICに対してそれぞれ別の
IPアドレスを振ることになってしまう。
これだとどのNICが使えるかを各マシンはその都度判断しなければ
ならず、送信先のアドレスを切り替える必要がある。

これを解決するために、Bondingドライバが用意されている。

BondingドライバはLinuxに用意されているネットワークドライバの
一つで、Bondingドライバは複数の物理的なネットワークカード(物理
NIC)をまとめて、一つの論理的なネットワークカード(論理NIC)として
扱うようにする。

論理NICを通じた通信は、Bondingドライバが設定に従って
配下の論理NICに割り振る。また配下の物理NICが故障していないかを
チェックして、故障していればその物理NICは使わないようにする

実際に物理NICの故障の検出方法として、以下の2つがある

  • MII(Media Independent Interface)監視(リンクダウンしたら故障とみなす)
  • ARP(Address Resolution Protocol)監視(ARPリクエストのリプライで判断)

Bondingドライバを利用して物理NICを冗長化しても
繋れているスイッチが同じならスイッチ故障には対応できない。
Bondingドライバを利用して、さらにスイッチも冗長化することが推奨される
Bondingドライバで冗長化するべきポイントは

  • リンク
  • スイッチ

の2つ。これらを複数用意することで、故障によるトラブルに備える。
また、スイッチ間接続も冗長化する必要があり、ポートトラッキング
やリンクアグリゲーションを利用する。

またスイッチをカスケード接続することで、スイッチの増設も実現できる。
ただし、片方のスイッチが担当しているサーバが故障した場合、もう片方の
スイッチが担当しているサーバが孤立してしまうため、
RSTP(Rapid Spanning Tree Protocol)を使って迂回経路を確保する。
(RSTPを使わないとブロードキャストストームが発生する可能性がある)

RSTPとは、各スイッチが協調してネットワーク上にできたループを検出し、
自動的に冗長な接続を遮断するための、データリンク層のプロトコルである。
どの接続を遮断するかは各スイッチに設定されたプライオリティや
スイッチ間の接続のリンク速度などを元に決定する

RSTPではスイッチが相互にBPDU(Bridge Protocol Data Unit)パケットを
交換することで、プライオリティ情報などの交換と故障検出を行う

このBDPUパケットが途切れたりスイッチ間接続がダウンすれば、スイッチは
故障が発生したと判断し、代替経路を探して使う

次回
サーバ/インフラを支える技術3 4 VLANの導入 - by shigemk2

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

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