JP2008065525A - 計算機システム、データ管理方法及び管理計算機 - Google Patents

計算機システム、データ管理方法及び管理計算機 Download PDF

Info

Publication number
JP2008065525A
JP2008065525A JP2006241482A JP2006241482A JP2008065525A JP 2008065525 A JP2008065525 A JP 2008065525A JP 2006241482 A JP2006241482 A JP 2006241482A JP 2006241482 A JP2006241482 A JP 2006241482A JP 2008065525 A JP2008065525 A JP 2008065525A
Authority
JP
Japan
Prior art keywords
journal
group
volume
data
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006241482A
Other languages
English (en)
Inventor
Wataru Okada
渡 岡田
Masahide Sato
雅英 佐藤
Jun Mizuno
潤 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006241482A priority Critical patent/JP2008065525A/ja
Priority to US11/554,218 priority patent/US7698503B2/en
Publication of JP2008065525A publication Critical patent/JP2008065525A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】計算機システムにおいて、ジャーナルの格納先を局所化すること。
【解決手段】本発明の計算機システムは、1つ以上のホスト計算機1100と、ホスト計算機1100が使用したデータを格納するストレージ装置1000と、ストレージ装置1000によるデータの格納を管理する管理計算機1200と、を備えている。
管理計算機1200は、ホスト計算機1100のジャーナルの格納先であるストレージ装置1000のジャーナルボリュームを監視し、ジャーナルボリュームへのジャーナルの格納が並行して複数行われている場合、そのジャーナルの格納先のいずれかが、ジャーナルボリュームの集合体であるグループの間で移行したことを検知したとき、その他のジャーナルの格納先を同様にグループ間で移行するようにストレージ装置1000に指示する。
【選択図】図1

Description

本発明は、計算機システムに関し、特に、計算機システムの構成と当該構成におけるバックアップ(データ)管理方法に関する。
一般に、情報システムでは、定期的にバックアップを取得することで、ストレージ(記憶装置)システムの障害、コンピュータウィルスによるデータ破壊、ユーザによる誤操作などによってデータが喪失した場合に、喪失したデータをリカバリできるようにしている。
このバックアップ及びリカバリ技術の一つとして、ジャーナリング(更新履歴の取得)を用いたバックアップ及びリカバリ技術が提案されている(たとえば、特許文献1参照)。この特許文献1には、一つ以上のデータボリューム(データの記憶領域)で構成される論理的なグループ(以下、「ジャーナルグループ」と呼ぶ。)の特定時点のスナップショット(フルバックアップ、あるいは、差分バックアップなどの論理的なイメージ)を取得し、それ以下の前記データボリュームへの書き込みデータをジャーナル(「Afterジャーナル」と呼ばれる。)として前記ジャーナルグループに関連付けられたジャーナルボリュームに格納することと、取得したスナップショットに対して書き込まれた順序どおりに一連のAfterジャーナルを適用することで、特定の時点のデータをリカバリすることとが開示されている。これは一般にCDP(Continuous Data Protection)と呼ばれる技術の一例である。
また、特許文献1には、上記Afterジャーナル適用によってリカバリしたデータが既に破壊されている場合に、Afterジャーナル適用を取り消す方法も提案されている。この特許文献1には、Afterジャーナル適用によって上書きされる箇所のデータを前記ジャーナルボリュームへ退避させておき、Afterジャーナル適用を取り消す場合、Afterジャーナル適用後のスナップショットに前記退避させたデータを元の箇所へ適用する(退避したデータを書き戻す)ことで、短時間でAfterジャーナル適用以前のスナップショットへリカバリすることが開示されている。なお、この退避させたデータを「Beforeジャーナル」と呼ぶ。
特許文献2では、ホスト計算機からのデータ書き込み時に、AfterジャーナルとBeforeジャーナルを同時に取得する技術も開示されている。これにより、運用ボリュームにBeforeジャーナルを適用することで、過去のデータをリカバリすることができる。なお、Afterジャーナル、Beforeジャーナル及び当該ジャーナルの管理用のメタデータをまとめて、単に「ジャーナル」と呼ぶ。また、リカバリ時にジャーナルの適用対象となるスナップショットを「基底スナップショット」と呼ぶ。
また、ストレージシステムを構成するディスク装置の寿命を延長し、ディスクアレイの消費電力を低減する技術についても提案されている(たとえば、特許文献3を参照)。この特許文献3には、管理計算機が、特定の論理ボリュームを構成するディスク装置の電源をON/OFFするようディスクアレイに指示するディスク制御指示プログラムを備え、ストレージシステムは、ホストからディスク装置への電源のON/OFF指示を受信するディスク電源制御指示受信プログラムと、コンピュータから指定された論理ユニットに対応するディスク装置の電源をON/OFFするディスク電源制御回路とを備えることで、管理計算機がディスク装置の電源ON/OFFを管理できる技術が開示されている。
米国特許出願公開第2005/0015416号明細書 特開2004−252686号公報 特開2005−157710号公報
上記特許文献1及び2によれば、新たに作成したジャーナルの格納先はジャーナルの作成時刻とは無関係に決定される。たとえば、特許文献1においては、直前に作成、格納したジャーナルの末端の次のアドレスを、新たに作成したジャーナルの格納先先頭アドレスとする。この格納先先頭アドレスの決定には、新たに作成したジャーナルがいつ作成されたかについては一切関係しない。また、特許文献2においては、ジャーナル格納先の決定方法が開示されていない。
このように、ジャーナル格納先をジャーナル作成時刻と無関係に決定してしまうと、複数のジャーナルグループが存在する計算機システムにおいて、各ジャーナルグループで作成されたジャーナルの格納先を時間帯毎に局所化できない。従って、特定の論理記憶領域の集合毎に、あるいは特定の物理記憶領域の集合毎に属性(通電状態など)を管理する機能を、特定時間帯に作成されたジャーナルの管理に適用することができない。
この課題を、図25に示す例で具体的に説明する。本例のストレージシステムには、複数のデータボリュームから構成されるジャーナルグループAとジャーナルグループBがある。また、当該ストレージシステム内には、複数のディスクから構成されパリティを付加する単位であるパリティグループ1とパリティグループ2があり、それぞれのパリティグループから複数の論理ボリュームが作成されている。これらの論理ボリュームのうち、JNL(ジャーナル)ボリュームA-1及びJNLボリュームA-2はジャーナルグループAで作成されたジャーナルを格納するように関連付けられており、JNLボリュームB-1及びJNLボリュームB-2はジャーナルグループBで作成されたジャーナルを格納するように関連付けられている。
この構成において、計算機からの書き込みに応じて作成したジャーナルの格納先を、その作成時刻とは無関係に決定してしまうと、たとえば、ある日の0:00〜12:00の時間帯においてジャーナルグループAはJNLボリュームA-1へ、ジャーナルグループBはJNLボリュームB-2へジャーナルを格納し、12:00〜24:00の時間帯においてジャーナルグループAはJNLボリュームA-2へ、ジャーナルグループBはJNLボリュームB-1へジャーナルを格納する場合が発生してしまう。この結果、単一のパリティグループに異なる時間帯のジャーナルが格納される。このため、パリティグループの属性を管理する機能を、特定の時間帯に作成されたジャーナルの管理に適用できない。つまり、たとえば、各パリティグループは常にジャーナルを新規に格納する可能性があるため、上記特許文献3で開示されているように、パリティグループを構成するディスクの電源を落とす技術が適用できない。
そこで、本発明は、前記問題点に鑑みてなされたものであり、特定の論理記憶領域の集合毎に、あるいは特定の物理記憶領域の集合毎に属性を管理する機能を、特定の時間帯に作成されたジャーナルの管理に適用できるように、複数ジャーナルグループに跨って特定時点のジャーナルの格納先を局所化することを目的とする。
前記課題を解決するために、本発明は、1つ以上のホスト計算機と、ホスト計算機が使用したデータを格納するストレージ装置と、ストレージ装置によるデータの格納を管理する管理計算機とを備えた計算機システムである。
ホスト計算機は、自身が使用するデータを格納する1つ以上のデータボリュームを有している。
ストレージ装置は、ディスク装置と処理部とを有し、ディスク装置は、データボリュームの特定時点のデータイメージであるスナップショットを格納するスナップショットボリュームと、データボリュームに対応して割り当てられ、ホスト計算機がデータボリュームに書き込むデータを受信し、ジャーナルとして格納するジャーナルボリュームと、を備え、ジャーナルボリュームは、論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、処理部は、スナップショットに対してジャーナルを適用することでデータのリカバリを行う。
管理計算機は、ジャーナルの格納先であるジャーナルボリュームを監視し、ジャーナルボリュームへのジャーナルの格納が並行して複数行われている場合、そのジャーナルの格納先のいずれかがそれまで格納してきたグループとは異なるグループに移行したことを検知したとき、その他のジャーナルの格納先も当該移行後のグループに移行するようにストレージ装置に指示する。
そして、ストレージ装置の処理部は、管理計算機からの指示にしたがって、ジャーナルの格納先のグループ間での移行を行う。
本発明によれば、複数ジャーナルグループに跨って特定時点のジャーナルの格納先を特定の論理記憶領域の集合または物理記憶領域の集合に局所化することができる。これにより、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定の時間帯に作成されたジャーナルの管理に適用することができるようになる。
以下、本発明の計算機システム及び管理計算機とストレージ装置並びにバックアップ管理方法の実施形態について、図面を参照しながら説明する。なお、これらのシステム、装置及び方法は、たとえば、金融機関のATM(Automatic Teller Machine)に関するデータの管理や、組織における人員のメールの送受信データの管理などに用いられるものである。
また、以下の各実施形態により、本発明が限定されるものではない。
さらに、以下では、論理記憶領域の集合または物理記憶領域の集合のことを「パーティション」と呼ぶ。さらに、以下、「パーティションがジャーナルを格納する」とは、当該パーティションに属するいずれかの記憶領域がジャーナルを格納することを意味する。
(第1実施形態)
(1)第1実施形態のシステム構成
図1は、本実施形態の計算機システムの構成を示すブロック図である。本システムでは、ストレージ装置1000とホスト計算機1100はデータネットワーク1300を介して互いに接続される。本実施形態では、データネットワーク1300はストレージエリアネットワーク(SAN)とするが、IPネットワークであっても、あるいはそれら以外のデータ通信用ネットワークであってもよい。
ストレージ装置1000、ホスト計算機1100及び管理計算機1200は、管理ネットワーク1400を介して互いに接続される。本実施形態では、管理ネットワーク1400はIPネットワークとするが、ストレージエリアネットワークであっても、あるいはそれら以外のデータ通信用ネットワークであってもよい。また、データネットワーク1300と管理ネットワーク1400が同一ネットワークであってもよいし、ホスト計算機1100と管理計算機1200が同一計算機であってもかまわない。
なお、説明の都合上、図1では、ストレージ装置1000を1台、ホスト計算機1100を1台、管理計算機1200を1台としたが、本発明ではそれら以上の台数を設置してもよい。
ストレージ装置1000は、データを格納するディスク装置1010、ストレージ装置1000内の制御を行うディスクコントローラ1020(処理部)で構成されている。
ディスク装置1010は、一つ以上のディスク1011とディスク電源制御回路1014を備えている。ディスク1011は各種データを格納する記憶媒体である。各ディスク1011は、ディスク電源制御回路1014によって、他のディスクとは独立に電源のON/OFFが制御される。つまり、ディスク電源制御回路1014には、各ディスク1011に対応するレジスタが設けられており、レジスタをON/OFFすることでそのレジスタに対応するディスク1011の電源をON/OFFすることができる。
ディスク1011はRAID(Redundant Array Inexpensive Disks)構成となるようにアレイ状に配置される。このRAIDを構成しているディスク1011の集合をパリティグループ1013と呼び、このパリティグループ1013から一つ以上の論理ボリューム1012が設定される。これらの構成情報は、後述するディスクコントローラ1020のマイクロプログラム1028に従い動作するCPU(Central Processing Unit)1023(処理部)によって、管理情報群1029で管理される。
論理ボリューム1012は、ホスト計算機1100が利用するデータを格納するデータボリュームとして利用することができる。このデータボリュームに対して前記した特許文献1などに開示されているCDPを適用する場合は、保護したいデータが格納されている複数のデータボリュームをジャーナルグループとして管理する。
また、論理ボリューム1012は、前記ジャーナルグループに含まれるデータボリュームへの書込みに応じて作成されるジャーナルを格納するジャーナルボリュームとして利用することもできる。このジャーナルボリュームを特定のジャーナルグループと関連付けることにより、マイクロプログラム1028に従い動作するCPU1023が、当該ジャーナルグループのジャーナルを、関連付けられたジャーナルボリュームへ格納するようになる。なお、ジャーナルボリュームは単一のジャーナルグループに複数個関連付けることができる。
さらに、論理ボリューム1012は、ある時点におけるデータボリュームの複製イメージ(スナップショット)を格納するスナップショットボリュームとして利用することもできる。特定のジャーナルグループに格納された全データボリュームの特定時点のスナップショットを取得するスナップショットボリュームの集合をSSVOLグループと呼ぶ。この特定のジャーナルグループとSSVOLグループの関連付けにより、マイクロプログラム1028に従い動作するCPU1023が、当該SSVOLグループへ特定時点のスナップショットを取得するようになる。なお、スナップショットボリュームに格納されるスナップショットは、システムに対する要求や実装等に応じて、データボリュームのフルバックアップであっても、差分バックアップのような論理的なイメージであってもよい。
これらのCDPに関連する構成情報も、後述するディスクコントローラ1020のマイクロプログラム1028に従い動作するCPU1023によって、管理情報群1029で管理される。なお、本発明はジャーナルグループが複数あるときに最も効果を発揮するが、その数は1つ以上であればいくつでもかまわない。
ディスクコントローラ1020は、管理I/F(インタフェース)1021、データI/F(インタフェース)1022、ディスクI/F1025、メインメモリ1026、CPU1023、タイマ1024を備えている。
メインメモリ1026は、RAM(Random Access Memory)やROM(Read Only Memory)などから構成され、管理情報群1029、マイクロプログラム1028が記憶されている。CPU1023はメインメモリ1026に記憶されたマイクロプログラム1028を実行する。マイクロプログラム1028は、スナップショットの取得、ジャーナルの生成、ジャーナルを用いたリカバリ、ジャーナルの開放など従来技術で述べたジャーナリングを用いたバックアップ及びリカバリの各種機能をCPU1023に制御させる。
具体的なジャーナルの作成、開放の動作の概要は次のようになる。
ホスト計算機1100からデータボリューム(論理ボリューム1012)への書き込み要求は、CPU1023により処理され、前記データボリュームに反映される。このとき、CPU1023は、書き込むデータをAfterジャーナル、上書きされる箇所のデータをBeforeジャーナルとし、送信されてきた順序に従って順序番号を割り振るなど、適切な管理用メタデータを付与してジャーナルを作成する。そして、CPU1023は、当該ジャーナルを、データボリュームが属するジャーナルグループに関連付けられたジャーナルボリュームに格納する。
なお、このジャーナルの格納先は、次のように決まる。一つ目のジャーナルの格納先は、後述するジャーナルボリュームの利用順序に従い最初のジャーナルボリュームの先頭が格納先となる。それ以降のジャーナルの格納先は、直前に格納されたジャーナルの末端の次のアドレスとなる。なお、当該格納先にジャーナルが格納しきれない場合は、ジャーナルボリュームの利用順序に従い、次のジャーナルボリュームの先頭から格納する。なお、利用順序の最後となるジャーナルボリュームにジャーナルが格納しきれない場合は、最古のジャーナルから古い順に必要な分だけ開放し、そこへ格納することとなる。前記メタデータや順序番号については、後にジャーナルの構成と併せて説明する。また、別の実施形態として、ホスト計算機1100からの書き込み要求の処理の際、CPU1023はAfterジャーナルとBeforeジャーナルのどちらか一方のみを持つジャーナルを作成する構成にしてもよい。
また、具体的なスナップショットの取得に関する動作の概要は、次のようになる。
マイクロプログラム1028に従い動作するCPU1023は、管理情報群1029に含まれる後述するジャーナルグループテーブル10293(図4参照)の順序カウンタ5002を監視し、後述するスナップショット取得タイミング5007に至ったときに関連付けられたSSVOLグループにスナップショットを取得する。この際、関連付けられた複数のSSVOLグループのうちどのSSVOLグループに格納されるかは、後述するSSVOLグループ管理テーブル10296(図7参照)の次利用フラグ8004がTRUEとなっているものになる。
また、具体的なリカバリ動作の概要はジャーナルの構成とともに後述する。
さらに、マイクロプログラム1028は、管理計算機1200やホスト計算機1100からの要求に応じディスク装置1010に対するデータの入出力を処理する機能、ストレージ装置1000内の制御情報の設定や提供などを行う機能をCPU1023に制御させる。前記CPU1023は、マイクロプログラム1028に従い、管理情報群1029の情報を参照または更新しながらこれらの機能を制御する。
管理情報群1029の構成については後述する。
タイマ1024は、現在時刻を提供する機能を持つ一般的なタイマである。タイマ1024は、ジャーナル作成時やスナップショット取得時に、マイクロプログラム1028に従い動作するCPU1023によって参照される。
データI/F1022は、データネットワーク1300に対するインタフェースであって、一つ以上の通信用ポートを持つ。ディスクコントローラ1020はこのポートを介してホスト計算機1100、他のストレージ装置(図1では不図示)とデータや制御命令の送受信を行う。管理I/F1021は、管理ネットワーク1400とのインタフェースであって、ホスト計算機1100、管理計算機1200とデータや制御命令の送受信を行う。ディスクI/F(インタフェース)1025は、ディスク装置1010に対するインタフェースであってデータや制御命令の送受信を行う。
ホスト計算機1100は、キーボードやマウスなどの入力装置1140、CPU1130、CRT(Cathode Ray Tube)などの表示装置1120、メモリ1160、データI/F1110、管理I/F1150などを備えている。
データI/F1110はデータネットワーク1300に対するインタフェースであって、一つ以上の通信ポートを持つ。このポートを介してホスト計算機1100は、ストレージ装置1000とデータや制御命令の送受信を行う。管理I/F1150は管理ネットワーク1400に対するインタフェースであって、システム管理のために管理計算機1200及びストレージ装置1000とデータや制御命令の送受信を行う。
メモリ1160には、アプリケーション1161、リカバリマネージャ1162が記憶されている。CPU1130はメモリ1160に記憶された各種プログラムを実行することで各機能を実現する。
アプリケーション1161は、論理ボリューム1012をデータ格納用のデータボリュームとして利用するDBMS(DataBase Management System)やファイルシステムといったアプリケーションである。
リカバリマネージャ1162に従って動作するCPU1130は、ストレージ装置1000に対するスナップショット取得の要求や特定時点のデータのリカバリ要求を行う。リカバリマネージャ1162は、管理者や他のプログラムがこれらの機能を実行できるように、インタフェースとしてコマンドラインインタフェース(以下、「CLI」と呼ぶ。)などを提供する。
管理計算機1200は、キーボードやマウスなどの入力装置1240、CPU1230、CRTなどの表示装置1220、メモリ1250、管理I/F1210などを備えている。
管理I/F1210は、システム管理のためにホスト計算機1100及びストレージ装置1000とデータや制御命令を送受信する。
メモリ1250には、設定プログラム1251、ジャーナル監視プログラム1252及びグループ管理情報群1253が記憶されている。CPU1230はメモリ1250に記憶されたこれらの各種プログラムを実行することで各機能を実現する。
設定プログラム1251は、CPU1230に、グループ管理情報群1253あるいは管理情報群1029の値を設定させるためのプログラムである。なお、管理情報群1029の値を設定する場合、CPU1230はストレージマイクロプログラム1028に従って動作するCPU1023と通信を行う。
ジャーナル監視プログラム1252は、グループ管理情報群1253の情報を参照・更新しながら、各ジャーナルグループがどのジャーナルボリュームへジャーナルを格納しているかを監視する。そして、ジャーナル格納先を連動させるべき各ジャーナルグループのジャーナル格納先を制御する。
なお、上記2つのプログラム(1251と1252)は、管理者や他のプログラムがこのプログラムを実行できるように、インタフェースとしてCLIなどを提供する。
グループ管理情報群1253については後述する。
図2から図8は管理情報群1029を構成するテーブルの説明図である(適宜図1参照)。
図2は、パリティグループの構成情報を管理するパリティグループ構成テーブル10291の一例である。Disk_ID3001はストレージ装置1000におけるディスク1011の識別子が格納される。つまり、ディスク1011がストレージ装置1000に装着されたときに、マイクロプログラム1028に従って動作するCPU1023がこの値を設定する。容量3002はDisk_ID3001で示されるディスク1011の容量である。ディスク1011がストレージ装置1000に装着されたときに、マイクロプログラム1028に従って動作するCPU1023が容量をディスク1011から読み取り、その値を設定する。
PG_ID3003はDisk_ID3001で示されるディスク1011が構成するパリティグループの識別子を格納する。この値は、設定プログラム1251が提供するCLIを管理者が用いてパリティグループを作成することで、設定される。たとえば、管理者は「createPG -Disk_ID Disk_1,Disk_2,Disk_3,Disk_4 -level 5」といったコマンドを発行できる。これは、ストレージ装置1000に対して「Disk_1、Disk_2、Disk_3、Disk_4からRAID5のパリティグループを構成せよ」という命令になる。この命令を受けたCPU1023が、マイクロプログラム1028に従ってパリティグループを構成し、ストレージ装置1000内で一意に識別可能な識別子を割り振り、パリティグループを構成するディスクのPG_ID3003に当該識別子を設定する。
なお、この設定を行うために、設定プログラム1251に従い動作するCPU1230は、マイクロプログラム1028に従い動作するCPU1023と通信を行う。この通信は、図示されていない設定プログラム1251の設定情報に接続先として登録されていたIPアドレスを用いて確立される。以下、前記CPU1230が各種プログラムを実行する上で、マイクロプログラム1028に従い動作するCPU1023と通信を行う場合は、上記と同様に通信を確立してから行うものとし、説明を省略する。
図3は、論理ボリュームの構成情報を管理する論理ボリュームテーブル10292の一例である。LU_ID4001は論理ボリューム1012の識別子を格納する。容量4002はLU_ID4001によって示される論理ボリューム1012の容量を格納する。PG_ID4003はLU_ID4001によって示される論理ボリューム1012が属しているパリティグループの識別子を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて論理ボリューム1012を作成することで、設定される。たとえば、管理者は「createLU -PG_ID PG_1 size 20G」といったコマンドを発行できる。これは、ストレージ装置1000に対する「PG_1から20GBのサイズを持つLUを作成せよ」という命令になる。この命令を受けたCPU1023が、マイクロプログラム1028に従って論理ボリューム1012を作成し、ストレージ装置1000内で一意に識別可能な識別子を当該論理ボリューム1012に割り振り、この識別子をLU_ID4001に設定し、20Gを容量4002に設定し、PG_1をPG_ID4003に設定する。
図4は、ジャーナルグループの情報を管理するジャーナルグループテーブル10293の一例である。
JNLG_ID5001は、ジャーナルグループの識別子を格納する。この値は、設定プログラム1251が提供するCLIを管理者が用いてジャーナルグループを作成することで、設定される。たとえば、管理者は「CreateJG -jgid JNLG_1」のようなコマンドを発行できる。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1を作成せよ」という命令になる。このJNLG_1という値がJNLG_ID5001に格納される。
順序カウンタ5002は、ジャーナル作成及びスナップショット取得の順序を管理するための番号を格納する。本値の初期値は0だが、ホスト計算機1100からの書込み要求に対してジャーナルを生成するたびに、マイクロプログラム1028に従って動作するCPU1023によって1だけ加算される。そして、この加算後の値が後述するジャーナル(図9参照)の順序番号10005にコピーされる。また、当該番号は、スナップショットを取得するたびに、前記CPU1023によって、後述するSSVOLグループ管理テーブル10296(図7参照)の順序番号8005にコピーされる。
この処理により、各ジャーナル作成タイミングとスナップショット取得タイミングの順序関係が記録される。リカバリの際は、マイクロプログラム1028に従って動作するCPU1023は、この順序関係を用いて基底スナップショットに適用すべきジャーナルとその適用順序を特定する。具体的には、特定のスナップショットにAfterジャーナルを適用してリカバリを行う場合、前記CPU1023は、当該スナップショットより大きく且つ指定されたリカバリポイントを持つジャーナル以下の順序番号を持つジャーナルを、順序番号に従って適用する。逆に、特定のスナップショットにBeforeジャーナルを適用する場合、前記CPU1023は、当該スナップショット以下且つ指定されたリカバリポイントを持つジャーナルより大きな順序番号を持つジャーナルを、順序番号の大きい順に適用する。
最新JNL格納VOL_ID5003は、最新ジャーナルが格納されているジャーナルボリュームの識別子を格納する。最新JNL格納アドレス5004は、当該ジャーナルボリューム内で当該最新ジャーナルが格納されたアドレスを格納する。
最古JNL格納VOL_ID5005は、当該最古ジャーナルが格納されているジャーナルボリュームの識別子を格納する。最古JNL格納アドレス5006は、当該ジャーナルボリューム内で当該最古ジャーナルが格納されたアドレスを格納する。
最新JNL格納VOL_ID5003、最新JNL格納アドレス5004、最古JNL格納VOL_ID5005、最古JNL格納アドレス5006は、新規ジャーナルの格納先ボリューム及びアドレスの特定、削除するジャーナルの特定のために、マイクロプログラム1028に従って動作するCPU1023によって参照及び更新される。
スナップショット取得タイミング5007は、スナップショットを取得するタイミングを格納する。本実施形態では、直前のスナップショットが取得されてから蓄積されたジャーナルの数としている。この値は、設定プログラム1251が提供するCLIを管理者が用いて設定する。たとえば、管理者は「setSSInterval 3000 -jgid JNLG_1」のようなコマンドを発行できる。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1では、ジャーナルが3000件蓄積される毎にスナップショットを取得せよ」という命令になる。この3000という値が、JNLG_1に対応するスナップショット取得タイミング5007に格納される。
図5は、ジャーナルグループを構成するデータボリューム情報を管理するデータボリュームテーブル10294の一例である。JNLG_ID6001は、ジャーナルグループの識別子を格納する。データボリュームID6002は、当該ジャーナルグループに属する論理ボリューム1012(データボリューム)の識別子を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、ジャーナルグループにデータボリュームを追加することで、設定される。たとえば、管理者は「addDataVOL -jgid JNLG_1 -datavolid LU_11」というコマンドを発行できる。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1にデータボリュームLU_11を追加せよ」という命令になる。このJNLG_1がJNLG_ID6001に格納され、LU_11がデータボリュームID6002に格納される。なお、単一のジャーナルグループに複数のデータボリュームを設定する場合は、上記のコマンドを複数回実行する。
図6は、SSVOLグループを構成するスナップショットの情報を管理するスナップショットボリューム管理テーブル10295の一例である。SSVOLグループID7001は、管理対象となるSSVOLグループの識別子を格納する。スナップショットボリュームID7002は、管理対象SSVOLグループに属する論理ボリューム1012(スナップショットボリューム)の識別子を格納する。対応データボリュームID7003は、スナップショット取得対象のデータボリュームの識別子を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、SSVOLグループにスナップショットボリュームとなる論理ボリューム1012を追加することで設定される。
たとえば、管理者は「addSSVOL -ssvolgid SSG_1 -ssvolid LU_21 -source LU_11」というコマンドを発行する。これは、ストレージ装置1000に対する「SSVOLグループSSG_1に、データボリュームLU_11のスナップショットを格納するためのスナップショットボリュームLU_21を追加せよ」という命令になる。このSSG_1がSVOLグループID7001に格納され、LU_21がスナップショットボリュームID7002に格納され、LU_11が対応データボリュームID7003に格納される。
図7は、ジャーナルグループとSSVOLグループの関連付けを管理するSSVOLグループ管理テーブル10296の一例である。JNLG_ID8001は、管理対象となるジャーナルグループの識別子を格納する。SSVOLグループID8002は、JNLG_ID8001で示されるジャーナルグループのスナップショットを格納するSSVOLグループの識別子を格納する。使用順序8003は、SSVOLグループID8002で示されるSSVOLグループがスナップショットを格納する順番を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、ジャーナルグループにSSVOLグループを関連付けることにより設定される。
たとえば、管理者は「addSSVOLG -jgid JNLG_1 -ssvolgid SSG_1」のようなコマンドを発行する。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1にSSVOLグループSSG_1を関連付けよ」という命令になる。このJNLG_1がJNLグループID8001に格納され、SSG_1の値がSSVOLグループID8002に格納される。また、使用順序8003には、この命令により設定されたSSVOLグループID8002の値と同一の値を持つレコードの使用順序8003の最大値に1を加えたものが格納される。このとき、同一の値を持つレコードが無い場合は、1が格納される。なお、上記コマンドのSSVOLグループの識別子を変更させて複数回実行することで、複数のSSVOLグループをジャーナルグループに関連付けることができる。
次利用フラグ8004は、次にスナップショットを格納するSSVOLグループを示すフラグを格納する。順序番号8005は、SSVOLグループID8002で示されるSSVOLグループに格納したスナップショットの取得タイミングと、ジャーナル作成タイミングとの順序関係を示す番号を格納する。マイクロプログラム1028に従って動作するCPU1023が、次利用フラグ8004の値が「TRUE」となっているSSVOLグループへスナップショットを格納するたびに、順序カウンタ5002の値を順序番号8005に設定し、次利用フラグ8004の値を「FALSE」に設定し、次のスナップショットを格納するSSVOLグループの次利用フラグ8004に「TRUE」を設定する。
取得時刻8006は、スナップショット取得要求がストレージ装置1000に到着した時刻を保持する。マイクロプログラム1028に従って動作するCPU1023が、ディスクコントローラ1020のタイマ1024から現在時刻を取得し、取得時刻8006に設定する。なお、別の実施形態として、取得時刻8006には、スナップショット取得要求内に含まれる要求発行時刻としてもよい。たとえば、メインフレーム環境では、複数のメインフレームホストがタイマを共有しており、スナップショット取得要求を発行する時刻を提供することができるため、これを利用してもよい。
図8は、ジャーナルグループで利用されるジャーナルボリュームの情報を管理するジャーナルボリュームテーブル10297の一例である。JNLG_ID9001は、ジャーナルグループの識別子を格納する。JNLボリュームID9002は、JNLG_ID9001で示されるジャーナルグループで利用されるジャーナルボリュームとなる論理ボリューム1012の識別子を格納する。使用順序9003は、JNLボリュームID9002で示されるジャーナルボリュームがジャーナルを格納するために使用される順番を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、ジャーナルグループにジャーナルボリュームを追加することにより設定される。
たとえば、管理者は「addJVOL -jgid JNLG_1 -jvolid LU_31」のようなコマンドを発行する。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1にジャーナルボリュームLU_31を追加せよ」という命令になる。このJNLG_1がJNLG_ID9001に格納され、LU_31がJNLボリュームID9002に格納される。また、使用順序9003には、この命令により設定されたJNLG_ID9001の値と同一の値を持つレコードの使用順序9003の最大値に1を加えたものが格納される。このとき、同一の値を持つレコードが無い場合は、1が格納される。なお、上記コマンドのジャーナルボリュームとなる論理ボリューム1012の識別子を変更させて複数回実行することで、複数のジャーナルボリュームをジャーナルグループに追加することができる。
開始時刻9004は、JNLボリュームID9002で示されるジャーナルボリュームが格納する最古のジャーナルの取得時刻を格納する。終了時刻9005は、JNLボリュームID9002で示されるジャーナルボリュームが格納する最新のジャーナルの取得時刻を格納する。これらの値は、マイクロプログラム1028に従って動作するCPU1023が、ジャーナル格納先を切り替えた際に、切り替え元のジャーナルボリューム内の先頭に格納されている最古のジャーナルの生成時刻10004(後述する図9参照)を開始時刻9004へ設定し、切り替え直前に格納した最新のジャーナルの生成時刻10004の値を終了時刻9005へ設定する。
使用量9006は、JNLボリュームID9002で示されるジャーナルボリュームが格納するジャーナルの総量を格納する。本値は、JNLボリュームID9002で示されるジャーナルボリュームへジャーナルが格納されるたびに、そのジャーナルのサイズ分だけ加算される。また、ジャーナル格納先の切り替えが発生したときに、JNLボリュームID9002で示されるジャーナルボリュームが新たに格納先となった場合、本値は0に設定される。
図9は、本実施の形態におけるジャーナルの構成の一例を示した図である(適宜他図参照)。
データボリュームID10001はジャーナル適用先となるデータボリュームの識別子を格納する。適用先アドレス10002は、データボリュームID10001で示されるデータボリューム内での適用先アドレスを格納する。データ長10003は適用するデータの長さ、すなわちAfterジャーナル10006及びBeforeジャーナル10007の長さを保持する。これらの値は、マイクロプログラム1028に従って動作するCPU1023がジャーナルを作成する際に、ホスト計算機1100の書込み要求に応じて設定する値である。
生成時刻10004は、ホスト計算機1100の書き込み要求がストレージ装置1000に到着した時刻を保持する。生成時刻10004の値は、マイクロプログラム1028に従って動作するCPU1023が、ディスクコントローラ1020のタイマ1024から取得し、設定するものである。なお、別の実施形態として、生成時刻10004は書込み要求内に含まれる書込み発行時刻としてもよい。
順序番号10005は、スナップショットの取得タイミングとジャーナル作成タイミングとの順序関係を示す番号を格納する。マイクロプログラム1028に従って動作するCPU1023が、ジャーナルを作成する時に、順序カウンタ5002の値に1だけ加算した値を本値に設定する。
Afterジャーナル10006はAfterジャーナルのデータを格納する。Beforeジャーナル10007はBeforeジャーナルのデータを格納する。
次ジャーナルボリュームID10008と次ジャーナルアドレス10009には、当該ジャーナルの次に作成されるジャーナル(以下、「次ジャーナル」と呼ぶ。)の格納場所を識別する情報が格納されている。次ジャーナルボリュームID10008は、次ジャーナルを格納するジャーナルボリュームの識別子を格納する。次ジャーナルアドレス10009は、次ジャーナルボリュームID10008で示されるジャーナルボリューム内での次ジャーナルが格納されているアドレスを保持する。この値は、マイクロプログラム1028に従い動作するCPU1023が次ジャーナルの格納場所を前述した方法で決定し、設定する。
前ジャーナルボリュームID10010と前ジャーナルアドレス10011には、当該ジャーナルの直前に作成されたジャーナル(以下、「前ジャーナル」と呼ぶ。)の格納場所を識別する情報が格納される。前ジャーナルボリュームID10010は、前ジャーナルを格納するジャーナルボリュームの識別子を格納する。前ジャーナルアドレス10011は、前ジャーナルボリュームID10010で示されるジャーナルボリューム内での前ジャーナルが格納されているアドレスを格納する。マイクロプログラム1028に従い動作するCPU1023が、ジャーナルを作成する際に、最新JNL格納VOL_ID5003(図4参照)と最新JNL格納アドレス5004の値を、前ジャーナルボリュームID10010と前ジャーナルアドレス10011の値にコピーする。その後、前記CPU1023は最新JNL格納VOL_ID5003、最新JNL格納アドレス5004に、当該作成したジャーナルの格納場所を設定する。
図10から図12はグループ管理情報群1253を構成するテーブル群である(適宜他図参照)。
図10は、ジャーナル格納先を連動させるジャーナルグループの情報を管理するJNL格納先連動管理テーブル12531の一例である。
管理ID11001は、ジャーナル格納先を連動させるジャーナルグループ群の管理識別子が格納される。JNLG_ID11002は、管理ID11001で示されるジャーナル格納先を連動させるジャーナルグループ群に含まれるジャーナルグループの識別子が格納される。JNLVOL総サイズ11003は、JNLG_ID11002で示されるジャーナルグループが要求するジャーナルボリュームの容量を格納する。次パーティション電源ONタイミング11004(所定量)は、次にジャーナルを格納するパーティションの電源をONにするタイミングを格納する。なお、本実施形態においては、パリティグループをパーティションとして扱っている。また、当該タイミング情報を、現在ジャーナルを格納しているパーティションにジャーナルを格納できる残容量としている。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、ジャーナル格納先を連動させたいジャーナルグループを登録することにより設定される。たとえば、管理者は「addJNLG -jgid JNLG_1 -jnlvolsize 30G -event 100M -targetID Group_1」のようなコマンドを発行する。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1をGroup_1の管理グループに属する他のジャーナルグループと連動させてジャーナル格納先を制御せよ。また、ジャーナルグループJNLG_1で利用するジャーナルボリュームの容量を30Gとせよ」という命令になる。このGroup_1が管理ID11001に格納され、JNLG_1がJNLG_ID11002に格納され、30GがJNLVOL総サイズ11003へ格納される。また、次パーティション電源ONタイミング11004にはデフォルトで1000(バイト)が格納される。ただし、本値は設定プログラム1251が提供するCLIを管理者が用いて、変更することが可能である。
図11は、ジャーナル格納先を管理するグループ内で使用するパーティションを管理するパーティション管理テーブル12532の一例である。管理ID12001は、ジャーナル格納先を連動させるジャーナルグループ群の識別子を格納する。パーティションID12002には、管理ID12001で示されるジャーナルグループ群で利用されるパーティションの識別子を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、ジャーナル格納先を連動させたいジャーナルグループへ未使用パーティション(パリティグループ)を追加することにより設定される。たとえば、管理者は「addPG -targeted Group_1 -partition_ID PG_01」のようなコマンドを発行する。これは、ストレージ装置1000に対する「ジャーナル格納先を連動させるジャーナルグループ群Group_1へパリティグループPG_01をパーティションとして追加せよ」という命令になる。このGroup_1が管理ID12001に格納され、PG_01がパーティションID12002に格納される。
割当有無12003は、パーティションID12002で示されるパーティションに属するジャーナルボリュームが既にジャーナルグループへ割当済みであるか否かを示すフラグを格納する。具体的には、割当済みの場合は「TRUE」が格納され、まだ割り当てられていない場合は「FALSE」が格納される。この値は、設定プログラム1251に従って動作するCPU1230がジャーナルボリューム割当を行う際に設定する。この動作については後述する。
図12は、ジャーナル格納先を連動させるジャーナルグループ群の情報を管理する管理グループテーブル12533の一例である。管理ID13001は、ジャーナル格納先を連動させるジャーナルグループ群の管理識別子を格納する。監視周期13002は、管理ID13001で示されるジャーナルグループ群に属するジャーナルグループのジャーナル格納先を監視する周期を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、ジャーナル格納先を監視したい周期を登録することにより設定される。たとえば、管理者は「setMonitorInterval -interval 10sec -target Group_1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Group_1のジャーナル格納先を10秒間隔で監視せよ」という命令になる。このGroup_1が管理ID13001に格納され、10sec(秒)が監視周期13002に格納される。
使用中パーティション13003は、管理ID13001で示されるジャーナルグループ群に属するジャーナルグループのジャーナル格納先ジャーナルボリュームが属するパーティションのIDを格納する。この値は、ジャーナル監視プログラム1252に従って動作するCPU1230によって設定される。この動作については後述する。
(2)第1実施形態の動作
次に、本実施形態の動作の説明を行う。
図13は、設定プログラム1251に従って動作するCPU1230がジャーナルボリュームをジャーナルグループへ割り当てる処理の流れである(適宜他図参照)。管理者は、設定プログラム1251が提供するCLIを用いて、本処理を起動する。たとえば、管理者は「setJNLVol Group_1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Group_1に含まれるジャーナルグループにジャーナルボリュームを割り当てよ」という命令になる。
本処理が起動されると、まず、CPU1230はマイクロプログラム1028に従い動作するCPU1023から管理情報群1029を取得する(ステップ14010)。
次に、CPU1230は、指定されたジャーナルグループ群に割り当てられたパリティグループから未使用のパリティグループを1つ選択する(ステップ14020)。具体的には、パーティション管理テーブル12532から割当有無12003が「FALSE」であるパリティグループを一つ選択する。
次に、CPU1230は、指定されたジャーナルグループ群に属する各ジャーナルグループへジャーナルボリュームを割り当てる(ステップ14030)。この割当て方法は任意であるが、各ジャーナルグループに割り当てられるジャーナルボリュームの総容量が、各ジャーナルグループの要求ジャーナルサイズ比率に近い割合になるように割り当てることが望ましい。
次に、CPU1230は、当該パリティグループに属する論理ボリューム1012がジャーナルボリュームとして割当て済みであることを示すように、割当有無12003を「TRUE」と設定する(ステップ14040)。
次に、CPU1230は、各ジャーナルグループに割り当てられたジャーナルボリュームを管理情報群1029へ設定する(ステップ14050)。ここでは、CPU1230は、前記した設定プログラム1251が提供するCLIを用いて、ステップ14030において割り当てられたジャーナルボリュームを設定していく。これにより、登録されたジャーナルボリュームの使用順序9003(図8参照)は、属するパリティグループ毎に連続した値となる。この結果、強制的にジャーナル格納先が切り替えられない限り、同一パリティグループ内のジャーナルボリュームが連続して使用されることが保証される。
次に、CPU1230は、各ジャーナルグループに割り当てられたジャーナルボリュームの総容量が、要求されたジャーナル容量を満たすかを、JNL格納先連動管理テーブル12531などを参照することで確認する(ステップ14060)。満たしている場合(YES)は、本処理を終了する。満たしていない場合(NO)は、ステップ14070へ処理を進める。
ステップ14070では、CPU1230は、指定されたジャーナルグループ群に割り当てられたパリティグループに未使用のパリティグループが存在するかを確認する(ステップ14070)。存在する場合(YES)は、ステップ14020へ処理を進め、再びジャーナルボリューム割当て処理を行う。存在しない場合(NO)は、要求されたジャーナル容量を満たせないため、本処理の実行結果としてエラー(警告)を表示し(ステップ14080)、処理を終了する。
以上がジャーナルボリュームをジャーナルグループへ割り当てる処理の流れである。
図14は、ジャーナル監視プログラム1252に従い動作するCPU1230が、各ジャーナルグループのジャーナル格納先を監視し、格納先が分散した場合、格納先を局所化するように制御する処理の流れである(適宜他図参照)。管理者は、設定プログラム1251が提供するCLIを用いて、本処理を起動する。たとえば、管理者は「runMonitor Group_1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Group_1のジャーナル格納先の監視及び制御を開始せよ」という命令になる。
本処理が起動されると、まず、CPU1230は監視のタイミングに至るまで待機する(ステップ15010)。この監視のタイミングとは、監視周期13002に設定されたものである。
次に、CPU1230は、マイクロプログラム1028に従い動作するCPU1023から管理情報群1029を取得する(ステップ15020)。
次に、CPU1230は、現在のジャーナル格納先となっているパリティグループとは異なるパリティグループへジャーナルを格納し始めそうなジャーナルグループの有無を確認する(ステップ15030)。ここでは、現在ジャーナルを格納しているジャーナルボリュームより大きい使用順序をもち、現在ジャーナルを格納しているジャーナルボリュームと同一のパリティグループに属しているジャーナルボリュームの容量4002の合計と、現在ジャーナルを格納しているジャーナルボリュームの容量4002から使用量9006を足し合わせたもとを、次パーティション電源ONタイミング11004と比較する。
前者が小さい場合(ステップ15030でYES)、すなわち次のパリティグループを利用し始めそうなジャーナルグループがある場合はステップ15040へ進む。大きい場合(ステップ15030でNO)、すなわち次のパリティグループを利用し始めそうなジャーナルグループが無い場合は、ステップ15060へ進む。
ステップ15040では、CPU1230は、ステップ15030において、次にジャーナルを格納し始めそうなパリティグループを構成するディスクの電源がONになっているかを確認する。この確認は、ディスク電源制御回路1014に問い合わせることで行う。問い合わせを受けたディスク電源制御回路1014は、前記した電源ON/OFFを管理するレジスタの状態情報を返す。この確認の結果、ONになっている場合(ステップ15040でYES)は、ステップ15060へ進む。ONになっていない場合(ステップ15040でNO)は、CPU1230が、ディスク電源制御回路1014へ当該パリティグループを構成するディスクの電源をONにするように指示を出す(ステップ15050)。その後、ステップ15060へ進む。
ステップ15060では、CPU1230は、使用中パーティション13003で示される以外のパリティグループへジャーナルを格納するジャーナルグループの有無を確認する。無い場合(NO)は、ステップ15010へ進む。ある場合(YES)は、ステップ15070へ進む。
ステップ15070では、CPU1230は、使用中パーティション13003にジャーナルを格納しているジャーナルグループのジャーナル格納先を、次のパリティグループの先頭ジャーナルボリュームに切り替えて、ジャーナル格納先パリティグループを統一するように、マイクロプログラム1028に従い動作するCPU1023へ要求する(ステップ15070)。なお、ジャーナル格納先を次のパリティグループに切り替えるとは、ジャーナルボリュームを使用順序9003に従って、現在ジャーナルを格納しているパリティグループ以外のパリティグループに属している最初のジャーナルボリュームを検索し、そのジャーナルボリュームへ強制的に切り替えることを意味する。つまり、使用中パーティション13003に属するジャーナルボリュームを使用せずにスキップしていくことになる。なお、切り替え要求を受け付けたCPU1023の動作は後述する。
次に、CPU1230は、切り替え後の状況を反映するように、使用中パーティション(パリティグループ)13003のフラグを次のパリティグループを示すように更新する(ステップ15080)。
次に、CPU1230は、切り替え元のパリティグループを構成するディスクの電源をOFFするように、ディスク電源制御回路1014へ指示を出す(ステップ15090)。その後、ステップ15010へ進む。
以上がジャーナル監視プログラム1252に従い動作するCPU1230の処理の流れである。
なお、本実施形態では、単一のジャーナルグループのジャーナル格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのジャーナル格納先を連動させていたが、そのほかに、使用中パーティション13003で示されるパリティグループを所定量使うまでは切り替えないなど条件を設定することもできる。この場合は、ステップ15060でYESの直後に、前記のような条件を判定するステップを追加すればよい。これにより、より効率的なジャーナルボリュームの利用が可能となる。
また、本実施形態では、単一のジャーナルグループのジャーナル格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのジャーナル格納先を連動させると、ジャーナルグループによっては要求されたジャーナルボリューム容量を満たせないことがある。これを回避するために、別の実施形態として、動的にジャーナルグループを割り当てることも可能である。
これを行うには、図14を用いて説明した処理のステップ15030とステップ15040の間に処理を新たに追加すればよい。この追加部分を図15に示す。
ステップ15030において、現在のジャーナル格納先となっているパリティグループとは異なるパリティグループへジャーナルを格納し始めそうなジャーナルグループがある場合(YES)、CPU1230は、監視対象ジャーナルグループ群の中で、現時点でジャーナルボリュームの要求容量を使用していないものが存在するかを確認する(ステップ16010)。この確認は、使用量9006の総和とJNLVOL総サイズ11003を比較すればよい。存在しない場合(NO)は、ステップ15040へ進む。存在する場合(YES)は、ステップ16020へ進む。
ステップ16020では、CPU1230は、監視対象ジャーナルグループ群に割り当てられているパリティグループで未使用のものが残っているかを確認する。残っていない場合(NO)は、ジャーナルボリュームの要求容量を満たすことができないため、管理者へ通知し(ステップ16030)、ステップ15040へ進む。なお、この場合は、ジャーナルを格納できる容量が、管理者が要求していた容量以下の状態で処理が進められるため、通知を受けた管理者は早急に未使用パリティグループを監視対象ジャーナルグループ群へ割り当てる必要がある。
一方、未使用パリティグループが一つ以上残っている場合(ステップ16020でYES)は、ステップ16040へ進む。
ステップ16040では、CPU1230は、未使用パリティグループを一つ選択する。これは、前記したステップ14020の処理と同等である。
次に、CPU1230は、指定されたジャーナルグループ群に属する各ジャーナルグループへジャーナルボリュームを割り当てる(ステップ16050)。これは、前記したステップ14030の処理と同等である。
次に、CPU1230は、当該パリティグループに属する論理ボリューム1012がジャーナルボリュームとして割当て済みであることを示すように、割当有無12003を「TRUE」と設定する(ステップ16060)。これは、前記したステップ14040の処理と同等である。
次に、CPU1230は、各ジャーナルグループに割り当てられたジャーナルボリュームを管理情報群1029へ設定する(ステップ16070)。これは、前記したステップ14050の処理と同等である。本ステップ終了後、ステップ15040へ進み、図14を用いて説明した処理へ戻る。
以上のように、運用中に監視対象ジャーナルボリューム群に要求されたジャーナルボリューム容量を満たせないものが発生した場合に、動的にジャーナルボリュームを割り当てることで、要求されたジャーナルボリューム容量を満たすことができる。
図14に戻って、次に、ステップ15070において、ジャーナル監視プログラム1252に従い動作するCPU1230からジャーナル格納先ジャーナルボリュームの切り替え指示を受けたマイクロプログラム1028に従い動作するCPU1023の処理の流れを、図16を用いて説明する。
ジャーナル監視プログラム1252に従い動作するCPU1230からジャーナル格納先ジャーナルボリュームの切り替え指示を受けつけると、マイクロプログラム1028に従い動作するCPU1023は、最古のジャーナルが切り替え元パリティグループに格納されているかを確認する(ステップ17010)。具体的には、最古JNL格納VOL_ID5005で示されるジャーナルボリュームが、最新JNL格納VOL_ID5003で示されるジャーナルボリュームと同じパリティグループに属しているかを確認する。切り替え元パリティグループに最古のジャーナルが格納されていない場合(NO)は、ステップ17030へ進む。格納されている場合(YES)は、ステップ17020へ進む。
ステップ17020では、CPU1023は切り替え先ジャーナルボリュームの先頭アドレスに格納されたジャーナルをジャーナルグループの最古ジャーナルとするようにジャーナルグループの管理情報を更新する。具体的には、切り替え先のジャーナルボリューム(論理ボリューム1012)の識別子を最古JNL格納VOL_ID5005に設定し、最古JNL格納アドレス5006を0に設定すればよい。
次に、CPU1023は、データ長0のジャーナルを作成し、切り替え先として指定されたジャーナルボリュームの先頭アドレスに格納する(ステップ17030)。この際、切り替え先ジャーナルボリュームの先頭アドレスに最古のジャーナルが格納されている場合は、作成したジャーナルを格納するのに十分な容量を確保できるように、最古のジャーナルから古い順にジャーナルを削除していく。この削除処理は従来技術で実現されている。
次に、CPU1023は、ステップ17010で作成したジャーナルが最新ジャーナルの次のジャーナルとなるようにジャーナルのメタデータを更新する(ステップ17040)。具体的には、最新JNL格納VOL_ID5003及び最新JNL格納アドレス5004により指し示される場所に格納されているジャーナルの次ジャーナルボリュームID10008及び次ジャーナルアドレス10009に、作成したジャーナルの格納箇所を指し示すように値を設定する。また、作成したジャーナルの前ジャーナルボリュームID10010に最新JNL格納VOL_ID5003の値を設定し、前ジャーナルアドレス10011に最新JNL格納アドレス5004の値を設定する。
次に、CPU1023は、作成したジャーナルが最新ジャーナルとなるようにジャーナルグループの管理情報を更新する(ステップ17050)。具体的には、最新JNL格納VOL_ID5003及び最新JNL格納アドレス5004へ作成したジャーナルの格納箇所の値を設定する。
以上が、ジャーナル格納先ジャーナルボリュームの切り替え指示を受けたマイクロプログラム1028に従い動作するCPU1023の処理の流れである。
以上が第1実施形態の説明である。当該第1実施形態によれば、監視対象ジャーナルグループ群に属するジャーナルグループのジャーナル格納先を連動させることができるため、複数ジャーナルグループに跨って、特定時点のジャーナルの格納先を局所化することができる。また、この結果、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定時間帯のジャーナル管理に適用できる。具体的には、本実施形態では、ジャーナルを格納する可能性の無いパリティグループを構成するディスクの電源をOFFする例を示した。
(第2実施形態)
次に、第2実施形態について説明する。
ここでは、特開2005-011277号公報において開示されている、複数のストレージ装置を統合したシステムを構築するための外部接続技術を用いた計算機システムにおける本発明の実施形態を示す。
本実施形態の計算機システムでは、第1のストレージ装置が外部接続機能を用いて第2のストレージ装置の論理ボリューム1012を仮想化し、当該仮想ボリュームを、ジャーナルボリュームとして第1のストレージ装置内で用いる。この場合でも、従来技術のようにジャーナル格納場所をジャーナル作成時刻と無関係に決定すると、前記と同様の課題が発生する。本発明は、このような構成においても適用可能であることを、本実施形態を説明することで例証する。
(1)第2実施形態のシステム構成
図17は、本実施形態のストレージ装置の構成を示すブロック図である。本構成の大部分は第1実施形態の構成と同等であるため、図17には差分が明確になる部分のみを記載している。以下、その差分のみを説明する。
本実施形態では、新たに外部ストレージ装置1500が追加されている。外部ストレージ装置1500は、データネットワーク1300を介して、ストレージ装置1000、ホスト計算機1100と接続されている。また、外部ストレージ装置1500は、管理ネットワーク1400を介してストレージ装置1000、ホスト計算機1100、管理計算機1200と接続されている。本実施形態では、説明の簡単化のため外部ストレージ装置1500を1台しか示していないが、2台以上でもかまわない。
外部ストレージ装置1500は、ディスクコントローラ1020とディスク装置1010と装置電源制御回路1530を備えている。
ディスク装置1010の基本的な構成は、図1の場合と同等であるため、説明を省略する。ただし、ディスク装置1010にディスク電源制御回路1014を搭載しなくてもよい。外部ストレージ装置1500の論理ボリューム1012は、他のストレージ装置の外部接続機能により外部ボリュームとして利用される。
装置電源制御回路1530は、ジャーナル監視プログラム1252(図1参照)から管理ネットワーク1400を介して送信された電源制御要求を受け取ることにより、省電力モード制御を行う。省電力モード制御とは、ストレージ装置1500を通常稼動状態から省電力モードへ切り替える制御、及び省電力モードから通常稼動状態への切り替える制御のことである。省電力モードとは、装置電源制御回路1530がジャーナル監視プログラム1252から管理ネットワーク1400を介して送信された電源制御要求を受け付け、省電力制御を行うために必要なコンポーネント(構成要素)以外のコンポーネントに対する通電を停止することである。
本実施形態のストレージ装置1000には仮想ボリューム1040が追加されている。また、図には示さないが、ディスクコントローラ1020内のマイクロプログラム1028(図1参照)には、外部接続技術を用いて外部接続を行う機能が追加されている。
仮想ボリューム1040は、マイクロプログラム1028が外部ストレージ装置1500の論理ボリューム1012を外部接続機能により仮想化したボリュームである。この仮想ボリューム1040は、前記外部接続機能により、ストレージ装置1000内の論理ボリューム1012と同じように、データボリュームやジャーナルボリュームやスナップショットボリュームとして利用することが可能である。また、仮想ボリューム1040への書き込みは、前記外部接続機能により外部ストレージ装置1500内の対応付けられた論理ボリューム1012へ書き込むことで実現される。
図18は、仮想ボリューム1040と外部ストレージ装置1500の論理ボリューム1012との対応関係を管理する仮想ボリューム管理テーブルの一例である(適宜他図参照)。仮想ボリューム管理テーブルは、ストレージ装置1000のディスクコントローラ1020のメインメモリ1026に格納される。
VOL_ID19001は、管理対象となる仮想ボリュームの識別子を格納する。容量19002は、VOL_ID19001で示される仮想ボリュームの容量を格納する。外部筐体ID19003は、VOL_ID19001で示される仮想ボリュームのデータを格納する論理ボリューム1012が属する外部ストレージ装置1500の識別子である。パス19004は、外部接続機能により外部ストレージ装置1500の論理ボリューム1012を仮想化するストレージ装置1000から、仮想化対象の論理ボリューム1012へアクセスするためのパス情報を格納する。これは例えば、WWN(World Wide Name)などのストレージ装置のデータI/F1022のポートの識別子、SCSI(Small Computer System Interface)のターゲットID及びLUN(Logical Unit Number)の組み合わせなどになる。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、外部接続機能の設定を行うことで設定される。たとえば、管理者は「createVVOL -target P1_T1_L1 -targetArrayID DF700_1」というコマンドを発行する。これは、ストレージ装置1000に対する「ストレージ装置DF700_1に格納された、ポートIDが1、ターゲットIDが1、LUNが1でアクセス可能な論理ボリューム1012の仮想ボリュームを作成せよ」という命令となる。このポートIDが1、ターゲットIDが1、LUNが1という情報の組み合わせがパス19004に格納され、DF700_1が外部筐体ID19003に格納される。また、仮想化を行った際に、マイクロプログラム1028に従い動作するCPU1023は、当該論理ボリューム1012の容量を調べ、その値を容量19002へ設定する。また、作成された仮想ボリュームに対しストレージ装置1000内で一意になる識別子をCPU1023が割り振り、その値をVOL_ID19001へ格納する。
なお、本実施形態では外部ストレージ装置1500をパーティションとして扱う。このため、図10と図11において、パーティションの識別子が格納されるフィールドには外部ストレージを識別する識別子(外部筐体ID19003と同等)が格納される。
また、本実施形態においては、図2のパリティグループ構成テーブル10291及び図3の論理ボリュームテーブル10292は必要ない。
(2)第2実施形態の動作
次に、本実施形態の動作の説明を行う。
本実施形態の動作の大部分は第1実施形態の動作と同じであるため、以下は差分のみを説明する。
本実施形態では外部ストレージ装置1500をパーティションとして扱う。図13から図15の処理を本実施形態に適用するためには、それぞれの処理の説明において、パリティグループとしていたものを外部ストレージ装置と読みかえればよい。ただし、ステップ15040、ステップ15050、ステップ15090において、電源のON/OFF制御要求及び状態取得要求については、要求先を外部筐体19003で示された外部筐体の装置電源制御回路1530とする必要がある。
以上が第2実施形態の説明である。当該第2実施形態によれば、ストレージ装置1000をパーティションとして扱っている場合であっても、監視対象ジャーナルグループ群に属するジャーナルグループのジャーナル格納先ストレージ装置を連動させることができるため、複数ジャーナルグループに跨って、特定時点のジャーナルの格納先を局所化することができる。また、この結果、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定時間帯のジャーナル管理に適用できる。具体的には、本実施形態では、ジャーナルを格納する可能性の無い外部ストレージ装置1500を省電力モードにする例を示した。
(第3実施形態)
次に、第3実施形態について説明する。本実施形態は、第1実施形態のように複数のジャーナルグループのジャーナル格納先を連動させることに加え、スナップショット格納先も連動させる例である。フルバックアップや差分バックアップなどのように取得時点でバックアップデータが完全揃うタイプのバックアップをスナップショットとして用いている場合には、本発明を適用可能である。本実施形態では、これを例証する。
(1)第3実施形態のシステム構成
図19は、本実施形態のストレージ装置の構成を示すブロック図である。本構成の大部分は第1実施形態の構成と同等であるため、図19には差分が明確になる部分のみを記載している。以下、その差分のみを説明する。
本実施形態では、管理計算機1200のメモリ1250にスナップショット監視プログラム1254が追加されている。スナップショット監視プログラム1254は、グループ管理情報群1253の情報を参照・更新しながら、各ジャーナルグループがどのSSVOLグループにスナップショットを格納しているかを監視する。そして、スナップショット格納先を連動させるべき各ジャーナルグループのスナップショット格納先を制御する。
図20は、ジャーナル格納先及びスナップショット格納先を連動させるジャーナルグループ群の情報を管理する管理グループテーブルの一例である。これは図12を用いて説明した第1実施形態の管理グループテーブル12533(図12参照)とほぼ同等であるので、以下、差分のみを説明する。
本実施形態では、使用中パーティション(スナップショット)13004が追加されている。使用中パーティション(スナップショット)13004は、管理ID13001で示されるジャーナルグループ群に属するジャーナルグループのスナップショット格納先SSVOLグループが属するパーティションのIDを格納する。この値は、スナップショット監視プログラム1254に従って動作するCPU1230によって設定される。この動作については後述する。
図21は、スナップショット格納先を連動させるジャーナルグループの情報を管理するスナップショット格納先連動管理テーブルの一例である。スナップショット格納先連動管理テーブルは、グループ管理情報群1253に格納される。JNLG_ID22001は、ジャーナルグループの識別子が格納される。世代数22002は、JNLG_ID11001で示されるジャーナルグループが要求するスナップショットの世代数を格納する。
これらの値は、設定プログラム1251が提供するCLIを管理者が用いて、スナップショット格納先を連動させたいジャーナルグループに世代数登録することで設定される。たとえば、管理者は「setSSNum -jgid JNLG_1 4」のようなコマンドを発行する。これは、ストレージ装置1000に対する「ジャーナルグループJNLG_1のスナップショット世代数を4世代とせよ」という命令になる。このJNLG_1がJNLG_ID22001に格納され、4が世代数22002へ格納される。
(2)第3実施形態の動作
次に、本実施形態の動作の説明を行う。
本実施形態の動作の大部分は第1実施形態の動作と同じであるため、以下は差分のみを説明する。
図22は、設定プログラム1251に従って動作するCPU1230がSSVOLグループをジャーナルグループへ割り当てる処理の流れである。管理者は、設定プログラム1251が提供するCLIを用いて、本処理を起動する。たとえば、管理者は「setSSVolGroup Group_1」のようなコマンドを発行する。これは、「スナップショット格納先を連動させるジャーナルグループ群Group_1に含まれるジャーナルグループにSSVOLグループを割り当てよ」という命令になる。
本処理が起動されると、まず、CPU1230はマイクロプログラム1028に従い動作するCPU1023から管理情報群1029を取得する(ステップ23010)。
次に、CPU1230は、指定されたジャーナルグループ群に割り当てられたパリティグループから未使用のパリティグループを選択する(ステップ23020)。具体的には、パーティション管理テーブル12532から割当有無12003が「FALSE」であるパリティグループを一つ選択する。
次に、CPU1230は、指定されたジャーナルグループ群に属する各ジャーナルグループへSSVOLグループを割り当てる(ステップ23030)。ここでは、まず、各ジャーナルグループに属する全データボリュームに対して一つずつスナップショットボリュームを割り当てる。この割り当てられたスナップショットボリュームの集合が管理対象のジャーナルグループへ割り当てられたSSVOLグループとなる。ジャーナルグループ間での割当て方法は任意であるが、各ジャーナルグループに割り当てられるSSVOLグループ数が、各ジャーナルグループの要求世代数22002の比率に近い割合になるように割り当てることが望ましい。なお、監視対象となっているジャーナルグループに属するデータボリューム数の最小値よりもパリティグループ内の未割り当て論理ボリューム1012数が小さい場合は、未割り当てボリュームはそのまま残して次のステップへ進む。
次に、CPU1230は、当該パリティグループに属する論理ボリューム1012がスナップショットボリュームとして割当て済みであることを示すように、割当有無12003を「TRUE」と設定する(ステップ23040)。
次に、CPU1230は、各ジャーナルグループに割り当てられたSSVOLグループを管理情報群1029へ設定する(ステップ23050)。ここでは、CPU1230は、前記した設定プログラム1251が提供するCLIを用いて、ステップ14030において割り当てられたジャーナルボリュームを設定していく。これにより、登録されたSSVOLグループの使用順序8003は、SSVOLグループが属するパリティグループ毎に連続した値となる。この結果、強制的にスナップショット格納先が切り替えられない限り、同一パリティグループ内のSSVOLグループが連続して使用されることが保証される。
次に、CPU1230は、各ジャーナルグループに割り当てられたSSVOLグループの総世代数が、要求されたジャーナル容量を満たすかを確認する(ステップ23060)。満たしている場合(YES)は、本処理を終了する。満たしていない場合(NO)は、ステップ23070へ処理を進める。
ステップ23070では、CPU1230は、指定されたジャーナルグループ群に割り当てられたパリティグループに未使用のパリティグループが存在するかを確認する。存在する場合(YES)は、ステップ23020へ処理を進め、再びジャーナルボリューム割当て処理を行う。存在しない場合(NO)は、要求されたジャーナル容量を満たせないため、本処理の実行結果としてエラー(警告)を表示し(ステップ23080)、処理を終了する。
以上がSSVOLグループをジャーナルグループへ割り当てる処理の流れである。
図23は、スナップショット監視プログラム1254に従い動作するCPU1230が、各ジャーナルグループのスナップショット格納先を監視し、格納先が分散した場合、格納先を局所化するように制御する処理の流れである。管理者は、設定プログラム1251が提供するCLIを用いて、本処理を起動する。たとえば、管理者は「runSSMonitor Group_1」のようなコマンドを発行する。これは、「ジャーナル格納先を連動させるジャーナルグループ群Group_1のスナップショット格納先の監視及び制御を開始せよ」という命令になる。
本処理が起動されると、まず、CPU1230は監視のタイミングに至るまで待機する(ステップ24010)。この監視のタイミングとは、監視周期13002に設定されたものである。
次に、CPU1230は、マイクロプログラム1028に従い動作するCPU1023から管理情報群1029を取得する(ステップ24020)。
次に、CPU1230は、現在のSSVOL格納先となっているパリティグループとは異なるパリティグループへスナップショットを格納し始めそうなジャーナルグループの有無を確認する(ステップ24030)。ここでは、各ジャーナルグループに関して、最新のスナップショットを格納しているSSVOLグループが、割り当てられたSSVOLグループで、かつ使用中パーティション(スナップショット)13004内で最後の使用順序8003となっているジャーナルグループが存在するかを確認する。存在する場合(YES)はステップ24040へ進む。存在しない場合(NO)は、ステップ24060へ進む。
ステップ24040では、CPU1230は、次に利用するSSVOLグループが属しているパリティグループを構成するディスクの電源がONになっているかを確認する。この確認では、第1実施形態もの(図14のステップ15040)と同等の処理を行う。ONになっていない場合(NO)は、ディスク電源制御回路1014へ当該パリティグループを構成するディスクの電源をONにするように指示を出す(ステップ24050)。その後、ステップ24060へ進む。
ステップ24060では、CPU1230は、使用中パーティション(スナップショット)13004で示される以外のパリティグループへスナップショットを格納するジャーナルグループの有無を確認する。無い場合(NO)は、ステップ24010へ進む。ある場合(YES)は、ステップ24070へ進む。
ステップ24070では、CPU1230は、使用中パーティション(スナップショット)13004にジャーナルを格納しているジャーナルグループのスナップショット格納先を、次のパリティグループの先頭SSVOLグループに切り替えるように、マイクロプログラム1028に従い動作するCPU1023へ要求する。なお、スナップショット格納先を次のパリティグループに切り替えるとは、スナップショットを使用順序8003に従って、現在スナップショットを格納しているパリティグループ以外のパリティグループに属している最初のSSVOLグループを検索し、そのSSVOLグループへ強制的に切り替えることを意味する。つまり、使用中パーティション(スナップショット)13004に属するSSVOLグループを使用せずにスキップしていくことになる。なお、切り替え要求を受け付けたCPU1023の動作は後述する。
次に、CPU1230は、切り替え後の状況を反映するように、使用中パーティション(スナップショット)13004のフラグを次のパリティグループを示すように更新する(ステップ24080)。
次に、CPU1230は、切り替え元のパリティグループを構成するディスクの電源をOFFするように、ディスク電源制御回路1014へ指示を出す(ステップ24090)。その後、ステップ24010へ進む。
以上がジャーナル監視プログラム1252に従い動作するCPU1230の処理の流れである。
なお、本実施形態では、単一のジャーナルグループのスナップショット格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのスナップショット格納先を連動させていたが、そのほか、使用中パーティション(スナップショット)13004で示されるパリティグループを所定量使うまでは切り替えないなど条件を設定することもできる。この場合は、ステップ24060でYESの直後に、前記のような条件を判定するステップを追加すればよい。これにより、より効率的なジャーナルボリュームの利用が可能となる。
また、本実施形態では、単一のジャーナルグループのジャーナル格納先パリティグループ切り替えに、監視対象ジャーナルグループ群の全ジャーナルグループのジャーナル格納先を連動させると、ジャーナルグループによっては要求されたジャーナルボリューム容量を満たせないことがある。これを回避するために、別の実施形態として、動的にジャーナルグループを割り当てることも可能である。これを行うには、図23を用いて説明した処理のステップ24030とステップ24040の間に動的にSSVOLグループを追加する処理を追加すればよい。この処理は、図15に示した流れのジャーナルボリューム割当てをSSVOLグループ割当てに読み替えたものと同等になるため説明を省略する。
図23に戻って、次に、ステップ24070において、ジャーナル監視プログラム1252に従い動作するCPU1230からジャーナル格納先ジャーナルボリュームの切り替え指示を受けたマイクロプログラム1028に従い動作するCPU1023の処理の流れを、図24を用いて説明する。
ジャーナル監視プログラム1252に従い動作するCPU1230からジャーナル格納先ジャーナルボリュームの切り替え指示を受けつけると、マイクロプログラム1028に従い動作するCPU1023は、指定されたSSVOLグループの次利用フラグ8004を「TRUE」に設定し、その他のSSVOLグループの次利用フラグを「FALSE」に設定する(ステップ25010)。
以上が、スナップショット格納先の切り替え指示を受けたマイクロプログラム1028に従い動作するCPU1023の処理の流れである。
以上が第3実施形態の説明である。当該第3実施形態によれば、第1実施形態のように複数のジャーナルグループのジャーナル格納先を連動させることに加え、スナップショット格納先も連動させることができる。このため、監視対象ジャーナルグループ群に属するジャーナルグループのスナップショット格納先を連動させることができるため、複数ジャーナルグループに跨って、特定時点のスナップショットの格納先を局所化することができる。また、この結果、特定の論理記憶領域の集合毎に、または特定の物理記憶領域の集合毎に属性を管理する機能を、特定時間帯のスナップショット管理に適用できる。具体的には、本実施形態では、スナップショットを格納する可能性の無いパリティグループの電源をOFFにする例を示した。
なお、上記した各実施形態では、属性として通電状態(ディスクの電源のON/OFF)を例にとって説明したが、属性はそれ以外のものであってもよい。その他の属性としては、たとえば、配置場所、コピー状態、アクセス禁止の有無などに関するものがあげられる。
配置場所に関して属性が存在する状態とは、ジャーナルの配置場所(記憶媒体)として、複数の種類が用意されている状態のことである。そうすれば、たとえば、新しいジャーナルや高速アクセスの可能性が高いジャーナルなどは高性能の記憶媒体に格納しておき、古いジャーナルや高速アクセスの可能性が低いジャーナルなどは低性能の記憶媒体に格納しておく、といった効率的なデータ管理が可能になる。
コピー状態に関して属性が存在する状態とは、ジャーナルを、(遠隔地のコンピュータ装置などへの)コピーの状態によって、たとえば、コピーを完了したもの、コピー動作の途中のもの、コピー動作を開始すらしていないもの、などの種類に分けることができる状態のことである。そうすれば、コピー状態に関して、ジャーナルをより効率よく管理することができる。
アクセス禁止の有無に関して属性が存在する状態とは、ジャーナルを、不正な改ざんなどから守るために、少なくともその一部をアクセス(書き換えなど)できないようにすることができる状態のことである。たとえば、ある程度古いジャーナルは書き換える必要がほとんどないため、アクセス禁止にしておけばよい。そうすれば、アクセス禁止のジャーナルに関して、より高いセキュリティを保証することができる。
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではなく、ハードウェアやフローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
第1実施形態におけるシステム構成を示す図である。 第1実施形態におけるパリティグループ構成テーブルの一例を示す図である。 第1実施形態における論理ボリュームテーブルの一例を示す図である。 第1実施形態におけるジャーナルグループテーブルの一例を示す図である。 第1実施形態におけるデータボリュームテーブルの一例を示す図である。 第1実施形態におけるスナップショットボリューム管理テーブルの一例を示す図である。 第1実施形態におけるSSVOLグループ管理テーブルの一例を示す図である。 第1実施形態におけるジャーナルボリュームテーブルの一例を示す図である。 第1実施形態におけるジャーナルの構成の一例を示す図である。 第1実施形態におけるJNL格納先連動管理テーブルの一例を示す図である。 第1実施形態におけるパーティション管理テーブルの一例を示す図である。 第1実施形態における管理グループテーブルの一例を示す図である。 第1実施形態におけるジャーナルボリューム割当て処理動作の一例を示す図である。 第1実施形態におけるジャーナル格納先監視及び制御処理動作の一例を示す図である。 第1実施形態におけるジャーナル格納先監視及び制御処理動作の別の実施形態を示す図である。 第1実施形態におけるジャーナル格納先変更処理動作の一例を示す図である。 第2実施形態におけるシステム構成を示す図である。 第2実施形態における仮想ボリューム管理テーブルの一例を示す図である。 第3実施形態におけるシステム構成を示す図である。 第3実施形態における管理グループテーブルの一例を示す図である。 第3実施形態におけるスナップショット格納先連動管理テーブルの一例を示す図である。 第3実施形態におけるスナップショットグループの割当て処理動作の一例を示す図である。 第3実施形態におけるスナップショット格納先監視及び制御処理動作の一例を示す図である。 第3実施形態におけるスナップショット格納先変更処理動作の一例を示す図である。 従来技術の課題を表す図である。
符号の説明
1000 ストレージ装置
1010 ディスク装置
1020 ディスクコントローラ
1100 ホスト計算機
1200 管理計算機
1300 データネットワーク
1400 管理ネットワーク
1500 外部ストレージ装置

Claims (20)

  1. 1つ以上のホスト計算機と、前記ホスト計算機が使用したデータを格納するストレージ装置と、前記ストレージ装置によるデータの格納を管理する管理計算機と、を備え、それらがネットワークにより接続され、
    前記ホスト計算機は、自身が使用するデータを格納する1つ以上のデータボリュームを有し、
    前記ストレージ装置は、ディスク装置と処理部とを有し、
    前記ディスク装置は、
    前記データボリュームの特定時点のデータイメージであるスナップショットを格納するスナップショットボリュームと、
    前記データボリュームに対応して割り当てられ、前記ホスト計算機が前記データボリュームに書き込むデータを受信し、ジャーナルとして格納するジャーナルボリュームと、を備え、
    前記ジャーナルボリュームは、論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、
    前記処理部は、
    前記スナップショットに対して前記ジャーナルを適用することでデータのリカバリを行う、計算機システムであって、
    前記管理計算機は、前記ジャーナルの格納先である前記ジャーナルボリュームを監視し、前記ジャーナルボリュームへの前記ジャーナルの格納が並行して複数行われている場合、その前記ジャーナルの格納先のいずれかがそれまで格納してきた前記グループとは異なるグループに移行したことを検知したとき、その他の前記ジャーナルの格納先も当該移行後のグループに移行するように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示にしたがって、前記ジャーナルの格納先の前記グループ間での移行を行う
    ことを特徴とする計算機システム。
  2. 前記ストレージ装置の処理部は、前記管理計算機からの指示により、前記ホスト計算機のデータボリュームに対して前記ジャーナルボリュームを割り当てる際に、同一の前記グループ内のジャーナルボリュームを連続的に使用するように設定することを特徴とする請求項1に記載の計算機システム。
  3. 前記グループは、属するすべての前記ジャーナルボリュームの属性を一括変更可能なジャーナルボリュームの集合であることを特徴とする請求項1に記載の計算機システム。
  4. 前記属性は、前記グループ全体の通電状態を示す属性であることを特徴とする請求項3に記載の計算機システム。
  5. 前記管理計算機は、所定時間後に前記ジャーナルの格納先のいずれかが前記グループ間で移行することを、その移行元の前記ジャーナルボリュームの空き容量が所定量よりも少なくなったことから判断し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その移行先の前記ジャーナルボリュームが属するグループが通常稼動状態になるように電源を管理することを特徴とする請求項4に記載の計算機システム。
  6. 前記管理計算機は、前記データボリュームに割り当てられた前記ジャーナルボリュームが1つもない前記グループに関して、電源をOFFする、あるいは、稼動状態が省電力状態になるように電源を管理するように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記グループに関して、電源をOFFする、あるいは、稼動状態が省電力状態になるように電源を管理することを特徴とする請求項5に記載の計算機システム。
  7. 前記管理計算機は、いずれかの前記ジャーナルの格納先が前記グループ間で移行した場合、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行するように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行することを特徴とする請求項1に記載の計算機システム。
  8. 前記管理計算機は、前記ホスト計算機のいずれかの前記データボリュームに割り当てられた前記ジャーナルボリュームの容量が不足していることを検知した場合、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てるように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てることを特徴とする請求項1に記載の計算機システム。
  9. 1つ以上のホスト計算機と、前記ホスト計算機が使用したデータを格納するストレージ装置と、前記ストレージ装置によるデータの格納を管理する管理計算機と、を備え、それらがネットワークにより接続され、
    前記ホスト計算機は、自身が使用するデータを格納する1つ以上のデータボリュームを有し、
    前記ストレージ装置は、ディスク装置と処理部とを有し、
    前記ディスク装置は、
    前記データボリュームの特定時点のデータイメージであるスナップショットを格納するスナップショットボリュームと、
    前記データボリュームに対応して割り当てられ、前記ホスト計算機が前記データボリュームに書き込むデータを受信し、ジャーナルとして格納するジャーナルボリュームと、を備え、
    前記ジャーナルボリュームは、論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、
    前記処理部は、
    前記スナップショットに対して前記ジャーナルを適用することでデータのリカバリを行う、計算機システムにおけるデータ管理方法であって、
    前記管理計算機は、前記ジャーナルの格納先である前記ジャーナルボリュームを監視し、前記ジャーナルボリュームへの前記ジャーナルの格納が並行して複数行われている場合、その前記ジャーナルの格納先のいずれかがそれまで格納してきた前記グループとは異なる前記グループに移行したことを検知したとき、その他の前記ジャーナルの格納先も当該移行後のグループに移行するように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示にしたがって、前記ジャーナルの格納先の前記グループ間での移行を行う
    ことを特徴とするデータ管理方法。
  10. 前記ストレージ装置の処理部は、前記管理計算機からの指示により、前記ホスト計算機のデータボリュームに対して前記ジャーナルボリュームを割り当てる際に、同一の前記グループ内のジャーナルボリュームを連続的に使用するように設定することを特徴とする請求項9に記載のデータ管理方法。
  11. 前記グループは、属するすべての前記ジャーナルボリュームの属性を一括変更可能なジャーナルボリュームの集合であることを特徴とする請求項9に記載のデータ管理方法。
  12. 前記属性は、前記グループ全体の通電状態を示す属性であることを特徴とする請求項11に記載のデータ管理方法。
  13. 前記管理計算機は、所定時間後に前記ジャーナルの格納先のいずれかが前記グループ間で移行することを、その移行元の前記ジャーナルボリュームの空き容量が所定量よりも少なくなったことから判断し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その移行先の前記ジャーナルボリュームが属する前記グループが通常稼動状態になるように電源を管理することを特徴とする請求項12に記載のデータ管理方法。
  14. 前記管理計算機は、前記データボリュームに割り当てられた前記ジャーナルボリュームが1つもない前記グループに関して、電源をOFFする、あるいは、稼動状態が省電力状態になるように電源を管理するように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記グループに関して、電源をOFFする、あるいは、稼動状態が省電力状態になるように電源を管理することを特徴とする請求項13に記載のデータ管理方法。
  15. 前記管理計算機は、いずれかの前記ジャーナルの格納先が前記グループ間で移行した場合、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行するように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その他の前記ジャーナルの格納先を、移行元の前記グループ内のジャーナルボリュームを所定量使用した後に、前記移行後グループに移行することを特徴とする請求項9に記載のデータ管理方法。
  16. 前記管理計算機は、前記ホスト計算機のいずれかの前記データボリュームに割り当てられた前記ジャーナルボリュームの容量が不足していることを検知した場合、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てるように前記ストレージ装置に指示し、
    前記ストレージ装置の処理部は、前記管理計算機からの指示により、その前記データボリュームに対して新たな前記ジャーナルボリュームを割り当てることを特徴とする請求項9に記載のデータ管理方法。
  17. 自身が使用するデータを格納する1つ以上のデータボリュームを有する1つ以上のホスト計算機と、前記データボリュームの特定時点のデータイメージであるスナップショットをスナップショットボリュームに格納し、前記ホスト計算機が前記データボリュームに書き込むデータを受信してジャーナルとしてジャーナルボリュームに格納し、そのジャーナルボリュームは論理的あるいは物理的に複数のグループのいずれかに属するように分類されており、前記スナップショットに対して前記ジャーナルを適用することでデータのリカバリを行うストレージ装置と、ネットワークによって接続され、前記ストレージ装置によるデータの格納を管理する管理計算機であって、
    前記ジャーナルの格納先である前記ストレージ装置のジャーナルボリュームを監視し、そのジャーナルボリュームへのジャーナルの格納が並行して複数行われている場合、そのジャーナルの格納先のいずれかがそれまで格納してきたグループとは異なるグループに移行したことを検知したとき、その他のジャーナルの格納先も当該移行後のグループに移行するように前記ストレージ装置に指示する処理部を有する
    ことを特徴とする管理計算機。
  18. 前記処理部は、前記ホスト計算機のデータボリュームに対して前記ストレージ装置のジャーナルボリュームを割り当てる際に、同一のグループ内のジャーナルボリュームを連続的に使用するように前記ストレージ装置に指示することを特徴とする請求項17に記載の管理計算機。
  19. 前記グループは、属するすべての前記ジャーナルボリュームの属性を一括変更可能なジャーナルボリュームの集合であることを特徴とする請求項17に記載の管理計算機。
  20. 前記属性は、前記グループ全体の通電状態を示す属性であることを特徴とする請求項19に記載の管理計算機。
JP2006241482A 2006-09-06 2006-09-06 計算機システム、データ管理方法及び管理計算機 Pending JP2008065525A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006241482A JP2008065525A (ja) 2006-09-06 2006-09-06 計算機システム、データ管理方法及び管理計算機
US11/554,218 US7698503B2 (en) 2006-09-06 2006-10-30 Computer system with data recovering, method of managing data with data recovering and managing computer for data recovering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006241482A JP2008065525A (ja) 2006-09-06 2006-09-06 計算機システム、データ管理方法及び管理計算機

Publications (1)

Publication Number Publication Date
JP2008065525A true JP2008065525A (ja) 2008-03-21

Family

ID=39153412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006241482A Pending JP2008065525A (ja) 2006-09-06 2006-09-06 計算機システム、データ管理方法及び管理計算機

Country Status (2)

Country Link
US (1) US7698503B2 (ja)
JP (1) JP2008065525A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014199553A1 (ja) * 2013-06-14 2014-12-18 日本電気株式会社 受付ノードによるデータ格納先の決定方法
WO2015173859A1 (ja) * 2014-05-12 2015-11-19 株式会社日立製作所 ストレージシステム及びその制御方法
JP2022088400A (ja) * 2020-10-19 2022-06-14 株式会社日立製作所 バックアップシステム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536529B1 (en) 2005-06-10 2009-05-19 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for provisioning space in a data storage system
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US9354927B2 (en) 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US8006061B1 (en) 2007-04-13 2011-08-23 American Megatrends, Inc. Data migration between multiple tiers in a storage system using pivot tables
US8370597B1 (en) 2007-04-13 2013-02-05 American Megatrends, Inc. Data migration between multiple tiers in a storage system using age and frequency statistics
JP4981523B2 (ja) * 2007-05-28 2012-07-25 株式会社日立製作所 ストレージシステム及びストレージシステム管理方法
US9495370B1 (en) * 2007-07-19 2016-11-15 American Megatrends, Inc. Data recovery point review in a continuous data protection system
US8015420B2 (en) * 2007-11-21 2011-09-06 Dell Products L.P. System and method for power management of a storage enclosure
US8706694B2 (en) * 2008-07-15 2014-04-22 American Megatrends, Inc. Continuous data protection of files stored on a remote storage device
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
US8155766B2 (en) * 2008-11-03 2012-04-10 Hitachi, Ltd. Methods and apparatus to provision power-saving storage system
JP5343647B2 (ja) * 2009-03-18 2013-11-13 株式会社リコー 情報処理装置、画像形成装置、データ復帰方法、プログラム、記憶媒体
US20120284459A1 (en) * 2011-05-05 2012-11-08 International Business Machines Corporation Write-through-and-back cache
US9207881B1 (en) * 2012-10-11 2015-12-08 Emc Corporation System and method for object management
JP6072255B2 (ja) * 2013-01-11 2017-02-01 株式会社日立製作所 ストレージシステム、ストレージシステムの制御方法及び管理システム
US9665307B1 (en) * 2013-12-19 2017-05-30 EMC IP Holding Company LLC Incremental continuous data protection
US10152391B2 (en) * 2014-02-28 2018-12-11 Ncr Corporation Self-service terminal (SST) backups and rollbacks
US11263085B2 (en) * 2018-10-25 2022-03-01 EMC IP Holding Company LLC Systems and methods for performing backups of a server database

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3974538B2 (ja) 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
JP4462852B2 (ja) 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US20050015416A1 (en) * 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
JP4486348B2 (ja) 2003-11-26 2010-06-23 株式会社日立製作所 ドライブの稼働時間を抑止するディスクアレイ
JP4938328B2 (ja) * 2006-03-28 2012-05-23 株式会社日立製作所 記憶システム及びその電源制御方法並びにストレージ装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014199553A1 (ja) * 2013-06-14 2014-12-18 日本電気株式会社 受付ノードによるデータ格納先の決定方法
WO2015173859A1 (ja) * 2014-05-12 2015-11-19 株式会社日立製作所 ストレージシステム及びその制御方法
US9563383B2 (en) 2014-05-12 2017-02-07 Hitachi, Ltd. Storage system with primary and secondary data storage groups and control method thereof
JP2022088400A (ja) * 2020-10-19 2022-06-14 株式会社日立製作所 バックアップシステム
JP7304452B2 (ja) 2020-10-19 2023-07-06 株式会社日立製作所 バックアップシステム

Also Published As

Publication number Publication date
US20080059732A1 (en) 2008-03-06
US7698503B2 (en) 2010-04-13

Similar Documents

Publication Publication Date Title
JP2008065525A (ja) 計算機システム、データ管理方法及び管理計算機
US7480780B2 (en) Highly available external storage system
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US8447924B2 (en) Computer system having an expansion device for virtualizing a migration source wherein the operation mode of the computer is set to a cache through or write after mode
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
US8281179B2 (en) Information system, data transfer method and data protection method
US8458421B2 (en) Volume management apparatus and storage system
US8448167B2 (en) Storage system, and remote copy control method therefor
US7558916B2 (en) Storage system, data processing method and storage apparatus
US8204858B2 (en) Snapshot reset method and apparatus
US8443160B2 (en) Computer system and data migration method
US7865772B2 (en) Management device and management method
US20070198604A1 (en) Computer system, computer system management console, and data recovery management method
JP2010049634A (ja) ストレージシステム及びストレージシステムにおけるデータ移行方法
US10747624B2 (en) Storage system and control method of storage system using asynchronous remote copying to backup volume at specific time points
WO2012117515A1 (ja) 計算機システム、管理システム及びデータ管理方法
JP5597266B2 (ja) ストレージシステム
US20230350753A1 (en) Storage system and failure handling method
US20140208023A1 (en) Storage system and control method for storage system
JP2020201702A (ja) ストレージシステム及びスナップショット管理方法