ZFS - USB3 und/oder Performance

SchaubFD

Member
Hallo,

ich möchte mit meinem Thema gerne mal zwei Bereiche von ZFS ansprechen:

1) ZFS unter BSD mit einem USB3 Hub und angeschlossenen Platten

2) ZFS und die Performanceprobleme sowie Performancesteigerungsmöglichkeiten.

Ich suche seit Wochen nach einem Betriebssystem, welches A) ZFS bietet und B) möglichst auch ein wenig multimediale Fähigkeiten hat. Meine Probierereien gehen von LinuxMint, OpenIndiana, Solaris 11, FreeBSD bis jetzt zu derzeit PCBSD.

PCBSD scheint wohl für mich eine mögliche Alternative zu sein. Bei Linux habe ich das Problem, das ZFS hier die PlattenID's nicht nutzt und einfach meint Pools über den Geräteeintrag zu importieren, was fast bis zum Datenverlust führen kann. Die Solaris Varianten scheitern an ihrer Multimediatauglichkeit neben anderen Dingen wie Treiber für WLAN etc.

Nun habe ich PCBSD auf meinem (Probe) Laptop mit USB3 und habe das Problem, dass der USB3 HUB Fehler im PCBSD System produziert. Hinzu kommt, dass das PCBSD scheinbar mit den AHCI Einstellungen im BIOS nicht zurecht kommt. Leider lässt sich diese Einstellung am dem Laptop nicht umstellen. Der Hub läuft unter Linux problemlos, bis auf diese ZFS Import Probleme. Habe ich den falschen USB3 HUB oder warum ist das so unterschiedlich zu Linux?

Solaris 11 und OpenIndiana booten erst gar nicht auf dem Laptop. (Andere Solaris Tests habe ich in einer VM gemacht).

Ich brauche hier eure Hilfe, wie ihr das Thema ZFS angeht, besonders wenn es sich um USB3 handelt.

Zu dem Punkt 2)

Ich habe selber am Arbeitsplatz eine ZFS Speicherlösung von Sun und kenne auch ZFS. Bin ein echter Fan von ZFS. Leider gibt es in ZFS einiges zu beachten, was hier die Performance angeht. Dies ist besonders bei virtuellen Umgebungen (VMware, XEN, etc.) wichtig. Diese Umgebungen brauchen synchronen IO und dieser wiederum lässt sich in ZFS nur gut mit SSD Logcaches realisieren. Leider macht hier Sun oder jetzt Oracle den Fehler, diese SSD Logcaches mit recht langsamen SSD's zu bestücken (bezogen auf die MB/s, nicht die IOPS). Das Problem ist, dass das Plattensubsystem zwar asynchron ca. 1,8 Gigabyte/s schreiben könnte, die SSD's aber nur ca. 100MB/s durchlassen. Natürlich wird hier gleich jeder VMware Mensch sagen, die IOPS sind wichtig, aber bei Migrationen werden halt auch mal Gigabyte an Daten verschoben und es kommt mal nicht auf die IOPS an. Meine Frage: Hat schon mal jemand von euch Erfahrung mit Dingen wie RevoDrive, RAMSan, Hyperdrive im Zusammenhang BSD ggf. mit ZFS sammeln können. Also möglichst RAM gestützte und Batterie gepufferte Caches. Ich wäre echt mal an einem Erfahrungsaustausch interessiert.

Ich hoffe ihr könnte mir helfen und man kann mal einen netten Gedankenaustausch führen.
 
Du kannst für derartige Workloads von mehreren mirrored ZILs profitieren. Die sync Writes werden dabei per round-robin Scheduler über die ZILs verteilt. Allerdings wird das ZIL dadurch erst bei genug nebenläufigen Writes schneller. Das ZIL wird in seinen IOPS durch die Latenz beschränkt, weil die Queuedepth maximal 1 beträgt. Steigt die last werden nährt es sich den durch die Latenz vorgegeben max. IOPS. Stehen genug Writes an wächst die Recordsize pro IOP weit genug um die SSDs aus zu lasten.
 
... Bei Linux habe ich das Problem, das ZFS hier die PlattenID's nicht nutzt und einfach meint Pools über den Geräteeintrag zu importieren, ...

Welche Implementierung von ZFS auf Linux nutzt du? FUSE oder Native?
Kannst du den ZPOOL nicht mit der UUID der Festplatte erstellen? (glaube irgendwo unter /dev/disk/...)
 
Zu USB 3: FreeBSD unterstützt USB 3 eigentlich vollständig. Die einzige Einschränkung sind grottige Chips, wobei zumindest die weitverbreiteten Modelle von Asmedia und NEC eigentlich gut laufen. Allerdings gab es in FreeBSD 9.0 - worauf auch PCBSD 9.0 basiert - einen ärgerlichen Bug im Zusammenspiel mit USB3-Hubs. Und viele Boards haben einen solchen fest verlötet, um die 2 Ports ihres Chips aufzusplitten. Von daher würde ich dir raten, einfach mal den aktuellen PCBSD Snapshot bzw. den 9.1 Release Candidate zu probieren.
 
Danke für eure Antwort! Mit gleich drei und so schnell hätte ich nicht gerechnet.

@Crest, ja, ich sehe das auch so bei dem Speichersystem. Aus Sicherheitsgründen, wird der Log gespiegelt gehalten (Sun Storage). So werden aus den derzeit 4xSSD schreibtechnisch nur 2 IO's also ca. 200 MB/s. Das ein komplettes Abschalten wenig Sinn macht ist auch klar, da in der VMware Umgebung primär schon die IOPS zählen.

@Lord_X, das mit der UUID habe ich noch nicht probiert. Möchte mich ehrlich auch nicht auf Versuche einlassen. Ich möchte schon, das meine Daten so sicher wie möglich gespeichert werden. Aber erzähle das mal unseren Bekannten aus dem Windows, Linux oder auch Netapp/Fujitsu Speichersystem Lager ...

@Yamagi, genauso einen Laptop habe ich dann wohl auch erwischt. Ich konnte gestern noch PCBSD auf einem anderen Laptop mit USB3 installieren und es geht absolut problemlos auf der Dateisystem Seite.

Was mich weiter interessiert ist Punkt 2) In wie weit habt ihr schon mal mit RevoDrive, RAMSAN oder Hyperdrive Erfahrungen sammeln können. Hintergrund ist, das heutige Dateisysteme und hier gerade auch ZFS wesentlich mehr Leistung bekommen können, wenn die Komponenten gerade im Bereich der Hauptspeicher Menge, Logcache Geschwindigkeit, Readcache Größe und moderner CPU gut ausgelegt sind. Dann sind die darunter liegenden Plattensysteme fast schon nebensächlich.
 
Hi,

kleiner Tip des Bären: oifach mehrere SSD neibauen die jede für sich schnell abär von der Größe recht gering sans. Dann klappts au mit i/o und Durchsatz bärig fein. Gespiegelt natürlich jeweils auf alle Fälle. Die kleinen SSD kosten ja kaum noch Geld.

Gruß Bummibär
 
Hi,
z.B. könnte man so etwas wie folgt machen:

Code:
# zpool add <pool> log mirror <ssd0> <ssd1>
# zpool add <pool> cache....

Gruß Bummibär
 
Es macht wenig sinn den L2ARC zu spiegeln. Verliert man ein L2ARC Device verliert man nur dessen IOPS, denn es ist nur ein Cache. Verliert man das ZIL hat man ein Problem. Das ZIL sollte immer mindestens ein Mirror sein, wenn man seine Daten gerne hat.
 
Ist ja richtig, nur sind die Logzilas bei dem Sun 7000 System recht teuer. Deswegen ja die Frage zu Alternativen. Der Cache denke ich braucht - wie von euch auch erwähnt - nicht sonderlich groß zu sein.

Um es mal in Zahlen auszudrücken. Ich habe von den 2*19 Mirrored Platten ca. 4,6 GB/s lesenden IO und ca. 2.2 GB schreibenden IO (asynchron gemessen). Über das 10GBit Interface bekomme ich aber nur 1,08GB/s in der Spitze lesend und ca. 270MB/s schreibend (synchron). Während die SSD's bei den IOPS ungeschlagen sind, sind diese bei sequentiellen IO eine richtige Performancebremse.

Info: Ich gehe davon aus, das unser ESXi System auch nicht 100% der Netzresourcen ausschöpft.

Was hier sicherlich wesentlich schneller sein müsste, wären Batterie gepufferte RAM Speicher. Im syncrhonen IO muss halt jede Information auch geschrieben werden. Leider kenne ich noch niemanden, der hier mal Erfahrung sammeln könnte. Insgesamt ist eine solche ZFS Lösung wirklich interessant, so mal man sehr linear skalieren kann.

Hat von euch jemand Erfahrungen mit z.B. Nexenta, Greenbytes, ZStor oder anderen ZFS Lösungen sammeln können? Bitte auch eigene BSD Lösungen nicht außer acht lassen.
 
In 8-STABLE, 9-STABLE und 10-CURRENT hat top(1) nun auch eine sehr praktische ARC-Zeile :)
 
@Yamagi
Ah sehr schön :)

Ich habe heute mal ein bisschen im Internet gesucht und bin auf diese PCI- Express Karte gestossen:

OCZ RevoDrive 3 120GB, PCIe 2.0 x4 ab €179,81 - CHF 239
http://www.ocztechnology.com/ocz-revodrive-3-pci-express-ssd.html

Die könnte man doch 2x einbauen und zu 80:20 aufteilen (L2ARC 80, ZIL 20). Was meint ihr dazu?
Klar es ist MLC Speicher aber die Werte sind schon super:

- Read: Up to 975 MB/s
- Write: Up to 875 MB/s
- MTBF: 1,000,000 hours
- 3 Jahre Garantie (Schweiz)

Für ZIL habe ich mal gelesen, dass man die Geschwindigkeit des Gerätes mal 10 multiplizieren soll.
Kann das jemand bestätigen?
 
IIRC ist das ne PCI-e zu PCI-X Bridge, nen PCI-X SATA Controller mit pseudo-HW RAID und zwei SATA SSDs auf einer PCI-e Karte.
Ein ZIL kann bestimmte Workloads massiv beschleunigen. Halt alles was sync Writes braucht. Ein Extrembeispiel wäre hier der NFSv4 Server.
 
Hi,
das "jeweils" oben bezog sich auf jede SSD, welche als log zum Einsatz kommt. D.h. pro Log jeweils oi Mirror als SSD - so war das gemeint. Sorry, wenn ich mich unklar ausgedrückt haben sollte.

Zu OCZ: die Ausfallquote von unseren OCZ SSD und PCIe Flash Karten Tests lag bis 09/2012 bei 73,48%. Ich kann von OCZ in diesem Bereich also nur bärig dringendst abraten, wenn euch eure Daten lieb und teuer sans. Die Probleme scheinen primär mit der schlechten und defekten Firmware einher zu gehen. Lt. Hersteller sei es natürlich mal wieder ein Einzelfall - is klar. Insgesamt wären das dann 36 Einzelfälle von der selben Serie - rofl - *knurrrr*

Der Bär setzt produktiv normalerweise Intel SSD und Flash ein, wo ich absolut keine Probleme und Ausfälle bisher hatte.

Gruß Bummibär
 
Heise zur Qualität von OCZ: "Während 6,76 Prozent der DIMMs von OCZ zurückgeschickt wurden, reklamierten die Käufer lediglich 0,3 Prozent der Speicherriegel von Kingston." http://heise.de/-1441804
 
@Yamagi, Bummibaer

OK OK OCZ ist schei... ;-)
Grundsätzlich ging es ja auch eher um die Möglichkeiten mit PCI- Express für ZIL/L2ARC und nicht um das Produkt selber.
Gibt z.B. auch von Intel solche Lösungen http://www.anandtech.com/tag/intel-ssd-910
Wäre dieses Konzept ( Aufteilung 80:20) von einer solchen PCI- Express Karten Lösung gut machbar?

@Bummibaer
Kannst du mal genau auflisten, was du für Geräte von Intel im Einsatz hast? Wie sind deine Erfahrungen damit?

Danke
 
Zurück
Oben