(57)【要約】【課題】ストレージシステムの入出力処理の高性能化を図ることにある。【解決手段】ディスク装置２と、上位装置からの要求を受付け、ディスク装置２に対するデータの入出力を制御する、ディスクコントローラ１００とを備えるストレージシステムのディスクコントローラ１００に、ＭＰＵ１５０１（１５０１）毎に専用の、メモリ１６０１（１６０２）、上位ＩＦ（１１０１）、および下位ＩＦ（１２０１）を設ける。【選択図】図１
2005267545.tif 000002
【特許請求の範囲】
【請求項１】
ディスク装置と、上位装置からの要求を受付け、前記ディスク装置に対するデータの入出力を制御する、複数のプロセッサを有するディスクコントローラとを備えるストレージシステムであって、
前記ディスクコントローラは、
ストレージシステムの動作プログラムを格納する複数のメモリと、
前記上位装置との間のデータの入出力を制御する複数の上位インタフェースと、
前記ディスク装置との間のデータの入出力を制御する複数の下位インタフェースとを有し、
前記メモリ、前記上位インタフェース、および前記下位インタフェースは、各々、前記プロセッサ毎に、専用に設けられていて、
前記複数のプロセッサは、各々、前記専用に設けられたメモリにアクセスして前記動作プログラムを実行して、前記専用に設けられた上位インタフェースおよび下位インタフェースを制御して、前記上位装置から要求される入出力処理を行なうこと
を特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記ディスクコントローラは、
前記上位装置と送受信するためのデータを格納するキャッシュメモリであって、前記複数のプロセッサが共有して使用するキャッシュメモリと、
前記プロセッサからの要求に応じて、キャッシュメモリに格納されたデータの転送を制御するデータ転送制御部と、を有すること
を特徴とするストレージシステム。
【請求項３】
ディスク装置と、上位装置からの要求を受付け、前記ディスク装置に対するデータの入出力を制御する、複数のディスクコントローラとを備えるストレージシステムであって、
前記複数のディスクコントローラは、各々、
ストレージシステムの動作プログラムを格納するメモリ、前記上位装置との間のデータの入出力を制御する上位インタフェース、前記ディスク装置との間のデータの入出力を制御する下位インタフェース、および前記動作プログラムを実行して、前記上位インタフェース、前記下位インタフェースを制御して、前記上位装置から要求される入出力処理を行なうプロセッサを有する、複数の入出力処理部と、
前記上位装置と行う入出力処理のためのデータを格納するキャッシュメモリであって、前記複数の入出力処理部が共有して使用するキャッシュメモリと、
前記入出力処理部からの要求に応じて、前記キャッシュメモリに格納されたデータの転送を制御するデータ転送制御部と、を有すること
を特徴とするストレージシステム。
【請求項４】
請求項３に記載のストレージシステムであって、
同一の前記ディスクコントローラ内の入出力処理部は、前記ディスク装置に共通のアクセス経路を介して接続されていること
を特徴とするストレージシステム。
【請求項５】
請求項３に記載のストレージシステムであって、
前記ディスクコントローラは、
前記複数の入出力処理部が同じディスク装置に接続される第１のモード、および、前記複数の入出力部が、各々、異なるディスク装置に接続される第２のモードの２つのモードに設定可能に構成されていること
を特徴とするストレージシステム。
【請求項６】
請求項３〜５のいずれか一項に記載のストレージシステムであって、
前記入出力処理部は、自身が属するディスクコントローラのキャッシュメモリのデータを書き込む際に、他のディスクコントローラのキャッシュメモリについても同様の内容のデータを書き込み、各ディスクコントローラのキャッシュメモリに格納されるデータの同一化を図ること
を特徴とするストレージシステム。
【請求項７】
ディスク装置と、上位装置からの要求を受付け、前記ディスク装置に対するデータの入出力を制御するディスクコントローラとを備えるストレージシステムであって、
前記ディスクコントローラは、
ストレージシステムの動作プログラムを格納するメモリと、
前記上位装置との間のデータの入出力を制御する上位インタフェースと、
前記ディスク装置との間のデータの入出力を制御する下位インタフェースと、
前記上位装置と送受信するためのデータ、および、前記ディスク装置の構成を示すデータを格納するキャッシュメモリと、
前記キャッシュメモリに格納されたデータの転送を制御するデータ転送制御部と、
前記動作プログラムを実行して、前記上位インタフェース、前記下位インタフェース、および前記転送制御部を制御して、前記上位装置から要求される入出力処理を行なうプロセッサと、を有する、複数の入出力処理モジュールを有し、
前記入出力処理モジュールは、前記ディスクコントローラから着脱可能に構成されていること
を特徴とするストレージシステム。
【請求項８】
請求項７に記載のストレージシステムであって、
前記複数の入出力処理モジュールを同じディスク装置に接続する第１のモード、および、前記複数の入出力モジュールを、各々、異なるディスク装置に接続する第２のモードの２つのモードが設定可能に構成されていること
を特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムの技術に関し、特にコントローラに複数のプロセッサを搭載したストレージシステムを高性能化する技術に関する。
【背景技術】
【０００２】
従来から、計算機システムの性能を向上するための手段として、対称型マルチプロセシング技術(ＳＭＰ（Symmetric Multi Processing)）を用いたマルチプロセッサの構成が知られている（例えば特許文献１）。特許文献１では、複数のプロセッサがメモリなどの計算機資源を共有することで、並列処理を可能にしている。
【０００３】
【特許文献１】特開２００３−００６１７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、大量の電子データを管理するシステムに、ディスクアレイ装置に代表されるストレージシステムがある。ストレージシステムでは、データの入出力処理の高速化等の高性能化が求められている。そして、ストレージシステムの高性能化を図るために、ストレージシステムのディスクコントローラに、上記特許文献１のＳＭＰの技術を適用することも考えられる。
【０００５】
しかしながら、上記特許文献１の技術をストレージシステムに適用した場合に、以下の問題がある。具体的には、上記特許文献１は、各プロセッサのアクセスするメモリを共有化している。そのため、特許文献１では、複数のプロセッサがデータの入出力等の処理を実行する際、共有メモリへのアクセスに競合が生じるという問題がある。
【０００６】
また、上記特許文献１に記載のＳＭＰではメモリアクセスの高速化のため、各プロセッサがそれぞれキャッシュを持っている。そして、上記特許文献１では、共有メモリのデータ更新の度に各プロセッサのキャッシュに格納されたデータの整合性を取っている。そのため、上記特許文献１では、キャッシュに格納されたデータの整合性を取る処理により、オーバヘッドが生じることがある。
【０００７】
このように、上記特許文献１の技術をストレージシステムに適用した場合、プロセッサの性能を最大限に引き出すことができないという問題がある。
【０００８】
そこで、本発明の目的は、ストレージシステムのデータ入出力処理の高性能化を図ることにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の一態様は、ディスク装置と、上位装置からの要求を受付け、前記のディスク装置に対するデータの入出力を制御する、複数のプロセッサを有するディスクコントローラとを備えるストレージシステムに適用される。
【００１０】
前記ディスクコントローラは、ストレージシステムの動作プログラムを格納する複数のメモリと、前記上位装置との間のデータの入出力を制御する複数の上位インタフェースと、前記ディスク装置との間のデータの入出力を制御する複数の下位インタフェースとを有する。そして、前記メモリ、前記上位インタフェース、および前記下位インタフェースは、各々、前記プロセッサ毎に、専用に設けられていて、前記複数のプロセッサは、各々、前記専用に設けられたメモリにアクセスして前記動作プログラムを実行して、前記専用に設けられた上位インタフェースおよび下位インタフェースを制御して、前記上位装置から要求される入出力処理を行なう。
【発明の効果】
【００１１】
このように本発明によれば、ディスク装置に対するデータの入出力を制御するディスクコントローラに複数のプロセッサを設け、プロセッサ毎に、専用のメモリ、上位インタフェース、および下位インタフェースを設けるようにしている。そして、複数のプロセッサは、各々、専用に設けられたメモリにアクセスして動作プログラムを実行し、専用に設けられた上位インタフェースおよび下位インタフェースを制御して、上位装置から要求される入出力処理を行なうようにしている。これにより、ストレージシステムのデータ入出力処理の高性能化を図ることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態が適用されたストレージシステムを説明する。
〈第１実施形態〉
先ず、本発明の第１実施形態について説明する。
【００１３】
図１は、本発明の第１実施形態のストレージシステムの概略図である。図示するように、ストレージシステム１０は、ストレージシステム１０を制御するコントローラ１００および１０１と、上位装置であるホスト計算機（図示しない）から送信されるデータを格納する、少なくとも１台以上のディスク装置２と、コントローラ１００、１０１とディスク装置２とを接続し、データの転送を行なうループ（以下において「バックエンドループ」という）２１、２２とを有する。なお、図１には示さないが、ストレージシステム１０には、ユーザからの各種設定を受付けるための管理端末が接続されていてもよい（管理端末については後述する）。
【００１４】
コントローラ１００は、ホスト計算機とディスク装置２との間のデータの入出力処理を行なう。具体的には、コントローラ１００は、上位ＩＦ１１０１、１１０２、下位ＩＦ１２０１、１２０２、データ転送制御部１３０、キャッシュ１４０、ＭＰＵ（Micro Processing Unit）１５０１、１５０２、およびメモリ１６０１、１６０２を有する。
【００１５】
上位ＩＦ１１０１、１１０２は、ホスト計算機とコントローラ１００と間のデータの入出力の制御を行なう。下位ＩＦ１２０１、１２０２は、コントローラ１００とディスク装置２との間のデータの入出力の制御を行なう。また、コントローラ１００、１０１とホスト計算機との間の接続、および、コントローラ１００、１０１とディスク装置２との間の接続には、ファイバチャネル(Fibre Channel)やＳＣＳＩ（Small Computer System Interface)、ＳＡＴＡ（Serial・ATA）、ＳＡＳ(Serial Attached SCSI)等の様々なＩＦを適用することができる。
【００１６】
なお、本実施形態の説明では、ディスク装置側をバックエンドと呼ぶことがある。また、本実施形態では、説明を簡単にするために、上位ＩＦ１１０１、１１０２及び下位ＩＦ１２０１、１２０２は、それぞれ1つのポートを持つこととするが、これは例示に過ぎない。上位ＩＦ１１０１、１１０２及び下位ＩＦ１２０１、１２０２は、それぞれ、複数のポートを有するように構成されていてもよい。
【００１７】
メモリ１６０１（１６０２）には、ＭＰＵ１５０１（１５０２）が実行するマイクロプログラム（ストレージシステムの動作プログラム）、制御情報、および管理情報等のストレージシステム１０の制御に必要な各種情報が格納される。
【００１８】
キャッシュ１４０には、ホスト計算機と送受信するデータ、ホスト計算機と送受信するデータのキャッシュ１４０上の格納位置を示すキャッシュ管理情報、ストレージシステム１０のシステム情報、およびディスク装置２の構成情報を示す共通管理情報等が格納される（キャッシュ１４０に格納するデータ構造については後述する）。
【００１９】
データ転送制御部１３０は、キャッシュ１４０に格納されたデータの転送を制御する。ＭＰＵ１５０１は、メモリ１６０１に格納されたマイクロプログラムを実行して、ホスト計算機からのＩＯ処理命令に応じたＩＯ処理を行う。
【００２０】
なお、本実施形態では、ホスト計算機とストレージシステム１０との間で行なうデータの入出力処理（ＩＯ処理）が可能な構成の単位をＩＯ処理系と呼ぶこととする。そして、一つのＩＯ処理系は、専用のＭＰＵにより制御されるものとする。
【００２１】
図示する例では、コントローラ１００は、ＭＰＵ１５０１により制御される
ＩＯ処理系０Ｘと、ＭＰＵ１５０２により制御されるＩＯ処理系０Ｙの２つのＩＯ処理系を有している。すなわち、本実施形態では、コントローラ１００は、ＩＯ処理系の集合から構成される。
【００２２】
また、ＩＯ処理系０ＸのＭＰＵ１５０１は、上位ＩＦ１１０１、下位ＩＦ１２０１、メモリ１６０１をＭＰＵ１５０１の専用のハードウェア資源として使用する。また、ＩＯ処理系０ＹのＭＰＵ１５０２は、上位ＩＦ１１０２、下位ＩＦ１２０２、メモリ１６０２をＭＰＵ１５０２の専用のハードウェア資源として使用する。
【００２３】
続いて、本実施形態のストレージシステム１０が行なうデータのＩＯ処理について説明する。
【００２４】
最初に、上位ＩＦ１１０１は、ホスト計算機からコマンドを受領すると、メモリ１６０１の指定の位置にコマンド情報を格納し、ＭＰＵ１５０１に割り込み信号を上げる。
【００２５】
ＭＰＵ１５０１は、上記の割り込み信号を受けて、メモリ１６０１を参照し、コマンド情報を解析する。そして、ＭＰＵ１５０１は、ホスト計算機からの命令が、例えばリード命令の場合であって、かつキャッシュ１４０上に対象データが存在する場合、ヒットリード処理を行なう。ＭＰＵ１５０１は、対象データのキャッシュ１４０上のアドレス位置を示す転送情報をメモリ１６０１の指定の位置に格納し、上位ＩＦ１１０１に通知する。
【００２６】
上位ＩＦ１１０１は、通知された転送情報を基にデータ転送制御部１３０にデータ転送を指示する。データ転送を指示されたデータ転送制御部１３０は、指定されたキャッシュ１４０のアドレスから対象データを読み出し、上位ＩＦ１１０１を介してホスト計算機にデータを転送する。上位ＩＦ１００１は、ホスト計算機へのデータ転送が完了した場合、ＭＰＵ１５０１に割り込みを上げ、完了通知を行なう。
【００２７】
一方、ＭＰＵ１５０１は、リード命令を受けた際に、キャッシュ１４０上に対象データが存在しない場合、ディスク装置２から下位ＩＦ１２０１を介して対象データを読み出して、キャッシュ１４０に対象データを格納する。キャッシュ１４０に格納された対象データは上位ＩＦ１１０１を介してホスト計算機へ転送される。
【００２８】
ＭＰＵ１５０１は、ホスト計算機からのライト命令を受けた場合、ホスト計算機から送られてきたライトデータを、上位ＩＦ１１０１を介してキャッシュ１４０に格納し、ホスト計算機に終了報告を行なう。その後対象データはキャッシュ１４０から下位ＩＦ１２０１を介してディスク装置２に格納される。
【００２９】
以上のようにしてＭＰＵ１５０１は、ＩＯ処理の際に、上位ＩＦ１１０１または下位ＩＦ１２０１から割り込みを受領したり、メモリ１６０１の読み出し、或いは書き込みを行う。本実施形態では、各ハードウェア資源（上位ＩＦ１１０１、下位ＩＦ１２０１、およびメモリ１６０１の）がＭＰＵ１５０１の専用のハードウェア資源として割り当てられている。そのため、本実施形態では、他ＭＰＵからの干渉を受けることなくＩＯ処理を実行できる。ＩＯ処理系０Ｙにおいても同様にＭＰＵ１５０２は、上位ＩＦ１１０２、下位ＩＦ１２０２、メモリ１６０２を専用に使用することで他ＭＰＵからの干渉を避けることができる。
【００３０】
コントローラ１０１は、コントローラ１００と同様の構成を有している。具体的には、コントローラ１０１は、上位ＩＦ１１１１、１１１２、下位ＩＦ１２１１、１２１２、データ転送制御部１３１、キャッシュ１４１、ＭＰＵ１５１１、１５１２、およびメモリ１６１１、１６１２を有する。
【００３１】
コントローラ１０１は、ＭＰＵ１５１１が制御するＩＯ処理系１Ｘと、ＭＰＵ１５１２が制御するＩＯ処理系１Ｙの２つのＩＯ処理系の集合として構成される。
【００３２】
また、コントローラ１００とコントローラ１０１とは、同じ数のＩＯ処理系により構成されるものとする。なお、コントローラ１００とコントローラ１０１とのＩＯ処理系の数が同一であれば、ＩＯ処理系は任意の数で構成することができる。
【００３３】
さらに、本実施形態では、コントローラ１００および１０１のいずれか一方のコントローラの障害に備え、キャッシュ１４０とキャッシュ１４１とは同一のデータが格納される。コントローラ１００のデータ転送制御部１３０とコントローラ１０１のデータ転送制御部１３１は、専用線(図示せず)によって接続されている。そして、コントローラ１００および１０１は、それぞれ、自身のキャッシュへデータを書き込む際に、もう一方のキャッシュにも同一データを書き込む。このように構成することで、コントローラ１００のキャッシュ１４０上のデータと、コントローラ１０１のキャッシュ１４１上のデータとを同一にすることができる。
【００３４】
このように構成しておけば、例えば、コントローラ１００の障害によってコントローラ１００側からディスク装置２にアクセス不可能になった場合に、コントローラ１０１にフェイルオーバすることができる。そして、コントローラ１０１は、キャッシュ１４１上のデータを用いてアクセスを継続する。
【００３５】
次に論理ボリュームについて説明する。通常ディスク領域は、論理ボリューム(ＬＵ：Logical Unit)という単位でホスト計算機から認識される。複数台のディスク装置２からＲＡＩＤ（Redundant Array of Independent Disks）グループが形成され、ＲＡＩＤグループから複数の論理ボリュームが定義される。さらに、本実施形態では、定義された論理ボリュームのＩＯ処理を担当するＭＰＵを設定する。
【００３６】
そして、論理ボリュームのＩＯ処理を担当するＭＰＵに対して、その論理ボリュームのオーナー権を保持させる。論理ボリュームに対するＩＯ処理は、その論理ボリュームのオーナー権を持つＭＰＵにより行なわれる。図２は論理ボリュームの割り当てを模式的に示す図である。
【００３７】
図示するように、本実施形態では、複数台のディスク装置２からＲＡＩＤグループ２００が形成されている。そして、ＲＡＩＤグループ２００から論理ボリューム２０１、２０２、２０３が定義される。
【００３８】
論理ボリューム２０１、２０２、２０３は、ＬＵＮと呼ばれるＩＤ（識別記号）によって管理される。図示する例では、ＲＡＩＤグループ２００には、ＬＵＮ０、ＬＵＮ５、ＬＵＮ７という３つの論理ボリュームが存在する。なお、論理ボリュームの数や論理ボリュームのサイズはユーザが任意に指定することができる。
【００３９】
コントローラ１００は、図示しないホスト計算機に接続するためのポートＡ１７０１およびポートＢ１７０２を有している。ポートＡ１７０１は、ＩＯ処理系０Ｘに対するデータの入出力を受付ける。ポートＢ１７０２は、ＩＯ処理系０Ｙに対するデータの入出力を受付ける。
【００４０】
コントローラ１０１は、図示しないホスト計算機に接続するためのポートＣ１７０３およびポートＤ１７０４を有している。ポートＣ１７０３は、ＩＯ処理系１Ｘに対するデータの入出力を受付ける。ポートＤ１７０４は、ＩＯ処理系１Ｙに対するデータの入出力を受付ける。
【００４１】
また、図示する例では、ＩＯ処理系０ＸのポートＡ１７０１に対し、ＬＵＮ５が割り当てられている。これは、ＩＯ処理系0ＸのＭＰＵ１５０１が、ＬＵＮ５のオーナー権を有していることを示している。したがって、ＬＵＮ５に対するＩＯ処理は、ＭＰＵ１５０１が担当する。
【００４２】
また、ＩＯ処理系０ＹのポートＢ１７０２にＬＵＮ７が割り当てられている。これは、ＩＯ処理系0ＹのＭＰＵ１５０２が、ＬＵＮ７のオーナー権を有していることを示している。したがって、ＬＵＮ７に対するＩＯ処理は、ＭＰＵ１５０２が担当する。
【００４３】
同様に、ＩＯ処理系１ＹのポートＤ１７０４にＬＵＮ０が割り当てられている。これは、ＩＯ処理系１ＹのＭＰＵ１５１２が、ＬＵＮ０のオーナー権を有していることを示している。したがって、ＬＵＮ０に対するＩＯ処理は、ＭＰＵ１５１２が担当する。
【００４４】
このように論理ボリュームのオーナー権を持つＭＰＵを決めておくことにより、対象ボリュームに関するＩＯ処理を担当するＭＰＵが独占して実施することができる。また、各ディスク装置２へはどのＭＰＵからもアクセス可能なため、図２の例のように同一ＲＡＩＤグループ内に異なる担当ＭＰＵの論理ボリュームを混在しても良い。また、論理ボリュームの使用中に論理ボリュームのオーナー権を別のＭＰＵへ切り替えることができる。ユーザは、論理ボリュームを使用したいポートに割り当てることでそのポートから対象ボリュームへのアクセスが可能となる。
【００４５】
次にユーザからみたストレージシステム１０の管理イメージを、図３を用いて説明する。図３は、管理端末と管理画面の一例とを示す図である。
【００４６】
図示する例では、ストレージシステム１０を管理する管理端末３は、ネットワークを介してストレージシステム１０に接続されている。管理端末３とストレージシステム１０とを接続するネットワークについては、特に限定しないが、以下の説明では、ネットワークがＬＡＮ（Local Area Network）の場合を例にする。
【００４７】
さて、ストレージシステム１０は、図１に示した構成に加えて、管理端末３との間のデータの送受信を制御するＬＡＮ/ＩＦ１２を有する。また、管理端末３は、ＭＰＵ３２、メモリ３３、およびＬＡＮ/ＩＦ３４を有する。
【００４８】
ＬＡＮ/ＩＦ３４は、ストレージシステム１０との間のデータの入出力を制御する。メモリ３３には、管理端末３を制御する各種プログラム（図示しない）やストレージシステム１０に対する各種設定を行う管理プログラム３１が格納される。ＭＰＵ３２は、メモリ３３に格納された各種プログラムを実行する。例えば、ＭＰＵ３２は、メモリ３３に格納されている管理プログラム３１を実行し、ストレージシステム１０の論理ボリュームの設定、ポートの割り当て等の各種設定処理を行う。
【００４９】
管理端末３は、図示しない表示装置に接続されている。管理端末３のＭＰＵ３２は、管理プログラム３１を実行し、表示装置に管理画面（例えば画面３１１）を表示する。ユーザは、管理画面を見ながら、ストレージシステム１０に対する設定データを管理端末３に入力する。或いは、ユーザは、管理画面を見て、ストレージシステム１０の現状の設定を確認する。管理端末３は、ユーザからの各種設定データの入力を受付け、受付けた設定データにしたがいストレージシステム１０に対する各種設定を行う。
【００５０】
続いて、管理端末３が表示する管理画面を説明する。図示する、管理画面３１１には、ストレージシステム１０のコントローラ１００の設定状態を表示するエリア３１１ａ、およびコントローラ１０１の設定状態を表示するエリア３１１ｂが設けられている。なお、エリア３１１ａの「ＣＴＬ０」、エリア３１１ｂの「ＣＴＬ１」は、それぞれコントローラ１００、１０１を表しているものとする。また、エリア３１１ａの「ＣＴＬ０」配下の「ProtGroupX」、「ProtGroupY」はそれぞれＩＯ処理系０Ｘ、ＩＯ処理系０Ｙを表すものとする。また、「ＰｏｒｔＡ」「ＰｏｒｔＢ」はそれぞれポートＡ１７０１、ポートＢ１７０２を表す。
【００５１】
このように表示することで、ＩＯ処理系はユーザからはポートグループとして認識される。また、このように表示することで、ポートＡ１７０１1にはＬＵＮ５、ＬＵＮ６の２つの論理ボリュームが割り当てられ、ポートＢ１７０２にはＬＵＮ７、ＬＵＮ８の２つの論理ボリュームが割り当てられていることをユーザに告知できる。ユーザは、管理画面３１１を見ることで、各ポートからアクセス可能な論理ボリュームを知ることができる。
【００５２】
また、管理端末３は、論理ボリュームの追加や削除等の変更を受付ける。管理端末３は、受付けた変更内容にしたがい、ストレージシステム１０の設定を変更する。そして、管理端末３は、ストレージシステム１０の設定を変更した場合に、その変更に応じて管理画面３１１を変更する。例えば、新たにＬＵＮ９を作成し、ポートＡ１７０１にＬＵＮ９を追加した場合には、図示する管理画面３１１の「ＰｏｒｔＡ」の「Ｌｏｇｉｃａｌ Ｕｎｉｔ」欄にＬＵＮ５、ＬＵＮ６に加えてＬＵＮ９が表示されることになる。
【００５３】
次に、ストレージ端末１０のキャッシュ１４０の構成について詳しく説明する。図４は、本実施形態におけるキャッシュ構成の一例を示す図である。なお、ストレージ端末１０１のキャッシュ１４１には、キャッシュ１４０に格納されるデータと同じデータが二重書きされる。したがって、キャッシュ１４１に格納されるデータの構造とキャッシュ１４０に格納されるデータの構造は同じになる。
【００５４】
キャッシュ１４０は、領域１４０００〜１４００８に分けられて、各種データが格納される。
【００５５】
領域１４０００は、ＭＰＵ１５０１および１５０２の両者から参照される共通管理情報が格納される。領域１４０００に格納される共通管理情報には、ストレージシステム１０のシステム情報、ディスク装置２上に作成される論理ボリュームの構成情報、および、どのＭＰＵがどの論理ボリュームを担当するかを示すオーナー権情報が含まれる。
【００５６】
ＭＰＵ１５０１およびＭＰＵ１５０２は、どちらも、キャッシュ１４０にアクセス可能である。そのため、共通管理情報は、コントローラ１００内に1つ持てば良い。
【００５７】
ストレージシステム１０内の共有資源は代表ＭＰＵ（例えばＭＰＵ１５０１）が一元的に管理し、共通管理情報を領域１４０００に書き込むことによって他のＭＰＵが参照可能となる。例えば、ディスク装置２の挿入、抜去は、代表ＭＰＵ１５０１がバックエンド２１を定期的に監視し、ディスク装置２の状態に変更があった場合は、領域１４０００の共通管理情報の対象テーブルにディスク装置２の変更内容を記録する。
【００５８】
領域１４００１、１４００２、１４００３、１４００４は、キャッシュ１４０上のデータ格納情報を示すキャッシュ管理情報を格納する領域である。
【００５９】
領域１４００５、１４００６、１４００７、１４００８は、ホスト計算機との間で送受信するデータを格納するデータ領域である。キャッシュ管理情報を格納する領域およびデータ領域は、ストレージシステム１０の起動時にあらかじめ設定される。
【００６０】
本実施形態では、各ＭＰＵ（１５０１、１５０２、１５１１、１５１２）に専用して使用できるキャッシュ１４０上の領域が割り当てられる。具体的には、ＭＰＵ１５０１は、キャッシュ管理情報１４００１およびデータ領域１４００５を専用して使用できるように設定される。ＭＰＵ１５０２は、キャッシュ管理情報１４００２およびデータ領域１４００６を専用して使用できるように設定される。また、ＭＰＵ１５１１はキャッシュ管理情報１４００３とデータ領域１４００７を専用して使用できるように設定される。ＭＰＵ１５１２がキャッシュ管理情報１４００４とデータ領域１４００８を専用して使用できるように設定される。
【００６１】
また、各ＭＰＵが使用するキャッシュ管理情報を格納する領域とデータ領域とは対になっている。例えばＭＰＵ１５０１が使用するデータ領域１４００５のデータ配置は、領域１４００１に格納されているキャッシュ管理情報によって管理される。
【００６２】
領域１４００１、１４００２、１４００３、１４００４に格納されるキャッシュ管理情報及びデータ領域１４００５、１４００６、１４００７、１４００８に格納されるデータのキャッシュ１４０上の開始アドレスやサイズ等の配置情報は、領域１４０００に格納される共通管理情報によって管理される。
【００６３】
このように、本実施形態では、予め、各ＭＰＵが使用するキャッシュ１４０に専用領域を設定するようにしている。そのため、本実施形態では、通常ＩＯ処理の際に、キャッシュ領域の使用に関する他ＭＰＵとの排他制御が不要となる。各ＭＰＵは各々が担当する論理ボリュームのＩＯ処理を他のＭＰＵとの整合性を気にすることなく、各自で実施できる。
【００６４】
なお、システムパラメータの変更等によってストレージシステムのシステム情報を変更する場合や、論理ボリュームの作成やオーナー権の切り替えによって論理ボリュームの構成情報を変更する場合は、領域１４０００に格納している共通管理情報１４０００の更新を行なう必要が生じる。
【００６５】
このような変更は、ユーザが管理端末３を操作して行なう場合と、ストレージシステム１０内部の要因によってストレージシステム１０自身が行なう場合とがある。そして、領域１４０００に格納されている共通管理情報を更新する際には、領域１４０００に格納された共通管理情報を変更するＭＰＵと他ＭＰＵとの排他制御が必要となる。本実施形態では、ＭＰＵの排他制御の具体的な手順については、特に限定しない。例えば、排他制御には、データ転送制御部１３０のアトミックロックによるハードウェア的な排他制御を行なっても良い。また、例えば、各ＭＰＵが参照できるキャッシュ領域に排他制御用テーブルを用意する。そして、領域１４０００に格納される共通管理情報の更新前に排他制御用テーブルにフラグを立てることで、更新中に他のＭＰＵが、領域１４０００の共通管理情報にアクセスすることを禁止するソフトウェア的な排他制御を行なっても良い。
【００６６】
続いて、代表のＭＰＵが領域１４０００に格納されている共通管理情報を更新する際、その更新内容を他のＭＰＵに通知する手順について説明する。
【００６７】
図５は、本実施形態のＭＰＵ間で行なわれる、共通管理情報更新の通知処理のフローを説明する図である。なお、ここでは、ＭＰＵ１５０１から他の全ＭＰＵ（ＭＰＵ１５０２、１５１１、１５１２）に共通管理情報の更新を通知する場合を例にして説明する。
【００６８】
まず、通知元であるＭＰＵ１５０１は、キャッシュ１４０上の通信用にあらかじめ決められた領域に通信メッセージを設定する。キャッシュ１４０に設定された通信メッセージはデータの二重書きによりキャッシュ１４１にも同一内容が反映される。
【００６９】
通信メッセージには、通信元ＭＰＵおよび通信先ＭＰＵのＩＤが含まれている。また、ＭＰＵ１５０１は、更新したデータ（例えばテーブル）のＩＤ、または更新したデータ（例えばテーブル）のキャッシュ１４０上のアドレスを、あらかじめ決められた領域に格納し、どのデータ（例えばテーブル）を更新したのかをわかるようにしておく。(ステップ５０１)。
【００７０】
次に、ＭＰＵ１５０１は、データ転送制御部１３０に通信先ＭＰＵを指定し、通信発行を行なうように指示する。本例では、他の全ＭＰＵ（ＭＰＵ１５０２、１５１１、１５１２）が通信先に指定される(ステップ５０２)。
【００７１】
通信発行を指示されたデータ転送制御部１３０は、指定されたＭＰＵに通信を発行する。コントローラ１０１上のＭＰＵに対しては、データ転送制御部１３０からデータ転送制御部１３１を介して対象ＭＰＵに通知する(ステップ５０３)。
【００７２】
データ転送制御部１３０（または１３１）から通信を受領した各ＭＰＵは、キャッシュ１４０またはキャッシュ１４１の決められた領域をリードし、通信メッセージを解析する(ステップ５０４)。
【００７３】
通信メッセージにより対象となる更新データ（更新テーブル）がわかるので、各ＭＰＵはキャッシュからメモリに対象データ（テーブル）のコピーを行なうことにより更新内容を各ＭＰＵのメモリ１６０１、１６０２に反映させる(ステップ５０５)。
【００７４】
このように、本実施形態によれば、ＭＰＵ間で構成変更の通知を行なうことができる。例えば論理ボリュームのオーナー権切り替えの場合には、切り替え元のＭＰＵは、領域１４０００の共通管理情報の対象となる論理ボリュームのオーナー権情報と、対象となる論理ボリュームのキャッシュ１４０の配置情報を、切り替え元ＭＰＵから切り替え先ＭＰＵに変更する。そして、切り替え元ＭＰＵが変更後のデータ格納位置を切り替え先ＭＰＵ及び他のＭＰＵに通知することでオーナー権切り替えを実施できる。
〈第２実施形態〉
続いて本発明の第２実施形態を説明する。第２実施形態は、第１実施形態のストレージシステム１０の構成に、バックエンドループの帯域を拡大する構成を付加したものである。なお、第２実施形態の説明において、第１実施形態と同じ構成には同じ符号を用いることとする。
【００７５】
第２実施形態のストレージシステム１０は、バックエンド共有モード（以下において「標準モード」という）、および、バックエンド非共有モード（以下において「帯域拡大モード」という）の２つのモードに、バックエンドの帯域を設定できるように構成されている。
【００７６】
標準モードとは、図１に示す、バックエンドループ２１、２２にディスク装置２が接続される構成のことをいう。具体的には、図１に示すように、コントローラ１００の下位ＩＦ１２０１、１２０２は、１本のバックエンドループ２１に接続される。コントローラ１０１の下位ＩＦ１２１１、１２１２は、１本のバックエンドループ２２に接続される。そして、ディスク装置２は、それぞれ２本のループ２１、２２に接続されている。すなわち、「標準モード」では、計２本分のループ帯域を有することになる。
【００７７】
そして、このように構成することで、「標準モード」では、コントローラ１００、１０１が有する下位ＩＦ（１２０１、１２０２、１２１１、１２１２）から全てのディスク装置２にアクセスが可能となる。
【００７８】
「帯域拡大モード」とは、ＩＯ処理系毎にアクセスできるディスク装置２を分離したバックエンドの構成のことをいう。以下、具体的に、「帯域拡大モード」について図６を用いて説明する。図６は、帯域拡大モードに設定されている、ストレージシステムの構成を示す図である。
【００７９】
帯域拡大モードでは、ディスク装置２は、ＩＯ処理系のＸ系統に接続されるグループ、およびＩＯ処理系のＹ系統に接続されるグループに分類される。図示する例では、Ｘ系統に分類されたディスク装置２は、Ｘ系統ドライブ筐体２５に収納されている。また、Ｙ系統に分類されたディスク装置２は、Ｙ系統ドライブ筐体２６に収納されている。
【００８０】
そして、Ｘ系統ドライブ筐体２５に収納されたディスク装置２は、バックエンドループ２１および２２で接続されている。また、Ｙ系統ドライブ筐体２６に収納されたディスク装置２は、バックエンドループ２３および２４で接続されている。
【００８１】
なお、第２実施形態の説明では、Ｘ系統に接続されるグループのディスク装置２、およびＹ系統に接続されるグループのディスク装置２を、別々のドライブ筐体に収納しているが、特にこれに限定しない。Ｘ系統に接続されるグループのディスク装置２、およびＹ系統に接続されるグループのディスク装置２が、グループ毎に別々のバックエンドループに接続されていれば、同じドライブ筐体に収納されていてもよい。また、ディスク装置２は、ドライブ筐体に収納されていなくてもよい。
【００８２】
そして、コントローラ１００のＩＯ処理系のＸ系統の下位ＩＦ１２０１は、
Ｘ系統ドライブ筐体２５に収納されたディスク装置２を接続するバックエンドループ２１に接続される。コントローラ１０１のＩＯ処理系のＸ系統の下位ＩＦ１２１１は、Ｘ系統ドライブ筐体２５に収納されたディスク装置２を接続するバックエンドループ２２に接続される。
【００８３】
また、コントローラ１００のＩＯ処理系のＹ系統の下位ＩＦ１２０２は、Ｙ系統ドライブ筐体２６に収納されたディスク装置２を接続するバックエンドループ２３に接続される。コントローラ１０１のＩＯ処理系のＹ系統の下位ＩＦ１２１２は、Ｙ系統ドライブ筐体２６に収納されたディスク装置２を接続するバックエンドループ２４に接続される。
【００８４】
このように、ストレージシステム１０が「帯域拡大モード」に設定された場合、コントローラ１００からアクセスできるバックエンドループは、バックエンドループ２１および２３の２本になる。また、バックエンドループ２１を経由してＸ系統に分類されたディスク装置２にアクセスできるのは、下位ＩＦ１２０１だけとなる。また、バックエンドループ２３を経由してＹ系統に分類されたディスク装置２にアクセスできるのは、下位ＩＦ１２０２だけとなる。
【００８５】
同様に、ストレージシステム１０が「帯域拡大モード」に設定された場合、コントローラ１０１からアクセスできるバックエンドループは、バックエンドループ２２および２４の２本になる。また、バックエンドループ２２を経由してＸ系統に分類されたディスク装置２にアクセスできるのは、下位ＩＦ１２１１だけとなる。また、バックエンドループ２４を経由してＹ系統に分類されたディスク装置２へのアクセスできるのは、下位ＩＦ１２１２だけとなる。
【００８６】
このように、「帯域拡大モード」に設定すれば、ストレージシステム１０のバックエンドは計４本になり、「標準モード」に比べてループ帯域が拡大される。
【００８７】
続いて、ストレージシステム１０を「帯域拡大モード」に設定した場合における、コントローラ１００が行なうディスク装置２の管理について説明する。
【００８８】
さて、ストレージシステム１０は、「標準モード」の場合、１つの代表ＭＰＵを定めておいて、代表ＭＰＵ（例えばＭＰＵ１５０１）が、ストレージシステム１０が有する全ディスク装置２０の管理を行なうようにしている。
【００８９】
これに対して、ストレージシステム１０が「帯域拡大モード」の場合、それぞれのＩＯ処理系統毎（Ｘ系統毎、Ｙ系統毎）に代表ＭＰＵを設定する。例えば、Ｘ系統に分類されたディスク装置２の管理は（図６の例では、ドライブ筐体２５のディスク装置２）、ＭＰＵ１５０１が行なうように設定する。Ｙ系統に分類されたディスク装置２の管理は（図６の例では、ドライブ筐体２６のディスク装置２）、ＭＰＵ１５０２が行なうように設定する。
【００９０】
また、第２実施形態では、コントローラ１００のＭＰＵ１５０１が制御するＩＯ処理系０Ｘ、および、コントローラ１０１のＭＰＵ１５１１が制御するＩＯ処理系１Ｘは、同一ディスク装置２にアクセス可能に構成されている。同様に、コントローラ１００のＭＰＵ１５０２が処理するＩＯ処理系０Ｙ、および、コントローラ１０１のＭＰＵ１５１２が処理するＩＯ処理系１Ｙは、同一ディスク装置２にアクセス可能に構成されている。
【００９１】
このように構成することで、ストレージシステム１０は、「帯域拡大モード」の場合においても、コントローラ１００および１０１のいずれか一方が故障した場合のコントローラ障害に対応することができる。
【００９２】
なお、第２実施形態では、各ＭＰＵからアクセス可能なディスク装置２は、Ｘ系統に分類されたディスク装置２、および、Ｙ系統に分類されたディスク装置２のいずれかである。そのため、第２実施形態では、系統を跨るＲＡＩＤグループの構成を禁止し、同一系統内だけでＲＡＩＤグループの設定を可能とする。同一系統内であればＲＡＩＤグループを構成するディスク装置２の位置は自由である。
【００９３】
さらに、第２実施形態では、ＭＰＵのオーナー権の設定についても、対象論理ボリュームを構成するディスク装置２へのアクセスが可能な系統のＭＰＵだけを指定可能とする。例えば、Ｘ系統に分類された論理ボリュームであれば、ＭＰＵ１５０１またはＭＰＵ１５１１のみがオーナー権を持つことが可能となるように設定を制限する。
【００９４】
また、ＭＰＵ１５０１（又はＭＰＵ１５１１）からＹ系統に分類されたディスク装置２により構成された論理ボリュームに対してアクセスをする場合は、以下のようにする。ＭＰＵ１５０１（ＭＰＵ１５１１）は、キャッシュ１４０（キャッシュ１４１）を介して対象論理ボリュームのオーナー権を持つＭＰＵに、ディスク装置２へのＩＯ処理を依頼することで、Ｙ系統の論理ボリュームに対するアクセスを行なう。同様に、ＭＰＵ１５０２又はＭＰＵ１５１２からＸ系統のグループの論理ボリュームへのアクセスも同様にオーナー権を持つＭＰＵに依頼することによって行なう。
【００９５】
続いて、ストレージシステム１０を、「標準モード」から「帯域拡大モード」への切り替える際の手順を説明する。なお、以下の説明では、図１に示すストレージシステム１０の構成に、新たに、複数のディスク装置２を収納したＹ系統ドライブ筐体２６を追加する場合を例にする。
【００９６】
「帯域拡大モード」に設定する際に、ユーザは、図６に示すように、Ｘ系統ドライブ筐体２５と、Ｙ系統ドライブ筐体２６とを分離してコントローラ１００、１０１に接続する。
【００９７】
具体的には、ユーザは、コントローラ１００の下位ＩＦ１２０２とバックエンドループ２１との接続を外す（図１参照）。同様に、ユーザは、コントローラ１０１の下位ＩＦ１２１２とバックエンドループ２２との接続を外す（図１参照）。そして、ユーザは、新たに、用意したＹ系統ドライブ筐体２６のディスク装置２に接続されている、バックエンドループ２３、２４を下位ＩＦ１２０２、１２１２に接続する（図６参照）。
【００９８】
その後、ユーザは管理端末３を操作してストレージシステム１０に「帯域拡大モード」で起動するよう通知する。通知を受けたストレージシステム１０は、自身の設定を「帯域拡大モード」に切り替える。
【００９９】
ここで、ストレージシステム１０の帯域拡大モードへの切り替え処理を、図７を用いて説明する。図７は、第２実施形態のストレージシステム１０の帯域拡大モードへの切り替えに処理のフローを説明するための図である。なお、以下の説明では、「帯域拡大モード」に切り替える前の「標準モード」において、代表ＭＰＵにＭＰＵ１５０１が設定されているものとする。
【０１００】
ストレージシステム１０は、管理端末３からの「帯域拡大モード」への切り替え指示を受けた場合、各ＭＰＵは、下位ＩＦ１２０１、１２０２、１２１１、１２１２を通じて、バックエンドループ２１、２２、２３、２４が正常に接続されているかを判定する(ステップ７０１)。なお、ここでは、代表ＭＰＵに設定されている、ＭＰＵ１５０１が管理端末３からの帯域拡大モードへの切り替え指示を受付けて、他のＭＰＵ（ＭＰＵ１５０２、１５１１、１５１２）にその旨を通知するものとする。
【０１０１】
そして、ストレージシステム１０は、判定した結果、バックエンドループ２１、２２、２３、２４が正常に接続されていない場合には、ステップ７０２の処理に進み、正常に接続されている場合には、ステップ７０３の処理に進む。
【０１０２】
ステップ７０２では、ストレージシステム１０は、管理端末３に接続エラー表示をさせて処理を終了する。具体的には、ストレージシステム１０のＭＰＵ１５０１は、自身が担当するバックエンドループ２１の接続がエラーであると判定した場合、管理端末３に接続エラーを表示させる。また、ＭＰＵ１５０１は、他のＭＰＵ（ＭＰＵ１５０２、１５１１、１５１２）から接続エラーの通知を受けた場合、管理端末３に接続エラーを表示させる。
【０１０３】
一方、各ＭＰＵが、バックエンドループ２１、２２、２３、２４が正常に接続されていると判定した場合に進む、ステップ７０３の処理を説明する。
【０１０４】
ステップ７０３では、ＭＰＵ１５０１は、キャッシュ１４０の共通管理情報１４０００を参照し、Ｘ系統に分類されたディスク２（Ｘ系統ドライブ筐体２５のディスク装置２）に、ＭＰＵ１５０２がオーナー権を持つ論理ボリュームが存在するか否かを調べる。これは、ＭＰＵ１５０２は、Ｘ系統ドライブ筐体２５にアクセスができないため、オーナー権をＭＰＵ１５０１に切り替えなければならないためである。ＭＰＵ１５０１は、ＭＰＵ１５０２がオーナー権を持つ論理ボリュームが存在しない場合はステップ７０５に進む。一方、ＭＰＵ１５０１は、ＭＰＵ１５０２がオーナー権を持つ論理ボリュームが存在する場合はステップ７０４に進む。
【０１０５】
ステップ７０４では、ＭＰＵ１５０１は、ＭＰＵ１５０２がオーナー権を持つ論理ボリュームのオーナー権をＭＰＵ１５０１に切り替える。具体的には、ＭＰＵ１５０１は、キャッシュ１４０の共通管理情報の中のオーナー権のデータを書き換える。
【０１０６】
ステップ７０５では、ＭＰＵ１５０１は、Ｘ系ドライブ筐体２５にＭＰＵ１５１２がオーナー権を持つ論理ボリュームが存在するかどうかを調べる。存在しない場合はステップ７０７に進む。一方、ＭＰＵ１５０１は、ＭＰＵ１５１２がオーナー権を持つ論理ボリュームが存在する場合はステップ７０６に進む。
【０１０７】
ステップ７０６では、ＭＰＵ１５０１は、ＭＰＵ１５１２がオーナー権を持つ論理ボリュームのオーナー権をＭＰＵ１５１１に切り替える。
【０１０８】
次に、帯域拡大モードで動作するために代表ＭＰＵの設定を行なう。本例では、ＭＰＵ１５０１は、Ｘ系統ドライブ筐体２５の管理を行なう代表ＭＰＵにＭＰＵ１５０１を設定する。また、ＭＰＵ１５０１は、Ｙ系統ドライブ筐体２６の管理を行なう代表ＭＰＵにＭＰＵ１５０２を設定する。これら代表ＭＰＵは「帯域拡大モード」としての管理を開始し、定期的にバックエンドの監視を行なう。
【０１０９】
なお、第２実施形態の上記説明では、まずバックエンドの接続を変更し、その後オーナー権を切り替えることとしているが、まずオーナー権を切り替えて帯域拡大モードの準備をし、その後バックエンドの接続を変更しても良い。
【０１１０】
このように、第２実施形態では、バックエンドの帯域の切り替えを実施できるため、必要環境に応じてバックエンドの帯域を選択することができる。
〈第３実施形態〉
続いて本発明の第３実施形態を説明する。第３実施形態は、第１実施形態のストレージシステム１０のコントローラ１００が有するキャッシュおよびデータ転送制御部を、ＩＯ処理系毎に独立して設けるようにしたものである。なお、第３実施形態の説明において、第１実施形態と同じ構成には同じ符号を用いることとする。
【０１１１】
図８は、本発明の第３実施形態のストレージシステムの概略図である。
【０１１２】
図示するように、ストレージシステム１１は、ストレージシステム１０を制御するコントローラ１０２および１０３と、図示しないホスト計算機からのデータを格納する、少なくとも１台以上のディスク装置２と、コントローラ１０２、１０３とディスク装置２を接続し、データの転送を行なうループ（バックエンドループ）２１、２２とを有する。
【０１１３】
なお、ディスク装置２およびバックエンドループ２１、２２の構成は、上記第１実施形態の構成と同じである。コントローラ１０２（１０３）が有する、ＭＰＵ、上位ＩＦ、下位ＩＦ、メモリは、第１実施形態のコントローラ１００（１０１）のものと同じである。以下において、異なる部分を中心にして説明する。
【０１１４】
図示するように、コントローラ１０２は、ＩＯ処理系０Ｘ１００１およびＩＯ処理系０Ｙ１００２を有する。ＩＯ処理系０Ｘ１００１（ＩＯ処理系系０Ｙ１００２）は、モジュール化されていて、コントローラ１０２から着脱可能に構成されている。
【０１１５】
具体的には、コントローラ１０２のＩＯ処理系０Ｘ１００１（ＩＯ処理系０Ｙ１００２）は、上位ＩＦ１１０１（１１０２）、下位ＩＦ１２０１（１２０２）、ＭＰＵ１５０１（１５０２）、メモリ１６０１（１６０２）、データ転送制御部１３０１（１３０２）、およびキャッシュ１４０１（１４０２）を有する。
【０１１６】
このように、第３実施形態では、ＩＯ処理系０Ｘ１００１（ＩＯ処理系系０Ｙ１００２）は、コントローラ１０２内のハードウェア資源を他のＩＯ処理系と共有していない。そのため、第３実施形態のストレージシステムによれば、ＩＯ処理系単位でのＩＯ処理の機能の追加、除去を容易に行なうことができる。
【０１１７】
また、データ転送制御部１３０１およびデータ転送制御部１３０２は、専用線１８０で接続されていて、互いに相手のキャッシュにアクセスできるように構成されている。このように構成することで、データ転送制御部１３０１はキャッシュ１４０２上のデータのリード/ライト処理が可能となる。同様に、データ転送制御部１３０２は、キャッシュ１４０１上のデータのリード/ライト処理が可能となる。なお、同一キャッシュにアクセス可能であればＩＯ処理系の数は任意である。
【０１１８】
コントローラ１０３は、ＩＯ処理系１Ｘ１０１１およびＩＯ処理系１Ｙ１０１２を有する。そして、コントローラ１０３は、コントローラ１０２と同様で、ＩＯ処理系毎に、上位ＩＦ、下位ＩＦ、ＭＰＵ、メモリ、データ転送制御部、およびキャッシュが設けられている。
【０１１９】
また、第３実施形態のストレージシステム１１には、上記第1実施形態と同様に、片方のコントローラの障害に備えてキャッシュ１４０１およびキャッシュ１４１１には、同一のデータが格納される。キャッシュ１４０２およびキャッシュ１４１２には、同一のデータが格納される。
【０１２０】
具体的には、コントローラ１０２のデータ転送制御部１３０１とコントローラ１０３のデータ転送制御部１３１１とは、専用線(図示せず)によって接続されている。また、コントローラ１０２のデータ転送制御部１３０２とコントローラ１０３のデータ転送制御部１３１２とは、専用線(図示せず)によって接続されている。
【０１２１】
そして、データ転送制御部１３０１（１３１１）が、キャッシュ１４０１（１４１１）にデータを書き込む際に、キャッシュ１４１１（１４０１）にも同一データを書き込む。また、データ転送制御部１３０２（１３１２）が、キャッシュ１４０２（１４１２）にデータを書き込む際に、キャッシュ１４１２（１４０２）にも同一データを書き込む。このように構成することで、キャッシュ１４０１および１４１１のデータを同一にすることができる。また、キャッシュ１４０２および１４１２のデータを同一にすることができる。
【０１２２】
したがって、例えばＩＯ処理系０Ｘ１００１からキャッシュ１４０２に書き込んだデータは、キャッシュ１４１２にも反映されることになる。
【０１２３】
続いて、第３実施形態のキャッシュの構成を説明する。図９は、本発明の第３実施形態のキャッシュの構成を説明するための図である。
【０１２４】
図９は、（ａ）図にＩＯ処理系０Ｘに関するデータを格納するキャッシュ１４０１を示し、（ｂ）図にＩＯ処理系０Ｙに関するデータを格納するキャッシュ１４０２を示している。このように、ＩＯ処理系０Ｘに関するデータはキャッシュ１４０１に、ＩＯ処理系０Ｙに関するデータはキャッシュ１４０２に格納することで、一方のＩＯ処理系の障害や挿入、抜去に対する対応が可能となる。なお、上述したように、キャッシュ１４１１には、キャッシュ１４０１と同じデータが格納される。また、キャッシュ１４１２には、キャッシュ１４０２と同じデータが格納される。
【０１２５】
図示するように、キャッシュ１４０１は、領域１４０００、１４００１、１４００２、１４００５、１４００６に分けられている。キャッシュ１４０２は、領域１４０００、１４００３、１４００４、１４００７、１４００８に分けられている。そして、上記各領域に格納されるデータは、上記図４で示した領域１４０００〜１４００８に格納されるデータに対応する。
【０１２６】
具体的には、領域１４０００には、図４で説明した共通管理情報が格納される。領域１４００１、１４００２、１４００３、１４００４は、キャッシュ１４０１、１４０２上のデータ格納情報を示すキャッシュ管理情報が格納される。領域１４００５、１４００６、１４００７、１４００８は、ホスト計算機との間で送受信するデータが格納される。
【０１２７】
このように、共通管理情報を両コントローラあわせて４重化構成としておけば、どちらの系統に障害が発生した場合にも同一コントローラ内の障害が発生していないＩＯ処理系から共通管理情報にアクセスでき、動作継続が可能である。
【０１２８】
続いて、第３実施形態において、ストレージシステムがＸ系統のＩＯ処理系だけで構成されている状態を例示する。図１０は、本発明の第３実施形態のストレージシステムが、Ｘ系統のＩＯ処理系だけで構成されている状態を示す図である。
【０１２９】
図示する例では、コントローラ１０２、１０３は、Ｙ系統のＩＯ処理系が抜去された状態を示している。そして、図示する状態から、ユーザが、コントローラ１０２、１０３に、ＩＯ処理系０Ｙ１００２、ＩＯ処理系１Ｙ１０１２をそれぞれ挿入することで、図８に示したストレージシステム１１の機能に拡大することができる。
【０１３０】
ストレージシステム１１は、ＩＯ処理系０Ｙ１００２、ＩＯ処理系１Ｙ１０１２が挿入された際に、共通管理情報を共有化する処理を行なう。具体的には、ストレージシステム１１は、キャッシュ１４０１、１４１１の領域１４００の共通管理情報を、挿入されたＩＯ処理系０Ｙ１００２、ＩＯ処理系１Ｙ１０１２のキャッシュ１４０２、１４１２の領域１４０００にコピー処理を行なう。
【０１３１】
そして、挿入側ＩＯ処理系０Ｙ１００２（１０１２）のＭＰＵ１５０２（１５１２）は、領域１４０００の共通管理情報から必要な情報をメモリ１６０２（１６１２）にコピーしＩＯ処理を開始する。
<第４実施形態>
続いて本発明の第４実施形態を説明する。第４実施形態は、第３実施形態のストレージシステム１０に、第２実施形態のバックエンドループの帯域を拡大する構成を付加したものである。なお、第３実施形態の説明において、第１実施形態と同じ構成には同じ符号を用いることとする。
【０１３２】
図１１は、本発明の第４実施形態のストレージシステムの概略図である。
【０１３３】
図示するコントローラ１０２、１０３は、上記図８で説明した構成と同じである。Ｘ系統ドライブ筐体２５およびＹ系統ドライブ筐体２６の構成は、上記図６で説明した構成と同じである。
【０１３４】
そして、コントローラ１０２のＩＯ処理系のＸ系統の下位ＩＦ１２０１は、
Ｘ系統ドライブ筐体２５に収納されたディスク装置２を接続するバックエンドループ２１に接続される。コントローラ１０３のＩＯ処理系のＸ系統の下位ＩＦ１２１１は、Ｘ系統ドライブ筐体２５に収納されたディスク装置２を接続するバックエンドループ２２に接続される。
【０１３５】
また、コントローラ１０２のＩＯ処理系のＹ系統の下位ＩＦ１２０２は、Ｙ系統ドライブ筐体２６に収納されたディスク装置２を接続するバックエンドループ２３に接続される。コントローラ１０３のＩＯ処理系のＹ系統の下位ＩＦ１２１２は、Ｙ系統ドライブ筐体２６に収納されたディスク装置２を接続するバックエンドループ２４に接続される。
【０１３６】
このように、「帯域拡大モード」に設定すれば、ストレージシステム１１のバックエンドは計４本になり、「標準モード」に比べてループ帯域が拡大される。
【０１３７】
また、第４実施形態では、それぞれのＩＯ処理系毎に代表ＭＰＵを設定する。例えば、Ｘ系統ドライブ筐体２５内のディスク装置２は、ＭＰＵ１５０１が管理を実施しするように設定する。Ｙ系統ドライブ筐体２６内のディスク装置２は、ＭＰＵ１５０２が管理を実施するように設定する。
【０１３８】
なお、第４実施形態の「標準モード」から「帯域拡大モード」への切り替えは、上記第２実施形態と同様の方法で実現することができる。また、第４実施形態では、図１０に示した第３実施形態の「単一のＩＯ処理系」の構成から拡張して「帯域拡大モード」に切り替えることもできる。また、第４実施形態のように構成しておけば、図８、図１０、図１１に示すどの構成の設定もユーザが行うことができる。
【０１３９】
このように、本発明の第３〜４実施形態によれば、第1〜２実施形態での効果に加えて、ＩＯ処理系単位での拡張が可能であるため、ストレージシステムの性能拡張性を高めることができる。
【０１４０】
なお、本発明は以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。例えば、上記実施形態では、ストレージシステムのコントローラが二重化されている場合について説明したが、特にこれに限定するものではない。ストレージシステムのコントローラは、１つであってもかまわない。
【０１４１】
また、本発明によれば、１つの装置において、データベースは標準モード、ストリーミングは帯域拡大モードというようなホスト計算機側アプリケーションに応じた使い分けが可能となる。
【図面の簡単な説明】
【０１４２】
【図１】本発明の第１実施形態のストレージシステムの概略図である。
【図２】論理ボリュームの割り当てを模式的に示した図である。
【図３】管理端末と管理画面の一例とを示す図である。
【図４】本発明の第１実施形態におけるキャッシュの構成の一例を示す図である。
【図５】本発明の第１実施形態のＭＰＵ間で行なわれる、共通管理情報更新の通知処理のフローを説明する図である。
【図６】帯域拡大モードに設定されている、第２実施形態のストレージシステムの構成を示す図である。
【図７】第２実施形態のストレージシステム１０の帯域拡大モードへの切り替えに処理のフローを説明するための図である。
【図８】本発明の第３実施形態のストレージシステムの概略図である。
【図９】本発明の第３実施形態のキャッシュの構成の一例を示す図である。
【図１０】本発明の第３実施形態のストレージシステムが、単一のＩＯ処理系だけで構成されている状態を示す図である。
【図１１】本発明の第４実施形態のストレージシステムの概略図である。
【符号の説明】
【０１４３】
２…ディスク装置、３…管理端末、１０、１１…ストレージシステム、１１…ストレージシステム、１２…ＬＡＮ/ＩＦ、２１、２２、２３、２４…バックエンドループ、３１…管理プログラム、３２…ＭＰＵ、３３…メモリ、３４…ＬＡＮ/ＩＦ、１００、１０１、１０２、１０３…コントローラ、１３０、１３１…データ転送制御部、１４０、１４１…キャッシュ、２００…ＲＡＩＤグループ、２０１、２０２、２０３…ＬＵＮ、１１０１、１１０２、１１１１、１１１２…上位ＩＦ、１２０１、１２０２、１２１１、１２１２…下位ＩＦ、１３０１、１３０２、１３１１、１３１２…データ転送制御部、１４０１、１４０２、１４０３、１４１１、１４１２…キャッシュ、１５０１、１５０２、１５１１、１５１２…ＭＰＵ、１６０１、１６０２、１６１１、１６１２…メモリ
【図１】
2005267545.tif 000003
【図２】
2005267545.tif 000004
【図３】
2005267545.tif 000005
【図４】
2005267545.tif 000006
【図５】
2005267545.tif 000007
【図６】
2005267545.tif 000008
【図７】
2005267545.tif 000009
【図８】
2005267545.tif 000010
【図９】
2005267545.tif 000011
【図１０】
2005267545.tif 000012
【図１１】
2005267545.tif 000013