Flexible remote data mirroring

US9270752B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9270752-B2
Application numberUS-201414504371-A
CountryUS
Kind codeB2
Filing dateOct 1, 2014
Priority dateNov 11, 1999
Publication dateFeb 23, 2016
Grant dateFeb 23, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, systems, and configured storage media are provided for flexible data mirroring. In particular, the invention provides many-to-one data mirroring, including mirroring from local servers running the same or different operating systems and/or file systems at two or more geographically dispersed locations. The invention also provides one-to-many data mirroring, mirroring with or without a dedicated private telecommunications link, and mirroring with or without a dedicated server or another server at the destination(s) to assist the remote mirroring unit(s). In addition, the invention provides flexibility by permitting the use of various combinations of one or more external storage units and/or RAID units to hold mirrored data. Spoofing, SCSI and other bus emulations, and further tools and techniques are used in various embodiments of the invention.

First claim

Opening claim text (preview).

What is claimed and desired to be secured by patent is: 1. A method, for storing data, performed by a host computing system, the method comprising: obtaining an initial state of a storage volume; transmitting an indication of the initial state of the storage volume; generating a plurality of blocks of the data, the plurality of blocks of the data representing a change from a first state of the storage volume to a second state of the storage volume, wherein each of the plurality of blocks of the data is associated with a value indicating an order, and wherein each value associated with a data block corresponds to a sequence in which the host computing system stores the data block to a first persistent store; transmitting, to a mirroring unit operationally independent from the host computing system, the plurality of blocks of the data configured in a manner suitable for the mirroring unit to (A) determine that a second persistent store is available for a write operation, and, in response to the determining, to (B) store each of the plurality of blocks of the data to the second persistent store; transmitting an indication of a particular location in the sequence, the indication configured in a manner suitable for the mirroring unit to, in response to receiving the indication of the particular location in the sequence: retrieve, from the second persistent store, based on the associated values that correspond to the sequence, one or more distinguished blocks of the data of the plurality of blocks of the data, the distinguished blocks comprising less than all of the plurality of blocks of the data and selected based on the particular location in the sequence; and create, by applying the distinguished blocks of the data to the initial state of the storage volume, a structure representing a third state of the storage volume; and receiving the structure representing the third state of the storage volume, wherein the third state of the storage volume is a state the storage volume was in after the storage volume was in the first state but prior to the storage volume being in the second state. 2. The method of claim 1 wherein the plurality of blocks of the data are transmitted through a storage subsystem bus, and wherein the transmitting the plurality of blocks of the data through the standard storage subsystem bus comprises: emulating an interface of the standard storage subsystem bus; and transmitting bus data to the emulated interface. 3. The method of claim 1 wherein the associated values indicating an order are stored in a plurality of meta-data blocks, each meta-data block associated with one of the blocks of the data. 4. The method of claim 1 further comprising: sensing an interruption or a state of high traffic in a connection to the mirroring unit operationally independent from the host computing system; and in response to the sensing, pausing transmission of the plurality of blocks of the data to the mirroring unit operationally independent from the host computing system. 5. The method of claim 4 further comprising: a local buffer configured to buffer data from the host computing system while the transmission is paused. 6. The method of claim 4 further comprising: detecting a reconnection or a reduction in traffic in the connection to the mirroring unit operationally independent from the host computing system; and in response to the detecting, resuming transmission of the plurality of blocks of the data to the mirroring unit operationally independent from the host computing system. 7. The method of claim 1 wherein the initial state of the storage volume is a snapshot of the data from a first previous time; and wherein the mirroring unit operationally independent from the host computing system is configured to: store the plurality of blocks of the data in a journal; and create the structure representing the third state of the storage volume by recreating the data from the host computing system, from a second previous time after the first previous time, using the snapshot and a subset of the data in the journal. 8. The method of claim 1 further comprising: receiving one or more acknowledgement messages, wherein each acknowledgement message indicates that one or more of the plurality of blocks of the data has been stored to the second persistent store. 9. The method of claim 8 wherein each acknowledgement message includes a signature corresponding to the blocks of the data that have been acknowledged as stored to the second persistent store. 10. The method of claim 9 further comprising: determining that an attempt to verify at least one of the signatures has failed; and transmitting a negative acknowledgement to the mirroring unit indicating a corresponding acknowledgement verification failure. 11. The method of claim 1 wherein the value indicating an order is a timestamp. 12. A computer-readable device storing instructions configured to, when executed by a host computing system, cause the host computing system to perform operations for backing up data, the operations comprising: obtaining an initial state of a storage volume; transmitting an indication of the initial state of the storage volume; generating a plurality of blocks of the data, the plurality of blocks of the data representing a change from a first state of the storage volume to a second state of the storage volume, wherein each of the plurality of blocks of the data is associated with a value indicating an order, and wherein each value associated with a data block corresponds to a sequence in which the host computing system stores the data block to a first persistent store; transmitting, to a mirroring unit operationally independent from the host computing system, the plurality of blocks of the data, wherein the mirroring unit is configured (A) to determine that a second persistent store is available for a write operation and (B) in response to the determining, to store each of the plurality of blocks of the data to the second persistent store; transmitting an indication of a particular location in the sequence, wherein the mirroring unit is further configured to, in response to receiving the indication of the particular location in the sequence: retrieve, from the second persistent store, based on the associated values that correspond to the sequence, one or more distinguished blocks of the data of the plurality of blocks of the data, the distinguished blocks comprising less than all of the plurality of blocks of the data and selected based on the particular location in the sequence; and create, by applying the distinguished blocks of the data to the initial state of the storage volume, a structure representing a third state of the storage volume; and receiving the structure representing the third state of the storage volume, wherein the third state of the storage volume is a state the storage volume was in after the storage volume was in the first state but prior to the storage volume being in the second state. 13. The computer-readable device of claim 12 wherein the associated values indicating an order are stored in a plurality of meta-data blocks, each meta-data block associated with one of the blocks of the data. 14. The computer-readable device of claim 12 wherein the initial state of the storage volume is a snapshot of the data from a first previous time; and wherein the mirroring unit operationally independent from the host computing system is configured to: store the plurality of blocks of the data in a journal; and create the structure representing the third state of the storage volume by recreating the data from t

Assignees

Inventors

Classifications

  • G06F3/0626Primary

    Reducing size or complexity of storage systems · CPC title

  • by repeating transmission, e.g. Verdan system {(H04L1/1858 and H04L1/189 take precedence)} · CPC title

  • Asynchronous techniques · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9270752B2 cover?
Methods, systems, and configured storage media are provided for flexible data mirroring. In particular, the invention provides many-to-one data mirroring, including mirroring from local servers running the same or different operating systems and/or file systems at two or more geographically dispersed locations. The invention also provides one-to-many data mirroring, mirroring with or without a …
Who is the assignee on this patent?
Intellectual Ventures Ii Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0626. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 23 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).