[Gentoo] Setting up a diskless cluster, volume 1

I’ll be putting together a small, diskless, mixed-node Gentoo cluster this week and hopefully detailing my progress on here. I recently got some interesting ideas from a fellow dev, Christian Zoffoli, on the gentoo-cluster mailing list. He had a setup something like this:

What it should do:

  • Power on.
  • Start PXE — look for DHCP, TFTP servers.
  • Download the kernel and a uclibc initrd.
  • Mount an NFS shared image (one per cluster).
  • Autoconfigure.
  • Start a full Gentoo system.

Technical details:

  • Create a diskless boot setup. Set up DHCP, TFTP and NFS servers. The DHCP server tells nodes their hostnames and where to go next to get a kernel. (Remember to use -H to dhcpcd on the client or else it ignores the hostname.) The TFTP server provides the kernel and initrd, and the NFS server provides a full root filesystem.
  • Create a layer using an embedded environment so we can have a diskless node up and running quickly. ROOT support in Gentoo’s Portage should allow us to do this fairly easily.
  • The linuxrc within the initrd does much of the real work.
    • Mount /proc.
    • Read the hostname from /proc/sys/kernel/hostname.
    • Parse /proc/net/pnp to find the boot server.
    • Download a more complex linuxrc (linuxrc.real) from a TFTP server, so there can be a simple, statically generated initrd.
    • Execute linuxrc.real
      • Mount the NFS root with a full Gentoo installation in a common path [COM_P1].
      • Mount a tmpfs in another common path within the prior one [COM_P2].
      • Generate resolv.conf, hostname, dnsdomainname, etc. in $COM_P2.
      • Download SSH keys (common to all nodes) to $COM_P2.
      • Mount a tmpfs in /tmp, /var/lock, /var/run, /var/lib/init.d and /var/log. The logger sends messages to a primary logger on the master.
      • Link $COM_P2 to the real location (in $COM_P1).
      • Link and download wathever you need.
      • Switch roots to the NFS share using pivot_root.
      • Execute /sbin/init in $COM_P1 to start the normal Gentoo initialization.

[Gentoo] Dropping stuff from mirrors

Brian, it would be helpful if that script could somehow figure out which ebuilds the “death watch” files used to belong to, so it could drop an e-mail to the maintainer before dropping them (or just to gentoo-dev, if the former is too difficult). A weekly e-mail wouldn’t be too bad.

[Gentoo] Sometimes things are dry

Grant, I think the reason GLEPs are so hated isn’t because of the GLEP itself, but because of how people treat it, especially farther in the past.

GLEPs have been seen by some people as a way to derail and delay projects. The dreaded words, “So write a GLEP on it,” have been heard many a time.

Fortunately, that’s changing. GLEPs have been turning into something useful, and our recent discussions have helped a lot and will continue to do so on clarifying how, and how well, they work.

Andrew, “easier or faster” is a good question. But why do they need to be mutually exclusive? Something easier to do should get done faster.

Nathaniel, familiar with the concept of spam filtering? It doesn’t need to be done manually. =P

Some programs, however, seem to suck at it. For example, although Evolution may be great at vfolders, its spam filtering is the slowest I’ve ever seen. I actually had to switch to Thunderbird because it annoyed me so much.

Speaking of wish lists