データ復旧・復元、データマイニング、パソコン設定etc

システムを停止させないために、フェイルオーバできるようにしてみる

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の応答はあるかなどを確認すること
多くの場合、
ヘルスチェックに失敗すると
管理者に監視失敗の警告が
届くように設定されている
死活監視とも言われる


inserted by FC2 system