Ich habe eine Reihe dieser "All-in-One" -ZFS-Speicherkonfigurationen erstellt. Ursprünglich inspiriert von den hervorragenden Beiträgen bei Ubiquitous Talk , verfolgt meine Lösung einen etwas anderen Ansatz beim Hardwaredesign, liefert aber das Ergebnis eines gekapselten virtualisierten ZFS-Speichers.
Um Ihre Fragen zu beantworten:
Die Entscheidung, ob dies ein weiser Ansatz ist, hängt wirklich von Ihren Zielen ab. Was versuchst du zu erreichen? Wenn Sie eine Technologie (ZFS) haben und nach einer Anwendung dafür suchen, ist dies eine schlechte Idee. Sie sollten einen geeigneten Hardware-RAID-Controller verwenden und Ihre VMs auf einer lokalen VMFS-Partition ausführen. Es ist der Weg des geringsten Widerstands. Wenn Sie jedoch einen bestimmten Grund für die Verwendung von ZFS haben (Replikation, Komprimierung, Datensicherheit, Portabilität usw.), ist dies definitiv möglich, wenn Sie bereit sind, sich anzustrengen.
Die Leistung hängt stark von Ihrem Design ab, unabhängig davon, ob Sie auf Bare-Metal oder virtuell arbeiten. Die Verwendung von PCI-Passthrough (oder AMD IOMMU in Ihrem Fall) ist unerlässlich, da Sie Ihrer ZFS-VM direkten Zugriff auf einen SAS-Speichercontroller und -Datenträger gewähren würden. Solange Ihrer VM eine angemessene Menge an RAM- und CPU-Ressourcen zugewiesen ist, ist die Leistung nahezu nativ. Natürlich ist Ihr Pooldesign wichtig. Bitte berücksichtigen Sie Spiegel im Vergleich zu RAID Z2. ZFS skaliert über vdevs und nicht über die Anzahl der Festplatten .
Meine Plattform ist VMWare ESXi 5 und mein bevorzugtes ZFS-fähiges Betriebssystem ist NexentaStor Community Edition .
Das ist mein Zuhause - Server . Es ist ein HP ProLiant DL370 G6 , auf dem ESXi von einer internen SD-Karte ausgeführt wird. Die beiden gespiegelten 72-GB-Festplatten in der Mitte sind mit dem internen Smart Array P410 RAID-Controller verbunden und bilden ein VMFS-Volume. Dieses Volume enthält eine NexentaStor-VM. Denken Sie daran , dass die virtuelle Maschine zum Leben braucht ZFS irgendwo auf stabile Lagerung.
Es gibt einen LSI 9211-8i SAS-Controller , der an den Laufwerkskäfig angeschlossen ist und sechs 1-TB-SATA-Festplatten auf der rechten Seite enthält. Es wird an die virtuelle NexentaStor-Maschine weitergeleitet, sodass Nexenta die Festplatten als RAID 1 + 0-Setup erkennt. Bei den Festplatten handelt es sich um Western Digital Green WD10EARS- Laufwerke, die ordnungsgemäß mit einer modifizierten zpool
Binärdatei ausgerichtet sind.
Ich verwende in dieser Installation kein ZIL-Gerät oder keinen L2ARC-Cache.
Der VM sind 6 GB RAM und 2 vCPUs zugewiesen. Wenn Sie in ESXi PCI-Passthrough verwenden, wird eine Speicherreservierung für den gesamten zugewiesenen Arbeitsspeicher der VM erstellt.
Ich gebe dem NexentaStor VM zwei Netzwerkschnittstellen. Eine ist für den Verwaltungsverkehr. Der andere ist Teil eines separaten vSwitch und verfügt über eine vmkernel-Schnittstelle (ohne externen Uplink). Auf diese Weise kann die VM NFS-Speicher bereitstellen, der von ESXi über ein privates Netzwerk bereitgestellt werden kann. Sie können problemlos eine Uplink-Schnittstelle hinzufügen, um den Zugriff auf externe Hosts zu ermöglichen.
Installieren Sie Ihre neuen VMs im ZFS-exportierten Datenspeicher. Stellen Sie sicher, dass Sie die Parameter "Starten / Herunterfahren der virtuellen Maschine" in ESXi festlegen. Sie möchten, dass die Storage-VM vor den Gastsystemen gestartet und zuletzt heruntergefahren wird.
Hier sind die Bonnie ++ - und Iozone- Ergebnisse eines Laufs direkt auf der NexentaStor-VM. Die ZFS-Komprimierung ist deaktiviert, damit der Test mehr zuordenbare Zahlen anzeigt. In der Praxis sollte jedoch immer die ZFS-Standardkomprimierung (nicht gzip) aktiviert sein.
# bonnie++ -u root -n 64:100000:16:64
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
saint 12G 156 98 206597 26 135609 24 410 97 367498 21 1478 17
Latency 280ms 3177ms 1019ms 163ms 180ms 225ms
Version 1.96 ------Sequential Create------ --------Random Create--------
saint -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
64:100000:16/64 6585 60 58754 100 32272 79 9827 58 38709 100 27189 80
Latency 1032ms 469us 1080us 101ms 375us 16108us
# iozone -t1 -i0 -i1 -i2 -r1m -s12g
Iozone: Performance Test of File I/O
Run began: Wed Jun 13 22:36:14 2012
Record Size 1024 KB
File size set to 12582912 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Throughput test with 1 process
Each process writes a 12582912 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 234459.41 KB/sec
Children see throughput for 1 rewriters = 235029.34 KB/sec
Children see throughput for 1 readers = 359297.38 KB/sec
Children see throughput for 1 re-readers = 359821.19 KB/sec
Children see throughput for 1 random readers = 57756.71 KB/sec
Children see throughput for 1 random writers = 232716.19 KB/sec
Dies ist ein NexentaStor DTrace-Diagramm, in dem die IOPS- und Übertragungsraten der Storage-VM während des Testlaufs dargestellt sind. 4000 IOPS und 400+ Megabyte / Sekunde sind für solche Low-End-Festplatten ziemlich vernünftig. (obwohl große Blockgröße)
Weitere Hinweise.
- Sie sollten Ihre SSDs testen, um festzustellen, ob sie direkt einer VM präsentiert werden können oder ob DirectPath den gesamten Motherboard-Controller auswählt.
- Sie haben nicht viel CPU-Leistung, also beschränken Sie die Speichereinheit auf 2 vCPUs.
- Verwenden Sie RAIDZ1 / Z2 / Z3 nur, wenn Sie wirklich Speicherplatz benötigen.
- Verwenden Sie keine Deduplizierung. Die Komprimierung ist kostenlos und für VMs sehr nützlich. Eine Deduplizierung würde viel mehr RAM + L2ARC erfordern, um effektiv zu sein.
- Starten Sie ohne die SSDs und fügen Sie sie bei Bedarf hinzu. Bestimmte Workloads erreichen weder ZIL noch L2ARC .
- NexentaStor ist ein Komplettpaket. Ein solides Management-GUI hat den Vorteil, aber ich habe auch von Erfolg mit Napp-It gehört .