Method for utilizing heterogeneous storage systems by cooperating with server side storage software
First Claim
1. A service system comprising:
- a processor;
a memory operatively coupled to the processor; and
a plurality of servers arranged for applications to run thereon;
in each server of the plurality of servers, a storage library arranged such that the applications use the storage library to read/write data via a network to/from plural storage nodes of different types;
wherein each server of the plurality of servers is arranged to hold a storage list of storage nodes that store objects;
wherein the storage library in each server of the plurality of servers is arranged to manage capabilities of the storage nodes, the capabilities including object replication in response to an object replication request by an application of the applications or object integrity checking in response to an object integrity checking request by the application, in the event a storage node targeted by the request lacks a capability to perform the requested object replication or object integrity checking;
wherein the storage library in each server of the plurality of servers is further arranged to create a write profile for each object created, the write profile including a storage node location for holding an object replica before replication of the object is performed, and information indicating whether an object replication is to be performed by the storage library or by a storage node of the storage nodes having a location for holding the object replica;
wherein each storage node of the storage nodes is arranged to hold a write profile of an object indicating whether the object is stored in a storage node of the storage nodes holding the write profile;
wherein in response to a request by an application for object replication, and if the write profile of the object specifies replication by the storage library, the storage library writes an object data together with its write profile to a primary storage node identified in the write profile as storing an original of the object, and writes the object data together with its write profile to all secondary storage nodes identified in its write profile as storage nodes in which replicas of the object data are stored;
wherein the storage library determines, from an object write request received from an application, whether the storage library or the storage node as the primary storage node of the write request is to perform any replication of the object data; and
wherein when the primary storage node is determined to perform a replication of the object data, the primary storage node reads the write profile of the object to be replicated, checks whether the next storage node as the secondary storage node is specified in the write profile, if the next storage node as the secondary storage node is specified in the write profile, the primary storage node does not perform the replication, but if the next storage node as the secondary storage node is not specified in the write profile, the primary storage node performs the replication to the next storage node.
1 Assignment
0 Petitions
Accused Products
Abstract
In a service system having plural servers and storage systems connected via a network, a storage library is installed on all servers on which applications are running. All applications can use the storage library to create new data, read data, and update data in different types of backend storage systems. In one embodiment, the storage library holds a list of all storage systems which can be used for storing data, and manages capabilities of the storage systems, such as data replication and data integrity checking. The storage library is arranged to create a write profile for each created data in order to indicate how the data is being managed. A storage system and the storage library are thus able to avoid performing unnecessary data management (for example, redundant replication) by checking whether such data management is or has been performed by the storage library or by the storage system by referring to the write profile.
4 Citations
14 Claims
-
1. A service system comprising:
-
a processor; a memory operatively coupled to the processor; and a plurality of servers arranged for applications to run thereon; in each server of the plurality of servers, a storage library arranged such that the applications use the storage library to read/write data via a network to/from plural storage nodes of different types; wherein each server of the plurality of servers is arranged to hold a storage list of storage nodes that store objects; wherein the storage library in each server of the plurality of servers is arranged to manage capabilities of the storage nodes, the capabilities including object replication in response to an object replication request by an application of the applications or object integrity checking in response to an object integrity checking request by the application, in the event a storage node targeted by the request lacks a capability to perform the requested object replication or object integrity checking; wherein the storage library in each server of the plurality of servers is further arranged to create a write profile for each object created, the write profile including a storage node location for holding an object replica before replication of the object is performed, and information indicating whether an object replication is to be performed by the storage library or by a storage node of the storage nodes having a location for holding the object replica; wherein each storage node of the storage nodes is arranged to hold a write profile of an object indicating whether the object is stored in a storage node of the storage nodes holding the write profile; wherein in response to a request by an application for object replication, and if the write profile of the object specifies replication by the storage library, the storage library writes an object data together with its write profile to a primary storage node identified in the write profile as storing an original of the object, and writes the object data together with its write profile to all secondary storage nodes identified in its write profile as storage nodes in which replicas of the object data are stored; wherein the storage library determines, from an object write request received from an application, whether the storage library or the storage node as the primary storage node of the write request is to perform any replication of the object data; and wherein when the primary storage node is determined to perform a replication of the object data, the primary storage node reads the write profile of the object to be replicated, checks whether the next storage node as the secondary storage node is specified in the write profile, if the next storage node as the secondary storage node is specified in the write profile, the primary storage node does not perform the replication, but if the next storage node as the secondary storage node is not specified in the write profile, the primary storage node performs the replication to the next storage node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for managing capabilities of a storage library and storage nodes in a service system, comprising the steps of:
-
creating a write profile of an object to be written in response to a write request; adding a specification to the write profile that indicates whether the object is to be replicated by the storage library or by a primary storage node identified in the write profile and to which the object is to be written in response to the write request; writing the object data and the write profile to the primary storage node identified in the write profile; and replicating the object data and write profile to a secondary storage node identified in the write profile; wherein the storage library is part of a service system having plural servers and plural storage nodes connected to the servers by a network, one server of the plurality of servers having the storage library; and wherein the step of creating a write profile includes steps of; setting, by the storage library, an object name of the object in the write profile; calculating, by the storage library, a hash value from the object name; determining, by the storage library, the primary storage node that manages a hash space that includes the calculated hash value; setting an IP address of the primary storage node in the write profile; and checking, by the storage library, whether a number of replicas specified in the write request to be created of the object is not zero; if the number of replicas is not zero, checking the write profile, by the storage library, to determine whether the primary storage node is able to replicate data by itself; if the primary storage node is able to replicate data by itself, checking the write profile, by the storage library, to determine whether a synchronous replication is required for replicating the object; if a synchronous replication is required, determining, by the storage library, whether the primary storage node can perform a synchronous replication; if the primary storage node can perform a synchronous replication, checking, by the storage library, whether replications by the storage node are requested from an application by judging whether the number of replicas in the write request are greater than the number of replicas of the storage node; if replications by the storage node are requested by the application, calling, by the storage library, a procedure by which the primary storage node replicates the object; if a synchronous replication is not required, setting in the write profile, by the storage library, the number of replicas requested in the write request to be the number of replicas to be created; and if replications by the storage node are not requested by the application, setting in the write profile, by the storage library, the number of replicas requested in the write request minus the number of replicas to be performed by a storage node; and calling, by the storage library, a procedure by which the storage library performs the replication. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer-readable medium containing computer-readable information which, when executed by a computer, causes the computer to perform a method for managing capabilities of a storage library and storage nodes in a service system comprising the steps of:
-
creating a write profile of an object to be written in response to a write request; adding a specification to the write profile that indicates whether the object is to be replicated by the storage library or by a primary storage node identified in the write profile and to which the object is to be written in response to the write request; writing the object data and the write profile to the primary storage node identified in the write profile; and replicating the object data and write profile to a secondary storage node identified in the write profile; wherein the storage library is part of a service system having plural servers and plural storage nodes connected to the servers by a network, one server of the plurality of servers having the storage library; wherein the step of creating a write profile includes steps of; setting, by the storage library, an object name of the object in the write profile; calculating, by the storage library, a hash value from the object name; determining, by the storage library, the primary storage node that manages a hash space that includes the calculated hash value; and setting an IP address of the primary storage node in the write profile; and wherein the adding step comprises the steps of; checking, by the storage library, whether a number of replicas specified in the write request to be created of the object is not zero; if the number of replicas is not zero, checking the write profile, by the storage library, to determine whether the primary storage node is able to replicate data by itself; if the primary storage node is able to replicate data by itself, checking the write profile, by the storage library, to determine whether a synchronous replication is required for replicating the object; if a synchronous replication is required, determining, by the storage library, whether the primary storage node can perform a synchronous replication; if the primary storage node can perform a synchronous replication, checking, by the storage library, whether replications by the storage node are requested from an application by judging whether the number of replicas in the write request are greater than the number of replicas of the storage node; if replications by the storage node are requested by the application, calling, by the storage library, a procedure by which the primary storage node replicates the object; if a synchronous replication is not required, setting in the write profile, by the storage library, the number of replicas requested in the write request to be the number of replicas to be created; if replications by the storage node are not requested by the application, setting in the write profile, by the storage library, the number of replicas requested in the write request minus the number of replicas to be performed by a storage node; and calling, by the storage library, a procedure by which the storage library performs the replication. - View Dependent Claims (12, 13, 14)
-
Specification