A method for controlling a storage system, the storage system including a first storage device, and a second storage device connected to at least one computer and an external storage device, wherein the first storage device includes a plurality of first memory devices for storage of data, a plurality of first cache memories, a plurality of first processors that each process an input/output request coming from the at least one computer by at least one of a plurality of first tasks, and at least one first control memory, and wherein the second storage device includes a plurality of second memory devices for storage of data, a plurality of second cache memories, a plurality of second processors that each process an input/output request coming from the at least one computer by at least one of a plurality of second tasks, and at least one second control memory, the method comprising the steps of:
- Allocating, by a first processor of the plurality of first processors of the first storage device, to a virtual storage device, at least one first memory device of the plurality of first memory devices, at least one first cache memory of the plurality of first cache memories, and at least one first task of the plurality of first tasks, and storing, in the at least one first control memory, first allocation information indicating whether each of the plurality of first memory devices, the plurality of first cache memories and the plurality of first tasks is allocated to any of a plurality of virtual storage devices;
- processing, by the virtual storage device, the input/output request provided by the at least one computer and storing requested data in the at least one first memory device or the at least one first cache memory;
- receiving, by the first processor, a command from the at least one computer for putting the virtual storage device into a suspend mode, storing, into the external storage device, control information including:
- correlations between identification information of one or more ports of the at least one computer and the virtual storage devices, and configuration information concerning the virtual storage device;
- and the data stored in the at least on first memory device;
- updating the first allocation information in such a manner as to indicate that the at least one first memory device, the at least one first cache memory, and the at least one first task are not allocated to the virtual storage device, and deallocating the at least one first memory device, the at least one first cache memory, and the at least one first task;
- allocating, by the first processor, any one or all of the deallocated at least one first memory device, the deallocated at least one first cache memory and the deallocated at least one first task to another virtual storage device and updating the first allocation information, or, if the first allocation information indicates that the at least one first memory device, the at least one first cache memory or the at least one first task is not allocated to any of other virtual storage devices, turning off another first processor of the plurality of first processors, the another first processor using the at least one first memory device, the at least one first cache memory, or the at least one first task;
- receiving, by a second processor of the plurality of second processors of the second storage device, a command from the at least one computer for the virtual storage device to resume operation, reading the control information from the external storage device, and recognizing, from the control information, the configuration information concerning the virtual storage device;
- referring, by the second processor, to second allocation information stored in the at least one second control memory, making a search for a second memory device not in use, a second cache memory not in use, and a second task not in use, allocating the second memory device not in use, the second cache memory not in use, and the second task not in use to the virtual storage device on the basis of the configuration information, and moving the data from the external storage device to the second memory device not in use;
- and
- processing, by the virtual storage device that resumes operation, the input/output request from the at least one computer according to the correlations, included in the control information, between the identification information of the one or more ports of the at least one computer and the virtual storage devices.