From makoto @ kanon-net.jp Fri Jun 1 04:30:53 2007 From: makoto @ kanon-net.jp (Shinya TAKEBAYASHI) Date: Fri, 01 Jun 2007 04:30:53 +0900 Subject: [Ultramonkey-l7-develop 24] =?iso-2022-jp?b?V2VpZ2h0ZWQgUm91bmRSb2JpbiAbJEI1IUc9REkyQyVRGyhC?= =?iso-2022-jp?b?GyRCJUMlQRsoQg==?= Message-ID: 竹林です. おつかれさまです. Weighted RoundRobin の機能追加パッチを作ってみました. l7vs-0.6.0-0,l7directord-0.5.0-1 のそれぞれに対応するパッチを当て, コンパイルを行って下さい. ==== 実現方式 ==== 基本方針: sched_rr, sched_lc 同様に,スケジューラモジュールとして作成. (l7vs 本体には一切手を入れない) 1.接続数のカウントアップ 接続数をカウントアップする. 2.閾値と比較 閾値として最初のリアルサーバの weight 値を設定し,接続数が 閾値以下であれば,最初のリアルサーバにスケジューリングする. 3.閾値より接続数が大きい場合 次のリアルサーバの weight 値を閾値に足し込み,再度評価を行う. 4.最後のリアルサーバまで辿り着いた場合 接続数をゼロクリアし,1 に戻る. # 振り先が最初のリアルサーバになります ==== 設定方法 ==== /etc/ha.d/conf/l7directord.cf での設定は, virtual=192.168.0.100:8080 real=192.168.0.13:80 masq 5 real=192.168.0.12:80 masq 5 real=192.168.0.11:80 masq 10 scheduler=wrr ・ ・ ・ のように,scheduler に wrr を指定し,masq の後に weight 値を 追加するのみです. また,l7vsadm コマンドによる手入力の場合は, # l7vsadm -a -t 192.168.0.100:8080 -m cinsert \ --cookie-name 'monkey' -r 192.168.0.11:80 -w 10 のように,-w により指定します. 現在設定されている各リアルサーバの weight 値は,l7vsadm コマンドで 見ることが出来ます. kitagawa:/home/makoto/release# l7vsadm Layer-7 Virtual Server version 0.6.0-0 Prot LocalAddress:Port Scheduler ProtoMod -> RemoteAddress:Port Forward Weight ActiveConn InactConn TCP kitagawa.kanon-net.jp:webcache cinsert wrr -> sayuri.kanon-net.jp:www Masq 5 0 0 -> keropi.kanon-net.jp:www Masq 5 0 0 -> mishio.kanon-net.jp:www Masq 10 0 0 ============================================================= 自宅の環境(リアルサーバ 3 台)で試したところ,良い具合に バランシング出来ていることが確認できました. ご意見等ございましたら,宜しくお願い致します. ------------------------------------------------------------- Shinya TAKEBAYASHI E-mail(Office) : takebayashi.shinya @ nttcom.co.jp E-mail(private): makoto @ kanon-net.jp GPG ID: FFD20D1F GPG FP: 7B5B E0FC B785 7457 683C 47D6 5564 DDDD FFD2 0D1F ------------------------------------------------------------- -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: l7directord-0.5.0-1-wrr.patch 型: application/octet-stream サイズ: 7031 バイト 説明: 無し URL: http://lists.sourceforge.jp/mailman/archives/ultramonkey-l7-develop/attachments/20070601/b543233d/attachment.obj -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: l7vs-0.6.0-0-wrr.patch 型: application/octet-stream サイズ: 4648 バイト 説明: 無し URL: http://lists.sourceforge.jp/mailman/archives/ultramonkey-l7-develop/attachments/20070601/b543233d/attachment-0001.obj From kondo.hideaki @ oss.ntt.co.jp Fri Jun 1 10:42:28 2007 From: kondo.hideaki @ oss.ntt.co.jp (Hideaki Kondo) Date: Fri, 01 Jun 2007 10:42:28 +0900 Subject: [Ultramonkey-l7-develop 25] Re: =?iso-2022-jp?b?V2VpZ2h0ZWQgUm91bmRSb2JpbiAbJEI1IUc9REkbKEI=?= =?iso-2022-jp?b?GyRCMkMlUSVDJUEbKEI=?= In-Reply-To: References: Message-ID: <20070601101940.A1AB.KONDO.HIDEAKI@oss.ntt.co.jp> 竹林さま 近藤です。 お疲れ様です。 多忙の中、wrr対応パッチ提供有難うございます。 #寝不足などならないように。。。 実現方式について少し気になる点がありますので 少しコメントと質問をさせていただきます。 wrrの考え方については、既にUltraMonkey(L4)の例が ありますが、今回の実装方式は少し違うと思われます。 UM-L4の場合、RRのWeight値(重み)は比率を意味しており、 接続数(閾値)ではないです。 つまり、リアルサーバ3台の場合、5:5:10と設定するのも 1:1:2と設定するのも同じで、この比率でバランシング されることを意味しています。 1:1:2や5:5:10に設定された場合の動作は、リアルサーバの 1台目->2台目->3台目->3台目->1台目->2台目・・・という ような感じでバランシングされるものと思います。 接続数を意識したスケジューラは、lcやwlcの方になると 思います。(wlcの場合は、さらに重みが考慮されますが。) UM-L7とUM-L4で、同じwrrスケジューラの考え方が異なるのは 好ましくないと思いますので、再考が必要ではないでしょうか。 あともう一つ気になる点として、wrrだけではなくrrやlcで あってもweightの1と0を実現させて、リアルサーバの 切り離し/切り戻しに対応させる必要があると認識しておりますが、 この点についても考慮される(されている?)と考えて 宜しいでしょうか。 以上、お手数をおかけしますが、ご教示の程 よろしくお願いします。 On Fri, 01 Jun 2007 04:30:53 +0900 Shinya TAKEBAYASHI wrote: > 竹林です. > おつかれさまです. > > > Weighted RoundRobin の機能追加パッチを作ってみました. > l7vs-0.6.0-0,l7directord-0.5.0-1 のそれぞれに対応するパッチを当て, > コンパイルを行って下さい. > > > > ==== 実現方式 ==== > > 基本方針: > sched_rr, sched_lc 同様に,スケジューラモジュールとして作成. > (l7vs 本体には一切手を入れない) > > > 1.接続数のカウントアップ > > 接続数をカウントアップする. > > > 2.閾値と比較 > > 閾値として最初のリアルサーバの weight 値を設定し,接続数が > 閾値以下であれば,最初のリアルサーバにスケジューリングする. > > > 3.閾値より接続数が大きい場合 > > 次のリアルサーバの weight 値を閾値に足し込み,再度評価を行う. > > > 4.最後のリアルサーバまで辿り着いた場合 > > 接続数をゼロクリアし,1 に戻る. > # 振り先が最初のリアルサーバになります > > > ==== 設定方法 ==== > > /etc/ha.d/conf/l7directord.cf での設定は, > > virtual=192.168.0.100:8080 > real=192.168.0.13:80 masq 5 > real=192.168.0.12:80 masq 5 > real=192.168.0.11:80 masq 10 > scheduler=wrr > ・ > ・ > ・ > > のように,scheduler に wrr を指定し,masq の後に weight 値を > 追加するのみです. > > また,l7vsadm コマンドによる手入力の場合は, > > # l7vsadm -a -t 192.168.0.100:8080 -m cinsert \ > --cookie-name 'monkey' -r 192.168.0.11:80 -w 10 > > のように,-w により指定します. > > > 現在設定されている各リアルサーバの weight 値は,l7vsadm コマンドで > 見ることが出来ます. > > kitagawa:/home/makoto/release# l7vsadm > Layer-7 Virtual Server version 0.6.0-0 > Prot LocalAddress:Port Scheduler ProtoMod > -> RemoteAddress:Port Forward Weight ActiveConn InactConn > TCP kitagawa.kanon-net.jp:webcache cinsert wrr > -> sayuri.kanon-net.jp:www Masq 5 0 0 > -> keropi.kanon-net.jp:www Masq 5 0 0 > -> mishio.kanon-net.jp:www Masq 10 0 0 > > ============================================================= > > > 自宅の環境(リアルサーバ 3 台)で試したところ,良い具合に > バランシング出来ていることが確認できました. > > ご意見等ございましたら,宜しくお願い致します. > > ------------------------------------------------------------- > Shinya TAKEBAYASHI > > E-mail(Office) : takebayashi.shinya @ nttcom.co.jp > E-mail(private): makoto @ kanon-net.jp > GPG ID: FFD20D1F > GPG FP: 7B5B E0FC B785 7457 683C 47D6 5564 DDDD FFD2 0D1F > ------------------------------------------------------------- 以上よろしくお願いします。 -- Hideaki Kondo