Dell Unity: Дублювання імен хостів спричиняють проблеми з продуктивністю в середовищі NFSv4 (коригується користувачем)
Summary: Клієнти NFSv4.1 з однаковим ім'ям можуть часто зазнавати завершення та відтворення сесій. Це відбувається тому, що протокол NFSv4.1 використовує ім'я хоста як частину унікального ідентифікатора клієнта (Client Owner). Коли кілька хостів використовують один і той самий ідентифікатор, сервер зберігання (наприклад, Dell Unity) сприймає їх як одного й того ж клієнта, що намагається відновити з'єднання, що призводить до циклу «флепінгу сесії» та потенційних зависань у вводі/виведенні. ...
Symptoms
Клієнтська сторона: Користувачі повідомляють про значне зниження продуктивності NFS, зокрема високу затримку під час роботи з малими файлами.
Сторона Unity: Журнал показує, що сервер NAS часто спрацьовує checkReplay логіка, що означає, що він отримує запити з ідентифікаторами послідовності (seqid), які, на його думку, вже були оброблені.
2026/03/23-09:22:31.571765 3 7FCE8B3CF705 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x2
2026/03/23-09:22:31.571948 177 7FCE8AB4F703 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x3
2026/03/23-09:22:31.571969 15 7FCE8AE7F701 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 1 seqid 0x1
2026/03/23-09:22:33.950467 94K 7FCE8E57B703 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x1
2026/03/23-09:22:33.950614 142 7FCE8E24F702 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x2
2026/03/23-09:22:33.950780 159 7FCE8DEDA705 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x3
2026/03/23-09:22:33.950793 8 7FCE8E22A702 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 1 seqid 0x1
2026/03/23-09:22:36.025980 169K 7FCE8C9FD704 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x1
2026/03/23-09:22:36.026291 305 7FCE8C9B9704 sade:NFS: 3:[NAS_server] checkReplay: sequence replay slotid 0 seqid 0x3
Мережа: Захоплення пакетів ідентифікують колізію Client ID між кількома різними IP-адресами (10.10.1.8 та 10.10.1.3). Обидва хости намагаються зареєструватися на сервері NFS, використовуючи однаковий ідентифікатор клієнта. Це призводить до гоночної умови, коли один клієнт анулює сесію іншого, що призводить до помилок послідовності та 1-секундної затримки відновлення, що погіршує продуктивність.
42855 2026-03-20 02:34:12.752931 10.10.1.3 10.10.1.50 NFS 294 V4 Call (Reply In 42856) CLOSE StateID: 0x97d3
42856 2026-03-20 02:34:12.753069 10.10.1.50 10.10.1.3 NFS 182 V4 Reply (Call In 42855) CLOSE
42857 2026-03-20 02:34:12.753542 10.10.1.50 10.10.1.3 NFS 562 V4 Reply (Call In 42837) OPEN StateID: 0x3dba
42858 2026-03-20 02:34:12.753583 10.10.1.3 10.10.1.50 TCP 66 976 → 2049 [ACK] Seq=14332461 Ack=1382561 Win=26688 Len=0 TSval=2749783070 TSecr=3786939377
42859 2026-03-20 02:34:12.753635 10.10.1.3 10.10.1.50 NFS 330 V4 Call (Reply In 42860) SETATTR FH: 0xac0cc5de
42860 2026-03-20 02:34:12.753718 10.10.1.50 10.10.1.3 NFS 114 V4 Reply (Call In 42859) SEQUENCE Status: NFS4ERR_BADSESSION
42861 2026-03-20 02:34:12.753980 10.10.1.3 10.10.1.50 NFS 186 V4 Call (Reply In 42862) DESTROY_SESSION
42862 2026-03-20 02:34:12.754047 10.10.1.50 10.10.1.3 NFS 114 V4 Reply (Call In 42861) DESTROY_SESSION Status: NFS4ERR_BADSESSION
42863 2026-03-20 02:34:12.754111 10.10.1.3 10.10.1.50 NFS 298 V4 Call (Reply In 42864) CREATE_SESSION
42864 2026-03-20 02:34:12.754171 10.10.1.50 10.10.1.3 NFS 114 V4 Reply (Call In 42863) CREATE_SESSION Status: NFS4ERR_SEQ_MISORDERED
42865 2026-03-20 02:34:12.755288 10.10.1.50 10.10.1.8 NFS 246 V4 Reply (Call In 42852) EXCHANGE_ID
42866 2026-03-20 02:34:12.755357 10.10.1.8 10.10.1.50 NFS 298 V4 Call (Reply In 42867) CREATE_SESSION
42867 2026-03-20 02:34:12.755544 10.10.1.50 10.10.1.8 NFS 194 V4 Reply (Call In 42866) CREATE_SESSION
42868 2026-03-20 02:34:12.755606 10.10.1.8 10.10.1.50 NFS 218 V4 Call (Reply In 42869) PUTROOTFH | GETATTR
42869 2026-03-20 02:34:12.755706 10.10.1.50 10.10.1.8 NFS 182 V4 Reply (Call In 42868) PUTROOTFH | GETATTR
42870 2026-03-20 02:34:12.755775 10.10.1.8 10.10.1.50 NFS 210 V4 Call (Reply In 42871) RECLAIM_COMPLETE
42871 2026-03-20 02:34:12.755855 10.10.1.50 10.10.1.8 NFS 158 V4 Reply (Call In 42870) RECLAIM_COMPLETE
42872 2026-03-20 02:34:12.755926 10.10.1.8 10.10.1.50 NFS 290 V4 Call (Reply In 42873) GETATTR FH: 0xc7011572
42873 2026-03-20 02:34:12.756013 10.10.1.50 10.10.1.8 NFS 362 V4 Reply (Call In 42872) GETATTR
42874 2026-03-20 02:34:12.757262 10.10.1.8 10.10.1.50 NFS 290 V4 Call (Reply In 42875) GETATTR FH: 0x3bc92b95
42875 2026-03-20 02:34:12.757347 10.10.1.50 10.10.1.8 NFS 362 V4 Reply (Call In 42874) GETATTR
42876 2026-03-20 02:34:12.795850 10.10.1.3 10.10.1.50 TCP 66 976 → 2049 [ACK] Seq=14333077 Ack=1382705 Win=26688 Len=0 TSval=2749783113 TSecr=3786939378
42877 2026-03-20 02:34:12.799280 10.10.1.8 10.10.1.50 TCP 66 988 → 2049 [ACK] Seq=78001 Ack=49629 Win=1188 Len=0 TSval=2328275863 TSecr=986324573
43224 2026-03-20 02:34:13.779818 10.10.1.3 10.10.1.50 NFS 354 V4 Call (Reply In 43232) EXCHANGE_ID
43232 2026-03-20 02:34:13.782406 10.10.1.50 10.10.1.3 NFS 246 V4 Reply (Call In 43224) EXCHANGE_ID
Cause
Якщо два або більше клієнтів (поширених у клонованих віртуальних машинах або контейнерних середовищах) мають однакове ім'я хоста:
- Ведучий А встановлює сесію.
- Хост B підключається з тим самим ім'ям хоста; сервер припускає, що хост A перезавантажився або знову підключився.
- Сервер «припиняє» сесію Хоста А, щоб дозволити Хосту Б підключитися.
- Ведучий А намагається відновити свою сесію, запускаючи Ведучого Б.
Це призводить до безперервного циклу скидань сесій і повторів ID послідовності. Це призводить до серйозного погіршення продуктивності, оскільки клієнт повинен призупинити всі операції вводу/виводу на обов'язковий період відновлення (зазвичай 1 секунду) перед повторним запуском EXCHANGE_ID повернути свою сесію.
Resolution
Система Unity працює за задумом і відповідає стандартам NFSv4.1/4.2 RFC. Сервер коректно завершує сесії, коли з'являється дублікат Client ID (рядок власника), щоб запобігти пошкодженню даних.
Щоб розв'язати колізію, кожен клієнт повинен мати глобально унікальний ідентифікатор. Переконайтеся, що ім'я хоста унікальне для кожного клієнта, який отримує доступ до спільного контенту:
hostnamectl set-hostname <unique_hostname>
Перезапустіть сервіс NFS або перезавантажте клієнт, щоб переконатися, що новий ідентифікатор буде використаний для наступного EXCHANGE_ID виклик серверу Unity.