I knew since September that the server caching feature was coming to OS X and I have to say that I was excited to get my hands on it.
It is a great feature that offers bandwidth saving with no client configuration. As always it is better to configure one server than thousands of clients. Don’t you think?
For the caching server configuration the options are few. Basically you can:
Decide how much space you want to dedicate for the cache and on which hard drive you want to store it.
Enable or disable the caching server
Delete all cached updates and apps
This is what the server does automatically without any visual clue for you:
The server launches the AssetCache process as the _assetcache user
A LaunchDaemon is created for the service
The cache server registers online with Apple and provides it’s public IP, your servers local IP, internal DNS name? (not sure of the dns)
It gets in return a validation key to prove to client computers its authenticity
Creates the folder /Library/Server/Caching/Data to store the cached downloads
When a client tries to download an app or download a software update:
Contacts Apple
Apple checks if there is any caching server registered for that public IP
If there is one Apple returns to the client the details of the caching server
The client computer contacts the caching server and requests the update or app
The server identifies itself as a valid/trusted source with the validation key
The caching server downloads the app or update if it doesn’t have it, and then serves it to the client computer
You should know:
For now only 10.8.2 clients get any benefit of this.
iOS devices do not benefit from this service
The caching server caches both App Store purchases and software updates
If a client computer is pointing manually to a custom SUS the caching server is ignored (does this also affect app purchases?)
The SUS service and the caching service do not share their data. You might end up with two copies of all the updates
There is no need for you to re-direct connections using DNS trick anymore
If you are not directly configuring clients to point to your local SUS but using DNS tricks. You will probably end up deleting the local SUS and cleaning the DNS table. The caching server is for you!
Evey 55 minutes your caching server will contact Apple to verify the public IP still the same and get a new token (see next log below)
123
2012/12/09 19:57:39:041 Request for registration from https://lcdn-registration.apple.com/lcdn/register failed: HTTP response 401, body "REQUEST_REAUTH"; retrying with new token
2012/12/09 19:57:39:317 Request for registration from https://lcdn-registration.apple.com/lcdn/register succeeded
2012/12/09 19:57:39:317 Got back public IP xxx.xxx.xxx.xx
There is not much documentation available at the moment. Here you have how the control pane, and by clicking it you’ll download the help page
In case you are wondering, the real log file does not seem to be available from the Server.app for some reason. The server app offers a grep of the system.log instead? bug?
In any case the log file is located at /Library/Server/Caching/Logs/Debug.log and here is a truncated output of first a successful server download for a client and second the server offering an update that was cached already (0 downloaded)