説明

ストレージ装置およびストレージ装置の制御方法

【課題】記憶装置へのアクセス経路の確保を図ること。
【解決手段】第1の制御装置4は、記憶装置3へのアクセスを中継する第1の中継部4bと、第1の中継部4bの起動後に起動し、第2の制御装置5が有する記憶装置3へのアクセスを中継する第2の中継部5bを通じて記憶装置3にアクセスするアクセス制御部4aを有している。そして、第1の中継部4bは、アクセス制御部4aの起動に先立って起動し、アクセス制御部4aが起動する前に第2の制御装置5から第1の中継部4bと記憶装置3との接続要求を受けつけると、アクセス制御部4aの起動状態にかかわらず、記憶装置3へのアクセス経路を確立する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージ装置およびストレージ装置の制御方法に関する。
【背景技術】
【0002】
近年、HDD(Hard Disk Drive)等の大容量の記憶装置を複数備えるストレージ装置が広く使用されている。一般的に、ストレージシステムには、複数の記憶装置と、これらの記憶装置に対するアクセスを制御する制御装置とが含まれる。また、制御装置を複数設けて、記憶装置へのアクセス経路を冗長化したストレージシステムもある。アクセス経路を冗長化することで、記憶装置へのアクセスの信頼性を向上させることができる。
【0003】
さらに、各制御装置が、自装置と記憶装置とを直接結ぶ第1のアクセス経路の他に、自装置と記憶装置との間に他の制御装置を介した第2のアクセス経路を備えるようにすることで、各制御装置と記憶装置とのアクセス経路を冗長化することができる。例えば、各制御装置が、記憶装置に対するアクセスを中継するエクスパンダを備える場合に、各制御装置が、自装置内のエクスパンダを通じて記憶装置にアクセスするアクセス経路と、他の制御装置が備えるエクスパンダを通じて記憶装置にアクセスするアクセス経路とを用いて、記憶装置にアクセスすることが考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−155392号公報
【特許文献2】特開2006−72636号公報
【特許文献3】特開昭59−070145号公報
【特許文献4】特開2003−44178号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
制御装置が、記憶装置のデータ記憶を制御する制御部の起動に伴いエクスパンダが起動する仕様の場合、1つの制御装置の制御部が何らかの理由により起動しないと、起動しない制御部に接続されたエクスパンダを用いたアクセス経路を利用して記憶装置にアクセスすることができなくなるという問題があった。
【0006】
本発明はこのような点に鑑みてなされたものであり、記憶装置へのアクセス経路の確保を図るストレージ装置およびストレージ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、開示のストレージ装置が提供される。このストレージ装置は、記憶装置にアクセスする第1の制御装置および第2の制御装置を有している。
第1の制御装置は、記憶装置へのアクセスを中継する第1の中継部と、第1の中継部の起動後に起動し、第2の制御装置が有する記憶装置へのアクセスを中継する第2の中継部を通じて記憶装置にアクセスするアクセス制御部を有している。
【0008】
そして、第1の中継部は、アクセス制御部が起動する前に第2の制御装置から第1の中継部と記憶装置との接続要求を受けつけると、アクセス制御部の起動状態にかかわらず、記憶装置へのアクセス経路を確立する。
【発明の効果】
【0009】
記憶装置へのアクセス経路の確保を図ることができる。
【図面の簡単な説明】
【0010】
【図1】第1の実施の形態のストレージ装置を示す図である。
【図2】第2の実施の形態に係るストレージシステムの全体構成例を示す図である。
【図3】制御モジュールのハードウェア構成例を示す図である。
【図4】管理端末装置のハードウェア構成例を示す図である。
【図5】制御モジュールが備える処理機能の例を示すブロック図である。
【図6】エクスパンダの機能を説明するブロック図である。
【図7】エクスパンダの処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、実施の形態のストレージ装置を、図面を参照して詳細に説明する。第1の実施の形態において、開示のストレージ装置の実施の形態について説明し、その後、第2の実施の形態において、開示のストレージ装置をより具体的に説明する。
【0012】
<第1の実施の形態>
図1は、第1の実施の形態のストレージ装置を示す図である。
第1の実施の形態のストレージ装置1は、ホスト装置2の指示により記憶装置3にアクセスする第1の制御装置4および第2の制御装置5を有している。図1のストレージ装置1は、2つの第1の制御装置4および第2の制御装置5を有しているが、3つ以上の制御装置を有していてもよい。
【0013】
記憶装置3は、データを記憶する装置であり、例えば、複数のHDD等の記憶媒体を内部に備える。第1の制御装置4および第2の制御装置5は、記憶装置3へのアクセス処理を制御する。第1の制御装置4および第2の制御装置5は、例えば、ホスト装置2からの記憶装置3に対するアクセス要求に応じて、記憶装置3にアクセスする。
【0014】
例えば、第1の制御装置4および第2の制御装置5は、それぞれ、記憶装置3に記憶されたデータの読み出し要求をホスト装置2から受け付けると、読み出しを要求されたデータを記憶装置3から読み出し、ホスト装置2に送信する。あるいは、第1の制御装置4および第2の制御装置5は、それぞれ、記憶装置3へのデータの書き込み要求をホスト装置2から受け付けると、書き込みを要求されたデータを記憶装置3に書き込む。また、第1の制御装置4および第2の制御装置5は、記憶装置3に記憶されたデータをキャッシュする機能を備えていてもよい。
【0015】
第1の制御装置4および第2の制御装置5は、同じ装置構成をなしている。第1の制御装置4は、アクセス制御部4aと第1の中継部4bを備えている。また、第2の制御装置5は、アクセス制御部5aと第2の中継部5bを備えている。アクセス制御部4aとアクセス制御部5a、第1の中継部4bと第2の中継部5bは、それぞれ同じ処理を実行可能とする。
【0016】
アクセス制御部4aは、第1の中継部4b、または、第2の中継部5bを通じて、記憶装置3にアクセスする。アクセス制御部5aは、第2の中継部5b、または、第1の中継部4bを通じて、記憶装置3にアクセスする。
【0017】
第1の中継部4bは、アクセス制御部4aから記憶装置3へのアクセスを中継するとともに、アクセス制御部5aから記憶装置3へのアクセスを中継する。第2の中継部5bは、アクセス制御部5aから記憶装置3へのアクセスを中継するとともに、アクセス制御部4aから記憶装置3へのアクセスを中継する。
【0018】
このように、アクセス制御部4aから記憶装置3へのアクセス経路、および、アクセス制御部5aから記憶装置3へのアクセス経路のそれぞれが冗長化された構成により、ホスト装置2から記憶装置3へのアクセスの信頼性が向上する。
【0019】
電力供給部6は、第1の制御装置4および第2の制御装置5それぞれに制御電源の電力を供給する。なお、電力供給部6は、冗長化された構成をなしていてもよい。例えば第1の制御装置4の起動時には、電力供給部6から第1の中継部4bに制御電源の電力を供給する。電力の供給により、第1の中継部4bは、アクセス制御部4aに先立って起動する。第1の中継部4bは、電力供給部6からアクセス制御部4aへの電力の供給を許可する。この許可により、アクセス制御部4aの起動が可能となる。アクセス制御部4aが起動すると、アクセス制御部4aは、第1の中継部4bとの接続を確立する。
【0020】
なお、第1の中継部4bは、起動後に第1の制御装置4内の異常の監視を開始するようにしてもよい。なお、異常の種別は、例えば、温度異常(例えばオーバヒート)や、電流異常(例えば過電流)や、電圧異常(例えば過電圧)等が挙げられる。そして、監視の結果、異常がなければ、第1の中継部4bは、電力供給部6からアクセス制御部4aへの電力の供給を許可するようにしてもよい。また、監視の結果、アクセス制御部4aに異常があれば、第1の中継部4bは、電力供給部6からアクセス制御部4aへの電力の供給を許可しない。従って、アクセス制御部4aは、起動しない。なお、第1の中継部4bは、異常の種別によって、電力供給部6からアクセス制御部4aへの電力の供給を許可するか否かを決定するようにしてもよい。また、第1の中継部4bは、異常の種別によって、第1の中継部4bの起動を停止するようにしてもよい。図1では一例として、第1の中継部4bが電力供給部6からアクセス制御部4aへの電力の供給を許可せず、アクセス制御部4aが、起動しない場合を示している。ここで、第1の中継部4bは、第2の制御装置5から第1の中継部4bと記憶装置3とのアクセス経路の接続要求を受けつけると、アクセス制御部4aの起動状態にかかわらず、記憶装置3へのアクセス経路を確立する。従って、アクセス制御部5aが起動し、第2の中継部5bが記憶装置3へのアクセス経路を確立した状態では、アクセス制御部5aは、第2の中継部5b、または、第1の中継部4bを通じて、記憶装置3にアクセスすることができる。従って、ホスト装置2は、記憶装置3への冗長化されたアクセス経路を確保することができる。
【0021】
ところで、第1の中継部4bは、記憶装置3へのアクセス経路を確立した後に、第2の中継部5bに記憶装置3との接続要求を通知するようにしてもよい。この通知により、第2の中継部5bは、アクセス制御部4aの状態にかかわらず記憶装置3へのアクセス経路を確立する。従って、アクセス制御部4aが起動し、第1の中継部4bが記憶装置3へのアクセス経路を確立した状態では、アクセス制御部4aは、第1の中継部4b、または、第2の中継部5bを通じて、記憶装置3にアクセスすることができる。ストレージ装置1によれば、アクセス制御部4a、5aのいずれかが起動すれば、ホスト装置2から記憶装置3への冗長化されたアクセス経路を確保することができる。
【0022】
<第2の実施の形態>
次に、記憶装置へのアクセスを中継する中継部としてエクスパンダを用いたストレージ装置の構成例について説明する。図2は、第2の実施の形態に係るストレージシステムの全体構成例を示す図である。
【0023】
図2に示すストレージシステム1000は、ストレージ装置100と、ホスト装置20と管理端末装置30とを有している。
ストレージ装置100は、複数のHDDを備える。ストレージ装置100内のDE(Drive Enclosure)210,220のそれぞれには、複数のHDDが格納されている。なお、DE210、220は、例えば、ストレージ装置100の外部に設けられていてもよい。また、ストレージ装置100が備える記憶媒体は、HDDに限らず、例えばSSD(Solid State Drive)等の他の種類の記憶媒体が使用されてもよい。また、ストレージ装置100は、DE210、220内のHDDに対するアクセスを制御する2つの制御モジュール(Controller Module)10a,10bを備えている。なお、制御モジュール10aは、第1の制御装置の一例であり、制御モジュール10bは、第2の制御装置の一例である。
【0024】
ストレージ装置100には、ホスト装置20と管理端末装置30とが接続されている。ホスト装置20は、ユーザの操作に応じて、ストレージ装置100内の制御モジュール10aまたは制御モジュール10bに対して、DE210内のHDDまたはDE220内のHDDへのアクセスを要求する。なお、ホスト装置20と制御モジュール10a、10bとは、例えば、光ファイバを介して接続されている。
【0025】
管理端末装置30は、管理者の操作に応じて、ストレージ装置100の動作を管理する。例えば、管理端末装置30は、管理者の操作に応じて、ストレージ装置100内の制御モジュール10a、10bのそれぞれに対する電源投入や電源切断を要求することができる。なお、管理端末装置30と制御モジュール10a、10bとは、例えば、LAN(Local Area Network)ケーブルを介して接続されている。
【0026】
制御モジュール10a、10bは、それぞれ、ホスト装置20からのアクセス要求に応じてDE210、220内のHDDへのアクセスを制御する。例えば、制御モジュール10a、10bは、それぞれ、HDDに記憶されたデータの読み出し要求をホスト装置20から受け付けると、読み出しを要求されたデータをHDDから読み出し、ホスト装置20に送信する。あるいは、制御モジュール10a、10bは、それぞれ、HDDへのデータの書き込み要求をホスト装置20から受け付けると、書き込みを要求されたデータをHDDに書き込む。
【0027】
また、制御モジュール10a、10bは、DE210、220内のHDDに記憶されたデータをキャッシュする機能を備える。また、制御モジュール10aと制御モジュール10bとは互いにデータを送受信でき、制御モジュール10a、10bは、例えば、他方の制御モジュールが保持するキャッシュデータのバックアップを互いに保持する。また、制御モジュール10a、10bは、他方の制御モジュールの電源投入状態を制御することも可能になっている。なお、制御モジュール10a、10bは、例えば、DE210、220内のHDDに記憶されたデータをRAID(Redundant Arrays of Inexpensive Disks)によって管理してもよい。
【0028】
また、ストレージ装置100内には、PSU(Power Supply Unit)40a、40bが設けられている。PSU40a、40bは、制御モジュール10a、10bに制御電源の電力を供給し、DE210、220に駆動電力を供給する電源回路である。
【0029】
図3は、制御モジュールのハードウェア構成例を示す図である。
制御モジュール10aは、CPU(Central Processing Unit)11a、RAM(Random Access Memory)12a、PCI(Peripheral Component Interconnect)スイッチ13a、CA(Channel Adapter)14a、15a、IOC(In/Out Controller)16a、17a、エクスパンダ18a、19a、PCH(Platform Controller Hub)20a、SSD21a、LANインタフェース22a、FPGA(Field Programmable Gate Array)23a、およびNVRAM(Non Volatile RAM)24aを備えている。なお、エクスパンダ18aは、第1の中継部の一例である。
【0030】
また、制御モジュール10bは、制御モジュール10aと同じハードウェア構成によって実現される。すなわち、制御モジュール10b内のCPU11b、RAM12b、PCIスイッチ13b、CA14b、15b、IOC16b、17b、エクスパンダ18b、19b、PCH20b、SSD21b、LANインタフェース22b、FPGA23b、NVRAM24bは、制御モジュール10a内のCPU11a、RAM12a、PCIスイッチ13a、CA14a、15a、IOC16a、17a、エクスパンダ18a、19a、PCH20a、SSD21a、LANインタフェース22a、FPGA23a、およびNVRAM24aにそれぞれ対応する。なお、エクスパンダ18bは、第2の中継部の一例である。
【0031】
以下、基本的に制御モジュール10aのハードウェア構成について説明し、制御モジュール10bのハードウェア構成の説明については省略する。
CPU11aは、制御モジュール10a全体を統括的に制御する。RAM12aは、制御モジュール10aの主記憶装置として使用され、CPU11aに実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。また、RAM12aは、DE210、220内のHDDに記憶されたデータのキャッシュ領域としても使用される。
【0032】
PCIスイッチ13aは、CPU11aと、CA14a、15aおよびIOC16a、17aとの間で、データを送受信する。また、PCIスイッチ13aは、他方の制御モジュール10b内のPCIスイッチ13bと接続されている。以下、PCIスイッチ13aとPCIスイッチ13bとの間の通信経路を「通信経路P1」と呼ぶ。
【0033】
制御モジュール10aのCPU11aと、制御モジュール10bのCPU11bとは、通信経路P1を通じて通信できるようになっている。例えば、制御モジュール10aのCPU11aは、他方の制御モジュール10bにおいて発生した異常の内容を示す異常検出情報を、制御モジュール10bのCPU11bから通信経路P1を通じて取得することができる。また、例えば、CPU11aは、RAM12aに記憶されたHDDのキャッシュデータを、通信経路P1を通じて他方の制御モジュールのCPU11bに送信し、他方の制御モジュール内のRAM12bにキャッシュデータをバックアップするように依頼することもできる。
【0034】
CA14a、15aは、ホスト装置20と制御モジュール10aとの間でデータを送受信するインタフェース処理を実行する。なお、CA14a、15aを、それぞれ個別の光ファイバケーブルを介してホスト装置20に接続することにより、制御モジュール10aとホスト装置20との間の通信経路が冗長化され、通信の信頼性を向上させることができる。
【0035】
IOC16a、17aは、それぞれSASデバイスであるDE210、220内のHDDとの間のインタフェース処理を実行する制御回路(SASコントローラ)である。また、エクスパンダ18a、19aは、それぞれSASコントローラとSASデバイスとの間でデータを中継する。なお、IOC16a、17aとDE210、220間のインタフェースは、SASに限定されない。エクスパンダ18a、19aは、図示しないI2Cバスインタフェースを利用した経路およびFPGAレジスタを利用した経路の2つの経路で相互の通信が可能となっている。
【0036】
エクスパンダ18a、19aは、それぞれ内部にメモリを備え、制御モジュール10aの電源投入状態(例えば、未投入、投入中、投入完了等)を示す情報を内部のメモリに保持する。
【0037】
ここで、IOC16aは、エクスパンダ18aを通じてDE210、220に接続されている。また、IOC16aは、制御モジュール10b内のエクスパンダ18bを通じてDE210、220に接続されている。このように、IOC16aとDE210、220とが2つのエクスパンダ18a、18bを通じて接続されることで、IOC16aからDE210、220へのアクセス経路が冗長化されている。また、IOC17aは、エクスパンダ19aを通じてDE210、220に接続されている。また、IOC17aは、制御モジュール10b内のエクスパンダ19bを通じてDE210、220に接続されている。IOC17aとDE210、220とが2つのエクスパンダ19a、19bを通じて接続されることで、IOC17aからDE210、220へのアクセス経路が冗長化されている。
【0038】
同様に、IOC16bは、エクスパンダ18bを通じてDE210、220に接続されている。また、IOC16bは、制御モジュール10a内のエクスパンダ18aを通じてDE210、220に接続されている。このように、IOC16bとDE210、220とが2つのエクスパンダ18a、18bを通じて接続されることで、IOC16bからDE210、220へのアクセス経路も冗長化されている。IOC17bは、エクスパンダ19bを通じてDE210、220に接続されている。また、IOC17bは、制御モジュール10a内のエクスパンダ19aを通じてDE210、220に接続されている。IOC17bとDE210、220とが2つのエクスパンダ19a、19bを通じて接続されることで、IOC17bからDE210、220へのアクセス経路が冗長化されている。
【0039】
なお、以下の説明では、IOC16aからエクスパンダ18aを通じてDE210、220へアクセスする経路、IOC17aからエクスパンダ19aを通じてDE210、220へアクセスする経路、IOC16bからエクスパンダ18bを通じてDE210、220へアクセスする経路、およびIOC17bからエクスパンダ19bを通じてDE210、220へアクセスする経路を、「ストレート経路」と呼ぶ。また、IOC16aからエクスパンダ18bを通じてDE210、220へアクセスする経路、IOC17aからエクスパンダ19bを通じてDE210、220へアクセスする経路、IOC16bからエクスパンダ18aを通じてDE210、220へアクセスする経路、およびIOC17bからエクスパンダ19aを通じてDE210、220へアクセスする経路を、「クロス経路」と呼ぶ。
【0040】
PCH20aは、CPU11aと、SSD21a、LANインタフェース22aおよびFPGA23aとの間で、データを送受信する。
SSD21aは、制御モジュール10aの二次記憶装置として使用され、CPU11aにより実行されるプログラムやその実行に必要な各種のデータ等を記憶する。なお、二次記憶装置としては、例えば、HDD等の他の種類の不揮発性記憶装置が使用されてもよい。
【0041】
LANインタフェース22aは、LANケーブルを介して管理端末装置30と接続し、管理端末装置30との間でデータを送受信する。
FPGA23aは、CPU11aによってプログラム実行時の異常が検出された場合、検出された異常の内容を示す異常検出情報をCPU11aから受信し、受信した異常検出情報をNVRAM24aに保存する。さらに、FPGA23aは、制御モジュール10bのFPGA23bと通信する機能を備える。以下、FPGA23aとFPGA23bとの間の通信経路を、「通信経路P2」と呼ぶ。FPGA23aは、CPU11aからの要求、または制御モジュール10bのFPGA23bからの要求に応じて、NVRAM24aに保存した異常検出情報を、通信経路P2を用いて制御モジュール10bのFPGA23bに送信することもできる。
【0042】
なお、FPGA23aが実行する処理は、例えば、マイクロコンピュータ等の他の種類の制御回路によって実行されてもよい。
NVRAM24aは、FPGA23aでの処理に必要な各種のデータを記憶する不揮発性メモリである。また、NVRAM24aには、エクスパンダ18a、19aのCPU11aに対する接続位置を識別する情報を記憶している。また、NVRAM24aには、制御モジュール10aが検出した異常の内容を示す異常検出情報が、FPGA23aによって格納される。
【0043】
ところで、制御モジュール10aに電力が供給されていない状態からPSU40aまたはPSU40bから制御モジュール10aに電力が供給された場合、制御モジュール10aのFPGA23aおよびNVRAM24aが、まず起動する。その後、エクスパンダ18a、19aが起動する。エクスパンダ18a、19aが起動したときには、FPGA23aおよびNVRAM24aは既に起動しているため、エクスパンダ18a、19aからFPGA23aを介したNVRAM24aへのアクセスが可能となる。
【0044】
エクスパンダ18a、19aは起動すると、FPGA23aを介してNVRAM24aの所定のレジスタにアクセスする。なお、アクセスするレジスタの位置は、エクスパンダ18a、19aそれぞれ異なる。そして、エクスパンダ18a、19aは、レジスタに記憶された情報を読み取ることにより、自分がエクスパンダ18aであるのかエクスパンダ19aであるのかを知ることができる。
【0045】
図4は、管理端末装置のハードウェア構成例を示す図である。
管理端末装置30は、CPU131によって装置全体が制御されている。CPU131には、バス138を介して、RAM132と複数の周辺機器が接続されている。
【0046】
RAM132は、管理端末装置30の主記憶装置として使用される。RAM132には、CPU131に実行させるプログラムの少なくとも一部が一時的に格納される。また、RAM132には、CPU131による処理に必要な各種データが格納される。
【0047】
バス138に接続されている周辺機器としては、HDD133、グラフィック処理装置134、入力インタフェース135、ドライブ装置136および通信インタフェース137がある。
【0048】
HDD133は、コンピュータの二次記憶装置として使用される。HDD133には、CPU131が実行するプログラムや、各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【0049】
グラフィック処理装置134には、モニタ134aが接続されている。グラフィック処理装置134は、CPU131からの命令に従って、画像をモニタ134aの画面に表示させる。モニタ134aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等がある。
【0050】
入力インタフェース135には、例えば、キーボード135aとマウス135bとが接続されている。入力インタフェース135は、キーボード135aやマウス135bから送られてくる信号をCPU131に送信する。マウス135bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0051】
ドライブ装置136は、レーザ光等を利用して、光ディスク136aに記録されたデータの読み取りを行う。光ディスク136aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等がある。
【0052】
通信インタフェース137は、制御モジュール10a、10bとの間でLANケーブルを介してデータを送受信する。
なお、ホスト装置20についても、図4と同様のハードウェア構成によって実現できる。ただし、ホスト装置20が備える通信インタフェースは、制御モジュール10a、10bとの間で光ファイバを介してデータを送受信する。
【0053】
図5は、制御モジュールが備える処理機能の例を示すブロック図である。
図5では基本的に、制御モジュール10aが備える処理機能について説明し、制御モジュール10bが備える処理機能の説明については省略する。
【0054】
CPU11aは、IOアクセス制御部111aを有する。IOアクセス制御部111aは、DE210、220内のHDDに対するアクセスを制御する。IOアクセス制御部111aは、ホスト装置20から発行される、DE210内のHDDまたはDE220内のHDDに対するアクセス要求を、CA14aまたはCA15aから受け付ける。そして、IOアクセス制御部111aは、ストレート経路またはクロス経路を通じて、DE210内のHDDまたはDE220内のHDDにアクセスする。
【0055】
また、IOアクセス制御部111aは、DE210、220へのアクセス時に、IOC16a、17aに対して、ストレート経路とクロス経路のどちらを利用してDE210、220にアクセスするかを指定する。IOアクセス制御部111aは、DE210、220へのアクセスの際に、RAM12aに記憶したエクスパンダ(EXP)状態情報161aおよび他方エクスパンダ状態情報162aに基づいて、ストレート経路とクロス経路のどちらを利用してDE210、220にアクセスするかを決定する。
【0056】
エクスパンダ状態情報161aは、制御モジュール10aのエクスパンダ18a、19aの稼働状態を示す情報であり、他方エクスパンダ状態情報162aは、他方の制御モジュール10bのエクスパンダ18b、19bの稼働状態を示す情報である。具体的には、エクスパンダ状態情報161aおよび他方エクスパンダ状態情報162aは、ともに、対応するエクスパンダが使用可能状態であることを示す「Normal」、対応するエクスパンダが使用不能状態であることを示す「Fault」の2種類の値をとる。
【0057】
IOアクセス制御部111aは、エクスパンダ状態情報161aおよび他方エクスパンダ状態情報162aのうち「Normal」である状態情報に対応するエクスパンダを経由する経路を利用して、DE210、220にアクセスする。例えば、IOアクセス制御部111aは、エクスパンダ状態情報161aおよび他方エクスパンダ状態情報162aが共に「Normal」である場合には、ストレート経路を利用してDE210、220にアクセスする。また、エクスパンダ状態情報161aが「Normal」であり、他方エクスパンダ状態情報162aが「Fault」である場合には、ストレート経路を利用してDE210、220にアクセスする。また、IOアクセス制御部111aは、他方エクスパンダ状態情報162aが「Normal」であり、エクスパンダ状態情報161aが「Fault」である場合には、クロス経路を利用してDE210、220にアクセスする。
【0058】
次に、エクスパンダ18a、19a、18b、19bの機能を説明する。以下、エクスパンダ18aの機能を説明するが、エクスパンダ19a、18b、19bもエクスパンダ18aと同様の機能を有する。
【0059】
図6は、エクスパンダの機能を説明するブロック図である。
エクスパンダ18aは、EXP判断部181aと、状態監視部182aと、制御電源制御部183aと、他系DE接続要求部184aと、自系DE接続要求部185aと、EXP−DE接続部186aとを有している。
【0060】
EXP判断部181aは、FPGA23aを介してNVRAM24aにアクセスすることにより自身がエクスパンダ18aであることを判断する。
常駐電源で動作している状態監視部182aは、PSU40aまたはPSU40bからエクスパンダ18aに電源が供給されたときに、例えばユーザからの指示があったとき制御モジュール10a内のハードウェアの状態の監視を開始する。監視項目としては、例えば制御モジュール10aの所定の箇所に設置された温度センサが検出する温度や、制御モジュール10aの所定の箇所に設置された電圧センサが検出する電圧や、部品のマウント状況等が挙げられる。これらの情報は、例えばNVRAM24aに記憶されている。状態監視部182aは、NVRAM24aに記憶されている情報を定期的に読み出すことにより、監視を行う。なお、本実施の形態では、監視項目として温度、電圧および部品のマウント状況を例示したが、監視項目は、温度、電圧および部品のマウント状況に限定されない。なお、制御モジュール10a内のハードウェアの状態の監視を開始した段階では、エクスパンダ18aおよびエクスパンダ19aのみに電力が供給され、主制御部には電力は供給されない。
【0061】
状態監視部182aは、監視の結果得られる異常の有無(異常が存在する場合には、異常の種別)に応じて、制御モジュール10aを後述する第1の電源投入状態または第2の電源投入状態に遷移させる。状態監視部182aは、第1の電源投入状態または第2の電源投入状態に遷移させる際に、制御電源制御部183a、他系DE接続要求部184a、自系DE接続要求部185aおよびEXP−DE接続部186aに後述する処理を要求する。
【0062】
制御電源制御部183aは、状態監視部182aの要求に応じてPSU40aまたはPSU40bから供給された電力を、主制御部110aに供給する。主制御部110aに電力が供給されると、IOアクセス制御部111aは、エクスパンダ18a、19aおよびエクスパンダ18b、19bとの接続を確立する。
【0063】
他系DE接続要求部184aは、状態監視部182aの要求に応じてエクスパンダ18bのDE210、220への接続確立をエクスパンダ18bに要求する。
自系DE接続要求部185aは、状態監視部182aの要求に応じてエクスパンダ19aのDE210、220への接続確立をエクスパンダ19aに要求する。
【0064】
EXP−DE接続部186aは、状態監視部182aの要求に応じてPSU40aまたはPSU40bから供給された電力を、DE210、220に供給する。また、エクスパンダ18aのDE210、220との接続を確立する。
【0065】
エクスパンダ19aは、EXP判断部191aと、EXP−DE接続部192aとを有している。EXP判断部191aは、EXP判断部181aと同じ機能を有している。EXP−DE接続部192aは、自系DE接続要求部185aからのDE210、220との接続確立の要求に応じて、PSU40aまたはPSU40bから供給された電力を、DE210、220に供給する。また、エクスパンダ19aとDE210、220との接続を確立する。
【0066】
次に、制御モジュール10aがとり得る第1の電源投入状態および第2の電源投入状態について説明する。
状態監視部182aは、前述した監視項目の監視の結果、異常が発生していないと判断すると、制御モジュール10aの電源投入状態を第1の電源投入状態に遷移させる第1の要求を、制御電源制御部183a、他系DE接続要求部184a、自系DE接続要求部185aおよびEXP−DE接続部186aに通知する。第1の要求を受け取った制御電源制御部183aは、PSU40aおよびPSU40bから供給された電力を、主制御部110aに供給する。主制御部110aに電力が供給されると、IOアクセス制御部111aは、エクスパンダ18a、19aおよびエクスパンダ18b、19bとの接続を確立する。また、第1の要求を受け取った他系DE接続要求部184aは、DE210、220との接続の確立をエクスパンダ18bに要求する。エクスパンダ18bは、DE210、220との接続の確立が既に確立している場合は、他系DE接続要求部184aからの要求は無視することができる。また、第1の要求を受け取った自系DE接続要求部185aは、エクスパンダ19aにDE210、220との接続の確立を要求する。また、第1の要求を受け取ったEXP−DE接続部186aは、PSU40aまたはPSU40bから供給された電力を、DE210、220に供給する。また、エクスパンダ18aとDE210、220との接続を確立する。このため、ホスト装置20から制御モジュール10aを通じてDE210、220にアクセスすることが可能になる。また、制御モジュール10bがクロス経路(すなわち、制御モジュール10aのエクスパンダ18a、19aを経由するアクセス経路)を通じてDE210、220にアクセスすることも可能になる。
【0067】
一方、状態監視部182aは、前述した監視項目の監視の結果、異常が発生しているが、発生した異常が温度または電圧に関しないものである場合は、比較的軽度の異常であると判断し、そのまま状態の監視を継続する。なお、軽度の異常の判断基準は、実施の形態のものに限定されない。そして、状態監視部182aは、状態の監視を継続しているときに、エクスパンダ18bからの接続確立の要求を受け取った場合、制御モジュール10aの電源投入状態を第2の電源投入状態に遷移させる第2の要求を、自系DE接続要求部185aおよびEXP−DE接続部186aに通知する。第2の要求を受け取った自系DE接続要求部185aは、エクスパンダ19aにDE210、220との接続の確立を要求する。また、第2の要求を受け取ったEXP−DE接続部186aは、PSU40aまたはPSU40bから供給された電力を、DE210、220に供給する。また、EXP−DE接続部186aは、エクスパンダ18aとDE210、220との接続を確立する。第2の電源投入状態では、主制御部110aに電力が供給されていないため、ホスト装置20から制御モジュール10aを通じてDE210、220にアクセスすることはできない。しかしながら、第2の電源投入状態に遷移することにより、エクスパンダ18a、19aは動作可能な状態になる。このため、制御モジュール10bの主制御部110bが起動した状態では、ホスト装置20は、エクスパンダ18a、19aを経由したクロス経路を利用して、DE210、220にアクセスすることが可能になる。第2の電源投入状態では、制御モジュール10bはストレート経路とクロス経路の2つの経路を選択的に利用してDE210、220にアクセスすることが可能である。このため、制御モジュール10bからDE210、220へのアクセス経路が冗長化された状態が維持される。また、第2の電源投入状態において、状態監視部182aは、監視の結果、異常が解消されたと判断すると、制御モジュール10aの電源投入状態を第1の電源投入状態に遷移させる第1の要求を、制御電源制御部183a、他系DE接続要求部184a、自系DE接続要求部185aおよびEXP−DE接続部186aに通知する。なお、自系DE接続要求部185aおよびEXP−DE接続部186aは、第2の要求の後に第1の要求を受け取ると、処理が重複するため、第1の要求は無視することができる。
【0068】
また、状態監視部182aは、異常の種別の判断の結果、発生した異常が温度または電圧に関するものである場合は、比較的重度の異常であると判断し、エクスパンダ18aの電源をOFFする。なお、重度の異常の判断基準は、実施の形態のものに限定されない。
【0069】
なお、制御モジュール10bも、制御モジュール10aと同様に、電源投入状態として少なくとも第1の電源投入状態、第2の電源投入状態の2種類の状態をとる。
なお、本実施の形態では、エクスパンダ19aが有する機能とエクスパンダ18aが有する機能が異なる場合を説明したが、エクスパンダ19aは、エクスパンダ18aが有する機能と同等の機能を有していてもよい。
【0070】
次に、制御モジュール10aに電力が供給されていない状態からPSU40aまたはPSU40bが、エクスパンダ18aに電力を供給したときの、エクスパンダ18aおよびエクスパンダ19aの処理を説明する。
【0071】
図7は、エクスパンダの処理を示すフローチャートである。なお、図7では、説明の便宜上、エクスパンダ18aを「自系第1エクスパンダ」、エクスパンダ19aを「自系第2エクスパンダ」、エクスパンダ18bを「他系第1エクスパンダ」と表記している。
【0072】
[ステップS1] EXP判断部181aおよびEXP判断部191aは、自己がエクスパンダ18aかエクスパンダ19aかをそれぞれ判断する。自己がエクスパンダ18aである場合(ステップS1のYes)、ステップS2に遷移する。自己がエクスパンダ19aである場合(ステップS1のNo)、ステップS12に遷移する。
【0073】
[ステップS2] 状態監視部182aは、状態監視を開始する。そして、状態監視部182aは、エクスパンダ18bから接続確立の要求を受け付けたか否かを判断する。エクスパンダ18bから接続確立の要求を受け付けた場合(ステップS2のYes)、ステップS3に遷移する。エクスパンダ18bから接続確立の要求を受け付けていない場合(ステップ2のNo)、ステップS5に遷移する。
【0074】
[ステップS3] 状態監視部182aは、第2の電源投入状態に遷移させる第2の要求を、自系DE接続要求部185aおよびEXP−DE接続部186aに通知する。第2の要求を受け取ったEXP−DE接続部186aは、エクスパンダ18aとDE210、220との接続を確立する。その後、ステップS4に遷移する。
【0075】
[ステップS4] 第2の要求を受け取った自系DE接続要求部185aは、エクスパンダ19aとDE210、220との接続の確立をエクスパンダ19aに要求する。その後、ステップS5に遷移する。
【0076】
[ステップS5] 状態監視部182aは、制御モジュール10aに異常が発生したか否かを判断する。制御モジュール10aに異常が発生したと判断した場合(ステップS5のYes)、ステップS6に遷移する。制御モジュール10aに異常が発生していないと判断した場合(ステップS5のNo)、ステップS8に遷移する。
【0077】
[ステップS6] 状態監視部182aは、発生した異常が温度または電圧に関するものであるか否かを判断する。発生した異常が温度または電圧に関するものである場合(ステップS6のYes)、ステップS7に遷移する。発生した異常が温度または電圧に関するものではない場合(ステップS6のNo)、ステップS2に遷移する。
【0078】
[ステップS7] 状態監視部182aは、エクスパンダ18aの電源をOFFする。その後、図7の処理を終了する。
[ステップS8] 以下、本ステップS8およびステップS9〜S11にて第1の電源投入状態に遷移させる処理が実行される。まず、状態監視部182aは、第1の要求をEXP−DE接続部186aに通知する。その後、ステップS9に遷移する。第1の要求を受け取ったEXP−DE接続部186aは、PSU40aまたはPSU40bから供給された電力を、DE210、220に供給する。また、EXP−DE接続部186aは、エクスパンダ18aとDE210、220との接続を確立する。
【0079】
[ステップS9] 状態監視部182aは、第1の要求を他系DE接続要求部184aに通知する。その後、ステップS10に遷移する。第1の要求を受け取った他系DE接続要求部184aは、DE210、220との接続の確立をエクスパンダ18bに要求する。前述したように、エクスパンダ18bは、DE210、220との接続の確立が既に確立している場合は、他系DE接続要求部184aからの要求は無視することができる。
【0080】
[ステップS10] 状態監視部182aは、第1の要求を自系DE接続要求部185aに通知する。その後、ステップS11に遷移する。第1の要求を受け取った自系DE接続要求部185aは、エクスパンダ19aにDE210、220との接続の確立を要求する。EXP−DE接続部192aは、自系DE接続要求部185aからのDE210、220との接続確立の要求に応じて、PSU40aまたはPSU40bから供給された電力を、DE210、220に供給する。また、エクスパンダ19aとDE210、220との接続を確立する。
【0081】
[ステップS11] 状態監視部182aは、第1の要求を制御電源制御部183aに通知する。その後、図7の処理を終了する。第1の要求を受け取った制御電源制御部183aは、PSU40aまたはPSU40bから供給された電力を、主制御部110aに供給する。主制御部110aへの電力の供給により、主制御部110aが起動し、エクスパンダ18a、19aとの接続を確立する。
【0082】
[ステップS12] EXP−DE接続部192aは、エクスパンダ19aとDE210、220との接続確立の要求を、状態監視部182bから受け付けたか否かを判断する。エクスパンダ19aとDE210、220との接続確立の要求を、状態監視部182bから受け付けた場合(ステップS12のYes)、ステップS13に遷移する。エクスパンダ19aとDE210、220との接続確立の要求を、状態監視部182bから受け付けていない場合(ステップS12のNo)、エクスパンダ19aとDE210、220との接続確立の要求の受け付けを待機する。
【0083】
[ステップS13] EXP−DE接続部192aは、PSU40aおよびPSU40bから供給された電力を、DE210、220に供給する。また、EXP−DE接続部192aは、エクスパンダ19aとDE210、220との接続を確立する。その後、図7の処理を終了する。
【0084】
以上述べたように、ストレージ装置100によれば、主制御部110a、110bのうち、いずれか1つが起動すれば、ホスト装置20とDE210、220との冗長な経路を確保することができる。従って、装置運用の安全性を確保することができる。
【0085】
以上、本発明のストレージ装置およびストレージ装置の制御方法を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【0086】
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、第1の制御装置4、第2の制御装置5、制御モジュール10a、10bが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等が挙げられる。光磁気記録媒体には、MO(Magneto-Optical disk)等が挙げられる。
【0087】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0088】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0089】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
【0090】
以上の第1〜第2の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 記憶装置にアクセスする第1の制御装置および第2の制御装置を有するストレージ装置において、
前記第1の制御装置は、
前記記憶装置へのアクセスを中継する第1の中継部と、
前記第1の中継部の起動後に起動し、前記第2の制御装置が有する前記記憶装置へのアクセスを中継する第2の中継部を通じて前記記憶装置にアクセスするアクセス制御部と、
を有し、
前記第1の中継部は、前記第2の制御装置から前記第1の中継部と前記記憶装置とのアクセス経路の接続要求を受けつけると、前記アクセス制御部の起動状態にかかわらず、前記記憶装置へのアクセス経路を確立することを特徴とするストレージ装置。
【0091】
(付記2) 前記第1の中継部は、前記記憶装置へのアクセス経路を確立した後に、前記第2の中継部に前記記憶装置との接続要求を通知し、前記接続要求を受け付けた前記第2の中継部は、前記第2の制御装置の前記アクセス制御部の起動状態にかかわらず、前記記憶装置へのアクセス経路を確立することを特徴とする付記1記載のストレージ装置。
【0092】
(付記3) 前記第2の中継部は、前記記憶装置へのアクセス経路が確立している状態で前記第2の中継部と前記記憶装置との前記接続要求を受け取った場合、前記接続要求を無視することを特徴とする付記2記載のストレージ装置。
【0093】
(付記4) 当該第1の制御装置での異常の発生を検出するセンサをさらに有し、
前記第1の中継部は、前記センサが異常の発生を検出すると、異常の種別に応じて前記アクセス制御部は起動せず前記記憶装置へのアクセス経路を確立した状態を保つことを特徴とする付記1記載のストレージ装置。
【0094】
(付記5) 記憶装置にアクセスする第1の制御装置および第2の制御装置を有するストレージ装置の制御方法において、
前記第1の制御装置の前記記憶装置へのアクセスを中継する第1の中継部が、
前記第2の制御装置が有する前記記憶装置へのアクセスを中継する第2の中継部を通じて前記記憶装置にアクセスするアクセス制御部が起動する前に前記第2の制御装置から前記第1の中継部と前記記憶装置とのアクセス経路の接続要求を受けつけると、前記アクセス制御部の起動状態にかかわらず、前記記憶装置へのアクセス経路を確立する、
ことを特徴とするストレージ装置の制御方法。
【符号の説明】
【0095】
1、100 ストレージ装置
2、20 ホスト装置
3 記憶装置
4 第1の制御装置
4a、5a アクセス制御部
4b 第1の中継部
5b 第2の中継部
5 第2の制御装置
6 電力供給部
10a、10b 制御モジュール
18a、18b、19a、19b エクスパンダ
30 管理端末装置
40a、40b PSU
110a、110b 主制御部
181a、191a EXP判断部
182a 状態監視部
183a 制御電源制御部
184a 他系DE接続要求部
185a 自系DE接続要求部
186a、192a EXP−DE接続部
210、220 DE
1000 ストレージシステム

【特許請求の範囲】
【請求項1】
記憶装置にアクセスする第1の制御装置および第2の制御装置を有するストレージ装置において、
前記第1の制御装置は、
前記記憶装置へのアクセスを中継する第1の中継部と、
前記第1の中継部の起動後に起動し、前記第2の制御装置が有する前記記憶装置へのアクセスを中継する第2の中継部を通じて前記記憶装置にアクセスするアクセス制御部と、
を有し、
前記第1の中継部は、前記第2の制御装置から前記第1の中継部と前記記憶装置とのアクセス経路の接続要求を受けつけると、前記アクセス制御部の起動状態にかかわらず、前記記憶装置へのアクセス経路を確立することを特徴とするストレージ装置。
【請求項2】
前記第1の中継部は、前記記憶装置へのアクセス経路を確立した後に、前記第2の中継部に前記記憶装置との接続要求を通知し、前記接続要求を受け付けた前記第2の中継部は、前記第2の制御装置の前記アクセス制御部の起動状態にかかわらず、前記記憶装置へのアクセス経路を確立することを特徴とする請求項1記載のストレージ装置。
【請求項3】
当該第1の制御装置での異常の発生を検出するセンサをさらに有し、
前記第1の中継部は、前記センサが異常の発生を検出すると、異常の種別に応じて前記アクセス制御部は起動せず前記記憶装置へのアクセス経路を確立した状態を保つことを特徴とする請求項1記載のストレージ装置。
【請求項4】
記憶装置にアクセスする第1の制御装置および第2の制御装置を有するストレージ装置の制御方法において、
前記第1の制御装置の前記記憶装置へのアクセスを中継する第1の中継部が、
前記第2の制御装置が有する前記記憶装置へのアクセスを中継する第2の中継部を通じて前記記憶装置にアクセスするアクセス制御部が起動する前に前記第2の制御装置から前記第1の中継部と前記記憶装置とのアクセス経路の接続要求を受けつけると、前記アクセス制御部の起動状態にかかわらず、前記記憶装置へのアクセス経路を確立する、
ことを特徴とするストレージ装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate