ユーザ用ツール

サイト用ツール


01_linux:01_net:22_ipvsadm_ldirectord

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
01_linux:01_net:22_ipvsadm_ldirectord [2014/08/25 07:01] – 22_linux:01_net:04_ipvsadm_ldirectord renamed to 01_linux:01_net:22_ipvsadm_ldirectord matsui01_linux:01_net:22_ipvsadm_ldirectord [2015/03/19 01:35] (現在) matsui
行 1: 行 1:
 +====== 22 ipvsadm と ldirectord ======
 +ipvsadmでロードバランスしているが、サーバが停止していてもパケットを転送しようとする。\\
 +ldirectordの場合は、この問題を解決してくれる。\\
 +さらにHeartbeatで、ldirectordが落ちても起動するようになっている。
  
 +===== ipvsadm =====
 +ipvsadm: [[http://memogakki.es.land.to/linux/index.php?ipvsadm]]
 +
 +IPVSを制御するためのツール。 \\
 +仮想サーバグループの追加やリアルサーバの割り当てができるほか、 現在の接続状況や転送レートの表示などができます。
 +
 +===== ldirectord =====
 +
 +ldirectord: [[http://memogakki.es.land.to/linux/index.php?ldirectord]]
 +
 +Heartbeatに付属するソフトウェア 実サーバの死活やTCPのサービスを監視をしてくれる。
 +
 +
 +<code console>
 +ipvsadm -Ln
 +[root@lbslave ~]# ipvsadm -Ln
 +IP Virtual Server version 1.2.1 (size=4096)
 +Prot LocalAddress:Port Scheduler Flags
 +  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
 +TCP  192.168.0.10:80 wrr
 +  -> 127.0.0.1:80                 Local        0          0         
 +TCP  1192.168.0.10:443 wrr
 +  -> 127.0.0.1:443                Local        0          0 
 +</code>
 +
 +
 +===== ipvsam command =====
 +
 +=== 1.VIPの動作設定 ===
 +
 +<code>
 +ipvsadm [オプション] [プロトコル] [VIP:ポート] [スケジュールオプション] [バランスアルゴリズム]
 +</code>
 +
 +=== 例 ===
 +
 +VIP: 10.1.0.100のポート80番を負荷の少ないサーバへリクエストを飛ばす
 +
 +<code console>
 +# ipvsadm -A -t 10.1.0.100:80 -s lc
 +</code>
 +
 +UDPの場合
 +<code console>
 +# ipvsadm -A -u 153.122.5.112:8080 -s wrr
 +</code>
 +
 +== オプション ==
 +
 +^  -A  |設定の追加|
 +^  -E  |設定の変更|
 +^  -D  |設定の削除|
 +
 +== プロトコル ==
 +
 +^  -t  |tcpのサービスを指定する|
 +^  -u  |udpのサービスを指定する|
 +^  -f  |iptablesのFWMARKが付けられたパケットを指定|
 +
 +
 +== VIP:ポート VIPとポート名を指定 ==
 +
 +
 +== スケジュール ==
 +
 +^  -s  |負荷の割り振り方を指定する|
 +^  -p  |パーシステンスの時間を指定する|
 +^  -M  |-pオプションの処理、クライアントの同一性を判断に \\ ここで指定した値を使う事によりグループ化して管理できる|
 +
 +== スケジュールの指定方法 ==
 +
 +^  rr  |ラウンドロビン|
 +^  wrr  |ラウンドロビンに重み付けを行える|
 +^  lc  |負荷の少ないサーバへリクエストを飛ばす|
 +^  wlc  |基本的に上記と同じだが、重み付けも行う|
 +^  lblc  |クライアントからのリクエストを基本的に同じサーバへ飛ばす、高負荷時は別サーバへ|
 +^  lblcr  |上記と同じだが、レプリケーション機能がつく|
 +^  sed  |応答速度に応じてリクエストを送るサーバを変える|
 +^  nq  |アイドルのサーバがあればそこへ、なければsedと同じ動作|
 +
 +=== 2.実サーバを設定 ===
 +
 +<code>
 +ipvsadm [オプション] [プロトコル] [VIP:ポート] [実サーバ指定オプション] [実サーバのIP] [転送オプション]
 +</code>
 +
 +=== 例 ===
 +
 +VIP 10.1.0.100のポート80を 10.1.0.150に転送
 +<code console>
 +# ipvsadm -a -t 10.1.0.100:80 -r 10.1.0.150 -g
 +</code>
 +
 +== オプション ==
 +
 +^  -a  |追加|
 +^  -e  |変更|
 +^  -d  |削除|
 +
 +== プロトコル ==
 +
 +上に書いた物と同じモノが使える。
 +
 +== 実サーバ指定オプション ==
 +
 +^  -r  |実サーバを指定する|
 +
 +== 転送オプション ==
 +
 +^  -g  |パケットに何もせず転送|
 +^  -i  |IPトンネルを使って転送|
 +^  -m  |マスカレードをする|
 +
 +=== 状態の確認 ===
 +
 +
 +== 設定状況確認 ==
 +
 +<code>
 +ipvsadm -Ln
 +</code>
 +
 +
 +<code console>
 +# ipvsadm -Ln
 +IP Virtual Server version 1.2.1 (size=4096)
 +Prot LocalAddress:Port Scheduler Flags
 +  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
 +TCP  10.1.0.100:80 lc
 +  -> 10.1.0.150:80                Route        0          0 
 +</code>
 +
 +
 +== アクセス状況確認 ==
 +
 +うまく動作してない時などに、現在のコネクション状況を見ることができる
 +<code>
 +ipvsadm -Lnc
 +</code>
 +
 +<code console>
 +# ipvsadm -Lnc
 +IPVS connection entries
 +pro expire state       source             virtual            destination
 +TCP 01:05  FIN_WAIT    21.12.143.2:64991 10.1.0.100:80       10.1.0.150:80
 +TCP 01:05  FIN_WAIT    21.12.143.2:64989 10.1.0.100:80       10.1.0.150:80
 +TCP 01:05  FIN_WAIT    21.12.143.2:64983 10.1.0.100:80       10.1.0.160:80
 +TCP 01:06  FIN_WAIT    21.12.143.2:65001 10.1.0.100:80       10.1.0.150:80
 +TCP 01:05  FIN_WAIT    21.12.143.2:64982 10.1.0.100:80       10.1.0.150:80
 +TCP 01:06  FIN_WAIT    21.12.143.2:64993 10.1.0.100:80       10.1.0.150:80
 +TCP 01:06  FIN_WAIT    21.12.143.2:64997 10.1.0.100:80       10.1.0.160:80
 +</code>
 +
 +
 +正常に行ってない場合、下記のようにSYN_RECVで止まってたりする。
 +<code console>
 +# ipvsadm -Lnc
 +IPVS connection entries
 +pro expire state       source             virtual            destination
 +TCP 00:12  SYN_RECV    21.12.143.2:61215 10.1.0.100:8080    10.1.0.150:80
 +TCP 00:33  SYN_RECV    21.12.143.2:61930 10.1.0.100:8080    10.1.0.150:80
 +TCP 00:04  SYN_RECV    21.12.143.2:64965 10.1.0.100:8080    10.1.0.150:80
 +</code>
 +
 +=== 設定を消す ===
 +
 +<code>
 +ipvsadm -C
 +</code>