Verwenden Sie Sealos, um hochverfügbares MinIO mit einem Klick bereitzustellen und Ihre Reise zur Objektspeicherung zu beginnen

Hallo zusammen! Der heutige Artikel stellt hauptsächlich die Bereitstellung eines hochverfügbaren MinIO-Clusters mit einem Klick über Sealos vor.

Was ist MinIO-Objektspeicher?

Objekte sind Binärdaten wie Bilder, Audiodateien, Tabellenkalkulationen und sogar binärer ausführbarer Code. Die Größe der Objekte kann zwischen einigen B und mehreren TB liegen. Objektspeicherplattformen wie MinIO bieten spezielle Tools und Funktionen zum Speichern, Auflisten und Abrufen von Objekten mithilfe standardmäßiger S3-kompatibler APIs.

Der MinIO-Objektspeicher verwendet Buckets, um Objekte zu organisieren. Buckets ähneln Ordnern oder Verzeichnissen in einem Dateisystem, wobei jeder Bucket eine beliebige Anzahl von Objekten enthalten kann. MinIO-Buckets bieten die gleiche Funktionalität wie AWS S3-Buckets.

Ursprünglicher Link: https://forum.laf.run/d/1029

MinIOs Löschcodierung

MinIO unterstützt die verteilte Bereitstellung und die hohe Verfügbarkeit von Diensten und Daten. Der Kern ist die Erasure-Coding-Funktion von MinIO.

MinIO implementiert Erasure-Coding-Funktionen als Kernkomponente, die Datenredundanz und -verfügbarkeit bietet. Angenommen, MinIO unterteilt ein Objekt in K Datenfragmente. Erasure Coding kann M Verifizierungsfragmente basierend auf K Datenfragmenten generieren. MinIO benötigt mindestens K Fragmente jeglichen Typs, um das ursprüngliche Objekt wiederherzustellen. Dies bedeutet, dass M-Shards von insgesamt K+M-Shards ausfallen dürfen.

Nehmen Sie die folgende Abbildung als Beispiel: Wir teilen ein Objekt in 12 Daten-Shards (Daten-Shards) auf und generieren dann 4 Paritäts-Shards (Paritäts-Shards). Es gibt insgesamt 16 Shards, die in einem einzigen Treiber gespeichert werden. Die Methode kann den Ausfall von 4 Treibern tolerieren und hat eine Speichereffizienz von 0,75 (12/16). (Dies ist EC:4, EC ist Erasure Coding, 4 ist die Anzahl der Verifizierungsfragmente)

Um einen besseren Vergleich mit der Drei-Kopien-Methode zu ermöglichen, gehen wir davon aus, dass derzeit 2 Daten-Shards und 2 Überprüfungs-Shards vorhanden sind. Die Vergleichsergebnisse lauten wie folgt:

Weg Anzahl der tolerierten fehlgeschlagenen Shards (Replikate). Speichereffizienz
Erasure Coding (EC:2) 2 1/2
drei Exemplare 2 1/3

Durch Vergleich ist ersichtlich, dass Erasure Coding die Speichereffizienz verbessern und die Nutzung von Speicherressourcen reduzieren kann (Ergänzung: Wenn die Anzahl der Daten-Shards gleich der Anzahl der Verifizierungs-Shards ist, um das Split-Brain-Problem in MinIO zu vermeiden Die meisten Daten werden geschrieben. Sharding, also 3 Shards, Details finden Sie in: MinIO-Verfügbarkeit und -Elastizität .

Das Verhältnis von Paritäts-Shards/Gesamt-Shards kann in MinIO angepasst werden und der Verhältnisbereich liegt zwischen 0 und 1/2. Je größer das Verhältnis, desto höher ist die Datenverfügbarkeit (die Anzahl der ausgefallenen Shards, die toleriert werden kann) und desto geringer ist die Speichereffizienz.

Tutorial zur schnellen Bereitstellung von hochverfügbarem MinIO

Das von der Vorlage bereitgestellte MinIO verwendet 4 Knoten und EC:2. Dadurch kann sichergestellt werden, dass die Ausfallzeit eines einzelnen Knotens die Lese- und Schreibdienste nicht beeinträchtigt, das Auflegen zweier Knoten die Lesedienste nicht beeinträchtigt und die Speichereffizienz 1/2 beträgt.

  • Klicken Sie auf „Bestätigen“, um die Details anzuzeigen.

  • Klicken Sie auf den Link, um auf die MinIO-Konsolenoberfläche zuzugreifen.

  • Geben Sie Ihr Konto und Ihr Passwort ein, um MinIO zu verwenden. Erstellen Sie einfach einen Bucket und laden Sie die Datei install.sh hoch.

Zu diesem Zeitpunkt haben wir erfolgreich eine leistungsstarke Objektspeicheranwendung bereitgestellt. Sie können mit dem glücklichen Aufbewahren von Gegenständen beginnen!

MinIO auf Kubernetes

Lassen Sie uns kurz die Architektur von MinIO in K8S vorstellen:

  • Pod : Als Grundeinheit für die Ausführung von MinIO-Instanzen stellt jeder Pod eine MinIO-Containerinstanz bereit.
  • StatefulSet: Wird zum Verwalten von 4 MinIO-Pod-Kopien verwendet, um die Anzahl und Reihenfolge der Kopien sicherzustellen und eine stabile Netzwerkidentifikation (z. B. DNS-Name) und Speicheridentifikation (PV-Volume) für jeden Pod bereitzustellen.
  • Dienst (Headless): Bietet interne Diensterkennung für MinIO-Pods im StatefulSet. Andere Pods können über einen festen DNS-Namen auf jede MinIO-Instanz zugreifen.
  • Dienst (ClusterIP): Stellt die Zugriffsport- und Zielportzuordnung des MinIO-Konsolendienstes für die Außenwelt bereit.
  • Ingress : Konfigurieren Sie den Domänennamen und die Pfadzuordnungsregeln für den externen Netzwerkeingang, und Sie können über den Domänennamen auf die Minio-Konsole zugreifen.

Verweise

  1. https://min.io/docs/minio/kubernetes/upstream/operations/concepts/erasure-coding.html
  2. https://min.io/docs/minio/kubernetes/upstream/operations/concepts/availability-and-resiliency.html#minio-availability-resiliency
  3. https://cloud.tencent.com/developer/article/1829995

Supongo que te gusta

Origin blog.csdn.net/alex_yangchuansheng/article/details/132898974
Recomendado
Clasificación