MANAGING A GLOBAL NAMESPACE FOR A DISTRIBUTED FILESYSTEM
First Claim
1. A computer-implemented method for managing a global namespace for a distributed filesystem, the method comprising:
- collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises;
storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems; and
caching data for the distributed filesystem in each cloud controller;
splitting a global namespace for the distributed filesystem across the two or more cloud controllers, wherein splitting the global namespace comprises;
assigning distinct portions of the global namespace to two or more of the cloud controllers, wherein each cloud controller is configured to manage write accesses for its assigned portion of the global namespace, wherein a set of namespace mappings indicate the portions of the namespace that are assigned to each cloud controller; and
receiving at an initial cloud controller a request from a client system to access a target file in the distributed filesystem;
wherein the initial cloud controller is configured to use a namespace mapping for the global namespace to determine a preferred cloud controller for the request.
9 Assignments
0 Petitions
Accused Products
Abstract
The disclosed embodiments disclose techniques for managing a global namespace for a distributed filesystem. Two or more cloud controllers collectively manage distributed filesystem data that is stored in a cloud storage system; the cloud controllers ensure data consistency for the stored data, and each cloud controller caches portions of the distributed filesystem. Furthermore, a global namespace for the distributed filesystem is also split across these cloud controllers, with each cloud controller “owning” (e.g., managing write accesses for) a distinct portion of the global namespace and maintaining a set of namespace mappings that indicate which portion of the namespace is assigned to each cloud controller. During operation, an initial cloud controller receives a request from a client system to access a target file in the distributed system. This initial cloud controller uses the namespace mappings for the global namespace to determine a preferred cloud controller that will handle the request.
455 Citations
18 Claims
-
1. A computer-implemented method for managing a global namespace for a distributed filesystem, the method comprising:
-
collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises; storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems; and caching data for the distributed filesystem in each cloud controller; splitting a global namespace for the distributed filesystem across the two or more cloud controllers, wherein splitting the global namespace comprises; assigning distinct portions of the global namespace to two or more of the cloud controllers, wherein each cloud controller is configured to manage write accesses for its assigned portion of the global namespace, wherein a set of namespace mappings indicate the portions of the namespace that are assigned to each cloud controller; and receiving at an initial cloud controller a request from a client system to access a target file in the distributed filesystem; wherein the initial cloud controller is configured to use a namespace mapping for the global namespace to determine a preferred cloud controller for the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for managing a global namespace for a distributed filesystem, the method comprising:
-
collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises; storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems; and caching data for the distributed filesystem in each cloud controller; splitting a global namespace for the distributed filesystem across the two or more cloud controllers, wherein splitting the global namespace comprises; assigning distinct portions of the global namespace to two or more of the cloud controllers, wherein each cloud controller is configured to manage write accesses for its assigned portion of the global namespace, wherein a set of namespace mappings indicate the portions of the namespace that are assigned to each cloud controller; and receiving at an initial cloud controller a request from a client system to access a target file in the distributed filesystem; wherein the initial cloud controller is configured to use a namespace mapping for the global namespace to determine a preferred cloud controller for the request.
-
-
18. A cloud controller that manages a portion of a global namespace for a distributed filesystem, comprising:
-
a processor; a storage mechanism that stores metadata for the distributed filesystem; and a storage management mechanism; wherein two or more cloud controllers collectively manage the data of the distributed filesystem; wherein a global namespace for the distributed filesystem is split across two or more cloud controllers; wherein splitting the global namespace comprises assigning a distinct portion of the global namespace to each cloud controller; wherein each cloud controller is configured to manage write accesses for its assigned portion of the global namespace; wherein a set of namespace mappings indicate the portions of the namespace that are assigned to each cloud controller; wherein the cloud controller is configured to receive a request from a client system to access a target file in the distributed filesystem; and wherein the cloud controller is further configured to use a namespace mapping for the global namespace to determine a preferred cloud controller for the request.
-
Specification