JP2011003030A - 情報処理システムおよびプログラム - Google Patents

情報処理システムおよびプログラム Download PDF

Info

Publication number
JP2011003030A
JP2011003030A JP2009145847A JP2009145847A JP2011003030A JP 2011003030 A JP2011003030 A JP 2011003030A JP 2009145847 A JP2009145847 A JP 2009145847A JP 2009145847 A JP2009145847 A JP 2009145847A JP 2011003030 A JP2011003030 A JP 2011003030A
Authority
JP
Japan
Prior art keywords
storage device
data
write
master
host computer
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
JP2009145847A
Other languages
English (en)
Inventor
Yasuo Yanase
康雄 柳瀬
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2009145847A priority Critical patent/JP2011003030A/ja
Publication of JP2011003030A publication Critical patent/JP2011003030A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】非同期レプリケーションでマスタストレージ装置が破損した場合でも、バックアップストレージ装置にデータを復旧することができる情報処理システムを提供することを目的とする。
【解決手段】ホスト計算機100は、マスタストレージ装置300aへ前記データ書き込み要求を出力する際に、書き込み履歴情報として記録装置120に保存するための第1の書き込み履歴保存手段と、マスタストレージ装置300aが故障した場合に、記録装置120に保存されている書き込み履歴情報をバックアップストレージ装置300bに出力する書き込み履歴反映手段とを備え、マスタストレージ装置300aは、ホスト計算機100からのデータ書き込み要求を書き込み履歴情報として記憶装置330に保存するための第2の書き込み履歴保存手段と、これに記録された書き込み履歴情報をバックアップストレージ装置300bに出力する出力手段とを備えている。
【選択図】図1

Description

本発明は、ストレージ装置に記憶されたデータのバックアップを実現する情報処理システムに関し、特に非同期レプリケーション機能を用いてデータのバックアップをする情報処理システムに関する。
データベースの破損に対し、このデータベースを破損直前の状態に復元するため、前日までのデータは光磁気ディスク等のメディアに保存し、当日から損壊直前までのデータは、機器のメモリに保存しておくデータバックアップシステムがある(例えば、特許文献1参照)。
一方、同期型レプリケーションを利用して、データの完全性やシステムの可用性を高めることも行われるようになってきている(例えば、特許文献2参照)。
なお同期型レプリケーションを用いたシステムでは、ホスト計算機によるマスタストレージ装置へのデータ書き込みに対するマスタストレージ装置からの応答時間が、マスタストレージ装置とバックアップストレージ装置との距離に比例して遅くなるという問題があった。これは、マスタストレージ装置がバックアップストレージ装置へのデータ書き込みが完了した後、ホスト計算機へ書き込み完了の通知をするためである。
そこで特許文献2では、非同期レプリケーションを利用したシステムでも実現可能としている。
特開2003−91446号公報 特開2006−106883号公報
しかしながら、非同期レプリケーションは同期型レプリケーションに対して、マスタストレージ装置とバックアップストレージ装置の距離が離れても書き込み性能が低下しないというメリットがある反面、マスタストレージ装置とバックアップストレージ装置に保存されたデータが常に一致しているわけではなく、バックアップストレージ装置に反映されていないデータがあるためマスタストレージ装置の障害によりデータが損失する問題があった。
本発明は、上記した従来の問題点を解決するためになされたもので、非同期レプリケーションでマスタストレージ装置が破損した場合でも、バックアップストレージ装置にデータを復旧することができる情報処理システムを提供することを目的とする。
上記目的を達成するために、本発明による情報処理システムは、
マスタストレージ装置と、バックアップストレージ装置と、前記マスタストレージ装置にデータを書き込みするためにデータ書き込み要求を前記マスタストレージ装置に出力するホスト計算機とを持つ情報処理システムであって、
前記ホスト計算機は、
前記マスタストレージ装置へ前記データ書き込み要求を出力する際に、このデータ書き込み要求を書き込み履歴情報として第1の記録装置に保存するための第1の書き込み履歴保存手段と、
前記マスタストレージ装置が故障した場合に、前記第1の記録装置に保存されている書き込み履歴情報を前記バックアップストレージ装置に出力する書き込み履歴反映手段とを備え、
前記マスタストレージ装置は、前記ホスト計算機から出力された前記データ書き込み要求に基づいてデータの書き込みをするときに、このデータ書き込み要求を書き込み履歴情報として第2の記録装置に保存するための第2の書き込み履歴保存手段と、
この第2の記録装置に保存されている書き込み履歴情報を前記バックアップストレージ装置に出力するための出力手段とを備え、
前記バックアップストレージ装置は、前記マスタストレージ装置から出力された前記書き込み履歴情報に基づいてデータの書き込みをするバックアップ書き込み手段と、
前記書き込み履歴反映手段によって前記ホスト計算機から出力された書き込み履歴情報に基づいてデータの書き込みをするデータ反映手段と
を備えることを特徴とする。
本発明によれば、ホスト計算機にデータ書き込み履歴が保存されているので、マスタストレージ装置が破損した場合でも、バックアップストレージ装置にデータを復旧させることができる。
本発明の情報処理システム全体の構成例を示す図。 マルチパスドライバ130の位置づけを示す図。 仮想デバイス400情報の構成例を示すブロック図。 パス情報440の構成例を示すブロック図。 データ書き込み履歴情報460の構成例を示すブロック図。 データ書き込み履歴のフォーマットの具体例を示す図。 マルチパスドライバ130のデータ読み込み/データ書き込み処理の具体例を示すフローチャート。 データ書き込み履歴書き込み処理の具体例を示すフローチャート。 データ書き込み履歴削除処理の具体例を示すフローチャート。 データ書き込み履歴定期削除処理の具体例を示すフローチャート。 ストレージ装置のベンダ固有SCSIコマンドの処理の具体例を示すフローチャート。 装置間パス切り替え処理の具体例を示すフローチャート。 データ読み込みシーケンス データ書き込みシーケンス データ書き込み履歴削除シーケンス 装置間パス切り替え時のデータ読み込み/データ書き込みシーケンス
以下、本発明の実施例について図面を参照して説明する。
[システム構成]
本発明の情報処理システムの構成例を図1に示す。同図に示すように、本実施形態に係る情報処理システムは、ホスト計算機100、マスタストレージ装置300a及びバックアップストレージ装置300bから構成されている。ホスト計算機100は、SAN(Storage Area Network)を介してマスタストレージ装置300a、バックアップストレージ装置300bと通信可能に接続されている。
ホスト計算機100は、マルチパスドライバ130、ディスク120を備えたコンピュータであって、さらに2台のHBA(Host Bus Adaptor)110aと110bを搭載し、それぞれがFC(Fibre Channel)スイッチ200aと200bにFCケーブルで接続されている。
マルチバスドライバ130は、図2に示すようにホスト計算機100上で動作するオペレーティングシステムのファイルシステムとディスクドライバの間で動作する仮想デバイスドライバであり、ホスト計算機100と、マスタストレージ装置300aおよびバックアップストレージ装置300bとのアクセスパスを切り替えるものである。
ディスク120は、ホスト計算機100からマスタストレージ装置300aに出力したデータ書き込み要求の履歴であるデータ書き込み履歴を保存するためのものである。
マスタストレージ装置300aは、2つのコントローラ310a、311aを持つディスクアレイ装置(RAID(Redundant Arrays of Inexpensive Disks)装置)である。
コントローラ310a、311aは、ホスト計算機100からのデータ書き込み要求に基づいてLU(Logical Unit)320aにデータを書き込むとともに、この書き込んだデータを非同期に後述するバックアップストレージ装置300bに書き込むために、バックアップストレージ装置300bに対するデータの書き込み要求を出力して非同期レプリケーション機能を実現している。ディスク330もLUで実現している。
マスタストレージ装置300aは、ホスト計算機100からのデータ書き込み要求の履歴を保存するためのディスク330を持つ構成である。
バックアップストレージ装置300bは、2つのコントローラ310b、311bを持つディスクアレイ装置である。
FCスイッチ200aと200bは、SANを実現するためのスイッチである。
ここでFCスイッチ200aはコントローラ310aと310bに、FCスイッチ200bはコントローラ311aと311bに接続されており、非同期レプリケーションでのコピーの経路はコントローラ310a―FCスイッチ200a―コントローラ310bとコントローラ311a―FCスイッチ200b―コントローラ311bの2パターンであり、ホスト計算機100は経由しない。

一般にUNIX(登録商標)オペレーティングシステムでは、1つのLUに対して複数のアクセス経路が存在すれば、それらは複数のLUとして認識される。
例えば、図1のマスタ側ストレージ300a内のLU320aには、ホスト計算機100のHBA110aからFCスイッチ200aを経由してコントローラ310aと接続する経路AとHBA110bからFCスイッチ200bを経由してコントローラ311aと接続される経路Bの2つの経路が存在する。
このように2つの経路が存在する場合は、LUの実体が1つであっても、ホスト計算機からは2つのLUが接続されているように認識される。
物理パスとは、これらの経路ごとに認識されたLUのデバイスを指す。
したがって、図1の非同期レプリケーションを構成する1組のLUはホスト計算機100から2本ずつの計4本の物理パス、すなわち4つのデバイスとして認識される。
マルチパスドライバ130は、後述する仮想デバイス情報400で示すように、非同期レプリケーションを構成する4本の物理パスを統合して1つの仮想デバイスとして提供している。

非同期レプリケーションを組んだストレージ装置のLUにはマスタ属性とバックアップ属性があり、レプリケーションにおけるデータコピー方向は、マスタ属性をもったLUからバックアップ属性をもったLUへの方向となる。
以降は簡単のために、ストレージ装置内のLUは1つとし、マスタ属性のLUをもつストレージ装置をマスタストレージ装置300a、バックアップ属性のLUをもつストレージ装置をバックアップストレージ装置300bと呼ぶ。
そこで、マスタストレージ装置300aはホスト計算機100からのデータ読み込み/データ書き込みを許可し、バックアップストレージ装置300bからのデータ書き込みは拒否(データ読み込みは許可)する。
逆に、バックアップストレージ装置300bはホスト計算機100からのデータ読み込みのみを許可し、マスタストレージ装置300aからのデータ読み込み/データ書き込みは許可する。

従来の同期型レプリケーションでは、通常時はマスタストレージ装置300aのコントローラに対してデータ読み込み/データ書き込みを発行し、マスタストレージ装置300aに障害が発生した場合に、ストレージ装置のマスタ属性とバックアップ属性を入れ替え、アクセスパスをマスタストレージ装置(元バックアップストレージ装置)300bに切り替える。
同期型レプリケーションの場合は、2つのストレージ装置間のデータが常時一致しているため、マスタストレージ装置300aが全損してもデータ損失が防止できる。
一方、非同期レプリケーションを用いた場合、マスタストレージ装置のLU320aとバックアップストレージ装置のLU320b内のデータは常に一致はしてないため、単純にバックアップストレージ装置300bに切り替えるとデータ損失が発生する。
そこで、本発明のマルチパスドライバ130はマスタストレージ装置300aへ発行したデータ書き込みの履歴をホスト計算機100のディスク120に保存しておき、バックアップストレージ装置300bにアクセスパスを切り替える前に前記データ書き込み履歴をバックアップストレージ装置300bのLU320bに適用することでデータ損失を防止できる。
なお一般的にストレージ装置は、ストレージ装置間のデータ転送に関して「同期状態」と「スプリット状態」を保持している。「同期状態」は、マスタからバックアップへデータコピーが行われている状態である。「スプリット状態」は、マスタからバックアップへのデータコピーが切断されている状態であり、マスタからのデータ書き込みを拒否し、ホスト計算機からのデータ読み込み/データ書き込みを許可する。マスタからのデータ書き込みがないので、ホスト計算機からデータ書き込みしても不整合は発生しない。
通常は「同期状態」を保っているが、一方のストレージ装置の故障や通信パスの切断など何らかの原因でストレージ装置間の通信ができない状態に陥った場合に、ストレージ装置側が「同期状態」から「スプリット状態」に遷移する。
本実施例ではマスタストレージ装置300aの故障なので、これに伴いバックアップストレージ装置300bは「スプリット状態」に遷移する。従って、ホスト計算機からのデータ書き込み履歴の内容をバックアップストレージ装置300bのLU320bに適用することが可能である。

[データ読み込み/データ書き込みの処理]
まず、データ読み込み/データ書き込みの流れを説明する。
ホスト計算機からストレージ装置上のファイルへのデータの読み書き処理は大きく分けて、オペレーティングシステムのファイルシステムとディスクドライバが処理を提供する。
ここでファイルシステムはディスク上のデータをファイルとして管理する機能であり、ディスクドライバはブロックレベルのデータ読み込み/データ書き込み要求をディスクに対するハードウェアレベルの読み書き命令に変換してハードウェアに発行する機能である。
例えば、ユーザアプリケーションがファイルシステムの管理しているファイルに対してデータ読み込み/データ書き込みシステムコールを実行すると、ファイルシステムがブロックレベルのデータ読み込み/データ書き込み要求に変換し下位のディスクドライバのデータ読み込み/データ書き込み処理を呼び出す。
するとディスクドライバはブロックレベルのデータ読み込み/データ書き込み要求をSCSI(Small Computer System Interface)コマンドに変換して、HBAに発行する。HBAはこのSCSIコマンドをFCケーブル経由でストレージ装置のコントローラに転送する。
ストレージ装置のコントローラは、ストレージ内のディスクからデータを読み書きするとHBAに対して書き込み完了の応答を返す。オペレーティングシステムはHBAからの割り込みを受け、その割り込みをトリガとして起動する割り込みハンドラによってデータ読み込み/データ書き込み完了の処理を実行する。
最後に、データ読み込み/データ書き込み完了処理はユーザアプリケーションが実行したデータ読み込み/データ書き込みシステムコールに応答を返し、データ読み込み/データ書き込み処理は終了する。

[マルチパスドライバ]
マルチパスドライバ130について説明する。
マルチパスドライバ130はLUごとに個々のLUを個別の仮想デバイスとして対応付けて認識する。ここでのデバイスとは、例えば、一般的なUNIX(登録商標)オペレーティングシステムのデバイススペシャルファイルのように、ユーザアプリケーションとオペレーティングシステムが入出力を行うための口を指す。
UNIX(登録商標)ではデバイススペシャルファイルは/devディレクトリ以下に特殊なファイルとして作成され、デバイススペシャルファイルには必ずメジャー番号とマイナー番号のペアが割り当てられる。
メジャー番号はデバイスドライバに割り当てられた一意の番号を指し、マイナー番号はそのデバイスドライバが管理するユニットの番号を指している。
また、メジャー番号とマイナー番号の組み合わせをデバイス番号と呼ぶ。
デバイススペシャルファイルに対してデータ読み込み/データ書き込みシステムコールを実行すると、オペレーティングシステムはデバイススペシャルファイルのメジャー番号からデバイスドライバを特定し、そのデバイスドライバのデータ読み込み/データ書き込み処理を実行する。
したがって、マルチパスドライバ130が生成する仮想デバイスに対してデータ読み込み/データ書き込みシステムコールを発行すると、マルチパスドライバがデータ読み込み/データ書き込み処理を実行する。

次にマルチパスドライバ130が仮想デバイスごとにメモリに保持する仮想デバイス情報400を図3に示す。
仮想デバイス情報400はマルチパスドライバ130をオペレーティングシステムにロードしたときに生成する。仮想デバイス情報400内のデバイス番号410は、メジャー番号とマイナー番号の組み合わせの番号であり、オペレーティングシステムに依存するが、例えばデバイス番号が32bit整数値の場合、上位16bitがメジャー番号、下位16bitがマイナー番号のようになる。
ここでメジャー番号はオペレーティングシステムによってマルチパスドライバ130に割り当てられた一意の番号、マイナー番号はLU番号とする。
LU番号420は仮想デバイスに割り当てられたストレージ装置のLUN(Logical Unit Number)で、アクティブパス番号430はマルチパスドライバ130がデータ読み込み/データ書き込みに使用するパス番号(パス番号については後述、初期値はマスタグループに所属する最も若いパス番号とする)である。マスタグループ450aはマスタストレージ装置300aについてのパス情報のグループで、バックアップグループ450bはバックアップストレージ装置300bについてのパス情報のグループである。これらパス情報440a〜440dは前記LUの物理パスの情報で、データ書き込み履歴情報460はデータ書き込み履歴(後述)を管理するための情報である。

前述のパス情報440a〜440dの構成について図4を用いて説明する。パス番号441は仮想デバイス情報400内で一意に割り当てられた番号である。例えば、マスタグループ450a内のパス番号は0と1、バックアップグループ450b内のパス番号は2と3のように割り当てる。デバイス番号442は物理パス(後述)のデバイス番号、ステータス443はパスの状態を表す整数値(GOOD=0、ERROR=1)である。

次にマルチパスドライバ130を用いたデータ読み込み/データ書き込み処理の流れを図7のフローチャートに従い説明する。前述したようにユーザアプリケーションやファイルシステムが仮想デバイスに対してデータ読み込み/データ書き込みを実行すると、そのデータ読み込み/データ書き込み処理はマルチパスドライバ130が実行する。
マルチパスドライバ130のデータ読み込み/データ書き込み処理は、まずロック中であるかどうか調べ(S701)、ロック中であればデータ読み込み/データ書き込み要求を保留キューへキューイングして終了する(S702)(ロックの詳細については後述)。ここで保留キューとはマルチパスドライバ130がメモリ上で管理しているキュー(先入れ先出し(FIFO:first in first out)のデータ構造)である。
ロック中でなければ、仮想デバイス情報400のアクティブパス番号430を参照して(S703)、このアクティブパス番号430と一致するパス番号を、パス情報440a〜440dの中から探し、そのパス情報からデバイス番号442を調べる(S704)。
そして、データ読み込みであれば(S705)、デバイス番号442にデータ読み込み要求を発行し(S706)、データ書き込みであれば図8のフローチャートで示すデータ書き込み履歴書き込み処理(後述)を実行した後(S707)、デバイス番号442にデータ書き込み要求を発行する(S706)。
さらにデバイス番号442と関連付けられたディスクドライバがデータ読み込み/データ書き込み処理を実行し、ストレージ装置に対して読み書きする。
以上の処理により、仮想デバイスへデータ読み込み/データ書き込みを実行すると、4本パスのうちアクティブパス(マスタストレージ装置の1本のパス)へデータ読み込み/データ書き込みを発行することになる。

次にホスト計算機100のマスタストレージ装置300aへの非同期レプリケーション機能を用いたデータの読み込みおよび書き込みのシーケンスを図13および図14に示す。
図13に示すように、ホスト計算機100からマスタストレージ装置300aにデータ読み込み要求をすると、マスタストレージ装置300aはデータ読み込みを実行し、完了するとホスト計算機100へ完了を通知する。
図14に示すように、データ書き込み要求の際は、ホスト計算機100はまずディスク120にデータ書き込み履歴を保存し、その後マスタストレージ装置300aへデータ書き込み要求をする。するとマスタストレージ装置300aはLU320aへデータを書き込むとともに、そのデータ書き込み要求をデータ書き込み履歴としてディスク330に保存する。そしてホスト計算機100へ完了を通知する。
一方マスタストレージ装置300aはディスク330に保存されたデータ書き込み履歴のうち、一番古い書き込み履歴を読み出し、このデータ書き込み履歴に基づいてバックアップストレージ装置300bにデータの書き込み要求を出力する。バックアップストレージ装置300bはLU320bにデータを書き込み、データ書き込みが完了するとバックアップストレージ装置300bはマスタストレージ装置300aへ完了を通知する。この完了通知を受け取るとマスタストレージ装置300aはバックアップストレージ装置300bに出力した書き込み要求に対応するデータ書き込み履歴をディスク330から削除する。

[データ書き込み履歴書き込み処理]
次に、前記したデータ書き込み履歴書き込み処理について説明する。
データ書き込み履歴とは、ホスト計算機がストレージ装置に発行したデータ書き込み要求の履歴として図6に示すフォーマットで順番に記録したデータを指す。
このフォーマットのシーケンス番号462とは、データ書き込み要求の順番を表すもので0から順にインクリメントする整数値であり、LU番号はデータ書き込み発行先のLU番号(仮想デバイス情報400のLU番号と同一)である。また、書き込みブロック番号はデータを書き込む位置情報(LUのブロック番号)であり、サイズは書き込むデータのブロック数、書き込みデータは実際に書き込むブロックの中のデータである。
ここでブロックとは、オペレーティングシステムとディスク装置との間で読み書きする最小の単位で、一般にディスクセクタ(512バイト)の倍数のサイズでなければならないので、ここでは1ブロックは2セクタ(1024バイト)とする。
日時はデータ書き込み要求を受信した日時(1970年1月1日00:00:00UTCからの経過時間をmsで表す)を指し、最後のチェックサムはシーケンス番号462から日時までのバイト列のチェックサムである。
データ書き込み履歴はホスト計算機100のディスク120内に固定サイズのファイルとして書くもので、初期のファイルの内容はオール0とする。マルチパスドライバ130はデータ書き込み履歴を管理するために図5に示すデータ書き込み履歴情報460を仮想デバイスごとメモリに保持する。
なお、データ書き込み履歴情報460はマルチパスドライバ130をロードしたときに初期化し、ファイル名461にはマルチパスドライバ130が固定サイズのファイルであるデータ書き込み履歴に対して付けた名前が入る。
シーケンス番号462は次に書き込む前記シーケンス番号462が入る。シーケンス番号462の初期値は前記ファイル内の最新のレコードを検索し(日時とシーケンス番号で検索可能)、そのレコード内のシーケンス番号462をインクリメントした番号とする。ファイルの中身がオール0の場合は0で初期化する。
書き込みポインタ463は次にデータ書き込み履歴を書く位置を表す前記ファイルのファイルポインタを入れる。
書き込みポインタの初期値は、前記シーケンス番号を初期化するときに検索したレコードの次のレコードの位置のファイルポインタとする。ファイルの中身がオール0の場合は0で初期化する。
削除ポインタ464はデータ書き込み履歴を削除する位置を表す前記ファイルのファイルポインタを入れる。削除ポインタの初期値は、前記ファイルから最も古いレコードを検索し(日時とシーケンス番号で検索可能)、そのレコードの先頭の位置のファイルポインタとする。ファイルの中身がオール0の場合は0で初期化する。
削除周期465は後述するデータ書き込み履歴定期削除処理にてデータ書き込み履歴を削除する周期で、削除数466は前記削除周期にて削除するデータ書き込み履歴のレコード数である。削除周期と削除数は、ユーザが設定した値で初期化する。

データ書き込み履歴書き込み処理を図8のフローチャートを用いて説明する。
まず、シーケンス番号462、LU番号420を仮想デバイス情報400から取得し、現在日時とデータ書き込み履歴を書き込むファイルのサイズを調べ、マルチパスドライバ130に渡されるデータ読み込み/データ書き込み要求から書き込みブロック番号、書き込みデータ、書き込みデータのサイズを抽出する(S801)。
これらのデータを結合したバイト列に対して周知のチェックサムを計算し(S802)、チェックサム計算結果を前記バイト列の末尾に追加する(以後、このデータをレコードと呼ぶ)(S803)。
次にレコードのサイズを計算し(S804、S805)、書き込みポインタ463の位置にレコードを書き込み、書き込みポインタ463にはレコードの末尾の次のバイトのファイルポインタを格納する(S807)。
なお、データ書き込み履歴を格納するファイルは固定サイズなので、書き込みポインタがファイルの末尾に到達するとファイルの先頭に戻る循環型の書き込みを行うため、古いレコードが新しいレコードで上書きされないように、後述するデータ書き込み履歴定期削除処理にて定期的に古いレコードを削除する。
この削除する位置を指すのが削除ポインタ464であるが、データ書き込み要求が多くデータ書き込み履歴定期削除処理による古いレコードの削除が間に合わない場合、書き込みポインタが削除ポインタに追いつく可能性がある。
追いついた場合は、後述するデータ書き込み履歴削除処理(S806)で、上書きする前にマスタ側ストレージに対してそのレコードがバックアップ側ストレージに対してコピー済みであるかを問い合わせて、コピー済みでなければそのデータ書き込み要求をバックアップ側ストレージにコピーするよう要求する。

[データ書き込み履歴削除処理]
前述のデータ書き込み履歴削除処理について説明する。
処理の流れについてフローチャートを図9に、ホスト計算機とマスタストレージ装置とバックアップストレージ装置のデータ書き込み履歴削除シーケンスについて図15に示す。
まずマルチパスドライバ130は、仮想デバイス情報400からアクティブパス番号430とLU番号を取得し、このアクティブパス番号430と一致するパス番号をパス情報440a〜440dから探し、そのデバイス番号を取得する(S901)。
次にホスト計算機100のディスク120に保存されたファイル名461の削除ポインタ464の位置からレコードを取り出す(S902)。レコード内の日時フィールドが0の場合(S903)には、無効なデータ(例えば、ファイル内容がオール0や削除ポインタが書き込みポインタに追いついた場合)であるため何もせずに終了する(S904)。
そして、レコード内の日時フィールドが0でない場合には、レコードの書き込みブロック番号とチェックサム(S905)が一致する未コピーのデータ書き込みが存在するかどうかを、マスタストレージ装置300aに問い合わせる(S906)。なおホスト計算機100からストレージ装置に対する問い合わせは、ストレージ装置側で定義するベンダ固有のSCSIコマンドにて行う。
マルチパスドライバ130は、前記書き込みブロック番号とチェックサムの情報をもつベンダ固有のSCSIコマンドを生成し、前述したデバイス番号に対して発行する。

ストレージ装置がベンダ固有SCSIコマンドを受信したときの処理を図11のフローチャートに示す。
ストレージ装置のコントローラがベンダ固有SCSIコマンドを受信すると、SCSIコマンドから書き込みブロック番号とチェックサムを抽出し(S1101)、ディスク330内のデータ書き込み履歴から書き込みブロック番号とチェックサムが一致するレコードを検索する(S1102)。そのレコードが最も古い場合は(S1103、S1104)、バックアップストレージ装置300bのLU320bの前記書き込みブロック番号の位置にレコード内の書き込みデータをコピーする(S1105)。
そしてコピーが完了するとホスト計算機に対して成功を返す(S1106)。
もし、ディスク330内のデータ書き込み履歴の中で一致するレコードが存在しない場合は(S1103)、何もせずにホスト計算機100に対して成功を返す(S1106)。バックアップストレージ装置300bにデータがコピー済みだからである。
なお、ディスク330内のデータ書き込み履歴の中でそのレコードが最も古いレコードでない場合は(S1103、S1104)、ホスト計算機100にエラーを返す(S1107)。マスタストレージ装置300aにバックアップストレージ装置300bへのコピーが済んでいないデータがあるにもかかわらず、ホスト計算機100のディスク120からデータ書き込み履歴が削除されてしまっているからである。
マルチパスドライバ130はストレージ装置に対する問い合わせ(S907)の結果、成功であれば、削除ポインタ464の位置の日時フィールドに0を書き込んで(S909)、削除ポインタ464を次のレコードの先頭に変更する(S910)。
エラーであれば、何らかの問題でホスト計算機100とストレージ装置の間で不整合が発生しているため、エラー出力してシステム停止する(S908)。

また、マルチパスドライバ130は前述したようにデータ書き込み履歴定期削除処理で定期的にデータ書き込み履歴を削除する。図10のフローチャートに添って説明する。
まず、データ書き込み履歴情報460の削除周期465と削除数466を参照し(S1101)、その削除数466の回数だけ、データ書き込み履歴削除処理(図9のフローチャートの処理)を繰り返す(S1102)。データ書き込み履歴削除処理が完了したのち、削除周期465の時間だけ待ち(S1103)、再びデータ書き込み処理削除処理を繰り返す。なお、データ書き込み履歴情報460の削除周期465と削除数466はユーザ設定可能なパラメータであり、毎回読み込むことでデータ書き込み履歴を削除するパターンを動的に変えることができる。

以上が、非同期レプリケーションを使った装置間マルチパスの通常時の動作である。

[パスの切り替え処理]
次に、ホスト計算機100とストレージ装置間のパスに障害が発生した場合に、バックアップ側装置にパスを切り替える処理を説明する。

図1においてホスト計算機100とマスタストレージ装置300aのアクティブパスが110a―200a―310aの経路であるとする。HBA110aまたはFCスイッチ200aまたはコントローラ310aまたはその間のFCケーブルに障害が発生した場合は、アクティブパスを110b―200b―311aに切り替える。この単一ストレージ内でのマルチパスの仕組みについては周知であるため簡単に説明する。
まず、アクティブパスが切断されると、ホスト計算機100からマスタストレージ装置300aに対して発行したデータ読み込み/データ書き込みがタイムアウトエラーになる。
タイムアウトエラーが発生すると、オペレーティングシステムのソフト割り込みが発生し、それをトリガとしてマルチパスドライバ130の割り込みハンドラが呼ばれる。
そして、マルチパスドライバ130は仮想デバイス情報400内のアクティブパス番号430内のパス番号を440b内のパス番号に切り替え、前期のタイムアウトエラーとなったデータ読み込み/データ書き込みをリトライする。
以上の処理により、以降のデータ読み込み/データ書き込みは110b―200b―311aに発行されるようになる。

次に、装置をまたがったパス切り替えについて説明する。
例えば、マスタストレージ装置300aのコントローラ310aと311a両方の故障や、LU320aの故障等の場合、ホスト計算機100とマスタストレージ装置300a間のすべてのパスが通信不可能な状態になるので、アクティブパスをバックアップストレージ装置300bに切り替える必要がある。
この処理の流れを図12のフローチャートに示す。またホスト計算機100とマスタストレージ装置300aとバックアップストレージ装置300bのシーケンスを図16に示す。
装置間パス切り替え処理は、前述の装置内パス切り替えと同様に、データ読み込み/データ書き込みのタイムアウトエラーによるソフト割り込みをトリガとして動作する。
しかし、装置間パス切り替え処理と同時並行にデータ読み込み/データ書き込み処理を実行するとデータ読み込み/データ書き込み要求の順序性が崩れることによるデータ破壊を招く可能性があるため、パス切り替えの間はデータ読み込み/データ書き込みを一時的に保留する必要がある。
そのために、まずデータ読み込み/データ書き込み処理をロックする(S1201)。ロックするとフローチャート図7で示すようにデータ読み込み/データ書き込み要求はストレージ装置へ発行されず保留キューへキューイングする。
次にバックアップストレージ装置300bのパス情報440cと440dを仮想デバイス情報400のマスタグループ450aに、マスタストレージ装置300aのパス情報440aと440bが仮想デバイス情報400のバックアップグループ450bになるよう入れ替える。
さらに、バックアップストレージ装置300bに対してマスタ属性に切り替えるよう要求する(S1202)。
次にアクティブパス番号を現在のマスタグループ450b内の最も若いパス番号にする(S1203)。
元のバックアップストレージ装置300bがマスタ属性になると、元のマスタストレージ装置300aからのデータ書き込みは拒否されるようになる。
これは、マスタストレージ装置300aが停止せずにホスト計算機100とマスタストレージ装置300a間の経路のみが切断されてパス切り替えが発生した場合に、マスタストレージ装置300aからバックアップストレージ装置300bへのデータ書き込みが発生して一貫性が損なわれることを防ぐための措置である。

次に、データ読み込み/データ書き込みを止めた状態で、データ書き込み履歴からデータ書き込み要求を生成し元のバックアップストレージ装置300bに対して書き込む(S1205)。すると元のバックアップストレージ装置300bにデータが復旧する。
ここでファイル名461の削除ポインタ464の位置のデータ書き込み履歴のレコードが最も古いので、削除ポインタ464から書き込みポインタ463まで順番にレコードを取り出して、データ書き込み要求を生成しアクティブパスのデバイス432に発行する。
ただし、データ書き込み履歴を格納するファイルは固定サイズのため、データ書き込み履歴が循環して書き込まれていることに注意して削除ポインタを移動する(S1204)。また、元のバックアップストレージ装置300bに書き込んだデータ書き込み履歴のレコードは削除し、日付フィールドに0を入れる(S1206)。
全てのデータ書き込み履歴を書き込むまで繰り返した後、前記タイムアウトエラーになったデータ読み込み/データ書き込み要求および保留キューに溜まっているデータ読み込み/データ書き込みを発行する(S1207)。
最後にデータ読み込み/データ書き込みのロックを解除して(S1208)、データ読み込み/データ書き込み処理を再開する。以上の処理により、非同期レプリケーションを用いて、マスタストレージ装置300aに障害が発生してもデータを損失することなく装置間でアクセスパスを切り替え、バックアップストレージ装置300bにデータを復旧させることが可能となる。

本発明の実施例1では、非同期レプリケーションでデータ書き込み履歴をホスト計算機にも持たせることにより、マスタストレージ装置本体が全損した場合に、ホスト計算機のデータ書き込み履歴を使ってバックアップストレージ装置にデータを復旧させることができる

なお本実施例ではホスト計算機のHBAが2台、2台のストレージ装置のコントローラが各2個で物理パスが4本の場合について述べたが、ホスト計算機のHBAが1台、2台のストレージ装置のコントローラが各1個で物理パスが2本の場合でも実現できる。
100・・・ホスト計算機
110・・・HBA(Host Bus Adaptor)
120・・・ディスク(マスタストレージ装置にしたデータ書き込み要求の履歴を保存)
130・・・マルチパスドライバ(100と110のアクセスパスの切り替え)
200・・・FCスイッチ(Fibre Channelスイッチ)
200a・・・(310aと310bに接続)
200b・・・(311aと311bに接続)
300・・・ストレージ装置
300a・・・マスタストレージ装置
300b・・・バックアップストレージ装置
310・・・マスタストレージ装置のコントローラ
311・・・バックアップストレージ装置のコントローラ
320・・・LU(Logical Unit)
320a・・・マスタストレージ装置のLU
320b・・・バックアップストレージ装置のLU
330・・・ディスク(ホスト計算機からのデータ書き込み要求の履歴を保存)
400・・・仮想デバイス情報
410・・・デバイス番号
420・・・LU番号
430・・・アクティブパス番号
431・・パス番号(仮想デバイス情報内で一意に割り当てられた番号)
432・・・物理パスのデバイス番号
433・・・ステータス(パスの状態を表す製数値 Good=0、Error=1)
440・・・パス情報
441・・・パス番号
442・・・デバイス番号
443・・・ステータス
450・・・パス情報のグループ
450a・・・マスタグループ
450b・・・バックアップグループ
460・・・データ書き込み履歴情報
461・・・データ書き込み履歴情報のファイル名
462・・・シーケンス番号(データ書き込み要求の順番を表す製数値0〜)
463・・・書き込みポインタ
464・・・削除ポインタ
465・・・削除周期
466・・・削除数

Claims (4)

  1. マスタストレージ装置と、バックアップストレージ装置と、前記マスタストレージ装置にデータを書き込みするためにデータ書き込み要求を前記マスタストレージ装置に出力するホスト計算機とを持つ情報処理システムであって、
    前記ホスト計算機は、
    前記マスタストレージ装置へ前記データ書き込み要求を出力する際に、このデータ書き込み要求を書き込み履歴情報として第1の記録装置に保存するための第1の書き込み履歴保存手段と、
    前記マスタストレージ装置が故障した場合に、前記第1の記録装置に保存されている書き込み履歴情報を前記バックアップストレージ装置に出力する書き込み履歴反映手段とを備え、
    前記マスタストレージ装置は、前記ホスト計算機から出力された前記データ書き込み要求に基づいてデータの書き込みをするときに、このデータ書き込み要求を書き込み履歴情報として第2の記録装置に保存するための第2の書き込み履歴保存手段と、
    この第2の記録装置に保存されている書き込み履歴情報を前記バックアップストレージ装置に出力するための出力手段とを備え、
    前記バックアップストレージ装置は、前記マスタストレージ装置から出力された前記書き込み履歴情報に基づいてデータの書き込みをするバックアップ書き込み手段と、
    前記書き込み履歴反映手段によって前記ホスト計算機から出力された書き込み履歴情報に基づいてデータの書き込みをするデータ反映手段と
    を備えることを特徴とする情報処理システム。
  2. 前記ホスト計算機は、
    前記マスタストレージ装置から前記バックアップストレージ装置へのデータ書き込みが完了している書き込み履歴情報を前記第1の記録装置から削除する書き込み履歴削除手段を備え
    たことを特徴とする請求項1に記載の情報処理システム。
  3. マスタストレージ装置と、バックアップストレージ装置と、前記マスタストレージ装置にデータを書き込みするためにデータ書き込み要求を前記マスタストレージ装置に出力するホスト計算機とを持つ情報処理システムであって、
    前記ホスト計算機は、
    前記マスタストレージ装置へ前記データ書き込み要求を出力する際に、このデータ書き込み要求を書き込み履歴情報として第1の記録装置に保存するための第1の書き込み履歴保存手段と、
    前記マスタストレージ装置が故障した場合に、前記第1の記録装置に保存されている書き込み履歴情報を前記バックアップストレージ装置に出力する書き込み履歴反映手段と、
    前記第1の記録装置に保存されている書き込み履歴情報に基づいて、前記マスタストレージ装置から前記バックアップストレージ装置へのデータ書き込みが完了しているかを周期的に確認し、データ書き込みが完了している場合に、当該書き込み履歴情報を前記第1の記録装置から削除する書き込み履歴削除手段を備え、
    前記マスタストレージ装置は、前記ホスト計算機から出力された前記書き込み要求に基づいてデータの書き込みをするときに、このデータ書き込み要求を書き込み履歴情報として第2の記録装置に保存するための第2の書き込み履歴保存手段と、
    この第2の記録装置に保存されている書き込み履歴情報を前記バックアップストレージ装置に出力する出力手段とを備え、
    前記バックアップストレージ装置は、前記マスタストレージ装置から出力された前記書き込み履歴情報に基づいてデータの書き込みをするバックアップ書き込み手段と、
    前記書き込み履歴反映手段によって前記ホスト計算機から出力された書き込み履歴情報に基づいてデータの書き込みをするデータ反映手段と
    を備えることを特徴とする情報処理システム。
  4. マスタストレージ装置と、前記マスタストレージ装置のバックアップを保存するバックアップストレージ装置とに、ネットワークを介して接続され、記憶装置を備えたホスト計算機であって、
    コンピュータに、
    前記マスタストレージ装置へデータ書き込み要求を出力する時に、
    前記データ書き込み要求を書き込み履歴情報として前記記録装置に保存する機能と、
    前記マスタストレージ装置が故障した場合に、前記記録装置に保存されている書き込み履歴情報に基づき前記バックアップストレージ装置にデータ書き込み要求を出力する機能と、
    を実現させるためのプログラム。
JP2009145847A 2009-06-18 2009-06-18 情報処理システムおよびプログラム Pending JP2011003030A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009145847A JP2011003030A (ja) 2009-06-18 2009-06-18 情報処理システムおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009145847A JP2011003030A (ja) 2009-06-18 2009-06-18 情報処理システムおよびプログラム

Publications (1)

Publication Number Publication Date
JP2011003030A true JP2011003030A (ja) 2011-01-06

Family

ID=43560935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009145847A Pending JP2011003030A (ja) 2009-06-18 2009-06-18 情報処理システムおよびプログラム

Country Status (1)

Country Link
JP (1) JP2011003030A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736994A (zh) * 2011-04-01 2012-10-17 精工爱普生株式会社 数据重写方法和数据重写装置
JP2013171483A (ja) * 2012-02-22 2013-09-02 Nippon Telegr & Teleph Corp <Ntt> 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置
JP2015501032A (ja) * 2011-10-25 2015-01-08 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー データ複製によるローカルデータストレージに基づくシェアード・ナッシングコンフィギュレーションにおけるバーチャルマシーンのマイグレーションのためのクラスタシステム及び方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250819A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd レプリケーションdb整合性確認方法
JP2005316684A (ja) * 2004-04-28 2005-11-10 Hitachi Ltd データ処理システム
JP2006285336A (ja) * 2005-03-31 2006-10-19 Nec Corp 記憶装置及びストレージシステム並びにその制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250819A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd レプリケーションdb整合性確認方法
JP2005316684A (ja) * 2004-04-28 2005-11-10 Hitachi Ltd データ処理システム
JP2006285336A (ja) * 2005-03-31 2006-10-19 Nec Corp 記憶装置及びストレージシステム並びにその制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736994A (zh) * 2011-04-01 2012-10-17 精工爱普生株式会社 数据重写方法和数据重写装置
JP2015501032A (ja) * 2011-10-25 2015-01-08 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー データ複製によるローカルデータストレージに基づくシェアード・ナッシングコンフィギュレーションにおけるバーチャルマシーンのマイグレーションのためのクラスタシステム及び方法
JP2013171483A (ja) * 2012-02-22 2013-09-02 Nippon Telegr & Teleph Corp <Ntt> 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置

Similar Documents

Publication Publication Date Title
US10706072B2 (en) Data replication method and storage system
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
TWI307851B (en) Method, system, and program for handling a failover to a remote storage location
JP5121731B2 (ja) 内容参照ストレージアレイ要素
JP4515132B2 (ja) ストレージシステム、ストレージ装置及びリモートコピー方法
JP4489455B2 (ja) ディスク制御装置及びディスク制御装置の制御方法
US5720029A (en) Asynchronously shadowing record updates in a remote copy session using track arrays
JP4477950B2 (ja) リモートコピーシステム及び記憶装置システム
US8954663B1 (en) System, method and computer program product for synchronizing data written to tape including writing an index into a data partition so that data can be recovered in case of failure
KR101221285B1 (ko) 다른 네트워크들에 걸쳐 주 스토리지들에서 부 스토리지들로의 기록들의 카피 관리
JP4800056B2 (ja) ストレージシステム及びその制御方法
JP4519563B2 (ja) 記憶システム及びデータ処理システム
JP5164980B2 (ja) 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法
JPH07239799A (ja) 遠隔データ・シャドーイングを提供する方法および遠隔データ二重化システム
US7979651B1 (en) Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot
JP2006293850A (ja) リモートコピーシステムおよびリモートコピー方法
WO2010137071A1 (en) Storage system and processing efficiency improving method of storage system
JP4887618B2 (ja) ストレージシステムとそのレプリケーション方法並びにプログラム
JP2005309793A (ja) データ処理システム
JP2015527620A (ja) 計算機システム、サーバ、及び、データ管理方法
JP2011003030A (ja) 情報処理システムおよびプログラム
US7529966B2 (en) Storage system with journaling
JP4898609B2 (ja) ストレージ装置、データ回復方法及び計算機システム
WO2016084156A1 (ja) ストレージシステム
US20050071380A1 (en) Apparatus and method to coordinate multiple data storage and retrieval systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111117

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20111206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120406