Using ASR Multicast
Now that we've talked about why ASR multicast is advantageous, the question becomes this: How do I use it? The first step, as with all previous versions of ASR (all the way back to the days before Mac OS X), is to configure the workstation that will serve as the source for the image. The second is to create an image of that workstation's hard drive. Because you can't create an image from the same hard drive that was used as a Mac startup disk, you can either boot the source workstation from another disk—such as a different hard drive or partition (internal or external), a NetBoot image, or a Mac OS X install CD/DVD. You can also connect the source workstation to another Mac via Firewire and start it in Target Disk Mode (by holding the T key at startup) so that it appears as an external hard drive to the second Mac, which can handle the task of creating the image. Once booted from an alternate startup disk, use Disk Utility or the hdutil command-line tool to create a "read-only" or "read-only compressed" image file (the Disk Utility help and the hdutil man page provide solid documentation for this).
Making the Image Ready for ASR Multicast
The next step is to scan the image for use with Apple Software Restore. Traditionally, this process has calculated checksums for the data in the image so that ASR can verify that the image was deployed properly and has been part of the process as long as ASR has been available. For multicast ASR, scanning the image also reorders data in the image to allow the image to be sent as a multicast stream. This means that you use the current ASR command-line tool to scan the image to be able to deploy using multicast. You can use existing disk images (that is, those that predate Tiger or those created from pre-Tiger Mac OS X versions) with multicast ASR. You will, however, need to rescan those images for use with the Tiger version of ASR to be able to do so.
To scan an image for ASR, use the imagescan argument to the command line tool, as follows:
asr -imagescan image.dmg
Putting the Scanned Image Out There for All Your Macs to See
Once the image is scanned, it can be accessed by unicast ASR sessions by any workstation that can access the image. You will, of course, need to boot from a disk or partition other than one to which you are deploying the image (such as an external hard drive, NetBoot image, or Mac OS X install CD/DVD). To initiate a unicast ASR session, use the source and target arguments for the ASR application. Also, use the erase argument to erase the target disk before deploying the image (as you would do for most deployments). For example:
asr -source afp://fileserver.com/image.dmg -target /Volumes/MacintoshHD -erase
To start a multicast ASR session, there are two steps that need to be completed. First, you need to create a configuration file for the session (this file can be stored and used for later sessions). Second, you need to run ASR with the server argument to initiate the multicast session.
The configuration is required and specifies several key elements about how the multicast session runs. It is created as a standard property list (.plist) file and can be created by a text editor or using the Property List Editor utility. Two keys are required—Data Rate and Multicast Address—but additional keys are supported to specify functionality.
Data Rate should be entered as an integer (number) and specify the maximum data rate at which the image content is streamed in bytes per second. Typically, for 10 megabit connections you should be able to set this to 600000, for 100 megabit—6000000, and for gigabit—12000000. However, mileage may vary depending on your network hardware and configuration. If you find that these generic data rates do not function well in your environment (that is, clients cannot restore the image properly or take several passes of the stream to restore the image), you might want to try setting the data rate lower.
The Multicast Address should be entered as a string and is the IP address range that will be used for multicast transmission. The Internet Assigned Numbers Authority (IANA) has designated a large block of IP addresses as class D addresses for multicast use. You can check with your network administrator to see which multicast addresses are available in your infrastructure. If you are the network administrator and are uncertain, check with your network hardware vendor and/or IANA's Web site for known reserved addresses.
The following figure shows a properly formatted plist file, created using Apple's Property List Editor (included with Mac OS X in the Applications/Utilities folder).
You can optionally adjust the following: the data rate at which workstations receive the image data, whether the session is broadcast via Bon Jour (a.k.a. DNS Service Discovery), the time-to-live setting for the multicast packets (relevant only if you are multicasting across routers as this designates how many hops across routers the packets in the data stream can make), the network interface of the Mac from which the session is transmitted (if there is more than one network port—by default the built-in Ethernet port, identified as en0, is used) and the port number on which workstations communicate with the computer running the multicast session for initial connection and metadata transmission (by default this is port 7800). More information on these options is included in the ASR man page.
Once the configuration file is created, you initiate the multicast session using the server argument for ASR and specifying the image and configuration file, as shown in this example:
asr -source multicastimage.dmg -server configuration.plist
The computer will wait for a request from a workstation for the image before it initiates the multicast stream. Once a workstation connects to the stream, ASR will continue streaming until you kill the ASR process.
Making the Connection
To connect to an ASR multicast session from a workstation, you run ASR much as you would deploy a unicast image. However, instead of specifying the path to the image on a file server, specify the address of the server using asr multicast as the protocol. Also, you are required to use the erase argument when connecting to a multicast session. For example:
asr -source asr://myserver.com -target /Volumes/MacintoshHD -erase
Once connected, you will see a progress indicator in the terminal window for each pass of the stream the workstation receives. Missing sections will be noted by an x between percentage markers, and successfully received sections will be noted by a period. Once the workstation receives the entire image, it will disconnect from the stream and display a message that the image was successfully restored (deployed) to the designated hard drive or partition.