Hinweis
Die Möglichkeit zum Konfigurieren und Verwenden mehrerer Datenträger befindet sich in öffentliche Vorschau und kann geändert werden. Wir würden uns freuen, Ihr Feedback zur Vorschau zu hören. Sie können es mit Ihrem Kundenerfolgsteam teilen oder einen Kommentar im Communitydiskossionsbeitrag hinterlassen. Unsere bevorzugte Option besteht darin, Ihr Feedback mit Ihrem Kundenerfolgsteam zu teilen.
Warum werden weitere Datenträger für die GHES-Instanz eingeführt?
- Verbesserte Ressourcenverteilung:
- Unterschiedliche Dienste weisen eindeutige Datenträgeranforderungen auf.
- MySQL ist vor allem empfindlich gegenüber Latenz und IOPS.
- Einige Ressourcen (z. B. Repositorys) profitieren nicht so viel von teurem Blockspeicher.
- Maximierte VM-Grenzwerte:
- Ein einzelner Datenträger kann häufig die Einschränkungen einer Instanz nicht ausschöpfen.
- Aus Kostenperspektive ist es in der Regel nicht machbar oder lohnenswert, alles auf den teuersten oder schnellsten Speicher auszuführen.
- Klarere Trennung zwischen Ressourcenzuordnung und Diensten:
- Ressourcen können gezielt zugeordnet werden, um Ressourcenknappheit bei kritischen Diensten zu verhindern.
- Skalierung:
- Kunden in eigenständigen und hochverfügbaren Topologien können bei Bedarf skalieren.
Constraints
-
Multidaten-Datenträger werden nur in eigenständigen und hochverfügbaren Topologien (High Availability, HA) unterstützt.
-
Sobald mehrere Datenträger in einer Bereitstellung konfiguriert sind, kann diese Änderung für diese Bereitstellung nicht rückgängig gemacht werden.
-
Das Einrichten von Datenträgern mit mehreren Daten und das Migrieren von Daten erfordert in der Regel einige Ausfallzeiten.
- Sie können dies minimieren, indem Sie ein Replikat mit mehreren Datenlaufwerken konfigurieren, Daten vom Primärsystem replizieren und dann auf das Replikat umschalten.
- Wenn Sie mehrere Datenträger direkt zum Primärsystem hinzufügen, sollten Sie mit einer deutlich längeren Ausfallzeit rechnen.
-
Während der öffentlichen Vorschau sollten Datenträger mit mehreren Daten nur in Nichtproduktionsumgebungen verwendet werden.
-
Es wird nicht empfohlen, MySQL und Repositorys auf denselben Datenträger zu migrieren.
-
Derzeit können nur MySQL und Repositorys zu zusätzlichen Datenträgern migriert werden.
Ressourcenempfehlungen
Wenn Sie Datenträger hinzufügen, die so schnell oder schneller sind als Ihre aktuellen, sollten Sie eine verbesserte Leistung sehen. Speichergeräte werden in der Regel durch IOPS (Eingabe-/Ausgabevorgänge pro Sekunde), Durchsatz und Latenz gemessen. Für MySQL empfehlen wir die Verwendung eines Datenträgers mit geringerer Latenz und höherer IOPS als Der vorhandene Datenträger. Wählen Sie für Repositories einen Datenträger mit höherem iops und Durchsatz als der aktuelle Datenträger aus.
Bei Setups mit hoher Verfügbarkeit empfiehlt es sich, Multidatenträger sowohl auf den primären als auch auf allen Replikaten zu verwenden. Das Mischen von Konfigurationen, bei denen der primäre Datenträger mehrere Daten aufweist, das Replikat jedoch nicht, wird nicht empfohlen.
Einrichten mehrerer Datenträger und Datenpfade
Voraussetzungen
- Es wird empfohlen, vor den ersten Schritten eine aktuelle Sicherung Ihrer Daten zu erstellen.
- Erstellen Sie eine Testumgebung, um das Feature zu testen.
- Während der öffentlichen Vorschau empfehlen wir nur die Verwendung des Features in einer Testumgebung.
- Sobald das Feature allgemein verfügbar ist, empfehlen wir, das Feature in einer Nicht-Produktionsumgebung zu testen, bevor es in der Produktion verwendet wird.
Anweisungen
-
Sie können eine Neuinstallation von GHES durchführen oder eine vorhandene GHES-Instanz verwenden. Der Datenträger sollte auf
/data/userkonfiguriert sein. -
Fügen Sie der Instanz zusätzliche Blockspeichergeräte hinzu, nachdem die Einrichtung von
/data/userabgeschlossen ist.`ghe-storage-find` Wählt derzeit den ersten Blockspeicher für die Einrichtung `/data/user` basierend auf der alphabetischen Reihenfolge des Blockspeicherpfads aus. Dies geschieht beim ersten Start der GHES-Appliance.Um mehr Kontrolle darüber zu haben, welcher Datenträger für
/data/userverwendet wird, ist es besser, den Initialisierungsprozess mit nur einem zunächst angefügten Datenträger abzuschließen. -
Initialisieren Sie das Setup mit mehreren Datenträgern mithilfe der neuen Blockspeichergeräte. Führen Sie zum Initialisieren der Unterstützung für mehrere Datenträger die Ausführung aus
ghe-storage-multi-disk init. Bei jedem Neustart hängtghe-multi-disk.servicedie vorhandenen Datenträger automatisch an den richtigen Pfaden neu ein.Shell /usr/local/share/enterprise/ghe-storage-multi-disk init /dev/nvme2n1 db
/usr/local/share/enterprise/ghe-storage-multi-disk init /dev/nvme2n1 dbShell /usr/local/share/enterprise/ghe-storage-multi-disk init /dev/nvme3n1 git
/usr/local/share/enterprise/ghe-storage-multi-disk init /dev/nvme3n1 git
Bitte beachten Sie, dass /dev/nvme2n1 und /dev/nvme3n1 nur Beispielpfade sind. Möglicherweise stimmen sie nicht mit den Pfaden in Ihrem System überein. Ebenso sind db und git Beispiele. Sie können verschiedene Namen auswählen.
-
Wechseln Sie zum Wartungsmodus.
Shell gh es maintenance set --enabled true
gh es maintenance set --enabled true -
Migrieren Sie Die gewünschten Datenpfade.
So migrieren Sie MySQL:
Shell /usr/local/share/enterprise/ghe-storage-migrate-mysql db
/usr/local/share/enterprise/ghe-storage-migrate-mysql dbSo migrieren Sie Repositorys:
Shell /usr/local/share/enterprise/ghe-storage-migrate-repositories git
/usr/local/share/enterprise/ghe-storage-migrate-repositories git -
Beenden Sie den Wartungsmodus.
Shell gh es maintenance set --enabled false
gh es maintenance set --enabled false -
Testen Sie die Instanz für einen bestimmten Zeitraum, um sicherzustellen, dass alles wie erwartet funktioniert.
-
**Erst nach ausreichenden Tests**`/data/user/mysql-backup` und `/data/user/repositories-backup` entfernen.Wenn Sie diese Ordner während des Tests beibehalten, können Sie einen Rollback in einem Notfall durchführen. Nach ausreichenden Tests sollten Sie diese Sicherungsordner entfernen, um Speicherplatz freizugeben.
Leitfaden für Konfigurationen mit hoher Verfügbarkeit
Die folgenden Anleitungen tragen dazu bei, Ausfallzeiten bei Topologien mit hoher Verfügbarkeit (HA) zu reduzieren. Wenn Sie eine eigenständige Topologie verwenden, haben wir derzeit keine ähnlichen zusätzlichen Anleitungen.
Bei HA-Topologien besteht der beste Ansatz darin, ein neues Replikat zu erstellen, das mit mehreren Datenträgern konfiguriert ist, Daten vom Primärsystem zu replizieren und dann das Replikat zum Primärsystem zu befördern. Das Migrieren von Daten zu zusätzlichen Datenträgern auf der aktuellen Primären wird nicht empfohlen, da dieser Prozess zu erheblichen Ausfallzeiten führen kann.
- Richten Sie ein neues HA-Replikat mit besseren Datenträgern ein.
Um die Datenmigration zu planen, verwenden Sie du -sh /data/user/mysql und du -sh /data/user/repositories auf dem Primär, um die Speicherplatzanforderungen für das neue Replikat zu berechnen.
- Richte auf dem neuen HA-Replikat mehrere Datenträger ein.
- Biete die Möglichkeit, dass der primäre HA-Rechner auf den Replikator repliziert.
- Folgen Sie der Failoversequenz, wie in Initiieren eines Failovers zu deiner Replikat-Appliance dokumentiert.
Während der Replikationsprozess lange dauern kann, ist der Vorteil, dass er im Hintergrund ausgeführt wird, sodass die tatsächliche Unterbrechung des Wartungsmodus erheblich reduziert wird.
Beispiel: Konfigurieren zusätzlicher Datenträger
Dieses Beispiel veranschaulicht die erforderlichen Befehle und Ausgaben für die Initialisierung der Datenträger und die Datenmigration. Im Einzelnen wird /data/user/mysql nach /data/multi-disk/db/mysql und /data/user/repositories nach /data/multi-disk/git/repositories migriert.
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-multi-disk status
Checking system status...
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-multi-disk info
Dumping disk status and information...
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-multi-disk init /dev/nvme2n1 db
Starting initialization sequence for /dev/nvme2n1 at /data/multi-disk/db...
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-multi-disk init /dev/nvme3n1 git
Starting initialization sequence for /dev/nvme3n1 at /data/multi-disk/git...
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-migrate-mysql db
Start MySQL migration to /data/multi-disk/db...
Running checks..
Error: maintenance mode must be enabled before being able to proceed.
ERROR: Last Command: return 1 LINE: 36 ghe-storage-migrate-mysql
Script exited with exit code: 1
admin@ghe-test-primary:~$ ghe-maintenance -s
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-migrate-mysql db
Start MySQL migration to /data/multi-disk/db...
Success: /data/user/mysql moved to /data/multi-disk/db/mysql
Script exited with exit code: 0
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-migrate-repositories git
Start repository migration to /data/multi-disk/git...
Success: /data/user/repositories moved to /data/multi-disk/git
Script exited with exit code: 0
admin@ghe-test-primary:~$ ghe-maintenance -u
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-multi-disk status
Checking system status...
/data/user/mysql -> /data/multi-disk/db/mysql is correctly symlinked.
Repositories migration was detected...
/data/user/repositories -> /data/multi-disk/git/repositories is correctly symlinked.
admin@ghe-test-primary:~$ /usr/local/share/enterprise/ghe-storage-multi-disk info
Dumping disk status and information...
# Multi disk configuration /data/user/multi-disk-config:
DISK_DB="lvm"
DISK_GIT="lvm"
MYSQL_MIGRATION_PATH="/data/multi-disk/db/mysql"
REPOSITORIES_MIGRATION_PATH="/data/multi-disk/git/repositories"
admin@ghe-test-primary:~$ ls /var/log/multi-disk/
ghe-storage-init-db.log ghe-storage-init-git.log ghe-storage-migrate-mysql.log ghe-storage-migrate-repositories.log
Hygienekontrollen
Sowohl /usr/local/share/enterprise/ghe-storage-multi-disk status als auch /usr/local/share/enterprise/ghe-storage-multi-disk info sind hilfreich, um Ihre Einrichtung zu überprüfen.
Verwenden Sie Folgendes, um die aktuelle Konfiguration für mehrere Datenträger anzuzeigen:
$ cat /data/user/multi-disk-config
DISK_DB="lvm"
DISK_GIT="lvm"
MYSQL_MIGRATION_PATH="/data/multi-disk/db/mysql"
REPOSITORIES_MIGRATION_PATH="/data/multi-disk/git/repositories"
Führen Sie Folgendes aus, um Protokolle mit mehreren Datenträgern zu überprüfen, einschließlich Datenträgerinitialisierungs- und Migrationsereignissen:
$ ls -l /var/log/multi-disk/
total 56
-rw-r--r-- 1 root root 2398 Mar 3 13:22 ghe-storage-init-db.log
-rw-r--r-- 1 root root 2497 Mar 3 13:23 ghe-storage-init-git.log
-rw-r--r-- 1 root root 2201 Mar 3 13:28 ghe-storage-migrate-mysql.log
-rw-r--r-- 1 root root 37296 Mar 3 13:30 ghe-storage-migrate-repositories.log
Befehle zum Verwalten mehrerer Datenträger
Diese Befehle ermöglichen das Hinzufügen mehrerer Datenträger und das Migrieren bestimmter Dienste oder Ordnerpfade zu diesen Datenträgern. Die ursprünglichen Ordnerpfade werden beibehalten und statisch gehalten. Andere Dienste wissen nicht, dass sich etwas geändert hat. Die Pfade für statische Ordner werden mit den neu migrierten Pfaden verknüpft.
Zu den Befehlen gehören:
- ghe-storage-multi-disk
statusinitinfomountstart-services(nur für das Debuggen empfohlen)stop-services(nur für das Debuggen empfohlen)
- ghe-storage-migrate-repositories
- Migriert
/data/user/repositorieszu einem beliebigen Datenträgerpfad, der mitghe-storage-multi-disk initerstellt wurde.
- Migriert
- ghe-storage-migrate-mysql
- Migriert
/data/user/mysqlzu einem beliebigen Datenträgerpfad, der mitghe-storage-multi-disk initerstellt wurde.
- Migriert