- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
RIGHT:EBUG 第xx回会合
RIGHT:2011年9月3日、会津OSS
RIGHT:川俣吉広、kaw@on.rim.or.jp
SIZE(20){''OpenBSDで作るHAサーバ''}
SIZE(24){''OpenBSDで作るウェブ/メルマガサーバ''}
*発端 [#e26e083c]
筆の勤務先のウェブサーバの更新 ... 4台目(3回目)の更新
え~、また俺がやるのぉ? ~
... やってもいいけど、じゃあ代わりに好きにやらしてもらうよ。
*設計 [#ddd8d92b]
... というわけで、OpenBSD
現行サーバは、
-DELL PowerEdge / RedHat Enterprise Linux
-現用/予備の2台構成 ... 製の「なんちゃってFailOver」付き。
新サーバはこうしたい;
-現用/予備切替えじゃなくて、「両現用」
-もちろんIPv6対応
**ネットワーク [#vd1bc70e]
CARP - Common Address Redundancy Protocol
-HSRP, VRRPのAlternative ... 例によってOpenBSDで開発された。~
VRRPはRFCで規定されたNon proprietaryな規格だが、一部HSRP (こっちはCicsoプロプラ)に触る部分があるらしく、
BSDライセンスでの開発・開が困難なことから新規にCARPを開発した(らしい)。
***基本原理 [#e9af792e]
基本的な考え方はHSRP, VRRPと同じ
現用/予備で動作するFailOver構成の場合
-複数のホストで一台の仮想ホストを構成 ... 各ホストは一定間隔でAdvertise Packetを送信し、マスタになろうとする
-ホスト間でAdv Packetの送信タイミングに差を持たせる(advskew) ... これがプライオリティとなる
-Advertise Packetを連続して送出できたホストがマスタになる。
-実際の設定 ~
ホストN
ifconfig bge0 inet 218.223.36.237 netmask 255.255.255.240
ifconfig carp0 inet 218.223.36.236 netmask 255.255.255.240 \
carpdev bge0 \ <- carp0が動作する物理I/F
advbase 1 \ <- Adv Packetの基本送信間隔(秒)
vhid 1 \ <- 仮想ホストの識別番号
advskew 0 <- Adv Packetの送信タイミング差
ホストS
ifconfig bge0 inet 218.223.36.238 netmask 255.255.255.240
ifconfig carp0 inet 218.223.36.236 netmask 255.255.255.240 \
carpdev bge0 \
advbase 1 \
vhid 1 \
advskew 200 <- この部分がホストNと異なっている
advbase + (advskew/256)秒間隔でAdvertise
|CENTER:&ref(MediaSrv_Carp10_normal.gif);|
|CENTER:正常時|
| |
|CENTER:&ref(MediaSrv_Carp15_fail.gif);|
|CENTER:障害発生時|
***負荷分散への応用 [#z40560b1]
前の基本設定では、現予備構成なので、予備が遊んでいてもったいない。~
両方同時に動せればいいのに。
考え方
-仮想ホストを2つ生成する。
-2台ある実ホストがそれぞれ、仮想ホスト1, 仮想ホスト2のマスタになるように構成する。
-外部からの通信に対しては、どちらかのホストが反応するようにする。
-実際の設定 ~
ホストN
ifconfig bge0 inet 218.223.36.237 netmask 255.255.255.240
ifconfig carp0 inet 218.223.36.236 netmask 255.255.255.240 \
carpdev bge0 \
carpnodes 1:0,2:200 \ <- vhid:advskewの組
balancing ip <- Source IPアドレスで分散させる
ホストS
ifconfig bge0 inet 218.223.36.238 netmask 255.255.255.240
ifconfig carp0 inet 218.223.36.236 netmask 255.255.255.240 \
carpdev bge0 \
carpnodes 1:200,2:0 \
balancing ip
|CENTER:&ref(MediaSrv_Carp20_normal.gif);|
|CENTER:正常時|
| |
|CENTER:&ref(MediaSrv_Carp25_fail.gif);|
|CENTER:縮退時|
***実際に使ってみる [#yb9076bf]
-テスト環境でNG!
--対向ルータがマルチキャスト用MacアドレスのARP返答に応答しない
-実環境でOK!
--Cisco NG, Juniper OK
**ストレージ [#oc809877]
**データベース [#p03d6a1b]
**メルマガ信 [#j412d5ab]
今時sendmail+smtpfeed
**その他 [#c9367583]
***静的コンテンツの同期 [#p15e8bbd]
***監視系 [#y28dec65]
-Network I/F
-ディスク
-ウェブ
***注意点 [#t9dda58e]