以下、本発明のアクセス制御方法の実施形態について、図面に示し説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態の計算機システムの構成を示す図である。第1の実施形態の計算機システムは、計算機1及びストレージ装置7を含む。計算機1は、SAN(Storage Area Network)を介して、ストレージ装置7にアクセスする。ストレージ装置7は、計算機1によって読み書きされるデータを格納する。
計算機1は、CPU21、メモリ22及びインタフェース24を備える。CPU21は、メモリ22に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ22は、CPU21によって実行されるプログラム及び業務処理に必要なデータを記憶する。インタフェース24は、SANに接続される。
メモリ22は、データ管理プログラム2、業務プログラム17、及びOS23を記憶する。データ管理プログラム2は、ストレージ装置7に格納されたデータを管理する。業務プログラム17は、ストレージ装置7に格納されたデータに対して、データ管理プログラム2を介してアクセスし、業務処理を実行する。
データ管理プログラム2は、データ処理部19、アクセス監視部20、アクセス制御部6及び複製計画部5を有する。データ管理プログラム2は、レプリケーション機能を備え、管理対象のオブジェクト単位で複製を作成する。オブジェクトとは、データ又はデータの集合を含み、例えば、ファイル、データベースの表及びレコードなどが該当する。
データ処理部19は、データを論理的なオブジェクト単位で管理し、オブジェクトに対する処理を実行する。アクセス監視部20は、オブジェクトに対するアクセスを監視する。複製計画部5は、オブジェクトの複製を作成又は削除する契機を、設定及び管理する。オブジェクトの複製を作成又は削除する契機とは、具体的には、オブジェクトの複製を作成する時刻及び削除する時刻が該当する。
アクセス制御部6は、オブジェクトに対する処理要求をストレージ装置7の記憶装置の格納領域に対するアクセスに変換し、要求された処理を実行する。また、アクセス制御部6は、オブジェクトの複製が作成されているとき、受け付けた読み出し要求によるアクセス先を複製元又は複製先に振り分ける。また、受け付けた書き込み要求に応じて、複製元及び複製先にデータを書き込む。
さらに、メモリ22は、データ領域管理テーブル90、アクセス統計テーブル100、複製時刻管理テーブル110、複製領域管理テーブル120、アクセス先管理テーブル130、及び複製先候補テーブル140を含む。
データ領域管理テーブル90は、ストレージ装置7に作成されたデータ領域の構成情報を格納する。アクセス統計テーブル100は、所定の期間におけるオブジェクトに対するアクセス履歴を格納する。
複製時刻管理テーブル110は、複製されたオブジェクトの作成時刻及び削除時刻を格納する。複製領域管理テーブル120は、複製されたオブジェクトが格納される領域を特定する情報を格納する。オブジェクトが格納される領域は、オブジェクトに含まれるデータのデータ格納領域とすることができる。
アクセス先管理テーブル130は、データ管理プログラム2のアクセス制御部6が複製元の領域に対するアクセス要求を受け付けたとき、アクセス先を特定するための情報を格納する。複製先候補テーブル140は、オブジェクトの複製を格納する領域の候補に関する情報を格納する。
ストレージ装置7は、ディスクコントローラ25及び記憶装置11を備える。記憶装置11は、計算機1によって読み書きされるデータを格納する。ディスクコントローラ25は、記憶装置11に格納されたデータのアクセスを制御する。ディスクコントローラ25は、記憶装置11の記憶領域を一つ以上の論理ボリューム12として、計算機1に提供する。記憶装置11は、ディスクドライブであってもよいし、不揮発性の半導体メモリであってもよい。インタフェース26は、SANに接続される。
ディスクコントローラ25は、CPU27及びメモリ28を備える。CPU27は、要求された指示に応じた処理を実行する。メモリ28は、制御部18及び複製作成部8を記憶する。制御部18は、記憶装置11に対する入出力を制御する。
複製作成部8は、部分記憶領域の複製を作成する。部分記憶領域とは、複製対象のオブジェクトが格納された記憶領域であって、例えば、データベースの表が格納されている領域などであってもよいし、当該表のレコードが格納されている領域であってもよい。
続いて、計算機1のメモリ22に格納される各種情報について説明する。
図2は、本発明の第1の実施形態のストレージ装置7に作成されたデータ領域の構成情報を格納するデータ領域管理テーブル90を示す図である。データ領域管理テーブル90は、オブジェクト名91、領域番号92、論理ボリューム番号93、始点ディスクブロック番号94及び終点ディスクブロック番号95を含む。
オブジェクト名91は、管理されるオブジェクトを識別する名称が格納される。領域番号92は、当該オブジェクトが格納される領域の番号が格納される。論理ボリューム番号93は、当該オブジェクトが格納される論理ボリュームを識別する番号が格納される。
始点ディスクブロック番号94は、オブジェクト名91によって識別されるオブジェクトが格納されたブロックの開始ブロック番号が格納される。終点ディスクブロック番号95は、同様に、オブジェクトが格納されたブロックの最終ブロック番号が格納される。
データ領域管理テーブル90は、各オブジェクトの格納領域単位にレコードが生成される。また、複製されたオブジェクトは、図5にて後述される複製領域管理テーブル120によって管理される。データ領域管理テーブル90に格納されたデータは、オブジェクトが新たに定義されたときに新規に登録され、オブジェクトの格納領域範囲の変更に伴って更新される。
図3は、本発明の第1の実施形態の所定の期間内のオブジェクトに対するアクセス履歴を格納するアクセス統計テーブル100を示す図である。アクセス統計テーブル100は、オブジェクト名101、領域番号102、時刻103、READ回数104及びWRITE回数105を含む。
オブジェクト名101は、アクセス履歴が取得されたオブジェクトを識別する名称である。領域番号102は、オブジェクト名101によって識別されるオブジェクトが格納された記憶領域の領域番号である。
時刻103は、アクセス履歴の取得を開始した時刻である。READ回数104及びWRITE回数105は、時刻103に格納された時刻から所定の時間内にオブジェクト名101で特定されるオブジェクトにアクセスされた回数である。所定の時間は、例えば、10分間である。
図4は、本発明の第1の実施形態の複製されたオブジェクトの作成時刻及び削除時刻を格納する複製時刻管理テーブル110を示す図である。複製時刻管理テーブル110は、管理番号111、オブジェクト名112、領域番号113、複製作成時刻114、及び複製削除時刻115を含む。
管理番号111は、作成されたオブジェクトの複製を識別する番号を格納する。オブジェクト名112は、複製元のオブジェクトの名称を格納する。領域番号113は、複製された領域を識別する番号を格納する。複製作成時刻114は、複製が作成される時刻を格納する。複製削除時刻115は、複製が削除される時刻を格納する。
図5は、本発明の第1の実施形態の複製されたオブジェクトが格納される領域を特定する情報を格納する複製領域管理テーブル120を示す図である。複製領域管理テーブル120は、管理番号121、オブジェクト名122、領域番号123、論理ボリューム番号124、始点ディスクブロック番号125及び終点ディスクブロック番号126を含む。
管理番号121は、図4に示した複製時刻管理テーブル110の管理番号111と同じであり、管理番号によって、時刻情報と領域情報とを連携させることができる。なお、オブジェクト名122、領域番号123、論理ボリューム番号124、始点ディスクブロック番号125及び終点ディスクブロック番号126については、図2の対応する項目と同じ内容である。
図6は、本発明の第1の実施形態のアクセス制御部6が複製元に対するアクセス要求を受け付けたとき、アクセス先を特定するアクセス先管理テーブル130を示す図である。アクセス先管理テーブル130は、オブジェクト名131、領域番号132、複製元領域133、及びアクセス先領域134を含む。
オブジェクト名131は、アクセス先のオブジェクトの名称を格納する。領域番号132は、当該オブジェクトが格納される領域の領域番号を格納する。
複製元領域133及びアクセス先領域134は、アクセス先リスト135の要素を指し示すアドレスを格納する。アクセス先リスト135は、リスト構造となっており、各要素は、計算機1によってアクセスされる複製元又は複製先のオブジェクトの情報に対応している。
複製元領域133は、複製元のオブジェクトに対応するアクセス先リスト135の要素のアドレスが格納される。アクセス先領域134は、オブジェクトに対するアクセス要求を受信したとき、複製元領域又は複製先領域に対応し、実際にアクセスされるアクセス先リスト135の要素のアドレスが格納される。
アクセス先リスト135の要素は、アクセス先論理ボリューム番号136、アクセス先相対ブロック番号137、管理番号138、及び次回アクセス先139を含む。アクセス先相対ブロック番号137は、複製元ブロック番号とアクセス先ブロック番号との相対的なブロック番号の差分を格納する。管理番号138は、複製されたオブジェクトの管理番号である。なお、アクセス先リスト135の要素に対応するオブジェクトが複製元である場合には、NULLが格納される。
次回アクセス先139は、当該アクセス先リスト135の要素に対応するオブジェクトがアクセスされた後、アクセス先を分散させるために、次回アクセスされる複製元又は複製先のオブジェクトの領域のアドレスである。このように、アクセス先リスト135は、各要素の次回アクセス先139が次レコードを指すことによって、リスト構造が構成される。
アクセス制御部6は、要求されたオブジェクトに対するアクセスが完了すると、アクセスを分散させるために、アクセス先領域134を次回アクセス先139によって特定される複製元又は複製先のオブジェクトに更新する。
図7は、本発明の第1の実施形態のオブジェクトの複製を格納する領域の候補を格納する複製先候補テーブル140を示す図である。複製先候補テーブル140は、複製計画部5によって、複製されるオブジェクトを格納する領域を選定するために参照される。
複製先候補テーブル140は、RAIDグループ番号141、論理ボリューム番号142及びテストデータスループット143を含む。複製先候補テーブル140は、RAIDグループ番号141及び論理ボリューム番号142によって特定される領域について、性能を示す値であるテストデータスループット143を格納する。テストデータスループット143は、あらかじめ計測された結果を格納する。
続いて、本発明の第1の実施形態の処理について説明する。まず、処理の概要を図8及び図9から図11を参照しながら説明する。さらに、図12から図18のフローチャートを参照しながら処理の詳細を説明する。
図8は、本発明の第1の実施形態のアクセス制御方法の概要を説明する図である。
本発明の第1の実施形態のアクセス制御方法は、まず、複製計画部5によって、オブジェクトの複製を作成する契機を設定する(1)。続いて、複製作成部8は、オブジェクトのデータ格納領域に対応する領域の複製を作成する(2)。このとき、複製計画部5は、複製元領域と複製先領域にアクセスを分散させるための所定の情報をメモリ22に記録する(3)。
アクセス制御部6は、オブジェクトが複製された後、複製元領域に対するアクセス要求を受け付けると、実際にアクセスする領域を複製元領域又は複製先領域に設定し、アクセス先を振り分ける(4)。
複製計画部5は、さらに、複製された領域を削除する契機を設定する(5)。複製作成部8は、設定された契機で複製された領域を削除する。このとき、複製計画部5は、複製作成時にメモリ22に記録されたアクセスを分散させるための所定の情報を削除する(6)。
ここで、各ステップ(1)から(6)について、さらに説明する。
複製計画部5は、ステップ(1)において、予め集計されたアクセス頻度の統計情報に基づいて、複製を作成する契機を設定する。例えば、図3に示したアクセス統計テーブル100を参照し、特定のオブジェクトが読み出し(READ)回数が所定の値を超える契機を、当該オブジェクトの複製を作成する契機とする。さらに具体的な設定方法については、本アクセス制御方法の詳細を説明する図12にて後述する。
また、複製計画部5は、複製を作成する契機を設定するときに、所定の情報を複製時刻管理テーブル110に格納する。具体的に登録する情報については詳細を後述する。なお、複製を作成する契機は、上位のアプリケーションから通知に基づいて設定されてもよい。上位のアプリケーションとは、例えば、業務プログラム17である。
複製計画部5は、ステップ(2)において、領域対象範囲の複製作成をストレージ装置7の複製作成部8に通知する。データ管理プログラム2は、オブジェクトが格納されている記憶領域の始点及び終点などの情報をデータ領域管理テーブル90に予め保持しておく。そして、複製計画部5は、複製対象のオブジェクト及び当該オブジェクトが格納されている領域の情報を複製作成部8に通知する。
複製作成部8は、複製計画部5から複製指示を受信すると、複製先の論理ボリュームを決定し、複製計画部5に通知する。複製計画部5は、複製先論理ボリュームの未使用領域から複製先の領域を決定し、複製作成部8に複製元領域のデータを複製先領域にコピーするように通知する。複製作成後、複製作成部8は、複製先の領域情報をデータ管理プログラム2に通知する。
複製計画部5は、複製作成部8から複製先の領域情報を受信すると、ステップ(3)において、受信した複製先の領域情報に基づいて、アクセス先情報を作成する。具体的には、複製領域管理テーブル120及びアクセス先管理テーブル130に所定の情報を登録する。
アクセス制御部6は、ステップ(4)において、外部から複製が作成されたオブジェクトに対するREAD要求を受信すると、ステップ(3)にて登録されたアクセス先管理テーブル130に基づいて、要求されたオブジェクトにアクセスする。アクセス制御部6は、アクセス先管理テーブル130からアクセスされた複製元又は複製先オブジェクトに対応するアクセス先リスト135の要素を取得し、当該要素の次回アクセス先139の値をアクセス先領域134に設定する。
複製計画部5は、ステップ(5)において、複製を削除する契機を設定する。複製を削除する契機についても、例えば、図3に示したアクセス統計テーブル100を参照し、READ回数が所定の値を下回ったとき、又は、書き込み(WRITE)回数が所定の値を超えたときを、複製を削除する契機とする。なお、複製を削除する契機は、上位のアプリケーションから通知に基づいて設定してもよい。
複製作成部8は、ステップ(6)において、オブジェクトの複製を削除する契機となると、当該削除される複製に関連する情報をアクセス先管理テーブル130などから削除し、最後に複製先領域を削除する。
さらに、オブジェクトが格納された領域を複製する方法について、具体的に説明する。図9から図11は、複製を作成するオブジェクトについて、複製先の領域を説明する図である。
図9は、本発明の第1の実施形態において、アクセス頻度の多いオブジェクトの複製を1対1で作成する方法を説明する図である。図9では、分割されたTable1(30)の一部及びTable2(31)の複製が作成される。
Table1(30)は、物理ボリューム33Aの論理ボリューム34Aの領域35及び物理ボリューム33Bの論理ボリューム34Bの領域40に分割されて格納される。Table2(31)は、論理ボリューム34Aの領域36に格納される。Table3(32)は、論理ボリューム34Aの領域37に格納される。
複製計画部5は、Table1(30)及びTable2(31)のアクセス頻度が所定の閾値を超えたとき、論理ボリューム34Aに格納されたオブジェクトの領域を物理ボリューム33Cの論理ボリューム34Cに複製を作成するように設定する。そして、複製を作成する契機において、論理ボリューム34Cに領域35及び領域36の複製である複製先領域38及び複製先領域39を作成する。
図10は、本発明の第1の実施形態において、アクセス頻度の多いオブジェクトの複製をアクセス頻度ごとの領域を複製する方法を説明する図である。図10では、Table1(41)の複製が作成される。
Table1(41)は、物理ボリューム42Aの論理ボリューム43Aの領域44に格納されている。Table1(41)は、格納されたデータに応じて領域ごとにアクセス頻度が異なる。図10では、領域44は、アクセス頻度の高い領域45と、さらにアクセス頻度の高い領域46とを含む。例えば、領域44がデータベースのテーブル、領域45が関連する複数のレコード、さらに、領域46が特にアクセスの多い特定のレコードとすることができる。
このように、単一のオブジェクトであってもアクセスされる領域に偏りがある場合には、アクセス頻度ごとに領域の複製を作成することによって、効率よくアクセスを分散させることができる。具体的に図10を参照すると、領域44全体を物理ボリューム42Bの論理ボリューム43Bに複製先領域47として作成する。領域45は、物理ボリューム42Cの論理ボリューム43Cに複製先領域48として作成される。領域46は、物理ボリューム42Dの論理ボリューム43Dに複製先領域49として作成される。
アクセス先の振り分けについては、一例として、複製された領域ごとにアクセス先リストを作成する。具体的には、領域44、領域45及び領域46に対応したアクセス先リストを作成し、領域46については、領域44、領域47、領域48及び領域49をリストの要素とし、領域44については、領域47のみをアクセス先リストの要素とする。このようにアクセス先リストを構成することによって、アクセス頻度に応じてアクセスを分散させることができる。
図11は、本発明の第1の実施形態において、アクセス頻度の多いオブジェクトの複製を分割して作成する方法を説明する図である。図11では、Table1(50)の複製が作成される。
Table1(50)は、物理ボリューム51Aの論理ボリューム52Aの領域53及び領域54に格納されている。Table1(50)は、全体としてのアクセス頻度は高いが、領域53及び領域54のアクセス頻度に大きな偏りはないものとする。このとき、図11に示すように、領域を分割し、物理ボリューム51Bの論理ボリューム領域52Bの領域55に領域53を複製し、同様に、物理ボリューム51Bの論理ボリューム領域52Cの領域56に領域54を複製する。ここで、領域53及び領域54に対応するアクセス先リストを作成することによって、アクセスを分散させることができる。
ここで、本発明の第1の実施形態のアクセス制御方法の詳細を説明する。まず、オブジェクトの複製を作成及び削除する契機を設定する手順を説明し、続いて、オブジェクトの複製を作成及び削除する手順を説明する。最後に、業務プログラム17からの読み出し要求に対して、アクセス先を振り分ける手順について説明する。なお、第1の実施形態のアクセス制御方法では、図9に示したように、アクセス頻度の高いオブジェクトを格納する領域を1対1に複製を作成する。
図12は、本発明の第1の実施形態の各オブジェクトの複製作成時刻及び複製削除時刻を設定する手順を示すフローチャートである。具体的には、図4に示した複製時刻管理テーブル110のデータを設定する手順を説明する。本処理は、データ管理プログラム2の複製計画部5によって実行される。
複製計画部5は、データ管理プログラム2のアクセス監視部20によって取得された各オブジェクトの格納領域ごとに単位時間当たりのREAD回数、及びWRITE回数を取得する(ステップ1001)。
複製計画部5は、ステップ1001の処理で取得された単位時間当たりのREAD回数及びWRITE回数をアクセス統計テーブル100に記録する(ステップ1002)。
複製計画部5は、アクセス監視部20が2日分のアクセス情報の収集が完了したか否かを判定する(ステップ1003)。複製計画部5は、アクセス統計テーブル100に記録されたアクセス情報に基づいて、オブジェクトを複製する計画を作成する。なお、アクセス情報を収集する期間は、第1の実施形態では2日間としているが、適用する業務に応じて決定すればよい。
複製計画部5は、所定期間のアクセス情報の取得が完了していない場合には(ステップ1003の結果が「NO」)、アクセス情報の収集を継続する。
複製計画部5は、所定期間のアクセス情報の取得が完了すると(ステップ1003の結果が「YES」)、アクセス統計テーブル100に格納された情報を解析する(ステップ1004)。複製計画部5は、アクセス統計テーブル100に格納された情報を解析することによって、オブジェクトの複製を作成する契機、オブジェクトの複製を削除する契機、及び複製されるオブジェクトの数を特定する。図13に解析結果となるグラフを示す。
図13は、本発明の第1の実施形態のオブジェクトに対して受け付けたREAD要求の回数の推移を示すグラフの一例である。グラフ60は、横軸に時刻、縦軸にREAD回数となっている。左側の縦軸は、オブジェクトの複製個数の基準を示す。右側の縦軸は、READ回数を示す。
グラフ60は、最もアクセス回数が少ない時刻を始点として、オブジェクトごとに各時刻あたりのREAD回数を表す1日分のグラフを作成する。t1からt4は、READ回数が閾値と一致する時刻である。t1s及びt2sは、オブジェクトの複製の作成を開始する時刻を示す。詳細については、後述する。
一方、オブジェクトの複製が作成された個数が多い場合には、読み出し処理の性能は向上するが、書き込み処理については複製された個数の書き込み処理が必要となるため、処理性能が悪化する。そこで、オブジェクトの複製の作成の判定にWRITE回数を加味してもよい。
図14は、本発明の第1の実施形態のオブジェクトに対して受け付けたREAD要求及びWRITE要求の回数の推移を示すグラフの一例である。グラフ70は、横軸に時刻、縦軸にREAD回数又はWRITE回数となっている。折れ線71は、WRITE回数の推移を示す。折れ線72は、READ回数の推移を示す。
図14を参照すると、時刻t1において、WRITE回数が閾値を下回り、時刻t2において、READ回数が閾値を上回っている。したがって、時刻t1以前には、READ回数が閾値を超えた場合であっても、オブジェクトの複製を作成しないとしてもよい。そして、時刻t1以降、READ回数が閾値を上回る時刻t2に複製が作成されるように複製作成時刻を決定することができる。
また、READ要求の件数がWRITE要求の件数と比較して多い場合には、予め最大複製個数を算出し、READ回数の閾値を上回った時点ですべてのオブジェクトの複製を作成してもよい。
図15は、本発明の第1の実施形態のオブジェクトに対して受け付けたREAD要求の回数の時間ごとの推移に対応し、作成される複製の個数を示すグラフの一例である。グラフ80は、横軸に時刻、右側の縦軸に閾値に対応する複製個数、左側の縦軸にREAD回数となっている。
図15を参照すると、オブジェクトの最大複製個数は、「3」である。そして、期間Teの開始時刻に1つ以上の複製が作成されるように複製作成時刻を設定する。なお、期間Teの開始時刻において、1つの複製が作成されているように複製作成時刻を設定してもよいし、すべて(3つ)の複製が作成されているように複製作成時刻を設定してもよい。
ここで、図12のフローチャートの説明に戻る。
複製計画部5は、ステップ1004において解析されたアクセス情報に基づいて、複製を作成及び削除する契機を特定する。具体的には、図13に示したREAD回数の時間的推移を示すグラフを参照し、複製作成及び複製削除の基準となる基準READ回数とグラフの交点が存在するか否かを判定する(ステップ1005)。図13では、時刻t1、t2、t3及びt4が該当する。READ回数が基準READ回数を超えることがなければ(ステップ1005の結果が「NO」)、本処理を終了する。
複製計画部5は、READ回数が基準READ回数と一致する時刻が存在する場合には(ステップ1005の結果が「YES」)、当該時刻において、READ回数が増加傾向であるか否かを判定する(ステップ1006)。
複製計画部5は、READ回数が基準READ回数と一致する時刻において、READ回数が増加傾向にある場合には(ステップ1006の結果が「YES」)、オブジェクトの複製を作成する。オブジェクトの複製を作成することによって、READ要求によるアクセスを分散させることができるため、処理性能を向上させることができる。図13では、t1及びt2が該当する。
複製計画部5は、まず、複製作成に要する時間を判定するために、複製元領域のサイズを取得する(ステップ1007)。具体的には、複製計画部5は、データ領域管理テーブル90から始点ディスクブロック番号94及び終点ディスクブロック番号95を参照し、複製元領域のサイズを算出する。
続いて、複製計画部5は、複製計画部5がステップ1007の処理で算出された複製元領域のサイズから複製作成に要する時間を算出する(ステップ1008)。そして、ステップ1006の処理で取得された時刻から複製作成予測時間を減算し、複製作成時刻を決定する。図13では、複製作成予測時間はt1sからt1までの時間、及びt2sからt2までの時間が該当する。複製作成時刻は、図13のt1s及びt2sが該当する。
複製計画部5は、最後に、複製時刻管理テーブル110に複製対象となるオブジェクト名112、領域番号113、複製作成時刻114及び管理番号111を登録する(ステップ1009)。
一方、複製計画部5は、READ回数が基準READ回数と一致する時刻において、READ回数が減少傾向である場合には(ステップ1006の結果が「NO」)、オブジェクトの複製を削除する。また、複製が格納されていることによって占有された領域を解放することによって、使用される記憶容量を抑制することができる。図13では、t3及びt4が複製削除時刻に該当する。
複製計画部5は、まず、削除する対象のオブジェクトの複製を特定する。削除対象は、オブジェクトの複製のうち、直近に作成されたものとする。そして、削除対象のオブジェクトの複製を作成した時刻を取得する(ステップ1010)。図13では、t3の時刻に削除する複製を作成した時刻はt2sとなり、t4の時刻に削除する複製を作成した時刻はt1sとなる。
複製計画部5は、ステップ1010の処理によって取得された複製作成時刻を有するレコードを複製時刻管理テーブル110から選択し、該当レコードの複製削除時刻115を更新する(ステップ1011)。
なお、図12に示したフローチャートでは、READ回数のみに基づいて、複製作成時刻及び複製削除時刻を定めていたが、WRITE回数に基づいて定めてもよい。例えば、複製先領域を増やすことによって、READ性能を向上させることができるが、更新対象の領域が増加するため、WRITE性能は悪化する。したがって、READ回数及びWRITE回数に基づいて、複製先を作成又は削除することによって、システム全体の性能を向上させることができる場合がある。
以上の処理によって、オブジェクトの複製を作成及び削除する時刻を複製時刻管理テーブル110に登録することができる。以下、複製時刻管理テーブル110に格納された情報に基づいて、オブジェクトの複製を作成及び削除する処理を図16及び図17のフローチャートに従って説明する。
図16は、本発明の第1の実施形態の指定された時刻にオブジェクトの複製を作成する手順を示したフローチャートである。第1の実施形態では、前述のように、図9に示した複製元領域と複製先領域とが1対1に対応する場合としているが、図10に示したように、オブジェクトの格納領域のうちREAD要求が高い領域ほど複製数を増やしてもよい。また、図11に示したように複製元領域を細分化し、それぞれ別の論理ボリュームに複製を作成するとしてもよい。
複製計画部5は、複製作成時刻となったか否かを判定する(ステップ2001)。複製作成時刻でない場合には(ステップ2001の結果が「NO」)、複製作成時刻となるまで待機する
複製計画部5は、複製作成時刻となった場合には(ステップ2001の結果が「YES」)、データ領域管理テーブル90を参照し、複製を作成するオブジェクトが格納された領域を取得する(ステップ2002)。具体的には、データ領域管理テーブル90から複製元領域の論理ボリューム番号93、始点ディスクブロック番号94、及び終点ディスクブロック番号95を取得する。
複製計画部5は、ストレージ装置7の複製作成部8に複製元の論理ボリューム番号、始点ディスクブロック番号、終点ディスクブロック番号を通知し、複製先の論理ボリューム番号の決定を要求する(ステップ2003)。
複製作成部8は、複製計画部5から複製先の論理ボリューム番号の決定の要求通知を受信すると、制御部18からRAIDグループ番号と論理ボリューム番号のリストを取得する(ステップ2004)。
複製作成部8は、ステップ2006からステップ2008までの処理をすべての論理ボリュームに対して実行する(ステップ2005)。
複製作成部8は、論理ボリューム番号が属するRAIDグループがステップ2003の処理で通知された論理ボリューム番号が属するRAIDグループと同じであるか否かを判定する(ステップ2006)。同じである場合には(ステップ2006の結果が「YES」)、別の論理ボリュームに対して処理を実行する。
複製作成部8は、処理対象の論理ボリュームに対してテストデータを書き込み、書き込み時のスループットを計測する(ステップ2007)。
複製作成部8は、複製先候補の論理ボリューム番号を保持するためにステップ2007の処理で測定されたスループット、及び対象の論理ボリューム番号、及びRAIDグループ番号を複製先候補テーブル140に挿入する(ステップ2008)。
このように、複製先の候補となる論理ボリュームのスループットを計測して保持し、測定されたスループットに応じて、処理性能の向上を期待できるオブジェクトの複製の作成先を特定する。
複製作成部8は、ステップ2005のループが終了し、複製先候補テーブル140が作成されると、複製先候補テーブル140のレコードをスループットの値が昇順となるように並び替える(ステップ2009)。
複製作成部8は、複製先候補テーブル140に格納された論理ボリューム番号の論理ボリュームに対し、ステップ2009の処理によってソートされた順にステップ2011の処理を実行する(ステップ2010)。
複製作成部8は、複製先候補の論理ボリュームに複製を作成するために必要な空き容量が確保可能か否かを判定する(ステップ2011)。必要な空き容量が確保可能な場合には(ステップ2011の結果が「YES」)、当該論理ボリュームを複製先とし、ステップ2010のループを抜ける。
複製作成部8は、複製先の特定が完了すると、複製先候補テーブル140のレコードを削除する(ステップ2012)。そして、複製作成部8は、特定された複製先の論理ボリューム番号を複製計画部5に通知する(ステップ2013)。
複製計画部5は、複製作成部8から複製先の論理ボリューム番号の通知を受信すると、
当該論理ボリュームの空き領域から複製先領域の始点ディスクブロック番号、終点ディスクブロック番号を決定する(ステップ2014)。
複製計画部5は、複製作成部8にステップ2014の処理によって決定された複製先領域に、ステップ2002の処理によって取得された複製元領域のデータの複製を指示する(ステップ2015)。
複製作成部8は、複製計画部5からのデータの複製依頼を受信すると、通知された複製先領域に複製元領域のデータをコピーする(ステップ2016)。
複製計画部5は、データの複製が完了すると、複製領域管理テーブル120に複製先論理ボリューム番号、始点ディスクブロック番号、終点ディスクブロック番号、及び管理番号を含むレコードを挿入する(ステップ2017)。このとき、管理番号121は、複製時刻管理テーブル110に登録された管理番号111と同じ番号を使用する。
複製計画部5は、複製元となるオブジェクトについて、アクセス先管理テーブル130の対応するレコードの複製元領域133が設定済みであるか否かを判定する(ステップ2018)。アクセス先管理テーブル130の複製元領域133は、複製先領域に対応するアクセス先リスト135を最初に作成したときに設定される。したがって、複製元領域133の値が設定されている場合には(ステップ2018の結果が「YES」)、1以上の複製が既に作成されていることとなる。
複製計画部5は、複製元領域133が設定されていない場合には(ステップ2018の結果が「NO」)、アクセス先管理テーブル130に複製元領域133を設定する(ステップ2019)。このとき、対応するアクセス先リスト135の管理番号138にはNULLを設定し、次回アクセス先139には、自分自身のアドレスを設定する。さらに、アクセス先管理テーブル130のアクセス先領域134には、複製元領域133と同じアドレスを設定する。
複製計画部5は、複製先の始点ボリューム番号及び複製元の始点ボリューム番号から相対ブロック番号を算出する。(ステップ2020)
複製計画部5は、複製先論理ボリューム番号、ステップ2020の処理で算出された相対ブロック番号、及び複製時刻管理テーブル110と同じ管理番号を追加したレコードをアクセス先リスト135に追加する(ステップ2021)。また、アクセス先領域134には、アクセス先リスト135に追加したレコードのアドレスを設定する。
図17は、本発明の第1の実施形態の指定された時刻にオブジェクトの複製を削除する手順を示したフローチャートである。
複製計画部5は、複製時刻管理テーブル110を参照し、いずれかのオブジェクトの複製削除時刻であるか否かを判定する(ステップ3001)。
複製計画部5は、削除対象となるオブジェクトの複製が存在する場合には(ステップ3001の結果が「YES」)、複製時刻管理テーブル110から削除対象の複製の管理番号111を取得する(ステップ3002)。
複製計画部5は、ステップ3002の処理によって取得された管理番号に基づいて、アクセス先管理テーブル130のアクセス先領域134から、該当するアクセス先リスト135の要素を取得し、参照する(ステップ3003)。
複製計画部5は、アクセス先領域134に設定されている領域が削除対象の複製の領域であるか否かを判定する(ステップ3004)。
複製計画部5は、アクセス先領域134に設定されている領域が削除対象である場合には(ステップ3004の結果が「YES」)、現在指定されているアクセス先領域134の次回アクセス先139をアクセス先領域134に更新する(ステップ3005)。
複製計画部5は、アクセス先リスト135から削除対象の複製のレコードを削除する(ステップ3006)。
複製計画部5は、ストレージ装置7の制御部18に論理ボリューム番号、始点ディスクブロック番号、及び終点ディスクブロック番号を通知し、削除対象の複製先領域のデータ削除を要求する(ステップ3007)。
ストレージ装置7の制御部18は、複製先領域の削除通知を受信すると、削除対象の領域のデータを削除する(ステップ3008)。
複製計画部5は、複製先領域の削除が完了すると、ステップ3002によって取得された管理番号と同じ管理番号のレコードを複製領域管理テーブル120から削除する(ステップ3009)。
図18は、本発明の第1の実施形態の複製元のオブジェクトに対するアクセス要求を受け付けた場合に、アクセス先を切替える処理の手順を示したフローチャートである。
アクセス制御部6は、オブジェクトに対するアクセス要求を受信すると、複製領域管理テーブル120を参照し、アクセス対象のオブジェクトに複製が作成されているか否かを判定する(ステップ4001)。複製が作成されていない場合には(ステップ4001の結果が「NO」)、通常の処理を実行し、処理を終了する(ステップ4015)。
アクセス制御部6は、受け付けたアクセス要求がREAD要求か否かを判定する(ステップ4002)。
アクセス制御部6は、受け付けたアクセス要求がREAD要求の場合には(ステップ4002の結果が「YES」)、アクセス対象のオブジェクトに対応するアクセス先管理テーブル130のレコードを取得し、当該レコードのアクセス先領域134が示すアドレスを参照する(ステップ4003)。取得されるレコードは、オブジェクト名131及び領域番号132に基づいて、特定される。
アクセス制御部6は、ステップ4003の処理によって参照されたアクセス先領域134を更新する(ステップ4004)。具体的には、参照されたアクセス先領域134が示すアクセス先リスト135の要素の次回アクセス先139に格納されたアドレスを、アクセス先管理テーブル130のアクセス先領域134に設定する。こうすることによって、前回アクセスしたボリュームと異なるボリュームに対してデータの読み出しが実行される。
アクセス制御部6は、ステップ4004の処理によって変更されたアクセス先領域134に基づいて、アクセス先論理ボリューム番号136、アクセス先相対ブロック番号137を取得する(ステップ4005)。さらに、アクセス制御部6は、READ要求の対象となる複製元のブロック番号に相対ブロック番号を加算することによって、アクセス先のブロック番号に変換する(ステップ4006)。そして、アクセス制御部6は、ステップ4005及びステップ4006の処理によって決定されたアクセス先に対し、読み出し処理を実行する(ステップ4007)。
一方、アクセス制御部6は、受信したアクセス要求がREAD要求でなかった場合には(ステップ4002の結果が「NO」)、受信したアクセス要求がWRITE要求か否かを判定する(ステップ4008)。受信したアクセス要求がWRITE要求でなかった場合には、処理を終了する。
アクセス制御部6は、アクセス先管理テーブル130から複製元領域133のアドレスを取得する(ステップ4009)。そして、複製元に対して書き込み処理を実行する(ステップ4010)。
アクセス制御部6は、ステップ4009の処理によって取得された複製元領域83からアクセス先リスト135を参照し、すべての複製先に対して、ステップ4012からステップ4014の処理を実行する(ステップ4011)。
アクセス制御部6は、ステップ4009の処理によって取得されたアクセス先リスト135の要素から次回アドレス先のアドレスを参照し、複製先のアクセス先論理ボリューム番号136、アクセス先相対ブロック番号137を取得する(ステップ4012)。
アクセス制御部6は、WRITE要求が複製元のブロック番号にステップ4012の処理によって取得された相対ブロック番号を加算し、アクセス先のブロック番号に変換する(ステップ4013)。
アクセス制御部6は、ステップ4012及びステップ4013の処理によって決定されたアクセス先に対して書き込み処理を実行する(ステップ4014)。
第1の実施形態によれば、アクセス頻度に応じてオブジェクトの複製を自動的に作成する。そして、アクセス頻度の高いオブジェクトに対してREAD要求が多数発生したとき、オブジェクトの複製が複製元のオブジェクトが格納されたボリュームと異なるボリュームに作成されているため、アクセスを分散させることができる。したがって、記憶装置に対するアクセス性能を向上させることができる。
第1の実施形態によれば、アクセス頻度が少ない時間帯には、複製されたオブジェクトを削除するため、複製の作成による記憶容量の増加を抑えることができる。
第1の実施形態によれば、複製対象の領域をデータ管理プログラムが扱うオブジェクト単位とすることによって、複製に必要な記憶容量を抑えることができる。また、複製元の対象をオブジェクト単位に限定することによって、複製の作成に必要な時間を軽減することができる。さらに、処理を自動化することによって、システム管理者の負荷を軽減できる。
(第2の実施形態)
第1の実施形態では、複製の作成時刻及び削除時刻をREAD回数に基づいて定めていたが、第2の実施形態では、複製の作成はREAD回数に、複製の削除はWRITE回数に基づいて定められることを特徴とする。以下、第2の実施形態の処理の概要及び詳細を、図を用いて説明する。
なお、第2の実施形態のシステム構成は、図1に示した第1の実施形態と同じ構成である。また、図2から図7に示した情報についても、第1の実施形態と共通する。その他、第1の実施形態と共通する事項については説明を省略する。
図19は、本発明の第2の実施形態の複製作成時刻を算出し、複製時刻管理テーブル110に登録する処理手順を示すフローチャートである。
複製計画部5は、アクセス統計テーブル100を参照し、オブジェクトごとにREAD回数の時間的推移を表すグラフを作成する(ステップ5001)。複製計画部5は、グラフ190からREAD回数が最小となる時刻を探索し、当該時刻を解析対象の始点時刻として、以降1日分のREAD回数の推移を示すグラフを作成する(ステップ5002)。作成されたグラフの一例を図20に示す。
図20は、本発明の第2の実施形態のオブジェクトに対して受け付けたREAD要求の回数の時間ごとの推移を示すグラフの一例である。また、第2の実施形態では、前半にREAD要求が集中している。
グラフ190は、横軸に時刻、左側の縦軸に複製を作成する閾値であって、作成される複製の基準個数、右側の縦軸にREAD回数を示している。なお、閾値は後述するステップ5003の処理で設定される。
時刻t1からt3は、READ回数が閾値と一致する時刻であって、時刻t1sからt3sは、複製の作成を開始する時刻であり、複製作成時刻となる。
複製計画部5は、複製を作成するか否かを決定するための基準READ回数を設定する(ステップ5003)。基準READ回数は、記憶装置の処理性能及び複製されるオブジェクトのサイズなどに基づいて、決定される。
複製計画部5は、ステップ5003の処理によって設定された複製作成の基準READ回数と解析時刻におけるREAD回数とを比較し、解析時刻時点のREAD回数が複製作成の基準READ回数を超えているか否かを判定する(ステップ5004)。
複製計画部5は、解析時刻のREAD回数が複製作成の基準READ回数を超えている場合には(ステップ5004の結果が「YES」)、複製作成時刻を決定する(ステップ5005A)。複製作成時刻は、第1の実施形態の図12のステップ1007及びステップ1008と同様に、複製元領域のサイズをデータ領域管理テーブル90から算出し、前記算出したサイズから複製作成に要する時間を予測し、解析時刻から複製作成予想時間を減算することによって決定される。
複製計画部5は、さらに、管理番号111、複製対象となるオブジェクト名112、領域番号113、及び複製作成時刻114を複製時刻管理テーブル110に登録する(ステップ5005B)。複製時刻管理テーブル110に登録される複製作成時刻114は、前述のように、図20の時刻t1s、t2s及びt3sが該当する。
複製計画部5は、現在の複製作成基準READ回数を複製数に1を加算した複製数に対応する基準READ回数に再設定する(ステップ5006)。例えば、現在の複製作成基準READ回数が、複製個数が1個の場合に対応する基準READ回数であれば、複製個数が2個に対応する基準READ回数に再設定する。
複製計画部5は、現在の解析時刻が解析対象の終点時刻であるか否かを判定する(ステップ5007)。解析対象の終点であれば(ステップ5007の結果が「YES」)、複製作成時刻の登録処理を終了する。また、解析対象の終点でなければ(ステップ5007の結果が「NO」)、現在の解析時刻を次の解析時刻に変更し、ステップ5004の処理に戻る。
以上が第2の実施形態の複製作成時刻を登録する処理である。複製作成時刻を登録する処理が終了すると、続いて、複製削除時刻を登録する処理を実行する。
図21は、本発明の第2の実施形態の複製削除時刻を算出し、複製時刻管理テーブル110に登録する処理手順を示すフローチャートである。
複製計画部5は、アクセス統計テーブル100を参照し、オブジェクトごとに各時刻あたりのWRITE回数を表すグラフを作成する(ステップ6001)。複製計画部5は、図19のステップ5003の処理によって算出された最小READ回数時の時刻を統計解析の開始時刻として設定する(ステップ6002)。作成されたグラフの一例を図22に示す。
図22は、本発明の第2の実施形態のオブジェクトに対して受け付けたWRITE要求の回数の時間ごとの推移を示すグラフの一例である。また、第2の実施形態では、後半にWRITE要求が集中している。
グラフ200は、横軸に時刻、左側の縦軸に複製を削除する閾値であって、作成されている複製の基準個数、右側の縦軸にWRITE回数を示している。なお、閾値は後述するステップ6003の処理で設定される。時刻t1からt4は、WRITE回数が閾値と一致する時刻であって、複製削除時刻となる。
複製計画部5は、複製時刻管理テーブル110を参照し、対象のオブジェクトの複製時刻を検索することによって、オブジェクトの複製最大数を算出する(ステップ6003)。
複製計画部5は、ステップ6003の処理によって算出された複製最大数に基づいて、複製数に対応する基準WRITE回数を設定する(ステップ6004)。例えば、ステップ6003によって算出された複製最大数が3個の場合、複製数3に対応する基準WRITE回数を設定する。
複製計画部5は、ステップ6004の処理によって設定された複製作成の基準WRITE回数と解析時刻におけるWRITE回数とを比較し、解析時刻時点のWRITE回数が複製作成の基準WRITE回数を超えているか否かを判定する(ステップ6005)。
複製計画部5は、解析時刻のWRITE回数が複製削除の基準WRITE回数を超えている場合には(ステップ6005の結果が「YES」)、複製時刻管理テーブル110の対応するレコードの複製削除時刻115の値を更新する(ステップ6006)。具体的には、現在の複製削除基準WRITE回数に対応する複製個数に対応する複製を作成する時刻に対応するレコードを複製時刻管理テーブル110から選択する。そして、該当するレコードの複製削除時刻115に現在の解析時刻を複製削除時刻として登録する。例えば、現在の複製削除基準のWRITE回数が複製数3に対応するものであれば、3個目の複製を作成した時刻を登録したレコードを複製時刻管理テーブル110から選択し、該当レコードの複製削除時刻115を更新する。
複製計画部5は、現在の複製削除基準WRITE回数を複製数に1を減じた複製数に対応する基準WRITE回数に再設定する(ステップ6007)。例えば、複製削除基準WRITE回数が、複製個数が3個に対応する基準WRITE回数であれば、複製個数が2個に対応する基準WRITE回数に再設定する。
複製計画部5は、現在の解析時刻が解析対象の終点時刻であるか否かを判定する(ステップ6008)。解析対象の終点であれば(ステップ6008の結果が「YES」)、複製削除の登録処理を終了する。また、解析対象の終点でなければ(ステップ6008の結果が「NO」)、現在の解析時刻を次の解析時刻に変更し、ステップ6004の処理に戻る。
第2の実施形態では、以上の処理を実行することによって、複製作成時刻及び複製削除時刻を複製時刻管理テーブル110に登録する。そして、第1の実施形態と同様に、オブジェクトの複製を自動的に作成及び削除し、オブジェクトに対するREAD要求が多数発生した場合に、オブジェクトのデータを格納する記憶装置に対するアクセスを複数の記憶装置に分散させることができる。
第2の実施形態によれば、WRITE回数に基づいて、オブジェクトの複製を削除するため、読み出し処理による負荷と書き込み処理による負荷バランスをとることができる。例えば、図20及び図22に示したグラフのように、READ要求が多い時間帯とWRITE要求が多い時間帯とが異なる場合に、第2の実施形態は好適である。具体的には、昼間は参照系の処理によるREAD要求が多く、夜間にはバッチ処理などによって更新系の処理によるWRITE要求が多くなる場合には、昼間にオブジェクトの複製を多く作成し、夜間にオブジェクトの複製が少なくなるようにオブジェクトの複製を作成及び削除することができる。
なお、READ回数及びWRITE回数がともに閾値を超える場合には、READ性能を重視するかWRITE性能を重視するかによって、複製先領域を作成又は削除するかを決定すればよい。
(第3の実施形態)
第1の実施形態及び第2の実施形態では、オブジェクトの複製を削除するとき、作成された複製先を削除していたが、第3の実施形態では、オブジェクトの複製元を削除し、複製先を複製元として再設定することを特徴とする。以下、第3の実施形態の処理の概要及び詳細を、図を用いて説明する。
なお、第3の実施形態のシステム構成は、図1に示した第1の実施形態と同じ構成である。また、図2から図7に示した情報についても、第1の実施形態と共通する。その他、第1の実施形態と共通する事項については説明を省略する。
図23は、本発明の第3の実施形態の複製先領域を複製元領域とするアクセス制御方法の概要を説明する図である。
Table1(230)は、初期状態として、論理ボリューム232Aに格納されている。複製作成部8によって、Table1(230)の複製を作成されたとき、論理ボリューム232Aと別の論理ボリューム232BにTable1(230)の複製を領域234に作成する。ここまでは、第1の実施形態と同じである。
第1の実施形態では、複製削除時刻に複製先の領域234を削除して処理を継続するが、第3の実施形態では、複製元の領域233を削除し、複製先の領域234をTable1(230)のデータ格納領域の複製元として処理を継続する。
図24は、本発明の第3の実施形態の複製が作成されたオブジェクトを削除する手順を示すフローチャートである。
複製計画部5は、複製時刻管理テーブル110を参照し、いずれかのオブジェクトの複製削除時刻であるか否かを判定する(ステップ7001)。
複製計画部5は、削除対象となるオブジェクトの複製が存在する場合には(ステップ7001の結果が「YES」)、ステップ7001の処理によって削除対象と判定されたオブジェクトの複製の管理番号を複製時刻管理テーブル110から取得する。そして、複製領域管理テーブル120から当該複製の管理番号に対応するレコードを選択し、削除対象のオブジェクトの複製先領域の論理ボリューム番号124、始点ディスクブロック番号125及び終点ディスクブロック番号126を取得する(ステップ7002)。
複製計画部5は、複製先領域を複製元領域に再設定するために、データ領域管理テーブル90の対象オブジェクトの領域をステップ7002の処理によって取得された複製先領域の情報に更新する(ステップ7003)。
複製計画部5は、アクセス先管理テーブル130を参照し(ステップ7004)、削除対象と判定された複製の管理番号に対応するレコードのアドレスをアクセス先管理テーブル130の複製元領域133に設定する(ステップ7005)。このとき、新たに複製元領域として設定されたアクセス先リスト135の要素の管理番号は、NULLに設定される。
複製計画部5は、アクセス先管理テーブル130のアクセス先領域134が削除対象の複製元領域を指しているか否かを判定する(ステップ7006)。
複製計画部5は、アクセス先領域134が削除対象の複製元領域を指している場合には(ステップ7006の結果が「YES」)、アクセス先領域134に当該削除対象の複製元領域の次回アクセス先を設定する(ステップ7007)。複製元の領域を指していない場合には(ステップ7006の結果が「No」)、ステップ7008の処理を実行する。
複製計画部5は、アクセス先リスト135から複製元の領域を示すレコードを削除する(ステップ7008)。そして、複製計画部5は、ストレージ装置7の制御部18に論理ボリューム番号、始点ディスクブロック番号、終点ディスクブロック番号を通知し、削除対象の複製元領域の削除を要求する(ステップ7009)。
ストレージ装置7の制御部18は、複製計画部5から通知を受けた領域のデータを削除する(ステップ7010)。
複製計画部5は、最後に、複製領域管理テーブル120からステップ7001の処理によって取得された管理番号に対応するレコードを削除する(ステップ7011)。
第3の実施形態によれば、複製元の領域を複製先の領域に移動させることによって、アクセスが集中する領域を分散させることができる。そして、複製先は、複製時点でスループットが高い領域に作成されるため、複製元の領域の移動を繰り返すことによって、各ボリュームの負荷を均等化させることができる。したがって、複製の作成及び削除の回数を少なくすることができ、記憶装置に対する負荷を低減することができる。