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

Как импортировать образ ОС в кластер

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

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

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

Не подходит, если образ в источнике лежит в формате, отличном от zfs: такой образ импорт не берёт. Не подходит и для смены владельца образа: повторный импорт не переписывает его принадлежность ВЦОД (виртуальному центру обработки данных).

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

  • привилегия Import Golden Image в области целевого ВЦОД; у роли Cluster master область глобальная;
  • привилегия Sync Image Library — без неё не прочитать каталог источника и не узнать идентификатор образа;
  • в кластере развёрнут сервис раздачи vstack-center-image-distributor с обязательным vhost imgdistr_vhost; без него импорт двигать байты некому;
  • источник библиотеки зарегистрирован, и его идентификатор известен из списка источников;
  • источник доступен вызывающему: администратору ВЦОД открыт источник с привязкой к его ВЦОД, а общий кластерный источник — только роли Cluster master; проверка идёт до чтения каталога и до импорта, поэтому без доступа к источнику ответом будет -403 даже при полностью выданных привилегиях;
  • в кластере есть хотя бы один пул хранения с владельцем;
  • версия vStack Center — 4.0.0.

Шаги​

В веб-интерфейсе импорт запускают в разделе «Image library», вкладка «Images». Шаги ниже — для роли Cluster master. Администратор ВЦОД импортирует образ в свой ВЦОД вызовом API, указав этот ВЦОД в запросе импорта. Состав запросов и полный разбор ответов — в Справочнике API.

  1. Нажмите «Add image» и откройте вкладку «Source»: вкладка «File» пока недоступна. Выберите источник в списке «Source». Кластер прочитает только его manifest.json и покажет «Image showcase» — карточки образов источника. Чтение каталога быстрое и ничего в кластере не меняет.

  2. Выберите образ. Карточка в формате, отличном от zfs, неактивна с подписью «The platform cannot import this format»; уже импортированный образ помечен «Already in the cluster catalog». Идентификатор образа для импорта — поле uuid элемента манифеста: он однозначно задаёт и образ, и его версию. Элемент без uuid импортировать нельзя — сначала добавьте поле в манифест источника.

  3. Нажмите «Next» и выберите пулы: по умолчанию отмечены все. Чтобы разложить образ на часть пулов, снимите лишние отметки — остальные дораздаются повторным импортом той же версии. Нажмите «Add».

    Импорт асинхронный: уведомление «Image import has started» подтверждает приём задания, а не готовность образа. Раздача продолжается в фоне.

    Тот же импорт можно начать с вкладки «Sources»: панель источника → карточка образа → «Import image» → «Import».

  4. Дождитесь окончания раздачи. В колонке «Status» образ проходит от «Importing» к «Available»; «Partially available» и «Failure» разобраны ниже. Колонка «Availability» показывает, на скольких пулах есть копия, а панель образа — результат по каждому пулу.

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

Найдите импортированный образ в «Image library» и сверьте два признака:

Что смотретьОжидаемое значение
Статус образа«Available» (в API — active): образ разложен на все выбранные пулы
Результат по пуламзапись на каждый пул из шага 3

Статус «Importing» (importing) означает, что раздача ещё идёт. Статусы «Partially available» (partial_active) и «Failure» (failed) разобраны ниже.

Финальная проверка — создание машины. Копия образа на пуле, выбранном при создании ВМ, обязана быть активна, иначе создание отклоняется с кодом -259.

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

Импорт делает одну попытку без автоповторов. Любой сбой — скачивания, контрольной суммы, раздачи или потери задания сервисом раздачи — переводит образ в failed и оставляет запись в журнале безопасности. Повтор запускает администратор, тем же импортом. Перезапуск диспетчера в середине работы незавершённый импорт не переигрывает, а закрывает как неуспешный.

Частичный исход (partial_active) откату не подлежит: пулы с копией её сохраняют. Посмотрите в карте раздачи, каким пулам копия не досталась, и повторите импорт той же версии — он довезёт недостающие.

Код отказаЧто означаетЧто сделать
-48005формат образа не пригоден к импорту, требуется zfsвыбрать в каталоге источника образ, пригодный к импорту
-48002в каталоге источника нет образа с таким идентификаторомпереснять каталог источника: манифест мог измениться
-48003образ уже импортируетсядождаться исхода текущего импорта, повторный запуск не нужен
-48004образ в состоянии удалениядождаться завершения удаления
-48006элемент манифеста не проходит проверку: версия, минимальный размер, размер, размеры сектора, контрольная сумма, путь к файлу, неизвестный тип ОС или гостевой настройки, повтор uuidисправить манифест на стороне источника
-48007указан несуществующий пул либо в кластере нет пулов с владельцемсверить перечень пулов; проверить, что в кластере есть пул с владельцем
-48008образ с таким идентификатором уже есть в каталоге под другим источником или версиейидентификатор образа глобально уникален: выдать образу в манифесте свой uuid
-46002источника с таким идентификатором нетвзять действующий идентификатор из списка источников
-46012хост источника разрешается в запрещённый диапазонперенести библиотеку на адрес вне loopback, link-local, приватных диапазонов RFC 1918, CGNAT, «нулевой сети» и широковещательного адреса
-46020источник недоступен: сетевой сбой, таймаут или ответ не 2xxпроверить доступность адреса библиотеки из сети кластера
-46021manifest.json не разбирается как JSONпочинить синтаксис манифеста
-46022версия схемы манифеста выше поддерживаемойпривести манифест к поддерживаемой версии схемы
-46023манифест не проходит схему: у элемента нет обязательных полейдобавить name, version, format, url_path, size, sha256
-49005администратор ВЦОД не указал ВЦОД: общий кластерный образ импортирует только роль Cluster masterуказать свой ВЦОД в запросе импорта
-49006указанный ВЦОД вне области доступа вызывающегоуказать ВЦОД, где у вас есть роль
-403доступ запрещёнпроверить доступ к источнику, привилегию и владение: общий кластерный источник открыт только роли Cluster master, администратору ВЦОД нужен источник с привязкой к его ВЦОД; новую версию существующего образа импортирует только его владелец либо роль Cluster master
-503журнал безопасности не принял запись о намеренииимпорт не начат и ничего не изменено; восстановить доступность журнала и повторить
-48001ошибка базы данныхповторить импорт; при повторе — обратиться в поддержку

См. также​

Методы API​

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