JP4293648B2 - ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体 - Google Patents
ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP4293648B2 JP4293648B2 JP19676598A JP19676598A JP4293648B2 JP 4293648 B2 JP4293648 B2 JP 4293648B2 JP 19676598 A JP19676598 A JP 19676598A JP 19676598 A JP19676598 A JP 19676598A JP 4293648 B2 JP4293648 B2 JP 4293648B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- disk
- program
- writing
- area
- 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
Links
Images
Description
【発明の属する技術分野】
本発明はディスク装置の書込みデータ保護技術に関し、特にディスク装置にデータを書込む際に、プログラムのバグ(bug)により生じ得るデータの誤書込みによる書込み済みデータの保護、およびディスク装置の電源オンオフが正常になされなかった場合の書込み済みデータの保護技術に関する。
【0002】
【従来の技術】
ディスク装置へのアクセスの高速化と障害防止対策を兼ね備えた技術としてRAID(Redundant Arrays of Independent(Inexpensive) Disks)がある。
RAIDはデータを分割して複数のディスクに格納し、高速アクセスと高信頼性を実現する技術であり、分割格納と障害対策の方式の違いによって幾つかのレベルに分類されており、レベル(現在は、RAID0〜RAID5の6つに分類されている)によってディスク容量の使用効率やデータアクセスの効率などが異なっている。
【0003】
例えば、RAID1ではディスクの二重化(ミラーリング)を行なう。すなわち、図7(a),(b)に示すように全く同じ内容のデータを2台(2台以上でもよい)のディスク44−1,44−2に書込む。これにより、あるディスクが故障しても正常な方のディスクを用いて処理を実行できる。
なお、RAID1には図7(a)に示すようにディスクドライバ43などのソフトウエアによる処理で2重化を行なうソフトウエアRAIDと、図7(b)に示すようにコントローラ43’などのハードウエアを利用して2重化を行なうハードウエアRAIDがある。
【0004】
図7(a)のディスク装置40ではOS(Operating System)やアプリケーションプログラム42からのリクエストをもとにディスクドライバ43が同一データをディスク44−1,44−2に同時に書込んで2重化を行なう。また、図7(b)のディスク装置40’ではホストコンピュータ41からのリクエストやコマンドを受取ったコントローラ43’が同一データをディスク44’−1,44’−2に同時に書込んで2重化を行なう。
【0005】
RAID1ではアプリケーションプログラムやホスト等からのリクエストやコマンドに対応する処理が終了した時には2台のディスクに書込まれているデータは、誤書込みがない限り同一となる。
【0006】
【発明が解決しようとする課題】
RAID1では、ディスクにハードウエア上の故障が生じた場合に重要なデータを保護できるが、1回のリクエストで2台のディスクに同じデータを書込むので、プログラムの不具合(例えば、プログラムバグによる暴走)によるデータの異常書込みがあった場合には2台のディスクに同じように異常データを書込んでしまうので、書込まれた部分のデータが駄目(フォーマットを無視した異常データの書込みにより、異常データの書込まれたファイルについてデータの読み取りが不能になる等)になってしまうという問題点があった。
例えば、ディスク装置が正常で、且つプログラムが正常に動作している場合には、図8(a)に示すようにディスク上に確保されたディスク44−1(44’−1),44−2(44’−2)のファイル領域のうちの当該データに対応するファイルに正常なデータがそれぞれ書込まれる。一方、プログラムにバグがあったような場合には、図8(b)に示すようにディスク44−1(44’−1),44−2(44’−2)には異常なデータがそれぞれ書込まれてしまう。従って、次の機会にアプリケーションプログラムによるファイルへのアクセス(読み出しリクエスト)を行なったとき、データをフォーマット通り読み出すことができない(読み出されたデータはアプリケーション側にとって無意味な記号列となる)。
【0007】
また、RAID1ではディスク装置が2台必要となるのでコストがかさむという不都合もあった。
【0008】
また、ディスク装置の電源異常等による電源遮断の際にはデータの書込が正常処理されないままに中断するので、後で読取りエラーが生じることがあった。
【0009】
本発明は、上記問題点および不都合に鑑みてなされたものであり、ディスクの故障やハード的な書込みエラー等のハードウエア的な異常が生じた場合にディスクに書込まれたデータを保護するRAIDのような方式とは別に、ディスクへのデータの書込みタイミングをずらすことによってプログラムのバグよって生じるデータの誤書込やディスク装置の異常電源遮断等によって生じるデータ誤書込みからデータを保護し得る、ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体の提供を目的とする。
【0010】
【課題を解決するための手段】
上記課題を解決するために、請求項1に記載のディスク装置におけるデータ保護方法は、ディスクへのデータの書込み及び前記ディスクからのデータの読み出しを行なうディスク装置におけるデータ保護方法であって、ディスク装置の起動時に、該ディスク装置の前回の電源遮断状態情報を調べ、電源遮断状態が正常でなかった場合はディスク上に割当てられているバックアップ領域に書き込まれているデータを該ディスク上に割当てられているデータ書込み領域に書込み、電源遮断状態が正常であった場合は、更に、プログラムの前回の終了状態情報を調べ、プログラムが正常に終了していなかった場合は前記バックアップ領域に書き込まれているデータを前記データ書込み領域に書込み、該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行により該本体装置から該ディスク装置に転送されるデータを、前記データ書込み領域に書込み、前記データの書込みが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込み、前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは電源遮断状態情報若しくはプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを禁止する、
ことを特徴とする。
【0011】
また、請求項2に記載の発明のディスク装置は、ディスクへのデータの書込み及びディスクからのデータの読み出しを行なうディスク装置において、ディスクへのデータ書込み/読出し手段と、前記データ書込み/読出し手段を制御してディスクへのデータの書込み及びディスクからのデータの読出し制御を行なうディスクドライバと、ディスク装置の電源遮断状態を判定するための電源遮断状態情報を格納する第1の格納手段と、前記プログラムの終了状態を判定するためのプログラム終了状態情報を格納する第2の格納手段と、
を備え、前記ディスクドライバは、ディスク装置の起動時に、前記第1の格納手段に格納されている電源遮断状態情報および第2の格納手段に格納されているプログラム終了状態情報を調べ、前回の電源遮断状態が正常でなかった場合またはプログラムが前回正常に終了していなかった場合はディスク上に割当てられているバックアップ領域に書き込まれているデータを自動的に該ディスク上に割当てられているデータ書込み領域に書き込むように前記データ書込み/読出し手段を制御し、該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行時に該本体装置からディスク装置に送信される書込み指示を受信して前記プログラムの実行により転送されるデータを前記データ書込み領域に書込み、前記プログラムが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むように前記データ書込み/読出し手段を制御し、前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは前記第1の格納手段に格納されている電源遮断状態情報若しくは第2の格納手段に格納されているプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを行わないように前記データ書込み/読出し手段を制御する、ことを特徴とする。
【0012】
また、請求項3に記載のディスク装置は、ディスクへのデータの書込み及びディスクからのデータの読み出しを行なうディスク装置において、ディスクへのデータ書込み/読出し手段と、前記データ書込み/読出し手段を制御してディスクへのデータの書込み及びディスクからのデータの読出し制御を行なうディスクドライバと、ディスク装置の電源遮断状態を判定するための電源遮断状態情報を格納する第1の格納手段と、前記プログラムの終了状態を判定するためのプログラム終了状態情報を格納する第2の格納手段と、警告出力手段と、を備え、前記ディスクドライバは、ディスク装置の起動時に、前記第1の格納手段に格納されている電源遮断状態情報および第2の格納手段に格納されているプログラム終了状態情報を調べ、前回の電源遮断状態が正常でなかった場合またはプログラムが前回正常に終了していなかった場合に警告を出力するように前記警告出力手段を制御し、手動操作に基づいてディスク上に割当てられているバックアップ領域に書き込まれているデータを該ディスク上に割当てられているデータ書込み領域に書き込むように前記データ書込み/読出し手段を制御し、該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行時に該本体装置からディスク装置に送信される書込み指示を受信して前記プログラムの実行により転送されるデータを前記データ書込み領域に書込み、前記プログラムが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むように前記データ書込み/読出し手段を制御し、前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは前記第1の格納手段に格納されている電源遮断状態情報若しくは第2の格納手段に格納されているプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを行わないように前記データ書込み/読出し手段を制御する、ことを特徴とする。
【0013】
また、請求項4に記載の発明は請求項2または3に記載の発明のディスク装置において、前記ディスクドライバは、前記データの前記データ書込み領域への書込みの際に、該データ書込み領域上の書込み位置情報をディスクに割当てられているログ領域に書込み、前記バックアップ領域へのデータの書込みの際は前記書込み位置情報に基づいて前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むように前記データ書込み/読出し手段を制御することを特徴とする。
【0014】
また、請求項5に記載の発明は請求項2または3に記載の発明のディスク装置において、前記ディスクドライバは、前記バックアップ領域に書き込まれているデータを前記データ書込み領域に書き込む際には、前記データの前記データ書込み領域への書込み時にディスクに割当てられているログ領域に書込まれた前記データ書込み領域上の書込み位置情報および前記バックアップ領域上の書込位置情報に基づいて前記バックアップ領域に書込まれたデータを前記データ書込領域に書込むことを特徴とする。
【0015】
また、請求項6に記載の発明のプログラムを記録したコンピュータ読み取り可能な記録媒体は、ディスク装置のコンピュータに、ディスク装置の起動時に、該ディスク装置の前回の電源遮断状態情報を調べ、電源遮断状態が正常でなかった場合はディスク上に割当てられているバックアップ領域に書き込まれているデータを該ディスク上に割当てられているデータ書込み領域に書込むステップ、電源遮断状態が正常であった場合は、更に、プログラムの前回の終了状態情報を調べ、プログラムが正常に終了していなかった場合は前記バックアップ領域に書き込まれているデータを前記データ書込み領域に書込むステップ、
該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行により該本体装置から該ディスク装置に転送されるデータを前記データ書込み領域に書込むステップ、前記データの書込みが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むステップ、前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは電源遮断状態情報若しくはプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを禁止するステップ、を実行させるためのプログラムを記録していることを特徴とする。
【0024】
【発明の実施の形態】
図1は、本発明のデータ保護方法を適用したディスク装置の一実施例の主要部の構成を示すブロック図であり、1台のディスクを用いる場合の例である。また、図1で、(a)はアプリケーションプログラムの通常動作中のディスクへのアクセス状態を示し、(b)はアプリケーションプログラムの終了時または電源オフ(或いは電源オン)時のディスクへのアクセス状態を示す図である。
【0025】
図1で、ディスク装置100はディスクドライバ1と1台のディスク2を備えている。
ディスク2は制御プログラムやアプリケーションプログラムおよびユティリティプログラム等を格納したり、プログラムの実行時に中間値等を格納したりするシステム領域21と、データファイル領域が確保されるデータ書込み領域22,バックアップデータを書込むバックアップ領域23およびログ領域24を有している。これら領域21〜24はディスクの物理的連続領域をメーカー側で予め分割して出荷するか、或いはディスクのフォーマット時に割り付けられる。
なお、実施例ではシステム領域21にアプリケーションプログラムを格納したが、アプリケーションプログラムをデータファイルとしてデータ書込み領域22に書込むようにしてもよい。
【0026】
また、バックアップ領域23およびログ領域24はアプリケーションプログラムではアクセス(書込み/読み出し)ができない。なお、所定の条件下でアクセスができるようにしてもよい。
【0027】
図2はログ領域の一実施例の構造を示す構成図であり、(a)はログ領域の実施例、(b)は終了状態フラグ欄の実施例を示しているが、この例に限定されない。
【0028】
図2(a)で、ログ領域24はプログラム別ログ情報ブロック240−1,240−2,240−3,・・,240−nを有している。また、プログラム別ログ情報ブロック240−1,240−2,240−3,・・,240−nは図2(b)に示すようにそれぞれそのアプリケーションプログラムのIDを格納するアプリケーションID欄241、当該アプリケーションプログラムの実行によって書込まれたデータのデータ書込領域12のデータ書込み開始アドレス記入欄242および使用セクター数記入欄243、バックアップ領域13のバックアップデータ書込み開始アドレス記入欄244および使用セクター数記入欄245、プログラム終了状態フラグ欄246およびディスク電源遮断状態フラグ欄247を有している。
【0029】
図2(b)で、プログラム終了状態フラグ欄246にはプログラムが正常に終了したか否かを示すプログラム終了状態フラグを格納する(実施例では正常終了時=オフ(フラグ値=0)),異常終了時=オン(フラグ値=1))。また、電源遮断状態フラグ欄247には、ディスク装置100の電源スイッチの遮断がディスク装置100の正常終了動作によってなされたか否かを示す電源遮断状態フラグを格納する(実施例では正常時=オフ(フラグ=0),異常時=オン(フラグ1))。例えば、後述するようにアプリケーションプログラムが正常終了した場合にプログラム終了状態フラグをオフ(=0)とし、終了時にプログラム終了状態フラグを調べ、オフでない場合には(異常終了)データ書込み領域22に書込まれたデータのバックアップ領域23への書込みを行なわないようにできる。これにより、ディスク装置100の起動時に(或いは別プログラムを用いて)プログラム終了状態フラグや電源遮断状態フラグを調べて、異常終了の場合にバックアップ領域23のデータをデータ書込み領域22に書込むデータ回復処理を行なうことができる。
【0030】
また、プログラムの書込動作中(或いは書込正常終了後)に異常電源遮断が生じると書込領域22のデータが正常に書込まれない(或いは書込まれたデータが壊される)ので、異常電源遮断が生じた場合に前回バックアップ領域23に書込まれたデータ(バックアップデータ)を保護するために、ディスク起動時には電源遮断状態フラグを前回の状態に保持し、プログラムが正常に終了した場合に(この場合は、異常電源遮断がないので)電源遮断状態フラグをオフにする。
【0031】
これにより、ディスク装置100の起動時に電源遮断フラグを調べ、異常電源フラグがオンの場合には前回のディスク動作でディスクが異常終了したことがわかるので、アプリケーション起動にプログラムの実行に先立ってバックアップ領域23のデータをデータ書込領域に書込むデータ回復処理を行なうことができる。
【0032】
図1で、ディスクドライバ1はアプリケーションプログラムからのリクエストがあると図示しない読み出し/書き込み機構(ヘッドおよびシーク機構)によりデータの書込みまたは読み出しを行なう。
【0033】
ディスクドライバ1は、あるアプリケーションプログラムの動作が開始されるとプログラム識別情報とデータ書込み開始アドレスをディスク2のログ領域24に書込むと共に終了状態フラグ244の初期設定(本実施例では全てオフ(=0)に設定しているがこれに限定されない)を行なう。
また、そのプログラムの通常動作中はディスク2のデータ書込み領域22に確保された対応のファイル領域にデータを書込むと共にその時点でのセクター数をカウントする。
また、そのアプリケーションプログラムが正常に終了した場合、またはディスク装置100の電源が遮断された場合(人為的またはプログラム的な電源オフおよびディスク装置100に物理的外力が加えられた場合の衝撃等に対する保護動作による電源異常遮断の場合を含む)には、終了状態フラグ244の対応のフラグ値をオン(=1)にして保持していたデータ書込み開始アドレスおよびセクター数のカウント値(以下、書込み位置情報)をログ領域24に書込む。
【0034】
また、アプリケーションプログラムが異常終了した場合にはプログラム終了状態フラグは設定値(実施例ではオフ)のままとなる。
【0035】
次に、終了状態フラグ244を調べ、プログラム終了状態フラグが正常終了(実施例ではフラグ値=1)の場合には書込み位置情報をログ領域24から読み出して、それを基にディスク2のデータ書込み領域22に書込まれたデータを読み出してバックアップ領域23に書込む。また、プログラム終了状態フラグ欄246の値がプログラムの異常終了(実施例ではフラグ値=0)を意味する場合にはデータ書込み領域22に書込まれたデータのバックアップ領域23への書込は行なわない。
【0036】
なお、実施例ではアプリケーションプログラムが正常に終了した場合、またはディスク装置100の電源が遮断された場合に終了状態フラグを調べ、プログラム終了状態フラグが正常終了のときにログ領域24の書込み位置情報によってデータ書込み領域22に書込まれたデータをバックアップ領域23に書込んだが、アプリケーションプログラムによるアクセス開始時に、ログ領域24に書込まれているプログラム識別情報241をもとにそのアプリケーションプログラムで前回データ書込み領域22に書込んだ書込み位置情報を読み出してデータ書込み領域22に書込まれたデータをバックアップ領域23に書込むようにしてもよい。
【0037】
図3はプログラム終了状態によるデータ書込み領域22とバックアップ領域23の書込み内容の説明図である。
図3で、ディスク装置100のハードウエアが正常に動作し、且つアプリケーションプログラムが正常に動作している場合には、(a)に示すように正常なデータがデータ書込み領域22の当該データに対応するファイルに書込まれ、処理が終了するか電源がオフになると、(a)’に示すようにデータ書込み領域22に書込まれたデータがバックアップ領域23に書込まれる。なお、データ書込み領域22への書込み時には前述したように書込み位置情報がログ領域24に書込まれるので、バックアップ領域23への書込み時にはログ領域24に書込まれた書込み位置情報を用いてデータ書込み領域22からデータを取り出してバックアップ領域23に書込むことができる。
【0038】
また、プログラムにバグがあったような場合には、プログラムエラーが発生してプログラムが異常動作し、(b)に示すように異常データがデータ書込み領域22に書込まれる場合がある。また、プログラムが異常動作すると処理が中断される。さらに、プログラム終了状態フラグが正常終了を意味しないので処理が終了したにも拘らずデータ書込み領域22に書込まれた異常データはバックアップ領域23に書込まれない。即ち、前回のバックアップデータがそのままバックアップ領域23に残っている。
【0039】
プログラムの異常終了や電源異常による電源スイッチの遮断の場合に、図4に示すようにディスク装置100側(すなわち,図1の構成の場合はディスクドライバ1、図6の構成の場合はコントローラ4)で、自動的に、バックアップ領域23に記憶されている前回のデータをデータ書込み領域22に書込んでデータの回復を行なうことができる。
また、使用者がコンピュータ装置側でデータ回復プログラムを動作させてバックアップ領域23に記憶されている前回のデータをデータ書込み領域22に書込んでデータの回復を行なうように構成することもできる。
【0040】
上述したように、本発明ではデータの二重化を同時ではなくて時間差を設けて実行することによりバグのあるプログラムがあった場合に生じ得る異常データの二重書込みを防止することができる。また、バックアップ領域に格納してあったデータによるデータ回復をディスク装置側で自動的に行なうようにすることもできる。
【0041】
図4は、本発明のデータ保護方法を適用したディスク装置のディスクドライバ(図6の構成の場合はコントローラまたはディスクドライバ)の動作例を示すフローチャートである。
【0042】
ディスク装置100が起動されると、まず、電源遮断状態フラグを調べ、電源遮断状態フラグがオン(=1)の場合には前回電源異常によりデータが正常に書込まれなかったものとしてS15に遷移する(S1)。
次に、プログラム終了状態フラグを調べ、プログラム終了状態フラグがオン(=1)の場合には前回プログラム異常によりデータが正常に書込まれなかったものとしS14に遷移する(S2)。
【0043】
上記ステップS1,S2で電源遮断状態フラグおよびプログラム終了フラグがいずれもオンの場合にはコンピュータ装置本体側では、アプリケーションプログラムによる処理が実行されるが、ディスク装置100はその間コンピュータ装置本体からのリクエスト待ちを行ない、コンピュータ装置本体(すなわち、アプリケーションプログラム)からのリクエスト(またはコマンド)があるか否かを調べ(S3)、リクエストがあるとS4に遷移する(S3)。
【0044】
リクエスト後、ディスク装置100に電源異常が生じるとS13に遷移する(S4)。
また、アプリケーションプログラムに異常が生じるとS12に遷移する(S5)。
また、アプリケーションプログラムが終了(正常終了)するとS9に遷移する(S6)。
書込リクエストがあると、転送されてきたデータをデータ書込領域22の所定のファイルにデータを書込み(S7)、次いで、データ書込み位置情報等をバッファに記憶または保持し(S8)、S3に戻る。
【0045】
上記ステップS6で、アプリケーションプログラムが終了した場合には、ログ領域24に書込み位置情報等の情報を書込むと共に(S9)、書込み位置情報を基にデータ書込み領域22に今回書込んだ情報を取り出して、バックアップ領域23の対応する位置に書込み(S10)、プログラム終了状態フラグおよび電源遮断状態フラグをオフ(=0)にして動作を終了する(S11)。
【0046】
また、上記ステップS5でアプリケーションプログラムに異常が生じた場合には、プログラム終了状態フラグをオンにして動作を終了する(S12)。
また、上記ステップS4でディスク装置100に電源異常が生じた場合には電源遮断状態フラグをオンにし、電源スイッチをオフとして電源を遮断する(S13)。
【0047】
また、上記ステップS2でプログラム終了状態フラグがオンの場合には、プログラム終了状態フラグをオフにしてS16に遷移する(S14)。
また、上記ステップS1で電源遮断状態フラグがオンの場合には、電源遮断状態フラグをオフにし(S15)、図5に示すようなデータ回復処理を行なって動作を終了する(S16)。
【0048】
上記動作中に電源異常またはプログラム異常があると電源スイッチは自動的または手動により強制的に遮断(オフ)される。この場合、上記ステップS4,ステップS13またはステップS5,S12の動作はディスク装置100に備えられた補助電源(回復処理用補助電源:図示せず)を用いて行なわれる。
【0049】
図5は、図4のステップS16の詳細フローチャートであり、ディスクドライバ(図6の構成の場合はコントローラまたはディスクドライバ)によるデータ回復処理の動作例を示すフローチャートである。
【0050】
図4のステップS1またはステップS2で、前回ディスク装置100の動作中に電源異常またはプログラム異常があった場合には、ディスクドライバはログ領域13から当該アプリケーションプログラムのIDを基に対応するログ情報ブロックを読み出す(S16−1)。
次に、バックアップデータ書込み開始アドレス記入欄244および使用セクター数記入欄245からバックアップデータ書込み開始アドレスおよび使用セクター数を取得する(S16−2)。
バックアップデータ書込み開始アドレスおよび使用セクター数を基に、バックアップ領域23からデータを読み出す(S16−3)。
次に、読み出したデータをデータ書込領域22の対応アドレス(セクタ)に書込む(S16−4)。
上記ステップS16−3,S16−4をセクタ数分のデータが書込まれるまで繰り返して処理を終了する。(S16−5)。
【0051】
なお、ステップS16でデータ自動回復を行なう場合にはその旨の表示或いは警告を出力して使用者に確認を促し、確認操作後にディスク装置側でデータの回復を行なうようにしてもよい。
また、ステップS16でディスク装置100側でデータ自動回復を行なうのではなくディスク装置100側ではその旨の表示或いは警告を行なった後、ステップS5への遷移を行なうことなく処理を一旦終了し、使用者の指示の下にコンピュータ装置側でデータ回復プログラムを実行するようにしてもよい。
【0052】
図6は、本発明のディスク装置の書込みデータ保護方法を適用したディスク装置の一実施例の主要部の構成を示すブロック図であり、RAID1により複数2台(または2×n個)のディスクを用いてデータを二重化する場合の例である。また、図6で、(a)はアプリケーションプログラムの通常動作中のディスクへのアクセス状態を示し、(b)はアプリケーションプログラムの終了時または電源オフ(或いは電源オン)時のディスクへのアクセス状態を示す図である。
【0053】
図1で、ディスク装置100’はコントローラ(またはディスクドライバ)4と2台のディスク2−1,2−2を備えている。
ディスク2−1,2−2はデータファイル領域が確保されるデータ書込み領域22−1,22−2とバックアップデータを書込むバックアップ領域23−1,23−2およびログ領域24−1,24−2を有している。これら領域22〜24はディスクの物理的連続領域をメーカー側で予め分割して集荷するか、或いはディスクのフォーマット時に割り付けられる。
なお、実施例では制御プログラムやアプリケーションプログラムおよびユティリティプログラム等はディスク装置100’に図示しない回線等を介して接続するホストコンピュータ3側で持つように構成したが、アプリケーションプログラムをデータファイルとしてデータ書込み領域22−1,22−2に書込むようにしてもよい。
【0054】
また、バックアップ領域23−1,23−2およびログ領域24−1,24−2はアプリケーションプログラムでは書込み/読み出しができない。なお、所定条件下でアクセスできるようにしてもよい。
また、ログ領域24−1,24−2は図2に示したログ領域24の構成と同様でよい。
また、コントローラ(または、デイスクドライバ)4の動作は前述した動作(図4または図5のフローチャートに示した動作)と同様である。
【0055】
図6の例では、RAID1によりディスク2−1および2−2に同一タイミングで同じデータが書込まれデータが二重化されるのでディスク装置のハードウエア上の誤動作や欠陥に伴うデータ書込みエラーを防止できる。
また、本発明によるデータ保護方法によりデータ書込み領域へのデータの書込みとバックアップデータ領域へは同一データが書込まれるが、図4のフローチャートに示したと同様の動作により書込みのタイミングがずらされているので、RAID1でアプリケーションプログラムの誤動作によって異常データがディスク2−1,2−2に同時に書込まれても、バックアップ領域24−1,24−2には異常データが書込まれないので、アプリケーションプログラムの誤動作があってもデータ回復を行なうことができる。
【0056】
【発明の効果】
上記説明したように、本発明によれば、書込み領域への書込み(もしくはプログラム)が正常に終了した後にバックアップ領域に書き込み領域に書き込んだデータをコピーするので、少なくとも書込み領域への書込み時間分バックアップ領域への書込みタイミングをずらしてデータを二重化(ミラーリング)することとなり、プログラムのバグによるデータの誤書込みや電源異常等による電源スイッチの強制遮断によるデータ書込中断状態等からディスクに書込まれているデータを保護できる。また、1台のディスクでミラーリングすることもできるので、高信頼性でRAID1より廉価なディスクシステムを構築できる。また、RAID1と併せてディスクシステムを構築することもできるので、この場合、ハードウエア上の故障や誤動作に対するデータ保護に加え、プログラムを原因とするデータの誤書込みに対するデータ保護を行なえるので、従来のRAID1よりはるかに信頼性の高いディスクシステムを実現し得る。
【0057】
また、ディスクドライバでバックアップ領域へのアクセスを制限できるのでセキュリティに利用できる。
【図面の簡単な説明】
【図1】本発明のデータ保護方法を適用したディスク装置の一実施例の主要部の構成を示すブロック図である。
【図2】ログ領域の一実施例の構造を示す構成図である。
【図3】プログラム終了状態によるデータ書込み領域とバックアップ領域の書込み内容の説明図である。
【図4】本発明のデータ保護方法を適用したディスク装置のディスクドライバ(またはコントローラ)の動作例を示すフローチャートである。
【図5】データ自動回復時のディスクドライバ(またはコントローラ)の動作例を示すフローチャートである。
【図6】RAID1および本発明のデータ保護方法を適用したディスク装置の一実施例の主要部の構成を示すブロック図である。
【図7】RAID1によるディスクの二重化(ミラーリング)の説明図である。
【図8】プログラムにバグがあった場合の従来のRAID1によるデータの書込み状態の説明図である。
【符号の説明】
1 ディスクドライバ(データ書込み手段,データ遅延書込み手段,プログラム終了判定手段,バックアップデータ書込み手段,ログ情報書込み手段、データ回復手段)
2,2−1,2−2 ディスク
3 ホストコンピュータ(コンピュータ)
4 コントローラ(データ書込み手段,データ遅延書込み手段,プログラム終了判定手段,バックアップデータ書込み手段,ログ情報書込み手段)
22 データ書込み領域(第1のデータ書込み領域,第1の情報記録領域)
23 バックアップ領域(第2のデータ書込み領域,第2の情報記録領域、データ回復手段)
24 ログ領域(第3のデータ書込み領域,第3の情報記録領域、データ回復手段)
100,100’ ディスク装置
242 データ書込み開始アドレス(データ書込み位置情報)
243 使用セクター数記入欄(データ書込み位置情報)
244 終了状態フラグ欄(プログラム終了判定手段)
246 プログラム終了状態フラグ欄(プログラム終了判定手段)
Claims (6)
- ディスクへのデータの書込み及び前記ディスクからのデータの読み出しを行なうディスク装置におけるデータ保護方法であって、
ディスク装置の起動時に、該ディスク装置の前回の電源遮断状態情報を調べ、電源遮断状態が正常でなかった場合はディスク上に割当てられているバックアップ領域に書き込まれているデータを該ディスク上に割当てられているデータ書込み領域に書込み、電源遮断状態が正常であった場合は、更に、プログラムの前回の終了状態情報を調べ、プログラムが正常に終了していなかった場合は前記バックアップ領域に書き込まれているデータを前記データ書込み領域に書込み、
該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行により該本体装置から該ディスク装置に転送されるデータを、前記データ書込み領域に書込み、前記データの書込みが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込み、前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは電源遮断状態情報若しくはプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを禁止する、
ことを特徴とするディスク装置におけるデータ保護方法。 - ディスクへのデータの書込み及びディスクからのデータの読み出しを行なうディスク装置において、
ディスクへのデータ書込み/読出し手段と、
前記データ書込み/読出し手段を制御してディスクへのデータの書込み及びディスクからのデータの読出し制御を行なうディスクドライバと、
ディスク装置の電源遮断状態を判定するための電源遮断状態情報を格納する第1の格納手段と、
前記プログラムの終了状態を判定するためのプログラム終了状態情報を格納する第2の格納手段と、
を備え、
前記ディスクドライバは、
ディスク装置の起動時に、前記第1の格納手段に格納されている電源遮断状態情報および第2の格納手段に格納されているプログラム終了状態情報を調べ、前回の電源遮断状態が正常でなかった場合またはプログラムが前回正常に終了していなかった場合はディスク上に割当てられているバックアップ領域に書き込まれているデータを自動的に該ディスク上に割当てられているデータ書込み領域に書き込むように前記データ書込み/読出し手段を制御し、
該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行時に該本体装置からディスク装置に送信される書込み指示を受信して前記プログラムの実行により転送されるデータを前記データ書込み領域に書込み、前記プログラムが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むように前記データ書込み/読出し手段を制御し、
前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは前記第1の格納手段に格納されている電源遮断状態情報若しくは第2の格納手段に格納されているプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを行わないように前記データ書込み/読出し手段を制御する、
ことを特徴とするディスク装置。 - ディスクへのデータの書込み及びディスクからのデータの読み出しを行なうディスク装置において、
ディスクへのデータ書込み/読出し手段と、
前記データ書込み/読出し手段を制御してディスクへのデータの書込み及びディスクからのデータの読出し制御を行なうディスクドライバと、
ディスク装置の電源遮断状態を判定するための電源遮断状態情報を格納する第1の格納手段と、
前記プログラムの終了状態を判定するためのプログラム終了状態情報を格納する第2の格納手段と、
警告出力手段と、
を備え、
前記ディスクドライバは、
ディスク装置の起動時に、前記第1の格納手段に格納されている電源遮断状態情報および第2の格納手段に格納されているプログラム終了状態情報を調べ、前回の電源遮断状態が正常でなかった場合またはプログラムが前回正常に終了していなかった場合に警告を出力するように前記警告出力手段を制御し、
手動操作に基づいてディスク上に割当てられているバックアップ領域に書き込まれているデータを該ディスク上に割当てられているデータ書込み領域に書き込むように前記データ書込み/読出し手段を制御し、
該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行時に該本体装置からディスク装置に送信される書込み指示を受信して前記プログラムの実行により転送されるデータを前記データ書込み領域に書込み、前記プログラムが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むように前記データ書込み/読出し手段を制御し、
前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは前記第1の格納手段に格納されている電源遮断状態情報若しくは第2の格納手段に格納されているプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを行わないように前記データ書込み/読出し手段を制御する、
ことを特徴とするディスク装置。 - 前記ディスクドライバは、前記データの前記データ書込み領域への書込みの際に、該データ書込み領域上の書込み位置情報をディスクに割当てられているログ領域に書込み、前記バックアップ領域へのデータの書込みの際は前記書込み位置情報に基づいて前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むように前記データ書込み/読出し手段を制御することを特徴とする請求項2または3に記載のディスク装置。
- 前記ディスクドライバは、前記バックアップ領域に書き込まれているデータを前記データ書込み領域に書き込む際には、前記データの前記データ書込み領域への書込み時にディスクに割当てられているログ領域に書込まれた前記データ書込み領域上の書込み位置情報および前記バックアップ領域上の書込位置情報に基づいて前記バックアップ領域に書込まれたデータを前記データ書込領域に書込むことを特徴とする請求項2または3に記載のディスク装置。
- ディスク装置のコンピュータに、
ディスク装置の起動時に、該ディスク装置の前回の電源遮断状態情報を調べ、電源遮断状態が正常でなかった場合はディスク上に割当てられているバックアップ領域に書き込まれているデータを該ディスク上に割当てられているデータ書込み領域に書込むステップ、
電源遮断状態が正常であった場合は、更に、プログラムの前回の終了状態情報を調べ、プログラムが正常に終了していなかった場合は前記バックアップ領域に書き込まれているデータを前記データ書込み領域に書込むステップ、
該ディスク装置の起動後に、本体装置側コンピュータによるプログラムの実行により該本体装置から該ディスク装置に転送されるデータを前記データ書込み領域に書込むステップ、
前記データの書込みが正常に終了したときに、前記データ書込み領域に書込まれたデータを前記バックアップ領域に書込むステップ、
前記データ書き込み領域へのデータ書込み時に電源遮断若しくはプログラム異常等の障害が発生したときは電源遮断状態情報若しくはプログラム終了状態情報を異常を意味する情報に変更すると共に前記バックアップ領域へのデータの書込みを禁止するステップ、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19676598A JP4293648B2 (ja) | 1998-06-26 | 1998-06-26 | ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19676598A JP4293648B2 (ja) | 1998-06-26 | 1998-06-26 | ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000020249A JP2000020249A (ja) | 2000-01-21 |
JP4293648B2 true JP4293648B2 (ja) | 2009-07-08 |
Family
ID=16363259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19676598A Expired - Fee Related JP4293648B2 (ja) | 1998-06-26 | 1998-06-26 | ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4293648B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4662743B2 (ja) * | 2004-09-13 | 2011-03-30 | Necインフロンティア株式会社 | データ2重化システム |
CA2590361C (en) | 2004-11-05 | 2012-01-03 | Data Robotics Incorporated | Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method |
US7873782B2 (en) | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
-
1998
- 1998-06-26 JP JP19676598A patent/JP4293648B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000020249A (ja) | 2000-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6854071B2 (en) | Method and apparatus for providing write recovery of faulty data in a non-redundant raid system | |
US5740397A (en) | IDE disk drive adapter for computer backup and fault tolerance | |
US5822782A (en) | Methods and structure to maintain raid configuration information on disks of the array | |
US8140909B2 (en) | Efficient method to detect disk write errors | |
CN101313283B (zh) | 用于动态地暴露逻辑备份卷和还原卷的方法 | |
US5195100A (en) | Non-volatile memory storage of write operation identifier in data sotrage device | |
US7685180B2 (en) | System and article of manufacture for transparent file restore | |
US7613946B2 (en) | Apparatus, system, and method for recovering a multivolume data set | |
JP4886209B2 (ja) | アレイコントローラ、当該アレイコントローラを含む情報処理装置及びディスクアレイ制御方法 | |
EP0889409A1 (en) | Mirrored write-back cache module warmswap | |
US20050132157A1 (en) | Storage device, backup method and computer program code of this storage device | |
US7487400B2 (en) | Method for data protection in disk array systems | |
JP3230645B2 (ja) | データ処理方法、システムおよび装置 | |
US20150378858A1 (en) | Storage system and memory device fault recovery method | |
US7293138B1 (en) | Method and apparatus for raid on memory | |
US20070036055A1 (en) | Device, method and program for recovering from media error in disk array device | |
US20060015769A1 (en) | Program, method and apparatus for disk array control | |
US8065481B1 (en) | RAID system and method compatible with improved drive select | |
JP4012420B2 (ja) | 磁気ディスク装置及びディスク制御装置 | |
JP4293648B2 (ja) | ディスク装置におけるデータ保護方法、ディスク装置、およびプログラムを記録したコンピュータに読み取り可能な記録媒体 | |
JP2000020248A (ja) | ディスクの障害回復方法、ディスクドライバおよび記録媒体 | |
JP2001075741A (ja) | ディスク制御システムおよびデータ保全方法 | |
JP2868001B1 (ja) | ディスクアレイ装置制御方法およびディスクアレイ装置 | |
JPH07182250A (ja) | 磁気ディスクの自動交代処理方式 | |
US6229743B1 (en) | Method of a reassign block processing time determination test for storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040608 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040608 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050622 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080325 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
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: 20090331 |
|
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: 20090407 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120417 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150417 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |