Migration des Elasticsearch Dienstes von Version 5.5 auf Version 6.3
Mit diesem Release sind einige Vorkehrungen beim Update zu treffen, da der Elasticsearch Dienst auf eine höhere Version gehoben wurde und damit eine Migration der Indexdaten-Basis notwendig ist.
Lasttests auf einer ausreichend dimensionierten Hardware haben gezeigt, dass etwa 1.000.000 Objekte pro halbe Stunde migriert werden können.
Je nach Anzahl der gespeicherten Objekte empfehlen wir die folgenden 3 Verfahren:
Systeme mit unter 1 Millionen Objekten
Nach der Installation aller Release-Artefakte inkl. der Neuinstallation des eigenständigen Elasticsearch 6.3 Dienstes und dem Starten des Systems erfolgt eine automatische Migration der Elasticsearch Indexdaten. In dieser Zeit ist das System stark ausgelastet, d.h. ein Arbeiten ist nur bedingt möglich. Die Objekte sind auch nur nach und nach findbar. In der Regel sollten die Daten nach ca. 1 Stunde komplett zur Verfügung stehen.
Hinweis: Die unten unter "Updatevorgehen für System mit < 10 Mio Datensätzen" aufgeführten Schritte müssen in jedem Fall vor dem Start der Migration ausgeführt werden.
Systeme mit über 1 Millionen Objekten
In diesem Fall ist das Vorgehen das selbe wie bei Systemen mit unter 1 Million Objekten, mit der Ausnahme, dass das System über Nacht bzw. über das Wochenende migriert werden sollte, da mit einigen Stunden Zeit für die Migration zu rechnen ist.
Systeme mit über 10 Millionen Objekten
Für diesen Fall steht das separate "ES63-Migration" Tool für die Datenmigration Verfügung. Damit kann während der Produktion der Aufbau des neuen Indexes auf einem zweiten System erfolgen. Ist der neue Index vorhanden, muss dieser nun noch umgezogen werden und ein Delta-Update durchgeführt werden.
Zu beachten:
Während der Daten-Migration stehen der alte und neue Elasticsearch Dienst unter hoher Last und das System benötigt mindestens 16 GB, empfohlen sind 32 GB RAM. Ggf. muss ein zweiter Rechner zur Verfügung gestellt werden, auf dem der neue Elasticsearch Dienst installiert wird. Nach der Migration müssen die Daten und der Service auf das Produktionssystem transportiert werden.
Installation des Elasticsearch 6.3 Dienstes
- Wenn der enaio Service-Manager Dienst auf dem selben Server läuft, muss dieser vor der Installation angehalten werden.
- Das Elasticsearch 5.5 stoppen
- Datenverzeichnis sichern
- Elasticsearch 5.5 deinstallieren
- Elasticsearch 6.3 installieren, dafür elasticsearch-6.3.0.msi starten
- Den Dialogen des Setups folgen und data, log, config- Verzeichnisse konfigurieren
- Elasticsearch als Service installieren
- Den Name vom Cluster (empfohlen „es-red“) konfigurieren
- ICU-Plugin auswählen und installieren
- Setup abschließen
- Den Dienst noch nicht starten.
- Pluginverzeichnisse anpassen:
- Linguistic-Plugin und Security-Plugin in das Plugin-Verzeichis kopieren
- Die Datei java.policy in das Verzeichnis <Elasticsearch>\config kopieren
- Die Datei intrafind.yml in das Verzeichnis <Elasticsearch>\config kopieren und die IP-Adressen, die das Elasticsearch "sehen" dürfen, eintragen.
Es sollte mindestens die IP-Adressen des Service-Manager Servers und des Elasticsearch Servers eingetragen werden. - Im Verzeichnis <Elasticsearch>\config die Datei jvm.options um die folgende Zeile (mit dem Pfad zu java.policy vervollständigen!) erweitern:
-Djava.security.policy=<Pfad_zu_java.policy>
Bsp.: -Djava.security.policy=C:\enaio\elastic\config\java.policy - Im Verzeichnis <Elasticsearch>\config die Datei elasticsearch.yml um die folgenden Zeilen erweitern:
- http.type: if-netty4
network.host: [_site_, _local_]
script.max_compilations_rate: 300/1m
- Linguistic-Plugin und Security-Plugin in das Plugin-Verzeichis kopieren
- Den Dienst starten.
Updatevorgehen für System mit < 10 Mio Datensätzen
Folgende Schritte sind für Systeme mit weniger als 10 Mio. Objekten zu beachten:
- Das Elasticsearch Setup muss gemäß der obigen Anleitung durchgeführt werden.
(Wir empfehlen für den Speicherort der elasticsearch Datenbank einen schnellen Speicher - optimalerweise einen SSD-Speicher - zu verwenden.) - Nach dem Start des aktualisierten Systems wird die elasticsearch Datenbank auf die neue Version aktualisiert. Bei Produktivsystemen mit mehr als 1 Mio. Objekten sollte ein passendes Zeitfenster für das Update gewählt werden.
Es kann mit einer durchschnittlichen Dauer von 30 Minuten / 1 Mio. Datensätze gerechnet werden.
Updatevorgehen für System mit > 10 Mio Datensätzen
Für (produktive) Systeme mit mehr als 10 Mio. Objekten empfehlen wir die Verwendung des ES63-Migration Tools um die Downtime des (Produktions)Systems so gering wie möglich zu halten.
Das generelle Vorgehen sieht wie folgt aus:
- 1. Schritt: Offline Migration
- Backup der aktuellen Elasticsearch 1.7 Datenbank
- Einrichtung einer Standalone Elasticsearch 1.7 Installation mit der gesicherten 1.7 Datenbank
- Installation des Elasticsearch 6.3 Dienstes.
- Migration der gesicherten 1.7 Datenbank in eine 6.3 Datenbank mittels des ES63-Migration Tools
- 2. Schritt: Delta-Migration
- Transport der Elasticsearch 6.3 Datenbank zum Produktivsystem (falls nicht bereits der Fall)
- Akutalisierung von enaio inkl. Durchführung der Schritte von "Updatevorgehen für Systeme mit < 10 Mio. Datensätzen"
- enaio erkennt beim Starten die bereits vorbefüllte Elasticsearch 6.3 Datenbank und vervollständigt den Datenbestand mit den noch fehlenden Datensätzen aus der laufenden Elasticsearch 1.7 Instanz
- Nach dem Abschluss kann die Elasticsearch 1.7 Instanz abgeschaltet werden.
Schritt für Schritt Anleitung:
- Die Zip-Datei des im Setups-Ordner bereitgestellten ES63-Migration Tools entpacken
- Den elasticsearch-1.7.1 Ordner auf den Server und das Laufwerk verschieben, wo die Standalone Elasticsearch 1.7 Instanz laufen soll
- Die Umgebungsvariable INTRAFIND_LICENSE( Pfad zur intrafind.lic Datei) einrichten
- Backup der aktuellen Elasticsearch 1.7 Datenbank
- Den enaio Service-Manager Dienst stoppen
- Den Ordner "ees-cluster" aus "<service-manager-data>\eesdata\" in den "data" Unterordner des elasticsearch-1.7.1 Ordners aus Schritt 2 kopieren.
In der Datei "elasticsearch-1.7.1\bin\elasticsearch.in.bat" über die Einstellung "set ES_MAX_MEM=4g" den maximal verfügbaren Arbeitsspeicher für die elasticsearch 1.7 Instanz konfigurieren.
Wenn möglich, sollte hier 8 GB (8g) oder optimalerweise 16 GB (16g) verwendet werden. Jedoch maximal die Hälfte des insgesamt zur Verfügung stehenden Arbeitsspeichers (der Rest wird vom Betriebssystem für Datei-Handles verwendet).- Mittels "elasticsearch-1.7.1\bin\elasticsearch.bat" die Elasticsearch 1.7 Instanz starten.
- Mittels http://<ip-des-servers>:9500/_cat/indices ermitteln, ob der enaiored_* Index den Status "yellow" (oder auch "green") hat.
- Installation und Start des neuen Elasticsearch 6.3 Dienstes wie oben beschrieben.
Dies kann bei Ressourcenknappheit auf einem temporären Server geschehen. Am Ende der Offline Migration muss die Datenbank dann in die Produktivinstallation transportiert werden. - Start der Migration
In dem reindexer63 Ordner des ES63-Migration Tools die Datei "reindex.properties" öffnen und die Werte wie folgt anpassen und abspeichern:
Name Beschreibung new_es_hostname=
Hostname oder IP-Adresse des Servers auf dem die Elasticsearch 6.3 Instanz läuft new_es_port=9300
Der Transport-Port auf dem die Elasticsearch 6.3 Instanz läuft. Wenn nicht manuell geändert, stimmt 9300. old_es_hostname= Hostname oder IP-Adresse des Servers auf dem die Standalone Elasticsearch 1.7 Instanz läuft old_es_port=9500 Der HTTP-Port auf dem die Elasticsearch 1.7 Instanz läuft. Wenn nicht manuell geändert, stimmt 9500. server_rest= Hostname oder IP-Adresse des Servers auf dem der enaio DMS-Service läuft server_user=root Benutzername des Administrator-Benutzers für den DMS-Service (root ist i.d.R. richtig) server_pass=optimal Passwort des Administrator-Benutzers für den DMS-Service Die Datei "reindexer6.3.bat ausführen.
Dies startet das Migrations-Tool. Der Verlauf ist in der reindex.log Datei im Unterordner "log" zu verfolgen.
Das Tools kann mehrfach (nacheinander, nicht parallel) ausgeführt werden und setzt nach Abbruch und erneutem Aufruf am richtigen Punkt an bzw. vervollständigt ggf. entstandene Lücken im Zieldatenbestand. Dies verlängert jedoch die Laufzeit des Tools.
- Nach der Fertigstellung des Tools den Elasticsearch 6.3 Dienst stoppen und die Datenbank ("es-red" Ordner) aus dem data Ordner der Elasticsearch 6.3 Installation in den data Ordner der produktiven Elasticsearch 6.3 Installation kopieren oder verschieben sofern sich die beiden Installationen unterscheiden.
- Start der Delta-Migration:
- Alle enaio Dienste stoppen
- Alle enaio Komponenten auf die neue Version aktualisieren und die Schritte unter "Updatevorgehen für System mit < 10 Mio Datensätzen" durchführen.
- Der enaio Service-Manager erkennt beim Starten die bereits vorbefüllte Elasticsearch 6.3 Datenbank und vervollständigt den Datenbestand mit den noch fehlenden Datensätzen aus der laufenden Elasticsearch 1.7 Instanz
- Nach Fertigstellung der Migration kann (und sollte) der elasticsearch 1.7 MicroService "ees" abgeschaltet und entfernt werden. Das geht wie folgt:
- Den enaio Service-Manager Dienst stoppen
- In der Datei <servicemanager>\config\servicewatcher-sw.yml das komplette MicroService-Profil "ees" entfernen und die Datei abspeichern.
- Den enaio Service-Manager Dienst wieder starten.
- Die Migration ist abgeschlossen. enaio verwendet nun ausschließlich die Elasticsearch 6.3 Datenbank. Die Elasticsearch 1.7 Datenbank kann gelöscht (oder verschoben) werden.