Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Der erste Prototyp von Objektspeichern wurde 1996 der Welt vorgestellt. Zehn Jahre später launchte Amazon Web Services Amazon S3, und die Welt begann, zunehmend verrückt zu werden wegen des flachen Adressraums. Dank der Arbeit mit Metadaten und der Fähigkeit zur Skalierung ohne Leistungseinbußen wurden Objektspeicher schnell zum Standard für die meisten Datenclouds und darüber hinaus. Ein weiteres wichtiges Merkmal ist die gute Eignung zur Speicherung von Archiven und ähnlichen selten verwendeten Dateien. Alle, die an der Datenspeicherung Beteiligung hatten, jubelten und trugen die neue Technologie in den Händen.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Aber es gab Gerüchte, dass Objektspeicher nur etwas für große Clouds sind, und wenn man keine Lösungen von verfluchten Kapitalisten möchte, wird es sehr schwierig sein, selbst eine zu erstellen. Über die Bereitstellung einer eigenen Cloud wurde bereits viel geschrieben, aber über die Erstellung sogenannter S3-kompatibler Lösungen gibt es wenig Informationen.

Deshalb wollen wir uns heute ansehen, welche Optionen es gibt „Um es wie bei den Großen zu machen, und nicht CEPH und eine größere Feile“, wir werden eine davon bereitstellen und überprüfen, ob alles funktioniert, mithilfe von Veeam Backup & Replication. Es wird Unterstützung für die Arbeit mit S3-kompatiblen Speichern angekündigt, und genau diese Behauptung wollen wir überprüfen.

Und wie sieht es bei anderen aus?

Ich schlage vor, mit einem kurzen Überblick über den Markt und die Optionen für Objektspeicher zu beginnen. Der allgemein anerkannte Marktführer und Standard ist Amazon S3. Die zwei nächsten Verfolger sind Microsoft Azure Blob Storage und IBM Cloud Object Storage.

Gibt es denn wirklich nichts Weiteres? Gibt es keine anderen Konkurrenten? Natürlich gibt es Konkurrenten, aber einige gehen ihren eigenen Weg, wie Google Cloud oder Oracle Cloud Object Storage, mit unvollständiger Unterstützung des S3-APIs. Einige verwenden alte API-Versionen, wie Baidu Cloud. Andere, wie Hitachi Cloud, erfordern spezielle Logik, was zwangsläufig zu Problemen führt. In jedem Fall werden alle mit Amazon verglichen, das man als Branchenstandard betrachten kann.

Bei On-Premise-Lösungen gibt es jedoch deutlich mehr Auswahl, daher lassen Sie uns die für uns wichtigen Kriterien festlegen. Im Grunde genommen sind zwei Kriterien ausreichend: Unterstützung des S3 API und Verwendung der v4-Signatur. Wenn ich ehrlich bin, interessiert uns als zukünftigem Kunden nur die Schnittstelle zur Interaktion, und die interne Funktionsweise des Speichers ist uns nicht mehr so wichtig.

Auf diese einfachen Bedingungen passen sehr viele Lösungen. Zum Beispiel die klassischen Unternehmens-Großlösungen:

  • DellEMC ECS
  • NetApp S3 StorageGrid
  • Nutanix Buckets
  • Pure Storage FlashBlade und StorReduce
  • Huawei FusionStorage

Es gibt eine Nische rein softwarebasierter Lösungen, die sofort einsatzbereit sind:

  • Red Hat Ceph
  • SUSE Enterprise Storage
  • Cloudian

Und selbst die Liebhaber, die nach dem Zusammenbau noch genau nachbearbeiten wollen, wurden nicht enttäuscht:

  • CEPH in reiner Form
  • Minio (Linux-Version, da es viele Fragen zur Windows-Version gibt)

Die Liste ist bei weitem nicht vollständig, sie kann gerne in den Kommentaren diskutiert werden. Vergessen Sie nicht, vor der Implementierung auch die Kompatibilität des APIs und die Leistungsfähigkeit des Systems zu überprüfen. Das Letzte, was Sie brauchen, ist Datenverluste in Terabyte wegen hängender Anfragen. Zögern Sie also nicht mit Lasttests. Generell haben alle professionellen Softwarelösungen, die mit großen Datenmengen arbeiten, mindestens Berichte über die Kompatibilität. Im Falle von Veeam einen gibt es ein ganzes Programm zum gegenseitigen Testen, das es uns ermöglicht, mit Zuversicht über die volle Kompatibilität unserer Produkte mit spezifischer Hardware zu sprechen. Das ist schon eine wechselseitige Arbeit, nicht immer schnell, aber wir erweitern ständig Liste die getesteten Lösungen.

Wir stellen unseren Stand auf

Ich möchte ein wenig über die Auswahl des Testobjekts sprechen.

Erstens wollte ich eine Option finden, die sofort aus der Box funktioniert. Oder zumindest mit der größtmöglichen Wahrscheinlichkeit, dass sie funktioniert, ohne unnötige Mühe aufbringen zu müssen. Tänze mit dem Schamanen und das Herumfummeln an der Konsole in der Nacht sind sehr faszinierend, aber manchmal möchte man, dass es einfach sofort funktioniert. Außerdem ist die allgemeine Zuverlässigkeit solcher Lösungen normalerweise höher. Und ja, der Abenteuergeist ist in uns verschwunden, wir haben aufgehört, durch Fenster zu unseren geliebten Frauen zu klettern usw. (lol).

Zweitens, wenn wir ehrlich sind, besteht die Notwendigkeit, mit Object Storage zu arbeiten, vor allem bei großen Unternehmen, sodass dies der Fall ist, wo man sich ruhig in Richtung Enterprise-Lösungen umsehen kann — es ist nicht nur nicht peinlich, sondern wird sogar gefördert. Auf jeden Fall kenne ich bisher keine Beispiele, bei denen jemand wegen des Kaufs solcher Lösungen entlassen wurde.

Basierend auf all dem zuvor Gesagten fiel meine Wahl auf Dell EMC ECS Community Edition. Das ist ein sehr interessantes Projekt, und ich halte es für notwendig, Ihnen davon zu erzählen.

Das Erste, was einem beim Anblick des Add-ons in den Sinn kommt, Community Edition , ist, dass dies einfach eine Kopie der vollständigen ECS mit einigen Einschränkungen ist, die durch den Kauf einer Lizenz aufgehoben werden. Aber das ist nicht der Fall!

Merken Sie sich:

!!!Community Edition ist ein eigenständiges Projekt, das für Testzwecke entwickelt wurde, und es gibt keinen technischen Support seitens Dell!!
Und es lässt sich nicht in ein vollständiges ECS umwandeln, selbst wenn man es sehr möchte.

Lassen Sie uns das klären.

Viele sind der Meinung, dass Dell EMC ECS eine der besten Lösungen ist, wenn Sie Bedarf an einem Object Storage haben. Alle Projekte unter der Marke ECS, einschließlich kommerzieller und unternehmerischer, basieren auf GitHub. Das ist eine Art von freundlicher Geste von Dell. und neben der Software, die auf ihrer eigenen Hardware läuft, gibt es auch eine Open-Source-Version, die man in der Cloud, auf einer virtuellen Maschine, in einem Container oder auf seiner eigenen Hardware bereitstellen kann. Vorsorglich sei gesagt: Es gibt sogar eine OVA-Version, die wir verwenden werden.
Die DELL ECS Community Edition ist eine Mini-Variante der vollständigen Software, die auf den markeneigenen Servern von Dell EMC ECS läuft.

Ich habe vier Hauptunterschiede herausgearbeitet:

  • Es gibt keinen Unterstützung für Verschlüsselung. Das ist schade, aber nicht kritisch.
  • Fehlende Fabrikschicht. Diese Sache ist verantwortlich für Clusteraufbau, Ressourcenmanagement, Updates, Monitoring und Speicherung von Docker-Images. Hier ist es wirklich schade, aber man kann Dell auch verstehen.
  • Die unangenehmste Folge des vorherigen Punktes: Die Größe des Knotens kann nach Abschluss der Installation nicht mehr erhöht werden.
  • Es gibt keinen technischen Support. Dies ist ein Produkt für Tests, das in kleinen Installationen verwendet werden darf, aber ich würde nicht wagen, dort Petabytes an wichtigen Daten hochzuladen. Technisch gesehen kann Ihnen dabei jedoch niemand im Weg stehen.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Und was ist in der großen Version?

Lassen Sie uns in Windeseile durch die Hardwarelösungen rasen, um ein umfassenderes Bild des Ökosystems zu erhalten.

Ich werde nicht bestätigen oder widerlegen, dass DELL ECS das beste On-Premises-Objekt-Speichersystem ist, aber wenn Sie dazu etwas zu sagen haben, lese ich gerne Ihre Kommentare. So oder so, laut der IDC MarketScape 2018 Dell EMC gehört sicher zu den fünf führenden Anbietern auf dem OBS-Markt. Obwohl cloud-basierte Lösungen dabei nicht berücksichtigt werden, das ist ein anderes Thema.

Technisch gesehen ist ECS ein Objekt-Speichersystem, das den Zugriff auf Daten über Cloud-Speicherprotokolle ermöglicht. Es unterstützt AWS S3 und OpenStack Swift. Für dateibasiert aktivierte Buckets unterstützt ECS NFSv3 für die dateiweise Bereitstellung.

Der Prozess zum Speichern von Informationen ist ziemlich ungewöhnlich, insbesondere im Vergleich zu klassischen Blockspeichersystemen.

  • Beim Empfang neuer Daten wird ein neues Objekt erstellt, das einen Namen, die Daten selbst und Metadaten enthält.
  • Objekte werden in Chunks von 128 MB aufgeteilt, und jeder Chunk wird sofort auf drei Nodes gespeichert.
  • Die Indexdatei wird aktualisiert, in der die Identifikatoren und Speicherorte aufgezeichnet sind.
  • Die Protokolldatei (Schreibprotokoll) wird aktualisiert und ebenfalls auf drei Nodes gespeichert.
  • Dem Client wird eine Erfolgsnachricht über die erfolgreiche Speicherung gesendet.
    Alle drei Kopien der Daten werden parallel gespeichert. Der Schreibvorgang gilt als erfolgreich, wenn alle drei Kopien erfolgreich gespeichert wurden.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Das Lesen ist einfacher:

  • Der Client fragt die Daten an.
  • Im Index wird der Speicherort der Daten gesucht.
  • Die Daten werden von einer Node gelesen und an den Client gesendet.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Es gibt eine beträchtliche Anzahl von Servern, daher schauen wir uns den kleinsten Dell EMC ECS EX300 an. Er beginnt bei 60 TB und kann auf bis zu 1,5 PB wachsen. Sein größerer Bruder, der Dell EMC ECS EX3000, kann sogar 8,6 PB pro Rack speichern.

Bereitstellung

Technisch gesehen kann Dell ECS CE beliebig groß bereitgestellt werden. Auf jeden Fall habe ich keine konkreten Einschränkungen gefunden. Allerdings ist es sinnvoll, die Skalierung durch Klonen der ersten Node vorzunehmen, für die wir benötigen:

  • 8 vCPU
  • 64 GB RAM
  • 16 GB für das Betriebssystem
  • 1 TB direkt für den Speicher
  • Die letzte Version von CentOS minimal

Das ist eine Option für den Fall, dass Sie alles von Grund auf neu installieren möchten. Für uns ist das nicht relevant, da ich für das Deployment ein OVA-Image verwenden werde.

Aber auf jeden Fall sind die Anforderungen selbst für eine Node ziemlich hoch, und wenn man sich strikt an die Vorschriften hält, benötigt man vier solcher Nodes.

Die Entwickler von ECS CE leben jedoch in der realen Welt, und die Installation verläuft erfolgreich sogar mit einem einzigen Knoten; die minimalen Anforderungen sind wie folgt:

  • 4 vCPU
  • 16 GB RAM
  • 16 GB für das Betriebssystem
  • 104 GB Speicher

Genau diese Ressourcen werden für die Bereitstellung des OVA-Images benötigt. Es ist schon viel menschenfreundlicher und realistischer.

Knoten kann man von der offiziellen Seite beziehen github. Dort gibt es auch ausführliche Dokumentation zur All-in-One-Bereitstellung, aber man kann auch auf der offiziellen Seite noch lesen readthedocs. Daher werden wir nicht detailliert auf die Bereitstellung des OVA eingehen, das ist ohne Tricks. Wichtig ist, dass Sie vor dem Start entweder die Festplatte auf das erforderliche Volumen erweitern oder die notwendigen anhängen.
Starten Sie die Maschine, öffnen Sie die Konsole und verwenden Sie die besten Standard-Anmeldedaten:

  • Benutzername: admin
  • Passwort: ChangeMe

Dann führen wir sudo nmtui aus und konfigurieren die Netzwerkschnittstelle — IP/Maske, DNS und Gateway. Denken Sie daran, dass in CentOS minimal net-tools nicht installiert ist, also überprüfen Sie die Einstellungen mit ip addr.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Und da nur den Mutigen die Meere gehören, führen wir ein yum update durch, danach reboot. Das ist tatsächlich ziemlich sicher, da die gesamte Bereitstellung über Playbooks erfolgt und alle wichtigen Docker-Pakete auf der aktuellen Version gesperrt sind.

Nun ist es an der Zeit, das Installationsskript zu bearbeiten. Keine schönen Fenster oder pseudo UI — alles über Ihren Lieblings-Text-Editor. Technisch gesehen gibt es zwei Wege: Sie können jeden Befehl manuell eingeben oder direkt den Konfigurator videploy starten. Dieser öffnet einfach die Konfiguration in vim und führt beim Verlassen eine Prüfung durch. Aber es ist nicht interessant, sich das Leben absichtlich zu erleichtern, also werden wir zwei Befehle mehr ausführen. Dennoch ist das nicht wirklich sinnvoll, ich habe Sie gewarnt =)

Also, öffnen Sie vim ECS-CommunityEdition/deploy.xml und nehmen Sie optimal-minimale Änderungen vor, damit ECS aktiviert und funktioniert. Die Liste der Parameter kann verkürzt werden, aber ich habe es so gemacht:

  • licensed_accepted: true Es muss nicht geändert werden, dann werden Sie bei der Bereitstellung ausdrücklich gebeten, dies zu akzeptieren, und es wird Ihnen ein netter Satz angezeigt. Vielleicht ist das sogar so eine Art Osterei.
    Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird
  • Entkommentieren Sie die Zeilen autonames: und custom: Geben Sie mindestens einen gewünschten Namen für den Knoten an — der Hostname wird während der Installation durch diesen ersetzt.
  • install_node: 192.168.1.1 Geben Sie die tatsächliche IP des Knotens an. In unserem Fall geben wir die gleiche wie in nmtui an.
  • dns_domain: geben Sie Ihre eigene Domain ein.
  • dns_servers: geben Sie Ihren eigenen DNS ein.
  • ntp_servers: Sie können jeden angeben. Ich habe den ersten aus dem Pool 0.pool.ntp.org genommen (das wurde 91.216.168.42)
  • autonaming: custom Wenn Sie es nicht auskommentieren, wird der Mond Luna genannt.
  • ecs_block_devices:
    /dev/sdb
    Aus unbekannten Gründen könnte hier ein nicht vorhandenes Blockspeichergerät /dev/vda auftauchen
  • storage_pools:
    members:
    192.168.1.1 Hier geben wir erneut die tatsächliche IP der Node an
  • ecs_block_devices:
    /dev/sdb Повторяем операцию вырезания несуществующих устройств.

Im Allgemeinen ist die gesamte Datei sehr ausführlich beschrieben in Dokumentation, aber wer wird in solch unruhigen Zeiten schon lesen. Dort steht, dass das Minimum ist, die IP und die Maske anzugeben, aber in meinem Labor war die Konfiguration nicht optimal, und ich musste auf das oben angegebene erweitern.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Nach dem Verlassen des Editors müssen Sie update_deploy /home/admin/ECS-CommunityEdition/deploy.yml starten, und wenn alles richtig gemacht wurde, wird dies deutlich mitgeteilt.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Dann müssen Sie trotzdem videploy starten, auf die Aktualisierung der Umgebung warten, und können die Installation mit dem Befehl ova-step1 starten, und nach dessen erfolgreichem Abschluss den Befehl ova-step2. Wichtig: Stoppen Sie die Skripte nicht manuell! Einige Schritte können erheblich Zeit in Anspruch nehmen, sich nicht beim ersten Versuch ausführen lassen und den Eindruck erwecken, dass alles kaputt ist. In jedem Fall müssen Sie auf das natürliche Ende des Skripts warten. Am Ende sollten Sie eine ähnliche Meldung sehen.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Jetzt können wir endlich das WebUI-Panel unter der uns bekannten IP-Adresse öffnen. Wenn Sie während der Konfiguration nichts geändert haben, lautet das Standardkonto root/ChangeMe. Sie können sofort unser S3-kompatibles Speicher bestellen. Es ist an den Ports 9020 für HTTP und 9021 für HTTPS verfügbar. Wiederum, wenn Sie nichts geändert haben, dann access_key: object_admin1 und secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.

Aber lassen Sie uns nicht zu weit vorausgreifen und der Reihe nach beginnen.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Bei der ersten Anmeldung werden Sie aufgefordert, das Passwort in ein angemessenes zu ändern, was vollkommen richtig ist. Das Hauptdashboard ist äußerst verständlich, also lassen Sie uns etwas Interessanteres tun, als offensichtliche Metriken zu erklären. Lassen Sie uns beispielsweise einen Benutzer erstellen, den wir zum Zugriff auf den Speicher verwenden werden. In der Welt der Dienstanbieter wird so jemand Tenant genannt. Dies geschieht in Manage > Users > New Object User.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Bei der Erstellung eines Benutzers werden wir aufgefordert, einen Namespace anzugeben. Technisch gesehen steht es uns frei, so viele zu erstellen, wie es Benutzer gibt. Und umgekehrt. Dies ermöglicht eine unabhängige Verwaltung der Ressourcen für jeden Tenant.

Dementsprechend wählen wir die notwendigen Funktionen aus und generieren die Benutzerschlüssel. S3/Atmos reicht mir aus. Und nicht vergessen, den Schlüssel zu speichern 😉

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Der Benutzer wurde erstellt, jetzt ist es an der Zeit, ihm einen Bucket zuzuweisen. Wir gehen zu Verwalten > Bucket und füllen die erforderlichen Felder aus. Hier ist alles einfach.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Jetzt ist alles bereit für den produktiven Einsatz unseres S3-Speichers.

Veeam konfigurieren

Wie wir uns erinnern, ist eine der Hauptanwendungen von Objektspeichern die langfristige Speicherung von Informationen, auf die selten zugegriffen wird. Ein ideales Beispiel wäre die Notwendigkeit, Backups an einem externen Standort zu speichern. In Veeam Backup & Replication heißt diese Funktion Capacity Tier.

Wir beginnen die Konfiguration, indem wir unseren Dell ECS CE in die Veeam-Oberfläche hinzufügen. Im Tab Backup-Infrastruktur starten wir den Assistenten zum Hinzufügen eines neuen Repositories und wählen Punkt Objektspeicher aus.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Wir wählen das, wofür alles angedacht war — S3-kompatibel.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Im sich öffnenden Fenster geben wir den gewünschten Namen ein und gehen zum Schritt Konto. Hier muss der Service point in Form von https://your_IP:9021, die Region kann so bleiben, wie sie ist, und den erstellten Benutzer hinzufügen. Der Gate-Server ist erforderlich, wenn Ihr Speicher an einem externen Standort liegt, aber das ist schon ein Thema zur Optimierung der Infrastruktur und gehört in einen separaten Artikel, daher kann man das hier getrost überspringen.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Wenn alles korrekt angegeben und konfiguriert ist, erscheint eine Warnung zum Zertifikat und anschließend ein Fenster mit dem Bucket, wo man einen Ordner für unsere Dateien erstellen kann.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Wir gehen den Assistenten bis zum Ende durch und genießen das Ergebnis.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Im nächsten Schritt muss entweder ein neues Scale-out Backup Repository erstellt oder unser S3 in ein bestehendes hinzugefügt werden — es wird als Capacity Tier für die Archivspeicherung verwendet. Im aktuellen Release gibt es keine Funktion, um S3-kompatible Speicher direkt als gewöhnliches Repository zu nutzen. Es gibt einfach zu viele eher unklare Probleme zu lösen, aber alles kann sein.
Wir gehen in die Repository-Einstellungen und aktivieren das Capacity Tier. Dort ist alles transparent, aber es gibt einen interessanten Hinweis: Wenn man möchte, dass alle Daten so schnell wie möglich auf den Objektspeicher übertragen werden, stellen Sie einfach 0 Tage ein.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Nach dem Durchlaufen des Assistenten, wenn man nicht warten möchte, kann man mit Strg+Rechtsklick auf das Repository die Tiering-Job manuell starten und beobachten, wie die Grafiken steigen.

Objektspeicher im Abstellraum oder Wie man zum eigenen Serviceanbieter wird

Das ist vorerst alles. Ich denke, ich habe die Aufgabe gemeistert, zu zeigen, dass Blockspeicher nicht so furchtbar sind, wie man denkt. Ja, es gibt viele Lösungen und Varianten, aber man kann nicht alles in einem einzigen Artikel abdecken. Lasst uns deshalb unsere Erfahrungen in den Kommentaren teilen.

Quelle: habr.com

60GB SSD 8Gb DDR4