JP5008845B2 - ストレージシステムとストレージ装置及びその制御方法 - Google Patents

ストレージシステムとストレージ装置及びその制御方法 Download PDF

Info

Publication number
JP5008845B2
JP5008845B2 JP2005252989A JP2005252989A JP5008845B2 JP 5008845 B2 JP5008845 B2 JP 5008845B2 JP 2005252989 A JP2005252989 A JP 2005252989A JP 2005252989 A JP2005252989 A JP 2005252989A JP 5008845 B2 JP5008845 B2 JP 5008845B2
Authority
JP
Japan
Prior art keywords
data
flash memory
host computer
hdd
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005252989A
Other languages
English (en)
Other versions
JP2007066129A (ja
Inventor
崇仁 中村
和久 藤本
昭 藤林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005252989A priority Critical patent/JP5008845B2/ja
Priority to US11/247,161 priority patent/US7464221B2/en
Priority to EP06250654A priority patent/EP1764677A1/en
Publication of JP2007066129A publication Critical patent/JP2007066129A/ja
Priority to US12/250,694 priority patent/US8332582B2/en
Application granted granted Critical
Publication of JP5008845B2 publication Critical patent/JP5008845B2/ja
Priority to US13/688,447 priority patent/US8631199B2/en
Priority to US14/098,575 priority patent/US9251063B2/en
Priority to US14/989,965 priority patent/US9495105B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、ストレージ装置に関し、また、その制御の方法に関するものである。
近年、データセンタなどの情報ビジネスの現場において、ストレージシステムの総所有コスト(TCO)の削減がますます重要になってきている。その一方で、データを長期的かつ確実に記録する要求も高まってきている。このことに関する例としては、金融機関および医療機関などの文書データは、消去せずに蓄積されることが法律によって義務付けられていることなどが挙げられる。こうした背景において、高信頼で大容量のストレージシステムが必要とされている。しかしながら、ハードディスクドライブ(以降では「HDD」という)を用いた大規模なストレージシステムでは、一般に、ストレージ容量に比例して電力消費量が増大する。つまり、大容量のストレージシステムを所有することは、電気料金が含まれる総所有コストが上昇してしまうことを示している。こうした状況を鑑み、キャッシュ管理アルゴリズムにより、HDDの消費する電力を低減させる技術が提案されている(非特許文献1)。また、問題は、電気料金に限られたことではない。一般に、ストレージシステムの容量が大きくなるほど、設置するための床面積が増大する。このことも総所有コストの上昇につながってしまっている。
ところで、近年、不揮発メディアとして、フラッシュメモリが注目されている。フラッシュメモリは、一般にHDDと比較し、数十倍以上低消費電力であり、高速に読み出しが可能である。また、HDDのように機械的な駆動部分が不要なため小型である。
しかしながら、フラッシュメモリには、情報を保持するセルの物理的な理由により、書き込み回数の制限がある。こうした制限に対し、上位装置に示すアドレスとセル位置との対応をもち、各セルに書き込まれる回数を均等化するように制御を行う、ウェアレベリングと呼ばれる技術などにより、フラッシュメモリの書き込み可能回数の向上が図られている。なお、以降では、情報を保持するための素子を単に「フラッシュメモリ」といい、上記のウェアレベリングや、上位装置に対するプロトコル処理などを行う機構を含めたものを「フラッシュメモリデバイス」という。こういった技術により、フラッシュメモリデバイスとしての書き込み回数制限に対する効率化が図られているものの、フラッシュメモリデバイスの書き込み回数制限は依然存在している。また、それに加えて、フラッシュメモリに書き込む際に、消去と呼ばれる操作が必要になる場合はHDD同等程度の速度となってしまうデメリットも存在している。
このようなフラッシュメモリを用いたストレージシステムを構成する技術としては、例えば特許文献1がある。特許文献1は、RAID構成などにおいて頻繁にアクセスされるパリティデータをフラッシュメモリなどの半導体ディスクにおき、ストレージシステムの性能を向上させる技術を示している。しかし、ストレージシステムとしての書き込み回数制限を回避する手段は示されていない。また、HDDとフラッシュメモリを混在して1つのRAIDグループ、すなわち1つの仮想デバイスを構成するので、それぞれのメディアの特徴を考慮した仮想デバイスの制御はできていない。
特開平6−324815号公報 ZHU, Q., DAVID, F., ZHOU, Y., DEVARAJ, C., AND CAO, P. ,"ReducingEnergy Consumption of Disk Storage Using Power-Aware Cache Management". InProc. of the 10th Intl. Symp. on High Performance Computer Architecture(HPCA-10) (Feb. 2004).
以上のような背景から、低消費電力であり、設置面積が小さく、かつ、大容量を得ることのできる大規模まで構成可能なストレージシステムを提供することが課題となっている。
また、データを格納するメディアに応じた、高いシステム性能を提供することも課題となっている。
また、ストレージシステムとしての信頼性、可用性の向上も課題である。書き込み回数制限を有するメディアに対してはストレージシステムとして緩和を行わなくてはならない。
本発明は、ホストコンピュータからのデータを保存するメディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備え、前記メディアは、HDDと、フラッシュメモリとからなり、前記ホストコンピュータからのリードの要求を受けた際に、格納先が前記HDDか前記フラッシュメモリかを判別し、格納先が前記HDDの場合には前記HDDから読み出したデータを前記キャッシュメモリ部に格納した後に前記ホストコンピュータに応答し、格納先が前記フラッシュメモリの場合には前記フラッシュメモリから読み出したデータを前記キャッシュメモリ部には格納せずに前記ホストコンピュータに応答し、前記フラッシュメモリに対する書き込み回数を平均化するように、デステージするデータを選択することを特徴とする。
すなわち、本発明は、ホストコンピュータからのデータを保存する1以上のメディアと、前記メディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備えるストレージ装置を具備するストレージシステムにおいて、前記メディアは、HDDと、フラッシュメモリとからなり、前記ホストコンピュータからのリードの要求を受けた際に、格納先が前記HDDか前記フラッシュメモリかを判別し、格納先が前記HDDの場合には前記HDDから読み出したデータを前記キャッシュメモリ部に格納した後に前記ホストコンピュータに応答し、格納先が前記フラッシュメモリの場合には前記フラッシュメモリから読み出したデータを前記キャッシュメモリ部には格納せずに前記ホストコンピュータに応答し、前記ストレージ装置は、前記フラッシュメモリに対する書き込み回数を平均化するように、デステージするデータを選択し、各々のフラッシュメモリに対するデステージした回数を記録し、デステージするデータを選択する際に、各々の前記フラッシュメモリに対するデステージした回数を比較し、デステージした回数が少ないものから優先的にデステージするデータを決定することを特徴とするストレージシステムである。
本発明のストレージシステムでは、低消費電力であり、設置面積が小さく、かつ、大規模まで構成可能であり、また、データを格納するメディアに応じた、高いシステム性能を提供することもできる。また、各メディアに対する書き込み回数の低減を図るので、書き込み回数制限を有するメディアに対してもストレージシステムとして、信頼性、可用性の向上可能になるといった利点がある。
本発明を実施するための最良の形態を説明する。
以下に本発明のストレージシステムとストレージ装置及びその制御方法の実施例について、図面に基づいて説明する。
実施例1を説明する。図1は、本発明の第1の実施の形態のストレージシステムの構成のブロック図である。ストレージシステムは、ストレージ制御装置1およびハードディスクドライブ(HDD)50、フラッシュメモリデバイス(本図ではFM制御部16の内部にフラッシュメモリデバイスを備える例を示している)から構成されている。ストレージ制御装置1は、チャネル4を通じて、SANスイッチ3などで構成されるSAN(Storage Area Network)を経て、ホストコンピュータ2に接続される。また、ディスク側チャネル60を通じてデータを格納するメディアである複数のHDD50と接続されている。ストレージ制御装置1は、複数のチャネル制御部11と複数のキャッシュメモリ13と制御メモリ部17と複数のディスク制御部14および複数のFM制御部16と、これらを、内部パス15を介して接続する内部スイッチ12から成る。チャネル制御部11は、チャネル4を通じてホストコンピュータ2からの入出力要求を受け取り、この入出力要求の要求種類(例えば、リード要求、ライト要求)や対象アドレスなどを解釈し、図7以降で述べるような処理を行う。キャッシュメモリ部はHDDやフラッシュメモリに格納されるべきデータやホストコンピュータ2に返すべきデータを一時的に格納する。制御メモリ部17は、キャッシュメモリ部13のディレクトリ情報や、ストレージシステムの構成情報を格納している。ディスク制御部14は、チャネル制御部11などの要求に基づき、ディスク側チャネル60を通じてHDD50の制御を行い、ホストコンピュータ2から要求されたデータを取り出しや格納を行う。この際、ディスク制御部14がHDD50に対してRAID制御を行いストレージシステムの信頼性、可用性および性能を向上させてもよい。FM制御部16は、フラッシュメモリまたはフラッシュメモリデバイスの制御を行う。チャネル制御部11などの要求に基づき、フラッシュメモリまたはフラッシュメモリデバイスにホストコンピュータ2から要求されたデータを取り出しや格納を行う。この際、FM制御部16がフラッシュメモリデバイスに対してRAID制御を行いストレージシステムの信頼性、可用性および性能を向上させてもよい。なお、本実施例では、ストレージシステムはHDD50と接続されているが、HDD50ならびにディスク制御部14を持たない構成でもよい。また、制御メモリ部17に格納される情報は、物理的にキャッシュメモリ部13と同一のメモリ上に配置してもよい。
図2はチャネル制御部11の詳細の構成のブロック図である。チャネル制御部11は、複数のプロセッサ111、メモリモジュール112、周辺処理部113、及び、複数のチャネルプロトコル処理部114と内部ネットワークインタフェース部117から成る。プロセッサ111はバス等で周辺処理部113に接続される。周辺処理部113は、メモリモジュール112に接続され、メモリモジュールの制御を行う。また、制御系バス115を介してチャネルプロトコル処理部114および内部ネットワークインタフェース部117にも接続される。周辺処理部113は、接続されるプロセッサ111及びチャネルプロトコル処理部114及び内部ネットワークインタフェース部117からのパケットを受け、パケットの示す転送先アドレスがメモリモジュール112上ならばその処理を行い、必要ならばデータを返す。また転送先アドレスがそれ以外ならば、適切なフォワーディングを行う。また、周辺処理部113は、その他のプロセッサ111がこの周辺処理部113に接続されるプロセッサ111と通信を行うためのメールボックス1131を持つ。プロセッサ111は、周辺処理部113を通してメモリモジュール112にアクセスし、メモリモジュール112に格納された制御プログラム1121に基づいて処理を行う。また、メモリモジュール112には、チャネルプロトコル処理部114がDMA(Direct Memory Access)を行うための転送リスト1123も格納されている。チャネルプロトコル処理部114は、チャネル4上のプロトコル制御を行い、ストレージシステム1内部で処理ができるようなプロトコル方式に変換する。チャネルプロトコル処理部114は、チャネル4を通じてホストコンピュータ2からの入出力要求を受けると、その入出力要求のホストコンピュータ番号やLUN(Logical Unit Number)やアクセス先アドレスなどをプロセッサ111に通知する。プロセッサ111は、その通知に基づき、ディレクトリ情報1323にアクセスし、入出力要求のデータを格納すべきアドレスまたは入出力要求のデータが存在する場合はメモリモジュール112上に転送リスト1123を作成し、それに基づきチャネルプロトコル処理部114に転送を行わせる。ホストコンピュータ2がリード要求したデータがキャッシュメモリ13上にない場合で、HDD50に格納されているならば、ディスク制御部14に、HDD50に格納されている要求データをキャッシュメモリ13に格納する(この動作を「ステージング」という)ように指示を与えた後に転送リスト1123により転送させる。フラッシュメモリ上に格納されているならば、フラッシュメモリのアドレスを転送リストにセットする。転送リストは、キャッシュメモリ13もしくはフラッシュメモリ上のアドレスのリストになっており、入出力要求がライトならば、データ転送系バス115を介して接続された内部ネットワークインタフェース部117を通じ、ホストコンピュータからのデータをリストに記載されたアドレスに書き込んでいく。またリードならば、同様にリストに記載されたアドレスからデータを読み込み、それをホストコンピュータに返す。これらの動作の詳細に関しては図7以降を用いて説明する。内部ネットワークインタフェース部117は、チャネル制御部11内と他のストレージシステム1内部と内部パス15を経て通信を行う際の、インタフェースとなる部位である。
なお、ディスク制御部14もチャネル制御部11とほぼ同じ構造を持つ。ただし、制御プログラム1121の内容が異なり、また、チャネルプロトコル処理部114はHDD50との通信を行う(チャネル4とディスク側チャネル60のプロトコルは異なってもよい。しかし、ディスク側チャネル60上のプロトコル処理を行い、ストレージシステム1内部で処理が出来るように変換する意味ではチャネル制御部11のチャネルプロトコル処理部114と同様)。プロセッサ111はチャネル制御部11からの要求や一定時間間隔で、キャッシュメモリ13上のデータをハードディスクドライブ50に書き込みを行う。また、キャッシュメモリ13上にホストコンピュータから要求されたデータが存在していない場合は、チャネル制御部11からの指示を受け、HDD50からデータを読み込み、キャッシュメモリ13にそのデータを書き込む。これらの際には、プロセッサ111は、制御メモリ部17に格納されたディレクトリ情報にアクセスし、ホストコンピュータ2の要求するデータを読み出すべきまたは格納すべきキャッシュメモリのアドレスを調査する。そして、要求されたデータがキャッシュメモリ13上に存在しない場合でキャッシュメモリ13に空き領域がないときは、要求されたデータを格納するため空き領域を作るべく、すでにあるデータをHDD50に格納する(この動作をデステージと呼ぶ)。これらHDD50の操作においては、ディスク制御部14がディスク側チャネル60を通じてHDD50を制御する。この際、HDD50全体としての可用性および性能を向上させるため、ディスク制御部14はHDD50群に対してRAID制御を行う。
図3は、FM制御部16の詳細の構成のブロック図であり、フラッシュメモリを一体化している。FM制御部16は、内部ネットワークインタフェース部161、DMAコントローラ162、揮発メモリであるメモリモジュール164およびその制御を行うメモリコントローラ163、ならびにフラッシュメモリ166(図中ではFM)とそれを制御するFMコントローラ165が備えられている。内部ネットワークインタフェース部161は、FM制御部16内と他のストレージ制御装置1内部と内部パス15を経て通信を行う際の、インタフェースとなる部位である。FM制御部16内のDMAコントローラ162は、ホストコンピュータ2からのライトの要求を処理する際キャッシュメモリに空き領域を作るなどの場合に、チャネル制御部11のプロセッサ111がセットする転送リスト1641により、キャッシュメモリ部13からフラッシュメモリ166へのデータの転送を行う。FMコントローラ165は、内部ネットワークを通してなされたチャネル制御部11からの読み込み要求や、DMAコントローラ162の書き込み要求により、フラッシュメモリ166を制御しデータのやり取りを行う。図3において、フラッシュメモリ166の実装形態としては、基板に直接配置することができる。この際は図4のコネクタやFMプロトコル処理部、図5のFM側チャネルなどの部品が不要になるので、よりコンパクトにストレージシステムを実現することが可能になる。また、FMコントローラ165にてそれぞれのフラッシュメモリ166に対するウェアレベリングなどを行ってもよい。
図4は、FM制御部16の別の詳細の構成のブロック図である。ここでは、記憶素子としてフラッシュメモリデバイス169を用いており、フラッシュメモリデバイスを別体としている。フラッシュメモリデバイス169は、コネクタ168を介してFM制御部16と接続されているため、脱着が可能となっている。そのため、フラッシュメモリデバイス169が故障した際には、交換することも可能となる(これを行うためには、チャネル制御部11のプロセッサ111が、予めフラッシュメモリデバイス169間で冗長構成をとるように、転送リスト1641をセットしていればよい)。また、フラッシュメモリデバイス169自体をより容量の大きなものに交換することも可能となる。このフラッシュメモリデバイス169は、内部においてウェアレベリングなどの技術により信頼性、性能の向上が図られているものであり、外部とのやり取りは、専用プロトコルで行われる。そのため、FMプロトコル処理部167にて、ストレージ制御装置1内部で処理できる形式に変換を行っている。
図5は、FM制御部16の別の詳細の構成のブロック図である。ここでは、フラッシュメモリデバイス169をFM側チャネル1610により接続している。この構成をとることにより、図4の特徴に加え、より多数のフラッシュメモリデバイス169を接続でき、大容量のストレージシステムを実現することができる。また、あるフラッシュメモリデバイス169の一部の領域は、後に説明する緊急デステージ領域1690としてもよい。
図6は、内部スイッチ部12の詳細の構成のブロック図である。内部スイッチ部12は、内部ネットワークインタフェース部121と複数のセレクタ122からなっている。セレクタ122は、ストレージ制御装置1の内部のチャネル制御部11など各部から送られてきた要求の要求先を解析し、その要求先に接続される内部パス15を制御する内部ネットワークインタフェース部121に要求を転送する。その際、各セレクタ間で要求転送先の内部ネットワークインタフェース部121競合を行う。この内部スイッチ部12により、チャネル制御部11からは、キャッシュメモリ部13、制御メモリ部17およびFM制御部16と直接のやり取りを行うことができる。FM制御部16はチャネル制御部11、キャッシュメモリ部13および制御メモリ部17とやり取りができる。また、ディスク制御部14からは、キャッシュメモリ部13と制御メモリ部17に直接のやり取りができる。FM制御部16とディスク制御部14の接続に関する相違は、この内部スイッチ部12はチャネル制御部FM制御部間接続123を備えていることにより、FM制御部16はチャネル制御部11と直接のやり取りが行える点である。
図7は、ホストコンピュータ2から、HDD50領域へのリードの要求が行われた場合の処理の流れを表す図である。ホストコンピュータ2からリード要求を、チャネル4を通じてチャネル制御部11が受信する(s701)。チャネル制御部11のプロセッサ111は、受信した要求を解析し、LUNや対象論理ブロックアドレスを得る。ここでは、該当データがHDD50に格納される領域のものであることを知る(s702)。さらにチャネル制御部11のプロセッサ111は、制御メモリ部17に格納された、ライトキャッシュ領域ならびにリードキャッシュ領域のディレクトリ情報にアクセスし、キャッシュメモリ部13に該当データの格納の有無を確認する(s703、s704。図中では1回のアクセスになっているが、実際には複数回のアクセスになる場合もある。以下も同様)。該当データがキャッシュメモリ部13に既に存在していればs715以降の処理によりホストコンピュータ2に応答するが、ここでは、該当データがキャッシュメモリ部13に存在しなかったとする。この場合、ディスク制御部に該当データをキャッシュメモリ部13に転送させる(ステージング)が、キャッシュメモリ部13に空き領域がない場合は、ステージングの前にデータを格納すべきキャッシュ領域を作らなければならない。どの領域に空き領域にすべきかを決定し、その操作をおこなうステップがs705、s706である。領域が確保された後で、ステージングの要求を、制御メモリ部17の通信領域173にメッセージを書き込むことを介してディスク制御部14に通知する(s707)。ディスク制御部14は定期的もしくは一連の処理の終了毎に、制御メモリ部17の通信領域173を読み込むことによりチャネル制御部11からの要求があることを知る(s708、s709)。なお、こうした方式でチャネル制御部11とディスク制御部14が連携を行うのは、HDD50からデータを得られる時間が不定で、その他の処理時間と比較して長いためであり、この方式によりバックグラウンドで他の要求の処理などを行うことができる。ステージングの要求を認知したディスク制御部14は、該当データが得られるようにディスク側チャネル60を通じてHDD50を制御する(s710)。HDD50からのデータが得られると、s705、s706により確保した領域に、該当データを書き込む(s711。ステージング)。また、ステージングが終了したことを、通信領域173を用いてチャネル制御部11に通知する(s712)。チャネル制御部11は、ディスク制御部14同様に通信領域173を読み込んでおり、ステージング終了のメッセージの存在を知る(s713、s714)。その後、チャネル制御部11のプロセッサ111は、転送リスト1123をセットし(あらかじめステージング要求直後にセットしておいてもよい)、転送の指示を行う。チャネルプロトコル処理部114は、キャッシュメモリ部13から該当データを読み込み、ホストコンピュータ2に転送する(s715、s716、s717)。以上が、HDD50に格納されたデータのリードの処理の流れである。HDD50の速度が、不定であり、遅いため、キャッシュメモリ部13を介したデータのやり取りが必要となる。
図8は、ホストコンピュータ2から、フラッシュメモリ領域へのリードの要求が行われた場合の処理の流れを表す図である。ホストコンピュータ2からリード要求を、チャネル4を通じてチャネル制御部11が受信する(s801)。チャネル制御部11のプロセッサ111は、受信した要求を解析し、LUNや対象論理ブロックアドレスを得る。ここでは、該当データがフラッシュメモリに格納される領域のものであることを知る(s802)。さらにチャネル制御部11のプロセッサ111は、制御メモリ部17に格納された、ライトキャッシュ領域のディレクトリ情報にアクセスし、キャッシュメモリ部13のライトキャッシュ領域132に該当データの格納の有無を確認する(s803、s804)。図7の場合と違い、ライトキャッシュ領域132に対する調査のみでよい。ここでは、該当データがキャッシュメモリ部13に存在しなかったとする。チャネル制御部11のプロセッサ111は、転送リスト1123をセットし、チャネルプロトコル処理部114に転送の指示を行う。チャネルプロトコル処理部114は、内部スイッチ部12のチャネル制御部FM制御部間接続123を介して、FM制御部16にデータの要求を行う(s805)。FM制御部16は、フラッシュメモリ166もしくはフラッシュメモリデバイス169からデータを取り出し(s806)、チャネル制御部11にデータを返す(s807)。こうして得たデータをチャネルプロトコル処理部はホストコンピュータ2に転送する(s808)。以上が、フラッシュメモリ166もしくはフラッシュメモリデバイス169に格納されたデータのリード手順であった。フラッシュメモリの読み出し速度が一定で、高速のため(s806)、キャッシュメモリ部13を介さずにデータのやり取りが可能になる。また、直接転送を行うため、リードに関してはキャッシュ処理を行わず、リードキャッシュ領域131の調査(s703、s704)やキャッシュ領域の確保(s705、s706)の処理が不要になり、メディアからの読み出し高速化のみならず、付随する処理の高速化も可能になる。また、フラッシュメモリに対しては、リードキャッシュ領域131が不要なため、キャッシュメモリ部13やそのリードキャッシュディレクトリ情報1711を格納する制御メモリ部17の容量を小さくすることが可能になる効果もある。
続いて、フラッシュメモリ166またはフラッシュメモリデバイス169に好適なキャッシュメモリ部13の制御方法を説明するが、まずその前に、ホストコンピュータ2からライト要求が行われた場合の処理の流れと、キャッシュメモリ部13に関わる情報の説明を行う。
図11Aは、ホストコンピュータ2からライトの要求が行われた場合で、すでにキャッシュメモリ部13上に該当アドレスのデータが存在する場合の処理の流れを表す図である。ライト要求については、対象がHDD50領域、フラッシュメモリ領域いずれの場合もデータをキャッシュメモリ部13に一時的に格納する。まず、ホストコンピュータ2からライト要求を、チャネル4を通じてチャネル制御部11が受信する(s1101)。チャネル制御部11のプロセッサ111は、受信した要求を解析し、LUNや対象論理ブロックアドレスを得る(s1102)。さらにチャネル制御部11のプロセッサ111は、制御メモリ部17に格納された、ライトキャッシュ領域ならびにリードキャッシュ領域のディレクトリ情報にアクセスし、キャッシュメモリ部13に該当データの格納の有無を確認する(s1103、s1104。なお、リードキャッシュ領域131に存在した場合は、後に述べるような手順で該当スロットを無効化し、新たにライトキャッシュディレクトリ情報1712に加える)。ここでは、該当アドレスのデータがライトキャッシュ領域132に既に存在していたとする。この場合、同じキャッシュメモリのスロット(キャッシュの制御単位。後で詳述)にデータを格納する。チャネル制御部11は、 ホストコンピュータ2にデータの送信要求を行い(s1105)つつ、データを該当するスロットへ格納するように転送リスト1123をセットする。チャネル制御部11のチャネルプロトコル処理部114は、応答したホストコンピュータ2からのデータを受信し(s1106)、それを転送リスト1123に基づきキャッシュメモリ部13に格納する(s1107)。このような場合、フラッシュメモリに対するライト要求であったとしても、フラッシュメモリに書き込みをしなくともよく、書き込み回数の低減が図れる。このため、ライト要求の場合は、リード要求の場合と異なり、データの格納メディアがフラッシュメモリ166もしくはフラッシュメモリデバイス169の場合でも、キャッシュメモリ部13を用いた処理を行う。
次に図11Bを用いて、ホストコンピュータ2から、ライトの要求が行われた場合で、キャッシュメモリ部13上に該当アドレスのデータが存在しないが既に空いているスロットがない場合の処理の流れを説明する。s1124までは、図11Aのs1104と同様であるが、この図においては、該当アドレスのデータがライトキャッシュ領域132に存在しておらず、空きのスロットはない場合とする。そこで、まず、既にキャッシュメモリ部13上に存在するデータを、格納されるべきHDD50、フラッシュメモリに格納し(デステージング)、今回のホストコンピュータ2からのデータを格納するための領域を作る。まず、LRU(Least Recently Used)アルゴリズムなどで、デステージするデータを決定する(s1125)。デステージするデータが決まったら、チャネル制御部11のプロセッサ111は、FM制御部16に、キャッシュメモリ部13上のアドレスと格納先のフラッシュメモリ166もしくはフラッシュメモリデバイス169のアドレスの対応が記された転送リスト1641をセットする(s1127)。なお、対象がHDD50の場合は、図7同様に通信領域173を用いてディスク制御部14にメッセージを送信することにより、デステージの要求が行われる。続いて、転送リスト1641に基づき、FM制御部16のDMAコントローラ162はキャッシュメモリ部13から該当データを読み込み(s1127、s1128)、フラッシュメモリ166もしくはフラッシュメモリデバイス169に書き込む(s1129)。一連の処理が終了するとDMAコントローラ162はデステージが完了した旨をチャネル制御部11のプロセッサ111に通知する(s1130)。プロセッサ111は、デステージしたスロットに今回のホストコンピュータ2からのデータを格納するために、ディレクトリ情報を更新し(s1131、s1132)、ホストコンピュータ2にデータの送信要求を行い(s1133)つつ、データを該当するスロットへ格納するように転送リスト1123をセットする。チャネル制御部11のチャネルプロトコル処理部114は、応答したホストコンピュータ2からのデータを受信し(s1134)、それを転送リスト1123に基づきキャッシュメモリ部13に格納する(s1135)。
次に、これまで述べてきたキャッシュメモリ部13に関する情報を説明する。図9は、キャッシュメモリ部13ならびに制御メモリ部17に格納されるデータの詳細を示したブロック図である。キャッシュメモリ部13は、リードキャッシュ領域131とライトキャッシュ領域132を持つ。リードキャッシュ領域131は、ホストコンピュータ2からリード要求されたデータを一時的に格納する。これにより、格納されているデータに対して再びホストコンピュータ2からリード要求を受け付けた場合に、HDD50から再び読み込むことなくリードキャッシュ領域131のデータを応答することによりストレージシステムとしての処理の高速化を図る。本実施例では、HDD50の読み出しまでの時間が不定であり、低速であるためリードキャッシュ領域131を設けているが、フラッシュメモリに格納されているデータに対してはリードキャッシュ領域131を用いない。ライトキャッシュ領域132は、ホストコンピュータ2からライト要求されたデータを一時的に格納し、格納されているデータと同じアドレスに対して再びライト要求を受け付けた場合には、ライトキャッシュ領域132上の該当データを上書きする。HDD50領域に対しては、高速なキャッシュメモリ部13に一時的に書き込んでおくことで性能の向上も期待できる。また、キャッシュメモリ部13上で上書きさせるため、フラッシュメモリに書き込む回数を低減することができ、ストレージシステムの信頼性、可用性を向上させることができる。なお、これらの管理している単位をここではスロットという。
次に制御メモリ部17について説明する。制御メモリ部17は、ディレクトリ情報171、構成情報172ならびに通信領域173を格納している。構成情報172は、ストレージシステムに関する情報である。例えば、チャネル制御部11がいくつ存在していて、それぞれ接続されているチャネル4にどういったLU(Logical Unit)を提供し、そのLUは、どのHDD50もしくはフラッシュメモリデバイス166を用いてデータを格納するか、またそれはどういった形で仮想的に提供するか、といった情報である。通信領域173は、チャネル制御部11とディスク制御部14とが互いにメッセージを書き込みまたは読み込みを行い協調動作するための領域である。また、ディレクトリ情報171は、キャッシュメモリ部13にどのようなデータが格納されているかを示す情報であり、どのLUNや論理ブロックアドレス(LBA、Logical Block Address)などで示されるホストコンピュータ2からのアドレスのデータがキャッシュメモリ部13上のどこに格納されているかを示すリードキャッシュディレクトリ情報1711、ライトキャッシュディレクトリ情報1172、および、新しいデータをキャッシュメモリ部13に格納するために、どの元からあるデータを無効化するかを決定するための基準となるリードおよびライトのアクセス順序リスト1713、1714を持つ。
なお、キャッシュメモリ部13、制御メモリ部17は、高速で書き込み回数制限のない揮発性のメモリで構成される。しかし、停電などに備え、一定時間は内容を保持できるバッテリバックアップの機能を備えている。しかし、そのバッテリの保つことの出来る時間を越えると考えられる更に大規模な停電の際には、図11Bのs1125からs1129の処理を用いて、全ての一時的に格納されたキャッシュメモリ部13上のデータをメディアに書き込み、バックアップバッテリが切れた際にもデータを失わないようにする。もしくは、s1125からs1129を用いた処理はプロセッサ111の計算量が必要となってしまうのでこの方法を用いず、メディア上に予め用意された緊急デステージ領域に、キャッシュメモリ部13および制御メモリ部17のイメージをそのまま書き込む。これは、転送リスト1641をキャッシュメモリ部13および制御メモリ部17の全域を獲得するようにセットすることによって実行しても、DMAコントローラ162に、キャッシュメモリ部13および制御メモリ部17のイメージを取得する機能を設けることによって実行してもよい。特にフラッシュメモリは、低消費電力であるので、バックアップバッテリの限られた時間と電力で実行せねばならないこの処理のメディアとして適している。つまり、この緊急デステージ領域をフラッシュメモリ166もしくはフラッシュメモリデバイス169上に設けることにより大きな効果が得られる。例えば、図5ではあるフラッシュメモリデバイス169の一部の領域に緊急デステージ領域1690を割り当てている。
図10Aは、リードキャッシュディレクトリ情報1711、ライトキャッシュディレクトリ情報1172の詳細を示したブロック図である。ディレクトリ情報は、LUN欄1001、LBA欄1002、最終的にそのデータが格納されるメディアを示すメディア欄1003および、それに続く、ホストコンピュータ2から指定されるアドレス(LBA)とそのデータが格納されているキャッシュメモリ部13上のアドレスの対応がリスト形式で格納されているホスト−キャッシュアドレス対応リスト1004から成る。キャッシュメモリ部13上のホストコンピュータ2の要求したデータがあるかどうかを調査する場合(図7のs703、s704や図8のs803、s804の操作に相当)、まず受領した要求のLUNと一致するものをLUN欄1001から見つける。次に対応するポインタが指し示すテーブルのLBA欄1002と、受領した要求のLBAの一致するものを調査する。LBA欄1002はLBAの範囲が示されており、一致するLBA範囲のデータに関する情報が、その欄に対応するポインタが指す先の、ホスト−キャッシュアドレス対応リスト1004に格納されている。これには、(範囲ではなく)LBAの値と、そのデータが格納されているキャッシュのアドレス(スロット番号)が記されている。このホスト−キャッシュアドレス対応リスト1004の中に対応するLBAがなければキャッシュメモリ部13には該当データが格納されていないことになる。
図10Bは、従来のアクセス順序リスト1713、1714の詳細を示したブロック図である。これは、どのスロットのデータが何番目に最近アクセスされたのかを示す情報である。先頭に格納されているものが最も最近にアクセスされたスロット、最後尾に格納されているものが最も昔にアクセスされたスロットである。リードキャッシュ領域131、ライトキャッシュ領域132のそれぞれに対応する情報がリスト構造で格納されている。例えば、ホストコンピュータ2からキャッシュメモリ部13に格納されていないデータに対してのアクセス要求を受領した場合など、キャッシュメモリ部13に開きスロットを作る場合、一般的なLRUアルゴリズムを用いるとすると、キャッシュに新たな空きスロットを作る場合、最も昔にアクセスされたもの、すなわち、リストの最後尾に示されているスロットを無効化する。その後、新しいデータを該当スロットに格納し、該当スロットは最も最近にアクセスされたことになるので、アクセス順序リスト1713、1714の先頭に該当スロットをおく。このリスト操作の手順としては、まず、最後尾にあった該当スロットの情報をdelete操作により外し、先頭に該当スロットの情報をinsert操作により追加する。なお、この際、キャッシュディレクトリ情報1711または1712も更新する。該当スロットに元に格納されていたものを示す情報をホスト−キャッシュアドレス対応リスト1004からdelete操作により外し、新たなLBAに対応するものをこの該当スロット番号とともにinsert操作により追加する。また、ホストコンピュータ2からの要求を受けたが、キャッシュメモリ部13に、すでに格納されていた場合は、上記の手順によりアクセス順序リスト1713、1714のみを更新し、キャッシュディレクトリ情報1711、1712は更新しない。
以上に示した、図10Bのアクセス順序リストをフラッシュメモリ166およびフラッシュメモリデバイス169に用いると次のような不都合が起こる。アクセス順序によりデステージするスロットを決定しているので、あるメディアにばかりデステージすなわち書き込みが起こってしまうことがある。例えば、スロット数が3のキャッシュメモリが備わっている場合に、FM1に対するアドレスA、Bに対するデータと、FM2に対するアドレスC、Dに対するデータを、A、B、C、A、B、Dのパターンの繰り返しでライト要求された場合は、FM2に集中してデステージが起こってしまう。こういった状況では、メディアの書き込み制限回数に早々に到達してしまい、ストレージシステムとして十分な信頼性、可用性を提供できない恐れがある。なお、本実施例では、LRUアルゴリズムを用いて説明しているが、アクセス頻度を用いるなどのLRU以外のアルゴリズムを用いた場合も同様のことが起こりうる。
以下では、こうした不都合を回避するキャッシュ制御方法を説明する。図10Cは、好適なキャッシュ制御を行うためのアクセス順序リスト1713、1714の詳細を示したブロック図である。図10Bと異なり、書き込み回数制限があるフラッシュメモリに関しては、各メディア毎(各フラッシュメモリデバイス169毎)にリスト1061が設けられている。HDD50に関しては、各々のHDD50毎に設けても、またはHDD50全体として1つのリスト1062としてもよい。さらに、各リストにデステージ回数欄1063、アクセス回数欄1064、容量欄1065を持つ表を備える。デステージ回数欄1063は、そのメディアにデステージを行った総回数を示す。アクセス回数欄1064は、そのメディアに領域に対して起こったリード、ライトも含めたアクセス回数を示す。これはキャッシュメモリ部13上にデータが存在した場合も回数に含めている。また容量欄1065は、そのメディアの容量を示している。同じ頻度でフラッシュメモリデバイス169にデステージしたとしても、容量が大きいほど、フラッシュメモリ内部の1つのセルに書き込まれる頻度は少なくなることを考慮する場合に用いる。さらに、各メディアにリストを持つ。リストの内容は図10Bの場合とほぼ同様で、LRUアルゴリズムを用いるとすると、どのスロットが何番目に最近アクセスされたのかを示す情報が格納されている。ただし、この情報は、このメディアに格納されるべきデータに関するもののみである。なお、HDD50に関するリストにはデステージ制限欄1066がある。この欄が「なし」の場合は、フラッシュメモリとHDD50で異なるキャッシュ制御を行い、次に説明する図12Aのs1201でメディア種類をHDDと認識する。この場合、ライトキャッシュ領域132は、予めHDD50領域とフラッシュメモリ領域に分けられている。こうした分割をなくキャッシュメモリをより柔軟に用いたい場合は、この欄を「あり」とし、フラッシュメモリと同等のキャッシュ制御を行う。この場合は、メディア種類がHDDであっても、図12Aのs1201でフラッシュメモリとして処理が選択される。また、デステージ回数欄1063は、一定時間間隔でゼロにリセットしてもよい。リセットを行う際は全メディアに関してのデステージ回数欄1063をゼロにする。
次に、図10Cのアクセス順序リスト1713、1714を用いた、デステージするスロットを決定する処理の説明を、図12Aを用いて行う。これは、チャネル制御部11のプロセッサ111により実行されるもので、デステージを行わねばならないことが判明した後の処理である図11Bのs1125以降の処理に相当する。まず、ホストコンピュータ2から受領したライト要求が、HDDに対するものかフラッシュメモリに対するものか、メディア種類を判別する(s1201)。これは、ディレクトリ情報のメディア欄1003を用いて知ることができる。メディア種類がHDDならば、HDDのアクセス順序リスト1062を用いて最も昔にアクセスされたスロットを探し、そのスロットをデステージさせるメッセージを送り、s1207に処理を移す(s1202)。メディア種類がフラッシュメモリ、もしくはHDDであってもデステージ制限欄1066が「あり」の場合は、各メディアのデステージ回数欄1063を比較して、デステージ回数が最小のメディアを探す(s1203)。そのメディアのリストの要素数を調べることで、使用しているスロットがあるかを調査する(s1204)。ないならば、次にデステージ回数の少ないメディアを探して再びs1204に処理を移す(s1205)。あるならば、そのアクセス順序リスト1061を用いて最も昔にアクセスされたスロットを探し、そのスロットをデステージするように指示する(s1206)。次に該当メディアのデステージ回数欄1063に1を足す(s1207)。さらに、該当スロットをディレクトリ情報およびアクセス順序リストから外し(s1208)、さらにステージするデータに関してディレクトリ情報およびアクセス順序リストの最新に追加する(s1209)。その後、該当スロットに今回受領したデータを書き込むことを行う(s1210)。なお、s1203でデステージ回数の最小のメディアを探すが、容量欄1065の説明で述べたとおりセル自体の書き込み回数を考慮するならば、その評価関数として、デステージ回数を容量で除算したものを用いてもよい。
また、デステージ回数のみでなく、アクセス回数も考慮した場合の同処理を、図12Bを用いて説明する。まず、各メディアのデステージ回数欄1063とアクセス回数欄1064について調査し、α、βを定数とし、αとデステージ回数の積とβをアクセス回数で除したものの和を評価関数とし、これが最少となるメディアを探す(s1241)。そのメディアのリストの要素数を調べることで、使用しているスロットがあるかを調査する(s1242)。ないならば、次に少ないメディアを探して再びs1242に処理を移す(s1243)。あるならば、そのアクセス順序リスト1061、1062を用いて最も昔にアクセスされたスロットを探し、そのスロットをデステージするように指示する(s1244)。以降の処理は、図12Aのs1207と同様である。この処理を用いた場合は、フラッシュメモリ領域とHDD領域に分けておく必要もなく、またメディアがHDDの場合のライト要求後に同じデータに対するリード要求が多発するなどの、キャッシュメモリを用いた性能向上が可能なパターンなどにも、柔軟に対応することができる。なお、メディアをインデックス順で選択することも可能である。
実施例2を説明する。図13に本発明の第2の実施の形態のストレージシステムのブロック図を示す。この形態では、FM制御部がキャッシュメモリ部13や制御メモリ部15と同等の位置に実装されている。一般にキャッシュメモリ部13や制御メモリ部15は、チャネル制御部11やディスク制御部14と異なり、チャネル4やディスク側チャネル60が接続できる位置に実装しなくてもよい。例えば、チャネル4接続する作業が容易なように装置の前面に配置するといったことや、ディスク側チャネル60の伝送路的制限からHDD50の付近に配置せねばならないといった実装上の制限はない。そのため、この位置に配置することにより、さらにコンパクトに実装できる。この場合は、図3あるいは図4のFM制御部16の形式が好適である。
さらに、図14にFM制御部16を高機能にした高機能FM制御部160のブロック図を示す。さらに大規模な構成をとる場合は、高機能FM制御部160の使用がより好ましい。ここでは、FM制御部16もチャネル制御部11同様に複数のプロセッサ111を備え、制御プログラム1121に処理方法を設定することにより高度な信頼性、可用性を得るための制御や管理性向上に向けた制御が行えるようになっている。
以上実施例で説明したが、本発明の他の実施形態1は、前記ストレージ装置は、前記第1のメディアを制御する第1のメディア制御部から前記チャネル制御部に直接に転送するパスを備えるストレージシステムである。
本発明の他の実施形態2は、前記ストレージ装置は、前記キャッシュメモリ部から、前記第1のメディアを制御する第1のメディア制御部に直接に転送するパスを備えるストレージシステムである。
本発明の他の実施形態3は、前記メディアは、書き込み回数に制限を有する第1のメディアと、書き込み回数に制限のない第2のメディアとからなるストレージシステムである。
本発明の他の実施形態4は、前記第2のメディアは、前記第1のメディアよりも読み込み速度が遅く、消費電力が大きいが、第1のメディアよりも書き込み可能回数がはるかに多いメディアであるストレージシステムである。
本発明の他の実施形態5は、前記ストレージ装置は、前記第2のメディアを制御する第2のメディア制御部から、該第2のメディアに格納されたデータを一時的に格納するキャッシュメモリ部に転送するパスを備えるストレージシステムである。
本発明の他の実施形態6は、前記チャネル制御部は、前記ホストコンピュータからのリード要求を受領し、該リード要求の対象データが前記キャッシュメモリ部に格納されていないが前記第1のメディアに格納されている場合、該第1のメディアを制御する第1のメディア制御部に対し、該当データを直接に転送するストレージシステムである。
本発明の他の実施形態7は、前記ストレージ装置は、前記第1のメディアに対する書き込み回数を平均化するように、デステージするデータを選択するストレージシステムである。
本発明の他の実施形態8は、前記ストレージ装置は、各々の第1のメディアに対するデステージした回数を記録するストレージシステムである。
本発明の他の実施形態9は、前記ストレージ装置は、デステージするデータを選択する際に、各々の前記第1のメディアに対するデステージした回数を比較し、デステージした回数が少ないものから優先的にデステージするデータを決定するストレージシステムである。
本発明の他の実施形態10は、前記ストレージ装置は、各々の第1のメディアに格納されるべきデータに対するアクセスの時間または頻度の情報を、各々の第1のメディアに関連して記録するストレージシステムである。
本発明の他の実施形態11は、前記ストレージ装置は、デステージするデータを選択する際に、各々の前記第1のメディアに対するデステージした回数およびアクセス回数を基に評価関数を算出し、評価関数が少ないものから優先的にデステージするデータを決定するストレージシステムである。
本発明の他の実施形態12は、前記ストレージ装置は、キャッシュメモリ部をバックアップするバッテリを備えるストレージシステムである。
本発明の他の実施形態13は、前記第1のメディア制御部は、前記チャネル制御部の機能の一部を行う高機能メディア制御部であるストレージシステムである。
本発明の他の実施形態14は、ホストコンピュータからのデータを保存するメディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備えるストレージ制御装置において、前記メディアのうちの書き込み回数に制限を有する第1のメディアを制御する第1のメディア制御部から前記チャネル制御部に直接に転送するパスを備えるストレージ装置である。
本発明の他の実施形態15は、前記キャッシュメモリ部から、前記第1のメディアを制御する第1のメディア制御部に直接に転送するパスを備えるストレージ装置である。
本発明の他の実施形態16は、前記第1のメディアよりも読み込み速度が遅く、消費電力が大きいが、第1のメディアよりも書き込み可能回数がはるかに多い第2のメディアを制御する第2のメディア制御部から、該第2のメディアに格納されたデータを一時的に格納するキャッシュメモリ部に転送するパスを備えるストレージ装置である。
本発明の他の実施形態17は、前記チャネル制御部は、前記ホストコンピュータからのリード要求を受領し、該リード要求の対象データが前記キャッシュメモリ部に格納されていないが前記第1のメディアに格納されている場合、該第1のメディアを制御する第1のメディア制御部に対し、該当データを直接に転送するよう指示するストレージ装置である。
本発明の他の実施形態18は、ホストコンピュータからのデータを保存するメディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備えるストレージ制御装置を制御する方法において、前記チャネル制御部が前記ホストコンピュータからのリード要求を受領し、該要求の対象データが前記キャッシュメモリ部に格納されていないが書き込み回数に制限を有する第1のメディアに格納されている場合、該第1のメディアを制御する第1のメディア制御部に対し、該当データを直接転送するよう指示するストレージ装置の制御方法である。
本発明の他の実施形態19は、前記第1のメディアに対する書き込み回数を平均化するように、デステージするデータを選択するストレージ装置の制御方法である。
実施例1のストレージシステムの構成のブロック図。 チャネル制御部11の詳細の構成のブロック図。 FM制御部16の詳細の構成のブロック図。 FM制御部16の別の詳細の構成のブロック図。 FM制御部16の別の詳細の構成のブロック図。 内部スイッチ部12の詳細の構成のブロック図。 ホストコンピュータ2から、HDD50領域へのリードの要求が来た場合の処理の流れを表す図。 ホストコンピュータ2から、フラッシュメモリ領域へのリードの要求が来た場合の処理の流れを表す図。 キャッシュメモリ部13ならびに制御メモリ部17に格納されるデータの詳細を示したブロック図。 リードキャッシュディレクトリ情報1711、ライトキャッシュディレクトリ情報1172の詳細を示したブロック図。 従来のアクセス順序リスト1713、1714の詳細を示したブロック図。 好適なキャッシュ制御を行うためのアクセス順序リスト1713、1714の詳細を示したブロック図。 ホストコンピュータ2から、ライトの要求が来た場合で、すでにキャッシュメモリ部13上に該当アドレスのデータが存在する場合の処理の流れを表す図。 ホストコンピュータ2から、ライトの要求が来た場合で、キャッシュメモリ部13上に該当アドレスのデータが存在しないが既に空いているスロットがない場合の処理の流れを表す図。 デステージするスロットを決定する処理を表す図。 ステージ回数のみでなく、アクセス回数も考慮した場合のスロット決定の処理を表す図。 実施例2のストレージシステムのブロック図。 高機能FM制御部160のブロック図。
符号の説明
1 ストレージ制御装置
2 ホストコンピュータ
3 SANスイッチ
4 チャネル
11 チャネル制御部
12 内部スイッチ
13 キャッシュメモリ部
14 ディスク制御部
15 内部パス
16 FM制御部
17 制御メモリ部
50 ハードディスクドライブ
60 ディスク側チャネル
111 プロセッサ
112、164 メモリモジュール
113 周辺処理部
114 チャネルプロトコル処理部
115 データ転送系バス
116 制御系バス
117、121、161 内部ネットワークインタフェース部
122 セレクタ
123 チャネル制御部FM制御部間接続
131 リードキャッシュ領域
132 ライトキャッシュ領域
160 高機能FM制御部
162 DMAコントローラ
163 メモリコントローラ
165 FMコントローラ
166 フラッシュメモリ
167 FMプロトコル処理部
168 コネクタ
169 フラッシュメモリデバイス
172 構成情報
173 通信領域
1001 LUN欄
1002 LBA欄
1003 メディア欄
1004 ホスト−キャッシュアドレス対応リスト
1061、1062、1713、1714 アクセス順序リスト
1063 デステージ回数欄
1064 アクセス回数欄
1065 容量欄
1066 デステージ制限欄
1121 制御プログラム
1122 メールボックス
1123、1641 転送リスト
1610 FM側チャネル
1690 緊急デステージ領域
1711 リードキャッシュディレクトリ情報
1712 ライトキャッシュディレクトリ情報

Claims (3)

  1. ホストコンピュータからのデータを保存する1以上のメディアと、前記メディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備えるストレージ装置を具備するストレージシステムにおいて、
    前記メディアは、HDDと、フラッシュメモリとからなり、
    前記ホストコンピュータからのリードの要求を受けた際に、格納先が前記HDDか前記フラッシュメモリかを判別し、格納先が前記HDDの場合には前記HDDから読み出したデータを前記キャッシュメモリ部に格納した後に前記ホストコンピュータに応答し、格納先が前記フラッシュメモリの場合には前記フラッシュメモリから読み出したデータを前記キャッシュメモリ部には格納せずに前記ホストコンピュータに応答し、
    前記ストレージ装置は、前記フラッシュメモリに対する書き込み回数を平均化するように、デステージするデータを選択し、各々のフラッシュメモリに対するデステージした回数を記録し、デステージするデータを選択する際に、各々の前記フラッシュメモリに対するデステージした回数を比較し、デステージした回数が少ないものから優先的にデステージするデータを決定することを特徴とするストレージシステム。
  2. ホストコンピュータからのデータを保存する1以上のメディアと、前記メディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備えるストレージ装置を具備するストレージシステムにおいて、
    前記メディアは、HDDと、フラッシュメモリとからなり、
    前記ホストコンピュータからのリードの要求を受けた際に、格納先が前記HDDか前記フラッシュメモリかを判別し、格納先が前記HDDの場合には前記HDDから読み出したデータを前記キャッシュメモリ部に格納した後に前記ホストコンピュータに応答し、格納先が前記フラッシュメモリの場合には前記フラッシュメモリから読み出したデータを前記キャッシュメモリ部には格納せずに前記ホストコンピュータに応答し、
    前記ストレージ装置は、前記フラッシュメモリに対する書き込み回数を平均化するように、デステージするデータを選択し、デステージするデータを選択する際に、各々の前記フラッシュメモリに対するデステージした回数およびアクセス回数を基に評価関数を算出し、評価関数が少ないものから優先的にデステージするデータを決定することを特徴とするストレージシステム。
  3. ホストコンピュータからのデータを保存するメディアを制御するメディア制御部、チャネルを介して前記ホストコンピュータに接続するチャネル制御部、及び前記ホストコンピュータからのデータを一時的に保存する揮発メモリであるキャッシュメモリ部を備えるストレージ装置を制御する方法において、
    前記メディアは、HDDと、フラッシュメモリとからなり、
    前記ホストコンピュータからのリードの要求を受けた際に、格納先が前記HDDか前記フラッシュメモリかを判別し、格納先が前記HDDの場合には前記HDDから読み出したデータを前記キャッシュメモリ部に格納した後に前記ホストコンピュータに応答し、格納先が前記フラッシュメモリの場合には前記フラッシュメモリから読み出したデータを前記キャッシュメモリ部には格納せずに前記ホストコンピュータに応答し、
    前記フラッシュメモリに対する書き込み回数を平均化するように、デステージするデータを選択することを特徴とするストレージ装置の制御方法。
JP2005252989A 2005-09-01 2005-09-01 ストレージシステムとストレージ装置及びその制御方法 Expired - Fee Related JP5008845B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2005252989A JP5008845B2 (ja) 2005-09-01 2005-09-01 ストレージシステムとストレージ装置及びその制御方法
US11/247,161 US7464221B2 (en) 2005-09-01 2005-10-12 Storage system, storage device, and control method thereof
EP06250654A EP1764677A1 (en) 2005-09-01 2006-02-07 Storage system, storage device, and control method thereof
US12/250,694 US8332582B2 (en) 2005-09-01 2008-10-14 Storage system, storage device, and control method thereof
US13/688,447 US8631199B2 (en) 2005-09-01 2012-11-29 Storage system, storage device, and control method thereof
US14/098,575 US9251063B2 (en) 2005-09-01 2013-12-06 Storage system including a plurality of flash memory devices
US14/989,965 US9495105B2 (en) 2005-09-01 2016-01-07 System managing a plurality of flash memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005252989A JP5008845B2 (ja) 2005-09-01 2005-09-01 ストレージシステムとストレージ装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2007066129A JP2007066129A (ja) 2007-03-15
JP5008845B2 true JP5008845B2 (ja) 2012-08-22

Family

ID=36968876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005252989A Expired - Fee Related JP5008845B2 (ja) 2005-09-01 2005-09-01 ストレージシステムとストレージ装置及びその制御方法

Country Status (3)

Country Link
US (5) US7464221B2 (ja)
EP (1) EP1764677A1 (ja)
JP (1) JP5008845B2 (ja)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
JP5008845B2 (ja) 2005-09-01 2012-08-22 株式会社日立製作所 ストレージシステムとストレージ装置及びその制御方法
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
JP5111965B2 (ja) * 2007-07-24 2013-01-09 株式会社日立製作所 記憶制御装置及びその制御方法
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8316277B2 (en) 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
JP2009205335A (ja) * 2008-02-27 2009-09-10 Hitachi Ltd 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法
JP2009238094A (ja) 2008-03-28 2009-10-15 Hitachi Ltd ストレージシステム及びデータ保存方法
WO2009131560A1 (en) * 2008-04-22 2009-10-29 Lsi Corporation Distributed cache system in a drive array
US8296782B2 (en) * 2008-04-22 2012-10-23 Lsi Corporation System eliminating hardware duplication during application testing of an internal storage array across different operating systems
JP5075761B2 (ja) * 2008-05-14 2012-11-21 株式会社日立製作所 フラッシュメモリを用いたストレージ装置
US20090292882A1 (en) * 2008-05-23 2009-11-26 Inventec Corporation Storage area network server with parallel processing cache and access method thereof
JP2010049502A (ja) * 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
JP2010128808A (ja) * 2008-11-27 2010-06-10 Hitachi Ltd ストレージ制御装置
TWI371686B (en) * 2009-04-02 2012-09-01 Lsi Corp System and method to reduce drive overhead using a mirrored cache volume in a storage array
WO2011021237A1 (en) * 2009-08-20 2011-02-24 Hitachi,Ltd. Storage subsystem and its data processing method
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
JP5374313B2 (ja) * 2009-10-16 2013-12-25 ファナック株式会社 不揮発性メモリ保護機能を備えた情報処理装置
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9280477B2 (en) * 2010-12-13 2016-03-08 Seagate Technology Llc Data storage management in a memory device
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9323670B2 (en) 2010-12-13 2016-04-26 Seagate Technology Llc Protecting volatile data of a storage device in response to a state reset
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9058275B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Data returned responsive to executing a start subchannel instruction
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9116788B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Using extended asynchronous data mover indirect data address words
US9058243B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Releasing blocks of storage class memory
US9037907B2 (en) 2011-06-10 2015-05-19 International Business Machines Corporation Operator message commands for testing a coupling facility
US9021180B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Clearing blocks of storage class memory
US9116789B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Chaining move specification blocks
US9021226B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Moving blocks of data between main memory and storage class memory
US9021179B2 (en) * 2011-06-10 2015-04-28 International Business Machines Corporation Store storage class memory information command
US9323668B2 (en) 2011-06-10 2016-04-26 International Business Machines Corporation Deconfigure storage class memory command
US8645618B2 (en) * 2011-07-14 2014-02-04 Lsi Corporation Flexible flash commands
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
WO2013171789A1 (en) * 2012-05-16 2013-11-21 Hitachi, Ltd. Storage system and method of controlling data transfer in storage system
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9557800B2 (en) * 2012-08-31 2017-01-31 Micron Technology, Inc. Sequence power control
JP2015532985A (ja) * 2012-09-06 2015-11-16 ピーアイ−コーラル、インク. 大規模なデータ記憶および受け渡しシステム
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9612956B2 (en) 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
JP6248435B2 (ja) * 2013-07-04 2017-12-20 富士通株式会社 ストレージ装置、およびストレージ装置の制御方法
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
JP5949816B2 (ja) 2014-03-19 2016-07-13 日本電気株式会社 キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム
JP2016014957A (ja) 2014-07-01 2016-01-28 株式会社東芝 ストレージ装置及びそのデータ処理方法
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
KR20170075359A (ko) * 2015-12-23 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 콘트롤러의 동작 방법
US10013370B2 (en) * 2015-12-29 2018-07-03 EMC IP Holding Company LLC Method and system for providing access of a storage system using a shared storage module as a transport mechanism
US9836243B1 (en) * 2016-03-31 2017-12-05 EMC IP Holding Company LLC Cache management techniques
US9990134B2 (en) * 2016-06-15 2018-06-05 Seagate Technology Llc Command tunneling in a hybrid data storage device
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10037164B1 (en) * 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
JPH0675836A (ja) * 1992-08-25 1994-03-18 Nippon Densan Corp 補助記憶装置
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH06324815A (ja) 1993-05-13 1994-11-25 Nec Corp ディスクアレイ装置
US5636359A (en) * 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
US5606529A (en) * 1994-12-20 1997-02-25 Hitachi, Ltd. Semiconductor disk storage
US5950230A (en) * 1997-05-28 1999-09-07 International Business Machines Corporation RAID array configuration synchronization at power on
JP3214444B2 (ja) * 1998-05-19 2001-10-02 日本電気株式会社 磁気ディスク装置の制御方法と制御装置
JP2000276402A (ja) * 1999-03-24 2000-10-06 Kokusai Electric Co Ltd フラッシュメモリ駆動方法及びフラッシュメモリ装置
US6684306B1 (en) * 1999-12-16 2004-01-27 Hitachi, Ltd. Data backup in presence of pending hazard
US6950837B2 (en) * 2001-06-19 2005-09-27 Intel Corporation Method for using non-temporal streaming to improve garbage collection algorithm
JP4280055B2 (ja) * 2001-11-28 2009-06-17 株式会社Access メモリ制御方法および装置
US6925534B2 (en) * 2001-12-31 2005-08-02 Intel Corporation Distributed memory module cache prefetch
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6971003B1 (en) * 2002-04-02 2005-11-29 Adaptec, Inc. Method and apparatus for minimizing option ROM BIOS code
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
US6981112B2 (en) * 2002-08-26 2005-12-27 International Business Machines Corporation Dynamic cache disable
JP4287631B2 (ja) * 2002-09-06 2009-07-01 株式会社日立コミュニケーションテクノロジー 記憶装置
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
JP3811149B2 (ja) * 2003-08-18 2006-08-16 株式会社日立製作所 キャッシュメモリバックアップ装置
JP2005115603A (ja) * 2003-10-07 2005-04-28 Hitachi Ltd 記憶デバイス制御装置及びその制御方法
JP2005115857A (ja) * 2003-10-10 2005-04-28 Sony Corp ファイル記憶装置
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
KR100526190B1 (ko) 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법
JP2005222404A (ja) * 2004-02-06 2005-08-18 Hitachi Ltd 仮想記憶ユニットを備えた記憶制御サブシステム
US7761678B1 (en) * 2004-09-29 2010-07-20 Verisign, Inc. Method and apparatus for an improved file repository
US7769849B2 (en) * 2004-10-25 2010-08-03 Lsi Corporation Method for detecting changes in a storage area network without external tools and hardware
US7502964B2 (en) * 2005-04-29 2009-03-10 Network Appliance, Inc. Selecting and using storage devices based on functional tests and probable time to failure
JP5008845B2 (ja) 2005-09-01 2012-08-22 株式会社日立製作所 ストレージシステムとストレージ装置及びその制御方法
US7653783B2 (en) * 2005-10-07 2010-01-26 Agere Systems Inc. Ping-pong state machine for storage-device array
US8402201B2 (en) * 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage

Also Published As

Publication number Publication date
US7464221B2 (en) 2008-12-09
EP1764677A1 (en) 2007-03-21
US9495105B2 (en) 2016-11-15
US9251063B2 (en) 2016-02-02
JP2007066129A (ja) 2007-03-15
US20140095776A1 (en) 2014-04-03
US20130086314A1 (en) 2013-04-04
US20070050571A1 (en) 2007-03-01
US8332582B2 (en) 2012-12-11
US8631199B2 (en) 2014-01-14
US20090043961A1 (en) 2009-02-12
US20160179380A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
JP5008845B2 (ja) ストレージシステムとストレージ装置及びその制御方法
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
US9684591B2 (en) Storage system and storage apparatus
JP4900807B2 (ja) ストレージシステム及びデータ管理方法
JP6097845B2 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
JP2005258918A (ja) ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法
JP2007156597A (ja) ストレージ装置
US7984260B2 (en) Storage system provided with a plurality of controller modules
JP2009043030A (ja) ストレージシステム
US20130311706A1 (en) Storage system and method of controlling data transfer in storage system
US8862819B2 (en) Log structure array
US9223655B2 (en) Storage system and method for controlling storage system
US8566554B2 (en) Storage apparatus to which thin provisioning is applied and including logical volumes divided into real or virtual areas
US10915401B2 (en) Data saving caused by a partial failure of the memory device
JP2008065559A (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
JP2001184172A (ja) ディスク制御システムおよびデータ再配置方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120530

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5008845

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees