Stratégies de sauvegarde et de restauration pour Restreamer : Guide de migration et continuité d'activité

Restreamer est une solution de serveur de streaming auto-hébergée qui permet de redistribuer des flux vidéo vers diverses plateformes comme YouTube, Twitch ou Facebook. Dans un environnement de production, la pérennité des configurations de diffusion, des paramètres d'encodage et des jetons d'accès est cruciale. Ce guide technique détaille les mécanismes de sécurisation des données et les procédures de reprise après sinistre pour une instance Restreamer.

Archtiecture du stockage des données

Pour planifier une stratégie de sauvegarde efficace, il est nécessaire de comprendre comment Restreamer organise ses fichiers. L'application s'appuie principalement sur deux répertoires pivots au sein du conteneur :

  • /core/config : Contient les bases de données SQLite, les fichiers de configuration logicielle et les paramètres utilisateur.
  • /core/data : Stocke les fichiers temporaires, les segments HLS et les données relatives aux sessions actives.

Procédure de sauvegarde manuelle

L'approche la plus simple consiste à archiver les dossiers montés sur l'hôte. Si vous avez déployé Restreamer en utilisant des répertoires locaux, vous pouvez utiliser l'utilitaire tar pour créer une archive compressée.

# Création d'une archive compressée des configurations
tar -czvf sauvegarde_restreamer_$(date +%d-%m-%y).tar.gz /opt/restreamer/config /opt/restreamer/data

Automatisation avec un script de maintenance

Pour garantir la régularité des sauvegardes, il est recommandé d'automatiser le processus via un script Bash déclenché par une tâche Cron. Voici un exemple de script optimisé pour la rotation des archives :

#!/bin/bash

# Configuration
SOURCE_CONFIG="/var/lib/restreamer/config"
DEST_SAUVEGARDE="/mnt/backups/restreamer"
HORODATAGE=$(date +"%Y%m%d_%H%M%S")
NOM_FICHIER="restreamer_prod_$HORODATAGE.tar.gz"

# Création du dossier de destination si nécessaire
mkdir -p "$DEST_SAUVEGARDE"

# Exécution de la compression
tar -czf "$DEST_SAUVEGARDE/$NOM_FICHIER" "$SOURCE_CONFIG"

# Suppression des sauvegardes de plus de 15 jours
find "$DEST_SAUVEGARDE" -type f -name "*.tar.gz" -mtime +15 -exec rm {} \;

Gestion des sauvegardes dans un environnement Docker

Si vous utilisez des volumes nommés Docker plutôt que des montages de liens, la sauvegarde nécessite une approche différente en utilisant un conteneur temporaire pour extraire les données.

# Sauvegarde du volume de configuration
docker run --rm \
  -v restreamer_config:/donnees_source \
  -v $(pwd):/destination \
  alpine tar -czf /destination/restreamer_vol_config.tar.gz -C /donnees_source .

Cette méthode garantit l'intégrité des données sans avoir à localiser manuellement les chemins d'accès complexes sur le système de fichiers de l'hôte Docker.

Migration vers un nouveau serveur

Le déplacement d'une instance Restreamer vers une nouvelle infrastructure suit un protocole strict pour éviter les conflits de configuration :

  1. Exportation : Générez une archive complète du dossier /core/config sur le serveur source.
  2. Préparation : Installez Docker et Docker Compose sur la machine cible.
  3. Transfert : Déplacez l'archive vers le nouveau serveur via scp ou rsync.
  4. Restauration : Extrayez les fichiers dans le répertoire de destination avant de démarrer le conteneur.
  5. Déploiement : Lancez l'instance avec docker-compose up -d.

Protocole de reprise après sinistre

En cas de corruption logicielle ou de défaillance matérielle, la priorité est de restaurer le service avec une perte de données minimale. La procédure de restauration s'articule comme suit :

# 1. Arrêt de l'instance actuelle si elle est encore active
docker stop restreamer_service

# 2. Restauration des données à partir de l'archive la plus récente
# Attention : cela écrasera la configuration actuelle
tar -xzf sauvegarde_restreamer_20231025.tar.gz -C /opt/restreamer/

# 3. Vérification des permissions des fichiers
chown -R 1000:1000 /opt/restreamer/config

# 4. Redémarrage du service
docker start restreamer_service

Optimisation de la stratégie de résilience

Pour assurer une disponibilité maximale des flux SRT et RTMP, il est conseillé d'appliquer les principes suivants :

  • Externalisation : Ne stockez jamais vos sauvegardes sur le même disque physique que l'instance active. Utilisez un stockage S3 ou un NAS distant.
  • Validation : Testez mensuellement la validité de vos archives en simulant une restauration sur un environnement de staging.
  • Monitoring : Configurez des alertes pour être notifié en cas d'échec de la tâche de sauvegarde (code de sortie du script non nul).

Étiquettes: Restreamer Docker-Volumes Self-hosting RTMP SRT

Publié le 23 juin à 00h12