[go: up one dir, main page]

JP4887618B2 - ストレージシステムとそのレプリケーション方法並びにプログラム - Google Patents

ストレージシステムとそのレプリケーション方法並びにプログラム Download PDF

Info

Publication number
JP4887618B2
JP4887618B2 JP2004336180A JP2004336180A JP4887618B2 JP 4887618 B2 JP4887618 B2 JP 4887618B2 JP 2004336180 A JP2004336180 A JP 2004336180A JP 2004336180 A JP2004336180 A JP 2004336180A JP 4887618 B2 JP4887618 B2 JP 4887618B2
Authority
JP
Japan
Prior art keywords
instruction
storage
transfer
replication
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004336180A
Other languages
English (en)
Other versions
JP2006146580A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2004336180A priority Critical patent/JP4887618B2/ja
Priority to US11/282,049 priority patent/US7698308B2/en
Publication of JP2006146580A publication Critical patent/JP2006146580A/ja
Application granted granted Critical
Publication of JP4887618B2 publication Critical patent/JP4887618B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/2066Optimisation of the communication load
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes

Landscapes

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

Description

本発明は、レプリケーションを行うシステム、レプリケーション方法およびレプリケーション用プログラムに関し、特に、冗長なデータ転送量の削減に好適とされる、レプリケーションシステム、レプリケーション方法およびレプリケーション用プログラムに関する。
従来から、災害等が発生しても機能を維持するために正常系(あるいは稼働系)サイトと待機系サイトを備えたコンピュータシステムが用いられている。このようなコンピュータシステムをレプリケーションシステムと呼ぶ。例えば、通常には正常系サイトがシステム機能を提供する動作をしており、正常系サイトが正常に機能できないときには、その正常系サイトに代わって待機系サイトが動作する。
コンピュータシステムとしての機能を提供するために、正常系サイトと待機系サイトは各々にデータを格納するためのストレージを有している。そして、レプリケーションシステムでは、待機系サイトが正常系サイトに代わって動作できるように、正常系サイトのストレージ内のデータが待機系サイトのストレージに複製され、保持される(例えば、非特許文献1、2参照)。この処理は、「レプリケーション」と呼ばれている。
レプリケーションシステムでは、正常系サイトと待機系サイトが「同期」している場合(以下、「同期レプリケーション」という)と、「非同期」の場合(以下、「非同期レプリケーション」という)がある。
同期レプリケーションでは、正常系サイトにおいてストレージにWRITE(データの書き込み)があると、それを契機に、待機系サイトのストレージにも、同じデータのWRITEが行われる。一方、非同期レプリケーションでは、待機系サイトのストレージに対するWRITEは、正常系サイトに対するWRITEを契機とせず、事後的に行われる。
現在、ネットワークの利用帯域を減らす方法としては、同一のブロックに対する更新データを、最後の更新データのみ転送する方法がある(非特許文献1)。また、正常系と待機系のストレージの差分のみを転送してコピーを行うことによっても、完全なデータコピーを行う事と比較してネットワーク上を流れるデータの量を減らす事が出来る。しかし、これらの方式では、ある一定時間の間に同じ領域に対して更新が発生した場合に対してのみしか、データ量を減らすことができない。物理的あるいは論理的に異なる領域に対して行われた更新データに対してはデータ転送量を減らすことができない。
また、データベース等のミドルウェア層によってレプリケーションを実現する方式では、REDOログを転送し、データファイルを待機系サイトで作成する方法がある(非特許文献3等)。このような方式を用いても、レプリケーションすることにより、待機系サイトに転送する必要の無いデータを転送することを不要とし、ネットワーク上を流すデータの量を削減する事が出来る。しかし、待機系サイトで、ミドルウェアを動作させる為の計算機能力、ソフトウエア、ソフトウェアライセンス等が必要になってしまう。また、ホストでミドルウェア、あるいはミドルウェア中のレプリケーション機能を動作させることにより、正常系サイト上で動作しているアプリケーションの性能が低下する可能性がある。また、稼働するアプリケーションはそのミドルウェアを利用して作成しなければならない、という問題点がある。従って、既存のシステムをミラーリングする際には、ミドルウェアを新たに導入する為にシステムを改変しなければならない、という問題もある。
なお、従来の刊行物として、例えば特許文献1には、DB表データコピーに要するデータ転送量を削減し、コピー先のDB表として整合性のとれたデータであることを保証する方法とシステムが開示されており、ログの使用によってキャッシュ上にバッファリングより少ない情報量でリモートへコピーすべきデータをバッファリングできることが記載されている。しかしながら、特許文献1に記載の方法とシステムおいて、異なる箇所に同一内容のデータが書き込まれる場合には、そのままデータを転送する必要がある。
また、例えば特許文献2には、中央処理装置からのフレームをマスタ側ディスク装置内のヘッダ変換バッファに一旦蓄積し、フレームのヘッダ部をリモート側ディスク装置送信用に変換して送信するシステムが開示されている。
さらに、特許文献3には、プライマリサイトのディスクアレイ装置では、コンセントレータのコピー手段が、キャッシュ上の更新データを送信バッファに先頭から順にパッキングするようにコピーし、送信手段が格納バッファのパッキングデータをセカンダリサイトのディスクアレイ装置に転送し、セカンダリサイトのディスクアレイ装置では、受信手段が転送されてきたパッキングデータ内の更新データをパッキング順に多重でキャッシュにコピーする構成が開示されている。この場合、更新データは全て転送されることになる。
さらにまた特許文献4には、マスターファイル及び複製ファイルの多重化の際の通信量を低減するシステムが開示されている。このシステムでは、マスター領域から読み込んだマスターファイルをキャッシュ領域にキャッシュし、キャッシュ領域の変更されたデータ部分をマスター領域の対応する部分に転送し、変更された部分は、マスター領域とキャッシュ領域で多重化され、変更されていないデータ領域については、マスタ領域と複製領域で多重化される。最後に変更されていないデータ部分をキャッシュ領域に転送し、キャッシュ領域に複製データを統合して複製領域とする。複製ファイル作成時、マスター領域にのみデータを転送すればよく、多重化に際して通信量を削減することができるというものである。
イーエムシー・コーポレーション、EMC SRDF,SRDF/A[ONLINE][平成16年7月28日検索]、インターネット< URL http://japan.emc.com/local/ja/jp/products/networking/srdf.jsp > 日本電気株式会社、SYSTEMGLOBE REMOTEDATAREPLICATION[ONLINE][平成16年7月28日検索]、インターネット< URL http://www.sw.nec.co.jp/products/istorage/product/software/rdr/index.shtml > オラクル、ORACLE DATAGUARD 10G ホワイトペーパー[ONLINE][平成16年7月28日]、インターネット< URL: http://otn.oracle.co.jp/cgi-bin/otn/auth_r.cgi?path=/download/products/database/oracle10g/pdf/twp_ha_dataguardoverview_10gr1_1103.pdf > 特開2000−347917号公報 特開2003−085017号公報 特開2003−167684号公報 特開2003−323328号公報
第1の問題点は、レプリケーションシステムに太い帯域をもったネットワークが必要である、ということである。その理由は、レプリケーションシステムでは、正常系サイトと待機系サイトのストレージの複製を、ネットワークを介して行う場合、正常系サイトのストレージに対して変更されたデータ全てを許容されうる時間内にネットワークを介して伝送する必要があり、更新密度が高い状態でも、許容時間内で伝送が完了できる帯域の回線を用意しなければならないからである。
第2の問題点は、保存するデータの内容が同じ場合であっても、ストレージ中の異なる場所に保存する場合には、同じデータを複数回転送しなければならない、ということである。その理由は、サーバからストレージに対して、同じ内容のデータを異なる場所に書き込む場合であっても、書き込む回数分、データを書き込む命令を発行しなければならず、書き込み命令を受け取ったストレージは、それぞれの命令を個別に処理をして、複数回同じデータを転送する、構成とされているためである。
第3の問題点は、既にストレージ内に閉じてデータを複製する場合に、そのストレージがレプリケーションを行っている場合に、バックアップサイトのストレージにも存在するデータを、ネットワークを介してデータ転送しなければならない、ということである。その理由は、ストレージ内に閉じた複製処理を実行するために、サーバからは、複数の命令の組み合わせとして発行しなければならず、ストレージは、それを保持しているデータの複製処理であることを認識できず、書き込み処理と認識し、再度、データ転送を行うことになるためである。
第4の問題点は、転送量を削減したレプリケーションシステムを実現するには、転送量を削減する方式を実現する為のストレージ装置を必要とする、ということである。その理由は、ストレージ装置に対して発行される命令を解釈して処理をする為に、独自の処理が出来る仕組みをストレージ装置側に必要としたためである。
第5の問題点は、サーバ上で動作するアプリケーションの意図をストレージが知ることが出来ない、ということである。その理由は、サーバがストレージに指示できる内容が書き込み・読み込み等に限られるためである。
第6の問題点は、RAID5におけるパリティのような復元のためのデータが付与された書き込み命令のレプリケーションを行う際に、付与したデータの分だけ、転送量が増大してしまう、ということである。その理由は、復元のためのデータが付与された書き込み命令のデータを、全て、レプリケーション先のストレージシステムに対して転送する構成とされているためである。
第7の問題点は、データ転送量を削減する為に書き込み命令を変換するには、サーバが発行する命令のパターンを分析し、転送用の命令に変換することが出来る命令が発行されたことをストレージが認識出来なければならない、ということである。その理由は、サーバが発行できる命令は、ストレージに対して、書き込み・読みこみ等の命令のみ発行するからである。
第8の問題点は、ストレージが決定する任意の契機でレプリケーション先にデータ転送を行なった場合、アプリケーションが被災後の処理が最小にならない、ということである。その理由は、ホスト上で動作するアプリケーションがいかなる契機でレプリケーション先にデータが転送されるか知らないためである。
したがって、本発明の主たる目的は、データの複製に要するネットワークの帯域を縮減可能とするシステムと方法及びプログラムを提供することにある。
本発明の他の目的は、保存するデータの内容が同じ場合であってもストレージ中の異なる場所に保存する時に、書き込むデータの内容を1回転送するだけで実現できるシステムと方法及びプログラムを提供することにある。
本発明のさらに他の目的は、ストレージ内に閉じてデータを複製する場合、ストレージが保持しているデータの複製処理であるとして認識し、複製処理を行う命令を送ることによって、ストレージ内に閉じてデータを複製する処理を実現可能とするシステムと方法及びプログラムを提供する事にある。
本発明のさらに他の目的は、通常のストレージ装置を利用してネットワークの転送量を削減したレプリケーションを行う事が出来る、システムと方法及びプログラムを提供する事にある。
本発明のさらに他の目的は、サーバがストレージに対して通常の書き込み・読みこみ等の命令を発行するだけで、転送量が削減されたシステムと方法及びプログラムを提供する事にある。
本発明のさらに他の目的は、RAID5におけるパリティのような復元のためのデータが付与された書き込み命令のレプリケーション処理を、レプリケーション先において復元するのに必要最小限のデータのみを転送して実現できるシステムと方法及びプログラムを提供する事にある。
本発明のさらに他の目的は、ホストが発行する命令のパターンを分析しなくても、転送量を削減するように命令を変換できるシステムと方法及びプログラムを提供する事にある。
本発明のさらに他の目的は、サーバがストレージに対して、ストレージ内の複製処理等のあらかじめ決められた命令を発行して、その命令をストレージシステムが処理をしてレプリケーションを実現するシステムと方法及びプログラムを提供する事にある。
本発明のさらに他の目的は、レプリケーション先のストレージが保有するデータを、ホスト上で動作するアプリケーションが即座に利用できる状態で保持することが出来るシステムと方法及びプログラムを提供する事にある。
本願で開示される発明は、前記目的を達成するため、概略以下の通りの構成とされる。 本発明の第1の側面(アスペクト)に係るシステムは、レプリケーション元であるストレージ(図1の2)と、レプリケーション先であるストレージ(図1の4)を備え、レプリケーション元のストレージシステムには、ストレージに対して発行された命令を一時格納するバッファリング部(図2の24)と、バッファリング部に格納された命令を転送に適した命令に変換する、転送用命令への変換部(図2の25;「転送用命令変換部」ともいう)を備え、レプリケーション先のストレージシステムには、転送用命令をストレージが実行できる命令に変換する処理を行う、実行用命令への変換部(図2の42;「実行用命令変換部」ともいう)を備える。
このような構成を採用し、転送用命令への変換部が、バッファリング部に格納されている命令群から、同じデータを複数箇所に書き込みを行う命令の組み合わせ(図8)を検出し、同じデータを複数回送らずに済む転送用命令(図9、図10)に変換する。
そして、レプリケーション元のストレージシステムは、転送用命令を転送し、レプリケーション先で、実行用命令への変換部が実行用命令に変換して、レプリケーション先のストレージに適用する。
これにより、本発明の第1、第2及び第5の目的を達成する事が出来る。
本発明の第2の側面(アスペクト)に係るシステムは、レプリケーション元であるストレージ(図1の2)とレプリケーション先であるストレージ(図1の4)を備え、レプリケーション元のストレージシステムには、ストレージに対して発行された命令を一時格納するバッファリング部(図2の24)と、バッファリング部に格納された命令を転送に適した命令に変換する転送用命令変換部(図2の25)を備える。レプリケーション先のストレージシステムには、転送用命令をストレージが実行できる命令に変換する処理を行う実行用命令変換部(図2の42)を備える。このような構成を採用し、転送用命令変換部がバッファリング部に格納されている命令群から、ストレージに既に存在するデータを書き込む命令群(図14、図15)を発見し、ストレージに既に存在するデータを利用して目的の命令を実現する転送用命令(図17、図18)に変換する。そして、レプリケーション先のストレージシステムで、実行用命令変換部が、実行用命令(図19)に変換して、レプリケーション先のストレージに適用する。これにより、本発明の第1、第3及び第5の目的を達成する事が出来る。
本発明の第3の側面(アスペクト)に係るシステムは、レプリケーション元であるストレージ(図32の2)とレプリケーション先であるストレージ(図32の4)を備え、命令受信・変換層(図32の70、80)を備える。そして、レプリケーション元の命令受信・変換層には、ストレージに対して発行された命令を一時格納するバッファリング部(図33の24)と、バッファリング部に格納された命令を転送に適した命令に変換する転送用命令変換部(図33の25)を備える。レプリケーション先のストレージシステムには、転送用命令をストレージが実行できる命令に変換する処理を行う実行用命令変換部(図33の42)を備える。このような構成を採用し、第1あるいは第2のレプリケーションシステムと同じ動作をすることによって、本発明の第1、第2、第3、第4及び第5の目的を達成する事ができる。
本発明の第4の側面(アスペクト)に係るシステムは、第1、第2及び第3のレプリケーションシステムと同じ構成を持つ。このような構成を採用し、転送用命令変換部がバッファリング部に存在する冗長化情報が付与された書き込み命令(図12)を、レプリケーション先で復元できるデータを削除した転送用命令(図13)に変換してレプリケーション先のストレージシステムに転送する。そして、レプリケーション先のストレージシステムで転送用命令を元の書き込み命令に復元し、適用処理を行う。これにより、本発明の第1、第5及び第6の目的を達成する事ができる。
本発明の第5の側面(アスペクト)に係るシステムは、レプリケーション元であるストレージ(図1の2)とレプリケーション先であるストレージ(図1の4)を備える。そして、レプリケーション元のストレージシステムには、ストレージに対して発行された命令を一時格納するバッファリング部(図16の24)と、バッファリング部に格納された命令を転送に適した命令に変換する転送用命令変換部(図16の25)、ホスト1に接続された記憶部(図16の13)を備える。レプリケーション先のストレージシステムには、転送用命令をストレージが実行できる命令に変換する処理を行う実行用命令変換部(図16の42)を備える。このような構成を採用し、転送用命令変換部がホスト1に接続された記憶部あるいはストレージ2の記憶部に対して書き込まれるシステムログ情報をモニタリングして、転送量を削減できる処理が行われるかどうかを検知する。そして、その情報を利用して、転送用命令への変換を行う。これにより、本発明の第7の目的を達成する事ができる。
本発明の第6の側面(アスペクト)に係るシステムは、レプリケーション元であるストレージ(図1の2)とレプリケーション先であるストレージ(図1の4)を備える。そして、レプリケーション元のストレージシステムには、ストレージに対して発行された命令を一時格納するバッファリング部(図23の24)と、バッファリング部に格納された命令を転送に適した命令に変換する転送用命令変換部(図23の25)、ホストに接続された記憶部(図23の13)を備える。レプリケーション先のストレージシステムには、転送用命令をストレージが実行できる命令に変換する処理を行う実行用命令変換部(図23の42)を備える。そして、ホストやストレージを監視する監視手段(図23の7)を備える。このような構成を採用し、監視手段がホストの発行するストレージへの命令を監視して発行した再開可能点通知、あるいはホストが発行した再開可能点通知を、転送用命令変換部が転送契機として利用して、転送処理を行う。そして、受信したレプリケーション先のストレージシステムにおいて、実行用命令変換部42が再開可能点通知までの命令を全て受信したことを確認し、依存関係のある命令は発行順に並び替えてからストレージへの適用処理を行う。これにより、本発明の第9の目的を達成する事ができる。
本発明の第7の側面(アスペクト)に係るシステムは、レプリケーション元であるストレージ(図35の2)と、レプリケーション先であるストレージ(図35の4)と、レプリケーション元のストレージを利用するホスト(図35の1)と、命令受信層(図35の51,52)を備える。そして、レプリケーション元の命令受信層には、受信した命令をストレージが実行できる命令に変換する命令変換部(図36の512)、レプリケーション先の命令受信層には、転送用命令をストレージが実行できる命令に変換する処理を行う実行用命令変換部(図36の522)を備える。このような構成を採用し、ホスト1はあらかじめ定義された、通常の命令よりも転送量を削減できる命令(図37、図38)を発行し、レプリケーション元の命令実行部がそれをストレージが実行できる形の命令(図39、図43)に変換してストレージに対して渡す。レプリケーション先への転送はホストが発行した転送量を削減できる命令のまま転送し、レプリケーション先の命令変換部がストレージの実行できる形の命令に変換し、レプリケーション先のストレージに渡す。これにより、本発明の第7、第8の目的を達成する事ができる。
本発明の他の側面に係る方法は、レプリケーションに際して、レプリケーション元からレプリケーション先へ転送されることになる1つ又は複数の命令をそのまま転送するかわりに、前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション元から前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする形式の1つ又は複数の転送用命令に変換する工程と、
前記変換した転送用命令を、前記レプリケーション元から前記レプリケーション先に転送する工程と、
を含む。
本発明の他の側面に係るプログラムは、レプリケーション元からレプリケーション先へのレプリケーションシステムを構成するコンピュータに、レプリケーションに際し、レプリケーション元からレプリケーション先へ転送されることになる1つ又は複数の命令をそのまま転送するかわりに、前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション元から前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする形式の1つ又は複数の転送用命令に変換する処理と、前記変換した転送用命令を、前記レプリケーション元から前記レプリケーション先に転送する処理と、を実行させるプログラムよりなる。
本発明の第1の効果は、同じ内容のデータを異なる場所に対して書き込みを行う場合に、データ転送量を減らせる、ことである。その理由は、本発明においては、同じ内容のデータを複数の場所に書き込ませる命令で、データ本体を一つで済ませるためである。
本発明の第2の効果は、既にレプリケーション先のストレージが保持しているデータをレプリケーション先ストレージの他の箇所に書き込む場合にデータ転送量を減らせることである。
その理由は、ストレージに既に存在するデータを書き込む命令群を、レプリケーション先のストレージに既に存在するデータを他の箇所に複製する命令にて変換し、実データの転送を行なわないためである。
本発明の第3の効果は、レプリケーションシステムが必要とするネットワーク帯域を低くできることにある。
その理由は、第1、第2の効果及び後述の第7の効果による。
本発明の第4の効果は、同じ内容のデータを異なる場所に対して書き込みを行う複数の命令が存在するときに、データ転送回数を減らすことが出来ることにある。
その理由は、複数の書き込みを同じ内容のデータを複数の場所に書き込ませる一つの命令に変換し、転送するためである。
本発明の第5の効果は、通常のストレージ装置を利用してネットワークの転送量を削減したレプリケーションを行う事が出来ることにある。
その理由は、ホストとストレージの間に命令受信・変換層を保持し、本発明による機能を命令受信・変換層で行うことにより、第1・2の効果を得る事が出来る為である。
本発明の第6の効果は、サーバ上で動作しているアプリケーションに改変を加えず、また新たにアプリケーションで機能開発をする必要が無いままに、ネットワークの転送量を削減したレプリケーションを行う事が出来ることにある。
その理由は、ストレージに対して発行された命令を一時格納するバッファリング部と、バッファリング部に格納された命令を転送に適した命令に変換する転送用命令変換部を備え、サーバが通常発行する書き込み・読みこみの命令から、転送に適した命令に変換し、第1・2の効果を得る事が出来る為である。
本発明の第7の効果は、RAID5におけるパリティのような復元のためのデータが付与された書き込み命令のレプリケーション処理を、レプリケーション先において復元するのに必要最小限のデータのみを転送して実現できることである。
その理由は、復元のための情報が付与された書き込み命令を、レプリケーション先で復元できるデータを削除した転送用命令に変換してレプリケーション先のストレージシステムに転送する。そして、レプリケーション先のストレージシステムで転送用命令を元の書き込み命令に復元し、適用処理を行うためである。
本発明の第8の効果は、サーバが発行する命令のパターンを分析しなくても、転送量を削減するレプリケーションシステムを実現できることである。
その理由は、ホストに接続された記憶部あるいはストレージの記憶部に対して書き込まれるシステムログ情報を監視することにより、データ転送量を削減できる処理が行われたかどうかを認識する。そして、その情報を利用して転送用命令への変換を行うためである。また、後述の第10の効果による。
本発明の第9の効果は、非同期にレプリケーションを行なうシステムにおいて、被災後の処理を最小に出来ることである。
その理由は、アプリケーションが指定した再開可能点を契機として転送を行なうため、レプリケーション先のストレージが再開可能点でのレプリケーション元のストレージのデータの状態になり、アプリケーションが被災後の処理が最小となるストレージ状態で再開可能点を通知することで被災後の処理を最小に出来るためである。
本発明の第10の効果は、サーバがレプリケーションにおいて転送量を削減する為の特殊な命令を発行して、その命令をストレージシステムが処理をしてレプリケーションを実現できることにある。
その理由は、サーバはあらかじめ定義された、通常の命令よりも転送量を削減できる命令を発行し、ホストとストレージ間の命令受信層がその命令をストレージが実行できる形の命令に変換してストレージに対して渡す。そして、レプリケーション先への転送はホストが発行した転送量を削減できる命令のまま転送し、レプリケーション先の命令受信層がストレージの実行できる形の命令に変換し、レプリケーション先のストレージに渡すためである。
本発明の第11の効果は、転送量を削減する為のストレージにおける処理の演算量を削減できることにある。
その理由は、第2の効果を得る為に命令を比較する際に、データの内容が一致しているかどうかを判断すればよいため、圧縮などを行うよりも演算量を削減できるためである。
本発明の第12の効果は、既存のアプリケーションが動作するサーバと既存のストレージに対して導入する事で、通信ネットワークのコストを低くしたレプリケーションシステムを実現する事ができることにある。
その理由は、第3、第5の効果と同一である。
本発明の実施形態について図面を参照して詳細に説明する。
本発明の第1の実施形態について説明する。本発明の第1の実施形態は、ストレージシステム内で命令をバッファリングし、転送用命令へ変換する。図1は、本発明の第1の実施形態のレプリケーションシステムの構成を示す図である。第1の実施形態のレプリケーションシステムは、ホスト1、ストレージ2、ネットワーク3、ストレージ4を有し、サービスを提供するコンピュータシステムである。ストレージ2とストレージ4はネットワーク3を介して接続されている。
ストレージ2、4は、データを格納する記憶装置である。一例として、ストレージ2、4は、単体のディスク装置、あるいは複数のディスク装置からなるディスクアレイ装置であってもよい。また、他の例として、ストレージ2、4は、光磁気装置あるいはそれらの集合であるアレイ装置であってもよい。さらに他の例として、ストレージ2、4は、単体あるいは複数の半導体メモリによる記憶装置であってもよい。あるいは、ストレージ2、4はこれらの複数の装置の組み合わせであってもよい。例えば、高価なディスクアレイ装置と、比較的安価なディスクアレイ装置、テープライブラリの3つから成り立つシステムがあげられる。
ホスト1は、本コンピュータシステムで運用されるサービスを実現するアプリケーション、データベース等のミドルウェア、オペレーティングシステム等を動作させるコンピュータであり、ストレージ2を利用して処理を行う。図1において、ホスト1は単体のコンピュータとして記述されているが、複数あってもよい。
ストレージ4は、ストレージ2のデータを複製して保持し、必要に応じて利用する。ストレージ2はホスト1上で動作するプログラムによって、作成や利用されるデータを格納する。ストレージ2は格納されているデータの複製を、ネットワーク3を介してストレージ4上に保持させる。
ストレージ4に複製を作成する目的は、どんな理由でも構わないが、例えばストレージ2のバックアップデータとして利用することが挙げられる。例えば、ホスト1やストレージ2に何らかの障害が発生した際に、ストレージ4に保持されているデータを利用して、ストレージ4に接続されているホスト(ホスト1でも良いし、あらかじめ接続された別のホストでもよいし、障害後に新たに接続するホストでもよい)とストレージ4を用いて、ホスト1とストレージ2で提供したサービスを障害後にも継続して提供する。他にも、ストレージ2の過去のある時点のデータをストレージ4にバックアップとして保持するためや、データマイニング等の他のアプリケーションのデータとして利用する為等がある。
ネットワーク3は、インターネットまたは専用線等の通信ネットワークであり、ストレージ2とストレージ4間を接続する。また、ホスト1とストレージ2の間も同様に通信ネットワークにより接続される。ここで用いられる通信ネットワークは、例えば、SCSI、ファイバーチャネル(FIBRE CHANNEL)、ATA、S−ATA、イーサネット(登録商標)(ETHERNET(登録商標))、INFINIBAND等である。
なお、図1では、ホスト1、ストレージ2、ストレージ4が1つずつの場合が示されているが、各要素はそれぞれ複数であってもよい。例えば、ストレージ2の複製先であるストレージ4が2つあってもよい。
図2は、第1の実施の形態におけるホストおよびストレージの詳細な構成を示すブロック図である。
図2を参照すると、ホスト1は、命令発行部11を備える。命令発行部11は、ホスト1上で動作するアプリケーション、データベース等のミドルウェア、オペレーティングシステム等がWRITEやREAD等の命令、あるいはその他の制御命令等の発行を行う。
レプリケーション元のストレージシステム2(単に「ストレージ2」ともいう)は、命令受信部21、命令実行部22、記憶部23、バッファリング部24、転送用命令への変換部(単に「転送用命令変換部」という)25、転送送信部26を備える。これらの要素は、ストレージ2として一体に構成されてもよく、あるいは、分散配置された構成としてもよい。また、これらの要素は、ストレージシステム2を構成するコンピュータのプログラムによってその機能を実現するようにしてもよいことは勿論である。
命令受信部21は、命令発行部11が発行する命令を受信する。
命令実行部22は、命令受信部21が受信した命令を記憶部23に対して実行し、必要あれば、結果をホスト1に返す。例えば、命令発行部11が発行したWRITE命令を命令受信部21が受信し、命令実行部22は、その受信したWRITE命令を記憶部23に対して適用する。命令が完了すれば、完了通知をホスト1に返す。
記憶部23は、ストレージシステム2が保存するデータを格納する記憶媒体であり、データを蓄積する機能を有する。
バッファリング部24は、命令受信部21が受信した命令を一時格納する記憶媒体である。
転送用命令変換部25は、バッファリング部24に一時格納されている命令群を転送用命令に変換し、転送送信部26へ渡す。転送する直前に変換してもよいし、必要分が集まったら、直ちに変換し、蓄積していてもよい。
転送送信部26は、転送用命令変換部25から受け取った、転送用命令をレプリケーション先のストレージシステム4へ転送する機能を持つ。
レプリケーション先のストレージシステム4(単に「ストレージ4」ともいう)は、転送受信部41と、実行用命令への変換部(単に「実行用命令変換部」という)42、命令実行部22、記憶部23を有する。これらの要素はストレージ2として一体に構成されてもよく、分散配置された構成としてもよい。また、これらの要素は、ストレージシステム2を構成するコンピュータのプログラムによってその機能を実現するようにしてもよいことは勿論である。以下に説明する変形例、他の実施形態についても同様である。
転送受信部41は、ストレージシステム2の転送送信部26から送られてくる転送用命令を受信する。そして、受信した転送用命令を、転送命令バッファリング部45に渡す。
実行用命令変換部42は、受信した転送用命令を転送命令バッファリング部45から取り出して解析し、実行用命令に変換する。変換する実行用命令は、ストレージシステム2が元々受信した命令とそのまま同じものでもよいし、論理的に同じ結果となる別の命令でもよいし、バックアップストレージに書き込む為に最適化された別の命令であってもよい。そして、変換した実行用命令を、命令実行部43へ渡す。なお、受信した転送用命令を命令実行部43がそのまま実行できる場合、実行用命令変換部42による変換は不要とされる。
命令実行部43は、実行用命令を受信して、記憶部44に対して適用する機能を果たす。命令実行部43は、ストレージ2の命令実行部22と同様の構成であってもよい。
記憶部44は、ストレージ2の記憶部23と同様に、データを格納する記憶媒体であって、データを蓄積する機能を果たす。記憶部44も、ストレージ2が保持している記憶部23ものと同様の機能を果たすことになる。ただし、ストレージ2の保持している記憶部23と物理的に完全に同じものを保持している必要はない。例えば、ストレージ2よりも安価なディスクを用いたストレージシステムをストレージ4に採用してもよい。
転送命令バッファリング部45は、転送受信部41が受信した命令を一時格納する記憶媒体である。
図3は、本発明の第1の実施形態のシステムのレプリケーション動作のうち、レプリケーション元のストレージシステム2の動作を説明する為のフローチャートである。以下の動作例は、ホスト1の命令発行部11がストレージ2に対して何らかの命令を発行したとする。ここで、命令とは、ストレージ2からデータを読み出すREAD等のコマンド、ストレージ2に対してデータを書き込むWRITE等のコマンド、その他にはストレージ2に対して何らかの制御を行う制御コマンド等がある。
まず、ホスト1の命令発行部11が発行した命令を、ストレージ2の命令受信部21が受信する(ステップA1)。
次に、ストレージ2の命令実行部22は、命令受信部21が受信した命令を実行し、必要あれば、ホスト1に対して命令の結果を返す。命令の結果を返す処理は、命令受信部21を介して行っても良いし、命令実行部22が直接ホスト1に対して返しても良い。例えば、WRITEコマンドの場合、記憶部23に対して、WRITEコマンドの内容の書き込みを行い、書き込みが完了した後に、ホスト1に対して書き込み完了の旨を通知する。また、READコマンドの場合には、記憶部23から該当アドレスの情報を読み取り、ホスト1に対して読み取った情報を返す(ステップA2)。
また、ホスト1に対して結果を返す処理は、命令受信部21がキャッシュを保持することによってステップA1において行ってもよい。
ステップA2の後、命令受信部21が受信した命令を、バッファリング部24に蓄積する(ステップA3)。蓄積方法は任意である。
しかし、ストレージ2の記憶部23に対する更新順序を保証するには、命令が到着した順序を記憶あるいは管理しておく必要がある。具体的な方法としては、
・FIFO(FIRST−IN FIRST−OUT)で処理を行うキューで保存しておく、
・命令に到着の番号を付ける、
・何らかの方法で命令を識別して到着順を管理するテーブルを作成する、
等がある。
また、受信した命令の全てをバッファリング部24に保存してもよいし、
WRITE等の書き込みを伴う命令のみ、ある一定の領域に対する命令のみ、等のように特定の命令のみを蓄積してもよい。
これは、転送する必要がある命令と、次に説明する図6のステップA5において、転送用命令変換部25が、解析に利用する材料として必要な命令を蓄積していればよいということである。
次に、転送処理を開始するかどうかの条件判定を行う(ステップA4)。
転送処理開始の条件はどのようなものでもよい。例えば、
・転送用命令変換部25がバッファリング部24にある一定以上の命令が溜まったことを検知した時、
・転送用命令に変換することによって高い効果が得られるアクセスパターンを検知した時、
・転送用命令へ変換できる命令の組み合わせが到着した時、
・前回の転送処理より一定時間が過ぎた時、
・前回の転送処理が終わった時等に、
転送処理を開始するという方法がある。
ステップA4の結果がNOで、転送処理を開始しない場合には、再度、命令受信部21がホスト1から命令を受信するのを待ち、新たな命令を受信後、ステップA1へ戻る。
ステップA4の結果、転送処理を開始する場合には、次の処理に進む。ここでは、転送用命令変換部25は、バッファリング部24のデータを解析し、転送用命令変換部25のもつ変換アルゴリズムによって、バッファリング部24に蓄積されている命令を、転送用命令へ変換する。そして、変換した転送用命令は転送送信部26へ渡す(ステップA5)。変換アルゴリズムについては、後に説明する。
転送送信部26は、転送用命令変換部25から受け取った転送用命令を、ストレージ4へネットワーク3を介して転送する(ステップA6)。
転送用命令の送信は、
・転送用命令変換部25から受け取って直ぐ送ってもよいし、
・ある程度、転送送信部26で蓄積してから、送ってもよい。
ここで、ステップA2とステップA3ーA6の間には、因果関係が無い為、ステップA2より先に、ステップA3から処理を行っても良いし、同時並行的に処理を行ってもよい。また、ステップA2において、ホスト1に対して結果を返す処理を行っているが、この結果を返す処理も、ステップA2の終了後ではなく、他のステップのいずれのタイミングでもよい。特に、ステップA6において、ストレージ4へ転送用命令が転送完了した後に、ホスト1へ結果を返す処理を行う場合には、ストレージ4へのデータ転送が保証されるため同期レプリケーションの特性を持つ事となる。
従って、ストレージ2のみに障害が発生した際に、データを失わないことを保証できる。
また、ステップA1−A3、A4−A6は、独立した動作として処理を行っても良い。その場合のフローチャートは、図4、図5に示す。
図4は、命令受信部21、命令実行部22、記憶部23を中心とした、ホスト1から発行される命令を受信して記憶部23に適用させる流れであり、図5は、データ転送を行う流れを示した図である。個々のステップに関しては図3のものと同一である。
次に、図6を用いて、レプリケーション先のストレージシステム4の動作について説明する。まず、ストレージ4の転送受信部41は、レプリケーション元のストレージシステム2の転送送信部26によって送信された転送用命令を受信する(ステップB1)。
次に、実行用命令変換部42は、転送受信部41が受信し、転送命令バッファリング部45に格納されている転送用命令を、変換アルゴリズムに従って、実行用命令に変換する(ステップB2)。変換アルゴリズムの一例として、ステップA5において利用している変換アルゴリズムの逆変換を行い、元の命令に復元するアルゴリズムがある。または、元の命令に復元するのではなく、バックアップストレージであるストレージ4の構成に基づいて、最適化した命令に変換してもよい。例えば、メインサイトのレプリケーション対象向けの領域(パーティション、ボリューム等)に書き込まれるように変換する、あるいは安価なストレージシステムあるいはディスクに書き込まれるようにするなどがある。
次に、命令実行部43は、変換された実行用命令を解釈し、記憶部44に対して適用する(ステップB3)。命令実行部43は、ストレージ2の命令実行部22と同様に、ホスト1から通常に発行される命令を実行する機能があればよい。また、命令実行部43が、受信した転送用命令を独自に実行できる機能を持っていてもよいが、変換アルゴリズムや転送用命令の変換パターンを解釈できる独自の命令実行部である必要がある。その場合には、実行用命令変換部42は必要なく、受信した転送用命令を直接、命令実行部43で実行できる。
図7は、図3、図6のフローチャートにて示した、ホスト1、ストレージ2、ストレージ4の装置間の動作を示すシーケンス図である。図7は、まず、一度目のステップA4(図3参照)の判定がNOで、二度目のステップA4(図3参照)の判定がYESの場合を示す。図7を参照すると、まずホスト1は、ストレージ2に対して命令を発行する。
ストレージ2は命令を受信し、図3のステップA1ーA2の処理を行い、その結果をホスト1に返す。
ストレージ2は次にステップA3の処理を行った後、ステップA4で転送処理を行うかどうかの判定を行う。
一度目のステップA4は、転送処理を行う必要が無い場合であるので、再びホスト1から命令が送られるのを待つ。
さらに、ホスト1から命令が発行されると、ストレージ2は命令を受信して、ステップA1−A2の処理を行い、その結果をホスト1に返す。
そして、ステップA3の処理を行い、再びステップA4の条件判定を行う。今回は転送処理を行う場合であるので、ストレージ2はステップA5−6の処理を行い、変換した転送用命令をストレージ4に対して送る。
そして、ストレージ4は変換した転送用命令を受信し、ステップB1−3の処理を行う。
次に、第1の実施の形態のステップA5とステップB2における、変換アルゴリズムについて説明する。
まず、図3のステップA5における変換処理(転送用命令への変換処理)について説明する。
図8は、ストレージ2のバッファリング部24に2種類の未転送命令が格納されていることを示す図である。
本実施の形態では、ホスト1から発行される命令は、少なくとも命令の種類(命令A)、命令の対象アドレス(アドレスA、アドレスB)、命令のデータ(データA)を所持する。例えば、SCSIのCDBコマンドの場合、図における命令の種類は、OPECODE等であり、命令の対象アドレスはLBA等であり、命令のデータは、WRITEコマンドにおける書き込みデータや、DATA−INコマンドのデータである。
本実施の形態では、図8に示すように、同じ命令を違う対象アドレスに対して行わせる1組の命令が格納されている。これは、例えば、同じデータを複数のアドレスに書き込むような状況で出現する。さらに具体的には、データベースのジャーナルログのような、ホスト側で信頼性向上の為に同じファイルを複数作成するような状況である。
転送用命令変換部25は、変換処理において、バッファリング部24内に、図8に示されるような2種類の命令が格納されていないか検索する。このような一組の命令を発見すると、転送用命令変換部25は、図8に示される命令を、図9に示される転送用命令へ変換する。
図9は、変換した転送用命令の構成を示す図である。転送用命令は、少なくとも、図8の2つの命令に共通している命令AとデータAを含み、対象アドレスとしてアドレスA、アドレスBの2つを含む形となる。
あるいは、図10のような転送用命令に変換してもよい。この場合、一度目の命令(命令A、アドレスA、データA)はそのまま送り、2回目の命令のデータAの実体を送らない。2回目の命令では、データAの実体を送らない代わりに、データAへのポインタ(データAが書き込まれている先のアドレス等)を指定する。例えば、転送用命令の転送順が確保されているのならば、データAは、2回目の命令を処理する際にはアドレスAから先に書き込まれている為、アドレスAをポインタとして示す。また、あるいは、一回目の転送用命令のデータ(データA)を示すことによっても可能である。この場合には、一回目の転送用命令のID等を示せばよい。
次に、ステップB2における変換アルゴリズムについて説明する。ステップB2では、転送受信部41が受信した転送用命令を、実行用命令変換部42が命令実行部43に実行させたい命令に変換するステップである。ここでは、図9に示される転送用命令が送られてきたとする。実行用命令変換部42は、受信した転送用命令を分解し、図8に示される実行用命令に戻す。
また、実行用命令に戻す際には、ストレージ2と完全に同じ構成で復元するのではなく、片方のアドレスは安価なディスクを使うように片方のアドレス(例えばアドレスBを別のアドレスCに)を変換するようなことをしても良い。その場合、実行用命令変換部42に対して、前もって指示しておけばよい。例えば、アドレス変換テーブルを用意する等である。この場合、実行用命令だけでなく、元々変換する必要のない命令に対して規則を設定して、変換処理をしてもよい。
実行用命令変換部42が、受信した命令が転送用命令であり、変換すべき命令であることを検知するには、様々な方法がある。例えば、転送用命令の命令種類を命令Aでなく、命令A’のような命令コードを設定しておき、そのような命令の場合には、決められた変換を行う方法がある。また、他にも、変換すべき命令であるかどうかのフラグを付ける方法でもよい。さらに、転送用命令に含まれるアドレスが、実行用命令変換部42に指定されたアドレス範囲に含まれる場合に変換処理を行う方法でもよい。
また、ステップA5における変換処理において、変換される転送用命令が他の命令をまたいでいる場合(例えば、図8に示される2つの命令の間に、関係の無い命令を挟んでいる)に、その更新順序を正しく保証しなければならない場合には、その順序を元に戻す事が出来るよう、変換する転送用命令に対して情報を付与する必要がある。そして、転送命令バッファリング部45に、その挟まれた命令が格納されるのを待ち、順序を調整してから、命令実行部43は記憶部44に対して適用する。あるいは、その間に付与されている情報も1つの転送用命令としてまとめてしまうことによって、更新順序を保証する。
転送命令バッファリング部45は、上記の順序を調整する処理を行わない場合には、特別必要ではない。つまり、ストレージ4が受け取った順に処理をしてよい場合には、転送受信部41が直接実行用命令変換部42に渡して処理をしてもよい。あるいは、ストレージ2の転送用命令変換部25や、転送送信部26が、順序を入れ替える必要が無いように転送処理を行っても良い(ストレージ4の受信を確認後、次の処理を行うなど)。
第1の実施形態の作用効果について説明する。既存の方式で、図8に示される元の命令を転送する場合には、命令AとデータAを2回送らなければならなかった。しかし、このように、転送用命令に変換して転送することにより、2つの命令に重複するデータAは、一回転送するだけで、データ転送を完了することができる。従って、ネットワークの利用帯域を該当するデータに対してほぼ半分に減らすことが出来る。
また、元の複数回の命令を1つの転送用命令へ変換する構成とすることで、命令を転送する毎に必要な通信処理が削減される。従って、より高いスループットを得る事が出来る。
また、ホスト1のアプリケーション、データベース、オペレーティングシステム等が、レプリケーションの転送量を削減する為に特殊な命令を発行する必要がない。そのため、本実施形態の効果を得る為に、アプリケーションの改変を行うこと、データベースやオペレーティングシステムの設定、データの構成等について変更をする必要がない。
また、ホスト1から受信した命令は、一旦、バッファリング部24に蓄積される。転送処理を行う前に、ホスト1から受信した命令は記憶部23に対して実行され、その結果をホスト1に返す。従って、ホスト1のアプリケーションにとってストレージ4にレプリケーションを行うことによる影響を受けない。
また、命令実行部22、記憶部23は、ストレージ2、ストレージ4双方において、ホスト1が一般に発行する命令を実行する機能を保持していればよいため、既存のストレージシステムと同様のものを利用できる。
また、ストレージ4の実行用命令変換部42において、命令の変換処理を行う事が出来る為、ストレージ4の構成にとって最適な記憶箇所に、ストレージ4側で変換することによって書き込みを行う事が出来る。
また、転送命令バッファリング部45に、転送受信部41が受け取る命令を一時バッファリングすることによって、転送用命令によって入れ替わる可能性がある更新順序を保証することができる。
また、転送用命令へ変換する際に、そのデータ部分のみを比較して変換処理を行えばよいため、通常の圧縮処理を行うよりも、圧縮時と復元時において演算量が少なくて済む。
なお、ホストからの複数の命令(図8)を、1つの転送用命令(図9)に変換する例について説明したが、本発明は、ホストからの複数の命令の個数(n個)をn+1個以上の転送用命令に変換することで、データ転送量を減少させるようにしてもよいことは勿論である。ホストからの命令(元の命令)が、例えば図48に示す形式の命令(命令A、アドレスA、データA)よりなり、データAが、データa1を複数回の繰り返し(図48では3回)を含んで構成される場合、次のような転送用命令に変換される。すなわち、
最初の命令は、
(命令A、アドレスA,データa1)の形式よりなり、
次に命令は、
(命令A、アドレスa2、データa1へのポインタ)よりなり、
次の命令は、
(命令A、アドレスa3、データa1へのポインタ)
よりなり、計3つの命令に変換することで、データ転送量は、もとの1/3となる。
また、図49に示すように、元の命令(図48の元の命令と同一)を変換した転送用命令として、(命令Aと、アドレスA、アドレスa2、アドレスa3、データa1)としてもよい。この場合、データa1は一回のみ転送されるだけであり、元のデータa1を3回転送することは回避される。
また、図50に示すように、元の命令が(命令A アドレスA、データA)よりなり、データAが、データb、データa1、データb、データa1、アドレスC、データa1を含む場合を、図10の形式にしたがって、6つの転送用命令、
(命令A、アドレスA、データb)、
(命令A、アドレスa1、データa1)、
(命令A、アドレスb、データbへのポインタ)、
(命令A、アドレスa2、データa1へのポインタ)、
(命令A、アドレスc、データc)、
(命令A、アドレスa3、データa1へのポインタ)
のように変換してもよい。この場合、元の命令のデータbは、変換後の転送用命令として、データbとそのポインタの2つの命令に変換されて転送量は、元の命令の1/2とされ、データa1の転送量は元の命令の1/3となる。
図51に示すように、元の命令(図50と同一)を、
(命令A、アドレスA、アドレスb、データb)
(命令A、アドレスa1、アドレスa2、アドレスa3、データa1)
(命令A、アドレスc、データc1)
のように変換してもよい。すなわち、同一データbをアドレスAとアドレスbに書き込み命令と、データa1をデータa1、a2、a3を書き込む命令、データcをアドレスcに書き込む命令に変換する。
本実施形態において、命令は、上記した命令、アドレス、データ(又はポインタ)等の形式に制限されるものでないことは勿論である。すなわち、コマンド部(オペコード)、アドレスなどの制御情報、データ部分の形式に限定されず、データと制御情報からなる構成としてもよい。また、データ部分は圧縮したデータであってもよいし、加工、変換処理されたものであってもよい。またコマンド部を簡略化してもよく、レプリケーションで転送される命令はWrite系の命令であるため、コマンド部を省略してもよい。
また、レプリケーション元とレプリケーション先の差分情報を管理しておき、差分情報のみを転送する構成としてもよい。例えば図52に、差分情報の転送用命令のデータ部分を示す。更新データと制御情報を対として含む。制御情報は、論理ディスク番号、論理ブロックアドレス、データ長を含む構成としてもよい。
また、図8、図9、図10の命令において、データ部は、コマンド部と一体の即値データとする形式の命令であったもよいし、コマンド部と、データ部とが分離された形式であってもよい。
次に、本発明の第1の実施形態の実施例について述べる。本発明を利用するレプリケーションシステムにおいて、ホスト1上でデータベースを動作させているものとする。ホスト1は、データベースのデータの保存先として、ストレージ2を利用し、そのデータをストレージ4に対して、ネットワーク3を介して、レプリケーションを行っている。
一般に、データベースは、データとしてジャーナルログを保持し、そのジャーナルログはホスト側で耐障害性向上のために、物理的に異なるディスクへ2重化して保存するよう指示される。2重化して保存する先は、物理的に異なるディスクである場合の他にストレージ側で仮想化されている異なるボリュームであってもよいし、同じディスクへ2重化している場合もある。
図11は、ストレージ2内の記憶領域を示す図である。図11では、ストレージ2は、ボリューム201、ボリューム202と、複数の記憶領域を保持しているとする。本実施例において、ホスト1上で動作するデータベースプログラムは、ジャーナルログの1つをボリューム201へ、もう1つをボリューム202へと記録するものとする。ここで、データベースプログラムは、データベースに更新が発生する事に、ジャーナルログに対して追記作業を行うため、命令発行部11は、追記作業が発生すると、ボリューム201とボリューム202に対して全く同じデータを書き込む命令を発行する。
その発行される命令は、図8で示されるような命令の組み合わせであるとする。図8の命令について、本実施例と対応させて説明する。
命令Aは、データを書き込む命令であり、アドレスAはボリューム201のアドレス、アドレスBはボリューム202のアドレスとなる。データAは、書き込まれるデータを指し、2つの命令で共通のデータとなる。
そして、図8の命令は、図9で示される転送用命令に変換されストレージ4に対して転送される。
従って、本実施例ではバッファリング部24へ格納されるデータは書き込みを行う命令のみでよい。また、転送用命令に変換する処理においては、2重化してデータが書き込まれるボリューム、あるいは物理ディスクのアドレスに対する書き込み処理に対してのみ、転送用命令への変換処理が行えるかどうかを検索すればよい。
また、2重化して書き込まれるデータの対象があるボリュームに対していると決められている場合には、そのボリュームに対して発生するWRITEコマンドは冗長化されていることがわかる為、そのコマンドに対してのみ転送用命令への変換処理を行えばよい。
本実施例では、データベースのデータ構成により、2重化して同じデータを作成する場合において記述しているが、他にも、ホスト1上で、ミラーリングしているファイルであれば、何にでも適用できる。
また、1つのボリュームの中に、大きなデータを作成する場合においても、同じデータが繰り返し書き込まれるような書き込みに対しても適用できる。例えば、データベース内の表を保存する領域においては、各行に、同じデータが書き込まれるケースが多いアプリケーションが動作する場合には、そのような書き込みパターンが現れる可能性がある。
本実施例の作用効果について説明する。第1の実施形態で得られる効果に加え、下記の作用効果を奏する。
本実施例では、バッファリング部24に対して格納するデータは、書き込み命令だけで良いので、全てのデータをバッファリング部24に格納する場合と比較して、バッファリング部24に必要な容量が少なくて済む。
また、転送用命令変換部25で変換対象となる命令が、ある決められたボリュームに対して発行されると決められている場合には、転送用命令変換部25が走査するバッファリング部24の量が減少する為、変換処理の速度が向上する。
次に、第1の実施形態の変形例1について述べる。
<第1の実施形態の変形例1>
変形例1では、RAID5等の冗長化データを付与した書き込みデータに対して転送量の削減を行う。第1の実施の形態の変形例1の構成は、図1、図2に示される第1の実施の形態の構成と同様であるため説明を省略する。また、図3、図6、図7に示される処理の流れについても、第1の実施の形態と同様である。
この例では、図3のステップA5における変換アルゴリズムが、前記実施形態と相違している。そして、この変形例1では、ホスト1上、または命令受信部21より上位層で、RAID5処理をしてストレージ2に対してデータの書き込みを行っているものとする。すると、ホスト1からRAID5処理をされた後に発行される書き込み命令は、図12で示されるような命令となる。図12は、図8と同様の命令の形態を簡略化したものである。
図12の命令Bは、RAID5処理をされたあとの書き込み処理の為の命令、アドレスC−Gは、RAID5処理をされた後に分散されて書き込まれる対象のアドレスを指す。そして、データB1ー5は、RAID5処理をされた後のストライピングされた4つのデータと1つのパリティデータを指す。
そして、ステップA5において、転送用命令変換部25は変換アルゴリズムに従い、これらの命令を転送用命令に変換を行う。しかし第1の実施の形態における変換アルゴリズムでは、図12のどの命令も変換の対象にならない。しかし、本変形例1の変換アルゴリズムでは次のように変換することでデータを削減する事が出来る。
本変形例1の変換アルゴリズムは、図12の命令群を図13の命令群のように変換する。本変形例1ではRAID5処理をされてデータB1−B5に分散され、パリティを付与されているため、1つのデータを失っても再作成することができる。従って、図13のようにデータB5を削除し、ストレージ4側の変換処理であるステップB2において、データ5をパリティ計算し復元することにより、データ5を再作成することができる。これにより、転送するデータ量を約4/5にすることが出来る。また、前もってRAID化されているボリュームアドレス等を把握している場合には、データが存在しない命令(アドレスGの命令)を転送する必要はない。
また、ここで削減するデータはデータ5である必要はない。削減するデータはパリティ部分である必要は無いので、5つに分割されるデータのうち先に到着した4つの命令を転送し、最後の1つを削除すればよい。また、本実施の形態の変形例1では、RAID5処理について説明したが、RAID5だけでなく、他に冗長化データを作成してWRITEを行う、RAID6、RAID4、RAID3等であってもよい。また、RAID1に関しては、実施の形態1の変換アルゴリズムが適用できる。
また、RAIDだけでなく、同様に後に復元するための冗長化したデータを作成して書き込みを行う処理全てに対して適用できる。その理由は、本変形例で説明したとおり、同様に冗長化のためのパリティなどのコードのデータ、あるいは冗長化したことにより再作成できるデータをストレージ4側へ転送しないで済むからである。
本変形例1の効果について説明する。
第1の実施形態とその実施例における効果に加え、同一のデータを異なる場所に書き込む場合以外に、冗長化データが付与されるデータの書き込みに対して、転送量削減の効果を得る事ができる。
<第1の実施形態の変形例2>
次に、第1の実施形態の変形例2について説明する。この変形例2は、アーカイブログ化のような、ローカルコピーの処理について、実データを送らずに実現するものである。第1の実施形態の変形例2は、図11に示されるような構成のストレージ2において、ボリューム201に書かれているデータを、ボリューム202にコピーする命令をホスト1が発行した場合において、データ転送量を削減する方式である。
ボリューム201からボリューム202へコピーすると述べたが、同一ボリューム内でコピーを行う場合でも良い。また、単純なファイルのコピーでもよいし、一部を書き換えるが大部分が同じであるコピーを作成する場合でもよい。このようなストレージ2内でデータコピーを行う処理を、以降、「ローカルコピー処理」と呼ぶ。
例えば、ローカルコピー処理には、次のような処理がある。データベースアプリケーションにおいては、一般的に、ジャーナルログデータを保持しており、過去のジャーナルログデータを保存する。そして、定期的に、他の場所へアーカイブのファイル名を付ける等をして保存する処理を行う。この処理は、既にストレージ2内に書き込まれているジャーナルログデータをアーカイブ先にコピーする処理と考える事ができるため、ローカルコピー処理の一例である。
また、ディスクアレイ装置に作成されているデータがあまり参照されなくなった為、安価なディスク装置にコピーする、あるいは保存用の記憶装置にコピーする、等の処理を行う場合でもよい。この処理もローカルコピー処理の一例である。あるいは、レプリケーション元のデータセンターから別の装置へのコピーについても同様にして適用することができる。
本変形例2の構成は、図1、図2に示される第1の実施の形態の構成と同様であるため説明を省略する。また、図3、図6、図7に示される処理の流れについても第1の実施の形態と同様である。
本変形例2は、ステップA5における変換アルゴリズムが異なる。
本変形例2の変換アルゴリズムは、ローカルコピー処理によりホスト1から発行された命令群を、ローカルコピーによって書き込まれるデータの転送を行わない転送用命令に変換する。
次に、ローカルコピー処理の為の変換アルゴリズムの例を説明する。図14は、ローカルコピー処理により、ホスト1から発行された命令が、バッファリング部24(バッファメモリ)に格納されている様子を示す概念図である。最初に命令受信部21が受け取った命令(命令R アドレスA)が、図4の一番上に示されている。命令RはREAD系統の命令でデータを読み取る命令である。命令WはWRITE系統の命令でデータを書き込む命令である。ここで、ホスト1は、アドレスA−Dから始まる箇所に記録されているデータA−Dを読みこみ、アドレスE−Hに対して、読み込みデータA−Dを書き込む処理を行おうとしている。すなわちローカルコピー処理である。
転送用命令変換部25は、図14に示すようなパターンを検知し、転送用命令へ変換する。ここで、命令Rの結果として、それぞれデータA−Dが得られ、その後、命令Rのデータとして利用されるか否かは、バッファリング部24に保存される命令だけでは確認できない。従って、変換アルゴリズムが、命令Rの結果がデータA−Dであることを確認する必要があるのならば、図6のステップA2において、命令Rで得られた結果をバッファリング部24に伝える処理を追加する。ただ、単に、図14に示されるような特徴的な命令群によって、ローカルコピー処理であることを認識できる場合には、命令Rで得られた結果をバッファリング部24に伝える処理は必要無い。
また、ホスト1から発行する命令として、図14に示すように、命令Rが全てのデータを読み込むとは限らない。なぜなら、ホスト1のバッファが保持しているデータは、ストレージ2に対して読み込みが行われない等の現象が発生する可能性があるからである。従って、図15に示すように、命令が欠ける現象が発生する可能性がある。それに関しても、ローカルコピー処理に基づく特徴的なアクセスパターンは残っていると考えられるため、データA−Dまでのローカルコピー処理として、変換アルゴリズムが認識してもよい。また、ローカルコピー処理としてそのまま認識できるであろう、データA−Cまでのローカルコピーとして見なしてもよい。
バッファリング部24に格納されている、図14のような命令パターンを、ローカルコピー処理であると認識するには、様々な方法がある。ホスト1上で動作するアプリケーションの特徴から、ローカルコピー処理としてよく出現するパターンを、転送用命令変換部25に対して人手で認識させるという方法がある。あるいは、ホスト1から発行される命令のアクセスパターンのログから学習させ、自動的に認識させてもよい。さらに、ローカルコピー処理のWRIRE処理は、ある決められたボリュームに対して行うことが考えられるため、そのボリュームに対するWRITE命令を変換対象と見なしてもよい。
また、命令パターンを、ローカルコピー処理であると認識するには、次のような方法もある。ホスト1上で動作するアプリケーションあるいはオペレーティングシステムは、ローカルコピーなどの処理を、何らかのログに記録している可能性がある。従って、そのログを、転送用命令変換部25が、定期的、あるいは、変換処理実行時に、検知することによって、ローカルコピー処理の認識を行う。
ホスト1のログは、ストレージ2の記憶部23に記録される場合もあれば、ホスト1のローカルな記憶装置に記録される場合もあり、必要な場所のログを確認することが必要である。この方法を用いる場合には、図2に示されるレプリケーションシステムの詳細な構成は、図16に示すような構成となる。
図16のブロック図について説明する。ホスト1は、図2の構成と比較して、記憶部13を有する点が相違している。記憶部13は、ホスト1が利用する記憶装置である。例えば、ホスト1のコンピュータに接続される記憶装置であり、具体的には磁気記憶装置や半導体記憶装置、ネットワーク越しに接続される記憶装置などである。また、図16は図2の構成と比較して、転送用命令変換部25が、記憶部23と記憶部13を参照する点が異なる。
上記に述べた方法を用いて、ローカルコピー処理であることを、転送用命令変換部25が認識した場合には、転送用命令へ変換する。変換する転送用命令としては次のような例がある。
図17に、図14の命令を変換した転送用命令の例を示す。命令WのデータA−Dの実体の転送を行わない例である。データA−Dを送る代わりに、データA−Dが存在するポインタを示す。図14の命令では、データA−Dは、その直前に、アドレスA−Dから読み込まれるはずであるので、データA−Dへのポインタとして、アドレスA−Dを指定すればよい。
また、図18に、図14を変換した転送用命令の他の例を提示する。これは、命令Xという、特殊な命令を定義しておくことにより実現する。ここでは、命令Xは、アドレスA−Dから始まるデータをアドレスE−Hに対して書き込みを行うという命令であるとする。また、アドレスAからD、アドレスEからHが連続した領域である場合には、アドレスAとアドレスEを指定し、別途容量を指定するという形式の命令でもよい。
図17、図18のような転送用命令を、ストレージ4の実行用命令変換部42は、図19に示されるような命令として変換し、実行する。また、図14のように、先に命令Rを行い、その結果を受け取って命令Wを実行するよう変換を行っても良い。
本変形例では、命令が4つの場合であったが、命令数は制限されず、いくつでもよい。
また、本変形例は、第1の実施形態や他の変形例と組み合わせて実施することができる。
次に、第1の実施形態の変形例2における効果について説明する。第1の実施形態における効果に加えて以下の効果を得る事ができる。
本変形例では、ローカルコピー処理によって発生するWRITE処理を、そのWRITE命令の内容となるデータのポインタを転送するだけで実現する事ができる。従って、大幅な転送量を削減する事ができる。
また、ローカルコピー処理を認識する際に、ローカルコピー処理の対象となるボリュームを指定しておくことによって、転送用命令変換部25の変換処理の計算量を軽減することができる。ボリュームのかわりに、アドレス空間、パーティション、ファイル等でもよく、仮想化された、あるいは物理的な書き込み場所を指定するものであれば任意である。
また、ローカルコピー処理を認識する際に、システムログ情報等を利用することによって、転送用命令変換部25の計算処理を大幅に少なくし、処理を容易にすることが出来る。システムログ情報等には、オペレーション・システムやデータベースソフトウェア、アプリケーションソフトウェアが書き出す処理の記録やエラー警告等が含まれる。
<第1の実施形態の変形例3>
次に、第1の実施形態の変形例3について述べる。第1の実施形態の変形例3は、転送契機の変形例である。第1の実施の形態の変形例3の構成は、図1、図2に示される第1の実施の形態の構成と同様であるため説明を省略する。また、図3、図6、図7に示される処理の流れについても第1の実施の形態と同様である。
本変形例3では、図3、図5のステップA4における、転送処理開始条件について述べる。
基本的には、ステップA4において転送処理が開始される条件はどのようなものでもよい。例えば、単純に定期的に時間で区切り、転送処理を開始する方法がある。30秒毎、1分毎、1時間毎のように、ある一定時間毎にバッファリング部24の記憶領域を区切り、転送処理を行う。その時の処理について、図20、図21を用いて説明する。
図20は、ある時刻でのバッファリング部24の状態の例を示す。この例では、バッファリング部24は、FIFOで処理をするキューとして実装されているとする。
また、命令241−245は、命令受信部21が受信した命令であり、バッファリング部24に蓄積される命令である。
図20においては、命令241−244がバッファリング部24に到着順に格納されており、次の命令245はその後ろに格納されるものとする。そして、図20の状態の時に、転送処理を開始する時刻になったとする。
すると、その時、図21に示されるように、転送用命令変換部25は区切り246を挿入する。そして、命令241−244の命令に対して転送処理を行う。そのとき、命令241−244内において、転送量を削減できる命令の組み合わせが存在するのならば、それに対応した変換処理を行う。またもし、区切り246以降に到着した、命令245あるいは命令247と命令241−244間において、削減できる命令の組み合わせが存在した場合においても、変換処理は行わない。
また、ストレージ4側の適用処理においては、ストレージ4の転送命令バッファリング部45に区切り246以前の命令である命令241−244が全て到達するまで適用処理を行わないようにすれば、転送開始のタイミングである図20時点のストレージ2の記憶部23の状態とストレージ4の記憶部44の状態が同一であることを保証出来る。
また、決まった転送契機を作らず、バッファリング部24に命令が格納されている場合には、そのつど送り、送りきれずバッファリング部24にたまっている命令において、削減できる組み合わせが存在した場合には、転送用命令への変換を行う。
また、図22で示されるような構成にすることにより、転送開始点通知部6が、転送処理を開始するタイミングを通知しても良い。例えば、図8、図11、図14で示されるような、削減可能な命令がバッファリング部24に蓄積された時点で、転送処理を開始するようにすることが可能である。
図22で示される変形例3の構成は、図2で示される第1の実施形態の構成と比較して転送開始点通知部6が存在する点のみが異なる。従って、この点のみを説明する。
転送開始点通知部6は、転送用命令変換部25に対して、転送開始点を通知する機能を有する。転送開始点通知部6は、バッファリング部24の状態を検知して転送タイミングを決定する事ができる。
転送開始点通知部6は、ホスト1で動作しても、ストレージ2内で動作しても、全く別の装置で動作しても構わない。また、ホスト1上で動作しているデータベースがその機能を有しても良いし、アプリケーションがその機能を有しても良いし、あるいは人間が明示的に指示する端末でもよい。
次に、本変形例3における作用効果について説明する。第1の実施形態における効果に加え、次のような作用効果がある。
本変形例3によって、ストレージ4の転送命令バッファリング部45において、区切り246以前の命令が全て揃うまでストレージ4の記憶部44に対する適用を遅らせることによって、転送契機の瞬間において、記憶部23と記憶部44の論理的なデータの一致を保証できる。
また、本変形例3により、削減可能な命令群がバッファリング部24に蓄積されたタイミングでデータ転送処理を行う事ができる。従って、ストレージ4の記憶部44の、ストレージ2の記憶部23に対する追従の遅れを最小限にしつつ、転送量削減の効果を得る事が出来る。
また、ストレージ4における適用処理において、転送命令バッファリング部45に格納されている命令群を、転送契機間において順序を入れ替える処理が出来る。
従って、ストレージ2からの転送処理において転送契機間の転送順序を保証しなくてもよい。その為、より転送効率の優れた転送方式により転送を行う事ができる。
また、ストレージ4における適用処理において、転送命令バッファリング部45に格納されている命令群を、転送契機間において順序を入れ替える処理を、命令間に相互関係が存在するものについてのみ行えば良い。従って、順序の入れ替え処理にかかる負荷を軽減する事ができる。
<第1の実施形態の変形例4>
次に、本発明の第1の実施形態の変形例4について説明する。本発明の第1の実施形態の変形例4の構成は、図1、図2に示した前記第1の実施の形態の構成と同様であるため、説明を省略する。
本変形例においては、ホスト1の命令発行部11がストレージ2に対する命令以外に、再開可能点を示すタイミングを通知する命令を送る。「再開可能点」とは、ホスト1のアプリケーション、オペレーティングシステムが何らかの障害により停止して再開する際に、再開しやすい時点を指す。例えば、ストレージ2に記憶されているデータが、再開時に再作成や再構築をする処理の必要が無い時点の事を指す。この再開可能点のデータをストレージが保持している状態から再開するときには、再開可能点ではない時点のデータから再開するよりも早い時間でサービスを再開することができる。
ホスト1は、再開可能点通知を、命令発行部11を介して発行する。再開可能点通知が発行されるタイミングの例として、以下のようなものがある。まず、ホスト1上のアプリケーション、ミドルウェアがプログラムの中に組み込んで通知を行う。また、ホスト1が複数のCPUやプロセスで動作する際に、メモリ上でバリア処理が行われたタイミングやセマフォの値が変化したタイミングなどに、自律的に発行しても良い。
また、再開可能点に決まったファイル(あるいは記憶領域)にアクセスするのであれば、そのファイルにアクセスがあったタイミングに再開可能点通知を行う。
また、再開可能点である時に決まったプロセスが処理を行うのであれば、そのプロセスが動作したタイミングに再開可能点通知を行えばよい。
データベースを例にあげると、ジャーナルログのデータを書き込んだタイミングは、上位のアプリケーションによってコミット命令が発行されたタイミングであり、再開可能点と考えることができる。従って、ジャーナルログファイル(あるいはこれが格納されているボリューム、ファイルなど)に対して、書き込みが発生した際に、再開可能点通知を行う。
あるいは、ジャーナルログファイルに書き込みを行うプロセスが動作したタイミングで再開可能点通知を行っても良い。
また、次のようにホスト1の命令発行部11が発行する命令によって再開可能点の通知を行っても良い。この場合には、ストレージシステムの構成は図23に示すような構成を用いる。図23の構成は、監視手段7を持つ点が図2と比較して異なるため、この点について説明する。
監視手段7は、ホスト1の動作あるいは、命令受信部21に受信される命令を監視して、再開可能点の認識し、再開可能点通知の発行を行う機能を有する。そして、監視手段7はホスト1内で動作してもよいし、ストレージ2で動作してもよいし、それ以外で動作してもよい。
監視手段7は、前述した再開可能点を検知して、命令受信部21に対して再開可能点通知を発行する。例えば、ホスト1が発行し命令受信部21が受信するコマンドを監視して、あるファイル(あるいは記憶領域)にアクセスするコマンドが発生後に、再開可能点通知を挿入する。また、ジャーナルログに書き込みが発生するコマンドを検知したら、再開可能点を通知する、という動作をしてもよい。
また、監視手段7はホスト1のプロセスを監視しても良い。例えば、あるプロセスが動作したときに、再開可能点となるのであれば、その時点で再開可能点通知を監視手段7が発行する。
監視手段7の動作の流れについて、図24を用いて説明する。
まず、監視手段7は監視対象の監視を行う(ステップC1)。この監視対象は例えば、命令受信部21やホスト1である。また、バッファリング部24のような他のものでもよい。そして、監視対象の挙動から再開可能点であるかどうかを、監視手段7は判断する(ステップC2)。再開可能点で無い場合には、再度監視対象の監視を行う。再開可能点であると判断した場合には、再開可能点通知を命令受信部21に対して発行する(ステップC3)。
また、レプリケーション元のストレージシステム2の動作について、図3を用いて説明する。基本的には、ストレージ2の動作については、図3に示した第1の実施形態における動作と同一である。再開可能点通知の存在によって、処理が異なる点について述べる。基本的に、再開可能点通知は、通常の命令として扱って良い。ステップA2において、命令実行部22は、再開可能点通知に対して何も処理をしなくて良いし、あるいは記憶部23においてスナップショットを取るような処理を行っても良い。
また、再開可能点通知は転送処理に必要になるため、バッファリング部24に対して蓄積する必要がある。この処理も通常の転送が必要な命令と同様に、ステップA3においてバッファリング部24に対して格納すればよい。ステップA4において、転送処理を開始する転送契機については、再開可能点通知を利用する。再開可能点通知が、バッファリング部24に格納されている場合には転送処理を開始する。
ステップA5の転送処理について、図25、図26を用いて説明する。
まず、バッファリング部24に図25に示すように命令が格納されているとする。そして、ここでは、命令241と命令242を転送用命令249に変換して転送を行うとする。再開可能点通知248が到着した段階で転送処理を開始する。図25に示すように、命令245が再開可能点通知248の後に到着している場合でも、今回の転送処理では命令245は転送しない。次に、再開可能点通知が到着した後に、転送処理の対象とする。ここで例えば、命令245と命令244が変換処理の対象となる場合においても、変換処理は行わない。
従って、転送される命令は、図26に示すような命令となる。この例では、この順序で転送が行われたとする。
また、レプリケーション先のストレージシステム4の処理の流れは、図6に示される通りである。ストレージ4の処理においても、再開通知点に関する処理を除くと、第1の実施形態と同一の処理となる。
ステップB2の適用処理について、図27、図28を用いて説明する。図26に示されるような命令が転送された場合には、受信した命令は、図27に示されるように転送命令バッファリング部45に格納される。そして、転送用命令249を変換し、元の命令に復元して記憶部44に対して適用を行う。図28は図27の命令群を、復元した命令群を示す図である。図28では、変換した命令241、242を再び転送命令バッファリング部45に戻しているが、必ずしもその必要はなく、命令を変換してそのまま適用してもよい。
また、ステップB2の適用処理を行う際に、転送命令の到着後、順次適用処理を行うのではなく、再開通知点が到着後にその時点までの命令を適用するようにすると、スナップショット機能が無いストレージ装置においても再開可能点の状態を保障できる。また、必ずストレージ4が再開可能点のデータを保持することになるので、ストレージ4を用いてアプリケーションを再開する際に、すばやく再開することができる。
順次適用処理を行っていると、途中の整合性が取れていない状態でストレージ4にデータが保存されてしまう。
また、再開可能点ではないタイミングでストレージ4がデータを保持してしまい、ストレージ4によってサービスを再開するのに時間がかかってしまう。
次に、ステップA5において、図25に示す命令を変換するときに、命令241と命令243が変換対象であった場合について説明する。この時、命令241と命令243を転送用命令250に変換するものとする。
すると、図25の命令群は、図29のように変換され、転送が行われる。そして図29の命令がストレージ4に転送された時、転送用命令250を元の命令241と命令243に復元するとする。すると、ステップB2において変換された後の転送命令バッファリング部45の状態は、図30に示すような状態となる。
これは、図25に示す場合と順序が異なってしまう。この場合、命令243と命令242の間に依存関係が無い場合(異なる記憶位置に書き込みを行う等)には、再開可能点通知248までの命令が全てストレージ4に転送されている場合において順序を入れ替える必要が無い。
しかし、命令243と命令242の間に依存関係がある場合(同じ記憶位置に書き込みを行う等)には、発行された順序(図25参照)で処理されるように、命令243と命令242間の順序を入れ替える必要がある。
この場合、図28に示すよう、命令順序を入れ替えなければならない。その場合、転送用命令に命令順序の情報を追加する、再開可能点通知内に命令順序の情報を追加すればよい。
次に、ステップA5における転送方式について、他の方式を説明する。本変形例では、再開可能点通知が到着した際に、その再開可能点までの命令において(必要あれば)変換処理を行い、転送処理を行う。
しかし、図31に示すように、一回目の転送処理を行っている間に、複数の再開可能点通知が到着する可能性もある。この時の転送方式には複数の方式が存在する。その転送方式の例について、図31の命令群がバッファリング部24に存在する時を例に挙げ説明する。
まず、通常の方式を説明する。再開可能点通知248より以前の命令(命令241,242,243,244)の転送後、再開可能点通知251より以前の命令(命令245,247)の転送を行い、その次に再開可能点通知254より以前の命令(命令252,253)の転送を行う。
また、特に制限されないが、次のような方式用いてもよい。再開可能点通知248、再開可能点通知251を無視し、再開可能点通知254までの命令(命令241,242,243,244、245,247,252,253)を、ひとかたまりの命令群と扱って処理を行う。通常の方式では、例えば命令243と命令245が転送用命令に変換出来たとしても、変換する事が出来ないが、本方式では変換する事が出来るため、より高い転送量削減効果を得る事が出来る。
また、特に制限されないが、次のような方式を用いてもよい。まず再開可能点通知248までの命令(命令241,242,243,244)の転送処理を行う。そして、その後に再開可能点通知251が到着したときに、再開可能点通知251までの命令(命令241,242,243,244,245,247)を別途転送する。また、その後、再開可能点通知254が到着した時に、最初の転送処理(再開可能点通知248まで)が終わっており、2度目の転送処理(再開可能点251まで)が終わっていない場合には再開可能点通知248後から再開可能点通知254までの命令(命令245,247,252,253)を別途転送する処理を行う。
また、ステップB2の適用処理においても、各再開可能点通知までの適用処理を順次行うのではなく、図31の命令が転送される時には、再開可能点通知254までの到着を待って、適用処理を行っても良い。
次に、第1の実施形態の変形例4の作用効果について述べる。本変形例では、前記第1の実施形態における作用効果に加え、次のような作用効果がある。
本変形例4により、再開可能点におけるデータをストレージ4において保持するため、ストレージ4においてサービスの再開を行う際に、データの再構築などの処理が不要になり、通常の方式より早くサービスの再開を行う事が出来る。
また、再開可能点通知までの命令群の転送を、命令間に依存関係が無い限りいかなる順序で送っても良いため、効率の良い転送が出来る。
また、レプリケーション先のストレージにおいて、再開可能点通知までの受信を確認後に、適用処理を行うことによって確実に再開可能な記憶状態をレプリケーション先ストレージにおいて復元する事ができる。
また、再開可能点通知をホスト1のアプリケーションによって発行させることにより、アプリケーションにとって都合の良いタイミングにおけるストレージの記憶状態をストレージシステムに保持させることができる。
また、ホスト1から再開可能点通知を発行しなくても、監視手段7がアプリケーションにとって再開可能点であるタイミングを判断し、通知することが出来る。これは、ホスト1の動作あるいは、命令パターンを検知することによって行う事ができる。
また、ストレージ2からの転送処理において、再開可能点通知が複数、バッファリング部24に格納されている時には、それらを一纏めにして転送処理を行う事が出来る。従って、より多くの変換処理を行うことが出来る可能性があり、転送量を軽減する事ができる。
また、本変形例ではストレージ4における適用処理において、転送命令バッファリング部45において、再開通知点までの命令群の順序を調整して適用処理を行う事ができる。従って、ストレージ2からの転送処理において再開通知点間の転送順序は特に拘束されないため、より優れた転送順序で転送を行う事が出来る。
<第1の実施の形態の変形例5>
次に、第1の実施形態の変形例5について述べる。第1の実施の形態の変形例5の構成を、図32と、図33に示す。
図32は、第1の実施形態の変形例5の全体構成を示す図である。図32を参照すると、ホスト1と、レプリケーション元のストレージシステム2、レプリケーション先のストレージシステム4、ネットワーク5、命令受信・変換層70、命令受信・変換層80を有する。そして、第1の実施形態と同一の機能を提供できるコンピュータシステムである。図1に示される第1の実施形態の構成図と比較して、ホスト1とストレージ2の間に命令受信・変換層70を有し、またストレージ2とストレージ4間の接続が命令受信・変換層70、ネットワーク5,命令受信・変換層80を介して行われる点が異なる。
ホスト1、レプリケーション元のストレージシステム2(単に、「ストレージ2という」、レプリケーション先のストレージシステム4(単に、「ストレージ4」という)は、前記第1の実施形態と同一である為、説明を省略する。
ネットワーク5は、命令受信・変換層70と命令受信・変換層80の間を接続している点が異なるが、それ以外の点はネットワーク3と同一である。ネットワーク5で利用するネットワークは、ストレージ間を接続するネットワークである他に、ホスト1のコンピュータとストレージ間、コンピュータ同士、コンピュータとスイッチ間等を結ぶネットワークである。具体的には、コンピュータ間を接続する内部バスまたはイーサネット(登録商標)、INFINIBAND、無線回線等が上げられる。
図33は、第1の実施形態の変形例5の詳細構成を示す図である。図33に示す通り、命令受信・変換層70、命令受信・変換層80は、図2に示した第1の実施形態の構成においてストレージ2、4が果たしている役割の一部を担う。
命令受信・変換層70は、ストレージ2が第1の実施形態の構成において有していた、命令受信部21、バッファリング部24、転送用命令変換部25、転送送信部26を有する。
また、変形例5におけるストレージ2は命令実行部22、記憶部23のみを有する。命令実行部22がホスト1へ接続されているが、ホスト1がストレージ2に対して発行したWRITEなどの命令を実行した結果を返す経路である。このように、ホスト1に対して直接、命令の実行結果を返しても良いが、命令受信・変換層70を介して結果を返してもよい。
命令受信・変換層80は、ストレージ4が第1の実施形態の構成において有していた、転送受信部41、実行用命令変換部42を有する。
また、変形例5におけるストレージ4は命令実行部43、記憶部44のみを有する。
命令受信・変換層70、80はホスト1のアプリケーションからストレージの間のいかなる装置、プログラムにおいて機能を果たしても良い。例えばイーサネット(登録商標)やファイバーチャネルのスイッチ装置が、命令受信・変換層70、80の機能を果たしてもよい。また、他にもデータベースソフトウェア、ボリュームマネージャ、ファイルシステム、オペレーティングシステム、ストレージ仮想化装置等で実現する事が可能である。また、命令受信・変換層70、80がストレージ内で実現することも可能であり、それが第1の実施形態の構成となる。
第1の実施形態の変形例5の動作の流れについては、図3、図6、図7に示される第1の実施形態の動作と同様であるため、説明を省略する。
第1の実施形態の変形例5の作用効果について説明する。第1の実施形態と各変形例の作用効果に加え、下記の作用効果を奏する。
本変形例では、ストレージ2、ストレージ4の装置は、一般的なストレージアクセス命令を受信し、記憶部に対して処理を行い、結果を返すだけである。従って、本発明における機能を組み込む際にストレージ装置に改造を行うことや、特殊なストレージ装置を利用する必要がない。
本変形例では、ストレージ2、ストレージ4間をネットワークで直接接続する必要は無い。従って、ネットワーク接続費用などを軽減する事ができる。
<第1の実施形態の変形例6>
次に、第1の実施形態の変形例6について説明する。第1の実施の形態の変形例6の全体構成は図1に示される第1の実施の形態の構成と同様であるため説明を省略する。図34は詳細な構成を示すブロック図である。
図34は、図2に示される第1の実施形態の詳細構成と比較して、転送用命令変換部25、実行用命令変換部42に対して変換アルゴリズムを設定する変換アルゴリズム設定部8を有する点が異なる。
図34は、第1の実施形態に付属する構成として書いたが、他の変形例にも適用できる。また、実行用命令変換部42に対しては別の変換アルゴリズム設定部8を用意してもよいし、図33のように1つの変換部が双方に設定する形でもよい。
また、図3、図6、図7に示される処理の流れは、第1の実施の形態と同様であるため説明を省略する。
変換アルゴリズム設定部8は、転送用命令変換部25の変換アルゴリズムを設定する機能を有する。これは、管理者がコマンドを入力すると、変換アルゴリズムを設定できるコンピュータプログラムであってもよいし、管理者が「重複WRITEデータを削減する」あるいは「ローカルコピー処理の転送データを削減する」のようにポリシーとして設定できるようなツールでもよい。また、ホスト1上で動作してもよいし、ストレージ2上で動作してもよいし、その他の場所でもよい。また、例えばストレージ管理ソフトウエアに組み込まれてもよい。
また、他の状況を監視し、自律的に、転送用命令変換部25及び実行用命令変換部42の動作を制御するプログラムであってもよい。
変換アルゴリズム設定部8によって、例えば、変換アルゴリズムを幾つか転送用命令変換部25が保持しているときに、そのうちどの変換アルゴリズムを実行させるかを、管理者は選択する事ができる。例えば、第1の実施形態の変換アルゴリズムを動作させ、変形例1のアルゴリズムは動作させない、などのように設定する。
また、変換アルゴリズムを、変換アルゴリズム設定部8によって、プログラムとしてユーザが開発したものを組み込めるように出来ても良い。
また、転送用命令変換部25が、転送契機として何を用いるかを設定出来ても良い。例えば、変形例3のようにある一定時間毎に転送処理を行うのであれば、その周期をどんな値にするかを変換アルゴリズム設定部8により設定する。
また、変換アルゴリズム設定部8は、転送用命令変換部25、実行用命令変換部42に必要となるあらゆるパラメータを設定できる機能を有してもよい。例えば、変換する命令の対象を、どのボリュームに対する書き込み命令にするか、などを設定する。
次に、第1の実施形態の変形例6の作用効果について説明する。
本変形例6により、本発明のシステムにおいて、変換アルゴリズムや転送方法について、管理者が制御することが出来る。
また、本変形例6により、個別に開発した変換アルゴリズムプログラムを転送用命令変換部25に組み込むことができる。
また、本変形例6により、管理者がポリシーを設定することにより、転送命令変換部25、実行用命令変換部42が利用する変換アルゴリズムを決定することができる。
また、本変形例6によって、管理者が変換アルゴリズムの動作に必要あるいはあると処理が効率化するパラメータ情報を設定することによって、変換アルゴリズムの処理の時間を短縮する事が出来る。
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。図35は、本発明の第2の実施形態のレプリケーションシステムの構成を示すブロック図である。図35を参照すると、本発明の第2の実施形態のシステムは、図1に示した前記第1の実施の形態と比較して、ホスト1と、レプリケーション元のストレージシステム2(単に、「ストレージ2」という)の間に命令受信層51が配設され、ネットワーク5と接続され、レプリケーション先のストレージシステム4(単に、「ストレージ4」という)と接続された命令受信層52が配設されている点が相違する。
ホスト1は、前記第1の実施形態と同一構成のコンピュータであり、また、ストレージ2、4に関しても、前記第1の実施形態と同一構成の記憶装置であるため、説明は省略する。
ネットワーク5は、インターネットまたは専用線等の通信ネットワークのような、あるいはホスト間、ホスト−ストレージ間、ストレージ間を結ぶネットワークであり、前記第1の実施形態の変形例5で扱ったものと同一であるため、説明を省略する。
命令受信層51は、ホスト1が発行する命令を受信して、その命令をストレージ2に対して発行する。ここで、ホスト1が発行する命令は、ストレージ2が実行できる命令とは限らないため、ストレージ2が実行できる命令に変換して発行を行う。また、命令受信層51は受信した命令を、ネットワーク5を介して命令受信層52へ転送を行う。
命令受信層52は、命令受信層51から転送された命令を受信する。そして受信した命令を、命令受信層51と同様に、ストレージ4が実行できる命令に変換して、ストレージ4に対して発行する。
命令受信層51、52は、ホスト1のアプリケーションからストレージの間のいかなる装置、プログラムにおいて機能を果たしても良い。例えばイーサネット(登録商標)やファイバーチャネルのスイッチ装置が、命令受信・変換層70、80の機能を果たしてもよい。また、他にもデータベースソフトウェア、ボリュームマネージャ、ファイルシステム、オペレーティングシステム、ストレージ仮想化装置等で実現する事が可能である。また、命令受信・変換層70、80がストレージ内で実現することも可能であり、それが前記第1の実施形態の構成となる。
また、命令受信層51が受信する命令のプロトコルは特に問わない。SCSI(Small Computer System Interface)のようなブロックレベルでストレージを操作するプロトコル以外にも、CIFS(Common Interface File System)やNFS(Network File System)などのプロトコルを用いても良い。つまり、ストレージ2,4が、ファイルシステムを持つNAS(Network Storage System)システムでもよい。
図36は、本発明第2の実施の形態におけるホストおよびストレージ、命令受信層の詳細な構成を示すブロック図である。
図36を参照すると、ホスト1は、命令発行部12を備える。命令発行部12は、ホスト1上で動作するアプリケーション、データベース等のミドルウェア、オペレーティングシステム等が、WRITEやREAD等の命令、あるいは他の制御命令等の他に、命令受信層51によりあらかじめ定義された命令を発行する。
命令受信層51により、あらかじめ定義された命令について説明する。前記第1の実施形態で説明したように、ホスト1のアプリケーション等は、レプリケーションを行う際に、冗長であるWRITEを発行する場合がある。例えば、
・ホスト1のアプリケーションで、同じデータを複数箇所に書き込みを行うソフトウェアミラーリングのWRITE(ソフトウェアミラーリングWRITE処理)や、
・ストレージ2内に既に存在するデータを他の箇所にコピーを行うローカルコピー処理がある。
ソフトウェアミラーリングWRITE処理や、ローカルコピー処理は、通常、ホスト1が命令を発行し、その命令に従って、レプリケーションシステムが処理を行う場合、ソフトウェアミラーリング処理では、同じデータを複数回転送することによって複製する。また、ローカルコピー処理では、コピーするデータが、レプリケーション先のストレージに既に存在する場合であっても、再度、データ転送を行う。
本実施形態では、このような処理を行う代わりに、
・ソフトウェアミラーリングWRITE処理を行う命令、
・ローカルコピー処理を行う命令
を予め定義しておき、その定義された命令を、ホスト1は発行する。
そして、命令受信層51は、定義された命令を受信し、定義された命令のままストレージ4側の命令受信層52に対して転送する。
また、命令受信層51は、ストレージ2が実行可能な形式に変換し、ストレージ2に対して発行する。
今後、この定義された命令を「ストレージアクセスインタフェース」(「SAI」と略記される)という。ソフトウェアミラーリングWRITE処理と、ローカルコピー処理を例にあげて説明したが、通常、ホスト1から発行する命令をレプリケーション先のストレージに転送するよりも、SAIを転送した方が処理や転送量を効率化できる命令であればなんであってもよい。
SAIは、ある決められた定義に従い、ホスト1から発行されなければならないので、製品マニュアル等で明示される。また、設定プログラムによって、ユーザ独自のSAIを設定することが出来るようにしても良いことは勿論である。
図37は、SAIの例を示した概念図である。図37に示した概念図は、図8に示したような前記第1の実施形態で用いた命令形と同様である。図37は、ソフトウェアミラーリング処理を行う命令であり、データAをアドレスA、アドレスBの双方に対してWRITEを行う。通常、ホスト1がSAIを用いないでWRITE命令を発行する場合には、図8に示される命令が発行されることとなる。
同様に、ローカルコピー処理のSAIの例を示す概念図を図38に示す。図38は、アドレスAから始まる、ある決められた容量のデータ(あるいはSAI内で容量を指定してもよい)をアドレスEに対してWRITE(コピー)を行うという命令である。
通常、ホスト1がSAIを用いないで、ローカルコピー処理を行う場合には、図39に示される命令群が発行される。この場合、アドレスA−D、アドレスE−Hは連続した領域を示している。
命令受信層51は、命令受信部511と、命令変換部512と、命令転送部513とを有する。
命令受信部511は、命令発行部12が発行するSAIあるいは通常のストレージアクセス命令を受信する。そして、命令変換部512に対して渡す。また、転送すべきSAIあるいは転送すべき通常のストレージアクセス命令を命令転送部513に対して渡す。命令転送部513に対して渡す処理は、命令変換部512に対して渡した処理を行い、ストレージ2に対して適用を行った後でもよいし、そうでなくてもよい。
命令変換部512は、命令受信部511から受け取ったSAIあるいは通常のストレージアクセス命令を、ストレージ2の命令実行部22に対して発行する機能を有する。ここで、通常のストレージアクセス命令はそのまま命令実行部22に対して渡し、その結果も命令実行部22から受け取って、ホスト1に対して返す。一方、SAIの場合は、SAIをストレージ2が実行できる命令に変換し、命令実行部22に対して渡す。また、変換した命令の結果を受け取り、SAIの結果として変換してホスト1に返す。
命令転送部513は、転送すべきSAIあるいは転送すべき通常のストレージアクセス命令を、ネットワーク5を介して命令受信層52に対して送る。ある程度ここで、SAI等をバッファリングすることによって、まとめて転送しても良いし、受け取り次第転送しても良い。
ストレージ2は、命令実行部22と記憶部23とを有し、一般の記憶装置である。
第1の実施形態のストレージ2と同様である。命令実行部22、記憶部23も第1の実施形態と同一であるため、説明を省略する。
命令受信層52は、転送受信部521と命令変換部522とを有する。
転送受信部521は、命令受信層51から送られてきた、SAIやストレージアクセス命令を受信し、命令変換部522に対して渡す。
命令変換部522は、転送受信部521から渡されたSAIやストレージアクセス命令を、ストレージ4に対して渡す役割を果たし、命令変換部512と同様の処理を行う。
ストレージ4は、命令実行部22と、記憶部23とを有し、ストレージ2と同一の機能を果たす。
次に、本発明の第2の実施形態のレプリケーションシステムの動作を説明する。
図40は、命令受信層51の動作を説明する為のフローチャートである。
まず、ホスト1の命令発行部12が命令発行した命令(通常のストレージアクセス命令又はSAI)を、命令受信部511が受信する(ステップC1)。
次に、命令受信部511は、受信した命令を命令変換部512に対して渡す(ステップC2)。
命令変換部512は、受信した命令がSAIであるかどうか判定を行う(ステップC3)。
SAIでない場合には、命令変換部512は、受信した命令をそのままストレージ2に対して発行する(ステップC4)。そして、ストレージ2は、通常通り、その命令を実行し、結果を発行元である命令変換部512に返すので、命令変換部512はその結果を受け取る(ステップC5)。そして、その結果をそのままホスト1に対して返す(ステップC6)。
一方、ステップC3において、受信した命令がSAIであった場合には、SAIの場合の処理を行う(ステップC7)。ステップC7の場合の処理は、後述する。SAIの処理が完了後、命令変換部512は結果をホスト1に対して返す(ステップC6)。
ステップC6の終了後、命令受信部511は、命令転送部513に、この受信した命令を渡す(ステップC8)。
そして、命令転送部513は、命令受信層52に対して、受け取った命令を転送する(ステップC9)。
また、図41に示すように、ステップC2以降の処理を行う前に、ステップC8−C9を行っても良い。また、ステップC8−C9の処理は、ステップC2−C7の処理とは独立して処理を行う事が出来るため、並行して実行しても良い。
さらに、図40、図41に示した流れ図は、非同期レプリケーションを前提にしているが、ステップC9によって転送された命令が、レプリケーション先のストレージに適用されたことを確認した後に、ステップC6の処理行うことによって、同期レプリケーションにおいても、本実施形態を適用できる。
次に、SAI処理について説明する。図42は、図40、図41のステップC7の処理であり、命令変換部512が行うSAIの処理の流れを示した図である。
まず、命令変換部512は、SAIの種類を判定する処理を行う(ステップC1)。
処理を行うSAIには大きく2種類ある。その1つは、図37に示されるようなソフトウェアミラーリング処理のようなSAI(命令W' アドレスA アドレスB データA)であり、SAIを通常のストレージアクセス命令に変換するだけで、SAI処理を完了することが出来るものである。図37に示されるようなSAIは、図43に示すようなWRITE命令2つ(命令W アドレスA データAと 命令W アドレスB データA)に変換することにより、SAIで命令されたソフトウェアミラーリング処理を行うことができる。
このように、SAIを通常命令に変換するだけでよいものを、「前処理の必要の無いSAI」と呼び、図42のステップD1の判定においてNOとなるSAIとする。
他の1つは、図38に示されるようなローカルコピー処理のようなSAI(命令C アドレスA アドレスE)である。このようなSAIは、SAI処理を完了するためには、ローカルコピー処理において、WRITEするデータであるコピー元のデータを、ローカルストレージ(この場合はストレージ2)から受信して、そのデータを書き込む処理を行わなければならない。従って、図38に示される命令は、図44に示すような命令(命令rアドレスA)により、アドレスAに記されるデータを読みこむ(必要であればコピーを行う全てのデータを同様に読み込む)処理を行う。そして、図44の命令の結果をストレージ2から受け取り、そのデータのWRITE処理を行う。従って、図44の結果として、データAを受信したとすると、図45に示されるようなローカルコピー先のアドレスに対してデータAを書き込む命令(命令W アドレスE データA)を発行する。
このように、SAI処理を行う為に、ストレージ2とのやり取りが必要になる処理を、「前処理の必要なSAI」と呼び、図42のステップD1の判定においてYESとなるSAIとする。
まず、図42のステップD1の判定の結果、NOであった場合の処理について説明する。ステップD1の判定後、命令変換部512は、SAIをストレージが実行できる命令に変換する(ステップD2)。これは、例えば図37に示されるようなソフトウェアミラーリング処理のSAIを、図43に示される通常のストレージアクセス命令に変換する処理である。
次に、この変換したストレージアクセス命令を、ストレージ2に対して発行する(ステップD3)。ストレージ2は、この命令を、通常通り受信し、記憶部23に対して実行し、結果を発行元である命令変換部512に対して返す。そして、その結果を命令変換部512は受け取る(ステップD4)。
受け取った結果は、変換したストレージアクセス命令に対する結果であるので、SAIで定義してある結果の形式に変換を行う(ステップD5)。これは、例えば図37に示されるようなソフトウェアミラーリング処理のSAIである場合には、2つのWRITE命令に変換された命令が、双方とも成功したら、成功である通知を返し、失敗すれば失敗通知を返す、等がある。
命令変換部512は、ステップD5において変換された結果を、図40、図41のステップC6でホスト1に返せばよい。
次に、ステップD1の判定において、YESである場合の処理について説明する。まず、ステップD1の判定後、命令変換部522は、SAIの処理を行う為に、最初に必要となる処理の命令を作成する(ステップD6)。これは、例えば図38に示されるようなローカルコピー処理のSAIの場合には、最初にコピー元のデータをストレージ2から読み込む処理である。つまり、図44に示されるような命令を作成する。
次に、ステップD6で作成した命令を、ストレージ2に対して発行する(ステップD7)。ストレージ2は、その命令を受け取り、通常通りに実行し、結果を命令変換部512に対して返す。命令変換部512は返された結果を受け取り(ステップD8)、受け取った結果からSAIにより実行すべき命令を作成し、発行する(ステップD9)。ステップD9によって作成される命令は、先程の例によると図45のような命令となる。図45に示される命令によって、ローカルコピー処理の実際のWRITE命令を発行する。そして、ストレージ2は、通常通り命令を受信し、実行して、結果を命令変換部522に対して返す。命令変換部522は返された結果を受信する(ステップD10)。
そして、受け取った結果は、ステップD1がNOの場合と同様に、変換したストレージアクセス命令に対する結果であるので、SAIで定義してある結果の形式に変換を行う(ステップD5)。これは、ローカルコピー処理のSAIであれば、処理の成否を結果として返すことが例としてあげることができる。
また、図42では、ステップD6−10の処理を1回行うのみで処理を完了できているが、1つのSAIの処理を行うのに、D6−10の処理を複数繰り返すことがあってもよい。
次に、ストレージ2、ストレージ4の処理について説明する。ストレージ2、4は、通常の記憶装置として、発行された命令を命令実行部22が受信して、記憶部23に対して命令を実行し、結果を返すという処理を行う。つまり、一般のストレージ装置として動作する。
つぎに、命令受信層52の動作について、図46を用いて説明する。
まず、転送受信部521が、命令転送部513から転送される命令を受信する(ステップE1)。
次に、転送受信部521は、その受信した命令を命令変換部522に対して渡す(ステップE2)。
次に、命令変換部522は、受信した命令がSAIであるかどうかを判定する(ステップE3)。
ステップE3の結果、受信した命令がSAIでない場合、その受信した命令をそのままストレージ4に対して発行する(ステップE4)。
ストレージ4は、受信した命令を、通常通り実行し、結果を返すという処理を行うので、ストレージ4から返された結果を命令変換部522は受信する(ステップE5)。必要あれば、ステップE5で受け取った結果を命令受信層51に対して返す。
一方、受信した命令がSAIである場合には、SAI処理を行う(ステップE6)。
SAI処理について、図47を用いて説明する。ステップF1の判定は、図45のステップD1と同様であり、SAI処理を行うのにストレージ4とのアクセスが必要かどうかを判定する(ステップF1)。
ソフトウェアミラーリング処理のSAIのような、ステップF1の結果がNOの場合には、SAIをストレージが実行できる命令に変換する処理を行う(ステップF2)。これは、図45のステップD2と同様の処理である。
また、変換した通常のストレージアクセス命令を、ストレージ4に対して発行する(ステップF3)。この処理も同様に、図45のステップD3と同様の処理である。そして、ストレージ4は、通常通りにストレージアクセス命令を受信し、実行して結果を命令変換部522に対して返す。その結果を命令変換部522は受信する(ステップF8)。必要あれば、受け取った結果をSAIの結果に変換し、命令受信層51に対して返す。
ローカルコピー処理のSAIのような、ステップF1の結果がYESの場合には、まず、SAIにより必要となるストレージアクセス処理の命令を作成する(ステップF4)。この処理は、図45のステップD6と同様である。
そして、ステップF5−7の処理に関しても、図45のステップD7−9の処理と同様である。
ストレージ4は、通常通りにストレージアクセス命令を受信し、実行して結果を命令変換部522に対して返す。その結果を命令変換部522は受信する(ステップF8)。必要あれば、受け取った結果をSAIの結果に変換し、命令受信層51に対して返す。
次に、本発明の第2の実施形態の作用効果について説明する。
本発明の第2の実施形態では、転送量を削減できる命令を発行する際に、ホスト1がSAIを用いるため、余計なデータの転送を行わなくて済む。このため、ネットワーク上に流れるデータ量を削減することができる。
また、前記第1の実施形態と比べ、SAIに対して決められた変換を行うだけでよいので、命令受信層に多くの計算資源を必要としないですむ。
また、前記第1の実施形態と比べ、レプリケーション元において命令のバッファリングを行わなくて済む為、必要とする記憶容量を少なくする事が出来る。
また、前記第1の実施形態と比べ、レプリケーション元において命令のバッファリングを行わなくて済む為、同期型レプリケーションにおいても容易に適用する事が出来る。
また、命令実行部22、記憶部23はストレージ2,ストレージ4双方において、ホスト1が一般に発行する命令を実行する機能を備えていればよいため、既存のストレージシステムと同様のものを利用できる。
また、ストレージ2の命令変換部512、ストレージ4の命令変換部522において、ストレージ2,4の構成にとって最適な記憶箇所にストレージ側で変換することによって、書き込み位置を変更する事が出来る。これを行う為に、ホスト1上のアプリケーションに改変を加える必要がない。
また、本発明の第2の実施形態は、前記第1の実施形態と比較して、前記第1の実施形態では転送用命令変換部25が認識できる命令群のみ、転送量を削減する事が出来ないが、第2の実施形態では、ホスト1側で転送量を削減できる事を認識してSAIを発行する事が出来る為、より優れた転送量削減の効果を得ることができる。
本発明によれば、ネットワークにより接続された待機系システムにデータを保存するレプリケーションシステムや、レプリケーションシステムを実現するためのプログラムといった用途に適用できる。また、災害等の不測な事態に備える為、正常系サイトの負荷を分散する為、ソフトウエアのバージョンアップの為、データマイニングに利用する為、データベース等のデータ記憶領域を最適化する為などの用途のために、複製データを作成するといった用途に適用できる。
以上本発明を上記実施形態に即して説明したが、本発明は上記実施形態の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明の第1の実施形態の構成を示すブロック図である。 本発明の第1の実施形態におけるホストおよびストレージの詳細な構成を示すブロック図である。 本発明の第1の実施形態におけるストレージ2の動作を示す流れ図である。 本発明の第1の実施形態におけるストレージ2の動作において、命令実行の流れと、転送処理の流れを分けた場合における、命令実行の処理を示す流れ図である。 本発明の第1の実施形態におけるストレージ2の動作において、命令実行の流れと、転送処理の流れを分けた場合における、転送処理を示す流れ図である。 本発明の第1の実施形態におけるストレージ4の動作を示す流れ図である。 本発明の第1の実施形態におけるホスト1、ストレージ2、ストレージ4の装置間の動作を示すシーケンス図である。 本発明の第1の実施形態におけるバッファリング部に格納される2種類の命令を示す概念図である。 本発明の第1の実施形態において、図8の命令を変換した、転送用命令の概念図である。 本発明の第1の実施形態において、図8の命令を変換した、転送用命令の概念図である。 本発明の第1の実施形態の実施例における、ストレージ2の記憶領域の構成を示す図である。 本発明の第1の実施形態の変形例1における、RAID5処理後に発行された命令の概念図である。 本発明の第1の実施形態の変形例1において、図12の命令を変換した転送用命令の概念図である。 本発明の第1の実施形態の変形例2において、ローカルコピー処理によってホスト1から発行される命令の概念図である。 本発明の第1の実施形態の変形例2において、図14の命令のREAD命令が1命令欠けた場合の概念図である。 本発明の第1の実施形態の変形例2において、ホストおよびストレージの詳細な構成を示すブロック図の別例である。 本発明の第1の実施形態の変形例2において、図14の命令を変換した転送用命令の概念図である。 本発明の第1の実施形態の変形例2において、図14の命令を変換した図17とは別の例である転送用命令の概念図である。 本発明の第1の実施形態の変形例2において、図17、図18のような転送用命令をストレージ4において実行する為の形態に変換した例である。 本発明の第1の実施形態の変形例3における、ある時刻のバッファリング部24の状態の例を示す図である。 本発明の第1の実施形態の変形例3における、図20の状態から区切り246が挿入され、その後命令245が到着した様子を示す図である。 本発明の第1の実施形態の変形例3において、転送処理開始点通知部6を加えた場合の構成を示すブロック図である。 本発明の第1の実施形態の変形例4において、監視手段7を備えた場合の構成を示すブロック図である。 本発明の第1の実施形態の変形例4における、監視手段7の動作を示す流れ図である。 本発明の第1の実施形態の変形例4における転送処理において、バッファリング部24に格納されている命令の例を示す図である。 本発明の第1の実施形態の変形例4における転送処理において、図25の命令を転送する時の命令群の例である。 本発明の第1の実施形態の変形例4における転送処理において、図26に示されるような命令を受信した場合の、転送命令バッファリング部45の様子を示す図である。 本発明の第1の実施形態の変形例4における転送処理において、図27の命令を復元した様子を示す図である。 本発明の第1の実施形態の変形例4における転送処理において、図25の命令を転送する時に、命令241と命令243が変換対象の命令であった場合について示す図である。 本発明の第1の実施形態の変形例4における転送処理において、図29の命令をステップB2において復元した際の命令群を示す図である。 本発明の第1の実施形態の変形例4における転送処理において、複数の再開可能点通知がバッファリング部24に格納されている時の例を示す図である。 本発明の第1の実施形態の変形例5の全体構成を示すブロック図である。 本発明の第1の実施形態の変形例5におけるホストおよびストレージの詳細な構成を示すブロック図である。 本発明の第1の実施形態の変形例6の詳細な構成を示すブロック図である。 本発明の本発明の第2の実施形態の構成を示すブロック図である。 本発明の第2の実施の形態におけるホストおよびストレージ、命令受信層の詳細な構成を示すブロック図である。 本発明の第2の実施形態における、SAIの例(ソフトウェアミラーリング処理)を示した概念図である。 本発明の第2の実施形態における、SAIの例(ローカルコピー処理)を示した概念図である。 本発明のSAIを用いない場合に、ホスト1がローカルコピー処理を行う際に発行する命令の概念図である。 本発明の第2の実施形態における、命令受信層51の動作を説明する為のフローチャートである。 本発明の第2の実施形態における、図40のフローチャートの変形例を示すフローチャートである。 本発明の第2の実施形態における、命令変換部512が行うSAIの処理の流れを示した図である。 本発明の第2の実施形態における、図37のSAIを命令変換部512で変換した命令の概念図である。 本発明の第2の実施形態における、図38のSAIを処理する際に、命令変換部512が最初に発行する命令の概念図である。 本発明の第2の実施形態における、図38のSAIを処理する際に、命令変換部512が図44の処理後に発行する命令の概念図である。 本発明の第2の実施形態における、命令受信層52の動作を説明するフローチャートである。 本発明の第2の実施形態における、命令受信層52のSAIを処理する動作を説明するフローチャートである。 本発明の第1の実施形態における転送用命令への変換の他の例を説明するための図である。 本発明の第1の実施形態における転送用命令への変換の他の例を説明するための図である。 本発明の第1の実施形態における転送用命令への変換の他の例を説明するための図である。 本発明の第1の実施形態における転送用命令への変換の他の例を説明するための図である。 本発明の第1の実施形態におけるデータ部の他の例を説明するための図である。
符号の説明
1 ホスト
2、レプリケーション元のストレージシステム(ストレージ)
3、5 ネットワーク
4 レプリケーション先のストレージシステム(ストレージ)
6 転送開始点通知部
7 監視手段
8 変換アルゴリズム設定部
11 命令発行部
13 記憶部
21 命令受信部
22、43 命令実行部
23、44 記憶部
24 バッファリング部
25 転送用命令への変換部(転送用命令変換部)
26 転送送信部
41 転送受信部
42 実行用命令への変換部(実行用命令変換部)
45 転送命令バッファリング部
201、202 ボリューム
51、52 命令受信層
12 命令発行部
241,242,243,244,245,246,247,252,253 命令
248,251,254 再開可能点通知
249,250 転送用命令
70,80 命令受信・変換層
511 命令受信部
512 命令変換部
513 命令転送部
521 転送受信部
522 命令変換部

Claims (71)

  1. レプリケーションに際し、レプリケーション元からレプリケーション先へ転送されることになる1つ又は複数の命令をそのまま転送するかわりに、前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション元から前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする命令形式の1つ又は複数の転送用命令に変換し、前記変換した転送用命令を、前記レプリケーション元から前記レプリケーション先に転送する手段を備えている、ことを特徴とするストレージシステム。
  2. 前記レプリケーション先では、前記レプリケーション元からの前記転送用命令を受け取り、前記レプリケーション先のストレージの命令実行部で実行可能な命令形式に変換して実行するか、前記レプリケーション先のストレージの命令実行部で前記転送用命令を実行できる場合には前記転送用命令を変換することなくそのまま実行する、ことを特徴とする請求項1記載のストレージシステム。
  3. ホストから前記レプリケーション元のストレージに発行される命令が、互いに異なる複数の領域への同一データの書き込みである場合には、前記レプリケーション元は、前記複数の書き込み命令を、1つの命令で異なる複数の領域への同一データの書き込みを指示する命令形式の転送用命令に変換し、前記転送用命令を前記レプリケーション先へ転送する、ことを特徴とする請求項1記載のストレージシステム。
  4. ホストから前記レプリケーション元のストレージに発行される命令が、互いに異なる複数の領域への同一データの書き込みである場合に、前記レプリケーション元では、前記複数の書き込み命令を複数の転送用命令に変換し、前記複数の転送用命令のうちの少なくとも1つは、実データの転送を伴わない命令形式の転送用命令とされる、ことを特徴とする請求項1記載のストレージシステム。
  5. 前記実データの転送を伴わない命令形式の転送用命令は、前記実データを指示するポインタを含む、ことを特徴とする請求項4記載のストレージシステム。
  6. 前記転送用命令は、コマンド部とアドレス部とデータ部、又は、コマンド部とデータを指示するポインタを含む、ことを特徴とする請求項1記載のストレージシステム。
  7. 前記転送用命令は、コマンド部が省略され、アドレス部とデータ部又は、データを指示するポインタを含む、ことを特徴とする請求項1記載のストレージシステム。
  8. 前記データ部が、圧縮されたデータである、ことを特徴とする請求項6又は7記載のストレージシステム。
  9. 前記レプリケーション元において、ホストから発行された命令のうちレプリケーションによる転送を伴う命令を一時的に蓄積するバッファを備え、
    前記バッファの蓄積量が所定値以上となったとき、
    前記バッファに蓄積される複数の命令において所定の命令パターンが検知されたとき、
    前記転送用命令に変換できる命令の組み合わせが到着したとき、
    前回の転送処理から所定時間経過したとき、
    前回の転送処理が終わったとき、
    のいずれかの条件に該当するとき、転送処理を開始する、ことを特徴とする請求項1記載のストレージシステム。
  10. ホストと、
    レプリケーション元と、
    レプリケーション先と、
    を備え、
    前記レプリケーション元から前記レプリケーション先へ転送されることになる1つ又は複数の命令を転送するかわりに、前記ホストが、前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション元から前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする命令形式の1つ又は複数の転送用命令に変換する手段を備え、
    前記ホストは、前記変換した転送用命令を、前記レプリケーション元に発行し、
    前記レプリケーション元から前記転送用命令が前記レプリケーション先に転送され、
    前記レプリケーション元、及び、前記レプリケーション先では、前記変換した転送用命令をそのまま又は復元した上で、それぞれのストレージに適用する、ことを特徴とするストレージシステム。
  11. ホストと、
    レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    と、を備え、
    前記ホストにおいて、ソフトウェアミラーリング処理を行う命令を予め定義しておき、
    前記ホストは、前記定義された命令を発行し、
    前記ホストから発行された前記命令を受け取る受信手段と、
    前記ホストから発行された前記命令を前記レプリケーション元のストレージの命令実行部で実行可能な命令形式に変換する第1の変換手段と、
    前記受信手段で受け取った前記ホストで前記発行された前記命令を、そのまま前記レプリケーション先に転送する転送手段と、
    前記転送された前記命令を受け取る手段と、
    前記転送された前記命令を前記レプリケーション先のストレージの命令実行部で実行可能な命令形式に変換し前記レプリケーション先のストレージに対して発行する第2の変換手段と、
    を備えている、ことを特徴とするストレージシステム。
  12. ホストと、
    1つ又は複数の記憶装置と、
    を備え、
    前記ホストから発行された命令を受け、前記記憶装置内でのデータのコピー又は複数の前記記憶装置間にわたるデータのコピーを行うにあたり、前記ホストから発行された命令を、前記コピーによって書き込まれるデータの転送を行わない命令形式の命令に変換する変換手段を備えている、ことを特徴とするストレージシステム。
  13. 前記変換手段は、前記ホストから発行された複数の命令のパターンに基づき、コピー処理であることを認識する、ことを特徴とする請求項12記載のストレージシステム。
  14. 前記記憶装置のあるアドレスからデータを読み出し、前記コピー処理によって発生する書き込み処理を、前記書き込み処理に対応する書き込み命令の内容となるデータのポインタを転送する命令に変換する、ことを特徴とする請求項9記載のストレージシステム。
  15. 前記コピー処理の対象となる記憶単位が予め指定されている、ことを特徴とする請求項14記載のストレージシステム。
  16. 前記変換手段は、前記コピー処理を認識する際に、前記ホストのシステムログを利用する、ことを特徴とする請求項14記載のストレージシステム。
  17. ホストと、
    1つ又は複数の記憶装置と、
    を備え、
    前記ホストにおいて、記憶装置内または記憶装置間でのデータのコピー処理を行う命令を予め定義しておき、前記ホストは前記定義された命令を発行し、
    前記ホストから発行された前記命令を一旦受け取り、前記記憶装置の命令実行部で実行可能な命令形式に変換した上で前記記憶装置に与える変換手段を備えている、ことを特徴とするストレージシステム。
  18. ホストと、
    レプリケーション元のストレージと、
    前記レプリケーション元のストレージと通信接続されるレプリケーション先のストレージと、
    を備え、
    前記レプリケーション元のストレージは、前記ホストから前記レプリケーション元のストレージに対して発行された命令を一時的に格納するバッファリング部と、
    前記バッファリング部に格納された命令を転送に適した所定の転送用命令に変換する第1の命令変換部と、
    を備え、
    前記レプリケーション元のストレージは、前記転送用命令を前記レプリケーション先のストレージに転送し、
    前記レプリケーション先のストレージは、前記レプリケーション元のストレージから転送された前記転送用命令を受け、前記転送用命令を、前記レプリケーション先のストレージの命令実行部で実行できる命令に変換する第2の命令変換部を備えている、ことを特徴とするストレージシステム。
  19. 前記第1の命令変換部が、前記バッファリング部に格納されている命令群から、同じデータを複数箇所に書き込みを行う命令の組み合わせを検出した場合に、前記同じデータを複数回転送せずに済む命令形式の転送用の命令に変換した上で、前記転送用命令を前記レプリケーション先のストレージに転送し、
    前記第2の命令変換部では、前記転送用命令を実行用命令に変換して、前記レプリケーション先のストレージに適用する、ことを特徴とする請求項18記載のストレージシステム。
  20. 前記第1の命令変換部が、前記バッファリング部に格納されている命令群から、レプリケーション元のストレージに既に存在するデータを書き込む命令群を発見し、レプリケーション元のストレージに既に存在するデータを利用して目的の命令を実現する転送用命令に変換し、
    前記第2の命令変換部が、前記転送用命令を実行用命令に変換して、レプリケーション先のストレージに適用する、ことを特徴とする請求項18記載のストレージシステム。
  21. ホストと、
    レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    を備え、
    前記レプリケーション元のストレージに対応して設けられた第1の命令受信・変換部と、
    前記レプリケーション先のストレージに対応して設けられた第2の命令受信・変換部と、
    前記第1の命令受信・変換部は、前記ホストから前記レプリケーション元のストレージに対して発行された命令を一時的に格納するバッファリング部と、
    前記バッファリング部に格納された命令を転送に適した転送用命令に変換する第1の命令変換部と、
    を備え、
    前記第2の命令受信・変換部は、前記第1の命令受信・変換部から転送された転送用命令を、前記レプリケーション先のストレージの命令実行部が実行できる命令に変換する第2の命令変換部を備えている、ことを特徴とするストレージシステム。
  22. 前記第1の命令変換部が、前記バッファリング部に存在する冗長化情報が付与された書き込み命令を、前記レプリケーション先のストレージで復元できるデータを削除した転送用命令に変換して前記レプリケーション先のストレージに転送し、
    前記第2の命令変換部において、前記転送用命令をそのまま実行するか、又は、書き込み命令に変換し、前記レプリケーション先のストレージに適用する、ことを特徴とする請求項18乃至21のいずれか一に記載のストレージシステム。
  23. 前記ホストは、前記レプリケーション元のストレージに対する命令を発行する命令発行部を備え、
    前記第1の命令変換部は、システムログ情報を監視して、レプリケーションにおけるデータの転送量を削減できる処理が行われるか否かを検知し、前記検知情報に基づき、転送用命令への変換を行う、ことを特徴とする請求項18記載のストレージシステム。
  24. 前記ホスト及び前記レプリケーション元のストレージを監視する監視手段を備え、
    前記監視手段は、ホストの動作、あるいは、前記レプリケーション元のストレージで受信される命令を監視して再開可能点の認識し、再開可能点通知の発行を行う、ことを特徴とする請求項18記載のストレージシステム。
  25. 前記監視手段は、前記ホストによって発行されレプリケーション元が受信するコマンドを監視し、予め定められたファイルあるいは記憶領域にアクセスするコマンドが発生したことが検出された後に、再開可能点通知を発行する、ことを特徴とする請求項24記載のストレージシステム。
  26. 前記監視手段は、ジャーナルログに書き込みが発生するコマンドを検知した場合に、再開可能点を通知する、ことを特徴とする請求項24記載のストレージシステム。
  27. 前記監視手段は、前記ホストのプロセスを監視し、予め定められたプロセスが動作した時に再開可能点となる場合に、前記時点で、再開可能点通知を発行する、ことを特徴とする請求項24記載のストレージシステム。
  28. 前記ホスト、及び前記レプリケーション元のストレージを監視する監視手段を備え、
    前記ホストが発行する前記ストレージへの命令を監視して発行した再開可能点通知、又は前記ホストが発行した再開可能点通知を、前記第1の命令変換部が転送契機として利用して、転送処理を行う、ことを特徴とする請求項18記載のストレージシステム。
  29. 前記第2の命令変換部が、再開可能点通知までの命令を全て受信したことを確認し、依存関係のある命令は、発行順に並び替えてから前記レプリケーション先のストレージへの適用処理を行う、ことを特徴とする請求項28記載のストレージシステム。
  30. レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    前記レプリケーション元のストレージを利用するホストと、
    前記レプリケーション元のストレージに対応して設けられる第1の命令受信部と、
    前記レプリケーション先のストレージに対応して設けられる第2の命令受信部と、
    を備え、
    前記第1の命令受信部は、受信した命令をレプリケーション元のストレージの命令実行部が実行できる命令に変換する第1の命令変換部を備え、
    前記第2の命令受信部は、転送用命令をレプリケーション先のストレージの命令実行部が実行できる命令に変換する処理を行う第2の命令変換部を備え、
    前記ホストは、予め定義された通常の命令よりもデータ転送量を削減できる命令を発行し、
    前記第1の命令変換部が、前記ホストから発行された前記転送量を削減できる命令を、前記レプリケーション元のストレージの命令実行部が実行できる形の命令に変換して前記レプリケーション元のストレージに対して渡し、
    前記レプリケーション先のストレージへの転送は、前記ホストが発行した転送量を削減できる命令のまま転送し、
    前記第2の命令変換部が、前記ホストが発行した転送量を削減できる命令を前記レプリケーション先のストレージの命令実行部が実行できる形の命令に変換し、レプリケーション先のストレージに渡す、ことを特徴とするストレージシステム。
  31. レプリケーションに際して、レプリケーション元からレプリケーション先へ転送されることになる1つ又は複数の命令をそのまま転送するかわりに、
    前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション元から前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする命令形式の1つ又は複数の転送用命令に変換する工程と、
    前記変換した転送用命令を、前記レプリケーション元から前記レプリケーション先に転送する工程と、
    を含む、ことを特徴とするレプリケーション方法。
  32. 前記レプリケーション先では、前記レプリケーション元からの前記転送用命令を受け取り、前記レプリケーション先の命令形式に変換して実行するか、もしくは、前記レプリケーション先で前記転送用命令を実行できる場合にはそのまま実行する、ことを特徴とする請求項31記載のレプリケーション方法。
  33. 前記ホストから前記レプリケーション元のストレージに発行される命令が、互いに異なる複数の領域への同一データの書き込みである場合には、前記レプリケーション元は、前記複数の書き込み命令を、1つの命令で異なる複数の領域への同一データの書き込みを指示する命令形式の転送用命令に変換して、前記転送用命令を前記レプリケーション先へ転送する、ことを特徴とする請求項31記載のレプリケーション方法。
  34. 前記レプリケーション元において、前記ホストから発行された命令のうち、レプリケーションによる転送を伴う命令を一時的に蓄積するバッファを備え、
    前記バッファの蓄積量が所定値以上となったとき、
    前記バッファに蓄積される複数の命令において所定の命令パターンが検知されたとき、
    前記転送用命令に変換できる命令の組み合わせが到着したとき、
    前回の転送処理から所定時間経過したとき、
    前回の転送処理が終わったとき、
    のいずれかの条件に該当するとき、転送処理を開始する、ことを特徴とする請求項31記載のレプリケーション方法。
  35. ホストと、
    レプリケーション元と、
    レプリケーション先と、
    を備えたシステムのレプリケーション方法において、
    前記レプリケーション元から前記レプリケーション先へ転送されることになる1つ又は複数の命令を転送するかわりに、前記ホストが、前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション元から前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする命令形式の1つ又は複数の転送用命令に変換する工程と、
    前記ホストが、前記変換した転送用命令を前記レプリケーション元に発行する工程と、
    前記レプリケーション元から前記転送用命令が前記レプリケーション先に転送される工程と、
    前記レプリケーション元、及び、前記レプリケーション先では、前記変換した転送用命令をそのまま実行するか、又は復元して、それぞれのストレージに適用する工程と、
    を含む、ことを特徴とするレプリケーション方法。
  36. ホストと、
    レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    を備えたシステムのレプリケーション方法において、
    前記ホストにおいて、ソフトウェアミラーリング処理を行う命令を予め定義しておき、
    前記ホストは、前記定義された命令を発行する工程と、
    前記ホストから発行された前記命令を、前記レプリケーション元のストレージの命令実行部が実行可能な命令形式に変換し前記レプリケーション元のストレージに対して発行するとともに、前記発行された前記命令をそのまま前記レプリケーション先に転送する工程と、
    転送された前記命令を受け取り、前記レプリケーション先のストレージの命令実行部が実行可能な命令形式に変換し前記レプリケーション先のストレージに対して発行する工程と、
    を含む、ことを特徴とするレプリケーション方法。
  37. 1つ又は複数の記憶装置がホストから発行された命令を受ける工程と、
    前記記憶装置内または複数の前記記憶装置間でデータのコピー又はミラーリング処理を行うにあたり、前記ホストから発行された命令を、前記コピー又はミラーリングで書き込まれるデータの転送を行わない命令形式の少なくとも1つの命令に変換する工程と、
    を含む、ことを特徴とする複製方法。
  38. 前記ホストから発行された複数の命令のパターンに基づきコピー処理であることを認識する、ことを特徴とする請求項37記載の複製方法。
  39. 一回目の書き込み命令では、アドレス、データをそのまま転送して、転送先の前記記憶装置の前記アドレスに前記データを書き込み、
    前記データの書き込み処理を行う2回目以降の書き込み命令を、前記書き込み命令の内容となる前記データのポインタを転送する命令に変換する、ことを特徴とする請求項37記載の複製方法。
  40. 前記コピー又はミラーリング処理の対象となるボリュームが予め指定されている、ことを特徴とする請求項37乃至39のいずれか一に記載の複製方法。
  41. 前記コピー処理を認識する際に、前記ホストのシステムログを利用する、ことを特徴とする請求項37記載の複製方法。
  42. ホストにおいて、記憶装置内又は複数の記憶装置間でのコピー又はミラーリングの書き込み処理を行う命令を予め定義しておき、
    前記ホストが前記定義された命令を発行する工程と、
    前記ホストから発行された前記命令を変換部で受け、前記記憶装置の命令実行部が実行可能な命令形式に変換した上で前記記憶装置に対して発行する工程と、
    を含む、ことを特徴とする複製方法。
  43. ホストと、
    レプリケーション元のストレージと、
    前記レプリケーション元のストレージと通信接続されるレプリケーション先のストレージと、
    を備えたシステムのレプリケーション方法において、
    前記レプリケーション元のストレージは、前記ホストから前記レプリケーション元のストレージに対して発行された命令をバッファに一時的に格納する第1の工程と、
    前記バッファに格納された命令を転送に適した所定の転送用命令に変換する第2の工程と、
    前記レプリケーション元のストレージは、前記転送用命令を前記レプリケーション先のストレージに転送する第3の工程と、
    前記レプリケーション先のストレージは、前記レプリケーション元のストレージから転送された前記転送用命令を受け、前記転送用命令を前記レプリケーション先のストレージの命令実行部で実行できる命令に変換する第4の工程と、
    を含む、ことを特徴とするレプリケーション方法。
  44. 前記第2の工程が、前記バッファに格納されている命令群から、同じデータを複数箇所に書き込みを行う命令の組み合わせを検出した場合に、前記同じデータを複数回転送せずに済む命令形式の転送用の命令に変換した上で、前記転送用命令を前記レプリケーション先のストレージに転送し、
    前記第4の工程が、前記転送用命令を実行用命令に変換して、前記レプリケーション先のストレージに適用する、ことを特徴とする請求項43記載のレプリケーション方法。
  45. 前記第2の工程が、前記バッファリング部に格納されている命令群から、レプリケーション元のストレージに既に存在するデータを書き込む命令群を検出し、レプリケーション元のストレージに既に存在するデータを利用して目的の命令を実現する転送用命令に変換し
    前記第4の工程が、前記転送用命令を実行用命令に変換して、レプリケーション先のストレージに適用する、ことを特徴とする請求項43記載のレプリケーション方法。
  46. ホストと、
    レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    を備えたシステムのレプリケーション方法において、
    前記レプリケーション元のストレージに対応して設けられた第1の命令受信・変換部が、前記ホストから前記レプリケーション元のストレージに対して発行された命令をバッファに一時的に格納する第1の工程と、
    前記第1の命令受信・変換部が、前記バッファに格納された命令を転送に適した転送用命令に変換する第2の工程と、
    前記第1の命令受信・変換部から前記レプリケーション先のストレージに対応して設けられた第2の命令受信・変換部に前記転送用命令を転送する第3の工程と、
    前記第2の命令受信・変換部が前記第1の命令受信・変換部から転送された転送用命令を、前記レプリケーション先のストレージの命令実行部が実行できる命令に変換する処理を行う第4の工程と、
    を含む、ことを特徴とするレプリケーション方法。
  47. 前記第2の工程において、前記バッフに存在する冗長化情報が付与された書き込み命令を、前記レプリケーション先のストレージで復元できるデータを削除した転送用命令に変換して前記レプリケーション先のストレージに転送し、
    前記第4の工程において、前記転送用命令をそのまま実行するか、又は、元の書き込み命令に復元し、前記レプリケーション先のストレージに適用する、ことを特徴とする請求項43乃至46のいずれか一に記載のレプリケーション方法。
  48. 前記ホストは、前記レプリケーション元のストレージに対する命令を発行する命令発行部と記憶部とを備え、
    前記第2の工程が、前記ホストの前記記憶部又は前記レプリケーション先のストレージの記憶部に対して書き込まれるシステムログ情報を監視して、転送量を削減できる処理が行われるか否かを検知し、前記検知情報に基づき、転送用命令への変換を行う、ことを特徴とする請求項43記載のレプリケーション方法。
  49. 前記ホスト及び前記レプリケーション元のストレージを監視する監視手段が、前記ホストが発行する前記ストレージへの命令を監視して発行した再開可能点通知、又は前記ホストが発行した再開可能点通知を、前記第1の命令変換部が転送契機として利用して、転送処理を行う、ことを特徴とする請求項43記載のレプリケーション方法。
  50. 前記第4の工程が、再開可能点通知までの命令を全て受信したことを確認し、依存関係のある命令は、発行順に並び替えてから前記レプリケーション先のストレージへの適用処理を行う、ことを特徴とする請求項49記載のレプリケーション方法。
  51. レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    前記レプリケーション元のストレージを利用するホストと、
    前記レプリケーション元のストレージに対応して設けられる第1の命令受信部が、ホストから受信した命令をレプリケーション元のストレージが実行できる命令に変換する工程と、
    前記レプリケーション先のストレージに対応して設けられる第2の命令受信部が、前記転送用命令をレプリケーション先のストレージの命令実行部が実行できる命令に変換する処理を行う工程と、
    前記ホストは、予め定義された通常の命令よりも転送量を削減できる命令を発行する工程と、
    前記第1の命令受信部が、前記ホストから発行された前記転送量を削減できる命令を、前記レプリケーション元のストレージの命令実行部が実行できる命令形式の命令に変換して前記レプリケーション元のストレージに対して渡す工程と、
    前記第1の命令受信部は、前記レプリケーション先のストレージへの転送にあたり、前記ホストが発行した前記転送量を削減できる命令のままで転送する工程と、
    前記第2の命令受信部が、前記ホストが発行した前記転送量を削減できる命令を前記レプリケーション先のストレージの実行できる形の命令に変換し、レプリケーション先のストレージに渡す工程と、
    を含む、ことを特徴とするレプリケーション方法。
  52. レプリケーション元からレプリケーション先へのレプリケーションシステムを構成するレプリケーション元のコンピュータに、
    レプリケーションに際し、前記レプリケーション先へ転送されることになる1つ又は複数の命令をそのまま転送するかわりに、前記1つ又は複数の命令を、レプリケーションにおけるデータ転送総量が、前記レプリケーション先へ前記1つ又は複数の命令をそのまま転送する場合のデータ転送総量よりも少なくする命令形式の1つ又は複数の転送用命令に変換する処理と、
    前記変換した転送用命令を、前記レプリケーション先に転送する処理と、
    を実行させるプログラム。
  53. 請求項52記載のプログラムにおいて、
    ホストから前記レプリケーション元のストレージに発行される命令が、互いに異なる複数の領域への同一データの書き込みである場合には、前記レプリケーション元は、前記複数の書き込み命令を、1つの命令で異なる複数の領域への同一データの書き込みを指示する命令形式の転送用命令に変換して、前記転送用命令を前記レプリケーション先へ転送する処理を、前記コンピュータに実行させるプログラム。
  54. 請求項52記載のプログラムにおいて、
    前記レプリケーション元において、ホストから発行された命令のうち、レプリケーションによる転送を伴う命令を一時的に蓄積するバッファを備え、
    前記バッファの蓄積量が所定値以上となったとき、
    前記バッファに蓄積される複数の命令において所定の命令パターンが検知されたとき、
    前記転送用命令に変換できる命令の組み合わせが到着したとき、
    前回の転送処理から所定時間経過したとき、
    前回の転送処理が終わったとき、
    のいずれかの条件に該当するとき、転送処理を開始する処理を、前記コンピュータに実行させるプログラム。
  55. ホストと記憶装置に接続され、ストレージシステムを構成するコンピュータに、
    前記ホストから発行された命令を受ける処理と、
    前記記憶装置内または複数の前記記憶装置間でデータのコピーを行うにあたり、前記ホストから発行された命令を、前記コピーによって書き込まれるデータの転送を行わない命令に変換する処理と、
    を実行させるプログラム。
  56. 請求項55記載のプログラムにおいて、
    前記ホストから発行された複数の命令のパターンに基づき、コピー処理であることを認識する処理を、前記コンピュータに実行させるプログラム。
  57. 請求項55記載のプログラムにおいて、
    前記記憶装置のあるアドレスからデータを読み出し、前記コピー処理によって発生する書き込み処理を、前記書き込み処理に対応する書き込み命令の内容となるデータのポインタを転送する命令に変換する処理を、前記コンピュータに実行させるプログラム。
  58. 請求項55記載のプログラムにおいて、
    前記コピー処理を認識する際に、前記コピー処理の対象となる記憶単位が予め指定されていることを特徴とするプログラム。
  59. 請求項55記載のプログラムにおいて、
    前記コピー処理を認識する際に、前記ホストのシステムログを利用する処理を、前記コンピュータに実行させるプログラム。
  60. ホストに記憶装置内、又は記憶装置間のデータのコピー処理を行う命令を予め定義しておき、前記ホストと前記記憶装置に接続され、ストレージシステムを構成するコンピュータに、
    前記ホストより発行された、前記定義された命令を一旦受け取り、前記命令を前記記憶装置の命令実行部が実行可能な命令形式に変換し前記記憶装置に対して発行する処理と、
    を実行させるプログラム。
  61. レプリケーション元のストレージと、
    前記レプリケーション元のストレージと通信接続されるレプリケーション先のストレージと、
    を備えたシステムの前記レプリケーション元のストレージを構成するコンピュータに、
    前記ホストから前記レプリケーション元のストレージに対して発行された命令をバッファに一時的に格納する第1の処理と、
    前記バッファに格納された命令を転送に適した所定の転送用命令に変換する第2の処理と、
    前記転送用命令を前記レプリケーション先のストレージに転送する第3の処理と、
    を実行させるプログラム。
  62. 請求項61記載のプログラムにおいて、
    前記第2の処理が、前記バッファに格納されている命令群から、同じデータを複数箇所に書き込みを行う命令の組み合わせを検出した場合に、前記同じデータを複数回転送せずに済む命令形式の転送用の命令に変換した上で、前記転送用命令を前記レプリケーション先のストレージに転送する、ことを特徴とするプログラム。
  63. 請求項61記載のプログラムにおいて、
    前記第2の処理が、前記バッファリング部に格納されている命令群から、レプリケーション元のストレージに既に存在するデータを書き込む命令群を検出し、レプリケーション元のストレージに既に存在するデータを利用して目的の命令を実現する転送用命令に変換する、ことを特徴とするプログラム。
  64. レプリケーション元のストレージと、
    レプリケーション先のストレージと、
    を備えたシステムの前記レプリケーション元のストレージを構成するコンピュータに、
    前記レプリケーション元のストレージに対応して設けられた第1の命令受信・変換部が、前記ホストから前記レプリケーション元のストレージに対して発行された命令をバッファに一時的に格納する第1の処理と、
    前記第1の命令受信・変換部が、前記バッファに格納された命令を転送に適した転送用命令に変換する第2の処理と、
    前記第1の命令受信・変換部から前記レプリケーション先のストレージに対応して設けられた第2の命令受信・変換部に前記転送用命令を転送する第3の処理と、
    を実行させるプログラム。
  65. 請求項64記載のプログラムにおいて、
    前記第2の処理において、前記バッフに存在する冗長化情報が付与された書き込み命令を、前記レプリケーション先のストレージで復元できるデータを削除した転送用命令に変換して前記レプリケーション先のストレージに転送する、ことを特徴とするプログラム。
  66. 請求項55記載のプログラムにおいて、
    前記第2の処理が、システムログ情報を監視して、転送量を削減できる処理が行われるか否かを検知し、前記検知情報に基づき、転送用命令への変換を行う、ことを特徴とするプログラム。
  67. 請求項55記載のプログラムにおいて、
    ホストが発行する前記ストレージへの命令を監視して発行した再開可能点通知、又は前記ホストが発行した再開可能点通知を、前記第1の命令変換部が転送契機として利用して、転送処理を行う処理を、前記コンピュータに実行させるプログラム。
  68. 記憶装置にデータの書き込みを行うにあたり、データを指定アドレスに格納する命令を複数発行し、同一データを複数の異なるアドレスに書き込む場合、前記書き込みを行うための複数の命令を、複数のアドレスと1つの前記データとをオペランドに含む命令形式の1つの書き込み命令に変換する手段を備えている、ことを特徴とする情報処理装置。
  69. 記憶装置にデータの書き込みを行うにあたり、データを指定アドレスに格納する命令を複数発行し、同一データを複数(N個)のアドレスに格納する場合、前記書き込みを行うための複数の命令を、前記データを第1のアドレスに書き込む命令と、前記データへのポインタと前記データの第i(ただし、iは2乃至Nの整数)のアドレスとをオペランドに有する命令形式の1つ又は複数の命令とに変換する手段を備えている、ことを特徴とする情報処理装置。
  70. 読み出しアドレスに格納されたデータを読み出す読み出し命令につづいて、書き込みデータとして、前記読み出し命令で読み出される前記データと、前記読み出しアドレスと異なる他のアドレスを書き込み先としてオペランドに指定した書き込み命令が入力された場合、前記リード命令を実行せずに、前記書き込み命令を、前記読み出しアドレスに格納されたデータを、書き込み先である前記他のアドレスへデータ転送を行うデータ転送命令に変換する手段を備えている、ことを特徴とする情報処理装置。
  71. 1のノードから他のノードに、データを指定アドレスに格納する命令を複数発行することで同一データを複数のアドレスに格納する前記複数の命令を転送するにあたり、前記複数の命令を、オペランドに、前記データと、複数の領域を指定する命令形式の1つの命令に変換した上で転送する、ことを特徴とするデータ転送方法。
JP2004336180A 2004-11-19 2004-11-19 ストレージシステムとそのレプリケーション方法並びにプログラム Expired - Fee Related JP4887618B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004336180A JP4887618B2 (ja) 2004-11-19 2004-11-19 ストレージシステムとそのレプリケーション方法並びにプログラム
US11/282,049 US7698308B2 (en) 2004-11-19 2005-11-17 Storage system and method for data replication with reduced redundant data transfer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004336180A JP4887618B2 (ja) 2004-11-19 2004-11-19 ストレージシステムとそのレプリケーション方法並びにプログラム

Publications (2)

Publication Number Publication Date
JP2006146580A JP2006146580A (ja) 2006-06-08
JP4887618B2 true JP4887618B2 (ja) 2012-02-29

Family

ID=36462167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004336180A Expired - Fee Related JP4887618B2 (ja) 2004-11-19 2004-11-19 ストレージシステムとそのレプリケーション方法並びにプログラム

Country Status (2)

Country Link
US (1) US7698308B2 (ja)
JP (1) JP4887618B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069270B1 (en) * 2005-09-06 2011-11-29 Cisco Technology, Inc. Accelerated tape backup restoration
US8266431B2 (en) * 2005-10-31 2012-09-11 Cisco Technology, Inc. Method and apparatus for performing encryption of data at rest at a port of a network device
JP4762693B2 (ja) * 2005-11-22 2011-08-31 株式会社日立製作所 ファイルサーバ、ファイルサーバのログ管理システム及びファイルサーバのログ管理方法
US8131860B1 (en) * 2006-03-30 2012-03-06 Emc Corporation Serialization and deserialization
US20080114896A1 (en) * 2006-10-05 2008-05-15 Holt John M Asynchronous data transmission
US8037240B2 (en) * 2007-10-24 2011-10-11 International Business Machines Corporation System and method for using reversed backup operation for minimizing the disk spinning time and the number of spin-up operations
US8464074B1 (en) 2008-05-30 2013-06-11 Cisco Technology, Inc. Storage media encryption with write acceleration
JP4612714B2 (ja) * 2008-08-12 2011-01-12 株式会社日立製作所 データ処理方法、クラスタシステム、及びデータ処理プログラム
JP5104817B2 (ja) * 2009-06-30 2012-12-19 富士通株式会社 ストレージシステム、ストレージ制御装置及び方法
US8364636B2 (en) * 2009-09-14 2013-01-29 International Business Machines Corporation Real time data replication
JP5170169B2 (ja) * 2010-06-18 2013-03-27 Necシステムテクノロジー株式会社 ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム
JP2012022645A (ja) * 2010-07-16 2012-02-02 Toshiba Corp データ記憶システムおよび非同期レプリケーション方法
JP6164042B2 (ja) * 2013-10-24 2017-07-19 富士通株式会社 中継装置、中継方法、中継プログラム、および中継システム
US10142415B2 (en) 2014-01-28 2018-11-27 Hewlett Packard Enterprise Development Lp Data migration
US9940379B2 (en) * 2014-09-30 2018-04-10 International Business Machines Corporation Hybrid data replication
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5368928A (en) * 1976-12-01 1978-06-19 Toshiba Corp Data clear system
US5418971A (en) * 1992-04-20 1995-05-23 International Business Machines Corporation System and method for ordering commands in an automatic volume placement library
US5403639A (en) * 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
JPH08212153A (ja) * 1995-01-31 1996-08-20 Sony Corp 情報信号複写方法
JPH09244893A (ja) * 1996-03-11 1997-09-19 Hitachi Ltd 並列計算機システムにおける一括転送方法
US5852715A (en) * 1996-03-19 1998-12-22 Emc Corporation System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions
US5857208A (en) * 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
JPH1031561A (ja) * 1996-07-16 1998-02-03 Hitachi Ltd データ多重化方法および情報処理装置ならびに記憶サブシステム
US6275953B1 (en) * 1997-09-26 2001-08-14 Emc Corporation Recovery from failure of a data processor in a network server
JP4689137B2 (ja) * 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
JP4282030B2 (ja) * 1999-06-03 2009-06-17 株式会社日立製作所 データ二重化制御方法および二重化した記憶サブシステム
US6792557B1 (en) * 1999-10-22 2004-09-14 Hitachi, Ltd. Storage area network system
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6388584B1 (en) * 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
JP4135855B2 (ja) * 2001-02-28 2008-08-20 株式会社日立製作所 記憶装置システム及びバックアップ方法
US7096269B2 (en) * 2001-03-30 2006-08-22 Hitachi, Ltd. Path selection methods for storage based remote copy
JP4148663B2 (ja) * 2001-09-11 2008-09-10 株式会社日立製作所 データ保証システム
JP3730907B2 (ja) 2001-12-04 2006-01-05 日本電気株式会社 ディスクアレイ装置間の遠隔データコピー方式
JP2002324007A (ja) * 2002-02-21 2002-11-08 Fujitsu Ltd I/oサブシステム及びi/oサブシステムにおけるメモリイニシャライズ方法
JP2003334049A (ja) * 2002-03-13 2003-11-25 Mitsubishi Gas Chem Co Inc ラベル型脱酸素剤
JP4148698B2 (ja) 2002-04-30 2008-09-10 株式会社東芝 分散ファイルシステム及びそのデータ多重化方法
US7844577B2 (en) * 2002-07-15 2010-11-30 Symantec Corporation System and method for maintaining a backup storage system for a computer system
JP2004139503A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
JP2004227445A (ja) * 2003-01-27 2004-08-12 Hitachi Ltd 記憶装置サブシステムにおけるコピー方法および記憶装置サブシステム
JP4703959B2 (ja) * 2003-12-03 2011-06-15 株式会社日立製作所 記憶装置システムおよびそのレプリケーション作成方法
US7167880B2 (en) * 2004-04-14 2007-01-23 Hitachi, Ltd. Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling
US7058731B2 (en) * 2004-08-03 2006-06-06 Hitachi, Ltd. Failover and data migration using data replication

Also Published As

Publication number Publication date
JP2006146580A (ja) 2006-06-08
US7698308B2 (en) 2010-04-13
US20060112149A1 (en) 2006-05-25

Similar Documents

Publication Publication Date Title
JP4887618B2 (ja) ストレージシステムとそのレプリケーション方法並びにプログラム
EP3830681B1 (en) Synchronous replication based cutover engine
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
US8266401B2 (en) Storage controller and data management method
US7370228B2 (en) Data processing system and copy processing method thereof
US8689047B2 (en) Virtual disk replication using log files
US9727262B2 (en) Low overhead resynchronization snapshot creation and utilization
US7822892B2 (en) Managing the copying of writes from primary storages to secondary storages across different networks
US7509467B2 (en) Storage controller and data management method
US8438353B1 (en) Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot
JP2005228217A (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
US7069400B2 (en) Data processing system
JP2008225616A (ja) ストレージシステム、リモートコピーシステム、及びデータ復元方法
US7904682B2 (en) Copying writes from primary storages to secondary storages across different networks
US20090177916A1 (en) Storage system, controller of storage system, control method of storage system
JP2007072847A (ja) 情報処理システムとセパレート隠蔽装置及びセパレート制御方法並びにプログラム
CN111831230A (zh) 一种面向高性能计算及大数据的智能存储系统
JP2011003030A (ja) 情報処理システムおよびプログラム
JP2006285336A (ja) 記憶装置及びストレージシステム並びにその制御方法
Xiang et al. Storage virtualization based asynchronous remote mirror
US12039182B2 (en) Techniques for creating identical snapshots on systems during synchronous replication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111128

R150 Certificate of patent or registration of utility model

Ref document number: 4887618

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees