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

Что нового в vStack Center 3.2.0

Изменения, видимые пользователю, по релизам — от свежего к раннему.

3.2.0 — 25 сентября 2026​

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

Главное​

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

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

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

Исправлено​

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

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

Автоматический подъём после аварии

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

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

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

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

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

3.1.0 — 3 сентября 2026​

Релиз устойчивости. Главное приобретение — живая миграция: работающую машину теперь можно перенести на другой узел без остановки. Всё остальное — про то, чтобы центр и узлы перестали расходиться в том, что происходит с машиной: операция, оборвавшаяся на полпути, больше не оставляет машину заблокированной, переносящейся или «создающейся» навсегда, а квота ВЦОД наконец считает диски машин и тома хранилища одной величиной.

Главное​

  • Живая миграция ВМ — перенос работающей машины на другой узел без выключения, а также перенос данных остановленной машины между хранилищами одним методом. Ход переноса виден отдельным запросом статуса: фаза, процент и причина отказа.
  • Единый учёт ёмкости ВЦОД — квота пространства считает тома хранилища наравне с дисками машин. Занятое место на экране и величина, по которой выносится отказ, теперь совпадают.
  • Сроки жизни переходных состояний — машина больше не висит в состоянии «запускается» или «переносится» бесконечно: у каждого состояния свой предельный срок, по истечении которого машина переводится в соответствующую неудачу.
  • Повторно отправленный запрос не выполняется дважды — тот же идентификатор возвращает тот же ответ вместо второго прогона операции.
  • Инвентаризация оборудования снова работает — списки физических дисков и сетевых интерфейсов наполняются, включая NVMe, подключённые без корзины.

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

  • Реквизиты доступа к каналу узловых контроллеров стали обязательными на любом кластере. Без них диспетчер не запустится — проверьте настройки до обновления.
  • Действующие сессии завершаются. Сессионные токены и токены принудительной смены пароля перешли на криптостойкий источник случайности; после обновления потребуется повторный вход.
  • Инвентаризацию оборудования нужно один раз запустить принудительно, чтобы списки дисков и сетевых интерфейсов наполнились актуальными данными.
  • У ВЦОД с томами хранилища вырастут занятое место и процент заполнения квоты — это не рост потребления, а исправление счёта. Запуск уже созданных машин при этом работает как прежде: включить собственную выключенную машину можно, даже когда квота выбрана томами.
  • Правки схемы базы данных применяются при обновлении автоматически. Ручной шаг со столбцом в таблице оперативного статуса ВМ, о котором сообщалось ранее, больше не нужен — правка вынесена в отдельную миграцию.
  • Служба теперь запускается, даже если в базе записана правка схемы, которой нет в установленной версии: такая запись попадает в предупреждения журнала. Сбой самой правки схемы по-прежнему останавливает запуск.

Добавлено​

Виртуальные машины

  • Живая миграция: перенос запущенной машины на другой узел (машина должна быть в состоянии «запущена») и перенос данных остановленной машины на другое хранилище — обе задачи решает один метод, сценарий выбирается параметром. Операция доступна роли Cluster master.
  • Ход переноса читается отдельным запросом статуса: состояние, фаза, процент, исходные и целевые узел или пул, причина отказа. Пока перенос не завершён, операции, способные ему помешать — остановка, изменение конфигурации, снятие блокировки, — отклоняются понятной ошибкой; чтение данных о машине остаётся доступным.
  • Переходные состояния (запускается, останавливается, создаётся, удаляется, приостанавливается, возобновляется, переносится, восстанавливается) получили предельный срок — от 15 минут для запуска до 6 часов для переноса и восстановления из резервной копии. По его истечении машина переводится в соответствующее состояние неудачи, причина попадает в журнал службы и в историю состояний машины. Успешно созданная, но ни разу не запущенная машина под это правило не попадает.

ВЦОД и хранилище

  • Лимит пространства ВЦОД нельзя опустить ниже фактически занятого: попытка отклоняется с указанием запрошенного лимита и текущего занятого, значение не применяется. Снять лимит целиком по-прежнему можно.
  • На экране хранилища видно занятое место и размер по каждому тому — данные для панели ёмкости, скрытой в 3.0.4. Если контроллер хранилища недоступен, занятое место показывается пустым, но карточка хранилища открывается.
  • У хранилища появилось видимое состояние демонтажа: по нему понятно, что прерванное удаление ВЦОД нужно запустить повторно. Успешный демонтаж состояние снимает.

Физические диски

  • В список физических дисков попадают диски NVMe, подключённые напрямую, без дисковой корзины — раньше на узлах целиком на NVMe список оставался пустым. У таких дисков корзина и её устройство показываются как «нет значения»: по этому признаку видно, что индикация неисправности и определение местоположения (LED) им недоступны — за индикацию отвечает корзина. Состояние здоровья показывается как неизвестное, измерить его без корзины нечем.

Кластер

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

Изменено​

  • Квота пространства ВЦОД считает тома хранилища наравне с дисками машин. Раньше эти две половины не видели друг друга: арендатор, выбравший всю квоту томами, продолжал свободно добавлять и расширять диски машин.
  • Удаление розданного тома больше не требует предварительно снимать раздачу — она снимается автоматически, и том удаляется одним действием. Если удаление тома всё же отклонит контроллер (например, из-за снимков или клонов), том останется без раздачи: вернуть её можно отдельным действием.
  • Карточка тома хранилища открывается быстрее: два обращения к хранилищу идут одновременно, а не одно за другим. Если хранилище не отвечает, ожидание сократилось вдвое.
  • Диск, подключённый сразу к нескольким узлам (двухпортовый NVMe), показывается на том узле, который сейчас держит его пул, — там же, где этот пул виден в состоянии пулов, и с именем устройства на этом узле. Диск, не входящий ни в один пул, по-прежнему показывается на узле, сообщившем о нём последним.
  • Если узел отвечает «машина уже приостановлена» или «машина уже запущена», операция считается выполненной: оператор видит успех вместо ошибки на фактически достигнутом результате. Так уже работала остановка машины.
  • Методы установки лимитов — сетевого у машины и Edge, дискового у машины — принимают пустое значение как «без ограничения» и отличают его от нуля. Раньше пустое значение либо вызывало ошибку, либо молча заменялось на 0.
  • Повторно отправленный запрос не выполняется второй раз. Если исходный запрос уже отвечен, тому же пользователю возвращается тот же ответ; если ещё выполняется — приходит отказ «запрос уже в обработке». Запрос с чужим идентификатором чужого ответа не получает.

Безопасность​

  • Устранена утечка изоляции между ВЦОД на нескольких методах. Администратор ВЦОД больше не создаёт сети кластерных типов — маршрутизируемые (Routed) и Q-in-Q: такие сети дают тенанту присутствие в общем сегменте кластера и, как предписывает ролевая модель, доступны только роли Cluster master. В списке профилей ОС администратор, пользователь и наблюдатель ВЦОД больше не видят приватные образы чужих ВЦОД — только общие и привязанные к своему ВЦОД. Просмотр карточки роли теперь доступен только роли Cluster master. Правка прав применяется при обновлении автоматически.
  • Сессионные токены и токены принудительной смены пароля стали стойкими к подбору — формируются из криптостойкого источника случайности.
  • Защита от подбора пароля больше не обходится одновременными попытками входа. Раньше пачка параллельных запросов под одним логином успевала сделать заметно больше проверок пароля, чем задано порогом, а учётная запись так и не блокировалась; счётчик неудач и записи в журнале безопасности занижались.
  • Штатный контроль целостности журнала безопасности больше не даёт ложных срабатываний на большом журнале и после автоматической архивации старых записей. Реальная подделка записи по-прежнему обнаруживается.
  • Проверка конфигурации ВМ перестала давать ложные расхождения: на исправных машинах, на машинах со старым типом дискового контроллера (все унаследованные машины с Windows) и на машинах, запущенных не на владельце своего пула. Раньше из-за этого в журнал безопасности шёл поток ложных событий о нарушении целостности с наивысшим уровнем срочности.
  • Отказ в доступе к функциям Edge при выключенной соответствующей возможности снова фиксируется в журнале безопасности отдельным событием — регистрация перестала работать после унификации аудита и теперь восстановлена.
  • Неверно указанный уровень важности в настройках оповещений безопасности больше не оставляет рассылку включённой: набор настроек применяется целиком или не применяется вовсе. То же касается настроек архивирования журнала.
  • При сбое базы данных наружу больше не попадают внутренние детали — имена таблиц и ограничений остаются в журнале диспетчера.

Исправлено​

Состояние машины и операции над ней

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

Перенос машины

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

Пулы, диски и инвентаризация

  • После переезда пула на другой узел интерфейс показывает узел, на котором пул работает фактически: центр раз в минуту сверяет владельца с состоянием кластера. Пул, не запущенный ни на одном узле, показывается на последнем известном.
  • Заполненность пулов и размеры снимков снова обновляются. Узлы присылали эти данные по новому каналу, а центр их не понимал и молча выбрасывал — из-за чего создание машины с автоматическим выбором пула отвечало «пул не найден».
  • Список физических дисков кластера снова наполняется: инвентаризация оборудования прерывалась в самом начале и не записывала ничего — ни диски и корзины, ни физические сетевые интерфейсы и агрегаты, ни данные SMBIOS, при этом отвечая успехом. Отдельно исправлен сбор сетевых интерфейсов.
  • Физический диск больше не «залипает» в состоянии «онлайн в кластере»: при инвентаризации центр приводит этот признак к фактическому состоянию на узле, и диск снова доступен для операций.
  • Запоздавший ответ по операции над физическим диском больше не снимает защиту, поставленную уже следующей операцией над тем же диском.

ВЦОД, хранилище и сети

  • ВЦОД с зависшим резервом тома снова удаляется. Незавершённый резерв (ответ контроллера не пришёл) считался настоящим томом и навсегда запирал удаление.
  • Место в квоте ВЦОД, занятое незавершённым созданием хранилища или тома, больше не пропадает навсегда: такая бронь освобождается автоматически.
  • Сбой на последнем шаге удаления ВЦОД с хранилищем больше не оставляет неудаляемых остатков.
  • Удаление тома хранилища больше не падает, если его раздача уже снята на стороне хранилища: отказ «LUN не существует» распознаётся как уже выполненная работа.
  • В карточке тома доступное место означает остаток самого тома, а не свободное место пула.
  • Создание и изменение набора CHAP для iSCSI без встречной (mutual) пары логина и пароля отклоняется сразу понятной ошибкой, а не поздним отказом от узла. Переименование группы и смена только пароля сохраняют встречную пару.
  • Переименование группы инициаторов или группы аутентификации хранилища в уже занятое имя отклоняется понятной ошибкой ещё до обращения к контроллеру. Клиент API различает по коду ответа выключенную функцию Unified Storage, сбой инфраструктуры и ошибку ввода.
  • Создание сети больше не отклоняется с удалением сети из базы, когда на узлах она уже создана: каждый ответ засчитывается за конкретный узел. То же касается удаления и изменения сети.
  • Неудачное удаление Edge больше не уничтожает его безвозвратно: до подтверждённого удаления машины ничего необратимого не происходит, Edge и все его правила остаются на месте.
  • Неудачная отправка команды на узел больше не оставляет операцию числящейся выполняющейся. Касается операций с файловыми системами и пулами, запуска, остановки, перезапуска, удаления и настройки Edge, а также настройки iSCSI у ВЦОД.

Пользователи и API

  • При назначении роли указание несуществующей роли даёт понятную ошибку «роль не найдена» вместо сбоя базы данных; отказы «роль уже назначена» и «нельзя назначать роль системному пользователю» приходят под разными кодами.
  • Журнал API-запросов снова пополняется на кластерах, где его таблицу настраивали вручную, — а вместе с ним снова работает получение результата задачи по идентификатору, которое на таких кластерах отвечало «задача не найдена» на любой запрос. Там же начала действовать защита от повторного выполнения запроса. Отказ записи в журнал виден в журнале службы отдельной пометкой, а его массовость — сводкой раз в пять минут.

3.0.5 — 31 июля 2026​

Крупный релиз. Появилась библиотека эталонных образов ОС с внешними источниками и импортом, физические диски получили полный жизненный цикл (запасные, подключение в кластер, замена сбойных), виртуальную машину теперь можно клонировать, а данные дисков — копировать на другой кластер. Отдельно усилен журнал безопасности: в него пошли события с самих узлов. Ниже — изменения, заметные пользователю.

Главное​

  • Библиотека образов ОС — каталог с разделением на общие и приватные образы, подключение внешних источников, импорт с автоматической раскладкой по хранилищам и удаление образа со всего кластера одной операцией.
  • Жизненный цикл физических дисков — запасные диски (Hot Spare), подключение и отключение диска в кластере, замена сбойного диска в пуле и здоровье пулов одним запросом. Операции доступны только главному администратору кластера.
  • Клонирование ВМ — мгновенная копия остановленной машины на том же хранилище с той же конфигурацией.
  • Резервное копирование кластер-кластер — полное и инкрементальное копирование данных дисков ВМ на другой кластер.
  • Журнал безопасности на узлах — вход по SSH, изменение параметра ядра, локальные учётные записи, перезагрузка и паника ядра узла.

Несовместимые изменения​

  • Образ ОС опознаётся глобальным идентификатором вместо короткого номера. Списки образов, карточка и список машин, создание машины и перенос из области импорта используют новый идентификатор — программным клиентам нужно передавать и ожидать его в новом виде. Существующие машины сохраняют привязку к своим образам.

Добавлено​

Библиотека образов ОС

  • Образ может быть общим для всего кластера или приватным — видимым только своему ВЦОД. Ранее заведённые образы продолжают работать: обычные становятся видимыми всему кластеру, а прежде закрытые остаются закрытыми.
  • Для каждого образа отслеживаются стадия жизненного цикла, присутствие на хранилищах, контрольная сумма целостности и номер версии.
  • Внешние библиотеки образов: администратор заводит источник по адресу и видит список доступных ему источников. Небезопасные и служебные адреса, а также незащищённые адреса без явного разрешения отклоняются с объяснением.
  • Импорт образа из подключённой библиотеки: файл скачивается один раз, его целостность проверяется, затем образ раскладывается по хранилищам. Ход импорта виден в реальном времени — общий процент готовности и процент по каждому хранилищу.
  • Единый управленческий список образов показывает всю картину каталога кластера, включая ещё загружающиеся образы, и происхождение образа — из какой библиотеки он импортирован.
  • Перед удалением образа можно посмотреть его зависимости: на каких узлах и хранилищах есть потомки и какие машины на них работают. Удаление образа со всех узлов и хранилищ выполняется одной операцией и требует явного подтверждения необратимости.

Управление физическими дисками

  • Запасные диски (Hot Spare): свободный диск помечается запасным, пометка снимается. Роль диска обновляется после ответа узла.
  • Подключение и отключение диска в кластере (Claim/Unclaim): сырой диск выводится онлайн в кластер и отключается обратно; в пул он при этом не добавляется.
  • Замена сбойного диска в пуле: перед запуском система опрашивает узел и не начинает замену, если донор не свободен.
  • Здоровье пулов хранения одним запросом — по всему кластеру или по одному узлу. Узлы опрашиваются вживую, недоступный узел помечается отдельным состоянием.
  • Список дисков узла одним запросом показывает роль каждого диска (свободен, размечен, в пуле, запасной) и отметку «онлайн в кластере».
  • Центр подхватывает события узла о дисках — подключение нового диска, самостоятельная замена сбойного на запасной, деградация.

Виртуальные машины

  • Клонирование ВМ: копия остановленной машины с той же конфигурацией — процессор, память, диски, сеть. Диски клонируются мгновенно и почти не занимают места дополнительно. Клон создаётся на хранилище источника.
  • Машину, у которой есть клоны, нельзя удалить, пока клоны не удалены: вместо ошибки хранилища показывается список мешающих клонов.

Хранилище

  • Экран «Все тома»: администратор кластера видит тома всех ВЦОД одной таблицей с фильтрами и постраничным выводом.
  • Экран обзора доступа по протоколам: пять согласованных чисел по всему кластеру одним экраном.
  • В списке и карточке групп порталов iSCSI видны пул и ВЦОД, а в карточке — ещё и адрес точки доступа.

Резервное копирование

  • Копирование данных дисков виртуальной машины на другой кластер — полное и инкрементальное.

Журнал безопасности

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

Улучшено​

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

Исправлено​

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

3.0.4 — 16 июля 2026​

Крупный релиз: сети получили полноценную поддержку IPv6, внутри виртуального ЦОД (ВЦОД) появилось собственное блочное хранилище с доступом по iSCSI, а конфигурацию запущенной ВМ теперь можно сверить с эталоном одним действием. Ниже — изменения, заметные пользователю.

Главное​

  • IPv6 (dual-stack) — сети и порты работают с IPv4 и IPv6 одновременно; всё, что раньше принимало IP или CIDR, понимает IPv6 наравне с IPv4.
  • Хранилище VDC (Unified Storage) — полный жизненный цикл блочного хранилища внутри ВЦОД: включение хранилища, iSCSI-таргет, тома, подключение томов клиентам по iSCSI, группы инициаторов и порталов, CHAP-аутентификация — с управлением из веб-интерфейса.
  • Проверка конфигурации ВМ — сверка фактической конфигурации запущенной ВМ с эталоном одним действием, с записью каждой проверки в журнал безопасности.

Добавлено​

IPv6 (dual-stack)

  • Сети создаются с IPv4- и/или IPv6-адресацией: при создании сети достаточно указать любой из диапазонов, IPv4 или IPv6. Для IPv6 можно задать отдельный шлюз по умолчанию — система проверяет, что он принадлежит сети.
  • На порт ВМ или Edge можно назначить до восьми IPv6-адресов при создании ВМ, добавлении сетевой карты и создании Edge. Если IPv6-адрес не указан, поведение не меняется.
  • Отдельными флагами на порту можно управлять тем, из каких семейств адресов (IPv4, IPv6) выделять адреса.
  • IPv6-адреса возвращаются в ответах API наравне с IPv4: в списках сетей и сетей ВЦОД, в карточках и списках ВМ, в карточке Edge, а также во всех операциях с пулом адресов.
  • IPv6-значения принимаются везде, где раньше принимался только IPv4: правила файрвола и NAT на Edge, DNS-серверы ВМ, настройки удалённого доступа пользователя.

Хранилище VDC (Unified Storage)

  • Включение хранилища в ВЦОД: администратор задаёт имя и пул, система создаёт корневую область хранения. На один ВЦОД — одно хранилище.
  • Настройка iSCSI-таргета одной командой: имя таргета выводится из имени хранилища, таргет создаётся на контроллере пула. В детальной информации о таргете видны портальная группа, число активных сессий и назначенная CHAP-группа.
  • Тома: создание с проверкой квоты ВЦОД, просмотр списка и удаление. Детальная карточка тома показывает параметры и текущие метрики — занятое и доступное место, коэффициенты компрессии и дедупликации, состояние подключения.
  • Подключение тома клиентам по iSCSI (Map): том назначается группе инициаторов под заданным номером LUN и виден только этой группе. Обратная операция (Unmap) отключает том, сохраняя группу и таргет.
  • Группы инициаторов — список клиентов (IQN) и сетей, которым разрешён доступ к томам: создание, просмотр, изменение состава и удаление. Изменение состава группы сразу отражается на доступе ко всем её томам.
  • Группы порталов iSCSI: создание, просмотр и удаление. Группу, привязанную к таргету, удалить нельзя.
  • CHAP-аутентификация: именованные наборы учётных записей (несколько пар «пользователь/секрет», включая mutual CHAP), назначение таргету и изменение состава. Секреты после создания не отображаются. CHAP-группу можно задать сразу при создании таргета.
  • В веб-интерфейсе на детальной странице ВЦОД появилась вкладка Storage: обзор хранилища (свойства, статус протоколов, ёмкость, форма настройки), список томов и раздел iSCSI. Добавлены детальные страницы тома (с действиями Map / Unmap), таргета (с управлением CHAP-пользователями) и группы инициаторов. Включение хранилища оформлено пошаговым мастером, а шаг Unified Storage добавлен и в мастер создания ВЦОД.
  • Вся подсистема управляется единым флагом кластера и по умолчанию выключена.

Виртуальные машины

  • Проверка конфигурации ВМ: новое действие сверяет фактическую конфигурацию запущенной ВМ (как её видит гипервизор) с эталонной записью в базе vStack Center и возвращает результат «совпадает / не совпадает» с числом расхождений. Каждая проверка фиксируется в журнале безопасности со сквозным идентификатором запроса. В веб-интерфейсе результат доступен в окне «Config integrity» на странице ВМ.

Безопасность

  • Настоящий выход из системы: новое действие немедленно закрывает текущий сеанс пользователя или, по выбору, все его сеансы на всех устройствах; прежний вход перестаёт действовать. Каждый выход записывается в журнал безопасности — кто, когда и откуда.
  • Кластерный переключатель Edge-функциональности. При выключенном переключателе vStack Center отклоняет любые операции с Edge-маршрутизаторами, включая просмотр списков и карточек, и записывает каждую попытку в журнал безопасности. В обычной поставке переключатель включён, поведение не меняется. Уже запущенные Edge-маршрутизаторы работают дальше, vStack Center перестаёт ими управлять.

Изменено​

  • Удаление ВЦОД с включённым хранилищем стало каскадным: система последовательно снимает подключения томов, удаляет таргет и дисковый раздел, затем удаляет сам ВЦОД. Если в хранилище остались тома, удаление останавливается с просьбой сначала удалить их.
  • Если узел, на котором работает ВМ, недоступен, операции с ВМ теперь возвращают отдельную ошибку «узел недоступен» — раньше в этой ситуации возвращалась общая ошибка без указания причины.
  • Cookie сессии теперь передаётся только по HTTPS: к атрибутам HttpOnly и SameSite=Strict добавлен Secure.
  • Ужесточено обращение с токеном доступа к консоли ВМ: он больше не попадает в логи сервисов, действует ограниченное время (по умолчанию 5 минут) и строго одноразово; служебные файлы токена недоступны посторонним пользователям узла.
  • Список ВЦОД переработан в плоскую таблицу с фильтром по состоянию хранилища. Обновлён обзор ВЦОД: кольца загрузки ресурсов, квоты, роли и настройки.

Исправлено​

Сеть

  • Устранена ошибка «сеть не назначена в этот vDC», которая могла возникать при создании ВМ, хотя сеть была назначена корректно.
  • При сбое создания сети на узле в базе больше не остаётся записи о несуществующей сети — сеть не появляется в списках.
  • Диапазон без маски (например, 192.0.2.1 вместо 192.0.2.0/24) теперь отклоняется с понятной ошибкой валидации — раньше запрос завершался внутренней ошибкой.

Виртуальные машины

  • Устранена периодическая ошибка при создании ВМ под параллельной нагрузкой: запись диска и его назначение ВМ могли завершиться внутренней ошибкой, хотя все параметры были корректны.
  • Исправлена доставка статусов ВМ: отображаемый в интерфейсе статус больше не откатывается на устаревший после событий от узла.

Журнал безопасности

  • При одновременной работе нескольких инстансов диспетчера записи журнала могли нарушать проверяемость хеш-цепочки. Теперь записи сериализуются, и цепочка остаётся верифицируемой.
  • Исправлено обогащение записей журнала сведениями о хранилище ВЦОД — записям снова добавляется имя пула.
  • В интерфейсе журнала кнопка фильтрации больше не исчезает, когда после фильтрации осталось меньше пяти событий; выровнены цвета тегов уровня важности.

Хранилище

  • Имена дисковых разделов хранилища теперь уникальны между ВЦОД — исключён конфликт при включении хранилища с одинаковым именем в разных ВЦОД.
  • Администратору ВЦОД открыт доступ к списку групп порталов iSCSI, без которого он не мог выполнить подключение тома, хотя само действие ему разрешено.

Полное описание изменённого API — в эксплуатационной документации vStack Center: разделы «Управление сетями», «Хранилище VDC», «Виртуальные машины» и «Управление доступом».

3.0.3​

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

Главное​

  • Привилегии вместо номеров ролей. Доступ считается по привилегии с областью действия, а не по тому, какая роль у пользователя. Проверка выполняется централизованно для каждого метода. Существующие назначения перенесены со старой модели автоматически.
  • Кастомные роли. Администратор кластера собирает свою роль из привилегий и назначает её в границах ВЦОД. Кастомные роли нумеруются с 10000, фиксированные защищены от изменения и удаления.
  • Роль Security Admin (идентификатор 6) — уровень кластера, только для аудита: просмотр, фильтрация и выгрузка журнала событий безопасности, проверка целостности. Доступа к машинам, сетям, пользователям и инфраструктуре у неё нет. Роль отвечает требованиям ФСТЭК к администратору безопасности.
  • Роль VM Developer (идентификатор 7) — уровень ВЦОД: создание машин и правка их конфигурации, включая диски и сетевые адаптеры. Запуск, остановка, удаление, консоль и снимки этой роли не доступны.
  • Парольная политика и защита от подбора. Требования к паролю настраиваются, неудачные попытки считаются, учётная запись блокируется при достижении порога.
  • Автовыбор узла при запуске ВМ. Машина в NVMe-режиме дисков и без явно выбранного узла поднимается на наименее загруженном узле в состоянии ONLINE. Машина на virtio-blk по-прежнему запускается только на узле своего пула.

Добавлено​

Роли и привилегии

  • Кастомные роли: создание, изменение, удаление и просмотр. Управление открыто только роли Cluster Master. Список ролей показывает создателя кастомной роли.
  • Область действия «создатель объекта»: администратор ВЦОД видит и ведёт свои сети и Edge-маршрутизаторы даже за пределами своего ВЦОД.
  • 24 привилегии вида Own для доступа к собственным объектам: 8 по сетям и 16 по Edge-маршрутизаторам.
  • Чтение реестра доступа: маппинг ролей на привилегии, реестр привилегий с категориями и областями действия, справочники категорий и областей. Открыто всем семи фиксированным ролям.

Вход и учётные записи

  • Настраиваемые требования к паролю: минимальная длина, заглавная буква, строчная буква, цифра, специальный символ, запрет совпадения с именем учётной записи.
  • Запрет повторного использования текущего пароля.
  • Счётчик неудачных попыток входа с автоматической блокировкой при достижении порога и автоматической разблокировкой по истечении срока. Нулевой срок блокировки делает её постоянной: снять сможет только администратор кластера.
  • Принудительная смена пароля: при первом входе или по решению администратора вместо обычной сессии выдаётся одноразовый токен со сроком жизни 5 минут, которым доступны только смена своего пароля и чтение параметров безопасности.
  • Ручная разблокировка учётной записи администратором кластера.
  • Ответ на неудачный вход стал информативнее: при неверном пароле приходят число неудачных попыток, порог и время первой неудачи, при временной блокировке — время, до которого она держится.
  • Карточка и список пользователей показывают счётчик неудачных попыток, время первой неудачи, срок блокировки и признак обязательной смены пароля. Просроченная блокировка снимается при чтении записи.

Виртуальные машины

  • Карточка и список машин показывают узел даже после остановки машины.
  • При создании машины можно указать конкретный пул хранения; без указания пул выбирается автоматически.
  • Обзор кластера показывает выделенную и доступную память на уровне узла.

Улучшено​

  • Проверка данных при создании и изменении ВМ: выравнивание памяти по 4 КиБ, верхняя граница памяти по максимуму кластера, имя хоста в гостевой секции, переключатель входа по паролю через SSH. Изменение размера диска снова сверяется с максимумом кластера.
  • Профиль ОС для служебной машины Edge вынесен в опцию кластера, а не задан жёстко в шаблоне.
  • Пароли хешируются в самом диспетчере, а не функциями базы данных.

Исправлено​

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

3.0.2​

Добавлено​

  • Базовые операции управления кластером, узлами и виртуальными машинами.

См. также​