Patent ID: 7636916

Claim:
A method for storing data in a data storage system having two virtual servers, a plurality of virtual controllers, each coupled to a host device and each virtual server, each virtual server being further coupled to one of two storage libraries, the method comprising: receiving in a first virtual controller a write request from a host device to store a volume of data; transmitting the volume from the first virtual controller to a first virtual server for storage in a first library; queuing in a queue of the first virtual controller a request to copy the volume through the second virtual server to the second library; if the copy request is not processed within a predetermined time by the first virtual controller: broadcasting the copy request from the first virtual controller to each other virtual controller; queuing the copy request in a copy queue in each other virtual controller; preventing each virtual controller from attempting to process the copy request for a respective random period of delay; when the copy request advances to the beginning of the copy queue of any one of the other virtual controllers, processing the copy request by the one virtual controller; and broadcasting a ‘complete’ message from the processing virtual controller which processed the copy request to each virtual controller that did not process the copy request; and transmitting a ‘copy complete’ message from the first virtual controller to the host device.