jgreco
Resident Grinch
- Joined
- May 29, 2011
- Messages
- 18,680
Geez write a frickin' book.
Think I lied because you made a few points I now want to comment on.
I don't really trust the judgment of Macheads on this sort of thing, because many of them are non-techie sorts and expect that "quality software" is tied to "having a great GUI" and "easy to use" and all that. I'm guessing that it was much more difficult to use than they were expecting because, well, CLI, ZFS, UNIX, y'know.
It's actually not quite as difficult as you make it sound. It isn't a beginner-level project, and it can take several hours of work, and the real problem is that stuff like Samba and the AD trusswork usually require some workarounds and debugging to get everything working correctly, and this changes from Samba release to release. The usual lifespan of one of our filers is probably four to six years, though, so it isn't a major investment in time. The question is whether or not it is worth the investment in time to bother, if there's someone already out there focused on doing a good job of maintaining a dedicated filer platform. We still do non-FreeNAS filers for things such as NFS, because FreeNAS has made some engineering choices that fit poorly into our environ, such as ZFS and a massively bloated middleware, which makes the overall resource requirements in a virtual environment truly onerous. I have a difficult time reconciling "setting up a FreeBSD server with the same kind of quality that FreeNAS provides" with the realities here. I can show you a fast, high quality NFS server that exports an encrypted filesystem and remote synchronization capabilities, optimized in a number of ways to work within a virtualization environment, and that can live in 128MB of RAM (probably less). Much less bloat.
And we get to the heart of the matter here, "should" be compatible. But in reality until someone funds a bunch of developers on EACH platform to be experimentally importing pools and doing ongoing validation from all the different platforms, and EACH feature revision of EACH other platform, there's going to be risk. You know how FreeBSD can mount NTFS and read and write that, right? But there are caveats, limitations, things not supported.
I pretty much groaned in despair when ZFS implemented feature flags, because while there are some upsides to that strategy, it also means that there's more potential for a fragmented featureset and the compatibility matrix really becomes very much more complicated than merely comparing a version number. Ultimately you start battling lots of levels of choices made by developers that may or may not be valid on a different platform, and portability becomes more questionable.
In the end, it should be possible to import pools on different platforms, but the safest course of action is to do that only as an interim step while migrating from one platform to another. It is always going to be safest to use a pool natively created on the target platform. Other things could work, in theory, but the number of potential gotchas is too high. Anyone who doesn't like that is of course welcome to fund a bunch of developers to fix that, but we're talking a hell of a lot of work (many man-years, probably).
I am also with jgreco that I'm not going to discuss this further.
Think I lied because you made a few points I now want to comment on.
4. This thread was about Mac ZFS. I never used it, but people that have talked about it in IRC in the past said it was about the worst piece of software they've ever used.
I don't really trust the judgment of Macheads on this sort of thing, because many of them are non-techie sorts and expect that "quality software" is tied to "having a great GUI" and "easy to use" and all that. I'm guessing that it was much more difficult to use than they were expecting because, well, CLI, ZFS, UNIX, y'know.
I dare you to install FreeBSD and try to setup SSH with keys, a zpool with proper partition alignment and 4k sector size, create some datasets and share them with NFS and Samba with AD integration, make the permissions work properly in NFS and Samba, and then actually mount that stuff elsewhere and use it to transfer files at LAN saturating speeds. If you've never done it, you'd spend weeks just trying to figure out some of the basics. Nevermind try to handle updates to the OS and the whole other host of very real problems and maintenance that you have to do on the server. I've heard people claim that what they can do in 20 minutes in FreeNAS takes them a week or so to truly set up properly in FreeBSD. I'd wager that 99.99% of us in the forum are probably incapable of setting up a FreeBSD server with the same kind of quality that FreeNAS provides if we were given 3 months to do it.
It's actually not quite as difficult as you make it sound. It isn't a beginner-level project, and it can take several hours of work, and the real problem is that stuff like Samba and the AD trusswork usually require some workarounds and debugging to get everything working correctly, and this changes from Samba release to release. The usual lifespan of one of our filers is probably four to six years, though, so it isn't a major investment in time. The question is whether or not it is worth the investment in time to bother, if there's someone already out there focused on doing a good job of maintaining a dedicated filer platform. We still do non-FreeNAS filers for things such as NFS, because FreeNAS has made some engineering choices that fit poorly into our environ, such as ZFS and a massively bloated middleware, which makes the overall resource requirements in a virtual environment truly onerous. I have a difficult time reconciling "setting up a FreeBSD server with the same kind of quality that FreeNAS provides" with the realities here. I can show you a fast, high quality NFS server that exports an encrypted filesystem and remote synchronization capabilities, optimized in a number of ways to work within a virtualization environment, and that can live in 128MB of RAM (probably less). Much less bloat.
The *only* thing that various ZFS implementations have in common is the file system structure itself should be compatible. Not always, but *should* (despite feature flags and everything else). If you read around in FreeBSD there are lots of ex-solaris guys that rebuilt their pools in FreeBSD because they were aware of (and often ran into) problems when going cross-platform.
Ok, so pretend a pool is corrupted that came from Solaris and worked in FreeNAS for 2 months. What went wrong?
And we get to the heart of the matter here, "should" be compatible. But in reality until someone funds a bunch of developers on EACH platform to be experimentally importing pools and doing ongoing validation from all the different platforms, and EACH feature revision of EACH other platform, there's going to be risk. You know how FreeBSD can mount NTFS and read and write that, right? But there are caveats, limitations, things not supported.
I pretty much groaned in despair when ZFS implemented feature flags, because while there are some upsides to that strategy, it also means that there's more potential for a fragmented featureset and the compatibility matrix really becomes very much more complicated than merely comparing a version number. Ultimately you start battling lots of levels of choices made by developers that may or may not be valid on a different platform, and portability becomes more questionable.
In the end, it should be possible to import pools on different platforms, but the safest course of action is to do that only as an interim step while migrating from one platform to another. It is always going to be safest to use a pool natively created on the target platform. Other things could work, in theory, but the number of potential gotchas is too high. Anyone who doesn't like that is of course welcome to fund a bunch of developers to fix that, but we're talking a hell of a lot of work (many man-years, probably).