皆さんが、興味をしてしてくださって光栄です(笑) とにかく資料が無いので、闇雲に考えておりますが、まず、段 階をおって攻めるべきなのかと思い始めています。
少なくとも(笑)、Web サーバは FreeBSD でゆきたいと思って おりますので、負荷分散は ubuntu でも使って、LVS にて行い たいと考えました。 # 便宜上、以下、NAT もマスカレードも NAT で統一します。 ステップ1: FreeBSD で普通に複数サーバを立て、LVS にて負荷分散。 構成は LVS に NAT させて、普通に構成。 The Internet | Router -- (GIP)ubuntu(NAT LVS)(PIP) -+- (PIP)FreeBSD(Web Serv) +- (PIP)FreeBSD(Web Serv) +- (PIP)FreeBSD(Web Serv) : これについては、なんの問題もなさそう。 ここで気になるのはアクセス数が増えた時の LVS の負荷。 特に NAT テーブルが溢れそうで気になります。 あと、速度。 今、目標にしているのは10万PV/1分の能力が出せるサーバ群 の作成です(笑) 1秒間に 2kPV なので、サーバとしてはそんなにしんどくない かと思っていますが、ボトルネックは回線とルータと、LVS。 少なくとも LVS にはそれくらい処理して欲しい。 なので、少しでも LVS の負荷を下げるために NAT を使わない DSR に目をつけました。 もしかして、心配するほどの負荷ではないんですかね? 経験者おられませんか?もし、大した負荷じゃないなら、ここ で手を打ちます(^^; ステップ2: 構成は変えずに、PIP を GIP にして DSR を行う。 この場合、Web Server の数に制限が出来てしまいます。 それと、LVS は NAT の必要がなくなりますので、ルータとし ての機能のみとなり、かなり軽くなるのでは、と考えます。 ステップ3: ステップ2の GIP を PIP にする。これが、問題の所。 Linux では iptables という機能で、IP address が目的の物 では無くてもパケットを受けることが出来るようです。 これは、FreeBSD でも工夫すれば出来るのかな、とは思ってい ます。 例えば lo0 に外部からアクセスされる Web 仮想 IP を alias して、lo0 を内側と見立てて NAT します。これで、パケット は届くのでは無いかと。 ただ、問題は、出てゆく時。同じように変換かかると、Web server の外向きの PIP が From になっちゃいますよね。これ ではダメです。 なんとか、IP の置き換えはせず、MAC アドレスだけの変更で 対処できる方法があれば・・・・ ただ、これでも LVS を通過するので、負荷がかかっています。 ステップ4: 構成上 LVS を同一セグメントに置いて、Web Server は router しか通らない形にする。 The Internet | Router -+- (PIP)FreeBSD(Web Serv) +- (GIP)ubuntu(NAT LVS)(PIP) +- (PIP)FreeBSD(Web Serv) +- (PIP)FreeBSD(Web Serv) : ここで問題になるのは、ルータと各サーバの間にいるスイッチ です。 現在 L3 スイッチを使っているのですが、見かけ上同じ IP か らデータが返ってくることになるので、おかしくならないかと(^^; L2 なら問題無いのかな? まぁ、ここは L3 次第なんですが。extreme って紫のやつ使っ てます。 色んな問題を含んでいますが、なんとか実現できないかと。 実現できないと、Web Server が Linux+tux って事になってし まうのかなぁ。。。。と。。。。 それはなんとしてでも避けたい(笑) ステップ5: 負荷分散も FreeBSD でやってしまいたい。 ソリューションを何にするのかが問題ですね(^^; 以上、どなたか的確なアドバイスを・・・何卒よろしくお願い 致します。 Tue, 24 Jan 2012 12:33:32 +0900 に、 TAKANO Yuji (たかのゆ〜じ) <takac...@running-dog.net> さんは書きました: > たかのです。こんにちは。 > > FreeBSD で DRS って面白そうですねぇ。 > > 動作したら ML なりウェブでその顛末を書いてくださると嬉しいです。 > > From: Shigeki Mimura <shig...@mimura.bz>さん > > > 現在負荷分散の方法として、DSR(Direct Server Return)を実 > > > 現しようと考えておりますが、どうにもこうにも資料が見つか > > > ら無くて実現方法がわかりません。 > > > > IPVSを使おうとすると、potrsのipvs自体が古くてインストールできないですね。 > > まずここでつまずきそうです。 > > ソースいじくるのもありだとは思うのですが、net/relaydを使ってな > > んとかできないでしょうかね。 > > 僕もチロッと探してみたのですが FreeBSD のネタは見つかりません > でしたが OpenBSD では動作するようですね。 > > http://www.undeadly.org/cgi?action=article&sid=20080617010016 > > pf と relayd で動作するのかなぁ? > > relayd は ports の net/relayd でしょうかねぇ? > > #ポインタのみで申し訳ありません・・。 > > たかの > --- > Contact to me. > takachan[at]running-dog.net http://www.running-dog.net/ > takachan[at]icmpv6.org http://icmpv6.org/ -- もじもじ <mojimoji...@yahoo.co.jp>