Case Study: Boot To Web App

This case-study involves, booting all the lab computers over the network, with a Linux kernel and a minimal root filesystem image, using PXE boot. This way each computer did not have to be individually setup. The Tiny Core Linux distribution was used to create a minimal filesystem image, containing the firefox browser.

Problem

The customer provides assessment solutions, where a college computer lab is converted for providing assessments to individuals applying for a job. The lab can have a few hundred computers, which will be utilized for the assessment. The customer had to setup all the hundred computers with their own OS, to be able to take-up the assessment, since they cannot rely on the lab computers own OS. This is a time consuming process, and requires early access to the lab for prior to conducting the assessment.

Solution

The solution provided by us involved, booting all the lab computers over the network, with a Linux kernel and a minimal root filesystem image, using PXE boot. This way each computer did not have to be individually setup. The Tiny Core Linux distribution was used to create a minimal filesystem image, containing the firefox browser.

The PXE boot downloads syslinux through TFTP, and the syslinux bootloader downloads the kernel and filesystem images, through HTTP. The filesystem is designed to startup the GUI, open the browser with assessment server URL.

https://zilogic.com/static/images/boot-to-web-app.png

Given the size of the rootfs, this would work with booting a 50 PCs. But with a few hundred machines the HTTP server will choke, hence for every 50 machines a separate HTTP server is provided. During network boot the PCs download the syslinux bootloader from the primary server, through TFTP, syslinux downloads the kernel and root filesystem image from the associated secondary server, through HTTP.

Project Highlights

Testing in Lab Environment

Testing the setup involved a desktop PC, a primary server, a secondary server at the minimum. To simplify the testing, a test setup was created using three machines emulated using Qemu, connected over a Virtual Ethernet Switch. Each machine played the role of PC, secondary server and primary server respectively.

Single Pendrive Image

The whole assessment lab setup of two hundred to three hundred machines was packed into a single pendrive, which was our deliverable to the customer. The pendrive image can be used to boot the primary server, secondary server from which hundreds of desktop machines, would spring-up through network boot with a common filesystem image.