40

You'd think this would have been asked but I can't seem to find it so...

Let's say I have a ZFS setup in this enclosure (8 bay USB3 JBOD):

Now, I'm going to be running it on my Mac direct attached but I'd like to be able to access the files when I boot into Windows as well. With HFS+ volumes Apple was kind enough to provide a means for doing this. However, I can't find one for ZFS.

The only solution I've come across is using Open Solaris in a Virtual Machine to mount the drives. However, I've also heard more than a few nightmares about doing this and it leading to massive failures... Yeah, kind of the exact opposite of what I want.

So, essentially, what is the current best means of accessing a ZFS volume attached to Windows? I'd be happy with read-only access if necessary.

Oh, intended OS is Windows 7.

4
  • What do you mean by "direct attached"? By Ethernet?
    – sblair
    May 26, 2011 at 23:19
  • 1
    Ah, I see the single USB port now. It says that it supports PC, Mac and Linux, so presumably a driver/software is provided? Do you have control over the file system?
    – sblair
    May 26, 2011 at 23:29
  • It's a good looking enclosure :) Nov 30, 2013 at 14:28
  • More reading in this reddit thread
    – Cadoiz
    Sep 12, 2022 at 6:20

11 Answers 11

10

There is no OS level support for ZFS in Windows.

As other posters have said, your best bet is to use a ZFS aware OS in a VM.

Options are:

  • Open Solaris
  • FreeBSD
  • Linux (through zfs-fuse, or zfs-on-linux)

One other possibility is to get hold of a small low-powered computer (say an Atom based system) to connect to the drives and act as a network head unit to the disks sharing the data out through the network through a standard protocol like CIFS (Samba). Then you can run the ZFS aware OS direct on the metal.

5
  • This is the option i opted for, before seeing this post, now im here, trying to figure out how to do the mount, before i power up all 6 of my actual physical zfs drives, to mount them on a vbox solaris, to share them off for NAS access on the host win7ultt64. trying to figure out this last part. im thinking the zfs-win solution is just steering me away from this setup. anybody figure out how to actually access them on win host through the vbox solaris? Is that using RAW disk method or something? Jan 26, 2017 at 3:46
  • 1
    @BrianThomas you run a vm with all the zfs pool disks as raw disks, then in the VM you set up some way to share, like nfs, samba, sftp/sshfs, iscsi, and then just use it from any other machine on the network with whatever client programs support it (such as samba and windows sharing). And make sure the VM doesn't use unsafe caching.
    – Peter
    Mar 20, 2017 at 19:01
  • You can attach ZFS filesystems to Windows with software alternatives that are available to Windows that enable read-write access, not just through VM solutions. Just look at zfs-win for example which uses the Dokan libraries, which also enables Windows to read Linux formatted drives like Ext2/4, by hooking to ExFAT.sys in Windows.
    – user352590
    Jun 2, 2017 at 18:30
  • @user94959 5 years ago you couldn't. You may notice this question is that old, as is the answer.
    – Majenko
    Jun 2, 2017 at 21:58
  • And also in the list is Solaris (both SPARC and x86) OS (to access ZFS) :) May 26, 2023 at 8:34
21

zfs-win

… 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.)

4
  • 1
    +1 just because although I haven't tried the ZFS support, I've been looking for something like this for ages. Native SFTP mount support without having to pay some nasty big company? I'm all over it like hyenas on a downed water buffalo. Jul 15, 2012 at 8:30
  • I was just about to suggest this. I believe there are also FUSE versions for linux variants to access ZFS as well.
    – hookenz
    Jan 18, 2013 at 2:26
  • The link to Dokan is broken, and from the name alone I'm not sure what's being referred to (a lot of different things come up when you search it on Google). Aug 15, 2018 at 16:32
  • Nevermind, I found it, see suggested edits. I don't suppose there's a precompiled version of zfs-win available anywhere? Aug 15, 2018 at 16:41
17

There's a native ZFS implementation for Windows (10 only?).

The discussion there indicates that it's a high-quality port.

13

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.

2
  • I was able to set this up pretty easily on VirtualBox, but one thing I'm concerned about is the lack of support for SMART commands. If I try to run smartctl on my drive that's passed through raw, it still shows up as Device Model: VBOX HARDDISK. If smartctl commands aren't going through, does that mean that ZFS is limited to a subset of its usual commands as well?
    – brismuth
    Apr 11, 2016 at 22:01
  • I believe that OpenZFS under linux only uses read/write/checksum failures to assess disk failure. ZFS on Solaris will respond to predicted failures triggers from fmadm (which monitors SMART data) but I'm pretty sure SMART data is not directly considered under linux.
    – notpeter
    Apr 16, 2016 at 3:53
8

I'll bet by the age of this thread that you've already moved on, but I'll put my two cents in for the sake of anyone else who still has questions on this matter.

I have built several NAS machines using ZFS as the file system. One of the easiest to use is either FreeNAS or NAS4Free. I've also used Solaris before the previous two offered de-duplication and encryption in their ZFS release versions. As was mentioned, you can use the Atom processors with success as a low power motherboard solution. Just be sure to feed them as much RAM as the board can support to make up for the lack of power from the CPU. Obviously, a NAS isn't quite as fast as a local disk, but it's better than not reaping the benefits of ZFS at all.

I've used a VM to access some USB sticks that I in turn formatted with ZFS in a RaidZ pool. I then shared them tho the host machine through a virtualized LAN connection. While it did work, I don't know what kind of reliability or performance issues you would be up against doing something like that. USB drives are so inherently slow that no worthwhile data would have been obtainable from that setup... so, I never bothered to test it. However, I imagine there would be a lot of CPU overhead doing something like that.

In all, if you have the budget, I would suggest doing a NAS over a VM. Last month I built one with a small Chenbro case and a Supermicro Atom board. I fed it 4GB of RAM and 4x3TB SATA drives in RaidZ. It bench-marked at 135MBps sustained. I've not performed any other tests.

1

Using a ZFS aware OS in a virtual machine is your best bet. ZFS is pretty robust and supports importing and exporting pools form different OSes so there should be no massive failures or nightmares doing it.

1

I have completely reliable ZFS read write access in Windows 7. Windows 7 thinks it is an NTFS share over SMB. Here's how.

The NAS is an Ubuntu 13.04, with native ZFS installed. Not fuse, via the ubuntu-zfs metapackage, which installs 0.6.1-1~raring package.
This is running on a 32-bit old desktop computer resuscitated out of an old closet. 1 gig of ram, soon to be upgraded to 2gb. MSI 845-G Max motherboard.
Attached to this is an 8 drive Sansdigital box, connected via portmultiplier.
In there is 4 3 TB barracuda drives.
And a 120 GB Vertex 3 SSD as a cache and a log.

I created a zpool of raidz2 of the 4 disks, plus the cache and log. Then I executed zfs set sharenfs=on 'zpoolname' This gives a mild error that the share may or may not work.

Then I create folder inside my zpool in the "computer" device of root nautilus. Then I share the folder. Voilà...

A network accessible zfs inside Windows 7, which reports it as NTFS. I can do a "map network drive" in Windows 7, and I now have a 10-terabyte NTFS drive in Windows 7. Obviously it is not bootable. And it is only as reliable as all of the hardware it is composed of. But, I have dedup on, compression on, and it should survive a loss of 1 or 2 of my 3 Terabyte drives.

I hope this works for someone else.

1
0

I've recently tested this on my Gentoo desktop at work. Create a zvol on a *nix of your choice, format it to NTFS and share via samba. Active Directory permissions work fine, the only slight annoyance is samba has to be stopped to rollback a snapshot, but that's not really a big deal as it can be done in seconds. My plan is to create a live copy of all my users data and snapshot it daily. More as a means of reclaiming accidently deleted files than a true backup. Now I just need to talk them into letting me buy another server.

0

You can also try running ZFS in WSL. There's no official support but someone's got it working by running an iSCSI host on Windows and passing the iSCSI devices to WSL. More reading in this reddit thread


As jjw suggested already, you can also consider this Windows port on Github - it's basically an OS in a VM as other posters have said, but you should click that link.

The Readme comes with a lot of detail.

0

Apparently there is a commercial tool claiming read support for 'Sun ZFS'...

as well as access to files on Sun ZFS,

Not sure how good it is / haven't tried it yet.

0
-1

I don't think it's possible at the moment. I haven't found ZFS drivers for Windows, but the code is open-source so it should be possible to write one.

2
  • 1
    *debatably open source, in the way oracle "open source" products usually are.
    – naught101
    Sep 18, 2013 at 14:10
  • 1
    @naught101 fortunately MacZFS and its successor O3X were not developed by Oracle. The latter is based on and a contributor to the OpenZFS project, which is unambiguously under the CDDL. Now, that licence is GPL-incompatible, but even the notoriously-picky FSF agrees it is a Free Software licence. Oracle's newer zpool versions aren't compatible, of course, but the only feature that seems to be a big issue there is encryption, because the OZFS feature-flag implementation has allowed most features to be replicated without increasing the zpool version.
    – Darael
    Dec 31, 2015 at 15:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .