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