(57)【要約】【課題】  本発明は、データ移行方法、記憶装置及びプログラムに関し、切り離し対象の記憶部のデータ移行の際に、データ喪失をより確実に防止することを目的とする。【解決手段】  記憶装置内の切り離し対象の第１の記憶部に保存されているデータを第２の記憶部に移行するデータ移行方法において、第１の記憶部内のデータ領域単位で保存されている全てのデータを第２の記憶部へ移行し、データの移行が失敗したデータ領域については、第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを第２の記憶部へ移行するように構成する。【選択図】  図８
2006107351.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置内の第１の記憶部に保存されているデータを第２の記憶部に移行するデータ移行方法であって、
該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行する第１のステップと、
データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを該第２の記憶部へ移行する第２のステップとを含むことを特徴とする、データ移行方法。
【請求項２】
該第１及び第２のステップの終了後に、該第１の記憶部の該記憶装置からの切り離しを許容するステップを更に含むことを特徴とする、請求項１記載のデータ移行方法。
【請求項３】
該第１の記憶部内の各データ領域に対してデータ移行が未完了であるか完了であるかを含むデータ移行の進捗状況を示すデータ移行管理テーブルを随時更新するステップを更に含み、
該第１のステップは、該データ移行管理テーブルに基づいてデータの移行を行うことを特徴とする、請求項１又は２記載のデータ移行方法。
【請求項４】
該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新するステップを更に含み、
該第２のステップは、該データ移行管理テーブルと該媒体欠陥テーブルとに基づいてデータの移行を行うことを特徴とする、請求項３記載のデータ移行方法。
【請求項５】
該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新するステップを更に含み、
該第１のステップは、冗長化されたデータについては、該媒体欠陥テーブルに基づいて、該第１及び第３の記憶部のうち媒体欠陥箇所の少ない方から読み出して該第２の記憶部へ移行することを特徴とする、請求項１記載のデータ移行方法。
【請求項６】
第１、第２及び第３の記憶部と、
該第１、第２及び第３の記憶部間のデータ移行を制御する制御手段とを備え、
該制御手段は、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行し、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている該第３の記憶部から冗長化されたデータを該第２の記憶部へ移行することを特徴とする、記憶装置。
【請求項７】
該制御手段は、該第３の記憶部へのデータ移行の終了後に、該第１の記憶部の該記憶装置からの切り離しを許容することを特徴とする、請求項６記載の記憶装置。
【請求項８】
該制御手段は、該第１の記憶部内の各データ領域に対してデータ移行が未完了であるか完了であるかを含むデータ移行の進捗状況を示すデータ移行管理テーブルを随時更新し、該データ移行管理テーブルに基づいてデータの移行を行うことを特徴とする、請求項６又は７記載の記憶装置。
【請求項９】
該制御手段は、該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新し、該データ移行管理テーブルと該媒体欠陥テーブルとに基づいてデータの移行を行うことを特徴とする、請求項８記載の記憶装置。
【請求項１０】
コンピュータに、記憶装置内の第１の記憶部に保存されているデータを第２の記憶部に移行させるプログラムであって、
該コンピュータに、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行させる第１の手順と、
該コンピュータに、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを該第２の記憶部へ移行させる第２の手順とを含むことを特徴とする、プログラム。
【請求項１１】
第１の記憶部と、
第２の記憶部と、
害第１の記憶部に故障が生じた場合、該第１の記憶部に記憶されたデータの該第２の記憶部への移行を制御する制御部とを備え、
該第１の記憶部から該第２の記憶部へのデータの移行が完了した後に、該第１の記憶部を切り離すようにしたことを特徴とする、記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ移行方法、記憶装置及びプログラムに係り、特に故障又は故障が予測される記憶部を記憶装置から切り離す際に、切り離し対象の記憶部に保存されたデータを別の記憶部に移行するデータ移行方法、そのようなデータ移行方法を採用する記憶装置、及びコンピュータにそのようなデータ移行を行わせるプログラムに関する。
【背景技術】
【０００２】
ハードディスクドライブ（ＨＤＤ）等の記憶部が故障したり故障が予測されると、ＨＤＤを交換する必要がある。故障又は故障が予測されるＨＤＤをディスク装置等の記憶装置から切り離す際には、切り離し対象のＨＤＤに保存されたデータを別のＨＤＤに移行する必要がある。
【０００３】
第１の従来方法では、ＨＤＤ交換によるＨＤＤ間のデータ移行が生じた際、ディスク装置からの切り離し対象のＨＤＤ（移行元）から別のＨＤＤ（移行先）にデータ移行が行われる。しかし、データ移行中に移行元ＨＤＤの異常を検出した場合には、移行元ＨＤＤはディスク装置から切り離される。このような場合には、移行対象の全データを移行先ＨＤＤへ移行できないため、データ喪失が発生してしまう。
【０００４】
第２の従来方法では、切り離し対象のＨＤＤを、データ移行開始前にディスク装置から切り離し、別のＨＤＤに冗長化されたデータを用いてデータ移行を行う。この場合、移行対象の全データは、ブロックや領域等の特定単位に分割して移行される。移行データに関する情報は、例えば先頭ブロックから順次実行されるデータ移行処理がどのブロックまで進んだかを示す進捗状況を管理対象とする。しかし、データ移行における失敗ブロックの有無、又は、移行処理の成否については、情報管理を行っていない。
【０００５】
尚、装置立ち上げ後の不良ディスク装置による障害を未然に回避する方法としては、特許文献１に記載されている方法が知られている。
【特許文献１】特開平５−１６６２８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記第２の従来方法では、故障又は故障が予測されるＨＤＤのデータ移行は、対象ＨＤＤの切り離しを行い、別のＨＤＤに冗長化されたデータを用いてデータ移行を行う。このため、冗長化されたデータから移行するべきデータを構築する際、冗長化されたデータを格納する別のＨＤＤに媒体エラー等が発生して移行するべきデータの構築が失敗すると、データ喪失の要因となってしまう。
【０００７】
又、第３の従来方法では、切り離し対象のＨＤＤから移行するデータを読み出し、別のＨＤＤへ複写(リダンダントコピー)することで、冗長性を保ちつつデータ移行を行う。しかし、データ移行の際に切り離し対象ＨＤＤの異常を検出した場合、データ移行が未完了の状態でもディスク装置から切り離し対象のＨＤＤの切り離しを実施する。この場合、別のＨＤＤに冗長化されていたデータから移行するべきデータを構築するため、上記第２の従来方法の場合と同様に、データ喪失が発生する可能性がある。
【０００８】
このように、従来方法では、切り離し対象のＨＤＤのデータ移行の際に、データ喪失を確実に防止できないという問題があった。
【０００９】
そこで、本発明は、切り離し対象の記憶部のデータ移行の際に、データ喪失をより確実に防止できるデータ移行方法、記憶装置及びプログラムと提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題は、記憶装置内の第１の記憶部に保存されているデータを第２の記憶部に移行するデータ移行方法であって、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行する第１のステップと、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを該第２の記憶部へ移行する第２のステップとを含むことを特徴とするデータ移行方法によって達成できる。
【００１１】
上記の課題は、第１、第２及び第３の記憶部と、該第１、第２及び第３の記憶部間のデータ移行を制御する制御手段とを備え、該制御手段は、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行し、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている該第３の記憶部から冗長化されたデータを該第２の記憶部へ移行することを特徴とする記憶装置によっても達成できる。
【００１２】
上記の課題は、コンピュータに、記憶装置内の第１の記憶部に保存されているデータを第２の記憶部に移行させるプログラムであって、該コンピュータに、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行させる第１の手順と、該コンピュータに、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを該第２の記憶部へ移行させる第２の手順とを含むことを特徴とするプログラムによっても達成できる。
【発明の効果】
【００１３】
本発明によれば、切り離し対象の記憶部のデータ移行の際に、データ喪失をより確実に防止できるデータ移行方法、記憶装置及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００１４】
本発明では、ＨＤＤ等の記憶部の交換による記憶部間のデータ移行が生じた際、切り離し対象の記憶部から可能な限り全てのデータ移行を行う。データ移行中に移行元記憶部の異常を検出した場合、その記憶部はデータ移行が完了するまでの間はディスク装置等の記憶装置から切り離さない。
【００１５】
移行データに関する情報管理について、データ移行の進捗状況はもとより、移行されたブロック又は領域の移行成否又は有無を管理する。データ移行の進捗状況を管理することで、データ移行の完了後に切り離し対象の記憶部を記憶装置から切り離す。情報管理については、記憶装置又は記憶部の機能として管理を行う。  
このように、記憶部間のデータ移行において、移行元記憶部を移行処理の完了まで記憶装置から切り離すことなく、移行処理を行う。又、データ移行の成否について情報管理を行い、複数の記憶部からの移行処理に対し漏れ無く記憶部間の移行処理を行う。従って、切り離し対象の記憶部のデータ移行の際に、データ喪失をより確実に防止できる。
【実施例】
【００１６】
本発明になるデータ移行方法の一実施例を、図１〜図５と共に説明する。図１〜図５は、データ移行方法の本実施例を説明する図である。本実施例では、本発明が複数のＨＤＤを備えた磁気ディスク装置に適用されている。図１〜図５において、磁気ディスク装置１は、複数のＨＤＤ２−１〜２−Ｎからなり、説明の便宜上、ＨＤＤ２−２は、故障又は故障が予測されるＨＤＤ、即ち、切り離しの対象のＨＤＤであるものとする。故障又は故障が予測されるＨＤＤは、例えばそのＨＤＤに対するアクセスリトライ回数が所定値を超えたことを検出したり、一定期間内でのアクセスリトライ回数が規定数を超えたことを検出する周知の方法で検出可能である。
【００１７】
図１は、ＨＤＤ２−２の運用中に、このＨＤＤ２−２に故障等の異常が発生した状態を説明する図である。
【００１８】
図２は、異常を検出したＨＤＤ２−２に保存されているデータを読み出し、読み出したデータを予備ＨＤＤ２−Ｎへ書き込むデータ移行を説明する図である。データ移行の開始にあたり、データ移行の進捗状況を管理するデータ移行管理テーブル３を磁気ディスク装置１又はホスト装置内に準備する。データ移行管理テーブル３は、ＨＤＤ２−２内の各データ領域Ｄ００〜Ｄｎに対して、データ移行が未完了（失敗）であるか完了（成功)であるかを含むデータ移行の進捗状況を記録している。図２〜図５中、データ移行管理テーブル３は、各図の右側に示されている。図２に示すデータ移行管理テーブルは、データ移行処理の開始時点のものである。
【００１９】
図３は、データ移行の成否情報の管理を説明する図である。同図では、説明の便宜上、ＨＤＤ２−２のデータ移行は、データ領域Ｄ０１については成功、データ領域Ｄ０２については失敗、データ領域Ｄ０３については成功、…、データ領域ｎについては失敗であるものとする。データ移行が成功であるか失敗であるかは、随時データ移行管理テーブル３へ反映される。図３に示すデータ移行管理テーブルは、ＨＤＤ２−２からＨＤＤ２−Ｎへ移行可能なデータのデータ移行処理が完了した時点のものである。
【００２０】
図４は、データ移行の失敗領域の救済を説明する図である。切り離し対象のＨＤＤ２−２のデータ移行が全て完了すると、データ移行管理テーブル３に基づいてデータ移行が未完了であるデータ領域Ｄ０１，...を検出し、同じデータが冗長化されているＨＤＤ２−１からデータを読み出して予備ＨＤＤ２−Ｎへ書き込む。冗長化されたデータをＨＤＤ２−１から予備ＨＤＤ２−Ｎへ書き込むことにより実質的にデータ移行を行った結果は、随時データ移行管理テーブル３へ反映される。図４に示すデータ移行管理テーブルは、ＨＤＤ２−１からのデータの読み出し／移行が開始される前の時点でのものである。
【００２１】
図５は、切り離し対象のＨＤＤ２−２の切り離しを説明する図である。データ移行管理テーブル３にデータ移行が未完了であるデータ領域がなくなると、即ち、全てのデータ領域のデータ移行が完了すると、切り離し対象のＨＤＤ２−２に保存されていた全てのデータの予備ＨＤＤ２−Ｎへの移行が完了しているので、切り離し対象のＨＤＤ２−２を磁気ディスク装置１から切り離す。その後、必要に応じて新たなＨＤＤをディスク装置１に接続する。
【００２２】
このように、本実施例では、移行するデータを基本的には切り離し対象のＨＤＤ２−２から読出し、予備の（即ち、別の）ＨＤＤ２−Ｎへ書き込む。この際、移行データに関する情報管理をデータ移行管理テーブル３により行う。書き込み(データ移行)が成功したデータ領域については、データ移行管理テーブル３へ成功を示す記録を行う。切り離し対象のＨＤＤ２−２からの読み出しに失敗する等により書き込み(データ移行)が失敗したデータ領域については、データ移行管理テーブル３へ失敗を示す記録を行う。この様な手順で、読み出し可能な全ての移行データを切り離し対象のＨＤＤ２−２から別のＨＤＤ２−Ｎへ移行する。データ移行時においては、切り離し対象のＨＤＤ２−２に異常を検出場合においても切り離し処理は実施しない。移行に失敗したデータ領域については、データ移行管理テーブル３の管理情報に基づいて、冗長用のＨＤＤ２−１に冗長化されているデータを用いて移行データを構築し、移行先のＨＤＤ２−Ｎへ書き込みを行う。データ移行に失敗した領域に対して行われる、冗長化されたデータを活用したデータ構築とデータ移行処理は、切り離し対象のＨＤＤ２−２からのデータの読み出しが失敗した時点、若しくは、切り離し対象のＨＤＤ２−２から読み出し可能なデータの読み出しが全て完了した時点のどちらのタイミングで実施しても良い。
【００２３】
従って、本実施例によれば、磁気ディスク装置１内で保存するデータの冗長性をＨＤＤ２−１，２−Ｎ間で可能な限り維持しつつ、ＨＤＤ２−２，２−Ｎ間のデータ移行を行うことができる。
【００２４】
図６は、本発明になる記憶装置の一実施例の要部を示すブロック図であり、図７は、ＨＤＤのデータ領域を示す図である。記憶装置の本実施例では、本発明が磁気ディスク装置に適用されており、データ移行方法の上記実施例を採用するものとする。
【００２５】
図６に示すディスク装置１は、ホスト装置（又は、サーバ）１１に接続されている。ホスト装置１１は、例えば汎用のコンピュータにより構成されている。ディスク装置１は、ホスト入出力（Ｉ／Ｏ）インタフェース２１、ＨＤＤ制御部２２、マイクロプログラム制御部２３、ＨＤＤインタフェース２４、ＨＤＤ２−１〜２−Ｎ、データ移行管理テーブル３及び媒体欠陥テーブル３１からなる。ホストＩ／Ｏインタフェース２１は、磁気ディスク装置１とホスト装置１１との間のインタフェースを司る。ＨＤＤインタフェース２４は、磁気ディスク装置１の本体とＨＤＤ２−１〜２−Ｎとの間のインタフェースを司る。ＨＤＤ制御部２２は、ホスト装置１１からのアクセス命令に基づいて、ＨＤＤ２−１〜２−Ｎに対するアクセス要求を制御する。マイクロプログラム制御部２３は、データ移行管理テーブル３及び媒体欠陥テーブル３１の管理を司る。
【００２６】
データ移行管理テーブル３は、磁気ディスク装置１からＨＤＤを切り離す際のデータ移行の進捗を管理するもので、ＨＤＤ２−１〜２−Ｎのうち少なくとも１つのＨＤＤ、又は、他の記憶部に格納される。本実施例では、データ移行管理テーブル３は、切り離し対象のＨＤＤ２−２の各データ領域Ｄ００〜Ｄ０５についてのデータ移行の進捗状況を示す。媒体欠陥テーブル３１は、磁気ディスク装置１に接続されているＨＤＤ２−１〜２−Ｎの媒体欠陥箇所を管理するもので、ＨＤＤ２−１〜２−Ｎのうち少なくとも１つのＨＤＤ、又は、他の記憶部に格納される。本実施例では、媒体欠陥テーブル３１は、各ＨＤＤ２−１，２−２，２−３，２−４，...の各データ領域Ｄ００〜Ｄ０５における媒体エラーの検出回数を示す。データ移行管理テーブル３及び媒体欠陥テーブル３１が格納される記憶部は、同じであって異なるものであっても良い。
【００２７】
ＨＤＤ制御部２２からのＨＤＤアクセス要求に対し、アクセスしたＨＤＤにて媒体エラーを検出された場合、マイクロプログラム制御部２３は、検出された媒体エラー箇所を媒体欠陥箇所として媒体欠陥テーブル３１に登録する。媒体欠陥テーブル３１は、発生箇所、即ち、データ領域と、発生回数に応じて随時更新される。媒体欠陥テーブル３１は、論理ブロックアドレス、若しくは、複数ブロックをひとまとめにしたデータ領域を一単位とする管理体系を採用可能である。
【００２８】
データ移行管理テーブル３は、マイクロプログラム制御部２３の管理下で、移行データを論理ブロックアドレス、若しくは、特定データ領域毎に区分し、当該区分におけるデータ移行の成否を含む進捗状況を管理する。
【００２９】
ＨＤＤ２−１〜２−Ｎに保存されるデータは、冗長性を維持すべくＲＡＩＤ（Redundant Arrays of Independent (Inexpensive) Disks）グループと呼ばれる複数のＨＤＤで構成された保存領域に格納される。例えば、ＲＡＩＤグループが２台のＨＤＤ２−１，２−２にて構成される場合、両ＨＤＤ２−１，２−２には同一データをそれぞれのＨＤＤへ格納する。また、データの更新が生じた場合、それぞれのＨＤＤ２−１，２−２は同様に更新される。
【００３０】
図７では、ＨＤＤ２−１とＨＤＤ２−２が１つのＲＡＩＤグループを形成しており、ＲＡＩＤ１が想定されている。ＲＡＩＤ１は、２つのＨＤＤに同一のデータを同時に書き込むミラーリングを行う方式である。ホスト装置１１によるアクセス要求(読み出し処理)が発生した場合は、冗長化されたデータの片側だけにアクセスを行う。そのため、ＲＡＩＤグループが２台のＨＤＤ２−１，２−２で構成される場合は、片方のＨＤＤにだけアクセス要求が生じる。図７の場合、ＨＤＤ２−１とＨＤＤ２−２は同一ＲＡＩＤグループに属し、夫々のＨＤＤ２−１，２−２で同一データを保存しているため、読み出し処理に対しては、ＨＤＤ２−１又はＨＤＤ２−２のどちらかにアクセスが行なわれる。読み出し処理において、例えばアクセスを行ったＨＤＤ２−２の媒体エラー等によってアクセスが失敗した場合には、同一データを保存している別のＨＤＤ２−１に対して読み出し処理が行われる。
【００３１】
尚、図６及び図７では、６つのデータ領域Ｄ００〜Ｄ０５が示されているが、データ領域の数は任意に設定可能である。
【００３２】
ホスト装置１１からの命令に基づいて、例えばＨＤＤ２−２に保存されているデータに対する読み出しアクセス要求がＨＤＤ制御部２２から発生すると、マイクロプログラム制御部２３は、ディスク装置１により冗長化されたデータを含めた関連ＨＤＤ２−１に対する媒体欠陥テーブル３１の内容を事前に参照する。又、マイクロプログラム制御部２３は、参照したエラー履歴から必要とするデータ領域のエラー履歴と回数を冗長化されたデータ毎、又は、それを構成するＨＤＤ毎に比較する。マイクロプログラム制御部２３は、上記の如き比較結果を踏まえ、エラー履歴が無いか、又は、エラー発生回数の少ないデータ若しくはＨＤＤを活用し、必要とするデータを読み出すためのスケジュールを構築する。ＨＤＤ制御部２２は、マイクロプログラム制御部２３により構築された上記スケジュールに従い、ＨＤＤに保存された必要とするデータを読み出す。
【００３３】
例えばデータを保存しているＨＤＤ２−２を故障等により交換する場合、交換対象のＨＤＤ２−２から予備ＨＤＤ２−Ｎへ保存データを移行するデータ移行処理が行われる。マイクロプログラム制御部２３は、データ移行管理テーブル３に対してデータ移行結果(成否)を含む進捗状況を随時更新して管理する。データ移行処理では、マイクロプログラム制御部２３が交換対象のＨＤＤ２−２からのデータ読み出し処理が失敗するエラー事象を検出した場合には、対象となるデータ領域(区分)に関するデータ移行処理の失敗を示す情報を移行管理テーブル３に登録する。対象領域についてのデータ移行処理が成功した場合は、マイクロプログラム制御部２３は、データ移行処理の成功を示す情報を移行管理テーブル３に登録する。
【００３４】
データ移行処理において、交換対象のＨＤＤ２−２でのエラー事象が多発した場合、保存データの読み出し処理を可能な限り継続し、磁気ディスク装置１からの交換対象のＨＤＤ２−２の切り離しは行わない。
【００３５】
マイクロプログラム制御部２３は、交換対象のＨＤＤ２−２のデータ読み出し処理の完了に伴い、データ移行管理テーブル３を参照し、データ移行処理が未完了の領域を検索する。データ移行処理が未完了の領域が検出された場合には、対象領域については、ＨＤＤ制御部２２により交換対象のＨＤＤ２−２と冗長化されているＨＤＤ２−１から必要となるデータを読み出すことで、対象領域に対するデータ移行を行う。交換対象のＨＤＤ２−２は、予備ＨＤＤ２−Ｎへのデータ移行処理を完了した時点か、それ以降に磁気ディスク装置１から切り離し、新たなＨＤＤと交換する。データ移行管理テーブル３の活用により、データ移行元となる交換対象のＨＤＤ２−２を可能な限り利用することで、磁気ディスク装置１内で保存するデータの冗長性をＨＤＤ２−１，２−Ｎ間で可能な限り維持しつつ、ＨＤＤ２−２，２−Ｎ間のデータ移行を行うことができる。
【００３６】
従って、記媒体欠陥テーブル３１とデータ移行管理テーブル３の活用により、リトライ処理の発生を抑え、効率良く、冗長性を最大限維持した状態でＨＤＤを交換することができる。
【００３７】
次に、本発明になるプログラムの一実施例を、図８〜１５と共に説明する。プログラムの本実施例は、ＣＰＵ等のプロセッサ及びメモリからなるコンピュータシステムに上記の如きデータ移行処理を行わせるもので、コンピュータ読み取り可能な記憶媒体に格納されていても良い。プログラムの本実施例では、コンピュータシステムにマイクロプログラム制御部２３の機能を実現させるが、ＨＤＤ制御部２２の機能の少なくとも一部も実現しても良い。
【００３８】
図８は、本発明になるプログラムの一実施例が実行するデータ移行処理を説明するフローチャートである。同図中、ステップＳ１は、磁気ディスク装置１に接続されているＨＤＤ２−１〜２−Ｎに関する情報（ＨＤＤ構成情報）を取得するために、ＨＤＤ構成情報の取得処理を行う。ＨＤＤ構成情報は、磁気ディスク装置１に接続されているＨＤＤを示す。
【００３９】
図９は、ステップＳ１が行うＨＤＤ構成情報の取得処理を説明するフローチャートである。同図中、ステップＳ１１は、ＨＤＤ搭載情報の照会を行い、ステップＳ１２は、磁気ディスク装置１に接続されているＨＤＤ２−１〜２−Ｎに関するＨＤＤ搭載情報が磁気ディスク装置１内に登録されているか否かを判定する。ＨＤＤ搭載情報は、磁気ディスク装置１に接続されている各ＨＤＤのＨＤＤ型、格、及び容量等を示す。ＨＤＤ搭載情報が例えば磁気ディスク装置１内の記憶部（図示せず）に格納されておりステップＳ１２の判定結果がＹＥＳであると、処理は図１に示すステップＳ２へ進む。
【００４０】
他方、ステップＳ１２の判定結果がＮＯであると、ステップＳ１３は、磁気ディスク装置１に接続されているＨＤＤ２−１〜２−ＮのＨＤＤ型、格、及び容量を各ＨＤＤ２−１〜２−Ｎから読み出し、ステップＳ１４は読み出した情報に基づいてＨＤＤ搭載情報を磁気ディスク内の記憶部に登録する。尚、ＨＤＤ搭載情報が登録される記憶部は、ＨＤＤ２−１〜２−Ｎのいずれかであっても良い。ステップＳ１５は、ＲＡＩＤグループの所属割当を行い、ＨＤＤ２−１〜２−ＮをＲＡＩＤグループに分ける。ステップＳ１６は、各ＨＤＤ２−１〜２−Ｎの各データ領域Ｄ００〜Ｄ０５における媒体エラーの検出回数を示す媒体欠陥テーブル３１を作成する。ステップＳ１７は、データ領域に関する区分情報（例えば、データ領域の大きさ）を媒体欠陥テーブル３１に反映する。ステップＳ１８は、作成された媒体欠陥テーブル３１を磁気ディスク装置１内の記憶部に登録し、処理は図８に示すステップＳ２へ進む。
【００４１】
図８の説明に戻るに、ステップＳ２は、各ＨＤＤ２−１〜２−Ｎをチェックし、ステップＳ３は異常の検出されたＨＤＤ２−１〜２−Ｎがあるか否かを判定する。ステップＳ３の判定結果がＮＯであると、処理はステップＳ２へ戻る。他方、ステップＳ３の判定結果がＹＥＳであると、ステップＳ４は、予備ＨＤＤ２−Ｎが磁気ディスク装置１に接続されているか否かを判定する。予備ＨＤＤ２−Ｎは、特定のＨＤＤである必要はなく、予備ＨＤＤとして活用できる任意のＨＤＤであっても良い。ステップＳ４の判定結果がＮＯであると、処理は終了する。ステップＳ４の判定結果がＹＥＳであると、ステップＳ５は、データ移行管理テーブル３の作成処理を行う。
【００４２】
図１０は、ステップＳ５が行うデータ移行管理テーブル３の作成処理を説明するフローチャートである。同図中、ステップＳ５１は、切り離しの対象、即ち、交換対象のＨＤＤ２−２のデータ領域に関する情報を取得し、ステップＳ５２は、データ移行管理テーブル３の格納領域を記憶部に確保する。ステップＳ５３は、交換対象のＨＤＤ２−２の各データ領域に対するデータ移行の進捗状況を記録するためのデータ移行管理テーブル３を作成して初期化する。ステップＳ５４は、データ移行管理テーブル３を記憶部に登録し、処理は図８に示すステップＳ６へ進む。
【００４３】
図８の説明に戻るに、ステップＳ６は、交換対象のＨＤＤ２−２から予備ＨＤＤ２−Ｎへのデータ移行処理を行う。
【００４４】
図１１は、ステップＳ６が行う交換対象のＨＤＤ２−２から予備ＨＤＤ２−Ｎへのデータ移行処理を説明するフローチャートである。同図中、ステップＳ６１は、データ移行管理テーブル３を参照し、ステップＳ６２は、データ移行処理を行うべきデータ領域があるか否かを判定する。ステップＳ６２の判定結果がＮＯであると、処理は図８に示すステップＳ７へ進む。他方、ステップＳ６２の判定結果がＹＥＳであると、ステップＳ６３は、交換対象のＨＤＤ２−２のデータ移行処理の対象となる１つのデータ領域からデータを読み出す。ステップＳ６４は、データの読み出し処理が成功したか否かを判定する。ステップＳ６４の判定結果がＹＥＳであると、ステップＳ６５は、データ移行管理テーブル３の対応するデータ領域に対して「完了」を記録し、処理はステップＳ６７へ進む。他方、ステップＳ６４の判定結果がＮＯであると、ステップＳ６６は、データ移行管理テーブル３の対応するデータ領域に対して「未完了」を記録し、処理はステップＳ６７へ進む。ステップＳ６７は、読み出したデータを、予備ＨＤＤ２−Ｎの対応するデータ領域に書き込み、処理はステップＳ６１へ戻る。
【００４５】
図８の説明に戻るに、ステップＳ７は、冗長用ＨＤＤ２−１から予備ＨＤＤ２−Ｎへのデータ移行処理を行う。
【００４６】
図１２は、ステップＳ７が行う冗長用ＨＤＤ２−１から予備ＨＤＤ２−Ｎへのデータ移行処理を説明するフローチャートである。同図中、ステップＳ７１は、データ移行管理テーブル３を参照し、ステップＳ７２は、データ移行管理テーブル３に「未完了」が記録されているデータ領域が存在するか否かを判定する。ステップＳ７２の判定結果がＮＯであると、処理は図８に示すステップＳ８へ進む。他方、ステップＳ７２の判定結果がＹＥＳであると、ステップＳ７３は、「未完了」が記録されているデータ領域を記憶する。ステップＳ７４は、冗長用ＨＤＤ２−１から、「未完了」が記録されているデータ領域に対応するデータ領域のデータを読み出す。ステップＳ７５は、冗長用ＨＤＤ２−１からの読み出し処理が成功したか否かを判定する。ステップＳ７５の判定結果がＹＥＳであると、ステップＳ７６は、冗長用ＨＤＤ２−１から読み出したデータを予備ＨＤＤ２−Ｎへ書き込むデータ移行処理を行い、処理はステップＳ７８へ進む。又、ステップＳ７５の判定結果がＮＯであると、ステップＳ７７は、磁気ディスク装置１内、或いは、ホスト装置１１で管理されるシステム情報として、冗長用ＨＤＤ２−１からのデータ移行処理が失敗した旨を示すログ情報を格納し、処理はステップＳ７８へ進む。ステップＳ７８は、データ移行管理テーブル３中、データ移行処理を行ったデータ領域に対して「完了」を記録し、処理はステップＳ７１へ戻る。
【００４７】
図８の説明に戻るに、ステップＳ８は、交換対象のＨＤＤ２−２を磁気ディスク装置１から切り離しても良い旨のメッセージ等をホスト装置１１へ送り、処理はステップＳ１へ戻る。つまり、ステップＳ８が交換対象のＨＤＤ２−２を磁気ディスク装置１から切り離せると判断した後は、交換対象のＨＤＤ２−２を磁気ディスク装置１から切り離すことを許容すると共に、必要に応じて新たなＨＤＤを接続することも許容する。
【００４８】
図１３は、媒体欠陥テーブル３１を活用したデータ読み出し処理を説明するフローチャートである。同図中、ステップＳ１０１は、磁気ディスク装置１に接続されているＨＤＤ２−１〜２−Ｎに関する情報（ＨＤＤ構成情報）を取得するために、ＨＤＤ構成情報の取得処理を行う。ステップＳ１０１が行うＨＤＤ構成情報の取得処理は、図９に示すものでも良い。ステップＳ１０２は、保存データへのアクセス要求を検出し、ステップＳ１０３は、アクセス要求が読み出し要求（読み出し処理）であるか否かを判定する。ステップＳ１０３の判定結果がＮＯであると、処理はステップＳ１０２へ戻る。他方、ステップＳ１０３の判定結果がＹＥＳであると、処理はステップＳ１０４へ進む。
【００４９】
図１４は、ステップＳ１０４が行うエラー発生履歴の閲覧処理を説明するフローチャートである。同図中、ステップＳ１０４１は、媒体欠陥テーブル３１を参照し、ステップＳ１０４２は、アクセス要求により要求されたデータを保存しているＲＡＩＤグループを、媒体欠陥テーブル３１から検索する。ステップＳ１０４３は、検索されたＲＡＩＤグループのうち、主ＨＤＤ（例えばＨＤＤ２−２）に対する媒体エラーの検出回数を媒体欠陥テーブル３１から読み出し、ステップＳ１０４４は、読み出した主ＨＤＤに対する媒体エラーの検出回数を記憶部に記憶する。本実施例では、ＲＡＩＤグループのうち、一方が主に活用される主ＨＤＤ、他方が主ＨＤＤの過負荷時や異常発生時に活用される副ＨＤＤとして定義されているものとする。ステップＳ１０４５は、検索されたＲＡＩＤグループのうち、副ＨＤＤ（例えばＨＤＤ２−１）に対する媒体エラーの検出回数を媒体欠陥テーブル３１から読み出し、ステップＳ１０４６は、読み出した副ＨＤＤに対する媒体エラーの検出回数を記憶部に記憶し、処理は図１３に示すステップＳ１０５へ進む。
【００５０】
図１３の説明に戻るに、ステップＳ１０５は、読み出しＨＤＤの選択処理を行う。
【００５１】
図１５は、ステップＳ１０５が行う読み出しＨＤＤの選択処理を説明するフローチャートである。同図中、ステップＳ１０５１は、記憶部に記憶済の主ＨＤＤの媒体エラーの検出回数を参照し、ステップＳ１０５２は、媒体エラーの検出回数が０であるか否かを判定する。ステップＳ１０５２の判定結果がＹＥＳであると、ステップＳ１０５３は、ＲＡＩＤグループのうち要求されたデータを読み出すＨＤＤを主ＨＤＤに決定し、処理は図１３に示すステップＳ１０６へ進む。他方、ステップＳ１０５２の判定結果がＮＯであると、ステップＳ１０５４は、記憶部に記憶済の副ＨＤＤの媒体エラーの検出回数を参照し、ステップＳ１０５５は、媒体エラーの検出回数が０であるか否かを判定する。ステップＳ１０５５の判定結果がＹＥＳであると、ステップＳ１０５６は、ＲＡＩＤグループのうち要求されたデータを読み出すＨＤＤを副ＨＤＤに決定し、処理は図１３に示すステップＳ１０６へ進む。
【００５２】
ステップＳ１０５５の判定結果がＮＯであると、ステップＳ１０５７は、主ＨＤＤの媒体エラーの検出回数と副ＨＤＤの媒体エラーの検出回数とを比較する。ステップＳ１０５８は、主ＨＤＤの媒体エラーの検出回数の方が大きいか、或いは、副ＨＤＤの媒体エラーの検出回数の方が大きいかを判定する。主ＨＤＤの媒体エラーの検出回数の方が大きい場合、ステップＳ１０５９は、ＲＡＩＤグループのうち要求されたデータを読み出すＨＤＤを副ＨＤＤに決定し、処理は図１３に示すステップＳ１０６へ進む。他方、副ＨＤＤの媒体エラーの検出回数の方が大きい場合、ステップＳ１０６０は、ＲＡＩＤグループのうち要求されたデータを読み出すＨＤＤを主ＨＤＤに決定し、処理は図１３に示すステップＳ１０６へ進む。
【００５３】
図１３の説明に戻るに、ステップＳ１０６は、要求されたデータをＲＡＩＤグループのうち決定された方のＨＤＤから読み出し、ステップＳ１０７は、読み出し処理が成功したか否かを判定する。ステップＳ１０７の判定結果がＹＥＳであると、処理はステップＳ１０２へ戻る。ステップＳ１０７の判定結果がＮＯであると、ステップＳ１０８は、読み出し処理が行われたＨＤＤに対する媒体エラーの検出回数をカウントアップすることで媒体欠陥テーブル３１を更新し、処理はステップＳ１０２へ戻る。
【００５４】
上記実施例では、本発明が磁気ディスク装置に適用されているが、本発明は光ディスク装置や光磁気ディスク装置等にも適用可能であることは言うまでもない。又、記憶装置が用いる記録媒体はディスクに限定されず、カード状やテープ状の記録媒体を用いるものであっても、半導体記憶装置等の記憶デバイスを用いるものであっても良い。
【００５５】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  記憶装置内の第１の記憶部に保存されているデータを第２の記憶部に移行するデータ移行方法であって、
該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行する第１のステップと、
データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを該第２の記憶部へ移行する第２のステップとを含むことを特徴とする、データ移行方法。
(付記２）  該第１及び第２のステップの終了後に、該第１の記憶部の該記憶装置からの切り離しを許容するステップを更に含むことを特徴とする、付記１記載のデータ移行方法。
(付記３）  該第１の記憶部内の各データ領域に対してデータ移行が未完了であるか完了であるかを含むデータ移行の進捗状況を示すデータ移行管理テーブルを随時更新するステップを更に含み、
該第１のステップは、該データ移行管理テーブルに基づいてデータの移行を行うことを特徴とする、付記１又は２記載のデータ移行方法。
(付記４）  該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新するステップを更に含み、
該第２のステップは、該データ移行管理テーブルと該媒体欠陥テーブルとに基づいてデータの移行を行うことを特徴とする、付記３記載のデータ移行方法。
(付記５）  該媒体欠陥テーブルは、各記憶部の各データ領域における媒体エラーの検出回数を示すことを特徴とする、付記４記載のデータ移行方法。
(付記６）  該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新するステップを更に含み、
該第１のステップは、冗長化されたデータについては、該媒体欠陥テーブルに基づいて、該第１及び第３の記憶部のうち媒体欠陥箇所の少ない方から読み出して該第２の記憶部へ移行することを特徴とする、付記１記載のデータ移行方法。
(付記７）  第１、第２及び第３の記憶部と、
該第１、第２及び第３の記憶部間のデータ移行を制御する制御手段とを備え、
該制御手段は、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行し、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている該第３の記憶部から冗長化されたデータを該第２の記憶部へ移行することを特徴とする、記憶装置。
(付記８）  該制御手段は、該第３の記憶部へのデータ移行の終了後に、該第１の記憶部の該記憶装置からの切り離しを許容することを特徴とする、付記７記載の記憶装置。
(付記９）  該制御手段は、該第１の記憶部内の各データ領域に対してデータ移行が未完了であるか完了であるかを含むデータ移行の進捗状況を示すデータ移行管理テーブルを随時更新し、該データ移行管理テーブルに基づいてデータの移行を行うことを特徴とする、付記７又は８記載の記憶装置。
(付記１０）  該制御手段は、該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新し、該データ移行管理テーブルと該媒体欠陥テーブルとに基づいてデータの移行を行うことを特徴とする、付記９記載の記憶装置。
(付記１１）  該媒体欠陥テーブルは、各記憶部の各データ領域における媒体エラーの検出回数を示すことを特徴とする、付記１０記載の記憶装置。
(付記１２）  該制御手段は、該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新し、冗長化されたデータについては、該媒体欠陥テーブルに基づいて、該第１及び第３の記憶部のうち媒体欠陥箇所の少ない方から読み出して該第２の記憶部へ移行することを特徴とする、付記７記載の記憶装置。
(付記１３）  該第１、第２及び第３の記憶部は、ディスクドライブであることを特徴とする、付記７〜１２のいずれか１項記載の記憶装置。
(付記１４）  コンピュータに、記憶装置内の第１の記憶部に保存されているデータを第２の記憶部に移行させるプログラムであって、
該コンピュータに、該第１の記憶部内のデータ領域単位で保存されている全てのデータを該第２の記憶部へ移行させる第１の手順と、
該コンピュータに、データの移行が失敗したデータ領域については、該第１の記憶部との間でデータが冗長化されている第３の記憶部から冗長化されたデータを該第２の記憶部へ移行させる第２の手順とを含むことを特徴とする、プログラム。
(付記１５）  該コンピュータに、該第１及び第２の手順の終了後に、該第１の記憶部の該記憶装置からの切り離しを許容させる手順を更に含むことを特徴とする、付記１４記載のプログラム。
(付記１６）  該コンピュータに、該第１の記憶部内の各データ領域に対してデータ移行が未完了であるか完了であるかを含むデータ移行の進捗状況を示すデータ移行管理テーブルを随時更新させる手順を更に含み、
該第１の手順は、該コンピュータに、該データ移行管理テーブルに基づいてデータの移行を行わせることを特徴とする、付記１４又は１５記載のプログラム。
(付記１７）  該コンピュータに、該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新させる手順を更に含み、
該第２の手順は、該コンピュータに、該データ移行管理テーブルと該媒体欠陥テーブルとに基づいてデータの移行を行わせることを特徴とする、付記１６記載のプログラム。
(付記１８）  該媒体欠陥テーブルは、各記憶部の各データ領域における媒体エラーの検出回数を示すことを特徴とする、付記１７記載のプログラム。
(付記１９）  該コンピュータに、該記憶装置内の各記憶部の媒体欠陥箇所を管理する媒体欠陥テーブルを随時更新させる手順を更に含み、
該第１の手順は、冗長化されたデータについては、該コンピュータに、該媒体欠陥テーブルに基づいて、該第１及び第３の記憶部のうち媒体欠陥箇所の少ない方から読み出して該第２の記憶部へ移行させることを特徴とする、付記１４記載のプログラム。
(付記２０）  第１の記憶部と、
第２の記憶部と、
害第１の記憶部に故障が生じた場合、該第１の記憶部に記憶されたデータの該第２の記憶部への移行を制御する制御部とを備え、
該第１の記憶部から該第２の記憶部へのデータの移行が完了した後に、該第１の記憶部を切り離すようにしたことを特徴とする、記憶装置。
(付記２１）  前記故障が生じた場合とは、前記第１の記憶部に故障が生じる可能性が予測された場合を含むことを特徴とする、付記２０記載の記憶装置。
(付記２２）  前記第１の記憶部から前記第２の記憶部へのデータの移行はデータ領域単位で行われ、
該第１の記憶部から該第２の記憶部へのデータの移行が可能なデータ領域の全てについてデータ移行が完了した後に、該第１の記憶部を切り離すことを特徴とする、付記２０又は２１記載の記憶装置。
【００５６】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
【図面の簡単な説明】
【００５７】
【図１】本発明になるデータ移行方法の一実施例を説明する図である。
【図２】本発明になるデータ移行方法の一実施例を説明する図である。
【図３】本発明になるデータ移行方法の一実施例を説明する図である。
【図４】本発明になるデータ移行方法の一実施例を説明する図である。
【図５】本発明になるデータ移行方法の一実施例を説明する図である。
【図６】本発明になる記憶装置の一実施例の要部を示すブロック図である。
【図７】ＨＤＤのデータ領域を示す図である。
【図８】本発明になるプログラムの一実施例が実行するデータ移行処理を説明するフローチャートである。
【図９】ＨＤＤ構成情報の取得処理を説明するフローチャートである。
【図１０】データ移行管理テーブルの作成処理を説明するフローチャートである。
【図１１】交換対象のＨＤＤから予備ＨＤＤへのデータ移行処理を説明するフローチャートである。
【図１２】冗長用ＨＤＤから予備ＨＤＤへのデータ移行処理を説明するフローチャートである。
【図１３】媒体欠陥テーブルを活用したデータ読み出し処理を説明するフローチャートである。
【図１４】エラー発生履歴の閲覧処理を説明するフローチャートである。
【図１５】読み出しＨＤＤの選択処理を説明するフローチャートである。
【符号の説明】
【００５８】
１      ディスク装置
２−１〜２−Ｎ  ＨＤＤ
３      データ移行管理テーブル
１１      ホスト装置
２１      ホストＩ／Ｏインタフェース
２２      ＨＤＤ制御部
２３      マイクロプログラム制御部
２４      ＨＤＤインタフェース
３１      媒体欠陥テーブル
【図１】
2006107351.tif 000003
【図２】
2006107351.tif 000004
【図３】
2006107351.tif 000005
【図４】
2006107351.tif 000006
【図５】
2006107351.tif 000007
【図６】
2006107351.tif 000008
【図７】
2006107351.tif 000009
【図８】
2006107351.tif 000010
【図９】
2006107351.tif 000011
【図１０】
2006107351.tif 000012
【図１１】
2006107351.tif 000013
【図１２】
2006107351.tif 000014
【図１３】
2006107351.tif 000015
【図１４】
2006107351.tif 000016
【図１５】
2006107351.tif 000017