(57)【特許請求の範囲】
【請求項１】
制御部と、データを格納する記憶装置とを備えたストレージ装置において、
前記ストレージ装置は、さらに、当該ストレージ装置が管理する時間を表す値を含む時間の情報を管理する時間情報部を備え、
前記制御部は、
ネットワークを介して接続された他のストレージ装置から、前記他のストレージ装置の前記時間の情報として第１の時間の情報を取得し、
前記時間情報部から当該ストレージ装置の前記時間の情報として第２の時間の情報を取得し、
前記第１及び第２の時間の情報の差分値を算出し、
前記算出された差分値が予め定めた閾値よりも小さい場合に、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させることを特徴とするストレージ装置。
【請求項２】
前記制御部は、指定された期間内は前記記憶装置に格納される少なくとも一つのデータに対する更新及び削除操作を禁止することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記記憶装置に格納されているデータ毎に、前記閾値が設定されていることを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記記憶装置に格納されるデータ毎に設定された、当該データの移動の可否の情報、前記第１の時間の情報の補正方法の情報、及び、当該データの移動の処理の失敗の許容回数の情報、のうち少なくとも一つを格納する記憶部を備え、
前記制御部は、前記記憶部に格納された情報に基づいて、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させるか否かを決定することを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記制御部は、
前記算出された差分値が前記閾値よりも大きい場合、前記第１の時間の情報を、前記第２の時間の情報と略同一となるように補正し、
前記第１の時間の情報が補正された第３の時間の情報を前記他のストレージ装置から取得し、
前記第３及び前記第２の時間の情報の差分値を算出し、
前記算出された差分値が前記閾値よりも小さい場合に、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させることを特徴とする請求項１に記載のストレージ装置。
【請求項６】
前記時間情報部は、前記記憶装置に格納されるデータ毎に設定され、前記更新及び削除操作を禁止する前記指定された期間を表す値を含むデータの時間の情報を管理し、
前記制御部は、前記時間情報部から前記記憶装置に格納されるデータに対応する前記データの時間の情報を前記第２の時間の情報として取得することを特徴とする請求項２に記載のストレージ装置。
【請求項７】
前記閾値は、前記記憶装置に格納されるデータ毎に設定され、
前記制御部は、前記記憶装置に格納されたデータを他のストレージ装置に移動させるときに、前記他のストレージ装置から前記第１の時間の情報を取得し、
前記時間情報部から当該データに対応する前記第２の時間の情報を取得し、
前記第１及び第２の時間の情報の差分値を算出し、
前記算出された差分値が当該データに対応する前記閾値よりも大きい場合、前記第１の時間の情報を、前記第２の時間の情報と略同一となるように補正し、
前記第１の時間の情報が補正された第３の時間の情報を前記他のストレージ装置から取得し、
前記第３及び第２の時間の情報の差分値を算出し、
前記算出された差分値が当該データに対応する前記閾値よりも小さい場合に、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させることを特徴とする請求項６に記載のストレージ装置。
【請求項８】
前記制御部は、
前記第１の時間の情報を、前記第２の時間の情報と略同一となるように補正する場合に、前記算出された差分値を用いることを特徴とする請求項７に記載のストレージ装置。
【請求項９】
前記時間情報部は、前記他のストレージ装置によって前記第２の時間の情報が補正された場合、当該補正に関する情報を累積して格納することを特徴とする請求項８に記載のストレージ装置。
【請求項１０】
制御部と、データを格納する記憶装置とを備えたストレージ装置におけるデータの移動方法であって、
前記ストレージ装置は、さらに、当該ストレージ装置が管理する時間を表す値を含む時間の情報を管理する時間情報部を備え、
前記方法は、
ネットワークを介して接続された他のストレージ装置から、前記他のストレージ装置の前記時間の情報として第１の時間の情報を取得し、
前記時間情報部から当該ストレージ装置の前記時間の情報として第２の時間の情報を取得し、
前記第１及び第２の時間の情報の差分値を算出し、
前記算出された差分値が予め定めた閾値よりも小さい場合に、前記記憶装置に格納された前記データを前記他のストレージ装置に移動させることを特徴とするデータの移動方法。
【請求項１１】
指定された期間内は前記記憶装置に格納される少なくとも一つのデータに対する更新及び削除操作を禁止することを特徴とする請求項１０に記載のデータの移動方法。
【請求項１２】
前記記憶装置に格納されているデータ毎に、前記閾値が設定されていることを特徴とする請求項１０に記載のデータの移動方法。
【請求項１３】
前記ストレージ装置は、前記記憶装置に格納されるデータ毎に設定された、当該データの移動の可否の情報、前記第１の時間の情報の補正方法の情報、及び、当該データの移動の処理の失敗の許容回数の情報、のうち少なくとも一つを格納する記憶部を備え、
前記方法は、
前記記憶部に格納された情報に基づいて、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させるか否かを決定することを特徴とする請求項１０に記載のデータ移動方法。
【請求項１４】
前記算出された差分値が前記閾値よりも大きい場合、前記第１の時間の情報を、前記第２の時間の情報と略同一となるように補正し、
前記第１の時間の情報が補正された第３の時間の情報を前記他のストレージから取得し、
前記第３及び第２の時間の情報の差分値を算出し、
前記算出された差分値が前記閾値よりも小さい場合に、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させることを特徴とする請求項１０に記載のデータ移動方法。
【請求項１５】
前記時間情報部は、前記記憶装置に格納されるデータ毎に設定され、前記更新及び削除操作を禁止する前記指定された期間を表す値を含むデータの時間の情報を管理し、
前記方法は、
前記時間情報部から前記記憶装置に格納されるデータに対応する前記データの時間の情報を前記第２の時間の情報として取得することを特徴とする請求項１１に記載のデータ移動方法。
【請求項１６】
前記閾値は、前記記憶装置に格納されるデータ毎に設定され、
前記方法は、
前記記憶装置に格納されたデータを他のストレージ装置に移動させるときに、前記他のストレージ装置から前記第１の時間の情報を取得し、
前記時間情報部から当該データに対応する前記第２の時間の情報を取得し、
前記第１及び第２の時間の情報の差分値を算出し、
前記算出された差分値が当該データに対応する前記閾値よりも大きい場合、前記第１の時間の情報を、前記第２の時間の情報と略同一となるように補正し、
前記第１の時間の情報が補正された第３の時間の情報を前記他のストレージ装置から取得し、
前記第３及び第２の時間の情報の差分値を算出し、
前記算出された差分値が当該データに対応する前記閾値よりも小さい場合に、前記記憶装置に格納されたデータを前記他のストレージ装置に移動させることを特徴とする請求項１５に記載のデータ移動方法。
【請求項１７】
前記第１の時間の情報を、前記第２の時間の情報と略同一となるように補正する場合に、前記算出された差分値を用いることを特徴とする請求項１６に記載のデータ移動方法。
【請求項１８】
前記他のストレージ装置によって前記第２の時間の情報が補正された場合、当該補正に関する情報を累積して格納することを特徴とする請求項１７に記載のデータ移動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに格納された情報資源のマイグレーション制御に関するものである。
【背景技術】
【０００２】
従来から、コンピュータシステムにおいて、当該システムを運用する筐体上に保管されている情報資源を、その情報資源の運用途中において、別筐体に情報資源を移行して、移行先においてその情報資源を用いて運用を継続するための方法が提供されている。これをマイグレーションと呼ぶ。このマイグレーションのための方法は、コンピュータシステムの更新に伴う機器の入れ替えの際に必須となる。情報資源を別筐体にマイグレーションさせる際は、当該情報資源の運用時における処理の整合性を、マイグレーション先においても保証する必要がある。そのために、マイグレーション元とマイグレーション先における時計情報の整合性を保証する必要がある。
【０００３】
時計情報の整合性を保証する仕組みとして、例えば、コンピュータシステムにおいて、当該システムが時計情報取得に利用するシステム時計に対する不正な改ざん処理を検出することで、時計情報の整合性を損なう処理を抑止する技術が開示されている（特許文献１参照。）。一方、時間情報の整合性が重要なデータとして、ＷＯＲＭ（Write Once Read Many）形式のデータがある。ＷＯＲＭ形式のデータは、一般に長期の保管期間が前提となっている。この長期の保管期間を保証するために、ＷＯＲＭ形式のデータを含む情報資源を別筐体にマイグレーションすることが必須となる。
【特許文献１】米国特許出願公開第２００４/０１２８５４９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＷＯＲＭ形式のデータをコンピュータシステム間でマイグレーションするためには、コンピュータシステム間での時間情報の整合性を保証しなければならない。しかし、特許文献１記載の技術では、コンピュータシステムにおける情報資源を別筐体にマイグレーションする時点において、マイグレーション先における時計情報がマイグレーション元の時計情報との整合性を保証するという内容は記載されていない。
【０００５】
長期の保管期間の保証には、別筐体に情報資源をマイグレーションすることが必須である。すなわち、マイグレーション先のコンピュータシステムでもＷＯＲＭ資源の保管期間を継続して保証できるようにしなければならない。したがって、ＷＯＲＭ資源の長期保管を保証するためには、当該ＷＯＲＭ資源をマイグレーションするときにおいて、マイグレーション元とマイグレーション先との時計情報の整合性を保証する技術が必須となる。
【０００６】
そこで、本発明では、コンピュータシステム間でのマイグレーションを行う際に、マイグレーション元とマイグレーション先とでさまざまな属性情報の整合性を保証できるマイグレーション方式を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記の課題を解決するために、本発明では、ストレージ装置間で情報資源を移動させる際に、移動先となる他のストレージ装置の時間の情報を補正して、情報資源を移動させることを特徴とする。
【発明の効果】
【０００８】
本発明によると、ＷＯＲＭ資源をストレージ装置間でマイグレーションする際に、移動先となるストレージ装置の時計の情報を補正することによって、情報資源の属性の整合性を保証できる。これにより、当該情報資源のマイグレーションにより生じた時間のずれに起因する不正な改ざんや不必要な削除が防止できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１０】
図１は、本発明の実施の形態の計算機システムの構成ブロック図である。
【００１１】
本実施の形態の計算機システムでは、ＷＯＲＭ等の情報資源を保管し、保管された情報資源をストレージノード間でマイグレーションすることができる。マイグレーションとは、別筐体に情報資源を移行して、移行先においてその情報資源を用いて運用を継続することである。この計算機システムは、ストレージノード１、２、３及び管理サーバ１１によって構成される。各ストレージノード１、２、３と管理サーバ１１とは、ネットワーク１０を介して接続されている。なお、ストレージノード１、２、３の間のみを接続する個別ネットワークを別途設ける構成でもよい。
【００１２】
ストレージノード１、２、３は、データ等の情報資源を格納する。ストレージノードとは、ストレージを備え、そのストレージに格納されているデータ等の情報資源を運用するための計算機、コンピュータまたはサーバであって、ネットワーク上で少なくとも一の識別子によって特定できる装置である。
【００１３】
このストレージノード１、２、３は、格納する情報資源を管理するために、それぞれの情報資源に対応した制御を行う。また、ストレージノード１、２、３は、それぞれが格納している情報資源を、計算機システム内の別のストレージノード１、２、３にマイグレーションをすることが可能である。また、ストレージノード１、２、３は、データのＷＯＲＭに関する設定をする。この制御によって保護されている情報資源（以降、ＷＯＲＭ資源と呼ぶ）を提供可能である。そして、ストレージノード１、２、３は、当該ＷＯＲＭ資源も、計算機システム内の別のストレージノード１、２、３にマイグレーション可能である。
【００１４】
管理サーバ１１は、計算機システムのストレージノード１、２、３を管理するサーバである。特に、管理サーバ１１は、情報資源をマイグレーションする場合に、マイグレーションポリシーの設定要求や各マイグレーション対象情報資源に対するマイグレーション許容範囲値の設定要求を発行する。なお、管理サーバ１１は、ストレージノード１、２、３と同一の筐体で実現される構成でもよい。
【００１５】
図２は、ストレージノード１、２、３のハードウェアの構成ブロック図である。
【００１６】
ここでは、ストレージノード１を例に説明するが、他のストレージノード２、３も同様の構成である。
【００１７】
ストレージノード１は、プログラムを実行するプロセッサ２０と、プログラム及びデータを一時的に格納するメモリ３０と、プログラム及びデータを永続的に格納可能な記憶装置４０と、記憶装置にアクセスするための記憶装置Ｉ／Ｆ５０と、ネットワーク１０を介して接続された他装置にアクセスするためのネットワークＩ／Ｆ６０と、時計情報を提供するクロック供給源７０と、それらを接続するバス１３４を含んで構成される。
【００１８】
プロセッサ２０は、メモリ３０に格納されているプログラムを読み出して、そのプログラムに規定された処理を実行する。
【００１９】
メモリ３０は、記憶装置Ｉ／Ｆを制御するプログラムである記憶装置Ｉ／Ｆ制御８０と、ネットワークＩ／Ｆを制御するプログラムであるネットワークＩ／Ｆ制御９０と、時計情報を制御するプログラムである時計制御１００と、ＷＯＲＭ資源の保管期間満了を確認するために利用する時計情報を制御するプログラムであるＷＯＲＭ時計制御１１０と、情報資源のマイグレーションを制御するプログラムである資源マイグレーション制御１２０と、当該ストレージノードにて格納される各情報資源を制御するプログラムである資源制御１３０を格納する。
【００２０】
時計制御１００は、時計値管理１０１と、時計値制御１０２との二つのプログラムを含む。
【００２１】
資源マイグレーション制御１２０は、マイグレーション実行制御１２１と、時計情報制御１２２と、マイグレーション管理１２３と、時計差分情報管理１２４との四つのプログラムを含む。
【００２２】
資源制御１３０は、ＷＯＲＭ制御１３１と、マイグレーション許容範囲制御１３２と、マイグレーション制御１３３との三つのプログラムを含む。なお、資源制御１３０は、複数備えられていてもよい。
【００２３】
ネットワークＩ／Ｆ６０は、他のストレージノード及び管理サーバ１１とを接続するネットワーク１０に接続されている。ストレージノード１は、このネットワークＩ／Ｆ６０を制御するプログラムであるネットワークＩ／Ｆ制御９０によって、他のストレージノード２、３又は管理サーバ１１と通信する。なお、ストレージノード１は、計算機システムがストレージノード１、２、３のみを接続する個別ネットワークを備える場合には、当該個別ネットワークに接続される個別ネットワークＩ／Ｆを具備してもよい。
【００２４】
クロック供給源７０は、ストレージノード１の時計制御１００に対して、時計情報を提供する。時計情報とは、時間を認識できる情報であり、その内容は問わない。例えば、時計の刻みの基準となる情報を提供してもよいし、世界標準時に準じた日時に関する情報を提供してもよい。なお、クロック供給源７０は、時計情報を提供できるものであれば、その実現手段は問わない。例えば、時計の刻みを提供する水晶振動子やクロック発信機でもよいし、世界標準時に関する情報を外部から受信する通信機でもよい。
【００２５】
時計制御１００は、時計情報を格納するプログラムである時計値管理１０１と、当該時計情報を操作するプログラムである時計値制御１０２を含む。
【００２６】
時計値制御１０２は、クロック供給源７０より時計情報を取得して、時計値管理１０１にその情報を設定する。
【００２７】
時計値管理１０１は、この情報によって設定された時計情報を管理する。
【００２８】
時計値制御１０２は、時計値管理１０１によって管理されている時計情報を定期的に更新する。また、時計情報を取得する。また、時計情報を指定された時計情報に変更する。
【００２９】
時計値制御１０２は、クロック供給源７０によって一定間隔に時計情報を取得し、時計情報取得を契機に、時計値管理１０１によって管理されている時計情報を更新することによって、時計情報を定期的に更新する。
【００３０】
ＷＯＲＭ時計制御１１０は、ＷＯＲＭ時計情報を提供する。ＷＯＲＭ時計情報とは、ＷＯＲＭ資源の保管期間が満了したか否かを確認するために利用される時計情報である。
【００３１】
ＷＯＲＭ時計制御１１０は、対象ＷＯＲＭ資源を指定することによって、当該ＷＯＲＭ資源に対応したＷＯＲＭ時計情報を提供する。具体的には、ＷＯＲＭ時計制御１１０は、時計制御１００の時計値制御１０２によって時計情報を取得し、時計差分情報管理１２４によって、ＷＯＲＭ資源に対応した時計差分情報を取得し、当該時計情報と当該時計差分情報とを用いて算出した値をＷＯＲＭ時計情報として提供する。
【００３２】
資源マイグレーション制御１２０は、ストレージノード１における情報資源のマイグレーション処理を制御するプログラムを含む。
【００３３】
マイグレーション実行制御１２１は、指定された情報資源について、指定されたストレージノード１、２、３へのマイグレーション処理の可否判断をする。そして、指定された情報資源の資源制御１３０に対して、当該情報資源のマイグレーション処理を依頼する。
【００３４】
時計情報制御１２２は、他ストレージノードの時計情報を取得し、当該時計情報を設定する。
【００３５】
マイグレーション管理１２３は、情報資源のマイグレーション処理時に利用される情報を管理する。
【００３６】
時計差分情報管理１２４は、情報資源のマイグレーション時に、マイグレーション元とマイグレーション先のストレージノードの時計情報がずれていた場合において、時計情報の補正情報を管理する。
【００３７】
マイグレーション実行制御１２１は、情報資源のマイグレーション処理に先立ち、当該情報資源のマイグレーション処理の可否を判断する。このとき、マイグレーション実行制御１２１は、マイグレーション管理１２３に登録されているマイグレーション管理表２００の情報及び当該情報資源が持つマイグレーション許容範囲に基づいて可否を判断する。なお詳細な処理手順については後述する。
【００３８】
時計情報制御１２２は、情報資源のマイグレーション処理に先立ち、当該情報資源のマイグレーション処理の可否を判断するために、マイグレーション先ストレージノードにおける時計情報を取得する。また、時計情報制御１２２は、マイグレーション処理の可否を判断する際に、マイグレーション先ストレージノードの時計情報の補正が必要である場合に、マイグレーション先ストレージノードの時計情報を更新又は補正する。時計情報の補正は、マイグレーション先ストレージノード上にある時計情報制御１２２を介して、マイグレーション先ストレージノード上の時計値制御１０２又は時計差分情報管理１２４に対して処理を依頼することによって実現する。
【００３９】
資源制御１３０は、ストレージノード１が格納する情報資源を制御する。具体的には、ボリュームを管理するためのボリューム制御や、ファイルシステムやファイルを管理するためのファイルシステム制御などが含まれ、それぞれの制御に対応するプログラムが独立に存在する。資源制御１３０は、情報資源に対するＷＯＲＭに関する設定をするＷＯＲＭ制御１３１と、情報資源をマイグレーションするとき時計のずれの許容範囲であるマイグレーション許容範囲を管理するマイグレーション許容範囲制御１３２と、実際に当該情報資源をマイグレーションする処理を提供するマイグレーション制御１３３とを含む。
【００４０】
ＷＯＲＭ制御１３１は、格納されている情報資源に保管期間を設定し、情報資源をＷＯＲＭ資源の状態に設定する。資源制御１３０は、ＷＯＲＭ制御１３１によってＷＯＲＭ状態に設定されたＷＯＲＭ資源を、指定した保管期間が満了するまでの間、当該ＷＯＲＭ資源に対する改ざんや削除、ならびにＷＯＲＭ状態の解除を防止する。
【００４１】
記憶装置４０は、マイグレーション管理１２３及び時計差分情報管理１２４によって管理される情報を保存する。また、記憶装置４０は、資源制御１３０によって管理される情報資源の実体の情報も保存する。
【００４２】
この記憶装置４０は、一つ以上のディスク装置によって構成されている。この一つ以上のディスク装置からＲＡＩＤ構成によって記憶領域である論理ボリュームが構成される。この論理ボリュームに情報及び情報資源の実体の情報が格納される。
【００４３】
図３は、マイグレーション管理１２３によって管理されるマイグレーション管理表２００の構成を例示する説明図である。
【００４４】
マイグレーション管理表２００は、エントリ２１０と、エントリ２２０と、エントリ２３０とを含む。
【００４５】
エントリ２１０の対象資源識別子は、当該エントリに対応する情報資源の識別情報であり、マイグレーションポリシーを適用する情報資源の識別情報が示される。このエントリ２１０には、複数の異なる種類の情報資源が登録できる。
【００４６】
エントリ２２０のマイグレーションポリシーは、対象資源識別子に設定されたマイグレーションポリシーである。マイグレーションポリシーとは、対象の情報資源がマイグレーション可能であるか否か、補正対象が時刻であるか時刻差分情報であるか、又は、マイグレーション試行回数の上限の値は何であるかをストレージノード１の資源マイグレーション制御１２０に知らせるための情報である。
【００４７】
このエントリ２２０には、さらにエントリ２２１とエントリ２２２とエントリ２２３とが含まれる。エントリ２２１のマイグレーション可否には、当該資源をマイグレーションしてもよいか否かの情報が登録される。資源マイグレーション制御１２０は、マイグレーション管理表２００を参照して、マイグレーション否と登録されている情報資源をマイグレーションさせないように制御する。
【００４８】
エントリ２２２の補正対象には、当該情報資源のマイグレーション処理時に、マイグレーション先ストレージノードの時計情報の補正が必要になった場合において、補正対象となる情報が登録される。この補正対象となる情報には、時計又は時計差分情報が登録される。
【００４９】
このエントリ２２２の補正対象に「時計」と登録されている場合は、マイグレーション先ストレージノードの時計値管理１０１の情報を補正する。「時計差分情報」と登録されている場合は、マイグレーション先ストレージノードの時計差分情報管理１２４に、マイグレーション元のストレージノードとの時計情報の差分を補正情報として登録する。時計差分情報管理１２４に補正情報が登録されている場合は、当該ストレージノードは、時計制御１００が提供する情報と、時計差分情報管理１２４が提供する差分情報を基に、ＷＯＲＭ時計制御１１０によって補正された時計情報を用いる。
【００５０】
エントリ２２３のマイグレーション試行回数上限には、当該情報資源のマイグレーション処理を試行する回数の上限値が登録される。マイグレーション処理では、マイグレーションされるストレージノード間の時計情報のずれが当該情報資源のマイグレーション許容範囲の条件に適合しなかった場合は、まず時計情報を補正し、さらに処理を再試行する。このため、エントリ２２３のマイグレーション試行回数上限は、マイグレーション再試行も含めた試行回数の上限値を定めるために利用される。
【００５１】
エントリ２３０のマイグレーション試行カウンタは、当該情報資源のマイグレーション処理の際に、マイグレーション処理の試行回数が記録される。マイグレーション実行制御１２１は、情報資源のマイグレーション処理の試行又は再試行の際に、当該情報資源に対応するマイグレーション試行回数を加算する。エントリ２３０のマイグレーション試行カウンタが、当該情報資源のエントリに対応するマイグレーション試行回数上限以上になった場合は、当該情報資源のマイグレーション処理をエラーとして終了させる。当該情報資源のマイグレーション処理が終了又はエラー終了したときは、当該情報資源に対応するマイグレーション試行カウンタの値を０に設定する。
【００５２】
図４は、時計差分情報管理１２４が管理する時計差分情報管理表３００の構成を例示する説明図である。
【００５３】
時計差分情報管理表３００は、エントリ３１０と、エントリ３２０とを含む。
【００５４】
エントリ３１０の対象資源識別子は、マイグレーションポリシーを適用する資源情報の識別子である。このエントリ３１０の対象資源識別子には、複数の異なる種類の情報資源が登録できる。
【００５５】
エントリ３２０の差分情報には、当該情報資源のマイグレーション時におけるマイグレーション元とマイグレーション先とにおける時計情報の差分値が登録される。
【００５６】
資源マイグレーション制御１２０は、マイグレーション処理において、時計を補正するときに、時計情報制御１２２を参照して、当該ストレージノード間の時計情報の差分値をマイグレーション先ストレージノードの時計差分情報管理表３００に登録する。この差分値として登録する値の単位は、当該システム内にて決められたものを適用する。例えば、差分値を秒単位とする。また、差分値として登録する値の正負の意味は、当該システム内にて決められたものを適用する。例えば、正の値は、当該ストレージノードの時計情報が本来の値より先に進んでいることを意味し、負の値は、本来の値よりも前に戻っていることを意味する。
【００５７】
ストレージノードの情報資源に対してクライアント等からアクセスがあった場合、特に時計差分情報管理表３００に差分情報３２０が登録されている情報資源に対するアクセスがあったときは、ＷＯＲＭ時計制御１１０は、当該差分値を利用して、時計情報を補正する。
【００５８】
ここで、図４に示すように、エントリ３１０が４０００である情報資源の差分情報に＋３６００が設定されている場合を例に説明する。当該情報資源４０００を扱う場合に、時計情報を利用する場合は、ＷＯＲＭ時計制御１１０は、当該ストレージノードの時計値制御１０２から取得した時計情報から差分値（＋３６００）の分だけ過去に戻すように補正する。アクセス元のクライアントは、補正された時計値を利用する。特に、ＷＯＲＭ資源を扱う場合にこの時計情報の補正が重要となる。なお、詳細な補正処理手順については、後述する。
【００５９】
図５は、管理サーバ１１のハードウェア構成を例示する説明図である。
【００６０】
管理サーバ１１は、プログラムを実行するプロセッサ２０と、プログラム及びデータを一時的に格納するメモリ３０と、プログラム及びデータを永続的に格納可能な記憶装置４０と、記憶装置にアクセスするための記憶装置Ｉ／Ｆ５０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ６０と、それらを接続するバスとを含む。
【００６１】
プロセッサ２０は、メモリ３０に格納されているプログラムを読み出して、そのプログラムに規定された処理を実行する。
【００６２】
メモリ３０は、記憶装置Ｉ／Ｆを制御するプログラムである記憶装置Ｉ／Ｆ制御８０と、ネットワークＩ／Ｆを制御するプログラムであるネットワークＩ／Ｆ制御９０と、マイグレーションポリシーをマイグレーション管理表２００に設定するプログラムであるマイグレーションポリシー設定制御１４０と、マイグレーション許容範囲を設定するプログラムであるマイグレーション許容範囲設定制御１５０と、マイグレーション処理開始をマイグレーション実行制御１２１に要求するプログラムであるマイグレーション要求制御１６０が格納されている。
【００６３】
なお、前述したマイグレーションポリシー設定制御１４０、マイグレーション許容範囲設定制御１５０及びマイグレーション要求制御１６０は、管理サーバ１１ではなくストレージノード１に存在してもよい。すなわち、これらの制御をストレージノード１が提供することによって、管理サーバ１１を含まないシステム構成とすることもできる。
【００６４】
また、前述したマイグレーションポリシー設定制御１４０、マイグレーション許容範囲設定制御１５０及びマイグレーション要求制御１６０は、それぞれ別の管理サーバ１１上に存在してもよい。すなわち、これらの制御をそれぞれ異なる管理サーバ１１によって提供することで、複数の管理サーバ１１が存在するシステム構成とすることもできる。
【００６５】
また、管理サーバ１１には、前述した資源マイグレーション制御１２０が存在してもよい。また、前述した時計制御１００又はＷＯＲＭ時計制御１１０が存在してもよい。なお、これらの制御を管理サーバ１１に存在させる場合、これらの制御に対し、ストレージノード上に存在する各資源制御からネットワーク１０を経由してアクセス可能にする必要がある。
【００６６】
図６は、資源制御１３０が管理する各情報資源の属性５００の構成を例示する説明図である。
【００６７】
この属性５００は、情報資源の格納されている記憶装置４０に、情報資源と対応付けて格納されている。なお、属性５００は、記憶装置４０ではなく、メモリ３０に格納されていてもよい。
【００６８】
情報資源の属性５００は、エントリ５１０と、エントリ５２０とを含む。
【００６９】
エントリ５１０の既存属性は、従来の計算機システムが含む情報資源の属性であり、例えば当該情報資源のアクセス権限や当該情報資源のサイズ等が含まれる。
【００７０】
エントリ５２０の拡張属性は、さらにエントリ５２１と、エントリ５２２と、エントリ５２３とを含む。なお、これら以外の属性をエントリ５２０の拡張属性に含めてもよい。
【００７１】
エントリ５２１のＷＯＲＭ属性には、当該情報資源がＷＯＲＭ状態か否かを識別するための情報が設定される。エントリ５２１が有効であれば、当該情報資源はＷＯＲＭ状態である。
【００７２】
資源制御１３０は、エントリ５２１のＷＯＲＭ属性が有効である情報資源に対しての更新及び削除を抑止する。さらに、後述するエントリ５２２のＷＯＲＭ保管期間によって示される期間又は期限が満了しない限りＷＯＲＭ状態の解除を抑止する。
【００７３】
エントリ５２２のＷＯＲＭ保管期間には、当該情報資源のＷＯＲＭ状態が有効である期間が設定される。エントリ５２２のＷＯＲＭ保管期間に設定される情報は、日数のような期間の形式でもよいし、日時のような期限の形式でもよい。期間が設定されている場合はその期間が満了するまで当該情報資源のＷＯＲＭ属性を無効化（解除）できない。また、期限が設定されている場合は、その期限を迎えるまで当該情報資源のＷＯＲＭ属性を無効化できない。
【００７４】
なお、期間を設定した場合は、当該期間が満了したかどうかを判断するために、当該期間の基点となる時点の時間情報を、エントリ５２２のＷＯＲＭ保管期間の一要素として別途管理する必要がある。
【００７５】
資源制御１３０は、エントリ５２１のＷＯＲＭ属性が有効である限り、エントリ５２２のＷＯＲＭ保管期間に登録されている保管期間の延長は許す。しかし、保管期間の短縮や削除は許さない。
【００７６】
エントリ５２３のマイグレーション許容範囲には、当該情報資源のマイグレーション処理におけるマイグレーション許可条件として、マイグレーション元と先とのストレージノードで管理している時計情報の差分値として許容可能な上限値が登録される。
【００７７】
この許容可能な上限値は、当該情報資源のＷＯＲＭ保管期間や、当該情報資源を格納するストレージシステムの時計の精度等を考慮して予め設定しておく。例えば、ＷＯＲＭ保管期間が時、分、秒といった単位で設定されている場合は、数分（図６の例では５分）程度に設定する。また、ＷＯＲＭ保管期間が、年、月、日といった単位で設定されている場合は、数時間程度または数日に設定する。
【００７８】
資源マイグレーション制御１２０は、マイグレーション処理においてストレージノード間の時計情報の差分値を算出する。そして、その値が当該マイグレーション許容範囲５２３の値以下であればマイグレーション処理を許可する。一方、その値がマイグレーション許容範囲５２３の値を超えていればマイグレーション処理を禁止する。
【００７９】
なお、この属性５００の管理方法として、資源制御１３０が、全ての情報資源の属性５００を一括して保存して管理してもよいし、資源制御１３０が、各情報資源毎に属性５００を保存して、それぞれを個別に管理してもよい。
【００８０】
次に、ＷＯＲＭ資源のマイグレーション処理について説明する。
【００８１】
本実施形態の計算機システムでは、マイグレーション対象の情報資源をマイグレーションするときに、まず、当該マイグレーション対象の情報資源のマイグレーションポリシーがマイグレーション可能であるかを判定する。マイグレーション可能であれば、次に、マイグレーション先のストレージノードと自ストレージノードとの時計値を取得し、その時計値の差分値を比較する。差分値が許容範囲内であればマイグレーション対象の情報資源のマイグレーションを実行し、許容範囲内でなければ、マイグレーション先ストレージノードの時計値を補正する。
【００８２】
図７は、ＷＯＲＭ資源のマイグレーション処理の概要を示す説明図である。
【００８３】
図１に示すように、本実施形態の計算機システムは、ストレージノード１、ストレージノード２及び管理サーバ１１を含む。以降、ＷＯＲＭ資源のマイグレーション処理において、管理サーバ１１からの要求に基づいて、ストレージノード１に存在するファイル３０００をストレージノード２にマイグレーションする処理を説明する。
【００８４】
図７において、ストレージノード１は、ファイル３０００、ファイルシステム４０００及びボリューム５０００の少なくとも一つを情報資源として管理し、格納している。各情報資源には、前述した情報資源の拡張属性であるエントリ５２０に、ＷＯＲＭ属性、ＷＯＲＭ保管期間及びマイグレーション許容範囲が設定されている。また、資源マイグレーション制御１１２０が、図３に示す構成のマイグレーション管理表１２００及び図４に示す構成の時計差分情報管理表１３００を管理している。また、ストレージノード１は、時計制御１００が提供する時計値１４００及びＷＯＲＭ時計制御１１０が提供するＷＯＲＭ時計値１５００を利用して、ＷＯＲＭ資源に対応した時計値を得る。
【００８５】
ここでは、ストレージノード１において、ファイル３０００に対するマイグレーション操作の処理を説明する。本処理を実行する際に、時計情報が必要となる場合には、ＷＯＲＭ時計制御１１０が提供するＷＯＲＭ時計値１５００を利用する。この場合、ＷＯＲＭ時計制御１１０は、ストレージノード１の時計値１４００と時計差分情報管理表１３００のファイル３０００に対応する差分値とを基に、当該ファイル３０００に対応するＷＯＲＭ時計値１５００を算出する。ここで、図３に示すように、ファイル３０００に対応する差分値は０となっているので、ＷＯＲＭ時計制御１１０は、ＷＯＲＭ時計値１５００として、時計値１４００と０との差分値、すなわち時計値１４００と同じ値を提供する。
【００８６】
管理サーバ１１のマイグレーション要求制御１６０が、ストレージノード１の資源マイグレーション制御１２０に対して、ファイル３０００のマイグレーション処理を要求する。なお、本実施形態では、管理サーバ１１がストレージノード１に対して、ストレージノード２へのマイグレーション処理を要求した場合について説明する。なお、マイグレーション処理の要求は、ファイル３０００のマイグレーション先となるストレージノード２に対して要求してもよいし、またファイル３０００のマイグレーション元でも先でもないストレージノード３に対して要求してもよい。
【００８７】
ファイル３０００のマイグレーション処理要求を受けた資源マイグレーション制御１１２０は、自身が提供するマイグレーション実行制御１２１を利用して、要求マイグレーション処理の可否を判断する。マイグレーション実行制御１２１は、マイグレーション先ストレージノード２の時計値２４００、マイグレーション元ストレージノード１のＷＯＲＭ時計値１５００、ファイル３０００のエントリ２２０及びファイル３０００のエントリ５２３等の各情報を利用して、マイグレーション処理の可否を判断する。
【００８８】
この可否の判断の詳細な処理手順を、以降の図８で説明する。
【００８９】
図８は、マイグレーション実行制御１２１において、情報資源のマイグレーション処理の可否を判断するマイグレーション処理の手順を示すフローチャートである。
【００９０】
はじめに、マイグレーション実行制御１２１は、マイグレーション要求を受けると、マイグレーション管理表１２００を参照して、エントリ２２０のマイグレーション可否の項目においてマイグレーション対象として指定した情報資源に対する登録情報を取得する。そして、取得したマイグレーションポリシーの内容から、マイグレーションが可能か否かを判断する（Ｓ１０１）。
【００９１】
なお、マイグレーション管理表１２００にマイグレーション対象の情報資源についてエントリ２２０のマイグレーションポリシーが設定されていない場合や、マイグレーション対象の情報資源のエントリが存在しない場合は、システムで別途定めた基準によってマイグレーションの可否を判断する。例えば、エントリ２２０が設定されていない場合は、一律にマイグレーションを禁止するように基準を定めてもよいし、システムデフォルトのポリシーを予め設定しておき、これを適用するようにしてもよい。
【００９２】
処理ステップＳ１０１の判断結果、マイグレーション対象の情報資源がマイグレーション不可である場合は、エラー終了となる。マイグレーション対象の情報資源がマイグレーション可能である場合は、次の処理ステップＳ１０２に進む。
【００９３】
次に、マイグレーション実行制御１２１は、マイグレーション管理表１２００のマイグレーション対象の情報資源のエントリ２３０のマイグレーション試行カウンタをインクリメントする。すなわち、エントリ２３０に１を加算する（Ｓ１０２）。
【００９４】
なお、マイグレーション管理表１２００にマイグレーション対象の情報資源のエントリが存在しない場合は、マイグレーション対象の情報資源のエントリを新たに確保して、エントリ２３０をインクリメントしてもよい。
【００９５】
次に、マイグレーション実行制御１２１は、資源マイグレーション制御１１２０提供の時計情報制御１２２を利用して、マイグレーション先ストレージノード２の時計値２４００を取得する。時計情報制御１２２は、ストレージノード２上の資源マイグレーション制御２１２０にある時計情報制御１２２を介して、ストレージノード２の時計値２４００を取得する（Ｓ１０３）。資源マイグレーション制御２１２０の時計情報制御１２２は、ストレージノード２の時計値制御１０２に依頼して、時計値２４００を取得する。
【００９６】
次に、マイグレーション実行制御１２１は、マイグレーション元ストレージノード１のＷＯＲＭ時計制御１１０を利用して、ストレージノード１のＷＯＲＭ時計値１５００を取得する（Ｓ１０４）。
【００９７】
このＷＯＲＭ時計値１５００は、マイグレーション対象の情報資源に対応したＷＯＲＭ時計値１５００を取得する。すなわち、ＷＯＲＭ時計制御１１０は、時計値制御１０２より取得した時計値１４００と、時計差分情報管理表１３００より取得した対象ファイル３０００の差分値とを基に、マイグレーション対象の情報資源に対応したＷＯＲＭ時計値１５００を算出する。マイグレーション元ストレージノード１のみＷＯＲＭ時計値１５００を取得する理由は、マイグレーション元ストレージノード１上のマイグレーション対象の情報資源が、以前に他のストレージノードからマイグレーションされたものである場合には、既に当該情報資源に対する時計差分情報が時計差分情報管理表１３００に登録されている可能性があるためである。
【００９８】
次に、マイグレーション実行制御１２１は、取得した二つの時計値の差分値を算出する（Ｓ１０５）。差分値の算出方式は、システム内で統一した方式による。例えば、マイグレーション先の時計値２４００からマイグレーション元のＷＯＲＭ時計値１５００を減算する方式でもよいし、その逆の方式でもよい。
【００９９】
次に、マイグレーション実行制御１２１は、算出した差分値と、マイグレーション対象の情報資源の属性５００のエントリ５２３とを用いて、差分値がマイグレーション対象の情報資源のマイグレーション許容範囲内か否かを判断する（Ｓ１０６）。このとき、マイグレーション実行制御１２１は、マイグレーション対象の情報資源を管理する資源制御１３０が提供するマイグレーション許容範囲制御１３２を介して、マイグレーション対象の情報資源のマイグレーション許容範囲であるエントリ５２３を取得する。
【０１００】
差分値がマイグレーション許容範囲内である場合は、マイグレーション可能と判断して処理ステップＳ１０７に進む。一方、差分値がマイグレーション許容範囲外である場合は、マイグレーション不可能と判断して処理ステップＳ１１０に進む。
【０１０１】
なお、マイグレーション対象の情報資源にエントリ５２３が設定されていない場合は、システムで別途定めた基準を適用する。例えば、マイグレーション許容範囲が設定されていない場合は、一律にマイグレーションを禁止するようにしてもよいし、システムで予め定めたデフォルトの許容範囲値又は各情報資源制御に予め定めたデフォルトの許容範囲値を用いて、マイグレーションの可否を判断してもよい。
【０１０２】
処理ステップＳ１０６において、マイグレーション可能と判断した場合は、マイグレーション実行制御１２１は、マイグレーション対象の情報資源の資源制御１３０が提供するマイグレーション制御１３３に対して、当該情報資源のマイグレーション処理を依頼する。依頼を受けたマイグレーション制御１３３は、マイグレーション対象の情報資源を、指定された先にマイグレーションする処理を実行する（Ｓ１０７）。より具体的には、マイグレーション制御１３３は、マイグレーション対象の情報資源を、ネットワーク１０を介してマイグレーション先のストレージノード２に送信する。マイグレーション先のストレージノード２において、マイグレーション制御１３３は、マイグレーション元ストレージノード１から送信された情報資源を、当該ストレージノードの記憶装置４０の対応する領域に格納する。なお、マイグレーションの実行方式はこれ以外の方法を用いてもよい。
【０１０３】
なお、他の情報資源（ファイルシステム４０００やボリューム５０００）のマイグレーション処理は、ファイル３０００のマイグレーション処理内容とほぼ同様である。すなわち、マイグレーション対象の情報資源がファイルである場合は、マイグレーション制御１３３は、マイグレーション対象ファイルをマイグレーション先ストレージノード２に送信する。また、マイグレーション対象の情報資源がファイルシステムである場合は、マイグレーション制御１３３は、マイグレーション対象ファイルシステムに含まれるファイル及びファイルシステム管理情報をマイグレーション先ストレージノード２に送信する。また、マイグレーション対象の情報資源がボリュームである場合は、マイグレーション制御１３３は、マイグレーション対象ボリュームに含まれるデータをマイグレーション先ストレージノード２に送信する。
【０１０４】
処理ステップＳ１０７の処理によって、情報資源のマイグレーション処理が完了したら、マイグレーション実行制御１２１は、マイグレーション元ストレージノード１上にあるマイグレーション管理表１３００におけるマイグレーション対象の情報資源に関する情報を、マイグレーション先ストレージノード２のマイグレーション管理表２２００に移行する（Ｓ１０８）。移行する情報は、マイグレーション管理表１２００の当該マイグレーション対象の情報資源のエントリに登録されている情報の全てである。
【０１０５】
最後に、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２のマイグレーション管理表２２００におけるマイグレーション対象の情報資源のエントリ２３０にあるマイグレーション試行カウンタ２３０の値をクリアする（Ｓ１０９）。具体的には、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２のマイグレーション実行制御１２１を介して、当該エントリ２３０の値をクリアする。この処理が完了することによって、情報資源のマイグレーション処理が正常終了となる。
【０１０６】
一方、処理ステップＳ１０６において、マイグレーション不可能と判断した場合は、マイグレーション実行制御１２１は、マイグレーション管理表１２００において当該情報資源のエントリに登録されているエントリ２３０のマイグレーション試行回数上限の値と、現在のエントリ２３０のマイグレーション試行カウンタの値とを比較する。比較した結果、エントリ２２３の値と現在のマイグレーション試行カウンタ２３０の値が一致した場合は、これ以上のマイグレーション試行は不可と判断して、このマイグレーション処理をエラー終了にする。
【０１０７】
一方、比較した結果、エントリ２２３の値と現在のエントリ２３０の値が一致しない場合は、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２の時計情報の補正処理（処理Ａ）を実行する（Ｓ２００）。なお、この補正処理は、以降の図９において説明する。
【０１０８】
次に、マイグレーション時における時計情報の補正処理（処理Ａ）を説明する。
【０１０９】
図９は、マイグレーション実行制御１２１において、情報資源のマイグレーション処理時における時計情報の補正処理の手順を示すフローチャートである。
【０１１０】
はじめに、マイグレーション実行制御１２１は、マイグレーション管理表１２００においてマイグレーション対象の情報資源のエントリに登録されている補正対象であるエントリ２２２の情報を取得する。そして、エントリ２２２は時計に設定されているか時計差分情報に設定されているかを判断する（Ｓ２０１）。エントリ２２２が時計に設定されている場合は、処理ステップＳ２０２に進み、エントリ２２２が時計差分情報に設定されている場合は、処理ステップＳ２０３に進む。
【０１１１】
処理ステップＳ２０１において、エントリ２２２が時計に設定されていると判断した場合は、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２の時計値２４００を補正する。具体的には、マイグレーション実行制御１２１は、情報資源マイグレーション制御１２０提供の時計情報制御１２２を介して、マイグレーション先ストレージノード２の時計制御１００が提供する時計値制御１０２に対して、時計値２４００の更新を依頼する。この更新値は、図８のステップＳ１０５においてマイグレーション実行制御１２１が算出した時計の差分値である。すなわち、時計値２４００を補正することによって、マイグレーション先ストレージノード２の時計値２４００が、マイグレーション元ストレージノード１におけるマイグレーション対象の情報資源のＷＯＲＭ時計値１５００と一致するように補正する。マイグレーション先ストレージノード２の時計値２４００の補正が終了したら、時計補正処理は終了となる。
【０１１２】
一方、処理ステップＳ２０１において、エントリ２２２が時計補正情報に設定されていると判断した場合は、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２の時計差分情報管理表２３００に対して、補正情報を登録する。具体的には次のような処理を実行する。
【０１１３】
まず、登録に先立って、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２における時計差分情報管理表２３００に、マイグレーション対象の資源に対応するエントリがあるか否かの確認を要求する（Ｓ２０３）。確認の結果、マイグレーション対象の情報資源に対応するエントリがない場合は、処理ステップＳ２０４に進み、マイグレーション対象の情報資源に対応するエントリがある場合は、処理ステップＳ２０５に進む。
【０１１４】
処理ステップＳ２０３において、時計差分情報管理表２３００にマイグレーション対象の情報資源のエントリがない場合は、マイグレーション実行制御１２１は、当該情報資源用のエントリを新規に作成し、作成したエントリの領域を初期化するようマイグレーション先ストレージノード２の時計差分情報管理１２４に依頼する（Ｓ２０４）。なお、このエントリ作成処理は、処理ステップＳ２０３のエントリの有無の確認を要求するときに同時に、エントリがない場合に同様の処理を依頼するように要求してもよい。エントリが作成されたら、処理ステップＳ２０５に進む。
【０１１５】
一方、処理ステップＳ２０３において、時計差分情報管理表２３００にマイグレーション対象の情報資源のエントリがある場合は、マイグレーション実行制御１２１は、エントリ３２０の差分情報３２０に差分値を登録するようマイグレーション先ストレージノード２に依頼する。なお、既にエントリ３２０に差分値が登録されていた場合には、マイグレーション先ストレージノード２は、既に設定されている値を破棄して、新しい値に更新する。なお、この差分値の登録は、処理ステップＳ２０３のエントリの有無の確認を要求するときに同時に依頼する。エントリがないと判定した場合は、新規にエントリを作成し（Ｓ２０４）、作成された新たなエントリに差分情報を登録する。
【０１１６】
次に、マイグレーション実行制御１２１は、マイグレーション先ストレージノード２に登録された時計差分情報管理表２３００の差分値を基に、時計差分情報を登録又は更新する（Ｓ２０５）。この処理が終了したら、時計補正処理は終了する。
【０１１７】
以上のような処理によって、ストレージノード間におけるマイグレーション処理が実行される。
【０１１８】
次に、ＷＯＲＭ資源の保管期間満了確認処理を説明する。
【０１１９】
ＷＯＲＭ資源には、前述のように保管期間が設定されているが、この保管期間が満了したか否かを判断する処理が必要となる。そこで、ストレージノード１は、管理サーバ１１からの要求に基づいて、ストレージノード１が管理しているＷＯＲＭ資源の保管期間をチェックする。そして、ＷＯＲＭ資源の保管期間が満了しているか否かを判断する。なお、保管期間が満了したＷＯＲＭ資源は、削除してもよいし、ＷＯＲＭ属性を解除して通常の情報資源としてそのまま格納してもよい。
【０１２０】
図１０は、資源制御１３０におけるＷＯＲＭ資源の保管期間満了確認処理の手順を示すフローチャートである。なお、ここでは、ストレージノード１における保管期間満了確認処理の例を示す。
【０１２１】
はじめに、資源制御１３０は、ＷＯＲＭ時計制御１１０に対して、当該ＷＯＲＭ資源に対応するＷＯＲＭ時計値１５００の取得を要求する（Ｓ３０１）。ＷＯＲＭ時計制御１１０は、ＷＯＲＭ時計値１５００の取得の要求に対して、ＷＯＲＭ時計値１５００を作成する処理を実行する（Ｓ４００）。このＷＯＲＭ時計値１５００の作成処理の手順は後述する。
【０１２２】
資源制御１３０は、ＷＯＲＭ時計制御１１０よりＷＯＲＭ時計値１５００を取得した後、取得したＷＯＲＭ時計値１５００と、当該ＷＯＲＭ資源に設定されているエントリ５２２のＷＯＲＭ保管期間とを利用して、当該ＷＯＲＭ資源の保管期間が満了しているか否かを確認する（Ｓ３０２）。資源制御１３０は、この確認の結果、すなわち、満了しているか否かを要求元に返す。
【０１２３】
次に、ＷＯＲＭ時計値１５００の作成処理を説明する。
【０１２４】
処理ステップＳ３０１において、資源制御１３０によって、ＷＯＲＭ時計値１５００の作成が要求された場合は、ＷＯＲＭ時計制御１１０は、対象のＷＯＲＭ資源に対応するＷＯＲＭ時計値１５００の作成処理を実行する（Ｓ４００）。
【０１２５】
はじめに、ＷＯＲＭ時計制御１１０は、時計値制御１０１に対し、現時点の時計値１４００を要求する（Ｓ４０１）。
【０１２６】
次に、ＷＯＲＭ時計制御１１０は、時計差分情報管理表１３００において対象のＷＯＲＭ資源に対応するエントリ３２０の差分情報が登録されているかどうか、資源マイグレーション制御１２０が提供する時計情報制御１２２に対して確認を依頼する（Ｓ４０２）。時計情報制御１２２は、確認依頼を受けたら、対象のＷＯＲＭ資源に対応するエントリがあるかどうかを確認する。当該エントリがあれば、当該エントリに登録されているエントリ３２０の値を返す。当該エントリがなければ、その旨を返す。ＷＯＲＭ時計制御１１０は、時計情報制御１２２からの戻り値を判断する。戻り値がエントリありである場合は、処理ステップＳ４０３に進む。戻り値がエントリなしである場合は、既に取得している時計値１４００をＷＯＲＭ時計値１５００として要求元に返す（Ｓ４０５）。
【０１２７】
処理ステップＳ４０２において、時計差分情報管理表１３００に当該エントリがある場合は、ＷＯＲＭ時計制御１１０は、そのエントリに登録されているエントリ３２０を取得する。そして、そのエントリ３２０の値を既に取得した時計値１４００に反映する（Ｓ４０３）。具体的には、ＷＯＲＭ時計制御１１０は、システムで別途定めた方法によって差分情報を反映する。例えば、時計値１４００に差分情報３２０の値を加算することによって、差分情報を反映する。
【０１２８】
ＷＯＲＭ時計制御１１０は、エントリ３２０の値を反映した時計値１４００をＷＯＲＭ時計値１５００として要求元に返す（Ｓ４０４）。
【０１２９】
なお、この図１０において説明した保管期間満了確認処理では、エントリ５２２のＷＯＲＭ保管期間が満了しているか否かのみを確認する。このとき、対象のＷＯＲＭ資源のＷＯＲＭ属性であるエントリ５２１の無効化や、対象のＷＯＲＭ資源の削除、対象のＷＯＲＭ資源のエントリ５２２の延長等の処理を同時に実行してもよい。
【０１３０】
次に、マイグレーションポリシーの設定処理を説明する。
【０１３１】
図１１は、情報資源のマイグレーションポリシー設定処理の手順を示すフローチャートである。
【０１３２】
情報資源に対するマイグレーションポリシーの設定は、例えば予め管理者によって、管理サーバ１１から要求される。マイグレーションポリシー設定制御１４０は、この要求を受けて、設定対象の情報資源が存在するストレージノードの資源マイグレーション制御１２０に対して、マイグレーションポリシーの設定を要求する。
【０１３３】
マイグレーションポリシー設定要求を受けた資源マイグレーション制御１２０は、マイグレーション管理１２３を介して、マイグレーション管理表２００より、当該マイグレーションポリシー設定対象の情報資源に対応するエントリからエントリ２３０のマイグレーション試行カウンタを取得する（Ｓ５０１）。
【０１３４】
次に、資源マイグレーション制御１２０は、取得したエントリ２３０の値が０か否かを確認する（Ｓ５０２）。エントリ２３０の値が０でない場合は、資源マイグレーション制御１２０は、当該情報資源が現在マイグレーション処理が実施中であると判断して、当該情報資源に対するマイグレーションポリシー設定処理をエラー終了とする。マイグレーション処理実施中にマイグレーションポリシー設定処理をエラーにする理由は、マイグレーション実施中においてマイグレーションポリシーが変更されることによって、マイグレーション処理に不整合が発生することを防ぐためである。
【０１３５】
処理ステップＳ５０２において、エントリ２３０の値が０である場合は、資源マイグレーション制御１２０は、当該情報資源に対応するマイグレーションに対応するエントリ２２０に、エントリ２２１、エントリ２２２、エントリ２２３の各値を設定する（Ｓ５０３）。具体的には、当該情報資源のマイグレーションポリシーを設定する。なお、当該情報資源に対応するエントリが存在しない場合は、新たにエントリを作成し、作成した新たなエントリにマイグレーションポリシーを設定する。
【０１３６】
マイグレーションポリシーの設定が完了したら、要求元であるマイグレーションポリシー設定制御１４０に、その旨を通知して処理を終了する。
【０１３７】
次に、マイグレーション許容範囲設定処理を説明する。
【０１３８】
図１２は、情報資源のマイグレーション許容範囲設定処理における処理手順を示すフローチャートである。
【０１３９】
マイグレーション許容範囲設定制御１５０は、設定対象の情報資源が存在するストレージノードの資源制御１３０に対して、マイグレーション許容範囲の設定を要求する。マイグレーション許容範囲は、前述のように、情報資源のＷＯＲＭ保管期間や、当該情報資源を格納するストレージシステムの時計の精度等を考慮して、マイグレーション処理実行前に予め設定する。
【０１４０】
マイグレーション許容範囲設定要求を受けた資源制御１３０は、資源マイグレーション制御１２０に対して、マイグレーション管理表２００を参照して、設定対象の情報資源に対応するエントリ２３０の値を取得するよう依頼する（Ｓ６０１）。資源マイグレーション制御１２０は、マイグレーション管理１２３を介して、エントリ２３０の値を取得する。
【０１４１】
資源制御１３０は、取得したエントリ２３０の値が０か否かを確認する（Ｓ６０２）。
【０１４２】
エントリ２３０の値が０でない場合は、資源制御１３０は、当該情報資源は現在マイグレーション処理の実施中と判断して、当該情報資源に対する許容範囲設定処理をエラー終了とする。マイグレーション処理の実施中に許容範囲設定処理をエラーにする理由は、マイグレーション実施中においてマイグレーション許容範囲が変更されることによって、マイグレーション処理に不整合が発生することを防ぐためである。
【０１４３】
処理ステップＳ６０２において、エントリ２３０の値が０である場合は、資源制御１３０は、当該情報資源に対するマイグレーション許容範囲を設定する（Ｓ６０３）。具体的には、当該情報資源に対応する属性５００の拡張属性であるエントリ５２０のエントリ５２３に、マイグレーション許容範囲を設定する。
【０１４４】
設定が完了したら、要求元であるマイグレーションポリシー設定制御１５０に対して、その旨を通知して、処理を終了する。
【０１４５】
なお、本発明は前述の実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で種々の構成をとることができることは言うまでもない。例えば、以降に説明するような変形例をとることができる。
（変形例１）
前述した実施の形態では、時計差分情報管理表３００におけるエントリ３２０の差分情報には、時計の差分値が登録される。これに対して、エントリ３２０として登録する情報は、当該情報資源に対応するＷＯＲＭ時計値を算出できるものであればどのような情報でもよい。例えば、エントリ３２０として、時計差分値の更新ログを記録する。更新ログを記録することによって、いつ時計の差分情報の登録があり、その時に時計値がどれだけ補正されたのかという情報を把握できる。
【０１４６】
図１３は、時計差分情報管理表３００の説明図であり、エントリ３２０の差分情報に更新ログを記録する場合の構成を例示する。
【０１４７】
前述のように、時計差分情報管理表３００は、エントリ３１０の対象資源識別子と、エントリ３２０の差分情報とを含む。
【０１４８】
エントリ３２０の差分情報には、当該情報資源のマイグレーション時において、マイグレーション元ストレージノードとマイグレーション先ストレージノードとにおける時計情報の更新ログが、逐次記録される。当該更新ログは、更新を行った日時の情報と、更新した差分値の情報とを含む。
【０１４９】
マイグレーション処理において、資源マイグレーション制御１２０は、時計を補正するときに、時計情報制御１２２を利用して、当該ストレージノード間の時計情報の差分情報をマイグレーション先ストレージノードの時計差分情報管理表３００に更新ログとして登録する。この更新ログとして登録する値の単位は、前述のように、当該システム内にて決められたものを適用する。また、値の正負の意味も同様に、当該システム内にて決められたものを適用する。
【０１５０】
また、前述のように、時計差分情報管理表３００に更新ログ形式の差分情報が登録されている情報資源を利用する際には、当該更新ログを利用して、時計情報を補正する。
【０１５１】
図１３に示すように、例えば、資源識別子が４０００であるエントリの情報資源には、差分情報として三つの更新ログが設定されている。この情報資源４０００を扱うとき、時計情報を利用する場合は、当該ストレージノードの時計情報を当該更新ログのうち、最新に更新されたログを用いて補正し、補正した時計情報値を利用する。特に、ＷＯＲＭ資源を扱う場合には、ＷＯＲＭ時計制御１１０は、当該更新ログのうち、最新に更新されたログを用いて補正処理をする。詳細な補正処理手順は、図９で説明した補正処理手順と同様である。
（変形例２）
前述の実施の形態では、資源マイグレーション制御１２０において、当該情報資源のマイグレーションが許可された場合、すなわち、時計値の差分値がマイグレーション許容範囲内である場合は、マイグレーション先ストレージノード２の時計情報は補正しない。これに対して、マイグレーションが許可された場合にも、マイグレーション先ストレージノード２において時計情報を補正してもよい。
【０１５２】
図１４は、マイグレーション実行制御１２１において、情報資源のマイグレーション処理の手順を示すフローチャートであり、マイグレーション許可時にも時計情報を補正する場合の処理手順を示すフローチャートである。
【０１５３】
図１４のフローチャートは、前述した図８のフローチャートとほぼ同様であるが、マイグレーションが許可された後に、マイグレーション先ストレージノード２の時計情報を補正する処理が異なる。
【０１５４】
すなわち、処理ステップＳ１０６において、差分値がマイグレーション許容範囲内である場合は、マイグレーション実行制御１２１は、まず、処理ステップＳ１０７の前に、マイグレーション先ストレージノード２の時計情報の補正処理（処理Ａ）を実行する（Ｓ７００）。この処理は図９で説明した処理Ａ（Ｓ２００）と同一である。そして、時計情報の補正処理が終了したら、マイグレーション実行制御１２１は、処理ステップＳ１０７に進み、当該情報資源のマイグレーション処理を実行する。その後の処理は図８で前述した処理と同様である。
（変形例３）
前述した実施の形態では、時計制御１００が管理する時計値を更新する際に、当該時計値を直接更新することによって、時計値を更新した。これに対して、時計制御１００において、時計値を更新する際の更新ログを別途管理してもよい。
【０１５５】
具体的には、時計制御１００が更新ログを管理する場合は、時計制御１００にて管理する時計値を直接更新した上で更新ログを別途管理してもよいし、時計値を更新せずに、更新ログのみを別途管理し、必要なときに更新ログの情報を反映させた時計値を提供するようにしてもよい。時計制御１００が更新ログを管理することによって、時計値がいつどのように更新されたのかを把握することが可能になる。
なお、時計値の更新ログについては、時計制御１００で管理するかわりに、時計制御１００以外で管理してもよい。例えば、ログを管理するためのプログラム等を別途用意して、時計値の更新ログを当該プログラムによって管理してもよい。
（変形例４）
前述した実施の形態では、資源マイグレーション制御１２０及びＷＯＲＭ時計制御１１０がストレージノード上に存在することを前提としていた。これに対して、資源マイグレーション制御１２０が、管理サーバ１１やその他のサーバ上に存在する構成でもよい。また、ＷＯＲＭ時計制御１１０が、管理サーバ１１やその他のサーバ上に存在する構成でもよい。また、資源マイグレーション制御１２０とＷＯＲＭ時計制御１１０が、それぞれ別々のストレージノード又はサーバに存在する構成でもよい。また、資源マイグレーション制御１２０によって提供されるマイグレーション管理表２００及び時計差分情報管理表３００が、それぞれ別々のストレージノード又はサーバに存在する構成でもよい。
（変形例５）
前述した実施の形態では、各情報資源のマイグレーション許容範囲制御１３２を資源制御１３０によって提供することを前提にしていた。これに対して、例えば、マイグレーション許容範囲制御１３２を資源制御１３０から独立化し、管理サーバ１１やその他のサーバにおいて、マイグレーション許容範囲制御１３２を別途提供する構成でもよい。
（変形例６）
前述した実施形態では、各情報資源の時計差分情報管理表３００を資源マイグレーション制御１２０における時計差分情報管理１２４にて提供することを前提にしていたが、この限りではない。例えば、時計情報管理１２４を資源マイグレーション制御１２０から独立化し、資源制御１３０が、当該情報資源に関する時計差分情報管理表３００を管理する構成でもよい。
【０１５６】
資源制御１３０において時計差分情報管理表３００を管理する構成とした場合、当該情報資源のマイグレーション処理では、マイグレーション実行制御１２１は、当該資源制御１３０が提供するマイグレーション制御１３３によって、当該情報資源の時計差分情報管理表を、マイグレーション先ストレージノードにマイグレーションする。これにより、前述した実施形態と同様に、マイグレーション先ストレージノードに当該情報資源の時計差分情報を継承することができるようになる。
（変形例７）
前述した実施の形態では、情報資源のマイグレーション処理において、時計情報を補正していた。これに対して、例えば、当該情報資源のレプリケーション処理やバックアップ／リストア処理などを対象に、時計情報を補正する処理としてもよい。
【０１５７】
レプリケーション処理において時計情報の補正を実行する場合は、レプリケーション処理を実行するプログラム等が、資源マイグレーション制御１２０と同等の処理を提供するための資源レプリケーション制御を備える。また、バックアップ／リストア処理において時計情報の補正を実行する場合は、バックアップ／リストア処理を実行するプログラム等が、資源マイグレーション制御１２０と同等の処理を提供するための資源バックアップ／リストア制御を備える。
（変形例８）
前述した実施の形態では、情報資源のマイグレーション処理方式は問わないと述べた。本変形例では、次のようなマイグレーション処理方式を説明する。
【０１５８】
資源制御１３０が提供するＷＯＲＭ制御１３１において、エントリ５２２のＷＯＲＭ保管期間を日数のような期間の形式で管理している場合を考える。ここで、当該資源制御１３０が提供するマイグレーション制御１３３において、マイグレーション対象のＷＯＲＭ資源をマイグレーションする際に、当該ＷＯＲＭ資源のＷＯＲＭ保管期間情報を、当該マイグレーション処理の契機を基点とした残存保管期間値に算出し直し、これを新たなＷＯＲＭ保管期間として更新する。
【０１５９】
例えば、ＷＯＲＭ保管期間を１０００日と指定してＷＯＲＭ属性を有効にしたＷＯＲＭ資源について、当該ＷＯＲＭ資源のＷＯＲＭ属性を有効にしてから２００日経過したときに当該ＷＯＲＭ資源をマイグレーションする場合を考える。前述の実施の形態では、当該資源のエントリ５２２は、当該ＷＯＲＭ資源のＷＯＲＭ属性を有効にした時点の時間情報、及び、期間の情報としてそのままマイグレーション先ストレージノードに移行される。
【０１６０】
一方、本方式では、マイグレーション先ストレージノードにおける当該ＷＯＲＭ資源のエントリ５２２には、当該ＷＯＲＭ資源を当該ストレージノードにマイグレーションした時点の時間情報を、期間の新しい基点として設定する。さらに、当該マイグレーション時点における当該ＷＯＲＭ資源の残存ＷＯＲＭ保管期間を、資源マイグレーション制御１２０が算出して、マイグレーション先ストレージノードにおける当該ＷＯＲＭ資源の新しい期間として設定する。すなわち、それまでのＷＯＲＭ保管期間である１０００日から、既に経過した２００日を減算した８００日を、ＷＯＲＭ保管期間として指定する。
【０１６１】
このようにすることによって、マイグレーション対象のＷＯＲＭ資源のエントリ５２２が、マイグレーション処理時点における新しい情報に更新される。そのため、マイグレーション先ストレージノードの時計情報を補正する必要がなくなるという利点が生じる。
【０１６２】
なお、本方式によってマイグレーション対象のＷＯＲＭ資源のエントリ５２２のＷＯＲＭ保管期間が延長したり短縮したりしないような算出方法をとる必要がある。すなわち、当初のＷＯＲＭ保管期間の満了期限が変更されないように、ＷＯＲＭ保管期間、経過時間及び時計情報の補正値を適切に用いて算出する必要がある。また、本方式によってマイグレーション対象のＷＯＲＭ資源のエントリ５２２を更新する場合は、元々設定されていたエントリ５２２を上書き更新してもよいし、別途更新用の領域を用意して、そこに更新した情報を格納してもよい。
【０１６３】
さらに、本方式は、資源のマイグレーション処理を例に説明したが、この限りではない。例えば、当該情報資源のレプリケーション処理やバックアップ／リストア処理などに本方式を適用することも可能である。
【０１６４】
レプリケーション処理を対象とする場合は、レプリケーション処理時において、当該処理時点における残存ＷＯＲＭ保管期間を算出し、レプリケーション先ストレージノードにおけるＷＯＲＭ保管期間とする。また、バックアップ処理を対象とする場合は、バックアップ処理時において、当該処理時点における残存ＷＯＲＭ保管期間を算出し、バックアップ先におけるＷＯＲＭ保管期間とする。また、リストア処理を対象とする場合は、リストア処理時において、当該処理時点における残存ＷＯＲＭ保管期間を算出し、リストア先ストレージノードにおけるＷＯＲＭ保管期間とする。
【０１６５】
なお、本発明は、前記ストレージ装置を実現するプログラム、及びそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。
【０１６６】
本発明をコンピュータプログラムとして構成する場合には、ストレージ装置あるいはストレージ装置を制御するプログラム全体として構成するものとしてもよいし、本発明による処理を実行する部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置及び記憶装置などコンピュータが読み取り可能な種々の揮発性記録媒体や不揮発性記憶媒体を利用できる。
【図面の簡単な説明】
【０１６７】
【図１】本発明の実施形態における計算機システムの構成ブロック図である。
【図２】ストレージノードのハードウェアの構成ブロック図である。
【図３】マイグレーション管理表の構成を例示する説明図である。
【図４】時計差分情報管理表の構成を例示する説明図である。
【図５】管理サーバのハードウェア構成を例示する説明図である。
【図６】各情報資源の属性の構成を例示する説明図である。
【図７】マイグレーション処理の概要を示す説明図である。
【図８】マイグレーション処理の手順を示すフローチャートである。
【図９】時計補正の処理の手順を示すフローチャートである。
【図１０】保管期間満了確認処理時における処理手順を示すフローチャートである。
【図１１】情報資源のマイグレーションポリシー設定処理の手順を示すフローチャートである。
【図１２】情報資源のマイグレーション許容範囲設定処理における処理手順を示すフローチャートである。
【図１３】変形例の時計差分情報管理表の構成を例示する説明図である。
【図１４】変形例の情報資源のマイグレーション処理の手順を示すフローチャートである。
【符号の説明】
【０１６８】
１、２、３         ストレージノード
１０        ネットワーク
１１        管理サーバ
２０        プロセッサ
３０        メモリ
４０        記憶装置
５０        記憶装置Ｉ／Ｆ
６０        ネットワークＩ／Ｆ
７０        クロック供給源
８０        記憶装置Ｉ／Ｆ制御
９０        ネットワークＩ／Ｆ制御
１００      時計制御
１０１      時計値管理
１０２      時計値制御
１１０      ＷＯＲＭ時計制御
１２０、１１２０、２１２０      資源マイグレーション制御
１２１      マイグレーション実行制御
１２２      時計情報制御
１２３      マイグレーション管理
１２４      時計差分情報管理
１３０      資源制御
１３１      ＷＯＲＭ制御
１３２      マイグレーション許容範囲制御
１３３      マイグレーション制御
１４０      マイグレーションポリシー設定制御
１５０      マイグレーション許容範囲設定制御
１６０      マイグレーション要求制御
２００、１２００、２２００      マイグレーション管理表
２１０      対象資源識別子
２２０      マイグレーションポリシー
２２１      マイグレーション可否
２２２      補正対象
２２３      マイグレーション試行回数上限
２３０      マイグレーション試行カウンタ
３００、１３００、２３００      時計差分情報管理表
３１０      対象資源識別子
３２０      差分情報
５００      資源の属性
５１０      既存属性
５２０      拡張属性
５２１、３１００、４１００、５１００      ＷＯＲＭ属性
５２２、３２００、４２００、５２００      ＷＯＲＭ保管期間
５２３、３３００、４３００、５３００      マイグレーション許容範囲
１４００、２４００      時計値
１５００、２５００      ＷＯＲＭ時計値
３０００      ファイル
４０００      ファイルシステム
５０００      ボリューム
【図１】
0004699842.tif 000002
【図２】
0004699842.tif 000003
【図３】
0004699842.tif 000004
【図４】
0004699842.tif 000005
【図５】
0004699842.tif 000006
【図６】
0004699842.tif 000007
【図７】
0004699842.tif 000008
【図８】
0004699842.tif 000009
【図９】
0004699842.tif 000010
【図１０】
0004699842.tif 000011
【図１１】
0004699842.tif 000012
【図１２】
0004699842.tif 000013
【図１３】
0004699842.tif 000014
【図１４】
0004699842.tif 000015