Chapter 1. Introduction to SystemImager®

1.1. SystemImager Overview

SystemImager, a component of the System Installation Suite, is software that automates GNU/Linux installs, software distribution, and production deployment.

One key feature of SystemImager is that it is distribution-agnostic and is able to support heterogeneous hardware. This allows the deployment of any kind of GNU/Linux distribution (standard or even customized) to any kind of target machine. The main goal of the project is to make deployment of large numbers of computers easy. Typical environments include computer labs and render farms, but SystemImager has proven particularly popular in clustered computing environments, such as grid and high performance computing.

Another design feature that facilitates GNU/Linux distribution and hardware independence is that SystemImager works with file based (rather than block based) system images. An image is stored as a directory hierarchy of files representing a comprehensive snapshot of a machine, containing all the files and directories from the root of that machine's file system. Images can be acquired in multiple ways, including retrieval from a sample system (golden client), or by direct generation on the SystemImager server using third-party tools.

The standard method of image creation involves cloning of a pre-installed machine, the golden-client. In this way, the user can customize and tweak the golden-client's configuration according to his needs, verify it's proper operation, and be assured that the image, once deployed, will behave in the same way as the golden-client. Incremental updates are possible by syncing an updated golden-client to the image, then syncing that image to deployed machines using the si_updateclient command. Images are hosted in a central repository on a server, called the image-server, and they can be distributed among the clients using different transports: rsync (the default), multicast (via Flamethrower1), SSL encrypted rsync (using a SSH tunnel), and via BitTorrent.