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]


Front page   New Page list Search Recent changes   Help   RSS of recent changes