keepalived で負荷分散 - 2. keepalivedの設定の続きです。
以下は、keepalived自体を冗長化する例です。
以下は、keepalived自体を冗長化する例です。
1.想定するネットワーク図
keepalivedを運用するサーバには、eth0に192.168.1.99、eth1に10.1.1.1の仮想IPを割り当てます。192.168.1.99のHTTP 80ポートへのアクセスを、リアルサーバの10.1.1.10のHTTP 80ポート、10.1.1.11のHTTP 80ポートに振り分けます。
2. リアルサーバ1,2のdefault gatewayの設定
リアルサーバ1,2のdefault gatewayをkeepalivedサーバにするための設定。ここは、前回のkeepalived で負荷分散 - 2. keepalivedの設定と同じ。
$ sudo /sbin/route add default gw 10.1.1.1
3. keepalived.confの作成
前回のkeepaliced.confにVRRPの設定を追加。このconfは、2台のkeepalivedサーバで全く同じものを記述します。state BACKUP とすることで、さきにkeepalivedを起動した方がMASTERとなり他方がBACKUPとなります。
■ keepalived.confの編集
vrrp_sync_group VG {
group {
VE_1
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
garp_master_delay 10
virtual_router_id 50
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.99
}
}
vrrp_instance VE_1 {
state BACKUP
interface eth1
garp_master_delay 10
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.1.1.1
}
}
virtual_server 192.168.1.99 80 {
delay_loop 6
lb_algo lc
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.1.98 80
real_server 10.1.1.10 80 {
weight 1
HTTP_GET {
url {
path /index.html
#digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 10.1.1.11 80 {
weight 1
HTTP_GET {
url {
path /index.html
#digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
4. keepalivedの起動
サービスの起動
# /etc/init.d/keepalived start
■ 起動状況の確認
起動後、ipコマンドを実行すると仮想IPアドレスが確認できます。仮想IPアドレスが表示されたサーバがMASTERであり、表示されなければBACKUPとして起動していることを示します。$ sudo /sbin/ip addr show eth0
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b3:b3:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.58/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.99/32 scope global eth0
inet6 fe80::20c:29ff:feb3:b3b0/64 scope link
valid_lft forever preferred_lft forever
$ sudo /sbin/ip addr show eth1
3: eth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b3:b3:ba brd ff:ff:ff:ff:ff:ff
inet 10.1.1.100/24 brd 10.1.1.255 scope global eth1
inet 10.1.1.1/32 scope global eth1
inet6 fe80::20c:29ff:feb3:b3ba/64 scope link
valid_lft forever preferred_lft forever
5. keepalivedの設定
keepalived.confに設定するパラメータ名と意味
state BACKUP | keepalivedの起動時に、MASTERとして起動するかBACKUPとして起動するかを指定する。2台のロードバランサー共にBACKUPと指定し起動する。priority の高いほうがMASTERとして起動する。 |
interface eth0 | VRRPパケットを送出したり受け取ったりするインターフェイスを指定する。 |
garp_master_delay 10 | マスター状態に遷移してから、gratuitous ARPを再送するまでの待ち時間[秒]。各機器のMACアドレスのキャッシュを更新する。 |
virtual_router_id 200 | 仮想ルータID。vrrp_instanceごとにユニークな値を指定する。指定できる範囲は0~255。 |
priority 100 | VRRPのプライオリティ値。マスターを選出する際は、この値が大きいものが優先される。 |
advert_int 1 | VRRPパケットの送出間隔[秒] |
virtual_ipaddress | 仮想IPアドレス。 |