Comment concevoir les sauvegardes, la restauration et l’extension de Jellyfin dès le départ

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les laboratoires informatiques personnels et les logiciels open source, elle se spécialise dans la vulgarisation de concepts techniques complexes au moyen de guides pratiques et concrets. Eva pense que l’hébergement personnel doit être amusant, et non intimidant. À travers ses tutoriels, elle aide la communauté à démystifier les configurations matérielles, de la construction de leur premier NAS à la maîtrise des conteneurs Docker.

Concevez Jellyfin autour de six rôles distincts : démarrage, état de l’application, médias, cache, sauvegarde et restauration, puis étendez uniquement le rôle qui approche de sa limite.

Une petite installation peut regrouper plusieurs rôles sur une même machine, mais elle ne doit pas confondre leurs cycles de vie. Veillez à ce que l’état modifiable soit facile à capturer en instantané, stockez les médias derrière des chemins logiques stables, considérez le cache comme jetable et gardez au moins une copie de restauration hors du domaine de défaillance actif. Validez la conception en restaurant sur une cible propre avant d’automatiser la rétention ou d’ajouter des disques.

Cartographiez les six rôles des données avant de choisir les disques

Commencez par définir les objectifs, pas par compter les baies de disques. Les fichiers de démarrage et d’exécution doivent pouvoir être reproduits ; la base de données, les paramètres, les utilisateurs, l’historique de lecture et les métadonnées organisées de Jellyfin constituent l’état persistant ; les médias sont des données utilisateur volumineuses ; les transcodages et les caches d’images peuvent être reconstruits ; les sauvegardes servent à la restauration ; et la cible de restauration est l’endroit où l’on vérifie que ces sauvegardes fonctionnent.

Cette séparation évite deux erreurs coûteuses : sauvegarder des téraoctets de cache jetable aussi souvent qu’une base de données qui évolue, ou protéger la base de données tout en laissant des vidéos familiales irremplaçables sans seconde copie. Le guide indépendant de restauration d’Ubuntu et Docker distingue également la configuration persistante du cache reconstructible.
Rôle Contenu type Règle de conception
Démarrage/système Système d’exploitation, paquets, définition de l’environnement d’exécution Documentez-le ou faites-en une image ; partez du principe qu’il peut être reconstruit
État de l’application Base de données, utilisateurs, paramètres, métadonnées Stockage local rapide et sauvegardes cohérentes
Médias des utilisateurs Films, musique, fichiers familiaux Chemins stables et politique de protection distincte
Cache Transcodages, images redimensionnées, fichiers temporaires Emplacement privilégiant le débit ; reconstruction possible
Sauvegarde Copies de restauration versionnées Gardez-le hors du domaine de défaillance actif
Restauration Hôte de test propre ou espace de noms isolé Servez-vous-en pour prouver la restauration, pas pour stocker la production

Arrêtez-vous ici si un plugin, un certificat, un sous-titre ou un élément personnalisé n’a toujours pas de propriétaire. Tout chemin persistant non classé devient le fichier que l’on ne découvre qu’après la disparition du serveur d’origine.

Gardez l’état local et les chemins des médias stables

Placez l’état de l’application sur un SSD local fiable, avec surveillance de l’espace libre. Montez les médias séparément à des chemins logiques qui restent valides même si vous changez de disque, de boîtier ou de pool. Le service Jellyfin doit voir le même chemin avant et après l’extension, même si la couche de stockage en dessous change.

Considérez le cache comme un consommateur de débit, et non comme une dépendance de récupération. Il peut partager le SSD système pour une charge légère ou être déplacé vers un volume rapide dédié lorsque les écritures, la capacité ou l’usure deviennent des problèmes mesurables. Ne déplacez pas la base de données et le cache ensemble sous prétexte qu’ils sont tous deux peu volumineux.

Avant chaque démarrage, vérifiez que les montages des médias et de l’état sont présents et accessibles en écriture par l’identité d’exécution. Un montage réseau manquant qui devient silencieusement un répertoire local vide peut déclencher des analyses ou des écritures sur le mauvais chemin. Le guide associé sur la récupération des permissions et de l’identité traite des limites de propriété après les changements de chemin.

Construisez les sauvegardes autour des objets de récupération

Sauvegardez l’état de l’application comme un objet de récupération cohérent. Pour une installation simple, arrêtez Jellyfin pendant la courte fenêtre de copie ; les instantanés de stockage conviennent uniquement s’ils capturent tous les composants d’état à un même instant récupérable. Notez la version de Jellyfin à côté de chaque point de contrôle, car une migration de base de données peut rendre risqué un retour en arrière à partir d’une image faite à la légère.

Protégez les médias selon un calendrier différent. Les médias achetés peuvent être récupérés auprès de leur source ; ce n’est pas forcément le cas des enregistrements familiaux. Classez ces sous-ensembles avant de choisir la réplication, les copies hors ligne ou le stockage hors site. Le guide sur la rétention et les délais de récupération est la prochaine étape pour décider du nombre de générations d’état à conserver.

Au moins une copie exploitable doit résister à la perte ou à la corruption de l’hôte actif et du stockage qui lui est associé. Un pool en miroir améliore la disponibilité en cas de défaillance d’un périphérique, mais une suppression synchronisée ou une corruption de base de données peut toucher tous les miroirs ; la redondance et la sauvegarde répondent à des types de panne différents.

Répétez une restauration propre avant d’automatiser

Restaurez sur une machine, une VM ou un conteneur isolé utilisant la même version de Jellyfin que celle qui a créé le point de contrôle. Reproduisez l’identité d’exécution et les montages logiques, puis démarrez sans exposer le nouveau serveur aux clients de production. Vérifiez ensuite la connexion administrateur, l’historique des utilisateurs, le nombre d’éléments des bibliothèques, les illustrations, un élément en lecture directe et un transcodage représentatif.

Il ne s’agit pas de vérifier que le tableau de bord se charge. Un récent cas de migration TrueNAS montre comment l’état des applications, les générations de charts et une nouvelle route de conteneur peuvent entrer en conflit ; une répétition à blanc révèle ces dépendances tant que l’ancienne instance existe encore.
  1. Consignez la version source, l’identité d’exécution, la correspondance des points de montage et la somme de contrôle de la sauvegarde.
  2. Restaurez l’état sur une cible propre et isolée.
  3. Vérifiez les utilisateurs, les bibliothèques, les métadonnées et la lecture de fichiers représentatifs.
  4. Redémarrez une fois et répétez les vérifications essentielles.
  5. Chronométrez la procédure et mettez à jour le guide d’exploitation en y ajoutant chaque dépendance manuelle.

Échouez à l’exercice si la procédure nécessite un secret non documenté, une réécriture de chemin ou un fichier de production en direct. N’automatisez qu’après avoir réussi deux fois cette séquence manuelle, et non avant.

Augmenter la capacité sans renommer les bibliothèques

Définissez un seuil d’extension suffisamment tôt pour pouvoir copier et valider les données sans urgence. Une utilisation soutenue d’environ trois quarts du pool utilisable est un indicateur de planification, pas une règle universelle ; tenez compte de votre rythme d’ingestion, du temps de reconstruction, de la durée des sauvegardes et de l’historique des alertes d’espace libre pour définir le seuil réel.

Dans la mesure du possible, étendez le stockage en conservant le chemin logique des fichiers multimédias existant. Préparez le nouveau périphérique ou pool, vérifiez son état et son comportement en écriture, copiez plutôt que déplacer un premier ensemble représentatif, comparez les nombres d’éléments ou les sommes de contrôle, puis testez une analyse de la bibliothèque et la lecture avant d’intégrer la nouvelle capacité aux écritures habituelles.

Si l’extension nécessite aussi un nouveau système de fichiers, hôte, protocole de partage ou chemin de montage, procédez en plusieurs changements distincts. La topologie du calcul, du stockage et des sauvegardes aide à déterminer quand l’augmentation de capacité justifie de séparer les rôles plutôt que d’agrandir un seul boîtier.

Valider toute la topologie et ses limites

Faites fonctionner la conception comme un système : effectuez un démarrage à froid après un arrêt contrôlé, démarrez avec une dépendance indisponible, remplissez un volume de test jusqu’à son seuil d’alerte, restaurez un point de contrôle de l’état et lisez des fichiers multimédias depuis le chemin étendu. Consignez ce qui se bloque par défaut, ce qui fonctionne en mode dégradé et ce qui nécessite l’intervention d’un opérateur.

Conservez plusieurs rôles sur un même hôte tant que leur charge combinée, le câblage, l’alimentation et le temps de récupération restent dans les limites fixées. Ne séparez le stockage multimédia, les sauvegardes ou la récupération que lorsqu’une limite mesurée de capacité, de maintenance ou de domaine de panne se manifeste ; des machines supplémentaires créent leurs propres dépendances réseau et de cycle de vie.

La règle finale est simple : préservez les chemins logiques stables, protégez séparément les données d’état impossibles à reconstruire et vérifiez la récupération après chaque changement de topologie. Une capacité impossible à restaurer n’est pas une capacité pleinement opérationnelle.

Configuration de NAS et de serveur

À lire aussi

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.