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/