IP Library › Granted Patent US 12,748,664
Granted Patent B2
US 12,748,664 · App. 18/335,794 · Granted Sep 29, 2026

High availability using virtual storage controllers in a scale out storage cluster

Inventors: Pratapa Reddy Vaka (Saratoga, CA); Jaspal Kohli (Sunnyvale, CA); Hari Krishna Mudaliar (Pleasanton, CA); Shwetashree Virajamangala (Cupertino, CA); Raju Kurunkad Vasudevan (Bengaluru, IN)
Assignee: Microsoft Technology Licensing, LLC
G06F11/1423G06F11/2028
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,748,664
App. No.
18/335,794
Granted
Sep 29, 2026
Kind
B2
Abstract

Examples are provided for a method of providing access to data of a data center. In one aspect, the method comprises storing a unit of data to each of a plurality of data nodes of a data center, designating a first node of the data center as a primary access node for the unit of data, the primary access node being configured to service access requests to the unit of data using one or more of the plurality of data nodes, determining that the first node is not available, and performing a failover process by reconfiguring a second node of the data center as the primary access node for the unit of data.

Claims (65)

1 . A method of providing access to data of a data center, the method comprising:

storing a unit of data to each of a plurality of data nodes of a data center;

designating a first node of the data center as a primary access node for the unit of data, the primary access node being configured to service access requests to the unit of data using one or more of the plurality of data nodes;

designating a second node of the data center as a secondary access node for the unit of data, wherein the secondary access node acts as a backup access node in case the primary access node is unavailable;

after designating the second node of the data center as the secondary access node, determining that the first node is not available;

performing a failover process by reconfiguring the second node of the data center as the primary access node for the unit of data, wherein the reconfigured second node can service access requests without relocating data;

before a failure of the second node, designating a third node as the secondary access node;

performing a second failover process; and

before a failure of the third node, designating the first node of the data center as the secondary access node.

2 . The method of claim 1 , further comprising:

receiving a request from a client associated with the unit of data to access the unit of data using the primary access node; and

after determining that the first node is not available, providing access to the client to the unit of data via the second node.

3 . The method of claim 2 , wherein the failover process is performed by a storage service, and wherein access to the unit of data via the second node is provided by a virtual storage controller unit in response to the failover process.

4 . The method of claim 2 , wherein the request from the client to access the unit of data comprises at least one of reading, writing, or modifying the unit of data.

5 . The method of claim 1 , wherein the failover process is performed without copying the unit of data when the plurality of data nodes is available.

6 . The method of claim 1 , further comprising:

determining that at least one data node of the plurality of data nodes is unavailable, wherein the at least one data node is below a predetermined number; and

performing a rebuild of the at least one data node that is unavailable during the performing of the failover process.

7 . The method of claim 1 , wherein performing the failover process further comprises:

determining that a first candidate node is not available; and

reconfiguring a second candidate node as the primary access node, wherein the second candidate node is the second node.

8 . The method of claim 1 , further comprising:

determining that a data node of the plurality of data nodes is unavailable;

configuring an additional node of the data center, separate from the plurality of data nodes, as a data node for the unit of data; and

copying at least a portion of the unit of data to the additional node.

9 . The method of claim 1 , further comprising monitoring a periodic signal from the primary access node, wherein determining that the primary access node is not available comprises determining that the periodic signal has not been received from the primary access node.

10 . A storage system for providing access to data of a data center, the storage system comprising:

a plurality of data processing units; and

a plurality of nodes, each node associated with a respective data processing unit of the plurality of data processing units, wherein the storage system is configured to:

store a unit of data to one or more storage devices of one or more data nodes, wherein the one or more data nodes are nodes within the plurality of nodes;

designate a first access node as a primary access node for the unit of data, wherein the first access node is a node within the plurality of nodes different from the one or more data nodes, and wherein the primary access node is configured to service access requests to the unit of data using the one or more data nodes;

designate a second access node of the plurality of nodes as a secondary access node for the unit of data, wherein the secondary access node acts as a backup access node in case the primary access node is unavailable;

after designating the second access node of the plurality of nodes as the secondary access node, determine that the primary access node is not available;

perform a failover process by reconfiguring the second access node as the primary access node for the unit of data, wherein the second access node is a node within the plurality of nodes different from the first access node and the one or more data nodes, wherein the reconfigured second node can service access requests without relocating data;

before a failure of the second access node, designate a third access node as the secondary access node;

perform a second failover process; and

before a failure of the third access node, designate the first access node as the secondary access node.

11 . The storage system of claim 10 , wherein the storage system is further configured to:

receive a request from a client associated with the unit of data to access the unit of data using the primary access node; and

after determining that the first access node is not available, providing access to the client to the unit of data via the second access node.

12 . The storage system of claim 10 , wherein the failover process is performed by a storage service, and wherein providing access to the client to the unit of data via the second access node is allowed by a virtual storage controller unit of the second access node in response to the failover process.

13 . The storage system of claim 10 , wherein performing the failover process further comprises:

determining that a first candidate node is not available; and

reconfiguring a second candidate node as the primary access node, wherein the second candidate node is the second access node.

14 . A method for providing access to data of a data center, the method comprising:

storing a unit of data to each of a plurality of data nodes of a data center;

designating a first node of the data center as a primary access node for the unit of data, the primary access node being configured to service access requests to the unit of data using one or more of the plurality of data nodes;

designating a second node of the data center as a secondary access node for the unit of data, wherein the secondary access node acts as a backup access node in case the primary access node is unavailable;

after designating the second node of the data center as the secondary access node, determining that the primary access node is not available;

performing a failover process by:

reconfiguring the second node of the data center as the primary access node for the unit of data, wherein the reconfigured second node can service access requests without relocating data, and wherein reconfiguring the second node comprises:

removing connections from the first node to the unit of data;

establishing connections from the second node to the unit of data; and

before a failure of the second node, designating a third node as the secondary access node;

performing a second failover process; and

before a failure of the third node, designating the first node of the data center as the secondary access node.

15 . The method of claim 14 , further comprising:

receiving a request from a client associated with the unit of data to access the unit of data using the primary access node; and

after determining that the first node is not available, providing access to the client to the unit of data via the second node.

16 . The method of claim 14 , wherein performing the failover process further comprises:

determining that a first candidate node is not available; and

reconfiguring a second candidate node as the primary access node, wherein the second candidate node is the second node.

17 . The method of claim 14 , further comprising:

determining that a current primary access node is not available; and

after determining that the current primary access node is not available, performing the second failover process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2023
From: VAKA, PRATAPA REDDY; KOHLI, JASPAL; MUDALIAR, HARI KRISHNA; VIRAJAMANGALA, SHWETASHREE; VASUDEVAN, RAJU KURUNKAD
To: FUNGIBLE, INC.
Reel/Frame 064740/0752 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: FUNGIBLE, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064434/0430 →
Continuity (2)
Provisional Application 63490862 · Mar 17, 2023
Related Publication 20240311246A1 · Sep 19, 2024
References Cited (23)
US 6651183B1 · Gensler, Jr. · 2003 [cited by examiner]
US 6836830B1 · Yamagami · 2004 [cited by examiner]
US 8327186B2 · Coatney · 2012 [cited by examiner]
US 9710344B1 · Helmick · 2017 [cited by examiner]
US 10445197B1 · Harpreet · 2019 [cited by applicant]
US 11748214B2 · Agrawal · 2023 [cited by examiner]
US 20030051187A1 · Mashayekhi · 2003 [cited by examiner]
US 20040205377A1 · Nakamura · 2004 [cited by examiner]
US 20050015657A1 · Sugiura · 2005 [cited by examiner]
US 20050246393A1 · Coates · 2005 [cited by examiner]
US 20150143164A1 · Veerla · 2015 [cited by examiner]
US 20160085647A1 · Ramasubramaniam · 2016 [cited by examiner]
US 20160098331A1 · Banka · 2016 [cited by examiner]
US 20160188427A1 · Chandrashekar · 2016 [cited by examiner]
US 20180232142A1 · Shekar · 2018 [cited by applicant]
US 20200084142A1 · Bochkar · 2020 [cited by examiner]
US 20210279145A1 · Dings · 2021 [cited by examiner]
US 20210303160A1 · Lieblich · 2021 [cited by applicant]
US 20220066811A1 · Zhao · 2022 [cited by applicant]
US 20220164334A1 · Chen · 2022 [cited by examiner]
US 20220300387A1 · Rayaraddi · 2022 [cited by examiner]
US 20230236936A1 · Prasad · 2023 [cited by examiner]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/018980, Jun. 19, 2024, 15 pages. [cited by applicant]