JP2004139353A - ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステム - Google Patents
ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステム Download PDFInfo
- Publication number
- JP2004139353A JP2004139353A JP2002303524A JP2002303524A JP2004139353A JP 2004139353 A JP2004139353 A JP 2004139353A JP 2002303524 A JP2002303524 A JP 2002303524A JP 2002303524 A JP2002303524 A JP 2002303524A JP 2004139353 A JP2004139353 A JP 2004139353A
- Authority
- JP
- Japan
- Prior art keywords
- data
- input
- disk
- array device
- disk array
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000015654 memory Effects 0.000 claims abstract description 111
- 230000004044 response Effects 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 54
- 230000002860 competitive effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003292 diminished effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0658—Controller construction arrangements
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、入出力チャネルごとに用意されそれぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、ディスクドライブと、ディスクドライブに対してデータ入出力を行うディスク制御手段と、入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、を備えるディスクアレイ装置を提供する。
【選択図】 図11
Description
【発明の属する技術分野】
この発明は、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムに関する。
【0002】
【従来の技術】
一般的なディスクアレイ装置では、ディスクドライブへのデータの入出力を制御するディスクアダプタと、ホストコンピュータとの接続を制御する入出力チャネルと、キャッシュメモリとがディスクアレイ装置の内部に設けられたネットワークスイッチを介して接続する構成となっている。
【0003】
【特許文献1】
特開2001−290790号公報
【0004】
【発明が解決しようとする課題】
このため、ディスクアレイ装置のネットワークスイッチには、入出力チャネル、ディスクアダプタ、キャッシュメモリの間でのトラフィックが競合し、これによりネットワークスイッチの利用率が高くなり、これがホストコンピュータへの応答速度を低下させる要因となっていた。
本発明はこのような観点からなされたもので、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】
この目的を達成するための主たる発明であるディスクアレイ装置は、
外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
を備えることを特徴とする。
なお、本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【0006】
【発明の実施の形態】
===開示の概要===
以下の開示により、少なくともつぎのことが明らかにされる。
前述の目的に対応して、本発明者らは、上記のように、入出力チャネルごとにキャッシュメモリを設けることを着想した。図1にそのように構成したディスクアレイ装置1を用いて構成したストレージシステムの概略構成を示す。この構成では、ホストコンピュータからのデータ入出力要求の対象となるデータが、そのデータ入出力要求を受信した入出力チャネル10a〜10dに対応して用意されているキャッシュメモリ11a〜11dに存在する場合には、そのデータをホストコンピュータに返すことができるので、キャッシュメモリ11a〜11dにデータが存在する場合には、ホストコンピュータに迅速に応答を返すことが可能である。
【0007】
ところで、図1の構成において、例えば、異なる入出力チャネル10a〜10dで受信したデータ入出力要求により、ディスクドライブの同一の記憶領域に記憶されているデータに対してアクセスがあると、ディスクドライブのある記憶領域に記憶されていたデータが複数のキャッシュメモリ11a〜11dに同時に記憶されることになる。
【0008】
ここでこの状態において、例えば、ある入出力チャネル10a〜10dが受信したデータ入出力要求に起因して前記データに対する更新が行われる場合には、それぞれのキャッシュメモリ11a〜11dが記憶しているデータの整合性を保つために、例えば、他のキャッシュメモリ11a〜11dに記憶しているデータを無効化してしまう処理(無効化処理)や、他のキャッシュメモリ11a〜11dに記憶しているデータを書き換える、といった整合性を確保するための処理を行う必要がある。
【0009】
しかしながら、この整合性を確保するための処理においては、無効化のための通信や各キャッシュメモリ11a〜11dへの更新後のデータの通知のための通信などによりネットワークスイッチのトラフィックを増大させ、これによりホストコンピュータに対する応答速度が低下し、入出力チャネル10a〜10dごとにキャッシュメモリ11a〜11dを設けたことにより得られる効果が希釈することになる。
【0010】
ところで、整合性を確保するための処理は、必ずしも必要でないこともある。例えば、ある記憶領域に記憶されているデータに対するアクセスが、特定の入出力チャネル10a〜10dを介してしか行われないような場合である。
【0011】
また、同じ記憶領域に記憶されているデータに対して複数の入出力チャネル10a〜10dからのアクセスが想定される場合であっても、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、必ずしも整合性を確保する必要がなかったり、また、必要があったとしても厳密な整合性までは要求されないこともある。
【0012】
そこで、本発明の他の一態様では、外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、ディスクドライブと、ディスクドライブに対してデータ入出力を行うディスク制御手段と、入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行する手段と、を備えるディスクアレイ装置において、前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御する手段を設けることとした。
【0013】
なお、整合性確保処理には、例えば、ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶しているデータを無効化する処理や、ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、当該キャッシュメモリの当該データを更新するとともに、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶されているデータについても更新する処理などがある。
【0014】
前述したように、整合性を確保するための処理は、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、必ずしも必要でなかったり、また、必要があるとしても厳密な整合性までは要求されないことがある。そこで、本発明のように、ホストコンピュータから送信されたデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と整合性確保処理との実行順を制御するようにし、整合性を確保する必要がある場合とそうでない場合とで実行順を制御することで、ディスクアレイ装置を効率よく利用することが可能となる。具体的には、例えば、整合性を確保するための処理が必ずしも必要で無い場合には、ホストコンピュータへの応答処理を行った後に整合性確保処理を実行することで、ホストコンピュータへの応答を迅速に行うようにすることができる。
【0015】
また、ディスクドライブの記憶領域上に論理的な記憶領域である複数の論理ボリュームが設定され、データ入出力要求に当該データ入出力要求の処理対象となる論理ボリュームの識別子が設定されている場合に、前記実行順の制御は、前記データ入出力要求に設定されている前記論理ボリュームの識別子に応じて行われるようにすることもできる。
【0016】
このように論理ボリュームの識別子により実行順を制御することができることで、設定方法のバリエーションが増え、例えば、ホストコンピュータで動作するアプリケーションごとに個別に論理ボリュームを割り当てているような場合には、アプリケーションプログラムの性質に応じて、前記実行順の制御に関する設定を簡単に行うことができる。
【0017】
また、本発明の他の態様では、ディスクアレイ装置には他のディスクアレイ装置が接続しており、ディスクアレイ装置はデータ入出力要求としてデータ書き込み要求を受信した場合に、この要求で指定されるデータを自身のディスクドライブに書き込むとともにそのデータについての書き込み要求を前記他のディスクアレイ装置に送信し、前記入出力チャネルは、データ書き込み要求を受信した場合に、自身のディスクドライブにデータを書き込む動作モード(ノーマルモード)と、他のディスアレイ装置に前記書き込み要求を送信する動作モード(コピーモード)と、のいずれかのモードで動作し、前記実行順の制御は、前記外部装置からのデータ入出力要求が入力される前記入出力チャネルが、前記いずれの動作モードで動作しているかに応じて行われることを特徴とする。
【0018】
ここで例えば、コピーモードで動作中の入出力チャネルで受信したデータ入出力要求の処理は、ノーマルモードで動作中の入出力チャネルで受信したデータ入出力要求の処理に比べて整合性確保の必要性が少ないような場合には、例えば、ホストコンピュータへの応答処理を行った後に整合性確保処理を実行することで、ホストコンピュータへの応答を迅速に行うようにすることができる。
【0019】
===詳細===
<システム構成>
図1のストレージシステムの構成について詳述する。ディスクアレイ装置1は、例えば、SAN(Storage Area Network)やLAN(Local Area Network)などの通信手段を介して外部装置であるホストコンピュータに接続している。ディスクアレイ装置1は、ホストコンピュータとの間で通信を行う4つの入出力チャネル10a〜10dと、入出力チャネル10a〜10dごとに用意されそれぞれ対応する入出力チャネルに接続するキャッシュメモリ11a〜11d、ディスクドライブ14a〜14d、ディスクドライブ14a〜14dに接続しディスクドライブ14a〜14dへのデータの入出力を制御する4つのディスクアダプタ13a〜13d、入出力チャネル10a〜10dとディスクアダプタ13a〜13dの間を接続する二つのネットワークスイッチ12a、12b、などを備えて構成される。
【0020】
なお、図1では、ネットワークスイッチ12a、12bは複数設けられ、入出力チャネル10a〜10dとディスクアダプタ13a〜13dの間の経路には冗長性を持たせているが、ネットワークスイッチは単数で構成してもよい。4つの入出力チャネル10a〜10dには、ホストコンピュータから、データ要求やデータ書き込み要求などのデータ入出力要求が送信されてくる。ディスクアレイ装置1は、入出力チャネル10a〜10dが受信したデータ入出力要求に応じて、ディスクドライブ14a〜14dに対するデータの読み出しや書き込みを行い、必要に応じて、その結果や読み出したデータなどを、ホストコンピュータに送信する。
【0021】
<入出力チャネル>
図2は入出力チャネル10a〜10dの構成の例である。入出力チャネル10a〜10dはそれぞれプロセッサ201を備える。 またプロセッサ201で実行される制御プログラムや、処理に必要な情報(データ)を記憶するローカルメモリ202を備える。さらにホストコンピュータと接続するためのホストI/F回路204や、ネットワークスイッチ12a,12bと接続するためのネットワーク接続回路203,203bを備える。
【0022】
これらは高速な信号線バスであるプロセッサバス205で接続される。さらにキャッシュメモリ11a〜11dも、このプロセッサバス205に接続される。この構成によりプロセッサ201はキャッシュメモリ11a〜11dに対して読み出しや書き込みを高速に行うことができる。
【0023】
なお、図2ではローカルメモリ202に格納した制御プログラムをプロセッサ201で実行することにより、入出力チャネル10a〜10dの処理を行うことを想定している。制御プログラムの一部また全部の機能をハードウェア化することも考えられる。
【0024】
<ディスクアダプタ>
図3はディスクアダプタ13a〜13dの構成の一例である。ディスクアダプタ13a〜13dはそれぞれプロセッサ301を備えている。またプロセッサ301で実行される制御プログラムや、処理に必要な情報(データ)を記憶するために、ローカルメモリ302を備えている。
【0025】
さらにディスクドライブ14a〜14dと直接接続するディスクドライブI/F回路304や、ネットワークスイッチ12a,12bと接続するためのネットワーク接続回路303a,303bを備える。これらはプロセッサ301と高速な信号線バスであるプロセッサバス305で接続される。
【0026】
なお、図3ではローカルメモリ302に格納した制御プログラムをプロセッサ301で実行することにより、ディスクアダプタの処理を行うことを想定しているが、入出力チャネルの場合と同様に、制御プログラムの一部また全部の機能をハードウェア化することも考えられる。
【0027】
<キャッシュメモリ>
図4は、キャッシュメモリ11a〜11dの構成の例である。キャッシュメモリは検索制御部40とメモリ部41とを備え、メモリ部41内に各々のデータを、有効ビットV 401、書き換えビットD 402、データブロック番号403、データ内容404の組で記憶している。
【0028】
入出力チャネル10a〜10dは、アドレスバス411によってホストコンピュータに要求されたデータブロック番号を通知し、メモリ部41内でデータブロック番号403が一致し、有効ビットV 401が有効状態(例えば’1’)であるデータがあるかどうか検索制御部40に検索させる。
【0029】
検索した結果、データが見つかると返答信号バス412によってヒット信号が伝達され、見つかったことが報告される。またデータバス413によって、データ内容404が読み出される。データの書き込みの場合には、制御コマンドバス414によって書き込みコマンド信号が通知され、データバス413によって伝達されるデータが当該データ内容404に書き込まれて、書き換えビットD 402がセット状態(例えば’1’)になって書き換えが生じたことが記録される。検索した結果、データが見つからない場合には、返答信号バス412によってミス信号が伝達され、見つからなかったことが報告される。
【0030】
ディスクアダプタ13a〜13dからキャッシュメモリ上のデータを無効化するための無効化信号が送信されてきた場合には、同様に入出力チャネル10a〜10dは、アドレスバス411によって当該データブロック番号を通知し、メモリ部41内でデータブロック番号403が一致し、有効ビットV 401が有効状態(例えば’1’)であるデータがあるかどうか検索制御部40に検索させる。
【0031】
検索した結果見つかった場合、書き換えビットD 402の内容も調べる。もし書き換えビットD 402がセット状態である場合には、返答信号バス412によってダーティヒット信号が伝達される。
【0032】
ダーティヒット信号を受け取った入出力チャネル10a〜10dは、データ内容404をデータバス413によって読み出し、無効化信号を送信してきたディスクアダプタ13a〜13dに返送する。書き換えビットD 402がセット状態でない場合には、返答信号バス412によってクリーンヒット信号が伝達される。
【0033】
これらの二つの場合において、その後、入出力チャネル10a〜10dは、再びアドレスバス411によって当該データブロック番号、制御コマンドバス414によって無効化コマンド信号を通知し、有効ビットV 401を無効状態(例えば’0’)としてそのデータの組を無効とする。
【0034】
また検索した結果見つからなかった場合には、返答信号バス412によってミス信号が伝達されて、見つからなかったことが入出力チャネル10a〜10dに報告される。これらすべての場合において、最後に入出力チャネル10a〜10dは無効化信号を送信してきたディスクアダプタ13a〜13dに無効化処理終了信号を返送して、無効化に関する処理が終了したことを伝える。
【0035】
なお、書き換えビットD 402がセット状態になって、ディスクドライブから読み出したデータの書き換えが生じたことが記録された場合、上述の無効化によるほか、適当な時間経過、もしくはキャッシュメモリが溢れた時に、ディスクアダプタ13a〜13dに書き換えられたデータを送り、ディスクドライブに書き戻しを行わせたら当該書き換えビットD 402はリセット状態(例えば’0’)にし、書き換えが生じたという記録を消去する。
【0036】
なお、図4では、検索制御部40が実際にメモリ部41の検索制御を行うとしたが、メモリ部41だけを備え、検索制御部40は特に備えずに、同等の機能を入出力チャネル10a〜10dのプロセッサ201に行わせるようにすることもできる。
【0037】
また図4では、アドレスバス411、返答信号バス412、データパス413、制御コマンドバス414の各種の信号バスがあって、これらが統合されて入出力チャネル10a〜10dに接続されるとしたが、単一の信号バスを備え、アドレスバス411、返答信号バス412、データパス413、制御コマンドバス414の各種の信号バスに相当する信号コマンドが該単一の信号パス上を伝達されるようにすることもできる。
【0038】
図4の例では、単一のメモリ部41に有効ビットV 401、書き換えビットD 402、データブロック番号403、データ内容404のデータの組がすべて格納され、当該データがあるかどうかを検索する場合には、メモリ部41全体を検索する必要がある。このため、メモリ部41の容量が大きくなってくると検索に時間がかかることが考えられる。
【0039】
このような場合には図5のようにすることが考えられる。 図5では、制御検索部50と、タグ部51、データ部52より構成され、タグ部51には、有効ビットV 501、書き換えビットD 502、データブロック番号503、キャッシュ内データ位置504が格納される。データ部52にはデータ内容505が格納される。
タグ部51において、有効ビットV 501、書き換えビットD 502、データブロック番号503は、図4で示したものと同等の内容を記録する。キャッシュ内データ位置504には、データ部52における当該データの位置が記録される。
データ部52よりデータ内容を取り出す場合には、当該データブロック番号503に対応するキャッシュ内データ位置504より当該データの位置がデータ位置信号515によってデータ部52に伝達され、データバス513に読み出される。
書き込みの時も同様にデータ位置信号515によって指定された位置にデータバス513によって伝達されたデータが書き込まれる。 その他のアドレスバス511、制御コマンドバス514、返答信号バス512によって伝達される信号等は、図4の場合と同等である。
【0040】
このような構成を採ることにより、図5の例では、当該データの有無を検索する際にタグ部51内のみを検索すればよく、データ部512の容量が大きくなっても、検索時間にはあまり影響しないようにすることが可能である。
すなわち、図4の場合には、メモリ部41にデータ内容も一緒に格納されるため、データブロック数が多くなると多数の半導体チップが必要になり、多数の半導体チップに渡って検索する必要が生じ、検索に要する時間が大きくなる。
これに対し図5の場合には、データ内容を記憶するデータ部が格納される半導体チップと、タグ部を格納する半導体チップは別々になり、タグ部を格納する半導体チップの数は少なくてすみ、少ない半導体チップに渡って検索すればよいため、検索に要する時間は小さくなる。
【0041】
なお、図5では、検索制御部50が実際にタグ部51の検索制御を行うとしたが、図4の例と同様に、タグ部51、データ部52だけを備え、検索制御部50は特に備えずに、同等の機能を入出力チャネル10a〜10dのプロセッサ201で行わせることも考えられる。
【0042】
また図5では、アドレスバス511、返答信号バス512、データパス513、制御コマンドバス514の各種の信号バスがあって、これらが統合されて入出力チャネル10a〜10dに接続されるとしたが、やはり図4の例と同様に、単一の信号バスを備え、アドレスバス511、返答信号バス512、データパス513、制御コマンドバス514の各種の信号バスに相当する信号コマンドが該単一の信号パス上を伝達されるようにしてもよい。
【0043】
<データテーブル>
図6は、入出力チャネル10a〜10dにおいて、ホストコンピュータから要求されたデータブロック番号のデータが自分に接続されたキャッシュメモリ11a〜11dに存在しなかったとき、どのディスクアダプタ13a〜13dに当該データを要求すればよいか記録した各入出力チャネルに設けられたデータテーブルの形式の例である。
【0044】
データブロック番号とディスクアダプタ番号が組みとなって記録され、当該入出力チャネル10a〜10dにそれぞれ接続されたホストコンピュータとの間で予め取り決めた分だけのデータブロック番号についての組みが存在する。
また、ある個数(例えば16個)の連続したデータブロック番号を同一のディスクアダプタに接続されたディスクドライブに格納することとして、その個数分(例えば16個)まとめ、先頭のディスクドライブ番号とディスクアダプタ番号の組みを作ってもよい。このようにすると、例えば16分の1にデータテーブルの大きさを縮小することができる。
なお、このようなデータテーブルは、例えば図2におけるローカルメモリ202に格納され、プロセッサ201によって必要に応じて読み書きされる。
【0045】
図7は、ディスクアダプタ13a〜13dにおいて、入出力チャネル10a〜10dから要求されたデータブロック番号のデータが、ディスクドライブ14a〜14dのどのディスクドライブのどの位置に存在するかを記録したデータテーブルの形式の例である。
【0046】
データブロック番号、ディスクドライブ番号、ドライブ内データ位置、さらにはデータを送信した先の入出力チャネルを、送信先入出力チャネル番号として、これらを組みとして記録する。また未だ当該データブロック番号のデータをどの入出力チャネルにも送信したことがなければ、この送信先入出力チャネル番号としては、予め定める無効な入出力チャネル番号を記録しておく。あるいは、送信した入出力チャネルのキャッシュメモリが溢れて当該データが追い出され削除されたときにも、この送信先入出力番号として、無効な入出力チャネル番号を設定してもよい。
【0047】
このデータテーブルは、それぞれのディスクアダプタ13a〜13dにおいて、ディスクドライブ14a〜14dのうちのそれぞれのディスクアダプタ13a〜13dに接続されたディスクドライブに格納されているデータブロック番号の分だけ持てばよい。なお、このデータテーブルは、実際には例えば図3におけるローカルメモリ302に格納され、プロセッサ301によって必要に応じ読み書きされる。
【0048】
<コマンド形式>
キャッシュメモリに記憶しているデータに関する整合性確保処理において用いられる無効化コマンドと更新コマンドの、それぞれのコマンド形式について説明する。
【0049】
図8は、ディスクアダプタ13a〜13dにおいて、入出力チャネル10a〜10dのうちの一つに一旦送信したデータを他の入出力チャネル10a〜10dから要求されたときに、先に送った方の入出力チャネル10a〜10dのキャッシュメモリ11a〜11d内のデータを無効化するために当該入出力チャネル10a〜10dに向けて送信する無効化コマンドのコマンド形式の例である。無効化コマンドは、無効化コマンドコードと、無効化されるデータブロック番号からなる。
【0050】
図9は、同一データを持つ複数の入出力チャネル10a〜10d間である入出力チャネル10a〜10dのデータの書き換えが起こった場合に、これを当該ディスクアダプタ13a〜13dを通じてディスクドライブ14a〜14dに書き戻すと同時に、他の入出力チャネル10a〜10dのキャッシュメモリ11a〜11dのデータも書き換えて更新する場合に、図8の無効化コマンドに替えて、ディスクアダプタ13a〜13dより入出力チャネル10a〜10dに送信する更新コマンドのコマンド形式の例である。更新コマンドを表すコマンドコード、当該データブロック番号に加えて、新しくデータ内容を更新するための更新データからなる。
【0051】
<処理説明>
つぎに、ホストコンピュータから送られてくる、データ要求やデータ書き込み要求などのデータ入出力要求を受信した場合に行われるディスクアレイ装置1の処理について詳述する。
【0052】
図10は、ホストコンピュータからディスクアレイ装置1に送られてくるデータ入出力要求のデータフォーマットの一例を示す。ヘッダにはホストコンピュータのIDなどが設定される。ポートIDには、そのデータ入出力要求の処理対象となる論理ボリュームが接続するポートのポートIDが設定される。ここで論理ボリュームとは、ディスクドライブ14a〜14dの記憶領域上に区画設定された論理的な記憶領域である。LUN(Logical Unit Number)の欄には、当該データ入出力要求が対象とする論理ボリュームの識別子が設定される。アドレスの欄およびデータ長の欄は、例えば、データ入出力要求がデータ要求である場合に設定され、この場合、アドレスの欄には読み出し先のデータが格納されている論理ボリュームの先頭アドレスが設定され、また、データ長の欄には読み出し対象となるデータのデータ長が設定される。
【0053】
モードの欄には、そのデータ入出力要求に対するホストコンピュータへの応答処理と、各キャッシュメモリのデータの整合性確保処理の実行順を制御するためにディスクアレイ装置1に参照される値が設定される。この実施例では、モードの欄には、「0」または「1」のいずれかの値が設定されるものとする。
【0054】
なお、「0」は、例えば、そのデータ入出力要求の処理について、各キャッシュメモリに記憶しているデータの整合性を確保することよりも、ホストコンピュータに対する応答速度が要求される場合に設定される。また、「1」は、例えば、そのデータ入出力要求の処理について、各キャッシュメモリに記憶しているデータの整合性を確保する必要がある場合に設定される。
【0055】
<データ要求>
まず、ホストコンピュータから送信されてくるデータ入出力要求として、データ要求を受信した場合にディスクアレイ装置1において行われる処理を、図11に示すフローチャートとともに説明する。なお、ここではデータ要求を入出力チャネル10aが受信した場合について説明するが、他の入出力チャネル10b〜10dが受信した場合でも同様である。
【0056】
ホストコンピュータからデータ要求を受信(1110)した入出力チャネル10aは、まず、読み出し対象となるデータがキャッシュメモリ11a上に存在するかどうかを調べる(1112)。ここで存在する場合(1112:YES)には、入出力チャネル10aはそのデータをキャッシュメモリ11aから読み出して、これをホストコンピュータに送信する(1113)。
【0057】
一方、キャッシュメモリ11aに要求されたデータが存在しない場合(1112:NO)には、入出力チャネル10aはデータ要求で指定されているデータブロック番号に基づいて当該データが存在するディスクドライブに接続されているディスクアダプタ13a〜13dを決定し、データ要求をネットワークスイッチ12aまたは12bを用いてそのディスクアダプタ13a〜13dに送信する。ディスクアダプタ13aは、データ要求を受け取ると、そのデータブロック番号に基づいて具体的にデータが存在するディスクドライブ14a〜14d内のディスクドライブを決定し(1114)、そのディスクドライブからのデータの読み出しを開始する(1115)。
【0058】
ここでデータ要求のモードの欄の内容を調べ(1116)、モード欄に「0」が設定されていた場合(1116:YES)には、ディスクドライブから読み出したデータを入出力チャネル10aに送信(1117)した後、(1118)以下の処理に進む。
一方、モード欄に「1」が設定されていた場合(1116:NO)には、そのまま(1118)以下の処理に進む。
【0059】
(1118)では、ディスクアダプタ13aが、ここで要求されているデータを他の入出力チャネル10aとは別の入出力チャネル10b〜10dに以前に送信したことがあるかどうかを検索する。この検索は、具体的には、ディスクアダプタ13aにおいて、図7のデータテーブルの送信先入出力チャネル番号に、有効な入出力チャネルの番号が登録されているかどうかを検索することにより行われる。
【0060】
ここで他の入出力チャネルのキャッシュメモリに送ったことがない場合には、(1125)へ進む。一方、他の入出力チャネルのキャッシュメモリに送ったことがある場合には、その入出力チャネルに図8に示した無効化コマンドを送信し(1120)、当該データをその入出力チャネルのキャッシュから削除させる。
【0061】
この際その入出力チャネルのキャッシュメモリにおいて当該データの書き換えが生じてまだその書き換えられたデータがディスクドライブに書き戻していなかったかどうか判定される(1121)。この判定は、具体的には図4または図5における書き換えビットD 402または502を検査することにより行われる。書き戻していない場合には、その入出力チャネルにおいて書き戻していないデータをそのキャッシュメモリから読み出し、当該ディスクアダプタに返送させる。そして、当該ディスクアダプタは、(1115)で開始したディスクドライブからのデータの読み出しが完了するのを待って、ディスクドライブから読み出されたデータの上に、入出力チャネルから返送されてきた書き換えデータを上書きする(1122)。
【0062】
つぎにディスクアダプタは、その入出力チャネルから無効化処理完了信号が送信されてくるのを待ち、無効化されたことの確認を行う(1123)。
【0063】
つぎに図7に示したデータテーブルにおいて、送信先入出力チャネル番号に予め定める無効なチャネル番号を設定することで、データ送信先の記録を削除する(1124)。なお、この後この送信先入出力チャネル番号には、後述する(1125)で新たにデータを送信した入出力チャネル番号を記録するので、この(1124)の処理はなくてもよい。
【0064】
つぎに、(1110)新たにデータを要求してきた入出力チャネルのキャッシュメモリにデータを送信することを決定し、この入出力チャネルを記録する。具体的には、この記録は、図7のようなデータテーブルの送信先入出力チャネル番号に有効なチャネル番号で記録することにより行われる。
【0065】
つぎに、もしまだ(1115)で開始したディスクドライブの読み出しが完了していなかった場合には、読み出しが完了するまで待ち、読み出したデータを当該入出力チャネルに送信して、その入出力チャネルに接続されたキャッシュメモリに格納させる(1126)。
【0066】
つぎにディスクアダプタは、データ要求のモードの欄の内容を調べ(1127)、モード欄に「1」が設定されていた場合(1127:YES)には、ディスクドライブから読み出したデータを入出力チャネル10aに送信(1128)した後、(1129)以下の処理に進む。一方、モード欄に「0」が設定されていた場合(1127:NO)には、そのまま(1129)以下の処理に進む。
【0067】
(1129)では、(1122)を通過し、ディスクドライブから読み出したデータに対して上書きが生じたかどうかを判定する。もし上書きが生じた場合には、上書きされたデータを当該ディスクドライブへ書き戻す(1130)。
【0068】
なお、以上の処理において、モード欄の設定値が「1」であった場合、すなわち、ホストコンピュータに応答を返すより前に無効化処理を行う場合には、ディスクドライブからのデータの読み出し(1115)の処理を、(1122)や(1126)の処理完了までに完了することにより、すなわち、これらの処理をオーバーラップさせて処理するようにし、処理速度の向上を図るようにしてもよい。
【0069】
以上に説明したように、この実施例では、(1116)において、モード欄に「0」が設定されている場合には、ディスクドライブから読み出したデータを先にホストコンピュータに送信した後に、(1118)に後続する処理を実行する。すなわち、そのデータ入出力要求のモード欄に「0」が設定されている場合には、各キャッシュメモリに記憶しているデータに関する整合性を確保するために必要となる(1118)〜(1130)の処理は、ディスクアレイ装置1からホストコンピュータへの応答処理が行われた後で行われることとなり、これによりホストコンピュータに対する応答速度が向上する。
【0070】
従って、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、整合性を確保する必要がなかったり、また、必要があるとしてもさほど厳密性が要求されないような場合には、そのようなソフトウエアからのデータ入出力要求のモード欄に「0」を設定しておくことで、このようなデータ入出力要求についてはホストコンピュータに対する応答速度を向上させることができる。
【0071】
とくに、(1120)などの無効化に関する処理では、無効化要求や無効化がされたことの確認のための通信がスイッチを介して行われ、ホストコンピュータへの応答速度を低下させる要因となるが、このように無効化処理が事後的に行われることで、ホストコンピュータに対する応答速度が改善されることになる。
【0072】
なお、図11では、(1118)の前にモード「0」の判定とホストコンピュータへの送信処理(1116,1117)を行うようにしているが、これらの処理は、例えば(1118)と(1119)の間や(1119)と(1120)の間で行っても良い。つまり、各キャッシュメモリに記憶しているデータに関する整合性を確保するために必要となる処理のうち、ホストコンピュータへの応答速度を低下させる主因となる処理が行われるよりも前に、ホストコンピュータに応答を返す構成であれば、ホストコンピュータへの応答速度の向上が期待できることになる。
【0073】
<データ書き込み要求>
つぎに、ホストコンピュータから送信されてくるデータ入出力要求として、データ書き込み要求を受信した場合にディスクアレイ装置1において行われる処理について説明する。なお、ここではデータ書き込み要求を入出力チャネル10aが受信した場合について説明するが、他の入出力チャネル10b〜10dが受信した場合でも同様である。
【0074】
図12に示すフローチャートは、ディスクアダプタ13a〜13dが、入出力チャネル10a〜10dのうちの一つに一旦送信したデータを他の入出力チャネル10a〜10dから要求されたときに、先に送った方の入出力チャネル10a〜10dのキャッシュメモリ11a〜11d内のデータを無効化するための無効化信号を該当の入出力チャネル10a〜10dに向けて送信することで各キャッシュメモリ11a〜11dのデータに関する整合性を確保するようにしている場合に、この整合性確保の処理とホストコンピュータへの完了通知との実行順を、データ入出力要求の内容であるモードに応じて制御するようにした場合のディスクアレイ装置1の処理についての実施例を説明している。
【0075】
ホストコンピュータからデータ書き込み要求を受信(1211)した入出力チャネル10aは、そのデータ書き込み要求のモードの欄の内容を調べる(1212)。ここでモードの欄に「0」が設定されていた場合(1212:YES)、当該入出力チャネル10aのキャッシュメモリ11aへの書き込みを許可して書き込みデータをキャッシュメモリ11aに書き込み(1213)、書き込み完了通知をホストコンピュータに送信する(1214)。一方、(1212)において、モード欄に「1」が設定されていた場合(1212:NO)には、入出力チャネル10aはすぐにキャッシュメモリ11aにデータを書き込まず、(1215)に進む。
【0076】
つぎに、入出力チャネル10aは、書き込み要求があったことを該当のディスクアダプタ13a〜13dに通知し、通知を受けたディスクアダプタは、書き込み要求があった入出力チャネル10a以外に、当該データを送信した入出力チャネルのキャッシュメモリがあったかどうかを検索する(1215)。ここでもし他に送信した入出力チャネルのキャッシュメモリがなければ(1216:NO)、(1220)に進む。一方、他に送った入出力チャネルのキャッシュメモリがあれば、それらの入出力チャネルのすべてのキャッシュメモリを対象として該当の入出力チャネルに無効化要求を送信する(1217)。ここでこの無効化要求には、例えば図8に示した、無効化コマンドを用いることができる。
無効化されたことが確認されたら(1218)、無効化したキャッシュメモリの入出力チャネル番号を、送信先入出力チャネル番号の記録から削除する(1219)。
【0077】
つぎに(1220)では、そのデータ書き込み要求のモード欄の内容を調べる。ここでモード欄に「1」が設定されている場合には、(1221)に進み、書き込み要求を受け取った入出力チャネル10aのキャッシュメモリ11aへの書き込みを許可し、ホストコンピュータからの書き込みデータを受信してキャッシュメモリ11aへの書き込みを行い(1221)、また、書き込み完了通知をホストコンピュータに送信する(1222)。そして、キャッシュメモリ11aに書き込んだデータを当該入出力チャネル10aより該当のディスクアダプタ13a〜13dに送信し、ディスクドライブ14a〜14dにも書き戻しを行わせる(1223)。
他方、(1220)においてモード欄に「0」が設定されていた場合には(1221)に相当する処理は既に(1213)にて行われているので(1223)に進む。
【0078】
以上に説明したように、この実施例のディスクアレイ装置1は、モード欄に「0」が設定されている場合には、ディスクドライブ14a〜14dから読み出したデータを、先にホストコンピュータに送信してしまった後に、整合性確保に関する処理を実行する。すなわち、そのデータ入出力要求にモードが「0」が設定されている場合には、整合性確保に関する処理は、ディスクアレイ装置1からホストコンピュータへの応答処理が行われた後に事後的に行われることとなり、ホストコンピュータに対する応答速度の向上が図られる。
【0079】
従って、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、整合性を確保する必要が無かったり、また、必要があるとしても厳密性が要求されないような場合には、そのようなソフトウエアからのデータ入出力要求のモード欄には「0」を設定しておけば、このようなデータ入出力要求についてはホストコンピュータに対する応答速度を向上させることができる。
【0080】
図13に示すフローチャートは、ある入出力チャネル10a〜10dに対応するキャッシュメモリ11a〜11dのデータの書き換えが生じた場合に、これをディスクアダプタ13a〜13dを通じてディスクドライブ14a〜14dに書き戻すと同時に、他の入出力チャネル10a〜10dのキャッシュメモリ11a〜11dのデータを書き換えて更新することで各キャッシュメモリ11a〜11dのデータに関する整合性を確保するようにしている場合に、この整合性確保の処理とホストコンピュータへの完了通知との実行順を、データ入出力要求の内容であるモードに応じて制御するようにした場合のディスクアレイ装置1の処理についての実施例を説明している。
【0081】
ホストコンピュータからデータ書き込み要求を受信(1311)した入出力チャネル10aは、当該入出力チャネル10aのキャッシュメモリ11aへの書き込みを許可して書き込みデータをキャッシュメモリ11aに書き込む(1312)。
【0082】
つぎに、そのデータ書き込み要求のモードの欄の内容を調べ(1313)、モードの欄に「0」が設定されていた場合(1313:YES)には、書き込み完了通知をホストコンピュータに送信する(1314)。一方、(1313)において、モード欄に「1」が設定されていた場合(1313:NO)には(1315)に進む。
【0083】
(1315)では、適宜なタイミングで当該入出力チャネル10aから書き込みデータを該当のディスクアダプタ13a〜13dに送信し、キャッシュメモリ11aに書き込んだデータを元のディスクドライブ14a〜14dにも書き戻す(1315)。
【0084】
つぎに、ディスクアダプタ13a〜13dは、書き込みが行われた入出力チャネル10a以外に、以前にそのデータを送信した入出力チャネルのキャッシュメモリがあったかどうかを検索する(1316)。もし他に送った入出力チャネルのキャッシュメモリがあれば(1317:YES)、(1318)に進む。無ければ(1319)に進む。
【0085】
(1318)では、当該データをもつ他の入出力チャネルのキャッシュメモリのすべてに当該ディスクアダプタからディスクドライブに書き込んだ書き込みデータを送信し、データの変更を行わせる。
【0086】
(1319)では、データ書き込み要求のモードの欄の値を調べ、モードの欄に「1」が設定されていた場合(1319:YES)には、書き込み完了通知をホストコンピュータに送信する(1320)。一方、モードの欄に「0」が設定されていた場合(1320:NO)には、完了報告は既に(1314)で行っているのでここでは行わない。
【0087】
以上のように、この実施例では、モード欄に「0」が設定されている場合には、ディスクドライブ14a〜14dから読み出したデータを、先にホストコンピュータに送信してしまった後に、整合性確保に関する処理を実行する。すなわち、モードの欄に「0」が設定されている場合には、整合性確保に関する処理は、ディスクアレイ装置1からホストコンピュータへの応答処理が行われた後で行われ、整合性確保に関する処理よりも前にホストコンピュータへの応答がされることになるので、ホストコンピュータへの応答速度が向上することになる。
【0088】
このため、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、各キャッシュメモリ間でのデータに関する整合性を確保する必要が無かったり、また、必要があるとしてもさほど厳密性が要求されないような場合には、そのようなソフトウエアからのデータ入出力要求のモード欄に「0」を設定しておくことで、ホストコンピュータに対する応答速度を向上させることができる。
【0089】
<他の実施形態>
前述の実施例では、データ入出力要求のモード欄の値に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と、各キャッシュメモリ11a〜11dのデータに関する整合性確保処理の実行順を制御するようにしているが、モード欄に代えて、データ入出力要求に記述されているLUNの値に応じて処理の切り替えを行うようにすることもできる。
【0090】
具体的には、例えば、図11〜図13に示したフローチャートにおけるモード欄の値により実行制御を行っている部分において、モード欄の値に代えて、LUNを参照するようにし、LUNの値に応じて処理を分岐させるようにする。なお、モード欄の設定値やLUNごとに前記実行順をどのように制御するかを、例えば、オペレータがディスクアレイ装置1の管理用端末を操作して設定できるようにすることもできる。
【0091】
また、最近のディスクアレイ装置の中には、アベイラビリティの向上や、ディザスタリカバリ性能の向上などを目的として、ディスクアレイ装置がデータ入出力要求に応じて自身の論理ボリュームに管理しているデータの内容を、遠隔地などに設置され当該ディスクアレイ装置に接続する他のディスクアレイ装置にも記憶する機能(「リモートコピー機能」と称されることもある)を備えるものが存在する。
【0092】
そして、この機能の実現方式として、ディスクアレイ装置1が備える入出力チャネルに他のディスクアレイ装置を通信可能に接続し、各入出力チャネルを自身のディスクドライブに書き込ませる動作モード(以下、「ノーマルモード」と称する)で動作させるか、他のディスクアレイ装置にデータ入出力要求を送信させる動作モード(以下、「コピーモード」と称する)で動作させるかをホストコンピュータからディスクアレイ装置1に送信するコマンドにより切り替えられるようにし、ホストコンピュータから入出力チャネルの動作モードを切り替えるようにしていることがある。
【0093】
ここでこのような方式で前記機能が実現されている場合には、データ入出力要求を受信した入出力チャネルが、いずれの動作モードで動作しているかに応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と、各キャッシュメモリのデータに関する整合性確保処理の実行順を制御するようにすることが考えられる。すなわち、例えば、コピーモードで動作している入出力チャネルで受信したデータ入出力要求については、ホストコンピュータへの応答を優先させて、整合性確保のための処理は後で行うようにし、また、ノーマルモードで動作している入出力チャネルで受信したデータ入出力要求については、整合性確保のための処理を優先させ、その後でホストコンピュータへの応答を行うようにする。
【0094】
つまり、コピーモードで動作中の入出力チャネルで受信したデータ入出力要求の処理は、ノーマルモードで動作中の入出力チャネルで受信したデータ入出力要求の処理に比べて整合性確保の必要性が少ないことが多いと考えられ、このような場合には、この仕組みを適用することでホストコンピュータへの応答速度を向上させることができる。
【0095】
以上、本発明に係るディスクアレイ装置等について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【0096】
【発明の効果】
本発明によれば、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムを提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例による、ストレージシステムの概略構成を示す図である。
【図2】本発明の一実施例による入出力チャネルの構成を示す図である。
【図3】本発明の一実施例によるディスクアダプタの構成を示す図である。
【図4】本発明の一実施例によるキャッシュメモリの構成を示す図である。
【図5】本発明の一実施例によるキャッシュメモリの構成を示す図である。
【図6】本発明の一実施例によるデータテーブルの形式を示す図である。
【図7】本発明の一実施例によるデータテーブルの形式を示す図である。
【図8】本発明の一実施例による無効化コマンドのコマンド形式を示す図である。
【図9】本発明の一実施例による、更新コマンドのコマンド形式を示す図である。
【図10】本発明の一実施例による、データ入出力要求のデータフォーマットを示す図である。
【図11】本発明の一実施例による、データ要求を受信した場合にディスクアレイ装置において行われる処理を説明するフローチャートを示す図である。
【図12】本発明の一実施例による、データ書き込み要求を受信した場合にディスクアレイ装置において行われる処理を説明するフローチャートを示す図である。
【図13】本発明の一実施例による、データ書き込み要求を受信した場合にディスクアレイ装置において行われる処理を説明するフローチャートを示す図である。
【符号の説明】
1 ディスクアレイ装置
10a〜10d 入出力チャネル
11a〜11d キャッシュメモリ
12a、12b ネットワークスイッチ
13a〜13d ディスクアダプタ
14a〜14d ドライブ群
201、301 プロセッサ
202、302 ローカルメモリ
203a、203b、303a、303b ネットワーク接続回路
204 ホストI/F回路
304 ディスクドライブI/F回路
305 プロセッサバス
40、50 検索制御部
41 メモリ部
411、511 アドレスバス
412、512 返答信号バス
413、513 データバス
414、514 制御コマンドバス
51 タグ部
52 データ部
515 データ位置信号
Claims (12)
- 外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
を備えることを特徴とするディスクアレイ装置。 - 外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行する手段と、
前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御する手段と、
を備えることを特徴とするディスクアレイ装置。 - 請求項2に記載のディスクアレイ装置において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶しているデータを無効化する処理が含まれること、
を特徴とする請求項2に記載のディスクアレイ装置。 - 請求項2に記載のディスクアレイ装置において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、当該キャッシュメモリの当該データを更新するとともに、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶されているデータについても更新する処理が含まれること、
を特徴とする請求項2に記載のディスクアレイ装置。 - 請求項2に記載のディスクアレイ装置において、
前記ディスクドライブの記憶領域上には区画設定された論理的な記憶領域である複数の論理ボリュームが設定され、
前記データ入出力要求には当該データ入出力要求の処理対象となる論理ボリュームの識別子が設定され、
前記実行順の制御を、前記データ入出力要求に設定されている前記論理ボリュームの識別子に応じて行う手段を備えること、
を特徴とする請求項2に記載のディスクアレイ装置。 - 請求項2に記載のディスクアレイ装置において、
他のディスクアレイ装置と接続する手段と、
データ入出力要求としてデータ書き込み要求を受信した場合に、この要求で指定されるデータを自身のディスクドライブに書き込むとともにそのデータについての書き込み要求を前記他のディスクアレイ装置に送信する手段を備え、
前記入出力チャネルは、データ書き込み要求を受信した場合に、
自身のディスクドライブにデータを書き込む動作モードと、
他のディスアレイ装置に前記書き込み要求を送信する動作モードと、
のいずれかのモードで動作し、
前記実行順の制御を、前記外部装置からのデータ入出力要求が入力される前記入出力チャネルが、前記いずれの動作モードで動作しているかに応じて行う手段と、を備えること、
を特徴とする請求項2に記載のディスクアレイ装置。 - 外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行する手段と、
を備えるディスクアレイ装置の制御方法において、
前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御すること、
を特徴とするディスクアレイ装置の制御方法。 - 請求項7に記載のディスクアレイ装置の制御方法において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶しているデータを無効化する処理が含まれること、
を特徴とする請求項7に記載のディスクアレイ装置の制御方法。 - 請求項7に記載のディスクアレイ装置の制御方法において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、当該キャッシュメモリの当該データを更新するとともに、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶されているデータについても更新する処理が含まれること、
を特徴とする請求項7に記載のディスクアレイ装置の制御方法。 - 請求項7に記載のディスクアレイ装置の制御方法において、
前記ディスクドライブの記憶領域上には区画設定された論理的な記憶領域である複数の論理ボリュームが設定され、
前記データ入出力要求には当該データ入出力要求の処理対象となる論理ボリュームの識別子が設定され、
前記実行順の制御は、前記データ入出力要求に設定されている前記論理ボリュームの識別子に応じて行われることを特徴とする請求項7に記載のディスクアレイ装置の制御方法。 - 請求項7に記載のディスクアレイ装置の制御方法において、
ディスクアレイ装置には他のディスクアレイ装置が接続し、
ディスクアレイ装置は、データ入出力要求としてデータ書き込み要求を受信した場合に、この要求で指定されるデータを自身のディスクドライブに書き込むとともにそのデータについての書き込み要求を前記他のディスクアレイ装置に送信し、
前記入出力チャネルは、データ書き込み要求を受信した場合に、
自身のディスクドライブにデータを書き込む動作モードと、
他のディスアレイ装置に前記書き込み要求を送信する動作モードと、
のいずれかのモードで動作し、
前記実行順の制御は、前記外部装置からのデータ入出力要求が入力される前記入出力チャネルが、前記いずれの動作モードで動作しているかに応じて行われることを特徴とする請求項7に記載のディスクアレイ装置の制御方法。 - 外部装置と、外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、ディスクドライブと、ディスクドライブに対してデータ入出力を行うディスク制御手段と、入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行するディスクアレイ装置とを備え、
前記ディスクアレイ装置が、前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御する手段を備えること、
を特徴とするストレージシステム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002303524A JP4439798B2 (ja) | 2002-10-17 | 2002-10-17 | ディスクアレイ装置の制御方法、及びディスクアレイ装置 |
US10/628,782 US7139880B2 (en) | 2002-10-17 | 2003-07-28 | Disk array device, method for controlling the disk array device and storage system |
US11/331,083 US7133976B2 (en) | 2002-10-17 | 2006-01-13 | Disk array device, method for controlling the disk array device and storage system |
US11/545,514 US7287125B2 (en) | 2002-10-17 | 2006-10-11 | Disk array device, method for controlling the disk array device and storage system |
US11/896,657 US7487298B2 (en) | 2002-10-17 | 2007-09-05 | Disk array device, method for controlling the disk array device and storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002303524A JP4439798B2 (ja) | 2002-10-17 | 2002-10-17 | ディスクアレイ装置の制御方法、及びディスクアレイ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004139353A true JP2004139353A (ja) | 2004-05-13 |
JP4439798B2 JP4439798B2 (ja) | 2010-03-24 |
Family
ID=32089390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002303524A Expired - Fee Related JP4439798B2 (ja) | 2002-10-17 | 2002-10-17 | ディスクアレイ装置の制御方法、及びディスクアレイ装置 |
Country Status (2)
Country | Link |
---|---|
US (4) | US7139880B2 (ja) |
JP (1) | JP4439798B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4439798B2 (ja) * | 2002-10-17 | 2010-03-24 | 株式会社日立製作所 | ディスクアレイ装置の制御方法、及びディスクアレイ装置 |
JP4429703B2 (ja) * | 2003-11-28 | 2010-03-10 | 株式会社日立製作所 | ディスクアレイ装置及びディスクアレイ装置の制御方法 |
US7257732B2 (en) * | 2004-02-13 | 2007-08-14 | Kaleidescape, Inc. | Integrating content-laden media with storage system |
JP2005301565A (ja) | 2004-04-09 | 2005-10-27 | Hitachi Ltd | ディスクアレイ装置およびディスクアレイ装置の診断制御方法 |
CN100342352C (zh) * | 2005-03-14 | 2007-10-10 | 北京邦诺存储科技有限公司 | 一种可扩充的高速存储网络缓存系统 |
US8108605B2 (en) * | 2009-04-13 | 2012-01-31 | Kabushiki Kaisha Toshiba | Data storage system and cache data—consistency assurance method |
US8954666B2 (en) * | 2009-05-15 | 2015-02-10 | Hitachi, Ltd. | Storage subsystem |
US10318426B1 (en) * | 2011-09-27 | 2019-06-11 | EMC IP Holding Company LLC | Cloud capable storage platform with computation operating environment for storage and generic applications |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
JPH04336340A (ja) | 1991-05-14 | 1992-11-24 | Nec Corp | ディスクキャッシュアクセス制御方式 |
JP2855409B2 (ja) * | 1994-11-17 | 1999-02-10 | 日本アイ・ビー・エム株式会社 | 自然言語処理方法及びシステム |
US5761531A (en) | 1995-06-30 | 1998-06-02 | Fujitsu Limited | Input/output control apparatus and method for transfering track data from cache module to channel unit during the staging of the data track from device adapter |
US5875462A (en) * | 1995-12-28 | 1999-02-23 | Unisys Corporation | Multi-processor data processing system with multiple second level caches mapable to all of addressable memory |
JP3776496B2 (ja) | 1996-01-17 | 2006-05-17 | 株式会社日立製作所 | データ記憶システム |
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 |
JPH1063576A (ja) | 1996-08-27 | 1998-03-06 | Hitachi Ltd | 階層ディスク装置およびその制御方法 |
US6073218A (en) * | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
US5930821A (en) * | 1997-05-12 | 1999-07-27 | Integrated Device Technology, Inc. | Method and apparatus for shared cache lines in split data/code caches |
US6275897B1 (en) * | 1997-06-17 | 2001-08-14 | Emc Corporation | Remote cache utilization for mirrored mass storage subsystem |
US6311252B1 (en) * | 1997-06-30 | 2001-10-30 | Emc Corporation | Method and apparatus for moving data between storage levels of a hierarchically arranged data storage system |
JP4252139B2 (ja) * | 1998-12-16 | 2009-04-08 | 株式会社日立製作所 | 記憶装置システム |
JP3358655B2 (ja) * | 1998-12-22 | 2002-12-24 | 日本電気株式会社 | ディスクアレイ装置におけるキャッシュメモリ管理方法 |
US6321298B1 (en) * | 1999-01-25 | 2001-11-20 | International Business Machines Corporation | Full cache coherency across multiple raid controllers |
JP4294142B2 (ja) * | 1999-02-02 | 2009-07-08 | 株式会社日立製作所 | ディスクサブシステム |
JP4461511B2 (ja) * | 1999-06-09 | 2010-05-12 | 株式会社日立製作所 | ディスクアレイ装置及びディスク装置へのデータ読み出し/書き込み方式 |
JP2001290790A (ja) | 2000-04-06 | 2001-10-19 | Hitachi Ltd | ディスク制御装置 |
JP4053208B2 (ja) | 2000-04-27 | 2008-02-27 | 株式会社日立製作所 | ディスクアレイ制御装置 |
JP4543532B2 (ja) | 2000-10-06 | 2010-09-15 | ソニー株式会社 | 情報通信システム |
JP2002123479A (ja) | 2000-10-17 | 2002-04-26 | Hitachi Ltd | ディスク制御装置およびそのキャッシュ制御方法 |
US6792507B2 (en) * | 2000-12-14 | 2004-09-14 | Maxxan Systems, Inc. | Caching system and method for a network storage system |
US7107337B2 (en) * | 2001-06-07 | 2006-09-12 | Emc Corporation | Data storage system with integrated switching |
US6675264B2 (en) * | 2001-05-07 | 2004-01-06 | International Business Machines Corporation | Method and apparatus for improving write performance in a cluster-based file system |
JP4209108B2 (ja) * | 2001-12-20 | 2009-01-14 | 株式会社日立製作所 | 記憶装置の制御方法およびこの方法に用いる記憶装置、ディスクアレイ装置、及びディスクコントローラ |
JP3964212B2 (ja) * | 2002-01-16 | 2007-08-22 | 株式会社日立製作所 | 記憶装置システム |
JP2003242097A (ja) * | 2002-02-15 | 2003-08-29 | Hitachi Ltd | クロスコール機能を備えるディスク制御装置 |
US6757790B2 (en) * | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
US6912669B2 (en) * | 2002-02-21 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for maintaining cache coherency in a storage system |
JP4219602B2 (ja) * | 2002-03-01 | 2009-02-04 | 株式会社日立製作所 | 記憶制御装置および記憶制御装置の制御方法 |
JP2003296034A (ja) * | 2002-04-08 | 2003-10-17 | Hitachi Ltd | ディスクサブシステムとその制御方法 |
JP2003345520A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | ディスクアレイ・システム及びディスクアレイ・システムにおけるキャッシュ制御方法 |
JP3933027B2 (ja) * | 2002-10-17 | 2007-06-20 | 日本電気株式会社 | ディスクアレイ装置におけるキャッシュメモリ分割管理方式 |
JP4439798B2 (ja) * | 2002-10-17 | 2010-03-24 | 株式会社日立製作所 | ディスクアレイ装置の制御方法、及びディスクアレイ装置 |
-
2002
- 2002-10-17 JP JP2002303524A patent/JP4439798B2/ja not_active Expired - Fee Related
-
2003
- 2003-07-28 US US10/628,782 patent/US7139880B2/en not_active Expired - Fee Related
-
2006
- 2006-01-13 US US11/331,083 patent/US7133976B2/en not_active Expired - Fee Related
- 2006-10-11 US US11/545,514 patent/US7287125B2/en not_active Expired - Fee Related
-
2007
- 2007-09-05 US US11/896,657 patent/US7487298B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7133976B2 (en) | 2006-11-07 |
US7287125B2 (en) | 2007-10-23 |
US20080016285A1 (en) | 2008-01-17 |
US20060117142A1 (en) | 2006-06-01 |
US20040078517A1 (en) | 2004-04-22 |
US20070033342A1 (en) | 2007-02-08 |
US7139880B2 (en) | 2006-11-21 |
JP4439798B2 (ja) | 2010-03-24 |
US7487298B2 (en) | 2009-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102002830B1 (ko) | 세그먼트 클리닝 장치 및 방법 | |
JP5400875B2 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム | |
US7426588B2 (en) | Storage apparatus | |
KR20170088743A (ko) | 이중화 저장 블록들 및 분산 소프트웨어 스택들을 위한 동적 가비지 컬렉션 p/e 정책들 | |
US7392341B2 (en) | Disk array system and cache control method | |
US7487298B2 (en) | Disk array device, method for controlling the disk array device and storage system | |
JP2005258918A (ja) | ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法 | |
JP6406707B2 (ja) | 半導体記憶装置 | |
JP7010809B2 (ja) | デデュープ可能なメモリキャッシュ及びそのための動作方法 | |
US9959046B2 (en) | Multi-streaming mechanism to optimize journal based data storage systems on SSD | |
JP5443998B2 (ja) | 不揮発性記憶装置、ホスト装置、不揮発性記憶システム、データ記録方法、およびプログラム | |
CN107329704A (zh) | 一种缓存镜像方法及控制器 | |
KR100388338B1 (ko) | 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치 | |
US20110238915A1 (en) | Storage system | |
JP4936088B2 (ja) | ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法 | |
JP2010122898A (ja) | 追記型メモリデバイス | |
JP4076316B2 (ja) | 不揮発性キャッシュメモリを用いたデータ書き込みシステム | |
JP2013029911A (ja) | 制御装置、制御方法およびストレージ装置 | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
US20240168681A1 (en) | Solving submission queue entry overflow with shadow submission queue | |
JP3940701B2 (ja) | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 | |
JPH10254781A (ja) | 補助記憶装置 | |
JP2023044994A (ja) | メモリシステム | |
JP2019016377A (ja) | 半導体記憶装置の制御方法 | |
JP2001209577A (ja) | 情報記録再生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040928 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051003 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20051003 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20051003 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080811 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090811 |
|
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: 20100105 |
|
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: 20100106 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130115 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140115 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |