Patent application number | Description | Published |
20090210619 | Method for handling more than a maximum number of supported drives in a raid configuration - The present invention is a method for handling disk drives in a Redundant Array of Inexpensive Disks (RAID) configuration. The method may include detecting a disk drive received via insertion of the disk drive in a disk drive slot of an enclosure of the RAID configuration. Prior to the disk drive being received, it may be that fewer than a maximum number of supported disk drives are configured. It may also be the case that, after the disk drive is received, no more than the maximum number of supported drives are in-place within the enclosure of the RAID configuration. In such instances, and when the insertion is a cold insertion into an empty disk drive slot, the method may further include marking the disk drive as Un-configured good alias Ready. Further, if the disk drive is inserted into a missing disk drive slot and has a smaller storage capacity than that of the replaced disk drive previously in place within the missing disk drive slot, the method may further include marking the disk drive as FAIL. Still further, if the disk drive is inserted into a missing disk drive slot and has the same storage capacity or larger storage capacity than the replaced disk drive, the method may further include marking the disk drive as FAIL or RBLD based on an Auto Rebuild flag. | 08-20-2009 |
20090235259 | Synchronous Adaption of Asynchronous Modules - A program disposed on a computer readable medium, having a main program with a first routine for issuing commands in an asynchronous manner and a second routine for determining whether the commands have been completed in an asynchronous manner. An auxiliary program adapts the main program to behave in a synchronous manner, by receiving control from the first routine, waiting a specified period of time with a wait routine, passing control to the second routine to determine whether any of the commands have been completed during the specified period of time, receiving control back from the second routine, and determining whether all of the commands have been completed. When all of the commands have not been completed, then the auxiliary program passes control back to the wait routine. When all of the commands have been completed, then the auxiliary program ends. | 09-17-2009 |
20090249111 | Raid Error Recovery Logic - A method of reading desired data from drives in a RAID1 data storage system, by determining a starting address of the desired data, designating the starting address as a begin read address, designating one of the drives in the data storage system as the current drive, and iteratively repeating the following steps until all of the desired data has been copied to a buffer: (1) reading the desired data from the current drive starting at the begin read address and copying the desired data from the current drive into the buffer until an error is encountered, which error indicates corrupted data, (2) determining an error address of the error, (3) designating the error address as the begin read address, and (4) designating another of the drives in the data storage system as the current drive. | 10-01-2009 |
20100005482 | Method for handling small computer system interface (SCSI) commands via a redundant array of inexpensive disks (RAID) device driver - The present invention is a method for handling an operating system kernel-provided command via a software-based device driver. The method includes receiving the operating system kernel-provided command from an operating system kernel. The method further includes determining if a kernel virtual address is required for responding to the command. The method further includes initiating a Direct Memory Access (DMA) operation for providing data to the operating system kernel in response to the command when a kernel virtual address is not required for responding to the command. The method further includes allocating a device driver buffer with a DMA address and a virtual address when a kernel virtual address is required for responding to the command. | 01-07-2010 |
20100138603 | System and method for preventing data corruption after power failure - A system and method for preventing data corruption after power failure is described. The system may include a host server, a disk array, a journaling disk, and/or a RAID controller. A method for preventing data corruption after power failure may include receiving at least one of a read command or a write command, storing information on an array of disk drives at least partially based on receiving the at least one of a read command or a write command, and storing persistent information on a journaling drive. | 06-03-2010 |
20100218193 | RESOURCE ALLOCATION FAILURE RECOVERY MODULE OF A DISK DRIVER - A method of resource allocation failure recovery is disclosed. The method generally includes steps (A) to (E). Step (A) may generate a plurality of resource requests from a plurality of driver modules to a manager module executed by a processor. Step (B) may generate a plurality of first calls from the manager module to a plurality of allocation modules in response to the resource requests. Step (C) may allocate a plurality of resources to the driver modules using the allocation modules in response to the first calls. Step (D) may allocate a portion of a memory pool to a particular recovery packet using the manager module in response to the allocation modules signaling a failed allocation of a particular one of the resources. Step (E) may recover from the failed allocation using the particular recovery packet. | 08-26-2010 |
20130254457 | METHODS AND STRUCTURE FOR RAPID OFFLOADING OF CACHED DATA IN A VOLATILE CACHE MEMORY OF A STORAGE CONTROLLER TO A NONVOLATILE MEMORY - Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory. Features and aspects hereof provide an enhanced storage controller having a volatile cache memory and multiple communication channels each coupled with a corresponding nonvolatile memory device. Responsive to detecting an impending loss of power, control logic of the controller copies data from the volatile cache memory to the multiple nonvolatile memories using the multiple communication channels operating substantially in parallel. Using multiple parallel channels and nonvolatile memory substantially temporally overlapping their operations assures that the cached data can be saved to nonvolatile memory before the controller is inoperable due to power loss. A simple “file system” and error detection and correction codes on the nonvolatile memory help assure that the saved data is valid for return to the volatile memory when power is restored to the controller. | 09-26-2013 |
20140250338 | VIRTUAL FUNCTION TIMEOUT FOR SINGLE ROOT INPUT/OUTPUT VIRTUALIZATION CONTROLLERS - Systems and methods presented herein provide for resetting a controller in a Single Root Input/Output Virtualization (SR-IOV) architecture. The architecture includes a physical function that periodically issues a heartbeat command to a physical function of an SR-IOV controller, starts a first timer, determines a firmware failure of the controller upon expiration of the first timer, and issues a command to reset the firmware of the controller. The architecture also includes a plurality of a virtual function drivers coupled to a plurality of virtual functions of the controller. Each virtual function driver periodically issues a heartbeat command to its corresponding virtual function, starts a second timer having a duration that is less than a duration of the first timer, determines a firmware failure of the controller upon expiration of the second timer, and pauses input/output operations to its corresponding virtual function until the firmware of the controller is reset. | 09-04-2014 |