(57)【要約】【課題】  バックインターフェースの耐障害性を向上させながらも、低コストのディスクアレイ装置を提供する。【解決手段】  本発明のディスクアレイ装置１０は、ホスト装置７０からのデータ入出力要求に応答してディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力処理を行うデュアルコントローラを備えた装置であって、各々のコントローラ２０，３０は、１パスのＦＣ４１，５１を介してホスト装置７０にインターフェース接続するとともに、１パスのＦＣ４２，５２を介してディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続するＦＣコントローラ２５，３５と、ディスクドライブＤＲＶ０〜ＤＲＶ１４にループ接続する二つＦＣ−ＡＬ６１〜６４の中から選択された何れか一つのＦＣ−ＡＬをＦＣ４２，５２に接続切り替えするＰＢＣ２７，３７を備える。【選択図】    図１
2006293863.tif 000002
【特許請求の範囲】
【請求項１】
上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、
前記デュアルコントローラを構成する各々のコントローラは、
１パスのフロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、１パスのバックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、
前記ディスクドライブにループ接続する二つのＦＣ−ＡＬと、
前記二つのＦＣ−ＡＬの中から選択された何れか一つのＦＣ−ＡＬを前記バックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、
を備える、ディスクアレイ装置。
【請求項２】
請求項１に記載のディスクアレイ装置であって、
前記二つのＦＣ−ＡＬのうち何れかのＦＣ−ＡＬにループ障害が生じた場合に、前記接続切り替え回路は、前記バックインターフェース接続用ファイバチャネルを、ループ障害が生じていないＦＣ−ＡＬに切り替え接続する、ディスクアレイ装置。
【請求項３】
請求項１に記載のディスクアレイ装置であって、
前記各々のコントローラは、前記複数のディスクドライブに形成された論理ボリュームに対するライトアクセス、又はリードアクセスを分担して実行する、ディスククアレイ装置。
【請求項４】
請求項１に記載のディスクアレイ装置であって、
前記複数のディスクドライブのそれぞれを前記ＦＣ−ＡＬに接続させる複数のＰＢＣを更に備え、
前記複数のディスクドライブのうち何れかのディスクドライブに障害が生じた場合に、前記ＰＢＣは、障害が生じたディスクドライブと前記ＦＣ−ＡＬとの接続を切り離す、ディスクアレイ装置。
【請求項５】
請求項４に記載のディスクアレイ装置であって、
前記ＰＢＣを制御するエンクロージャーコントローラを更に備え、
前記複数のディスクドライブのうち何れかのディスクドライブに障害が生じた場合に、前記コントローラは、障害が生じたディスクドライブと前記ＦＣ−ＡＬとの接続を切り離すためのコマンドを、ループ障害が生じていないＦＣ−ＡＬを通じて前記エンクロージャーコントローラに送信する、ディスクアレイ装置。
【請求項６】
請求項１に記載のディスクアレイ装置であって、
前記接続切り替え回路はＰＢＣである、ディスクアレイ装置。
【請求項７】
請求項１に記載のディスクアレイ装置であって、
前記接続切り替え回路はスイッチである、ディスクアレイ装置。
【請求項８】
請求項７に記載のディスクアレイ装置であって、
前記スイッチには、応答速度の異なる複数種類のディスクドライブに接続する複数のファイバチャネルが接続されている、ディスクアレイ装置。
【請求項９】
請求項８に記載のディスクアレイ装置であって、
前記ディスクドライブとして、ファイバチャネル・ディスクドライブと、シリアルＡＴＡディスクドライブとが混載されており、
前記バックインターフェース接続用ファイバチャネルを前記シリアルＡＴＡディスクドライブに接続するＦＣ−ＳＡＴＡ変換インターフェースを更に備え、
前記スイッチは、前記ファイバチャネル・ディスクドライブにループ接続する前記ＦＣ−ＡＬと、前記ＦＣ−ＳＡＴＡ変換インターフェースとにそれぞれ接続されている、ディスクアレイ装置。
【請求項１０】
請求項１に記載のディスクアレイ装置であって、
前記二つのＦＣ−ＡＬが接続しているディスクドライブの台数は略同数である、ディスクアレイ装置。
【請求項１１】
請求項１に記載のディスクアレイ装置であって、
前記ファイバチャネルプロトコルコントローラは、前記上位ホスト装置との間におけるファイバチャネルプロトコルを制御するコアと、前記ディスクドライブとの間におけるファイバチャネルプロトコルを制御するコアを単一のＬＳＩに実装した回路である、ディスクアレイ装置。
【請求項１２】
第１ディスクアレイ装置と、第２ディスクアレイ装置と、前記第１ディスクアレイ装置及び前記第２ディスクアレイ装置に対してデータの入出力を要求する上位ホスト装置とを備えたストレージシステムであって、
前記第１ディスクアレイ装置は、
前記上位ホスト装置からのデータ入出力要求に応答して第１ディスクドライブに対するデータ入出力処理を行う第１デュアルコントローラを備え、
前記第１デュアルコントローラを構成する各々のコントローラは、
１パスの第１フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、１パスの第１バックインターフェース接続用ファイバチャネルを介して前記第１ディスクドライブにインターフェース接続する第１ファイバチャネルプロトコルコントローラと、
前記第１ディスクドライブにループ接続する複数の第１ＦＣ−ＡＬと、
前記二つの第１ＦＣ−ＡＬの中から選択された何れか一つの第１ＦＣ−ＡＬを前記第１バックインターフェース接続用ファイバチャネルに接続切り替えする第１接続切り替え回路と、を備え、
前記第２ディスクアレイ装置は、
前記上位ホスト装置からのデータ入出力要求に応答して第２ディスクドライブに対するデータ入出力処理を行う第２デュアルコントローラを備え、
前記第２デュアルコントローラを構成する各々のコントローラは、
２パスの第２フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続する第２ファイバチャネルプロトコルコントローラと、
２パスの第２バックインターフェース接続用ファイバチャネルを介して前記第２ディスクドライブにインターフェース接続する第３ファイバチャネルプロトコルコントローラと、
前記第２バックインターフェース接続用ファイバチャネルに接続するとともに、前記第２ディスクドライブにループ接続する二つの第２ＦＣ−ＡＬと、
を備える、ストレージシステム。
【請求項１３】
請求項１２に記載のストレージシステムであって、
前記上位ホスト装置は、前記第１ディスクアレイ装置に対して低速のアクセス要求を行い、前記第２ディスクアレイ装置に対して高速のアクセス要求を行う、ストレージシステム。
【請求項１４】
上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、
前記デュアルコントローラを構成する各々のコントローラは、
１パスのフロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続するとともに、１パスのバックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、
前記バックインターフェース接続用ファイバチャネルを前記ディスクドライブに接続するＦＣ−ＳＡＴＡ変換インターフェースと、
を備える、ディスクアレイ装置。
【請求項１５】
請求項１４に記載のディスクアレイ装置であって、
前記ディスクドライブは、シリアルＡＴＡディスクドライブである、ディスクアレイ装置。
【請求項１６】
上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うＣＰＵと、
前記上位ホスト装置又は前記ディスクドライブとの間で入出力されるデータを一時的に格納するキャッシュメモリと、
１パスのフロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置にインターフェース接続し、前記上位ホスト装置との間のファイバチャネルプロトコルを制御するコアと、１パスのバックインターフェース接続用ファイバチャネルを介して前記ディスクドライブにインターフェース接続し、前記ディスクドライブとの間のファイバチャネルプロトコルを制御するコアとを単一のＬＳＩ回路内に実装したファイバチャネルプロトコルコントローラと、
前記フロントインターフェース接続用ファイバチャネルを介して前記上位ホスト装置との間で光信号の送受信を行うＧＢＩＣモジュールと、
前記ディスクドライブにループ接続する二つのＦＣ−ＡＬと、
前記二つのＦＣ−ＡＬの中から選択された何れか一つのＦＣ−ＡＬを前記バックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、
を各コントローラ内に備えたデュアルコントローラ構成のディスアレイ装置の制御方法であって、
前記ＣＰＵが前記ファイバチャネルプロトコルコントローラから前記ＣＰＵへの割り込みを禁止するステップと、
前記ＣＰＵが前記上位ホスト装置との間におけるファイバチャネルプロトコル上のデータ通信開始前のネゴシエーションを遮断するステップと、
前記ＣＰＵが前記ＧＢＩＣモジュールからの光信号出力を抑止するステップと、
前記ＣＰＵが障害情報を前記キャッシュメモリに退避させるステップと、
を備える、ディスクアレイ装置の制御方法。
【請求項１７】
請求項１６に記載のディスアレイ装置の制御方法であって、
何れか一方のコントローラが前記制御方法によって閉塞する場合に、他方のコントローラが前記一方のコントローラのＧＢＩＣモジュールからの光信号出力を抑止する、制御方法。
【請求項１８】
請求項１６に記載のディスアレイ装置の制御方法であって、
何れか一方のコントローラが前記制御方法によって閉塞できない場合に、他方のコントローラが前記一方のコントローラのＧＢＩＣモジュールからの光信号出力を抑止する、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイ装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、ＩＴ技術の進展等によりディスクアレイ装置の高性能化、大容量化、低価格化の要求が高まっている。ディスクアレイ装置は、アレイ状に配置された多数のディスクドライブを備えており、ＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）に基づいて構築されている。ホスト装置は、ディスクアレイ装置に対してライトアクセスコマンド又はリードアクセスコマンドを発行することにより、ディスクドライブに対して、データの読み書きを行うことができる。このようなディスクアレイ装置においては、耐障害性向上や高性能化を目的として、デュアルコントローラ（二重化コントローラ）構成を採用するなど、内部装置を冗長構成している場合が多い（例えば、特許文献１）。ディスクアレイ装置においては、データ転送の高速化を図るため、ホスト装置とのインターフェース（以下、フロントインターフェースと称する。）、及びディスクドライブとのインターフェース（以下、バックインターフェースと称する。）のそれぞれについて、ファイバチャネルインターフェースを採用する場合があり、デュアルコントローラ構成のディスクアレイ装置においては、コントローラ一つあたりにつき、フロントインターフェース接続用のファイバチャネルプロトコルコントローラと、バックインターフェース接続用のファイバチャネルプロトコルコントローラをそれぞれ１つ備えていた。
【特許文献１】特開２００３−２５６１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上述の構成では、高価なファイバチャネルプロトコルコントローラをコントローラ一つあたり２つ備えているため、製品コストが高くなる。ディスクアレイ装置の更なる普及のためには、製品コストの低下が求められている。そこで、コントローラ一つあたりのファイバチャネルプロトコルコントローラ数を１つに減らし、１つのファイバチャネルプロトコルコントローラでフロントインターフェース接続とバックインターフェース接続とを兼用させる構成も考えられる。しかし、バックインターフェース接続するファイバチャネルが１パスのみだと、高信頼性が要求されるディスクアレイ装置においては、耐障害性の観点で課題が残る。
【０００４】
一方、デュアルコントローラ構成を採用するディスクアレイ装置においては、一方のコントローラにコントローラを閉塞すべき障害が生じると、当該コントローラは、自身を閉塞するための閉塞処理を実行し、上位ホスト装置のＩ／Ｏは他方のコントローラにフェイルオーバーするように構成されている。従来の閉塞処理では、各種レジスタ情報等（障害情報）をキャッシュメモリに退避させる処理と、障害が生じたファイバチャネルプロトコルコントローラのホストインターフェースに実装されているＧＢＩＣモジュール（Gigabit Interface Converter Module）の光出力機能を抑止する処理と、当該ファイバチャネルプロトコルコントローラを初期化する処理を実行していた。この閉塞処理により、ディスクアレイ装置からホスト装置へ応答信号が返送されなくなるので、ホスト装置は、ディスクアレイ装置に何等かの障害が発生したものと判断し、パス切り替えを行う。また、ストレージ管理者は、キャッシュメモリに退避された障害情報から障害原因を解析できる。
【０００５】
閉塞処理において、ＧＢＩＣモジュールの光出力機能を抑止するとともに、ファイバチャネルプロトコルコントローラを初期化する理由は以下の通りである。ファイバチャネルプロトコルコントローラは、ホスト装置との間で光信号の送受信を行うことによりファイバチャネルプロトコルに準拠したデータ通信を行う。データ通信が行われている間は、絶えずイベントが発生し、ファイバチャネルプロトコルコントローラからＣＰＵに割り込み処理要求が入力される。この割り込み処理要求は、通常、コントローラ閉塞を行うためのタスク処理よりも優先順位が高く設定されている。このため、コントローラに障害が発生しても、ファイバチャネルプロトコルコントローラがホスト装置との間でデータ通信を行っている間は、ファイバチャネルプロトコルコントローラからＣＰＵに絶えず割り込み処理要求が入力されるので、ＣＰＵは、いつまで経っても、コントローラ閉塞を行うためのタスク処理ができないこととなる。そこで、ディスクアレイ装置がホスト装置とＳＡＮ（Storage Area Network）を介してファイバチャネルプロトコルによるデータ通信を行うためのＧＢＩＣモジュールの光出力機能を抑止するとともに、ファイバチャネルプロトコルコントローラをリセットすることにより、ホスト装置とファイバチャネルプロトコルコントローラとの間でデータ通信が行われないようにする。すると、ホスト装置とファイバチャネルプロトコルコントローラとの間のデータ通信に伴うイベントの発生が抑止され、ファイバチャネルプロトコルコントローラからＣＰＵに割り込み処理要求がなされなくなるので、ＣＰＵは、コントローラ閉塞を行うためのタスク処理を実行できる。
【０００６】
ところが、ホスト装置とコントローラとの間のファイバチャネルプロトコルを制御するコア（以下、フロント側コアと称する。）と、コントローラとディスクドライブとの間のファイバチャネルプロトコルを制御するコア（以下、バック側コアと称する。）を単一のＬＳＩ内に実装したファイバチャネルプロトコルコントローラにおいては、両コアがＰＣＩ−Ｘバスで接続されている関係上、何れか一方のコアのみを初期化するということができない。このため、上述の閉塞処理においては、両コアを同時に初期化することになる。フロント側コアを制御するモジュールは、突然の初期化に対応できるように従来から設計されているが、バック側コアを制御するモジュールは、そのような配慮がなされていない。突然の初期化に対応できるように、バック側コアを制御するモジュールを改良するには、相当の労力を要する。このような理由から、両コアを単一のＬＳＩ内に実装するファイバチャネルプロトコルコントローラにおいては、安定した閉塞処理を行うための代替技術が必要になる。
【０００７】
本発明は上記の問題点に鑑みてなされたもので、本発明の目的の一つは、バックインターフェースの耐障害性を向上させながらも、低コストのディスクアレイ装置を提供することにある。
【０００８】
本発明の他の目的は、フロント側コアとバック側コアを単一のＬＳＩ内に実装するファイバチャネルプロトコルコントローラを備えたディスクアレイ装置において、コントローラの障害発生時に安定したコントローラ閉塞処理を行えるディスクアレイ装置の制御方法を提供することにある。
【０００９】
本発明の更に他の目的は、コントローラ障害を上位ホスト装置又はパス切り替えソフトウェアに検出させ、上位ホスト装置からのＩ／Ｏパスをフェイルオーバーさせるためのディスクアレイ装置の制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明のディスクアレイ装置は、上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うデュアルコントローラを備えたディスクアレイ装置であって、デュアルコントローラを構成する各々のコントローラは、１パスのフロントインターフェース接続用ファイバチャネルを介して上位ホスト装置にインターフェース接続するとともに、１パスのバックインターフェース接続用ファイバチャネルを介してディスクドライブにインターフェース接続するファイバチャネルプロトコルコントローラと、ディスクドライブにループ接続する二つのＦＣ−ＡＬと、二つのＦＣ−ＡＬの中から選択された何れか一つのＦＣ−ＡＬをバックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、を備える。
【００１１】
接続切り替え回路は、例えば、二つのＦＣ−ＡＬのうち何れかのＦＣ−ＡＬにループ障害が生じた場合に、バックインターフェース接続用ファイバチャネルを、ループ障害が生じていないＦＣ−ＡＬに切り替え接続する。
【００１２】
本発明のディスクアレイ装置の制御方法は、上位ホスト装置からのデータ入出力要求に応答してディスクドライブに対するデータ入出力処理を行うＣＰＵと、上位ホスト装置又はディスクドライブとの間で入出力されるデータを一時的に格納するキャッシュメモリと、１パスのフロントインターフェース接続用ファイバチャネルを介して上位ホスト装置にインターフェース接続し、上位ホスト装置との間のファイバチャネルプロトコルを制御するコアと、１パスのバックインターフェース接続用ファイバチャネルを介してディスクドライブにインターフェース接続し、ディスクドライブとの間のファイバチャネルプロトコルを制御するコアとを単一のＬＳＩ回路内に実装したファイバチャネルプロトコルコントローラと、フロントインターフェース接続用ファイバチャネルを介して上位ホスト装置との間で光信号の送受信を行うＧＢＩＣモジュールと、ディスクドライブにループ接続する二つのＦＣ−ＡＬと、二つのＦＣ−ＡＬの中から選択された何れか一つのＦＣ−ＡＬをバックインターフェース接続用ファイバチャネルに接続切り替えする接続切り替え回路と、を各コントローラ内に備えたデュアルコントローラ構成のディスアレイ装置の制御方法であって、ＣＰＵがファイバチャネルプロトコルコントローラからＣＰＵへの割り込みを禁止するステップと、ＣＰＵが上位ホスト装置との間におけるファイバチャネルプロトコル上のデータ通信開始前のネゴシエーションを遮断するステップと、ＣＰＵがＧＢＩＣモジュールからの光信号出力を抑止するステップと、ＣＰＵが障害情報をキャッシュメモリに退避させるステップと、を備える。
【００１３】
何れか一方のコントローラがこの制御方法によって閉塞する場合、或いはこの制御方法によって閉塞できない場合に、他方のコントローラが一方のコントローラのＧＢＩＣモジュールからの光信号出力を抑止するのが好ましい。
【発明の効果】
【００１４】
本発明によれば、バックインターフェースの耐障害性を向上させながらも、低コストのディスクアレイ装置を提供できる。また、本発明によれば、コントローラの障害発生時に安定したコントローラ閉塞処理を行うことができ、その上、上位ホスト装置のＩ／Ｏパスフェイルオーバーが上手く動作するように誘導することができる。
【発明を実施するための最良の形態】
【００１５】
以下、各図を参照して本発明の実施例について説明する。各実施例は特許請求の範囲を限定するものではなく、また実施例の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【実施例１】
【００１６】
図１は本実施例に係るディスクアレイ装置１０の構成を示している。ディスクアレイ装置１０は、通信ネットワーク７１を介してホスト装置（上位ホスト装置）７０に接続している。ホスト装置７０は、ディスクアレイ装置１０の上位ホスト装置として機能するサーバ、パーソナルコンピュータ、ワークステーション、メインフレーム等である。通信ネットワーク７１としては、例えば、ＬＡＮ(Local Area Network)、ＳＡＮ（Storage Area Network）、インターネット、専用回線等を挙げることができる。オープン系ホストの場合は、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、ＦＣＰ（Fibre Channel Protocol ）、ｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルに基づいてデータ転送が行われる。メインフレーム系ホストの場合は、例えば、ＦＩＣＯＮ（Fibre Connection：登録商標）、ＥＳＣＯＮ（Enterprise System Connection：登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture：登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture：登録商標）等の通信プロトコルに基づいてデータ転送が行われる。
【００１７】
尚、ホスト装置７０からＮＦＳ（Network File System）等のプロトコルにより、ファイル名指定によるデータ出力要求を受け付けるように構成されたＮＡＳ（Network Attached Storage）機能を搭載してもよい。
【００１８】
ディスクアレイ装置１０は、二重化されたコントローラ２０，３０を備えたデュアルコントローラ構成を採用している。コントローラ２０は、主に、ＣＰＵ２１、ローカルメモリ（ＬＭ）２２、データコントローラ（Ｄ−ＣＴＬ）２３、キャッシュメモリ（ＣＭ）２４、ファイバチャネルプロトコルコントローラ（Ｆ−ＣＴＬ）２５、ＰＢＣ（Port Bypass Circuit）２７、エンクロージャーコントローラ（Ｅ−ＣＴＬ）２８、及びＦＣ−ＡＬ（Fibre Channel Arbitrated Loop）６１，６２を備える。
【００１９】
ＣＰＵ２１は、ホスト装置７０からのデータ入出力要求に応答して、複数のディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力処理（ライトアクセス、又はリードアクセス）を制御するプロセッサであり、ローカルメモリ２２に格納されたマイクロプログラムを実行することによりデータコントローラ２３、ファイバチャネルプロトコルコントローラ２５、及びＰＢＣ２７等を制御する。データコントローラ２３は、ＣＰＵ２１の制御により、ファイバチャネルプロトコルコントローラ２５とキャッシュメモリ２４との間のデータ転送を制御する。キャッシュメモリ２４は、ファイバチャネルプロトコルコントローラ２５を介してフロントインターフェース又はバックインターフェースとの間で授受されるデータを一時的に記憶する。
【００２０】
ファイバチャネルプロトコルコントローラ２５は、フロントインターフェース接続用ファイバチャネル４１を介してホスト装置７０にインターフェース接続し、ファイバチャネルプロトコルによるブロックアクセス要求を受信する機能を有する。更に、ファイバチャネルプロトコルコントローラ２５は、バックインターフェース接続用ファイバチャネル４２を介してディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続し、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を送信する機能を有する。ＰＢＣ２７は、バックインターフェース接続用ファイバチャネル４２の接続先として、二つのＦＣ−ＡＬ６１，６２のうち何れか一方又は両者を選択し、接続切り替えを行う。
【００２１】
ＦＣ−ＡＬ６１は、ＦＣ−ＡＬ６２上に実装されたＰＢＣ８２を介して、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４にループ接続している。ＦＣ−ＡＬ６２は、ＦＣ−ＡＬ６２上に実装されたＰＢＣ８２を介して、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続している。ＰＢＣ８２は、システム運用上の障害を最小限に止めて、ノードの追加や削除が行えるようにＦＣ−ＡＬ６１，６２を自動的にオープン又はクローズする電子スイッチである。ＰＢＣ８２は、ファイバチャネルプロトコルコントローラ２５やディスクドライブＤＲＶ０〜ＤＲＶ１４をバイパスして、これらをＦＣ−ＡＬ６１，６２から電気的に除外する機能を有する。例えば、ＰＢＣ８２は、障害が発生したディスクドライブＤＲＶ０〜ＤＲＶ１４をＦＣ−ＡＬ６１，６２から切り離して、他のディスクドライブＤＲＶ０〜ＤＲＶ１４とファイバチャネルプロトコルコントローラ２５との間の通信を可能にする。また、ＰＢＣ８２は、ＦＣ−ＡＬ６１，６２の動作を維持したままで、ディスクドライブＤＲＶ０〜ＤＲＶ１４の抜き差しを可能にする。例えば、ディスクドライブＤＲＶ１５（図示せず）が新たに装着された場合には、そのディスクドライブＤＲＶ１５をＦＣ−ＡＬ６１，６２に取り込み、ファイバチャネルプロトコルコントローラ２５との間の通信を可能にする。
【００２２】
エンクロージャーコントローラ（Ｅ−ＣＴＬ）２８は、ＳＥＳ（SCSI Enclosure Surcuit）ドライブを制御する。ＳＥＳドライブは、ＳＣＳＩ３（Small Computer System Interface ３）規格に規定されるＳＥＳ（ＳＣＳＩ Enclosure Services）やＥＳＩ(Enclosure Service I/F)の機能を備えており、ＳＥＳ（ＳＣＳＩ Enclosure Service）やＥＳＩ(Enclosure Service I/F)の機能を動作させることができる。本実施例では、ＳＥＳドライブは、ＦＣ−ＡＬ６１〜６４の他に、エンクロージャーコントローラ２８とも通信可能なディスクドライブである。ここでは、各ＦＣ−ＡＬにつき２台のディスクドライブＤＲＶ０〜ＤＲＶ３をＳＥＳドライブとしているが、全てのディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４をＳＥＳドライブとしてもよい。
【００２３】
尚、コントローラ２０に実装されているフロントインターフェース接続用ファイバチャネル４１、及びバックインターフェース接続用ファイバチャネル４２はそれぞれ１パスである。
【００２４】
一方、コントローラ３０は、コントローラ２０と同様に構成されており、ＣＰＵ３１、ローカルメモリ（ＬＭ）３２、データコントローラ（Ｄ−ＣＴＬ）３３、キャッシュメモリ（ＣＭ）３４、ファイバチャネルプロトコルコントローラ（ＦＣ−ＣＴＬ）３５、ＰＢＣ３７、エンクロージャーコントローラ（Ｅ−ＣＴＬ）３８、フロントインターフェース接続用ファイバチャネル５１、バックインターフェース接続用ファイバチャネル５２、及びＦＣ−ＡＬ６３，６４を備えている。ＰＢＣ３７は、バックインターフェース接続用ファイバチャネル５２の接続先として、二つのＦＣ−ＡＬ６３，６４のうち何れか一方又は両者を選択し、接続切り替えを行う。ＦＣ−ＡＬ６３は、ＰＢＣ８２を介して偶数番号のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４にループ接続している。ＦＣ−ＡＬ６４は、ＰＢＣ８２を介して奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続している。
【００２５】
尚、コントローラ３０に実装されているフロントインターフェース接続用ファイバチャネル５１、及びバックインターフェース接続用ファイバチャネル５２はそれぞれ１パスである。
【００２６】
データコントローラ２３，３３はバス８１を介して相互に接続されており、一方のデータコントローラ２３（又は３３）がバス８１を介して他方のデータコントローラ３３（又は２３）に対して、コマンド転送やデータ転送等を行うこともできる。例えば、両コントローラ２０，３０が分担して同一の論理ボリュームに対するアクセスを行う場合に、両コントローラ間でライトデータ又はリードデータの転送を行うこともできる。
【００２７】
コントローラ２０，３０は、ディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤ方式においては、複数のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４が一つのグループ（以下、ＲＡＩＤグループと称する。）として管理される。ＲＡＩＤグループ上には、ホスト装置７０からのアクセス単位である論理ボリュームが形成されている。各論理ボリュームには、ＬＵＮ（Logical Unit Number）と呼ばれる識別子が付与されている。
【００２８】
尚、ＰＢＣ２７とＦＣ−ＡＬ６１，６２との間には、それぞれＰＢＣ１０１，１０２が実装されている。ＰＢＣ１０１は、ＦＣ−ＡＬ６１に障害が生じた場合には、バックインターフェース接続用ファイバチャネル４２を、ファイバチャネル１１１（点線）を介してＦＣ−ＡＬ６３に接続する。ＰＢＣ１０２は、ＦＣ−ＡＬ６２に障害が生じた場合には、バックインターフェース接続用ファイバチャネル４２を、ファイバチャネル１１２（点線）を介してＦＣ−ＡＬ６４に接続する。
【００２９】
同様に、ＰＢＣ３７とＦＣ−ＡＬ６３，６４との間には、それぞれＰＢＣ１０３，１０４が実装されている。ＰＢＣ１０３は、ＦＣ−ＡＬ６３に障害が生じた場合には、バックインターフェース接続用ファイバチャネル５２を、ファイバチャネル１１３（点線）を介してＦＣ−ＡＬ６１に接続する。ＰＢＣ１０４は、ＦＣ−ＡＬ６４に障害が生じた場合には、バックインターフェース接続用ファイバチャネル５２を、ファイバチャネル１１４（点線）を介してＦＣ−ＡＬ６２に接続する。
【００３０】
仮に、各コントローラ２０，３０に実装されている全てのＰＢＣ１０１〜１０４がファイバチャネル１１１〜１１４に接続することにより、バックインターフェース接続用ファイバチャネル４２，５２が相手コントローラ側のＦＣ−ＡＬ６１〜６４に接続された状態を想定すると、この状態は、例えば、特開２０００−１８７５６１号の図１に示されているように、両コントローラ間を接続するファイバチャネルループに複数のディスクドライブが接続する状態と同じになる。
【００３１】
以下の説明においては、ＦＣＡＬ６１をコントローラ２０の稼働系ＦＣ−ＡＬ、ＦＣ−ＡＬ６２をコントローラ２０の待機系ＦＣ−ＡＬ、ＦＣ−ＡＬ６３をコントローラ３０の待機系ＦＣ−ＡＬ、ＦＣ−ＡＬ６４をコントローラ３０の稼働系ＦＣ−ＡＬとした場合を想定して説明を進める。
【００３２】
図２は複数のディスクドライブＤＲＶ０〜ＤＲＶ１４に形成される論理ボリュームを示している。ここでは、説明の便宜上、二つの論理ボリュームＬＵ１，ＬＵ２が示されている。ホスト装置７０に搭載されているＯＳ（Operating System）は、論理ボリューム名を指定してディスクアレイ装置１０にアクセスする。仮に、各論理ボリュームＬＵ１，ＬＵ２を構成する物理ディスクを一つにすると、その物理ディスクが故障したときに、その論理ボリュームＬＵ１，ＬＵ２は使用不能となる。これを防止するために、ＲＡＩＤ方式では、各論理ボリュームＬＵ１，ＬＵ２が異なる複数のディスクドライブＤＲＶ０〜ＤＲＶ１４上に形成されている。その一方で、コントローラ２０の稼働系ＦＣ−ＡＬ６１は偶数番号のディスクドライブＤＲＶ０，２，４，…，１４に接続し、コントローラ３０の稼働系ＦＣ−ＡＬ６４は奇数番号のディスクドライブＤＲＶ１，３，４，…，１３に接続しているので、各々の論理ボリュームＬＵ１，ＬＵ２へのアクセスは、必ずしも何れか一方のコントローラ２０又は３０のみが行うものではなく、両コントローラ２０，３０が協調制御の下、協力して行うように構成してもよい。
【００３３】
さて、ホスト装置７０からディスクアレイ装置１０の論理ボリュームＬＵ１又はＬＵ２に対して、ライトアクセスが行われると、一方のコントローラ２０内のキャッシュメモリ２４に格納されるライトデータは、バス８１を介して他方のコントローラ３０内のキャッシュメモリ３４にも格納される。このようにデータを二重化することで、一方のコントローラ２０に障害が生じた場合でも、他方のコントローラ３０にフェイルオーバーできる。キャッシュメモリ２４，３４にライトデータが格納された時点でディスクアレイ装置１０はホスト装置７０に対してライトアクセス完了の通知を行う。次いで、コントローラ２０は、ＦＣ−ＡＬ６１を介してディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４へのライトアクセスを行う。ライトアクセスが行われる論理ボリュームＬＵ１又はＬＵ２は、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４だけでなく、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３をも含むので、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３へのライトアクセスは、コントローラ３０がＦＣ−ＡＬ６４を介して行う。
【００３４】
一方、ホスト装置７０からディスクアレイ装置１０の論理ボリュームＬＵ１又はＬＵ２に対して、リードアクセスが行われると、コントローラ２０はキャッシュメモリ２４をチェックし、リードアクセスの対象となるデータがある場合には、該当データを読み取ってホスト装置７０に送信する。キャッシュメモリ２４に該当データがない場合には、コントローラ２０は、ＦＣ−ＡＬ６１を介してディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４へのリードアクセスを行う。リードアクセスが行われる論理ボリュームＬＵ１又はＬＵ２は、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４だけでなく、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３をも含むので、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３へのリードアクセスはコントローラ３０がＦＣ−ＡＬ６４を介して行う。各コントローラ２０，３０によって読み出されたリードデータはキャッシュメモリ２４，３４に二重書きされる。
【００３５】
このように、一つの論理ボリュームに対するアクセスを、両コントローラ２０，３０が協調制御の下、協力して行うことにより、各コントローラ２０，３０の処理負荷を均等化できる。本実施例では、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４と、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３とに二分して、各コントローラ２０，３０の処理負荷を均等化する例を示したが、各コントローラ２０，３０が担当するディスクドライブ数が略同程度になるように、例えば、ディスクドライブＤＲＶ０〜ＤＲＶ７と、ディスクドライブＤＲＶ８〜ＤＲＶ１４とに二分して、各コントローラ２０，３０の処理負荷を均等化してもよい。
【００３６】
また、本実施例では、二つのＰＢＣ２７，３７を制御して、バックインターフェース接続用ファイバチャネル４２，５２を稼働系ＦＣ−ＡＬ６１，６４に接続するだけで、全てのディスクドライブＤＲＶ０〜ＤＲＶ１４は、何れか一方のコントローラ２０又は３０に接続されるため、ＦＣ−ＡＬ６１〜６４上に実装された個々のＰＢＣ８２を個別に制御する必要がなく、制御が容易である。また、各ＣＰＵ２１，３１は、各コントローラ内の稼働系ＦＣ−ＡＬと待機系のＦＣ−ＡＬを区別することなく、両者とも同一のデバイスとして認識しているので、制御が容易である。
【００３７】
ところで、ＦＣ−ＡＬ６１〜６４に接続する各ディスクドライブＤＲＶ０〜ＤＲＶ１４のポートに障害が生じると、当該ポートに接続するＦＣ−ＡＬ６１〜６４にはパケットが流れなくなり、ループ障害が生じる。ループ障害が生じると、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのアクセスが不能になるので、障害を回避する必要がある。ここでは、説明を簡略化するため、ＦＣ−ＡＬ６１側に接続するディスクドライブＤＲＶ２の片側のポートＰ１に障害が生じた場合を想定し、その障害回避処理について、図３を参照しながら説明する。
【００３８】
図３はループ障害回避処理ルーチンを示している。同図において、ＦＣ−ＡＬ６１側に接続するディスクドライブＤＲＶ２のポートＰ１に障害が生じると（Ｓ１０１；ＹＥＳ）、ＣＰＵ２１は、バックインターフェース接続用ファイバチャネル４２の接続先をＦＣ−ＡＬ６１（稼働系ＦＣ−ＡＬ）からＦＣ−ＡＬ６２（待機系ＦＣ−ＡＬ）に切り替える（Ｓ１０２）。障害発生の有無は、例えば、エラーメッセージの検出、アクノリッジ信号の未到達或いはタイムアウト等によって検出され、ファイバチャネルプロトコルコントローラ２５からデータコントローラ２３経由でＣＰＵ２１に通知される。
【００３９】
次いで、ＣＰＵ２１は、ＦＣ−ＡＬ６２からＳＥＳドライブ経由でエンクロージャーコントローラ２８又は３８にＳＥＳコマンドを送信する（Ｓ１０３）。ＳＥＳコマンドには、被疑ディスクドライブ（障害が生じていると推定されるディスクドライブ）のＦＣループ上におけるＡＬ＿ＰＡ（Arbitrated Loop Physical Address）が含まれている。
【００４０】
ＳＥＳコマンドを受信したエンクロージャーコントローラ２８又は３８は、ＰＢＣ８２を制御して、ＡＬ＿ＰＡによって指定された被疑ディスクドライブとＦＣ−ＡＬ６１との接続を解除する（Ｓ１０４）。例えば、ディスクドライブＤＲＶ０が被疑ディスクドライブとして指定されると、ディスクドライブＤＲＶ０とＦＣ−ＡＬ６１との接続が解除される。
【００４１】
次いで、ＣＰＵ２１は、バックインターフェース接続用ファイバチャネル４２の接続先をＦＣ−ＡＬ６２からＦＣ−ＡＬ６１に切り替えて（Ｓ１０５）、ＦＣ−ＡＬ６１のループ障害が解消したか否かをループ診断する（Ｓ１０６）。本例では、ディスクドライブＤＲＶ２のポートＰ１（片側のポート）に障害が生じた場合を想定しているので、ディスクドライブＤＲＶ０を接続解除してもＦＣ−ＡＬ６１のループ障害は解消しない。
【００４２】
ループ障害が解消しない場合は（Ｓ１０６；ＮＯ）、被疑ディスクドライブを逐次変更しながら、ループ障害が解消するまでＳ１０２〜Ｓ１０５を繰り返し実行する。そして、ディスクドライブＤＲＶ２とＦＣ−ＡＬ６１との接続が解除されたところで、ＦＣ−ＡＬ６１のループ障害が解消される。
【００４３】
このように、稼働系のＦＣ−ＡＬ６１にループ障害が生じても、バックインターフェース接続用ファイバチャネル４２の接続先を待機系のＦＣ−ＡＬ６２に切り替えて、ＳＥＳドライブ経由でエンクロージャーコントローラ２８又は３８にＳＥＳコマンドを送信し、ＰＢＣ８２によって被疑ディスクドライブの接続解除を行うことにより、ＦＣ−ＡＬ６１のループ障害を解消できる。また、本例では、ＦＣ−ＡＬ６３側に接続するディスクドライブＤＲＶ２のポートＰ２には障害が生じていないので、ＦＣ−ＡＬ６３又は６４からＳＥＳドライブ経由でエンクロージャーコントローラ２８又は３８にＳＥＳコマンドを送信し、被疑ディスクドライブの接続解除を行うこともできる。
【００４４】
尚、例えば、ディスクドライブＤＲＶ２の両ポートＰ１，Ｐ２に障害が生じると、ＦＣ−ＡＬ６１，６３にＬＩＳＭ（Loop Initialization Select Master）障害が生じることとなるが、ＰＢＣ２７を制御して、バックインターフェース接続用ファイバチャネル４２の接続先を待機系のＦＣ−ＡＬ６２に切り替えて、ＳＥＳドライブ経由でエンクロージャーコントローラ２８又は３８にＳＥＳコマンドを送信することにより、或いはバックインターフェース接続用ファイバチャネル５２に常時接続している稼働系のＦＣ−ＡＬ６４からＳＥＳドライブ経由でエンクロージャーコントローラ２８又は３８にＳＥＳコマンドを送信することにより、被疑ディスクドライブの接続解除を行うことができる。
【００４５】
更に、各ＦＣ−ＡＬ６１〜６４に生じるループ障害は、これらＦＣ−ＡＬ６１〜６４自体の破損又は経年劣化等によるインタミテント障害によるものや、これらＦＣ−ＡＬ６１〜６４に実装されているデバイス（例えば、ＰＢＣ８２）の不具合等によるインタミテント障害によっても生じ得る。このような原因によるループ障害に対しては、ＦＣ−ＡＬ６１〜６４とディスクドライブＤＲＶ０〜ＤＲＶ１４との接続を解除しても解消されないので、バックインターフェース接続用ファイバチャネル４２，５２の接続先を、それぞれ待機系のＦＣ−ＡＬ６２，６３に切り替える必要がある。
【００４６】
本実施例によれば、各コントローラ２０，３０に実装されるバックインターフェース接続用ファイバチャネル４２，５２は１パスのみであるが、ディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続するＦＣ−ＡＬを各コントローラ２０，３０につき二重化（冗長構成）しているので、耐障害性に優れている。
【００４７】
図４はファイバチャネルプロトコルコントローラ２５，３５を中心とするディスクアレイ装置１０の主要部を示している。説明の便宜上、コントローラ内の一部の回路要素（ローカルメモリ２２，３２、エンクロージャーコントローラ２８，３８等）と、バックインターフェース周辺のハードウエア（ＰＢＣ２７，３７，１０１，１０２，１０３，１０４、ＦＣ−ＡＬ６１，６２，６３，６４等）の図示は省略している。
【００４８】
ファイバチャネルプロトコルコントローラ２５は、フロント側コア２５ａとバック側コア２５ｂを単一のＬＳＩ内に実装した回路構成を備えている。コア２５ａは、ホスト装置７０に対するデータ通信におけるファイバチャネルプロトコルを制御するための回路であり、例えば、ホスト装置７０からのファイバチャネルプロトコルによるブロックアクセス要求を受け付ける機能を有する。コア２５ｂは、ディスクドライブＤＲＶ０〜ＤＲＶ１４に対するデータ入出力におけるファイバチャネルプロトコルを制御するための回路であり、例えば、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を処理する。コア２５ａとコア２５ｂは、それぞれ独立したモジュールによって制御されている。
【００４９】
ＰＣＩ−Ｘバス２９は、コントローラ２０のフロントインターフェース、バンクインターフェース、ファイバチャネルプロトコルコントローラ２５、及びデータコントローラ２３を相互に接続する。ＰＣＩ−Ｘバス２９は、ファイバチャネルプロトコルコントローラ２５内において二股に分岐し、コア２５ａ，２５ｂに接続している。フラッシュメモリ（ＦＭ）１６１は、ＣＰＵ２１とデータコントローラ２３とを結線するＰＣＩ−Ｘバスに分岐接続しており、コントローラ閉塞時に必要最小限の障害情報を退避できるように構成されている。ここでは、必要最小限の障害情報を格納するメモリ装置として、フラッシュメモリを例示するが、その他の不揮発性メモリを使用することもできる。コントローラ２０のフロントインターフェースには、ＧＢＩＣモジュール１５１が実装されている。通信ネットワーク７１は、例えば、光ファイバネットワークによって構成されたＳＡＮである。ホスト装置７０と通信ネットワーク７１とのインターフェースには、ＨＢＡ（Host Bus Adapter）７２が実装されている。
【００５０】
尚、コントローラ３０内部の回路構成は、コントローラ２０の回路構成と同様であるため、詳細な説明は省略する。３５ａはフロント側コア、３５ｂはバック側コア、３９はＰＣＩ−Ｘバス、１５２はＧＢＩＣモジュール、１６２はフラッシュメモリである。
【００５１】
また、各コントローラ２０，３０内のＣＰＵ２１，３１は、通信線８３を介して接続されており、コントローラ障害発生時には、相互に情報交換できるように構成されている。
【００５２】
ディスクアレイ装置１０には、システムを保守又は管理するための管理端末２００が通信インターフェース１７０を介して接続されており、両者間では、ファイバチャネルプロトコル又はＴＣＰ／ＩＰ等の所定の通信プロトコルに基づいてデータ通信が行われる。両者の通信プロトコルがファイバチャネルプロトコルであるならば、通信インターフェース１７０には、ＧＢＩＣモジュールと、ファイバチャネルプロトコルコントローラを実装すればよい。両者の通信プロトコルがＴＣＰ／ＩＰであるならば、通信インターフェース１７０には、ＬＡＮポートコネクタと、ＴＣＰ／ＩＰを制御するＬＳＩを実装すればよい。オペレータは、管理端末２００を操作することにより、例えば、ディスクドライブＤＲＶ０〜ＤＲＶ１４上に定義される論理ボリュームの設定、ディスクドライブＤＲＶ０〜ＤＲＶ１４の増設又は減設、ＲＡＩＤ構成の設定変更（例えば、ＲＡＩＤレベル５からＲＡＩＤレベル１への変更）等を行うことができる。また、後述するように、コントローラ２０又は３０に障害が発生した場合に、キャッシュメモリ２４，３４に退避された障害情報を取得し、障害原因を解析する機能も有する。
【００５３】
尚、管理端末２００は、ディスクアレイ装置１０に内蔵してもよく、或いは外付けの構成としてもよい。
【００５４】
図５はコントローラ閉塞処理の各処理手順を示している。この処理はコントローラを閉塞すべき障害が発生したコントローラが自身の判断で自身を閉塞する処理である。ここでは、コントローラ３０に障害が発生し、自身の判断でコントローラ３０を閉塞する場合を例にとって説明する。コントローラ３０を閉塞すべき障害が発生すると、ＣＰＵ３１は、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求を禁止し（Ｓ２０１）、ホスト装置７０との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し（Ｓ２０２）、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力を抑止し（Ｓ２０３）、更に、必要最小限の障害情報をフラッシュメモリ１６２に退避させる（Ｓ２０４）。これら一連の処理Ｓ２０１〜Ｓ２０４は、コントローラ３０に障害が発生した時点において、ＣＰＵ３１が実行しているコントローラタスクの延長において実行される場合もあれば、或いはファイバチャネルプロトコルコントローラ３５からの割り込み要求処理の延長において実行される場合もある。
【００５５】
このように、ファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断することで、ホスト装置７０とディスアレイ装置１０との間では、同プロトコルに基づくデータ通信が開始されなくなる。すると、両者間のデータ通信に伴うイベントの発生が抑止され、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求が行われなくなる。但し、いつまで経っても、両者間のネゴシエーションが確立されない場合には、ネゴシエーションが確立しない場合のイベントが発生し、ＣＰＵ３１に割り込み要求されるので、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求を禁止することで、このような割り込み要求をも遮断できる。これにより、ＣＰＵ３１は、コントローラ３０を閉塞するためのダウンタスク処理を実行できる（Ｓ２０５）。ダウンタスク処理には、例えば、障害情報をキャッシュメモリ３４に退避させる処理等が含まれる。このダウンタスクは、通常のコントローラタスクよりも優先順位が高く設定されているが、ファイバチャネルプロトコルコントローラ３５からの割り込み要求処理よりも優先順位は低く設定されている。
【００５６】
尚、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力が抑止されると、コントローラ３０からホスト装置７０への応答が遮断されるので、ホスト装置７０はコントローラ３０に障害が発生されたものと判断し、パス切り替えを行う。
【００５７】
本明細書では、ＣＰＵ３１によるダウンタスク処理（Ｓ２０５）と、ＣＰＵ３１にダウンタスク処理を実行させ易くするための前処理（Ｓ２０１〜Ｓ２０４）を含めて、「閉塞処理」と称する。この前処理は、必ずしも上述の順番で実行しなければならないものではなく、各処理の順番を入れ替えてもよい。また、光信号抑止処理（Ｓ２０３）は、ホスト装置７０にパス切り替えを行わせるためのものであるから、この処理をダウンタスク処理に含めてもよい。
【００５８】
この閉塞処理によれば、ファイバチャネルプロトコルコントローラ２５，３５を初期化することなく、ファイバチャネルプロトコルコントローラ２５，３５からＣＰＵ２１，３１への割り込み要求を遮断できるので、ＣＰＵ２１，３１は障害発生時に自身を閉塞するためのダウンタスク処理を実行することが可能になる。万が一、ダウンタスク処理を実行できなかった場合や、ダウンタスク処理は正常に実行できたものの、その後、キャッシュメモリ２４，３４に障害が生じて、キャッシュメモリ２４，３４から障害情報を取り出すことができなくなった場合でも、フラッシュメモリ１６１，１６２には、必要最小限の障害情報が退避されているので、障害原因を解析することが可能である。
【００５９】
図６はコントローラ間の相互通信によりコントローラ閉塞を行う処理手順を記述したシーケンス図である。ここでは、コントローラ３０にコントローラ３０を閉塞すべき障害が発生し、コントローラ３０が自身の判断で自身を閉塞する場合を想定している。説明の便宜上、コントローラ２０をＣＴＬ♯０と称し、コントローラ３０をＣＴＬ♯１と称する。
【００６０】
ＣＴＬ＃１にＣＴＬ＃１を閉塞すべき障害が発生すると（Ｓ３０１）、ＣＴＬ＃１のモジュールは、その障害に対して、ＣＴＬ＃１を閉塞すると判断する（Ｓ３０２）。ＣＴＬ＃１の閉塞を判断するモジュールとしては、例えば、ＣＴＬ＃１内で生じる全ての障害に対して、どのような回復処理を実行すべきかを判断するモジュールが予め用意されている場合には、そのようなモジュールでもよく、或いは障害要因別に回復処理を実行するモジュールが予め用意されている場合には、そのようなモジュールでもよい。
【００６１】
次いで、ＣＴＬ＃１は、自身が閉塞することをＣＴＬ＃０に通知する（Ｓ３０３）。更に、ＣＴＬ＃１は、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求を禁止し（Ｓ３０４）、ホスト装置７０との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し（Ｓ３０５）、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力を抑止し（Ｓ３０６）、必要最小限の障害情報をフラッシュメモリ１６２に退避させ（Ｓ３０７）、ダウンタスク処理を実行する（Ｓ３０８）。
【００６２】
一方、ＣＴＬ＃０は、ＣＴＬ＃１からコントローラ閉塞の通知を受けると、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力が抑止されるように、ＣＴＬ＃１を制御する（Ｓ３０９）。次いで、ＣＴＬ♯０は、コントローラ間のデータ転送路であるバス８１と、コントローラ間で情報交換を行うための通信線８３のデータ通信を遮断する（Ｓ３１０）。Ｓ３０９とＳ３１０の実行順序は、上述の順番に限られるものではなく、例えば、両者の実行順序を入れ替えてもよく、或いは同時に実行してもよい。
【００６３】
このように、ＣＴＬ＃１が自身の判断で自身を閉塞する場合には、自身を閉塞するための閉塞処理（Ｓ３０４〜Ｓ３０８）とは別に、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力が抑止されるように、ＣＴＬ＃０がＣＴＬ＃１を制御することにより（Ｓ３０９）、仮に、ＣＴＬ＃１による閉塞処理が失敗しても、ホスト装置７０はＣＴＬ＃１の障害発生を検出し、パス切り替えを行うことができる。
【００６４】
尚、ＣＴＬ＃１の閉塞処理（Ｓ３０４〜Ｓ３０８）と、ＣＴＬ＃０の光出力抑止処理（Ｓ３０９）は、それぞれのコントローラが互いの処理の進歩状況をチェックしながら処理タイミングを計っている訳ではないので、それぞれの処理は非同期的に進行する。両コントローラの処理を同期させてもよいが、同期が外れる可能性を考慮して、同期が外れた場合は、ＣＴＬ＃０は、ＣＴＬ＃１による光出力抑止処理（Ｓ３０６）の進歩状況を無視して、光出力抑止処理（Ｓ３０９）を実行するように構成すればよい。
【００６５】
図７はコントローラ間の相互通信によりコントローラ閉塞を行う処理手順を記述したシーケンス図である。ここでは、コントローラ３０にコントローラ３０を閉塞すべき障害が発生して、ＣＰＵ３１又はキャッシュメモリ３４が故障する等の理由により、コントローラ３０がＣＰＵ処理を続行できなくなったことをコントローラ２０が検出した場合を想定している。説明の便宜上、コントローラ２０をＣＴＬ♯０と称し、コントローラ３０をＣＴＬ♯１と称する。
【００６６】
ＣＴＬ＃１に障害が発生した後において（Ｓ４０１）、ＣＴＬ＃０のあるモジュールがＣＴＬ＃１との間で情報のやりとりを行うために、ＣＴＬ＃１にアクセスを行うと（Ｓ４０２）、ＣＴＬ＃１は処理を行うことができないので（Ｓ４０３）、ＣＴＬ＃０のあるモジュールは、ＣＴＬ＃１の障害発生（具体的には、ＣＰＵ処理不能）を検出する（Ｓ４０４）。ＣＴＬ＃１の障害発生を検出するモジュールとは、例えば、ＣＴＬ＃１との間で情報をやりとりしようとしたモジュールでもよく、或いはＣＴＬ＃１との間で情報のやりとりを行う専用のモジュールが予め用意されていて、ＣＴＬ＃１が応答しないことをタイムアウト等で検出できるように構成されている場合には、その専用モジュールでもよい。ＣＴＬ＃１がＣＰＵ処理不能になると、ＣＴＬ＃１による自身の閉塞処理を行うことができないので、ＣＴＬ＃０は、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力が抑止されるように、ＣＴＬ＃１を制御する（Ｓ４０５）。
【００６７】
このように、ＣＴＬ＃１が自身の閉塞処理を行うことができない場合に、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力が抑止されるように、ＣＴＬ＃０がＣＴＬ＃１を制御することで（Ｓ４０５）、ホスト装置７０はＣＴＬ＃１の障害発生を検出し、パス切り替えを行うことができる。
【００６８】
図８はディスクアレイ装置１０が計画停止を行うときの各コントローラ２０，３０内のＣＰＵ２１，３１が実行する処理手順を記述したフローチャートである。計画停止とは、ディスクアレイ装置１０の主電源を計画的に落とすことをいう。ここでは、コントローラ３０内のＣＰＵ３１の処理を例にとって説明する。計画停止が行われると（Ｓ５０１；ＹＥＳ）、ＣＰＵ３１は、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求を禁止し（Ｓ５０２）、ホスト装置７０との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し（Ｓ５０３）、ＧＢＩＣモジュール１５２からホスト装置７０への光信号出力を抑止し（Ｓ５０４）、キャッシュメモリ３４に残っているダーティデータをディスクドライブＤＲＶ０〜ＤＲＶ１４にデステージする（Ｓ５０５）。
【００６９】
デステージ処理（Ｓ５０５）は、ＣＰＵ３１が実行するコントローラタスクの一種であり、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求よりも優先順位が低く設定されている。ディスクアレイ装置１０の計画停止の際に、上述した割り込み禁止処理（Ｓ５０２）と、オフライン処理（Ｓ５０３）を実行することにより、ＣＰＵ３１によるデステージ処理を実行し易くできる。
【００７０】
図９はコントローラ２０，３０に軽度の障害が発生した場合に、ホスト装置７０からのＩ／Ｏ処理をリセットする処理手順を記述したフローチャートである。軽度の障害とは、例えば、コントローラ２０，３０を閉塞する必要はないが、Ｉ／Ｏ処理が正常に実行できない傷害等をいう。ここでは、コントローラ３０内のＣＰＵ３１の処理を例にとって説明する。コントローラ３０に軽度の障害が発生し（Ｓ６０１；ＹＥＳ）、ホスト装置７０からのＩ／Ｏ処理をリセットする必要が生じると、ＣＰＵ３１は、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求を禁止し（Ｓ６０２）、ホスト装置７０との間におけるファイバチャネルプロトコルに基づくデータ通信開始前のネゴシエーションを遮断し（Ｓ６０３）、ホスト装置７０からのＩ／Ｏ処理をリセットする（Ｓ６０４）。
【００７１】
Ｉ／Ｏ処理のリセットとは、例えば、ホスト装置７０から受け取ったコマンド情報等の内部情報をリセットすることをいう。Ｉ／Ｏ処理のリセットは、ＣＰＵ３１が実行するコントローラタスクの一種であり、ファイバチャネルプロトコルコントローラ３５からＣＰＵ３１への割り込み要求よりも優先順位が低く設定されている。コントローラ３０に軽度の障害が発生した際に、上述した割り込み禁止処理（Ｓ６０２）と、オフライン処理（Ｓ６０３）を実行することにより、ＣＰＵ３１によるＩ／Ｏ処理のリセットを実行し易くできる。
【実施例２】
【００７２】
図１０は本実施例に係るディスクアレイ装置１１の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。本実施例では、バックインターフェース接続用ファイバチャネル４２，５２の接続切り替え回路として、上述したＰＢＣ２７，３７に替えて、スイッチ２６，３６を備えている。スイッチ２６には、それぞれ異なるポートＩＤを有するポートを介して、ＦＣ−ＳＡＴＡ変換インターフェース９３と、ＦＣ−ＡＬ６２とが接続されている。同様にして、スイッチ３６には、それぞれ異なるポートＩＤを有するポートを介して、ＦＣ−ＳＡＴＡ変換インターフェース９４と、ＦＣ−ＡＬ６４とが接続されている。スイッチ２６，３６は、そのポートに接続するデバイスをそれぞれ独立したデバイスとして認識し、インテリジェントに切り替え制御する。
【００７３】
ＦＣ−ＳＡＴＡ変換インターフェース９３，９４は、ファイバチャネルプロトコルとＳＡＴＡプロトコルとを変換する回路であり、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４にポイント・ツー・ポイント接続する。偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４として、例えば、安価なシリアルＡＴＡディスクドライブを採用できる。ＦＣ−ＡＬ６２，６４は、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続している。奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３として、例えば、応答速度の速い高性能なファイバチャネル・ディスクドライブを採用できる。
【００７４】
このように、応答速度の異なる複数種類のディスクドライブを混載したディスクアレイ装置１１においては、例えば、あるデータが時間的価値変化を生じた場合に、同一筺体内で、ファイバチャネル・ディスクドライブからシリアルＡＴＡディスクドライブへ、或いはシリアルＡＴＡディスクドライブからファイバチャネル・ディスクドライブへデータを移動させることが可能になる。例えば、頻繁にアクセスされるデータや、高速応答が要求されるデータをファイバチャネル・ディスクドライブに格納する一方で、アクセス間隔の比較的長いデータや、応答速度がそれ程要求されないデータをシリアルＡＴＡディスクドライブへ格納するようにしてもよい。また、応答速度の異なる複数種類のディスクドライブとして、例えば、ＳＣＳＩディスクドライブ、パラレルＡＴＡディスクドライブ、シリアルＡＴＡディスクドライブ、ファイバチャネル・ディスクドライブを混載してもよい。
【００７５】
本実施例によれば、スイッチ２６，３６を利用することにより、バックインターフェース接続用ファイバチャネル４２，５２の接続先をインテリジェントに切り替え制御できるので、各スイッチ２６，３６のそれぞれのポートに性能の異なる複数種類のディスクドライブを接続しておき、データの時間的価値変化等に基づいてデータの格納先を筺体内で変えることができる。
【実施例３】
【００７６】
図１１は本実施例に係るストレージシステム１２の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。ストレージシステム１２は、ホスト装置７０、ディスクアレイ装置１０、及びディスクアレイ装置１３を備えており、これらは通信ネットワーク７１を介して相互に接続されている。ディスクアレイ装置１０は、実施例１において上述した構成を備えている。
【００７７】
ディスクアレイ装置１３は、二重化されたコントローラ２０，３０を備えたデュアルコントローラ構成を採用している。ディスクアレイ装置１３のコントローラ２０は、フロントインターフェース接続用のファイバチャネルプロトコルコントローラ１３１と、バックインターフェース接続用のファイバチャネルプロトコルコントローラ１３２を備えている。ファイバチャネルプロトコルコントローラ１３１は、２パスのフロントインターフェース接続用ファイバチャネル４３，４４を介してホスト装置７０にインターフェース接続し、ファイバチャネルプロトコルによるブロックアクセス要求を受信する機能を有する。ファイバチャネルプロトコルコントローラ１３２は、２パスのバックインターフェース接続用ファイバチャネル４５，４６を介してディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続し、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を送信する機能を有する。バックインターフェース接続用ファイバチャネル４５，４６はそれぞれＦＣ−ＡＬ６１，６２を通じて、ディスクドライブＤＲＶ０〜ＤＲＶ１４にループ接続している。
【００７８】
コントローラ３０も同様に、２パスのフロントインターフェース接続用ファイバチャネル５３，５４を介してホスト装置７０にインターフェース接続するファイバチャネルプロトコルコントローラ１４１と、２パスのバックインターフェース接続用ファイバチャネル５５，５６を介してディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続し、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を送信するファイバチャネルプロトコルコントローラ１４２とを備えている。
【００７９】
尚、説明の便宜上、ディスクアレイ装置１０，１３の装置内部を構成するＣＰＵ２１，３１、ローカルメモリ２２，３２、キャッシュメモリ２４，３４、エンクロージャーコントローラ２８，３８等の図示は省略している。
【００８０】
ディスクアレイ装置１０では、何れかのコントローラ２０又は３０に障害が生じると、障害が生じていない他方のコントローラ２０又は３０からディスクドライブＤＲＶ０〜ＤＲＶ１４にアクセスする必要がある。ここで、何れのコントローラ２０，３０についても、バックインターフェース接続用ファイバチャネル４２，５２は１パスのみの構成であるので、各ディスクドライブＤＲＶ０〜ＤＲＶ１４にアクセスするには、ＰＢＣ２７，３７をその都度切り替える必要があり、アクセス速度が低下する。
【００８１】
これに対し、ディスクアレイ装置１３の各コントローラ２０，３０には、それぞれ２パスのバックインターフェース接続用ファイバチャネル４５，４６、又はバックインターフェース接続用ファイバチャネル５５，５６が実装されているため、何れかのコントローラ２０又は３０に障害が生じると、障害が生じていない他方のコントローラ２０又は３０から２パスのバックインターフェース接続用ファイバチャネル４５，４６、又はバックインターフェース接続用ファイバチャネル５５，５６を通じてディスクドライブＤＲＶ０〜ＤＲＶ１４にアクセスできるので、アクセス速度が低下することはない。
【００８２】
従って、ディスクアレイ装置１０，１３に障害が生じた場合を想定すると、ホスト装置７０から高速なアクセス速度が要求される場合又はアクセス頻度の高いデータに対するアクセスの場合には、主として、ディスクアレイ装置１３へアクセスするように構成し、低速なアクセス速度で足りる場合又はアクセス頻度の低いデータに対するアクセスの場合には、主として、ディスクアレイ装置１０へアクセスするように構成するのが好ましい。データの格納先をどのように決定付けるかは、例えば、ホスト装置７０で動作しているアプリケーションプログラムの種類や、データの最終更新日時などのパラメータによって決定してもよい。
【００８３】
本実施例によれば、データのアクセス速度、アクセス頻度、アプリケーションプログラムの種類、最終更新日時等のパラメータに基づいて、データの格納先となるディスクアレイ装置１０，１３を変更するので、ディスクアレイ装置１０，１３を適切に使い分けることができる。
【実施例４】
【００８４】
図１２は本実施例に係るディスクアレイ装置１４の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。各コントローラ２０，３０が実装するファイバチャネルプロトコルコントローラ２５，３５には、フロントインターフェース接続用ファイバチャネル４１，５１と、バックインターフェース接続用ファイバチャネル４２，５２とがそれぞれ１パスずつ接続されている。各コントローラ２０，３０には、各ディスクドライブＤＲＶ０〜ＤＲＶ１４にループ接続する単一のＦＣ−ＡＬ６１，６３が実装されている。バックインターフェース接続用ファイバチャネル４２，５２は、それぞれＦＣ−ＡＬ６１，６３に接続している。
【００８５】
各コントローラ２０，３０はそれぞれＦＣ−ＡＬ６１，６３を介して全てのディスクドライブＤＲＶ０〜ＤＲＶ１４へのライトアクセス又はリードアクセスを行うことができる。どのコントローラ２０，３０がどのディスクドライブＤＲＶ０〜ＤＲＶ１４へライトアクセス又はリードアクセスするかは、静的に、或いは動的に設定可能である。例えば、各コントローラ２０，３０がライトアクセス又はリードアクセスするディスクドライブＤＲＶ０〜ＤＲＶ１４を予め固定的に設定しておき、当該ディスクドライブＤＲＶ０〜ＤＲＶ１４へのライトアクセス又はリードアクセスは、担当コントローラ２０又は３０が実行するように構成してもよく、或いは各コントローラ２０，３０の処理負荷やアクセス頻度等に応じて動的に担当コントローラ２０，３０を決めてもよい。各コントローラ２０，３０とディスクドライブＤＲＶ０〜ＤＲＶ１４との接続は、ＦＣ−ＡＬ６１，６３上に実装されたＰＢＣ８２によって制御される。
【００８６】
ＦＣ−ＡＬ６１，６３に接続する各ディスクドライブＤＲＶ０〜ＤＲＶ１４の一方のポートに障害が生じると、当該ポートに接続するＦＣ−ＡＬ６１，６３にはループ障害が生じる。例えば、ＦＣ−ＡＬ６１に接続する側のディスクドライブＤＲＶ２の一方のポートに障害生じると、ＦＣ−ＡＬ６１にはパケットが流れなくなる。このような障害に対しては、コントローラ３０がＦＣ−ＡＬ６３からＳＥＳドライブ経由でエンクロージャーコントローラ２８，３８にＳＥＳコマンドを送信し、ＰＢＣ８２を制御して、被疑ディスクドライブとＦＣ−ＡＬ６１との接続を解除することで、ループ障害を解消できる。
【００８７】
更に、各ＦＣ−ＡＬ６１，６３に生じるループ障害は、これらＦＣ−ＡＬ６１，６３自体の破損又は経年劣化等によるインタミテント障害によるものや、これらＦＣ−ＡＬ６１，６３に実装されているデバイス（例えば、ＰＢＣ８２）の不具合等によるインタミテント障害によっても生じ得る。このような原因によるループ障害に対しては、障害が生じていないＦＣ−ＡＬ６１又は６３から各ディスクドライブＤＲＶ０〜ＤＲＶ１４へライトアクセス又はリードアクセスすればよい。
【００８８】
本実施例によれば、装置構成を簡略化できるので、ディスクアレイ装置１１の低コスト化を実現できる。
【実施例５】
【００８９】
図１３は本実施例に係るディスクアレイ装置１５の構成を示している。図１に示した符号と同一符号の装置等は同一の装置等を示すものとして、その詳細な説明は省略する。各コントローラ２０，３０が実装するファイバチャネルプロトコルコントローラ２５，３５は、フロントインターフェース接続用ファイバチャネル４１，５１を介してホスト装置７０に接続する一方、バックインターフェース接続用ファイバチャネル４２，５２及びＦＣ−ＳＡＴＡ変換インターフェース９１，９２を介して各ディスクドライブＤＲＶ０〜ＤＲＶ１４に接続している。
【００９０】
本実施例によれば、各コントローラ２０，３０につきファイバチャネルプロトコルコントローラ２５，３５を一つにしつつ、しかもディスクドライブＤＲＶ０〜ＤＲＶ１４として、安価なシリアルＡＴＡディスクドライブを採用できるので、製品の低コスト化を実現できる。
【図面の簡単な説明】
【００９１】
【図１】実施例１のディスクアレイ装置の構成図である。
【図２】論理ボリュームの説明図である。
【図３】実施例１の障害回復処理である。
【図４】実施例１のディスクアレイ装置の構成図である。
【図５】実施例１のコントローラ閉塞処理である。
【図６】実施例１のコントローラ閉塞シーケンスである。
【図７】実施例１のコントローラ閉塞シーケンスである。
【図８】実施例１の計画停止処理である。
【図９】実施例１のＩ／Ｏリセット処理である。
【図１０】実施例２のディスクアレイ装置の構成図である。
【図１１】実施例３のディスクアレイシステムの構成図である。
【図１２】実施例４のディスクアレイ装置の構成図である。
【図１３】実施例５のディスクアレイ装置の構成図である。
【符号の説明】
【００９２】
１０，１１，１３…ディスクアレイ装置  １２…ストレージシステム  ２０，３０…コントローラ  ２１，３１…ＣＰＵ  ２２，３２…ローカルメモリ  ２３，３３…データコントローラ  ２４，３４…キャッシュメモリ  ２５，３５…ファイバチャネルプロトコルコントローラ  ２７，３７…ＰＢＣ  ２８，３８…エンクロージャーコントローラ  ６１〜６４…ＦＣ−ＡＬ  ７０…ホスト装置  ７１…通信ネットワーク  ８１…バス  ８２…ＰＢＣ  ９１，９２…ＦＣ−ＳＡＴＡ変換インターフェース  ＤＲＶ０〜ＤＲＶ１４…ディスクドライブ
【図１】
2006293863.tif 000003
【図２】
2006293863.tif 000004
【図３】
2006293863.tif 000005
【図４】
2006293863.tif 000006
【図５】
2006293863.tif 000007
【図６】
2006293863.tif 000008
【図７】
2006293863.tif 000009
【図８】
2006293863.tif 000010
【図９】
2006293863.tif 000011
【図１０】
2006293863.tif 000012
【図１１】
2006293863.tif 000013
【図１２】
2006293863.tif 000014
【図１３】
2006293863.tif 000015