All block data replication schemes are not created equal. Some are implemented as part of the storage array, others...
as part of a host server and still others within the network. Replication can also happen synchronously--where the local application waits for confirmation from the mirror before a write is completed--or asynchronously, where there can be some lag between the source and the target data. The following matrix shows some sample replication products and where they fit in. (Note that some of these products may be applicable in more than one box.)