Перейти к основному содержимому

Как удалить образ ОС

Когда использовать​

Когда образ ОС больше не нужен и его копии пора убрать со всех пулов кластера. Операция необратима и требует явного подтверждения: восстановить образ можно только новым импортом из источника библиотеки.

Удаление идёт в два шага — сначала read-only проверка зависимостей, потом сам снос. Первый шаг безопасен, его можно повторять сколько угодно раз: он ничего не меняет ни на узлах, ни в каталоге.

Не подходит, если нужно лишь закрыть образ для одного ВЦОД: удаление сносит образ целиком, со всех пулов кластера. Не подходит и для отзыва версии — версии образа отдельными объектами каталога не адресуются, удаляется образ по своему идентификатору.

Предусловия​

  • привилегия View Image Dependencies в области целевого ВЦОД — для проверки зависимостей;
  • привилегия Remove OS Image в области целевого ВЦОД — для самого удаления; это отдельное право, членство в грантах видимости его не даёт;
  • владение образом: администратор ВЦОД удаляет только образы, принадлежащие его ВЦОД. Общий кластерный образ и образ, лишь «показанный» его ВЦОД, удалить нельзя — это делает роль Cluster master;
  • узлы кластера на связи: недоступный узел свою копию не отдаст, и удаление закончится частичным исходом;
  • версия vStack Center — 3.0.5.

Шаги​

Экранов библиотеки образов в веб-интерфейсе vStack Center нет: удалением управляют программно — вызовами API кластера или системой автоматизации, которая их делает. Шаги ниже задают порядок операций; состав запросов и полный разбор ответов — в Справочнике API.

  1. Снимите карту зависимостей образа. Проверка опрашивает все онлайн-узлы и параллельно ищет машины, ссылающиеся на образ. Результат приходит по окончании опроса.

  2. Прочитайте карту по четырём признакам.

    Что смотретьЧто читать
    сводный признак зависимостей«есть» означает, что удаление будет заблокировано
    карта клонов«узел → пул → клоны»: слева дочерний датасет, справа его родительский снимок (origin). Пометка об отсутствии образа на паре означает «копии образа на этом пуле нет» — это не зависимость и не сбой
    зависимые машинымашины, которые ссылаются на образ: идентификатор и имя каждой
    пропущенные узлыузлы, которых опрос не застал: проверка неполная

    Непустой перечень пропущенных узлов означает, что клоны могли остаться незамеченными. Дождитесь возвращения узла и снимите карту заново.

  3. Уберите зависимости. Пока у образа есть хотя бы один ZFS-клон или зависимая машина, удаление отклоняется кодом -48012, и узлы при этом не трогаются. Разберитесь с зависимыми машинами из карты — этот шаг лежит вне библиотеки образов.

  4. Удалите образ. Необратимость подтверждается явно: без подтверждения удаление отклоняется. Перед сносом vStack Center заново проверяет зависимости — это защита от гонки, когда между проверкой и удалением у образа появился новый клон.

    Результат терминальный: он приходит после ответов онлайн-узлов и сразу содержит исход — стадию образа, узлы, с которых копия снята, узлы с ошибкой и пропущенные узлы.

Проверка результата​

Полное удаление опознаётся по трём признакам исхода:

Что смотретьОжидаемое значение
Стадия образаremoved — строка каталога удалена
Узлы с ошибкойперечень пуст
Пропущенные узлыперечень пуст

Образ после этого пропадает из каталога кластера — проверьте, что его строки больше нет в каталоге образов.

Если не получилось​

Часть узлов не отдала копию​

Удаление отвечает успешно, но со стадией partial_active: часть узлов копию не отдала. В исходе перечислены узлы с ошибкой и причина по каждому — например, датасет занят.

Успешные узлы не откатываются, строка каталога остаётся. Устраните причину и повторите удаление: оно идемпотентно доудаляет остаток. Непустой перечень пропущенных узлов означает то же самое — остаток не подтверждён, потому что узел не ответил.

Сервис перезапустился в середине удаления​

«Зависших» образов после перезапуска не остаётся. Факт полного удаления записывается в журнал безопасности строго раньше, чем из каталога исчезает строка образа, поэтому на старте закоммиченные удаления довершаются, а незакоммиченные переводятся в partial_active. Повторное удаление доводит операцию до конца.

Отказы по коду​

Код отказаЧто означаетЧто сделать
-48011необратимость не подтвержденаподтвердить необратимость удаления явно
-48012у образа есть ZFS-клоны или зависимые машиныснять карту зависимостей и убрать зависимые объекты; узлы не тронуты
-48009образ не найден: строки каталога нет либо образ не виден вызывающемусверить идентификатор образа; ответ одинаков для чужого закрытого образа — его существование не подтверждается
-48004образ уже удаляется параллельной операциейдождаться исхода первой операции
-48010узлы не удалось опросить: недоступен кластер-статус или транспортпроверить состояние кластера и повторить
-403доступ запрещёнпроверить привилегию удаления и владение: общий, чужой или «показанный» через грант образ удаляет только роль Cluster master
-503журнал безопасности не принял запись о намеренииудаление не начато, ничего не изменено; восстановить доступность журнала и повторить
-48001ошибка базы данныхповторить удаление; при повторе — обратиться в поддержку

Неверный или отсутствующий идентификатор образа, как и отсутствующее подтверждение, отклоняются на разборе запроса — до любых действий с каталогом и узлами.

См. также​

Методы API​

Операции этой страницы в API: golden-image-clones, golden-image-remove, golden-images-list — см. Справочник API.