Keepalivedの構成と使用
3253 ワード
紹介する
Keepalivedは、VRRPプロトコルに基づいて実装されるWEBサービス高可用性スキームであり、単一の障害を回避するために利用することができる.
1つのWEBサービスでは少なくとも2台のサーバがKeepalivedを実行し、1台はメインサーバ(MASTER)、1台はバックアップサーバ(BACKUP)であるが、対外的には1つの仮想IPとして表現され、メインサーバは特定のメッセージをバックアップサーバに送信し、バックアップサーバがこのメッセージを受信できない場合、すなわちメインサーバがダウンタイムした場合、バックアップサーバは仮想IPを引き継ぎ、サービスを提供し続ける.これにより、高可用性が保証されます.
+---------VIP(192.168.0.7)----------+
| |
| |
server(MASTER) server(BACKUP)
(192.168.0.1) (192.168.0.2)
VRRP
VRRPプロトコルでは、VRRPルータと仮想ルータ、マスタルータ、バックアップルータの2つの重要な概念があります.
VRRPルータとは、VRRPを実行するルータであり、物理的エンティティであり、仮想ルータとは、VRRPプロトコルによって作成された論理概念である.
VRRPルータのセットが協働し、仮想ルータを構成します.仮想ルータは、外部において、IPアドレスとMACアドレスを一意に固定する論理ルータとして表現される.
同じVRRPグループにあるルータには、マスタルータとバックアップルータの2つの役割があり、1つのVRRPグループにマスタロールにあるルータが1台しかなく、1つ以上のバックアップロールにあるルータがあります.
VRRPプロトコルは選択ポリシーを使用してルータグループから1台をマスターとして選択し、ARP対応とIPパケットの転送を担当し、グループ内の他のルータはバックアップの役割として待機している.
何らかの理由でマスタルータに障害が発生した場合、バックアップルータは数秒の遅延後にマスタルータにアップグレードできます.
この切替は非常に迅速であり、IPアドレスとMACアドレスを変更する必要がないため、端末利用者システムには透明である.
インストール
コンパイルインストール:
$ wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
$ tar -zxvf keepalived-1.2.2.tar.gz
$ cd keepalived-1.2.2
$ ./configure --prefix=/usr/local/keepalived
$ make && make install
必要なファイルをコピー:
$ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
$ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
$ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
$ mkdir -p /etc/keepalived/
$ cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
/etc/keepalived/keepalived.conf
コンフィギュレーション
master:
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # MASTER
interface eth0
virtual_router_id 51
priority 101 #MASTER BACKUP
advert_int 1
mcast_src_ip 192.168.2.115 #vrrp IP
authentication {
auth_type PASS #
auth_pass 1111
}
#VIP
virtual_ipaddress {
192.168.2.233 # IP
}
}
backup:
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP # BACKUP
interface eth0
virtual_router_id 51
priority 100 # MASTER
advert_int 1
mcast_src_ip 192.168.2.227 #vrrp IP
authentication {
auth_type PASS
auth_pass 1111
}
#VIP
virtual_ipaddress {
192.168.2.233 # IP
}
}
使用
$ /etc/init.d/keepalived start | restart | stop
keepalivedを起動するとifconfigではVIPは見えませんが、ip aコマンドでは見えます.MASTERがダウンタイムするとBACKUPはMASTERにアップグレードされ、これらのVRRP_Instance状態の切り替えは、/var/log/messageで記録できます.
リファレンス
http://www.keepalived.org/