Настройка зеркала архивов Debian

Зеркалировать или нет?

Хотя мы высоко ценим все новые зеркала, каждый будущий держатель зеркала должен быть уверен, что он может ответить на следующие вопросы, перед тем как начнёт создавать собственное зеркало:

Что зеркалировать

Главная страница зеркала перечисляет архивы, доступные для зеркалирования.

Более точную информацию о размерах зеркала смотрите на странице размер зеркала.

Архив debian-security/ содержит обновления безопасности, выпущенные командой безопасности Debian. Он выглядит интересным для каждого, но, в связи с тем, что обновления безопасности случайны, для того, чтобы оно оставалось современным, достаточно лишь иногда обновлять его зеркало (или использовать проталкивающее зеркалирование), так что мы не рекомендуем его. Вместо этого Debian делает всё возможное для поддержки высокой доступности security.debian.org.

Замечание: начиная с выпуска 3.1 (sarge) в июне 2005 года, архив debian-non-US/ больше не используется.

Откуда зеркалировать

Многие люди думают, что каноническое расположение пакетов Debian это ftp.debian.org, и что будет лучше для них зеркалировать именно с этого сайта. Это неверно.

ftp.debian.org это лишь один из нескольких серверов, которые обновляются с внутреннего сервера Debian. В данное время этот адрес находится на единственном сервере, и оставлен лишь для совместимости.

Хорошим местом для зеркалирования являются официальные зеркала. Для зеркалирования можно выбрать любой сервер из полного списка зеркал, имеющий метки 'Type: Push-Primary' или 'Type: Push-Secondary'. Используйте тот из них, который по сетевым меркам и географически ближе к вам.

Нет никакой разницы между разными Push-Primary серверами зеркал, так как в зеркалировании участвуют все они. С другой стороны, если множество людей использует ftp.debian.org (а, к несчастью, так оно и есть), это излишне тратит пожертвованную полосу пропускания.

Администраторы зеркал в США должны зеркалировать с ftp.us.debian.org (официальный адрес зеркала в США, который является Push-Primary зеркалом). Но в связи с тем, что этот адрес также является псевдонимом для нескольких машин, то обычно лучше определить, какой из них лучший и зеркалировать именно с него.
Хорошим побочным эффектом этого является избежание риска ошибок при совершении двухфазного rsync (различные фазы могут окончится на разных машинах с некоторым временным окном, когда они имеют различные данные, что вызывает состояние гонки (race condition)). Плохим побочным эффектом этого является концентрация на единственном сайте, производительность которого может варьироваться, но это в данное время вообще присуще нашей сети зеркал.

Как зеркалировать

Рекомендуемый метод зеркалирования, так называемый набор сценариев ftpsync, доступен как:

В качестве протокола зеркалирования мы настоятельно рекомендуем использовать rsync.

Не зеркалируйте Debian с помощью wget и других инструментов для ftp. Они вроде бы хорошо работают, но есть некоторые спорные моменты (они не могут определять жёсткие ссылки, ими тяжелее делать частичные зеркала и т.д.).

Настройка rsync

Мы рекомендуем использовать набор сценариев ftpsync для зеркалирования архива. Для настройки зеркалирования прочтите включённый файл README.

Если вы используете свои собственные сценарии, то они должны поддерживать следующую минимальную функциональность:

Частичное зеркалирование

Посмотрев на уже большой размер архива Debian, некоторые люди предпочитают зеркалировать только те его части, которые им нужны. Если вы хотите исключить что-то, вы должны исключать архитектуры.

С рекомендуемым ftpsync это может быть сделано редактированием переменной ARCH_EXCLUDE.

Мы строго советуем не исключать project/, doc/ и другие поддиректории. Обычно они невелики в размерах, но всё же полезны пользователям. Особенно очень помогает project/trace, если имеются какие-либо проблемы с зеркалом.

Можно использовать другие, специально написанные скрипты, но обычно в этом нет необходимости и не рекомендуется для официальных зеркал.

Когда зеркалировать

Главный архив обновляется четыре раза в день. Зеркала обычно начинают обновляться около 3:00, 9:00, 15:00 и 21:00 (всё время по UTC), но это не фиксированное время, и вы не должны опираться на эти времена при зеркалировании.

Ваше зеркало должно обновляться спустя несколько часов после начала обновления главного зеркала. Вы должны проверить, оставил ли сайт, с которого вы зеркалируете, файл с отметкой времени в его поддиректории project/trace/. Файл с отметкой времени будет назван как сайт, и он будет содержать полное время последнего обновления его зеркала. Добавьте пару часов к этому времени (для уверенности) и затем зеркалируйте.

Самый лёгкий путь автоматически ежедневно запускать зеркалирование, это использовать cron. Детали смотрите в man crontab.

Учтите, что если ваш сайт настроен на работу с проталкивающим механизмом, вам нет необходимости беспокоиться обо всём этом.

Проталкивающее зеркалирование

Проталкивающее зеркалирование — это форма зеркалирования, которую мы разработали для уменьшения времени, требуемого для того, чтобы изменения в архиве достигли зеркал. Сервер зеркала использует триггер SSH, чтобы сказать клиентскому зеркалу обновить себя. Проталкивание обычно ограничено безопасным триггером, которому не нужно переменных данных, так что процесс зеркалирования — это простое вытягивание, как с помощью задачи cron.

Проталкивающее зеркалирование необходимо для сохранения синхронизации множества серверов (серверов с DNS системой имён, подобных ftp.us.debian.org), и мы используем его для наших первых и вторых скрепляющих зеркал. Однако поскольку этот метод требует несколько больше усилий для настройки, обычно он не используется на частных зеркалах.

Более подробное описание того, как это работает, почему оно безопасно и как настроить проталкивающее зеркалирование, смотрите в полном разъяснении.

Рекомендуемые добавочные установки

Если вы собираетесь сделать зеркало Debian доступным через HTTP, добавьте следующие настройки в вашу конфигурацию Apache (конечно, подразумевается, что вы будете использовать Apache), в пределах блока <Directory /path/to/your/debian/mirror>, Где /path/to/your/debian/mirror должно быть актуальным именем директории, где вы храните зеркало:

   Options +Indexes +SymlinksIfOwnerMatch
   IndexOptions NameWidth=* +SuppressDescription

Это включает индексирование директорий и дает уверенность в том, что следование по символьным ссылкам будет работать. Имена файлов в директории индексов не будут обрезаться, и а описания, обычно несуществующие, показываться не будут.

Кроме того, для Apache 1.3.x должна быть добавлена следующую опцию:

   DirectoryIndex .

Не добавляйте эту опцию для Apache 2.x.

Как добавить зеркало в список зеркал

Как только зеркало настроено, оно должно быть зарегистрировано в Debian для добавления его в список зеркал. Для подачи заявки используется простая веб-форма.

Вопросы и о проблемах можно писать на mirrors@debian.org.