×

Method and apparatus for optimizing the performance of a storage system

  • US 8,756,387 B2
  • Filed: 03/05/2010
  • Issued: 06/17/2014
  • Est. Priority Date: 03/05/2010
  • Status: Expired due to Fees
First Claim
Patent Images

1. A storage system for processing READ and WRITE requests from an external host, the storage system comprising:

  • (A) a FLASH storage system configured as a primary storage space for the storage system;

    (B) a backup hard drive storage system configured to back up data stored on the FLASH storage system, the backup hard drive storage system having a storage space that is an integer factor less than the storage space of the FLASH storage system and divided into a plurality of blocks; and

    (C) a storage controller configured to receive READ and WRITE requests from an external host, the storage controller being coupled to the FLASH storage system and the backup hard drive storage system such that the storage controller can issue READ and WRITE requests to both the FLASH storage system and the backup hard drive storage system, wherein the storage controller is configured to;

    (i) receive a WRITE request from an external host, the WRITE request containing data and an address corresponding to a location where such data is to be stored and;

    (a) forward the received WRITE request to the FLASH storage system, the FLASH storage system configured to perform a WRITE operation based on the data and address from the WRITE request;

    (b) associate the address provided in the WRITE request with a selected alternative address, and provide an alternative WRITE request to the backup hard drive storage system wherein the alternative WRITE request includes the selected alternative address and the data received in the WRITE request, the backup hard drive storage configured to perform a WRITE operation based on the data and the selected alternative address from the alternative WRITE request, wherein the alternative address is selected to achieve substantially sequential WRITE operations on the plurality of blocks within the backup hard drive storage system; and

    (ii) receive a READ request from an external host, the READ request containing an address corresponding to a location from which data is to be read and;

    (a) forward the received READ request to the FLASH storage system, the FLASH storage system configured to perform a READ operation based on the address from the READ request and to provide data resulting from the READ operation to the storage controller;

    (b) return the data received from the FLASH storage system to the external host in the absence of a READ error from the FLASH storage system;

    or(c) issue an alternative READ request to the backup hard drive storage system, the alternative READ request containing an address corresponding to an alternative address associated by the storage controller with the address received from the external host in the READ request and returning the data received from the backup hard drive storage system to the external host in the event of a READ error from the FLASH storage system; and

    (iii) identify one or more alternative addresses to be compacted in the backup hard drive storage system that are out of sequence for a next alternative WRITE operation and contain stale or invalid data, and;

    (a) issue one or more READ requests to the FLASH storage system, the one or more READ requests containing one or more addresses corresponding to the one or more alternative addresses to be compacted;

    (b) if data received from the FLASH storage system in response to the one or more READ requests is valid data, issue one or more WRITE requests to the backup hard drive storage system, the one or more WRITE requests containing the data received from the FLASH storage system and the one or more alternative addresses to be compacted; and

    (c) if data received from the FLASH storage system in response to the one or more READ requests results in faulty or erroneous data, issue one or more READ requests to the backup hard drive storage system containing one or more alternative addresses corresponding to the one or more addresses that resulted in the faulty or erroneous data, issue one or more WRITE requests to the backup hard drive storage system containing data received from the backup hard drive storage system and the one or more alternative addresses to be compacted, and issue one or more WRITE requests to FLASH storage system containing the data received from the backup hard drive storage system and the one or more addresses that resulted in the in faulty or erroneous data.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×