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