On 12/11/2018 04:23 AM, Tsukasa Mcp_Reznor wrote:
You're totally correct, more information would be beneficial, here goes.
:-)
All machines are Wired 1Gbps connections.
ACK
That means that you don't have the complications (and performance
issues) of wireless.
Uefi IP4 network stack sends dhcp request, gets boot file pxelinux.efi,
the default entry sends the linux kernel (no initramfs needed, firmware
added to kernel image).
Interesting.
Do you have reservations in the DHCP server? Or are the addresses truly
dynamic?
Are you relying on the client's UEFI implementation to provide the menu?
Or are you using PXELINUX for the menu? (I know it's a nuance, but it
is a difference.) The latter is much easier to centrally manage than
the former.
Does the UEFI stack get the same IP via DHCP that the OS gets via DHCP?
Is there any sort of contention? Does UEFI release the IP before
bootstrapping the PXELINUX image? Does the DHCP server view the
multiple requests from the same client MAC as a form of a refresh? Or
does it just offer the same IP?
Another good note is the kernel contains the command line built-in for
using root on NFS.
Okay. ~pondering~
Are all clients booting the same kernel, thus using the same command line?
This means that clients must use DHCP to retrieve their IP address.
I guess there is some opportunity to return different files (PXELINUX
image / config and / or kernel file) to different clients to get
different behavior. But that might be more complexity than is necessary.
Would you please share the kernel command line? I'm quite curious what
the syntax is for NFS root.
Machine loads, mounts the required mount points through NFS4.2 (so much
better than the old NFS 3 speeds).
Nice.
LightDM loads and users are free to work, in this case family members
playing Steam/Diablo 3/etc.
:-)
I switched to using Root on NFS for alot of reasons.
:-)
Maintaining 4 gentoo installs on machines of varying specs and remembering
to update each with good updates added a fair amount of administration
time. (4, because the server is included)
*nod*
Using chroots on the server as binary build hosts for each machine
solves some problems, but increases space requirements quite a bit, and
adds latency if you want to use it while it's emerging anything, plus
compiling say Libreoffice or whatever 3+ times in a row is pretty slow.
That makes me think that you are using a separate NFS export for each
machine's root.
I have wondered about trying to do something similar (likely start in a
VM) that has (at least) one machine specific export for things like
/etc, but would then try to use a common export for things like /usr,
/lib, and maybe /var.
Maybe a common / export and a per machine /etc would accomplish what I'm
thinking.
Side note, If anyone else runs diskless I have a patch for wine I can
send out that returns the nfs mount as a fixed hard drive, there are a
few apps/games that refuse to install/run on a network share, and a patch
for steam that removes the file locking issues so updates run quick and
smooth
Nice.
(neither will ever be upstreamable, people have tried in the past)
:-/
Thanks for your response, I'd love to help if you have any more questions,
it's been a fun experience for me for sure. Also, cachefilesd if there's a
drive available, makes everything feel like it's not a networked machine
at all here.
You're welcome.
Thank you for sharing.
I'd love to know more about how you're doing things.
- What is common between the diskless clients and what is unique.
- PXELINUX image / config
- Kernel image
- NFS exports
- What do your exports look like.
- What sort of configuration you have in your DHCP server that's
specific to this.
- Any sticky reservations, possibly with machine specific parameters.
- Other things that I can't think of at the moment.
Thank you again. Very interesting stuff.
--
Grant. . . .
unix || die