Nothing Special   »   [go: up one dir, main page]

JP2005301419A - ディスクアレイ装置およびそのデータ処理方法 - Google Patents

ディスクアレイ装置およびそのデータ処理方法 Download PDF

Info

Publication number
JP2005301419A
JP2005301419A JP2004113179A JP2004113179A JP2005301419A JP 2005301419 A JP2005301419 A JP 2005301419A JP 2004113179 A JP2004113179 A JP 2004113179A JP 2004113179 A JP2004113179 A JP 2004113179A JP 2005301419 A JP2005301419 A JP 2005301419A
Authority
JP
Japan
Prior art keywords
data
cache memory
control unit
disk array
written
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.)
Withdrawn
Application number
JP2004113179A
Other languages
English (en)
Inventor
Tetsuya Abe
哲也 阿部
Mitsuru Inoue
充 井上
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 JP2004113179A priority Critical patent/JP2005301419A/ja
Priority to US10/864,644 priority patent/US7103717B2/en
Priority to DE602005002292T priority patent/DE602005002292T2/de
Priority to EP05250419A priority patent/EP1585022B1/en
Publication of JP2005301419A publication Critical patent/JP2005301419A/ja
Priority to US11/490,176 priority patent/US7269690B2/en
Priority to US11/812,277 priority patent/US7360019B2/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • 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
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 キャッシュメモリ(スイッチ経由)への書き込み処理を減らしながらも、データの2重化を実現して装置性能を向上させることができるディスクアレイ装置のデータ処理技術を提供する。
【解決手段】 ディスクアレイ装置において、ホストインターフェース部11は、ホストコンピュータ/サーバー1からの書き込みデータを保存する不揮発メモリ部22と、ホストコンピュータ/サーバー1からの書き込みデータを不揮発メモリ部22とグローバルキャッシュメモリ部14に転送するデータ転送制御部21とを有し、ホストコンピュータ/サーバー1から書き込み要求を受けた場合に、データ転送制御部21により、ホストコンピュータ/サーバー1からの書き込みデータを、不揮発メモリ部22と、スイッチ部15を介したグローバルキャッシュメモリ部14とに転送して書き込む。
【選択図】 図1

Description

本発明は、ディスクアレイ装置およびそのデータ処理技術に関し、特に、キャッシュメモリ(スイッチ経由)への書き込み処理を減らしながらも、データの2重化を実現できるデータ処理方法に適用して有効な技術に関する。
本発明者が検討したところによれば、従来のディスクアレイ装置およびそのデータ処理技術に関しては、以下のような技術が考えられる。
たとえば、従来のディスクアレイ装置のデータ処理技術においては、ユーザの性能向上に対応するため、上位装置とディスクアレイ装置内の記憶装置との間のデータを一時的に格納するキャッシュメモリを2重化構造にし、それぞれのキャッシュメモリに上位装置から転送されるデータを格納して、データを2重化して管理する技術がある。このような技術では、上位装置のインターフェースと2重化構造のキャッシュメモリとの間を接続する内部データ転送パスにスイッチ接続方式を採用するものがある。このスイッチ接続方式では、スイッチ部を介して、上位装置のインターフェースと2重化構造のキャッシュメモリとの間、記憶装置のインターフェースと2重化構造のキャッシュメモリとの間が1対1で接続されている(特許文献1参照)。
特開平11−312126号公報
ところで、前記のような本発明者が検討した従来のディスクアレイ装置およびそのデータ処理技術に関して、本発明者が検討した結果、以下のようなことが明らかとなった。
たとえば、従来のディスクアレイ装置のデータ処理技術においては、前述の通り、上位装置のインターフェースと2重化構造のキャッシュメモリとの間、記憶装置のインターフェースと2重化構造のキャッシュメモリとの間を、同一のスイッチ部を介して1対1で接続するために、同一データの2重書きのためにはスイッチ帯域を1重書きの場合と比較して2倍消費するという問題がある。
すなわち、上位装置から転送されるデータを2重化構造のキャッシュメモリに格納する際に、スイッチ部には、上位装置からのデータを上位装置のインターフェースからスイッチ部を介して一方のキャッシュメモリに格納する帯域と、同じデータを同一のスイッチ部を介して他方のキャッシュメモリに格納する帯域とが必要となる、この結果、スイッチ部の帯域は、同一データを2重書き方式で実行する場合には1重書き方式で実行する場合に比べて2倍必要となる。このため、2重書き方式の思想を引き継ぎながら、スイッチ部の帯域を1重書き方式と同等にすることが望まれている。
そこで、本発明の目的は、キャッシュメモリ(スイッチ経由)への書き込み処理を減らしながらも、データの2重化を実現して装置性能を向上させることができるディスクアレイ装置のデータ処理技術を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、データを格納する複数の記憶デバイスと、複数の記憶デバイスに対するデータの書き込みまたは読み出しを制御する記憶デバイス制御部と、自ディスクアレイ装置の外部の上位装置から書き込み要求または読み出し要求を受けるチャネル制御部と、上位装置と複数の記憶デバイスとの間で通信されるデータが一時的に保存されるキャッシュメモリと、チャネル制御部、記憶デバイス制御部およびキャッシュメモリに接続される接続部とを有するディスクアレイ装置およびそのデータ処理方法に適用され、以下のような特徴を有するものである。
すなわち、本発明においては、チャネル制御部が、上位装置からの書き込みデータを保存する不揮発メモリと、上位装置からの書き込みデータを不揮発メモリとキャッシュメモリに転送するデータ転送制御部とを有し、上位装置から書き込み要求を受けた場合に、データ転送制御部により、上位装置からの書き込みデータを、不揮発メモリと、接続部を介したキャッシュメモリとに転送して書き込むものである。そして、記憶デバイス制御部が、キャッシュメモリに書き込まれたデータをキャッシュメモリから記憶デバイスに転送して書き込み、チャネル制御部は、キャッシュメモリのデータが記憶デバイスに書き込まれた後、不揮発メモリに書き込まれているデータの領域を解放するものである。
また、本発明においては、チャネル制御部が、キャッシュメモリに障害が発生した後の回復時に、不揮発メモリに書き込まれているデータを読み出してキャッシュメモリに書き込み、記憶デバイス制御部が、キャッシュメモリに書き込まれたデータを読み出して記憶デバイスに転送して書き込むものである。そして、チャネル制御部は、キャッシュメモリのデータが記憶デバイスに書き込まれた後、不揮発メモリに書き込まれているデータの領域を解放するものである。
あるいは、本発明においては、チャネル制御部が、キャッシュメモリに障害が発生した後の回復時に、不揮発メモリに書き込まれているデータを読み出して記憶デバイスに転送して書き込むものである。そして、チャネル制御部は、不揮発メモリのデータが記憶デバイスに書き込まれた後、不揮発メモリに書き込まれているデータの領域を解放するものである。
また、本発明においては、記憶デバイス制御部が、キャッシュメモリに書き込まれたデータを保存する不揮発メモリと、キャッシュメモリに書き込まれたデータを不揮発メモリと記憶デバイスに転送するデータ転送制御部とを有し、デステージ要求を受けた場合に、データ転送制御部により、キャッシュメモリに書き込まれたデータを、不揮発メモリと、記憶デバイスとに転送して書き込むものである。さらに、記憶デバイス制御部は、キャッシュメモリに書き込まれたデータが記憶デバイスに転送されない場合、不揮発メモリに書き込まれたデータを読み出して記憶デバイスに転送して書き込むものである。そして、記憶デバイス制御部は、不揮発メモリのデータが記憶デバイスに書き込まれた後、不揮発メモリに書き込まれているデータの領域を解放するものである。
また、本発明においては、チャネル制御部が、上位装置との間で複数のパスで書き込み要求または読み出し要求を受けるために複数からなり、第1、第2のチャネル制御部がそれぞれ、各パスを介した上位装置からの書き込みデータを保存する不揮発メモリと、上位装置からの書き込みデータを不揮発メモリとキャッシュメモリに転送するデータ転送制御部とを有し、第1の書き込みデータの後に第2の書き込みデータが入力される場合に、第1のチャネル制御部は、第1の書き込みデータがキャッシュメモリから記憶デバイスに転送して書き込まれたことを確認した後に、不揮発メモリ内の第1の書き込みデータを保存し、第2のチャネル制御部は、第2の書き込みデータがキャッシュメモリから記憶デバイスに転送して書き込まれたことを確認した後に、不揮発メモリ内の第2の書き込みデータを保存するものである。具体的には、第1の書き込みデータと第2の書き込みデータとの一部が同じ場合に、第1の書き込みデータのうちの一部を保存して第2の書き込みデータを消去し、また第1の書き込みデータと第2の書き込みデータとが同じ場合には、第1の書き込みデータ、第2の書き込みデータを保存するものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、キャッシュメモリ(スイッチ経由)への書き込み処理を減らしながらも、データの2重化を実現して装置性能を向上させることができる。この結果、装置の高速化や大規模化に対しても、高速・大規模構成対応で信頼性維持が可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
<ディスクアレイ装置の概念構成>
図1により、本発明の一実施の形態に係るディスクアレイ装置の概念構成の一例を説明する。図1はディスクアレイ装置の概念構成を示す図である。
本実施の形態に係るディスクアレイ装置の概念構成は、自ディスクアレイ装置の外部のホストコンピュータ/サーバー(上位装置)1に接続され、データを格納する磁気ディスク装置2のHDD(ハードディスクドライブ:記憶デバイス)31を含み、ホストコンピュータ/サーバー1から書き込み要求または読み出し要求を受けるホストインターフェース部(チャネル制御部)11と、HDD31に対するデータの書き込みまたは読み出しを制御するディスクインターフェース部(記憶デバイス制御部)12と、ホストコンピュータ/サーバー1とHDD31との間で通信されるデータが一時的に保存されるグローバルキャッシュメモリ部(キャッシュメモリ)14と、ホストインターフェース部11、ディスクインターフェース部12およびグローバルキャッシュメモリ部14に接続されるスイッチ部(接続部)15とから構成される。
このような構成において、特に、ホストインターフェース部11は、ホストコンピュータ/サーバー1からの書き込みデータを保存する不揮発メモリ部(不揮発メモリ)22と、ホストコンピュータ/サーバー1からの書き込みデータを不揮発メモリ部22とグローバルキャッシュメモリ部14に転送するデータ転送制御部21とを有し、ホストコンピュータ/サーバー1から書き込み要求を受けた場合に、データ転送制御部21により、ホストコンピュータ/サーバー1からの書き込みデータを、不揮発メモリ部22と、スイッチ部15を介したグローバルキャッシュメモリ部14とに転送して書き込む。この書き込みデータの2重書きは、同時に行うか、あるいは結果的に2重書きを実現可能な時間差を持って行ってもよい。このとき、スイッチ部15は、グローバルキャッシュメモリ部14に対して1つのパスで接続する。そして、ディスクインターフェース部12が、グローバルキャッシュメモリ部14に書き込まれたデータをグローバルキャッシュメモリ部14からHDD31に転送して書き込み、ホストインターフェース部11は、グローバルキャッシュメモリ部14のデータがHDD31に書き込まれた後、不揮発メモリ部22に書き込まれているデータの領域を解放する。
<ディスクアレイ装置の全体構成>
図2により、本実施の形態に係るディスクアレイ装置の全体構成の一例を説明する。図2はディスクアレイ装置の全体構成を示す図である。
本実施の形態に係るディスクアレイ装置は、前述した図1のような最小限の構成要素からなる場合もあるが、ディスク容量やキャッシュメモリ容量の増大、スイッチの拡張などによる装置の大規模化、処理の高速化などが進むにつれ、この要求を満たすために、図2に示すような高速化・大規模化対応の構成となることが主である。図2に示すディスクアレイ装置は、ホストコンピュータ/サーバー1との間で複数の装置群、複数のパスで接続され、またディスクアレイ装置内においても磁気ディスク装置2内の複数のHDDとの間が複数のパスで接続される。
このディスクアレイ装置では、ディスクアレイ制御装置10内に、ホストインターフェース部11、ディスクインターフェース部12、グローバルキャッシュメモリ部14、スイッチ部15がそれぞれ複数備えられている。この例では、ホストインターフェース部11が8個、ディスクインターフェース部12が4個、グローバルキャッシュメモリ部14が4個、スイッチ部15が2個備えられ、また、電源遮断時などにグローバルキャッシュメモリ部14に電源を供給するためのメモリ用バッテリ18が備えられている。なお、ディスクアレイ制御装置10には、図示しないが、制御情報を格納する共有メモリ部、装置管理を行うサービスプロセッサなども備えられている。
このように、8個のホストインターフェース部11、4個のディスクインターフェース部12を、これらの数より少ない2個のスイッチ部15に接続した構成では、それぞれのスイッチ部15へ各インターフェース部11,12がグローバルキャッシュメモリ部14へのデータ転送要求をするため、グローバルキャッシュメモリ部14とスイッチ部15とのパスが競合する。特に、2重書きがあれば、2つのパスを占有するために競合の度合が増すことになる。よって、本実施の形態のように、ホストインターフェース部11内に不揮発メモリ部22を設け、ホストコンピュータ/サーバー1からのデータを、データ転送制御部21により、内部の不揮発メモリ部22と、スイッチ部15を介したグローバルキャッシュメモリ部14とに書き込むことで、2重書きでもスイッチ部15におけるパスの占有率を減らすことができる。
本実施の形態のディスクアレイ装置では、たとえばホストコンピュータ/サーバー1から受信したコマンドに従って磁気ディスク装置2に対する制御を行う。たとえば、ホストコンピュータ/サーバー1からデータ入出力要求を受信して、磁気ディスク装置2が備えるHDD31に記憶されるデータの読み書きを行う。
ホストコンピュータ/サーバー1は、CPUやメモリを備えたコンピュータ、サーバーなどの情報処理装置である。このホストコンピュータ/サーバー1が備えるCPUによって各種プログラムが実行されることにより、様々な機能が実現される。ホストコンピュータは、たとえばパーソナルコンピュータやワークステーションであることもあるし、メインフレームコンピュータであることもある。
このホストコンピュータ/サーバー1は、異なるユーザの情報処理装置とすることができる。なお、ユーザとは、たとえば企業とすることができ、または企業内における部署などの部門とすることもでき、あるいは個人とすることもできる。
ホストコンピュータ/サーバー1は、たとえばSAN(Storage Area Network)を介してディスクアレイ制御装置10と通信可能に接続される。SANは、磁気ディスク装置2が提供する記憶資源におけるデータの管理単位であるブロックを単位としてホストコンピュータ/サーバー1との間でデータの授受を行うためのネットワークである。SANを介して行われるホストコンピュータ/サーバー1とディスクアレイ制御装置10との間の通信は、たとえばファイバチャネルプロトコルに従って行われる。ホストコンピュータ/サーバー1からは、ディスクアレイ制御装置10に対して、ファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求が送信される。
また、ホストコンピュータ/サーバー1は、SANなどのネットワークを介さずに直接にディスクアレイ制御装置10と通信可能に接続される。ネットワークを介さずに直接に、ホストコンピュータ/サーバー1とディスクアレイ制御装置10との間の通信は、たとえばFICON(Fibre Connection)(登録商標)やESCON(Enterprise System Connection)(登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre Connection Architecture)(登録商標)などの通信プロトコルに従って行われる。ホストコンピュータ/サーバー1からは、ディスクアレイ制御装置10に対して、これらの通信プロトコルに従ってブロック単位のデータアクセス要求が送信される。
もちろん、ホストコンピュータ/サーバー1とディスクアレイ制御装置10との間は、SANを介して接続される場合、SANを介さずに直接に接続される場合に限らず、たとえば、LAN(Local Area Network)を介して接続されているようにすることもできる。LANを介して接続される場合には、たとえばTCP/IP(Transmisson Control Protocol/Internet Protocol)プロトコルに従って通信を行うようにすることができる。
磁気ディスク装置2は、多数の記憶デバイスを備えている。これにより、ホストコンピュータ/サーバー1に対して大容量の記憶領域を提供することができる。記憶デバイスは、HDD31などのデータ記憶媒体、あるいはRAID(Redundant Arrays of Inexpensive Disks)を構成する複数のHDD31により構成されてなるようにすることができる。また、HDD31により提供される物理的な記憶領域である物理ボリュームには、論理的な記録領域である論理ボリュームを設定することができる。
ディスクアレイ制御装置10と磁気ディスク装置2との間は、直接に接続される形態とすることもできるし、ネットワークを介して接続されるようにすることもできる。さらに、磁気ディスク装置2は、ディスクアレイ制御装置10と一体として構成されることもできる。
ディスクアレイ制御装置10内のホストインターフェース部11は、ホストコンピュータ/サーバー1との間で通信を行うための通信インターフェースを備え、ホストコンピュータ/サーバー1との間でデータ入出力コマンドなどを授受する機能を備える。詳細には、後述する図3,図4のような構成となっている。なお、ホストインターフェース部11は、サービスプロセッサと共に内部LANで接続され、これによりホストインターフェース部11に実行させるマイクロプログラムなどをサービスプロセッサから受信し、インストールすることが可能となっている。
スイッチ部15は、ホストインターフェース部11、ディスクインターフェース部12、グローバルキャッシュメモリ部14、共有メモリ部、サービスプロセッサを相互に接続する。ホストインターフェース部11、ディスクインターフェース部12、グローバルキャッシュメモリ部14、共有メモリ部、サービスプロセッサの間でのデータやコマンドの授受は、スイッチ部15を介することにより行われる。スイッチ部15は、たとえばクロスバスイッチで構成される。
グローバルキャッシュメモリ部14および共有メモリ部は、ホストインターフェース部11、ディスクインターフェース部12により共有される記憶メモリである。グローバルキャッシュメモリ部14は、主にデータを記憶するために利用されるのに対して、共有メモリ部は、主に制御情報やコマンドなどを記憶するために利用される。
たとえば、あるホストインターフェース部11がホストコンピュータ/サーバー1から受信したデータ入出力要求が書き込みコマンドであった場合には、当該ホストインターフェース部11は書き込みコマンドを共有メモリ部に書き込むと共に、ホストコンピュータ/サーバー1から受信した書き込みデータをグローバルキャッシュメモリ部14に書き込む。一方、ディスクインターフェース部12は、共有メモリ部を監視しており、共有メモリ部に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってグローバルキャッシュメモリ部14から書き込みデータを読み出して磁気ディスク装置2内のHDD31に書き込む。
また、あるホストインターフェース部11がホストコンピュータ/サーバー1から受信したデータ入出力要求が読み出しコマンドであった場合には、読み出し対象となるデータがグローバルキャッシュメモリ部14に存在するかどうかを調べる。ここで、グローバルキャッシュメモリ部14に存在すれば、ホストインターフェース部11はそのデータをホストコンピュータ/サーバー1に送信する。一方、読み出し対象となるデータがグローバルキャッシュメモリ部14に存在しない場合には、当該ホストインターフェース部11は読み出しコマンドを共有メモリ部に書き込むと共に、共有メモリ部を監視する。読み出しコマンドが共有メモリ部に書き込まれたことを検出したディスクインターフェース部12は、磁気ディスク装置2内のHDD31から読み出し対象となるデータを読み出して、これをグローバルキャッシュメモリ部14に書き込むと共に、その旨を共有メモリ部に書き込む。そして、ホストインターフェース部11は、読み出し対象となるデータがグローバルキャッシュメモリ部14に書き込まれたことを検出すると、そのデータをホストコンピュータ/サーバー1に送信する。
このように、ホストインターフェース部11およびディスクインターフェース部12の間では、グローバルキャッシュメモリ部14を介してデータの授受が行われ、グローバルキャッシュメモリ部14には、HDD31に記憶されるデータのうち、ホストインターフェース部11やディスクインターフェース部12により読み書きされるデータが記憶される。さらに、2重書き動作時には、詳細は後述するが、グローバルキャッシュメモリ部14とともに、ホストインターフェース部11の内部の不揮発メモリ部22にもデータが書き込まれる。
なお、ホストインターフェース部11からディスクインターフェース部12に対するデータの書き込みや読み出しの指示を、共有メモリ部を介在させて間接的に行う構成の他、たとえばホストインターフェース部11からディスクインターフェース部12に対してデータの書き込みや読み出しの指示を共有メモリ部を介さずに直接に行う構成とすることもできる。また、ホストインターフェース部11にディスクインターフェース部12の機能を持たせて、データ入出力制御部とすることもできる。
ディスクインターフェース部12は、データを記憶する複数のHDD31と通信可能に接続され、磁気ディスク装置2の制御を行う。たとえば、上述のように、ホストインターフェース部11がホストコンピュータ/サーバー1から受信したデータ入出力要求に応じて、HDD31に対してデータの読み書きを行う。詳細には、後述する図10のような構成となっている。なお、各ディスクインターフェース部12は、サービスプロセッサと共に内部LANで接続されており、相互に通信を行うことが可能である。これにより、ディスクインターフェース部12に実行させるマイクロプログラムなどをサービスプロセッサから受信し、インストールすることが可能となっている。
本実施の形態においては、グローバルキャッシュメモリ部14および共有メモリ部がホストインターフェース部11およびディスクインターフェース部12に対して独立に設けられていることについて記載したが、これに限られるものではなく、グローバルキャッシュメモリ部14および共有メモリ部がホストインターフェース部11およびディスクインターフェース部12の各々に分散されて設けられることも好ましい。この場合、スイッチ部15は、分散されたグローバルキャッシュメモリ部14または共有メモリ部を有するホストインターフェース部11およびディスクインターフェース部12を相互に接続させることになる。
また、ホストインターフェース部11、ディスクインターフェース部12、グローバルキャッシュメモリ部14、スイッチ部15、共有メモリ部の少なくともいずれかが一体として構成されているようにすることもできる。
サービスプロセッサは、ディスクアレイ制御装置10を保守・管理するためのコンピュータである。オペレータは、サービスプロセッサを操作することにより、たとえば磁気ディスク装置2内のHDD31の構成の設定や、ホストコンピュータ/サーバー1とホストインターフェース部11との間の通信路であるパスの設定、論理ボリュームの設定、ホストインターフェース部11やディスクインターフェース部12において実行されるマイクロプログラムのインストールなどを行うことができる。ここで、磁気ディスク装置2内のHDD31の構成の設定としては、たとえばHDD31の増設や減設、RAID構成の変更(RAID1からRAID5への変更など)などとすることができる。
さらに、サービスプロセッサからは、ディスクアレイ制御装置10の動作状態の確認や故障部位の特定、ホストインターフェース部11で実行されるオペレーティングシステムのインストールなどの作業を行うことができる。これらの設定や制御は、サービスプロセッサが備えるユーザインターフェース、あるいはサービスプロセッサで動作するWebサーバにより提供されるWebページを表示する管理クライアントの情報処理装置のユーザインターフェースからオペレータなどにより行うようにすることができる。オペレータなどは、サービスプロセッサを操作して障害監視する対象や内容の設定、障害通知先の設定などを行うこともできる。
サービスプロセッサは、ディスクアレイ制御装置10に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また、サービスプロセッサは、ディスクアレイ制御装置10および磁気ディスク装置2の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
<ホストインターフェース部の構成>
図3により、本実施の形態に係るディスクアレイ装置において、ホストインターフェース部の構成の一例を説明する。図3はホストインターフェース部の構成を示す図である。
ホストインターフェース部11は、たとえば2つのパスでホストコンピュータ/サーバー1、スイッチ部15と接続される例で、ホストコンピュータ/サーバー1とのI/F(インターフェース)を持つ2つのI/F制御部201と、ホストコンピュータ/サーバー1との間の入出力を制御する2つのMP(マイクロプロセッサ)部210と、ホストコンピュータ/サーバー1からのデータを転送制御するデータ転送制御部21と、ホストコンピュータ/サーバー1からのデータを格納する不揮発メモリ部22から構成される。各MP部210には、制御プログラムを格納するLM(ローカルメモリ)部211が設けられ、この制御プログラムに基づいて、I/F制御部201、データ転送制御部21、MP部210が制御される。
このホストインターフェース部11において、I/F制御部201は、ホストコンピュータ/サーバー1からのデータを受け取り、プロトコルを制御してデータ転送制御部21へ渡す。このプロトコルは、FibreI/Fやメインフレーム用I/Fなどに対応してそれぞれ異なる。そして、データ転送制御部21は、MP部210の命令により、不揮発メモリ部22にホストコンピュータ/サーバー1からのデータを書き込み、あるいはグローバルキャッシュメモリ部14からのデータを読み込むことができる。
<データ転送制御部と不揮発メモリ部の構成>
図4により、本実施の形態に係るディスクアレイ装置において、ホストインターフェース部内のデータ転送制御部と不揮発メモリ部の構成の一例を説明する。図4はデータ転送制御部と不揮発メモリ部の構成を示す図である。
データ転送制御部21は、I/F制御部201、スイッチ部15をそれぞれ介して入力されるデータのエラーチェックを行う4つのエラーチェック回路部301と、I/F制御部201とスイッチ部15とを接続するためのセレクタ302と、I/F制御部201を介して入力されるアドレス、コマンド、データを一時的に格納する2つのパケットバッファ303と、入力されたアドレス、コマンドを解析するアドレス/コマンド解析部306と、セレクタ302の切り替えを制御するDMA制御部310などから構成される。DMA制御部310内には、アクセス要求のアービトレーションを行うアービタ308と、ハードウェア情報を格納する制御レジスタ309とを有し、制御レジスタ309はMP部210より設定が可能となっている。
このデータ転送制御部21において、複数のI/F制御部201と、複数のスイッチ部15へ接続させるためのセレクタ302の切り替えがDMA制御部310で制御され、このDMA制御部310はホストコンピュータ/サーバー1からのデータのアドレス/コマンドを解析するアドレス/コマンド解析部306の情報により制御され、これによってデータ転送を制御することが可能となっている。
また、データ転送制御部21の外部には、データ転送制御部21内のセレクタ302に接続される不揮発メモリ部22が設けられている。この不揮発メモリ部22には、データ転送制御部21との入出力を制御する不揮発メモリ制御部221と、データ転送制御部21を介して転送されてきたデータを格納する不揮発メモリ222が備えられている。この不揮発メモリ部22においては、不揮発メモリ制御部221の制御により、データ転送制御部21のセレクタ302を介して転送されてきたデータが不揮発メモリ222に格納される。
<2重書き動作のデータフロー>
図5により、本実施の形態に係るディスクアレイ装置において、2重書き動作のデータフローの一例を説明する。図5は2重書き動作のデータフローを示す図である。図5および後述する図において、リクエスト信号はREQ、アクノリッジ信号はACK、コマンドはCMD、アドレスはADRと記述する。
まず、ホストコンピュータ/サーバー1からコマンド/データが転送されてくると、この転送されてきたコマンド/データをホストインターフェース部11で受け取り、データ転送制御部21内のパケットバッファ303に格納して(ステップ1000)、アドレス/コマンド解析部306でアドレス解析を行う(ステップ1001)。そして、データ転送制御部21は、セレクタ302を介してスイッチ部15へアクセス開始を示すリクエスト信号を送出する(ステップ1002)。さらに、スイッチ部15は、グローバルキャッシュメモリ部14へリクエスト信号を送出する(ステップ1003)。
続いて、データ転送制御部21は、スイッチ部15へパケットバッファ303に格納したアドレスおよびコマンドを連続して送出する(ステップ1004a)。並行して(ステップ1004b)、データ転送制御部21は、不揮発メモリ部22にパケットバッファ303に格納したデータを転送する。そして、不揮発メモリ部22では、不揮発メモリ制御部221の制御により、不揮発メモリ222にホストコンピュータ/サーバー1からのデータが書き込まれる(ステップ1005)。
一方、スイッチ部15は、データ転送制御部21からリクエスト信号を受け取ると、続いて送られてきたアドレスおよびコマンドを受信し、アクセス要求に基づいてアービトレーションを行い、この結果に基づいてグローバルキャッシュメモリ部14へ接続を切り替える(ステップ1006)。さらに、スイッチ部15は、グローバルキャッシュメモリ部14へアドレスおよびコマンドを連続して送出する(ステップ1007)。
そして、スイッチ部15は、データ転送制御部21にグローバルキャッシュメモリ部14への接続権が得られたたことを示すアクノリッジ信号を返す(ステップ1008)。そして、データ転送制御部21は、このアクノリッジ信号を受け取って、スイッチ部15にパケットバッファ303に格納したデータを転送する(ステップ1009)。さらに、スイッチ部15は、転送されてきたデータをグローバルキャッシュメモリ部14に転送する(ステップ1010)。そして、グローバルキャッシュメモリ部14(内部のキャッシュメモリ)には、ホストコンピュータ/サーバー1からのデータが書き込まれる(ステップ1011)。
続いて、グローバルキャッシュメモリ部14は、メモリライトが終了すると、スイッチ部15にステータスを送出する(ステップ1012)。さらに、スイッチ部15は、送られてきたステータスをデータ転送制御部21に送出する(ステップ1013)。そして、データ転送制御部21は、このステータスを受け取って、スイッチ部15へのリクエスト信号をオフする(ステップ1014)。
さらに、スイッチ部15は、データ転送制御部21からのリクエスト信号のオフを確認すると、データ転送制御部21へのアクノリッジ信号をオフする(ステップ1015)。そして、データ転送制御部21は、スイッチ部15からのアクノリッジ信号のオフを確認すると、ホストコンピュータ/サーバー1へアクノリッジ信号を転送する(ステップ1016)。
このようにして、ホストコンピュータ/サーバー1からのデータを、不揮発メモリ部22とグローバルキャッシュメモリ部14とに書き込むことで、データの2重化が可能となる。この際に、従来の2重書きと異なり、スイッチ部15はグローバルキャッシュメモリ部14へライトデータを送るのみであり、グローバルキャッシュメモリ部14のパスがビジーを待たなくて良くなる。すなわち、従来の2重書きでは、2つのグローバルキャッシュメモリ部に対して書き込みを行うので、1つ目のキャッシュメモリ部に対して書き込みを行っている際には2つ目のキャッシュメモリ部のパスがビジーとなり、待たなければならなかった。よって、本実施の形態では、空いたパスで他の処理を並行して行うことができるので、高速化対応が可能となる。
<2重書き動作>
図6,図7により、本実施の形態に係るディスクアレイ装置において、2重書き動作の処理フローの一例を説明する。それぞれ、図6は2重書き動作の処理フローを示す図、図7はディスクインターフェース部とホストインターフェース部の通信の管理テーブルを示す図、である。
2重書き動作においては、不揮発メモリ部22内の不揮発メモリ222、グローバルキャッシュメモリ部14内のキャッシュメモリに対するデータの書き込みと、このデータを磁気ディスク装置2のHDD31にデステージした後のエリアの解放までを実行する。この2重書き動作では、ディスクインターフェース部12とホストインターフェース部11との通信に、図7に示すような管理テーブルを用いて実行される。
管理テーブルには、開始アドレス、領域サイズ、管理元のMPIDとポートID、ライトペンディングフラグ、プロテクトフラグ、関連キャッシュメモリ(または不揮発メモリ)アドレス情報などのパラメータが格納される。この管理テーブルは、グローバルキャッシュメモリ部14用と、不揮発メモリ部22用に、たとえばホストインターフェース部11のMP部210内のLM部211や、ディスクインターフェース部12のMP部内のLM部、共有メモリ部などに設けられている。
管理元のMPIDとポートIDは、ライトしたマイクロプロセッサの番号情報とポート番号情報であり、“FF”はフリーエリアの意味である。ライトペンディングフラグにおいて、“01”の場合はライトペンディングデータが残っており、“00”の場合は全てのデータのライト処理が済んだことを意味している。プロテクトフラグにおいて、“01”の場合はライト処理にプロテクトがかかっており、リード処理のみが可能な状態であり、“00”の場合はライト処理が可能な状態である。関連キャッシュメモリ(または不揮発メモリ)アドレス情報は、グローバルキャッシュメモリ部14または不揮発メモリ部22に対する2重書き場所のアドレスを示す情報である。
この管理テーブルをサーチして、管理元のMPIDとポートIDが“FF”のマイクロプロセッサを使用して、ライトペンディングフラグが“00”の場合で、プロテクトフラグが“00”の場合に、関連するグローバルキャッシュメモリ部14と不揮発メモリ部22に対してライトデータの2重書きが可能となる。
この2重書動作は、図6に示すように、まず、ディスクアレイ装置のホストインターフェース部11は、ホストコンピュータ/サーバー1よりコマンドを受信し、このコマンドの内容を解析する(ステップ1101)。そして、不揮発メモリ部22のアドレスの空き領域を確認し、空き領域の中から決められた単位あるいは必要な領域のみを確保してメモリアドレスを決定する(ステップ1102)。この時に、グローバルキャッシュメモリ部14も同様に空き領域を確保する。さらに、不揮発メモリ部22、グローバルキャッシュメモリ部14に確保した領域の情報を管理テーブルに登録する(ステップ1103)。
続いて、ホストインターフェース部11は、ホストコンピュータ/サーバー1から受信したデータを、不揮発メモリ部22にライト可能か否かを判定し(ステップ1104)、ライト可能な場合(OK)は、データ転送制御部21より、内部の不揮発メモリ部22のステップ1102で決定されたアドレスへデータをライトし、またこのデータが消されないようにライトプロテクトする。並行して、ホストコンピュータ/サーバー1からのデータを、グローバルキャッシュメモリ部14にライト可能か否かを判定し(ステップ1105)、ライト可能な場合(OK)は、データ転送制御部21より、グローバルキャッシュメモリ部14のステップ1102で決定されたアドレスへデータをライトする。そして、不揮発メモリ部22とグローバルキャッシュメモリ部14へのデータの2重書き処理の終了を確認後、ホストコンピュータ/サーバー1へ2重書き処理の完了を通知する(ステップ1106)。
この時点で、ホストコンピュータ/サーバー1からのデータは、グローバルキャッシュメモリ部14にライトペンディングデータとして確保され、そのバックアップは不揮発メモリ部22に同様にライトペンディングデータとして保存されている。この2重書きのライト処理の終了後、ディスクインターフェース部12へペンディングを通知する(ステップ1107)。この通知方法は、ホットラインによる通知でもよく、制御情報をグローバルキャッシュメモリ部14上に格納するようにして、ディスクインターフェース部12がポーリングする方法でもよい。
さらに、ステップ1107で認知したディスクインターフェース部12は、グローバルキャッシュメモリ部14上よりデータを磁気ディスク装置2のHDD31へ格納するために、格納先アドレスを決定する(ステップ1108)。この決定方法は、RAID構成や、管理情報を参考にシステムの制約により決定する。そして、ディスクインターフェース部12は、グローバルキャッシュメモリ部14からHDD31へデータを転送して、HDD31にデータを書き込む(ステップ1109)。データをグローバルキャッシュメモリ部14上よりHDD31へ書き込む処理をデステージングと言う。
続いて、ディスクインターフェース部12は、デステージ終了か否かを判定し(ステップ1110)、デステージが終了した場合はホストインターフェース部11にデステージ終了を通知する。さらに、ディスクインターフェース部11は、グローバルキャッシュメモリ部14のライトペンディング情報をクリアし、それを受けて管理テーブルのテーブル情報が更新される(ステップ1111)。そして、不揮発メモリ部22の管理テーブルもステップ1111と同様にペンディング情報がクリアされ、ライトプロテクトもクリアし、領域は解放される(ステップ1112)。
一方、ステップ1104の不揮発メモリ部22へのライト、ステップ1105のグローバルキャッシュメモリ部14へのライトでメモリアクセスがNGだったときには、その領域をNGであるとして他が間違えてエントリしないように、テーブル情報を更新して領域を閉塞する(ステップ1151)。さらに、再度、不揮発メモリ部22、グローバルキャッシュメモリ部14の代替のメモリ領域を探し、ステップ1102のようにメモリアドレスを決定する(ステップ1152)。そして、不揮発メモリ部22、グローバルキャッシュメモリ部14に確保したエリアの情報を管理テーブルに再登録する(ステップ1153)。
この2重書き動作によれば、デステージすると同時にエリアを解放することで、メモリ領域を無尽蔵に確保しないようにすることができる。この場合は、ライトペンディングデータを確保することが目的なので、読み出しデータをグローバルキャッシュメモリ部14に格納するためにステージングしておく必要がない。
<グローバルキャッシュメモリ部に障害が起きた場合の回復方法>
図8,図9により、本実施の形態に係るディスクアレイ装置において、グローバルキャッシュメモリ部に障害が起きた場合の回復方法の一例を説明する。それぞれ、図8は不揮発メモリ部のデータをグローバルキャッシュメモリ部を介して磁気ディスク装置へ転送する場合の回復処理フローを示す図、図9は不揮発メモリ部のデータをグローバルキャッシュメモリ部を介さずに磁気ディスク装置へ転送する場合の回復処理フローを示す図、である。
グローバルキャッシュメモリ部14に障害が起こったとき、具体的には、グローバルキャッシュメモリ部14内のキャッシュメモリが閉塞し、そこにライトペンディングデータがあった場合の処理方法には方法1と方法2の2つがある。方法1は、ホストインターフェース部11が、不揮発メモリ部22のデータをリードして、復元したいグローバルキャッシュメモリ部14へ転送し、さらにディスクインターフェース部12が、グローバルキャッシュメモリ部14から磁気ディスク装置2のHDD31へデータを転送する方法である。方法2は、ホストインターフェース部11のデータ転送制御部21が、不揮発メモリ部22からディスクインターフェース部12へ、グローバルキャッシュメモリ部14を介さずに直接に転送する方法である。
まず、方法1において、障害時のデータを回復する処理フローを図8に基づいて説明する。この方法1における障害としては、コマンドが不良の場合(ステップ1201)、グローバルキャッシュメモリ部14の故障を検知した場合(ステップ1202)、グローバルキャッシュメモリ部14をバックアップしていたバッテリが障害となり、メモリ揮発要因となった場合(ステップ1203)などがある。
ステップ1201のコマンドの不良、ステップ1202のグローバルキャッシュメモリ部14の障害、ステップ1203のバッテリの障害の少なくとも1つが発生して、グローバルキャッシュメモリ部14のデータが破壊/揮発により異常になった時(ステップ1205)、データの復元が必要となる場合である(ステップ1206)。また、閉塞しているグローバルキャッシュメモリ部14を保守交換し、データを復元したい場合(ステップ1204)も、同様にデータの復元が必要となる。
まず、データの復元が必要な場合に、ホストインターフェース部11は、グローバルキャッシュメモリ部14の交換終了/エリア確保完了か否かを判定し(ステップ1207)、グローバルキャッシュメモリ部14の交換(増設も含む)が終了しておらず、保守しなくてはならない場合(No)は交換/増設を行う(ステップ1208)。
一方、ステップ1207でグローバルキャッシュメモリ部14の交換終了/エリア確保完了の場合(Yes)は、復元元のグローバルキャッシュメモリ部14とエリアを確保し、この確保した情報が管理テーブルにエントリされる。そして、グローバルキャッシュメモリ部14のアドレスを割り当ててアドレスを決定する(ステップ1209)。さらに、ライトペンディングデータか否かを判定し(ステップ1210)、ライトペンディングデータならば(Yes)、不揮発メモリ部22にデータが保管されているので取り出しが可能である。
続いて、ホストインターフェース部11は、不揮発メモリ部22のアドレスを決定し、データ転送制御部21が、そのアドレスよりデータを読み出す(ステップ1211)。そして、ホストインターフェース部12が、不揮発メモリ部22から読み出したデータをグローバルキャッシュメモリ部14に書き込み、データの復元を完了する(ステップ1213)。
一方、ステップ1210でライトペンディングデータではない場合(No)、すなわちデステージ終了のデータである場合は、ディスクインターフェース部12が、磁気ディスク装置2のHDD31からデータをグローバルキャッシュメモリ部14へ読み出す(ステップ1212)。そして、ディスクインターフェース部12が、HDD31から読み出したデータをグローバルキャッシュメモリ部14に書き込み、データの復元を完了する(ステップ1213)。
次に、方法2において、障害時のデータを回復する処理フローを図9に基づいて説明する。この方法2において、直接、ライトペンディングデータを磁気ディスク装置2のHDD31へ書き込む場合に、ステップ1301〜ステップ1353は、前述した図6のステップ1101〜ステップ1153と同じであるので、説明を省略する。ただし、ステップ1351では、ステップ1304の不揮発メモリ部22へのライトでメモリアクセスがNGだったときに、管理テーブルのテーブル情報を更新して領域を閉塞する。
ステップ1305のグローバルキャッシュメモリ部14のライトにおいてNGの場合は、ディスクインターフェース部12が待機状態になるように通知する(ステップ1354)。さらに、ホストインターフェース部11は、ホストインターフェース部11からのデータのHDD31への格納アドレスを予め決定しておき、ディスクインターフェース部12に通知する(ステップ1355)。そして、ホストインターフェース部11よりディスクインターフェース部12へスイッチ部15を経由してデータを転送し、不揮発メモリ部22のデータをHDD31へ書き込む(ステップ1356)。そして、データがHDD31へ格納され、この格納終了を確認後、ホストコンピュータ/サーバー1へ完了を通知する(ステップ1357)。
このような方法1、方法2の回復方法によれば、グローバルキャッシュメモリ部14と不揮発メモリ部22からなる複数のメモリ構成なので、違うホストインターフェース部11によって、グローバルキャッシュメモリ部14、不揮発メモリ部22の拡張が必要となったときや、故障によりグローバルキャッシュメモリ部14、不揮発メモリ部22を交換する際にも対応可能である。また、グローバルキャッシュメモリ部14、不揮発メモリ部22を着脱できるようにする実装も可能である。
<不揮発メモリ部を有するディスクインターフェース部の構成>
図10により、本実施の形態に係るディスクアレイ装置において、不揮発メモリ部を有するディスクインターフェース部の構成の一例を説明する。図10は不揮発メモリ部を有するディスクインターフェース部の構成を示す図である。
電源断時に緊急デステージ機能を実現する際に、データを磁気ディスク装置2のHDD31だけではなく、ディスクインターフェース部12内にもデータを格納する機能を有して、データをできるだけ保証したいという要求がある。この要求に対して、ディスクインターフェース部12内に不揮発メモリ部を設け、この不揮発メモリ部にもデータを格納して保証する方法がある。この場合に、HDD31への転送速度は遅く、不揮発メモリ部への転送が早く、容量がHDD>>不揮発メモリ部であるため、データを圧縮する演算機能が必要となる。このような構成を、以下において説明する。
ディスクインターフェース部12の構成は、図示しないが、前述(図3)したホストインターフェース部11と同様に、I/F制御部、LM部が設けられたMP部、データ転送制御部、不揮発メモリ部から構成され、I/F制御部が磁気ディスク装置2とのインターフェースとなっている以外は同じである。このディスクインターフェース部12において、データ転送制御部は、MP部の命令により、グローバルキャッシュメモリ部14からのデータを、I/F制御部を介して磁気ディスク装置2に転送してHDD31に書き込むとともに、不揮発メモリ部にも書き込む。
このディスクインターフェース部12内のデータ転送制御部41は、図10に示すように、前述(図4)したホストインターフェース部11のデータ転送制御部21と同様の、エラーチェック回路部401、セレクタ402、パケットバッファ403、アドレス/コマンド解析部406、アービタ408と制御レジスタ409を有するDMA制御部410などに加えて、演算部430を有して構成される。この演算部430は、ディスクアレイのパリティ演算、ならびに緊急デステージ時の圧縮演算などの機能を持っている。また、データ転送制御部41の外部にも同様の、不揮発メモリ制御部421と不揮発メモリ422が備えられた不揮発メモリ部42が設けられている。
<デステージの際の格納動作>
図11により、本実施の形態に係るディスクアレイ装置において、デステージの際の格納動作の処理フローの一例を説明する。図11はデステージの際の格納動作の処理フローを示す図である。
たとえば、電源トラブルなどで、装置を緊急停止する必要にせまられたとき、緊急デステージ指示で、グローバルキャッシュメモリ部14内のキャッシュメモリのライトペンディングデータを予備のバッテリなどで駆動しながら限られた時間で磁気ディスク装置2のHDD31へデータを書き込むことが必要となる。この際、クリティカルな動作であり、HDD31へデータが転送されない場合を考慮し、データロストを防ぐために、前述(図10)した不揮発メモリ部42を有するディスクインターフェース部12の構成において、この不揮発メモリ部42にもデータを書き込み、もしHDD31へ格納されない場合は不揮発メモリ部42よりHDD31へ書き込みを実施する。
まず、ディスクインターフェース部12は、緊急デステージ指示を受けると(ステップ1401)、管理テーブルをサーチして(ステップ1402)、グローバルキャッシュメモリ部14からライトペンディングデータを読み出す(ステップ1403)。そして、グローバルキャッシュメモリ部14から読み出したデータを、不揮発メモリ部42にライト可能か否かを判定し(ステップ1404)、ライト可能な場合(OK)は、データ転送制御部41より、不揮発メモリ部42へデータをライトし、またこのデータが消されないようにライトプロテクトする。並行して、HDD31にライト可能か否かを判定し(ステップ1405)、ライト可能な場合(OK)は、データ転送制御部41より、HDD31へデータをライトする。
そして、不揮発メモリ部42とHDD31へのデステージが終了したか否かを判定し(ステップ1406)、終了した場合(OK)は、管理テーブルのペンディングフラグをクリアする(ステップ1407)。一方、ステップ1406でHDD31へのライトがNGの場合は、管理テーブルのペンディングフラグを残す(ステップ1454)。そして、予備のバッテリが切れることによりパワーダウンしてデステージ終了となる(ステップ1408)。
続いて、復旧立ち上げによりパワーオンになると(ステップ1409)、ペンディングフラグが残っていないか否か、すなわちペンディングデータが無いか否かを判定し(ステップ1410)、ペンディングデータが無い場合(Yes)は、不揮発メモリ部42の管理テーブルのペンディング情報がクリアされ、ライトプロテクトもクリアし、領域は解放される(ステップ1411)。一方、ステップ1410でペンディングデータがある場合(No)、すなわちステップ1454でHDD31へ全てのペンディングデータがライトされなかった場合は、不揮発メモリ部42よりHDD31へ書き込みを行い(ステップ1455)、不揮発メモリ部42の管理テーブルの情報をクリアして領域は解放される(ステップ1411)。
なお、ステップ1404の不揮発メモリ部42へのライト、ステップ1405のHDD31へのライトでメモリアクセスがNGだったときには、管理テーブルのテーブル情報を更新して領域を閉塞し(ステップ1451)、さらに、再度、不揮発メモリ部42、HDD31の代替のメモリアドレスを決定した後(ステップ1452)、不揮発メモリ部42、HDD31に確保したエリアの情報を管理テーブルに再エントリする(ステップ1453)。
このデステージの際の格納動作によれば、デステージNGの場合のリカバリとして2重書きを実施し、もしHDD31へ格納されない場合はライトペンディングフラグを残し、このフラグが残っていれば不揮発メモリ部42よりHDD31へ書き込みを実施することで、復旧後のデータ信頼性が向上する。この原理は、前述したホストインターフェース部11の不揮発メモリ部22のライトバッファ制御と同じであり、ディスクインターフェース部12側でHDD31へのデステージスピードが遅い場合に、不揮発メモリ部42にも書き込んでおくことで、万が一、途中で終わっても後で継続できるようになる。
<キャッシュリード動作>
図12により、本実施の形態に係るディスクアレイ装置において、グローバルキャッシュメモリ部からのリード動作の処理フローの一例を説明する。図12はグローバルキャッシュメモリ部からのリード動作の処理フローを示す図である。
ホストコンピュータ/サーバー1からの読み出し要求に対しては、グローバルキャッシュメモリ部14内のキャッシュメモリに、対応するデータがある場合とない場合で異なり、以下のような動作となる。
まず、ディスクアレイ装置のホストインターフェース部11は、ホストコンピュータ/サーバー1よりコマンドを受信し、このコマンドの内容を解析する(ステップ1501)。そして、管理テーブルをサーチして(ステップ1502)、グローバルキャッシュメモリ部14にデータがあるか否か、すなわちキャッシュヒットかキャッシュミスかを判定し(ステップ1503)、キャッシュヒットした場合は、ホストインターフェース部11がグローバルキャッシュメモリ部14よりデータをリードして(ステップ1508)、ホストコンピュータ/サーバー1へリードデータを転送する(ステップ1509)。
一方、ステップ1503でキャッシュミスの場合は、ディスクインターフェース部12へステージ要求する(ステップ1504)。さらに、ディスクインターフェース部12は、磁気ディスク装置2のHDD31のアドレスを決定した後(ステップ1505)、HDD31からグローバルキャッシュメモリ部14へデータを転送する(ステップ1506)。データをHDD31よりグローバルキャッシュメモリ部14へ転送する処理をステージングと言う。このステージングの終了後、ホストインターフェース部11へ通知すると(ステップ1507)、ホストインターフェース部11がグローバルキャッシュメモリ部14よりデータをリードして(ステップ1508)、ホストコンピュータ/サーバー1へリードデータを転送する(ステップ1509)。
<キャッシュリード動作のデータフロー>
図13により、本実施の形態に係るディスクアレイ装置において、キャッシュリード動作のデータフローの一例を説明する。図13はキャッシュリード動作のデータフローを示す図である。
まず、ホストコンピュータ/サーバー1からコマンドが転送されてくると、この転送されてきたコマンドをホストインターフェース部1で受け取り、データ転送制御部21内のパケットバッファ303に格納して(ステップ1600)、アドレス/コマンド解析部306でコマンド解析を行う。そして、データ転送制御部21は、セレクタ302を介してスイッチ部15へアクセス開始を示すリクエスト信号を送出する(ステップ1601)。続いて、データ転送制御部21は、スイッチ部15へアドレスおよびコマンドを連続して送出する(ステップ1602)。
そして、スイッチ部15は、データ転送制御部21からリクエスト信号を受け取ると、続いて送られてきたアドレスおよびコマンドを受信し、アクセス要求に基づいてアービトレーションを行い、この結果に基づいてグローバルキャッシュメモリ部14へ接続を切り替える(ステップ1603)。さらに、スイッチ部15は、データ転送制御部21にグローバルキャッシュメモリ部14への接続権が得られたたことを示すアクノリッジ信号を返す(ステップ1605)。
さらに、スイッチ部15は、グローバルキャッシュメモリ部14へアクセス開始を示すリクエスト信号を送出する(ステップ1604)。続いて、スイッチ部15は、グローバルキャッシュメモリ部14へアドレスおよびコマンドを連続して送出する(ステップ1606)。
そして、グローバルキャッシュメモリ部14は、メモリアクセスのための前処理を行い(ステップ1607)、グローバルキャッシュメモリ部14からデータを読み出す(ステップ1608)。そして、グローバルキャッシュメモリ部14は、この読み出したデータをスイッチ部15に転送する(ステップ1609)。さらに、スイッチ部15は、転送されてきたデータをデータ転送制御部21に転送する(ステップ1610)。そして、データ転送制御部21は、ホストコンピュータ/サーバー1へリードデータを転送する(ステップ1611)。
続いて、グローバルキャッシュメモリ部14は、メモリリードが終了すると、スイッチ部にステータスを送出する(ステップ1612)。さらに、スイッチ部15は、送られてきたステータスをデータ転送制御部21に送出する(ステップ1613)。そして、データ転送制御部21は、このステータスを受け取って、スイッチ部15へのリクエスト信号をオフする(ステップ1614)。
さらに、スイッチ部15は、データ転送制御部21からのリクエスト信号のオフを確認すると、データ転送制御部21へのアクノリッジ信号をオフする(ステップ1615)。そして、データ転送制御部21は、スイッチ部15からのアクノリッジ信号のオフを確認すると、ホストコンピュータ/サーバー1へアクノリッジ信号を転送する(ステップ1616)。
<複数の不揮発メモリ部におけるデータの相互制御>
図14〜図16により、本実施の形態に係るディスクアレイ装置において、複数の不揮発メモリ部におけるデータの相互制御の一例を説明する。それぞれ、図14は複数の不揮発メモリ部において最小限にバックアップを取る場合を示す図、図15は複数の不揮発メモリ部において時間管理によりバックアップを多重に取る場合を示す図、図16は図15の場合の時間管理情報を含む管理テーブルを示す図、である。
図14に示すように、ホストコンピュータ/サーバー1からのパスが複数(この例では2つ)ある場合に、データ転送制御部21a,21b、不揮発メモリ部22a,22bを有するホストインターフェース部11a,11bにおいて、関連するデータがグローバルキャッシュメモリ部14上で同じアドレスの部分にあった場合に、ホストインターフェース部11a,11b内の不揮発メモリ部22a,22b上の保管を積極的に制御することも可能である。
具体的には、グローバルキャッシュメモリ部14上ではコマンドの順番に重ね書きされるが、重ねられた段階で、古いデータのバックアップである不揮発メモリ部22a,22b上のデータは重なったデータの分はクリア、すなわちフリー化し、そして全体がデステージしたときに、残っている不揮発メモリ部22a,22b上のデータをクリアするように制御することができる。
ここでは、ホストコンピュータ/サーバー1からの第1パスによるホストコマンド(ライトデータ)1をC1、第2パスによるホストコマンド(ライトデータ)2をC2とし、このC2はC1と一部分でデータ/アドレスが重なるものである。
まず、C1がホストコンピュータ/サーバー1からホストインターフェース部11aに発行されると(ステップ1701)、データ転送制御部21aより、不揮発メモリ部22aへC1を書き込むとともに(ステップ1702)、スイッチ部15へC1を転送する(ステップ1703)。そして、スイッチ部15より、C1をグローバルキャッシュメモリ部14へ書き込む(ステップ1704)。
一方、C2がホストコンピュータ/サーバー1からホストインターフェース部11bに発行されると(ステップ1705)、データ転送制御部21bより、不揮発メモリ部22bへC2を書き込むとともに(ステップ1706)、スイッチ部15へC2を転送する(ステップ1707)。そして、スイッチ部15より、C2をグローバルキャッシュメモリ部14へ書き込む(ステップ1708)。このとき、先に書かれたC1の一部のデータが重なった場合は、C2のデータがグローバルキャッシュメモリ部14へ書き込まれる。
続いて、重なったC1のデータを不揮発メモリ部22a上からクリアする(ステップ1709)。そして、C1とC2の合わせたデータをグローバルキャッシュメモリ部14からディスクインターフェース部12へ転送する(ステップ1710)。これにより、ディスクインターフェース部12より、磁気ディスク装置2のHDD31へC1とC2の合わせたデータが書かれる(ステップ1711)。このHDD31に書かれた後は、グローバルキャッシュメモリ部14よりC1とC2の合わせたデータをクリアする(ステップ1712)。そして、不揮発メモリ部22aよりC1の残存データ、すなわちC2との共通部を除いた部分をクリアし、不揮発メモリ部22bよりC2のデータをクリアする(ステップ1713)。この時点で、不揮発メモリ部22aには、C1のうち、C2との共通部が保存される。
この制御によれば、複数のホストインターフェース部11a,11bでグローバルキャッシュメモリ部14上のデータが共有される場合、バックアップを複数持つことは通常、効率が悪いので、最小限度にバックアップすることで、不揮発メモリ部22a,22b内のデータの相互関係を利用したバックアップを実現することができる。
この制御とは反対に、バックアップを残す方法も可能である。すなわち、不揮発メモリ部22a,22b内のデータとグローバルキャッシュメモリ部14内のデータを連動して消去しない方法である。通常は、グローバルキャッシュメモリ部14内のデータに連動して不揮発メモリ部22a,22b内のデータは消去される。また、前述のように、グローバルキャッシュメモリ部14で同一のデータがあった場合に、後のデータのバックアップを残して古いデータを消去する方法もメモリ格納エリアを無駄にしないということで利点があるが、逆に残した場合は、時間管理によりバックアップを多重に取る制御方法が必要となる。
この制御では、図16に示すような管理テーブルが使用される。この管理テーブルには、前述した図7のプロテクトフラグ情報に代えて、プロテクト識別子とタイムスタンプの情報を格納する。プロテクト識別子において、“00”の場合はノーマル(データ本体)、“01”の場合はプロテクト(データ本体)、“02”の場合はバックアップ1、“03”の場合はバックアップ2、“04”の場合はバックアップ3をそれぞれ意味している。タイムスタンプは、世代バックアップを考慮して書き込んだ時刻を示す情報である。
この管理テーブルを用いた制御は、図15に示すように、C2がC1とアドレスが重なるデータ(上書き)の場合で、まず、ステップ1801〜ステップ1808は前述(図14)のステップ1701〜ステップ1708と同じであり、ステップ1808において、先に書かれたC1が重なった場合は、C2のデータがグローバルキャッシュメモリ部14へ書き込まれる。
続いて、重なったC1のデータを不揮発メモリ部22a上からクリアせず、図16に示す管理テーブルのプロテクト識別子のバックアップの値を書き換え、またタイムスタンプを記録する(ステップ1809)。そして、C1とC2の合わせたデータをグローバルキャッシュメモリ部14からディスクインターフェース部12へ転送する(ステップ1810)。これにより、ディスクインターフェース部12より、磁気ディスク装置2のHDD31へC1とC2の合わせたデータが書かれる(ステップ1811)。このHDD31に書かれた後は、グローバルキャッシュメモリ部14よりC1とC2の合わせたデータをクリアする(ステップ1812)。
そして、不揮発メモリ部22a上のC1、不揮発メモリ部22b上のC2は、ホストインターフェース部11a,11bあるいはホストコンピュータ/サーバー1で管理され、バックアップデータとして消去の要求があるまで保存される。
この制御によれば、複数のデータを分散してバックアップすることができる。すなわち、管理テーブルの構造を変化させ、バックアップとして残すか、グローバルキャッシュメモリ部14と連動して消去するかを選択できるので、データを複数残すことによって簡易的な世代バックアップを実現することができる。
<不揮発メモリ部の実装>
本実施の形態のように、ホストインターフェース部11、ディスクインターフェース部12に不揮発メモリ部22,42を実装する場合には、メモリアレイ構造にして、さらにアクセス時間を短くすることができる。特に、メインフレームなどのインターフェースによってバッファサイズが大きくなる場合には、たとえば特開2002−17853号公報の技術を援用することで対応可能となる。すなわち、メインフレームの種類によって、バッファサイズの拡張の必要性が出ており、その解決方法として前記公報の技術を用いることができる。これによれば、複数のメモリ構成なので、違うホストインターフェース部、ディスクインターフェース部によって、メモリの拡張が必要となったときや、故障により不揮発メモリ部を交換する際にも対応が可能である。
<本実施の形態の効果>
(1)ホストインターフェース部11上に不揮発メモリ部22を追加し、グローバルキャッシュメモリ部14と両方にデータを書き込む方式を採用することで、2重書きを実現しながら、スイッチ部15の帯域の消費を半減し、装置性能を向上させることができる。すなわち、2重書き方式の思想は引き継ぎながらも、スイッチ部15内のグローバルキャッシュメモリ部14のパスはホストインターフェース部11あるいはディスクインターフェース部12に対して1対1に接続して帯域の消費率を減らし、スイッチ部15の帯域を1重書き方式と同等にすることができる。
(2)2重書きにおいて、スイッチ部15への転送命令は1重書きのみとなり、スイッチ部15の他の帯域を別の処理に使用して高速化を実現することができる。すなわち、従来、グローバルキャッシュメモリ部14へのデータ書き込み処理に利用されていた帯域を複数のホストインタフェース部11の処理に利用できるので、ホストコンピュータ/サーバー1との転送性能を上げることができる。この結果、高速化に対応しながら信頼性を維持することができる。
(3)ディスク容量やキャッシュメモリ容量の増大、スイッチの拡張などによる装置の大規模化に対して、グローバルキャッシュメモリ部14のデータが破壊されてもホストインターフェース部11内の不揮発メモリ部22のデータを磁気ディスク装置2のHDD31に書き込むことで、データロストを回避することができる。この結果、大規模化に対応しながら信頼性を維持することができる。
(4)ホストインターフェース部11でデータを確保し、かつグローバルキャッシュメモリ部14でデータを確保して、そして磁気ディスク装置2のHDD31へデータを格納するという階層化したディスクアレイ装置のアーキテクチャを実現することができる。
(5)ディスクインターフェース部12が、グローバルキャッシュメモリ部14よりデータを磁気ディスク装置2のHDD31へ転送できた場合に、ホストインターフェース部11内の不揮発メモリ部22にある同じデータの領域を解放することで、メモリ領域を無尽蔵に確保しないようにすることができる。
(6)グローバルキャッシュメモリ部14の障害などで閉塞したグローバルキャッシュメモリ部14にライトペンディングデータがある場合でも、不揮発メモリ部22のデータを用いて磁気ディスク装置2のHDD31への書き込みデータを復元することができる。
(7)デステージの際に、ディスクインターフェース部12側で磁気ディスク装置2のHDD31へのデステージスピードが遅い場合に、不揮発メモリ部42にも書き込むことで、万が一、途中で終わっても、後で不揮発メモリ部42のデータを用いて保証することができる。
(8)複数のホストインターフェース部11a,11bでグローバルキャッシュメモリ部14上のデータが共有される場合、不揮発メモリ部22a,22b内のデータの相互関係を利用して、最小限のバックアップを実現したり、時間管理によってバックアップを多重にとり、世代バックアップを実現することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明の一実施の形態に係るディスクアレイ装置の概念構成を示す図である。 本発明の一実施の形態に係るディスクアレイ装置の全体構成を示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、ホストインターフェース部の構成を示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、データ転送制御部と不揮発メモリ部の構成を示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、2重書き動作のデータフローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、2重書き動作の処理フローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、ディスクインターフェース部とホストインターフェース部の通信の管理テーブルを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、不揮発メモリ部のデータをグローバルキャッシュメモリ部を介して磁気ディスク装置へ転送する場合の回復処理フローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、不揮発メモリ部のデータをグローバルキャッシュメモリ部を介さずに磁気ディスク装置へ転送する場合の回復処理フローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、不揮発メモリ部を有するディスクインターフェース部の構成を示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、デステージの際の格納動作の処理フローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、グローバルキャッシュメモリ部からのリード動作の処理フローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、キャッシュリード動作のデータフローを示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、複数の不揮発メモリ部において最小限にバックアップを取る場合を示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、複数の不揮発メモリ部において時間管理によりバックアップを多重に取る場合を示す図である。 本発明の一実施の形態に係るディスクアレイ装置において、複数の不揮発メモリ部において時間管理によりバックアップを多重に取る場合の時間管理情報を含む管理テーブルを示す図である。
符号の説明
1…ホストコンピュータ/サーバー、2…磁気ディスク装置、10…ディスクアレイ制御装置、11…ホストインターフェース部、12…ディスクインターフェース部、14…グローバルキャッシュメモリ部、15…スイッチ部、18…メモリ用バッテリ、21,41…データ転送制御部、22,42…不揮発メモリ部、31…HDD、201…I/F制御部、210…MP部、211…LM部、221,421…不揮発メモリ制御部、222,422…不揮発メモリ部、301,401…エラーチェック回路部、302,402…セレクタ、303,403…パケットバッファ、306,406…アドレス/コマンド解析部、308,408…アービタ、309,409…制御レジスタ、310,410…DMA制御部、430…演算部。

Claims (20)

  1. データを格納する複数の記憶デバイスと、
    前記複数の記憶デバイスに対するデータの書き込みまたは読み出しを制御する記憶デバイス制御部と、
    自ディスクアレイ装置の外部の上位装置から書き込み要求または読み出し要求を受けるチャネル制御部と、
    前記上位装置と前記複数の記憶デバイスとの間で通信されるデータが一時的に保存されるキャッシュメモリと、
    前記チャネル制御部、前記記憶デバイス制御部および前記キャッシュメモリに接続される接続部とを有し、
    前記チャネル制御部は、
    前記上位装置からの書き込みデータを保存する第1の不揮発メモリと、
    前記上位装置からの書き込みデータを前記第1の不揮発メモリと前記キャッシュメモリに転送する第1のデータ転送制御部とを有し、
    前記上位装置から書き込み要求を受けた場合に、前記第1のデータ転送制御部により、前記上位装置からの書き込みデータを、前記第1の不揮発メモリと、前記接続部を介した前記キャッシュメモリとに転送して書き込む機能を有することを特徴とするディスクアレイ装置。
  2. 請求項1記載のディスクアレイ装置において、
    前記記憶デバイス制御部は、前記キャッシュメモリに書き込まれたデータを前記キャッシュメモリから前記記憶デバイスに転送して書き込む機能を有し、
    前記チャネル制御部は、前記キャッシュメモリのデータが前記記憶デバイスに書き込まれた後、前記第1の不揮発メモリに書き込まれているデータの領域を解放する機能を有することを特徴とするディスクアレイ装置。
  3. 請求項1記載のディスクアレイ装置において、
    前記チャネル制御部は、前記キャッシュメモリに障害が発生した後の回復時に、前記第1の不揮発メモリに書き込まれているデータを読み出して前記キャッシュメモリに書き込む機能を有し、
    前記記憶デバイス制御部は、前記キャッシュメモリに書き込まれたデータを読み出して前記記憶デバイスに転送して書き込む機能を有することを特徴とするディスクアレイ装置。
  4. 請求項3記載のディスクアレイ装置において、
    前記チャネル制御部は、前記キャッシュメモリのデータが前記記憶デバイスに書き込まれた後、前記第1の不揮発メモリに書き込まれているデータの領域を解放する機能を有することを特徴とするディスクアレイ装置。
  5. 請求項1記載のディスクアレイ装置において、
    前記チャネル制御部は、前記キャッシュメモリに障害が発生した後の回復時に、前記第1の不揮発メモリに書き込まれているデータを読み出して前記記憶デバイスに転送して書き込む機能を有することを特徴とするディスクアレイ装置。
  6. 請求項5記載のディスクアレイ装置において、
    前記チャネル制御部は、前記第1の不揮発メモリのデータが前記記憶デバイスに書き込まれた後、前記第1の不揮発メモリに書き込まれているデータの領域を解放する機能を有することを特徴とするディスクアレイ装置。
  7. 請求項1記載のディスクアレイ装置において、
    前記記憶デバイス制御部は、
    前記キャッシュメモリに書き込まれたデータを保存する第2の不揮発メモリと、
    前記キャッシュメモリに書き込まれたデータを前記第2の不揮発メモリと前記記憶デバイスに転送する第2のデータ転送制御部とを有し、
    デステージ要求を受けた場合に、前記第2のデータ転送制御部により、前記キャッシュメモリに書き込まれたデータを、前記第2の不揮発メモリと、前記記憶デバイスとに転送して書き込む機能を有することを特徴とするディスクアレイ装置。
  8. 請求項7記載のディスクアレイ装置において、
    前記記憶デバイス制御部は、前記キャッシュメモリに書き込まれたデータが前記記憶デバイスに転送されない場合、前記第2の不揮発メモリに書き込まれたデータを読み出して前記記憶デバイスに転送して書き込む機能を有することを特徴とするディスクアレイ装置。
  9. 請求項8記載のディスクアレイ装置において、
    前記記憶デバイス制御部は、前記第2の不揮発メモリのデータが前記記憶デバイスに書き込まれた後、前記第2の不揮発メモリに書き込まれているデータの領域を解放する機能を有することを特徴とするディスクアレイ装置。
  10. 請求項1記載のディスクアレイ装置において、
    前記チャネル制御部は、前記上位装置との間で複数のパスで書き込み要求または読み出し要求を受けるために複数からなり、
    第1のチャネル制御部は、第1のパスを介した前記上位装置からの第1の書き込みデータを保存する第3の不揮発メモリと、前記上位装置からの第1の書き込みデータを前記第3の不揮発メモリと前記キャッシュメモリに転送する第3のデータ転送制御部とを有し、
    第2のチャネル制御部は、第2のパスを介した前記上位装置からの第2の書き込みデータを保存する第4の不揮発メモリと、前記上位装置からの第2の書き込みデータを前記第4の不揮発メモリと前記キャッシュメモリに転送する第4のデータ転送制御部とを有し、
    前記第1の書き込みデータの後に前記第2の書き込みデータが入力される場合に、
    前記第1のチャネル制御部は、前記第3のデータ転送制御部により前記第1の書き込みデータを前記第3の不揮発メモリと前記キャッシュメモリとに転送して書き込み、前記キャッシュメモリから前記記憶デバイスに転送して書き込まれたことを確認した後に、前記第3の不揮発メモリ内の前記第1の書き込みデータを保存する機能を有し、
    前記第2のチャネル制御部は、前記第4のデータ転送制御部により前記第2の書き込みデータを前記第4の不揮発メモリと前記キャッシュメモリとに転送して書き込み、前記キャッシュメモリから前記記憶デバイスに転送して書き込まれたことを確認した後に、前記第4の不揮発メモリ内の前記第2の書き込みデータを保存する機能を有することを特徴とするディスクアレイ装置。
  11. データを格納する複数の記憶デバイスと、
    前記複数の記憶デバイスに対するデータの書き込みまたは読み出しを制御する記憶デバイス制御部と、
    自ディスクアレイ装置の外部の上位装置から書き込み要求または読み出し要求を受けるチャネル制御部と、
    前記上位装置と前記複数の記憶デバイスとの間で通信されるデータが一時的に保存されるキャッシュメモリと、
    前記チャネル制御部、前記記憶デバイス制御部および前記キャッシュメモリに接続される接続部とを有するディスクアレイ装置のデータ処理方法であって、
    前記チャネル制御部は、
    前記上位装置からの書き込みデータを保存する第1の不揮発メモリと、
    前記上位装置からの書き込みデータを前記第1の不揮発メモリと前記キャッシュメモリに転送する第1のデータ転送制御部とを有し、
    前記上位装置から書き込み要求を受けた場合に、前記第1のデータ転送制御部により、前記上位装置からの書き込みデータを、前記第1の不揮発メモリと、前記接続部を介した前記キャッシュメモリとに転送して書き込むことを特徴とするディスクアレイ装置のデータ処理方法。
  12. 請求項11記載のディスクアレイ装置のデータ処理方法において、
    前記記憶デバイス制御部は、前記キャッシュメモリに書き込まれたデータを前記キャッシュメモリから前記記憶デバイスに転送して書き込み、
    前記チャネル制御部は、前記キャッシュメモリのデータが前記記憶デバイスに書き込まれた後、前記第1の不揮発メモリに書き込まれているデータの領域を解放することを特徴とするディスクアレイ装置のデータ処理方法。
  13. 請求項11記載のディスクアレイ装置のデータ処理方法において、
    前記チャネル制御部は、前記キャッシュメモリに障害が発生した後の回復時に、前記第1の不揮発メモリに書き込まれているデータを読み出して前記キャッシュメモリに書き込み、
    前記記憶デバイス制御部は、前記キャッシュメモリに書き込まれたデータを読み出して前記記憶デバイスに転送して書き込むことを特徴とするディスクアレイ装置のデータ処理方法。
  14. 請求項13記載のディスクアレイ装置のデータ処理方法において、
    前記チャネル制御部は、前記キャッシュメモリのデータが前記記憶デバイスに書き込まれた後、前記第1の不揮発メモリに書き込まれているデータの領域を解放することを特徴とするディスクアレイ装置のデータ処理方法。
  15. 請求項11記載のディスクアレイ装置のデータ処理方法において、
    前記チャネル制御部は、前記キャッシュメモリに障害が発生した後の回復時に、前記第1の不揮発メモリに書き込まれているデータを読み出して前記記憶デバイスに転送して書き込むことを特徴とするディスクアレイ装置のデータ処理方法。
  16. 請求項15記載のディスクアレイ装置のデータ処理方法において、
    前記チャネル制御部は、前記第1の不揮発メモリのデータが前記記憶デバイスに書き込まれた後、前記第1の不揮発メモリに書き込まれているデータの領域を解放することを特徴とするディスクアレイ装置のデータ処理方法。
  17. 請求項11記載のディスクアレイ装置のデータ処理方法において、
    前記記憶デバイス制御部は、
    前記キャッシュメモリに書き込まれたデータを保存する第2の不揮発メモリと、
    前記キャッシュメモリに書き込まれたデータを前記第2の不揮発メモリと前記記憶デバイスに転送する第2のデータ転送制御部とを有し、
    デステージ要求を受けた場合に、前記第2のデータ転送制御部により、前記キャッシュメモリに書き込まれたデータを、前記第2の不揮発メモリと、前記記憶デバイスとに転送して書き込むことを特徴とするディスクアレイ装置のデータ処理方法。
  18. 請求項17記載のディスクアレイ装置のデータ処理方法において、
    前記記憶デバイス制御部は、前記キャッシュメモリに書き込まれたデータが前記記憶デバイスに転送されない場合、前記第2の不揮発メモリに書き込まれたデータを読み出して前記記憶デバイスに転送して書き込むことを特徴とするディスクアレイ装置のデータ処理方法。
  19. 請求項18記載のディスクアレイ装置のデータ処理方法において、
    前記記憶デバイス制御部は、前記第2の不揮発メモリのデータが前記記憶デバイスに書き込まれた後、前記第2の不揮発メモリに書き込まれているデータの領域を解放することを特徴とするディスクアレイ装置のデータ処理方法。
  20. 請求項11記載のディスクアレイ装置のデータ処理方法において、
    前記チャネル制御部は、前記上位装置との間で複数のパスで書き込み要求または読み出し要求を受けるために複数からなり、
    第1のチャネル制御部は、第1のパスを介した前記上位装置からの第1の書き込みデータを保存する第3の不揮発メモリと、前記上位装置からの第1の書き込みデータを前記第3の不揮発メモリと前記キャッシュメモリに転送する第3のデータ転送制御部とを有し、
    第2のチャネル制御部は、第2のパスを介した前記上位装置からの第2の書き込みデータを保存する第4の不揮発メモリと、前記上位装置からの第2の書き込みデータを前記第4の不揮発メモリと前記キャッシュメモリに転送する第4のデータ転送制御部とを有し、
    前記第1の書き込みデータの後に前記第2の書き込みデータが入力される場合に、
    前記第1のチャネル制御部は、前記第3のデータ転送制御部により前記第1の書き込みデータを前記第3の不揮発メモリと前記キャッシュメモリとに転送して書き込み、前記キャッシュメモリから前記記憶デバイスに転送して書き込まれたことを確認した後に、前記第3の不揮発メモリ内の前記第1の書き込みデータを保存し、
    前記第2のチャネル制御部は、前記第4のデータ転送制御部により前記第2の書き込みデータを前記第4の不揮発メモリと前記キャッシュメモリとに転送して書き込み、前記キャッシュメモリから前記記憶デバイスに転送して書き込まれたことを確認した後に、前記第4の不揮発メモリ内の前記第2の書き込みデータを保存することを特徴とするディスクアレイ装置のデータ処理方法。
JP2004113179A 2004-04-07 2004-04-07 ディスクアレイ装置およびそのデータ処理方法 Withdrawn JP2005301419A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004113179A JP2005301419A (ja) 2004-04-07 2004-04-07 ディスクアレイ装置およびそのデータ処理方法
US10/864,644 US7103717B2 (en) 2004-04-07 2004-06-10 Disk array device and data processing method thereof
DE602005002292T DE602005002292T2 (de) 2004-04-07 2005-01-27 Speicherplattenanordnung und Datenverarbeitungsverfahren dafür
EP05250419A EP1585022B1 (en) 2004-04-07 2005-01-27 Disk array device and data processing method thereof
US11/490,176 US7269690B2 (en) 2004-04-07 2006-07-21 Disk array device and data processing method thereof
US11/812,277 US7360019B2 (en) 2004-04-07 2007-06-18 Disk array device and data processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004113179A JP2005301419A (ja) 2004-04-07 2004-04-07 ディスクアレイ装置およびそのデータ処理方法

Publications (1)

Publication Number Publication Date
JP2005301419A true JP2005301419A (ja) 2005-10-27

Family

ID=34909507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004113179A Withdrawn JP2005301419A (ja) 2004-04-07 2004-04-07 ディスクアレイ装置およびそのデータ処理方法

Country Status (4)

Country Link
US (3) US7103717B2 (ja)
EP (1) EP1585022B1 (ja)
JP (1) JP2005301419A (ja)
DE (1) DE602005002292T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009530728A (ja) * 2006-03-21 2009-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Raidアダプタからのディスク関連タスクのオフロードのための方法、システム、プログラム(raidアダプタからのディスク関連タスクのオフロード)
US8495276B2 (en) 2007-10-12 2013-07-23 HGST Netherlands B.V. Power saving optimization for disk drives with external cache

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301419A (ja) 2004-04-07 2005-10-27 Hitachi Ltd ディスクアレイ装置およびそのデータ処理方法
JP4131862B2 (ja) * 2004-07-01 2008-08-13 Dts株式会社 3.5インチ定形型ディスク形状を持ったデータトランスミッション装置
JP4662743B2 (ja) * 2004-09-13 2011-03-30 Necインフロンティア株式会社 データ2重化システム
US20060080515A1 (en) * 2004-10-12 2006-04-13 Lefthand Networks, Inc. Non-Volatile Memory Backup for Network Storage System
JP2006268673A (ja) * 2005-03-25 2006-10-05 Hitachi Ltd 記憶制御装置及び記憶デバイスのエラー制御方法
US8762636B2 (en) * 2006-12-14 2014-06-24 Emc Corporation Data storage system having a global cache memory distributed among non-volatile memories within system disk drives
JP4483891B2 (ja) * 2007-04-02 2010-06-16 フェリカネットワークス株式会社 情報処理端末、データ移動方法、およびプログラム
JP2010122730A (ja) * 2008-11-17 2010-06-03 Hitachi Ltd ストレージ制御装置及びストレージシステム
JP4717922B2 (ja) * 2008-11-28 2011-07-06 株式会社日立製作所 情報処理システム、情報処理システムにおける制御方法、および、管理装置
US8671258B2 (en) * 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
KR101695364B1 (ko) * 2009-03-27 2017-01-11 엘에스아이 코포레이션 저장 시스템 로컬 블록 어드레스 할당해제 관리 및 데이터 강화
US8195891B2 (en) 2009-03-30 2012-06-05 Intel Corporation Techniques to perform power fail-safe caching without atomic metadata
US8036084B2 (en) * 2009-09-15 2011-10-11 Vinpower Inc. Standalone duplication system with network connection
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
JP5835040B2 (ja) * 2012-03-19 2015-12-24 富士通株式会社 情報処理システムおよびデータ記録制御方法
JP6248435B2 (ja) * 2013-07-04 2017-12-20 富士通株式会社 ストレージ装置、およびストレージ装置の制御方法
US9223655B2 (en) * 2013-07-26 2015-12-29 Hitachi, Ltd. Storage system and method for controlling storage system
US9239797B2 (en) * 2013-08-15 2016-01-19 Globalfoundries Inc. Implementing enhanced data caching and takeover of non-owned storage devices in dual storage device controller configuration with data in write cache
CN106155583B (zh) * 2015-05-13 2019-12-03 西部数据技术公司 缓存固态设备读取请求结果的系统和方法
JP6569368B2 (ja) * 2015-08-04 2019-09-04 株式会社リコー 連携システム、連携装置及び連携方法
KR20180086815A (ko) 2017-01-23 2018-08-01 에스케이하이닉스 주식회사 쓰기 버퍼를 이용한 중복-쓰기 동작을 수행하는 메모리장치 및 메모리장치의 읽기 및 쓰기 방법
US11573738B2 (en) * 2021-01-19 2023-02-07 Dell Products, L.P. Synchronous destage of write data from shared global memory to back-end storage resources

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US156983A (en) * 1874-11-17 Improvement in fruit-grinding mills
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
US5694570A (en) * 1992-09-23 1997-12-02 International Business Machines Corporation Method and system of buffering data written to direct access storage devices in data processing systems
US5771367A (en) 1992-12-17 1998-06-23 International Business Machines Corporation Storage controller and method for improved failure recovery using cross-coupled cache memories and nonvolatile stores
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
US5884098A (en) 1996-04-18 1999-03-16 Emc Corporation RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6065085A (en) 1998-01-27 2000-05-16 Lsi Logic Corporation Bus bridge architecture for a data processing system capable of sharing processing load among a plurality of devices
JP3657428B2 (ja) 1998-04-27 2005-06-08 株式会社日立製作所 記憶制御装置
CA2339331C (en) * 1998-08-25 2011-03-01 Lexigen Pharmaceuticals Corporation Expression and export of angiogenesis inhibitors as immunofusins
US6513097B1 (en) * 1999-03-03 2003-01-28 International Business Machines Corporation Method and system for maintaining information about modified data in cache in a storage system for use during a system failure
US6792507B2 (en) 2000-12-14 2004-09-14 Maxxan Systems, Inc. Caching system and method for a network storage system
US20020156983A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method and apparatus for improving reliability of write back cache information
JP3759048B2 (ja) * 2002-02-04 2006-03-22 日本電気株式会社 ディスクアレイ装置のディスクキャッシュ管理方法
US7080197B2 (en) 2002-04-18 2006-07-18 Lsi Logic Corporation System and method of cache management for storage controllers
JP4107083B2 (ja) 2002-12-27 2008-06-25 株式会社日立製作所 高可用ディスク制御装置とその障害処理方法及び高可用ディスクサブシステム
JP4391170B2 (ja) * 2003-09-05 2009-12-24 株式会社日立製作所 データ転送装置の制御方法、データ転送回路、及びディスクアレイ装置
JP2005301419A (ja) 2004-04-07 2005-10-27 Hitachi Ltd ディスクアレイ装置およびそのデータ処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009530728A (ja) * 2006-03-21 2009-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Raidアダプタからのディスク関連タスクのオフロードのための方法、システム、プログラム(raidアダプタからのディスク関連タスクのオフロード)
US8495276B2 (en) 2007-10-12 2013-07-23 HGST Netherlands B.V. Power saving optimization for disk drives with external cache

Also Published As

Publication number Publication date
EP1585022A2 (en) 2005-10-12
DE602005002292T2 (de) 2008-06-12
EP1585022A3 (en) 2005-10-26
US7360019B2 (en) 2008-04-15
US20070245080A1 (en) 2007-10-18
US20060259684A1 (en) 2006-11-16
EP1585022B1 (en) 2007-09-05
US20050228941A1 (en) 2005-10-13
US7103717B2 (en) 2006-09-05
US7269690B2 (en) 2007-09-11
DE602005002292D1 (de) 2007-10-18

Similar Documents

Publication Publication Date Title
US7360019B2 (en) Disk array device and data processing method thereof
JP3732869B2 (ja) 外部記憶装置
JP4986045B2 (ja) 二重アクティブ・コントローラ内のライト・キャッシュ・データのフェイルオーバーおよびフェイルバック
US6006342A (en) Failover and failback system for a direct access storage device
US7228381B2 (en) Storage system using fast storage device for storing redundant data
US8117376B2 (en) Storage system and control method thereof
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
JP4041473B2 (ja) マルチクラスタ・ストレージ・サブシステムのための自律型パワー・ロス・リカバリ
US20120233398A1 (en) Storage system and data management method
JP2009075759A (ja) ストレージ装置及びストレージ装置におけるデータの管理方法
JP2007058419A (ja) Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム
JP2004021811A (ja) 不揮発メモリを使用したディスク制御装置
WO2015011825A1 (ja) ストレージシステムおよびストレージシステムの制御方法
JP3776438B2 (ja) 記憶装置
JP4398596B2 (ja) ディスクアレイ装置
JPH07306758A (ja) ディスクアレイ装置及びその制御方法
JPH08286844A (ja) パリティ生成制御方法およびディスク制御装置
JP2023110180A (ja) ストレージ装置および制御方法
WO2016006108A1 (ja) ストレージおよびその制御方法
JP2020077248A (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
JP7201775B2 (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
JPH07328072A (ja) キャッシュ制御方法および情報処理装置
JP3542577B2 (ja) ディスクアレイ装置及びその制御方法
JP5643238B2 (ja) ディスクアレイ制御装置、ディスクアレイ装置、及び、ディスクアレイ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070213

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090601