METHODS AND APPARATUS FOR MANAGING ASYNCHRONOUS DEPENDENT I/O FOR A VIRTUAL FIBRE CHANNEL TARGET
First Claim
1. A method operable in a virtualized storage system utilizing Fibre Channel (FC) communications, the storage system comprising a plurality of physical FC target devices, the method comprising:
- receiving a read or write command over an FC communication medium from an attached host system, wherein the read or write command is directed to a virtual FC target, the virtual FC target comprising multiple physical FC target devices;
allocating a range of sequential exchange identifier (X_ID) values responsive to receipt of the read or write command;
issuing multiple physical I/O operations, each physical I/O operation directed to a corresponding one of the multiple physical FC target devices, wherein each of the multiple physical I/O operations is associated with a corresponding X_ID value of the range of sequential X_ID values;
selecting a primary X_ID (RX_ID) value based on the X_ID value associated with a first completed physical I/O operation of the multiple physical I/O operations;
transmitting a response to the host system indicating success or failure of the read or write command based on the completion of the multiple physical I/O operations, wherein the response transmitted to host system utilizes the RX_ID; and
releasing the allocated range of sequential X_ID values responsive to transmitting the response to the host system.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for managing exchange IDs for multiple asynchronous dependent I/O operations generated for virtual Fibre Channel (FC) target volumes. Features and aspects hereof allocate a range of exchange identifier (X_ID) values used in issuing a plurality of physical I/O operations to a plurality of physical FC target devices that comprise the virtual FC target volume. The plurality of physical I/O operations are dependent upon one another for completion of the original request to the virtual FC target volume and allow substantially parallel operation of the plurality of physical FC target devices. A primary X_ID is selected from the range of allocated X_ID values for communications with the attached host system that generated the original request to the virtual FC target volume.
-
Citations
20 Claims
-
1. A method operable in a virtualized storage system utilizing Fibre Channel (FC) communications, the storage system comprising a plurality of physical FC target devices, the method comprising:
-
receiving a read or write command over an FC communication medium from an attached host system, wherein the read or write command is directed to a virtual FC target, the virtual FC target comprising multiple physical FC target devices; allocating a range of sequential exchange identifier (X_ID) values responsive to receipt of the read or write command; issuing multiple physical I/O operations, each physical I/O operation directed to a corresponding one of the multiple physical FC target devices, wherein each of the multiple physical I/O operations is associated with a corresponding X_ID value of the range of sequential X_ID values; selecting a primary X_ID (RX_ID) value based on the X_ID value associated with a first completed physical I/O operation of the multiple physical I/O operations; transmitting a response to the host system indicating success or failure of the read or write command based on the completion of the multiple physical I/O operations, wherein the response transmitted to host system utilizes the RX_ID; and releasing the allocated range of sequential X_ID values responsive to transmitting the response to the host system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. Apparatus in storage controller of a virtualized storage system, the system comprising a virtual Fibre Channel (FC) target which comprises a plurality of physical FC target devices, the apparatus comprising:
-
a virtual I/O processor, coupled with the plurality of physical FC target devices, the virtual I/O processor adapted to receive a host initiated read or write command directed to the virtual FC target and adapted to allocate a range of sequential exchange ID (X_ID) values in response to receipt of the read or write command, the virtual I/O processor further adapted to issue multiple physical I/O operations to the plurality of physical FC target devices where each physical I/O operation includes a corresponding X_ID from the range of sequential X_ID values; a primary exchange selection component, coupled with the virtual I/O processor and coupled with the plurality of physical FC target devices, the primary exchange selection component adapted to select a primary X_ID (RX_ID) value based on the X_ID value associated with a first completed physical I/O operation of the multiple physical I/O operations; and an I/O completion component, coupled with the virtual I/O processor and coupled with the plurality of physical FC target devices, the I/O completion component adapted to determine success or failure of the read or write command based on the completion of the multiple physical I/O operations and further adapted to communicate the success or failure to the virtual I/O processor, the virtual I/O processor further adapted to transmit a response to the host system indicating success or failure of the read or write responsive to the communication from the I/O completion component, wherein the response transmitted to the host system utilizes the RX_ID, the virtual I/O processor further adapted to release the allocated range of sequential X_ID values responsive to transmitting the response to the host system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 20)
-
-
16. A method operable in virtualized Fibre Channel (FC) storage controller, the controller adapted to couple with one or more host systems and adapted to couple with a plurality of physical FC target devices, the method comprising:
-
defining, within the storage controller, a plurality of ranges of exchange identifier (X_ID) values wherein each range comprises a number (N) of sequential X_ID values; receiving from a host system a read or write command directed to a virtual FC target, the virtual FC target comprising a portion of each of the plurality of physical FC target devices; allocating, responsive to receipt of the command, a selected range from the plurality of ranges; issuing multiple physical I/O operations, each physical I/O operation directed to a corresponding one of the plurality of physical FC target devices, wherein each of the multiple physical I/O operations is associated with a corresponding X_ID value of the allocated range; communicating with the host system to complete processing of the command wherein the communication with the host system comprises a primary X_ID value selected from the allocated range; and releasing the allocated range responsive to completing processing of the command. - View Dependent Claims (17, 18, 19)
-
Specification