(57)【特許請求の範囲】
【請求項１】
複数の記録装置にアクセス可能なコンピュータに、
前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得し、
取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、書込先となる前記各アドレスが共通する度合いを示す重複度を算出し、
算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後に当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択し、
選択されたデータ移行方式を実行する、
処理を実行させることを特徴とするデータ移行処理プログラム。
【請求項２】
前記重複度を算出する処理は、前記更新用のデータ群にそれぞれ設定されているアドレスの総数うち、他のアドレスと一致するアドレスの数の割合から前記重複度を算出することを特徴とする請求項１に記載のデータ移行処理プログラム。
【請求項３】
前記更新用のデータ群にそれぞれ設定されている各アドレスは、連続する複数アドレス単位のグループに分類されており、
前記重複度を算出する処理は、前記更新用のデータ群にそれぞれ設定されているアドレスの総数のうち、他のアドレスと同じグループに分類されるアドレスの数の割合から前記重複度を算出することを特徴とする請求項１に記載のデータ移行処理プログラム。
【請求項４】
前記重複度を算出する処理は、前記グループの総数のうち、前記更新用のデータ群にそれぞれ設定されているアドレスが複数分類されるグループの数の割合から前記重複度を算出する請求項３に記載のデータ移行処理プログラム。
【請求項５】
前記いずれか一方のデータ移行方式を選択する処理は、前記重複度がしきい値以上であった場合、前記非同期方式を選択し、しきい値未満であった場合、前記同期方式を選択することを特徴とする請求項１〜４のいずれか一つに記載のデータ移行処理プログラム。
【請求項６】
複数の記録装置にアクセス可能なデータ移行処理装置であって、
前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得する取得手段と、
前記取得手段によって取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、書込先となる前記各アドレスが共通する度合いを示す重複度を算出する算出手段と、
前記算出手段によって算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後に当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択する選択手段と、
前記選択手段によって選択されたデータ移行方式を実行する実行手段と、
を備えることを特徴とするデータ移行処理装置。
【請求項７】
複数の記録装置にアクセス可能なコンピュータが、
前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得し、
取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、書込先となる前記各アドレスが共通する度合いを示す重複度を算出し、
算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後に当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択し、
選択されたデータ移行方式を実行する、
処理を実行することを特徴とするデータ移行処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、業務を停止させることなく所定のメモリ領域へデータを移行させる技術分野に関する。
【背景技術】
【０００２】
従来より、所定の業務用のサーバから業務を停止させることなくオンライン上で特定のメモリ領域にデータを移行するデータ移行処理技術が提供されている。このようなデータ移行時に複数のメモリ領域がデータ移行先として存在する場合には、同期方式（ミラー方式）と、非同期方式（バックグラウンドコピー方式）との２種類の方式によって複数のメモリ領域にそれぞれ更新用のデータ移行がおこなわれる。
【０００３】
ここで同期方式とは、業務時に最初にデータの更新が実行されるメモリ領域、すなわち移行元となるメモリ領域への更新がおこなわれると、移行先となるメモリ領域への更新も同時に反映させる方式である。一方、非同期方式とは、移行元となるメモリ領域への更新がおこなわれる場合には、更新アドレスを一次記憶上にビットマップなどの形式で記憶しておく。そして、所定のタイミングで一括して移行先となるメモリ領域へ更新を反映させる方式である。
【０００４】
これら同期方式・非同期方式には、それぞれ長所・短所があり、移行要件や移行元・移行先の環境によって使い分ける必要がある。たとえば、同期方式は、移行元となるメモリ領域への負荷が軽い、更新されたデータを複数のメモリ領域に即座に反映させることができるという長所を持つ。反面、同期方式は、更新時に更新対象となるメモリのアドレスの重複の度合いが高い場合、無駄な処理が多くなってしまう、移行先となるメモリ領域の性能（容量やアクセス速度）が低い場合には更新が正しく反映されずに業務に影響してしまうといった短所を持つ。
【０００５】
また、非同期方式の場合には、上述したようなアドレスの重複の度合いが高い場合には、効率的に更新用のデータを移行できる、移行先となるメモリ領域の性能が低い場合であっても、移行元となるメモリ領域から移行先となるメモリ領域へデータが移行されるため、更新の反映の遅れが業務に影響することがないという長所を持つ。そして、反面、非同期方式は、移行元となるメモリ領域への負荷が重い、更新用のデータ移行速度が更新の速度に追いつかない場合があるといった短所を持つ。したがって、更新用のデータ群の送信元では、更新のたびに、更新用のデータ群の内容に応じて、上述した同期方式と非同期方式とを選択してデータ移行処理をおこなう。
【０００６】
【特許文献１】特開２００６−３３８０６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のデータ移行処理では、同期方式と非同期方式との特徴を考慮してデータ移行処理をおこなうシステム管理者が経験や勘に基づいていずれかの方式を選択しなければならなかった。一般的に、データベース処理の場合、更新用のデータ群はそれぞれ異なる領域のアドレスに書き込まれる傾向にあるため重複の度合いは低くなり、反対に、ファイルシステム処理の場合は、比較的重複の度合いが高くなる傾向にあるが、実際は、扱うデータ群の内容によって重複の度合いは様々であり、一意的に判断することができない。
【０００８】
たとえば、データベース処理であっても，特定のメタデータに対しては頻繁にアクセスすることがあり、必ずしも更新用のデータ群のアドレス同士の重複度合いが小さくないことがある。逆に、ファイルシステム処理であっても、主としてデータベースのテーブルとして利用され、広範囲のファイルオフセットにわたって更新がおこなわれる場合は、重複の度合いがそれほど大きくならない。このように、一般的な傾向を考慮しても、システム管理者による重複の度合いの予想が大きく外れてしまうことがあった。結果として、非効率的なデータ移行処理になってしまうという問題があった。
【０００９】
上述した従来技術による問題点を解消するため、更新用のデータ群の内容に応じて自動的に最も効率的な方式でデータ移行処理をおこなうことのできるデータ移行処理プログラム、データ移行処理装置およびデータ移行処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本技術は、複数の記録装置にアクセス可能なコンピュータにおいて、前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得する処理と、取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、前記アドレスに関する重複度を算出する処理と、算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に前記他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後に当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択する処理と、選択されたデータ移行方式を実行する処理と、を含むことを要件とする。
【００１１】
この技術によれば、一の記録装置に対する更新用のデータ群が取得されると、算出された重複度に応じて、自動的に同期方式と非同期方式とのうち、効率的なデータ移行処理の方式を選択して実行させることができる。
【発明の効果】
【００１２】
この技術によれば、データの内容に応じて自動的に最も効率的な方式でデータ移行処理をおこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、このデータ移行処理プログラム、データ移行処理装置およびデータ移行処理方法の好適な実施の形態を詳細に説明する。本実施の形態にかかるデータ移行処理プログラム、データ移行処理装置およびデータ移行処理方法は、更新用のデータ群を取得すると、これらデータ群の書込先となるアドレスを参照して、重複するアドレスの割合を重複度として算出する。そして、算出された重複度に基づいて、同期方式と非同期方式のいずれか一方を選択してデータ移行処理を実行する。以下にまず、本実施の形態にかかるデータ移行処理の概要について説明した後、実際にデータ移行処理を実現するための具体的な実施例を挙げて説明する。
【００１４】
（データ移行処理の概要）
まず、本実施の形態にかかるデータ移行処理の概要について説明する。図１は、本実施の形態にかかるデータ移行処理の概要を示す説明図である。図１のように、データ移行処理装置１００は、複数の記録装置１１０、１２０にアクセス可能になっている。そして、データ移行処理装置１００が更新用のデータ群を取得すると、これら更新用のデータ群を、更新先となる複数の記録装置１１０、１２０に移行する。なお、図１では、記録装置として記録装置１１０、１２０の２つを示しているが、記録装置の数に特に制限はなく、２台以上あってもよい。
【００１５】
そして、データ移行処理装置１００によってデータ移行処理をおこなう際には、複数の記録装置１１０、１２０のうち、一の記録装置を移行元（親）の記録装置として設定する。図１の例の場合は、記録装置１１０を移行元（親）とし、他の記録装置１２０を移行先（子）として処理をおこなう。この移行元（親）、移行先（子）の設定をおこなうことによって非同期方式の場合であれば、移行元の記録装置１１０に対して優先的に更新用のデータ群を移行する。すなわち、データ移行処理装置１００は、移行元（親）となる記録装置１１０の記録内容を更新した後、記録装置１１０の更新内容を他の記録装置１２０に対しても反映させるように記録装置１１０へデータ移行指示をおこなう装置となる。
【００１６】
このデータ移行処理には、従来のデータ移行処理と同様に、同期方式と、非同期方式の２種類が存在する。そして、本実施の形態にかかるデータ移行処理装置１００は、更新用のデータ群を取得すると、自動的に最適な方式を選択してデータ移行処理を実行させることができる。
【００１７】
図１を用いてデータ移行処理の具体的な処理手順を説明すると、データ移行処理装置１００は、更新用のデータ群を取得すると、データ移行処理の前に、まずデータ群の重複度判定をおこなう（ステップＳ１０１）。そして、ステップＳ１０１によって判断された重複度に応じてデータ移行方式を選択する（ステップＳ１０２）。
【００１８】
同期方式の場合は、データ移行処理装置１００からデータ更新対象となるすべての記録装置（ここでは記録装置１１０、１２０）に直接の更新用のデータ群が送信される。図１の場合、更新用のデータ群である「データｖｏｌ．１．１」は、重複度が低いと判断されたため、同期方式が選択されている。したがって、データ移行処理装置１００から記録装置１１０、１２０へ直接「データｖｏｌ．１．１」が送信される。記録装置１１０、１２０では、送信された「データｖｏｌ．１．１」を順次書き込み、記録内容を更新する。
【００１９】
また、非同期方式の場合は、データ移行処理装置１００からデータ移行元である記録装置１１０に更新用のデータ群が送信される。データ移行元である記録装置１１０は、更新用のデータ群が送信されると、これらのデータ群を順次書き込むことによって記録内容を更新する。更新が終了後、記録装置１１０は、任意のタイミングで更新用のデータ群をデータ移行先である記録装置１２０へ一括して送信する。記録装置１２０は、記録装置１１０から送信された更新用のデータ群を書き込み、更新を反映させる。
【００２０】
図１の場合、更新用のデータ群である「データｖｏｌ，１．２」は、重複度が高いと判断されたため、非同期方式が選択されている。したがって、データ移行処理装置１００からは、まず、記録装置１１０へ「データｖｏｌ，１．２」が送信される。記録装置１１０では、送信された「データｖｏｌ，１．２」を順次書き込み、記録内容を更新する。更新終了後、記録装置１１０は、更新が終了した「データｖｏｌ，１．２」を一括して記録装置１２０へ送信する。記録装置１２０は、送信された「データｖｏｌ，１．２」によって記録内容を更新する。
【００２１】
（重複度の算出法）
図１のステップＳ１０１によって求めた重複度とは、更新用のデータ群のうち、書込先となるアドレスに関する重複の度合いをあらわす値である。アドレスの重複の度合いが高いということは、記録装置１１０、１２０のメモリ領域への各データを書き込む際に、同じブロックへのアクセスが多いことを意味する。通常、記録装置１１０、１２０間でデータ群を移行する場合には、所定数アドレスごとにまとめられたブロック単位でデータを移行する。したがって、重複度が高ければ、記録装置１１０に更新用のデータ群が書き込まれた後、書き込みが終了したブロックごとに記録装置１２０へデータを移行すればよい。
【００２２】
重複度の算出法は一様ではなく、様々な算出法を利用することができる。たとえば、第１の算出法として、更新用のデータ群にそれぞれ設定されている各アドレス（分母）のうち、他のアドレスと一致するアドレス（分子）の割合から重複度を求める。この場合、「重複度＝他のアドレスと一致するアドレスの数／更新用のデータ群に設定されている各アドレスの総数」となる。当然、重複度を％で表現したければ、上述の式に１００をかければよい。
【００２３】
また、第２の算出法として、更新用のデータ群にそれぞれ設定されている各アドレスは、連続する複数アドレス単位のグループに分類されることを利用して重複度を求めてもよい。通常、記録装置１１０、１２０のメモリ領域のアドレス空間は、数アドレスごとのブロックに分割されている。したがって、同じブロックに書き込まれるデータのアドレスは、同じグループに分類されることになる。そして、記録装置１１０のメモリ領域から記録装置１２０のメモリ領域へとデータを送信して更新（コピー）させる場合は、このブロック単位でデータが扱われる。
【００２４】
たとえば、メモリ領域がアドレス空間００〜ＦＦから構成されている場合に、下記のようなブロックごとにデータ移行がおこなわれるとする。
・アドレス００〜０Ｆ：ブロック０        ・アドレス８０〜８Ｆ：ブロック８
・アドレス１０〜１Ｆ：ブロック１        ・アドレス９０〜９Ｆ：ブロック９
・アドレス２０〜２Ｆ：ブロック２        ・アドレスＡ０〜ＡＦ：ブロックＡ
・アドレス３０〜３Ｆ：ブロック３        ・アドレスＢ０〜ＢＦ：ブロックＢ
・アドレス４０〜４Ｆ：ブロック４        ・アドレスＣ０〜ＣＦ：ブロックＣ
・アドレス５０〜５Ｆ：ブロック５        ・アドレスＤ０〜ＤＦ：ブロックＤ
・アドレス６０〜６Ｆ：ブロック６        ・アドレスＥ０〜ＥＦ：ブロックＥ
・アドレス７０〜７Ｆ：ブロック７        ・アドレスＦ０〜ＦＦ：ブロックＦ
【００２５】
そして、第２の算出法として、更新用のデータ群にそれぞれ設定されている各アドレス（分母）のうち、他のアドレスと同じグループに分類されるアドレス（分子）の割合から全重複度を算出してもよい。この場合、「重複度＝他のアドレスと同じグループに分類されるアドレスの数／更新用のデータ群に設定されている各アドレスの総数」となる。
【００２６】
さらに、第３の算出法として、上述したグループ（分母）のうち、更新用のデータ群にそれぞれ設定されているアドレスが複数分類されるグループ（分子）の割合から重複度を算出してもよい。この場合、「重複度＝更新用のデータ群にそれぞれ設定されているアドレスが複数分類されるグループの数／総グループ数」となる。
【００２７】
具体例を挙げると、更新用のデータ群が、データα（アドレス０１）、データβ（アドレス１１）、データγ（アドレス０３）、データδ（アドレス００）、データε（アドレス５１）の５つのデータによって構成されているとする。これらのデータ群のうち、データα、データγ、データδはブロック０に書き込まれ、データβはブロック１に書き込まれ、データεはブロック５に書き込まれる。
【００２８】
このような更新用のデータ群について、上述した各算出法を用いて重複度を算出すると下記のようになる。
１）第１の算出法：重複度＝０／５
２）第２の算出法：重複度＝３／５（分子の３は、データα、データγ、データδ）
３）第３の算出法：重複度＝１／１６（分子の１はブロック０）
【００２９】
このように、算出法の選択によって重複度は異なる値となるため、取り扱うデータの種類や、記録装置１１０、１２０のアドレス空間とブロック単位の設定に応じて適宜選択すればよい。また、算出された重複度に基づいて、同期方式と非同期方式とを選択する場合、重複度が大きければ非同期方式の選択、重複度が小さければ同期方式の選択が好ましい。したがって、あらかじめ、しきい値を設定しておくことによって、算出された重複度がしきい値以上か未満かに応じて、自動的に同期方式と非同期方式とを選択し、データ移行処理を実行させることができる。
【００３０】
つぎに、上述したようなデータ移行処理を実現するための、具体的な構成と処理手順を説明し、さらに実用に適した実施例を紹介する。
【００３１】
（データ移行処理装置のハードウェア構成）
まず、本実施の形態にかかるデータ移行処理装置のハードウェア構成について説明する。図２は、データ移行処理装置のハードウェア構成を示すブロック図である。図２において、データ移行処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０８と、入力デバイス２０９と、出力デバイス２１０と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００３２】
ここで、ＣＰＵ２０１は、データ移行処理装置１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムや、データ移行処理を実行させるためのデータ移行処理プログラムなどの各種プログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００３３】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３４】
通信インターフェース（以下、「Ｉ／Ｆ」と略する）２０８は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１１に接続され、このネットワーク２１１を介して他の装置に接続される。そして、通信Ｉ／Ｆ２０８は、ネットワーク２１１と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信Ｉ／Ｆ２０８には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３５】
入力デバイス２０９は、データ移行処理装置１００に対しての外部からの入力を受け付ける。入力デバイス２０９としては、具体的には、キーボード、マウスなどが挙げられる。
【００３６】
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３７】
出力デバイス２１０は、データ移行処理装置１００によるデータ移行処理の履歴や、更新ごとの選択結果、更新状況などを出力する。出力デバイス２１０としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
【００３８】
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
【００３９】
（データ移行処理装置の機能的構成）
つぎに、データ移行処理装置１００の機能的構成について説明する。図３−１は、データ移行処理装置１００の機能的構成を示すブロック図である。図３−１において、データ移行処理装置１００は、取得部３０１と、算出部３０２と、選択部３０３と、実行部３０４と、を備えている。これら各機能３０１〜３０４は、データ移行処理装置１００の記憶部に記憶された当該機能３０１〜３０４に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。
【００４０】
また、各機能３０１〜３０４からの出力データは上記記憶部に保持される。また、図３−１中の矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するデータ移行処理プログラムをＣＰＵ２０１に実行させるものとする。
【００４１】
まず、取得部３０１は、複数の記録装置（たとえば、記録装置１１０、１２０）の中の一の記録装置に対する更新用のデータ群を取得する。ここでは、図１のように、記録装置１１０に対する更新用のデータ群を取得するものとする。
【００４２】
算出部３０２は、取得部３０１によって取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、アドレスに関する重複度を算出する。ここでアドレスに関する重複度とは、上述したような第１〜第３の算出法を採用して求めてもよいし、さらに異なる算出法を採用してもよい。
【００４３】
選択部３０３は、算出部３０２によって算出された重複度に応じて、同期方式と非同期方式のいずれか一方のデータ移行方式を選択する。同期方式は、アクセス可能なすべての記録装置（ここでは、記録装置１１０と記録装置１２０）へ更新用のデータ群を送信するデータ移行方式である。また、非同期方式は、記録装置１１０へ更新用のデータ群を送信した後、記録装置１１０から他の記録装置１２０へ更新用のデータ群を送信させるデータ移行方式である。なお、算出部３０２によって算出された重複度がしきい値より高い場合は非同期方式、重複度がしきい値より低い場合は同期方式を選択する。
【００４４】
そして、実行部３０４は、選択手段によって選択されたデータ移行方式を実行する。このように、データ移行処理装置１００は、更新用のデータ群を取得すると、データ移行処理の前段に重複度に基づいた選択をおこなうため、効率的にデータ移行処理を実現することができる。
【００４５】
つぎに、図３−１にて説明した各機能部３０１〜３０４によって実行されるデータ移行処理の手順について説明する。図３−２は、データ移行処理の手順を示すフローチャートである。図３−２のフローチャートにおいて、まず、取得部３０１によって更新用のデータ群を取得したか否かを判断する（ステップＳ３１１）、ここで、更新用のデータ群を取得するまで待ち（ステップＳ３１１：Ｎｏのループ）、更新用のデータ群を取得すると（ステップＳ３１１：Ｙｅｓ）、つぎに、算出部３０２によってデータ群の各書込先のアドレスから、更新用のデータ群のアドレスに関する重複度を算出する（ステップＳ３１２）。
【００４６】
そして、選択部３０３によってステップＳ３１２によって算出された重複度がしきい値以上か否かを判断する（ステップＳ３１３）。このステップＳ３１３の判断に利用するしきい値は、あらかじめデータ移行処理装置１００の利用者や上位プログラムによって任意に設定された値を用いることができる。このステップＳ３１３において、重複度がしきい値以上と判断されると（ステップＳ３１３：Ｙｅｓ）、非同期方式を選択して実行部３０４によってデータ移行処理を実行し（ステップＳ３１４）、一連の処理を終了する。一方、重複度がしきい値未満の場合は（ステップＳ３１３：Ｎｏ）、同期方式を選択して実行部３０４によってデータ移行処理を実行し（ステップＳ３１５）、一連の処理を終了する。
【００４７】
以上説明したように、本実施の形態にかかるデータ移行処理では、あらたに重複度を算出することによって、システム管理者が自らの経験や勘に頼る必要なく、自動的に、適切なデータ移行方式を選択することができる。このように、重複度を参照することにより、システム管理者は、従来のような、経験や勘に頼ることなく、常に適切なオンライン移行方式を選択することができる。
【００４８】
しかしながら、実際に上述のデータ移行処理をおこなうと、記録装置１１０、１２０のアドレス空間が広大であると、算出部３０２において、算出時間に多大な時間を要してしまうことがある。また、アドレス空間が広大であると更新用のデータ群に対応したアドレスの重複が殆ど起こらないため、重複度が算出できない場合も想定される。したがって、以下には、実際にデータ移行処理を効率的に実現するための構成を含んだ実施例について説明する。
【００４９】
＜実施例１：同期方式・非同期方式の切り替え＞
まず、実施例１として、図１にて説明した更新データの重複度に応じた同期・非同期方式の切り替え処理について説明する。実施例１では、重複度算出を効率的に実現するために、記録装置１１０、１２０のアドレス空間をビットマップ形式のデータに変換したビットマップを生成し、このビットマップを利用して重複度を算出する。
【００５０】
（ビットマップの生成処理）
まず、ビットマップの生成処理について説明する。実施例１の場合、データ移行処理装置１００は、ビットマップを生成するビットマップ生成機能部を備えている。以下、ビットマップ生成機能部によるビットマップ生成処理の手順について説明する。図４は、ビットマップの生成処理の手順を示すフローチャートである。図４のフローチャートにおいて、まず、親装置１１０のアドレス空間情報を取得する（ステップＳ４０１）。つぎに、ステップＳ４０１によって取得したアドレス空間情報から親装置１１０のアドレス空間のビットマップサイズを算出する（ステップＳ４０２）。そして、ステップＳ４０２によって算出されたサイズのビットマップを生成する（ステップＳ４０３）。このような手順によって生成されたビットマップを利用して更新データの重複度を算出する。
【００５１】
ここで、ステップＳ４０２のビットマップサイズの算出について詳しく説明する。記録装置１１０のメモリ領域のアドレス空間の総容量がａ［ＴＢ］とし、データ移行処理の際のブロックのサイズが、ｂ［ＭＢ］とすると、総ブロック数＝ａ［ＴＢ］／ｂ［ＭＢ］＝ｃ［Ｍ個］となる。したがって、ビットマップの総ビット数は、ｃ［Ｍｂｉｔ］となる。さらに、ビットマップの総ビット数を８で割って，ビットマップサイズをバイト単位で算出すると、ビットマップサイズ＝ｃ［Ｍｂｉｔ］／８［ｂｉｔ／Ｂ］＝ｄ（ＭＢ）となる。データ移行処理装置１００には、少なくとも、このビットマップを記録しておく必要がある。
【００５２】
図５は、重複度の算出に用いるビットマップの一例を示す説明図である。図５のビットマップ５００は、図４のフローチャートのステップＳ４０３の処理によって生成されたビットマップの一例である。ビットマップ５００は、０〜Ｃ−１の計Ｃ個のブロックに分割されている。このＣ個のブロックとはすでに説明したように、アドレス空間を所定数のアドレスの数ごとに分割したグループである。
【００５３】
また、ビットマップ５００の各ブロックには重複フラグ用のメモリ５０１（１ビット）が用意されている。この重複フラグ用のメモリ５０１では、同一のブロックに複数のデータが書き込まれた場合にフラグを立てるものとする。このフラグを後述する重複カウンタｊの計数トリガとしてもよい。
【００５４】
（データ移行方式の選択処理）
つぎに、ビットマップ５００を利用したデータ移行方式の選択処理の手順について説明する。図６は、データ移行方式の選択処理の手順を示すフローチャートである。図６のフローチャートにおいて、まず、更新データがあるか否かを判断する（ステップＳ６０１）。ここで、更新データがあると判断されるまで待ち（ステップＳ６０１：Ｎｏのループ）、更新データがあると判断されると（ステップＳ６０１：Ｙｅｓ）、更新カウンタｉと重複カウンタｊとをそれぞれ０にリセットする（ステップＳ６０２）。
【００５５】
そして、ステップＳ６０１によって判断された更新データを反映させるために、更新カウンタｉをインクリメントし（ステップＳ６０３）、更新データＲｉのアドレスを抽出する（ステップＳ６０４）。そして、ステップＳ６０４によって抽出したアドレスが他の更新データＲｉのアドレスと重複した重複アドレスか否かを判断する（ステップＳ６０５）。このステップＳ６０５の判断は、ビットマップ５００の重複フラグ用のメモリ５０１のフラグが既に立てられている場合には容易に判断することができる。
【００５６】
ステップＳ６０５において、重複アドレスと判断された場合（ステップＳ６０５：Ｙｅｓ）、重複カウンタｊをインクリメントする（ステップＳ６０６）。そして、更新カウンタｉの値が更新データ数Ｅ以上になったか否かの判断をおこない（ステップＳ６０７）、更新カウンタｉの値が更新データ数Ｅ未満であれば（ステップＳ６０７：Ｎｏ）、ステップＳ６０３の処理に戻り、つぎの更新データＲｉのアドレスに関しての重複判断をおこなう。なお、ステップＳ６０５において、重複アドレスでないと判断された場合（ステップＳ６０５：Ｎｏ）、ステップＳ６０６の処理をスキップしてステップＳ６０７の処理に移行する。
【００５７】
ステップＳ６０７において、更新カウンタｉの値が更新データ数Ｅ以上になったと判断された場合（ステップＳ６０７：Ｙｅｓ）、つぎに、重複度を算出する（ステップＳ６０８）。重複度の算出方法として、ここでは、重複度＝重複カウンタｊ／更新カウンタｉ×１００［％］を求める。この算出方法では、更新データを構成するデータ群の総数のうち、重複アドレスとなる更新データがいくつあるかに応じた重複度が算出される。
【００５８】
ステップＳ６０８において重複度が算出されると、この重複度があらかじめ設定したしきい値Ｓよりも大きな値であるか否かを判断する（ステップＳ６０９）。ここで、重複度の値がしきい値Ｓよりも大きいと判断された場合（ステップＳ６０９：Ｙｅｓ）、非同期方式による更新データの移行処理を選択して（ステップＳ６１０）、一連の選択処理を終了する。一方、ステップＳ６０９において、重複度がしきい値Ｓよりも小さいと判断された場合（ステップＳ６０９：Ｎｏ）、同期方式による更新データの移行処理を選択して（ステップＳ６１１）、一連の選択処理を終了する。
【００５９】
ここで、図６のフローチャートにおける更新カウンタおよび重複カウンタの計数手順について詳しく説明する。図７は、重複度の算出に用いるカウンタの概要を示す説明図である。図６のように、実施例１の場合、データ移行処理装置１００には、更新用のデータ群のデータの総数を計数するための更新カウンタ７１０と、すでにデータが書き込まれたブロックに重複してデータを書き込む重複アドレスを計数する重複カウンタ７２０とを備えている。
【００６０】
そして、図７のフローチャートのように、ステップＳ６０１の処理後、更新データが読み込まれる（ステップＳ７０１）と更新カウンタ７１０に計数指示が出力される。そして、ビットマップ５００を参照して更新データのアドレスチェックをおこない（ステップＳ７０２）、ビットが立っているか否かを判断する（ステップＳ７０３）。ここで、ビットが立っていれば（ステップＳ７０３：Ｙｅｓ）、重複カウンタ７２０に計数指示が出力される。ビットが立っていなければ（ステップＳ７０３：Ｎｏ）そのまま、ステップＳ６０７の処理に移行する。以上説明した処理によって更新カウンタ７１０の値ｉと重複カウンタ７２０の値ｊによって重複度＝（ｊ／ｉ）×１００［％］が求められる。ここで利用した算出方法は、データ移行処理の概要にて説明した第２の算出法に相当する。
【００６１】
したがって、ビットマップ５００を利用して第３の算出法による重複度を算出してもよい。この場合は、ビットマップ５００を構成するブロック数：Ｃ個のうちの、重複フラグ用のメモリ５０１のフラグが立ったブロックの数（図７の場合、ブロック０，３など）の割合が、重複度となる。すなわち、重複度＝（ビットが立ったフラグ数／Ｃ）×１００［％］となる。
【００６２】
なお、図６のフローチャートでは、更新用データのすべてのアドレスを確認した後、重複度を求めているが、更新用データの量が膨大になると、ステップＳ６０７のループ処理に時間がかかってしまう。したがって、更新用データのうち所定数以上のデータのアドレスの確認が終了した時点で重複度を求める処理に移行してもよい。また、所定数以上のデータの代わりに、所定時間経過後重複度を求める処理に移行してもよい。
【００６３】
（アドレス空間が広大な場合の選択処理）
つぎに、アドレス空間が広大な場合の選択処理について説明する。上述したように、記録装置１１０のアドレス空間が広大な場合、当然ビットマップサイズも大きくなり、処理時間も長くなってしまう傾向にある。そこで、実施例１では、複数のビットマップを用いて処理時間を短縮する。
【００６４】
図８は、複数のビットマップを用いたデータ移行処理方式の選択処理の手順を示すフローチャートである。図８のフローチャートの場合、ビットマップ１〜ビットマップ５のように、複数のビットマップによってステップＳ６０２〜ステップＳ６０７の処理をおこなう。複数のビットマップのうち、ビットマップ１は、図５にて説明したビットマップ５００である。そして、その他のビットマップ２〜ビットマップ５は、ビットマップ１を構成する各ブロックのハッシュ値によって生成されたビットマップである。
【００６５】
各ブロックのハッシュ値とは、たとえば、１６進数８桁アドレスのうちの下６桁に対応する値である。１６進数８桁アドレスのうちの下６桁のアドレスのみの値になるということは、ＦＦＦＦ０００１も、０ＦＦＦ００１も同じアドレスとして扱われるため、ビットマップサイズが集約されることになる。
【００６６】
したがって、ビットマップ２〜ビットマップ５は、ハッシュ値の取り方を変えることによって、それぞれ、ビットマップ１の１／２５６［ＭＢ］、１／５１２［ＭＢ］、１／１０２４［ＭＢ］、１／２０４８［ＭＢ］のサイズに集約されている。サイズが集約された分、多くのアドレスが同じブロックに含まれるため、重複カウンタが計数されやすい。
【００６７】
したがって、ビットマップ１〜ビットマップ５によって並列に重複値を算出させ、所定時間経過したか否かを判断する（ステップＳ８０１）。そして、所定時間経過するまで待ち（ステップＳ８０１：Ｎｏのループ）、所定時間経過すると（ステップＳ８０１：Ｙｅｓ）、重複度がしきい値以上のビットマップを抽出する（ステップＳ８０２）。なお、ここで判断基準としているしきい値は、ステップＳ６０９において利用するしきい値Ｓとは異なるものであり、重複度として、利用可能な値になっているかを判断するものである。すなわち、アドレス空間があまりにも大きいために、重複値があまりにも小さな値のものは、しきい値Ｓと比較できないため、このステップＳ８０２によって削除することができる。
【００６８】
そして、ステップＳ８０２によって抽出されたビットマップのうち、ビットマップサイズが最大のビットマップを重複度に採用し（ステップＳ８０３）、ステップＳ６０９の処理に移行する。このように、複数のビットマップを用いて並列に重複度を算出させることによって、重複度算出にかかる時間を所定時間内に納めることができる。このように、処理時間を短縮させることによって、システム管理者が想定する時間内にデータ移行処理を実行させることができる。
【００６９】
＜実施例２：新同期モードを含む＞
つぎに、実施例２として、新同期モードを追加した場合のデータ移行処理について説明する。上述した実施例１では、更新データの更新内容の重複度に応じて同期モードと非同期モードを切り替えて効率的なデータ移行を実現している。
【００７０】
ところが、一般に更新データの内容は時刻と共に変化してしまうことが多い。このような場合、せっかく最適な方式が選択されても、データ移行処理の途中で更新パターンや更新アドレスの重複度が変わってしまう場合があった。実施例１の場合は、いずれかの方式でデータ移行処理を開始すると最後までその方式で動作させなくてはならない。このような場合に、移行方式を切り替えるには、データ移行処理装置１００のプログラムを一旦停止させてデータ移行作業を初めからやり直す必要がある。
【００７１】
また、非同期方式の場合は、データ移行のためのデータコピーが業務による更新に追いつかなくなってしまう可能性がある。事前に更新データの量に基づいて非同期方式を選択したとしても、実行中に、追加データが発生し、更新データの量が多くなってしまうためである。そのような場合も、データ移行処理装置１００のプログラムを一旦停止させて移行作業を同期方式で初めからやり直す必要があった。
【００７２】
そこで、実施例２では、データ移行処理装置１００に、更新データのうち、移行先の未コピー領域の更新アドレスから新ビットマップを生成する機能を追加する。そして、データ移行処理装置１００は、新ビットマップに基づき、未コピー領域のデータを移行先となる記録装置１２０へバックグラウンドでコピーする処理を実行させる。このような実施例２のデータ移行方式をここでは、新・同期方式とよぶ。
【００７３】
ここで、実施例２の処理を実施例１と比較するために図９〜１１によって同期方式、非同期方式、新・同期方式について説明する。図９は、同期方式を示す説明図である。図９のように、システム管理者Ａが、業務による更新を指示すると（ステップＳ９０１）、データ移行処理装置１００は、移行元の記録装置１１０と、移行先の記録装置１２０との双方に更新を反映させる（ステップＳ９０２，９０３）。このとき、ステップＳ９０２，９０３の動作を更新スレッド（ＵＤＴ）と呼ぶ。
【００７４】
また、図１０は、非同期方式を示す説明図である。図１０のように、システム管理者Ａが、業務による更新を指示すると（ステップＳ１００１）、データ移行処理装置１００は、移行元の記録装置１１０へ更新を反映させる（ステップＳ１００２）。そして、ビットマップ５００に対して、更新箇所を明確にするため、該当ビットをＯＮにセットする（ステップＳ１００３）。
【００７５】
その後、データ移行処理装置１００は、任意のタイミングで、ステップＳ１００３によってＯＮにした該当ビットをＯＦＦにリセットし（ステップＳ１００４）、移行先の記録装置１１０に、更新内容を移行先の記録装置１２０へコピーさせる指示をおこなう（ステップＳ１００５）。このとき、ステップＳ１００３，１００４，１００５の動作をバックグラウンドコピースレッド（ＢＣＴ）と呼ぶ。
【００７６】
そして、図１１は、新・同期方式を示す説明図である。新・同期方式は、本来であれば非同期方式でしか動作しないステップＳ１００２の機能を同期モードでも動作することを例外的に許容させる。このような構成にすることにより、データ移行処理の途中で、同期方式と非同期方式を動的かつ即座に切り替えることができるようにする。なお、図１１において、実線の矢印に示した動作は更新スレッドに相当し、破線の矢印に示した動作は、バックグラウンドコピースレッドに相当する。
【００７７】
図１１においても、更新データを移行先の記録装置１２０へバックグラウンドでコピーするスレッドをＢＣＴ、更新に伴い更新データを移行元の記録装置１１０へ書き出すスレッドをＵＤＴと呼ぶことにする。そして、システム管理者Ａが、業務による更新を指示する（ステップＳ１１０１）と、重複度に応じた方式でデータ移行を開始する。新・同期方式において、非同期方式が選択されると、ＵＤＴでは、更新データを移行元の記録装置１１０へ書き出すと（ステップＳ１１０２）、同時に、新ビットマップ１１００上の該当ビットをＯＮにセットする（ステップＳ１１０３）。
【００７８】
一方、ＢＣＴでは、記録装置１１０の更新内容を読み込み（ステップＳ１１１１）、ビットマップ１１００上で該当ビットのチェック＆スキップをおこなう（ステップＳ１１１２）。ステップＳ１１１２では、具体的には、ＯＮのビットを走査し、ＯＮのビットが存在した場合には、これをＯＦＦにリセットすると同時に、対応する移行元の記録装置１１０の更新を移行先の記録装置１２０に書き込み（ステップＳ１１１３）、反映させる。
【００７９】
なお、ＵＤＴによって移行元の記録装置１１０へ書き出された更新データがＢＣＴによって移行先の記録装置１２０へコピーされることを保証するために、ＵＤＴはデータを書き出した後で該当ビットをＯＮにセットし、ＢＣＴは移行元ボリュームからデータを読み込む直前に該当ビットをＯＦＦにリセットする（ステップＳ１１１４）。
【００８０】
一方、同期方式が選択されると、ＵＤＴが更新データを移行元の記録装置１１０へ転送によって書き出すと（ステップＳ１１０２）、同時に、同一の更新データを移行先の記録装置１２０へも転送する（ステップＳ１１０４）。ただし、移行元の記録装置１１０の更新結果と移行先の記録装置１２０の更新結果とが矛盾しないようにするために、同一ブロックの更新に関しては、並行して複数の更新要求を発行せず、かつ、移行元の記録装置１１０の更新順序と移行先の記録装置１２０の更新順序が一致するように制御する。
【００８１】
ここで、仮に、移行元の記録装置１１０の未コピー領域が無くなるまで移行方式を非同期方式から同期方式へ遷移させない仕様とすると、ＢＣＴによるコピーがＵＤＴによる更新に追いつけないような状況では、夜間など、更新が少なくなる時間帯を待たない限り、同期方式へ遷移することができない。そこで、同期方式でもＢＣＴが非同期方式と同様に動作し続けることを例外的に許容することにより、未コピー領域が残されている状態のまま移行方式を非同期方式から同期方式へ遷移しても問題ない仕様とする。
【００８２】
ただし、ＢＣＴが動作している同期方式では、ＵＤＴによる最新の複製が、古いデータに基づいたＢＣＴのコピーによって上書きされる事態を回避するための処置をおこなう。具体的には、ＵＤＴは、データを移行先ボリュームへ転送する前に更新ビットマップの該当ビットを確認し、ＯＮの場合はＯＦＦにリセットすることにする。一方、ＢＣＴは、更新ビットマップに基づいて移行元ボリュームからデータを読み込むが、データ読み込み後に更新ビットマップの該当ビットを確認し直す。そして、該当ビットが既にＯＦＦにリセットされている場合は移行先ボリュームへの書き出しをスキップする。
【００８３】
なお、設計を簡単にするために、同期方式・非同期方式間の移行方式遷移のタイミングでは、その時点までに仕掛かり中のＢＣＴの処理を完了させておく。これにより、同期方式で動作するＢＣＴと非同期方式で動作するＢＣＴとが互いにオーバラップしてしまう事態を防ぐことができる。
【００８４】
以上説明したように、新・同期方式は、ＢＣＴを同期方式・非同期方式のどちらで動作させても破綻なくデータ移行処理が実現できるように設定されている。したがって、システム管理者Ａは、自動的に、データ移行方式を動的かつ即座に遷移できるようになる。また、新・同期方式では、更新ビットマップのＯＮのビット数が単調減少することになる。したがって、仮に非同期方式によってＢＣＴによるコピーがＵＤＴによる更新に追いつけないような状況が発生しても、データ移行方式を同期方式に遷移させて一定時間待つことにより、更新を追いつかせ、正しく反映させることができる。
【００８５】
このように、実施例２では、データ移行処理の途中で同期方式と非同期方式を動的かつ即座に切り替え可能な新・同期方式によって更新用データを送信する。新・同期方式により、システム管理者は、データ移行ツールを停止させることなく常に業務の更新パターンに応じた最適な方式を選択しながらデータ移行を継続することができる。その結果、システム管理者は、業務への影響を最小限に抑え、なおかつ、効率的に更新用データの移行処理を実現することができる。
【００８６】
以上説明したように、本実施の形態によれば、実施例１にて説明したように、更新用のデータ群の内容に応じて、最適なデータ移行方式を選択して実行させることができる。また、実施例２では、更新用のデータ群のデータ量が動的に変化する場合であっても、処理を停止させることなく、常に効率的なデータ移行処理をおこなうことができる。
【００８７】
なお、本実施の形態で説明したデータ移行処理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
【００８８】
また、本実施の形態で説明したデータ移行処理装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述したデータ移行処理装置１００の機能（取得部６０１〜実行部６０４）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、データ移行処理装置１００を製造することができる。
【００８９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９０】
（付記１）複数の記録装置にアクセス可能なコンピュータを、
前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得する取得手段、
前記取得手段によって取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、前記アドレスに関する重複度を算出する算出手段、
前記算出手段によって算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に前記他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後、当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択する選択手段、
前記選択手段によって選択されたデータ移行方式を実行する実行手段、
として機能させることを特徴とするデータ移行処理プログラム。
【００９１】
（付記２）前記算出手段は、前記更新用のデータ群にそれぞれ設定されているアドレスの総数のうち、他のアドレスと一致するアドレスの数の割合から前記重複度を算出することを特徴とする付記１に記載のデータ移行処理プログラム。
【００９２】
（付記３）前記更新用のデータ群にそれぞれ設定されている各アドレスは、連続する複数アドレス単位のグループに分類されており、
前記算出手段は、前記更新用のデータ群にそれぞれ設定されているアドレスの総数のうち、他のアドレスと同じグループに分類されるアドレスの数の割合から前記重複度を算出することを特徴とする付記１に記載のデータ移行処理プログラム。
【００９３】
（付記４）前記算出手段は、前記グループの総数のうち、前記更新用のデータ群にそれぞれ設定されているアドレスが複数分類されるグループの数の割合から前記重複度を算出する付記３に記載のデータ移行処理プログラム。
【００９４】
（付記５）前記算出手段は、前記一の記録装置のアドレス空間をビットマップに変換し、当該ビットマップにおける、前記更新用のデータ群にそれぞれ設定されている各アドレスの割合から前記重複度を算出することを特徴とする付記１〜４のいずれか一つに記載のデータ移行処理プログラム。
【００９５】
（付記６）前記算出手段は、前記更新用のデータ群にそれぞれ設定されている各アドレスをハッシュ値に変換することを特徴とする付記１〜５のいずれか一つに記載のデータ移行処理プログラム。
【００９６】
（付記７）前記算出手段は、前記一の記録装置のアドレス空間のサイズがしきい値以上であった場合、前記ハッシュ値を前記ビットマップ形式の情報に変換することを特徴とする付記６に記載のデータ移行処理プログラム。
【００９７】
（付記８）前記選択手段は、前記重複度がしきい値以上であった場合、前記非同期方式を選択し、しきい値未満であった場合、前記同期方式を選択することを特徴とする付記１〜６のいずれか一つに記載のデータ移行処理プログラム。
【００９８】
（付記９）前記一の記録装置のアドレス空間をビットマップに変換した新たなビットマップを生成する生成手段を備え、
前記実行手段は、前記更新用のデータ群の前記一の記録手段への送信状況を前記生成手段によって生成されたあらたなビットマップに記録し、前記更新用のデータ群のデータ移行処理実行中に、前記選択手段によってあらたなデータ移行方式が選択されると、前記新たなビットマップの送信状況に基づいて、前記あらたなデータ移行方式を実行することを特徴とする付記１〜８のいずれか一つに記載のデータ移行処理プログラム。
【００９９】
（付記１０）複数の記録装置にアクセス可能なデータ移行処理装置であって、
前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得する取得手段と、
前記取得手段によって取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、前記アドレスに関する重複度を算出する算出手段と、
前記算出手段によって算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に前記他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後、当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択する選択手段と、
前記選択手段によって選択されたデータ移行方式を実行する実行手段と、
を備えることを特徴とするデータ移行処理装置。
【０１００】
（付記１１）複数の記録装置にアクセス可能なコンピュータが、
前記複数の記録装置の中の一の記録装置に対する更新用のデータ群を取得する取得工程と、
前記取得工程によって取得された更新用のデータ群にそれぞれ設定されている各アドレスに基づいて、前記アドレスに関する重複度を算出する算出工程と、
前記算出工程によって算出された重複度に応じて、前記一の記録装置へ前記更新用のデータ群を送信するのと同時に前記他の記録装置へ前記更新用のデータ群を送信する同期方式と、前記一の記録装置へ前記更新用のデータ群を送信した後、当該一の記録装置から前記他の記録装置へ前記更新用のデータ群を送信させる非同期方式とのいずれか一方のデータ移行方式を選択する選択工程と、
前記選択工程によって選択されたデータ移行方式を実行する実行工程と、
を実行することを特徴とするデータ移行処理方法。
【図面の簡単な説明】
【０１０１】
【図１】本実施の形態にかかるデータ移行処理の概要を示す説明図である。
【図２】データ移行処理装置ハードウェア構成を示すブロック図である。
【図３−１】データ移行処理装置の機能的構成を示すブロック図である。
【図３−２】データ移行処理の手順を示すフローチャートである。
【図４】ビットマップの生成処理の手順を示すフローチャートである。
【図５】重複度の算出に用いるビットマップの一例を示す説明図である。
【図６】データ移行方式の選択処理の手順を示すフローチャートである。
【図７】重複度の算出に用いるカウンタの概要を示す説明図である。
【図８】複数のビットマップを用いたデータ移行処理方式の選択処理の手順を示すフローチャートである。
【図９】同期方式を示す説明図である。
【図１０】非同期方式を示す説明図である。
【図１１】新・同期方式を示す説明図である。
【符号の説明】
【０１０２】
１００  データ移行処理装置（データ移行処理サーバ）
１１０  記録装置（データ移行元）
１２０  記録装置（データ移行先）
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  ハードディスクドライブ
２０５  ハードディスク
２０６  光ディスクドライブ
２０７  光ディスク
２０８  通信Ｉ／Ｆ
２０９  入力デバイス
２１０  出力デバイス
２１１  ネットワーク（ＮＥＴ）
３０１  取得部
３０２  算出部
３０３  選択部
３０４  実行部
【図１】
0005092897.tif 000002
【図２】
0005092897.tif 000003
【図３−１】
0005092897.tif 000004
【図３−２】
0005092897.tif 000005
【図４】
0005092897.tif 000006
【図５】
0005092897.tif 000007
【図６】
0005092897.tif 000008
【図７】
0005092897.tif 000009
【図８】
0005092897.tif 000010
【図９】
0005092897.tif 000011
【図１０】
0005092897.tif 000012
【図１１】
0005092897.tif 000013