(57)【要約】【課題】計算機システムにおいて、ジャーナルの格納先を局所化すること。【解決手段】本発明の計算機システムは、１つ以上のホスト計算機１１００と、ホスト計算機１１００が使用したデータを格納するストレージ装置１０００と、ストレージ装置１０００によるデータの格納を管理する管理計算機１２００と、を備えている。  管理計算機１２００は、ホスト計算機１１００のジャーナルの格納先であるストレージ装置１０００のジャーナルボリュームを監視し、ジャーナルボリュームへのジャーナルの格納が並行して複数行われている場合、そのジャーナルの格納先のいずれかが、ジャーナルボリュームの集合体であるグループの間で移行したことを検知したとき、その他のジャーナルの格納先を同様にグループ間で移行するようにストレージ装置１０００に指示する。【選択図】図１
2008065525.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のホスト計算機と、前記ホスト計算機が使用したデータを格納するストレージ装置と、前記ストレージ装置によるデータの格納を管理する管理計算機と、を備え、それらがネットワークにより接続され、
前記ホスト計算機は、自身が使用するデータを格納する１つ以上のデータボリュームを有し、
前記ストレージ装置は、ディスク装置と処理部とを有し、
前記ディスク装置は、
前記データボリュームの特定時点のデータイメージであるスナップショットを格納するスナップショットボリュームと、
前記データボリュームに対応して割り当てられ、前記ホスト計算機が前記データボリュームに書き込むデータを受信し、ジャーナルとして格納するジャーナルボリュームと、を備え、
前記ジャーナルボリュームは、論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、
前記処理部は、
前記スナップショットに対して前記ジャーナルを適用することでデータのリカバリを行う、計算機システムであって、
前記管理計算機は、前記ジャーナルの格納先である前記ジャーナルボリュームを監視し、前記ジャーナルボリュームへの前記ジャーナルの格納が並行して複数行われている場合、その前記ジャーナルの格納先のいずれかがそれまで格納してきた前記グループとは異なるグループに移行したことを検知したとき、その他の前記ジャーナルの格納先も当該移行後のグループに移行するように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示にしたがって、前記ジャーナルの格納先の前記グループ間での移行を行う
ことを特徴とする計算機システム。
【請求項２】
前記ストレージ装置の処理部は、前記管理計算機からの指示により、前記ホスト計算機のデータボリュームに対して前記ジャーナルボリュームを割り当てる際に、同一の前記グループ内のジャーナルボリュームを連続的に使用するように設定することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記グループは、属するすべての前記ジャーナルボリュームの属性を一括変更可能なジャーナルボリュームの集合であることを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記属性は、前記グループ全体の通電状態を示す属性であることを特徴とする請求項３に記載の計算機システム。
【請求項５】
前記管理計算機は、所定時間後に前記ジャーナルの格納先のいずれかが前記グループ間で移行することを、その移行元の前記ジャーナルボリュームの空き容量が所定量よりも少なくなったことから判断し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その移行先の前記ジャーナルボリュームが属するグループが通常稼動状態になるように電源を管理することを特徴とする請求項４に記載の計算機システム。
【請求項６】
前記管理計算機は、前記データボリュームに割り当てられた前記ジャーナルボリュームが１つもない前記グループに関して、電源をＯＦＦする、あるいは、稼動状態が省電力状態になるように電源を管理するように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記グループに関して、電源をＯＦＦする、あるいは、稼動状態が省電力状態になるように電源を管理することを特徴とする請求項５に記載の計算機システム。
【請求項７】
前記管理計算機は、いずれかの前記ジャーナルの格納先が前記グループ間で移行した場合、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行するように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行することを特徴とする請求項１に記載の計算機システム。
【請求項８】
前記管理計算機は、前記ホスト計算機のいずれかの前記データボリュームに割り当てられた前記ジャーナルボリュームの容量が不足していることを検知した場合、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てるように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てることを特徴とする請求項１に記載の計算機システム。
【請求項９】
１つ以上のホスト計算機と、前記ホスト計算機が使用したデータを格納するストレージ装置と、前記ストレージ装置によるデータの格納を管理する管理計算機と、を備え、それらがネットワークにより接続され、
前記ホスト計算機は、自身が使用するデータを格納する１つ以上のデータボリュームを有し、
前記ストレージ装置は、ディスク装置と処理部とを有し、
前記ディスク装置は、
前記データボリュームの特定時点のデータイメージであるスナップショットを格納するスナップショットボリュームと、
前記データボリュームに対応して割り当てられ、前記ホスト計算機が前記データボリュームに書き込むデータを受信し、ジャーナルとして格納するジャーナルボリュームと、を備え、
前記ジャーナルボリュームは、論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、
前記処理部は、
前記スナップショットに対して前記ジャーナルを適用することでデータのリカバリを行う、計算機システムにおけるデータ管理方法であって、
前記管理計算機は、前記ジャーナルの格納先である前記ジャーナルボリュームを監視し、前記ジャーナルボリュームへの前記ジャーナルの格納が並行して複数行われている場合、その前記ジャーナルの格納先のいずれかがそれまで格納してきた前記グループとは異なる前記グループに移行したことを検知したとき、その他の前記ジャーナルの格納先も当該移行後のグループに移行するように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示にしたがって、前記ジャーナルの格納先の前記グループ間での移行を行う
ことを特徴とするデータ管理方法。
【請求項１０】
前記ストレージ装置の処理部は、前記管理計算機からの指示により、前記ホスト計算機のデータボリュームに対して前記ジャーナルボリュームを割り当てる際に、同一の前記グループ内のジャーナルボリュームを連続的に使用するように設定することを特徴とする請求項９に記載のデータ管理方法。
【請求項１１】
前記グループは、属するすべての前記ジャーナルボリュームの属性を一括変更可能なジャーナルボリュームの集合であることを特徴とする請求項９に記載のデータ管理方法。
【請求項１２】
前記属性は、前記グループ全体の通電状態を示す属性であることを特徴とする請求項１１に記載のデータ管理方法。
【請求項１３】
前記管理計算機は、所定時間後に前記ジャーナルの格納先のいずれかが前記グループ間で移行することを、その移行元の前記ジャーナルボリュームの空き容量が所定量よりも少なくなったことから判断し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その移行先の前記ジャーナルボリュームが属する前記グループが通常稼動状態になるように電源を管理することを特徴とする請求項１２に記載のデータ管理方法。
【請求項１４】
前記管理計算機は、前記データボリュームに割り当てられた前記ジャーナルボリュームが１つもない前記グループに関して、電源をＯＦＦする、あるいは、稼動状態が省電力状態になるように電源を管理するように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記グループに関して、電源をＯＦＦする、あるいは、稼動状態が省電力状態になるように電源を管理することを特徴とする請求項１３に記載のデータ管理方法。
【請求項１５】
前記管理計算機は、いずれかの前記ジャーナルの格納先が前記グループ間で移行した場合、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行するように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行することを特徴とする請求項９に記載のデータ管理方法。
【請求項１６】
前記管理計算機は、前記ホスト計算機のいずれかの前記データボリュームに割り当てられた前記ジャーナルボリュームの容量が不足していることを検知した場合、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てるように前記ストレージ装置に指示し、
前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てることを特徴とする請求項９に記載のデータ管理方法。
【請求項１７】
自身が使用するデータを格納する１つ以上のデータボリュームを有する１つ以上のホスト計算機と、前記データボリュームの特定時点のデータイメージであるスナップショットをスナップショットボリュームに格納し、前記ホスト計算機が前記データボリュームに書き込むデータを受信してジャーナルとしてジャーナルボリュームに格納し、そのジャーナルボリュームは論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、前記スナップショットに対して前記ジャーナルを適用することでデータのリカバリを行うストレージ装置と、ネットワークによって接続され、前記ストレージ装置によるデータの格納を管理する管理計算機であって、
前記ジャーナルの格納先である前記ストレージ装置のジャーナルボリュームを監視し、そのジャーナルボリュームへのジャーナルの格納が並行して複数行われている場合、そのジャーナルの格納先のいずれかがそれまで格納してきたグループとは異なるグループに移行したことを検知したとき、その他のジャーナルの格納先も当該移行後のグループに移行するように前記ストレージ装置に指示する処理部を有する
ことを特徴とする管理計算機。
【請求項１８】
前記処理部は、前記ホスト計算機のデータボリュームに対して前記ストレージ装置のジャーナルボリュームを割り当てる際に、同一のグループ内のジャーナルボリュームを連続的に使用するように前記ストレージ装置に指示することを特徴とする請求項１７に記載の管理計算機。
【請求項１９】
前記グループは、属するすべての前記ジャーナルボリュームの属性を一括変更可能なジャーナルボリュームの集合であることを特徴とする請求項１７に記載の管理計算機。
【請求項２０】
前記属性は、前記グループ全体の通電状態を示す属性であることを特徴とする請求項１９に記載の管理計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに関し、特に、計算機システムの構成と当該構成におけるバックアップ（データ）管理方法に関する。
【背景技術】
【０００２】
一般に、情報システムでは、定期的にバックアップを取得することで、ストレージ（記憶装置）システムの障害、コンピュータウィルスによるデータ破壊、ユーザによる誤操作などによってデータが喪失した場合に、喪失したデータをリカバリできるようにしている。
【０００３】
このバックアップ及びリカバリ技術の一つとして、ジャーナリング（更新履歴の取得）を用いたバックアップ及びリカバリ技術が提案されている（たとえば、特許文献１参照）。この特許文献１には、一つ以上のデータボリューム（データの記憶領域）で構成される論理的なグループ(以下、「ジャーナルグループ」と呼ぶ。)の特定時点のスナップショット（フルバックアップ、あるいは、差分バックアップなどの論理的なイメージ）を取得し、それ以下の前記データボリュームへの書き込みデータをジャーナル(「Afterジャーナル」と呼ばれる。)として前記ジャーナルグループに関連付けられたジャーナルボリュームに格納することと、取得したスナップショットに対して書き込まれた順序どおりに一連のAfterジャーナルを適用することで、特定の時点のデータをリカバリすることとが開示されている。これは一般にＣＤＰ（Continuous Data Protection)と呼ばれる技術の一例である。
【０００４】
また、特許文献１には、上記Afterジャーナル適用によってリカバリしたデータが既に破壊されている場合に、Afterジャーナル適用を取り消す方法も提案されている。この特許文献１には、Afterジャーナル適用によって上書きされる箇所のデータを前記ジャーナルボリュームへ退避させておき、Afterジャーナル適用を取り消す場合、Afterジャーナル適用後のスナップショットに前記退避させたデータを元の箇所へ適用する(退避したデータを書き戻す)ことで、短時間でAfterジャーナル適用以前のスナップショットへリカバリすることが開示されている。なお、この退避させたデータを「Beforeジャーナル」と呼ぶ。
【０００５】
特許文献２では、ホスト計算機からのデータ書き込み時に、AfterジャーナルとBeforeジャーナルを同時に取得する技術も開示されている。これにより、運用ボリュームにBeforeジャーナルを適用することで、過去のデータをリカバリすることができる。なお、Afterジャーナル、Beforeジャーナル及び当該ジャーナルの管理用のメタデータをまとめて、単に「ジャーナル」と呼ぶ。また、リカバリ時にジャーナルの適用対象となるスナップショットを「基底スナップショット」と呼ぶ。
【０００６】
また、ストレージシステムを構成するディスク装置の寿命を延長し、ディスクアレイの消費電力を低減する技術についても提案されている（たとえば、特許文献３を参照）。この特許文献３には、管理計算機が、特定の論理ボリュームを構成するディスク装置の電源をＯＮ／ＯＦＦするようディスクアレイに指示するディスク制御指示プログラムを備え、ストレージシステムは、ホストからディスク装置への電源のＯＮ／ＯＦＦ指示を受信するディスク電源制御指示受信プログラムと、コンピュータから指定された論理ユニットに対応するディスク装置の電源をＯＮ／ＯＦＦするディスク電源制御回路とを備えることで、管理計算機がディスク装置の電源ＯＮ/ＯＦＦを管理できる技術が開示されている。
【特許文献１】米国特許出願公開第２００５／００１５４１６号明細書
【特許文献２】特開２００４−２５２６８６号公報
【特許文献３】特開２００５−１５７７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１及び２によれば、新たに作成したジャーナルの格納先はジャーナルの作成時刻とは無関係に決定される。たとえば、特許文献１においては、直前に作成、格納したジャーナルの末端の次のアドレスを、新たに作成したジャーナルの格納先先頭アドレスとする。この格納先先頭アドレスの決定には、新たに作成したジャーナルがいつ作成されたかについては一切関係しない。また、特許文献２においては、ジャーナル格納先の決定方法が開示されていない。
【０００８】
このように、ジャーナル格納先をジャーナル作成時刻と無関係に決定してしまうと、複数のジャーナルグループが存在する計算機システムにおいて、各ジャーナルグループで作成されたジャーナルの格納先を時間帯毎に局所化できない。従って、特定の論理記憶領域の集合毎に、あるいは特定の物理記憶領域の集合毎に属性（通電状態など）を管理する機能を、特定時間帯に作成されたジャーナルの管理に適用することができない。
【０００９】
この課題を、図２５に示す例で具体的に説明する。本例のストレージシステムには、複数のデータボリュームから構成されるジャーナルグループＡとジャーナルグループＢがある。また、当該ストレージシステム内には、複数のディスクから構成されパリティを付加する単位であるパリティグループ１とパリティグループ２があり、それぞれのパリティグループから複数の論理ボリュームが作成されている。これらの論理ボリュームのうち、ＪＮＬ（ジャーナル）ボリュームA-1及びＪＮＬボリュームA-2はジャーナルグループＡで作成されたジャーナルを格納するように関連付けられており、ＪＮＬボリュームB-1及びＪＮＬボリュームB-2はジャーナルグループＢで作成されたジャーナルを格納するように関連付けられている。
【００１０】
この構成において、計算機からの書き込みに応じて作成したジャーナルの格納先を、その作成時刻とは無関係に決定してしまうと、たとえば、ある日の0:00〜12:00の時間帯においてジャーナルグループＡはＪＮＬボリュームA-1へ、ジャーナルグループBはＪＮＬボリュームB-2へジャーナルを格納し、12:00〜24:00の時間帯においてジャーナルグループＡはＪＮＬボリュームA-2へ、ジャーナルグループＢはＪＮＬボリュームB-1へジャーナルを格納する場合が発生してしまう。この結果、単一のパリティグループに異なる時間帯のジャーナルが格納される。このため、パリティグループの属性を管理する機能を、特定の時間帯に作成されたジャーナルの管理に適用できない。つまり、たとえば、各パリティグループは常にジャーナルを新規に格納する可能性があるため、上記特許文献３で開示されているように、パリティグループを構成するディスクの電源を落とす技術が適用できない。
【００１１】
そこで、本発明は、前記問題点に鑑みてなされたものであり、特定の論理記憶領域の集合毎に、あるいは特定の物理記憶領域の集合毎に属性を管理する機能を、特定の時間帯に作成されたジャーナルの管理に適用できるように、複数ジャーナルグループに跨って特定時点のジャーナルの格納先を局所化することを目的とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するために、本発明は、１つ以上のホスト計算機と、ホスト計算機が使用したデータを格納するストレージ装置と、ストレージ装置によるデータの格納を管理する管理計算機とを備えた計算機システムである。
ホスト計算機は、自身が使用するデータを格納する１つ以上のデータボリュームを有している。
ストレージ装置は、ディスク装置と処理部とを有し、ディスク装置は、データボリュームの特定時点のデータイメージであるスナップショットを格納するスナップショットボリュームと、データボリュームに対応して割り当てられ、ホスト計算機がデータボリュームに書き込むデータを受信し、ジャーナルとして格納するジャーナルボリュームと、を備え、ジャーナルボリュームは、論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、処理部は、スナップショットに対してジャーナルを適用することでデータのリカバリを行う。
管理計算機は、ジャーナルの格納先であるジャーナルボリュームを監視し、ジャーナルボリュームへのジャーナルの格納が並行して複数行われている場合、そのジャーナルの格納先のいずれかがそれまで格納してきたグループとは異なるグループに移行したことを検知したとき、その他のジャーナルの格納先も当該移行後のグループに移行するようにストレージ装置に指示する。
そして、ストレージ装置の処理部は、管理計算機からの指示にしたがって、ジャーナルの格納先のグループ間での移行を行う。
【発明の効果】
【００１３】
本発明によれば、複数ジャーナルグループに跨って特定時点のジャーナルの格納先を特定の論理記憶領域の集合または物理記憶領域の集合に局所化することができる。これにより、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定の時間帯に作成されたジャーナルの管理に適用することができるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の計算機システム及び管理計算機とストレージ装置並びにバックアップ管理方法の実施形態について、図面を参照しながら説明する。なお、これらのシステム、装置及び方法は、たとえば、金融機関のＡＴＭ（Automatic Teller Machine）に関するデータの管理や、組織における人員のメールの送受信データの管理などに用いられるものである。
【００１５】
また、以下の各実施形態により、本発明が限定されるものではない。
さらに、以下では、論理記憶領域の集合または物理記憶領域の集合のことを「パーティション」と呼ぶ。さらに、以下、「パーティションがジャーナルを格納する」とは、当該パーティションに属するいずれかの記憶領域がジャーナルを格納することを意味する。
【００１６】
（第１実施形態）
（１）第１実施形態のシステム構成
図１は、本実施形態の計算機システムの構成を示すブロック図である。本システムでは、ストレージ装置１０００とホスト計算機１１００はデータネットワーク１３００を介して互いに接続される。本実施形態では、データネットワーク１３００はストレージエリアネットワーク（ＳＡＮ）とするが、ＩＰネットワークであっても、あるいはそれら以外のデータ通信用ネットワークであってもよい。
【００１７】
ストレージ装置１０００、ホスト計算機１１００及び管理計算機１２００は、管理ネットワーク１４００を介して互いに接続される。本実施形態では、管理ネットワーク１４００はＩＰネットワークとするが、ストレージエリアネットワークであっても、あるいはそれら以外のデータ通信用ネットワークであってもよい。また、データネットワーク１３００と管理ネットワーク１４００が同一ネットワークであってもよいし、ホスト計算機１１００と管理計算機１２００が同一計算機であってもかまわない。
なお、説明の都合上、図１では、ストレージ装置１０００を１台、ホスト計算機１１００を１台、管理計算機１２００を１台としたが、本発明ではそれら以上の台数を設置してもよい。
【００１８】
ストレージ装置１０００は、データを格納するディスク装置１０１０、ストレージ装置１０００内の制御を行うディスクコントローラ１０２０（処理部）で構成されている。
ディスク装置１０１０は、一つ以上のディスク１０１１とディスク電源制御回路１０１４を備えている。ディスク１０１１は各種データを格納する記憶媒体である。各ディスク１０１１は、ディスク電源制御回路１０１４によって、他のディスクとは独立に電源のＯＮ/ＯＦＦが制御される。つまり、ディスク電源制御回路１０１４には、各ディスク１０１１に対応するレジスタが設けられており、レジスタをＯＮ／ＯＦＦすることでそのレジスタに対応するディスク１０１１の電源をＯＮ／ＯＦＦすることができる。
【００１９】
ディスク１０１１はＲＡＩＤ（Redundant Array Inexpensive Disks）構成となるようにアレイ状に配置される。このＲＡＩＤを構成しているディスク１０１１の集合をパリティグループ１０１３と呼び、このパリティグループ１０１３から一つ以上の論理ボリューム１０１２が設定される。これらの構成情報は、後述するディスクコントローラ１０２０のマイクロプログラム１０２８に従い動作するＣＰＵ（Central Processing Unit）１０２３（処理部）によって、管理情報群１０２９で管理される。
【００２０】
論理ボリューム１０１２は、ホスト計算機１１００が利用するデータを格納するデータボリュームとして利用することができる。このデータボリュームに対して前記した特許文献１などに開示されているＣＤＰを適用する場合は、保護したいデータが格納されている複数のデータボリュームをジャーナルグループとして管理する。
【００２１】
また、論理ボリューム１０１２は、前記ジャーナルグループに含まれるデータボリュームへの書込みに応じて作成されるジャーナルを格納するジャーナルボリュームとして利用することもできる。このジャーナルボリュームを特定のジャーナルグループと関連付けることにより、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３が、当該ジャーナルグループのジャーナルを、関連付けられたジャーナルボリュームへ格納するようになる。なお、ジャーナルボリュームは単一のジャーナルグループに複数個関連付けることができる。
【００２２】
さらに、論理ボリューム１０１２は、ある時点におけるデータボリュームの複製イメージ(スナップショット)を格納するスナップショットボリュームとして利用することもできる。特定のジャーナルグループに格納された全データボリュームの特定時点のスナップショットを取得するスナップショットボリュームの集合をＳＳＶＯＬグループと呼ぶ。この特定のジャーナルグループとＳＳＶＯＬグループの関連付けにより、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３が、当該ＳＳＶＯＬグループへ特定時点のスナップショットを取得するようになる。なお、スナップショットボリュームに格納されるスナップショットは、システムに対する要求や実装等に応じて、データボリュームのフルバックアップであっても、差分バックアップのような論理的なイメージであってもよい。
【００２３】
これらのＣＤＰに関連する構成情報も、後述するディスクコントローラ１０２０のマイクロプログラム１０２８に従い動作するＣＰＵ１０２３によって、管理情報群１０２９で管理される。なお、本発明はジャーナルグループが複数あるときに最も効果を発揮するが、その数は１つ以上であればいくつでもかまわない。
ディスクコントローラ１０２０は、管理Ｉ／Ｆ（インタフェース）１０２１、データＩ／Ｆ（インタフェース）１０２２、ディスクＩ／Ｆ１０２５、メインメモリ１０２６、ＣＰＵ１０２３、タイマ１０２４を備えている。
【００２４】
メインメモリ１０２６は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などから構成され、管理情報群１０２９、マイクロプログラム１０２８が記憶されている。ＣＰＵ１０２３はメインメモリ１０２６に記憶されたマイクロプログラム１０２８を実行する。マイクロプログラム１０２８は、スナップショットの取得、ジャーナルの生成、ジャーナルを用いたリカバリ、ジャーナルの開放など従来技術で述べたジャーナリングを用いたバックアップ及びリカバリの各種機能をＣＰＵ１０２３に制御させる。
【００２５】
具体的なジャーナルの作成、開放の動作の概要は次のようになる。
ホスト計算機１１００からデータボリューム（論理ボリューム１０１２）への書き込み要求は、ＣＰＵ１０２３により処理され、前記データボリュームに反映される。このとき、ＣＰＵ１０２３は、書き込むデータをAfterジャーナル、上書きされる箇所のデータをBeforeジャーナルとし、送信されてきた順序に従って順序番号を割り振るなど、適切な管理用メタデータを付与してジャーナルを作成する。そして、ＣＰＵ１０２３は、当該ジャーナルを、データボリュームが属するジャーナルグループに関連付けられたジャーナルボリュームに格納する。
【００２６】
なお、このジャーナルの格納先は、次のように決まる。一つ目のジャーナルの格納先は、後述するジャーナルボリュームの利用順序に従い最初のジャーナルボリュームの先頭が格納先となる。それ以降のジャーナルの格納先は、直前に格納されたジャーナルの末端の次のアドレスとなる。なお、当該格納先にジャーナルが格納しきれない場合は、ジャーナルボリュームの利用順序に従い、次のジャーナルボリュームの先頭から格納する。なお、利用順序の最後となるジャーナルボリュームにジャーナルが格納しきれない場合は、最古のジャーナルから古い順に必要な分だけ開放し、そこへ格納することとなる。前記メタデータや順序番号については、後にジャーナルの構成と併せて説明する。また、別の実施形態として、ホスト計算機１１００からの書き込み要求の処理の際、ＣＰＵ１０２３はAfterジャーナルとBeforeジャーナルのどちらか一方のみを持つジャーナルを作成する構成にしてもよい。
【００２７】
また、具体的なスナップショットの取得に関する動作の概要は、次のようになる。
マイクロプログラム１０２８に従い動作するＣＰＵ１０２３は、管理情報群１０２９に含まれる後述するジャーナルグループテーブル１０２９３（図４参照）の順序カウンタ５００２を監視し、後述するスナップショット取得タイミング５００７に至ったときに関連付けられたＳＳＶＯＬグループにスナップショットを取得する。この際、関連付けられた複数のＳＳＶＯＬグループのうちどのＳＳＶＯＬグループに格納されるかは、後述するＳＳＶＯＬグループ管理テーブル１０２９６（図７参照）の次利用フラグ８００４がＴＲＵＥとなっているものになる。
【００２８】
また、具体的なリカバリ動作の概要はジャーナルの構成とともに後述する。
さらに、マイクロプログラム１０２８は、管理計算機１２００やホスト計算機１１００からの要求に応じディスク装置１０１０に対するデータの入出力を処理する機能、ストレージ装置１０００内の制御情報の設定や提供などを行う機能をＣＰＵ１０２３に制御させる。前記ＣＰＵ１０２３は、マイクロプログラム１０２８に従い、管理情報群１０２９の情報を参照または更新しながらこれらの機能を制御する。
管理情報群１０２９の構成については後述する。
【００２９】
タイマ１０２４は、現在時刻を提供する機能を持つ一般的なタイマである。タイマ１０２４は、ジャーナル作成時やスナップショット取得時に、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３によって参照される。
データＩ／Ｆ１０２２は、データネットワーク１３００に対するインタフェースであって、一つ以上の通信用ポートを持つ。ディスクコントローラ１０２０はこのポートを介してホスト計算機１１００、他のストレージ装置（図１では不図示）とデータや制御命令の送受信を行う。管理Ｉ／Ｆ１０２１は、管理ネットワーク１４００とのインタフェースであって、ホスト計算機１１００、管理計算機１２００とデータや制御命令の送受信を行う。ディスクＩ／Ｆ（インタフェース）１０２５は、ディスク装置１０１０に対するインタフェースであってデータや制御命令の送受信を行う。
【００３０】
ホスト計算機１１００は、キーボードやマウスなどの入力装置１１４０、ＣＰＵ１１３０、ＣＲＴ（Cathode Ray Tube）などの表示装置１１２０、メモリ１１６０、データＩ／Ｆ１１１０、管理Ｉ／Ｆ１１５０などを備えている。
データＩ／Ｆ１１１０はデータネットワーク１３００に対するインタフェースであって、一つ以上の通信ポートを持つ。このポートを介してホスト計算機１１００は、ストレージ装置１０００とデータや制御命令の送受信を行う。管理Ｉ／Ｆ１１５０は管理ネットワーク１４００に対するインタフェースであって、システム管理のために管理計算機１２００及びストレージ装置１０００とデータや制御命令の送受信を行う。
【００３１】
メモリ１１６０には、アプリケーション１１６１、リカバリマネージャ１１６２が記憶されている。ＣＰＵ１１３０はメモリ１１６０に記憶された各種プログラムを実行することで各機能を実現する。
アプリケーション１１６１は、論理ボリューム１０１２をデータ格納用のデータボリュームとして利用するＤＢＭＳ（DataBase Management System）やファイルシステムといったアプリケーションである。
【００３２】
リカバリマネージャ１１６２に従って動作するＣＰＵ１１３０は、ストレージ装置１０００に対するスナップショット取得の要求や特定時点のデータのリカバリ要求を行う。リカバリマネージャ１１６２は、管理者や他のプログラムがこれらの機能を実行できるように、インタフェースとしてコマンドラインインタフェース(以下、「ＣＬＩ」と呼ぶ。)などを提供する。
【００３３】
管理計算機１２００は、キーボードやマウスなどの入力装置１２４０、ＣＰＵ１２３０、ＣＲＴなどの表示装置１２２０、メモリ１２５０、管理Ｉ／Ｆ１２１０などを備えている。
管理Ｉ／Ｆ１２１０は、システム管理のためにホスト計算機１１００及びストレージ装置１０００とデータや制御命令を送受信する。
【００３４】
メモリ１２５０には、設定プログラム１２５１、ジャーナル監視プログラム１２５２及びグループ管理情報群１２５３が記憶されている。ＣＰＵ１２３０はメモリ１２５０に記憶されたこれらの各種プログラムを実行することで各機能を実現する。
設定プログラム１２５１は、ＣＰＵ１２３０に、グループ管理情報群１２５３あるいは管理情報群１０２９の値を設定させるためのプログラムである。なお、管理情報群１０２９の値を設定する場合、ＣＰＵ１２３０はストレージマイクロプログラム１０２８に従って動作するＣＰＵ１０２３と通信を行う。
【００３５】
ジャーナル監視プログラム１２５２は、グループ管理情報群１２５３の情報を参照・更新しながら、各ジャーナルグループがどのジャーナルボリュームへジャーナルを格納しているかを監視する。そして、ジャーナル格納先を連動させるべき各ジャーナルグループのジャーナル格納先を制御する。
なお、上記２つのプログラム（１２５１と１２５２）は、管理者や他のプログラムがこのプログラムを実行できるように、インタフェースとしてＣＬＩなどを提供する。
グループ管理情報群１２５３については後述する。
【００３６】
図２から図８は管理情報群１０２９を構成するテーブルの説明図である（適宜図１参照）。
図２は、パリティグループの構成情報を管理するパリティグループ構成テーブル１０２９１の一例である。Ｄｉｓｋ＿ＩＤ３００１はストレージ装置１０００におけるディスク１０１１の識別子が格納される。つまり、ディスク１０１１がストレージ装置１０００に装着されたときに、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３がこの値を設定する。容量３００２はＤｉｓｋ＿ＩＤ３００１で示されるディスク１０１１の容量である。ディスク１０１１がストレージ装置１０００に装着されたときに、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３が容量をディスク１０１１から読み取り、その値を設定する。
【００３７】
ＰＧ＿ＩＤ３００３はＤｉｓｋ＿ＩＤ３００１で示されるディスク１０１１が構成するパリティグループの識別子を格納する。この値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いてパリティグループを作成することで、設定される。たとえば、管理者は「createPG  -Disk＿ID  Disk＿1,Disk＿2,Disk＿3,Disk＿4  -level  5」といったコマンドを発行できる。これは、ストレージ装置１０００に対して「Disk＿１、Disk＿２、Disk＿３、Disk＿４からＲＡＩＤ５のパリティグループを構成せよ」という命令になる。この命令を受けたＣＰＵ１０２３が、マイクロプログラム１０２８に従ってパリティグループを構成し、ストレージ装置１０００内で一意に識別可能な識別子を割り振り、パリティグループを構成するディスクのＰＧ＿ＩＤ３００３に当該識別子を設定する。
【００３８】
なお、この設定を行うために、設定プログラム１２５１に従い動作するＣＰＵ１２３０は、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３と通信を行う。この通信は、図示されていない設定プログラム１２５１の設定情報に接続先として登録されていたＩＰアドレスを用いて確立される。以下、前記ＣＰＵ１２３０が各種プログラムを実行する上で、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３と通信を行う場合は、上記と同様に通信を確立してから行うものとし、説明を省略する。
【００３９】
図３は、論理ボリュームの構成情報を管理する論理ボリュームテーブル１０２９２の一例である。ＬＵ＿ＩＤ４００１は論理ボリューム１０１２の識別子を格納する。容量４００２はＬＵ＿ＩＤ４００１によって示される論理ボリューム１０１２の容量を格納する。ＰＧ＿ＩＤ４００３はＬＵ＿ＩＤ４００１によって示される論理ボリューム１０１２が属しているパリティグループの識別子を格納する。
【００４０】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて論理ボリューム１０１２を作成することで、設定される。たとえば、管理者は「createLU  -PG＿ID  PG＿1  size  20G」といったコマンドを発行できる。これは、ストレージ装置１０００に対する「ＰＧ＿１から２０ＧＢのサイズを持つＬＵを作成せよ」という命令になる。この命令を受けたＣＰＵ１０２３が、マイクロプログラム１０２８に従って論理ボリューム１０１２を作成し、ストレージ装置１０００内で一意に識別可能な識別子を当該論理ボリューム１０１２に割り振り、この識別子をＬＵ＿ＩＤ４００１に設定し、２０Ｇを容量４００２に設定し、ＰＧ＿１をＰＧ＿ＩＤ４００３に設定する。
【００４１】
図４は、ジャーナルグループの情報を管理するジャーナルグループテーブル１０２９３の一例である。
ＪＮＬＧ＿ＩＤ５００１は、ジャーナルグループの識別子を格納する。この値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いてジャーナルグループを作成することで、設定される。たとえば、管理者は「CreateJG  -jgid  JNLG＿1」のようなコマンドを発行できる。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１を作成せよ」という命令になる。このＪＮＬＧ＿１という値がＪＮＬＧ＿ＩＤ５００１に格納される。
【００４２】
順序カウンタ５００２は、ジャーナル作成及びスナップショット取得の順序を管理するための番号を格納する。本値の初期値は０だが、ホスト計算機１１００からの書込み要求に対してジャーナルを生成するたびに、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３によって１だけ加算される。そして、この加算後の値が後述するジャーナル（図９参照）の順序番号１０００５にコピーされる。また、当該番号は、スナップショットを取得するたびに、前記ＣＰＵ１０２３によって、後述するＳＳＶＯＬグループ管理テーブル１０２９６（図７参照）の順序番号８００５にコピーされる。
【００４３】
この処理により、各ジャーナル作成タイミングとスナップショット取得タイミングの順序関係が記録される。リカバリの際は、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３は、この順序関係を用いて基底スナップショットに適用すべきジャーナルとその適用順序を特定する。具体的には、特定のスナップショットにAfterジャーナルを適用してリカバリを行う場合、前記ＣＰＵ１０２３は、当該スナップショットより大きく且つ指定されたリカバリポイントを持つジャーナル以下の順序番号を持つジャーナルを、順序番号に従って適用する。逆に、特定のスナップショットにBeforeジャーナルを適用する場合、前記ＣＰＵ１０２３は、当該スナップショット以下且つ指定されたリカバリポイントを持つジャーナルより大きな順序番号を持つジャーナルを、順序番号の大きい順に適用する。
【００４４】
最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３は、最新ジャーナルが格納されているジャーナルボリュームの識別子を格納する。最新ＪＮＬ格納アドレス５００４は、当該ジャーナルボリューム内で当該最新ジャーナルが格納されたアドレスを格納する。
【００４５】
最古ＪＮＬ格納ＶＯＬ＿ＩＤ５００５は、当該最古ジャーナルが格納されているジャーナルボリュームの識別子を格納する。最古ＪＮＬ格納アドレス５００６は、当該ジャーナルボリューム内で当該最古ジャーナルが格納されたアドレスを格納する。
【００４６】
最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３、最新ＪＮＬ格納アドレス５００４、最古ＪＮＬ格納ＶＯＬ＿ＩＤ５００５、最古ＪＮＬ格納アドレス５００６は、新規ジャーナルの格納先ボリューム及びアドレスの特定、削除するジャーナルの特定のために、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３によって参照及び更新される。
【００４７】
スナップショット取得タイミング５００７は、スナップショットを取得するタイミングを格納する。本実施形態では、直前のスナップショットが取得されてから蓄積されたジャーナルの数としている。この値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて設定する。たとえば、管理者は「setSSInterval  3000  -jgid  JNLG＿1」のようなコマンドを発行できる。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１では、ジャーナルが３０００件蓄積される毎にスナップショットを取得せよ」という命令になる。この３０００という値が、ＪＮＬＧ＿１に対応するスナップショット取得タイミング５００７に格納される。
【００４８】
図５は、ジャーナルグループを構成するデータボリューム情報を管理するデータボリュームテーブル１０２９４の一例である。ＪＮＬＧ＿ＩＤ６００１は、ジャーナルグループの識別子を格納する。データボリュームＩＤ６００２は、当該ジャーナルグループに属する論理ボリューム１０１２（データボリューム）の識別子を格納する。
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ジャーナルグループにデータボリュームを追加することで、設定される。たとえば、管理者は「addDataVOL  -jgid  JNLG＿1  -datavolid  LU＿11」というコマンドを発行できる。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１にデータボリュームＬＵ＿１１を追加せよ」という命令になる。このＪＮＬＧ＿１がＪＮＬＧ＿ＩＤ６００１に格納され、ＬＵ＿１１がデータボリュームＩＤ６００２に格納される。なお、単一のジャーナルグループに複数のデータボリュームを設定する場合は、上記のコマンドを複数回実行する。
【００４９】
図６は、ＳＳＶＯＬグループを構成するスナップショットの情報を管理するスナップショットボリューム管理テーブル１０２９５の一例である。ＳＳＶＯＬグループＩＤ７００１は、管理対象となるＳＳＶＯＬグループの識別子を格納する。スナップショットボリュームＩＤ７００２は、管理対象ＳＳＶＯＬグループに属する論理ボリューム１０１２(スナップショットボリューム)の識別子を格納する。対応データボリュームＩＤ７００３は、スナップショット取得対象のデータボリュームの識別子を格納する。
【００５０】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ＳＳＶＯＬグループにスナップショットボリュームとなる論理ボリューム１０１２を追加することで設定される。
たとえば、管理者は「addSSVOL  -ssvolgid  SSG＿1  -ssvolid  LU＿21  -source  LU＿11」というコマンドを発行する。これは、ストレージ装置１０００に対する「ＳＳＶＯＬグループＳＳＧ＿１に、データボリュームＬＵ＿１１のスナップショットを格納するためのスナップショットボリュームＬＵ＿２１を追加せよ」という命令になる。このＳＳＧ＿１がＳＶＯＬグループＩＤ７００１に格納され、ＬＵ＿２１がスナップショットボリュームＩＤ７００２に格納され、ＬＵ＿１１が対応データボリュームＩＤ７００３に格納される。
【００５１】
図７は、ジャーナルグループとＳＳＶＯＬグループの関連付けを管理するＳＳＶＯＬグループ管理テーブル１０２９６の一例である。ＪＮＬＧ＿ＩＤ８００１は、管理対象となるジャーナルグループの識別子を格納する。ＳＳＶＯＬグループＩＤ８００２は、ＪＮＬＧ＿ＩＤ８００１で示されるジャーナルグループのスナップショットを格納するＳＳＶＯＬグループの識別子を格納する。使用順序８００３は、ＳＳＶＯＬグループＩＤ８００２で示されるＳＳＶＯＬグループがスナップショットを格納する順番を格納する。
【００５２】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ジャーナルグループにＳＳＶＯＬグループを関連付けることにより設定される。
たとえば、管理者は「addSSVOLG  -jgid  JNLG＿1  -ssvolgid  SSG＿1」のようなコマンドを発行する。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１にＳＳＶＯＬグループＳＳＧ＿１を関連付けよ」という命令になる。このＪＮＬＧ＿１がＪＮＬグループＩＤ８００１に格納され、ＳＳＧ＿１の値がＳＳＶＯＬグループＩＤ８００２に格納される。また、使用順序８００３には、この命令により設定されたＳＳＶＯＬグループＩＤ８００２の値と同一の値を持つレコードの使用順序８００３の最大値に１を加えたものが格納される。このとき、同一の値を持つレコードが無い場合は、１が格納される。なお、上記コマンドのＳＳＶＯＬグループの識別子を変更させて複数回実行することで、複数のＳＳＶＯＬグループをジャーナルグループに関連付けることができる。
【００５３】
次利用フラグ８００４は、次にスナップショットを格納するＳＳＶＯＬグループを示すフラグを格納する。順序番号８００５は、ＳＳＶＯＬグループＩＤ８００２で示されるＳＳＶＯＬグループに格納したスナップショットの取得タイミングと、ジャーナル作成タイミングとの順序関係を示す番号を格納する。マイクロプログラム１０２８に従って動作するＣＰＵ１０２３が、次利用フラグ８００４の値が「ＴＲＵＥ」となっているＳＳＶＯＬグループへスナップショットを格納するたびに、順序カウンタ５００２の値を順序番号８００５に設定し、次利用フラグ８００４の値を「ＦＡＬＳＥ」に設定し、次のスナップショットを格納するＳＳＶＯＬグループの次利用フラグ８００４に「ＴＲＵＥ」を設定する。
【００５４】
取得時刻８００６は、スナップショット取得要求がストレージ装置１０００に到着した時刻を保持する。マイクロプログラム１０２８に従って動作するＣＰＵ１０２３が、ディスクコントローラ１０２０のタイマ１０２４から現在時刻を取得し、取得時刻８００６に設定する。なお、別の実施形態として、取得時刻８００６には、スナップショット取得要求内に含まれる要求発行時刻としてもよい。たとえば、メインフレーム環境では、複数のメインフレームホストがタイマを共有しており、スナップショット取得要求を発行する時刻を提供することができるため、これを利用してもよい。
【００５５】
図８は、ジャーナルグループで利用されるジャーナルボリュームの情報を管理するジャーナルボリュームテーブル１０２９７の一例である。ＪＮＬＧ＿ＩＤ９００１は、ジャーナルグループの識別子を格納する。ＪＮＬボリュームＩＤ９００２は、ＪＮＬＧ＿ＩＤ９００１で示されるジャーナルグループで利用されるジャーナルボリュームとなる論理ボリューム１０１２の識別子を格納する。使用順序９００３は、ＪＮＬボリュームＩＤ９００２で示されるジャーナルボリュームがジャーナルを格納するために使用される順番を格納する。
【００５６】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ジャーナルグループにジャーナルボリュームを追加することにより設定される。
たとえば、管理者は「addJVOL  -jgid  JNLG＿1  -jvolid  LU＿31」のようなコマンドを発行する。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１にジャーナルボリュームＬＵ＿３１を追加せよ」という命令になる。このＪＮＬＧ＿１がＪＮＬＧ＿ＩＤ９００１に格納され、ＬＵ＿３１がＪＮＬボリュームＩＤ９００２に格納される。また、使用順序９００３には、この命令により設定されたＪＮＬＧ＿ＩＤ９００１の値と同一の値を持つレコードの使用順序９００３の最大値に１を加えたものが格納される。このとき、同一の値を持つレコードが無い場合は、１が格納される。なお、上記コマンドのジャーナルボリュームとなる論理ボリューム１０１２の識別子を変更させて複数回実行することで、複数のジャーナルボリュームをジャーナルグループに追加することができる。
【００５７】
開始時刻９００４は、ＪＮＬボリュームＩＤ９００２で示されるジャーナルボリュームが格納する最古のジャーナルの取得時刻を格納する。終了時刻９００５は、ＪＮＬボリュームＩＤ９００２で示されるジャーナルボリュームが格納する最新のジャーナルの取得時刻を格納する。これらの値は、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３が、ジャーナル格納先を切り替えた際に、切り替え元のジャーナルボリューム内の先頭に格納されている最古のジャーナルの生成時刻１０００４(後述する図９参照)を開始時刻９００４へ設定し、切り替え直前に格納した最新のジャーナルの生成時刻１０００４の値を終了時刻９００５へ設定する。
【００５８】
使用量９００６は、ＪＮＬボリュームＩＤ９００２で示されるジャーナルボリュームが格納するジャーナルの総量を格納する。本値は、ＪＮＬボリュームＩＤ９００２で示されるジャーナルボリュームへジャーナルが格納されるたびに、そのジャーナルのサイズ分だけ加算される。また、ジャーナル格納先の切り替えが発生したときに、ＪＮＬボリュームＩＤ９００２で示されるジャーナルボリュームが新たに格納先となった場合、本値は０に設定される。
【００５９】
図９は、本実施の形態におけるジャーナルの構成の一例を示した図である（適宜他図参照）。
データボリュームＩＤ１０００１はジャーナル適用先となるデータボリュームの識別子を格納する。適用先アドレス１０００２は、データボリュームＩＤ１０００１で示されるデータボリューム内での適用先アドレスを格納する。データ長１０００３は適用するデータの長さ、すなわちAfterジャーナル１０００６及びBeforeジャーナル１０００７の長さを保持する。これらの値は、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３がジャーナルを作成する際に、ホスト計算機１１００の書込み要求に応じて設定する値である。
【００６０】
生成時刻１０００４は、ホスト計算機１１００の書き込み要求がストレージ装置１０００に到着した時刻を保持する。生成時刻１０００４の値は、マイクロプログラム１０２８に従って動作するＣＰＵ１０２３が、ディスクコントローラ１０２０のタイマ１０２４から取得し、設定するものである。なお、別の実施形態として、生成時刻１０００４は書込み要求内に含まれる書込み発行時刻としてもよい。
【００６１】
順序番号１０００５は、スナップショットの取得タイミングとジャーナル作成タイミングとの順序関係を示す番号を格納する。マイクロプログラム１０２８に従って動作するＣＰＵ１０２３が、ジャーナルを作成する時に、順序カウンタ５００２の値に１だけ加算した値を本値に設定する。
Afterジャーナル１０００６はAfterジャーナルのデータを格納する。Beforeジャーナル１０００７はBeforeジャーナルのデータを格納する。
【００６２】
次ジャーナルボリュームＩＤ１０００８と次ジャーナルアドレス１０００９には、当該ジャーナルの次に作成されるジャーナル(以下、「次ジャーナル」と呼ぶ。)の格納場所を識別する情報が格納されている。次ジャーナルボリュームＩＤ１０００８は、次ジャーナルを格納するジャーナルボリュームの識別子を格納する。次ジャーナルアドレス１０００９は、次ジャーナルボリュームＩＤ１０００８で示されるジャーナルボリューム内での次ジャーナルが格納されているアドレスを保持する。この値は、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３が次ジャーナルの格納場所を前述した方法で決定し、設定する。
【００６３】
前ジャーナルボリュームＩＤ１００１０と前ジャーナルアドレス１００１１には、当該ジャーナルの直前に作成されたジャーナル(以下、「前ジャーナル」と呼ぶ。)の格納場所を識別する情報が格納される。前ジャーナルボリュームＩＤ１００１０は、前ジャーナルを格納するジャーナルボリュームの識別子を格納する。前ジャーナルアドレス１００１１は、前ジャーナルボリュームＩＤ１００１０で示されるジャーナルボリューム内での前ジャーナルが格納されているアドレスを格納する。マイクロプログラム１０２８に従い動作するＣＰＵ１０２３が、ジャーナルを作成する際に、最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３（図４参照）と最新ＪＮＬ格納アドレス５００４の値を、前ジャーナルボリュームＩＤ１００１０と前ジャーナルアドレス１００１１の値にコピーする。その後、前記ＣＰＵ１０２３は最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３、最新ＪＮＬ格納アドレス５００４に、当該作成したジャーナルの格納場所を設定する。
【００６４】
図１０から図１２はグループ管理情報群１２５３を構成するテーブル群である（適宜他図参照）。
図１０は、ジャーナル格納先を連動させるジャーナルグループの情報を管理するＪＮＬ格納先連動管理テーブル１２５３１の一例である。
管理ＩＤ１１００１は、ジャーナル格納先を連動させるジャーナルグループ群の管理識別子が格納される。ＪＮＬＧ＿ＩＤ１１００２は、管理ＩＤ１１００１で示されるジャーナル格納先を連動させるジャーナルグループ群に含まれるジャーナルグループの識別子が格納される。ＪＮＬＶＯＬ総サイズ１１００３は、ＪＮＬＧ＿ＩＤ１１００２で示されるジャーナルグループが要求するジャーナルボリュームの容量を格納する。次パーティション電源ＯＮタイミング１１００４（所定量）は、次にジャーナルを格納するパーティションの電源をＯＮにするタイミングを格納する。なお、本実施形態においては、パリティグループをパーティションとして扱っている。また、当該タイミング情報を、現在ジャーナルを格納しているパーティションにジャーナルを格納できる残容量としている。
【００６５】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ジャーナル格納先を連動させたいジャーナルグループを登録することにより設定される。たとえば、管理者は「addJNLG  -jgid  JNLG＿1  -jnlvolsize  30G  -event  100M  -targetID  Group＿1」のようなコマンドを発行する。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１をＧｒｏｕｐ＿１の管理グループに属する他のジャーナルグループと連動させてジャーナル格納先を制御せよ。また、ジャーナルグループＪＮＬＧ＿１で利用するジャーナルボリュームの容量を３０Ｇとせよ」という命令になる。このＧｒｏｕｐ＿１が管理ＩＤ１１００１に格納され、ＪＮＬＧ＿１がＪＮＬＧ＿ＩＤ１１００２に格納され、３０ＧがＪＮＬＶＯＬ総サイズ１１００３へ格納される。また、次パーティション電源ＯＮタイミング１１００４にはデフォルトで１０００（バイト）が格納される。ただし、本値は設定プログラム１２５１が提供するＣＬＩを管理者が用いて、変更することが可能である。
【００６６】
図１１は、ジャーナル格納先を管理するグループ内で使用するパーティションを管理するパーティション管理テーブル１２５３２の一例である。管理ＩＤ１２００１は、ジャーナル格納先を連動させるジャーナルグループ群の識別子を格納する。パーティションＩＤ１２００２には、管理ＩＤ１２００１で示されるジャーナルグループ群で利用されるパーティションの識別子を格納する。
【００６７】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ジャーナル格納先を連動させたいジャーナルグループへ未使用パーティション(パリティグループ)を追加することにより設定される。たとえば、管理者は「addPG  -targeted  Group＿1  -partition＿ID  PG＿01」のようなコマンドを発行する。これは、ストレージ装置１０００に対する「ジャーナル格納先を連動させるジャーナルグループ群Ｇｒｏｕｐ＿１へパリティグループＰＧ＿０１をパーティションとして追加せよ」という命令になる。このＧｒｏｕｐ＿１が管理ＩＤ１２００１に格納され、ＰＧ＿０１がパーティションＩＤ１２００２に格納される。
【００６８】
割当有無１２００３は、パーティションＩＤ１２００２で示されるパーティションに属するジャーナルボリュームが既にジャーナルグループへ割当済みであるか否かを示すフラグを格納する。具体的には、割当済みの場合は「ＴＲＵＥ」が格納され、まだ割り当てられていない場合は「ＦＡＬＳＥ」が格納される。この値は、設定プログラム１２５１に従って動作するＣＰＵ１２３０がジャーナルボリューム割当を行う際に設定する。この動作については後述する。
【００６９】
図１２は、ジャーナル格納先を連動させるジャーナルグループ群の情報を管理する管理グループテーブル１２５３３の一例である。管理ＩＤ１３００１は、ジャーナル格納先を連動させるジャーナルグループ群の管理識別子を格納する。監視周期１３００２は、管理ＩＤ１３００１で示されるジャーナルグループ群に属するジャーナルグループのジャーナル格納先を監視する周期を格納する。
【００７０】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、ジャーナル格納先を監視したい周期を登録することにより設定される。たとえば、管理者は「setMonitorInterval  -interval  10sec  -target  Group＿1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Ｇｒｏｕｐ＿１のジャーナル格納先を１０秒間隔で監視せよ」という命令になる。このＧｒｏｕｐ＿１が管理ＩＤ１３００１に格納され、１０sec（秒）が監視周期１３００２に格納される。
【００７１】
使用中パーティション１３００３は、管理ＩＤ１３００１で示されるジャーナルグループ群に属するジャーナルグループのジャーナル格納先ジャーナルボリュームが属するパーティションのＩＤを格納する。この値は、ジャーナル監視プログラム１２５２に従って動作するＣＰＵ１２３０によって設定される。この動作については後述する。
【００７２】
（２）第１実施形態の動作
次に、本実施形態の動作の説明を行う。
図１３は、設定プログラム１２５１に従って動作するＣＰＵ１２３０がジャーナルボリュームをジャーナルグループへ割り当てる処理の流れである（適宜他図参照）。管理者は、設定プログラム１２５１が提供するＣＬＩを用いて、本処理を起動する。たとえば、管理者は「setJNLVol  Group＿1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Ｇｒｏｕｐ＿１に含まれるジャーナルグループにジャーナルボリュームを割り当てよ」という命令になる。
【００７３】
本処理が起動されると、まず、ＣＰＵ１２３０はマイクロプログラム１０２８に従い動作するＣＰＵ１０２３から管理情報群１０２９を取得する(ステップ１４０１０)。
次に、ＣＰＵ１２３０は、指定されたジャーナルグループ群に割り当てられたパリティグループから未使用のパリティグループを１つ選択する（ステップ１４０２０）。具体的には、パーティション管理テーブル１２５３２から割当有無１２００３が「ＦＡＬＳＥ」であるパリティグループを一つ選択する。
次に、ＣＰＵ１２３０は、指定されたジャーナルグループ群に属する各ジャーナルグループへジャーナルボリュームを割り当てる（ステップ１４０３０）。この割当て方法は任意であるが、各ジャーナルグループに割り当てられるジャーナルボリュームの総容量が、各ジャーナルグループの要求ジャーナルサイズ比率に近い割合になるように割り当てることが望ましい。
【００７４】
次に、ＣＰＵ１２３０は、当該パリティグループに属する論理ボリューム１０１２がジャーナルボリュームとして割当て済みであることを示すように、割当有無１２００３を「ＴＲＵＥ」と設定する（ステップ１４０４０）。
次に、ＣＰＵ１２３０は、各ジャーナルグループに割り当てられたジャーナルボリュームを管理情報群１０２９へ設定する（ステップ１４０５０）。ここでは、ＣＰＵ１２３０は、前記した設定プログラム１２５１が提供するＣＬＩを用いて、ステップ１４０３０において割り当てられたジャーナルボリュームを設定していく。これにより、登録されたジャーナルボリュームの使用順序９００３（図８参照）は、属するパリティグループ毎に連続した値となる。この結果、強制的にジャーナル格納先が切り替えられない限り、同一パリティグループ内のジャーナルボリュームが連続して使用されることが保証される。
【００７５】
次に、ＣＰＵ１２３０は、各ジャーナルグループに割り当てられたジャーナルボリュームの総容量が、要求されたジャーナル容量を満たすかを、ＪＮＬ格納先連動管理テーブル１２５３１などを参照することで確認する(ステップ１４０６０)。満たしている場合（ＹＥＳ）は、本処理を終了する。満たしていない場合（ＮＯ）は、ステップ１４０７０へ処理を進める。
【００７６】
ステップ１４０７０では、ＣＰＵ１２３０は、指定されたジャーナルグループ群に割り当てられたパリティグループに未使用のパリティグループが存在するかを確認する（ステップ１４０７０）。存在する場合（ＹＥＳ）は、ステップ１４０２０へ処理を進め、再びジャーナルボリューム割当て処理を行う。存在しない場合（ＮＯ）は、要求されたジャーナル容量を満たせないため、本処理の実行結果としてエラー（警告）を表示し（ステップ１４０８０）、処理を終了する。
以上がジャーナルボリュームをジャーナルグループへ割り当てる処理の流れである。
【００７７】
図１４は、ジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０が、各ジャーナルグループのジャーナル格納先を監視し、格納先が分散した場合、格納先を局所化するように制御する処理の流れである（適宜他図参照）。管理者は、設定プログラム１２５１が提供するＣＬＩを用いて、本処理を起動する。たとえば、管理者は「runMonitor  Group＿1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Ｇｒｏｕｐ＿１のジャーナル格納先の監視及び制御を開始せよ」という命令になる。
【００７８】
本処理が起動されると、まず、ＣＰＵ１２３０は監視のタイミングに至るまで待機する（ステップ１５０１０）。この監視のタイミングとは、監視周期１３００２に設定されたものである。
次に、ＣＰＵ１２３０は、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３から管理情報群１０２９を取得する（ステップ１５０２０）。
【００７９】
次に、ＣＰＵ１２３０は、現在のジャーナル格納先となっているパリティグループとは異なるパリティグループへジャーナルを格納し始めそうなジャーナルグループの有無を確認する（ステップ１５０３０）。ここでは、現在ジャーナルを格納しているジャーナルボリュームより大きい使用順序をもち、現在ジャーナルを格納しているジャーナルボリュームと同一のパリティグループに属しているジャーナルボリュームの容量４００２の合計と、現在ジャーナルを格納しているジャーナルボリュームの容量４００２から使用量９００６を足し合わせたもとを、次パーティション電源ＯＮタイミング１１００４と比較する。
【００８０】
前者が小さい場合（ステップ１５０３０でＹＥＳ）、すなわち次のパリティグループを利用し始めそうなジャーナルグループがある場合はステップ１５０４０へ進む。大きい場合（ステップ１５０３０でＮＯ）、すなわち次のパリティグループを利用し始めそうなジャーナルグループが無い場合は、ステップ１５０６０へ進む。
【００８１】
ステップ１５０４０では、ＣＰＵ１２３０は、ステップ１５０３０において、次にジャーナルを格納し始めそうなパリティグループを構成するディスクの電源がＯＮになっているかを確認する。この確認は、ディスク電源制御回路１０１４に問い合わせることで行う。問い合わせを受けたディスク電源制御回路１０１４は、前記した電源ＯＮ／ＯＦＦを管理するレジスタの状態情報を返す。この確認の結果、ＯＮになっている場合（ステップ１５０４０でＹＥＳ）は、ステップ１５０６０へ進む。ＯＮになっていない場合（ステップ１５０４０でＮＯ）は、ＣＰＵ１２３０が、ディスク電源制御回路１０１４へ当該パリティグループを構成するディスクの電源をＯＮにするように指示を出す（ステップ１５０５０）。その後、ステップ１５０６０へ進む。
【００８２】
ステップ１５０６０では、ＣＰＵ１２３０は、使用中パーティション１３００３で示される以外のパリティグループへジャーナルを格納するジャーナルグループの有無を確認する。無い場合（ＮＯ）は、ステップ１５０１０へ進む。ある場合（ＹＥＳ）は、ステップ１５０７０へ進む。
ステップ１５０７０では、ＣＰＵ１２３０は、使用中パーティション１３００３にジャーナルを格納しているジャーナルグループのジャーナル格納先を、次のパリティグループの先頭ジャーナルボリュームに切り替えて、ジャーナル格納先パリティグループを統一するように、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３へ要求する（ステップ１５０７０）。なお、ジャーナル格納先を次のパリティグループに切り替えるとは、ジャーナルボリュームを使用順序９００３に従って、現在ジャーナルを格納しているパリティグループ以外のパリティグループに属している最初のジャーナルボリュームを検索し、そのジャーナルボリュームへ強制的に切り替えることを意味する。つまり、使用中パーティション１３００３に属するジャーナルボリュームを使用せずにスキップしていくことになる。なお、切り替え要求を受け付けたＣＰＵ１０２３の動作は後述する。
【００８３】
次に、ＣＰＵ１２３０は、切り替え後の状況を反映するように、使用中パーティション（パリティグループ）１３００３のフラグを次のパリティグループを示すように更新する（ステップ１５０８０）。
次に、ＣＰＵ１２３０は、切り替え元のパリティグループを構成するディスクの電源をＯＦＦするように、ディスク電源制御回路１０１４へ指示を出す（ステップ１５０９０）。その後、ステップ１５０１０へ進む。
以上がジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０の処理の流れである。
【００８４】
なお、本実施形態では、単一のジャーナルグループのジャーナル格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのジャーナル格納先を連動させていたが、そのほかに、使用中パーティション１３００３で示されるパリティグループを所定量使うまでは切り替えないなど条件を設定することもできる。この場合は、ステップ１５０６０でＹＥＳの直後に、前記のような条件を判定するステップを追加すればよい。これにより、より効率的なジャーナルボリュームの利用が可能となる。
【００８５】
また、本実施形態では、単一のジャーナルグループのジャーナル格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのジャーナル格納先を連動させると、ジャーナルグループによっては要求されたジャーナルボリューム容量を満たせないことがある。これを回避するために、別の実施形態として、動的にジャーナルグループを割り当てることも可能である。
【００８６】
これを行うには、図１４を用いて説明した処理のステップ１５０３０とステップ１５０４０の間に処理を新たに追加すればよい。この追加部分を図１５に示す。
ステップ１５０３０において、現在のジャーナル格納先となっているパリティグループとは異なるパリティグループへジャーナルを格納し始めそうなジャーナルグループがある場合（ＹＥＳ）、ＣＰＵ１２３０は、監視対象ジャーナルグループ群の中で、現時点でジャーナルボリュームの要求容量を使用していないものが存在するかを確認する（ステップ１６０１０）。この確認は、使用量９００６の総和とＪＮＬＶＯＬ総サイズ１１００３を比較すればよい。存在しない場合（ＮＯ）は、ステップ１５０４０へ進む。存在する場合（ＹＥＳ）は、ステップ１６０２０へ進む。
【００８７】
ステップ１６０２０では、ＣＰＵ１２３０は、監視対象ジャーナルグループ群に割り当てられているパリティグループで未使用のものが残っているかを確認する。残っていない場合（ＮＯ）は、ジャーナルボリュームの要求容量を満たすことができないため、管理者へ通知し（ステップ１６０３０）、ステップ１５０４０へ進む。なお、この場合は、ジャーナルを格納できる容量が、管理者が要求していた容量以下の状態で処理が進められるため、通知を受けた管理者は早急に未使用パリティグループを監視対象ジャーナルグループ群へ割り当てる必要がある。
【００８８】
一方、未使用パリティグループが一つ以上残っている場合（ステップ１６０２０でＹＥＳ）は、ステップ１６０４０へ進む。
ステップ１６０４０では、ＣＰＵ１２３０は、未使用パリティグループを一つ選択する。これは、前記したステップ１４０２０の処理と同等である。
【００８９】
次に、ＣＰＵ１２３０は、指定されたジャーナルグループ群に属する各ジャーナルグループへジャーナルボリュームを割り当てる（ステップ１６０５０）。これは、前記したステップ１４０３０の処理と同等である。
次に、ＣＰＵ１２３０は、当該パリティグループに属する論理ボリューム１０１２がジャーナルボリュームとして割当て済みであることを示すように、割当有無１２００３を「ＴＲＵＥ」と設定する（ステップ１６０６０）。これは、前記したステップ１４０４０の処理と同等である。
【００９０】
次に、ＣＰＵ１２３０は、各ジャーナルグループに割り当てられたジャーナルボリュームを管理情報群１０２９へ設定する（ステップ１６０７０）。これは、前記したステップ１４０５０の処理と同等である。本ステップ終了後、ステップ１５０４０へ進み、図１４を用いて説明した処理へ戻る。
以上のように、運用中に監視対象ジャーナルボリューム群に要求されたジャーナルボリューム容量を満たせないものが発生した場合に、動的にジャーナルボリュームを割り当てることで、要求されたジャーナルボリューム容量を満たすことができる。
【００９１】
図１４に戻って、次に、ステップ１５０７０において、ジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０からジャーナル格納先ジャーナルボリュームの切り替え指示を受けたマイクロプログラム１０２８に従い動作するＣＰＵ１０２３の処理の流れを、図１６を用いて説明する。
【００９２】
ジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０からジャーナル格納先ジャーナルボリュームの切り替え指示を受けつけると、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３は、最古のジャーナルが切り替え元パリティグループに格納されているかを確認する（ステップ１７０１０）。具体的には、最古ＪＮＬ格納ＶＯＬ＿ＩＤ５００５で示されるジャーナルボリュームが、最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３で示されるジャーナルボリュームと同じパリティグループに属しているかを確認する。切り替え元パリティグループに最古のジャーナルが格納されていない場合（ＮＯ）は、ステップ１７０３０へ進む。格納されている場合（ＹＥＳ）は、ステップ１７０２０へ進む。
【００９３】
ステップ１７０２０では、ＣＰＵ１０２３は切り替え先ジャーナルボリュームの先頭アドレスに格納されたジャーナルをジャーナルグループの最古ジャーナルとするようにジャーナルグループの管理情報を更新する。具体的には、切り替え先のジャーナルボリューム(論理ボリューム１０１２)の識別子を最古ＪＮＬ格納ＶＯＬ＿ＩＤ５００５に設定し、最古ＪＮＬ格納アドレス５００６を０に設定すればよい。
【００９４】
次に、ＣＰＵ１０２３は、データ長０のジャーナルを作成し、切り替え先として指定されたジャーナルボリュームの先頭アドレスに格納する（ステップ１７０３０）。この際、切り替え先ジャーナルボリュームの先頭アドレスに最古のジャーナルが格納されている場合は、作成したジャーナルを格納するのに十分な容量を確保できるように、最古のジャーナルから古い順にジャーナルを削除していく。この削除処理は従来技術で実現されている。
【００９５】
次に、ＣＰＵ１０２３は、ステップ１７０１０で作成したジャーナルが最新ジャーナルの次のジャーナルとなるようにジャーナルのメタデータを更新する（ステップ１７０４０）。具体的には、最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３及び最新ＪＮＬ格納アドレス５００４により指し示される場所に格納されているジャーナルの次ジャーナルボリュームＩＤ１０００８及び次ジャーナルアドレス１０００９に、作成したジャーナルの格納箇所を指し示すように値を設定する。また、作成したジャーナルの前ジャーナルボリュームＩＤ１００１０に最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３の値を設定し、前ジャーナルアドレス１００１１に最新ＪＮＬ格納アドレス５００４の値を設定する。
【００９６】
次に、ＣＰＵ１０２３は、作成したジャーナルが最新ジャーナルとなるようにジャーナルグループの管理情報を更新する（ステップ１７０５０）。具体的には、最新ＪＮＬ格納ＶＯＬ＿ＩＤ５００３及び最新ＪＮＬ格納アドレス５００４へ作成したジャーナルの格納箇所の値を設定する。
以上が、ジャーナル格納先ジャーナルボリュームの切り替え指示を受けたマイクロプログラム１０２８に従い動作するＣＰＵ１０２３の処理の流れである。
【００９７】
以上が第１実施形態の説明である。当該第１実施形態によれば、監視対象ジャーナルグループ群に属するジャーナルグループのジャーナル格納先を連動させることができるため、複数ジャーナルグループに跨って、特定時点のジャーナルの格納先を局所化することができる。また、この結果、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定時間帯のジャーナル管理に適用できる。具体的には、本実施形態では、ジャーナルを格納する可能性の無いパリティグループを構成するディスクの電源をＯＦＦする例を示した。
【００９８】
（第２実施形態）
次に、第２実施形態について説明する。
ここでは、特開２００５-０１１２７７号公報において開示されている、複数のストレージ装置を統合したシステムを構築するための外部接続技術を用いた計算機システムにおける本発明の実施形態を示す。
本実施形態の計算機システムでは、第１のストレージ装置が外部接続機能を用いて第２のストレージ装置の論理ボリューム１０１２を仮想化し、当該仮想ボリュームを、ジャーナルボリュームとして第１のストレージ装置内で用いる。この場合でも、従来技術のようにジャーナル格納場所をジャーナル作成時刻と無関係に決定すると、前記と同様の課題が発生する。本発明は、このような構成においても適用可能であることを、本実施形態を説明することで例証する。
【００９９】
（１）第２実施形態のシステム構成
図１７は、本実施形態のストレージ装置の構成を示すブロック図である。本構成の大部分は第１実施形態の構成と同等であるため、図１７には差分が明確になる部分のみを記載している。以下、その差分のみを説明する。
本実施形態では、新たに外部ストレージ装置１５００が追加されている。外部ストレージ装置１５００は、データネットワーク１３００を介して、ストレージ装置１０００、ホスト計算機１１００と接続されている。また、外部ストレージ装置１５００は、管理ネットワーク１４００を介してストレージ装置１０００、ホスト計算機１１００、管理計算機１２００と接続されている。本実施形態では、説明の簡単化のため外部ストレージ装置１５００を１台しか示していないが、２台以上でもかまわない。
【０１００】
外部ストレージ装置１５００は、ディスクコントローラ１０２０とディスク装置１０１０と装置電源制御回路１５３０を備えている。
ディスク装置１０１０の基本的な構成は、図１の場合と同等であるため、説明を省略する。ただし、ディスク装置１０１０にディスク電源制御回路１０１４を搭載しなくてもよい。外部ストレージ装置１５００の論理ボリューム１０１２は、他のストレージ装置の外部接続機能により外部ボリュームとして利用される。
【０１０１】
装置電源制御回路１５３０は、ジャーナル監視プログラム１２５２（図１参照）から管理ネットワーク１４００を介して送信された電源制御要求を受け取ることにより、省電力モード制御を行う。省電力モード制御とは、ストレージ装置１５００を通常稼動状態から省電力モードへ切り替える制御、及び省電力モードから通常稼動状態への切り替える制御のことである。省電力モードとは、装置電源制御回路１５３０がジャーナル監視プログラム１２５２から管理ネットワーク１４００を介して送信された電源制御要求を受け付け、省電力制御を行うために必要なコンポーネント（構成要素）以外のコンポーネントに対する通電を停止することである。
【０１０２】
本実施形態のストレージ装置１０００には仮想ボリューム１０４０が追加されている。また、図には示さないが、ディスクコントローラ１０２０内のマイクロプログラム１０２８（図１参照）には、外部接続技術を用いて外部接続を行う機能が追加されている。
仮想ボリューム１０４０は、マイクロプログラム１０２８が外部ストレージ装置１５００の論理ボリューム１０１２を外部接続機能により仮想化したボリュームである。この仮想ボリューム１０４０は、前記外部接続機能により、ストレージ装置１０００内の論理ボリューム１０１２と同じように、データボリュームやジャーナルボリュームやスナップショットボリュームとして利用することが可能である。また、仮想ボリューム１０４０への書き込みは、前記外部接続機能により外部ストレージ装置１５００内の対応付けられた論理ボリューム１０１２へ書き込むことで実現される。
【０１０３】
図１８は、仮想ボリューム１０４０と外部ストレージ装置１５００の論理ボリューム１０１２との対応関係を管理する仮想ボリューム管理テーブルの一例である（適宜他図参照）。仮想ボリューム管理テーブルは、ストレージ装置１０００のディスクコントローラ１０２０のメインメモリ１０２６に格納される。
ＶＯＬ＿ＩＤ１９００１は、管理対象となる仮想ボリュームの識別子を格納する。容量１９００２は、ＶＯＬ＿ＩＤ１９００１で示される仮想ボリュームの容量を格納する。外部筐体ＩＤ１９００３は、ＶＯＬ＿ＩＤ１９００１で示される仮想ボリュームのデータを格納する論理ボリューム１０１２が属する外部ストレージ装置１５００の識別子である。パス１９００４は、外部接続機能により外部ストレージ装置１５００の論理ボリューム１０１２を仮想化するストレージ装置１０００から、仮想化対象の論理ボリューム１０１２へアクセスするためのパス情報を格納する。これは例えば、ＷＷＮ（World Wide Name）などのストレージ装置のデータＩ／Ｆ１０２２のポートの識別子、ＳＣＳＩ(Small  Computer  System  Interface)のターゲットＩＤ及びＬＵＮ(Logical  Unit  Number)の組み合わせなどになる。
【０１０４】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、外部接続機能の設定を行うことで設定される。たとえば、管理者は「createVVOL  -target  P1＿T1＿L1  -targetArrayID  DF700＿1」というコマンドを発行する。これは、ストレージ装置１０００に対する「ストレージ装置ＤＦ７００＿１に格納された、ポートＩＤが１、ターゲットＩＤが１、ＬＵＮが１でアクセス可能な論理ボリューム１０１２の仮想ボリュームを作成せよ」という命令となる。このポートＩＤが１、ターゲットＩＤが１、ＬＵＮが１という情報の組み合わせがパス１９００４に格納され、ＤＦ７００＿１が外部筐体ＩＤ１９００３に格納される。また、仮想化を行った際に、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３は、当該論理ボリューム１０１２の容量を調べ、その値を容量１９００２へ設定する。また、作成された仮想ボリュームに対しストレージ装置１０００内で一意になる識別子をＣＰＵ１０２３が割り振り、その値をＶＯＬ＿ＩＤ１９００１へ格納する。
【０１０５】
なお、本実施形態では外部ストレージ装置１５００をパーティションとして扱う。このため、図１０と図１１において、パーティションの識別子が格納されるフィールドには外部ストレージを識別する識別子（外部筐体ＩＤ１９００３と同等）が格納される。
また、本実施形態においては、図２のパリティグループ構成テーブル１０２９１及び図３の論理ボリュームテーブル１０２９２は必要ない。
【０１０６】
（２）第２実施形態の動作
次に、本実施形態の動作の説明を行う。
本実施形態の動作の大部分は第１実施形態の動作と同じであるため、以下は差分のみを説明する。
本実施形態では外部ストレージ装置１５００をパーティションとして扱う。図１３から図１５の処理を本実施形態に適用するためには、それぞれの処理の説明において、パリティグループとしていたものを外部ストレージ装置と読みかえればよい。ただし、ステップ１５０４０、ステップ１５０５０、ステップ１５０９０において、電源のＯＮ／ＯＦＦ制御要求及び状態取得要求については、要求先を外部筐体１９００３で示された外部筐体の装置電源制御回路１５３０とする必要がある。
【０１０７】
以上が第２実施形態の説明である。当該第２実施形態によれば、ストレージ装置１０００をパーティションとして扱っている場合であっても、監視対象ジャーナルグループ群に属するジャーナルグループのジャーナル格納先ストレージ装置を連動させることができるため、複数ジャーナルグループに跨って、特定時点のジャーナルの格納先を局所化することができる。また、この結果、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定時間帯のジャーナル管理に適用できる。具体的には、本実施形態では、ジャーナルを格納する可能性の無い外部ストレージ装置１５００を省電力モードにする例を示した。
【０１０８】
（第３実施形態）
次に、第３実施形態について説明する。本実施形態は、第１実施形態のように複数のジャーナルグループのジャーナル格納先を連動させることに加え、スナップショット格納先も連動させる例である。フルバックアップや差分バックアップなどのように取得時点でバックアップデータが完全揃うタイプのバックアップをスナップショットとして用いている場合には、本発明を適用可能である。本実施形態では、これを例証する。
【０１０９】
（１）第３実施形態のシステム構成
図１９は、本実施形態のストレージ装置の構成を示すブロック図である。本構成の大部分は第１実施形態の構成と同等であるため、図１９には差分が明確になる部分のみを記載している。以下、その差分のみを説明する。
【０１１０】
本実施形態では、管理計算機１２００のメモリ１２５０にスナップショット監視プログラム１２５４が追加されている。スナップショット監視プログラム１２５４は、グループ管理情報群１２５３の情報を参照・更新しながら、各ジャーナルグループがどのＳＳＶＯＬグループにスナップショットを格納しているかを監視する。そして、スナップショット格納先を連動させるべき各ジャーナルグループのスナップショット格納先を制御する。
【０１１１】
図２０は、ジャーナル格納先及びスナップショット格納先を連動させるジャーナルグループ群の情報を管理する管理グループテーブルの一例である。これは図１２を用いて説明した第１実施形態の管理グループテーブル１２５３３（図１２参照）とほぼ同等であるので、以下、差分のみを説明する。
【０１１２】
本実施形態では、使用中パーティション(スナップショット)１３００４が追加されている。使用中パーティション(スナップショット)１３００４は、管理ＩＤ１３００１で示されるジャーナルグループ群に属するジャーナルグループのスナップショット格納先ＳＳＶＯＬグループが属するパーティションのＩＤを格納する。この値は、スナップショット監視プログラム１２５４に従って動作するＣＰＵ１２３０によって設定される。この動作については後述する。
【０１１３】
図２１は、スナップショット格納先を連動させるジャーナルグループの情報を管理するスナップショット格納先連動管理テーブルの一例である。スナップショット格納先連動管理テーブルは、グループ管理情報群１２５３に格納される。ＪＮＬＧ＿ＩＤ２２００１は、ジャーナルグループの識別子が格納される。世代数２２００２は、ＪＮＬＧ＿ＩＤ１１００１で示されるジャーナルグループが要求するスナップショットの世代数を格納する。
【０１１４】
これらの値は、設定プログラム１２５１が提供するＣＬＩを管理者が用いて、スナップショット格納先を連動させたいジャーナルグループに世代数登録することで設定される。たとえば、管理者は「setSSNum  -jgid  JNLG＿1  4」のようなコマンドを発行する。これは、ストレージ装置１０００に対する「ジャーナルグループＪＮＬＧ＿１のスナップショット世代数を４世代とせよ」という命令になる。このＪＮＬＧ＿１がＪＮＬＧ＿ＩＤ２２００１に格納され、４が世代数２２００２へ格納される。
【０１１５】
（２）第３実施形態の動作
次に、本実施形態の動作の説明を行う。
本実施形態の動作の大部分は第１実施形態の動作と同じであるため、以下は差分のみを説明する。
図２２は、設定プログラム１２５１に従って動作するＣＰＵ１２３０がＳＳＶＯＬグループをジャーナルグループへ割り当てる処理の流れである。管理者は、設定プログラム１２５１が提供するＣＬＩを用いて、本処理を起動する。たとえば、管理者は「setSSVolGroup  Group＿1」のようなコマンドを発行する。これは、「スナップショット格納先を連動させるジャーナルグループ群Ｇｒｏｕｐ＿１に含まれるジャーナルグループにＳＳＶＯＬグループを割り当てよ」という命令になる。
【０１１６】
本処理が起動されると、まず、ＣＰＵ１２３０はマイクロプログラム１０２８に従い動作するＣＰＵ１０２３から管理情報群１０２９を取得する(ステップ２３０１０)。
次に、ＣＰＵ１２３０は、指定されたジャーナルグループ群に割り当てられたパリティグループから未使用のパリティグループを選択する（ステップ２３０２０）。具体的には、パーティション管理テーブル１２５３２から割当有無１２００３が「ＦＡＬＳＥ」であるパリティグループを一つ選択する。
【０１１７】
次に、ＣＰＵ１２３０は、指定されたジャーナルグループ群に属する各ジャーナルグループへＳＳＶＯＬグループを割り当てる（ステップ２３０３０）。ここでは、まず、各ジャーナルグループに属する全データボリュームに対して一つずつスナップショットボリュームを割り当てる。この割り当てられたスナップショットボリュームの集合が管理対象のジャーナルグループへ割り当てられたＳＳＶＯＬグループとなる。ジャーナルグループ間での割当て方法は任意であるが、各ジャーナルグループに割り当てられるＳＳＶＯＬグループ数が、各ジャーナルグループの要求世代数２２００２の比率に近い割合になるように割り当てることが望ましい。なお、監視対象となっているジャーナルグループに属するデータボリューム数の最小値よりもパリティグループ内の未割り当て論理ボリューム１０１２数が小さい場合は、未割り当てボリュームはそのまま残して次のステップへ進む。
【０１１８】
次に、ＣＰＵ１２３０は、当該パリティグループに属する論理ボリューム１０１２がスナップショットボリュームとして割当て済みであることを示すように、割当有無１２００３を「ＴＲＵＥ」と設定する（ステップ２３０４０）。
次に、ＣＰＵ１２３０は、各ジャーナルグループに割り当てられたＳＳＶＯＬグループを管理情報群１０２９へ設定する（ステップ２３０５０）。ここでは、ＣＰＵ１２３０は、前記した設定プログラム１２５１が提供するＣＬＩを用いて、ステップ１４０３０において割り当てられたジャーナルボリュームを設定していく。これにより、登録されたＳＳＶＯＬグループの使用順序８００３は、ＳＳＶＯＬグループが属するパリティグループ毎に連続した値となる。この結果、強制的にスナップショット格納先が切り替えられない限り、同一パリティグループ内のＳＳＶＯＬグループが連続して使用されることが保証される。
【０１１９】
次に、ＣＰＵ１２３０は、各ジャーナルグループに割り当てられたＳＳＶＯＬグループの総世代数が、要求されたジャーナル容量を満たすかを確認する(ステップ２３０６０)。満たしている場合（ＹＥＳ）は、本処理を終了する。満たしていない場合（ＮＯ）は、ステップ２３０７０へ処理を進める。
【０１２０】
ステップ２３０７０では、ＣＰＵ１２３０は、指定されたジャーナルグループ群に割り当てられたパリティグループに未使用のパリティグループが存在するかを確認する。存在する場合（ＹＥＳ）は、ステップ２３０２０へ処理を進め、再びジャーナルボリューム割当て処理を行う。存在しない場合（ＮＯ）は、要求されたジャーナル容量を満たせないため、本処理の実行結果としてエラー（警告）を表示し（ステップ２３０８０）、処理を終了する。
以上がＳＳＶＯＬグループをジャーナルグループへ割り当てる処理の流れである。
【０１２１】
図２３は、スナップショット監視プログラム１２５４に従い動作するＣＰＵ１２３０が、各ジャーナルグループのスナップショット格納先を監視し、格納先が分散した場合、格納先を局所化するように制御する処理の流れである。管理者は、設定プログラム１２５１が提供するＣＬＩを用いて、本処理を起動する。たとえば、管理者は「runSSMonitor  Group＿1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Ｇｒｏｕｐ＿１のスナップショット格納先の監視及び制御を開始せよ」という命令になる。
【０１２２】
本処理が起動されると、まず、ＣＰＵ１２３０は監視のタイミングに至るまで待機する（ステップ２４０１０）。この監視のタイミングとは、監視周期１３００２に設定されたものである。
次に、ＣＰＵ１２３０は、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３から管理情報群１０２９を取得する（ステップ２４０２０）。
【０１２３】
次に、ＣＰＵ１２３０は、現在のＳＳＶＯＬ格納先となっているパリティグループとは異なるパリティグループへスナップショットを格納し始めそうなジャーナルグループの有無を確認する（ステップ２４０３０）。ここでは、各ジャーナルグループに関して、最新のスナップショットを格納しているＳＳＶＯＬグループが、割り当てられたＳＳＶＯＬグループで、かつ使用中パーティション（スナップショット）１３００４内で最後の使用順序８００３となっているジャーナルグループが存在するかを確認する。存在する場合（ＹＥＳ）はステップ２４０４０へ進む。存在しない場合（ＮＯ）は、ステップ２４０６０へ進む。
【０１２４】
ステップ２４０４０では、ＣＰＵ１２３０は、次に利用するＳＳＶＯＬグループが属しているパリティグループを構成するディスクの電源がＯＮになっているかを確認する。この確認では、第１実施形態もの（図１４のステップ１５０４０）と同等の処理を行う。ＯＮになっていない場合（ＮＯ）は、ディスク電源制御回路１０１４へ当該パリティグループを構成するディスクの電源をＯＮにするように指示を出す（ステップ２４０５０）。その後、ステップ２４０６０へ進む。
【０１２５】
ステップ２４０６０では、ＣＰＵ１２３０は、使用中パーティション(スナップショット)１３００４で示される以外のパリティグループへスナップショットを格納するジャーナルグループの有無を確認する。無い場合（ＮＯ）は、ステップ２４０１０へ進む。ある場合（ＹＥＳ）は、ステップ２４０７０へ進む。
【０１２６】
ステップ２４０７０では、ＣＰＵ１２３０は、使用中パーティション（スナップショット）１３００４にジャーナルを格納しているジャーナルグループのスナップショット格納先を、次のパリティグループの先頭ＳＳＶＯＬグループに切り替えるように、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３へ要求する。なお、スナップショット格納先を次のパリティグループに切り替えるとは、スナップショットを使用順序８００３に従って、現在スナップショットを格納しているパリティグループ以外のパリティグループに属している最初のＳＳＶＯＬグループを検索し、そのＳＳＶＯＬグループへ強制的に切り替えることを意味する。つまり、使用中パーティション（スナップショット）１３００４に属するＳＳＶＯＬグループを使用せずにスキップしていくことになる。なお、切り替え要求を受け付けたＣＰＵ１０２３の動作は後述する。
【０１２７】
次に、ＣＰＵ１２３０は、切り替え後の状況を反映するように、使用中パーティション（スナップショット）１３００４のフラグを次のパリティグループを示すように更新する（ステップ２４０８０）。
次に、ＣＰＵ１２３０は、切り替え元のパリティグループを構成するディスクの電源をＯＦＦするように、ディスク電源制御回路１０１４へ指示を出す（ステップ２４０９０）。その後、ステップ２４０１０へ進む。
以上がジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０の処理の流れである。
【０１２８】
なお、本実施形態では、単一のジャーナルグループのスナップショット格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのスナップショット格納先を連動させていたが、そのほか、使用中パーティション（スナップショット）１３００４で示されるパリティグループを所定量使うまでは切り替えないなど条件を設定することもできる。この場合は、ステップ２４０６０でＹＥＳの直後に、前記のような条件を判定するステップを追加すればよい。これにより、より効率的なジャーナルボリュームの利用が可能となる。
【０１２９】
また、本実施形態では、単一のジャーナルグループのジャーナル格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのジャーナル格納先を連動させると、ジャーナルグループによっては要求されたジャーナルボリューム容量を満たせないことがある。これを回避するために、別の実施形態として、動的にジャーナルグループを割り当てることも可能である。これを行うには、図２３を用いて説明した処理のステップ２４０３０とステップ２４０４０の間に動的にＳＳＶＯＬグループを追加する処理を追加すればよい。この処理は、図１５に示した流れのジャーナルボリューム割当てをＳＳＶＯＬグループ割当てに読み替えたものと同等になるため説明を省略する。
【０１３０】
図２３に戻って、次に、ステップ２４０７０において、ジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０からジャーナル格納先ジャーナルボリュームの切り替え指示を受けたマイクロプログラム１０２８に従い動作するＣＰＵ１０２３の処理の流れを、図２４を用いて説明する。
【０１３１】
ジャーナル監視プログラム１２５２に従い動作するＣＰＵ１２３０からジャーナル格納先ジャーナルボリュームの切り替え指示を受けつけると、マイクロプログラム１０２８に従い動作するＣＰＵ１０２３は、指定されたＳＳＶＯＬグループの次利用フラグ８００４を「ＴＲＵＥ」に設定し、その他のＳＳＶＯＬグループの次利用フラグを「ＦＡＬＳＥ」に設定する（ステップ２５０１０）。
以上が、スナップショット格納先の切り替え指示を受けたマイクロプログラム１０２８に従い動作するＣＰＵ１０２３の処理の流れである。
【０１３２】
以上が第３実施形態の説明である。当該第３実施形態によれば、第１実施形態のように複数のジャーナルグループのジャーナル格納先を連動させることに加え、スナップショット格納先も連動させることができる。このため、監視対象ジャーナルグループ群に属するジャーナルグループのスナップショット格納先を連動させることができるため、複数ジャーナルグループに跨って、特定時点のスナップショットの格納先を局所化することができる。また、この結果、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定時間帯のスナップショット管理に適用できる。具体的には、本実施形態では、スナップショットを格納する可能性の無いパリティグループの電源をＯＦＦにする例を示した。
【０１３３】
なお、上記した各実施形態では、属性として通電状態（ディスクの電源のＯＮ／ＯＦＦ）を例にとって説明したが、属性はそれ以外のものであってもよい。その他の属性としては、たとえば、配置場所、コピー状態、アクセス禁止の有無などに関するものがあげられる。
【０１３４】
配置場所に関して属性が存在する状態とは、ジャーナルの配置場所（記憶媒体）として、複数の種類が用意されている状態のことである。そうすれば、たとえば、新しいジャーナルや高速アクセスの可能性が高いジャーナルなどは高性能の記憶媒体に格納しておき、古いジャーナルや高速アクセスの可能性が低いジャーナルなどは低性能の記憶媒体に格納しておく、といった効率的なデータ管理が可能になる。
【０１３５】
コピー状態に関して属性が存在する状態とは、ジャーナルを、（遠隔地のコンピュータ装置などへの）コピーの状態によって、たとえば、コピーを完了したもの、コピー動作の途中のもの、コピー動作を開始すらしていないもの、などの種類に分けることができる状態のことである。そうすれば、コピー状態に関して、ジャーナルをより効率よく管理することができる。
【０１３６】
アクセス禁止の有無に関して属性が存在する状態とは、ジャーナルを、不正な改ざんなどから守るために、少なくともその一部をアクセス（書き換えなど）できないようにすることができる状態のことである。たとえば、ある程度古いジャーナルは書き換える必要がほとんどないため、アクセス禁止にしておけばよい。そうすれば、アクセス禁止のジャーナルに関して、より高いセキュリティを保証することができる。
【０１３７】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではなく、ハードウェアやフローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【０１３８】
【図１】第１実施形態におけるシステム構成を示す図である。
【図２】第１実施形態におけるパリティグループ構成テーブルの一例を示す図である。
【図３】第１実施形態における論理ボリュームテーブルの一例を示す図である。
【図４】第１実施形態におけるジャーナルグループテーブルの一例を示す図である。
【図５】第１実施形態におけるデータボリュームテーブルの一例を示す図である。
【図６】第１実施形態におけるスナップショットボリューム管理テーブルの一例を示す図である。
【図７】第１実施形態におけるＳＳＶＯＬグループ管理テーブルの一例を示す図である。
【図８】第１実施形態におけるジャーナルボリュームテーブルの一例を示す図である。
【図９】第１実施形態におけるジャーナルの構成の一例を示す図である。
【図１０】第１実施形態におけるＪＮＬ格納先連動管理テーブルの一例を示す図である。
【図１１】第１実施形態におけるパーティション管理テーブルの一例を示す図である。
【図１２】第１実施形態における管理グループテーブルの一例を示す図である。
【図１３】第１実施形態におけるジャーナルボリューム割当て処理動作の一例を示す図である。
【図１４】第１実施形態におけるジャーナル格納先監視及び制御処理動作の一例を示す図である。
【図１５】第１実施形態におけるジャーナル格納先監視及び制御処理動作の別の実施形態を示す図である。
【図１６】第１実施形態におけるジャーナル格納先変更処理動作の一例を示す図である。
【図１７】第２実施形態におけるシステム構成を示す図である。
【図１８】第２実施形態における仮想ボリューム管理テーブルの一例を示す図である。
【図１９】第３実施形態におけるシステム構成を示す図である。
【図２０】第３実施形態における管理グループテーブルの一例を示す図である。
【図２１】第３実施形態におけるスナップショット格納先連動管理テーブルの一例を示す図である。
【図２２】第３実施形態におけるスナップショットグループの割当て処理動作の一例を示す図である。
【図２３】第３実施形態におけるスナップショット格納先監視及び制御処理動作の一例を示す図である。
【図２４】第３実施形態におけるスナップショット格納先変更処理動作の一例を示す図である。
【図２５】従来技術の課題を表す図である。
【符号の説明】
【０１３９】
１０００  ストレージ装置
１０１０  ディスク装置
１０２０  ディスクコントローラ
１１００  ホスト計算機
１２００  管理計算機
１３００  データネットワーク
１４００  管理ネットワーク
１５００  外部ストレージ装置
【図１】
2008065525.tif 000003
【図２】
2008065525.tif 000004
【図３】
2008065525.tif 000005
【図４】
2008065525.tif 000006
【図５】
2008065525.tif 000007
【図６】
2008065525.tif 000008
【図７】
2008065525.tif 000009
【図８】
2008065525.tif 000010
【図９】
2008065525.tif 000011
【図１０】
2008065525.tif 000012
【図１１】
2008065525.tif 000013
【図１２】
2008065525.tif 000014
【図１３】
2008065525.tif 000015
【図１４】
2008065525.tif 000016
【図１５】
2008065525.tif 000017
【図１６】
2008065525.tif 000018
【図１７】
2008065525.tif 000019
【図１８】
2008065525.tif 000020
【図１９】
2008065525.tif 000021
【図２０】
2008065525.tif 000022
【図２１】
2008065525.tif 000023
【図２２】
2008065525.tif 000024
【図２３】
2008065525.tif 000025
【図２４】
2008065525.tif 000026
【図２５】
2008065525.tif 000027