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