[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Debian JP master SVN www commits (rev.192)



=======================================================
Repository: /org/svn.debian.or.jp/repos
  Revision: 192
  Commiter: kmuto
      Date: 2007-03-07 17:00:45 +0900 (水, 07  3月 2007)
=======================================================
Log:

writing CDN-mirror guide

=======================================================
Changed:

A   www/trunk/src/using/push-mirror.tt2

Added: www/trunk/src/using/push-mirror.tt2
===================================================================
--- www/trunk/src/using/push-mirror.tt2	2007-03-07 05:07:02 UTC (rev 191)
+++ www/trunk/src/using/push-mirror.tt2	2007-03-07 08:00:45 UTC (rev 192)
@@ -0,0 +1,87 @@
+[% title = "CDN 対応ミラーの設定" %]
+
+<h2>CDN 対応ミラーの設定</h2>
+
+<p>
+Debian JP Project では、1 つのサーバがダウンしただけで APT によるパッケージのダウンロードができなくなるといった障害に対処するため、複数の Debian ミラーサーバを仮想的に集約して耐障害性を持たせる CDN (Contents Delivery Network) 化を進めています。CDN ミラーには、次の APT リポジトリでアクセスできます (<a href="http://www.debian.or.jp/blog/cdn_debian_or_jp-start.html";>詳細</a>)。</p>
+
+<pre>
+deb http://cdn.debian.or.jp/debian/ stable main contrib non-free
+deb-src http://cdn.debian.or.jp/debian/ stable main contrib non-free
+</pre>
+
+<p>(※stable 以外にも、Debian 公式ミラーで提供されている testing、unstable、sarge、etch、sid、experimental といった名前も利用できます)</p>
+
+<p>現時点 (2007年3月) で Debian JP Project の CDN の基準を満たすサーバが少ないため、CDN の主目的である耐障害性はまだ完全とは言えません。そこで、ミラー提供を検討してくださるサイトのために、本ドキュメントでは、Debian ミラーの構築方法と、CDN への追加方法を説明します。</p>
+
+<h3>前提条件</h3>
+<p>
+安定したミラーを構築するにあたっては、いくつかの条件があります。これらが満たされていないと、ユーザに十分なサービスを提供することができません。CDN への加盟にあたっては、次の条件があります。
+</p>
+
+<ul>
+<li>Debian のフルミラーであること。 つまり、ftp.debian.org で公開されているものと同様に、すべてのアーキテクチャ、膨大なすべてのファイルを格納する必要があります。</li>
+<li>push ミラーであること。詳細は後述しますが、上流ミラーが更新を完了したタイミングでシグナルを送り、それを受けてミラーを行うようにします。こうすることで、上流がまだ更新中なのにミラーを行って APT の整合性を壊した状態にしてしまったり、上流のハードウェアクラッシュを受けて一緒にミラーを失ってしまったりといった事態を回避しやすくなります。</li>
+<li>Debian のミラーは HTTP (Web サーバ) で提供されており、Web ブラウザから見て /debian ディレクトリの下にあること。エイリアスや rewrite モジュールなどを使ってもかまいません。ただし、HTTP リダイレクトヘッダは APT ツールが対応していないので利用できません。</li>
+</ul>
+
+<p>
+また、ミラーにあたっては、次の条件を満たしていることが要求されます。
+</p>
+
+<ul>
+<li><strong>大容量ディスク:</strong> ミラーをするために何よりも必要なのは、大きなディスクです。現時点 (2007年3月) でフルミラーには 220GB 程度を消費しており、将来見込まれる増加を前提とすると最低でも 500GB クラス、できれば 1TB 以上のクラスのディスク容量が必要になります。ミラーするアーテキクチャを絞ればディスクの消費は抑えられますが、本ドキュメントでは CDN の一員とするための条件であるフルミラーを行うものとします。RAID は必須ではありませんが、ディスク障害によってミラーが消失すると、復旧に時間がかかることになります。</li>
+<li><strong>安定した広帯域ネットワークと堅固なハードウェア:</strong> ミラーとなったサーバには、(CDN では分散されるとはいえ) 多数のディスクアクセスおよびネットワークアクセスが発生することになります。特に rsync で上流ミラーに追従する最中は、短時間のうちに多量のアクセスが起こり、高負荷になります。たとえば安価な NAS のようなものではこの負荷に対処しきれず、頻繁なクラッシュが起きる可能性もあります。管理チームでは、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>外部からの SSH アクセス:</strong> このドキュメントの手順で推奨する push ミラーを実現するためには、外部からの SSH アクセスを許可するよう設定しなければなりません。基本的には上流ミラーからミラーを開始するよう送られる「シグナル」を何らかの形で受け取れさえすればよいので、上流ミラーだけにアクセスを許可して、またシェルログインを与える必要もありません。SSH 以外のシグナル (たとえば指定の Web ページにアクセスしたり自動処理メールを送ったりするなど) を使うことも理論上はできますが、現時点では要求する声もないので本ドキュメントでは扱いません。</li>
+<li><strong>信頼できる連絡・管理責任者:</strong> ミラーのほぼすべての作業は自動で行われますが、まれに障害・事故で手動の作業が要求されることがあります。気付かないうちにディスクがいっぱいになっているということもあるでしょう。そのようなとき、管理チームなどから連絡が必要になりますが、誰に聞いたらよいのかわからないというのは困ります。また、Debian ミラーの整合性は APT の機構によってひとまず守られているとは言えますが、ファイルを汚染されたりすることのないよう、ミラーサーバ上のユーザ管理は厳密にお願いいたします。</li>
+</ul>
+
+<h3>ミラーの設定</h3>
+
+<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>このファイルを編集します。
+<ul>
+ <li>TO: Debian ミラーを配置するディレクトリ。たとえば /var/www/debian。ミラーを実行するユーザが書き込める必要があります</li>
+ <li>RSYNC_HOST: Debian 上流ミラー。たとえば ftp.jp.debian.org。push ミラーサービスを開始するにあたってどの上流を選ぶべきかは管理チームに問い合わせてください。最初の時点では手近なミラーでかまいません。</li>
+ <li>RSYNC_DIR: 上流ミラーで公開されている Debian ミラーの名前。通常は debian/</li>
+ <li>LOGDIR: ミラーログを置くディレクトリ。たとえば /home/andy/logs。ミラーを実行するユーザが書き込める必要があります</li>
+ <li>ARCH_EXCLUDE: 除外するアーキテクチャ。フルミラーのためには空のままにしておきます</li>
+ <li>EXCLUDE: 除外するファイル。フルミラーのためには空のままにしておきます</li>
+ <li>MAILTO: ログを送付するアドレス。長大ですし、通常は空でよいでしょう</li>
+</ul>
+</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>
+</ol>
+
+
+<h3>push ミラー化する</h3>
+
+<p>前述の方法で上流からミラーを引っ張ってくる (pull) ことはできるようになりましたが、いつ上流の更新のミラーを行うかという問題があります。だいたいのアタリを付けて実行するという方法もありますが、上流で何か不具合があったときにはその影響を被ってしまいます。push ミラーは、上流が自身のミラーの完了後に下流に向けてシグナルを送り (push)、これを受けて初めて下流がミラーを開始するというものです。
+</p>
+<p>
+シグナルには、SSH アクセスが一般的に用いられています。上流のミラーユーザの SSH 公開鍵をサイト上のミラーユーザの認証済み鍵リング (~/.ssh/authorized_keys) に加え、この鍵でのアクセスを受けたときに anonftpsync を起動する、というように設定します。
+</p>
+◆→WRITING←◆
+
+
+<h3>CDN に加盟する</h3>
+
+◆→WRITING←◆
+
+<h3>その他</h3>
+
+<p>ロボットによる絨毯爆撃的なアクセスなどへの対処は、ミラー担当者のローカルアクセスポリシーに基いて随時設定を行ってかまいません。広範囲な拒否設定を行う場合には、管理チームに一報していただければ幸いです。</p>
+
+<h3>参考文献</h3>
+<ul>
+<li><a href="http://www.debian.org/mirror/ftpmirror";>Debian アーカイブミラーの構築</a></li>
+<li><a href="http://www.debian.or.jp/blog/cdn_debian_or_jp-start.html";>cdn.debian.or.jp試験運用開始</a></li>
+</ul>