Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Cette version de GitHub Enterprise a été abandonnée le 2023-03-15. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Évacuation d’un nœud de cluster exécutant des services de données

Si un nœud de votre cluster exécute des services qui stockent des données distribuées, vous pouvez assurer la redondance quand vous préparez le remplacement du nœud en évacuant ses données.

À propos de l’évacuation de nœuds de cluster exécutant des services de données

La topologie de cluster pour GitHub Enterprise Server fournit une mise à l’échelle horizontale pour les entreprises comptant des dizaines de milliers de développeurs. GitHub recommande le clustering si un nœud principal unique subit régulièrement un épuisement des ressources. Le clustering nécessite une planification minutieuse et une surcharge administrative supplémentaire. Pour plus d’informations, consultez « À propos du clustering ».

Dans une configuration de cluster pour GitHub Enterprise Server, vous devrez peut-être mettre un nœud individuel hors connexion. Par exemple, il se peut que vous deviez remplacer la machine virtuelle du nœud. Si le nœud à remplacer fonctionne dans le niveau de stockage, GitHub vous recommande d’évacuer d’abord les services de données du nœud. L’évacuation garantit que les nœuds restants contiennent le nombre minimum attendu de copies des données.

Pour plus d’informations sur les nœuds et les niveaux de service pour GitHub Enterprise Server, consultez « À propos des nœuds de cluster ».

Avertissements :

  • Pour éviter la perte de données lors du remplacement d’un nœud, GitHub recommande vivement l’évacuation des services de données applicables sur le nœud avant sa mise hors connexion.

  • Pour garantir la redondance d’un service de données sur votre cluster, des copies des données doivent exister sur au moins trois nœuds. Par exemple, si quatre nœuds ou plus stockent des données Git, lors de l’évacuation, les données de dépôt évacuées sont déplacées du nœud que vous évacuez vers les trois autres nœuds. Si vous n’avez que trois nœuds qui stockent des données pour un service, l’évacuation d’un nœud peut échouer et entraîner une sous-réplication des données.

Évacuation d’un nœud de cluster exécutant des services de données

Si vous envisagez de mettre un nœud hors connexion et que ce nœud exécute l’un des rôles suivants, évacuez chaque service applicable avant de mettre le nœud hors connexion.

ServiceDonnées
git-serverRéférentiels
pages-serverBuilds de site pour GitHub Pages
storage-server
  • Données stockées dans des dépôts avec Stockage Fichiers volumineux Git
  • Images d’avatars
  • Fichiers joints à des commentaires dans l’interface utilisateur web
  • Archives des versions
  1. SSH dans n’importe quel nœud de votre cluster. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

  2. Pour rechercher l’UUID du nœud à évacuer, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud. Vous allez utiliser l’UUID dans les commandes suivantes.

    ghe-config cluster.HOSTNAME.uuid
  3. Pour déterminer la quantité initiale de données pour chaque service applicable sur le nœud, exécutez les commandes suivantes. Pour chaque commande, remplacez UUID par l’UUID de l’étape précédente.

    • git-server:

      • Commande :

        ghe-spokes evac-status git-server-UUID
      • Sortie pertinente : Networks, Gists

    • pages-server:

      • Commande :

        echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y
    • storage-server:

      • Commande :

        ghe-storage evacuation-status storage-server-UUID
      • Sortie pertinente : Remaining item(s)

  4. Pour évacuer un service applicable sur le nœud, exécutez les commandes suivantes. Pour chaque commande, remplacez UUID par l’UUID de l’étape précédente.

    • git-server:

      • Commande (remplacez REASON FOR EVACUATION par le motif de l’évacuation) :

        ghe-spokes server evacuate git-server-UUID \'REASON FOR EVACUATION\'
    • pages-server:

      • Commande :

        ghe-dpages evacuate pages-server-UUID
    • storage-server:

      1. Mettez le service du nœud hors connexion en exécutant la commande suivante.

        ghe-storage offline storage-server-UUID
      2. Évacuez le nœud en exécutant la commande suivante.

        ghe-storage evacuate storage-server-UUID
  5. Pour monitorer l’évacuation d’un service pendant que GitHub Enterprise Server copie les données, exécutez les commandes suivantes. Pour chaque commande, remplacez UUID par l’UUID de l’étape précédente.

    Avertissement : N’arrêtez pas le nœud tant que l’évacuation n’est pas terminée. L’évacuation est terminée quand le nombre de données arrive à zéro, ce qui signifie que toutes les données sont stockées sur d’autres nœuds.

    • git-server:

      ghe-spokes evac-status git-server-UUID
    • pages-server:

      echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y
    • storage-server:

      ghe-storage evacuation-status storage-server-UUID
  6. Une fois l’évacuation terminée pour le service, arrêtez le nœud.