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

Changelog vStack Center

3.1.1​

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

Главное​

  • Машину больше нельзя запустить на втором узле, пока она работает на первом. Перед запуском центр опрашивает узлы и отклоняет запуск кодом -461, если машина уже где-то жива. Раньше при расхождении базы с реальностью команда честно уходила на второй узел — и два гипервизора писали в один диск.
  • Остановка сервиса пула гасит и удалённо запущенные машины. Раньше центр выключал только машины на узле-владельце, остальные держали пул занятым и экспорт срывался с «pool is busy».
  • Список виртуальных машин больше не повторяет одну и ту же машину.

Что учесть при обновлении​

  • Ответ на запуск машины приходит позже — на время опроса узлов. Бюджет опроса по умолчанию 10 секунд на весь веер (не на узел) и задаётся переменной окружения VM_LIVENESS_PROBE_TIMEOUT_SECS. Опрос можно выключить целиком (VM_LIVENESS_PROBE_ENABLED=0) — тогда запуск, автоматический подъём и ветка «машина не запущена» на остановке работают как до 3.1.1.
  • Появился код отказа -461 «VM is running on another cluster node; unable to start». Программным клиентам, которые разбирают отказы запуска по коду, нужно его учесть. Номер узла в сообщение не подставляется намеренно — он уходит в журнал службы.
  • Остановка сервиса пула теперь выключает машины этого пула на соседних узлах. Планируя работы, считайте выключенными не только машины узла-владельца.

Исправлено​

Запуск и остановка машины

  • Виртуальную машину больше нельзя запустить на втором узле, пока она работает на первом. Если узлы не ответили, запуск не блокируется: недоступный узел не должен мешать поднимать машины после сбоя — это ровно тот сценарий, ради которого подъём и нужен. Автоматический подъём машин подчиняется тому же правилу.
  • Остановка машины больше не помечает её выключенной, если она жива на другом узле. Ответ узла «такой машины не запущено» верен для этого узла, но не для кластера — центр принимал его за факт и записывал машину выключенной, после чего запуск на чужом узле проходил проверку. Теперь состояние записывается только после сверки с узлами. Ответ на саму остановку не изменился — она по-прежнему завершается успехом.
  • Две одновременные заявки на запуск одной машины с разными узлами больше не проходят обе: выполняется одна, вторая получает прежний отказ «машина уже работает».
  • Сразу после завершения переноса машины между пулами её запуск больше не отклоняется как «машина заблокирована». Раньше пометка о завершении переноса и снятие блокировки выполнялись по отдельности: машина уже показывалась перенесённой, а блокировка снималась спустя пару секунд — и запуск, поданный в этот промежуток, отклонялся. Теперь блокировка снимается одновременно с пометкой о завершении, поэтому перенесённую машину можно запускать сразу.

Пулы хранения

  • Остановка и перенос пула больше не падают с «pool is busy», когда на других узлах работают его виртуальные машины. Машины того же пула, поднятые на соседних узлах (их диски отдаются по сети с владельца), сервисный скрипт не трогал — держатель оставлял пул занятым, экспорт срывался, пул оставался на прежнем узле, а удалённые машины продолжали работать. Теперь перед остановкой сервиса центр сам гасит такие машины на других узлах и лишь затем останавливает сервис; то же действует при переносе пула. Если какую-то машину погасить нельзя, операция не начинается вовсе и возвращает список мешающих машин с их узлами — сервис остаётся в рабочем состоянии.

Инвентаризация

  • Список виртуальных машин больше не повторяет одну и ту же машину несколько раз. Машина показывалась столько раз, сколько у пользователя ролей в её ВЦОД, поэтому внешние системы, строившие по этому списку свои справочники, получали дубликаты и не могли собрать отчёт об инвентаризации. Состав списка не изменился — ушли только повторы.

См. также​