Apparatus and methods for synchronizing a distributed mirror. A computer
system incorporating the invention may divide a mirror source into N chunks, assigning
N storage processors responsibility for respective chunks of the mirror. The storage
processors then may communicate among themselves to synchronize a distributed mirror.
The storage processors may communicate mirror source blocks or their addresses
and host-initiated (user) data requests. A storage processor may assist the synchronization
of a mirror. The processor may accept responsibility for a chunk of a mirror source
and communicate with a second storage processor responsible for another chunk of
the mirror source to synchronize the mirror. The storage processor may track addresses
of source blocks currently in use for synchronization, as well as addresses of
source blocks to be synchronized after the blocks currently in use for synchronization.