Что нового в 3.0.10
Дата выпуска: 10 августа 2026
dRAID
ZFS-пулы на узле можно создавать с топологией dRAID. Пул проверяется при создании, виден в мониторинге, а резервирование и замена дисков учитывают distributed spare. Рассчитано на большие однородные HDD-полки от 20 дисков.
Жизненный цикл физических дисков
Узел сам ведёт физические диски (NVMe и HDD) от появления до вывода из эксплуатации:
- находит новые диски и собирает модель, серийный номер, тип, размер и состояние;
- периодически проверяет здоровье по SMART;
- при отказе подбирает подходящий spare, выполняет замену и следит за resilver;
- подсвечивает диск светодиодом, чтобы его можно было найти в корзине.
Аппаратный отказ обрабатывается без администратора, деградация заметна до того, как диск откажет. Состояние всех дисков кластера доступно через JSON-RPC API. Работает на платформах HCP и HA.
HA-кластер из двух узлов
Кластер работает на двух узлах, как с общим backplane (shared storage), так и на отдельных узлах с локальными дисками. Поддерживаются двухпортовые диски SAS и NVMe, разделяемый backplane, все уровни RAID и топологии OpenZFS, автоматический failover.
Storage Live Migration
Диски ВМ переезжают между storage-пулами без остановки гостевой ОС. Данные в фоне копируются на целевой пул, затем NVMe-oF target атомарно переключается на новый том. Поверх базового сценария есть два режима:
- Suspend/resume на переключении. ВМ приостанавливается на момент финального переключения и возобновляется уже на новом томе. Сетевая недоступность короче, данные гарантированно согласованы.
- Длящаяся репликация. Копирование идёт непрерывно с заданным интервалом. Можно дождаться, пока копия догонит оригинал, и переключиться в удобный момент.
Пригодится для обслуживания хранилища без простоя, разгрузки нагруженных томов и переезда между классами хранилища (HDD → NVMe). Вместе с Live Migration Compute ВМ перемещается по кластеру целиком.
NVMe/TCP
К хранилищам vStack OS можно подключаться снаружи по NVMe/TCP через обычный Ethernet.
PCI Passthrough
Физическое PCI-устройство хоста пробрасывается в ВМ bhyve без эмуляции, и гость работает с железом напрямую. Подходит любое устройство, которое поддерживает bhyve passthrough. Основные сценарии: сетевые адаптеры (сетевой ввод-вывод на линейной скорости) и GPU.
NIC Passthrough
Сетевую карту можно целиком отдать ВМ. Контроллер привязывает PCI-устройство к
драйверу ppt, добавляет в аргументы bhyve -s <slot>,passthru,<bus>/<slot>/<func>
и освобождает устройство, когда ВМ останавливается. Проверено на Intel E810 25G
и LR-LINK LRES3029PF.
Ограничения.
- ВМ с passthrough привязана к узлу. Live migration и автоматический переезд на другой узел не поддерживаются: bhyve не переносит состояние проброшенного устройства.
- Запуск на другом узле означает другую физическую карту и другой MAC. Это возможно только на узле с такой же картой.
- SR-IOV и vGPU в этом релизе не поддерживаются.
Новый сборщик метрик
Вместо telegraf и Perl-демонов метрики на узле собирает собственный коллектор на
C++. Он отдаёт их в формате Prometheus по HTTP на /metrics. Раньше слоёв было
два: Perl-демоны отдавали метрики ВМ и статистику UMA, telegraf — системные
метрики хоста (cpu, mem, disk, diskio, net, system, kernel, processes, smart,
ipmi_sensor, zfs) и подробный netstat. Сторонние зависимости исчезли, а заказчикам,
у которых мониторинг на Prometheus, больше не нужен стек InfluxData.
На каждом узле работает скраппер. Он собирает /metrics локальных контроллеров и
пишет в InfluxDB на mgmtVM Center, разворачивается при установке кластера.
Контроллеры больше не отправляют данные в InfluxDB сами.
Набор метрик перенесён полностью, ничего не выброшено. Хранилище осталось прежним, InfluxDB. Дашборды Grafana не переводились на PromQL.
Жизненный цикл пула через nodeside
Команды create, import, export, start, stop, share и unshare для
ZFS-пула выполняет контроллер nodeside по JSON-RPC через AMQP и сам публикует
события смены состояния. Скрипты /pools/<pool>/.internal/rc.d/* и
/root/vStack.pool.sh с узлов удалены.
Live Migration в bhyve
Механизм Live Migration переписан под долгую поддержку. Ошибки запуска ВМ и операций bhyve теперь доходят до оператора и контроллера с полной диагностикой.
Edge и сеть
- HA для Edge на CARP и pfsync.
- Edge показывает, какая схема конфигурации активна. Схема v1 объявлена устаревшей.
ng_switch(4)сам именует хуки:autoпревращается вauto-<N>.
Исправленные ошибки
Хранилище и блочный доступ
iscsi-create-targetсauth.chap_groupбольше не отвечает-32602.- Создание таргетов работает. После предыдущего исправления оба метода отвечали «Parameter 'volsize' is required».
- Проверка NQN больше не отвергает подчёркивание: хосту с корректным
initiator_nqnснова можно дать доступ к NVMe-oF. initiator_nqnпроверяется и не попадает в путь keyring-файла. Закрыта возможность записи за пределы каталога пула.iscsi-add-target-lunбольше не создаёт bdev до проверкиlun_id. Раньше при отказе bdev оставался и навсегда блокировал удаление тома.iscsi-remove-target-lunуменьшает счётчик экспортов тома.iscsi-delete-portal-groupне удаляет portal group, которую ещё используют таргеты.- CLI vstack-san больше не получает ответ на чужой запрос и не пишет ложное «Deamon not responding» при параллельных вызовах.
- Служебный
ctrl_volудаляется вместе с таргетом NVMe/TCP. Раньше каждый таргет оставлял 1 GiB. - Метрики пулов (семейство
zpool) снова доходят до InfluxDB. metrics-getбольше не отказывает кодом-8103при работе через AMQP.- Контроллеры проверяют HTTP-код ответа InfluxDB. Раньше любая ошибка (400, 401, 404, 5xx) считалась успешной отправкой.
Диски, пулы и кластер
- В dRAID-пуле без свободного distributed spare автозамена берёт физический spare-диск.
disk-resilver-eventне сообщает ложныйstatus=completed, когда цель resilver не определена.metrics-getиsmart-getотвечают ошибкой23122/23131, а не теряют ответ, когда он не помещается в лимит.- На залипшем диске
smartctlснимается по SIGKILL, SMART больше не устаревает молча. - nodeside восстанавливает AMQP-канал после channel-error. Раньше одна публикация в несуществующую очередь рвала связь узла с Center до перезапуска демона.
- В ccrd исправлены критические ошибки split-brain в дисковом PR-фенсинге и в кворуме witness.
- HA-резервации: при карантине всех дисков группы больше нет ложного «Registration restored on all disks».
- Пул сам выходит из DEGRADED, когда узел возвращается. Раньше сетевой диск
оставался FAULTED до ручного
zpool online.
Виртуализация
- Приёмник live-миграции больше не падает в SIGSEGV на неизвестной секции потока и не портит соседние секции на коротком чтении.
- После неудачной live-миграции (
receive_failed) ВМ не отклоняет команды с ошибкой-451около двух минут. - VF от E810 в госте с числом vCPU больше двух настраивает очереди, TX-hang больше нет.
Мониторинг и CLI
- Проверка
host_cpu_idleв NRPE снова выполняется: уcheck_idleбыли права, недоступные пользователюnagios. - CLI и справка vstack-nodeside приведены к единому стандарту vStack OS.