(57)【要約】【課題】ホストＩ／Ｏ要求に応じて、物理デイスクをアクセスするのに使用する構成定義テーブルを作成するシステムにおいて、規模の異なるモデルで、共通のファームを使用しても、構成定義テーブルのメモリサイズを削減する。【解決手段】構成設定処理モジュール（６５２）に各モデルの定義を表すモデル対応表（８０−１）を用意し、この内容から該当モデルの最大値をメモリ（４０ｂ）に記録し、各種別のためのメモリ領域を確保する。そして、実際の構成定義の内容は、確保されたメモリ（４０ｂ）上に展開する。このため、多岐に渡るモデルでも、構成定義テーブルのメモリサイズをそのモデルに合わせたサイズに削減でき、且つモデルによらず、共通のファームウェアで実現できる。【選択図】図９
2006221371.tif 000002
【特許請求の範囲】
【請求項１】
ホストから依頼されたＩ／Ｏ要求に応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するデイスクアレイ装置の構成定義を設定する方法において、
前記デイスクアレイ装置の規模を示すモデル名により、前記各モデルのホスト論理空間と前記デイスク装置の最大数を格納するモデル対応テーブルを参照して、対応する前記ホスト論理空間と前記デイスク装置の最大数を読み出すステップと、
前記読み出した前記ホスト論理空間と前記デイスク装置の最大数から、前記ホスト論理空間と前記デイスク装置の構成情報を格納するメモリの先頭アドレスを計算するステップと、
前記計算された先頭アドレスから前記構成情報を、前記メモリに格納して、前記デイスク装置をアクセスするための構成定義テーブルを作成するステップとを有する
ことを特徴とするデイスクアレイ装置の構成定義設定方法。
【請求項２】
前記計算した前記ホスト論理空間と前記デイスク装置の先頭アドレスを前記メモリに格納するステップを更に有する
ことを特徴とする請求項１のデイスクアレイ装置の構成定義設定方法。
【請求項３】
前記読み出しステップは、
前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数を、前記モデル名に応じて、読み出すステップからなる
ことを特徴とする請求項１のデイスクアレイ装置の構成定義設定方法。
【請求項４】
ホストから依頼されたＩ／Ｏ要求に応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するデイスクアレイ装置において、
前記デイスクアレイ装置の規模を示すモデル名と、前記各モデルのホスト論理空間と前記デイスク装置の最大数を格納するモデル対応テーブルとを格納する不揮発性メモリと、
前記デイスク装置をアクセスするための構成定義テーブルを格納するメモリと、
前記構成定義テーブルを参照して、前記依頼されたＩ／Ｏ要求に応じて、前記デイスク装置をアクセスする制御ユニットとを有し、
前記制御ユニットは、前記モデル名で、前記モデル対応テーブルを参照して、対応する前記ホスト論理空間と前記デイスク装置の最大数を読み出し、前記ホスト論理空間と前記デイスク装置の最大数から、前記ホスト論理空間と前記デイスク装置の構成情報を格納するメモリの先頭アドレスを計算し、前記計算された先頭アドレスから前記構成情報を、前記メモリに格納して、前記構成定義テーブルを作成する
ことを特徴とするデイスクアレイ装置。
【請求項５】
前記制御ユニットは、
前記計算した前記ホスト論理空間と前記デイスク装置の先頭アドレスを前記メモリに格納する
ことを特徴とする請求項４のデイスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを格納するデイスク装置を多数搭載したデイスクアレイ装置のファームウェアが使用する構成定義情報の設定を行うためのデイスクアレイ装置の構成定義設定方法及びデイスクアレイ装置に関し、特に、規模の異なるモデルに応じて、構成定義情報の格納サイズを可変にするためのデイスクアレイ装置の構成定義設定方法及びデイスクアレイ装置に関する。
【背景技術】
【０００２】
近年、様々なデータが電子化され、コンピュータ上で扱われるのに従い、データの処理を実行するホストコンピュータとは独立して、大量のデータを効率よく、高い信頼性で格納することのできるデータストレージ装置（外部記憶装置）の重要性が増加している。
【０００３】
このデータストレージ装置として、大量のディスクデバイス（例えば、磁気ディスクや光ディスク）と、これら大量のディスクデバイスを制御するディスクコントローラとから構成されるディスクアレイ装置が利用されている。このディスクアレイ装置は、同時に複数のホストコンピュータからのディスクアクセス要求を受け付けて、大量のディスクに対する制御を行なうことができる。
【０００４】
このようなデイスクアレイ装置に対するユーザーの要求は、様々であり、ユーザーの目的に応じて、複数の規模のモデルを提供する必要がある。即ち、ユーザーの目的に応じて、搭載するデイスク装置の台数が変わる。例えば、ディスクデバイスが数１０００台以上、記憶容量では、数百テラバイト以上のディスクデバイス群を１台で制御できる大規模ディスクアレイ装置から、デイスクデバイスが数１０台の小規模デイスクアレイ装置まで、種々のモデルが要求されている。
【０００５】
このように、デイスクアレイ装置の構成が変わることは、デイスク装置を制御するための構成情報を、規模に合わせて、設定する必要がある。即ち、デイスクアレイ装置では、コントローラのファーム内の構成定義であり、そのディスクアレイ装置に固有な内部情報である。例えば、搭載する各ディスク装置の情報と状態や、ＬＵＮ（Logical  Unit Number）やＲＡＩＤグループの設定内容、コントローラのハード状態、搭載アダプタの種別といったものがある。
【０００６】
このような構成情報のメモリサイズは、モデルによって、最低必要なサイズが異なる。従来、コンピュータシステムでは、接続装置の構成に応じて、構成情報を自動作成し、メモリに格納することが行われている（例えば、特許文献１参照）。
【０００７】
一方、デイスクアレイ装置では、モデルによって、構成情報そのものが、多岐に渡る。例えば、デイスク搭載数が、数十台から数千台であるため、従来は、搭載台数が少ないローエンド／ミッドレンジ向けの製品の各モデルでは、搭載するメモリの関係上、モデル毎に、構成情報作成ファームウェアを作成していた。又、デイスク装置の搭載台数が多いハイエンド向けの製品の各モデルでは、ファームウェアはモデル間で同一であるものの、搭載可能最大数の構成定義のメモリを確保していた。
【特許文献１】特開平９−５４７４４号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、従来技術のモデル毎に、ファームウェアを作成する方法では、開発コストが増加し、且つその評価工数も増加し、新規なデイスクアレイ装置の市場提供が遅れる可能性がある。
【０００９】
又、従来のモデル間で、共通ファームウェアで、構成定義を作成する方法では、最大構成分のメモリ容量を確保する必要があった。この理由は、デイスク装置の搭載台数に比例し、ＬＵＮ（論理ユニット番号）数も比例するため、メモリの必要なキャッシュサイズが変化する。このため、デイスクアレイ装置に搭載するメモリサイズを、キャッシュサイズと構成定義に使用するメモリサイズとから、メモリ搭載量を決定する必要がある。この作業は、モデル数が多岐に渡ると、極めて煩雑な作業であり、このため、構成定義に使用するメモリサイズは、最大構成分のサイズに固定することは、有効であった。
【００１０】
しかし、ディスク装置の搭載数に差があると、構成定義に使用するメモリサイズも変化するため、従来の最大構成分のメモリサイズを確保する方法では、無駄なメモリを搭載することとなる。近年の装置の低価格の要求により、無駄なメモリを搭載することは、製品の価格を上げる原因となる。特に、デイスク装置の搭載台数の莫大なモデルも要請されているため、このように装置台数のレンジが大きい多数のモデルに対し、最大構成分のメモリサイズを確保する方法では、小、中規模モデルでは、この無駄なメモリの価格が、装置価格に対し無視できない程、大きくなってきた。
【００１１】
従って、本発明の目的は、共通のファームウェアで構成定義を自動作成しても、構成定義のメモリサイズをデイスク装置の搭載台数分のサイズに低減するためのデイスクアレイ装置の構成定義設定方法及びそのデイスクアレイ装置を提供することにある。
【００１２】
又、本発明の他の目的は、共通のファームウェアで構成定義を自動作成しても、構成定義のメモリサイズをデイスク装置の搭載台数分のサイズに低減し、装置価格を低減するためのデイスクアレイ装置の構成定義設定方法及びそのデイスクアレイ装置を提供することにある。
【００１３】
更に、本発明の他の目的は、共通のファームウェアで構成定義を自動作成しても、構成定義のメモリサイズをデイスク装置の搭載台数分のサイズに低減し、メモリのキャッシュ領域を有効に利用するためのデイスクアレイ装置の構成定義設定方法及びそのデイスクアレイ装置を提供することにある。
【００１４】
更に、本発明の他の目的は、共通のファームウェアで構成定義を自動作成しても、構成定義のメモリサイズをデイスク装置の搭載台数分のサイズに低減し、多岐に渡るモデルを適切な価格で提供するためのデイスクアレイ装置の構成定義設定方法及びそのデイスクアレイ装置を提供することにある。
【課題を解決するための手段】
【００１５】
この目的の達成のため、本発明は、ホストから依頼されたＩ／Ｏ要求に応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するデイスクアレイ装置の構成定義を設定する方法であって、前記デイスクアレイ装置の規模を示すモデル名により、前記各モデルのホスト論理空間と前記デイスク装置の最大数を格納するモデル対応テーブルを参照して、対応する前記ホスト論理空間と前記デイスク装置の最大数を読み出すステップと、前記読み出した前記ホスト論理空間と前記デイスク装置の最大数から、前記ホスト論理空間と前記デイスク装置の構成情報を格納するメモリの先頭アドレスを計算するステップと、前記計算された先頭アドレスから前記構成情報を、前記メモリに格納して、前記デイスク装置をアクセスするための構成定義テーブルを作成するステップとを有する。
【００１６】
又、本発明は、ホストから依頼されたＩ／Ｏ要求に応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するデイスクアレイ装置であって、前記デイスクアレイ装置の規模を示すモデル名と、前記各モデルのホスト論理空間と前記デイスク装置の最大数を格納するモデル対応テーブルとを格納する不揮発性メモリと、前記デイスク装置をアクセスするための構成定義テーブルを格納するメモリと、前記構成定義テーブルを参照して、前記依頼されたＩ／Ｏ要求に応じて、前記デイスク装置をアクセスする制御ユニットとを有し、前記制御ユニットは、前記モデル名で、前記モデル対応テーブルを参照して、対応する前記ホスト論理空間と前記デイスク装置の最大数を読み出し、前記ホスト論理空間と前記デイスク装置の最大数から、前記ホスト論理空間と前記デイスク装置の構成情報を格納するメモリの先頭アドレスを計算し、前記計算された先頭アドレスから前記構成情報を、前記メモリに格納して、前記構成定義テーブルを作成する。
【００１７】
更に、本発明では、好ましくは、前記計算した前記ホスト論理空間と前記デイスク装置の先頭アドレスを前記メモリに格納するステップを更に有する。
【００１８】
更に、本発明では、好ましくは、前記読み出しステップは、前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数を、前記モデル名に応じて、読み出すステップからなる。
【００１９】
更に、本発明では、好ましくは、前記読み出した前記ホスト論理空間と前記デイスク装置の最大数を前記メモリに格納する。
【００２０】
更に、本発明では、好ましくは、前記計算ステップは、前記読み出した前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数とから、各々の先頭アドレスを計算するステップからなる。
【００２１】
更に、本発明では、好ましくは、前記作成ステップは、前記ホスト論理ブロックアドレスから前記デイスク装置の物理ブロックアドレスを計算するための構成定義テーブルを作成するステップからなる。
【００２２】
更に、本発明では、好ましくは、前記作成した構成定義テーブルを不揮発性メモリに格納するステップを更に有する。
【００２３】
更に、本発明では、好ましくは、前記格納ステップは、前記デイスク装置のキャッシュ領域に使用されるメモリの前記キャッシュ領域以外の領域に前記構成定義テーブルを格納するステップからなる。
【発明の効果】
【００２４】
本発明では、構成設定処理に各モデルの定義を表す情報（モデル対応表）を用意し、この内容から該当モデルの最大値をメモリに記録し、同時に各種別のためのメモリ領域を確保する。そして、実際の構成定義の内容は、この後で、バックアップディスクやフラッシュＲＯＭ等から確保されたメモリ上に展開する。このため、多岐に渡るモデルでも、構成定義テーブルのメモリサイズをそのモデルに合わせたサイズに削減でき、且つモデルによらず、共通のファームウェアで実現できる。即ち、モデル対応表を用意しているため、実際の構成定義の内容を格納する前に、モデルに応じたメモリサイズのメモリ領域を確保できる。
【００２５】
又、構成定義テーブルを参照する場合には、ポインタ経由で参照することで、モデルに依らずに同じ方法で参照できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を、デイスクアレイ装置、構成定義設定処理、構成定義を使用したデイスク装置のアクセス処理、他の実施の形態の順で説明する。
【００２７】
［デイスクアレイ装置］
図１は、本発明の一実施の形態のデイスクアレイ装置の構成図、図２は、図１のコントロールモジュールの構成図、図３は、図１のバックエンドルータとデイスクエンクロージャの構成図、図４は、図１及び図３のデイスクエンクロージャの構成図である。
【００２８】
図１は、４台のコントロールモジュールを持つ中規模なデイスクアレイ装置を例に示す。図１に示すように、デイスクアレイ装置１は、データを保持する複数のディスクエンクロージャ２−０〜２−１５と、図示しないホストコンピュータ（データ処理装置）と、複数のディスクエンクロージャ２−０〜２−１５との間に、配置された複数（ここでは４つ）の制御モジュール４−０〜４−３と、これら複数の制御モジュール４−０〜４−３と複数のディスクエンクロージャ２−０〜２−１５との間に設けられた複数（ここでは４つ）のBack-end Router（第１スイッチユニット；図中ＢＲＴと表記し、以下、ＢＲＴという）５−０〜５−３と、複数（ここでは２つ）のFront-end Router（第２スイッチユニット；図中ＦＲＴと表記、以下、ＦＲＴという）６−０，６−１とを有する。
【００２９】
制御モジュール４−０〜４−３のそれぞれは、コントローラ４０と、チャネルアダプタ（第１インターフェース部；図中ＣＡと表記）４１と、ディスクアダプタ（第２インターフェース部；図中ＤＡと表記）４２ａ，４２ｂと、ＤＭＡ（Direct Memory Access）エンジン（通信部；図中ＤＭＡと表記）４３とを有する。
【００３０】
なお、図１では、図の簡略化のため、これらコントローラの符号“４０”、ディスクアダプタの符号“４２ａ”，“４２ｂ”、ＤＭＡの符号“４３”を、制御モジュール４−０に対してのみ付しており、他の制御モジュール４−１〜４−３におけるこれら構成要素の符号は省略している。
【００３１】
図２により、制御モジュール４−０〜４−３を説明する。コントローラ４０は、ホストコンピュータからの処理要求（リード要求もしくはライト要求）に基づいて、リード／ライト処理を行なうものであり、メモリ４０ｂと制御部４０ａとを備える。
【００３２】
メモリ４０ｂは、ディスクエンクロージャ２−０〜２−２５の複数のディスクに保持されたデータの一部を保持する、所謂、複数のディスクに対するキャッシュの役割を果たすキャッシュ領域と、構成定義格納領域と、その他のワーク領域とを有する。
【００３３】
制御部４０ａは、メモリ４０ｂ，チャネルアダプタ４１、デバイスアダプタ４２、ＤＭＡ４３の制御を行う。このため、１つ又は複数（図では、２つ）のＣＰＵ４００，４１０と、メモリコントローラ４２０とを有する。メモリコントローラ４２０は、メモリのリード／ライトを制御し、且つパスの切り替えを行う。
【００３４】
メモリコントローラ４２０は、メモリバス４３４を介しメモリ４０ｂと接続し、ＣＰＵバス４３０，４３２を介しＣＰＵ４００，４１０と接続し、更に、メモリコントローラ４２０は、４レーンの高速シリアルバス（例えば、ＰＣＩ−Ｅｘｐｒｅｓｓ）４４０，４４２を介しデイスクアダプタ４２ａ，４２ｂに接続する。
【００３５】
同様に、メモリコントローラ４２０は、４レーンの高速シリアルバス（例えば、ＰＣＩ−Ｅｘｐｒｅｓｓ）４４３，４４４，４４５，４４６を介しチャネルアダプタ４１（ここでは、４つのチャネルアダプタ４１ａ，４１ｂ、４１ｃ，４１ｄ）に接続し、４レーンの高速シリアルバス（例えば、ＰＣＩ−Ｅｘｐｒｅｓｓ）４４７，４４８を介しＤＭＡ４３（ここでは、２つのＤＭＡ４３−ａ，４３−ｂ）に接続する。
【００３６】
このＰＣＩ−Ｅｘｐｅｓｓ等の高速シリアルバスは、パケットで通信し、且つシリアルバスを複数レーン設けることにより、信号線本線を減らしても、遅延の少ない、速い応答速度で、所謂、低レンテンシで通信することができる。
【００３７】
チャネルアダプタ４１ａ〜４１ｄは、ホストコンピュータに対するインターフェースであり、チャネルアダプタ４１ａ〜４１ｄは、それぞれ異なるホストコンピュータと接続される。また、チャネルアダプタ４１ａ〜４１ｄは、それぞれ対応するホストコンピュータのインターフェース部に、バス、例えば、ファイバチャネル（Fiber Channel）やEthernet（登録商標）によって接続されることが好ましく、この場合、バスとしては、光ファイバや同軸ケーブルが用いられる。
【００３８】
さらに、これらチャネルアダプタ４１ａ〜４１ｄそれぞれは、各制御モジュール４−０〜４−３の一部として構成されている。このチャネルアダプタ４１ａ〜４１ｂが、対応するホストコンピュータと制御モジュール４−０〜４−３とのインターフェース部として、複数のプロトコルをサポートする必要がある。
【００３９】
対応するホストコンピュータによって実装すべきプロトコルが同一ではないため、各チャネルアダプタ４１ａ〜４１ｄを必要に応じて容易に交換できるように、制御モジュール４−０〜４−３の主要ユニットであるコントローラ４０とは、別のプリント基板に実装されている。
【００４０】
例えば、チャネルアダプタ４１ａ〜４１ｄがサポートすべきホストコンピュータとの間のプロトコルとしては、上述のように、ファイバチャネルや、Ethernet（登録商標）に対応するｉＳＣＳＩ（Internet Small Computer System Interface）等がある。
【００４１】
更に、各チャネルアダプタ４１ａ〜４１ｄは、前述のように、ＰＣＩ−Ｅｘｐｒｅｓｓバスのように，ＬＳＩ（Large Scale Integration）やプリント基板の間を接続するために設計されたバスによって、コントローラ４０と直接結合されている。これにより、各チャネルアダプタ４１ａ〜４１ｄとコントローラ４０と間に要求される高いスループットを実現することができる。
【００４２】
ディスクアダプタ４２ａ，４２ｂは、ディスクエンクロージャ２−０〜２−１５の各デイスクドライブに対するインターフェースであり、ディスクエンクロージャ２−０〜２−１５に接続されたＢＲＴ５−０〜５−３に接続され，ここでは、４つのＦＣ(Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ)ポートを有する。
【００４３】
又、各デイスクアダプタ４２ａ、４２ｂは、前述のように、ＰＣＩ−Ｅｘｐｒｅｓｓバスのように，ＬＳＩ（Large Scale Integration）やプリント基板の間を接続するために設計されたバスによって、コントローラ４０と直接結合されている。これにより、各デイスクアダプタ４２ａ、４２ｂとコントローラ４０と間に要求される高いスループットを実現することができる。
【００４４】
図１及び図３に示すように、ＢＲＴ５−０〜５−３は、各制御モジュール４−０〜４−３のディスクアダプタ４２ａ，４２ｂと各ディスクエンクロージャ２−０〜２−１５とを選択的に切り替えて、通信可能に接続する多ポートスイッチである。
【００４５】
図３に示すように、各ディスクデイスクエンクロージャ２−０〜２−７は、複数（ここでは２つ）のＢＲＴ５−０，５−１に接続される。図４に示すように、各ディスクエンクロージャ２−０は、各々２つのポートを有する複数台（例えば、１５台）のディスクドライブ２００を搭載する。このデイスクエンクロージャ２−０の構成は、４つの接続ポート２１０，２１２，２１４，２１６を有する単位デイスクエンクロージャ２０−０〜２３−０を、必要数分直列接続して、容量の増大を実現する。ここでは、最大４台の単位デイスクエンクロージャ２０−０〜２０−３を接続できる。
【００４６】
そして、単位デイスクエンクロージャ２０−０〜２３−０内では、２つのポート２１０，２１２からの一対のＦＣケーブルにより、各デイスクドライブ２００の各ポートが、２つのポート２１０，２１２に接続される。この２つのポート２１０，２１２は、図３で説明したように、異なるＢＲＴ５−０，５−１に接続される。
【００４７】
図１に示すように、各制御モジュール４−０〜４−３のディスクアダプタ４２ａ，４２ｂそれぞれを、すべてのディスクエンクロージャ２−０〜２−１５に接続する。即ち、各制御モジュール４−０〜４−３のディスクアダプタ４２ａは、ディスクエンクロージャ２−０〜２−７に接続されたＢＲＴ５−０（図３参照）と、ディスクエンクロージャ２−０〜２−７に接続されたＢＲＴ５−０と、ディスクエンクロージャ２−８〜２−１５に接続されたＢＲＴ５−２と、ディスクエンクロージャ２−８〜２−１５に接続されたＢＲＴ５−２とにそれぞれ接続される。
【００４８】
又、同様に、各制御モジュール４−０〜４−３のディスクアダプタ４２ｂは、ディスクエンクロージャ２−０〜２−７に接続されたＢＲＴ５−１（図３参照）と、ディスクエンクロージャ２−０〜２−７に接続されたＢＲＴ５−１と、ディスクエンクロージャ２−８〜２−１５に接続されたＢＲＴ５−３と、ディスクエンクロージャ２−８〜２−１５に接続されたＢＲＴ５−３とに、それぞれ接続される。
【００４９】
このように、各ディスクエンクロージャ２−０〜２−１５は、複数（ここでは２つ）のＢＲＴに接続されるとともに、同一のディスクエンクロージャ２−０〜２−１５に接続された２つのＢＲＴのそれぞれに、同一の制御モジュール４−０〜４−３における異なるディスクアダプタ４２ａ，４２ｂが接続される。
【００５０】
このような構成により、各制御モジュール４−０〜４−３が、いずれのディスクアダプタ４２ａ，４２ｂを通じて、且ついずれのパスを通じても、すべてのディスクエンクロージャ（デイスクドライブ）２−０〜２−１５にアクセスできる。
【００５１】
又、図２に示すごとく、各ディスクアダプタ４２ａ，４２ｂは、対応するＢＲＴ５−０〜５−３に、バス、例えば、ファイバチャネル（Fiber Channel）やEthernet（登録商標）、によって接続される。この場合、バスは、バックパネルのプリント基板に電気的配線で設けられる。
【００５２】
各制御モジュール４−０〜４−３のディスクアダプタ４２ａ，４２ｂとＢＲＴ５−０〜５−３との間は、前述のように、全てのデイスクエンクロージャと接続するため、１対１のメッシュ接続になるため、制御モジュール４−０〜４−３の数（つまり、ディスクアダプタ４２ａ，４２ｂの数）が増大するほど、接続数が増加して接続関係が複雑になり、物理的な実装が困難になる。しかし、ディスクアダプタ４２ａ，４２ｂとＢＲＴ５−０〜５−３との間の接続に、インターフェースを構成する信号数が少ないファイバチャネルを採用することにより、プリント基板での実装が可能となる。
【００５３】
なお、各ディスクアダプタ４２ａ，４２ｂと対応するＢＲＴ５−０〜５−３とがファイバチャネル接続される場合、ＢＲＴ５−０〜５−３は，ファイバチャネルのスイッチとなる。また、各ＢＲＴ５−０〜５−３と対応するディスクエンクロージャ２−０〜２−１５との間も、例えば、ファイバチャネルによって接続され、この場合には、モジュールが異なるため、光ケーブル５００，５１０で接続される。
【００５４】
図１に示すように、ＤＭＡエンジン４３は、各制御モジュール４−０〜４−３と相互に通信を行うものであり、他の制御モジュール間との通信とデータ転送処理を担当する。各制御モジュール４−０〜４−３のＤＭＡエンジン４３のそれぞれは、制御モジュール４−０〜４−３の一部として構成されており、制御モジュール４−０〜４−３の主要ユニットであるコントローラ４０の基板上に実装される。そして、前述の高速シリアルバスによって、コントローラ４０と直接結合されるとともに、ＦＲＴ６−０，６−１を介して他の制御モジュール４−０〜４−３のＤＭＡエンジン４３と互いに通信する。
【００５５】
ＦＲＴ６−０，６−１は、複数（特に３以上、ここでは４つ）の制御モジュール４−０〜４−３のＤＭＡエンジン４３に接続され、これら制御モジュール４−０〜４−３の相互間を選択的に切り替え，通信可能に接続するものである。
【００５６】
このような構成により、各制御モジュール４−０〜４−３のＤＭＡエンジン４３のそれぞれは、ＦＲＴ６−０，６−１を介して、自身に接続されたコントローラ４０と他の制御モジュール４−０〜４−３のコントローラ４０との間で、ホストコンピュータからのアクセス要求等に応じて生じる通信やデータ転送処理（例えば、ミラーリング処理）を実行する。
【００５７】
また、図２に示すように、各制御モジュール４−０〜４−７のＤＭＡエンジン４３が複数（ここでは２つ）のＤＭＡエンジン４３−ａ，４３−ｂで構成され、これら２つのＤＭＡエンジン４３−ａ，４３−ｂの各々が、各々２つのＦＲＴ６−０，６−１を使用する。
【００５８】
さらに、ＤＭＡエンジン４３−ａ，４３−ｂは、図２に示したように、例えば、PCI−Expressバスによって、コントローラ４０に接続されている。即ち、各制御モジュール４−０〜４−３間（つまり、各制御モジュール４−０〜４−３のコントローラ４０間）の通信やデータ転送（ＤＭＡ）処理では、データ転送量が多く、通信制御にかかる時間を短くすることが望ましく、高いスループットと同時に低いレイテンシ（速い応答速度）が要求される。このため、図１、図２に示すように、各制御モジュール４−０〜４−３のＤＭＡエンジン４３とＦＲＴ６−０，６−１とは、高いスループットと低いレイテンシとの両方の要求を満たすべく設計された、高速シリアル伝送を利用したバス（PCI-ExpressやRapid-IO）によって、接続される。
【００５９】
これらPCI-ExpressやRapid-IOは、２．５Gbpsの高速シリアル伝送を利用したものであり、これらのバスインターフェースには、LVDS（Low Voltage Differential Signaling）という小振幅差動インターフェースが採用される。
【００６０】
図５は、ＣＰＵ４００（４１０）が実行するソフトウェアのプログラムモジュールの構成図である。図５に示すように、ソフトウェアモジュールは、カーネル／スケジューラ６００と、ＩＯ制御モジュール６０２と、ＣＭ間通信ドライバ６０４と、ＣＰＵ間通信ドライバ６０６と、システム制御モジュール６０８と、ネットワークドライバ６１０とを有する。
【００６１】
カーネル／スケジューラ６００は、ＭＳ−ＤＯＳ（登録商標）等のオペレーテイングシステムである。ＩＯ制御モジュール６０２は、ＣＭ−ＣＡドライバ６２０と、ベーシックモジュール６４０と、ＣＭ−ＤＡドライバ６３０と有する。ＣＭ−ＣＡドライバ６２０は、ＣＡ４１をドライブするドライバである。
【００６２】
ベーシックモジュール６３０は、資源管理を行うリソーススレッド（リソース制御モジュール）６４６、コピー処理を行うコピースレッド（コピー制御モジュール）６４６、メモリ４０ｂのキャッシュメモリの制御を行うキャッシュスレッド（キャッシュメモリ制御モジュール）６４８を有するフロントエンドと、ＲＡＩＤ構成制御を行うＲＡＩＤスレッド（ＲＡＩＤ制御モジュール）６３２、ＯＶＳＭスレッド（ＯＶＳＭ制御モジュール）６３４とを有するバックエンドとからなる。
【００６３】
ＯＶＳＭスレッド６３４は、クイックフォーマット（ＱＦ）や論理デバイス拡張（ＬＤＥ）のスケジューリング、ＲＡＩＤスレッド６３２への論理フォーマット（ＬＦ）依頼、ＬＤＥ進捗管理を行う。
【００６４】
メインテナンスエージェント６１２は、ＯＶＳＭスレッド６３４への各種の通知を行う。ＣＭ−ＤＡドライバ６３０は、ＣＭ４３をドライブするドライバである。ＣＭ間通信ドライバ６０４は、前述のＤＭＡ４３をドライブして、ＦＲＴ６−０を介して、ＣＭ間の通信を行う。ＣＰＵ間通信ドライバ６０６は、他のＣＰＵ４１０と通信を行う。
【００６５】
システム制御モジュール６０８は、パワー制御モジュール６５０と、構成管理モジュール６５２とを有する。構成管理モジュール６５２は、サービスコントローラ４６からの、ネットワークドライバ６１０を介するモデル指定に応じて、構成定義のためのＲＬＵ(Raid  Logical  Unit)テーブルを含む構成定義テーブル（図７、図８で後述する）を、メモリ４０ｂに作成する。尚、サービスコントローラ４６は、図１では、図示されておらず、各ＣＭに共通である。
【００６６】
又、ＤＡ４３，ＢＲＴ５−０に接続されたデイスクエンクロージャ内に設けられたデイスクドライブ２００は、システムデイスク２００−１とユーザデイスク２００−２に分けられ、システムデイスク２００−１に、このモジュールが格納され、且つ構成定義テーブルも格納される。
【００６７】
本発明では、図６乃至図８で後述するように、構成管理モジュール６５２の主構成定義に従い、そのモデルの構成定義テーブルを作成する。そして、図９に示すように、リソースモジュール６４２、ＲＡＩＤモジュール６３２が、構成定義テーブルを参照して、ホストからのＬＵＮ（論理ユニット番号）を、物理デイスクのＰＬＢＡ（物理ブロックアドレス）に変換し、物理デイスク２００をアクセスする。
【００６８】
［構成定義設定処理］
図６は、ＲＡＩＤ空間の説明図、図７は、本発明の一実施の形態の構成定義設定処理フロー図、図８は、構成定義テーブルの説明図、図９は、構成定義テーブル作成動作の説明図である。
【００６９】
先ず、図６により、構成定義テーブルを説明する。ホストコンピュータから見たデイスクアレイ装置のＲＡＩＤ論理空間は、ホストの論理空間であるＯＬＵ（ホスト論理ユニット）と、ＲＡＩＤグループの論理空間であるＲＬＵ（ＲＡＩＤ論理ユニット）と、ＲＡＩＤグループを構成するデバイスの論理空間であるＤＬＵ（デバイス論理ユニット）と、物理デイスクの論理空間であるＰＬＵ（物理論理ユニット）との層構造で示される。
【００７０】
ＯＬＵ空間は、ホスト毎の論理空間を定義するホストＬＵＮ（Logical  Unit   Number）定義を格納するＯＬＵテーブル７０で定義され、具体的には、ＯＬＵテーブル７０は、接続されるホストＬＵＮと、その論理空間範囲を定義する。ＲＡＩＤ構成では、ＲＡＩＤ論理空間は、ＯＬＵテーブル７０の開始ＲＬＢＡ（ＲＡＩＤ論理ブロックアドレス）で、ＯＬＵ（ホスト論理空間）と関連づけられ、ＲＡＩＤ空間は、ＲＬＵテーブル７２で定義される。ＲＬＵテーブル７２は、ＲＡＩＤレベル、構成デイスク数、ＲＡＩＤストライプデプス、ＲＡＩＤストライプサイズ、対応ＤＬＵ番号を格納する。
【００７１】
ＤＬＵ空間は、ＤＬＵテーブル７４で定義される。ＤＬＵテーブル７４は、構成デイスク数、ＲＡＩＤストライプデプス、ＲＡＩＤストライプサイズ、対応ＰＬＵ番号を格納する。ＤＬＵ空間及びＤＬＵテーブル７４は、ミラーリングで使用される。ＰＬＵ空間は、ＰＬＵテーブル７６で定義される。ＰＬＵテーブル７６は、開始ＰＬＢＡ（物理論理ブロックアドレス）を格納する。
【００７２】
このような構成定義テーブル７０〜７６を、モデル名に応じて、図７以下の処理により作成する。以下、図８、図９を参照して、図７の構成定義設定処理を説明する。
【００７３】
（Ｓ１０）先ず、図５の構成管理モジュール６５２は、図２では、図示しない不揮発性メモリ又はシステムデイスク２００−１からモデル対応表８０−１を含む構成定義設定ファームウェアプログラム８０を読み出し、図９に示すように、メモリ４０ｂに展開し、構成定義設定処理を開始する。
【００７４】
（Ｓ１２）構成定義設定処理では、先ず、メモリ４０ｂに主構成定義向けの領域７８を確保する。この領域は、各モデルに同一サイズである。
【００７５】
（Ｓ１４）サービスコントローラ４６から入力され、図２では、図示しない不揮発性メモリ又はシステムデイスク２００−１に格納されたモデル名（例えば、モデル１００）を読み出し、主構成定義領域７８に格納する。
【００７６】
（Ｓ１６）図９に示すように、ファームウェア８０には、モデル対応表８０−１が埋め込まれている。このモデル対応表８０−１は、各モデルのＬＵＮ定義、デイスク定義等の最大数を格納する。図７、図８では、各モデルのホストＬＵＮ定義、ＲＡＩＤグループ定義、仮想デイスク定義、物理デイスク定義の最大数を格納する。構成定義設定処理では、モデル名からモデル対応表８０−１を参照して、対応モデルのホストＬＵＮ定義、ＲＡＩＤグループ定義、仮想デイスク定義、物理デイスク定義の最大数を読み出し、メモリ４０ｂの主構成定義領域７８に格納する。
【００７７】
（Ｓ１８）次に、構成定義設定処理では、メモリ４０ｂに、そのホストＬＵＮ定義、ＲＡＩＤグループ定義、仮想デイスク定義、物理デイスク定義の最大数を格納できる領域７０〜７６を確保し、各々の領域７０〜７６の先頭アドレスを、メモリ４０ｂの主構成定義領域７８に格納する。
【００７８】
（Ｓ２０）次に、構成定義設定処理では、図示しない不揮発性メモリ又はシステムデイスク２００−１に格納された当該デイスクアレイ装置のホストＬＵＮ定義、ＲＡＩＤグループ定義、仮想デイスク定義、物理デイスク定義の情報（構成情報）を読み出し、それぞれのメモリ４０ｂに確保した領域７０〜７６に格納する。
【００７９】
図８に示すように、ホストＬＵＮ定義領域７０は、当該デイスクアレイ装置の各ホストＬＵＮ＃０〜＃Ｋの定義（例えば、ホストＬＵＮと、そのホストＬＵＮの開始ＲＬＢＡ）を格納する。又、ＲＡＩＤグループ定義領域７２は、当該デイスクアレイ装置の各ＲＡＩＤグループ＃０〜＃Ｌの定義（例えば、Ｒａｉｄグループ名、Ｒａｉｄ  Ｌｅｖｅｌ，構成デイスク数、ストライプデプス、ストライプサイズ、そのＲＡＩＤグループの構成ＤＬＵ番号）を格納する。
【００８０】
仮想デイスク（ＤＬＵ）定義領域７４は、当該デイスクアレイ装置の各仮想デイスク（ＤＬＵ）＃０〜＃Ｍの定義（例えば、ＤＬＵ名、構成デイスク数、ストライプデプス、ストライプサイズ、そのＤＬＵの構成物理デイスク番号）を格納する。更に、物理デイスク（ＰＬＵ）定義領域７６は、当該デイスクアレイ装置の各物理デイスク＃０〜＃Ｎの定義（例えば、物理デイスク番号と、その物理論理ブロックアドレス（ＰＬＢＡ））を格納する。
【００８１】
このように、デイスクアレイ装置の構成定義テーブルの各種別(ディスク定義、LUN定義等)は可変サイズとし、構成定義テーブルの各種別の参照方法は、全て先頭ポインタからの参照方法にする。即ち、電源投入時には、構成設定ファーム上に各モデルの定義を表す情報（モデル対応表）を用意し、この内容から該当モデルの最大値をメモリに記録し、同時に各種別のためのメモリ領域を確保する。実際の構成定義の内容は、この後で、バックアップディスクやフラッシュＲＯＭ等から確保されたメモリ上に展開する。
【００８２】
このため、多岐に渡るモデルでも、構成定義テーブルのメモリサイズをそのモデルに合わせたサイズに削減でき、且つモデルによらず、共通のファームウェアで実現できる。即ち、モデル対応表を用意しているため、実際の構成定義の内容を格納する前に、モデルに応じたメモリサイズのメモリ領域を確保できる。
【００８３】
又、構成定義テーブルを参照する場合には、ポインタ経由で参照することで、モデルに依らずに同じ方法で参照できる。例えば、ある定義の全体を検索する必要があるきには、該当種別の先頭から上記最大値まで、検索する。
【００８４】
［構成定義を使用したデイスク装置のアクセス処理］
図１０は、本発明の構成定義を使用したホストからのアクセス処理フロー図、図１１は、図１０のＲＡＩＤ５の説明図、図１２は、図１１のＲＡＩＤ５のアドレス計算フロー図、図１３は、図１０のＲＡＩＤ０＋１の説明図、図１４は、図１３のＲＡＩＤ０＋１のアドレス計算フロー図である。
【００８５】
図１１乃至図１４を参照して、図１０の図５のファーム構成でのアクセス処理フローを説明する。
【００８６】
（Ｓ３０）ＣＡ４１が、ホストからのリード要求を受けると、ＣＡ４１は、ＣＭ−ＣＡドライバ６２０を介し、リソースモジュール６４２に通知し、リソースモジュール６４２は、このリード要求を受け付ける。
【００８７】
（Ｓ３２）リソースモジュール６４２は、リード要求に伴うホストＬＵＮ（論理ユニット番号）が、メモリ４０ｂの主構成定義領域８０のホストＬＵＮ定義の最大数以上かを判定する。リソースモジュール６４２は、最大数以上であれば、指定されたホストＬＵＮが、異常値であるため、ＣＭ−ＣＡドライバ６２０を介しＣＡ４１からホストにエラー応答する。
【００８８】
（Ｓ３４）一方、リソースモジュール６４２は、最大数を越えないと、指定されたホストＬＵＮが正常であるため、メモリ４０ｂの主構成定義領域８０のホストＬＵＮ定義先頭アドレスで、ホストＬＵＮ定義（ＯＬＵ）テーブル７０のホストＬＵＮ定義を順に参照し、指定されたホストＬＵＮが定義済みかを判定する。リソースモジュール６４２は、ホストＬＵＮ定義テーブル７０に、指定されたホストＬＵＮが、定義されていないと判定すると、未定義であるため、ＣＭ−ＣＡドライバ６２０を介しＣＡ４１からホストにエラー応答する。
【００８９】
（Ｓ３６）一方、ホストＬＵＮが定義済みなら、リソースモジュール６４２は、ＲＡＩＤグループ／仮想デイスク／物理デイスクとも定義済みと判定し、キャッシュモジュール６４８に、キャッシュヒットか否かの判定を依頼する。キャッシュモジュール６４８は、対象とするホストＬＵＮのＬＢＡ（ＯＬＢＡ）のデータが、メモリ４０ｂのキャッシュ領域に存在するかを調べ、存在すれば（ヒット）、メモリ４０ｂのＯＬＢＡ（ホスト論理ブロックアドレス）のデータを読み出し、ＣＭ−ＣＡドライバ６２０を介しＣＡ４１からホストにデータを転送する。
【００９０】
（Ｓ３８）一方、キャッシュモジュール６４８は、対象とするホストＬＵＮのＬＢＡ（ＯＬＢＡ）のデータが、メモリ４０ｂのキャッシュ領域に存在しない（ミスヒット）と判定すると、バックエンドのＲＡＩＤモジュール６３２に、物理デイスクからのデータリード要求を行う。ＲＡＩＤモジュール６３２は、先ず、メモリ４０ｂのホストＬＵＮ定義領域（テーブル）７０の開始ＲＬＢＡを使用して、処理要求されたホストＬＵＮのＬＢＡ（ＯＬＢＡ）を、ＲＡＩＤグループのＬＢＡ（ＲＬＢＡ）に変換する。
【００９１】
（Ｓ４０）次に、図６で示したように、ＲＡＩＤモジュール６３２は、メモリ４０ｂのＲＡＩＤグループ定義領域（テーブル）７２の定義を使用して、ＲＡＩＤグループのＬＢＡ（ＲＬＢＡ）を、仮想デイスクのＬＢＡ（ＤＬＢＡ）に変換する。次に、ＲＡＩＤモジュール６３２は、メモリ４０ｂの仮想デイスク定義領域（テーブル）７４の定義を使用して、処理要求された仮想デイスクのＬＢＡ（ＤＬＢＡ）を、物理デイスクのＬＢＡ（ＰＬＢＡ）に変換する。この処理の具体例は、図１１乃至図１４で後述する。
【００９２】
（Ｓ４２）次に、ＲＡＩＤモジュール６３２は、メモリ４０ｂの物理デイスク定義領域（テーブル）７６を使用して、処理要求された物理デイスクのＬＢＡ（ＰＬＢＡ）から、デイスクエンクロージャＲＡＩＤ、スロットを求め、物理デイスク２００のＬＢＡ（ＰＬＢＡ）にリード要求を行う。即ち、ＣＭ−ＤＡドライバ６３０を介し対応するＤＡ４２に当該物理デイスクのリード要求を発し、ＢＲＴ５−０を介し当該物理デイスクをアクセスする。
【００９３】
（Ｓ４４）物理デイスクからデータが読み出され、キャッシュモジュール６４８が、ＤＡ４２を介しメモリ４０ｂのキャッシュ領域に格納し、リードが完了すると、リソースモジュール６４２は、ＣＭ−ＣＡドライバ６２０を介しＣＡ４１からホストにこのリードデータを転送して、終了する。
【００９４】
図１１及び図１２は、前述のアドレス変換処理の説明図である。図１１に示すように、ＲＡＩＤ５（３＋１）の場合には、ＲＬＵ＝ＤＬＵであり、ＲＬＵテーブル７２は、ＲＡＩＤレベル＝ＲＡＩＤ５，構成デイスク数＝４、対応ＤＬＵ番号＝ＰＬＵ番号（０〜３）となる。又、ＲＡＩＤ空間は、構成デイスクで、ストライピングされており、ＲＡＩＤ空間を、構成デイスク番号とストライプ番号とでマッピングする。この升目をストリップ（Ｓｔｒｉｐ）といい、Strip番号が付与される。このStripのサイズは、Strip  Depth（又はStripe  Depth）で定義され、１ストライプのサイズは、Stripe  Sizeで定義される。
【００９５】
従って、図１２で説明するように、Ｒ（ＲＡＩＤグループ）ＬＢＡは、構成デイスク数、Strip  Depth、Stripe  Sizeで、ＰＬＢＡ，メンバーデイスクの順番に変換できる。
【００９６】
（Ｓ５０）ホストＬＢＡ（論理ブロックアドレス）を、ホストＬＢＡ（ＯＬＢＡ）にＯＬＵテーブル７０の開始ＲＬＢＡを加算して、ＲＬＢＡ（ＲＬＵＬＢＡ）を求める。
【００９７】
（Ｓ５２）ストリップ内のブロックカウントを、ＲＬＵＬＢＡ（ＲＬＢＡ）／Ｓｔｒｉｐ  Ｓｉｚｅ（Stripe  Depth）の余りで計算する。
【００９８】
（Ｓ５４）Ｓｔｒｉｐ番号を、ＲＬＵＬＢＡ（ＲＬＢＡ）／Ｓｔｒｉｐ  Ｄｅｐｔｈから計算する。
【００９９】
（Ｓ５６）Ｓｔｒｉｐｅ番号を、ＲＬＵＬＢＡ（ＲＬＢＡ）／Ｓｔｒｉｐｅ  Ｓｉｚｅから計算する。
【０１００】
（Ｓ５８）メンバーデイスクの順番を、Ｓｔｒｉｐ番号／メンバーデイスクの数の余りから計算する。
【０１０１】
（Ｓ６０）物理デイスク（ＰＬＵ）のＬＢＡを、（Ｓｔｒｉｐｅ番号×Strip 
Size）＋ストリップ内のブロックカウントから計算する。
【０１０２】
これにより、メンバーデイスクの順番（ＰＬＵ番号）と、ＰＬＵＬＢＡ（ＰＬＢＡ）とから、ＰＬＵテーブル７６を用いて、実ブロックアドレスを計算する。
【０１０３】
同様に、図１３に示すように、ＲＡＩＤ０＋１（４＋４）の場合には、ＲＬＵ≠ＤＬＵであり、ＲＬＵテーブル７２は、ＲＡＩＤレベル＝ＲＡＩＤ０＋１，構成デイスク数＝４（ＤＬＵ）、対応ＤＬＵ番号＝０〜３となる。又、ＲＡＩＤ空間は、ＤＬＵ構成デイスクで、ストライピングされており、ＲＡＩＤ空間を、ＤＬＵ構成デイスク番号とストライプ番号とでマッピングする。この升目をストリップ（Ｓｔｒｉｐ）といい、Strip番号が付与される。このStripのサイズは、Strip  Depth（又はStripe  Depth）で定義され、１ストライプのサイズは、Ｓｔｒｉｐｅ  Ｓｉｚｅで定義される。
【０１０４】
従って、図１４で説明するように、Ｒ（ＲＡＩＤグループ）ＬＢＡは、構成デイスク数、Strip  Depth、Stripe  Sizeで、ＰＬＵＬＢＡ，メンバーデイスクの順番に変換できる。
【０１０５】
（Ｓ６２）ホストＬＢＡ（論理ブロックアドレス）を、ホストＬＢＡにＯＬＵテーブル７０の開始ＲＬＢＡを加算して、ＲＬＢＡを求める。
【０１０６】
（Ｓ６４）ストリップ内のブロックカウントを、ＲＬＵＬＢＡ／Ｓｔｒｉｐｅ
Ｄｅｐｔｈ）の余りで計算する。
【０１０７】
（Ｓ６６）Ｓｔｒｉｐｅ番号を、ＲＬＵＬＢＡ／Ｓｔｒｉｐｅ  Ｓｉｚｅから計算する。
【０１０８】
（Ｓ６８）メンバーデイスクの順番を、（ＲＬＵＬＢＡ／Ｓｔｒｉｐｅ  Ｓｉｚｅの余り）／Ｓｔｒｉｐ  Ｓｉｚｅから計算する。
【０１０９】
（Ｓ７０）物理デイスク（ＰＬＵ）のＰＬＢＡ（＝ＤＬＵのデイスク）を、（Ｓｔｒｉｐｅ番号×Strip  Size）＋ストリップ内のブロックカウントから計算する。
【０１１０】
これにより、メンバーデイスクの順番（ＤＬＵ番号）と、ＰＬＵＬＢＡ（ＰＬＢＡ）とから、ＰＬＵテーブル７６を用いて、実ブロックアドレスを計算する。
【０１１１】
尚、ホストからのライト処理は、一旦、ライトデータをメモリ４０ｂのキャッシュ領域に格納した後、内部のライトバックスケジュールに従い、該当物理デイスクにライトバックする。このライトバック時も同様に、ミスヒット以降のステップＳ３８〜Ｓ４２の構成定義テーブルを使用したアドレス変換処理を行う。
【０１１２】
このように、メモリ４０ｂの構成定義テーブルを参照する場合には、ポインタ経由で参照することで、モデルに依らずに同じファームウェアで参照できる。
【０１１３】
［他の実施の形態］
次に、小規模（最小モデル）、大規模（最大モデル）デイスクアレイ装置を説明する。図１５は、本発明が適用される小規模デイスクアレイ装置の構成図、図１６は、本発明が適用される大規模デイスクアレイ装置の構成図、図１７は、図１５の小規模デイスクアレイ装置と図１６の大規模デイスクアレイ装置の構成定義テーブルの必要メモリサイズの対照表を示す図である。
【０１１４】
図１５に示す最小モデルの構成において、図１と同一のものは、同一の記号で示してある。図１５に示すように、デイスクアレイ装置１は、データを保持する４つのディスクエンクロージャ２−０〜２−３と、図示しないホストコンピュータ（データ処理装置）と、複数のディスクエンクロージャ２−０〜２−３との間に、配置された２つの制御モジュール４−０〜４−１とを有する。
【０１１５】
制御モジュール４−０〜４−１のそれぞれは、コントローラ４０と、チャネルアダプタ（図中ＣＡと表記）４１と、ディスクアダプタ（図中ＤＡと表記）４２ａ，４２ｂと、ＤＭＡ（Direct Memory Access）エンジン（図中ＤＭＡと表記）４３とを有する。
【０１１６】
この最小モデルでは、図１７に示すように、物理デイスク装置２００の最大数は、「２４０」、即ち、１デイスクエンクロージャ２−０〜２−３当たり、６０台のデイスドライブ２００を搭載できる。この仮想デイスク数は、最大１２０であり、ＲＡＩＤグループ数は、最大１２０であり、ホストＬＵＮ最大数は、１９２０である。これが、このモデル（例えば、モデル１００）のモデル対応表８０−１に格納されている。
【０１１７】
一方、図１６に示す最大モデルの構成においても、図１と同一のものは、同一の記号で示してある。図１６に示すように、デイスクアレイ装置１は、データを保持する３２台のディスクエンクロージャ２−０〜２−３１と、図示しないホストコンピュータ（データ処理装置）と、複数のディスクエンクロージャ２−０〜２−３１との間に、配置された８つの制御モジュール４−０〜４−７と、これら複数の制御モジュール４−０〜４−７と複数のディスクエンクロージャ２−０〜２−３１との間に設けられた８つのBack-end Router（第１スイッチユニット；図中ＢＲＴと表記し、以下、ＢＲＴという）５−０〜５−７と、２つのFront-end Router（第２スイッチユニット；図中ＦＲＴと表記、以下、ＦＲＴという）６−０，６−１とを有する。
【０１１８】
制御モジュール４−０〜４−７のそれぞれは、コントローラ４０と、チャネルアダプタ（図中ＣＡと表記）４１と、ディスクアダプタ（図中ＤＡと表記）４２ａ，４２ｂと、ＤＭＡ（Direct Memory Access）エンジン（通信部；図中ＤＭＡと表記）４３とを有する。
【０１１９】
この最大モデルでは、図１７に示すように、物理デイスク装置２００の最大数は、「３８４０」、即ち、１デイスクエンクロージャ２−０〜２−３１当たり、１２０台のデイスドライブ２００を搭載できる。この仮想デイスク数は、最大１９２０であり、ＲＡＩＤグループ数は、最大１９２０であり、ホストＬＵＮ最大数は、３０７２０である。これが、このモデル（例えば、モデル９００）のモデル対応表８０−１に格納されている。
【０１２０】
前述の図８に示したように、テーブル１つの要素に用いるサイズを２５６Ｂｙｔｅとすると、構成定義テーブル７０〜７６の必要メモリサイズは、最小モデル（図１５）で、（１９２０＋１２０＋１２０＋２４０）×２５６＝６１４４００Ｂｙｔｅ＝０．６１４４ＭＢｙｔｅである。
【０１２１】
一方、同様に、テーブル１つの要素に用いるサイズを２５６Ｂｙｔｅとすると、構成定義テーブル７０〜７６の必要メモリサイズは、最大モデル（図１６）で、（３０７２０＋１９２０＋１９２０＋３８４０）×２５６＝９８３０４００Ｂｙｔｅ＝９．８３０４ＭＢｙｔｅである。
【０１２２】
従って、最小モデルと最大モデルでは、一桁分、必要メモリサイズが相違し、この例では、９．２ＭＢｙｔｅもの差がある。従って、構成定義テーブルのサイズをモデルに応じて設定することは、コスト上で極めて有用である。
【０１２３】
又、前述した実施の形態では、図１のような構成のデイスクアレイ装置で説明したが、これ以外の構成のデイスクアレイ装置に適用できる。又、物理デイスクは、磁気デイスク、光デイスク、光磁気デイスク、各種のストレージデバイスを適用できる。
【０１２４】
更に、ＲＡＩＤ構成を採用しないデイスクアレイ装置にも適用できる。この場合には、ホストＬＢＡを仮想デイスクＬＢＡに変換すれば良い。
【０１２５】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【０１２６】
（付記１）ホストから依頼されたＩ／Ｏ要求に応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するデイスクアレイ装置の構成定義を設定する方法において、前記デイスクアレイ装置の規模を示すモデル名により、前記各モデルのホスト論理空間と前記デイスク装置の最大数を格納するモデル対応テーブルを参照して、対応する前記ホスト論理空間と前記デイスク装置の最大数を読み出すステップと、前記読み出した前記ホスト論理空間と前記デイスク装置の最大数から、前記ホスト論理空間と前記デイスク装置の構成情報を格納するメモリの先頭アドレスを計算するステップと、前記計算された先頭アドレスから前記構成情報を、前記メモリに格納して、前記デイスク装置をアクセスするための構成定義テーブルを作成するステップとを有することを特徴とするデイスクアレイ装置の構成定義設定方法。
【０１２７】
（付記２）前記計算した前記ホスト論理空間と前記デイスク装置の先頭アドレスを前記メモリに格納するステップを更に有することを特徴とする付記１のデイスクアレイ装置の構成定義設定方法。
【０１２８】
（付記３）前記読み出しステップは、前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数を、前記モデル名に応じて、読み出すステップからなることを特徴とする付記１のデイスクアレイ装置の構成定義設定方法。
【０１２９】
（付記４）前記読み出した前記ホスト論理空間と前記デイスク装置の最大数を前記メモリに格納することを特徴とする付記１のデイスクアレイ装置の構成定義設定方法。
【０１３０】
（付記５）前記計算ステップは、前記読み出した前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数とから、各々の先頭アドレスを計算するステップからなることを特徴とする付記３のデイスクアレイ装置の構成定義設定方法。
【０１３１】
（付記６）前記作成ステップは、前記ホスト論理ブロックアドレスから前記デイスク装置の物理ブロックアドレスを計算するための構成定義テーブルを作成するステップからなることを特徴とする付記１のデイスクアレイ装置の構成定義設定方法。
【０１３２】
（付記７）前記作成した構成定義テーブルを不揮発性メモリに格納するステップを更に有することを特徴とする付記１のデイスクアレイ装置の構成定義設定方法。
【０１３３】
（付記８）前記格納ステップは、前記デイスク装置のキャッシュ領域に使用されるメモリの前記キャッシュ領域以外の領域に前記構成定義テーブルを格納するステップからなることを特徴とする付記１のデイスクアレイ装置の構成定義設定方法。
【０１３４】
（付記９）ホストから依頼されたＩ／Ｏ要求に応じて、接続されたデイスク装置をアクセスし、Ｉ／Ｏ要求を実行するデイスクアレイ装置において、前記デイスクアレイ装置の規模を示すモデル名と、前記各モデルのホスト論理空間と前記デイスク装置の最大数を格納するモデル対応テーブルとを格納する不揮発性メモリと、前記デイスク装置をアクセスするための構成定義テーブルを格納するメモリと、前記構成定義テーブルを参照して、前記依頼されたＩ／Ｏ要求に応じて、前記デイスク装置をアクセスする制御ユニットとを有し、前記制御ユニットは、前記モデル名で、前記モデル対応テーブルを参照して、対応する前記ホスト論理空間と前記デイスク装置の最大数を読み出し、前記ホスト論理空間と前記デイスク装置の最大数から、前記ホスト論理空間と前記デイスク装置の構成情報を格納するメモリの先頭アドレスを計算し、前記計算された先頭アドレスから前記構成情報を、前記メモリに格納して、前記構成定義テーブルを作成することを特徴とするデイスクアレイ装置。
【０１３５】
（付記１０）前記制御ユニットは、前記計算した前記ホスト論理空間と前記デイスク装置の先頭アドレスを前記メモリに格納することを特徴とする付記９のデイスクアレイ装置。
【０１３６】
（付記１１）前記制御ユニットは、前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数を、前記モデル名に応じて、読み出すことを特徴とする付記９のデイスクアレイ装置。
【０１３７】
（付記１２）前記制御ユニットは、前記読み出した前記ホスト論理空間と前記デイスク装置の最大数を前記メモリに格納することを特徴とする付記９のデイスクアレイ装置。
【０１３８】
（付記１３）前記制御ユニットは、前記読み出した前記ホスト論理空間と、ＲＡＩＤ空間と、仮想デイスク空間と、前記デイスク装置の最大数とから、各々の先頭アドレスを計算することを特徴とする付記１１のデイスクアレイ装置。
【０１３９】
（付記１４）前記制御ユニットは、前記構成定義テーブルを参照して、前記ホスト論理ブロックアドレスから前記デイスク装置の物理ブロックアドレスを計算することを特徴とする付記９のデイスクアレイ装置。
【０１４０】
（付記１５）前記制御ユニットは、前記作成した構成定義テーブルを不揮発性メモリに格納することを特徴とする付記９のデイスクアレイ装置。
【０１４１】
（付記１６）前記制御ユニットは、前記デイスク装置のキャッシュ領域に使用されるメモリの前記キャッシュ領域以外の領域に前記構成定義テーブルを格納することを特徴とする付記９のデイスクアレイ装置。
【０１４２】
（付記１７）前記不揮発性メモリは、前記デイスク装置の一部に割り当てられたシステムデイスクで構成されることを特徴とする付記９のデイスクアレイ装置。
【０１４３】
（付記１８）前記構成定義テーブルは、前記ホスト論理空間を定義するホスト論理空間テーブルと、前記ＲＡＩＤグループを定義するＲＡＩＤ空間テーブルと、前記ＲＡＩＤグループの仮想デイスク装置を定義する仮想デイスクテーブルと、前記デイスク装置を定義する物理デイスクテーブルとから構成されることを特徴とする付記１３のデイスクアレイ装置。
【産業上の利用可能性】
【０１４４】
以上、説明したように、構成設定処理に各モデルの定義を表す情報（モデル対応表）を用意し、この内容から該当モデルの最大値をメモリに記録し、同時に各種別のためのメモリ領域を確保し、実際の構成定義の内容は、この後で、バックアップディスクやフラッシュＲＯＭ等から確保されたメモリ上に展開する。このため、多岐に渡るモデルでも、構成定義テーブルのメモリサイズをそのモデルに合わせたサイズに削減でき、且つモデルによらず、共通のファームウェアで実現できる。又、構成定義テーブルを参照する場合には、ポインタ経由で参照することで、モデルに依らずに同じ方法で参照できる。これにより、多岐に渡るモデルの構成定義作成が容易となり、これらモデルの早期の市場提供が可能となる。
【図面の簡単な説明】
【０１４５】
【図１】本発明の一実施の形態のデイスクアレイ装置の構成図である。
【図２】図１の制御モジュールの構成図である。
【図３】図１及び図２のバックエンドルータとデイスクエンクロージャの構成図である。
【図４】図１及び図３のデイスクエンクロージャの構成図である。
【図５】図１の制御モジュールのファームウェアの機能ブロック図である。
【図６】図１の構成定義テーブルを使用したデイスクアクセスの説明図である。
【図７】図５の構成の構成定義テーブル作成処理フロー図である。
【図８】図７で作成された構成定義テーブルの構成図である。
【図９】図５の構成定義テーブル作成処理の説明図である。
【図１０】図８の構成定義テーブルを用いたリード処理フロー図である。
【図１１】図１０のＲＡＩＤ５の論理マッピング図である。
【図１２】図１１のＲＡＩＤ５のＰＬＢＡ計算処理フロー図である。
【図１３】図１０のＲＡＩＤ０＋１の論理マッピング図である。
【図１４】図１３のＲＡＩＤ０＋１のＰＬＢＡ計算処理フロー図である。
【図１５】本発明が適用される一実施の形態の小規模デイスクアレイ装置の構成図である。
【図１６】本発明が適用される一実施の形態の大規模デイスクアレイ装置の構成図である。
【図１７】図１５のデイスクアレイ装置と図１６にデイスクアレイ装置の構成定義テーブルの必要メモリサイズを説明する図である。
【符号の説明】
【０１４６】
４−０〜４−７  制御モジュール
４０  制御ユニット
４１  チャネルアダプタ
４２ａ，４２ｂ  デバイスアダプタ
４００、４１０  ＣＰＵ
４０ｂ  メモリ
７０〜７６  構成定義テーブル
７８  主構成定義テーブル
８０−１  モデル対応表
６５２  構成管理モジュール
２−０〜２−３１  デバイスエンクロージャー
【図１】
2006221371.tif 000003
【図２】
2006221371.tif 000004
【図３】
2006221371.tif 000005
【図４】
2006221371.tif 000006
【図５】
2006221371.tif 000007
【図６】
2006221371.tif 000008
【図７】
2006221371.tif 000009
【図８】
2006221371.tif 000010
【図９】
2006221371.tif 000011
【図１０】
2006221371.tif 000012
【図１１】
2006221371.tif 000013
【図１２】
2006221371.tif 000014
【図１３】
2006221371.tif 000015
【図１４】
2006221371.tif 000016
【図１５】
2006221371.tif 000017
【図１６】
2006221371.tif 000018
【図１７】
2006221371.tif 000019