Приветствую, заядлый читатель, первый раз пишу! Я около года экспериментировал с Proxmox, и благодаря руководству adresner'а по Intel 13-го поколения с аппаратным транскодированием Plex, у меня неплохо работает медиасервер Plex. Мои потребности изменились, и мне пришлось сделать апгрейд оборудования. Так я решил собрать новую систему в том же корпусе, но с новыми, более ёмкими жесткими дисками, большим объемом оперативной памяти, более новой версией lxc и обновлением VM с Truenas core до scale. Я узнал, что с версии 8.2 аппаратное транскодирование стало намного проще. Мне потребовалось некоторое время, чтобы собрать всю необходимую информацию из Reddit, здесь и из других случайных мест, поэтому я хотел поделиться опытом настройки этой штуки практически с нуля и подробно описать шаги, которые я предпринял для её запуска. Надеюсь, это поможет другим новичкам, как я.
Спецификации оборудования:
* Asus PRO WS W680-ACE IPMI
* Intel 12900K
* 128 ГБ ECC RAM
* Proxmox 8.4.1
Инструкция:
1. Установил VM Truenas Scale 25.04.1 с 4 виртуальными ядрами и 32 ГБ оперативной памяти. Скорее всего, я увеличу объем оперативной памяти по мере увеличения ёмкости хранения. Сейчас у меня около 30 ТБ медиа.
2. Передал PCIE HBA во VM, чтобы мои жесткие диски отображались в Truenas.
3. Создал наборы данных для моего медиаконтента Plex и SMB-шары.
4. На хосте PVE создал lxc ubuntu 24.04-2 для медиасервера Plex. В предыдущем lxc у меня было 8 ГБ оперативной памяти, и я часто замечал, что при подключении более чем к двум устройствам, использование оперативной памяти почти достигало максимума. Поэтому в этот раз я выделил 16 ГБ. И сделал его привилегированным.
5. На хосте PVE - Datacenter - Storage, добавил SMB/CIFS-шару для VM Truenas, которую я создал на предыдущем шаге.
6. На хосте PVE - Shell, nano /etc/pve/lxc/xxx.conf для lxc, который я создал на шаге 4, и добавил следующее:
* `lxc.apparmor.profile = unconfined` (иначе lxc 24.04-2 просто не запустится).
* `mp0: /mnt/pve/whateveryounamedyourstorageonstep5/,mp=/mnt/plex/` (bind mounts для медиа, хранящегося в Truenas, внутри PMS lxc).
7. Запустил lxc и подключился к консоли. Вывел `/etc/group` и обратил внимание на GID видео и рендеринга. У меня было video 44, render 993. Затем перешел в `/mnt/plex/` внутри lxc, чтобы убедиться, что все данные из Truenas доступны с помощью bind mounts, созданных на шаге 6, и это действительно так. Затем выключил lxc.
8. На хосте PVE - Shell, `apt install -y intel-opencl-icd` (устанавливает драйверы GPU на хосте, и это необходимо сделать перед шагом 9).
9. На хосте PVE - Shell, `ls -l /dev/dri` и обратил внимание, что у меня есть `card1`, `card2` и `renderD128`. Это устройства iGPU, установленные на шаге 8. У вас, скорее всего, будут другие, в зависимости от вашего процессора.
10. На GUI PMS lxc - Resources, добавил эти устройства следующим образом:
* `/dev/dri/card1,gid=44`
* `/dev/dri/card2,gid=44`
* `/dev/dri/renderD128,gid=993`
Я не уверен, нужны ли все эти устройства, но я их добавил. Кто-нибудь может подсказать, правильно ли я сделал.
11. Затем запустил PMS lxc и подключился. Перешел в `/dev/dri` чтобы убедиться, что устройства, которые я передал на шаге 10, перечислены. Они были. Похоже, что папка dri должна быть 755, а устройства внутри папки dri — 660. Мне не пришлось вносить это изменение.
12. Затем установил и подготовил plexmediaserver:
* `apt install curl gnupg -y`
* `curl | sudo gpg --dearmor -o /usr/share/keyrings/plex-archive-keyring.gpg`
* `echo "deb [signed-by=/usr/share/keyrings/plex-archive-keyring.gpg] public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list`
* `apt update && apt install -y plexmediaserver`
13. После завершения установки я заметил, что в последних строках сообщалось о следующем, и был в восторге:
* `PlexMediaServer install: Processor: 12th Gen Intel® Core i9-12900K`
* `PlexMediaServer install: Intel i915 Hardware: Found`
* `PlexMediaServer install: Nvidia GPU card: Not Found`
14. Подключился к своему медиасерверу и проверил транкодер. Там было все необходимое для HDR tone mapping, аппаратного ускорения, кодирования HVEC и т.д.
15. Затем выключил lxc, смонтировал обе старые и новые lxc для plexmediaserver, чтобы получить доступ к файлам внутри, и перенес все из старой `/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/*` в новый медиасервер в той же директории. Мне пришлось сначала удалить все в новой директории. И мне пришлось изменить владельца всех файлов в этой директории на `plex:systemd-journal`, чтобы сервер запустился. И всё! Я снова онлайн.
Спецификации оборудования:
* Asus PRO WS W680-ACE IPMI
* Intel 12900K
* 128 ГБ ECC RAM
* Proxmox 8.4.1
Инструкция:
1. Установил VM Truenas Scale 25.04.1 с 4 виртуальными ядрами и 32 ГБ оперативной памяти. Скорее всего, я увеличу объем оперативной памяти по мере увеличения ёмкости хранения. Сейчас у меня около 30 ТБ медиа.
2. Передал PCIE HBA во VM, чтобы мои жесткие диски отображались в Truenas.
3. Создал наборы данных для моего медиаконтента Plex и SMB-шары.
4. На хосте PVE создал lxc ubuntu 24.04-2 для медиасервера Plex. В предыдущем lxc у меня было 8 ГБ оперативной памяти, и я часто замечал, что при подключении более чем к двум устройствам, использование оперативной памяти почти достигало максимума. Поэтому в этот раз я выделил 16 ГБ. И сделал его привилегированным.
5. На хосте PVE - Datacenter - Storage, добавил SMB/CIFS-шару для VM Truenas, которую я создал на предыдущем шаге.
6. На хосте PVE - Shell, nano /etc/pve/lxc/xxx.conf для lxc, который я создал на шаге 4, и добавил следующее:
* `lxc.apparmor.profile = unconfined` (иначе lxc 24.04-2 просто не запустится).
* `mp0: /mnt/pve/whateveryounamedyourstorageonstep5/,mp=/mnt/plex/` (bind mounts для медиа, хранящегося в Truenas, внутри PMS lxc).
7. Запустил lxc и подключился к консоли. Вывел `/etc/group` и обратил внимание на GID видео и рендеринга. У меня было video 44, render 993. Затем перешел в `/mnt/plex/` внутри lxc, чтобы убедиться, что все данные из Truenas доступны с помощью bind mounts, созданных на шаге 6, и это действительно так. Затем выключил lxc.
8. На хосте PVE - Shell, `apt install -y intel-opencl-icd` (устанавливает драйверы GPU на хосте, и это необходимо сделать перед шагом 9).
9. На хосте PVE - Shell, `ls -l /dev/dri` и обратил внимание, что у меня есть `card1`, `card2` и `renderD128`. Это устройства iGPU, установленные на шаге 8. У вас, скорее всего, будут другие, в зависимости от вашего процессора.
10. На GUI PMS lxc - Resources, добавил эти устройства следующим образом:
* `/dev/dri/card1,gid=44`
* `/dev/dri/card2,gid=44`
* `/dev/dri/renderD128,gid=993`
Я не уверен, нужны ли все эти устройства, но я их добавил. Кто-нибудь может подсказать, правильно ли я сделал.
11. Затем запустил PMS lxc и подключился. Перешел в `/dev/dri` чтобы убедиться, что устройства, которые я передал на шаге 10, перечислены. Они были. Похоже, что папка dri должна быть 755, а устройства внутри папки dri — 660. Мне не пришлось вносить это изменение.
12. Затем установил и подготовил plexmediaserver:
* `apt install curl gnupg -y`
* `curl | sudo gpg --dearmor -o /usr/share/keyrings/plex-archive-keyring.gpg`
* `echo "deb [signed-by=/usr/share/keyrings/plex-archive-keyring.gpg] public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list`
* `apt update && apt install -y plexmediaserver`
13. После завершения установки я заметил, что в последних строках сообщалось о следующем, и был в восторге:
* `PlexMediaServer install: Processor: 12th Gen Intel® Core i9-12900K`
* `PlexMediaServer install: Intel i915 Hardware: Found`
* `PlexMediaServer install: Nvidia GPU card: Not Found`
14. Подключился к своему медиасерверу и проверил транкодер. Там было все необходимое для HDR tone mapping, аппаратного ускорения, кодирования HVEC и т.д.
15. Затем выключил lxc, смонтировал обе старые и новые lxc для plexmediaserver, чтобы получить доступ к файлам внутри, и перенес все из старой `/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/*` в новый медиасервер в той же директории. Мне пришлось сначала удалить все в новой директории. И мне пришлось изменить владельца всех файлов в этой директории на `plex:systemd-journal`, чтобы сервер запустился. И всё! Я снова онлайн.
