Es entstehen immer mehr Lösungen, die sich vom traditionellen Unified Storage-Ansatz entfernen. Hierbei handelt es sich um spezialisierte Speicher, die auf die Aufgaben eines bestimmten Geschäftsbereichs zugeschnitten sind. Zuvor habe ich über das Infinidat InfiniBox F2230-System gesprochen. Heute im Zentrum meiner SolidFire-Überprüfung.
"Wer fickt Hassspeicher" @ Dave Heats, Gründer von NetAppEnde 2015 gab NetApp den Kauf des 2010 gegründeten SolidFire-Startups bekannt. Das Interesse an diesen Systemen beruht auf ihrem unterschiedlichen Ansatz bei der Verwaltung von Data Warehouses und ihrer vorhersehbaren Leistung.
SolidFire-Lösungen ergänzten die NetApp-Produktlinie, die die Serien All Flash FAS (AFF), EF und E umfasste. Eineinhalb Jahre später konnte ein neues Produkt auf den Markt gebracht werden - NetApp HCI (Hyper Converged Infrastructure), das SolidFire als Speichersubsystem verwendet.
„Wir entwickeln ein neues Speichersystem für sehr große Cloud-Computing-Rechenzentren. Grundsätzlich besteht die Idee darin, dass viele Unternehmen Computer von ihren Büros oder ihren eigenen Rechenzentren in diese großen Cloud-Computing-Rechenzentren übertragen, in denen sie Zehntausende von Kunden mit all ihren Informationen an einem Ort haben. Aus diesem Grund entwickeln wir ein neues Speichersystem für diese großen Rechenzentren. “
Dave Wright, CEO von SolidFire, 2012
In letzter Zeit gibt es immer mehr Lösungen, die vom traditionellen Ansatz einheitlicher Speicher, mit denen Probleme gelöst werden können, zu spezialisierten Speichern übergehen, die zur Lösung von Problemen eines bestimmten Geschäftsbereichs entwickelt wurden.
Vor nicht allzu langer Zeit habe
ich bereits über das Infinidat InfiniBox F2230-System gesprochen , das sich perfekt für die Aufgaben von Dienstleistern eignet. Der heutige Teilnehmer an unserem SolidFire-Test kann auch dieser Geräteklasse zugeordnet werden. Der Gründer von SolidFire, Dave Wright, und sein Team stammen von RackSpace, wo sie ein effizientes Speichersystem entwickelten, das in einer Umgebung mit vielen Benutzern eine lineare Leistung bietet, das einfach, leicht skalierbar und mit flexiblen Automatisierungsfunktionen ausgestattet ist. Um dieses Problem zu lösen, wurde SolidFire geboren.
Bisher besteht die SolidFire-Reihe aus vier Modellen mit unterschiedlichen IOPS / TB-Verhältnissen.
10 (MLC) SSDs werden zur Datenspeicherung und Radian RMS-200 als NVRAM verwendet. Es
stimmt , es gibt bereits Pläne, auf
NVDIMM- Module
umzusteigen .

Interessant ist hier, wie SolidFire Daten abruft und speichert. Wir alle kennen die begrenzten Ressourcen von SSD-Laufwerken. Daher ist es logisch, dass die Komprimierung und Deduplizierung vor der Aufnahme auf SSD im laufenden Betrieb erfolgen sollte. Wenn SolidFire Daten vom Host empfängt, werden diese in 4K-Blöcke unterteilt. Anschließend wird dieser Block komprimiert und im NVRAM gespeichert. Dann erfolgt eine synchrone Replikation dieses Blocks im NVRAM auf den "benachbarten" Knoten des Clusters. Danach empfängt SolidFire den Hash dieses komprimierten Blocks und sucht nach diesem Hashwert in seinem Index der gespeicherten Daten im gesamten Cluster. Wenn ein Block mit einem solchen Hash bereits vorhanden ist, aktualisiert SolidFire nur seine Metadaten mit einem Link zu diesem Block. Wenn der Block eindeutige Daten enthält, wird er auf die SSD geschrieben, und Metadaten werden auch dafür geschrieben. Dieser Mechanismus zum Speichern von Daten und Metadaten ist dem Funktionsmechanismus der Objektspeicherung sehr ähnlich.

Unser Testcluster aus vier KnotenEs gab bereits Gerüchte, dass diese Zeile bald aktualisiert wird. Es ist erwähnenswert, dass der SolidFire-Cluster mit Knoten mit unterschiedlichen „IOPs / TB-Dichten“ arbeiten und Knoten verschiedener Generationen in einem Cluster kombinieren kann. Erstens macht es die Verwendung dieses Systems hinsichtlich der Hardwareunterstützung vorhersehbarer und erleichtert auch den Übergang von alten zu neuen Knoten, wenn Sie einfach neue hinzufügen und alte in Echtzeit aus dem Cluster löschen (nur darauf warten, dass der Cluster neu erstellt wird), ohne Ausfallzeiten. weil Es gibt Unterstützung für Scale Out und Scale Back.
SolidFire kann als drei Lösungen geliefert werden:
- SolidFire als eigenständiges Produkt auf Basis von Dell / EMC-Servern,
- als Teil des FlexPod SF auf Cisco-Servern
- als Teil von NetApp HCI auf seiner Plattform.
Wie Sie der Merkmalstabelle entnehmen können, unterstützen Knoten nur die iSCSI-Verbindung, und für die FC-Verbindung gibt es einen separaten Knotentyp - Fabric Interconnect, der wiederum vier Ports für FC-Daten und vier iSCSI-Ports für die Verbindung mit Knoten enthält 64 GB nativer Systemspeicher / Lese-Cache.
Die Merkmalstabelle zeigt auch die Leistung jedes Knotens. Dies ist einer der Fälle, in denen Sie die Leistung Ihres Speichersystems zum Zeitpunkt des Kaufs kennen. Diese Leistung ist für jeden Knoten garantiert (mit einem Lastprofil von 4 KB, 80/20).
Wenn Sie also einen Cluster von X-Knoten kaufen oder eine vorhandene Lösung erweitern, wissen Sie, wie viel Volumen und welche Leistung Sie am Ende erhalten. Natürlich können Sie unter bestimmten Bedingungen mehr Leistung von jedem Knoten herausholen, aber dafür wurde diese Lösung nicht entwickelt. Wenn Sie Millionen von IOPS in 2U auf einem einzigen Volume erhalten möchten, sollten Sie Ihre Aufmerksamkeit besser auf andere Produkte wie AFF lenken. Die größte Leistung unter SolidFire kann mit einer großen Anzahl von Volumes und Sitzungen erzielt werden.
Schnittstelle HomeDie Speicherverwaltung ist ziemlich einfach. Tatsächlich haben wir zwei Ressourcenpools: Volume und IOPS. Indem wir einen der Ressourcentypen identifizieren und deren endgültige Anzahl kennen, verstehen wir die anderen Funktionen unseres Systems klar. Dies macht das Erweitern des Systems wiederum zu einer äußerst einfachen Aufgabe. Benötigen Sie mehr Leistung? Betrachten Sie SF4805 oder SF19210 mit einem „weniger dichten“ IOPS / TB-Verhältnis. Benötigen Sie Volumen? Wir schauen auf SF9605 und SF38410, die weniger IOPS auf Gb bieten.
Aus Sicht des Speicheradministrators sieht das System ziemlich langweilig aus. Dinge wie Deduplizierung und Komprimierung funktionieren standardmäßig.
Replikation und Snapshots sind ebenfalls verfügbar, und die Replikation kann für die gesamte Palette der NetApp-Produkte (mit Ausnahme der E-Serie) organisiert werden. Es ist diese Einfachheit, die meiner Meinung nach hinter dem Zitat von Dave Heats aus dem Titel des Artikels offenbart wird. Angesichts der Tatsache, dass dieses System die Integration in verschiedene Systeme zur dynamischen Zuweisung von Ressourcen ohne Beteiligung eines Administrators und ohne zusätzliche Arbeitskosten umfasst, werden Sie in der Regel bald vergessen, wie die SolidFire-Oberfläche aussieht. Wir werden jedoch mehr über Integration sprechen.
Wir bei
Onlanta haben Stresstests durchgeführt, um sicherzustellen, dass die versprochenen 200.000 IOPS eingehalten werden. Nicht, dass wir dem Verkäufer nicht glauben, aber wir sind es gewohnt, alles selbst auszuprobieren. Wir haben uns nicht das Ziel gesetzt, mehr als angegeben aus dem System herauszudrücken. Wir konnten auch aus eigener Erfahrung überprüfen, dass das System mit einer großen Anzahl von Flüssen genau ein gutes Ergebnis liefert. Zu diesem Zweck haben wir 10 Volumes mit 1 TB in SolidFire organisiert, auf denen wir eine virtuelle Testmaschine platziert haben. Bereits in der Phase der Vorbereitung der Testumgebung waren wir von der Deduplizierungsarbeit angenehm überrascht. Trotz der Tatsache, dass das Schema seiner Arbeit ziemlich Standard ist, erwies sich die Qualität der Arbeit innerhalb des Clusters als äußerst effektiv. Die Scheiben vor den Tests wurden mit zufälligen Daten gefüllt.
Um es schneller zu machen, haben wir einen Block von 10 MB generiert, dann haben sie ihn gefüllt. Darüber hinaus wurde dieser Block auf jeder virtuellen Maschine separat erzeugt, d.h. Bei allen Autos ist das Muster unterschiedlich. Von 10 TB, die mit Daten gefüllt waren, betrug der tatsächlich belegte Speicherplatz auf dem Array 4 TB. Die Deduplizierungseffizienz beträgt 1: 2,5, bei FAS mit diesem Ansatz tendierte die Inline-Deduplizierungseffizienz zu 0. Wir konnten 190.000 IOPS mit einer Antwort von ~ 1 ms auf unserem Prüfstand erzielen.


Ich möchte darauf hinweisen, dass die architektonischen Merkmale der Lösung es nicht ermöglichen, ein hohes Leistungsniveau für eine kleine Anzahl von Threads zu erzielen. Ein kleiner Mond oder nur eine virtuelle Testmaschine kann keine hohen Ergebnisse zeigen. Wir konnten diese Menge an IOPS erhalten, indem wir die gesamte Kapazität des Systems nutzten und die Anzahl der virtuellen Maschinen, die mit fio eine Last erzeugen, schrittweise zunahmen. Wir haben ihre Anzahl erhöht, bis die Verzögerungen 1,5 ms nicht überschritten haben. Danach haben wir angehalten und die Leistungsindikatoren entfernt.
Die Fülle des Festplattensubsystems wirkt sich auch auf die Leistung aus. Wie ich bereits sagte, haben wir vor dem Ausführen der Tests die Datenträger mit zufälligen Daten gefüllt. Wenn Sie den Test ausführen, ohne zuerst die Festplatten zu füllen, ist die Leistung bei gleicher Verzögerung viel höher.
Wir haben auch unseren bevorzugten Fehlertoleranztest durchgeführt, indem wir einen der Knoten ausgeschaltet haben. Um den besten Effekt zu erzielen, wurde ein Masterknoten zum Deaktivieren ausgewählt. Aufgrund der Tatsache, dass jeder Client-Server beim Trennen eines der Knoten eine eigene Sitzung mit dem Clusterknoten erstellt und nicht über einen einzelnen Punkt, werden nicht alle virtuellen Maschinen beeinträchtigt, sondern nur diejenigen, die mit diesem Knoten gearbeitet haben. Dementsprechend sehen wir von der Seite des Speichers nur einen teilweisen Leistungsabfall.
Bei Virtualisierungshosts lag der Leistungsabfall in einigen Datenspeichern natürlich bei bis zu 0. Innerhalb von 30 Sekunden wurde die Leistung jedoch ohne Leistungseinbußen wiederhergestellt (es sollte berücksichtigt werden, dass die Last zum Zeitpunkt des Abfalls bei 120.000 iops lag, die drei möglicherweise erzeugen könnten Von vier Knoten hätten wir keinen Leistungsverlust sehen dürfen.
Auf der SolidFire-Seite begann der Wiederaufbau des Arrays. Der Timer lügt ein wenig und der Vorgang dauerte ungefähr 55 Minuten, was in die vom Verkäufer versprochene Stunde passt. Gleichzeitig entfernte niemand die Last aus dem Speichersystem und sie blieb auf dem gleichen Niveau von 120.000 IOPS.Fehlertoleranz wird nicht nur auf Plattenebene, sondern auch auf Knotenebene bereitgestellt. Der Cluster unterstützt den gleichzeitigen Ausfall eines Knotens. Danach wird der Cluster-Wiederherstellungsprozess gestartet. In Anbetracht der Verwendung von SSD und der Tatsache, dass alle Knoten an der Neuerstellung beteiligt sind, dauert die Clusterwiederherstellung etwa eine Stunde (die Neuerstellung bei einem Festplattenfehler dauert etwa 10 Minuten). Es sollte beachtet werden, dass Sie bei einem Ausfall eines Knotens sowohl an Leistung als auch an nutzbarem Speicherplatz verlieren. Dementsprechend müssen Sie immer freien Speicherplatz in Höhe eines Knotens haben. Die minimale Clustergröße beträgt vier Knoten. Mit dieser Konfiguration können Sie Probleme vermeiden, wenn einer der Knoten ausfällt, bevor Sie auf das Eintreffen des Ersatzes warten.
Wie bei den meisten Speichersystemen wird die Leistungsüberwachung hier nur in Echtzeit angezeigt. Um auf historische Daten zugreifen zu können, müssen Sie den sogenannten Verwaltungsknoten bereitstellen, der API-Daten aus SolidFire entnimmt und in Active IQ hochlädt. Wenn Sie bereits mit NetApp-Systemen gearbeitet haben, sind Sie möglicherweise bereits auf dieses Portal gestoßen. Sie haben die Möglichkeit, mit Daten zu Produktivität, Effizienz und Wachstumsprognosen zu arbeiten. Zu welchem Zeitpunkt können Sie auf diese Daten auch von Ihrem mobilen Gerät aus zugreifen, überall auf der Welt.
Da ich die Arbeit der Inline-Deduplizierung erwähnt habe, werde ich auch auf die Speichereffizienz im Allgemeinen eingehen. Wie bei der AFF-Serie bietet NetApp ein garantiertes Speichereffizienzverhältnis basierend auf der Art der gespeicherten Daten.
Wie Sie sehen können, unterscheiden sich die Datentypen und garantierten Koeffizienten geringfügig. Zum Beispiel hat SolidFire genau unseren Fall - Virtuelle Infrastruktur mit einem Koeffizienten von 4: 1. Dabei wird die Verwendung von Schnappschüssen nicht berücksichtigt.
Die Architektur der Lösung basiert auf Quality of Service (QoS), die tatsächlich eine garantierte Leistung für jedes Volume gewährleistet.
QoS ist eine der entscheidenden Funktionen für Dienstanbieter und andere Unternehmen, die eine garantierte Speicherleistung bereitstellen müssen. Jemand wird sagen, dass QoS nichts Neues ist und von vielen anderen Anbietern implementiert wird. Eine andere Frage ist, wie es funktioniert. Wenn es bei herkömmlichem Speicher wahrscheinlicher ist, Prioritäten zu setzen und die Geschwindigkeit zu begrenzen, verwendet SolidFire wiederum einen integrierten Ansatz, um eine garantierte Leistung zu erzielen.
- Durch die Verwendung einer All-SSD können Sie eine geringe Latenz für E / A erzielen.
- Scale-out sagt Leistungsmetriken leicht voraus.
- Mangel an klassischem RAID - vorhersehbare Leistung mit
- Hardwarefehler
- Eine ausgewogene Lastverteilung beseitigt Engpässe im System.
- QoS hilft, "laute Nachbarn" zu vermeiden.
Zusätzlich zu der Möglichkeit, die maximale und minimale Leistung festzulegen, ist es möglich, diese Leistung über die maximale Grenze (Burst) hinaus bereitzustellen. Jeder Band hat ein bestimmtes bedingtes Kreditsystem. Wenn seine Produktivität unter der Höchstgrenze liegt, werden ihm diese Kredite gutgeschrieben, dank derer er für einen bestimmten Zeitraum die Höchstgrenze der Produktivität überwinden kann. Mit diesem Ansatz können Sie eine große Anzahl von Anwendungen, die eine hohe Leistung erfordern, im Speicher platzieren und gleichzeitig vor negativen Auswirkungen auf einander schützen. Das Interessanteste ist, dass QoS nicht nur auf der Volume-Ebene des Arrays unterstützt wird, sondern auch auf der Ebene der VMware VVs, wodurch eine granulare Zuweisung von Ressourcen für jede virtuelle Maschine ermöglicht wird. Die vollständige Unterstützung von VAAI und der VASA-API ermöglicht eine enge Array-Integration mit dem Virtualizer.
Apropos Integration: Die Lösung von VMware ist noch lange nicht vorbei.
Vielleicht kann SolidFire als das am meisten automatisierte Speichersystem bezeichnet werden, das in alle modernen Systeme, Virtualisierungs- / Containerisierungssysteme integriert werden kann, Konfigurationsmanagementsysteme unterstützt und SDK für verschiedene Sprachen verfügbar ist.
Ich schaue wie immer auf das erste, was das SDK für Python ist, mit dem ich meine eigenen Workflows automatisiere. Daher müssen wir 15 Volumes mit 1 TB erstellen und iqn an der Ausgabe abrufen, die wir an VMware-Administratoren weitergeben, um Datenspeicher hinzuzufügen. Wir haben bereits vorab erstellte Zugriffsgruppen, in denen unsere VMware-Hosts und vorab erstellten QoS-Richtlinien registriert sind.
Oder hier ist ein detaillierteres Python SDK-Demo-Video von SolidFire selbst:
Dieser Ansatz zur Automatisierung macht SolidFire nicht nur für Cloud-Anbieter und ähnliche Aufgaben praktisch, sondern ermöglicht es Ihnen auch, gemäß dem Konzept der kontinuierlichen Integration und Bereitstellung (CI / CD) den Entwicklungsprozess zu optimieren.
Wie bereits erwähnt, funktioniert die WebUI über die API, und Sie können alle Anforderungen und Antworten über das API-Protokoll anzeigen.Wenn Sie mehr über SolidFire, den Vergleich mit Mitbewerbern, die Arbeit mit dem System usw. erfahren möchten, empfehle ich den
YouTube-Kanal , der eine relativ große Anzahl nützlicher Videos enthält, von nützlich. Zum Beispiel der Zyklus „Vergleich moderner All-Flash-Architekturen“.
Zu den netten Funktionen des Systems gehört der integrierte Mechanismus zum Sichern von Snapshots in einem externen S3-kompatiblen Speicher. Auf diese Weise können Sie Snapshots als Backups verwenden und diese in externen Repositorys sowohl auf Ihrer Site als auch auf externen Ressourcen, beispielsweise in Amazon, speichern. Natürlich kann dieser Ansatz unter dem Gesichtspunkt der Datenwiederherstellung kaum als flexibel bezeichnet werden, aber in einigen Fällen kann diese Lösung nützlich und durchaus anwendbar sein. Es gibt noch einen weiteren interessanten Punkt: Sie können Daten auf zwei Arten in den S3-Speicher hochladen:
- Native - In diesem Fall werden bereits deduplizierte Daten gegossen. Gleichzeitig kann dieses Volume jedoch nur auf demselben System wiederhergestellt werden, mit dem es gegossen wird.
- Unkomprimiert - Hier ist bereits ein vollständiger Satz von Blöcken eingefüllt, mit denen Sie diesen Mond in jedem anderen SolidFire-Cluster wiederherstellen können.


Im Allgemeinen waren wir mit unserer Kommunikation mit SolidFire mehr als zufrieden. Wir haben die versprochene Leistung erhalten, die Inline-Deduplizierungsarbeit ist nicht zu loben, auch die Integrations- und Automatisierungsfunktionen haben einen äußerst positiven Eindruck hinterlassen. Der Einfluss des Ausfalls der Knoten oder vielmehr seine minimale Auswirkung auf die Leistung des Gesamtsystems, die Lastverteilung und das Fehlen eines einzelnen Fehlerpunkts, der die Leistung stark beeinträchtigen könnte, machen dieses System äußerst attraktiv. Trotz der Tatsache, dass der Cluster nur mit iSCSI arbeiten kann, macht das Vorhandensein des FC-Transportknotens dieses System universeller.
Ich möchte Jewgeni Krasikow von NetApp und Arthur Alikulow von Merlion bei den Tests meinen besonderen Dank aussprechen. Übrigens, Arthur, hat einen wunderbaren
Telegrammkanal für alle, die über Neuigkeiten aus der Speicherrichtung und insbesondere von NetApp auf dem Laufenden bleiben möchten. Sie können eine große Menge nützlicher Materialien darin finden, und wer nur lesen muss, aber auch reden möchte, es gibt auch
Chat-Diskussionen .
Wenn Sie noch Fragen haben oder plötzlich neue auftauchen, lade ich Sie ein, NetApp Directions 2018 zu besuchen, die am 17. Juli 2018 im Hyatt Regency Petrovsky Park stattfinden wird, wo Arthur und ich bei einer der Sitzungen über SolidFire sprechen werden.
Anmeldung zur Veranstaltung und alle Details.
Und in unserer Firma gibt es eine freie Stelle.