(57)【要約】【課題】  イニシエータとターゲットとの間のネゴシエーション処理で決定されるエラーリカバリレベルの値を、管理者の意図する適切な値に設定することのできる技術を提供する。【解決手段】  ストレージシステムは、イニシエータ装置と接続されるターゲット部を含むストレージ部と、ストレージ部を管理する管理部と、を備える。ターゲット部は、イニシエータ装置とネゴシエーション処理を実行して、第１のエラーリカバリレベルの値を決定する。第１のエラーリカバリレベルは、イニシエータ装置の第２のエラーリカバリレベルの値と、ターゲット部の第３のエラーリカバリレベルの値と、のうちの小さな値に決定される。管理部は、管理者からの指示に従って、ターゲット部に対して、ターゲット部に接続すべきイニシエータ装置を割り当てるための設定処理を実行する。設定処理では、管理者に第３のエラーリカバリレベルの値が通知される。【選択図】  図５
2006119970.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムであって、
ｉＳＣＳＩターゲットとして機能するターゲット部であって、ｉＳＣＳＩイニシエータとして機能するイニシエータ装置と第１のネットワークを介して接続される前記ターゲット部と、前記ターゲット部によってアクセスされる論理ユニットと、を含むストレージ部と、
前記ストレージ部を管理するための管理部と、
を備え、
前記ターゲット部は、
前記イニシエータ装置とネゴシエーション処理を実行して、前記イニシエータ装置と前記ターゲット部との間の通信の障害を回復するためのエラーリカバリ処理の内容を特定する第１のエラーリカバリレベルの値を決定する制御部であって、前記第１のエラーリカバリレベルは、前記イニシエータ装置に対して設定された第２のエラーリカバリレベルの値と、前記ターゲット部に対して設定された第３のエラーリカバリレベルの値と、のうちの小さな値に決定される、前記制御部を備え、
前記管理部は、
前記ストレージシステムの管理者からの指示に従って、前記ターゲット部に対して、前記ターゲット部に接続すべき前記イニシエータ装置を割り当てるための設定処理を実行する設定部を備え、
前記設定部は、
前記設定処理において、前記管理者に前記第３のエラーリカバリレベルの値を通知するための通知部を備えることを特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記設定部は、前記設定処理において、前記管理者による前記第３のエラーリカバリレベルの値の変更を許容する、ストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記設定部は、さらに、
第２のネットワークを介して、前記イニシエータ装置から前記第２のエラーリカバリレベルの値を取得するための取得部を備え、
前記通知部は、
前記設定処理において、取得済みの前記第２のエラーリカバリレベルの値を前記管理者に通知する、ストレージシステム。
【請求項４】
請求項３記載のストレージシステムであって、
前記取得部は、
前記第２のネットワークを介して、前記イニシエータ装置から前記イニシエータ装置の機能に関連する機能関連情報を取得し、
前記通知部は、
前記設定処理において、前記機能関連情報を前記管理者に通知する、ストレージシステム。
【請求項５】
請求項４記載のストレージシステムであって、
前記機能関連情報は、前記イニシエータ装置の通信の障害の検出性能に関連する情報を含む、ストレージシステム。
【請求項６】
請求項４または５記載のストレージシステムであって、
前記機能関連情報は、前記イニシエータ装置と前記ターゲット部との間の論理的な通信路を切り替えるための切替プログラムの有無に関連する情報を含む、ストレージシステム。
【請求項７】
請求項４記載のストレージシステムであって、
前記通知部は、
前記設定処理において、前記機能関連情報に応じて、前記管理者による前記第３のエラーリカバリレベルの値の変更を支援するための支援情報を前記管理者に通知する、ストレージシステム。
【請求項８】
請求項７記載のストレージシステムであって、
前記機能関連情報は、前記イニシエータ装置の通信の障害の検出性能に関連する第１の情報を含み、
前記通知部は、
前記第１の情報が前記イニシエータ装置の前記検出性能が比較的低いことを示す場合には、前記管理者に、前記第３のエラーリカバリレベルの値を、前記第２のエラーリカバリレベルの値よりも小さな値に設定するように促す前記支援情報を通知する、ストレージシステム。
【請求項９】
請求項７または８記載のストレージシステムであって、
前記機能関連情報は、前記イニシエータ装置と前記ターゲット部との間の論理的な通信路を切り替えるための切替プログラムの有無に関連する第２の情報を含み、
前記通知部は、
前記第２の情報が前記切替プログラムが存在することを示す場合には、前記管理者に、前記第３のエラーリカバリレベルの値を、０または１に設定するように促す前記支援情報を通知する、ストレージシステム。
【請求項１０】
請求項３ないし９のいずれかに記載のストレージシステムであって、
前記設定部は、
前記設定処理において、前記管理者による前記第１のエラーリカバリレベルの値の変更を許容し、
前記設定部は、さらに、
変更済みの前記第１のエラーリカバリレベルの値を、前記第２のネットワークを介して前記イニシエータ装置に供給するための供給部を備える、ストレージシステム。
【請求項１１】
ネットワークシステムであって、
前記イニシエータ装置と、
請求項１ないし１０のいずれかに記載のストレージシステムと、
を備える、ネットワークシステム。
【請求項１２】
ストレージ装置を管理するための管理方法であって、前記ストレージ装置は、ｉＳＣＳＩイニシエータとして機能するイニシエータ装置と第１のネットワークを介して接続されるｉＳＣＳＩターゲットとして機能するターゲット部と、前記ターゲット部によってアクセスされる論理ユニットと、を備え、前記ターゲット部は、前記イニシエータ装置とネゴシエーション処理を実行して、前記イニシエータ装置と前記ターゲット部との間の通信の障害を回復するためのエラーリカバリ処理の内容を特定する第１のエラーリカバリレベルの値を決定する制御部であって、前記第１のエラーリカバリレベルは、前記イニシエータ装置に対して設定された第２のエラーリカバリレベルの値と、前記ターゲット部に対して設定された第３のエラーリカバリレベルの値と、のうちの小さな値に決定される、前記制御部を備える、前記管理方法は、
管理者からの指示に従って、前記ターゲット部に対して、前記ターゲット部に接続すべき前記イニシエータ装置を割り当てるための設定処理を実行する設定工程を備え、
前記設定工程は、
前記設定処理において、前記管理者に前記第３のエラーリカバリレベルの値を通知する工程を含むことを特徴とする管理方法。
【請求項１３】
管理装置に、ストレージ装置を管理させるためのコンピュータプログラムであって、前記ストレージ装置は、ｉＳＣＳＩイニシエータとして機能するイニシエータ装置と第１のネットワークを介して接続されるｉＳＣＳＩターゲットとして機能するターゲット部と、前記ターゲット部によってアクセスされる論理ユニットと、を備え、前記ターゲット部は、前記イニシエータ装置とネゴシエーション処理を実行して、前記イニシエータ装置と前記ターゲット部との間の通信の障害を回復するためのエラーリカバリ処理の内容を特定する第１のエラーリカバリレベルの値を決定する制御部であって、前記第１のエラーリカバリレベルは、前記イニシエータ装置に対して設定された第２のエラーリカバリレベルの値と、前記ターゲット部に対して設定された第３のエラーリカバリレベルの値と、のうちの小さな値に決定される、前記制御部を備える、前記コンピュータプログラムは、
管理者からの指示に従って、前記ターゲット部に対して、前記ターゲット部に接続すべき前記イニシエータ装置を割り当てるための設定処理を実行する設定機能を前記管理装置に実現させ、
前記設定機能は、
前記設定処理において、前記管理者に前記第３のエラーリカバリレベルの値を通知する機能を含むことを特徴とするコンピュータプログラム。
【請求項１４】
請求項１３記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムの技術に関する。
【背景技術】
【０００２】
近年、ｉＳＣＳＩプロトコルに従ったストレージエリアネットワーク（ＳＡＮ）が開発されている。なお、ｉＳＣＳＩは、ＩＰネットワークを介して、ＳＣＳＩコマンド／データを伝送するための規格である。イニシエータとターゲットとの間のｉＳＣＳＩ通信で生じる障害は、イニシエータとターゲットとの間でエラーリカバリ処理を実行することによって回復される。
【０００３】
エラーリカバリ処理の内容を特定するエラーリカバリレベルの値は、イニシエータとターゲットとの間のネゴシエーション処理で決定される。ネゴシエーション処理において、エラーリカバリレベルは、イニシエータに対して設定されたエラーリカバリレベルの値と、ターゲットに対して設定されたエラーリカバリレベルの値と、のうちの小さな値に決定される。
【０００４】
【特許文献１】特開２００４−１９２３０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来では、ターゲットと該ターゲットに接続すべきイニシエータとの対応関係は、ネットワークの管理者によって事前に設定されている。しかしながら、従来では、管理者がターゲットとイニシエータとの対応関係を設定する際に、ターゲットやイニシエータのエラーリカバリレベルは考慮されていなかった。このため、ネゴシエーション処理で決定されるエラーリカバリレベルの値を、管理者の意図する適切な値に設定することが困難であった。
【０００６】
この発明は、従来技術における上述の課題を解決するためになされたものであり、イニシエータとターゲットとの間のネゴシエーション処理で決定されるエラーリカバリレベルの値を、管理者の意図する適切な値に設定することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題の少なくとも一部を解決するため、本発明の装置は、ストレージシステムであって、
ｉＳＣＳＩターゲットとして機能するターゲット部であって、ｉＳＣＳＩイニシエータとして機能するイニシエータ装置と第１のネットワークを介して接続される前記ターゲット部と、前記ターゲット部によってアクセスされる論理ユニットと、を含むストレージ部と、
前記ストレージ部を管理するための管理部と、
を備え、
前記ターゲット部は、
前記イニシエータ装置とネゴシエーション処理を実行して、前記イニシエータ装置と前記ターゲット部との間の通信の障害を回復するためのエラーリカバリ処理の内容を特定する第１のエラーリカバリレベルの値を決定する制御部であって、前記第１のエラーリカバリレベルは、前記イニシエータ装置に対して設定された第２のエラーリカバリレベルの値と、前記ターゲット部に対して設定された第３のエラーリカバリレベルの値と、のうちの小さな値に決定される、前記制御部を備え、
前記管理部は、
前記ストレージシステムの管理者からの指示に従って、前記ターゲット部に対して、前記ターゲット部に接続すべき前記イニシエータ装置を割り当てるための設定処理を実行する設定部を備え、
前記設定部は、
前記設定処理において、前記管理者に前記第３のエラーリカバリレベルの値を通知するための通知部を備えることを特徴とする。
【０００８】
この装置では、管理者にターゲット部に対して設定された第３のエラーリカバリレベルの値が通知されるため、例えば、管理者がイニシエータ装置に対して設定された第２のエラーリカバリレベルの値を事前に調査しておけば、管理者は、第３のエラーリカバリレベルの値を考慮しながら、ターゲット部に対して、適切な第２のエラーリカバリレベルの値を有するイニシエータ装置を割り当てることができる。これにより、イニシエータ装置とターゲット部との間のネゴシエーション処理で決定される第１のエラーリカバリレベルの値を、管理者の意図する適切な値に設定することが可能となる。
【０００９】
上記の装置において、
前記設定部は、前記設定処理において、前記管理者による前記第３のエラーリカバリレベルの値の変更を許容することが好ましい。
【００１０】
こうすれば、管理者は、ターゲット部の第３のエラーリカバリレベルの値を、管理者の意図する値に変更することができるため、ネゴシエーション処理で決定される第１のエラーリカバリレベルの値を、管理者の意図する適切な値に容易に設定することが可能となる。
【００１１】
上記の装置において、
前記設定部は、さらに、
第２のネットワークを介して、前記イニシエータ装置から前記第２のエラーリカバリレベルの値を取得するための取得部を備え、
前記通知部は、
前記設定処理において、取得済みの前記第２のエラーリカバリレベルの値を前記管理者に通知することが好ましい。
【００１２】
こうすれば、管理者は、イニシエータ装置に対して設定された第２のエラーリカバリレベルの値を容易に把握することができる。
【００１３】
上記の装置において、
前記取得部は、
前記第２のネットワークを介して、前記イニシエータ装置から前記イニシエータ装置の機能に関連する機能関連情報を取得し、
前記通知部は、
前記設定処理において、前記機能関連情報を前記管理者に通知することが好ましい。
【００１４】
こうすれば、管理者は、イニシエータ装置の機能を容易に把握することができるため、ターゲット部の第３のエラーリカバリレベルの値を、イニシエータ装置の機能に応じた適切な値に変更することができる。
【００１５】
前記機能関連情報は、前記イニシエータ装置の通信の障害の検出性能に関連する情報を含んでいてもよい。また、前記機能関連情報は、前記イニシエータ装置と前記ターゲット部との間の論理的な通信路を切り替えるための切替プログラムの有無に関連する情報を含んでいてもよい。
【００１６】
上記の装置において、
前記通知部は、
前記設定処理において、前記機能関連情報に応じて、前記管理者による前記第３のエラーリカバリレベルの値の変更を支援するための支援情報を前記管理者に通知することが好ましい。
【００１７】
こうすれば、管理者は、支援情報を考慮して、ターゲット部の第３のエラーリカバリレベルの値を容易に変更することができる。
【００１８】
上記の装置において、
前記機能関連情報は、前記イニシエータ装置の通信の障害の検出性能に関連する第１の情報を含み、
前記通知部は、
前記第１の情報が前記イニシエータ装置の前記検出性能が比較的低いことを示す場合には、前記管理者に、前記第３のエラーリカバリレベルの値を、前記第２のエラーリカバリレベルの値よりも小さな値に設定するように促す前記支援情報を通知するようにしてもよい。
【００１９】
また、上記の装置において、
前記機能関連情報は、前記イニシエータ装置と前記ターゲット部との間の論理的な通信路を切り替えるための切替プログラムの有無に関連する第２の情報を含み、
前記通知部は、
前記第２の情報が前記切替プログラムが存在することを示す場合には、前記管理者に、前記第３のエラーリカバリレベルの値を、０または１に設定するように促す前記支援情報を通知するようにしてもよい。
【００２０】
上記の装置において、
前記設定部は、
前記設定処理において、前記管理者による前記第１のエラーリカバリレベルの値の変更を許容し、
前記設定部は、さらに、
変更済みの前記第１のエラーリカバリレベルの値を、前記第２のネットワークを介して前記イニシエータ装置に供給するための供給部を備えるようにしてもよい。
【００２１】
こうすれば、管理者は、イニシエータ装置の第２のエラーリカバリレベルの値を、管理者の意図する値に変更することができるため、ネゴシエーション処理で決定される第１のエラーリカバリレベルの値を、管理者の意図する適切な値に容易に設定することができる。
【００２２】
この発明は、種々の形態で実現することが可能であり、例えば、ストレージシステム、ストレージシステムを備えるネットワークシステム、ストレージシステムの管理装置および方法、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２３】
次に、本発明の実施の形態を実施例に基づき以下の順序で説明する。
Ａ．第１実施例：
Ａ−１．ネットワークシステムの構成：
Ａ−２．エラーリカバリレベルの概要：
Ａ−３．ネットワークシステムの具体的な構成：
Ａ−４．ターゲットとイニシエータとの対応関係の設定：
Ａ−５．ターゲットのエラーリカバリレベルの設定例：
Ａ−６．チャネルアダプタに対するエラーリカバリレベルの設定：
Ａ−７．ネゴシエーション処理によるエラーリカバリレベルの決定：
Ａ−８．第１実施例の変形例：
Ｂ．第２実施例：
Ｂ−１．第２実施例の変形例：
【００２４】
Ａ．第１実施例：
Ａ−１．ネットワークシステムの構成：
図１は、ネットワークシステムの概略構成を示す説明図である。ネットワークシステムは、２つのネットワークＮＷ１，ＮＷ２を含んでいる。第１のネットワークＮＷ１は、ＩＰベースのストレージエリアネットワーク（ＩＰ−ＳＡＮ）である。第２のネットワークＮＷ２は、管理用ローカルエリアネットワーク（管理ＬＡＮ）である。第１のネットワークＮＷ１には、３つのサーバ１００Ａ〜１００Ｃとストレージ装置２００とが接続されている。第２のネットワークＮＷ２には、３つのサーバ１００Ａ〜１００Ｃとストレージ装置２００と管理装置３００とが接続されている。
【００２５】
各サーバ１００Ａ〜１００Ｃは、ｉＳＣＳＩイニシエータ（以下、単に「イニシエータ」とも呼ぶ）１０１ａ〜１０１ｃとして機能する。各イニシエータ１０１ａ〜１０１ｃには、１以上のポータルが対応付けられている。図１では、第１および第２のイニシエータ１０１ａ，１０１ｂには、それぞれ１つのポータルが対応付けられており、第３のイニシエータ１０１ｃには、２つのポータルが対応付けられている。ポータルは、ＴＣＰを用いたデータ転送を行うポートであり、ＩＰアドレスによって識別される。
【００２６】
ストレージ装置２００は、複数のｉＳＣＳＩターゲット（以下、単に「ターゲット」とも呼ぶ）として機能する。図１では、３つのターゲット２０１ａ〜２０１ｃが図示されている。各ターゲット２０１ａ〜２０１ｃには、１以上のポータルを含むポータルグループが対応付けられている。ポータルグループは、ｉＳＣＳＩターゲットとポータルとの論理的な結合を示す識別子である。図１では、第１および第２のターゲット２０１ａ，２０１ｂに対応するポータルグループは、それぞれ１つのポータルを含み、第３のターゲット２０１ｃに対応するポータルグループは、２つのポータルを含む。ターゲット側のポータルは、ＩＰアドレスとＴＣＰポート番号によって識別される。
【００２７】
図１では、第１のイニシエータ１０１ａと第１のターゲット２０１ａとが、ｉＳＣＳＩセッションと呼ばれる論理的な通信路を介して接続されている。同様に、第２のイニシエータ１０１ｂと第２のターゲット２０１ｂとが接続されており、第３のイニシエータ１０１ｃと第３のターゲット２０１ｃとが接続されている。ｉＳＣＳＩセッションは、１以上のＴＣＰコネクションで構成される。図１では、第１のイニシエータ１０１ａと第１のターゲット２０１ａとの間のセッションと、第２のイニシエータ１０１ｂと第２のターゲット２０１ｂとの間のセッションとは、それぞれ、１つのＴＣＰコネクションで構成されている。第３のイニシエータ１０１ｃと第３のターゲット２０１ｃとの間のセッションは、２つのＴＣＰコネクションで構成されている。
【００２８】
管理装置３００は、サーバ１００Ａ〜１００Ｃとストレージ装置２００との接続を管理する機能を有している。
【００２９】
Ａ−２．エラーリカバリレベルの概要：
イニシエータとターゲットとの間では、ｉＳＣＳＩプロトコルに従った通信が行われる。イニシエータとターゲットとの間では、ｉＳＣＳＩ通信の障害を回復するためのエラーリカバリ処理が実行される。このエラーリカバリ処理の内容は、エラーリカバリレベルによって特定される。エラーリカバリレベルは、イニシエータがターゲットに接続する際にイニシエータとターゲットとの間で実行されるネゴシエーション処理で決定される。ｉＳＣＳＩでは、３つのエラーリカバリレベルが準備されている。
【００３０】
ａ）エラーリカバリレベル２
エラーリカバリレベルが「２」の場合には、コネクションリカバリが実行され得る。コネクションリカバリでは、コネクションの再確立や、ライトコマンドまたはリードコマンドの再スタートが実行される。
【００３１】
ｂ）エラーリカバリレベル１
エラーリカバリレベルが「１」の場合には、コネクション内リカバリとコマンド内リカバリとが実行され得る。コネクション内リカバリでは、コネクションの再確立は実行されず、例えばロスしたコマンドの再送が実行される。コマンド内リカバリでは、コネクションの再確立は実行されず、例えばＣＲＣ（Cyclic Redundancy Check ）エラーが発見されたコマンドの再送が実行される。
【００３２】
ｃ）エラーリカバリレベル０
エラーリカバリレベルが「０」の場合には、セッションリカバリが実行される。セッションリカバリでは、すべてのコネクションがクローズされ、新たなコネクションを再確立してセッションが再開される。
【００３３】
なお、各エラーリカバリレベルに従ったエラーリカバリ処理については、ＩＥＴＦ（Internet Engineering Task Force ）によって管理されるＲＦＣ（Request for Comments）３７２０に詳述されている。
【００３４】
ネゴシエーション処理において、エラーリカバリレベルは、イニシエータに対して設定されたエラーリカバリレベルの値とターゲットに対して設定されたエラーリカバリレベルの値とのうちの低い値に決定される。そして、このネゴシエーション処理によって決定されたエラーリカバリレベルの値に従って、イニシエータとターゲットとの間のエラーリカバリ処理が実行される。
【００３５】
なお、ネゴシエーション処理によって決定されたエラーリカバリレベルが「２」である場合には、エラーリカバリレベル「２」に対応するコネクションリカバリと、下位のエラーリカバリレベル「１」，「０」に対応する他のリカバリ（コネクション内リカバリ，コマンド内リカバリ，セッションリカバリ）と、が実行され得る。同様に、ネゴシエーション処理によって決定されたエラーリカバリレベルが「１」である場合には、エラーリカバリレベル「１」に対応するコネクション内リカバリおよびコマンド内リカバリと、下位のエラーリカバリレベル「０」に対応するセッションリカバリと、が実行され得る。また、ネゴシエーション処理によって決定されたエラーリカバリレベルが「０」である場合には、エラーリカバリレベル「０」に対応するセッションリカバリのみが実行され得る。
【００３６】
上記のように、ネゴシエーション処理によって決定されたエラーリカバリレベルが「２」，「１」である場合には、種々のエラーリカバリ処理を実行可能であるが、エラーリカバリレベル「０」に対応するセッションリカバリは、上位のエラーリカバリレベルに対応するリカバリを実行しても通信障害が回復されない場合に実行される。
【００３７】
前述したように、従来では、管理者がターゲットとイニシエータとの対応関係を設定する際に、ターゲットやイニシエータのエラーリカバリレベルは考慮されていなかった。このため、イニシエータとターゲットとの間のネゴシエーション処理で決定されるエラーリカバリレベルの値を、管理者の意図する適切な値に設定することが困難であった。例えば、管理者によって選択されたイニシエータがエラーリカバリレベル「２」を有し、管理者によって選択されたターゲットがエラーリカバリレベル「２」を有する場合には、仮に、管理者の意図するエラーリカバリレベルが「１」であったとしても、ネゴシエーション処理においてエラーリカバリレベルは「２」に決定されてしまう。
【００３８】
そこで、本実施例では、上記の問題が解消されるように工夫している。具体的には、本実施例では、対応関係を設定する際に、管理者は、ターゲットのエラーリカバリレベルの値を確認することができると共に、ターゲットのエラーリカバリレベルの値を変更することが可能となっている。
【００３９】
以下の説明では、イニシエータのエラーリカバリレベルを、単に「イニシエータレベル」とも呼び、ターゲットのエラーリカバリレベルを、単に「ターゲットレベル」とも呼ぶ。また、イニシエータまたはターゲットに対して予め設定されたエラーリカバリレベルの値を「初期値」と呼び、ネゴシエーション処理の際に使用されるイニシエータまたはターゲットに対して設定された値を「設定値」とも呼ぶ。そして、ネゴシエーション処理によって決定されたエラーリカバリレベルの値を「決定値」とも呼ぶ。
【００４０】
なお、本実施例では、イニシエータレベルは変更されないため、イニシエータレベルの設定値は、初期値と同じ値である。一方、ターゲットレベルは変更可能であるため、ターゲットレベルの設定値は、初期値と異なり得る。
【００４１】
Ａ−３．ネットワークシステムの具体的な構成：
図２は、図１に示すストレージ装置２００の具体的な構成を示す説明図である。図示するように、ストレージ装置２００は、ディスク制御部２１０と、ディスク駆動部２６０と、ストレージ管理部２８０と、を備えている。ディスク制御部２１０は、複数のチャネルアダプタ２２０と、スイッチ２３０と、複数のディスクアダプタ２４０と、を備えている。
【００４２】
ディスク駆動部２６０は、複数のハードディスクを備えており、複数の論理ユニット（記憶領域）ＬＵに区分されている。各論理ユニットＬＵは、１以上のハードディスクで構成された記憶領域であってもよいし、１つのハードディスクの一部で構成された記憶領域であってもよい。また、各論理ユニットのサイズ（容量）は、同じであってもよいし、異なっていてもよい。複数の論理ユニットは、複数のグループ（論理ユニットグループ）に区分されており、各論理ユニットグループには、１以上の論理ユニットが含まれている。
【００４３】
ディスクアダプタ２４０は、１つの論理ユニットグループに対応して設けられている。ディスクアダプタは、任意のチャネルアダプタ２２０から与えられる指示に従って、対応する論理ユニットグループ内に含まれる論理ユニットＬＵに対するデータの書き込み処理や読み出し処理を実行する。
【００４４】
スイッチ２３０は、任意のチャネルアダプタ２２０と任意のディスクアダプタ２４０との間でデータを伝送する機能を有している。なお、本実施例では、スイッチは、伝送されるデータを一時的に格納するためのキャッシュメモリを備えている。
【００４５】
チャネルアダプタ２２０は、ターゲットとして機能する。チャネルアダプタ２２０は、ＣＰＵ２２１とメモリ２２２とｉＳＣＳＩチップ２２８と転送部２２９とを備えている。メモリ２２２には、通信プログラムと設定プログラムとが格納されている。また、メモリ２２２には、ＬＵＮ管理データと、ｉＳＣＳＩ設定データと、ネゴシエーション処理によって決定されたエラーリカバリレベル（ＥＲＬ）の決定値とが格納されている。なお、ｉＳＣＳＩ設定データには、ターゲットのエラーリカバリレベル（ＴＥＲＬ）の設定値が含まれている。通信プログラムは、ストレージ管理部２８０からＬＵＮ管理データとｉＳＣＳＩ設定データとを受け取ってメモリ２２２に格納する機能を有する。設定プログラムは、ＬＵＮ管理データとｉＳＣＳＩ設定データとに従ってチャネルアダプタが動作するように種々の設定を行う機能を有する。ｉＳＣＳＩチップ２２８は、サーバ（イニシエータ）と通信するためのインタフェースである。なお、ｉＳＣＳＩチップは、ＴＣＰ／ＩＰレイヤの処理とｉＳＣＳＩレイヤの処理とを実行する。転送部２２９は、チャネルアダプタがストレージ装置内部の各部と通信するためのインタフェースである。
【００４６】
チャネルアダプタ２２０の機能は、ＣＰＵ２２１が種々のプログラムを実行することによって実現される。なお、図２では、ＣＰＵ２２１の内部にｉＳＣＳＩ階層モデルが示されている。チャネルアダプタでは、ＳＣＳＩレイヤの処理とｉＳＣＳＩレイヤの処理とは、ドライバ（ソフトウェア）を利用して実行される。この説明からも分かるように、本実施例では、ｉＳＣＳＩレイヤの処理は、ソフトウェア（ドライバ）とハードウェア（ｉＳＣＳＩチップ２２８）とによって実行される。チャネルアダプタ２２０は、ｉＳＣＳＩ設定データを利用して、サーバとネゴシエーション処理を実行する。また、チャネルアダプタ２２０は、ＬＵＮ管理データを利用して、ディスクアダプタ２４０に対して、ディスク駆動部２６０に含まれるいずれかの論理ユニットＬＵに対するデータの書き込み処理や読み出し処理の実行を指示する。
【００４７】
ストレージ管理部２８０は、ＣＰＵ２８１とメモリ２８２と管理用インタフェース部２８８と転送部２８９とを備えている。メモリ２８２には、通信プログラムと管理プログラムとｗｅｂサーバプログラムとが格納されている。また、メモリ２８２には、複数のＬＵＮ管理データを含むＬＵＮ管理テーブルと、複数のｉＳＣＳＩ設定データを含むｉＳＣＳＩ設定テーブルと、各ターゲットのエラーリカバリレベル（ＴＥＲＬ）の初期値と、が格納されている。ＬＵＮ管理データとｉＳＣＳＩ設定データとは、ターゲット（チャネルアダプタ）毎に準備されている。ｉＳＣＳＩ設定テーブルには、各ターゲットのエラーリカバリレベル（ＴＥＲＬ）の設定値が含まれている。また、ターゲットのエラーリカバリレベル（ＴＥＲＬ）の初期値は、すべてのターゲットに共通する値である。通信プログラムは、各チャネルアダプタ２２０に、対応するＬＵＮ管理データとｉＳＣＳＩ設定データとを送信する機能を有する。管理プログラムは、ターゲットとイニシエータとの対応関係を設定して、ＬＵＮ管理テーブルとｉＳＣＳＩ設定テーブルとを作成する機能を有する。特に、本実施例では、管理プログラムは、ターゲットとイニシエータとの対応関係を設定する際に、ターゲットのエラーリカバリレベルを設定することができる。ｗｅｂサーバプログラムは、管理プログラムによって作成される管理画面（後述する）を管理装置３００に提供する機能を有する。管理用インタフェース部２８８は、第２のネットワークＮＷ２を介して、管理装置３００と通信するためのインタフェースである。転送部２８９は、ストレージ装置内部の各部と通信するためのインタフェースである。
【００４８】
図３は、図１に示すサーバ１００Ａ〜１００Ｃと管理装置３００との具体的な構成を示す説明図である。
【００４９】
各サーバ１００Ａ〜１００Ｃは、イニシエータとして機能する。図示するように、第１のサーバ１００Ａは、ＣＰＵ１１１とメモリ１１２とバス制御部１１３とホストバスアダプタ（ＨＢＡ）１１４と管理用インタフェース部１１８とを備えている。メモリ１１２には、接続先のターゲットを特定するターゲットアドレス情報と、ｉＳＣＳＩ設定データと、イニシエータのエラーリカバリレベル（ＩＥＲＬ）の初期値と、ネゴシエーション処理によって決定されたエラーリカバリレベル（ＥＲＬ）の決定値と、が格納されている。なお、ｉＳＣＳＩ設定データには、イニシエータのエラーリカバリレベル（ＩＥＲＬ）の設定値（初期値と同じ値）が含まれている。バス制御部１１３は、サーバ内部の各部とＨＢＡ１１４との間のデータの転送を制御する。ＨＢＡ１１４は、第１のネットワークＮＷ１を介してストレージ装置２００と通信するためのインタフェースである。管理用インタフェース部１１８は、第２のネットワークＮＷ２を介して、管理装置３００と通信するためのインタフェースである。
【００５０】
第２および第３のサーバ１００Ｂ，１００Ｃは、第１のサーバ１００Ａとほぼ同じであるが、ＨＢＡ１１４に代えて、ｉＳＣＳＩＨＢＡ１１５を備えている。図２では、ＣＰＵ１１１の内部にｉＳＣＳＩ階層モデルが描かれている。このモデルから分かるように、第１のサーバ１００Ａでは、ｉＳＣＳＩレイヤの処理とＴＣＰ／ＩＰレイヤの処理とは、ソフトウェア（ドライバ）によって実現されているが、第２および第３のサーバ１００Ｂ，１００Ｃでは、ハードウェア（ｉＳＣＳＩＨＢＡ２１５）によって実現されている。このように、ｉＳＣＳＩＨＢＡを採用すれば、ＣＰＵ１１１の負荷を低減させることができる。
【００５１】
管理装置３００は、ＣＰＵ３１１とメモリ３１２と入力部３１３とディスプレイ３１４と管理用インタフェース部３１８とを備えている。メモリ３１２には、ｗｅｂブラウザが格納されている。管理者は、ｗｅｂブラウザを介して、ストレージ管理部２８０（図２）内に格納された管理プログラムの実行を指示する。このとき、ディスプレイ３１４に表示されたｗｅｂブラウザウィンドウ内には、管理プログラムによって提供される管理画面が現れる。管理者は、管理画面において、ターゲットとイニシエータとの対応関係を設定することができる。特に、本実施例では、前述したように、管理者は、対応関係を設定する際に、管理画面においてターゲット（チャネルアダプタ）のエラーリカバリレベルを所望の値に設定することができる。
【００５２】
なお、本実施例における各サーバ１００Ａ〜１００Ｃが本発明におけるイニシエータ装置に相当する。また、ストレージ装置２００と管理装置３００とが本発明におけるストレージシステムに相当する。特に、ストレージ装置２００内部のディスク制御部２１０とディスク駆動部２６０とがストレージ部に相当し、ディスクアダプタ２２０がターゲット部に相当する。また、ストレージ装置２００内部のストレージ管理部２８０と管理装置３００とが管理部に相当する。さらに、ストレージ管理部２８０が本発明における設定部に相当し、ストレージ管理部２８０と管理装置３００とが通知部に相当する。
【００５３】
Ａ−４．ターゲットとイニシエータとの対応関係の設定：
図４は、ターゲットとイニシエータとの対応関係の設定手順を示すフローチャートである。なお、図４に示す処理は、ストレージ管理部２８０（図２）内の管理プログラムによって実行される。
【００５４】
図５は、ターゲットとイニシエータとの対応関係を設定する際に表示される管理画面ＭＳを示す説明図である。管理画面ＭＳは、管理者が対応関係を設定するための設定フィールドＷ１を含んでいる。なお、図５では、対応関係は、既に設定されている。管理者は、管理画面を利用して、管理プログラムに、ターゲットとイニシエータとの対応関係を設定させる。対応関係が設定されると、管理プログラムによって、メモリ２８２（図２）内にＬＵＮ管理テーブルが作成される。
【００５５】
図６は、ＬＵＮ管理テーブルの内容を示す説明図である。図示するように、ＬＵＮ管理テーブルには、ターゲットのｉＳＣＳＩネームと、ターゲット側のポータルと、イニシエータのｉＳＣＳＩネームと、イニシエータのエラーリカバリレベル（ＩＥＲＬ）の設定値（初期値と同じ値）と、ターゲットのエラーリカバリレベル（ＴＥＲＬ）の設定値（初期値と異なり得る値）と、論理ユニット番号（ＬＵＮ）情報と、が含まれている。
【００５６】
以下では、図４の処理を、図５，図６を参照しつつ説明する。本実施例では、ストレージ装置２００内部のすべてのターゲットに対して予め設定されたエラーリカバリレベルの初期値は「２」であると仮定する。また、３つのイニシエータに対して予め設定されたエラーリカバリレベルの初期値は、それぞれ、「０」，「１」，「２」であると仮定する。さらに、本実施例では、イニシエータレベルの初期値は、管理者によって事前に調査されていると仮定する。
【００５７】
ステップＳ１０２（図４）では、ターゲットが作成される。具体的には、管理プログラムは、管理画面を介して管理者から与えられた指示に従って、特定のターゲット（チャネルアダプタ）に割り当てられる論理ユニットＬＵを選択する。図５では、特定ターゲット「ａ」に対して３つの論理ユニット「００：００」，「００：０１」，「００：０２」が割り当てられている。例えば、「００：００」は、第１のディスクアダプタ２４０（図２）に対応する第１の論理ユニットグループ「００」に含まれる第１の論理ユニット「００」を示している。次に、管理プログラムは、選択された論理ユニット「００：００」，「００：０１」，「００：０２」に対して、論理ユニット番号（ＬＵＮ）「０」，「１」，「２」を付与する。そして、管理プログラムは、図６に示すように、ＬＵＮ管理テーブルに、特定ターゲット「ａ」のＬＵＮ情報を登録する。
【００５８】
ステップＳ１０４では、ターゲットのｉＳＣＳＩネームが設定される。具体的には、管理プログラムは、管理者から与えられたｉＳＣＳＩネームをＬＵＮ管理テーブル内に登録する。図５，図６では、特定ターゲット「ａ」のｉＳＣＳＩネーム「iqn-t-a 」が設定されている。
【００５９】
ステップＳ１０６では、ターゲット側のポータルが設定される。具体的には、管理プログラムは、管理者から与えられたポータルを識別するためのＩＰアドレスとＴＣＰポート番号とをＬＵＮ管理テーブル内に登録する。図５，図６では、特定ターゲット「ａ」に対応するポータル情報「ポータルａ」が設定されている。
【００６０】
なお、ステップＳ１０６では、ターゲットに対応するポータルが複数存在する場合には、複数のポータル情報が設定される。
【００６１】
上記のように、ポータル情報が設定されると、管理プログラムは、メモリ２８２（図２）から、ターゲットレベルの初期値を読み出して、管理画面ＭＳに表示する。図５の管理画面では、特定ターゲット「ａ」に対してエラーリカバリレベルの初期値「２」が表示されている。
【００６２】
ステップＳ１０８では、ターゲットに接続すべきイニシエータが設定される。具体的には、管理プログラムは、管理者から与えられたイニシエータのｉＳＣＳＩネームをＬＵＮ管理テーブル内に登録する。図５，図６では、特定ターゲット「ａ」に対して、特定のイニシエータ「Ａ」のｉＳＣＳＩネーム「iqn-i-a 」が設定されている。
【００６３】
ステップＳ１１０では、イニシエータのエラーリカバリレベルが設定される。具体的には、管理プログラムは、管理者から与えられたイニシエータのエラーリカバリレベルの初期値を、設定値としてＬＵＮ管理テーブル内に登録する。前述したように、イニシエータレベルの初期値は、管理者によって予め調査されている。図５，図６では、特定イニシエータ「Ａ」のエラーリカバリレベル（ＩＥＲＬ）の設定値が「０」に設定されている。
【００６４】
ステップＳ１１２では、ターゲットのエラーリカバリレベルが設定される。具体的には、管理プログラムは、管理者から与えられたターゲットのエラーリカバリレベルの設定値を、ＬＵＮ管理テーブル内に登録する。前述のように、ターゲットレベルの初期値とイニシエータレベルの設定値（初期値）とは、管理画面ＭＳに表示されている。このため、管理者は、２つの値を参照して、ターゲットレベルの値を、所望の値に変更して設定することができる。
【００６５】
第１の設定例では、ターゲットレベルの初期値がイニシエータレベルの初期値以上である場合には、管理者は、ターゲットレベルを変更して、イニシエータレベルの初期値と同じ値に設定する。図５，図６では、特定ターゲット「ａ」のエラーリカバリレベル（ＴＥＲＬ）の初期値「２」が特定イニシエータ「Ａ」のエラーリカバリレベル（ＩＥＲＬ）の初期値「０」より大きいため、特定ターゲット「ａ」のエラーリカバリレベル（ＴＥＲＬ）の設定値が、その初期値「２」と異なる「０」に設定されている。なお、他の設定例については、後述する。
【００６６】
ステップＳ１１４では、管理プログラムは、管理画面を介して、管理者に、ターゲットに接続すべき他のイニシエータの有無を問い合わせる。他のイニシエータが有る場合には、ステップＳ１０８〜Ｓ１１２の処理が繰り返される。他のイニシエータが無い場合には、ステップＳ１１６に進む。
【００６７】
ステップＳ１１６では、管理プログラムは、ＬＵＮ管理テーブルに登録された情報を、ｉＳＣＳＩ設定テーブルにコピーする。
【００６８】
図７は、ｉＳＣＳＩ設定テーブルの内容を示す説明図である。図示するように、ｉＳＣＳＩ設定テーブルには、ターゲットのｉＳＣＳＩネームと、ターゲット側のポータルと、イニシエータのｉＳＣＳＩネームと、ターゲットのエラーリカバリレベル（ＴＥＲＬ）の設定値と、が含まれる。本実施例では、ステップＳ１１６において、ＬＵＮ管理テーブルに登録された種々の情報がｉＳＣＳＩ設定テーブル内に一括してコピーされているが、これに代えて、図４の各ステップで、管理テーブルに情報が登録される毎にｉＳＣＳＩ設定テーブル内に情報が順次コピーされてもよい。
【００６９】
なお、図示するように、ｉＳＣＳＩ設定テーブルには、ターゲットがイニシエータと通信する際に利用される他の種々の情報（例えば、ヘッダの品質を保護するためのヘッダダイジェストの有無や、データの品質を保護するためのデータダイジェストの有無など）も含まれている。上記の他の種々の情報は、ストレージ管理部２８０によって予め準備されているが、管理者は、該情報の内容を変更することもできる。
【００７０】
図４の処理を繰り返し実行することによって、複数組のターゲットとイニシエータとの対応関係を設定することができる。
【００７１】
Ａ−５．ターゲットのエラーリカバリレベルの設定例：
図４のステップＳ１１２における第１の設定例では、ターゲットレベルは、イニシエータレベルの初期値と同じ値に変更されている。しかしながら、通常、ターゲットレベルの設定値は、イニシエータの機能を考慮して、イニシエータレベルの初期値と異なる値に設定される。
【００７２】
Ａ−５−１．第２の設定例：
イニシエータとターゲットとの間のエラーチェック性能に差がある場合には、通信に支障が生じる恐れがある。例えば、イニシエータのエラーチェック性能が高く、ターゲットのチェック性能が低い場合、および、イニシエータのエラーチェック性能が低く、ターゲットのエラーチェック性能が高い場合には、通信に支障が生じる得る。ただし、通常、ターゲットのエラーチェック性能は高い。このため、実際には、イニシエータのエラーチェック性能が低い場合に、通信に支障が生じる得る。
【００７３】
具体的には、イニシエータがエラーリカバリレベル「１」のＣＲＣ（Cyclic Redundancy Check ）エラーチェック機能を有していても、イニシエータのＣＲＣエラーチェック機能がソフトウェアで実行される場合と、イニシエータのＣＲＣエラーチェック機能がハードウェアで実行される場合とがある。例えば、図３に示す第１のサーバ１００Ａでは、ＣＲＣエラーチェック機能はソフトウェア（ｉＳＣＳＩドライバ）によって実現されており、第２のサーバ１００Ｂでは、ＣＲＣエラーチェック機能はハードウェア（ｉＳＣＳＩＨＢＡ１１５）によって実現されている。イニシエータのＣＲＣエラーチェック機能がソフトウェアで実行される場合には、イニシエータとターゲットとの間では、エラーチェック性能（すなわちエラーチェックの速度）に差があるため、通信に支障が生じる恐れがある。
【００７４】
上記の問題を解消するため、第２の設定例では、管理者は、ターゲットレベルの設定値を、イニシエータのエラーチェック性能に基づいて、設定する。
【００７５】
管理者は、イニシエータのエラーチェック機能がソフトウェアとハードウェアとのいずれによって実現されるかを事前に調査する。例えば、管理者は、イニシエータがｉＳＣＳＩＨＢＡを備えているか否かを予め調査する。そして、管理者は、イニシエータのエラーチェック性能に応じて、ターゲットのエラーリカバリレベルを設定する。
【００７６】
具体的には、イニシエータレベルの初期値が「１」であり、イニシエータのエラーチェック機能がソフトウェアで実行される場合には、管理者は、ターゲットレベルを、その初期値「２」から、イニシエータレベルの初期値「１」よりも小さな値「０」に変更する。また、イニシエータレベルの設定値（初期値）が「１」であり、イニシエータのエラーチェック機能がハードウェアで実行される場合には、管理者は、ターゲットレベルを、その初期値「２」から、イニシエータレベルの初期値「１」と同じ値「１」に変更する。
【００７７】
こうすれば、イニシエータとターゲットとの間のネゴシエーション処理において、エラーリカバリレベルがイニシエータの性能に適した値に決定されるため、通信の支障を解消することができる。
【００７８】
Ａ−５−２．第３の設定例：
ｉＳＣＳＩでは、ｉＳＣＳＩレイヤで複数の論理的な通信路（パス）を利用することができる。管理者は、イニシエータとターゲットとの間で冗長パス（複数の論理的なパス）を利用する必要があると判断する場合には、図４の処理において、イニシエータとターゲットとの対応関係を設定する際に、冗長パスを設定することができる。例えば、図５では、イニシエータ「Ｃ」とターゲット「ｃ」との間では、冗長パスが設定されている。なお、冗長パスは、通常、イニシエータとターゲットとの間のネゴシエーション処理で決定されるべきエラーリカバリレベルの決定値が「２」である場合に利用される。
【００７９】
ところで、冗長パスは、サーバ（イニシエータ）がパスを切り替えるためのパス切替プログラムを備える場合にも、利用可能である。なお、パス切替プログラムは、ＳＣＳＩレイヤで冗長パスを利用する。
【００８０】
しかしながら、サーバがパス切替プログラムを備える場合には、パス数が過度に大きくなってしまう恐れがある。これは、パス切替プログラムによって実現されるＳＣＳＩレイヤでのパスの冗長化と、ｉＳＣＳＩレイヤでのパスの冗長化とが、重複するためである。
【００８１】
上記の問題を解消するため、第３の設定例では、管理者は、ターゲットレベルの設定値を、パス切替プログラムの有無に基づいて、設定する。
【００８２】
管理者は、サーバがパス切替プログラムを備えているか否かを事前に調査する。そして、管理者は、パス切替プログラムの有無に応じて、ターゲットのエラーリカバリレベルを設定する。
【００８３】
具体的には、イニシエータレベルの初期値が「２」であり、サーバがパス切替プログラムを備える場合には、管理者は、ターゲットレベルを、その初期値「２」から、イニシエータレベルの初期値「２」よりも小さな値「１」または「０」に変更する。また、イニシエータレベルの初期値が「２」であり、サーバがパス切替プログラムを備えない場合には、管理者は、ターゲットレベルを、その初期値「２」と同じ値「２」に設定する。
【００８４】
こうすれば、イニシエータとターゲットとの間のネゴシエーション処理において、エラーリカバリレベルがパス切替プログラムの有無に応じた値に決定されるため、パス数が過度に増大して、ＣＰＵの負荷が過度に増大するのを抑制することができる。
【００８５】
第２および第３の設定例で説明したように、一般には、図４のステップＳ１１２では、ターゲットレベルの設定値は、イニシエータの機能に応じて、設定されることが好ましい。
【００８６】
Ａ−６．チャネルアダプタに対するエラーリカバリレベルの設定：
図４の処理によって、ストレージ管理部２８０のメモリ２８２（図２）内にＬＵＮ管理テーブルとｉＳＣＳＩ設定テーブルとが作成されると、チャネルアダプタ２２０のメモリ２２２内に、ＬＵＮ管理データとｉＳＣＳＩ設定データとが設定される。なお、ＬＵＮ管理データは、１つのターゲット（チャネルアダプタ）に対応するデータを意味している。また、ｉＳＣＳＩ設定データは、１つのターゲット（チャネルアダプタ）に対応するデータを意味している。
【００８７】
図８は、チャネルアダプタへのＬＵＮ管理データとｉＳＣＳＩ設定データとの設定手順を示すフローチャートである。
【００８８】
ステップＳ１２２では、ストレージ管理部２８０（図２）内の管理プログラムは、ＬＵＮ管理データおよびｉＳＣＳＩ設定データを供給すべきターゲット（チャネルアダプタ）を選択する。選択されるターゲットは、図４において作成された新たなターゲットである。
【００８９】
ステップＳ１２４では、管理プログラムは、ＬＵＮ管理テーブル（図６）から、選択されたターゲットに対応するＬＵＮ管理データを抽出すると共に、ｉＳＣＳＩ設定テーブル（図７）から、選択されたターゲットに対応するｉＳＣＳＩ設定テータを抽出する。
【００９０】
ステップＳ１２６では、ストレージ管理部２８０（図２）内の通信プログラムは、選択されたターゲット（チャネルアダプタ２２０）に対して、ＬＵＮ管理テータとｉＳＣＳＩ設定データとを送信する。
【００９１】
ステップＳ１２８では、チャネルアダプタ２２０（図２）内の通信プログラムは、ＬＵＮ管理テータとｉＳＣＳＩ設定データとを受け取る。設定プログラムは、ＬＵＮ管理データとｉＳＣＳＩ設定データとをメモリ２２２内に格納し、チャネルアダプタがＬＵＮ管理データとｉＳＣＳＩ設定データとに従って動作するように種々の設定を行う。
【００９２】
チャネルアダプタ２２０にｉＳＣＳＩ設定データが設定されると、ターゲット（チャネルアダプタ）は、ｉＳＣＳＩ設定データに含まれるｉＳＣＳＩネームを有するイニシエータからのアクセスのみを許容し、該イニシエータとネゴシエーション処理を行うことができる。これにより、ターゲットとイニシエータとのｉＳＣＳＩ通信が実現される。また、チャネルアダプタにＬＵＮ管理データが設定されると、ターゲット（チャネルアダプタ）は、イニシエータによって指定された特定の論理ユニットに対してデータの書き込み処理や読み出し処理を実行することができる。なお、特定の論理ユニットは、イニシエータによって論理ユニット番号（ＬＵＮ）を用いて指定される。
【００９３】
ところで、イニシエータがターゲットに接続するためには、イニシエータ内に、ターゲットを特定するための情報（ターゲットアドレス情報）を設定する必要がある。本実施例では、管理装置３００は、ストレージ管理部２８０（より具体的にはＬＵＮ管理テーブル）から、各イニシエータ（サーバ）と関連付けられたターゲットのアドレス情報（ｉＳＣＳＩネームおよびポータル）を取得し、第２のネットワークＮＷ２を介して、各イニシエータ（サーバ）にターゲットアドレス情報を供給する。各イニシエータは、メモリ１１２内にターゲットアドレス情報を格納する。これにより、イニシエータは、図４の処理で関連付けられたターゲットにアクセスすることができる。
【００９４】
Ａ−７．ネゴシエーション処理によるエラーリカバリレベルの決定：
図９は、イニシエータとターゲットとの間でｉＳＣＳＩ通信が行われる際のターゲット側の処理手順を示すフローチャートである。図９に示すターゲット側の処理は、チャネルアダプタ２２０（図２）内のｉＳＣＳＩドライバおよびｉＳＣＳＩチップ２２８によって実行される。なお、イニシエータ側の処理は、サーバ（図３）内のｉＳＣＳＩドライバまたはｉＳＣＳＩＨＢＡ１１５によって実行される。
【００９５】
ステップＳ２０２では、イニシエータから与えられたＰＤＵ（Protocol Data Unit）の種類が判断される。
【００９６】
ＰＤＵの種類がログインＰＤＵである場合には、ステップＳ２１０に進み、ログイン処理が実行される。ＰＤＵの種類がログアウトＰＤＵである場合には、ステップＳ２２０に進み、ログアウト処理が実行される。ＰＤＵの種類が他のＰＤＵである場合には、ステップＳ２３０に進み、対応する処理が実行される。なお、ステップＳ２２０，Ｓ２３０の処理は従来の処理と同様であるため、説明を省略する。
【００９７】
ステップＳ２１０のログイン処理では、イニシエータとターゲットとの間でネゴシエーション処理が実行される。そして、ネゴシエーション処理では、エラーリカバリレベルの値が決定される。
【００９８】
ステップＳ２１２では、ターゲットは、イニシエータから送信されたｉＳＣＳＩネームを取得する。このとき、ターゲットは、取得したイニシエータのｉＳＣＳＩネームが、図８で設定されたｉＳＣＳＩ設定データに含まれるイニシエータのｉＳＣＳＩネームと一致するか否かを判断する。一致する場合には、ターゲットは、該イニシエータからのアクセスを許容する。
【００９９】
ステップＳ２１４では、ターゲットは、イニシエータから送信されたイニシエータのｉＳＣＳＩ設定データを取得する。なお、イニシエータのｉＳＣＳＩ設定データは、ターゲット（チャネルアダプタ）のｉＳＣＳＩ設定データに対応するものであり、イニシエータ（サーバ）のメモリ１１２（図３）内に格納されている。イニシエータのｉＳＣＳＩ設定データには、イニシエータレベルの設定値（初期値と同じ値）が含まれている。
【０１００】
ステップＳ２１６では、ターゲットは、取得したイニシエータのｉＳＣＳＩ設定データから、イニシエータレベルの設定値を抽出する。
【０１０１】
ステップＳ２１８では、ターゲットは、イニシエータレベルの設定値と、ターゲットレベルの設定値と、のうちの小さな値を、エラーリカバリレベルとして決定する。そして、ターゲットは、エラーリカバリレベルの決定値をメモリ２２２（図２）内に格納する。
【０１０２】
ステップＳ２２０では、ターゲットは、ログイン応答ＰＤＵを作成して、イニシエータに送信する。具体的には、ターゲットは、ログイン応答ＰＤＵ内に、エラーリカバリレベルの決定値を含む種々の情報（具体的には、ターゲットのｉＳＣＳＩ設定データに含まれる情報）を挿入して、ログイン応答ＰＤＵを作成する。
【０１０３】
ログイン応答ＰＤＵを受け取ったイニシエータは、ログイン応答ＰＤＵから、エラーリカバリレベルの決定値を抽出し、メモリ１１２（図３）内に格納する。
【０１０４】
このようにして、ターゲットとイニシエータとの双方に、ネゴシエーション処理で決定されたエラーリカバリレベルの決定値が設定される。この結果、イニシエータとターゲットとの間では、エラーリカバリレベルの決定値で特定されるエラーリカバリ処理が実行可能となる。
【０１０５】
以上説明したように、本実施例では、管理者は、ターゲットのエラーリカバリレベルを、管理者の意図する値に変更することができるため、ネゴシエーション処理で決定されるエラーリカバリレベルの値を、管理者の意図する適切な値に容易に設定することが可能となる。
【０１０６】
Ａ−８．第１実施例の変形例：
図１０は、第１実施例の変形例におけるネットワークシステムの概略構成を示す説明図である。図１０は、図１とほぼ同じであるが、図１０では、ｉＳＮＳ（Internet Storage Name Service ）サーバ４００が追加されている。ｉＳＮＳサーバは、第１および第２のネットワークＮＷ１，ＮＷ２に接続されている。
【０１０７】
ｉＳＮＳサーバ４００は、各イニシエータ（サーバ）が接続すべきターゲットを特定するためのターゲットアドレステーブルを備えている。ターゲットアドレステーブルには、各イニシエータのｉＳＣＳＩネームと、各イニシエータが接続すべきターゲットのアドレス情報と、が登録されている。
【０１０８】
なお、ターゲットアドレステーブルは、管理装置３００から供給される。具体的には、管理装置３００は、ストレージ管理部２８０（より具体的にはＬＵＮ管理テーブル）から、各イニシエータ（サーバ）と関連付けられたターゲットのアドレス情報（ｉＳＣＳＩネームおよびポータル情報）を取得してターゲットアドレステーブルを作成する。そして、管理装置３００は、第２のネットワークＮＷ２を介して、ｉＳＮＳサーバにターゲットアドレステーブルを供給する。
【０１０９】
ｉＳＮＳサーバ４００は、イニシエータからイニシエータ名が通知されると、ターゲットアドレステーブルを参照して、該イニシエータ名に対応するターゲットアドレス情報を読み出す。そして、ｉＳＮＳサーバは、該イニシエータに対して、読み出されたターゲットアドレス情報を送信する。これにより、イニシエータは、受け取ったターゲットアドレス情報で特定されるターゲットにアクセスすることができる。
【０１１０】
このように、ｉＳＮＳサーバを採用すれば、管理装置３００は、各サーバに対して個別にターゲットアドレス情報を提供せずに済むという利点がある。
【０１１１】
なお、本例では、管理装置３００によってｉＳＮＳサーバ内にイニシエータが接続すべきターゲットを特定するためのターゲットアドレス情報が設定されているが、該ターゲットアドレス情報の設定は省略可能である。この場合には、ｉＳＮＳサーバは、通常の方法で利用されればよい。具体的には、ストレージ装置２００は、ｉＳＮＳサーバに対して各ターゲットの情報（ｉＳＣＳＩネームおよびポータル情報）を登録し、各イニシエータは、ｉＳＮＳサーバに対して自己の情報（ｉＳＣＳＩネームおよびポータル情報）を登録する。ターゲットにアクセスする際には、イニシエータは、ｉＳＮＳサーバから読み出し可能な１以上のターゲットの情報を取得し、該１以上のターゲットの情報に従って１以上のターゲットにアクセスを試みる。１以上のターゲットのそれぞれは、登録済みのイニシエータ、すなわち、ｉＳＣＳＩ設定データに含まれるｉＳＣＳＩネームを有するイニシエータからのアクセスか否かを判断し、登録済みのイニシエータである場合には、アクセスを許容する。このようにしても、イニシエータは、接続すべきターゲットにアクセスすることができる。このｉＳＮＳサーバの通常の利用方法については、ＩＥＴＦによって管理されるInternet Draft<draft-ietf-ips-isns-22.txt>に詳述されている。
【０１１２】
Ｂ．第２実施例：
第１実施例では、管理者はイニシエータの情報、より具体的には、イニシエータのｉＳＣＳＩネームやイニシエータのエラーリカバリレベルの初期値などを予め調査しているが、本実施例では、管理者がイニシエータの情報を容易に把握することができるように工夫している。
【０１１３】
図１１は、第２実施例におけるストレージ装置２００ｂの具体的な構成を示す説明図であり、図２に対応する。図示するように、本実施例では、ストレージ管理部２８０ｂのメモリ２８２ｂには、イニシエータ情報テーブルが格納されている。イニシエータ情報テーブルには、複数のイニシエータ（サーバ）の情報が登録されている。
【０１１４】
図１２は、第２実施例におけるサーバ１００Ａｂ〜１００Ｃｂと管理装置３００ｂとの具体的な構成を示す説明図であり、図３に対応する。図示するように、本実施例では、管理装置３００ｂのメモリ３１２ｂには、ＳＮＭＰ（Simple Network Management Protocol）マネージャプログラムが格納されている。なお、ＳＮＭＰは、ネットワークに接続された機器をネットワーク経由で監視するためのプロトコルである。また、各サーバ１００Ａｂ〜１００Ｃｂのメモリ１１２ｂには、ＳＮＭＰエージェントプログラムが格納されていると共に、ＭＩＢ（Management Information Base ）と呼ばれる機器の状態を表す情報が格納されている。ＭＩＢには、サーバの実装や動作状態に関する情報が含まれる。
【０１１５】
管理装置（ＳＮＭＰマネージャ）３００ｂ（図１２）は、各サーバ（ＳＮＭＰエージェント）１００Ａｂ〜１００Ｃｂから、ＭＩＢを取得する。そして、管理装置は、ストレージ装置２００ｂ（図１１）のストレージ管理部２８０ｂに、各サーバから取得したＭＩＢを供給する。ストレージ管理部２８０ｂは、各サーバのＭＩＢに含まれる情報をイニシエータ情報テーブルに登録する。
【０１１６】
本実施例では、ＭＩＢには、イニシエータのｉＳＣＳＩネームと、イニシエータレベルの設定値（初期値と同じ値）と、が含まれている。このため、本実施例では、ストレージ管理部２８０ｂは、管理装置３００ｂを介して、各イニシエータの情報、具体的には、イニシエータのｉＳＣＳＩネームとイニシエータレベルの設定値（初期値）を、事前に取得することができる。この結果、管理者は、イニシエータレベルの設定値（初期値）を事前に調査せずに済む。
【０１１７】
なお、本実施例におけるストレージ管理部２８０ｂが本発明における設定部に相当し、ストレージ管理部２８０ｂと管理装置３００とが本発明における取得部と通知部とに相当する。
【０１１８】
図１３は、第２実施例におけるターゲットとイニシエータとの対応関係の設定手順を示すフローチャートである。図１３は、図４とほぼ同じであるが、ステップＳ１０１が追加されている。
【０１１９】
ステップＳ１０１では、管理プログラムは、管理装置３００ｂから各サーバのＭＩＢを取得して、イニシエータ情報を管理画面に表示する。
【０１２０】
図１４は、ターゲットとイニシエータとの対応関係の設定する際に表示される管理画面ＭＳｂを示す説明図である。図１４は、図５とほぼ同じであるが、管理画面には、設定フィールドＷ１に加えて、イニシエータ情報フィールドＷ２が含まれている。イニシエータ情報フィールドＷ２には、イニシエータのｉＳＣＳＩネームやイニシエータレベルの設定値（初期値）などのイニシエータ情報が表示されている。
【０１２１】
上記のように、本実施例では、管理者は、各イニシエータの情報を、事前に調査せずに容易に把握することができる。このため、管理者は、ステップＳ１０８において、イニシエータのｉＳＣＳＩネームを容易に設定することができると共に、ステップＳ１１０において、イニシエータレベルを容易に設定することができる。この結果、管理者は、ステップＳ１１２において、イニシエータレベルの設定値（初期値）を参照しつつ、ターゲットレベルを容易に設定することができる。
【０１２２】
ところで、前述の第２の設定例では、サーバ（イニシエータ）のエラーチェック性能に応じて、より具体的には、サーバがｉＳＣＳＩＨＢＡを備えているか否かに応じて、ターゲットレベルが設定されている。本実施例では、ＭＩＢには、サーバがｉＳＣＳＩＨＢＡを備えているか否かの情報も含まれているため、イニシエータ情報フィールドＷ２には、各イニシエータがｉＳＣＳＩＨＢＡを備えているか否かの情報も表示される。この結果、管理者は、該情報を、事前に調査せずに容易に把握することができると共に、ターゲットレベルをイニシエータのエラーチェック性能に応じた適切な値に設定することが可能となる。
【０１２３】
また、前述の第３の設定例では、サーバ（イニシエータ）がパス切替プログラムを備えているか否かに応じて、ターゲットレベルが設定されている。本実施例では、ＭＩＢには、サーバがパス切替プログラムを備えているか否かの情報も含まれているため、イニシエータ情報フィールドＷ２には、各イニシエータ（サーバ）がパス切替プログラムを備えているか否かの情報も表示される。この結果、管理者は、該情報を、事前に調査せずに容易に把握することができると共に、ターゲットレベルをパス切替プログラムの有無に応じた適切な値に設定することが可能となる。
【０１２４】
Ｂ−１．第２実施例の変形例：
図１５は、第２実施例の変形例におけるターゲットとイニシエータとの対応関係の設定手順を示すフローチャートである。図１５は、図１３とほぼ同じであるが、ステップＳ１１２に先行するステップＳ１１１が追加されている。
【０１２５】
ステップＳ１１１では、管理プログラムは、ステップＳ１０１で取得したイニシエータ情報に基づいて、管理者によるターゲットのエラーリカバリレベルの設定を支援するためのメッセージを表示する。
【０１２６】
例えば、管理プログラムは、イニシエータのエラーチェック性能が低い場合、より具体的には、イニシエータがｉＳＣＳＩＨＢＡを備えていない場合には、ターゲットレベルをイニシエータレベルの設定値（初期値）よりも小さな値に設定するように、管理者にメッセージを提供することができる。また、管理プログラムは、サーバがパス切替プログラムを備えている場合には、ターゲットレベルを「０」または「１」に設定するように、管理者にメッセージを提供することができる。こうすれば、管理者は、メッセージの内容を考慮して、ターゲットレベルを適切な値に容易に設定することができる。
【０１２７】
なお、本例では、管理プログラムは、メッセージを提供しているが、これに代えて、ターゲットレベルの設定値として推奨される値のみが提供されてもよい。一般には、管理者によるターゲットのエラーリカバリレベルの値の変更を支援するための支援情報が通知されればよい。
【０１２８】
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能であり、例えば次のような変形も可能である。
【０１２９】
（１）第２実施例では、管理装置がＳＮＭＰマネージャプログラムを備えているが、これに代えて、ストレージ管理部がＳＮＭＰマネージャプログラムを備えていてもよい。そして、ストレージ管理部が、第２のネットワークＮＷ２を介して、各サーバからＭＩＢを取得するようにしてもよい。
【０１３０】
（２）第２実施例では、ターゲットのエラーリカバリレベルの値の変更のみが許容されているが、これと共に、イニシエータのエラーリカバリレベルの値の変更が許容されていてもよい。具体的には、管理者が管理画面においてイニシエータのエラーリカバリレベルを変更したときに、管理プログラムが、管理装置３００ｂに対して、イニシエータのエラーリカバリレベルの変更済みの設定値を供給すると共に、イニシエータのエラーリカバリレベルの設定値を変更するように指示する。そして、管理装置（ＳＮＭＰマネージャ）は、サーバ（ＳＮＭＰエージェント）に対して、イニシエータのエラーリカバリレベルの変更済みの設定値を供給すると共に、ＭＩＢ内のイニシエータレベルの設定値を変更させる。こうすれば、管理者は、イニシエータのエラーリカバリレベルの設定値を初期値と異なる値に設定することができる。
【０１３１】
なお、上記の場合におけるストレージ管理部と管理装置とが本発明における供給部に相当する。
【０１３２】
（３）上記実施例では、すべてのターゲットのエラーリカバリレベルの初期値は「２」に設定されており、各ターゲットのエラーリカバリレベルの値を変更することが許容されている。しかしながら、各ターゲットのエラーリカバリレベルの初期値が異なる場合には、ターゲットのエラーリカバリレベルの値の変更は許容されていなくてもよい。
【０１３３】
この場合にも、管理者は、管理画面に表示されるターゲットレベルの初期値を参照することができる。このため、管理者がイニシエータレベルの初期値を事前に調査しておけば、管理者は、ターゲットレベルの初期値を考慮しながら、該ターゲットに対して、複数のイニシエータの中から、適切なイニシエータレベルの初期値を有するイニシエータを割り当てることができる。
【０１３４】
一般には、設定処理において、管理者にターゲットのエラーリカバリレベルの値が通知されればよい。
【０１３５】
（４）上記実施例では、管理装置は、ストレージ装置の外部に設けられているが、管理装置の機能は、ストレージ装置の内部に設けられていてもよい。また、上記実施例では、ストレージ管理部は、ストレージ装置の内部に設けられているが、ストレージ管理部の機能は、ストレージ装置の内部に設けられていてもよい。
【図面の簡単な説明】
【０１３６】
【図１】ネットワークシステムの概略構成を示す説明図である。
【図２】図１に示すストレージ装置２００の具体的な構成を示す説明図である。
【図３】図１に示すサーバ１００Ａ〜１００Ｃと管理装置３００との具体的な構成を示す説明図である。
【図４】ターゲットとイニシエータとの対応関係の設定手順を示すフローチャートである。
【図５】ターゲットとイニシエータとの対応関係を設定する際に表示される管理画面ＭＳを示す説明図である。
【図６】ＬＵＮ管理テーブルの内容を示す説明図である。
【図７】ｉＳＣＳＩ設定テーブルの内容を示す説明図である。
【図８】チャネルアダプタへのＬＵＮ管理データとｉＳＣＳＩ設定データとの設定手順を示すフローチャートである。
【図９】イニシエータとターゲットとの間でｉＳＣＳＩ通信が行われる際のターゲット側の処理手順を示すフローチャートである。
【図１０】第１実施例の変形例におけるネットワークシステムの概略構成を示す説明図である。
【図１１】第２実施例におけるストレージ装置２００ｂの具体的な構成を示す説明図である。
【図１２】第２実施例におけるサーバ１００Ａｂ〜１００Ｃｂと管理装置３００ｂとの具体的な構成を示す説明図である。
【図１３】第２実施例におけるターゲットとイニシエータとの対応関係の設定手順を示すフローチャートである。
【図１４】ターゲットとイニシエータとの対応関係の設定する際に表示される管理画面ＭＳｂを示す説明図である。
【図１５】第２実施例の変形例におけるターゲットとイニシエータとの対応関係の設定手順を示すフローチャートである。
【符号の説明】
【０１３７】
１００Ａ〜１００Ｃ，１００Ａｂ〜１００Ｃｂ…サーバ
１０１ａ〜１０１ｃ…イニシエータ
１１１…ＣＰＵ
１１２，１１２ｂ…メモリ
１１３…バス制御部
１１４…ホストバスアダプタ（ＨＢＡ）
１１５…ｉＳＣＳＩＨＢＡ
１１８…管理用インタフェース部
２００，２００ｂ…ストレージ装置
２０１ａ〜２０１ｃ…ターゲット
２１０…ディスク制御部
２２０…チャネルアダプタ
２２１…ＣＰＵ
２２２…メモリ
２２８…ｉＳＣＳＩチップ
２２９…転送部
２３０…スイッチ
２４０…ディスクアダプタ
２６０…ディスク駆動部
２８０，２８０ｂ…ストレージ管理部
２８１…ＣＰＵ
２８２，２８２ｂ…メモリ
２８８…管理用インタフェース部
２８９…転送部
３００，３００ｂ…管理装置
３１１…ＣＰＵ
３１２，３１２ｂ…メモリ
３１３…入力部
３１４…ディスプレイ
３１８…管理用インタフェース部
４００…ｉＳＮＳサーバ
ＬＵ…論理ユニット
ＭＳ，ＭＳｂ…管理画面
Ｗ１…設定フィールド
Ｗ２…イニシエータ情報フィールド
【図１】
2006119970.tif 000003
【図２】
2006119970.tif 000004
【図３】
2006119970.tif 000005
【図４】
2006119970.tif 000006
【図５】
2006119970.tif 000007
【図６】
2006119970.tif 000008
【図７】
2006119970.tif 000009
【図８】
2006119970.tif 000010
【図９】
2006119970.tif 000011
【図１０】
2006119970.tif 000012
【図１１】
2006119970.tif 000013
【図１２】
2006119970.tif 000014
【図１３】
2006119970.tif 000015
【図１４】
2006119970.tif 000016
【図１５】
2006119970.tif 000017