Abstract:
The present invention is a method for providing multi-pathing via Small Computer System Interface Input/Output (SCSI I/O) referral between an initiator and a storage cluster which are communicatively coupled via a network. The method includes receiving an input/output (I/O) at a first target device from the initiator via the network. The I/O includes a data request. The method further includes transmitting a SCSI I/O referral list to the initiator when data included in the data request is not stored on the first target device, but is stored on a second target device. The referral list includes first and second port identifiers for identifying first and second ports of the second target device respectively. The first and second ports of the target device are identified as access ports for accessing the data requested in the data request.
Abstract translation:本发明是一种通过小型计算机系统接口输入/输出(SCSI I / O)引导在通过网络通信耦合的发起者和存储集群之间提供多路径的方法。 该方法包括经由网络从发起者接收在第一目标设备处的输入/输出(I / O)。 I / O包括数据请求。 该方法还包括当包含在数据请求中的数据未被存储在第一目标设备上但被存储在第二目标设备上时,向发起者发送SCSI I / O推荐列表。 推荐列表包括用于分别识别第二目标设备的第一和第二端口的第一和第二端口标识符。 目标设备的第一和第二端口被识别为用于访问数据请求中请求的数据的接入端口。
Abstract:
The present invention is a method for providing multi-pathing via Small Computer System Interface Input/Output (SCSI I/O) referral between an initiator and a storage cluster which are communicatively coupled via a network. The method includes receiving an input/output (I/O) at a first target device from the initiator via the network. The I/O includes a data request. The method further includes transmitting a SCSI I/O referral list to the initiator when data included in the data request is not stored on the first target device, but is stored on a second target device. The referral list includes first and second port identifiers for identifying first and second ports of the second target device respectively. The first and second ports of the target device are identified as access ports for accessing the data requested in the data request.
Abstract translation:本发明是一种通过小型计算机系统接口输入/输出(SCSI I / O)引导在通过网络通信耦合的发起者和存储集群之间提供多路径的方法。 该方法包括经由网络从发起者接收在第一目标设备处的输入/输出(I / O)。 I / O包括数据请求。 该方法还包括当包含在数据请求中的数据未被存储在第一目标设备上但被存储在第二目标设备上时,向发起者发送SCSI I / O推荐列表。 推荐列表包括用于分别识别第二目标设备的第一和第二端口的第一和第二端口标识符。 目标设备的第一和第二端口被识别为用于访问数据请求中请求的数据的接入端口。
Abstract:
Apparatus and methods for improved region lock management in a storage controller. A region lock management circuit coupled with a memory is provided for integration in a storage controller. One or more I/O processor circuits of the storage controller transmit requests to the region lock management circuit to request a temporary lock for a region of storage on a volume of the storage system. The region lock management circuit determines whether the requested lock may be granted or whether it conflicts with other presently locked regions. Presently locked regions and regions to be locked are represented by region lock data structures. In one exemplary embodiment, the region lock data structures for each logical volume may be stored as a tree data structure. A tree assist circuit may also be provided to aid the region lock management circuit in managing the region lock tree data structures.
Abstract:
The present invention is directed to a command block protocol which may implemented by RAID firmware for synchronizing I/Os in a RAID system which includes co-existing hardware and software-based I/O paths. The command block protocol of the present disclosure ensures that there aren't any I/Os outstanding in the fast path or any other hardware engine by making sure that the region lock (ex.—Sentinel Region Lock) is taken for the entire size of the volume. When the Sentinel Region Lock is granted, the RAID firmware may assume that there aren't any commands outstanding in the fast path hardware or pending for the region lock to be obtained. The RAID firmware would not be able to maintain integrity of user data in the absence of the new command block protocol disclosed herein.
Abstract:
Methods and structure are disclosed for improved processing of fast path I/O requests in a storage controller utilizing version information embedded in the fast path I/O requests. The version information allows the storage controller to determine if the mapping information utilized by the host system in generating a fast path I/O request specifies the mapping information utilized by the storage controller. The controller comprises a fast path I/O request processing circuit tightly coupled with host system drivers for fast processing of requests directed to storage devices of a logical volume. The controller also comprises a logical volume I/O processing software stack for processing I/O requests from a host system directed to a logical volume. If the mapping information utilized by the host does not match the mapping information utilized by the storage controller, fast path I/O requests are transferred to the I/O request processing stack for subsequent processing.
Abstract:
Methods and apparatus for improved building of a hot spare storage device in a RAID storage system while avoiding reading of stale data from a failed storage device. In the recovery mode of the failed device, all data is write protected on the failed device. A RAID storage controller may copy as much readable data as possible from the failed device to the hot spare storage device. Unreadable data may be rebuilt using redundant information of the logical volume. Write requests directed to the failed device cause the addressed logical block address (LBA) to be marked as storing stale data. When a read request is directed to such a marked LBA, the read request returns an error status from the failed device to indicate that the data is stale. The RAID controller then rebuilds the now stale data for that LBA from redundant information of the logical volume.
Abstract:
A method and system for syndrome generation and data recovery is described. The system includes a parity generator coupled to one or more storage devices to generate parity for data recovery. The parity generator includes a first comparator to generate a first parity factor based on data in one or more of the storage devices, a multiplier to multiply data from one or more of the storage devices with a multiplication factor to generate a product, a second comparator coupled to the multiplier to generate a second parity factor based at least in part on the product, and a selector to choose between the first parity factor and the second parity factor.
Abstract:
A method and system for syndrome generation and data recovery is described. The system includes a recovery device coupled to one or more storage devices to recover data in the storage devices. The recovery device includes a first comparator to generate a first parity factor based on data in one or more of the storage devices, a multiplier to multiply data from one or more of the storage devices with a multiplication factor to generate a product, and a second comparator coupled to the multiplier to generate a second parity factor based at least in part on the product.
Abstract:
Provided are a method, system, and article of manufacture for providing data integrity for data streams. Input data streams are received. A parity data stream is generated by computing parity data from the input data streams, wherein the parity data stream comprises data blocks. Data integrity fields are computed for the data blocks, wherein a data integrity field is used to ensure the integrity of a data block for which the data integrity field is computed. The computed data integrity fields are added to the data blocks to generate an output stream.
Abstract:
A method according to one embodiment may include discovering, at least in part, by an integrated circuit of at least one communication protocol via which at least one device external to the integrated circuit is capable of communicating. In this embodiment, the integrated circuit may be capable of communicating in accordance with a plurality of different communication protocols. The method according to this embodiment may also include selecting, at least in part, by the integrated circuit of the at least one communication protocol to use to communicate with the at least one device. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.