Method and apparatus for data copy
US-10545668-B2 · Jan 28, 2020 · US
US11461012B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11461012-B2 |
| Application number | US-201916592837-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 4, 2019 |
| Priority date | Oct 31, 2018 |
| Publication date | Oct 4, 2022 |
| Grant date | Oct 4, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Data access techniques involve: determining whether there is a copy operation that is being performed from a first LU to a second LU in response to receiving a write operation request for a first data block in the first logic unit (LU); detecting a copy status of data in the first data block in response to determining that there is the copy operation that is being performed; and determining a processing strategy of the write operation request during execution of the copy operation based on the copy status.
Opening claim text (preview).
We claim: 1. A data access method, comprising: in response to receiving a request of a write operation for a first data block in a first logic unit (LU), determining whether a copy operation that is being performed from the first LU to a second LU exists; in response to determining that the copy operation that is being performed exists, detecting a copy status of data in the first data block; determining, based on the copy status, a processing strategy of the request of the write operation during the copy operation; performing the copy operation, wherein performing the copy operation comprises: in response to detecting that the data in the first data block is zero, determining that data read from the first LU need not be written to the second LU and skipping the copy operation for the data in the first data block, wherein the first data block comprises an un-allocated region of the first LU, and wherein skipping the copy operation for the data in the first data block further comprises performing a read next request that finds a next allocated region in the first LU and additionally returns a predetermined specific status in the event that the next allocated region contains all zeros; wherein determining the processing strategy of the request of the write operation and performing the copy operation are both performed by a first layered driver in an I/O stack of the source array; wherein the first layered driver is inserted into the I/O stack of the source array for performing the copy operation, and subsequently removed from the I/O stack of the source array responsive to completion of the copy operation; and wherein the first layered driver performs the read next request by using an interface that is provided by a second layered driver contained within the I/O stack of the source array. 2. The method according to claim 1 , wherein the determining a processing strategy of the request of the write operation comprises: in response to the copy status indicating that the data in the first data block is not copied, performing the write operation for the first data block. 3. The method according to claim 1 , wherein the determining a processing strategy of the request of the write operation comprises: in response to the copy status indicating that data in the first data block is being copied, delaying the write operation for the first data block. 4. The method according to claim 3 , further comprising: in response to detecting that the copy status becomes a status indicating that data in the first data block is already copied, performing the write operation for the data in the first data block. 5. The method according to claim 1 , wherein the determining a processing strategy of the request of the write operation comprises: in response to the copy status indicating that data in the first data block is already copied, performing a write operation for data in the first data block; and performing a write operation for data that is in the second LU and in a second data block corresponding to the first data block, wherein the data in the second data block is a copy of the data in the first data block. 6. The method according to claim 1 , further comprising: prior to the beginning of the copy operation, creating a first set of access paths from a host to a first set of disks; creating a mapping relationship between the first LU and the second LU; and creating a second set of access paths from the host to a second set of disks. 7. The method according to claim 6 , further comprising: after a completion of the copy operation, in response to receiving a further request of a write operation for the first data block, switching a path for data access from an access path in the first set of access paths to an access path in the second set of access paths, so that a response to the further request is made with the second LU. 8. The method of claim 1 , wherein the first layered driver i) queues write I/O that is directed to a write range that is currently being copied to the second LU, and ii) forwards, to the second LU, write I/O that is directed to a write range that has already been copied to the second LU. 9. The method of claim 8 , wherein the second layered driver also maps the first LU to an internal LU of the source array. 10. A data access device, comprising: a processing unit; and a memory coupled to the processing unit and storing instructions that, when executed by the processing unit, perform the following acts: in response to receiving a request of a write operation for a first data block in a first logic unit (LU), determining whether a copy operation that is being performed from a first LU to a second LU exists; in response to determining that the copy operation that is being performed exists, detecting a copy status of data in the first data block; determining, based on the copy status, a processing strategy of the request of the write operation during execution of the copy operation; performing the copy operation, wherein performing the copy operation comprises: in response to detecting that the data in the first data block is zero, determining that data read from the first LU need not be written to the second LU and skipping the copy operation for the data in the first data block, wherein the first data block comprises an un-allocated region of the first LU, and wherein skipping the copy operation for the data in the first data block further comprises performing a read next request that finds a next allocated region in the first LU and additionally returns a predetermined specific status in the event that the next allocated region contains all zeros; wherein determining the processing strategy of the request of the write operation and performing the copy operation are both performed by a first layered driver in an I/O stack of the source array; wherein the first layered driver is inserted into the I/O stack of the source array for performing the copy operation, and subsequently removed from the I/O stack of the source array responsive to completion of the copy operation; and wherein the first layered driver performs the read next request by using an interface that is provided by a second layered driver contained within the I/O stack of the source array. 11. The device according to claim 10 , wherein the determining a processing strategy of the request of the write operation comprises: performing the write operation for the first data block in response to the copy status indicating that data in the first data block is not copied. 12. The device according to claim 10 , wherein the determining a processing strategy of the request of the write operation comprises: in response to the copy status indicating that data in the first data block is being copied, delaying the write operation for the first data block. 13. The device according to claim 12 , wherein the acts further comprise: in response to detecting that the copy status becomes a status indicating that data in the first data block is already copied, performing the write operation for the data in the first data block. 14. The device according to claim 10 , wherein the determining a processing strategy of the request of the write operation comprises: in response to the copy status indicating that data in the first data block is already copied, performing a write operation for data in the first data block; and performing a write operation for data that is in the second LU and in a second data block corresponding to the first data block, wherein the data in the second data block is a copy of the data in the first data block.
in relation to throughput · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Replication mechanisms · CPC title
Monitoring storage devices or systems · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.