This basic spec have been implemented in gutsy. Next step is presented in LDMLoadbalancingSupport .

Summary

We will enable the capability to use multiple application servers. The goal is to spread the load by redirecting sessions on available servers.

Rationale

Currently, it is difficult to support more than a single log in server with LTSP. Supporting multiple servers will make it possible to scale to larger networks by adding additional servers and provide some server redundancy.

Use Cases

Scope

Design

The role of choosing the server will be done by the thin-client, if there is more than one server in the known server list. It enables the possibility to let the user chose himself the server he wants to use. If the user doesn't select a server, then the session will be started on a random server in the known server list.

The client should be resilient to unavailable servers. If automatic mode is used, the terminal should try another server in the list. Unavailable servers shouldn't be selectable in the list of available servers. If no servers are available, then the user should be informed.

This design exclude the use of a network balancer like LVS, because it doesn't support the possibility to let the thin-client chose the server. Also, it needs a deep knowledge of networking, so it makes the solution complex. We want to avoid this complexity because the design should be simple and easy to use for the administrator.

Servers list may be ip addresses or DNS names. This assume that name resolution is working on the thin-client.

Implementation

There is an implementation of this concept here : LDMLoadbalancingSupport. This architecture has an algorithm of the second order, in which each clients pools every servers in a while. We should avoid pooling on a periodic basis to avoid unecessary load.

The variable LDM_SERVER will hold the servers names or addresses, each separated by spaces.

Automatic load distribution and balancing

Provide a script which pick a random server in the list of available servers. Allow administrators to use a custom script for more advanced load balancing. Include a hook in LDM to get a list of servers from this script.

Manual server selection

LDM should be modified to let the user select which server to log in to. When selecting a menu entry, a modal window opens. Available servers are listed in a table, with a rating. Unavailable servers are grayed. The user can chose in the list and click ok. The user can chose to select the automatic mode, then the server list is grayed completely.

Application server specific settings

Create an ldm-server package which includes ldminfod and other parts of ltsp-server only applicable to LDM sessions.

What about ssh hosts keys? There is a problem there, because each server's host key must be copied to the client root, and it's a bit more complicated since there are multiples servers.

The solution have been to copy each hosts key from every servers into one directory on the primary server, and they are managed by the update image script.

Outstanding Issues

BoF agenda and discussion


CategorySpec

SimpleLDMLoadBalancing (last edited 2008-08-06 16:36:45 by localhost)