Настройка зеркала архивов Debian
- Зеркалировать или нет?
- Что зеркалировать
- Откуда зеркалировать
- Как зеркалировать
- Частичное зеркалирование
- Когда зеркалировать
- Рекомендуемые добавочные установки
- Как добавить зеркало в список зеркал
Зеркалировать или нет?
Хотя мы высоко ценим все новые зеркала, каждый будущий держатель зеркала должен быть уверен, что он может ответить на следующие вопросы, перед тем как начнёт создавать собственное зеркало:
- Нужно ли зеркало в моей местности? Возможно, недалеко уже есть зеркало.
- Есть ли у меня ресурсы для содержания зеркала? Зеркала занимают значительное дисковое пространство и полосу пропускания, зеркало должно оправдывать свою цену.
- Является ли зеркало правильным выбором? Иногда люди ошибочно создают зеркало, тогда как на самом деле они хотели запустить лишь кеширующий прокси, такой как apt-cacher-ng.
Что зеркалировать
Главная страница зеркала перечисляет архивы, доступные для зеркалирования.
- Пользователи будут искать архив debian/ для установки Debian через сеть, для создания дисков (с помощью jigdo), и для обновления уже установленных систем.
-
debian-cd/ — это архив, который не одинаков для разных серверов зеркал.
На некоторых сайтах он содержит шаблоны jigdo для создания образов дисков (используется
совместно с файлами из debian/), на некоторых он содержит уже созданные образы дисков,
а на некоторых сайтах содержится оба варианта.
Подробную информацию о зеркалировании смотрите на странице зеркалирование образов дисков. - debian-archive/ содержит настоящий архив старых и вышедших из употребления версий 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, доступен как:
- tar-архив http://ftp-master.debian.org/ftpsync.tar.gz
- из git-репозитория: git clone https://ftp-master.debian.org/git/archvsync.git
В качестве протокола зеркалирования мы настоятельно рекомендуем использовать rsync.
Не зеркалируйте Debian с помощью wget и других инструментов для ftp. Они вроде бы хорошо работают, но есть некоторые спорные моменты (они не могут определять жёсткие ссылки, ими тяжелее делать частичные зеркала и т.д.).
Настройка rsync
Мы рекомендуем использовать набор сценариев ftpsync для зеркалирования архива. Для настройки зеркалирования прочтите включённый файл README.
Если вы используете свои собственные сценарии, то они должны поддерживать следующую минимальную функциональность:
ДОЛЖНА выполняться 2-проходная синхронизация
Зеркалирование архива должно проводиться в два этапа. При первом запуске rsync должен игнорировать индексные файлы. Правильные параметры исключения для первого запуска rsync:
--exclude Packages* --exclude Sources* --exclude Release* --exclude InRelease --exclude i18n/* --exclude ls-lR*На первом этапе никакие файлы удаляться не должны.
На втором этапе должна выполняться передача исключённых ранее файлов, и выполняться удаление файлов, которых больше нет на зеркале.
Обоснование: если зеркалирование архива выполняется за один проход, то возникает промежуток времени, в течении которого индексные файлы указывают на файлы, которые ещё не отзеркалированы.
НЕ ДОЛЖНО игнорироваться проталкивание (проталкивающее зеркалирование).
Если во время синхронизации зеркала получен запрос на проталкивание, то он НЕ ДОЛЖЕН игнорироваться. Процесс синхронизации должен быть перезапущен сначала.
Обоснование: большинство реализаций сценариев зеркалирования Debian оставляют зеркало в противоречивом состоянии когда принимается событие второго проталкивания во время работы первого этапа синхронизации. Вероятно, в ближайшем будущем частота проталкиваний будет увеличена.
- Запускайте rsync с, как минимум, следующими опциями: --recursive --times --links --hard-links --delete.
- Если у вас достаточно дискового пространства, используйте также опцию --delete-after, для избежания некоторых временных проблем обновления.
- После того, как rsync завершит зеркалирование, добавьте файл с именем вашего сервера
с отметкой времени в подкаталог
project/trace/зеркала Debian. Это предполагает запуск date -u > .../debian/project/trace/ваш.сервер после того, как ежедневный rsync завершён. - Мы строго советуем не исключать project/, doc/ и другие подкаталоги. Обычно они невелики в размерах, но всё же полезны пользователям. Особенно очень помогает project/trace, если имеются какие-либо проблемы с зеркалом.
Частичное зеркалирование
Посмотрев на уже большой размер архива 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.
