以下に、図面を参照しながら本発明の代表的な実施形態を説明する。尚、本発明は、以下で説明される実施形態に限定されるものではない。
[第1の実施形態]
まず、SANの構成について説明する。
図1は、本発明の第1の実施形態のSANの構成の一例を示すブロック図である。
第1の実施形態におけるSANは、一台以上のホスト30000、一台以上のストレージ装置20000、及び一台以上の管理サーバ10000を備える。
ストレージ装置20000は、タスク実行プログラム21300を格納する。タスク実行プログラム21300は、ストレージ装置20000が提供する機能を実現するためのプログラムである。
また、ストレージ装置20000上には、複数の論理ボリューム22100が作成され、当該論理ボリューム22100は、ホスト30000に提供される。図1に示す例では、ストレージ装置20000(ストレージ装置A)は、ホスト30000(ホストA)に対して、論理ボリューム22100(LV1〜LV4)を提供する。
管理サーバ10000は、タスク管理プログラム11100、タスク間関連抽出プログラム11200、及びタスク実行判定プログラム11300を格納する。
タスク管理プログラム11100は、タスク管理テーブル11510(図2参照)を生成するためのプログラムである。尚、タスク管理プログラム11100の処理の詳細については、図11を用いて後述する。
タスク間関連抽出プログラム11200は、新たに計画されたタスクと計画済みのタスクとの関連を調べるプログラムである。尚、タスク間関連抽出プログラム11200の処理の詳細については、図12を用いて後述する。
タスク実行判定プログラム11300は、新たに計画されたタスクを実行するか否かを判定するプログラムである。尚、タスク実行判定プログラム11300の処理の詳細については、図13を用いて後述する。
ホスト30000は、ストレージ装置20000によって提供された論理ボリューム22100を用いて、各種業務を実行する。
ホスト30000(ホストA)とストレージ装置20000(ストレージ装置A)とは、ファイバチャネル40000を介して互いに接続される。
管理サーバ10000(管理サーバA)は、管理用ネットワーク50000を介して、ストレージ装置20000(ストレージ装置A)及びホスト30000(ホストA)に接続される。管理サーバ10000(管理サーバA)は、管理用ネットワーク50000を介してタスク実行プログラム21300と通信できる。
図1に示す例では、管理サーバ10000がタスク管理プログラム11100、タスク間関連抽出プログラム11200、及びタスク実行判定プログラム11300を格納しているが、本発明はこれに限定されない。例えば、ストレージ装置20000又はホスト30000が、前述のプログラムを格納してもよい。また、各装置間に設置されているスイッチ(図示省略)などの他の装置が、前述のプログラムを格納してもよい。
また、ストレージ装置20000がタスク実行プログラム21300を格納しているが、本発明はこれに限定されない。例えば、管理サーバ10000又はホスト30000が、タスク実行プログラム21300を格納してもよい。また、各装置間に設置されているスイッチ(図示省略)などの他の装置が、タスク実行プログラム21300を格納してもよい。
また、ホスト30000(ホストA)とストレージ装置20000(ストレージ装置A)との間の接続は、ファイバチャネル40000を介して直接接続されるものに限定されず、一台以上のファバチャネルスイッチなどのネットワーク機器を介して接続されてもよい。また、ホスト30000(ホストA)とストレージ装置20000(ストレージ装置A)との間の接続は、データ通信用のネットワークであればよく、例えば、IPネットワークでもよい。
図2は、本発明の第1の実施形態の管理サーバ10000の構成の一例を示すブロック図である。
管理サーバ10000は、メモリ11000、記憶装置12000、入力装置13000、出力装置14000、プロセッサ15000、及び通信装置16000を備え、これらは内部バスなどの通信路17000を介して互いに接続される。
メモリ11000は、タスク管理プログラム11100、タスク間関連抽出プログラム11200、タスク実行判定プログラム11300、構成・性能情報収集プログラム11400、及びシステム管理リポジトリ11500を格納する。
構成・性能情報収集プログラム11400は、ホスト30000上で稼動するソフトウェア(図示省略)が使用している論理ボリューム22100が作成されている物理ディスク22200(図3参照)までのI/O経路に含まれるリソースの情報を取得するためのプログラムである。
システム管理リポジトリ11500には、タスク管理テーブル11510、構成情報テーブル11520、性能情報テーブル11530、マイグレーション管理テーブル11540、及びタスク分類テーブル11550が格納される。
タスク管理テーブル11510は、タスク種別、タスク実行要因、及びタスクに関連するリソースの情報を格納する。構成情報テーブル11520は、SANの構成情報を格納する。性能情報テーブル11530は、SANに接続された装置及び当該装置におけるリソースの性能情報を格納する。マイグレーション管理テーブル11540は、マイグレーション処理に関する情報を格納する。タスク分類テーブル11550は、タスクの優先度を格納する。
記憶装置12000は、情報を格納するHDDなどである。入力装置13000は、SAN管理者がタスク管理プログラム11100などに指示を入力するためのキーボードなどである。出力装置14000は、タスク実行プログラム21300の処理の実行結果を出力するディスプレイ装置などである。プロセッサ15000は、メモリ11000上に展開されているプログラムを実行する。通信装置16000は、管理用ネットワーク50000に接続するための装置である。
図2に示す例では、前述のプログラム及び前述のテーブルは、メモリ11000に格納されているが、記憶装置12000又は他の記憶媒体(図示省略)に格納されもよい。この場合、プロセッサ15000は、プログラム実行時にメモリ11000上に前述のプログラム及び前述のテーブルを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000(図4参照)又はストレージ装置20000のメモリ21000(図3参照)に前述のプログラム及び前述のテーブルが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のサーバ(図示省略)又はファイバチャネルスイッチ(図示省略)など他の装置が、前述のプログラム及び前述のテーブルを格納し、格納されるプログラムを実行してもよい。
図3は、本発明の第1の実施形態のストレージ装置20000の構成の一例を示すブロック図である。
ストレージ装置20000は、メモリ21000、論理ボリューム提供部22000、ディスクI/F制御部23000、管理I/F24000、プロセッサ25000、及びデータI/F26000を備え、これらは内部バスなどの通信路27000を介して互いに接続される。
メモリ21000は、ディスクキャッシュ21100、構成情報管理プログラム21200、及びタスク実行プログラム21300を格納する。
ディスクキャッシュ21100は、情報を一時格納するための記憶領域である。構成情報管理プログラム21200は、ストレージ装置20000の管理情報及び性能・容量情報を管理サーバ10000との間で送受信するためのプログラムである。
タスク実行プログラム21300は、ストレージ装置20000の提供する機能を実行するためのプログラムである。第1の実施形態では、ストレージ装置20000の提供する機能として、つまり、タスク実行プログラム21300によって実行されるタスクとしてデータマイグレーションを考える。
論理ボリューム提供部22000は、物理ディスク22200を備える。論理ボリューム提供部22000は、物理ディスク22200の記憶領域を論理的に分割し、当該論理的に分割された記憶領域を論理ボリューム22100として提供する。これによって、論理ボリューム22100に対する当該ストレージ装置20000外からのアクセスを可能としている。
尚、物理ディスク22200には物理ディスク番号が付され、また、論理ボリューム22100には論理ボリューム番号が付される。これによって、ストレージ装置20000は、物理ディスク22200及び論理ボリューム22100をそれぞれ一意に識別することができる。図3に示す例では、ストレージ装置20000には、物理ディスク番号が「e1」及び「e2」の物理ディスク22200が2つあり、並びに、論理ボリューム番号が「LV1〜LV4」の論理ボリューム22100が4つあることが分かる。
図3に示す例では、2つの物理ディスク22200(e1、e2)を論理的に分割されて、4つの論理ボリューム22100(LV1〜LV4)がそれぞれ作成され、当該論理ボリューム22100(LV1〜LV4)がストレージ装置20000外の装置(例えば、ホスト30000)に提供される。
ディスクI/F制御部23000は、論理ボリューム提供部22000と接続するためのインタフェースである。管理I/F24000は、管理用ネットワーク50000と接続するためのインタフェースである。プロセッサ25000は、メモリ21000上に展開されたプログラムを実行する。
データI/F26000は、ファイバチャネル40000と接続するためのインタフェースである。尚、ディスクI/F制御部23000、管理I/F24000、及びデータI/F26000は、複数個あってもよい。図3に示す例では、ストレージ装置20000は、データI/F(p1)及びデータI/F(p2)の2つのデータI/F26000を備える。
図3に示す例では、前述のプログラムは、メモリ21000に格納されているが、他の記憶装置(図示省略)又は他の記憶媒体(図示省略)に格納されていてもよい。この場合、プロセッサ25000は、処理実行時にメモリ21000上に前述のプログラムを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000(図4参照)又はストレージ装置20000のメモリ21000に前述のプログラムが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のストレージ装置(図示省略)が、前述のプログラムを格納し、格納されるプログラムを実行してもよい。
また、論理ボリューム提供部22000は、複数の物理ディスク22200から構成されるRAIDグループを論理的に分割して論理ボリューム22100を作成してもよい。また、論理ボリューム提供部22000は、一つの物理ディスク22200の全記憶領域を一つの論理ボリューム22100として作成してもよい。また、論理ボリューム提供部22000は、物理ディスク22200以外のフラッシュメモリなどの記憶媒体の記憶領域から論理ボリューム22100を作成してもよい。
図4は、本発明の第1の実施形態のホスト30000の構成の一例を示すブロック図である。
ホスト30000は、メモリ31000、データI/F32000、プロセッサ33000、及び管理I/F34000を備え、これらは内部バスなどの通信路35000を介して互いに接続される。
メモリ31000は、ボリューム管理プログラム31100及び業務プログラム31200を格納する。
ボリューム管理プログラム31100は、SANに提供されている論理ボリューム22100をホスト30000に割り当てるためのプログラムである。業務プログラム31200は、ホスト30000が実行する業務を実現するためのプログラムであり、DBMS(Data Base Management System)、又はファイルシステムなどである。
ホスト30000は、ボリューム管理プログラム31100によって割り当てられた論理ボリューム22100を用いて業務を実行する。
データI/F32000は、ファイバチャネル40000と接続するためのインタフェースである。プロセッサ33000は、メモリ31000上に展開されたプログラムを実行する。管理I/F34000は、管理用ネットワーク50000と接続するためのインタフェースである。尚、データI/F32000及び管理I/F34000は、複数個あってもよい。
図4に示す例では、前述のプログラムは、メモリ31000に格納されているが、他の記憶装置(図示省略)又は他の記憶媒体(図示省略)に格納されていてもよい。この場合、プロセッサ33000は、処理実行時にメモリ31000上に前述のプログラムを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000又はストレージ装置20000のメモリ21000に前述のプログラムが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のストレージ装置(図示省略)が、前述のプログラムを格納し、格納されるプログラムを実行してもよい。
図5は、本発明の第1の実施形態のシステム管理リポジトリ11500に格納される、タスク管理テーブル11510の一例を示す説明図である。
タスク管理テーブル11510は、各タスクについて、その実行目的、処理内容、及びタスクに関連するリソースの情報を格納する。タスク管理プログラム11100が実行されることによって、タスク管理テーブル11510にレコードが追加される。
タスク管理テーブル11510は、タスク識別子11511、タスク種別11512、タスク実行要因11513、タスク関連リソース(論理ボリューム)11514、及びタスク関連リソース(物理ディスク)11515を含む。
タスク識別子11511は、タスクを一意に識別するための識別子を格納する。タスク種別11512は、タスクの種別を格納する。タスク実行要因11513は、タスク識別子11511に対応するタスクが実行される契機となった指標及び指標の値が格納される。
タスク関連リソース(論理ボリューム)11514は、タスク識別子11511に対応するタスクに関連する論理ボリューム22100を一意に識別するための論理ボリューム番号を格納する。タスク関連リソース(物理ディスク)11515は、タスク識別子11511に対応するタスクに関連する物理ディスク22200を一意に識別するための物理ディスク番号が格納する。
図5に示す例では、タスク識別子11511が「A」のタスクは、論理ボリューム番号が「LV1、LV3」の論理ボリューム22100、及び、物理ディスク番号が「e1、e2」の物理ディスク22200を関連リソースとして持つ、データリプレースのためのマイグレーションであることが分かる。また、タスク識別子11511が「B」のタスクは、論理ボリューム番号が「LV2、LV4」の論理ボリューム22100、及び、物理ディスク番号が「e1、e2」の物理ディスク22200を関連リソースとして持つ、性能劣化に伴う性能改善のためのマイグレーションであることが分かる。
第1の実施形態では、タスク関連リソースとして、論理ボリューム22100及び物理ディスク22200をあげたが、本発明はこれに限定されない。例えば、関連リソースとして、論理ボリューム22100を利用するホスト30000、当該ホスト30000から当該論理ボリューム22100への書き込みのときにデータが経由するスイッチ(図示省略)、又は、ストレージ装置のデータI/F26000などを含めてもよい。
また、関連リソースとして、コピー及びバックアップなどの論理ボリューム22100間の設定情報及び設定状態情報などを保持するリソースを含めてもよい。
図6は、本発明の第1の実施形態のシステム管理リポジトリ11500に格納される、構成情報テーブル11520の一例を示す説明図である。
構成情報テーブル11520は、論理ボリューム22100にホスト30000がアクセスする場合に経由する、ホスト30000と当該ホスト30000に提供された論理ボリューム22100が作成されている物理ディスク22200との間における経路に関する情報を格納する。構成・性能情報収集プログラム11400が実行されることによって、構成情報テーブル11520にレコードが追加される。
構成情報テーブル11520は、ホスト名11521、ボリューム番号11522、ストレージ名11523、データI/F番号11524、論理ボリューム番号11525、及び物理ディスク番号11526を含む。
ホスト名11521は、ホスト30000を一意に識別するための識別子を格納する。ボリューム番号11522は、ホスト名11521に対応するホスト30000に提供されたボリュームを一意に識別するための識別子を格納する。尚、当該ボリュームは、ホスト30000が認識しているボリュームである。
ストレージ名11523は、ボリューム番号11522に対応するボリュームを提供するストレージ装置20000を一意に識別するための識別子を格納する。データI/F番号11524は、ホスト30000がボリューム番号11522に対応するボリュームにアクセスするときに利用されるデータI/F26000の番号を一意に識別するための識別子を格納する。
論理ボリューム番号11525は、ボリューム番号11522に対応するボリュームが利用する論理ボリューム22100を一意に識別するための識別子が格納されている。物理ディスク番号11526は、論理ボリューム番号11525に対応する論理ボリューム22100が作成されている物理ディスクを一意に識別するための識別子を格納する。
尚、ホスト名11521及びボリューム番号11522に「−」が格納されているレコードは、ホスト30000にストレージが割り当てられていないことを示す。
図6に示す例では、ホスト名11521が「ホストA」のボリューム番号11522が「1」のボリュームに対して、ストレージ名11523が「ストレージA」の物理ディスク番号11526が「e1」の物理ディスク22200から作成された論理ボリューム番号11525が「LV1」が、データI/F番号11524が「p1」のデータI/F26000を介して割り当てられていることが分かる。
また、ホスト名11521が「ホストA」のボリューム番号11522が「2」のボリュームに対して、ストレージ名11523が「ストレージA」の物理ディスク番号11526が「e1」の物理ディスク22200から作成された論理ボリューム番号11525が「LV2」が、データI/F番号11524が「p1」のデータI/F26000を介して割り当てられていることが分かる。
また、ストレージ名11523が「ストレージA」であるストレージ装置20000には、ホスト30000が割り当てられていないことが分かる。また、ストレージ名11523が「ストレージA」であるストレージ装置20000の物理ディスク番号11526が「e2」の物理ディスク22200には論理ボリューム番号11525が「LV3、LV4」の論理ボリューム22100が作成されていることが分かる。
図7は、本発明の第1の実施形態のシステム管理リポジトリ11500に格納される、性能情報テーブル11530の一例を示す説明図である。
性能情報テーブル11530は、各ストレージ装置20000における論理ボリューム22100及び物理ディスク22200などのSAN構成要素の性能情報、並びに、SAN構成要素の性能閾値を格納する。
ここで、性能閾値とは、I/Oの変化などを監視するために予め管理対象リソースに設定された値を示す。これによって、例えば、運用中に性能情報の値が性能閾値を超えた場合、管理サーバ10000がユーザへ通報する等のアクションを起こすことができる。
構成・性能情報収集プログラム11400が実行されることによって、性能情報テーブル11530にレコードが追加される。
性能情報テーブル11530は、ストレージ名11531、リソース番号11532、リソース性能(IOPS:IOPerSecond)11533、及びリソース性能閾値11534を含む。
ストレージ名11531は、図6のストレージ名11523と同一のものである。リソース番号11532は、ストレージ名11531に対応するストレージ装置20000における論理ボリューム22100又は物理ディスク22200を一意に識別するための論理ボリューム番号又は物理ディスク番号を格納する。
リソース性能(IOPS)11533は、論理ボリューム22100又は物理ディスク22200への単位時間(第1の実施形態では、1秒とする。)あたりのI/Oの数を格納する。リソース性能閾値11534は、リソース番号11532に対応する論理ボリューム22100又は物理ディスク22200に予め設定された閾値を格納する。
リソース性能閾値11534には、SANを構成した時に、予め、当該SANの構成から決定された閾値が格納される。また、SAN管理者は前述の閾値を適宜変更することができ、リソース性能閾値11534にはSAN管理者によって変更された閾値が格納される。
第1の実施形態では、リソースの性能情報としてIOPSを用いたが、IOResponseTime、ReadIOPerSecond、WriteIOPerSecond、又はTransferRateなどの他の性能情報を用いてもよい。
また、第1の実施形態では、タスク実行による影響をシミュレートするための指標として性能情報を参照するため、管理サーバ10000は、性能情報テーブル11530を備えているが、本発明はこれに限定されない。例えば、管理サーバ10000は、容量情報又はコスト情報などの閾値を利用して監視を行うような指標を持つテーブルを備えてもよい。
図8は、本発明の第1の実施形態のシステム管理リポジトリ11500に格納される、マイグレーション管理テーブル11540の一例を示す説明図である。
マイグレーション管理テーブル11540は、ストレージ装置20000が格納するタスク実行プログラムによってマイグレーションが実行される時に必要な情報を格納する。これによって、管理サーバ10000は、タスクとタスク種別毎の詳細情報とを関連づけて管理することができる。マイグレーション管理テーブルは、タスク管理プログラム11100が実行されるとによって、マイグレーション管理テーブル11540にレコードが追加される。
マイグレーション管理テーブル11540は、マイグレーション番号11541、マイグレーション元ボリューム11542、マイグレーション先ボリューム11543、及びタスク識別子11544を含む。
マイグレーション番号11541は、マイグレーション処理を一意に識別するための識別子を格納する。マイグレーション元ボリューム11542は、マイグレーション処理における移動元の論理ボリューム22100の論理ボリューム番号を格納する。マイグレーション先ボリューム11543は、マイグレーション処理における移動先の論理ボリューム22100の論理ボリューム番号を格納する。タスク識別子11544は、図5のタスク識別子11511と同一のものである。
図8に示す例では、論理ボリューム番号が「LV1」の論理ボリューム22100から論理ボリューム番号が「LV3」の論理ボリューム22100へのマイグレーションと、論理ボリューム番号が「LV2」の論理ボリューム22100から論理ボリューム番号が「LV4」の論理ボリューム22100へのマイグレーションが登録されていることが分かる。
第1の実施形態では、タスクの一例としてマイグレーションを考えているため、管理サーバ10000はマイグレーション管理テーブル11540を備えているが、本発明はこれに限定されない。例えば、管理サーバ10000は、コピー又はパス設定など他の機能をタスクとして管理し、各機能に対応する管理テーブルを備えていてもよい。
図9は、本発明の第1の実施形態のシステム管理リポジトリ11500に格納される、タスク分類テーブル11550の一例を示す説明図である。
タスク分類テーブル11550は、ユーザ入力、又は各タスクの優先度について予め規定されたルールに基づいて、レコードが作成されるテーブルである。
タスク分類テーブル11550は、タスク種別11551、タスク実行要因11552、及びタスク優先度11553を含む。
タスク種別11551は、図5のタスク種別11512と同一のものである。タスク実行要因11552は、図5のタスク実行要因11513と同一のものである。
タスク優先度11553は、タスク種別11551に対応するタスクを必ず実行するか否かを示す情報を格納する。具体的には、タスク優先度11553には、「無条件」又は「条件付き」のいずれかが格納され、「無条件」は必ず実行するタスクであることを示し、「条件付き」は実行するか否かが判定されるタスクであることを示す。
尚、タスク実行要因11552が「Auto」であるレコードは、タスクの実行が閾値監視に基づいたものではない、又はタスク実行要因を取得できなかった場合を示している。この場合、当該レコードのタスク優先度11553には、「無条件」が格納される。
図9に示す例では、IOPS及びIOResponseTimeなどの性能情報、DiskSpaceなどの容量情報、並びにBitCostなどのコスト情報の閾値に基づくマイグレーションタスクのタスク優先度11553には「条件付き」が格納され、自動実行されるマイグレーションタスク及びパス設定タスクのタスク優先度11553には「無条件」が格納されていることが分かる。
次に、管理サーバ10000が実行するタスク管理処理について説明する。
図10は、本発明の第1の実施形態の管理サーバ10000が実行するタスク管理処理の概要の一例を示すフローチャートである。
管理サーバ10000のプロセッサ15000がメモリ11000上に展開された各プログラムを実行することによって、タスク管理処理1000が実行される。
まず、ユーザ又は任意のプログラムがタスク管理プログラム11100を実行することによって、新規タスクが計画され、管理サーバ10000は当該新規タスクに関する情報を受信する。(ステップ1001)。
次に、管理サーバ10000は、タスク管理プログラム11100を実行し、受信した新規タスクに関する情報に基づいて、新規タスクをタスク管理テーブル11510に登録する(ステップ1002)。
次に、管理サーバ10000は、タスク間関連抽出プログラム11200を実行し、新規タスクと計画済みのタスクとの関連を調べる(ステップ1003)。
管理サーバ10000は、タスク実行判定プログラム11300を実行し、新規タスクを実行するか否かを判定する(ステップ1004)。以下、ステップ1002〜ステップ1004の各処理の詳細について説明する。
図11は、本発明の第1の実施形態の管理サーバ10000に格納されるタスク管理プログラム11100が新規タスクをタスク管理テーブルに登録する処理(ステップ1002)の詳細を説明するフローチャートである。
タスク管理プログラム11100は、ユーザ又は任意のプログラムから新たに計画されたタスクのタスク情報を受信する(ステップ10021)。当該タスク情報には、マイグレーション番号、マイグレーション元論理ボリューム、マイグレーション先論理ボリュームに関する情報が含まれる。
タスク管理プログラム11100は、受信したタスク情報に基づいて、マイグレーション管理テーブル11540に新規エントリを作成し、マイグレーション番号11541、マイグレーション元ボリューム11542、マイグレーション先ボリューム11543、及びタスク識別子11544を設定する(ステップ10022)。
タスク管理プログラム11100は、受信したタスク情報に基づいて、タスク管理テーブル11510に新規エントリを作成し、タスク種別11512及びタスク識別子11511を設定する(ステップ10023)。尚、タスク識別子11511には、マイグレーション管理テーブル11540のタスク識別子11544と同一の識別子が設定される。
タスク管理プログラム11100は、マイグレーション管理テーブル11540を参照し、タスク識別子11511に対応するタスクの処理対象となるリソースの情報を取得する(ステップ10024)。
タスク管理プログラム11100は、取得されたタスクの処理対象となるリソースの情報を参照し、当該リソースと構成上又は設定上関連するリソースを構成情報テーブル11520から取得し、取得されたリソースに関する情報をタスク管理テーブル11510のタスク関連リソース11514、11515にそれぞれ設定する(ステップ10025)。これによって、マイグレーションの処理対象である論理ボリューム22100だけではなく、当該論理ボリューム22100が作成されている物理ディスク22200についても関連リソースとして設定される。
次に、タスク管理プログラム11100は、新たに計画されたタスクがユーザによって計画されたタスクであるか否かを判定する(ステップ10026)。
新たに計画されたタスクがユーザによって計画されたタスクであると判定された場合、タスク管理プログラム11100は、タスク実行の目的についてユーザ入力を要求し(ステップ10027)、ユーザ入力の結果をタスク管理テーブル11510のタスク実行要因11513に設定し(ステップ10028)、処理を終了する。
ステップ10026において、新たに計画されたタスクがユーザによって計画されたタスクでないと判定された場合、つまり、任意のプログラムによって計画されたタスクであると判定された場合、タスク管理プログラム11100は、タスク情報を送信してきたプログラムからタスク実行が計画された契機を取得し、取得されたタスク実行が計画された契機をタスク管理テーブル11510のタスク実行要因11513に設定し(ステップ10029)、処理を終了する。
以上の処理によって、タスク管理テーブル11510が作成される。
図12は、本発明の第1の実施形態の管理サーバ10000に格納されるタスク間関連抽出プログラム11200が新規タスクと計画済みのタスクとの関連を調べる処理(ステップ1003)の詳細を説明するフローチャートである。
タスク間関連抽出プログラム11200は、タスク管理テーブル11510から新規タスクのタスク実行要因11513を取得する(ステップ10031)。
次に、タスク間関連抽出プログラム11200は、タスク分類テーブル11550からタスク優先度11553を取得する(ステップ10032)。
タスク間関連抽出プログラム11200は、新規タスクが無条件に実行されるタスク(以下、無条件タスクと記載する。)であるか、又は条件に応じて実行を判断すべきタスク(以下、条件付きタスクと記載する。)であるかを判定する(ステップ10033)。つまり、タスク間関連抽出プログラム11200は、新規タスクのタスク優先度11553が「無条件」であるか又は「条件付き」であるかを判定する。
ここで、無条件タスクは、確実に実行する必要のあるタスクを意味し、条件付きタスクは、タスク実行要因11513が解決された場合、実行する必要のないタスクを意味する。
新規タスクが無条件タスクであると判定された場合、タスク間関連抽出プログラム11200は、処理を終了する。
ステップ10033において、新規タスクが条件付きタスクであると判定された場合、タスク間関連抽出プログラム11200は、タスク管理テーブル11510から新規タスクの関連リソースを取得する(ステップ10034)。具体的には、タスク間関連抽出プログラム11200は、タスク関連リソース(論理ボリューム)11514及びタスク関連リソース(物理ディスク)11515を取得する。
次に、タスク間関連抽出プログラム11200は、タスク管理テーブル11510の各レコードに対して以下の処理を実行する(ステップ10035)。
タスク間関連抽出プログラム11200は、タスク管理テーブル11510から、計画済みタスクの関連リソース(この場合、タスク関連リソース(論理ボリューム)11514及びタスク関連リソース(物理ディスク)11515)を取得する(ステップ10036)。
次に、タスク間関連抽出プログラム11200は、新規タスクの関連リソースと計画済みタスクの関連リソースとを比較し、同一のリソースが含まれるか否かを判定する(ステップ10037)。
計画済みタスクの関連リソースに新規タスクの関連リソースと同一のリソースが含まれないと判定された場合、タスク間関連抽出プログラム11200は、ステップ10039に進む。
ステップ10037において、計画済みタスクの関連リソースに新規タスクの関連リソースと同一のリソースが含まれると判定された場合、タスク間関連抽出プログラム11200は、計画済みのタスクを新規タスクと関連するタスクとしてタスク管理テーブル11510から抽出する(ステップ10038)。抽出される計画済みのタスクの情報としては、新規タスクと関連する計画済みのタスクのタスク識別子11511が考えられる。また、抽出された計画済みのタスク情報は、例えば、メモリ11000に格納される。
タスク間関連抽出プログラム11200は、タスク管理テーブル11510の全てのエントリについて処理が終了したか否かを判定する(ステップ10039)。
タスク管理テーブル11510の全てのエントリについて処理が終了していないと判定された場合、タスク間関連抽出プログラム11200は、ステップ10035に戻り、ステップ10035〜ステップ10039までの処理を実行する。
ステップ10039において、タスク管理テーブル11510の全てのエントリについて処理が終了したと判定された場合、タスク間関連抽出プログラム11200は、処理を終了する。
以上の処理のよって、新規タスクと関連する計画済みタスクが抽出される。
図13は、本発明の第1の実施形態の管理サーバ10000に格納されるタスク実行判定プログラム11300が新規タスクを実行すべきか否かを判定する処理(ステップ1004)の詳細を説明するフローチャートである。
まず、タスク実行判定プログラム11300は、タスク間関連抽出プログラム11200を実行することによって抽出された計画済みタスクを取得する(ステップ10041)。
次に、タスク実行判定プログラム11300は、ステップ10041において取得された各計画済みタスクに対して、以下の処理を実行する(ステップ10042)。
タスク実行判定プログラム11300は、取得された各計画済みタスクに関する情報(この場合は、計画済みタスクのタスク識別子11511)を参照して、計画済みタスクの関連リソース(この場合は、タスク関連リソース(論理ボリューム)11514及びタスク関連リソース(物理ディスク)11515)をタスク管理テーブル11510から取得する(ステップ10043)。
次に、タスク実行判定プログラム11300は、取得された計画済みタスクの関連リソース(この場合は、タスク関連リソース(論理ボリューム)11514及びタスク関連リソース(物理ディスク)11515)を参照して、性能情報テーブル11530から取得された各関連リソースの性能情報(この場合は、リソース性能(IOPS)11533)を取得する(ステップ10044)。
タスク実行判定プログラム11300は、計画済みタスクを実行した場合の各関連リソースの性能値をシミュレートする(ステップ10045)。
次に、タスク実行判定プログラム11300は、取得された全ての計画済みタスクに対して処理が実行された否かを判定する(ステップ10046)。
取得された全ての計画済みタスクに対して処理が実行されていないと判定された場合、タスク実行判定プログラム11300は、ステップ10042に戻り、ステップ10042〜ステップ10046の処理を実行する。
ステップ10046において、取得された全ての計画済みタスクに対して処理が実行されたと判定された場合、タスク実行判定プログラム11300は、新規タスクの関連リソース(この場合、タスク関連リソース(論理ボリューム)11514及びタスク関連リソース(物理ディスク)11515)をタスク管理テーブル11510から取得する(ステップ10047)。
次に、タスク実行判定プログラム11300は、ステップ10047において取得された新規タスクの関連リソース(この場合は、タスク関連リソース(論理ボリューム)11514及びタスク関連リソース(物理ディスク)11515)を参照して、取得された新規タスクの各関連リソースの性能閾値(この場合は、リソース性能(IOPS)11533)を性能情報テーブル11530から取得する(ステップ10048)。
次に、タスク実行判定プログラム11300は、新規タスクの全ての関連リソースに対して、シミュレートされた計画済みのタスクの関連リソースの性能値が、取得された新規タスクの関連リソースの性能閾値を満たしているか否かを判定する(ステップ10049)。
ステップ10049における条件を満たしていると判定された場合、タスク実行判定プログラム11300は、新規タスクのレコードをタスク管理テーブル11510及びマイグレーション管理テーブル11540から削除し(ステップ10050)、処理を終了する。
ステップ10049における条件を満たしていないと判定された場合、タスク実行判定プログラム11300は、処理を終了する。
尚、ステップ10050において、タスク実行判定プログラム11300は、タスク管理テーブル11510及びマイグレーション管理テーブル11540から新規タスクのレコードを削除する代わりに、余分な処理が実行されるが問題ないか否かの警告をユーザに出してもよい。
また、計画済みタスクよりも先に新規タスクが実行される場合には、タスク実行判定プログラム11300は、計画済みタスクによって余分な処理なく実行目的を満たすことを望むか、又は新規タスクの実行によって、より早く実行目的を満たすことを望むか、をユーザに問い合わせてもよい。新規タスクが即時実行タスクで、計画済みタスクがスケジューリングタスクなどの場合などがこれにあたる。
第1の実施形態では、「タスクB」が新規タスクとして計画され、「タスクA」が新規タスクに関連する計画済みタスクとして抽出される。
この場合、タスク実行判定プログラム11300は、「タスクA」における関連リソースである論理ボリューム22100(LV1、LV2)、及び物理ディスク22200(e1、e2)について、論理ボリューム22100(LV1)から論理ボリューム22100(LV3)へマイグレーションさせた場合の関連リソース性能値をシミュレートすることによって、論理ボリューム22100(LV1)のIOPSが10から0になり、論理ボリューム22100(LV3)のIOPSが0から10になり、物理ディスク22200(e1)のIOPSが30から20になり、物理ディスク22200(e2)のIOPSが0から10になることが予測できる。
尚、ステップ10045において、マイグレーション元のリソースにおけるIOPSの値を、マイグレーション先のリソースのIOPSに移すというシミュレートを行っているが、本発明はこれに限定されず、過去の履歴情報を利用するなど他の方法を用いてシミュレートを行ってもよい。
ステップ10045におけるシミュレーションの結果、タスク実行判定プログラム11300は、新規タスクである「タスクB」の関連リソースの論理ボリューム22100(LV2、LV4)、及び物理ディスク22200(e1、e2)の性能閾値が満たされていることがわかるため、「タスクB」を余分なタスクとして排除することができる。
本発明の第1の実施形態によれば、タスクの実行要因、及びタスクと構成上又は設定上関連するリソースを付加情報としてタスクに関連付けて管理することによって、管理サーバ10000は、新規タスクとは別の管理の観点に基づいて計画されたタスクの影響を含めてシミュレートし、新規タスクの実行が必要か否かを判定できる。これによって、実行が必要ないと判定された新規タスクを排除することができる。
[第2の実施形態]
本発明の第2の実施形態について説明する。以下の説明では、本発明の第1の実施形態との差異を中心に説明する。
第2の実施形態におけるSANの構成、ストレージ装置20000の構成、及びホスト30000の構成は、それぞれ第1の実施形態で示した図1、図3、及び図4と同一であるため、説明を省略する。
図14は、本発明の第2の実施形態の管理サーバ10000の構成の一例を示すブロック図である。
管理サーバ10000は、メモリ11000、記憶装置12000、入力装置13000、出力装置14000、プロセッサ15000、及び通信装置16000を備え、これらは内部バスなどの通信路17000を介して互いに接続される。
メモリ11000は、タスク管理プログラム11100、タスク間関連抽出プログラム11210、タスク実行判定プログラム11310、構成・性能情報収集プログラム11400、及びシステム管理リポジトリ11500を格納する。
タスク管理プログラム11100、及び構成・性能情報収集プログラム11400は、第1の実施形態と同一のものである。タスク間関連抽出プログラム11210、及びタスク実行判定プログラム11310の具体的な処理については、図16及び図17を用いて後述する。
システム管理リポジトリ11500には、タスク管理テーブル115110、構成情報テーブル11520、性能情報テーブル11530、及びマイグレーション管理テーブル11540が格納される。
タスク管理テーブル115110は、タスク種別、タスク実行要因、及びタスクに関連するリソースの情報を格納する。構成情報テーブル11520は、SANの構成情報を格納する。性能情報テーブル11530は、SANに接続された装置及び当該装置におけるリソースの性能情報を格納する。
構成情報テーブル11520、性能情報テーブル11530、及びマイグレーション管理テーブル11540は、第1の実施形態で示した図6、図7、及び図8と同一であるため、説明を省略する。タスク管理テーブル115110の詳細については、図15を用いて後述する。
記憶装置12000は、情報を格納するHDDなどである。入力装置13000は、SAN管理者がタスク管理プログラム11100などに指示を入力するためのキーボードなどである。出力装置14000は、タスク実行プログラム21300の処理の実行結果を出力するディスプレイ装置などである。プロセッサ15000は、メモリ11000上に展開されているプログラムを実行する。通信装置16000は、管理用ネットワーク50000に接続するための装置である。
記憶装置12000、入力装置13000、出力装置14000、プロセッサ15000、及び通信装置16000は、第1の実施形態と同一のものである。
図14に示す例では、前述のプログラム及び前述のテーブルは、メモリ11000に格納されているが、記憶装置12000又は他の記憶媒体(図示省略)に格納されもよい。この場合、プロセッサ15000は、プログラム実行時にメモリ11000上に前述のプログラム及び前述のテーブルを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000又はストレージ装置20000のメモリ21000に前述のプログラム及び前述のテーブルが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のサーバ(図示省略)又はファイバチャネルスイッチ(図示省略)など他の装置が、前述のプログラム及び前述のテーブルを格納し、格納されるプログラムを実行してもよい。
図15は、本発明の第2の実施形態のシステム管理リポジトリ11500に格納される、タスク管理テーブル115110の一例を示す説明図である。
タスク管理テーブル115110は、各タスクについて、その実行目的、処理内容、タスクに関連するリソースの情報、及びタスク状態を格納する。タスク管理プログラム11100が実行されることによって、タスク管理テーブル115110にレコードが追加される。
タスク管理テーブル115110は、タスク識別子115111、タスク種別115112、タスク実行要因115113、タスク関連リソース(論理ボリューム)115114、タスク関連リソース(物理ディスク)115115、及びタスク状態115116を含む。
タスク識別子115111は、タスクを一意に識別するための識別子を格納する。タスク種別115112は、タスクの種別を格納する。タスク実行要因115113は、タスク識別子115111に対応するタスクが実行される契機となった指標及び指標の値が格納される。
タスク関連リソース(論理ボリューム)115114は、タスク識別子115111に対応するタスクに関連する論理ボリューム22100を一意に識別するための論理ボリューム番号を格納する。タスク関連リソース(物理ディスク)115115は、タスク識別子11511に対応するタスクに関連する物理ディスク22200を一意に識別するための物理ディスク番号が格納される。
タスク状態115116は、タスクの実行状態を示す情報を格納する。具体的には、タスク状態115116には、「Processing」、「Ready」、又は「Waiting」のいずれかが格納される。「Processing」はタスク識別子115111に対応するタスクが実行されている状態を示し、「Ready」はタスク識別子115111に対応するタスクが実行可能である状態を示し、また、「Waiting」はタスク識別子115111に対応するタスクの実行が一時保留されている状態を示す。
第2の実施形態では、タスクの完了に伴って、タスク管理テーブル115110及びマイグレーション管理テーブル11540から完了したタスクに該当するエントリが削除される。
第2の実施形態では、タスク関連リソースとして、論理ボリューム22100及び物理ディスク22200をあげたが、本発明はこれに限定されない。例えば、関連リソースとして、論理ボリューム22100を利用するホスト30000、当該ホスト30000から当該論理ボリューム22100への書き込みのときにデータが経由するスイッチ(図示省略)、又は、ストレージ装置のデータI/F26000などを含めてもよい。
また、関連リソースとして、コピー及びバックアップなどの論理ボリューム22100間の設定情報及び設定状態情報などを保持するリソースを含めてもよい。
次に、管理サーバ10000上の各プログラムによって実行されるタスク管理処理について説明する。尚、ステップ1001及びステップ1002は、第1の実施形態と同一であるため、説明を省略する。以下、ステップ1003及びステップ1004について、第1の実施形態との差異を中心に説明する。
図16は、本発明の第2の実施形態の管理サーバ10000に格納されるタスク間関連抽出プログラム11210が新規タスクと計画済みのタスクとの関連を調べる処理(ステップ1003)の詳細を説明するフローチャートである。
まず、タスク間関連抽出プログラム11210は、タスク管理テーブル115110から新規タスクのタスク実行要因115113を取得する(ステップ100311)。
次に、タスク間関連抽出プログラム11210は、タスク管理テーブル115110の各レコードに対して以下の処理を実行する(ステップ100312)。具体的には、タスク管理テーブル115110から任意のレコードが選択され、選択されたタスクについて、以下の処理が実行される。
まず、タスク間関連抽出プログラム11210は、タスク管理テーブル115110から選択されたタスクのタスク実行要因115113を取得する(ステップ100313)。
次に、タスク間関連抽出プログラム11210は、新規タスクのタスク実行要因115113と、選択されたタスクのタスク実行要因115113とが同一であるか否かを判定する(ステップ100314)。
当該判定では、タスクが実行される契機となった指標及び指標の値が同一の場合、タスク間関連抽出プログラム11210は、新規タスクのタスク実行要因115113と、選択されたタスクのタスク実行要因115113とが同一であると判定してもよいし、タスクが実行される契機となった指標が同一の場合、タスク間関連抽出プログラム11210は、新規タスクのタスク実行要因115113と、選択されたタスクのタスク実行要因115113とが同一であると判定してもよい。
新規タスクのタスク実行要因115113と、選択されたタスクのタスク実行要因115113とが同一であると判定された場合、タスク間関連抽出プログラム11210は、新規タスクのタスク状態115116を「Waiting」に設定し(ステップ100316)、処理は終了する。
これによって、新規タスクの実行を一時保留の状態になる。これは、新規タスクと同一のタスク実行要因115113であるタスクを実行することによって、新規タスクにおけるタスク実行要因115113が既に解決済みである可能性があるためである。
ステップ100314において、新規タスクのタスク実行要因115113と、選択されたタスクのタスク実行要因115113とが同一でないと判定された場合、タスク間関連抽出プログラム11210は、新規タスクのタスク状態115116を「Ready」に設定し(ステップ100315)、ステップ100317に進む。
タスク間関連抽出プログラム11210は、タスク管理テーブル115110の全てのレコードに対して処理を実行したか否かを判定する(ステップ100317)。
タスク管理テーブル115110の全てのレコードに対して処理を実行していないと判定された場合、タスク間関連抽出プログラム11210は、ステップ100312に戻り、ステップ100312〜ステップ100317までの処理を実行する。
タスク管理テーブル115110の全てのレコードに対して処理を実行したと判定された場合、タスク間関連抽出プログラム11210は、タスク実行プログラム21300に新規タスクの実行要求を送信し(ステップ100318)、処理は終了する。
図17は、本発明の第2の実施形態の管理サーバ10000に格納されるタスク実行判定プログラム11310が新規タスクを実行すべきか否かを判定する処理(ステップ1004)の詳細な説明するフローチャートである。
タスク実行判定プログラム11310は、ストレージ装置20000のタスク実行プログラム21300からタスクの完了を受信する(ステップ100411)。当該タスクは、具体的には、タスク状態115116が「Processing」のタスクである。
次に、タスク実行判定プログラム11310は、タスク管理テーブル115110の各レコードに対して、以下の処理を実行する(ステップ100412)。具体的には、タスク管理テーブル115110から任意のレコードが選択され、選択されたタスクについて、以下の処理が実行される。
まず、タスク実行判定プログラム11310は、タスク管理テーブル115110を参照し、選択されたタスクのタスク状態115116が「Waiting」(以下、待ち状態タスクと記載する)であるか否かを判定する(ステップ100413)。
選択されたタスクが待ち状態タスクでないと判定された場合、タスク実行判定プログラム11310は、ステップ100420に進む。
ステップ100413において、選択されたタスクが待ち状態タスクがあると判定された場合、タスク実行判定プログラム11310は、待ち状態タスクの関連リソース(この場合、タスク関連リソース(論理ボリューム)115114及びタスク関連リソース(物理ディスク)115115)をタスク管理テーブル115110から取得する(ステップ100414)。
次に、タスク実行判定プログラム11310は、取得された待ち状態タスクの関連リソースを参照して、性能情報テーブル11530から待ち状態タスクの各関連リソースの性能情報(この場合は、リソース性能(IOPS)11533)及びリソースの性能閾値(この場合、リソース性能閾値11534)を取得する(ステップ100415)。
次に、タスク実行判定プログラム11300は、取得された待ち状態タスクの各関連リソースの性能情報(この場合は、リソース性能(IOPS)11533)とリソースの性能閾値(この場合、リソース性能閾値11534)とを比較し、取得された待ち状態タスクの各関連リソースの性能情報が、取得された待ち状態タスクの各関連リソースの性能閾値を満たしているか否かを判定する(ステップ100416)。
取得された待ち状態タスクの各関連リソースの性能情報が、取得された待ち状態タスクの各関連リソースを満たしていると判定された場合、タスク実行判定プログラム11310は、待ち状態タスクのレコードをタスク管理テーブル115110及びマイグレーション管理テーブル11540から削除し(ステップ100419)、処理を終了する。
ステップ100416において、取得された待ち状態タスクの各関連リソースの性能情報が、取得された待ち状態タスクの各関連リソースを満たしていないと判定された場合、タスク実行判定プログラム11310は、待ち状態タスクのタスク状態115116を「Ready」に設定する(ステップ100417)。つまり、待ち状態タスクが実行可能な状態のタスクとして設定される。
これは、ステップ1003において、同じタスク実行要因115113であるタスクが別に存在し、余分なタスクとなっている可能性があった待ち状態タスクを実行可能状態なタスクとしている。
タスク実行判定プログラム11310は、タスク実行プログラム21300にタスク状態115116が「Ready」に設定されたタスクの実行要求を送信する(ステップ100418)。
タスク実行判定プログラム11310は、タスク管理テーブル115110の全てのレコードに対して処理を実行したか否かを判定する(ステップ100420)。
タスク管理テーブル115110の全てのレコードに対して処理を実行していないと判定された場合、タスク実行判定プログラム11310は、ステップ100412に戻り、ステップ100412〜ステップ100420までの処理を実行する。
タスク管理テーブル115110の全てのレコードに対して処理を実行していると判定された場合、タスク実行判定プログラム11310は、処理を終了する。
第2の実施形態では、「タスクB」が新規タスクとして計画され、「タスクA」と同一のタスク実行要因115113であるため、当該新規タスクのタスク状態115116には「Waiting」が設定される。
ステップ100416において、タスク実行判定プログラム11310は、「タスクA」における関連リソースである論理ボリューム22100(LV1、LV3)、及び物理ディスク22200(e1、e2)について、論理ボリューム22100(LV1)から論理ボリューム22100(LV3)へマイグレーションした後の関連リソース性能値が、新規タスクである「タスクB」の関連リソースの性能閾値が満たされていることが分かる。したがって、タスク実行判定プログラム11310は、「タスクB」を余分なタスクとして排除することができる。
尚、ステップ100416における判定方法は、実施形態1におけるシミュレートと同一の方法を用いてもよい。
本発明の第2の実施形態によれば、タスクのタスク実行要因、タスクと構成上又は設定上関連するリソース、及びタスクの実行状態を、付加情報としてタスクに関連付けて管理することによって、管理サーバ10000は、同一のタスク実行要因115113で、かつ、同時に実行できないタスクについて、タスク開始時にストレージ装置20000の性能情報を再確認し、タスク実行の必要性を判定できる。これによって、余分なタスクを排除することができる。
別の観点では、管理サーバ10000は、新規タスクと関連しないタスクについて、シミュレート等を実行する必要がないため、第1の実施形態と比べ、処理を低減できる。
[第3の実施形態]
本発明の第3の実施形態について説明する。以下の説明では、本発明の第1の実施形態との差異を中心に説明する。
本発明の第3の実施形態におけるSANの構成、ストレージ装置20000の構成、及びホスト30000の構成は、それぞれ第1の実施形態で示した図1、図3、及び図4と同一であるため、説明を省略する。
図18は、本発明の第3の実施形態の管理サーバ10000の構成の一例を示すブロック図である。
管理サーバ10000は、メモリ11000、記憶装置12000、入力装置13000、出力装置14000、プロセッサ15000、及び通信装置16000を備え、これらは内部バスなどの通信路17000を介して互いに接続される。
メモリ11000は、タスク管理プログラム11130、タスク間関連抽出プログラム11200、タスク実行判定プログラム11330、構成・性能情報収集プログラム11400、及びシステム管理リポジトリ11500を格納する。
システム管理リポジトリ11500には、タスク管理テーブル115130、構成情報テーブル11520、性能情報テーブル11530、マイグレーション管理テーブル11540、タスク分類テーブル11550、アクセス管理テーブル11560、及び性能履歴テーブル11570が格納される。
タスク管理テーブル115130は、タスク種別、タスク実行要因、タスクに関連するリソースの情報、タスク計画時刻、及びタスク開始予定時刻を格納する。構成情報テーブル11520は、SANの構成情報を格納する。性能情報テーブル11530は、SANに接続された装置及び当該装置におけるリソースの性能情報を格納する。マイグレーション管理テーブル11540は、マイグレーション処理に関する情報を格納する。タスク分類テーブル11550は、タスクの優先度を格納する。
アクセス管理テーブル11560は、アクセス禁止処理の情報を格納する。性能履歴テーブル11570は、SANに接続された装置及び当該装置におけるリソースの性能情報の履歴を格納する。
記憶装置12000は、情報を格納するHDDなどである。入力装置13000は、SAN管理者がタスク管理プログラム11100などに指示を入力するためのキーボードなどである。出力装置14000は、タスク実行プログラム21300の処理の実行結果を出力するディスプレイ装置などである。プロセッサ15000は、メモリ11000上に展開されているプログラムを実行する。通信装置16000は、管理用ネットワーク50000に接続するための装置である。
記憶装置12000、入力装置13000、出力装置14000、プロセッサ15000、及び通信装置16000は、第1の実施形態と同一のものである。
図18に示す例では、前述のプログラム及び前述のテーブルは、メモリ11000に格納されているが、記憶装置12000又は他の記憶媒体(図示省略)に格納されもよい。この場合、プロセッサ15000は、プログラム実行時にメモリ11000上に前述のプログラム及び前述のテーブルを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000又はストレージ装置20000のメモリ21000に前述のプログラム及び前述のテーブルが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のサーバ(図示省略)又はファイバチャネルスイッチ(図示省略)など他の装置が、前述のプログラム及び前述のテーブルを格納し、格納されるプログラムを実行してもよい。
図19は、本発明の第3の実施形態のシステム管理リポジトリ11500に格納される、タスク管理テーブル115130の一例を示す説明図である。
タスク管理テーブル115130は、各タスクについて、その実行目的、処理内容、タスクに関連するリソースの情報、タスクの計画時刻、及びタスクの開始予定時刻を格納する。タスク管理プログラム11130が実行されることによって、タスク管理テーブル115130にレコードが追加される。
タスク管理テーブル115130は、タスク識別子115131、タスク種別115132、タスク実行要因115133、タスク関連リソース(論理ボリューム)115134、タスク関連リソース(物理ディスク)115135、計画時刻115136、及び115137を含む。
タスク識別子115131は、タスクを一意に識別するための識別子を格納する。タスク種別115132は、タスクの種別を格納する。タスク実行要因115133は、タスク識別子115131に対応するタスクが実行される契機となった指標及び指標の値が格納される。
タスク関連リソース(論理ボリューム)115134は、タスク識別子115131に対応するタスクに関連する論理ボリューム22100を一意に識別するための論理ボリューム番号を格納する。タスク関連リソース(物理ディスク)115135は、タスク識別子11511に対応するタスクに関連する物理ディスク22200を一意に識別するための物理ディスク番号が格納される。
計画時刻115136は、タスク識別子115131に対応するタスクの実行が計画された時刻を格納する。開始予定時刻115137は、タスク識別子115131に対応するタスクの実行が開始される時刻を格納する。
尚、計画時刻115136及び開始予定時刻115137に、「−」が格納されているレコードは、即時実行など、特に開始時刻が設定されていないタスクを示す。
第3の実施形態では、タスク関連リソースとして、論理ボリューム22100及び物理ディスク22200をあげたが、本発明はこれに限定されない。例えば、関連リソースとして、論理ボリューム22100を利用するホスト30000、当該ホスト30000から当該論理ボリューム22100への書き込みのときにデータが経由するスイッチ(図示省略)、又は、ストレージ装置のデータI/F26000などを含めてもよい。
また、関連リソースとして、コピー及びバックアップなどの論理ボリューム22100間の設定情報及び設定状態情報などを保持するリソースを含めてもよい。
尚、システム管理リポジトリ11500に格納される構成情報テーブル11520、性能情報テーブル11530、マイグレーション管理テーブル11540、及びタスク分類テーブル11550は、第1の実施形態に示す図6、図7、図8、及び図9と同一のものであるが、第3の実施形態における一例として、構成情報テーブル11520及びマイグレーション管理テーブル11540について示す。
図20は、本発明の第3の実施形態のシステム管理リポジトリ11500に格納される、構成情報テーブル11520の一例を示す説明図である。図21は、本発明の第3の実施形態のシステム管理リポジトリ11500に格納される、マイグレーション管理テーブル11540の一例を示す説明図である。各テーブルの構成は、第1の実施形態と同一のものであるため説明を省略する。
図22は、本発明の第3の実施形態のシステム管理リポジトリ11500に格納される、アクセス管理テーブル11560の一例を示す説明図である。
アクセス管理テーブル11560は、ストレージ装置20000に格納されるタスク実行プログラム21300によって、アクセス禁止処理が実行された論理ボリューム22100に対して、アクセス禁止を解除するときに必要な情報を格納する。タスク管理プログラム11130が実行されることによって、アクセス管理テーブル11560にレコードが追加される。
アクセス管理テーブル11560は、アクセス禁止設定番号11561、論理ボリューム番号11562、アクセス禁止有効期限11563、及びタスク識別子11564を含む。
アクセス禁止設定番号11561は、アクセス禁止設定を一意に識別するための識別子を格納する。論理ボリューム番号11562は、アクセス禁止設定の対象である論理ボリューム22100を一意に識別するための論理ボリューム番号を格納する。
アクセス禁止有効期限11563は、アクセス禁止の有効期限を示す情報を格納する。タスク識別子11564は、タスクを一意に識別するための識別子を格納する。
第3の実施形態では、タスクの一例として、マイグレーション及びアクセス禁止解除を考えているため、管理サーバ10000はマイグレーション管理テーブル11540及びアクセス管理テーブル11560を備えているが、本発明はこれに限定されない。例えば、管理サーバ10000は、コピー又はパス設定など他の機能をタスクとして管理し、各機能に対応する管理テーブルを備えていてもよい。
図23は、本発明の第3の実施形態のシステム管理リポジトリ11500に格納される、性能履歴テーブル11570の一例を示す説明図である。
性能履歴テーブル11570は、ストレージ装置20000の論理ボリューム22100及び物理ディスク22200などのSAN構成要素の性能情報の履歴を格納する。構成・性能情報収集プログラム11400が実行されることによって、性能履歴テーブル11570にレコードが追加される。
尚、第3の実施形態では、管理サーバ10000は、性能情報テーブル11530と性能履歴テーブル11570とを別々に格納しているが、本発明はこれに限定されない。例えば、管理サーバ10000は、履歴情報を含めた性能情報テーブル11530を格納してもよい。
性能履歴テーブル11570は、ストレージ名11571、リソース番号11572、情報取得時刻11573、及びリソース性能(IOPS)(Read/Write)11574を含む。
ストレージ名11571は、ストレージ装置20000を一意に識別するための識別子を格納する。リソース番号11572は、ストレージ名11571に対応するストレージ装置20000の論理ボリューム22100又は物理ディスク22200を一意に識別するための論理ボリューム番号又は物理ディスク番号を格納する。
情報取得時刻11573は、性能情報が取得された時刻が格納される。リソース性能(IOPS)(Read/Write)11574は、リソース番号11572に対応する論理ボリューム22100又は物理ディスク22200への単位時間(第3の実施形態では1秒)あたりのReadI/O、WeiteI/Oの数がそれぞれ格納される。
第3の実施形態では、リソースの性能情報としてReadIOPSecond及びWriteIOPSecondを用いたが、IOResponseTime、又はTransferRateなどの他の性能情報を用いてもよい。
次に、管理サーバ10000上の各プログラムによって実行されるタスク管理処理について説明する。尚、ステップ1001及びステップ1003は、第1の実施形態と同一であるため、説明を省略する。以下、ステップ1002及びステップ1004について、第1の実施形態との差異を中心に説明する。
図24は、本発明の第3の実施形態の管理サーバ10000に格納されるタスク管理プログラム11130が新規タスクをタスク管理テーブル115130に登録する処理(ステップ1002)の詳細を説明するフローチャートである。尚、当該フローチャートでは、アクセス禁止処理がタスクとして計画された場合を例に説明する。
タスク管理プログラム11130は、ユーザ又は任意のプログラムから、タスク情報を受信する(ステップ100231)。当該タスク情報には、論理ボリューム番号、及びアクセス禁止の有効期限が含まれる。
タスク管理プログラム11130は、受信したタスク情報に基づいて、アクセス管理テーブル11560に、新規エントリを作成し、アクセス禁止設定番号11561、論理ボリューム番号11562、アクセス禁止有効期限11563、及びタスク識別子11564を設定する(ステップ100232)。
タスク管理プログラム11130は、受信したタスク情報に基づいて、タスク管理テーブル115130に新規エントリを作成し、タスク種別115132、タスク実行要因115133、計画時刻115136、開始予定時刻115137、及びタスク識別子115131を設定する(ステップ100233)。尚、タスク識別子15131には、アクセス管理テーブル11560のタスク識別子11564と同一の識別子が設定される。
第3の実施形態では、タスク管理プログラム11130は、管理サーバ10000によって取得された、ステップ100233の処理が開始された時の時刻を計画時刻115136として設定しているが、本発明はこれに限定されない。例えば、管理サーバ10000がストレージ装置20000共通の時刻管理サーバ(図示省略)から時刻情報を取得し、タスク管理プログラム11130は、取得された時刻情報を計画時刻115136に設定してもよい。
また、第3の実施形態では、管理サーバ10000によって取得されたアクセス禁止の有効期限が開始予定時刻115137に設定されるが、本発明はこれに限定されない。例えば、開始予定時刻に当たる情報を保持していない処理の場合、第1の実施形態の図11に示すようにタスク実行要因11513を登録した時と同様、タスク管理プログラム11130は、タスクを送信してきたプログラムから取得して設定する、又はユーザ入力に基づいて設定してもよい。
次に、タスク管理プログラム11130は、アクセス管理テーブル11560の論理ボリューム番号11562を参照し、タスクの処理対象となるリソースを取得する(ステップ100234)。
タスク管理プログラム11130は、取得されたタスクの処理対象となるリソースと構成上又は設定上関連するリソースを構成情報テーブル11520から取得し、タスク管理テーブル115130のタスク関連リソース115134、115135に設定し(ステップ100235)、処理を終了する。
図25は、本発明の第3の実施形態の管理サーバ10000に格納されるタスク実行判定プログラム11330が新規タスクを実行すべきか否かを判定する処理(ステップ1004)の詳細な説明するフローチャートである。
まず、タスク実行判定プログラム11330は、タスク間関連抽出プログラム11200を実行することによって抽出された計画済みタスクを取得する(ステップ100431)。
次に、タスク実行判定プログラム11330は、取得された各計画済みタスク及び新規タスクに対して以下の処理を実行する(ステップ100432)。
タスク実行判定プログラム11330は、取得された各計画済みタスク及び新規タスクに関する情報(この場合、タスク識別子11544、11564)を参照し、タスク管理テーブル115130から、計画済みタスク及び新規タスクの関連リソース(この場合、タスク関連リソース(論理ボリューム)115134及びタスク関連リソース(物理ディスク)115135)を取得する(ステップ100433)。
次に、タスク実行判定プログラム11330は、取得された関連リソースを参照し、性能情報テーブル11530から、取得された関連リソースの性能情報(この場合、リソース性能(IOPS)11533及びリソース性能閾値11534)を取得し、また、性能履歴テーブル11570から、取得された関連リソースの性能情報(この場合、リソース性能(IOPS)(Read/Write)11574)を取得する(ステップ100434)。
タスク実行判定プログラム11330は、取得された関連リソースの性能情報に基づいて、計画済みタスク及び新規タスクが実行された後の、各関連リソースの性能値をシミュレートする(ステップ100435)。
タスク実行判定プログラム11330は、取得された全ての計画済みのタスクについて処理が終了した否かを判定する(ステップ100436)。
取得された全ての計画済みのタスクについて処理が終了していないと判定された場合、タスク実行判定プログラム11330は、ステップ100432に戻り、ステップ100432〜ステップ100436の処理を実行する。
取得された全ての計画済みのタスクについて処理が終了していると判定された場合、タスク実行判定プログラム11330は、取得された新規タスクの関連リソースを参照し、性能情報テーブル11530から、取得された新規タスクの関連リソースの性能閾値(この場合、リソース性能閾値11534)を取得する(ステップ100438)。
タスク実行判定プログラム11330は、取得された全ての新規タスクの関連リソースに対し、シミュレートされた性能値が、取得された新規タスクの関連リソースの性能閾値を満たしているか否かを判定する(ステップ100439)。
シミュレートされた性能値が、取得された新規タスクの関連リソースの性能閾値を満たしていないと判定された場合、タスク実行判定プログラム11330は、タスク管理テーブル115130から、取得された計画済みタスクの開始予定時刻115137を取得し(ステップ100440)、取得された開始予定時刻115137に性能劣化の可能性があることを示し、新規タスクを実行してもよいか否かの警告をユーザに通知し(ステップ100441)、処理を終了する。
シミュレートされた性能値が、取得された新規タスクの関連リソースの性能閾値を満たしていると判定された場合、タスク実行判定プログラム11330は、処理を終了する。
第3の実施形態では、「タスクB」が新規タスクとして計画され、「タスクA」が新規タスクに関連する計画済みタスクとして抽出される。
タスク実行判定プログラム11330は、「タスクA」の関連リソースである論理ボリューム22100(LV3)、物理ディスク22200(e2)について、アクセス禁止が解除された後の性能値をシミュレートすることで、論理ボリューム22100(LV3)のIOPSが10から35に、物理ディスク22200(e2)のIOPSが10から35になることが予測できる。
当該シミュレートは、アクセス禁止設定が実行される前の性能履歴として論理ボリューム22100に対するIOPSの値を、アクセス禁止設定が解除された後に加わるIOPSの値として追加することで行っているが、本発明はこれに限定されず、他の方法を用いてシミュレートを行ってもよい。
タスク実行判定プログラム11330は、「タスクB」の関連リソースである、論理ボリューム22100(Lv2、LV4)、物理ディスク22200(e1、e2)について、論理ボリューム22100(LV2)から論理ボリューム22100(LV4)へのマイグレーション後の性能値をシミュレートすることによって、論理ボリューム22100(LV2)のIOPSが20から0になり、論理ボリューム22100(LV4)のIOPSが0から20になり、物理ディスク22200(e1)のIOPSが30から10になり、物理ディスク22200(e2)のIOPSが35から55になることが予測できる。
尚、マイグレーションにおけるシミュレートは第1の実施形態と同一であるため、説明を省略する。
シミュレートの結果、タスク実行判定プログラム11330は、「タスクB」の関連リソースである物理ディスク22200(e2)の性能閾値が満たされなくなることがわかるため、「タスクB」を実行してよいか否かの警告をユーザに通知する。これによって、「タスクB」が余分なタスクとして提示される。
本発明の第3の実施形態によれば、タスクの実行要因、及びタスクと構成上又は設定上関連するリソースを、付加情報としてタスクに関連付けて管理することによって、管理サーバ10000は、注目しているタスクの後に実行されるタスクの影響を含めた結果をシミュレートし、タスク実行の必要性を判断できる。
また、シミュレートの結果、タスク実行が必要でない場合、当該タスクの実行は必要ない旨の警告をユーザに通知でき、これによって余分なタスクの排除できる。
[第4の実施形態]
本発明の第4の実施形態について説明する。以下の説明では、本発明の第1の実施形態との差異を中心に説明する。
まず、第4の実施形態におけるSANの構成例について説明する。
図26は、本発明の第4の実施形態のSANの構成の一例を示すブロック図である。
第4の実施形態におけるSANは、一台以上のホスト30000、一台以上のストレージ装置20000、及び一台以上の管理サーバ10000を備える。
ストレージ装置20000は、タスク実行プログラム21300を格納する。タスク実行プログラム21300は、ストレージ装置20000が提供する機能を実現するためのプログラムである。
ストレージ装置20000は、複数の物理ディスク22200(e1、e2)を備え、また、複数の物理ディスク22200から構成される仮想化プール22400(vp1)を備える。
ストレージ装置20000上には、複数の論理ボリューム22100及び複数の仮想ボリューム22300が作成され、作成された論理ボリューム22100及び仮想ボリューム22300が、ホスト30000に提供される。
図26に示す例では、ストレージ装置20000(ストレージ装置A)は、ホスト30000(ホストA)に対して、論理ボリューム22100(LV1)及び仮想ボリューム22300(vv1)を提供する。
尚、第4の実施形態における各処理は、仮想ボリューム22300を備えるストレージ装置20000を含むSANの構成に限定されず、図1に示すようなSANの構成であってもよい。
管理サーバ10000は、タスク管理プログラム11140、タスク間関連抽出プログラム11200、及びタスク実行判定プログラム11340を格納する。
タスク管理プログラム11140は、タスク管理テーブル115120(図29参照)を生成するためのプログラムである。尚、タスク管理プログラム11140の処理の詳細については、図34を用いて後述する。
タスク間関連抽出プログラム11200は、新たに計画されたタスクと計画済みの他のタスクとの関連を調べるプログラムである。尚、タスク間関連抽出プログラム11200の処理は、第1の実施形態と同一のものである。
タスク実行判定プログラム11340は、新たに計画されたタスクを実行するか否かを判定するプログラムである。尚、タスク実行判定プログラム11340の処理の詳細については、図35を用いて後述する。
ホスト30000は、ストレージ装置20000によって提供された論理ボリューム22100及び仮想ボリューム22300を用いて、各種業務を実行する。
ホスト30000(ホストA)とストレージ装置20000(ストレージ装置A)とは、ファイバチャネル40000を介して互いに接続される。
管理サーバ10000(管理サーバA)は、管理用ネットワーク50000を介して、ストレージ装置20000(ストレージ装置A)及びホスト30000(ホストA)に接続される。管理サーバ10000(管理サーバA)は、管理用ネットワーク50000を介してタスク実行プログラム21300と通信できる。
図26に示す例では、管理サーバ10000がタスク管理プログラム11140、タスク間関連抽出プログラム11200、及びタスク実行判定プログラム11340を格納しているが、本発明はこれに限定されない。例えば、ストレージ装置20000又はホスト30000が、前述のプログラムを格納してもよい。また、各装置間に設置されているスイッチ(図示省略)などの他の装置が、前述のプログラムを格納してもよい。
また、ストレージ装置20000がタスク実行プログラム21300を格納しているが、本発明はこれに限定されない。例えば、管理サーバ10000又はホスト30000が、タスク実行プログラム21300を格納してもよい。また、各装置間に設置されているスイッチ(図示省略)などの他の装置が、タスク実行プログラム21300を格納してもよい。
また、ホスト30000(ホストA)とストレージ装置20000(ストレージ装置A)との間の接続は、ファイバチャネル40000を介して直接接続されるものに限定されず、一台以上のファバチャネルスイッチなどのネットワーク機器を介して接続されてもよい。また、ホスト30000(ホストA)とストレージ装置20000(ストレージ装置A)との間の接続は、データ通信用のネットワークであればよく、例えば、IPネットワークでもよい。
図27は、本発明の第4の実施形態の管理サーバ10000の構成の一例を示すブロック図である。
管理サーバ10000は、メモリ11000、記憶装置12000、入力装置13000、出力装置14000、プロセッサ15000、及び通信装置16000を備え、これらは内部バスなどの通信路17000を介して互いに接続される。
メモリ11000は、タスク管理プログラム11140、タスク間関連抽出プログラム11200、タスク実行判定プログラム11340、構成・容量情報収集プログラム11410、及びシステム管理リポジトリ11500を格納する。
構成・容量情報収集プログラム11410は、第1の実施形態と同一のものであるが、性能情報の代わりに、論理ボリューム22100などの容量に関する情報を収集する。
システム管理リポジトリ11500には、タスク管理テーブル115120、構成情報テーブル115220、容量情報テーブル115320、マイグレーション管理テーブル11540、タスク分類テーブル11550、及び仮想化プール管理テーブル11580が格納される。
タスク管理テーブル115120は、タスク種別、タスク実行要因、及びタスクに関連するリソースの情報を格納する。構成情報テーブル115220は、SANの構成情報を格納する。容量情報テーブル115320は、SANに接続された装置及び当該装置におけるリソースの容量情報を格納する。
マイグレーション管理テーブル11540は、マイグレーション処理に関する情報を格納する。タスク分類テーブル11550は、タスクの優先度を格納する。仮想化プール管理テーブル11580は、仮想化プール22400に関する情報を格納する。
記憶装置12000は、情報を格納するHDDなどである。入力装置13000は、SAN管理者がタスク管理プログラム11100などに指示を入力するためのキーボードなどである。出力装置14000は、タスク実行プログラム21300の処理の実行結果を出力するディスプレイ装置などである。プロセッサ15000は、メモリ11000上に展開されているプログラムを実行する。通信装置16000は、管理用ネットワーク50000に接続するための装置である。
図27に示す例では、前述のプログラム及び前述のテーブルは、メモリ11000に格納されているが、記憶装置12000又は他の記憶媒体(図示省略)に格納されもよい。この場合、プロセッサ15000は、プログラム実行時にメモリ11000上に前述のプログラム及び前述のテーブルを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000(図4参照)又はストレージ装置20000のメモリ21000(図3参照)に前述のプログラム及び前述のテーブルが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のサーバ(図示省略)又はファイバチャネルスイッチ(図示省略)など他の装置が、前述のプログラム及び前述のテーブルを格納し、格納されるプログラムを実行してもよい。
図28は、本発明の第4の実施形態のストレージ装置20000の構成の一例を示すブロック図である。
ストレージ装置20000は、メモリ21000、論理ボリューム提供部22000、ディスクI/F制御部23000、管理I/F24000、プロセッサ25000、及びデータI/F26000を備え、これらは内部バスなどの通信路27000を介して互いに接続される。
メモリ21000は、ディスクキャッシュ21100、構成情報管理プログラム21200、及びタスク実行プログラム21300を格納する。
ディスクキャッシュ21100は、情報を一時格納するための記憶領域である。構成情報管理プログラム21200は、ストレージ装置20000の管理情報及び性能・容量情報を管理サーバ10000との間で送受信するためのプログラムである。タスク実行プログラム21300は、ストレージ装置20000の提供する機能を実行するためのプログラムである。
論理ボリューム提供部22000は、物理ディスク22200を備える。論理ボリューム提供部22000は、物理ディスク22200の記憶領域を論理的に分割し、当該論理的に分割された記憶領域を論理ボリューム22100として提供する。これによって、論理ボリューム22100及び仮想ボリューム22300に対する当該ストレージ装置20000外からのアクセスを可能としている。
また、論理ボリューム提供部22000は、複数の物理ディスク22200から構成される仮想化プール22400の記憶領域を論理的に分割し、当該分割された記憶領域を仮想ボリューム22300として提供する。これによって、ホスト30000のユーザは、任意の容量のボリュームを仮想ボリューム22300として定義し、当該仮想ボリューム22300を経由して仮想化プール22400内の記憶領域へのアクセスが可能となる。
尚、物理ディスク22200には物理ディスク番号が付され、論理ボリューム22100には論理ボリューム番号が付され、仮想ボリューム22300には仮想ボリューム番号が付され、また、仮想化プール22400には仮想化プール番号が付される。これによって、ストレージ装置20000は、物理ディスク22200、論理ボリューム22100及び仮想ボリューム22300をそれぞれ一意に識別することができる。
図28に示す例では、ストレージ装置20000には、物理ディスク番号が「e1」、「e2」及び「e3」の物理ディスク22200が3つあり、論理ボリューム番号が「LV1」の論理ボリューム22100が1つあり、仮想ボリューム番号が「vv1」の仮想ボリューム22300が1つあり、さらに、仮想化プール番号が「vp1」の仮想化プール22400が1つあることが分かる。
ディスクI/F制御部23000は、論理ボリューム提供部22000と接続するためのインタフェースである。管理I/F24000は、管理用ネットワーク50000と接続するためのインタフェースである。プロセッサ25000は、メモリ21000上に展開されたプログラムを実行する。
データI/F26000は、ファイバチャネル40000と接続するためのインタフェースである。尚、ディスクI/F制御部23000、管理I/F24000、及びデータI/F26000は、複数個あってもよい。図28に示す例では、ストレージ装置20000は、データI/F(p1)及びデータI/F(p2)の2つのデータI/F26000を備える。
図28に示す例では、前述のプログラムは、メモリ21000に格納されているが、他の記憶装置(図示省略)又は他の記憶媒体(図示省略)に格納されていてもよい。この場合、プロセッサ25000は、処理実行時にメモリ21000上に前述のプログラムを読み出し、読み出されたプログラムを実行する。
また、ホスト30000のメモリ31000又はストレージ装置20000のメモリ21000に前述のプログラムが格納され、ホスト30000又はストレージ装置20000が格納されるプログラムを実行してもよい。また、他のストレージ装置(図示省略)が、前述のプログラムを格納し、格納されるプログラムを実行してもよい。
また、論理ボリューム提供部22000は、複数の物理ディスク22200から構成されるRAIDグループを論理的に分割して論理ボリューム22100を作成してもよい。また、論理ボリューム提供部22000は、1つの物理ディスク22200の全記憶領域を1つの論理ボリューム22100として作成してもよい。また、論理ボリューム提供部22000は、物理ディスク22200以外のフラッシュメモリなどの記憶媒体の記憶領域から論理ボリューム22100を作成してもよい。
図29は、本発明の第4の実施形態のシステム管理リポジトリ11500に格納される、タスク管理テーブル115120の一例を示す説明図である。
タスク管理テーブル115120は、各タスクについて、その実行目的、処理内容、タスクに関連するリソースの情報、及びタスクの実行状況を格納する。タスク管理プログラム11140が実行されることによって、タスク管理テーブル115120にレコードが追加される。
タスク管理テーブル115120は、タスク識別子115121、タスク種別115122、タスク実行要因115123、タスク関連リソース(論理ボリューム)115124、タスク関連リソース(プール)115125、タスク関連リソース(物理ディスク)115126、及びタスク実行状況115127を含む。
タスク識別子115121は、タスクを一意に識別するための識別子を格納する。タスク種別115122は、タスクの種別を格納する。タスク実行要因115123は、タスク識別子115121に対応するタスクが実行される契機となった指標及び指標の値が格納される。
タスク関連リソース(論理ボリューム)115124は、タスク識別子115121に対応するタスクに関連する論理ボリューム22100又は仮想ボリューム22300を一意に識別するための論理ボリューム番号又は仮想ボリューム番号を格納する。
タスク関連リソース(プール)115125は、タスク識別子115121に対応するタスクに関連する仮想化プール22400を一意に識別するための仮想化プール番号を格納する。
タスク関連リソース(物理ディスク)115126は、タスク識別子115121に対応するタスクに関連する物理ディスク22200を一意に識別するための物理ディスク番号が格納する。
タスク実行状況115127は、タスク識別子115121に対応するタスクの実行状況を格納する。具体的には、「未実行」、「実行中」又は「実行完了」のいずれかが格納される。「未実行」はタスクが実行前の状態を示し、「実行中」はタスクが実行中の状態を示し、「実行完了」はタスクが完了した状態を示している。
タスクの実行が開始した時に、タスク管理プログラム11140は、タスク実行プログラム21300からタスク実行開始を受信し、タスク実行状況115127に「実行中」を設定する。タスク実行が完了した時に、タスク管理プログラム11140は、タスク実行プログラム21300からタスク実行完了を受信し、タスク実行状況115127に「実行完了」を設定する。
第4の実施形態では、タスク関連リソースとし、論理ボリューム22100、仮想ボリューム22300、仮想化プール22400、及び物理ディスク22200をあげたが、本発明はこれに限定されない。例えば、関連リソースとして、論理ボリューム22100を利用するホスト30000、当該ホスト30000から当該論理ボリューム22100への書き込みのときにデータが経由するスイッチ(図示省略)、又は、ストレージ装置のデータI/F26000などを含めてもよい。
また、関連リソースとして、コピー及びバックアップなどの論理ボリューム22100間の設定情報及び設定状態情報などを保持するリソースを含めてもよい。
図30は、本発明の第4の実施形態のシステム管理リポジトリ11500に格納される、構成情報テーブル115220の一例を示す説明図である。
構成情報テーブル115220は、論理ボリューム22100又は仮想ボリューム22300にホスト30000がアクセスする場合に経由する、ホスト30000と当該ホスト30000に提供された論理ボリューム22100又は仮想ボリューム22300が作成されている物理ディスク22200との間における経路に関する情報を格納する。構成・性能情報収集プログラム11400が実行されることによって、構成情報テーブル115220にレコードが追加される。
構成情報テーブル115220は、ホスト名115221、ボリューム番号115222、ストレージ名115223、データI/F番号115224、論理ボリューム番号115225、仮想化プール番号115226、及び物理ディスク番号115227を含む。
ホスト名115221は、ホスト30000を一意に識別するための識別子を格納する。ボリューム番号115222は、ストレージ装置20000内の論理ボリューム22100をマウントした、ホスト30000内のボリュームを一意に識別するための識別子を格納する。
ストレージ名115223は、ボリューム番号112522に対応するボリュームを提供するストレージ装置20000を一意に識別するための識別子を格納する。
データI/F番号115224は、ボリューム番号115222に対応するボリュームにホスト30000が利用するデータI/F26000の番号を一意に識別するための識別子を格納する。
論理ボリューム番号115225は、ボリューム番号115222に対応するボリュームが利用している論理ボリューム22100を一意に識別するための識別子を格納する。
仮想化プール番号115226は、仮想化プール22400を一意に識別するための識別子を格納する。物理ディスク番号115227は、ボリューム番号11522に対応するボリュームが利用している物理ディスクを一意に識別するための識別子を格納する。
尚、ホスト名115221及びボリューム番号11522に「−」が格納されているレコードは、ホスト30000にストレージが割り当てられていないことを示す。また、仮想化プール番号115226に「−」が格納されているレコードは、ホスト30000に提供されるボリュームが論理ボリューム22100であることを示す。
図31は、本発明の第4の実施形態のシステム管理リポジトリ11500に格納される、容量情報テーブル115320の一例を示す説明図である。
容量情報テーブル115320は、ストレージ装置20000の論理ボリューム22100、物理ディスク22200、仮想ボリューム22300及び仮想化プール22400などのSAN構成要素の容量情報、並びに、SAN構成要素の容量閾値を格納する。構成・容量情報収集プログラム11410が実行されることによって、容量情報テーブル115320にレコードが追加される。
ここで、容量閾値とは、仮想化プール22400における記憶領域の使用量などを監視するために、予め管理対象リソースに設定された値を示す。これによって、例えば、管理サーバ10000は、運用中に容量情報の値が容量閾値を超えるとユーザへ通報する等のアクションを起こすことができる。
容量情報テーブル115320は、ストレージ名115321、リソース番号115322、使用中容量115323、残リソース容量115324、及び残リソース容量閾値115325を含む。
ストレージ名115321は、ストレージ装置20000を一意に識別するための識別子を格納する。リソース番号115322は、ストレージ名115321に対応するストレージ装置20000上に作成された、仮想ボリューム22300又は仮想化プール22400を一意に識別するための仮想ボリューム番号又は仮想化プール番号を格納する。
使用中容量115323は、リソース番号11532に対応する仮想化プール22400の全容量中若しくは仮想ボリューム22300として使用されている容量、又はリソース番号11532に対応する仮想ボリューム22300の容量を格納する。
残リソース容量115324は、仮想化プール22400全容量中のうち使用可能な残り容量を格納する。残リソース容量閾値115325は、仮想化プール22400に設定された容量の閾値を格納する。
尚、リソース番号115322に仮想ボリューム22300を示す仮想ボリューム番号が格納されている場合、残リソース容量115324、及び残リソース容量閾値115325には「−」が格納される。
第4の実施形態では、タスク実行による影響をシミュレートするための指標として容量情報を参照するため、管理サーバ10000は、容量情報テーブル115320を備えているが、本発明はこれに限定されない。例えば、管理サーバ10000は、性能情報又はコスト情報などの閾値を利用して監視を行うような指標を持つテーブルを備えてもよい。
システム管理リポジトリ11500内に格納される、マイグレーション管理テーブル11540及びタスク分類テーブル11550については、第1の実施形態で示した図8及び図9と同一であるが、第4の実施形態における一例として、マイグレーション管理テーブル11540を示す。
図32は、本発明の第4の実施形態のシステム管理リポジトリ11500に格納される、マイグレーション管理テーブル11540の一例を示す説明図である。マイグレーション管理テーブル11540の構成は、第1の実施形態と同一のものであるため説明を省略する。
図33は、本発明の第4の実施形態のシステム管理リポジトリ11500に格納される、仮想化プール管理テーブル11580の一例を示す説明図である。
仮想化プール管理テーブル11580は、ストレージ装置20000が備えるタスク実行プログラム21300が、仮想化プール22400に対して、新たな記憶領域を割り当てるときに必要な情報を格納する。タスク管理プログラム11140が実行されることによって、仮想化プール管理テーブル11580にレコードが追加される。
仮想化プール管理テーブル11580は、プールパス設定番号11581、仮想化プール番号11582、新規追加物理ディスク番号11583、物理ディスク容量11584、及びタスク識別子11585を含む。
プールパス設定番号11581は、仮想化プール22400に記憶領域を割り当てる操作を一意に識別するための識別子を格納する。仮想化プール番号11582は、プールパス設定番号11581に対応する記憶領域の割当操作の対象となる仮想化プール22400を一意に識別するための仮想化プール番号を格納する。
新規追加物理ディスク番号11583は、仮想化プール番号11582に対応する仮想化プール22400に追加される物理ディスク22200を一意に識別する物理ディスク番号を格納する。
物理ディスク容量11584は、新規追加物理ディスク番号11583に対応する物理ディスク22200の容量を格納する。タスク識別子11585は、タスクを一意に識別するための識別子を格納する。
第4の実施形態では、タスクの一例として仮想化プール22400に対する物理ディスク22200の追加操作及びマイグレーションを取り上げているため、管理サーバ10000は、仮想化プール管理テーブル11580及びマイグレーション管理テーブル11540を備えているが、本発明はこれに限定されない。例えば、管理サーバ10000は、コピーなど他の機能をタスクとして管理し、各機能に対応する管理テーブルを備えていてもよい。
次に、管理サーバ10000上の各プログラムによって実行されるタスク管理処理について説明する。尚、ステップ1001及びステップ1003は、第1の実施形態と同一であるため、説明を省略する。以下、ステップ1002及びステップ1004について、第1の実施形態との差異を中心に説明する。
図34は、本発明の第4の実施形態の管理サーバ10000に格納されるタスク管理プログラム11140が新規タスクをタスク管理テーブル115120に登録する処理(ステップ1002)の詳細を説明するフローチャートである。尚、当該フローチャートでは、仮想化プール22400に新たに物理ディスク22200を追加する操作がタスクとして計画された場合を例に説明する。
タスク管理プログラム11140は、ユーザ又は任意のプログラムから、タスク情報を受信する(ステップ100221)。当該タスク情報には、仮想化プール番号、及び物理ディスク番号が含まれる。
タスク管理プログラム11140は、受信したタスク情報に基づいて、仮想化プール管理テーブル11580に、新規エントリを作成し、仮想化プール番号11582、新規追加物理ディスク番号11583、物理ディスク容量11584、及びタスク識別子11585を設定する(ステップ100222)。
タスク管理プログラム11140は、受信したタスク情報に基づいて、タスク管理テーブル115120に新規エントリを作成し、タスク種別115122及びタスク識別子115121を設定する(ステップ100223)。尚、タスク識別子115121には、仮想化プール管理テーブル11580のタスク識別子11585と同一の識別子が設定される。
次に、タスク管理プログラム11140は、仮想化プール管理テーブル11580を参照し、タスクの処理対象となるリソースを取得する(ステップ100224)。
タスク管理プログラム11140は、取得されたタスクの処理対象となるリソースと構成上又は設定上関連するリソースを構成情報テーブル115220から取得し、タスク管理テーブル115120のタスク関連リソース115124、115125、115126に設定する(ステップ100225)。
タスク管理プログラム11140は、新たに計画されたタスクがユーザによって計画されたタスクであるか否かを判定する(ステップ100226)。
新たに計画されたタスクがユーザによって計画されたタスクであると判定された場合、タスク管理プログラム11140は、タスク実行の目的についてユーザ入力を要求し(ステップ100227)、ユーザ入力の結果をタスク管理テーブル115120のタスク実行要因115123に設定し(ステップ100228)、ステップ100230に進む。
ステップ100226において、新たに計画されたタスクがユーザによって計画されたタスクでないと判定された場合、つまり、任意のプログラムによって計画されたタスクであると判定された場合、タスク管理プログラム11140は、タスク情報を送信してきたプログラムからタスク実行が計画された契機を取得し、取得されたタスク実行が計画された契機をタスク管理テーブル115120のタスク実行要因115123に設定し(ステップ100229)、ステップ100230に進む。
タスク管理プログラム11140は、タスク実行状況115127に「未実行」を設定し(ステップ100230)、処理を終了する。
図35は、本発明の第4の実施形態の管理サーバ10000に格納されるタスク実行判定プログラム11340が新規タスクを実行すべきか否かを判定する処理(ステップ1004)の詳細な説明するフローチャートである。
まず、タスク実行判定プログラム11340は、タスク間関連抽出プログラム11200を実行することによって抽出された計画済みタスクを取得する(ステップ100421)。
次に、タスク実行判定プログラム11340は、ステップ100421において取得された各計画済みタスクに対して、以下の処理を実行する(ステップ100422)。
タスク実行判定プログラム11340は、タスク管理テーブル115120を参照し、取得された計画済みタスクのタスク実行状況115127が「実行完了」であるか否かを判定する(ステップ100423)。
取得された計画済みタスクのタスク実行状況115127が「実行完了」であると判定された場合、タスク実行判定プログラム11340は、タスク管理テーブル115120、及びステップ1000421において取得されたタスクから、当該タスクを削除し(ステップ100427)、ステップ100428に進む。
取得された計画済みタスクのタスク実行状況115127が「実行完了」でないと判定された場合、タスク実行判定プログラム11340は、タスク管理テーブル115120から当該計画済みタスクの関連リソースを取得する(ステップ100424)。
次に、タスク実行判定プログラム11340は、取得された各関連リソースの容量情報を容量情報テーブル115320から取得する(ステップ100425)。
タスク実行判定プログラム11340は、計画済みタスクが実行された後の各関連リソースの容量値をシミュレートする(ステップ100426)。
タスク実行判定プログラム11340は、取得された全ての計画済みタスクについて処理が終了したか否かを判定する(ステップ100428)。
取得された全ての計画済みタスクについて処理を終了していないと判定された場合、タスク実行判定プログラム11340は、ステップ100422に戻り、ステップ100422〜ステップ1000428の処理を実行する。
取得された全ての計画済みタスクについて処理を終了したと判定された場合、タスク実行判定プログラム11340は、タスク管理テーブル115120から新規タスクの関連リソースを取得する(ステップ100429)。
次に、タスク実行判定プログラム11340は、容量情報テーブル115320から取得された新規タスクの各関連リソースの残リソース容量閾値115325を取得する(ステップ1004301)。
タスク実行判定プログラム11340は、シミュレートされた容量値が、ステップ1004301において取得された新規タスクの関連リソースの残リソース容量閾値115325を満たしているか否かを判定する(ステップ1004302)。
シミュレートされた容量値が、取得された新規タスクの関連リソースの残リソース容量閾値115325を満たしていると判定された場合、タスク実行判定プログラム11340は、タスク管理テーブル115120及び仮想化プール管理テーブル11580から新規タスクを削除し(ステップ1004303)、処理を終了する。
ステップ1004302において、シミュレートされた容量値が、取得された新規タスクの関連リソースの残リソース容量閾値115325を満たしていないと判定された場合、タスク実行判定プログラム11340は、タスク管理テーブル115120から新規タスクのタスク実行状況115127を取得する(ステップ1004304)。
タスク実行判定プログラム11340は、取得された新規タスクのタスク実行状況115127が「未実行」であるか否かを判定する(ステップ1004305)。
取得された新規タスクのタスク実行状況115127が「未実行」でないと判定された場合、タスク実行判定プログラム11340は、処理を終了する。
ステップ1004305において、取得された新規タスクのタスク実行状況115127が「未実行」であると判定された場合、タスク実行判定プログラム11340は、ステップ100421において取得された各計画済みタスクに対して、以下の処理を実行する(ステップ1004306)。但し、ステップ100427において削除されたタスクがある場合、当該タスクには以下の処理は実行されない。
タスク実行判定プログラム11340は、タスク管理テーブル115120から計画済みタスクのタスク実行状況115127を取得し、取得されたタスク実行状況115127が「実行完了」であるか否かを判定する(ステップ1004307)。
取得されたタスク実行状況115127が「実行完了」であると判定された場合、タスク実行判定プログラム11340は、ステップ100422に戻り、ステップ100422以下の処理を実行する。
ステップ1004307において、取得されたタスク実行状況115127が「実行完了」でないと判定された場合、タスク実行判定プログラム11340は、全ての計画済みタスクに対して処理を終了したか否かを判定する(ステップ1004308)。
全ての計画済みタスクに対して処理を終了していないと判定された場合、タスク実行判定プログラム11340は、ステップ1004306に戻り、ステップ1004306以下の処理を実行する。
全ての計画済みタスクに対して処理を終了したと判定された場合、タスク実行判定プログラム11340は、ステップ1004305に戻り、ステップ1004305以下の処理を実行する。
第4の実施形態では、「タスクB」が新規タスクとして計画され、「タスクA」が新規タスクに関連する計画済みタスクとして抽出される。
タスク実行判定プログラム11340は、「タスクA」の関連リソースである仮想ボリューム22300(vv1)、論理ボリューム22100(LV1)、仮想化プール22400(vp1)、及び物理ディスク22200(e1、e3)について、アーカイブ実行の結果の容量値をシミュレートすることによって、仮想化プール22400(vp1)の残リソース容量115324が90から190になり、仮想ボリューム22300(vv1)の残リソース容量115324が100から0になることが予測できる。
この結果、タスク実行判定プログラム11340は、「タスクB」のタスク実行要因115123である仮想化プール22400(vp1)の残リソース容量115324が残リソース容量閾値115325を満たすことが分かるため、「タスクB」を余分なタスクとして排除することができる。
本発明の第4の実施形態によれば、タスクの実行要因及びタスクと構成上又は設定上関連するリソースを、付加情報としてタスクに関連付けて管理することによって、注目しているタスクにおいて考慮していない別の処理の影響を含めた結果をシミュレートして、タスク実行の必要性を判定できる。
これによって、タスク実行の必要がない場合、当該タスクの実行を取り消すなど、余分なタスクを排除することができる。
また、第4の実施形態では、特に、実行が完了したタスクについての実測値を含めたシミュレートを随時実行することによって、タスク実行の必要性の判定の精度を高める効果がある。
以上説明を行ってきた第1乃至第4の実施形態はどのような組み合わせを行ってもよい。また、システム管理リポジトリに含まれる性能情報テーブル11530等の本発明の「テーブル」については必ずしもデータ構造がテーブルである必要はなく、リンクリスト等のほかのデータ構造であってもよい。そのことを明記するために、「テーブル」はデータ構造の意味を持たない「情報」と読み替えてもよい。