(57)【要約】【課題】  ボリュームとパスの事前確保をより確実にしたストレージ予約管理方法を提供することにある。【解決手段】  ユーザは表示装置２１に表示される予約管理のための画面を見ながら、入力装置２２を操作してボリュームやポートを予約するために必要な情報の設定を行う。次にストレージ管理プログラム２００はポリシーベースのボリューム検索サブプログラム３００を利用して予約可能ボリューム及びポートを検索する。このとき、性能に関するポリシーが入力された場合は、ストレージ性能管理サーバ３の性能分析プログラム９００に性能を満たすかどうかを問合せる。ボリューム及びポートが見つかった場合は、予約サブプログラム４００を用いて予約管理ＤＢ２０に予約情報を記憶し、ボリューム及びポートが見つからない場合は、ボリューム調整サブプログラム５００を利用して予約済みボリュームに対して代替ボリュームが存在するかどうか判定する。【選択図】  図１
2006106993.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからのストレージの使用予約を入力し、入力に応じたストレージのボリューム及びポートを予約できるかどうかの判定をし、予約できる場合にはボリューム及びポートの予約を記録手段に記録し、ボリュームの予約できない場合にはボリュームの調整をして予約可否を判断することを特徴としたストレージの予約管理方法。
【請求項２】
請求項１のストレージの予約管理方法において、ボリューム及びポートを指定する際、性能や信頼性のレベルを指定し、指定された性能や信頼性を満たすボリューム及びポートを検索し、検索されたボリューム及びポートを予約することを特徴としたストレージの予約管理方法。
【請求項３】
請求項２において、性能や信頼性のレベルによって検索されるボリュームやポートは要求された性能や信頼性のレベル以上のレベルにすることによって、ストレージに余裕がある場合は、要求レベル以上のボリュームやポートを使用可能とすることを特徴とするストレージの予約管理方法。
【請求項４】
請求項３において、新規に予約を受入れ、性能や信頼性のレベルを満たすボリューム及びポートが検出できなかった場合に、既に予約済みで、要求レベルより高いレベルで予約されている予約について、要求レベルの範囲内で、別のボリュームやポートに割り当て可能かどうか判断し、可能であれば、別のボリューム及びポートに予約を変更し、既に予約していたボリューム及びポートを該新規予約に使用できるように該ボリューム調整をすることを特徴としたストレージの予約管理方法。
【請求項５】
請求項４において、新規に予約を受入れ、性能や信頼性のレベルを満たすボリューム及びポートが検出できなかった場合に、既に使用中で、要求レベルより高いレベルで予約されている割り当てについて、要求レベルの範囲内で、別のボリュームやポートに割り当て可能かどうか判断し、可能であれば、別のボリューム及びポートを割り当て、使用していたボリューム及びポートを該新規予約に使用できるように該ボリューム調整をすることを特徴としたストレージの予約管理方法。
【請求項６】
請求項２において、ユーザが入力したポリシーを満たすボリュームおよびポートが見つからない場合に、使用期間に利用可能なボリュームとポートを仮予約として登録することを特徴としたストレージの予約管理方法。
【請求項７】
請求項６において、ユーザが入力したポリシーを満たすボリュームおよびポートが見つからない場合に、使用期間に容量とポート数のみ条件を満たすボリュームとポートを仮予約として登録することを特徴としたストレージの予約管理方法。
【請求項８】
請求項６において、ユーザが入力したポリシーを満たすボリュームおよびポートが見つからない場合に、使用期間にポリシーとポート数のみ条件を満たすボリュームとポートを仮予約として登録することを特徴としたストレージの予約管理方法。
【請求項９】
請求項６において、ユーザが入力したポリシーを満たすボリュームおよびポートが見つからない場合に、使用期間にポリシーと容量のみ条件を満たすボリュームとポートを仮予約として登録することを特徴としたストレージの予約管理方法。
【請求項１０】
請求項６において、他の予約がキャンセルされたときに、仮予約中の予約の中に、キャンセルされたボリュームやポートがより、ポリシーレベルに近い場合は、仮予約しているボリュームやポートをキャンセルボリュームやポートに置き換えることを特徴としたストレージの予約管理方法。
【請求項１１】
ユーザからのストレージの使用の予約を受入れ、受入れたストレージのボリューム及びポートの予約ができるかどうかの判定をし、予約できる場合にはボリューム及びポートの予約を記録手段に記録し、ボリュームに空き状態のボリュームがない場合には予約済みのボリュームに代替できるかを判断し、代替できるのであれば予約済みボリュームを代替し、新規予約の登録を記録手段に登録し、予約済みの代替ボリュームがない場合には、使用済みのボリュームに代替できるかを判断し、代替ができれば使用済みボリュームを再配置し、新規予約の登録を記録手段に登録することを特徴としたストレージの予約管理方法。
【請求項１２】
業務処理する複数の処理装置と、該処理装置とネットワークを介して接続され、該処理装置で処理される情報を記憶する複数のボリュームを備えるストレージ装置と、
該処理装置及び該ストレージ装置と接続され該ストレージの管理をする手段を備えるストレージ管理装置と、ストレージの管理のための関連する情報を表示する表示装置及び関連する情報を入力する入力装置とを備えるクライアントとを有するストレージ管理システムにおいて、
該ストレージ管理装置は、ボリューム及びポートの予約を管理する手段と、該予約を格納する記憶装置を備えたことを特徴としたストレージ管理システム。
【請求項１３】
請求項１２記載の前記ストレージ管理システムにおいて、ストレージ装置およびネットワークの性能を分析する手段を備え、分析結果を格納する記憶装置を有するストレージ性能管理装置と接続し、ポリシーベースの予約情報として性能ポリシーが入力された際、ボリュームが性能ポリシーを満たすかどうかを該サーバに問合せる手段を有することを特徴としたストレージ管理システム。
【請求項１４】
請求項１２記載の前記ストレージ管理システムにおいて、該ストレージ管理装置は、予約可能なボリュームおよびポートが無い場合に、予約済みもしくは割当済みボリュームで予約が可能かどうかを判断するボリューム調整手段を有すると共に、ボリューム調整が可能な場合には、予約ボリュームを変更する手段と、割当済みボリュームを再配置する手段とを有することを特徴とするストレージ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置の割り当てを管理する技術に関する。
【背景技術】
【０００２】
例えば、特許文献１に、ボリューム管理方法や記憶装置に対するアクセスインターフェースが異なる計算機が記憶装置を共用する計算機システムにおいて、両計算機からボリューム利用を一括管理し、それらによるボリュームの共用関係を管理するといったボリュームの割り当てを管理する技術が開示されている。
【０００３】
【特許文献１】特開2004-164165号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、ストレージ装置と、サーバ等のコンピュータ装置を相互接続したネットワークを管理するための技術としては、ボリュームやパスを“割り当て中”か、“未割り当て”かどうかのみ管理していた。そのため、使用予定があると事前にわかっていたとしても、事前にボリュームやパスを確保しておくことができなかった。例えば、スケジュールシステムを用いて、ボリュームの予約を可能にしたとしても、利用可能なポートが見つからず、使用時にパスが確保できないという問題があった。
【０００５】
本発明の目的は、予め、使用予定がわかっているボリューム及びパスを予約ボリューム及び予約ポートとして管理することによって、ボリュームとパスの事前確保をより確実にし、さらに、将来的なストレージ装置拡張計画を支援することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、ユーザからのストレージの使用予約を入力し、入力に応じたストレージのボリューム及びポートを予約できるかどうかの判定をし、予約できる場合にはボリューム及びポートの予約を記録手段に記録し、ボリュームの予約できない場合にはボリュームの調整をして予約可否を判断することを特徴とする。更に説明すると、ユーザは表示装置２１に表示される予約管理のための画面を見ながら、入力装置２２を操作してボリュームやポートを予約するために必要な情報の設定を行う。次にストレージ管理プログラム２００はポリシーベースのボリューム検索サブプログラム３００を利用して予約可能ボリューム及びポートを検索する。このとき、性能に関するポリシーが入力された場合は、ストレージ性能管理サーバ３の性能分析プログラム９００に性能を満たすかどうかを問合せる。ボリューム及びポートが見つかった場合は、予約サブプログラム４００を用いて予約管理ＤＢ２０に予約情報を記憶する。ボリューム及びポートが見つからなかった場合は、ボリューム調整サブプログラム５００を利用して予約済みボリュームに対して代替ボリュームが存在するかどうか判定する。予約済みボリュームに代替ボリュームが存在した場合は、予約済みボリュームの予約を代替ボリュームに変更し、新規に入力された情報に対する予約を行う。予約済みボリュームにも存在しない場合は、ボリューム調整サブプログラム５００を利用して使用済みボリュームに対して代替ボリュームが存在するかどうか判定し、存在した場合は、再配置プログラム７００を利用して、代替ボリュームに再配置し、新規に入力された情報に対する予約を追加する。使用済みボリュームにも代替ボリュームが存在しない場合はストレージ管理クライアント２の予約管理ＧＵＩ２３を通して予約ができなかったことをユーザに通知する。
【０００７】
予約ができた場合、予約通知プログラム６００は、予約管理ＤＢ２０を監視し、使用開始日であることをストレージ管理クライアント２の予約管理ＧＵＩ２３通してユーザに通知するとともに、ストレージ管理プログラム１００を利用してストレージ管理ＤＢ１０に対して、ボリュームの割り当てやボリュームの割り当て解除を行う。
【発明の効果】
【０００８】
本発明によれば、予め、使用予定がわかっているボリューム及びパスを予約ボリューム及び予約パスとして管理することが可能になり、ボリュームとパスの事前確保をより確実にすることができる。事前に将来的なボリュームの使用状況が把握できるので、将来的なストレージ装置拡張計画を支援することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明の一実施形態について説明する。
【００１０】
図１は、本発明の一実施例に係るストレージ管理システムの全体構成を示す。
第１ホスト４、第２ホスト５、及び第３ホスト６はSAN(Storage Area Network)を介して第１ストレージ装置７及び第２ストレージ装置８に接続されている。また、第１ホスト４、第２ホスト５、第３ホスト６および第１ストレージ装置７、第２ストレージ装置８はLANを介して、ストレージを管理するためのストレージ管理サーバ１およびストレージの性能を管理するためのストレージ性能管理サーバ３、実際にユーザがストレージ管理の操作を行うためのストレージ管理クライアント２に接続されている。
【００１１】
第１ホスト４、第２ホスト５、第３ホスト６はユーザのための業務処理を行う処理装置である。
第１ストレージ装置７、第２ストレージ装置８は、情報を記憶する複数のボリュームを有する。通常これらのボリュームは例えばRAID構成の磁気ディスク装置で構成されている。
ストレージ性能管理サーバ３内のメモリには、性能分析プログラム８００が格納されている。性能分析プログラム８００は性能管理DB30に分析結果を格納し、管理している。性能分析プログラムは周知技術を採用することが可能である。性能管理システムのDＢ30は、ボリュームをキーにボリューム毎に読み取り／書き込み処理の頻度、転送速度、キャッシュヒット率、CPU使用率等の性能データを抽出できる構成とする。
【００１２】
ストレージ管理サーバ１内のメモリには、ストレージ管理プログラム１００、予約管理プログラム２００、予約通知プログラム６００、再配置プログラム７００が格納されている。予約管理プログラム２００は、ポリシーベースのボリューム検索サブプルグラム３００、予約サブプログラム４００、ボリューム調整サブプログラム５００から構成される。
【００１３】
ストレージ管理サーバ１は、ストレージ管理プログラム１００を用いて、第１ストレージ装置７、第２ストレージ装置８の、第１ホスト４、第２ホスト５、第３ホスト６へのボリュームの割り当てやパスの状態を記憶装置であるストレージ管理DB１０に記憶し、管理している。ストレージ管理プログラム１００は周知のストレージ管理プログラムが利用可能である。
【００１４】
ストレージ管理サーバ１は、予約管理プログラム１００を用いて、第１ホスト４、第２ホスト５、第３ホスト６から第１ストレージ装置７、第２ストレージ装置８へのボリュームやパスの予約を受付け、記憶装置である予約管理DB２０に記憶し、管理している。
また、ストレージ管理サーバ１は、要求された予約が行えない場合、必要に応じて再配置プログラム７００を利用してボリュームの割り当ての再配置を行う。再配置プログラム７００としては周知のマイグレーション技術等が利用可能である。ここでは、ストレージ管理サーバ１に、ストレージ管理プログラム１００、予約管理プログラム２００、予約通知プログラム６００、再配置プログラム７００を配置しているが、これらのプログラムは別々のサーバに配置しても構わない。
【００１５】
ストレージ管理クライアント２は、例えば、パーソナルコンピュータであり、プログラムである予約管理GUI２３を格納するメモリと、表示装置２１とマウスやキーボードなどの入力装置２２を備えている。ストレージ管理クライアント２上の予約管理GUI２３はユーザに対して予約管理のためのGUIを提供する。一般に予約管理GUI２３の実装方法としてWWWブラウザまたは専用のクライアントプログラムを利用する。
【００１６】
まず、ユーザは表示装置２１に表示される予約管理のための画面を見ながら、入力装置２２を操作してボリュームやポートを予約するために必要な情報の設定を行う。次にストレージ管理プログラム２００はポリシーベースのボリューム検索サブプログラム３００を利用して予約可能ボリューム及びポートを検索する。このとき、性能に関するポリシーが入力された場合は、ストレージ性能管理サーバ３の性能分析プログラム９００に性能を満たすかどうかを問合せる。ボリューム及びポートが見つかった場合は、予約サブプログラム４００を用いて予約管理ＤＢ２０に予約情報を記憶する。ボリューム及びポートが見つからなかった場合は、ボリューム調整サブプログラム５００を利用して予約済みボリュームに対して代替ボリュームが存在するかどうか判定する。予約済みボリュームに代替ボリュームが存在した場合は、予約済みボリュームの予約を代替ボリュームに変更し、新規に入力された情報に対する予約を行う。予約済みボリュームにも存在しない場合は、ボリューム調整サブプログラム５００を利用して使用済みボリュームに対して代替ボリュームが存在するかどうか判定し、存在した場合は、再配置プログラム７００を利用して、代替ボリュームに再配置し、新規に入力された情報に対する予約を追加する。使用済みボリュームにも代替ボリュームが存在しない場合はストレージ管理クライアント２の予約管理ＧＵＩ２３を通して予約ができなかったことをユーザに通知する。
【００１７】
予約ができた場合、予約通知プログラム６００は、予約管理ＤＢ２０を監視し、使用開始日であることをストレージ管理クライアント２の予約管理ＧＵＩ２３通してユーザに通知するとともに、ストレージ管理プログラム１００を利用してストレージ管理ＤＢ１０に対して、ボリュームの割り当てやボリュームの割り当て解除を行う。
【００１８】
図２は、ストレージ管理DB１０に格納されているボリューム管理テーブル１１００の一例を示すものである。ボリューム管理テーブル１１００には、ストレージ内の物理ボリュームを識別するボリュームID１１０１、ボリュームが“割り当て済み”か“未割り当て”かを示す状態１１０２、ボリュームのRAID構成を示すRAIDレベル１１０３、磁気ディスクのタイプを示すDiskType１１０４、ボリュームの容量１１０５を管理している。本実施例では、サブシステム毎にボリューム管理テーブル１１００を管理しているが複数のサブシステム装置のボリュームを１つのテーブルで管理することも可能である。RAIDレベルには、RAID0,RAID1,RAID5,RAID10等があり、性能や信頼性などが異なる。DiskTypeには例えば、ATA(AT)ベースとFCベースなどがあり、それぞれ価格や信頼性が異なる。 
ボリューム管理テーブル１１００は割り当て済みを含むすべてのボリュームの予約状況を管理している。
【００１９】
図３は、ストレージ管理DB１０に格納されているポート管理テーブル１２００の一例を示すものである。ポート管理テーブル１２００には、ポートを識別するポート番号１２０１、ポートが“使用中”か“空き”か、を示す状態１２０２、ポートに対してセキュリティが設定されているかどうか示すセキュリティ１２０３を管理している。セキュリティでは、セキュリティが設定さえている場合を“ＯＮ”、セキュリティが設定されていない場合を“ＯＦＦ”として管理している。本実施例では、ボリュームをセキュリティグループに登録したホストだけに公開するというセキュリティを例に記載しているが、ポートに対するセキュリティを別の方法で実施することも可能である。また、本実施例では、サブシステム（ここで、サブシステムとは、第１ストレージ装置７、もしくは第２ストレージ装置８それぞれをいう）毎にポート管理テーブル１２００を管理しているが複数のサブシステム装置のボリュームを１つのテーブルで管理することも可能である。
【００２０】
図４は、ストレージ管理DB１０に格納されているパス管理テーブル１３００の一例を示すものである。パス管理テーブル１３００には、パスがはられているポートのポート番号１３０１、パスがはられているボリュームのボリュームID１３０２、セキュリティが設定されている場合に接続先を管理するセキュリティグループ番号１３０３を管理している。本実施例では、サブシステム毎にパス管理テーブル１３００を管理しているが複数のサブシステム装置のボリュームを１つのテーブルで管理することも可能である。
【００２１】
図５は、ストレージ管理DB１０に格納されているセキュリティグループ管理テーブル１４００の一例を示すものである。セキュリティグループ管理テーブル１４００には、セキュリティグループを管理するセキュリティグループ番号１４０１、セキュリティグループとするホストのホスト名１４０２を管理している。図３のポート管理テーブル１２００のセキュリティ１２０１を‘ON’にし、セキュリティグループに対しパスをはると、セキュリティグループに設定されたホスト以外のホストからボリュームを参照できなくすることができる。
【００２２】
図６は、予約管理DB２０に格納されているボリューム予約管理テーブル２１００の一例を示すものである。ボリューム予約管理テーブル２１００には、予約ID２１０１ 、予約するボリュームID２１０２、使用期間２１０３、予約するポートのポート番号２１０４、ポリシーベースで予約を行った場合にポリシーを管理するための信頼性ポリシー２１０５および性能ポリシー２１０６、セキュリティポリシー２１０８、予約後、割り当てが行われたかまだ予約中かを表す状態２１０８、セキュリティグループ番号２１０９、予約したホストのホスト名２１１０を管理する。本実施例では、サブシステム毎にボリューム予約管理テーブル２１００を管理しているが複数のサブシステム装置のボリュームを１つのテーブルで管理することも可能である。
ボリューム予約管理テーブル２１００は予約中のものだけでなく、割り当て済みのボリュームに対しても使用期間を管理するために利用することが可能である。割り当てが解除されたとき削除される。
【００２３】
図７は、ポリシーベースで予約を行う場合に使用する予約管理DB２０に格納されているポリシー定義テーブル２２００の一例を示すものである。ストレージ管理もポリシーベースで行う場合は、ストレージ管理DB１０にポリシー定義テーブル２２００を管理しても実施可能である。ポリシー定義テーブル２２００には、信頼性ポリシーか性能ポリシーかを示すポリシー種別２２０１ 、ポリシーのレベル２２０２、属性２２０３と属性に対する属性値２２０４を定義することができる。予め、各ポリシーの各レベル（高、中、低）に対し、属性及び属性値を予め定義しておく必要がある。
【００２４】
図８は、本発明の一実施例に係る予約管理の処理フローである。図８のフローチャートを参照して予約管理方法について説明する。ストレージ管理クライアント２の入力装置２２を操作して予約管理プログラム２００を起動する（２０１）、ストレージ管理クライアント２では予約管理GUI２３が起動され、予約に必要な情報の入力をユーザに促す。ユーザは入力装置２２を操作して、ホスト名、使用期間、容量、セキュリティポリシー、セキュリティポリシーが‘ON’の場合は、セキュリティグループとして登録するホスト名、ポリシーベースの場合は、性能ポリシー及び信頼性ポリシー、ポリシーベースでない場合は、ボリューム、ポート等を指定する。予約管理プログラム２００は入力された予約情報を受付ける（２０２）。入力された予約要求がポリシーベースのものかどうかを判定し（２０３）、ポリシーベースの場合は割り当て可能ボリューム検索サブプログラム３００を呼び出す（３００）。ポリシーベースでない場合は、図９の処理を実行し、使用可能な指定されたボリュームが及びポートが使用期間に利用可能かどうかを検索する（２１０）。それぞれの処理の結果予約可能かどうか判定する（２０４）。予約可能な場合は予約サブプログラム４００を実行し、予約を行う（４００）。予約不可の場合はボリューム調整サブプログラムでボリュームの予約調整を行なう（５００）。調整の結果、予約可能になったかどうかを判定し（２０５）、予約可能な場合は予約を行い（４００）、予約不可の場合は予約できなかったことをユーザに通知し（２０６）、処理を終了する。
【００２５】
図９は、本発明の一実施例に係る予約管理の処理フローのうち、ポリシーベースでない予約を行う場合に予約可能かどうかを判定する処理フローである。入力されたボリュームに対し、ボリューム予約管理テーブル２１００から、ボリュームに対する予約状況を検索し、使用期間に既に予約が入っていないか調べる（２１１）。ボリュームが予約済みかどうかを判定し（２１２）、既に予約済みの場合は、予約不可（２１９）として、処理を終了する。ボリュームが予約済みでない場合は、入力されたポートの使用期間中のセキュリティポリシー及びセキュリティグループ番号をボリューム予約管理テーブル２１００から取得する（２１３）。入力されたセキュリティポリシーと取得したセキュリティポリシーが一致しているかどうかを判定し（２１４）、一致しない場合は予約不可（２１９）として処理を終了する。一致していた場合は、セキュリティポリシーが‘ON’かどうかを判定し （２１５）、‘OFF’の場合は予約可（２１８）として処理を終了する。‘ON'の場合は、予約するセキュリティグループ中の少なくとも一つのホストが、ステップ２１３で検索されたセキュリティグループに存在するかどうかを判定する（２１６）。存在しない場合は、予約可とし（２１８）処理を終了する。存在する場合、入力されたセキュリティグループが、ステップ２１３で検索されたセキュリティグループと完全に一致しているかどうか判定し（２１７）、完全に一致している場合は予約可として（２１８）、処理を終了し、一致していない場合は予約不可として（２１９）処理を終了する。
【００２６】
図１０は、本発明の一実施例に係る予約管理の処理フローうち、ポリシーベースのボリューム検索サブプログラムの処理フローである。
この処理において、ポリシーを満たすボリュームとしてポリシーの要件を満たしていればよく、ポリシーと完全に一致している必要はないものとする。
まず、ボリュームがポリシーを満たすかどうかを判定するために、まず、図７のポリシー定義テーブル２２００から、入力されたレベルに該当する属性及び属性値を取得する。次に、ボリューム管理テーブル１１００から、条件を満たすボリュームを検索する。容量を満たすためのボリュームは１つでも複数でもよい。ポリシーとしてボリュームが１つか複数かを指定できるようにすることも可能である。条件が満たすボリュームが存在した場合は、ボリューム予約管理テーブル２１００から使用期間に予約されていないボリュームを検索する（３０１）。予約可能なボリュームが存在するかどうかを判定し（３０２）、存在しない場合は、予約不可として（３０４）、処理を終了する。存在する場合は、そのボリュームに対し、使用期間にパスがはれるポートが存在するかどうかを図１１の予約可能なポート検索処理にて検索する（３１０）、予約可能なポートが存在するかどうかを判定し（３０３）、存在する場合は予約可として（３０５）処理を終了する。使用期間にパスがはれるポートが存在しない場合は、別の予約可能ボリュームを検索（３０６）し、処理を続行する。
【００２７】
図１１は、本発明の一実施例に係るポリシーベースのボリューム検索プログラムの処理フローのうち予約可能なポートの検索を行う処理の処理フローである。
【００２８】
まず、入力された使用期間に空いているポートがあるかどうかを検索する（３１０）。空きポートが見つかったかどうかを判定し（３１１）、空きポートが見つかった場合には、ポート予約可能とし（３１５）処理を終了する。ポリシーとして複数のポートの予約を指定できるものとし、複数指定された場合は、指定された個数のポートを見つけるまで処理を繰り返す。空きポートが見つからなかった場合には、入力されたセキュリティポリシーが‘ON'かどうかを判定する（３１２）。OFFの場合は入力された使用期間に’セキュリティ’OFF'となるポートを検索する（３１３）。ポートが見つかったかどうかを判定し（３１４）、見つかった場合は、ポート予約可能とし（３１５）、処理を終了する。パスに対して性能ポリシーを設定することも可能であり、その場合は、ここで、このポートに接続するパスがポリシーを見たすかどうかを、ストレージ性能管理サーバ３の性能分析プログラムを呼び出し判定する。
【００２９】
ステップ３１４で、ポートが見つからない場合は、図１２のポート調整処理を行い（３３０）、ポートの調整によってポートの予約が可能になったかどうかを判定し（３２０）、予約可能になった場合はポート予約可として（３１５）、処理を終了する。ステップ３２０で予約可能なポートが見つからない場合は、ポート予約不可（３２１）とする。ステップ３１２でセキュリティポリシー‘ON'と判定した場合、入力された使用期間にセキュリティが’ON‘のポートのうち、同じセキュリティグループに対し、予約または割り当てられたポートを検索する（３１６）。ポートが見つかったかどうかを判定し（３１７）、ポートが見つかった場合には、ポート予約可能とし（３１５）処理を終了する。見つからなかった場合は、入力された使用期間に、セキュリティが’ON‘のポートのうちポートに接続されたセキュリティグループに入力されたセキュリティグループのすべてのホストが属していないポートを検索する（３１８）。ポートが見つかったかどうかを判定し（３１９）、ポートが見つかった場合は、ポート予約可能とし（３１５）、ポートが見つからない場合は、図１２のポート調整処理を行い（３３０）、ポートの調整によってポートの予約が可能になったかどうかを判定する（３２０）。
【００３０】
図１２は、本発明の一実施例に係る予約可能なポートの検索を行う処理のうち予約可能なポートが存在しない場合、予約済みのボリュームに割り当てられているポートを別のポートに割り当てることによって利用可能なポートを検索する処理フローである。
まず、入力された使用期間に予約済みのボリュームのパスのうち、別のポートに変更可能なものはないか検索する（３３１）。該当する予約が存在するかどうかを判定し、存在する場合はその予約を変更することで、ポートが利用可能になるかどうかを判定する（３３３）。判定処理としては、図１１のステップ３１２から３１９までの処理を行う。ステップ３１４及びステップ３１９で予約可能なポートが存在しない場合は、ポート予約不可（３３６）と判断する。ポートが利用可能な場合は、ボリューム予約管理テーブル２１００のポート番号を変更し（３３４）、入力された新規予約に対して予約可能なポートが存在する（３３５）として処理を終了する。
【００３１】
図１３は、本発明の一実施例に係る予約管理の処理フローのうち、ボリュームの予約調整を行う処理の処理フローである。予約済みのボリュームのホストのポリシーがボリュームのポリシーより低い場合、予約済みのホストの予約を別のボリュームに変更することが可能である。ここでは、予約済みのホストのポリシーが入力されたホストのポリシーより低い場合にのみ、ボリュームの予約変更を行うこととする。
まず、ボリュームがポリシーを満たすかどうかを判定するために、図７のポリシー定義テーブル２２００から、入力されたレベルに該当する属性及び属性値を取得する。次に、ボリューム管理テーブル１１００から、条件を満たすボリュームを検索する。次に、ボリューム予約管理テーブル２１００より、それらのボリュームに対する入力された使用期間に予約された予約を検索し、
予約済みボリュームのポリシーが入力されたポリシーより低いものを検索する（５０１）。ポリシーが低い予約が存在するかどうかを判定し（５０２）、存在する場合は、予約済みボリュームに対して代替ボリュームが存在するかどうかをポリシーベースのボリュームサブプログラムで検索する（３００）。予約可能な代替ボリュームが存在するかどうか判定し（５０３）、予約可能なら予約サブプログラム４００を用いて予約を行い（４００）、ボリューム予約管理テーブル２１００より予約を削除し（５０４）、予約可能として（５０５）、処理を終了する。ステップ５０３で代替ボリュームが存在しない場合は、図１４の割り当て済みボリュームの調整処理を行う（５１０）。
【００３２】
図１４は、本発明の一実施例に係るボリュームの予約調整を行う処理のうち、割り当て済みボリュームの調整を行う処理の処理フローである。
割り当て済みのボリュームのホストのポリシーがボリュームのポリシーより低い場合、割り当て済みのホストの割り当てを別のボリュームに変更することが可能である。ここでは、割り当て済みのホストのポリシーが入力されたホストのポリシーより低い場合にのみ、ボリュームの調整を行う。
【００３３】
まず、ボリュームがポリシーを満たすかどうかを判定するために、図７のポリシー定義テーブル２２００から、入力されたレベルに該当する属性及び属性値を取得する。次に、ボリューム管理テーブル１１００から、条件を満たすボリュームを検索する。次に、ボリューム予約管理テーブル２１００より、それらのボリュームに対する入力された使用期間に予約された予約のうち、現在割り当て済みで、割り当て済みホストのポリシーが入力されたホストのポリシーより低いものを検索する（５１１）。
【００３４】
ポリシーが低い予約が存在するかどうかを判定し（５１２）、存在する場合は、割り当て済みボリュームに対して代替ボリュームが存在するかどうかをポリシーベースのボリュームサブプログラムで検索する（３００）。再配置可能な代替ボリュームが存在するかどうか判定し（５１３）、再配置可能なら再配置プログラム７００を用いて再配置を行い（７００）、ボリューム予約管理テーブル２１００より予約情報を削除し（５１４）、予約可能として（５１５）、処理を終了する。ステップ６１３で代替ボリュームが存在しない場合は、予約不可とし（５１６）、処理を終了する。
【００３５】
図１５は、本発明の一実施例に係る予約管理の処理フローうち、予約サブプログラムの処理フローである。
新規にセキュリティグループを登録する必要があるかどうかを判定し（４０１）、必要な場合は、ストレージ管理DBのセキュリティグループ管理テーブル１４００にセキュリティグループを格納する（４０２）。次に、ボリューム予約管理テーブル２１００に、予約可能なボリュームIDおよびポート番号、入力された使用期間、ポート番号、信頼性ポリシー、性能ポリシー、セキュリティポリシー、状態、セキュリティグループ番号、ホスト名を格納する。新規にセキュリティグループを登録する必要がある場合は、ストレージ管理DBのセキュリティグループ管理テーブル１４００にセキュリティグループを格納し（４０３）、処理を終了する。
【００３６】
図１６は、本発明の一実施例に係る予約したボリュームの使用開始時にユーザに通知する処理の処理フローである。
予約通知プログラム６００は、予約管理ＤＢ２０のボリューム予約管理テーブル２１００を監視している。使用を開始する必要のある予約が見つかった場合（６０１）、ストレージ管理クライアント２の予約管理GUI２３を通してユーザに通知する（６０２）。ユーザはこのとき、予約管理GUI２３を利用して、割り当てるボリュームを変更したり、予約をキャンセルすることも可能である。ボリュームの変更やキャンセルがない場合は、ストレージ管理サーバ１のストレージ管理プログラム１００を利用して、ストレージ管理ＤＢ１０のボリューム管理テーブルのボリュームの状態１１０２を“割り当て”に変更し、ポート管理テーブル１２００の状態１２０２を“使用中”に変更し、セキュリティ１２０３をボリューム予約管理テーブル２１００から取得したセキュリティポリシー２１０７にあわせ、パス管理テーブル１３００にポート番号１３０１、ボリューム１３０２、ボリューム予約管理テーブル２１００から取得したセキュリティグループ番号２１０９を追加する（６０３）。ボリューム予約管理テーブル２１００の状態２１０８を割り当て済みに変更する（６０４）。
【００３７】
図１７は、本発明の一実施例に係る割り当て済みボリュームの使用終了時にユーザに通知する処理の処理フローである。
予約通知プログラム６００は、予約管理ＤＢ２０のボリューム予約管理テーブル２１００を監視している。使用を終了する必要のある予約が見つかった場合（６１１）、ストレージ管理クライアント２の予約管理GUI２３を通してユーザに通知する（６１２）。ユーザが予約管理ＧＵＩ２３を通してボリューム割り当て解除を了解したかどうかを判定し（６１３）、割り当て解除を了解した場合は、割り当てを解除するために、ストレージ管理ＤＢ１０のボリューム管理テーブル１１００の状態１１０２を“未割り当て”に変更し、パス管理テーブル１３００から該当するパスを全て削除し、パスの削除によってポートが使用されなくなったかどうかを、パス管理テーブルを検索し、ポートが使用されなくなった場合のみ、ポート管理テーブル１２００の状態を“空き”に変更する（６１４）。次に、予約管理ＤＢ２０のボリューム予約管理テーブル２１００から予約情報を削除する（６１４）。ステップ６１３で、ユーザがボリュームの割り当て解除を了解しなかった場合は、使用期間の延長が可能かどうかをボリューム予約管理テーブル２１００を検索する（６１６）。延長可能かどうかを判定し（６１７）、可能ならば、ボリューム予約管理テーブルの使用期間を変更する（６１８）。使用期間の延長が不可能な場合は、延長期間に対して予約管理プログラム２００を利用し、ボリュームを検索し（２００）、ボリュームが見つかったかどうかを判定し（６１９）、見つかった場合は、再配置プログラム７００を利用して再配置を行う（７００）。見つからなかった場合は、ユーザに通知する（６２０）。ここでユーザは、容量を減らす、冗長パスを減らす、ポリシーのレベルを下げるなどして調整することも可能である。
【００３８】
本実施例を発展させた例として、入力したポリシーで予約できなかった場合に、別のポリシーで仮予約する場合の実施例について説明する。
図１８は、仮予約を行う場合に予約管理DB２０に格納さする仮予約可能ボリューム予約管理テーブル２３００の一例を示すものである。図６のボリューム予約管理テーブルに仮予約２３０１、容量２３０２、ポート数２３０３を追加したものである。
【００３９】
ポリシーを満たすボリュームが予約できない場合に、ポリシーの条件をゆるめて予約を行っておき、仮予約可能予約管理テーブル２３００に仮予約と設定しておくことによって、予約がキャンセルされた等のタイミング時にポリシーを満たすボリュームに空きがでないか監視することによって、本来取得したかったボリュームを確保することが可能とすることもできる。仮予約には例えば、ポリシーの要求レベルを下げる、容量を少なくする、ポート数を減らす等があり、それぞれどの方法で仮予約するかは、ユーザが選択することも、プログラムで自動的に割り当てることも可能である。
【００４０】
図１９は、仮予約する場合に、ポリシーのレベルを下げることによって仮予約する場合の処理フローである。
使用期間及び容量、ポート数のみを指定し、ポリシーベースのボリューム検索サブプログラム３００を実行する（９０１）。空きボリュームが見つかったら、ボリューム管理テーブル１１００からボリュームの属性、ストレージ性能管理サーバ３の性能分析プログラム９００からパスの性能を分析し、ポリシー定義テーブル２２００と比較することによってボリュームのポリシーレベルを判定する（９０２）。ユーザに空きボリュームのポリシーを提示し、そのポリシーで仮予約するかどうか確認する（９０３）。仮予約するかどうかを判定し（９０４）、仮予約する場合は、予約サブプログラム４００を利用して、図１５のステップ４で、ボリューム予約管理テーブル２３００に、仮予約フラグ、予約可能なボリュームID、容量、ポート番号、ポート数、入力された使用期間、ポート番号、信頼性ポリシー、性能ポリシー、セキュリティポリシー、状態、セキュリティグループ番号、ホスト名を格納する。新規にセキュリティグループを登録する必要がある場合は、ストレージ管理DBのセキュリティグループ管理テーブル１４００にセキュリティグループを格納し（９０５）、処理を終了する。仮予約を行わない場合は処理を終了する。
【００４１】
図２０は、仮予約する場合に、確保するボリュームの容量を少なくすることによって、仮予約する場合の処理フローである。
使用期間及びポリシー（性能ポリシー、信頼性ポリシー、セキュリティポリシー）、ポート数のみを指定し、ポリシーベースのボリューム検索サブプログラム３００を実行する（９１１）。ユーザに空きボリュームの容量を提示し、そのポリシーで仮予約するかどうか確認する（９１２）。仮予約するかどうかを判定し（９１３）、仮予約する場合は、予約サブプログラム４００を利用して、図１４のステップ４で、ボリューム予約管理テーブル２３００に、仮予約フラグ、予約可能なボリュームID、容量、ポート番号、ポート数、入力された使用期間、ポート番号、信頼性ポリシー、性能ポリシー、セキュリティポリシー、状態、セキュリティグループ番号、ホスト名を格納する。新規にセキュリティグループを登録する必要がある場合は、ストレージ管理DBのセキュリティグループ管理テーブル１４００にセキュリティグループを格納し（９１４）、処理を終了する。仮予約を行わない場合は処理を終了する。
【００４２】
図２１は、図８のステップ２０４で予約不可となった際に、確保可能なポートのみの予約を仮予約とする場合の処理フローである。
図８のステップ２０４で予約不可となったとき（９２１）、確保可能なポートを提示し、提示したポートだけでも予約しておくかどうかをユーザに確認し（９２２）、仮予約する必要があるかどうか判定し（９２３）、必要な場合は、予約サブプログラム４００を利用して、図１５のステップ４で、ボリューム予約管理テーブル２３００に、仮予約フラグ、予約可能なボリュームID、容量、ポート番号、ポート数、入力された使用期間、ポート番号、信頼性ポリシー、性能ポリシー、セキュリティポリシー、状態、セキュリティグループ番号、ホスト名を格納する。
新規にセキュリティグループを登録する必要がある場合は、ストレージ管理DBのセキュリティグループ管理テーブル１４００にセキュリティグループを格納し（９２４）、処理を終了する。仮予約を行わない場合は処理を終了する。
【００４３】
図２２は、仮予約可能な場合に、ボリュームの予約がキャンセルされたときの処理フローである。
予約管理プログラム２００は予約のキャンセル時に、すべての仮予約可能ボリューム予約管理テーブル２３００の仮予約についてキャンセルのあったボリュームが仮予約されているボリュームよりよりユーザの要求にあったボリュームかどうかを調査する（９３１）。キャンセルのあったボリュームが仮予約されているボリュームよりユーザの要求にあったボリュームである仮予約が見つかったかどうか判定し（９３２）、見つかった場合は仮予約のボリュームをキャンセルされたボリュームに置き換える。このとき、すべての条件を満たすボリュームの場合は“仮予約”フラグを削除する（９３３）。置き換える仮予約が見つからない場合は、処理を終了する。
【００４４】
図２３は、本発明の一実施例をデータセンターで運用する場合の例である。
データセンターは予め要求されたポリシーのレベルにより、ストレージを貸し出す場合の料金を設定しておく。
企業９は、ポリシーに基づくストレージの予約をデータセンター１０に依頼する（９１）データセンターは予約管理プログラム２００を利用し、予約可能かどうか調査する（１１）。予約可能ならば、ポリシーのレベル及び容量より、料金を算出し（１２）、通知する。データセンター１０は予約通知プログラム６００を利用し、使用開始日を監視し、使用開始日にボリュームの割り当てを実行し、企業９に通知する（１３）。それと同時に、事前に算出した料金の支払い要求を通知し（１４）、企業９は要求に従い料金の支払いを行う（９２）。使用開始以前に、企業９から予約の取り消し依頼（９３）を受けた場合は、予約の取り消しを行い（１５）、事前に算出した料金の何％かをキャンセル料として課金し（１６）、企業９はキャンセル料を支払う（９４）。ポリシーベースの料金設定をもとにキャンセル料の支払いを要求することで、企業９が必要以上にデータセンターに対して予約要求をするのを防ぐことが可能となる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施例に係るストレージ管理システムの全体構成を示す。
【図２】ストレージ管理DB１０に格納されているボリューム管理テーブル１１００の一例を示す。
【図３】ストレージ管理DB１０に格納されているポート管理テーブル１２００の一例を示すものである。
【図４】ストレージ管理DB１０に格納されているパス管理テーブル１３００の一例を示すものである。
【図５】ストレージ管理DB１０に格納されているセキュリティグループ管理テーブル１４００の一例を示すものである。
【図６】予約管理DB２０に格納されているボリューム予約管理テーブル２１００の一例を示すものである。
【図７】ポリシーベースで予約を行う場合、予約管理DB２０に格納されているポリシー定義テーブル２２００の一例を示すものである。
【図８】本発明の一実施例に係る予約管理の処理フローである。
【図９】本発明の一実施例に係る予約管理の処理フローうち、ポリシーベースでない予約を行う場合に予約可能かどうかを判定する処理フローである。
【図１０】本発明の一実施例に係る予約管理の処理フローうち、ポリシーベースのボリューム検索サブプログラムの処理フローである。
【図１１】本発明の一実施例に係るポリシーベースのボリューム検索プログラムの処理フローのうち予約可能なポートの検索を行う処理の処理フローである。
【図１２】本発明の一実施例に係る予約可能なポートの検索を行う処理のうち予約可能なポートが存在しない場合、予約済みのボリュームに割り当てられているポートを別のポートに割り当てることによって利用可能なポートを検索する処理フローである。
【図１３】本発明の一実施例に係る予約管理の処理フローのうち、ボリュームの予約調整を行う処理の処理フローである。
【図１４】本発明の一実施例に係るボリュームの予約調整を行う処理のうち、割り当て済みボリュームの調整を行う処理の処理フローである。
【図１５】本発明の一実施例に係る予約管理の処理フローうち、予約サブプログラムの処理フローである。
【図１６】本発明の一実施例に係る予約したボリュームの使用開始時にユーザに通知する処理の処理フローである。
【図１７】本発明の一実施例に係る割り当て済みボリュームの使用終了時にユーザに通知する処理の処理フローである。
【図１８】仮予約を行う場合に予約管理DB２０に格納さする仮予約可能ボリューム予約管理テーブル２３００の一例を示すものである。
【図１９】仮予約する場合に、ポリシーのレベルを下げることによって仮予約する場合の処理フローである。
【図２０】仮予約する場合に、確保するボリュームの容量を少なくすることによって、仮予約する場合の処理フローである。
【図２１】図８のステップ２０４で予約不可となった際に、確保可能なポートのみの予約を仮予約とする場合の処理フローである。
【図２２】仮予約可能な場合に、ボリュームの予約がキャンセルされたときの処理フローである。
【図２３】本発明の一実施例をデータセンターで運用する場合の例である。
【符号の説明】
【００４６】
１‥ストレージ管理サーバ、２‥ストレージ管理クライアント、３‥ストレージ性能管理サーバ、４‥第１ホスト、５‥第２ホスト、６‥第３ホスト、７‥第１ストレージ、８‥第２ストレージ、１０‥ストレージ管理ＤＢ、２０‥予約管理ＤＢ、２１‥表示装置、２２‥入力装置、２３‥予約管理GUI、３０‥性能管理ＤＢ、１００‥ストレージ管理プログラム、２００‥予約管理プログラム、３００‥ポリシーベースのボリューム検索サブプログラム、４００‥予約サブプログラム、５００‥ボリューム調整サブプログラム、６００‥予約通知プログラム、７００‥再配置プログラム、８００‥性能分析プログラム
【図１】
2006106993.tif 000003
【図２】
2006106993.tif 000004
【図３】
2006106993.tif 000005
【図４】
2006106993.tif 000006
【図５】
2006106993.tif 000007
【図６】
2006106993.tif 000008
【図７】
2006106993.tif 000009
【図８】
2006106993.tif 000010
【図９】
2006106993.tif 000011
【図１０】
2006106993.tif 000012
【図１１】
2006106993.tif 000013
【図１２】
2006106993.tif 000014
【図１３】
2006106993.tif 000015
【図１４】
2006106993.tif 000016
【図１５】
2006106993.tif 000017
【図１６】
2006106993.tif 000018
【図１７】
2006106993.tif 000019
【図１８】
2006106993.tif 000020
【図１９】
2006106993.tif 000021
【図２０】
2006106993.tif 000022
【図２１】
2006106993.tif 000023
【図２２】
2006106993.tif 000024
【図２３】
2006106993.tif 000025