From takeda.kenji @ nttcom.co.jp Tue Nov 8 18:30:51 2011 From: takeda.kenji @ nttcom.co.jp (=?ISO-2022-JP?B?GyRCQ11FRCEhN3JGcxsoQg==?=) Date: Tue, 08 Nov 2011 18:30:51 +0900 Subject: [Ultramonkey-l7-develop 734] =?iso-2022-jp?b?VjMbJEIkS0RJMkMkOSRrGyhCVVJMGyRCJWIlOCVlITwbKEI=?= =?iso-2022-jp?b?GyRCJWskTjtFTU0kSyREJCQkRiROJDRBakNMGyhC?= Message-ID: <4EB8F6CB.8030509@nttcom.co.jp> モンキー開発者のみなさま お疲れ様です。新参者の竹田です。 URLモジュールの仕様についてご相談があります。 以前、V3に追加するURLモジュールはV2の仕様を踏襲するという 提案をみなさまにしたところ、基本方針はそれでよいという了解を得たと思います。 ところが、現状のV3ではVirtual Service追加に関する仕様が V2と異なっているため、V2時代と同様の感覚でURLモジュールを扱うことが 難しいことが判明しました。 ○問題 例えば、V2では下記のようなVirtual Serviceの 設定を行うことが可能でした。 <例1> l7vsadm -A -t 192.168.1.110:40000 -m url -P "abc" l7vsadm -a -t 192.168.1.110:40000 -m url -P "abc" -r 192.168.1.101:50000 l7vsadm -A -t 192.168.1.110:40000 -m url -P "efg" l7vsadm -a -t 192.168.1.110:40000 -m url -P "efg" -r 192.168.1.102:50000 # 上記は「1つのVirtual Serviceに対して複数のキーワードを設定し、 # そのキーワードそれぞれに対して1つのReal Serverを紐付けしたい!」 # という場合を想定しています。 しかし、現状のV3は振り分けキーワードが異なったとしても IP&ポートが同一なVirtual Serviceは登録不可能な仕様となっています。 V3では、thread_pool内の各スレッドとmodule間で連携して 通信処理を行っています。 この通信処理はあくまで、ひとつのVirtualServiceに閉じられた 処理であるため、VirtualSeviceのthread_pool内の情報を ほかのVirtualServiceに渡すことができません。 よって、V2のURLモジュールで可能だった「あるVirtualSevice に登録されキーワード"abc"にmatchしない場合、 別のVirtualSeviceに登録された"efg"のルールにmatchするか判定する」 という動作を実現することができません。 ○解決策 「URLモジュール登録時に振り分けキーワードとReal Serverの 紐付けを行ってしまうようにする」 これにより、V3においても<例1>のような設定を実現できるようになります。 コマンドは、例えば下記のようになると思います。 <例2> l7vsadm -A -t 192.168.1.110:40000 -m url -P "abc" -RS 192.168.1.101:50000\n -P "efg" -RS 192.168.1.102:50000 192.168.1.102:50001 ・「-P」は登録するキーワードを示すオプション(V2と同じ)、 「-RS」は登録するReal Serverを示すオプションと仮定します。 ・-P と -RS は1セットで記述すると想定しています。 ・Real Serverは一つのキーワードに対して複数設定できます。 # この解決策はコマンドが少々長くなるという問題があります・・・ 今のところ、上記の解決策でいこうと考えていますが、 ご意見や妙案がありましたらご提示いただければと思います。 以上、よろしくお願いします。 -- -------------------------------------------------- NTTコムウェア株式会社 品質生産性技術本部 技術SE部 基盤ソフトSE・OSS部門 OSS適用推進担当 竹田 健二(Takeda Kenji) 〒261-0023 千葉県千葉市美浜区中瀬1-6 NTT幕張ビル 21F En TEL:043-211-8372 Mail:takeda.kenji @ nttcom.co.jp -------------------------------------------------- From takebayashi.shinya @ oss.ntt.co.jp Tue Nov 8 18:58:02 2011 From: takebayashi.shinya @ oss.ntt.co.jp (Shinya TAKEBAYASHI) Date: Tue, 08 Nov 2011 18:58:02 +0900 Subject: [Ultramonkey-l7-develop 735] Re: =?iso-2022-jp?b?VjMbJEIkS0RJMkMkOSRrGyhCVVJMGyRCJWIlOCVlGyhC?= =?iso-2022-jp?b?GyRCITwlayROO0VNTSRLJEQkJCRGJE4kNEFqQ0wbKEI=?= In-Reply-To: <4EB8F6CB.8030509@nttcom.co.jp> References: <4EB8F6CB.8030509@nttcom.co.jp> Message-ID: 竹田 さま 竹林です. お疲れ様です. > ○解決策 > 「URLモジュール登録時に振り分けキーワードとReal Serverの > 紐付けを行ってしまうようにする」 > > これにより、V3においても<例1>のような設定を実現できるようになります。 > コマンドは、例えば下記のようになると思います。 > > <例2> > l7vsadm -A -t 192.168.1.110:40000 -m url -P "abc" -RS 192.168.1.101:50000\n > -P "efg" -RS 192.168.1.102:50000 192.168.1.102:50001 > > ・「-P」は登録するキーワードを示すオプション(V2と同じ)、 > 「-RS」は登録するReal Serverを示すオプションと仮定します。 > ・-P と -RS は1セットで記述すると想定しています。 > ・Real Serverは一つのキーワードに対して複数設定できます。 l7vsad -A で仮想サービスを追加するタイミングで全ての分岐条件を 指定しないといけない,ということでしょうか. V2 までの仕様では仮想サービス運用開始後も -a でリアルサーバを 追加できたりしましたが,これが不可能になるという. あと気になるのが,l7directord への影響です. 全てのプロトコルモジュールが -A 指定時にリアルサーバも追加できるように するのであれば,あまり大きな話にはならないと思っていますが, この変更を sslid などの他モジュールには適用しない(※)と仮定すると, url モジュールの時のみ l7directord の動作を変える必要があるなど ちょっと作り込みの規模が大きいと推測しています. # 仮想サービス追加時にリアルサーバまで一気に追加するようにする ※ sslid モジュールなどの既存モジュールは,仮想サービス運用開始後も l7vsadm -a でリアルサーバの追加などが可能,という仕様を引き継ぐ 今回の仕変が既存に対しどう影響するかについて,明確にしたいですね. 私も良いアイディアがあれば良いのですが,今すぐ考えつくネタがないもので・・・. 思いついたらメール投げます. ----------------------------------------------------------- Shinya TAKEBAYASHI E-mail: takebayashi.shinya @ oss.ntt.co.jp GPG ID: 395EFCE8 GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 -----------------------------------------------------------