The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"NFS как место хранения файлов для Seafile и др."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Файловые системы, диски / Linux)
Изначальное сообщение [ Отслеживать ]

"NFS как место хранения файлов для Seafile и др."  +/
Сообщение от Vadim_Shemail (ok), 20-Апр-25, 11:58 
Даже не знаю о чем вопрос, но по порядку... Я дитя Windows, с недавних пор осваивающий Proxmox и мир Linux, поэтому, для начала опишу структуру окружения, т.к. схожие проблемы возникают с разными платформами: Nextcloud, Seafile и др. Подозреваю, что корень кроется в непонимании идеологии Linux и разграничении прав при работе с файлами.

- Proxmox
  - VM "TrueNAS"
    - NFS: /mnt/fastData/SeaFile_storage/data
    - /etc/exports:

"/mnt/fastData/SeaFile_storage/data"\
*(sec=sys,rw,no_subtree_check,no_all_squash,no_root_squash,anonuid=0,anongid=0)

  - VM "Seafile" (seafile in docker compose)
    - /etc/fstab

192.168.8.100:/mnt/fastData/SeaFile_storage/data /mnt/seafile_data nfs defaults 0 0

В итоге, на виртуальной машине Seafile в папке mnt:

vadmin@seafile:~$ ls -al /mnt
итого 13
drwxr-xr-x  4 root    root    4096 мар 30 21:15 ./
drwxr-xr-x 19 root    root    4096 янв 18 02:26 ../
drwxrwxrwx  2    3010    3010    2 апр 20 15:10 seafile_data/

В статье "Setup Seafile cluster with NFS" (https://manual.seafile.com/11.0/deploy_pro/setup_seafile_clu...) сказано, что всего-то надо переместить файлы на новое место и создать символические ссылки. Но я не могу этого сделать. Проблема в том, что при переносе файлов seafile_data, которые имеют права root:root в папке /mnt/seafile_data они становятся nobody:nogroup и копирование прекращается, т.к. нет прав. Изменить права или владельцев файлов внутри /mnt/seafile_data я не могу. Даже из под рута, я не могу в этой папке создать файл с рутовыми правами.
При манипулировании опций монтирования в файле /etc/fstab (uid,guid), папка перестает монтироваться, некоторые изменения замечаю при изменении опций на стороне truenas в файле: /etc/exports. Пробовал:

"/mnt/fastData/SeaFile_storage/data"\
*(sec=sys,rw,no_subtree_check,anonuid=3010,anongid=3010)

На форумах пугают, что при некоторых опциях, можно получить рутовые права на файлы. У меня не удалось, не могу создать файл с рутовыми правами.

Если указать путь создания файлов для Seafile в файле: docker-compose.yml

volumes:
#      - ./seafile-data:/shared
      - /mnt/seafile_data:/shared

Программа не стартует и файлы не создаются

Аналогичные проблемы возникли с Nextcloud, который также запускается с локальным хранилищем, но стоит его перенатравить на NFS, как все ломается.
Как правильно монтировать сетевые хранилища так, чтобы права файлов были такими, какие они там, куда их смонтировали? Может NFS не вариант, лучше перейти на Samba?
Можно конечно изменить размер диска виртуальной машины и настроить динамическое изменение его физического размера. Я ведь не первый с таким сталкиваюсь. Как вы решаете такие задачи?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "NFS как место хранения файлов для Seafile и др."  +/
Сообщение от Vadim_Shemail (ok), 20-Апр-25, 13:03 
Идея заключается в том, чтобы на виртуальных машинах с небольшими виртуальными же дисками в 32Гб были установлены такие сервера как: Seafile, Nextcloud, Filebrowser, различные медиасервера. Но данные хранились в едином пространстве на дисках TrueNAS, которой отдан контроллер SATA с хоста, организованы программные raid-6 в виде raidz2. В будущем аналогично будет создана VM для видеосервера, хранящего видео с IP-камер. В этой парадигме клиентской программе не важно где хранятся ее данные. Немного смущает такая вещь как backup, ведь если его делать отдельно для данных и базы данных, они могут оказаться несогласованными. Но это уже совсем другая история.

Как я понял, и на клиенте и на сервере работают только uid и gid, с сервера на клиента NFS передается только uid и gid. При создании файла с некими параметрами на клиенте, этот файл с этими же идентификаторами и правами создается на сервере. И если номера сильно не совпадают и иногда пересекаются, возникают разные нежелательные ситуации. Но ведь можно же сделать транслируемый сетевой путь "корнем" и тогда даже с рутовыми правами подняться выше этого пути не выйдет. В моем случае папка: /mnt/fastData/SeaFile_storage/data на сервере станет корнем для клиента.
Поэтому, я согласен, чтобы на клиенте создавались файлы root:root и с теми же uid:gid на сервере truenas.

До монтирования я могу папке /mnt/seafile_data на клиенте задать любые свойства, после монтирования владелец устанавливается по непонятным мне правилам и изменить его не может даже root. С правами доступа похожая ситуация.

Ответить | Правка | Наверх | Cообщить модератору

2. "NFS как место хранения файлов для Seafile и др."  +/
Сообщение от Vadim_Shemail (ok), 21-Апр-25, 04:27 
Вот пример структуры файлов программы Immich:
immich@immich:~/Immich-app/library$ ls -al
итого 100
drwxrwxrwx 8   3003   3003    8 янв 19 02:58 ./
drwxr-xr-x 4 immich immich 4096 янв 18 21:36 ../
drwxrwxrwx 2 immich immich   17 апр 21 02:00 backups/
drwxrwxrwx 4 immich immich    5 мар 16 13:49 encoded-video/
drwxrwxrwx 2 immich immich    3 янв 19 17:23 library/
drwxrwxrwx 2 immich immich    3 янв 19 17:23 profile/
drwxrwxrwx 6 immich immich    7 мар 16 13:49 thumbs/
drwxrwxrwx 6 immich immich    7 мар 16 13:49 upload/

Т.е. все файлы создаются от имени пользователя. Возможно, это происходит потому, что программа установлена в домашнем директории, а seafile, nextcloud, и др. я начал устанавливать в каталог /opt, но меняя владельца на одноименного с программой пользователя.
Т.е. я создаю VM, в ней docker compose от рута или админа с правами sudo. Создаю одного пользователя без прав sudo: immich, seafile, nextcloud и т.д. От админа монтирую NFS, устанавливаю необходимые библиотеки. Далее, файл compose.yaml редактирую уже от имени локального пользователя и от него же запускаю docker compose. Со многими программами это сработало. Где-то монтирую NFS, а в контейнерах приходится встраивать сетевой диск, что наверное почти тоже самое. Но тут пошла череда программ, где все работает иначе. Программы создают рутовые файлы и вся идеология рушится.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру