A method for remote backup includes: mirroring data from a primary storage device
at a first location to a secondary storage device at a second location; taking
a snapshot of the primary storage device and of the secondary storage device; storing
the primary storage device snapshot on a first snapshot volume at the first location;
storing the secondary storage device snapshot on a second snapshot volume at the
second location; updating a data structure to record backup times for the first
and second snapshots and to record locations of the snapshots on the snapshot volumes;
and repeating the above so as to store multiple generations of snapshots. A method
for fast restore uses a selected snapshot located at the first location to restore
data. If the selected snapshot at the first location is not available, the selected
snapshot at the second location is used.