This cluster utilizes NFS to store all of the file systems onto a single drive.
For easy setup & maintenance, I am utilizing small SD Cards to boot the kernel instead of PXE. Trust me life is so much easier with a pack of cheap SD Cards. As they are only used to boot, speed and longevity is not an issue.
|1||pnode01||192.168.4.1||Storage Host, NFS Server, DHCP Server|
Using Raspberry Pi Imager, write 2 SD Cards with Ubuntu Server. 32bit or 64bit will do. 1st SD Card will be to utilize USB storage and the 2nd will be to utilize NFS. We will create an image of the 2nd to make easy duplicates for Nodes 03+.
Insert and boot the first Pi (pnode01). Wait for the Pi to fully start the first time. You will know this because it will display certificate information then ask to login.
Login Username & Password will both be ubuntu. If you try to login with these credentials and they do not work, wait a little more, first boot is not completed.
Now plug in your USB storage drive. USB3 is way better then USB2.
Use the following guide to setup the usb storage as Ext4 with a partition label of 'osstorage' and temporarily mount to /osstorage
This is how I cluster my Pi nodes. I use a USB3 Gigabit Ethernet adapter as the External adapter and the Integrated Ethernet for Internal as it is faster for serving NFS. I then use IP Tables to forward traffic as needed.
DHCP Server Guide coming soon.
You will need to reserve a static IP for each Pi node.
Now place the SD Card from pnode02 into your computer.
Using Computer Manager -> Disk Management, you can remove the linux partition. (Do not delete the small boot partition.)
Like the first SD Card, you will need to locate the cmdline.txt file and edit the following.
Now you can duplicate the boot SD Card as needed. Remember to update the nfsroot= for each SD Card.
Using a utility such as Win32 Disk Imager, create an image of the SD Card. With Win32 Disk Imager, check Read Only Allocated Partitions.
You can now configure each node as you desire.
I run the RTC Module on pnode01 and then host a Network Time Service to supply the other nodes.