Product SiteDocumentation Site

25.5.3. Резервирование сети (Redundancy)

Corosync поддерживает избыточные сетевые соединения через встроенный транспорт Kronosnet.
Для включения резервирования необходимо указать несколько каналов связи:
  • через параметры --link0, --link1 в команде pvecm;
  • либо добавив параметры ring0_addr, ring1_addr в файле corosync.conf.

Примечание

Для эффективного отказоустойчивого переключения каждый канал должен использовать отдельное физическое соединение.
Каналы используются в порядке приоритета:
# pvecm create CLUSTER \
  --link0 10.10.100.105,priority=15 \
  --link1 10.20.20.1,priority=20
В данном случае будет использоваться канал link1, поскольку его приоритет выше.
Если приоритеты не заданы, предпочтение отдаётся каналу с меньшим номером (link0 имеет более высокий приоритет, чем link1).
В штатном режиме трафик передаётся только через канал с наивысшим приоритетом. Остальные каналы используются только при отказе основного.
Для добавления резервного канала в существующий кластер необходимо внести изменения в файл /etc/pve/corosync.conf:
  1. Добавить параметр ringX_addr для каждого узла. Например:
    nodelist {
      node {
        name: pve01
        nodeid: 1
        quorum_votes: 1
        ring0_addr: 192.168.0.186
        ring1_addr: 192.168.1.10
      }
      node {
        name: pve02
        nodeid: 2
        quorum_votes: 1
        ring0_addr: 192.168.0.90
        ring1_addr: 192.168.1.11
      }
      node {
        name: pve03
        nodeid: 3
        quorum_votes: 1
        ring0_addr: 192.168.0.70
        ring1_addr: 192.168.1.12
      }
    }
    

    Важно

    • Номер кольца (ringX) должен быть одинаковым для всех узлов.
    • IP-адреса должны быть уникальными для каждого узла в рамках одного кольца.
  2. В секции totem добавить блок interface для нового кольца (номер ссылки должен соответствовать числу X, выбранному выше):
    interface {
      linknumber: 1
    }
    
  3. Увеличить значение config_version.
После применения конфигурации рекомендуется проверить загрузку нового канала:
# journalctl -b -u corosync
Для тестирования можно временно отключить основной канал на одном из узлов и убедиться, что кластер остаётся в состоянии ONLINE:
# pvecm status
Состояние всех link-каналов Corosync можно просмотреть, выполнив команду:
# corosync-cfgtool -s