Minio


(Photo by Nils Schirmer on Unsplash)

Ich hatte schon vor einiger Zeit etwas über minio gehört, einem S3-kompatiblen Server. Das sah interessant aus, aber ich sah damals keine wirkliche Anwendung dafür.

Durch eine Schulung bin ich mit einem Enterprise-Tool konfrontiert worden, welches genau diese S3-Lösung verwendet. Da ich zudem auch noch dabei bin, eine Nextcloud-Instanz aufzusetzen und ich nach einer Alternative für ein Storage in Gluster suchte, die eine höhere Performance bietet, habe ich mir testweise zwei kleine minio-Instanzen in einem PoC aufgesetzt und mir angeschaut, was das System zu bieten hat.

Je mehr ich mich mit S3 und Minio befasse, umso mehr Szenarien fallen mir ein, wie ich S3 einsetzen kann.

Szenarien

  • Backup mit restic - Spiegeln der Backups auf andere S3-Knoten
  • Nextcloud Daten in S3 (root-Verzeichnis)
  • git annex
  • Docker Registry

Mirror

minio hat auch ein kleines Tool: mc.

Damit kann man von der Shell aus Kommandos auf S3-Systeme loslassen und z. B. Inhalte von Buckets anzeigen lassen oder Buckets erzeugen oder löschen. Eine Funktion ist mirror. Hier kann man den Zustand eines Buckets sogar eines kompletten S3-Systems auf ein anderes spiegeln.

Kommen neue Objekte auf einem Bucket an, werden sie direkt auf den anderen übertragen. Mit der Option --remove werden Objekte auf dem Spiegel gelöscht, wenn sie auf dem primären Bucket gelöscht werden.

Hier kann man sich die unterschiedlichsten Szenarien für einfallen lassen:

  • Backup: Lokales Backup per restic und per Mirror das Backup irgendwo in der Welt spiegeln. Dies funktioniert z. B. sehr gut bei Backups auf root-Servern im Internet, wo man lokal eine Kopie haben möchte. Fliegt einem die Maschine um die Ohren, muß man nur minio und restic wieder darauf installieren und sich dann wiederum per mirror von der lokalen Maschine das Backup zurückbefördern. Das Backup fließt langsam auf den Spiegel, bei incrementellem Backup reicht das aber allemal.
  • Cluster: Eine Maschine betreibt einen Service, der die Daten im lokalen S3 vorhält. Fällt die Maschine aus übernimmt eine andere Maschine, die dann von ihrem lokalen S3 die Daten bekommt (die ja gespiegelt sind).

See also