[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Debian JP master SVN www commits (rev.194)
=======================================================
Repository: /org/svn.debian.or.jp/repos
Revision: 194
Commiter: kmuto
Date: 2007-03-07 20:53:09 +0900 (水, 07 3月 2007)
=======================================================
Log:
described about push-mirror and CDN
=======================================================
Changed:
U www/trunk/src/using/push-mirror.tt2
Modified: www/trunk/src/using/push-mirror.tt2
===================================================================
--- www/trunk/src/using/push-mirror.tt2 2007-03-07 08:15:14 UTC (rev 193)
+++ www/trunk/src/using/push-mirror.tt2 2007-03-07 11:53:09 UTC (rev 194)
@@ -31,11 +31,11 @@
<ul>
<li><strong>大容量ディスク:</strong> ミラーをするために何よりも必要なのは、大きなディスクです。現時点 (2007年3月) でフルミラーには 220GB 程度を消費しており、将来見込まれる増加を前提とすると最低でも 500GB クラス、できれば 1TB 以上のクラスのディスク容量が必要になります。ミラーするアーテキクチャを絞ればディスクの消費は抑えられますが、本ドキュメントでは CDN の一員とするための条件であるフルミラーを行うものとします。RAID は必須ではありませんが、ディスク障害によってミラーが消失すると、復旧に時間がかかることになります。</li>
-<li><strong>安定した広帯域ネットワークと堅固なハードウェア:</strong> ミラーとなったサーバには、(CDN では分散されるとはいえ) 多数のディスクアクセスおよびネットワークアクセスが発生することになります。特に rsync で上流ミラーに追従する最中は、短時間のうちに多量のアクセスが起こり、高負荷になります。たとえば安価な NAS のようなものではこの負荷に対処しきれず、頻繁なクラッシュが起きる可能性もあります。管理チームでは、x86 アーキテクチャのように十分に枯れたものを推奨しています。</li>
+<li><strong>安定した広帯域ネットワークと堅固なハードウェア:</strong> ミラーとなったサーバには、(CDN では分散されるとはいえ) 多数のディスクアクセスおよびネットワークアクセスが発生することになります。特に rsync で上流ミラーに追従する最中は、短時間のうちに多量のアクセスが起こり、高負荷になります。たとえば安価な NAS のようなものではこの負荷に対処しきれず、頻繁なクラッシュが起きる可能性もあります。<a href="../project/organization.html">管理チーム</a>では、x86 アーキテクチャのように十分に枯れたものを推奨しています。</li>
<li><strong>Unix OS:</strong> 基本的には、rsync と Web サーバが動作すれば OS は特に問いません (実際、ftp.jp.debian.org を含め、Debian ミラーのいくつかは Debian GNU/Linux を使っていません)。でも、Debian ならきっと簡単ですよ :)</li>
-<li><strong>十分な実メモリ:</strong> rsync および Web サーバ (通常は Apache) は、実メモリを多量に消費します。管理チームの経験では、最低でも 512MB、できれば 1GB 以上のメモリを塔載しているのが望ましいと思われます。</li>
+<li><strong>十分な実メモリ:</strong> rsync および Web サーバ (通常は Apache) は、実メモリを多量に消費します。<a href="../project/organization.html">管理チーム</a>の経験では、最低でも 512MB、できれば 1GB 以上のメモリを塔載しているのが望ましいと思われます。</li>
<li><strong>外部からの SSH アクセス:</strong> このドキュメントの手順で推奨する push ミラーを実現するためには、外部からの SSH アクセスを許可するよう設定しなければなりません。基本的には上流ミラーからミラーを開始するよう送られる「シグナル」を何らかの形で受け取れさえすればよいので、上流ミラーだけにアクセスを許可して、またシェルログインを与える必要もありません。SSH 以外のシグナル (たとえば指定の Web ページにアクセスしたり自動処理メールを送ったりするなど) を使うことも理論上はできますが、現時点では要求する声もないので本ドキュメントでは扱いません。</li>
-<li><strong>信頼できる連絡・管理責任者:</strong> ミラーのほぼすべての作業は自動で行われますが、まれに障害・事故で手動の作業が要求されることがあります。気付かないうちにディスクがいっぱいになっているということもあるでしょう。そのようなとき、管理チームなどから連絡が必要になりますが、誰に聞いたらよいのかわからないというのは困ります。また、Debian ミラーの整合性は APT の機構によってひとまず守られているとは言えますが、ファイルを汚染されたりすることのないよう、ミラーサーバ上のユーザ管理は厳密にお願いいたします。</li>
+<li><strong>信頼できる連絡・管理責任者:</strong> ミラーのほぼすべての作業は自動で行われますが、まれに障害・事故で手動の作業が要求されることがあります。気付かないうちにディスクがいっぱいになっているということもあるでしょう。そのようなとき、<a href="../project/organization.html">管理チーム</a>などから連絡が必要になりますが、誰に聞いたらよいのかわからないというのは困ります。また、Debian ミラーの整合性は APT の機構によってひとまず守られているとは言えますが、ファイルを汚染されたりすることのないよう、ミラーサーバ上のユーザ管理は厳密にお願いいたします。</li>
</ul>
<h3>ミラーの設定</h3>
@@ -43,11 +43,11 @@
<p>Debian ミラーを構成するには、まず <a href="http://www.debian.org/mirror/anonftpsync">anonftpsync</a> スクリプトで rsync によるミラーを行います。</p>
<ol>
-<li>サーバの適当なディレクトリに <a href="http://www.debian.org/mirror/anonftpsync">anonftpsync</a> をダウンロードして配置します。たとえば /home/andy/bin/anonftpsync とします。</li>
+<li>サーバの適当なディレクトリに <a href="http://www.debian.org/mirror/anonftpsync">anonftpsync</a> をダウンロードして配置します。たとえば /home/ftpadm/bin/anonftpsync とします。ミラーを行うユーザは専用の (あまり権限のない) ものを作ったほうがよいでしょう。</li>
<li>このファイルを編集します。
<ul>
<li>TO: Debian ミラーを配置するディレクトリ。たとえば /var/www/debian。ミラーを実行するユーザが書き込める必要があります</li>
- <li>RSYNC_HOST: Debian 上流ミラー。たとえば ftp.jp.debian.org。push ミラーサービスを開始するにあたってどの上流を選ぶべきかは管理チームに問い合わせてください。最初の時点では手近なミラーでかまいません。</li>
+ <li>RSYNC_HOST: Debian 上流ミラー。たとえば ftp.jp.debian.org。push ミラーサービスを開始するにあたってどの上流を選ぶべきかは<a href="../project/organization.html">管理チーム</a>に問い合わせてください。最初の時点では手近なミラーでかまいません。</li>
<li>RSYNC_DIR: 上流ミラーで公開されている Debian ミラーの名前。通常は debian/</li>
<li>LOGDIR: ミラーログを置くディレクトリ。たとえば /home/andy/logs。ミラーを実行するユーザが書き込める必要があります</li>
<li>ARCH_EXCLUDE: 除外するアーキテクチャ。フルミラーのためには空のままにしておきます</li>
@@ -55,10 +55,11 @@
<li>MAILTO: ログを送付するアドレス。長大ですし、通常は空でよいでしょう</li>
</ul>
</li>
+<li>rsync、 procmail、debianutils をインストールしておきます。procmail はミラーの動作自体には必須ではないのですが、ミラー中であることを示すロックファイルを作成するのに lockfile コマンドをスクリプト内で使っています。procmail を入れられない場合には、スクリプト内で lockfile を呼び出している箇所を別のコマンドで置き換える必要があります。debianutils もミラーの動作には影響しませんが、ログファイルのローテーションのために savelog コマンドをやはりスクリプトの最後で実行しています。</li>
<li>Debian の CD や DVD があるなら、ミラーディレクトリにコピーしておくと、ダウンロード時間を一部軽減できます。</li>
<li>anonftpsync を実行します。LOGDIR で指定したディレクトリにログが書き込まれるので、tail -f /home/andy/logs/debian-mirror.log のようにしてうまくダウンロードできているか監視するのがよいでしょう。</li>
<li>anonftpsync での rsync ミラーは 2 回行われます。最初にパッケージプールの pool/ ディレクトリへの追加ミラーが行われ、そのあとにパッケージ情報ファイルを格納する dists/ ディレクトリの更新と、上流で削除されたファイルの削除が行われます。こうすることで、パッケージ情報にはあるのにプールにファイルがないという事態を避けられます。</li>
-<li>上流からミラーがうまくできたことを確認したらひとまず完了です。</li>
+<li>上流からミラーがうまくできたことを確認したらひとまず一段落です。Web サーバ経由で http://サーバ名/debian/ でミラーを参照できる (つまり、http://サーバ名/debian/dists/stable のように参照できる) ようにしておきましょう。</li>
</ol>
@@ -67,18 +68,40 @@
<p>前述の方法で上流からミラーを引っ張ってくる (pull) ことはできるようになりましたが、いつ上流の更新のミラーを行うかという問題があります。だいたいのアタリを付けて実行するという方法もありますが、上流で何か不具合があったときにはその影響を被ってしまいます。push ミラーは、上流が自身のミラーの完了後に下流に向けてシグナルを送り (push)、これを受けて初めて下流がミラーを開始するというものです。
</p>
<p>
-シグナルには、SSH アクセスが一般的に用いられています。上流のミラーユーザの SSH 公開鍵をサイト上のミラーユーザの認証済み鍵リング (~/.ssh/authorized_keys) に加え、この鍵でのアクセスを受けたときに anonftpsync を起動する、というように設定します。
+シグナルには、SSH アクセスが一般的に用いられています。上流のミラーユーザの SSH 公開鍵 (<a href="../project/organization.html">管理チーム</a>に尋ねてください) をサイト上のミラーユーザの認証済み鍵リング (~/.ssh/authorized_keys) に加え、この鍵でのアクセスを受けたときに anonftpsync を起動する、というように設定します。
</p>
-◆→WRITING←◆
+<pre>
+no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/home/ftpadm/bin/anonftpsync &" ssh-rsa AB12....2vIg== ftpadm@hp.debian.or.jp
+</pre>
+<p>上流からシグナルの送信テストを行い、ミラースクリプトが起動することを確認します。あとは、マスターサーバでの更新が発生するごとに順にシグナルとミラーの波及が行われるようになります。</p>
+<p>ちなみにシグナルを送る側は、次のように記述した signal.sh を用意し、</p>
+<pre>
+#!/bin/sh
+echo Signalling $1
+ssh -4 -2 -o"BatchMode yes" -o"user $2" "$1" -i $HOME/.ssh/id_dsa_push-mirror sleep 1 < /dev/null > /dev/null 2>&1
+(ここでは秘密鍵には~/.ssh/id_dsa_push-mirrorを使っている)
+</pre>
+
+<p>これを anonftpsync の最後で呼び出すだけです。</p>
+
+<pre>
+savelog $LOGFILE
+
+/home/ftpadm/bin/signal.sh ftp.example.jp ftpadmin
+(下流ミラーのftp.example.jpのユーザftpadminにシグナルを送る)
+</pre>
+
<h3>CDN に加盟する</h3>
-◆→WRITING←◆
+<p>ここまでできたら、あとは CDN に加盟するだけです。CDN は、DNS サーバを使ったラウンドロビンの一種ですが、重み付けを設定し、加盟サイトの生存確認も行うことで、耐障害性が高く負荷も分散されたダウンロードサービスを提供します。</p>
+<p>push ミラー構築後、<a href="../project/organization.html">管理チーム</a>に連絡してください。重み付けの設定のため、あなたの提供できる帯域についての情報も付加していただけると助かります。連絡を受けた<a href="../project/organization.html">管理チーム</a>は、あなたのミラーを CDN のネットワークに追加します。「host cdn.debian.or.jp」で DNS 問い合わせを実行し、あなたのサーバが加わっていることを確認してください。</p>
+
<h3>その他</h3>
-<p>ロボットによる絨毯爆撃的なアクセスなどへの対処は、ミラー担当者のローカルアクセスポリシーに基いて随時設定を行ってかまいません。広範囲な拒否設定を行う場合には、管理チームに一報していただければ幸いです。</p>
+<p>ロボットによる絨毯爆撃的なアクセスなどへの対処は、ミラー担当者のローカルアクセスポリシーに基いて随時設定を行ってかまいません。広範囲な拒否設定を行う場合には、<a href="../project/organization.html">管理チーム</a>に一報していただければ幸いです。</p>
<h3>参考文献</h3>
<ul>