A multi-client storage system comprising a management computer including a processor and a memory, for allocating resources of a plurality of storage apparatus to a plurality of clients, the management computer comprising:
- a receiving unit for receiving conditions for providing a service to a client to which a new resource is to be allocated;
- a determining unit for determining whether the new recourse is securable under the received conditions for providing the service to the client without changing resources allocated to existing clients and conditions for providing a service of the allocated resource to each of the existing clients;
- and
- an allocation unit for securing, when it is determined that the new resource is securable under the received conditions for providing the service to the client, the new resource under the received conditions for providing the service to the client in the plurality of storage apparatus and allocating the new resource to the client, and
- a changing unit for performing change of the resources allocated to the existing clients,
- wherein the determining unit is configured to:
- determine, when it is determined that the new resource is not securable under the received conditions for providing the service to the client without changing the resources allocated to the existing clients and the conditions for providing the service of the allocated resource to each of the existing clients, whether or not the new resource is securable under the received conditions with the changing of the resources allocated to the existing clients;
- and
- issue, when it is determined that the new resource is securable under the received conditions for providing the service to the client with the changing of the resources allocated to the existing clients, a command to the changing unit to perform the changing of the resources,
- wherein the changing unit refers to:
- the resources allocated to the existing clients and the conditions for providing the service of the allocated resource to each of the existing clients, and to the conditions for providing the service to the client to which the new resource is to be allocated, which are received by the receiving unit, to generate an allocation plan for the resources allocated to the existing clients, and
- the resources allocated to the existing clients and the conditions for providing the service to the allocated resource to each of the existing clients, and to the conditions for providing the service to the client to which the new resource is to be allocated, which are received by the receiving unit, to generate a plurality of the allocation plans for the resources allocated to the existing clients and select an allocation plan that satisfies predetermined conditions from among the plurality of the allocation plans;
- and
- wherein the changing unit is configured to:
- recombine allocations of the resources based on the selected allocation plan that satisfies the predetermined conditions to generate a plurality of new allocation plans;
- obtain a first evaluation value regarding a performance of storage apparatus for each of the generated plurality of new allocation plans;
- select an allocation plan for which the first evaluation value is the highest from among the plurality of new allocation plans;
- further recombine allocations of the resources to generate a plurality of new allocation plans;
- obtain a second evaluation value regarding a performance of storage apparatus for each of the generated plurality of new allocation plans;
- select a allocation plan for which the second evaluation value is highest from among the plurality of new allocation plans;
- and
- repeat the recombination of the allocations of the resources until a difference between the evaluation values of the allocation plan for which the first evaluation value is highest and the allocation plan for which the second evaluation value is highest converges,
- wherein the receiving unit, the determining unit, the allocation unit, the changing unit are executed by a processor.