Zend certified PHP/Magento developer

Best practices for PXE boot of diskless computers?

I am looking for some hint as to best-practice with PXE boot.

Have a half-dozen (or so) Xeon-D based computers without local storage. (Also multiple systems with the same setup.) Looking to boot across the network. All are meant to boot Centos 8. All are headless – no screen or keyboard.

To be clear, I am not looking to boot PXE for install to local storage (as seems the usual use-case at present), as there is no local storage.

Have dnsmasq with TFTP configured and working. There is a unique configuration for each node, and I can see the proper the IP address and hostname assigned to each node. The nodes are recognized by client architecture (x86_64-EFI), and load the proper bootfile.

Have also an HTTP server (couple of pages of NodeJS code) that can serve files via HTTP (as perhaps a better choice than TFTP). Loading files works either via TFTP or HTTP. (Can pull files via “curl” or a web browser over HTTP.)

These are custom boards with a custom AMI BIOS that supports PXE boot, through my confidence in the vendor’s implementation is limited. Also, I seem to be stuck with EFI boot, as CSM does not seem to support PXE.

In fact, I have booted Linux using the AMI BIOS PXE to load iPXE … but it took an hour to load vmlinuz and the initrd. (And I am not yet properly attaching to the NFS root … but need to solve the slow load first.) This is in fact a 1Gbps network (no down-shift the slower rates at the media level).

I am somewhat concerned that the drivers for the LAN7800 chip might be an issue. The chip is on the computer board, but is USB-connected to the Xeon. (Seems a bit funky to me.) There are drivers for the chip in the iPXE sources, but I do not know how well they perform.

Doing PXE boot through the LAN7800 chip makes sense as this is hooked to the 1Gbps control-plane network that goes throughout the system. There is also an Intel X710 chip with a 10Gbps fiber connection point-to-point to the boot server (meant for other dedicated purpose). Possible, to use these to boot, if more complex. (My next exercise…)

Started the exercise with the GRUB version grub-2.06 (compiled from sources). Then someone on the GRUB mailing list suggested using iPXE. Using the latest v1.21.1 iPXE (built from sources). Looked at PXELINUX also, earlier.

Then there is the /images/pxeboot/* directory on the Centos installation ISO (and with other Linux distributions). Have yet to figure out if this is useful.

Looking any hints on good/bad direction…