В vCenter 7U1 появилась такая штука как vSphere Cluster Services (vCLS). Это такие мелкие виртуалки, которые сами заводятся в кластере и поддерживают его работу. Если vCenter отвалится, то благодаря vCLS кластер продолжит функционировать. Вся эта система самоорганизуется. Виртуалки автоматически создаются, запускаются, удаляются.
В vSphere 7 Update 3 появилось несколько хороших обновлений vCLS для повышения эффективности таких операций, как размещение агентских vCLS на хостах и хранилищах данных.
Всё прекрасно, пока мы не решим перевести хост в vCLS на борту в режим обслуживания. Гасим все виртуалки, пытаемся перевести хост в Maintenance Mode, а vCLS машина сама включилась и не даёт ничего сделать. Удалить vCLS мы тоже не можем. Что делать? Есть несколько способов.
Migrate vCLS
Если ваша лицензия позволяет мигрировать машины, то можно переместить vCLS на другой хост в том же кластере.
При миграции нас ругают и отправляют читать KB 79892, в этой статье пишут зачем vCLS нужны и как мы можем своими руками поломать функциональность DRS кластера.
https://kb.vmware.com/s/article/79892
Если мы уверены в том что делаем, жмём YES.
Нам говорят не рулить этой машиной вручную. Жмём YES.
Машина смигрируется, можно ввести хост в Maintenance Mode. Однако, никто не гарантирует что в это момент не начнётся деплой новой vCLS на тот же хост, в этом случае он может зависнуть. Так что этот метод не очень хороший. Если не хотим рисковать или наша лицензия не позволяет мигрировать машины, то нужно придумать что-то ещё.
Retreat Mode
Второй неправильный метод — отключить в кластере режим Retreat Mode. Тогда все виртуалки vCLS в этом кластере сами удалятся. Естественно, при этом функционал DRS и HA перестанет работать.
Заходим в vSphere Client. Тыкаем на нужный кластер. Из URL вытаскиваем его номер: domain-c<number>. Получится нечто такое: "domain-c1006".
Тыкаем в vCenter. Configure → Advanced setting → Edit settings. Откроется окно "Edit Advanced vCenter Server Settings". Добавляем новое значение, подставив номер кластера:
- name = config.vcls.clusters.domain-c<number>.enabled
- value = False
Save.
Теперь vCLS виртуалки кластера начнут самоуничтожаться. После удаления всех виртуалок vCLS можно ввести хост в Maintenance Mode, сменить значение на True и вернуть всё как было.
Выбор Datastore для vCLS VMs
А теперь более правильный метод.
Хранилище данных для виртуальных машин vCLS выбирается автоматически на основе ранжирования всех хранилищ, подключенных к хостам внутри кластера. Хранилище данных с большей вероятностью будет выбрано, если в кластере есть хосты со свободными зарезервированными слотами DRS, подключенными к хранилищу данных. Алгоритм пытается разместить виртуальные машины vCLS в общем хранилище данных, если это возможно, прежде чем выбрать локальное хранилище данных. Предпочтительно хранилище данных с большим свободным пространством, и алгоритм старается не размещать более одной виртуальной машины vCLS в одном хранилище данных.
Мы можем переопределить размещение хранилища данных виртуальной машины vCLS по умолчанию.
Выбираем наш кластер, в котором находится нужный хост. Configure → vSphere Cluster Service → Datastores.
Здесь во вкладке VCLS ALLOWED находится список хранилищ, на которых можно размещать vCLS. По умолчанию список пуст, это означает, что для размещения vCLS доступны все хранилища.
Во вкладке SOLUTION BLOCKED находится список хранилищ, в которых нельзя размещать vCLS независимо от нашего желания, этот список настраивается автоматически. К примеру, туда попадают хранилища SRM или VSAN в режиме обслуживания. Нам эта вкладка сейчас не интересна.
Возвращаемся к VCLS ALLOWED. Здесь можно нажать кнопку ADD и явно указать те хранилища, на которых разрешено размещать vCLS машины. На всех остальных хранилищах размещение vCLS будет запрещено. ADD.
Поступаю просто. Галками выбираю все хранилища, кроме хранилищ хоста, который собираюсь ввести в режим обслуживания. ADD.
Не успеваю сделать пару глотков кофе, как vCLS с моего хоста удаляется и деплоится на другой хост. Переводим хост в Maintenance Mode.
Примечание
Ещё можно настроить машине vCLS теги или атрибуты, сделать правила, с помощью Compute Policy убрать их с нужного хоста. Это также часто используется для того, чтобы vCLS не мешали обычным рабочим виртуалкам под нагрузкой.
Ссылки
https://core.vmware.com/blog/vsphere-7-update-3-vcls-updates