Deshalb werden wir heute darüber sprechen, wie:
- Das Einrichten von MinIO ist sehr schnell.
- Das Einrichten von MinIO ist etwas weniger schnell, aber viel besser.
- Verwenden Sie es als Archivstufe für das skalierbare Veeam SOBR-Repository.
Was bist du?
Eine kurze Einführung für diejenigen, die MinIO noch nicht kennengelernt haben. Es ist ein Open Source-Objektspeicher, der mit der Amazon S3-API kompatibel ist. Es wird unter der Apache v2-Lizenz veröffentlicht und entspricht der Philosophie des spartanischen Minimalismus.
Das heißt, es gibt keine verteilte Benutzeroberfläche mit Dashboards, Diagrammen und zahlreichen Menüs. MinIO startet seinen Server einfach mit einem Befehl, mit dem Sie Daten einfach mit der vollen Leistung der S3-API speichern können. Es sollte jedoch beachtet werden, dass diese Einfachheit in Bezug auf die verwendeten Ressourcen täuschen kann. RAM und CPU werden perfekt absorbiert, aber die Gründe werden unten angegeben. Übrigens verwenden Mähdrescher wie FreeNAS und TrueNAS MinIO unter der Haube.
Diese Einführung kann abgeschlossen werden.
Das Einrichten von MinIO ist sehr schnell
Das Einrichten ist so schnell, dass wir es für Windows und Linux behandeln. Es gibt Optionen für Docker, Kubernetis und sogar Makosi, aber die Bedeutung ist überall gleich.
Besuchen Sie im Fall von Windows die offizielle Website https://min.io/download#/windows und laden Sie die neueste Version herunter. An derselben Stelle beachten wir die Startanweisungen:
minio.exe server F:\Data
Außerdem gibt es einen Link zu einer etwas detaillierteren Kurzanleitung . Es hat keinen Sinn, den Anweisungen nicht zu glauben, also rennen wir und bekommen so etwas.

Das ist alles! Der Speicher funktioniert und Sie können damit arbeiten. Ich habe nicht gescherzt, als ich sagte, dass MinIO Minimalismus ist und einfach funktioniert. Wenn Sie dem beim Start vorgeschlagenen Link folgen, können Sie maximal einen dort verfügbaren Bucket erstellen. Und Sie können anfangen, Daten zu schreiben.
Für Linux-Liebhaber bleibt alles nicht weniger einfach. Die einfachste Anweisung:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
Das Ergebnis ist nicht von dem zu unterscheiden, was zuvor gesehen wurde.
Das Einrichten von MinIO ist etwas sinnvoller
Nach unserem Verständnis ist der vorige Absatz zu Testzwecken ein Unfug. Und ehrlich gesagt verwenden wir zum Testen von MinIO sehr häufig, was wir überhaupt nicht schämen zuzugeben. Natürlich funktioniert es, aber es ist eine Schande, so etwas jenseits von Prüfständen zu ertragen. Deshalb nehmen wir eine Datei in die Hand und beginnen, uns daran zu erinnern.
HTTPS
Der erste obligatorische Schritt auf dem Weg zur Produktion ist die Verschlüsselung. Es gibt bereits eine Million und tausend Handbücher im Netzwerk zum Hinzufügen von Zertifikaten zu MiniIO, aber ihr allgemeiner Plan lautet wie folgt:
- Erstellen Sie ein Zertifikat
- Geben Sie Windows unter C: \ Users \% User% \. Minio \ certs ein
- Bei Linux in $ {HOME} /. Minio / certs
- Wir starten den Server neu
Das banale Let's Encrypt ist langweilig und wird überall beschrieben. Unser Pfad ist also der Pfad der Samurai. Bei Windows laden wir Cygwin herunter , und bei Linux überprüfen wir nur, ob wir openssl installiert haben. Und etwas Konsolenmagie machen:
- Schlüssel erstellen: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
- Erstellen Sie ein Zertifikat nach Schlüssel: openssl req -new -x509 -days 3650 -key private.key -out public.crt
- Kopieren Sie private.key und public.crt in den obigen Ordner
- Starten Sie MinIO neu
Wenn alles so gelaufen ist, wie es sollte, werden im Status ungefähr die folgenden Zeilen angezeigt.

Aktivieren Sie die MinIO-Löschcodierung
Zunächst ein paar Worte zum Thema. Kurz gesagt: Es handelt sich um einen softwarebasierten Datenschutz gegen Beschädigung und Verlust. Wie ein Überfall, nur viel zuverlässiger. Während es sich klassisches RAID6 leisten kann, zwei Laufwerke zu verlieren, ist es für MinIO angenehm, die Hälfte zu verlieren. Die Technologie wird im offiziellen Handbuch ausführlicher beschrieben . Wenn Sie jedoch das Wesentliche betrachten, dann ist dies die Implementierung von Reed-Solomon-Codes: Alle Informationen werden in Form von Datenblöcken gespeichert, zu denen es Paritätsblöcke gibt. Und es scheint, dass all dies bereits viele Male getan wurde, nur gibt es ein wichtiges "aber": Wir können das Verhältnis von Paritätsblöcken zu Datenblöcken für gespeicherte Objekte explizit angeben.
Willst du 1: 1? Bitte schön!
Willst du 5: 2? Kein Problem!
Eine sehr wichtige Funktion, wenn Sie mehrere Knoten gleichzeitig verwenden und Ihr eigenes Gleichgewicht zwischen maximaler Datensicherheit und verbrauchten Ressourcen finden möchten. Standardmäßig verwendet MinIO die N / 2-Formel (wobei N die Gesamtzahl der Festplatten ist), d. H. teilt Ihre Daten zwischen N / 2 Datenplatten und N / 2 Paritätsplatten auf. In einen Menschen übersetzen: Sie können die Hälfte der Festplatten verlieren und Daten wiederherstellen. Dieses Verhältnis wird über die Speicherklasse festgelegt , sodass Sie unabhängig auswählen können, was wichtiger ist: Zuverlässigkeit oder Kapazität.
Das Handbuch enthält ein Beispiel: Angenommen, Sie haben eine Installation auf 16 Festplatten und müssen eine Datei mit 100 MB speichern. Wenn die Standardeinstellungen verwendet werden (8 Datenträger für Daten, 8 für Paritätsblöcke), nimmt die Datei möglicherweise fast die doppelte Größe ein, d. H. 200 MB. Wenn das Laufwerksverhältnis 10/6 beträgt, werden 160 MB benötigt. 14/2 - 114 Mb.
Ein weiterer wichtiger Unterschied zu Raids: Wenn Datenträger gelöscht werden, arbeitet MinIO auf Objektebene und stellt einen nach dem anderen wieder her, ohne das gesamte System anzuhalten. Während eines normalen Raids muss das gesamte Volume wiederhergestellt werden, was unvorhersehbar lange dauert. Im Gedächtnis des Autors wurde das Plattenregal, das nach dem Verlust von zwei Platten anderthalb Wochen lang nachgezählt wurde. Es war sehr unangenehm.
Und ein wichtiger Hinweis: MinIO unterteilt alle Festplatten für die Löschcodierung in Sätze von 4 bis 16 Festplatten, wobei die größtmögliche Satzgröße verwendet wird. Und in Zukunft wird eine Information nur noch in einem Satz gespeichert.
Das klingt alles großartig, aber wie schwierig wird das Setup sein? Lassen Sie uns einen Blick darauf werfen. Wir nehmen den Befehl zum Starten und listen einfach die Festplatten auf, auf denen wir Speicher erstellen müssen. Wenn alles richtig gemacht wurde, sehen wir im Bericht die Anzahl der verwendeten Festplatten. Und raten Sie, dass es sinnlos ist, die Hälfte der Festplatten gleichzeitig einem Host hinzuzufügen, da dies einen Datenverlust darstellt.
c:\minio>minio.exe server F:\ G:\ H:\ I:\ J:\ K:\

Weiterhin steuern und den Server anpassen Minio wir einen Agenten benötigen, die Sie alle herunterladen können das gleiche mit der offiziellen Website.
Um Ihre Finger nicht zu löschen, ist es beim ersten Eingeben der Adresse und der Zugriffstasten (und es ist unsicher) praktisch, beim ersten Start sofort einen Alias mit der Formel mc zu erstellen. SCHLÜSSEL]
mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKE
Oder Sie können Ihren Host direkt hinzufügen:
mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEY
Und dann werden wir einen unveränderlichen Eimer mit einem schönen Team schaffen
mc mb --debug -l veeamS3/immutable
mc: <DEBUG> 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: <DEBUG> 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: <DEBUG> Response Time: 253.0017ms
Mit --debug können Sie nicht nur die endgültige Nachricht, sondern auch detailliertere Informationen anzeigen .
-l bedeutet --with-lock, was unveränderlich bedeutet.
Wenn wir jetzt zur Weboberfläche zurückkehren, wird dort unser neuer Bucket angezeigt .

Das ist alles für jetzt. Wir haben einen sicheren Speicher erstellt und sind bereit, mit der Integration in Veeam fortzufahren.
Sie können auch sicherstellen, dass alles perfekt funktioniert:
c:\minio>mc admin info veeamS3
● 172.17.32.52:9000
Uptime: 32 minutes
Version: 2020-08-16T18:39:38Z
Network: 1/1 OK
Drives: 6/6 OK
0 B Used, 1 Bucket, 0 Objects
6 drives online, 0 drives offline
MinIO und Veeam
Beachtung! Wenn 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 denken Sie daran, dass wir ein solches Verhalten stark ablehnen und es niemandem empfehlen.
Achtung nochmal! Wenn Sie aufgrund eines Missverständnisses weiterhin Windows 2008 R2 verwenden, wird beim Versuch, MinIO mit Veeam zu verbinden, höchstwahrscheinlich ein Fehler angezeigt, der dem folgenden ähnelt: Verbindung zum Amazon S3-Endpunkt konnte nicht hergestellt werden. Dies wird mit einem offiziellen Patch von Microsoft behandelt .
Nun, die Vorbereitungen sind abgeschlossen. Öffnen Sie die VBR-Schnittstelle und wechseln Sie zur Registerkarte Backup Infrastructure, auf der wir den Assistenten zum Hinzufügen eines neuen Repositorys aufrufen.

Natürlich interessieren wir uns für die Objektspeicherung, nämlich S3-kompatibel. Legen Sie im sich öffnenden Assistenten den Namen fest und führen Sie die Schritte mit der Adresse und dem Konto aus. Vergessen Sie bei Bedarf nicht, das Gate anzugeben, über das Anforderungen an den Speicher weitergeleitet werden.

Wählen Sie dann den Bucket und den Ordner aus und aktivieren Sie das Kontrollkästchen Letzte Sicherungen unveränderlich machen. Oder wir nicht. Da wir jedoch ein Repository mit Unterstützung für diese Funktion erstellt haben, ist es eine Sünde, es nicht zu verwenden.

Weiter> Fertig stellen und das Ergebnis genießen.
Jetzt müssen Sie es als Kapazitätsstufe zum SOBR-Repository hinzufügen. Erstellen Sie dazu entweder eine neue oder bearbeiten Sie die vorhandene. Wir interessieren uns für den Schritt Kapazitätsstufe.

Hier müssen wir auswählen, mit welchem Szenario wir arbeiten werden. Alle Optionen sind in einem anderen Artikel recht gut beschrieben , daher werde ich mich nicht wiederholen
. Nach Abschluss des Assistenten werden automatisch Aufgaben zum Kopieren oder Übertragen von Sicherungen gestartet. Wenn Sie jedoch nicht vorhaben, alle Systeme sofort zu belasten, müssen Sie die zulässigen Intervalle für die Arbeit mit der Fenstertaste festlegen.

Natürlich können Sie auch separate Sicherungskopien erstellen. Einige Leute denken, dass dies noch bequemer ist, da sie für einen Benutzer, der sich nicht mit den Details des Betriebs einer Kapitalschießerei befassen möchte, etwas transparenter und vorhersehbarer sind. Und da es genug Details gibt, empfehle ich noch einmal den entsprechenden Artikel über den obigen Link.
Und schließlich - die Antwort auf die heimtückische Frage: Was passiert, wenn Sie immer noch versuchen, das Backup aus dem unveränderlichen Speicher zu entfernen?
Hier ist die Antwort:

Das ist alles für heute. Fangen Sie nach wahrer Tradition eine Liste nützlicher Themen zum Thema:
- Handbuch Verwenden von MinIO mit Veeam
- Ein Beispiel für die Verwendung von MinIO zusammen mit Veeam Backup für Office 365 .
- Allgemeines Handbuch zum Konfigurieren von S3-Speichern in Veeam .
- S3 .