■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 最新50

キャッシュ型負荷分散システム開発スレッド

1 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:29 ID:asPJm1Ug
このスレッドは、2ch.net の転送量削減を目指し、P2P-cache型の
負荷分散システムを開発するスレッドです。

参照:http://203.174.72.113/p2pcache/P2Pcache/frame.htm
その他参照スレは >>2-5 あたりに。

2ちゃんねるの軽量化・開発に関する他の話題は、
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=20

その他、障害報告・動作報告等は、
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20

に、それぞれお願いいたします。

206 :にはん ◆/gWayilU :01/08/29 10:26 ID:OYkF597Y
>>205
そうなると、ひろゆきとBigは2chから降りなければならなくなってしまうんだよね。
Bigにとってのメリットは2chがさくさく動いているということを宣伝に使える、
ということだから、そのうまみがまったくなくなってしまう。

ひろゆきはひろゆきで、自分はなにも管理していないのに「2ちゃんねる」の代表として
今後も訴訟の際などには呼び出される格好になる。そんな馬鹿らしいことは誰だって嫌だろう
(いまの状態も馬鹿らしいといえばそうなんだけど)。

俺が技術レイヤだけではこの話は堂堂巡りになる、というのはその辺もあるんだ。

純粋に技術話として、大規模な「Webの」BBS群をどう取り扱うか、と言う話をしてみる、
と言う事にも十分意味はあると思うけど、少なくともそれはいまの2chには生かすことは
出来ないと思う。

207 :名無しさん@お腹いっぱい。 :01/08/29 10:31 ID:nl0FB/..
>>194
やっぱり、ラウンドロビンの定期的変更が一番単純でしょうか?

とりあえず、キャッシュ鯖に、アドレスと使用可能な回線容量かなんかを申告させて
それにあわせてラウンドロビンのリストを作成するって感じかな?
リストのサイズは固定にして、余裕が有る鯖は複数回、普通のところは1回呼ぶとかで
負荷調整を図ると。
鯖の事は全然分かってないので知ったかぶりなんですけど、
これってBINDレベルで対応可能って事ですよね?。

>>206
とりあえず、今Big-server以外の鯖って残ってましたよね?
そっちに応用すればいいんじゃないでしょうか?

208 :音楽侍 ◆NtVkSITE :01/08/29 10:33 ID:j/vYHKaU
>>207
そのBig-server以外の2chサーバってさ、昨日ラウンジ一個が引っ越しただけで破綻したんだよ。

209 :音楽侍 ◆NtVkSITE :01/08/29 10:37 ID:j/vYHKaU
>>206
それはその通りです。
そしてそれは、私たちが話しても憶測と推定とやがてバリゾーゲンになってしまうので、みんなやらないのです。
だって、ひろゆきさんの公式コメントないし(今の段階ではない方が私もいいと思ってます)。
私たちはこうやってがんばったりしちゃってますが、ひろゆきさんからみれば、ただのいち2ちゃねらーなだけですから。

そういうことも含め、ひろゆきさんの存念を確認したい、っていうのが夜勤さん上京の本音じゃないかと私は思っているのですけれどね。

210 :Perler ◆GSi39OA6 :01/08/29 10:47 ID:qGdmeavk
現在のミラーの様子

http://202.247.106.47/tech/index2.html
http://www.gedoh.org/tech/index2.html
http://210.170.170.118/mirror/dat/tech/index2.html <− 全コンテンツ取得しているようです

特にanony氏のミラーは2ch本体の代わりとして充分機能している気がします。

>>199
私が考えている展望を書きます。

まず、2日前くらいの予告とともに、2ch.netのread.cgiを板ごとに順次止めていきます。

ここで、予告期間中にわかに有志でmirror.plを走らせる人が増えてくるんじゃないかと思います。
(逆に誰もミラーしてくれなければこの話は終わりです。)
read.cgiが止まった板のミラーが出来たら、さらに別の板のread.cgiを止めていきます。

実際、2ch.netのread.cgiを止めてしまわないと、有志は増えないんじゃないかと思っています。
2ch.net上でread.cgi動いてる時点ではmirror化のメリットは見えてこないですからね。

2ch.netの各サーバーへの振り分けは、当初は考えなくて良いと思っています。
振り分け自体も、現在の2ch.netの対応を見る限り、
ラウンドロビンを2chが早々に導入してくれるという事も考えにくいので、
有志にサーバー一覧(リンク集)をまとめてもらう方向になるのではないかと思います。

サーバーが増えれば、今度は負荷を考えてランダムにミラーサーバーへforwardする
CGIを作って、それをまた有志サーバー上で走らせて対処するのが現実的ではないかと。

これらがうまく機能しなくてもかちゅ〜しゃがあるわけですし。

2ch.netの役割は、玄関と、bbs.cgiによるログ管理のみ、という事になってしまいますが。。。

即時性については、ミラーリングの手法を変える事で対応できるんじゃないかと思います。
現在はHTTPでやってるんでオーバーヘッドが大きすぎますが、

将来的には、2ch側に配信専用サーバーを立てて、クライアント(キャッシュ側)からソケット張りっ
ぱなしにしておき、書き込みがあったら2ch側からデータをputしていくようなシステムに
なるんじゃないかと思います。

GETリクエストを送らなくても勝手にどんどんKeep-Aliveでデータを送りつけてくるHTTPサーバー
みたいなものを想像して頂ければ分かりやすいかと。

211 :名無しさん@お腹いっぱい。 :01/08/29 10:54 ID:nl0FB/..
>>208
だからこそ、分散処理すれば落ちにくくなるって話なのでは?

とりあえずは、避難所レベルの資源を持っている人に協力してもらって
一次キャッシュサーバになってもらうのが現実的かな?

そのうちP2Pのほうが形になってくると思いますし、
一時しのぎができればいいのでは?。

問題は、管理サイドの考えが見えてこないことなんですが、
2chがこの規模を維持するにはどう考えても分散が必要ですから
まあ、最悪の場合、避難所のサポートシステムとしても有効ではないかと思いますし、

212 :Perler ◆GSi39OA6 :01/08/29 10:56 ID:qGdmeavk
前にも書いたんですが、現在サーバーは生きていて、read.cgiだけ止まってる
板ってあるんでしょうか?

あるのなら、そこをミラー化させるのが一番よい実験題材なのですが。

213 :音楽侍 ◆NtVkSITE :01/08/29 10:57 ID:j/vYHKaU
>>210
Perlerさん、おはようございます。
んー、そうですね。即効性アクセス削減案と言うところまでは異床同夢です。
P2Pについては、クライアントの開発が絡みますので、3-6ヶ月はかかると思います。
早ければ10月にはBig-serverさんは手を引く可能性がありますので、間に合いません。
また、ミラーリングの精度を上げるのも限度がありますし、ミラーするくらいだったらbbs.cgi語とおいたって一緒じゃないか、っていう発想だってあるです。
夜勤さんは9月の帯域料金は50Mまでしか支払えないって明言していますし。

214 :名無しさん@お腹いっぱい。 :01/08/29 13:20 ID:y.SJYiFg
キャッシュサーバーですけど、
ファイルの容量ってどれぐらいになるのですか?
容量によっては走らして見たいと思ってるんですけど。

215 :音楽侍 ◆NtVkSITE :01/08/29 13:21 ID:j/vYHKaU
>>214
走らす板によって違うと思いますよ。
techで15.5MB程度ですかね?

216 :名無しさん@お腹いっぱい。 :01/08/29 13:27 ID:y.SJYiFg
>>215
了解です。
cygwinで走らせて見ます。

217 :名無しさん@お腹いっぱい。 :01/08/29 14:06 ID:nl0FB/..
>213
まあ、ビジネスの話については、ひろゆきに代わりの広告主見つけてくれ
としか言えないですけどね。あとは夜勤さんガンバ!かな?
とりあえず、Bigサーバのイメージダウンにならない形でやらないと
本当に撤退って可能性もあるので、それだけは避けないと。

にしても最近一番疑問だったのは、PROXYに対する対応。
PROXYを使うのが、本来の目的であるキャッシュ効果よりも、
荒らしがしやすい事の方が強調されて、2chでPROXYつかうのは、
なにか後ろめたい事のような風潮になってたように思いますね。

ところで、普通のPROXYなんかと比較すると、どのくらい効果が違うんでしょうかね?
主にアクセス集中時のケースで、3者の比較が出来ればいいかも?

218 :Perler ◆GSi39OA6 :01/08/29 14:13 ID:qGdmeavk
>>217
今回の場合、キャッシュすべきものがかっちり決まってるので、
mirror.plの方が効率が高いでしょうね。
あと、汎用のHTTP-Proxyだと、.datではなくHTML化したものを取ってくるので、帯域を
余分に喰うことになりそうです。

219 :Perler ◆GSi39OA6 :01/08/29 14:17 ID:qGdmeavk
とりあえず、私の環境ではmirror.plは順調に動いています。
昼はアクセスが少ないためもあって、1分ごとの起動で、1回の取得が数秒と、
かなり快適なミラーリングになっています。

あとは、コマンドライン引数で板やサーバーの指定が出来るようにして、
その後.datをgzipで保存するように対応したいです。

220 :山師さん :01/08/29 15:40 ID:qc5beSto
6ヶ月限定らしいが2600円で結構使えそう>開発用に
どうよ?

http://prime-jp.com/host/advance.html

221 :素人さん :01/08/29 16:28 ID:W.7THPBI
Big の外の帯域制限の緩い鯖に Apache proxy かなんか置いて、www.2ch.net のA レコードはそっちを指してもらうってのじゃダメなの?

222 :名無しさん@お腹いっぱい。 :01/08/29 16:49 ID:iU.Fd0UU
>>221 その場合はproxy/cacheじゃなくて「ミラーサーバ」になるでしょう
でも その「Big の外の帯域制限の緩い鯖」はどうするの?
それに 2ch.netのプライマリDNSの設定権限を持ってるのはだれ?

まぁ それがクリアできるのなら「激しく同意」なんだけどね

223 :素朴な突っ込み :01/08/29 19:06 ID:NvOO2vOY
あのー、P2Pが本命ではないかと言っておられる人が多いようですが、
2ちゃんの規模でそれをやって、日本の通信回線は大丈夫なのでしょうか。
今の2ちゃんの転送量では大丈夫かもしれないけど、一年後の転送量は・・・

と言うわけで、このスレのプロジェクトが実は本命なのではないかと
思うのですが、どうでしょう?

224 :てんてんdwp@ yankee.tokyo-nazo.net :01/08/29 19:43 ID:DVACnJqw
>>188自己レス。
寝ぼけてていたらしくて寝言言ってた。申し訳無い。
http://www.tokyo-nazo.net/mirror/dat/tech/index2.html
で、ミラーリングはとりあえずできてるみたいです。
あと、今はうちのweb server使ってるけど、まだグローバルIPに空きが
あるので、2chテスト専用サーバを来月中にはおったてます。128Kbps線
だけど。
>>223
できそうなものはとりあえず全部やってみるのがいいのでは?
その中からいいアイデアが出るかもしれないし。
どれかを本命と決め打ちして、それがこけたらそれこそ致命的だと思う。

225 :名無しさん@お腹いっぱい。 :01/08/29 20:06 ID:32goOYrE
>>158さんのを参考にmirror.plを走らせてみたんですが、
<H1>Connect Error</H1>って出ます。
Vine-2.1.5, perl 5.005_03
なんですが、どうしたらいいでしょうか?

226 :225 :01/08/29 20:37 ID:32goOYrE
あー、今windowsマシンにcygwin入れて試したら、
ちゃんと動いてるっぽいです。
原因はperlかなあ?

227 :ターボ戦隊イエロー :01/08/29 22:07 ID:DVGyRnrk
>>225 TurboLinuxにのりかえる

228 :てんてんdwp@ yankee.tokyo-nazo.net :01/08/29 23:07 ID:DVACnJqw
えーと、>>183のドキュメント、eucで書かれてたんでちょっとだけ苦労した(^^;
というわけで、ここに修正して貼るけど、いいよね?
1. アーカイブを展開します。
gzip -dc mirrortest.1.0.tar.gz | tar xvf -
2. read.cgiをbuildします。
cd mirror/test
make -f Makefile
3. read.cgiをコピーします。
cp read.cgi ../dat/test/
4. mirror.plがあるディレクトリに移動します。
cd ../../
5. mirroringを実行します。
./mirror.pl

全てが終わったら動作を確認しましょう。
ブラウザでhttp://(解凍した場所)/mirror/dat/tech/index.html

で、合ってますか?

229 :名無しさん@お腹いっぱい。 :01/08/29 23:47 ID:VGLV51Nk
http://mankomankomanko.virtualave.net/bbs.txt
をbbs.cgiにして、
../dat/test/
に入れても動きますよ。

make出来ない人でもこれで動かせるはず。

230 :anony ◆3XTuRnAc :01/08/30 00:08 ID:grWs5t1E
>>228
そんな感じです。清書感謝です。
あと、自分で書いてて&自分で外から自分ちのミラーにアクセスしてみて
気づいたんですが、bbs.cgiがないと意味がないことに(汗

というか、Perlerさんのmirrorツールが生成するmirrorから
記事にアクセスして「書き込む」をやると、2ch本体じゃなくて
ミラーサーバーの方のbbs.cgi見に行くような感じがするんですが>Perlerさん

mirrorの仕様上、bbs.cgiは2ch本体のものを見に行かないと
意味がないと思うのですが、read.cgiで生成されるhtml見てると、
そのサーバー上のbbs.cgiを見てるような。

231 :anony ◆3XTuRnAc :01/08/30 00:17 ID:grWs5t1E
って、ひょっとして自分がつかってるread.cgiが古いのかな?
2ch-read-currentの中からそれっぽいの最新を取ってmakeしたのだけれど。

232 :anony ◆3XTuRnAc :01/08/30 00:24 ID:grWs5t1E
てことで即席ハックで強引に2ch本体のbbs.cgiをつかうように
してみたんですが、やっぱり無理のようでした。って当然か・・・。

233 :名無しさん@お腹いっぱい。 :01/08/30 00:33 ID:8gDt9PTM
>>232
書込みフォームを消して、
書込みボタンを付ける。
で、そのボタンで本家のread.cgiを呼び出す。
ただしls=1で。
これならあまり負荷は掛からないのでは。

234 :名無しさん@お腹いっぱい。 :01/08/30 01:09 ID:TfjSc3dw
>>233
read.cgiがls=0を許容すればもっといいんだけどね。
暫定案としては賛成。

235 :名無しさん@お腹いっぱい。 :01/08/30 01:13 ID:Xut3shDo
>>234
現状のread.cgiはls=2が最小の模様。
ls=1にすると全てを取得しようとする。

236 :名無しさん@お腹いっぱい。 :01/08/30 01:17 ID:TfjSc3dw
>>235
nofirst=true&ls=1なら最終1レスのみ取得できる模様。

237 :anony ◆3XTuRnAc :01/08/30 01:20 ID:grWs5t1E
うーん、でも書き込むときにもうワンステップ踏むのって
やっぱ面倒じゃないかと思うんですが。
上の書き込みを見ながらレスを書くとかって普通にやるじゃないですか。

238 :名無しさん@お腹いっぱい。 :01/08/30 01:23 ID:TfjSc3dw
>>237
別ウィンドウで2ch.netのread.cgiを開くようにすればよい。

239 :名無しさん@お腹いっぱい。 :01/08/30 01:37 ID:9VE7JjWs
恒久対策をうつのなら、
・最大許容転送量に応じた処理能力規制
が必要なんじゃないの。

要は、金融業界でやってるキャパシティ・プラニングが必要。
単に転送データ量が軽いだけだと、
首都高や東名と同じ現象が出るだけではないかい?
(道幅広げた分利用者が増えて混み具合は変らない
 →道幅広い分、車がより多く通れるようになってしまう
 →車のハバを小さくしたらどうか?これも同じこと
 →いまさまざまな板で考えているのはこれに収斂してしまう)

まじめに、キャパシティプラニングを捉えてみないか?

240 :名無しさん@お腹いっぱい。 :01/08/30 01:44 ID:TfjSc3dw
>>239
真面目にやるとしたらプロ技板の手に余りそう。
通信技術板とかに振れないかな。
あっちにはそう言う技術者いるかな。

241 :名無し娘。 ◆vP.bOZFQ :01/08/30 01:55 ID:HrH04.b6
>>239-240
少なくとも 2ch.net では、それはやらない方向で。
初期にガイシュツ。
キャッシュサーバー間でそれは、必要かもしれない。

242 :anony ◆3XTuRnAc :01/08/30 02:10 ID:grWs5t1E
とりあえず、良いアイディアがでないので、寝ます・・・。
もうちょっといろいろ考えてみたく。

>娘。さん
実験参加できなくてごめんなさい。

あ、とりあえずミラーサーバーとftpサーバーは
生かしたまま放置プレイしておくので。

243 :名無し娘。 ◆vP.bOZFQ :01/08/30 02:12 ID:HrH04.b6
>>242
いえいえ(^^;
お疲れさまです。

244 :あぼーん :あぼーん
あぼーん

245 :名無しさん@お腹いっぱい。 :01/08/30 02:51 ID:RRvj6jF.
ユニマガ8月号に書いてあったyahoo.co.jpの構成は参考にならんか?

246 :名無しさん@お腹いっぱい。 :01/08/30 03:58 ID:9VE7JjWs
>>241
やらずに可能なんだろうか・・・
今度は有志の維持環境が同様の目に会うだけだと
思うのだが。

247 :名無しさん :01/08/30 07:02 ID:9q6FHzvw
>>245

何がどう参考になるのだ?

248 :245 :01/08/30 08:52 ID:9Kp01ciI
>>247
負荷分散の仕方とか。
# ならんのならすまそ。そのときは逝く。

249 :安西 :01/08/30 08:56 ID:sxla9v.Q
あきらめたらそこで試合終了です。

250 :名無し娘。 ◆vP.bOZFQ :01/08/30 17:07 ID:y2CYzMG6
>>246
帯域制限かけるくらいなら、むしろ2ちゃんねる人口を減らす方がまし、という
感じでしょうか。

251 :anony ◆3XTuRnAc :01/08/30 19:27 ID:E5ciTOEw
てことで、どうやらPerlerさんのmirror.plも動いているようですから、次のフェイズに移行しませんか?
私が感じてる課題としては、大きいものから小さいものも含めて

・mirrorサーバーからシームレス投稿できたほうがいいと思う。

 「mirror側では投稿フォームを出さず、代りに「投稿する」リンクをread.cgiが作成し、
 そのリンク先は2ch本体のスレッドを別ウィンドウで開いて表示、そのWindowsから投稿させる」
 というアイディアはだされたけれど、やはりシームレスにいけるに越したことはないとは思うんですね。

 となると、「mirrorサーバーに投稿して、mirrorサーバーが即座に本体にpostする」しくみ、ってのが
 必要になると思います。そうなると、やはり投稿のレスポンスなども考えると

  ミラーが投稿を受け付け→ミラーが本体に投稿→
  すぐに本体からデータをmirroring(ほかのミラーからも投稿されているかもしれないのでそれをマージ)
  ミラーの内部のcacheから生成したindex2.htmlを表示

 みたいな方法になると思うのですが、mirrorのときのレスポンスが悪いですし、問題のトラフィックも
 結構ありそうで、解決方法がうまく見つかりません。この線はもうなしで、既出の解決策の方法になるのでしょうか。

・mirror.plなどのディレクトリ構成
 細かいことかもしれませんが、やはり、この手のツールを有志で運用する、しかも「キャッシュとして使ってもらう」
 ということも考えると、ディレクトリ構成を2ch本体に準ずる必要があると思います。

 つまり、
   ・必要なtarballを、Apacheの$documentrootで展開して動かせば2chと同様のディレクトリ構成となる
 という構成になってることが実は運用というか稼動では結構重要ではないでしょうか。

このあたり、ご意見聞かせていただければ幸いです。

252 :名無し娘。 ◆vP.bOZFQ :01/08/30 20:00 ID:KS31DBTQ
>>251
ガイシュツで申し訳ないですが。。。
前半について、ミラーが投稿を受け付けるのは、2ch.netの匿名性、
ミラーサーバーの管理者への信頼等がありますので、難ありかと。
action先を xxx.2ch.net/test/bbs.cgi にして、2ch.net 側で登録した
鯖からのPOSTを受け付ける、というのでどうでしょう。
いちおう、投稿者の行動がミラー管理者に見えにくくなると思うのですが。

253 :音楽侍 ◆NtVkSITE :01/08/30 20:06 ID:7UF/vWVo
みなさんおつかれさまです〜
>>252
それを言い出すと、read.cgiでもそうなんですけどね。

254 :名無し娘。 ◆vP.bOZFQ :01/08/30 20:15 ID:KS31DBTQ
>>253
そうですね。ただ、利用者の心理的な部分では、読んでるのと書いてるのでは
差が大きいと思います。
書いている場合は、コテハンがわかったり、発言内容とIPが対応したりと、
嫌な感じなことが多いですから。

でも、bbspinkを読んでいる、ってのを知られるのは(゚д゚)マズーかもしれません(笑

255 :音楽侍 ◆NtVkSITE :01/08/30 20:19 ID:7UF/vWVo
>>254
pinkですか(笑)なるほど。
気をつけないと、いっぺんip-recordableなcgiかませてから
Locationでとばす不心得者が出る可能性もありますしね(笑)
6〜10行程度のperlで記述可能だし。

256 :anony ◆3XTuRnAc :01/08/30 20:27 ID:E5ciTOEw
>娘。さん
ありゃ、やはりがいしゅつでしたか。失礼しました。

とりあえず、ミラーサーバーでの中間キャッシュにIPさえ残さなければ2chに残るのはミラーの
IPだけってことになるから、何とかなるかなーなどと思ってたんですが、よく考えたらミラー側の
apacheのLogにも残ってしまうんですよね。そのpost用のツールも管理者が改変しないとも限らないと。

やはり「投稿のときにだけは本体にアクセスしてもらう」か、「登録したサーバーからは直接bbs.cgiを呼べるようにする」
しかないのかな。前者だと「面倒だから最初から本体にいこう」とかなっちゃいそうな気もしますが・・・。

257 :名無しさん@お腹いっぱい。 :01/08/30 20:53 ID:stSp5H8A
>>256
2ch.net本体も同じUIにすればいい。
すなわち、read.cgiでは通常投稿フォームは置かないで、
[投稿フォーム]ボタンで別Windowでの投稿というように
シーケンスを統一する。
連続投稿荒らしをある程度抑止できるかもしれないという
期待もある。

258 :てんてんdwp@ yankee.tokyo-nazo.net :01/08/30 21:12 ID:xz66aZYk
ちょっとやり方として可能かどうかはわからないけれど、貼りつけ合成って
できるんでしょうか。
つまり、2chからは&st=1&to=1指定でベースと書きこみフィールドだけ取ってきて、
その中間にキャッシュのデータを挟み込んでやるんです。
これができるなら、1だけは取らなければなりませんが、他は取らなくてもいいです
よね。

259 :名無しさん@お腹いっぱい。 :01/08/30 21:17 ID:stSp5H8A
>>258
IFRAMEを使用すれば可能。ただしUA依存が激しいのでおすすめしかねる。
ついでに、read.cgiに対して&ls=0で0レス取得は提案済み。

260 :名無しさん@お腹いっぱい。 :01/08/30 21:21 ID:kBS5NSxo
いきなりすいませんがプロ技板は閉鎖しちゃったんでしょうか。
read.cgiハックスレを毎日帰宅してから追いかけてたんですが。。ROMですが (^^
残念〜

261 :音楽侍 ◆NtVkSITE :01/08/30 21:23 ID:7UF/vWVo
>>260
かちゅう〜しゃ使ってない?
ブラウザから行くと新しいリンク先わかるよ〜

262 :名無しさん@お腹いっぱい。 :01/08/30 21:34 ID:kBS5NSxo
>>260
ありがとッス、piza2に引っ越してたんですね
板一覧はローカルだったのをすっかり忘れていました  ^^
今mirror.plを導入すべくcygwinを設定してます (ウィンナなんで。)
linuxは何故かNETに晒すのが怖い。。。。んー厨房だ
感謝です

263 :てんてんdwp@ yankee.tokyo-nazo.net :01/08/30 22:09 ID:xz66aZYk
>>259
すまん、私はにちゃんねらーじゃないので、2chをよく知らないんだ。礼儀違
反だったかな?またなんかあったら教えてくださいな。

結論としては>>252のようにbbs.cgiを変えてmirrorサーバからのリクエスト
を受けてもらうのが一番データ転送量が少ないし、その他の問題も少なくて済
みそう、ということでいいのかな。

あとmirror.plだけど、プロセスとして定期的に起動するようなスクリプトも
組みこみが必要ですね。>>158の5のやり方だとログインしっぱなしになるんで。

264 :名無しさん@お腹いっぱい。 :01/08/30 22:14 ID:7fOtYCeU
>263
単に起動するだけだと前のプロセスとファイルを取り合う可能性があるので、
queue に突っ込んで、
前のプロセスの処理が終わってなかったら待つなり諦めるなりの
それなりのスケジューリングをしないと。

265 :  :01/08/30 22:15 ID:7ajzWl22
そろそろ出来た?

266 :名無しさん@お腹いっぱい。 :01/08/30 22:27 ID:tJ.u7wQ2
しかし大丈夫なのかなぁ?
ミラーのやりあいで、フレーム起こって
かえって転送量増える事ないのかなぁ?

267 :Perler ◆GSi39OA6 :01/08/30 22:46 ID:8hpmXoeM
ではとりあえず、mirror.plに関して、

・コマンドライン引数による、サーバー/板の指定
・多重起動抑制
・デーモン化のコマンドラインスイッチ設置
・ログのgzip化

の変更を開始します。

268 :名無し娘。 ◆vP.bOZFQ :01/08/30 23:17 ID:KS31DBTQ
後ろ向きな考えでアレですが、ミラーサーバーでの改変や同一性検証を
どのように行うか、展望はありますか?
データを暗号化して公開鍵でread.cgiが複合するとか、
ミラーサーバー間&2ch.netが何かのついでにちょくちょくとCRCなりMD5なりを
チェックするとか。。。でしょうか。

269 :Perler ◆GSi39OA6 :01/08/30 23:29 ID:8hpmXoeM
>>268
そこまでコストかけても、ミラーサーバー側のスクリプトいじられたらアウトなんですよね。。。
公開鍵で復号はいい案だと思うんですが、Rangeでのログの取得が出来なくなりますし。
どうしましょうか。。。?

270 :Perler ◆GSi39OA6 :01/08/30 23:55 ID:8hpmXoeM
>>46
と私も思ったんですが。。。

現状のApache(1.3.x以降)だと、nph-する、しないに関わらずhttpd側でのバッファリングは一切やらない
(クライアントにリダイレクトしちゃう)みたいなので、昔のApacheで言われていたバッファリングによる
オーバーヘッドの回避はないらしいです。

ヘッダのパースで生じるオーバーヘッドもほとんどないような気がします。

271 :Perler ◆GSi39OA6 :01/08/30 23:56 ID:8hpmXoeM
>>270 すみません、誤爆です。。。

272 :名無し娘。 ◆vP.bOZFQ :01/08/30 23:57 ID:KS31DBTQ
>>269
どの程度負荷がかかってしまうかとかわからないので、様々な方々の意見を
お待ちしたいです>公開鍵

CRC とかチェックサムっぽいのならば、サーバーAが dat 更新のリクエストを
出して、サーバーBが応答して dat(差分) を送信した後に、Aに更新後の CRC を
算出させ、Bのそれと一致しない場合にはアラートをだす、とか。
これを、複数のサーバー間で dat 更新のたびにやらせれば、1つのミラーサーバー
管理者が悪意をもってもだいじょうぶだと思います。
# ミラーサーバー内でさらにDISK内容をミラーさせて、read.cgiに見せるdatと
# mirror.plに見せるdatを変えられたら、ダメですが(笑

改変されないことはひとまずおき、改変されたら周りの鯖が気付くことで必要十分ですね。

273 :名無しさん :01/08/31 00:01 ID:K0661yX.
既出でしょうが
read.cgiを国内キャッシュ鯖において、ROMはそこで処理
big鯖にはbbs.cgiをおいて書き込み処理&キャッシュ情報
更新をやらせるという形は?
少なくともhe.netに入る前にF5攻撃とROMは阻止できる。
キャッシュ鯖はbbs.cgiから送られるdatを表示するだけだから
ミラー鯖のような同一性検証も必要ない。

274 :名無しさん :01/08/31 00:03 ID:x2Bz1IF.
このスレで開発してるのは、P2Pではくて、書込バケツリレー頂点サーバーからねずみ算式に
mirrorが読んでいくシステムではないかと...

275 :名無しさん :01/08/31 00:08 ID:K0661yX.
>>274
273だが折れがいいたかったのはまさにそーゆーシステムなのだが・・・

276 :名無し娘。 ◆vP.bOZFQ :01/08/31 00:11 ID:.hIWo2j.
>>273
キャッシュ鯖での改変は。。。
>>274
スレ立てるときの間違えです。申し訳ありません。

277 :274 :01/08/31 00:20 ID:uajIN0xc
>275
スマソ、もっと上に向かって書いたつもりだったよ、失敬。

>276
datディレクトリの更新チェック毎コピーだから問題ないのでは?
上位鯖から更新毎に通知してくれればロスは無いと思われ

278 :名無し娘。 ◆vP.bOZFQ :01/08/31 00:37 ID:.hIWo2j.
>>277
全コピーですか?
それだと、datの差分転送ができなくなりますが。
差分だとすると、更新されない部分を鯖管理者が悪意で改変する場合が問題になります。

279 :名無しさん :01/08/31 00:40 ID:K0661yX.
それでも無用ROMとF5攻撃の遮断だけでも
効果はあると思う

どうせ存続ならこの後も転送料増えるからキャッシュ鯖分業化と
差分転送と両方やれば?

280 :名無し娘。 ◆vP.bOZFQ :01/08/31 00:43 ID:.hIWo2j.
>キャッシュ鯖分業化と差分転送
その、本質的な違いがわからないのですが。。。

281 :腐卵 ◆r4/JZF2o :01/08/31 00:43 ID:XN8TPsgk
>>278
悪意の改変は、不特定多数をキャッシュ管理にいれた時点でどうしようもない。
mirror.pl でも悪意による改変は可能では?
転送量を減らすのを大前提とするなら、その点はあきらめざるを得ない部分だと思う。

282 :273 :01/08/31 00:44 ID:K0661yX.
あっと・・・

どっちかっていうと上位鯖のbbs.cgiに書き込みがあった時に
キャッシュ鯖に更新されたdatを配信するという考えだったのだが。

cache鯖はread.cgiの対応だけで自分での更新は考えていなかった。
たとえば一定時間更新のないdatは定期更新確認してもいいと思うが。

283 :anony ◆3XTuRnAc :01/08/31 00:45 ID:Lkdpz9pY
>>268-272
そんなに深刻になる必要は実はないんじゃないでしょうか。
というのは、要するに「改変されたかどうかをリアルタイム(またはそれに近い
タイミング)で検出する」必要はないのじゃないかと。

つまり、必要なのは、
「任意のスレッドの任意の記事に対し、mirrorサーバー上で改変されているか
 いないかを確認する方法」
だと思います。記事のやり取りの最中にMD5とか暗号とか考えなくてもいいかと。

というか、そもそも、「オリジナルは2chのサーバー」に必ず存在するわけですから、
「疑惑のスレッドに改変が行われていないかどうか」をユーザーはチェックできるわけです。
たとえば「Mirrorサーバー管理者側にとって都合の悪い記事が勝手にあぼーんされた」
というときでも、Masterである2chサーバーには生き残っているわけです。

たとえば以下の仕様を持つ「勝手あぼーんチェッカ」を用意すれば比較的容易に
誰でも確かめられるんじゃないでしょうか。

1.GUI画面プログラムとする。
2.「2ch側のdatデータのURL」「ミラー側のdatデータのURL」を設定する
3.「チェック」を実行すると、以下のように動く
  3.1 2chサーバーから「マスターdat」をダウンロード
  3.2 ミラーサーバから「疑惑のdat」をダウンロード
  3.3 行毎に比較を行い、改変や追加削除があるかどうかをチェックする
  3.4 左右分割画面にて、改変追加削除があった場所の表示やその個所の
      dat行のレンダリングを行う。

まあ、これを大量にやられたらものすごいトラフィックになるとは思いますし、
2ch側はともかくミラー側にとっては「DoSアタック」に相当するぐらいの
負荷がかかりかねませんが・・・。

284 :腐卵 ◆r4/JZF2o :01/08/31 00:49 ID:XN8TPsgk
>>283
両方を wget なりで落としてきて、diff(藁

285 :音楽侍 ◆NtVkSITE :01/08/31 00:54 ID:NnB1zrp2
ただでさえ2chのミラーするのは勇気がいるのに、その上ミラー内容をいじるなんて考えにくいけど(笑)
サーバは、クラッキングでもされない限り、責任者の所在が露出するから。

でもまあ、最悪のシナリオを考えるのは、絶対必要ですよね。

286 :初期不良 :01/08/31 00:57 ID:St7MFrmY
くさちゅー変換キャッシュサーバとか出てきそう

改変できることをプラスにとってみたら?

287 :anony ◆3XTuRnAc :01/08/31 00:58 ID:Lkdpz9pY
>>284
まあ、早い話がそれを「ナウい(藁)GUIで」「自動的に」やってくれて、
しかも結果を「ウマー」に表示してくれるツールってことですな(^^;;。

288 :名無しさん@お腹いっぱい。 :01/08/31 01:24 ID:K0661yX.
>>280
キャッシュ鯖分業化
279がいいたいのはread.cgiを国内のサーバーにおいて
読むだけのリクエストはそこで対処する。
書き込みがあった時だけbig鯖に処理を任せると言うこと。
これでROMの分だけbig鯖への転送量が下がる。

差分転送
普通ファイルというものは1個丸ごと転送するものだが、何らかの方法で
(詳しくは知らないので勘弁してくれ)
更新されて追加された分(つまりあとから書き込まれた分)だけを転送するということ。
上記のキャッシュ鯖分業ではbbs.cgiに書き込みがあった時
キャッシュ鯖に更新されたdatを転送する時に、差分転送を行えば
big鯖からキャッシュ鯖へ転送する情報量が
書き込みによって追加されたレスの分だけ転送すればよくなるので
特に多くのレスがついているdatのときはそれだけ転送量を削減できる。

289 :98er ◆8OGY65D6 :01/08/31 01:31 ID:kGkxktsU
>>298
で、mirror で今一番問題なのは レスあぼーん だと思った。
差分転送なら楽だけど、削除したら減るか同一byte。
まぁ、1スレ全部転送すれば済むのかな。

290 :98er ◆8OGY65D6 :01/08/31 01:32 ID:kGkxktsU
>>289
のはレス先誤爆。正しくは >>288

291 :腐卵 ◆r4/JZF2o :01/08/31 01:34 ID:XN8TPsgk
>>289
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998997848&st=450&to=450&nofirst=true
このあたりとか。

292 :音楽侍 ◆NtVkSITE :01/08/31 01:37 ID:NnB1zrp2
いまのミラー化って、dat落ちが発生したらどう管理するんですか?
個人的にはかちゅ〜しゃ使っているので、datで残るのはうれしいんですけどね。

293 :名無しさん@お腹いっぱい。 :01/08/31 01:52 ID:K0661yX.
>>290
まさしくその通り。単純増加なら簡単だがあぼーんという問題がある。

どこかのスレにあったが、datのフォーマットに
あぼーんを意味するコードを作って置いて、
そのコードを受信したら対象のレスをキャッシュ側で消す、という
こともできるんじゃないかな?

294 :名無しさん@お腹いっぱい。 :01/08/31 01:53 ID:XsEuxm5g
すいません。
キャッシュ用read.cgiのパール版を17さんのread.cgiをいじって作ったのですが、
ファイルの置き場所ってあります?

1)SERVER.TXTを置くことで、いろんな板のミラー化に対応可能
2)書込みフォームを削除して、書込みする場合は、本家のread.cgiを呼び出す。
  (その場合nofirst=trueでレス1つだけ)
3)ミラーに対応する.datファイルがなければ、本家にread.cgiもしくは過去倉庫どちらかに
  移動できるようにリンクがでる。

ってようなやつですが。

295 :腐卵 ◆r4/JZF2o :01/08/31 01:54 ID:XN8TPsgk
>>292
mirror.pl をざっと読んでみた限りでは、ファイル削除 or 移動って部分はなさげ。
404とか換えされたら、そのままエラーにしてるっぽい。

296 :aki :01/08/31 02:03 ID:YI9wG.Qg
>>294
ftp://210.170.170.118/incoming/ とか。
cvsとsshが使えるならCVSレポジトリも上がってます。
ftp鯖内のファイルに使い方は書いてあります。

297 :名無し娘。 ◆vP.bOZFQ :01/08/31 02:11 ID:.hIWo2j.
>>281 >>283
改変可能でも、どこまで検出しようとするかの問題かと。
信頼性は大事だと思うんです。もちろん、それでもっと大事なものを
犠牲にしちゃあいけませんが。
>>284 >>287
それやるならCRCなりを算出させれば。4桁でも十分。
ミラーリングする場合でも、networkへの負荷はできるだけ下げなければ。
>>288
激しく同意ですが、それはすでにこのスレで激しくガイシュツ。。。
>>289 >>293
read.cgi で実装された raw_out と同じ方式で、結論として全部転送になるかと。
>>295
そうすると、スレあぼーんは・・・。kako送りも。

298 :Perler ◆GSi39OA6 :01/08/31 02:11 ID:KVFMabyg
ftp://210.170.170.118/incoming/perler/mirror/mirror.pl.3

アップロードしました。

そうですね、あぼーん対策をすっかり忘れていました。。。

今回更新したのは以下。

・オプションに対応、細かい指定が可能に
・シグナル受信時にファイルハンドルを閉じるようにした
・デーモン化するオプションを追加
・沈黙モード追加
・無限ループモード追加。ループ間隔指定可能に

コマンドラインオプションが大量に追加されました。

-dを付けるとデーモン化します。

mirror.pl piza2.2ch.net/tech

とすると、piza2.2ch.netの、tech板を読みに行きます。

mirror.pl piza2.2ch.net:8080/tech

とすれば、80番ポート以外も大丈夫。
その他のオプションは以下。

usage: mirror.pl [-dvhfq] [-s server] [-p port] [-b BBS] [-l dir] [i interval] [
server[:port][/bbs]]

mirror.pl connects [server] on port [port], and retrieve message-data
named [bbs].

Options...

-d Run as a daemon.
-v,-h Show this massage.
-s Set server name.
-p Set port number.
-b Set BBS name.
-l Set log directory.
-f Forever loop.
-i Set interval(defailt: 60)
-q Quiet mode

299 :名無しさん@お腹いっぱい。 :01/08/31 02:14 ID:XsEuxm5g
>>296
WINな人なんで、cvs使えません。
mirror_read_cgi_per.tar.gz
で置きました。
中にdocファイルも一緒に入れてあります。

300 :踊る大捜査線 :01/08/31 02:15 ID:cWiTsGz2
>>299
wincvs 入れとけ

301 :音楽侍 ◆NtVkSITE :01/08/31 02:17 ID:NnB1zrp2
先の話になるでしょうが、mirrorの機能のために、datに変更を加えるすべてのcgiに、idxファイルなんかをつくって、ステータス管理してもらえると助かるですね。

302 :299 :01/08/31 02:32 ID:XsEuxm5g
>>300
wincvs探しに逝ってきます。

303 :aki :01/08/31 02:34 ID:YI9wG.Qg
>>299
Cygwinでも可。
むしろgcc使えるし。

304 :98er ◆8OGY65D6 :01/08/31 02:37 ID:kGkxktsU
とりあえず read.cgi を mirror 対応のために、
(counter++ % server_num)==0 だったらそのまま 200 Ok,
0 以外だったら 302 Moved temporarily, Location: mirror URI

というように改造したら如何でしょうか。
まだ早いかな?

305 :武道版棲息 :01/08/31 02:40 ID:CM.kHQF2
みんな、俺は専門知識はなんも分からんがかっこいーぞ!!
がんばってくれ!!


続きを読む

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)