Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Der erste Prototyp von Objektspeichern wurde 1996 vorgestellt. Zehn Jahre später startete Amazon Web Services Amazon S3, und die Welt begann, sich allmählich von der flachen Adressierung auf den Kopf zu stellen. Aufgrund der Arbeit mit Metadaten und der Fähigkeit, unter hoher Last zu skalieren, haben sich Objektspeicher schnell zum Standard für die meisten Cloud-Datenverwaltungsdienste etabliert, und nicht nur dort. Ein weiterer wichtiger Vorteil ist die gute Anpassungsfähigkeit für die Speicherung von Archiven und ähnlichen, selten genutzten Dateien. Alle, die mit der Datenspeicherung zu tun hatten, waren begeistert und trugen die neue Technologie stolz zur Schau.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Gerüchte besagten jedoch, dass Objektspeicher nur für große Clouds geeignet seien, und wenn man keine Lösungen von den verfluchten Kapitalisten möchte, wäre es sehr schwierig, eine eigene Lösung zu erstellen. Es gibt bereits viele Informationen über die Bereitstellung einer eigenen Cloud, doch über die Schaffung sogenannter S3-kompatibler Lösungen gibt es nicht viel.

Heute werfen wir einen Blick auf die verschiedenen Möglichkeiten, die es gibt, um "wie die Profis zu arbeiten, anstatt mit CEPH und einer größeren Feile". Wir werden eine dieser Möglichkeiten genauer betrachten und die Funktionalität mit Veeam Backup & Replication testen. Dieses Tool behauptet, die Unterstützung für S3-kompatible Speicher zu bieten, und genau das werden wir überprüfen.

Wie sieht es bei anderen aus?

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

Ist das wirklich alles? Gibt es keine weiteren Wettbewerber? Natürlich gibt es Wettbewerber, aber einige gehen ihren eigenen Weg, wie Google Cloud oder Oracle Cloud Object Storage, die eine teilweise Unterstützung des S3-APIs anbieten. Andere nutzen ältere Versionen des APIs, wie Baidu Cloud. Und einige, wie Hitachi Cloud, erfordern spezielle Logik, was zwangsläufig zu Schwierigkeiten führen wird. In jedem Fall werden alle mit Amazon verglichen, das als industrieller Standard betrachtet werden kann.

Bei On-Premise-Lösungen gibt es deutlich mehr Auswahl, daher möchten wir wichtige Kriterien festlegen. Im Grunde reichen zwei aus: Unterstützung für die S3 API und die Verwendung von v4-Signaturen. Hand aufs Herz, als zukünftiger Kunde interessieren uns nur die Schnittstellen für die Interaktion, während die interne Funktionsweise des Speichers weniger relevant ist.

Diese einfachen Bedingungen erfüllen eine ganze Menge Lösungen. Zum Beispiel die klassischen Schwergewichte im Unternehmensbereich:

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

Es gibt auch eine Nische für rein softwarebasierte Lösungen, die sofort einsatzbereit sind:

  • Red Hat Ceph
  • SUSE Enterprise Storage
  • Cloudian

Und selbst die Liebhaber von nachträglicher Feinarbeit sind nicht enttäuscht worden:

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

Die Liste ist bei weitem nicht vollständig, sie kann in den Kommentaren diskutiert werden. Vergessen Sie jedoch nicht, vor der Implementierung nicht nur die API-Kompatibilität, sondern auch die Systemleistung zu überprüfen. Das Letzte, was Sie möchten, ist der Verlust von Terabytes an Daten aufgrund hängender Anfragen. Zögern Sie also nicht, Lasttests durchzuführen. Generell hat jede professionelle Software, die mit großen Datenmengen arbeitet, mindestens Berichte über die Kompatibilität. Im Fall von Veeam gibt es gibt es ein ganzes Programm zur gegenseitigen Testung, das es uns ermöglicht, die vollständige Kompatibilität unserer Produkte mit spezifischer Hardware selbstbewusst zu behaupten. Dies ist bereits eine bilaterale Zusammenarbeit, die nicht immer schnell ist, aber wir erweitern ständig eine Liste die getesteten Lösungen.

Wir stellen unseren Stand auf.

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

Zunächst wollte ich eine Lösung finden, die sofort einsatzbereit ist. Oder zumindest mit der maximalen Wahrscheinlichkeit, dass sie funktioniert, ohne dass ich zusätzliche Schritte unternehmen muss. nächtliches Herumprobieren an der Konsole ist zwar sehr spannend, aber manchmal möchte man einfach, dass alles sofort funktioniert. Außerdem ist die allgemeine Zuverlässigkeit solcher Lösungen meistens höher. Ja, es ist wahr, der Abenteuergeist ist uns abhandengekommen, wir steigen nicht mehr durch Fenster zu unseren geliebten Frauen ein usw.

Zweitens, um ehrlich zu sein, die Notwendigkeit, mit Objektspeichern zu arbeiten, entsteht meist bei größeren Unternehmen. Daher ist es in diesem Fall nicht nur unangebracht, nach Enterprise-Lösungen zu schauen, sondern das wird sogar gefördert. Ich kenne bislang keine Beispiele, bei denen jemand für den Kauf solcher Lösungen entlassen wurde.

Aus all dem Gesagten habe ich mich entschieden für Dell EMC ECS Community Edition. Das ist ein sehr interessantes Projekt, und ich halte es für notwendig, Ihnen darüber zu berichten.

Das Erste, was einem beim Anblick der Erweiterung Community Edition in den Sinn kommt, ist, dass es sich einfach um eine abgespeckte Version des vollwertigen ECS mit irgendwelchen Einschränkungen handelt, die durch den Kauf einer Lizenz aufgehoben werden. Aber das stimmt nicht!

Merken Sie sich:

!!!Community Edition — ist ein separates Projekt, das für Testzwecke erstellt wurde und keinen technischen Support von Dell bietet!!
Und es lässt sich nicht in eine vollwertige ECS-Umgebung umwandeln, egal wie sehr man das möchte.

Lass uns das klären

Viele glauben, dass Dell EMC ECS eines der besten Lösungen ist, wenn man ein objektbasiertes Speichersystem benötigt. Alle Projekte unter der Marke ECS, inklusive kommerzieller und Unternehmenslösungen, basieren auf GitHub. Eine Art von Goodwill seitens Dell. Neben der Software, die auf ihrer markeneigenen Hardware läuft, gibt es auch eine Open-Source-Version, die man in der Cloud, auf einer Virtuellen Maschine, in einem Container oder auf eigener Hardware bereitstellen kann. Übrigens gibt es sogar eine OVA-Version, die wir verwenden werden.
Die DELL ECS Community Edition ist eine Mini-Version der vollwertigen Software, die auf den markeneigenen Servern von Dell EMC ECS läuft.

Ich habe vier Hauptunterschiede hervorgehoben:

  • Keine Unterstützung für Verschlüsselung. Schade, aber nicht kritisch.
  • Fehlende Fabric Layer. Dieses Element ist für den Aufbau von Clustern, das Ressourcenmanagement, Updates, Monitoring und die Speicherung von Docker-Images verantwortlich. Hier ist das schon sehr bedauerlich, aber Dell ist hier auch verständlich.
  • Die frustrierendste Konsequenz des vorherigen Punktes: Die Größe der Node kann nach Abschluss der Installation nicht mehr verändert werden.
  • Es gibt keinen technischen Support. Dies ist ein Testprodukt, das in kleinen Installationen verwendet werden darf, aber ich würde es nicht empfehlen, dort Petabytes wichtiger Daten zu speichern. Technisch gesehen kann Sie jedoch niemand daran hindern.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Wie sieht es mit der großen Variante aus?

Lassen Sie uns schnell einen Überblick über die Hardwarelösungen gewinnen, um ein umfassenderes Bild des Ökosystems zu erhalten.

Ich werde nicht bestätigen oder widerlegen, dass DELL ECS das beste On-Premises Object Storage ist. Wenn Sie jedoch etwas dazu zu sagen haben, würde ich mich freuen, es in den Kommentaren zu lesen. Jedenfalls laut IDC MarketScape 2018 Dell EMC gehört eindeutig zu den Top fünf im Markt für Object-Based Storage (OBS). Obwohl cloudbasierte Lösungen dabei nicht berücksichtigt werden, ist das ein separates Thema.

Technisch gesehen ist ECS ein Object Storage, das den Zugriff auf Daten über Cloud-Speicherprotokolle ermöglicht. Es unterstützt AWS S3 und OpenStack Swift. Für file-enabled Buckets unterstützt ECS NFSv3 für die dateibasierten Exporte.

Der Prozess der Datenspeicherung ist ziemlich außergewöhnlich, insbesondere im Vergleich zu klassischen Blockspeichersystemen.

  • Bei der Eingabe neuer Daten wird ein neues Objekt erstellt, das einen Namen, die eigentlichen Daten und Metadaten enthält.
  • Die Objekte werden in 128 MB große Chunks unterteilt, und jeder Chunk wird sofort auf drei Nodes gespeichert.
  • Die Indexdatei wird aktualisiert, in der die Identifikatoren und Speicherorte festgehalten werden.
  • Die Journaldaten (Schreibprotokoll) werden ebenfalls aktualisiert und auf drei Nodes geschrieben.
  • Dem Kunden wird eine Nachricht über die erfolgreiche Speicherung gesendet.
    Alle drei Datenkopien werden parallel gespeichert. Die Speicherung wird nur dann als erfolgreich betrachtet, wenn alle drei Kopien erfolgreich geschrieben wurden.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Das Lesen funktioniert einfacher:

  • Der Kunde verlangt nach den Daten.
  • Im Index wird nach dem Speicherort der Daten gesucht.
  • Die Daten werden von einer Node gelesen und an den Kunden gesendet.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Es gibt eine Vielzahl von Servern, daher betrachten wir den kleinsten, den Dell EMC ECS EX300. Er beginnt bei 60 TB und kann auf bis zu 1,5 PB erweitert werden. Sein älterer Bruder, der Dell EMC ECS EX3000, ermöglicht bereits die Speicherung von bis zu 8,6 PB pro Rack.

Deployment

Technisch gesehen kann Dell ECS CE unbegrenzt skaliert werden. Ich habe jedenfalls keine expliziten Einschränkungen gefunden. Dennoch ist es sinnvoll, das Scaling durch Klonen der ersten Node durchzuführen, 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 neueste Minimalversion von CentOS

Dies ist eine Option für den Fall, dass Sie alles von Grund auf selbst installieren möchten. Für uns ist diese Option jedoch nicht relevant, da ich ein OVA-Image für die Bereitstellung verwenden werde.

Die Anforderungen sind in jedem Fall ziemlich anspruchsvoll, selbst für eine Node, und wenn man die Vorschriften genau befolgt, benötigt man vier solcher Nodes.

Die Entwickler von ECS CE leben jedoch in der realen Welt, und die Installation erfolgt erfolgreich sogar mit einer Node, wobei die Minimalanforderungen wie folgt sind:

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

Genau solche Ressourcen werden für die Bereitstellung des OVA-Images benötigt. Das ist bereits viel humaner und realistischer.

Die Installations-Node kann offiziell bezogen werden github. Dort finden Sie auch eine ausführliche Dokumentation zur All-in-One-Bereitstellung, aber Sie können auch auf der offiziellen Seite noch mehr lesen readthedocs. Daher werden wir nicht ausführlich auf das Deployment von OVA eingehen; das geht ohne Tricks. Wichtig ist, dass Sie vor dem Start sicherstellen, dass Sie entweder die Festplatte auf die erforderliche Größe erweitern oder die notwendigen Ressourcen anheften.
Wir starten die Maschine, öffnen die Konsole und verwenden die besten Standard-Credentials:

  • Benutzername: admin
  • Passwort: ChangeMe

Dann führen wir sudo nmtui aus und konfigurieren die Netzwerkschnittstelle – IP/Netzmaske, DNS und Gateway. Dabei sollten wir bedenken, dass in CentOS minimal keine net-tools installiert sind und wir die Einstellungen über ip addr überprüfen.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Und da den Tapferen die Meere gehören, führen wir yum update durch und starten dann neu. Tatsächlich ist das ziemlich sicher, da das gesamte Deployment über Playbooks erfolgt und alle wichtigen Docker-Pakete auf der aktuellen Version gesperrt sind.

Jetzt ist es an der Zeit, das Installationsskript zu bearbeiten. Keine schönen Fenster oder pseudo UI – alles über Ihren bevorzugten Texteditor. Technisch gesehen gibt es zwei Möglichkeiten: Sie können jeden Befehl manuell ausführen oder gleich den Konfigurator videploy starten. Er öffnet einfach die Konfiguration in vim und führt anschließend eine Überprüfung durch. Aber es macht keinen Spaß, sich das Leben unnötig einfach zu machen, also führen wir zwei Befehle mehr aus. Auch wenn das keinen Sinn macht, ich habe Sie gewarnt =)

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

  • licensed_accepted: true Sie können es auch so lassen, dann werden Sie beim Deployment ausdrücklich aufgefordert, dies zu akzeptieren, und es wird Ihnen eine nette Phrase angezeigt. Vielleicht ist das sogar ein kleiner Easter Egg.
    Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird
  • Entkommentieren Sie die Zeilen autonames: und custom: Geben Sie mindestens einen gewünschten Namen für den Knoten ein – der Hostname wird während der Installation durch diesen ersetzt.
  • install_node: 192.168.1.1 Geben Sie die echte IP des Knotens an. In unserem Fall verwenden wir die gleiche wie in nmtui.
  • dns_domain: Geben Sie Ihre Domain ein.
  • dns_servers: Geben Sie Ihre DNS-Server ein.
  • ntp_servers: Sie können jeden beliebigen angeben. Ich habe den ersten aus dem Pool 0.pool.ntp.org genommen (das ist 91.216.168.42 geworden)
  • autonaming: benutzerdefiniert. Wenn Sie es nicht auskommentieren, wird der Mond Luna genannt.
  • ecs_block_devices:
    /dev/sdb
    Aus unerklärlichen Gründen könnte hier ein nicht existierendes Blockspeichergerät /dev/vda auftauchen.
  • storage_pools:
    Mitglieder:
    192.168.1.1 Hier geben wir erneut die tatsächliche IP der Node an.
  • ecs_block_devices:
    /dev/sdb Повторяем операцию вырезания несуществующих устройств.

Das gesamte Dokument ist sehr ausführlich beschrieben in Dokumentation., aber wer wird das schon in dieser unruhigen Zeit lesen. Dort steht, dass das Minimum darin besteht, IP und Subnetzmaske anzugeben, aber in meinem Laborsystem funktionierte diese Konfiguration nicht so gut, und ich musste auf die oben angegebene erweitern.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Nachdem Sie den Editor verlassen haben, müssen Sie update_deploy /home/admin/ECS-CommunityEdition/deploy.yml ausführen, und wenn alles korrekt gemacht wurde, wird dies offensichtlich kommuniziert.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Dann müssen wir doch videploy starten, auf die Aktualisierung der Umgebung warten und dann die Installation mit dem Befehl ova-step1 starten. Nach erfolgreichem Abschluss führen Sie den Befehl ova-step2 aus. Wichtig: Stoppen Sie die Skripte nicht manuell! Einige Schritte können viel Zeit in Anspruch nehmen, nicht beim ersten Mal funktionieren und so aussehen, als sei alles kaputt. In jedem Fall sollten Sie das Ende des Skripts auf natürliche Weise abwarten. Am Ende sollten Sie eine ähnliche Meldung sehen.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Jetzt können wir endlich das WebUI-Dashboard über die uns bekannte IP-Adresse öffnen. Wenn Sie in der Konfiguration nichts geändert haben, lautet das Standardkonto root/ChangeMe. Sie können sogar sofort unser S3-kompatibles Speicher verwenden. Es ist erreichbar über Port 9020 für HTTP und Port 9021 für HTTPS. Wiederum, falls Sie nichts geändert haben, lautet access_key: object_admin1 und secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.

Aber lassen Sie uns nicht zu weit vorpreschen und fangen wir der Reihe nach an.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Beim ersten Login werden Sie gezwungen, Ihr Passwort in ein sicheres zu ändern, was absolut sinnvoll ist. Das Haupt-Dashboard ist sehr übersichtlich, daher lassen Sie uns etwas Interessanteres tun, als nur offensichtliche Metriken zu erklären. Zum Beispiel erstellen wir einen Benutzer, den wir für den Zugriff auf den Speicher verwenden werden. In der Welt der Dienstanbieter werden solche Benutzer als Tenant bezeichnet. Dies geschieht unter Manage > Users > New Object User.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Bei der Erstellung eines Benutzers werden wir aufgefordert, einen Namespace anzugeben. Technisch gesehen steht es uns frei, so viele Benutzer zu erstellen, wie wir möchten. Umgekehrt gilt dasselbe. Dies ermöglicht es, die Ressourcen für jeden Tenant unabhängig zu verwalten.

Entsprechend wählen wir die benötigten Funktionen aus und generieren die Benutzerschlüssel. Mir genügen S3/Atmos. Und vergessen Sie nicht, den Schlüssel zu speichern 😉.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Der Benutzer wurde erstellt, jetzt ist es an der Zeit, ihm ein Bucket zuzuweisen. Wir gehen zu Manage > Bucket und füllen die erforderlichen Felder aus. Das ist ganz einfach.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Nun sind wir bereit für die praktische Nutzung unseres S3-Speichers.

Wir konfigurieren Veeam.

Wie wir uns erinnern, ist eine der Hauptanwendungen von Objektspeichern die langfristige Speicherung von Informationen, auf die selten zugegriffen wird. Ein ideales Beispiel ist die Notwendigkeit, Backups an einem entfernten Standort zu speichern. In Veeam Backup & Replication wird diese Funktion als Capacity Tier bezeichnet.

Beginnen wir mit der Konfiguration, indem wir unseren Dell ECS CE in die Veeam-Oberfläche einfügen. Auf der Registerkarte Backup-Infrastruktur starten wir den Assistenten zum Hinzufügen eines neuen Repositories und wählen den Punkt Objektspeicher aus.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Wählen wir das aus, was wir ursprünglich anstreben – S3-kompatibel.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Im angezeigten Fenster geben wir den gewünschten Namen ein und wechseln zu Schritt Account. Hier müssen wir den Servicepunkt im Format angeben https://your_IP:9021, der Region kann unverändert bleiben, und den erstellten Benutzer hinzufügen. Ein Gateway-Server ist erforderlich, wenn Ihr Speicher an einem entfernten Standort ist, aber das ist bereits ein Thema zur Optimierung der Infrastruktur und eines separaten Artikels, also können wir das hier getrost überspringen.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Wenn alles korrekt angegeben und konfiguriert ist, erscheint eine Warnung zum Zertifikat und dann ein Fenster mit dem Bucket, wo wir einen Ordner für unsere Dateien erstellen können.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Führen Sie den Assistenten bis zum Ende durch und genießen Sie das Ergebnis.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Im nächsten Schritt müssen Sie entweder ein neues Scale-out Backup Repository erstellen oder unser S3 in ein bestehendes hinzufügen – es wird als Capacity Tier für die Archivierung verwendet. Die Funktionen zur direkten Nutzung von S3-kompatiblen Speichersystemen wie einem normalen Repository sind in dieser Version noch nicht verfügbar. Es gibt zu viele nicht offensichtliche Probleme zu lösen, aber das ist alles machbar.
Gehen Sie zu den Repository-Einstellungen und aktivieren Sie das Capacity Tier. Alles ist transparent, aber es gibt einen interessanten Punkt: Wenn Sie möchten, dass alle Daten so schnell wie möglich in den Objektspeicher gesendet werden, setzen Sie einfach 0 Tage.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Nach dem Abschluss des Wizards können Sie, wenn Sie nicht warten möchten, mit Strg+Rechtsklick auf das Repository die Tiering-Job manuell starten und beobachten, wie die Grafiken steigen.

Objektspeicher im Hinterzimmer oder Wie man selbst zum Serviceanbieter wird

Das ist vorerst alles. Ich denke, ich habe die Aufgabe erfüllt, zu zeigen, dass Blockspeichersysteme nicht so furchterregend sind, wie man denkt. Ja, es gibt viele Lösungen und Ausführungsvarianten, aber es ist nicht möglich, alles in einem Artikel abzudecken. Lassen Sie uns also Erfahrungen in den Kommentaren teilen.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster