Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

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
  • Den Dienst starten.

Updatevorgehen für Systeme 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 Systeme 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:

...

  • 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).

...

In dem reindexer63 Ordner des ES63-Migration Tools die Datei "reindex.properties" öffnen und die Werte wie folgt anpassen und abspeichern:

...

new_es_hostname=

...

new_es_port=9300

...

  • 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

...

  • 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.

...

Redline 5 uses a new version of Elasticsearch so it is necessary to migrate the metadata index.

An automatic migration of the Elasticsearch metadata index will occur after installation of redline 5 (including installation of Elasticsearch 6.3) and its start. The system will be under high load during the migration of the metadata index, so users of the system will experience a lower perfromance of redline. During the migration only the already migrated data is available for searching. Once the migration is completed, all objects will be searchable and the system load will return to usual values.

Our performance tests on adequately chosen hardware have shown that it is possible to migrate approximately 2.000.000 objects per hour.

Important: In order to sucessfully complete the the migration of Elasticsearch, it is necessary that the system has at least 16GB of RAM, while we recommend 32GB of RAM. Where necessary (depending on number of objects in the system), a separate server shall be provisioned for Elasticsearch.

Installation of Elasticsearch 6.3 

  • If enaio Service-Manager Service is running on the same server as the Elasticsearch, it has to be stopped prior to ES installation.
  • Stop elasticsearch 5.5.
  • Backup elasticsearch 5.5 data.
  • Uninstall elasticsearch 5.5.
  • Install elasticsearch 6.3 according to Installation Guide Version 5.0.

Update procedure 

Once the installation has been completed:

  • Copy the backed up Elasticsearch 5.5 data directory to the Elasticsearch 6.3 data directory.
  • Start elasticsearch 6.3.
  • Start Service-Manager 5.0.
  • After Service-Manager 5.0 is running, the Elasticsearch database will be updated to the new version by the IndexService.
  • If the system contains more than 3 million objects, an adequate timeslot for the update of Elasticsearch shall be chosen, in order to finish the migration without affecting use of system by standard users. 
    Our tests have shown that it is possible to migrate approximately 2.000.000 objects per hour.


In the case that you have to migrate several million objects and you can not have the downtime resulting from the migration – taken into account that newer objects are migrated first and are available as soon as they were processed – then we offer an offline migration tool. With this you can minimize your downtime to a delta-migration period. If you wish more information and/or want to use the tool, please get into contact with our support team (support@optimal-systems.de). We recommend to use the tool only in collaboration with our consulting team.