Намедни пришлось конфигурировать Veritas Cluster Server на двух Windows 2012R2 в виртуальной среде. Как уже было сказано в заголовке, за сеть отвечал Open vSwitch, соединения между виртуальными машинами (на разных хостах) реализованы посредством GRE туннеля с MTU 1500, соответственно ограничением со стороны виртуалок являлось MTU ниже дефолного (в данном случае 1400). С точки зрения сетевого адаптера Windows это возможно настроить в cmd:
C:\>netsh interface ipv4 set subinterface "Ethernet 2" mtu=1400
и увидеть результат командой:
C:\>netsh interface ipv4 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
------ --------------- --------- --------- -------------
4294967295 1 0 0 Loopback Pseudo-Interface 1
1400 1 18959 23055 Ethernet
1400 1 17807 21903 Ethernet 2
Однако LLT использует mtu, прописанный в файле llttab. После настройки графической утилитой VCS Configuration Wizard ноды "подружить" не удаётся.
Выглядит это следующим образом.
Одна из нод при старте стабильно зависает в состоянии REMOTE_BUILD:
C:\>hastatus -sum
-- SYSTEM STATE
-- System State Frozen
A WIN20012 RUNNING 0
A WIN20112 REMOTE_BUILD 0
Это состояние подразумевает, что нода пытается получить и применить конфигурацию с другой ноды. В рабочей конфигурации это состояние длится недолго, здесь же оно бесконечно.
GAB при этом ничего интересного не говорит:
C:\>gabconfig -a
GAB Port Memberships
=======================================
Port a gen 383b01 membership 01
Port c gen 383b03 membership 01
Port h gen 383b04 membership 01
А вот LLT-линки не поднимаются:
C:\>lltstat -nnv configured
LLT node information:
Node State Links
* 0 WIN20012 OPEN 2
1 WIN20112 OPEN 2
Статистика также показывает наличие исходящего трафика и практическое отсутствие входящего на обеих нодах:
C:\>lltstat
LLT statistics:
132 Snd data packets
1125 Snd retransmit data
7335 Snd connect packets
1623 Snd independent ACKs
17 Snd piggyback ACKs
0 Snd independent NACKs
0 Snd piggyback NACKs
65 Snd loopback packets
28 Rcv data packets
28 Rcv data packets in-sequence
1 Rcv out of window
0 Rcv duplicates
0 Rcv datagrams dropped
0 Rcv multiblock data
2 Snd chained header
LLT errors:
0 Rcv not connected
0 Rcv unconfigured
0 Rcv bad dest address
0 Rcv bad source address
0 Rcv bad generation
0 Rcv no buffer
0 Rcv malformed packet
0 Rcv wrong length packet
0 Rcv bad SAP
0 Rcv bad STREAM primitive
0 Rcv bad DLPI primitive
0 Rcv DLPI error
0 Snd not connected
0 Snd no buffer
0 Snd stream flow drops
0 Snd no links up
0 Rcv bad checksum
0 Rcv bad udp/ether source address
65 Snd loopback packets
0 Rcv out of sequence
Имея знание нашей сетевой конфигурации, указываем MTU для LLT. Для этого редактируем файл llttab (по умолчанию располагающийся на виндовсах в C:\Program Files\Veritas\comms\llt\llttab.txt ) на обеих нодах следующим образом:
#было:
...
#link <tag-name> <device> <node-range> <link-type> <udp port> <MTU> <IP-address> <bcast-address>
link Adapter2 2E:DE:AD:BE:EF:00 - ether - -
link Adapter3 3E:DE:AD:BE:EF:00 - ether - -
...
#стало:
...
#link <tag-name> <device> <node-range> <link-type> <udp port> <MTU> <IP-address> <bcast-address>
link Adapter2 2E:DE:AD:BE:EF:00 - ether - 1400
link Adapter3 3E:DE:AD:BE:EF:00 - ether - 1400
...
Перезагружаем ноды, проверяем состояние:
C:\>lltstat -nvv configured
LLT node information:
Node State Link Status Address
* 0 WIN20012 OPEN
Adapter2 UP 2E:DE:AD:BE:EF:00
Adapter3 UP 3E:DE:AD:BE:EF:00
1 WIN20112 OPEN
Adapter2 UP 2E:DE:AD:BE:EF:01
Adapter3 UP 3E:DE:AD:BE:EF:01
C:\>hastatus -sum
-- SYSTEM STATE
-- System State Frozen
A WIN20012 RUNNING 0
A WIN20112 RUNNING 0
Линки поднялись, ноды успешно стартанули.