Access a ZFS volume in Windows?

zfs-win

  • https://github.com/dominicusin/zfs-win (automatically exported from https://code.google.com/archive/p/zfs-win/ – thanks to Tiberiu-Ionuț Stan for the hint)
  • GNU GPL v2
  • requires Dokan

… read-only drive can be mounted …

— and I guess that further development might enable write access.

Following installation on Windows 7:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Administrator>chdir "C:\Program Files (x86)"

c:\Program Files (x86)>zfs-win
ZFS for Windows

usage:
  mount <mountpoint> <dataset> <pool ..>
  list <pool ..>

examples:
  zfs-win.exe mount "m:\" "rpool/ROOT/opensolaris" "\\.\PhysicalDrive1" "\\.\PhysicalDrive2"
  zfs-win.exe list "Virtual Machine-flat.vmdk"

Whilst editing the compatibility section of the OpenZFS wiki I was advised that zfs-win can not read ZFS pool version 28. (I don't do code, so from the source I can't tell which version is supported – sorry.)


There's a native ZFS implementation for Windows (10 only?) available at:

https://github.com/openzfsonwindows/ZFSin

The discussion here indicates that it's a high-quality port:

https://news.ycombinator.com/item?id=15549190


ZFS in virtual machine can work just fine if follow one simple rule never ever lie to ZFS. ZFS goes to great length to keep your data from getting corrupted (checksums, copy-on-write, dittoblocks, mirrors or raid-z, etc) so you should do everything in your power to let ZFS directly access your disks. All the horror stories of virtualized ZFS issues come from some level of buffered IO from virtualization software buffers, disk controller cache or even windows with writethrough cache if you're dumb enough to use virtual disks instead of whole raw disks. Each virtualization package does raw disks slightly differently, but VMWare Workstation, VMWare Fusion and VirtualBox all support it without too much effort.

You mentioned attaching it to your Mac, so you could either use something OSX native like ZEVO (formerly Z-410) or run a ZFS virtual machine just like you would from Windows 7. If your moving your pool between mac/windows (ZEVO <-> VM) you'll want to zpool export poolname before switching. No need if your booting the same VM on both sides. You should strive to have no virtual disks (vmdk files) hosted on HFS+ or NTFS but instead make one of the external disks (or an partition of your internal disk) bootable so you can boot it non-virtually without too much effort.

Of note if your Mac has Thunderbolt you can use that instead of USB2 or FireWire to connect multiple disks for ZFS. Something like a SonnetTech Thunderbolt PCIe bridge (ExpressCard or PCIe) combined with an eSATA or SAS card (or even a USB3 card) will be orders of magnitudes faster than regular USB2.

Tags:

Windows 7

Zfs