IP Library › Granted Patent US 12,267,252
Granted Patent B2
US 12,267,252 · App. 18/541,762 · Granted Apr 1, 2025

Shared storage model for high availability within cloud environments

Inventors: Christopher Busick (Shrewsbury, MA); Rajesh Rajaraman (Acton, MA); James Silva (Bedford, MA)
Assignee: NetApp, Inc.
H04L47/746G06F9/45558G06F11/0757G06F13/4221G06F16/1774G06F16/1824H04L41/0668H04L45/28H04L45/34H04L47/125H04L47/29H04L47/786H04L67/1097G06F2009/4557G06F2213/0036
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,267,252
App. No.
18/541,762
Filed
Dec 15, 2023
Granted
Apr 1, 2025
Kind
B2
Art Unit
2449
USPC
718/1
Abstract

Techniques are provided for a high availability solution (e.g., a network attached storage (NAS) solution) with address preservation during switchover. A first virtual machine is deployed into a first domain and a second virtual machine is deployed into a second domain of a computing environment. The first and second virtual machines are configured as a node pair for providing clients with access to data stored within an aggregate comprising one or more storage structures within shared storage of the computing environment. A load balancer is utilized to manage logical interfaces used by clients to access the virtual machines. During switchover, the load balancer preserves an IP address used to mount and access a data share of the aggregate used by a client.

Claims (48)

1. A method executed by one or more processors, comprising:

intercepting a request with a first address corresponding to stored data provided by a primary virtual machine, wherein a logical interface of the primary virtual machine is initialized at a port of a secondary virtual machine, and the secondary virtual machine is configured to monitor access requests for the stored data;

determining that the request is to be routed to a second address of the primary virtual machine when the primary virtual machine is operational; and

utilizing a floating address to route the request to the second address as a routed request that retains the first address as a request destination corresponding to a storage location of the store data.

2. The method of claim 1 , comprising:

configuring the primary virtual machine to store heartbeat information within a primary mailbox corresponding to a disk on a root aggregate.

3. The method of claim 1 , comprising:

configuring primary first virtual machine to mirror NVLOG data over an interconnect to the secondary virtual machine.

4. The method of claim 1 , comprising:

configuring the secondary virtual machine to obtain a SCSI reservation on a mailbox disk of the primary virtual machine based upon the secondary virtual machine determining that the primary virtual machine has failed and a switchover should be performed.

5. The method of claim 4 , comprising:

configuring the secondary virtual machine to assimilate disks of the primary virtual machine as part of performing the switchover.

6. The method of claim 4 , comprising:

configuring the secondary virtual machine to replay NVLOG data of the primary virtual machine as part of performing the switchover.

7. The method of claim 1 , comprising:

configuring the secondary virtual machine to listen to the port for client access requests.

8. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:

intercept a request with a first address corresponding to stored data provided by a primary virtual machine, wherein a logical interface of the primary virtual machine is initialized at a port of a secondary virtual machine, and the secondary virtual machine is configured to monitor access requests for the stored data;

determine that the request is to be routed to a second address of the primary virtual machine when the primary virtual machine is operational; and

utilize a floating address to route the request to the second address as a routed request that retains the first address as a request destination corresponding to a storage location of the store data.

9. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

configure the primary virtual machine to store heartbeat information within a primary mailbox corresponding to a disk on a root aggregate.

10. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

configure primary first virtual machine to mirror NVLOG data over an interconnect to the secondary virtual machine.

11. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

configure the secondary virtual machine to obtain a SCSI reservation on a mailbox disk of the primary virtual machine based upon the secondary virtual machine determining that the primary virtual machine has failed and a switchover should be performed.

12. The non-transitory machine readable medium of claim 11 , wherein the instructions cause the machine to:

configure the secondary virtual machine to assimilate disks of the primary virtual machine as part of performing the switchover.

13. The non-transitory machine readable medium of claim 11 , wherein the instructions cause the machine to:

configure the secondary virtual machine to replay NVLOG data of the primary virtual machine as part of performing the switchover.

14. The non-transitory machine readable medium of claim 9 , wherein the instructions cause the machine to:

configure the secondary virtual machine to listen to the port for client access requests.

15. A computing device, comprising:

a memory comprising instructions; and

a processor coupled to the memory, the processor configured to execute the instructions to cause the processor to:

intercept a request with a first address corresponding to stored data provided by a primary virtual machine, wherein a logical interface of the primary virtual machine is initialized at a port of a secondary virtual machine, and the secondary virtual machine is configured to monitor access requests for the stored data;

determine that the request is to be routed to a second address of the primary virtual machine when the primary virtual machine is operational; and

utilize a floating address to route the request to the second address as a routed request that retains the first address as a request destination corresponding to a storage location of the store data.

16. The computing device of claim 15 , wherein the instructions cause the processor to:

configure the primary virtual machine to store heartbeat information within a primary mailbox corresponding to a disk on a root aggregate.

17. The computing device of claim 15 , wherein the instructions cause the processor to:

configure primary first virtual machine to mirror NVLOG data over an interconnect to the secondary virtual machine.

18. The computing device of claim 15 , wherein the instructions cause the processor to:

configure the secondary virtual machine to obtain a SCSI reservation on a mailbox disk of the primary virtual machine based upon the secondary virtual machine determining that the primary virtual machine has failed and a switchover should be performed.

19. The computing device of claim 18 , wherein the instructions cause the processor to:

configure the secondary virtual machine to assimilate disks of the primary virtual machine as part of performing the switchover.

20. The computing device of claim 18 , wherein the instructions cause the processor to:

configure the secondary virtual machine to replay NVLOG data of the primary virtual machine as part of performing the switchover.

Continuity (4)
Continuation 18071778 · Nov 30, 2022
Continuation 16658648 · Oct 21, 2019
Provisional Application 62748409 · Oct 20, 2018
Related Publication 20240137329A1 · Apr 25, 2024
References Cited (105)
US 6751191B1 · Kanekar · 2004 [cited by examiner]
US 7330862B1 · Srinivasan et al. · 2008 [cited by applicant]
US 7386546B1 · Santry et al. · 2008 [cited by applicant]
US 7739546B1 · Rodrigues et al. · 2010 [cited by applicant]
US 7865663B1 · Nelson et al. · 2011 [cited by applicant]
US 8135930B1 · Mattox et al. · 2012 [cited by applicant]
US 8621461B1 · Chandrachari et al. · 2013 [cited by applicant]
US 8806266B1 · Qu et al. · 2014 [cited by applicant]
US 9344493B1 · Anand · 2016 [cited by applicant]
US 9553788B1 · Callan · 2017 [cited by applicant]
US 9841988B1 · Magnezi · 2017 [cited by examiner]
US 9871712B1 · Sorenson, III et al. · 2018 [cited by applicant]
US 9984140B1 · Sukumaran et al. · 2018 [cited by applicant]
US 10511514B1 · Vytla et al. · 2019 [cited by applicant]
US 10623319B1 · Talnikov et al. · 2020 [cited by applicant]
US 10659366B1 · Mehr · 2020 [cited by applicant]
US 11080096B1 · Fakhouri et al. · 2021 [cited by applicant]
US 11128573B2 · Busick et al. · 2021 [cited by applicant]
US 11146564B1 · Ankam et al. · 2021 [cited by applicant]
US 11316822B1 · Gawade et al. · 2022 [cited by applicant]
US 11522808B2 · Busick et al. · 2022 [cited by applicant]
US 11855905B2 · Busick et al. · 2023 [cited by applicant]
US 20020107966A1 · Baudot · 2002 [cited by examiner]
US 20020199113A1 · Pfister et al. · 2002 [cited by applicant]
US 20030065782A1 · Nishanov et al. · 2003 [cited by applicant]
US 20030158933A1 · Smith · 2003 [cited by applicant]
US 20030200398A1 · Harris · 2003 [cited by applicant]
US 20030217241A1 · Chong, Jr. et al. · 2003 [cited by applicant]
US 20040233910A1 · Chen et al. · 2004 [cited by applicant]
US 20060133418A1 · Anand · 2006 [cited by applicant]
US 20060259641A1 · Kim et al. · 2006 [cited by applicant]
US 20080028145A1 · Lecomte et al. · 2008 [cited by applicant]
US 20090007135A1 · Rathunde et al. · 2009 [cited by applicant]
US 20100088698A1 · Krishnamurthy · 2010 [cited by applicant]
US 20100287416A1 · Shacham et al. · 2010 [cited by applicant]
US 20130346573A1 · Hemachandran et al. · 2013 [cited by applicant]
US 20140143401A1 · Carlen et al. · 2014 [cited by applicant]
US 20140229606A1 · Griswold et al. · 2014 [cited by applicant]
US 20140359612A1 · D'Amato et al. · 2014 [cited by applicant]
US 20140359698A1 · Sorenson, III et al. · 2014 [cited by applicant]
US 20150309892A1 · Ramasubramaniam et al. · 2015 [cited by applicant]
US 20150312337A1 · Keremane et al. · 2015 [cited by applicant]
US 20150372935A1 · Åkervik et al. · 2015 [cited by applicant]
US 20160055018A1 · Usgaonkar et al. · 2016 [cited by applicant]
US 20160127307A1 · Jain et al. · 2016 [cited by applicant]
US 20160139943A1 · Bezbaruah et al. · 2016 [cited by applicant]
US 20160173517A1 · Diaz et al. · 2016 [cited by applicant]
US 20160261688A1 · Anand · 2016 [cited by applicant]
US 20160315858A1 · Vytla et al. · 2016 [cited by applicant]
US 20170060705A1 · Sridhara · 2017 [cited by applicant]
US 20170109184A1 · Ramani et al. · 2017 [cited by applicant]
US 20170249082A1 · Litke et al. · 2017 [cited by applicant]
US 20170272523A1 · Cillis et al. · 2017 [cited by applicant]
US 20170322851A1 · Brown · 2017 [cited by applicant]
US 20170346686A1 · Mudigonda · 2017 [cited by applicant]
US 20180034769A1 · Modi et al. · 2018 [cited by applicant]
US 20180054475A1 · Agarwal et al. · 2018 [cited by applicant]
US 20180063231A1 · Park · 2018 [cited by applicant]
US 20180063233A1 · Park · 2018 [cited by applicant]
US 20180091591A1 · Puri et al. · 2018 [cited by applicant]
US 20180232395A1 · Deshmukh et al. · 2018 [cited by applicant]
US 20180255463A1 · Zheng et al. · 2018 [cited by applicant]
US 20180260261A1 · Mohammed et al. · 2018 [cited by applicant]
US 20190007206A1 · Surla et al. · 2019 [cited by applicant]
US 20190102455A1 · Radhakrishnan et al. · 2019 [cited by applicant]
US 20190278524A1 · Dev et al. · 2019 [cited by applicant]
US 20190280917A1 · Hughes et al. · 2019 [cited by applicant]
US 20190306231A1 · Shimoga Manjunatha et al. · 2019 [cited by applicant]
US 20190311049A1 · Bhargava M R et al. · 2019 [cited by applicant]
US 20200034191A1 · Tarasuk-Levin et al. · 2020 [cited by applicant]
US 20200036578A1 · Gupta et al. · 2020 [cited by applicant]
US 20200036638A1 · Li et al. · 2020 [cited by applicant]
US 20200092138A1 · Tillotson et al. · 2020 [cited by applicant]
US 20200092201A1 · Tillotson et al. · 2020 [cited by applicant]
US 20200099659A1 · Cometto et al. · 2020 [cited by applicant]
US 20200125537A1 · Busick et al. · 2020 [cited by applicant]
US 20200213185A1 · Hughes et al. · 2020 [cited by applicant]
US 20200280519A1 · Sharifi Mehr · 2020 [cited by applicant]
US 20200382403A1 · Borisov et al. · 2020 [cited by applicant]
US 20210006473A1 · Chitalia et al. · 2021 [cited by applicant]
US 20210044523A1 · Kawatani · 2021 [cited by applicant]
US 20210058364A1 · Tillotson et al. · 2021 [cited by applicant]
US 20210083932A1 · Hughes et al. · 2021 [cited by applicant]
US 20210092639A1 · Larsson et al. · 2021 [cited by applicant]
US 20220006755A1 · Busick et al. · 2022 [cited by applicant]
US 20220174042A1 · Cometto et al. · 2022 [cited by applicant]
US 20230087493A1 · Busick et al. · 2023 [cited by applicant]
Non-Final Office Action mailed on Sep. 13, 2024 for U.S. Appl. No. 17/479,254, filed Sep. 20, 2021, 13 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 26, 2024 for U.S. Appl. No. 18/344,948, filed Jun. 30, 2023, 09 pages. [cited by applicant]
Notice of Allowance mailed on Nov. 5, 2024 for U.S. Appl. No. 18/344,948, filed Jun. 30, 2023, 05 pages. [cited by applicant]
A Tutorial on SCSI-3 Persistent Group Reservations, Dec. 2012, SUSE Labs, Version 1.1, Retrieved from :URL: https://www.gonzoleeman.net/documents/scsi-3-pgr-tutorial-v11.pdf, 11 pages. [cited by applicant]
Anonymous, “A Method for Load Balancer Cluster as a Service in Openstack Cloud System,” Sep. 19, 2016, IP.com Prior Art Database Technical Disclosure, retrieved from URL: [https://ip.com/IPCOM/000247596], pp. 1-9. [cited by applicant]
Branden R., et al., “Resource ReSerVation Protocol (RSVP)—Version 1 Functional Specification,” RFC 2205, 1997, Network Working Group, 110 pages. Retrieved from the Internet: URL: https://datatracker.ietf.org/doc/html/rf… [cited by applicant]
Final Office Action mailed on May 19, 2022 for U.S. Appl. No. 16/658,302, filed Oct. 21, 2019, 32 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 7, 2021 for U.S. Appl. No. 16/658,302, filed Oct. 21, 2019, 28 pages. [cited by applicant]
Non-Final Office Action mailed on Sep. 28, 2022 for U.S. Appl. No. 16/658,302, filed Oct. 21, 2019, 37 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 3, 2023 for U.S. Appl. No. 16/658,302, filed Oct. 21, 2019, 02 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 23, 2023 for U.S. Appl. No. 16/658,302, filed Oct. 21, 2019, 02 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 10, 2023 for U.S. Appl. No. 16/658,302, filed Oct. 21, 2019, 8 pages. [cited by applicant]
Notice of Allowance mailed on May 21, 2021 for U.S. Appl. No. 16/658,280, filed Oct. 21, 2019, 9 pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 18, 2023 for U.S. Appl. No. 18/071,778, filed Nov. 30, 2022, 10 pages. [cited by applicant]
Non-Final Office Action mailed on May 2, 2022 for U.S. Appl. No. 16/658,648, filed Oct. 21, 2019, 13 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 3, 2022 for U.S. Appl. No. 16/658,648, filed Oct. 21, 2019, 8 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 9, 2023 for U.S. Appl. No. 18/071,778, filed Nov. 30, 2022, 09 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 29, 2023 for U.S. Appl. No. 18/071,778, filed Nov. 30, 2022, 6 pages. [cited by applicant]