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