web-dev-qa-db-ja.com

Keepalived同期デーモン

lvs_sync_daemon_interfaceオプションを有効にしましたが、同期デーモンが機能していないようです

アクティブノード:

[MASTER:~]# ipvsadm -Lnc
IPVS connection entries
pro expire state       source             virtual            destination
TCP 00:37  SYN_RECV    192.168.1.20:55746 192.168.1.10:80    192.168.1.15:80

パッシブノード:

[BACKUP:~]# ipvsadm -Lnc
IPVS connection entries
pro expire state       source             virtual            destination

構成:

! Configuration File for keepalived

global_defs {
    lvs_id lb1 #lb2 on backup server
}

vrrp_sync_group VG1 {
        group {
            LB1
        }
}

vrrp_instance LB1 {
    state BACKUP #BACKUP on backup server
    interface eth0
    lvs_sync_daemon_interface eth0
    virtual_router_id 50
    priority 2 #1 on backup server
    nopreempt
    advert_int 1
    smtp_alert
        authentication {
            auth_type PASS
            auth_pass $PASSWORD
    }
        virtual_ipaddress {
            192.168.1.10
        }
}

virtual_server 192.168.1.10 80
    delay_loop 5
    lb_algo wlc
    lb_kind DR
    protocol TCP
    ha_suspend
    sorry_server 127.0.0.1

        real_server 192.168.1.15 80 {
            weight 1
            inhibit_on_failure
                HTTP_GET {
                    url {
                 path /
                 status_code 200
                    }
                    connect_timeout 5
                    nb_get_retry 3
                    delay_before_retry 1
                    connect_port 80
                fwmark 80
                }
        }

        real_server 192.168.1.16 80 {
            weight 1
            inhibit_on_failure
                HTTP_GET {
                    url {
                         path /
                         status_code 200
                        }
                    connect_timeout 5
                    nb_get_retry 3
                    delay_before_retry 1
                    connect_port 80
                fwmark 80
                }
        }
}

システム:CentOS 6.5、Keepalived v1.2.7(02/21,2013)

更新:2014年7月5日土曜日08:44:36 BST:

[MASTER]# ps -elf | grep [i]pvs
1 S root     11207     2  0  80   0 -     0 sync_t 08:41 ?        00:00:00 [ipvs_syncmaster]

[BACKUP]# ps -elf | grep [i]pvs
1 S root      6231     2  0  80   0 -     0 sync_t 08:41 ?        00:00:00 [ipvs_syncbackup]
1
HTF

Lvsとsyncで遊んでからしばらく経ちましたが、初心者にはkeepalivedを使用せずにトラブルシューティングを開始し、ipvs自体で作業します。

lvsドキュメント から:

プライマリロードバランサーで、

primary_director:# ipvsadm --start-daemon=master --mcast-interface=eth0

バックアップロードバランサーで、

backup_director:# ipvsadm --start-daemon=backup --mcast-interface=eth0

デーモンを停止するには、

director:# ipvsadm --stop-daemon

プライマリはマルチキャストを介してバックアップと通信することに注意してください。このトラフィックがプライマリからバックアップに流れることができるようにする必要があります。スターターをテストするために、バックアップで iptablesフィルタリング を介して マルチキャスト を許可してみてください。

それを設定し、バックアップのipvsadm -Lncコマンドから出力が得られるかどうかを確認します。

また、ipvsプロセス自体は存在しないことに注意してください。 ipvsは、ユーザースペースプログラムipvsadmによって管理されるカーネルインターフェイスと考えてください。

また、マスターとバックアップの両方が同じsyncidで構成されていることを確認する必要があります。これは、上記のipvsadmコマンドの--syncidオプションで指定されます。これらの設定が異なる場合、バックアップはマスターから受信したものをすべて無視します。

2
dmourati