ASR Multicasting seems to be a mix of solid network infrastructure and voodoo magic. Since I'm currently testing multicasting on our network, I thought I'd write something on my experiences.

I did some further ASR Multicast testing in our 1 Gigbit/s lab using the latest nightly build, and I have to say I'm very pleased with the results. The new individual sliders per workflow are great for testing in these environments, allowing quick changes to be made when trying to determine maximum throughput for any given lab.

I performed the first test using a server data rate of 15 MB/sec and a throttled client rate of around 30 MB/sec, netbooting 15 iMacs simultaneously with Apple Remote Desktop. Notice the huge spike in traffic when the Netboot set is being pushed to all those clients...it took roughly 32 mins to restore a compressed 15 GB image.
Multicast-15MB.png
For the next test I cranked the server data rate up to 25 MB/sec, leaving the client data rate at around 35 MB/sec. It's interesting that the clients seem to throttle up and down depending on the area of the image that is being written to disk (some areas of my image are highly compressed). The main improvement I am seeing is zero packets loss, where as previously I would have a lot of failed images. This same 15 GB image was pulled down in just under 20 mins, ironically the same amount of time it took to restore the XP image that is embedded in the original 15 GB image. The ability to now delay the first client from beginning the restore seems to make a big difference as well, since they now all netboot and have time to stabilize in a more orderly fashion.
Multicast-25MB.png

Things to keep in mind:

  • Make sure you are using ASR-ready disk images (ie. created as Read Only and scanned, DS does this for you if you choose Read Only), or if you choose to use compressed images they will not be scanned by DeployStudio, and must be done manually using Disk Utility after image creation.
  • We have a complicated image, basically embedding our XP image inside the Mac image, and there is a 5 GB virtual Linux machine in the XP image.
  • There is a lot of different advice on what is the best data rate to set for the multicast server but here is what works for me; on our 100 Mbps network I never exceed 8 MB/s on the slider, and that seems to be pushing it sometimes. If you do the math you can see you would totally saturate a 100 Mbps switch at around 12.5 MB/s, so unless you have a Gig network, I'd avoid going over 10-11 MB/s.
  • Packet loss is your enemy...anymore than 20 % and you have a failed image. You can tell you are getting packet loss when you see something like
XDBG failed request for 262144 bytes at position 150456790
in the on screen log. It can only handle so much, so if you see a big streak of these, try lowering data rate. Mike Bombich has a good article on determining the best data rates.
  • The Jan31 nightly build now allows client data rate to be set individually of the server data rate. I have the client rate set to 35 MB/sec for a G5 iMac, and the server data rate to 8 MB/sec on our 100 Mbit/s LAN.
  • A quick way to determine what the iMac client can handle in terms of hard disk drive writing capacity, this will write out a file from the CPU to the hard drive
sudo dd if=/dev/zero of=/tmp/test bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 21.276422 secs (**50466278 bytes/sec**)


--- brianmacpherson brianmacpherson Mar 4, 2009