US2013290472A1PendingUtilityA1

Modification of small computer system interface commands to exchange data with a networked storage device using at attachment over ethernet

45
Assignee: CORAID INCPriority: Mar 4, 2010Filed: Jun 25, 2013Published: Oct 31, 2013
Est. expiryMar 4, 2030(~3.6 yrs left)· nominal 20-yr term from priority
G06F 13/4282H04L 67/1097G06F 2213/0032G06F 2213/0036H04L 29/08549
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A process executed by a computing device uses commands having a first format to exchange data through a network with a storage device configured to execute commands having a second format. A storage device controller identifies a command type associated with a command received from the process and identifies one or more physical memory addresses associated with the command. The storage device controller identifies a command having a second format associated with the received command and generates a network request including the command having the second format, the one or more physical memory addresses, a device identifier associated with the storage device and a tag. The network request is transmitted through a network to the storage device which executes the command having the second format. For example, an AoE request including an ATA command is generated from a received SCSI command.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for generating a network request including a second command from a first command, the method comprising:
 identifying a command type associated with the first command having a first format;   determining one or more physical memory addresses associated with the first command;   generating one or more identifiers having a second format, each identifier associated with at least one of the physical memory addresses associated with the first command;   identifying the second command having the second format, the second command associated with the identified command type;   generating the network request at a computing device located across a network from a storage device configured to use the second format, the network request including a device identifier associated with the storage device, a tag, the second command and the one or more identifiers having the second format and being associated with the physical memory addresses associated with the first command having the first format; and   storing the network request in a transmission queue for transmission over the network from the computing device to the storage device.   
     
     
         2 . The method of  claim 1 , further comprising:
 receiving a network response comprising a response tag;   comparing the response tag to the tag of the network request;   determining that the tag matches the response tag; and   associating the network response with the network request.   
     
     
         3 . The method of  claim 1  wherein the first format comprises a Small Computing System Interface (“SCSI”) format. 
     
     
         4 . The method of  claim 1  wherein the second format comprises an AT Attachment (“ATA”) format. 
     
     
         5 . The method of  claim 1 , wherein the network request comprises an AT Attachment over Ethernet (“AoE”) request. 
     
     
         6 . The method of  claim 1 , wherein identifying the command type associated with the first command comprises:
 determining an opcode included in the first command.   
     
     
         7 . The method of  claim 1 , wherein generating the identifier associated with the at least one physical memory address associated with the first command comprises:
 determining a scatter/gather list associated with the first command;   identifying a pointer included in the scatter/gather list;   determining a physical memory address associated with the pointer; and   generating a first identifier associated with the physical memory address associated with the pointer.   
     
     
         8 . The method of  claim 1 , wherein storing the network request in the transmission queue comprises:
 storing a copy of the device identifier associated with the storage device;   storing a copy of the tag; and   associating the copy of the tag with the copy of the device identifier.   
     
     
         9 . The method of  claim 1 , wherein storing the network request in the transmission queue comprises:
 determining a congestion level associated with each of a plurality of transmission queues;   identifying a transmission queue from the plurality of transmission queues having a minimum congestion level when compared to the remaining transmission queues in the plurality of transmission queues; and   storing the network request in the transmission queue from the plurality of transmission queues having the minimum congestion level.   
     
     
         10 . The method of  claim 1 , wherein the device identifier comprises a major address and a minor address associated with the storage device. 
     
     
         11 . A computer readable storage medium for storing a computer program product including instructions executable by a processor of a computing device to perform a computer implemented method for generating a network request including a second command from a first command, the method comprising:
 identifying a command type associated with the first command having a first format;   determining one or more physical memory addresses associated with the first command;   generating one or more identifiers having a second format, each identifier associated with at least one of the physical memory addresses associated with the first command;   identifying the second command having the second format, the second command associated with the identified command type;   generating the network request at a computing device located across a network from a storage device configured to use the second format, the network request including a device identifier associated with the storage device, a tag, the second command and the one or more identifiers having the second format and being associated with the physical memory addresses associated with the first command having the first format; and   storing the network request in a transmission queue for transmission over the network from the computing device to the storage device.   
     
     
         12 . The computer readable storage medium of  claim 11 , wherein the computer implemented method further comprises:
 receiving a network response comprising a response tag;   comparing the response tag to the tag of the network request;   determining that the tag matches the response tag; and   associating the network response with the network request.   
     
     
         13 . The computer readable storage medium of  claim 11 , wherein the first format comprises a Small Computing System Interface (“SCSI”) format. 
     
     
         14 . The computer readable storage medium of  claim 11  wherein the second format comprises an AT Attachment (“ATA”) format. 
     
     
         15 . The computer readable storage medium of  claim 11 , wherein the network request comprises an AT Attachment over Ethernet (“AoE”) request. 
     
     
         16 . The computer readable storage medium of  claim 11 , wherein identifying the command type associated with the first command comprises:
 determining an opcode included in the first command.   
     
     
         17 . The computer readable storage medium of  claim 11 , wherein generating the identifier associated with the at least one physical memory address associated with the first command comprises:
 determining a scatter/gather list associated with the first command;   identifying a pointer included in the scatter/gather list;   determining a physical memory address associated with the pointer; and   generating a first identifier associated with the physical memory address associated with the pointer.   
     
     
         18 . The computer readable storage medium of  claim 11 , wherein storing the network request in the transmission queue comprises:
 storing a copy of the device identifier associated with the storage device;   storing a copy of the tag; and   associating the copy of the tag with the copy of the device identifier.   
     
     
         19 . The computer readable storage medium of  claim 11 , wherein storing the network request in the transmission queue comprises:
 determining a congestion level associated with each of a plurality of transmission queues;   identifying a transmission queue from the plurality of transmission queues having a minimum congestion level when compared to the remaining transmission queues in the plurality of transmission queues; and   storing the network request in the transmission queue from the plurality of transmission queues having the minimum congestion level.   
     
     
         20 . The computer readable storage medium of  claim 11 , wherein the device identifier comprises a major address and a minor address associated with the storage device.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.