JP4090400B2 - ストレージシステム - Google Patents
ストレージシステム Download PDFInfo
- Publication number
- JP4090400B2 JP4090400B2 JP2003200840A JP2003200840A JP4090400B2 JP 4090400 B2 JP4090400 B2 JP 4090400B2 JP 2003200840 A JP2003200840 A JP 2003200840A JP 2003200840 A JP2003200840 A JP 2003200840A JP 4090400 B2 JP4090400 B2 JP 4090400B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- host device
- power supply
- storage system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2089—Redundant storage control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/285—Redundant cache memory
- G06F2212/286—Mirrored cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、ディスクドライブ等の記憶装置を複数備えるストレージシステムに係わり、特に、計算機等の上位装置からのデータの書き込みを高速化する制御技術に関する。
【0002】
【従来の技術】
多数の記憶装置を搭載するストレージシステムでは、従来から半導体メモリ等のキャッシュメモリを用いて上位装置と記憶装置との間で授受されるデータを一時的に格納することで、データの読み出し及び書き込みを高速化することが行われてきた。例えば、上位装置からのデータの書き込みの際は、ストレージシステムは書き込みデータを一旦キャッシュメモリに格納し、その時点において上位装置に書き込み処理完了を通知する。その後、ストレージシステムは、上位装置の動作とは独立に、キャッシュメモリに格納したデータを実際に記憶装置に書き込む。
【0003】
このように、キャッシュメモリを用いてストレージシステムのデータの授受の高速化を行う場合、ストレージシステムは、キャッシュメモリに一旦データを書き込むと記憶装置にデータを書き込むことなく上位装置に書き込み完了を報告してしまう。従って、キャッシュメモリの障害等で記憶装置に書き込む前にキャッシュメモリ内のデータが消失すると、データの回復は非常に困難である。このため、データの消失の可能性を低減しストレージシステムの信頼性を向上させる目的で、ストレージシステムが有するキャッシュメモリ(又はそれを含んだ制御部)を二重化し、データはキャッシュメモリの両方に書き込むという技術が特許文献1及び2に開示されている。
【0004】
又、キャッシュメモリ又はその冗長化されたメモリを不揮発にすることで、データの損失を防止する技術が、非特許文献1 88頁〜89頁に開示されている。
【0005】
【特許文献1】
特開2001-318766号公報
【特許文献2】
特開平9−146842号公報
【非特許文献1】
「IBM TotalStorage Enterprise Storage Server Model 800」 IBM Redbooks、 SG24-6424-01、 Second Edition (October 2002)、IBM Corp.、 ISBN 0738428256
【0006】
【発明が解決しようとする課題】
特許文献1及び2に開示されたストレージシステムでは、2重化されたキャッシュメモリの双方へのデータの書き込み完了を待って上位装置に完了報告を行うので、時間がかかり、レスポンス性能の向上には限界がある。具体的には、上位装置との間のデータ転送を行う一方の制御部が、2重化された他系の制御部のキャッシュメモリにデータを転送し、かつ他系の制御部のデータの書き込み完了の報告を受けるため、2重系の一方と他方との間の通信の送受が発生し、上位装置からみたストレージシステムのレスポンス性能を下げる主要因となる。一般に2重系では、一方の系と他方の系とは、障害時に相互に影響が出るのを避けるため、電源系を分離するなど、独立性を高めている。このため、一方の系と他方の系の間の通信は時間がかかり、これを高速化することは難しい。
【0007】
非特許文献1では、一方の制御部内にキャッシュメモリ用のバックアップメモリとして不揮発性メモリを設けているので、上述のような問題、即ち二重系間でのデータ転送による遅延は発生しない。しかし、一般にバッテリで電源を確保している不揮発性メモリでは、不揮発性メモリの容量を大きくすると、バッテリも大容量のものが必要となるので、不揮発メモリの記憶容量を、キャッシュメモリのような大容量にはできない。
【0008】
このため、キャッシュメモリに書き込むデータの量を不揮発性メモリに格納できる大きさに制限する必要があり、やはり上位装置から見たストレージシステムの書き込み性能を充分高めることは困難である。即ち、書き込むデータの量が不揮発性メモリに格納できる大きさを超えると、キャッシュメモリに書き込んだデータを記憶装置に書き込んでしまうまでは、ストレージシステムは次の上位装置からの書き込みを受け付けることができず、大幅に性能が低下する。
【0009】
本発明の目的は、キャッシュメモリを用いるストレージシステムにおいて、信頼性向上のためにキャッシュメモリを2重化したときに、上位装置からのデータの書き込みを高速化することである。
【0010】
【課題を解決するための手段】
本発明では、上記の課題を解決するために、以下の構成を有する。すなわち、ストレージシステムにおいて、複数の制御部及び記憶装置を有する構成とする。ここで、制御部は第一のメモリ及び第二のメモリを有する。第二のメモリは、FIFOバッファ等の第一のメモリよりも容量が少ないメモリでも良い。上記構成において、上位装置からデータの書き込み要求を受けたストレージシステムの制御部は、自己が有する第一のメモリ及び第二のメモリに、書き込み要求に対応するデータを格納する。この時点で、上位装置にデータの書き込み完了を通知する。その後、この制御部は、他の制御部の第一のメモリへ、第二のメモリに格納されたデータを転送する。
【0011】
本発明では、更に、上記構成において複数の電源を有し、個々の電源が個々の制御部に電源を供給する。ただし、個々の制御部が有する第二のメモリは、その第二のメモリを有する制御部に電源供給している電源とは別の電源から電源供給を受ける構成とする。
【0012】
尚、第二のメモリも制御部と同一の電源から電源供給を受けるが、第二のメモリが充電池を有し、万一電源が遮断された際には、電源供給元を充電池に切り替える構成としても良い。
【0013】
更に、複数の制御部と上位装置とを接続するために、ストレージ装置がスイッチ及びインターフェース部を有する構成としても良い。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
図1は、本発明を適用したストレージシステムの第一の実施形態を示す図である。ストレージシステムは、二つの制御部(以下「コントローラ」)10、二つの電源11及び複数の記憶装置(以下「ディスクドライブ」)12を有する。ここでディスクドライブ12とは、ハードディスクや光ディスク等の記憶媒体を用いた装置である。一つのディスクドライブ12は、各々双方のコントローラ12と接続されている。又、電源11a及び電源11bは各々独立な電源であり、電源11aはコントローラ10aに電源を供給し、電源11bはコントローラ10bに電源を供給する。したがって、一方の電源11が故障したとしても、他方の電源11がコントローラ10に電源を供給することで、ストレージシステムが動作することが出来る。
【0015】
各々のコントローラ10は、ホストインターフェース部100、FIFOバッファ102、データ書き込み完了監視部103及びキャッシュメモリ101を有する。尚、ホストインターフェース部やデータ書込み完了監視部は、汎用の演算装置とソフトウエアの組み合わせで実現されても良いし,専用のハードウェアで実現されても良い。
【0016】
本実施形態のストレージシステムは2重系を構成している。キャッシュメモリ101は、ディスクドライブ12と上位装置との間で授受されるデータを一時的に格納する揮発性の記憶媒体である。
【0017】
尚、コントローラ10a内のホストインターフェース部100a、キャッシュメモリ101a及びデータ書き込み完了監視部103aは電源線120aを介して電源11aと接続される。又、コントローラ10b内のホストインターフェース部100b、キャッシュメモリ101b及びデータ書き込み完了監視部103bは、電源線120bを介して電源11bと接続される。
【0018】
このとき、コントローラ10a内のFIFOバッファ102aは、電源線121bを介して電源11bと接続される。更に、コントローラ10b内のFIFOバッファ102bは、電源線121aを介して電源11aと接続される。このように電源線を接続することにより、コントローラ10aのFIFOバッファ102aは、コントローラ10a内の他の構成部分の電源とは異なる、独立した電源に接続されるので、FIFOバッファ102aは、コントローラ10a内のキャッシュメモリ101aと2重系をなす、即ち、一方の電源11が故障した場合にも、他方の電源11から電源供給を受けている部分(キャッシュメモリ101又はFIFOバッファ102)はデータを保持することができる。同様に、コントローラ10b内のFIFOバッファ102bは、コントローラ10b内のキャッシュメモリ101bと2重系をなすことができる。
【0019】
以下、図1におけるデータ書き込みの手順について簡単に説明する。例えばコントローラ10aに接続される上位装置からデータの書き込みが行われた場合、まずデータをホストインターフェース部100aが受信する。尚、コントローラ10bがデータを受信しても以下の説明と同様の処理が行われる。
【0020】
ホストインターフェース部100aが受信したデータは、信号線110aを介してFIFOバッファ102a及びキャッシュメモリ101aに送られ、それぞれに書き込まれる。FIFOバッファ102aは、データの書き込みが障害なく完了すると、信号線111aを介して、書き込みの完了をデータ書き込み完了監視部103aに通知する。
【0021】
キャッシュメモリ101aは、データの書き込みが障害なく完了すると、信号線112aを介して、書き込みの完了をデータ書き込み完了監視部103aに通知する。データ書き込み完了監視部103aは、信号線111a及び信号線112aの両方から書き込み完了の通知を受信したら、信号線113aを介してホストインターフェース部100aに書き込み完了を通知する。通知を受信したホストインターフェース部100aは、上位装置へ書き込み完了を報告する。このとき、コントローラ10aとコントローラ10bの間では特に通信を行わないので、上位装置から見たストレージシステムの書き込み処理を高速化することができる。
【0022】
FIFOバッファ102aに格納されたデータは、ホストインターフェース部100aより上位装置へ書き込み完了が報告された後、信号線114aを介してコントローラ10b内のキャッシュメモリ101bへ転送され、キャッシュメモリ101bに書き込まれる。このように、コントローラ10aとコントローラ10bとの間のデータ転送に関する通信は、上位装置への書き込み完了が報告された後に行われる。また、FIFOバッファ102aに格納されたデータはキャッシュメモリ101bに移されるので、FIFOバッファ102aを上位装置からの次のデータ書き込みのために空けることができる。このため、FIFOバッファ102aの容量が不足してディスクドライブ12にデータを書き込むまで上位装置からの次の書き込みを受け付けられなくなるようなことはなく、さらに書き込み処理の性能を高めることができる。
【0023】
図2は、FIFOバッファ102aの構成例を示した図である。尚、FIFOバッファ102bも同様の構成となるが、電源11aと11bとが入れ替わった構成となる。FIFOバッファ102aは、電源A監視部301a、書き込み制御部302a、読み出し制御部303a、FIFOメモリ304a、データ確認部305a及び残データ有無指示器330aを有する。
【0024】
データ確認部305aは、上位装置から送信されてきた書き込みデータが途中で障害を生じて誤ったデータになっていないかCRC等で確認する。データ確認部311aで誤りがないことが確認されると、その結果は信号線311aを介して書き込み制御部302aへ通知される。書き込み制御部302aは、データ確認部305aから誤りがないことが通知されると、書き込み指示信号を信号線313aを介して出力する。書き込み指示信号を受信したFIFOメモリ304aは、上位装置から転送されたデータを格納する。
【0025】
転送されたデータの格納を終了したFIFOメモリ304aは、信号線111aを介して書き込み完了をデータ書き込み完了監視部103aへ通知する。又、FIFOメモリ304aは、信号線313aを介して、データ書き込みの完了を書き込み制御部302aに通知する。通知を受けた書き込み制御部302aは、信号線315aを介して、読み出し制御部303aにFIFOメモリ304aにデータが格納されたことを通知する。
【0026】
信号線315aからデータがFIFOメモリ304aに格納されたことを通知された読み出し制御部303aは、信号線314aを介して読み出し指示信号を出力する。読み出し指示信号を受信したFIFOメモリ304aは、格納されたデータを信号線114aに出力し、コントローラ10b内のキャッシュメモリ101bへ送信する。
【0027】
電源A監視部301aは、図1では図示しない監視信号線310aを用いて電源11aの状態を監視する。尚、本例において電源11aの状態を監視するのは、以下の理由による。もし、電源11aの完全な障害で給電停止になればホストインターフェース部100aからの信号が消失するので、FIFOバッファ102aは、ホストインターフェース部100aからの信号の有無のみで、電源11aの障害が発見できる。しかし、電源11aが正規の電圧でない不正な電圧を給電するなどすると、ホストインターフェース部100aからの信号が単に消失するのではなく、誤動作を起こしてなんらかの異常な信号となることが予想される。この場合には、ホストインターフェース部100aからの信号のみを監視していては判定がつかない。そこで電源A監視部301aは、電源11aを直接監視することによってホストインターフェース部100aからの信号が正常と期待できるかどうかを判定する。
【0028】
電源11aに障害が発生し、ホストインターフェース部100aからデータが正常に伝わってこない状態となると、電源A監視部301aは、信号線312aを介して書き込み抑止信号を書き込み制御部302aへ出力し、誤ったデータがFIFOメモリ304aに格納されるのを抑止する。尚、電源11aに障害が発生しても、FIFOバッファ102a内の各部は電源線320a及び電源線121bを介して電源11bに接続されているので、障害なく動作を継続することができる。
【0029】
また、FIFOバッファ102aは、FIFOメモリ304a内にまだコントローラ10bのキャッシュメモリ101bへ送出されていないデータがあるかどうかを表示する残データ有無指示器330aを備える。この残データ有無指示器330aによって、ストレージシステムの使用者又は管理者は、コントローラ10aで障害が発生した際にコントローラ10aを交換して障害回復を行う時には、データがコントローラ10bのキャッシュメモリ101bへ送出が完了しているかどうかを確認し、データ転送の完了を待って、コントローラ10aを交換することができる。
【0030】
尚、本発明の第二の実施形態として、ストレージシステムが第一の実施形態の構成に加えて電源43a及びbを有し、FIFOバッファ402aが電源43bに、FIFOバッファ402bが電源43aに接続されている形態も考えられる。本実施形態では、電源43a及び電源43bは、それぞれFIFOバッファ102a及び102bに電源を供給するだけで良いので、電源11a及び電源11bに比べ、容量を小さくすることができる。
【0031】
図3は、本発明を適用したストレージシステムの第三の実施形態を示す図である。第三の実施形態は、第一の実施形態と異なり、ストレージシステムは、バッテリ付きFIFOバッファ502a及び502bを有する。又、第一の実施形態と異なり、本実施形態では、バッテリ付きFIFOバッファ502aは、電源線521bを介して電源11aに、バッテリ付きFIFOバッファ502bは、電源線521aを介して電源11bに接続される。バッテリ付きFIFOバッファ502a及び502bは、それぞれ電源11a、電源11bの障害発生時には、内蔵しているバッテリにより動作を継続する。その他の構成及び動作は第一の実施形態と同様である。
【0032】
図4は、バッテリ付きFIFOバッファ502aの構成例を示す図である。尚、バッテリ付きFIFOバッファ502bもほぼ同一の構成だが、電源11aが電源11bとなる。バッテリ付きFIFOバッファ502aは、電源A監視部301a、書き込み制御部302a、読み出し制御部303a、FIFOメモリ304a、データ確認部605a、残データ有無指示器330a、バッテリ606a、充電監視部607a及び電源セレクタ608aを有する。
【0033】
電源A監視部310aは、図3に図示しない監視信号線310aを使用して、電源11aの状態を監視している。電源11aに障害が発生したことを監視信号線310aを通じて検出すると、電源A監視部310aは、第一の実施形態と同様に、信号線312aを介して書き込み抑止信号を書き込み制御部302aへ出力し、FIFOメモリ304aへの新たな書き込みデータの格納を抑止させる。また、本実施形態では、電源A監視部301は、書き込み抑止信号の出力にあわせて、信号線616aを介して電源切り替え信号を電源セレクタ608aに出力する。電源切り替え信号を受信した電源セレクタ608aは、各部への電源線620aに接続する電源を電源11aからバッテリ606aに切り替える。
【0034】
バッテリ606aは、電源11aが正常である間は、充電監視部607aによって充電されている。これにより、バッテリ606aは、いつでも電源11aに代わって各部に電源を供給する準備が整えられている。電源A監視部301aより電源切り替え信号が出力されると、バッテリ606aは、電源線620を介してFIFOバッファ502a内の各部へ電源を供給する。このバッテリ606aからの電源の供給は、電源11aからバッテリ606aへ電源が切り替わった時点にFIFOメモリ304a内に格納されていたデータがすべてコントローラ50bのキャッシュメモリ101bに送出し終わるまでで良い。何故なら、バッテリ606aに電源が切り替わった後は、電源A監視部301aより書き込み抑止信号が出力されるので、新たなデータのFIFOメモリへの格納が生じないからである。このため、バッテリ606aは大きな容量を必要とせず、ごく小さな容量のバッテリで充分である。
尚、上述以外のバッテリ付きFIFOバッファ502aの動作は、第一の実施形態と同様である。
【0035】
図5は、図3のコントローラ50の具体的な実装例を示す図である。マザーボード70上に、上位装置からの信号線と接続されるホスト接続用コネクタ71、ホストインターフェース部に対応するLSI72、書き込み完了監視部に相当するLSI74、DIMM(Dual In-line Memory Module)基板で実装されるキャッシュメモリ73及びFIFOバッファ用ドータカード75が装着される。さらに、FIFOバッファ用ドータカード75には、FIFOメモリに相当するLSI 751、書き込み制御部、読み出し制御部、電源A監視部、データ確認部及び充電監視部を含むLSI 752並びにバッテリ753が搭載されている。
【0036】
マザーボード70は、カードエッジ接続部76を介して、他のコントローラ50、ディスクドライブ12、電源11a及び電源11bに接続される。これは、マザーボード70上の各装置には電源11a又は電源11bにより電源が供給されることを意味する。FIFOバッファ用ドータカード75上の各装置には、電源11a、電源11b又はバッテリ753により電源が供給される。
【0037】
図5では更に、残データ有無指示器754がLEDでマザーボード70のホスト接続用コネクタ71が配置された方のカードエッジに並べて実装される。こうすることにより、実際のストレージシステムにコントローラ50を組み込む時には、マザーボード70のホスト接続用コネクタ71のあるカードエッジだけがストレージシステム外部から観察可能なようにしておくことが出来る。このようにすることによって、ストレージシステムの使用者又は管理者が、ストレージシステム外部から観察して、当該コントローラ50が障害時に交換可能になったかどうかを容易に知ることができる。
【0038】
さらに、残データ有無指示器754をFIFOバッファ用ドータカード75上ではなくてマザーボード70上に搭載するため、マザーボード70に電源を配給する電源11からの電源供給が停止しても残データ有無指示器754にFIFOバッファ用ドータカード75からの信号線を介して電源供給ができるように、残データ有無指示器754とFIFOバッファ用ドータカード75とを配線しておく。
【0039】
又、万一誤ってFIFOメモリに未だデータが存在するのに残データ無しで交換可能との表示になってしまわないように、例えば残データ有無指示器754をLEDで実装するときは、点灯が交換可能であることを意味し、消灯が交換不可を意味するとしておく。これを逆に点灯が交換不可、消灯が交換可能という意味にすると、使用者又は管理者は、マザーボード70上の障害によりFIFOバッファ用ドータカード75からの信号線がマザーボード70上で断線して残データ有無指示器754が消灯した状態と、交換可能で残データ有無指示器754が消灯した状態とが区別できなくなる。
【0040】
尚、マザーボード70上の障害により残データ有無指示器754が消灯している状態と交換不可で残データ有無指示器754が消灯している状態との区別は、別の手段で行う事もできる。例えば、FIFOメモリから他方のコントローラ50のキャッシュメモリへすべてのデータを送出するまでにかかる最大時間を予め測定等を行い調べておけば、データを送出する最大時間を超えて残データ有無指示器754が消灯したままであるときは、マザーボード70上の障害と考えることができる。
【0041】
あるいは、上位装置から最後に書き込まれたデータが何であるかが上位装置において知ることができれば、書き込まれたデータが他方のコントローラのキャッシュメモリまたはディスクドライブに格納されているかどうか、他方のコントローラ50から調べるという方法もある。
【0042】
図6は、本発明を適用したストレージシステムにおけるデータの書き込み方法の手順を示したフローチャートである。本フローチャートは、上述した全ての実施形態で共通である。
【0043】
まずストレージシステムのコントローラ10aは、ホストインターフェース部100aを介して、上位装置から書き込みコマンドを受信する(ステップ801)。次にコントローラ10aは、書き込みコマンドで指示されたデータの大きさの分だけキャッシュメモリ101aの空き領域を確保する(ステップ802)。次にコントローラ10aは、FIFOバッファ102aの空きを検査し(ステップ803、804)、空きがない場合には、コントローラ10aは、ステップ803及び804の処理をFIFOバッファ102aが空くまで繰り返す。
【0044】
FIFOバッファに空きが有る場合又はできた場合には、コントローラ10aは、上位装置に書き込み準備完了を通知する(ステップ805)。その後、コントローラ10aは、実際に上位装置からデータを受信する(ステップ806)。データを受信したコントローラ10aは、ホストインターフェース部100aで受信したデータの複製を行う。ただし、データの複製は、他の部分で行われても良い(ステップ807)。その後、ホストインターフェース部100aは、複製したデータの一方をキャッシュメモリ101aに、他方のデータをFIFOバッファ102aに転送する(ステップ808)。
【0045】
次にコントローラ10aは、キャッシュメモリ101a及びFIFOバッファ102aのいずれかの書き込みでエラーが発生しなかったかどうか検査する(ステップ809)。もしいずれかの書き込みでエラーが発生した時には、コントローラ10aは、上位装置に書き込みエラーを報告する(ステップ810)。また両方の書き込みでエラーが生じなかった場合には、コントローラ10aは、上位装置からデータを受信し終わったかどうか検査する(ステップ811)。もし受信し終わっていなければ、コントローラ10aは、全てのデータを受信し終わるまでステップ806〜811までの処理を繰り返す。
【0046】
全データを受信し終わった場合、コントローラ10aは、上位装置に書き込みの完了を報告する(ステップ812)。その後、コントローラ10aは、他系(バックアップ側)のコントローラ10bのキャッシュメモリ101bに空き領域を確保するよう、他系のコントローラ10bに指示を出す。具体的には、例えばFIFOバッファ102aが、書き込み要求信号を直接他系コントローラ10bに出しても良い(ステップ813)。空き領域を確保したコントローラ10aは、FIFOバッファ102aから書き込みデータをバックアップ側のキャッシュメモリ101bに転送して処理を終了する(ステップ814)。
【0047】
このように処理することにより、ストレージシステムは、データをバックアップ側のキャッシュメモリに格納する前に、上位装置へ書き込み完了を報告することが可能である。
【0048】
図7は、本発明を適用したストレージシステムの第四の実施形態を示す図である。本実施形態のストレージシステムは、コントローラ90を90a、90b、90c、及び90dの4個有する。それぞれのコントローラ90は、90aと90bが2重系、90cと90dが2重系となっている。即ち、電源11aがコントローラ90a及び90cに、電源11bがコントローラ90b及び90cに電力を供給している。又、本実施形態のストレージシステムは、第三の実施形態の構成に加え、交換スイッチ部905及び独立したホストインターフェース部900を有する。
【0049】
更に各コントローラ90は、他の実施形態のコントローラが有していたホストインターフェース部100の代わりに接続スイッチ部904を有する。各ホストインターフェース部900と各コントローラ90の接続スイッチ部904との間は、交換スイッチ部905を介して相互に接続される。尚、ホストインターフェース部900及び交換スイッチ部904は、単数でも複数あっても良い。このようにすることにより、上位装置がホストインターフェース部900a及び900bのどちらに接続されても、4個のコントローラ90a、90b、90c、90dのうち任意のコントローラを利用することができる。
【0050】
本実施形態では、例えばホストインターフェース部900aに接続される上位装置からデータの書き込みが行われた場合、まず当該データが例えば交換スイッチ部905aを経て、コントローラ90aの接続スイッチ部904aに転送される。接続スイッチ部904aが受信したデータは、信号線110aを介してバッテリ付きFIFOバッファ502aとキャッシュメモリ101aに転送される。
【0051】
データの書き込みを障害なく完了したバッテリ付きFIFOバッファ502aは、信号線111aを介して、書き込みの完了をデータ書き込み完了監視部103aに通知する。又、データの書き込みを障害なく完了したキャッシュメモリ101aは、信号線112aを介して、書き込みの完了をデータ書き込み完了監視部103aに通知する。データ書き込み完了監視部103aは、信号線111a及び信号線112aの双方を介して書き込み完了の通知を受信したら、信号線113aを介して接続スイッチ部904aに書き込み完了を通知する。接続スイッチ部904aは、交換スイッチ部905a及びホストインターフェース部900aを介して上位装置へ書き込み完了を報告する。このとき、コントローラ90aと他のコントローラ90b、90c、90dの間ではデータ転送のための通信が何ら発生しないので、上位装置から見たストレージシステムの書き込み処理を高速化することができる。
【0052】
FIFOバッファ502aに格納されたデータは、ホストインターフェース部900aより上位装置へ書き込み完了が報告された後、信号線114aを介してコントローラ90b内のキャッシュメモリ101bへ送信され、キャッシュメモリ101bへ書き込まれる。このように、コントローラ90aとコントローラ90bとの間の通信は、上位装置へ書き込み完了が報告された後に行われる。また、バッテリ付きFIFOバッファ502aに格納されたデータは、キャッシュメモリ101bに転送されるので、バッテリ付きFIFOバッファ502aを上位装置からの次のデータ書き込みのために空けることができる。このため、バッテリ付きFIFOバッファ502aの容量が不足し、ディスクドライブ12にデータを書き込むまで上位装置からの次の書き込みを受け付けられなくなるようなことはない。以上のようにすることによって、ストレージシステムの書き込み処理の性能を高めることが可能である。
【0053】
尚、本実施形態のバッテリ付きFIFOバッファ502の動作は、図3の第三の実施形態におけるバッテリ付きFIFOバッファ502と同様である。
【0054】
【発明の効果】
本発明により、キャッシュメモリを2重化するストレージシステムにおいて、上位装置からみたデータ書き込みの時間を短縮することができる。これにより上位装置からみたデータ書き込み性能を向上させることができる。
【図面の簡単な説明】
【図1】ストレージシステムの実施の形態の第一の例を示す図である。
【図2】ストレージシステムに用いられるFIFOバッファの構成の例を示す図である。
【図3】ストレージシステムの実施の形態の第三の例を示す図である。
【図4】ストレージシステムに用いられるバッテリ付きFIFOバッファの構成の例を示す図である。
【図5】ストレージシステムに用いられるコントローラのマザーボードの概観の例を示す図である。
【図6】ストレージシステムの書き込みを高速化する方法の実施の形態の例を示す図である。
【図7】ストレージシステムの実施の形態の第四の例を示す図である。
【符号の説明】
10…コントローラ、11a…電源A、11b…電源B、12…ディスクドライブ、43a…小電源A、43b…小電源B、100…ホストインターフェース部、101…キャッシュメモリ、102…FIFOバッファ、502…バッテリ付きFIFOバッファ、103…データ書き込み完了監視部、606…バッテリ、607…充電監視部、608…電源セレクタ。
Claims (6)
- 記憶装置と、
前記記憶装置及び上位装置と接続される第一の制御部及び第二の制御部と、
第一の電源と、
第二の電源と、を備え、
第一の制御部は、キャッシュメモリである第一のメモリと、第二のメモリとを有し、
第二の制御部は、前記第一のメモリが受け取ったデータのコピーを受け取るキャッシュメモリである第三のメモリを有し、
前記第一の制御部が前記上位装置からデータを受信した場合に、前記第一の制御部は、前記第一のメモリ及び前記第二のメモリに前記データを各々格納して前記上位装置に応答を送信し、その後、前記第一の制御部は、前記第二のメモリに格納されたデータを前記第三のメモリに転送し、
前記第一の制御部の前記第一のメモリは前記第一の電源から電源供給を受け、
前記第一の制御部の前記第二のメモリ及び前記第二の制御部の前記第三のメモリは前記第二の電源から電源供給を受けることを特徴とするストレージシステム。 - 前記第二のメモリはFIFOバッファであることを特徴とする請求項1記載のストレージシステム。
- 前記記憶装置は複数あることを特徴とする請求項2記載のストレージシステム。
- 前記第二のメモリは、当該第二のメモリに格納されているデータの有無を示すことを特徴とする請求項3記載のストレージシステム。
- ディスクドライブと、
上位装置から前記ディスクドライブへ書き込むデータを一時的に格納する第一のキャッシュメモリと、
前記ディスクドライブへ書き込むデータの複製を格納する第二のキャッシュメモリと、
前記第二のキャッシュメモリへ前記上位装置からの書き込みデータの複製を送るために当該データの複製を一時的に格納するFIFOバッファと、
前記第一のキャッシュメモリに接続する第一の電源と、
前記第一の電源と独立した、前記第二のキャッシュメモリに接続する第二の電源と、を備え、
前記第一のキャッシュメモリに前記上位装置からの書き込みデータを格納し、前記FIFOバッファに前記上位装置からの書き込みデータの複製が格納された時点において前記上位装置にデータの書き込みの完了の通知を行い、
前記FIFOバッファは前記第二の電源に接続することを特徴とするストレージシステム。 - 前記FIFOバッファから前記第二のキャッシュメモリに前記上位装置からの書き込みデータの複製をすべて書き込んだかどうかを表示する残データ有無表示部を備えることを特徴とする請求項5記載のストレージシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003200840A JP4090400B2 (ja) | 2003-07-24 | 2003-07-24 | ストレージシステム |
US10/659,374 US7124244B2 (en) | 2003-07-24 | 2003-09-11 | Storage system and a method of speeding up writing data into the storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003200840A JP4090400B2 (ja) | 2003-07-24 | 2003-07-24 | ストレージシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005044010A JP2005044010A (ja) | 2005-02-17 |
JP2005044010A5 JP2005044010A5 (ja) | 2006-11-09 |
JP4090400B2 true JP4090400B2 (ja) | 2008-05-28 |
Family
ID=34074489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003200840A Expired - Fee Related JP4090400B2 (ja) | 2003-07-24 | 2003-07-24 | ストレージシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7124244B2 (ja) |
JP (1) | JP4090400B2 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
JP4662743B2 (ja) * | 2004-09-13 | 2011-03-30 | Necインフロンティア株式会社 | データ2重化システム |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US7730257B2 (en) * | 2004-12-16 | 2010-06-01 | Broadcom Corporation | Method and computer program product to increase I/O write performance in a redundant array |
JP2006227923A (ja) * | 2005-02-17 | 2006-08-31 | Fujitsu Ltd | ディスク管理装置およびディスク管理プログラム |
US8914557B2 (en) * | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
JP4920291B2 (ja) | 2006-04-18 | 2012-04-18 | 株式会社日立製作所 | 計算機システム、アクセス制御方法及び管理計算機 |
JP5026102B2 (ja) * | 2007-02-07 | 2012-09-12 | 株式会社日立製作所 | ストレージ制御装置及びデータ管理方法 |
JP5200410B2 (ja) * | 2007-04-19 | 2013-06-05 | 富士通株式会社 | ストレージ装置 |
US7685186B2 (en) | 2007-06-25 | 2010-03-23 | Microsoft Corporation | Optimized and robust in-place data transformation |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US8037256B2 (en) * | 2007-12-20 | 2011-10-11 | Advanced Micro Devices, Inc. | Programmable address processor for graphics applications |
JP2009266119A (ja) | 2008-04-28 | 2009-11-12 | Hitachi Ltd | ストレージ装置及びデータ転送方法 |
JP2010033125A (ja) | 2008-07-25 | 2010-02-12 | Hitachi Ltd | ストレージ装置及びデータ転送方法 |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
JP5167410B2 (ja) | 2009-01-09 | 2013-03-21 | 株式会社日立製作所 | 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法 |
JP5397148B2 (ja) * | 2009-10-16 | 2014-01-22 | 富士通株式会社 | 記憶装置、制御装置および記憶装置の制御方法 |
JP5402693B2 (ja) * | 2010-02-05 | 2014-01-29 | 富士通株式会社 | ディスクアレイ装置の制御方法及びディスクアレイ装置 |
US8713288B2 (en) | 2010-06-17 | 2014-04-29 | Hitachi, Ltd. | Storage system comprising multiple microprocessors and method for sharing processing in this storage system |
JP5915079B2 (ja) * | 2011-10-27 | 2016-05-11 | 富士通株式会社 | 書込制御プログラム、書込制御方法、書込制御装置およびシステム |
JP5907103B2 (ja) * | 2013-03-25 | 2016-04-20 | 日本電気株式会社 | ストレージ装置 |
JP5907105B2 (ja) * | 2013-03-26 | 2016-04-20 | 日本電気株式会社 | ストレージ装置、方法、及び、プログラム。 |
US10191822B2 (en) | 2014-02-20 | 2019-01-29 | Rambus Inc. | High performance persistent memory |
JP6976237B2 (ja) | 2018-11-08 | 2021-12-08 | 株式会社日立製作所 | ストレージシステム、データ管理方法、及びデータ管理プログラム |
US11314643B2 (en) * | 2020-07-21 | 2022-04-26 | Micron Technology, Inc. | Enhanced duplicate write data tracking for cache memory |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2514208B2 (ja) * | 1987-07-15 | 1996-07-10 | 富士通株式会社 | ホットスタンドバイメモリ−コピ−方式 |
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
US5437022A (en) * | 1992-12-17 | 1995-07-25 | International Business Machines Corporation | Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto |
FR2707774B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux. |
JP3732869B2 (ja) * | 1995-06-07 | 2006-01-11 | 株式会社日立製作所 | 外部記憶装置 |
JP3772369B2 (ja) | 1995-11-20 | 2006-05-10 | 株式会社日立製作所 | 記憶サブシステム |
US5708771A (en) * | 1995-11-21 | 1998-01-13 | Emc Corporation | Fault tolerant controller system and method |
US5680571A (en) * | 1995-12-28 | 1997-10-21 | Unisys Corporation | Multi-processor data processing system with multiple, separate instruction and operand second level caches |
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
JP3414218B2 (ja) * | 1997-09-12 | 2003-06-09 | 株式会社日立製作所 | 記憶制御装置 |
JPH11144219A (ja) * | 1997-11-11 | 1999-05-28 | Teac Corp | 磁気ヘッド |
US6567889B1 (en) * | 1997-12-19 | 2003-05-20 | Lsi Logic Corporation | Apparatus and method to provide virtual solid state disk in cache memory in a storage controller |
US6230240B1 (en) * | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
JP3987241B2 (ja) * | 1999-07-29 | 2007-10-03 | 株式会社東芝 | 系間情報通信システム |
US6574709B1 (en) * | 1999-09-30 | 2003-06-03 | International Business Machine Corporation | System, apparatus, and method providing cache data mirroring to a data storage system |
JP2001318766A (ja) | 2000-05-08 | 2001-11-16 | Nec Software Shikoku Ltd | ディスクアレイ装置およびキャッシュメモリ制御方法 |
US6438647B1 (en) * | 2000-06-23 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for providing battery-backed immediate write back cache for an array of disk drives in a computer system |
US6681339B2 (en) * | 2001-01-16 | 2004-01-20 | International Business Machines Corporation | System and method for efficient failover/failback techniques for fault-tolerant data storage system |
US7162587B2 (en) * | 2002-05-08 | 2007-01-09 | Hiken Michael S | Method and apparatus for recovering redundant cache data of a failed controller and reestablishing redundancy |
-
2003
- 2003-07-24 JP JP2003200840A patent/JP4090400B2/ja not_active Expired - Fee Related
- 2003-09-11 US US10/659,374 patent/US7124244B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2005044010A (ja) | 2005-02-17 |
US20050021907A1 (en) | 2005-01-27 |
US7124244B2 (en) | 2006-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4090400B2 (ja) | ストレージシステム | |
JP3264465B2 (ja) | 記憶システム | |
US6802023B2 (en) | Redundant controller data storage system having hot insertion system and method | |
US7444541B2 (en) | Failover and failback of write cache data in dual active controllers | |
US6708285B2 (en) | Redundant controller data storage system having system and method for handling controller resets | |
JP3161189B2 (ja) | 記憶システム | |
US6978347B2 (en) | Method and apparatus for re-synchronizing paired volumes via communication line | |
US7065620B2 (en) | Systems and methods for backing up data | |
US6715101B2 (en) | Redundant controller data storage system having an on-line controller removal system and method | |
JP5511960B2 (ja) | 情報処理装置、及びデータの転送方法 | |
US20070050547A1 (en) | Storage system and storage system management method | |
JP2007086972A (ja) | ストレージシステム、二重化制御方法、及びプログラム | |
JP2005301419A (ja) | ディスクアレイ装置およびそのデータ処理方法 | |
US7653831B2 (en) | Storage system and data guarantee method | |
US8065556B2 (en) | Apparatus and method to manage redundant non-volatile storage backup in a multi-cluster data storage system | |
US7752340B1 (en) | Atomic command retry in a data storage system | |
JPH1195933A (ja) | ディスクアレイ装置 | |
JP4252551B2 (ja) | データストレージシステム及びストレージ制御装置の異常時のログデータ出力方法 | |
JP2005122763A (ja) | 記憶装置 | |
JP2006268403A (ja) | データストレージシステム及びストレージ制御装置のログデータの等価制御方法 | |
JP3661665B2 (ja) | パッケージの閉塞方法 | |
JP3547411B2 (ja) | 記憶システム | |
JP3793544B2 (ja) | ディスクアレイ装置及びその制御方法 | |
JPH08320768A (ja) | ディスクアレイ装置 | |
JP2001356881A (ja) | 多重化記憶制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050916 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051129 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20051129 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060921 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20060921 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070327 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070608 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070702 |
|
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: 20080221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4090400 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120307 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |