# Развал кворума в кластере Proxmox VE: диагностика

> Что делать при потере кворума в кластере Proxmox VE: диагностика corosync, ручной перезапуск и запуск без кворума.

Кластер Proxmox VE без кворума переходит в защитный режим: файловая система `/etc/pve` становится доступной только для чтения, а изменения конфигурации, запуск новых VM и переключение HA блокируются. Это защита от split-brain, но для администратора это выглядит как «панель не даёт ничего сделать» в самый неподходящий момент.

## Что такое кворум и почему он разваливается

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

## Как быстро проверить статус кворума

Первая команда при любом подозрении на проблему с кластером — проверка состояния corosync на живом узле:

```
pvecm status
corosync-quorumtool -s
```

В выводе важны две строки: `Quorate` должна быть `Yes`, а число `Expected votes` должно совпадать с фактическим количеством узлов. Если `Quorate: No`, кластер работает в режиме только чтения до восстановления большинства.

## Диагностика сети между узлами

Чаще всего кворум рвётся из-за проблем на сети corosync, а не из-за падения самих серверов. Проверьте связность и задержку между узлами по адресам, указанным в `/etc/pve/corosync.conf`:

| Проверка | Команда | Нормальное значение |
| --- | --- | --- |
| Пинг между узлами | ping -c 20 10.10.10.2 | 0% потерь, задержка ниже 1 мс |
| Статус линка corosync | corosync-cfgtool -s | все линки со статусом OK |
| Журнал службы | journalctl -u corosync -n 100 | без записей token lost |

## Как восстановить кворум, если часть узлов недоступна

Если узлы вышли из строя надолго и большинство собрать нельзя, администратор может временно понизить порог кворума на живых узлах:

```
pvecm expected 1
```

Команда меняет ожидаемое число голосов «на лету», не трогая файл конфигурации, и разблокирует запись в `/etc/pve` на оставшихся узлах. Это временная мера до восстановления сети или ремонта аварийных серверов — использовать её на постоянной основе нельзя, иначе кластер потеряет защиту от split-brain.

## Что делать после возврата всех узлов в сеть

Как только связь восстановлена, верните штатное число голосов и проверьте, что узлы снова видят друг друга без ручных команд:

```
pvecm expected 3
pvecm status
```

Если после возврата сети кластер не собирается сам, перезапустите службу `corosync` поочерёдно на каждом узле, начиная с того, что был недоступен дольше всех. Резкий рестарт сразу на всех узлах может вызвать повторный сплит на несколько секунд.

## Как снизить риск повторного развала кворума

Кластер из трёх и более узлов переживает потерю одного узла без проблем — кворум держится большинством оставшихся. Для кластера из двух узлов стоит добавить `QDevice` в качестве третьего голоса на внешнем сервере, а мониторинг статуса кворума полезно вывести в [отдельный дашборд мониторинга](https://www.zevshost.net/ru/kb/proxmox-monitoring-grafana/), чтобы заметить проблему раньше пользователей. Не забывайте, что [файрвол Proxmox VE](https://www.zevshost.net/ru/kb/proxmox-firewall/) не должен блокировать порты corosync между узлами — это ещё одна частая причина ложного развала кворума после смены сетевых правил.

## Чек-лист восстановления кворума

- Причина обрыва найдена: сеть, отказ узла или неверное число ожидаемых голосов.
- `pvecm status` показывает `Quorate: Yes` на всех живых узлах.
- Временное значение `expected votes` возвращено к штатному после ремонта.
- Настроен алерт на потерю кворума, чтобы не искать проблему по жалобам клиентов.

---

Источник: https://www.zevshost.net/ru/kb/proxmox-vosstanovlenie-kvoruma/
