Lasse Flygenring-Harrsen

Lasse Flygenring-Harrsen

Student, HTX Roskilde

Creator of SkiftTilLinux.dk

© 2020

Linux Terminal Server solutions in 2019

During the last two years, I have experimented with various Linux based terminal server solutions, primarily LTSP, for use at my school. This is what I have learned in that time.

Overview

For the uninitiated, a terminal server system allows multiple users to connect to a single powerful server that runs their applications using a thin client. The server then returns the output of the application to the user. On GNU/Linux systems (and other UNIX/UNIX-Likes for that matter) this is typically accomplished using X11 forwarding over SSH. Such a system typically provides the following advantages over standalone workstations:

  • Lower cost per. seat.
  • Easier software upgrades.
  • Fewer hardware failures, as the individual clients can be very simple hardware-wise. However, they do also have some major disadvantages:
  • Typically no or poor hardware acceleration.
  • A single point of failure, either in the server or the network (switch/router).
  • Something else that’s worth considering is that some of the benefits of terminal servers are diminishing, the price of normal x86 desktops and laptops have decreased dramatically in the last 15 years. Which may be a major contributing factor to the decreasing popularity of terminal servers, Linux or otherwise. Why bother then? Terminal servers may no longer be attractive to people working with demanding multimedia workloads or even software development, but in my opinion, they can still serve a purpose in 2019. That being in places that generally have fewer computing resources, both hardware, and staff, my main examples being public schools and libraries. Both environments where ease-of-maintenance and cost are very important. Think about it, a moderately powerful server and a bunch of Raspberry Pi as thin clients would be perfect for a school or library on a tight budget. They may even already have some older desktops, in which case they wouldn’t even have to purchase new hardware as any PXE-boot capable x86 machine can function as a client.

The software

LTSP

The most popular Linux terminal server solution seems to be the Linux Terminal Server Project or LTSP for short. Which has the following key features:

  • Wide range of software support, it can be used with any of the Popular distributions, including but not limited to Debian, Ubuntu, Fedora, Gentoo, and openSUSE.
  • Supports both thin-clients and so-called “diskless clients”, which we will come back to.
  • Very easy management of client images using a chroot and then your package manager and text editor of choice.
  • Relatively easy setup, requiring only a bit of networking know-how.
  • Easy to integrate into existing environments using LDAP/AD due to client authentication being based on PAM.

General setup

LTSP clients, both thin and diskless, boot using PXE. Which, in short, is a way for a DHCP server to point a booting machine to a TFTP file server on the network, which in turn provides the machine with a bootable binary image, that then bootstraps a Linux system using an NBD (network block device) as root. The user is then shown the LDM login greeter. What happens when the user logs in are dependent on the type of client being used.

Thin clients

A thin client will authenticate on the server over ssh and then forward the clients display to an X11 session running some desktop environment or window manager on the server. LTSP also provides some nice additions that make Mass storage devices, sound, and CUPS printing play nice over the network.

Diskless clients

DebianEDU, originally SkoleLinux is a Debian Pure Blend that provides a preconfigured system that contains amongst other things:

DebianEDU / SkoleLinux

DebianEDU DebianEDU, originally SkoleLinux is a Debian Pure Blend that provides a preconfigured system that contains amongst other things:

  • A preconfigured LTSP setup
  • A preconfigured LDAP server
  • A web based LDAP management interface called GOsa2
  • Great documentation for everyday use and maintenance.

As well as all of Debian’s normal attributes: vast software catalog, rock-solid stability, great package management, lots of great documentation, etc.

X2Go / Nomachine

X2Go and it’s proprietary sibling Nomachine both use versions of Nomachine’s NX protocol, in functionality they can be compared to Microsofts remote desktop features that are built into Windows.

They work by using client software installed on top of existing operating systems, they have clients available for Windows, Mac, and Linux. They also provide an Xsession that can provide a more terminal-server like experience on Linux systems.

The performance between the two seems about comparable, although we only tested with a few clients at a time. It should be noted however that Nomachine is proprietary, and as such, I wouldn’t recommend using it, and I certainly wouldn’t force it on my fellow students.

My experiences with the various solutions

I will go over my experiences with the different solutions in chronological order since that seems most sensible.

DebianEDU

DebianEDU is what got my attention in the first place, It seemed like the perfect solution for our school. We installed it on some old server and After spending about a week playing around with it and reading the documentation we had a pretty good understanding of the overall structure of the system. In part due to the quality of the documentation, which included the following illustration, that I think does a good of explaining the structure of a typical terminal server setup. With a mix of thin and diskless clients, and with some machines running completely different OS’s That have been integrated into the system.

DebianEDU Architecture

However, we began to run into problems as soon as we tried to tweak various settings and customize the overall system due to not understanding the configuration of the various parts of the system. We decided to try to configure a similar system from the ground up to try and get an understanding of the individual parts of the system.

Custom LTSP setup

We decided on Debian pretty early on in part because of our familiarity with it, and in part, because all the necessary components are packaged for Debian. Probably because of DebianEDU.

Proxmox

Some of our early experiments with vanilla LTSP were on bare metal, but because of the experimental nature of our approach, we frequently messed up and had to redo work. Because of that and a server upgrade to two used Dell R710’s we decided to virtualize our servers instead, which gave us the ability to take snapshots of our machines, and roll back to them when we messed up. Another advantage that this approach brought was that is made it easier to separate different parts of the system.

For instance, we ran our LDAP server and LTSP server on two different VM’s we also moved our users’ home directories to an NFS share on the host instead of keeping them on a qcow image.

LDAP and GOSA / Fusiondirectory

One of DebianEDU’s best features is it’s web-based user and group management interface called GOsa2, although it seems like it ceased development years ago. There exists a newer fork called Fusiondirectory that we installed in our own system. We even wrote our own program to scrape user data from Lectio, our schools Student Information System, and format it in a CSV file with the right structure and data for use with Fusiondirectory.

Fusiondirectory

X2Go

Around the same time, we started playing around with X2Go to give students the ability to access a similar system to the one in the computer lab from home and give them access to the same tools as they would have in the computer lab.

Nomachine

We didn’t end up spending much time with nomachine, due to it being proprietary. But the technology itself is very good and can be had with X2Go, so we didn’t see much point in pursuing it further, It was also WAY out of our budget.

Conclusions

DebianEDU

Although It didn’t end up fitting our use case I think DebianEDU lives up to it’s stated mission goal almost flawlessly:

Create a complete solution: provide a complete educational software solution suitable for real scenarios, entirely free.
Reduce technical barriers: The best way to reach wide spread is by easing installation, use, maintenance and administration. Debian Edu/Skolelinux should work out-of-the-box.
International scale: as part of a collaborative project, it is essential to offer as many close to native-level translations as possible.
Educational software ecosystem: it is necessary to locate, package and classify educational free software.
Teaching documentation: it is important not only to provide a great platform but to provide documentation on how to better use it for teaching.

LTSP

My experience with LTSP has been very good, with one glaring exception. The documentation is very poor in some areas. Especially around the diskless clients. (Note: As far as I can “Diskless client” is a DebianEDU term, most other resources refer to them as fat-clients.)

Thin clients

Thin clients in their current form are very useable for office work and other light desktop tasks such as programming. But the experience slows to a crawl the instant you try to do anything even remotely graphically demanding. Which means they are useless for some tasks, including ones that are essential for our school, including game development in Godot and 3D modeling in Blender.

Something to consider is that a modern implementation with video compression and decompression (like valves steam in-home streaming) could have performance comparable to a diskless client. Although it would be heavier on both ends.

Diskless clients

Diskless clients have the same management and maintenance advantages as thin clients, as well as the performance of a standalone desktop. However, they cost almost the same as a normal desktop. They are in spite of that, the solution we ended up choosing.

X2Go / Nomachine

We are still playing around with X2go for remote access, but so far it seems like a great solution. We just have to integrate it into our existing system.

The future

After spending a significant amount of time working with and learning about different types of Linux based terminal servers. I have some thoughts on the topic in general.

In general

Although Terminal servers have decreased in popularity over time, the general idea of inexpensive clients connecting to more powerful centralized computing resources is still popular. An example would be Google’s Stadia gaming platform that was announced earlier this year.

Cloud computing like Google Drive and docs with inexpensive laptops like Chromebooks could also be seen as a similar general concept.

Diskless clients, however, given the right circumstances, might have a bright future ahead of them.