PowerScale OneFS. NFS достигает EIO при записи с включенным зеркальным отображением журналов ПО
Summary: Клиенты сетевой файловой системы (NFS), выполняющие запись в PowerScale OneFS версии 9.11, могут испытывать редкие сбои операций записи, которые проявляются как ошибки ввода-вывода (EIO). ...
Symptoms
В OneFS 9.11 появилась новая функция Software Journal Mirroring (SJM) в сочетании с функцией OneFS 9.7, известной как Direct Write (NCIO).
- Дополнительные сведения о SJM см. в документе Dell Зеркалирование журнала ПО PowerScale OneFS SmartFlash
- Дополнительные сведения о NCIO см. в документе Dell PowerScale: передовые практики для сред проектирования полупроводниковых САПР с прямым чтением и прямой записью
Ожидается, что эта проблема будет редкой (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
Также определено, что после модернизации до OneFS 9.11 начались ошибки EIO. В файлах журналов начали появляться следующие ошибки:
# 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 динамически назначается уникальный приятель, а внутреннее сетевое подключение между узлами оптимизировано для массового потока данных с низкой задержкой.
- Схема автоматического восстановления SJM может использовать зеркальное содержимое журнала Buddy для повторного формирования журнала основного узла в случае сбоя, избегая дорогостоящего процесса SmartFail узла. Эту схему восстановления, известную как SyncBack, также можно применить вручную, если неисправное устройство журнала требуется физически заменить.
- Источник: документ Dell Зеркалирование журнала PowerScale OneFS SmartFlash Software
Отключение 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 .