Вопрос или проблема
У меня есть новый 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 и «неправильным» определением файла
Вы упомянули, что получаете ошибки, указывающие на то, что файл воспринимается как каталог. Это может быть связано с несколькими факторами, включая:
-
Кеширование SMB: Услуга SMB может кэшировать информацию о файлах и каталогах. Если кэширование неправильно обработано, это может вызвать сбой в определении типа файла. Попробуйте отключить кэширование, добавив соответствующие параметры в конфигурацию SMB на сервере.
-
Ошибка в драйверах: Поскольку вы работаете с Apple Silicon, возможно, проблема связана с несовместимостью драйвера SMB, используемого на Mac, и серверного программного обеспечения. Возможно обновление операционной системы macOS или использование альтернативного клиента для подключения к SMB может помочь.
-
Сетевые сбои: Поскольку ошибка
Broken pipe
указывает на проблемы с сетевым соединением, проверьте настройки сети, убедитесь, что скорость соединения стабильна. Также стоит проверить MTU (Maximum Transmission Unit) — неправильные настройки могут вызывать фрагментацию пакетов и сбои при передаче.
Анализ зоопарка оборудования
Различия между NAS-серверами, на которых происходит копирование, могут быть значительными. Хотя ваш ZFS-сервер работает корректно, XFS на новом NAS может иметь специфические конфигурации или ограничения. См. рекомендации по оптимизации:
- Убедитесь, что установленны последние обновления для CentOS и пакетного менеджера, относящиеся к службам сетевого обмена (SMB).
- Проверьте, что параметры монтирования для XFS настроены оптимально для файловых операций через SMB (например, отключение опций, повышающих безопасность, но замедляющих доступ, таких как
no_acl
).
Рекомендации по тестированию и устранению неполадок
-
Логи системы: Включите детализированное логирование как на сервере, так и на клиенте. Это поможет отследить события, которые происходят во время сбоя и может дать подсказки о причине проблемы.
-
Параметры
rsync
: Включите дополнительные параметры в командуrsync
, чтобы получить более детальную отладочную информацию. Например, дополнительные флаги-vv
(дваv
для более подробного вывода). -
Переход на другой протокол: Если проблемы продолжаются, рассмотрите возможность использования NFS вместо SMB для передачи данных, особенно если ваш NAS и клиент находятся в одной сети.
-
Мониторинг системы: Убедитесь, что состояние дисков в RAID массиве и объемов на XFS корректно, без ошибок. Используйте утилиты, такие как
smartctl
для проверки состояния дисков.
Заключение
Ваши проблемы с rsync
и определением типов файлов на новом NAS могут быть связаны с различными факторами, начиная от сетевых сбоев и заканчивая несовместимостями с файловой системой. Тщательный анализ конфигураций, использование логирования для диагностики и проверка системного состояния помогут выявить и устранить причины сбоя. Не забывайте оставаться в курсе обновлений как для серверных, так и клиентских систем, чтобы улучшить совместимость и надежность работы.