MinIO – eine hervorragende Lösung, wenn es darum geht, eine objektspeicherbasierte Lösung einfach und unkompliziert zu organisieren. Die einfache Einrichtung, zahlreiche Plattformen und die gute Leistung haben zur Beliebtheit beigetragen. Daher gab es für uns keinen anderen Weg, als vor einem Monat die Kompatibilität bekanntzugeben. . Darunter eine so wichtige Funktion wie die Unveränderlichkeit. Tatsächlich bietet MinIO ein ganzes in der Dokumentation, die unserer Integration gewidmet ist.
Deshalb sprechen wir heute darüber, wie man:
- MinIO sehr schnell einrichtet.
- MinIO etwas langsamer, aber deutlich qualitätsorientierter einrichtet.
- es als Archive Tier für ein skalierbares Veeam SOBR-Repository nutzt.

Was bist du?
Eine kurze Einführung für diejenigen, die noch nicht mit MinIO in Berührung gekommen sind. Es handelt sich um einen Open-Source-Objektspeicher, der mit dem Amazon S3 API kompatibel ist. Es wird unter der Apache v2-Lizenz veröffentlicht und folgt der Philosophie des spartanischen Minimalismus.
Das bedeutet, dass es keine umfangreiche GUI mit Dashboards, Grafiken und zahlreichen Menüs gibt. MinIO startet einfach seinen Server mit einem einzigen Befehl, auf dem Daten mithilfe der gesamten S3 API gespeichert werden können. Es ist jedoch wichtig, darauf hinzuweisen, dass diese Einfachheit täuschen kann, wenn es um die verwendeten Ressourcen geht. RAM und CPU werden ordentlich beansprucht, aber dazu mehr später. Übrigens verwenden solche Lösungen wie FreeNAS und TrueNAS im Hintergrund MinIO.
Damit kann die Einführung abgeschlossen werden.
Die Konfiguration von MinIO ist sehr schnell.
Die Einrichtung ist so schnell, dass wir sie sowohl für Windows als auch für Linux betrachten werden. Es gibt auch Optionen für Docker, Kubernetes und sogar für macOS, aber das Prinzip bleibt überall gleich.
Also, im Fall von Windows gehen wir auf die offizielle Website und laden die neueste Version herunter. Dort finden wir auch die Anleitung zum Start:
minio.exe server F:Data
Und dort ist auch der Link zu einem etwas detaillierteren . Es macht keinen Sinn, den Anweisungen nicht zu folgen, also starten wir und erhalten ungefähr diese Antwort.
Das ist alles! Der Speicher funktioniert und Sie können mit der Arbeit beginnen. Ich habe nicht gelogen, als ich sagte, dass MinIO Minimalismus ist und einfach funktioniert. Wenn Sie dem bei der Einrichtung bereitgestellten Link folgen, können Sie maximal einen Bucket erstellen. Und dann können Sie mit dem Schreiben von Daten beginnen.
Für Linux-Fans bleibt alles ebenso einfach. Hier ist eine einfache Anleitung:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /dataDas Ergebnis wird sich nicht von dem bisher Gesehenen unterscheiden.
Die Konfiguration von MinIO ist etwas durchdachter.
Wie wir verstehen, war der vorherige Absatz Kinderspiel für Testzwecke. Und ehrlich gesagt, wir nutzen MinIO sehr häufig zu Testzwecken, wofür wir uns keineswegs schämen. Natürlich funktioniert es, aber es ist peinlich, so etwas über die Testumgebung hinaus zu bringen. Daher nehmen wir uns einen Feilen und machen es besser.
HTTPS
Der erste zwingende Schritt auf dem Weg zur Produktion ist die Verschlüsselung. Im Netz gibt es bereits Millionen von Anleitungen, wie man Zertifikate zu MinIO hinzufügt, aber der allgemeine Plan ist folgender:
- Erstellen Sie ein Zertifikat.
- Im Fall von Windows legen Sie es in C:Users%User%.miniocerts.
- Im Fall von Linux in ${HOME}/.minio/certs.
- Starten Sie den Server neu.
Das übliche Let’s Encrypt ist langweilig und überall beschrieben. Unser Weg ist der Weg des Samurais, also laden wir im Fall von Windows herunter. Im Fall von Linux überprüfen wir einfach, ob openssl installiert ist. Dann machen wir ein wenig Konsolen-Magie:
- Wir erstellen die Schlüssel: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
- Wir erstellen ein Zertifikat basierend auf dem Schlüssel: openssl req -new -x509 -days 3650 -key private.key -out public.crt
- Wir kopieren private.key und public.crt in den oben angegebenen Ordner.
- Wir starten MinIO neu.
Wenn alles richtig gelaufen ist, erscheinen etwa solche Zeilen im Status.

Wir aktivieren MinIO Erasure Coding.
Zuerst ein paar Worte zum Thema. Kurz gesagt: Es ist ein softwareseitiger Schutz der Daten vor Beschädigung und Verlust. Wie RAID, nur viel zuverlässiger. Während klassisches RAID6 den Verlust von zwei Festplatten tolerieren kann, übersteht MinIO entspannt den Verlust von der Hälfte. Diese Technologie wird detaillierter im beschrieben. Aber wenn man das Wesentliche betrachtet, basiert es auf der Implementierung von Reed-Solomon-Codes: Alle Informationen werden in Form von Datenblöcken gespeichert, zu denen Paritätsblöcke gehören. Es scheint, als wäre dies bereits oft gemacht worden, aber es gibt ein wichtiges „Aber“: Wir können das Verhältnis von Paritäts- zu Datenblöcken für die gespeicherten Objekte ausdrücklich angeben.
Möchten Sie 1:1? Kein Problem!
Möchten Sie 5:2? Kein Problem!
Eine sehr wichtige Funktion, wenn Sie mehrere Nodes gleichzeitig nutzen und Ihre eigene Balance zwischen maximaler Datensicherheit und eingesetzten Ressourcen finden möchten. Standardmäßig verwendet MinIO die Formel N/2 (wobei N die Gesamtzahl der Festplatten ist), d.h. es teilt Ihre Daten über N/2 Datenträger und N/2 Paritätsfestplatten auf. Auf den Punkt gebracht: Sie können die Hälfte der Festplatten verlieren und die Daten wiederherstellen. Dieses Verhältnis wird über , festgelegt, was Ihnen ermöglicht, selbst zu entscheiden, was wichtiger ist: Zuverlässigkeit oder Kapazität.
Im Leitfaden wird folgendes Beispiel angeführt: Angenommen, Sie haben eine Installation mit 16 Festplatten und müssen eine Datei mit einer Größe von 100 MB speichern. Wenn die Standardeinstellungen verwendet werden (8 Festplatten für Daten, 8 für Paritätsblöcke), nimmt die Datei in der Regel fast das Doppelte an Platz ein, also 200 MB. Bei einem Verhältnis von 10/6 wären es 160 MB. 14/2 — 114 MB.
Ein weiteres wichtiges Merkmal von MinIO im Vergleich zu RAID: Falls Festplatten ausfallen, arbeitet MinIO auf der Objektebene und stellt diese nacheinander wieder her, ohne den Betrieb des gesamten Systems zu stoppen. Währenddessen müsste ein herkömmliches RAID das gesamte Volume wiederherstellen, was unvorhersehbar lange dauern kann. Nach meinem Wissen hat ein Rack, das nach dem Ausfall von zwei Platten in die Nachzählung ging, anderthalb Wochen benötigt. Das war äußerst unangenehm.
Und ein wichtiger Hinweis: MinIO unterteilt alle Festplatten für Erasure Coding in Sets von 4 bis 16 Festplatten, wobei die maximal mögliche Set-Größe verwendet wird. In der Folge wird ein Informationsstück nur innerhalb eines Sets gespeichert.
Das klingt alles sehr gut, aber wie kompliziert wird die Einrichtung sein? Lassen Sie uns das anschauen. Wir nehmen den Befehl zum Starten und listen einfach die Festplatten auf, auf denen der Speicher erstellt werden soll. Wenn alles richtig gemacht wird, sehen wir im Bericht die Anzahl der verwendeten Festplatten. Und ein Hinweis: Es ist nicht ratsam, auf einem Host sofort die Hälfte der Festplatten hinzuzufügen, da dies zu Datenverlust führen kann.
c:minio>minio.exe server F: G: H: I: J: K:
Zur Verwaltung und Konfiguration des MinIO-Servers benötigen wir einen Agenten, den wir hier herunterladen können. von der offiziellen Webseite.
Um die Finger nicht zu verschleißen, indem Sie ständig die Adresse und die Zugangsschlüssel eingeben (was zudem unsicher wäre), ist es praktisch, beim ersten Start sofort ein Alias nach der Formel mc alias set [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY] zu erstellen.
mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKEOder Sie können sofort Ihren Host hinzufügen:
mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEYUnd dann erstellen wir einen immutable Bucket mit diesem eleganten Befehl:
mc mb --debug -l veeamS3/immutable
mc: PUT /immutable/ HTTP/1.1
Host: 172.17.32.52:9000
User-Agent: MinIO (windows; amd64) minio-go/v7.0.5 mc/2020-08-08T02:33:58Z
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20200819/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-bucket-object-lock-enabled;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Bucket-Object-Lock-Enabled: true
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
X-Amz-Date: 20200819T092241Z
Accept-Encoding: gzip
mc: HTTP/1.1 200 OK
Content-Length: 0
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Date: Wed, 19 Aug 2020 09:22:42 GMT
Location: /immutable
Server: MinIO/RELEASE.2020-08-16T18-39-38Z
Vary: Origin
X-Amz-Request-Id: 162CA0F9A3A3AEA0
X-Xss-Protection: 1; mode=block
mc: Response Time: 253.0017ms—debug zeigt nicht nur die Endmeldung, sondern auch detailliertere Informationen an.
-l bedeutet —with-lock, was immutable bedeutet.
Wenn Sie jetzt zur Weboberfläche zurückkehren, wird dort unser neuer Bucket erscheinen.

Das ist bisher alles. Wir haben einen sicheren Speicher erstellt und sind bereit, mit der Integration in Veeam fortzufahren.
Wir können auch sicherstellen, dass alles einwandfrei funktioniert:
c:minio>mc admin info veeamS3
● 172.17.32.52:9000
Uptime: 32 Minuten
Version: 2020-08-16T18:39:38Z
Netzwerk: 1/1 OK
Laufwerke: 6/6 OK
0 B Verwendet, 1 Bucket, 0 Objekte
6 Laufwerke online, 0 Laufwerke offlineMinIO und Veeam
Achtung! Falls Sie aus irgendeinem unglaublichen Grund über HTTP arbeiten möchten, erstellen Sie unter HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Veeam Backup and Replication einen DWORD Schlüssel SOBRArchiveS3DisableTLS. Setzen Sie den Wert auf 1 und beachten Sie, dass wir ein solches Verhalten entschieden missbilligen und niemandem empfehlen.
Achtung nochmals! Wenn Sie aufgrund eines Missverständnisses weiterhin Windows 2008 R2 verwenden, erhalten Sie beim Versuch, MinIO mit Veeam zu verbinden, wahrscheinlich eine Fehlermeldung wie: Verbindung zum Amazon S3-Endpunkt konnte nicht hergestellt werden. Dies kann mit einem offiziellen Patch behoben werden von .
Nun, die Vorbereitungen sind abgeschlossen, lassen Sie uns die VBR-Oberfläche öffnen und zum Tab Backup-Infrastruktur wechseln, wo wir den Assistenten zum Hinzufügen eines neuen Repositories aufrufen.

Natürlich interessiert uns Object Storage, insbesondere S3-kompatibel. Im sich öffnenden Wizard vergeben wir einen Namen, durchlaufen die Schritte zur Angabe der Adresse und des Kontos. Falls erforderlich, vergessen wir nicht, das Gateway anzugeben, über das die Anfragen an den Speicher proxyisiert werden.

Dann wählen wir den Bucket, den Ordner aus und setzen das Häkchen bei Make recent backups immutable. Oder wir lassen es weg. Aber da wir bereits einen Speicher mit Unterstützung dieser Funktion erstellt haben, wäre es schade, sie nicht zu nutzen.

Next > Finish und erfreuen uns am Ergebnis.
Jetzt müssen wir ihn als Capacity Tier zum SOBR-Repository hinzufügen. Dafür erstellen wir entweder ein neues oder bearbeiten das bestehende. Uns interessiert der Schritt Capacity Tier.

Hier müssen wir auswählen, nach welchem Szenario wir arbeiten werden. Alle Optionen sind recht gut in einem anderen , daher möchte ich mich nicht wiederholen.
Am Ende des Wizards werden automatisch Aufgaben zum Kopieren oder Verschieben von Backups gestartet. Wenn es jedoch nicht in Ihren Plan passt, sofort alle Systeme zu belasten, stellen Sie unbedingt zulässige Intervalle für die Ausführung über die Schaltfläche Window ein.

Und natürlich kann man separate Backup-Kopien der Aufgaben erstellen. Einige finden das sogar bequemer, da sie etwas transparenter und vorhersehbarer für den Benutzer sind, der nicht in die Details der Funktionsweise des Kapazitätsmanagements eintauchen möchte. Und es gibt dort genügend Details, daher empfehle ich erneut den entsprechenden Artikel über den obigen Link.
Und schließlich — die Antwort auf die fiese Frage: Was passiert, wenn man versucht, ein Backup aus dem Immutable Speicher zu löschen?
Hier ist die Antwort:

Das wäre es für heute. Wie gewohnt, hier ist eine Liste nützlicher Themen zu diesem Thema:
- Handbuch
- Beispiel zur Verwendung .
- Allgemeine Anleitung zur Einrichtung .
- Der Thread auf unserem zu S3-Speichern.
Quelle: habr.com
