Ошибка Rsync при передаче файлов с ACLs

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

У меня есть сервер Debian, который использует rsync для передачи файлов в nfs4-ресурсе (Truenas).
Nfs-ресурс монтируется с помощью systemd:

192.168.88.162:/mnt/pool3/nfsdataset  /mnt/systemd/nfs/nfsdataset   nfs4 nofail,x-systemd.automount 0 0

Команда rsync такая:rsync -a -A -P testfile /mnt/systemd/nfs/nfsdataset
Когда rsync передает файлы с acl, возникает эта ошибка:

sending incremental file list
testfile
              0 100%    0,00kB/s    0:00:00 (xfr#1, to-chk=0/1)
rsync: [receiver] set_acl: sys_acl_set_file(.testfile.FS8M3I, ACL_TYPE_ACCESS): Operation not supported (95)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7]

Nfs4 включен в наборе данных Truenas.
Возможно ли передавать файлы с acl в nfs-ресурсе?

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

Проблема, с которой вы столкнулись, связана с ошибкой при передаче файлов с использованием списков контроля доступа (ACL) через rsync на сервере Debian с шарой NFS4, развернутой на TrueNAS. Это довольно распространенная проблема, когда механизмы работы ACL на источнике и на целевой стороне не совпадают из-за ограничений протокола NFS или его конфигурации.

Теория (Theory):

Rsync – это мощный инструмент для синхронизации файлов и директорий между двумя системами, который также поддерживает сохранение метаданных файлов, таких как владельцы, права доступа и ACL. Однако, когда дело касается работы через сети файловых систем, как NFS, возникают дополнительные сложности.

NFSv4 включает собственную поддержку ACL, отличающуюся от ACL POSIX, которые более традиционно применяются в системах UNIX/Linux. Основная проблема заключается в том, что не все серверы NFS корректно поддерживают ACL POSIX, или их поддержка может быть не полностью реализована.

По сообщению об ошибке, возникает несоответствие между клиентом, который пытается применить ACL, и сервером, который не может или не настроен для поддержки этого типа ACL.

Пример (Example):

Ошибка, которую вы наблюдаете, указывает на то, что система пытается выполнить системный вызов set_acl, который возвращает ошибку "Операция не поддерживается" (Operation not supported). Это говорит о том, что либо сервер NFS, либо его конфигурация не поддерживает ACL POSIX, которые клиент rsync пытается передать. Проблема может быть как в TrueNAS, так и в конфигурации самого клиента.

Применение (Application):

Для решения этой проблемы можно предпринять несколько шагов:

  1. Проверка поддержки ACL на сервере TrueNAS:

    • Убедитесь, что поддержка ACL включена в настройках файловой системы на TrueNAS. Хотя NFSv4 по умолчанию поддерживает свои ACL, нужно проверить, правильно ли сервер сконфигурирован для работы с таким типом метаданных.
  2. Конфигурация клиента на основе Debian:

    • На стороне Debian убедитесь, что клиентская часть NFS имеет необходимые возможности для передачи и обработки ACL POSIX.
    • Прежде всего, проверьте поддержку ядра для NFS и ACL, выполнив следующую команду:
      zcat /proc/config.gz | grep NFS
      zcat /proc/config.gz | grep ACL
    • Также убедитесь, что используемая версия rsync свежая и поддерживает все необходимые опции для работы с ACL.
  3. Тестирование и отладка:

    • Попробуйте использовать rsync без опции -A, чтобы проверить, является ли передача файлов без ACL успешной. Это позволит изолировать проблему именно в области управления ACL, если базовая передача файлов работает корректно.
    • Проведите тестирование с более простыми ACL, по возможности сведя к минимуму количество атрибутов, чтобы определить, на каком этапе возникает ошибка.
  4. Настройка ACL на стороне TrueNAS:

    • Если проблема все же в конфигурации TrueNAS, вам может потребоваться настроить службу NFS так, чтобы она корректно интерпретировала и применяла ACL, или оставить только родные ACL NFSv4, которые будут управлять доступом после передачи.
  5. Документация и поддержка сообщества:

    • Прочтите документацию TrueNAS и rsync для получения более точной информации о совместимости и управления ACL.
    • Присоединитесь к форумам или сообществу TrueNAS и Debian, чтобы спросить у других пользователей о возможных решениях и аналогичных проблемах.

Важно помнить, что взаимодействие двух различных систем всегда требует настройки и отладки, особенно в случае работы с правами доступа и списками контроля, которые могут отличаться между платформами. Если проблема не разрешится вышерассмотренными путями, возможно, стоит рассмотреть обращение в техподдержку TrueNAS или изучение обновлений, которые могут исправлять несовместимости ACL в будущем.

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

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