×

PROVIDING A RELIABLE BACKING STORE FOR BLOCK DATA STORAGE

  • US 20100036931A1
  • Filed: 08/08/2008
  • Published: 02/11/2010
  • Est. Priority Date: 08/08/2008
  • Status: Active Grant
First Claim
Patent Images

1. A method for a computing system of a block data storage service to maintain access of executing programs to remote stored block data, the method comprising:

  • receiving a request to initiate access of a first executing program to non-local block data storage provided by a block data storage service, the first program executing on a first of a plurality of computing systems that are co-located at a first geographical location and that share one or more internal networks, the block data storage service using a first group of multiple other of the plurality of computing systems as block data storage systems that provide block data storage to multiple executing programs, the first computing system not being part of the first group; and

    under control of a system manager module of the block data storage service, managing the providing of the block data storage to the multiple executing programs, by;

    after receiving indications of one or more data access requests initiated by the first executing program to the non-local block data storage provided by the block data storage service, automatically responding by performing the data access requests on a first block data storage volume that has a primary copy stored on a second computing system and that has a mirror copy stored on a third computing system, the second and third computing systems each being part of the first group of block data storage systems, the performing of the data access requests causing one or more modifications to block data stored on the first block data storage volume in such a manner that the primary and mirror copies of the first block data storage volume each store the same block data;

    at a first time after the performing of the data access requests, creating a first snapshot copy of the first block data storage volume on one or more remote archival data storage systems at a second geographical location that is distinct from the first geographical location, the first snapshot copy including a copy of the block data stored on the first block data storage volume at the first time; and

    after creating the first snapshot copy and receiving indications of one or more other data access requests initiated by the first executing program to the provided non-local block data storage,automatically responding by performing the other data access requests on the primary copy stored on the second computing system, the performing of a subset of the other data access requests causing one or more further modifications to the block data stored on the primary copy;

    maintaining the mirror copy by modifying the block data stored on the third computing system to include only the further modified block data from the performing of the other data access requests subset after the creating of the first snapshot copy, such that the maintained mirror copy on the third computing system lacks a subset of the block data stored on the second computing system for the primary copy of the block data storage volume, the stored block data subset corresponding to the stored block data that has not been modified since the creating of the first snapshot copy; and

    after determining to promote the mirror copy of the first block data storage volume on the third computing system to be a new primary copy of the first block data storage volume, automatically restoring the mirror copy on the third computing system to include the subset of the stored block data by retrieving the subset of the stored block data from the first snapshot copy on the one or more remote archival data storage systems, such that the restored mirror copy on the third computing system matches the primary copy of the first block data storage volume before the promoting of the mirror copy.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×