2gusia (2gusia) wrote,
2gusia
2gusia

Category:

Переносим папку Plex на отдельный датасет

Разработчики Plex на четвёрочку подготовились к работе с действительно большими медиатеками. И хранят метаданные не в базе данных, а как мириады мелких файлов. Нет, их там не 100500, а гораздо, гораздо больше. У меня, к примеру, набралось на 53 гигабайта. Ещё в мае я свою папку plexdata перенёс на отдельный датасет. С тех пор работает, так что работоспособность гарантирую. Эта операция пригодится нам в дальнейшем. Прежде всего - при переносе plex из chroot. Но возможны и другие преимущества. Датасету запросто можно изменять точку монтирования (чем мы сегодня и займёмся), назначать более подходящие для для его данных настройки. Датасет удобно бекапить по zfs send-receive. Его даже можно перенести на SSD, если сильно захочется для ускорения работы (мне пока хватает - но вдруг?)

1. Создаём датасет.
NB Нам его в вебгуе видеть не обязательно, поэтому импорт можно не делать, но лучше - сделать. Напомню - Disks > ZFS > Configuration

nas4free ~/ root~$ zfs create -o utf8only=on -o aclinherit=restricted -o aclmode=discard -o atime=off -o casesensitivity=sensitive -o compression=lz4 -o dedup=off -o sync=standard Pool/plexdata

Вводить в одну строку, если надо разбить - знаками \
После этого знака на строке не должно быть ничего, даже пробела, продолжаем на следующей

Проверяем
nas4free ~/ root~$ zfs list | grep plex
Pool/plexdata 205K 2.25T 205K /mnt/Pool/plexdata


(можно и в вебгуе, но главную операцию подмены папки всё равно понадобится делать в командной строке - так что себя изводить ;)

2. Нам датасет Plexdata в вебгуе видеть не обязательно, поэтому импорт можно не делать, но лучше - сделать. Напомню - Disks > ZFS > Configuration

3. Смотрим, где у нас Plex держит данные.
От корня той машины, где Plex исполняется стандартно
/usr/local/plexdata
Но исполняю я его не в хост машине, а в chroot. Который у меня расположен в
/mnt/Pool/Ext/Finch
(У вас может быть в другом месте)
Вместе получается, если считать от корня хост машины
/mnt/Pool/Ext/Finch/usr/local/plexdata

Давайте проверим
nas4free ~/ root~$ ls /mnt/Pool/Ext/Finch/usr/local/plexdata
./ ../ Plex Media Server/


Всё в порядке.

4. Копируем. Я сразу скажу, что операция - на много часов. Поэтому советую через tmux, можно будет окошко Putty закрыть. Но можно и напрямую - но придётся сохранять сессию.

nas4free ~/ root~$ cp -a /mnt/Pool/Ext/Finch/usr/local/plexdata/ /mnt/Pool/plexdata

NB Обратите внимание на / в конце первого аргумента. Иначе получим вложенную папку. А без ключа -a потеряем права и вообще всё развалится.

5. По окончании копирования останавливаем finch, переименовываем старую папку

nas4free ~/ root~$ finch stop
Stopping finch.
Stopping cron.
Waiting for PIDS: 3857.
Stopping plexmediaserver.
Waiting for PIDS: 3840.
nas4free ~/ root~$ cd /mnt/Pool/Ext/Finch/usr/local
nas4free local/ root~$ mv plexdata plexdata_bak


Подменяем папку путём монтирования нашего датасета на это меcто (команда в одну строку!), проверяем
nas4free plexdata/ root~$ zfs set mountpoint=/mnt/Pool/Ext/Finch/usr/local/plexdata Pool/plexdata
nas4free plexdata/ root~$ zfs list |grep plexdata
Pool/plexdata 65.0G 2.25T 50.0G /mnt/Pool/Ext/Finch/usr/local/plexdata


перезапускаем finch (finch start) и проверяем, что работает, зайдя в вебгуй Plex

PS теперь советую оставить на несколько дней, убедиться, что всё OK. Если да - plexdata_bak потом можно убить. На Pool/plexdata настроить автоснапшоты
Tags: chroot, jail, nas, nas4free, plex, zfs
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments