Non-disruptive data migration from a source storage array to a destination storage array

US11461012B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11461012-B2
Application numberUS-201916592837-A
CountryUS
Kind codeB2
Filing dateOct 4, 2019
Priority dateOct 31, 2018
Publication dateOct 4, 2022
Grant dateOct 4, 2022

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.

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.

First claim

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.

Assignees

Inventors

Classifications

  • G06F3/0613Primary

    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

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 US11461012B2 cover?
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 p…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0613. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 04 2022 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).