Sind Sie auf der Suche nach einer Objektspeicher-Software, die Sie auf Ihrem Server hosten können?
Ich nehme an, ja?
Es gibt viele Cloud-basierte Objektspeicher wie AWS S3 und andere, die ich hier erwähnt habe. Wenn Sie Ihre Daten jedoch auf Ihrem Server hosten müssen, kann MinIO in Ihren Rechenzentren helfen.
MiniIO ist eine beliebte Open-Source-Software für die verteilte Speicherung von Objekten, die mit S3 kompatibel ist. Es ist unternehmenstauglich und für seine hohe Leistung bekannt.
Sie können MinIO von einer einfachen Webanwendung bis hin zu großen Datenverteilungsworkloads für Analyse- und maschinelle Lernanwendungen einsetzen. Es kann in vielen Anwendungsfällen helfen.
- Standard-Flat-File-Speicherung
- Multi-cloud Datenverteilung
- Disaster Recovery
- Datenanalytik
Ist es eine sperrige Software?
Nein, sie ist nur ca. 50 MB groß und Kubernetes-freundlich. Es schreibt Daten und Metadaten als Objekt. Damit entfällt die Abhängigkeit von einer zusätzlichen Datenbank oder Software zur Speicherung von Metadaten und die Leistung wird verbessert.
Die untenstehende Architektur stammt von der offiziellen Website.
Schauen wir uns einige der erwähnenswerten Funktionen an.
- Leistungsstark – wie der Titel schon sagt. Es ist in der Lage, mit einer Geschwindigkeit von ~170GB/s zu lesen/schreiben. Das ist eine ganze Menge!
- Skalierbar – entscheiden Sie sich für Clustering und skalieren Sie nach Bedarf
- Cloud-nativ
- Datenschutz durch Erasure-Code-Methode
- Unterstützt mehrere Verschlüsselungen, darunter AES-CBC, AES-256-GCM, ChaCha20
- Kompatibel mit gängigen KMS
- Anwendungs- und Benutzeridentität
- Ereignis-Benachrichtigung
- Verbund mit etcd und CoreDNS
MinIO ist eine gute Wahl für softwaredefinierten Speicher. Schauen wir uns an, wie Sie die Dinge einrichten.
Installieren von MinIO Server
Sie können es unter Linux, Windows, macOS und über Kubernetes installieren. Bevorzugen Sie die Erstellung über den Quellcode? Sicher, das können Sie, wenn Sie Golang installiert haben.
Für diese Demonstration werde ich auf CentOS installieren, das auf Kamatera gehostet wird.
- Melden Sie sich auf dem Server an
- Erstellen Sie einen Ordner im gewünschten Dateisystem. Vielleicht
minio-server
- Navigieren Sie zu dem neu erstellten Ordner und führen Sie den folgenden wget-Befehl aus
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Es wird eine Binärdatei heruntergeladen, die wie folgt aussehen sollte.
-rw-r--r-- 1 root root 48271360 Oct 18 21:57 minio
Machen Sie die Datei mit dem Befehl chmod
ausführbar
chmod 755 minio
Starten wir den MinIO als Server.
./minio server /data &
das oben erwähnte/data
ist das Dateisystem, in dem MinIO die Objekte speichern wird.
Das Starten geht schnell und Sie sollten die Startinformationen wie unten sehen.
Endpunkt: http://xx.71.141.xx:9000 http://127.0.0.1:9000
AccessKey: minioadmin
GeheimSchlüssel: minioadmin
Browser-Zugang:
http://xx.71.141.xx:9000 http://127.0.0.1:9000
Kommandozeilen-Zugang: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin
Objekt-API (Amazon S3 kompatibel):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
Erkannte Standard-Anmeldeinformationen 'minioadmin:minioadmin', bitte ändern Sie die Anmeldeinformationen sofort mit 'MINIO_ACCESS_KEY' und 'MINIO_SECRET_KEY'
Greifen wir auf MinIO im Browser mit den Standard-Anmeldeinformationen zu – minioadmin:minioadmin
Die Oberfläche ist sehr ordentlich und sauber, aber bevor wir etwas tun, sollten wir die Standard-Zugangsdaten ändern, da sie ein Risiko darstellen. Es gibt keine Möglichkeit, die Admin-Anmeldeinformationen über den Browser zu ändern, sondern nur über Umgebungsvariablen.
Um die Standard-Anmeldeinformationen von MinIO zu ändern, exportieren wir den Zugriffsschlüssel und den geheimen Schlüssel wie unten beschrieben und starten MinIO.
export MINIO_ACCESS_KEY=geekflare
export MINIO_SECRET_KEY=geekpassword
./minio server /data &
Jetzt sollte es keine Warnung wegen der Erkennung von Standard-Anmeldeinformationen mehr geben.
Lassen Sie uns versuchen, einige Dateien hochzuladen.
- Klicken Sie auf das Symbol unten rechts und erstellen Sie einen Bucket
- Ich habe eine Testdatei hochgeladen und sie ist sofort im Browser sichtbar
und auf dem Server
[root@gf-lab geekflare]# ls -ltr
insgesamt 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
[root@gf-lab geekflare]#
Wenn Sie im Browser auf die Schaltfläche Dateifreigabe klicken, erhalten Sie den freizugebenden Link und eine Option zum Einstellen des Ablaufs.
MinIO-Client
Der MinIO-Client ist mehr als ein aws-cli, mit dem Sie den Speicher verwalten können. Der Client ist für Windows, macOS und Linux verfügbar.
Zur Installation unter Linux führen Sie Folgendes aus.
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc
Führen Sie den Befehl mc
aus, um die Befehlshilfe anzuzeigen.
[root@gf-lab ~]# ./mc
NAME:
mc - MinIO Client für Cloud-Speicher und Dateisysteme.
ANWENDUNG:
mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTE...]
KOMMANDOS:
alias setzen, entfernen und auflisten von Aliasen in der Konfigurationsdatei
ls Buckets und Objekte auflisten
mb einen Bucket erstellen
rb einen Bucket entfernen
cp Objekte kopieren
mirror Objekt(e) mit einem entfernten Standort synchronisieren
cat Objektinhalt anzeigen
head zeigt die ersten 'n' Zeilen eines Objekts an
pipe stream STDIN an ein Objekt weiterleiten
share URL für temporären Zugriff auf ein Objekt erzeugen
find Suche nach Objekten
sql führt sql-Abfragen auf Objekte aus
stat zeigt Objekt-Metadaten an
mv Objekte verschieben
tree Buckets und Objekte in einem Baumformat auflisten
du fasst die Festplattennutzung rekursiv zusammen
retention Aufbewahrung für Objekt(e) festlegen
legalhold verwaltet die Aufbewahrungsfrist für ein oder mehrere Objekte
diff Unterschiede in Objektname, Größe und Datum zwischen zwei Buckets auflisten
rm Objekte entfernen
version Versionierung des Buckets verwalten
ilm verwaltet den Lebenszyklus von Buckets
encrypt Verschlüsselungseinstellungen für Buckets verwalten
event Objektbenachrichtigungen verwalten
watch Lauschen auf Objektbenachrichtigungsereignisse
undo PUT/DELETE-Operationen rückgängig machen
policy verwaltet anonymen Zugriff auf Buckets und Objekte
tag verwaltet Tags für Bucket und Objekt(e)
replicate konfiguriert die serverseitige Bucket-Replikation
admin MinIO-Server verwalten
update mc auf die neueste Version aktualisieren
GLOBALE FLAGS:
--autocompletion installiert die automatische Vervollständigung für Ihre Shell
--config-dir Wert, -C Wert Pfad zum Konfigurationsverzeichnis (Standard: "/root/.mc")
--quiet, -q deaktivieren Sie die Anzeige des Fortschrittsbalkens
--no-color Farbthema deaktivieren
--json aktiviert JSON-Zeilen-formatierte Ausgabe
--debug aktiviert die Debug-Ausgabe
--insecure deaktiviert die Überprüfung des SSL-Zertifikats
--help, -h Hilfe anzeigen
--version, -v gibt die Version aus
TIPP:
Verwenden Sie 'mc --autocompletion', um die automatische Shell-Vervollständigung zu aktivieren
VERSION:
RELEASE.2020-10-03T02-54-56Z
[root@gf-lab ~]#
Lassen Sie uns versuchen, die Datei aufzulisten, die ich mit dem Befehl mc
hochgeladen habe.
Zuerst müssen wir den Alias auf den Speicher setzen, den wir verwalten wollen.
[root@gf-lab ~]# ./mc alias set minio http://xx.71.141.xx:9000/ geekflare geekpassword
Erfolgreich `minio` hinzugefügt.
[root@gf-lab ~]#
- minio ist der Name des Alias. Sie können diesen Namen ändern, wie Sie wollen.
- Ändern Sie den HTTP-Endpunkt in Ihren echten Endpunkt
- Ändern Sie den Zugang und den geheimen Schlüssel in den Ihren
und verwenden Sie zum Auflisten den Befehl ls wie folgt.
[root@gf-lab ~]# ./mc ls --recursive minio
[2020-10-19 11:09:06 UTC] 11B geekflare/MinIO-Test.txt
[root@gf-lab ~]#
Großartig. Es funktioniert!
Sie können buchstäblich alles über den Client machen. Sie können nicht nur den MinIO Cloud-Speicher verwalten, sondern auch GCS, AWS S3, Azure.
Weitere Einzelheiten finden Sie in dieser Client-Kurzanleitung.
MinIO SDK
Abhängig von Ihrem Anwendungsstack können Sie mit dem SDK programmatisch mit dem Objektspeicher interagieren. Es unterstützt Go, Python, Node.js, .NET, Haskell und Java.
MinIO-Gateway
Fügen Sie MiniIO Gateway zu S3, Azure, NAS, HDFS hinzu, um die Vorteile von MinIO Browser und Disk Caching zu nutzen.
Schlussfolgerung
Wenn Sie einen privaten, hybriden oder Multi-Cloud-Objektspeicher suchen, dann sieht MinIO vielversprechend aus. Probieren Sie es aus und Sie werden sich in die Software verlieben. Zum Testen können Sie die MinIO-VM von Kamatera erhalten oder selbst auf einem beliebigen Cloud-Server installieren.