Nice. I'm extra fond of ZFS backed network root filesystem, because it lets you put an OS on ZFS without needing to deal with ZFS support in that OS. (One of these days I want to try OpenBSD with its root on NFS on ZFS, either from Linux or FreeBSD.)
We've spent a lot of time over the last decade making NBD a faster and better protocol: pipelined requests, full support for trim and zeroing, load balancing over multiple connections, a proper specification, new client and server implementations (libnbd, nbdkit), standard command line tooling, interop testing between all the implementations, and a formal URI specification. It's very trivial to set up an NBD server and there's tons of documentation about how to connect to it with different clients (start here: https://gitlab.com/nbdkit/nbdkithttps://libguestfs.org/nbdkit.1.html#SEE-ALSO).
Unfortunately in this specific case (diskless booting) dracut support still sucks, which I really need to get around to fixing at some point.
Well, iSCSI is a standard, so chances are better that it's supported in a non-Linux OS, e.g. MS Windows. Years ago I booted a Windows (7, iirc) client that way, but gave up on it (too much hassle and performance limited by the network) when SSDs became cheap.
I don’t have direct experience, but when I looked into it my takeaway that NBD was unable to reliably deal with network interruptions as well as iscsi.
Does anyone have an opinion on iSCSI vs NBD?