
Another ZFS Port on Linux - suprasam
https://www.crossmeta.io/another-zfs-port-on-linux/
======
vbezhenar
I hope that more people would help with bcachefs development. It seems like a
modern alternative for ZFS with proper license and Linux integration.

~~~
noja
[https://bcachefs.org/](https://bcachefs.org/)

The name doesn't help. It doesn't sound like a real filesystem (it sounds like
something that accelerates a real filesystem)

~~~
BlackLotus89
That is only because the author (kent overstreet) based it on his former work
bcache.

Fyi he now has fully persistent allocation info done so his attempt ti
mainline it should start soon. Even though I still got open bug reports left
I'm excited about this.

Bcachefs got

    
    
      * compression
      * Snapshots
      * cow
      * checksumming
      * in build caching
    
    

He checks his code against the xfs test suite so hopefully it really will be
stable and useable.

My main problems with bcachefs are:

    
    
      * it's mainly one developer
      * when I tested it I had problems many times
      * he documents his progress irregular(ly) (not frequently with pauses and at different places: bcachefs.org, patreon home, patreon posts) 
      * he doesn't answer questions (on his patreon posts or on github bug reports) (this could be a good thing if he only wants to concentrate on code) 
      * while waiting om bcachefs becoming mature, butterfs became finally mature (kind of)
    
    

So even thought I'm following the project I'm not sure if compression now has
working disk space accounting or not and similar things, but since I see
admirable progress I'm still looking forward for the first mainline release

~~~
viraptor
> he documents his progress irregular(ly)

I think there have been updates after every bigger piece of work recently.
They were irregular because the work took different amount of time. He never
promised scheduled updates as far as I remember.

~~~
BlackLotus89
I'm really only talking about documenting not patreon posts. For instance the
patreon main page says compression is working with lz4 and zlib, the bcachefs
homepage says lz4, zlib and zstd (with zstd having problems).

Also the mount times mentioned on the homepage are afaik (could be wrong) not
that big of a ptoblem anymore and only slow because of the optional fsck

------
oofabz
unifying ARC with the OS block cache is huge for performance, i hope this
feature is adopted by other ZFS implementations

~~~
drewg123
The lack of a zero-copy sendfile for ZFS is one of several reasons that we
(Netflix Open Connect) use UFS on our CDN nodes.

It would be interesting to see how he solved this. From a brief look at the
FreeBSD code several years ago, I seem to recall that ARC dealt in 8K chunks
(maybe because it is the sparc page size??), but x86_64 uses a 4K page size,
and mmap() and sendfile() expect to deal in pages.

The other issue would be "taming" the ARC. We make heavy use of FreeBSD's
SF_NOCACHE flag to sendfile(). This allows us to teach the VM system to keep
hot content in the page cache, and drop less popular content.

~~~
NovaX
> The other issue would be "taming" the ARC

Has anyone considered replacing ARC? It actually has fairly poor hit rates
compared to other policies, with very modest improvements over LRU. I also
wonder how much ghost entries contribute to space overhead, which is actually
trivial to remove (ARC is an adaptive SLRU - so replace ghosts with a sampling
hill climber).

------
m0zg
> with the hope that Oracle may change and again open source their latest ZFS

Yeah, bud, good luck with that. Someone hasn't worked with Oracle.

------
suprasam
Demo regarding unified ARC & Pagecache
[https://youtu.be/be0ph4b9vUE](https://youtu.be/be0ph4b9vUE)

~~~
BlackLotus89
Is that video a late april fools joke. I didn't yet watch it fully, but a
presentation on zfs on Windows in an Internet Explorer window? Wtf?

~~~
rincebrain
You know, you say that, but...

[https://github.com/openzfsonwindows/ZFSin](https://github.com/openzfsonwindows/ZFSin)

(I am aware this is not the codebase the presentation is running on or about.)

~~~
BlackLotus89
Didn't know that anyway. Thanks for the link

------
Skunkleton
I hope the port is more stable than their server. Anyone have a mirror?

~~~
mappu
[https://web.archive.org/web/20190418224604/https://www.cross...](https://web.archive.org/web/20190418224604/https://www.crossmeta.io/another-
zfs-port-on-linux/)

------
gigatexal
Needs a repo and build/install instructions. Eager to see how this improves
over ZFSonLinux

------
rincebrain
Not especially compelling as a link when the source repo is still empty, so we
only have a video to go by.

------
jgowdy
It's incredible to me how many people are suddenly comfortable violating the
license of ZFS, simply because Cannonical says it's okay? This is an open
source project, under an OSI approved open source license (CDDL) which is
quite known to not be GPL compatible. The license is derived from MPL 1.1,
which is also known to not be GPL compatible. Why did they bother creating MPL
2, when we could have just ignored the GPL incompatibility in MPL 1.1?

You can't be someone who loses their mind over GPL violations, but then
willfully misinterpret someone else's open source license because they have
something you want. The developers involved specifically picked CDDL because
it wasn't GPL compatible. That was their desire / intent, and so that's the
license they went with. By ignoring the license and the clearly known intent
of the developers in choosing that license, simply because they made something
you really want, I believe that ZFS on Linux is really a form of theft in the
open source world. It's the same sort of attitude that leads to GPL
violations.

I don't agree with making things CDDL to be explicitly GPL incompatible, but I
do believe in respecting the author of the software in question and the
license he or she chose. If people choose licenses I don't agree with, I don't
use their software. I don't just use it anyway and pretend like there's no
license issue.

You don't have to be RMS to see that these people who are ignoring the
licensing issues (not just shipping user mode tools like a FUSE implementation
which is legit) honestly don't care about open source and licensing and
copyleft. They just see something someone else made that they want and they
take it and ignore the licensing and developer intent. How can we hope to
enforce the GPL successfully but then ignore other OSI approved licenses when
it suits us?

This is why big names in Linux kernel development aren't remotely interested
in ZFS.

Not to mention the fact that the users of ZFS on Linux are all setting
themselves up for Oracle to bring the licensing inquisition.

~~~
compsciphd
It's an open legal question if a user loadable module violates the CDDL/GPL.
Until its fully litigated, its going to remain an open question.

As an example: the FSF's position is that yes, if you dynamically link against
a GPLd binary that all the code has to be GPLd, and if one wants to link
against a copy-left library in a non copy left program the library has to use
the LGPL. However, the LGPL predates dynamic linking. It's from the days of
static linking where the (L)GPLd could would be distributed together in a
single binary. In the world of dynamic linking that isn't true anymore.

A primary example is libreadline. It is (or was?) GPLd and the FSF use this a
hammer to try and get other code to be GPL. However, this (as far as I know)
was never actually litigated.

As another example: the Linux kernel is under GPL2, Linus makes it clear that
closed source programs can use the syscall interface without a problem, but
its not clear that if he didn't say this that they couldn't. He includes the
note to clarify his position that they can for those that would be concerned.
i.e. the argument would be that without the syscall note, one couldn't ship
any hardware device (say an appliance you stick in your rack) with linux and
proprietary software. My gut is that most would find that difficult to
swallow.

As an aside: I personally feel this has similarity to the google / oracle java
lawsuit. If one thinks that APIs cannot be copyrighted then arguably anything
that just uses APIs and doesn't embed the actual GPLd code one should be fine
as the APIs aren't able to be copyrighted. If on the other hand one views APIs
are able to copyrighted as well, then it would be much more clear that the
FSF's position is correct. Though the usage might still be fair use (and to an
extent one might argue that its even more fair use than Google's usage)

If this ever does get litigated, I'll be following closely as would be very
interested (intellectually at least) in the result.

TLDR: until its actually litigated, everyone who claims to speak an absolute
truth is speaking out of their ass. Lawyers are a conservative bunch in
general so they'll give you the most conservative answer in terms of what you
can do, that doesn't mean its the absolute truth in terms of what you can and
cannot do.

~~~
jgowdy
What we do know is the intent of the developers in open sourcing their work
and that those working on these ports are violating that intent. They
specifically chose this license with the belief that it protected their
software from being consumed by GNU/Linux.

The counterargument, maybe their license doesn't block us from using their
work in the way they think it does, and until it's proven in court we won't
know is extremely offensive and self-serving.

This is the same argument raised by many GPL violators. "The GPL hasn't been
proven well enough in court in my jurisdiction so I'm just going to use your
code in violation of your license terms."

This is theft, an open source license violation, and lawyering to defend that
theft. It violates the principles of open source. We are literally discussing
an OSI approved license. I believe that any responsible member of the open
source community would respect the authors license and not try to lawyer their
license out of your way so you can have their code on your terms.

If this was Linux devs and GPL, rather than Solaris devs and CDDL, everyone
would be on the other side of this argument. It's hypocrisy and it should be
called out.

~~~
p_l
Do we actually "know"? Cause I "know" that the opposition to GPL was not to
make it incompatible with GPL (which is a point of contention actually, and
hits deeply into question of when a code is derived code). The point was that
making OpenSolaris GPL would block integration chances with NON-GPL projects.

In fact, at least one anecdote points out that Sun expected CDDL components to
make it into Linux source, just like cases of other non-GPL components in the
past (AFS, for example)

------
patrickg_zill
I am certainly looking forward to trying it out!

ZFS is a great filesystem and being able to possibly have a better
implementation than we do at the moment, or at least, be able to spur
additional development and optimization, is very welcome!

