[Sammelthread] OpenZFSonWindows: HowTos, Performance, wasauchimmer...

Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich bin noch immer am Sammeln von Konzepten wie man Windows mit seinen Besonderheiten und ZFS so kombiniert, dass etwas ganz Besonderes dabei herauskommt. Nach bisherigem Sachstand scheint es so zu sein, dass SMB direkt auf ReFS Partitionen das Optimum darstellt was man performancetechnisch mit einem NAS und neuen Copy on Write Dateisystemen hinbekommen kann. ZFS ist langsamer, kann allerdings deutlich mehr als ReFS, z.B. Replikation, Snapshots, Verschlüssellung, Compress, Echtzeit Dedup, sync write, Hybrid Pools für small io und viel einfacheres Handling um nur ein paar Vorteile zu nennen. Man kann jetzt natürlich einen kleinen High Peformance Windows NVMe Pool mit einem großen High Feature ZFS Pool kombinieren. Soweit so gut.

Microsoft bewirbt gerne S2D als ultimative Storagelösung. Das sind Clusterlösungen für einen virtuellen Speicherpool über mehrere Rechner um Redundanz, High Performance und Hochverfügbarkeit zu gewährleisten. Cluster Storage wäre daher etwas wovon auch ZFS profitieren könnte und zwar mit einem Ultra Light/ Ultra Easy Ansatz. Ich stelle mit folgendes Konzept vor:

Man nehme einen Master Rechner der Storage z.B. per SMB (direkt) freigibt, z.B. ein Windows 11 Rechner. Dazu ein oder mehrere weitere Windows 11 Rechner die per SMB direkt verbunden sind. Netzwerk jeweils 10-100 Gb. Auf dem Master und diesen Rechnern liegt jeweils eine .vhdx Datei die als virtuelle Platte bereitgestellt wird (per Storage Spaces, Größe=Storage Pool, thick prov, 256k Blöcke, mit oder ohne Redundanz). Diese virtuellen Platten werden jetzt benutzt um einen ZFS Pool zu erstellen, bei Master mit einem Node ein Mirror, bei mehreren Nodes ein Raid-Z.

Ein Ausfall einer Platte auf einem Node kann durch Storage Space Redundanz gehandhabt werden, muss aber nicht. Es darf ein kompletter Node ausfallen da wir ein ZFS Raid über die Nodes haben. Fällt der Master Rechner aus, können die Shares mit den virtuellen Platten auf einem anderen Windows 11 Rechner gemountet und bereitgestellt werden und der ZFS Pool importiert werden. Komplexität nahe Null wenn man ZFS und Windows Basics kann.

Neben HA und Hochverfügbarkeit könnte der Ansatz auch die ZFS Performance deutlich verbessern. Vor allem wäre das Clustermanagement trivial und die Netz Connectivity mit SMB direkt richtig schnell und resourcenschonend vermutlich wesentlich effektiver als per FC/iSCSI als Cluster Alternative.

@besterino
Wäre der Ansatz sinnvoll?
 
Puh… das übersteigt meinen Erfahrungshorizont. Und meine letzten Spielereien mit Windows Clustern liegen auch schon lange zurück. Allerdings: Smb direct als „Server“ geht leider schon nicht mit einem Windows Client, sondern du brauchst dafür schon eine Server-Version.

Windows 10 and Windows 11 family are restricted to client-only and can't act as an SMB Direct server.

Quelle: https://learn.microsoft.com/en-us/windows-server/storage/file-server/smb-direct?tabs=disable
 
Immer diese künstlichen Windows Client Restriktionen.
Also Windows 11 das einen ZFS Cluster aus .vhdx Dateien normal über SMB3, eventuell mit Multipath bereitstellt oder Windows Server wenn man schnelleres SMB direkt möchte. Mit Server 2019 immerhin noch kostenlos möglich?

Ansonst kann man das ganze Cluster Gedöns vom MS ignorieren, man braucht ja nur SMB Shares mit einer .vhdx darauf um den ZFS Cluster zu machen.
 
Zuletzt bearbeitet:
Der Hyper-V Server 2019 ist gratis, kann clustern und kann SMB Direct
Leider ein Ende in Sicht bei den Gratissachen von Microsoft :-(
 
Sicherheitsupdates für Server 2019 soll es bis Anfang 2027 geben. Man hat also noch etwas Zeit. Vielleicht ist bis dahin SMB direkt/RDMA auch im Client Windows enthalten. Ansonst ist SMB3/ Multichannel auch nicht so langsam. Hauptnachteil dürfte neben der geringeren Performance eine deutlich höhere CPU Last sein.

Das Konzept mit virtuellen Diskimages auf SMB mit (ZFS) Pools darauf wird mir immer klarer um damit einen sehr schnellen Storage Cluster zu bauen der einfach zu verstehen und einzurichten ist. Mit iSCSI ist ein Network Mirror oder Raid-Z deutlich aufwändiger. Ein Ceph Cluster mit wenigen Nodes wird sicher sehr viel langsamer sein und ungleich komplizierter. Ganz zu schweigen vom Verlust der Windows SMB Features rund um ACL. Es braucht eine gewisse Zeit bis man das Zusammenspiel der Teile unter Windows versteht und Komplexität vermeidet. Mit etwas Powershell und GUI Unterstützung kann das was richtig tolles werden.

Konzeptionell plane ich folgendes:
- Ein SMB Cluster wird über die Server aufgebaut deren Membername mit cs_ beginnt
(Idealerweise Windows aber SAMBA (BSD,Linux,OSX)/ Solaris SMB sollte auch gehen

- jeder SMB Server hat ein Share "vhdx" mit einem vhdx Diskimage cs_image.vhdx

Dadurch wird es möglich, die virtuellen Platten ohne weitere Konfiguration bereitzustellen um einen ZFS Cluster-Pool darauf zu importieren (natürlich auch ein Storage Space, aber ich glaube an ZFS unter Windows). Auch beim Ausfall der Master Servers ist so ein Cluster schnell auf eine anderen Server übertragen.

Ein ZFS Netzwerk Mirror sieht dann so aus
Ein (Windows) Rechner als Storage Node mit Image auf Freigabe \\ip\cs_image.vhdx

Ein Windows Rechner als Storage Master mit Image auf Freigabe \\localhost\cs_image.vhdx
- Die Images als virtual disk bereitstellen (Diskmanager)
- Auf den beiden virtuellen Platten einen ZFS Mirror erstellen (importieren)
- Auf dem Pool ein Dateosystem erstellen und per NFS/SMB freigeben.

Der Ausfall des Node bedeutet keinen Storageausfall
Der Node kann schnell Master werden
Performance skaliert mit Anzahl der Nodes und Raid Level
 
Zuletzt bearbeitet:
Open-ZFS 2.2.6 rc4 mit Fast Dedup ist da
 
Da ich großer ZFS-Fan bin, gleichzeitig aber auch ein gewisser Windows-Jünger wäre eine taugliche Kombination beider Welten natürlich ein persönlich wahr gewordener Traum.
Irgendwie klingt das trotzdem ziemlich befremdlich... Ich bin eigentlich auch ein (NOCH) Windows-Jünger, aber jetzt auf die Idee kommen, OPNsense könnte auch mal unter Windows laufen, ist auf die gleiche Art befremdlich. Für mich, imho und so :hust:
 
Jedes System hat so seine Killerfeatures.

Bei Windows ist es vor allem der SMB Server mit überragender SMB direct/RDMA Performance, die ACL Rechteverwaltung und Hyper-V samt virtuelle vhdx Disks die man auch remote auf SMB halten kann (Netzwerk Cluster). Storage Spaces mit unterschiedlichen Plattentypen oder Größen und Data Tiering ist ein nettes add-on. Letztlich hat und kennt jeder Windows.
 
Zuletzt bearbeitet:
ZFS ist schon genial einfach. Man hat Dateisysteme und Mountpoints, das wars schon.
Unter Winwows hat man Laufwerksbuchstaben, Dateisysteme, Volumes und Partitionen, je nach Tool mit abweichenden Angaben.

Gar nicht so einfach da den Überblich zu behalten (vor allem mit Storage Spaces aber auch ZFS unter Windows muss sich da einfügen)

volumes.png
 
ich scheitere unter Windows ja schon an den basics (oder die Doku ist Grütze)
Platten suchen:
wmic diskdrive list brief

INTEL SSDSC2BB160G4 \\.\PHYSICALDRIVE0 INTEL SSDSC2BB160G4 1 160039272960
INTEL SSDSC2BB160G4 \\.\PHYSICALDRIVE1 INTEL SSDSC2BB160G4 1 160039272960

Pool anlegen:

zpool create tank mirror PHYSICALDRIVE0 PHYSICALDRIVE1
Expanded path to '\\?\PHYSICALDRIVE0'
Expanded path to '\\?\PHYSICALDRIVE1'
working on dev '#1048576#160031571968#\\?\PHYSICALDRIVE0'
setting path here '/dev/physicaldrive0'
setting physpath here '#1048576#160031571968#\\?\PHYSICALDRIVE0'
working on dev '#1048576#160031571968#\\?\PHYSICALDRIVE1'
setting path here '/dev/physicaldrive1'
setting physpath here '#1048576#160031571968#\\?\PHYSICALDRIVE1'
cannot create 'tank': no such pool or dataset

hm?
 
Ist PHYSICALDRIVE0 sicher nicht die Windows Bootplatte.
Geht denn
Code:
zpool create tank PHYSICALDRIVE1
 
Ich würde folgendes versuchen

1. ein oder zwei virtual hardisks >10GB anlegen (.vhdx), auch thin provisioned möglich
geht in der Datenträgerverwaltung. Darauf einen Pool anlegen.
(Falls das Problem irgendwie mit den Intel SSD zusammenhängt, da bei mir die gleiche Aktion kein Problem macht)

2. Falls das Problem weiterbesteht:
https://github.com/openzfsonwindows/openzfs/issues oder

Jorgen Lundman wird sich dann wohl melden und um ein Log bitten (cbuf.txt)
 
diskpart

create vdisk file=C:\temp\disk1.vhdx maximum=25600 type=fixed

100 Prozent bearbeitet

DiskPart hat die Datei für virtuelle Datenträger erfolgreich erstellt.


zpool.exe create tank \\?\C:\temp\disk1.vhdx
cannot create 'tank': no such pool or dataset
 
diskpart

create vdisk file=C:\temp\disk1.vhdx maximum=25600 type=fixed

100 Prozent bearbeitet

DiskPart hat die Datei für virtuelle Datenträger erfolgreich erstellt.


zpool.exe create tank \\?\C:\temp\disk1.vhdx
cannot create 'tank': no such pool or dataset
Entweder in der Datenträgerverwaltung oder mittels Powershell (mount-vhd) die vhdx als Festplatte mounten, dann kannst du sie dem zpool hinzufügen. Wäre mir neu wenn das direkt mit vhdx Dateien geht.
 
PS C:\Program Files\OpenZFS On Windows> wmic diskdrive list brief
Caption DeviceID Model Partitions Size
SAMSUNG MZVL21T0HCLR-00B00 \\.\PHYSICALDRIVE2 SAMSUNG MZVL21T0HCLR-00B00 4 1024203640320
INTEL SSDSC2BB160G4 \\.\PHYSICALDRIVE1 INTEL SSDSC2BB160G4 2 160039272960
INTEL SSDSC2BB160G4 \\.\PHYSICALDRIVE0 INTEL SSDSC2BB160G4 2 160039272960
Microsoft Virtual Disk \\.\PHYSICALDRIVE3 Microsoft Virtual Disk 0 26839088640

PS C:\Program Files\OpenZFS On Windows> zpool create tank PHYSICALDRIVE3
Expanded path to '\\?\PHYSICALDRIVE3'
working on dev '#1048576#26833059840#\\?\PHYSICALDRIVE3'
setting path here '/dev/physicaldrive3'
setting physpath here '#1048576#26833059840#\\?\PHYSICALDRIVE3'
cannot create 'tank': no such pool or dataset
 
Hmm.
Das Problem hatte ich noch nicht.

ps
Zum Anlegen, Mounten und Dismounten von virtuellen Harddisks (lokal oder in SMB Shares für einen Cluster) habe ich in napp-it ein Extra Menü
Da Powershell dazu Hyper-V und dessen Powershell Erweiterung benötigt, diese beiden in der Systemsteuerung (appwiz.cpl) vorher aktivieren und neu starten.
dazu noch c:\vhdx oder v:\vhdx anlegen weil die vhdx da abgelegt werden.

1726511101237.png
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh