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

Хранилище ВЦОД — модель и устройство

Что это​

Хранилище ВЦОД (Unified Storage) — блочное хранилище, которое принадлежит одному виртуальному центру обработки данных (ВЦОД) и отдаётся внешним хостам по iSCSI. Хранилище опирается на пул кластера: vStack Center создаёт на пуле корневой ZFS-датасет и привязывает его к ВЦОД. Тома создаются внутри этого датасета, занимают квоту пространства своего ВЦОД и раздаются как LUN.

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

Из чего состоит хранилище​

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

СущностьЧто этоОбласть принадлежности
ПулZFS-пул кластера, на котором размещается корневой датасет хранилищаКластер
Корневой датасетДатасет вида <пул>/<имя>; имя — 1–63 символа из строчных латинских букв, цифр, точки и дефисаОдин ВЦОД
Томzvol с полным именем <пул>/.vol/<имя>; размер задаётся в ГБ, размер блока по умолчанию 32768Один ВЦОД
iSCSI-таргетТочка доступа с IQN вида iqn.2024-01.io.vstack:<имя хранилища>Один ВЦОД
LUNНомер 0..255, под которым том виден на таргетеОдин таргет
Портал-группаНабор пар «адрес + TCP-порт», через которые слушает таргетОдин пул
ПорталПара IP:port внутри группы. Отдельным объектом не управляется — порталы задаются составом группыПортал-группа
Группа инициаторовСписок IQN инициаторов и разрешённых сетей в формате CIDRОдин ВЦОД
CHAP auth-группаНабор учётных данных парольной защиты iSCSIОдин ВЦОД

Имя хранилища не декоративное: из него выводится IQN таргета. Сегмент имени корневого датасета после / подставляется в префикс iqn.2024-01.io.vstack:. Поэтому имена хранилищ в кластере не должны совпадать — иначе второй таргет не создастся.

Как проходят операции​

vStack Center не трогает пул напрямую. Команды хранилища уходят SAN-контроллеру того пула, на котором лежит корневой датасет. Отсюда разное поведение интерфейса, и различать его важно — от этого зависит, когда вы увидите результат.

Класс операцииКак ведёт себя интерфейсПримеры
Чтение из учётаотвечает сразу, из учёта vStack Centerсводка хранилища, список томов, кластерный обзор доступа
Чтение с живыми показателямизапрашивает SAN-контроллер; если он недоступен, показывает пустые живые поля, но открывает страницукарточка тома, текущая ёмкость хранилища
Изменениеждёт подтверждения контроллера пула, держит индикаторвключение хранилища, создание портал-группы
Цепочка измененийждёт завершения всей цепочки шагов на контроллерераздача и отзыв тома

Учёт пишется по подтверждению. Если контроллер отказал, в vStack Center не появляется ни группы, ни таргета, ни тома — причина отказа приходит от контроллера как есть. Обратное тоже верно: объект в списке означает, что контроллер операцию подтвердил. Промежуточного состояния «создаётся» у этих объектов нет.

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

Инварианты модели​

Часть ограничений заложена в модель и проверяется до обращения к контроллеру. Знание этих правил экономит разбор отказов.

ИнвариантЧто происходит при нарушении
Одно хранилище на ВЦОДПовторное включение отклоняется кодом -45007
Один пул на хранилищеПул берётся из хранилища ВЦОД, выбором не задаётся
Один таргет на ВЦОДПовторная настройка iSCSI отклоняется кодом -45014
Имя тома уникально в хранилище ВЦОДЗанятое имя отклоняется кодом -45018
Один том экспортируется ровно одной группе инициаторовУже роздан — код -45027
Номер LUN свободен на таргетеЗанятый номер — код -45029
Портал-группа неизменяемаПравки состава нет: вместо неё создаётся новая группа
Одна CHAP auth-группа на таргетНазначение новой группы заменяет прежнюю

Ёмкость и квота​

Ёмкость хранилища ВЦОД равна его квоте пространства — отдельного лимита у хранилища нет. В сводке хранилища квота видна в карточке Properties, поле Capacity. Занятое место по всем ВЦОД показывает экран Virtual Data Centers, колонка Storage; сам лимит правится в настройках ВЦОД полем Storage (GB).

Квота считается по всему занятому пространству ВЦОД, а не только по томам хранилища: диски виртуальных машин и ранее созданные тома суммируются. Проверка идёт до обращения к контроллеру и под блокировкой по ВЦОД — два параллельных запроса не проскочат мимо лимита вдвоём. Если запрошенный размер не влезает, операция отклоняется кодом -45017, а сообщение показывает запрошенный и доступный объём.

Признак включения возможности​

Весь домен закрыт признаком feature.unified_storage в опциях кластера. По умолчанию признак выключен. Пока он выключен, любая операция хранилища после проверки привилегии отклоняется с кодом -45001 и сообщением «Unified Storage feature is disabled». Роль Cluster master признак не обходит.

Кто что видит​

Домен разделён на кластерный и ВЦОД-уровень. Включение хранилища, создание и удаление портал-групп остаются за ролью Cluster master. Администратор ВЦОД читает своё хранилище и работает со своими томами и группами инициаторов. Портал-группы он читает по всему кластеру, границей его ВЦОД это чтение не ограничено.

ПривилегияНомерКому выдана
Enable vDC Storage13000Cluster master (нужен глобальный scope)
iSCSI Create Portal Group13004Cluster master
iSCSI Delete Portal Group13005Cluster master
iSCSI View Portal Group13006Cluster master, администратор ВЦОД (весь кластер)
iSCSI List Portal Groups13007Cluster master, администратор ВЦОД (весь кластер)
Configure vDC Storage iSCSI13009Cluster master
View vDC Storage13010Cluster master, администратор ВЦОД (свои ВЦОД)
List vDC Storages13011Cluster master, администратор ВЦОД (свои ВЦОД)
View vDC Storage iSCSI Detail13026Cluster master, администратор ВЦОД (свои ВЦОД)
Create vDC Volume—Cluster master, администратор ВЦОД (свой ВЦОД)
Delete vDC Volume—Cluster master, администратор ВЦОД (свой ВЦОД)
Map vDC Volume—Cluster master, администратор ВЦОД (свой ВЦОД)
Unmap vDC Volume—Cluster master, администратор ВЦОД (свой ВЦОД)
List All Volumes—Cluster master (scope global)
View Storage Overview—Cluster master (scope global)

Привилегии 13006 и 13007 области видимости не учитывают, поэтому администратор ВЦОД видит портал-группы всех пулов кластера. Заводить и удалять их он по-прежнему не может.

Привилегии 13010 и 13011 учитывают область видимости: администратор ВЦОД получает данные только тех ВЦОД, на которые у него есть право. Запрос чужого ВЦОД отдаёт -403 и не раскрывает, существует такой ВЦОД или нет. Тот же приём защищает кросс-ВЦОД чтение: кластерный обзор и сводная таблица томов показывают топологию всех ВЦОД, поэтому администратору отдельного ВЦОД они закрыты.

Кластерный обзор доступа​

Кластерная картина живёт в разделе Unified Storage под узлом кластера. Таб Overview показывает блок Protocol Access Overview — воронку доступа из пяти чисел: Initiators → Portal Groups → VDC with Unified Storage → Targets → LUNs. Все числа снимаются из одного согласованного среза, поэтому уровни воронки согласованы между собой арифметически.

Разбивка идёт по протоколам: в текущей версии на экране одна колонка — iSCSI. Кластер без хранилищ показывает отдельное сообщение вместо сетки нулей, а ноль внутри непустого кластера отображается как «0» — это разные состояния. Ошибка загрузки тоже отличима от «нет данных».

Раздел виден только роли Cluster master: без привилегий на кластерный обзор узла Unified Storage в дереве нет вообще.

Портал-группы кластера лежат в том же разделе, на табе Protocols → переключатель iSCSI.

Где что описано​

ЗадачаГде описано
Включить хранилище ВЦОДКак создать ВЦОД с Unified Storage
Создать, прочитать, удалить томТома ВЦОД
Настроить точку доступа и CHAPНастройка iSCSI и CHAP
Задать, кому и через какие адреса разрешеноГруппы инициаторов и порталов
Отдать том хосту и отозвать раздачуПодключение томов по iSCSI
Посмотреть картину по кластеру целикомЭта страница, раздел «Кластерный обзор доступа»

Порядок развёртывания​

Шаги идут строго по цепочке, и каждый следующий опирается на предыдущий. Портал-группу на пуле администратор кластера готовит заранее: без неё форма настройки iSCSI не даёт продолжить. Дальше включите хранилище на пуле, настройте iSCSI, заведите группу инициаторов и только затем раздавайте тома.

Создавать тома можно сразу после включения хранилища — iSCSI для этого не нужен, он нужен для раздачи.

См. также​

Методы API​

Операции этой страницы в API: vdc-storage-get, vdc-storage-list, cluster-storage-overview, cluster-list-volumes — см. Справочник API.