(57)【要約】【課題】適切に行えたか否かを確実に確認しつつ、より短い時間でデータ移行を行えるようにするための技術を提供する。【解決手段】移行先ストレージ１０は、移行元ストレージ２０から、移行対象のデータを単位データに分けて読み出し、読み出した単位データからハッシュ値であるチェックサムを算出し、算出したチェックサム、及び単位データをキャッシュメモリ１５に格納する。その後、キャッシュメモリ１５から単位データを読み出し、チェックサムを算出してキャッシュメモリ１５に格納し、読み出した単位データはハードディスク装置群１６に格納する。データ移行が完了した後は、読み出し時、書き込み時にそれぞれ算出したチェックサムの累計値を求め、それらの累計値が一致するか否か比較することにより、データ移行が適切に行えたか否か確認する。その確認結果はキャッシュメモリ１５に保存する。【選択図】図２
2011039841.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージ装置に格納されたデータを第２のストレージ装置にコントローラを用いて格納するデータ移行方法において、
前記第１のストレージ装置に格納されたデータを所定の単位データに分けて読み出す場合に、該単位データ毎に該単位データを用いた計算を行い、該単位データの内容により変化する数値を算出する第１の数値算出工程と、
前記数値を算出した後の単位データを前記第２のストレージ装置に格納するデータ格納工程と、
前記データ格納工程により前記第２のストレージ装置に格納する単位データ、及び該第２のストレージ装置に格納された単位データのうちの一方を用いた計算を行い、該単位データの内容により変化する数値を算出する第２の数値算出工程と、
前記第１及び第２の数値算出工程によりそれぞれ算出した数値を基に、該数値の算出にそれぞれ用いられた単位データが一致するか否か確認する比較工程と、
を含むことを特徴とするデータ移行方法。
【請求項２】
前記第２のストレージ装置は、一つ以上の記録媒体が属する、並行にアクセス可能なグループを複数、備え、前記第１のストレージ装置に格納されたデータを分けて該第２のストレージ装置の複数のグループに格納する場合に、該第２のストレージ装置のグループ毎に前記単位データを格納する順序を決定する順序決定工程、を更に含み、
前記データ格納工程は、前記順序決定工程により決定された順序に従って、第２のストレージ装置の各グループに対応する前記単位データを格納する、
ことを特徴とする請求項１記載のデータ移行方法。
【請求項３】
前記データ格納工程により前記第２のストレージ装置に格納した前記単位データを基に、前記データの該第２のストレージ装置への格納の進捗状況を表示する状況表示工程、を更に含むことを特徴とする請求項１記載のデータ移行方法。
【請求項４】
第１のストレージ装置に格納されたデータを第２のストレージ装置にコントローラを用いて格納するデータ移行方法において、
前記第２のストレージ装置は、一つ以上の記録媒体が属し、並行にアクセス可能なグループを複数、備え、前記第１のストレージ装置に格納されたデータを所定の単位データに分けて該第２のストレージ装置の複数のグループに格納する場合に、該第２のストレージ装置のグループ毎に前記単位データを格納する順序を決定する順序決定工程と、
前記順序決定工程における決定に従い、前記第１のストレージ装置から前記単位データを読み出して前記第２のストレージ装置の対応する各グループに格納するデータ格納工程と、
を含むことを特徴とするデータ移行方法。
【請求項５】
入力したデータを記録媒体に格納するストレージ装置に搭載されるコントローラに、
前記データを取得するデータ取得機能と、
前記記録媒体に格納すべきデータを前記データ取得機能により取得する毎に、該データを用いた計算を行い、該データの内容により変化する数値を算出する数値算出機能と、
前記数値算出機能により前記数値を算出した後のデータを前記記録媒体に格納するデータ格納機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置間のデータの移行（コピー）を行うための技術に関する。
【背景技術】
【０００２】
近年、情報のデジタル化が進み、情報もデジタル化したデータとして保存されるようになってきている。それにより、ストレージ装置には、より膨大な量のデータを長期間、保存する傾向にある。そのストレージ装置は、ハードディスク、ＤＶＤ、或いは磁気テープ等の記録媒体にデータを保存するのが普通である。
【０００３】
ストレージ装置には寿命が存在する。また、ストレージ装置に、より高い性能（アクセス速度、或いは記憶容量等）が要求される場合がある。このような理由により、ストレージ装置に格納されているデータを別のストレージ装置に移行（コピー）が行われる。
【０００４】
このデータ移行では、別のストレージ装置（移行先）へのデータの移行が適切に行われたか否かを確認するのが望ましい。そのデータ移行に要する時間は、より短いのが望ましい。
【０００５】
データ移行が適切に行われたか否かを確認する従来のデータ移行方法としては、移行先へのデータのコピーを行った後、コピーしたデータを読み出したストレージ装置（移行元）、移行先からそれぞれデータを読み出し、両者を比較するものがある。この方法では、データが適切にコピーされたか否かを確実に確認することができる。しかし、データが膨大な量であった場合、移行元、移行先からのデータの読み出し、それらの比較に長い時間がかかるため、データ移行に要する時間は非常に長くなりやすい。
【０００６】
従来の他のデータ移行方法としては、移行元から所定データ長のデータを読み出し、読み出したデータの移行先への書き込みに要した範囲を確認するものがある。この従来の他のデータ移行方法では、所定データ長単位のデータの読み出し、及び書き込みを行うことにより、読み出したデータと書き込んだデータのデータ量が一致するか否かの確認をデータ移行中に行う。このため、データ移行はより短い時間で行うことができる。しかし、データ移行が適切に行えたか否かの確認は、確実に行うことはできない。なぜなら、データ量が同じであることは、データの内容が同じであることを保証しないからである。
【０００７】
データ移行では、移行元のストレージ装置が廃棄される等の理由により、移行元のデータにアクセスできなくなることを想定する必要がある。このことを考慮するならば、データ移行は、それが適切に行えたか否かを確実に確認しつつ、より短い時間で行えるようにすることが重要と云える。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２４２６９６号公報
【特許文献２】特開２００８−１１７２５３号公報
【特許文献３】特開２００６−２３５６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、適切に行えたか否かを確実に確認しつつ、より短い時間でデータ移行を行えるようにするための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明を適用した１システムでは、第１のストレージ装置に格納されたデータを第２のストレージ装置にコントローラを用いて格納するデータ移行を行う。そのデータ移行は、第１のストレージ装置に格納されたデータを所定の単位データに分けて読み出して、その単位データ毎にその単位データを用いた計算を行うことにより、その単位データの内容により変化する数値を算出し、その数値を算出した後の単位データを第２のストレージ装置に格納し、第２のストレージ装置に格納する単位データ、及びその第２のストレージ装置に格納された単位データのうちの一方を用いた計算を行うことにより、単位データの内容により変化する数値を更に算出し、それぞれ算出した２種類の数値を基に、それら数値の算出にそれぞれ用いられた単位データが一致するか否か確認する。
【００１１】
データを用いて算出される、その内容によって変化する数値は、その数値の算出に用いたデータが一致するか否かの確実な確認に用いることができる。データを単位データに分けることにより、膨大な量のデータにも対応することができる。第１のストレージ装置から単位データの読み出しにより、その単位データの第２のストレージ装置への格納、及び数値の算出を行うことから、単位データの再度の読み出しは回避される。その読み出しを回避することにより、データ移行はより短い時間で行えるようになる。
【発明の効果】
【００１２】
本発明を適用した場合には、データ移行が適切に行えたか否かを確実に確認しつつ、より短い時間でそのデータ移行を行えるようになる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態によるデータ移行方法を実現可能なストレージ装置のハードウェア構成図である。
【図２】本実施形態によるデータ移行方法を説明する図である。
【図３】多重度制御テーブルの作成方法、及び作成された多重度制御テーブルに従ったデータ移行を説明する図である。
【図４】移行結果の表示例を説明する図である。
【図５】進捗状況の表示例を説明する図である（その１）。
【図６】進捗状況の表示例を説明する図である（その２）。
【図７】データ移行処理のフローチャートである。
【図８】データ移行処理のフローチャートである（続き）。
【図９】進捗状況処理のフローチャートである。
【図１０】移行結果処理のフローチャートである。
【図１１】本実施形態によるデータ移行方法の変形例を説明する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を参照しながら説明する。
図１は、本実施形態によるデータ移行方法を実現可能なストレージ装置のハードウェア構成図である。
【００１５】
このストレージ装置（図１中「移行先ストレージ」と表記）１０は、接続された外部装置からデータを読み出すリード機能を搭載したものである。図１に示すように、外部装置との接続用に２つのホストインターフェース１１、１２と、各種操作の指示等に用いられる管理端末装置（図１中「管理端末」と表記。以降この表記を用いる）４０との接続用の管理インターフェース１３と、装置１０全体の制御を行うコントローラ（ＣＰＵ）１４と、各種データの保存に用いられるキャッシュメモリ１５と、データの保存に用いられる記録媒体１６と、を備えた構成となっている。
【００１６】
記録媒体１６は、特に限定するものではないが、例えばハードディスク、ＤＶＤ、或いは磁気テープ等である。記録媒体１６がハードディスクであった場合、そのハードディスクはハードディスク装置としてストレージ装置１０に搭載される。記録媒体１６がＤＶＤ、或いは磁気テープであった場合、それら可搬性の記録媒体は例えばドライブ装置に着脱自在に用意される。このためストレージ装置１０は、ドライブ装置に記録媒体を着脱するための機構（例えばロボット）や、ドライブ装置にマウントしていない記録媒体を収納する収納スペースを搭載したものとなる。
【００１７】
このように記録媒体１６の種類によってストレージ装置１０の構成は異なる。このためここでは、混乱を避けるために、記録媒体１６としてはハードディスクを想定する。つまりストレージ装置１０は、複数のハードディスク装置を搭載したディスクアレイ装置であると想定する。その想定から、符号１６は搭載されたハードディスク装置群に付して用いる。この想定では、各ハードディスクへのコントローラ１４によるアクセスは、そのハードディスクを備えたハードディスク装置に搭載のコントローラを介して行われる。
【００１８】
図１では、ストレージ装置１０に、他のストレージ装置（図１中「移行元ストレージ」と表記）２０、サーバ３０（図１中「移行先サーバ」と表記）、及び管理端末４０を接続したシステム構成となっている。この構成は、他のストレージ装置２０に格納されたデータをストレージ装置１０に移行する場合の例である。つまり、このストレージ装置２０を移行元、ストレージ装置１０を移行先とするデータ移行を行う場合の例である。サーバ３０は、移行先のストレージ装置１０に格納されたデータを用いた処理を実行する。そのような役割を明確にするために、図１の表記に従い、ストレージ装置２０は「移行元ストレージ」、ストレージ装置１０は「移行先ストレージ」、サーバ３０は「移行先サーバ」とそれぞれ呼ぶことにする。
【００１９】
移行先ストレージ１０のコントローラ（コンピュータ）１４は、不揮発性のメモリ１００を備えている。このメモリ１００には、コントローラ１４が実行する、データ移行を実現させるプログラム（データ移行プログラム）１１０が格納されている。このプログラム１１０は、サブ・プログラムとして、外部装置からデータを読み出すためのリード（Ｒｅａｄ）プログラム１１１、読み出しにより得られたデータをハードディスク装置群１６のハードディスク装置に書き込むためのライト（Ｗｒｉｔｅ）プログラム１１２、読み出したデータと書き込むデータとが一致するか否か確認するためのチェックサム比較プログラム１１３、データを書き込むうえでの多重度を制御するためのテーブル作成プログラム１１４、データ移行の進捗状況を表示するための状況表示プログラム１１５、及びデータ移行の結果を表示するための結果表示プログラム１１６を備えている。
【００２０】
リードプログラム１１１により移行元ストレージ２０から読み出されたデータは、キャッシュメモリ１５にキャッシュデータ１５ａとして一時的に格納される。本実施形態では、移行元ストレージ２０からデータを読み出す毎に、リードプログラム１１１はそのデータを用いてハッシュ値をチェックサムとして算出する。このチェックサムは、キャッシュメモリ１５にチェックサム算出データ１５ｂとして格納する。
【００２１】
通常、移行の対象となるデータは膨大な量である。リードプログラム１１１が一度に読み出せるデータは、移行の対象となるデータと比較して非常に小さいのが普通である。このこともあって本実施形態では、予め定めた単位で分けてデータを読み出すようにしている。それにより、チェックサムも読み出したデータ毎に算出するようにしている。予め定めた単位は特に限定するものではないが、例えば所定長のデータ、或いは論理的に分割可能な記憶領域のデータである。単位毎に読み出されたデータは以降「単位データ」と呼ぶことにする。
【００２２】
チェックサムの算出にはハッシュ関数を用いている。これは、算出に用いるデータから、そのデータの内容によって異なる固定長の値が得られるからである。言い換えれば、読み出したデータと書き込むデータの比較を行わなくとも、それらが一致するか否か確実に確認できるからである。ハッシュ値は固定長のデータであるため、そのハッシュ値の計算に用いたデータの量に係わらず、それらのデータが一致するか否かの確認を常に迅速に行うことができる。チェックサムの算出は、その算出に用いるデータの内容によって変化するのであれば、ハッシュ関数以外の算出方法を採用しても良い。
【００２３】
移行元ストレージ２０から読み出した単位データは一旦、キャッシュメモリ１５にキャッシュデータ１５ａとして格納する。そのキャッシュデータ１５ａは、ライトプログラム１１２により書き込むべきハードディスク装置に書き込まれる。ライトプログラム１１２は、キャッシュメモリ１５から読み出したキャッシュデータ１５ａを用いてチェックサム（ハッシュ値）を算出し、それをチェックサム算出データ１５ｂとしてキャッシュメモリ１５に格納する。それにより、ライトプログラム１１２は、リードプログラム１１１が読み出したデータ毎に、ハードディスク装置に実際に書き込まれるデータから別のチェックサムを算出する。そのようにして、リードプログラム１１１が読み出すデータ毎に、その読み出したデータと実際に書き込まれるデータとが一致するか否かの確認を可能とさせている。ライトプログラム１１２によるデータの格納は、対象となるハードディスク装置のコントローラに対し、格納すべきデータ、及びデータの格納を指示するコマンドを出力することで実現される。
【００２４】
チェックサム比較プログラム１１３は、移行対象のデータを全て移行した後、リードプログラム１１１、及びライトプログラム１１２がそれぞれ算出した１つ以上のチェックサムを用いて、このデータ移行が適切に行われたか否か確認するプログラムである。その確認は、各プログラム１１１、１１２がそれぞれ算出したチェックサムの累計値を求め、それらの累計値が一致するか否か確認することを行う。そのような累計値を比較することにより確認を行うため、リードプログラム１１１がデータを読み出す回数が多くとも、言い換えれば移行対象のデータが膨大な量であっても、その確認は迅速に行うことができる。累計値が一致しなかった場合には、個別にチェックサムを比較して、一致しないチェックサム、つまり移行が適切に行われなかった単位データを特定するようにしても良い。そのように単位データを特定する場合、必要な単位データのみを対象にした再度の移行（コピー）を行えるようになる。このことから、累計値を用いた比較を行うことなく、単位データ毎の比較を行うようにしても良い。
【００２５】
図２は、本実施形態によるデータ移行方法を説明する図である。ここで図２を参照して、上記各プログラム１１１〜１１３により実現されるデータ移行方法について具体的に説明する。図２では、移行元ストレージ２０は、２つのホストインターフェース２１、及び２２、コントローラ２３、及び記録媒体２４を備えた構成となっている。ホストインターフェース２１には、移行元ストレージ２０に格納されたデータを用いた処理を行うサーバ（移行元サーバ）５０が接続され、ホストインターフェース２２には移行先ストレージ１０が接続されている。移行先ストレージ１０と同様に、記録媒体２４はハードディスク装置等のディスク装置を想定する。
【００２６】
移行先ストレージ１０は、管理端末４０による指示に従ってデータ移行を行う。管理端末４０のオペレータは、移行元ストレージ２０から移行の対象となるデータ（ディスク装置）、移行先ストレージ２０のなかでそのデータを移行すべきハードディスク装置を指定し、データ移行を実行させる。
【００２７】
データ移行の実行が指示されることにより、リードプログラム１１１は移行対象のデータを単位データに分けて読み出し、読み出した単位データからチェックサムを算出し、算出したチェックサム、及び単位データをキャッシュメモリ１５に格納する（シーケンスＳ１）。ライトプログラム１１２は、そのキャッシュデータ１５ａとして格納された単位データをキャッシュメモリ１５から読み出し、その単位データからチェックサムを算出し、算出したチェックサムはキャッシュメモリ１５に格納し、読み出した単位データは格納すべきハードディスク装置に格納する（シーケンスＳ２）。そのようにして、最後の単位データを格納すべきハードディスク装置に格納するまで、リードプログラム１１１による移行元ストレージ２０からの単位データの読み出しとチェックサムの算出、並びにライトプログラム１１２によるキャッシュメモリ１５からの単位データの読み出し、読み出した単位データのハードディスク装置への格納、及びチェックサムの算出がそれぞれ繰り返し行われる。
【００２８】
最後の単位データのハードディスク装置への格納が終了すると、チェックサム比較プログラム１１３が実行される。その実行により、リードプログラム１１１、ライトプログラム１１２毎に、それが算出したチェックサムの累計値１５ｃ、１５ｄが算出され、キャッシュメモリ１５に格納される。算出した累計値１５ｃ、１５ｄは一致するか否かの比較が行われ、その比較結果がチェックサム比較結果データ１５ｅとしてキャッシュメモリ１５に保存される。
【００２９】
チェックサムの算出、累計値の算出、及び累計値の比較は、単位データの移行に要する時間と比較して、極めて短時間に行うことができる。チェックサムを算出するための単位データの読み出しは行わない。このため、データ移行に要する時間は、単位データ毎の読み出し／書き込みによるデータ移行とほぼ同じ時間で済むことになる。このことから、データ移行が適切に行われたか否かを確認しても、その確認に要する時間は最小に抑えることができる。
【００３０】
ハードディスク装置群１６を構成する各ハードディスク装置は、並行に動作させることが可能である。また、アクセス速度は通常、読み出しよりも書き込みのほうが遅い。このようなことから従来、移行先ストレージの複数のハードディスク装置にデータを移行させる場合、そのデータ移行をより高速に行えるように、複数のハードディスク装置に並行にデータを格納する多重化が行われている。
【００３１】
その多重化のための多重度制御は従来、オペレータの指示に従って行われていた。オペレータはデータ移行の実行を指示する際に、移行元ストレージ２０から移行の対象となるデータ（例えばディスク装置）、及び移行先ストレージ２０のなかでそのデータを移行すべきハードディスク装置を指定する。本実施形態では、その指定から、データを移行すべきハードディスク装置毎に、データを移行する順序を示す多重度テーブルを作成し、作成したテーブルに従ってハードディスク装置毎のデータ移行を行うようにしている。それにより、オペレータの負担を軽減しつつ、データ移行をより短時間に完了できるようにさせている。
【００３２】
上記テーブル作成プログラム１１４は、このテーブルを作成するためのプログラムである。このため通常、上記リードプログラム１１１による単位データの読み出し（ライトプログラム１１２による単位データの書き込み）は、テーブル作成プログラムが作成した多重度テーブルに従って行われる。
【００３３】
ディスクアレイ装置では普通、複数のハードディスク装置は一つのハードディスク装置として管理される。このことから以降、一つのハードディスク装置として管理される複数のハードディスク装置をまとめたものを「性能特性グループ」と呼び、データ移行はこの性能特性グループ単位で行われると想定する。
【００３４】
複数の記録媒体を搭載したドライブ装置では、各記録媒体をアクセス可能とするために、記録媒体を識別するためのアドレスであるＬＵＮ（Logical Unit Number）が付与される場合がある。以降は、移行元ストレージ２０の移行対象のデータは、ＬＵＮにより指定されるものと想定する。
【００３５】
図３は、多重度制御テーブルの作成方法、及び作成された多重度制御テーブルに従ったデータ移行を説明する図である。図３中にＬＵＮは「領域番号」と表記している。各性能特性グループに属するハードディスク装置に関する情報は、キャッシュメモリ１５に性能特性テーブル１５１として格納されている。
【００３６】
この性能特性テーブル１５１には、性能特性グループ毎に、性能情報が格納されている。性能情報として表記の「２」と「３」は、それぞれ、対応する性能特性グループに属するハードディスク装置の数が２と３であることを示している。より具体的には、第１グループに属するハードディスク装置の数は３であり、第２グループに属するハードディスク装置の数は２であることをそれぞれ示している。また、特には図示していないが、属するハードディスク装置を示す番号情報、配置順序情報等の他の情報も格納されている。
【００３７】
性能特性グループに属するハードディスク装置は全て使用するとは限らない。グループに属する複数のハードディスク装置は、必要に応じて順次、使用される。配置順序情報とは、そのようにハードディスク装置を使用する順序を特定するための情報である。
【００３８】
ハードディスク装置へのデータの格納は、アクセス速度の低下や無駄な領域が生じるのを抑えるために、連続して行うのが望ましい。それにより、移行元ストレージ２０でも、そのようにデータが格納されている可能性が高い。このようなことからテーブル作成プログラム１１４は、データを移行させる性能特性グループ毎に、前の部分のデータが格納されている可能性の高いＬＵＮを先に移行を行うように多重度制御テーブルを作成する。その結果、移行元ストレージ２０のドライブ装置２４１の領域番号が＃００１〜００４のＬＵＮのデータを第１及び第２グループ１６１及び１６２に移行する場合には、図３に示すような多重度制御テーブル１５２、１５３が作成される。３つのハードディスク装置が属する第１グループ１６１用の多重度制御テーブル１５２では、領域番号が＃００１と＃００２のＬＵＮのデータがその順序で移行させることを示している。２つのハードディスク装置が属する第２グループ１６２用の多重度制御テーブル１５３では、領域番号が＃００３と＃００４のＬＵＮのデータがその順序で移行させることを示している。
【００３９】
単位データ毎にデータ移行を行う場合、データ移行を行っている単位データから、進捗状況、例えば移行すべきデータの量のなかで移行が終了したデータの量を特定することができる。状況表示プログラム１１５は、そのようにして特定される進捗状況を表示するためのプログラムである。移行すべきデータの量は、移行元ストレージ２０から取得される。移行が終了したデータの量は、単位データの量に、ハードディスク装置に単位データを書き込んだ回数を乗算することで計算することができる。
【００４０】
図５及び図６は、進捗状況の表示例を説明する図である。図５は、性能特性グループ毎に進捗状況を表示した場合の例であり、図６は、性能特性グループに属するハードディスク装置毎に進捗状況を表示した場合の例である。図５に示す例では、性能特性グループ毎に、進捗状況のみを提示している。図６に示す例では、移行元のＬＵＮ、移行先のハードディスク装置を示す識別情報（番号情報）を更に提示するようになっている。図６中「０ｘ００１」、「０ｘ００２」等は、移行先の番号情報を表している。図５及び図６に示すように本実施形態では、進捗状況として、移行対象とするデータのなかで実際に移行が終了した分の割合をパーセンテージにより示す移行状況を採用している。
【００４１】
図５の識別番号が１の性能特性グループでは、番号情報が「０ｘ００１」のハードディスク装置の移行状況は６０％、「０ｘ００２」のハードディスク装置の移行状況は０％となっている。これは、この性能特性グループでは、配置順序情報により、データの格納は始めに「０ｘ００１」のハードディスク装置、その次に「０ｘ００２」のハードディスク装置に行うことが指定され、現在は「０ｘ００１」のハードディスク装置にのみデータを格納していることを表している。特には図示していないが、「０ｘ００１」のハードディスク装置へのデータの格納が終了し、「０ｘ００２」のハードディスク装置へのデータの格納を開始すると、「０ｘ００１」のハードディスク装置の移行状況はデータの格納が終了した時点の数値に固定される。その固定後、「０ｘ００２」のハードディスク装置の移行状況を示す数値は、その固定した数値を初期値として順次、更新されることになる。
【００４２】
状況表示プログラム１１５は、管理端末４０からの要求によって実行される。その要求によって起動された状況表示プログラム１１５は、図５或いは図６に示すように進捗状況をまとめたテーブル（画面）を作成し、例えば管理端末４０に送信する。それによりオペレータは、管理端末４０を介してデータ移行の進捗状況を確認することができる。特には詳細な説明は省略するが、図５及び図６に示すような進捗状況の表示の仕方は、管理端末４０を介してオペレータが選択可能となっている。
【００４３】
結果表示プログラム１１６は、データ移行の結果を表示するためのプログラムである。このプログラム１１６も状況表示プログラム１１５と同様に、管理端末４０からの要求によって実行される。
【００４４】
その要求によって起動された結果表示プログラム１１６は、例えば図４に示すように結果をまとめたテーブルを作成し、例えば管理端末４０に送信する。それによりオペレータは、管理端末４０を介してデータ移行の結果を確認できるようになっている。図４に示す表示例では、移行元のボリューム（ＬＵＮ）毎に、移行先のボリューム（ハードディスク装置）、読み出した単位データから得られたチェックサムの累計値、書き込む単位データから得られたチェックサムの累計値、及び比較結果、をまとめた構成となっている。比較結果は、両者が一致したことは「ＯＫ」、両者が一致しなかったことは「ＮＧ」で表している。データ移行の結果は、性能特性グループ毎にまとめても良い。このことから、データ移行の結果の表示は図４に示すようなものに限定されない。
【００４５】
なお、結果表示プログラム１１６の起動は、データ移行の終了によって自動的に行うようにしても良い。或いは管理端末４０による要求の受信時に、データ移行を行っているか否かを判定し、その判定結果に応じて、状況表示プログラム１１５或いは結果表示プログラム１１６を起動させるようにしても良い。
【００４６】
本実施形態では、移行対象とするデータを読み出すボリューム毎、或いは移行先となる性能特性グループ毎の移行結果の表示に対応させている。それによりチェックサム比較プログラム１１３は、移行対象とするデータを読み出すボリューム毎、及び移行先となる性能特性グループ毎に、チェックサムの累計値の算出、及び比較を行うようにしている。それにより、データ移行を行う側の利用者に対し、より多くの情報を提供できるようにさせている。
【００４７】
以降は、図７〜図１０に示す各処理のフローチャートを参照して、上記各サブ・プログラム１１１〜１１６を有するデータ移行プログラム１１０をコントローラ１４が実行することによって実現される移行先ストレージ１０の動作について詳細に説明する。この移行プログラム１１０は、例えば管理端末４０からの要求により起動され、その終了が指示されるまでの間、管理端末４０からの要求に対応する処理を実行する。それにより、移行プログラム１１０は実行中であるとの想定で説明を行うこととする。
【００４８】
図７及び図８は、データ移行処理のフローチャートである。この移行処理は、データ移行を行う場合に実行される処理の流れを示したものである。上述したように、この移行処理では、データ移行プログラム１１０中のリードプログラム１１１、ライトプログラム１１２、チェックサム比較プログラム１１３、及びテーブル作成プログラム１１４がコントローラ１４により実行される。始めに図７及び図８を参照して、この移行処理について詳細に説明する。
【００４９】
データ移行では、管理端末４０のオペレータ（利用者）が、移行元ストレージ２０の移行対象となるデータが格納されたＬＵＮ（図７中「移行元領域」と表記）、及び移行先ストレージ１０でそのＬＵＮのデータを格納するハードディスク装置（図７中「移行先領域」と表記）の対応関係を指定する必要がある。データ移行プログラム１１０は、先ず、ステップＳ１１で、その指定に対応するための処理を行う。それにより、ステップＳ１２には、対応関係が指定され、その指定に従ったデータ移行の実行をオペレータが指示することで移行する。
【００５０】
ステップＳ１２では、図３に示すような多重度制御テーブルを作成する多重度制御テーブル作成処理を実行する。この作成処理は、テーブル作成プログラム１１４を実行することで実現される。ステップＳ１３には、その実行後に移行する。
【００５１】
この作成処理では、先ず、ステップＳ２１を実行し、指定されたハードディスク装置が属する性能特性グループを特定する。続くステップＳ２２では、キャッシュメモリ１５に格納されている性能特性テーブル１５１を参照し、特定した性能特性グループ毎に、その性能情報、指定されたハードディスク装置の番号情報、及び配置順序情報から、データ移行を行う順序を決定する。その順序は、性能特性グループ毎にデータ移行を並列に行うための並列動作順序である。次のステップＳ２３では、決定した並列動作順序をそれぞれ対応する多重度制御テーブルに格納する。そのようにして性能特性グループ毎に多重度制御テーブルを作成した後、多重度制御テーブル作成処理を終了し、ステップＳ１３に移行する。
【００５２】
ステップＳ１３では、多重度制御テーブルに格納された並列動作順序に従い、性能特性グループ毎に、単位データに分けて行うデータ移行の設定を行う。ステップＳ１４の移行元領域からのリード処理、及びステップＳ１５の移行先領域へのライト処理は、その設定に従い、単位データ毎に繰り返し実行される。移行元領域からのリード処理は、リードプログラム１１１の実行により実現され、移行先へのライト処理は、ライトプログラム１１２の実行により実現される。
【００５３】
移行元領域からのリード処理では、先ず、ステップＳ３１を実行し、移行元領域から単位データを読み出す。その読み出しは、ホストインターフェース１１、及び移行元ストレージ２０のホストインターフェース２２を介し、対象とする単位データの送信を要求することで実現される。
【００５４】
ステップＳ３２では、その要求によって移行元ストレージ２０から単位データを取得するのを待って、取得した単位データからチェックサム（図７中「移行元チェックサム」と表記）を算出し、算出したチェックサムをチェックサム算出データ１５ｂとしてキャッシュメモリ１５に格納する。その次に移行するステップＳ３３では、取得した単位データをキャッシュデータ１５ａとしてキャッシュメモリ１５に格納する。その格納を行った後、この移行元領域からのリード処理を終了する。
【００５５】
一方、移行先領域へのライト処理では、先ず、ステップＳ４１を実行し、キャッシュメモリ１５からキャッシュデータ１５ａを取り出す。次のステップＳ４２では、取り出したキャッシュデータ１５ａからチェックサム（図８中「移行先チェックサム」と表記）を算出し、算出したチェックサムをチェックサム算出データ１５ｂとしてキャッシュメモリ１５に格納する。その後に移行するステップＳ４３では、取り出したキャッシュデータ（単位データ）１５ａを格納すべきハードディスク装置に格納する。その格納を行った後、この移行先へのライト処理を終了する。
【００５６】
他に移行すべき単位データが残っている場合、移行先へのライト処理を実行した後、再度ステップＳ１４の移行元からのリード処理が実行される。それにより、単位データ毎のデータ移行が実現される。他に移行すべき単位データが残っていない場合には、移行先へのライト処理を実行した後、ステップＳ１６に移行することになる。
【００５７】
ステップＳ１６では、チェックサム比較処理を実行する。この比較処理は、チェックサム比較プログラム１１３を実行することで実現される。この比較処理を実行した後、データ移行処理が終了する。
【００５８】
この比較処理では、先ず、ステップＳ５１を実行し、キャッシュメモリ１５に単位データ毎にチェックサム算出データ１５ｂとして格納されている移行先チェックサム、及び移行元チェックサムを取り出す。続くステップＳ５２では、取り出した移行元チェックサムと移行先チェックサムを比較して、その比較結果をチェックサム比較結果データ１５ｅとしてキャッシュメモリ１５に格納する。取り出した移行元チェックサム、及び移行先チェックサムが複数、存在する場合には、移行元チェックサム、移行先チェックサムのそれぞれで累計値を算出し、算出した累計値を比較し、その比較結果をチェックサム比較結果データ１５ｅとしてキャッシュメモリ１５に格納する。このような累計値の算出、及び比較は、必要に応じて、移行元のボリューム毎、及び移行先の性能特性グループ毎に行う。そのようにして、状況に応じたチェックサム比較結果データ１５ｅをキャッシュメモリに格納した後、データ移行処理が終了する。
【００５９】
図９は、進捗状況処理のフローチャートである。次に図９を参照して、この状況処理について詳細に説明する。この状況処理は、例えば管理端末４０から進捗状況の表示が要求されることで実行される処理の流れを示したものである。上記状況表示プログラム１１５は、この状況処理で実行される。
【００６０】
先ず、ステップＳ６１では、管理端末４０から要求される進捗状況の表示に対応するための処理を実行する。それにより、その要求が管理端末４０から行われることを条件にステップＳ６２に移行し、データ移行の進捗状況を表示するための進捗状況表示処理を実行する。この表示処理は、状況表示プログラム１１５をコントローラ１４が実行することで実現される。
【００６１】
この表示処理では、先ず、ステップＳ７１の処理を実行し、移行対象とする全データの容量（図９中「移行元領域の容量」と表記）と、既に移行済みのデータの容量（図９中「移行先領域にＷｒｉｔｅ済の容量」と表記）を比較し、より具体的には後者を前者で割ることにより、移行が終了した割合を算出する。次のステップＳ７２では、算出した割合を進捗状況として表示する。その表示は、上記のように、例えば算出した割合を配置した図５或いは図６に示すようなテーブル（画面）を生成して管理端末４０に送信することで行う。そのようにして進捗状況を表示させた後、進捗状況処理を終了する。
【００６２】
図１０は、移行結果処理のフローチャートである。最後に図１０を参照して、この結果処理について詳細に説明する。この結果処理は、例えば管理端末４０から移行結果の表示が要求されることで実行される処理の流れを示したものである。上記結果表示プログラム１１６は、この結果処理で実行される。
【００６３】
先ず、ステップＳ８１では、管理端末４０から要求される移行結果の表示に対応するための処理を実行する。それにより、その要求が管理端末４０から行われることを条件にステップＳ８２に移行し、データ移行の結果を表示するための移行結果表示処理を実行する。この表示処理は、結果表示プログラム１１６をコントローラ１４が実行することで実現される。
【００６４】
この表示処理では、先ず、ステップＳ９１の処理を実行し、チェックサム算出データ１５ｂとして格納された移行元、移行先のチェックサム、及びチェックサム比較結果データ１５ｅとして格納されたチェックサム比較結果をキャッシュメモリ１５から取り出す。続くステップＳ９２では、取り出した移行元、移行先のチェックサム、並びにチェックサム比較結果を配置した図４に示すようなテーブル（画面）を作成し、作成したテーブルを管理端末４０に送信する。複数のチェックサムが存在する場合、そのテーブルにはボリューム毎にチェックサムの累計値を配置する。これは、性能特定テーブル毎に移行結果をまとめる場合も同様である。そのようなテーブルの送信により移行結果を管理端末４０に表示させた後、移行結果処理を終了する。
【００６５】
なお、本実施形態では、移行先のチェックサムの算出はキャッシュメモリ１５から取り出したキャッシュデータ（単位データ）１５ａを用いて行っているが、他の方法により行うようにしても良い。例えばデータ移行中に、ハードディスク装置に書き込んだ単位データを読み出して、チェックサムを算出するようにしても良い。或いはデータ移行が終了した後、移行したデータを読み出した際に、移行先チェックサムを算出し、移行結果を確認するようにしても良い。そのような確認は、例えば図１１に示すように、移行先ストレージ１０がデータを出力する外部装置（コンピュータ）に行わせても良い。
【００６６】
図１１に示す変形例では、移行先ストレージ１０はキャッシュメモリ１５から取り出したキャッシュデータ１５ａをハードディスク装置に格納し（シーケンスＳ１０１）、ハードディスク装置に格納したデータは、移行先サーバ３０の要求により読み出して転送する（シーケンスＳ１０２）。単位データ毎に算出したチェックサムは、その転送の前、或いは後に移行先サーバ３０に送信する。ハードディスク装置に格納したデータの読み出しを可能とするために、そのデータの読み出しに必要な情報は移行先ストレージ１０から移行先サーバ３０に送信する。その情報の送信は、ホストインターフェース１２を用いて行っても良いが、ＬＡＮアダプタ１１１を介して移行先サーバ３０のＬＡＮアダプタ３１に受信させることで行うようにしても良い。それにより、移行先サーバ３０は、移行先ストレージ１０に移行されたデータを読み出して移行先チェックサムを算出することにより、データ移行が適切に行えたか否か確認することができる。
【００６７】
このような方法を採用したとしても、移行元ストレージ２０からデータを読み出す必要性は排除される。このため、移行元ストレージ２０から再度、データを読み出す場合と比較して、データ移行が適切に行えたか否かの確認はより迅速に行うことができる。このようなことから、移行先ストレージ１０は、移行元チェックサムを少なくとも算出できるようにすれば良い。これは、ライトプログラム１１２は本実施形態に限定されるものではなく、チェックサム比較プログラム１１３は移行先ストレージ１０に搭載されたコントローラ（コンピュータ）１４に実行させなくとも良いことを意味している。
【００６８】
また、本実施形態では、データ移行が完了した後、その移行が適切に行われたか否か確認するようにしているが、その確認は、単位データの移行の完了毎に行うようにしても良い。その確認は、移行元のボリューム毎、或いは移行先のボリューム（ハードディスク装置、或いは性能特定グループ等）毎に行うようにしても良い。
【００６９】
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
第１のストレージ装置に格納されたデータを第２のストレージ装置にコントローラを用いて格納するデータ移行方法において、
前記第１のストレージ装置に格納されたデータを所定の単位データに分けて読み出す場合に、該単位データ毎に該単位データを用いた計算を行い、該単位データの内容により変化する数値を算出する第１の数値算出工程と、
前記数値を算出した後の単位データを前記第２のストレージ装置に格納するデータ格納工程と、
前記データ格納工程により前記第２のストレージ装置に格納する単位データ、及び該第２のストレージ装置に格納された単位データのうちの一方を用いた計算を行い、該単位データの内容により変化する数値を算出する第２の数値算出工程と、
前記第１及び第２の数値算出工程によりそれぞれ算出した数値を基に、該数値の算出にそれぞれ用いられた単位データが一致するか否か確認する比較工程と、
を含むことを特徴とするデータ移行方法。
（付記２）
前記第２のストレージ装置は、一つ以上の記録媒体が属する、並行にアクセス可能なグループを複数、備え、前記第１のストレージ装置に格納されたデータを分けて該第２のストレージ装置の複数のグループに格納する場合に、該第２のストレージ装置のグループ毎に前記単位データを格納する順序を決定する順序決定工程、を更に含み、
前記データ格納工程は、前記順序決定工程により決定された順序に従って、第２ストレージ装置の各グループに対応する前記単位データを格納する、
ことを特徴とする付記１記載のデータ移行方法。
（付記３）
前記データ格納工程により前記第２のストレージ装置に格納した前記単位データを基に、前記データの該第２のストレージ装置への格納の進捗状況を表示する状況表示工程、を更に含むことを特徴とする付記１記載のデータ移行方法。
（付記４）
第１のストレージ装置に格納されたデータを第２のストレージ装置にコントローラを用いて格納するデータ移行方法において、
前記第２のストレージ装置は、一つ以上の記録媒体が属し、並行にアクセス可能なグループを複数、備え、前記第１のストレージ装置に格納されたデータを所定の単位データに分けて該第２のストレージ装置の複数のグループに格納する場合に、該第２ストレージ装置のグループ毎に前記単位データを格納する順序を決定する順序決定工程と、
前記順序決定工程における決定に従い、前記第１のストレージ装置から前記単位データを読み出して前記第２のストレージ装置の対応する各グループに格納するデータ格納工程と、
を含むことを特徴とするデータ移行方法。
（付記５）
入力したデータを記録媒体に格納するストレージ装置において、
前記データを取得するデータ取得手段と、
前記記録媒体に格納すべきデータを前記データ取得手段が取得する毎に、該データを用いた計算を行い、該データの内容により変化する数値を算出する数値算出手段と、
前記数値算出手段が前記数値を算出した後のデータを前記記録媒体に格納するデータ格納手段と、
を具備することを特徴とするストレージ装置。
（付記６）
前記データ取得手段は、前記記録媒体に格納すべきデータを格納した外部装置から、該データを所定の単位データに分けて読み出し、
前記データ格納手段は、前記データ取得手段が前記単位データを読み出す毎に、該単位データを前記記録媒体に格納する、
ことを特徴とする付記５記載のストレージ装置。
（付記７）
前記第２のストレージ装置は、前記記録媒体が一つ以上、属する、並行にアクセス可能なグループを複数、備え、
前記データ取得手段が前記単位データに分けて取得するデータを複数のグループに格納する場合に、該第２のストレージ装置のグループ毎に前記単位データを格納する順序を決定する順序決定手段、を更に具備し、
前記データ取得手段は、前記順序決定手段が決定した順序に従って、前記外部装置からの単位データの読み出しを行う、
ことを特徴とする付記１記載のデータ移行方法。
（付記８）
前記データ格納手段により前記記録媒体に格納した前記単位データを基に、該記録媒体にデータを格納した進捗状況を特定する進捗状況特定手段、
を更に具備することを特徴とする付記１記載のデータ移行方法。
（付記９）
入力したデータを記録媒体に格納するストレージ装置において、
前記記録媒体が一つ以上、属する、並行にアクセス可能なグループを複数、備え、前記データを外部装置から所定の単位データに分けて複数のグループに格納する場合に、該グループ毎に前記単位データを格納する順序を決定する順序決定手段と、
前記順序決定手段が決定した順序に従い、前記外部装置から前記単位データを入力して、前記複数のグループのうちの対応するグループに格納するデータ格納手段と、
を具備することを特徴とするストレージ装置。
（付記１０）
入力したデータを記録媒体に格納するストレージ装置に搭載されるコントローラに、
前記データを取得するデータ取得機能と、
前記記録媒体に格納すべきデータを前記データ取得機能により取得する毎に、該データを用いた計算を行い、該データの内容により変化する数値を算出する数値算出機能と、
前記数値算出機能により前記数値を算出した後のデータを前記記録媒体に格納するデータ格納機能と、
を実現させるためのプログラム。
（付記１１）
入力したデータを記録媒体に格納するストレージ装置に搭載されるコントローラに、
前記記録媒体が一つ以上、属する、並行にアクセス可能なグループを複数、備え、前記データを外部装置から所定の単位データに分けて複数のグループに格納する場合に、該グループ毎に前記単位データを格納する順序を決定する順序決定機能と、
前記順序決定機能により決定した順序に従い、前記外部装置から前記単位データを入力して、前記複数のグループのうちの対応するグループに格納するデータ格納機能と、
を実現させるためのプログラム。
【符号の説明】
【００７０】
１０、２０    ストレージ装置
１１、１２、２１、２２    ホストインターフェース
１３    管理インターフェース
１４、２３    コントローラ
１５    キャッシュメモリ
１６    記録媒体（ハードディスク装置群）
１００    メモリ
１１０    データ移行プログラム
１１１    リードプログラム
１１２    ライトプログラム
１１３    チェックサム比較プログラム
１１４    テーブル作成プログラム
１１５    状況表示プログラム
１１６    結果表示プログラム
【図１】
2011039841.tif 000003
【図３】
2011039841.tif 000004
【図４】
2011039841.tif 000005
【図５】
2011039841.tif 000006
【図６】
2011039841.tif 000007
【図７】
2011039841.tif 000008
【図８】
2011039841.tif 000009
【図９】
2011039841.tif 000010
【図１０】
2011039841.tif 000011
【図２】
2011039841.tif 000012
【図１１】
2011039841.tif 000013