IP Library Granted Patent US 12,487,771
Granted Patent B2
US 12,487,771 · App. 18/100,895 · Granted Dec 2, 2025

Host device configured to control active-standby designations for multiple storage systems using inter-system response times

Inventors: Vinay G. Rao (Bangalore, IN); Sanjib Mallick (Bangalore, IN); Benjamin Yoder (Chandler, AZ); Arieh Don (Newton, MA)
Assignee: Dell Products L.P.
G06F3/0655G06F3/0604G06F3/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,487,771
App. No.
18/100,895
Granted
Dec 2, 2025
Kind
B2
Abstract

An apparatus in one embodiment includes at least one processing device comprising a processor coupled to a memory. The at least one processing device is configured to obtain, in a host device, inter-system response time information based at least in part on one or more response times measured by at least one of first and second storage systems relative to another one of the first and second storage systems, and to automatically control, based at least in part on the obtained inter-system response time information, active-standby designations for respective ones of the first and second storage systems. For example, in some embodiments, automatically controlling active-standby designations for respective ones of the first and second storage systems illustratively comprises controlling activation of an active-standby mode of operation based at least in part on comparison of at least a portion of the inter-system response time information to one or more specified thresholds.

Claims (20)

1 . An apparatus comprising: at least one processing device comprising a processor coupled to a memory; said at least one processing device being configured: to obtain, in a host device, inter-system response time information based at least in part on one or more response times measured by at least one of first and second storage systems relative to another one of the first and second storage systems; and to automatically control, based at least in part on the obtained inter-system response time information, active-standby designations for respective ones of the first and second storage systems; wherein the host device obtains the inter-system response time information from one or more storage-side data structures maintained by at least one of the first and second storage systems, by generating in a multi-path layer of the host device an inter-system response time information request command, and sending the inter-system response time information request command from the multi-path layer of the host device to at least one of the first and second storage systems, to obtain the inter-system response time information previously-measured from the at least one of the first and second storage systems; wherein the host device stores the inter-system response time information obtained from the one or more storage-side data structures in one or more host-side data structures of the host device; wherein the host device implements a selectively activatable auto-standby mode, with the automatically controlling of the active-standby designations being performed responsive to the auto-standby mode of the host device being activated; and wherein activation of the auto-standby mode of the host device is triggered based at least in part on comparison of at least portions of the inter-system response time information to one or more auto-standby mode activation thresholds.

2 . The apparatus of claim 1 wherein said at least one processing device comprises at least a portion of the host device.

3 . The apparatus of claim 1 wherein the first and second storage systems are arranged in an active-active configuration relative to one another.

4 . The apparatus of claim 1 wherein automatically controlling active-standby designations for respective ones of the first and second storage systems comprises designating one of the first and second storage systems as an active storage system and designating the other one of the first and second storage systems as a standby storage system.

5 . The apparatus of claim 1 wherein automatically controlling active-standby designations for respective ones of the first and second storage systems comprises designating both of the first and second storage systems as active storage systems such that neither of the first and second storage systems is designated as a standby storage system.

6 . The apparatus of claim 1 wherein the inter-system response time information is based at least in part on at least a first response time measured by the first storage system for a first command sent by the first storage system to the second storage system and a second response time measured by the second storage system for a second command sent by the second storage system to the first storage system.

7 . The apparatus of claim 1 wherein the multi-path layer includes at least one multi-path input-output driver configured to control delivery of input-output operations from the host device to the first and second storage systems over selected paths through a network over which the host device communicates with the first and second storage systems.

8 . The apparatus of claim 7 wherein one or more logical storage devices are each accessible to the multi-path input-output driver via one or more first sets of paths to the first storage system and one or more second sets of paths to the second storage system.

9 . The apparatus of claim 7 wherein the multi-path input-output driver is configured to send first and second inter-system response time information request commands to respective ones of the first and second storage systems and to process corresponding command responses in order to obtain respective first and second portions of the inter-system response time information from the first and second storage systems.

10 . The apparatus of claim 9 wherein the commands comprise at least one of a mode sense command and a log sense command.

11 . The apparatus of claim 1 wherein the inter-system response time information is based at least in part on a function of one or more first response times measured by the first storage system sending at least one first PING command to the second storage system and one or more second response times measured by the second storage system sending at least one second PING command to the first storage system.

12 . The apparatus of claim 11 wherein the inter-system response time information is computed at least in part as a function of the one or more first response times and the one or more second response times.

13 . The apparatus of claim 1 wherein automatically controlling active-standby designations for respective ones of the first and second storage systems comprises controlling activation of an active-standby mode of operation, in which one of the first and second storage systems is designated as an active storage system and the other of the first and second storage systems is designated as a standby storage system, based at least in part on comparison of at least a portion of the inter-system response time information to one or more specified thresholds.

14 . The apparatus of claim 1 wherein said at least one processing device is further configured to adjust path selection in the multi-path layer of the host device based at least in part on the active-standby designations of the respective first and second storage systems, where adjusting path selection in the multi-path layer of the host device based at least in part on the active-standby designations of the respective first and second storage systems comprises adjusting the path selection to utilize paths to one of the storage systems designated as active and to not utilize paths to the other storage system designated as standby.

15 . 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 said at least one processing device: to obtain, in a host device, inter-system response time information based at least in part on one or more response times measured by at least one of first and second storage systems relative to another one of the first and second storage systems; and to automatically control, based at least in part on the obtained inter-system response time information, active-standby designations for respective ones of the first and second storage systems; wherein the host device obtains the inter-system response time information from one or more storage-side data structures maintained by at least one of the first and second storage systems, by generating in a multi-path layer of the host device an inter-system response time information request command, and sending the inter-system response time information request command from the multi-path layer of the host device to at least one of the first and second storage systems, to obtain the inter-system response time information previously-measured from the at least one of the first and second storage systems; wherein the host device stores the inter-system response time information obtained from the one or more storage-side data structures in one or more host-side data structures of the host device; wherein the host device implements a selectively activatable auto-standby mode, with the automatically controlling of the active-standby designations being performed responsive to the auto-standby mode of the host device being activated; and wherein activation of the auto-standby mode of the host device is triggered based at least in part on comparison of at least portions of the inter-system response time information to one or more auto-standby mode activation thresholds.

16 . The computer program product of claim 15 wherein the inter-system response time information is based at least in part on at least a first response time measured by the first storage system for a first command sent by the first storage system to the second storage system and a second response time measured by the second storage system for a second command sent by the second storage system to the first storage system.

17 . The computer program product of claim 15 wherein automatically controlling active-standby designations for respective ones of the first and second storage systems comprises controlling activation of an active-standby mode of operation, in which one of the first and second storage systems is designated as an active storage system and the other of the first and second storage systems is designated as a standby storage system, based at least in part on comparison of at least a portion of the inter-system response time information to one or more specified thresholds.

18 . A method comprising: obtaining, in a host device, inter-system response time information based at least in part on one or more response times measured by at least one of first and second storage systems relative to another one of the first and second storage systems; and automatically controlling, based at least in part on the obtained inter-system response time information, active-standby designations for respective ones of the first and second storage systems; wherein the host device obtains the inter-system response time information from one or more storage-side data structures maintained by at least one of the first and second storage systems, by generating in a multi-path layer of the host device an inter-system response time information request command, and sending the inter-system response time information request command from the multi-path layer of the host device to at least one of the first and second storage systems, to obtain the inter-system response time information previously-measured from the at least one of the first and second storage systems; wherein the host device stores the inter-system response time information obtained from the one or more storage-side data structures in one or more host-side data structures of the host device; wherein the host device implements a selectively activatable auto-standby mode, with the automatically controlling of the active-standby designations being performed responsive to the auto-standby mode of the host device being activated; wherein activation of the auto-standby mode of the host device is triggered based at least in part on comparison of at least portions of the inter-system response time information to one or more auto-standby mode activation thresholds; and wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

19 . The method of claim 18 wherein the inter-system response time information is based at least in part on at least a first response time measured by the first storage system for a first command sent by the first storage system to the second storage system and a second response time measured by the second storage system for a second command sent by the second storage system to the first storage system.

20 . The method of claim 18 wherein automatically controlling active-standby designations for respective ones of the first and second storage systems comprises controlling activation of an active-standby mode of operation, in which one of the first and second storage systems is designated as an active storage system and the other of the first and second storage systems is designated as a standby storage system, based at least in part on comparison of at least a portion of the inter-system response time information to one or more specified thresholds.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2023
From: RAO, VINAY G.; MALLICK, SANJIB; YODER, BENJAMIN; DON, ARIEH
To: DELL PRODUCTS L.P.
Reel/Frame 062471/0225 →
Continuity (1)
Related Publication 20240248634A1 · Jul 25, 2024
References Cited (148)
US 6567397B1 · Campana, Jr. et al. · 2003 [cited by applicant]
US 6687746B1 · Shuster et al. · 2004 [cited by applicant]
US 6697875B1 · Wilson · 2004 [cited by applicant]
US 7275103B1 · Thrasher et al. · 2007 [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 8825919B1 · Lim et al. · 2014 [cited by applicant]
US 8832334B2 · Okita · 2014 [cited by applicant]
US 8874746B1 · Gonzalez · 2014 [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 9778852B1 · Marshak et al. · 2017 [cited by applicant]
US 10289325B1 · Bono · 2019 [cited by applicant]
US 10353714B1 · Gokam et al. · 2019 [cited by applicant]
US 10360127B1 · McSweeney · 2019 [cited by examiner]
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 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 10789267B1 · Dhoolam · 2020 [cited by examiner]
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 10936220B2 · Mallick et al. · 2021 [cited by applicant]
US 10949104B2 · Marappan et al. · 2021 [cited by applicant]
US 10996879B2 · Gokam · 2021 [cited by applicant]
US 11016699B2 · Anchi et al. · 2021 [cited by applicant]
US 11016783B2 · 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 11126363B2 · Tidke et al. · 2021 [cited by applicant]
US 11157203B2 · Gokam et al. · 2021 [cited by applicant]
US 11366590B2 · Mallick et al. · 2022 [cited by applicant]
US 11366771B2 · Smith et al. · 2022 [cited by applicant]
US 11385824B2 · Anchi et al. · 2022 [cited by applicant]
US 11449257B2 · Rao et al. · 2022 [cited by applicant]
US 20020023151A1 · Iwatani · 2002 [cited by applicant]
US 20020103923A1 · Cherian et al. · 2002 [cited by applicant]
US 20040010563A1 · Forte et al. · 2004 [cited by applicant]
US 20060026346A1 · Kadoiri et al. · 2006 [cited by applicant]
US 20060277383A1 · Hayden et al. · 2006 [cited by applicant]
US 20070174849A1 · Cheung et al. · 2007 [cited by applicant]
US 20080028163A1 · Woods et al. · 2008 [cited by applicant]
US 20080043973A1 · Lai et al. · 2008 [cited by applicant]
US 20080201458A1 · Sall · 2008 [cited by applicant]
US 20080301332A1 · Butler et al. · 2008 [cited by applicant]
US 20090259749A1 · Barrett et al. · 2009 [cited by applicant]
US 20100313063A1 · Venkataraja et al. · 2010 [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 20120246345A1 · Contreras et al. · 2012 [cited by applicant]
US 20130117766A1 · Bax et al. · 2013 [cited by applicant]
US 20130339551A1 · Flanagan et al. · 2013 [cited by applicant]
US 20140105068A1 · Xu · 2014 [cited by applicant]
US 20150222705A1 · Stephens · 2015 [cited by applicant]
US 20150234619A1 · Ozawa · 2015 [cited by examiner]
US 20150242134A1 · Takada et al. · 2015 [cited by applicant]
US 20150301970A1 · Armstead et al. · 2015 [cited by applicant]
US 20150370627A1 · Nakajima · 2015 [cited by examiner]
US 20160036909A1 · Joshi · 2016 [cited by examiner]
US 20160092136A1 · Balakrishnan et al. · 2016 [cited by applicant]
US 20160117113A1 · Li et al. · 2016 [cited by applicant]
US 20160335003A1 · Ahmed et al. · 2016 [cited by applicant]
US 20170153955A1 · Lee · 2017 [cited by examiner]
US 20170235507A1 · Sinha et al. · 2017 [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 20190095299A1 · Liu et al. · 2019 [cited by applicant]
US 20190108888A1 · Sarkar et al. · 2019 [cited by applicant]
US 20190334987A1 · Mallick et al. · 2019 [cited by applicant]
US 20200021653A1 · Rao et al. · 2020 [cited by applicant]
US 20200045109A1 · Hegde et al. · 2020 [cited by applicant]
US 20200097203A1 · Mallick · 2020 [cited by examiner]
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 20210109658A1 · Mallick 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 20210255784A1 · Anchi et al. · 2021 [cited by applicant]
US 20210263665A1 · Rao et al. · 2021 [cited by applicant]
US 20220171559A1 · Anchi et al. · 2022 [cited by applicant]
US 20220179804A1 · Anchi et al. · 2022 [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]
NVM Express, “NVM Express Base Specification, Revision 2.0b,” NVM Express, Jan. 6, 2022, 455 pages. [cited by applicant]
Dell Technologies, “Dell EMC Metro Node 7.0.1,” Product Guide, Jul. 2021, 33 pages. [cited by applicant]
Dell Technologies, “Asymmetric Logical Unit Access,” https://infohub.delltechnologies.com/l/dell-powervault-me5-series-vmware-vsphere-best-practices/asymmetric-logical-unit-access, Accessed Jan. 10, 2023, 1 page. [cited by applicant]
Dell Technologies, “NVMe Common Storage Elements,” https://infohub.delltechnologies.com/l/nvme-nvme-tcp-and-dell-smartfabric-storage-software-overview-ip-san-solution-primer-1/nvme-common-storage-elements, Accessed Jan.… [cited by applicant]