Die Welt sah 1996 den ersten Prototyp der Objektspeicherung. Nach 10 Jahren werden Amazon Web Services Amazon S3 starten und die Welt wird systematisch verrückt nach einem flachen Adressraum. Dank der Arbeit mit Metadaten und der Fähigkeit zur Skalierung ohne Durchhängen unter Last wurde der Objektspeicher schnell zum Standard für die meisten Cloud-Speicherdienste und mehr. Ein weiteres wichtiges Merkmal ist die gute Fähigkeit, Archive und ähnliche selten verwendete Dateien zu speichern. Alle, die mit Datenspeicherung zu tun hatten, freuten sich und nahmen die neue Technologie in die Hand.

Aber das Gerücht von Menschen war voller Gerüchte, dass es bei der Objektspeicherung nur um große Wolken geht, und wenn Sie keine Lösungen von den verdammten Kapitalisten benötigen, wird es sehr schwierig sein, Ihre eigenen zu machen. Es wurde viel über die Bereitstellung der Cloud geschrieben, aber es gibt nicht viele Informationen über die Erstellung der sogenannten S3-kompatiblen Lösungen.
Daher werden wir heute herausfinden, welche Optionen "Um es mehr wie Erwachsene, nicht wie CEPH und eine größere Datei zu machen" sind. Wir werden eine davon erweitern und mit Veeam Backup & Replication prüfen, ob alles funktioniert. Es wird Unterstützung für die Arbeit mit S3-kompatiblen Repositorys beansprucht, und wir werden diese Anweisung überprüfen.
Wie wäre es mit anderen?
Ich schlage vor, mit einem kurzen Überblick über den Markt und die Optionen für die Objektspeicherung zu beginnen. Ein anerkannter Marktführer und Standard ist der Amazon S3. Die beiden nächsten Verfolger sind Microsoft Azure Blob Storage und IBM Cloud Object Storage.
Ist das alles Gibt es wirklich keine anderen Wettbewerber? Natürlich gibt es Wettbewerber, aber jemand geht seinen eigenen Weg, wie Google Cloud oder Oracle Cloud Object Storage, mit unvollständiger Unterstützung für die S3-API. Jemand verwendet ältere Versionen der API wie Baidu Cloud. Und einige, wie Hitachi Cloud, erfordern die Verwendung spezieller Logik, was ihre Schwierigkeiten mit Sicherheit verursachen wird. In jedem Fall wird jeder mit Amazon verglichen, was als Industriestandard angesehen werden kann.
On-Premise-Lösungen bieten jedoch viel mehr Auswahlmöglichkeiten. Lassen Sie uns daher Kriterien identifizieren, die für uns wichtig sind. Grundsätzlich reichen nur zwei aus: Unterstützung der S3-API und Verwendung der v4-Signatur. Hand in Hand sind wir als zukünftiger Kunde nur an Schnittstellen für die Interaktion interessiert, und die interne Küche des Lagers selbst ist für uns nicht so interessant.
Nun, viele Lösungen sind für diese einfachen Bedingungen geeignet. Zum Beispiel klassische Unternehmensschwergewichte:
- DellEMC ECS
- NetApp S3 StorageGrid
- Nutanix-Eimer
- Pure Storage FlashBlade und StorReduce
- Huawei FusionStorage
Es gibt eine Nische mit reinen Softwarelösungen, die sofort einsatzbereit sind:
- Red Hat Ceph
- SUSE Enterprise Storage
- Cloudian
Und auch diejenigen, die die Datei nach dem Zusammenbau sorgfältig bearbeiten möchten, waren nicht beleidigt:
- Reine Ceph
- Minio (Linux-Version, für die Windows-Version gibt es viele Fragen)
Die Liste ist alles andere als vollständig, sie kann in den Kommentaren besprochen werden. Denken Sie daran, vor der Implementierung zusätzlich zur Kompatibilitäts-API die Systemleistung zu überprüfen. Das Letzte, was Sie brauchen, ist der Verlust von Terabytes an Daten aufgrund von hängenden Anforderungen. Fühlen Sie sich also frei, Stresstests durchzuführen. Im Allgemeinen verfügt jede Software für Erwachsene, die mit großen Datenmengen arbeitet, über mindestens Kompatibilitätsberichte. Im Fall von Veeam gibt es ein ganzes Programm für gegenseitige Tests, mit dem Sie die vollständige Kompatibilität unserer Produkte mit bestimmten Geräten sicher erklären können. Dies ist bereits eine wechselseitige Arbeit, nicht immer schnell, aber wir erweitern ständig die Liste der getesteten Lösungen.
Stellen Sie unseren Stand zusammen
Ich möchte ein wenig über die Auswahl eines Testobjekts sprechen.
Erstens wollte ich eine Option finden, die sofort funktioniert. Nun, oder zumindest mit der maximalen Wahrscheinlichkeit, dass er verdient, ohne zusätzliche Gesten machen zu müssen. Mit einem Tamburin zu tanzen und nachts die Konsole zu pflücken ist sehr aufregend, aber manchmal möchte ich, dass es sofort funktioniert. Und die allgemeine Zuverlässigkeit solcher Lösungen ist normalerweise höher. Und ja, der Geist des Adventurismus verschwand in uns, wir hörten auf, durch die Fenster unserer geliebten Frauen zu klettern usw. (c).
Zweitens, um ehrlich zu sein, besteht für ziemlich große Unternehmen die Notwendigkeit, mit Objektspeicher zu arbeiten. Dies ist also der Fall, wenn die Suche nach Lösungen auf Unternehmensebene nicht nur nicht peinlich ist, sondern sogar gefördert wird. Jedenfalls kenne ich noch keine Beispiele dafür, dass jemand für den Kauf solcher Lösungen entlassen wurde.
Aufgrund des Vorstehenden fiel meine Wahl auf die Dell EMC ECS Community Edition . Dies ist ein sehr interessantes Projekt, und ich halte es für notwendig, Ihnen davon zu erzählen.
Das erste, was mir beim Betrachten des Community Edition- Add-ons einfällt, ist, dass es sich nur um ein Transparentpapier aus einem vollwertigen ECS mit einigen Einschränkungen handelt, die durch den Kauf einer Lizenz beseitigt werden. Also nein!
Denken Sie daran:
!!! Community Edition ist ein separates Projekt zum Testen und ohne technischen Support von Dell !!
Und es kann nicht in ein vollwertiges ECS verwandelt werden, selbst wenn Sie es wirklich wollen.
Lass uns verstehen
Viele Leute denken, dass Dell EMC ECS fast die beste Lösung ist, wenn Sie Objektspeicher benötigen. Alle Projekte unter der Marke ECS, einschließlich kommerzieller und geschäftlicher, liegen auf dem Github . Eine Art Geste des guten Willens von Dell. Zusätzlich zu der Software, die auf der Markenhardware ausgeführt wird, gibt es eine Open Source-Version, die auch in der Cloud bereitgestellt werden kann, zumindest auf einer virtuellen Maschine, zumindest im Container, zumindest auf einer Ihrer Hardware. Vorausschauend - es gibt sogar eine OVA-Version, die wir verwenden werden.
Die DELL ECS Community Edition selbst ist eine Mini-Version der vollständigen Software, die auf Servern der Marke Dell EMC ECS ausgeführt wird.
Ich habe vier Hauptunterschiede hervorgehoben:
- Keine Verschlüsselungsunterstützung. Es ist eine Schande, aber nicht kritisch.
- Fehlende Stofflage. Dieses Ding ist für die Clusterbildung, Ressourcenverwaltung, Aktualisierungen, Überwachung und Speicherung von Docker-Images verantwortlich. Hier ist es schon sehr enttäuschend, aber Dell kann auch verstanden werden.
- Die schlimmste Folge des vorherigen Absatzes: Die Größe des Knotens kann nach Abschluss der Installation nicht erweitert werden.
- Kein technischer Support. Dies ist ein Produkt zum Testen, das in kleinen Installationen nicht verboten ist, aber ich persönlich würde es nicht wagen, Petabytes an wichtigen Daten dort hochzuladen. Aber technisch kann dich niemand davon abhalten.

Und was ist in der großen Version?
Wir galoppieren durch Europa nach Eisenlösungen, um ein umfassenderes Bild des Ökosystems zu erhalten.
Ich werde die Aussage, dass DELL ECS der beste On-Prem-Objektspeicher ist, nicht bestätigen oder ablehnen, aber wenn Sie zu diesem Thema etwas zu sagen haben, werde ich es gerne in den Kommentaren lesen. Laut IDC MarketScape 2018 ist Dell EMC auf jeden Fall einer der fünf führenden Anbieter auf dem OBS-Markt. Obwohl cloudbasierte Lösungen dort nicht berücksichtigt werden, handelt es sich um ein separates Problem.
Aus technischer Sicht ist ECS ein Objektspeicher, der über Cloud-Speicherprotokolle den Zugriff auf Daten ermöglicht. Unterstützt AWS S3 und OpenStack Swift. Für dateifähigen Bucket unterstützt ECS NFSv3 für Dateiexportfunktionen.
Das Aufzeichnen von Informationen ist besonders nach den klassischen Blockspeichersystemen recht ungewöhnlich.
- Wenn neue Daten eintreffen, wird ein neues Objekt erstellt, das einen Namen, die Daten selbst und Metadaten hat.
- Objekte schlagen auf 128-MB-Chunks, und jeder Chunk wird sofort auf drei Knoten aufgezeichnet.
- Die Indexdatei wird aktualisiert, wobei Kennungen und Speicherorte aufgezeichnet werden.
- Die Protokolldatei (Protokollsatz) wird aktualisiert und auch auf drei Knoten geschrieben.
- Eine Nachricht über die erfolgreiche Aufzeichnung wird an den Client gesendet
Alle drei Kopien der Daten werden parallel aufgezeichnet. Die Aufnahme gilt nur dann als erfolgreich, wenn alle drei Kopien erfolgreich aufgenommen wurden.

Das Lesen ist einfacher:
- Der Client fordert Daten an.
- Der Index sucht nach einem Speicherort für Daten.
- Daten werden von einem Knoten gelesen und an den Client gesendet.

Es gibt einige Server selbst, schauen wir uns also den kleinsten Dell EMC ECS EX300 an. Es beginnt bei 60 TB, mit der Fähigkeit, auf 1,5 TB zu wachsen. Und sein älterer Bruder Dell EMC ECS EX3000 kann bereits bis zu 8,6 Pb pro Rack speichern.
Bereitstellen
Technisch gesehen kann Dell ECS CE in beliebiger Größe bereitgestellt werden. Auf jeden Fall habe ich keine expliziten Einschränkungen gefunden. Die gesamte Skalierung erfolgt jedoch bequem durch Klonen des allerersten Knotens, für den wir Folgendes benötigen:
- 8 vCPU
- 64 GB RAM
- 16 GB für Betriebssysteme
- 1 TB direkt für die Speicherung
- Neueste CentOS-Minimalversion
Dies ist eine Option für den Fall, dass Sie von Anfang an alles selbst installieren möchten. Für uns ist diese Option nicht relevant, weil Ich werde das OVA-Image für die Bereitstellung verwenden.
Aber in jedem Fall sind die Anforderungen selbst für einen Knoten sehr schlecht, und wenn Sie sich strikt an den Buchstaben des Gesetzes halten, gibt es vier solcher Knoten.
Die Entwickler von ECS CE leben jedoch in der realen Welt, und die Installation ist auch mit einem einzelnen Knoten erfolgreich. Die Mindestanforderungen lauten wie folgt:
- 4 vCPU
- 16 GB RAM
- 16 GB für Betriebssysteme
- 104 GB Self Storage
Diese Ressourcen werden zum Bereitstellen eines OVA-Images benötigt. Schon viel humaner und realistischer.
Der Installationsknoten selbst kann im offiziellen Github übernommen werden . Es gibt auch eine detaillierte Dokumentation zum All-in-One-Einsatz, aber Sie können immer noch die offiziellen Readthedocs lesen. Daher werden wir uns nicht im Detail mit dem Einsatz von OVA befassen, es gibt keine Tricks. Die Hauptsache - vergessen Sie nicht, bevor Sie es starten, entweder die Festplatte auf das gewünschte Volumen zu erweitern oder die erforderlichen anbringen.
Wir starten das Auto, öffnen die Konsole und verwenden die besten Standard-Credits:
- Login: admin
- Passwort: ChangeMe
Dann starten wir sudo nmtui und konfigurieren die Netzwerkschnittstelle - IP / Maske, DNS und Gate. In Anbetracht dessen, dass CentOS minimal keine Netzwerkzeuge hat, überprüfen wir die Einstellungen über die IP-Adresse.

Und da die Meere nur mutig einreichen, machen wir ein Update und starten danach neu. In der Tat ist es ziemlich sicher, weil Die gesamte Bereitstellung erfolgt über Playbooks, und alle wichtigen Docker-Pakete sind in der aktuellen Version gesperrt.
Jetzt ist es Zeit, das Installationsskript zu bearbeiten. Keine schönen Fenster oder Pseudo-UI für Sie - alles über Ihren bevorzugten Texteditor. Rein technisch gibt es zwei Möglichkeiten: Sie können jeden Befehl mit Handles starten oder den videploy-Konfigurator sofort starten. Es öffnet einfach die Konfiguration in vim und führt beim Beenden die Überprüfung durch. Eine gezielte Vereinfachung Ihres Lebens ist jedoch nicht interessant. Wir werden also zwei weitere Teams bilden. Obwohl es keinen Sinn macht, habe ich dich gewarnt =)
Also führen wir vim ECS-CommunityEdition / deploy.xml aus und nehmen die optimalen minimalen Änderungen vor, damit ECS aktiviert wird und funktioniert. Die Liste der Parameter kann gekürzt werden, aber mir hat Folgendes gefallen:
- licensed_accepted: true Sie können es nicht ändern. Bei der Bereitstellung werden Sie explizit aufgefordert, es zu akzeptieren, und es wird ein netter Satz angezeigt. Vielleicht ist das sogar ein Osterei.

- Kommentieren Sie die Zeilen mit den automatischen Namen aus: und benutzerdefiniert: Geben Sie mindestens einen gewünschten Namen für den Knoten ein - der Hostname wird während des Installationsvorgangs durch diesen ersetzt.
- install_node: 192.168.1.1 Geben Sie die realen IP-Knoten an. In unserem Fall geben wir dasselbe wie in nmtui an
- DNS_Domain: Geben Sie Ihre Domain ein.
- DNS-Server: Geben Sie Ihre DNS ein.
- ntp_servers: Sie können beliebige angeben. Ich nahm die erste aus dem Pool 0.pool.ntp.org (es wurde 91.216.168.42)
- Autonaming: Benutzerdefiniert Wenn Sie das Kommentarzeichen nicht entfernen, wird der Mond Luna genannt.
- ecs_block_devices:
/ dev / sdb
Aus einem unbekannten Grund ist möglicherweise ein Blockspeichergerät / dev / vda nicht vorhanden - Speicherpools:
Mitglieder:
192.168.1.1 Auch hier geben wir die realen IP-Knoten an - ecs_block_devices:
/ dev / sdb Wiederholen Sie den Vorgang zum Schneiden nicht vorhandener Geräte.
Im Allgemeinen wird die gesamte Datei in der Dokumentation ausführlich beschrieben, aber wer wird sie in einer so hektischen Zeit lesen? Es heißt auch, dass das Minimum ausreicht, um die IP und die Maske zu spezifizieren, aber in meinem Labor war diese Einrichtung nicht gut und ich musste auf das oben Gesagte erweitern.

Führen Sie nach dem Beenden des Editors update_deploy /home/admin/ECS-CommunityEdition/deploy.yml aus. Wenn alles korrekt ausgeführt wurde, wird dies explizit gemeldet.

Dann müssen Sie noch videploy starten, auf die Aktualisierung der Umgebung warten und die Installation selbst mit dem Befehl ova-step1 und nach erfolgreicher Ausführung mit dem Befehl ova-step2 starten. Wichtig: Hören Sie nicht auf, mit Ihren Händen zu schreiben! Einige Schritte können einige Zeit in Anspruch nehmen, werden beim ersten Versuch nicht ausgeführt und sehen so aus, als wäre alles kaputt. In jedem Fall müssen Sie warten, bis das Skript auf natürliche Weise abgeschlossen ist. Am Ende sollten Sie so etwas sehen.

Jetzt können wir endlich das WebUI-Kontrollfeld über die uns bekannte IP öffnen. Wenn Sie die Konfigurationsphase nicht geändert haben, lautet das Standardkonto root / ChangeMe. Sie können unseren S3-kompatiblen Speicher sogar sofort nutzen. Es ist an den Ports 9020 für HTTP und 9021 für HTTPS verfügbar. Wenn Sie nichts geändert haben, klicken Sie erneut auf access_key: object_admin1 und secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.
Aber lasst uns nicht weiterkommen und in der richtigen Reihenfolge beginnen.

Bei der ersten Anmeldung werden Sie zwangsweise aufgefordert, das Passwort in ein angemessenes zu ändern, was absolut korrekt ist. Das Haupt-Dashboard ist äußerst verständlich. Lassen Sie uns also etwas Interessanteres tun, als die offensichtlichen Metriken zu erklären. Erstellen Sie beispielsweise einen Benutzer, mit dem wir auf das Repository zugreifen. In der Welt der Dienstleister werden sie als Mieter bezeichnet. Dies erfolgt unter Verwalten> Benutzer> Neuer Objektbenutzer

Beim Erstellen eines Benutzers werden wir aufgefordert, einen Namespace anzugeben. Technisch gesehen hindert uns nichts daran, so viele Benutzer zu bekommen, wie es Benutzer geben wird. Umgekehrt. Auf diese Weise können Sie Ressourcen für jeden Mandanten unabhängig verwalten.
Dementsprechend wählen wir die Funktionen aus, die wir benötigen, und generieren die Benutzerschlüssel. S3 / Atmos wird mir reichen. Und vergiss nicht den Schlüssel zu speichern;)

Der Benutzer wurde erstellt. Jetzt muss er den Bucket auswählen. Gehen Sie zu Verwalten> Bucket und füllen Sie die erforderlichen Felder aus. Hier ist alles einfach.

Jetzt sind wir bereit für die vollständige Nutzung unseres S3-Speichers.
Fertigen Sie Veeam besonders an
Wie wir uns erinnern, ist eine der Hauptanwendungen der Objektspeicherung die Langzeitspeicherung von Informationen, auf die selten zugegriffen wird. Ein ideales Beispiel ist die Notwendigkeit, Backups an einem Remote-Standort zu speichern. In Veeam Backup & Replication wird diese Funktion als Capacity Tier bezeichnet.
Beginnen wir mit dem Setup, indem wir unser Dell ECS CE zur Veeam-Schnittstelle hinzufügen. Starten Sie auf der Registerkarte Sicherungsinfrastruktur den Assistenten zum Hinzufügen eines neuen Repositorys und wählen Sie das Objektspeicherelement aus.

Wir wählen, worum es geht - S3-kompatibel.

Geben Sie im angezeigten Fenster den gewünschten Namen ein und fahren Sie mit dem Schritt Konto fort. Hier müssen Sie den Servicepunkt in der Form https: // your_IP: 9021 angeben . Sie können die Region unverändert lassen und den erstellten Benutzer hinzufügen. Ein Gate-Server wird benötigt, wenn sich Ihr Speicher an einem Remotestandort befindet. Dies ist jedoch bereits ein Thema der Infrastrukturoptimierung und ein separater Artikel, sodass Sie hier sicher überspringen können.

Wenn alles korrekt angegeben und konfiguriert ist, wird eine Zertifikatswarnung ausgegeben und anschließend ein Fenster mit einem Eimer, in dem Sie einen Ordner für unsere Dateien erstellen können.

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

Im nächsten Schritt müssen Sie entweder ein neues Scale-out-Backup-Repository erstellen oder unser S3 zum vorhandenen hinzufügen - es wird als Kapazitätsstufe für die Archivspeicherung verwendet. Funktionen zur direkten Verwendung von S3-kompatiblen Repositorys, wie z. B. ein reguläres Repository, sind in der aktuellen Version nicht enthalten. Hierfür müssen zu viele, eher nicht offensichtliche Probleme gelöst werden, aber es kann alles sein.
Wir gehen in die Repository-Einstellungen und aktivieren die Kapazitätsstufe. Dort ist alles transparent, aber es gibt eine interessante Nuance: Wenn Sie möchten, dass alle Daten so schnell wie möglich an den Objektspeicher gesendet werden, setzen Sie einfach 0 Tage.

Wenn Sie nach dem Bestehen des Assistenten nicht warten möchten, können Sie im Repository Strg + RMB drücken, den Tiering-Job starten und das Crawlen der Diagramme beobachten.

Das ist alles für jetzt. Ich betrachte es als Aufgabe, zu zeigen, dass Blockspeicher nicht so beängstigend sind, wie es üblich ist, dachte ich. Ja, es gibt Lösungen und Optionen für einen Wagen und einen kleinen Wagen, aber Sie können nicht alles in einem Artikel behandeln. Lassen Sie uns also die Erfahrung in den Kommentaren teilen.