(57)【要約】【課題】ＲＡＩＤ１の一方のＨＤＤが振動や衝撃を受けた場合にＨＤＤのディスク回転数を別々に制御してデータ書き込み時間を速くし、また破損したデータを書き込まないようにできる情報処理装置を提供する。【解決手段】ステップＳ１０６では振動や衝撃を受けないＨＤＤの回転数を上げる。ステップＳ１０８では振動や衝撃を受けないディスク回転数を上げたＨＤＤのデータ書き込みが完了する。ステップＳ１０９では振動や衝撃を受けないディスク回転数を上げたＨＤＤのディスク回転数を最初のディスク回転数より下げる。ステップＳ１１１では振動や衝撃を受けたＨＤＤの振動や衝撃が収まっているかを判定し、収まっているときステップＳ１１３では振動や衝撃を受けてディスク回転数を下げたＨＤＤに対して最初のディスク回転数よりディスク回転を上げる。ステップＳ１１８ではデータ書き込みエラーがあるかをチェックし、エラー箇所には再度データを書き込む。【選択図】図３
2015210833.tif 000002
【特許請求の範囲】
【請求項１】
２台のハードディスクに同じデータを書き込むＲＡＩＤ１を用いる情報処理装置であって、
前記ハードディスクの振動や衝撃を検知する振動衝撃検知手段と、
２台の前記ハードディスクのディスク回転数を制御するディスク回転数制御手段と、
２台の前記ハードディスクにデータの書き込みを完了するとデータが書き込みエラーの有無を判定するデータ書き込みエラー判定手段と、
データ書き込みエラーがあったときにエラー箇所のデータを再度書き込むデータ再書き込み手段と
を備え、
振動や衝撃を受けた一方の前記ハードディスクのディスク回転数と振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数をそれぞれの前記ハードディスク振動や衝撃の大きさに応じてそれぞれの前記ハードディスクのディスク回転数を制御することを特徴とする情報処理装置。
【請求項２】
前記振動衝撃検知手段は、振動や衝撃の大きさを出力する振動／衝撃レベル出力手段を備え、
前記ディスク回転数制御手段は、振動／衝撃レベルに応じて振動や衝撃を受けた一方の前記ハードディスクのディスク回転数と振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ディスク回転数制御手段は、前記振動／衝撃レベルが特定の第１のレベル閾値以下であるときに、振動や衝撃を受けた一方の前記ハードディスクと振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を変更しないことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ディスク回転数制御手段は、前記第１のレベル閾値より大きい特定の第２のレベル閾値において、前記振動／衝撃レベルが前記第１のレベル閾値より大きく前記第２のレベル閾値以下であるときに、振動や衝撃を受けた一方の前記ハードディスクのディスク回転数を下げ、振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を上げることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ディスク回転数制御手段は、振動や衝撃を受けていない前記ハードディスクがデータの書き込みを完了すると、振動や衝撃を受けていない前記ハードディスクのディスク回転数を最初のディスク回転数より下げることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ディスク回転数制御手段は、振動や衝撃を受けていない前記ハードディスクがデータの書き込みを完了し、前記振動／衝撃レベルが第３のレベル閾値以下であるときに振動や衝撃を受けた一方の前記ハードディスクのディスク回転数を最初のディスク回転数より上げることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記ディスク回転数制御手段は、振動や衝撃を受けている前記ハードディスクがデータの書き込みを完了すると、振動や衝撃を受けた前記ハードディスクと振動や衝撃を受けていない前記ハードディスクのディスク回転数を最初のディスク回転数に戻すことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記ディスク回転数制御手段は、前記振動／衝撃レベルが前記第２のレベル閾値より大きいときに、振動や衝撃を受けた一方の前記ハードディスクのディスク回転を停止し、振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を上げることを特徴とする請求項４または請求項７に記載の情報処理装置。
【請求項９】
前記ハードディスクの故障を検出するハードディスク故障検出手段を備え、
一方の前記ハードディスクに故障を検出したときに、故障を検出した一方の前記ハードディスクのディスク回転を停止し、故障を検出していない他方の前記ハードディスクのディスク回転数を上げることを特徴とする請求項１または請求項２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＤＤ（hard disk drive）を備える情報処理装置に係り、特にＨＤＤに対するデータ書き込み制御に関する。
【背景技術】
【０００２】
ＰＣ（パソコン）などの端末、サーバー、プリンター、多機能プリンター、多機能周辺装置、又は複合機（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である情報処理装置は、ＨＤＤなどの外部記憶装置を搭載していることがある。このＨＤＤは、内部に円盤状の磁気ディスクと磁気ディスクに記憶されたデータを読み取る磁器ヘッドを備え、情報処理装置が動作しているときには、磁気ディスクは高速で回転し、その磁気ディスクの上にほんのわずかな隙間で接触しないようになっている磁器ヘッドにより、磁気ディスクのデータの読み取りや書き込みを行っている。このためＨＤＤが振動や衝撃を受けると、磁気ディスクと磁器ヘッドが接触することで磁気ディスクに傷が付き、傷がついた箇所のデータの読み取りや書き込みができなくなる。このように振動や衝撃に弱いＨＤＤが振動や衝撃を受けた場合でも、磁気ディスクのデータを正しく読み取るまたは書き込むことができるようにする対策が行われている。例えば、特許文献１の情報処理装置におけるデータ書き込み制御方法では、情報処理装置が備える３Ｄセンサーが振動または衝撃を検知すると、検知した振動または衝撃の大きさに応じてメディアドライブ（ＨＤＤ）の回転速度を低下させ、また記憶メディアにデータが正しく書き込まれたか否かを検証し、正しく書き込まれていなければ記憶メディアに対するデータの書き込みを再実行している。つまり、情報処理装置の３Ｄセンサーにより振動または衝撃を検知することで、情報処理装置は記憶メディアにデータを正しく書き込むようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１３４３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、同一のデータを２台のディスクに書き込むことで、一方のディスクが故障しても他方のディスクで処理が続行できるようにするミラーリング方式であるＲＡＩＤ１（Redundant Arrays of Independent Disks）においては、２台のＨＤＤに同じデータを同時に書き込まなければならない。このため、２台のＨＤＤのどちらか一方に振動や衝撃を受けた場合には、振動や衝撃を受けたＨＤＤの磁気ディスクの回転が安定するまで、振動や衝撃を受けていない他方のＨＤＤに対するデータの書き込みを待たなければならないので、データの書き込みが遅くなるという問題があった。また、データの書き込みを行うときにデータの書き込みエラーが発生することがあるが、エラーが発生している場合でもミラーリング方式であるＲＡＩＤ１はデータの書き込み処理を行うため、データが破損した状態で書き込まれるという問題があった。
【０００５】
本発明はこのような状況に鑑みてなされたものであり、上記課題を解決できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、２台のハードディスクに同じデータを書き込むＲＡＩＤ１を用いる情報処理装置であって、前記ハードディスクの振動や衝撃を検知する振動衝撃検知手段と、２台の前記ハードディスクのディスク回転数を制御するディスク回転数制御手段と、２台の前記ハードディスクにデータの書き込みを完了するとデータが書き込みエラーの有無を判定するデータ書き込みエラー判定手段と、データ書き込みエラーがあったときにエラー箇所のデータを再度書き込むデータ再書き込み手段とを備え、振動や衝撃を受けた一方の前記ハードディスクのディスク回転数と振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数をそれぞれの前記ハードディスク振動や衝撃の大きさに応じてそれぞれの前記ハードディスクのディスク回転数を制御することを特徴としている。
また、本発明の情報処理装置の前記振動衝撃検知手段は、振動や衝撃の大きさを出力する振動／衝撃レベル出力手段を備え、前記ディスク回転数制御手段は、振動／衝撃レベルに応じて振動や衝撃を受けた一方の前記ハードディスクのディスク回転数と振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を制御することを特徴としている。
また、本発明の情報処理装置の前記ディスク回転数制御手段は、前記振動／衝撃レベルが特定の第１のレベル閾値以下であるときに、振動や衝撃を受けた一方の前記ハードディスクと振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を変更しないことを特徴としている。
また、本発明の情報処理装置の前記ディスク回転数制御手段は、前記第１のレベル閾値より大きい特定の第２のレベル閾値において、前記振動／衝撃レベルが前記第１のレベル閾値より大きく前記第２のレベル閾値以下であるときに、振動や衝撃を受けた一方の前記ハードディスクのディスク回転数を下げ、振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を上げることを特徴としている。
また、本発明の情報処理装置の前記ディスク回転数制御手段は、振動や衝撃を受けていない前記ハードディスクがデータの書き込みを完了すると、振動や衝撃を受けていない前記ハードディスクのディスク回転数を最初のディスク回転数より下げることを特徴としている。
また、本発明の情報処理装置の前記ディスク回転数制御手段は、振動や衝撃を受けていない前記ハードディスクがデータの書き込みを完了し、前記振動／衝撃レベルが第３のレベル閾値以下であるときに振動や衝撃を受けた一方の前記ハードディスクのディスク回転数を最初のディスク回転数より上げることを特徴としている。
また、本発明の情報処理装置の前記ディスク回転数制御手段は、振動や衝撃を受けている前記ハードディスクがデータの書き込みを完了すると、振動や衝撃を受けた前記ハードディスクと振動や衝撃を受けていない前記ハードディスクのディスク回転数を最初のディスク回転数に戻すことを特徴としている。
また、本発明の情報処理装置の前記ディスク回転数制御手段は、前記振動／衝撃レベルが前記第２のレベル閾値より大きいときに、振動や衝撃を受けた一方の前記ハードディスクのディスク回転を停止し、振動や衝撃を受けていない他方の前記ハードディスクのディスク回転数を上げることを特徴としている。
また、本発明の情報処理装置は、前記ハードディスクの故障を検出するハードディスク故障検出手段を備え、一方の前記ハードディスクに故障を検出したときに、故障を検出した一方の前記ハードディスクのディスク回転を停止し、故障を検出していない他方の前記ハードディスクのディスク回転数を上げることを特徴としている。
【発明の効果】
【０００７】
本発明は、ＲＡＩＤ１を用いて制御される２台のＨＤＤにおいて、一方のＨＤＤが振動や衝撃を受けた場合でも他方のＨＤＤの書き込みを行わない待ち時間をなくすようにし、また書き込み時間を早くすることで、データの書き込みにおける全体の時間を速くでき、更にデータ書き込みエラーをチェックし、データ書き込みエラーがあるときには再度データを書き込むようにすることで、データが破損した状態で書き込まれることを防止できる情報処理装置を提供する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る情報処理装置のハードウェア構成を示す図である。
【図２】本発明の実施形態に係る情報処理装置のＨＤＤ制御手順を示す図である。
【図３】本発明の実施形態に係る情報処理装置のＨＤＤ制御処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態（以下、「実施形態」という）を、図面を参照して説明する。実施形態は、情報処理装置が備えるＲＡＩＤ１を用いて制御される２台のＨＤＤの各々に振動や衝撃を検知できる３Ｄセンサーを取り付け、この２台の３Ｄセンサーが検知した振動や衝撃の大きさ（以下、「振動／衝撃レベル」という）により２台のＨＤＤのディスク回転数を各々制御するものである。また、データ書き込みエラーをチェックし、データ書き込みエラーがあるときには再度データを書き込むようにするものである。なお、実施形態は、ＨＤＤに取り付けられている３Ｄセンサーの1台が振動や衝撃を検知する場合である。また、実施形態の情報処理装置は、ＰＣなどの端末、サーバー、プリンター、多機能プリンター、多機能周辺装置、又は複合機などの情報処理を行う装置である。
【００１０】
まず、情報処理装置１００のハードウェア構成について、図１を用いて説明する。図１に示すように情報処理装置１００は、制御部１０１、ＤＲＡＭ（Dynamic Random Access Memory）１０２、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）１０３、インターフェイス（Ｉ／Ｆ）１０４、ＮＩＣ（Network Interface Card）１０５、操作パネル部１０６、スキャナー部１０７、ＲＡＩＤ１コントローラー１０８、ＨＤＤ１０９、ＨＤＤ１１０、３Ｄセンサー１１１、及び３Ｄセンサー１１２から構成されている。制御部１０１、ＤＲＡＭ１０２、ＥＥＰＲＯＭ１０３、ＮＩＣ１０５、操作パネル部１０６、スキャナー部１０７、ＲＡＩＤ１コントローラー１０８、３Ｄセンサー１１１、及び３Ｄセンサー１１２は、インターフェイス１０４に接続されている。ＨＤＤ１０９とＨＤＤ１１０は、ＲＡＩＤ１コントローラー１０８に接続されている。ＥＥＰＲＯＭ１０３には、ＯＳ（Operating System）１０、アプリケーション２０、及びＲＡＩＤ１コントローラー１０８を制御するＲＡＩＤ１ドライバー３０が記憶されている。
【００１１】
制御部１０１は、各種Ｉ／ＯやＵＳＢ（Universal Serial Bus）等のインターフェイス、バスコントローラー等を含む情報処理装置１００が備える装置や機能に対してＯＳ１０によりＣＰＵ(Central Processing Unit)またはＭＰＵ(Micro Processing Unit)を駆動して情報処理装置１００全体を制御する。
【００１２】
ＤＲＡＭ１０２は、読み書きが可能な揮発性のメインメモリである。情報処理装置１００のＯＳ１０、アプリケーション２０、及びＲＡＩＤ１ドライバー３０が実行されるときに、ＯＳ１０、アプリケーション２０、及びＲＡＩＤ１ドライバー３０のプログラムやデータがＤＲＡＭ１０２に一時的に記憶されることで実行可能となる。
【００１３】
ＥＥＰＲＯＭ１０３は、フラッシュメモリー等の不揮発性のメモリであり、ＯＳ１０、アプリケーション２０、及びＲＡＩＤ１ドライバー３０のプログラムやデータを記憶する。ＯＳ１０、アプリケーション２０、及びＲＡＩＤ１ドライバー３０に対して実行要求が行われると、ＯＳ１０、アプリケーション２０、及びＲＡＩＤ１ドライバー３０のプログラムやデータがＤＲＡＭ１０２に読み込まれる。
【００１４】
インターフェイス１０４は、情報処理装置１００の各装置や各部をバスなどにより接続し、各装置や各部に対するデータの入出力を制御する。
【００１５】
ＮＩＣ１０５は、ネットワークに接続されている他の情報処理装置１００からＨＤＤ１０９またはＨＤＤ１１０に対するファイルアクセス要求を受け付け、これをＯＳ１０に出力する。
【００１６】
操作パネル部１０６は、操作画面、データの表示、及びユーザーによる操作受け付けを行う液晶パネルを備え、情報処理装置１００が備えている機能に対する操作項目を液晶パネルに表示する処理、情報処理装置１００が記憶しているデータを液晶パネルに表示する処理、または液晶パネルからユーザーの操作を入力する処理を行う。
【００１７】
スキャナー部１０７は、ユーザーによる操作パネル部１０６からの読み取り操作により、原稿の読み取り処理を行う。
【００１８】
ＲＡＩＤ１コントローラー１０８は、ＲＡＩＤ１ドライバー３０からのデータの読み込みまたは書き込み要求に応じてＨＤＤ１０９とＨＤＤ１１０に対するデータの書き込みまたは読み込みを制御する。データの書き込み要求のときには、ＲＡＩＤ１コントローラー１０８は、ＨＤＤ１０９とＨＤＤ１１０の両方にデータを書き込むことができる。また、ＲＡＩＤ１コントローラー１０８は、制御部１０１からの要求によりＨＤＤ１０９とＨＤＤ１１０のディスクを駆動するモーターの回転数を制御する機能を備えている。
【００１９】
ＨＤＤ１０９とＨＤＤ１１０は、ＳＣＳＩ（Small Computer System Interface）又はＵＳＢなどのインターフェィス規格の磁気ディスクドライブであり、プログラムやデータを記録する。なお、ＨＤＤ１０９とＨＤＤ１１０は、同一種類及び同一容量のもの、または異なる種類又は異なる容量のものであってもよい。また、ＨＤＤ１０９とＨＤＤ１１０は、ＲＡＩＤ１コントローラー１０８とＲＡＩＤドライバー３０からは２つの物理ディスクとして認識されるが、ＯＳ１０とアプリケーション２０からは、１つのディスクとして認識される。
【００２０】
３Ｄセンサー１１１と３Ｄセンサー１１２は、前後・左右・上下の３方向の振動や衝撃を感知できるセンサーであり、３Ｄセンサー１１１はＨＤＤ１０９に取り付けられ、３Ｄセンサー１１２はＨＤＤ１１０に取り付けられている。３Ｄセンサー１１１は、ＨＤＤ１０９が受ける振動や衝撃を検知すると、検知した振動や衝撃の大きさを示す振動／衝撃レベルを制御部１０１に出力する。同様に、３Ｄセンサー１１２は、ＨＤＤ１１０が受ける振動や衝撃を検知すると、検知した振動や衝撃の大きさを示す振動／衝撃レベルを制御部１０１に出力する。なお、振動／衝撃レベルは、その値が大きいほど検知された振動や衝撃が大きい。
【００２１】
次に、情報処理装置１００のＨＤＤ１０９とＨＤＤ１１０のＨＤＤ制御の手順について、図１と図２を用いて説明する。なお、図２に示すＨＤＤ制御処理部２１は、アプリケーション２０に含まれるソフトウェアである。
【００２２】
まず、ユーザーが情報処理装置１００の電源を投入することによりＥＥＰＲＯＭ１０３に記憶されているＯＳ１０がＤＲＡＭ１０２に読み込まれ、ＯＳ１０が起動される。次いで、ＯＳ１０により制御部１０１が情報処理装置１００の制御を開始する。次いで、制御部１０１がＲＡＩＤ１コントローラー１０８、ＨＤＤ１０９、ＨＤＤ１１０、３Ｄセンサー１１１、及び３Ｄセンサー１１２の動作を開始する制御を行う。これにより、アプリケーション２０からＨＤＤ１０９とＨＤＤ１１０に対するデータの読み込みまたは書き込みが可能となる。
【００２３】
次いで、ＨＤＤ１０９とＨＤＤ１１０に対してデータの読み込みや書き込みが可能な状態、または図２（６）に示すようにデータの読み込み中や書き込み中において、３Ｄセンサー１１１が振動や衝撃を検知すると、図２（１）に示すように検知した振動／衝撃レベル信号を制御部１０１に出力する。また、３Ｄセンサー１１２が振動や衝撃を検知すると、図２（１）に示すように検知した振動／衝撃レベル信号を制御部１０１に出力する。
【００２４】
次いで、制御部１０１が振動／衝撃レベル信号を入力すると、入力した振動／衝撃レベル信号が３Ｄセンサー１１１または３Ｄセンサー１１２のどちらから出力されたものであるかを判別するためのデータ（以下、「３Ｄセンサー判別データ」という）を起動通知メッセージに設定し、図２（２）に示すよう起動通知メッセージをＨＤＤ制御処理部２１に受け渡すことでＨＤＤ制御処理部２１を起動する。次いで、ＨＤＤ制御処理部２１が起動されると、ＨＤＤ制御処理部２１は、起動通知メッセージに設定されている振動／衝撃レベルと３Ｄセンサー判別データにより、３Ｄセンサー１１１または３Ｄセンサー１１２のどちらにどのような大きさの振動があったかを判定し、ＨＤＤ１０９とＨＤＤ１１０のディスク回転数を制御するためのデータ（以下、「ディスク回転数制御データ」という）を作成する。
【００２５】
次いで、ＨＤＤ制御処理部２１が図２（３）に示すようにディスク回転数制御データをＲＡＩＤ１ドライバー３０に出力する。次いで、ＲＡＩＤ１ドライバー３０がディスク回転数制御データを入力すると、ＲＡＩＤ１ドライバー３０は、ディスク回転数制御データからＲＡＩＤ１コントローラー１０８がＨＤＤ１０９とＨＤＤ１１０のディスクを駆動するモーターの回転数を制御するためのディスク回転数制御指令を作成する。
【００２６】
次いで、ＲＡＩＤ１ドライバー３０は、図２（４）に示すようにディスク回転数制御指令をＲＡＩＤ１コントローラー１０８に出力する。次いで、ＲＡＩＤ１コントローラー１０８は、ディスク回転数制御指令を入力すると、図２（５）に示すようにディスク回転数制御指令に基づいてＨＤＤ１０９とＨＤＤ１１０のディスクを駆動するモーターの回転数を制御する。
【００２７】
ＨＤＤ制御処理部２１がデータの書き込み後に、データ書き込みエラーがあるかを判定し、データ書き込みエラーがあるときには再度データの書き込みを行う。なお、データ書き込みエラーがあるかの判定は、データを書き込んだファイルの拡張子が壊れているか、またはデータを書き込んだハードディスクのセクターが壊れているかなどを判断することで行う。
【００２８】
次に、ＨＤＤ制御処理部２１により実行されるＨＤＤ制御処理の詳細について、図３のフローチャートを用いてステップ順に説明する。３Ｄセンサー１１１または３Ｄセンサー１１２のいずれか一方が振動や衝撃を検知すると、振動や衝撃を検知した３Ｄセンサー１１１または３Ｄセンサー１１２が検知した振動／衝撃レベル信号を制御部１０１に出力する。制御部１０１が振動／衝撃レベル信号を入力すると、振動／衝撃レベルと３Ｄセンサー判別データとを設定した起動通知メッセージをＨＤＤ制御処理部２１に受け渡すことでＨＤＤ制御処理部２１を起動する。ＨＤＤ制御処理部２１が起動されるとＨＤＤ制御処理部２１がＨＤＤ制御処理を開始する。
【００２９】
（ステップＳ１０１）
まず、ＨＤＤ制御処理部２１は、起動通知メッセージに設定されている振動／衝撃レベルと３Ｄセンサー判別データを取り出す。
【００３０】
（ステップＳ１０２）
次いで、ＨＤＤ制御処理部２１は、ステップＳ１０１で取り出した振動／衝撃レベルの値により振動や衝撃が小さい場合の処理パターン１、振動や衝撃が中程度の場合の処理パターン２、または振動や衝撃が大きい場合の処理パターン３において、いずれの処理パターンを実行するかを判別する。例えば、特定の振動／衝撃レベル閾値ａと振動／衝撃レベル閾値ｂ（振動／衝撃レベル閾値ａ＜振動／衝撃レベル閾値ｂ）を設け、振動／衝撃レベルの値が振動／衝撃レベル閾値ａ以下であるときには処理パターン１、振動／衝撃レベルの値が振動／衝撃レベル閾値ａより大きく振動／衝撃レベル閾値ｂ以下であるときには処理パターン２、振動／衝撃レベルの値が振動／衝撃レベル閾値ｂより大きいときには処理パターン３のように判別する。ＨＤＤ制御処理部２１は、処理パターン１のときにはステップＳ１０３に進み、処理パターン２のときにはステップＳ１０５に進み、処理パターン３のときにはステップＳ１２２に進む。
【００３１】
（ステップＳ１０３）
処理パターン１においては、振動／衝撃レベルの値がＨＤＤに問題ない振動や衝撃であるので、ＨＤＤ制御処理部２１は、ディスク回転数制御を行う必要がないためＨＤＤ制御処理は、両方のＨＤＤのディスク回転数を変更しない。
【００３２】
（ステップＳ１０４）
ＨＤＤ制御処理部２１は、ＨＤＤ１０９とＨＤＤ１１０にミラーリングの最終処理を行う。
【００３３】
（ステップＳ１０５）
処理パターン２においては、振動や衝撃を受けたＨＤＤ１０９またはＨＤＤ１１０に書き込みエラーが発生している場合があるので、ＨＤＤ制御処理部２１は、ステップＳ１０１で取り出した３Ｄセンサー判別データが示す３Ｄセンサー１１１または３Ｄセンサー１１２が取り付けられているＨＤＤの回転数を下げるディスク回転数制御データを作成する。
【００３４】
（ステップＳ１０６）
次いで、ＨＤＤ制御処理部２１は、ＨＤＤ１０９またはＨＤＤ１１０の振動や衝撃を受けていないＨＤＤの回転数を最初のディスク回転数（振動や衝撃を受ける直前の回転数）よりディスク回転数を上げるディスク回転数制御データを作成する。
【００３５】
（ステップＳ１０７）
次いで、ＨＤＤ制御処理部２１は、ステップＳ１０５とステップＳ１０６で作成したディスク回転数制御データをＲＡＩＤ１ドライバー３０に出力する。
【００３６】
（ステップＳ１０８）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けていないディスク回転数を上げたＨＤＤのデータの書き込み完了を確認する。
【００３７】
（ステップＳ１０９）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けていないディスク回転数を上げたＨＤＤのデータの書き込み完了が確認されたら、振動や衝撃を受けていないディスク回転数を上げたＨＤＤのディスク回転数を最初のディスク回転数より下げるディスク回転数制御データを作成する。
【００３８】
（ステップＳ１１０）
次いで、ＨＤＤ制御処理部２１は、ステップＳ１０９で作成したディスク回転数制御データをＲＡＩＤ１ドライバー３０に出力する。
【００３９】
（ステップＳ１１１）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けて回転数を下げたＨＤＤに取り付けられている３Ｄセンサー１１１または３Ｄセンサー１１２から振動／衝撃レベルを入力し、入力した振動／衝撃レベルの値により振動や衝撃が収まっているかを判定する。例えば、特定の振動／衝撃レベル閾値ｃ以下であるか否かにより、振動や衝撃が収まっているか否かを判定する。振動や衝撃を受け回転数を下げたＨＤＤに対する振動／衝撃が収まっているとき（ステップＳ１１１のＹｅｓ）は、ステップＳ１１３に進む。振動や衝撃を受けて回転数を下げたＨＤＤに対する振動／衝撃が収まっていないとき（ステップＳ１１１のＮｏ）は、ステップＳ１１２に進む。
【００４０】
（ステップＳ１１２）
ステップＳ１１１のＮｏにおいて、ＨＤＤ制御処理部２１は、一定時間待ち状態としステップＳ１１１に戻る。
【００４１】
（ステップＳ１１３）
ステップＳ１１１のＹｅｓにおいて、ＨＤＤ制御処理部２１は、振動や衝撃を受けてディスク回転数を下げたＨＤＤに対して最初のディスク回転数（振動や衝撃を受ける直前の回転数）よりディスク回転を上げるディスク回転数制御データを作成する。
【００４２】
（ステップＳ１１４）
次いで、ＨＤＤ制御処理部２１は、ステップＳ１１３で作成したディスク回転数制御データをＲＡＩＤ１ドライバー３０に出力する。
【００４３】
（ステップＳ１１５）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けてディスク回転数を下げた後にディスク回転数を上げたＨＤＤのデータの書き込み完了を確認する。
【００４４】
（ステップＳ１１６）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けてディスク回転数を下げた後にディスク回転数を上げたＨＤＤのデータの書き込み完了が確認されると、両方のＨＤＤに対して最初のディスク回転数（振動や衝撃を受ける直前の回転数）に戻すディスク回転数制御データを作成する。
【００４５】
（ステップＳ１１７）
次いで、ＨＤＤ制御処理部２１は、ステップＳ１１６で作成したディスク回転数制御データをＲＡＩＤ１ドライバー３０に出力する。
【００４６】
（ステップＳ１１８）
次いで、データ書き込み後に、ＨＤＤ制御処理部２１は、ＨＤＤ１０９とＨＤＤ１１０にデータ書き込みエラーがあるかを判定する。ＨＤＤ１０９とＨＤＤ１１０のどちらか片方にデータ書き込みエラーがあるときには、ステップＳ１１９に進む。ＨＤＤ１０９とＨＤＤ１１０の両方にデータ書き込みエラーがあるときには、ステップＳ１２０に進む。ＨＤＤ１０９とＨＤＤ１１０のどちらにもデータ書き込みエラーがないときには、ステップＳ１２１に進む。
【００４７】
（ステップＳ１１９）
ＨＤＤ１０９とＨＤＤ１１０のどちらか片方にデータ書き込みエラーがあるときには、ＨＤＤ制御処理部２１は、データ書き込みエラーがあったＨＤＤ１０９またはＨＤＤ１１０のエラー箇所に再度データ書き込みを実行し、ステップＳ１２１に進む。
【００４８】
（ステップＳ１２０）
ＨＤＤ１０９とＨＤＤ１１０の両方にデータ書き込みエラーがあるときには、ＨＤＤ制御処理部２１は、データ書き込みエラーがあったＨＤＤ１０９及びＨＤＤ１１０のエラー箇所に再度データ書き込みを実行し、ステップＳ１２１に進む。
【００４９】
（ステップＳ１２１）
次いで、ＨＤＤ制御処理部２１は、ＨＤＤ１０９とＨＤＤ１１０にミラーリングの最終処理を行う。
【００５０】
（ステップＳ１２２）
処理パターン３においては、ＨＤＤ１０９またはＨＤＤ１１０に振動や衝撃を受けて故障が発生している場合があるので、ＨＤＤ制御処理部２１は、ステップＳ１０１で取り出した３Ｄセンサー判別データの３Ｄセンサー１１１または３Ｄセンサー１１２が取り付けられているＨＤＤの回転を停止するディスク回転数制御データを作成する。
【００５１】
（ステップＳ１２３）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けていないＨＤＤの回転数を振動や衝撃を受ける直前の回転数より上げるディスク回転数制御データを作成する。
【００５２】
（ステップＳ１２４）
次いで、ＨＤＤ制御処理部２１は、ステップＳ１２２とステップＳ１２３で作成したディスク回転数制御データをＲＡＩＤ１ドライバー３０に出力する。これにより、ＲＡＩＤ１ドライバー３０の処理は変更され、振動や衝撃を受けたＨＤＤはディスクの回転を停止し、振動や衝撃を受けていないＨＤＤは高いディスク回転数でデータが書き込まれる。
【００５３】
（ステップＳ１２５）
次いで、ＨＤＤ制御処理部２１は、振動や衝撃を受けていないＨＤＤの回転数を上げているＨＤＤ１０９またはＨＤＤ１１０にデータ書き込みエラーがあるかを判定する。データ書き込みエラーがあるとき（ステップＳ１２５のＹｅｓ）は、ステップＳ１２６に進む。データ書き込みエラーがないとき（ステップＳ１２５のＮｏ）は、振動や衝撃を受けていないＨＤＤ１０９またはＨＤＤ１１０の一方でデータの書き込みを行う。
【００５４】
（ステップＳ１２６）
ステップＳ１２５のＹｅｓにおいて、ＨＤＤ制御処理部２１は、データ書き込みエラーがあった振動や衝撃を受けていないＨＤＤ１０９またはＨＤＤ１１０のエラー箇所に再度データ書き込みを実行し、ＨＤＤ１０９またはＨＤＤ１１０の一方でデータの書き込みを行う。
なお、２台のＨＤＤ１０９とＨＤＤ１１０の回転数が変更されたとき、これらの２台のＨＤＤ１０９とＨＤＤ１１０の消費電力を合計したとき、ほぼ一定となるようにそれぞれの回転数を決定するとよい。このようにすれば、消費電力を増加させずに、処理速度を向上させることができる。
【００５５】
以上により、ミラーリング方式であるＲＡＩＤ１を用いる２台のＨＤＤ１０９とＨＤＤ１１０に同じデータを同時に書き込むときに、２台のＨＤＤのどちらか一方に振動や衝撃を受けた場合でも、振動や衝撃を受けたＨＤＤのディスク回転数を下げると共に、振動や衝撃を受けていないＨＤＤのディスク回転数を上げ、振動や衝撃を受けていないＨＤＤのデータの書き込みが完了した場合は、ディスク回転数を最初のディスク回転数より下げると共に、ディスク回転数を下げたＨＤＤに対する振動や衝撃が収まっていれば、ディスク回転数を下げたＨＤＤのディスク回転数を最初のディスク回転数より上げることで、振動や衝撃を受けたＨＤＤにおいてもデータの書き込みを速く完了することができる。つまり、振動や衝撃を受けていないディスク回転数を上げたＨＤＤのデータの書き込みが完了したときに振動や衝撃が収まっていれば、振動や衝撃を受けてディスク回転数を下げたＨＤＤのディスク回転数を最初のディスク回転数より上げることでデータの書き込みを速く完了することができる。また、振動や衝撃を受けていないディスク回転数を上げたＨＤＤのデータの書き込みが完了したときに振動や衝撃が収まっていなければ、振動や衝撃が収まったときに振動や衝撃を受けディスク回転数を下げたＨＤＤのディスク回転数を最初のディスク回転数より上げることで、データの書き込みを速く完了することができる。これにより、２台のＨＤＤ１０９とＨＤＤ１１０における全体のデータ書き込み時間を速くすることができる。また、２台のＨＤＤ１０９とＨＤＤ１１０のデータの書き込みが完了すると、元のディスク回転数に戻すことができる。
また、振動や衝撃を受けたＨＤＤが低速回転のとき消費電力が少なくなるので、この分の電力を振動や衝撃を受けていないＨＤＤの高速回転用の電力として使用することで、使用する電力を予め設定されている上限を超えないようにできるという効果がある。
また、振動や衝撃を受けて故障と判定されたＨＤＤを停止することでこのＨＤＤの消費電力がなくなるので、この分の電力を振動や衝撃を受けていないＨＤＤの高速回転用の電力として使用することで、振動や衝撃を受けていないＨＤＤのディスク回転数を上げても使用する電力を予め設定されている上限を超えないようにできるという効果がある。
また、データの書き込みが完了すると、データ書き込みエラーがあるかを判定し、データ書き込みエラーがあったＨＤＤのエラー箇所のデータ書き込みを再度実行するので、２台のＨＤＤのどちらか一方に振動や衝撃を受けた場合でもエラーデータが書き込まれることを防止することができる。
【００５６】
なお、実施形態のＨＤＤ制御処理の処理パターン３において、大きな振動や衝撃を受けたＨＤＤ１０９またはＨＤＤ１１０に故障が発生している可能性があるとしてＨＤＤの回転を停止するようにしたが、ＨＤＤの回転を停止する条件はこれに限定されない。例えば、ＲＡＩＤ１コントローラー１０８からＨＤＤ１０９またはＨＤＤ１１０の故障通知を入力し、実際に故障が発生しているときだけＨＤＤの回転を停止するようにし、それ以外のときにはディスク回転数を下げるようにすることも可能である。
【００５７】
このような本発明の情報処理装置は、ＲＡＩＤ１を用いて制御される２台のＨＤＤにおいて、一方のＨＤＤが振動や衝撃を受けた場合でも他方のＨＤＤの書き込みを行わない待ち時間をなくすようにし、また書き込み時間を早くすることで、データの書き込みにおける全体の時間を速くでき、更にデータ書き込みエラーをチェックし、データ書き込みエラーがあるときには再度データを書き込むようにすることで、データが破損した状態で書き込まれることを防止できる。
【００５８】
以上、具体的な実施の形態により本発明を説明したが、上記実施の形態は本発明の例示であり、この実施の形態に限定されないことは言うまでもない。
【産業上の利用可能性】
【００５９】
本発明は、情報処理装置に好適であるが、情報処理装置に限られるものではなく、ＨＤＤを備える装置一般に適用できる。
【符号の説明】
【００６０】
１０・・・・・ＯＳ
２０・・・・・アプリケーション
２１・・・・・ＨＤＤ制御処理部
３０・・・・・ＲＡＤ１ドライバー
１００・・・・・情報処理装置
１０１・・・・・制御部
１０２・・・・・ＤＲＡＭ
１０３・・・・・ＥＥＰＲＯＭ
１０４・・・・・インターフェイス（Ｉ／Ｆ）
１０５・・・・・ＮＩＣ
１０６・・・・・操作パネル部
１０７・・・・・スキャナー部
１０８・・・・・ＲＡＩＤ１コントローラー
１０９・・・・・ＨＤＤ
１１０・・・・・ＨＤＤ
１１１・・・・・３Ｄセンサー
１１２・・・・・３Ｄセンサー
【図１】
2015210833.tif 000003
【図２】
2015210833.tif 000004
【図３】
2015210833.tif 000005