2006年08月17日
いかにして冗長構成を作るか 〜DSASの場合〜
まずは構成図から。
スイッチはL2SWと書いてますが、以下の機能をもっているものを使っています。
「lb」はロードバランサで、いわゆるハコものではなく、Linuxのlvsでやってます。
上位ルータへのポートとlbのインターフェースとでVLAN切ってます。lb側はLinuxのタグVLANを使っています。おかげでネットワーク構成をフラットにできています。(Linuxルータのタコ足配線を解消しよう 〜 タグVLAN(IEEE 802.1Q)の活用)
続いて、こんなときでも大丈夫、というのを一問一答形式で。
│ │
┌┴┐ ┌┴┐
│ │ │ │ISPの上位ルータ
└┬┘ └┬┘
│ │
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 責任分解点
│ │
┌┴┐ ┌┴┐
│ ├─[ lb(active) ]─┤ │
│ ├─[ lb(backup) ]─┤ │
│ │ │ │
│L2├─[ Web ]─┤L2│
│SW├─[ Web ]─┤SW│
│ ├─[ Web ]─┤ │
│ │ │ │
│ ├─[ SMTP ]─┤ │
│ ├─[ SMTP ]─┤ │
│ │ │ │
│ ├─[ D B ]─┤ │
│ ├─[ D B ]─┤ │
│ │ │ │
│ ├─[ NFS ]─┤ │
│ ├─[ NFS ]─┤ │
│ │ │ │
│ ├─────────│ │
└┬┘ └┬┘
│ \ / │
│ \ / │
│ \ / │
│ \ / │
│ × │
│ / \ │
│ / \ │
│ / \ │
│ / \ │
┌┴┐ ┌┴┐
│ │ │ │
│ │ │ │
│L2├─[ Web ]─┤ │
│SW├─[ Web ]─┤L2│
│ ├─[ Web ]─┤SW│
│ │ │ │
│ ├─[ D B ]─┤ │
│ ├─[ D B ]─┤ │
│ │ │ │
│ ├─[ NFS ]─┤ │
│ ├─[ NFS ]─┤ │
│ │ │ │
└─┘ └─┘
スイッチはL2SWと書いてますが、以下の機能をもっているものを使っています。
- ポートVLAN、タグVLAN (802.1Q)
- リンクアグリゲーション(802.3ad 802.3ab)
- RSTP (802.1w)
「lb」はロードバランサで、いわゆるハコものではなく、Linuxのlvsでやってます。
上位ルータへのポートとlbのインターフェースとでVLAN切ってます。lb側はLinuxのタグVLANを使っています。おかげでネットワーク構成をフラットにできています。(Linuxルータのタコ足配線を解消しよう 〜 タグVLAN(IEEE 802.1Q)の活用)
続いて、こんなときでも大丈夫、というのを一問一答形式で。
- ロードバランサがダウンしたら?
- ロードバランサはアクティブ/バックアップ構成になっていて、keepalivedによりVRRPで互いにヘルスチェックしているので、アクティブサーバがダウンした場合は自動的にバックアップがアクティブに昇格し、サービス継続できます。
- ロードバランサを復活させるには?
- 冒頭の図のように、構内のネットワークはフラットです。また、ロードバランサはLinuxでネットワークブートで起動しているので、適当なWebサーバや空いているサーバをネットワークブートすればすぐにダウンしたロードバランサの代替にできます。ちなみに、ネットワークブートするにはBIOSの設定を変更する必要があるのですが、それにはIPMIを使っています。
- Webサーバがダウンしたら?
- ロードバランサは定期的にプロトコルレベル(HTTPなど)のヘルスチェックを行っています。Webサーバがダウンすると、ロードバランサはそれを検知して当該サーバをサービスから外し、サービスを継続します。
- SMTPサーバがダウンしたら?
- Webサーバと同様に、ロードバランサがフロントにいるのでSMTPサーバが1台ダウンしただけではサービス停止には陥りません。
- DBサーバ(MySQL)がダウンしたら?
- MySQLのレプリケーションを行っているので、スレーブをマスタに昇格させてサービス復旧します。
- NFSのストレージサーバがダウンしたら?
- ストレージサーバは、LinuxのDRBDで冗長構成(アクティブ/バックアップ)になっています。また、keepalivedにより互いにヘルスチェックをしているので、アクティブサーバがダウンした場合は自動的にバックアップがアクティブに昇格し、サービス継続できます。
- サーバのネットワークケーブルが断線したら?
- Linuxのbonding device (Documentation/networking/bonding.txt) を使っているので、1本切れても大丈夫です。
- スイッチがダウンしたら?
- RSTPが働き、数秒で疎通が回復します。
- スイッチのポートがハングしたら?
- bonding deviceの死活監視はmii(miimon)ではなくarp(arp_ip_target)を使っているので、リンクしている状態でハングしても、bondingが不通を検知してアクティブなデバイス(eth0やeth1)が切り替わります。
トラックバックURL
この記事へのトラックバック
1. DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜 [ ] 2012年01月17日 10:29
DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜
この記事へのコメント
1. Posted by 通りすがり 2006年08月18日 13:01
s/802.3ab/802.3ad/
2. Posted by DSAS 2006年08月18日 13:33
ご指摘ありがとうございました! 早速、修正しました。
5. Posted by 中桐 誠 2007年12月02日 12:38
これぞ探していた情報です。
大変参考になります。
ありがとうございます。
担当が代わりベンダの内部情報を参照できなくなって久しく、試行錯誤してしました。
蛇足ですが、責任分界点は責任分界点かと思います。
大変参考になります。
ありがとうございます。
担当が代わりベンダの内部情報を参照できなくなって久しく、試行錯誤してしました。
蛇足ですが、責任分界点は責任分界点かと思います。