Всем привет! Не планировал писать что-то подобное, но один из подписчиков столкнулся с проблемой подключения новых Volume в Portainer`е и попросил меня помочь с настройкой. Кратко напомню всю схему работы нашей системы на базе 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-шару (скрины приводить не буду, слишком уж просто), а вот в настройках указываем интересующего нас пользователя:
В нашем случае мы сообщили системе, что все подключения к нашей 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 , а на этом у меня пока всё, с Вами был Народный ДОобЗОР, до новых встреч!)