SMB записи не удались, система считает файл директорией

Вопрос или проблема

У меня есть новый NAS-сервер, который я тестирую. Это в основном CentOS 7.5.1804 с картами RAID Areca и множеством жестких дисков, а также томами XFS.

Случайные тесты копирования часто проходят успешно. Но когда я выполняю большие копии данных с нашего SAN, они неизменно в конечном итоге завершаются сбоем следующим образом:

rsync -ah  --exclude="._*" --exclude=".DS_Store" --quiet --progress /Volumes/BEST* /Volumes/SAN_Backups/BEST/
rsync: writefd_unbuffered failed to write 32768 bytes [sender]: Broken pipe (32)
rsync: write failed on "/Volumes/NEXIS_Backups/BEST/BEST_Media/FROM CLIENT/091224_BONUS CLEAN/02_YG_MAR_v2.mov": Is a directory (21)
rsync: connection unexpectedly closed (4116 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /AppleInternal/Library/BuildRoots/46298ee5-4a1c-11ef-a181-1aec23608739/Library/Caches/com.apple.xbs/Sources/rsync/rsync/io.c(453) [sender=2.6.9]

writefd_unbuffered не удалось записать, разрыв канала (32).
Запись не удалась “Это каталог (21)” для некаталогического файла
Соединение неожиданно закрывается, ошибка rsync код 12.

  • Я запускаю rsync на Mac с Apple Silicon, как вы заметили. Mac
    подключен к нашему SAN, а также к этому серверу CentOS через SMB.
  • Не нужно говорить, что “02_YG_MAR_v2.mov” — это обычный файл, а не
    каталог.
  • Если я повторно запущу команду, она правильно обработает файл с ошибкой
    и завершится на другом файле тем же образом. Повторяй и повторяй.
  • Запуск той же команды rsync, с теми же исходными данными, на одной и той же
    системе, на другом сервере NAS с CentOS (ZFS), не вызывает этих
    ошибок. Этот сервер совершенно другой, он просто подтверждает мое утверждение
    о том, что проблема в этом новом NAS, а не в клиенте Mac,
    коде rsync, исходных данных или SAN.
  • Пока мы пытались уничтожить и воссоздать файловую систему XFS
    (включая группу томов и логический том) и проверили контроллер RAID на наличие ошибок. Никаких изменений.

Есть какие-нибудь идеи? Я не нашел никакой информации в Интернете о том, что операции с файлами завершаются неудачей, когда последний файл ошибочно принимается за каталог…

Ответ или решение

Ситуация, описанная вами, связана с непредсказуемыми сбоями при копировании больших объемов данных с использованием rsync на ваш новый NAS-сервер на базе CentOS 7.5, работающий с файловой системой XFS. Рассмотрим возможные причины данной проблемы и способы ее решения.

Проблемы с SMB и «неправильным» определением файла

Вы упомянули, что получаете ошибки, указывающие на то, что файл воспринимается как каталог. Это может быть связано с несколькими факторами, включая:

  1. Кеширование SMB: Услуга SMB может кэшировать информацию о файлах и каталогах. Если кэширование неправильно обработано, это может вызвать сбой в определении типа файла. Попробуйте отключить кэширование, добавив соответствующие параметры в конфигурацию SMB на сервере.

  2. Ошибка в драйверах: Поскольку вы работаете с Apple Silicon, возможно, проблема связана с несовместимостью драйвера SMB, используемого на Mac, и серверного программного обеспечения. Возможно обновление операционной системы macOS или использование альтернативного клиента для подключения к SMB может помочь.

  3. Сетевые сбои: Поскольку ошибка Broken pipe указывает на проблемы с сетевым соединением, проверьте настройки сети, убедитесь, что скорость соединения стабильна. Также стоит проверить MTU (Maximum Transmission Unit) — неправильные настройки могут вызывать фрагментацию пакетов и сбои при передаче.

Анализ зоопарка оборудования

Различия между NAS-серверами, на которых происходит копирование, могут быть значительными. Хотя ваш ZFS-сервер работает корректно, XFS на новом NAS может иметь специфические конфигурации или ограничения. См. рекомендации по оптимизации:

  • Убедитесь, что установленны последние обновления для CentOS и пакетного менеджера, относящиеся к службам сетевого обмена (SMB).
  • Проверьте, что параметры монтирования для XFS настроены оптимально для файловых операций через SMB (например, отключение опций, повышающих безопасность, но замедляющих доступ, таких как no_acl).

Рекомендации по тестированию и устранению неполадок

  1. Логи системы: Включите детализированное логирование как на сервере, так и на клиенте. Это поможет отследить события, которые происходят во время сбоя и может дать подсказки о причине проблемы.

  2. Параметры rsync: Включите дополнительные параметры в команду rsync, чтобы получить более детальную отладочную информацию. Например, дополнительные флаги -vv (два v для более подробного вывода).

  3. Переход на другой протокол: Если проблемы продолжаются, рассмотрите возможность использования NFS вместо SMB для передачи данных, особенно если ваш NAS и клиент находятся в одной сети.

  4. Мониторинг системы: Убедитесь, что состояние дисков в RAID массиве и объемов на XFS корректно, без ошибок. Используйте утилиты, такие как smartctl для проверки состояния дисков.

Заключение

Ваши проблемы с rsync и определением типов файлов на новом NAS могут быть связаны с различными факторами, начиная от сетевых сбоев и заканчивая несовместимостями с файловой системой. Тщательный анализ конфигураций, использование логирования для диагностики и проверка системного состояния помогут выявить и устранить причины сбоя. Не забывайте оставаться в курсе обновлений как для серверных, так и клиентских систем, чтобы улучшить совместимость и надежность работы.

Оцените материал
Добавить комментарий

Капча загружается...