[[ipvsadm]]
*概要 [#e7dde681]
カーネルに組み込まれているLVS(冗長化構成)の管理コマンドの基本的な使い方です。
*使い方 [#l86cea2f]
*** 設定確認 [#tcf1aa1d]
ipvsadm -Ln --sort
*** VIPの追加 [#hf684584]
オプション
|-A | VIPを追加する |
|-t|tcpのサービスを指定する|
|-s|スケジュールを指定する|
指定できるスケジュール
|rr|ラウンドロビン|
|wrr|ラウンドロビンに重み付けを行える|
|lc|負荷の少ないサーバへリクエストを飛ばす|
|wlc|基本的に上記と同じだが、重み付けも行う|
|lblc|クライアントからのリクエストを基本的に同じサーバへ飛ばす、高負荷時は別サーバへ|
|lblcr|上記と同じだが、レプリケーション機能がつく|
|sed|応答速度に応じてリクエストを送るサーバを変更する|
|nq|アイドルのサーバがあればそこへ、なければsedと同じ動作|
/ # ipvsadm -A -t 172.17.0.10:465 -s rr
/ # ipvsadm -Ln --sort
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.17.0.10:465 rr
*** VIPの削除 [#r03df3fc]
- --delete-service, -D オプションを使うことで、VIPを削除できます。紐ついているリアルサーバーも削除されます。
/ # ipvsadm -D -t 172.17.0.10:465
/ # ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
*** リアルサーバーの追加 [#t263a50d]
|-a|add-server. リアルサーバーを追加する。|
|-t|tcpのサービスを指定する。|
|[VIP:Port]|記追加したVIPの設定を指定する。|
|-r [IPaddress]|リアルサーバーを指定する。|
|-m|IPマスカレードする。|
/ # ipvsadm -a -t 172.17.0.10:465 -r 172.17.0.2 -m
/ # ipvsadm -Ln --sort
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.17.0.10:465 rr
-> 172.17.0.2:465 Masq 1 0 0
/ # ipvsadm -a -t 172.17.0.10:465 -r 172.17.0.3 -m
/ # ipvsadm -Ln --sort
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.17.0.10:465 rr
-> 172.17.0.2:465 Masq 1 0 0
-> 172.17.0.3:465 Masq 1 0 0
*** 設定の保存 [#sa7a7012]
--save, -S を使うことで、設定を標準出力に流すことができ、リダイレクトすることで設定を保存することができます。
/ # ipvsadm --save > /tmp/ipvsadm_save.txt
/ # cat /tmp/ipvsadm_save.txt
-A -t 172.17.0.10:urd -s rr
-a -t 172.17.0.10:urd -r a3da47f3333e:urd -m -w 1
-a -t 172.17.0.10:urd -r 172.17.0.3:urd -m -w 1
-A -t 172.17.0.10:imaps -s rr
-a -t 172.17.0.10:imaps -r a3da47f3333e:imaps -m -w 1
-a -t 172.17.0.10:imaps -r 172.17.0.3:imaps -m -w 1
-A -t 172.17.0.10:pop3s -s rr
-a -t 172.17.0.10:pop3s -r a3da47f3333e:pop3s -m -w 1
-a -t 172.17.0.10:pop3s -r 172.17.0.3:pop3s -m -w 1
*** 設定の全削除 [#ca29fc65]
現在の設定を全て削除する手順です。(本番サーバーでは基本使わない方が良さそうです。)
/ # ipvsadm -C
/ # ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
*** 設定の復元 [#g3ea627f]
--restore, -R を使うことで標準入力から設定を復元することが可能です。
/ # ipvsadm --restore < tmp/ipvsadm_save.txt
/ # ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.17.0.10:urd rr
-> a3da47f3333e:urd Masq 1 0 0
-> 172.17.0.3:urd Masq 1 0 0
TCP 172.17.0.10:imaps rr
-> a3da47f3333e:imaps Masq 1 0 0
-> 172.17.0.3:imaps Masq 1 0 0
TCP 172.17.0.10:pop3s rr
-> a3da47f3333e:pop3s Masq 1 0 0
-> 172.17.0.3:pop3s Masq 1 0 0
参考にしたサイト:http://memogakki.es.land.to/linux/index.php?ipvsadm