Диски виртуальной машины (ВМ) размещаются в хранилище, указанном при создании ВМ. Если хранилище недоступно или переполнено, ВМ не будет создана.

Если хранилище не было указано в настройках, то для выбора хранилища платформа использует специальные метки — теги. Теги задаются в конфигурациях ВМ и настройках хранилищ кластера. При создании ВМ её диски получают теги, заданные в конфигурации. Если наборы тегов у диска и хранилища совпадают, то диск будет размещён в этом хранилище. Если хранилище с нужным набором тегов не найдено, ВМ не будет создана. 

Обратите внимание!

Теги используются только для ВМ в кластерах с KVM-виртуализацией.

Если при создании ВМ не были заданы ни хранилище, ни теги, то ВМ будет размещена в хранилище кластера по умолчанию. Если это хранилище не задано, недоступно или переполнено, ВМ не будет создана.

Использование тегов


Алгоритм выбора хранилища

Чтобы выбрать хранилище, платформа:

  1. Формирует список доступных хранилищ, отсортированный по убыванию свободного места.
    Пример: к кластеру подключено три хранилища: SSD1 (свободно 25 Гб), SSD2 (свободно 10 Гб), SSD3 (свободно 400 Гб). Будет сформирован список:
    1. SSD3.
    2. SSD1.
    3. SSD2.
  2. Последовательно проверяет хранилища из списка на соответствие тегам. Набор тегов диска должен полностью входить в набор тегов хранилища. Примеры:

    Теги дискаТеги хранилищаРезультат
    aaaaaa, bbbсоответствует
    aaabbb, cccне соответствует
    aaa, bbb

    соответствует

    aaaне соответствует
    соответствует
    aaa, bbbaaa, cccне соответствует
  3. Если теги хранилища соответствуют тегам диска и места в хранилище достаточно, размещает диск ВМ в этом хранилище.
  4. Если хранилище с нужным набором тегов не найдено, не создаёт ВМ.

Управление тегами

По умолчанию в платформе созданы теги nvme, hdd и ssd. Эти теги не могут быть удалены. Вы можете добавить собственный тег при создании конфигурации или подключении хранилища.

Также вы можете управлять тегами через API-запросы:

  • чтобы получить список тегов, выполните запрос

    GET https://domain.com/vm/v3/tag
    CODE
  • чтобы создать тег, выполните запрос

    POST https://domain.com/vm/v3/tag
    CODE

    с параметром

    {
        "name": string,
        "note": string
    }
    CODE

    name — имя тега

    note — произвольный комментарий

  • чтобы удалить тег, выполните запрос

    DELETE https://domain.com/vm/v3/tag/<id>
    CODE

    <id> — id тега