Naveen Krishnamurthy, Bangalore IN
Naveen Krishnamurthy, Bangalore IN
|Patent application number
|SYSTEM AND METHOD FOR PERFORMING A CONSISTENCY CHECK OPERATION ON A DEGRADED RAID 1E DISK ARRAY - A system and method for performing a consistency check operation on a degraded RAID 1E disk array is disclosed. In one embodiment, in a method for performing a consistency check on a degraded RAID 1E disk array, a read request is sent to a first row in all mirror sets having no missing disks. Then, an exclusive—OR (XOR) operation is performed on the first row in all the mirror sets having no missing disks for determining data consistency between a pair of disks in the mirror set. Further, data on a mirrored disk in all the mirror sets having no missing disks is updated based on the outcome of the performed XOR operation.
|SYSTEM AND METHOD FOR PERFORMING A MIRROR SET BASED MEDIUM ERROR HANDLING DURING A CONSISTENCY CHECK OPERATION ON A RAID 1E DISK ARRAY - A system and method for performing a mirror set based error handling during a consistency check operation on a RAID 1E disk array is disclosed. In one embodiment, in a method for performing a mirror set based medium error handling during a consistency check (CC) operation on a RAID 1E disk array, a read operation is performed on a current row. The RAID 1E disk array is formed using mirror sets having rows, where each mirror set includes a pair of disks, and the rows include at least one block in each of the pair of disks. A list of all medium errors found in the current row is formed. The medium errors found in the current row are grouped on mirror set basis and the medium errors that do not have a corresponding medium error in substantially same block in other disk in a mirror set are recovered.
|SYSTEM AND METHOD FOR OPTIMIZING READ-MODIFY-WRITE OPERATIONS IN A RAID 6 VOLUME - A method is disclosed for updating parity information in a RAID 6 system wherein only one parity block is read during each write operation. Both parity blocks may be updated from the new data, the data being overwritten and either of the old blocks of parity information. A method for load balancing in a RAID 6 system using this method is also disclosed.
|METHODS AND STRUCTURE FOR DETERMINING MAPPING INFORMATION INCONSISTENCIES IN I/O REQUESTS GENERATED FOR FAST PATH CIRCUITS OF A STORAGE CONTROLLER - 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.
|METHODS AND STRUCTURE FOR PERFORMING A REBUILD OF A LOGICAL VOLUME WITH A SERIAL ATTACHED SCSI EXPANDER - Methods and structure are provided for performing a rebuild using a Serial Attached SCSI (SAS) expander. The SAS expander includes an SMP target operable to receive, from a Redundant Array of Inexpensive Disks (RAID) controller, a Serial Management Protocol (SMP) command for initiating a rebuild of a RAID volume at the SAS expander. The SAS expander also includes a control unit operable to initiate a rebuild of the RAID volume based on the received SMP command from the controller, and a Serial SCSI Protocol (SSP) initiator operable to generate SSP commands for performing the RAID rebuild based upon input from the control unit.
|METHODS AND STRUCTURE FOR USING REGION LOCKS TO DIVERT I/O REQUESTS IN A STORAGE CONTROLLER HAVING MULTIPLE PROCESSING STACKS - Methods and structure within a storage controller for using region locks to efficiently divert an I/O request received from an attached host system to one of multiple processing stacks in the controller. A region lock module within the controller allows each processing stack to request a region lock for a range of block addresses of the storage devices. A divert-type lock request may be established to identify a range of block addresses for which I/O requests should be diverted to a particular one of the multiple processing stacks.
|REDUNDANT ARRAY OF INDEPENDENT DISKS SYSTEMS THAT UTILIZE SPANS WITH DIFFERENT STORAGE DEVICE COUNTS FOR A LOGICAL VOLUME - Methods and structure are provided for defining span sizes for Redundant Array of Independent Disks (RAID) systems. One embodiment is a RAID controller that includes a control system and a span manager. The control system is able to identify storage devices coupled with the controller and is able to receive input requesting the creation of a RAID logical volume. The span manager is able to define multiple RAID spans to implement the volume, each span comprising one or more of the coupled storage devices, at least one of the spans including a different number of drives than at least one other span.
|CREATING AND MANAGING LOGICAL VOLUMES FROM UNUSED SPACE IN RAID DISK GROUPS - Methods and structure are provided for creating and managing unused storage capacity in Redundant Array of Independent Disks (RAID) systems. One embodiment is a RAID controller that includes a controller operable to create and manage a logical volume out of storage space that would otherwise not be used by a RAID system. The logical volume is then exposed to the host operating system as a logical volume where the storage space can be used as a cache device for a host operating system.
|System and Method for Power Management in a Multiple-Initiator Storage System - The disclosure is directed to a system and method for managing a plurality of storage devices. In an embodiment, at least one enclosure is configured to contain or support a plurality of storage devices accessible by a plurality of initiators. The enclosure further includes or is coupled to a power management controller in communication with the plurality of storage devices. The power management controller is configured to switch one or more storage devices of the plurality of storage devices from a first activity state to a second activity state when the one or more storage devices receive less than a selected number of data transfer requests over a specified time interval, where the one or more storage devices consume less power in the second activity state than in the first activity state.
|OPTIMIZING BOOT TIME OF A STORAGE SYSTEM - Systems and methods herein provide a storage system that optimizes the boot time when the storage system is rebooted. One embodiment includes a storage controller operable to determine a topology of one or more storage devices. The storage controller stores the topology in memory. When the storage controller detects a system reboot event, it provides the stored topology to the host and directs the host to reboot with the stored topology.
|Prioritized Spin-Up of Drives - A data storage system controller designates critical drives for staggered spin up and other, non-critical drives for spin up only when the controller notifies the appropriate expander. Each expander in the data storage system maintains configuration information for each PHY of the expander and reports completion of spin up when all of the drives designated “staggered spin up” have been spun up. Alternatively, an expander maintains PHY configuration data, designating each PHY as “staggered spin up,” “host notify” or “disabled.” At boot time, only devices connected to PHYs designated “staggered spin up” are spun up in cycles before reporting spin up completion to a host device.
|Maintaining Cache Size Proportional to Power Pack Charge - The present disclosure is directed to a method for managing a cache based on a charge of a power source. The method includes the step of determining a charge of the power source at a first time instance. The method also includes the step of designating for write back cache an amount of data in the cache which can be offloaded from the cache based on the charge of the power source at the first time instance. The method also includes the step of designating as write through cache an amount of data remaining in the cache which was not designated as write back cache.
|Performance Improvements in Input / Output Operations Between a Host System and an Adapter-Coupled Cache - A modified or host driver operable on a host computer communicates with a host interface of a PCIe adapter. A controller memory space is managed by the kernel space of the host operating system. The modified driver entirely avoids the overhead associated with making a copy from the application or user space to a separate kernel space managed by the operating system in the host computer. The modified driver uses a base address register to identify the location of the cache storage in the controller memory space. The size of the cache store is communicated to the modified driver upon a power on initialization of the PCIe adapter and the host computer. A memory map managed by the modified driver identifies cache storage locations as an offset from the base address register.
|INPUT/OUTPUT REQUEST SHIPPING IN A STORAGE SYSTEM WITH MULTIPLE STORAGE CONTROLLERS - Systems and methods presented herein provide for input/output shipping between storage controllers in a storage system. One storage system comprises a plurality of logical volumes, a host driver operable to process input/output requests to the logical volumes, and a plurality of storage controllers coupled between the server and the logical volumes. A first of storage controllers is operable to receive an input/output request from the host driver for one of the logical volumes, and transfer a command to a second of the storage controllers to retrieve the data of the input/output request. The second storage controller processes the command from the first storage controller, and retrieves the data associated with the input/output request.
|DYNAMIC STORAGE VOLUME CONFIGURATION BASED ON INPUT/OUTPUT REQUESTS - A storage system includes a plurality hard disk drives and a plurality of solid-state drives and a storage controller operable to manage the hard disk drives and solid-state drives as a plurality of logical volumes, and categorize input/output requests to the logical volumes into types based on sizes of the input/output requests (e.g., smaller and larger). The storage controller is also operable to reconfigure the logical volumes from the hard disk drives and the solid-state drives based on the types of the input/output requests to the logical volumes. A first of the reconfigured logical volumes occupies a first portion of at least one of the solid-state drives and a first portion of at least one of the hard disk drives. The storage controller is further operable to direct the first type of the input/output requests to the first portion of the solid-state drive occupied by the first reconfigured logical volume.
Patent applications by Naveen Krishnamurthy, Bangalore IN