Okay, any idea where I should start looking? I don't mind that it's not
a weekend project, but I really don't want to replicate the same system
50+ times. My original idea was that since each computer would need it's
own working directory to keep track of all work done and to work on it's
own scratch files what I'd do is have a script that creates a symlink to
the correct directory. I.e. /home/worker -> /tmp/worker ->
/home/worker-25. Each worker MUST have it's own directory, and it can
not be volatile. If they info is missing they will go onto the internet
to re-download it before doing anything. That's a lot of wasted time and
bandwidth.
Like I said, the main goal here is to be DISKLESS. If I make another
machine, I want to get all the hardware plugged in, register it's MAC,
then boot it and let it run. No software installation needed since all
the software is already being used on the network. Just have the
registration process make a new worker folder, copy the base contents
across into the new folder, add the MAC and give it a hostname (i.e.
worker-21) and reserved IP in the DHCP system. And since I've never been
able to figure out how to serve specific IP addresses to specific MAC
addresses with Systemd's networkd, I'll just use ISC DHCPd.
On 12/11/2020 11:12 PM, James Simister wrote:
That sounds like a perfect use of puppet/chef/salt, although I do see the
attraction of running diskless. I had a PXE-boot Gentoo machine running for
a while (with openrc), but wasn't satisfied with the speed. Maybe I did
something wrong or had something misconfigured, but I had a pretty decent
core i7 machine with 16G ram (fastest in my house) but the KDE desktop felt
closer to my cheapo Celeron laptop from 20 years ago (yes, it still works).
Once it loaded an app into RAM, it was spunky, but whenever it went to
"disk" it was excruciatingly slow (yes, it was a wired connection). I never
bothered to profile where the bottleneck was and just put a disk in the
machine for a local boot.
I am not as familiar with systemd, but usually everything is setup by the
initrd (which is loaded over the network via TFTP with the kernel) before
loading the rest of the system. The initrd should get the networking setup
and prepare for mounting the root fs. Another option is to just pack the
entire distro into the "initrd" and never pivotroot. I know some SBCs used
this tactic to "fastboot" - the initrd would be a cramfs that would expand
into RAM and the entire machine ran from RAM. You could further mount NFS
or NAS from there.
I agree with Daniel - probably not a single weekend project. But it could
be a lot of fun and you'd learn a ton about the intricacies of booting the
kernel.
On Fri, Dec 11, 2020 at 6:47 PM Dan Egli <[email protected]> wrote:
On 12/11/2020 3:01 PM, Daniel Fussell wrote:
PXE booting is usually done to install a base image to a machine. If
you want to PXE boot and run diskless clients, you may have to shuffle
some things into the initrd and change systemd service dependencies to
start the network before mounting the root filesystem and chrooting to
it.
As said before, to have a common filesystem/image with machine-specific
customization (whether made by systemd, admin, or user) , you are going
to have to get clever with overlayfs or some combination of small NFS or
local volumes mounted into the tree. You will have to be careful that
processes needing files in the customized mount areas are not run before
the overlay/mounts are ready, else the processes may continue to use the
open file descriptors from the original volume.
Who said anything about machine specific? I'm looking at the idea of
having 25-50 machines, identical hardware, identical software, identical
uses. Only difference between them would be 1) hostname, 2) ip and 3)
specific SET of data being processed.
--
Dan Egli
From my Test Server
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/
--
Dan Egli
From my Test Server
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/