Storage device and system for providing communications buffer reservation function
A storage device ( 1 ) communicating with a host computer and other storage devices through a network is characterized in that the storage device ( 1 ) secures memory buffers for temporarily storing data in a remote copy operation carried out between the storage devices. A network memory ( 100 ) in the storage device ( 1 ) includes an available buffer comprising a plurality of memory buffers and an in-use buffer also comprising a plurality of memory buffers. A buffer control unit ( 215 ) secures memory buffers of the available buffer as a reserved buffer having a reserved-buffer size specified in a buffer reservation request made by a storage management device ( 8 ) in response to the request. The buffer control unit ( 215 ) then allocates the memory buffers of the reserved buffer as the in-use buffer in response to a request received from the storage management device ( 8 ) to start a remote copy operation.
1. A storage device communicating with a host computer and another storage device through a network, said storage device comprising:
an available buffer including a plurality of memory buffers;
an in-use buffer including a plurality of memory buffers already allocated as memory buffers dedicated for communications;
notification means for giving a notice of an available-buffer size to an external inquirer in response to an inquiry made by the external inquirer;
buffer securing means for taking memory buffers having a reserved-buffer size specified in addition to a buffer-reservation target in a request made by an external requester through the network as a request for a buffer reservation out of said available buffer and reserving said taken memory buffers as a reserved buffer for said buffer-reservation target in response to said request for a buffer reservation based on said reserved-buffer size specified in said request;
allocation means for allocating said memory buffers of said reserved buffer to said buffer-reservation target to make said allocated memory buffers a part of said in-use buffer in response to a request made by the external requester as a request to start an application; and
execution means for executing the application communicating by using said in-use buffer allocated by said allocation means.
2. A storage device according to claim 1 wherein said reserved-buffer size is a product obtained as a result of multiplying a bandwidth by a latency where said bandwidth is defined as an amount of data transmitted in a unit time through a connection whereas said latency is defined as a time period from a time of transmitting data through said connection to a time of receiving an acknowledgement of said data.
3. A storage device according to claim 1 , further comprising:
means for taking memory buffers having an additional size out of said available buffer and adding said taken memory buffers to the reserved buffer allocated to the buffer-reservation target in response to a reserved-buffer-updating request made by the external requester as a request to increase said reserved buffer by specifying said buffer-reservation target and a value greater than the present size of said reserved buffer as a new size of said reserved buffer; and
means for taking memory buffers having a decreasing size out of a reserved buffer allocated to a buffer-reservation target and returning said taken memory buffers to said available buffer when decreasing said reserved buffer by specifying said buffer-reservation target and a value smaller than the present size of said reserved buffer as a new size of said reserved buffer.
4. A storage device according to claim 1 wherein said application is a remote copy reproduction process to copy data stored in said storage device to said another storage device.
5. A storage device according to claim 1 or 4 wherein said buffer-reservation target is an inter-port communication between a network port of said storage device and a network port of said another storage device.
6. A storage device according to claim 1 or 4 wherein said buffer-reservation target is a combination consisting of a port pair and a number indicating a protocol adopted by said application executed by said another storage devices, said port pair being a pair of a network port of said storage device and a network port of said another storage device.
7. A storage device according to claim 1 wherein said buffer-reservation target is a connection between said storage device and a device serving as a communication partner.
8. A storage device according to claim 1 , further comprising:
means which includes a cache memory for temporarily storing data read out from disks and gives a notice of an available storage capacity of said cache memory to the external inquirer in response to an inquiry made by the external inquirer; and
means for taking memory buffers having an additional size from said available buffer and adding said taken memory buffers to a reserved buffer allocated to a buffer-reservation target in response to a reserved-buffer-updating request made by the external requester as a request to increase said reserved buffer by specifying said buffer-reservation target and a value greater than the present size of said reserved buffer as a new size of said reserved buffer.
9. A storage device according to claim 1 wherein said buffer is a buffer for storing data transmitted by adopting a TCP.
10. A storage device according to claim 9 wherein a means for processing a network protocol for communications with said another devices takes the size of said reserved buffer as a maximum value of a congestion window.
11. A storage device according to claim 1 wherein said buffer is a credit for storing data transmitted by adopting a fibre-channel protocol.
12. A storage device according to claim 1 wherein said extraction means for allocating memory buffers as a reserved buffer allocates an area usable as a buffer from a memory in case said available buffer is insufficient.
13. A storage device communicating with a host computer and another storage device through a network, said storage device comprising:
an available buffer including a plurality of memory buffers;
an in-use buffer including a plurality of memory buffers already allocated as memory buffers dedicated for communications;
a network-interface-information acquisition unit for giving a notice of a size of said available buffer to an external inquirer in response to an inquiry made by an external inquirer;
a buffer control unit for taking memory buffers having a reserved-buffer size specified in addition to a buffer-reservation target in a request made by an external requester through the network as a request for a buffer reservation out of said available buffer and reserving said taken memory buffers based on said reserved-buffer size specified in said request, and allocating said memory buffers to said buffer-reservation target for making said allocated memory buffers a part of said in-use buffer in response to a request made by the external requester as a request to start an application; and
an application execution unit for executing an application communicating by using said in-use buffer allocated by said buffer control unit.
14. A storage system comprising a storage device communicating with a host computer and another storage device through a network, and a storage management device communicating with said storage device through the network, wherein:
said storage device comprises:
an available buffer including a plurality of memory buffers;
an in-use buffer including a plurality of memory buffers already allocated as memory buffers dedicated for communications;
notification means for giving a notice of an available-buffer size to said storage management device in response to an inquiry made by said storage management device;
buffer securing means for taking memory buffers having a reserved-buffer size specified in addition to a buffer-reservation target in a request made by said storage management device through the network as a request for a buffer reservation out of said available buffer and reserving said taken memory buffers as a reserved buffer for said buffer-reservation reservation target in response to said request for a buffer reservation based on said reserved-buffer size specified in said request;
allocation means for allocating said memory buffers of said reserved buffer to said buffer-reservation target to make said allocated memory buffers a part of said in-use buffer in response to a request made by said storage management device as a request to start an application; and
execution means for executing an application communicating by using said in-use buffer allocated by said allocation means; and
said storage management device comprises:
means for inquiring of said storage device a size of said available buffer; and
means for transmitting the request to start said application to said storage device.
15. A storage system according to claim 14 wherein said reserved-buffer size is a product obtained as a result of multiplying a bandwidth by a latency where said bandwidth is defined as the amount of data transmitted in a unit time through a connection whereas said latency is defined as a time period from a time of transmitting data through said connection to a time of receiving an acknowledgement of said data.
16. A storage system according to claim 14 wherein:
said storage device further comprises:
means for taking memory buffers having an additional size out of said available buffer and adding said taken memory buffers to a reserved buffer allocated to a buffer-reservation target in response to a reserved-buffer-updating request made by said storage management device as a request to increase said reserved buffer by specifying said buffer-reservation target and a value greater than the present size of said reserved buffer as a new size of said reserved buffer; and
means for taking memory buffers having a decreasing size out of a reserved buffer allocated to a buffer-reservation target and returning said taken memory buffers to said available buffer when decreasing said reserved buffer by specifying said buffer-reservation target and a value smaller than the present size of said reserved buffer as a new size of said reserved buffer; and
said storage management device further comprises means for transmitting said reserved-buffer-updating request.
17. A storage system according to claim 14 wherein said application is a remote copy reproduction process to copy data stored in said storage device to said another storage device.
18. A storage system according to claim 14 or 17 wherein said buffer-reservation target is an inter-port communication between a network port of said storage device and a network port of said another storage device.
19. A storage system according to claim 14 or 17 wherein said buffer-reservation target is a combination consisting of a port pair and a number indicating a protocol adopted by said application executed by said another storage device, said port pair being a pair of a network port of said storage device and a network port of said another storage device.
20. A storage system comprising a storage device communicating with a host computer and another storage device through a network, and a storage management device communicating with said storage device through the network, wherein:
said storage device comprises:
a CPU and a memory;
an available buffer on the memory including a plurality of memory buffers;
an in-use buffer on the memory including a plurality of memory buffers already allocated as memory buffers dedicated for communications;
a network-interface-information acquisition unit for giving a notice of an available-buffer size to said storage management device in response to an inquiry made by said storage management device;
a buffer control unit for taking memory buffers having a reserved-buffer size specified in addition to a buffer-reservation target in a request made by said storage management device through the network as a request for a buffer reservation out of said available buffer and reserving said taken memory buffers as a reserved buffer for said buffer-reservation target in response to said request for a buffer reservation based on said reserved-buffer size specified in said request;
a network-protocol-processing unit for allocating said memory buffers of said reserved buffer to said buffer-reservation target to make said allocated memory buffers a part of said in-use buffer in response to a request made by said storage management device as a request to start a remote copy application; and
a remote copy program stored on the memory and executed by the CPU for executing the remote copy application communicating by using said in-use buffer allocated by said network-protocol-processing unit; and
said storage management device comprises:
a CPU and a memory, said CPU executing programs stored on the memory, said programs inquiring of said storage device a size of said available buffer and transmitting the request to start said remote copy application to said storage device.