Method and apparatus for data replication using SCSI over TCP/IP
First Claim
1. A method of mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising the steps of:
- (a) transmitting, from the initiator, a registration command via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number;
(b) establishing a mapping, responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) transmitting, from the initiator, a SCSI data transfer command, the SCSI data transfer command indicating the multicast group address;
(d) receiving, at each of the members of the multicast group, the data transfer command, and transferring data in response thereto;
(e) executing, in each of the SCSI members of the multicast group, the specified data transfer command.
11 Assignments
0 Petitions
Accused Products
Abstract
The present invention combines IP multicasting mechanisms with SCSI protocols to achieve a more efficient data replication or data mirroring scheme. The combination of the IP multicast mechanism with the mapping of virtual unit logical number to real logical unit numbers, combined with the use of SCSI response frames, ensures the integrity of multicasted data. By use of the SCSI protocol over the TCP/IP according to the present invention, there is no further need to transfer multiple copies of the same data on the same communication link, and the routing logic may be removed from initiator and targets to IP routers.
122 Citations
46 Claims
-
1. A method of mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising the steps of:
-
(a) transmitting, from the initiator, a registration command via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number;
(b) establishing a mapping, responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) transmitting, from the initiator, a SCSI data transfer command, the SCSI data transfer command indicating the multicast group address;
(d) receiving, at each of the members of the multicast group, the data transfer command, and transferring data in response thereto;
(e) executing, in each of the SCSI members of the multicast group, the specified data transfer command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
15. A method of mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising the steps of:
-
(a) transmitting, from the initiator, a registration command via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number, wherein the registration command is transmitted to a unicast address corresponding to each target of the plurality of targets, wherein the registration command has a standard SCSI text command format, and wherein each target of the plurality of targets responds to the registration command by setting a communication NIC to listen on the multicast address; and
by mapping the virtual logical unit number to the SCSI device;
(b) establishing a mapping, responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) transmitting, from the initiator, a SCSI data transfer command, the SCSI data transfer command indicating the multicast group address, wherein the data transfer command is a WRITE command, and wherein the WRITE command specifies the virtual logical unit number;
(d) receiving, at each of the members of the multicast group, the data transfer command, and transferring data in response thereto;
(e) executing, in each of the SCSI members of the multicast group, the specified data transfer command; and
(f) transmitting, from the initiator, to each target of the plurality of targets, a mirroring termination command, wherein the mirroring termination command causes a disassociation from the virtual logical unit number.
-
-
16. A system for mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising:
-
(a) a registration command, transmitted from the initiator via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number;
(b) a mapping, established responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) a SCSI data transfer command, transmitted from the initiator, the SCSI data transfer command indicating the multicast group address; and
(d) at each of the members of the multicast group, responsive to reception of the data transfer command, a transfer of data..
-
-
31. A system of mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising:
-
(a) a registration command transmitted from the initiator via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number, wherein the registration command is transmitted to a unicast address corresponding to each target of the plurality of targets, wherein the registration command has a standard SCSI text command format, and wherein each target of the plurality of targets responds to the registration command by setting a communication NIC to listen on the multicast address; and
by mapping the virtual logical unit number to the SCSI device;
(b) a mapping, established responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) a SCSI data transfer command, transmitted from the initiator, the SCSI data transfer command indicating the multicast group address, wherein the data transfer command is a WRITE command, and wherein the WRITE command specifies the virtual logical unit number;
(d) at each of the members of the multicast group, a received data transfer command, and transferring data in response theret; and
(e) a mirroring termination command transmitted from the initiator to each target of the plurality of targets, wherein the mirroring termination command causes a disassociation from the virtual logical unit number.
-
-
32. A system ofor mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising:
-
(a) means for transmitting, from the initiator, a registration command via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number;
(b) means for establishing a mapping, responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) means for transmitting, from the initiator, a SCSI data transfer command, the SCSI data transfer command indicating the multicast group address;
(d) means for receiving, at each of the members of the multicast group, the data transfer command, and transferring data in response thereto; and
(e) means for executing, in each of the SCSI members of the multicast group, the specified data transfer command. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A system for mirroring data transfer commands in a network, the network including a SCSI initiator and a plurality of SCSI targets, the initiator and targets all being connected to a TCP/IP network, comprising:
-
(a) means for transmitting, from the initiator, a registration command via the TCP/IP network, to each target of the plurality of targets, the registration command including a multicast address and a virtual logical unit number, wherein the registration command is transmitted to a unicast address corresponding to each target of the plurality of targets, wherein the registration command has a standard SCSI text command format, and wherein each target of the plurality of targets responds to the registration command by setting a communication NIC to listen on the multicast address; and
by mapping the virtual logical unit number to the SCSI device;
(b) means for establishing a mapping, responsive to the registration command, at each of the SCSI devices, indicating an association between the SCSI device and the virtual logical unit number and the multicast address;
(c) means for transmitting, from the initiator, a SCSI data transfer command, the SCSI data transfer command indicating the multicast group address, wherein the data transfer command is a WRITE command, and wherein the WRITE command specifies the virtual logical unit number;
(d) means for receiving, at each of the members of the multicast group, the data transfer command, and transferring data in response thereto;
(e) means for executing, in each of the SCSI members of the multicast group, the specified data transfer command; and
(f) means for transmitting, from the initiator, to each target of the plurality of targets, a mirroring termination command, wherein the mirroring termination command causes a disassociation from the virtual logical unit number.
-
Specification