(57)【要約】【課題】本発明のストレージシステムは、ホストとストレージとの間のセッションを維持しながら、シークレットを変更可能である。【解決手段】管理者は、新シークレットをホストＨＤ及びストレージＳＤにそれぞれ設定する。セッション管理部ＨＤ３は、新シークレットを用いたセッションの確立をストレージＳＤに要求する。セッション管理部ＳＤ３は、認証後に、新シークレットを用いたセッションを確立する。シークレット変更前に発行された旧コマンドの応答は、旧シークレットを用いるセッションＳａを介して、ストレージＳＤからホストＨＤに送信される。シークレット変更後の新コマンドは、新シークレットを用いるセッションＳｂを介してホストＨＤからストレージＳＤに送信される。旧コマンドの処理が全て完了した場合、旧シークレットセッションは切断される。【選択図】図１
2008009777.tif 000002
【特許請求の範囲】
【請求項１】
第１コンピュータ装置と第２コンピュータ装置とを双方向通信可能に接続したコンピュータシステムであって、
前記第２コンピュータ装置は、前記第１コンピュータ装置から受領した認証情報に基づいて、前記第１コンピュータ装置が正当なアクセス権限を有するか否かを判定し、前記第１コンピュータ装置が正当なアクセス権限を有する場合には、前記第１コンピュータ装置による前記第２コンピュータ装置の利用を許可するようになっており、
前記第１コンピュータ装置と前記第２コンピュータ装置とを接続するパスに設定されるセッションを管理するためのセッション管理部を設け、
前記セッション管理部は、
前記パスに設けられ、変更前の認証情報を用いる第１セッションを介して、前記認証情報の変更が要求されるよりも前に実行中のデータ処理を実行させ、
前記パスに設けられ、変更後の認証情報を用いる第２セッションを介して、前記認証情報の変更が要求された後に発生したデータ処理を実行させることにより、
前記第１コンピュータ装置と前記第２コンピュータ装置との間のセッションを維持しながら、前記認証情報を変更させるコンピュータシステム。
【請求項２】
前記セッション管理部は、
（１）前記第１コンピュータ装置と前記第２コンピュータ装置との間に、変更前の認証情報を用いる第１セッションと、変更後の認証情報を用いる第２セッションとをそれぞれ設定し、
（２）前記認証情報の変更前に実行中のデータ処理は前記第１セッションを用いて行い、前記認証情報の変更後の新たなデータ処理は前記第２セッションを用いて行い、
（３）前記認証情報の変更前に実行中のデータ処理が完了した場合に、前記第１セッションを切断させる請求項１に記載のコンピュータシステム。
【請求項３】
前記第１セッション及び前記第２セッションは、前記第１コンピュータ装置と前記第２コンピュータ装置とを接続する同一のパス上にそれぞれ設けられる請求項１に記載のコンピュータシステム。
【請求項４】
前記認証情報には、ユーザを識別するためのユーザ識別情報と、このユーザ識別情報に対応付けられる変更可能なパスワード情報とが含まれている請求項１に記載のコンピュータシステム。
【請求項５】
前記第１コンピュータ装置はホストコンピュータであり、前記第２コンピュータ装置は、前記ホストコンピュータに記憶領域を提供するストレージ装置である請求項１に記載のコンピュータシステム。
【請求項６】
前記第１コンピュータ装置はストレージ装置であり、前記第２コンピュータ装置は、前記ストレージ装置に記憶領域を提供する他のストレージ装置である請求項１に記載のコンピュータシステム。
【請求項７】
前記第１コンピュータ装置及び前記第２コンピュータ装置に前記変更後の認証情報をそれぞれ通知するための第３コンピュータ装置を、前記第１コンピュータ装置及び前記第２コンピュータ装置のそれぞれに双方向通信可能に接続し、
前記第３コンピュータ装置から前記変更後の認証情報が前記第１コンピュータ装置及び前記第２コンピュータ装置のそれぞれに通知された場合に、前記（１）〜（３）のプロセスが実行される請求項２に記載のコンピュータシステム。
【請求項８】
前記第１コンピュータ装置または前記第２コンピュータ装置のいずれか一方が、前記変更後の認証情報を相手方のコンピュータ装置に通知することにより、前記（１）〜（３）のプロセスが実行される請求項２に記載のコンピュータシステム。
【請求項９】
前記第１コンピュータ装置と前記第２コンピュータ装置との間には複数のパスがそれぞれ設けられており、
前記複数のパスのそれぞれについて、前記第１セッション及び前記第２セッションが設けられる請求項１に記載のコンピュータシステム。
【請求項１０】
前記第１コンピュータ装置と前記第２コンピュータ装置との間には複数のパスがそれぞれ設けられており、
前記複数のパスのうち、前記実行中のデータ処理が完了するまでの時間が少ないパスから順番に選択して、前記（１）〜（３）のプロセスを実行させる請求項２に記載のコンピュータシステム。
【請求項１１】
前記複数のパスのうち実行中のコマンドの数が少ないパスから順番に選択される請求項１０に記載のコンピュータシステム。
【請求項１２】
前記第１コンピュータ装置と前記第２コンピュータ装置との間には複数のパスがそれぞれ設けられており、
前記複数のパスのそれぞれについて前記（１）のプロセスをそれぞれ実行させることにより、前記複数のパスの全てに前記第１セッション及び前記第２セッションをそれぞれ設定した後で、
前記複数のパスのそれぞれについて前記（２）のプロセス及び前記（３）のプロセスをそれぞれ並行に実行させる請求項２に記載のコンピュータシステム。
【請求項１３】
前記認証情報を管理するための第４コンピュータ装置を、少なくとも前記第２コンピュータ装置に双方向通信可能に接続し、
前記第２コンピュータ装置は、前記第１コンピュータ装置から前記認証情報の変更を要求された場合、前記第１コンピュータ装置から通知された前記変更後の認証情報が正しいか否かを前記第４コンピュータ装置に問合せ、前記第４コンピュータ装置が前記変更後の認証情報が正しい旨を回答した場合に、前記（１）〜（３）のプロセスが実行される請求項２に記載のコンピュータシステム。
【請求項１４】
前記セッション管理部は、前記第１セッションを使用するデータ処理が完了した後で前記第１セッションを切断し、次に、前記第２セッションを前記パスに設定するようになっており、前記第１セッションを使用するデータ処理の実行中に新たなデータ処理の実行要求を受け付けた場合には、この新たなデータ処理の実行要求を保留しておき、前記第２セッションを設定した後で、前記保留された実行要求を前記第２セッションを用いて処理させる請求項１に記載のコンピュータシステム。
【請求項１５】
前記第１コンピュータ装置は、
前記第２コンピュータ装置と接続するための第１通信ポートと、
前記第１通信ポートを介して前記第２コンピュータ装置との間に設定されるパスを用いて、前記第２コンピュータ装置と通信を行うための第１通信制御部と、
前記パスに設定されるセッションを用いたデータ転送を前記第１通信制御部を介して管理するための第１セッション管理部と、
前記パスに設定されるセッションと、このセッションを使用している実行中のコマンドの数及び前記設定されるセッションが前記第１セッションであるか前記第２セッションであるかの種別を示す識別情報とを対応付けて管理する第１セッションテーブルと、
変更前の認証情報及び変更後の認証情報を管理する第１認証情報管理テーブルと、を備えて構成され、
前記第２コンピュータ装置は、
前記第１通信ポートに前記パスを介して接続される第２通信ポートと、
前記第２通信ポートを介して前記第１コンピュータ装置と通信を行うための第２通信制御部と、
前記セッションを用いたデータ転送を前記第２通信制御部を介して管理するための第２セッション管理部と、
前記パスに設定される前記セッションと、このセッションが前記第１セッションであるか前記第２セッションであるかの種別を示す識別情報とを対応付けて管理する第２セッションテーブルと、
変更前の認証情報及び変更後の認証情報を管理する第２認証情報管理テーブルと、を備えて構成され、
前記変更後の認証情報が前記第１コンピュータ装置及び前記第２コンピュータ装置にそれぞれ入力された場合には、前記第１認証情報管理テーブル及び前記第２認証情報管理テーブルに前記変更後の認証情報をそれぞれ記憶させ、
前記第１セッション管理部は、前記変更後の認証情報を用いた前記第２セッションの確立を前記第２セッション管理部に要求し、
前記第２セッション管理部は、前記第１セッション管理部からの前記要求に含まれる前記変更後の認証情報の認証に成功した場合に、前記第２セッションを確立し、この確立した第２セッションに関する情報を前記第２セッションテーブルに登録し、
前記第１セッション管理部は、前記第２セッションの確立を確認した場合は、この確立された第２セッションに関する情報を前記第１セッションテーブルに登録し、
前記第１セッション管理部は、前記第２セッションの確立後に新たに発行する新コマンドは前記第２セッションを介して前記第２コンピュータ装置に送信し、
前記第２セッション管理部は、前記第２セッションの確立前に前記第１コンピュータ装置から受領した旧コマンドに対する応答を前記第１セッションを介して前記第１コンピュータ装置に送信し、
前記第１セッション管理部は、前記旧コマンドに関する全ての応答を前記第２コンピュータ装置から受信した場合に、前記第１セッションの切断を前記第２セッション管理部に要求し、
前記第２セッション管理部は、前記第１セッション管理部から受領した前記第１セッションの切断要求に従って前記第１セッションを切断する、請求項１に記載のコンピュータシステム。
【請求項１６】
通信ネットワークを介して双方向通信可能に接続された第１コンピュータ装置及び第２コンピュータ装置を備えるコンピュータシステムにおいて認証情報を変更させるための方法であって、
前記第１コンピュータ装置に変更後の認証情報を入力するステップと、
前記第２コンピュータ装置に前記変更後の認証情報を入力するステップと、
前記第１コンピュータ装置と前記第２コンピュータ装置とを接続するパス内に、前記変更後の認証情報を使用する第２セッションを確立させるステップと、
前記第２セッションが確立された後で前記第１コンピュータ装置から発行される新コマンドは、前記第２セッションを介して処理させるステップと、
前記第２セッションが確立される前に前記第１コンピュータ装置から発行された旧コマンドは、変更前の認証情報を用いる第１セッションを介して処理させるステップと、
前記旧コマンドの処理が全て完了した場合には、前記第１セッションを切断させるステップと、
をそれぞれ実行するコンピュータシステムの認証情報変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム及びコンピュータシステムの認証情報を変更するための方法に関する。
【背景技術】
【０００２】
企業等の組織では、多量のデータを管理するために、ホストコンピュータ（以下「ホスト」）とは別に構成されたストレージ装置を用いている。例えば、金融機関や病院等のような組織では、多くの顧客に関する売買データや診療データ等を長期間保存する必要があるため、大容量のストレージ装置が必要とされる。
【０００３】
各ホストがストレージ装置をそれぞれ有するよりも、複数のホストが一つまたは複数のストレージ装置を共同で使用する方が、記憶領域を有効に使用することができ、データを効率的に管理することができる。このため、例えば、企業やデータセンタ等のような大規模なデータを取り扱う組織では、ネットワークを介して複数のホストと複数のストレージ装置とを接続するSAN（Storage Area Network）が普及している。
【０００４】
従前のSANは、大容量のバースト転送に優れたファイバチャネル技術を用いて構成されている。このようなSANはFC-SANと呼ばれる。FC-SANは、FCP（ファイバチャネルプロトコル）に対応している専用の通信機器やケーブル等を用いるため、比較的安定したデータ転送を行うことができる。しかし、専用の通信機器等は高価格であり、FCPに精通した技術者を確保しにくい等の問題が指摘されている。
【０００５】
そこで、近年では、より広く普及しているIP（Internet Protocol）ネットワークを用いるIP-SANが注目されている。特に、IPネットワークの高速化及び大容量化が進展し、また、ギガビット級の通信を可能とするネットワークカードやスイッチの価格も低下したため、FC-SANに比肩する存在として注目を集めている。
【０００６】
IP-SANでは、例えば、SCSI（Small Computer System Interface）コマンドをTCP/IP（Transmission Control Protocol/Internet Protocol）でカプセル化し、このカプセル化されたパケットをIPネットワークを用いて送受信させる技術が知られている。この技術は、iSCSI技術と呼ばれる。iSCSIを用いることにより、ストレージ装置をIPネットワークに直接接続させることができる。
【０００７】
iSCSIでは、データの処理等を要求するノードをイニシエータ、要求された処理の応答を返すノードをターゲットと呼ぶ。例えば、ホストがイニシエータ、ストレージ装置がターゲットとなる。イニシエータ及びターゲットは、iSCSI名と呼ばれる識別子によって特定される。イニシエータは、ターゲットにログインすることにより、ターゲットの提供するサービス（ストレージサービス）を利用することができる。
【０００８】
イニシエータに、ターゲットのIPアドレスやiSCSI名等を予め登録しておくことにより、イニシエータはターゲットへのセッションを確立させることができる。セッションとは、物理的な通信経路に設定される論理的な通信経路である。
【０００９】
セッション確立に際して、イニシエータとターゲットとの間で認証が行われる。不正なアクセスを防止するためである。認証は、ターゲットまたはイニシエータの少なくともいずれか一方または両方で行うことができる。認証は、例えば、イニシエータから通知されたユーザ名（ユーザID）及びシークレット（パスワード）が、ターゲットに登録されているユーザ名及びシークレットに一致するか否かに基づいて、行われる。ユーザ名及びシークレットの両方が一致する場合、アクセス権限が認められる。RFC(Request For Comments)3720 8.2.1.項等に記載されているように、シークレットとは、１２バイト(96bit)〜１６バイト(128bit)の長さの値を有するパスワード情報の一種である。
【００１０】
iSCSIノード（ターゲット及びイニシエータ）は、上述のようにIPネットワークに直接接続されるため、不正アクセスを防止するために、シークレットを定期的に変更するのが好ましい。なお、ネットワークストレージに関する技術ではないが、管理装置によってホスト及び端末のパスワードをそれぞれ変更できるようにした技術は知られている（特許文献１）。
【特許文献１】特開平８−２０２６５８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
前記文献に記載の従来技術では、管理装置によってホスト及び端末のパスワードを簡単に変更可能である。しかし、iSCSIの場合は、その仕様上、シークレットを変更するためにはセッションをいったん切断した後、再び接続させる必要がある。シークレットの変更に際してセッションの切断が必要となるため、管理者は、ホスト上のアプリケーションプログラムを一時停止させてから、シークレットの変更作業を行う必要がある。
【００１２】
しかしながら、iSCSIを用いるコンピュータシステムは、２４時間３６５日の無停止運転を要求されることが多い。従って、ホスト上のアプリケーションプログラムを停止させることなく、シークレットを変更させる技術が求められている。
【００１３】
そこで、本発明の目的は、第１コンピュータ装置を停止させることなく、認証情報を変更できるようにしたコンピュータシステム及びコンピュータシステムの認証情報変更方法を提供することにある。本発明の他の目的は、複数のパスが設定されている場合でも、認証情報を比較的短い時間で変更できるようにしたコンピュータシステム及びコンピュータシステムの認証情報変更方法を提供することにある。本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１４】
上記課題を解決すべく、本発明の一つの観点に従うコンピュータシステムは、第１コンピュータ装置と第２コンピュータ装置とを双方向通信可能に接続したコンピュータシステムであって、第２コンピュータ装置は、第１コンピュータ装置から受領した認証情報に基づいて、第１コンピュータ装置が正当なアクセス権限を有するか否かを判定し、第１コンピュータ装置が正当なアクセス権限を有する場合には、第１コンピュータ装置による第２コンピュータ装置の利用を許可するようになっており、第１コンピュータ装置と第２コンピュータ装置とを接続するパスに設定されるセッションを管理するためのセッション管理部を設ける。そして、セッション管理部は、  パスに設けられ、変更前の認証情報を用いる第１セッションを介して、認証情報の変更が要求されるよりも前に実行中のデータ処理を実行させ、パスに設けられ、変更後の認証情報を用いる第２セッションを介して、認証情報の変更が要求された後に発生したデータ処理を実行させることにより、第１コンピュータ装置と第２コンピュータ装置との間のセッションを維持しながら、認証情報を変更させる。
【００１５】
本発明の実施形態では、セッション管理部は、（１）第１コンピュータ装置と第２コンピュータ装置との間に、変更前の認証情報を用いる第１セッションと、変更後の認証情報を用いる第２セッションとをそれぞれ設定し、（２）認証情報の変更前に実行中のデータ処理は第１セッションを用いて行い、認証情報の変更後の新たなデータ処理は第２セッションを用いて行い、（３）認証情報の変更前に実行中のデータ処理が完了した場合に、第１セッションを切断させる。
【００１６】
本発明の実施形態では、第１セッション及び第２セッションは、第１コンピュータ装置と第２コンピュータ装置とを接続する同一のパス上にそれぞれ設けられる。
【００１７】
本発明の実施形態では、認証情報には、ユーザを識別するためのユーザ識別情報と、このユーザ識別情報に対応付けられる変更可能なパスワード情報とが含まれている。
【００１８】
本発明の実施形態では、第１コンピュータ装置はホストコンピュータであり、第２コンピュータ装置は、ホストコンピュータに記憶領域を提供するストレージ装置である。
【００１９】
本発明の実施形態では、第１コンピュータ装置はストレージ装置であり、第２コンピュータ装置は、ストレージ装置に記憶領域を提供する他のストレージ装置である。
【００２０】
本発明の実施形態では、第１コンピュータ装置及び第２コンピュータ装置に変更後の認証情報をそれぞれ通知するための第３コンピュータ装置を、第１コンピュータ装置及び第２コンピュータ装置のそれぞれに双方向通信可能に接続し、第３コンピュータ装置から変更後の認証情報が第１コンピュータ装置及び第２コンピュータ装置のそれぞれに通知された場合に、（１）〜（３）のプロセスが実行される。
【００２１】
本発明の実施形態では、第１コンピュータ装置または第２コンピュータ装置のいずれか一方が、変更後の認証情報を相手方のコンピュータ装置に通知することにより、（１）〜（３）のプロセスが実行される。
【００２２】
本発明の実施形態では、第１コンピュータ装置と第２コンピュータ装置との間には複数のパスがそれぞれ設けられており、複数のパスのそれぞれについて、第１セッション及び第２セッションが設けられる。
【００２３】
本発明の実施形態では、第１コンピュータ装置と第２コンピュータ装置との間には複数のパスがそれぞれ設けられており、複数のパスのうち、実行中のデータ処理が完了するまでの時間が少ないパスから順番に選択して、（１）〜（３）のプロセスを実行させる。
【００２４】
本発明の実施形態では、複数のパスのうち実行中のコマンドの数が少ないパスから順番に選択される。
【００２５】
本発明の実施形態では、第１コンピュータ装置と第２コンピュータ装置との間には複数のパスがそれぞれ設けられており、複数のパスのそれぞれについて（１）のプロセスをそれぞれ実行させることにより、複数のパスの全てに第１セッション及び第２セッションをそれぞれ設定した後で、複数のパスのそれぞれについて（２）のプロセス及び（３）のプロセスをそれぞれ並行に実行させる。
【００２６】
本発明の実施形態では、認証情報を管理するための第４コンピュータ装置を、少なくとも第２コンピュータ装置に双方向通信可能に接続し、第２コンピュータ装置は、第１コンピュータ装置から認証情報の変更を要求された場合、第１コンピュータ装置から通知された変更後の認証情報が正しいか否かを第４コンピュータ装置に問合せ、第４コンピュータ装置が変更後の認証情報が正しい旨を回答した場合に、（１）〜（３）のプロセスが実行される。
【００２７】
本発明の実施形態では、セッション管理部は、第１セッションを使用するデータ処理が完了した後で第１セッションを切断し、次に、第２セッションをパスに設定するようになっており、第１セッションを使用するデータ処理の実行中に新たなデータ処理の実行要求を受け付けた場合には、この新たなデータ処理の実行要求を保留しておき、第２セッションを設定した後で、保留された実行要求を第２セッションを用いて処理させる。
【００２８】
本発明の実施形態では、第１コンピュータ装置は、第２コンピュータ装置と接続するための第１通信ポートと、第１通信ポートを介して第２コンピュータ装置との間に設定されるパスを用いて、第２コンピュータ装置と通信を行うための第１通信制御部と、パスに設定されるセッションを用いたデータ転送を第１通信制御部を介して管理するための第１セッション管理部と、パスに設定されるセッションと、このセッションを使用している実行中のコマンドの数及び設定されるセッションが第１セッションであるか第２セッションであるかの種別を示す識別情報とを対応付けて管理する第１セッションテーブルと、変更前の認証情報及び変更後の認証情報を管理する第１認証情報管理テーブルと、を備えて構成され、第２コンピュータ装置は、第１通信ポートにパスを介して接続される第２通信ポートと、第２通信ポートを介して第１コンピュータ装置と通信を行うための第２通信制御部と、セッションを用いたデータ転送を第２通信制御部を介して管理するための第２セッション管理部と、パスに設定されるセッションと、このセッションが第１セッションであるか第２セッションであるかの種別を示す識別情報とを対応付けて管理する第２セッションテーブルと、変更前の認証情報及び変更後の認証情報を管理する第２認証情報管理テーブルと、を備えて構成され、変更後の認証情報が第１コンピュータ装置及び第２コンピュータ装置にそれぞれ入力された場合には、第１認証情報管理テーブル及び第２認証情報管理テーブルに変更後の認証情報をそれぞれ記憶させ、第１セッション管理部は、変更後の認証情報を用いた第２セッションの確立を第２セッション管理部に要求し、第２セッション管理部は、第１セッション管理部からの要求に含まれる変更後の認証情報の認証に成功した場合に、第２セッションを確立し、この確立した第２セッションに関する情報を第２セッションテーブルに登録し、第１セッション管理部は、第２セッションの確立を確認した場合は、この確立された第２セッションに関する情報を第１セッションテーブルに登録し、第１セッション管理部は、第２セッションの確立後に新たに発行する新コマンドは第２セッションを介して第２コンピュータ装置に送信し、第２セッション管理部は、第２セッションの確立前に第１コンピュータ装置から受領した旧コマンドに対する応答を第１セッションを介して第１コンピュータ装置に送信し、第１セッション管理部は、旧コマンドに関する全ての応答を第２コンピュータ装置から受信した場合に、第１セッションの切断を第２セッション管理部に要求し、第２セッション管理部は、第１セッション管理部から受領した第１セッションの切断要求に従って第１セッションを切断する。
【００２９】
本発明の他の観点に従う、通信ネットワークを介して双方向通信可能に接続された第１コンピュータ装置及び第２コンピュータ装置を備えるコンピュータシステムにおいて認証情報を変更させるための方法は、第１コンピュータ装置に変更後の認証情報を入力するステップと、第２コンピュータ装置に変更後の認証情報を入力するステップと、第１コンピュータ装置と第２コンピュータ装置とを接続するパス内に、変更後の認証情報を使用する第２セッションを確立させるステップと、第２セッションが確立された後で第１コンピュータ装置から発行される新コマンドは、第２セッションを介して処理させるステップと、第２セッションが確立される前に第１コンピュータ装置から発行された旧コマンドは、変更前の認証情報を用いる第１セッションを介して処理させるステップと、旧コマンドの処理が全て完了した場合には、第１セッションを切断させるステップと、をそれぞれ実行する。
【００３０】
本発明の構成要素は、その全部または一部をコンピュータプログラムとして構成できる場合がある。このコンピュータプログラムは、記録媒体に固定して譲渡等することができるほかに、インターネット等の通信ネットワークを介して伝送することもできる。
【発明を実施するための最良の形態】
【００３１】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の全体概念を示す説明図である。本実施形態では、コンピュータシステムとしてのストレージシステムを例に挙げて説明する。
【００３２】
このストレージシステムは、例えば、ホスト装置ＨＤとストレージ装置ＳＤとを通信ネットワークを介して接続することにより構成される。ホスト装置（以下、ホスト）ＨＤは、例えば、サーバコンピュータ等のようなコンピュータ装置として構成されており、イニシエータとなる。ホストＨＤは「第１コンピュータ装置」に対応する。
【００３３】
ホストＨＤは、例えば、アプリケーションプログラムＨＤ１と、パス管理部ＨＤ２と、セッション管理部ＨＤ３と、iSCSI制御部ＨＤ４及び通信ポートＨＤ５と、セッションテーブルＴ１Ｈ及びシークレットテーブルＴ２Ｈを備えて構成される。
【００３４】
アプリケーションプログラムＨＤ１は、例えば、電子メール管理ソフトウェア、動画配信ソフトウェア、売上管理ソフトウェア、顧客管理ソフトウェア等のようなソフトウェアであり、図外のクライアント端末に対してデータ処理のサービスを提供する。
【００３５】
パス管理部ＨＤ２は、ホストＨＤとストレージ装置（以下、ストレージと略記する場合がある）ＳＤとの間のパスを管理するためのものである。例えば、ホストＨＤとストレージＳＤとの間に複数のパスが設けられている場合、パス管理部ＨＤ２は、いずれのパスを用いてコマンドやデータの転送を行うかを決定することができる。これにより、各パス間で負荷を分散させることができる。なお、図１では、説明の便宜上、一つのパスＰ１のみを示すが、後述の実施例からも明らかなように、本発明は複数のパスを備える場合にも適用される。
【００３６】
セッション管理部ＨＤ３は、ストレージＳＤとのセッションを確立し、確立したセッションを管理するものである。セッション管理部ＨＤ３は、後述のように、旧シークレットを用いたセッション（旧シークレットセッション）と、新シークレットを用いたセッション（新シークレットセッション）との複数種類のセッションを管理する。
【００３７】
iSCSI制御部ＨＤ４は、iSCSIに基づく通信を制御するものである。通信ポート（以下、ポート）ＨＤ５は、ストレージＳＤのポートＳＤ１と通信を行うためのもので、ホストＨＤのポートＨＤ５とストレージＳＤのポートＳＤ１との間には、パスＰ１が設定されている。なお、前記FCPに対応する機器が認証を行うための規格として、FC-SP(Fibre Channel Security Protocol)が標準化されつつある。従って、本発明は，iSCSIが用いられるIP-SANだけではなく、FCが用いられるFC-SANにも適用可能である。
【００３８】
セッションテーブルＴ１Ｈは、ホストＨＤとストレージＳＤとの間に設けられたセッションを管理するためのテーブルである。セッションテーブルＴ１Ｈは、例えば、パスを識別するための情報と、セッションを識別するための情報と、そのセッションを使用して実行されているコマンド（仕掛中コマンド）を識別するための情報と、そのセッションが新シークレットセッションであるか旧シークレットセッションであるかを区別するための情報（バージョン）とを対応付けて管理する。
【００３９】
シークレットテーブルＴ２Ｈは、ホストＨＤがストレージＳＤにログインする際の認証情報を管理するためのテーブルである。認証情報としては、例えば、ユーザ名（ユーザＩＤ）及びシークレットを挙げることができる。シークレットとは、複数桁の文字列（数字を含む）であり、パスワード情報の一種である。より正確には、シークレットは、バイト列であるが、説明の便宜のため、文字列の場合を中心に説明する。シークレットテーブルＴ２Ｈは、ユーザ名と、シークレットと、そのシークレットが旧シークレットであるか新シークレットであるかを区別するためのバージョンとを対応付けて管理する。なお、ユーザ名に代えて、または、ユーザ名と共に、ホストＨＤを識別するためのコンピュータ識別子を採用することもできる。即ち、ユーザ名とシークレットとの組合せによって認証する構成、コンピュータ識別子とシークレットの組合せによって認証する構成、ユーザ名とコンピュータ識別子及びシークレットの組合せによって認証する構成、のいずれの構成でもよい。
【００４０】
ストレージＳＤの構成を説明する。ストレージＳＤは、ホストＨＤに記憶領域を提供するためのコンピュータ装置である。ストレージＳＤは、ストレージサブシステム、ディスクアレイ装置とも呼ばれる。ストレージＳＤは、例えば、ポートＳＤ１と、iSCSI制御部ＳＤ２と、セッション管理部ＳＤ３と、記憶デバイスＳＤ４と、セッションテーブルＴ１Ｓ及びシークレットテーブルＴ２Ｓを備えて構成される。
【００４１】
ポートＳＤ１は、ホストＨＤのポートＨＤ５と通信を行うためのものである。iSCSI制御部ＳＤ２は、iSCSIに基づく通信を制御するものである。セッション管理部ＳＤ３は、ホストＨＤとの間にセッションを確立させ、この確立されたセッションを管理するものである。
【００４２】
記憶デバイスＳＤ４は、ホストＨＤにより使用される種々のデータ群を記憶する。記憶デバイスＳＤ４としては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
【００４３】
記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、FC（Fibre Channel）ディスク、SCSI（Small Computer System Interface）ディスク、SATAディスク、ATA（AT Attachment）ディスク、SAS（Serial Attached SCSI）ディスク等を用いることができる。
【００４４】
記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM（Ferroelectric Random Access Memory）、MRAM（Magnetoresistive Random Access Memory）、相変化メモリ（Ovonic Unified Memory）、RRAM（Resistance RAM）」等の種々のメモリデバイスを利用可能である。
【００４５】
セッションテーブルＴ１Ｓは、セッションを管理するためのテーブルである。セッションテーブルＴ１Ｓは、例えば、パスを識別するための情報と、セッションを識別するための情報と、そのセッションが新シークレットセッションであるか旧シークレットセッションであるかを区別するためのバージョンとを対応付けて管理する。
【００４６】
シークレットテーブルＴ２Ｓは、認証情報を管理するためのテーブルである。シークレットテーブルＴ２Ｓは、ホストＨＤのシークレットテーブルＴ２Ｈと同様に、ユーザ名とシークレット及びバージョンを管理する。
【００４７】
次に、ストレージシステムで使用される認証情報（シークレット）を変更する場合の動作を説明する。ホストＨＤがストレージＳＤを使用する場合、ホストＨＤは、ストレージＳＤのIPアドレスやiSCSI名を明示して、ストレージＳＤとの間にTCPコネクションを確立する。ホストＨＤは、ユーザ名及びシークレットを明示して、ストレージＳＤへのログインを試みる。
【００４８】
ストレージＳＤは、ホストＨＤからログインを要求されると、ホストＨＤから通知されたユーザ名及びシークレットが、シークレットテーブルＴ２Ｓに登録されているか否かを照合する。照合の結果、ホストＨＤが認証されると、ホストＨＤとストレージＳＤとの間のセッションが確立される。ホストＨＤは、確立されたセッションを用いて、記憶デバイスＳＤ４に対してデータの読み書きを行うことができる。
【００４９】
ホストＨＤは、クライアント端末からの要求に応じて、リードコマンドやライトコマンドをストレージＳＤに発行する。リードコマンドの場合、ストレージＳＤは、記憶デバイスＳＤ４からデータを読み出し、この読み出されたデータをホストＨＤに転送する。ライトコマンドの場合、ストレージＳＤは、ホストＨＤから受信したデータを記憶デバイスＳＤ４に書き込む。
【００５０】
ところで、ストレージＳＤは、iSCSIに基づく通信を行うもので、IPネットワークを介してホストＨＤに接続される。従って、IPネットワークに接続されている他のコンピュータ装置から不正にアクセスされる可能性を排除することはできない。そこで、安全性を維持するために、シークレットは、例えば定期的に変更されるのが好ましい。以下の説明では、シークレットの変更を要求する前に使用されていたシークレットを旧シークレットと、変更された新しいシークレットを新シークレットと呼ぶ。
【００５１】
ストレージシステムの管理者は、シークレットを変更させる場合、新シークレットをホストＨＤ及びストレージＳＤにそれぞれ設定する（第１プロセス（１））。新シークレットは、シークレットテーブルＴ２Ｈ，Ｔ２Ｓにそれぞれ登録される。新シークレットには、新しいシークレットであることを示すバージョンが設定される。
【００５２】
管理者から新シークレットが通知され、旧シークレットから新シークレットへの変更が要求されると、ホストＨＤのセッション管理部ＨＤ３は、新シークレットを用いたセッションの確立をストレージＳＤに要求する。ストレージＳＤのセッション管理部ＳＤ３は、ホストＨＤから通知された新シークレット及びユーザ名とシークレットテーブルＴ２Ｓに登録されている新シークレット及びユーザ名とを照合する。ホストＨＤから通知された新シークレット及びユーザ名とストレージＳＤに登録されている新シークレット及びユーザ名が一致する場合、新シークレットを用いたセッションがパスＰ１内に確立される。
【００５３】
なお、SAN１０を流れるシークレットの盗み見を防止するために、ホストＨＤは新シークレットそのものではなく、新シークレットから何らかのアルゴリズムに従って導出された特定の値(例えば，新シークレットのハッシュ値)とユーザ名をストレージＳＤへ送信する場合がある。この場合、ストレージＳＤのセッション管理部ＳＤ３は、登録されている新シークレットからホストＨＤと同じアルゴリズムに従って特定の値を導出し、ホストＨＤから送信された特定の値と照合する。
【００５４】
これにより、ホストＨＤとストレージＳＤとは、新旧のシークレットを使用する２種類のセッション（旧シークレットセッションＳａ及び新シークレットセッションＳｂ）で接続されることになる。
【００５５】
ここで、iSCSIの仕様上では、シークレットを変更する際には、セッションをいったん切断してから、新シークレットを用いたセッションを改めて確立する必要がある。従って、通常のiSCSIを用いたストレージシステムでは、シークレットを変更するたびに、ホストＨＤのアプリケーションプログラムＨＤ１をいったん停止させる必要がある。これに対し、本実施形態では、アプリケーションプログラムＨＤ１を停止させることなく、旧シークレットから新シークレットへ変更するための技術を提案する。
【００５６】
旧シークレットから新シークレットへ変更するよりも前に、ホストＨＤからストレージＳＤに発行されたコマンド（旧コマンド）は、ストレージＳＤによって処理されて、応答が返される。旧コマンドに対する応答は、旧シークレットを用いる旧シークレットセッションを介して行われる。
【００５７】
また、旧シークレットから新シークレットへの変更後に、ホストＨＤからストレージＳＤに発行されるコマンド（新コマンド）は、新シークレットを用いる新シークレットセッションを介して、ストレージＳＤに送信される。
【００５８】
このように、シークレット変更時の第２プロセス（２）では、旧コマンドに対する応答に旧シークレットセッションを使用し、新コマンドの送信に新シークレットセッションを使用する。
【００５９】
ストレージＳＤが旧コマンドの処理を全て完了した場合、旧シークレットを用いるセッションは不要となる。そこで、第３プロセス（３）では、旧シークレットセッションを切断し、セッションテーブルＴ１Ｈ，Ｔ１Ｓから旧シークレットに関するエントリをそれぞれ削除する。
【００６０】
このように構成される本実施形態によれば、ホストＨＤとストレージＳＤとの間に、旧シークレットを用いるセッションと新シークレットを用いるセッションとを設定し、旧コマンドに対する応答には旧シークレットセッションを使用し、新コマンドの発行には新シークレットセッションを使用する。そして、旧コマンドの処理が全て完了した場合に、旧シークレットセッションを切断し、以後は新シークレットセッションに一本化する。従って、ホストＨＤのアプリケーションプログラムＨＤ１を停止させることなく、旧シークレットから新シークレットに変更させることができ、ストレージシステムの高可用性及びセキュリティ性または安全性を両立させることができる。
【００６１】
なお、ホストＨＤおよびストレージＳＤは、それぞれ第１ストレージＳＤ１及び第２ストレージＳＤ２であり、第１ストレージＳＤ１が、パスＰ１を通して、第１ストレージＳＤ１が備える記憶デバイスに格納されたデータを第２ストレージＳＤ２へ送信し、第２ストレージＳＤ２がそのデータを記憶デバイスＳＤ４に格納する構成でもよい。即ち、第１ストレージと第２ストレージとの２台のストレージ間でリモートコピーを行う場合にも、本発明によるシークレット変更方法を適用可能である。以下、本実施形態を詳細に説明する。
【実施例１】
【００６２】
図２は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、一つまたは複数のストレージ装置１（以下、ストレージ１と略記する場合がある）と、少なくとも一つの管理端末２と、少なくとも一つ以上のホスト３と、一つまたは複数のクライアント端末４と、を備えて構成される。
【００６３】
ネットワーク構成を説明する。ストレージ１とホスト３とは、例えば、iSCSIを用いるIP-SAN１０を介して接続される。ストレージ１の各ポートは、通信線１５を介してSAN１０にそれぞれ接続される。ホスト３は、通信線１７を介してSAN１０にそれぞれ接続される。管理端末２は、通信線１６を介してストレージ１に接続される。
【００６４】
ホスト３と端末４とは、例えば、LAN（Local Area Network）１１を介して接続されている。ホスト３は通信線１８を介してLAN１１に接続されており、端末４は通信線１９を介してLAN１１に接続されている。
【００６５】
なお、上述の通信線１５，１６，１７，１８，１９は、例えば、メタルケーブルや光ファイバケーブルのような有線として構成される。しかし、ホスト３と端末４，ホスト３とストレージ１，ストレージ１と管理端末２を無線で接続することも可能である。この場合は、通信線１５，１６，１７，１８，１９は省略される。
【００６６】
ストレージ１は、図１中のストレージＳＤに対応する。ストレージ１の構成は後述するが、ストレージ１はホスト３に記憶領域を提供する。管理端末２は、図１中の管理者によって操作されるコンピュータ装置である。管理者は、管理端末２を用いることにより、ストレージ１の構成変更等を行うことができる。ホスト３は、図１中のホストＨＤに対応する。ホスト３は、端末４からの要求に応じて、電子メールサービスや動画像配信サービス等の業務サービスを提供する。端末４は、例えば、パーソナルコンピュータや携帯情報端末、携帯電話等のようなコンピュータ装置として構成される。
【００６７】
図３は、ストレージ１の構成を示す説明図である。ストレージ１は、単体または複数の記憶デバイスを有する記憶装置システムであり、コントローラ１０７とディスク装置１０３とに大別することができる。ディスク装置１０３は、図１中の記憶デバイスＳＤ４に対応する。
【００６８】
本実施例では、ディスク装置１０３として、ハードディスクデバイスを例に挙げるが、上述のように、フラッシュメモリデバイス等の他の記憶デバイスを用いてもよい。ディスク装置１０３は、ファイバチャネルケーブルのような通信線１０６を介して、コントローラ１０７に接続される。なお、複数のディスク装置１０３から、RAID（Redundant Array of Independent Disks）構成を得ることもできる。
【００６９】
コントローラ１０７の構成を説明する。コントローラは、ホスト３から受信したコマンドに従って、ディスク装置１０３へのデータの書込みや読出しを制御する。コントローラ１０７は、例えば、不揮発性メモリ１００と、主メモリ１０１と、CPU（Central Processing Unit）１０４と、ディスクインターフェース（図中、インターフェースをI/Fと略記）１０５と、ポート１０８と、管理用のポート１０９とを備えて構成される。これら各メモリ１００，１０１、CPU１０４，ディスクインターフェース１０５、各ポート１０８，１０９は、バスのような通信線１０２を介して相互に接続されている。
【００７０】
不揮発性メモリ１００としては、例えば、フラッシュメモリ等のような書換可能な不揮発性のメモリを挙げることができる。このメモリ１００には、例えば、GUI（Graphical User Interface）制御プログラム１１１と、iSCSI制御プログラム１１２と、I/O（Input/Output）制御プログラム１１３と、セッション管理プログラム１１４と、セッションテーブル１２１及びシークレットテーブル１２２とを記憶させることができる。
【００７１】
各プログラム１１１，１１２，１１３，１１４は、不揮発性メモリ１００から主メモリ１０１に転送されて、CPU１０４により実行される。GUI制御プログラム１１１は、後述のように管理端末２に表示されるシークレット変更画面等を制御するものであり、管理者から入力された情報をセッション管理プログラム１１４に伝達する。
【００７２】
iSCSI制御プログラム１１２は、図１中のiSCSI制御部ＳＤ２に対応する。iSCSI制御プログラム１１２は、iSCSIに基づいた通信を制御する。iSCSI制御プログラム１１２は、IPパケットの組立及び分解等を行う。I/O制御プログラム１１３は、ホスト３からのライトコマンドやリードコマンドに従って、ディスク装置１０３にデータを書き込んだり、ディスク装置１０３からデータを読み出す。
【００７３】
セッション管理プログラム１１４は、図１中のセッション管理部ＳＤ３に対応する。セッション管理プログラム１１４は、ホスト３との間にセッションを確立し、確立されたセッションの使用方法を管理する。本実施例では、旧シークレットを用いるセッション（旧シークレットセッション）と新シークレットを用いるセッション（新シークレットセッション）との２種類のセッションを、同一のパス内にそれぞれ設定する。
【００７４】
セッションテーブル１２１は、図１中のセッションテーブルＴ１Ｓに対応する。詳細は図５と共に後述するが、セッションテーブル１２１は、ストレージ１とホスト３との間に設定されたセッションを管理するための情報を記憶する。シークレットテーブル１２２は、図１中のシークレットテーブルＴ２Ｓに対応する。詳細は図５と共に後述するが、シークレットテーブル１２２は、ホスト３を認証するためのユーザＩＤやシークレット等を記憶する。なお、セッションテーブル１２１及びシークレットテーブル１２２を、不揮発性メモリ１０１及びディスク装置１０３の両方に記憶させる構成でもよい。これにより、ストレージ１が故障等した場合でも、各テーブル１２１，１２２に記憶されている管理情報の喪失を防止することができ、信頼性が向上する。
【００７５】
主メモリ１０１には、必要に応じて、不揮発性メモリ１００に記憶された各プログラム１１１〜１１４が読み込まれる。CPU１０４が主メモリ１０１に読み込まれた各プログラム１１１〜１１４をそれぞれ実行することにより、GUI制御機能、iSCSI制御機能、I/O制御機能、セッション管理機能がそれぞれ実現される。なお、IPパケットの分解及び組立等を行うための専用の装置を設ける構成でもよい。
【００７６】
主メモリ１０１には、ホスト３から受信したデータ及びディスク装置１０３から読み出されたデータを記憶するためのキャッシュ領域を設けることもできる。なお、主メモリ１０１とは別のキャッシュメモリを備える構成でもよい。
【００７７】
ディスクインターフェース１０５は、各ディスク装置１０３との間のデータ授受を行うものである。各ディスクインターフェース１０５は、通信線１０６を介して、各ディスク装置１０３にそれぞれ接続されている。
【００７８】
ポート１０８は、図１中のポートＳＤ１に対応する。ポート１０８は、図２と共に述べたように、通信線１５やSAN１０及び通信線１７を介して、ホスト３に接続される。管理用のポート１０９は、通信線１６を介して管理端末２に接続される。
【００７９】
ストレージ装置１の基本的動作を簡単に説明する。ホスト３からライトコマンドが発行された場合、コントローラ１０７は、ホスト３から受信したライトデータを主メモリ１０１内のキャッシュ領域に記憶させる。コントローラ１０７は、キャッシュ領域に記憶させたライトデータをディスクインターフェース１０５を介して、ディスク装置１０３に書き込ませる。なお、ライトデータをキャッシュ領域に記憶させた時点で、ライトコマンドの処理が完了した旨をホスト３に通知する構成でもよいし、あるいは、ライトデータをディスク装置１０３に書き込んだ時点で、ライトコマンドの処理完了をホスト３に通知する構成でもよい。
【００８０】
ホスト３からリードコマンドが発行された場合、コントローラ１０７は、ホスト３から要求されたデータがキャッシュ領域に記憶されているか否かを調べる。ホスト３から要求されたデータがキャッシュ領域に記憶されている場合、コントローラ１０７は、そのデータをキャッシュ領域から読出し、ポート１０８を介してホスト３に送信させる。ホスト３の要求するデータがキャッシュ領域に記憶されていない場合、コントローラ１０７は、ディスクインターフェース１０５を介して、ディスク装置１０３からデータを読出して、キャッシュ領域に転送させる。そして、コントローラ１０７は、キャッシュ領域に記憶されたデータをポート１０８からホスト３に向けて送信させる。
【００８１】
図４は、ホスト３の構成を示す説明図である。ホスト３は、例えば、主メモリ３０１と、バス３０２と、ディスク装置３０３と、CPU３０４と、ディスプレイデバイス３０５と、ポインティングデバイス３０６と、キーボードスイッチ３０７と、ポート３０８，３０９とを備えて構成される。主メモリ３０１，ディスク装置３０３，CPU３０４、各ポート３０８，３０９等は、バス３０２を介して相互に接続されている。
【００８２】
主メモリ３０１には、ディスク装置３０３に記憶された各プログラム３１１，３１２，３１３が必要に応じて転送される。CPU３０４は、主メモリ３０１に読み込まれたプログラムを実行することにより、GUI制御機能、iSCSI制御機能及びセッション管理機能をそれぞれ実現させる。
【００８３】
ディスク装置３０３には、例えば、GUI制御プログラム３１１と、iSCSI制御プログラム３１２と、セッション管理プログラム３１３と、セッションテーブル３２１及びシークレットテーブル３２２を記憶させることができる。
【００８４】
GUI制御プログラム３１１は、ディスプレイデバイス３０５に表示されるシークレット変更画面を制御する。また、GUI制御プログラム３１１は、ポインティングデバイス３０６またはキーボードスイッチ３０７を介して管理者から入力された情報を、セッション管理プログラム３１３に伝達する。
【００８５】
iSCSI制御プログラム３１２は、iSCSIに基づく通信を制御するもので、図１中のiSCSI制御部ＨＤ４に対応する。iSCSI制御プログラム３１２は、IPパケットの分解及び組立等を行う。
【００８６】
セッション管理プログラム３１３は、図１中のセッション管理部ＨＤ３に対応する。セッション管理プログラム３１３は、ストレージ１との間にセッションを確立し、確立されたセッションの使用方法を管理する。
【００８７】
セッションテーブル３２１は、新シークレットを用いるセッション及び旧シークレットを用いるセッションを管理する。セッションテーブル３２１は、図１中のセッションテーブルＴ１Ｈに対応する。シークレットテーブル３２２は、ユーザID及びシークレット等を管理するもので、図１中のシークレットテーブルＴ２Ｈに対応する。各テーブル３２１，３２２の詳細は図５と共に後述する。なお、本実施例における１つのホスト３と１つのストレージ１との間には、１つのパスが存在するものとする。
【００８８】
図５は、テーブル構造の説明図である。図５には、ストレージ１に記憶されているセッションテーブル１２１及びシークレットテーブル１２２と、ホスト３に記憶されているセッションテーブル３２１及びシークレットテーブル３２２の構成とが、それぞれ示されている。
【００８９】
図５（ａ）に示すように、ストレージ１に記憶されているセッションテーブル１２１は、例えば、パスID１２１１と、セッションID１２１２と、ボリュームID１２１３及びバージョン１２１４とを対応付けて管理する。パスID１２１１は、ホスト３とストレージ１との間を接続するパスを識別するための情報である。セッションID１２１２は、パスに設定されたセッションを識別するための情報である。同一のパス内に複数のセッションを設けることができる。ボリュームID１２１３は、そのセッションを介してアクセスされるボリュームを識別するための情報である。
【００９０】
ボリュームとは、ディスク装置１０３の物理的な記憶領域上に設定される論理的な記憶領域である。一つのディスク装置１０３の有する物理的な記憶領域に一つまたは複数のボリュームを設けることもできるし、複数のディスク装置１０３の有する物理的な記憶領域を仮想化して、一つまたは複数のボリュームを設けることもできる。
【００９１】
バージョン１２１４は、そのセッションが旧シークレットを用いる旧シークレットセッションであるか、それとも新シークレットを用いる新シークレットセッションであるかの区別を示す情報である。旧シークレットを用いるセッションには「old」が設定され、新シークレットを用いるセッションには「new」が設定される。
【００９２】
図５（ａ）には、PID１で特定されるパスに、SID１及びSID２で特定される複数のセッションがそれぞれ設けられている様子が示されている。このパス（PID１）によりアクセスされるターゲットボリュームは、VID１で特定される。そして、SID１で特定されるセッションは旧シークレットを用いるセッションであり、SID２で特定されるセッションは新シークレットを用いるセッションであることが示されている。
【００９３】
ストレージ１に記憶されるシークレットテーブル１２２は、例えば、パスID１２２１と、ユーザID１２２２と、シークレット１２２３及びバージョン１２２４を対応付けて管理する。パスID１２２１は、上記同様に、パスを識別するための情報である。ユーザID１２２２は、ユーザを識別するための情報である。シークレット１２２３は、認証に使用される文字または数字の列である。バージョン１２２４は、そのシークレットが旧シークレット（シークレット変更前のシークレット）であるか、新シークレット（変更予定のシークレット）であるかの区別を示す情報である。旧シークレットには「old」が設定され、新シークレットには「new」が設定される。
【００９４】
ホスト３に記憶されるセッションテーブル３２１は、例えば、セッションID３２１２と、仕掛中コマンドリスト３２１３及びバージョン３２１４を対応付けて管理する。セッションID３２１２は、ストレージ１との間に設定された各セッションを識別するための情報である。仕掛中コマンドリスト３２１３は、そのセッションを用いて実行されているコマンドのリストである。仕掛中のコマンドとは、そのコマンドの処理結果に関する応答をストレージ１から受信していないコマンドを意味し、実行途中のコマンドである。バージョン３２１４は、新シークレットを用いるセッションであるか旧シークレットを用いるセッションであるかの区別を示す情報である。
【００９５】
ホスト３に記憶されるシークレットテーブル３２２は、例えば、ユーザID３２２２と、シークレット３２２３と、バージョン３２２４とを対応付けて管理する。ユーザID３２２２は、ユーザを識別する情報である。シークレット３２２３は、複数の文字や数字の列である。バージョン３２２４は、そのシークレットが新シークレットであるか旧シークレットであるかを区別するための情報である。
【００９６】
図６は、ストレージ１及びホスト３から管理者に提供されるシークレット変更画面を模式的に示す説明図である。図６（ａ）には、ストレージ１が管理端末２を介して管理者に提供するシークレット変更画面Ｂ５００が示されている。このシークレット変更画面Ｂ５００には、例えば、複数の入力部Ｂ５０１〜Ｂ５０４と、複数のボタンＢ５１０，Ｂ５１１を設けることができる。
【００９７】
入力部Ｂ５０１は、管理者にパスIDを入力させるものである。入力部Ｂ５０２は、管理者にユーザIDを入力させるためのものである。入力部Ｂ５０３は、管理者に新シークレットを入力させるためのものである。入力部Ｂ５０４は、管理者に新シークレットを再入力させるためのものである。ボタンＢ５１０は、管理者によって画面Ｂ５００に入力された情報を確定させるためのものである。ボタンＢ５１１は、管理者によって画面Ｂ５００に入力された情報を取り消すためのものである。
【００９８】
なお、図６（ｂ）に示す画面Ｂ５２０でも同様であるが、新シークレットを再入力するための入力部Ｂ５０４を廃止してもよい。また、パスIDやユーザID、新シークレットを音声入力する構成でもよい。
【００９９】
図６（ｂ）には、ホスト３がディスプレイデバイス３０５を介して、管理者に提供するシークレット変更画面Ｂ５２０が示されている。このシークレット変更画面Ｂ５２０には、例えば、複数の入力部Ｂ５２１〜Ｂ５２３と、複数のボタンＢ５３０，Ｂ５３１とを設けることができる。
【０１００】
入力部Ｂ５２１は、管理者にユーザIDを入力させるためのものである。入力部Ｂ５２２は、管理者に新シークレットを入力させるためのものである。入力部Ｂ５２３は、管理者に新シークレットを再入力させるためのものである。ボタンＢ５３０は、管理者によって画面Ｂ５２０に入力された情報を確定させるためのものである。ボタンＢ５３１は、管理者によって画面Ｂ５２０に入力された情報を取り消すためのものである。なお、図６に示すシークレット変更画面Ｂ５００，５２０は、一例であって、別の画面構成でもよい。
【０１０１】
図７は、ストレージシステムで使用されるシークレットを変更させるための全体処理を示すフローチャートである。以下の各フローチャートでも同様であるが、各フローチャートは、本発明の理解及び実施に必要な範囲で、各処理の概要を示しており、実際のプログラムとは相違する場合がある。なお、以下の説明ではステップを「Ｓ」と略記する。
【０１０２】
まず、図７を参照して、シークレットを変更する場合の全体の流れを説明し、次に、図７に含まれる主要な処理について説明する。
【０１０３】
管理者は、定期的にまたは不定期にシークレットの変更を指示することができる。シークレットの変更とは、現在使用されているシークレット（旧シークレット）を、別の新たなシークレット（新シークレット）に切り替えさせることを意味する。管理者が、管理端末２を介して、ストレージ１にシークレット変更を要求すると、ストレージ１は、シークレット変更画面Ｂ５００を管理端末２の画面に表示させる（Ｓ６０１）。
【０１０４】
管理者がシークレット変更画面Ｂ５００の各入力部Ｂ５０１〜Ｂ５０４に必要な情報を入力して、確定ボタンＢ５１０を操作すると、ストレージ１は、シークレット変更処理を実行する（Ｓ６０２）。シークレット変更処理Ｓ６０２の詳細は、図８と共に後述する。
【０１０５】
一方、管理者がホスト３にシークレットの変更を要求すると、ホスト３は、シークレット変更画面Ｂ５２０をディスプレイデバイス３０５に表示させる（Ｓ６０３）。管理者がシークレット変更画面Ｂ５２０の各入力部Ｂ５２１〜Ｂ５２３に必要な情報を入力して、確定ボタンＢ５３０を操作すると、ホスト３は、シークレット変更処理を実行する（Ｓ６０４）。シークレット変更処理（Ｓ６０４）については、図８と共に後述する。
【０１０６】
ホスト３は、シークレット変更処理（Ｓ６０４）を実行した後、新シークレットセッションの確立をストレージ１に要求するための処理を実行する（Ｓ６０５）。新シークレットセッションとは、上述のように、新シークレットを使用するセッションである。この新シークレットセッション確立要求処理Ｓ６０５では、ストレージ１に対して、新シークレットを用いた新たなセッションの確立を要求する（Ｓ６０６）。処理Ｓ６０５の詳細は、図９と共に後述する。
【０１０７】
ストレージ１は、ホスト３からセッションの確立を要求されると（Ｓ６０６）、新シークレットを確立させて応答する処理（Ｓ６０７）を実行する。この処理Ｓ６０７の詳細は、図１０と共に後述する。ストレージ１が、新シークレットを用いた新たなセッションを確立した旨をホスト３に応答すると（Ｓ６０８）、ホスト３は、I/O要求処理（Ｓ６０９）を実行する。
【０１０８】
新シークレットを用いたセッションが確立された時点で、ホスト３とストレージ１とは、旧シークレットを用いたセッションと新シークレットを用いたセッションとの２種類のセッションで接続されることになる。
【０１０９】
I/O要求処理Ｓ６０９の詳細は図１１と共に後述する。先に簡単に説明すると、I/O要求処理Ｓ６０９では、新たなコマンドを発行する場合、その新たなコマンドを新シークレットセッションを介してストレージ１に送信する（Ｓ６１０）。ストレージ１は、新シークレットセッションを確立する前にホスト３から受領したコマンド（旧コマンド）に関する応答を行う場合、旧シークレットセッションを使用する（Ｓ６１１，Ｓ６１２）。
【０１１０】
時間が経過すると、旧コマンドはストレージ１により全て処理され、ホスト３は全ての旧コマンドに関する応答を受け取る。全ての旧コマンドに関する応答を受信するまでに要する時間は、例えば、旧コマンドの発行数、ストレージ１の処理能力、通信遅延時間等によって相違する。なお、ストレージ１から受信する応答には、コマンドを正常に終了した旨の応答と、コマンドを正常に終了できなかった旨の応答とが含まれる。
【０１１１】
ホスト３は、旧コマンドの処理が完了したことを確認すると、旧シークレットセッションを切断させるための処理（Ｓ６１３）を実行する。この処理Ｓ６１３については、図１２と共に後述する。ホスト３がストレージ１に旧シークレットセッションの切断を要求すると（Ｓ６１４）、ストレージ１は、旧シークレットセッションを切断する処理（Ｓ６１５）を実行する。この処理Ｓ６１５の詳細は図１３と共に後述する。ホスト３は、旧シークレットセッションを切断した旨の応答をストレージ１から受信すると（Ｓ６１６）、処理Ｓ６１３を終了させる。
【０１１２】
図８は、ストレージ１及びホスト３でそれぞれ実行されるシークレット変更処理Ｓ６０２，Ｓ６０４の詳細を示すフローチャートである。図８（ａ）は、ストレージ１で実行されるシークレット変更処理Ｓ６０２のフローチャートを示す。
【０１１３】
この処理Ｓ６０２では、ストレージ１は、シークレット変更画面Ｂ５００のパスID入力部５０１に入力されたパスIDに基づいて、シークレットテーブル１２２（図５（ｂ））を検索し、そのパスについて既に登録されているシークレット１２２３のバージョン１２２４を「old」に設定する（Ｓ６０２１）。
【０１１４】
そして、ストレージ１は、シークレットテーブル１２２に、新シークレットを登録するための新規エントリを追加する（Ｓ６０２２）。図５（ｂ）に示す例で説明する。管理者がパス（PID１）のシークレットの変更を指示した場合、既存シークレット（「abc」）のバージョンは「old」に変更される。そして、シークレットテーブル１２２には、新規エントリが追加される。新規エントリには、シークレット変更が要求されたパスID（PID１）と、新シークレット（「xyz」）及びバージョン（「new」）が設定される。
【０１１５】
図８（ｂ）は、ホスト３で実行されるシークレット変更処理Ｓ６０４の詳細を示すフローチャートである。図８（ａ）について述べたと同様に、ホスト３は、既存シークレット（旧シークレット）のバージョンが「old」となるように、シークレットテーブル３２２の設定内容を変更させる（Ｓ６０４１）。そして、ホスト３は、シークレットテーブル３２２に新規エントリを追加する（Ｓ６０４２）。この新規エントリには、ユーザIDと新シークレット及びバージョンが設定される。バージョンの値は「new」である。
【０１１６】
図９は、ホスト３により実行される新シークレットセッションの確立を要求するための処理Ｓ６０５の詳細を示すフローチャートである。ホスト３は、図７中のＳ６０６にも示すように、新シークレットを用いた新たなセッションの確立要求をストレージ１に送信する（Ｓ６０５１）。
【０１１７】
ホスト３は、ストレージ１からセッションを確立した旨の応答を受信するまで待機する（Ｓ６０５２）。ストレージ１からのセッション確立応答を受信すると（S6052:YES）、ホスト３は、セッションテーブル３２１に新規エントリを追加する（Ｓ６０５３）。この新規エントリには、新シークレットセッションを識別するためのセッションIDと、その新シークレットセッションを用いて実行中のコマンドのリスト及びバージョンがそれぞれ設定される。新シークレットセッションが確立された時点では、新シークレットセッションを用いてコマンドは発行されていないため、コマンドのリストは空欄となる。新シークレットセッションを用いて新たなコマンドが発行された場合は、そのコマンドのコマンドIDがコマンドリストに追加される。なお、新シークレットセッションのバージョンには「new」が設定される。
【０１１８】
図１０は、新シークレットセッションの確立及び新シークレットセッションが確立した旨の応答を行う処理Ｓ６０７の詳細を示すフローチャートである。この処理Ｓ６０７は、ストレージ１により実行される。
【０１１９】
ストレージ１は、ホスト３から新シークレットセッションの確立を要求されると、この新シークレットセッションの確立要求を受信したパスのパスIDに基づいて、シークレットテーブル１２２を検索する。ストレージ１は、新シークレットセッションの確立要求を受信したパスについて設定されている新シークレット及びユーザIDを、シークレットテーブル１２２から読み出す（Ｓ６０７１）。
【０１２０】
そして、ストレージ１は、ホスト３から受信した新シークレットセッションの確立要求に含まれているユーザID及び新シークレットと、シークレットテーブル１２２に登録されているユーザID及び新シークレットとを比較し、両方が一致するか否かを判断する（Ｓ６０７２）。ストレージ１は、認証が成功したか否かを判断し（Ｓ６０７３）、認証に成功した場合には（S6073:YES）、セッションテーブル１２１に新規エントリを追加する（Ｓ６０７４）。
【０１２１】
図５（ａ）に示す例では、既存のセッション（SID１）のほかに、新たなセッション（SID２）のエントリがセッションテーブル１２１に追加される。この新規エントリのバージョンは「new」に設定される。セッションテーブル１２１に新シークレットセッションに関するエントリが追加されることにより、新シークレットを用いたセッションの確立が完了する。そこで、ストレージ１は、新シークレットセッションが確立された旨の応答をホスト３に送信する（Ｓ６０７５）。
【０１２２】
一方、認証に失敗した場合（S6073:NO）、ホスト３にセッションを確立できなかった旨のエラー応答を返す（Ｓ６０７６）。
【０１２３】
図１１は、ホスト３により実行されるI/O要求処理Ｓ６０９の詳細を示すフローチャートである。この処理Ｓ６０９では、以下に述べるように、コマンドの発行時期に応じて、新シークレットセッションと旧シークレットセッションとを使い分ける。
【０１２４】
まず、ホスト３は、処理対象が「新規コマンドの発行」であるか否かを判定する（Ｓ６０９１）。新コマンドとは、シークレット変更後に発行されるコマンドを意味する。シークレット変更前に発行されたコマンド、即ち、旧シークレットセッションを用いてホスト３からストレージ１に送信されたコマンドは、旧コマンドである。
【０１２５】
新コマンドを発行する場合（S6091:YES）、ホスト３は、セッションテーブル３２１内の新シークレットセッションに関する仕掛中コマンドリストに、これから発行しようとする新コマンドのコマンドIDを追加する（Ｓ６０９２）。ホスト３は、新コマンドのコマンドIDをセッションテーブル３２１に追加した後、この新コマンドを新シークレットセッションを介してストレージ１に送信する（Ｓ６０９３）。
【０１２６】
新コマンドの発行ではない場合（S6091:NO）、ホスト３は、ストレージ１からの応答を受信したか否かを判定する（Ｓ６０９４）。コマンドに関する応答を受信していない場合（S6094:NO）、本処理は終了する。つまり、本処理は、新コマンドの発行時及び応答の受信時を契機として動作する。
【０１２７】
ストレージ１から応答を受信した場合（S6094:YES）、ホスト３は、セッションテーブル３２１内の仕掛中コマンドリストから、応答を受信したコマンドのコマンドIDを削除する（Ｓ６０９５）。
【０１２８】
次に、ホスト３は、Ｓ６０９４で応答を受信したコマンドが旧シークレットセッションで発行されたコマンドであるか否かを判定する（Ｓ６０９６）。即ち、その応答を旧シークレットセッションを介してストレージ１から受信したか否かを判定する。
【０１２９】
そのコマンドが旧シークレットセッションを用いて発行されたものではない場合（S6096:NO）、そのコマンドは新シークレットセッションを用いて発行された新コマンドであるから、本処理を終了する。即ち、ホスト３は、新コマンドに関する応答をストレージ１から受信した場合、セッションテーブル３２１内のコマンドリストから新コマンドのコマンドIDのみを削除する。
【０１３０】
一方、Ｓ６０９４で応答を受信したコマンドが旧シークレットセッションを用いてホスト３からストレージ１に送信されたものである場合（S6096:YES）、ホスト３は、旧シークレットセッションの仕掛中コマンドリストのコマンド数が「０」になったか否かを判定する（Ｓ６０９７）。即ち、ホスト３は、旧シークレットセッションを介して送信された全ての旧コマンドについて、処理が完了したか否かを判定する。
【０１３１】
旧シークレットセッションの仕掛中コマンドの数が「０」になった場合（S6097:YES）、ホスト３は、旧シークレットセッションの切断をストレージ１に要求するための処理（Ｓ６１３）を実行する。
【０１３２】
図１２は、ホスト３により実行される旧シークレットセッションの切断要求処理Ｓ６１３の詳細を示すフローチャートである。ホスト３は、旧シークレットセッションを用いて、このセッションの切断をストレージ１に要求する（Ｓ６１３１）。ホスト３は、セッション（旧シークレットセッション）を切断した旨の応答をストレージ１から受信するまで待機する（Ｓ６１３２）。
【０１３３】
ストレージ１からセッションを切断した旨の要求を受信すると（S6132:YES）、ホスト３は、セッションテーブル３２１から旧シークレットセッションに関するエントリを削除する（Ｓ６１３３）。また、ホスト３は、シークレットテーブル３２２から旧シークレットに関するエントリを削除する（Ｓ６１３４）。
【０１３４】
図１３は、旧シークレットセッションを切断し、切断した旨の応答を返す処理Ｓ６１５の詳細を示すフローチャートである。この処理Ｓ６１５は、ストレージ１によって実行される。
【０１３５】
ストレージ１は、ホスト３からセッションの切断要求を受信すると、この切断要求を受信したセッションのセッションIDに基づいてセッションテーブル１２１を検索し、そのセッションのバージョンをセッションテーブル１２１から読み出す（Ｓ６１５１）。また、ストレージ１は、切断を要求されたセッションのエントリをセッションテーブル１２１から削除する（Ｓ６１５２）。
【０１３６】
ストレージ１は、Ｓ６１５２で切断したセッションが旧シークレットセッションであったか否かを、Ｓ６１５１で取得したバージョンに基づいて判定する（Ｓ６１５３）。旧シークレットセッションを切断した場合（S6153:YES）、ストレージ１は、切断された旧シークレットに関するエントリをシークレットテーブル１２２から削除する（Ｓ６１５４）。
【０１３７】
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、シークレットを変更する際に、旧シークレットセッション及び新シークレットセッションの両方をそれぞれ設定し、シークレット変更処理の前に発行された仕掛中（実行途中）のコマンドは旧シークレットセッションを用いて処理し、シークレット変更処理の後に発行されたコマンドは新シークレットセッションを用いて処理する。そして、旧シークレットセッションが不要になった時点（旧コマンドの処理が全て完了した時点）で、旧シークレットセッションを切断し、新シークレットセッションのみを生かす構成としている。従って、ホスト３とストレージ１との間にセッションを維持しつつ、シークレットを変更することができる。これにより、ホスト３の可用性を維持しながら、セキュリティ性を高めることができ、使い勝手も向上する。
【０１３８】
ここで、シークレット変更処理の前に発行されたコマンド（旧コマンド）を、シークレット変更準備の開始前に発行されたコマンドと、シークレット変更処理の後に発行されたコマンド（新コマンド）をシークレット変更準備の完了後に発行されたコマンドと、それぞれ定義し直すこともできる。
【実施例２】
【０１３９】
図１４〜図１８に基づいて第２実施例を説明する。本実施例を含む以下の各実施例は、上述した第１実施例の変形例に相当する。従って、本実施例を含む以下の実施例では、第１実施例との相違部分を中心に説明する。本実施例では、管理サーバ５からホスト３及びストレージ１に新シークレットをそれぞれ通知することにより、シークレットを変更させるようになっている。
【０１４０】
図１４は、本実施例によるストレージシステムの全体構成を示す説明図である。本実施例では、図２に示す構成に管理ネットワーク１２及び管理サーバ５がそれぞれ追加されている。
【０１４１】
管理サーバ５は、各ホスト３及びストレージ１をそれぞれ管理するためのコンピュータ装置である。管理サーバ５は、通信線１６を介して、管理ネットワーク１２に接続されている。各ホスト３及びストレージ１も、通信線１６を介して、管理ネットワーク１２にそれぞれ接続されている。つまり、管理サーバ５は、管理ネットワーク１２を介して、各ホスト３及びストレージ１にそれぞれ双方向通信可能に接続されている。
【０１４２】
ここで、管理ネットワーク１２は、例えば、LANのようなネットワークとして構成することができる。但し、これに限らず、管理ネットワーク１２をSANのようなネットワークとして構成してもよい。また、ホスト３とストレージ１とを接続するSAN１０と管理ネットワーク１２とを一体化させる構成でもよい。
【０１４３】
図１５は、管理サーバ５の構成を示す説明図である。管理サーバ５は、例えば、主メモリ５０１と、バス５０２と、ディスク装置５０３と、CPU５０４と、ディスプレイデバイス５０５と、ポインティングデバイス５０６と、キーボードスイッチ５０７と、ポート５０８を備えて構成される。主メモリ５０１，ディスク装置５０３，CPU５０４、ポート５０８等は、バス５０２を介して相互に接続されている。
【０１４４】
主メモリ５０１には、ディスク装置５０３に記憶された各プログラム５１１，５１２が必要に応じて転送される。CPU５０４は、主メモリ５０１に読み込まれたプログラムを実行することにより、GUI制御機能及び通信制御機能を実現させる。
【０１４５】
ディスク装置５０３には、例えば、GUI制御プログラム５１１と、通信制御プログラム５１２と、ホストテーブル５２１を記憶させることができる。
【０１４６】
GUI制御プログラム５１１は、ディスプレイデバイス５０５に表示されるシークレット変更画面Ｂ５４０（図１７参照）を制御する。また、GUI制御プログラム５１１は、ポインティングデバイス５０６またはキーボードスイッチ５０７を介して管理者から入力された情報を、通信制御プログラム５１２に伝達する。
【０１４７】
通信制御プログラム５１２は、管理ネットワーク１２を介して、ホスト３及びストレージ１と通信を行うためのプログラムである。この通信制御プログラム５１２により、管理サーバ５は、ホスト３及びストレージ１にシークレットの変更を要求し、シークレットが変更された旨の応答をホスト３及びストレージ１から受信する。
【０１４８】
ホストテーブル５２１は、各ホスト３を管理するためのテーブルである。図１６は、ホストテーブル５２１の構造例を示す説明図である。ホストテーブル５２１は、例えば、各ホスト３を識別するためのホストID５２１１と、各パスを識別するためのパスID５２１２とを対応付けて管理する。このホストテーブル５２１を用いることにより、どのホスト３がどのパスを使用しているかを検出することができる。
【０１４９】
図１７は、管理サーバ５により提供されるシークレット変更画面Ｂ５４０の一例を示す説明図である。シークレット変更画面Ｂ５４０には、例えば、複数の入力部Ｂ５４１〜Ｂ５４４と、複数のボタンＢ５５０，Ｂ５５１を設けることができる。
【０１５０】
入力部Ｂ５４１は、管理者にパスIDを入力させるものである。入力部Ｂ５４２は、管理者にユーザIDを入力させるためのものである。入力部Ｂ５４３は、管理者に新シークレットを入力させるためのものである。入力部Ｂ５４４は、管理者に新シークレットを再入力させるためのものである。ボタンＢ５５０は、管理者によって画面Ｂ５４０に入力された情報を確定させるためのものである。ボタンＢ５５１は、管理者によって画面Ｂ５００に入力された情報を取り消すためのものである。
【０１５１】
図１８は、本実施例によるシークレット変更を行う場合の全体動作を示すフローチャートである。管理サーバ５は、管理者からの指示により、シークレット変更画面Ｂ５４０をディスプレイデバイス５０５に表示させる処理を実行する（Ｓ１７０１）。
【０１５２】
管理者がシークレット変更画面Ｂ５４０の各入力部Ｂ５４１〜Ｂ５４４に必要な情報を入力して、確定ボタンＢ５５０を操作すると、管理サーバ５は、シークレットの変更を要求するための処理を開始する（Ｓ１７０２）。
【０１５３】
管理サーバ５は、ストレージ１にシークレットの変更を要求する（Ｓ１７０３）。ストレージ１は、管理サーバ５からの要求に従って、シークレット変更処理を実行する（Ｓ１７０４）。即ち、図８（ａ）で述べたように、ストレージ１は、既存シークレットのバージョンを「old」に設定し、新シークレットのために新規エントリをシークレットテーブル１２２に追加する。ストレージ１は、シークレット変更処理（Ｓ１７０４）を完了すると、シークレットを変更した旨の応答を管理サーバ５に返す（Ｓ１７０５）。
【０１５４】
管理サーバ５は、ホスト３にシークレットの変更を要求する（Ｓ１７０６）。ホスト３は、管理サーバ５からの要求に従って、図７及び図８と共に述べたシークレット変更処理（Ｓ６０４）を実行する。
【０１５５】
以下、図７で述べたＳ６０５〜Ｓ６１５のステップが実行される。即ち、ホスト３とストレージ１とは旧シークレットセッション及び新シークレットセッションを介して接続される（Ｓ６０５，Ｓ６０６，Ｓ６０７，Ｓ６０８）。新コマンドは新シークレットセッションを用いてホスト３からストレージ１に送信され、旧コマンドに関する応答は旧シークレットセッションを介してストレージ１からホスト３に送信される（Ｓ６０９，Ｓ６１０，Ｓ６１１，Ｓ６１２）。旧コマンドの処理が全て完了した場合は、旧シークレットが切断される（Ｓ６１３，Ｓ６１４，Ｓ６１５）。
【０１５６】
ホスト３は、旧シークレットセッションの切断を確認すると、シークレットの変更を完了した旨を管理サーバ５に応答する（Ｓ１７０７）
【０１５７】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、管理者は、管理サーバ５を介して、ホスト３及びストレージ１にシークレットの変更を指示することができるため、使い勝手が向上する。即ち、管理者は、ホスト３及びストレージ１のそれぞれにシークレットの変更を個別に指示する必要がなく、管理サーバ５からの一回の指示でシークレットを変更させることができる。
【実施例３】
【０１５８】
図１９に基づいて第３実施例を説明する。本実施例では、ホスト３からストレージ１にシークレットの変更を要求する。図１９は、シークレットを変更させる場合の全体動作を示すフローチャートである。
【０１５９】
ホスト３は、管理者からシークレット変更の指示を受けると、シークレット変更画面Ｂ５２０を表示する（Ｓ１８０１）。管理者が新シークレット等をシークレット変更画面Ｂ５２０に入力すると、ホスト３は、シークレット変更処理を開始する（Ｓ１８０２）。
【０１６０】
ホスト３は、旧シークレットセッションを用いて、ストレージ１にシークレット変更要求を送信する（Ｓ１８０３）。ストレージ１は、ホスト３からシークレット変更要求を受信すると、シークレット変更処理を実行する（Ｓ１８０４）。ホスト３及びストレージ１でそれぞれ実行されるシークレット変更処理（Ｓ１８０２，Ｓ１８０４）は、ホスト３がシークレット変更要求を送信する点と、ストレージ１がシークレット変更処理完了後に、シークレット変更応答をホスト３へ送信する点とを除き、第１実施例で述べたＳ６０４，Ｓ６０２と同様である。
【０１６１】
そして、ホスト３は、ストレージ１からシークレット変更処理が終了した旨の応答を受信すると（Ｓ１８０５）、上述したＳ６０５〜Ｓ６１５のステップを実行する。
【０１６２】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、管理者は、シークレット変更の指示をホスト３に与えるだけでよく、使い勝手が向上する。また、本実施例では、ホスト３からストレージ１にシークレット変更を要求するため、管理サーバ５を設ける必要がなく、構成を簡素化できる。
【０１６３】
なお、本実施例では、ホスト３からストレージ１にシークレットの変更を要求する場合を述べたが、これとは逆に、ストレージ１からホスト３にシークレットの変更を要求する構成でもよい。即ち、管理者は、シークレット変更画面Ｂ５００を介してストレージ１にシークレット変更を要求し、ストレージ１はホスト３にシークレットの変更を要求するように制御することもできる。
【０１６４】
但し、本実施例のデメリットは、新シークレットがSAN１０上を流れるため、盗み見の可能性がある点である。このデメリットを解消する方法として、ホスト３とストレージ１がIPsec等のセキュリティ技術を用いて、セキュアなセッションを確立する方法が考えられる。
【実施例４】
【０１６５】
図２０，図２１に基づいて第４実施例を説明する。本実施例では、ホスト３とストレージ１との間に複数のパスが設定されている場合、仕掛中のコマンド数が少ないパスから順番にシークレットを変更させる。
【０１６６】
図２０は、本実施例によるストレージシステムで使用されるセッションテーブル３２１，３２２の一例を示す説明図である。本実施例では、ホスト３とストレージ１とが複数のパスで接続されていることを前提とする。従って、ホスト３により使用されるセッションテーブル３２１ではパスID３２１１が管理されており、同様に、シークレットテーブル３２２でもパスID３２２１が管理されている。
【０１６７】
図２１は、シークレット変更を行うパスを選択するための処理を示すフローチャートである。本処理は、ホスト３によって実行される。まず、ホスト３は、図２０に示すセッションテーブル３２１を参照し、仕掛中のコマンド数が最も少ないパスを一つ選択する（Ｓ２００１）。
【０１６８】
そして、ホスト３は、Ｓ２００１で選択されたパスについて、新シークレットセッションの確立を要求する処理（Ｓ６０５）及びI/O要求処理（Ｓ６０９）をそれぞれ実行する（Ｓ２００２）。
【０１６９】
ホスト３は、ストレージ１に接続されている全てのパスについて、シークレットの変更が完了したか否かを判定する（Ｓ２００３）。シークレットを変更していないパスが存在する場合（S2003:NO）、ホスト３は、仕掛中コマンド数が次に少ないパスを選択し（Ｓ２００４）、Ｓ２００２及びＳ２００３を繰り返す。このようにして、仕掛中の少ないパスから順番に、シークレットが変更されていく。そして、全てのパスについてシークレットを変更すると（S2003:YES）、本処理は終了する。
【０１７０】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ホスト３とストレージ１とが複数パスで接続されている場合、仕掛中のコマンド数が最も少ないパスから順番に、シークレットを変更する構成を採用する。従って、本実施例では、同時に確立可能なセッション数に上限が設定されている場合でも、シークレットを変更させることができる。
【実施例５】
【０１７１】
図２２に基づいて第５実施例を説明する。本実施例では、ホスト３とストレージ１とが複数パスを介して接続されている場合、全てのパスについて新シークレットセッションをそれぞれ確立し、仕掛中コマンドの無くなった旧シークレットセッションから順番に切断していく。
【０１７２】
図２２は、シークレット変更時のパス選択処理を示すフローチャートである。本処理は、ホスト３によって実行される。ホスト３は、図２０に示すセッションテーブル３２１に登録されている先頭のパスを一つ選択する（Ｓ２１０１）。ホスト３は、Ｓ２１０１で選択されたパスについて、新シークレットセッションの確立を要求する処理（Ｓ６０５）を実行する（Ｓ２１０２）。
【０１７３】
ホスト３は、全てのパスについて新シークレットセッションが確立されたか否かを判定する（Ｓ２１０３）。新シークレットセッションの確立されていないパスが残っている場合（S2103:NO）、ホスト３は、セッションテーブル３２１に登録されている次のパスを選択し（Ｓ２１０４）、Ｓ２１０２及びＳ２１０３のステップを繰り返す。
【０１７４】
全てのパスについて新シークレットセッションが確立されると（S2013:YES）、ホスト３は、各パスについて、I/O要求処理（Ｓ６０９）及び旧シークレットセッションの切断を要求する処理（Ｓ６１３）をそれぞれ実行させる（Ｓ２１０５）。即ち、各パスのそれぞれについてI/O要求処理（Ｓ６０９）が並行して実行され、仕掛中コマンドが無くなったパスから順番に旧シークレットセッションが切断される。全てのパスについて旧シークレットセッションが切断されるまで、Ｓ２１０５が繰り返される（Ｓ２１０６）。全てのパスについて旧シークレットセッションを切断した場合（S2106:YES）、本処理は終了する。
【０１７５】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ホスト３とストレージ１とが複数パスで接続されている場合に、全パスについて新シークレットセッションを確立させた後、旧シークレットの切断処理を各パスで並行して実行させる。従って、全てのパスについてシークレットを変更するまでに要する時間を短縮することができ、使い勝手が向上する。
【実施例６】
【０１７６】
図２３，図２４に基づいて第６実施例を説明する。本実施例は、複数のホスト３が同一のボリュームを共有している場合（クラスタ構成の場合）に、ボリュームを共有する全てのホスト３でシークレットが変更されるまで旧シークレットを維持する。
【０１７７】
図２３は、本実施例のストレージシステムで使用されるセッションテーブル１２１及びシークレットテーブル１２２を示す説明図である。これらの各テーブル１２１，１２２は、ストレージ１内に記憶されている。
【０１７８】
本実施例のシークレットテーブル１２２には、ボリュームID１２２５が追加されている。図２３のセッションテーブル１２１に示すように、本実施例では、例えば、一つのボリューム（VID１）に複数のパス（PID１，PID４）が設定されている。
【０１７９】
図２４は、旧シークレットセッションを切断し、切断した旨をホスト３に応答するための処理を示すフローチャートである。本処理は、ストレージ１により実行される。
【０１８０】
ストレージ１は、ホスト３からのセッション切断要求を受信すると、このセッション切断要求に関するボリュームID及びバージョンを、図２３に示すセッションテーブル１２１からそれぞれ読み出す（Ｓ２３０１）。
【０１８１】
ストレージ１は、切断を要求されたセッションのエントリをセッションテーブル１２１から削除する（Ｓ２３０２）。これにより、ホスト３から指示されたセッションが切断される。
【０１８２】
ストレージ１は、Ｓ２３０２で切断されたセッションが旧シークレットセッションであるか否かを、Ｓ２３０１で取得したバージョンに基づいて判定する（Ｓ２３０３）。旧シークレットセッションの切断ではない場合（S2303:NO）、即ち、新シークレットセッションを切断した場合は、シークレットテーブル１２２を更新する必要がないため、本処理を終了する。
【０１８３】
Ｓ２３０２で切断されたセッションが旧シークレットセッションの場合（S2303:YES）、ストレージ１は、セッションテーブル１２１を参照し、Ｓ２３０１で取得したボリュームIDと同一のボリュームIDが関連づけられている別のエントリが存在するか否かを判定する（Ｓ２３０４）。即ち、ストレージ１は、同一のボリュームを共有する別のホスト３が存在するか否かを調べる。
【０１８４】
同一のボリュームを共有する別のホスト３が存在する場合（S2304:YES）、ストレージ１は、シークレットテーブル１２２を更新せずに本処理を終了する。一方、同一のボリュームを共有する別のホスト３が存在しなくなった場合（S2304:NO）、ストレージ１は、図２３に示すシークレットテーブル１２２から旧シークレットのエントリを削除する（Ｓ２３０５）。
【０１８５】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ホスト３がクラスタを構成している場合でも、整合性のあるシークレット変更を行うことができる。
【実施例７】
【０１８６】
図２５〜図２９に基づいて第７実施例を説明する。本実施例では、一方のストレージ１が他方のストレージ６の有する記憶領域を利用している場合において、ホスト３と一方のストレージ１との間のシークレット変更を契機として、一方のストレージ１と他方のストレージ６との間のシークレットも変更させる。
【０１８７】
図２５は、本実施例によるストレージシステムの全体構成を示す説明図である。本実施例のストレージシステムでは、外部ストレージ装置（以下、外部ストレージ）６が追加されている。
【０１８８】
外部ストレージ６とは、ストレージ１の外部に存在するストレージである。ストレージ１と外部ストレージ６とは、SAN１０を介して双方向通信可能に接続されている。ストレージ１は、外部ストレージ６の有する記憶領域（ボリューム）をストレージ１の内部に取り込み、外部ストレージ６の記憶領域が、あたかもストレージ１の記憶領域であるかのようにホスト３に見せかける。
【０１８９】
例えば、ストレージ１の内部に仮想的なボリュームを設け、この仮想ボリュームのアドレス空間に外部ストレージ６内のボリュームのアドレス空間を割り付けることにより、外部ストレージ６のボリュームをストレージ１内の実ボリュームであるかのようにして使用することができる。
【０１９０】
仮想ボリュームは、ホスト３からアクセスされる対象となるが、実際にデータを格納するのは外部ストレージ６内のボリューム（実ボリューム）である。ホスト３が仮想ボリュームにアクセスすると、ストレージ１は、ホスト３から受信したコマンドを外部ストレージ６に送信するためのコマンドに変換する。ストレージ１は、外部ストレージ６内のボリュームにデータを読み書きし、この読み書きの結果をホスト３に返す。
【０１９１】
ストレージ１を接続元ストレージまたはメインストレージと、外部ストレージ６を接続先ストレージまたはサブストレージと呼ぶこともできる。
【０１９２】
図２６は、ストレージ１の構成を示す説明図である。図３に示す構成図に比べて、本実施例では、外部ストレージ管理プログラム１１５及び外部ストレージセッションテーブル１２３が追加されている。
【０１９３】
外部ストレージ管理プログラム１１５は、ストレージ１が外部ストレージ６内のボリュームを取り込んで使用するためのプログラムである。外部ストレージ管理プログラム１１５は、上述のように、ホスト３からのアクセス要求（リードコマンドやライトコマンド）を、ストレージ１から外部ストレージ６へのアクセス要求に変換する。
【０１９４】
図２７は、外部ストレージセッションテーブル１２３の一例を示す説明図である。この外部ストレージセッションテーブル１２３は、例えば、パスID１２３１と、外部パスID１２３２と、外部セッションID１２３３及びバージョン１２３４を対応付けて管理している。
【０１９５】
パスID１２３１とは、ホスト３とストレージ１との間のパスを識別するための情報である。外部パスID１２３２とは、ストレージ１と外部ストレージ６との間のパス（外部接続用のパス）を識別するための情報である。外部セッションID１２３３とは、ストレージ１と外部ストレージ６とを接続する外部パスに設けられたセッションを識別するための情報である。
【０１９６】
図２８，図２９は本実施例によるストレージシステムにおいてシークレットを変更する場合の全体動作を示すフローチャートである。ストレージ１は、管理者からの指示に基づいて、シークレット変更画面Ｂ５００を表示させる処理を実行し（Ｓ２７０１）、シークレット変更処理を実行する（Ｓ２７０２）。ストレージ１は、シークレットテーブル１２２に新シークレットを追加すると共に、外部ストレージ６に対してシークレットの変更を要求する（Ｓ２７０３）。
【０１９７】
外部ストレージ６は、ストレージ１と同様のセッションテーブル及びシークレットテーブルを備えている。外部ストレージ６は、ストレージ１からの要求に従って、新シークレットを外部ストレージ６内のシークレットテーブルに追加する。外部ストレージ６は、外部ストレージ６内のシークレットが変更された旨の応答をストレージ１に応答する（Ｓ２７０４）。なお、ストレージ１がシークレット変更要求を送信するかわりに、管理者が外部ストレージ６のシークレット変更手段（GUIやCLI等）を用いて、  Ｓ２７０１の前に、外部ストレージ６のシークレットを変更しておいてもよい。
【０１９８】
一方、ホスト３は、管理者からの指示に基づいて、シークレット変更画面Ｂ５２０を表示させる処理を実行し（Ｓ２７０５）、続いて、シークレットテーブル３２２に新シークレットのエントリを追加する処理を実行する（Ｓ２７０６）。
【０１９９】
そして、第１実施例で述べたと同様に、ホスト３は、新シークレットセッションの確立をストレージ１に要求するための処理を開始する（Ｓ２７０７）。ホスト３がストレージ１に新シークレットセッションの確立を要求すると（Ｓ２７０８）、ストレージ１は、新シークレットセッションを確立させるための処理を実行する（Ｓ２７０９）。そして、ストレージ１は、外部ストレージ６に対して、新シークレットセッションの確立を要求する（Ｓ２７１０）。なお、外部ストレージ６が、１つのイニシエータとの間には１つのセッションしか確立しない制限を有している場合、ストレージ１は、旧シークレットセッション確立時とは異なるイニシエータのiSCSI名を用いて、新シークレットセッションを確立してもよい。
【０２００】
外部ストレージ６から新シークレットセッションを確立した旨の応答を受信すると（Ｓ２７１１）、ストレージ１は、新シークレットセッションが確立された旨の応答をホスト３に送信する（Ｓ２７１２）。
【０２０１】
図２９は、図２８に続くフローチャートである。第１実施例で述べたと同様に、ホスト３は、I/O要求処理を開始する（Ｓ２８０１）。ホスト３は、新シークレットセッションの確立後に発行する新コマンドを新シークレットセッションを用いてストレージ１に送信する（Ｓ２８０２）。
【０２０２】
ストレージ１は、I/O要求処理を開始する（Ｓ２８０３）。ストレージ１は、ホスト３から受信したコマンドを外部ストレージ６に送信するためのコマンドに変換し、この変換されたコマンドを外部ストレージ６に送信する（Ｓ２８０４）。ホスト３から新コマンドを受信した場合、ストレージ１は、新コマンドを変換し、新シークレットセッションを介して外部ストレージ６に送信する（Ｓ２８０４）。
【０２０３】
一方、外部ストレージ６は、ストレージ１から受信したコマンドの処理結果をストレージ１に送信する（Ｓ２８０５，Ｓ２８０７）。ストレージ１と外部ストレージ６との間に新シークレットセッションが確立されるよりも前に、ストレージ１から送信されたコマンド（旧コマンド）は、旧シークレットセッションを介して、外部ストレージ６からストレージ１に送信される。
【０２０４】
同様に、ストレージ１は、外部ストレージ６からの応答を受信すると、この応答をホスト３に送信するための応答に変換し、この変換された応答を旧シークレットセッションを介してホスト３に送信する（Ｓ２８０６，Ｓ２８０８）。
【０２０５】
ホスト３は、旧コマンドの処理が全て完了したことを確認すると、旧シークレットセッションの切断を要求するための処理を実行する（Ｓ２８０９）。ストレージ１は、ホスト３から旧シークレットセッションの切断要求を受信すると（Ｓ２８１０）、旧シークレットセッションを切断等するための処理を実行する（Ｓ２８１１）。
【０２０６】
ストレージ１は、外部ストレージ６に対して、旧シークレットセッションの切断を要求する（Ｓ２８１２）。外部ストレージ６は、ストレージ１からの切断要求に応じて、旧シークレットセッションを切断する。
【０２０７】
外部ストレージ６から旧シークレットセッションが切断された旨の応答を受信すると（Ｓ２８１３）、ストレージ１は、旧シークレットセッションが切断された旨の応答をホスト３に送信する（Ｓ２８１４）。
【０２０８】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ストレージ１が外部ストレージ６を利用している場合に、ホスト３とストレージ１との間のシークレット変更と同期させて、ストレージ１と外部ストレージ６との間のシークレット変更を行うことができる。従って、ストレージ１が外部ストレージ６を利用している場合でも、ホスト３とストレージ１の間、及び、ストレージ１と外部ストレージ６との間のセッションをそれぞれ維持したままの状態で、シークレットを変更することができ、可用性とセキュリティ性を両立させることができる。
【実施例８】
【０２０９】
図３０〜図３６に基づいて第８実施例を説明する。本実施例では、ストレージシステムに認証サーバ７を設け、シークレット変更時の認証を認証サーバ７により実行する。
【０２１０】
図３０は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムは、第１実施例で述べた構成に加えて、認証サーバ７を備える。認証サーバ７は、シークレット変更時のシークレット（新シークレット）が正しいか否かを認証するためのコンピュータ装置である。認証サーバ７は、通信線１７を介してSAN１０に接続されており、認証サーバ７と各ホスト３及びストレージ１とはSAN１０を介して双方向通信可能に接続されている。なお、ストレージシステムに図１４に示した管理ネットワーク１２が存在する場合、認証サーバ７は管理ネットワーク１２に通信線１６を介して接続されてもよい。
【０２１１】
図３１は、本実施例によるストレージ１の構成を示す説明図である。図３に示す第１実施例のストレージ１と比較して、本実施例のストレージ１は、認証サーバ通信プログラム１１６を備えている。また、本実施例では、シークレット管理を認証サーバ７が行うため、ストレージ１からシークレットテーブル１２２が取り除かれている。
【０２１２】
図３２は、認証サーバ７の構成を示す説明図である。認証サーバ７は、例えば、主メモリ７０１と、バス７０２と、ディスク装置７０３と、CPU７０４と、ディスプレイデバイス７０５と、ポインティングデバイス７０６と、キーボードスイッチ７０７と、ポート７０８を備えて構成される。主メモリ７０１，ディスク装置７０３，CPU７０４、ポート７０８等は、バス７０２を介して相互に接続されている。
【０２１３】
主メモリ７０１には、ディスク装置７０３に記憶された各プログラム７１１，７１２が必要に応じて転送される。CPU７０４は、主メモリ７０１に読み込まれたプログラムを実行することにより、GUI制御機能及び認証機能をそれぞれ実現させる。
【０２１４】
ディスク装置７０３には、例えば、GUI制御プログラム７１１と、認証プログラム７１２と、シークレットテーブル７２１を記憶させることができる。
【０２１５】
GUI制御プログラム７１１は、ディスプレイデバイス７０５に表示されるシークレット変更画面を制御する。また、GUI制御プログラム７１１は、ポインティングデバイス７０６またはキーボードスイッチ７０７を介して管理者から入力された情報を、認証プログラム７１２に伝達する。
【０２１６】
認証プログラム７１２は、問合せされたシークレットが正しいシークレットであるか否かを判定し、その判定結果を出力するプログラムである。
【０２１７】
図３３は、シークレットテーブル７２１の構成を示す説明図である。シークレットテーブル７２１は、例えば、ユーザID７２１１及びシークレット７２１２を対応付けて管理している。
【０２１８】
図３４は、シークレット変更時の全体動作を示すフローチャートである。認証サーバ７は、管理者からの指示に基づいて、シークレット変更画面を表示させるための処理を実行する（Ｓ３３０１）。このシークレット変更画面は、例えば、図６（ｂ）に示すシークレット変更画面Ｂ５２０のように構成することができる。
【０２１９】
管理者がシークレット変更に必要な情報（新シークレット等）を認証サーバ７に入力すると、認証サーバ７は、シークレット変更処理を実行する（Ｓ３３０２）。このシークレット変更処理では、認証サーバ７は、シークレットテーブル７２１に新シークレットに関するエントリを追加する。
【０２２０】
管理者は、新シークレットを認証サーバ７に登録した後で、ホスト３にシークレットの変更を指示する。ホスト３は、管理者からシークレットの変更指示が入力されると、管理者にシークレット変更画面Ｂ５２０を提供し（Ｓ３３０３）、前記第１実施例で述べたと同様に、シークレット変更処理を実行する（Ｓ３３０４）。
【０２２１】
ホスト３は、新シークレットセッションの確立を要求するための処理を実行する（Ｓ３３０５）。ストレージ１は、新シークレットセッションの確立要求をホスト３から受信すると（Ｓ３３０６）、新シークレットセッションを確立等するための処理を実行する（Ｓ３３０７）。Ｓ３３０７の詳細は、図３５と共に後述する。
【０２２２】
ストレージ１は、ホスト３から通知された新シークレットの認証を認証サーバ７に要求する（Ｓ３３０８）。認証サーバ７は、ストレージ１から受信した新シークレットがシークレットテーブル７２１に登録されているか否かを調べる。ストレージ１から受信した新シークレットがシークレットテーブル７２１に登録されている場合、認証は成功する。ストレージ１から受信した新シークレットがシークレットテーブル７２１に登録されていない場合、認証は失敗する。
【０２２３】
ストレージ１は、認証サーバ７から認証成功の応答を受信すると（Ｓ３３０９）、新シークレットセッションを確立し、新シークレットセッションが確立された旨をホスト３に通知する（Ｓ３３１０）。
【０２２４】
以下第１実施例で述べたと同様に、ホスト３はI/O要求処理を実行する（図示省略）。そして、旧コマンドの処理が全て完了すると、ホスト３は、旧シークレットセッションの切断を要求するための処理を実行する（Ｓ３３１１）。
【０２２５】
ストレージ１は、ホスト３から旧シークレットセッションの切断要求を受信すると（Ｓ３３１２）、旧シークレットセッションを切断し、切断した旨を応答するための処理を実行する（Ｓ３３１３）。Ｓ３３１３については、図３６で詳述する。そして、ストレージ１は、旧シークレットセッションの切断完了をホスト３に応答する（Ｓ３３１４）。
【０２２６】
図３５は、新シークレットセッションを確立等するための処理Ｓ３３０７の詳細を示すフローチャートである。ストレージ１は、ホスト３から受信したセッション確立要求の中からユーザID及びシークレット（新シークレット）を取得する（Ｓ３４０１）。
【０２２７】
ストレージ１は、Ｓ３４０１で取得したユーザID及びシークレットに基づいて、認証要求を生成し、この生成された認証要求を認証サーバ７に送信する（Ｓ３４０２）。ストレージ１は、認証サーバ７からの認証応答を待つ（Ｓ３４０３）。
【０２２８】
認証サーバ７から認証応答を受信すると（S3403:YES）、ストレージ１は、認証が成功したか否かを判定する（Ｓ３４０４）。認証が成功した場合（S3404:YES）、ストレージ１は、セッションテーブル１２１に新シークレットセッションための新規エントリを追加する（Ｓ３４０５）。そして、ストレージ１は、新シークレットセッションが確立された旨をホスト３に通知する（Ｓ３４０６）。
【０２２９】
これに対し、認証が失敗した場合（S3404:NO）、Ｓ３３０６でホスト３から通知されたシークレットが誤ったシークレットであるため、ストレージ１は、セッションを確立することなく、エラー応答をホスト３に送信する（Ｓ３４０７）。
【０２３０】
図３６は、旧シークレットセッションを切断等するための処理Ｓ３３１３の内容を示すフローチャートである。ストレージ１は、ホスト３から切断を要求されたセッションのエントリをセッションテーブル１２１から削除する（Ｓ３５０１）。
【０２３１】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ストレージシステム内のシークレットを一元的に管理するための認証サーバ７を設ける構成のため、ストレージ１内でシークレットを管理する必要がない。従って、複数のストレージを有するストレージシステムにおいて、より簡単にシークレットを変更することができる。
【実施例９】
【０２３２】
図３７〜図４２に基づいて第９実施例を説明する。本実施例では、仕掛中の旧コマンドの処理が全て完了するのを確認した後で、新シークレットセッションを設定する。
【０２３３】
図３７は、本実施例によるホスト３の構成を示す説明図である。このホスト３は、主メモリ３０１内にコマンドバッファ３３１を備えている。コマンドバッファ３３１は、後述のように、シークレット変更処理の実行後に発行された新コマンドを一時的に保留しておくための記憶領域である。
【０２３４】
図３８は、本実施例によるホスト３が使用するセッションテーブル３２１及びシークレットテーブル３２２を示す説明図である。第１実施例で述べたセッションテーブル及びシークレットテーブルと異なり、本実施例のセッションテーブル３２１及びシークレットテーブル３２２は、バージョン３２１４，３２２４を管理しない。
【０２３５】
図３９は、シークレット変更時の全体動作を示すフローチャートである。ストレージ１は、管理者からの指示に応じて、シークレット変更画面Ｂ５００を表示させるための処理を実行する（Ｓ３８０１）。そして、ストレージ１は、管理者から入力された新シークレットをシークレットテーブル１２２に追加する（Ｓ３８０２）。
【０２３６】
ホスト３は、管理者からの指示に応じて、シークレット変更画面Ｂ５２０を表示し（Ｓ３８０３）、管理者から入力された新シークレットに基づいて、シークレットを変更するための処理を実行する（Ｓ３８０４）。
【０２３７】
図４０を参照する。シークレット変更処理Ｓ３８０４では、管理者がシークレット変更画面Ｂ５２０に入力した値に基づいて、図３８に示すシークレットテーブル３２２のエントリを変更する（Ｓ３９０１）。即ち、この時点で、旧シークレットは新シークレットに書き換えられる。
【０２３８】
図３９に戻る。ホスト３は、I/O要求処理を実行する（Ｓ３８０５）。このI/O要求処理の詳細を図４１を参照して説明する。ホスト３は、新規コマンドを発行するか否かを判定する（Ｓ４００１）。新規コマンドを発行する場合（S4001:YES）、この新コマンドを送信すべきセッション（新シークレットセッションである。しかし、この時点では、新シークレットセッションは確立されていない）の仕掛中コマンドリスト３２１３に、新コマンドのコマンドIDを追加する（Ｓ４００２）。そして、ホスト３は、その新コマンドをコマンドバッファ３３１に格納させる（Ｓ４００３）。即ち、新コマンドはストレージ１に送信されず、一時保留の状態に置かれる。
【０２３９】
新コマンドの発行ではない場合（S4001:NO）、ホスト３は、ストレージ１からの応答を受信したか否かを判定する（Ｓ４００４）。ストレージ１からの応答を受信した場合（S4004:YES）、ホスト３は、応答を受信したコマンドのコマンドIDを仕掛中コマンドリスト３２１３から削除する（Ｓ４００５）。
【０２４０】
図３９に戻る。上述のように、I/O要求処理（Ｓ３８０５）では、新コマンドの発行を一時的に保留し、全ての旧コマンドに関する応答を受信するまで待機する（Ｓ３８０６，Ｓ３８０７）。
【０２４１】
ホスト３は、全ての旧コマンドの応答を受信すると、旧シークレットセッションの切断を要求するための処理を実行する（Ｓ３８０８）。ホスト３は、ストレージ１に旧シークレットセッションの切断を要求する（Ｓ３８０９）。ストレージ１は、ホスト３からの切断要求に応じて旧シークレットセッションを切断し、切断した旨をホスト３に通知する（Ｓ３８１０）。
【０２４２】
ホスト３は、旧シークレットセッションの切断を確認すると、新シークレットの確立をストレージ１に要求する（Ｓ３８１１）。ストレージ１は、ホスト３からのセッション確立要求に応じて、新シークレットセッションを確立し、セッションを確立した旨をホスト３に応答する（Ｓ３８１２）。
【０２４３】
新シークレットセッションが確立されると、ホスト３は、コマンドバッファ３３１に格納しておいた新コマンドを順番に読み出して、新シークレットセッションを介してストレージ１に送信する（Ｓ３８１３）。ストレージ１は、新コマンドの処理を完了すると、ホスト３に応答を返す（Ｓ３８１４）。
【０２４４】
図４２は、旧シークレットセッションの切断を要求するための処理（Ｓ３８０８）の詳細を示すフローチャートである。ホスト３は、旧シークレットセッションの切断をストレージ１に送信する（Ｓ４１０１）。
【０２４５】
ホスト３は、ストレージ１からセッションが切断された旨の応答を受信すると（S4102:YES）、図３８に示すセッションテーブル３２１から旧シークレットセッションのエントリを削除する（Ｓ４１０３）。
【０２４６】
ホスト３は、図３８に示すシークレットテーブル３２２からユーザID及びシークレットを読み出す（Ｓ４１０４）。Ｓ４１０４でシークレットテーブル３２２から読み出されるシークレットは、図３９のＳ３８０４で新シークレットに更新済みである。
【０２４７】
ホスト３は、シークレットテーブル３２２から読み出した新シークレット等に基づいて、セッションの確立をストレージ１に要求する（Ｓ４１０５）。そして、ホスト３は、セッションが確立された旨の応答をストレージ１から受信すると（S4106:YES）、コマンドバッファ３３１に格納されているコマンドを読み出して、ストレージ１に送信する（Ｓ４１０７）。コマンドバッファ３３１に格納されている全てのコマンドが新シークレットセッションを介してストレージ１に送信されるまで、ホスト３は、Ｓ４１０７を繰り返し実行する（Ｓ４１０８）。
【０２４８】
このように構成される本実施例も前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、旧コマンドに関する全ての応答を受信してから新シークレットセッションを確立し、一時保留状態に置かれた新コマンドをストレージ１に送信するため、制御構造を簡素化することができる。
【０２４９】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【０２５０】
例えば、シークレット変更時における仕掛中のコマンド数（実行中の旧コマンドの数）が多い場合、ホスト３が仕掛中の旧コマンドに関する全ての応答を受信するまで、時間を要する可能性がある。この結果、シークレット変更が完了するまでの時間が増大するおそれもある。この問題を解決するために、ホスト３は、以下の処理を行うことができる。（ａ）ホスト３は、シークレット変更処理を行った後で、旧シークレットセッションの仕掛中コマンド数を調べ、（ｂ）この仕掛中コマンド数が予め設定された閾値を超過しているか否かを判定し、仕掛中コマンド数が閾値を超えている場合は、新コマンドをストレージ１へ送信せずに、主メモリ３０１内のコマンドバッファ３３１に記憶させ、（ｃ）その後、仕掛中コマンド数が閾値を下回った場合に、コマンドバッファ３３１に記憶された新コマンドをストレージ１へ送信する。このように、ストレージ１の負荷増加を抑えることにより、シークレット変更が完了するまでの時間を短縮することも可能である。
【図面の簡単な説明】
【０２５１】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】第１実施例に係るストレージシステムの全体構成を示す説明図である。
【図３】ストレージ装置の構成を示す説明図である。
【図４】ホストの構成を示す説明図である。
【図５】セッションテーブル及びシークレットテーブルの構成を示す説明図である。
【図６】シークレット変更画面を示す説明図である。
【図７】シークレットを変更する際の全体動作を示すフローチャートである。
【図８】ストレージ側及びホスト側のシークレット変更処理を示すフローチャートである。
【図９】新シークレットセッションの確立を要求する処理を示すフローチャートである。
【図１０】新シークレットセッションを確立させる処理を示すフローチャートである。
【図１１】I/O要求処理を示すフローチャートである。
【図１２】旧シークレットセッションの切断を要求する処理を示すフローチャートである。
【図１３】旧シークレットセッションを切断する処理を示すフローチャートである。
【図１４】第２実施例に係るストレージシステムの全体構成を示す説明図である。
【図１５】管理サーバの構成を示す説明図である。
【図１６】ホストテーブルの構成を示す説明図である。
【図１７】シークレット変更画面を示す説明図である。
【図１８】シークレットを変更する際の全体動作を示すフローチャートである。
【図１９】第３実施例に係るストレージシステムにおいて、シークレットを変更する際の全体動作を示すフローチャートである。
【図２０】第４実施例に係るストレージシステムにおいて使用されるホスト側のセッションテーブル及びシークレットテーブルを示す説明図である。
【図２１】パス選択処理を示すフローチャートである。
【図２２】第５実施例に係るストレージシステムで実行されるパス選択処理を示すフローチャートである。
【図２３】第６実施例に係るストレージシステムで使用されるストレージ側のセッションテーブル及びシークレットテーブルを示す説明図である。
【図２４】旧シークレットセッションを切断する処理を示すフローチャートである。
【図２５】第７実施例に係るストレージシステムの全体構成を示す説明図である。
【図２６】ストレージ装置の構成を示す説明図である。
【図２７】外部ストレージへのセッション等を管理するテーブルを示す説明図である。
【図２８】シークレットを変更する際の全体動作を示すフローチャートである。
【図２９】図２８に続くフローチャートである。
【図３０】第８実施例に係るストレージシステムの全体構成を示す説明図である。
【図３１】ストレージ装置の構成を示す説明図である。
【図３２】認証サーバの構成を示す説明図である。
【図３３】シークレットテーブルを示す説明図である。
【図３４】シークレットを変更する際の全体動作を示すフローチャートである。
【図３５】新シークレットセッションを確立させる処理を示すフローチャートである。
【図３６】旧シークレットセッションを切断させる処理を示すフローチャートである。
【図３７】第９実施例に係るストレージシステムにおけるホストの構成を示す説明図である。
【図３８】ホスト側のセッションテーブル及びシークレットテーブルを示す説明図である。
【図３９】シークレットを変更する際の全体動作を示すフローチャートである。
【図４０】シークレット変更処理を示すフローチャートである。
【図４１】I/O要求処理を示すフローチャートである。
【図４２】旧シークレットセッションの切断を要求する処理を示すフローチャートである。
【符号の説明】
【０２５２】
１…ストレージ装置、２…管理端末、３…ホスト、４…クライアント端末、５…管理サーバ、６…外部ストレージ装置、７…認証サーバ、１０…SAN、１１…LAN、１２…管理ネットワーク、１５，１６，１７，１８，１９…通信線
【図１】
2008009777.tif 000003
【図２】
2008009777.tif 000004
【図３】
2008009777.tif 000005
【図４】
2008009777.tif 000006
【図５】
2008009777.tif 000007
【図６】
2008009777.tif 000008
【図７】
2008009777.tif 000009
【図８】
2008009777.tif 000010
【図９】
2008009777.tif 000011
【図１０】
2008009777.tif 000012
【図１１】
2008009777.tif 000013
【図１２】
2008009777.tif 000014
【図１３】
2008009777.tif 000015
【図１４】
2008009777.tif 000016
【図１５】
2008009777.tif 000017
【図１６】
2008009777.tif 000018
【図１７】
2008009777.tif 000019
【図１８】
2008009777.tif 000020
【図１９】
2008009777.tif 000021
【図２０】
2008009777.tif 000022
【図２１】
2008009777.tif 000023
【図２２】
2008009777.tif 000024
【図２３】
2008009777.tif 000025
【図２４】
2008009777.tif 000026
【図２５】
2008009777.tif 000027
【図２６】
2008009777.tif 000028
【図２７】
2008009777.tif 000029
【図２８】
2008009777.tif 000030
【図２９】
2008009777.tif 000031
【図３０】
2008009777.tif 000032
【図３１】
2008009777.tif 000033
【図３２】
2008009777.tif 000034
【図３３】
2008009777.tif 000035
【図３４】
2008009777.tif 000036
【図３５】
2008009777.tif 000037
【図３６】
2008009777.tif 000038
【図３７】
2008009777.tif 000039
【図３８】
2008009777.tif 000040
【図３９】
2008009777.tif 000041
【図４０】
2008009777.tif 000042
【図４１】
2008009777.tif 000043
【図４２】
2008009777.tif 000044