制御装置、制御方法、及びプログラム
【課題】ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えること。
【解決手段】RAIDコントローラ111は、特定データを受信した場合に、該特定データをHDD1に設けられた第1記憶領域及びHDD2に設けられた第2記憶領域の双方に書き込み、前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得し、該取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す構成を特徴とする。
【解決手段】RAIDコントローラ111は、特定データを受信した場合に、該特定データをHDD1に設けられた第1記憶領域及びHDD2に設けられた第2記憶領域の双方に書き込み、前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得し、該取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す構成を特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、及びプログラムに関するものである。
【背景技術】
【0002】
近年では、コピー、FAX、プリンタなどの機能を備えたMFP(Multi Function Printer:複合機)においては、扱うデータの大容量化とグラフィックデータの複雑化、高精細化、さらには印字の高速化の要求がある。この要求に伴い、MFPでは、データの処理のパスとして大容量のデータを一次的に格納できるストレージとして磁気ディスク装置が一般的に採用されている。なお、磁気ディスクに格納するデータの信頼性、耐故障性を高めるため、RAID1のミラーリングと呼ばれている技術がある。
【0003】
ミラーリングとは、2台の磁気ディスクに対して全く同じデータを同時に書き込み、データを読み出すときには片方の磁気ディスクから読み出す方式である。ミラーリング技術を用いることで、一方の磁気ディスクに障害が発生しても、もう一方の磁気ディスクに記憶されたデータを利用することで、データが消失してしまう不具合を防ぐことができる。
【0004】
なお、ミラーリング方式では、信頼性や耐障害性は高いものの、2倍のディスク容量を使うため、その分、ハードウェアコストが高くなるというデメリットもある。
【0005】
また、ミラーリングシステムでは、2つのハードディスクの容量が同等、またアクセススピードも同等のものを使用することが前提となっている。これは、データを書き込むときに処理時間に著しい差が有ると、片方の処理が終了するまで待たされてしまい、ボトルネックが発生してしまうため、これを防止するためである。
【0006】
また、データの読み出しには、ディスクドライブを限定して特定のドライブからのみ読み出しを行うので、選択したドライブに支障が発生した場合には、パフォーマンスに直接影響を与えることになっていた。
【0007】
ミラーリングシステムを採用した例として、次のような技術がある。
【0008】
特許文献1に開示された「複数の記憶ディスク部を有した高可用性の外部記憶装置」では、ディスクのヘッドの移動時間を最小になるようにキューに入ったコマンドを並べ替える手段を備えている。さらに、複数の読み出しコマンドがあればミラーリングを構成する2つのディスク装置に振り分けてコマンドを発行し、これらの両ディスク装置において異なる読み出しコマンドを並列に処理させる手段も備えている。
【特許文献1】特開平9−258907号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、従来のシステムにおいては以下のような問題があった。
【0010】
ミラーリング構成では、writeのときは2台の磁気ディスクに同時に同じデータを書き込み、readのときは片方の磁気ディスクからのみデータを読み出している。
【0011】
このため、磁気ディスクの片方が故障して動作しなくなった場合には、機器の操作部などにエラー表示が行われ、サービスマンによる修理が行われる。修理のときには、機能的に互換性があるものを前提に故障した磁気ディスクの交換が行われるが、以前に装着されていた磁気ディスクのとは型式の異なるタイプが装着されるケースも想定される。
【0012】
このため、場合によっては、ミラーリング構成の複数の磁気ディスクの間でパフォーマンスに差が出てしまい、交換前と比較してデータの読み書きに関わるパフォーマンスが低下してしまうという場合があった。
【0013】
また、上述のように完全に動作しなくなるまでの故障は無くても、磁気ディスクの一部のセクタが壊れたときには、ユーザは感知せずともディスク制御部の補償機能が自動的に働き、代替の安全なセクタ領域にデータの一部が格納される。
【0014】
このような代替セクタが複数あると、連続したアドレス領域をアクセスするようなDMAのバースト転送時に、ディスクヘッドのシークタームが余分にかかり、待ち時間(ウエイト)が発生してしまうという問題があった。
【0015】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えることができる仕組を提供することである。
【課題を解決するための手段】
【0016】
本発明は、ミラーリングシステムを構成する第1の記憶装置及び第2の記憶装置を制御する制御装置であって、前記第1の記憶装置及び前記第2の記憶装置の双方に書き込まれるべきデータを受信する受信手段と、前記受信手段が特定データを受信した場合に、該特定データを前記第1の記憶装置に設けられた第1記憶領域及び前記第2の記憶装置に設けられた第2記憶領域の双方に書き込む書き込み手段と、前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得する取得手段と、前記取得手段により取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出し手段とを備えたことを特徴とする。
【発明の効果】
【0017】
本発明によれば、ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えることができる等の効果を奏する。
【発明を実施するための最良の形態】
【0018】
〔第1実施形態〕
図1は、本発明の一実施形態を示す磁気ディスク制御装置を適用可能なミラーリング構成の複数の磁気ディスクを備えたMFPコントローラの構成を示すブロック図である。以下に各構成要素について説明を行う。
【0019】
図1において、101は図示していないホストコンピュータからの印字データを受信するためのネットワークI/F(Network I/F)回路である。102はDRAMであり、画像の展開や後述のCPUのワーク領域として使用される。103はCPUである。
【0020】
104はROMである。このROM104のROM1には、電源投入直後にCPU103が起動してコントローラ内の後述する各種ハードウェアの初期化制御を行うためのブートアップ(Boot Up)プログラムが格納される。また、ROM104のROM2には、本発明で適用されるハードディスク(HDD)のパフォーマンス計測の制御を行うためのプログラムが格納される。また、ROM104のROM3には、ページ記述言語(Page Description Language、略してPDL)を解析して後述のRIP制御部105が読み取れるような中間言語に変換するプログラム等が格納されている。
【0021】
105はRIP制御部であり、プリント時に画像展開を行うハードウェアである。106は圧縮・伸張モジュールであり、省メモリのために画像データの圧縮伸張を行う制御部である。
【0022】
108は操作部I/F回路、109はユーザI/Fとなる操作部である。
【0023】
110はATA I/Fコントローラであり、ハードディスクへの読み書き制御を行う。111はミラーリング制御を行うRAIDコントローラである。112は前記のATA I/Fコントローラ110から送られてきたコマンドを解析するためのコマンド解析部(CMD解析部)である。107はSRAMであり、各種設定データを保持しておくためのものである。
【0024】
113は2台のハードディスクに対してデータの読み出し、書き込み制御を選択して独立に行うためのI/Oコントローラである。I/Oコントローラ113は、ATA I/Fコントローラ110から送信されるデータを受信する受信手段として機能する。114はDMAコントローラ(ch1),115はDMAコントローラ(ch2)で、DMA転送を行うための制御部である。116は第1の記憶装置としてのHDD1、117は第2の記憶装置としてのHDD2で、磁気ディスク装置である。
【0025】
118はプリンタ(Printer)画像処理部で、プリンタエンジンへ画像を転送するときにスムージングやディザ処理などを行って画質の向上を図るための画像処理部である。119はプリンタエンジンとのデータのやり取りを行うためのプリンタエンジンI/F回路(Printer Engine I/F)である。120はプリンタエンジン(Printer Engine)である。
【0026】
123は紙ベースの原稿画像を読み取るためのスキャナ(Scanner)である。122はスキャナ(Scanner)123のデータ入出力を制御するためのスキャナI/F回路(Scanner I/F)である。121は読み取った画像データを補正して2値データとして変換するスキャナ(Scanner)画像処理部である。
【0027】
次に、ミラーリング構成におけるプリント時のデータ処理について述べる。
【0028】
ネットワークI/F101よりページ記述言語とよばれる印字データが送られてくると、該印刷データは、一旦、ATA I/Fコントローラ110を経由してHDD1(116),HDD2(117)の2台のハードディスクの双方に同時に同じデータが書き込まれる。
【0029】
ホストコンピュータからの全ての転送データが格納されると、RAID1のミラーリング方式に従って、I/Oコントローラ113は、選択されるいずれかのハードディスクからのみデータを読み出す。なお、HDD1(116)が選択される場合、I/Oコントローラ113は、チップセレクト信号のnCS1を「able(=Low)」,nCS2を「disable(=High)」として、HDD1(116)からのみデータを読み出す。なお、データを読み出すハードディスクの選択方法については後述する。
【0030】
CPU103は、読み出されたページ記述言語のデータをROM104のROM3に格納されたプログラムに従って中間言語へ変換し、ATA I/Fコントローラ110を経由してHDD1(116),HDD2(117)の2台のハードディスクの双方へデータの書き込みを行う。
【0031】
全ページのデータ変換が終了すると、CPU103は、前述の変換された中間言語のデータを、選択されるハードディスク(例えばHDD1(116))から読み出して、RIP制御部105により、中間言語から描画データへ展開を行う。そして、CPU103は、圧縮・伸張モジュール106によって、前述の展開された描画データの圧縮を行った後に、HDD1(116),HDD2(117)の2台のハードディスクへ書き込みを行う。
【0032】
全部の印字画像データの描画展開が終了すると、CPU103は、前述の圧縮されたビットマップデータを選択されるハードディスク(例えばHDD1(116))から読み出す。そして、CPU103は、前述の読み出した圧縮されたビットマップデータを圧縮・伸張モジュール106によりデータ伸張を行ってから、プリンタ画像処理部118へ転送する。
【0033】
プリンタ画像処理部118は、文字輪郭のスムージング処理や画像データの階調補正などをして画質の向上を行った後に、119のプリンタエンジンI/F回路119を経由してプリンタエンジン120へ出力される。
【0034】
次に、ミラーリング構成における、コピー処理時のデータ処理について述べる。
【0035】
スキャナ123から読み取った画像は、スキャナI/F回路122を中継して、スキャナ画像処理部121へ入力され、変倍、回転、階調補正などの処理を行い、圧縮・伸張モジュール106によってデータ圧縮を行う。そして、圧縮されたデータは、一旦、ATA I/Fコントローラ110を経由してHDD1(116),HDD2(117)の2台のハードディスクに同時に同じデータが書き込まれる。全ての原稿の読み取りが終了すると、CPU103は、選択されるハードディスク(例えばHDD1(116))から圧縮されたデータを読み出して、圧縮・伸張モジュール106によってデータ伸張を行い、プリンタ画像処理部118のへ転送する。
【0036】
転送されたデータは、プリンタ画像処理部118によって画像処理が施された後に、プリンタエンジンI/F119を経由してプリンタエンジン120へ出力される。
【0037】
以上説明したように、ミラーリングシステムにおいては、CPU103は、ATA I/Fコントローラ110へデータ書き込みコマンドを出すと、RAIDコントローラ111内のCMD制御部112は、次のように動作する。CMD制御部112は、CPU103からのデータ書き込みコマンドを解析して後段のI/Oコントローラ113にデータ書き込みを指示する。これに応じて、I/Oコントローラ113は、2つあるDMAコントローラ114,115に対して同時に起動をかけ、2つのハードディスク116,117へ同時にデータ書き込み処理を行う。
【0038】
また、データ読み出し時には、CPU103が、ATA I/Fコントローラ110に対してデータ読み出しコマンドを発行すると、それに従ってRAIDコントローラ111内の112CMD制御部は、次のように動作する。CMD制御部112は、CPU103からのデータ読み出しコマンドを解析して後段のI/Oコントローラ113にデータ読み出しを指示する。これに応じて、I/Oコントローラ113は、2つあるDMAコントローラのどちらを起動させるか選択する信号nCS1,nCS2のうち、一方のみを「active(=Lowレベル)」にすることにより選択を行う。例えば、HDD1(116)からデータを読み出す場合には、CMD制御部112は、nCS1=「Low」,nCS2=「High」にドライブを行う。反対に、HDD2(117)からデータを読み出す場合には、CMD制御部112は、nCS1=「High」,nCS2=「Low」にドライブを行う。
【0039】
図2は、本実施形態の磁気ディスク制御装置におけるパフォーマンス計測テストの一例を示すフローチャートである。なお、このフローチャートの処理は、CPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。
【0040】
まずS201において、CPU103は、ROM104のROM2から計測プログラムをロードし、S202において、ATA I/Fコントローラ110へコマンドとして送出する。そして、このコマンドはATA I/Fコントローラ110からRAIDコントローラ111に送信される。このコマンドに基づいて、RAIDコントローラ111は、以下の処理を実行する。
【0041】
S203において、RAIDコントローラ111は、ハードディスク116,117へテスト(計測)を行うセクタの先頭アドレス(LBA)とバースト長を指定する。さらに、RAIDコントローラ111は、テストデータのwriteコマンド、同アドレスのreadコマンドをハードディスク116,117へ送出し、前記writeしたデータと前記readしたデータとのverifyを実施する。
【0042】
なお、各指定セクタのバースト転送の際に、RAIDコントローラ111とハードディスク116,117の間で送受信される信号とそのタイミングを後述する図3〜図5に示す。また、このバースト転送で、write,readされるデータを後述する図6に示す。
【0043】
S204では、RAIDコントローラ111は、指定したセクタ分のburst転送が終了するまで前記のS203の処理を繰り返すように制御する。そして、指定したセクタ分のテストが終了したと判断した場合には、RAIDコントローラ111は、S205に処理を進める。なお、上記データ転送の間、RAIDコントローラ111内のI/Oコントローラ113が、指定したセクタ分のデータ転送に要した時間(データの書き込み,読み出しに係わるパフォーマンス)を計測しておく。即ち、ハードディスクの連続したアドレス領域ごとに、前記各ハードディスクに対してアクセススピードの計測(取得)を行う。
【0044】
S205では、I/Oコントローラ113は、データ転送に要した時間をログとしてSRAM107へ格納するように制御する。このログを後述する図7に示す。
【0045】
次に、S206において、CPU103は、S205までに終了したテスト領域がハードディスクのデータ領域の最後になっているかを判定する。そして、S206において、S205までに終了したテスト領域がハードディスクのデータ領域の最後になっていない(即ち、未だ未テストの領域が残っている)と判断した場合には、CPU103は、S202に処理を戻す。
【0046】
一方、S206において、S205までに終了したテスト領域がハードディスクのデータ領域の最後になっている(全ての領域に対しての処理が終了した)と判定した場合には、本フローチャートの処理を終了する。
【0047】
以下、図3〜図6を参照して、図2に示したパフォーマンス計測テストを行う際のテストデータのwrite/readについて説明する。
【0048】
図3は、図2に示したパフォーマンス計測を行う際のRAIDコントローラ111とハードディスク116,117間の制御信号を示す図である。
【0049】
図3において、ホストとは、RAIDコントローラ111を示す。また、デバイスとは、ハードディスク(HDD1(116),HDD2(117))を示す。
【0050】
なお、図3中の矢印は、その信号をドライブする側が、ホスト、デバイスのどちらかを示したものである。
【0051】
図4は、図3に示した制御信号のタイミングチャートであり、ホストからデバイスに対してデータを書き込むとき(write)のものである。
【0052】
本発明においては、計測テストの際にはDMA転送によるwrite,readテストを行うものとする。
【0053】
以下、各信号について説明を行う。
【0054】
DMARQは、DMA転送リクエスト信号であり、デバイスからホストに送信される。/DMACKは、前記リクエスト(DMARQ)のアクノリッジ信号であり、ホストからデバイスに送信される。
【0055】
/DIOWは、通常のレジスタアクセスにおいてはI/O wirte信号として使用されるが、DMA転送中にはバースト転送中においてホストからデバイス(ここではハードディスク)に対してDMA転送のストップをかける信号として使用される。
【0056】
IORDYは、通常のレジスタアクセスにおいてはI/O readyとして使用されるが、バースト転送中のDMAレディを示す/DDMARDY信号として使用され、デバイスからホストに送信される。
【0057】
/DIORは、通常のレジスタアクセスにおいてはI/O read信号として使用されるが、DMA writeデータの転送中には、writeデータのストローブ信号(/HSTROBE)として使用され、ホストからデバイスに送信される。
【0058】
DD[15:0]はwriteデータであり、デバイス側は、前記のストローブ信号(/HSTROBE)の立ち上がり、立下りの両方のエッジで、このデータをラッチする。
【0059】
このDMA転送では、データ転送の信頼性向上のために、バースト転送の最後にホストがCRCデータを付加し、デバイス側が受信したデータからCRCを計算して正しくデータ転送ができたかどうかをチェックする。ホスト側のCRCとデバイス側のCRCとが異なりエラーを検出した場合には、コマンド終了時にデバイスからエラーが発生したことをステータスとして返信する。
【0060】
図5は、図3に示した制御信号のタイミングチャートであり、デバイスからデータを読み出すとき(read)のものである。
【0061】
なお、図5と図4との違いは、/DIORが、ホスト側がデータを受け取れる準備ができていることを示す/HDMARDY信号として使用され、また、/IORDY信号がデバイスから読み出したデータのストローブ信号として使用されることである。
【0062】
図6は、図2に示したパフォーマンス計測を行う際にwrite/readする具体的なテストデータを示した図である。
【0063】
ハードディスク((HDD1)116,(HDD1)117)は、512byteのセクタ単位でデータのwrite/readを行う。ここでは、隣合うデータのbitが、"1","0"反転するような組み合わせのデータとして、5555(h),aaaa(h)の2ワードのデータをペアとして交互にセクタに埋めるようにしている。なお、16進数標記された5555(h),aaaa(h)は、2進数表記すると"0101010101010101","1010101010101010"となる。
【0064】
以下、図7を参照して、図2に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ(パフォーマンス計測結果)をSRAM107に格納するときの形式について説明する。
【0065】
図7は、図2に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ(パフォーマンス計測結果)をSRAM107に格納するときの形式を示す図である。
【0066】
図1に示したMFPコントローラでは、ハードディスクをJobの処理状況に応じて各領域に分割して使用している。このため、MFPコントローラでは、ログについてもその領域の先頭アドレスを示すLBA701と、パフォーマンステストに要した時間702,703、及び、その判定結果704についても格納する。なお、702はHDD1(116)を読み出し対象とした場合にパフォーマンステストに要した時間、703はHDD2(117)を読み出し対象とした場合にパフォーマンステストに要した時間に対応する。
【0067】
以下、図8を参照して、図7に示したパフォーマンス計測結果に基づいて、実際にRAIDコントローラ111が選択するハードディスクをLBA毎に示した図である。
【0068】
図8は、SRAM107内のログデータに基づいてRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクHDD1(116),HDD2(117)のうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【0069】
本発明では、RAIDコントローラ111のI/Oコントローラ113が、SRAM107に格納される計測結果(図7)に基づいてアドレス領域(LBA)ごとにHDD1,HDD2からアクセススピードが短いほうを選択してデータを読み出す構成である。
【0070】
図8において、801は領域を示す。802は、領域801のデータを読み出す際に選択するハードディスク、803は、領域801の用途を示す。
【0071】
以下に各領域801、及び、その用途803について説明を行う。
【0072】
図8において、LBA(0)の画像展開領域とは、コピーやプリントなどの画像処理を行うための展開されたデータを一時的に格納するため領域である。この領域は、データ処理のパフォーマンスに一番影響があるのでディスクヘッドのシークタイム、読み出し、書き込みのアクセスの早い最外周のセクタが優先的に割り当てられている。本領域は、図1のプリント処理の説明で述べたように、RIP制御部105が展開した画像を圧縮・伸張モジュール106によって圧縮したデータとして格納する用途に用いられている。
【0073】
LBA(1),LBA(2)のBootup領域とは、MFPに電源を投入された直後にCPU103が各種ハードウェアの初期化制御を行ったり、図1で説明したようなプリント処理、コピー処理などのMFPの動作を制御するためのプログラムが格納されている領域である。本領域のプログラムは、通常では電源投入後には直接ハードディスクから読み出されるが、その後は、ディスクアクセスの時間を短縮してMFPの処理パフォーマンスを向上させるため、DRAM102上に格納されてここから読み出される。
【0074】
LBA(3),LBA(4)の画像spool領域とは、図1で説明したように、プリント時にホストコンピュータより受信した印字データを一時的に格納するための領域である。また、この領域は、コピー時においては、スキャナから読み取った画像データを一時的に格納するための領域として用いられる。
【0075】
LBA(5)のユーザデータ領域とは、セキュリティ対策のためにMFPの使用制限をユーザ毎に設けてログインID、パスワードなどを管理するデータと、FAXの送信宛先名簿などの番号情報を格納するための領域として使用される。
【0076】
LBA(6)の地紋データ領域とは、情報漏洩対策のためのデータを格納する領域である。なお、偽造防止、原本保証のためにコピー禁止となっている紙文書には隠し文字を埋め込んだプリントパターンを予め印字するのが公知の技術として知られている。このような紙文書を複製しようとしたときに、スキャナ画像処理部121がパターン認識を行って、コピー出力時に文書の背景に複製であることを明確に示すパターン、一般に地紋と呼ばれるものを一面に印字する防止策がとられている。この背景に埋め込むパターン(地紋)には、色、階調、文様、文字などの複数のデータが用意されており、ユーザが選択可能となっている。LBA(6)には、このような各種地紋データを格納している。
【0077】
LBA(7)〜LBA(n)には、MFPのハードディスクへユーザが文書データを格納するBOXと呼ばれる領域である。ユーザは各クライアントPCより文書データをMFPのBOX領域に格納しておけば、いつでも必要に応じてプリントし再利用することができる。
【0078】
図7の判定結果704を参照すると、例えば、LBA(0)のアクセスタイムについては、HDD1(116)の時間(t1−a)の方がHDD2(117)の時間(t2−a)よりも小さく(短く)なっている。ここで、LBA(0)に記憶させるべきデータは、コピーやプリントなどの画像処理を行うための展開されたデータ(特定データ)である。そして、LBA(0)に対応するHDD1の記憶領域(第1記憶領域)のアクセスタイムが(t1−a)であり、LBA(0)に対応するHDD2の記憶領域(第2記憶領域)のアクセスタイムが(t1−b)である。そして、アクセスタイムが短いHDD1の記憶領域の方が、アクセスタイムが長いHDD2の記憶領域よりもアクセススピードが高い。このため、RAIDコントローラ111のI/Oコントローラ113(以下、単にRAIDコントローラ111)は、LBA(0)の画像展開領域をアクセスして、画像展開領域に記憶されたデータを読み出すときには、HDD1(116)を選択することになる。
【0079】
また、LBA(1),LBA(2)のアクセスタイムについては、HDD1(116)の時間(t1−a)よりHDD2(117)の時間(t2−a)の方が小さく(短く)なっている。このため、RAIDコントローラ111は、LBA(1),LBA(2)のBootup領域をアクセスするときには、HDD2(117)を選択することになる。
【0080】
このように、RAIDコントローラ111は、SRAM107に格納された図7の結果を元にして、MFPの各処理において2つあるハードディスク(HDD1(116),HDD2(117))のどちらか早い方を選択してデータの読み出しを行う。以下、図9を用いて具体的に説明する。
【0081】
図9は、プリント処理中のハードディスクへのアクセス時において2台あるディスクのどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。以下、順を追って説明を行う。
【0082】
S901において、CPU103は、不図示のホストコンピュータよりページ記述言語から成る印字データを受信すると、S902に処理を進める。
【0083】
S902では、CPU103は、前記受信した印字データを、ハードディスクのLBA(3)の画像spool領域へ格納するコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111のI/Oコントローラ113は、前記印字データをHDD1(116),HDD2(117)のLBA(3)の画像spool領域へ格納する。
【0084】
CPU103は、全てのページのデータを受信し終えるまで(S903)、S901〜S902の処理を繰り返し、全てのページのデータを受信し終えると(S903でY)、S904に処理を進める。
【0085】
S904では、CPU103は、ハードディスクのLBA(3)の画像spool領域に格納されるデータを読み出すコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111は、HDD1(116)のLBA(3)よりページ記述言語データを読み出す。詳細には、I/Oコントローラ113が、SRAM107に格納されたパフォーマンス計測結果(図7に示した比較結果704)に基づいて、LBA(3)に格納されるデータを読み出す際のハードディスクを選択する。ここでは、HDD1(116)を選択する。そして、I/Oコントローラ113は、選択したHDD1(116)のLBA(3)よりページ記述言語データを読み出して、ATA I/Fコントローラ110を介してCPU103に渡す。
【0086】
S905において、CPU103は、図1の104に格納されているPDL解析プログラムに従って、S904で読み出したページ記述言語データを中間データ(Display List)へ変換を行う。
【0087】
そして、S906において、CPU103は、S905で変換した中間データを、ハードディスクのLBA(0)画像展開領域へ格納するコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111のI/Oコントローラ113は、前記中間データをHDD1(116),HDD2(117)のLBA(0)画像展開領域へ格納する。
【0088】
そして、CPU103は、全てのページのデータ変換を終えるまで(S907)、S904〜S906の処理を繰り返し、全てのページのデータ変換を終えると(S907でY)、S908に処理を進める。
【0089】
S908では、RIP制御部105は、ハードディスクのLBA(0)から前記中間データを読み出すコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111は、HDD1(116)のLBA(0)より中間データを読み出す。詳細には、I/Oコントローラ113が、SRAM107に格納されたパフォーマンス計測結果(図7に示した比較結果704)に基づいて、LBA(0)に格納されるデータを読み出す際のハードディスクを選択する。ここでは、HDD1(116)を選択する。そして、I/Oコントローラ113は、選択したHDD1(116)のLBA(3)より前記中間データを読み出して、ATA I/Fコントローラ110を介してRIP制御部105に渡す。
【0090】
そして、S9において、RIP制御部105は、前記読み出した中間データに対してハードウェアによる描画データへの展開処理を実施し、該展開処理結果をDRAM102へページ単位で格納する。
【0091】
1ページ分のデータが用意できると、S910において、CPU103は、DMA転送により、DRAM102へ格納される描画データをプリンタ画像処理部118へ転送する。
【0092】
CPU103は、このS908〜S910までの処理を全てのページのデータを転送し終わるまで繰り返すように制御し(S911)、全てのページのデータを転送し終わると、本フローチャートの処理を終了させる。
【0093】
以下、図10を参照して、2台有るミラーリングハードディスクのうち、片方に故障が発生し、サービスマンによる交換作業が行われたときの処理について説明する。
【0094】
図10は、2台有るミラーリングハードディスクのうち、片方に故障が発生しサービスマンによる交換作業が行われたときの処理を示したフローチャートである。
【0095】
サービスマンが、2台有るミラーリングハードディスクHDD1(116),HDD2(117)のうち、少なくとも片方を交換する(S1001)。ここでは、HDD2(117)がHDD3(不図示)に交換されたものとする。
【0096】
そして、最初の電源投入がなされた(S1002)後に、S1003の処理が実行される。
【0097】
このS1003の処理は、サービスマンから入力される指示により、CPU103がRAIDコントローラ111に実行させるように構成であってもよいし、電源投入後に常にCPU103がRAIDコントローラ111に実行させる構成であってもよい。なお、上記サービスマンから入力される指示は、操作部109から入力される指示であっても、ネットワークI/F101を介しての不図示のコンピュータ(リモートUI)から入力される指示等であってもよい。以下、S1003以降の処理について説明する。
【0098】
S1003では、CPU103からの指示により、RAIDコントローラ111がハードディスクの型名、ディスク容量などの情報を取得し、CPU103に通知する。この通知を受けて、CPU103は、2台有るミラーリングハードディスクのうち、少なくとも片方を交換されたか否かを判断する。
【0099】
そして、少なくとも片方が交換されたと判断した場合には、CPU103は、図2のS201〜S206で説明したようなパフォーマンス計測テストを実施するように制御する(S1004)。このパフォーマンス計測テストにより、SRAM107へ格納されるLBA領域ごとに計測されたログデータが更新される。
【0100】
図11は、SRAM107内のログデータを更新した後にRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクのうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【0101】
なお、図11中、交換された新規のハードディスクをHDD3として記載している。
【0102】
ハードディスク交換前の状態(図8)と比較して、灰色の部分の領域がログデータの更新によって変更となった部分に対応する。このように、部品交換が行われる度にパフォーマンス計測を行うことにより、各データ領域でアクセスタイムが早い方のディスクを選択することが可能となる。以下、図12を用いて具体的に説明する。
【0103】
図12は、SRAM107内のログデータを更新した後のプリント処理中のハードディスクへのアクセス時において2台あるハードディスクHDD1(116),HDD3(不図示)のどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。なお、図中、S1201〜S1207,S1209〜S1211は、図9に示したS901〜S907,S909〜S911と同一である。以下、図9との差分について説明する。
【0104】
前述の図9に示したフローチャートとの差分は、S1208においてHDD1から読み出していた中間データをHDD3(交換された不図示のハードディスク)から読み出すようになった点である。ディスク交換後に、LBA(0)の領域の読み出し時間が元から装着されていたHDD1(116)よりも交換したHDD3(不図示)の方が短くなったことに起因する。以下、S1208について説明する。
【0105】
S1208では、RIP制御部105は、ハードディスクのLBA(0)から中間データを読み出すコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111は、HDD3(不図示)のLBA(0)より中間データを読み出す。詳細には、I/Oコントローラ113が、SRAM107内の更新されたパフォーマンス計測結果に基づいて、LBA(0)に格納されるデータを読み出す際のハードディスクを選択する。ここでは、ディスク交換によりLBA(0)の領域の読み出し時間が元から装着されていたHDD1(116)よりも交換したHDD3(不図示)の方が短くなったため、HDD3(不図示)を選択する。そして、I/Oコントローラ113は、選択したHDD3のLBA(3)より前記中間データを読み出して、ATA I/Fコントローラ110を介してRIP制御部105に渡す。
【0106】
以上示したように、本実施形態では、ミラーリング構成となっている磁気ディスク装置を備えたMFP(複合機)において、新規の磁気ディスク装置が設置されたとき、画像スプール領域、プログラム領域、ユーザデータ領域ごとのLBAごとに、各磁気ディスク装置に対してデータのwrite/readテストを実施してパフォーマンス(即ち、アクセススピード)を計測する。この計測結果をMFP制御部内のコントローラに内蔵されているメモリ(SRAM107)に格納し、このデータに基づいてMFPの処理の流れに応じて、ミラーリング動作時にデータを読み出すハードディスクを切り替える構成を特徴とする。
【0107】
従来では、ミラーリングシステムとして同じ回転数、同じ記憶容量のプラッター(ディスクの円盤状の磁性体)を使用しているディスク装置であってもデータアクセスの性能が異なるディスク装置が装着される場合があった。このような場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス(アクセススピード)の低下を抑えることができる。
【0108】
〔第2実施形態〕
ミラーリング構成のハードディスクにおいて、上述した第1実施形態においては、ハードディスクの交換が行われたときにパフォーマンスの計測を行う例を示したが、本実施形態では定期的にパフォーマンスの計測を行う場合について述べる。
【0109】
ハードディスクは外部のインターフェースからは故障が無いように見えても内部的にメディアの欠損、一般にはセクタ故障と呼ばれる不具合が発生する場合もある。
【0110】
一般にハードディスクはメーカーが提示する仕様書に記載されている容量(例:160GB)よりも若干多い容量を予備として備えている。ハードディスクに対して特定のアドレス領域へ書き込み/読み出しを頻繁に行うと、プラッターと呼ばれるディスク円盤の磁性体の劣化が起こる可能性が高まる。また、動作時における振動などによりディスクのヘッドとプラッターの間で接触が起こり磁性体に傷などの物理的な損傷が発生する場合もある。このような現象が発生すると、所謂、writeアボートと呼ばれるような、データが正常に書き込めない領域が次第に増えてしまい、ユーザに開放している容量が確保できなくなってしまう。
【0111】
このような事態を防ぐために、ハードディスクには、代替のセクタ領域が予め用意されている。
【0112】
図13は、故障が発生したセクタと代替のセクタのとの位置関係を示す図である。
【0113】
図13に示すように、代替セクタは、プラッターの内周に設けられていることが多く、LBAのアドアレスに飛び番地が含まれることになる。
【0114】
つまり、外周のセクタに故障が発生した場合には、ディスクヘッドが連続するLBAのアクセス途中で、内周の代替セクタにアクセスする必要がある。このため、ヘッドの外周から内周への移動と、また元の外周に戻る往復の動作が必要となり、パフォーマンスに影響を与えることになる。
【0115】
また、ミラーリング構成のハードディスクを使用する場合には、図13に示したように、HDD1とHDD2とで、それぞれの故障セクタの位置が異なることが予想され、領域ごとにパフォーマンスの差がでてしまう。
【0116】
図14は、このような不具合を防ぐために、ディスクの通電時間が所定の長さを超えて使用を続けようとしたときに定期的なパフォーマンス計測を行う処理を示すフローチャートである。なお、このフローチャートの処理は、CPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。
【0117】
まずS1401において、CPU103は、予めパフォーマンスの計測を行う間隔を設定する。このS1401の処理は、管理者等から入力されるパフォーマンスの計測を行う間隔の設定指示により、CPU103が、ハードディスクに指示された間隔を設定する。
【0118】
なお、上記管理者等から入力される指示は、操作部109から入力される指示であっても、ネットワークI/F101を介しての不図示のコンピュータ(リモートUI)から入力される指示等であってもよい。以下、S1402以降の処理について説明する。
【0119】
次に、S1402において、CPU103は、ハードディスクの通電時間に基づいて、S1401で設定されたパフォーマンスの計測を行う間隔のカウントダウンを開始する。
【0120】
次に、S1403において、CPU103は、所定時間(S1401で設定されたパフォーマンスの計測を行う間隔)の経過するまで待機する。
【0121】
そして、S1403において、所定時間(S1401で設定されたパフォーマンスの計測を行う間隔)の経過したと判断した場合には、CPU103は、S1404に処理を進める。
【0122】
S1404では、CPU103は、図2のS201〜S206で説明したようなパフォーマンス計測テストを実施するように制御する。このパフォーマンス計測テストにより、SRAM107へ格納されるLBA領域ごとに計測されたログデータ(計測結果)が更新される。これ以後、RAIDコントローラ111は、この更新されたSRAM107内の計測結果(例えば、図7に示したような判定結果704)に基づいて、MFPのプリント、コピーの各処理において2つあるハードディスクからパフォーマンスが最適なものを選択してデータの読み出しを行う。
【0123】
本実施形態では、磁気ディスク装置の交換が無い場合でも、前記磁気ディスク装置への通電時間が所定時間を経過したときを契機として(トリガとして)、前述のパフォーマンスの計測を行うように構成する。この構成により、特定のアドレス領域への書き込み/読み出しを頻繁に行ったり動作時の振動等により磁気ディスク装置が劣化している可能性が高い場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス(アクセススピード)の低下を抑えることができる。
【0124】
〔第3実施形態〕
上記第2実施形態においては、定期的にパフォーマンスの計測を行っていたが、S.M.A.R.T.情報から代替セクタに関する情報(ステータス)が得られるので、このステータスに著しい変化が発生した場合をトリガとして計測を行うように構成してもよい。以下、その実施形態について説明する。
【0125】
なお、S.M.A.R.T.情報とは、Self-Monitoring, Analysis and Reporting Technologyの略称である。このS.M.A.R.T.情報は、ハードディスクドライブの障害の早期発見と故障の予測を目的として搭載されている機能であって、各種の検査項目をリアルタイムに自己診断し、その状態を数値化している。以下、図15を用いて詳細に説明する。
【0126】
図15は、本実施形態で使用される不良セクタに関するS.M.A.R.T.情報のIDとその項目を示す図である。
【0127】
図15において、ID=05のReallocated Sectors Countは、不良セクタが発生したために代替処理を施されたその数を示す。ID=C4のReallocation Event Countは、セクタの代替処理が発生した回数を示し、ID=C5のCurrent Pending Sector Countは、現在異常があり、代替処理を待っているセクタの総数を示す。また、ID=C6のOff-Line Scan Uncorrectable Sector Countは、オフライン時に発見された回復不可能なセクタの総数を示している。
【0128】
以下、図16を参照して、S.M.A.R.T.情報を用いてパフォーマンス計測を行う処理について説明する。
【0129】
図16は、S.M.A.R.T.情報を用いてパフォーマンス計測を行う処理を示すフローチャートである。なお、このフローチャートの処理は、CPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。
【0130】
まず、S1601において、CPU103は、図15で示したS.M.A.R.T.情報の項目についてそのステータスの差分(主に代替セクタの発生数)をモニタリングする。
【0131】
次に、S1602において、CPU103は、S1601のモニタリングの結果、代替セクタの発生数に増分があるか否かを判定し、代替セクタの発生数に増分があると判断するまで、S1601のモニタリングを実行するように制御する。
【0132】
そして、S1602において、CPU103は、代替セクタの発生数に増分があると判断した場合には、S1603に処理を進める。
【0133】
S1604では、CPU103は、図2のS201〜S206で説明したようなパフォーマンス計測テストを実施するように制御する。このパフォーマンス計測テストにより、SRAM107へ格納されるLBA領域ごとに計測されたログデータ(計測結果)が更新される。これ以後、RAIDコントローラ111は、この更新されたSRAM107内の計測結果(例えば、図7に示したような判定結果704)に基づいて、2つあるハードディスクからパフォーマンスが最適なものを選択してデータの読み出しを行う。
【0134】
本実施形態では、磁気ディスク装置の交換が無い場合でも、S.M.A.R.T.情報の代替処置を施された不良セクタの数をモニタリングしておき、増分が検出された時点で(トリガとして)、前述のパフォーマンスの計測を行うように構成する。即ち、いずれかの磁気ディスク装置に不良セクタが発生して代替処理が発生したことを検知したことを契機として、前述のパフォーマンスの計測を行うように構成する。このような構成により、ミラーリングシステムを構成する磁気ディスクにおいて不良セクタが増加した場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス(アクセススピード)の低下を抑えることができる。
【0135】
〔第4実施形態〕
上記第3実施形態においては、不良セクタが発生(代替セクタが発生)したことに応じて、パフォーマンス計測を行うものであった。第4実施形態は、パフォーマンス計測を行うことなく、LBA毎にアクセススピードを取得するものである。
【0136】
一般的に、不良セクタの数が大きくなればなるほど、連続したアドレスにデータを書き込めない可能性が高まるので、アクセススピードが低くなる傾向がある。それは、不良セクタが発生した場合、連続したアドレスの一部に抜け(不良セクタ)が生じ、アドレスの切り替えが必要になるからである。そこで、第4実施形態は不良セクタの数とアクセススピードの相関関係を予め関数としてRAIDコントローラ111に保持させておき、実際に発生した不良セクタの数を関数の代入することで、LBA毎のアクセススピードを取得する。したがって、第4実施形態によれば、HDD1及びHDD2にデータをwrite/readすることによりパフォーマンス計測をすることなく、不良セクタ数からアクセススピードを取得することができる。よって、第4実施形態によれば、パフォーマンス計測を実行するのに要する時間を省略することができる。
【0137】
なお、上記実施形態では、本発明の制御装置を、MFPに適用する場合について説明したが、ミラーリング構成の複数の記憶装置を有する装置であればどのような装置に適用してもよい。例えば、パーソナルコンピュータやワークステーション等の一般的なコンピュータに適用してもよいし、ハードディスクレコーダ等に適用してもよい。
【0138】
さらに、記憶装置は、磁気ディスクに限定されるものではなく、磁気ディスク以外の記憶装置であっても本発明は適用可能である。また、ミラーリングを構成する記憶装置は、3つ以上であってもよい。
【0139】
また、図2に示したパフォーマンス計測テストでは、記憶装置に対してデータの書き込み及び読み出しに係わるパフォーマンスを計測する構成であったが、読み出しに係わるパフォーマンスのみを計測する構成であってもよい。
【0140】
さらに、上記各実施形態の組み合わせも全て本発明に含まれるものである。
【0141】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0142】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0143】
以上説明したように、本実施形態によれば、ミラーリングシステムを構成する磁気ディスク装置として、同じ回転数、同じ記憶容量のプラッター(ディスクの円盤状の磁性体)を使用している磁気ディスク装置であっても、データアクセスの性能が異なるものが装着された場合においても、ミラーリングシステムとしてデータのwrite/readパフォーマンスの低下を抑えることができる。
【0144】
以下、図17に示すメモリマップを参照して、本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体のメモリマップの構成について説明する。
【0145】
図17は、本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体(記憶媒体)のメモリマップを説明する図である。
【0146】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0147】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0148】
本実施形態における図2,図9,図10,図12,図14,図16に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0149】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0150】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0151】
しがたって、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0152】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0153】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0154】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやFTPサーバ等も本発明の請求項に含まれるものである。
【0155】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0156】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0157】
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0158】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0159】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0160】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【0161】
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【0162】
【図1】本発明の一実施形態を示す磁気ディスク制御装置を適用可能なミラーリング構成の複数の磁気ディスクを備えたMFPコントローラの構成を示すブロック図である。
【図2】本実施形態の磁気ディスク制御装置におけるパフォーマンス計測テストの一例を示すフローチャートである。
【図3】図2に示したパフォーマンス計測を行う際のRAIDコントローラ111とハードディスク116,117間の制御信号を示す図である。
【図4】図3に示した制御信号のタイミングチャートである。
【図5】図3に示した制御信号のタイミングチャートである。
【図6】図2に示したパフォーマンス計測を行う際にwrite/readする具体的なテストデータを示した図である。
【図7】図2に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ(パフォーマンス計測結果)をSRAM107に格納するときの形式を示す図である。
【図8】SRAM107内のログデータに基づいてRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクHDD1(116),HDD2(117)のうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【図9】プリント処理中のハードディスクへのアクセス時において2台あるディスクのどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。
【図10】2台有るミラーリングハードディスクのうち、片方に故障が発生しサービスマンによる交換作業が行われたときの処理を示したフローチャートである。
【図11】SRAM107内のログデータを更新した後にRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクのうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【図12】SRAM107内のログデータを更新した後のプリント処理中のハードディスクへのアクセス時において2台あるハードディスクHDD1(116),HDD3(不図示)のどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。
【図13】故障が発生したセクタと代替のセクタのとの位置関係を示す図である。
【図14】不具合を防ぐために、ディスクの通電時間が所定の長さを超えて使用を続けようとしたときに定期的なパフォーマンス計測を行う処理を示すフローチャートである。
【図15】本実施形態で使用される不良セクタに関するS.M.A.R.T.情報のIDとその項目を示す図である。
【図16】S.M.A.R.T.情報を用いてパフォーマンス計測を行う処理を示すフローチャートである。
【図17】本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0163】
101 ネットワークインタフェース(Network I/F)
102 DRAM
103 CPU
104 ROM
105 RIP制御部
106 圧縮・伸張module
107 SRAM
108 操作部I/F
109 操作部
110 ATA I/Fコントローラ
111 RAIDコントローラ
112 CMD解析部
113 I/Oコントローラ
114 DMA ch1
115 DMA ch2
116 HDD1
117 HDD2
118 プリンタ(Printer)画像処理部
119 プリンタエンジン(Printer Engine)I/F
120 プリンタエンジン(Printer Engine)
121 スキャナ(Scanner)画像処理部
122 スキャナ(Scanner)I/F
123 スキャナ(Scanner)
【技術分野】
【0001】
本発明は、制御装置、制御方法、及びプログラムに関するものである。
【背景技術】
【0002】
近年では、コピー、FAX、プリンタなどの機能を備えたMFP(Multi Function Printer:複合機)においては、扱うデータの大容量化とグラフィックデータの複雑化、高精細化、さらには印字の高速化の要求がある。この要求に伴い、MFPでは、データの処理のパスとして大容量のデータを一次的に格納できるストレージとして磁気ディスク装置が一般的に採用されている。なお、磁気ディスクに格納するデータの信頼性、耐故障性を高めるため、RAID1のミラーリングと呼ばれている技術がある。
【0003】
ミラーリングとは、2台の磁気ディスクに対して全く同じデータを同時に書き込み、データを読み出すときには片方の磁気ディスクから読み出す方式である。ミラーリング技術を用いることで、一方の磁気ディスクに障害が発生しても、もう一方の磁気ディスクに記憶されたデータを利用することで、データが消失してしまう不具合を防ぐことができる。
【0004】
なお、ミラーリング方式では、信頼性や耐障害性は高いものの、2倍のディスク容量を使うため、その分、ハードウェアコストが高くなるというデメリットもある。
【0005】
また、ミラーリングシステムでは、2つのハードディスクの容量が同等、またアクセススピードも同等のものを使用することが前提となっている。これは、データを書き込むときに処理時間に著しい差が有ると、片方の処理が終了するまで待たされてしまい、ボトルネックが発生してしまうため、これを防止するためである。
【0006】
また、データの読み出しには、ディスクドライブを限定して特定のドライブからのみ読み出しを行うので、選択したドライブに支障が発生した場合には、パフォーマンスに直接影響を与えることになっていた。
【0007】
ミラーリングシステムを採用した例として、次のような技術がある。
【0008】
特許文献1に開示された「複数の記憶ディスク部を有した高可用性の外部記憶装置」では、ディスクのヘッドの移動時間を最小になるようにキューに入ったコマンドを並べ替える手段を備えている。さらに、複数の読み出しコマンドがあればミラーリングを構成する2つのディスク装置に振り分けてコマンドを発行し、これらの両ディスク装置において異なる読み出しコマンドを並列に処理させる手段も備えている。
【特許文献1】特開平9−258907号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、従来のシステムにおいては以下のような問題があった。
【0010】
ミラーリング構成では、writeのときは2台の磁気ディスクに同時に同じデータを書き込み、readのときは片方の磁気ディスクからのみデータを読み出している。
【0011】
このため、磁気ディスクの片方が故障して動作しなくなった場合には、機器の操作部などにエラー表示が行われ、サービスマンによる修理が行われる。修理のときには、機能的に互換性があるものを前提に故障した磁気ディスクの交換が行われるが、以前に装着されていた磁気ディスクのとは型式の異なるタイプが装着されるケースも想定される。
【0012】
このため、場合によっては、ミラーリング構成の複数の磁気ディスクの間でパフォーマンスに差が出てしまい、交換前と比較してデータの読み書きに関わるパフォーマンスが低下してしまうという場合があった。
【0013】
また、上述のように完全に動作しなくなるまでの故障は無くても、磁気ディスクの一部のセクタが壊れたときには、ユーザは感知せずともディスク制御部の補償機能が自動的に働き、代替の安全なセクタ領域にデータの一部が格納される。
【0014】
このような代替セクタが複数あると、連続したアドレス領域をアクセスするようなDMAのバースト転送時に、ディスクヘッドのシークタームが余分にかかり、待ち時間(ウエイト)が発生してしまうという問題があった。
【0015】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えることができる仕組を提供することである。
【課題を解決するための手段】
【0016】
本発明は、ミラーリングシステムを構成する第1の記憶装置及び第2の記憶装置を制御する制御装置であって、前記第1の記憶装置及び前記第2の記憶装置の双方に書き込まれるべきデータを受信する受信手段と、前記受信手段が特定データを受信した場合に、該特定データを前記第1の記憶装置に設けられた第1記憶領域及び前記第2の記憶装置に設けられた第2記憶領域の双方に書き込む書き込み手段と、前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得する取得手段と、前記取得手段により取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出し手段とを備えたことを特徴とする。
【発明の効果】
【0017】
本発明によれば、ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えることができる等の効果を奏する。
【発明を実施するための最良の形態】
【0018】
〔第1実施形態〕
図1は、本発明の一実施形態を示す磁気ディスク制御装置を適用可能なミラーリング構成の複数の磁気ディスクを備えたMFPコントローラの構成を示すブロック図である。以下に各構成要素について説明を行う。
【0019】
図1において、101は図示していないホストコンピュータからの印字データを受信するためのネットワークI/F(Network I/F)回路である。102はDRAMであり、画像の展開や後述のCPUのワーク領域として使用される。103はCPUである。
【0020】
104はROMである。このROM104のROM1には、電源投入直後にCPU103が起動してコントローラ内の後述する各種ハードウェアの初期化制御を行うためのブートアップ(Boot Up)プログラムが格納される。また、ROM104のROM2には、本発明で適用されるハードディスク(HDD)のパフォーマンス計測の制御を行うためのプログラムが格納される。また、ROM104のROM3には、ページ記述言語(Page Description Language、略してPDL)を解析して後述のRIP制御部105が読み取れるような中間言語に変換するプログラム等が格納されている。
【0021】
105はRIP制御部であり、プリント時に画像展開を行うハードウェアである。106は圧縮・伸張モジュールであり、省メモリのために画像データの圧縮伸張を行う制御部である。
【0022】
108は操作部I/F回路、109はユーザI/Fとなる操作部である。
【0023】
110はATA I/Fコントローラであり、ハードディスクへの読み書き制御を行う。111はミラーリング制御を行うRAIDコントローラである。112は前記のATA I/Fコントローラ110から送られてきたコマンドを解析するためのコマンド解析部(CMD解析部)である。107はSRAMであり、各種設定データを保持しておくためのものである。
【0024】
113は2台のハードディスクに対してデータの読み出し、書き込み制御を選択して独立に行うためのI/Oコントローラである。I/Oコントローラ113は、ATA I/Fコントローラ110から送信されるデータを受信する受信手段として機能する。114はDMAコントローラ(ch1),115はDMAコントローラ(ch2)で、DMA転送を行うための制御部である。116は第1の記憶装置としてのHDD1、117は第2の記憶装置としてのHDD2で、磁気ディスク装置である。
【0025】
118はプリンタ(Printer)画像処理部で、プリンタエンジンへ画像を転送するときにスムージングやディザ処理などを行って画質の向上を図るための画像処理部である。119はプリンタエンジンとのデータのやり取りを行うためのプリンタエンジンI/F回路(Printer Engine I/F)である。120はプリンタエンジン(Printer Engine)である。
【0026】
123は紙ベースの原稿画像を読み取るためのスキャナ(Scanner)である。122はスキャナ(Scanner)123のデータ入出力を制御するためのスキャナI/F回路(Scanner I/F)である。121は読み取った画像データを補正して2値データとして変換するスキャナ(Scanner)画像処理部である。
【0027】
次に、ミラーリング構成におけるプリント時のデータ処理について述べる。
【0028】
ネットワークI/F101よりページ記述言語とよばれる印字データが送られてくると、該印刷データは、一旦、ATA I/Fコントローラ110を経由してHDD1(116),HDD2(117)の2台のハードディスクの双方に同時に同じデータが書き込まれる。
【0029】
ホストコンピュータからの全ての転送データが格納されると、RAID1のミラーリング方式に従って、I/Oコントローラ113は、選択されるいずれかのハードディスクからのみデータを読み出す。なお、HDD1(116)が選択される場合、I/Oコントローラ113は、チップセレクト信号のnCS1を「able(=Low)」,nCS2を「disable(=High)」として、HDD1(116)からのみデータを読み出す。なお、データを読み出すハードディスクの選択方法については後述する。
【0030】
CPU103は、読み出されたページ記述言語のデータをROM104のROM3に格納されたプログラムに従って中間言語へ変換し、ATA I/Fコントローラ110を経由してHDD1(116),HDD2(117)の2台のハードディスクの双方へデータの書き込みを行う。
【0031】
全ページのデータ変換が終了すると、CPU103は、前述の変換された中間言語のデータを、選択されるハードディスク(例えばHDD1(116))から読み出して、RIP制御部105により、中間言語から描画データへ展開を行う。そして、CPU103は、圧縮・伸張モジュール106によって、前述の展開された描画データの圧縮を行った後に、HDD1(116),HDD2(117)の2台のハードディスクへ書き込みを行う。
【0032】
全部の印字画像データの描画展開が終了すると、CPU103は、前述の圧縮されたビットマップデータを選択されるハードディスク(例えばHDD1(116))から読み出す。そして、CPU103は、前述の読み出した圧縮されたビットマップデータを圧縮・伸張モジュール106によりデータ伸張を行ってから、プリンタ画像処理部118へ転送する。
【0033】
プリンタ画像処理部118は、文字輪郭のスムージング処理や画像データの階調補正などをして画質の向上を行った後に、119のプリンタエンジンI/F回路119を経由してプリンタエンジン120へ出力される。
【0034】
次に、ミラーリング構成における、コピー処理時のデータ処理について述べる。
【0035】
スキャナ123から読み取った画像は、スキャナI/F回路122を中継して、スキャナ画像処理部121へ入力され、変倍、回転、階調補正などの処理を行い、圧縮・伸張モジュール106によってデータ圧縮を行う。そして、圧縮されたデータは、一旦、ATA I/Fコントローラ110を経由してHDD1(116),HDD2(117)の2台のハードディスクに同時に同じデータが書き込まれる。全ての原稿の読み取りが終了すると、CPU103は、選択されるハードディスク(例えばHDD1(116))から圧縮されたデータを読み出して、圧縮・伸張モジュール106によってデータ伸張を行い、プリンタ画像処理部118のへ転送する。
【0036】
転送されたデータは、プリンタ画像処理部118によって画像処理が施された後に、プリンタエンジンI/F119を経由してプリンタエンジン120へ出力される。
【0037】
以上説明したように、ミラーリングシステムにおいては、CPU103は、ATA I/Fコントローラ110へデータ書き込みコマンドを出すと、RAIDコントローラ111内のCMD制御部112は、次のように動作する。CMD制御部112は、CPU103からのデータ書き込みコマンドを解析して後段のI/Oコントローラ113にデータ書き込みを指示する。これに応じて、I/Oコントローラ113は、2つあるDMAコントローラ114,115に対して同時に起動をかけ、2つのハードディスク116,117へ同時にデータ書き込み処理を行う。
【0038】
また、データ読み出し時には、CPU103が、ATA I/Fコントローラ110に対してデータ読み出しコマンドを発行すると、それに従ってRAIDコントローラ111内の112CMD制御部は、次のように動作する。CMD制御部112は、CPU103からのデータ読み出しコマンドを解析して後段のI/Oコントローラ113にデータ読み出しを指示する。これに応じて、I/Oコントローラ113は、2つあるDMAコントローラのどちらを起動させるか選択する信号nCS1,nCS2のうち、一方のみを「active(=Lowレベル)」にすることにより選択を行う。例えば、HDD1(116)からデータを読み出す場合には、CMD制御部112は、nCS1=「Low」,nCS2=「High」にドライブを行う。反対に、HDD2(117)からデータを読み出す場合には、CMD制御部112は、nCS1=「High」,nCS2=「Low」にドライブを行う。
【0039】
図2は、本実施形態の磁気ディスク制御装置におけるパフォーマンス計測テストの一例を示すフローチャートである。なお、このフローチャートの処理は、CPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。
【0040】
まずS201において、CPU103は、ROM104のROM2から計測プログラムをロードし、S202において、ATA I/Fコントローラ110へコマンドとして送出する。そして、このコマンドはATA I/Fコントローラ110からRAIDコントローラ111に送信される。このコマンドに基づいて、RAIDコントローラ111は、以下の処理を実行する。
【0041】
S203において、RAIDコントローラ111は、ハードディスク116,117へテスト(計測)を行うセクタの先頭アドレス(LBA)とバースト長を指定する。さらに、RAIDコントローラ111は、テストデータのwriteコマンド、同アドレスのreadコマンドをハードディスク116,117へ送出し、前記writeしたデータと前記readしたデータとのverifyを実施する。
【0042】
なお、各指定セクタのバースト転送の際に、RAIDコントローラ111とハードディスク116,117の間で送受信される信号とそのタイミングを後述する図3〜図5に示す。また、このバースト転送で、write,readされるデータを後述する図6に示す。
【0043】
S204では、RAIDコントローラ111は、指定したセクタ分のburst転送が終了するまで前記のS203の処理を繰り返すように制御する。そして、指定したセクタ分のテストが終了したと判断した場合には、RAIDコントローラ111は、S205に処理を進める。なお、上記データ転送の間、RAIDコントローラ111内のI/Oコントローラ113が、指定したセクタ分のデータ転送に要した時間(データの書き込み,読み出しに係わるパフォーマンス)を計測しておく。即ち、ハードディスクの連続したアドレス領域ごとに、前記各ハードディスクに対してアクセススピードの計測(取得)を行う。
【0044】
S205では、I/Oコントローラ113は、データ転送に要した時間をログとしてSRAM107へ格納するように制御する。このログを後述する図7に示す。
【0045】
次に、S206において、CPU103は、S205までに終了したテスト領域がハードディスクのデータ領域の最後になっているかを判定する。そして、S206において、S205までに終了したテスト領域がハードディスクのデータ領域の最後になっていない(即ち、未だ未テストの領域が残っている)と判断した場合には、CPU103は、S202に処理を戻す。
【0046】
一方、S206において、S205までに終了したテスト領域がハードディスクのデータ領域の最後になっている(全ての領域に対しての処理が終了した)と判定した場合には、本フローチャートの処理を終了する。
【0047】
以下、図3〜図6を参照して、図2に示したパフォーマンス計測テストを行う際のテストデータのwrite/readについて説明する。
【0048】
図3は、図2に示したパフォーマンス計測を行う際のRAIDコントローラ111とハードディスク116,117間の制御信号を示す図である。
【0049】
図3において、ホストとは、RAIDコントローラ111を示す。また、デバイスとは、ハードディスク(HDD1(116),HDD2(117))を示す。
【0050】
なお、図3中の矢印は、その信号をドライブする側が、ホスト、デバイスのどちらかを示したものである。
【0051】
図4は、図3に示した制御信号のタイミングチャートであり、ホストからデバイスに対してデータを書き込むとき(write)のものである。
【0052】
本発明においては、計測テストの際にはDMA転送によるwrite,readテストを行うものとする。
【0053】
以下、各信号について説明を行う。
【0054】
DMARQは、DMA転送リクエスト信号であり、デバイスからホストに送信される。/DMACKは、前記リクエスト(DMARQ)のアクノリッジ信号であり、ホストからデバイスに送信される。
【0055】
/DIOWは、通常のレジスタアクセスにおいてはI/O wirte信号として使用されるが、DMA転送中にはバースト転送中においてホストからデバイス(ここではハードディスク)に対してDMA転送のストップをかける信号として使用される。
【0056】
IORDYは、通常のレジスタアクセスにおいてはI/O readyとして使用されるが、バースト転送中のDMAレディを示す/DDMARDY信号として使用され、デバイスからホストに送信される。
【0057】
/DIORは、通常のレジスタアクセスにおいてはI/O read信号として使用されるが、DMA writeデータの転送中には、writeデータのストローブ信号(/HSTROBE)として使用され、ホストからデバイスに送信される。
【0058】
DD[15:0]はwriteデータであり、デバイス側は、前記のストローブ信号(/HSTROBE)の立ち上がり、立下りの両方のエッジで、このデータをラッチする。
【0059】
このDMA転送では、データ転送の信頼性向上のために、バースト転送の最後にホストがCRCデータを付加し、デバイス側が受信したデータからCRCを計算して正しくデータ転送ができたかどうかをチェックする。ホスト側のCRCとデバイス側のCRCとが異なりエラーを検出した場合には、コマンド終了時にデバイスからエラーが発生したことをステータスとして返信する。
【0060】
図5は、図3に示した制御信号のタイミングチャートであり、デバイスからデータを読み出すとき(read)のものである。
【0061】
なお、図5と図4との違いは、/DIORが、ホスト側がデータを受け取れる準備ができていることを示す/HDMARDY信号として使用され、また、/IORDY信号がデバイスから読み出したデータのストローブ信号として使用されることである。
【0062】
図6は、図2に示したパフォーマンス計測を行う際にwrite/readする具体的なテストデータを示した図である。
【0063】
ハードディスク((HDD1)116,(HDD1)117)は、512byteのセクタ単位でデータのwrite/readを行う。ここでは、隣合うデータのbitが、"1","0"反転するような組み合わせのデータとして、5555(h),aaaa(h)の2ワードのデータをペアとして交互にセクタに埋めるようにしている。なお、16進数標記された5555(h),aaaa(h)は、2進数表記すると"0101010101010101","1010101010101010"となる。
【0064】
以下、図7を参照して、図2に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ(パフォーマンス計測結果)をSRAM107に格納するときの形式について説明する。
【0065】
図7は、図2に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ(パフォーマンス計測結果)をSRAM107に格納するときの形式を示す図である。
【0066】
図1に示したMFPコントローラでは、ハードディスクをJobの処理状況に応じて各領域に分割して使用している。このため、MFPコントローラでは、ログについてもその領域の先頭アドレスを示すLBA701と、パフォーマンステストに要した時間702,703、及び、その判定結果704についても格納する。なお、702はHDD1(116)を読み出し対象とした場合にパフォーマンステストに要した時間、703はHDD2(117)を読み出し対象とした場合にパフォーマンステストに要した時間に対応する。
【0067】
以下、図8を参照して、図7に示したパフォーマンス計測結果に基づいて、実際にRAIDコントローラ111が選択するハードディスクをLBA毎に示した図である。
【0068】
図8は、SRAM107内のログデータに基づいてRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクHDD1(116),HDD2(117)のうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【0069】
本発明では、RAIDコントローラ111のI/Oコントローラ113が、SRAM107に格納される計測結果(図7)に基づいてアドレス領域(LBA)ごとにHDD1,HDD2からアクセススピードが短いほうを選択してデータを読み出す構成である。
【0070】
図8において、801は領域を示す。802は、領域801のデータを読み出す際に選択するハードディスク、803は、領域801の用途を示す。
【0071】
以下に各領域801、及び、その用途803について説明を行う。
【0072】
図8において、LBA(0)の画像展開領域とは、コピーやプリントなどの画像処理を行うための展開されたデータを一時的に格納するため領域である。この領域は、データ処理のパフォーマンスに一番影響があるのでディスクヘッドのシークタイム、読み出し、書き込みのアクセスの早い最外周のセクタが優先的に割り当てられている。本領域は、図1のプリント処理の説明で述べたように、RIP制御部105が展開した画像を圧縮・伸張モジュール106によって圧縮したデータとして格納する用途に用いられている。
【0073】
LBA(1),LBA(2)のBootup領域とは、MFPに電源を投入された直後にCPU103が各種ハードウェアの初期化制御を行ったり、図1で説明したようなプリント処理、コピー処理などのMFPの動作を制御するためのプログラムが格納されている領域である。本領域のプログラムは、通常では電源投入後には直接ハードディスクから読み出されるが、その後は、ディスクアクセスの時間を短縮してMFPの処理パフォーマンスを向上させるため、DRAM102上に格納されてここから読み出される。
【0074】
LBA(3),LBA(4)の画像spool領域とは、図1で説明したように、プリント時にホストコンピュータより受信した印字データを一時的に格納するための領域である。また、この領域は、コピー時においては、スキャナから読み取った画像データを一時的に格納するための領域として用いられる。
【0075】
LBA(5)のユーザデータ領域とは、セキュリティ対策のためにMFPの使用制限をユーザ毎に設けてログインID、パスワードなどを管理するデータと、FAXの送信宛先名簿などの番号情報を格納するための領域として使用される。
【0076】
LBA(6)の地紋データ領域とは、情報漏洩対策のためのデータを格納する領域である。なお、偽造防止、原本保証のためにコピー禁止となっている紙文書には隠し文字を埋め込んだプリントパターンを予め印字するのが公知の技術として知られている。このような紙文書を複製しようとしたときに、スキャナ画像処理部121がパターン認識を行って、コピー出力時に文書の背景に複製であることを明確に示すパターン、一般に地紋と呼ばれるものを一面に印字する防止策がとられている。この背景に埋め込むパターン(地紋)には、色、階調、文様、文字などの複数のデータが用意されており、ユーザが選択可能となっている。LBA(6)には、このような各種地紋データを格納している。
【0077】
LBA(7)〜LBA(n)には、MFPのハードディスクへユーザが文書データを格納するBOXと呼ばれる領域である。ユーザは各クライアントPCより文書データをMFPのBOX領域に格納しておけば、いつでも必要に応じてプリントし再利用することができる。
【0078】
図7の判定結果704を参照すると、例えば、LBA(0)のアクセスタイムについては、HDD1(116)の時間(t1−a)の方がHDD2(117)の時間(t2−a)よりも小さく(短く)なっている。ここで、LBA(0)に記憶させるべきデータは、コピーやプリントなどの画像処理を行うための展開されたデータ(特定データ)である。そして、LBA(0)に対応するHDD1の記憶領域(第1記憶領域)のアクセスタイムが(t1−a)であり、LBA(0)に対応するHDD2の記憶領域(第2記憶領域)のアクセスタイムが(t1−b)である。そして、アクセスタイムが短いHDD1の記憶領域の方が、アクセスタイムが長いHDD2の記憶領域よりもアクセススピードが高い。このため、RAIDコントローラ111のI/Oコントローラ113(以下、単にRAIDコントローラ111)は、LBA(0)の画像展開領域をアクセスして、画像展開領域に記憶されたデータを読み出すときには、HDD1(116)を選択することになる。
【0079】
また、LBA(1),LBA(2)のアクセスタイムについては、HDD1(116)の時間(t1−a)よりHDD2(117)の時間(t2−a)の方が小さく(短く)なっている。このため、RAIDコントローラ111は、LBA(1),LBA(2)のBootup領域をアクセスするときには、HDD2(117)を選択することになる。
【0080】
このように、RAIDコントローラ111は、SRAM107に格納された図7の結果を元にして、MFPの各処理において2つあるハードディスク(HDD1(116),HDD2(117))のどちらか早い方を選択してデータの読み出しを行う。以下、図9を用いて具体的に説明する。
【0081】
図9は、プリント処理中のハードディスクへのアクセス時において2台あるディスクのどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。以下、順を追って説明を行う。
【0082】
S901において、CPU103は、不図示のホストコンピュータよりページ記述言語から成る印字データを受信すると、S902に処理を進める。
【0083】
S902では、CPU103は、前記受信した印字データを、ハードディスクのLBA(3)の画像spool領域へ格納するコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111のI/Oコントローラ113は、前記印字データをHDD1(116),HDD2(117)のLBA(3)の画像spool領域へ格納する。
【0084】
CPU103は、全てのページのデータを受信し終えるまで(S903)、S901〜S902の処理を繰り返し、全てのページのデータを受信し終えると(S903でY)、S904に処理を進める。
【0085】
S904では、CPU103は、ハードディスクのLBA(3)の画像spool領域に格納されるデータを読み出すコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111は、HDD1(116)のLBA(3)よりページ記述言語データを読み出す。詳細には、I/Oコントローラ113が、SRAM107に格納されたパフォーマンス計測結果(図7に示した比較結果704)に基づいて、LBA(3)に格納されるデータを読み出す際のハードディスクを選択する。ここでは、HDD1(116)を選択する。そして、I/Oコントローラ113は、選択したHDD1(116)のLBA(3)よりページ記述言語データを読み出して、ATA I/Fコントローラ110を介してCPU103に渡す。
【0086】
S905において、CPU103は、図1の104に格納されているPDL解析プログラムに従って、S904で読み出したページ記述言語データを中間データ(Display List)へ変換を行う。
【0087】
そして、S906において、CPU103は、S905で変換した中間データを、ハードディスクのLBA(0)画像展開領域へ格納するコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111のI/Oコントローラ113は、前記中間データをHDD1(116),HDD2(117)のLBA(0)画像展開領域へ格納する。
【0088】
そして、CPU103は、全てのページのデータ変換を終えるまで(S907)、S904〜S906の処理を繰り返し、全てのページのデータ変換を終えると(S907でY)、S908に処理を進める。
【0089】
S908では、RIP制御部105は、ハードディスクのLBA(0)から前記中間データを読み出すコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111は、HDD1(116)のLBA(0)より中間データを読み出す。詳細には、I/Oコントローラ113が、SRAM107に格納されたパフォーマンス計測結果(図7に示した比較結果704)に基づいて、LBA(0)に格納されるデータを読み出す際のハードディスクを選択する。ここでは、HDD1(116)を選択する。そして、I/Oコントローラ113は、選択したHDD1(116)のLBA(3)より前記中間データを読み出して、ATA I/Fコントローラ110を介してRIP制御部105に渡す。
【0090】
そして、S9において、RIP制御部105は、前記読み出した中間データに対してハードウェアによる描画データへの展開処理を実施し、該展開処理結果をDRAM102へページ単位で格納する。
【0091】
1ページ分のデータが用意できると、S910において、CPU103は、DMA転送により、DRAM102へ格納される描画データをプリンタ画像処理部118へ転送する。
【0092】
CPU103は、このS908〜S910までの処理を全てのページのデータを転送し終わるまで繰り返すように制御し(S911)、全てのページのデータを転送し終わると、本フローチャートの処理を終了させる。
【0093】
以下、図10を参照して、2台有るミラーリングハードディスクのうち、片方に故障が発生し、サービスマンによる交換作業が行われたときの処理について説明する。
【0094】
図10は、2台有るミラーリングハードディスクのうち、片方に故障が発生しサービスマンによる交換作業が行われたときの処理を示したフローチャートである。
【0095】
サービスマンが、2台有るミラーリングハードディスクHDD1(116),HDD2(117)のうち、少なくとも片方を交換する(S1001)。ここでは、HDD2(117)がHDD3(不図示)に交換されたものとする。
【0096】
そして、最初の電源投入がなされた(S1002)後に、S1003の処理が実行される。
【0097】
このS1003の処理は、サービスマンから入力される指示により、CPU103がRAIDコントローラ111に実行させるように構成であってもよいし、電源投入後に常にCPU103がRAIDコントローラ111に実行させる構成であってもよい。なお、上記サービスマンから入力される指示は、操作部109から入力される指示であっても、ネットワークI/F101を介しての不図示のコンピュータ(リモートUI)から入力される指示等であってもよい。以下、S1003以降の処理について説明する。
【0098】
S1003では、CPU103からの指示により、RAIDコントローラ111がハードディスクの型名、ディスク容量などの情報を取得し、CPU103に通知する。この通知を受けて、CPU103は、2台有るミラーリングハードディスクのうち、少なくとも片方を交換されたか否かを判断する。
【0099】
そして、少なくとも片方が交換されたと判断した場合には、CPU103は、図2のS201〜S206で説明したようなパフォーマンス計測テストを実施するように制御する(S1004)。このパフォーマンス計測テストにより、SRAM107へ格納されるLBA領域ごとに計測されたログデータが更新される。
【0100】
図11は、SRAM107内のログデータを更新した後にRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクのうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【0101】
なお、図11中、交換された新規のハードディスクをHDD3として記載している。
【0102】
ハードディスク交換前の状態(図8)と比較して、灰色の部分の領域がログデータの更新によって変更となった部分に対応する。このように、部品交換が行われる度にパフォーマンス計測を行うことにより、各データ領域でアクセスタイムが早い方のディスクを選択することが可能となる。以下、図12を用いて具体的に説明する。
【0103】
図12は、SRAM107内のログデータを更新した後のプリント処理中のハードディスクへのアクセス時において2台あるハードディスクHDD1(116),HDD3(不図示)のどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。なお、図中、S1201〜S1207,S1209〜S1211は、図9に示したS901〜S907,S909〜S911と同一である。以下、図9との差分について説明する。
【0104】
前述の図9に示したフローチャートとの差分は、S1208においてHDD1から読み出していた中間データをHDD3(交換された不図示のハードディスク)から読み出すようになった点である。ディスク交換後に、LBA(0)の領域の読み出し時間が元から装着されていたHDD1(116)よりも交換したHDD3(不図示)の方が短くなったことに起因する。以下、S1208について説明する。
【0105】
S1208では、RIP制御部105は、ハードディスクのLBA(0)から中間データを読み出すコマンドをATA I/Fコントローラ110を介してRAIDコントローラ111に送出する。このコマンドに基づいて、RAIDコントローラ111は、HDD3(不図示)のLBA(0)より中間データを読み出す。詳細には、I/Oコントローラ113が、SRAM107内の更新されたパフォーマンス計測結果に基づいて、LBA(0)に格納されるデータを読み出す際のハードディスクを選択する。ここでは、ディスク交換によりLBA(0)の領域の読み出し時間が元から装着されていたHDD1(116)よりも交換したHDD3(不図示)の方が短くなったため、HDD3(不図示)を選択する。そして、I/Oコントローラ113は、選択したHDD3のLBA(3)より前記中間データを読み出して、ATA I/Fコントローラ110を介してRIP制御部105に渡す。
【0106】
以上示したように、本実施形態では、ミラーリング構成となっている磁気ディスク装置を備えたMFP(複合機)において、新規の磁気ディスク装置が設置されたとき、画像スプール領域、プログラム領域、ユーザデータ領域ごとのLBAごとに、各磁気ディスク装置に対してデータのwrite/readテストを実施してパフォーマンス(即ち、アクセススピード)を計測する。この計測結果をMFP制御部内のコントローラに内蔵されているメモリ(SRAM107)に格納し、このデータに基づいてMFPの処理の流れに応じて、ミラーリング動作時にデータを読み出すハードディスクを切り替える構成を特徴とする。
【0107】
従来では、ミラーリングシステムとして同じ回転数、同じ記憶容量のプラッター(ディスクの円盤状の磁性体)を使用しているディスク装置であってもデータアクセスの性能が異なるディスク装置が装着される場合があった。このような場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス(アクセススピード)の低下を抑えることができる。
【0108】
〔第2実施形態〕
ミラーリング構成のハードディスクにおいて、上述した第1実施形態においては、ハードディスクの交換が行われたときにパフォーマンスの計測を行う例を示したが、本実施形態では定期的にパフォーマンスの計測を行う場合について述べる。
【0109】
ハードディスクは外部のインターフェースからは故障が無いように見えても内部的にメディアの欠損、一般にはセクタ故障と呼ばれる不具合が発生する場合もある。
【0110】
一般にハードディスクはメーカーが提示する仕様書に記載されている容量(例:160GB)よりも若干多い容量を予備として備えている。ハードディスクに対して特定のアドレス領域へ書き込み/読み出しを頻繁に行うと、プラッターと呼ばれるディスク円盤の磁性体の劣化が起こる可能性が高まる。また、動作時における振動などによりディスクのヘッドとプラッターの間で接触が起こり磁性体に傷などの物理的な損傷が発生する場合もある。このような現象が発生すると、所謂、writeアボートと呼ばれるような、データが正常に書き込めない領域が次第に増えてしまい、ユーザに開放している容量が確保できなくなってしまう。
【0111】
このような事態を防ぐために、ハードディスクには、代替のセクタ領域が予め用意されている。
【0112】
図13は、故障が発生したセクタと代替のセクタのとの位置関係を示す図である。
【0113】
図13に示すように、代替セクタは、プラッターの内周に設けられていることが多く、LBAのアドアレスに飛び番地が含まれることになる。
【0114】
つまり、外周のセクタに故障が発生した場合には、ディスクヘッドが連続するLBAのアクセス途中で、内周の代替セクタにアクセスする必要がある。このため、ヘッドの外周から内周への移動と、また元の外周に戻る往復の動作が必要となり、パフォーマンスに影響を与えることになる。
【0115】
また、ミラーリング構成のハードディスクを使用する場合には、図13に示したように、HDD1とHDD2とで、それぞれの故障セクタの位置が異なることが予想され、領域ごとにパフォーマンスの差がでてしまう。
【0116】
図14は、このような不具合を防ぐために、ディスクの通電時間が所定の長さを超えて使用を続けようとしたときに定期的なパフォーマンス計測を行う処理を示すフローチャートである。なお、このフローチャートの処理は、CPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。
【0117】
まずS1401において、CPU103は、予めパフォーマンスの計測を行う間隔を設定する。このS1401の処理は、管理者等から入力されるパフォーマンスの計測を行う間隔の設定指示により、CPU103が、ハードディスクに指示された間隔を設定する。
【0118】
なお、上記管理者等から入力される指示は、操作部109から入力される指示であっても、ネットワークI/F101を介しての不図示のコンピュータ(リモートUI)から入力される指示等であってもよい。以下、S1402以降の処理について説明する。
【0119】
次に、S1402において、CPU103は、ハードディスクの通電時間に基づいて、S1401で設定されたパフォーマンスの計測を行う間隔のカウントダウンを開始する。
【0120】
次に、S1403において、CPU103は、所定時間(S1401で設定されたパフォーマンスの計測を行う間隔)の経過するまで待機する。
【0121】
そして、S1403において、所定時間(S1401で設定されたパフォーマンスの計測を行う間隔)の経過したと判断した場合には、CPU103は、S1404に処理を進める。
【0122】
S1404では、CPU103は、図2のS201〜S206で説明したようなパフォーマンス計測テストを実施するように制御する。このパフォーマンス計測テストにより、SRAM107へ格納されるLBA領域ごとに計測されたログデータ(計測結果)が更新される。これ以後、RAIDコントローラ111は、この更新されたSRAM107内の計測結果(例えば、図7に示したような判定結果704)に基づいて、MFPのプリント、コピーの各処理において2つあるハードディスクからパフォーマンスが最適なものを選択してデータの読み出しを行う。
【0123】
本実施形態では、磁気ディスク装置の交換が無い場合でも、前記磁気ディスク装置への通電時間が所定時間を経過したときを契機として(トリガとして)、前述のパフォーマンスの計測を行うように構成する。この構成により、特定のアドレス領域への書き込み/読み出しを頻繁に行ったり動作時の振動等により磁気ディスク装置が劣化している可能性が高い場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス(アクセススピード)の低下を抑えることができる。
【0124】
〔第3実施形態〕
上記第2実施形態においては、定期的にパフォーマンスの計測を行っていたが、S.M.A.R.T.情報から代替セクタに関する情報(ステータス)が得られるので、このステータスに著しい変化が発生した場合をトリガとして計測を行うように構成してもよい。以下、その実施形態について説明する。
【0125】
なお、S.M.A.R.T.情報とは、Self-Monitoring, Analysis and Reporting Technologyの略称である。このS.M.A.R.T.情報は、ハードディスクドライブの障害の早期発見と故障の予測を目的として搭載されている機能であって、各種の検査項目をリアルタイムに自己診断し、その状態を数値化している。以下、図15を用いて詳細に説明する。
【0126】
図15は、本実施形態で使用される不良セクタに関するS.M.A.R.T.情報のIDとその項目を示す図である。
【0127】
図15において、ID=05のReallocated Sectors Countは、不良セクタが発生したために代替処理を施されたその数を示す。ID=C4のReallocation Event Countは、セクタの代替処理が発生した回数を示し、ID=C5のCurrent Pending Sector Countは、現在異常があり、代替処理を待っているセクタの総数を示す。また、ID=C6のOff-Line Scan Uncorrectable Sector Countは、オフライン時に発見された回復不可能なセクタの総数を示している。
【0128】
以下、図16を参照して、S.M.A.R.T.情報を用いてパフォーマンス計測を行う処理について説明する。
【0129】
図16は、S.M.A.R.T.情報を用いてパフォーマンス計測を行う処理を示すフローチャートである。なお、このフローチャートの処理は、CPU103がROM104等に格納されたプログラムを読み出して実行することにより実現される。
【0130】
まず、S1601において、CPU103は、図15で示したS.M.A.R.T.情報の項目についてそのステータスの差分(主に代替セクタの発生数)をモニタリングする。
【0131】
次に、S1602において、CPU103は、S1601のモニタリングの結果、代替セクタの発生数に増分があるか否かを判定し、代替セクタの発生数に増分があると判断するまで、S1601のモニタリングを実行するように制御する。
【0132】
そして、S1602において、CPU103は、代替セクタの発生数に増分があると判断した場合には、S1603に処理を進める。
【0133】
S1604では、CPU103は、図2のS201〜S206で説明したようなパフォーマンス計測テストを実施するように制御する。このパフォーマンス計測テストにより、SRAM107へ格納されるLBA領域ごとに計測されたログデータ(計測結果)が更新される。これ以後、RAIDコントローラ111は、この更新されたSRAM107内の計測結果(例えば、図7に示したような判定結果704)に基づいて、2つあるハードディスクからパフォーマンスが最適なものを選択してデータの読み出しを行う。
【0134】
本実施形態では、磁気ディスク装置の交換が無い場合でも、S.M.A.R.T.情報の代替処置を施された不良セクタの数をモニタリングしておき、増分が検出された時点で(トリガとして)、前述のパフォーマンスの計測を行うように構成する。即ち、いずれかの磁気ディスク装置に不良セクタが発生して代替処理が発生したことを検知したことを契機として、前述のパフォーマンスの計測を行うように構成する。このような構成により、ミラーリングシステムを構成する磁気ディスクにおいて不良セクタが増加した場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス(アクセススピード)の低下を抑えることができる。
【0135】
〔第4実施形態〕
上記第3実施形態においては、不良セクタが発生(代替セクタが発生)したことに応じて、パフォーマンス計測を行うものであった。第4実施形態は、パフォーマンス計測を行うことなく、LBA毎にアクセススピードを取得するものである。
【0136】
一般的に、不良セクタの数が大きくなればなるほど、連続したアドレスにデータを書き込めない可能性が高まるので、アクセススピードが低くなる傾向がある。それは、不良セクタが発生した場合、連続したアドレスの一部に抜け(不良セクタ)が生じ、アドレスの切り替えが必要になるからである。そこで、第4実施形態は不良セクタの数とアクセススピードの相関関係を予め関数としてRAIDコントローラ111に保持させておき、実際に発生した不良セクタの数を関数の代入することで、LBA毎のアクセススピードを取得する。したがって、第4実施形態によれば、HDD1及びHDD2にデータをwrite/readすることによりパフォーマンス計測をすることなく、不良セクタ数からアクセススピードを取得することができる。よって、第4実施形態によれば、パフォーマンス計測を実行するのに要する時間を省略することができる。
【0137】
なお、上記実施形態では、本発明の制御装置を、MFPに適用する場合について説明したが、ミラーリング構成の複数の記憶装置を有する装置であればどのような装置に適用してもよい。例えば、パーソナルコンピュータやワークステーション等の一般的なコンピュータに適用してもよいし、ハードディスクレコーダ等に適用してもよい。
【0138】
さらに、記憶装置は、磁気ディスクに限定されるものではなく、磁気ディスク以外の記憶装置であっても本発明は適用可能である。また、ミラーリングを構成する記憶装置は、3つ以上であってもよい。
【0139】
また、図2に示したパフォーマンス計測テストでは、記憶装置に対してデータの書き込み及び読み出しに係わるパフォーマンスを計測する構成であったが、読み出しに係わるパフォーマンスのみを計測する構成であってもよい。
【0140】
さらに、上記各実施形態の組み合わせも全て本発明に含まれるものである。
【0141】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0142】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0143】
以上説明したように、本実施形態によれば、ミラーリングシステムを構成する磁気ディスク装置として、同じ回転数、同じ記憶容量のプラッター(ディスクの円盤状の磁性体)を使用している磁気ディスク装置であっても、データアクセスの性能が異なるものが装着された場合においても、ミラーリングシステムとしてデータのwrite/readパフォーマンスの低下を抑えることができる。
【0144】
以下、図17に示すメモリマップを参照して、本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体のメモリマップの構成について説明する。
【0145】
図17は、本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体(記憶媒体)のメモリマップを説明する図である。
【0146】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0147】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0148】
本実施形態における図2,図9,図10,図12,図14,図16に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0149】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0150】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0151】
しがたって、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0152】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0153】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0154】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやFTPサーバ等も本発明の請求項に含まれるものである。
【0155】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0156】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0157】
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0158】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0159】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【0160】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【0161】
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【0162】
【図1】本発明の一実施形態を示す磁気ディスク制御装置を適用可能なミラーリング構成の複数の磁気ディスクを備えたMFPコントローラの構成を示すブロック図である。
【図2】本実施形態の磁気ディスク制御装置におけるパフォーマンス計測テストの一例を示すフローチャートである。
【図3】図2に示したパフォーマンス計測を行う際のRAIDコントローラ111とハードディスク116,117間の制御信号を示す図である。
【図4】図3に示した制御信号のタイミングチャートである。
【図5】図3に示した制御信号のタイミングチャートである。
【図6】図2に示したパフォーマンス計測を行う際にwrite/readする具体的なテストデータを示した図である。
【図7】図2に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ(パフォーマンス計測結果)をSRAM107に格納するときの形式を示す図である。
【図8】SRAM107内のログデータに基づいてRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクHDD1(116),HDD2(117)のうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【図9】プリント処理中のハードディスクへのアクセス時において2台あるディスクのどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。
【図10】2台有るミラーリングハードディスクのうち、片方に故障が発生しサービスマンによる交換作業が行われたときの処理を示したフローチャートである。
【図11】SRAM107内のログデータを更新した後にRAIDコントローラ111がLBA毎にミラーリング構成のハードディスクのうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【図12】SRAM107内のログデータを更新した後のプリント処理中のハードディスクへのアクセス時において2台あるハードディスクHDD1(116),HDD3(不図示)のどちらの1台を選択して読み出しを行う処理の実例を示すフローチャートである。
【図13】故障が発生したセクタと代替のセクタのとの位置関係を示す図である。
【図14】不具合を防ぐために、ディスクの通電時間が所定の長さを超えて使用を続けようとしたときに定期的なパフォーマンス計測を行う処理を示すフローチャートである。
【図15】本実施形態で使用される不良セクタに関するS.M.A.R.T.情報のIDとその項目を示す図である。
【図16】S.M.A.R.T.情報を用いてパフォーマンス計測を行う処理を示すフローチャートである。
【図17】本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0163】
101 ネットワークインタフェース(Network I/F)
102 DRAM
103 CPU
104 ROM
105 RIP制御部
106 圧縮・伸張module
107 SRAM
108 操作部I/F
109 操作部
110 ATA I/Fコントローラ
111 RAIDコントローラ
112 CMD解析部
113 I/Oコントローラ
114 DMA ch1
115 DMA ch2
116 HDD1
117 HDD2
118 プリンタ(Printer)画像処理部
119 プリンタエンジン(Printer Engine)I/F
120 プリンタエンジン(Printer Engine)
121 スキャナ(Scanner)画像処理部
122 スキャナ(Scanner)I/F
123 スキャナ(Scanner)
【特許請求の範囲】
【請求項1】
ミラーリングシステムを構成する第1の記憶装置及び第2の記憶装置を制御する制御装置であって、
前記第1の記憶装置及び前記第2の記憶装置の双方に書き込まれるべきデータを受信する受信手段と、
前記受信手段が特定データを受信した場合に、該特定データを前記第1の記憶装置に設けられた第1記憶領域及び前記第2の記憶装置に設けられた第2記憶領域の双方に書き込む書き込み手段と、
前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得する取得手段と、
前記取得手段により取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出し手段と、
を備えたことを特徴とする制御装置。
【請求項2】
前記アクセススピードは、データの書き込み及び読み出しに係わるパフォーマンスであることを特徴とする請求項1に記載の制御装置。
【請求項3】
前記第1の記憶装置及び前記第2の記憶装置のいずれかが交換された場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項1又は2に記載の制御装置。
【請求項4】
前記第1の記憶装置及び前記第2の記憶装置のいずれかへの通電時間が所定時間を経過した場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項1又は2に記載の制御装置。
【請求項5】
前記第1の記憶装置及び前記第2の記憶装置のいずれかに不良セクタが発生した場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項1又は2に記載の制御装置。
【請求項6】
前記第1の記憶装置及び前記第2の記憶装置は、磁気ディスク装置であることを特徴とする請求項1乃至5のいずれか1項に記載の制御装置。
【請求項7】
ミラーリングシステムを構成する第1の記憶装置及び第2の記憶装置を制御する制御装置における制御方法であって、
受信手段が、前記第1の記憶装置及び前記第2の記憶装置に書き込まれるべきデータを受信する受信ステップと、
書き込み手段が、前記受信ステップにて特定データを受信した場合に、該特定データを前記第1の記憶装置に設けられた第1記憶領域及び前記第2の記憶装置に設けられた第2記憶領域の双方に書き込む書き込みステップと、
取得手段が、前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得する取得ステップと、
読み出し手段が、前記取得ステップにて取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出しステップと、
を備えたことを特徴とする制御方法。
【請求項8】
前記アクセススピードは、データの書き込み及び読み出しに係わるパフォーマンスであることを特徴とする請求項7に記載の制御方法。
【請求項9】
前記第1の記憶装置及び前記第2の記憶装置のいずれかが交換された場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項7又は8に記載の制御方法。
【請求項10】
前記第1の記憶装置及び前記第2の記憶装置のいずれかへの通電時間が所定時間を経過した場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項7又は8に記載の制御方法。
【請求項11】
前記第1の記憶装置及び前記第2の記憶装置のいずれかに不良セクタが発生した場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項7又は8に記載の制御方法。
【請求項12】
請求項7乃至11のいずれか1項に記載の制御方法を、コンピュータに実行させるためのプログラム。
【請求項1】
ミラーリングシステムを構成する第1の記憶装置及び第2の記憶装置を制御する制御装置であって、
前記第1の記憶装置及び前記第2の記憶装置の双方に書き込まれるべきデータを受信する受信手段と、
前記受信手段が特定データを受信した場合に、該特定データを前記第1の記憶装置に設けられた第1記憶領域及び前記第2の記憶装置に設けられた第2記憶領域の双方に書き込む書き込み手段と、
前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得する取得手段と、
前記取得手段により取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出し手段と、
を備えたことを特徴とする制御装置。
【請求項2】
前記アクセススピードは、データの書き込み及び読み出しに係わるパフォーマンスであることを特徴とする請求項1に記載の制御装置。
【請求項3】
前記第1の記憶装置及び前記第2の記憶装置のいずれかが交換された場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項1又は2に記載の制御装置。
【請求項4】
前記第1の記憶装置及び前記第2の記憶装置のいずれかへの通電時間が所定時間を経過した場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項1又は2に記載の制御装置。
【請求項5】
前記第1の記憶装置及び前記第2の記憶装置のいずれかに不良セクタが発生した場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項1又は2に記載の制御装置。
【請求項6】
前記第1の記憶装置及び前記第2の記憶装置は、磁気ディスク装置であることを特徴とする請求項1乃至5のいずれか1項に記載の制御装置。
【請求項7】
ミラーリングシステムを構成する第1の記憶装置及び第2の記憶装置を制御する制御装置における制御方法であって、
受信手段が、前記第1の記憶装置及び前記第2の記憶装置に書き込まれるべきデータを受信する受信ステップと、
書き込み手段が、前記受信ステップにて特定データを受信した場合に、該特定データを前記第1の記憶装置に設けられた第1記憶領域及び前記第2の記憶装置に設けられた第2記憶領域の双方に書き込む書き込みステップと、
取得手段が、前記第1記憶領域及び前記第2記憶領域のアクセススピードを取得する取得ステップと、
読み出し手段が、前記取得ステップにて取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出しステップと、
を備えたことを特徴とする制御方法。
【請求項8】
前記アクセススピードは、データの書き込み及び読み出しに係わるパフォーマンスであることを特徴とする請求項7に記載の制御方法。
【請求項9】
前記第1の記憶装置及び前記第2の記憶装置のいずれかが交換された場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項7又は8に記載の制御方法。
【請求項10】
前記第1の記憶装置及び前記第2の記憶装置のいずれかへの通電時間が所定時間を経過した場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項7又は8に記載の制御方法。
【請求項11】
前記第1の記憶装置及び前記第2の記憶装置のいずれかに不良セクタが発生した場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項7又は8に記載の制御方法。
【請求項12】
請求項7乃至11のいずれか1項に記載の制御方法を、コンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2010−26961(P2010−26961A)
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2008−190470(P2008−190470)
【出願日】平成20年7月24日(2008.7.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願日】平成20年7月24日(2008.7.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]