Inventors list

Assignees list

Classification tree browser

Top 100 Inventors

Top 100 Assignees


Dot Hill Systems Corporation

Dot Hill Systems Corporation Patent applications
Patent application numberTitlePublished
20110307636Method and apparatus for dynamically allocating queue depth by initiator - A method for maximizing I/O requests to a target port is provided. The method includes a storage controller obtaining an initiator allowed queue depth, receiving an I/O request and a current sequence identifier from an initiator logged into the target port, and determining if the initiator allowed queue depth is equal to a first queue depth corresponding to the initiator. If the initiator allowed queue depth is equal to the first queue depth then returning a queue full indication and a maximum sequence identifier equal to the current sequence identifier to the initiator. If the initiator allowed queue depth is not equal to the first queue depth then placing the I/O request on a queue, incrementing the first queue depth, and adjusting the maximum sequence identifier. Adjusting the maximum sequence identifier includes adding the current sequence identifier to the initiator allowed queue depth and subtracting the first queue depth.12-15-2011
20110252218Method and apparatus for choosing storage components within a tier - A method for a storage controller to write a data block to one of a plurality of storage components is provided. The storage controller receives a write request from a host computer, and determines at least a portion of the data block includes a Logical Block Address (LBA) that is not currently mapped to a physical page of storage. The storage controller calculates availability for each storage component within the plurality of storage components, and selects the storage component with a highest calculated availability from the plurality of storage components. The storage controller next determines a next available physical page within the selected storage component. Finally, the storage controller writes the at least a portion of the data block including LBAs that are not currently mapped to a physical page of storage to the next available physical page.10-13-2011
20110252210Method and apparatus for rebalancing storage components within a storage tier - A method for a storage controller to rebalance storage components within a storage tier is provided. The method maintains a linked list for each component, and each component includes a plurality of pages. Each linked list is ordered according to hot and cold pages and includes an identifier for each page. The method calculates a percent range of hot and cold pages for each component, and identifies a fullest and least full component. The method compares a random percent to the hot and cold percent ranges for the fullest component. If the random percent falls within the hot range, the method moves a selected hot page from the fullest component to an empty page in the least full component. If the random percent falls within the cold range, the method moves a selected cold page from the fullest component to an empty page in the least full component.10-13-2011
20110239043Buffer management method and apparatus for power reduction during flash operation - A method for providing reduced power consumption in a computer memory system is provided. The method includes transferring, by a memory controller coupled to a volatile memory, a non-volatile memory, and a buffer, first data from the volatile memory to the buffer. The buffer stores less data than the volatile memory and the non-volatile memory. The method also includes placing the volatile memory into self-refresh mode after transferring the first data to the buffer. The method further includes conveying the first data from the buffer to the non-volatile memory, where the amount of first data exceeds a predetermined threshold. While conveying the first data, the memory controller takes the volatile memory out of self-refresh mode when the amount of first data in the buffer reaches the predetermined threshold. The volatile memory is ready to transfer second data to the buffer when the memory controller is finished transferring the first data.09-29-2011
20110239021Memory calibration method and apparatus for power reduction during flash operation - A method for providing reduced power consumption in a computer memory system is provided. The method includes calibrating, by a processor, a volatile memory of the computer memory system at a first and a second operating speed, where the second operating speed is higher than the first operating speed. The method also includes operating, by a memory controller coupled to the processor and the volatile memory, the volatile memory at the second operating speed if a main power source provides power to the computer memory system. The method further includes operating, by the memory controller, the volatile memory at the first operating speed if a backup power source provides power to the memory controller and the volatile memory. The backup power source provides power to the memory controller and the volatile memory when there is a loss of main power to the computer memory system.09-29-2011
20110191644Method and apparatus for SAS speed adjustment - A method for maintaining reliable communication on a bidirectional communication link is provided. A receiver on the bidirectional communication link detects an error and maintains a count of detected errors. The transmitter on the bidirectional communication link polls the receiver in order to determine the count of detected errors, and performs a downshift evaluation for the bidirectional communication link. In response to performing the downshift evaluation for the bidirectional communication link, the transmitter maintains a transmission speed of the bidirectional communication link if the downshift evaluation determines that forgoing transmission speed downshift is required for the bidirectional communication link, and reduces the transmission speed of the path if the downshift evaluation determines that transmission speed downshift is required for the bidirectional communication link.08-04-2011
20110191637Method and apparatus for SAS speed adjustment - A method for maintaining reliable communication between a command initiator and a target device is provided. After the command initiator detects an error corresponding to the target device and a path between the command initiator and the target device, the command initiator performs a downshift evaluation. The initiator maintains a transmission speed if the downshift evaluation determines that forgoing a transmission speed downshift is required, and reduces the transmission speed if the downshift evaluation determines that transmission speed downshift is required. The command initiator then logs the downshift evaluation result and reports any transmission speed change to a user.08-04-2011
20110087792Data replication method and apparatus - A data storage system, device, and method are provided for replicating data between different data storage systems or appliances. More specifically, the present invention affords communications between heterogeneous data storage systems that potential employ different communication protocols. A bridging communication protocol is utilized by one or both storage systems in order to accommodate different communication protocols. Alternatively, a storage appliance connecting the data storage systems may employ the bridging communication protocol. 04-14-2011
20110072104Pull data replication model - A data storage system, device, and method are provided for replicating data between different data storage systems or appliances. More specifically, the present invention allows an initiating data storage device to pull data from a target data storage device. Thus, the storage device that is supplying the data can act as a target and does not require the additional software inherent in being an initiator. 03-24-2011
20100322053CONTROLLER BASED SHOCK DETECTION FOR STORAGE SYSTEMS - A data storage system controller having a shock detection sensor and methods utilizing such a controller are provided. The data storage system controller receives information or signals regarding shock events from the associated shock sensor, enabling the data storage system controller to take remedial action. The particular remedial action taken may be dependent on the severity of the detected shock event. The data storage system controller may also receive information regarding shock events from shock sensors provided separately from the data storage system controller, allowing the data storage system controller to take remedial action that is tailored to the locale of a shock event.12-23-2010
20100321818METHOD AND APPARATUS UTILIZING SHOCK SENSORS ON STORAGE DEVICES - A data storage system with a controller that receives shock data from a shock detection sensor and methods utilizing such a controller are provided. The data storage system controller receives information or signals regarding shock events from a shock sensor, enabling the data storage system controller to take remedial action. The particular remedial action taken may be dependent on the severity of the detected shock event. The data storage system controller may receive information regarding shock events from shock sensors provided separately from the data storage system controller, allowing the data storage system controller to take remedial action that is tailored to the locale of a shock event.12-23-2010
20100223428Snapshot reset method and apparatus - A method, device, and system for resetting snapshots are provided. The reset of a snapshot incorporates the traditional snapshot delete and snapshot create operations into a single operation. Additionally, a snapshot created under the reset operation may receive an array partition from a snapshot being deleted under the same snapshot reset operation thereby retaining its identifying characteristics.09-02-2010
20100064169Network storage appliance with integrated server and redundant storage controllers - A network storage appliance is disclosed. The appliance includes a chassis enclosing a backplane, and a server enclosed in the chassis and coupled to the backplane. The appliance also includes storage controllers enclosed in the chassis, each coupled to the backplane, which control transfer of data between the server and storage devices coupled to the storage controllers. The storage controllers also control transfer of data between the storage devices and computers networked to the appliance and external to the appliance. The storage controllers and the server comprise a plurality of hot-replaceable blades. Any one of the plurality of blades may be replaced during operation of the appliance without loss of access to the storage devices by the computers. In one embodiment, the server executes storage application software, such as backup software for backing up data on the storage devices, such as to a tape device networked to the server.03-11-2010
20100049822Network, storage appliance, and method for externalizing an external I/O link between a server and a storage controller integrated within the storage appliance chassis - A network storage appliance is disclosed. The storage appliance includes a port combiner that provides data communication between at least first, second, and third I/O ports; a storage controller that controls storage devices and includes the first I/O port; a server having the second I/O port; and an I/O connector for networking the third I/O port to the port combiner. A single chassis encloses the port combiner, storage controller, and server, and the I/O connector is affixed on the storage appliance. The third I/O port is external to the chassis and is not enclosed therein. In various embodiments, the port combiner comprises a FibreChannel hub comprising a series of loop resiliency circuits, or a FibreChannel, Ethernet, or Infiniband switch. In one embodiment, the port combiner, I/O ports, and server are all comprised in a single blade module for plugging into a backplane of the chassis.02-25-2010
20090327568Data Replication method and apparatus - A data storage system, device, and method are provided for replicating data between different data storage systems or appliances. More specifically, the present invention affords communications between heterogeneous data storage systems that potential employ different communication protocols. A bridging communication protocol is utilized by one or both storage systems in order to accommodate different communication protocols. Alternatively, a storage appliance connecting the data storage systems may employ the bridging communication protocol.12-31-2009
20090307450Snapshot Preserved Data Cloning - A method and device for cloning snapshots is provided. A new snapshot can be created by cloning an existing snapshot. The clone snapshot may use the preserved data of the existing snapshot, thereby obviating the need to copy the preserved data. Additionally, the clone snapshot may be created with a data structure for storing write data. Since the clone snapshot initially has no write data to store, the creation of the entire clone snapshot can be accomplished without copying any preserved data or write data from the existing snapshot, thereby increasing the efficiency with which a clone snapshot can be created.12-10-2009
20090259882APPARATUS AND METHOD FOR IDENTIFYING DISK DRIVES WITH UNREPORTED DATA CORRUPTION - A RAID controller uses a method to identify a storage device of a redundant array of storage devices that is returning corrupt data to the RAID controller. The method includes reading data from a location of each storage device in the redundant array a first time, and detecting that at least one storage device returned corrupt data. In response to detecting corrupt data, steps are performed for each storage device in the redundant array. The steps include reading data from the location of the storage device a second time without writing to the location in between the first and second reads, comparing the data read the first and second times, and identifying the storage device as a failing storage device if the compared data has a miscompare. Finally, the method includes updating the location of each storage device to a new location and repeating the steps for the new location.10-15-2009
20090094620HIGH DATA AVAILABILITY SAS-BASED RAID SYSTEM - A storage system includes two RAID controllers, each having two SAS initiators coupled to a zoning SAS expander. The expanders are linked by an inter-controller link and create a SAS ZPSDS. The expanders have PHY-to-zone mappings and zone permissions to create two distinct SAS domains such that one initiator of each RAID controller is in one domain and the other initiator is in the other domain. The disk drives are dual-ported, and each port of each drive is in a different domain. Each initiator can access every drive in the system, half directly through the local expander and half indirectly through the other RAID controller's expander via the inter-controller link. Thus, a RAID controller can continue to access a drive via the remote path in the remote domain if the drive becomes inaccessible via the local path in the local domain.04-09-2009
20080282030DYNAMIC INPUT/OUTPUT OPTIMIZATION WITHIN A STORAGE CONTROLLER - A system and method for optimizing accesses to storage devices based on RAID I/O request characteristics is disclosed. A current I/O request processed by a storage controller is analyzed for relative locality to a previous I/O request, and adjusted over time such that storage device accesses will be efficiently conducted with respect to sequential or random workloads. A storage device access profile is maintained for each storage device based on sequential or random locality characteristics of previous RAID I/O requests. The chunk locations of the two most recent accesses are sampled according to predetermined criteria in order to create a storage device access profile, which governs queue depth and I/O size parameters used to communicate with storage devices. By managing I/O requests to storage devices using this invention, performance of such a storage controller will be optimized for changing random and sequential workloads.11-13-2008
20080228959METHOD AND APPARATUS FOR OPERATING STORAGE CONTROLLER SYSTEM IN ELEVATED TEMPERATURE ENVIRONMENT - A storage controller that operates under elevated temperature conditions includes a memory, a memory controller, and a CPU that detects a temperature of the memory controller has exceeded a threshold while operating at a first frequency and responsively places the memory into self-refresh mode, reduces the memory controller frequency to a second frequency, and then takes the memory out of self-refresh mode. The clock frequency of a bus bridge or communications link circuit may also be reduced when their temperatures exceed a threshold. The bus bridge may deny access to requestors of access to the memory while the frequency is being reduced. Message transfers on a communications link between redundant storage controllers in a system may be suspended while the link frequency is being reduced. Finally, the system may fail over to one controller while the other controller reduces the frequencies and then fail back.09-18-2008
20080215808RAID CONTROLLER USING CAPACITOR ENERGY SOURCE TO FLUSH VOLATILE CACHE DATA TO NON-VOLATILE MEMORY DURING MAIN POWER OUTAGE - A write-caching RAID controller includes a CPU that manages transfers of posted-write data from host computers to a volatile memory and transfers of the posted-write data from the volatile memory to a redundant array of storage devices when a main power source is supplying power to the RAID controller. A memory controller transfers the posted-write data received from the host computers to the volatile memory and transfers the posted-write data from the volatile memory for transfer to the redundant array of storage devices as managed by the CPU. The memory controller flushes the posted-write data from the volatile memory to the non-volatile memory when main power fails, during which time capacitors provide power to the memory controller, volatile memory, and non-volatile memory, but not to the CPU, in order to reduce the energy storage requirements of the capacitors. During main power provision, the CPU programs the memory controller with information needed to perform the flush operation, such as the location and size of the posted-write data in the volatile memory and various flush operation characteristics.09-04-2008
20080201616REDUNDANT STORAGE CONTROLLER SYSTEM WITH ENHANCED FAILURE ANALYSIS CAPABILITY - A redundant storage controller system that robustly provides failure analysis information (FAI) to an operator of the system is disclosed. The system includes first and second storage controllers in communication with one another, such as via a PCI-Express link. When one of the controllers fails, the FAI is transferred from the failed controller to the surviving controller over the link. The operator issues a command to the surviving storage controller, which responsively provides the FAI. In one embodiment, the failed storage controller writes the FAI to the second storage controller. In one embodiment, each storage controller periodically writes the FAI before there is a failure. In one embodiment, the second storage controller reads the FAI from the failed storage controller. The FAI may include boot logs, crash logs, debug logs, and event logs. The FAI may also be written to a disk drive connected to the controllers.08-21-2008

Patent applications by Dot Hill Systems Corporation