Data block movement offload to storage systems
First Claim
Patent Images
1. A method, comprising steps of:
- a storage device client writing a data block to a target storage device of a mirrored storage system, wherein writing said data block comprises;
sending a write request to said target storage device of said mirrored storage system, said write request specifying;
a source storage device in said mirror storage system,a source primary block address of said data block at said source storage device, anda target primary block address to which to write said data block at said target storage device;
in response to receiving said write request, said target storage device transmitting a read request for said data block to said source storage device, said read request specifying said source primary block address;
in response to receiving said read request, said source storage device transmitting said data block to said target storage device;
said target storage device writing said data block at the target primary block address; and
after said target storage device writing said data block at the target primary block address, said target storage device transmitting an acknowledgement to said storage device client acknowledging writing said data block at said target storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
In a write by-peer-reference, a storage device client writes a data block to a target storage device in the storage system by sending a write request to the target storage device, the write request specifying information used to obtain the data block from a source storage device in the storage system. The target storage device sends a read request to the source storage device for the data block. The source storage device sends the data block to the target storage device, which then writes the data block to the target storage device. The data block is thus written to the target storage device without the storage device client transmitting the data block itself to the target storage device.
-
Citations
21 Claims
-
1. A method, comprising steps of:
a storage device client writing a data block to a target storage device of a mirrored storage system, wherein writing said data block comprises; sending a write request to said target storage device of said mirrored storage system, said write request specifying; a source storage device in said mirror storage system, a source primary block address of said data block at said source storage device, and a target primary block address to which to write said data block at said target storage device; in response to receiving said write request, said target storage device transmitting a read request for said data block to said source storage device, said read request specifying said source primary block address; in response to receiving said read request, said source storage device transmitting said data block to said target storage device; said target storage device writing said data block at the target primary block address; and after said target storage device writing said data block at the target primary block address, said target storage device transmitting an acknowledgement to said storage device client acknowledging writing said data block at said target storage device. - View Dependent Claims (2, 3, 4)
-
5. A method, comprising steps of:
a storage device client writing a data block to a mirrored storage system, wherein writing said data block to said mirrored storage system comprises; sending a first write request to a source mirror peer of said mirrored storage system, said sending a first write request including said storage device client transmitting said data block to said source mirror peer; said source mirror peer transmitting to said storage device client an acknowledgement to acknowledge writing said data block at said source mirror peer; in response to said storage device client receiving said acknowledgement from said source mirror peer, said storage device client sending a second write request to a target mirror peer of said mirrored storage system, said second write request specifying; said source mirror peer in said mirror storage system, a source primary block address of said data block at said source mirror peer, and a target primary block address to which to write said data block at said target mirror peer; and in response to receiving said second write request; said target mirror peer transmitting a read request for said data block to said source mirror peer, said read request specifying said source primary block address, and in response to receiving said read request, said source mirror peer transmitting said data block to said target mirror peer; in response to receiving said data block from said source mirror peer, said target mirror peer writing said data block at the target primary block address; and after said target mirror peer said writing said data block at the target primary block address, said target mirror peer transmitting an acknowledgement to said storage device client acknowledging writing said data block at said target mirror peer. - View Dependent Claims (6, 7)
-
8. A storage system, comprising:
a storage device client configured to write a data block to a target storage device of a mirrored storage system, by being configured to; send a write request to said target storage device of said mirrored storage system, said write request specifying; a source storage device in said mirror storage system, a source primary block address of said data block at said source storage device, and a target primary block address to which to write said data block at said target storage device; said target storage device being configured to, in response to receipt of said write request, transmit a read request for said data block to said source storage device, said read request specifying said source primary block address; said source storage device being configured to, in response to receipt of said read request, transmit said data block to said target storage device; said target storage device being configured to write said data block at the target primary block address; and said target storage device being configured to, after said target storage device writes said data block at the target primary block address, transmit an acknowledgement to said storage device client acknowledging writing said data block at said target storage device. - View Dependent Claims (9, 10, 11)
-
12. A storage system, comprising:
a storage device client configured to write a data block to a mirrored storage system, by being configured to; send a first write request to a source mirror peer of said mirrored storage system, wherein to send said first write request includes said storage device client transmitting said data block to said source mirror peer; said source mirror peer being configured to transmit to said storage device client an acknowledgement to acknowledge writing said data block at said source mirror peer; said storage device client being configured to, in response to receipt of said acknowledgement from said source mirror peer, send a second write request to a target mirror peer of said mirrored storage system, said second write request specifying; said source mirror peer in said mirror storage system, a source primary block address of said data block at said source mirror peer, and a target primary block address to which to write said data block at said target mirror peer; and in response to receipt of said second write request; said target mirror peer being configured to transmit a read request for said data block to said source mirror peer, said read request specifying said source primary block address, and said source mirror peer being configured to, in response to receipt of said read request, transmit said data block to said target mirror peer; said target mirror peer being configured to, in response to receipt of said data block from said source mirror peer, write said data block at the target primary block address; and said target mirror peer being configured to, after said target mirror peer said writing said data block at the target primary block address, transmit an acknowledgement to said storage device client acknowledging writing said data block at said target mirror peer. - View Dependent Claims (13, 14)
-
15. One or more non-transitory storage media storing instructions which, when executed by one or more processors, cause:
a storage device client writing a data block to a target storage device of a mirrored storage system, wherein writing said data block comprises; sending a write request to said target storage device of said mirrored storage system, said write request specifying; a source storage device in said mirror storage system, a source primary block address of said data block at said source storage device, and a target primary block address to which to write said data block at said target storage device; in response to receiving said write request, said target storage device transmitting a read request for said data block to said source storage device, said read request specifying said source primary block address; in response to receiving said read request, said source storage device transmitting said data block to said target storage device; said target storage device writing said data block at the target primary block address; and after said target storage device writing said data block at the target primary block address, said target storage device transmitting an acknowledgement to said storage device client acknowledging writing said data block at said target storage device. - View Dependent Claims (16, 17, 18)
-
19. One or more non-transitory storage media storing instructions which, when executed by one or more processors, cause:
- a storage device client writing a data block to a mirrored storage system, wherein writing said data block to said mirrored storage system comprises;
sending a first write request to a source mirror peer of said mirrored storage system, said sending first write request including said storage device client transmitting said data block to said source mirror peer;
said source mirror peer transmitting to said storage device client an acknowledgement to acknowledge writing said data block at said source mirror peer;
in response to said storage device client receiving said acknowledgement from said source mirror peer, said storage device client sending a second write request to a target mirror peer of said mirrored storage system, said second write request specifying;
said source mirror peer in said mirror storage system, a source primary block address of said data block at said source mirror peer, and a target primary block address to which to write said data block at said target mirror peer; and
in response to receiving said second write request;
said target mirror peer transmitting a read request for said data block to said source mirror peer, said read request specifying said source primary block address, and in response to receiving said read request, said source mirror peer transmitting said data block to said target mirror peer;
in response to receiving said data block from said source mirror peer, said target mirror peer writing said data block at the target primary block address; and
after said target mirror peer writing said data block at the target primary block address, said target mirror peer transmitting an acknowledgement to said storage device client acknowledging writing said data block at said target mirror peer. - View Dependent Claims (20, 21)
- a storage device client writing a data block to a mirrored storage system, wherein writing said data block to said mirrored storage system comprises;
Specification