Patent ID: 8341348
Filing Date: 2012-12-25
Classification: G06F

Abstract:
1. A computer system for controlling a data input/output request from a host computer to a storage device, the computer system comprising: a control unit having a plurality of controllers, each of which has a local memory and has processing authority to share processing on the input/output request; a shared memory for recording control information shared by the plurality of controllers when processing the input/output request; a first interface to which the host computer is connected; and a second interface to which the storage device is connected; wherein each of the plurality of local memories records a relevant piece of control information, from among the control information, that is assigned to a respective one of the plurality of controllers corresponding to that local memory; the respective one of the plurality of controllers fulfills a control function with respect to the input/output request based on the assigned control information; and the control unit releases the control function from the respective one of the plurality of controllers and allocates the released control function to another one of the controllers; and wherein the control unit divides a storage area of the storage device into a plurality of logical areas, and provides them to the host computer; wherein the shared memory has the control information including a logical area management table to have the plurality of controllers share and manage processing of the input/output request with respect to the plurality of logical areas; wherein the control unit copies management information, from among the logical area management table, relating to the plurality of logical areas allocated to the respective one of the plurality of controllers corresponding to the local memory, from the shared memory to the local memory for each corresponding local memory of the plurality of controllers; wherein the computer system further comprises a cache memory having a plurality of segments for storing the data when the control unit performs processing of the data input/output; wherein the control unit allocates the plurality of segments as the storage control function to the plurality of controllers based on the control information, and releases one or more of the plurality of segments, which have an attribute capable of writing the data, from a respective one of the controllers to which the one or more of the plurality of segments are allocated, in order to make them enter a shared state so that the one or more of the plurality of segments can be allocated to the plurality of controllers; and the control unit then allocates the one or more of the plurality of segments in the shared state to another one of the plurality of controllers; wherein the shared memory includes: a first correspondence relationship table showing a correspondence relationship between the plurality of segments and the plurality of logical areas, a second correspondence relationship table for managing the shared state of the plurality of segments, and a third correspondence relationship table for managing allocation of the plurality of segments to the plurality of controllers; wherein each of the plurality of local memories records information, from among the first correspondence relationship table, which is assigned to a respective one of the plurality of controllers corresponding to that local memory; wherein the respective one of the plurality of controllers judges the respective one of the plurality of segments corresponding to the logical area, which is a target of the input/output request, based on information in the second correspondence relationship table; accesses the respective one of the plurality of segments; releases allocation of the respective one of the plurality of segments, which has an attribute capable of writing the data, from the third correspondence relationship table in order to make it enter the shared state so that the respective one of the plurality of segments can be allocated to another one of the plurality of controllers; and further registers allocation of the respective one of the plurality of segments in the second correspondence relationship table; and wherein the control unit sets a target value of the plurality of segments to be allocated to each of the plurality of controllers to the respective local memory of each of the plurality of controllers, sets a number of allocated segments, and compares the target value with the number of allocated segments; wherein, if it is determined that the target value is larger than the number of allocated segments, the control unit releases the respective ones of the plurality of segments in the shared state from the second correspondence relationship table and registers them in the third correspondence relationship table; and wherein, if it is determined that the target value is smaller than the number of allocated segments, the control unit releases the respective ones of the plurality of segments from the third correspondence relationship table and registers them in the second correspondence relationship table.