制御装置及び制御方法
【課題】ミラーリング構築された記憶装置の故障率を改善する技術を提供する。
【解決手段】駆動部を有する複数の記憶装置を制御する制御装置は、前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込まれた該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出す読書手段と、前記読書手段による前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信する停止手段と、を有する。
【解決手段】駆動部を有する複数の記憶装置を制御する制御装置は、前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込まれた該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出す読書手段と、前記読書手段による前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信する停止手段と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶装置の駆動部を制御する技術に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)は、内部の磁気ヘッドや磁性体の磨耗によって故障が発生することがあり、この故障の発生率はHDDのモータの稼動時間により大きく影響される。そして、POSのような24時間稼動する業務用端末では、モータ稼動時間が長くなる為に、HDDの故障発生率も大きくなってしまう。そこで、長時間駆動する端末は、データの保全のため、そして1台のHDDが故障しても連続して端末を運用する為に、特許文献1〜4に開示された構成のようにミラーリングを用いることが多い。ミラーリングとは、2台以上のHDDを1台のHDDとみなし、全てのHDDへ同一のデータを書き込むことによって、データ保全の信頼性を向上させる仕組みのことである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−71100号公報
【特許文献2】特開2005−250644号公報
【特許文献3】特開2006−252451号公報
【特許文献4】特開2007−115270号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ミラーリングはデータ保全の信頼性を向上させるものの、HDD1台あたりのモータ稼働率はミラーリングを使用しない場合と同じである。データを書き込む場合も読み出す場合も、全てのHDDを稼働させているためである。
【0005】
各HDDのモータ稼働時間が同じとなるから、HDD1台あたりの故障率は、ミラーリングを使用しない場合とほとんど変わらず、故障率が改善しないという問題点があった。
【0006】
本発明は、ミラーリング構築された記憶装置の故障率を改善する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の制御装置は、駆動部を有する複数の記憶装置を制御する制御装置であって、前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込まれた該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出す読書手段と、前記読書手段による前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信する停止手段と、を有し、前記読書手段は、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果を示す診断情報を取得し、取得した前記診断情報に基づいて、いずれか1つの記憶装置を選択し、前記診断情報は、前記記憶装置の通電時間を示す通電時間情報を含み、前記読書手段は、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する。
【0008】
また、本発明の制御方法は、駆動部を有する複数の記憶装置を制御する制御方法であって、前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込んだ該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出し、前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信し、前記データの読み出しにおいて、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果として、前記記憶装置の通電時間を示す通電時間情報を含む診断情報を取得し、取得した前記診断情報に基づいて、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する。
【発明の効果】
【0009】
本発明によれば、データを書き込む場合は全ての記憶装置を稼働させ、データを読み出す場合は、複数の記憶装置のうち、いずれか1つの記憶装置のみの駆動部を駆動させる。そして、データの読み書きが完了してから所定時間経過時に、全ての記憶装置の駆動部を停止させる。この結果、データを読み出している間は、1台の記憶装置のみが稼働するので、記憶装置1台当たりの稼働時間が減少し、ミラーリング構築された記憶装置の故障率が改善する。
【図面の簡単な説明】
【0010】
【図1】第1の実施形態のミラーリングシステムの構成を示す全体図である。
【図2】第1の実施形態のミラーリングシステムの外観図である。
【図3】第1の実施形態のコントローラの動作を示すフローチャートである。
【図4】第1の実施形態の読書処理の動作を示すフローチャートである。
【図5】第1の実施形態の書込処理を示すフローチャートである。
【図6】第1の実施形態の読出処理を示すフローチャートである。
【図7】第1の実施形態のアイドリング処理を示すフローチャートである。
【図8】第1の実施形態のミラーリングシステムの動作結果を示す図である。
【図9】第1の実施形態のミラーリングシステムの動作結果を示す図である。
【図10】第1の実施形態のミラーリングシステムの動作結果を示す図である。
【図11】第2の実施形態のミラーリングシステムの構成を示す全体図である。
【図12】第2の実施形態の診断情報の構成を示す図である。
【図13】第2の実施形態の読出処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
(第1の実施形態)
本発明を実施するための第1の実施形態について図面を参照して詳細に説明する。
【0012】
図1は、本実施形態のミラーリングシステム1の構成を示すブロック図である。ミラーリングシステム1は、2以上のHDDに同一のデータを書き込み、データ保全の信頼性を向上させるシステムである。同図を参照すると、ミラーリングシステム1は、情報処理装置10およびRAID(Redundant Arrays of Inexpensive Disks)ユニット20を有する。
【0013】
情報処理装置10は、パーソナルコンピュータ等のコンピュータである。情報処理装置10は、RAIDユニット20にデータを格納するとき、RAIDユニット20に「Write」命令を送信し、格納するデータを送信する。また、情報処理装置10はRAIDユニット20に格納されたデータを読み出すとき、RAIDユニット20に「Read」命令を送信する。そして、情報処理装置10は、読み出すデータのアドレスを示す情報をRAIDユニット20に送信し、読み出されたデータをRAIDユニット20から受信する。
【0014】
RAIDユニット20は、情報処理装置10にRAID1のミラーリング機能を提供する外付け型の機器であり、コントローラ21、HDD22、およびHDD23を有する。
【0015】
図2は、RAIDユニット20の外観図である。同図を参照すると、RAIDユニット20は、情報処理装置10とUSB(Universal Serial Bus)ケーブルやSATA(Serial Advanced Technology Attachment)ケーブルなどで接続される。また、RAIDユニット20は、HDD22およびHDD23を収納するケースを有する。HDD22およびHDD23は、コントローラ21とSATAケーブルやIDE(Integrated Drive Electronics)ケーブルなどで接続され、RAIDユニット20に収納される。
【0016】
図1に戻り、コントローラ21は、RAIDユニット20全体を制御する。コントローラ21は、読書処理部211およびアイドリング処理部213を有する。
【0017】
読書処理部211は、情報処理装置10から「Write」命令を受信したとき、HDD22およびHDD23にスタンバイ命令を送信し、HDD22およびHDD23を稼働させる。スタンバイ命令は、HDD22およびHDD23の駆動部分を駆動させる命令である。スタンバイ命令を受信したHDD22およびHDD23は、駆動部分を駆動させて、データを書き込み、または、データを読み出すことができる状態(スタンバイ)になる。そして、読書処理部211は、情報処理装置10から格納するデータを受信し、受信したデータをHDD22およびHDD23に書き込む。
【0018】
また、読書処理部211は、情報処理装置10から「Read」命令を受信したとき、HDD22およびHDD23のいずれか一方のみにスタンバイ命令を送信して稼働させる。そして、読書処理部211は、情報処理装置10からデータのアドレスを示す情報を受信し、稼働させたHDDからデータを読み出す。読書処理部211は、読み出したデータを情報処理装置10へ送信する。「Read」命令受信時に稼働させるHDDは、コントローラ21が所定の順番に従って選択する。例えば、HDD22およびHDD23を交互に稼働させる。
【0019】
アイドリング処理部213は、読書処理部211によるデータの書き込み、またはデータの読み出しが終了してから所定時間が経過したとき、HDD22およびHDD23に停止命令を送信して停止させる。
【0020】
なお、コントローラ21は、情報処理装置10のマザーボードとPCI(Peripheral Components Interconnect)バスを介して接続されるRAIDカードであってもよい。また、コントローラ21は、情報処理装置10のマザーボードに搭載される部品であってもよい。情報処理装置10が、ソフトウェアでコントローラ21の機能を実現することもできる。
【0021】
また、コントローラ21は、2台に限らず、3台以上の記憶装置(HDDなど)を制御し、ミラーリング機能を提供することもできる。
【0022】
HDD22およびHDD23は、コントローラ21の制御に従い、磁気ヘッド等を制御してプラッタにデータを格納し、格納したデータを読み出す記憶装置である。HDD22およびHDD23は、それぞれ駆動部221および駆動部231を有する。駆動部221および駆動部231は、記憶装置22および記憶装置23にデータを格納するとき、またはデータを読み出すときに駆動する。駆動部221および駆動部231は、例えば、プラッタを回転させるモータや磁気ヘッドを制御するモータである。
【0023】
なお、HDD22およびHDD23は、駆動部分を有する記憶装置であれば、HDD以外の記憶装置を使用してもよい。HDD22およびHDD23は、例えば、ハイブリッドHDDや、DDS(Digital Data Storage)であってもよい。
【0024】
次に、コントローラ21の動作に図3〜図7を参照して説明する。図3は、コントローラ21の実行する制御処理を示すフローチャートである。この制御処理は、コントローラ21の電源が投入されたとき、または所定のアプリケーションが実行されたときに開始する。同図を参照すると、読書処理部211は、読書処理を実行し(ステップS1)、アイドリング処理部213はアイドリング処理を実行する(ステップS3)。
【0025】
図4は、読書処理を示すフローチャートである。同図を参照すると、読書処理部211は、書込処理を実行し(ステップS10)、読出処理を実行する(ステップS20)。
【0026】
図5は、書込処理を示すフローチャートである。同図を参照すると、読書処理部211は、情報処理装置10から「Write」命令を受信したか否かを判断する(ステップS101)。
【0027】
「Write」命令を受信したのであれば(ステップS101:YES)、読書処理部211は、HDD22およびHDD23に対してスタンバイ命令を送信する。既にHDDが稼働中であれば、読書処理部211は、そのHDDに対してスタンバイ命令を送信しない。HDD22およびHDD23は、スタンバイ命令を受信して駆動部221および駆動部231を駆動する(ステップS103)。読書処理部211は、情報処理部10から格納するデータを受信し、受信したデータをHDD22およびHDD23に書き込む(ステップS105)。ステップS105の後、読書処理部211は、書込処理を終了する。
【0028】
図6は、読出処理を示すフローチャートである。同図を参照すると、読書処理部211は、情報処理装置10から「Read」命令を受信したか否かを判断する(ステップS201)。
【0029】
「Read」命令を受信したのであれば(ステップS201:YES)、読書処理部211は、前回「Read」命令を受信したときにHDD22からデータを読み出したか否かを判断する(ステップS203)。
【0030】
前回HDD22からデータを読み出したのであれば(ステップS203:YES)、読書処理部211は、HDD23に対してスタンバイ命令を送信してHDD23を稼働させる(ステップS205)。前回HDD22からデータを読み出したのでなければ(ステップS203:NO)、読書処理部211は、HDD22に対してスタンバイ命令を送信してHDD23を稼働させる(ステップS207)。ステップS205またはステップS207において、既にHDDが稼働中であれば、読書処理部211は、そのHDDに対してスタンバイ命令を送信しない。
【0031】
ステップS205又はステップS207の後、読書処理部211は、情報処理装置10からデータのアドレスを示す情報を受信し、スタンバイ状態にあるHDD(22または23)からデータを読み出す。読書処理部211は、読み出したデータを情報処理装置10へ送信する(ステップS209)。ステップS209の後、読書処理部211は、読出処理を終了する。
【0032】
図7は、アイドリング処理を示すフローチャートである。同図を参照すると、アイドリング処理部213は、データを書き込む処理(ステップS10)を実行中であるか否かを判断する(ステップS31)。データを書き込む処理を実行中でなければ(ステップS31:NO)、アイドリング処理部213は、データを読み出す処理(ステップS20)を実行中であるか否かを判断する(ステップS33)。データを書き込む処理を実行中でなければ(ステップS33:NO)、所定時間を経過したとき、アイドリング処理部213は、HDD22およびHDD23に停止命令を送信し、これらのHDDを停止させる(ステップS35)。ステップS35において、HDDが既に停止しているときは、アイドリング処理部213は、そのHDDに対して停止命令を送信しない。データを書き込む処理を実行中であるとき(ステップS31:YES)、またはデータを読み込む処理を実行中であるとき(ステップS33:YES)、あるいはステップS35の後、アイドリング処理部213は、アイドリング処理を終了する。
【0033】
このように、データを読み出すとき、一方のHDDにのみ稼働させるので、双方を稼働させてデータを読み出す場合と比較してHDD1台あたりの稼働時間が減少し、その結果、故障率が低減する。
【0034】
続いて、図8〜図10を参照して、ミラーリングシステム1の動作結果の一例について説明する。コントローラ21は、HDD22およびHDD23にデータを書き込む場合、図8に示すように、HDD22およびHDD23にスタンバイ命令を送信して稼働させ、同一のデータをこれらのHDDに書き込む(ステップS105)。同図において、矢印はデータの流れを示し、網掛けのHDD(22および23)は、稼働しているHDDである。
【0035】
一方、HDD22またはHDD23からデータを読み出す場合、コントローラ21は、図9に示すように、HDD22、HDD23のいずれか1つのみを稼働させる(ステップS205またはS207)。同図において、矢印はデータの流れを示し、網掛けのHDD(22)は、稼働しているHDDであり、網掛けのないHDD(23)は、停止しているHDDである。
【0036】
そして、アイドリング時は、コントローラ21は、図10に示すように、全てのHDD(22および23)を停止させる(ステップS211)。同図において、網掛けのないHDD(22および23)は、停止しているHDDである。
【0037】
以上説明したように、本実施形態によればデータを書き込む場合はHDD22およびHDD23を稼働させ、データを読み出す場合は、HDD22およびHDD23のうち、いずれか1つのHDDのみを稼働させる。そして、データの読み書きが終了後、所定時間経過時に、全てのHDDを停止させる。この結果、データを読み出している間は、1台のHDDのみが稼働するので、HDD1台当たりの稼働時間が減少し、ミラーリング構築されたHDDの故障率が改善する。
【0038】
また、所定の順番に従って稼働させるHDDを選択するので、複数のHDD(22および23)の稼働時間が均等になり、故障のリスクを分散できる。
【0039】
(第2の実施形態)
本発明の第2の実施形態について図11〜図13を参照して説明する。図11は、本実施形態のミラーリングシステム2の構成を示す全体図である。同図を参照するとミラーリングシステム2は、HDD22、HDD23がそれぞれ診断情報223、診断情報233を格納する以外は、第1の実施形態のミラーリングシステム1と同様の構成である。
【0040】
診断情報223は、所定の項目についてのHDD22の状態の診断結果が数値化された情報である。診断情報223は、例えば、HDD22のS.M.A.R.T(Self Monitoring Analysis reporting Technology)機能により取得された情報である。図10は、診断情報223の構成を示す図である。同図を参照すると、診断情報223は、項目ID、項目名、現在値、閾値を示す情報を含む。項目IDは、項目名に一意に割り当てられた番号であり、項目名はHDD22の状態についての診断項目である。診断項目は、HDDの障害の早期発見、故障の予測を目的として診断される項目であり、例えば、HDD22がデータを読み込むときに生じたエラーの割合を示す読込エラー率、HDD22の全体的なスループットを示すHDD処理能力、HDD22の通電時間を示すPOH(Power On Hours)などである。現在値は、項目名についてのリアルタイムの診断結果を数値化した値である。閾値は、HDD22の故障や障害を検出するための閾値である。診断情報233も診断情報223と同様の構成である。
【0041】
図11に戻り、コントローラ21は、HDD22およびHDD23から診断情報223および233を取得する。この診断情報223および233に基づき、各HDDの障害や故障の発生率を分析し、比較する。そして、コントローラ21は、HDD22またはHDD23からデータを読み出すとき、障害や故障の発生率が小さいHDDを優先して稼働させる。例えば、コントローラ21はPOHの最も少ないHDDを選択して稼働させる。
【0042】
図13を参照して本実施形態のミラーリングシステム2の動作について説明する。同図は、本実施形態の読出処理を示すフローチャートである。同図を参照すると、本実施形態の読出処理は、ステップS203の代わりにステップS203aを実行するほかは、第1の実施形態の読出処理と同様である。
【0043】
「Read」命令を受信したのであれば(ステップS201:YES)、読書処理部211は、診断情報223および診断情報233を取得し、これらの診断情報の示すPOHを比較する。そして、読書処理部211は、HDD22の通電時間(POH)がHDD23の通電時間より長いか否かを判断する(ステップS203a)。HDD22の通電時間の方が長いのであれば(ステップS203a:YES)、読書処理部211は、HDD23を稼働させる(ステップS205)。HDD22の通電時間の方が短いのであれば(ステップS203a:NO)、読書処理部211は、HDD22を稼働させる(ステップS207)。
【0044】
なお、コントローラ21は、POHを示す情報以外の項目の診断結果、またはPOHも含め複数の項目の診断結果に基づいて、各HDDの故障や障害の発生確率を予測し、故障や障害の少ないHDDを優先して稼働させる構成とすることもできる。
【0045】
本実施形態によれば、診断情報(223および233)に基づいて稼働させるHDDを選択するので、故障の発生確率の小さいHDDを優先的に選択して、故障のリスクを分散できる。
【0046】
また、稼働時間の少ないHDD(22または23)を選択して稼働させるので、故障したHDDを交換するなどした結果、各HDDの通電時間が大きく異なる場合であっても、HDDの稼働時間が均等に分散されていき、故障のリスクを分散できる。
【0047】
なお、図3〜図5および図11で示した処理の全部または一部は、コンピュータがソフトウェアプログラムを実行することにより実現することもできる。
【符号の説明】
【0048】
1、2 ミラーリングシステム
10 情報処理装置
20 RAIDユニット
21 コントローラ
22、23 HDD
211 読書処理部
213 アイドリング処理部
221、231 駆動部
223、233 診断情報
S10〜S20、S101〜S105、S201〜S211、S203a ステップ
【技術分野】
【0001】
本発明は、記憶装置の駆動部を制御する技術に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)は、内部の磁気ヘッドや磁性体の磨耗によって故障が発生することがあり、この故障の発生率はHDDのモータの稼動時間により大きく影響される。そして、POSのような24時間稼動する業務用端末では、モータ稼動時間が長くなる為に、HDDの故障発生率も大きくなってしまう。そこで、長時間駆動する端末は、データの保全のため、そして1台のHDDが故障しても連続して端末を運用する為に、特許文献1〜4に開示された構成のようにミラーリングを用いることが多い。ミラーリングとは、2台以上のHDDを1台のHDDとみなし、全てのHDDへ同一のデータを書き込むことによって、データ保全の信頼性を向上させる仕組みのことである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−71100号公報
【特許文献2】特開2005−250644号公報
【特許文献3】特開2006−252451号公報
【特許文献4】特開2007−115270号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ミラーリングはデータ保全の信頼性を向上させるものの、HDD1台あたりのモータ稼働率はミラーリングを使用しない場合と同じである。データを書き込む場合も読み出す場合も、全てのHDDを稼働させているためである。
【0005】
各HDDのモータ稼働時間が同じとなるから、HDD1台あたりの故障率は、ミラーリングを使用しない場合とほとんど変わらず、故障率が改善しないという問題点があった。
【0006】
本発明は、ミラーリング構築された記憶装置の故障率を改善する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の制御装置は、駆動部を有する複数の記憶装置を制御する制御装置であって、前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込まれた該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出す読書手段と、前記読書手段による前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信する停止手段と、を有し、前記読書手段は、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果を示す診断情報を取得し、取得した前記診断情報に基づいて、いずれか1つの記憶装置を選択し、前記診断情報は、前記記憶装置の通電時間を示す通電時間情報を含み、前記読書手段は、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する。
【0008】
また、本発明の制御方法は、駆動部を有する複数の記憶装置を制御する制御方法であって、前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込んだ該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出し、前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信し、前記データの読み出しにおいて、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果として、前記記憶装置の通電時間を示す通電時間情報を含む診断情報を取得し、取得した前記診断情報に基づいて、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する。
【発明の効果】
【0009】
本発明によれば、データを書き込む場合は全ての記憶装置を稼働させ、データを読み出す場合は、複数の記憶装置のうち、いずれか1つの記憶装置のみの駆動部を駆動させる。そして、データの読み書きが完了してから所定時間経過時に、全ての記憶装置の駆動部を停止させる。この結果、データを読み出している間は、1台の記憶装置のみが稼働するので、記憶装置1台当たりの稼働時間が減少し、ミラーリング構築された記憶装置の故障率が改善する。
【図面の簡単な説明】
【0010】
【図1】第1の実施形態のミラーリングシステムの構成を示す全体図である。
【図2】第1の実施形態のミラーリングシステムの外観図である。
【図3】第1の実施形態のコントローラの動作を示すフローチャートである。
【図4】第1の実施形態の読書処理の動作を示すフローチャートである。
【図5】第1の実施形態の書込処理を示すフローチャートである。
【図6】第1の実施形態の読出処理を示すフローチャートである。
【図7】第1の実施形態のアイドリング処理を示すフローチャートである。
【図8】第1の実施形態のミラーリングシステムの動作結果を示す図である。
【図9】第1の実施形態のミラーリングシステムの動作結果を示す図である。
【図10】第1の実施形態のミラーリングシステムの動作結果を示す図である。
【図11】第2の実施形態のミラーリングシステムの構成を示す全体図である。
【図12】第2の実施形態の診断情報の構成を示す図である。
【図13】第2の実施形態の読出処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
(第1の実施形態)
本発明を実施するための第1の実施形態について図面を参照して詳細に説明する。
【0012】
図1は、本実施形態のミラーリングシステム1の構成を示すブロック図である。ミラーリングシステム1は、2以上のHDDに同一のデータを書き込み、データ保全の信頼性を向上させるシステムである。同図を参照すると、ミラーリングシステム1は、情報処理装置10およびRAID(Redundant Arrays of Inexpensive Disks)ユニット20を有する。
【0013】
情報処理装置10は、パーソナルコンピュータ等のコンピュータである。情報処理装置10は、RAIDユニット20にデータを格納するとき、RAIDユニット20に「Write」命令を送信し、格納するデータを送信する。また、情報処理装置10はRAIDユニット20に格納されたデータを読み出すとき、RAIDユニット20に「Read」命令を送信する。そして、情報処理装置10は、読み出すデータのアドレスを示す情報をRAIDユニット20に送信し、読み出されたデータをRAIDユニット20から受信する。
【0014】
RAIDユニット20は、情報処理装置10にRAID1のミラーリング機能を提供する外付け型の機器であり、コントローラ21、HDD22、およびHDD23を有する。
【0015】
図2は、RAIDユニット20の外観図である。同図を参照すると、RAIDユニット20は、情報処理装置10とUSB(Universal Serial Bus)ケーブルやSATA(Serial Advanced Technology Attachment)ケーブルなどで接続される。また、RAIDユニット20は、HDD22およびHDD23を収納するケースを有する。HDD22およびHDD23は、コントローラ21とSATAケーブルやIDE(Integrated Drive Electronics)ケーブルなどで接続され、RAIDユニット20に収納される。
【0016】
図1に戻り、コントローラ21は、RAIDユニット20全体を制御する。コントローラ21は、読書処理部211およびアイドリング処理部213を有する。
【0017】
読書処理部211は、情報処理装置10から「Write」命令を受信したとき、HDD22およびHDD23にスタンバイ命令を送信し、HDD22およびHDD23を稼働させる。スタンバイ命令は、HDD22およびHDD23の駆動部分を駆動させる命令である。スタンバイ命令を受信したHDD22およびHDD23は、駆動部分を駆動させて、データを書き込み、または、データを読み出すことができる状態(スタンバイ)になる。そして、読書処理部211は、情報処理装置10から格納するデータを受信し、受信したデータをHDD22およびHDD23に書き込む。
【0018】
また、読書処理部211は、情報処理装置10から「Read」命令を受信したとき、HDD22およびHDD23のいずれか一方のみにスタンバイ命令を送信して稼働させる。そして、読書処理部211は、情報処理装置10からデータのアドレスを示す情報を受信し、稼働させたHDDからデータを読み出す。読書処理部211は、読み出したデータを情報処理装置10へ送信する。「Read」命令受信時に稼働させるHDDは、コントローラ21が所定の順番に従って選択する。例えば、HDD22およびHDD23を交互に稼働させる。
【0019】
アイドリング処理部213は、読書処理部211によるデータの書き込み、またはデータの読み出しが終了してから所定時間が経過したとき、HDD22およびHDD23に停止命令を送信して停止させる。
【0020】
なお、コントローラ21は、情報処理装置10のマザーボードとPCI(Peripheral Components Interconnect)バスを介して接続されるRAIDカードであってもよい。また、コントローラ21は、情報処理装置10のマザーボードに搭載される部品であってもよい。情報処理装置10が、ソフトウェアでコントローラ21の機能を実現することもできる。
【0021】
また、コントローラ21は、2台に限らず、3台以上の記憶装置(HDDなど)を制御し、ミラーリング機能を提供することもできる。
【0022】
HDD22およびHDD23は、コントローラ21の制御に従い、磁気ヘッド等を制御してプラッタにデータを格納し、格納したデータを読み出す記憶装置である。HDD22およびHDD23は、それぞれ駆動部221および駆動部231を有する。駆動部221および駆動部231は、記憶装置22および記憶装置23にデータを格納するとき、またはデータを読み出すときに駆動する。駆動部221および駆動部231は、例えば、プラッタを回転させるモータや磁気ヘッドを制御するモータである。
【0023】
なお、HDD22およびHDD23は、駆動部分を有する記憶装置であれば、HDD以外の記憶装置を使用してもよい。HDD22およびHDD23は、例えば、ハイブリッドHDDや、DDS(Digital Data Storage)であってもよい。
【0024】
次に、コントローラ21の動作に図3〜図7を参照して説明する。図3は、コントローラ21の実行する制御処理を示すフローチャートである。この制御処理は、コントローラ21の電源が投入されたとき、または所定のアプリケーションが実行されたときに開始する。同図を参照すると、読書処理部211は、読書処理を実行し(ステップS1)、アイドリング処理部213はアイドリング処理を実行する(ステップS3)。
【0025】
図4は、読書処理を示すフローチャートである。同図を参照すると、読書処理部211は、書込処理を実行し(ステップS10)、読出処理を実行する(ステップS20)。
【0026】
図5は、書込処理を示すフローチャートである。同図を参照すると、読書処理部211は、情報処理装置10から「Write」命令を受信したか否かを判断する(ステップS101)。
【0027】
「Write」命令を受信したのであれば(ステップS101:YES)、読書処理部211は、HDD22およびHDD23に対してスタンバイ命令を送信する。既にHDDが稼働中であれば、読書処理部211は、そのHDDに対してスタンバイ命令を送信しない。HDD22およびHDD23は、スタンバイ命令を受信して駆動部221および駆動部231を駆動する(ステップS103)。読書処理部211は、情報処理部10から格納するデータを受信し、受信したデータをHDD22およびHDD23に書き込む(ステップS105)。ステップS105の後、読書処理部211は、書込処理を終了する。
【0028】
図6は、読出処理を示すフローチャートである。同図を参照すると、読書処理部211は、情報処理装置10から「Read」命令を受信したか否かを判断する(ステップS201)。
【0029】
「Read」命令を受信したのであれば(ステップS201:YES)、読書処理部211は、前回「Read」命令を受信したときにHDD22からデータを読み出したか否かを判断する(ステップS203)。
【0030】
前回HDD22からデータを読み出したのであれば(ステップS203:YES)、読書処理部211は、HDD23に対してスタンバイ命令を送信してHDD23を稼働させる(ステップS205)。前回HDD22からデータを読み出したのでなければ(ステップS203:NO)、読書処理部211は、HDD22に対してスタンバイ命令を送信してHDD23を稼働させる(ステップS207)。ステップS205またはステップS207において、既にHDDが稼働中であれば、読書処理部211は、そのHDDに対してスタンバイ命令を送信しない。
【0031】
ステップS205又はステップS207の後、読書処理部211は、情報処理装置10からデータのアドレスを示す情報を受信し、スタンバイ状態にあるHDD(22または23)からデータを読み出す。読書処理部211は、読み出したデータを情報処理装置10へ送信する(ステップS209)。ステップS209の後、読書処理部211は、読出処理を終了する。
【0032】
図7は、アイドリング処理を示すフローチャートである。同図を参照すると、アイドリング処理部213は、データを書き込む処理(ステップS10)を実行中であるか否かを判断する(ステップS31)。データを書き込む処理を実行中でなければ(ステップS31:NO)、アイドリング処理部213は、データを読み出す処理(ステップS20)を実行中であるか否かを判断する(ステップS33)。データを書き込む処理を実行中でなければ(ステップS33:NO)、所定時間を経過したとき、アイドリング処理部213は、HDD22およびHDD23に停止命令を送信し、これらのHDDを停止させる(ステップS35)。ステップS35において、HDDが既に停止しているときは、アイドリング処理部213は、そのHDDに対して停止命令を送信しない。データを書き込む処理を実行中であるとき(ステップS31:YES)、またはデータを読み込む処理を実行中であるとき(ステップS33:YES)、あるいはステップS35の後、アイドリング処理部213は、アイドリング処理を終了する。
【0033】
このように、データを読み出すとき、一方のHDDにのみ稼働させるので、双方を稼働させてデータを読み出す場合と比較してHDD1台あたりの稼働時間が減少し、その結果、故障率が低減する。
【0034】
続いて、図8〜図10を参照して、ミラーリングシステム1の動作結果の一例について説明する。コントローラ21は、HDD22およびHDD23にデータを書き込む場合、図8に示すように、HDD22およびHDD23にスタンバイ命令を送信して稼働させ、同一のデータをこれらのHDDに書き込む(ステップS105)。同図において、矢印はデータの流れを示し、網掛けのHDD(22および23)は、稼働しているHDDである。
【0035】
一方、HDD22またはHDD23からデータを読み出す場合、コントローラ21は、図9に示すように、HDD22、HDD23のいずれか1つのみを稼働させる(ステップS205またはS207)。同図において、矢印はデータの流れを示し、網掛けのHDD(22)は、稼働しているHDDであり、網掛けのないHDD(23)は、停止しているHDDである。
【0036】
そして、アイドリング時は、コントローラ21は、図10に示すように、全てのHDD(22および23)を停止させる(ステップS211)。同図において、網掛けのないHDD(22および23)は、停止しているHDDである。
【0037】
以上説明したように、本実施形態によればデータを書き込む場合はHDD22およびHDD23を稼働させ、データを読み出す場合は、HDD22およびHDD23のうち、いずれか1つのHDDのみを稼働させる。そして、データの読み書きが終了後、所定時間経過時に、全てのHDDを停止させる。この結果、データを読み出している間は、1台のHDDのみが稼働するので、HDD1台当たりの稼働時間が減少し、ミラーリング構築されたHDDの故障率が改善する。
【0038】
また、所定の順番に従って稼働させるHDDを選択するので、複数のHDD(22および23)の稼働時間が均等になり、故障のリスクを分散できる。
【0039】
(第2の実施形態)
本発明の第2の実施形態について図11〜図13を参照して説明する。図11は、本実施形態のミラーリングシステム2の構成を示す全体図である。同図を参照するとミラーリングシステム2は、HDD22、HDD23がそれぞれ診断情報223、診断情報233を格納する以外は、第1の実施形態のミラーリングシステム1と同様の構成である。
【0040】
診断情報223は、所定の項目についてのHDD22の状態の診断結果が数値化された情報である。診断情報223は、例えば、HDD22のS.M.A.R.T(Self Monitoring Analysis reporting Technology)機能により取得された情報である。図10は、診断情報223の構成を示す図である。同図を参照すると、診断情報223は、項目ID、項目名、現在値、閾値を示す情報を含む。項目IDは、項目名に一意に割り当てられた番号であり、項目名はHDD22の状態についての診断項目である。診断項目は、HDDの障害の早期発見、故障の予測を目的として診断される項目であり、例えば、HDD22がデータを読み込むときに生じたエラーの割合を示す読込エラー率、HDD22の全体的なスループットを示すHDD処理能力、HDD22の通電時間を示すPOH(Power On Hours)などである。現在値は、項目名についてのリアルタイムの診断結果を数値化した値である。閾値は、HDD22の故障や障害を検出するための閾値である。診断情報233も診断情報223と同様の構成である。
【0041】
図11に戻り、コントローラ21は、HDD22およびHDD23から診断情報223および233を取得する。この診断情報223および233に基づき、各HDDの障害や故障の発生率を分析し、比較する。そして、コントローラ21は、HDD22またはHDD23からデータを読み出すとき、障害や故障の発生率が小さいHDDを優先して稼働させる。例えば、コントローラ21はPOHの最も少ないHDDを選択して稼働させる。
【0042】
図13を参照して本実施形態のミラーリングシステム2の動作について説明する。同図は、本実施形態の読出処理を示すフローチャートである。同図を参照すると、本実施形態の読出処理は、ステップS203の代わりにステップS203aを実行するほかは、第1の実施形態の読出処理と同様である。
【0043】
「Read」命令を受信したのであれば(ステップS201:YES)、読書処理部211は、診断情報223および診断情報233を取得し、これらの診断情報の示すPOHを比較する。そして、読書処理部211は、HDD22の通電時間(POH)がHDD23の通電時間より長いか否かを判断する(ステップS203a)。HDD22の通電時間の方が長いのであれば(ステップS203a:YES)、読書処理部211は、HDD23を稼働させる(ステップS205)。HDD22の通電時間の方が短いのであれば(ステップS203a:NO)、読書処理部211は、HDD22を稼働させる(ステップS207)。
【0044】
なお、コントローラ21は、POHを示す情報以外の項目の診断結果、またはPOHも含め複数の項目の診断結果に基づいて、各HDDの故障や障害の発生確率を予測し、故障や障害の少ないHDDを優先して稼働させる構成とすることもできる。
【0045】
本実施形態によれば、診断情報(223および233)に基づいて稼働させるHDDを選択するので、故障の発生確率の小さいHDDを優先的に選択して、故障のリスクを分散できる。
【0046】
また、稼働時間の少ないHDD(22または23)を選択して稼働させるので、故障したHDDを交換するなどした結果、各HDDの通電時間が大きく異なる場合であっても、HDDの稼働時間が均等に分散されていき、故障のリスクを分散できる。
【0047】
なお、図3〜図5および図11で示した処理の全部または一部は、コンピュータがソフトウェアプログラムを実行することにより実現することもできる。
【符号の説明】
【0048】
1、2 ミラーリングシステム
10 情報処理装置
20 RAIDユニット
21 コントローラ
22、23 HDD
211 読書処理部
213 アイドリング処理部
221、231 駆動部
223、233 診断情報
S10〜S20、S101〜S105、S201〜S211、S203a ステップ
【特許請求の範囲】
【請求項1】
駆動部を有する複数の記憶装置を制御する制御装置であって、
前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込まれた該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出す読書手段と、
前記読書手段による前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信する停止手段と、
を有し、
前記読書手段は、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果を示す診断情報を取得し、取得した前記診断情報に基づいて、いずれか1つの記憶装置を選択し、
前記診断情報は、前記記憶装置の通電時間を示す通電時間情報を含み、前記読書手段は、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する、制御装置。
【請求項2】
前記記憶装置は、HDD(Hard Disk Drive)である、請求項1に記載の制御装置。
【請求項3】
前記制御装置は、RAID(Redundant Arrays of Inexpensive Disks)1の規格に対応する制御装置である、請求項1に記載の制御装置。
【請求項4】
駆動部を有する複数の記憶装置を制御する制御方法であって、
前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、
書き込んだ該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出し、
前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信し、
前記データの読み出しにおいて、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果として、前記記憶装置の通電時間を示す通電時間情報を含む診断情報を取得し、取得した前記診断情報に基づいて、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する、制御方法。
【請求項1】
駆動部を有する複数の記憶装置を制御する制御装置であって、
前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、書き込まれた該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出す読書手段と、
前記読書手段による前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信する停止手段と、
を有し、
前記読書手段は、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果を示す診断情報を取得し、取得した前記診断情報に基づいて、いずれか1つの記憶装置を選択し、
前記診断情報は、前記記憶装置の通電時間を示す通電時間情報を含み、前記読書手段は、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する、制御装置。
【請求項2】
前記記憶装置は、HDD(Hard Disk Drive)である、請求項1に記載の制御装置。
【請求項3】
前記制御装置は、RAID(Redundant Arrays of Inexpensive Disks)1の規格に対応する制御装置である、請求項1に記載の制御装置。
【請求項4】
駆動部を有する複数の記憶装置を制御する制御方法であって、
前記記憶装置へのデータの書き込みを指示する書込命令を受信した場合、全ての該記憶装置に前記駆動部を駆動させる駆動信号を送信して該データを全ての該記憶装置に書き込み、
書き込んだ該データの読み出しを指示する読出命令を受信した場合、複数の前記記憶装置のうち、いずれか1つの記憶装置にのみ該駆動信号を送信して該記憶装置から該データを読み出し、
前記データの書き込み又は該データの読み出しが終了してから所定時間が経過したとき、前記駆動部を停止させる停止信号を全ての前記記憶装置に送信し、
前記データの読み出しにおいて、書き込まれた該データの読み出しを指示する読出命令を受信した場合、前記記憶装置の状態を診断した結果として、前記記憶装置の通電時間を示す通電時間情報を含む診断情報を取得し、取得した前記診断情報に基づいて、複数の前記記憶装置の中から該通電時間情報の示す前記通電時間が最小の記憶装置を選択する、制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−192303(P2011−192303A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2011−121837(P2011−121837)
【出願日】平成23年5月31日(2011.5.31)
【分割の表示】特願2008−77638(P2008−77638)の分割
【原出願日】平成20年3月25日(2008.3.25)
【出願人】(000227205)NECインフロンティア株式会社 (1,047)
【Fターム(参考)】
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願日】平成23年5月31日(2011.5.31)
【分割の表示】特願2008−77638(P2008−77638)の分割
【原出願日】平成20年3月25日(2008.3.25)
【出願人】(000227205)NECインフロンティア株式会社 (1,047)
【Fターム(参考)】
[ Back to top ]