vrrp-haproxy

Download Report

Transcript vrrp-haproxy

手軽に作る高可用Linuxサーバ
~自宅でも楽々クラスタリング ver.α1~
2009/10/19 NeGiの中の人
1
目的
• 手間(お金)をかけずにLinuxをクラスタ化
してみる。
• Heartbeatとかkeepalivedとか良く
わからない人向け
• Active-StandbyはMOTTAINAI!!
という人向け
2
材料
• CentOS5.3(x86-64) 3台@Hyper-V
物理的にあると邪魔なので、仮想化で。
• VRRPやってくれる中の人(vrrpd)
• 負荷分散やってくれる中の人(HAProxy)
3
Linux(CentOS)な理由
• Solarisでvrrpdのビルドが通らないから・・・
• デストリで一番触っているのがRHEL
(CentOS)だから。
• Hyper-Vは一応2008R2のやつです。
4
VRRPでの冗長化(利点)
• 設定が簡単
やることは、VIP・VRIDを決めて
プライオリティをどう付けるかだけ。
(認証もありますけど、今回はスルー)
• 入手も簡単
既にvrrpdというソフトウェアがある。
http://sourceforge.net/projects/vrrpd/
5
VRRPでの冗長化(欠点)
• 冗長化されるのはL3まで
vrrpdはL4~7の動きを見て代表ルータを
変更してくれない。
• 代表ルータで受け取られたパケットは
代表ルータでしか処理されない。
負荷分散がされない・・・
待機系のリソースがMOTTAINAI!!
※代表ルータ=vrrpd実行中のLinuxサーバ
6
負荷分散されない・・・
201
NW-Application
101
×
×
c-node1
NW-Application
c-node2
1
NW-Application
End-User
VRRP
c-node3
7
HAProxyの紹介
• HAProxyって何?
死活/条件分岐対応のロードバランサー
らしい・・・
• 何処で手に入るの?
Internetに転がっています。(GPL v2)
http://haproxy.1wt.eu/
8
HAProxyの機能
Port80
HAProxy
1. 任意のサーバとポートに
バランシング可能!!
自サーバにループバックしてもいい。
Port8081
Port8082
Port8081
Port8082
2. バランシング先が障害があると・・・
バランシングのリストから除外!!
Port8081
Port8082
3. 状態監視のWeb画面まで至れり尽くせり。
9
VRRPとの相性が良い理由
• 代表ルータに届いたパケットを、自身
以外のサーバに分散できます。
• よってどの代表ルータに届いても、
クラスタを構成する全サーバへ均等に
処理が振られます。
10
HAProxyを使うと・・・
201
HAProxy
NW-Application
c-node1
101
HAProxy
NW-Application
c-node2
1
End-User
HAProxy
VRRP
NW-Application
c-node3
11
全ノードが正常状態
/etc/haproxy.cfg
listen stats
bind :8888
stats uri /
http://c-node1.example.jp:8888/
12
c-node2が落ちたら?
201
HAProxy
×
NW-Application
c-node1
101
HAProxy
NW-Application
c-node2
1
End-User
HAProxy
VRRP
NW-Application
c-node3
13
c-node2で異常を検知
黄色はWARNです。
異常はあるが、再確認中です。
http://c-node1.example.jp:8888/
14
c-node2をリストから切り離し
赤色になるとCRITです。
負荷分散の対象候補から外れます。
http://c-node1.example.jp:8888/
15
c-node1が落ちたら?
×
201
HAProxy
NW-Application
c-node1
101
HAProxy
NW-Application
c-node2
1
End-User
HAProxy
VRRP
NW-Application
c-node3
16
c-node1をリストから切り離し
代表ルータ(VRRP)はc-node2に。
c-node2/3の負荷分散で継続します。
http://c-node2.example.jp:8888/
↑c-node1のWebは見えないので・・・
17
NWアプリだけが落ちたら?
201
HAProxy
×
NW-Application
NW-Application
101
HAProxy
×
c-node1
NW-Application
NW-Application
c-node2
1
End-User
HAProxy
NW-Application
×
NW-Application
VRRP
c-node3
18
残っているサービスで継続
http://c-node1.example.jp:8888/
19
HAProxyのリカバリ動作
• 気にする必要は無い。
サーバやサービスが稼動すれば勝手に
戻してくれます。
• 待機側のHAProxyも死活監視している。
つまり代表ルータ(VRRP)さえ変われば
残っているサービスポート/サーバは
決まっている。
20
留意/注意事項
• HAProxyの状態情報はHAProxy間で
共有されません。
HAProxyはグループやドメインとしては
動きません。スタンドアロンです。
• HAProxy同士という概念が無いので、
HAProxyはフェイルオーバ出来ません。
21
まとめ1
• L3はvrrpdに任せればOK
• L4~7はHAProxyでどうでしょう?
(HTTP位しか試してませんが・・・
• HAProxyはクラスタのキモ
Nagiosとかでしっかり監視を!!
22
まとめ2
• L2以下はbondingしておいた方が良さそう。
vrrpdが短期のUP/DOWNに弱い?
• HAProxyはIPv6も対応しているらしい。
誰か頑張ってください・・・
• HAProxyのDocumentの和訳も誰か
頑張って欲しいなぁ・・・
23