(57)【要約】      （修正有）【課題】データベースをバックアップするために必要となる記憶容量を低減させる。【解決手段】データが書き込まれている第一の記憶デバイス１２０１の論理ボリュームの識別子、当該論理ボリューム内の当該データが格納されている位置情報、計時機構１２０４より取得される現在時刻である更新時刻、及び当該データで構成されるジャーナルデータを第三の記憶デバイス１２０３に書き込むジャーナル書き込み部と、第三の記憶デバイス１２０３に記憶されているジャーナルデータの更新時刻を参照し、計時機構１２０４より取得される現在時刻と更新時刻との差がメモリに記憶されている検出時間以上であるジャーナルデータを選択し、選択されたジャーナルデータの更新時刻が早い順に、当該データを第二の記憶デバイス１２０２の論理ボリュームの当該位置情報で示される場所に書き込む第二の書き込み部とを有する。【選択図】図１２
2005228217.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と通信可能に接続され、
一又は複数の論理ボリュームが形成されている第一の記憶デバイスと、
一又は複数の論理ボリュームが形成されている第二の記憶デバイスと、
第三の記憶デバイスと
に対するデータの書き込みまたは読み出しを行うディスク制御装置であって、
メモリと、
計時機構と
を有し、
前記第一の記憶デバイスの前記論理ボリュームの識別子を主論理ボリュームの識別子、前記第二の記憶デバイスの前記論理ボリュームの識別子を副論理ボリュームの識別子とする対応付けが前記メモリにペア管理テーブルとして記憶され、
前記情報処理装置から前記第一の記憶デバイスの前記論理ボリュームに対するデータの書き込み要求と前記データとを受信する書き込み要求受信部と、
前記書き込み要求を受信すると前記データを前記第一の記憶デバイスの前記論理ボリュームに書き込む第一の書き込み部と、
前記データが書き込まれている前記第一の記憶デバイスの前記論理ボリュームの識別子、当該論理ボリューム内の前記データが格納されている位置情報、前記計時機構より取得される現在時刻である更新時刻、及び前記データで構成されるジャーナルデータを前記第三の記憶デバイスに書き込むジャーナル書き込み部と、
前記第三の記憶デバイスに記憶されている前記ジャーナルデータの前記更新時刻を参照し、前記計時機構より取得される現在時刻と前記更新時刻との差が所定の時間以上である前記ジャーナルデータを選択し、選択された前記ジャーナルデータの前記更新時刻が早い順に前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報と前記データとを参照し、当該論理ボリュームの識別子が前記主論理ボリュームの識別子である前記副論理ボリュームの識別子を前記ペア管理テーブルから取得し、当該データを前記第二の記憶デバイスの当該副論理ボリュームの識別子で示される前記論理ボリュームの当該位置情報で示される場所に書き込む第二の書き込み部と
を有することを特徴とするディスク制御装置。
【請求項２】
請求項１に記載のディスク制御装置において、
前記第一の記憶デバイスを構成する一又は複数のハードディスクドライブと、前記第二の記憶デバイス及び前記第三の記憶デバイスを構成する一又は複数のハードディスクドライブとが物理的に別であることを特徴とするディスク制御装置。
【請求項３】
請求項１に記載のディスク制御装置において、
前記所定の時間が前記メモリに記憶され、
前記第二の書き込み部は、前記メモリに記憶されている前記所定の時間を参照し、前記ジャーナルデータの前記更新時刻と前記計時機構より取得される現在時刻との差が前記所定の時間以上である前記ジャーナルデータを選択すること
を特徴とするディスク制御装置。
【請求項４】
請求項１に記載のディスク制御装置において、
前記第一の記憶デバイスを構成する一又は複数のハードディスクドライブと、前記第二の記憶デバイスを構成する一又は複数のハードディスクドライブとが物理的に別であることを特徴とするディスク制御装置。
【請求項５】
請求項１に記載のディスク制御装置において、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを中断するスプリット指示命令を受信するスプリット指示命令受信部と、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを再開するスプリット解除命令を受信するスプリット解除命令受信部と、
前記スプリット指示命令を受信すると前記スプリット指示命令を受信したことを示すデータと前記計時機構より取得される現在時刻であるスプリット時刻とで構成されるスプリット指示データを前記第三の記憶デバイスに書き込むスプリット指示記憶部と、
前記スプリット解除命令を受信すると前記スプリット解除命令を受信したことを示すデータであるスプリット解除データを前記第三の記憶デバイスに書き込むスプリット解除記憶部と
を有し、
前記第二の書き込み部は前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、前記スプリット解除データが記憶されていない場合は、前記スプリット指示データの前記スプリット時刻を参照し、前記更新時刻が当該スプリット時刻より遅い前記ジャーナルデータの前記データを前記第二の記憶デバイスに書き込まないこと
を特徴とするディスク制御装置。
【請求項６】
請求項５に記載のディスク制御装置において、
前記第二の記憶デバイスの前記論理ボリュームに対応する仮想的な論理ボリュームである仮想論理ボリュームが設けられ、前記論理ボリュームの識別子と前記仮想論理ボリュームの識別子との対応付けが前記メモリに仮想論理ボリューム管理テーブルとして記憶され、
前記第三の記憶デバイスを参照し、前記スプリット指示データが記憶され、かつ、前記スプリット解除データが記憶されていない場合は、前記更新時刻が前記スプリット指示データの前記スプリット時刻より早い前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報とで構成される未反映情報を前記メモリに記憶する未反映情報記憶部と、
前記情報処理装置から前記仮想論理ボリュームの識別子と位置情報とが設定されているデータの読み出し要求を受信する読み出し要求受信部と、
前記読み出し要求の前記仮想論理ボリュームの識別子に対応する前記第二の記憶デバイスの前記論理ボリュームの識別子を前記仮想論理ボリューム管理テーブルから取得する識別子取得部と、
前記メモリに記憶されている前記未反映情報を参照し、前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子と前記未反映情報の前記論理ボリュームの識別子とが同じ前記未反映情報において、前記読み出し要求に設定されている前記位置情報が示す範囲と前記未反映情報の前記位置情報が示す範囲とを比較して重複する範囲を取得する重複範囲取得部と、
前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲については前記第三の記憶デバイスに記憶されている前記ジャーナルデータの前記データを読み出し、前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲以外の範囲については前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子で示される前記論理ボリュームに記憶されている前記データを読み出す仮想論理ボリューム読み出し部と、
前記仮想論理ボリューム読み出し部により読み出された前記データを前記情報処理装置に送信する読み出しデータ送信部と
を有することを特徴とするディスク制御装置。
【請求項７】
請求項５に記載のディスク制御装置において、
前記第二の書き込み部は前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、前記スプリット解除データが記憶されていない場合は、前記更新時刻が当該スプリット時刻より早い前記ジャーナルデータの前記データを、前記更新時刻と前記計時機構より取得される現在時刻との差が前記所定の時間以上であるかどうかにかかわらず、前記第二の記憶デバイスに書き込むこと
を特徴とするディスク制御装置。
【請求項８】
請求項１に記載のディスク制御装置において、
前記第一の記憶デバイスの前記論理ボリュームにグループＩＤが付与され、前記論理ボリュームの識別子と前記グループＩＤとの対応付けが前記メモリにグループＩＤ管理テーブルとして記憶され、
前記ジャーナル書き込み部は、前記第一の記憶デバイスの前記データが書き込まれている前記論理ボリュームの識別子に対応する前記グループＩＤを前記グループＩＤ管理テーブルから取得し、当該グループＩＤを前記ジャーナルデータに設定して前記第三の記憶デバイスに書き込み、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを中断するスプリット指示命令を受信するスプリット指示命令受信部と、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを再開するスプリット解除命令を受信するスプリット解除命令受信部と、
前記スプリット指示命令を受信すると前記スプリット指示命令に設定されている前記グループＩＤと前記スプリット指示命令を受信したことを示すデータと前記計時機構より取得される現在時刻であるスプリット時刻とで構成されるスプリット指示データを前記第三の記憶デバイスに書き込むスプリット指示記憶部と、
前記スプリット解除命令を受信すると前記スプリット解除命令に設定されている前記グループＩＤと前記スプリット解除命令を受信したことを示すデータであるスプリット解除データを前記第三の記憶デバイスに書き込むスプリット解除記憶部と
を有し、
前記第二の書き込み部は、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定されている前記スプリット解除データが記憶されていない場合は、前記スプリット指示データの前記グループＩＤと前記スプリット時刻とを参照し、前記スプリット指示データの前記グループＩＤが  前記ジャーナルデータの前記グループＩＤが前記スプリット指示データの当該グループＩＤと同じで、かつ、前記更新時刻が当該スプリット時刻より遅い前記ジャーナルデータの前記データを前記第二の記憶デバイスに書き込まないこと
を特徴とするディスク制御装置。
【請求項９】
請求項８に記載のディスク制御装置において、
前記第二の記憶デバイスの前記論理ボリュームに対応する仮想的な論理ボリュームである仮想論理ボリュームが設けられ、前記論理ボリュームの識別子と前記仮想論理ボリュームの識別子との対応付けが前記メモリに仮想論理ボリューム管理テーブルとして記憶され、
前記第三の記憶デバイスを参照し、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定されている前記スプリット解除データが記憶されていない場合は、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定され、かつ、前記更新時刻が前記スプリット指示データの前記スプリット時刻より早い前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報とで構成される未反映情報を前記メモリに記憶する未反映情報記憶部と、
前記情報処理装置から前記仮想論理ボリュームの識別子と位置情報とが設定されているデータの読み出し要求を受信する読み出し要求受信部と、
前記読み出し要求の前記仮想論理ボリュームの識別子に対応する前記第二の記憶デバイスの前記論理ボリュームの識別子を前記仮想論理ボリューム管理テーブルから取得する識別子取得部と、
前記メモリに記憶されている前記未反映情報を参照し、前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子と前記未反映情報の前記論理ボリュームの識別子とが同じ前記未反映情報において、前記読み出し要求に設定されている前記位置情報が示す範囲と前記未反映情報の前記位置情報が示す範囲とを比較して重複する範囲を取得する重複範囲取得部と、
前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲については前記第三の記憶デバイスに記憶されている前記ジャーナルデータに設定されている前記データを読み出し、前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲以外の範囲については前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子で示される前記論理ボリュームに記憶されている前記データを読み出す仮想論理ボリューム読み出し部と、
前記仮想論理ボリューム読み出し部により読み出された前記データを前記情報処理装置に送信する読み出しデータ送信部と
を有することを特徴とするディスク制御装置。
【請求項１０】
請求項８に記載のディスク制御装置において、
前記第二の書き込み部は、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定されている前記スプリット解除データが記憶されていない場合は、前記ジャーナルデータの前記グループＩＤが前記スプリット指示データの当該グループＩＤと同じで、かつ、前記更新時刻が当該スプリット時刻より早い前記ジャーナルデータの前記データを、前記更新時刻と前記計時機構より取得される現在時刻との差が前記所定の時間以上であるかどうかにかかわらず、前記第二の記憶デバイスに書き込むこと
を特徴とするディスク制御装置。
【請求項１１】
情報処理装置と通信可能に接続され、
一又は複数の論理ボリュームが形成されている第一の記憶デバイスと、
一又は複数の論理ボリュームが形成されている第二の記憶デバイスと、
第三の記憶デバイスと
に対するデータの書き込みまたは読み出しを行うディスク制御装置の制御方法であって、
メモリと、
計時機構と
を有し、
前記第一の記憶デバイスの前記論理ボリュームの識別子を主論理ボリュームの識別子、前記第二の記憶デバイスの前記論理ボリュームの識別子を副論理ボリュームの識別子とする対応付けが前記メモリにペア管理テーブルとして記憶され、
前記情報処理装置から前記第一の記憶デバイスの前記論理ボリュームに対するデータの書き込み要求と前記データとを受信するステップと、
前記書き込み要求を受信すると前記データを前記第一の記憶デバイスの前記論理ボリュームに書き込むステップと、
前記データが書き込まれている前記第一の記憶デバイスの前記論理ボリュームの識別子、当該論理ボリューム内の前記データが格納されている位置情報、前記計時機構より取得される現在時刻である更新時刻、及び前記データで構成されるジャーナルデータを前記第三の記憶デバイスに書き込むステップと、
前記第三の記憶デバイスに記憶されている前記ジャーナルデータの前記更新時刻を参照し、前記計時機構より取得される現在時刻と前記更新時刻との差が所定の時間以上である前記ジャーナルデータを選択し、選択された前記ジャーナルデータの前記更新時刻が早い順に前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報と前記データとを参照し、当該論理ボリュームの識別子が前記主論理ボリュームの識別子である前記副論理ボリュームの識別子を前記ペア管理テーブルから取得し、当該データを前記第二の記憶デバイスの当該副論理ボリュームの識別子で示される前記論理ボリュームの当該位置情報で示される場所に書き込むステップと
を有することを特徴とするディスク制御装置の制御方法。
【請求項１２】
請求項１１に記載のディスク制御装置の制御方法において、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを中断するスプリット指示命令を受信するステップと、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを再開するスプリット解除命令を受信するステップと、
前記スプリット指示命令を受信すると前記スプリット指示命令を受信したことを示すデータと前記計時機構より取得される現在時刻であるスプリット時刻とで構成されるスプリット指示データを前記第三の記憶デバイスに書き込むステップと、
前記スプリット解除命令を受信すると前記スプリット解除命令を受信したことを示すデータであるスプリット解除データを前記第三の記憶デバイスに書き込むステップと
を有し、
前記第三の記憶デバイスに記憶されている更新データを前記第二の記憶デバイスの前記論理ボリュームに書き込む前記ステップは、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、前記スプリット解除データが記憶されていない場合は、前記スプリット指示データの前記スプリット時刻を参照し、前記更新時刻が当該スプリット時刻より遅い前記ジャーナルデータの前記データを前記第二の記憶デバイスに書き込まないステップであること
を特徴とするディスク制御装置の制御方法。
【請求項１３】
請求項１２に記載のディスク制御装置の制御方法において、
前記第二の記憶デバイスの前記論理ボリュームに対応する仮想的な論理ボリュームである仮想論理ボリュームが設けられ、前記論理ボリュームの識別子と前記仮想論理ボリュームの識別子との対応付けが前記メモリに仮想論理ボリューム管理テーブルとして記憶され、
前記第三の記憶デバイスを参照し、前記スプリット指示データが記憶され、かつ、前記スプリット解除データが記憶されていない場合は、前記更新時刻が前記スプリット指示データの前記スプリット時刻より早い前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報とで構成される未反映情報を前記メモリに記憶するステップと、
前記情報処理装置から前記仮想論理ボリュームの識別子と位置情報とが設定されているデータの読み出し要求を受信するステップと、
前記読み出し要求の前記仮想論理ボリュームの識別子に対応する前記第二の記憶デバイスの前記論理ボリュームの識別子を前記仮想論理ボリューム管理テーブルから取得するステップと、
前記メモリに記憶されている前記未反映情報を参照し、前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子と前記未反映情報の前記論理ボリュームの識別子とが同じ前記未反映情報において、前記読み出し要求に設定されている前記位置情報が示す範囲と前記未反映情報の前記位置情報が示す範囲とを比較して重複する範囲を取得するステップと、
前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲については前記第三の記憶デバイスに記憶されている前記ジャーナルデータの前記データを読み出し、前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲以外の範囲については前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子で示される前記論理ボリュームに記憶されている前記データを読み出すステップと、
前記仮想論理ボリューム読み出し部により読み出された前記データを前記情報処理装置に送信するステップと
を有することを特徴とするディスク制御装置の制御方法。
【請求項１４】
請求項１２に記載のディスク制御装置の制御方法において、
前記第三の記憶デバイスに記憶されている更新データを前記第二の記憶デバイスの前記論理ボリュームに書き込む前記ステップは、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、前記スプリット解除データが記憶されていない場合は、前記更新時刻が当該スプリット時刻より早い前記ジャーナルデータの前記データを、前記更新時刻と前記計時機構より取得される現在時刻との差が前記所定の時間以上であるかどうかにかかわらず、前記第二の記憶デバイスに書き込むステップであること
を特徴とするディスク制御装置の制御方法。
【請求項１５】
請求項１１に記載のディスク制御装置の制御方法において、
前記第一の記憶デバイスの前記論理ボリュームにグループＩＤが付与され、前記論理ボリュームの識別子と前記グループＩＤとの対応付けが前記メモリにグループＩＤ管理テーブルとして記憶され、
前記ジャーナルデータを前記第三の記憶デバイスに書き込む前記ステップは、前記第一の記憶デバイスの前記データが書き込まれている前記論理ボリュームの識別子に対応する前記グループＩＤを前記グループＩＤ管理テーブルから取得し、当該グループＩＤを前記ジャーナルデータに設定して前記第三の記憶デバイスに書き込むステップであり、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを中断するスプリット指示命令を受信するステップと、
前記情報処理装置から前記第二の記憶デバイスへの前記データの書き込みを再開するスプリット解除命令を受信するステップと、
前記スプリット指示命令を受信すると前記スプリット指示命令に設定されている前記グループＩＤと前記スプリット指示命令を受信したことを示すデータと前記計時機構より取得される現在時刻であるスプリット時刻とで構成されるスプリット指示データを前記第三の記憶デバイスに書き込むステップと、
前記スプリット解除命令を受信すると前記スプリット解除命令に設定されている前記グループＩＤと前記スプリット解除命令を受信したことを示すデータであるスプリット解除データを前記第三の記憶デバイスに書き込むステップと
を有し、
前記第三の記憶デバイスに記憶されている更新データを前記第二の記憶デバイスの前記論理ボリュームに書き込む前記ステップは、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定されている前記スプリット解除データが記憶されていない場合は、前記スプリット指示データの前記グループＩＤと前記スプリット時刻とを参照し、前記スプリット指示データの前記グループＩＤが  前記ジャーナルデータの前記グループＩＤが前記スプリット指示データの当該グループＩＤと同じで、かつ、前記更新時刻が当該スプリット時刻より遅い前記ジャーナルデータの前記データを前記第二の記憶デバイスに書き込まないステップであること
を特徴とするディスク制御装置の制御方法。
【請求項１６】
請求項１５に記載のディスク制御装置の制御方法において、
前記第二の記憶デバイスの前記論理ボリュームに対応する仮想的な論理ボリュームである仮想論理ボリュームが設けられ、前記論理ボリュームの識別子と前記仮想論理ボリュームの識別子との対応付けが前記メモリに仮想論理ボリューム管理テーブルとして記憶され、
前記第三の記憶デバイスを参照し、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定されている前記スプリット解除データが記憶されていない場合は、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定され、かつ、前記更新時刻が前記スプリット指示データの前記スプリット時刻より早い前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報とで構成される未反映情報を前記メモリに記憶するステップと、
前記情報処理装置から前記仮想論理ボリュームの識別子と位置情報とが設定されているデータの読み出し要求を受信するステップと、
前記読み出し要求の前記仮想論理ボリュームの識別子に対応する前記第二の記憶デバイスの前記論理ボリュームの識別子を前記仮想論理ボリューム管理テーブルから取得するステップと、
前記メモリに記憶されている前記未反映情報を参照し、前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子と前記未反映情報の前記論理ボリュームの識別子とが同じ前記未反映情報において、前記読み出し要求に設定されている前記位置情報が示す範囲と前記未反映情報の前記位置情報が示す範囲とを比較して重複する範囲を取得するステップと、
前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲については前記第三の記憶デバイスに記憶されている前記ジャーナルデータに設定されている前記データを読み出し、前記読み出し要求に設定されている前記位置情報が示す範囲のうち前記重複する範囲以外の範囲については前記識別子取得部により取得された前記第二の記憶デバイスの前記論理ボリュームの識別子で示される前記論理ボリュームに記憶されている前記データを読み出すステップと、
前記仮想論理ボリューム読み出し部により読み出された前記データを前記情報処理装置に送信するステップと
を有することを特徴とするディスク制御装置の制御方法。
【請求項１７】
請求項１５に記載のディスク制御装置の制御方法において、
前記第三の記憶デバイスに記憶されている更新データを前記第二の記憶デバイスの前記論理ボリュームに書き込む前記ステップは、前記第三の記憶デバイスに前記スプリット指示データが記憶され、かつ、当該スプリット指示データの前記グループＩＤと同じ前記グループＩＤが設定されている前記スプリット解除データが記憶されていない場合は、前記ジャーナルデータの前記グループＩＤが前記スプリット指示データの当該グループＩＤと同じで、かつ、前記更新時刻が当該スプリット時刻より早い前記ジャーナルデータの前記データを、前記更新時刻と前記計時機構より取得される現在時刻との差が前記所定の時間以上であるかどうかにかかわらず、前記第二の記憶デバイスに書き込むステップであること
を特徴とするディスク制御装置の制御方法。
【請求項１８】
情報処理装置と通信可能に接続され、
一又は複数のハードディスクドライブにより構成される第一の記憶デバイスと、
一又は複数のハードディスクドライブにより構成される第二の記憶デバイスと、
一又は複数のハードディスクドライブにより構成される第三の記憶デバイスと
に対するデータの書き込みまたは読み出しを行うディスク制御装置であって、
前記第一の記憶デバイスに一又は複数の論理ボリュームが形成され、
前記第二の記憶デバイスに一又は複数の論理ボリュームが形成され、
前記情報処理装置から前記論理ボリュームに対するデータの書き込み要求を受信するチャネル制御部と、
前記チャネル制御部により受信された前記データを前記論理ボリュームに書き込むディスク制御部と、
共有メモリと、
前記チャネル制御部と前記ディスク制御部と前記共有メモリとを通信可能に接続するスイッチング制御部と
を有し、
前記第一の記憶デバイスの前記論理ボリュームの識別子を主論理ボリュームの識別子、前記第二の記憶デバイスの前記論理ボリュームの識別子を副論理ボリュームの識別子とする対応付けが前記メモリにペア管理テーブルとして記憶され、
前記ディスク制御部は、
前記チャネル制御部により受信された前記書き込み要求に伴い前記第一の記憶デバイスの前記論理ボリュームに前記データを書き込むと、前記データが書き込まれている前記第一の記憶デバイスの前記論理ボリュームの識別子、当該論理ボリューム内の前記データが格納されている位置情報、前記計時機構より取得される現在時刻である更新時刻、及び前記データで構成されるジャーナルデータを前記第三の記憶デバイスに書き込むジャーナル書き込み部と、
前記第三の記憶デバイスに記憶されている前記ジャーナルデータの前記更新時刻を参照し、前記計時機構より取得される現在時刻と前記更新時刻との差が前記共有メモリに記憶されている検出時間以上である前記ジャーナルデータを選択し、選択された前記ジャーナルデータの前記更新時刻が早い順に前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報と前記データとを参照し、当該論理ボリュームの識別子が前記主論理ボリュームの識別子である前記副論理ボリュームの識別子を前記ペア管理テーブルから取得し、当該データを前記第二の記憶デバイスの当該副論理ボリュームの識別子で示される前記論理ボリュームの当該位置情報で示される場所に書き込む第二の書き込み部と
を有することを特徴とするディスク制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置及びディスクアレイ装置の制御方法に関する。
【背景技術】
【０００２】
近年、インターネットを利用した商品販売システムなど、２４時間無停止で運用される情報処理システムが増加している。このような情報処理システムで用いられるデータは、データ量の増加や耐障害性の向上の要求に伴い、ディスクアレイ装置上のデータベースに格納されることが多い。無停止で運用される情報処理システムにおいては、データベースの更新処理を停止することなく、データベースに格納されているデータをバックアップする必要がある。そこで、ディスクアレイ装置内にバックアップ用のレプリカボリュームを設け、データベースに格納されているデータをバックアップ用のレプリカボリュームにも記憶しておく方法が用いられている。レプリカボリュームへのデータの書き込みを停止し、レプリカボリュームに記憶されているデータを磁気テープ等の外部記憶媒体にコピーすることにより、データベースのある時点のバックアップを取得することができる。
【０００３】
特許文献１においては、レプリカボリュームへのデータの書き込みを停止している間にデータベースに書き込まれたデータを、バックアップの完了後にレプリカボリュームに書き込むリシンク処理が開示されている。  
リシンク処理を実行している最中は、レプリカボリュームの内容は保証されない。そこで、１つのデータベースに対して２つのレプリカボリュームを設け、リシンク処理を２つのレプリカボリュームで交互に行っている場合もある。この場合、データベースを格納するデータ領域にハードウェア障害が発生すると、いずれか一方のレプリカボリュームとデータベースのＲＥＤＯログとを用いてデータベースを復旧することが可能である。
【特許文献１】米国特許第６１４１７７３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データベースの運用においては、上記のハードウェア障害の他に、ソフトウェアの不具合やユーザの操作ミス等によりデータベースに不正なデータが書き込まれる場合がある。このような障害をソフトウェア障害と呼んでいる。ソフトウェア障害が発生すると、磁気テープ等に保存されているある時点のデータを復元し、復元されたデータとＲＥＤＯログとを用いてデータベースを復旧する必要がある。磁気テープ等からのデータ復元には相当の時間を要するため、システムの停止時間が長くなってしまう。
【０００５】
そこで、ソフトウェア障害が発生した際に、磁気テープ等の外部記憶媒体からデータを復元することなく、ディスクアレイ装置内のデータを用いて迅速にデータベースを復旧することが求められている。ここで、前述した２つのレプリカボリュームを用いる場合、データベースを格納するボリュームの３倍の記憶容量が必要となり、ディスクアレイ装置を導入する際の費用が増大する。
【０００６】
そのため、ハードウェア障害及びソフトウェア障害に対して、データベースをバックアップするために必要となる記憶容量を低減させることが求められている。  
また、リシンク処理においては、レプリカボリュームに書き込むためのデータをデータベースから読み出す必要がある。そのため、リシンク処理中は外部からデータベースへのアクセス性能が劣化するという問題がある。そこで、外部からデータベースへのアクセス性能を低下させずに、データベースを迅速に復旧することが求められている。  
また、データベースの迅速な復旧とは別に、データベースの更新処理を停止することなく、万が一に備えてデータベースのある時点のバックアップを取得することが求められている。
【０００７】
本発明は上記課題を鑑みてなされたものであり、ディスクアレイ装置及びディスクアレイ装置の制御方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のうち主たる発明では、情報処理装置と通信可能に接続され、一又は複数の論理ボリュームが形成されている第一の記憶デバイスと、一又は複数の論理ボリュームが形成されている第二の記憶デバイスと、第三の記憶デバイスとに対するデータの書き込みまたは読み出しを行うディスク制御装置であって、メモリと、計時機構とを有し、前記第一の記憶デバイスの前記論理ボリュームの識別子を主論理ボリュームの識別子、前記第二の記憶デバイスの前記論理ボリュームの識別子を副論理ボリュームの識別子とする対応付けが前記メモリにペア管理テーブルとして記憶され、前記情報処理装置から前記第一の記憶デバイスの前記論理ボリュームに対するデータの書き込み要求と前記データとを受信する書き込み要求受信部と、前記書き込み要求を受信すると前記データを前記第一の記憶デバイスの前記論理ボリュームに書き込む第一の書き込み部と、前記データが書き込まれている前記第一の記憶デバイスの前記論理ボリュームの識別子、当該論理ボリューム内の前記データが格納されている位置情報、前記計時機構より取得される現在時刻である更新時刻、及び前記データで構成されるジャーナルデータを前記第三の記憶デバイスに書き込むジャーナル書き込み部と、前記第三の記憶デバイスに記憶されている前記ジャーナルデータの前記更新時刻を参照し、前記計時機構より取得される現在時刻と前記更新時刻との差が所定の時間以上である前記ジャーナルデータを選択し、選択された前記ジャーナルデータの前記更新時刻が早い順に前記ジャーナルデータの前記論理ボリュームの識別子と前記位置情報と前記データとを参照し、当該論理ボリュームの識別子が前記主論理ボリュームの識別子である前記副論理ボリュームの識別子を前記ペア管理テーブルから取得し、当該データを前記第二の記憶デバイスの当該副論理ボリュームの識別子で示される前記論理ボリュームの当該位置情報で示される場所に書き込む第二の書き込み部とを有することとする。
【発明の効果】
【０００９】
ディスクアレイ装置及びディスクアレイ装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
＝＝ディスクアレイ装置＝＝
本実施の形態におけるディスクアレイ装置の第一の形態を図１に示す。ディスクアレイ装置１０は、ディスク制御装置１１０と複数のハードディスクドライブ１２０とを備えている。ディスクアレイ装置１０は情報処理装置２０と通信手段により接続されている。通信手段は、例えば、ＬＡＮ（Local Area Network）やＳＡＮ（Storage Area Network）、ｉＳＣＳＩ（Internet Small Computer System Interface）、ＥＳＣＯＮ（Enterprise Systems Connection）（登録商標）、ＦＩＣＯＮ（Fibre Connection）（登録商標）などである。
【００１１】
情報処理装置２０は、ＣＰＵ（Central Processing Unit）やメモリを備えるコンピュータであり、パーソナルコンピュータやワークステーション、メインフレームなどのコンピュータである。情報処理装置２０は、結合された複数台のコンピュータで構成されることもある。情報処理装置２０ではオペレーティングシステムが動作している。オペレーティングシステム上ではアプリケーションソフトウェアが動作している。アプリケーションソフトウェアは、例えば、銀行の自動預金預け払いシステムや航空機の座席予約システムの機能を提供する。
【００１２】
ディスク制御装置１１０はディスクアレイ装置１０全体の制御を司る。ディスク制御装置１１０は、情報処理装置２０から受信したコマンドに従ってハードディスクドライブ１２０に対する制御を行う。例えば情報処理装置２０からデータの入出力要求を受信して、ハードディスクドライブ１２０に記憶されているデータの入出力のための処理を行う。
【００１３】
ディスク制御装置１１０は、チャネル制御部１３１、ディスク制御部１３２、共有メモリ１３３、キャッシュメモリ１３４、これらの間を通信可能に接続するクロスバスイッチなどで構成されるスイッチング制御部１３５、及び管理端末１３６などを備えて構成される。また、ディスク制御装置１１０を構成する各部１３１〜１３６は耐障害性を高めるために冗長化されてもよい。
【００１４】
キャッシュメモリ１３４は、主としてチャネル制御部１３１とディスク制御部１３２との間で授受されるデータを一時的に記憶するために用いられる。例えばチャネル制御部１３１が情報処理装置２０から受信したデータ入出力コマンドが書き込みコマンドである場合には、チャネル制御部１３１は情報処理装置２０から受信した書き込みデータをキャッシュメモリ１３４に書き込む。またディスク制御部１３２はキャッシュメモリ１３４から書き込みデータを読み出してハードディスクドライブ１２０に書き込む。なお、キャッシュメモリ１３４は不揮発とすることもできる。この場合、チャネル制御部１３１が情報処理装置２０から受信したデータがキャッシュメモリ１３４に書き込まれた段階で、情報処理装置２０に書込完了通知を送信することとしてもよい。
【００１５】
ディスク制御部１３２は、チャネル制御部１３１により共有メモリ１３３に書き込まれたデータ入出力要求を読み出してそのデータ入出力要求に設定されているコマンド（例えば、ＳＣＳＩ（Small Computer System Interface）規格のコマンド）に従ってハードディスクドライブ１２０にデータの書き込みや読み出しなどの処理を実行する。ディスク制御部１３２はハードディスクドライブ１２０から読み出したデータをキャッシュメモリ１３４に書き込む。またデータの書き込み完了通知や読み出し完了通知などをチャネル制御部１３１に送信する。ディスク制御部１３２は、ハードディスクドライブ１２０をいわゆるＲＡＩＤ（Redundant Array of Inexpensive Disks）方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御する機能を備えることもある。
【００１６】
ハードディスクドライブ１２０により提供される記憶領域は、この記憶領域上に論理的に設定されるボリュームである論理ボリューム１２１を単位として管理されている。ハードディスクドライブ１２０へのデータの書き込みや読み出しは、論理ボリュームに付与される識別子を指定して行なうことができる。
【００１７】
管理端末１３６はディスクアレイ装置１０を保守・管理するためのコンピュータである。チャネル制御部１３１やディスク制御部１３２において実行されるソフトウェアやパラメータの変更は、管理端末１３６からの指示により行われる。管理端末１３６はディスクアレイ装置１０に内蔵される形態とすることもできるし、別体とすることもできる。
【００１８】
共有メモリ１３３はチャネル制御部１３１、ディスク制御部１３２、及び管理端末１３６からアクセスが可能である。チャネル制御部１３１とディスク制御部１３２との間におけるデータ入出力要求コマンドの受け渡しに利用される他、ディスクアレイ装置１０の管理情報等が記憶される。
【００１９】
図２はチャネル制御部１３１の構成を示すブロック図である。チャネル制御部１３１は、インタフェース部２０１、メモリ２０２、ＣＰＵ２０３、ＮＶＲＡＭ（Nonvolatile Random-Access Memory）２０４、コネクタ２０５を備え、これらが一枚もしくは複数枚の回路基板に一体的なユニットとして形成されている。
【００２０】
インタフェース部２０１は、情報処理装置２０との間で通信を行うためのインタフェースを備えている。通信を行うためのインタフェースとは、例えば、ファイバチャネルに対応したコネクタやイーサネット（登録商標）に対応したコネクタなどである。
【００２１】
コネクタ２０５は、チャネル制御部１３１をディスクアレイ装置１０に接続するためのコネクタである。コネクタ２０５がディスクアレイ装置１０側のコネクタと嵌合することにより、チャネル制御部１３１が形成される基板はディスクアレイ装置１０と電気的に接続される。チャネル制御部１３１はコネクタ２０５を介してスイッチング制御部１３５に接続され、共有メモリ１３３、キャッシュメモリ１３４、ディスク制御部１３２などにアクセスすることができる。
【００２２】
ＣＰＵ２０３はチャネル制御部１３１の全体の制御を司る。ＣＰＵ２０３はメモリ２０２やＮＶＲＡＭ２０３に格納されている各種プログラムを実行することによりチャネル制御部１３１の機能を実現する。ＮＶＲＡＭ２０３は各種プログラムや設定データなどを格納する不揮発性のメモリである。ＮＶＲＡＭ２０３に記憶される各種プログラムや設定データなどの内容は管理端末１３６からの指示により書き換えを行うことができる。
【００２３】
図３はディスク制御部１３２の構成を示すブロック図である。ディスク制御部１３２は、インタフェース部３０１、メモリ３０２、ＣＰＵ３０３、ＮＶＲＡＭ３０４、コネクタ３０５を備え、これらが一枚もしくは複数枚の回路基板に一体的なユニットとして形成されている。
【００２４】
インタフェース部３０１は、ハードディスクドライブ１２０との間で通信を行うためのインタフェースを備えている。通信を行うためのインタフェースとは、例えば、ＳＣＳＩ規約に従うコネクタやファイバチャネル規約に従うコネクタなどである。
【００２５】
コネクタ３０５は、ディスク制御部１３２をディスクアレイ装置１０に接続するためのコネクタである。コネクタ３０５がディスクアレイ装置１０側のコネクタと嵌合することにより、ディスク制御部１３２が形成される基板はディスクアレイ装置１０と電気的に接続される。ディスク制御部１３２はコネクタ３０５を介してスイッチング制御部１３５に接続され、共有メモリ１３３、キャッシュメモリ１３４、チャネル制御部１３１などにアクセスすることができる。
【００２６】
ＣＰＵ３０３はディスク制御部１３２の全体の制御を司る。ＣＰＵ３０３はメモリ３０２やＮＶＲＡＭ３０３に格納されている各種プログラムを実行することによりディスク制御部１３２の機能を実現する。ＮＶＲＡＭ３０３は各種プログラムや設定データなどを格納する不揮発性のメモリである。ＮＶＲＡＭ３０３に記憶される各種プログラムや設定データなどの内容は管理端末１３６からの指示により書き換えを行うことができる。
【００２７】
次に、本実施の形態におけるディスクアレイ装置の第二の形態を図４に示す。第二の形態においては、ディスク制御装置１１０の構成が図１に示した第一の形態と異なる。ディスク制御装置１１０は、ＣＰＵ１４１、メモリ１４２、ホストインタフェース１４３、ディスクインタフェース１４４、キャッシュメモリ１４５、データコントローラ１４６を備えている。
【００２８】
ＣＰＵ１４１はディスクアレイ装置１０の全体の制御を司る。ＣＰＵ１４１はメモリ１４２に格納されているプログラムを実行することによりハードディスクドライブ１２０の管理やブロックアクセス要求の解釈など様々な機能を実現することができる。
【００２９】
ホストインタフェース１４３は情報処理装置２０との間で通信を行うインタフェースである。ホストインタフェース１４３はファイバチャネルプロトコルに従ってブロックアクセス要求を受け付ける機能を備える。  
ディスクインタフェース１４４はハードディスクドライブ１２０との間でデータのやり取りを行うインタフェースである。ディスクインタフェース１４４はハードディスクドライブ１２０を制御するコマンドなどを規定するプロトコルに従ってハードディスクドライブ１２０に対するデータ入出力要求を送信する機能を備える。ディスクインタフェース１４４は、ＳＣＳＩやファイバチャネルなどのプロトコルに従ってハードディスクドライブ１２０に対してデータの書き込みや読み出しのコマンドを送信することができる。
【００３０】
キャッシュメモリ１４５は、ホストインタフェース１４３とディスクインタフェース１４４との間で授受されるデータが記憶されるメモリである。  
データコントローラ１４６は、ＣＰＵ１４１の制御によりホストインタフェース１４３とキャッシュメモリ１４５との間、あるいはキャッシュメモリ１４５とディスクインタフェース１４４との間でのデータ転送を行うものである。データコントローラ１４６は、例えば、特定用途向けＩＣにロジックを形成する回路とすることができる。
【００３１】
情報処理装置２０がハードディスクドライブ１２０に対するデータの書き込み要求をディスクアレイ装置１０に送信すると、ディスクアレイ装置１０では、ホストインタフェース１４３が書き込み要求を受け付け、データコントローラ１４６が書き込み要求に付随する書き込みデータをキャッシュメモリ１４５に転送する。書き込みデータがキャッシュメモリ１４５に転送されると、データコントローラ１４６がキャッシュメモリ１４５からディスクインタフェース１４４に書き込みデータを読み出し、ディスクインタフェース１４４がハードディスクドライブ１２０に対して書き込みを指示するコマンドを送信する。
【００３２】
なお、キャッシュメモリ１４５は不揮発とすることもできる。この場合、ホストインタフェース１４３が情報処理装置２０から受信したデータがキャッシュメモリ１４５に書き込まれた段階で、ＣＰＵ１４１が情報処理装置２０に書込完了通知を送信することとしてもよい。
【００３３】
以上、ディスクアレイ装置１０の構成について説明した。なお、ディスクアレイ装置１０は、以上に説明した構成のもの以外にも、例えば、ＮＦＳ（Network File System）などのプロトコルにより情報処理装置２０からファイル名指定によるデータ入出力要求を受け付けるように構成されたＮＡＳ（Network Attached Storage）として機能するものなどであってもよい。
【００３４】
＝＝データベースの運用形態＝＝
次に、本実施の形態における、ディスクアレイ装置１０に構築されたデータベースの運用形態について説明する。  
図５は、クライアント端末３０、データベースサーバ４０、ディスクアレイ装置１０で構成されるデータベースシステムを示す図である。データベースサーバ４０は、図１および図４における情報処理装置２０に相当する。  
図６は、クライアント端末３０の構成を示すブロック図である。クライアント端末３０は、ＣＰＵ６０１、メモリ６０２、記憶装置６０３、ポート６０４、記録媒体読取装置６０５、入力装置６０６、出力装置６０７を備える。
【００３５】
ＣＰＵ６０１はクライアント端末３０の全体の制御を司るもので、メモリ６０２や記憶装置６０３に格納されたプログラムを実行することにより各種機能を実現する。記憶装置６０３は、例えばハードディスクドライブなどの記憶装置である。記録媒体読取装置６０５は、記録媒体６０８に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ６０２や記憶装置６０３に格納される。記録媒体６０８としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置６０５はクライアント端末３０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。入力装置６０６はオペレータ等によるクライアント装置３０へのデータ入力等のために用いられる。入力装置６０６としては例えばキーボードやマウス等が用いられる。出力装置６０７は情報を外部に出力するための装置である。出力装置６０７としては例えばディスプレイやプリンタ等が用いられる。ポート６０４はデータベースサーバ４０と通信を行うための装置である。
【００３６】
図７は、データベースサーバ４０の構成を示すブロック図である。データベースサーバ４０は、ＣＰＵ７０１、メモリ７０２、記憶装置７０３、ＬＡＮインタフェース７０４、ストレージインタフェース７０５、記録媒体読取装置７０６を備える。
【００３７】
ＣＰＵ７０１はデータベースサーバ４０の全体の制御を司るもので、メモリ７０２や記憶装置７０３に格納されたプログラムを実行することにより各種機能を実現する。記憶装置７０３は、例えばハードディスクドライブなどの記憶装置である。記録媒体読取装置７０６は、記録媒体７０７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ７０２や記憶装置７０３に格納される。記録媒体７０７としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置７０６はデータベースサーバ４０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。
【００３８】
ＬＡＮインタフェース７０４はクライアント端末３０とＬＡＮ等の通信手段により通信を行うためのインタフェースである。また、ストレージインタフェース７０５は、ストレージ装置１０とＳＡＮやＬＡＮ等の通信手段により通信を行うためのインタフェースである。
【００３９】
図５に示すように、ディスクアレイ装置１０には、データ領域５０１とＲＥＤＯログ領域５０２とが設けられている。データ領域５０１とＲＥＤＯログ５０２領域は、一つ又は複数のハードディスクドライブ１２０により構成される記憶領域である。クライアント端末３０は、データ領域５０１に格納されているテーブル５０３，５０４の更新要求をデータベースサーバ４０に送信する。データベースサーバ４０には、データベースバッファ５０５とＲＥＤＯログバッファ５０６とが設けられている。データベースバッファ５０５とＲＥＤＯログバッファ５０６は後述する記憶装置７０３に記憶されている。データベースバッファ５０５に格納されているデータは、データ領域５０１に格納されているデータのキャッシュデータとして使用される。これにより、データベースサーバ４０はディスクアレイ装置１０へのアクセスを行うことなく、クライアント端末３０からのテーブル更新要求に応答することができ、クライアント端末３０への応答時間を短縮することが可能となる。同様に、ＲＥＤＯログバッファ５０６に格納されているデータは、ＲＥＤＯログ領域５０２に格納されているデータのキャッシュデータとして使用される。
【００４０】
データベースの更新処理においては、複数のテーブルの更新を保証することが要求される。例えば、銀行の預金口座間における振込の場合、振込元の口座を管理するテーブルに記憶されている預金残高を減額し、振込先の口座を管理するテーブルに記憶されている預金残高を増額する必要がある。つまり、振込元のテーブルの更新と振込先のテーブルの更新とが完了しないと、更新処理が正しく行われたことにならない。データベースサーバ４０は、このように複数のテーブルの更新を保証する機能を備えている。クライアント端末３０は、複数のテーブルの更新処理を実行した後に、これら複数のテーブルの更新処理の保証を要求するためのコミット要求をデータベースサーバ４０に送信する。データベースサーバ４０は、これら複数のテーブルの更新処理の途中で何らかの障害が発生した場合は、これら複数のテーブルを更新前の状態に戻すことができる。
【００４１】
図８は、データ領域５０１のテーブル５０３，５０４を更新する処理を示すフローチャートである。クライアント端末３０は、データベースサーバ４０にテーブル５０３の更新要求を送信する（Ｓ８０１）。更新要求にはテーブル５０３における更新位置と更新データとが含まれている。更新要求を受信すると、データベースサーバ４０は更新位置情報をもとに更新データをデータベースバッファ５０５に格納する（Ｓ８０２）。そして、データベースサーバ４０は、更新位置情報と更新データとをＲＥＤＯログバッファ５０６に格納し（Ｓ８０３）、クライアント端末３０に更新完了通知を送信する（Ｓ８０４）。続いて、クライアント端末３０はテーブル５０４の更新要求をデータベースサーバ４０に送信する。データベースサーバ４０は、同様にデータベースバッファ５０５及びＲＥＤＯログバッファ５０６の更新を行い（Ｓ８０６，Ｓ８０７）、更新完了通知をクライアント端末３０に送信する（Ｓ８０８）。テーブル５０４の更新完了通知を受信すると、クライアント端末３０は、当該更新処理のコミット要求をデータベースサーバ４０に送信する（Ｓ８０９）。  
コミット要求を受信すると、データベースサーバ４０は、ＲＥＤＯログバッファ５０６に格納されているテーブル５０３及びテーブル５０４の更新における更新位置情報と更新データとをＲＥＤＯログ領域５０２に書き込む更新要求をディスクアレイ装置１０に送信する（Ｓ８１０）。ディスクアレイ装置１０はＲＥＤＯログ領域５０２に更新位置情報と更新データとを格納し（Ｓ８１１）、更新完了通知をデータベースサーバ４０に送信する（Ｓ８１２）。データベースサーバ４０は、ディスクアレイ装置１０からＲＥＤＯログ領域５０２の更新完了通知を受信すると、コミット完了通知をクライアント端末３０に送信する（Ｓ８１３）。クライアント端末３０は、データベースサーバ４０からコミット完了通知を受信し（Ｓ８１４）、テーブル５０３，５０４の更新が保証されたことを認識する。
【００４２】
データベースバッファ５０５に格納された更新データは、クライアント端末３０との間で行われる一連の処理（Ｓ８０１〜Ｓ８１４）とは非同期に、ディスクアレイ装置１０のデータ領域５０１に格納される。まず、データベースサーバ４０は、データ領域５０１から更新前のデータの読み出す要求をディスクアレイ装置１０に送信する（Ｓ８５１）。ディスクアレイ装置１０は、更新前のデータをデータ領域５０１から読み出し、データベースサーバ４０に送信する（Ｓ８５２）。データベースサーバ４０は、更新前のデータと更新位置情報とをＲＥＤＯログ領域５０２に書き込む要求をディスクアレイ装置１０に送信する（Ｓ８５３）。ディスクアレイ装置１０は、更新前のデータと更新位置情報とをＲＥＤＯログ領域５０２に格納し（Ｓ８５４）、更新完了通知をデータベースサーバ４０に送信する（Ｓ８５５）。データベースサーバ４０は、ＲＥＤＯログ領域５０２の更新完了通知を受信すると、データベースバッファ５０５に格納されている更新データをデータ領域５０１に書き込む要求をディスクアレイ装置１０に送信する（Ｓ８５６）。そして、ディスクアレイ装置１０は更新データをデータ領域５０１に格納する（Ｓ８５７）。  
このように、データベースサーバ４０は、時間のかかるデータ領域５０１への更新データの格納を、データベースバッファ５０５への更新データの格納とは別のタイミングで行っている。これにより、データベースサーバ４０は、クライアント端末３０からの更新要求に対する応答時間を短縮している。
【００４３】
また、データバースサーバ４０に障害が発生した場合は、ＲＥＤＯログ領域５０２に格納されているデータ（以後、「ＲＥＤＯログ」と称する）を確認することにより、データ領域５０１のデータをクライアント端末３０からのコミット要求を反映した内容に復旧することが可能である。つまり、ＲＥＤＯログに、Ｓ８１１の処理で格納されるコミット要求に伴う更新データが存在せず、かつ、Ｓ８５４の処理で格納される更新前データが存在する場合、更新前データデータ領域５０１に書き込む。これを、ロールバック処理という。また、ＲＥＤＯログに、Ｓ８１１の処理で格納されるコミット要求に伴う更新データが存在し、かつ、Ｓ８５４の処理で格納される更新前データが存在しない場合、更新データをデータ領域５０１に書き込む。これを、ロールフォワード処理という。  
このように、データ領域５０１のデータをクライアント端末３０からのコミット要求を反映した内容に復旧する処理は、データベースのリカバリ処理と呼ばれている。リカバリ処理は、前述した手順に限られない。例えば、更新前データの全てをロールバックし、コミット要求に伴う更新データを全てロールフォワードすることにより実現されるものとしてもよい。
【００４４】
次に、図９にて、複数台のハードディスクドライブ１２０に障害が発生し、ＲＡＩＤの冗長性等を用いてデータ領域５０１のデータを復旧することができない場合（以後、「データ領域の障害」と称する）における、データ領域５０１の一般的な復旧手順について説明する。
【００４５】
図９は、ＲＥＤＯログの記録を０時に開始し、１２時にデータ領域５０１に障害が発生した場合を示している。また、データ領域５０１の６時の状態がデータ領域５０１を構成するハードディスクドライブ１２０とは別のハードディスクドライブ１２０又は磁気テープ等の記憶媒体にバックアップされている（Ｓ９０１）。なお、データ領域５０１のある時点のデータ（以後、「静止化データ」と称する）をバックアップする一般的な手順については、後述する。
【００４６】
１２時にデータ領域５０１の障害が発生した場合、障害が発生している一つ又は複数のハードディスクドライブ１２０を交換した後、バックアップされている６時のデータをデータ領域５０１に復元する（Ｓ９０２）。そして、前述したリカバリ処理の手順に従い、０時以降の更新前データの全てをロールバックし（Ｓ９０３）、０時から障害発生前までのコミット要求に伴う更新データをロールフォワードする（Ｓ９０４）。これにより、障害直前の状態までデータ領域５０１を復旧することができる。
【００４７】
また、ユーザの操作ミスによる障害やソフトウェア障害によりデータ領域５０１が不正な状態となった場合も、静止化データとＲＥＤＯログとを用いてデータ領域５０１を復旧することができる。ユーザの操作ミスによる障害とは、例えば、ファイルシステム上でデータ領域５０１をフォーマットしてしまうことによりデータ領域５０１を失ってしまう場合などである。また、ソフトウェア障害とは、アプリケーションプログラムの不具合等により、データ領域５０１に格納されているデータに不整合が生じてしまう場合などである。このような障害が発生した場合は、障害時刻をある程度特定し、ＲＥＤＯログを用いたロールフォワード処理を障害時刻の前までとする。これにより、障害前の状態のデータ領域５０１を復旧することができる。
【００４８】
以上のように、データ領域５０１に障害が発生した場合は、静止化データとＲＥＤＯログとを用いて、データ領域５０１を復旧することが可能である。また、静止化データをディスクアレイ装置１０内に保持しておくことにより、磁気テープ等からのデータ復元を行わずに、迅速にデータ領域５０１の復旧を行うことも可能である。
【００４９】
＝＝データバックアップ方式＝＝
次に、データのバックアップ方式について説明する。図１０はレプリカ方式、図１１はスナップショット方式を示す図である。
【００５０】
まず、図１０を用いてレプリカ方式について説明する。レプリカ方式では、データ領域５０１とは別の記憶領域としてレプリカボリューム１００１が設けられている。レプリカボリューム１００１は一つ又は複数のハードディスクドライブ１２０により構成される。ディスク制御装置１１０は、データベースサーバ４０からデータ領域５０１の更新要求を受信すると、データ領域５０１とレプリカボリューム１００１の双方に更新データを書き込む。このように、双方に更新データを書き込んでいる状態を同期状態と称する。ディスク制御部１１０は、データベースサーバ４０等からレプリカボリュームへ１００１への更新データの書き込みを停止するスプリット指示命令を受信する。スプリット指示命令を受信すると、ディスク制御部１１０は、レプリカボリューム１００１への更新データの書き込みを停止する。つまり、レプリカボリューム１００１はスプリット指示命令を受信した時点における、データ領域５０１の静止化データである。
【００５１】
ディスク制御装置１１０は、レプリカボリューム１００１の更新を停止している間にデータ領域５０１に書き込まれた更新データの位置情報を、メモリ１００３の差分セグメントビットマップ１００４に記憶する。メモリ１００３は、図１の共有メモリ１３３、キャッシュメモリ１３４、図４のキャッシュメモリ１４５などである。ディスク制御装置１１０は、データベースサーバ４０等からレプリカボリューム１００１を同期状態にするリシンク指示命令を受信すると、差分セグメントビットマップ１００４に記憶されている位置情報で示されるデータをデータ領域５０１から読み出してレプリカボリューム１００１に書き込む。このリシンク指示命令に伴う処理をリシンク処理と称する。
【００５２】
更新を停止している間にデータ領域５０１に書き込まれたデータの量が多い場合、リシンク処理には相当の時間を要する。リシンク処理では、データ領域５０１におけるデータの更新順序とは関係なく、セグメント単位でレプリカボリューム１００１のデータが更新される。つまり、リシンク処理の実行中は、レプリカボリューム１００１はデータ領域５０１のある時点の状態とはなっていない。したがって、リシンク処理の実行中にデータ領域５０１に障害が発生した場合、レプリカボリューム１００１をデータ領域５０１を復旧するために用いることができない。
【００５３】
そこで、ディスクアレイ装置１０内に、もう一つレプリカボリューム１００２が設けられている場合もある。この場合、２つのレプリカボリューム１００１，１００２で交互に更新の停止とリシンク処理を行うことで、ディスクアレイ装置１０内に必ずデータ領域５０１の静止化データを確保することができる。
【００５４】
次に、図１１を用いてスナップショット方式について説明する。スナップショット方式では、データ領域５０１とは別の記憶領域としてプール１１０１が設けられている。プール１００１は一つ又は複数のハードディスクドライブ１２０により構成される。また、仮想的なレプリカボリュームである仮想レプリカボリューム１１０２が提供される。ディスク制御装置１１０は、データベースサーバ４０等から仮想レプリカボリューム１１０２の作成指示を受信する。ディスク制御装置１１０は、データベースサーバ４０からデータ領域５０１の更新要求を受信すると、データ領域５０１の更新予定位置に格納されている更新前データを読み出してプール１１０１に書き込む。そして、ディスク制御装置１１０は、データ領域５０１に更新データを書き込み、メモリ１００３の差分セグメントビットマップ１００４に更新データの位置情報を記憶する。ディスク制御装置１１０は、仮想レプリカボリューム１１０２に対する読み出し要求を受信すると、差分セグメントビットマップ１００４を参照し、読み出しデータの位置情報が記憶されている場合はプール１１０１からデータを読み出し、そうでない場合はデータ領域５０１からデータを読み出す。つまり、仮想レプリカボリューム１１０２は、仮想レプリカボリューム１１０２の作成指示を受信した時点における、データ領域５０１の静止化データである。
【００５５】
以上に説明したレプリカ方式とスナップショット方式には、次のような欠点がある。レプリカ方式では、リシンク処理の際にデータ領域５０１に格納されているデータを読み出す必要がある。そのため、データベースサーバ４０から受信するデータ領域５０１の更新要求に伴うデータ領域５０１の更新処理と競合し、データベースサーバ４０からデータ領域５０１へのアクセス性能が低下してしまう。また、２つのレプリカボリューム１００１，１００２を設ける場合、データ領域５０１の３倍の記憶容量が必要となり、ディスクアレイ装置１０の導入コストが高くなってしまう。
【００５６】
スナップショット方式では、静止化データである仮想レプリカボリューム１１０２を読み出す際に、データ領域５０１に格納されているデータを読み出す必要がある。そのため、レプリカ方式の場合と同様、データベースサーバ４０から受信するデータ領域５０１の更新要求に伴うデータ領域５０１の更新処理と競合し、データベースサーバ４０からデータ領域５０１へのアクセス性能が低下してしまう。また、データ領域５０１において障害が発生した場合、ディスクアレイ装置１０内にデータ領域５０１の静止化データが存在しないこととなる。そのため、データ領域５０１を迅速に復旧することができない。
【００５７】
次に、前述したレプリカ方式とスナップショット方式を改良した、本実施の形態におけるデータバックアップ方式を、図１２を用いて説明する。
【００５８】
ディスクアレイ装置１０には、データ領域５０１が格納される第一の記憶デバイス１２０１、第二の記憶デバイス１２０２、及び第三の記憶デバイス１２０３が設けられている。第一乃至第三の記憶デバイス１２０１〜１２０３は、それぞれ一つ又は複数のハードディスクドライブ１２０により構成されている。また、第一の記憶デバイス１２０１及び第二の記憶デバイス１２０２には、一つ又は複数の論理ボリューム１２１が形成されている。また、第一の記憶デバイス１２０１を構成するハードディスクドライブ１２０と第二の記憶デバイス１２０２及び第三の記憶デバイス１２０３を構成するハードディスクドライブ１２０は物理的に別のものである。なお、ＲＥＤＯログは、ディスクアレイ装置１０内の第一の記憶デバイス１２０１を構成するハードディスクドライブ１２０とは別のハードディスクドライブ１２０に格納されている。また、ＲＥＤＯログは、ディスクアレイ装置１０の外部にある記憶装置に格納されているものとしてもよい。ディスク制御装置１１０には、計時機構１２０４が備えられている。計時機構１２０４は、外部からの要求に応じて日付及び時刻を提供する。計時機構１２０４は、クロック信号により時刻をカウントする計時回路などである。メモリ１００３には、所定の時間である検出時間１２０５が記憶されている。検出時間１２０５は、管理端末１３６や情報処理装置２０などから登録される。
【００５９】
本方式における、データの更新処理の概略を説明する。ディスク制御装置１１０は、データベースサーバ４０から第一の記憶デバイス１２０１の論理ボリューム１２１の更新要求を受信する。ディスク制御装置１１０は、当該更新要求を受信すると、第一の記憶デバイス１２０１の論理ボリュームに更新データを書き込む。そして、ディスク制御部１１０は第一の記憶デバイスに書き込んだ更新データと更新データが書き込まれた位置情報、更新時刻等で構成されるジャーナルデータを第三の記憶デバイスに書き込む。ディスク制御部１１０は、第三の記憶デバイスに書き込まれているジャーナルデータを所定の間隔で参照し、更新時刻と現在時刻との差が検出時間１２０５を超えているジャーナルデータについて、更新時刻順に更新データを第二の記憶デバイス１２０２の論理ボリューム１２１に書き込む。第二の記憶デバイス１２０２の論理ボリューム１２０２は、第一の記憶デバイス１２０１の論理ボリューム１２１の検出時間１２０５だけ前の状態となっている。つまり、第一の記憶デバイス１２０１に障害が発生した場合、第二の記憶デバイス１２０２と第三の記憶デバイス１２０３又はＲＥＤＯログとを用いて、第一の記憶デバイス１２０１を復旧することが可能である。
【００６０】
図１３は、本実施の形態に係るディスク制御装置１１０における前述したデータの更新処理を実現する機能を示すブロック図である。ディスク制御装置１１０は、書き込み要求受信部１３０１、第一の書き込み部１３０２、ジャーナル書き込み部１３０３、第二の書き込み部１３０４、スプリット指示命令受信部１３０５、スプリット解除命令受信部１３０６、スプリット指示記憶部１３０７、スプリット解除記憶部１３０８、未反映情報記憶部１３０９、読み出し要求受信部１３１０、識別子取得部１３１１、重複範囲取得部１３１２、仮想論理ボリューム読み出し部１３１３、読み出しデータ送信部１３１４を備えている。各部１３０１〜１３１４は、図１〜図３に示すディスクアレイ装置１０におけるＣＰＵ２０３及びＣＰＵ３０３、図４に示すディスクアレイ装置１０におけるＣＰＵ１４１がメモリ２０２，３０２，１４２又はＮＶＲＡＭ２０４，３０４に格納されているプログラムを実行することにより実現される。
【００６１】
＝＝ペア及びグループ＝＝
図１４は、第一の記憶デバイス１２０１の論理ボリューム１２１と第二の記憶デバイス１２０２の論理ボリューム１２１との関係を示す図である。第一の記憶デバイス１２０１の論理ボリューム１２１は、第二の記憶デバイス１２０２の論理ボリューム１２１と対応付けられている。この対応付けにおける第一の記憶デバイス１２０１の論理ボリューム１２１を主論理ボリューム、第二の記憶デバイス１２０２の論理ボリューム１２１を副論理ボリュームと称する。この対応付けはペアと呼ばれ、図１５に示すペア管理テーブル１５０１に主論理ボリュームの識別子と副論理ボリュームの識別子とが対応付けられて記憶されている。また、第一の記憶デバイス１２０１の論理ボリューム１２１は一つ又は複数の論理ボリューム１２１をまとまりとするグループを形成している。グループは、例えば、データベースサーバ４０ごとや、データベースサーバ４０が提供するデータベース・インスタンスごとに形成される。つまり、データベースサーバ４０は第一の記憶デバイス１２０１の論理ボリューム１２１をグループ単位で使用していると言うことができる。従って、第一の記憶デバイス１２０１の論理ボリューム１２１をグループ単位でバックアップすることが必要となる。グループにはグループを示すグループＩＤが付与され、図１６に示すグループ管理テーブル１６０１に論理ボリューム１２１の識別子とグループＩＤとの対応付けが記憶されている。ペア管理テーブル１５０１及びグループ管理テーブル１６０１はメモリ１００３に記憶されており、管理端末１３６や情報処理装置２０などから登録される。
【００６２】
＝＝ジャーナルデータ＝＝
図１７は、第三の記憶デバイス１２０３に書き込まれるジャーナルデータを示す図である。ジャーナルデータ１７０１は、ジャーナル部１７０２及び更新ストリーム部１７０３からなる。
【００６３】
ジャーナル部１７０２は、グループＩＤ、シーケンスＩＤ、更新時刻、更新位置情報、及び更新ストリームオフセットで構成されている。データベースサーバ４０から第一の記憶デバイス１２０１の論理ボリューム１２１に更新データを書き込む要求を受信すると、ディスク制御装置１１０は第三の記憶デバイス１２０３にジャーナルデータ１７０１を記憶する。グループＩＤは、当該論理ボリューム１２１が属するグループのグループＩＤである。シーケンスＩＤは、第一の記憶デバイス１２０１における更新データの更新順序を示すものであり、グループごとに管理されている連続番号である。ジャーナルデータ１７０１に格納されている更新データは、グループごとにシーケンスＩＤ順に第二の記憶デバイス１２０２の論理ボリューム１２１に書き込まれる。更新時刻は、ディスク制御装置１１０がジャーナルデータ１７０１を記憶する際に計時機構１２０１から取得した日付と時刻である。したがって、シーケンスＩＤの順序と更新時刻の順序は同じである。更新位置情報には、当該論理ボリューム１２１の識別子と当該論理ボリューム１２１において更新データが格納された位置情報とが記憶されている。なお、データが格納された位置情報とは、例えば、開始アドレス及び開始アドレスからのデータ長などで示される情報である。更新ストリームオフセットには、更新データの更新ストリーム部１７０３における位置情報が記憶されている。更新ストリーム部１７０３には、更新データが更新ストリームオフセットで示される位置に記憶されている。
【００６４】
また、ディスク制御部１１０が後述するスプリット指示命令を受信した場合は、更新位置情報にスプリット指示命令を受信したことを示すデータが記憶される。グループＩＤには、スプリット指示命令で指定されたグループＩＤが記憶される。シーケンスＩＤには、スプリット指示命令で指定されたグループＩＤのシーケンスＩＤが記憶される。更新時刻には、計時機構１２０１から取得した日付と時刻が記憶される。このように、スプリット指示命令に伴いジャーナル部１７０１に書き込まれたデータをスプリット指示データと称する。そして、ディスク制御部１１０が後述するスプリット解除命令を受信した場合は、更新位置情報にスプリット解除命令を受信したことを示すデータが記憶される。このように、スプリット解除命令に伴いジャーナル部１７０１に書き込まれたデータをスプリット解除データと称する。
【００６５】
なお、第二の記憶デバイス１２０２の論理ボリューム１２１への反映が完了した更新データを示すジャーナルデータ１７０１の記憶領域は空き領域として管理され、別の更新データを示すジャーナルデータ１７０１の記憶領域として再利用される。
【００６６】
＝＝スプリット運用＝＝
次に、本実施の形態において静止化データを作成してデータのバックアップを行う概要について説明する。図１８は、静止化データを作成するためのスプリット指示命令を受信した場合の、ディスクアレイ装置１０の状態遷移を示す図である。
【００６７】
まず、通常運用の状態（Ｓ１８０１）においては、第三の記憶デバイス１２０３のジャーナルデータ１７０１から、更新時刻と現在時刻との差が検出時間１２０５を超えている更新データが抽出され、第二の記憶デバイス１２０２に書き込まれている。
【００６８】
ディスクアレイ装置１０は、データベースサーバ４０またはバックアップサーバ１８０３等からスプリット指示命令を受信すると、仮想デバイス１８０１を作成する状態（Ｓ１８０２）へと遷移する。バックアップサーバ１８０３とは、図１及び図４における情報処理装置１０に相当する装置である。バックアップサーバ１８０３は、ディスクアレイ装置１０に格納されているデータを読み出し、外部の記憶媒体にバックアップする機能を備えている。
【００６９】
図１８のＳ１８０２は、ディスクアレイ装置１０がスプリット指示命令を１８時（スプリット時刻）に受信してから５分経過した状態を示している。なお、図１８の例では検出時間は２時間である。Ｓ１８０２において、第二の記憶デバイス１２０２には、現在時刻の２時間前である１６：０５までの更新データが反映されている。つまり、１６：０５から１８：００までの更新データは、まだ第二の記憶デバイス１２０２に反映されず、第三の記憶デバイス１２０３に格納されている。
【００７０】
そこで、１８：００における第一の記憶デバイスの静止化データとして仮想デバイス１８０１が提供される。仮想デバイス１８０１には、仮想的な論理ボリュームである仮想論理ボリュームが設けられている。仮想論理ボリュームの識別子と第二の記憶デバイス１２０２の論理ボリューム１２１の識別子との対応は、図１９に示す仮想論理ボリューム管理テーブル１９０１に記憶されている。仮想論理ボリューム管理テーブル１９０１はメモリ１００３に記憶され、管理端末１３６や情報処理装置２０などから登録される。
【００７１】
ディスク制御装置１１０は、更新時刻がスプリット時刻より早いジャーナルデータ１７０１の更新位置情報を抽出し、未反映情報としてメモリ１００３に記憶している。未反映情報の記憶方式は、例えば、第二の記憶デバイス１２０２の記憶領域を複数のセグメントに分割し、このセグメント単位に未反映の更新データがあるかどうかを示すビットマップ方式などである。ディスク制御装置１１０は、バックアップサーバ１８０２から仮想論理ボリュームに対するデータの読み出し要求を受信すると、未反映情報で示される位置に格納されているデータについては、第三の記憶デバイス１２０３からデータを読み出す。また、ディスク制御装置１１０は、未反映情報で示される位置以外に格納されているデータについては、第二の記憶デバイス１２０２から読み出す。これにより、バックアップサーバ１８０２に対して第一の記憶デバイス１２０１の１８時の静止化データを提供することができる。
【００７２】
仮想デバイス１８０１が提供されている間も、第三の記憶デバイス１２０３から第二の記憶デバイス１２０２への更新データの反映は行われている。そのため、ディスク制御装置１１０は、仮想デバイス１８０１を静止化データとするために、更新時刻がスプリット時刻以降の更新データを第二の記憶デバイス１２０２に反映しない。この状態を示しているのが、Ｓ１８０３である。Ｓ１８０３においては、第二の記憶デバイス１２０２にはスプリット時刻である１８時までの更新データが反映されている。したがって、第二の記憶デバイス１２０２と仮想デバイス１８０１とは一致している。
【００７３】
ディスクアレイ装置１０は、データベースサーバ４０またはバックアップサーバ１８０１等からスプリット解除命令を受信すると、第三の記憶デバイス１２０３に格納されている、更新時刻と現在時刻との差が検出時間１２０５を超えている更新データの第二の記憶デバイス１２０２への反映を再開する。Ｓ１８０４は、この状態を示している。そして、この反映が完了すると、通常運用の状態（Ｓ１８０１）に戻る。
【００７４】
なお、仮想デバイス１８０１を用いずに、スプリット指示命令を受信するとディスク制御装置１１０は更新時刻がスプリット時刻より早い更新データを、更新時刻と現在時刻との差が検出時間１２０５を超えているかどうかにかかわらず、第二の記憶デバイス１２０２に反映するものとしてもよい。この場合、バックアップサーバ１８０２は、仮想デバイス１８０１ではなく、第二の記憶デバイス１２０２からデータを読み出してバックアップを行う。
【００７５】
＝＝動作の説明＝＝
以上に説明した、本実施の形態におけるバックアップ方式を実現するための、ディスク制御装置１１０の各部１３０１〜１３１４の動作を説明する。
【００７６】
＝＝第三の記憶デバイスへの書き込み＝＝
図２０は、ディスク制御装置１１０がデータベースサーバ４０から第一の記憶デバイス１２０１の論理ボリューム１２１に対するデータの書き込み要求を受信した際の処理を示すフローチャートである。
【００７７】
書き込み要求受信部１３０１は、データベースサーバ４０から第一の記憶デバイス１２０１の論理ボリューム１２１に対するデータの書き込み要求と書き込み用のデータとを受信する（Ｓ２００１）。第一の書き込み部１３０２は、当該データを第一の記憶デバイス１２０１の当該書き込み要求で指定される論理ボリューム１２１に書き込む（Ｓ２００２）。ジャーナル書き込み部１３０３は、当該データに対するジャーナルデータ１７０１を第三の記憶デバイス１２０３に書き込む（Ｓ２００３）。そして、ジャーナル書き込み部１３０３は、データベースサーバ４０に対して当該データの書き込み完了通知を送信する（Ｓ２００４）。
【００７８】
なお、当該ジャーナルデータ１７０１の生成は次のように行われる。ジャーナル書き込み部１３０３は、当該論理ボリュームの識別子に対応するグループＩＤをグループ管理テーブル１６０１から取得し、当該ジャーナルデータ１７０１のグループＩＤに設定する。ジャーナル書き込み部１３０３は、取得したグループＩＤにおいて前回付与されたシーケンスＩＤに１加算し、当該ジャーナルデータ１７０１のシーケンスＩＤに設定する。ジャーナル書き込み部１３０３は、計時機構１２０４から現在の日時を取得し、当該ジャーナルデータ１７０１の更新時刻に設定する。ジャーナル書き込み部１３０３は、当該論理ボリュームの識別子と当該データが書き込まれた位置情報とを当該ジャーナルデータ１７０１の更新位置情報に設定する。ジャーナル書き込み部１３０３は、更新ストリーム部１７０３において次にデータが格納される位置を当該ジャーナルデータ１７０１の更新ストリームオフセットに設定する。そして、ジャーナル書き込み部１３０３は、当該データを更新ストリーム部１７０３に格納する。
【００７９】
また、ジャーナルデータ１７０１は、第三の記憶デバイス１２０３の論理ボリューム１２１に書き込まれる前に、メモリ１００３に書き込まれる。メモリ１００３が冗長構成で、かつ不揮発性である場合、メモリ１００３にジャーナルデータ１７０１が書き込まれた時点でジャーナル書き込み部１３０３がデータベースサーバ４０に対して当該データの書き込み完了通知を送信することとしてもよい。
【００８０】
＝＝スプリット指示＝＝
図２１は、ディスク制御装置１１０がスプリット指示命令を受信した際の処理を示すフローチャートである。
【００８１】
スプリット指示命令受信部１３０５は、データベースサーバ４０やバックアップサーバ１８０１等からスプリット指示命令を受信する（Ｓ２１０１）。スプリット指示記憶部１３０７は、スプリット指示データを第三の記憶デバイス１２０３に書き込む（Ｓ２１０２）。なお、スプリット指示データの生成は次のように行われる。スプリット指示記憶部１３０７は、スプリット指示命令で指定されるグループＩＤを当該スプリット指示データのグループＩＤに設定する。スプリット指示記憶部１３０７は、当該グループＩＤにおいて前回付与されたシーケンスＩＤに１加算し、当該スプリット指示データのシーケンスＩＤに設定する。スプリット指示記憶部１３０７は、計時機構１２０４から現在の日時を取得し、当該スプリット指示データの更新時刻に設定する。スプリット指示記憶部１３０７は、スプリット指示命令を受信したことを示すデータを当該スプリット指示データの更新位置情報に設定する。  
そして、未反映情報記憶部１３０９は、更新時刻がスプリット時刻より早いジャーナルデータ１７０１の更新位置情報である未反映情報をメモリ１００３に記憶する。なお、更新時刻がスプリット時刻より早いかどうかの判断は、更新時刻を直接比較することにより行われてもよいし、シーケンスＩＤを比較することにより行われてもよい。
【００８２】
＝＝スプリット解除＝＝
図２２は、ディスク制御装置１１０がスプリット解除命令を受信した際の処理を示すフローチャートである。  
スプリット解除命令受信部１３０６は、データベースサーバ４０やバックアップサーバ１８０１等からスプリット解除命令を受信する（Ｓ２２０１）。スプリット解除記憶部１３０８は、スプリット解除データを第三の記憶デバイス１２０３に書き込む（Ｓ２２０２）。つまり、スプリット解除記憶部１３０８は、スプリット指示命令で指定されるグループＩＤが設定されているスプリット指示データの更新位置情報にスプリット解除命令を受信したことを示すデータを設定する。
【００８３】
＝＝第二の記憶デバイスへの更新データの反映＝＝
図２３は、ディスク制御装置１１０が第三の記憶デバイス１２０３に格納されている更新データを第二の記憶デバイス１２０２に反映する処理を示すフローチャートである。  
第二の書き込み部１３０４は、メモリ１００３に格納されている検出時間１２０５を取得する（Ｓ２３０１）。第二の書き込み部１３０４は、計時機構１２０４から日付と時刻（現在時刻）を取得する（Ｓ２３０２）。第二の書き込み部１３０２４、第三の記憶デバイス１２０３に格納されているジャーナルデータ１７０１を参照し（Ｓ２３０３）、スプリット指示データがあり、かつ、スプリット解除データがないかどうかを確認する（Ｓ２３０４）。
【００８４】
スプリット指示データがあり、かつ、スプリット解除データがない場合、第二の書き込み部１３０４は、当該スプリット指示データとグループＩＤが同一で、更新時刻と現在時刻との差が検出時間１２０５を超えており、更新時刻がスプリット時刻より早いジャーナルデータを選択する（Ｓ２３０５）。条件に該当するジャーナルデータ１７０１がない場合は、再びＳ２３０２からの処理を実行する。なお、更新時刻がスプリット時刻より早いジャーナルの選択は、更新時刻を比較することにより行われてもよいし、シーケンスＩＤを比較することにより行われてもよい。  
スプリット指示データがないか、またはスプリット解除データがある場合、第二の書き込み部１３０４は、更新時刻と現在時刻との差が検出時間１２０５を超えているジャーナルデータ１７０１を選択する（Ｓ２３０６）。条件に該当するジャーナルデータ１７０１がない場合は、再びＳ２３０２からの処理を実行する。
【００８５】
第二の書き込み部１３０４は、選択したジャーナルデータ１７０１の更新位置情報に設定されている論理ボリューム１２１の識別子に対応する副論理ボリュームの識別子をペア管理テーブル１５０１から取得する（Ｓ２３０７）。第二の書き込み部１３０４は、選択したジャーナルデータ１７０１の更新データを、取得した副論理ボリュームの識別子で示される第二の記憶デバイス１２０２の論理ボリューム１２１のジャーナルデータ１７０１の位置情報で示される場所に書き込む（Ｓ２３０８）。なお、ジャーナルデータ１７０１が複数ある場合、第二の書き込み部１３０４は、シーケンスＩＤ順、つまり更新時刻の早い順に更新データを第二の記憶デバイス１２０２の論理ボリューム１２１に書き込む。第二の記憶デバイス１２０２の論理ボリューム１２１への書き込みが完了すると、第二の書き込み部１３０４は、メモリ１００３に記憶されている当該更新データの未反映情報を削除する（Ｓ２３０９）。
【００８６】
なお、前述のＳ２３０５のステップを、第二の書き込み部１３０４が更新時刻と現在時刻との比較を行わず、更新時刻がスプリット時刻より早いジャーナルデータを選択すると変更することにより、仮想デバイス１８０１を設けずに第二の記憶デバイス１２０２を第一の記憶デバイス１２０１の静止化データとすることができる。
【００８７】
＝＝仮想論理ボリュームの読み出し＝＝
図２４は、ディスク制御装置１１０が仮想デバイス１８０１の仮想論理ボリュームに対する読み出し要求を受信した際の処理を示すフローチャートである。
【００８８】
読み出し要求受信部１３１０は、バックアップサーバ１８０２から仮想デバイス１８０１の仮想論理ボリュームの識別子が指定された読み出し要求を受信する（Ｓ２４０１）。識別子取得部１３１１は、読み出し要求で指定された仮想論理ボリュームの識別子に対応する論理ボリューム１２１の識別子を仮想論理ボリューム管理テーブル１９０１から取得する（Ｓ２４０２）。重複範囲取得部１３１２は、読み出し要求で指定される位置情報とメモリ１００３に記憶されている未反映情報の位置情報とで重複している範囲を取得する（Ｓ２４０３）。未反映情報が開始アドレスとブロック長とで示されている場合、重複している範囲とは、読み出し要求で指定される位置情報で示される範囲と未反映情報の位置情報で示される範囲とで重なりあう部分である。また、未反映情報がセグメント単位でのビットマップで表現されている場合、重複している範囲とは、読み出し要求で指定される位置情報で示される範囲のうちで未反映情報のビットマップで未反映のビットが設定されているセグメントである。
【００８９】
仮想論理ボリューム読み出し部１３１３は、重複している範囲については第三の記憶デバイス１２０３に格納されているジャーナルデータ１７０１から読み出し（Ｓ２４０４）、重複していない範囲については第二の記憶デバイス１２０２の論理ボリューム１２１から読み出す（Ｓ２４０５）。そして、読み出しデータ送信部１３１４は、読み出されたデータをバックアップサーバ１８０２に送信する（Ｓ２４０６）。
【００９０】
以上、本実施の形態におけるバックアップ方式を実現するための、ディスク制御装置１１０の各部１３０１〜１３１４の動作を説明した。
【００９１】
これにより、第二の記憶デバイス１２０２の論理ボリューム１２１を第一の記憶デバイス１２０１の論理ボリューム１２１の検出時間１２０５前の状態とすることができる。ソフトウェアの障害等により不正なデータが第一の記憶デバイス１２０１の論理ボリューム１２１に書き込まれた場合、検出時間１２０５の間は、第二の記憶デバイス１２０２の論理ボリューム１２１には不正なデータが書き込まれない。
【００９２】
例えば、情報処理装置２０がデータベースサーバ４０であり、第一の記憶デバイス１２０１の論理ボリューム１２１がデータベースのデータ格納領域であるとする。このような場合、データベースサーバ４０は第一の記憶デバイス１２０１の論理ボリューム１２１に書き込んだデータに対するある時点からのＲＥＤＯログを別の記憶領域に記憶している。したがって、第一の記憶デバイス１２０１の論理ボリューム１２１に不正なデータが書き込まれた場合、第二の記憶デバイス１２０２の論理ボリューム１２１に記憶されている検出時間１２０５前のデータとＲＥＤＯログとを用いて、第一の記憶デバイス１２０１の論理ボリューム１２１を不正なデータが書き込まれる直前の状態にまで復元することができる。つまり、磁気テープ等の媒体に保存されているデータを用いることなく、ディスクアレイ装置１０内のデータを用いて第一の記憶デバイス１２０１の論理ボリューム１２１のデータを復元することができるため、復元作業に要する時間を短縮することが可能である。
【００９３】
また、第一の記憶デバイス１２０１の論理ボリューム１２１を主論理ボリュームとし、主論理ボリュームに対する副論理ボリューム（レプリカボリューム）を２つ設ける従来のデータバックアップ方式と比較して、記憶容量を削減することが可能である。副論理ボリュームを２つ設ける従来のデータバックアップ方式では、主論理ボリュームと副論理ボリュームとで、第一の記憶デバイス１２０１の３倍の記憶容量が必要であった。本発明の方式で必要となる記憶容量は、第三の記憶デバイス１２０３に格納するジャーナルデータの量に依存している。通常、１日のデータベース更新量は主論理ボリュームの２０％までであることが多い。つまり、検出時間１２０５を１日とする場合、第三の記憶デバイス１２０３の記憶容量は第一の記憶デバイス１２０１の２５％を確保すれば十分である。したがって、第一の記憶デバイス１２０１と第二の記憶デバイス１２０２と第三の記憶デバイス１２０３とで、第一の記憶デバイス１２０１の２．２５倍の記憶容量でよいこととなる。検出時間１２０５を数時間とすることができる場合は、必要な記憶容量を更に削減することが可能である。つまり、障害が発生した場合にディスクアレイ装置１０内に存在するデータで第一の記憶デバイス１２０１の論理ボリューム１２１を復旧するバックアップ方式において、必要な記憶容量を削減でき、ディスクアレイ装置１０の導入コストを削減することができる。
【００９４】
また、検出時間１２０５がメモリ１００３に記憶されていることにより、検出時間１２０５を管理端末１３６や情報処理装置２０等から登録することが可能となる。つまり、ソフトウェアの不具合や人為的な操作ミス等により発生する第一の記憶デバイス１２０１の論理ボリューム１２１に不正なデータが書き込まれていることを検出可能な時間を、業務やソフトウェアの特性に応じて変更することが可能である。したがって、第三の記憶デバイス１２０３にジャーナルデータ１７０１を格納するために必要な記憶容量を、業務やソフトウェアの特性に応じて変更することができる。
【００９５】
また、第一の記憶デバイス１２０１を構成するハードディスクドライブ１２０と第二の記憶デバイス１２０２を構成するハードディスクドライブ１２０とを物理的に別のものとすることができる。第一の記憶デバイス１２０１を構成するハードディスクドライブ１２０にハードウェア障害が発生した場合でも、第二の記憶デバイス１２０２には、検出時間１２０５前に第一の記憶デバイス１２０１の論理ボリューム１２１に記憶されていたデータが記憶されている。情報処理装置２０がデータベースサーバ４０で、ディスクアレイ装置１０内に第一の記憶デバイス１２０１の論理ボリューム１２１に書き込まれたＲＥＤＯログが存在する場合、第二の記憶デバイス１２０２の論理ボリューム１２１とＲＥＤＯログとで、第一の記憶デバイス１２０１の論理ボリューム１２１のデータを復元することができる。データの復元には、磁気テープ等の媒体に保存されているデータを用いないため、復元作業に要する時間を短縮することが可能である。
【００９６】
つまり、第一の記憶デバイス１２０１の論理ボリューム１２１のある時点の静止化データを用いることなく、継続的に更新が行われている第二の記憶デバイス１２０１を用いて第一の記憶デバイス１２０１の論理ボリューム１２１のデータを迅速に復旧することができる。
【００９７】
また、第一の記憶デバイス１２０１を構成するハードディスクドライブ１２０と第二の記憶デバイス１２０２及び第三の記憶デバイス１２０３を構成するハードディスクドライブ１２０とを物理的に別のものとすることができる。第三の記憶デバイス１２０３に格納されているジャーナルデータ１７０１を用いて第二の記憶デバイス１２０２の論理ボリューム１２１を更新する際に、第一の記憶デバイス１２０１からデータを読み出す必要がない。つまり、情報処理装置２０から第一の記憶デバイス１２０１に対するデータ入出力処理の性能に与える影響が少ない。
【００９８】
また、第一の記憶デバイス１２０１を構成するハードディスクドライブ１２０にハードウェア障害が発生した場合、第二の記憶デバイス１２０２の論理ボリューム１２１と第三の記憶デバイス１２０３に格納されているジャーナルデータ１７０１とを用いて第一の記憶デバイス１２０１の論理ボリューム１２１のデータを復元することができる。この場合においても、データの復元には磁気テープ等の媒体に保存されているデータを用いないため、復元作業に要する時間を短縮することが可能である。
【００９９】
また、スプリット時刻から検出時間を経過後、第一の記憶デバイス１２０１のスプリット時刻の状態を第二の記憶デバイス１２０２上に作成することが可能となる。この状態において、第二の記憶デバイス１２０２の論理ボリューム１２１を磁気テープ等の記憶媒体にバックアップすることが可能となる。したがって、ディスクアレイ装置１０全体の障害や広域災害等に備えたデータのバックアップを行うことが可能となる。
【０１００】
また、スプリット指示後直ちに、第二の記憶デバイス１２０２の論理ボリューム１２１の仮想論理ボリュームを用いて、第一の記憶デバイス１２０１の論理ボリューム１２１のスプリット時刻におけるデータを磁気テープ等にバックアップすることが可能である。つまり、第三の記憶デバイス１２０３に格納されている更新時刻がスプリット時刻より早いジャーナルデータが第二の記憶デバイス１２０２の論理ボリューム１２１に反映されるのを待つ必要がない。そのため、データのバックアップを容易に行うことが可能となる。
【０１０１】
また、スプリット指示命令を受信すると、検出時間にかかわらず、更新時刻がスプリット時刻より早いジャーナルデータの更新データを第二の記憶デバイス１２０２の論理ボリューム１２１に反映することもできる。これにより、第二の記憶デバイス１２０２の論理ボリューム１２１を用いて、第一の記憶デバイス１２０１の論理ボリューム１２１のスプリット時刻におけるデータを磁気テープ等にバックアップすることが可能である。つまり、バックアップ処理中に仮想論理ボリュームを形成する必要がないため、ディスクアレイ装置１０の負荷が軽減され、バックアップ処理時間が短縮される。
【０１０２】
また、スプリット指示命令を第一の記憶デバイス１２０１の論理ボリューム１２１のグループＩＤを指定して行うことができる。第一の記憶デバイス１２０１を、複数の情報処理装置２０が使用している場合や、情報処理装置１０上で複数の業務アプリケーションが稼働している場合等に、情報処理装置２０や業務アプリケーションごとに論理ボリューム１２１にグループＩＤを付与することで、グループＩＤ単位でデータのバックアップを行うことが可能となる。
【０１０３】
例えば、情報処理装置２０がデータベースサーバであり、データベースサーバが使用しているデータベース・インスタンスが２つあるとする。各データベース・インスタンスがデータ格納領域として用いている第一の記憶デバイス１２０１の論理ボリューム１２１に、異なるグループＩＤを付与する。スプリット指示命令及びスプリット解除命令は、このグループＩＤ単位で行われる。つまり、データベース・インスタンス単位でデータのバックアップを行うことが可能となる。また、例えば、業務アプリケーションごとに使用する論理ボリューム１２１が分かれている場合、業務アプリケーション単位でのデータのバックアップを行うことが可能となる。
【０１０４】
また、グループＩＤを考慮する場合においても、当該グループＩＤに対する仮想論理ボリュームを用いて、第一の記憶デバイス１２０１の論理ボリューム１２１のスプリット時刻におけるデータを磁気テープ等にバックアップすることが可能である。つまり、バックアップを開始する前に、第三の記憶デバイスに格納されている更新時刻がスプリット時刻より早いジャーナルデータが第二の記憶デバイスの論理ボリュームに反映されるのを待つ必要がない。そのため、データのバックアップを容易に行うことが可能となる。
【０１０５】
また、グループＩＤを考慮する場合においても、スプリット指示命令を受信すると、当該グループＩＤについては検出時間にかかわらず更新時刻がスプリット時刻より早いジャーナルデータの更新データを第二の記憶デバイス１２０２の論理ボリューム１２１に反映することもできる。これにより、第二の記憶デバイス１２０２の論理ボリューム１２１を用いて、第一の記憶デバイス１２０１の論理ボリューム１２１のスプリット時刻におけるデータを磁気テープ等にバックアップすることが可能である。つまり、バックアップ処理中に仮想論理ボリュームを形成する必要がないため、ディスクアレイ装置１０の負荷が軽減され、バックアップ処理時間が短縮される。
【０１０６】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１０７】
【図１】本実施の形態に係るディスクアレイ装置の第一の形態の構成を示すブロック図である。
【図２】本実施の形態に係るチャネル制御部の構成を示すブロック図である。
【図３】本実施の形態に係るディスク制御部の構成を示すブロック図である。
【図４】本実施の形態に係るディスクアレイ装置の第二の形態の構成を示すブロック図である。
【図５】本実施の形態に係るクライアント端末、データベースサーバ、ディスクアレイ装置で構成されるデータベースシステムを示す図である。
【図６】本実施の形態に係るクライアント端末の構成を示すブロック図である。
【図７】本実施の形態に係るデータベースサーバの構成を示すブロック図である。
【図８】本実施の形態に係るデータベースシステムにおけるテーブル更新処理を示すフローチャートである。
【図９】ＲＥＤＯログを用いてデータを復旧する一般的な手順を示す図である。
【図１０】レプリカボリュームを用いてデータのバックアップを行う方式を示す図である。
【図１１】スナップショットを用いてデータのバックアップを行う方式を示す図である。
【図１２】本実施の形態に係るバックアップ方式を示す図である。
【図１３】本実施の形態に係るバックアップ方式を実現する機能を示すブロック図である。
【図１４】本実施の形態に係る第一の記憶デバイスの論理ボリュームと第二の記憶デバイスの論理ボリュームとの関係を示す図である。
【図１５】本実施の形態に係るペア管理テーブルを示す図である。
【図１６】本実施の形態に係るグループ管理テーブルを示す図である。
【図１７】本実施の形態に係るジャーナルデータを示す図である。
【図１８】本実施の形態に係るスプリット指示命令を受信した場合のディスクアレイ装置の状態遷移を示す図である。
【図１９】本実施の形態に係る仮想論理ボリューム管理テーブルを示す図である。
【図２０】本実施の形態に係るディスク制御装置が第一の記憶デバイスの論理ボリュームに対する書き込み要求を受信した際の処理を示すフローチャートである。
【図２１】本実施の形態に係るディスク制御装置がスプリット指示命令を受信した際の処理を示すフローチャートである。
【図２２】本実施の形態に係るディスク制御装置がスプリット解除命令を受信した際の処理を示すフローチャートである。
【図２３】本実施の形態に係るディスク制御装置がジャーナルデータを第二の記憶デバイスに反映する処理を示すフローチャートである。
【図２４】本実施の形態に係るディスク制御装置が仮想論理ボリュームに対する読み出し要求を受信した際の処理を示すフローチャートである。
【符号の説明】
【０１０８】
１０  ディスクアレイ装置                ２０  情報処理装置
３０  クライアント端末                  ４０  データベースサーバ
１１０  ディスク制御装置                １２０  ハードディスクドライブ
１２１  論理ボリューム                  １３１  チャネル制御部
１３２  ディスク制御部                  １３３  共有メモリ
１３４  キャッシュメモリ                １３５  スイッチング制御部
１３６  管理端末                        １４１  ＣＰＵ
１４２  メモリ                          １４３  ホストインタフェース
１４４  ディスクインタフェース          １４５  キャッシュメモリ
１４６  データコントローラ              ２０１  インタフェース部
２０２  メモリ                          ２０３  ＣＰＵ
２０４  ＮＶＲＡＭ                      ２０５  コネクタ
３０１  インタフェース部                ３０２  メモリ
３０３  ＣＰＵ                          ３０４  ＮＶＲＡＭ
３０５  コネクタ                        ５０１  データ領域
５０２  ＲＥＤＯログ領域                ５０３  テーブル
５０４  テーブル                        ５０５  データベースバッファ
５０６  ＲＥＤＯログバッファ            ６０１  ＣＰＵ
６０２  メモリ                          ６０３  記憶装置
６０４  ポート                          ６０５  記録媒体読取装置
６０６  入力装置                        ６０７  出力装置
６０８  記録媒体                        ７０１  ＣＰＵ
７０２  メモリ                          ７０３  記憶装置
７０４  ＬＡＮインタフェース            ７０５  ストレージインタフェース
７０６  記録媒体読取装置                ７０７  記録媒体
１００１  レプリカボリューム            １００２  レプリカボリューム
１００３  メモリ                        １００４  差分セグメントビットマップ
１１０１  プール                        １１０２  仮想レプリカボリューム
１２０１  第一の記憶デバイス            １２０２  第二の記憶デバイス
１２０３  第三の記憶デバイス            １２０４  計時機構
１２０５  検出時間                      １３０１  書き込み要求受信部
１３０２  第一の書き込み部              １３０３  ジャーナル書き込み部
１３０４  第二の書き込み部              １３０５  スプリット指示命令受信部
１３０６  スプリット解除命令受信部      １３０７  スプリット指示記憶部
１３０８  スプリット解除記憶部          １３０９  未反映情報記憶部
１３１０  読み出し要求受信部            １３１１  識別子取得部
１３１２  重複範囲取得部                １３１３  仮想論理ボリューム読み出し部
１３１４  読み出しデータ送信部          １５０１  ペア管理テーブル
１６０１  グループ管理テーブル          １７０１  ジャーナルデータ
１７０２  ジャーナル部                  １７０３  更新ストリーム部
１９０１  仮想論理ボリューム管理テーブル
【図１】
2005228217.tif 000003
【図２】
2005228217.tif 000004
【図３】
2005228217.tif 000005
【図４】
2005228217.tif 000006
【図５】
2005228217.tif 000007
【図６】
2005228217.tif 000008
【図７】
2005228217.tif 000009
【図８】
2005228217.tif 000010
【図９】
2005228217.tif 000011
【図１０】
2005228217.tif 000012
【図１１】
2005228217.tif 000013
【図１２】
2005228217.tif 000014
【図１３】
2005228217.tif 000015
【図１４】
2005228217.tif 000016
【図１５】
2005228217.tif 000017
【図１６】
2005228217.tif 000018
【図１７】
2005228217.tif 000019
【図１８】
2005228217.tif 000020
【図１９】
2005228217.tif 000021
【図２０】
2005228217.tif 000022
【図２１】
2005228217.tif 000023
【図２２】
2005228217.tif 000024
【図２３】
2005228217.tif 000025
【図２４】
2005228217.tif 000026