JP5263902B2 - ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラム - Google Patents

ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラム Download PDF

Info

Publication number
JP5263902B2
JP5263902B2 JP2010520558A JP2010520558A JP5263902B2 JP 5263902 B2 JP5263902 B2 JP 5263902B2 JP 2010520558 A JP2010520558 A JP 2010520558A JP 2010520558 A JP2010520558 A JP 2010520558A JP 5263902 B2 JP5263902 B2 JP 5263902B2
Authority
JP
Japan
Prior art keywords
primary volume
replication
replication engine
data
volume
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
JP2010520558A
Other languages
English (en)
Other versions
JP2010537267A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010537267A publication Critical patent/JP2010537267A/ja
Application granted granted Critical
Publication of JP5263902B2 publication Critical patent/JP5263902B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/2069Management of state, configuration or failover

Landscapes

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

Description

本発明は、ストレージ・コントローラと複製エンジン(replication engine)との間で書き込みを分割する方法、システムおよびプログラムに関する。
現在のネットワーク・ストレージ・システムでは、ストレージ・コントローラ(storage controller)により管理されているボリュームに宛てられた書き込みを別のストレージ・デバイスに分割するスプリッタ(splitter)を、ホストまたはスイッチに実装可能である。スプリッタは、データのコピーをストレージ・コントローラへ送信し、もう1つのコピーを、ストレージにデータをコピーするコピー・サービスを実装する複製エンジンへ送信する。複製エンジンは、別個のネットワーク・デバイスまたは機器を含むこともある。
一実装では、スプリッタは、デバイス・ドライバまたは論理ボリューム・マネージャなどの、ホスト・ソフトウェア・スタックにおいて実装される。別の実装では、スプリッタは、スイッチにおいてなど、構造内に実装されることもある。ピア・ツー・ピア・コピー(「PPRC:Peer−to−Peer−Copy」)の場合など、さらに別の実装では、スプリッタおよび複製機能はストレージ・コントローラ内に実装され、プライマリ・ストレージ・コントローラが、連続的にデータをリモートのセカンダリ・サイトにミラーリングまたは複製する。
第1の態様では、本発明は、プライマリ・ボリュームに対するアクセスを管理するストレージ・コントローラにおいて実行されているスプリッタによって実行される、データ複製方法を提供する。本方法は、複製エンジンと通信を開始するための初期化コマンド(initialization command)を受信することと、1つのプライマリ・ボリュームのための複製コマンドを受信することと、前記1つのプライマリ・ボリュームが複製対象であることを、当該1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ中に示す(indicate)ことと、複製対象としてされている前記1つのプライマリ・ボリュームターゲット・プライマリ・ボリュームにデータを書き込むための書き込み要求を受信することと、書き込み要求内のデータをターゲット・プライマリ・ボリュームに書き込むことと、書き込み要求内のデータを複製エンジンへ送信することとを含み、複製エンジンは、データを複製エンジン・ボリュームに書き込むために、ターゲット・プライマリ・ボリュームに関連付けられたコピー・サービス機能を実行する。
複製エンジンおよびスプリッタは、伝送される標準ストレージ通信プロトコル(standard storage communication protocol)パッケージに複数のコマンドおよびデータをパッケージ化することによって通信することが好ましい。
種々のベンダからの異種のコピー機能をそれぞれ実装する複数の複製エンジンがあり、スプリッタは、種々の複製エンジンとの通信に同じマンドと、標準ストレージ通信プロトコルとを使用して、この異種のコピー機能を呼び出すことができることが好ましい。
本方法はさらに、プライマリ・ボリュームと、複製エンジン・ボリュームとの両方において書き込みが完了したという確認応答を受信するのに応答して、書き込み要求に対する完了を返すことをさらに含むとよい。
本方法はさらに、複製エンジンとの通信における障害を検出することと、検出された障害の後に生じるプライマリ・ボリュームに対する書き込みデータを記録変更データ構造(record change data structure)内に記録することと、複製エンジンから、記録変更データ構造内に示された前記書き込みデータについての情報送信要求を受信することと、前記書き込みデータについての情報を前記複製エンジンへ送信することと、記録変更データ構造内に示された前記書き込みデータを複製エンジンへ送信するのに応答して、前記記録変更データ構造を消去することとを含むとよい。
本方法はさらに、記録変更データ構造内にされているプライマリ・ボリューム内の更新済みデータの要求を、複製エンジンから受信することと、記録変更データ構造内にされている、要求された更新済みデータを、複製エンジンへ送信することとを含むとよい。
本方法はさらに、複製エンジンからプライマリ・ボリュームにコピーする領域のリストを受信することと、複製エンジンの、該領域内にされているデータを要求することと、該領域内にされているデータを複製エンジンから受信することと、該領域内にされている、受信されたデータを、プライマリ・ボリュームに書き込むことと、該領域内のデータがプライマリに書き込まれたことを、複製エンジンから受信されたデータをプライマリ・ボリュームに書き込むのに応答して示すこととを含むとよい。
本方法はさらに、領域のリストを受信した後に、プライマリ・ボリューム内のデータに対する読み取り要求を受信することと、読み取り要求されたデータが、リスト内にされているかどうかを判断することと、読み取り要求されたデータがリスト内にされていると判断するのに応答して、読み取り要求を複製エンジンへリダイレクトすることと、読み取り要求されたデータはリスト内にされていないと判断するのに応答して、読み取り要求されたデータをプライマリ・ボリュームから返すこととを含むとよい。
本方法はさらに、領域を受信した後に、プライマリ・ボリュームにデータを書き込むための書き込み要求を受信することと、書き込むべきデータが、該領域内にされているかどうかを判断することと、該領域内の、書き込み要求からのデータが、プライマリ・ボリュームに書き込まれたことを、プライマリ・ボリュームにデータを書き込むのに応答して示すこととを含むとよい。
本方法はさらに、プライマリ・ボリュームから複製エンジンにコピーする領域のリストを受信することと、された領域からのデータを複製エンジンへ送信することと、該領域内のデータが複製エンジンへ送信されたことを、該領域内にされているデータを複製エンジンへ送信するのに応答して示すこととを含む。
本方法はさらに、複製エンジン・ボリュームに関連付けられた仮想プライマリ・ボリュームを作成するためのコマンドを受信することと、ホストがアクセス可能な仮想プライマリ・ボリュームを作成することと、仮想プライマリ・ボリュームに宛てられた入出力(I/O:Input/Output)要求を受信することと、仮想プライマリ・ボリュームに宛てられたI/O要求を、複製エンジンに宛てることとを含むとよい。
複製エンジンは、ターゲット・プライマリ・ボリュームに関連付けられたさらなる機能を実行することが好ましい。
第2の態様では、プライマリ・ボリュームに対するアクセスを管理し、複製エンジンと通信しているシステムが提供される。このシステムは、プライマリ・ボリューム・メタデータを有するコンピュータ可読媒体と、複数の動作を生じさせることができるスプリッタとを含む。この動作は、複製エンジンと通信を開始するための初期化コマンドを受信することと、1つのプライマリ・ボリュームの複製コマンドを受信することと、プライマリ・ボリューム・メタデータにおいて、プライマリ・ボリュームが複製対象であることを示すことと、複製対象としてされているプライマリ・ボリュームのうちのターゲット・プライマリ・ボリュームにデータを書き込むための書き込み要求を受信することと、書き込み要求内のデータをターゲット・プライマリ・ボリュームに書き込むことと、書き込み要求内のデータを複製エンジンへ送信することとを含み、複製エンジンは、複製エンジン・ボリュームにデータを書き込むために、ターゲット・プライマリ・ボリュームに関連付けられたコピー・サービス機能を実行する。
種々のベンダからの異種のコピー機能をそれぞれ実装する複数の複製エンジンがあり、スプリッタは、種々の複製エンジンとの通信に同じコマンドと、標準ストレージ通信プロトコルとを使用して、この異種のコピー機能を呼び出すことができることが好ましい。
このスプリッタはさらに、複製エンジンとの通信における障害を検出することと、検出された障害の後に生じるプライマリ・ボリュームに対する書き込みデータについての情報を記録変更データ構造内に記録することと、複製エンジンから、記録変更データ構造内に示された前記書き込みデータについての情報の送信要求を受信することと、前記書き込みデータについての情報を複製エンジンへ送信することと、前記書き込みデータについての情報を複製エンジンへ送信するのに応答して、記録変更データ構造内に示された前記書き込みデータについての情報を消去することとを含む動作を生じさせることが好ましい。
このスプリッタはさらに、複製エンジンからプライマリ・ボリュームにコピーする領域のリストを受信することと、複製エンジンの、該領域内にされているデータを要求することと、該領域内にされているデータを複製エンジンから受信することと、該領域内にされている、受信されたデータを、プライマリ・ボリュームに書き込むことと、複製エンジンから受信されたデータをプライマリ・ボリュームに書き込むのに応答して、該領域内のデータがプライマリに書き込まれたことを示すこととを含む動作を生じさせることが好ましい。
このスプリッタはさらに、領域のリストを受信した後に、プライマリ・ボリューム内のデータに対する読み取り要求を受信することと、読み取り要求されたデータが、リスト内にされているかどうかを判断することと、読み取り要求されたデータがリスト内にされていると判断するのに応答して、読み取り要求を複製エンジンへリダイレクトすることと、読み取り要求されたデータはリスト内にされていないと判断するのに応答して、読み取り要求されたデータをプライマリ・ボリュームから返すこととを含む動作を生じさせることが好ましい。
このスプリッタはさらに、複製エンジン・ボリュームに関連付けられた仮想プライマリ・ボリュームを作成するためのコマンドを受信することと、ホストがアクセス可能な仮想プライマリ・ボリュームを作成することと、仮想プライマリ・ボリュームに宛てられた入出力(I/O)要求を受信することと、仮想プライマリ・ボリュームに宛てられたI/O要求を、複製エンジンに宛てることとを含む動作を生じさせることが好ましい。
第3の態様では、コンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。このコンピュータ・プログラム・コードは、コンピュータ・システムにロードされコンピュータ・システム上で実行されると、コンピュータ・システムに第1の態様による方法のステップすべてを実行させる。
第3の態様のコンピュータ・プログラムは、コードを含んでいるプログラムに具現化されてもよい。このコードは、複製エンジンと通信し、プライマリ・ボリュームに対するアクセスを管理し、複数の動作を実行させるためのものである。この動作は、複製エンジンと通信を開始するための初期化コマンドを受信することと、1つのプライマリ・ボリュームの複製コマンドを受信することと、このプライマリ・ボリュームを複製対象として示すことと、複製対象としてされているプライマリ・ボリュームのうちのターゲット・プライマリ・ボリュームにデータを書き込むための書き込み要求を受信することと、書き込み要求内のデータをターゲット・プライマリ・ボリュームに書き込むことと、書き込み要求内のデータを複製エンジンへ送信することとを含み、複製エンジンは、データを複製エンジン・ボリュームに書き込むために、ターゲット・プライマリ・ボリュームに関連付けられたコピー・サービス機能を実行する。
複製エンジンおよびスプリッタは、伝送される標準ストレージ通信プロトコル・パッケージに複数のコマンドおよびデータをパッケージ化することによって通信することが好ましい。
種々のベンダからの異種のコピー機能をそれぞれ実装する複数の複製エンジンがあり、スプリッタは、種々の複製エンジンとの通信に同じコマンド、標準ストレージ通信プロトコルとを使用して、この異種のコピー機能を呼び出すことができることが好ましい。
動作はさらに、プライマリ・ボリュームと、複製エンジン・ボリュームとの両方において書き込みが完了したという確認応答を受信するのに応答して、書き込み要求に対する完了を返すことを含むことが好ましい。
動作はさらに、複製エンジンとの通信における障害を検出することと、検出された障害の後に生じるプライマリ・ボリュームに対する書き込みがされたことを記録変更データ構造内に記録することと、複製エンジンから、記録変更データ構造の要求を受信することと、変更されたデータについての情報を、記録変更データ構造内で複製エンジンへ送信することと、記録変更データ構造を複製エンジンへ送信するのに応答して、記録変更データ構造を消去することとを含むことが好ましい。
動作はさらに、記録変更データ構造内にされている、プライマリ・ボリューム内の更新済みデータの要求を、複製エンジンから受信することと、記録変更データ構造内にされている、要求された更新済みデータを、複製エンジンへ送信することとを含むことが好ましい。
動作はさらに、複製エンジンからプライマリ・ボリュームにコピーする領域のリストを受信することと、複製エンジンの、該領域内にされているデータを要求することと、該領域内にされているデータを、複製エンジンから受信することと、該領域内にされている、受信されたデータを、プライマリ・ボリュームに書き込むことと、該領域内のデータがプライマリに書き込まれたことを、複製エンジンから受信されたデータをプライマリ・ボリュームに書き込むのに応答して示すこととを含むことが好ましい。
動作はさらに、領域のリストを受信した後に、プライマリ・ボリューム内のデータに対する読み取り要求を受信することと、読み取り要求されたデータが、リスト内にされているかどうかを判断することと、読み取り要求されたデータがリスト内にされていると判断するのに応答して、読み取り要求を複製エンジンへリダイレクトすることと、読み取り要求されたデータはリスト内にされていないと判断するのに応答して、読み取り要求されたデータをプライマリ・ボリュームから返すこととを含むことが好ましい。
動作はさらに、領域を受信した後に、プライマリ・ボリュームにデータを書き込むための書き込み要求を受信することと、書き込むべきデータが、該領域内にされているかどうかを判断することと、該領域内の、書き込み要求からのデータが、プライマリ・ボリュームに書き込まれたことを、プライマリ・ボリュームにデータを書き込むのに応答して示すこととを含むことが好ましい。
動作はさらに、プライマリ・ボリュームから複製エンジンにコピーする領域のリストを受信することと、された領域からのデータを複製エンジンへ送信することと、該領域内のデータが複製エンジンへ送信されたことを、該領域内にされているデータを複製エンジンへ送信するのに応答して示すこととを含むことが好ましい。
動作はさらに、複製エンジン・ボリュームに関連付けられた仮想プライマリ・ボリュームを作成するコマンドを受信することと、ホストがアクセス可能な仮想プライマリ・ボリュームを作成することと、仮想プライマリ・ボリュームに宛てられた入出力(I/O)要求を受信することと、仮想プライマリ・ボリュームに宛てられたI/O要求を、複製エンジンに宛てることとを含むことが好ましい。
複製エンジンは、ターゲット・プライマリ・ボリュームに関連付けられたさらなる機能を実行することが好ましい。
このように、ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラムが提供される。ストレージ・コントローラ内で実行されているスプリッタが、複数のプライマリ・ボリュームに対するアクセスを管理する。複製エンジンと通信を開始するための初期化コマンドが受信される。1つのプライマリ・ボリュームの複製コマンドが受信され、そのプライマリ・ボリュームが、複製対象としてされる。複製対象としてされているプライマリ・ボリュームのうちのターゲット・プライマリ・ボリュームにデータを書き込むための書き込み要求が受信される。書き込み要求内のデータがターゲット・プライマリ・ボリュームに書き込まれる。書き込み要求内のデータが複製エンジンへ送信される。このデータを複製エンジン・ボリュームに書き込むために、複製エンジンがターゲット・プライマリ・ボリュームに関連付けられたコピー・サービス機能を実行する。
さらなる実施形態では、複製エンジンおよびスプリッタは、伝送される標準ストレージ通信プロトコル・パッケージに複数のコマンドおよびデータをパッケージ化することによって通信する。
さらなる実施形態では、種々のベンダからの異種のコピー機能をそれぞれ実装する複数の複製エンジンがある。スプリッタは、種々の複製エンジンとの通信に同じコマンドと、標準ストレージ通信プロトコルとを使用して、この異種のコピー機能を呼び出すことができる。
さらなる実施形態では、プライマリ・ボリュームと、複製エンジン・ボリュームとの両方において書き込みが完了したという確認応答を受信するのに応答して、書き込み要求に対する完了が返される。
さらなる実施形態では、複製エンジンとの通信における障害が検出される。検出された障害の後に生じるプライマリ・ボリュームに対する書き込まれたことが、記録変更データ構造内に記録される。記録変更データ構造の要求が複製エンジンから受信される。変更されたデータについての情報が、記録変更データ構造内で複製エンジンへ送信される。記録変更データ構造は、記録変更データ構造を複製エンジンへ送信するのに応答して消去される。
さらなる実施形態では、記録変更データ構造内にされている、プライマリ・ボリューム内の更新済みデータの要求が、複製エンジンから受信される。記録変更データ構造内にされている、要求された更新済みデータが、複製エンジンへ送信される。
さらなる実施形態では、複製エンジンからプライマリ・ボリュームにコピーする領域のリストが受信される。複製エンジンの、該領域内にされているデータが要求される。その領域内にされている複製エンジンからのデータが受信され、該領域内にされている受信されたデータが、プライマリ・ボリュームに書き込まれる。複製エンジンから受信されたデータをプライマリ・ボリュームに書き込むのに応答して、該領域内のデータがプライマリに書き込まれたことがされる。
さらなる実施形態では、プライマリ・ボリューム内のデータに対する読み取り要求が、複数領域のリストを受信した後に受信される。読み取り要求されたデータがリスト内にされているかどうかについて判断される。読み取り要求されたデータがリスト内にされていると判断するのに応答して、読み取り要求は複製エンジンにリダイレクトされる。読み取り要求されたデータはリスト内にされていないと判断するのに応答して、読み取り要求されたデータはプライマリ・ボリュームから返される。
さらなる実施形態では、プライマリ・ボリュームにデータを書き込むための書き込み要求が、領域を受信した後に受信される。書き込むべきデータが、該領域内にされているかどうかについて判断される。該領域内の、書き込み要求からのデータが、プライマリ・ボリュームに書き込まれたことが、データをプライマリ・ボリュームに書き込むのに応答してされる。
さらなる実施形態では、プライマリ・ボリュームから複製エンジンにコピーする領域のリストが受信される。された領域から複製エンジンへデータが送信され、該領域内のデータが複製エンジンへ送信されたことが、該領域内にされているデータを複製エンジンへ送信するのに応答してされる。
さらなる実施形態では、複製エンジン・ボリュームに関連付けられた仮想プライマリ・ボリュームを作成するためのコマンドが受信される。ホストがアクセス可能な仮想プライマリ・ボリュームが作成される。仮想プライマリ・ボリュームに宛てられた入出力(I/O)要求が受信され、そのI/O要求が、複製エンジンへリダイレクトされる。
さらなる実施形態では、複製エンジンは、ターゲット・プライマリ・ボリュームに関連付けられたさらなる機能を実行する。
以下、本発明の好適な実施形態を、単なる一例として添付の図面を参照して説明する。
ネットワーク・コンピューティング環境の実施形態である。 スプリッタにより保持されるプライマリ・ボリューム・メタデータの実施形態である。 複製エンジンにより保持されるプライマリ・ボリューム・メタデータの実施形態である。 通信プロトコルにおいて複製コマンドがどのようにパッケージ化されるかの実施形態である。 スプリッタと複製エンジンとの間の通信を開始する動作の実施形態である。 書き込みを複製エンジンに分割するようスプリッタを設定する動作の実施形態である。 プライマリ・ボリュームに対する書き込み要求を、複製エンジンに分割するよう処理する動作の実施形態である。 スプリッタと複製エンジンとの間の通信障害に対処する動作の実施形態である。 データを複製エンジン・ボリュームからプライマリ・ボリュームにコピーする動作の実施形態である。 複製エンジン・ボリュームからのデータで更新されるべき、プライマリ・ボリュームの領域に対する読み取り要求を処理する動作の実施形態である。 複製エンジン・ボリュームからのデータで更新されるべき、プライマリ・ボリュームの領域に対する書き込み要求を処理する動作の実施形態である。 複製エンジン・ボリュームに関連付けられた仮想プライマリ・ボリュームを作成する動作の実施形態である。 複数の実施形態の、記載されている特定の態様が実装されるコンピュータ・アーキテクチャのブロック図である。
図1は、ネットワーク・コンピューティング環境の実施形態を示す。1つ以上のホスト2が、1つ以上のプライマリ・ストレージ6内のプライマリ・ボリューム4の読み取り/書き込み要求を送信する。1つ以上のストレージ・コントローラ8が、プライマリ・ボリューム4に対するホスト2からの入出力(I/O)アクセスを管理する。ストレージ・コントローラ8は、プライマリ・ボリューム4に対する書き込みデータを、複製デバイス14に実装された1つ以上の複製エンジン12にコピーする、スプリッタ・プログラム10を含むとよい。各複製エンジン12は、コピー・サービス16を呼び出し、スプリッタ10から受信されるデータを、ストレージ20内で複製エンジン12によって保持されている複製エンジン・ボリューム18にコピーするとよい。さらなる複数の実施形態では、複製エンジン12は、ログを作成してそのログに書き込みデータを記録することなどによって、コピーを必要としない形でコピー・サービス機能を実装してもよい。
ホスト2、ストレージ・コントローラ8、および複製デバイス14は、ネットワーク22を介して通信するとよい。ネットワーク22は、ストレージ・エリア・ネットワーク(SAN:Storage Area Network)、ローカル・エリア・ネットワーク(LAN:Local Area Network)、イントラネット、インターネット、広域ネットワーク(WAN:Wide Area Network)、ピア・ツー・ピア・ネットワーク、無線ネットワーク、アービトレート型ループ・ネットワークなどを含めばよい。ストレージ6および20は、ハード・ディスク・ドライブ、フラッシュ・メモリなどの単一のストレージ・デバイスを含んでもよく、または、単純ディスク束(JBOD:Just a Bunch of Disks)、ネットワーク・アタッチト・ストレージ(NAS:Network Attached Storage)、ハード・ディスク・ドライブ、直接アクセス・ストレージ・デバイス(DASD:Direct Access Storage Device)、独立ディスク冗長アレイ(RAID:Redundant Array of Independent Disks)アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリなどの一連のストレージ・デバイスを含んでもよい。
図1の実施形態では、複製エンジン12が、ストレージ・コントローラ8とは別のデバイスにおいて実装されるように示されている。別の実施形態では、複製エンジン12は、ストレージ・コントローラ8と同じシステム内に実装されてもよい。例えば、複製デバイス14およびストレージ・コントローラ8は、同じボックスまたはシステム内の別々の論理パーティション(LPAR:Logical Partitions)を含んでもよい。あるいは、複製エンジン14およびストレージ・コントローラ8は、同じマザーボードの別々のスロットに挿入される拡張カードを含んでもよい。そのような実装では、複製デバイス14およびストレージ・コントローラ8は、例えば周辺コンポーネント相互接続(PCI:Peripheral Component Interconnect)プロトコルおよびアーキテクチャなどのバス通信プロトコルなど、ネットワーク・プロトコル以外の標準プロトコルを使用して通信するとよい。
図2は、ストレージ・コントローラ8が1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ26の実施形態を示す。プライマリ・ボリューム・メタデータ26は、プライマリ・ボリューム52を示す情報と、特定されている複製エンジン56にプライマリ・ボリューム52が複製されるべきかどうかを示す複製フラグ(replication flag)54と、ストレージ・コントローラ8と複製デバイス14との間の通信が無効化されている間の、複製されるプライマリ・ボリュームに対する変更を記録するのに使用される記録変更データ構造(record change data structure)58と、複製エンジン12からのデータで更新されるべき、プライマリ・ボリューム52内の領域を特定するリバート・データ構造(revert data structure)60と、プライマリ・ボリューム52が、そのデータを関連の複製エンジン・ボリューム18内に保持される、プライマリ・ストレージ6内の仮想ボリュームであるかどうかを示す仮想モード情報62とを含むとよい。仮想プライマリ・ボリュームは、複製エンジン・ボリューム18を、ストレージ・コントローラ8によって管理されているプライマリ・ボリュームとしてホスト2に公開するように作成される。
図3は、複製エンジン12が1つのプライマリ・ボリューム4に関して保持するプライマリ・ボリューム・メタデータ28の実施形態を示す。プライマリ・ボリューム・メタデータ28は、1つのプライマリ・ボリューム4を特定するプライマリ・ボリューム72情報と、対応するプライマリ・ボリューム72のデータの格納に使用される複製エンジン・ボリューム74と、プライマリ・ボリューム72のデータを複製エンジン・ボリューム74に格納するために複製エンジンが呼び出すコピー・サービス76と、プライマリ・ボリューム72がプライマリ・ストレージ6内の仮想ボリュームであるかどうかを示す仮想モード78情報とを含む。
図4は、ストレージ・コントローラ8と、1つの複製エンジン12との間でどのようにコマンドが伝達されるかの実施形態を示す。スプリッタ10および複製エンジン12は、ファイバー・チャネル、Ethernet(登録商標)、シリアル接続SCSI(SAS:Serial Attached SCSI)などの、標準ネットワーク通信プロトコルに従ったネットワーク・プロトコル・ヘッダ92を有する標準ネットワーク通信パッケージ90を構成させるとよい。標準ストレージ通信パッケージ94は、小型コンピュータ・システム・インターフェース(SCSI:Small Computer System Interface)などの標準ストレージ通信プロトコルを使用するストレージ・プロトコル・ヘッダ96と共にネットワーク通信パッケージ90内にカプセル化されるとよい。複製コマンド/メッセージ98が、複製に関係した動作、メッセージ、および通信、さらに任意選択でデータ100を実装するよう標準ストレージ通信パッケージ94に含まれるとよい。
一実施形態では、異種であり、かつ恐らくは互換性のないプログラムを含む、種々のベンダからのスプリッタ10および複製エンジン12が、同じ複製コマンドを実装して、種々のベンダからの異種のスプリッタと複製エンジンとの間の通信および複製動作を可能にするとよい。このように、スプリッタまたは複製エンジンのベンダは、そのプログラムに複製コマンドを組み込み、同じくこのコマンドを実装する種々のベンダからの異種のスプリッタおよび複製エンジンとの通信を可能にするとよい。さらに、種々の複製エンジン12が、種々のベンダとは異なるコピー・サービス16を実装して、異種のスプリッタ12が、種々のベンダからの異種のコピー・サービス16を、そのコピー・サービス16をサポートする複製エンジン12を通じて呼び出すことができるようにしてもよい。
図5は、通信を初期化するためにスプリッタ10および複製エンジン12によって実行される動作の実施形態を示す。スプリッタ10は、複製エンジン12との通信を開始するためのコマンド98を(ブロック120で)受信するが、このコマンド98は、パッケージ90および94(図4)に含まれているとよい。スプリッタ10は、ストレージ・コントローラ8のユーザ・インターフェースまたはコマンド・ラインを介してこのコマンドを受信してもよい。それに応答して、スプリッタ10は標準ストレージ通信パッケージ94を(ブロック122で)生成して送信する。この標準ストレージ通信パッケージ94は、複製コマンド98および複製エンジン12との通信を開始するためのメッセージと共にネットワーク通信パッケージ90内にカプセル化されるとよい。複製エンジン12は、スプリッタ10との通信を開始するための複製通信を(ブロック124で)受信すると、さらなるメッセージ98をスプリッタ10へ(ブロック126で)送信することによって、スプリッタ10との通信を確立するための動作を実行する。
図6は、プライマリ・ボリューム4を複製関係に入れるためにスプリッタ10および複製エンジン12によって実行される動作の実施形態を示す。一実施形態では、ユーザが複製デバイス14のユーザ・インターフェースで、特定のプライマリ・ボリューム4を複製するために複製エンジン12を呼び出し、複製コマンド98を(ブロック150で)生成してスプリッタ10へ送信する。スプリッタ10は、複製コマンド98を(ブロック152で)受信すると、この特定のプライマリ・ボリューム52に関して複製フラグ54を(ブロック154で)設定し、プライマリ・ボリューム52のデータを特定された複製エンジン56へ分割することを示す。この特定された複製エンジン56は、複製コマンドを送信した複製エンジン12、または別の特定の複製エンジンを含めばよい。
図7は、プライマリ・ボリューム4に対する書き込み要求を処理するためにスプリッタ10および複製エンジン12によって実行される動作の実施形態を示す。プライマリ・ボリューム4に対する書き込み要求をホスト2から(ブロック170で)受信すると、スプリッタ10が、ターゲット・プライマリ・ボリューム52の複製フラグ54(図2)が複製をしているかどうかを(ブロック172で)判断する。複製が設定されていれば、スプリッタ10は、ストレージ通信プロトコル・パッケージ94を(ブロック174で)生成および送信するが、これは、標準ネットワーク通信パッケージ90にさらに含まれるとよい。このストレージ通信プロトコル・パッケージ94は、複製エンジン12に対するコピー複製コマンド98および書き込みデータ100を含んでおり、この複製エンジン12は、このターゲット・プライマリ・ボリューム用に特定されている複製エンジン56を含むとよい。ブロック172のいいえの分岐またはブロック174の後、スプリッタ10はデータをプライマリ・ボリューム4に(ブロック176で)書き込む。
複製エンジン12が、複製するべきデータ100と共にコピー複製コマンド98をスプリッタ10から(ブロック178で)受信すると、複製エンジン12は、受信されたデータのコピーに使用するコピー・サービス16機能を(ブロック180で)判断する。一実施形態では、コピー・サービス16は、複製エンジン12がプライマリ・ボリューム用に保持するプライマリ・ボリューム・メタデータ28から判断されてもよく、またはスプリッタ10から送信される複製コマンド内でされてもよい。複製エンジン12は、受信データを対応する複製エンジン・ボリューム18へ転送するために、判断されたコピー・サービス16機能を(ブロック182で)実行するとよい。この対応する複製エンジン・ボリューム18は、複製エンジン12によって保持されるプライマリ・ボリューム・メタデータ28(図3)のフィールド74でされるとよい。コピーを完了すると、複製エンジン12は、1つの複製コマンド98を含む、データの書き込みが完了したというメッセージを、スプリッタ10へ(ブロック184で)送信する。スプリッタ10は、転送したデータに関する完了を複製エンジン12から(ブロック186で)受信すると、データの書き込みが完了したというメッセージを、書き込み要求の開始元のホスト2へ(ブロック188で)送信する。
図8は、スプリッタ10および複製エンジン12によって、ネットワーク22の障害など、スプリッタ10と複製エンジン12との間の通信障害に対処するために実行される動作の実施形態を示す。スプリッタ10は、複製エンジン12との通信能力の障害を(ブロック200で)検出すると、検出された障害の後の、複製対象のプライマリ・ボリューム4に対する変更を記録するよう、設定される複製フラグ54によって示される複製関係にある各プライマリ・ボリュームの記録変更データ構造58を(ブロック202で)生成する。さらなる実施形態では、スプリッタ10は、複数ボリュームのセットに関してグローバル・データ構造を保持するとよい。複製エンジン12は、通信障害の後にスプリッタ10との通信を(ブロック204で)再確立すると、記録変更データ構造58からの情報(記録変更データ構造58のコピーまたはデータ構造58から抽出された情報を含むとよい)を要求する複製コマンド98を(ブロック206で)生成して標準ストレージ通信プロトコル・パッケージ94内でスプリッタ10へ送信する。スプリッタ10は、記録変更データ構造58の複製コマンド要求を(ブロック208で)受信するのに応答して、記録変更データ構造58からの情報を、要求している複製エンジン12へ、標準ストレージ通信プロトコル94を使用して(ブロック210で)送信する。送信された情報は、通信障害の間に更新されていた、複製対象のプライマリ・ボリュームの領域を示すとよい。複製エンジン12に記録変更データ構造58についての情報を送信すると、スプリッタ10はさらに、記録変更データ構造58を(ブロック212で)消去するとよい。複製エンジン12が記録変更データ構造58からの情報を(ブロック216で)受信すると、複製エンジン12は、通信障害の間にプライマリ・ボリューム4において更新されたデータを要求するコマンドの1つ以上のパッケージ94をスプリッタ10に(ブロック218で)送信する。
スプリッタ10は、記録変更データ構造58内でデータを特定されたプライマリ・ボリューム4内のデータを要求する複製コマンド98を複製エンジン12から(ブロック220で)受信するのに応答して、標準ストレージ通信プロトコル・パッケージ94内の1つ以上のメッセージにおいて、要求されたデータを複製エンジン12へ(ブロック222で)転送する。複製エンジン12は、要求したデータをスプリッタ10から(ブロック224で)受信すると、受信データを対応する複製エンジン・ボリューム18へ転送するために、スプリッタ10のコピー・サービス76機能を(ブロック226で)呼び出す。プライマリ・ボリューム4に対応する複製エンジン・ボリューム18は、複製エンジン12によって保持されるプライマリ・ボリューム・メタデータ28内のフィールド72および74から判断されるとよい。さらなる実施形態では、他の領域の再同期が実行されるとき、複製エンジン12は、リカバリ手順に必要な特定の機能を実行するとよい。
図9は、複製エンジン・ボリューム18からプライマリ・ボリューム4に複数の領域をコピーするためにスプリッタ10および複製エンジン12によって実行される動作の実施形態を示す。複製エンジン12は、標準ストレージ・プロトコル・パッケージ94内で、プライマリ・ボリューム4にコピーする複製エンジン・ボリューム18の領域のリストと共にコマンドを(ブロック250で)送信する。スプリッタ10は、領域のリストと共にコピー・コマンドを(ブロック252で)受信するのに応答して、プライマリ・ボリューム内の、複製エンジン12からのデータで更新する領域のリストを示す、ターゲット・プライマリ・ボリューム4のリバート・データ構造60(図2)を(ブロック254で)生成する。スプリッタ10は(ブロック256で)、ストレージ通信プロトコル・パッケージ94およびネットワーク・パッケージ90において、リバート・データ構造60内にされている領域のリスト内のデータを要求する複製コマンド98を、複製エンジン12へ送信する。
複製エンジン12は、領域のリストを要求する複製コマンドをスプリッタ10から(ブロック258で)受信すると、(ブロック260で)標準ストレージ通信プロトコル・パッケージ94およびネットワーク・パッケージ90を使用して、1つ以上のメッセージを生成しスプリッタ10へ送信する。スプリッタ10は、データを(ブロック262で)受信すると、そのデータをターゲット・プライマリ・ボリューム4に(ブロック264で)書き込む。スプリッタ10は、リバート・データ構造60内に、複製エンジン・ボリューム18からのデータで更新されたプライマリ・ボリューム位置を(ブロック266で)示す。リバート・データ構造60が(ブロック268で)、されているすべてのデータがコピーされたこと、すなわち、領域のリストすべてが複製エンジン・ボリューム18からプライマリ・ボリューム4へコピーされたことを示せれば、スプリッタ10は領域のリストが複製エンジン・ボリューム18からターゲット・プライマリ・ボリューム4にコピーされたことを示す終了ステータスを複製エンジン12へ(ブロック270で)送信する。そうでなく、リバート・データ構造60が(ブロック268で)、コピーすべきさらなる領域があることを示すと、制御が終了する。
図10は、複製エンジン・ボリューム18からのデータで更新されるべきであるとリバート・データ構造60内でされた領域を有するプライマリ・ボリューム4に対する読み取り要求に対処するよう、スプリッタ10および複製エンジン12によって実行される動作の実施形態を示す。スプリッタ10が、リバート・データ構造60内でされ、更新されていない、または更新待ちとされているプライマリ・ボリューム4位置に対する読み取り要求をホスト2から(ブロック300で)受信すると、スプリッタ10は(ブロック302で)読み取り要求されたデータの複製コマンド98を複製エンジン12へ送信する。複製エンジン12は、読み取り要求されたデータの要求を(ブロック304で)受信すると、(ブロック306で)ネットワーク・パッケージ90内の標準ストレージ通信パッケージ94のデータ・フィールド100内などに要求されたデータを含んでいる1つ以上のメッセージを生成して、要求しているスプリッタ10へ送信する。
スプリッタ10は、要求したデータを(ブロック308で)受信すると、受信データを読み取り要求の開始元のホスト2へ(ブロック310で)返し、受信データでプライマリ・ボリューム4を(ブロック312で)更新する。スプリッタ10はさらに、リバート・データ構造60内に、プライマリ・ボリューム4内の領域が更新されたことを(ブロック314で)示す
図11は、リバート・データ構造60内で複製エンジン・ボリューム18からのデータ待ちであるとされている領域に対するホスト2からの書き込み要求に対処するようスプリッタ10によって実行される動作の実施形態を示す。スプリッタ10が、リバート・データ構造60内で更新されていないとされているプライマリ・ボリューム位置に対する書き込み要求を(ブロック330で)受信すると、スプリッタ10は、図9のブロック264〜270での動作を(ブロック332で)実行して新たな書き込みデータでデータを更新する。スプリッタ10はさらに、更新されたデータが複製エンジン12へコピーされるようされていれば、そのデータと共に複製メッセージを複製エンジン12へ送信する。
図12は、複製エンジン・ボリューム18をホスト2に対して公開している仮想プライマリ・ボリューム4を管理するためにスプリッタ10および複製エンジン12によって実行される動作の実施形態を示す。複製エンジン12(またはその他何らかのコンポーネント)は、スプリッタ10が複製エンジン・ボリューム18の仮想プライマリ・ボリュームを作成することを要求する複製コマンド98を(ブロック350で)生成し、スプリッタ10へ送信する。複製エンジンのプライマリ・ボリューム・メタデータ28は、仮想プライマリ・ボリューム72、仮想プライマリ・ボリューム72を介して公開されている対応する複製エンジン・ボリューム74、および仮想モード78を示すとよい。仮想プライマリ・ボリュームを作成するためのコマンドを(ブロック352で)受信すると、スプリッタ10は、プライマリ・ボリューム52が仮想であることを示すよう仮想モード62が設定されている新たな仮想プライマリ・ボリューム52を示すプライマリ・ボリューム・メタデータ26を作成することによって、仮想プライマリ・ボリュームを(ブロック354で)作成する。スプリッタ10は(ブロック356で)、要求された仮想プライマリ・ボリュームが作成されたことを示す複製メッセージ98を返す。
スプリッタ10が仮想モード62でされているプライマリ・ボリュームに宛てられた読み取り/書き込み要求を(ブロック358で)受信すると、スプリッタ10は(ブロック360で)仮想プライマリ・ボリュームの読み取り/書き込み要求を備えたコマンド98を生成して、複製エンジン12へ送信する。複製エンジン12は(ブロック362で)コマンドを受信して、プライマリ・ボリューム72に関連付けられるとメタデータ28においてされている対応する複製エンジン・ボリューム18に対して(ブロック364で)読み取り/書き込み要求を実行する。複製エンジン12は、複製エンジン・ボリューム18に対して読み取り/書き込み要求を実行するのに応答して、返送データおよび完了あるいはそのいずれかを含んでいるコマンド98を(ブロック366で)生成してスプリッタ10へ送信する。スプリッタ10は返送データまたは完了を、要求しているホスト2に(ブロック368で)転送する。
記載されている複数の実施形態は、プライマリ・ボリュームへのアクセスを管理するストレージ・コントローラ内のスプリッタと、複製エンジン・ボリュームへのアクセスを管理する複製エンジンとの間のデータ転送動作を可能にする技術を提供する。記載された複数の実施形態は、スプリッタが、複製コマンドを実装する種々の複製エンジンと通信するための技術を提供する。複製エンジン10は、プライマリ・ボリュームへの書き込みを複製エンジン・ボリュームに分割する、ストレージ・コントローラ内のスプリッタのコピー・サービスを呼び出すことができる。
実施形態のさらなる詳細
記載された動作は、ソフトウェア、ファームウェア、ハードウェアまたはその任意の組み合わせを作り出す標準のプログラミング技術およびエンジニアリング技術あるいはそのいずれかを使用して、方法、装置またはプログラムとして実装されるとよい。記載された動作は、「コンピュータ可読媒体」内に保持されるコードとして実装されてもよく、その場合、プロセッサがこのコンピュータ可読媒体からコードを読み取り実行するとよい。コンピュータ可読媒体は、磁気ストレージ媒体(例えばハード・ディスク・ドライブ、フレキシブル・ディスク、テープなど)、光学ストレージ(CD‐ROM、DVD、光ディスクなど)、揮発性および不揮発性メモリ・デバイス(例えばEEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ・メモリ、ファームウェア、プログラマブル論理など)などの媒体を含み得る。記載されている動作を実装するコードはさらに、ハードウェア論理(例えば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA:Programmable Gate Array)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)など)において実装され得る。さらに、記載されている動作を実装するコードは、「伝送信号」において実装されてもよく、その場合、伝送信号は、空間または光ファイバ、銅線などの伝送媒体中を伝播するとよい。コードまたは論理が符号化される伝送信号はさらに、無線信号、衛星伝送、電波、赤外線信号、Bluetooth(R)などを含み得る。コードまたは論理が符号化される伝送信号は、送信局により伝送され、受信局により受信されることが可能であり、伝送信号に符号化されたコードまたは論理は、復号されて、受信局および送信局または受信デバイスおよび送信デバイスにおいてハードウェアまたはコンピュータ可読媒体に格納されるとよい。「プログラム」は、コードを実装することができるコンピュータ可読媒体、ハードウェア論理および伝送信号あるいはそのいずれかを含む。動作の、記載されている複数の実施形態を実装するコードが符号化されるデバイスは、コンピュータ可読媒体またはハードウェア論理を含み得る。言うまでもなく、当業者には当然のことながら、本発明の範囲から逸脱することなくこの構成に多数の変更が加えられてよく、プログラムは、当技術分野で既知の適切な情報保持媒体を含めばよい。
「実施形態(an embodiment)」、「実施形態(embodiment)」、「複数の実施形態(embodiments)」、「実施形態(the embodiment)」、「複数の実施形態(the embodiments)」、「1つ以上の実施形態(one or more embodiments)」、「いくつかの実施形態(some embodiments)」および「一実施形態(one embodiment)」という言葉は、明確な他の規定がない限り、「本発明(単数または複数)の1つ以上の(しかしすべてではない)実施形態」を指す。
「含んでいる(including)」、「含む(comprising)」、「有する(having)」という言葉およびその変形は、明確な他の規定がない限り、「含むがこれに限定されるものではない」という意味である。
列挙された項目のリストは、明確な他の規定がない限り、その項目のいずれかまたはすべてが相互排他的であることを示唆するものではない。
「a」、「an」および「the」という言葉は、明確な他の規定がない限り、「1つ以上」を意味する。
相互通信しているデバイスは、明確な他の規定がない限り、連続的に相互通信している必要はない。さらに、相互通信しているデバイスは、直接通信しても、1つ以上の中間物を介して間接的に通信してもよい。
相互通信するいくつかのコンポーネントを用いる実施形態の記載は、当該のコンポーネントすべてが必須であることを示唆するものではない。逆に、本発明の、考えられる幅広い種類の実施形態を示すために、様々な任意選択のコンポーネントが記載されている。
さらに、工程ステップ、方法ステップ、アルゴリズムまたは同様のものは、連続した順序で記載されていることもあるが、そのような工程、方法およびアルゴリズムは、他の順序で動作するよう構成されてもよい。言い換えれば、記載され得る各ステップのいかなる順番も順序も、必ずしもそのステップがその順序で実行されるという要件を表すわけではない。本願明細書に記載されている工程のステップは、実用的な任意の順序で実行されればよい。さらに、いくつかのステップが同時に実行されてもよい。
当然のことながら、本願明細書で単一のデバイスまたは物が記載されている場合、単一のデバイス/物の代わりに2つ以上のデバイス/物が(協働するか否かを問わず)使用されてもよい。同様に、当然のことながら、本願明細書で2つ以上のデバイスまたは物が記載されている場合(協働するか否かを問わず)、2つ以上のデバイスまたは物の代わりに単一のデバイス/物が使用されてもよく、示されている数のデバイスまたはプログラムの代わりに異なる数のデバイス/物が使用されてもよい。デバイスの機能性および特徴あるいはそのいずれかは、当該の機能性/特徴を有するように明確に記載されていない1つ以上の他のデバイスによって代わりに具現化されてもよい。したがって、本発明の他の実施形態が、そのデバイスそのものを含んでいる必要はない。
図5〜12示されている動作は、特定の順序で生じる特定のイベントを示す。別の実施形態では、特定の動作が、異なる順序で実行されても、変更されても、または除かれてもよい。さらに、上記の論理に複数のステップが追加されてもよく、それでも記載の実施形態に適合する。さらに、本願明細書に記載されている動作は、連続して生じても、特定の動作が並行して処理されてもよい。さらに、各動作が単一の処理ユニットによって実行されても、分散型の処理ユニットにより実行されてもよい。
図13は、全体的または部分的にデバイス2、8、および14(図1)において実装されるとよいコンピューティング・システム・アーキテクチャ400の実施形態を示す。アーキテクチャ400は、1つ以上のプロセッサ402(例えばマイクロプロセッサ)、メモリ404(例えば揮発性メモリ・デバイス)、およびストレージ406(例えば磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性ストレージ)を含んでいればよい。ストレージ406は、内部ストレージ・デバイス、または接続されたストレージもしくはネットワーク・アクセス可能なストレージを含むとよい。ストレージ406内のプログラムは、当技術分野で既知の方法で、メモリ404にロードされてプロセッサ(単数または複数)402によって実行される。このアーキテクチャはさらに、ネットワークを介した通信を可能にする1つ以上のアダプタ408を含んでいる。入力デバイス410は、プロセッサ402にユーザ入力を提供するために使用されるとよく、キーボード、マウス、ペン・スタイラス、マイクロホン、タッチ・センシティブ・ディスプレイ画面、またはその他、当技術分野で既知の任意の起動または入力メカニズムを含んでいればよい。出力デバイス412は、プロセッサ402、またはディスプレイ・モニタ、プリンタ、ストレージなどの他のコンポーネントから伝送される情報をレンダリングすることができる。

Claims (10)

  1. ストレージ・コントローラによって実行されるデータ複製方法であって、前記ストレージ・コントローラは1つ以上の複製エンジンを備えている1以上の複製デバイスにネットワークを介して接続されており、又は、前記ストレージ・コントローラが前記1以上の複製エンジンを備えており、
    前記ストレージ・コントローラは、当該ストレージ・コントローラにより管理されている1以上のストレージ・デバイス(以下、プライマリ・ボリュームという)のうちの1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ(以下、第1のプライマリ・ボリューム・メタデータという)を有しており、当該第1のプライマリ・ボリューム・メタデータは、1つのプライマリ・ボリュームを特定する情報と、前記1以上の複製エンジンのうちの特定された複製エンジンを示す情報と、前記特定された複製エンジンにより管理されている1以上のストレージ・デバイス(以下、複製エンジン・ボリュームという)に前記プライマリ・ボリュームからのデータが複製されるべきかどうかを示す複製フラグとを有しており、
    前記複製エンジンは、1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ(以下、第2のプライマリ・ボリューム・メタデータという)を有しており、当該第2のプライマリ・ボリューム・メタデータは、1つのプライマリ・ボリュームを示す情報と、当該1つのプライマリ・ボリュームのデータを格納する為に使用される複製エンジン・ボリュームを示す情報と、前記1つのプライマリ・ボリュームのデータを前記複製エンジン・ボリュームに格納する為に前記複製エンジンが呼び出すコピー・サービスを示す情報とを有しており、
    前記ストレージ・コントローラは、当該ストレージ・コントローラに実装されており且つ前記プライマリ・ボリュームに宛てられた書き込みデータを管理するためのスプリッタを使用して、
    複製エンジンと通信を開始するためのコマンドを受信するステップと、
    1つのプライマリ・ボリュームのための複製コマンドを受信するステップと、
    前記1つのプライマリ・ボリュームが複製対象であることを、当該1つのプライマリ・ボリュームに対して保持する前記第1のプライマリ・ボリューム・メタデータ中の前記複製フラグで示すステップと、
    前記複製対象として示されている前記1つのプライマリ・ボリューム(以下、ターゲット・プライマリ・ボリュームという)にデータを書き込むための書き込み要求を受信するステップと、
    前記書き込み要求内の前記データを、前記ターゲット・プライマリ・ボリュームに書き込むステップと、
    前記書き込み要求内の前記データを、前記第1のプライマリ・ボリューム・メタデータ中に示されている複製エンジンへ送信するステップであって、前記複製エンジンは、前記第2のプライマリ・ボリューム・メタデータ中に示されている複製エンジン・ボリュームに前記データを書き込むために、前記第2のプライマリ・ボリューム・メタデータ中に示されているコピー・サービス機能且つ前記ターゲット・プライマリ・ボリュームに関連付けられたコピー・サービス機能を実行する、前記送信するステップと
    を実行することを含む、前記方法。
  2. 前記複製エンジンは、種々のベンダからの異種のコピー機能をそれぞれ実装し、
    前記ストレージ・コントローラが、前記スプリッタを使用して、種々の前記複製エンジンとの通信に同じコマンドと、標準ストレージ通信プロトコルとを使用して、前記異種のコピー機能を呼び出すことができる、請求項1に記載の方法。
  3. 前記ストレージ・コントローラが、前記スプリッタを使用して、
    前記複製エンジンとの通信における障害を検出するステップと、
    前記検出された障害の後に生じる前記プライマリ・ボリュームに対する書き込みデータについての情報を、前記第1のプライマリ・ボリューム・メタデータ中のデータ構造内に記録するステップと、
    前記データ構造内に示された前記書き込みデータについての情報の送信要求を前記複製エンジンから受信するステップと、
    前記書き込みデータについての前記情報を前記複製エンジンへ送信するステップであって、前記前記書き込みデータについての情報は前記プライマリ・ボリュームの前記書き込みデータが書き込まれた領域を示す、前記送信するステップと、
    前記情報を前記複製エンジンへ送信することに応答して、前記データ構造を消去するステップと
    をさらに実行することを含む、請求項1または2に記載の方法。
  4. 前記ストレージ・コントローラが、前記スプリッタを使用して、
    前記書き込みデータについての前記情報に対応する前記プライマリ・ボリューム中の前記書き込みデータの送信要求を前記複製エンジンから受信するステップと、
    前記書き込みデータについての前記情報に対応する前記プライマリ・ボリューム中の前記書き込みデータを前記複製エンジンへ送信するステップと
    をさらに実行することを含む、請求項3に記載の方法。
  5. 前記ストレージ・コントローラが、前記スプリッタを使用して、
    前記複製エンジン・ボリュームから前記プライマリ・ボリュームにコピーする前記複製エンジン・ボリュームの領域のリストを前記複製エンジンから受信するステップと、
    前記リスト内に示されているデータの送信を前記複製エンジンに要求するステップと、
    前記リスト内に示されているデータを前記複製エンジンから受信するステップと、
    前記複製エンジンから受信された前記データを前記プライマリ・ボリュームに書き込むステップと、
    前記複製エンジンから受信された前記データを前記プライマリ・ボリュームに書き込むのに応答して、前記リスト内に示されている前記データが前記プライマリ・ボリュームに書き込まれたことを前記第1のプライマリ・ボリューム・メタデータ中に示すステップと
    をさらに実行することを含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記ストレージ・コントローラが、前記スプリッタを使用して、
    複製エンジン・ボリュームに関連付けられた仮想プライマリ・ボリュームを作成するためのコマンドを前記複製エンジンから受信するステップと、
    ホストがアクセス可能な仮想プライマリ・ボリュームを作成するステップと、
    前記仮想プライマリ・ボリュームに宛てられた入出力(I/O)要求を受信するステップと、
    前記仮想プライマリ・ボリュームに宛てられた前記I/O要求を前記複製エンジンへ送信するステップと
    をさらに実行することを含む、請求項1〜のいずれか1項に記載の方法。
  7. 前記複製エンジン及び前記ストレージ・デバイスは、伝送のための標準ストレージ通信プロトコル・パッケージ中に複数のコマンド及びデータをパッケージ化することによって通信する、請求項1〜のいずれか1項に記載の方法。
  8. 複数のプライマリ・ボリュームに対するアクセスを管理し、複製エンジンと通信しているシステムであって、
    プライマリ・ボリューム・メタデータを有するコンピュータ可読媒体と、
    ストレージ・コントローラであって、前記ストレージ・コントローラは1つ以上の複製エンジンを備えている1以上の複製デバイスにネットワークを介して接続されており、又は、前記ストレージ・コントローラが前記1以上の複製エンジンを備えており、前記ストレージ・コントローラは、当該ストレージ・コントローラにより管理されている1以上のストレージ・デバイス(以下、プライマリ・ボリュームという)のうちの1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ(以下、第1のプライマリ・ボリューム・メタデータという)を有しており、当該第1のプライマリ・ボリューム・メタデータは、1つのプライマリ・ボリュームを特定する情報と、前記1以上の複製エンジンのうちの特定された複製エンジンを示す情報と、前記特定された複製エンジンにより管理されている1以上のストレージ・デバイス(以下、複製エンジン・ボリュームという)に前記プライマリ・ボリュームからのデータが複製されるべきかどうかを示す複製フラグとを有しており、前記複製エンジンは、1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ(以下、第2のプライマリ・ボリューム・メタデータという)を有しており、当該第2のプライマリ・ボリューム・メタデータは、1つのプライマリ・ボリュームを示す情報と、当該1つのプライマリ・ボリュームのデータを格納する為に使用される複製エンジン・ボリュームを示す情報と、前記1つのプライマリ・ボリュームのデータを前記複製エンジン・ボリュームに格納する為に前記複製エンジンが呼び出すコピー・サービスを示す情報とを有している、前記ストレージ・コントローラと
    を備えており、
    前記ストレージ・コントローラは、当該ストレージ・コントローラに実装されており且つ前記プライマリ・ボリュームに宛てられた書き込みデータを管理するためのスプリッタを実装しており、
    前記動作は、前記ストレージ・コントローラが、前記スプリッタを使用して、請求項1〜のいずれか一項に記載の方法の各ステップを実行することによって行われる、前記システム。
  9. 複数のプライマリ・ボリュームに対するアクセスを管理し、複製エンジンと通信しているシステムであって、
    プライマリ・ボリューム・メタデータを有するコンピュータ可読媒体と、
    ストレージ・コントローラと、
    前記ストレージ・コントローラにネットワークを介して接続された又は前記ストレージ・コントローラに備えられている1以上の複製デバイスであって、前記複製デバイスは1つ以上の複製エンジンを備えている、前記複製デバイスと、
    前記ストレージ・コントローラにより管理されている1以上のストレージ・デバイス(以下、プライマリ・ボリュームという)と、
    前記複製エンジンにより管理されている1以上のストレージ・デバイス(以下、複製エンジン・ボリュームという)と、
    を備えており、
    前記ストレージ・コントローラは、前記プライマリ・ボリュームのうちの1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ(以下、第1のプライマリ・ボリューム・メタデータという)を有しており、当該第1のプライマリ・ボリューム・メタデータは、1つのプライマリ・ボリュームを特定する情報と、前記1以上の複製エンジンのうちの特定された複製エンジンを示す情報と、前記特定された複製エンジンにより管理されている1以上の複製エンジン・ボリュームに前記プライマリ・ボリュームからのデータが複製されるべきかどうかを示す複製フラグとを有しており、
    前記複製エンジンは、1つのプライマリ・ボリュームに対して保持するプライマリ・ボリューム・メタデータ(以下、第2のプライマリ・ボリューム・メタデータという)を有しており、当該第2のプライマリ・ボリューム・メタデータは、1つのプライマリ・ボリュームを示す情報と、当該1つのプライマリ・ボリュームのデータを格納する為に使用される複製エンジン・ボリュームを示す情報と、前記1つのプライマリ・ボリュームのデータを前記複製エンジン・ボリュームに格納する為に前記複製エンジンが呼び出すコピー・サービスを示す情報とを有しており、
    前記ストレージ・コントローラは、当該ストレージ・コントローラに実装されており且つ前記プライマリ・ボリュームに宛てられた書き込みデータを管理するためのスプリッタを実装しており、
    前記動作は、前記ストレージ・コントローラが、前記スプリッタを使用して、請求項1〜のいずれか一項に記載の方法の各ステップを実行することによって行われる、前記システム。
  10. コンピュータに請求項1〜のいずれか1項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
JP2010520558A 2007-08-16 2008-08-12 ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラム Active JP5263902B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/840,169 US8131957B2 (en) 2007-08-16 2007-08-16 Splitting writes between a storage controller and replication engine
US11/840,169 2007-08-16
PCT/EP2008/060573 WO2009021949A2 (en) 2007-08-16 2008-08-12 Splitting writes between a storage controller and replication engine

Publications (2)

Publication Number Publication Date
JP2010537267A JP2010537267A (ja) 2010-12-02
JP5263902B2 true JP5263902B2 (ja) 2013-08-14

Family

ID=40010814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010520558A Active JP5263902B2 (ja) 2007-08-16 2008-08-12 ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラム

Country Status (5)

Country Link
US (2) US8131957B2 (ja)
JP (1) JP5263902B2 (ja)
KR (1) KR20100061457A (ja)
CN (1) CN101815986B (ja)
WO (1) WO2009021949A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024534B2 (en) * 2007-08-16 2011-09-20 International Business Machines Corporation Replication engine communicating with a splitter to split writes between a storage controller and replication engine
US8131957B2 (en) 2007-08-16 2012-03-06 International Business Machines Corporation Splitting writes between a storage controller and replication engine
US9152515B2 (en) 2007-11-27 2015-10-06 International Business Machines Corporation Apparatus and method for managing storage copy services systems
US8230187B1 (en) * 2009-07-06 2012-07-24 Symantec Corporation Techniques for integrating backup modules with virtualized storage
KR101144383B1 (ko) 2010-06-28 2012-05-10 에코플라스틱 주식회사 차량의 컵 홀더
US9910739B1 (en) * 2011-03-31 2018-03-06 EMC IP Holding Company LLC Inverse star replication
US9250999B1 (en) * 2013-11-19 2016-02-02 Google Inc. Non-volatile random access memory in computer primary memory
US9489275B2 (en) 2014-10-02 2016-11-08 Netapp, Inc. Techniques for error handling in parallel splitting of storage commands
US10459847B1 (en) 2015-07-01 2019-10-29 Google Llc Non-volatile memory device application programming interface
US10019502B2 (en) * 2015-11-27 2018-07-10 Netapp Inc. Non-disruptive baseline and resynchronization of a synchronous replication relationship
EP4081888A4 (en) * 2019-12-27 2023-09-06 Hitachi Vantara LLC DYNAMIC ADAPTIVE PARTITION SPLITTING

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680580A (en) 1995-02-28 1997-10-21 International Business Machines Corporation Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request connect frame in response to the setting bit
US5860580A (en) * 1996-05-03 1999-01-19 Illinois Tool Works Inc. Piston retention device for combustion-powered tools
JP2000339104A (ja) * 1999-03-19 2000-12-08 Hitachi Ltd ディスクサブシステム及びデータ複写方法。
EP1292893B1 (en) * 2000-05-23 2008-09-03 Sepaton, Inc. Method and apparatus for data replication using scsi over tcp/ip
US6941490B2 (en) * 2000-12-21 2005-09-06 Emc Corporation Dual channel restoration of data between primary and backup servers
US6728849B2 (en) * 2001-12-14 2004-04-27 Hitachi, Ltd. Remote storage system and method
US7685261B1 (en) * 2001-06-29 2010-03-23 Symantec Operating Corporation Extensible architecture for the centralized discovery and management of heterogeneous SAN components
US6848021B2 (en) * 2001-08-01 2005-01-25 International Business Machines Corporation Efficient data backup using a single side file
JP4060552B2 (ja) * 2001-08-06 2008-03-12 株式会社日立製作所 記憶装置システム、および、記憶装置システムの構成方法
US20030126247A1 (en) * 2002-01-02 2003-07-03 Exanet Ltd. Apparatus and method for file backup using multiple backup devices
US6880052B2 (en) * 2002-03-26 2005-04-12 Hewlett-Packard Development Company, Lp Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes
JP4122956B2 (ja) * 2002-12-09 2008-07-23 日本電気株式会社 複製ボリューム生成方法およびディスク装置
US6941396B1 (en) * 2003-02-19 2005-09-06 Istor Networks, Inc. Storage controller redundancy using bi-directional reflective memory channel
JP2004259079A (ja) * 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
US9712613B2 (en) * 2003-04-29 2017-07-18 Brocade Communications Systems, Inc. Fibre channel fabric copy service
US7043665B2 (en) * 2003-06-18 2006-05-09 International Business Machines Corporation Method, system, and program for handling a failover to a remote storage location
US7130975B2 (en) * 2003-06-27 2006-10-31 Hitachi, Ltd. Data processing system
JP4479173B2 (ja) 2003-06-27 2010-06-09 ダイキン工業株式会社 表示システム、表示プログラム、表示方法
JP4374953B2 (ja) * 2003-09-09 2009-12-02 株式会社日立製作所 データ処理システム
JP4307202B2 (ja) * 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
US7133985B1 (en) * 2003-09-29 2006-11-07 Emc Corporation System and method for managing data associated with copying and replication procedures in a data storage environment
WO2005048124A2 (en) 2003-11-04 2005-05-26 Constant Data, Inc. Hybrid real-time data replication
US7917711B2 (en) * 2003-11-14 2011-03-29 International Business Machines Corporation System, apparatus, and method for automatic copy function selection
JP2005217815A (ja) * 2004-01-30 2005-08-11 Hitachi Ltd パス制御方法
GB0414151D0 (en) * 2004-06-24 2004-07-28 Ibm Involving a secondary storage system in a data transfer decision
US7650356B2 (en) * 2004-08-24 2010-01-19 Microsoft Corporation Generating an optimized restore plan
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
US20060182050A1 (en) * 2005-01-28 2006-08-17 Hewlett-Packard Development Company, L.P. Storage replication system with data tracking
US7519851B2 (en) * 2005-02-08 2009-04-14 Hitachi, Ltd. Apparatus for replicating volumes between heterogenous storage systems
US7213116B2 (en) 2005-03-24 2007-05-01 Hitachi, Ltd. Method and apparatus for mirroring objects between storage systems
US7404051B2 (en) * 2005-04-18 2008-07-22 Hitachi, Ltd. Method for replicating snapshot volumes between storage systems
JP4945118B2 (ja) * 2005-11-14 2012-06-06 株式会社日立製作所 記憶容量を効率的に使用する計算機システム
US8131957B2 (en) 2007-08-16 2012-03-06 International Business Machines Corporation Splitting writes between a storage controller and replication engine
US8024534B2 (en) * 2007-08-16 2011-09-20 International Business Machines Corporation Replication engine communicating with a splitter to split writes between a storage controller and replication engine

Also Published As

Publication number Publication date
US8341366B2 (en) 2012-12-25
US20090049251A1 (en) 2009-02-19
CN101815986B (zh) 2013-04-03
WO2009021949A3 (en) 2009-04-16
US20120124310A1 (en) 2012-05-17
WO2009021949A2 (en) 2009-02-19
JP2010537267A (ja) 2010-12-02
KR20100061457A (ko) 2010-06-07
CN101815986A (zh) 2010-08-25
US8131957B2 (en) 2012-03-06

Similar Documents

Publication Publication Date Title
JP5263902B2 (ja) ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラム
JP5147941B2 (ja) 異なるネットワークを介した1次ストレージから2次ストレージへの書き込みコピーを管理するための方法、システム、およびコンピュータ・プログラム
US8055865B2 (en) Managing write requests to data sets in a primary volume subject to being copied to a secondary volume
KR100962883B1 (ko) 소스 데이터를 타겟 데이터로 이전하는 방법, 시스템 및제조물
US7287045B2 (en) Backup method, storage system, and program for backup
JP4776342B2 (ja) ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
US20030149736A1 (en) Method and system for transporting data content on a storage area network
AU2016203273A1 (en) A method for a source storage device sending data to a backup storage device for storage, and storage device
JP5853649B2 (ja) ストレージ装置,制御装置及びプログラム
JP2005031716A (ja) データバックアップの方法及び装置
US9720621B2 (en) Storage controller, storage system, and non-transitory computer-readable storage medium having stored therein control program
US11579983B2 (en) Snapshot performance optimizations
JP2008009978A (ja) 第1記憶場所から第2記憶場所に論理ボリュームを再配置するための方法、コンピュータ・システム、及びプログラム
US12019521B2 (en) Logical backup using a storage system
US8024534B2 (en) Replication engine communicating with a splitter to split writes between a storage controller and replication engine
JP2005234860A (ja) バージョン管理システム、バージョン管理サーバ装置、及び記憶デバイス制御装置
US7587466B2 (en) Method and computer system for information notification
JP4072963B2 (ja) ストレージ・ボリュームの整合したコピーのための方法、システム、および製品
JP2002312251A (ja) データの複製方法及び情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120918

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130314

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130314

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130412

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130412

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130425

R150 Certificate of patent or registration of utility model

Ref document number: 5263902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250