IP Library › Granted Patent US 12,204,762
Granted Patent B1
US 12,204,762 · App. 18/356,493 · Granted Jan 21, 2025

Efficient migration of logical storage devices without requiring initial application reconfiguration

Inventor: Gopinath Marappan (Coimbatore, IN)
Assignee: Dell Products L.P.
G06F3/0617G06F3/0647G06F3/067
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,204,762
App. No.
18/356,493
Granted
Jan 21, 2025
Kind
B1
Abstract

An apparatus in an illustrative embodiment implements a proxy device for a first logical storage device. The proxy device inserts tags into respective received input-output (IO) operations before directing those IO operations to the first logical storage device. The apparatus further implements a mirror device to provide a mirroring arrangement between the proxy device and a second logical storage device. In addition, the apparatus checks, in an entry point associated with the first logical storage device, each IO operation directed to the first logical storage device for a tag inserted by the proxy device. The apparatus provides, from the entry point to the first logical storage device, any received IO operations that have the tag. Furthermore, the apparatus redirects, from the entry point to the mirror device providing the mirroring arrangement, any received IO operations that do not have the tag.

Claims (37)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured, in conjunction with migration of data from a first logical storage device to a second logical storage device:

to implement a proxy device for the first logical storage device, the proxy device being configured to insert tags into respective received input-output operations before directing those input-output operations to the first logical storage device;

to implement a mirror device to provide a mirroring arrangement between the proxy device and the second logical storage device;

to check, in an entry point associated with the first logical storage device, each input-output operation directed to the first logical storage device for a tag inserted by the proxy device;

to provide, from the entry point to the first logical storage device, any received input-output operations that have the tag; and

to redirect, from the entry point to the mirror device, any received input-output operations that do not have the tag.

2. The apparatus of claim 1 wherein the at least one processing device comprises at least a portion of a host device configured to communicate with a storage system over a network.

3. The apparatus of claim 2 wherein said at least one processing device comprises a multi-path input-output driver of the host device, with the multi-path input-output driver of the host device being configured to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network and to perform at least a portion of the migration of data from the first logical storage device to the second logical storage device.

4. The apparatus of claim 3 wherein the multi-path input-output driver of the host device comprises a device mapper multi-path input-output driver operating in a Linux native multi-pathing environment.

5. The apparatus of claim 2 wherein the first and second logical storage devices comprise respective Linux block devices associated with a same storage array of the storage system.

6. The apparatus of claim 2 wherein the first and second logical storage devices comprise respective Linux block devices associated with distinct first and second storage arrays of the storage system.

7. The apparatus of claim 1 wherein the at least one processing device is further configured to temporarily suspend input-output operations targeting the first logical storage device in conjunction with implementation of the proxy device and the mirror device.

8. The apparatus of claim 7 wherein the temporary suspension of the input-output operations targeting the first logical storage device is released responsive to implementation of the proxy device and the mirror device and configuration of the entry point of the first logical storage device to check for the tag inserted by the proxy device.

9. The apparatus of claim 1 wherein the at least one processing device is further configured, responsive to detection of a designated synchronization condition between the first logical storage device and the second logical storage device, to deactivate the mirror device and the proxy device and to modify the entry point associated with the first logical storage device to redirect all received input-output operations to the second logical storage device.

10. The apparatus of claim 1 wherein, responsive to successful completion of the migration, at least one application is reconfigured to utilize the second logical storage device in place of the first logical storage device.

11. The apparatus of claim 1 wherein the proxy device comprises a dummy block device implemented using a loop device.

12. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by at least one processing device comprising a processor coupled to a memory, causes the at least one processing device to perform a method for migrating data of a first logical storage device to a second logical storage device, the method comprising:

implementing a proxy device for the first logical storage device, the proxy device being configured to insert tags into respective received input-output operations before directing those input-output operations to the first logical storage device;

implementing a mirror device to provide a mirroring arrangement between the proxy device and the second logical storage device;

checking, in an entry point associated with the first logical storage device, each input-output operation directed to the first logical storage device for a tag inserted by the proxy device;

providing, from the entry point to the first logical storage device, any received input-output operations that have the tag; and

redirecting, from the entry point to the mirror device, any received input-output operations that do not have the tag.

13. The computer program product of claim 12 wherein, responsive to detection of a designated synchronization condition between the first logical storage device and the second logical storage device, the mirror device and the proxy device are deactivated and the entry point associated with the first logical storage device is modified to redirect all received input-output operations to the second logical storage device.

14. The computer program product of claim 12 wherein, responsive to successful completion of the migration, at least one application is reconfigured to utilize the second logical storage device in place of the first logical storage device.

15. The computer program product of claim 12 wherein the proxy device comprises a dummy block device implemented using a loop device.

16. A method for migrating data of a first logical storage device to a second logical storage device, the method comprising:

implementing a proxy device for the first logical storage device, the proxy device being configured to insert tags into respective received input-output operations before directing those input-output operations to the first logical storage device;

implementing a mirror device to provide a mirroring arrangement between the proxy device and the second logical storage device;

checking, in an entry point associated with the first logical storage device, each input-output operation directed to the first logical storage device for a tag inserted by the proxy device;

providing, from the entry point to the first logical storage device, any received input-output operations that have the tag; and

redirecting, from the entry point to the mirror device, any received input-output operations that do not have the tag.

17. The method of claim 16 wherein the migration of data from the first logical storage device to the second logical storage device is performed without requiring any initial reconfiguration of one or more applications that generate the input-output operations.

18. The method of claim 16 wherein, responsive to detection of a designated synchronization condition between the first logical storage device and the second logical storage device, the mirror device and the proxy device are deactivated and the entry point associated with the first logical storage device is modified to redirect all received input-output operations to the second logical storage device.

19. The method of claim 16 wherein, responsive to successful completion of the migration, at least one application is reconfigured to utilize the second logical storage device in place of the first logical storage device.

20. The method of claim 16 wherein the proxy device comprises a dummy block device implemented using a loop device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2023
From: MARAPPAN, GOPINATH
To: DELL PRODUCTS L.P.
Reel/Frame 064341/0603 →
References Cited (180)
US 6567397B1 · Campana et al. · 2003 [cited by applicant]
US 6687746B1 · Shuster et al. · 2004 [cited by applicant]
US 6697875B1 · Wilson · 2004 [cited by applicant]
US 7003527B1 · Lavallee et al. · 2006 [cited by applicant]
US 7275103B1 · Thrasher et al. · 2007 [cited by applicant]
US 7397788B2 · Mies et al. · 2008 [cited by applicant]
US 7454437B1 · Lavallee et al. · 2008 [cited by applicant]
US 7617292B2 · Moore et al. · 2009 [cited by applicant]
US 7668981B1 · Nagineni et al. · 2010 [cited by applicant]
US 7770053B1 · Bappe et al. · 2010 [cited by applicant]
US 7809912B1 · Raizen et al. · 2010 [cited by applicant]
US 7818428B1 · Lavallee et al. · 2010 [cited by applicant]
US 7890664B1 · Tao et al. · 2011 [cited by applicant]
US 7904681B1 · Bappe et al. · 2011 [cited by applicant]
US 7925872B2 · Lai et al. · 2011 [cited by applicant]
US 8250256B2 · Ghosalkar et al. · 2012 [cited by applicant]
US 8285825B1 · Nagaraj et al. · 2012 [cited by applicant]
US 8819307B1 · Raizen et al. · 2014 [cited by applicant]
US 8825919B1 · Lim et al. · 2014 [cited by applicant]
US 8832334B2 · Okita · 2014 [cited by applicant]
US 8874746B1 · Gonzalez · 2014 [cited by applicant]
US 8959249B1 · Love · 2015 [cited by applicant]
US 9026694B1 · Davidson et al. · 2015 [cited by applicant]
US 9201803B1 · Derbeko et al. · 2015 [cited by applicant]
US 9400611B1 · Raizen · 2016 [cited by applicant]
US 9430368B1 · Derbeko et al. · 2016 [cited by applicant]
US 9594780B1 · Esposito et al. · 2017 [cited by applicant]
US 9647933B1 · Tawri et al. · 2017 [cited by applicant]
US 9672160B1 · Derbeko et al. · 2017 [cited by applicant]
US 9712613B2 · Balasubramanian et al. · 2017 [cited by applicant]
US 9778852B1 · Marshak et al. · 2017 [cited by applicant]
US 9936021B1 · Ponnachana · 2018 [cited by examiner]
US 10289325B1 · Bono · 2019 [cited by applicant]
US 10353714B1 · Gokam et al. · 2019 [cited by applicant]
US 10439878B1 · Tah et al. · 2019 [cited by applicant]
US 10474367B1 · Mallick et al. · 2019 [cited by applicant]
US 10476960B1 · Rao et al. · 2019 [cited by applicant]
US 10521369B1 · Mallick et al. · 2019 [cited by applicant]
US 10523513B2 · Bennett et al. · 2019 [cited by applicant]
US 10606496B1 · Mallick et al. · 2020 [cited by applicant]
US 10637917B2 · Mallick et al. · 2020 [cited by applicant]
US 10652206B1 · Pusalkar et al. · 2020 [cited by applicant]
US 10754572B2 · Kumar et al. · 2020 [cited by applicant]
US 10757189B2 · Mallick et al. · 2020 [cited by applicant]
US 10764371B2 · Rao et al. · 2020 [cited by applicant]
US 10789006B1 · Gokam et al. · 2020 [cited by applicant]
US 10817181B2 · Mallick et al. · 2020 [cited by applicant]
US 10838648B2 · Sharma et al. · 2020 [cited by applicant]
US 10880217B2 · Mallick et al. · 2020 [cited by applicant]
US 10884935B1 · Doddaiah · 2021 [cited by applicant]
US 10911402B2 · Pusalkar et al. · 2021 [cited by applicant]
US 11050660B2 · Rao et al. · 2021 [cited by applicant]
US 11093144B1 · Anchi et al. · 2021 [cited by applicant]
US 11093155B2 · Anchi et al. · 2021 [cited by applicant]
US 11106381B2 · Rao et al. · 2021 [cited by applicant]
US 11126358B2 · Kumar et al. · 2021 [cited by applicant]
US 11308004B1 · Rao et al. · 2022 [cited by applicant]
US 20010054093A1 · Iwatani · 2001 [cited by applicant]
US 20020023151A1 · Iwatani · 2002 [cited by applicant]
US 20020103923A1 · Cherian et al. · 2002 [cited by applicant]
US 20030179227A1 · Ahmad et al. · 2003 [cited by applicant]
US 20030195956A1 · Bramhall et al. · 2003 [cited by applicant]
US 20030208581A1 · Behren et al. · 2003 [cited by applicant]
US 20040010563A1 · Forte et al. · 2004 [cited by applicant]
US 20040057389A1 · Klotz et al. · 2004 [cited by applicant]
US 20040073648A1 · Tanino et al. · 2004 [cited by applicant]
US 20040081186A1 · Warren et al. · 2004 [cited by applicant]
US 20060026346A1 · Kadoiri et al. · 2006 [cited by applicant]
US 20060036736A1 · Kitamura et al. · 2006 [cited by applicant]
US 20060106819A1 · Dhanadevan et al. · 2006 [cited by applicant]
US 20060129876A1 · Uemura · 2006 [cited by applicant]
US 20060277383A1 · Hayden et al. · 2006 [cited by applicant]
US 20070174849A1 · Cheung et al. · 2007 [cited by applicant]
US 20070239989A1 · Barnett et al. · 2007 [cited by applicant]
US 20070242617A1 · Ichimura · 2007 [cited by applicant]
US 20070294563A1 · Bose · 2007 [cited by applicant]
US 20080043973A1 · Lai et al. · 2008 [cited by applicant]
US 20080147893A1 · Marripudi et al. · 2008 [cited by applicant]
US 20080201458A1 · Salli · 2008 [cited by applicant]
US 20080244174A1 · Abouelwafa et al. · 2008 [cited by applicant]
US 20080301332A1 · Butler et al. · 2008 [cited by applicant]
US 20090006780A1 · Sato et al. · 2009 [cited by applicant]
US 20090259749A1 · Barrett et al. · 2009 [cited by applicant]
US 20090282135A1 · Ravindran et al. · 2009 [cited by applicant]
US 20100131950A1 · Yamada et al. · 2010 [cited by applicant]
US 20100313063A1 · Venkataraja et al. · 2010 [cited by applicant]
US 20110161520A1 · Horiuchi et al. · 2011 [cited by applicant]
US 20110197027A1 · Balasubramanian et al. · 2011 [cited by applicant]
US 20110296230A1 · Chen et al. · 2011 [cited by applicant]
US 20120102369A1 · Hiltunen et al. · 2012 [cited by applicant]
US 20120163374A1 · Shah et al. · 2012 [cited by applicant]
US 20120246345A1 · Contreras et al. · 2012 [cited by applicant]
US 20130019001A1 · Winokur · 2013 [cited by applicant]
US 20130046892A1 · Otani · 2013 [cited by applicant]
US 20130117766A1 · Bax et al. · 2013 [cited by applicant]
US 20130121161A1 · Szabo et al. · 2013 [cited by applicant]
US 20130339551A1 · Flanagan et al. · 2013 [cited by applicant]
US 20140105068A1 · Xu · 2014 [cited by applicant]
US 20140122755A1 · Chandra et al. · 2014 [cited by applicant]
US 20150089015A1 · Rosset et al. · 2015 [cited by applicant]
US 20150207673A1 · Cui et al. · 2015 [cited by applicant]
US 20150222705A1 · Stephens · 2015 [cited by applicant]
US 20150242134A1 · Takada et al. · 2015 [cited by applicant]
US 20150319245A1 · Nishihara et al. · 2015 [cited by applicant]
US 20160050277A1 · Kirk et al. · 2016 [cited by applicant]
US 20160092136A1 · Balakrishnan et al. · 2016 [cited by applicant]
US 20160117113A1 · Li et al. · 2016 [cited by applicant]
US 20160246749A1 · Kobashi · 2016 [cited by applicant]
US 20160335003A1 · Ahmed et al. · 2016 [cited by applicant]
US 20160380804A1 · Amano · 2016 [cited by applicant]
US 20170134220A1 · Chen et al. · 2017 [cited by applicant]
US 20170220406A1 · Parnell et al. · 2017 [cited by applicant]
US 20170235507A1 · Sinha et al. · 2017 [cited by applicant]
US 20180004425A1 · Suzuki · 2018 [cited by applicant]
US 20180026863A1 · Hughes et al. · 2018 [cited by applicant]
US 20180189635A1 · Olarig et al. · 2018 [cited by applicant]
US 20180253256A1 · Bharadwaj · 2018 [cited by applicant]
US 20180317101A1 · Koue · 2018 [cited by applicant]
US 20190020603A1 · Subramani et al. · 2019 [cited by applicant]
US 20190095299A1 · Liu et al. · 2019 [cited by applicant]
US 20190108888A1 · Sarkar et al. · 2019 [cited by applicant]
US 20190319846A1 · Dhanadevan et al. · 2019 [cited by applicant]
US 20190332308A1 · Feng · 2019 [cited by examiner]
US 20190334987A1 · Mallick et al. · 2019 [cited by applicant]
US 20200021653A1 · Rao et al. · 2020 [cited by applicant]
US 20200021654A1 · Rao et al. · 2020 [cited by applicant]
US 20200097203A1 · Mallick et al. · 2020 [cited by applicant]
US 20200106698A1 · Rao et al. · 2020 [cited by applicant]
US 20200110552A1 · Kumar et al. · 2020 [cited by applicant]
US 20200112608A1 · Patel et al. · 2020 [cited by applicant]
US 20200192588A1 · Kumar et al. · 2020 [cited by applicant]
US 20200204475A1 · Mallick et al. · 2020 [cited by applicant]
US 20200204495A1 · Mallick et al. · 2020 [cited by applicant]
US 20200213274A1 · Pusalkar et al. · 2020 [cited by applicant]
US 20200241890A1 · Mallick et al. · 2020 [cited by applicant]
US 20200314218A1 · Kumar et al. · 2020 [cited by applicant]
US 20200348860A1 · Mallick et al. · 2020 [cited by applicant]
US 20200348861A1 · Marappan et al. · 2020 [cited by applicant]
US 20200348869A1 · Gokam · 2020 [cited by applicant]
US 20200349094A1 · Smith et al. · 2020 [cited by applicant]
US 20200363985A1 · Gokam et al. · 2020 [cited by applicant]
US 20200372401A1 · Mallick et al. · 2020 [cited by applicant]
US 20210019054A1 · Anchi et al. · 2021 [cited by applicant]
US 20210026551A1 · Tidke et al. · 2021 [cited by applicant]
US 20210026650A1 · Rao et al. · 2021 [cited by applicant]
US 20210157502A1 · Rao et al. · 2021 [cited by applicant]
US 20210181965A1 · Anchi et al. · 2021 [cited by applicant]
US 20210263665A1 · Rao et al. · 2021 [cited by applicant]
US 20210297363A1 · Charles et al. · 2021 [cited by applicant]
US 20220171559A1 · Anchi et al. · 2022 [cited by applicant]
US 20230126349A1 · Marappan et al. · 2023 [cited by applicant]
CN 103677927B · 2017 [cited by applicant]
EP 1117028A2 · 2001 [cited by applicant]
EP 2667569A1 · 2013 [cited by applicant]
International Search Report and Written Opinion of PCT/US2019/052549 dated Dec. 4, 2019, 13 pages. [cited by applicant]
International Search Report and Written Opinion of PCT/US2019/053204 dated Dec. 16, 2019, 40 pages. [cited by applicant]
International Search Report and Written Opinion of PCT/US2019/053473 dated Dec. 19, 2019, 16 pages. [cited by applicant]
International Search Report and Written Opinion of PCT/US2019/067144 dated May 4, 2020, 26 pages. [cited by applicant]
Kris Piepho, “Dell EMC SC Series Storage: Microsoft Multipath I/O,” Dell EMC Best Practices, Jan. 2017, 57 pages. [cited by applicant]
NVM Express, “NVM Express, Revision 1.3,” NVM Express, May 1, 2017, 282 pages. [cited by applicant]
VMware, “Multipathing Configuration for Software ISCSI Using Port Binding,” Technical White Paper, Apr. 25, 2012, 15 pages. [cited by applicant]
Dell EMC, “Dell EMC SC Series Storage: Microsoft Multipath I/O,” Dell EMC Engineering, Jun. 2017, 56 pages. [cited by applicant]
Dell EMC, “Dell EMC PowerPath Family: PowerPath and PowerPath/VE Multipathing,” Data Sheet, 2017, 3 pages. [cited by applicant]
EMC, “EMC PowerPath and PowerPath/VE Family for Windows,” Installation and Administration Guide, Oct. 2018, 102 pages. [cited by applicant]
EMC, “EMC Powerpath Load Balancing and Failover”, Comparison with native MPIO operating system solutions, Feb. 2011, 28 pages. [cited by applicant]
Dell EMC, “PowerMax OS,” Dell EMC PowerMax Family Product Guide, May 2019, 192 pages. [cited by applicant]
Dell EMC, “Dell EMC SC Series Storage and Microsoft Multipath I/O,” CML 1004, Jul. 2018, 36 pages. [cited by applicant]
VMware, Inc. “VMware VMFS Volume Management,” 2009, 8 pages. [cited by applicant]
Dell EMC, “Dell EMC Unity: Virtualization Integration,” Technical White Paper, Oct. 2019, 39 pages. [cited by applicant]
Dell EMC, “Dell EMC PowerMax: ISCSI Implementation for Dell EMC Storage Arrays Running PowerMaxOS,” Technical White Paper, Sep. 2019, 35 pages. [cited by applicant]
NVM Express, “NVM Express Base Specification, Revision 2.0a,” NVM Express, Jul. 23, 2021, 454 pages. [cited by applicant]
Wikipedia, “Fibre Channel Zoning,” https://en.wikipedia.org/wiki/Fibre_Channel_zoning, Aug. 19, 2020, 2 pages. [cited by applicant]
E. Smith, “Introducing Target Driven Zoning (TDZ)” https://brasstacksblog.typepad.com/brass-tacks/2012/01/introducing-target-driven-zoning-tdz.html, Jan. 16, 2012, 9 pages. [cited by applicant]
Broadcom, “Fabric Operating System 9.0,” Technical Brief, Fabric Notifications, FOS-90-Fabric-Notifications-OT101, Nov. 4, 2020, 12 pages. [cited by applicant]
Brocade, “Brocade Guide to Undertanding Zoning,” vol. 1, 2002, 27 pages. [cited by applicant]
A. Wasson, “General Rules and Limits for Auto-Provisioning on Symmetric VMAX,” http://community.emc.com/docs/DOC-16553, May 8, 2012, 2 pages. [cited by applicant]
NVM Express, “NVM Express Base Specification, Revision 2.0b,” NVM Express, Jan. 6, 2022, 455 pages. [cited by applicant]
E. Goggin et al., “Linux Multipathing,” Proceedings of the Linux Symposium, vol. 1, 2005, 21 pages. [cited by applicant]
K. Ueda et al., “Request-based Device-mapper Multipath and Dynamic Load Balancing,” Proceedings of the Linux Symposium, vol. 2, 2007, 9 pages. [cited by applicant]
U.S. Appl. No. 17/846,242 filed in the name of Gopinath Marappan filed Jun. 22, 2022, and entitled “Migration Processes Utilizing Mapping Entry Timestamps for Selection of Target Logical Storage Devices.” [cited by applicant]