Имеется кластер Proxmox VE из трех нод. Планируется присоединение к данному кластеру еще несколько нод. Принял решение, с целью избежания затыков по сети выделить сеть кластера в отдельную сеть.
У нас все получилось!
- Шаг первый
На каждой из нод настраиваю второй интерфейс, для простоты дальнейшего администрирования присваиваю в обеих подсетях один адрес.
Например: нода имеет настроенный мост на первом интерфейсе с IP 192.168.1.10 для второго интерфейса назначаю IP 10.10.1.10 (Если предполагается использовать второй интерфейс не только для кластерной сети следует на этом интерфейсе так же сделать мост и присваивать адрес ему) - Шаг второй
Настраиваем на своем свитче VLAN, в который подключаем все вторые интерфейсы своих нод (процес зависит от конкретного свича и здесь не описывается).
Перегружаем ноды, чтоб изменения вступили в силу.
С помошьюping <node address второго интерфейса>
проверяем доступность всех нод по новой сети. - Шаг третий
Редактируем файл/etc/pve/corosync.conf
:
Мы должны увидеть примерно следующее:cp /etc/pve/corosync.conf /etc/pve/corosync.conf.bak cp /etc/pve/corosync.conf /etc/pve/corosync.conf.new nano /etc/pve/corosync.conf.new
logging { debug: off to_syslog: yes } nodelist { node { name: pve1 nodeid: 3 quorum_votes: 1 ring0_addr: 192.168.1.10 } node { name: pve2 nodeid: 2 quorum_votes: 1 ring0_addr: 192.168.1.11 } node { name: pve3 nodeid: 1 quorum_votes: 1 ring0_addr: 192.168.1.12 } } quorum { provider: corosync_votequorum } totem { cluster_name: myClaster config_version: 21 interface { bindnetaddr: 192.168.1.10 ringnumber: 0 } ip_version: ipv4 secauth: on version: 2 }
- Внимание!
- Перво-наперво увеличиваем на 1 значение
config_version
иначе не избежать проблем.
Приводим файл к примерно следующему виду:logging { debug: off to_syslog: yes } nodelist { node { name: pve1 nodeid: 3 quorum_votes: 1 ring0_addr: 10.10.1.10 ring1_addr: 192.168.1.10 } node { name: pve2 nodeid: 2 quorum_votes: 1 ring0_addr: 10.10.1.11 ring1_addr: 192.168.1.11 } node { name: pve3 nodeid: 1 quorum_votes: 1 ring0_addr: 10.10.1.12 ring1_addr: 192.168.1.12 } } quorum { provider: corosync_votequorum } totem { cluster_name: myClaster config_version: 21 interface { bindnetaddr: 10.10.1.10 ringnumber: 0 } interface { bindnetaddr: 192.168.1.10 ringnumber: 1 } ip_version: ipv4 secauth: on version: 2 }
- Пояснение
- Старые интерфейсы остались для обеспечения избыточности (приоритет имеет интерфейс с меньшим ringnumber)
- Шаг четвертый
Заменяем/etc/pve/corosync.conf
на/etc/pve/corosync.conf.new
Спустя пару минут выполнитьmv /etc/pve/corosync.conf.new /etc/pve/corosync.conf
systemctl status corosync ● corosync.service - Corosync Cluster Engine Loaded: loaded (/lib/systemd/system/corosync.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-02-14 07:07:15 EET; 6 days ago Docs: man:corosync man:corosync.conf man:corosync_overview Main PID: 4600 (corosync) Tasks: 9 (limit: 4915) Memory: 151.0M CGroup: /system.slice/corosync.service └─4600 /usr/sbin/corosync -f Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] rx: host: 3 link: 0 is up Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] host: host: 2 (passive) best link: 0 (pri: 1) Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] host: host: 2 (passive) best link: 0 (pri: 1) Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] host: host: 3 (passive) best link: 0 (pri: 1) Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] host: host: 3 (passive) best link: 0 (pri: 1) Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] pmtud: PMTUD link change for host: 2 link: 0 from 469 to 1397 Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] pmtud: PMTUD link change for host: 2 link: 1 from 469 to 1397 Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] pmtud: PMTUD link change for host: 3 link: 0 from 469 to 1397 Feb 20 07:05:50 pve4 corosync[4600]: [KNET ] pmtud: PMTUD link change for host: 3 link: 1 from 469 to 1397 Feb 20 07:05:50 pve4 corosync[4600]: [TOTEM ] Retransmit List: 9ca42
У нас все получилось!
Отличная идея если много нод, но главный вопрос: удвоится ли ширина канала при синхронизации/репликации между нодами (т.е. фактически будут ли использоваться оба интерфейса одновременно) при таких настройках? Мне кажется нет, эти настройки скорее для резервирования и отказоустойчивости синхронизации, а как сделать настройки если стоит подобная задача по расширению пропускной способности канала при наличии 2 сетевых интерфейсов или более на сервере (иными словами бондинг) где установлен Proxmox с роутером Mikrotik?
ОтветитьУдалитьКанал не удвоится - используется только один интерфейс, с более высоким приоритетом (меньшим номером), второй только при недоступности первого. Для расширения канала необходимо агрегировать интерфейсы, и уже агрегированный интерфейс указывать.
УдалитьА пример практической реализации такого агрегирования на сервере Proxmox и маршрутизаторе Mikrotik можете описать в виде отдельной статьи? С бенчмарками такого соединения? Очень уж интересно!
ОтветитьУдалитьЯ даже не представляю зачем там микротик. По всем раскладам 2 гигабитных интерфейса на ноду со всем справляются: на одном сеть кластера, а на втором сеть виртуальных машин. У меня просто нет таких нагрузок. Свободных мощных серверов для того, чтоб сделать стенд и экспериментировать тоже нету. Так что только в случае реорганизации, когда будет свободное для экспериментов железо. Экспериментов на рабочих серверах не поймут - провинция.
УдалитьMikrotik указан потому как на чём же ещё из того что всегда можно легко найти делать бондинг? Я правильно понимаю что нужно на сервере Proxmox сделать из 2 физических сетевых интерфейсов мост и уже его везде использовать? А руководство как сделать бондинг на Mikrotik я найду, у них хорошая документация на сайте.
УдалитьМост это бридж, а бондинг это объединение(агрегирование), поддерживается большинством управляемых свитчей.
УдалитьМикротик, если это роутер жалко простым свитчем юзать.
УдалитьА разве есть простые свитчи, поддерживающие агрегирование каналов (бондинг)? Какие например?
УдалитьЛюбые современные управляемые. Может каждый конкретный свитч не поддерживает все виды бондинга, но обычно openvswitch можно сконфигурировать для работы с хардовым свитчем.
УдалитьДобрый день, Можете помочь с настройкой Proxmox 6.1 - против 5$ в час?
ОтветитьУдалитьЕсли да, мой тел 0970165002 Сергей. почта sdoroshenko@artwebny.com
Что именно делать? у меня не всеобъемлющий опыт.
Удалить