Metadata updating
First Claim
1. A data storage system, comprising:
- a storage media comprising a non-volatile storage device having a communications interface with a management sub-system; and
the management sub-system comprising a plurality of controllers in communication with the storage media, wherein the plurality of controllers are in communications with the storage device and with an external user,whereinthe management sub-system maintains metadata in the storage media, the metadata containing relationships between logical block addresses (LBAs) and the location of the LBAs in the storage media and each of the controllers maintains an image of the metadata identical to the metadata images on the other controllers, the metadata image corresponding to at least current active user access requirements,a controller of the plurality of controllers is assigned as a master controller,the master controller sends changed metadata either to each of the controllers or to the storage device,the master controller instructs each relevant controller to read metadata from the storage device to perform an update,the master controller adds the update to a log file and sends the log file to each of the other controllers and directs each of the controllers having overlapping storage allocation to update the metadata at each location with the log file when the update to the metadata is less than a specified value, andthe master controller sends the update to the storage media to update the metadata and directs each of the controllers to retrieve the updated metadata from the storage media when the update to the metadata is more than the specified value.
6 Assignments
0 Petitions
Accused Products
Abstract
A storage system and method of operating the storage system is described where the metadata used to access the data stored in a storage device is distributed amongst a plurality of controllers in communication with a user, with each other and with the storage device. Each controller stores at least the metadata needed to access the data relevant to the user at the time, and metadata is updated to respond to internal system activities such as device failures, snapshots, backup operations or the like. To preserve coherence of the metadata, each metadata update is communicated to the other controllers and the storage device. The update is either transmitted to the other controllers and to the storage device and each metadata location is updated, or the update is transmitted to the storage device and each of the controllers is instructed to request an update from the storage device.
-
Citations
9 Claims
-
1. A data storage system, comprising:
-
a storage media comprising a non-volatile storage device having a communications interface with a management sub-system; and the management sub-system comprising a plurality of controllers in communication with the storage media, wherein the plurality of controllers are in communications with the storage device and with an external user, wherein the management sub-system maintains metadata in the storage media, the metadata containing relationships between logical block addresses (LBAs) and the location of the LBAs in the storage media and each of the controllers maintains an image of the metadata identical to the metadata images on the other controllers, the metadata image corresponding to at least current active user access requirements, a controller of the plurality of controllers is assigned as a master controller, the master controller sends changed metadata either to each of the controllers or to the storage device, the master controller instructs each relevant controller to read metadata from the storage device to perform an update, the master controller adds the update to a log file and sends the log file to each of the other controllers and directs each of the controllers having overlapping storage allocation to update the metadata at each location with the log file when the update to the metadata is less than a specified value, and the master controller sends the update to the storage media to update the metadata and directs each of the controllers to retrieve the updated metadata from the storage media when the update to the metadata is more than the specified value. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of managing distributed metadata in a storage system, comprising:
-
providing a plurality of controllers in communication with a common storage medium; connecting the controllers and the storage medium using a network; maintaining metadata at each of the controllers containing relationships between logical block addresses (LBAs) or names of files in user requests and the location of the LBAs or files in the common storage medium; assigning one of the controllers as a master controller; updating the metadata at each of the controllers having an overlapping storage allocation, and updating the metadata on the common storage medium; wherein the step of updating includes the master controller; if the update is less than a specified value, sending a log file including the update to each of the controllers having the overlapping storage allocation and to the metadata on the common storage medium and storing the updates in a file at each location; and if the update is more than the specified value, sending the update to the common storage location to update the metadata and directing each of the other controllers to retrieve one of; the log file;
or,the updated metadata from the common storage medium. - View Dependent Claims (7, 8)
-
-
9. A computer program product stored on a non-transient computer readable medium, comprising:
-
instructions for configuring a plurality of controllers and a storage medium controller in mutual communication with each other and a user to perform the steps of; maintaining metadata at each controller containing relationships between logical block addresses (LBAs) or names of files in user requests and locations of the LBAs or files on the storage medium; maintaining metadata at the storage medium containing the relationships between the logical block addresses (LBAs) or names of files in user requests and the locations of the LBAs or files on the storage medium, wherein the metadata is accessible by the plurality of controllers; updating the metadata with a master controller of the plurality of controllers and updating the metadata with the other controllers and the storage medium controller by one of; the master controller sending the metadata update in a log file to each of the other controllers and the storage medium controller if the update is below a specified value; and the master controller sending the metadata update to the storage medium controller and instructing the plurality of controllers to retrieve one of an update the log file or the metadata stored in the storage medium controller if the update is above the specified value.
-
Specification