Informationen zu Sicherungsoptionen für GitHub Enterprise Server
GitHub bietet zwei Optionen zum Sichern Ihrer GitHub Enterprise Server Instanz:
- GitHub Enterprise Server Backup Utilities: Ein Open-Source-Sicherungssystem, das Sie auf einem separaten Host installieren. Weitere Informationen finden Sie in den folgenden Abschnitten.
- GitHub Enterprise Server Backup Service (in Öffentliche Vorschau): Ein verwalteter Backup-Dienst, verfügbar in GitHub Enterprise Server. Weitere Informationen findest du unter Sicherungsdienst für GitHub Enterprise Server.
Informationen zum GitHub Enterprise Server Backup Utilities
GitHub Enterprise Server Backup Utilities ist ein Sicherungssystem, das Sie auf einem separaten Host installieren und das in regelmäßigen Abständen über eine sichere SSH-Netzwerkverbindung Backup-Snapshots von Ihre GitHub Enterprise Server-Instance erstellt. Sie können einen Snapshot verwenden, um eine vorhandene GitHub Enterprise Server-Instanz vom Sicherungshost aus in einen früheren Zustand zurückzuversetzen.
Nur die seit dem letzten Snapshot hinzugefügten Daten werden über das Netzwerk übertragen und belegen zusätzlichen physischen Speicherplatz. Zum Minimieren der Auswirkung auf die Leistung werden Backups online unter der niedrigsten CPU-/E/A-Priorität durchgeführt. Zum Durchführen eines Backups muss kein Wartungsfenster geplant werden.
Hauptreleases und Versionsnummern für GitHub Enterprise Server Backup Utilities sind an den Funktionsreleases von GitHub Enterprise Server ausgerichtet. Wir unterstützen die vier neuesten Versionen beider Produkte. Weitere Informationen finden Sie unter Veröffentlichungen von GitHub Enterprise Server.
Ausführlichere Informationen zu Funktionen, Anforderungen und fortgeschrittener Verwendung finden Sie in der GitHub Enterprise Server Backup Utilities Projektdokumentation in der GitHub Enterprise Server Backup Utilities README.
Voraussetzungen
Zur Verwendung GitHub Enterprise Server Backup Utilitiesbenötigen Sie ein Hostsystem getrennt von Ihre GitHub Enterprise Server-Instance. Ausführliche Informationen zur Konfiguration des Systems findest du unter Anforderungen im Repository „github/backup-utils“.
Sie können GitHub Enterprise Server Backup Utilities auch in eine vorhandene Umgebung integrieren, um kritische Daten dauerhaft und langfristig zu speichern.
Wir empfehlen, dass der Sicherungshost und Ihre GitHub Enterprise Server-Instance geografisch weit voneinander entfernt sind. Dadurch wird gewährleistet, dass Backups wiederhergestellt werden können, falls am Hauptstandort eine schwere Katastrophe oder ein Netzwerkausfall auftritt.
Die Anforderungen an den physischen Speicher variieren basierend auf der Git-Repository-Festplattennutzung und den erwarteten Wachstumsmustern:
| Hardware | Empfehlung |
|---|---|
| vCPUs | 4 |
| Gedächtnis | 8 GB |
| Lagerung | Das Fünffache des zugeordneten Speichers der primären Instanz |
Entsprechend deiner Nutzung, beispielsweise in Bezug auf die Benutzeraktivität und die ausgewählten Integrationen, sind möglicherweise mehr Ressourcen erforderlich.
Weitere Informationen finden Sie unter GitHub Enterprise Server Backup Utilities den Anforderungen in der GitHub Enterprise Server Backup Utilities Projektdokumentation.
Installieren GitHub Enterprise Server Backup Utilities
Um GitHub Enterprise Server Backup Utilities auf Ihrem Sicherungshost zu installieren, laden Sie die neueste Version von GitHub Enterprise Server Backup Utilities aus dem GitHub-/backup-utils-Repository herunter, die mit Ihrer Version von GitHub Enterprise Server kompatibel ist. Wenn Sie beispielsweise Version 3.8.4 von GitHub Enterprise Server verwenden, laden Sie die neueste Version von GitHub Enterprise Server Backup Utilities in der 3.10-Serie herunter. Dies ist möglich, da alle Versionen von GitHub Enterprise Server Backup Utilities für zwei frühere Versionen abwärtskompatibel sind, d. h., dass die 3.10-Serie von GitHub Enterprise Server Backup Utilities zum Sichern und Wiederherstellen von GitHub Enterprise Server-Instanzen verwendet werden kann, auf denen die Versionen 3.8, 3.9 oder 3.10 ausgeführt werden.
Nachdem Sie ein komprimiertes Archiv heruntergeladen haben, können Sie den Inhalt extrahieren und installieren. Weitere Informationen finden Sie unter Erste Schritte im Github/backup-utils-Repository.
Wenn Sie über eine vorhandene Sicherungskonfigurationsdatei verfügen, stellen Sie sicher, backup.configdass Sie die Datei an den Speicherort der neu extrahierten und installierten Version von GitHub Enterprise Server Backup Utilitieskopieren.
Von GitHub Enterprise Server Backup Utilities erstellte Backup-Snapshots werden unter dem Festplattenpfad gespeichert, der durch die GHE_DATA_DIR-Variable für das Datenverzeichnis in Ihrer backup.config-Datei festgelegt ist. Diese Momentaufnahmen müssen auf einem Dateisystem gespeichert werden, das symbolische und feste Links unterstützt.
Hinweis
Wir empfehlen, darauf zu achten, dass Ihre Snapshots nicht in einem Unterverzeichnis des Installationsverzeichnisses von GitHub Enterprise Server Backup Utilities gespeichert werden, um zu vermeiden, dass Ihr Datenverzeichnis beim Upgrade von GitHub Enterprise Server Backup Utilities versehentlich überschrieben wird.
-
Laden Sie die relevante GitHub Enterprise Server Backup Utilities Version auf der Seite "Versionen" des Github/backup-utils-Repositorys herunter.
-
Um das Repository mithilfe von Tar zu extrahieren, führen Sie den folgenden Befehl aus.
tar -xzvf /path/to/github-backup-utils-vMAJOR.MINOR.PATCH.tar.gz -
Führe den folgenden Befehl aus, um in das lokale Repositoryverzeichnis zu wechseln.
cd backup-utils -
Führe den folgenden Befehl aus, um die enthaltene
backup.config-example-Datei inbackup.configzu kopieren.cp backup.config-example backup.config -
Zum Anpassen deiner Konfiguration bearbeite
backup.configin einem Text-Editor.-
Wenn Sie GitHub Enterprise Server Backup Utilities zuvor mit Git aktualisiert haben, stellen Sie sicher, dass Sie Ihre vorhandene Konfiguration aus
backup.configin die neue Datei kopieren. Weitere Informationen finden Sie unter Upgraden GitHub Enterprise Server Backup Utilities. -
Legen Sie den Wert auf den
GHE_HOSTNAMEHostnamen oder die IP-Adresse Ihrer primären GitHub Enterprise Server Instanz fest.Hinweis
Wenn Ihre GitHub Enterprise Server-Instance als Cluster oder in einer Hochverfügbarkeitskonfiguration mithilfe eines Lastenausgleichs bereitgestellt wird, kann
GHE_HOSTNAMEder Hostname des Lastenausgleichs sein, solange der Lastenausgleich SSH-Zugriff über Port 122 auf Ihre GitHub Enterprise Server-Instance zulässt.Um sicherzustellen, dass eine wiederhergestellte Instanz sofort verfügbar ist, solltest du Sicherungen durchführen, die selbst in einer Georeplikationskonfiguration die primäre Instanz als Ziel haben.
-
Lege den
GHE_DATA_DIR-Wert auf den Dateisystempfad fest, unter dem du Backup-Momentaufnahmen speichern möchtest. Es wird empfohlen, einen Speicherort im selben Dateisystem wie dein Sicherungshost auszuwählen.
-
-
Um deinem Sicherungshost Zugriff auf deine Instanz zu gewähren, öffne die Einstellungsseite deiner primären Instanz unter
http(s)://HOSTNAME/setup/settings, und füge den SSH-Schlüssel des Sicherungshosts der Liste autorisierter SSH-Schlüssel hinzu. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen. -
Überprüfen Sie auf Ihrem Sicherungshost die SSH-Konnektivität mit Ihre GitHub Enterprise Server-Instance mit dem Befehl
ghe-host-check../bin/ghe-host-check -
Führe den folgenden Befehl aus, um eine erste vollständige Sicherung zu erstellen.
./bin/ghe-backup
Weitere Informationen zur erweiterten Verwendung finden Sie in der Projektdokumentation im README.For more information on advanced usage, see the GitHub Enterprise Server Backup Utilities README in the GitHub Enterprise Server Backup Utilities project documentation.
Aktualisieren GitHub Enterprise Server Backup Utilities
Beim Upgrade von GitHub Enterprise Server Backup Utilities müssen Sie eine Version auswählen, die mit Ihrer aktuellen Version von GitHub Enterprise Server kompatibel ist. Ihre Installation von GitHub Enterprise Server Backup Utilities muss mindestens dieselbe Version wie Ihre GitHub Enterprise Server-Instance haben und darf nicht mehr als zwei Versionen höher sein. Weitere Informationen finden Sie unter GitHub Enterprise Server den Versionsanforderungen in der GitHub Enterprise Server Backup Utilities Projektdokumentation.
-
Überprüfen Sie die Installationsmethode für GitHub Enterprise Server Backup Utilities. Frühere Versionen der GitHub Enterprise Server Backup Utilities unterstützten Installation und Updates in einem lokalen Git-Repository, diese Methode wird jedoch nicht mehr unterstützt.
-
Navigiere auf deinem Sicherungshost zu deinem GitHub Enterprise Server Backup Utilities-Verzeichnis, gewöhnlich
backup-utils. -
Führe den folgenden Befehl aus, um zu überprüfen, ob ein gültiges Arbeitsverzeichnis in einem Git-Repository vorhanden ist.
git rev-parse --is-inside-work-tree
-
-
Um zu bestimmen, wie Sie GitHub Enterprise Server Backup Utilities aktualisieren, überprüfen Sie die Ausgabe von
git rev-parse --is-inside-work-tree.- Wenn die Ausgabe lautet
true, GitHub Enterprise Server Backup Utilities wurde durch Klonen des Git-Repositorys des Projekts installiert. Um ein Upgrade durchzuführen, kopieren Sie Ihre vorhandene Konfiguration inbackup.config, und folgen Sie dann den Anweisungen in der Installation GitHub Enterprise Server Backup Utilities. - Wenn die Ausgabe
fatal: not a git repository (or any of the parent directories)enthält, wurde GitHub Enterprise Server Backup Utilities aus einer komprimierten Archivdatei extrahiert. Um ein Upgrade durchzuführen, folgen Sie den Anweisungen in der Installation GitHub Enterprise Server Backup Utilities.
- Wenn die Ausgabe lautet
Backup planen
Mithilfe des Befehls cron(8) oder eines ähnlichen Diensts zum Planen von Befehlen kannst du regelmäßige Backups auf dem Backup-Host planen. Die konfigurierte Sicherungshäufigkeit schreibt die ungünstigste Recovery Point Objective (RPO) in deinem Wiederherstellungsplan vor. Angenommen, du hast das Backup so geplant, dass es täglich um Mitternacht ausgeführt wird. In diesem Fall könntest du in einem Notfallszenario bis zu 24 Stunden an Daten verlieren. Es wird empfohlen, mit einem stündlichen Backup-Plan zu beginnen. Dadurch wird garantiert, dass schlimmstenfalls maximal eine Stunde an Daten am Hauptstandort vernichtet wird.
Wenn sich Backup-Versuche überschneiden, wird der Befehl ghe-backup mit einer Fehlermeldung abgebrochen. Diese gibt an, dass ein gleichzeitiges Backup vorhanden ist. In diesem Fall wird empfohlen, die Häufigkeit deiner geplanten Sicherungen zu verringern. Weitere Informationen finden Sie im Abschnitt „Planen von Sicherungen“ der GitHub Enterprise Server Backup Utilities README-Datei in der GitHub Enterprise Server Backup Utilities Projektdokumentation.
Wiederherstellen einer Sicherung
Im Falle eines längeren Ausfalls oder eines katastrophalen Ereignisses am primären Standort können Sie Ihre GitHub Enterprise Server-Instance wiederherstellen, indem Sie eine andere Instanz bereitstellen und eine Wiederherstellung über den Sicherungshost durchführen. Sie müssen den SSH-Schlüssel des Sicherungshosts zur Zielinstanz GitHub Enterprise als autorisierten SSH-Schlüssel hinzufügen, bevor Sie eine Instanz wiederherstellen.
Bei der Wiederherstellung von Sicherungen auf Ihre GitHub Enterprise Server-Instance können Sie nur Daten aus höchstens zwei Funktionsreleases zurück wiederherstellen. Wenn Sie beispielsweise eine Sicherung von GitHub Enterprise Server 3.0.x erstellen, können Sie die Sicherung auf einer Instanz wiederherstellen, die 3.2.x ausführt GitHub Enterprise Server . Sie können keine Daten aus einem Backup von GitHub Enterprise Server 2.22.x in einer Instanz mit Version 3.2.x wiederherstellen, da dies drei Versionssprünge bedeuten würde (von 2.22 auf 3.0, dann auf 3.1 und schließlich auf 3.2). Die Wiederherstellung muss zuerst in einer Instanz erfolgen, die 3.1.x ausführt, und dann auf 3.2.x aktualisiert werden.
Die Netzwerkeinstellungen sind von der Sicherungsmomentaufnahme ausgeschlossen. Nach der Wiederherstellung müssen Sie das Netzwerk in der Zielinstanz GitHub Enterprise Server manuell konfigurieren.
Voraussetzungen
- Stelle sicher, dass der Wartungsmodus für die primäre Instanz aktiviert ist und alle aktiven Prozesse abgeschlossen wurden. Weitere Informationen finden Sie unter Wartungsmodus aktivieren und planen.
- Beende die Replikation auf allen Replikatknoten in einer Hochverfügbarkeitskonfiguration. Weitere Informationen finden Sie unter Informationen zur Hochverfügbarkeitskonfiguration.
- Stellen Sie eine neue GitHub Enterprise Server Instanz bereit, die als Ziel für die Wiederherstellung Ihrer Sicherung verwendet werden soll. Weitere Informationen finden Sie unter Einrichten einer GitHub Enterprise Server-Instanz.
- Wenn bei Ihre GitHub Enterprise Server-InstanceGitHub Actions aktiviert ist, müssen Sie den externen Speicheranbieter für GitHub Actions auf der Ersatzinstanz konfigurieren. Weitere Informationen finden Sie unter Sichern und Wiederherstellen von GitHub Enterprise Server mit aktivierter GitHub Actions.
Starten des Wiederherstellungsvorgangs
Um Ihre GitHub Enterprise Server-Instance von Ihrem Sicherungshost mithilfe des letzten erfolgreichen Snapshots wiederherzustellen, verwenden Sie den Befehl ghe-restore. Du kannst die folgenden zusätzlichen Optionen mit ghe-restore verwenden.
- Das
-c-Flag überschreibt die Einstellungen, Zertifikate und Lizenzdaten auf dem Zielhost, selbst wenn es bereits konfiguriert ist. Lass dieses Flag weg, wenn du eine Testinstanz für Testzwecke einrichtest und die vorhandene Konfiguration auf dem Ziel beibehalten möchtest. Weitere Informationen finden Sie im Abschnitt "Verwenden von Sicherungs- und Wiederherstellungsbefehlen" der GitHub Enterprise Server Backup Utilities README im Github/backup-utils-Repository. - Mit dem
-s-Flag kannst du eine andere Backup-Momentaufnahme auswählen.
Nachdem du ghe-restore ausgeführt hast, bestätigt der Befehl die Wiederherstellung und gibt dann Details und den Status während des Vorgangs aus.
$ ghe-restore -c 169.154.1.1
> Checking for leaked keys in the backup snapshot that is being restored ...
> * No leaked keys found
> Connect 169.154.1.1:122 OK (v2.9.0)
> WARNING: All data on GitHub Enterprise appliance 169.154.1.1 (v2.9.0)
> will be overwritten with data from snapshot 20170329T150710.
> Please verify that this is the correct restore host before continuing.
> Type 'yes' to continue: yes
> Starting restore of 169.154.1.1:122 from snapshot 20170329T150710
# ...output truncated
> Completed restore of 169.154.1.1:122 from snapshot 20170329T150710
> Visit https://169.154.1.1/setup/settings to review appliance configuration.
Optional kannst du zum Überprüfen der Wiederherstellung eine IP-Ausnahmeliste konfigurieren, um den Zugriff auf eine bestimmte IP-Adressliste zuzulassen. Weitere Informationen finden Sie unter Wartungsmodus aktivieren und planen.
Auf einer Instanz in einer Hochverfügbarkeitskonfiguration meldet ghe-repl-status nach der Wiederherstellung auf neuen Datenträgern auf einer vorhandenen oder leeren Instanz möglicherweise, dass die Git- oder Alambic-Replikation aufgrund veralteter Server-UUIDs nicht synchron ist. Diese veralteten UUIDs können das Ergebnis eines außer Betrieb genommenen Knotens in einer Hochverfügbarkeitskonfiguration sein, der weiterhin in der Anwendungsdatenbank, aber nicht in der wiederhergestellten Replikationskonfiguration vorhanden ist.
Für die Bereinigung nach Abschluss der Wiederherstellung und vor dem Start der Replikation kannst du veraltete UUIDs mithilfe von ghe-repl-teardown entfernen. Wenn Sie weitere Unterstützung benötigen, besuchen Sie GitHub Enterprise-Support.
Überwachen des Sicherungs- oder Wiederherstellungsfortschritts
Während eines Sicherungs- oder Wiederherstellungsvorgangs kannst du das Hilfsprogramm ghe-backup-progress auf deinem Sicherungshost verwenden, um den Fortschritt des Vorgangs zu überwachen. Das Hilfsprogramm gibt den Fortschritt jedes Auftrags sequenziell aus.
Führen Sie den folgenden Befehl aus, um den Fortschritt auf dem Sicherungshost aus dem Verzeichnis zu überwachen, das den folgenden Befehl enthält GitHub Enterprise Server Backup Utilities.
bin/ghe-backup-progress
bin/ghe-backup-progress
Standardmäßig gibt das Hilfsprogramm den Fortschritt kontinuierlich aus, bis der Vorgang abgeschlossen ist. Du kannst eine beliebige Taste drücken, um zur Eingabeaufforderung zurückzukehren.
Optional können Sie den folgenden Befehl ausführen, um den aktuellen Fortschritt, den zuletzt abgeschlossenen Auftrag auszugeben und sofort zu beenden.
bin/ghe-backup-progress --once
bin/ghe-backup-progress --once