My Proxmox Cluster

A few weeks ago I added my old Laptop to my single Proxmox node, so now I have a Proxmox-Cluster of 2 nodes.

Screenshot of my Proxmox web interface

pve1 - Node 1 - ThinkCentre M900 Tiny

My first node, "pve1" is a ThinkCentre M900 Tiny 4C/8T Intel machine with 32GB of DDR4 RAM. I connected my 4 Bay USB ZFS raidz with 4x 4TB Seagate IronWolf disks to it. I mapped most of its datasets to my NAS container, which stores my Backups, private git repositories, my movie collection and general storage for GOG games, Ebooks, an Archive and things like that. So the ZFS storage pool (zdata) contains the following zfs datasets:

The zdata pool is again backed up to an offline storage (incremental zfs send), which I do manually on Sundays, when I update my whole Homelab, mostly with Ansible (some things I do manually).

NFS storage server

I set up a NFS server on my pve1 node to serve as storage for both of my nodes. It serves "/zdata/storage" and takes all container backups, which are automatically made every Sunday morning and also all container templates I download. It's mounted on both nodes (pve1 and pve2) as "Storage"

syncserver (SyncThing)

I have a "syncserver" container, which runs as SyncThing server on pve1 and has it's own separate 500GB SSD (ext4) attached to it. This SSD is also connected via USB to my M900 Tiny. It gets backed up with borgbackup to my NAS container every night, so I get this backup also on my zdata pool which is also backed up externally.

SSD-ZFS on pve1

The storage "SSD-ZFS" on pve1 is a ZFS formatted 500GB SSD which contains all running containers and VMs as zvols.

pve2 - Node 2 - MSI Bravo 17 Laptop

The second node, "pve2" is a MSI Bravo 17 AMD Laptop with 8 cores and 16 threads (8C/16T) and also 32GB DDR4 RAM. There is no extra hardware connected to it, but besides a 500GB NVME drive, which contains the OS, it has also an internal 1TB SSD drive.

NFS storage

"pve2" also mounts the "/zdata/storage" directory exported from the NFS server on "pve1" as "Storage", so the backups go to this directory as well and to my zdata pool on pve1.

SSD-ZFS on pve2

I also named the internal SSD (1TB) of pve2 (the laptop) "SSD-ZFS" and it also contains all the running containers and VMs. And like the one on pve1 it's formatted with ZFS and uses zvols as container volumes.

Migrating containers and VMs from one node to the other

The process of migrating the containers and VMs from one node to the other is very easy and goes automatically. Even containers are only stopped for a very short period of time. I can shuffle all my containers around how I want, with the exception of the "nas" and the "syncserver" containers, which I can't migrate because they have mapped some outside directories. Some dirs from the zdata pool in case of the "nas" container and the SyncThing SSD in case of the "syncserver". I marked them as "no mig" with a tag, but nothing really prevents me from trying to migrate them, which would result in an error when restarting them on the other node.

A migrated container gets the same IPv4 and IPv6 address as before, so there's no need to fiddle around with DNS.

ZFS ARC cache

I gave both nodes a maximum of 4GB ZFS ARC cache, which is enough as far as I can see. The servers run very stable and I don't do deduplication on my ZFS drives. Even if some people think you need lots of ARC cache I don't have any performance issues with only 4GB per machine.

Firewalling

I needed to open the firewall for the nodes VLAN (pve1 and pve2) for the NFS ports in the Proxmox admin panel to give each node access to NFS. This is generally not to advise but I restricted the NFS server ports to the VLAN subnet and protected the VLAN through the routers firewall, so NFS is only accessible from within the VLAN. I *hope* that this is enough.

Conclusion

A laptop makes an excellent Proxmox node, because it doesn't consume much power and is a compact appliance. It does draw even less power because the display is turned off. With turning off sleep mode, it also doesn't turn off in case of a reboot. It even has UPS because of its battery, but in case of a disaster blackout that won't help much, because all the other devices will be without power. So I'll need some external UPS. I'll need to look for a solution to that in future.

So to put my old laptop to good use and prevent it from collecting dust or going to the garbage dump, I'm repurposing it. The laptop's battery is nearing the end of its life, but it still powers the laptop for about an hour. As you may know from my "Used Hardware" page, I recently bought a new Tuxedo Laptop, which is a bit more modern for daily use.

Comments, advises, ideas, criticism

As always if you want to give a comment, some advice, have an idea how to improve this, want to criticize something or simply say "Hi!", send email to fab@redterminal.org or contact me through Mastodon/ActivityPub @fab@pleroma.envs.net. All messages are welcome!

All in all - Have fun!

-fab-

--

Back to index

Homepage

Send me a gemini-mention!

Or write me an email.

Proxied content from gemini://redterminal.org/gemlog/2025-05-06-My_Proxmox_Cluster.gmi

Gemini request details:

Original URL
gemini://redterminal.org/gemlog/2025-05-06-My_Proxmox_Cluster.gmi
Status code
Success
Meta
text/gemini;lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.