Хакнем Proxmox. Кластер из 2 нод без кворума

Опубликовано 16 дек. 2025 г.

Сегодня будем хакать proxmox и создавать работоспособный кластер из 2х нод.

Ты скажешь - фии… Легкотня! Да, добавить ноду в кластер легко, но если у тебя всего 2 ноды в кластере, ни о каком кворуме речь не идет. Кворум предполагает наличие 3х нод. Либо Q-Device сервера.

ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМ   ЧИТАТЬ ПЕРВЫМ В MAX

Если выключить одну из нод, то например при попытке сделать бекапы ты получишь ошибку — твой кластер пошел по пизде, сначала пофикси эту проблему и лишь потом я сделаю бекапы.

Да, если кластер развален, то файловая система переходит в режим R/O. И хуй ты че с этим сделаешь.

Если кластер потерял кворум, /etc/pve автоматически монтируется только для чтения, и никакие chmod/chown/chattr не помогут, т.к. это не обычный ext4/xfs.

Прям вызов! И че делать? Очевидно вернуть ноду в кластер и произвести некие манипуляции пока кластер не развален.

Мыж с тобой не пальцем деланные, давай наебем хакнем эту поеботу. И подтасуем результаты кворума в нашу пользу.

Сразу скажу — так делать нельзя!

Включаем ноду, чтобы кластер восстановился. Заходим по ssh на proxmox ноду, которая включена 24/7 (у меня она называется pvx).

vim /etc/pve/corosync.conf

Да, предварительно не забудь забекапить все файлы, в которые вносишь изменения. Вообще никогда не забывай этого делать, особенно на проде. В будущем это спасет тебе жизнь и сохранит кучу нервных клеток.

В файле видим описания кластера:

nodelist {
  node {
    name: pvx
    nodeid: 1
    quorum_votes: 1
    ring0_addr: 192.168.10.60
  }
  node {
    name: wenom
    nodeid: 2
    quorum_votes: 1
    ring0_addr: 192.168.10.55
  }
}

Видим quorum_votes. Это и есть ключевая опция для хака. Для pvx ноды я меняю 1 на 2. То есть искусственно присваиваю два голоса без кворума.

И ниже в блоке totem меняем параметр config_version: c 2 на 3. Все! Ничего перезагружать не нужно.

Чтобы проверить, запускаем:

pvecm status

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          2 192.168.10.60 (local)
0x00000002          1 192.168.10.55

И видим что нода pvx получила 2 голоса. Теперь если выключить вторую ноду. Файловая система не перейдет в режим R/O и всё будет работать, как и раньше с одной нодой.

Поздравляю, теперь ты можешь прокачать свою домашнюю лабораторию и выключать ненужные узлы кластера как тебе вздумается.

Комментарии