February 24, 2021
Hot Topics:

MOSIX: Linux Clusters without the Pain

  • By Joshua Drake
  • Send Email »
  • More Articles »

It seems that everyone today is either running a cluster or wants to run a cluster. One of the more popular operating systems for implementing clusters is Linux. Linux offers the performance and cost benefits that other operating systems such as Solaris and UnixWare can not compete with.

Clustering and its Benefits

A cluster is a series of multiple machines that are designed to work together as one. As an example, you could purchase a 4 CPU machine from Penguin Computing for approximately $20,000, or you could build four separate machines that basically equate to a $20,000, 4-Way SMP machine for $8,000. The upside to a Linux cluster is the ability to build large powerful machines using commodity hardware. The downside is that your applications have to be written with specific libraries such as MPI and PVM.

If you are writing a custom application, using alternate libraries is fine; but what if you are running a stock application such as Povray for 3D rendering? What if you are running a high-end threaded Java servlet application for e-commerce? What if you want to increase the development and decrease compile times of a large project? In all these cases, a linux server cluster can help you out.

Introducing MOSIX

This is where MOSIX comes in. The MOSIX cluster is designed to run like an SMP machine. It utilizes a "fork and forget" method of dealing with large nodes. MOSIX handles the optimizing of the resources across multiple machines.

MOSIX is an open source project that runs on Linux. The current supported version of the kernel is 2.2.16. It will compile cleanly on a vanilla system and is most widely tested on RedHat and SuSe. It can handle up to 65,535 individual nodes. Mosix is available from its Web site, http://www.mosix.org. It is a small download including the source code to patch your Linux kernel and the secondary programs such as tune and mon.

Installing MOSIX

The MOSIX installation process is very simple. The only real requirement is that the kernel is still a virgin kernel source. In other words, you have a source that is not modified from the original Linux distribution of the kernel. Even if you installed the kernel source from your distribution, I suggest getting a new kernel source from http://www.kernel.org. After unpacking and installing the new kernel source, you can proceed with the MOSIX installation.

The MOSIX installation is based on a file called mosix.init. The file will be in the same directory as the unpacked MOSIX distribution. I was surprised when I executed mosix.init. The program, although terminal-based, is straightforward. The first question it asks is the type of installation you would like to perform. Since I had not installed MOSIX before, I chose the Compile and Install MOSIX from Scratch option.

The MOSIX installation

After selecting the option, it will ask you some other questions, such as where your kernel source is located. It also prompts you for the type of configuration you would like to use to configure your kernel. As I don't have TCL/TK installed, I choose menuconfig. Once you select your configure option, mosix.init will spawn the correct configuration program.

MOSIX configures your kernel

When menuconfig starts, the first option on the screen was the choice of MOSIX parameters. After selecting the MOSIX option, you have the choice to select each of the parameters that are applicable to the MOSIX kernel patch. Every option is described adequately enough with the online help documentation that is part of menuconfig.

Kernel options for MOSIX

After you complete and save your kernel configuration, the mosix.init program will take over again. It provides a nice little status indicator on the kernel compilation and the compilation of the external user space utilities.

MOSIX kernel build status

Once mosix.init has completed its tasks, it installs the software and drops you back to the prompt. This is the one part where I had trouble. The software walks you through everything so well that I felt like I had done something wrong. It had not yet asked me what machines I wanted to be part of the cluster, nor was I sure what else it had done. Of course, it was all explained in the README files--files that I hadn't read yet.

Page 1 of 2

This article was originally published on October 13, 2000

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date