警告! この翻訳は古過ぎるため、原文を御覧ください。
Debian アーカイブミラーの構築
ミラーすべきかどうか
私たちはすべての新しいミラーに感謝しますが、 ミラーメンテナ志望の方々は、 自身のミラーを開始する前に以下の質問に答えられるかどうか確認してください。
- ミラーはその地域に不可欠か。もしかして近くにミラーがすでにあるのではないか。
- ミラーをホストするためのリソースを持っているか。 ミラーはかなりのディスク領域と帯域幅を消費するので、コスト負担を約束できなければならない。
- ミラーすることは正しい選択か。ときどき人は、本当は apt-cacher-ng のようなキャッシュプロキシを実行したいところを、誤ってミラーを開始する。
ミラーの対象
メインのミラーページにミラーできるアーカイブのリストがあります。
- Debian をネットワークからインストールするため、CD を (jigdo を使って) 作成するため、あるいはインストール済みのシステムを更新するために、 debian/ アーカイブをユーザは期待します。
-
debian-cd/ はミラーサーバによって内容が異なるアーカイブです。
CD イメージの作成に使われる jigdo (debian/ のファイルと組み合わせて使用されます)
のテンプレートが置かれているサイトや、出来上がっている CD
イメージが置かれているサイト、あるいは両方が置かれているサイトがあります。
詳細は Debian CD イメージのミラーサイトになるにはのページを見てください。 - debian-archive/ には実際のアーカイブ、古い、obsolete なバージョンの Debian があります。これは通常、特定少数のユーザしか関心を持たないものでしょう。
ミラーサイズについてのより正確な情報については、ミラーサイズ ページを参照してください。
debian-security/ アーカイブには Debian セキュリティチームによりリリースされる、セキュリティ更新が置かれます。 これは誰しも関心をもつ対象となるでしょうが、セキュリティ更新は散発的に起こるので、 最新を保つのに頻繁なミラー処理 (あるいは push ミラー) が要求されるため、推奨しません。Debian では、代わりに security.debian.org の高い可用性を保つのにあらゆる努力をします。
どこからミラーするのか
ftp.debian.org
が Debian パッケージの正当な場所で、
そこからミラーするのがベストだと考える人が多くいますが、
これは正しくありません。
ftp.debian.org
は内部の Debian サーバから更新しているサーバのうちの一つに過ぎません。
そのアドレスは単一のサーバに目下割り当てられており、主に後方互換性のためにまだ存在します。
公式ミラーは、ここからミラーするのに適切な場所であることを意味します。
ミラー全リストにあるサーバのうち、
Type: Push-Primary
か Type: Push-Secondary
タグがあるものがミラー元として適切です。
その中からネットワーク的、地理的に近いものを使用してください。
ミラー処理がなされている限り、異なる Push-Primary のミラーサーバの間に実質的な違いはありません。言い換えれば、 多くの人が ftp.debian.org を使う (残念ながらそうなっています) と、 提供された帯域を活かせずに無駄にしているということになります。
米国のミラー管理者は、ftp.us.debian.org (Push-Primary ミラーである、米国での公式ミラーアドレス) からミラーすべきです。
ただし、このアドレスは複数のマシンのラウンドロビンのエイリアスでもあるので、
そのうちのどれが最適かを確認して、その特定の1つからミラーするのが普通です。
こうすることの良い面は、2段階の rsync を行うとの失敗のリスクを
避けられることです (それぞれの段階は、
その時間差の間に、競合状態を引き起こすことになる異なるデータを持つ
異なるマシンを見に行く可能性があります)。
悪い面は、このことでパフォーマンスがさまざまなな単一サイトに集中する
というものですが、これは現時点では一般に私たちのミラーネットワークに
つきものです。
どうやってミラーするのか
推奨するミラー方法は、次の2種類の形式で利用可能な、ftpsync というスクリプトセットを使用する方法です。
- https://ftp-master.debian.org/ftpsync.tar.gz の tarball
- git リポジトリ: git clone https://ftp-master.debian.org/git/archvsync.git
強く推奨するミラー用のプロトコルは rsync です。
wget やその他の FTP ベースのミラーツールを用いて Debian をミラーするのは控えるようお願いします。 これらのツールでも可能なように思われるかもしれませんが、 これらには様々な問題 (ハードリンクを検出できない、部分的なミラーをするのが大変、など) があります。
匿名 rsync
アーカイブのミラーには ftpsync スクリプトセット の使用を推奨します。中にある README ファイルに従ってミラーを構築してください。
あなた自身のスクリプトを使う場合、サポートしなければならない 最低限の機能は次のとおりです:
2段階の同期を行うようにしてください。
アーカイブミラーは、2 段階で行われなければなりません。最初の rsync は インデックスファイルを無視して実行する必要があります。最初の rsync 実行での 正しい exclude オプション は次のとおりです:
--exclude Packages* --exclude Sources* --exclude Release* --exclude InRelease --exclude i18n/* --exclude ls-lR*最初の段階ではどのファイルも削除してはなりません。
次の段階では、上記で除外されたファイルを転送し、もうミラーに属さない ファイルを削除するようにします。
根拠: アーカイブミラーを 1 段階だけで行うようにすると、インデックスファイル がまだミラーされていないファイルを参照する期間ができてしまいます。
実行中に push を無視してはなりません (push ミラー 向け)。
ミラー同期の実行中に push を受け取った場合、それを無視しては*いけません*。 全同期処理を再実行する必要があります。
根拠: Debian ミラースクリプトのほとんどの実装は、 最初の同期がまだ実行されているときに2回目の push イベントを受け取った場合、 ミラーを矛盾した状態のままにしてしまいます。おそらく近い将来、push の頻度は 増える予定です。
- rsync には最低限このオプションを付けてください: --recursive --times --links --hard-links --delete
- ディスク容量に余裕がある場合は、--delete-after オプションも使って更新時の一時的な問題も回避するようにしてください。
- rsync でのミラー作業が終わったら、
あなたのサーバ名を付けたタイムスタンプファイルを Debian ミラーの
project/trace/
サブディレクトリに追加してください。 つまり、日々の rsync が終わったら date -u > .../debian/project/trace/your.server を実行するということです。 - project/, doc/ その他のサブディレクトリについてはできるだけ除外しないようにしてください。 これらは通常、サイズは小さく、それでいてユーザにとって有益です。 特に、project/trace はミラーに問題があった場合非常に役に立ちます。
部分的なミラー
既に Debian アーカイブのサイズは巨大になっているので、必要な一部だけのミラーをしたいという人もいます。 何か除外する場合は、アーキテクチャを除外してください。
推奨の ftpsync の場合は、ARCH_EXCLUDE 変数を編集することで可能になります。
project/, doc/ その他のサブディレクトリについてはできるだけ除外しないようにしてください。 これらは通常、サイズは小さく、それでいてユーザにとって有益です。 特に、project/trace はミラーに問題があった場合非常に役に立ちます。
その他の専用スクリプトも使用することはできますが、通常は不要でしょうし、 公式ミラーに使うのはお勧めできません。
いつミラーするのか
メインのアーカイブは1日4回更新されます。 ミラーは通常 3:00、9:00、15:00 及び 21:00 (ともに UTC) 頃に更新を始めますが、 これは決まっているわけではなく、これに執着すべきでもありません。
ミラー更新はメインのアーカイブミラーの数時間後に行うべきです。 ミラー元のサイトが project/trace/ サブディレクトリにタイムスタンプファイルを残しているか確認してください。 タイムスタンプファイルはそのサイトのような名前で、 その内容は最後のミラー更新完了時刻です。(安全を見て) これから数時間とってミラーしてください。
ミラーはメインのアーカイブと同期していることが不可欠です。最低でもミラーを 24 時間に 4 回更新すれば、アーカイブの正確な反映を保証できます。 メインのアーカイブと同期していないミラーは公式ミラー一覧に掲載されないことを 認識しておいてください。
毎日のミラー作業を自動化するのに最も簡単なのは cron です。詳細は man crontab してください。
注: あなたのサイトが push 機構を採用する場合にはこの項目はまったく気にする必要がありません。
push トリガーによるミラー
push
ミラーとは、私たちが開発した、
アーカイブへの変更がミラーに行き渡るまでの時間を最小にとどめるミラー方法です。
上流のミラーが SSH トリガーを用いて下流のミラーに更新を開始させます。
データを押し込むこと (push)
ができるのは、通常、
変数データを使用しない安全なトリガー (引き金) のみです。したがって、
ミラープロセスの残りの部分は、cron ジョブのような単なるpull
となります。
push 型のミラー作業は (ftp.us.debian.org のように DNS
ラウンドロビンの別名となっているような場合に)、
複数のサーバを同期させ続けるのに必要です。また、私たちは第 1 層、
第 2 層のミラーに対してこれを使用します。
ただし、この方法は準備にやや手間がかかるので
私的
なミラーで広くは行われていません。
この仕組みについて、さらに突っ込んだ説明や、どうして安全なのか、 push ミラーの構築方法については、完全な説明を参照してください。
追加の推奨設定
Debian ミラーを HTTP から利用できるようにする場合は、Apache の設定の
<Directory /path/to/your/debian/mirror>
ブロック内に以下を加えてください (恐らく Apache を使っているでしょう)。
/path/to/your/debian/mirror
には実際にミラーを置いているディレクトリが入ります:
Options +Indexes +SymlinksIfOwnerMatch IndexOptions NameWidth=* +SuppressDescription
これによりディレクトリインデクスが有効になり、symlink 追跡が効くようになります。ディレクトリインデクスでファイル名が切られなくなり、 (ほとんど存在しない) 説明は表示されなくなります。
Apache 1.3.x においては、以下のオプションを追加することもできます。
DirectoryIndex .
このオプションは Apache 2.x では追加しないでください。
ミラーリストにミラーを追加するには
自分のミラーを公式ミラーリストに挙げられるようにするには必ず:
- 24時間に4回、ミラーがアーカイブと同期
- そのミラーに置くアーキテクチャのソースファイルを収録
するようにしてください。ミラーが構築できたら、Debian に登録して公式ミラーリストに追加してもらうようにしてください。手続きは簡単なウェブフォームから行うことができます。
問題や疑問があれば、[email protected] 宛にお願いします。