Using the FOSSIL Lab

D-Term, 2008

Hugh C. Lauer
Adjunct Professor
Worcester Polytechnic Institute

The Fossil Lab (Free, Open-Source Software Laboratory) is WPI’s laboratory for academic computing projects that are too risky to carry out on the university’s normal computing facilities. It is set up to allow experimentation with operating system kernels, network protocols, security, and other aspects of computing systems.

In late 2007, the Fossil Lab was completely refurbished with new computers, a new server, and a gigabit network. The laboratory itself is situated in Room B17 in the basement of Fuller Hall (behind the main staircase). It includes 30 Dell computer workstations, each with a dual-core Pentium processor, 2 gigabytes of RAM and approximately 350 gigabytes of hard disk space, and a gigabit network connection. The Fossil server is located in the CS Department server room; it supports the Fossil workstations and acts as a gateway and firewall between the Lab and the rest of the WPI campus network.

Instead of working directly on the Fossil Lab hardware, students will use virtual machines. A virtual machine is an application program capable of simulating a computer with enough fidelity and performance to mimic an actual hardware system. It simulates the microprocessors, memory, disks, network connections, CD drives, and many other devices. Among the advantages of using virtual machines are:–

·        Virtual machines provide safe environments for learning by doing and for making mistakes. Students can corrupt their virtual machines without fear of damaging the underlying hardware or systems or of corrupting other systems in the laboratory or on campus.

·        A virtual machine can be run on any workstation in the laboratory. It can be suspended, the student and leave the lab and return later, and it can be moved from one workstation to another before being resumed.

·        A team of students can set up n virtual machines on m workstations (where m ≤ n) and develop distributed computing projects that mimic real distributed systems.

·        Each course may set up its own operating system and application environment in its own virtual machine, to be cloned by students.

·        Multiple courses may use the Fossil Laboratory during the same term with different virtual machines, subject only to capacity and resource constraints.

·        Virtual machines are easier to keep up to date than hardware and easier to tailor to specific course requirements.

Virtual Machines

Each Fossil Lab workstation has Windows XP and VMware Workstation installed. VMware Workstation is the application program that actually runs a virtual machine. The virtual machine itself is represented by a set of files in a folder in the user’s directory.

Two terms are used in virtual machine technology:–

·        The host system is the hardware and operating system on which the virtual machine application runs — e.g., your own or a Fossil Lab PC running Windows.

·        The guest system is the simulated machine, which runs a different operating system and set of applications — e.g., Linux running on VMware on your Windows PC.

The virtual machine application uses the host processor to simulate the guest processor, and it uses files on the host system to simulate disks on the guest system. It also simulates other hardware in the guest system, sometimes by using host hardware directly. For example, a virtual machine can be configured to allow the guest system to directly access the CD or DVD drive of the host system and/or your USB Flash Drive.

VMware is a company that makes and sells virtualization systems for commercial and scientific applications. VMware Workstation is a virtualization application designed for Windows and Linux personal computers. It can be used to create new virtual machines and to run existing virtual machines. It supports dual processors, multiple disks, network connections, and a variety of peripheral devices common to modern PCs. It includes the ability to take snapshots of a virtual machine and to role the state of that machine back to the snapshot. It also includes the ability to clone a virtual machine – i.e., to make a copy of it.

Supporting the Fossil Lab workstations is the Fossil server (fossil.cs.wpi.edu). This runs Linux and is used as a repository for virtual machine files and folders and for students’ working directories, as an authentication system for Fossil Lab users, and a firewall between the lab and the rest of campus.

Installing your virtual machine

As a member of the class, you will have an account in the Fossil Lab with the same login ID as your login ID on the CCC computers, but with a special password. When you login in for the first time, you should change your password to something you can remember. The Fossil server and Fossil workstations use the same user ID and password, even though one runs Linux and the other runs Windows.

When you log in to a Fossil workstation (a Windows PC), you will be presented with a desktop that contains two remotely mounted disks. The H drive is your home directory on the Fossil server. You have read-write access to this, and it follows you to whichever Fossil Lab PC you log into. The P drive is the public directory on the Fossil server. You have read-only access to this.

To install your virtual machine, navigate to the directory and file specified by your instructor — specifically, to a VMware Configuration File. This will usually be on the P drive. Double click on the file to open it and start VMware Workstation. This should open a window resembling the following:–

This window depicts the master virtual machine for your course. The virtual machine is write-protected, so you will not be able to use it directly. Instead, you will make a clone for your own use and store it in your own directory. The window specifies the path name of the configuration file for the virtual machine, the memory size, number of processors, virtual disks, and other characteristics. For example, the virtual machine above has 1024 megabytes of RAM memory, three hard disks, a CD-ROM drive, a floppy drive, and Ethernet interface, a USB drive, and two processors.

The entire virtual machine is described by the VMware Configuration file that you just opened. It is a text file, so you may peruse it if you wish. However, there is not normally any need to edit it, because all of the changes you need to make can be made through the VMware graphical user interface based on the window above.

To create your own copy of the master virtual machine, click on Clone this virtual machine in the left-hand panel. This will bring up the Clone Virtual Machine Wizard. Click Next in the Wizard window and also in the Clone Source window that follows. Eventually, you will see the Clone Type window, shown below.

A linked clone takes up much less space than a full clone. Specifically, the linked clone includes copies only of the virtual disk blocks that are different from those of the master. The rest of the disk blocks are linked back to the master. When you are working in the Fossil Lab, you will always have access to the master, and therefore it is worthwhile saving the space. A typical linked clone requires 2-3 gigabytes of disk space, which means that a student could have more than one in his/her Fossil server directory.

A full clone is a complete, independent copy of the master. That is, every block of every file is copied. For example, the full clone for the CS-3013 operating system course typically requires about eight gigabytes. If you intend to run your copy of the virtual machine on your own PC or laptop, you must have a full clone. Even in the Fossil Lab, there may be specific circumstances of your project that recommend you to make a full clone.

After you have selected the type of clone, click Next to take you to a dialog box in which you will name your virtual machine and assign a file location to store it. In the Fossil Lab, you should store the virtual machine either in a folder on your H drive (or your desktop) or on hard drive of the host system.

·        A virtual machine stored on the hard drive of a particular workstation is only available on that workstation. You may end up competing with other students for access to that workstation. In courses with more students than Fossil workstations, it is bad form to bind your virtual machine to a particular workstation unless the professor authorizes it.

·        A virtual machine on your H drive will be part of your Windows profile and will show up on your desktop, no matter which workstation you log into. It lives on the Fossil server, which in convenient for portability, but which may be challenging for performance during periods of heavy usage.

After you click Next, VMware will create a linked copy of the virtual machine in the specified directory and then return you to its main page as shown above. You will notice that a new tab has been added to this page for your virtual machine.

If you were to list the directory where you stored your virtual machine, you would find something resembling the following:–

The files with names starting with Home, Home2, and SUSE Linux are clones of the files with the same names in the master virtual machine. These implement the disks a virtual machine of a previous course. You will notice that they are quite small right now, even though the combined storage of the master and clone virtual machines exceeds six gigabytes.

Starting your Virtual Machine for the first time

In the main VMware Workstation window, under the tab for your cloned virtual machine, click Start this virtual machine. This will cause the virtual machine to boot up and eventually to display the boot screen for the guest operating system. For example, a virtual machine with an OpenSuse Linux 10.3 guest has a boot screen resembling the following:–

If you do nothing at this point, the guest operating system will usually boot its default option. If you need to control the boot options, do this by clicking in boot screen, then using the arrow keys to select the desired option, and finally pressing Enter.

Note:  You transfer the input focus of the mouse and keyboard to the virtual machine by clicking in its window. You can return the input focus to the host desktop by typing CTRL-ALT. If the input focus is in the wrong place, the virtual machine and guest system won’t hear you type or move the mouse.

            Once the focus is in the virtual machine, you may use the up and down arrows to and other keys to invoke various booting options, as if you are running on real hardware.

You may run the virtual machine screen in a window of your host machine desktop, or you may have it take over the entire display (often the more desirable option). If you wish it to take over the entire display, press CTL-ALT-Enter. Later, if you wish to return it to a Windows display, press CTL-ALT-Enter again.

Note:  When you are running your virtual machine in full-screen mode, a fragment of a Windows menu bar appears at the top of the screen. This lets you access useful VMware commands, including the VM menu of the VMware Workstation application.

            CTL-ALT-Enter is a very fast, effective way to switch back and forth between the host and guest operating systems.

If needed, a login ID and password for your guest operating system will be provided by your instructor. You will probably also be given the root or administrator password, so that you can change administrative settings of your guest system. Fortunately, these have no impact on your host system.

Useful Features of Virtual Machines

Snapshots

A highly useful feature of VMware Workstation is the ability to take snapshots. This is accessed from the VM menu of the Workstation application (and also from the menu bar at the top of the full-screen mode display). When you take a snapshot, you are recording the state of your virtual machine for future use. Later, after you have crashed or corrupted your disk beyond belief, you can restore it to a previous state by invoking the Snapshot command in the VM menu.

To make a snapshot, VMware uses the same mechanism that it uses to make clones. That is, a record of all of the disk blocks is made, and any future changes to a disk block are made to a new copy of that block. Later, to revert to a snapshot, the copied blocks are discarded and the original blocks are used. Conversely, if a snapshot is deleted, the copied blocks and original blocks are merged so that the most recent state is preserved. VMware manages the links and copies automatically for you, so you don’t have to keep track of them yourself.

It is possible to have snapshots of snapshots, recursively, but it is not advisable because performance can suffer.

Suspending, Restarting, and Moving your Virtual Machine

Another highly useful feature of VMware is that you can suspend a virtual machine and resume it later. Simply use the Suspend sub-command of the Power command of the VM menu. Moreover, you can log out, leave the Fossil Lab, return later, log into a different Fossil workstation, and resume your suspended virtual machine, provided that it has been copied to the new workstation.

When you do resume it, you may get a dialog box saying that VMware noticed that your machine is in a different place than before and asking if you copied or moved it. Respond to this dialog saying that you moved it.

The reason for this dialog is as follows:– If you copy a virtual machine, VMware takes care that the MAC address of its Ethernet interfaces are changed, thereby preventing the calamitous situation of multiple machines in the same network with the same MAC address. Changing a MAC address may require the network to be reconfigured in the guest operating system — a nuisance at best. By contrast, if you move the virtual machine, it keeps its same MAC address and the guest operating system is unaware of the move.

Note:  You virtual machine is configured for “bridged” networking. Under this type of networking, it is completely indistinguishable on the network from a physical computer running the same guest operating system. Packets are routed directly from the host network card to the virtual network card, without being handled or modified by the host system or the VMware application. It is anticipated that you will not need to use the other networking options in the Fossil Lab.

VMware Tools and Shared Folders

Your instructor may have installed VMware Tools in your guest operating system. This is a set of drivers that improve the performance and operation of the guest operating system in the virtual environment by setting up some private channels between the host and the guest systems.

The most useful feature of VMware Tools is the shared folder between the host and the guest. This is a folder that lives in both the host and the guest operating systems. You can move files into it from one system and take them out from the other, in either direction.

In Linux guests, for example, the shared folder is mounted in the directory /mnt/hgfs. You will need to “enable” sharing in your virtual machine configuration and specify which host folders you want to share.

Another feature of VMware Tools is to keep the clock of the guest system up to date with respect to the host system. Still another feature is the ability to compress a virtual disk, thereby recovering file space in the host system.

VMware Player

VMware Workstation is a product that must be purchased, but VMware Player is a freeware subset that can be used for many purposes. VMware Player does not have the ability to create new virtual machines or to take snapshots, but it can run a virtual machine created by VMware Workstation or any of VMware’s higher end products.

If you wish to use VMware Player on your own PC, start by making a full clone of the virtual machine for your course on a Fossil workstation, then zip its folder and burn it to a DVD, and finally expand that DVD on the PC where Player is installed. You can then start the virtual machine by navigating to and double clicking on its configuration file.

If you are skilled enough (and brave enough) to try it, please consult the web pages of CS-502, the graduate operating course at the following URL:–

            http://web.cs.wpi.edu/~cs502/f07/#_Virtual_Machines

Note that when VMware asks, you will have to say that you copied the virtual machine, so that it assigns a unique MAC address to its virtual network card.

Conclusion and Documentation

That’s it. Enjoy your virtual machine. You are now ready for your first course project.

There is a lot of documentation about VMware Workstation and other VMware systems here:–

http://www.vmware.com/support/pubs/