#amazon(4774135666)
概要 †
- IPVS [IP Virtual Server]
- L4 ロード バランシングを行うためのソフトウェア
- Linux Kernel 2.6 に標準で組み込まれている
- Keepalived
- IPVS を管理するデーモン
- 設定ファイルに基づき、IPVS の設定を行う
- サーバに対してヘルスチェックを行う事が出来る (IPVS にはヘルスチェック機能がない)
- VRRP により IPVS 自体を冗長化する事も出来る
- ロード バランシングを行わず、VRRP 機能だけを使用することも可能
- ipvsadm
- IPVS を管理するツール
- IPVS の設定や確認が出来る
- Keepalived を使用する場合でも、確認コマンドを使うためにインストールする
リンク †
設定 †
- IPVS の設定は Keepalived から行う
- /etc/keepalived/keepalived.conf で設定する
共通設定 †
global_defs {
router_id name
}
VRRP 設定 †
vrrp_instance name {
state MASTER|BACKUP
interface ethn
garp_master_delay num
virtual_router_id num
priority num
[nopreempt]
preempt_delay num
advert_int num
authentication {
auth_type PASS|AH
auth_pass password
}
virtual_ipaddress {
ip-addr
[ip-addr]
...
}
track_script {
script-name
[script-name]
...
}
notify_master path
notify_backup path
notify_fault path
notify_stop path
}
- state
- インスタンス起動時のステータス
- 両系 BACKUP でもいい
- interface
- アドバタイズメントを送受信するためのインターフェース
- garp_master_delay
- Failover 発生後、Gratuitous ARP を送信するまでの時間 (秒)
- virtual_router_id
- priority
- nopreempt
- preempt_delay
- マスターになるまでの時間 (デフォルトは 0 秒)
- advert_int
- アドバタイズメントの送信間隔 (デフォルトは 1 秒)
- なお、閾値は advert_int の 3 倍で固定のため、対向ノードのダウン判定に最短 3 秒かかる
- auth_type
- auth_pass
- virtual_ipaddress
- track_script
- ヘルス チェック設定
- 別途 vrrp_script の設定が必要
- notify_master
- notify_backup
- notify_fault
- NIC がリンク ダウンした際に実行するスクリプト
ヘルス チェック †
vrrp_script script-name {
script "path"
interval num
timeout num
fall num
rise num
}
- script
- ヘルス チェック スクリプトのパス
- 0 以外の終了コードを受け取ると優先度を下げる
- timeout
- interval
- fall
- rise
複数の VRRP インスタンスを連動させる †
vrrp_sync_group VG {
group {
VI_1
VI_2
}
}
vrrp_instance VI_1 {
interface eth0
...
}
vrrp_instance VI_2 {
interface eth1
...
}
IPVS 設定 †
virtual_server virtual-ip-addr port {
delay_loop num
lb_algo algorithm
lb_kind NAT
protocol protocol
sorry_server ip-addr port
real_server ip-addr port {
inhibit_on_failure
HTTP_GET {
url {
path URI
status_code 200
}
connect_timeout timeout
nb_get_retry num
delay_before_retry num
}
}
real_server ...
}
- delay_loop
- lb_algo
- rr … Round Robin
- wrr … Weighted Round Robin
- lc … Least Connection
- wlc … Weighted Least Connection
- lb_kind
- NAT … 仮想 IP アドレスを実 IP アドレスに変換して転送する
- DR … 仮想 IP アドレスを変更せず、そのまま転送する (Direct Server Return)
- DSR を使用する場合、Loopback I/F に仮想 IP アドレスを割り当てるなどの対応が必要
- sorry_server
確認 †
# ipvsadm -Ln