(57)【要約】【課題】容量拡張処理を中止する場合でも、処理の再開を可能とするＲＡＩＤコントローラを提供することにある。【解決手段】ＲＡＩＤコントローラは、１段階目の処理では、元のＨＤＤ２０に対してエラーチェックを実行し、かつ元のＨＤＤ２０から分散対象のデータを読出して追加のＨＤＤ２１に書き込む。ＲＡＩＤコントローラは、２段階目の処理時に、元のＨＤＤ２０に対する書換え処理を実行する。【選択図】      図３
2005107841.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイ構成の各ディスクドライブに対するデータの入出力を制御する手段と、
元のディスクドライブに記録されたデータを追加ディスクドライブに分散させる容量拡張処理時に、分散対象のデータを前記元のディスクドライブから読出して前記追加ディスクドライブに記録完了した後に、前記元のディスクドライブの記録データの書換え処理を実行する容量拡張手段と
を具備したことを特徴とするディスクアレイコントローラ。
【請求項２】
前記容量拡張手段は、前記分散対象のデータを前記追加ディスクドライブに記録するときに、前記元のディスクドライブのエラーチェックを実行することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項３】
前記容量拡張手段は、
前記分散対象のデータを前記追加ディスクドライブに記録するときに、前記元のディスクドライブのエラーチェックを実行し、
前記元のディスクドライブのエラーが発生したときには、前記容量拡張処理を中止することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項４】
前記容量拡張手段は、
前記追加ディスクドライブが複数のディスクドライブの場合に、当該各追加ディスクドライブに対して前記分散対象のデータを記録完了した後に、前記元のディスクドライブの記録データの書換え処理を実行することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項５】
前記元のディスクドライブは、ミラーリング構成の第１及び第２のディスクドライブからなり、
前記容量拡張手段は、
前記分散対象のデータを前記元の第１のディスクドライブから読出して第１の追加ディスクドライブに記録完了した後に、当該第１の追加ディスクドライブに記録したデータを第２の追加ディスクドライブに複製する複製処理を完了した後に、
前記ミラーリング構成の第１及び第２の元のディスクドライブの書換え処理を実行することを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項６】
ディスクアレイコントローラに適用する容量拡張方法であって、
元のディスクドライブに記録されたデータを追加ディスクドライブに分散させるための記憶位置を決定するステップと、
分散対象のデータを前記元のディスクドライブから読出して前記追加ディスクドライブの決定された記憶位置に記録するステップと、
前記追加ディスクドライブに対する記録の完了後に、前記元のディスクドライブの記録データの書換え処理を実行するステップと
を有する手順を実行することを特徴とする容量拡張方法。
【請求項７】
前記分散対象のデータを前記追加ディスクドライブに記録するときに、前記元のディスクドライブのエラーチェックを実行するステップをさらに有することを特徴とする請求項６に記載の容量拡張方法。
【請求項８】
前記分散対象のデータを前記追加ディスクドライブに記録するときに、前記元のディスクドライブのエラーチェックを実行するステップと、
前記元のディスクドライブのエラーが発生したときには、前記追加ディスクドライブに対する記録動作を中止することを特徴とする請求項６に記載の容量拡張方法。
【請求項９】
前記書換え処理を実行するステップは、
前記追加ディスクドライブが複数のディスクドライブの場合に、当該各追加ディスクドライブに対して前記分散対象のデータを記録完了した後に、前記元のディスクドライブの記録データの書換え処理を実行することを特徴とする請求項６に記載の容量拡張方法。
【請求項１０】
前記元のディスクドライブは、ミラーリング構成の第１及び第２のディスクドライブからなり、
前記分散対象のデータを前記元の第１のディスクドライブから読出して第１の追加ディスクドライブに記録完了した後に、当該第１の追加ディスクドライブに記録したデータを第２の追加ディスクドライブに複製するステップと、
前記複製処理が完了した後に、前記ミラーリング構成の第１及び第２の元のディスクドライブの書換え処理を実行するステップと
をさらに有することを特徴とする請求項６に記載の容量拡張方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはディスクアレイコントローラに関し、特に、ディスクアレイの容量拡張技術に関する。
【背景技術】
【０００２】
一般的に、ディスクアレイ（ＲＡＩＤ：Redundant Arrays of Inexpensive Disks）装置としては、データをブロック単位で分散するストライピング（striping）構成であるレベル０のＲＡＩＤ（ＲＡＩＤ−０）や、複数のディスクドライブに同一のデータを格納するミラーリング（mirroring）構成であるレベル１のＲＡＩＤ（ＲＡＩＤ−１）などが周知である。
【０００３】
ＲＡＩＤコントローラは、ＲＡＩＤ−０の構成を実現するための容量拡張機能、及びＲＡＩＤ−１の構成を実現するための複製機能を備えている。特に、容量拡張機能により、ディスクドライブに記録されているデータを、増設した追加のディスクドライブに分散して、元のディスクドライブの記録データを再配置させることにより、全体としてデータの記憶容量を拡張することができる（例えば、特許文献１を参照）。
【特許文献１】特開平７−１４１１２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の容量拡張機能では、元のディスクドライブから分散対象のデータを読出して、追加のディスクドライブに記録し、元のディスクドライブの記録データを再配置を行なうための書換え処理を実行する容量拡張処理が、連続的に１段階の処理として実行される。
【０００５】
このような容量拡張方法では、容量拡張処理が開始されると、例えば元のディスクドライブの読出しエラー等のエラーが発生しても、処理を途中で中止することは困難である。仮りに、処理途中で中止すると、元のディスクドライブの書換え処理によりオリジナルの記録データが消去されている場合には、一般的には処理の後戻りは困難である。
【０００６】
そこで、本発明の目的は、容量拡張処理を中止する場合でも、処理の再開を可能とするＲＡＩＤコントローラを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の観点に従ったＲＡＩＤコントローラは、ディスクアレイ構成の各ディスクドライブに対するデータの入出力を制御する手段と、元のディスクドライブに記録されたデータを追加ディスクドライブに分散させる容量拡張処理時に、分散対象のデータを前記元のディスクドライブから読出して前記追加ディスクドライブに記録完了した後に、前記元のディスクドライブの記録データの書換え処理を実行する容量拡張手段とを備えたものである。
【発明の効果】
【０００８】
本発明によれば、容量拡張処理を中止した場合でも、最初から処理を再開できるようにして、結果として記録データの保全性を向上できる有用なＲＡＩＤを実現できる。
【発明を実施するための最良の形態】
【０００９】
以下図面を参照して、本発明の実施形態を説明する。
【００１０】
（システム構成）
図１及び図２は本実施形態に関するＲＡＩＤ及びＲＡＩＤコントローラの構成を示すブロック図である。
【００１１】
本実施形態のＲＡＩＤコントローラ１０は、図１に示すように、例えば第１から第４のＨＤＤ２０〜２３と接続可能であり、例えばＲＡＩＤ−０やＲＡＩＤ−１、或いはそれらを合わせたＲＡＩＤ構成（便宜的にＲＡＩＤ−１０）を実現できる。
【００１２】
ＲＡＩＤコントローラ１０は、例えばパーソナルコンピュータやサーバ等のホストシステム（ＯＳを含む）３０からのアクセス要求（コマンド）に応じて、各ＨＤＤ２０〜２３に対するデータの入出力（リード及びライト動作）などの制御に必要なコマンドを発行する。
【００１３】
ＲＡＩＤコントローラ１０は、図２に示すように、マイクロプロセッサ（ＣＰＵ）１００と、メモリ１１０と、バッファメモリ１２０と、ドライブインターフェース１３０と、ホストインターフェース１４０とを有する。
【００１４】
ＣＰＵ１００は、本実施形態の容量拡張機能（ストライピング機能）を含むＲＡＩＤ制御動作を実行するメイン制御装置である。メモリ１１０は、ＣＰＵ１００のプログラムを格納するＲＯＭや、フラッシュＥＥＰＲＯＭ及びＲＡＭを含む。バッファメモリ１２０は、バッファＲＡＭやキャッシュメモリを含む。
【００１５】
ドライブインターフェース１３０は、複数のＨＤＤ２０〜２３と接続し、データの入出力を制御するマイクロコントローラに相当する。本実施形態では、例えば４台のＨＤＤが接続可能である。ホストインターフェース１４０は、ＲＡＩＤを外部記憶装置として使用するホストシステム（パーソナルコンピュータやサーバなど）３０とのデータやコマンドの転送を制御するインターフェースである。
【００１６】
なお、本実施形態のＲＡＩＤコントローラ１０は、ドライブインターフェース１３０、及びホストインターフェース１４０を除く他の構成要素の代りに、専用のハードウェアロジック回路から構成されてもよい。具体的には、本実施形態のＲＡＩＤコントローラ１０は、例えばパーソナルコンピュータに装備されたカードスロットに装着されることにより、複数のＨＤＤを接続してＲＡＩＤを実現するカード型コントローラでもよい。
【００１７】
（容量拡張処理）
以下図３及び図４のフローチャートを参照して、本実施形態の容量拡張処理の手順を説明する。
【００１８】
ここでは、ＲＡＩＤコントローラ１０は、第１のＨＤＤ（ＨＤＤ１）２０をオリジナルの記録データを格納している元のＨＤＤとして、第２のＨＤＤ２１を増設した追加のＨＤＤとして容量拡張処理を実行する。
【００１９】
本実施形態のＲＡＩＤコントローラ１０は、図３に示すように、容量拡張処理を１段階目の処理と、２段階目の処理とに分割して実行する。即ち、１段階目では、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ（ブロック単位）を読出して、追加のＨＤＤ２１に書込む（記録）処理を実行する。なお、図３では、斜線の部分が書込みまたは書換え部分のデータを示す。
【００２０】
この１段階目の処理である分散対象のデータの記録が完了した後に、２段階目の処理に移行する。２段階目では、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ以外のデータの再配置を行なうための書換え処理を実行する。
【００２１】
以下図４のフローチャートを参照して、さらに具体的に容量拡張処理の手順を説明する。
【００２２】
まず、１段階目の処理では、ＲＡＩＤコントローラ１０は、容量拡張後のデータ（ブロック単位）の記憶位置を決定する（ステップＳ１）。即ち、ＲＡＩＤコントローラ１０は、図３に示すように、オリジナルのブロック単位の記録データ（０，１，２…）のＨＤＤ２０，２１の記録領域であるセクタアドレスを決定する。
【００２３】
さらに、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ（ブロック単位）を読出して、追加のＨＤＤ２１上の決定した記憶位置（セクタ）に書込む（ステップＳ２）。この１段階目の処理において、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０に対しては書換え処理を実行せずに、エラー（読出しエラー）のチェックのみを行なう（ステップＳ３）。
【００２４】
この１段階目の処理時に、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０からエラー発生を確認すると、容量拡張処理を中止する（ステップＳ４のＹＥＳ）。ＲＡＩＤコントローラ１０は、中止処理時には、例えば元のＨＤＤ２０において、読出しエラーが発生した記録データに対するエラー訂正処理を実行して復元する。これにより、ＲＡＩＤコントローラ１０は、容量拡張処理を最初から再開することが可能となる。
【００２５】
一方、エラー発生がなく、１段階目の処理で、追加のＨＤＤ２１に対するデータの書込み動作が完了すると、２段階目の処理に移行する。２段階目では、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ以外のデータの再配置を行なうための書換え処理を実行する（ステップＳ５）。
【００２６】
以上のように本実施形態の容量拡張方法であれば、１段階目の処理時には、元のＨＤＤ２０に対する書換え処理は実行されずに、追加のＨＤＤ２１に対する書込み動作が実行される。ここで、元のＨＤＤ２０にエラーが発生したときには、容量拡張処理を中止しても、元のＨＤＤ２０にはオリジナルの記録データがそのまま保存されている（エラー発生のデータを除く）。従って、元のＨＤＤ２０に対するエラー回復処理などを実行すれば、最初から容量拡張処理を再開することができる。
【００２７】
また、１段階目の処理時には、元のＨＤＤ２０に対するエラーチェックを行なうことにより、１段階目の処理に移行する前に、元のＨＤＤ２０にはエラーがなく、オリジナルの記録データに対する保証を確保できる。
【００２８】
要するに本実施形態の容量拡張方法であれば、エラーの発生があった場合でも、処理の後戻りが可能であり、かつ元のＨＤＤ２０に保存されているオリジナルの記録データの大半が保全されるため、データの保全性を向上させることができる。
【００２９】
ところで、容量拡張処理では、元のＨＤＤ２０から分散対象のデータを、追加のＨＤＤ２１に書き込む（要するに複製する）処理プロセスがある。この場合、通常では、元のＨＤＤ２０に記録されているデータの最後までアクセスし、複製処理を実行することになる。この複製処理において、元のＨＤＤ２０に対して通常のアクセス範囲を設定することにより、未使用のデータに対する複製処理を省略し、結果として容量拡張処理に要する時間の短縮化を図ることが可能である。
【００３０】
（他の実施形態）
図５及び図７は、元のＨＤＤ２０から複数の追加のＨＤＤに対してデータを分散させる場合の容量拡張方法に関する。本実施形態では、複数の追加のＨＤＤは、第１の追加ＨＤＤ（ＨＤＤ２）２１及び第２の追加ＨＤＤ（ＨＤＤ２）２２とする。
【００３１】
まず、１段階目の処理では、ＲＡＩＤコントローラ１０は、容量拡張後のデータ（ブロック単位）の記憶位置を決定する（ステップＳ１１）。即ち、ＲＡＩＤコントローラ１０は、図５に示すように、オリジナルのブロック単位の記録データ（０，１，２…）のＨＤＤ２０，２１，２２の記録領域であるセクタアドレスを決定する。
【００３２】
さらに、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ（ブロック単位）を読出して、追加のＨＤＤ２１及びＨＤＤ２２上の決定した記憶位置（セクタ）に書込む（ステップＳ１２）。この１段階目の処理において、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０に対しては書換え処理を実行せずに、エラー（読出しエラー）のチェックのみを行なう（ステップＳ１３）。
【００３３】
この１段階目の処理時に、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０からエラー発生を確認すると、容量拡張処理を中止する（ステップＳ１４のＹＥＳ）。ＲＡＩＤコントローラ１０は、中止処理時には、例えば元のＨＤＤ２０において、読出しエラーが発生した記録データに対するエラー訂正処理を実行して復元する。これにより、ＲＡＩＤコントローラ１０は、容量拡張処理を最初から再開することが可能となる。
【００３４】
一方、エラー発生がなく、１段階目の処理で、追加の各ＨＤＤ２１，２２に対するデータの書込み動作が完了すると、２段階目の処理に移行する。２段階目では、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ以外のデータの再配置を行なうための書換え処理を実行する（ステップＳ１５）。
【００３５】
以上のように本実施形態の場合でも、１段階目の処理時には、元のＨＤＤ２０に対する書換え処理は実行されずに、追加の各ＨＤＤ２１，２２に対する書込み動作が実行されるため、元のＨＤＤ２０にエラーが発生したときには、エラー回復処理などを実行すれば、最初から容量拡張処理を再開することができる。従って、エラーの発生があった場合でも、処理の後戻りが可能であり、かつ元のＨＤＤ２０に保存されているオリジナルの記録データの大半が保全されるため、データの保全性を向上させることができる。
【００３６】
図６は、さらに他の実施形態に関する図である。本実施形態は、容量拡張処理と共に、複数のディスクドライブに同一のデータを格納するミラーリング構成（ＲＡＩＤ−１）を実現するための複製処理を実行する場合である。
【００３７】
ＲＡＩＤコントローラ１０は、第１のＨＤＤ（ＨＤＤ１）２０をオリジナルの記録データを格納している元のＨＤＤとして、第２のＨＤＤ２１から第４のＨＤＤ２３を増設した追加のＨＤＤとして容量拡張処理及び複製処理を実行する。
【００３８】
具体的には、１段階目の処理として、ＲＡＩＤコントローラ１０は、図６に示すように、元のＨＤＤ２０から追加のＨＤＤ２１に対して、全記録データを複製して、ミラーリング構成を実現する。さらに、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ（ブロック単位）を読出して、追加のＨＤＤ２２に書込む（記録）処理を実行する。そして、ＲＡＩＤコントローラ１０は、追加のＨＤＤ２２から追加のＨＤＤ２３に対して、全記録データを複製して、ミラーリング構成を実現する。
【００３９】
この１段階目の処理が完了した後に、２段階目の処理に移行する。２段階目では、ＲＡＩＤコントローラ１０は、元のＨＤＤ２０から分散対象のデータ以外のデータの再配置を行なうための書換え処理を実行し、書換え後の記録データを追加のＨＤＤ２１に複製する。
【００４０】
以上のように本実施形態の方法であれば、１段階目の処理時には、元のＨＤＤ２０に対する書換え処理は実行されずに、追加の各ＨＤＤ２１〜２３に対する複製処理または容量拡張処理に伴なう書込み動作が実行される。
【００４１】
ここで、元のＨＤＤ２０にエラーが発生したときには、容量拡張処理を中止しても、元のＨＤＤ２０にはオリジナルの記録データがそのまま保存されている。従って、元のＨＤＤ２０に対するエラー回復処理などを実行すれば、最初から複製処理または容量拡張処理を再開することができる。また、１段階目の処理時には、元のＨＤＤ２０に対するエラーチェックを行なうことにより、１段階目の処理に移行する前に、元のＨＤＤ２０にはエラーがなく、オリジナルの記録データに対する保証を確保できる。
【００４２】
なお、本実施形態のＲＡＩＤコントローラ１０は、容量拡張処理の全段階を通して１つの棒グラフ，円グラフ，数字表示などで，作業進捗率，経過時間，残り時間等のいずれか，または全てを表示する機能を備えていてもよい。
【００４３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態に関するＲＡＩＤ構成を示すブロック図。
【図２】本実施形態に関するＲＡＩＤコントローラの構成を示すブロック図。
【図３】本実施形態に関する容量拡張処理を説明するための図。
【図４】本実施形態に関する容量拡張処理の手順を説明するためのフローチャート。
【図５】他の実施形態に関する容量拡張処理を説明するための図。
【図６】さらに他の実施形態に関する容量拡張処理を説明するための図。
【図７】他の実施形態に関する容量拡張処理の手順を説明するためのフローチャート。
【符号の説明】
【００４５】
１０…ＲＡＩＤコントローラ、２０〜２３…ディスクドライブ（ＨＤＤ）、
１００…マイクロプロセッサ（ＣＰＵ）、１１０…メモリ、１２０…バッファメモリ、
１３０…ドライブインターフェース、１４０…ホストインターフェース。
【図１】
2005107841.tif 000003
【図２】
2005107841.tif 000004
【図３】
2005107841.tif 000005
【図４】
2005107841.tif 000006
【図５】
2005107841.tif 000007
【図６】
2005107841.tif 000008
【図７】
2005107841.tif 000009