Windows RAID 5/ZFS Z1 options

I have a RAID 0 of two 4TB HDDs on my main PC. It’s full…

I have two more 4TB drives that I want to add to use as a RAID 5 or equivalent. I need this to be internal storage, not networked. Storage Spaces is capable, I believe, but I recall having had issues with it in the past.

Are there any alternatives? I’d love to have them as a ZFS pool, but get that that might be complicated or even impossible.

I know it’s risky, but the data is not important, hence the current RAID 0. I don’t mind risking it with two drives striped, but 3 or 4 striped is too silly, even for me, hence the RAID 5 decision.

Thanks in advance!

https://www.napp-it.org/downloads/windows.html

There is a zfs Napp-it windows port. It might work for you.

Sadly this looks too separated from what I am after. I need something as integrated as Storage Spaces is, I just need to know what my best option is within that space.

ZFS on windows would function just as storage spaces does. so a “R:” drive could be utilized from either one.

NAPP-IT could be added to ZFS if you needed others to connect.

Storage spaces or ZFS on windows could also use the built in sharing utility.

Storage spaces does allow for ‘software RAID5’ but i have never seen anyone use it. Storage spaces recommends JBOD or groups of mirrors also. So i think you get the same outcome rather you use Windows ZFS or Windows Storage Spaces.

If you’re not bothered about write performance (without significant tweaking), Storage Spaces parity mode will work to protect against a single disk failure.

If you want “actual” RAID5, I would recommend a PCIe RAID controller with that feature (incl. backup battery unit (BBU)). Something like an older LSI 92xx-8i or 93xx-8i with a BBU is available relatively inexpensively on eBay and will keep up with spinning disks just fine.

If you just don’t trust a RAID0 set across 4 disks (valid), consider a JBOD/“Simple” Storage Space, where it just lumps all the storage together. Doesn’t offer any redundancy at all though, just slightly less likely to explode than a 4-disk RAID0.

A NAS would really be the way to go if you want ZFS.

Don’t want to use hardware RAID as I have had constant issues with those in the past. I have a server running with ZFS, but I also have a lot of stuff installed locally on my main machine and need high-speed, direct access to it (not networked).

Write speed isn’t important, so not too bothered by that. Read speed being improved over one drive is a good bonus.

I just need ZFS, no one else needs to connect. It looked like the installation on the link you sent requires VMs, xampp running, and some complicated configuration, no?

For just ZFS with no gui, see:

But still, not sure there is a benefit.

Right, I tried the easy route with Storage Spaces and it was just painfully slow. So I gave up and went back to this thread.

Downloaded OpenZFS and installed it. Read through the documentation, tested commands and it is installed and running correctly. I can’t create a zpool, though. Whatever I try, it comes up with some sort of an error. Usually pertaining to not finding the disk, but sometimes it’s paths or directories causing trouble. If I do get things seemingly working, then it fails stating invalid argument.

This is the command I’m running:

zpool create -O casesensitivity=insensitive -O compression=lz4 slow_data raidz \\.\PHYSICALDRIVE0 \\.\PHYSICALDRIVE1 \\.\PHYSICALDRIVE3 \\.\PHYSICALDRIVE4

So since that gave me so much trouble, I tried to get the GUI working with napp-it. Downloaded their version of XAMPP with the GUI, right-click>run as admin on start_zfs-gui_as_admin.bat, launch the GUI, log in with admin and no password, then start clicking around the GUI to be regularly greeted with

member localhost~127.0.0.1 does not respond with hostname
4292 Socketerror sub socket on connect with ip: 127.0.0.1 >l_209 rh auth:=*** 

No connection could be made because the target machine actively refused it.

So I tried adding xampp to Windows firewall in case that was the issue and same issue.

Am I just stupid, or is this broken?

EDIT: I did read about changing auth file, but I can’t find such a thing. I’m not familiar with xampp, or auth files/tokens, etc.

wmic diskdrive list brief

Will get you the real disk name

Windows commands there

That’s the command I used to find the disk names, and \\.\PHYSICALDRIVE0, etc, is how they are named. The other numbers are model numbers, capacities, and other non-specifically identifying numbers.

Here is the command in the page you linked, edited to suit my setup, failing in the exact same manner as what I’d done before.

So it is trying to create the pool with the name I want, but something is invalid somewhere along the way. Any ideas what? It’s not the compression algorithm as I tried both zstd-3 and lz4.

EDIT: I tried running simply zpool create slow_data \\.\PHYSICALDRIVE0 \\.\PHYSICALDRIVE1 \\.\PHYSICALDRIVE3 \\.\PHYSICALDRIVE4 with no arguments whatsoever, but it still failed in the same way.

EDIT 2: Realised I’d been forgetting the raidz argument so just added that in and tested again but still no luck.

zpool create -O casesensitivity=insensitive -o ashift=12 -O atime=off -O recordsize=256k -o feature@zilsaxattr=disabled -o feature@head_errlog=disabled -o feature@blake3=disabled -o feature@block_cloning=disabled -O compression=zstd-3 zfswin PHYSICALDRIVE2 PHYSICALDRIVE0

would be an example of a working command. if you are putting the \ that is an issue, and raidz i think would be raidz1 or something, or if left out it will try to base a config off of best practice.

had to export and import before it showed up in explorer, maybe reboot?

zfs2

1 Like

I can’t believe it was that simple. All the commands I searched seem to suggest you need to run it with the \\.\ in front. But I did find some that suggested otherwise and so I tried both ways, and even other permutations of slashes in front.

Just tried your command, but with my drives and added raidz1. It seems that you were right about at least 1, if not both of those issues.

Thank you so much!

Note: have only made the pool, haven’t tested actually using it yet!

EDIT: So you don’t need to create a ZFS location, just import the zpool and it works as a drive… Huh, that’s weird. But hey, it’s working!!! Thank you again. It seems to have some RAM cache allocated as a quick test with CrystalDiskMark yielded nearly 5GB/s which ain’t happening on four old HDDs.

Great results. I’m so happy!
image

EDIT2: For my future reference, and if anyone else can make use of it, commands run:

zpool create -O casesensitivity=insensitive -o ashift=12 -O atime=off -O recordsize=256k -o feature@zilsaxattr=disabled -o feature@head_errlog=disabled -o feature@blake3=disabled -o feature@block_cloning=disabled -O compression=lz4 slow_data raidz1 PHYSICALDRIVE0 PHYSICALDRIVE1 PHYSICALDRIVE3 PHYSICALDRIVE4

and then:

zpool import slow_data

Coming into the discussion late but…
my two cents since data loss is acceptable… REBUILD :smiling_imp:

And go with RAID 10.
RAID 5 is sad because it’s not RAID 10.

Something in the default config file has it auto configured to become D: drive. The extra export import just forces the driver to refresh. None of this is an issue in your case, i just wanted to post the info in case they already had a D: drive they would need to edit the config or move the ZFS drive after the pool build. Moving to a different drive letter is just one more command.

I didn’t make it clear in my first post, but I was wanting to add the drives as I need more space. If I add two HDDs and then run it in RAID 10, all I’m doing is making future data loss less likely, but not helping in any other way.

@Zedicus D drive is actually exactly what I want here. So fingers crossed it continues to steal that spot.

I have just rebooted, and of course, it hasn’t automatically mounted as I had read would happen in the documentation.

I can run a task to auto-mount it, but I have programs and possibly even services that run off of it - would this be able to mount prior to anything else booting up?

not exactly.

you could always use startup scripts for everything and chain them together on success. this can even be done with services. or you could just make a startup script for the ZFS pool and add a couple minutes of delayed start to you services.

So the good news is that I have got it all working. I’ve copied my data across and it seems to still be working correctly. Imports automatically on boot (though a little slow to do so).

The bad news… Is twofold. First: my RAM usage went through the roof at first. I realised this was due to the way ZFS worked so I did my research and found the registry for editing max arc size. Limited it to 8GB and carried on. Somehow later on, it still managed to consume every drop of my RAM and brought my computer basically to a halt. Not sure why or how, but obviously a problem.

Second (and far more troublesome): I have had my computer crash on me a few times since I got it working and it used to be rock-solid stable. This isn’t good news and is somewhat troubling me.

I don’t want to have these drives in a separate computer as I want super-fast access, and I run programs and games off of it. But since this seems to be a bad idea, would running it on my server and using iSCSI (or some other direct attached style networking) allow me to utilise it as if it were a built-in drive? So that Windows and certain programs wouldn’t have a hissy fit thinking it was a network drive?

Or is there some other solution?

ZFS on windows is beta.

what all hardware is in this build?

what is your ideal usage?

I knew it was beta, and it looked like old versions were very unstable. From what I could gather, in the last year or two, it’s really improved to the point of actually being usable.

As for the hardware: it’s my gaming PC. Intel 10850K, 32GB 4000MHz RAM, 3080Ti. I’ve got two NVME SSDs, one 500GB for OS, one 2TB for games and as a small cache for my HDDs. The HDDs are four 4TB Seagate ones. I want one and only one drive worth of parity so that I can have the capacity of 3 drives.

They are used for storing games and mods, mostly. But I also run game servers off of them sometimes. Since I run programs on them, I want them to run as quick as possible for that. I have 2.5Gb networking to my server, and that’s probably just about enough, but I’d always appreciate more performance as I do notice load time differences with faster (or slower) storage.