PowerScale OneFS: NFS натискає EIO при написанні з увімкненим дзеркаленням програмного журналу (SJM)
Summary: Клієнти мережевої файлової системи (NFS), які записують у PowerScale OneFS у версії 9.11, можуть мати рідкісні збої при записі, які проявляються як помилки введення або виведення (EIO). ...
Symptoms
Існує нова функція OneFS 9.11 під назвою Software Journal Mirroring (SJM), поєднана з функцією OneFS 9.7 під назвою Direct Write (NCIO).
Детальніше про SJM дивіться: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
Для отримання додаткової інформації про NCIO дивіться: https://infohub.delltechnologies.com/en-au/l/powerscale-best-practices-for-semiconductor-eda-design-environments/direct-read-and-direct-write/
Очікується, що ця проблема буде рідкісною (10 з мільярда операцій). Наступна помилка в журналі повідомлень вузла PowerScale підтверджує, що проблема виникла під час часової позначки. Часова мітка помилки на стороні кластера повинна відповідати часовій мітці помилки на стороні клієнта:
2026-03-03T17:00:28.344642-05:00 isilon-2(id2) /boot/kernel.amd64/kernel: [txn_participant.c:5806](pid 82988="kt: dxt17")(tid=106414) txn_p_dl_block_budrecs() txn(0x2:0x133bcad0d) requested from devid:2 not found
Також визначте, чи помилки EIO почалися після оновлення до OneFS 9.11, і чи почали з'являтися такі помилки у файлах журналу:
# grep txn_p_dl_ /var/log/messages | cut -d":" -f 2- | cut -d" " -f 8 | sort | uniq -c
5112 txn_p_dl_block_budrecs()
3672 txn_p_dl_deltas_budrecs()
# grep txn_p_dl_ /var/log/messages | cut -d":" -f 2- | cut -d" " -f 8 | sort | uniq -c
5200 txn_p_dl_block_budrecs()
3712 txn_p_dl_deltas_budrecs()
Cause
Щоб проблема виникла, і SJM, і NCIO мають бути увімкнені на ураженому кластері. Ці особливості спричиняють расову умову, коли потік може втратити доступ до необхідного ресурсу.
Щоб визначити, чи увімкнено SJM на кластері, виконайте наступну команду:
isi storagepool nodepools list -v | egrep "Name|SJM"
Щоб визначити, чи увімкнено NCIO, виконайте наступні команди. Обидві команди повертаються '1' на всіх вузлах, коли NCIO увімкнено.
isi_for_array -s sysctl efs.lbm.ncio.write.enable isi_for_array -s sysctl efs.bam.bsw_send_direct
Приклади:
(Confirms SJM is enabled) Isilon-1# isi storagepool nodepools list -v | egrep "Name|SJM" Name: f200_3.8tb-ssd_48gb SJM Enabled: Yes (Confirms NCIO is enabled. Both sets of output return '1' for all nodes, indicating NCIO is enabled) Isilon-1# isi_for_array -s sysctl efs.lbm.ncio.write.enable Isilon-1: efs.lbm.ncio.write.enable: 1 Isilon-2: efs.lbm.ncio.write.enable: 1 Isilon-3: efs.lbm.ncio.write.enable: 1 Isilon-1# isi_for_array -s sysctl efs.bam.bsw_send_direct Isilon-1: efs.bam.bsw_send_direct: 1 Isilon-2: efs.bam.bsw_send_direct: 1 Isilon-3: efs.bam.bsw_send_direct: 1
Resolution
Обхідний шлях — вимкнути або SJM, або NCIO. Не обов'язково вимикати обидва.
Вимкнення SJM знижує захист даних і резервність журналу файлової системи, наступним чином:
Кожному вузлу в пулі вузлів із підтримкою SJM динамічно призначається унікальний Buddy, а мережеве з'єднання між вузлами оптимізовано для масового потоку даних з низькою затримкою. Схема автоматичного відновлення SJM може використовувати дзеркальний вміст журналу Buddy для відновлення журналу Primary node у разі відмови, уникаючи дорогого процесу SmartFailing вузла. Ця схема відновлення, відома як SyncBack, також може застосовуватися вручну, якщо несправний журнал-пристрій потрібно фізично замінити.
Джерело: https://infohub.delltechnologies.com/en-uk/l/powerscale-onefs-smartflash/software-journal-mirroring/
Вимкнення NCIO може обмежити або знизити продуктивність запису приблизно на 20% на флеш-вузлах.
Щоб вимкнути SJM. Це потрібно робити для кожного пулу вузлів:
isi storagepool nodepools modify <nodepool name> --sjm-enabled=false
Щоб вимкнути NCIO:
isi_sysctl_cluster efs.lbm.ncio.write.enable=0
isi_sysctl_cluster efs.bam.bsw_send_direct=0
Вимкнення цих функцій може вплинути на кластер. Це слід застосовувати лише у випадку, якщо це впливає на робочий процес кластера. Звертайтеся до технічної підтримки Dell, якщо виникнуть питання чи занепокоєння.