以下のようなケースを考えましょう。 WWW は DNS ラウンドロビンなりする前提で同じコンテンツのものを 複数台用意するわけですわ。 そして、もちろん金がない場合を考えています ;)
| | |
www1 www2 www3 ...
| | |
-----------
|
ftp server
(この絵は概念的に分解されたものなので、
現実的には同一マシンで www 兼 ftp サーバかもしれないことに注意)ここで ftp サーバはインターネット上からのデータ授受のために用意される ものです。サーバ管理者以外はこれらのホスト群に入ることはできません。 (www というサービス以外での)唯一の穴がこの ftp です。 この部分は厳重に隔離/防衛する必要があります。
お金がうん千万もある場合はきっと
| | |
www1 www2 www3 ...
| | |
---------------- NFS (NetAPP とか)
|
ftp server
とかして、ftp から NFS サーバ、WWW も NFS サーバを見る
ようにするんだろうけどなぁ〜ftpd が受けとったデータは www1 のデータエリアに直接書く。 www2 へは N 分に一回 rsync か rdist でシンクロするように設定。
| | |------| www1 www2 | → ↑| | ftp server
問題点は N 分に一回で〜すと言い切れるかどうかだ。
現実には、プレスリリースに合わせてコンテンツをアップデートしたいからと いう人もいるだろう。 こういう場合、この ftp 遅延シンクロ方式だと複数台のシンクロの途中のた め、時間帯と round robin の具合によっては更新前/後どちらか一方が見えて しまうところが問題なわけです。
どうしても時間を気にする人は dual 構成を使わないでいてもらうのが吉です な、わっはっはっは。
ftpd が動いたら queue に入れる。 別途 queue を見張る daemon が、それをみてシンクロ処理をスタートさせる。 queue の監視のインターバルを N 分と設定する。
正確には、シンクロの転送時間を考慮し、 "N - 転送時間" を想定したインターバルが望ましい。
もちろん、ログを見れば分かるのだが、 queue を作りたいので、 特定のディレクトリなりに時刻とともに順番に ftp が動いた(コンテンツが更新されたかも知れない)という記録が残ることが 望ましい。
最も簡単な手は tcp_wrapper だ :-) /etc/hosts.allow で
ftpd: ALL: spawn ( ディレクトリに書く… )などとすれば OK じゃん
| [1] | そら、エヴァのタイトルだろが〜 |
my homepage is www.fml.org/home/fukachan/.
my free softwares are found at www.fml.org/software/.
fml 4.0 project homepage is www.fml.org/fml/menu.ja.html.
fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
about one floppy bsd routers, see www.bsdrouter.org/.
my laboratory will be nsrg.fml.org (under preparation).
Also, visit nuinui's world :) at www.nuinui.net.
For questions about me, e-mail <fukachan@fml.org>.
Copyright (C) 1993-2008 Ken'ichi Fukamachi
Powered by NetBSD.