A flexible data mirroring system and method are adapted for use in a data
processing system having first and second data storage devices. Upon
receiving notification of a file update to be written to the first data
storage device a mirror mode and mirror event associated with the updated
file are determined from mirror information that has been provisioned on
a per-file, per-directory or per-volume, etc. basis. The file update is
mirrored to the second data storage device according to the provisioned
mirror mode and mirror event. If the mirror mode is continuous, the
mirror operation proceeds immediately. If the mirror mode is discrete,
the file update is noted and the mirror operation proceeds following
occurrence of the file's mirror event.