You could always do what I did, and drag Windows along kicking & screaming into the future. I setup Linux on a ZFS root, carved out a zvol formatted w/ NTFS, and installed Windows on top of that in a VM. I get the benefit of being able to `zfs send | receive` the ZVOL to my backup pool, I can do instant snapshots before these godawful upgrades, etc. -- Throw a second GPU in an IOMMU group and you even get near native gaming performance. (Gaming & Visual Studio's debugger are pretty much the only things I use Windows for now.)
It's not perfect, but it works, the major downsides are:
- Granularity is at the volume level, so you get a lot more block churn in your snapshots. I mitigate this by trying to separate the "OS" volume and "Data" volume to the extent Windows will let me.
- If you're doing any heavy lifting on top of the ZVOL that expects sync writes (e.g: MS SQL) its performance will degrade slightly. Anecdotally I find this to be negligible on my all-flash pool. Besides they sell SQL Server for Linux now ;-).
- NTFS is unaware of the snapshots, so your snapshots will be of a dirty state if the guest is running. AFAIK there's nothing like `xfs_freeze/unfreeze` that can be done in the guest to make these snapshots atomic. That being said NTFS' chkdsk is quite mature, and I've never observed this to be an issue in practice.
It's not perfect, but it works, the major downsides are:
- Granularity is at the volume level, so you get a lot more block churn in your snapshots. I mitigate this by trying to separate the "OS" volume and "Data" volume to the extent Windows will let me.
- If you're doing any heavy lifting on top of the ZVOL that expects sync writes (e.g: MS SQL) its performance will degrade slightly. Anecdotally I find this to be negligible on my all-flash pool. Besides they sell SQL Server for Linux now ;-).
- NTFS is unaware of the snapshots, so your snapshots will be of a dirty state if the guest is running. AFAIK there's nothing like `xfs_freeze/unfreeze` that can be done in the guest to make these snapshots atomic. That being said NTFS' chkdsk is quite mature, and I've never observed this to be an issue in practice.