Identification



Contact

Home Matériels Serveur Multimedia Configuration Logiciel Serveur Multimedia

Logiciel Serveur Multimedia

L'OS retenu pour mon serveur multimedia est unRAID
C'est un OS qui démarre à partir d'une clé USB, et spécialment conçu pour un serveur multimédia : il est construit autour d'un noyau Linux
Il utilise une technologie RAID qui lui est propre : elle met en jeu un disque de parité qui permet en cas de crash disque de restaurer les données perdues. Elle offre plusieurs avantages par rapport à un système basé sur du RAID 5 :
  • On peut mélanger tout type de disque (sata, ide, scsi) Les disques peuvent avoir des tailles différentes, ils seront exploités totalement, seule contrainte le disque de parité doit avoir la taille du plus grand disque utilisé
  • On peut faire en sorte qu'un fichier donné soit entièrement contenu sur un seul disque : ainsi si plusieurs disques sont défectueux, les données sur les disques restant sont toujours valides
  • Un seul disque défectueux peut être restauré grace au disque de parité
  • On peut ajouter de nouveaux disques à tout moment, remplacer un disque par un autre de plus grande capacité

Installation de unRAID sur la clé USB
On télécharge la dernière version de l'OS sur le site de LimeTech
Au moment où j'écris ces lignes c'est la version 5.0-beta9 AiO que j'ai utilisée

On formatte la clé USB en FAT32 en la nommant UNRAID : bien utiliser ce nom
On copie sur la clé le contenu décompressé du fichier téléchargé
Il faut rendre la clé bootable, pour cela on doit exécuter le fichier make_bootable.bat situé à la racine de la clé. Sous Windows 7 il semblerait qu'il y ait une erreur dans ce fichier, pour que cela fonctionne on remplace :
for /f "tokens=1-5*" %%1 in ('vol %~d0') do (
par
for /f "tokens=3-7*" %%1 in ('vol %~d0') do (
Faire un clic droit sur ce fichier et sélectionner "Exécuter en tant qu'administrateur"

On télécharge les fichiers suivant :
- preclear_disk.sh : sera utilisé pour préparer les disques, on le copie à la racine de la clé
- unmenu_install : copié dans le répertoire unmenu créé à la racine de la clé

On configure l'adresse IP : dans le fichier \config\network.cfg on remplace
USE_DHCP=yes
IPADDR=
NETMASK=
GATEWAY=
par
USE_DHCP=no
IPADDR=192.168.1.17
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
J'ai indiqué ici ma configuration, à vous d'y mettre la votre

Configuration du BIOS sur le serveur
Paramètrer le BIOS pour démarrer sur l'USB
SATA Mode : AHCI
SMART Status Check : Enabled
HD Audio : Desabled
Atheros LAN : Disabled
Serial Port : Disabled
Vérifier que tous les disques sont reconnus

Démarrage du serveur
Pour interragir avec le serveur on peut soit connecter un écran et un clavier, soit se connecter en telnet à partir d'une autre machine : c'est cette dernière solution que j'utilise

telnet 192.168.1.17
Au login : root sans mot de passe

On vérifie dans un premier temps que tous les disques sont bien détectés

dmesg | grep SATA | grep link
dmesg









Pour voir le mappage des diques :

ls -l /dev/sd[a-z]
ls










Ceci correspond à mon installation

Pour gérer le serveur il est plus pratique de passer par l'interface web : avec Tower comme nom par défaut

http://Tower
ou
http://192.161.17

dans mon cas

On va pouvoir avoir ici des informations plus précises sur les disques : on sélectionne la page "Devices", dans la section "Disk" on déroule la boîte de sélection qui affiche la liste de mappage des disques, on ne sélectionne rien, on note simplement les informations concernant le modèle du disque (Device Model) et le numéro de série (Serial Numder) que l'on trouve après sda, sdb, ...
Ces informations seront utiles lors de la préparation des disques

On en profite pour configurer les serveurs DNS, cela sera utile pour installer unMENU : on selectionne la page "Settings", dans la section "Network Settings" on renseigne les paramètres suivant :
- Obtain IP Address Automatically : no
- IP Address : 192.168.1.17
- Netmask : 255.255.255.0
- Gateway : 192.168.1.254
- Obtain DNS Server Address :
- DNS Server 1 : 80.10.246.2
- DNS Server 2 : 80.10.246.129
Cela correspond à ma configuration

On peut aussi changer le nom du serveur, dans la section "Identification", le paramètre "Server Name"

Installation de unMENU
unMENU est une interface web qui ajoute de nombreuses possibilités à la gestion du serveur, il complète l'interface par défaut de unRAID
Pour l'installer on se connecte au serveur via telnet, parès le login :

cd /boot/unmenu
./unmenu_install -i -d /boot/unmenu

Pour démarrer unmenu

./uu

Pour que unMENU démarrage à chaque redémarrage du serveur :

echo "/boot/unmenu/uu" >> /boot/config/go

Pour accéder à cette page web :

http://192.168.1.17:8080

Installation de Screen
Screen est un multiplexeur de terminal qui gère plusieurs processus distincts, des shells généralement interactives, sur un seul terminal physique. Chaque terminal virtuel émule un VT100 DEC et plusieurs ANSI X3.64 et ISO 2022 et offre également des fonctions d'entrée configurables et de traduction de sortie, le support du port série, le log configurable, support multi-utilisateurs, et de nombreux codages de caractères, y compris UTF-8. Les sessions Screen peut être détachées et reprises plus tard sur un autre terminal

A partir d'un autre PC :
http://192.168.1.17:8080

Sélectionner Pkg Manager
Dans la page on clique sur Select screen-4.03-i486-1.tgz
Puis sur Download screen-4.03-i486-1.tgz
Puis sur Install screen-4.03-i486-1.tgz
Puis sur Enable Re-Install on Re-boot

Installation de Mail et SSMTP
Ceci permettra de recevoir des messages sur sa messagerie pour être averti d'évènements spécifiques sur le serveur

A partir d'un autre PC :
http://192.168.1.17:8080

Sélectionner Pkg Manager
Descendre dans la page vers C compiler & development tools
On clique sur Select gcc-4.2.4-i486-1.tgz
Puis sur Download gcc-4.2.4-i486-1.tgz
Puis sur Install gcc-4.2.4-i486-1.tgz
Retourner sur Pkg Manager par View All Available Packages
Descendre dans la page vers mail and ssmtp-Configure unRAID to be able to send e-mail notification via the mail command
On clique sur Select ssmtp_2.62.orig.tar.gz
On clique sur Edit Configuration Variables
On modifie les valeurs en fonction du serveur de messagerie utilisé
On clique sur Save New Values
Puis sur Download ssmtp_2.62.orig.tar.gz
Puis sur Install ssmtp_2.62.orig.tar.gz
Puis sur Enable Re-Install on Re-Boot

On teste l'installation :

echo -e "Subject : Test de la messagerie \n\nCeci est le corps du message." | ssmtp -d root

Preclear des disques
Cette étape est optionnelle, mais il est fortement recommandé de la réaliser : elle prépare les disques avant leur intégration dans une matrice RAID et formatage, cela consiste à écrire des zéros sur tous les secteurs et de signer le disque

Sous telnet
telnet 192.168.1.17
login
cd /boot
screen

On appuie sur espace ou entrée pour se retrouver sous le prompt de Screen : l'avantage d'utiliser Screen va être de pouvoir lancer plusieurs sessions à l'intérieur de chacune on pourra exécuter un preclear d'un disque différent, on pourra passer d'une session à une autre et même quitter Screen et telnet, les preclear continuant à s'exécuter en tâche de fond, on y retournera plus tard pour voir les résultats.

On lance un preclear du disque sda par :

./preclear_disk.sh -A /dev/sda

avec une notification par e-mail en fin d'exécution :

./preclear_disk.sh -m adresse-mail -A /dev/sda

On a l'affichage suivant :
preclear1






















On vérifie que c'est le bon modèle de disque avec le bon numéro de série et on répond Yes

Le disque sdc en cours de preclear
preclear2
















L'affichage final d'un preclear réussi

preclear3





























Cette opération est longue : sur mes disques de 2 To cela a pris entre 25 et 30 H
On peut sauvegarder les résultats du preclear par :

grep preclear /var/log/syslog | todos >> /boot/preclear_results.txt

Pour démarrer un autre preclear dans une autre session :
Ctrl-A c

On évitera de dépasser 4 preclear simultanés

Pour naviguer entre les sessions
Ctrl-A n : session suivante
Ctrl-A p : session précédente
Ctrl-A Ctrl-D : déconnexion de la session

Pour se réattacher à Screen :
screen -r

On sera positionné sur la première session

Initialisation de la matrice RAID
Maintenant que les disques sont prêts on peut initialiser la matrice RAID, on va d'abord positionner quelques paramètres

Accès au serveur par http :
http://192.168.1.17

On sélectionne la page Settings, puis Identification
- Serveur Name : HCSRV1
On clique sur Apply puis Done
Pour que le nouveau nom soit pris en compte par unMENU, il faut redémarrer le serveur

On clique sur Date & Time :
- Time Zone : Paris
- Use NTP : Yes
- NTP Server 1 : ntp.ensma.fr
- NTP Server 2 : ntp.internet-fr.net
- NTP Server 3 : pool.ntp.org
On clique sur Apply puis Done
Vous pouvez choisir d'autres serveurs NTP

On clique sur Disk Settings
- Default spin down delay : 1 hour
- Force NCQ disabled : yes
- Enable spinup groups : yes
- Default partition format : MBR: 4K-aligned
On clique sur Apply puis Done

On sélectionne la page Main, à priori comme c'est la première installation la matrice RAID est arrêtée
On sélectionne les disques pour créer la matrice, dans mon cas :
- parity : sda
- disk1 : sdb
- disk2 : sdc
Une fois l'assignation effectuée l'indicateur passe du gris (disque non présent) au bleu (nouveau disque ne faisant pas partie de la matrice RAID)
On clique sur Start
L'indicateur du disque parity passe au jaune : le contenu est invalide, ce qui est normal puisqu'aucune synchronisation avec les disques de données n'a encore été faite, il est indiqué "Parity-Sync in progress"
Les indicateurs des disques de données passent au vert : état normal
On clique sur le bouton Format : suivant la taille des disques ce sera plus ou moins long
On clique sur le bouton Refresh : si on a réalisé un preclear sur les disques le formattage ne devrait prendre que quelques minutes, par contre la Pariry-Sync" sera beaucoup plus longue.
Quelques minutes après le démarrage du formatage sur mon serveur :
main_format1












Quand le "Parity-sync" est terminé l'indicateur du disque Parity passe au vert
Après que le calcul initial de la parité est effectué il est recommandé de réaliser une "Parity Check" manuellement : on clique sur le bouton Check

Si un indicateur de disque clignote cela signifie qu'il a été arrêté, n'ayant pas d'activité après le temps indiqué dans la page Settings > Disks Settings : Default spin down delay

Accès aux données du serveur
Il s'agit maintenant d'avoir la possibilité d'accéder aux données situées sur le serveur à partir de mon PCHC
Voyons d'abord comment sont organisées les données vues de mon PCHC, on y trouve les répertoires suivant
- films : contient les fichiers concernant les films
- music : contient les fichiers concernant les albums de musique
- video-music : contient les fichiers concernant les concerts de musique en vidéo
- series : contient les fichiers concernant les séries
Vu du lecteur multimédia l'idéal est de n'avoir que ces répertoires à paramétrer, les fichiers qui y sont contenus pouvant être en local ou accéssibles à travers le réseau
Pour cela j'ai créé à l'intérieur de chacun de ces répertoires : un répertoire "local" contenant les fichiers locaux au PCHC et un lien symbolique "hcsrv1" associé au partage correspondant sur le serveur
Un dessin aide à comprendre :
shares




























Sur le serveur on crée les partages :

  • films
  • music
  • video-music
  • series

Dans le partage films on aura un répertoire par film :

  • film
  • ----- film1
  • ----- film2
  • ----- ...

Dans le partage music on aura un répertoire par artiste, puis un répertoire par album :

  • music
  • ----- artiste1
  • ---------- album1
  • ---------- album2
  • ---------- ...
  • ----- artiste2
  • ----- ...

Dans le partage video-music on aura un répertoire par artiste, puis un répertoire par vidéo :

  • video-music
  • ----- artiste1
  • ---------- video1
  • ---------- vidéo2
  • ---------- ...
  • ----- artiste2
  • ----- ...

Dans le partage series on aura un répertoire par série, puis un répertoire par saison

  • series
  • ----- serie1
  • ---------- saison1
  • ---------- saison2
  • ---------- ...
  • ----- serie2
  • ----- ...

Sur le PCHC on crée les liens symboliques associés à chaque partage

Pour mon PCHC sous Windows Seven puisse accéder aux données du serveur unRAID, il faut activer SMB sur le serveur.
On sélectionne la page Setting, on clique sur le bouton SMB :
- Enable SMB : Yes
On clique sur Apply
- Security Mode : Workgroup
On clique sur Apply
- Workgroup : le nom de votre workgroup
- Local master : Yes
On clique sur Apply, puis sur Done
On sélectionne la page Main, on clique sur le bouton Stop pour arrêter la matrice RAID
On sélectionne la page Settings, on clique sur le bouton Share Settings
- Enable User Shares : Yes
On clique sur Apply, puis sur Done
On sélectionne la page Main, on clique sur le bouton Start pour redémarrer la matrice RAID
On sélectionne la page Shares qui est maintenant visible et vide : on clique sur le bouton Add Share pour créer un partage. Dans mon cas je vais avoir :

Name films music video-music series
Allocation methode High-water High-water High-water High-water
Split level 1 2 2 2


La notion de Split-level est associée à la manière dont les fichiers sont stockés physiquement sur les disques : l'idéal c'est qu'un film soit contenu entièrement sur un seul disque. Chaque film est contenu dans un répertoire portant son nom, à l'intérieur on y trouvera un fichier image pour la pochette, et suivant le type de stockage du film, un fichier représentant l'image disque du film ou un container mkv ou vob, ou un/plusieurs répertoire(s) représentant la structure du film.
Il faut donc que le répertoire d'un film soit entièrement contenu sur le même disque : c'est la valeur du Split-level qui va le permettre, elle représente le niveau dans la hiérarchie des répertoires à partir duquel les répertoires correspondant seront sur un même disque.
Pour ma configuration un Split-level de 1 est ce qui me convient : le partage films sera créé sur chaque disque, mais chaque film sera entièrement sur un disque
Pour la musique contenue dans le partage music, on trouve d'abord un répertoire au nom de l'artiste, puis à l'intérieur des répertoires représentant les albums : j'ai choisi ici un Split-level de 2 afin qu'un album donné soit entièrement contenu sur un seul disque.
Pour video-music on a la même organisation que pour music, donc un Split-level à 2 est ce qu'il faut.
Pour series on a un répertoire au nom de la série, puis un répertoire pour chaque saison : j'ai choisi d'avoir une saison contenue entièrement sur un disque, ce qui est réalisé avec un Split-level de 2.
Le paramètre High-water permet de choisir le disque qui sera utilisé pour le stockage à un moment donné : le but est de répartir le stockage sur l'ensemble des disques d'une manière équilibrée. Le paramètre High-water (HW) est initialisé à la moitié du plus gros disque, quand on doit écrire un volume donnée V, unRAID regarde l'espace libre sur chaque disk, soit DFn pour le disque n, il calcule alors Dfn-HW, si V peut être écrit sur le disque ayant la plus petite différence les données seront écrites sur ce disque, sinon unRAID regarde le disque ayant la différence au-dessus, si V est supérieur à toutes les différences calculées, unRAID divise par 2 HW et recommence le processus avec cette nouvelle valeur.
Pour chaque partage j'ai précisé SMB Security Settings :
- Export : Yes
- Security : Public
Comme le serveur fait partie d'un réseau interne pas besoin de sécuriser.
Il ne reste plus qu'à l'alimenter

J'ai créé les partages supplémentaires suivant :

  • documentaires
  • famille
  • spectacles

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Nous avons 61 invités en ligne