ZFS Migrating ZFS pools between GNU/Linux and FreeBSD?

I have a 3 x 500 GB drive ZFS pool left after a prior installation of Arch Linux and I would like to learn whether there are any mechanisms that would allow me to safely convert the pool in question to one compatible with FreeBSD. For now I received tons of errors about "unsupported" features, such as large_dnode, illumos:edonr, etc.

As I haven't used ZFS on FreeBSD seriously yet (just small backup pools), both my knowledge and experience is heavily lacking. How should I approach the problem?

Thus far I read the following thread on a similar issue.
 
Your only option is to copy the files over to FreeBSD ZFS. There is no such tools to convert ZFS from Linux to FreeBSD as they are both incompatible especially if the zpool has been upgraded.
 
Remington is probably right. While transferring pools between Linux and FreeBSD shouldn't be a big hassle most of the time, things are liable to be different if you're running Arch, since it's focus in on the bleeding edge. It wouldn't surprise me to if the ZOL module you're using is the latest Git pull.

I'm guessing this is a problem that's never going to go away: while the Zpool feature flag set you'll find on FreeBSD immediately after a new release is likely to be more recent than what you'll find on, say, Ubuntu LTS or Fedora, the features flag set will quickly lag behind what Arch/Gentoo/Funtoo/Void users are running, since they're likely to use latest sources available and upgrade every day.
 
If Linux ZFS was using unmodified ZFS version 28 codes which is taken directly from now defunct OpenSolaris then it will work with FreeBSD. However since its been several years now and there are several ZFS forks with their own updates so its unlikely it'll be compatible with other OSes. It's also impossible to roll back to earlier version. If you want ZFS to be cross-platform then it needs to be version 28.
 
Even if some feature flags are not supported, the pool should be able to import in most cases. use the zpool import -N, so nothing gets mounted. Now either you try a zpool upgrade or just zfs send | receive the datasets over to the new pool.
This way I transferred some pools/datasets from debian and illumos to FreeBSD. The pools imported without any major problems and could be used on FreeBSD, but mostly I'm ending up using zfs send | receive to migrate the data, mostly because I want to get rid of some old cruft anyways and re-use the drives in the existing/new pool.
 
I'm guessing this is a problem that's never going to go away: while the Zpool feature flag set you'll find on FreeBSD immediately after a new release is likely to be more recent than what you'll find on, say, Ubuntu LTS or Fedora, the features flag set will quickly lag behind what Arch/Gentoo/Funtoo/Void users are running, since they're likely to use latest sources available and upgrade every day.

Probably not every day but still often enough that you have to start asking if they are even putting any effort into thinking if the latest and greatest version of a piece of software is what they should be pushing to their (often uniniatiated) users. Github makes it way too easy to just push a commit or two and call the new version a new release and every consumer of the software are going to "hey, new release, gotta have that, it must be better than the previous version from a week ago". Rapid application development at its finest.
 
you have to start asking if they are even putting any effort into thinking if the latest and greatest version of a piece of software is what they should be pushing to their (often uniniatiated) users.

Oh, sure, but then that's all part of that "Linux is about choice" mindset. I used Arch for years, and eventually concluded that it was an implicit rule that if you're running Arch, you automatically volunteer to be a bleeding-edge bug tester. That's your role in the Linux ecosphere. This is never explicitly stated---it's always worded something to the effect of "Arch gives you access to the latest software, always, and you'll only ever need to install it once, but you shouldn't use Arch in mission-critical roles because each Arch system is the sole responsibility of the person who installed and configured it." That may seem a little disingenuous, and I've seen people dance around the issue, but there was never any pretense that Arch was anything other than a single-user, use-at-your-own-risk distribution. I eventually decided that wasn't worth the bother.
 
Maybe not 100% what you're looking for, but much like sko I did manage to send | recv a ZoL pool (latest version) from CentOS 7 to FreeBSD for safekeeping just fine
 
Your only option is to copy the files over to FreeBSD ZFS. There is no such tools to convert ZFS from Linux to FreeBSD as they are both incompatible especially if the zpool has been upgraded.
This is flat out incorrect statement. One should have no problem importing lower version ZFS pool (the one created on Linux) into the OS which has higher version ZFS like FreeBSD. However importing higher version ZFS pool created with Solaris into the lower version FreeBSD is a problem.
 
However importing higher version ZFS pool created with Solaris into the lower version FreeBSD is a problem.

IIRC OpenZFS was incompatible with the closed-down ZFS in Oracle Solaris from very early on, hence the bump to version number 5000 and introduction of feature flags.

The versions of OpenZFS in FreeBSD and Illumos are pretty much in lockstep, especially because of regular code-syncs: https://www.freebsd.org/news/status...tml#ZFS-Code-Sync-with-Latest-OpenZFS/Illumos
FreeBSD and Illumos are also often named within the same breath as the reference-implementations for OpenZFS, so I doubt compatibility for pools between these two will break in any major way.
ZoL is another beast and is (was?) mostly lagging a bit behind. I can remember some discussions about introducing Linux-specific features that might break compatibility to other OpenZFS implementations/platforms. I can't find the discussion on the quick just now, but IIRC this was brought up ~1-1.5 years ago on the ZoL mailing list, but as there hasn't been any uprise within the community since, I suspect this Idea has been abandoned.
So compatibility with ZoL and OZFS on other platforms should still be preserved for implementations/versions of roughly the same age and as ZoL is more likely to lag behind Illumos/FreeBSDs ZFS than being ahead of, pools from Linux systems should import just fine on FreeBSD.
 
IIRC OpenZFS was incompatible with the closed-down ZFS in Oracle Solaris from very early on, hence the bump to version number 5000 and introduction of feature flags.

The versions of OpenZFS in FreeBSD and Illumos are pretty much in lockstep, especially because of regular code-syncs: https://www.freebsd.org/news/status...tml#ZFS-Code-Sync-with-Latest-OpenZFS/Illumos
FreeBSD and Illumos are also often named within the same breath as the reference-implementations for OpenZFS, so I doubt compatibility for pools between the
Illinois is long dead. When I say Solaris I mean Oracle Solaris 11 or future Solaris 12. Sorry but in spite of the fact that I don't currently pay to use ZFS on FreeBSD I subscribe to the opinion that OpenZFS is non-referent implementation of proprietary ZFS file system.
 
I don't know what gave you the impression that illumos would be dead, but it's Oracle Solaris that was practically dead after they closed it down and every key developer left and none of the key technologies had any major advancement since. Oracle ZFS even has outstanding bugs/quirks/limitations that have been resolved years ago for OpenZFS. Lots of features aren't even available because Oracle can't include the CDDL-Licenced code into their ZFS.
Oh, and Oracle is about to do what they did with any good and healthy company/software/project they assimilated after letting it starve and rot for a few years: https://www.thelayoff.com/t/KBEVoB1 So no Solaris 12...

The Illumos community might be a lot smaller than even the FreeBSD one, but it's healthy. Quite a few companies build their whole business on top of illumos and very actively drive the development forwards. E.g. Delphix, joyent or nexenta come to mind, with major contributions to OpenZFS like persistent L2ARC (and other ARC/L2ARC improvements) from nexenta or LZ4 compression from Delphix.
Have a look at the feature list and when they were avalable on each platform: http://open-zfs.org/wiki/Features Most features were implemented first on Illumos and shortly after on FreeBSD, with some being implemented in paralell.

I think we are drifting way too OT here; so to contribute at least something useful to the initial topic:
I've had a small hickup with migrating a pool from debian linux (pool created 8/2015) to FreeBSD 11.0-RELEASE. For convenience (downtime) reasons I wanted to just zfs send -ReD some datasets to get most things running on the new box prior to killing the old one and moving the whole pool to the new system. It seems the Deduplication for streams is either _very_ slow or somehow broken for ZoL, as the system firstly took very long to even show any load, taking ~10 minutes until a stream started trickling out, that was immediately aborted by the receiving side. On any FreeBSD system zfs send -ReD immedeately trashes the disks, grabs any RAM it can get, starts the dedup process and shortly after starts sending the stream.
Omitting the deduplication worked as expected (with a much larger stream though).
Importing the pool on FreeBSD worked without any Problems; zpool import -N was everything needed. After moving the data to the new pool I even tested updating the pool, which worked just as expected. (I destroyed the old pool and the partition tables afterwards to add the disks to the new pool, so no "long-term testing")
 
Illinois is long dead. When I say Solaris I mean Oracle Solaris 11 or future Solaris 12. Sorry but in spite of the fact that I don't currently pay to use ZFS on FreeBSD I subscribe to the opinion that OpenZFS is non-referent implementation of proprietary ZFS file system.

Lol. Illumos is far from dead and OpenIndiana, a port of OpenSolaris project, remains very well alive. It's has gone though a lot of changes since Oracle closed the OpenSolaris project.

Many Solaris developers have already left and some of them are working on OpenIndiana and OpenZFS/Illumos. Oracle have history of killing off many projects or letting things go stale to the point its worthless. MySQL, Java and Solaris are on life support. That's why we have forked OpenJDK, MariaDB, OpenZFS, OpenIndiana as an alternative to Oracle's products. Oracle don't believe in open source and they're driven by charging absurd prices.
 
Back
Top