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

ВЦОД: изоляция, роли и квоты

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

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

Тот же список показывает учёт ёмкости. Колонки «Running VMS», «CPU (Cores) used of quota», «RAM (GB) used of quota» и «Storage (GB) used of quota» держат пару «занято / разрешено», так что вопрос «сколько ВЦОД занял и сколько ему разрешено» закрывается одним экраном, без обхода отдельных объектов. Вместо второго числа стоит «∞» у ВЦОД, которому ограничение по этому ресурсу не выставлено.

Ресурсы попадают в ВЦОД тремя разными путями, и это ключ к пониманию изоляции. Виртуальные машины, датасеты и тома создаются внутри ВЦОД и принадлежат ему. Сеть — объект уровня кластера: она входит в ВЦОД назначением на табе «Networks» карточки ВЦОД, и одну сеть допустимо назначить в несколько ВЦОД. Для каждой пары ВЦОД↔сеть выставляется отдельный лимит адресов — колонка «Addrs limit» на под-табе «IP Data», — поэтому общая сеть не означает общего пула адресов. Образы ОС живут по третьей схеме: у образа есть ВЦОД-владелец, а остальным ВЦОД образ «показывают» грантом видимости.

Права на сам ВЦОД сосредоточены в роли уровня кластера. Создание, изменение, удаление ВЦОД, лимит адресов на сеть и просмотр назначенных ролей доступны только роли Cluster master. Внутри ВЦОД работают роли уровня ВЦОД — vDC admin и ниже. Назначение и снятие сети — единственная операция из этого списка с более мягким правилом: её выполняет либо Cluster master, либо vDC admin, который сам создал сеть.

Граница работает и при удалении. Пустой ВЦОД удаляется сразу. ВЦОД с объектами не удаляется: vStack Center отвечает отказом и называет, что мешает — назначенные сети, порты, виртуальные машины, датасеты, тома или владеемые образы ОС. Так удаление ВЦОД не сносит чужую работу молча. Если у ВЦОД включено хранилище, удаление превращается в длительную операцию: перед сносом записи каскадом снимаются iSCSI-таргет, портал-группы, группы инициаторов, наборы учётных данных CHAP и корневой ZFS-датасет.

Что принадлежит ВЦОД​

ОбъектКак попадает в ВЦОДПоведение при удалении ВЦОД
Виртуальные машинысоздаются внутри ВЦОДблокируют удаление («VDC has assigned VMs»)
Сетиназначаются из кластера на табе «Networks»блокируют удаление («VDC has assigned networks»)
Порты сетейпоявляются, когда сеть ВЦОД подключена к ВМблокируют удаление («VDC has assigned ports»)
Датасетысоздаются на пулах хранения кластераблокируют удаление («VDC has assigned datasets»)
Тома SDSсоздаются в хранилище ВЦОДблокируют удаление («VDC has assigned volumes»)
Образы ОС во владениизагружены во ВЦОД: он их владелецблокируют удаление, vStack Center перечисляет мешающие образы
Образы ОС по гранту видимостипоказаны из другого ВЦОД, владелец чужойне мешают: гранты снимаются автоматически
Хранилище ВЦОДвключается на пуле храненияразбирается каскадом перед сносом записи ВЦОД

Кто что может​

ОперацияГде в интерфейсеДоступ
Список доступных ВЦОДплощадка → таб «Virtual Data Centers»любой пользователь; список ограничен его грантами
Создание ВЦОДтаб «Virtual Data Centers» → «Actions» → «Create a VDC»Cluster master
Изменение имени, описания, квоткарточка ВЦОД → секция «Settings»Cluster master
Удаление ВЦОДкарточка ВЦОД → «Actions» → «Delete VDC»Cluster master
Назначение сети в ВЦОДкарточка ВЦОД → таб «Networks» → «Primary» → колонка «Assign»Cluster master либо создатель сети с ролью vDC admin
Снятие сети с ВЦОДтам жете же требования, что у назначения
Сети, назначенные в ВЦОДкарточка ВЦОД → таб «Networks» → «Primary»любой пользователь; список ограничен доступными ВЦОД
Лимит адресов на пару ВЦОД↔сетьтаб «Networks» → «IP Data» → колонка «Addrs limit»Cluster master
Роли, назначенные в ВЦОДкарточка ВЦОД → секция «VDC roles»Cluster master

Разделение простое: границу ВЦОД двигает уровень кластера, внутри границы работает уровень ВЦОД. Полный перечень ролей и областей действия — в справочнике ролей и привилегий.

Квоты как контракт ёмкости​

Квота — верхняя граница ресурса для ВЦОД. Их пять, и в карточке ВЦОД они разложены по двум группам: «Quotas» держит «CPU» (ядра), «RAM (GB)» и «Storage (GB)», «Secondary limits» — «CPU frequency» и «Snapshots». Пустое поле означает, что ограничение по этому ресурсу не выставлено; в списке ВЦОД такой ресурс показан как «∞».

Рядом с квотами живёт группа «Oversubscription factor» — коэффициент переподписки по «CPU», «RAM» и «Storage». Коэффициент отделён от квоты намеренно: сама граница ёмкости и допустимая переподписка меняются независимо друг от друга.

Учёт виден там же, в карточке: счётчик «Running VMS», три индикатора «CPU», «Memory» и «Storage» с подписью действующей квоты и сводные строки «Quotas», «Oversubscription» и «Limits». У ВЦОД без квоты доля потребления не считается — делить не на что. Точный состав полей и типы собраны в справочнике квот и ресурсов ВЦОД.

Жизненный цикл​

ВЦОД проходит три состояния. Создание задаёт имя и, необязательно, квоты — веб-интерфейс ведёт визардом из четырёх шагов. Дальше ВЦОД живёт и меняется: секция «Settings» карточки правит имя, описание, квоты и коэффициенты переподписки, причём каждое поле по отдельности — можно не трогать значение, можно очистить его, можно задать новое. Вывод из эксплуатации — «Delete VDC» в меню «Actions», и он проходит только после того, как ВЦОД освобождён от объектов.

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

Методы API​

Операции этой страницы в API: vdc-list, vdc-create, vdc-set, vdc-delete, vdc-assign-network, vdc-deassign-network, vdc-networks, vdc-network-addr-limit, vdc-roles — см. Справочник API.

См. также​