JP5194962B2 - データ処理方法、ストレージ装置およびストレージシステム - Google Patents

データ処理方法、ストレージ装置およびストレージシステム Download PDF

Info

Publication number
JP5194962B2
JP5194962B2 JP2008097006A JP2008097006A JP5194962B2 JP 5194962 B2 JP5194962 B2 JP 5194962B2 JP 2008097006 A JP2008097006 A JP 2008097006A JP 2008097006 A JP2008097006 A JP 2008097006A JP 5194962 B2 JP5194962 B2 JP 5194962B2
Authority
JP
Japan
Prior art keywords
storage apparatus
data
server
storage
mirroring
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.)
Active
Application number
JP2008097006A
Other languages
English (en)
Other versions
JP2009251786A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008097006A priority Critical patent/JP5194962B2/ja
Priority to US12/417,080 priority patent/US20090254722A1/en
Publication of JP2009251786A publication Critical patent/JP2009251786A/ja
Priority to US13/689,002 priority patent/US8555012B2/en
Application granted granted Critical
Publication of JP5194962B2 publication Critical patent/JP5194962B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2079Bidirectional techniques
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller

Landscapes

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

Description

本発明は、サーバに接続し、第一のデータ格納領域および第二のデータ格納領域を有するストレージ装置のデータ処理方法に関する。
サーバとストレージ装置とをネットワークを介して接続するストレージシステムがある。ストレージシステムは、データの喪失を防ぐためあるいは負荷を分散するため、同じデータをストレージ装置内の複数のデータ格納領域に格納する。複数のデータ格納領域に同じデータを書き込むことをミラーリングという。
複数のデータ格納領域間のミラーリングの関係を切り離す場合がある。ミラーリングの関係を切り離し、再度ミラーリングの関係にする場合、一方のデータ格納領域のデータを他方のデータ格納領域にコピーする必要がある。関連技術として、特許文献1および特許文献2がある。
それぞれのデータ格納領域に格納されたデータは、コピー処理が完了するまで異なる。したがって、サーバはコピー処理が完了するまで、コピー先となるデータ格納領域に格納されたデータにアクセスすることができない。
特開2007−373093号公報 特開2007−249652号公報
本発明は、複数のデータ格納領域をミラーリングの関係にする処理を実行中であっても、サーバがデータ格納領域にアクセスすることを可能とするストレージ装置の提供を目的とする。
本発明の一態様は、サーバと、第一のデータ格納領域及び第二のデータ格納領域がミラーリングの関係であるストレージ装置とがネットワークを介して接続するストレージシステムであって、前記サーバは、ミラーリング処理のソフトウェア制御部を備え、動作異常が検知されたときに、前記第二のデータ格納領域をミラーリングの関係から切り離す指示情報を前記ストレージ装置に送信し、前記ストレージ装置は、前記サーバからのライト要求に応じた処理を実行する制御部を備え、前記サーバから切り離しの前記指示情報を受信したタイミングで、前記第一のデータ格納領域のデータが更新された領域を特定する差分情報をメモリに記録開始し、前記第二のデータ格納領域に対するライト要求に対して応答がないとき、前記サーバより前記第一のデータ格納領域に対し再送信されたライト要求に関する情報を前記メモリの差分情報として記録し、前記サーバからミラーリング処理回復の指示を受けて前記差分情報に基づくコピー処理を実行し、該コピー処理実行中に前記サーバから前記第二のデータ格納領域へのライト要求があった場合に、前記差分情報に基づいて前記第二のデータ格納領域へのライト要求の対象領域のコピー処理を先に実行し、コピー完了後に前記第二のデータ格納領域へのライト要求に対するライト動作を実行することを特徴とするストレージシステムに関する。
本データ処理方法により、サーバは、データ格納領域間の全体をミラーリングの関係にする処理の完了を待つことなく、データ格納領域にアクセスすることが可能になる。
以下、本発明の実施の形態を図面を参照しながら説明する。
[ストレージシステム]
図1は、本実施例のストレージシステムである。ストレージシステムは、サーバ100とストレージ装置200(第一のストレージ装置)とストレージ装置300(第二のストレージ装置)とを有する。サーバ100、ストレージ装置200、およびストレージ装置300は、ネットワーク400を介して接続する。ネットワーク400は、例えば、ファイバチャネルである。
[ミラーリング]
本実施例のストレージシステムは、ストレージ装置200のデータ格納領域およびストレージ装置300のデータ格納領域がミラーリングの関係であるとする。ミラーリングは、一つのデータを複数のデータ格納領域に格納するデータ保存形態である。サーバ100は、ミラーリングの対象であるストレージ装置200およびストレージ装置300に一つのデータを格納する。ストレージ装置200およびストレージ装置300は同じデータが格納されるため、一方のストレージ装置に故障した場合でもデータの喪失を回避することが可能になる。なお、本発明のミラーリングは、ストレージ装置の論理ボリューム間のミラーリングである。論理ボリュームは、複数の物理ディスク装置によって構成される領域であり、論理ボリュームが冗長性を有する場合もある。
なお、以降の説明では、「ミラーリング処理」は、各ストレージ装置の対応するデータ格納領域に同じデータが格納されている状態であり、読込み時は一つのデータ格納領域からデータを読み出し、書込み時は、全てのデータ格納領域に同じデータを書き込む処理を示す。また、ミラーリングの関係になるデータ格納領域は、対応付けられているものとする。
また、「ミラー化処理」は、ミラーリング処理が可能になるようにデータ格納領域のデータを更新する処理を示す。ミラー化処理は、ミラーリングの対象の各データ格納領域のデータが異なる場合に実行する。ミラー化処理は、データ格納領域間で異なるデータに関する情報を記憶する処理、およびデータ格納領域間で異なるデータを一致させる処理を含む。
サーバは両方のストレージ装置に対してミラーリング処理を実行する。サーバから片方のストレージ装置に対してのみしかデータの書込みができない場合、データの書込みがされたストレージ装置は、データの書き込みがされた領域の情報を保持する。サーバが両方のストレージ装置に対して再度接続可能になった場合、ストレージ装置はミラー化処理を実行する。
[サーバ100]
サーバ100は、制御部110、メモリ120、および接続部130を有する。サーバ100のメモリ120は、ミラーリング管理プログラム121を記憶する。サーバ100の接続部130は、ストレージ装置200およびストレージ装置300にネットワーク400を介して接続する端子である。サーバ100の制御部110は、メモリ120に格納されたミラーリング処理プログラム121を実行することにより、ミラーリングモジュール111として機能する。
ミラーリングモジュール111は、ストレージ装置200に格納されたデータとストレージ装置300に格納されたデータとの間のミラー化処理、およびストレージ装置200に格納されたデータとストレージ装置300に格納されたデータとの間のミラーリング処理をストレージ装置200およびストレージ装置300と連携して実行する。具体的には、ミラーリングモジュール111は、以下の処理を実行する。
ストレージ装置200およびストレージ装置300がミラーリングの関係である場合、サーバ100のミラーリングモジュール111は、ミラーリング処理を実行する。具体的には、ミラーリングモジュール111は、ストレージ装置200およびストレージ装置300へのデータの書込みアクセスおよびデータの読出しアクセスを以下のように実行する。ミラーリングモジュール111は、ストレージ装置200のデータ格納領域およびストレージ装置300のデータ格納領域にデータを書き込む場合、ストレージ装置200およびストレージ装置300にデータ書込命令を送信する。ミラーリングモジュール111は、ストレージ装置200あるいはストレージ装置300からデータを読み出す場合、ストレージ装置200あるいはストレージ装置300にデータ読出命令を送信する。
また、ミラーリングモジュール111は、ミラーリングの維持ができなくなったデータ格納領域を検出すると、該当するデータ格納領域をミラーリングの関係から切り離す旨の情報をストレージ装置200およびストレージ装置300に送信する。サーバ100のミラーリングモジュール111は、ストレージ装置200のデータ格納領域およびストレージ装置300のデータ格納領域をミラーリングの関係にする場合、ストレージ装置200およびストレージ装置300にミラー化処理を実行させる。ミラーリングモジュール111は、ミラー化処理において、該当するデータ格納領域をミラーリングの関係にする旨の情報をストレージ装置200およびストレージ装置300に送信する。ミラーリングモジュール111は、例えば、ストレージ装置200のデータ格納領域に格納されたデータとストレージ装置300のデータ格納領域に格納されたデータとが異なる場合に、ストレージ装置200およびストレージ装置300にミラー化処理を実行させる。
ストレージ装置200のデータ格納領域のデータとストレージ装置300のデータ格納領域のデータとが異なるのは、(1)ストレージ装置200のデータ格納領域とストレージ装置300のデータ格納領域とを最初にミラーリングの関係にするとき、(2)ストレージ装置200のデータ格納領域とストレージ装置300のデータ格納領域とを、一旦ミラーリングの関係から切り離し、再度ミラーリングの関係にするときである。
[ストレージ装置]
次に、ストレージ装置200とストレージ装置300について説明する。ストレージ装置200は、制御部210、メモリ220、データ格納部240、接続部260を有する。ストレージ装置300は、ストレージ装置200と同じ構成であり、制御部310、メモリ320、データ格納部340、接続部360を有する。ストレージ装置200の制御部210、メモリ220、データ格納部240、および接続部260とストレージ装置300の制御部310、メモリ320、データ格納部340、接続部360とは、それぞれ同じ機能である。よって、ストレージ装置200の制御部210、メモリ220、データ格納部240、接続部260を説明し、ストレージ装置300について説明を省略する。
接続部260は、サーバ100およびストレージ装置300にネットワーク400を介して接続するための端子である。メモリ220は、制御部210が実行するためのデータコピープログラム221、データコピー処理の途中結果の情報、ビットマップ情報230などを記憶する。メモリ220は、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)等である。
制御部210は、メモリ220のデータコピープログラム221を実行することによりデータコピーモジュール211として機能する。データコピーモジュール211は、ストレージ装置200とストレージ装置300との間でデータのミラー化処理を実行する。
データ格納部240は、サーバ100がアクセスする対象のデータを格納する。ストレージ装置200は、データ格納部240にボリューム250を設定する。ボリューム250は、サーバ100が認識可能な一つのまとまったデータ格納領域である。アクセスは、アクセスする対象の位置情報、読込み命令か書込み命令かを識別する情報、および書込む対象のデータ情報を含む。以降の説明では、対象のブロック領域にデータを書き込むアクセスを書込みアクセス、対象のブロック領域からデータを読出すアクセスを読出しアクセスとする。
[ビットマップ情報のビットとボリュームのブロック領域との関係]
ここで、ビットマップ情報230のビット231とボリューム250のブロック領域251との関係を説明する。図2は、ビットマップ情報230のビット231とボリューム250のブロック領域251との関係を示す図である。本実施例のボリューム250は、複数のブロック領域251を有する。ブロック領域251は、ボリューム250を所定の単位の大きさで区切ったデータ格納領域である。データは各ブロック領域251に格納される。本実施例では、説明のため、ブロック領域に格納されたデータは「11」、「22」、あるいは「33」とする。データ「11」は、ストレージ装置に異常が発生する以前に、ボリューム250のブロック領域251に格納されたデータとボリューム350のブロック領域に格納されたデータとが一致するデータである。データ「22」は、ストレージ装置を切り離した後のストレージ装置への書込みによって更新されたデータである。データ「33」は、ミラー化処理中に更新されるデータである。
図2のブロック領域に格納されたデータは「11」あるいは「22」がある。データ「11」は、ボリューム250のブロック領域251に格納されたデータとボリューム350のブロック領域に格納されたデータとミラーリングの関係にあるデータである。データ「22」は、ボリューム250のブロック領域251に格納されたデータとボリューム350のブロック領域に格納されたデータとがミラーリングの関係ではないデータである。
本実施例のビットマップ情報230は、ボリューム250とボリューム350との間のミラーリングの状態を記録する。すなわち、ビットマップ情報230は、ボリューム250とボリューム350とがミラーリングの関係から切り離された状態では、ボリューム250とボリューム350との間で異なるデータとなっているブロック領域を示す。ビットマップ情報230は、ボリューム250のデータとボリューム350のデータとが異なるブロック領域を示す情報(差分情報)である。また、ビットマップ情報230は、ミラー化処理の段階では、ミラー化処理の進行を示す。
ビットマップ情報230は、ビット231を複数有する。各ビット231は、ボリューム250内のブロック領域251にそれぞれ割り当てられる。各ビット情報231は「1」あるいは「0」の値を保持する。値「1」は、ビット情報231に対応するブロック領域251に含まれるデータとブロック領域251にミラーリングの関係になるボリューム350のブロック領域351に含まれるデータとが異なることを示す。
また、値「0」は、ビット情報231に対応するブロック領域251に含まれるデータとブロック領域251にミラーリングの関係になるボリューム350のブロック領域351に含まれるデータとが同じであることを示す。ストレージ装置200は、ブロック領域251のデータを更新すると、ブロック領域251に対応するビット231の値も更新する。ストレージ装置は、後述する切り離し時に、ミラーリングの関係を満たさない状態になったときビット231を「0」から「1」に更新する。ストレージ装置は、後述する組み込み時に、ミラーリングの関係を満たす状態になったときビット231を「1」から「0」に更新する。
ミラーリングの関係から切り離されたボリューム250およびボリューム350は、2種類に分類される。一つは、ミラーリングの関係から切り離された以降、データを更新するアクセスをサーバ100から受けるボリュームである。本実施例では、ボリューム250は、ミラーリングの関係から切り離された以降、データを更新するアクセスをサーバ100から受けるものとする。もう一つは、ミラーリングの関係から切り離された以降、ボリューム内のデータを更新するアクセスをサーバ100から受けないボリュームである。本実施例では、ボリューム350がミラーリングの関係から切り離された以降、データを更新するアクセスをサーバ100から受けないものとする。
なお、データを更新するアクセスを受けるボリューム250は、ミラー化処理において、コピー元ボリュームになる。データを更新するアクセスを受けないボリューム350は、ミラー化処理において、コピー先ボリュームになる。
ストレージ装置200は、ストレージ装置300のボリューム350がミラーリングの関係から切り離された旨の情報をサーバ100から受信すると、ビットマップ情報230をメモリ220に作成する。ストレージ装置200は、ボリューム250内のブロック領域251内のデータが更新されたことを、ブロック領域251に対応するビットマップ情報230のビット231の値を更新することによって記憶する。ストレージ装置200は、ビットマップ情報230を作成してから再度ミラーリングの関係にする旨の指示をサーバ100から受信するまで、データが更新されたことをビットマップ情報230に記憶する。ストレージ装置200が作成するビットマップ情報230の各ビット231の初期値は「0」である。ストレージ装置200は、サーバ100から書込みアクセスを受けると、書込みアクセスに対応するブロック領域251内のデータを更新する。その後、ストレージ装置200は、データを更新したブロック領域251に対応するビットの値を「1」に変更する。
ビットマップ情報230は、ミラー化処理の段階では、ミラー化処理の進行を示す。すなわち、ビットマップ情報230の全てのビットの値が「0」のとき、ボリューム250とボリューム350とはミラーリング処理が可能な関係になる。すなわち、ミラーリング処理が可能な関係は、ミラーリングされた状態(ミラー化処理が不要な状態)である。したがって、ストレージ装置200は、ビットマップ情報230の値が「1」のビット231に対応するブロック領域251内のデータを、ストレージ装置300のボリューム350の対応するブロック領域351にコピーする。ストレージ装置200は、ブロック領域251のコピーが完了すると、ブロック領域251に対応するビット231の値を「1」から「0」に更新する。
ビットマップ情報230は、ストレージ装置200およびストレージ装置300が実行するミラー化処理の通信量を更新されたデータのみにすることが可能になる。ストレージ装置200およびストレージ装置300でミラー化処理を行う場合、ネットワーク400を経由してデータをコピーする場合がある。ストレージ装置200は、ビットマップ情報230によって、ボリューム250内のミラーリングの関係にすることが必要なブロック領域252のみを送信する。この結果、ストレージ装置200は、ストレージ装置300に送信するデータの量を、ボリューム250の全てのブロック領域251のデータを送信するよりも少なくすることが可能になる。
次に、本実施例のストレージシステムの動作について説明する。ストレージシステムでは、ストレージ装置200とストレージ装置300とは、ミラーリング処理が可能な状態およびミラーリング処理が不可能な状態になり得る。ストレージシステムのストレージ装置200のボリューム250およびストレージ装置300のボリューム350は、通常時においてミラーリングの状態であるとする。その後、サーバ100は、ストレージ装置300に対するアクセスに異常を検出し、ストレージ装置300をミラーリングの関係から切り離す。サーバ100は、ストレージ装置200あるいはストレージ装置300に書込み命令あるいは読出し命令を送信してから所定の時間を経過しても応答がない場合、アクセスに対して異常があると判定する。サーバ100が所定の時間を経過してもアクセスに対する応答を受信することができないのは、例えば、ストレージ装置の処理速度が低下した場合、あるいは、サーバ100とストレージ装置との間のネットワーク400の経路に故障があった場合である。
ストレージ装置300をミラーリングの関係から切り離した状態は、ミラーリング処理が不可能な状態である。その後、サーバ100はストレージ装置200に対してアクセスする。ストレージ装置200は、サーバ100からの書込みアクセスに対して、ストレージ装置300の異常からの回復後にミラー化処理を可能とするため、ビットマップ情報に更新箇所を記憶する。
その後、ネットワークの不可が軽減する、ネットワーク経路の故障が修復される、ストレージ装置の故障が修復されるなどによって、ストレージ装置300が異常から回復する。ストレージ装置200が異常から回復すると、ストレージ装置200は、ストレージ装置200とストレージ装置300とをミラーリングの関係にする処理を実行する。以下、各状態でのサーバ100、ストレージ装置200およびストレージ装置300の動作シーケンスについて説明する。
[通常時]
図3は、ストレージシステムの通常時のミラーリングの動作シーケンス図である。通常時、サーバ100は、ストレージ装置200およびストレージ装置300に対して書き込み命令を発行する。よって、通常時は、サーバ100がストレージ装置200およびストレージ装置300のミラーリングを行う。
図3のS01からS07は、サーバ100とストレージ装置200およびストレージ装置300との間のデータの書込みアクセスの通常時の動作シーケンスである。サーバ100は、ストレージ装置200およびストレージ装置300にデータを書き込む処理を開始する(S01)。サーバ100は、ストレージ装置200およびストレージ装置300に対してデータ書き込み命令を送信する(S02、S03)。ストレージ装置200およびストレージ装置300は、受信したデータ書き込み命令に応じた処理を実行する(S04、S05)。ストレージ装置200は、受信したデータ書き込み命令に応じた処理が完了すると、完了情報をサーバ100に送信する(S06)。同様に、ストレージ装置300は、受信したデータ書き込み命令に応じた処理が完了すると、完了情報をサーバ100に送信する(S07)。サーバ100は、完了情報を受信すると、書き込み処理を終了する。
図3のS08乃至からS11は、サーバ100とストレージ装置200との間のデータの読出アクセスの通常時の動作シーケンスである。サーバ100は、ストレージ装置200からデータを読み出す処理を開始する(S08)。サーバ100は、ストレージ装置200に対してデータ読出し命令を送信する(S09)。ストレージ装置200は、受信したデータ読出し命令に応じた処理を実行する(S10)。ストレージ装置200は、データ読出し命令に応じてデータを読み出し、読み出したデータをサーバ100に送信する(S11)。サーバ100は、データを受信すると、読出し処理を終了する。なお、サーバ100とストレージ装置300との間のデータの読出アクセスに関する処理は、サーバ100とストレージ装置200との間のデータの読出アクセスに関する処理と同様であるため説明を省略する。
図4は、ストレージ装置間がミラーリングの関係であるときの、ボリューム250に格納されたデータとボリューム350に格納されたデータとの関係を示す図である。ボリューム250の各ブロック領域251に格納されたデータは「11」であり、ボリューム350の各ブロック領域351に格納されたデータは「11」である。
[切り離し時]
次に、通常のミラーリングの状態において、サーバ100からストレージ装置300に対する書込みアクセスあるいは読出しアクセスに対して異常が発生した場合の動作シーケンスを説明する。サーバ100は、ストレージ装置200あるいはストレージ装置300に書込み命令あるいは読出し命令を送信してから所定の時間を経過しても応答がない場合、アクセスに対して異常があると判定する。サーバ100が所定の時間を経過してもアクセスに対する応答を受信することができないのは、例えば、ストレージ装置の処理速度が低下した場合、あるいは、サーバ100とストレージ装置との間のネットワーク400の経路に故障があった場合である。
サーバ100からストレージ装置300へのアクセスに対して、サーバ100が応答を受信しなかった場合の動作シーケンスについて説明する。図5は、ストレージシステムの故障時のミラーリングの動作シーケンス図である。サーバ100は、ストレージ装置にデータを書き込む処理を開始する(S21)。サーバ100は、ストレージ装置200およびストレージ装置300に対してデータの書込み命令を送信する(S22、S23)。ストレージ装置200は、受信したデータの書き込み命令に応じた処理を実行する(S24)。ストレージ装置200は、受信したデータの書き込み命令に応じた処理が完了すると、完了情報をサーバ100に送信する(S25)。一方、サーバ100は、データの書込み命令を送信してから所定の時間を経過しても、ストレージ装置300から完了情報を取得しない。完了情報を取得しない原因は、例えば、サーバ100とストレージ装置300との間のネットワーク400の故障、ストレージ装置300の処理の遅延などがある。
そこで、サーバ100は、ストレージ装置300にアクセスができないと判定する(S26)。サーバ100は、ストレージ装置300をミラーリングの関係から切り離す。
サーバ100はデータの差分を記憶する処理の開始の指示をストレージ装置200に送信する(S27)。ストレージ装置200は、サーバ100から受信したデータの差分を記憶する処理の開始の指示に応じてデータ記憶処理を開始する(S28)。ストレージ装置200は、ビットマップ情報230を作成する(S29)。ストレージ装置200は、ビットマップ情報230の各ビット231を、初期値として、ビット231に対応するブロック領域に含まれるデータがボリューム250とボリューム350との間で同じであることを示す値に設定する。ストレージ装置200は、ビットマップ情報230の作成を完了した旨の情報をサーバ100に送信する(S30)。
図6は、ビットマップ情報230が作成されたときのボリューム250のブロック領域251とビットマップ情報230のビット231との関係を示す図である。符号は図2と同じであるため説明を省略する。ブロック領域251の各データの値は「11」とする。ビットマップ情報230の各ビット231の値は、初期値として「0」が格納される。
なお、S26で、ストレージ装置300にアクセスできないとサーバ100によって判定されたアクセスが書込み命令である場合、ストレージ装置300のデータは判定されたアクセスによって更新されていない可能性がある。また、サーバ100は、S27の送信処理を実行する前に他の書き込み命令をストレージ装置300に送信している場合もある。ストレージ装置300は、書込み命令を実行できず、データを更新していない可能性がある。そこで、サーバ100は、サーバ100がストレージ装置300にアクセスできないと判断する対象となったアクセスを送信してからストレージ装置300がビットマップ情報230を作成するまでに送信した書込み命令を、ストレージ装置200に再度送信する(S31)。この結果、ビットマップ情報230は、サーバ100がストレージ装置300から応答を受信しなかった書込み命令に関しても、更新があったブロック領域であるとしてビット231に記憶する。本実施例のストレージシステムは、ストレージ装置200とストレージ装置300とを、データの矛盾を生じさせることなく、再度ミラーリングの関係にすることができる。サーバ100は、例えば、各ストレージ装置にアクセス命令を送信した時間の順番の情報を記憶しておく機能を有する。この機能により、サーバ100は、ストレージ装置300にアクセスできないと判断する対象となったアクセスを送信してからストレージ装置300がビットマップ情報230を作成するまでに送信した書込み命令を検出することが可能になる。なお、S26で、サーバ100が判定の対象としたアクセスが読出し命令の場合、ストレージ装置200のボリューム250のデータは更新されないため、特別な処理は不要である。
ここで、ストレージ装置200が、ストレージ装置200とストレージ装置300とがミラーリングの関係から切り離された以降に実行する処理を説明する。図7は、ストレージ装置200とストレージ装置300とがミラーリングの関係から切り離された以降に実行する処理のフローチャートである。
ストレージ装置200は、サーバ100からデータの書込み命令あるいは読出し命令を受信する(S32)。ストレージ装置200は、書込み命令あるいは読出し命令に応じた処理を実行する(S33)。ストレージ装置200は、受信した命令が書き込み命令か否かを判別する(S34)。受信した命令が書込み命令の場合(S34:Yes)、ストレージ装置200は、サーバ100から受信した書き込み命令の対象のブロック領域251を、ブロック領域251に対応するビットマップ情報230のビット231の値をコピー処理が完了していないことを示す値に変更する(S35)。具体的には、仮想化スイッチ装置200は、書込み命令の対象のブロック領域251に対応するビット231の値を「1」に更新する。受信した命令が読出し命令の場合(S34:Yes)およびS35の処理の実行後、ストレージ装置200は、サーバ100に処理結果の情報を送信する(S36)。サーバ100は、処理結果を受信することにより、書込み処理を終了する。
以上の処理により、サーバ100は、ストレージ装置300がミラーリングの関係から切り離されている間であっても、ストレージ装置200に対してデータの読み出し、あるいはデータの書き込みを実行することが可能になる。
図8は、ミラーリングの関係から切り離した後のビットマップ情報230、ボリューム250、およびボリューム350の関係を示す図である。ストレージ装置200とストレージ装置300とをミラーリングの関係から切り離した後、サーバ100は、ストレージ装置200に書込み命令を送信することで、ストレージ装置200に格納されたデータは更新される。図8の252は、更新されたブロック領域を示す。本実施例のサーバ100の書込み命令は、データの値を「11」から「22」に更新するものであるとする。また、図8の232は、ビット231の内、値が「1」のビットを示す。ビット232はブロック領域252に対応する。ストレージ装置300に格納されたデータは、ミラーリングの関係から切り離されたときのデータのままであるため、データの値は「11」のままである。
[組み込み時]
次に、ストレージ装置200のボリューム250とストレージ装置300のボリューム350とを再度ミラーリングの関係にするときの処理を説明する。図9は、ミラー化処理時の動作シーケンス図である。ミラー化処理は、二つの段階に分けることが可能である。第一の段階は、論理コピーを実行する段階であり、第二の段階は、物理コピーを実行する段階である。ミラー化処理での論理コピーは、ビットマップ情報をストレージ装置間でコピーする処理である。また、ミラー化処理での物理コピーは、コピー元ボリュームに格納されたデータをコピー先ボリュームにコピーする処理である。
最初に論理コピー時の動作について説明する。論理コピーは、S51からS59までの動作によって実現する。ストレージシステムは、サーバ100がストレージ装置300に正常にアクセスできる状態になると、ストレージ装置200のボリューム250とストレージ装置300のボリューム350とを再度ミラーリングの関係にする。正常にアクセスできる状態か否かは、例えば管理者が判断する。サーバ100は、ボリューム250とボリューム350とを再度ミラーリングの関係にする旨の指示情報を、例えば管理者の情報の入力により取得する(S51)。
サーバ100は、ミラー化処理を開始する(S52)。サーバ100は、ボリューム250とボリューム350との間のミラー化処理の開始の命令を、ストレージ装置200に送信する(S53)。ストレージ装置200は、サーバ100からミラー化処理の開始の命令を受信すると、ミラー化処理を開始する(S54)。
ストレージ装置200は、ミラー化処理を開始する旨の情報をストレージ装置300に送信する(S55)。ミラー化処理を開始する旨の情報は、ミラーリングの対象のボリュームを識別する情報、ビットマップ情報230を含む。ストレージ装置200およびストレージ装置300は、複数のボリュームを有する場合があり、ミラー化処理を行う対象を特定するために、ミラーリングの対象のボリュームを識別する情報をストレージ装置300に送信する。
ストレージ装置300は、ミラー化処理を開始する旨の情報を受信するとミラー化処理を開始する(S56)。ストレージ装置300は、ストレージ装置200から受信したビットマップ情報230をメモリ320にビットマップ情報330として保持する(S57)。
ストレージ装置200はビットマップ情報230を有し、ストレージ装置300はビットマップ情報330を有する。ストレージ装置200は、ストレージ装置300へのビットマップ情報330のコピーが完了した旨の情報をストレージ装置300から受信すると(S58)、サーバ100に論理コピーの完了を通知する(S59)。サーバ100は、S59においてストレージ装置200から論理コピーの終了を受信した以降、ストレージ装置200およびストレージ装置300に対してデータ書込み命令あるいはデータ読込み命令を送信する。
図10は、論理コピーが完了した時点のビットマップ情報330とボリューム350との関係を示す図である。ビットマップ情報330は、ビットマップ情報230をビットマップ情報330としてコピーしたものとする。そのため、ビットマップ330の更新箇所(ビットの値が「1」)は、ストレージ装置200にデータの更新があったことを示す。したがって、ビットマップ情報330を用いることにより、ストレージ装置300にアクセスがあった場合、物理コピーが必要な領域か否かをストレージ装置300で判断することが可能になる。332は、ビット331の内、値が「1」のビットを示す。ビットマップ情報230の各ビット231の値とビットマップ情報330の各ビット331の値とは等しい。
次に、ストレージ装置200およびストレージ装置300で実行されるミラー化処理の物理コピー処理について説明する。ミラー化処理の物理コピー処理は、ビットマップ情報230のビット231およびビットマップ情報330のビット331に対応するブロック領域251およびブロック領域351を単位として実行する。ストレージ装置200は物理コピーの実行を開始する(S60)。また、ストレージ装置300も物理コピーの実行を開始する(S62)。ストレージ装置200は、ボリューム250のブロック領域252のデータをボリューム350のブロック領域351に物理コピーする(S61)。物理コピーの対象になるブロック領域は、ビットマップ情報のビットの値が「1」に対応するブロック領域である。なお、サーバ100は、S59においてストレージ装置200から論理コピーの終了を受信している。したがって、サーバ100は、ストレージ装置200およびストレージ装置300が物理コピー中であっても、ストレージ装置200およびストレージ装置300にデータ書込み命令あるいはデータ読込み命令を送信する。サーバ100は、物理コピーが完了した領域か否かに関わらずアクセスするため、物理コピーの状態に応じて、アクセスに対する処理は変わる。
ここで、ミラー化処理中にサーバ100からのアクセスがあった場合の処理について説明する。
図11は、ストレージ装置200にサーバ100からのアクセスがあった場合の処理のフローチャートである。ストレージ装置200は、サーバ100からのアクセスを受信する(S101)。ストレージ装置200は、アクセスの対象のブロック領域に対する物理コピーが完了したか否かを判別する(S102)。具体的には、アクセスの対象のブロック領域に対応するビットマップ情報230のビット231の値が「1」であるか「0」であるかを判別する。
アクセスの対象のブロック領域の物理コピーが完了している場合(S102:Yes)、ストレージ装置200は、アクセスに応じた処理を実行する(S106)。物理コピーが完了しているブロック領域は、ボリューム250とボリューム350との間でミラーリングの関係であり、アクセス後に物理コピーによるデータの更新はない。サーバ100が物理コピーの完了している領域のミラーリングを行うため、ストレージ装置200あるいはストレージ装置300は、物理コピーが完了しているブロック領域のミラーリングを実行する必要はない。したがって、ストレージ装置200はアクセスに応じた処理を実行可能である。
一方、アクセスの対象のブロック領域の物理コピーが完了していない場合(S102:No)、ストレージ装置200は、サーバ100から受信したアクセスが書込み命令か否かを判別する(S103)。アクセスが書込み命令ではない場合、すなわちアクセスが読込み命令の場合(S103:No)、ストレージ装置200は、アクセスに応じた処理を実行する(S106)。ストレージ装置200のボリューム250は、コピー元ボリュームであり、物理コピーによるデータの更新はない。したがって、ストレージ装置200はアクセスに応じた処理を実行可能である。
一方、アクセスが書込み命令の場合(S103:Yes)、ストレージ装置200は、アクセスの対象のブロック領域に対応するボリューム250のブロック領域252のデータを、ボリューム350のブロック領域351にコピーする(S104)。ストレージ装置200は、コピーしたブロック領域252に対応するビットマップ情報230のビット231の値を「0」に更新する(S105)。コピー先のストレージ装置300は、コピーしたブロック領域351に対応するビットマップ情報330のビット331の値を「0」に更新する。したがって、ストレージ装置200が書込み命令を受信してから、ストレージ装置300がビットマップ情報330を更新するまでは、ストレージ装置300へのサーバ100からの書込み命令は停止する必要がある。その後、ストレージ装置200はアクセスに応じた処理を実行する(S106)。ストレージ装置200は、アクセスに応じた処理が完了すると、完了した旨の情報をサーバ100に送信する(S107)。その後、ストレージ装置200は、物理コピー処理を再開する。
ストレージ装置200は、物理コピーが完了していないブロック領域252に対する書込み命令を受信すると、物理コピーを実行した後で、書き込み命令に対する処理を実行する。なお、ストレージ装置200は、すでにストレージ装置300がサーバからの書き込み命令を完了したと判断した場合に、ストレージ装置300に対して物理コピーを実行する。ストレージ装置300がサーバ100からの書込み命令を実行した後で、ストレージ装置200からの物理コピーを実行すると、データの不整合が生じるためである。サーバ100の書込み命令の対象のブロック領域のミラー化処理が完了した後で、ストレージ装置200およびストレージ装置300は、書き込み命令を実行する。
なお、ストレージ装置200は、物理コピーが完了していないブロック領域への書込み命令の場合には、物理コピーを実行することなく、ビットマップ情報のビットの値を「0」に更新するのみで対応することも可能である。例えば、ストレージ装置200はストレージ装置300のビットマップ情報330のビットの値を「0」に更新する情報をストレージ装置300に送信する。サーバ100は、ストレージ装置200とストレージ装置300とはミラーリングの関係であるとしており、サーバ100はストレージ装置200およびストレージ装置300に書込み命令を送信するためである。この構成によれば、サーバ100によるミラーリングによって、ストレージ装置200およびストレージ装置300のアクセスの対象のデータのミラー化が可能になるため、ストレージ装置間のミラー化処理が不要になる効果がある。
図12は、ストレージ装置300にサーバ100からのアクセスがあった場合の処理のフローチャートである。ストレージ装置300は、サーバ100からのアクセスを受信する(S111)。ストレージ装置300は、アクセスの対象のブロック領域に対する物理コピーが完了したか否かを判別する(S112)。具体的には、アクセスの対象のブロック領域に対応するビットマップ情報330のビット331の値が「1」であるか「0」であるか判別する。
アクセスの対象のブロック領域の物理コピーが完了している場合(S112:Yes)、ストレージ装置300は、アクセスに応じた処理を実行する(S116)。物理コピーが完了しているブロック領域はミラーリングの関係であり、アクセス後に物理コピーによるデータの更新はない。したがって、ストレージ装置200はアクセスに応じた処理を実行可能である。
アクセスの対象のブロック領域の物理コピーが完了していない場合(S112:No)、ストレージ装置300は、アクセスのブロック領域に対応するボリューム250のブロック領域252のデータを、ボリューム350のブロック領域351にコピーする(S113)。具体的には、ストレージ装置300は、アクセスのブロック領域に対応するボリューム250のブロック領域252のデータの転送要求をストレージ装置200に行う。ストレージ装置200は受信した転送要求に対応する物理コピーを優先して行う。
ストレージ装置300は、コピーしたブロック領域351に対応するビットマップ情報330のビット331の値を「0」に更新する(S114)。なお、コピー元のストレージ装置200は、ブロック領域252に対応するビットマップ情報230のビット232の値を「0」に更新する。その後、ストレージ装置300はアクセスに応じた処理を実行する(S115)。ストレージ装置300は、アクセスに応じた処理が完了すると、完了した旨の情報をサーバ100に送信する(S116)。その後、ストレージ装置200は、物理コピー処理を再開する。
ストレージ装置300は、読出し命令か書込み命令かを判別しない点が、ストレージ装置200と異なる。ストレージ装置200のボリューム250内のデータはミラー化処理によって変更することがないためである。
なお、ストレージ装置300は、物理コピーが完了していないブロック領域への書込み命令の場合には、物理コピーを実行することなく、ビットマップ情報のビットの値を「0」に更新するのみで対応することも可能である。この場合、ストレージ装置300は、読出し命令か書込み命令かを判別する。この構成によれば、サーバ100によるミラーリングによって、ストレージ装置200およびストレージ装置300のアクセスの対象のデータのミラー化が可能になるため、処理が単純化する効果がある。
一方、ストレージ装置300のボリューム350内のデータはミラー化処理によって変更する可能性があるためである。
図13および図14で具体例を説明する。図13は、ストレージ装置200とストレージ装置300との間の物理コピー中のボリュームとビットマップ情報を示す図である。
サーバ100がブロック領域254、ブロック領域354にアクセスする場合を説明する。ブロック領域254は、ブロック領域251の内、サーバ100によるアクセスの対象となるブロック領域である。234は、ブロック領域254に対応するビット231である。ブロック領域354は、ブロック領域254に対応するボリューム350のブロック領域である。334は、ブロック領域354に対応するビット331である。ブロック領域254のデータとブロック領域354のデータとは同じである。また、ブロック領域254に対応するビット234の値およびブロック領域354に対応するビット334の値は共に「0」である。
サーバ100がボリューム250のブロック領域254に読出しアクセスした場合、ストレージ装置200は、ブロック領域254のデータをサーバ100に送信する。サーバ100がボリューム250のブロック領域254に書込みアクセスした場合、ストレージ装置200は、ブロック領域254のデータを書込みアクセスに応じて更新する。サーバ100がボリューム350のブロック領域354に読出しアクセスした場合、ストレージ装置300は、ブロック領域354のデータをサーバ100に送信する。サーバ100がボリューム250のブロック領域354に書込みアクセスした場合、ストレージ装置300は、ブロック領域354のデータを書込みアクセスに応じて更新する。
次に、サーバ100がブロック領域255、ブロック領域355にアクセスする場合を説明する。ブロック領域255は、ブロック領域251の内、サーバ100によるアクセスの対象となるブロック領域である。235は、ブロック領域255に対応するビット231である。ブロック領域355は、ブロック領域255に対応するボリューム350のブロック領域である。335は、ブロック領域355に対応するビット331である。ブロック領域255のデータは「22」であり、ブロック領域355のデータは「11」であるため、ブロック領域255のデータとブロック領域355のデータとは異なる。また、ブロック領域255に対応するビット235の値およびブロック領域355に対応するビット335の値は共に「1」である。
サーバ100がボリューム250のブロック領域255に読出しアクセスした場合、ストレージ装置200は、ブロック領域255のデータをサーバ100に送信する。
サーバ100がボリューム250のブロック領域255に書込みアクセスした場合、ストレージ装置200は、ブロック領域255のデータをブロック領域355にコピーする。そして、ストレージ装置200はビット235の値を「0」にする。そして、ストレージ装置200はブロック領域255のデータを書込みアクセスに応じて更新する。なお、ストレージ装置300は、ビット335の値を「0」にする。図14は、サーバ100からストレージ装置200のブロック領域255に対する書込みアクセスが完了したときのボリュームとビットマップ情報を示す。図14では、ブロック領域255のデータは「33」に更新されたものとする。なお、ストレージ装置300のブロック領域355は、サーバ100からストレージ装置300への書き込みアクセスによって「33」に更新される。なお、ストレージ装置200およびストレージ装置300は、物理コピー中のブロック領域に対するサーバ100からのアクセスに対しては、物理コピーが完了した後でアクセスに応じた処理を実行する。
なお、サーバ100がボリューム250のブロック領域255に書込みアクセスした場合、ストレージ装置200およびストレージ装置300は、物理コピーを実行しない処理も可能である。具体的には、ストレージ装置200およびストレージ装置300は、ビットマップ情報230およびビットマップ情報330のビットの値を「0」に更新する。この構成によれば、サーバ100によるミラーリングによって、ストレージ装置200およびストレージ装置300のアクセスの対象のデータのミラー化が可能になるため、処理が単純化する効果がある。
サーバ100がボリューム350のブロック領域355に読出しアクセスした場合、ストレージ装置300は、ボリューム250のブロック領域255のデータをブロック領域355に物理コピーする。その後、ストレージ装置300はブロック領域355のデータをサーバ100に送信する。
サーバ100がボリューム350のブロック領域355に書込みアクセスした場合、ストレージ装置300は、ボリューム250のブロック領域255のデータをブロック領域355に物理コピーする。そして、ストレージ装置300は、書込みアクセスに応じてブロック領域355のデータを更新する。なお、ストレージ装置200はビット235の値を「0」に更新し、ストレージ装置300はビット335の値を「0」に更新することにしてもよい。ストレージ装置200のブロック領域255は、サーバ100からストレージ装置200への書き込みアクセスによって「33」に更新される。図14は、サーバ100からストレージ装置300のブロック領域355に対する書込みアクセスが完了したときのボリュームとビットマップ情報を示す。図14では、ブロック領域355のデータは「33」に更新されたものとする。
図9の説明に戻る。ストレージ装置200は、ボリューム250の全てのブロック領域の物理コピーが完了すると、メモリ220内のビットマップ情報230を開放する(S63)。ボリューム250の全てのブロック領域が完了するのは、ビットマップ情報230のビット231の値が全て「0」になったときである。ストレージ装置300は、ボリューム350の全てのブロック領域の物理コピーが完了すると、メモリ320内のビットマップ情報330を開放する(S64)。ボリューム350の全てのブロック領域が完了するのは、ビットマップ情報330のビット331の値が全て「0」になったときである。
なお、ボリューム250とボリューム350とを最初にミラーリングの関係にする場合、例えば、ストレージ装置200は、図9のS54において、全てのビット231の値が「1」のビットマップ情報230を作成する。その後、S55以降の処理を実行すればよい。
以上の説明では、複数のストレージ装置を有し、それぞれのストレージ装置がデータ格納領域を管理する構成について説明した。なお、一つのストレージ装置は複数のデータ格納領域を管理する場合もある。図15は、ストレージ装置200のデータ格納部240に複数のデータ格納領域(ボリューム)を有する場合のストレージシステムである。
本実施例は、一つのストレージ装置内の複数のボリューム間のミラーリングについても適用可能である。ストレージ装置200内のボリューム260とボリューム270との間でミラーリングをする場合、ボリューム間の物理コピー処理時に、ネットワーク400に負荷をかけることがない。
ストレージ装置200は、以下の処理を実行する。ストレージ装置200は、ボリューム270を切り離す指示を受けるとビットマップ情報230を作成する。ストレージ装置200は、ボリューム270を切り離したときからのボリューム260のデータが更新された領域をビットマップ情報230のビット231を変更することにより記憶する。ストレージ装置200は、ボリューム270の再接続の実行を行う場合、サーバ100に論理コピーの完了を送信する。その後、ビットマップ情報230のビット231に対応するボリューム260のブロック領域のデータをボリューム270に物理コピーする。
本実施例の適用前のミラーリング管理方法は、サーバがミラーリングの関係にするための情報を有していた。サーバは、ストレージ装置をミラーリングの関係から切り離してから再度接続するまでの差分データを記録し、ミラーリングの関係にするときに差分データの更新を行う方法もあった。しかし、差分データの量が増加すればミラーリングの関係にする時間はそれだけ多くかかる問題、および、差分データをコピーしている間はファイバチャネルの経路やサーバにコピー処理のための負荷が発生する問題があった。
本実施例では、ストレージ装置が物理コピーの処理を新しいアドバンストコピー機能によって実行し、サーバ100は物理コピーの実行を意識しない。このため、サーバ100は、物理コピーの処理を実行中のストレージ装置にアクセスすることが可能となる。
[アドバンスト・コピー機能]
ここで、ストレージ装置200およびストレージ装置300が有するアドバンストコピー機能について説明する。アドバンスト・コピー機能は、ストレージ装置200が、サーバ100を使用することなくストレージ装置200とストレージ装置300との間でデータのコピー実行を可能とする機能である。具体的には、ストレージ装置200の制御部210は、ある時点のストレージ装置200内のボリューム250のブロック領域251のデータを、ストレージ装置300内のボリューム350のブロック領域351にコピーする。アドバンスト・コピー機能は、二重化切り離し方式(Equivalent Copy(以下ECとする))、バックグラウンド・コピー方式(One Point Copy(以下OPCとする))等がある。また、OPCには、同領域に対する二回目以降のコピーを前回のOPC処理から更新されたデータについてのみ実行する、高速バックグラウンド・コピー方式(Quick One Point Copy(以下QuickOPCとする))がある。
OPCについて説明する。ストレージ装置200およびストレージ装置300は、OPCにおいて、論理コピーと物理コピーの2つのコピー処理を実行する。論理コピーは、コピー処理の進行状態を示すビットマップ情報を生成する処理である。ストレージ装置200は、論理コピーが完了すると、コピー処理の完了をサーバ100に送信する。一般的に、論理コピーは数秒程度で完了する。物理コピーは、論理コピーの完了後にストレージ装置200とストレージ装置300との間で実施される実際のコピー処理である。物理コピーにおいて、ストレージ装置200およびストレージ装置300は、ビットマップ情報の各ビットとブロック領域とを対応付け、ストレージ装置200内のボリューム250のブロック領域251のデータを、ストレージ装置300内のボリューム350のブロック領域351にコピーする。
サーバ100は、論理コピーの完了後にコピー処理の完了通知をストレージ装置200から受信している。物理コピーはストレージ装置200とストレージ装置300との間で行われるため、サーバ100は、ストレージ装置200とストレージ装置300とが物理コピーの処理中であっても、ストレージ装置200およびストレージ装置300に対してアクセスする。したがって、ストレージ装置200およびストレージ装置300は、物理コピー中にサーバ100からのアクセスがあると、物理コピーの進行状態に応じた処理を実行する必要がある。具体的には、各ストレージ装置は、物理コピーの進行状態に応じて、以下のように異なる処理を実行する。(1)ストレージ装置は、OPC処理の未実施のブロック領域でコピー元のブロック領域にデータの書込みアクセスがあった場合、該当するブロック領域に対してOPC処理の実施した後、書込みアクセスに応じてデータを書き込む。(2)ストレージ装置は、OPC処理の未実施のブロック領域でコピー元のブロック領域にデータの読出しアクセスがあった場合、そのまま読み出す。(3)ストレージ装置は、OPC処理の未実施のブロック領域でコピー先のブロック領域にデータの書込みアクセスがあった場合、該当するブロック領域に対してOPC処理の実施した後、書込みアクセスに応じてデータを書き込む。(4)ストレージ装置は、OPC処理の未実施のブロック領域でコピー先のブロック領域にデータの読出しアクセスがあった場合、該当するブロック領域に対してOPC処理の実施した後、読出しアクセスに応じてデータを読み出す。(5)ストレージ装置は、OPC処理の未実施のブロック領域では、そのままデータを読み出す。
OPCにより、サーバ100はストレージ装置200とストレージ装置300との間のコピー処理が完了しているように見えるため、サーバ100は、ストレージ装置200およびストレージ装置300へのアクセスを継続して実行することが可能になる。
次にQuickOPCについて説明する。QuickOPCにおいて、ストレージ装置200は、初回にボリューム250のデータをストレージ装置300のボリューム350にコピー(初期コピー)する。その後、ストレージ装置200は、ボリューム250内の更新されたデータのみをボリューム350にコピー(差分コピー)する。QuickOPCにおいて、ストレージ装置は、OPCのボリューム間のコピー処理に加え、更新されたデータの状態を取得する差分情報取得処理を実行する。ストレージ装置は、コピー処理および差分情報取得処理により、異なるデータのみをボリューム間で物理コピーすることが可能になる。
ストレージ装置は、最初にQuickOPCの処理を開始すると、コピー状態を表現する転送用ビットマップ情報と更新状態を表す更新用ビットマップ情報とを生成する。ストレージ装置は、転送用ビットマップ情報および更新用ビットマップ情報を生成すると、初期コピーの論理コピーを完了する。ストレージ装置は、初期コピーの論理コピー完了後、コピー元のボリュームのデータをコピー先のボリュームにブロック領域毎に物理コピーを実行する。ストレージ装置は、物理コピーに該当するブロック領域に対応する転送用ビットマップ情報のビットを「コピー完了」に変更する。ストレージ装置は、ボリューム内のブロック領域の物理コピーが完了した場合でも、QuickOPCの処理を継続する。
ストレージ装置は、論理コピーの完了後、コピー元領域およびコピー先領域に対するサーバ100からの書込アクセスを受信した場合、更新用ビットマップ情報に更新箇所を記録する。ストレージ装置は、コピー元のボリュームの物理コピーの完了していないブロック領域に対するサーバ100からの書込みアクセスを受信した場合、アクセスに対応するブロック領域251のデータを対応するブロック領域351にコピーする。その後、ストレージ装置は、書込アクセスに対する処理を実行する。ストレージ装置は、アクセスに対応する転送用ビットマップ情報のビットを「コピー完了」に変更し、アクセスに対応する更新用ビットマップ情報のビットを「更新有り」に変更する。ストレージ装置は、サーバ100からQuickOPCの実行の指示を受けると、更新用ビットマップ情報内の更新されたことを示すビットに対応するコピー元のブロック領域251のデータをコピー先のブロック領域351にコピーする。ストレージ装置は、差分コピーにおいても論理コピーおよび物理コピーを実行する。サーバ100は、ストレージ装置の論理コピー処理の終了後、コピー元領域またはコピー先領域にアクセスが可能になる。
次にECについて説明する。ECはコピー元のボリューム内のブロック領域内のデータを、コピー先のボリュームのブロック領域にコピーすることにより、コピー元とコピー先のデータの二重化状態を作る。ストレージ装置は、ボリューム間の二重化状態を切り離すことによって、ある時点のデータのコピーを取得する。また、Suspendは二重化状態の一時停止であり、切り離しを示す。Resumeは二重化状態への復旧を示す。復旧時は、切り離した時点からのコピー元の更新されたデータのみをコピー先のボリュームに反映する。
ストレージ装置は、二重化状態でサーバからの書込みアクセスがあると、書込みアクセスは両ボリュームに対して実行する。各ストレージ装置は、コピー元のボリュームとコピー先のボリュームとの間のデータの等価状態を保持する。サーバ100からコピー作成の指示を受けると、各ストレージ装置は、ボリューム間の等価状態を切り離す(Stop)。あるいは、各ストレージ装置は、ボリューム間の等価状態を一時停止(Suspend)にする。サーバ100は、等価状態切り離すあるいは一時停止された各ボリュームに対して、独立してアクセスすることができる。二重化状態への復旧時は、ストレージ装置は、二重化状態への復旧をサーバ100からのアクセスよりも優先して実行する。したがって、サーバ100は、ECの復旧処理時に各ボリュームに対してアクセスすることができない。
本実施例のミラー化処理は、OPC、QuickOPC、およびECとは、(1)ミラーリングの関係を切り離したときから、差分データを取得する点、(2)ミラー化処理の時点で、ビットマップ情報は完成している点、(3)ミラー化処理の段階で、サーバ100に対して、論理コピーの完了を通知する点、(4)ミラー化処理の段階では、サーバ100は、読込みアクセスおよび書込みアクセスを各ボリュームに対して実行する点で異なる。
本実施例のストレージシステム1である。 ビットマップ情報230のビット231とボリューム250のブロック領域251との関係を示す図である。 ストレージシステムの通常時のミラーリングの動作シーケンス図である。 ストレージ装置間がミラーリングの関係であるときの、ボリューム250に格納されたデータとボリューム350に格納されたデータとの関係を示す図である。 ストレージシステムの故障時のミラーリングの動作シーケンス図である。 ビットマップ情報230が作成されたときのボリューム250のブロック領域251とビットマップ情報230のビット231との関係を示す図である。 ストレージ装置200とストレージ装置300とがミラーリングの関係から切り離された以降に実行する処理のフローチャートである。 ミラーリングの関係から切り離した後のビットマップ情報230、ボリューム250、およびボリューム350の関係を示す図である。 ミラー化処理時の動作シーケンス図である。 論理コピーが完了した時点のビットマップ情報とボリュームとの関係を示す図である。 ストレージ装置200にサーバ100からのアクセスがあった場合の処理のフローチャートである。 ストレージ装置300にサーバ100からのアクセスがあった場合の処理のフローチャートである。 ストレージ装置200とストレージ装置300との間の物理コピー中のボリュームとビットマップ情報を示す図である。 サーバ100からストレージ装置200のブロック領域255に対する書込みアクセスが完了したときのボリュームとビットマップ情報を示す図である。 ストレージ装置200のデータ格納部240に複数のデータ格納領域を有する場合のストレージシステムである。
符号の説明
100 サーバ
110 制御部
120 メモリ
130 接続部
200 ストレージ装置
210 制御部
220 メモリ
230 ビットマップ情報
240 データ格納部
260 接続部
300 ストレージ装置
310 制御部
320 メモリ
330 ビットマップ情報
340 データ格納部
360 接続部
400 ネットワーク

Claims (3)

  1. サーバと、第一のデータ格納領域及び第二のデータ格納領域がミラーリングの関係であるストレージ装置とがネットワークを介して接続するストレージシステムであって、
    前記サーバは、ミラーリング処理のソフトウェア制御部を備え、
    動作異常が検知されたときに、前記第二のデータ格納領域をミラーリングの関係から切り離す指示情報を前記ストレージ装置に送信し、
    前記ストレージ装置は、前記サーバからのライト要求に応じた処理を実行する制御部を備え、
    前記サーバから切り離しの前記指示情報を受信したタイミングで、前記第一のデータ格納領域のデータが更新された領域を特定する差分情報をメモリに記録開始し、
    前記第二のデータ格納領域に対するライト要求に対して応答がないとき、前記サーバより前記第一のデータ格納領域に対し再送信されたライト要求に関する情報を前記メモリの差分情報として記録し、
    前記サーバからミラーリング処理回復の指示を受けて前記差分情報に基づくコピー処理を実行し、該コピー処理実行中に前記サーバから前記第二のデータ格納領域へのライト要求があった場合に、前記差分情報に基づいて前記第二のデータ格納領域へのライト要求の対象領域のコピー処理を先に実行し、コピー完了後に前記第二のデータ格納領域へのライト要求に対するライト動作を実行することを特徴とするストレージシステム。
  2. 前記ストレージ装置は、前記コピー処理の対象の領域を所定の領域毎に区分し、前記コピー処理を実行した領域か否かを前記所定の領域毎に記憶するビットマップ情報を管理し、前記アクセス要求が前記コピー処理を実行した領域を対象とするか否かを、前記ビットマップ情報によって判別することを特徴とする請求項1に記載のストレージシステム。
  3. サーバと、第一のデータ格納領域及び第二のデータ格納領域がミラーリングの関係であるストレージ装置とがネットワークを介して接続するストレージシステムに適用されるデータ処理方法であって、
    前記サーバが、
    動作異常を検知したときに、前記第二の格納領域をミラーリングの関係から切り離す指示情報を前記ストレージ装置に送信し、
    前記ストレージ装置が、
    前記サーバから切り離しの前記指示情報を受信したタイミングで、前記第一のデータ格納領域のデータが更新された領域を特定する差分情報をメモリに記録開始し、
    前記第二のデータ格納領域に対するライト要求に対して応答がないとき、前記サーバより前記第一のデータ格納領域に対し再送信されたライト要求に関する情報を前記メモリの差分情報として記録し、
    前記サーバからミラーリング処理回復の指示を受けて前記差分情報に基づくコピー処理を実行し、該コピー処理実行中に前記サーバから前記第二のデータ格納領域へのライト要求があった場合に、前記差分情報に基づいて前記第二のデータ格納領域へのライト要求の対象領域のコピー処理を先に実行し、コピー完了後に前記第二のデータ格納領域へのライト要求に対するライト動作を実行することを特徴とするデータ処理方法。
JP2008097006A 2008-04-03 2008-04-03 データ処理方法、ストレージ装置およびストレージシステム Active JP5194962B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008097006A JP5194962B2 (ja) 2008-04-03 2008-04-03 データ処理方法、ストレージ装置およびストレージシステム
US12/417,080 US20090254722A1 (en) 2008-04-03 2009-04-02 Data storage apparatus
US13/689,002 US8555012B2 (en) 2008-04-03 2012-11-29 Data storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008097006A JP5194962B2 (ja) 2008-04-03 2008-04-03 データ処理方法、ストレージ装置およびストレージシステム

Publications (2)

Publication Number Publication Date
JP2009251786A JP2009251786A (ja) 2009-10-29
JP5194962B2 true JP5194962B2 (ja) 2013-05-08

Family

ID=41134314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008097006A Active JP5194962B2 (ja) 2008-04-03 2008-04-03 データ処理方法、ストレージ装置およびストレージシステム

Country Status (2)

Country Link
US (2) US20090254722A1 (ja)
JP (1) JP5194962B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037538B2 (en) * 2010-05-13 2015-05-19 Hewlett-Packard Development Company, L.P. File system migration
JP2015052853A (ja) * 2013-09-05 2015-03-19 富士通株式会社 ストレージ制御装置、制御方法及びプログラム
WO2015145617A1 (ja) * 2014-03-26 2015-10-01 株式会社日立製作所 ストレージシステム及び記憶制御方法
US20170061131A1 (en) * 2015-08-31 2017-03-02 Cisco Technology, Inc. Side-Channel Integrity Validation of Devices
US10348645B2 (en) 2016-01-27 2019-07-09 Oracle International Corporation System and method for supporting flexible framework for extendable SMA attributes in a high performance computing environment
US11271870B2 (en) 2016-01-27 2022-03-08 Oracle International Corporation System and method for supporting scalable bit map based P_Key table in a high performance computing environment
JP2017219913A (ja) * 2016-06-03 2017-12-14 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP6814020B2 (ja) * 2016-10-26 2021-01-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP2019061483A (ja) * 2017-09-26 2019-04-18 キヤノン株式会社 記憶制御装置、その制御方法、プログラム、及び情報処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3882467B2 (ja) * 2000-05-22 2007-02-14 株式会社日立製作所 記憶装置システムのスナップショット管理方法
JP4108944B2 (ja) 2001-06-14 2008-06-25 株式会社東芝 スナップショット機能を有するディスク記憶装置、スナップショット差分情報管理方法及びスナップショット管理プログラム
JP3842772B2 (ja) * 2003-09-10 2006-11-08 株式会社東芝 ディスクアレイコントローラ、ディスクアレイ装置及びディスクアレイ制御プログラム
JP2006113927A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
JP2006293850A (ja) * 2005-04-13 2006-10-26 Hitachi Ltd リモートコピーシステムおよびリモートコピー方法
JP2007065873A (ja) * 2005-08-30 2007-03-15 Hitachi Ltd 記憶制御装置、記憶制御システム、及び記憶制御方法
JP2007249652A (ja) 2006-03-16 2007-09-27 Nec Corp データミラー型クラスタシステム及びその運用方法

Also Published As

Publication number Publication date
US20090254722A1 (en) 2009-10-08
US8555012B2 (en) 2013-10-08
JP2009251786A (ja) 2009-10-29
US20130086346A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
JP5194962B2 (ja) データ処理方法、ストレージ装置およびストレージシステム
EP1150210B1 (en) Method for duplicating data of storage subsystem and data duplicating system
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
EP1179770B1 (en) File system
US7117386B2 (en) SAR restart and going home procedures
US20060236050A1 (en) Computer system, computer, and remote copy processing method
US7689790B2 (en) Storage system, remote copy and management method therefor
US20070011423A1 (en) Data migration method
US8041911B2 (en) Remote copy system and method of deciding recovery point objective in remote copy system
JP2005284497A (ja) 中継装置、管理サーバ、中継方法および認証方法
CN111552489B (zh) 用户态文件***热升级方法、装置、服务器及介质
JP5521595B2 (ja) ストレージシステム及びストレージ制御方法
US7228352B1 (en) Data access management system in distributed processing system
JP5409799B2 (ja) リモートコピーシステム及びリモートコピー制御方法
JP4433372B2 (ja) データアクセスシステム及び方法
JP4193754B2 (ja) データ二重化方法とプログラム
CN115033423A (zh) 双机热备drbd初始化同步方法、装置及设备
CN111563010A (zh) 一种基于双机冗余***的数据同步方法、***及存储介质
WO2013073022A1 (ja) 計算機システム及び障害検出方法
JP5870174B1 (ja) データ送信システム
JP5153310B2 (ja) フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム
JP2006202220A (ja) 引継ぎ情報の整合性を確認する処理をコンピュータに実行させるプログラム及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

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

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5194962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150