Elastistor NAS

Eine kurze Begegnung mit CloudBase Elastistor/Elasticenter

Es gibt eine ganze Reihe Nas Software-Appliances am Markt, bei zfs Backend dünnt es sich das Angebot schon deutlich aus. Der Autor hat  Erfahrung mit zfs-Linux und mit Nexenta, mit denen er seit Jahren arbeitet. Dieser Test wurde aufgrund der beworbenen HA-Fähigkeit von ElastiStor gemacht, CloudBase bietet seine Appliance bis bei Nutzung 25 TB als dauerhaft kostenfrei nutzbare Software an. Getestet wurde auf einem HP360-G5 mit 2*4-Core 5450 CPU, 64GB Ram und 2*146GB Platten für das System, an dem eine HP MSA70 mit 25*146 GB SAS Platten für den Storage angebunden war. Server und JBOD Shelf stehen nicht auf der CloudBase Hardware Kompatibilitäs Liste.

Installation

Bei der schnellen und problemlosen Installation fiehl auf, dass Elastistor das MSA70 Disk-Shelf nicht als solches erkennt, sondern nur die einzelnen verbauten Platten, diese werden mit Ihren IDs und Devicenamen angezeigt. Nach der Installation wurde klar, dass Elastistor auf die „internen“ Festplatten des DL360 keinen Zugriff hatte, und das System selbst bereits auf eine der Festplatten auf dem Shelf durchgeführt hatte. Auch später konnten die internen Laufwerksschächte (bspw. für L2Arc oder Log Aufgaben) nicht genutzt werden.

ElastiCenter – zeigt einen Node mit Shelf (unten) und angelegten Pools

Webgui

Elastistor umfasst eine Web-GUI „Elasticenter“, die auch unter Last immer sehr flüssig lief (von Nexenta ist man hier anderes gewohnt). Die Oberfläche glänzt mit aussagefähigen Grafiken, die jederzeit einen guten Eindruck von Leistung und Kapazität vermitteln. Die Konfigurationen sind zum Teil an Stellen versteckt, die zunächst gewöhnungsbedürftig erscheinen. Nach kurzer Zeit findet man sich aber gut zurecht.

Architektur

WorkflowToSetupYourStorageEnvironmentUsingCloudByteElastiCenter
Architektur und Workflow in Elastistor

Elastistore bildet die Elemente und Hierarchie einer zfs Umgebung erwartungsgemäß sauber ab und fügt weitere Komponenten (HA-Group, VSM) hinzu. dies macht den eigentlichen (Mehr-)Wert der Software aus. Alle konfigurierbaren Storage-Elemente können neben Größe auch anhand von IOPS oder Durchsatz provisioniert werden. Die erkannten Festplatten wurden hinsichlich ihrer Leistungsfähigkeit automatisch und realistisch eingeordnet. Im Folgenden gehe ich nur auf die Besonderheiten ein, die diese Lösung von einer reinen zfs Lösung abhebt:

VSM

Elastistor bietet sog. Virtual Storage Machines (VSM), die eine Abstraktionsschicht zwischen „Storage Volumes“ und zfs Pools bilden. „Volumes“ sind die „Freigaben“, die bspw. per nfs bereitgestellt werden. Diese werden auf einer VSM definiert. Eine VSM wiederum wird auf einem „Pool“ angelegt. Dieses Vorgehen eröffnet im Wesentlichen zwei Möglichkeiten:

  1. Eine VSM (und damit ein darauf befindliches Volume) kann migriert werden, und zwar sowohl auf einen anderen Pool, als auch auf einen anderen Node. Damit kann man bspw. unterbrechungsfrei auf neue Hardware migrieren.
  2. Einer VSM kann eine zweite Backup-VSM (sog. DR-VSM) zugeordnet werden, die auf einem anderen Storage Pool liegt. Mittels zfs Snapshot Replikation kann dann regelmaessig ein Remote Backup erstellt werden, dass dank des Snapshots aus Storage Sicht immer konsistent ist. Bei Bedarf oder im Fehlerfall kann die Backup-VSM jederzeit hochgestuft („aktiviert“) werden und die primäre VMS ersetzen. Dabei muss ggf. noch die geänderte NFS-Konfiguration im Clientbereich nachkonfiguriert werden. (Die VSM bietet offensichtlich kein NFS-Failover.)

HA-Group

sas_multipath
SAS Multipathing als Grundlage einer HA-Group

Eine HA-Group bildet auf unterer Ebene eine Ausfallredundanz für den Verlust eines Nodes ab. Ein Node ist definiert als ein Server, der Zugriff auf ein Disk Shelf hat. Ist ein Disk Shelf (bspw. über SAS Multipathing) an zwei Nodes angebunden, können beide in einer HA-Group zusammengefasst werden.  Ein definierter Pool ist dann über jeden Node der HA-Group verfügbar.

Nachteile

Dass Node-interne Festplatten unberücksichtigt bleiben, ist durch den HA-Ansatz grundsätzlich nachvollziehbar, aber in kleineren Umgebungen nachteilig.

Das eigentliche zpool Handling (Anlegen eines Pools, vdev Verwaltung, hinzufügen von Platten zu Spiegelsätzen etc.) ist nicht sonderlich schön abgebildet. Zudem fehlen wichtige Dinge (bspw. ist es nicht möglich gewesen, einen vdev-Mirror wieder aufzulösen bzw. den/die Spiegelplatten zu entfernen).

Fazit

Die Lese- und Schreibleistung wurde nicht quantitativ gemessen, die Performance lag im Rahmen des zu erwartenden Bereichs. Ein zStripe (Raid0) mit 24 Platten ergab lokale Schreibraten von ca. 800 MB/s und ca 3500 IOPS. Lese- und Schreibcaches wurden dabei nicht verwendet.  NFS über 1Gbit/s Ethernet wurde erwartungsgemäß komplett ausgelastet.

Die Aufgaben, die sich in einer mittelgroßen Storageumgebung (die ausschliesslich mit Disk Shelfs arbeitet) ergeben, können mit der Community Edition von Elastistore (bis 25TB) gut abgebildet werden. Besonders die gelungene Integration von zfs-Replikation und SAS Multipath-HA geht über Möglichkeiten der (freien) Nexenta-Versionen deutlich hinaus.  Der Feature-Umfang ist für eine „freie“ zfs NAS einzigartig.