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», когда на других узлах работают его виртуальные машины. Машины того же пула, поднятые на соседних узлах (их диски отдаются по сети с владельца), сервисный скрипт не трогал — держатель оставлял пул занятым, экспорт срывался, пул оставался на прежнем узле, а удалённые машины продолжали работать. Теперь перед остановкой сервиса центр сам гасит такие машины на других узлах и лишь затем останавливает сервис; то же действует при переносе пула. Если какую-то машину погасить нельзя, операция не начинается вовсе и возвращает список мешающих машин с их узлами — сервис остаётся в рабочем состоянии.
Инвентаризация
- Список виртуальных машин больше не повторяет одну и ту же машину несколько раз. Машина показывалась столько раз, сколько у пользователя ролей в её ВЦОД, поэтому внешние системы, строившие по этому списку свои справочники, получали дубликаты и не могли собрать отчёт об инвентаризации. Состав списка не изменился — ушли только повторы.
См. также
- Опрос узлов перед запуском и код
-461— «Питание ВМ и консоль». - Остановка сервиса пула — «Сервисы кластера».
- Список ВМ без дубликатов — «Инвентарь, метрики и контроль конфигурации ВМ».
- Предыдущий релиз — «Что нового в 3.1.0».