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

Reply via email to