(57)【特許請求の範囲】
【請求項１】
キャッシュメモリと、
互いにデータ転送能力の異なる３種類以上のディスク装置と、
前記キャッシュメモリと前記３種類以上のディスク装置との間におけるデータの転送の経路である二重化された伝送経路と、
前記３種類以上のディスク装置をデータ転送能力に基づいて２個のグループに分けて、前記２個のグループの各々を前記二重化された伝送経路の各々に割り当てるコントローラとを含み、
前記コントローラが、
前記３種類以上のディスク装置の種類を最大データ転送長の順に並べた場合における、最も値の小さい最大データ転送長Ｍｉｎを有するディスク装置の種類、中央に位置し最大データ転送長Ｍｉｄを有するディスク装置の種類及び最も値の大きい最大データ転送長Ｍａｘを有するディスク装置の種類を抽出し、前記最大データ転送長Ｍｉｎを有するディスク装置の種類から前記中央に位置するディスク装置の種類までを第１の初期グループとしかつ他のディスク装置の種類を第２の初期グループとするか、又は、前記中央に位置するディスク装置の種類から前記最大データ転送長Ｍａｘを有するディスク装置の種類までを第１の初期グループとしかつ他のディスク装置の種類を第２の初期グループとし、
ディスク装置の種類毎にその最大データ転送長と台数との積を求め、前記初期グループ毎にその初期グループに属するディスク装置の種類について求めた前記積の総和を求め、２個の前記初期グループについて求めた前記総和の比を求め、前記総和の比を用いて２個の前記初期グループについての検証を行う
ことを特徴とするディスクアレイ装置。
【請求項２】
前記コントローラが、前記最大データ転送長Ｍｉｄと前記最大データ転送長Ｍｉｎとの差分（Ｍｉｄ−Ｍｉｎ）と前記最大データ転送長Ｍｉｄと前記最大データ転送長Ｍａｘとの差分（Ｍａｘ−Ｍｉｄ）とを求め、（Ｍｉｄ−Ｍｉｎ）＜（Ｍａｘ−Ｍｉｄ）の場合には、前記最大データ転送長Ｍｉｎを有するディスク装置の種類から前記中央に位置するディスク装置の種類までを前記第１の初期グループとしかつ他のディスク装置の種類を前記第２の初期グループとし、（Ｍｉｄ−Ｍｉｎ）＞（Ｍａｘ−Ｍｉｄ）の場合には、前記中央に位置するディスク装置の種類から前記最大データ転送長Ｍａｘを有するディスク装置の種類までを前記第１の初期グループとしかつ他のディスク装置の種類を前記第２の初期グループとする
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
前記コントローラが、前記検証において、前記総和の比と予め定められた閾値との比較に基づいて、前記総和の比と前記閾値とが第１の関係にある場合、２個の前記初期グループを用いて、前記３種類以上のディスク装置を前記２個のグループに分け、前記総和の比と前記閾値とが前記第１の関係以外の関係である第２の関係にある場合、前記総和の比と前記閾値との関係が前記第１の関係となるように１又は複数の種類のディスク装置を前記総和の大きい初期グループから前記総和の小さい初期グループへ移動することにより、前記３種類以上のディスク装置を前記２個のグループに分ける
ことを特徴とする請求項２に記載のディスクアレイ装置。
【請求項４】
前記コントローラが、前記３種類以上のディスク装置へのアクセスを監視して、前記アクセスのコマンドにおいて指定されたデータ転送長に基づいて、前記３種類以上のディスク装置の前記二重化された伝送経路への割り当てを変更する
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項５】
前記コントローラが、前記３種類以上のディスク装置へのアクセスを監視して、前記アクセスの頻度に基づいて、前記３種類以上のディスク装置の前記二重化された伝送経路への割り当てを変更する
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項６】
前記コントローラが、前記二重化された伝送経路の一方に障害が発生した場合、前記二重化された伝送経路の他方を介して、前記３種類以上のディスク装置へアクセスする
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項７】
キャッシュメモリと、互いにデータ転送能力の異なる３種類以上のディスク装置と、前記キャッシュメモリと前記３種類以上のディスク装置との間におけるデータの転送の経路である二重化された伝送経路と、コントローラとを含むディスクアレイ装置の制御方法であって、
前記コントローラが、前記３種類以上のディスク装置のデータ転送能力を収集するステップと、
前記コントローラが、前記３種類以上のディスク装置の種類を最大データ転送長の順に並べた場合における、最も値の小さい最大データ転送長Ｍｉｎを有するディスク装置の種類、中央に位置し最大データ転送長Ｍｉｄを有するディスク装置の種類及び最も値の大きい最大データ転送長Ｍａｘを有するディスク装置の種類を抽出し、前記最大データ転送長Ｍｉｎを有するディスク装置の種類から前記中央に位置するディスク装置の種類までを第１の初期グループとしかつ他のディスク装置の種類を第２の初期グループとするか、又は、前記中央に位置するディスク装置の種類から前記最大データ転送長Ｍａｘを有するディスク装置の種類までを第１の初期グループとしかつ他のディスク装置の種類を第２の初期グループとするステップと、
前記コントローラが、ディスク装置の種類毎にその最大データ転送長と台数との積を求め、前記初期グループ毎にその初期グループに属するディスク装置の種類について求めた前記積の総和を求め、２個の前記初期グループについて求めた前記総和の比を求め、前記総和の比を用いて２個の前記初期グループについての検証を行うステップと、
前記コントローラが、前記検証に基づいて前記３種類以上のディスク装置を２個のグループに分けて、前記２個のグループの各々を前記二重化された伝送経路の各々に割り当てるステップとを含む
ことを特徴とするディスクアレイ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置及びディスクアレイ装置の制御方法に関する。
【背景技術】
【０００２】
ディスクアレイ装置においては、１個のコントロールモジュールに対して、多数のディスク装置が接続される。このため、コントロールモジュールと複数のディスク装置との間を接続する伝送経路におけるデータ転送が問題となる。
【０００３】
そこで、例えば、ストレージエリアネットワークシステムにおいて、各ユーザサーバは、磁気ディスク装置とのＩ／Ｆポートを通じたデータ送受において所定のデータ転送量が規定されており、各ユーザサーバと磁気ディスク装置間のデータ転送量を取得して監視し、ユーザサーバの規定のデータ転送量と取得した実際のデータ転送量とを比較し、この比較結果に応じてストレージのＩ／Ｆポートを選択して、このポートに接続する指示を該当のサーバに与えることが、提案されている。
【０００４】
また、複数のディスクアレイ装置タイプを有するディスクアレイ装置において、異なるディスクアレイ装置タイプを有するそれぞれのディスクアレイ装置は、一組の管理ルールに対応づけられ、管理ルールは、例えば、専用ディスクアレイ装置を識別し、専用ディスクアレイ装置を設定し、ディスクプロトコルメッセージを専用ディスクアレイ装置に送信し、専用ディスクアレイ装置から受信されたディスクプロトコルメッセージを処理し、そして、誤り条件および例外条件を処理するためのルールを含んでもよいことが、提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２８８１０５号公報
【特許文献２】特表２００６−５２４８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ディスクアレイシステムにおいて、同一の伝送経路に各々のデータ転送能力が異なる複数のディスク装置が接続される場合がある。この場合、各々のディスク装置におけるデータ転送の量が、ディスク装置毎に偏る可能性がある。
【０００７】
本発明は、複数のディスク装置におけるデータ転送の量の偏りを少なくするディスクアレイ装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示されるディスクアレイ装置は、キャッシュメモリと、互いにデータ転送能力の異なる３種類以上のディスク装置と、キャッシュメモリと３種類以上のディスク装置との間におけるデータの転送の経路である二重化された伝送経路と、３種類以上のディスク装置をデータ転送能力に基づいて２個のグループに分けて、２個のグループの各々を二重化された伝送経路の各々に割り当てるコントローラとを含む。コントローラが、前記３種類以上のディスク装置の種類を最大データ転送長の順に並べた場合における、最も値の小さい最大データ転送長Ｍｉｎを有するディスク装置の種類、中央に位置し最大データ転送長Ｍｉｄを有するディスク装置の種類及び最も値の大きい最大データ転送長Ｍａｘを有するディスク装置の種類を抽出し、前記最大データ転送長Ｍｉｎを有するディスク装置の種類から前記中央に位置するディスク装置の種類までを第１の初期グループとしかつ他のディスク装置の種類を第２の初期グループとするか、又は、前記中央に位置するディスク装置の種類から前記最大データ転送長Ｍａｘを有するディスク装置の種類までを第１の初期グループとしかつ他のディスク装置の種類を第２の初期グループとし、ディスク装置の種類毎にその最大データ転送長と台数との積を求め、初期グループ毎にその初期グループに属するディスク装置の種類について求めた積の総和を求め、２個の初期グループについて求めた総和の比を求め、総和の比を用いて２個の初期グループについての検証を行う。
【発明の効果】
【０００９】
開示されるディスクアレイ装置によれば、同一の伝送経路に各々のデータ転送能力が異なる複数のディスク装置が接続される場合でも、複数のディスク装置におけるデータ転送の量の偏りを少なくすることができる。
【図面の簡単な説明】
【００１０】
【図１】ディスクアレイ装置の構成を示す図である。
【図２】ディスク群管理テーブル等の説明図である。
【図３】ディスク割当処理の一例を示す図である。
【図４】ディスク割当処理の一例を示す図である。
【図５】ディスク管理処理フローである。
【図６】ディスク割当処理フローである。
【図７】ディスク割当処理フローの他の一例を示す図である。
【図８】ディスク割当処理の更に他の一例を示す図である。
【図９】ディスク割当処理の更に他の一例の説明図である。
【図１０】ディスク割当処理の更に他の一例を示す図である。
【図１１】ディスク割当処理フローの更に他の一例を示す図である。
【図１２】ディスクアレイ装置におけるデータ転送の説明図である。
【発明を実施するための形態】
【００１１】
ディスクアレイシステムにおいて、同一の伝送経路に多数のディスク装置が接続された場合、各々のディスク装置におけるデータ転送は、伝送経路のデータ転送能力により制約される。
【００１２】
例えば、図１２（Ａ）に示すように、ディスクアレイ装置において、ディスク装置５１０Ａ及びディスク装置５１０Ｂが、同一の伝送経路５１１Ａ及び伝送経路５１１Ｂを介して、コントローラ５０３に接続される。コントローラ５０３からディスク装置５１０Ａ及びディスク装置５１０Ｂへの伝送経路は二重化されている。ディスク装置５１０Ａ及びディスク装置５１０Ｂは同一の二重化された伝送経路５１１Ａ及び５１１Ｂに接続される。
【００１３】
ディスク装置５１０Ａのデータ転送能力は、ディスク装置５１０Ｂのデータ転送能力と異なる。例えば、図１２（Ｂ）に示すように、ディスク装置５１０Ａのデータ転送能力は、ディスク装置５１０Ｂのデータ転送能力よりも小さい。ここで、データ転送能力は、１回のデータ転送において転送されるデータの最大のサイズ、換言すれば、最大転送長である。
【００１４】
図１２（Ａ）において、伝送経路５１１Ａ及び５１１Ｂにある数以上のディスク装置が接続された場合、データが伝送される経路である伝送経路のデータ転送能力が、ディスクアレイ装置の性能のボトルネックになる。このように伝送経路のデータ転送能力が性能のボトルネックになっている状態においては、読出し処理の場合にはＩ／Ｏ要求がディスク装置５１０Ａ又はディスク装置５１０Ｂでデータ転送待ち状態となり、書込み処理の場合にはＩ／Ｏ要求がコントローラ５０３でデータ転送待ち状態となる。実行中のＩ／Ｏ要求の処理の完了を待って、新たなＩ／Ｏ要求が実行される。
【００１５】
このように、伝送経路のデータ転送能力が性能のボトルネックになっている場合、ディスク装置５１０Ａとディスク装置５１０Ｂとの間において、データ転送能力が異なることに起因して、結果的に、データ転送量の不均衡が生じる。
【００１６】
例えば、図１２（Ｂ）に示すように、ディスク装置５１０Ａ及びディスク装置５１０Ｂが、交互に、又は、等しい回数だけ、データ転送を実行するとする。また、ディスク装置５１０Ａ及びディスク装置５１０Ｂは、１回のデータ転送において、最大転送長の分のデータを転送するとする。この場合、結果的に、データ転送能力の大きいディスク装置５１０Ｂが、データ転送能力の小さいディスク装置５１０Ａよりも多くのデータを転送することになる。
【００１７】
開示のディスクアレイ装置は、同一の伝送経路に種類の異なるディスク装置が接続された場合における、ディスクアレイ装置のデータ転送の処理の不均衡を少なくする。
【００１８】
図１は、ディスクアレイ装置の構成を示す図である。
【００１９】
ディスクアレイ装置２は、ホストコンピュータ１に接続される。ディスクアレイ装置２は、コントローラ３と、複数のデバイスエンクロージャ（ＤＥ）４１、４２を含む。コントローラ３は、チャネルアダプタ（ＣＡ）５、キャッシュ６、ＣＰＵ（Central Processing Unit）７、メモリ８、２個のデバイスインターフェイス（ＤＩ）９Ａ、９Ｂを含む。複数のデバイスエンクロージャ４１、４２は、各々、複数のディスク装置１０を含む。ディスク装置１０は、単位記憶装置である。デバイスエンクロージャ４１、４２の数は２個に限られない。複数のディスク装置１０の数は５個に限られない。ディスクアレイ装置２は、例えばＲＡＩＤ装置である。
【００２０】
コントローラ３と複数のデバイスエンクロージャ４との間は、二重化された伝送経路１１１Ａ及び１１１Ｂ、１１２Ａ及び１１２Ｂにより接続される。伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂは、例えばファイバチャネル（ＦＣ；Fibre Channel）又はＳＡＳ（Serial Attached SCSI）等である。伝送経路１１１Ａ及び１１１Ｂ、１１２Ａ及び１１２Ｂを二重化することにより、コントローラ３とディスク装置１０との間において、例えば一方の伝送経路１１１Ａ又は１１２Ａに障害が発生しても、他方の伝送経路１１１Ｂ又は１１２Ｂを経由して、データ転送を行うことができる。
【００２１】
具体的には、伝送経路１１１Ａ及び１１１Ｂは、ＤＥ４１に含まれる複数のディスク装置１０についての二重化された伝送経路である。伝送経路１１２Ａ及び１１２Ｂは、ＤＥ４２に含まれる複数のディスク装置１０についての二重化された伝送経路である。二重化された伝送経路１１１Ａ及び１１１Ｂ、１１２Ａ及び１１２Ｂは、キャッシュ６とディスク装置１０との間におけるデータの転送の経路である。
【００２２】
伝送経路１１１Ａ及び１１１Ｂ、１１２Ａ及び１１２Ｂの二重化に対応して、ＤＩ９Ａ、９Ｂ、換言すれば、コントローラ３の通信ポートも二重化される。ＤＩ９Ａには、一方の伝送経路１１１Ａ及び１１２Ａが接続される。ＤＩ９Ｂには、他方の伝送経路１１１Ｂ及び１１２Ｂが接続される。
【００２３】
例えば、ＤＥ４１について見ると、ＤＥ４１に含まれる複数のディスク装置１０の各々に対して、二重化された伝送経路１１１Ａ及び１１１Ｂのいずれか一方が、後述する割り当て処理により、割り当てられる。あるディスク装置１０に対して、例えば伝送経路１１１Ａが割り当てられた場合、当該ディスク装置１０へのアクセスは、割り当てられた伝送経路１１１Ａを介して実行される。
【００２４】
また、伝送経路１１１Ａの割り当ての結果、当該ディスク装置１０に対して、伝送経路１１１Ａが接続されるＤＩ９Ａが、割り当てられることになる。当該ディスク装置１０へのアクセスは、割り当てられたＤＩ９Ａを介して実行される。
【００２５】
ここで、図１のディスクアレイ装置２において、ディスク装置１０は、互いにデータ転送能力の異なる３種類以上のディスク装置１０を含む。一方、キャッシュ６と３種類以上のディスク装置１０との間におけるデータの転送の経路が、前述したように、二重化される。従って、ＤＥ４１に含まれる複数のディスク装置１０の種類「３」は、伝送経路１１１Ａ及び１１１Ｂの多重化の程度である多重度「２」よりも大きく、ＤＩ９Ａ及び９Ｂの多重化の程度である多重度「２」よりも大きい。
【００２６】
また、ＤＥ４２について見ると、ＤＥ４２に含まれる複数のディスク装置１０の各々に対して、二重化された伝送経路１１２Ａ及び１１２Ｂのいずれか一方が割り当てられる。換言すれば、あるディスク装置１０に対して、例えば伝送経路１１２Ｂ及びＤＩ９Ｂが割り当てられた場合、当該ディスク装置１０へのアクセスは、割り当てられた伝送経路１１２Ｂ及びＤＩ９Ｂを介して実行される。ＤＥ４２に含まれる複数のディスク装置１０の種類「３」は、伝送経路１１２Ａ及び１１２Ｂの多重化の程度である多重度「２」よりも大きく、ＤＩ９Ａ及び９Ｂの多重化の程度である多重度「２」よりも大きい。
【００２７】
なお、ホストコンピュータ１に接続されるディスクアレイ装置２の数は、１個に限られず、複数であっても良い。また、ディスク装置１０は、ハードディスク装置（ＨＤＤ；Hard Disk Drive）、半導体ディスク装置（ＳＳＤ；Solid State Drive）のような種々の記憶装置であっても良い。
【００２８】
ディスクアレイ装置２は、ホストコンピュータ１からの書き込み要求に応じて、ホストコンピュータ１から受信したデータを、ディスク装置１０に書き込む。また、ディスクアレイ装置２は、ホストコンピュータ１からの読み出し要求に応じて、ディスク装置１０からデータを読み出して、ホストコンピュータ１へ送信する。
【００２９】
ディスクアレイ装置２において、ＣＡ５は、ホストコンピュータ１とキャッシュ６との間に接続され、ホストコンピュータ１とディスクアレイ装置２との間のデータ転送を制御する。例えば、ＣＡ５は、ホストコンピュータ１から書き込み要求とデータとを受信して、キャッシュ６に書込み要求とデータとを転送する。また、ＣＡ５は、ホストコンピュータ１から読み出し要求を受信して、キャッシュ６に読み出し要求を転送する。この後、ＣＡ５は、キャッシュ６からデータを受信して、読み出し要求に対する応答として、ホストコンピュータ１に転送する。
【００３０】
なお、キャッシュ６は、実際には、データを格納するキャッシュメモリと、キャッシュメモリを制御するキャッシュコントローラとを含む。キャッシュメモリには、ホストコンピュータ１から転送されたデータ、又は、ディスク装置１０から読み出されたデータが、一時的に格納される。キャッシュメモリは、ディスク装置１０よりも十分に高速なメモリ、例えばＤＲＡＭ（Dynamic Random Access Memory）のような半導体メモリである。
【００３１】
キャッシュ６は、書き込み要求とデータとを受信した場合、データをキャッシュメモリに書き込む。その後、キャッシュ６は、キャッシュメモリに格納したデータを、ＤＩ９Ａ、９Ｂを介して、ディスク装置１０に書き込む。
【００３２】
データの書込み処理において、データの書込み先のディスク装置１０がＤＥ４１に含まれかつ例えば伝送経路１１１Ａを割り当てられた場合、データは、ＤＩ９Ａ及び伝送経路１１１Ａを介して、キャッシュ６から当該ディスク装置１０に転送される。
【００３３】
キャッシュ６は、読み出し要求を受信した場合において、要求されたデータがキャッシュメモリに存在する場合、キャッシュ６は、要求されたデータをキャッシュメモリから読み出して、ＣＡ５に送信する。要求されたデータがキャッシュメモリに存在しない場合、キャッシュ６は、ＤＩ９Ａ、９Ｂを介して、要求されたデータをディスク装置１０から読み出して、ＣＡ５に送信する。ＣＡ５は、受信したデータをホストコンピュータ１に送信する。
【００３４】
データの読出し処理において、データの読出し元のディスク装置１０がＤＥ４１に含まれかつ例えば伝送経路１１１Ａを割り当てられた場合、データは、ＤＩ９Ａ及び伝送経路１１１Ａを介して、当該ディスク装置１０からキャッシュ６へ転送される。
【００３５】
ＣＰＵ７は、ディスクアレイ装置２に含まれる複数のディスク装置１０の各々と通信を行ってディスク情報を収集し、収集したディスク情報に基づいて、ディスク群管理テーブル８１を作成する。従って、ＣＰＵ７はディスク群管理テーブル作成部である。前記通信は、例えば、ディスクアレイ装置２の電源が投入された場合、又は、ディスクアレイ装置２に新たなディスク装置１０が接続された場合に実行される。これに加えて、前記通信は、例えば、ディスクアレイ装置２の動作中に定期的に実行される。ＣＰＵ７は、ディスクアレイ装置２から削除された（取り外された）ディスク装置１０からのディスク情報が得られないことにより、当該ディスク装置１０が削除されたことを知ることができる。従って、ＣＰＵ７は、ディスクアレイ装置２の電源が投入された場合に、収集したディスク情報に基づいてディスク群管理テーブル８１を作成し、ディスク装置１０が接続又は削除された場合に、新たに得た又は得られなくなったディスク情報に基づいてディスク群管理テーブル８１を更新する。ディスク群管理テーブル８１は、例えばメモリ８に格納される。
【００３６】
ディスク情報は、例えば、ディスクＩＤ、ディスク装置１０の種類、ディスク装置１０のデータ転送能力を含む。ディスクＩＤは、ディスク装置１０を一意に特定する識別情報である。ディスク装置１０の種類は、例えばディスク装置１０の製品型番である。ディスク装置１０のデータ転送能力は、例えば最大データ転送長である。
【００３７】
図２（Ａ）は、ディスク群管理テーブル８１の一例を示す。
【００３８】
ディスク群管理テーブル８１は、ディスク群毎に、ディスク管理情報を格納する。ディスク管理情報は、最大データ転送長、当該ディスク群に属するディスク装置１０の数を含む。ディスク群は、種類が同一であるディスク装置１０のグループである。種類が同一のディスク装置１０とは、同一の最大データ転送長を有するディスク装置である。最大データ転送長は、当該ディスク装置１０が１回のデータ転送において転送可能な最大のデータ長である。当該ディスク群に属するディスク装置１０の数は、経路毎に集計される。ここで、経路＃１は伝送経路１１１Ａ及び１１１Ｂであり、経路＃２は伝送経路１１２Ａ及び１１２Ｂである。
【００３９】
収集されたディスク情報には、ディスク装置１０の種類、ディスク装置１０のデータ転送能力が含まれる。従って、ＣＰＵ７は、収集したディスク情報に基づいて、ディスク群管理テーブル８１を作成することができる。収集されたディスク情報は、ディスク群管理テーブル８１とは別に、ディスク情報テーブルとして、メモリ８に格納される。
【００４０】
なお、ディスク装置１０の種類、換言すれば、製品の型番が異なっていても、ディスク装置１０のデータ転送能力が同一である場合がある。この場合、ＣＰＵ７は、製品の型番が異なっていても、ディスク装置１０のデータ転送能力が同一であるディスク装置１０を同一のディスク群に属するディスク装置として、ディスク群管理テーブル８１を作成する。逆に、ＣＰＵ７は、製品の型番が異なっていれば、ディスク装置１０のデータ転送能力が同一であっても、異なるディスク群に属するディスク装置として、ディスク群管理テーブル８１を作成するようにしても良い。
【００４１】
ＣＰＵ７は、ディスク群管理テーブル８１に基づいて、伝送経路管理テーブル８２を作成する。従って、ＣＰＵ７は伝送経路管理テーブル作成部である。伝送経路管理テーブル８２により、伝送経路管理テーブル８２は、ディスク群管理テーブル８１が作成又は更新された場合にこれに続いて作成又は更新される。従って、ＣＰＵ７は、ディスクアレイ装置２の電源が投入された場合に、伝送経路管理テーブル８２を作成し、ディスク装置１０が接続又は削除された場合に、必要に応じて、伝送経路管理テーブル８２を更新する。換言すれば、ＣＰＵ７は、ディスクアレイ装置２の電源が投入された場合に、ディスク装置１０に対する伝送経路の割り当てを実行し、ディスク装置１０が接続又は削除された場合に、必要に応じて、ディスク装置１０に対する伝送経路の割り当てを変更する。伝送経路管理テーブル８２は、例えばメモリ８に格納される。
【００４２】
図２（Ｂ）は、伝送経路管理テーブル８２の一例を示す。
【００４３】
伝送経路管理テーブル８２は、ディスク群毎に、ポート管理情報を格納する。ポート管理情報は、当該ディスク群に属するディスク装置１０がデータ転送において使用するポート、換言すれば、ＤＩ９Ａ、９Ｂを含む。ここで、例えば、ポートａはＤＩ９Ａであり、ポートｂはＤＩ９Ｂである。
【００４４】
伝送経路管理テーブル８２により、ディスク装置１０がデータ転送において使用するＤＩ９Ａ又は９Ｂが定められる。これにより、ディスク装置１０に対して、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂのいずれかが割り当てられる。換言すれば、ＣＰＵ７は、３種類以上のディスク装置１０を、データ転送能力に基づいて、２個のグループに分けて、更に、２個のグループの各々を、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂの各々に割り当てる。
【００４５】
ここで、ディスク装置１０の種類の数は、二重化された伝送経路毎にカウントされる。具体的には、二重化された伝送経路１１１Ａ及び１１１Ｂについて、及び、二重化された伝送経路１１２Ａ及び１１２Ｂについて、各々、ディスク装置１０の種類の数がカウントされる。二重化された伝送経路は、コントローラ３とディスク装置１０との間を接続する１個の経路であるから、二重化された伝送経路、換言すれば、１個の経路が、ディスク装置１０の種類の数をカウントする単位である。伝送経路１１１Ａ及び１１１Ｂに接続されたディスク装置１０の種類の数は、伝送経路１１２Ａ及び１１２Ｂに接続されたディスク装置１０の種類の数と、同一であっても異なっていても良い。
【００４６】
また、伝送経路は、二重化された伝送経路以外であっても良い。例えば、伝送経路の多重度（かつＤＩの多重度）をＴとし、ディスク装置１０の種類の数をＫとすると、Ｔは「３」以上であっても良く、Ｋは４＝（Ｔ＋１）以上であっても良い。換言すれば、ＣＰＵ７が、Ｋ種類以上のディスク装置１０を、データ転送能力に基づいて、Ｔ個のグループに分けて、更に、Ｔ個のグループの各々を、Ｔ重化された伝送経路に割り当てるようにしても良い。
【００４７】
図３及び図４は、ディスク割当処理の一例を示す図である。
【００４８】
ＣＰＵ７は、図３及び図４を参照して説明する処理により、ディスク装置１０を伝送経路に割り当てる処理である割当処理、換言すれば、伝送経路管理テーブル８２を作成する処理を実行する。具体的には、ＣＰＵ７は、伝送経路管理テーブル８２における、ディスク装置１０がデータ転送において使用するＤＩ９Ａ又は９Ｂを決定する。換言すれば、以下の処理により、ディスク装置１０が、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂのいずれかに割り当てられる。
【００４９】
ＣＰＵ７は、基本的には、３種類以上のディスク装置１０を、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂのいずれかにに割り当てる。従って、ＣＰＵ７は伝送経路割当処理部である。しかし、ディスク装置１０がＤＥ４１又は４２から取り外された場合には、ディスク装置１０の種類が、３種類以上である場合以外に、１種類又は２種類である場合がある。そこで、ＣＰＵ７は、ディスク装置１０を、以下のように、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂに割り当てる。
【００５０】
ＣＰＵ７は、ディスク群管理テーブル８１の作成の後、二重化された伝送経路毎、換言すれば、コントローラ３とディスク装置１０との間の経路毎に、伝送経路の多重度Ｔと、ディスク装置１０の種類の数Ｋとを比較する。伝送経路の多重度Ｔは、ＣＰＵ７が保持している値である。ディスク装置１０の種類の数Ｋは、二重化された伝送経路毎に、図２（Ａ）のディスク群管理テーブル８１から取得される。
【００５１】
例えば、図１のディスクアレイ装置２においては、伝送経路の多重度Ｔは「２」である。ディスク群管理テーブル８１において、経路＃１についてのディスク装置１０の種類の数Ｋは「４」であり、経路＃２についてのディスク装置１０の種類の数Ｋは「４」である。
【００５２】
ＣＰＵ７は、伝送経路の多重度Ｔとディスク装置１０の種類の数Ｋとの比較の結果に応じた処理を実行することにより、伝送経路管理テーブル８２を作成する。換言すれば、ＣＰＵ７は、伝送経路の多重度Ｔとディスク装置１０の種類の数Ｋとの比較の結果毎に異なる処理を実行することにより、ディスク装置１０の割り当て処理を実行する。なお、図１のディスクアレイ装置２においては、伝送経路の多重度Ｔは「２」であるので、実際には、ディスク装置１０の種類の数Ｋに応じた処理が実行される。
【００５３】
具体的には、ディスク装置１０の種類の数Ｋが「１」である場合、換言すれば、Ｋ＜Ｔである場合には、ディスク装置１０の数を用いた割り当て処理が実行される。ディスク装置１０の種類の数Ｋが「２」である場合、換言すれば、Ｋ＝Ｔである場合には、ディスク装置１０の数、又は、ディスク装置１０の種類を用いた割り当て処理が実行される。ディスク装置１０の種類の数Ｋが「３」以上である場合、換言すれば、Ｋ＞Ｔである場合には、ディスク装置１０の最大データ転送長を用いた割り当て処理が実行される。
【００５４】
最初に、二重化された伝送経路に接続されたディスク装置１０の種類が１種類である場合について、図３（Ａ）を参照して説明する。
【００５５】
ディスク装置１０の種類が１種類である場合には、ＣＰＵ７は、１種類のディスク装置１０の数が均等になるように、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂに割り当てる。
【００５６】
例えば、前述したタイミングで作成又は更新された図２（Ａ）に示すディスク群管理テーブル８１において、ディスクＡ群１０Ａのみのディスク管理情報が格納され、他のディスクＢ群１０Ｂ〜ディスクＤ群１０Ｄのディスク管理情報は格納されていないとする。換言すれば、伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂには、ディスクＡ群１０Ａに属するディスク装置１０のみが接続されているとする。
【００５７】
この場合、ＣＰＵ７は、伝送経路管理テーブル８２において、経路＃１について、ポートａに１０個のディスク装置１０を割り当て、ポートｂに１０個のディスク装置１０を割り当てる。換言すれば、ＣＰＵ７は、図３（Ａ）に示すように、経路＃１の一方である伝送経路１１１Ａに１０個のディスク装置１０を割り当て、経路＃１の他方である伝送経路１１１Ｂに１０個のディスク装置１０を割り当てる。これにより、経路＃１について、ディスクＡ群１０Ａに属する複数のディスク装置１０の間における、データ転送の偏りを少なくすることができる。
【００５８】
次に、ＣＰＵ７は、伝送経路管理テーブル８２において、経路＃２について、ポートａに１０個のディスク装置１０を割り当て、ポートｂに１０個のディスク装置１０を割り当てる。換言すれば、ＣＰＵ７は、図３（Ａ）と同様に、経路＃２の一方である伝送経路１１２Ａに１０個のディスク装置１０を割り当て、経路＃２の他方である伝送経路１１２Ｂに１０個のディスク装置１０を割り当てる。これにより、経路＃２について、ディスクＡ群１０Ａに属する複数のディスク装置１０の間における、データ転送の偏りを少なくすることができる。
【００５９】
次に、二重化された伝送経路に接続されたディスク装置１０の種類が２種類である場合について、図３（Ｂ）を参照して説明する。
【００６０】
ディスク装置１０の種類が２種類である場合には、ＣＰＵ７は、２種類のディスク装置１０を、その種類毎に、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂの各々に割り当てる。
【００６１】
例えば、前述したタイミングで作成又は更新された図２（Ａ）に示すディスク群管理テーブル８１において、ディスクＡ群１０Ａ及びディスクＢ群１０Ｂのディスク管理情報が格納され、他のディスクＣ群１０Ｃ及びディスクＤ群１０Ｄのディスク管理情報は格納されていないとする。換言すれば、伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂには、ディスクＡ群１０Ａに属するディスク装置１０及びディスクＢ群１０Ｂに属するディスク装置１０が接続されているとする。
【００６２】
この場合、ＣＰＵ７は、伝送経路管理テーブル８２において、経路＃１について、ポートａにディスクＡ群１０Ａに属するディスク装置１０を割り当て、ポートｂにディスクＢ群１０Ｂに属するディスク装置１０を割り当てる。換言すれば、ＣＰＵ７は、図３（Ｂ）に示すように、経路＃１の一方である伝送経路１１１ＡにディスクＡ群１０Ａに属するディスク装置１０を割り当て、経路＃１の他方である伝送経路１１１ＢにディスクＢ群１０Ｂに属するディスク装置１０を割り当てる。これにより、経路＃１について、ディスクＡ群１０Ａ及びディスクＢ群１０Ｂに属する複数のディスク装置１０の間における、データ転送の偏りを少なくすることができる。
【００６３】
次に、ＣＰＵ７は、伝送経路管理テーブル８２において、経路＃２について、ポートａにディスクＡ群１０Ａに属するディスク装置１０を割り当て、ポートｂにディスクＢ群１０Ｂに属するディスク装置１０を割り当てる。換言すれば、ＣＰＵ７は、図３（Ｂ）と同様に、経路＃２の一方である伝送経路１１２ＡにディスクＡ群１０Ａに属するディスク装置１０を割り当て、経路＃２の他方である伝送経路１１２ＢにディスクＢ群１０Ｂに属するディスク装置１０を割り当てる。これにより、経路＃２について、ディスクＡ群１０Ａ及びディスクＢ群１０Ｂに属する複数のディスク装置１０の間における、データ転送の偏りを少なくすることができる。
【００６４】
なお、ディスク装置１０の種類が２種類である場合には、ＣＰＵ７が、２種類のディスク装置１０を、２種類のディスク装置１０の数がその種類毎に均等となるように、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂの各々に割り当てるようにしても良い。この場合、２種類のディスク装置１０の各々の種類について、ディスク装置１０の種類が１種類である場合と同様にして、ディスク装置１０の伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂへの割り当てが実行される。
【００６５】
例えば、ＣＰＵ７は、経路＃１である伝送経路１１１Ａ及び１１１Ｂに、各々、ディスクＡ群１０Ａに属する１０個のディスク装置１０及びディスクＢ群１０Ｂに属する２０個のディスク装置１０を割り当てる。また、ＣＰＵ７は、経路＃２である伝送経路１１２Ａ及び１１２Ｂに、各々、ディスクＡ群１０Ａに属する１０個のディスク装置１０及びディスクＢ群１０Ｂに属する１０個のディスク装置１０を割り当てる。
【００６６】
ディスク装置１０の種類が２種類である場合、以上に述べた２つの処理のいずれに依るかは、ディスクアレイ装置２の特性や経験によって定められる。
【００６７】
次に、二重化された伝送経路に接続されたディスク装置１０の種類が３種類である場合について、図４を参照して説明する。
【００６８】
ディスク装置１０の種類が３種類以上である場合には、ＣＰＵ７は、３種類以上のディスク装置１０の各々を、データ転送能力を用いた以下の処理によって、二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂのいずれかに割り当てる。ここで、データ転送能力としては、当該ディスク装置１０が１回のデータ転送において転送可能なデータ長である最大データ転送長が用いられる。最大データ転送長の単位は、例えばキロバイトであり、図２（Ａ）、図９及び図１１において「ＫＢ」と表す。
【００６９】
最初に、ＣＰＵ７は、２個の初期グループの生成処理を行う。例えば、ディスク装置１０の種類の数をＸとする。ＣＰＵ７は、Ｘを２等分することにより、３種類以上のディスク装置１０を２個の初期グループに分ける。これにより、ディスク装置１０の種類の数が多い場合でも、少ない処理で最終的な２個のグループを求めることができる。
【００７０】
なお、Ｘが奇数の場合には、ＣＰＵ７は、ディスク装置１０の種類を最大データ転送長の順に並べた場合における、最も値の小さい最大データ転送長Ｍｉｎを有するディスク装置１０の種類、中央に位置するディスク装置１０の種類、最も値の大きい最大データ転送長Ｍａｘを有するディスク装置１０の種類を抽出する。更に、ＣＵＰＵ７は、中央に位置するディスク装置１０の種類の最大データ転送長Ｍｉｄと最大データ転送長Ｍｉｎとの差分（Ｍｉｄ−Ｍｉｎ）と、最大データ転送長Ｍｉｄと最大データ転送長Ｍａｘとの差分（Ｍａｘ−Ｍｉｄ）とを求める。（Ｍｉｄ−Ｍｉｎ）＜（Ｍａｘ−Ｍｉｄ）の場合には、ＣＰＵ７は、最も値の小さい最大データ転送長Ｍｉｎを有するディスク装置１０の種類から、中央に位置するディスク装置１０の種類までを１個のグループとし、残りを他の１個のグループとする。（Ｍｉｄ−Ｍｉｎ）＞（Ｍａｘ−Ｍｉｄ）の場合には、ＣＰＵ７は、中央に位置するディスク装置１０の種類から、最も値の大きい最大データ転送長Ｍａｘを有するディスク装置１０の種類までを１個のグループとし、残りを他の１個のグループとする。
【００７１】
この後、ＣＰＵ７は、最大データ転送長を用いて初期グループの重み付け処理を行う。具体的には、ＣＰＵ７は、ディスク装置１０の種類毎に、その最大データ転送長と台数との積を求め、初期グループ毎に、当該初期グループに属するディスク装置１０の種類について求めた積の総和を求める。
【００７２】
この後、ＣＰＵ７は、２個の初期グループについて検証処理を行う。例えば、ＣＰＵ７は、２個の初期グループについて求めた総和の比Ｙを求める。例えば、２個の初期グループの総和の中の大きい方を小さい方で割ることにより、総和の比Ｙを求めることができる。ＣＰＵ７は、求めた総和の比Ｙを閾値と比較する。閾値は、経験的に定めることができ、例えば「２」とされる。閾値は、「２」以外の値、例えば「１．５」「３」等であっても良い。
【００７３】
２個の初期グループの総和の比Ｙが閾値より小さい場合、ＣＰＵ７は、２個の初期グループをそのまま用いて、３種類以上のディスク装置１０をデータ転送能力に基づいて２個のグループに分ける。換言すれば、２個の初期グループが、そのまま最終的な２個のグループとされる。
【００７４】
２個の初期グループの総和の比Ｙが閾値より大きい場合、ＣＰＵ７は、２個の初期グループの変更処理を行う。具体的には、ＣＰＵ７は、１種類のディスク装置１０を、総和の大きい方の初期グループから総和の小さい方の初期グループへ移動することにより、初期グループを変更する。移動される１種類のディスク装置１０は、総和の大きい方の初期グループにおいて、最も値の小さい最大データ転送長を有するディスク装置１０である。
【００７５】
この後、ＣＰＵ７は、再度、前述した検証処理を行う。これにより、２個の初期グループの総和の比Ｙが閾値より小さい場合、ＣＰＵ７は、変更した２個の初期グループを用いて、３種類以上のディスク装置１０をデータ転送能力に基づいて２個のグループに分ける。２個の初期グループの総和の比Ｙが閾値より大きい場合、ＣＰＵ７は、再度、２個の初期グループの変更処理を行う。換言すれば、ＣＰＵ７は、２個の初期グループの総和の比Ｙが閾値より小さくなるまで、検証処理と変更処理とを繰り返す。
【００７６】
例えば、前述したタイミングで作成又は更新された図２（Ａ）に示すディスク群管理テーブル８１において、ディスクＡ群１０Ａ〜ディスクＤ群１０Ｄのディスク管理情報が格納されているとする。換言すれば、伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂには、ディスクＡ群１０Ａ〜ディスクＤ群１０Ｄに属するディスク装置１０が接続されているとする。
【００７７】
第１に、経路＃１に対するディスク装置１０の割り当てについて、説明する。
【００７８】
ＣＰＵ７は、図２（Ｂ）に示す伝送経路管理テーブル８２において、経路＃１について、ポートａにディスクＡ群１０Ａ〜ディスクＢ群１０Ｂに属するディスク装置１０を割り当て、ポートｂにディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄに属するディスク装置１０を割り当てる。換言すれば、ＣＰＵ７は、経路＃１の一方である伝送経路１１１ＡにディスクＡ群１０Ａ〜ディスクＢ群１０Ｂに属するディスク装置１０を割り当て、経路＃１の他方である伝送経路１１１ＢにディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄに属するディスク装置１０を割り当てる。これにより、経路＃１について、ディスクＡ群１０Ａ〜ディスクＤ群１０Ｄに属する複数のディスク装置１０の間における、データ転送の偏りを少なくすることができる。
【００７９】
このような割当処理のために、ＣＰＵ７は、４種類のディスク装置１０をデータ転送能力に基づいて２個の初期グループに分ける。これにより、ディスク装置１０は、ディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループと、ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループとに分けられる。
【００８０】
従って、ディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループの総和は、（４０×２０）＋（８０×４０）＝４０００である。ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループの総和は、（１００×２０）＋（１２０×４０）＝６８００である。従って、総和の比Ｙは、６８００／４０００＝１．７である。これは閾値「２」よりも小さい。そこで、ＣＰＵ７は、２個の初期グループをそのまま用いて、４種類のディスク装置１０を、ディスクＡ群１０Ａ〜ディスクＢ群１０Ｂのグループと、ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄのグループとに別ける。
【００８１】
更に、ＣＰＵ７は、２個のグループの各々を二重化された伝送経路１１１Ａ、１１１Ｂの各々に割り当てる。これにより、ディスクＡ群１０Ａ〜〜ディスクＢ群１０Ｂに属するディスク装置１０は、伝送経路１１１Ａを介してデータ転送を行い、ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄに属するディスク装置１０は、伝送経路１１１Ｂを介してデータ転送を行う。
【００８２】
第２に、経路＃２に対するディスク装置１０の割り当てについて、説明する。
【００８３】
ＣＰＵ７は、図２（Ｂ）に示す伝送経路管理テーブル８２において、経路＃２について、ポートａにディスクＡ群１０Ａ〜ディスクＣ群１０Ｃに属するディスク装置１０を割り当て、ポートｂにディスクＤ群１０Ｄに属するディスク装置１０を割り当てる。換言すれば、ＣＰＵ７は、経路＃１とは異なり、図４に示すように、経路＃２の一方である伝送経路１１２ＡにディスクＡ群１０Ａ〜ディスクＣ群１０Ｃに属するディスク装置１０を割り当て、経路＃２の他方である伝送経路１１２ＢにディスクＤ群１０Ｄに属するディスク装置１０を割り当てる。これにより、経路＃２について、ディスクＡ群１０Ａ〜ディスクＤ群１０Ｄに属する複数のディスク装置１０の間における、データ転送の偏りを少なくすることができる。
【００８４】
このような割当処理のために、ＣＰＵ７は、４種類のディスク装置１０をデータ転送能力に基づいて２個の初期グループに分ける。これにより、ディスク装置１０は、ディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループと、ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループとに分けられる。
【００８５】
従って、ディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループの総和は、（４０×２０）＋（８０×２０）＝２４００である。ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループの総和は、（１００×２０）＋（１２０×６０）＝９２００である。従って、総和の比Ｙは、９２００／２４００＝３．８である。これは閾値「２」よりも大きい。そこで、ＣＰＵ７は、１種類のディスク装置１０を、総和の大きい方のディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループから、総和の小さい方のディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループへ移動する。移動される１種類のディスク装置１０は、総和の大きい方のディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループにおいて、最も値の小さい最大データ転送長を有するディスク装置１０の種類であるディスクＣ群１０Ｃである。
【００８６】
これにより、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃの初期グループの総和は、（４０×２０）＋（８０×２０）＋（１００×２０）＝４４００となる。ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループの総和は、（１２０×６０）＝７２００となる。従って、総和の比Ｙは、７２００／４４００＝１．６である。これは閾値「２」よりも小さい。そこで、ＣＰＵ７は、２個の変更された初期グループを用いて、４種類のディスク装置１０を、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃのグループと、ディスクＤ群１０Ｄのグループとに別ける。
【００８７】
更に、ＣＰＵ７は、２個のグループの各々を二重化された伝送経路１１２Ａ、１１２Ｂの各々に割り当てる。これにより、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃに属するディスク装置１０は、伝送経路１１２Ａを介してデータ転送を行い、ディスクＤ群１０Ｄに属するディスク装置１０は、伝送経路１１２Ｂを介してデータ転送を行う。
【００８８】
なお、前述した検証処理及び変更処理に代えて、ＣＰＵ７が、２個の初期グループについて求めた総和の差分がより小さくなるように、初期グループを変更するようにしても良い。
【００８９】
例えば、図２（Ｂ）に示す伝送経路管理テーブル８２において、経路＃１について見ると、前述したように、ディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループの総和は４０００であり、ディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループの総和は６８００である。従って、総和の差分は６８００−４０００＝２８００である。
【００９０】
ここで、ＣＰＵ７が、１種類のディスク装置１０を、総和の大きい方のディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループから、総和の小さい方のディスクＡ群１０Ａ〜ディスクＢ群１０Ｂの初期グループへ移動する。移動される１種類のディスク装置１０は、総和の大きい方のディスクＣ群１０Ｃ〜ディスクＤ群１０Ｄの初期グループにおいて、最も値の小さい最大データ転送長を有するディスク装置１０の種類であるディスクＣ群１０Ｃである。
【００９１】
これにより、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃの初期グループの総和は６０００となり、ディスクＤ群１０Ｄの初期グループの総和は４８００となる。従って、総和の差分は６０００−４８００＝１２００である。
【００９２】
変更前の初期グループの総和よりも変更後の初期グループの総和が小さいので、ＣＰＵ７は、変更後の初期グループを用いて、４種類のディスク装置１０を、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃのグループと、ディスクＤ群１０Ｄのグループとに別ける。
【００９３】
なお、３種類以上のディスク装置１０を２個のグループに分けるために、閾値を用いるか、総和の差分を用いるかは、個々のディスクアレイ装置２に応じて定めるようにすれば良い。
【００９４】
また、ディスク群管理テーブル８１において、最小の最大データ転送長「４０」と最大の最大データ転送長「１２０」との平均値「８０」を求めて、当該平均値を閾値として用いて、ディスクＡ群１０Ａ〜ディスクＤ群１０Ｄを２個の初期グループに分けるようにしても良い。この時、閾値「８０」に等しい最大データ転送長を持つディスクＢ群１０Ｂは、いずれの初期グループとしても良い。また、ディスクＢ群１０Ｂに属するディスク装置１０を、２個の初期グループに属するディスク装置１０の個数の差分がより小さくなるように、分けるようにしても良い。また、ディスクＢ群１０Ｂに属するディスク装置１０を、２個の初期グループに均等な数ずつ、分けるようにしても良い。
【００９５】
図５は、ディスク管理処理フローである。
【００９６】
ディスクアレイ装置２の電源が投入されるか、又は、ＤＥ４に新たなディスク装置１０が搭載され又はディスク装置１０が削除される（ステップＳ１）。コントローラ３のＣＰＵ７は、電源の投入時又は新たなディスク装置１０の搭載時にディスクアレイ装置２に搭載された複数のディスク装置１０の各々と通信を行って、ディスク情報を収集する（ステップＳ２）。コントローラ３のＣＰＵ７は、ディスクアレイ装置２に搭載された全てのディスク装置１０からのディスク情報の収集が完了したか否かを調べる（ステップＳ３）。ディスク情報の収集が完了していない場合（ステップＳ３  Ｎｏ）、コントローラ３のＣＰＵ７は、ステップＳ２を繰り返す。コントローラ３のＣＰＵ７は、予め定められた回数だけステップＳ２を繰り返してもディスク情報が得られないディスク装置１０について、当該ディスク装置１０が削除されたと判断して、ディスク情報の収集が完了したと判断する。ディスク情報の収集が完了した場合（ステップＳ３  Ｙｅｓ）、コントローラ３のＣＰＵ７は、全てのディスク装置１０からのディスク情報に基づいてディスク群管理テーブル８１を作成し、ディスク群管理テーブル８１に基づいて、前述したように、ポートの割当処理を実行する（ステップＳ４）。これにより、伝送経路管理テーブル８２が作成される。
【００９７】
なお、前述したように、ステップＳ４の最初において、ＣＰＵ７は、伝送経路の多重度Ｔとディスク装置１０の種類の数Ｋとを比較する。具体的には、ディスク装置１０の種類の数Ｋが「１」である場合には、ステップＳ４として、ディスク装置１０の数を用いた割り当て処理が実行される。ディスク装置１０の種類の数Ｋが「２」である場合には、ステップＳ４として、例えばディスク装置１０の種類を用いた割り当て処理が実行される。ディスク装置１０の種類の数Ｋが「３」以上である場合には、ステップＳ４として、図６に示すように、ディスク装置１０の最大データ転送長を用いた割り当て処理が実行される。
【００９８】
図６は、ディスク割当処理フローである。
【００９９】
コントローラ３のＣＰＵ７は、ある１個の経路Ｎを選択する（ステップＳ１１）。選択される経路Ｎは、当該経路に接続されたディスク装置１０の種類の数Ｋが３以上である経路である。ＣＰＵ７は、図２（Ａ）のディスク群管理テーブル８１に格納された経路を先頭から順に参照して、当該経路に接続されたディスク装置１０の種類の数Ｋを求めて、Ｋが３以上である場合に当該経路を選択する。ステップＳ１１により、経路Ｎに搭載された（接続された）ディスク装置１０についてのポートの設定が開始される。
【０１００】
次に、コントローラ３のＣＰＵ７は、経路Ｎにおける１個のディスク装置１０、例えばＭ番目のディスク装置１０を選択する（ステップＳ１２）。このために、図２（Ａ）のディスク群管理テーブル８１は、実際には、経路毎かつディスク群毎に、ディスク数に加えて、当該経路に接続されたディスク装置１０のディスクＩＤを格納する。ディスクＩＤは、ディスクアレイ装置２において、ディスク装置１０を一意に特定する識別情報である。例えば、ディスク群管理テーブル８１において、経路＃１に接続されたディスクＡ群について、その数「２０」と共に、ＩＤ＝＃１０、ＩＤ＝＃１１、ＩＤ＝＃１２等のディスクＩＤが格納される。これらのディスクＩＤは、経路＃１に接続されたディスクＡ群に属するディスク装置１０を示す。ステップＳ１２により、選択したＭ番目のディスク装置１０についてのポートの設定が開始される。Ｍ番目のディスク装置１０は、例えば、当該経路に接続されたディスク装置１０の中でディスクＩＤの小さい順に選択される。
【０１０１】
コントローラ３のＣＰＵ７は、Ｍ番目のディスク装置１０のディスクＩＤを用いて、ディスク群管理テーブル８１の選択した経路を参照することにより、Ｍ番目のディスク装置１０が選択した経路に接続されたディスクＡ群１０Ａに属するか否かを判断する（ステップＳ１３）。
【０１０２】
Ｍ番目のディスク装置１０がディスクＡ群１０Ａに属する場合（ステップＳ１３  Ｙｅｓ）、コントローラ３のＣＰＵ７は、伝送経路管理テーブル８２を参照することにより、Ｍ番目のディスク装置１０が使用するポートを設定する（ステップＳ１４）。
【０１０３】
Ｍ番目のディスク装置１０がディスクＡ群１０Ａに属さない場合（ステップＳ１３  Ｎｏ）、コントローラ３のＣＰＵ７は、前述したように、ディスク群管理テーブル８１を参照することにより、Ｍ番目のディスク装置１０がディスクＢ群１０Ｂに属するか否かを判断する（ステップＳ１５）。Ｍ番目のディスク装置１０がディスクＢ群１０Ｂに属する場合（ステップＳ１５  Ｙｅｓ）、コントローラ３のＣＰＵ７は、伝送経路管理テーブル８２を参照することにより、Ｍ番目のディスク装置１０が使用するポートを設定する（ステップＳ１６）。
【０１０４】
Ｍ番目のディスク装置１０がディスクＢ群１０Ｂに属さない場合（ステップＳ１５  Ｎｏ）、コントローラ３のＣＰＵ７は、前述したように、ディスク群管理テーブル８１を参照することにより、Ｍ番目のディスク装置１０がディスクＣ群１０Ｃに属するか否かを判断する（ステップＳ１７）。Ｍ番目のディスク装置１０がディスクＣ群１０Ｃに属する場合（ステップＳ１７  Ｙｅｓ）、コントローラ３のＣＰＵ７は、伝送経路管理テーブル８２を参照することにより、Ｍ番目のディスク装置１０が使用するポートを設定する（ステップＳ１８）。
【０１０５】
Ｍ番目のディスク装置１０がディスクＣ群１０Ｃに属さない場合（ステップＳ１７  Ｎｏ）、コントローラ３のＣＰＵ７は、前述したように、ディスク群管理テーブル８１を参照することにより、Ｍ番目のディスク装置１０がディスクＤ群１０Ｄに属するか否かを判断する（ステップＳ１９）。Ｍ番目のディスク装置１０がディスクＤ群１０Ｄに属する場合（ステップＳ１９  Ｙｅｓ）、コントローラ３のＣＰＵ７は、伝送経路管理テーブル８２を参照することにより、Ｍ番目のディスク装置１０が使用するポートを設定する（ステップＳ１１０）。
【０１０６】
Ｍ番目のディスク装置１０がディスクＤ群１０Ｄに属さない場合（ステップＳ１９  Ｎｏ）、コントローラ３のＣＰＵ７は、経路Ｎにおける全てのディスク装置１０についてのポートの設定が終了したか否かを判断する（ステップＳ１１１）。このために、例えば、ＣＰＵ７は、図２（Ａ）のディスク群管理テーブル８１において、ポートの設定が終了したディスク装置１０について、当該終了を示すフラグを立てる。全てのディスク装置１０についてのポートの設定が終了しない場合（ステップＳ１１１  Ｎｏ）、コントローラ３のＣＰＵ７は、ステップＳ１２を繰り返す。
【０１０７】
全てのディスク装置１０についてのポートの設定が終了した場合（ステップＳ１１１  Ｙｅｓ）、コントローラ３のＣＰＵ７は、全ての経路についてのポートの設定が終了したか否かを判断する（ステップＳ１１２）。このために、例えば、ＣＰＵ７は、図２（Ａ）のディスク群管理テーブル８１において、当該経路に接続された全てのディスク装置１０についてポートの設定が終了した経路について、当該終了を示すフラグを立てる。全ての経路についてのポートの設定が終了しない場合（ステップＳ１１２  Ｎｏ）、コントローラ３のＣＰＵ７は、ステップＳ１１を繰り返す。全ての経路についてのポートの設定が終了した場合（ステップＳ１１２  Ｙｅｓ）、コントローラ３のＣＰＵ７は、処理を終了する。
【０１０８】
なお、以上のように設定されたポートは、例えばキャッシュ６に送信され保持される。これにより、キャッシュ６は、ディスク装置１０に応じて設定されたポート、換言すれば、伝送経路を介して、データ転送を実行する。
【０１０９】
図７は、ディスク割当処理フローの他の一例を示す図である。
【０１１０】
図７の処理においては、ポートの設定が、Ｉ／Ｏ処理要求を受信する都度に実行される。なお、図７の処理において、図２（Ａ）のディスク群管理テーブル８１及び伝送経路管理テーブル８２は、経路＃１におけるディスクＡ群１０Ａ〜ディスクＣ群１０Ｃについてのみのディスク管理データを格納するものとする。
【０１１１】
コントローラ３は、ホストコンピュータ１からのＩ／Ｏ処理要求を受信すると（ステップＳ２１）、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスであるか否かを判断する（ステップＳ２２）。例えば、キャッシュ６は、受信したＩ／Ｏ処理要求をＣＰＵ７に送信して、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスであるか否かを問い合わせる。これに応じて、ＣＰＵ７は、Ｉ／Ｏ処理要求に含まれるアクセス先のディスク装置１０のディスクＩＤを用いて保持するディスク管理情報を参照することにより、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスであるか否かを判断する。
【０１１２】
Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスである場合（ステップＳ２２  Ｙｅｓ）、コントローラ３は、伝送経路管理テーブル８２を参照して、ディスクＡ群１０Ａに割り当てられたポート、例えばポートａを使用することを決定し（ステップＳ２３）、決定したポートａを用いて、当該ディスク装置１０へのアクセスを実行する（ステップＳ２４）。例えば、ＣＰＵ７は、前記判断に基づいて、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスである場合にはポートａをキャッシュ６に返信し、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスでない場合にはその旨をキャッシュ６に返信する。これにより、キャッシュ６は、当該ディスク装置１０について指定されたポートａを介して、当該ディスク装置１０にアクセスする。
【０１１３】
Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスでない場合（ステップＳ２２  Ｎｏ）、コントローラ３は、ステップＳ２２と同様にして、当該Ｉ／Ｏ処理要求がディスクＢ群１０Ｂについてのアクセスであるか否かを判断する（ステップＳ２５）。Ｉ／Ｏ処理要求がディスクＢ群１０Ｂについてのアクセスである場合（ステップＳ２５  Ｙｅｓ）、コントローラ３は、ステップＳ２３と同様にして、ディスクＢ群１０Ｂに割り当てられたポート、例えばポートｂを使用することを決定し（ステップＳ２６）、決定したポートｂを用いてステップＳ２４を実行する。
【０１１４】
Ｉ／Ｏ処理要求がディスクＢ群１０Ｂについてのアクセスでない場合（ステップＳ２５  Ｎｏ）、コントローラ３は、ステップＳ２２と同様にして、当該Ｉ／Ｏ処理要求がディスクＣ群１０Ｃについてのアクセスであるか否かを判断する（ステップＳ２７）。Ｉ／Ｏ処理要求がディスクＣ群１０Ｃについてのアクセスである場合（ステップＳ２７  Ｙｅｓ）、コントローラ３は、ステップＳ２６を実行して、ディスクＣ群１０Ｃに割り当てられたポート、例えばポートｂを使用することを決定し、決定したポートｂを用いてステップＳ２４を実行する。
【０１１５】
Ｉ／Ｏ処理要求がディスクＣ群１０Ｃについてのアクセスでない場合（ステップＳ２７  Ｎｏ）、コントローラ３は、Ｉ／Ｏ処理要求についての処理をエラー終了する（ステップＳ２８）。
【０１１６】
次に、図８〜図１１を参照して、ディスク割当処理の更に他の一例について説明する。
【０１１７】
図１〜図７のディスク割当処理においては、ポートの割当の決定のために最大データ転送長が用いられ、また、ディスク装置１０に割り当てられたポートは固定である。これに対して、図８〜図１１のディスク割当処理においては、ポートの割当の決定のためにＩ／Ｏ転送長が用いられ、また、ディスク装置１０に割り当てられたポートは可変である。
【０１１８】
図８は、ディスク割当処理の更に他の一例を示す図である。なお、図８の処理において、図２（Ａ）のディスク群管理テーブル８１及び図２（Ｂ）の伝送経路管理テーブル８２は、経路＃１におけるディスクＡ群１０Ａ〜ディスクＣ群１０Ｃについてのみのディスク管理データを格納するものとする。
【０１１９】
この場合、例えばディスクアレイ装置２の電源投入時には、図５及び図６の処理により、図８に示すように、ディスクＡ群１０Ａは伝送経路１１１Ａに割り当てられ、ディスクＢ群１０Ｂ〜ディスクＣ群１０Ｃは伝送経路１１１Ｂに割り当てられる。
【０１２０】
この後、コントローラ３のＣＰＵ７は、ディスク装置１０へのアクセスを監視する。このために、キャッシュ６は、ホストコンピュータ１から受信したＩ／Ｏ処理要求のコマンドを、ＣＰＵ７に送る。ＣＰＵ７は、Ｉ／Ｏ処理要求のコマンドにおいて指定されたデータ転送長であるＩ／Ｏ転送長に基づいて、ディスク装置１０の二重化された伝送経路１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂへの割り当てを変更する。
【０１２１】
図９（Ａ）は、Ｉ／Ｏ処理要求のコマンドの一例を示す。
【０１２２】
Ｉ／Ｏ処理要求のコマンドは、例えば、コマンド種別、データの転送元、データの転送先、Ｉ／Ｏ転送長を含む。コマンド種別は、例えば、データの書き込み要求又はデータの読出し要求のいずれかである。データの転送元はデータの転送元を示すアドレスである。データの転送先は、データの転送先を示すアドレスである。Ｉ／Ｏ転送長は、当該コマンドの実行により転送されるデータの実際のデータ長である。
【０１２３】
ここで、前述したように、ディスク群管理テーブル８１において、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃの最大データ転送長は、図９（Ｂ）に示す通りである。また、ディスクＡ群１０Ａは伝送経路１１１Ａに割り当てられ、ディスクＢ群１０Ｂ〜ディスクＣ群１０Ｃは伝送経路１１１Ｂに割り当てられている。
【０１２４】
これに応じて、ＣＰＵ７は、ポートａ、換言すれば、伝送経路１１１Ａには、ディスクＡ群１０Ａの最大データ転送長である４０キロバイト以下のＩ／Ｏ転送長を有するディスク群を割り当てる。また、ＣＰＵ７は、ポートｂ、換言すれば、伝送経路１１１Ｂには、ディスクＡ群１０Ａの最大データ転送長である４０キロバイトより大きいＩ／Ｏ転送長を有するディスク群を割り当てる。
【０１２５】
そこで、ディスクＡ群１０Ａ〜ディスクＣ群１０ＣについてのＩ／Ｏ転送長が、図９（Ｃ）に示す値であるとする。具体的には、ディスクＡ群１０ＡについてのＩ／Ｏ転送長が３０キロバイトであり、ディスクＢ群１０ＢについてのＩ／Ｏ転送長が６０キロバイトであり、ディスクＣ群１０ＣについてのＩ／Ｏ転送長が２０キロバイトであるとする。
【０１２６】
この場合、ＣＰＵ７は、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃの伝送経路１１１Ａ及び１１１Ｂへの割り当てを、図８に示す状態から、図１０に示す状態に変更する。換言すれば、ＣＰＵ７は、ディスクＡ群１０Ａ及びディスクＣ群１０Ｃを伝送経路１１１Ａに割り当て、ディスクＢ群１０Ｂを伝送経路１１１Ｂに割り当てる。
【０１２７】
具体的には、ディスクＡ群１０Ａは、Ｉ／Ｏ転送長が３０キロバイトであるので、そのまま、伝送経路１１１Ａに割り当てる。なお、実際には、ディスクＡ群１０Ａの割り当てが変更されることは無い。ディスクＢ群１０Ｂは、Ｉ／Ｏ転送長が６０キロバイトであるので、そのまま、伝送経路１１１Ｂに割り当てる。
【０１２８】
一方、ディスクＣ群１０Ｃは、Ｉ／Ｏ転送長が２０キロバイトであるので、４０キロバイト以下のＩ／Ｏ転送長を有するディスク群が割り当てられる、ポートａ、換言すれば、伝送経路１１１Ａに、割り当てるようにする。従って、ディスクＣ群１０Ｃの割り当てが、図８に示すポートｂ、換言すれば、伝送経路１１１Ｂから、ポートａ、換言すれば、伝送経路１１１Ａに変更される。これにより、実際に転送されるデータのサイズに基づいて、伝送経路にディスク装置１０を割り当てることができる。
【０１２９】
例えば、ディスク装置１０によって、データの書き込み要求におけるＩ／Ｏ転送長と、データの読出し要求におけるＩ／Ｏ転送長とでは、長さが異なる場合がある。一方、ディスク装置１０の用途として、データのバックアップに使用される場合と、実際の業務に使用される場合とがある。データのバックアップに使用されるディスク装置１０においては、アクセスの殆どがデータの書き込み要求である。実際の業務に使用されるディスク装置１０においては、例えば、データの読出し要求がデータの書き込み要求よりも優先される場合がある。
【０１３０】
そこで、ディスク群を、同一のコマンドにおける同一のＩ／Ｏ転送長を有するディスク装置１０によって構成する。これにより、データのバックアップに使用されるディスク装置１０については、データの書き込み要求におけるＩ／Ｏ転送長を用いて、ディスク群が伝送経路に割り当てられる。また、実際の業務に使用されるディスク装置１０については、データの読出し要求におけるＩ／Ｏ転送長を用いて、ディスク群が伝送経路に割り当てられる。これにより、ディスク装置１０の用途に応じて、ディスク装置１０を伝送経路に適切に割り当てることができる。
【０１３１】
図１１は、ディスク割当処理フローの更に他の一例を示す図である。
【０１３２】
コントローラ３は、ホストコンピュータ１からのＩ／Ｏ処理要求を受信すると（ステップＳ３１）、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスであるか否かを判断する（ステップＳ３２）。例えば、キャッシュ６は、受信したＩ／Ｏ処理要求をＣＰＵ７に送信して、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスであるか否かを問い合わせる。これに応じて、ＣＰＵ７は、Ｉ／Ｏ処理要求に含まれるアクセス先のディスク装置１０のディスクＩＤを用いて保持するディスク管理情報を参照することにより、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスであるか否かを判断する。
【０１３３】
Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスである場合（ステップＳ３２  Ｙｅｓ）、コントローラ３は、伝送経路管理テーブル８２を参照して、ディスクＡ群１０Ａに割り当てられたポート、例えばポートａを使用することを決定し（ステップＳ３３）、決定したポートａを用いて、当該ディスク装置１０へのアクセスを実行する（ステップＳ３４）。例えば、ＣＰＵ７は、前記判断に基づいて、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスである場合にはポートａをキャッシュ６に返信し、当該Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスでない場合にはその旨をキャッシュ６に返信する。これにより、キャッシュ６は、当該ディスク装置１０について指定されたポートａを介して、当該ディスク装置１０にアクセスする。
【０１３４】
Ｉ／Ｏ処理要求がディスクＡ群１０Ａについてのアクセスでない場合（ステップＳ３２    Ｎｏ）、コントローラ３は、当該Ｉ／Ｏ処理要求におけるＩ／Ｏ転送長が４０キロバイト以下であるか否かを判断する（ステップＳ３５）。Ｉ／Ｏ処理要求におけるＩ／Ｏ転送長が４０キロバイト以下である場合（ステップＳ３５  Ｙｅｓ）、コントローラ３は、ステップＳ３３を実行して、ポートａを使用することを決定し、決定したポートａを用いてステップＳ３４を実行する。
【０１３５】
Ｉ／Ｏ処理要求におけるＩ／Ｏ転送長が４０キロバイトより大きい場合（ステップＳ３５  Ｎｏ）、コントローラ３は、ポートｂを使用することを決定し（ステップＳ３６）、決定したポートｂを用いてステップＳ３４を実行する。
【０１３６】
なお、図１１の処理によれば、コントローラ３のＣＰＵ７は、最小の最大データ転送長を有するディスク群、例えばディスクＡ群１０Ａに属するディスク装置１０のみを２個のグループの一方とし、他の最大データ転送長を有するディスク群、例えばディスクＢ群１０Ｂ〜ディスクＤ群１０Ｄに属するディスク装置１０が２個のグループの他方とする。これにより、最小の最大データ転送長を有する、ディスクＡ群１０Ａに属するディスク装置１０がデータ転送する回数を、他のディスク装置１０がデータ転送する回数よりも多くすることができる。
【０１３７】
また、コントローラ３のＣＰＵ７は、最大の最大データ転送長を有する、ディスクＤ群１０Ｄに属するディスク装置１０を２個のグループの一方とし、他の最大データ転送長を有する、ディスクＡ群１０Ａ〜ディスクＣ群１０Ｃに属するディスク装置１０を２個のグループの他方とするようにしても良い。これにより、最大の最大データ転送長を有する、ディスクＤ群１０Ｄに属するディスク装置１０のデータ転送が、他のディスク装置１０のデータ転送の妨げになることを回避することができる。
【０１３８】
なお、図８〜図１１のディスク割当処理においては、Ｉ／Ｏ転送長に基づいてディスク装置１０の割り当てが変更されるが、他のパラメータに基づいてディスク装置１０の割り当てを変更するようにしても良い。
【０１３９】
例えば、ＣＰＵ７が、ディスク装置１０へのアクセスを監視して、アクセスの頻度に基づいて、二重化された伝送経路への割り当てを変更するようにしても良い。この場合、ＣＰＵ７は、アクセス頻度が最大であるディスク装置１０を２個のグループの一方とし、残りのディスク装置１０を２個のグループの他方とする。これにより、最大のアクセス頻度を有するディスク装置１０のデータ転送が、他のディスク装置１０のデータ転送の妨げになることを回避することができる。
【０１４０】
また、ＣＰＵ７が、予め定められた場合には、伝送経路管理テーブル８２を無視するようにしても良い。例えば、二重化された伝送経路の一方に障害が発生した場合には、ＣＰＵ７は、伝送経路管理テーブル８２を無視する。この場合、ＣＰＵ７は、二重化された伝送経路の他方を介して、ディスク装置１０へアクセスする。これにより、ディスクアレイ装置２において、二重化された伝送経路の一方に障害が発生した場合でも、ディスク割当処理に拘わらず、データ転送を行うことができる。
【符号の説明】
【０１４１】
１    ホストコンピュータ
２    ディスクアレイ装置
３    コントローラ
４、４１、４２    デバイスエンクロージャ（ＤＥ）
５    チャネルアダプタ（ＣＡ）
６    キャッシュ
７    ＣＰＵ
８    メモリ
９Ａ、９Ｂ    デバイスインターフェイス（ＤＩ）
１０    ディスク装置
１１１Ａ、１１１Ｂ、１１２Ａ、１１２Ｂ    伝送経路
【図１】
0005533252.tif 000002
【図２】
0005533252.tif 000003
【図３】
0005533252.tif 000004
【図４】
0005533252.tif 000005
【図５】
0005533252.tif 000006
【図６】
0005533252.tif 000007
【図７】
0005533252.tif 000008
【図８】
0005533252.tif 000009
【図９】
0005533252.tif 000010
【図１０】
0005533252.tif 000011
【図１１】
0005533252.tif 000012
【図１２】
0005533252.tif 000013