Abstract:
A data management method for network storage system that said network storage system includes a storage network, a cluster of storage servers that provide data storage services for application servers connecting to the storage network and storage space corresponding to each storage server, setting a core manager in storage server, said core manager centralizing the metadata of all storage servers in a common storage space; separating the metadata from said storage servers to make a storage server become a storage manager and the storage spaces corresponding to each storage server form the common storage space, allocating the storage space of metadata in said common storage space, and managing the corresponding relationship between metadata and said storage manager.

Description:
FIELD OF THE INVENTION 
       [0001]    This invention relates to the field of network storage technology especially involves the data and metadata management in network storage system, and the network storage system architecture. 
       BACKGROUND OF THE INVENTION 
       [0002]    Network storage system is based on the storage network, and storage server is the core of the network. This system provides data storage services for the application servers. The system emphasizes data services scalability, reliability and ability to handle dynamically. The most commonly used technology is the Storage Area Network (SAN). Storage area network is an independent network made up of storage servers, storage devices and storage network equipment. The storage area network provides a high-speed, dedicated, centralized managed, and security architecture. 
         [0003]    In SAN, with the adding of storage servers, the overall I/O performance drops, therefore the shortcoming limits the use of the storage architecture. Particularly, with the development of the independent metadata server architecture, the dynamic scalability of storage servers (such as metadata servers) has become even more crucial issue to overall system performance. In the design of current metadata server, metadata servers usually use their own storage space to store metadata. The own storage space here means the storage space from the server&#39;s own hard disks. In general, metadata server cluster (storage server cluster), mainly uses two methods of data storage and management. 
         [0004]    One method is that each metadata server of the cluster preserves part of the overall metadata table, so the overall metadata table is a combined table of all metadata servers&#39; table. Under this architecture, each metadata server can achieve high data access performance and data storage efficiency without other synchro-mechanism. However, this design is bad during disaster and can not provide load balancing capabilities of metadata server clusters. The failure of a metadata server will lead to the loss of some metadata tables. The imbalance of metadata&#39;s dynamic load will lead to a lot of metadata access to one server, and the performance of metadata server cluster will drop. 
         [0005]    The other method is that each metadata server of the cluster preserves a copy of synchronous overall metadata table in its local, so each metadata server can access the overall metadata table, including access of reading and writing. The metadata servers use a synchronization mechanism to ensure the integrity of overall metadata. So metadata server cluster can have a good balance of load capacity and disaster recovery capabilities. But usually metadata accesses are frequent small I/O requests, and the metadata server synchronization mechanism will seriously damage performance of the metadata server cluster, thereby the performance of the overall storage system will decline. Because of the cost of this synchronization mechanism, the metadata server cluster is limited in scalability. Because adding new metadata server means that we need to synchronize more overall metadata tables. This metadata management mechanism reduces the efficiency of metadata storage because each metadata record should have its corresponding local copy in every server. 
       SUMMARY OF THE INVENTION 
       [0006]    The aim of this invention is to provide a method of data management in network storage system. This method can effectively solve the scalability issue in current network storage system. This method also solves other problems, such as metadata server failure and its recovery, storage server cluster load balancing, and reconstruction. The method provides the dynamic handling capacity of the system, and greatly enhances the reliability and data availability. 
         [0007]    Another aim of this invention is to provide a network storage system built by the method. The metadata servers in the system support dynamic scalability, and dynamic handling and recovering of failure of storage servers, and also provide better performance in disaster recovery. This invention also achieves good storage performance during load balancing and reconstruction of the storage server cluster. 
         [0008]    The first objective of the invention is achieved as following: A data management method for network storage system that said network storage system includes the storage network, clusters of storage server ≡ that provide data storage services to the application servers connecting to storage network and storage space corresponding to each storage server, which said data includes raw data that accessed by the application servers and metadata corresponding to the storage servers, setting a core manager in storage server, said core manager centralizing the metadata of all storage servers in a common storage space, separating the metadata from said storage servers to make a storage server become a storage manager and the storage spaces corresponding to each storage server form the common storage space, allocating the storage space of metadata in said common storage space, and managing the corresponding relationship between metadata and said storage manager. 
         [0009]    Technical Effect: Since the invention forms a common storage space for the storage servers by a core manager, the corresponding storage space of each storage server is no longer local or private storage space of the storage server, but part of the common storage space managed by the core manager. The metadata of the corresponding storage space of the server separates from the respective storage server and is located by the core manager according to the management and efficient needs to the common storage space. 
         [0010]    The storage server that only manages metadata is defined as storage manager, and the corresponding storage server cluster is called storage manager cluster. The storage manager will no longer have the corresponding storage space and the corresponding metadata, but only manage the metadata allocated by the core manager. 
         [0011]    With the separation of metadata, the storage managers no longer own their own metadata. Therefore the scalability, the server failure handling, dynamic load balancing and reconstruction of the cluster are all independent operation with the metadata. The invention can effectively solve the scalability issues. It also solves technical problems of dynamic failure and recovery of storage manager, load balancing of storage manager cluster, and reconstruction of storage manager cluster. 
         [0012]    A preferred design is that the common storage space has partitions. Storage manager has one-to-one and/or one-to-more mapping relation with the partitions. For the common storage space has partitions, the management of the core manager is more convenient. Numbering for the partitions and setting correspondence relationship between partitions and each storage manager, the data can be managed efficiently. Every partition of the common storage space can be mapped in any one storage manager. But at the same time, only one storage manager can lock the partition and access it exclusively. 
         [0013]    In particular, the core manager includes allocation controller, mapping controller and partition controller. Allocation controller distributes metadata in the partition of the common storage space. Mapping controller manages the mapping relationship between the partitions of common storage space and storage managers by a mapping table. Partition controller manages partitions of the common storage space. 
         [0014]    The invention can efficiently achieve data access of the system, the scalability and failure treatment. The process of the dynamic load balancing and reconstruction of storage manager cluster refers to the detailed description below. 
         [0015]    The solution to achieve the second objective of the invention is as follows: network storage system includes storage network, storage server cluster providing data storage service to the application server connected to the net, and the storage space for metadata, further includes a core manager in each storage server, said core manager centralizing the metadata of all storage servers in a common storage space to make a storage server become a storage manager and the storage spaces corresponding to each storage server form the common storage space, allocating the storage space of metadata in the said common storage space, and managing the corresponding relationship between metadata and said storage manager. 
         [0016]    Technical Results: The storage manager has no corresponding storage space to store corresponding metadata in the network storage system built by the invention. The core manager allocates the common storage space. The storage manager realizes the separation of metadata. The scalability, failure handling, and dynamic load balancing and reconstruction of the storage manager cluster become unrelated operation with metadata. Thus the storage manager cluster has dynamic scalability. It can dynamic handle and restore failure of storage server. The storage manager supports load balancing and reconstruction of storage server cluster when the system is in the condition of high efficient storage. 
         [0017]    The network storage system built by the method can set partitions of the storage space. Storage manager and partitions have one-to-one and/or one-to-more mapping relationship. The core manager is made up of the allocation controller, mapping controller and partition controller for the storage manager. The allocation controller distributes metadata in the partition of the common storage space. The mapping controller manages the mapping relationship between the partitions of common storage space and storage managers by a mapping table. The partition controller manages partitions of the common storage space. 
         [0018]    When the above preferred solution is actually operating, each storage manager stores the data in its partition. The metadata of the data is concentrated in the common storage space. The process of scalability, the failure handling and dynamic load balancing of storage manager doesn&#39;t have to move the actual data, only needs to adjust the mapping relation of storage manager and partition. The allocation of data storage is based on partition not on storage manager. Data storage location determines by the number of partition, not by the storage server. The network storage system of the invention provides storage manager cluster an excellent scalable architecture. The scalability, and the failure treatment and dynamic load balance of storage manager is a process unrelated to the data. This method greatly improves failure control capability, the data reliability and availability of storage manager clusters. 
         [0019]    In addition, each partition in the common storage space can only be accessed by an exclusive storage manager. So there is no need to synchronize data or have locking policy to data accessing the same partitions (for example, distributed file system). The access progress can achieve the similar performance as the local file system. The invention can maximize the use of caches of the storage managers and enhance greatly the performance of data access. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0020]      FIG. 1 : logical structure sketch map of network storage system built by the invention method. 
           [0021]      FIG. 2 : logical structure sketch map of separate functions of the network storage system built by the invention method. 
           [0022]      FIG. 3 : flow figure of data access achieved by the invention method 
           [0023]      FIG. 4 : flow figure of adding more storage servers achieved by the invention method. 
           [0024]      FIG. 5 : flow figure of storage manager cluster rebuilding achieved by the invention method. 
           [0025]      FIG. 6 : flow figure of storage manager failure handling achieved by the invention method. 
           [0026]      FIG. 7 : flow figure of storage manager cluster dynamic load balancing achieved by the invention method. 
           [0027]      FIG. 8 : storage system sketch map to metadata server built by the invention method. 
           [0028]      FIG. 9 : storage system sketch map to file server built by the invention method. 
       
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
       [0029]    Combining attached drawings below explaining the embodiment of the invention. 
         [0030]      FIG. 1  describes the logic structure of a network storage system built by this invention method. The network storage system of  FIG. 1  includes the storage network ( FIG. 1  does not draw, see  FIG. 7 ,  8  of storage network  103 ), storage manager cluster  2  connected to the storage network providing data storage services for application server  1  and common storage space  3 . In the storage manager cluster  2  each storage manager sets a core manager. The common storage space  3  is used for all storage managers in storage manager clusters  2 . Core manager manages the storage location of metadata in the common storage space and the correspondence between metadata and each storage manager. In this preferred embodiment the core manager is made up of allocation controller  10 , mapping controller  20  and partition controller  30 . The common storage space  3  is divided into partition  100 . Allocation controller  10  is used for realizing allocation of data in the partition  100  of the common storage space  3 . It can achieve static storage load balancing based on partition  100 . Mapping controller  20  is used for mapping management between partition  100  of common storage space  3  and storage manager cluster  2 . A mapping table is used to maintain this mapping relationship. Allocation controller  30  achieves the management function of partition  100  of common storage space  3 . For example, we can install or uninstall partition  100  of common storage space  3  from the storage manager. Partition  100  of common storage space  3  and mapping table of each storage manager maintained by mapping controller  20  can be shared by all servers. 
         [0031]      FIG. 2  describes the separate functions logic structure of network storage system. Allocation controller  10  and mapping controller  20  run on application server. Partition controller  30  runs in the common storage space. 
         [0032]    A variety of file-based application server  1  provides relevant services and generate I/O request for network storage system. It is the initiator of the storage process. Application server cluster includes video servers, web servers, database servers, mail servers and file servers, see  FIG. 8 ,  FIG. 9 . These servers are distributed, and communicate through the storage network. In the  FIG. 1 , applications  50  runs on an application server. 
         [0033]    Central storage and management is the guiding ideology for storage manager cluster seamless extension. Centralization refers to form the common storage space. And preferred method is to manage the partitions of the common storage space. Core manager is installed in the original storage server. Common storage space is made up of storage space corresponding to each storage server. Storage servers are separated with its metadata and become storage manager. Core manager in the storage manager manages storage location of metadata in the common storage space and corresponding relationship of metadata with storage manager. Metadata doesn&#39;t store in the corresponding space of each storage manager. That means the corresponding space of each storage manager is separated from the metadata. Though the core manager is set in the storage manager and need synchronization mechanism, the synchronization is irrelevant to the metadata, it will not affect the overall performance of the storage manager cluster  2  and the performance of entire storage system. 
         [0034]    Storage resources are in the most efficient exclusive accessed by the partition in the common storage space  3 . The storage manager in essence is such a server that doesn&#39;t contain metadata and can be dynamically changed. Based on features of this technical solution, scalability and failure treatment and dynamic load balancing of storage manager cluster  2  can be simply and efficiently managed by adjusting mapping relationship between partition  100  of common storage space  3  and each storage manager. The above scalability process has been simplified for some install and uninstall works. Without any data movement, storage manager cluster  2  can be seamlessly expanded. 
         [0035]    Generally speaking, a large number of partitions can assure a seamless dynamic scalability of the clusters. The number of partitions restricts the number of clusters. For example 1024 partitions show that the system can have up to 1024 storage managers. In some special cases, when the clusters need to break through the number of partition to expand, for example, the need to cluster scalability to more than 1024, the system would need to expand the common storage space, and produce more partitions, such as 4096. Then after reconstruction of storage manager cluster, the cluster can be achieved with greater scalability. 
         [0036]    The partition  100  is similar to the concept of logical partitions. Each partition can be mapped in any storage manager. At the same time, only a storage manger maps this partition and accesses it. A storage manager can map one or move partitions of the common storage space. Partition controller  30  can achieve the management of all the partitions of the common storage space  3 . Its main functions include mapping install and uninstall and backup and log functions of the partition. 
         [0037]    The above technology solution&#39;s effect is obvious. The creation of partition  100  of common storage space  3  makes storage manager  2  a server not including metadata and can be replaced. This is because the allocation of data storage is based on partition not on storage manager. The location of data storage is decided by the partition number rather than the storage manager used for storage. Therefore the progress of adding storage managers and failure treatment and dynamic load balancing becomes the operation unrelated to data. We do not need to move actual data, only to adjust mapping relations between the partitions of common storage space and storage managers. Thus, the architecture of storage manager cluster based on network storage has high seamless scalability, and greatly improves the storage manager cluster&#39;s dynamic managing capability and the data reliability and availability. 
         [0038]    In addition, the common storage space in each partition can only be accessed by an exclusive storage manager. This makes storage managers in the course of the access do not need to consider synchronization of sharing (for example, distributed file system). The access progress can achieve the similar performance of the local file system. The invention maximizes the use of caches of storage management, and enhances greatly the performance of data access. 
         [0039]    As long as we ensure the data security of common storage space, the data of the entire system is safe. Of course, compared to the scattered data, a centralized storage space is more easily to achieve data security. 
         [0040]      FIG. 3  shows the flow figure of data access. Application program  50  of various file based application servers  1  can produce requests to file data. For such file data request, allocation controller  10  can use the corresponding algorithm to gain the number of partition, to store that data. For example, the file name can through hash operation gain a number of a partition. In this process, different file name is allowed to calculate the same partition&#39;s number. A partition always preserves a number of file&#39;s information. 
         [0041]    After gained the corresponding partition number of the requested file, mapping controller  20  finds the corresponding storage manager of the number in the mapping table of the storage manager and partitions. Then the data request is transmitted through the network. For the request of written type, written data is sent to the corresponding storage manager. The storage manager will achieve the corresponding access through data access controller. For the request of read type, the result of the access will be transmitted to the application server  1  through the network. 
         [0042]      FIG. 4  describes the process that the invention makes the storage manager  2  to expend. When the whole system needs to add the corresponding storage managers, the administrator can add dynamically a new physical storage manager. For example, the current storage manager cluster  2  can not complete effectively the overfull request. Adding a new storage manager is simply to connect the storage manager into the system in this environment based on network. The system can find the new storage manager automatically. Mapping controller  20  adjusts the mapping table according to some arithmetic. It deletes some partitions from the record corresponding to original storage manager cluster in the mapping table. And it adds the mapping relationship related with the new storage manager. Afterward, partition controller  30  locks the access queue of the partitions needed to be transferred, and stops processing the request in the access queue. In this condition, it unloads the partitions needed to be transferred from the storage manager that manages currently the partition. And it loads these partitions into the storage manager added newly. Finally, unlock the access queue of the partition needed to be transferred. Subsequently, all data requests of these partitions transferred to the new storage manager are completed through the new added storage manager. The capability of the whole storage manager cluster increases as the load of the other corresponding managers reduces. The scalable process can run dynamically and effectively, and do not involve in any moving of data. 
         [0043]      FIG. 5  describes the process that the invention makes the storage manager cluster to reconstruct. The expansion of storage manager cluster  2  is different with general expansion (expansion process as describes with  FIG. 4 ) while that the expansion of the storage manager cluster  2  will breakthrough the number of the current partitions. The number of the partition is gotten through reconstruction of the storage manager cluster. For example, the number of partitions increases from 128 to 1024, so it would at most support 1024 storage managers in a cluster. Adding storage managers from 128 to 1024 uses expansion process shown in the  FIG. 4 . Though data need to be moved in the process of the storage manager cluster rebuilding, reconstruction can operate with a quick response time through the method of the invention. First, it needs to add new partitions to the common storage space. For example, it need to add 1024−128=896 new partitions when the number of partitions increase from 128 to 1024. When administrators issue an order reconstruction, allocation controller keeps the original arithmetic, and generates a new allocation arithmetic that maps the filename to the expanded number of partition. At the same time, mapping controller generates a new mapping table used by all partitions. The partition controller transfers or installs all partitions according to the new mapping table. Operation of the process as described above will be completed very soon. System returns the completed information of the cluster n construction order. And it enters into the reconstruction status of the storage manager cluster. 
         [0044]    When the system is in reconstruction, it need to transfer all data existed before reconstruction to different partitions according to the new allocation arithmetic. When storage manager receives the requests of the data visit of the application server, it makes the normal operation shown in the  FIG. 3  in the process of reconstruction if the data requested exists. The data maybe does not be transferred if the data requested does not exist. So the storage manager could work out the number of the partition stored originally in the file according to the old saved distribution arithmetic. The storage manager gets the storage manager that manages currently the partition according to the current mapping table. The data would be transfer from the original partition to the new partition. Finally, the requests of the application server can be responded. 
         [0045]    Obviously, it clears that the process of the storage manager cluster reconstruction in this invention doesn&#39;t affect the normal operation of the system. 
         [0046]      FIG. 6  describes the process that this invention handles failure storage manager. When there is a failure storage manager, the system can find that the storage manager doesn&#39;t respond the data request regardless of the reasons of failure. All the visit queues corresponding to the partition managed by the storage manager will be locked according to the mapping table of the mapping controller. The mapping controller transfers the affected partition into the record of the other storage manager in the cluster, and deletes the records corresponding to the failure storage manager through adjusting the mapping table. And then, partition controller will transfer the partition managed by the failure storage manager to the storage manager corresponding to the partition in the new mapping table. In addition, it could be recovery the date of every partition by the technology of similar log. Finally, re-activate the visit queues of the affected partition. Obviously, the systems can achieve seamless storage manager failure processing under the condition of not affecting the data visit. 
         [0047]      FIG. 7  describes the process that the invention makes the storage manager to achieve dynamic load balancing. Dynamic load balancing is used to redistribute the partition managed by the storage manager at the running. It solves problems that some storage managers are overloading but other managers are light loading. The system can monitor itself the load of every storage manager. When the load of a manager exceeds a preset value of alarming loading, mapping controller adjusts the mapping table, and transfers some overloading partitions managed by the storage manager to some storage managers with light loading. In condition of locking the visit queues of partitions needed to be transferred, the partition controller unmounts the partitions needed to be transferred from the current storage manager that manages the partitions, and installs the partitions to the storage manager distributed newly. Finally, unlock the visit queue of the partitions needed to be transferred. 
         [0048]    This realizes the dynamic load balance adjustment without the moving of any data among the partition. 
         [0049]      FIG. 8  and  FIG. 9  describes structures of two typical systems according to the invention. Of course, the management methods involved in the invention are not confined to these two applications. 
         [0050]      FIG. 8  describes the architecture of the network storage system that the invention uses in the application condition of the metadata server. In the architecture of the application environment, the storage system accessed by each application server  1  is composed by the separated metadata server cluster  5  and storage device cluster  7 . Every device in system connects each other through the storage network  103 . Metadata server  5  processes the request of metadata by application server  1 . The transmission of the data is completed by the high-speed data channel that connects the storage device cluster  7  and application server cluster  1 . Metadata Server  5  is equivalent to the storage manager of the invention in the application. Common storage space  3  is used to storage the metadata of the metadata server  5 . 
         [0051]    Now, more and more storage system uses the structure with the separation of metadata servers and storage equipment, for example, the oriented-object storage system. The data management method of the invention can effectively handle the metadata server expansibility, error dispose and dynamic load balancing issues in this architecture. 
         [0052]      FIG. 9  describes the architecture of the network storage system based on the file server cluster in the invention. Application server  1  can access the storage device  7  in the storage network through the file server cluster  8  in this condition. The request of the scalability of the file server cluster is pressure because the file server cluster  8  is on the I/O route. The file server cluster  8  is equivalent to the storage manager cluster in this system. The storage device cluster  7  can carry out a common storage space  3  through the storage network  103 . All data and metadata are stored in the common storage space  3  through the file server cluster  8 . Storage network connects file server cluster  8  and common storage space  3 . Application server  1  and file server cluster  8  are connected through network  102 . And the level of request of the application server  1  is the file. 
         [0053]    Although the invention describes the technical solutions in detail, it shouldn&#39;t limited to this. Changes or amends made by general technical staff in this field according to the basic guiding ideas of the invention shall belong to the protected scope of the invention.