Sometimes, projects don’t work. Today, I’m going to describe a bit about a few of them. Thank you for coming to my ted talk lol. I’ve been working on Linux Multiseat for awhile now, it’s a topic that has fascinated me for over a decade now. But, getting it to actually work with cheap hardware has eluded me. So, here’s a bit of an overview of what I’ve learned so far.
I previously setup a Proxmox high availability cluster on my $35 Dell Wyse 5060 thin clients. Now, I’m improving this cluster to make it hyperconverged. It’s a huge buzzword in the industry now, and basically, it combines storage and compute in the same nodes, with each node having some compute and some storage, and clustering both the storage and compute. In traditional clustering you have a storage system (SAN) and compute system (virtualization cluster / kubernetes / …), so merging the SAN into the compute nodes means all of the nodes are identical and network traffic is, in aggregate, going from all nodes to all nodes without a bottleneck between the compute and SAN nodes.
In this project, I explore using low cost thin clients as cluster nodes, the fundamentals of Proxmox clustering, redundant storage, and hyper-converged infrastructure using Proxmox and Ceph. Setting up a Proxmox HA Cluster In the first video, I take the Dell Wyse 5060 I bought before and … bought 2 more. Once I had 3, I built a complete high availability cluster using them, demonstrating the very basics of Proxmox clustering, high availability resources, and how Proxmox handles failure.
I’ve played with network booting before (and I even tried to netboot Windows, what a nightmare that was), but now I want to get serious about it. I want to netboot my VDI Clients. I’ve been working on a thin client series, and the next step is to get rid of the installation entirely. I could use something like Linux Terminal Server Project, but that’s a bit overkill for this, and I wanted to learn Alpine anyway, so I’ve chosen to use Alpine Linux for the client operating system.
In this project, I explore thin client software, and set up a Raspberry Pi to act as a thin client. This is a multi-part project, follow along below for each sub-project. Raspberry Pi SPICE Thin Client The first project in this series creates a Raspberry Pi Thin Client which is permanently bound to a specific VM in Proxmox, and boots directly into the thin client session. You would use this when you have a 1:1 relationship between clients and VMs, such as a computer lab.
I’ve been using Linux for a long time. The first distribution I ever installed was Ubuntu 6.06 ‘Dapper Drake’, on which I ran a phpBB server for my school friends. Security was poor. But shortly after, as I learned about Linux desktops (and first daily-drove a Linux laptop around 2012), I learned about ‘Multiseat’. The Wikipedia article has a cool picture of a very 90s looking desktop tower with 4x CRT monitors, and that image was published to Wikipedia in 2005, and I saw it in middle/high school years.
In this project, I explore thin client software, and set up a Raspberry Pi to act as a thin client. This is a multi-part project, follow along below for each sub-project. A Modern Linux Graphical Terminal Server For the first project, I setup a remote desktop terminal server, allowing many users to connect to a single server and operate indepednent graphical sessions. My test bench was able to handle a dozen simulatneous users, and a proper server should be able to handle many more.
So you want to turn your one or two Proxmox nodes into a small Proxmox cluster? What do you need to know about quorum, especially as it pertains to really small clusters of 2 and 3 nodes? In this video, I go over the different ways to stabilize a 2-node cluster for high availability, the storage requirements for high available VMs, installing a QDevice using a Raspberry Pi, and if you even need one.
I recently tried to install Proxmox on my Dell Wyse 3040 thin client so it can act as a cluster member, since it’s arguably easier to setup a full Proxmox install on x64 based devices than it is to setup a QDevice. Proxmox has a great installer, you have the full GUI to manage the node (not that you need to do much with it as a QDevice), and you have the option of setting it up for other Proxmox services and containers even if it’s really not very capable.
For my last trick, I setup a multi-user thin client where each user account was connected to a specific virtual machine. This is great, but if you have a lot of thin clients you might not want to create a ton of VMs and might instead want each user in the system to have one or more VMs. Well, Josh Patten has written a Python-based GUI to select thin clients which you have access to, and today we are going to turn that into an appliance on both a Raspberry Pi and an actual x86 based Thin Client (running Debian).