Live data from Hacker News

Diskless Linux boot using ZFS, iSCSI and PXE

aniket.foo

11–20 of 108 posts

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#12
I've done a lot of headless/diskless stuff. I haven't done much for years, because my NAS only has gigabit Ethernet ports. I can cascade them and get four Gbps downstream, but it's still painful.

I have recently upgraded my house to 10Gbps Ethernet, with only one room still stuck at gigabit, and unfortunately, it's my main office. I'm working on getting the drop there now (literally, just taking a break here).

Even once I'm done, accessing an iSCSI drive over 10GbE will be 4-8 times slower than a local NVMe drive, but it will sure be a lot better than it was!

Ideally, I could run VMs on the NAS and have great performance, but that's another hardware upgrade...

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#13
post #9

something worth mentioning here is that iSCSI is quite unhappy on congested networks or packet loss caused by incast traffic. to make this actually work well, consider modifying your switches QoS settings to carve out a priority VLAN for iSCSI traffic

or a north-south/east-west architecture, so there's an entirely separate network just for iSCSI. Control plane vs data plane.

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#15
> UEFI fixes that to some extent, but it’s a pain to maintain the UEFI entries manually and change them every time the kernel updates.

… you don't have to update the UEFI entries every time the kernel updates. (I guess you might if you do like a kernel w/ CONFIG_EFI_STUB, and you place the new kernel under a different filename than what the UEFI boot entry point to then you might … but I was under the impression that that'd be kind of an unusual setup, and I thought most of us booting w/ EFI were doing so with Grub.)

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#16

> UEFI fixes that to some extent, but it’s a pain to maintain the UEFI entries manually and change them every time the kernel updates. … you don't have to update the UEFI entries every time the kernel updates. (I guess you might if you do like a kernel w/ CONFIG_EFI_STUB, and you place the new kernel under a different filename than what the UEFI boot entry point to then you might … but I was under the impression that…

Even if you do CONFIG_EFI_STUB, there should be a post-update hook to automatically call efibootmgr.

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#17
post #3

NFS diskless is the more common approach I've used but this is very cool.

NFS diskless was easier for me to setup when I was doing it.

THe caveat was, you needed readonly root, so that meant freezing the OS, anything that needed changing was either stored in a ram disk (that you need to setup) or a per host nfs area (kinda like overlayfs, but not)

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#18

> UEFI fixes that to some extent, but it’s a pain to maintain the UEFI entries manually and change them every time the kernel updates. … you don't have to update the UEFI entries every time the kernel updates. (I guess you might if you do like a kernel w/ CONFIG_EFI_STUB, and you place the new kernel under a different filename than what the UEFI boot entry point to then you might … but I was under the impression that…

or just copy the latest kernel to something like /vmlinux and /initramfs

Re: Diskless Linux boot using ZFS, iSCSI and PXE

#20

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.) Does anyone have an opinion on iSCSI vs NBD?

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.

https://forums.gentoo.org/viewtopic.php?p=4895771&sid=f9b7ac...

https://github.com/NetworkBlockDevice/nbd/issues/93

Whether that’s the case with the latest version, I don’t know, but it’s something you might test if you choose to try it.

Post reply on HN