A control method for a storage device performing reading and writing of data with respect to a logical device, in accordance with an IO request from a host,
- the storage device including one or more controllers, and
- one or more storage devices storing data,
- the controller including a processor executing IO processing with respect to the IO request from the host, and
- a main memory storing control information of the IO processing,
- the main memory being divided into an in-controller shared memory that is accessed by only an own controller and an inter-controller shared memory that can be accessed by the other controller,
- storing a first group execution operation value with respect to a logical device group, in the inter-controller shared memory,
- storing a second group execution operation value with respect to the logical device group, and an in-controller logical device execution operation value, in the in-controller shared memory, and
- storing an upper limit value of an operation value with respect to the logical device group, in the in-controller shared memory, the method comprising:
- allowing the storage device to perform queueing on an IO queue corresponding to each logical device when there is the IO request from the host;
- allowing the processor of the storage device to fetch an IO request from the queued IO queue;
- allowing the processor of the storage device to access the in-controller shared memory, and to acquire the upper limit value of the operation value with respect to the logical device group, the second group execution operation value with respect to the logical device group, and the in-controller logical device execution operation value;
- allowing the processor of the storage device to compare the upper limit value of the operation value with respect to the logical device group with a sum of the second group execution operation value with respect to the logical device group and the in-controller logical device execution operation value, to increment the in-controller logical device execution operation value when the sum of the second group execution operation value with respect to the logical device group and the in-controller logical device execution operation value is less than the upper limit value of the operation value with respect to the logical device group, and to perform rewriting in the in-controller shared memory;
- allowing the processor of the storage device to compare the in-controller logical device execution operation value with an inter-controller shared memory update interval threshold value set by the following expression:
- Inter-Controller Shared Memory Update Interval Threshold Value=(“Upper Limit Value of Operation Value with respect to Logical Device Group”−(“Second Group Execution Operation Value with respect to Logical Device Group”+“In-Controller Logical Device Execution Operation Value”))דMargin Ratio Coefficient”÷“Number of Controllers in System”;
- allowing the processor of the storage device to acquire the first group execution operation value with respect to the logical device group when the in-controller logical device execution operation value is greater than or equal to the inter-controller shared memory update interval threshold value;
- allowing the processor of the storage device to add the in-controller logical device execution operation value to the first group execution operation value with respect to the logical device group, and to perform rewriting in the inter-controller shared memory;
- and
- allowing the processor of the storage device to write the added first group execution operation value with respect to the logical device group in the second group execution operation value with respect to the logical device group of the in-controller shared memory, and to clear the in-controller logical device execution operation value of the in-controller shared memory.