← Назад к «Мастер переноса»

Перенос раздачи на сайт (1.0.122)

Мастер переноса переводит файлы с мастера на сервер сайта рядом с ним: репозитории, MSU, cab и источники рейса шаттла. После переноса мастер ведёт только учёт и команды, файлы раздаёт сайт.

Когда нужен перенос#

  • мастер перестал справляться с раздачей в локальной сети;
  • готовитесь к режиму «Только сайты» (в этом режиме мастер файлы не хранит);
  • хотите разгрузить диск мастера.

Окно переноса#

Открывается из таблицы «Мастер и сайты» под схемой раздачи: кнопка «Перенести раздачу…» в строке мастера (сайт выбирается в окне) или в строке нужного сайта. Право — sites.replication.operate; шаги с репозиториями требуют ещё repos.local.operate, шаги MSU — winkb.prefetch.operate / winkb.storages.operate.

Окно фиксированной высоты, шаги прокручиваются внутри — кнопки не уезжают за край экрана. Оно показывает текущее состояние: сколько репозиториев с полной копией на мастере, сколько MSU в хранилищах и подтверждено сайтом, хостов без сайта (первые имена), шаттл-источников на мастере и на сайте. Каждый шаг запускается отдельно и можно повторять; состояние обновляется после каждого запуска, итог шага остаётся под списком шагов. Шаги 3, 4 и 8 отмечаются выполненными по факту (нет реплик с источником-мастером; все файлы MSU мастера подтверждены сайтом; файлов MSU на мастере не осталось), шаг 5 — информационный.

Окно «Репозитории»#

Кнопка «Репозитории…» напротив шага «Реплики остальных сайтов — на этот сайт» открывает второе окно поверх первого: список непрокси-репозиториев с построчной подписью — «копия готова», «копия отстаёт на N поколений», «поколение копии неизвестно», «копируется», «ошибка копии» (с текстом), «хранится на сайте», «хранится на <сайт>» или «на мастере» — и последним сообщением фонового хода. Отставание копии и чужой сайт хранения ошибкой копии не считаются. Пока есть строки в работе (копия или снятие), список обновляется сам раз в 20 секунд.

У строки с готовой (пусть и отстающей) копией есть кнопка «Хранить на сайте» — перенос одного репозитория без ожидания остальных. Подтверждение предупреждает, что копия на мастере удалится, хосты будут брать пакеты с сайта и сколько именно хостов (без сайта и с сайтов без готовой копии) лягут на сайт хранения. Отстающая копия и копия с неизвестным поколением сначала обновляются, затем файлы мастера снимаются — строка показывает «ждёт копии текущего поколения». Право то же, что у шага (repos.local.operate), действие пишется в аудит с идентификатором репозитория.

Рядом с кнопкой «Хранить на сайте» виден тот же статус готовности, что и в окне «Тип репозитория» (готово, отстаёт на N поколений, идёт копирование, ошибка). Репозитории, которые уже хранит сайт, можно вернуть в реплики или перенести на другой сайт — см. «Тип репозитория: реплика, хранимая копия, реплика с Edge» в разделе «Локальные репозитории». После снятия копии мастера явный источник реплики сайта хранения сбрасывается: он файлы ни у кого не берёт.

После переноса конфиг реплики исполнителя не удаляется (на нём держится готовность режима «Сайты» и приём рейса шаттла), но строка уходит из списка репликаций, счётчиков и раскрытой строки репозитория. Реплики других сайтов продолжают работать и берут файлы с сайта хранения.

Файлы репозитория на мастере уносятся в корзину (.trash/repo-…) и автоматически удаляются через 3 дня; запись репозитория (каталог, политики, линейки) остаётся — удаляются только файлы.

Шаги#

  1. Копии репозиториев на сайте. Репозитории с полной копией на мастере получают реплику-копию на выбранном сайте (источник — Edge, если у репозитория есть зеркало, иначе мастер). Прокси-репозитории пропускаются: файлов на мастере у них нет.
  2. Сайт хранения и снятие копии мастера. Для репозиториев с готовой копией текущего поколения шаг ставит их в очередь — конвертация идёт фоновым заданием (раз в минуту, по одному репозиторию: сверка поколения на сайте занимает минуты). При сбое и неподтвердившемся поколении исполнитель откатывается, причина — в окне «Репозитории». Один репозиторий удобнее переносить кнопкой «Хранить на сайте» из того же окна.
  3. Реплики остальных сайтов — на этот сайт. Реплики, которые брали с мастера, переводятся на выбранный сайт (только для репозиториев с готовой копией). Прокси-реплики переходят на Edge. По флажку меняется и источник сайтов по умолчанию — с теми же проверками, что ручная смена источника (отдача сайтам у обеих сторон, активность и одобрение, циклы цепочки). Частичный итог — это успех: применённое не откатывается, отказы перечисляются с причинами.
  4. MSU мастера — на сайт. Каждый MSU из хранилищ мастера ставится заданием скачивания сайту; ход виден по отчёту сайта в таблице «Сайты» предзагрузки MSU.
  5. cab на сайте. Шаг информационный и называет источник: «с Edge: …», «с сайта: …» или «рассылкой с мастера» — это настройка раздачи Windows выбранного сайта. Синхронизировать копию можно кнопкой «Синхронизировать wsusscn2» на узле сайта в каталоге KB.
  6. Хосты без сайта. Выбранный сайт становится сайтом по умолчанию; по желанию хосты без сайта закрепляются за ним тем же механизмом, что массовое назначение (закрепление, push на сайт, поколение политики; требует прав администратора). Подсказка: подсети удобнее вести в «Подсети и назначение».
  7. Шаттл. Источники рейса переводятся на сайт (носитель подключается к машине сайта, SITE_SHUTTLE_DIR в compose); локальному источнику путь переписывается на каталог сайта, прежний путь сохраняется в конфиге (master_path) — по нему источник можно вернуть на мастер. Источник с неразбираемым конфигом не переносится и остаётся на мастере.
  8. MSU удаляются с мастера. Каждый файл удаляется только после подтверждения готовности сайтом — по паре «KB + файл» (у одного KB бывает x86/x64/arm64); строки каталога без файла (остатки прерванного шага) снимаются при повторе.
  9. Режим «Только сайты». Включается, когда список проверок пуст (сайт по умолчанию, нет копий на мастере, нет MSU, нет источников рейса у мастера). Прокси-репозитории файлов на мастере не держат и режим не блокируют.

Адреса хостов#

Репозиторий, который хранит сайт, отдаётся хостам с этого сайта при любой политике — «использовать реплики» включать не нужно, режим раздачи не важен: мастер тел не имеет, и его адрес был бы ошибкой 404 на каждый пакет. Порядок адресов: свой сервер и остальные серверы своего сайта, если у них есть копия или они сайт хранения; иначе сайт хранения и запасной сайт хранения — единственные места с файлами. Хост без сайта получает сайт по умолчанию (если у него есть копия), иначе сайт хранения. Мастер в адреса такого репозитория не попадает.

Порядок#

Шаги 1–2 можно повторять по мере готовности копий. Шаг 3 — только после готовности копий. Шаги 4 и 8 идут параллельно с остальными. Шаг 9 — последним.

Откат#

Снимки pre-1-0-122 на стенде возвращают состояние до выкладки. В эксплуатации: шаг 2 обратим возвратом storage-mode full (пока мастер хранит файлы), шаг 3 — массовой сменой источника реплик, шаг 6 — снятием сайта по умолчанию.