Patent ID: 6944789

Claim:
In a personal computing (PC) device, a method for data backup comprising: receiving one or more I/O (input/output) requests; determining, between a local data storage device and a remote data storage device, whether one or the other is accessible; if said local storage device is accessible, then: exchanging information with said local data storage device according to said I/O requests, including storing some of said information on one or more data blocks of said local data storage device; for each of said one or more data blocks which is updated, setting an entry in a first runtime bitmap to a first value, said first runtime bitmap having an entry corresponding to each of a plurality of data blocks which comprise said local data storage device; and for each entry in said runtime bitmap that is set to said first value, performing a copy operation of data from said local data storage device to said remote data storage device and clearing said each entry, said copy operation being performed asynchronously with respect to said receiving one or more I/O requests; and if said local storage device is inaccessible, then: exchanging said information with said remote data storage device according to said I/O requests, including storing some of said information on one or more data blocks of said remote data storage device; for each of said one or more data blocks which is updated, setting an entry in a second runtime bitmap to said first value, said second runtime bitmap having an entry corresponding to each of a plurality of data blocks which comprise said remote data storage device; and for each entry in said second runtime bitmap that is set to said first value, performing a copy operation of data from said remote data storage device to said local data storage device after said local storage device is accessible and clearing said each entry, said copy operation being performed asynchronously with respect to said receiving one or more I/O requests, wherein a subsequent copy operation is performed to copy data from first one of said two data storage devices to the other of said two data storage devices based on said runtime bitmap of said first one of said two data storage devices.