1. Field of the Invention
The present invention relates to a storage method and a software defined storage system, and more particularly, to a storage method and a software defined storage system with low production cost.
2. Description of the Prior Art
Facing an age of Big Data, a capacity required by a storage device is getting larger. Traditionally, extending storage devices for storage systems requires a couple of weeks, which is time consuming. In addition, compatibility problems between storage devices with various brands need to be solved. Software defined storage systems may detach the storage management functions from the physical storage device, and leave external software to perform the storage management functions. The storage management functions may be setting of a redundant array of independent disks (RAID) level, data volume management, data protection, data replication, information snapshot, etc. Therefore, extending the storage devices for the storage systems only takes few hours. The storage management functions executed by the external software may avoid the compatibility problems between the storage devices with various brands.
In order to perform storage control (e.g., select a replica with shortest path or response time among the plurality of replicas), the adaptors 102_1-102_N comprise control units 104_1-104_N, respectively. The control units 104_1-104_N are utilized for executing the storage control and related computations (e.g., the computation involving path selection to finding the shortest path for the adaptors 102_1-102_N). Thus, the control units 104_1-104_N need a certain level of computation capability, such that the production cost of the adaptors 102_1-102_N is extremely expensive. When the SDS system 10 comprises more adaptors, the cost of the SDS system 10 increases as well. Therefore, how to reduce the production cost of SDS system is a significant objective in the field.
It is therefore a primary objective of the present invention to provide a storage method and a software defined storage system with low production cost.
An embodiment of the invention discloses a storage method utilized in a software defined storage (SDS) system, the SDS system comprising a load balancer, a control unit and a plurality of adaptor units, the plurality of adaptor units corresponding to a plurality of virtual targets, the storage method comprising the load balancer sending a command to the plurality of adaptor units after the SDS system receives the command; the control unit generating a matching information according to characteristics of the plurality of virtual targets, and sending the matching information to the plurality of adaptor units; and a first adaptor unit of the plurality of adaptor units forwarding the command to the first virtual target according to the matching information and the command, and the SDS system performing operation on a first virtual target.
An embodiment of the invention further discloses a software defined storage system, comprising a plurality of adaptor units corresponding to a plurality of virtual targets; a load balancer configured to send a command to the plurality of adaptor units; and a control unit configured to generate a matching information according to characteristics of the plurality of virtual targets, and send the matching information to the plurality of adaptor units; wherein a first adaptor unit of the plurality of adaptor units forwards the command to the first virtual target according to the matching information and the command, and the SDS system performs operation on a first virtual target.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
Please refer to
In short, in the SDS system 20, computation of path selection are centralized and executed by the control unit 204. The control unit 204 may represent the computational results of path selection in a form of the matching information table TBE, and send the matching information table TBE to the adaptor units 202_1-202_N. Thus, there is no need for the adaptor units 202_1-202_N to execute computation of path selection. All the adaptor units 202_1-202_N have to do is to receive the matching information table TBE from the control unit 204, and forward the command CMD to the corresponding virtual target according to the matching information table TBE. Therefore, the adaptor units 202_1-202_N may be implemented by cheap storage interface cards, so as to reduce the production cost of the SDS system 20.
The process of the SDS system 20 receiving the command CMD and performing operations on the virtual target to which the command CMD refers is illustrated in
Step 300: Start.
Step 302: The load balancer 200 sends the command CMD to the adaptor units 202_1-202_N after the SDS system 20 receives the command CMD, wherein the command CMD instructs the SDS system 20 to perform operations on the virtual target vTGT_y among the virtual targets vTGT_1-vTGT_M.
Step 304: The control unit 204 generates the matching information table TBE according to the response times of the virtual targets vTGT_1-vTGT_M in relation to the adaptor units 202_1-202_N, and sends the matching information table TBE to the adaptor units 202_1-202_N.
Step 306: The adaptor unit 202_x of the adaptor units 202_1-202_N forwards the command CMD to the virtual target vTGT_y according to the matching information table TBE and the command CMD, and the SDS system 20 performs operations on the virtual target vTGT_y.
Step 308: End.
In Step 302, the load balancer 200 sends the command CMD to the adaptor units 202_1-202_N. The adaptor units 202_1-202_N may perform operations on the virtual targets vTGT_1-vTGT_M. The command CMD instructs the SDS system 20 to perform operations on the virtual target vTGT_y.
In Step 304, the control unit 204 generates the matching information table TBE according to the response times of the virtual targets vTGT_1-vTGT_M in relation to the adaptor units 202_1-202_N, and sends the matching information table TBE to the adaptor units 202_1-202_N. In other words, the computation executed by the control unit 204 is to find one of the virtual targets vTGT_1-vTGT_M with the shortest path, i.e., to find a virtual target with the shortest response time among the virtual targets vTGT_1-vTGT_M, and record the shortest path results as the matching relationships between the adaptor units 202_1-202_N and the virtual targets vTGT_1-vTGT_M as the matching information table TBE. TABLE I illustrates an exemplary format of the matching information table TBE. TABLE I comprises an adaptor unit column, a virtual target column and a SCSI command column. As TABLE I shown, the adaptor unit column is filled with the adaptor units 202_1-202_N, and the virtual target column is filled with the virtual targets vTGT_1-vTGT_M corresponding to the adaptor units 202_1-202_N. For example, according to TABLE I, a virtual target vTGT_k1 referred by a command CMD_1 is corresponding to the adaptor unit 202_1, a virtual target vTGT_kN referred by a command CMD_N is corresponding to the adaptor unit 202_N, and the virtual target vTGT_y referred by the command CMD is corresponding to the adaptor unit 202_x.
In another perspective, to achieve shorter response time of the virtual targets, a path-diversity between an adaptor unit and a virtual target may be enhanced by duplicating replicas of the virtual targets. Specifically, the virtual target may optionally be duplicated as a plurality of replicas by a mirroring operation. When one replica is busy such that the response time is too long, the adaptor may forward the command CMD to another replica, to reduce the response time for accessing the target data, wherein the virtual targets may be implemented by software. For example, in an embodiment, the virtual target vTGT_y may be duplicated as replicas vTGT_y_1-vTGT_y_K by mirroring, as shown in
In such a situation, the control unit 204 selects an optimum replica vTGT_y_opt (with the shortest path/response time) among the replicas vTGT_y_1-vTGT_y_K according to the inter-relationship of the adaptor units 202_1-202_N and the replicas vTGT_y_1-vTGT_y_K. Specifically, the control unit 204 may employ an ant colony optimal (ACO) algorithm to select the optimum replica vTGT_y_opt with the shortest response time among the replicas vTGT_y_1-vTGT_y_K. The ACO algorithm is a probabilistic algorithm which simulates pheromone left by ants on the paths, which would converge to an optimum path through multiple iterations. Using ACO to find the optimum path is known by the art, which is narrated briefly as follows.
Step 500: Start.
Step 502: Initiate parameters.
Step 504: Ants search for paths.
Step 506: Update pheromone on each path.
Step 508: Check a stopping criterion. If yes, go to Step 510; otherwise, go to Step 504.
Step 510: End.
In Step 502, all the parameters required by the ACO algorithm are initiated, including an influence parameter α, an influence of initial pheromone β, a pheromone evaporation coefficient δ, a constant Q affecting pheromone and a number of ants R. In Step 504, the ants searching for the paths are simulated, and the path selection probability is calculated. Specifically, the probability for the r-th ant starting from the i-th node to the j-th node at the t-th iteration may be expressed as
wherein τij(t) represents an amount of pheromone deposited on the path from the i-th node to the j-th node, ηij represents an initial pheromone deposited on the path from the i-th node to the j-th node, which usually is an inverse of a distance between the i-th node to the j-th node, and Jr(i) represents a set of nodes which have not been passed by the r-th ant. When the r-th ant stands at the i-th node determining the next node the r-th ant likes to proceed, the larger the value of (τij(t)α×(ηij)β, the larger probability for the r-th ant to select the j-th node. After all the ants select all the nodes, in Step 506, pheromone on each path is updated as follows:
wherein Lr is the a total length traveled by the r-th ant. One iteration represents that pheromone of all of the paths is updated once. In Step 508, the stopping criterion is checked. The stopping criterion is a difference between a solution obtained at the T-th iteration and a solution obtained at the (T−1)-th iteration being smaller than a specific value, or a number of iterations is achieved to a predetermine number. When the stopping criterion is achieved, the ACO process 50 is terminated.
Notably, the distance between the nodes in the ACO algorithm represents the response time the between nodes. The nodes herein represent the adaptor units 202_1-202_N, the virtual targets vTGT_1-vTGT_M and the replicas thereof in the SDS system 20. According to the ACO, the control unit 204 may select the optimum replica vTGT_y_opt with the shortest response time among the replicas vTGT_y_1-vTGT_y_K. In such a situation, the matching information table TBE generated by the control unit 204 should contain information of the optimum replica vTGT_y_opt. As shown in TABLE II, the command CMD is corresponding to the optimum replica vTGT_y_opt.
In Step 306, according to the matching information table TBE and the command CMD, the adaptor unit 202_x forwards the command CMD to the virtual target vTGT_y, and the SDS system 20 performs operations on the virtual target vTGT_y. Specifically, in an embodiment, when the virtual target vTGT_y has only one replica and the matching information table TBE is formed as TABLE I, the adaptor units 202_1-202_N compares the command CMD with the SCSI column of the table TBE, if the adaptor unit 202_x finds that the command CMD and the virtual target vTGT_y are corresponding to the adaptor unit 202_x itself, then the adaptor unit 202_x forwards the command CMD to the virtual target vTGT_y, and the rest of the adaptor units have no action. In an embodiment, when the virtual target vTGT_y has the replicas vTGT_y_1-vTGT_y_K and the matching information table TBE is formed as TABLE II, if the adaptor unit 202_x finds that the command CMD and the optimum replica vTGT_y_opt are corresponding to the adaptor unit 202_x itself, then the adaptor unit 202_x forwards the command CMD to the optimum replica vTGT_y_opt, and the rest of the adaptor units have no action. Therefore, the SDS system 20 may perform on target information via the optimum replica vTGT_y_opt.
As can be seen from the above, by storage process 30, computation of path selection are centralized and executed by the control unit 204. After the control unit 204 completes the computation, the control unit 204 sends the computational results of path selection in the form of the matching information table TBE to the adaptor units 202_1-202_N. The adaptor units 202_1-202_N may forward the command CMD to the virtual target or the optimum replica. Compared to the prior art, the adaptor units 202_1-202_N do not execute computation of path selection, instead, the adaptor units 202_1-202_N only receive the results computed by the control unit 204 and forward the command CMD to the corresponding virtual target. Therefore, the adaptor units 202_1-202_N may be implemented by cheap storage interface cards, so as to reduce the production cost of the SDS system 20.
Notably, the embodiments stated in the above are utilized for illustrating concepts of the present invention. Those skilled in the art may make modifications and alternations accordingly, and not limited herein. For example, the control unit 204 is not limited to be implemented by hardware equipment such as computer, server, etc. The control unit 204 may also be implemented by software such as virtual machine (VM). The virtual targets and the replicas are not limited to be implemented by software. The virtual targets and the replicas may also be implemented by firmware. In addition, in Step 304, the method of selecting the optimum replica with the shortest response time among a plurality of replicas is not limited by using the ACO algorithm. Other path selection algorithms may also be used to realize the computation of path selection. As long as the computation of path selection is centralized and executed by one single control unit of the SDS system, the requirement of the present invention is satisfied.
In summary, the present invention centralizes the computation of path selection on one single control unit; the adaptor units do not execute computation of path selection. Thus, the adaptor units may be implemented by cheap storage interface cards. Compared with the prior art, the storage method and system may effectively reduce the production cost of the SDS system.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
104105688 | Feb 2015 | TW | national |