Blog_allgemein

Solr 6.1 – Backup und Restore jetzt auch für SolrCloud

Patricia Kraft

..., geboren 1988 in Augsburg, studierte Informatik und Multimedia an der Universität Augsburg. Nach dem Erreichen des Masters in diesem Fach stieg sie unmittelbar in die Suchbranche ein und begann 2015 ihre Karriere bei der SHI als Consultant für Search & Big Data. Durch das heterogene Arbeiten an Projekten – sowohl in der Beratung als auch in der Konzeption und Implementierung – erlangte sie einen umfassenden Überblick über alle Projekt-Phasen. Für den SHI-Blog teilt sie ihre Erfahrung aus zahlreichen Projekten in verschiedensten Branchen sowohl aus technischer als auch als aus unternehmerischer Sicht. Lieblingsdateiformat: JSON

Ausfallsicherheit ist eines der wichtigsten Kriterien für die Wahl einer SolrCloud-Lösung statt der Nutzung der Solr-Single-Core-Variante. Durch das Hinzufügen von Replikas lassen sich die Indizes der einzelnen Shards einer Collection duplizieren und sichern damit die Daten für den Fall, dass ein Solr-Knoten ausfällt.

Doch was, wenn gezielt ein bestimmter Zustand der SolrCloud gesichert werden soll, sodass er zu einem späteren Zeitpunkt wieder eingespielt werden kann? Bislang war der API-Aufruf zum Erstellen und Einspielen von Backups nur für einzelne Cores möglich, also auf den Single-Core-Modus von Solr zugeschnitten. Nutzer der SolrCloud mussten sich mit dem händischen Kopieren der Indizes behelfen oder jeden zu einer Collection gehörenden Core einzeln sichern – möglich, aber unpraktisch.

Ab Version 6.1 bietet Solr nun auch den SolrCloud-Nutzern API-Befehle zur einfachen Backup-Verwaltung. Über

/admin/collections?action=BACKUP&name=backupName&location=/path/to/backup/directory
&collection=collectionName

wird ein Backup mit Namen backupName für die Collection collectionName an der durch „location“ definierten Stelle generiert. Dieses Backup sichert nicht nur den (unter Umständen verteilten) Index, sondern legt im gleichen Zuge einen Sicherungsordner für die in ZooKeeper gespeicherten Daten an. Somit werden auch die Konfigurationsdateien der angegebenen Collection gesichert. Sollten hier also beispielsweise experimentelle Änderungen vorgenommen werden, kann die abgespeicherte Version im Falle eines Fehlers wiederverwendet werden.

Das Einspielen eines auf diese Weise erstellten Backups geschieht äquivalent durch den Aufruf:

/admin/collections?action=RESTORE&name=backupName&location=/path/to/backup/directory
&collection=restoredCollectionName

Es ist allerdings zu beachten, dass eine Wiederherstellung keine bereits existierende (oder gar die gesicherte Collection selbst) als Ziel haben darf! Dadurch wird gewährleistet, dass keine Collection versehentlich mit einem Backup überschrieben wird.

Um Clients davor zu bewahren, den Endpunkt für etwaige Indexierungs- oder Suchanfragen aufgrund eines solchen Backupprozesses ändern zu müssen, wird im Solr Reference Guide vorgeschlagen, denselben Alias-Namen für die gesicherte und die wiederhergestellte Collection zu nutzen. Alternativ ist der folgende Umweg denkbar, um die ursprüngliche Collection mit den gesicherten Daten zu füllen und trotzdem deren Verfügbarkeit zu gewährleisten:

Mit dem neuen Backup- und Restore-Mechanismus sorgt Solr in der Version 6.1 folglich dafür, dass die SolrCloud ihre Daten noch besser vor Ausfall und Datenverlust schützen kann.