JP4839133B2 - ストレージ装置のデータ管理方法及び計算機システム - Google Patents

ストレージ装置のデータ管理方法及び計算機システム Download PDF

Info

Publication number
JP4839133B2
JP4839133B2 JP2006141379A JP2006141379A JP4839133B2 JP 4839133 B2 JP4839133 B2 JP 4839133B2 JP 2006141379 A JP2006141379 A JP 2006141379A JP 2006141379 A JP2006141379 A JP 2006141379A JP 4839133 B2 JP4839133 B2 JP 4839133B2
Authority
JP
Japan
Prior art keywords
data
volume
target data
operation target
buffer
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.)
Expired - Fee Related
Application number
JP2006141379A
Other languages
English (en)
Other versions
JP2007310788A (ja
Inventor
聡 渡辺
芳生 鈴木
真二 藤原
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 JP2006141379A priority Critical patent/JP4839133B2/ja
Priority to US11/454,088 priority patent/US7610460B2/en
Publication of JP2007310788A publication Critical patent/JP2007310788A/ja
Application granted granted Critical
Publication of JP4839133B2 publication Critical patent/JP4839133B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • 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)

Description

本発明は、ストレージ装置のデータ管理方法、特に、差分スナップショット技術を用いる場合のデータ管理方法に関する。
計算機システムでは、データバックアップやデータチェックのために、ストレージ装置に格納されているデータを複製する場合がある。データを複製する方法としては、全てのデータを別のデータ領域にコピーする方法がある。しかし、この方法では、元のデータと、コピー先のデータの二つのデータを格納するために、大きなサイズのデータ格納領域が必要である。そのため、データの更新差分だけを管理し、仮想的にデータを複製する差分スナップショットという技術が用いられている。
差分スナップショット技術を用いる場合、ストレージ装置に対し、二つのデータ格納領域を設定する。一つ目のデータ格納領域をプライマリボリュームと呼び、二つ目のデータ格納領域を差分ボリュームと呼ぶ。プライマリボリュームには、複製元のデータを格納する。そして、プライマリボリュームのデータを更新する際に、更新前のデータを差分ボリュームに退避する。コピー先のデータを参照する場合には、まず差分ボリュームに該当データが退避されているか否かをチェックする。そして、データが退避されている場合には、差分ボリュームのデータを参照し、退避されていない場合には、プライマリボリュームのデータを参照する。また、差分ボリュームのデータを更新する場合には、その更新したデータを差分ボリュームに格納する。
差分スナップボリュームには、更新されたデータだけを格納するため、通常、そのサイズは小さい。そのため、差分スナップショット技術を用いることで、大きなサイズのデータ格納領域を用いずに、仮想的にデータを複製できる。
差分スナップショット技術に関しては、例えば、特許文献1に記載されている。また、データ退避に関する技術としては、非特許文献1が知られている。
特開2004−272854号公報 Kazuo Goda, Takayuki Tamura, Masato Oguchi and Masaru Kitsuregawa 著、「Run-time Load Balancing System on SAN-connected PC Cluster for Dynamic Injection of CPU and Disk Resource --- A Case Study of Data Mining Application ---」、Proceedings of 13th International Conference on Database and Expert Systems Applications (DEXA2002) 刊、2002年9月発行、第182頁−第192頁
計算機システムでは、サーバ装置上で動作するアプリケーションプログラムが、ストレージ装置に対してデータ操作の指示を行なう場合が多い。このアプリケーションプログラムの例としては、DBMS(Database Management System)が挙げられる。DBMSなどのアプリケーションプログラムがデータ更新を行なう場合、該当データを一旦サーバ装置のメモリ領域にデータを読み込み、メモリ領域のデータを変更した後、変更したデータをストレージ装置に書き出す場合がある。
そのため、プライマリボリュームのデータを更新する場合、以下のようにプライマリボリュームに対して3回のアクセスが行なわれる。まず、アプリケーションプログラムが、プライマリボリュームから更新対象のデータをメモリ領域に読み込む。次に、アプリケーションプログラムが、データをストレージ装置に書き出す。この書き出しの際に、更新前のデータを退避するために、プライマリボリュームのデータを読み出す。また、更新後のデータをプライマリボリュームに書き込む。このように、プライマリボリュームに対するアクセス回数が増大し、ストレージ装置の負荷が大きくなる問題があった。
本発明は、上記を鑑みてなされたもので、差分スナップショットを利用する際の、ストレージ装置の負荷を削減することを目的とする。
本発明の一態様は、第1のボリュームと第2のボリュームを備えるストレージ装置のデータを管理する方法であって、サーバ装置が、端末計算機からデータの操作指示を受信するステップと、前記サーバ装置が、前記データの操作指示に基づいて操作対象のデータを決定するステップと、前記サーバ装置が、前記操作対象のデータが更新用か参照用かを判定するステップと、前記サーバ装置が、当該サーバ装置に設定されたバッファに、前記操作対象のデータが読み込まれているか否かを判定するステップと、前記操作対象のデータが参照用で、かつ、前記操作対象のデータが前記バッファに読み込まれていない場合に、前記サーバ装置が、前記第1のボリュームから読み出された前記操作対象のデータを前記バッファに読み込むステップと、前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれてない場合に、前記サーバ装置が、前記ストレージ装置に、前記第1のボリュームから前記操作対象のデータを読み出し、かつ、前記操作対象のデータを前記第2のボリュームに退避することを指示する第1のコマンドを発行し、前記ストレージ装置から前記操作対象のデータを受信して前記バッファに格納し、当該バッファにおいて更新を実行するステップと、前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれている場合に、前記サーバ装置が、前記ストレージ装置に、前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避することを指示する第2のコマンドを発行し、前記バッファにおいて更新を実行するステップと、を含む。
本発明により、データをメモリ領域に読み込む際に、差分ボリュームへデータを退避でき、第1のボリュームに対するアクセス回数を2回に削減できる。そしてデータの退避は完了しているため、データ更新の際に第1のボリュームのデータを読み出す必要がない。これにより、ストレージ装置の負荷が削減される。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明を適用する第1の実施形態の計算機システムの構成を示すブロック図である。図1では、サーバ1でDBMS(DataBase Management System)が動作し、ストレージ2がデータベース101を格納する計算機システムを示している。
サーバ1のDBMS100が、ネットワーク3を介して操作端末(端末計算機)5などからデータの操作要求を受け付け、その要求に従ってデータベース101に対するデータの操作を実行する。
ここで、サーバ1には、演算処理を実行するCPU11と、プログラムやデータを一時的に格納するメモリ12と、CPU11とI/Oのアクセスを制御するデータ転送コントローラ13と、ネットワーク3に接続された通信部(ネットワークインターフェース)14及びストレージ用のインターフェース15が設けられている。
メモリ12にはDBMS100のプログラムが格納されており、CPU11がDBMS100のプログラムを実行する。データ転送コントローラ13は、CPU11、通信部14、ストレージ用のインターフェース15の間でデータを転送する。ストレージ用のインターフェース15はSAN(Storage Area Network)4を介してストレージ2に接続されている。DBMS100は、SQL実行部110、バッファ管理部120、ディスク管理部130、データ領域管理テーブル121、DBバッファ140によって構成されている。
ストレージ2は、ドライブ30、ドライブ31と、これらのドライブを制御するストレージコントローラ20から構成される。ここに、ドライブ30、ドライブ31は、データを格納する装置である。以下、図1と図2における30番のドライブをドライブ1、31番のドライブをドライブ2と記す。
ストレージコントローラ20は、演算処理を実行するCPU21と、プログラムやデータを格納するメモリ22と、データ転送コントローラ23と、SAN4に接続されたインターフェース24と、ドライブ1と、ドライブ2に接続されたインターフェース25と、ネットワーク3に接続されたインターフェース26が設けられている。
メモリ22には、ストレージ制御部210と退避指示判定部220のプログラムが格納されており、CPU21がこれらのプログラムを実行することによって、ドライブ1、ドライブ2へのアクセスを実行する。データ転送コントローラ23は、CPU21、インターフェース24、25の間でデータを転送する。
ストレージ制御部210は、サーバ1からデータ操作に関するコマンドを受信し、それに基づいてドライブ1、ドライブ2に格納されたデータの操作を行なう。ここに、データ操作コマンドとは、データの参照(Read)やデータの更新(Write)である。但し、本発明のストレージ2は、後に説明するように、データ退避の指示を含むデータ参照コマンドや、データ退避コマンドを受付けることができる。
ストレージ制御部210は、サーバ1から受信したコマンドに、データ退避の指示が含まれるか否かを判定するために、受信したコマンドを、退避指示判定部220に送信する。退避指示判定部220は、コマンドにデータ退避の指示が含まれるか否かの判定を行ない、その結果をストレージ制御部210に送信する。後に図10と図12のフローチャートを用いて説明するように、ストレージ制御部210は、コマンドにデータ退避の指示が含まれている場合には、データの退避を実行する。
図2に示すように、ストレージ制御部210は、ボリューム管理テーブル211を管理している。図5に例示するように、ボリューム管理テーブル211には、論理的なデータ格納領域であるボリュームとドライブの対応が記載されている。このボリュームは、ロジカルユニットと呼ばれる場合もある。図5の例では、ボリューム名2111「VOL1」のエントリの、ドライブ名2113に「ドライブ1」が指定されていることから、VOL1にドライブ1が対応することを示している。同様に、VOL2にはドライブ2が対応することを示している。一つのボリュームに対して複数のドライブを対応させることも可能であるが、図5では、一つのボリュームに一つのドライブを対応させる例を示している。
また、ボリューム管理テーブル211には、種別2112と差分ボリューム名2114が記載されている。種別2112には「Primary」または「Differential」が指定され、「Primary」は差分スナップショットの退避元ボリュームであることを示し、「Differintial」は差分スナップショットの退避先ボリュームであることを示す。図5の例ではVOL1に「Primary」が指定され、VOL2に「Differintial」が記載されていることから、VOL1が退避元のボリュームであり、VOL2が退避先のボリュームに指定されている。さらに、VOL1の差分ボリューム名2114にVOL2が記載されており、VOL1の差分スナップショットの退避先ボリュームがVOL2であることを示している。また、VOL2の差分ボリューム名2114にVOL1が記載されており、VOL2の差分スナップショットの退避元ボリュームがVOL1であることを示している。
ボリュームのデータ格納領域は、512バイトなどの一定サイズの領域に区切られ、それぞれにアドレスを付与されて管理されている。このアドレスは、ロジカルブロックアドレス(LBA)と呼ばれる場合がある。図6は、VOL1に格納されているデータベース101を例示している。アドレス1011はVOL1の一定サイズの領域ごとに付与される番号であり、図6の例では、VOL1のアドレス「0」にデータ“AAA”が格納されている。以上のように、ボリューム名とアドレスによって、ストレージが管理するドライブにアクセスできる。例えば、ストレージ制御部210が、サーバ1からVOL1のアドレス「0」のデータのReadを指示するデータ操作コマンドを受け取った場合には、サーバ1に“AAA”を送信する。
また、ストレージ制御部210は、図2に示すように、差分管理テーブル221と退避管理テーブル222を管理している。図7に例示する差分管理テーブル221には、差分スナップショットの退避元ボリュームのアドレス2211と、退避先ボリュームのアドレス2212が記載されている。図7の最初のエントリは、退避元ボリュームであるVOL1のアドレス「100」のデータが、退避先ボリュームであるVOL2のアドレス「0」に退避されていることを示している。また、2番目のエントリと3番目のエントリは、VOL1のアドレス「200」のデータはVOL2のアドレス「1」に、VOL1のアドレス「300」のデータはVOL2のアドレス「2」に退避されていることを示している。
退避管理テーブル222は、退避元ボリュームのデータが退避済みか否かを記録するテーブルである。退避フラグ2222には、「0」または、「1」が記載され、「0」はデータが退避済みでないことを示し、「1」はデータが退避済みであることを示す。図8の例では、退避元ボリュームであるVOL1のアドレス「0」の退避フラグ2222は「0」であり、退避済みでないことを示している。同様に、VOL1のアドレス「1」、アドレス「2」のデータも退避済みでないことを示している。ストレージ制御部210は、退避元ボリュームのデータを退避先ボリュームに退避した場合に、差分管理テーブル221と退避管理テーブル222の内容を変更する。
次に、DBMS100の動作例について説明する。
図1に示すように、DBMS100のプログラムはサーバ1のメモリ12に格納されており、CPU11により実行される。DBMS100は、操作端末5からデータ操作要求を受け付け、この要求に対応するクエリプランを作成する。ここにデータ操作要求とは、SQL(Structured Query Language)などで記述されたデータの更新や参照などの指示である。また、クエリプランとは、指示されたデータ操作の実行方法であり、読み込むデータのボリューム名やアドレス、読み込んだデータの変更方法などが指定されている。
SQL実行部110は、操作端末5から受信したデータ操作要求に基づいてクエリプランを作成する。データ操作要求とは、例えば、テーブル名が「Warehouse」で識別カラム名「W_id」が「1」のデータの参照、といったものである。このデータ操作要求からクエリプランを生成するために、SQL実行部110はデータ領域管理テーブル121を使用する。図3に示すように、データ管理テーブル121には、テーブル名1210、識別カラム名1211、識別カラム1212、ボリューム名1213、および、アドレス1214が記載されている。図3の例では、テーブル名が「Warehouse」で識別カラム名「W_id」が「1」のデータは、ボリューム名「VOL1」のアドレス「0」に格納されていることが分かる。従って、外部記憶装置のボリューム名「VOL1」のアドレス「0」のデータを取得し操作端末5に送信するというクエリプランを生成することができる。なお、以上では、データ操作要求として一つのデータを参照する例を示したが、以上の操作を繰り返すことによって、複数のデータ参照やデータ更新を含むデータ操作要求に対するクエリプランを作成することも可能である。
SQL実行部110は生成したクエリプランに従って、データの参照や更新を行なう。データ参照の場合、SQL実行部110は参照するデータのボリューム名とアドレスをバッファ管理部120に通知する。バッファ管理部120は、DBバッファ140を管理しており、要求されたデータがDBバッファ140にある場合には、このデータをSQL実行部110に渡す。SQL実行部110は、バッファ管理部120から受け取ったデータを操作端末5に送信する。DBバッファ140の格納内容を図4に例示する。DBバッファ140には、ボリューム名1401とアドレス1402とデータ1403が記載されており、SQL実行部110から要求されたデータが既にDBバッファ140に読み込まれているか否かを判定できる。SQL実行部110から要求されたデータがDBバッファ140に読み込まれていない場合、バッファ管理部120はストレージ2に対してデータ参照コマンドを発行し、読み込んだデータをDBバッファ140に格納する。そして、バッファ管理部120はSQL実行部110にデータを渡す。
SQL実行部110がデータ更新をする場合、更新するデータのボリューム名とアドレスをバッファ管理部120に通知する。バッファ管理部120は、要求されたデータがDBバッファ140にある場合には、このデータをSQL実行部110に渡す。要求されたデータがDBバッファ140にない場合には、バッファ管理部120はストレージ2に対してデータ読み込みコマンドを発行し、読み込んだデータをDBバッファ140に格納すし、SQL実行部110にデータを渡す。SQL実行部110は受け取ったデータに対し更新を行ない、そのデータをバッファ管理部120に渡す。バッファ管理部120は受け取ったデータをDBバッファ140に格納し、ストレージ2に対してデータ更新のコマンドを発行する。
以上のDBMS100の動作例において、SQL実行部110は、データが参照用か更新用か判定することができる。例えば、操作端末5からデータ更新の要求を受付けた場合、そのデータは更新用のデータである。また、複数のデータ参照とデータ更新を含むクエリプランが生成された場合、参照したデータが後に更新されるのであれば、データ参照の時点で、更新用のデータと判定することができる。更新用データと判定した場合、SQL実行部110は、ボリューム名とアドレスと更新用データであることをバッファ管理部120に通知する。更新用データであることを通知されたバッファ管理部120は、データ参照コマンドを退避指示追加部130に送信する。退避指示追加部130はデータ参照コマンドにデータの退避を指示するタグを追加して、バッファ管理部120に送信する。バッファ管理部120はデータの退避を指示が追加されたデータ参照コマンドをストレージ2に送信する。データ退避タグ付きのデータ読み込みコマンドを受信したストレージ2は、退避元ボリュームのデータを退避先ボリュームにデータを退避して、データをサーバ1に送信する。
また、バッファ管理部120は、更新用のデータが既にDBバッファ140に存在する場合に、退避だけを指示するコマンドをストレージ2に発行することができる。これにより、ストレージ2は、退避元ボリュームのデータを退避先ボリュームにデータを退避する動作を予め実行することができる。
また、上記の実施例の他に、ストレージ2が、図15に例示する退避ボリューム設定テーブルを管理する実施例がある。この実施例では、退避ボリューム設定テーブルに設定されたボリュームのデータがアクセスされた場合に、ストレージ2はデータを退避先ボリュームに退避する。
<処理の詳細>
次に、サーバ1のDBMS100とストレージ2のストレージ制御部210で行われる処理の詳細について説明する。図9は、DBMS100で行われる処理の一例を示すフローチャートで、操作端末5からクエリを受け付けるたびに実行される。
DBMS100は、操作端末5からクエリ(データの操作指示)を受け付けると(S1)、クエリの内容を解析してクエリプランを作成する(S2)。S3では、作成したクエリプランに基づいて、ストレージ2からサーバ1へ読み込むデータを決定する。
S4では、サーバ1へ読み込むべきデータが、DBバッファ140に読み込まれているか否かを判定する。既に、読み込むべきデータがDBバッファ140に読み込まれている場合にはS9へ進む。DBバッファ140に該当するデータが読み込まれていない場合にはS5に進む。
S5では、ストレージ2から読み込むデータが更新用のデータか否かを判定する。すなわち、上記S2で作成したクエリプランを解析して、サーバ1へ該当するデータを読み込んだ後に更新するか否かを判定する。そして、更新用のデータである場合にはS6に進んでデータ退避タグ付きの参照コマンドを生成する。更新用のデータでない場合には、通常の参照コマンドを設定してS7に進む。
S7では、上記S5、S6で設定したデータ退避タグ付き参照コマンドまたは参照コマンドをストレージ2へ送信する。
S8では、データ退避タグ付き参照コマンドまたは参照コマンドに対するストレージ2からのデータを受信する。そして、DBMS100は、受信したデータをDBバッファ140に格納する。
次に、S9ではDBバッファ140へ読み込んだ(または既に読み込まれている)データに対して更新するか否かを判定する。更新を行う場合には、S10に進んでDBバッファ140上の該当データに対してクエリプランに従った更新を実行する。一方、読み込んだデータに対して更新を行わない場合にはS11へ進む。S11では、クエリを送信した操作端末5に対してクエリの結果を通知する。
以上の処理を操作端末5からクエリを受け付けるたびに実行することにより、サーバ1のDBバッファ140へ読み込んだデータについて更新を行う場合には、データ退避タグ付き参照コマンドを発行し、データ参照と合わせて該当データの退避を実行することができる。
上記S1で、操作端末5からサーバ1に送信されるデータ操作指示とは、例えば「UPDATE Warehouse SET name = "Tokyo" WHERE W_id = 1」といったものである。これは、図3で示したように、Warehouseというテーブル名1210のW_idという識別カラム名1211が「1」のnameカラム1212の値をTokyoに変更する指示である。
上記では、UPDATE文の実施例を示したが、「SELECT name FROM Warehouse Where W_id = 1」といったデータ操作指示を受け付けることもできる。これは、WarehouseテーブルのW_idカラムが「1」のnameカラムのデータの読み込みを指示するものである。
次に、ストレージ2のストレージコントローラ20で行われる処理について説明する。図10、図11、図12は、ストレージコントローラ20で行われる処理の例を示すフローチャートである。図10は、ストレージコントローラ20がSAN4から参照コマンドまたはデータ退避タグ付き参照コマンドを受信したときの処理を示す。図11は、ストレージコントローラ20がSAN4から書き込みコマンドを受信したときの処理を示し、図12は、ストレージコントローラ20がSAN4からデータ退避コマンドを受信したときの処理を示す。
まず、図10の参照コマンドまたはデータ退避タグ付き参照コマンドを受信したときの処理では、S21でストレージコントローラ20が、参照コマンド(タグ付き参照コマンド)を受信する。次に、S22ではストレージコントローラ20がプライマリボリュームから参照コマンドで指定されたアドレスのデータを読み込む。
次に、S23では、受信した参照コマンドのタグを参照し、タグ付き参照コマンドであるか否かを判定する。例えば、図13で示すように、ストレージコントローラ20で受け付けるコマンドがnビットで表される場合、0ビットをタグ領域とし、1ビットからnビットをコマンド領域とする。そして、例えば、タグ領域の値が「1」の場合にはデータ退避の指示を示し、「0」の場合にはデータ退避の指示無しを示す。
S23では、参照コマンドに付加されたタグ領域の値に基づいてデータ退避の指示の有無を判定し、指示ありと判定した場合にはS24へ進んでデータの退避を実行する。一方、指示無しと判定した場合には、S27に進んで要求元のサーバ1へこのデータを送信する。
データ退避タグ付き参照コマンドの場合のS24では、ストレージコントローラ20は、上記S22で読み出したプライマリボリュームのアドレスについて退避管理テーブル222を参照し、退避フラグ2222の値に基づいて退避が完了しているか否かを判定する。この判定の結果、プライマリボリューム上の該当するデータの退避が完了していなければ、S26へ進んで差分スナップショットの作成を行う。一方、該当するデータの退避が完了していればS27に進む。
S26では、プライマリボリュームから読み出したデータを差分ボリュームに複写してデータの退避を実施する。そして、ストレージコントローラ20は、データの退避が完了すると差分管理テーブル221に、複写したプライマリボリュームのアドレス2211と退避先の差分ボリュームの退避先アドレス2212とを書き込む。また、データの退避が完了したのでプライマリボリューム上の該当するアドレス2221について退避管理テーブル222の退避フラグ2222を「1」にセットし、データの退避完了を記録する。
S27では、ストレージコントローラ20が、データの退避が完了したデータを、要求元のサーバ1に送信して処理を終了する。なお、データ退避の指示のない参照コマンドの場合は、S22で読み込んだプライマリボリュームのデータを、そのままサーバ1へ送信する。
このように、データ退避タグ付き参照コマンドの場合では、ストレージコントローラ20が読み込んだデータについてプライマリボリュームから差分ボリュームへ複写してから、サーバ1が要求したデータを送信する。そして、データの退避が完了すると、差分管理テーブル221と退避管理テーブル222を更新する。
次に、図11を用いて、ストレージコントローラ20が更新コマンドを受信したときの処理を説明する。
まず、S31でストレージコントローラ20が、更新コマンドを受信する。次に、S32ではストレージコントローラ20が書き込み対象のアドレスのデータの退避が完了しているか否かを判定する。この判定の結果、退避が完了していなければ、S33へ進んで書き込み対象のプライマリボリュームのアドレスのデータを、差分ボリュームに退避する。そして、データの退避が完了すると、差分管理テーブル221に、複写したプライマリボリュームのアドレス2211と退避先の差分ボリュームの退避先アドレス2212とを書き込む。
一方、S32の判定で書き込み対象のプライマリボリュームのデータの退避が既に完了している場合には、S34に進む。
S34では、ストレージコントローラ20は、書き込み対象のプライマリボリュームのデータを更新する。そして、S35では、ストレージコントローラ20が、データの書き込みが完了した通知をサーバ1に送信して処理を終了する。
次に、図12を用いて、ストレージコントローラがデータ退避コマンドを受信したときの処理を説明する。
まず、S41でストレージコントローラ20が、データ退避コマンドを受信する。次に、S42ではストレージコントローラ20がデータ退避対象のプライマリボリューム上のアドレスのデータについて退避が完了しているか否かを上記S24、S25と同様に判定する。この判定の結果、退避が完了していなければ、S43へ進んで書き込み対象のプライマリボリュームのデータを読み込む。そして、S44では読み込んだデータを差分ボリュームに複写して退避を完了する。ストレージコントローラ20は、プライマリボリュームのデータの退避が完了すると、差分管理テーブル221に、複写したプライマリボリュームのアドレス2211と退避先の差分ボリュームの退避先アドレス2212とを書き込む。また、退避管理テーブル222の該当するアドレス2221の退避フラグ2222を「1」にリセットし、退避が完了したことを記録する。
一方、書き込み対象のプライマリボリュームのデータの退避が既に完了している場合には、S45に進む。
S45では、ストレージコントローラ20が、データの退避が完了した通知をサーバ1に送信して処理を終了する。
このように、データ退避コマンドの場合では、ストレージコントローラ20がデータの退避対象のプライマリボリュームのデータを差分ボリュームに退避し、差分管理テーブル221と退避管理テーブル222を更新する。
なお、上記データ退避コマンドは、DBMS100が参照を行うデータがDBバッファ140へ既に読み込まれており、かつ、DBバッファ140上で更新されている場合に、DBMS100がストレージ2へ発行するようにしても良い。この場合、DBバッファ140上で更新されてからストレージ2へ書き込まれていないデータに対して参照要求があった場合、ストレージ2のストレージコントローラ20では、データ退避コマンドを受け付けて、書き込みが発生する以前に、事前に差分スナップショットを作成することが可能となる。これにより、DBバッファ140上で更新されたデータをストレージ2で更新する際には、既に差分スナップショットが作成されているので、書き込みのみを行えば良く、ストレージ2の処理を迅速に行うことができる。
以上のように、本発明ではサーバ1がストレージ2に対してデータの参照を行う際に、参照を行うデータについて更新を伴うか否かを判定し、更新を伴う場合には参照コマンドにデータの退避を指示するタグを付けた参照コマンドを発行する。データ退避タグ付き参照コマンドを受信したストレージ2のストレージコントローラ20は、参照を要求されたデータの退避が完了した後に、このデータをサーバ1へ送信する。これにより、サーバ1からストレージ2へタグ付き参照コマンドを一回送信するだけで、データの退避とデータの読み込みを行うことが可能となる。
なお、上記実施形態では、サーバ1でDBMS100が稼動する例を示したが、データの参照をストレージ2へ要求する際に、参照するデータについて後に更新を行うか否かを判定または推定可能なアプリケーションやサービスであれば本発明を適用することができる。
また、サーバ1とストレージ2がSAN4で接続された例を示したが、ストレージ2がSCSIやSATAなどのインターフェースを介してサーバ1に接続される場合でも本発明を適用することができる。
<第2実施形態>
図14は、前記第1実施形態の図9に示したサーバ1で稼動するDBMS100の処理の一部を変更し、参照を要求するデータがDBバッファ140に存在した場合も、更新対象のデータであればタグ付き参照コマンドを実行しておき、予めデータの退避を行うようにしたものである。その他の構成は、前記第1実施形態と同様である。
図14において、DBMS100の処理は、S1〜S3及びS5〜S11の処理は前記第1実施形態の図9と同様であり、S4の判定でYESとなった場合が前記第1実施形態の図9と異なる。
S4では、参照するデータがDBバッファ140になければ、前記第1実施形態の図9と同様にS5へ進む。一方、参照するデータがDBバッファ140に既に存在する場合は、S51に進んで更新を行うデータであるか否かを判定する。S2で作成したクエリプランを解析して、サーバ1へ該当するデータを読み込んだ後に更新するか否かを判定する。そして、更新する場合には差分スナップショットの作成を実行するためにS52に進んでタグ付き参照コマンドを設定する。S52では、DBバッファ140上のデータについて、タグ付き参照コマンドを設定し、S7へ進んでストレージ2にデータの参照と差分スナップショットの作成を指令する。
一方、S51の判定で、更新する必要がない場合には、既に読み込み済みである旨を通知するためS11に進む。
以上のように、DBMS100が読み込むデータがDBバッファ140上に存在する場合でも、当該データがサーバ1へ読み込まれた後に、更新が行われるまたは更新が予想される場合には、タグ付き参照コマンドを発行して当該データの差分スナップショットを作成しておく。これにより、更新が予想されるデータに対してDBMS100が更新を行って、ストレージ2へ書き込みを要求すると、このデータは既に差分スナップショットの作成が事前に完了しているので、そのまま書き込みが行われることになる。これにより、ストレージ2では、書き込みを要求されたデータについて差分スナップショットを作成する時間が不要になって書き込み処理の高速化を図ることが可能となる。
<第3実施形態>
また、上記の実施例の他に、ストレージコントローラ20が、図15に例示する退避ボリューム設定テーブルを管理する実施例がある。ストレージコントローラ20は、メモリ22に差分退避属性テーブル223を格納する。退避ボリューム設定テーブル223には、参照されたデータを差分ボリュームへ退避するボリューム名を格納する。なお、この差分退避属性テーブル223は、管理端末6等から設定される。
ストレージ制御部210は、サーバ1から参照コマンドを受信すると、コマンドに指定されたボリュームが退避ボリューム設定テーブル223に設定されているか否かを判定する。コマンドに指定されたボリュームが退避ボリューム設定テーブル223に設定されていれば、プライマリボリュームのデータを差分ボリュームに退避してから、データをサーバ1に送信する。
このような実施例においても、データ参照時にプライマリボリュームのデータを差分ボリュームに退避し、プライマリボリュームに対する負荷を軽減することができる。
なお、本明細書では、データアクセスをするアプリケーションプログラムとしてDBMSを用いて説明したが、アプリケーションプログラムはDBMSに限定されない。
以上のように、本発明によればデータ参照の際にデータの退避をすることで、ストレージ装置の負荷を軽減することが可能である。
本発明の第1の実施形態を示す計算機システムのブロック図。 サーバのDBMSと、外部記憶装置のストレージ制御部の機能ブロック図。 データ領域管理テーブルの一例を示す説明図。 DBバッファの一例を示す説明図。 ボリューム管理テーブルの一例を示す説明図。 データベースの内容を示す説明図。 差分管理テーブルの一例を示す説明図。 退避管理テーブルの一例を示す説明図。 サーバのDBMSで実行される処理の一例を示すフローチャート。 外部記憶装置のストレージ制御部で実行される処理の一例を示し、参照コマンドまたはタグ付き参照コマンドを受信したときのフローチャート。 外部記憶装置のストレージ制御部で実行される処理の一例を示し、書き込みコマンドを受信したときのフローチャート。 外部記憶装置のストレージ制御部で実行される処理の一例を示し、データ退避コマンドを受信したときのフローチャート。 コマンドとタグの説明図。 第2の実施形態を示し、サーバのDBMSで実行される処理の一例を示すフローチャート。 第3の実施形態を示し、外部記憶装置のストレージ制御部で管理される差分退避属性テーブルの一例を示す説明図。
符号の説明
1 サーバ
2 ストレージ
20 ストレージコントローラ
30 ドライブ1
31 ドライブ2
100 DBMS
101 データベース
102 差分データ
110 SQL実行部
120 バッファ管理部
130 退避指示追加部
140 DBバッファ
210 ストレージ制御部
220 退避指示判定部
211 ボリューム管理テーブル
221 差分管理テーブル
222 退避管理テーブル

Claims (4)

  1. 第1のボリュームと第2のボリュームを備えるストレージ装置のデータを管理する方法であって、
    サーバ装置が、端末計算機からデータの操作指示を受信するステップと、
    前記サーバ装置が、前記データの操作指示に基づいて操作対象のデータを決定するステップと、
    前記サーバ装置が、前記操作対象のデータが更新用か参照用かを判定するステップと、
    前記サーバ装置が、当該サーバ装置に設定されたバッファに、前記操作対象のデータが読み込まれているか否かを判定するステップと、
    前記操作対象のデータが参照用で、かつ、前記操作対象のデータが前記バッファに読み込まれていない場合に、前記サーバ装置が、前記第1のボリュームから読み出された前記操作対象のデータを前記バッファに読み込むステップと、
    前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれてない場合に、前記サーバ装置が、前記ストレージ装置に、前記第1のボリュームから前記操作対象のデータを読み出し、かつ、前記操作対象のデータを前記第2のボリュームに退避することを指示する第1のコマンドを発行し、前記ストレージ装置から前記操作対象のデータを受信して前記バッファに格納し、当該バッファにおいて更新を実行するステップと、
    前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれている場合に、前記サーバ装置が、前記ストレージ装置に、前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避することを指示する第2のコマンドを発行し、前記バッファにおいて更新を実行するステップと、
    を含むストレージ装置のデータ管理方法。
  2. 前記サーバ装置が前記端末計算機から受付けるデータの操作指示は、SQL文を含み、
    前記サーバ装置が前記操作対象のデータが更新用か参照用かを判定するステップは、操作指示に含まれるSQL文の種類に応じて判定をする、
    請求項1に記載のストレージ装置のデータ管理方法。
  3. 第1のボリュームと第2のボリュームを備えるストレージ装置と、サーバ装置と、を含む計算機システムであって、
    前記サーバ装置は、端末計算機からデータの操作指示を受信し、
    前記サーバ装置は、前記データの操作指示に基づいて操作対象のデータを決定し、
    前記サーバ装置は、前記操作対象のデータが更新用か参照用かを判定し、
    前記サーバ装置は、当該サーバ装置に設定されたバッファに、前記操作対象のデータが読み込まれているか否かを判定し、
    前記操作対象のデータが参照用で、かつ、前記操作対象のデータが前記バッファに読み込まれていない場合に、前記サーバ装置は、前記第1のボリュームから読み出された前記操作対象のデータを前記バッファに読み込み、
    前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれてない場合に、前記サーバ装置は、前記ストレージ装置に、前記第1のボリュームから前記操作対象のデータを読み出し、かつ、前記操作対象のデータを前記第2のボリュームに退避することを指示する第1のコマンドを発行し、前記ストレージ装置から前記操作対象のデータを受信して前記バッファに格納し、当該バッファにおいて更新を実行し、
    前記操作対象のデータが更新用で、かつ、前記操作対象のデータが前記バッファに読み込まれている場合に、前記サーバ装置は、前記ストレージ装置に、前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避することを指示する第2のコマンドを発行し、前記バッファにおいて更新を実行し、
    前記第1のコマンド及び第2のコマンドの一方のコマンドを受信した前記ストレージ装置は、前記操作対象のデータが退避済みであるか否かを前記一方のコマンドに従って判定し、退避済みでない場合に前記一方のコマンドに従って前記操作対象のデータを前記第1のボリュームから前記第2のボリュームに退避する、
    計算機システム。
  4. 前記サーバ装置が前記端末計算機から受付けるデータの操作指示は、SQL文を含み、
    前記サーバ装置は、前記操作指示に含まれるSQL文の種類に応じて前記操作対象のデータが更新用か参照用かを判定する、
    請求項3に記載の計算機システム。
JP2006141379A 2006-05-22 2006-05-22 ストレージ装置のデータ管理方法及び計算機システム Expired - Fee Related JP4839133B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006141379A JP4839133B2 (ja) 2006-05-22 2006-05-22 ストレージ装置のデータ管理方法及び計算機システム
US11/454,088 US7610460B2 (en) 2006-05-22 2006-06-16 Buffer updates and data evacuation in a storage system using differential snapshots

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006141379A JP4839133B2 (ja) 2006-05-22 2006-05-22 ストレージ装置のデータ管理方法及び計算機システム

Publications (2)

Publication Number Publication Date
JP2007310788A JP2007310788A (ja) 2007-11-29
JP4839133B2 true JP4839133B2 (ja) 2011-12-21

Family

ID=38713265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006141379A Expired - Fee Related JP4839133B2 (ja) 2006-05-22 2006-05-22 ストレージ装置のデータ管理方法及び計算機システム

Country Status (2)

Country Link
US (1) US7610460B2 (ja)
JP (1) JP4839133B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380143B2 (en) 2002-05-01 2013-02-19 Dali Systems Co. Ltd Power amplifier time-delay invariant predistortion methods and apparatus
US8811917B2 (en) 2002-05-01 2014-08-19 Dali Systems Co. Ltd. Digital hybrid mode power amplifier system
JP4809040B2 (ja) * 2005-11-08 2011-11-02 株式会社日立製作所 ストレージ装置及びスナップショットのリストア方法
CN102017553B (zh) 2006-12-26 2014-10-15 大力系统有限公司 用于多信道宽带通信系统中的基带预失真线性化的方法和系统
US7908268B2 (en) * 2007-02-06 2011-03-15 International Business Machines Corporation Predictive database pool preparation
US8148236B2 (en) 2007-11-30 2012-04-03 Semiconductor Energy Laboratory Co., Ltd. Display device and method for manufacturing thereof
JP5544897B2 (ja) * 2010-01-22 2014-07-09 富士通株式会社 記憶装置、制御装置および記憶装置の制御方法
JP5549243B2 (ja) * 2010-01-29 2014-07-16 富士通株式会社 ストレージ装置、ストレージ装置の制御方法及びストレージ装置の制御プログラム
US8848766B2 (en) 2010-08-17 2014-09-30 Dali Systems Co. Ltd. Neutral host architecture for a distributed antenna system
KR101829517B1 (ko) 2010-09-14 2018-02-14 달리 시스템즈 씨오. 엘티디. 원격으로 재구성가능한 분산 안테나 시스템 및 방법
JP2013029911A (ja) * 2011-07-27 2013-02-07 Fujitsu Ltd 制御装置、制御方法およびストレージ装置
US10365950B2 (en) * 2011-12-30 2019-07-30 Veritas Technologies Llc Resource throttling and automated policy management in a virtual machine environment
US9921954B1 (en) * 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US20140082313A1 (en) * 2012-09-14 2014-03-20 International Business Machines Corporation Storage class memory evacuation
JP6690829B2 (ja) * 2015-08-28 2020-04-28 国立大学法人 東京大学 計算機システム、省電力化方法及び計算機
US9967337B1 (en) * 2015-12-29 2018-05-08 EMC IP Holding Company LLC Corruption-resistant backup policy

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826076A (en) * 1994-05-13 1998-10-20 Liant Software Corporation Computer-based information access method and apparatus to permit SQL-based manipulation of programming language-specific data files
DE60044409D1 (de) * 1999-03-19 2010-07-01 Hitachi Ltd System um Daten zu duplizieren
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
US6401178B1 (en) * 1999-12-23 2002-06-04 Emc Corporatiion Data processing method and apparatus for enabling independent access to replicated data
JP2002230189A (ja) * 2001-02-02 2002-08-16 Hitachi Ltd サービス提供システム
JP2003345514A (ja) * 2002-05-29 2003-12-05 Hitachi Ltd 計算機システム
JP4311532B2 (ja) 2003-03-12 2009-08-12 株式会社日立製作所 記憶システム及び同システムにおけるスナップショット管理方法
US7124243B2 (en) * 2003-05-16 2006-10-17 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
US7032089B1 (en) * 2003-06-09 2006-04-18 Veritas Operating Corporation Replica synchronization using copy-on-read technique
US20050010726A1 (en) * 2003-07-10 2005-01-13 Rai Barinder Singh Low overhead read buffer
JP4463042B2 (ja) * 2003-12-26 2010-05-12 株式会社日立製作所 ボリュームの動的割り付け機能を有する記憶装置システム
JP2005242403A (ja) * 2004-02-24 2005-09-08 Hitachi Ltd 計算機システム
JP2005292865A (ja) * 2004-03-31 2005-10-20 Hitachi Ltd ストレージシステム及びストレージシステムのバックアップ方法
US7159069B2 (en) * 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
JP2006113927A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
US7716420B2 (en) * 2006-04-28 2010-05-11 Network Appliance, Inc. Methods of converting traditional volumes into flexible volumes

Also Published As

Publication number Publication date
US20070271426A1 (en) 2007-11-22
US7610460B2 (en) 2009-10-27
JP2007310788A (ja) 2007-11-29

Similar Documents

Publication Publication Date Title
JP4839133B2 (ja) ストレージ装置のデータ管理方法及び計算機システム
US7698319B2 (en) Database system management method, database system, database device, and backup program
US6587933B2 (en) Method, system, and program for discarding data in a storage system where updates to a primary storage device are shadowed in a secondary storage device
JP4949088B2 (ja) 階層型ストレージシステム間でのリモートミラー方式
US8060711B2 (en) Storage system
JP2008217209A (ja) 差分スナップショット管理方法、計算機システム及びnas計算機
US20060167895A1 (en) Database system and method for adapting a main database components in a main memory thereof
JP2009116796A (ja) データ読出し方法、データ管理システム及びストレージシステム
JP2016536694A (ja) 自律的メモリ検索のための方法及びシステム
CN104238963A (zh) 一种数据存储方法、存储装置及存储系统
JP2007079774A (ja) ファイルシステムの構築方法
JP2009205333A (ja) 計算機システム、ストレージ装置及びデータ管理方法
US8850148B2 (en) Data copy management for faster reads
US20130325812A1 (en) System and method for archive in a distributed file system
US20130325814A1 (en) System and method for archive in a distributed file system
US7549029B2 (en) Methods for creating hierarchical copies
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
JP4937863B2 (ja) 計算機システム、管理計算機及びデータ管理方法
US8683130B2 (en) Fabricating key fields
US20080320062A1 (en) Method of transferring file system, file system transference program, and file system transference device
JP2009064160A (ja) 計算機システム、管理計算機及びデータ管理方法
US7676644B2 (en) Data processing system, storage apparatus and management console
US20130325813A1 (en) System and method for archive in a distributed file system
US20100023713A1 (en) Archive system and contents management method
JP2019185296A (ja) データ管理装置,データ管理プログラム及びデータ管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees