Найти тему
Народный ДОобЗОР

Как подключить NFS-шару TrueNas Scale в виртуальную машину с Portainer (на примере Jellyfin)

Оглавление

Всем привет! Не планировал писать что-то подобное, но один из подписчиков столкнулся с проблемой подключения новых Volume в Portainer`е и попросил меня помочь с настройкой. Кратко напомню всю схему работы нашей системы на базе TrueNas Scale:

Структура работы сервера, где TrueNas Scale используется лишь в качестве хранилища данных и гипервизора
Структура работы сервера, где TrueNas Scale используется лишь в качестве хранилища данных и гипервизора

На виртуальной машине с ОС Ubuntu (или Debian, не принципиально) установлены нужные нам контейнеры, управляемые через Portainer (графическая среда управления и администрирования). TrueNas Scale мы используем только в качестве хранилки, расшаривая нужные нам датасеты по NFS, пробрасывая шару в виртуалку.

Если вдруг Вы попали в эту статью случайно, Вам непонятна половина информации (либо вся), рекомендую к просмотру серию видеороликов по TrueNas Scale:

А для всех тех, кто уже "в теме", мы продолжаем...

1 этап - готовим датасет к расшариванию

В одном из вышеуказанных роликов я говорил, что нам необходимо сопоставить пользователя виртуальной машины (UID 1000) с пользователем внутри Трунаса. На рисунке выше видно, что пользователем ВМ Ubuntu является "admin" с UID 1000, его мы сопоставляем с пользователем "Ubuntu" внутри TrueNas Scale, который является владельцем Dataset2. Так как в сегодняшнем примере я буду пробрасывать датасет, который уже используется jellufin`ом от TrueCharts (прости Господи, всё руки не дойдут его заменить на нормальный), его владельцем уже является пользователь multimedia, группа apps. Чтобы ничего не ломать, я просто сопоставлю пользователя своей виртуалки с пользователем multimedia. Для этого мы создаём новую NFS-шару (скрины приводить не буду, слишком уж просто), а вот в настройках указываем интересующего нас пользователя:

Mapall User - позволяет указать пользователя внутри TrueNas Scale, от имени которого будут совершаться действия с расшаренным датасетом
Mapall User - позволяет указать пользователя внутри TrueNas Scale, от имени которого будут совершаться действия с расшаренным датасетом

В нашем случае мы сообщили системе, что все подключения к нашей NFS-шаре следует выполнять от имени multimedia, от группы apps. Впрочем, если Вы не делаете такой костыль как я, проще создать нового пользователя с одноименной группой (мороки будет меньше).

2 этап - монтируем шару в виртуальную машину

Подключаемся по ssh к нашей виртуалке и создаём новую точку монтирования. В моём случае я решил создать каталог /data_from_truenas/jellyfin_data , в который примонтировал нужную мне шару. Формат команды следующий: sudo mount IP-адрес-TrueNasScale:/mnt/имя_пула/имя_датасета /директория/точки_монтирования/ . В моем случае эта команда выглядит так:

Монтирование шары в датасет
Монтирование шары в датасет

Далее, как обычно, проверяем успешность примонтированных файлов через ls -l.

3 этап - подключение нового Volume в Portainer`е

Как оказалось, самый сложный этап. Заходим в Портейнер, открываем уже развёрнутый контейнер (или начинаем разворачивать новый, не принципиально), и в настройках конфигурации stack`а спускаемся в самый низ, где расположена вкладка Volumes. В разделе Volume mapping указываем тип "Bind" (связка), и прописываем путь к нашему каталогу, к которому примонтирована NFS-шара:

Указываем каталог монтирования
Указываем каталог монтирования

Всё, заходим в Jellyfin и выбираем месторасположение библиотек.

4 этап - решение проблем

Если что-то пошло не так, файлы недоступны, каталог не монтируется - проверяйте настройки прав доступа! Как показывает практика, 99% проблем заключаются в неверных настройках permission. Проверить это достаточно просто: заходим в наш датасет и даём полные права на чтение, запись, выполнение для категории "other", из nfs-шары убираем всевозможные пароли (если устанавливали). Заработало? Отлично, постепенно меняйте права доступа и анализируйте, на каком этапе возникли проблемы. Да, для новичков не всегда понятна сходу логика прав, поэтому придётся потратить время. Скажу даже больше: прежде чем подключать проброшенную NFS-шару в какое-либо приложение, попробуйте из-под виртуалки открыть текстовые документы, создать какой-нибудь файл в этом каталоге. Не удаётся? Значит, ошибка в настроенных правах доступа.

Заключение

Это моя первая статья по TrueNas Scale, и как показала практика - писать на эту тему сложнее, чем записывать видео. Скриншоты получаются мелкие, плохо читаемые. Последовательность не прослеживается, а перегружать статью огромным количеством скриншотов... знаете, как-то не хочется. Слова благодарности и конструктивную критику буду рад услышать в комментариях!

Кстати, не забудьте вступить в наш чат в Телеграмм по TrueNas Scale: https://t.me/+ECN5bMk8isc1MGI6 , а на этом у меня пока всё, с Вами был Народный ДОобЗОР, до новых встреч!)