Créer un serveur Plex 1U sur Ubuntu 20.04 LTS
Plex est un outil vraiment très intéressant. Il permet de gérer très efficacement et rapidement une bibliothèque de films et de permettre la lecture de celle-ci via votre téléviseur ou encore votre smartphone. Pour fonctionner, il faut d'un côté un Plex Server et de l'autre un Plex Client.
Le server, c'est cet environnement qui sera chargé de gérer vos films (les fichiers) et d'en télécharger toutes les données métadatas afin de vous permettre de parcourir une bibliothèque agréable aux yeux mais pas seulement. Si vous souhaitez par exemple regarder un film via votre smartphone en dehors de votre réseau local, c'est le Plex Server qui se chargera de transcoder le fichier vidéo (ex: 4k -> 480p).
Le Plex Client quant à lui fonctionne comme un lecteur vidéo classique qui est capable d'afficher la biliothèque d'un Plex Server et d'en lire son contenu. L'un des avantages de Plex est de proposer un client pour énormément de supports (iOS, Android, Tyzen (TV Samsung), Web,…).
Vous l'aurez compris, pour avoir un système Plex efficiant, il faut une bonne homogénéité entre le Plex Server et le Plex Client. J'ai personnellement testé plusieurs configurations possibles tant au niveau du client que du serveur et j'en suis arrivé à un système qui fonctionne très correctement. Je ne ferai pas, dans ce post, les avantages et les inconvénients de chacune de ces configurations testées tout simplement car je pense que si j'ai décidé de changer mon système pour arriver là ou j'en suis aujourd'hui, c'est parce que le reste ne me convenait pas et je pars du principe qu'il ne vous conviendra pas non plus.
Le client Plex
Mon choix s'est porté vers le Nvidia Shield TV Pro tout simplement pour sa puissance. En effet, l'appareil embarque un Android TV ultra rapide et ultra fluide qui n'est absolument pas négligé lorsque vous devez parcourir des bibliothèques contenant des miliers de titres. De plus, sa télécommande est très agréable dans une utilisation de tous les jours. Je vous invite à regarder la vidéo comparative des meilleurs clients Plex en 2021 au lien suivant: https://www.youtube.com/watch?v=qLxjL2NxZy8
Le serveur Plex
Disposant déjà d'un NAS Synology pour le côté stockage de fichiers (films), ce serveur me sert de machine de puissance pour traiter le transcodage des fichiers lus à distance. Celui-ci m'a couté un peu plus de 1300eur au moment où j'écris ces quelques lignes et en voici les spécificités:
- Boitier: Inter-Tech 1U Case
- Alimentation : SilverStone FX350-G
- Carte mère: Asrock Rack X570D4I-2T
- RAM: Textorm SO-DIMM 64 Go (4x 16 Go) DDR4 2666 MHz CL19
- Processeur: AMD Ryzen 5 3400G
- Carte Graphique: Nvidia P400
- Disques durs (système): 2 x SSD Samsung 860 250Go
- Ventilateur de CPU: SilverStone SST-NT07-115X
Un des "must have" de ce projet était le boitier au format 1U. Ayant une baie réseau dans laquelle je pouvais accueillir cette machine, je voulais, sans compromis, que la configuration rentre dans un boitier 1U. Outre d'autres qualités comme 2 ports réseau 10Gbits, la carte mère dispose d'un système IPMI qui me permet de pouvoir la gérer (et donc la machine) à distance (redémarrer, on/off, afficher l'écran via un navigateur,…). Elément plus rare dans une configuration "serveur", une petite carte graphique de 2Go qui contrairement au reste, ne me sert que pour Plex, vous le comprendrez en lisant la suite. Enfin j'utilise 2 disques dur SSD pour le système en Raid 1 software afin de créer une redondance (si l'un des deux crash, il est possible de booter sur l'autre qui est un mirroir du premier).
Cela peut sembler très cher et "overkill" mais rassurez-vous, je ne m'en sers pas que pour Plex. En effet j'ai plusieurs machines virtuelles qui tournent sur cette machine (un serveur web, un serveur minecraft, un serveur gitlab, un serveur Docker) et je pars du principe que qui peut le moins peut le plus. De plus je souhaitais faire un investissement à long terme en pariant sur du matériel évolutif, je suis servi.
Installation Ubuntu 20.04 LTS
Sur ce matériel, nous allons installer Ubuntu 20.04 LTS. Pour ce faire, j'ai installé cette version d'Ubuntu grâce à BalenaEtcher sur une clé USB que j'ai dédiée au serveur. Ainsi j'ai pu reformater rapidement mon système quelques fois avant de trouver mon point de départ idéal.
Les étapes d'installation sont assez simples, en voici les grandes lignes:
- Choix de la langue
- Choix de la configuration clavier
- Configuration Réseau
Disposant de 2 ports réseau, j'ai décidé d'en désactiver un des deux ne me sentant pas apte à me lancer dans de la configuration de load balancing etc. Choix que je ne regrette pas car tout se passe à merveille jusque maintenant. - Configuration des disques
Comme je vous l'ai dit, j'utilise un Raid 1 software pour la redondance de mon système. Si vous disposez donc de 2 disques similaires et désirez mettre en place un même Raid il suffit, à cette étape, de:- Formater les deux disques
- Les utiliser tous les deux en "Boot device" ce qui créera une partition EFI sur les disques.
- Ajouter une partition "GPT - Unmounted" sur les deux disques qui doivent avoir la même taille. Ces partitions seront utilisées pour le Raid.
- Créer un Raid software en sélectionnant les 2 partitions juste créées
- Ajouter au moins une partition GPT au raid créé
- Félicitactions, votre Raid est créé !
- Configuration d'un profil utilisateur
- Configuration SSH
Oui ! - Installation d'autres services
Personnellement, je n'installe rien d'autre...
Super ! Notre machine dispose maintenant de son système d'exploitation et d'un Raid 1. Avant d'installer Plex, nous allons devoir effectuer quelques opérations pour configurer correctement notre carte graphique. Commençons par l'installation de quelques paquets qui nous seront utiles:
sudo apt install cifs-utils nfs-client git dkms build-essential linux-headers-generic
sudo reboot
Après le redémarrage du serveur, il faudra désactiver "Nouveau Kernel" afin d'installer les drivers Nvidia.
Désactiver Nouveau Kernel
Sans cette opération il ne vous sera pas possible d'installer le driver de votre carte graphique Nvidia P400.
sudo vim /etc/modprobe.d/blacklist.conf
Ajoutez les lignes suivantes au fichier:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
Désactivez le Kernel Nouveau en tapant les commandes suivantes:
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
Enfin, mettez à jour et redémarrez le serveur:
sudo update-initramfs -u
reboot
Après son redémarrage, votre environnement sera prêt pour l'installation du driver de la P400.
Installer les drivers Nvidia P400
Mais au fond, pourquoi cette carte graphique est-elle si importante ? Car c'est elle qui va permettre le transcodage des films lorsque ceux-ci ne sont pas joués en qualité originale (lorsque vous lancez un film depuis votre smartphone en dehors de votre réseau local par exemple). Sans elle, c'est le CPU qui se charge du travail et croyez-moi que ce n'est pas ce qu'il fait de mieux.
Attention que le lien dans la commande ci-dessous est celui au moment où j'écris cet article. Je vous conseille vivement de vous rendre sur le site Nvidia afin de vous assurer que vous avez la dernière version du driver.
Je commence toujours par créer un dossier propre:
sudo mkdir /opt/nvidia && cd /opt/nvidia
On télécharge le dernier driver (remplacez ici l'url par celui le plus récent)
sudo wget https://fr.download.nvidia.com/XFree86/Linux-x86_64/460.32.03/NVIDIA-Linux-x86_64-460.32.03.run
On change les permissions du fichier et on lance l'installation du driver:
sudo chmod +x NVIDIA-Linux-x86_64-460.32.03.run
sudo ./NVIDIA-Linux-x86_64-460.32.03.run
Après l'installation, redémarrez votre machine pour lui rafraichir les idées.
Installation de Plex Server
Rendez-vous sur le site de Plex afin de copier le lien de téléchargement de la dernière version de Plex Server. Une fois récupérée, rendez-vous dans le terminal de votre serveur pour tout d'abord créer un dossier dans lequel stocker cet installateur:
sudo mkdir plex-installers && cd plex-installers
Ensuite on télécharge le fichier d'installation de Plex (attention que l'URL ci-dessous ne correspond certainement pas à la dernière version de Plex):
Et enfin, on installe Plex:
sudo dpkg -i plexmediaserver_1.21.1.3876-3c3adfcb4_amd64.deb
En rentrant l'ip de votre serveur avec le port 32400 (ex: 10.0.0.100:32400) dans votre navigateur, vous devriez voir s'ouvrir la page de Plex ! Félicitations !
Il ne vous reste plus qu'à configurer vos bibliothèques de films et de séries dépuis le configurateur de Plex pour en profiter ensuite. Ah oui, dernière chose, assurez-vous d'avoir activé "Utiliser l'accélération matériel si disponible" via "Tableau de bord -> Transcodeur". Plex rajoutera un petit (hw) à droite du film en cours de lecture lorsque celui-ci sera transcodé par votre carte graphique. Vous pouvez également taper la commande suivante dans le terminal de votre serveur pour voir l'activité de la P400:
nvidia-smi
Bon amusement et bon film:-)