Time Machine Server Requirements
Not all AFP servers support the functionality required for Time Machine backups. In order to support Time Machine, a server must implement the following:
Lock stealing—when the client logs in, it sends the
FPGetSessionTokencommand. Upon receiving this command, if the Type field is set to
kRecon1ReconnectLogin, the server searches through any previous sessions. Previous sessions from the same user that contain a Time Machine sharepoint are destroyed, releasing all locks associated with those previous sessions. Due to the nature of lock stealing, it is recommended that sharepoints designated for Time Machine backups be used exclusively for Time Machine backups and not for general file sharing use.
Client reconnect and state recovery—AFP 3.3 supports a replay cache for correct Time Machine behavior over AFP. Supporting and advertising this cache is required for all AFP Servers that want to support Time Machine. For more information, see AFP Replay Cache, Reconnect, and Reconnecting Sessions in Apple Filing Protocol Programming Guide.
A compliant server must implement the deny modes of
FPOpenForkas mandatory locks.
A compliant server must set the
kSupportsTMLockStealbit in the response to the
FPGetVolParmsfor AFP volumes designated to support Time Machine backups. See the
FPGetVolParmsdocumentation for more information.
A compliant server must support the
FPSyncFork(directory/fork data full sync and commit) AFP commands.
Bonjour discovery—Time Capsule or OS X Server with a Time Machine sharepoint advertises itself through Bonjour as supporting Time Machine backups over AFP. This is required for the server to show up automatically in Time Machine’s preferences pane when you select "Change Disk...".
Each network storage server with suitable AFP share points must register and publish an mDNS service record with a type of
This service includes a
TXTrecord with entries that correspond to an exported volume available for sharing.
The name portion of each entry is a unique key string. The value portion of the entry is a comma-separated list of subkey/subvalue pairs with the subkey and subvalue separated by an equal sign (
=). Each subkey is a 4-character property code (for example,
adVNfor the name of the volume). The subvalue is the UTF-8 text associated with the specified property. Commas (
,) and backslashes (
\) are escaped with a backslash (for example,
\,for a literal comma character).
The following property codes are currently required for Time Machine discovery:
UTF-8 name for the volume. This is also the share name used for mounting the volume.
AirDiskVolumeFlagsas a hex value string.
The flags value should be set to
0x81to indicate that Time Machine is supported on this AFP volume:
AFP is supported for this volume.
Time machine should allow this as a backup destination.
The following is an example of a
TXTrecord for the volume “Backups”:
For more information, see Bonjour Overview.