(57)【要約】【課題】ストレージ装置の接続先に対応した応答設定を、容易に又は確実に行なう。【解決手段】ストレージ装置３に接続可能な情報処理装置の種別に対応したコマンド返り値を含む設定情報３１４〜３１６を記憶する記憶部３１と、前記ストレージ装置３に接続された接続先情報処理装置に対する種別の取得結果と、前記記憶部３１が記憶する前記設定情報３１４〜３１６とに基づき、前記接続先情報処理装置に応じたコマンド返り値であって、前記接続先情報処理装置から受信する特定のコマンドに対する応答に用いるコマンド返り値の設定を行なう設定部３３と、をそなえる。【選択図】図２
2018185706.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置に接続可能な情報処理装置の種別に対応したコマンド返り値を含む設定情報を記憶する記憶部と、
前記ストレージ装置に接続された接続先情報処理装置に対する種別の取得結果と、前記記憶部が記憶する前記設定情報とに基づき、前記接続先情報処理装置に応じたコマンド返り値であって、前記接続先情報処理装置から受信する特定のコマンドに対する応答に用いるコマンド返り値の設定を行なう設定部と、をそなえる
ことを特徴とする、ストレージ装置。
【請求項２】
前記設定情報は、既定のコマンド返り値とは異なるコマンド返り値を含む、
ことを特徴とする、請求項１に記載のストレージ装置。
【請求項３】
前記接続先情報処理装置から前記特定のコマンドを受信すると、当該接続先情報処理装置に対して、当該接続先情報処理装置に応じて設定されたコマンド返り値に基づく応答を送信する送信部、をそなえる
ことを特徴とする、請求項１又は請求項２に記載のストレージ装置。
【請求項４】
第１の通信インタフェースを用いて、前記接続先情報処理装置から当該接続先情報処理装置の種別に関する情報を取得する取得部、をそなえ、
前記送信部による、前記接続先情報処理装置からのコマンドの受信、及び、前記接続先情報処理装置への応答の送信は、第２の通信インタフェースを用いて行なわれる、
ことを特徴とする、請求項３に記載のストレージ装置。
【請求項５】
前記特定のコマンドは、前記ストレージ装置の状態を問い合わせるコマンドである、
ことを特徴とする、請求項１〜４のいずれか１項に記載のストレージ装置。
【請求項６】
前記設定情報は、前記情報処理装置に適用されたソフトウェアの種別に対応したコマンド返り値を含む、
ことを特徴とする、請求項１〜５のいずれか１項に記載のストレージ装置。
【請求項７】
前記設定情報は、前記情報処理装置に適用されたオペレーティングシステムの種別、ミドルウェアの種別、及び、マルチパスドライバの種別のうちのいずれか１つの種別、又は、２以上の種別の組み合わせ、に対応したコマンド返り値を含む、
ことを特徴とする、請求項６に記載のストレージ装置。
【請求項８】
ストレージ装置がそなえるコンピュータに、
前記ストレージ装置に接続された接続先情報処理装置に対する種別の取得結果を取得し、
前記取得結果と、前記記憶部が記憶する、前記ストレージ装置に接続可能な情報処理装置の種別に対応したコマンド返り値を含む設定情報とに基づき、前記接続先情報処理装置に応じたコマンド返り値であって、前記接続先情報処理装置から受信する特定のコマンドに対する応答に用いるコマンド返り値の設定を行なう、
処理を実行させることを特徴とする、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及び制御プログラムに関する。
【背景技術】
【０００２】
サーバに接続されるストレージ装置では、接続されるサーバの環境の違い、例えば、ＯＳ（Operating System）、マルチパスドライバ、ミドルウェア等のそれぞれの種別に応じて、異なる設定が行なわれることがある。
【０００３】
例えば、管理者は、サーバ側にサーバ情報収集のためのプログラムをインストールし、当該プログラムによりサーバの情報を収集し、収集した情報に基づき、ストレージ装置に対してサーバに応じた設定を行なう。
【０００４】
一例として、ストレージ装置は、インタフェースに関する規格に準拠した種々のコマンドをサーバから受信すると、規格で定められた既定（Default）の応答を返すが、サーバの環境によっては、既定の応答を受信した場合に不都合が生じる場合がある。そこで、管理者は、ストレージ装置によるコマンドへの応答、換言すれば、「返り値」をサーバの環境に応じて設定することがある。なお、インタフェースに関する規格としては、例えば、ＳＣＳＩ（Small Computer System Interface）インタフェース規格（以下、「ＳＣＳＩ規格」と表記する場合がある）が挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２２２１１０号公報
【特許文献２】特開平７−２７１６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サーバ側に情報収集機能を持たせる場合、情報収集プログラムは、各サーバの環境に合ったものや、接続先のストレージのベンダやモデルに応じたものが選定されることになる。このため、情報収集プログラムの選定やサーバへの設定の際の判断ミスや作業ミスが発生する場合がある。また、情報収集プログラムの導入にかかる時間や費用等のコストが増加する場合がある。
【０００７】
また、或るストレージ装置に複数のサーバが接続されており、これらのサーバで互いに異なるＯＳ、マルチパスドライバ、ミドルウェアが動作している場合、サーバに対応付けてストレージ装置に設定される返り値は、これらの組み合わせによって異なる。ストレージ装置に接続されるサーバの台数が多いほど、これらのＯＳ、マルチパスドライバ、ミドルウェアの組み合わせが多くなるため、管理者の作業時間が増加する場合がある。また、これらの組み合わせに応じた返り値の設定の際の判断ミスや作業ミスが発生する場合がある。
【０００８】
１つの側面では、本発明は、ストレージ装置の接続先に対応した応答設定を、容易に又は確実に行なうことを目的とする。
【課題を解決するための手段】
【０００９】
１つの側面では、ストレージ装置は、記憶部と、設定部とをそなえてよい。前記記憶部は、ストレージ装置に接続可能な情報処理装置の種別に対応したコマンド返り値を含む設定情報を記憶してよい。前記設定部は、前記ストレージ装置に接続された接続先情報処理装置に対する種別の取得結果と、前記記憶部が記憶する前記設定情報とに基づき、前記接続先情報処理装置に応じたコマンド返り値の設定を行なってよい。前記コマンド返り値は、前記接続先情報処理装置から受信する特定のコマンドに対する応答に用いるコマンド返り値であってよい。
【発明の効果】
【００１０】
１つの側面では、ストレージ装置の接続先に対応した応答設定を、容易に又は確実に行なうことができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係るストレージシステムの構成例を示すブロック図である。
【図２】一実施形態に係るストレージ装置の機能構成例を示すブロック図である。
【図３】ＩＰ（Internet Protocol）アドレスリストの一例を示す図である。
【図４】設定確認テーブルの一例を示す図である。
【図５】インストールパッケージリストの一例を示す図である。
【図６】ＯＳ（Operating System）用設定値テーブルの一例を示す図である。
【図７】ＭＷ（Middleware）用設定値テーブルの一例を示す図である。
【図８】ＭＰＤ（Multipath Driver）用設定値テーブルの一例を示す図である。
【図９】サーバ環境情報設定テーブルの一例を示す図である。
【図１０】ストレージ装置による情報収集処理の動作例を示すフローチャートである。
【図１１】環境情報取得部によるＯＳ種別取得処理の動作例を示すフローチャートである。
【図１２】環境情報取得部によるＭＷ種別取得処理の動作例を示すフローチャートである。
【図１３】環境情報取得部によるＭＰＤ種別取得処理の動作例を示すフローチャートである。
【図１４】環境情報設定部による設定値判定及び返り値設定処理の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示あり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１３】
〔１〕一実施形態
〔１−１〕ストレージシステムの構成例
図１は一実施形態に係るストレージシステム１の構成例を示すブロック図である。
【００１４】
図１に示すように、ストレージシステム１は、例示的に、１以上（図１の例ではｎ；ｎは自然数）のサーバ２−１〜２−ｎ、ストレージ装置３、及び、スイッチ（ＳＷ；Switch）４をそなえてよい。以下、サーバ２−１〜２−ｎを区別しない場合には、単にサーバ２と表記する。
【００１５】
サーバ２では、ＯＳ、マルチパスドライバ（以下、「ＭＰＤ」（Multipath Driver）と表記する）、及び、ミドルウェア（以下、「ＭＷ」（Middleware）と表記する）がサーバごとに種々の組み合わせでインストールされ実行されてよい。
【００１６】
ＯＳは、ハードウェアとアプリケーションソフトウェアとの間に位置し、それぞれの管理・制御等を行なう基本ソフトウェアの一例である。ＯＳの種別としては、例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）、Ｒｅｄｈａｔ  Ｌｉｎｕｘ（登録商標）、ＳｕＳＥ  Ｌｉｎｕｘ（登録商標）、ＶＭｗａｒｅ（登録商標）、ＡＩＸ（登録商標）、ＨＰ−ＵＸ（登録商標）等が挙げられる。
【００１７】
ＭＰＤは、サーバ２とストレージ装置３との間の複数のパス（マルチパス）で接続し、高信頼／高性能を実現するためのソフトウェアの一例である。ＭＰＤの種別としては、例えば、ＥＭＰＤ、ＭＳＤＳＭ、ＭＰｘＩＯ、Ｄｅｖｉｃｅ  Ｍａｐｐｅｒ、Ｎａｔｉｖｅ  Ｍｕｌｔｉｐａｔｈ、ＭＰＩＯ、ＰＶ−Ｌｉｎｋｓ、ネイティヴ（ＨＰ−ＵＸ）等が挙げられる。
【００１８】
ＭＷは、ＯＳとアプリケーションソフトウェアとの間に位置し、ＯＳの機能拡張、又は、アプリケーションソフトウェア間の管理・制御等を行なうソフトウェアの一例である。ＭＷの種別としては、例えば、Ｓｔｏｒａｇｅ  Ｆｏｕｎｄａｔｉｏｎ、ＩｎｆｏＳｃａｌｅ（登録商標）、Ｏｒａｃｌｅ（登録商標）  ＲＡＣ、ＷＳＦＣ、Ｓｏｌａｒｉｓ  Ｃｌｕｓｔｅｒ、ＰｏｗｅｒＨＡ（登録商標）、ＶＭｗａｒｅ  ＨＡ等が挙げられる。
【００１９】
サーバ２とストレージ装置３との間は、ＬＡＮ（Local Area Network）１Ａと、ＳＡＮ（Storage Area Network）１Ｂとにより接続されてよい。
【００２０】
ＬＡＮ１Ａは、例えば、イーサネット（Ethernet；登録商標）に準拠したケーブル又は無線通信等による経路１ａによって形成されるＩＰ（Internet Protocol）ネットワークであってよい。
【００２１】
ＳＡＮ１Ｂは、ＳＣＳＩ規格に準拠したネットワークであってよく、上述したＭＰＤによりマルチパスが構成されてよい。ＳＡＮ１Ｂは、例えば、ファイバチャネル（ＦＣ；Fibre Channel）又はＳＡＳ（Serial Attached SCSI）等に準拠したケーブル又は無線通信による経路１ｂ及び１ｃと、ＳＷ４とによって形成されてよい。なお、経路１ｂ及び１ｃは、イーサネットに準拠したケーブル又は無線通信により形成されてもよく、ＳＡＮ１Ｂは、ｉＳＣＳＩ（Internet SCSI）に対応したＩＰネットワークであってもよい。
【００２２】
このように、複数のサーバ２とストレージ装置３とは、いずれも、ＬＡＮインタフェース及びＳＡＮインタフェースの２系統のインタフェースを有し、２系統のアクセス経路により相互に通信可能である。
【００２３】
ＳＷ４は、ＳＡＮ１Ｂを構成するスイッチである。ＳＷ４としては、例えば、ＦＣスイッチ、ＳＣＳＩスイッチ、或いは、ＦＣｏＥ（Fibre Channel Over Ethernet）スイッチ等が挙げられる。
【００２４】
サーバ２は、ストレージ装置３と接続され、ストレージ装置３に対して、インタフェースに関する規格に準拠した種々のコマンドの発行を行なう上位装置又は情報処理装置の一例である。一実施形態では、インタフェースに関する規格として、ＳＣＳＩインタフェース規格を例に挙げて説明する。サーバ２からストレージ装置３へのコマンド（以下、「ＳＣＳＩコマンド」と表記する場合がある）、及び、ＳＣＳＩコマンドに対するストレージ装置３からサーバ２への応答は、例えば、ＳＡＮ１Ｂ経由で送信されてよい。
【００２５】
なお、サーバ２からストレージ装置３に送信されるＳＣＳＩコマンドは、データのリード／ライト（Read / Write）等のＩ／Ｏ（Input / Output）に係る指示のほか、ストレージ装置３の状態（例えばエラー状態）を問い合わせる指示を含んでよい。
【００２６】
ストレージ装置３は、複数のディスク（「ＤＩＳＫ」と表記）３０ａを有するストレージ３０をそなえ、サーバ２に対してストレージ３０の記憶領域を提供する装置である。
【００２７】
また、ストレージ装置３は、サーバ２からのＳＣＳＩコマンドに対して応答を行なう。ストレージ装置３からサーバ２への応答は、例えば、ストレージ装置３のファームウェアの機能によって生成され送信されてよい。なお、ＳＣＳＩコマンドがＩ／Ｏに係る指示を含む場合、ストレージ装置３は、指示されたＩ／Ｏに係る処理を実行してよい。
【００２８】
ＳＣＳＩコマンドがストレージ装置３の状態を問い合わせる指示を含む場合、ストレージ装置３は、サーバ２からのＳＣＳＩコマンドに対してストレージ装置３の状態（例えばエラー状態）を応答してよい。エラー状態は、ＳＣＳＩインタフェースの標準規定に従った値（例えばコード）である。ストレージ装置３は、これらのコードによってサーバ２へストレージ装置３の状態を通知できる。
【００２９】
例えば、ストレージ装置３の状態は、ＳＣＳＩ規定で“Sense Key”、“Additional Sense”、“Additional Sense Code Qualifier”の各１バイト（Byte）のコード（「センスバイト」と称されてもよい）で報告されてよい。
【００３０】
一例として、“05/2500”は、“ILLEGAL REQUEST / Logical Unit Not Supported”を示す。なお、“05”は“Sense Key”のコードであり、“2500”は“Additional Sense”及び“Additional Sense Code Qualifier”のコードである。これらのコードは、ＳＣＳＩコマンドに対する応答情報、換言すれば、「返り値」の一例である。
【００３１】
返り値は、ＳＣＳＩ規定によって既定（Default）の値が定まっており、ストレージ装置３は、指定がない場合は、ＳＣＳＩコマンドに対応する既定の返り値をサーバ２に応答してよい。
【００３２】
しかし、上述のように、サーバ２の環境によっては、既定の応答を受信した場合に不都合が生じる場合がある。
【００３３】
一例として、サーバ２のＯＳがＨＰ−ＵＸの場合、過負荷時リトライを要求するセンス応答が有効（既定）であると、サーバ２の動作に不都合が生じる場合がある。この場合、ストレージ装置３のファームウェアには、センス応答を無効（例えば、応答しない）とした返り値が設定されることが好ましい。
【００３４】
また、サーバ２のＯＳがＳｏｌａｒｉｓであり、ＭＰＤがＭＰｘＩＯの場合、“Reserve”されたＬＵＮ（Logical Unit Number）に対するＴＵＲ（Test Unit Ready）の応答が“GOOD”（既定）であると、サーバ２の動作に不都合が生じる場合がある。この場合、ストレージ装置３のファームウェアには、ＴＵＲの応答を“Reservation Conflict応答”（競合が発生していることを示す応答）とした返り値が設定されることが好ましい。
【００３５】
さらに、サーバ２のＭＷがＳｔｏｒａｇｅ  Ｆｏｕｎｄａｔｉｏｎの場合、“Write Exclusive”のＬＵＮに対する“ModeSense”の応答が“Conflict”（既定）であると、サーバ２の動作に不都合が生じる場合がある。この場合、ストレージ装置３のファームウェアには、“ModeSense”の応答を“GOOD”（正常応答）とした返り値が設定されることが好ましい。
【００３６】
そこで、一実施形態に係るストレージ装置３は、後述する手法により、各サーバ２にサーバ２の環境に合った情報収集機能を持たせることなく、接続先のサーバ２の環境、例えば、ＯＳ、ＭＰＤ、及び、ＭＷに応じた返り値を自動的に設定する。
【００３７】
〔１−２〕ハードウェア構成例
次に、図１を参照して、サーバ２及びストレージ装置３のハードウェア構成例について説明する。
【００３８】
（サーバ２のハードウェア構成例）
図１に示すように、サーバ２は、例示的に、ＣＰＵ２ａ、メモリ（「ＭＥＭ」と表記）２ｂ、ディスク（「ＤＩＳＫ」と表記）２ｃ、ＮＩＣ２ｄ、及び、ＨＢＡ２ｅをそなえてよい。なお、「ＣＰＵ」はCentral Processing Unitの略称であり、「ＮＩＣ」はNetwork Interface Cardの略称であり、「ＨＢＡ」はHost Bus Adapterの略称である。
【００３９】
ＣＰＵ２ａは、種々の制御や演算を行なう演算処理装置又はプロセッサの一例である。ＣＰＵａは、各ブロック２ｂ〜２ｅとバス２ｆで相互に通信可能に接続されてよい。ＣＰＵ２ａに代えて、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ）が用いられてもよい。なお、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific Integrated Circuitの略称である。ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００４０】
メモリ２ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ２ｂとしては、揮発性メモリ、例えば、ＤＲＡＭ（Dynamic RAM）等のＲＡＭ（Random Access Memory）が挙げられる。
【００４１】
ディスク２ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、ディスク２ｃは、サーバ２の二次記憶装置として使用されてよく、ＯＳやファームウェア、アプリケーション等のプログラム（例えば、ＯＳ、ＭＰＤ、ＭＷ等）、及び各種データが格納されてよい。ディスク２ｃとしては、例えば、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、ＳＳＤ（Solid State Drive）等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。
【００４２】
ＮＩＣ２ｄは、ＬＡＮ１Ａを介して、ストレージ装置３との間の接続及び通信の制御等を行なう通信インタフェースの一例である。ＨＢＡ２ｅは、ＳＡＮ１Ｂを介して、ストレージ装置３との間の接続及び通信の制御等を行なう通信インタフェースの一例である。なお、上述のように、ＳＡＮ１ＢがｉＳＣＳＩに対応したＩＰネットワークである場合、ＳＡＮ１Ｂとの間の通信インタフェースには、ＨＢＡ２ｅに代えてＮＩＣがそなえられてもよい。
【００４３】
上述したサーバ２のハードウェア構成は例示である。従って、サーバ２内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００４４】
（ストレージ装置３のハードウェア構成例）
図１に示すように、ストレージ装置３は、例示的に、ＣＰＵ３ａ、メモリ（「ＭＥＭ」と表記）３ｂ、ディスク（「ＤＩＳＫ」と表記）３ｃ、ＮＩＣ３ｄ、ＣＡ３ｅ、ＤＡ３ｆ、Ｉ／Ｏ部３ｇ、リーダ３ｈ、及びストレージ３０をそなえてよい。なお、「ＣＡ」はChannel Adapterの略称であり、「ＤＡ」はDevice Adapterの略称である。
【００４５】
ＣＰＵ３ａは、種々の制御や演算を行なう演算処理装置又はプロセッサの一例である。ＣＰＵ３ａは、各ブロック３ｂ〜３ｈとバス３ｉで相互に通信可能に接続されてよい。ＣＰＵ３ａに代えて、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ）が用いられてもよい。
【００４６】
メモリ３ｂは、種々のデータやプログラムを格納するハードウェアの一例である。揮発性メモリ、例えば、ＤＲＡＭ等のＲＡＭが挙げられる。
【００４７】
ディスク３ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、ディスク３ｃは、ストレージ装置３の二次記憶装置として使用されてよく、ＯＳやファームウェア、アプリケーション等のプログラム、及び各種データが格納されてよい。ディスク３ｃとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。ディスク３ｃは、ストレージ装置３の各種機能の全部若しくは一部を実現するプログラム３ｊを格納してもよい。
【００４８】
ＮＩＣ３ｄは、ＬＡＮ１Ａを介して、サーバ２との間の接続及び通信の制御等を行なう第１の通信インタフェースの一例である。ＣＡ３ｅは、ＳＡＮ１Ｂを介して、サーバ２との間の接続及び通信の制御等を行なう第２の通信インタフェースの一例である。ＤＡ３ｆは、例えば、ＳＡＳやファイバチャネル等に準拠したケーブル等を介してストレージ３０との間の接続及び通信の制御等を行なう通信インタフェースの一例である。なお、上述のように、ＳＡＮ１ＢがｉＳＣＳＩに対応したＩＰネットワークである場合、ＳＡＮ１Ｂとの間の通信インタフェースには、ＣＡ３ｅに代えてＮＩＣがそなえられてもよい。
【００４９】
なお、ストレージ装置３は、管理者の管理端末との間の接続及び通信の制御等を行なう通信インタフェースをそなえてもよく、当該通信インタフェースを用いて、図示しないネットワークからプログラム３ｊをダウンロードしてもよい。
【００５０】
Ｉ／Ｏ部３ｇは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、並びに、ディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。
【００５１】
リーダ３ｈは、記録媒体３ｋに記録されたデータやプログラムを読み出しＣＰＵ３ａに出力する読取部の一例である。リーダ３ｈは、記録媒体３ｋを接続又は挿入可能な接続端子又は装置を含んでもよい。リーダ３ｈとしては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体３ｋにはプログラム３ｊが格納されてもよい。
【００５２】
記録媒体３ｋとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等の半導体メモリが挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００５３】
ストレージ３０は、ストレージ装置３がサーバ２に提供する記憶領域を実現する複数のディスク３０ａをそなえ、ＳＣＳＩコマンドに基づくＣＰＵ３ａからの要求に応じてディスク３０ａに対するデータ等の書き込み又は読み出し等の種々のＩ／Ｏを行なってよい。ディスク３０ａとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。
【００５４】
なお、ストレージ３０では、ＣＰＵ３ａによる制御の下、これらのディスク３０ａを用いて１以上のストレージグループが構築されてもよい。ストレージグループとしては、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループが挙げられる。
【００５５】
上述したストレージ装置３のハードウェア構成は例示である。従って、ストレージ装置３内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００５６】
例えば、ブロック３ａ〜３ｈは、ストレージ３０とは別のモジュール、例えば制御装置１０として構成されてもよい。制御装置１０は、ストレージ装置３がそなえるコンピュータの一例である。また、制御装置１０としてのブロック３ａ〜３ｈは、ストレージ装置３において冗長化（例えば二重化）されてもよい。なお、ストレージ装置３が複数の制御装置１０をそなえる場合、これらの制御装置１０の各々とストレージ３０との間のアクセスパスも冗長化されてよい。
【００５７】
また、図１の例では、ストレージ装置３内に１つのストレージ３０が示されているが、ストレージ装置３は、例えば、カスケード状に接続（縦列接続）した複数のストレージ３０をそなえてもよい。
【００５８】
〔１−３〕機能構成例
次に、図２を参照して、ストレージ装置３の機能構成例について説明する。
【００５９】
図２に示すように、ストレージ装置３は、例示的に、メモリ部３１、環境情報取得部３２、環境情報設定部３３、及び、通信部３４をそなえてよい。
【００６０】
メモリ部３１は、記憶部の一例であり、ＩＰアドレスリスト３１１、設定確認テーブル３１２、及び、インストールパッケージリスト３１３の情報を記憶してよい。また、メモリ部３１は、ＯＳ用設定値テーブル３１４、ＭＷ用設定値テーブル３１５、ＭＰＤ用設定値テーブル３１６、及び、サーバ環境情報設定テーブル３１７の情報を記憶してよい。符号３１１〜３１７の各情報については、環境情報取得部３２、環境情報設定部３３、及び、通信部３４の説明において後述する。なお、メモリ部３１は、例えば、ストレージ装置３のメモリ２ｂ又はディスク３ｃ（図１参照）が有する記憶領域の少なくとも一部により実現されてよい。
【００６１】
環境情報取得部３２は、ストレージ装置３に接続された接続先のサーバ２（以下、単にサーバ２と表記する）の各々から、ＬＡＮ１Ａ経由でサーバ２の環境情報を取得する。環境情報には、ＯＳ、ＭＷ、ＭＰＤ等の各種別に関する情報が含まれてよい。
【００６２】
なお、環境情報取得部３２の処理は、ストレージ装置３が起動されたとき、或いは、ストレージ装置３に接続された管理者の管理端末からの情報収集命令を受けたとき等のタイミングで実行されてよい。
【００６３】
環境情報取得部３２は、例えば、ＵＮＩＸ（登録商標）／Ｌｉｎｕｘ（登録商標）用のリモートシェル、及び、リモートシェルで実行される、情報収集のためのコマンドを含むシェルスクリプトを含んでよい。また、環境情報取得部３２は、Ｗｉｎｄｏｗｓ用のパワーシェル、及び、パワーシェルで実行される、情報収集のためのコマンドを含むバッチファイルを含んでよい。なお、ＭａｃＯＳ（登録商標）についても同様である。
【００６４】
例えば、環境情報取得部３２は、サーバ２のＩＰアドレスリスト３１１と、設定確認テーブル３１２とを用いて、ＩＰアドレスリスト３１１の上位のＩＰアドレスから順に、以下の手順で、当該ＩＰアドレスに対応するサーバ２から環境情報を取得してよい。
【００６５】
図３にＩＰアドレスリスト３１１の一例を示す。図３に示すように、ＩＰアドレスリスト３１１には、サーバ２のＩＰアドレスが含まれてよい。なお、ＩＰアドレスリスト３１１へのＩＰアドレスの登録は、管理端末等により予め行なわれてもよい。或いは、ＩＰアドレスリスト３１１には、環境情報取得部３２により、情報収集命令により指定されたＩＰアドレス、又は、ストレージ装置３に対してアクセスのあったサーバ２のＩＰアドレスが登録されてもよい。
【００６６】
図４に設定確認テーブル３１２の一例を示す。図４に示すように、設定確認テーブル３１２には、サーバ２ごとに、診断対象としてのＯＳ種別、ＭＰＤ種別、ＭＷ種別、及び、サーバ識別子の設定欄と、ＯＳ種別、ＭＰＤ種別、及び、ＭＷ種別についての各設定状況の設定欄とが含まれてよい。
【００６７】
（ｉ）サーバ識別子の取得
例えば、環境情報取得部３２は、ＬＡＮ１Ａ経由でＩＰアドレスにアクセスし、サーバ２の識別子（サーバ識別子）、例えば、ＷＷＮ（World Wide Name）或いはＭＡＣ（Media Access Control）アドレス等の情報を収集してよい。ＩＰアドレスへのアクセスは、ＵＮＩＸ／Ｌｉｎｕｘ用リモートシェル或いはＷｉｎｄｏｗｓ用パワーシェルの実行により行なわれてもよい。
【００６８】
収集したサーバ識別子のエントリが設定確認テーブル３１２に存在しない場合、環境情報取得部３２は、設定確認テーブル３１２に設定状況として“未”を設定した新たなエントリを作成し、当該エントリに収集したサーバ識別子を設定してよい。なお、収集したサーバ識別子について、設定確認テーブル３１２の対応するエントリの設定状況が“済”であれば、環境情報取得部３２は、ＩＰアドレスリスト３１１の次のＩＰアドレスにアクセスする。
【００６９】
（ii）ＯＳ種別の取得
次いで、環境情報取得部３２は、ＩＰアドレスリスト３１１から取得したＩＰアドレスに対して、ＵＮＩＸ／Ｌｉｎｕｘ用リモートシェルを実行し、異常終了した場合はＷｉｎｄｏｗｓ用パワーシェルを実行して、サーバ２からＯＳ情報を収集してよい。
【００７０】
例えば、環境情報取得部３２は、ＵＮＩＸ／Ｌｉｎｕｘ用リモートシェルにおいて、Ｕｎａｍｅコマンドを含んだシェルスクリプトを実行し、ＯＳ、バージョン情報を収集して、設定確認テーブル３１２に設定してよい。なお、Ｕｎａｍｅコマンドは、ＵＮＩＸ／ＬｉｎｕｘのＯＳ、バージョン情報取得用のコマンドである。
【００７１】
シェルスクリプトが異常終了した場合、ＯＳはＷｉｎｄｏｗｓの可能性が高い。そこで、環境情報取得部３２は、Ｗｉｎｄｏｗｓ用パワーシェルにおいて、Ｖｅｒコマンドを含んだバッチファイルを実行し、ＯＳ、バージョン情報を収集して、設定確認テーブル３１２に設定してよい。なお、Ｖｅｒコマンドは、ＷｉｎｄｏｗｓのＯＳ、バージョン情報取得用のコマンドである。
【００７２】
（iii）ＭＷ種別及びＭＰＤ種別の取得
次いで、環境情報取得部３２は、成功したリモートシェル又はパワーシェルにより、引き続きＭＷ及びＭＰＤの情報を収集してよい。
【００７３】
例えば、環境情報取得部３２は、リモートシェルにおいて、先に取得したＯＳについて当該ＯＳのインストールパッケージ情報を取得するためのコマンドを含んだシェルスクリプトを実行し、インストールパッケージ情報を取得してよい。また、環境情報取得部３２は、取得したインストールパッケージ情報に基づいてインストールパッケージリスト３１３を生成してよい。
【００７４】
図５にインストールパッケージリスト３１３の一例を示す。図５に示すように、インストールパッケージリスト３１３には、例示的に、Ｖｅｒｉｔａｓ  ＩｎｆｏＳｃａｌｅ、Ｏｒａｃｌｅ  Ｄａｔａ  Ｂａｓｅ、ＭＰｘＩＯ等の、サーバ２にインストールされている全てのソフトウェアの情報が含まれてよい。
【００７５】
そして、環境情報取得部３２は、インストールパッケージリスト３１３を検索し、返り値の設定を行なうＭＷ及びＭＰＤの有無、換言すれば、ストレージ装置３によるサポート対象のＭＷ及びＭＰＤの有無を判定してよい。
【００７６】
例えば、環境情報取得部３２は、インストールパッケージリスト３１３をＭＷ用設定値テーブル３１５及びＭＰＤ用設定値テーブル３１６と照合して、テーブル３１５又は３１６に含まれるソフトウェアを、返り値の設定を行なうＭＷ又はＭＰＤと判定してよい。環境情報取得部３２は、返り値の設定を行なうインストールパッケージ（ＭＷ及びＭＰＤ）の情報を設定確認テーブル３１２に設定してよい。
【００７７】
図７及び図８は、それぞれ、ＭＷ用設定値テーブル３１５及びＭＰＤ用設定値テーブル３１６の一例を示す図である。ＭＷ用設定値テーブル３１５及びＭＰＤ用設定値テーブル３１６には、それぞれ、対象ＯＳごとに、ＭＷ又はＭＰＤの種別と、返り値の設定を示す情報とが含まれてよい。
【００７８】
返り値の設定には、デフォルト（ＳＣＳＩインタフェースの標準規定に従った返り値）、及び、デフォルトとは異なる固定値（ＳＣＳＩインタフェースの標準規定ではなく、サーバ２の環境に合わせて定められた返り値）のいずれかが定義されてよい。
【００７９】
例えば、図７に示すように、ＯＳがＷｉｎｄｏｗｓ、Ｓｏｌａｒｉｓ、ＡＩＸのいずれかの場合において、ＭＷがＳｔｏｒａｇｅ  Ｆｏｕｎｄａｔｉｏｎの場合、返り値は固定値の“設定２”となり、それ以外の場合はデフォルトとなる。なお、“設定２”は、“ModeSense”の応答を“GOOD”（正常応答）とした返り値を示す。
【００８０】
また、例えば、図８に示すように、サーバ２のＯＳがＳｏｌａｒｉｓの場合において、ＭＰＤがＭＰｘＩＯの場合、返り値は固定値の“設定３”となり、それ以外の場合はデフォルトとなる。なお、“設定３”は、ＴＵＲの応答を“Reservation Conflict応答”（競合が発生していることを示す応答）とした返り値を示す。
【００８１】
なお、ＭＷ又はＭＰＤはサーバ２にインストールされていない場合がある。インストールパッケージリスト３１３にサポート対象となるＭＷ又はＭＰＤが存在しない場合には、環境情報取得部３２は、設定確認テーブル３１２に“該当なし”を示す情報を設定してよい。
【００８２】
以上のように、環境情報取得部３２は、環境情報の収集が未済のサーバ２から環境情報を取得（照会）し、設定確認テーブル３１２を生成・更新する。
【００８３】
このように、環境情報取得部３２は、第１の通信インタフェース（例えば、図１のＮＩＣ３ｄ）を用いて、接続先サーバ２から当該接続先サーバ２の種別に関する情報を取得する取得部の一例である。
【００８４】
環境情報設定部３３は、設定確認テーブル３１２に基づきＯＳ用設定値テーブル３１４、ＭＷ用設定値テーブル３１５、及び、ＭＰＤ用設定値テーブル３１６を検索し、サーバ２から取得したＯＳ、ＭＷ、ＭＰＤに対する各設定値を取得する。そして、環境情報設定部３３は、取得した各設定値をサーバ環境情報設定テーブル３１７に格納する。
【００８５】
図６はＯＳ用設定値テーブル３１４の一例を示す図である。図６に示すように、ＯＳ用設定値テーブル３１４には、ＯＳの種別と、返り値の設定を示す情報とが含まれてよい。なお、以下の説明では、ＯＳ用設定値テーブル３１４、ＭＷ用設定値テーブル３１５、及び、ＭＰＤ用設定値テーブル３１６を総称して、設定値テーブル３１４〜３１６と表記する場合がある。
【００８６】
返り値の設定には、ＭＷ用設定値テーブル３１５及びＭＰＤ用設定値テーブル３１６と同様に、デフォルト、及び、固定値のいずれかが定義されてよい。
【００８７】
例えば、図６に示すように、ＯＳがＨＰ−ＵＸの場合、返り値は固定値の“設定１”となり、それ以外の場合はデフォルトとなる。なお、“設定１”は、センス応答を無効（例えば、応答しない）とした返り値を示す。
【００８８】
上述した設定値テーブル３１４〜３１６は、ストレージ装置３に接続可能なサーバ２の種別に対応したコマンド返り値を含む設定情報の一例である。なお、設定値テーブル３１４〜３１６は、サーバ２に適用されたソフトウェアの種別に対応したコマンド返り値を含むといえる。より詳細には、設定値テーブル３１４〜３１６は、サーバ２に適用されたＯＳの種別、ＭＷの種別、及び、ＭＰＤの種別のうちのいずれか１つの種別、又は、２以上の種別の組み合わせ、に対応したコマンド返り値を含むといえる。
【００８９】
図９はサーバ環境情報設定テーブル（以下、単に「設定テーブル」と表記する場合がある）３１７の一例を示す図である。図９に示すように、設定テーブル３１７には、例示的に、サーバ識別子に対応付けて、ＯＳ種別、ＯＳ種別に対する返り値の設定、ＭＰＤ種別、ＭＰＤ種別に対する返り値の設定、ＭＷ種別、及び、ＭＷ種別に対する返り値の設定が含まれてよい。
【００９０】
例えば、環境情報設定部３３は、設定確認テーブル３１２を参照して、サーバ識別子、ＯＳ種別、ＭＷ種別、ＭＰＤ種別の情報を取得し、設定テーブル３１７に設定してよい。また、環境情報設定部３３は、取得したＯＳ種別、ＭＷ種別、ＭＰＤ種別をキーに、それぞれ、対応する設定値テーブル３１４〜３１６を検索して対応する設定値を取得し、取得した設定値のそれぞれを設定テーブル３１７に設定してよい。取得したＯＳ種別、ＭＷ種別、ＭＰＤ種別が設定値テーブル３１４〜３１６に存在しない場合、環境情報設定部３３は、設定テーブル３１７にデフォルトを設定してよい。
【００９１】
なお、ＭＷ用設定値テーブル３１５及びＭＰＤ用設定値テーブル３１６において、ＭＷ及びＭＰＤに対する返り値は、ＯＳ種別によって選択肢が限定される。このため、環境情報設定部３３は、ＭＷ用設定値テーブル３１５及びＭＰＤ用設定値テーブル３１６において、取得したＯＳ種別に対応する「対象ＯＳ」を参照し、対象ＯＳの範囲で、ＭＷ及びＭＰＤの検索を行なってよい。
【００９２】
環境情報設定部３３は、設定テーブル３１７へのＯＳ種別、ＭＷ種別、ＭＰＤ種別に対する返り値の設定が完了すると、設定確認テーブル３１２に対して、該当サーバ２の設定状況を“済”に更新してよい。
【００９３】
１つのサーバ識別子、つまり１台のサーバ２に対する、設定テーブル３１７への設定処理が完了すると、環境情報設定部３３は、ストレージ装置３に対して、返り値の設定を行なってよい。ストレージ装置３への返り値の設定は、例えば、後述する通信部３４に対して行なわれてよい。
【００９４】
上述した環境情報取得部３２及び環境情報設定部３３による処理は、ＩＰアドレスごと（接続先サーバ２ごと）に、ＩＰアドレスリスト３１１の終端まで繰り替えし実施されてよい。
【００９５】
このように、環境情報設定部３３は、ストレージ装置３に接続された接続先サーバ２に対する種別の取得結果と、メモリ部３１が記憶する設定値テーブル３１４〜３１６とに基づき、接続先サーバ２に応じたコマンド返り値の設定を行なう設定部の一例である。なお、コマンド返り値は、接続先サーバ２から受信する特定のコマンドに対する応答に用いるコマンド返り値である。
【００９６】
通信部３４は、ＳＡＮ１Ｂ経由でサーバ２と通信を行なう。通信部３４は、例えば、ストレージ装置３に設定されたファームウェアの一機能として実現されてよい。換言すれば、環境情報設定部３３によるストレージ装置３への返り値の設定は、ファームウェアに対して行なわれるといえる。
【００９７】
通信部３４は、例示的に、サーバ２からのＳＣＳＩコマンドの受信処理、ＳＣＳＩコマンドに応じた処理、及び、ＳＣＳＩコマンドに対するサーバ２への応答の送信処理、を行なってよい。
【００９８】
応答の送信処理において、或るサーバ２から受信したＳＣＳＩコマンドに対する、当該サーバ２用の返り値（固定値）が環境情報設定部３３により通信部３４に設定されている場合、通信部３４は、当該サーバ２に対して、設定された返り値を送信してよい。一方、或るサーバ２から受信したＳＣＳＩコマンドに対する返り値が設定されていない場合、通信部３４は、当該サーバ２に対して、デフォルトの返り値を送信してよい。
【００９９】
なお、通信部３４は、サーバ２の情報収集終了後、ＳＡＮ１Ｂ経由でサーバ２に完了を通知し、通知の過程で、ストレージ装置３のいずれのポート（例えば、ＣＡ３ｅのポート）とサーバ２とが接続されているかを特定してよい。なお、ポートの特定は、環境情報設定部３３による通信部３４への返り値の設定後に実施されてもよい。
【０１００】
このように、通信部３４は、接続先サーバ２から特定のコマンドを受信すると、当該接続先サーバ２に対して、当該接続先サーバ２に応じて設定されたコマンド返り値に基づく応答を送信する送信部の一例である。
【０１０１】
以上のように、一実施形態に係るストレージ装置３によれば、サーバ２の環境に合った情報収集機能を各サーバ２に持たせることなく、ストレージ装置３からサーバ２に応答する返り値を各サーバ２の環境に合わせて自動的に設定可能となる。従って、サーバ２側への機能付加を行なわずに、ストレージ装置３の接続先サーバ２の例えばＳＣＳＩ環境に対応した応答設定を、容易に行なうことができる。また、未知のＯＳやＭＷ、ＭＰＤ等が検出された場合でも、自動的にデフォルト値が設定されるため、応答設定を確実に行なうことができる。
【０１０２】
また、設定値テーブル３１４〜３１６には、既定の返り値とは異なる返り値（例えば、図６〜図８の“設定１”〜“設定３”等）が含まれ、対応するサーバ２には、既定ではない返り値に基づく応答が返される。従って、ストレージ装置３は、サーバ２のソフトウェア等の環境によって既定の応答が返された場合に不都合が生じるといった事態を回避でき、サーバ２の環境に応じた適切な返り値による応答を返すことができる。
【０１０３】
さらに、設定値テーブル３１４〜３１６には、サーバ２に適用されたソフトウェア、例えば、ＯＳ、ＭＷ、ＭＰＤのうちのいずれか１つの種別、又は、２以上の種別の組み合わせ、に対応した返り値を含むため、サーバ２の環境に柔軟に対応できる。
【０１０４】
また、サーバ２からの環境情報の取得は、例えばＬＡＮに対応した第１の通信インタフェースを用いて行なわれ、サーバ２との間のコマンド及び応答の送受信は、例えばＳＡＮに対応した第２の通信インタフェースを用いて行なわれる。従って、第２の通信インタフェースでの通信において不都合が生じ得るサーバ２の環境の影響を受けずに、返り値の設定を完了できる。また、例えば、第２の通信インタフェースを用いた通信が行なわれる前に、サーバ２に対する返り値の設定を完了できるため、返り値の設定前に既定の返り値が返されることによるサーバ２での不都合の発生リスクを低減できる。
【０１０５】
〔１−４〕動作例
次に、図１０〜図１４を参照して、上述の如く構成されたストレージシステム１の動作例を説明する。
【０１０６】
なお、以下の動作例の前提として、ストレージ装置３に接続されたサーバ２は起動しており、サーバ２とストレージ装置３との間では、ＬＡＮ１Ａ及びＳＡＮ１Ｂのうち、少なくともＬＡＮ１Ａによるアクセスが可能であるものとする。また、接続先のサーバ２の情報や、サーバ２からの情報収集において使用するＯＳ、ＭＷ、ＭＰＤのコマンド（例えば返り値）等の情報は事前に分かっているものとする。例えば、ＩＰアドレスリスト３１１、設定値テーブル３１４〜３１６等は、管理者等により事前にストレージ装置３に設定されてよい。
【０１０７】
〔１−４−１〕ストレージ装置３の動作例
まず、図１０を参照して、ストレージ装置３による環境情報収集処理の動作例を説明する。
【０１０８】
図１０に例示するように、ストレージ装置３の環境情報取得部３２は、接続先のサーバ２に関するＩＰアドレスリスト３１１の１つのエントリを選択し（ステップＰ１）、当該エントリがＩＰアドレスリスト３１１の終端か否かを判定する（ステップＰ２）。例えば、ＩＰアドレスリスト３１１の先頭のエントリから順に選択されてよい。ＩＰアドレスリスト３１１の終端の場合（ステップＰ２でＹｅｓ）、処理が終了する。
【０１０９】
ＩＰアドレスリスト３１１の終端ではない場合（ステップＰ２でＮｏ）、環境情報取得部３２は、ＩＰアドレスリスト３１１の選択したエントリからサーバ２のＩＰアドレスを取得する（ステップＰ３）。
【０１１０】
環境情報取得部３２は、取得したＩＰアドレスへアクセスし、サーバ識別子を取得する（ステップＰ４）。ＩＰアドレスへのアクセスは、ＵＮＩＸ／Ｌｉｎｕｘ用リモートシェル或いはＷｉｎｄｏｗｓ用パワーシェルの実行により行なわれてよい。
【０１１１】
環境情報取得部３２は、設定確認テーブル３１２を参照し（ステップＰ５）、サーバ識別子に対応するサーバ２の情報が収集済か否かを判定する（ステップＰ６）。収集済の場合（ステップＰ６でＹｅｓ）、処理がステップＰ１に移行する。
【０１１２】
サーバ識別子に対応するサーバ２の情報が収集済ではない場合（ステップＰ６でＮｏ）、環境情報取得部３２は、設定確認テーブル３１２にサーバ識別子を記録する（ステップＰ７）。
【０１１３】
そして、ストレージ装置３は、ＯＳ種別取得処理（ステップＰ８）、ＭＷ種別取得処理（ステップＰ９）、ＭＰＤ種別取得処理（ステップＰ１０）、並びに、設定判定及び返り値設定処理（ステップＰ１１）を実行する。ステップＰ８〜Ｐ１１が終了すると、処理がステップＰ１に移行する。
【０１１４】
〔１−４−２〕ＯＳ種別取得処理
次に、図１１を参照して、図１０のステップＰ８における環境情報取得部３２によるＯＳ種別判定処理の動作例を説明する。
【０１１５】
図１１に例示するように、環境情報取得部３２は、リモートシェルによりＵＮＩＸ系の情報取得コマンドを含むシェルスクリプトを実行し（ステップＡ１）、シェルスクリプトがエラー終了したか否かを判定する（ステップＡ２）。正常に終了した場合（ステップＡ２でＮｏ）、環境情報取得部３２は、設定確認テーブル３１２にシェルスクリプトにより取得したＯＳ、バージョン情報を記録し（ステップＡ３）、ＯＳ種別判定処理が終了する。
【０１１６】
一方、シェルスクリプトがエラー終了した場合（ステップＡ２でＹｅｓ）、環境情報取得部３２は、Ｗｉｎｄｏｗｓ系の情報取得コマンドを含むバッチファイルを実行し（ステップＡ４）、バッチファイルがエラー終了したか否かを判定する（ステップＡ５）。正常に終了した場合（ステップＡ５でＮｏ）、環境情報取得部３２は、設定確認テーブル３１２のＯＳ種別にバッチファイルにより取得したＯＳ、バージョン情報を記録し（ステップＡ６）、ＯＳ種別判定処理が終了する。
【０１１７】
一方、バッチファイルがエラー終了した場合（ステップＡ５でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２のＯＳ種別に“未サポート”を記録し（ステップＡ７）、ＯＳ種別判定処理が終了する。
【０１１８】
〔１−４−３〕ＭＷ種別取得処理
次に、図１２を参照して、図１０のステップＰ９における環境情報取得部３２によるＭＷ種別判定処理の動作例を説明する。
【０１１９】
図１２に例示するように、環境情報取得部３２は、設定確認テーブル３１２のＯＳ、バージョン情報（図４の例ではＯＳ種別）を参照し（ステップＢ１）、未サポートＯＳか否かを判定する（ステップＢ２）。未サポートＯＳの場合（ステップＢ２でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２のＭＷ種別に“未サポート”を記録し（ステップＢ３）、ＭＷ種別判定処理が終了する。
【０１２０】
一方、サポートＯＳの場合（ステップＢ２でＮｏ）、環境情報取得部３２は、参照したＯＳがＷｉｎｄｏｗｓ系ＯＳか否かを判定する（ステップＢ４）。Ｗｉｎｄｏｗｓ系ＯＳではない場合（ステップＢ４でＮｏ）、環境情報取得部３２は、リモートシェルにより対象ＯＳのインストールパッケージ情報取得コマンドを含むシェルスクリプトを実行し（ステップＢ５）、処理がステップＢ７に移行する。
【０１２１】
一方、参照したＯＳがＷｉｎｄｏｗｓ系ＯＳの場合（ステップＢ４でＹｅｓ）、環境情報取得部３２は、Ｗｉｎｄｏｗｓのインストールパッケージ情報取得コマンドを含むバッチファイルを実行し（ステップＢ６）、処理がステップＢ７に移行する。
【０１２２】
ステップＢ７では、環境情報取得部３２は、ステップＢ５又はＢ６の実行結果に基づいてインストールパッケージリスト３１３を作成する。また、環境情報取得部３２は、インストールパッケージリスト３１３の上位からエントリを選択し、対象ＯＳのＭＷ用設定値テーブル３１５と照合する（ステップＢ８）。
【０１２３】
次いで、環境情報取得部３２は、選択したエントリのインストールパッケージがサポート対象のＭＷか否かを判定する（ステップＢ９）。サポート対象のＭＷではない場合（ステップＢ９でＮｏ）、処理がステップＢ１１に移行する。なお、ステップＢ９の判定は、例えば、選択したエントリのインストールパッケージがＭＷ用設定値テーブル３１５の対象ＯＳの範囲に存在する場合に、サポート対象のＭＷであると判定されてよい。
【０１２４】
一方、サポート対象のＭＷの場合（ステップＢ９でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２のＭＷ種別にインストールパッケージ情報を記録する（ステップＢ１０）。
【０１２５】
そして、環境情報取得部３２は、選択したエントリがインストールパッケージリスト３１３の最後のエントリか否かを判定し（ステップＢ１１）、最後のエントリでなければ（ステップＢ１１でＮｏ）、処理がステップＢ８に移行する。
【０１２６】
選択したエントリがインストールパッケージリスト３１３の最後のエントリの場合（ステップＢ１１でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２にＭＷ種別のインストールパッケージ情報を１つ以上記録したか否かを判定する（ステップＢ１２）。記録した場合（ステップＢ１２でＹｅｓ）、ＭＷ種別判定処理が終了する。
【０１２７】
一方、設定確認テーブル３１２にＭＷ種別のインストールパッケージ情報を１つも記録していない場合（ステップＢ１２でＮｏ）、環境情報取得部３２は、設定確認テーブル３１２のＭＷ種別に“該当なし”を記録する（ステップＢ１３）。以上により、ＭＷ種別判定処理が終了する。
【０１２８】
〔１−４−４〕ＭＰＤ種別取得処理
次に、図１３を参照して、図１０のステップＰ１０における環境情報取得部３２によるＭＰＤ種別判定処理の動作例を説明する。
【０１２９】
図１３に例示するように、環境情報取得部３２は、設定確認テーブル３１２のＯＳ、バージョン情報（図４の例ではＯＳ種別）を参照し（ステップＣ１）、未サポートＯＳか否かを判定する（ステップＣ２）。未サポートＯＳの場合（ステップＣ２でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２のＭＰＤ種別に“未サポート”を記録し（ステップＣ３）、ＭＰＤ種別判定処理が終了する。
【０１３０】
一方、サポートＯＳの場合（ステップＣ２でＮｏ）、環境情報取得部３２は、図１２のステップＢ７で作成されたインストールパッケージリスト３１３の上位からエントリを選択し、対象ＯＳのＭＰＤ用設定値テーブル３１６と照合する（ステップＣ４）。
【０１３１】
次いで、環境情報取得部３２は、選択したエントリのインストールパッケージがサポート対象のＭＰＤか否かを判定する（ステップＣ５）。サポート対象のＭＰＤではない場合（ステップＣ５でＮｏ）、処理がステップＣ７に移行する。なお、ステップＣ５の判定は、例えば、選択したエントリのインストールパッケージがＭＰＤ用設定値テーブル３１６の対象ＯＳの範囲に存在する場合に、サポート対象のＭＰＤであると判定されてよい。
【０１３２】
一方、サポート対象のＭＰＤの場合（ステップＣ５でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２のＭＰＤ種別にインストールパッケージ情報を記録する（ステップＣ６）。
【０１３３】
そして、環境情報取得部３２は、選択したエントリがインストールパッケージリスト３１３の最後のエントリか否かを判定し（ステップＣ７）、最後のエントリでなければ（ステップＣ７でＮｏ）、処理がステップＣ４に移行する。
【０１３４】
選択したエントリがインストールパッケージリスト３１３の最後のエントリの場合（ステップＣ７でＹｅｓ）、環境情報取得部３２は、設定確認テーブル３１２にＭＰＤ種別のインストールパッケージ情報を１つ以上記録したか否かを判定する（ステップＣ８）。記録した場合（ステップＣ８でＹｅｓ）、ＭＰＤ種別判定処理が終了する。
【０１３５】
一方、設定確認テーブル３１２にＭＰＤ種別のインストールパッケージ情報を１つも記録していない場合（ステップＣ８でＮｏ）、環境情報取得部３２は、設定確認テーブル３１２のＭＰＤ種別に“該当なし”を記録する（ステップＣ９）。以上により、ＭＰＤ種別判定処理が終了する。
【０１３６】
なお、図１０の処理Ｐ９及びＰ１０（図１２及び図１３）の実施順序は逆順でもよい。逆順の場合、図１２の処理Ｂ４〜Ｂ７（インストールパッケージリスト３１３の生成処理）は、図１３の処理Ｃ２の後（処理Ｃ２と処理Ｃ４との間）に行なわれてよい。
【０１３７】
〔１−４−５〕設定値判定及び返り値設定処理
次に、図１４を参照して、図１０のステップＰ１１における環境情報設定部３３による設定値判定及び返り値設定処理の動作例を説明する。
【０１３８】
図１４に例示するように、環境情報設定部３３は、設定確認テーブル３１２における接続先サーバ２のサーバ識別子を設定テーブル３１７に記録する（ステップＤ１）。また、環境情報設定部３３は、設定確認テーブル３１２のＯＳ、バージョン情報（図４の例ではＯＳ種別）を参照し、設定テーブル３１７に記録する（ステップＤ２）。
【０１３９】
環境情報設定部３３は、参照したＯＳ、バージョン情報が未サポートＯＳか否かを判定する（ステップＤ３）。未サポートＯＳの場合（ステップＤ３でＹｅｓ）、環境情報設定部３３は、設定テーブル３１７のＯＳ種別、ＭＰＤ種別、及び、ＭＷ種別に対する設定内容にそれぞれ“Default”を記録し（ステップＤ４〜Ｄ６）、処理がステップＤ１７に移行する。
【０１４０】
一方、サポートＯＳの場合（ステップＤ３でＮｏ）、環境情報設定部３３は、参照したＯＳ、バージョン情報をＯＳ用設定値テーブル３１４と照合し、ＯＳ種別に対する設定内容を設定テーブル３１７に記録する（ステップＤ７）。
【０１４１】
次いで、環境情報設定部３３は、設定確認テーブル３１２のＭＰＤ情報を参照し、設定テーブル３１７に記録する（ステップＤ８）。
【０１４２】
環境情報設定部３３は、参照したＭＰＤ情報が未サポート又は“該当なし”か否かを判定する（ステップＤ９）。未サポート及び“該当なし”のいずれでもない場合（ステップＤ９でＮｏ）、環境情報設定部３３は、参照したＭＰＤ情報をＭＰＤ用設定値テーブル３１６と照合し、ＯＳ種別、ＭＰＤ種別に対する設定内容を設定テーブル３１７に記録する（ステップＤ１０）。そして、処理がステップＤ１２に移行する。
【０１４３】
一方、参照したＭＰＤ情報が未サポート又は“該当なし”の場合（ステップＤ９でＹｅｓ）、環境情報設定部３３は、設定テーブル３１７のＭＰＤ種別に対する設定内容に“Default”を記録し（ステップＤ１１）、処理がステップＤ１２に移行する。
【０１４４】
ステップＤ１２では、環境情報設定部３３は、設定確認テーブル３１２のＭＷ情報を参照し、設定テーブル３１７に記録する。
【０１４５】
環境情報設定部３３は、参照したＭＷ情報が未サポート又は“該当なし”か否かを判定する（ステップＤ１３）。未サポート及び“該当なし”のいずれでもない場合（ステップＤ１３でＮｏ）、環境情報設定部３３は、参照したＭＷ情報をＭＷ用設定値テーブル３１５と照合し、ＯＳ種別、ＭＷ種別に対する設定内容を設定テーブル３１７に記録する（ステップＤ１４）。そして、処理がステップＤ１６に移行する。
【０１４６】
一方、参照したＭＷ情報が未サポート又は“該当なし”の場合（ステップＤ１３でＹｅｓ）、環境情報設定部３３は、設定テーブル３１７のＭＷ種別に対する設定内容に“Default”を記録し（ステップＤ１５）、処理がステップＤ１６に移行する。
【０１４７】
ステップＤ１６では、環境情報設定部３３は、設定テーブル３１７に基づいて、ストレージ装置３（例えば通信部３４）に対して返り値を設定する。
【０１４８】
そして、環境情報設定部３３は、設定確認テーブル３１２の確認状況に“済”を記録し（ステップＤ１７）、設定値判定及び返り値設定処理が終了する。
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１４９】
ストレージ装置３がそなえる図２に示す機能ブロックは、種々の組み合わせで併合されてもよく、分割されてもよい。
【０１５０】
また、ストレージ装置３の機能は、マルチプロセッサやマルチコアのＣＰＵ３ａによって実現されてもよい。
【０１５１】
さらに、一実施形態において、ストレージ装置３は、サーバ２の環境に応じてＳＣＳＩコマンドへの返り値を設定するものとしたが、これに限定されるものではない。例えば、一実施形態に係る手法は、ＳＣＳＩに代えて、サーバ２とストレージ装置３との間で採用されるプロトコルのうち、サーバ２の環境に応じてストレージ装置３からの適切な返り値が異なる種々のプロトコルに対して適用されてもよい。
【０１５２】
また、一実施形態において、サーバ２の環境情報には、ＯＳ種別、ＭＷ種別、及び、ＭＰＤ種別等の区分が含まれるものとしたが、これに限定されるものではない。環境情報は、他のソフトウェアの区分を含んでもよいし、他の観点から分類された区分を含んでもよい。また、各種別には、複数の製品が含まれるものとしたが、これに限定されるものではなく、各種別は、ソフトウェアのバージョンや動作モード等を考慮して細分化されてもよい。
【０１５３】
さらに、一実施形態において、設定値テーブル３１４〜３１６には、固有値ではなく“Default”が設定されるＯＳ種別、ＭＷ種別、ＭＰＤ種別についてもそれぞれ設定されているが、これに限定されるものではない。例えば、複数の種別のうち、設定内容が固有値となる種別のみを抽出したテーブルが、設定値テーブル３１４〜３１６に代えて用いられてもよい。
【０１５４】
〔３〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）
ストレージ装置に接続可能な情報処理装置の種別に対応したコマンド返り値を含む設定情報を記憶する記憶部と、
前記ストレージ装置に接続された接続先情報処理装置に対する種別の取得結果と、前記記憶部が記憶する前記設定情報とに基づき、前記接続先情報処理装置に応じたコマンド返り値であって、前記接続先情報処理装置から受信する特定のコマンドに対する応答に用いるコマンド返り値の設定を行なう設定部と、をそなえる
ことを特徴とする、ストレージ装置。
【０１５６】
（付記２）
前記設定情報は、既定のコマンド返り値とは異なるコマンド返り値を含む、
ことを特徴とする、付記１に記載のストレージ装置。
【０１５７】
（付記３）
前記接続先情報処理装置から前記特定のコマンドを受信すると、当該接続先情報処理装置に対して、当該接続先情報処理装置に応じて設定されたコマンド返り値に基づく応答を送信する送信部、をそなえる
ことを特徴とする、付記１又は付記２に記載のストレージ装置。
【０１５８】
（付記４）
第１の通信インタフェースを用いて、前記接続先情報処理装置から当該接続先情報処理装置の種別に関する情報を取得する取得部、をそなえ、
前記送信部による、前記接続先情報処理装置からのコマンドの受信、及び、前記接続先情報処理装置への応答の送信は、第２の通信インタフェースを用いて行なわれる、
ことを特徴とする、付記３に記載のストレージ装置。
【０１５９】
（付記５）
前記第１の通信インタフェースは、ＬＡＮ（Local Area Network）に対応したインタフェースであり、
前記第２の通信インタフェースは、ＳＡＮ（Storage Area Network）に対応したインタフェースである、
ことを特徴とする、付記４に記載のストレージ装置。
【０１６０】
（付記６）
前記特定のコマンドは、前記ストレージ装置の状態を問い合わせるコマンドである、
ことを特徴とする、付記１〜５のいずれか１項に記載のストレージ装置。
【０１６１】
（付記７）
前記設定情報は、前記情報処理装置に適用されたソフトウェアの種別に対応したコマンド返り値を含む、
ことを特徴とする、付記１〜６のいずれか１項に記載のストレージ装置。
【０１６２】
（付記８）
前記設定情報は、前記情報処理装置に適用されたオペレーティングシステムの種別、ミドルウェアの種別、及び、マルチパスドライバの種別のうちのいずれか１つの種別、又は、２以上の種別の組み合わせ、に対応したコマンド返り値を含む、
ことを特徴とする、付記７に記載のストレージ装置。
【０１６３】
（付記９）
ストレージ装置がそなえるコンピュータに、
前記ストレージ装置に接続された接続先情報処理装置に対する種別の取得結果を取得し、
前記取得結果と、前記記憶部が記憶する、前記ストレージ装置に接続可能な情報処理装置の種別に対応したコマンド返り値を含む設定情報とに基づき、前記接続先情報処理装置に応じたコマンド返り値であって、前記接続先情報処理装置から受信する特定のコマンドに対する応答に用いるコマンド返り値の設定を行なう、
処理を実行させることを特徴とする、制御プログラム。
【０１６４】
（付記１０）
前記設定情報は、既定のコマンド返り値とは異なるコマンド返り値を含む、
ことを特徴とする、付記９に記載の制御プログラム。
【０１６５】
（付記１１）
前記コンピュータに、
前記接続先情報処理装置から特定のコマンドを受信すると、当該接続先情報処理装置に対して、当該接続先情報処理装置に応じて設定されたコマンド返り値に基づく応答を送信する、
処理を実行させることを特徴とする、付記９又は付記１０に記載の制御プログラム。
【０１６６】
（付記１２）
前記接続先情報処理装置に対する種別の取得は、第１の通信インタフェースを用いて行なわれ、
前記接続先情報処理装置からのコマンドの受信、及び、前記接続先情報処理装置への応答の送信は、第２の通信インタフェースを用いて行なわれる、
ことを特徴とする、付記１１に記載の制御プログラム。
【０１６７】
（付記１３）
前記第１の通信インタフェースは、ＬＡＮ（Local Area Network）に対応したインタフェースであり、
前記第２の通信インタフェースは、ＳＡＮ（Storage Area Network）に対応したインタフェースである、
ことを特徴とする、付記１２に記載の制御プログラム。
【０１６８】
（付記１４）
前記特定のコマンドは、前記ストレージ装置の状態を問い合わせるコマンドである、
ことを特徴とする、付記９〜１３のいずれか１項に記載の制御プログラム。
【０１６９】
（付記１５）
前記設定情報は、前記情報処理装置に適用されたソフトウェアの種別に対応したコマンド返り値を含む、
ことを特徴とする、付記９〜１４のいずれか１項に記載の制御プログラム。
【０１７０】
（付記１６）
前記設定情報は、前記情報処理装置に適用されたオペレーティングシステムの種別、ミドルウェアの種別、及び、マルチパスドライバの種別のうちのいずれか１つの種別、又は、２以上の種別の組み合わせ、に対応したコマンド返り値を含む、
ことを特徴とする、付記１５に記載の制御プログラム。
【符号の説明】
【０１７１】
１    ストレージシステム
１Ａ    ＬＡＮ
１Ｂ    ＳＡＮ
１ａ、１ｂ、１ｃ    経路
１０    制御装置
２、２−１、２−ｎ    サーバ
３    ストレージ装置
３０    ストレージ
３０ａ    ディスク
３１  メモリ部
３１１    ＩＰアドレスリスト
３１２    設定確認テーブル
３１３    インストールパッケージリスト
３１４    ＯＳ用設定値テーブル
３１５    ＭＷ用設定値テーブル
３１６    ＭＰＤ用設定値テーブル
３１７    サーバ環境情報設定テーブル
３２    環境情報取得部
３３    環境情報設定部
３４    通信部
４    スイッチ
【図１】
2018185706.tif 000003
【図２】
2018185706.tif 000004
【図３】
2018185706.tif 000005
【図４】
2018185706.tif 000006
【図５】
2018185706.tif 000007
【図６】
2018185706.tif 000008
【図７】
2018185706.tif 000009
【図８】
2018185706.tif 000010
【図９】
2018185706.tif 000011
【図１０】
2018185706.tif 000012
【図１１】
2018185706.tif 000013
【図１２】
2018185706.tif 000014
【図１３】
2018185706.tif 000015
【図１４】
2018185706.tif 000016