ユーザ用ツール

サイト用ツール


01_linux:01_net:22_ipvsadm_ldirectord

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
01_linux:01_net:22_ipvsadm_ldirectord [2014/08/25 16:01]
matsui 22_linux:01_net:04_ipvsadm_ldirectord renamed to 01_linux:01_net:22_ipvsadm_ldirectord
01_linux:01_net:22_ipvsadm_ldirectord [2015/03/19 10: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 ​  ​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 10:35 by matsui

Yesterday:349 Today:300 Total:07005