Legal claims defining the scope of protection, as filed with the USPTO.
1. Apparatus within a storage controller of a virtualized storage system for logical to physical mapping of virtual volumes, the apparatus comprising: a memory adapted to store one or more mapping segment objects each mapping segment object adapted to map logical block addresses of a corresponding virtual volume to corresponding physical storage locations; a content parsing circuit having an input signal path coupled with an attached initiator and having an output signal path, the content parsing circuit adapted to parse a SCSI command block as the SCSI command block is received from the initiator, wherein the content parsing circuit generates a tag value applied to its output signal path, the tag value generated based on information in the received SCSI command block; a mapping segment selection circuit having an input signal path coupled with the output signal path of the content parsing circuit to receive a tag value and having an output signal path, the mapping segment selection circuit adapted to select a mapping segment object in the memory based on a received tag value, the mapping segment selection circuit further adapted to apply a signal to its output signal path indicating the selected mapping segment object; and an I/O processing circuit coupled with the memory and having an input signal path coupled with the mapping segment selection circuit, the I/O processing circuit adapted to access the selected mapping segment object in the memory and adapted to process a received SCSI command block by accessing physical storage locations determined in accordance the selected mapping segment object.
2. The apparatus of claim 1 wherein the tag value comprises a virtual volume identifier and comprising a segment identifier identifying a segment of the identified virtual volume to which the SCSI command block is directed.
3. The apparatus of claim 2 wherein the content parsing circuit is further adapted to parse both 10 byte SCSI command blocks and SCSI command blocks larger than 10 bytes, wherein the segment identifier is a fixed predetermined value when the content parsing circuit parses a 10 byte SCSI command block, and wherein the segment identifier is a value identifying which of multiple segments of the identified virtual volume the SCSI command block is directed to when the content parsing circuit parses SCSI command block larger than 10 bytes.
4. The apparatus of claim 3 wherein the fixed predetermined value is zero, and wherein the segment identifier is a value indicating which of multiple 2 terabyte segments to which the SCSI command block is directed when the content parsing circuit parses a SCSI command block larger than 10 bytes.
5. The apparatus of claim 1 wherein the mapping segment selection circuit further comprises: a content addressable memory (CAM) circuit having a plurality of entries, each entry adapted to associate a tag value with a segment handle value indicating a corresponding selected mapping segment object, the CAM adapted to locate a corresponding segment handle value in response to receipt of a tag value and further adapted to apply the located segment handle value to the output signal path of the mapping segment selection circuit.
6. The apparatus of claim 5 wherein the I/O processing circuit is further adapted to access the selected mapping segment object based on the segment handle value received as an input from the mapping segment selection circuit.
7. The apparatus of claim 1 wherein the one or more mapping segment objects in the memory are arranged as contiguous objects having the same predetermined size, wherein the signal applied to the output path of the mapping segment selection circuit comprises a segment index into the array of mapping segment objects, and wherein the I/O processing circuit is further adapted to access the selected mapping segment object based on the segment index received as an input from the mapping segment selection circuit.
8. A method operable in a storage controller of a virtualized storage system, the virtualized storage system adapted to manage one or more virtual volumes, each virtual volume defined within the storage system to comprise physical storage locations of each of one or more physical storage devices coupled with the storage system, the storage controller adapted to process a SCSI command block to access an identified virtual volume, the method comprising: providing one or more mapping segment objects stored in a memory within the storage controller each mapping segment object adapted to map logical block addresses of a corresponding virtual volume to corresponding physical storage locations; receiving, in a parsing circuit within the storage controller, a SCSI command block identifying a virtual volume and identifying a segment of the virtual volume to be accessed by the SCSI command block; generating, in the parsing circuit, a tag value based on information in the received SCSI command block; applying the tag value from the parsing circuit to a mapping segment selection circuit within the storage controller; selecting, in the mapping segment selection circuit, a mapping segment object in the memory based on the applied tag value; applying a signal from the mapping segment selection circuit to an I/O processing circuit in the storage controller, the signal indicating the selected mapping segment object; and processing the received SCSI command block in the I/O processing circuit by accessing physical storage locations determined in accordance the selected mapping segment object in the memory.
9. The method of claim 8 wherein the step of generating the tag value comprises: generating the tag value comprising a virtual volume identifier and comprising a segment identifier identifying a segment of the identified virtual volume to which the SCSI command block is directed.
10. The method of claim 9 wherein the content parsing circuit is further adapted to parse both 10 byte SCSI command blocks and SCSI command blocks larger than 10 bytes, wherein step of generating the tag value comprises: generating the tag value comprising a fixed predetermined value for the segment identifier when the received SCSI command block is a 10 byte SCSI command block; and generating the tag value comprising a value for the segment identifier identifying which of multiple segments of the identified virtual volume the SCSI command block is directed to when the SCSI command block is larger than 10 bytes.
11. The method of claim 10 wherein the fixed predetermined value is zero, and wherein the segment identifier value indicates which of multiple 2 terabyte segments to which the SCSI command block is directed when the SCSI command block is larger than 10 bytes.
12. The method of claim 8 wherein the segment selection circuit comprises a content addressable memory (CAM) circuit having a plurality of entries, each entry adapted to associate a tag value with a segment handle value indicating a corresponding selected mapping segment object, and wherein the step of selecting further comprises: receiving the tag value as an input to the CAM; and generating the signal as a segment handle value indicating the selected mapping segment object as an output of the CAM resulting from the tag value applied as an input to the CAM.
13. The method of claim 12 wherein the step of processing further comprises: accessing the selected mapping segment object in the memory based on the segment handle value received as an input from the CAM.
14. A method operable in a storage controller of a virtualized storage system, the storage system adapted to manage a virtual volume stored on a portion of each of a plurality of storage devices associated with the storage system, the virtual volume comprising a plurality of 2 terabyte segments, the method comprising: receiving a SCSI command block in the storage controller; generating, in the storage controller, a tag value as the SCSI command block is received, the tag value including a segment identifier identifying a 2 terabyte segment to which the SCSI command block is directed; applying the tag value to a mapping segment selection circuit of the storage controller, the mapping segment selection circuit adapted to select a mapping segment object from a plurality of mapping segment objects stored in a memory of the storage controller, each mapping segment object adapted to map logical block addresses of the virtual volume to corresponding physical storage locations; processing the SCSI command block in an I/O processing circuit of the storage controller by accessing physical storage locations determined from logical block addresses identified in the SCSI command block and from the selected mapping segment object, wherein the tag value comprises a virtual volume identifier and a segment identifier identifying a segment of the virtual volume to which the SCSI command block is directed, wherein step of generating the tag value comprises: generating the tag value comprising a zero value for the segment identifier when the received SCSI command block is a 10 byte SCSI command block; and generating the tag value comprising a segment index value for the segment identifier identifying which of multiple segments of the virtual volume the SCSI command block is directed to when the SCSI command block is larger than 10 bytes.
Unknown
September 4, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.