22 февраля 2023
4676

                Перед настройкой кластера горячего резервирования, необходимо определиться с интерфейсами и адресацией, предварительно активировав привилегированный режим командой enable. Согласно особенностям технологии ViPNet, для работы кластера для каждого интерфейса необходимо задать три адреса – активный (одинаков для обоих нод), а также два пассивных (по одному на каждую ноду). Так, в сетевом окружении активная нода выполняет весь функционал, а на её интерфейсе назначен активный адрес. Пассивная нода в то же время обменивается по «перемычке» данными с пассивной, а на её интерфейсе установлен пассивный адрес.

                Далее в документе описан процесс настройки кластера горячего резервирования на координаторах HW. Будем считать, что на рассматриваемом координаторе активны два интерфейса и перемычка:

eth0                Link encap:Ethernet HWaddr 2c:4d:54:44:e0:db
                    inet addr:10.26.0.6 Bcast:10.26.0.7 Mask:255.255.255.248                           
                    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                    RX packets:739776664 errors:0 dropped:0 overruns:0 frame:0
                    TX packets:457633194 errors:0 dropped:0 overruns:0 carrier:0                     
                    collisions:0 txqueuelen:1000
                    RX bytes:771871261233 (718.8 GiB) TX bytes:153842604923 (143.2 GiB)

                    Configured by DHCP: no
                    Class: access

                    Speed: 1000Mb/s
                    Duplex: Full
                    Auto-negotiation: on
                    Link detected: yes

eth2                Link encap:Ethernet  HWaddr 2c:4d:54:44:e0:dd
                    inet addr:10.26.0.129  Bcast:10.26.0.255  Mask:255.255.255.128
                    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                    RX packets:774748067 errors:0 dropped:18036 overruns:0 frame:0
                    TX packets:1224628499 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:321838218086 (299.7 GiB)  TX bytes:1354957831714 (1.2 TiB)

                    Configured by DHCP: no
                    Class: access
                     
                    Speed: 1000Mb/s
                    Duplex: Full
                    Auto-negotiation: on
                    Link detected: yes

eth3                Link encap:Ethernet  HWaddr 2c:4d:54:44:e0:de
                    inet addr:192.168.26.1  Bcast:192.168.26.255  Mask:255.255.255.0
                    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                    RX packets:7196981638 errors:0 dropped:0 overruns:0 frame:0
                    TX packets:5887061013 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:9083365329329 (8.2 TiB)  TX bytes:6181904989913 (5.6 TiB)
                    
                    Configured by DHCP: no
                    Class: access
                    
                    Speed: 1000Mb/s
                    Duplex: Full
                    Auto-negotiation: on
                    Link detected: yes

                На основе этих данных настраивается конфигурационный файл кластера (failover).
                Для этого необходимо выключить службу отказоустойчивости командой failover stop, активировать режим кластера командой  failover config mode cluster, затем войти в редактор конфигурационного файла командой failover config edit. Настройка для первой ноды кластера выглядит следующим образом (жирным шрифтом выделены строки, которые необходимо изменять / добавлять):

                    [network]
                    checktime = 30                           
                    timeout = 4
                    activeretries = 5
                    channelretries = 5                      
                    synctime = 5
                    fastdown = yes
                    beforeifconf = /sbin/change_route.sh before
                    afterifconf = /sbin/change_route.sh after

                    [channel]
                    device = eth0
                    ident = iface-0
                    activeip = 10.26.0.6/29
                    passiveip = 21.26.0.6/0
                    testip = 10.26.0.1
                    checkonlyidle = yes

                    [channel]
                    device = eth2
                    ident = iface-2
                    activeip = 10.26.0.129/25
                    passiveip = 21.26.0.129/0
                    testip = 127.0.0.1
                    checkonlyidle = no

                    [sendconfig]
                    activeip = 192.168.26.2
                    sendtime = 60
                    device = eth3
                    config = yes
                    keys = yes
                    journals = yes
                    port = 10090

                    [misc]
                    activeconfig = /etc/iplirpsw
                    passiveconfig = /etc/iplirpsw
                    maxjournal = 30 #days
                    reboot = yes
                   
                    [debug]
                    debuglevel = 3
                    debuglogfile = syslog:daemon.debug

                    [events]

                Первым делом необходимо в самой верхней секции [network] добавить две строчки, которых по умолчанию нет (см. выше beforeifconf, afterifconf). Данные параметры используют стандартный скрипт /sbin/change_route.sh, регистрируя активную в определённый момент времени ноду кластера, а также логируя переключения. Без этих строчек ноды будут регулярно и циклически перезагружаться.

                Далее необходимо настроить интерфейсы. Параметры device и ident необходимо заполнять в соответствии с номерами интерфейсов так, как это показано выше в конфигурационном файле. В параметре activeip указывается адрес интерфейса, по которому осуществляется доступ к координатору в сети (обычный сетевой адрес), а также маска подсети. Основываясь на нём,  следует видоизменить этот адрес (как правило меняя первую цифру в октете на другую, например, вместо 10 проставить 20), при этом маску следует указать нулевую. Параметр testip предполагают проверку адреса шлюза по умолчанию на активной ноде, в данном случае шлюз находится за интерфейсом eth0 и его адрес – 10.26.0.1. При отсутствии доступности шлюза, выполняется переключение ноды. Неправильная настройка этого параметра может привести к циклической перезагрузке обоих нод. При невозможности обеспечения такой проверки или другим причинам, зачастую в параметре testip указывается петля 127.0.0.1.

                Наконец, необходимые изменения нужно внести в секцию [sendconfig]. Параметр activeip в [sendconfig] указывает адрес перемычки соседней ноды. Таким образом, адрес 192.168.26.2 назначен не на настраиваемой в данный момент первой ноде, а на соседней, которую потребуется настроить позднее. Далее необходимо убедиться, что параметр [device] указывает тот интерфейс, на котором развёрнута перемычка (в данном случае eth3).

                После выполнения этих действий можно переходить на вторую ноду кластера, где подняты и скоммутированы те же интерфейсы, а на перемычке назначен другой адрес, доступный из той же подсети. Выполнив те же три команды failover stop, failover config mode cluster, failover config edit, открывается конфигурационный файл второй ноды. Необходимо отметить, что активный адрес всегда один, а пассивных два и они различаются на разных нодах для одного интерфейса. Наиболее стандартный приём для настройки второй ноды – копирование конфигурационного файла первой ноды и добавление к последнему октету пассивного адреса единицы (например, пассивный адрес первой ноды – 21.26.0.6, значит второй ноды – 21.26.0.7). Наконец, следует в секции [sendconfig] исправить адрес соседней ноды - 192.168.26.1. Ниже показан конфигурационный файл второй ноды (жирным шрифтом выделены строки, которые необходимо изменять).

                    [network]
                    checktime = 30                           
                    timeout = 4
                    activeretries = 5
                    channelretries = 5                      
                    synctime = 5
                    fastdown = yes
                    beforeifconf = /sbin/change_route.sh before
                    afterifconf = /sbin/change_route.sh after

                    [channel]
                    device = eth0
                    ident = iface-0
                    activeip = 10.26.0.6/29
                    passiveip = 21.26.0.7/0
                    testip = 10.26.0.1
                    checkonlyidle = yes

                    [channel]
                    device = eth2
                    ident = iface-2
                    activeip = 10.26.0.129/25
                    passiveip = 21.26.0.130/0
                    testip = 127.0.0.1
                    checkonlyidle = no

                    [sendconfig]
                    activeip = 192.168.26.1
                    sendtime = 60
                    device = eth3
                    config = yes
                    keys = yes
                    journals = yes
                    port = 10090

                    [misc]
                    activeconfig = /etc/iplirpsw
                    passiveconfig = /etc/iplirpsw
                    maxjournal = 30 #days
                    reboot = yes
                   
                    [debug]
                    debuglevel = 3
                    debuglogfile = syslog:daemon.debug

                    [events]

                На этом настройка кластера завершена. Последним моментом является выполнение команды failover start на обоих нодах кластера. Какая-то из нод обязательно уйдёт в перезагрузку, также возможна перезагрузка обоих нод, причём несколько раз. Необходимо выждать некоторое время, после чего убедиться, что ноды больше не перезагружаются.

                С помощью команды failover show info можно вывести на экран статус кластера горячего резервирования. Таким образом выглядит правильно функционирующий кластер (соседняя нода должна отображаться, строчка выделена жирным). Зеркальная картина должна быть на соседней ноде при выполнении той же команды.

                   
  *local
*remote
failover mode *active *passive
failover uptime *15d  7:47 *15d  7:46
total cpu *22% *2%
total memory *2014032 kB *2014032 kB
free memory *1632852 kB *1662048 kB
failover state *works *works
failover cpu *0% *0%
iplir state *works *works
iplir cpu *3% *2%
mftp state *works *works
mftp cpu *34% *0%
alg state *works *stopped
alg cpu *0% *0%
webgui state *works *stopped
webgui cpu *0% *0%

                Для уверенности, что ноды переключаются корректно, следует отправить в перезагрузку активную ноду или переключить её в пассивный режим командой failover start passive, после чего убедиться, что соседняя нода стала активной. Если ноды правильно переключаются, значит кластер настроен верно.
                Примечание. В дополнении к этому, если на координаторе может быть поднят транковый интерфейс или на существующий интерфейс назначена другая адресация (в ViPNet в первом случае обозначается интерфейс 1.72, где цифра до точки – номер интерфейса eth, после точки – идентификатор VLAN; во втором случае – 2:0, где цифра до двоеточия – номер интерфейса eth; после двоеточия – порядковый номер, начиная с нуля). В таком случае данные интерфейсы также необходимо прописывать в конфигурационных файлах. В любом случае, все интерфейсы за исключением перемычки должны быть упомянуты в конфигурационном файле failover в секции [channel]. Далее показано, каким образом следует называть интерфейсы в конфигурационном файле, если они являются транковыми (первый случай) или дополнительными (второй случай):

                    [channel]]
                    device = eth2:0                           
                    ident = iface-2:0

                    ...

                    [channel]
                    device = eth1.72                      
                    ident = iface-1.72

Интересное
Как эффективно бороться со спамом
11 июля 2023
КИИ информационная безопасность
4 февраля 2022
Технология VLAN
20 июня 2023
Позвоните нам!
Ваш заказ готов к оформлению
Личный кабинет
Вам будет доступна история заказов, управление рассылками, свои цены и скидки для постоянных клиентов и прочее.
Ваш логин
Ваш пароль
Работаем для вас пн-пт с 9:00 до 18:00
г. Москва, ул. Барклая, д. 13, стр. 1
Интернет-магазин Комрунет
г. Москва, ул. Барклая, д.13, стр.1
+74951059152sale@komrunet.ru