内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
01_linux
»
01_net
»
22 ipvsadm と ldirectord
トレース:
01_linux:01_net:22_ipvsadm_ldirectord
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 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 1 0 0 TCP 1192.168.0.10:443 wrr -> 127.0.0.1:443 Local 1 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 1 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>
01_linux/01_net/22_ipvsadm_ldirectord.txt
· 最終更新: 2015/03/19 01:35 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ