Помилки клієнта SMB після перезавантаження вузла кластеру
Summary: Хоча це нормально для резервного кластера під час перезавантаження вузла, іноді ці помилки можуть з'являтися на вузлах кластера з регулярним інтервалом навіть після того, як усі вузли кластера повністю працюють. ...
Symptoms
Помилки клієнта SMB після перезавантаження вузла кластеру
Оновлення 01.02.2018
- Цю проблему було виправлено в оновленій версії прошивки та драйвера Mellanox CX4
Cause
Опис випуску
У гіперконвергентному кластері, реалізованому за допомогою Dell EMC Microsoft Storage Spaces Direct Ready Nodes з адаптерами Dell EMC PowerEdge R740xd і Mellanox CX4 LX для трафіку зберігання, ви можете побачити помилки SMB клієнта (event id 30803) у переглядачу подій Windows (Журнали додатків і сервісів -> Microsoft -> Windows -> SMB client -> Connectivity) при перезавантаженні вузла кластера.
Хоча це нормально для резервного кластера під час перезавантаження вузла, іноді ці помилки можуть з'являтися на вузлах кластера з регулярним інтервалом навіть після того, як усі вузли кластера повністю працюють. Ця поведінка пов'язана з невдачею у створенні SMB-слухачів для кожного інтерфейсу зберігання у вузлі, який перезавантажувався. Ці помилки з'являються на вцілілих вузлах кластера, а не на вузлі, який перезавантажився. Опис помилки вказує на сервер, до якого клієнт SMB намагається підключитися, а адреса сервера в описі вказує на вузол, який щойно перезавантажився.
У нормальному функціональному стані вузлів кластера, після перезавантаження вузла, при запуску netstat–xan слід показувати слухач IPv4 та IPv6, пов'язаний з кожним інтерфейсом зберігання на вузлі. Наступний вихід netstat.exe збирався на вузлі з двома адаптерами зберігання.
Активна мережаПрямі з'єднання, слухачі, спільні кінцеві точки
Mode IfIndex Type Локальна адреса Іноземна адресаPID
Ядро 4 З'єднання 10.128.100.101:445 10.128.100.100:61476 0
З'єднання ядра 4 10.128.100.101:445 10.128.100.100:62244 0
Ядро 4 З'єднання 10.128.100.101:445 10.128.100.100:61988 0
Ядро 4 З'єднання 10.128.100.101:445 10.128.100.100:62756 0
Ядро 4 З'єднання 10.128.100.101:12541 10.128.100.100:445 0
Ядро 4 З'єднання 10.128.100.101:12797 10.128.100.100:445 0
Ядро 4 З'єднання 10.128.100.101:14077 10.128.100.100:445 0
Ядро 4 З'єднання 10.128.100.101:14333 10.128.100.100:445 0
Ядро 14 З'єднання 10.128.100.133:445 10.128.100.132:27454 0
Ядро 14 З'єднання 10.128.100.133:445 10.128.100.132:27198 0
Ядро 14 З'єднання 10.128.100.133:237510.128.100.132:445 0
Ядро 14 З'єднання 10.128.100.133:62535 10.128.100.132:445 0
Ядро 14 З'єднання 10.128.100.133:62791 10.128.100.132:445 0
З'єднання ядра 14 10.128.100.133:64071 10.128.100.132:445 0
Ядро 14 З'єднання 10.128.100.133:64327 10.128.100.132:445 0
Kernel 4 Listener [fe80::4cae:cb05:4932:f226%4]:445 NA 0
Ядро 4 Слухач 10.128.100.101:445 NA 0
Kernel 14 Слухач 10.128.100.133:445 NA 0
Kernel 14 Listener [fe80::5180:55b6:c0f0:ae8d%14]:445 NA 0
Вихідний перелік 1 - Повністю функціональний стек SMB
Однак, коли ви починаєте бачити помилки SMB-клієнта в кластері, вузол, який перезавантажився, може не мати всіх слухачів, пов'язаних із кожним інтерфейсом зберігання в системі.
Активна мережаПрямі з'єднання, слухачі, спільні кінцеві точки
Mode IfIndex Type Локальна адреса Іноземна адресаPID
Ядро 4 З'єднання 10.128.100.101:445 10.128.100.100:61476 0
З'єднання ядра 4 10.128.100.101:445 10.128.100.100:62244 0
Ядро 4 З'єднання 10.128.100.101:445 10.128.100.100:61988 0
Ядро 4 З'єднання 10.128.100.101:445 10.128.100.100:62756 0
Ядро 4 З'єднання 10.128.100.101:12541 10.128.100.100:445 0
Ядро 4 З'єднання 10.128.100.101:12797 10.128.100.100:445 0
Ядро 4 З'єднання 10.128.100.101:14077 10.128.100.100:445 0
Ядро 4 З'єднання 10.128.100.101:14333 10.128.100.100:445 0
Ядро 14 З'єднання 10.128.100.133:2375 10.128.100.132:445 0
Ядро 14 З'єднання 10.128.100.133:62535 10.128.100.132:445 0
Ядро 14 З'єднання 10.128.100.133:62791 10.128.100.132:445 0
З'єднання ядра 14 10.128.100.133:64071 10.128.100.132:445 0
Ядро 14 З'єднання 10.128.100.133:64327 10.128.100.132:445 0
Kernel 4 Listener [fe80::4cae:cb05:4932:f226%4]:445 NA 0
Ядро 4 Слухач 10.128.100.101:445 NA 0
Вихідний список 2 - SMB-стек без слухача
Отже, у наведеному вище прикладі SMB-клієнт, який намагається підключитися за індексом інтерфейсу 14, зрештою призведе до повідомлень про відмову у з'єднанні та помилок SMB клієнта (event ID 30803), пов'язаних із RDMA
Вплив
Архітектура мережі Dell EMC Microsoft Ready Node рекомендує використовувати два адаптери зберігання на кожен вузол кластера, тож у разі виникнення цієї проблеми у функціональності кластера не виникне. Також адаптер, у якого немає слухача, все ще можна використовувати для передачі RDMA-трафіку. Однак, оскільки на одному з адаптерів зберігання немає слухача, записи з використанням RDMA не можуть бути виконані. Цей адаптер використовує TCP для будь-яких записів або прийому трафіку. Це може призвести до зниження продуктивності запису залежно від навантаження. Під час цієї проблеми немає втрати даних або обмежень функціональності.
У чому проблема?
Це було виявлено як помилку у драйверах Mellanox CX4 LX WinOF2 версій 1.70 і нижче.
Resolution
Кроки для усунення
SMB-слухач можна відновити, перезавантаживши адаптер віртуального зберігання, який не має відповідного SMB-слухача після перезавантаження. Ви можете визначити правильний віртуальний адаптер для перезапуску, виконавши наведені нижче кроки.
Ідентифікуйте адаптер за індексом інтерфейсу
З виходу netstat -xan видно, що відсутній слухач для одного з адаптерів зберігання. Індекс інтерфейсу відсутнього адаптера можна знайти за допомогою cmdlet Get-NetAdapter.
P.S. C:\> Get-NetAdapter
Назва InterfaceDescription ifIndex Status MacAddress LinkSpeed
______________ __ ___________________ ____ ______vEthernet (Storage2) Hyper-V Virtual Ethernet Adapter #3 14 Up 00-15-5D-09-C4-0210 Gbps
vEthernet (Storage1) Hyper-V Virtual Ethernet Adapter #2 4 Up 00-15-5D-09-C4-0110 Gbps
vEthernet (Management) Hyper-V Virtual Ethernet-адаптер 10 Up 00-15-5D-09-C4-0010 Gbps
Ethernet Remote NDIS Сумісний пристрій 9 Відсутній 50-9A-4C-A7-F9-DF 0 bps
NIC2 Intel(R) Ethernet 10G X710 rNDC 6 Відключено 24-6E-96-52-CC-A410 Gbps
NIC4 Intel(R) I350 Гігабітна мережа підключення... 15 Відключений 24-6E-96-52-CC-C3 0 біт/с
NIC3 Intel(R) I350 Gigabit Network Conn... #2 8 Відключено 24-6E-96-52-CC-C2 0 біт/с
NIC1 Intel(R) Ethernet 10G 4P X710/i350 rNDC 13 Відключений 24-6E-96-52-CC-A210 Gbps
СЛОТ 1 Порт 2 Mellanox ConnectX-4 Lx Ethernet Ad... #2 2 Вгору 24-8A-07-59-4C-6910 Gbps
СЛОТ 1 Порт 1 Mellanox ConnectX-4 Lx Ethernet-адаптер 11 Up 24-8A-07-59-4C-6810 Gbps
Визначте та перезапустіть інтерфейс без відповідного слухача
Дивлячись на netstat–xan вихід (показаний у Output Listing 2), можна побачити, що інтерфейс з індексом 14 не має пов'язаного слухача. З cmdlet Get-NetAdapter видно, що індекс інтерфейсу 14 — це віртуальний адаптер vEthernet (Storage2).
Примітка. Назва цього мережевого адаптера може відрізнятися залежно від того, як ви назвали адаптери зберігання в керуючій ОС.
Тепер можна перезапустити інтерфейс із відсутнім слухачем.
Restart-NetAdapter –Назва 'vEthernet (Storage2)'
Після завершення цього процесу ви можете перевірити netstat –xan, щоб переконатися, що слухач створений. Цей процес може зайняти кілька хвилин. Після створення слухача вузли кластера почнуть нормально спілкуватися через RDMA, і нові помилки клієнта SMB перестануть з'являтися у переглядачу подій.