Thursday, May 03, 2007

Fun with NetBoot: NetInstall Durations

As mentioned in previous postings, I have been working lately with NetBoot for a mobile Macintosh Lab (made of several 17" Mac Book Pro Core 2 Duo machines). The intention is to set up several images that can quickly be deployed for each class with different setup requirements. There are three requirements for this imaging process to work properly:

1. Quick Deployment
2. Mobile Deployment
3. Simple Deployment

The Image Size Factor
Quick deployment depends entirely on the image that is being used, or rather the size of the image. For instance, a minimal Mac OS X install with no additional software (iLife, iWork, etc.) is 3.2 GB in size. This is just the operating system, no additional printer drivers or anything like that. The basic install with all the trappings comes to 10 GB total (for Mac OS X 10.4.7 or higher). This includes all the drivers, software, everything. Some classes, such as Final Cut Pro, has a total file size of 18 GB.

The size of the image can be problematic, as traditional imaging tools (i.e. Disk Utility) has had trouble with the larger disk images. In order to make a viable disk image for deployment it has been necessary to look for an alternative.

The best imaging tool I have been able to find has been NetRestore Helper, which comes with the NetRestore software. It's free and open source, which means you can feel good about using it. The tool let's you create a Master image, or an Install image, depending on what it is you want to accomplish. I have always used the Master Image, because you can create a NetBoot or NetInstall image from the System Image Utility, part of the Mac Server tools (free download from, or on your Mac OS X Server install DVD). You can also use the Master Image as part of the NetRestore image system.

Image Options: NetRestore
NetRestore, as mentioned previously, is an open source tool that basically lets one image their machine, similar to Ghost. Basically, you select the master image you want to use, and then NetRestore will start installing that on your Macintosh using the ASR command line utility. It makes the imaging process easier from a single machine perspective (doesn't take nearly as long as Disk Utility), and it can be deployed through any storage media, as long as you have a running version of OS X on the machine.

It can also pull images from file server mount points, so you don't have to have the image files locally on the machine. That's ideal for imaging large numbers of computers at once. If you were in a corporate environment, this could be a solution to look into.

I initially looked at this as being a potential solution for the lab environment I was trying to manage, because it was so simple to operate. The problem is, it's not simple to set up. I have as of yet been unsuccessful in getting NetRestore to image off of a NetBoot image (i.e., you boot to a NetBoot image with NetRestore on, and then image the machine based on a network mount point). As time was running out, I needed to come up with another solution.

Image Options: NetInstall
The alternative was a lot more simple than I could imagine. Why not make NetInstall images, and let the machines do all the work? Well, the process has been used before on this lab, but was slower because of certain settings, which could be thankfully changed.

Instead of setting up a NetInstall image that required a user to authorize the install, I set up an automatic install image with no user input required. The process was simple, and the results were fantastic. There is a caveat to this, though. Should anyone try to boot off of the NetInstall images that shouldn't, their machines will be automatically erased and set up with the selected or default image. So there are some drawbacks to this set up.

Also, if you intend to have a NetBoot or even a NetInstall deployment, you need to make sure you have at least a 100 Base-T switched network (1000 Base-T Network is preferable), and 128 MB RAM for your machines.

The Install Time
I spoke before about deployment time being an issue. It needs to be as short as possible, and allow for as many machines as possible to work at once. Well, That was very easy to do with this setup. Here is how it broke down:

For Basic Install with some software (7.6 GB Image)
1 machine: 7 minutes
5 machines: 10 minutes
10 machines: 18 minutes

For Final Cut Pro Install (18 GB Image)
1 machine: 27 minutes
5 machines: 36 minutes
10 machines: 56 minutes

So you can see the deployment has been well timed, though at about 10 machines the lag became quite a lot for the Mac Pro server that was being used. If you are using an Xserve, then the lag shouldn't be as pronounced.

Mobile Deployment
Now, once this has been tested and proven, it was time to test out a mobile setup. One thing that is nice about the requirements for Mac OS X Server, it can technically include a Mac Book Pro (though not supported by Apple). So, if you need to you can install Mac OS X Server on a laptop, and you have an instant NetBoot server for mobile deployment.

So, in conclusion:

1. NetInstall works fast if you have an auto-install option selected while creating the NetInstall image.
2. Installing Mac OS X Server on a Laptop makes for a really nice mobile deployment solution.
3. NetInstall is easy to set up (select Option-N at boot for default image, or just N at boot for the first indexed image), and can run quickly.

Overall, it looks like this is the best solution. Of course, using NetRestore Helper to create the images from an existing laptop mounted in Target Disk Mode is essential. ^_^

No comments: