Avant de configurer le service de sauvegarde, vérifiez que vous disposez des éléments suivants :
- Une instance GitHub Enterprise Server fonctionnant sous la version 3.17 ou ultérieure.
- Volume de stockage dédié provisionné et géré pour servir de cible de sauvegarde.
Exigences de stockage
Afin de garantir des sauvegardes fiables et performantes, votre stockage doit répondre aux exigences suivantes :
-
**Capacité :** allouez au moins cinq fois la quantité de stockage utilisée par votre disque de données principal GitHub. Cela tient compte des données historiques et de la croissance future. -
**Prise en charge du système de fichiers :** le service de sauvegarde utilise des liens physiques pour un stockage efficace, et votre instance GitHub utilise des liens symboliques. La cible de sauvegarde doit prendre en charge à la fois les liens symboliques et les liens physiques, et elle doit utiliser un système de fichiers sensible à la casse afin d'éviter les conflits.Vous pouvez vérifier si votre système de fichiers prend en charge les liens symboliques de type hardlink en exécutant :
cd /data/backup sudo touch file sudo ln -s file symlink sudo ln symlink hardlink ls -laSi la commande
ln symlink hardlinks'exécute correctement, le système de fichiers est pris en charge. -
**Performances :** utilisez un stockage haute performance avec une faible latence et un IOPS élevé afin d'éviter les sauvegardes et les restaurations lentes. -
**NFS :** évitez d'utiliser un montage NFS pour le répertoire de sauvegarde (généralement `/data/backup`), car cela peut entraîner des délais d'attente et une dégradation des performances.
Configuration du service de sauvegarde
Vous pouvez configurer GitHub Enterprise Server Backup Service via Management Console.
Configuration de la cible de sauvegarde
Avant de configurer le service, il est nécessaire de préparer le volume de stockage où les sauvegardes seront conservées.
Utilisation d’un nouvel appareil en bloc
Si vous utilisez un périphérique bloc dédié comme cible de sauvegarde, il est nécessaire de l'initialiser via SSH avant de poursuivre dans Management Console. Ce processus formatera l’appareil et effacera toutes les données existantes.
-
Connectez-vous à votre instance via SSH en tant qu'utilisateur
admin. Consultez « Accès à l’interpréteur de commandes d’administration (SSH) ». -
Connectez votre périphérique de sauvegarde à l'instance.
-
Identifiez le nom du périphérique à l'aide de
lsblkpour répertorier les périphériques blocs disponibles. Assurez-vous de sélectionner le bon appareil afin d'éviter toute perte de données.lsblk -
Exécutez la commande d'initialisation en remplaçant
YOUR_DEVICE_NAMEpar le nom réel du périphérique identifié à l'étape précédente.Avertissement
Cette commande effacera définitivement toutes les données présentes sur le périphérique spécifié. Vérifiez attentivement le nom de l'appareil et sauvegardez toutes les données importantes avant de continuer.
/usr/local/share/enterprise/ghe-storage-init-backup /dev/YOUR_DEVICE_NAMECette commande :
-
Formate l'appareil (efface toutes les données).
-
Prépare le fichier pour qu'il puisse être utilisé par le service de sauvegarde.
-
Configure le montage automatique sur
/data/backupau démarrage.
-
À partir de la version GitHub Enterprise Server 3.17.4, le script est installé dans PATH, ce qui vous permet de l'exécuter directement à l'aide de : ghe-storage-init-backup /dev/YOUR_DEVICE_NAME.
Détacher un disque de sauvegarde
Avertissement
Avant de détacher un disque de sauvegarde, assurez-vous qu’aucune sauvegarde ou restauration n’est en cours. Le détachement d’un disque pendant son utilisation peut entraîner une perte de données ou une interruption de service.
Si vous devez détacher le disque de sauvegarde à partir de GitHub Enterprise Server, procédez comme suit
-
Répertorier les périphériques de blocs et démonter
/data/backup.sudo lsblk sudo umount /data/backup -
Répertorier les volumes logiques et désactiver le volume logique.
sudo lvs sudo lvchange -an <backup_VG>/<backup_LV> -
Détachez le disque à l’aide de la console ou de l’interface CLI fournie par le fournisseur cloud ou l’hyperviseur.
-
Supprimez le point de montage.
sudo rmdir /data/backup
Réutilisation d'un disque préalablement initialisé
Si le périphérique a déjà été initialisé à l'aide de ghe-storage-init-backup, vous pouvez le réutiliser sans le reformater :
-
Connectez-vous à votre instance via SSH en tant qu'utilisateur
admin. -
Attachez le disque à l’instance.
-
Créez le point de montage s'il n'existe pas.
sudo mkdir -p /data/backup -
Activez et démarrez le service de montage.
sudo systemctl enable ghe-backup-disk.service sudo systemctl start ghe-backup-disk.serviceCela permettra de monter le périphérique à l'emplacement
/data/backupet garantira qu'il sera monté automatiquement à l'avenir.
Configuration des paramètres de sauvegarde
Une fois la cible de sauvegarde montée, la page du service de sauvegarde sera disponible dans le Management Console dans la section « Sauvegarde ».
Remarque
La page des paramètres n’apparaîtra pas tant que le stockage de sauvegarde n’est pas monté à /data/backup, après avoir complété les étapes d’initialisation ou de montage ci-dessus.
Si vous effectuez une migration depuis GitHub Enterprise Server Backup Utilities, vous pouvez transférer votre configuration de deux manières :
-
**Configuration manuelle** : recréez vos paramètres directement dans Management Console. -
**Migration via la ligne de commande** : connectez-vous à votre instance via SSH, copiez votre fichier `backup.config` depuis backup-utils, puis exécutez :ghe-migrate-backup-config /path/to/your/backup.configUtilisez l’indicateur
--dry-runpour afficher un aperçu des modifications sans les appliquer.
Planification de sauvegardes automatiques
Une fois le service configuré, vous pouvez définir un calendrier de sauvegarde.
- Dans Management Console, ouvrez l'onglet « Sauvegardes » dans le menu supérieur.
- Dans la section « Planification des sauvegardes », sélectionnez un calendrier prédéfini (par exemple, Quotidien) ou saisir une expression cron personnalisée.
- Cliquez sur Enregistrer pour appliquer les modifications.
La première exécution sera une sauvegarde complète. Les exécutions futures seront incrémentielles. Si une nouvelle tentative de sauvegarde est lancée alors qu'une précédente est encore en cours, elle peut être ignorée ou échouer. Dans ce cas, adaptez le calendrier afin d'éviter tout chevauchement.