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]
 
Top Index Search Recent Backups  Help  RSS