IP Library › Granted Patent US 10,275,467
Granted Patent B2
US 10,275,467 · App. 15/071,036 · Granted Apr 30, 2019

Multi-level high availability model for an object storage service

Inventors: Diaa E. Fathalla (Redmond, WA); Sai Sudhir Anantha Padmanaban (Redmond, WA); Ali Ediz Turkoglu (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F17/30165
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 10,275,467
App. No.
15/071,036
Filed
Mar 15, 2016
Granted
Apr 30, 2019
Kind
B2
Examiner
UDDIN, MD I
Art Unit
2169
USPC
707/827
Abstract

Implementing a high availability mode. A distributed computing environment includes a plurality of nodes. Each of the nodes has an instance of a particular storage service. One or more of the instances have one or more cluster shared filesystems coupled to them. A method includes monitoring arrivals and departures of cluster shared file systems. The method further includes identifying the arrival of one or more clustered shared file systems previously attached to a different instance of the storage service on a different node and being accessible by following one or more namespace partitions located in that clustered shared file system. As a result, the method further includes connecting the instance of the storage service to the one or more arriving clustered shared file systems and exposing the one or more namespace partitions located in that clustered shared file system.

Claims (47)

1. A system for implementing a high availability model in a distributed computing environment, the distributed computing environment comprising a plurality of nodes, each of the nodes having an instance of a particular storage service, and one or more of the instances of a particular storage service being coupled to one or more cluster shared file systems, the system comprising:

one or more processors; and

one or more computer-readable storage devices having stored thereon instructions that are executable by the one or more processors to configure the computer system to implement the high availability model in the distributed computing environment, wherein the instructions are executable to configure the computer system to perform at least the following:

at an instance of a storage service on a node in the distributed computing environment, wherein the storage service configured to:

manage one or more blobs, each blob storing file data in a file along with blob metadata stored in a database, and enabled to manage zero or more partitions, each partition comprising one or more blobs;

monitoring arrivals and departures of cluster shared file systems;

at the instance of the storage service on the node, identifying an arrival of a clustered shared file system which had previously been attached to a different instance of the storage service on a different node in the distributed computing environment, the clustered shared file system having been accessible by following a namespace partition located in that clustered shared file system, wherein the namespace partition is aligned with the clustered shared file system artifacts, such that on failover, the namespace partition remains aligned with a particular shared clustered file system; and

as a result of identifying the arrival of the clustered shared file system:

connecting the instance of the storage service on the node to the arriving clustered shared file system including mapping the namespace partition to the shared clustered file system; and

exposing the namespace partition located in that clustered shared file system, such that after having been exposed, the arriving clustered shared file system is accessible and that users can still access file system artifacts within the arriving clustered shared file system using the same namespace partition as previously used; and

sending a message from the node that the namespace partition is now hosted on the node.

2. The system of claim 1 , wherein namespace partitions located in the clustered shared file systems are configured such that a given namespace is partitioned across the different clustered shared file systems in the distributed environment.

3. The system of claim 1 , wherein a namespace partition comprises one or more containers, wherein each container comprises zero or more blobs.

4. The system of claim 1 , wherein a namespace partition comprises zero or more blobs.

5. The system of claim 1 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to provide information correlating the one or more namespace partitions to the node.

6. The system of claim 1 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to maintain a mapping of containers to namespace partitions.

7. The system of claim 1 , wherein one or more computer-readable media further have stored thereon instructions that are executable by the one or more processors to configure the computer system to maintain a mapping of clustered shared file systems to namespace partitions.

8. In a distributed computing environment including a plurality of nodes, each of the nodes having an instance of a particular storage service, one or more of the instances having one or more cluster shared file systems coupled to them, a method of implementing a high availability model, the method comprising:

at an instance of a storage service on a node in the distributed computing environment, wherein the storage service configured to:

manage one or more blobs, each blob storing file data in a file along with blob metadata stored in a database, and enabled to manage zero or more partitions, each partition comprising one or more blobs;

monitoring arrivals and departures of cluster shared file systems;

at the instance of the storage service on the node, identifying the arrival of one or more clustered shared file systems which had previously been attached to a different instance of the storage service on a different node in the distributed computing environment, the one or more clustered shared file systems having been accessible by following a namespace partition located in that clustered shared file system, wherein the namespace partition is aligned with the clustered shared file system artifacts, such that on failover, the namespace partition remains aligned with a particular shared clustered file system; and

as a result of identifying the arrival of the clustered shared file system:

connecting the instance of the storage service on the node to the one or more arriving clustered shared file systems including mapping the namespace partition to the shared clustered file system; and

exposing the namespace partition located in that clustered shared file system, such that, after having been exposed, the arriving clustered shared file system is accessible and that users can still access file system artifacts within the arriving clustered shared file system using the same namespace partition as previously used; and

sending a message from the node that the namespace partition is now hosted on the node.

9. The method of claim 8 , wherein namespace partitions located in the clustered shared file systems are configured such that a given namespace is partitioned across the different clustered shared file systems in the distributed environment.

10. The method of claim 8 , wherein a namespace partition comprises one or more containers.

11. The method of claim 10 , wherein each container comprises zero or more blobs.

12. The method of claim 8 , wherein a namespace partition comprises zero or more blobs.

13. The method of claim 8 , further comprising, providing information correlating the one or more namespace partitions to the node.

14. The method of claim 8 , further comprising, maintaining a mapping of containers to namespace partitions.

15. The method of claim 8 , further comprising, maintaining a mapping of clustered shared file systems to namespace partitions.

16. A system comprising: a node, wherein the node comprises:

one or more computer processors and system memory; and

a blob (binary large object) service, wherein the blob service is configured to:

manage one or more blobs, each blob storing file data in a file along with blob metadata stored in a database, and enabled to manage zero or more partitions, each partition comprising one or more blobs;

monitor arrivals and departures of cluster shared file systems;

identify the arrival of a clustered shared file system which had previously been attached to a different instance of a blob service on a different node in a distributed computing environment and being accessible by following a namespace partition located in that clustered shared file system, wherein the namespace partition is aligned with the clustered shared file system artifacts, such that on failover, the namespace partition remains aligned with a particular shared clustered file system; and

as a result of identifying the arrival of the clustered shared file system:

connect the blob service on the node to the arriving clustered shared file system including mapping the namespace partition to the shared clustered file system;

expose the namespace partition located in that clustered shared file system, such that, after having been exposed, the arriving clustered shared file system is accessible and that users can still access file system artifacts within the arriving clustered shared file system using the same namespace partition as previously used; and

sending a message from the node that the namespace partition is now hosted on the node.

17. The system of claim 16 , wherein namespace partitions located in a clustered shared file systems are configured such that a given namespace is partitioned across the different clustered shared file systems in a distributed environment.

18. The system of claim 16 , wherein a namespace partition comprises one or more containers, wherein each container comprises zero or more blobs.

19. The system of claim 16 , wherein a namespace partition comprises zero or more blobs.

20. The system of claim 16 , wherein the blob service is configured to maintain a mapping of clustered shared file systems to namespace partitions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2016
From: FATHALLA, DIAA E.; ANANTHA PADMANABAN, SAI SUDHIR; TURKOGLU, ALI EDIZ
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 037990/0660 →
Continuity (2)
Provisional Application 62267809 · Dec 15, 2015
Related Publication 20170169048A1 · Jun 15, 2017