Active/Backup 構成を作る
実際にshellscriptを使って仮想IPアドレスを利用しシステムを構成します。
まず、現状使用しているWebサーバと予備サーバを接続し、
両方に自分のIPアドレスのみを割り当てます。
#!/bin/sh
vip="10.0.0.1"
DEV="eth0"
healthckeck(){
ping -c 1 -w $VIP >/dev/null
return $?
}
ip_takeover(){
MAC='ip link chow $DEV | egrep -o '([0-9a-f]{2}:}{5}[0-9a-f]{2}' | head -n 1 | tr -d;'
ip addr add $VIP/24 dev $DEV
send_arp $VIP $MAC 255.255.255.255 ffffffffffff
}
while healthckeck; do
echo "healthcheck ok!"
sleep 1
done
echo "fail over!"
ip_takeover
これは、仮想IPアドレスに対し、1秒ごとにPing試験をして
応答がなく、失敗したら仮想IPアドレスを割り当てるコードです。
このコードを現状使用しているWebサーバで実行すると、
fail over!と出力されます。
このとき、現状使用しているWebサーバに仮想IPアドレスが割り当てられました。
続いて、予備サーバで実行すると、
healthckeck ok!の文字列が1秒ごとに表示され続けます。
この状態になったら、
クライアントから仮想IPアドレスに対しpingしながら、
現状使用しているWebサーバをシャットダウンしてみると、
予備サーバがfail overに出力され、仮想IPアドレスを引き継ぎます。
IPアドレスを引き継がせる仕組み
|
【用語解説】
冗長化
システムに障害が発生しても
予備の機材でシステムの機能を
継続できるようにすること。
フェイルオーバ
冗長化されたシステム上で
activeなノード(サーバ、ネット機器)が
停止した際に自動的に
バックアップすること
一般的に手動で切り替えることは
スイッチングオーバという
ヘルスチェック
監視対象の機器が正常に
稼動しているかを
チェックすること
Webサーバに対し、Pingが通るか
TCPの80番ポートに接続可能か
httpの応答はあるかなどを確認すること
多くの場合、
ヘルスチェックに失敗すると
管理者に監視失敗の警告が
届くように設定されている
死活監視とも言われる
|