(57)【要約】【課題】従来、ＳＡＮ、ホスト計算機、ストレージ装置から構成される計算機システムにストレージを仮想化するスイッチ（仮想化スイッチ）を導入すると、仮想ストレージのポートＩＤと当該仮想ストレージに割り当てられたストレージ装置のポートＩＤとが異なってしまうため、前記導入時には、計算機システムを一時中止しなければならなかった。【解決手段】計算機システムに導入する仮想化スイッチは、既存ストレージ装置のポートＩＤと同値になるように仮想化スイッチが生成した仮想ストレージのポートにポートＩＤを割り当て、１つの計算機からストレージ装置へのアクセス要求で当該ポートＩＤをアクセス先として指定された場合、仮想ストレージにアクセス要求を送信する。【選択図】図１
2005025485.tif 000002
【特許請求の範囲】
【請求項１】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチとに接続される第一のスイッチにおいて、
データの送受信を行う複数のポート処理部と、プログラムを格納するメモリと、前記プログラムを実行する処理部を備え、
前記プログラムは、前記ストレージ装置に対応する仮想ストレージを作成する部分と、前記仮想ストレージのポートＩＤを前記ストレージ装置のポートＩＤと同値にする部分と、前記計算機の前記ストレージ装置に対するアクセスを処理する部分を備える、第一のスイッチ。
【請求項２】
前記メモリは、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す情報と、仮想処理の属性を示す情報を対応付けて格納する、請求項１記載の第一のスイッチ。
【請求項３】
前記アクセスを処理する部分は、前記計算機から前記ストレージ装置の名前情報の照会があった場合、前記メモリから前記名前情報を検索する部分と、前記メモリから前記ストレージ装置が仮想ストレージに対応しているか否かを調べる部分と、前記ストレージ装置が当該ストレージ装置に対応する仮想ストレージと同値のポートＩＤを有するか否かを調べる部分と、前記同値のポートＩＤを有するか否かに応じて前記計算機に照会情報を送信するか否かを決定する部分を含む、請求項２記載の第一のスイッチ。
【請求項４】
前記アクセスを処理する部分は、前記ストレージ装置のポートＩＤと当該ストレージ装置に対応する仮想ストレージのポートＩＤが同値の場合、前記計算機からのアクセスを前記仮想ストレージに対して経路制御を行う部分を含む、請求項１記載の第一のスイッチ。
【請求項５】
前記プログラムは、前記第二のスイッチと前記第三のスイッチの双方に第一のスイッチが接続された場合、前記第二のスイッチと前記第三のスイッチに対して前記計算機と前記ストレージ装置に関する情報の通知要求を送信する部分と、前記計算機と前記ストレージ装置に関する情報を前記第二のスイッチと前記第三のスイッチから受信した場合、当該情報を前記メモリに格納する部分を備える、請求項１記載の第一のスイッチ。
【請求項６】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチとに接続される第一のスイッチにおいて、
データの送受信を行う複数のポート処理部と、プログラムを格納するメモリと、前記プログラムを実行する処理部を備え、
前記メモリは、更に、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記プログラムは、前記計算機から前記ストレージ装置に関する照会要求があった場合、
前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断する部分と、
前記照会要求が仮想ストレージに対するものである場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断する部分と、
ポートＩＤが同値である場合、照会拒否を前記計算機に送信する部分を備える、第一のスイッチ。
【請求項７】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチとに接続される第一のスイッチにおいて、
データの送受信を行う複数のポート処理部と、プログラムを格納するメモリと、前記プログラムを実行する処理部を備え、
前記メモリは、更に、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記プログラムは、前記計算機から前記ストレージ装置に関する照会要求があった場合、
前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断する部分と、
前記照会要求が仮想ストレージに対するものである場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断する部分と、
ポートＩＤが同値でない場合、照会情報を前記計算機に送信する部分を備える、第一のスイッチ。
【請求項８】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチとに接続される第一のスイッチにおいて、
データの送受信を行う複数のポート処理部と、プログラムを格納するメモリと、前記プログラムを実行する処理部を備え、
前記メモリは、更に、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記プログラムは、前記計算機から前記ストレージ装置に関する照会要求があった場合、
前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断する部分と、
前記照会要求が仮想ストレージに対するものでない場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断する部分と、
ポートＩＤが同値である場合、照会情報を前記計算機に送信する部分を備える、第一のスイッチ。
【請求項９】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチとに接続される第一のスイッチにおいて、
データの送受信を行う複数のポート処理部と、プログラムを格納するメモリと、前記プログラムを実行する処理部を備え、
前記メモリは、更に、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記プログラムは、前記計算機から前記ストレージ装置に関する照会要求があった場合、
前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断する部分と、
前記照会要求が仮想ストレージに対するものでない場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断する部分と、
ポートＩＤが同値でない場合、照会拒否を前記計算機に送信する部分を備える、第一のスイッチ。
【請求項１０】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチの双方に第一のスイッチを接続する、スイッチ接続方法において、
前記第一のスイッチは、前記第二のスイッチと前記第三のスイッチに対して前記計算機と前記ストレージ装置に関する名前情報の通知要求を送信するステップと、前記第二のスイッチと前記第三のスイッチから前記名前情報を受信するステップと、前記名前情報をもとに、前記ストレージ装置に対応する仮想ストレージを作成するステップと、前記仮想ストレージのポートＩＤを前記ストレージ装置のポートＩＤと同値にするステップと、前記計算機の前記ストレージ装置に対するアクセスを処理するステップを有する、スイッチ接続方法。
【請求項１１】
前記メモリは、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す情報と、仮想処理の属性を示す情報を対応付けて格納する、請求項１０記載のスイッチ接続方法。
【請求項１２】
前記アクセスを処理するステップは、前記計算機から前記ストレージ装置の名前情報の照会があった場合、前記メモリから前記名前情報を検索するステップと、前記メモリから前記ストレージ装置が仮想ストレージに対応しているか否かを調べるステップと、前記ストレージ装置が当該ストレージ装置に対応する仮想ストレージと同値のポートＩＤを有するか否かを調べるステップと、前記同値のポートＩＤを有するか否かに応じて前記計算機に照会情報を送信するか否かを決定するステップを含む、請求項１１記載のスイッチ接続方法。
【請求項１３】
前記アクセスを処理するステップは、前記ストレージ装置のポートＩＤと当該ストレージ装置に対応する仮想ストレージのポートＩＤが同値の場合、前記計算機からのアクセスを前記仮想ストレージに対して経路制御を行うステップを含む、請求項１０記載のスイッチ接続方法。
【請求項１４】
前記アクセスを処理するステップは、前記第二のスイッチと前記第三のスイッチの双方に第一のスイッチが接続された場合、前記第二のスイッチと前記第三のスイッチに対して前記計算機と前記ストレージ装置に関する情報の通知要求を送信するステップと、前記計算機と前記ストレージ装置に関する情報を前記第二のスイッチと前記第三のスイッチから受信した場合、当該情報を前記メモリに格納するステップを含む、請求項１０記載のスイッチ接続方法。
【請求項１５】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチの双方に第一のスイッチを接続する、スイッチ接続方法において、
前記第一のスイッチは、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記計算機から前記ストレージ装置に関する照会要求があった場合、前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断するステップと、
前記照会要求が仮想ストレージに対するものである場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断するステップと、
ポートＩＤが同値である場合、照会拒否を前記計算機に送信するステップを有する、スイッチ接続方法。
【請求項１６】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチの双方に第一のスイッチを接続する、スイッチ接続方法において、
前記第一のスイッチは、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記計算機から前記ストレージ装置に関する照会要求があった場合、前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断するステップと、
前記照会要求が仮想ストレージに対するものである場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断するステップと、
ポートＩＤが同値でない場合、照会情報を前記計算機に送信するステップを有する、スイッチ接続方法。
【請求項１７】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチの双方に第一のスイッチを接続する、スイッチ接続方法において、
前記第一のスイッチは、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記計算機から前記ストレージ装置に関する照会要求があった場合、前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断するステップと、
前記照会要求が仮想ストレージに対するものでない場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断するステップと、
ポートＩＤが同値である場合、照会情報を前記計算機に送信するステップを有する、スイッチ接続方法。
【請求項１８】
計算機に接続される第二のスイッチと、ストレージ装置に接続される第三のスイッチの双方に第一のスイッチを接続する、スイッチ接続方法において、
前記第一のスイッチは、前記ストレージ装置のポートＩＤと、当該ストレージ装置が当該ストレージに対応する仮想ストレージと同値のポートＩＤを有するか否かを示す第一の情報と、仮想処理の属性を示す第二の情報を対応付けて格納し、
前記計算機から前記ストレージ装置に関する照会要求があった場合、前記照会要求が仮想ストレージに対するものか否かを、前記第二の情報を用いて判断するステップと、
前記照会要求が仮想ストレージに対するものでない場合、前記仮想ストレージのポートＩＤが前記仮想ストレージに対応するストレージ装置のポートＩＤと同値であるか否かを、前記第一の情報を用いて判断するステップと、
ポートＩＤが同値でない場合、照会拒否を前記計算機に送信するステップを有する、スイッチ接続方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機、ストレージ装置、及びスイッチがネットワークに接続された計算機システムに関し、特に計算機システムを稼動させたままストレージを仮想化する（以下、仮想化されたストレージを仮想ストレージと称する）スイッチ（以下、仮想化スイッチと称する）に関する。
【０００２】
【従来の技術】
昨今、データ量の増加に伴い、計算機と複数のストレージ装置とをネットワーク（スイッチ）により接続する技術であるＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が利用されている。このＳＡＮ技術により、データ量の爆発的な増加にも、ストレージ装置をスイッチに随時接続することで対応可能となる。しかし、計算機システム内にストレージ装置の数が増加するのに伴い、計算機とストレージ装置とを接続するスイッチのポートが不足するため、スイッチの追加も必要になる。
【０００３】
従来技術では、既存計算機システムへスイッチを導入することは、当該システム内のスイッチの空きポートのうちの１つと、追加するスイッチの１つのポートをネットワークにより接続することで実現する（非特許文献１参照）。上記技術によれば、システムを稼動したまま、スイッチを導入することが可能である。
【０００４】
【非特許文献１】
“ＩＢＭ  Ｔｏｔａｌ  Ｓｔｏｒａｇｅ  ＳＡＮ  Ｓｗｉｔｃｈ：Ｕｓｉｎｇ  ｔｈｅ  ２１０９  Ｍｏｄｅｌ  Ｍ１２”、［ｏｎｌｉｎｅ］、［２００３年１月１０日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ−１．ｉｂｍ．ｃｏｍ／ｓｕｐｐｏｒｔ／ｄｏｃｖｉｅｗ．ｗｓｓ？ｕｉｄ＝ｓｓｇ１Ｓ７０００３１３＆ａｉｄ＝１＞、Ｐａｇｅ５９−６３
【０００５】
【発明が解決しようとする課題】
一方、ＳＡＮにおいて、ホストは複数のストレージ装置に直接アクセスできるが、個々の物理的なストレージ装置を意識する必要があり、ホストが一度に使える記憶領域も各ストレージ装置内の容量に限定されていた。これらを解決するため、複数のストレージ装置をホストから１つの論理的なストレージ装置に見せる仮想化スイッチの導入が進められている。この技術では、ホストに対して物理的なストレージ構成に依存しない仮想的なストレージ構成を提供する仮想ストレージの提供が可能となるが、この仮想化スイッチを上記計算機システムへ、システムを稼動したまま導入することは考慮されていない。システムを稼動したまま導入できない理由は以下である。すなわち、仮想化スイッチが生成した仮想ストレージは、ポートＩＤ（ポートに付与されたアドレス）や、ポート名（ＷＷＮとも呼ばれる）が全く別なものになるため、ホスト上では別ストレージ装置として認識する。この場合、ホスト上で仮想ストレージに割り当てられる前のストレージ装置を使用していたアプリケーションの運用を停止して、設定変更を行う必要があるからである。
【０００６】
本発明の目的は、仮想化スイッチを既存計算機システムに導入し、既存ストレージ装置を仮想ストレージとして割り当てた際、計算機が既存ストレージをアクセスしていた際に用いていたストレージ装置のポートＩＤをそのまま用いて仮想ストレージに対するアクセスを可能とする仮想化スイッチを提供することにある。
【０００７】
【課題を解決するための手段】
本発明の目的を達成するため、計算機システムに導入する仮想化スイッチは、既存ストレージ装置のポートＩＤと同値になるように仮想化スイッチが生成した仮想ストレージのポートにポートＩＤを割り当て、１つの計算機からストレージ装置へのアクセス要求で当該ポートＩＤをアクセス先として指定された場合は、仮想ストレージにアクセス要求を送信する。
【０００８】
【発明の実施の形態】
図１を用いて、本発明の実施形態を説明する。図において、メモリに格納されるプログラムや情報は丸で囲んでいる。また、図中のＰａ、Ｍａ等の記号は、図４、図６に対応させたものである。
【０００９】
図１は、本発明における計算機システムの一例を示す。計算機システムは、複数のホスト１０（１０Ａ、１０Ｂ）、複数のスイッチ５００（５００Ａ、５００Ｂ）、仮想化スイッチ２０、一又は複数のストレージ装置３１０（３１０Ａ、３１０Ｂ）、及び操作端末３００により構成される。ここで、ストレージ装置とは、複数の記憶装置と、これらを制御する記憶制御装置を含む装置とする。ホスト１０と仮想化スイッチ２０間は通信路１５を、仮想化スイッチ２０と一又はストレージ装置３１０間は通信路３１５を、操作端末３００と仮想化スイッチ２０は通信路３２０を介して接続される。内部パス１２０は、ファイバーチャネルやイーサネット（登録商標）等、データを転送できる通信路であればよい。
【００１０】
仮想化スイッチ２０は、ポート処理装置３０（３０Ａ、３０Ｂ、３０Ｃ、３０Ｄ）、ポート処理装置間のデータの経路切り替えを行う内部スイッチ１００、及び中央制御装置２００を有する。
【００１１】
ポート処理装置３０は、ホスト１０やストレージ装置３１０や内部スイッチに接続されデータの送受信を行うポート５０、受信したデータに仮想処理などを実施する処理部４０、及び後述のルーティングテーブル７０やローカル仮想テーブル８０を格納するメモリ６０を有し、これらが内部バス等の通信路によって接続されている。
【００１２】
中央制御装置２００は、後述のネームサーバ２５０や全体仮想テーブル２４０（図９）やルーティングテーブル７０（図７）やネームテーブル２３０（図５）を格納するメモリ２２０と、仮想化スイッチ２０全体を制御する処理部２１０を有し、これらが内部バス等の通信路で接続されている。ここで、ネームサーバとは、ＳＡＮ内ノードの名前情報を管理するためのプログラムである。具体的には、ホストやストレージ装置からの要求で当該名前情報をメモリに格納し、ＩＤを付与する部分と、１ホストによるストレージのＷＷＮからＩＤの照会要求に応対する部分を有する。
【００１３】
ホスト１０は、図示していないが、プロセッサ、主記憶装置等を有し、これらが内部バス等の通信路で接続されている。尚、ここでは、ノードとは、ホスト１０やストレージ装置３１０を指す。
【００１４】
図５はネームテーブル２３０の一例を示す図である。当該テーブルは、スイッチが接続時に割り振るポートＩＤ、ノードで固定的に備わるポートＷＷＮ、ノード自体のＷＷＮであるノードＷＷＮ、ポートのタイプや通信プロトコルの種類などの情報を示すポート属性（これら４つの情報を以下、名前情報と称する）、後述の詐称処理と関わるストレージであるか否かを示す詐称Ａ３０４０、仮想処理の属性を示す仮想情報３０５０、ノードの詳細情報を示す詳細情報３０６０を有する。このフォーマット自体はＦＣＰ（ファイバーチャネルのプロトコル）に定義されている。
【００１５】
図７は、複数のポート処理装置３０間のデータ通信における経路を決定するためのルーティングテーブル７０の一例を示す図である。ルーティングテーブルには、ポートＩＤ、ポート処理装置のアドレスを指すポート処理装置番号、後述のルーティングを行うための詐称Ｂ、仮想情報を有する。尚、図５と図７の行は、それぞれ対応している。
【００１６】
仮想化スイッチ２０に接続されるスイッチ５００Ａ、５００Ｂは、仮想化機能を有しないことを除けば、仮想化スイッチ２０の構成と同様であり、図５に示す名前情報を管理している。
１．仮想化スイッチの導入手続き
まず、図１〜図５を用いて、システムを稼動したまま既存ＳＡＮに仮想化スイッチ２０を導入し、システム内のストレージ装置を仮想ストレージとして割り当て、仮想処理を開始するための手続きを説明する。ここで、仮想処理とは、あらかじめ計算機システムの管理者等から指定された数量、容量及び機能を有する仮想ボリュームを、ホスト１０に提供するための処理を意味する。また、本発明では、仮想ストレージとは仮想ポート及び仮想ボリュームを有した構成要素を指す。仮想ポートは仮想的なポートＩＤ及び仮想的なポートＷＷＮを有する。
【００１７】
システムを稼動したまま仮想化スイッチ２０を導入し、仮想処理を開始するためには前提として、図２のように計算機システムに少なくとも二以上のスイッチ５００を有し、当該スイッチ間が通信路５１０で結ばれている（リンクアップになっている）必要がある。
【００１８】
図４は、仮想化スイッチの導入手続きの処理フローである。
【００１９】
まず、図３（Ａ）のように、二つのスイッチ５００のそれぞれと導入する仮想化スイッチ間に通信路５２０を設ける（ステップ６００）。仮想化スイッチでは、中央制御装置２００の処理部２１０が、各スイッチ５００に接続している全ノードの名前情報の通知要求を作成し、ポート処理装置３０を介して二つのスイッチ５００に当該要求を送信する。各スイッチは、ネームサーバを実行することにより、当該名前情報を当該仮想化スイッチに対して通知し、仮想化スイッチ２０の処理部２１０が受信する（ステップ６１０）。
【００２０】
処理部２１０は、各スイッチから受信した名前情報をネームテーブル２３０（図５）に登録する（ステップ６２０）。例えば、仮想化スイッチ２０が、スイッチ５００Ａからホスト１０Ａ、１０Ｂの名前情報を受信したとする。その際、処理部２１０は、図５のエントリ５Ａに、ホスト１０Ａについてそれぞれ、ポートＩＤ「Ｐａ」、ポートＷＷＮ「Ｗａ」、ノード「Ｎａ」、ポート属性「Ａａ」を、エントリ５Ｄに、ホスト１０Ｂについてそれぞれ、ポートＩＤ「Ｐｄ」、ポートＷＷＮ「Ｗｄ」、ノード「Ｎｄ」、ポート属性「Ａｄ」を登録する。同様に、スイッチ５００Ｂからストレージ装置３１０Ａ、３１０Ｂの名前情報を受信すれば、エントリ５Ｃに、ストレージ装置３１０Ａについてそれぞれ、ポートＩＤ「Ｐｂ」、ポートＷＷＮ「Ｗｃ」、ノード「Ｎｃ」、ポート属性「Ａｃ」を、エントリ５Ｆに、ストレージ３１０Ｂについてそれぞれ、ポートＩＤ「Ｐｆ」、ポートＷＷＮ「Ｗｆ」、ノード「Ｎｆ」、ポート属性「Ａｆ」を登録する。名前情報登録後、接続状況が変更になった時点で、各スイッチに対し、変更情報（ＲＳＣＮ：Ｒｅｇｉｓｔｅｒｅｄ  Ｓｔａｔｅ  Ｃｈａｎｇｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ）を仮想化スイッチ２０に通知するための要求を作成し、各スイッチに対し送信する。
【００２１】
次に、処理部２１０は、ネームサーバ２５０を実行することにより、ノードの詳細情報の通知要求（ＳＣＳＩコマンドのＩＮＱＵＩＲＹなどの調査コマンド等）を作成し、前ステップで登録したノードに対し当該要求を送信する。当該要求を受信した各ノードは、応答可能な場合、仮想化スイッチ２０に対し詳細情報を通知し、処理部２１０は、受信した詳細情報をネームテーブル２３０に登録する（ステップ６３０）。例えば、処理部２１０は、前ステップで登録したホスト１０Ａ、１０Ｂ、ストレージ装置３１０Ａ、３１０Ｂに対して、通知要求を送信し、これらのノードから詳細情報を受信する。そして、エントリ５Ａ、５Ｄに詳細情報「Ｈｏｓｔ」と、エントリ５Ｃ、５Ｆの詳細情報「Ｓｔｏｒａｇｅ」を登録する。
【００２２】
ここで、計算機システムの管理者は、操作端末３００に出力される当該詳細情報を基に、システムを稼動したまま仮想ストレージとして割り当てたいストレージ装置を選択する。尚、あまり使用しないストレージ装置については、その部分を停止して、仮想化処理を行ってもよい。処理部２１０は、管理者が選択したストレージ装置と同じ構成の仮想ストレージを作成し、当該仮想ストレージの割り当て先として当該ストレージ装置を選択し、ホストから当該仮想ストレージに対してアクセス可能な状態とする（ステップ６４０）。当該仮想ストレージを作成するための情報は、名前情報と詳細情報である。処理部２１０は、当該仮想ストレージに割り当てる仮想ポートのＷＷＮには新規にユニークなＷＷＮを作成するが、ポートＩＤには管理者が選択したストレージ装置に割り当てられているポートＩＤと同値なものを割り当てる（以下、ストレージ装置のポートＩＤと同値のＩＤを仮想ストレージに割り当てる処理を詐称処理と称する）（ステップ６５０）。例えば、管理者がストレージ装置３１０Ａを仮想ストレージに割り当てた場合（図１中のローカル仮想テーブル８０が仮想ストレージに相当する）、処理部２１０は、仮想ストレージを作成するため、当該仮想ストレージ用のエントリ５Ｂを確保し、エントリ５Ｂに、ポートＩＤ「Ｐｂ」、ポートＷＷＮ「Ｗｂ」、ノード「Ｎｂ」、ポート属性「Ａｂ」を、仮想情報に仮想ストレージを有するポート処理装置であることを示す「ＶＴ」を、詳細情報に「Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ」を登録する。そして、ストレージ装置３１０Ａに対応するエントリ５Ｃの仮想情報に、「仮想割当」を登録する。ストレージ装置３１０Ｂについては、管理者は仮想ストレージに割り当てていないため、エントリ５Ｆの仮想情報には何も登録されない。ここで、エントリ５Ｂには、ポートＩＤが「Ｐｂ」と登録された。これは、ストレージ装置３１０Ａのもの（エントリ５ＣのポートＩＤ）と同値である。そこで、エントリ５Ｂとエントリ５Ｃの詐称Ａに、「Ｙｅｓ」を登録する。また、ポート処理装置３０Ｂが、ストレージ装置３１０Ａに直接接続されているため、ホストに代わり（Ｖｉｒｔｕａｌ  Ｈｏｓｔ）、ストレージ３１０Ａに対して通信フレームを送信することになる。よって、エントリ５Ｅに、同様にポート処理装置３０Ｂの名前情報を登録し、仮想情報に仮想イニシエータであることを示す「ＶＩ」を、詳細情報に「Ｖｉｒｔｕａｌ  Ｈｏｓｔ」を登録する。
【００２３】
次に、処理部２１０は、作成した仮想ストレージの情報を全体仮想テーブル２４０に登録する（ステップ６６０）。全体仮想テーブル２４０については後述する。
【００２４】
次に、処理部２１０は、ルーティングテーブル７０（図７）に、スイッチ５００から名前情報を受信したポート処理装置の番号を、当該名前情報のポートＩＤと対応付けて格納し、詐称処理がなされた仮想ストレージに該当するエントリの詐称Ｂに詐称処理がなされたことを示す情報を登録する（ステップ６７０）。例えば、ホスト１０Ａ、１０Ｂの名前情報は、ポート処理装置３０Ａが受信するため、ポートＩＤ「Ｐａ」とポート処理装置番号Ｍａをエントリ７Ａに、ポートＩＤ「Ｐｄ」とポート処理装置番号Ｍａをエントリ７Ｄに格納する。同様に、ストレージ装置３１０Ａ、３１０Ｂの名前情報は、ポート処理装置３０Ｂが受信するため、ポートＩＤ「Ｐｂ」とポート処理装置番号Ｍｂをエントリ７Ｃに、ポートＩＤ「Ｐｆ」とポート処理装置番号「Ｍｂ」をエントリ７Ｆに格納する。そして、ポート処理装置３０Ａがストレージ装置３１０Ａの仮想ストレージを作成しているため、エントリ７Ｂに、ポートＩＤ「Ｐｂ」とポート処理装置番号「Ｍａ」を、更に仮想情報に「ＶＴ」を格納する。ストレージ装置３１０Ａは、仮想ストレージとして割り当てられているためエントリ７Ｃの仮想情報に「仮想割当」と、詐称処理がなされたため詐称Ｂに「Ｙｅｓ」を登録する。また、エントリ７Ｅにも、ステップ６５０と同様に登録する。
【００２５】
処理部２１０は、ルーティングテーブル７０の複製を、仮想化スイッチ内の全ポート処理装置３０に送信し、各ポート処理装置３０は当該ルーティングテーブル７０をメモリ６０に格納する。（ステップ６８０）。
２．運用時の仮想化スイッチの動作
次に、仮想化スイッチ２０における運用中の動作について説明する。この動作は大きく分けて、ネームサービスと仮想処理を含めたルーティングがある。
２．１  ネームサービス
仮想化スイッチ２０におけるネームサービスとは、ノードの名前情報に関する処理のことであり、仮想化スイッチ２０内部の仮想処理時や仮想化スイッチ２０外部のノードからの名前照会時などに使用される。
【００２６】
図６は、ネームサービスの処理フローである。ネームサービスは、ホスト１０からの名前情報照会などを契機にして開始される。
【００２７】
仮想化スイッチ２０は、ホスト１０から、あるノードＡの名前情報照会要求をポート処理装置３０で受信すると、ポート処理装置３０が当該照会要求を中央制御装置２００に送信する。中央制御装置２００では、処理部２１０が当該照会要求を解析し、解析結果を基にネームテーブル２３０から照会情報の検索を行う（ステップ１０００）。
【００２８】
処理部２１０は、検索の結果をもとに、ネームテーブル２３０に照会情報が登録されているか否かを判断する（ステップ１０１０）。登録されている場合、処理部２１０がネームテーブル２３０から該当するエントリを読み込む（ステップ１０１２）。登録されていない場合、照会要求を当該隣接スイッチに転送し、当該隣接スイッチに名前照会処理を依頼する（ステップ１０１３）。当該隣接スイッチが照会情報を有していた場合は当該隣接スイッチが照会元のホスト１０に当該照会情報を通知する。この際、当該照会情報に関するノードの名前情報を仮想化スイッチ２０のネームテーブル２３０に登録してもよい。この場合、スイッチ間の名前情報の整合性を維持する処理が必要になる。
【００２９】
次に、処理部２１０は、当該エントリの仮想情報を読み取り、当該仮想情報が仮想ストレージを示しているか否かを調査する（ステップ１０１５）。仮想ストレージを示している場合（図５で「ＶＴ」と表記）、処理部２１０は、前記エントリの詐称Ａが詐称（図５で「Ｙｅｓ」と表記）を示しているか否かを調査する（ステップ１０５５）。詐称を示している場合、処理部２１０は、照会拒否（ＲＪＴ）応答を作成し、ポート処理装置３０を介して照会元のホスト１０に対し当該拒否応答を送信する。一方、詐称を示していない場合、後述のステップ１０５０の処理を行う。
【００３０】
ステップ１０１５において、当該エントリの仮想情報が仮想ストレージを示していない場合、処理部２１０は、仮想ストレージとして割り当てたストレージ装置か否かを仮想情報から調査する（ステップ１０２０）。仮想ストレージとして割り当てたストレージ装置である場合（図５で「仮想割当」と表記）、処理部２１０は、前記エントリの詐称Ａが詐称を示しているか否かを調査する（ステップ１０３０）。詐称を示していない場合、処理部２１０は、照会拒否（ＲＪＴ）応答を作成し、ポート処理装置３０を介して照会元のホスト１０に対し当該拒否応答を送信する。
【００３１】
ステップ１０３０の結果、詐称を示している場合、もしくは仮想ストレージとして割り当てたストレージ装置ではない場合、もしくはステップ１０５５でＮｏの場合、処理部２１０は、ホスト１０が要求する情報を前記のエントリから読み取り、応答メッセージを作成し、ポート処理装置３０を介して当該ホスト１０に対し当該メッセージを送信する（ステップ１０５０）。
２．２  ルーティング
仮想化スイッチ２０におけるルーティングとは、複数のポート処理装置３０間のデータ通信に関する経路制御を意味する。ルーティングは、前記ポート処理装置３０が受信した通信フレームを当該受信したポート処理装置３０とは異なるポート処理装置３０に送信するときに行われる。
【００３２】
図８は、ルーティングの処理フローである。ルーティングは、ホストもしくはストレージ装置からの通信フレーム受信を契機に開始される。通信フレームには、送り先ポートＩＤ、送り元ポートＩＤ、通信フレームの種類、通信フレームのシーケンシャル番号等が含まれる。また、フレームの種類には、ＳＣＳＩの操作記述ブロック（ＣＤＢ）を有するフレーム、記憶装置からの応答フレーム、記憶装置からの書き込み許可応答フレーム等がある。ここでは、ホスト１０からの通信フレームを仮想化スイッチが受信した場合について説明する。
【００３３】
仮想化スイッチ２０はホスト１０から通信フレームを受信すると、ポート処理装置３０内の処理部４０が当該通信フレームを解析する。解析の結果得られた通信フレームの送り先ポートＩＤを鍵に、当該処理部４０は、ルーティングテーブル７０から当該送り先ポートＩＤと一致するポートＩＤを持ったエントリがあるか否かを検索し（ステップ１５００）、ルーティングテーブルに送り先の情報が登録されているか否かを調査する（ステップ１５０１）。当該通信フレームの送り先ポートＩＤと一致するエントリが登録されていない場合、当該通信フレームを破棄する（ステップ１５７０）。登録されている場合、処理部４０は、当該ルーティングテーブルより一致するエントリを読み込み、仮想ストレージとして割り当てたストレージ装置か否かを調査する（ステップ１５２０）。当該割り当てたストレージ装置である場合（図７で「仮想割当」と表記）、前記エントリの詐称Ｂが詐称を示しているか否かを調査する（ステップ１５５０）。詐称を示していない場合、処理部は当該通信フレームを破棄する（ステップ１５７０）。一方、詐称を示している場合、もしくはステップ１５２０の結果が仮想ストレージとして割り当てたストレージ装置でなく前記エントリの仮想情報が仮想ストレージである場合（ステップ１５３０でＹｅｓ；図６で「ＶＴ」と表記）、後述の仮想処理を行う（ステップ１５６０）。仮想処理後、もしくは前記エントリの仮想情報が仮想ストレージでない場合、当該エントリのポート処理装置番号が指すポート処理装置３０に前記の通信フレームを送信する。スイッチ１００を介して当該通信フレームを受信したポート処理装置３０では当該通信フレームを外部ノードもしくは隣接スイッチに送信する。
２．２．１  仮想処理
まず、仮想処理（図８のステップ１５６０）で利用される仮想テーブルについて説明する。仮想テーブルには、全体仮想テーブル２４０とローカル仮想テーブル８０がある。全体仮想テーブルは中央制御装置２００のメモリ２２０に格納されており、仮想化スイッチの仮想処理の全情報が含まれる。ローカル仮想テーブルはポート処理装置３０のメモリ６０に格納され、全体仮想テーブル２４０のサブセットで当該ポート処理装置３０が担当する仮想処理に関する情報を格納する。従って、全体仮想テーブルとローカル仮想テーブルの構成は同一であり、その要素数が異なる。
【００３４】
図９は全体仮想テーブルの一例を示す図である。全体仮想テーブルは、計算機システムの管理者が操作端末３００を介して、システムを稼動したままストレージ装置を仮想ストレージに割り当てた時点で、中央制御装置２００内の処理部２１０により生成され、メモリ２２０に格納され、仮想ポート部２０１０（２０１０Ａ、２０１０Ｂ）、仮想ＬＵ部２０２０、及びストレージ装置部２０３０で構成される。ここで、仮想ポート部２０１０Ａ、２０１０Ｂはそれぞれ、ローカル仮想テーブルに相当する。
【００３５】
仮想ポート部２０１０は、仮想ストレージのポート情報（ポートＩＤとポートＷＷＮ）を格納するヘッダ部２０４５、仮想ＬＵ情報（ＬＵＮ０〜ＬＵＮｎ）と仮想ＬＵ部２０２０へのリンク情報を格納するボディ部２０４０を有する。仮想ＬＵ部２０２０は、仮想ＬＵの構成を示す情報で、ヘッダ部２０５０に仮想ＬＵの容量を、ボディ部２０５５に論理ブロックアドレス（ＬＢＡ）と当該仮想ＬＵに対応する実ストレージ装置のボリュームとのマッピング情報を有する。ストレージ装置部２０３０はストレージ装置のポートＩＤ、ポートＷＷＮ、ＬＵＮ、仮想化スイッチ内ポート処理装置のアドレスを指すポート処理装置番号、属性情報などを有する。尚、図ではリンク情報の対応関係を示すため、２０７０、２０８０を記した。
【００３６】
次に仮想処理（図８のステップ１５６０）について説明する。ここでは、ポート処理装置３０Ａが通信フレームを受信し、当該フレームをストレージ装置３１０Ａに送信するための処理を行うものとする。まず、ポート処理装置３０Ａ内の処理部４０がローカル仮想テーブル（仮想ポート部）のポートＩＤを鍵にして検索する。検索の結果、当該ポートＩＤを含んだローカル仮想テーブルが存在しない場合、処理部４０は、中央処理装置２００に当該ポートＩＤを含んだローカル仮想テーブルの取得要求を出す。中央処理装置２００は、全体仮想テーブル内の、当該ローカル仮想テーブルを読み取り、ポート処理装置３０Ａに送信する。
【００３７】
ポート処理装置３０Ａは、該当するローカル仮想テーブル（中央処理装置２００に取得要求を出した場合は、中央処理装置２００から受信したローカル仮想テーブル）の情報部を基に、受信した通信フレームを変換する。すなわち、ストレージ装置３１０ＡのポートＩＤを送り先ポートＩＤに、ポート処理装置３０Ｂ（仮想イニシエータ）のポートＩＤを送り元ポートＩＤに変換し、更に、仮想ＬＵ部のマッピング情報をもとにＬＢＡ変換を行う。その後、当該フレームをポート処理装置３０Ｂに送信する。
２．３  ネームテーブル及びルーティングテーブルの更新
仮想化スイッチ２０運用時には不定期でネームテーブル２３０及びルーティングテーブル７０を更新する必要性が生ずる。そこで、当該テーブルの更新動作について説明する。
【００３８】
これらのテーブルの更新は、計算機システム内の構成が変更になったときや、障害が生じたときに実施される。同事象の発生は、仮想化スイッチ２０もしくはスイッチ５００により検出される。仮想化スイッチ２０単独で同事象を検出した場合は基より、外部スイッチ５００が同事象を検出した場合でも前記ＲＳＣＮにより、仮想化スイッチ２０は同事象の発生を検知することができる。仮想化スイッチ２０内では同事象の発生が中央処理装置２００に通知される。中央処理装置２００内の処理部２１０は、当該通知情報を解析し、ノードの情報に影響があるか否かをネームテーブル２３０のエントリと前記通知内容と比較することで調査する。ネームテーブル２３０の調査の結果、影響が無い場合は前記の通知を破棄し、仮想化スイッチ２０は待機状態に戻る。影響がある場合、処理部２１０は、該当するノードの情報の変更（例えば電源断などによるホスト１０の消滅）をネームテーブル２３０に対し行う。詐称ＡがＹｅｓになっているエントリを削除する場合、同ノードが復活したときの管理者の手続きを削減するために、単純に当該エントリの削除を行うのではなく、同エントリの無効化を実施するようにしても良い。
【００３９】
次に処理部２１０は、ルーティングテーブル７０の更新も実施する。この更新は、中央制御装置２００内のルーティングテーブル７０については処理部２１０が実施し、各ポート処理装置３０に前記ルーティングテーブル７０の複製を送信する。各ポート処理装置３０では、当該複製を、当該ポート処理装置３０内のメモリ６０に格納する。仮想ストレージに割り当てたストレージ装置３１０に変更があった場合、処理部２１０は操作端末３００に対し通知し、計算機システムの管理者に対応を依頼する。
【００４０】
本発明はスイッチ機能を備えた記憶装置システムへの適用も可能である。ここでいうスイッチ機能とは、記憶装置システム内部にスイッチを備え、当該システムに接続された物理ストレージ装置をホストに見せる機能のことである。
【００４１】
図１０は、記憶装置システム２５００と１以上のホスト１０を有した計算機システムの一例を示している。ホスト１０と、物理ストレージ３１０はスイッチ５００を介して記憶装置システムと接続されている。記憶装置システムは外部ノードとデータの送受信を行うポート処理装置２５１０、データを格納する記憶装置とそれを制御する記憶制御装置とを有する記憶装置サブセット２５４０、及びポート処理装置と記憶装置サブセット間のデータの経路制御を行うスイッチ２５３０とを有する。
【００４２】
記憶装置システムを既存ＳＡＮに計算機システム無停止で導入したい場合に、本発明を利用する。記憶装置システムでは、本発明で示したネームサービスをスイッチ２５３０が実施し、ルーティング及び仮想処理を各ポート処理装置２５１０が実施する。
【００４３】
【発明の効果】
本発明によれば、計算機システムへの導入を可能とする仮想化スイッチを提供することができる。また、導入した仮想化スイッチが既存ストレージ装置を仮想ストレージとして割り当てた際、システムを稼動したまま、ホストからの仮想ストレージに対するアクセスを可能とする仮想化スイッチを提供することができる。
【図面の簡単な説明】
【図１】仮想化スイッチを備えた計算機システム。
【図２】本発明が適用可能な計算機システムの構成例。
【図３】仮想化スイッチ導入後の計算機システムの構成例。
【図４】仮想化スイッチの導入手続きの処理フロー。
【図５】ネームサービスで使用するネームテーブル。
【図６】ネームサービス動作手順を示す処理フロー。
【図７】ルーティングで使用するルーティングテーブル。
【図８】ルーティングの動作手順を示す処理フロー。
【図９】仮想処理時に利用する全体仮想テーブル。
【図１０】記憶装置システムを含んだ計算機システムの構成例。
【符号の説明】
１０：ホスト計算機、２０：仮想化スイッチ、３０：ポート処理装置、４０：ポート処理装置内処理部、５０：  ポート処理装置内ポート部、６０：ポート処理装置内メモリ、７０：ルーティングテーブル、８０：ローカル仮想テーブル、２００：中央制御装置、２１０：中央制御装置内処理部、２２０：中央制御装置内メモリ、２３０：ネームテーブル、２４０：全体仮想テーブル、３００：操作端末、３１０：ストレージ装置、５００：スイッチ。
【図１】
2005025485.tif 000003
【図２】
2005025485.tif 000004
【図３】
2005025485.tif 000005
【図４】
2005025485.tif 000006
【図５】
2005025485.tif 000007
【図６】
2005025485.tif 000008
【図７】
2005025485.tif 000009
【図８】
2005025485.tif 000010
【図９】
2005025485.tif 000011
【図１０】
2005025485.tif 000012