(57)【要約】      （修正有）【課題】ミラーリングにおいて、エラーが発生した場合でも、マスタとして使用したい記憶装置を優先的にマスタとして使用できるため、記憶装置へのアクセス性能の低下を抑制することができる情報処理装置を提供する。【解決手段】第１及び第２記憶装置をミラーリングして使用する情報処理装置１００であって、第１記憶装置１０９を、ミラーリングされる記憶装置であるマスタとしているときに、第１記憶装置へのアクセスでエラーが発生すると第２記憶装置１１０にアクセスし、そのアクセスに成功するとマスタを第２記憶装置に切替える。この切替えの後、第２記憶装置へのアクセス回数が所定値を超えると、マスタを第１記憶装置に切替える。【選択図】図２
2018142274.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス手段と、
前記アクセス手段によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え手段と、
前記切替え手段による切替えの後、前記第２記憶装置へのアクセス回数が所定値を超えると、前記マスタを前記第１記憶装置に切替えるように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス手段と、
前記アクセス手段によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え手段と、
前記切替え手段による切替えの後、前記第１記憶装置へのアクセスに成功すると前記マスタを前記第１記憶装置に切替えるように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項３】
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス手段と、
前記アクセス手段による前記第２記憶装置へのアクセスの後、前記第１記憶装置へのアクセスに失敗すると、前記マスタを前記第２記憶装置に切替えるように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項４】
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス手段と、
前記アクセス手段によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え手段と、
前記切替え手段による切替えの後、前記マスタの切替指示を受け取ると、前記マスタを前記第１記憶装置に切替えるように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項５】
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに書き込み命令を受け取ると、前記第１及び第２記憶装置に同じデータを書き込む書き込み手段と、
前記書き込み手段によるデータの書込みで前記第１記憶装置でエラーが発生すると前記マスタを前記第２記憶装置に切替える切替え手段と、
前記切替え手段による切替えの後、前記データの前記第１記憶装置への書込みに成功すると前記マスタを前記第１記憶装置に切替えるように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項６】
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第１記憶装置へのリトライ回数を計数する計数手段と、
前記計数手段による計数値が所定値を超えると、前記マスタを前記第２記憶装置に切替えるように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項７】
前記アクセスは、前記第１或いは第２記憶装置からデータを読み込むためのアクセスであることを特徴とする請求項１乃至４及び６のいずれか１項に記載の情報処理装置。
【請求項８】
前記マスタとなる記憶装置は、優先ディスクを指示する情報で指定されることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記第１及び第２記憶装置は、ＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）とハードディスクドライブのいずれかを含むことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記マスタとして指示される記憶装置は、前記ＳＳＤであることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
第１及び第２記憶装置をミラーリングして使用する情報処理装置を制御する制御方法であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス工程と、
前記アクセス工程によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え工程と、
前記切替え工程による切替えの後、前記第２記憶装置へのアクセス回数が所定値を超えると、前記マスタを前記第１記憶装置に切替えるように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１２】
第１及び第２記憶装置をミラーリングして使用する情報処理装置を制御する制御方法であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス工程と、
前記アクセス工程によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え工程と、
前記切替え工程による切替えの後、前記第１記憶装置へのアクセスに成功すると前記マスタを前記第１記憶装置に切替えるように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１３】
第１及び第２記憶装置をミラーリングして使用する情報処理装置を制御する制御方法であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス工程と、
前記アクセス工程による前記第２記憶装置へのアクセスの後、前記第１記憶装置へのアクセスに失敗すると、前記マスタを前記第２記憶装置に切替えるように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１４】
第１及び第２記憶装置をミラーリングして使用する情報処理装置を制御する制御方法であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス工程と、
前記アクセス工程によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え工程と、
前記切替え工程による切替えの後、前記マスタの切替指示を受け取ると、前記マスタを前記第１記憶装置に切替えるように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１５】
第１及び第２記憶装置をミラーリングして使用する情報処理装置を制御する制御方法であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに書き込み命令を受け取ると、前記第１及び第２記憶装置に同じデータを書き込む書き込み工程と、
前記書き込み工程によるデータの書込みで前記第１記憶装置でエラーが発生すると前記マスタを前記第２記憶装置に切替える切替え工程と、
前記切替え工程による切替えの後、前記データの前記第１記憶装置への書込みに成功すると前記マスタを前記第１記憶装置に切替えるように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１６】
第１及び第２記憶装置をミラーリングして使用する情報処理装置を制御する制御方法であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第１記憶装置へのリトライ回数を計数する計数工程と、
前記計数工程による計数値が所定値を超えると、前記マスタを前記第２記憶装置に切替えるように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１７】
コンピュータを、請求項１乃至１０のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）の普及に伴い、補助記憶装置としてＳＳＤが画像形成装置に具備されるようになってきている。このＳＳＤは、ＨＤＤ（ハードディスクドライブ）等の従来の補助記憶装置と比較すると、アクセス性能、発熱、動作音、耐衝撃性能、消費電力、サイズといった点で優れているが、一方で書き換え回数の制限や容量、コストといった点で劣る部分もある。尚、これ以降、ＨＤＤ及びＳＳＤを総称してディスク或いはドライブと表現するが、特に明記しない限り、どちらも含みうるのものとする。
【０００３】
ディスクのミラーリング装置は、２台のディスクが同時に故障することが少ないことを利用した耐故障性を向上させる装置である。このようなミラーリング装置では通常、アクセス性能と耐故障性を期待し、同等の性能を持つ補助記憶装置を装着する。しかし、画像形成装置等においては、コストの観点から、例えばＨＤＤとＳＳＤのように、互いに異なる性能の補助記憶装置を組み合わせて装着する場合がある。
【０００４】
ミラーリング装置では、主として使用するマスタドライブと、副として使用するバックアップドライブがあり、読み込みはマスタドライブから行い、書き込みは両ドライブに行う。そして、マスタドライブに問題があった場合、主副を入れ替えて動作する。例えば、ＳＳＤをマスタドライブ、ＨＤＤをバックアップドライブとして使用した場合を想定すると、通常は、マスタドライブであるＳＳＤからの高速な読み込みが行える。もし、マスタドライブからの読み込み、或いは書き込み時にエラーが発生した場合には、マスタドライブをＨＤＤに切り替える。これにより、以後の読み込みはＨＤＤから行われ、アクセス性能は低下するものの、動作を継続することができる。
【０００５】
特許文献１は、故障したＳＳＤを交換し、ＨＤＤからＳＳＤにデータをコピーしてミラーリングの再構築（リビルド）を行う際、コピーが完了したデータに関しては、より速いＳＳＤから読み込むことで、性能低下を軽減する方法を記載している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５５０５３２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
読み込み、或いは書き込み時のエラーには、リトライすることで復旧する軽度のエラーから、ドライブが全く応答しなくなる重度のものまで様々なタイプが存在する。ＳＳＤをマスタドライブ、ＨＤＤをバックアップドライブとしたとき、軽度のエラーの場合であっても、ＳＳＤは正常動作が可能であるにも関わらず、ＨＤＤがマスタドライブに切り替わってしまう。このため、これ以降、性能が劣化した状態で動作を継続することになり、ユーザが不便を被る場合がある。
【０００８】
本発明の目的のは、上記従来技術の課題を解決することにある。
【０００９】
本発明の目的は、ミラーリングにおいて、エラーが発生した場合でも、マスタとして使用したい記憶装置を優先的にマスタとして使用できる技術を提供することにある。
【００１０】
本発明は、記憶装置の効率的かつ効果的な管理を実現することをさらに別の目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
第１及び第２記憶装置をミラーリングして使用する情報処理装置であって、
前記第１記憶装置を、ミラーリングされる記憶装置であるマスタとしているときに、前記第１記憶装置へのアクセスでエラーが発生すると前記第２記憶装置にアクセスするアクセス手段と、
前記アクセス手段によるアクセスに成功すると前記マスタを前記第２記憶装置に切替える切替え手段と、
前記切替え手段による切替えの後、前記第２記憶装置へのアクセス回数が所定値を超えると、前記マスタを前記第１記憶装置に切替えるように制御する制御手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ミラーリングにおいて、エラーが発生した場合でも、マスタとして使用したい記憶装置を優先的にマスタとして使用できるため、記憶装置へのアクセス性能の低下を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態１に係るミラーリング装置の構成を説明するブロック図。
【図２】実施形態１に係るミラーリング装置において、マスタディスクを切り替えるシーケンスを説明するシーケンス図。
【図３】実施形態１に係るミラーリング装置のＣＰＵによる処理を説明するフローチャート。
【図４】実施形態２に係るミラーリング装置において、マスタディスクを切り替えるシーケンスを説明するシーケンス図。
【図５】実施形態２に係るミラーリング装置のＣＰＵによる処理を説明するフローチャート。
【図６】実施形態３に係るミラーリング装置において、マスタディスクを切り替えるシーケンスを説明するシーケンス図。
【図７】実施形態３に係るミラーリング装置のＣＰＵによる処理を説明するフローチャート。
【図８】実施形態４に係るミラーリング装置において、マスタディスクを切り替えるシーケンスを説明するシーケンス図。
【図９】実施形態４に係るミラーリング装置のＣＰＵによる処理を説明するフローチャート。
【図１０】実施形態５に係るミラーリング装置において、マスタディスクを切り替えるシーケンスを説明するシーケンス図。
【図１１】実施形態５に係るミラーリング装置のＣＰＵによる処理を説明するフローチャート。
【図１２】実施形態６に係るミラーリング装置において、マスタディスクを切り替えるシーケンスを説明するシーケンス図。
【図１３】実施形態６に係るミラーリング装置のＣＰＵによる処理を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、以下の実施形態では、実施形態に係る情報処理装置として、ＳＳＤとＨＤＤの組み合わせたミラーリングを行うミラーリング装置を例に説明するが、本発明はその限りではない。
【００１５】
［実施形態１］
図１は、本発明の実施形態１に係るミラーリング装置１００の構成を説明するブロック図である。
【００１６】
このミラーリング装置１００は、ＲＯＭ１０２或いは、例えばハードディスクなどの不揮発性記憶装置１０９からプログラムをＲＡＭ１０３に展開し、その展開したプログラムを実行するＣＰＵ１０１を備える。ＣＰＵ１０１は、バス１１１に接続される各デバイスを総括的に制御する。ここで不揮発性記憶装置は複数台接続可能であり、オプションとして不揮発性記憶装置１１０を拡張可能である。尚、不揮発性記憶装置１０９，１１０はそれぞれ、ディスク制御部１０６，１０７によって読み書きの制御が行われる。ここで不揮発性記憶装置１０９，１１０はミラーリングで使用され、それぞれに同一のデータが書かれるように制御されるが、どちらかがマスタとなっており、他方はスレーブとなっている。マスタとスレーブは故障や着脱等により入れ替わるため、これ以降、マスタとスレーブと表現した場合は、不揮発性記憶装置１０９，１１０のいずれかを指すものとする。尚、本実施形態においてマスタとは、ミラーリングされるボリュームまたはストレージ・システム指すものとする。スレーブとは、マスタのミラーリング先となるボリュームまたはストレージ・システムを指すものとする。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア、不揮発性記憶装置１０９，１１０にアクセスするデータのバッファ等として機能する。ミラーリング装置１００は、ディスク制御部１０４を介してホスト１０８と接続され、不揮発性記憶装置１０９，１１０に読み書きするデータの授受を行う。データ転送部１０５は、ディスク制御部１０４，１０６，１０７と接続され、これらディスク制御部の間でのデータ転送を制御する。尚、本実施形態１では、ホスト１０８及び不揮発性記憶装置１０９，１１０は、ミラーリング装置１００の外部に接続されているが、ミラーリング装置１００に包含していても構わない。
【００１７】
次に本実施形態１に係る特徴的な動作の一つである、不揮発性記憶装置１０９，１１０からのデータの読み込みでエラーになった際、マスタとなる記憶装置を、予め指定された記憶装置に切り替える処理について説明する。尚、以降の動作は、明記しない限り、ミラーリング装置１００の動作は、ＣＰＵ１０１が制御するものとする。またホスト１０８をより詳細に、ソフトウェアで構成されるディスクドライバとハードウェアで構成されるディスク制御部（共に図示しない）と表記する。また以降の説明では、不揮発性記憶装置を単にディスクと呼ぶ場合もある。
【００１８】
図２は、実施形態１に係るミラーリング装置１００において、マスタディスクを切り替えるシーケンスを説明するシーケンス図である。
【００１９】
ミラーリング装置１００は、不揮発性記憶装置１０９，１１０のどちらがマスタであるかを示す情報を保持している。以下のシーケンス図では、便宜的に、マスタディスクとなっている状態を太線で示している。
【００２０】
２０１で、ホスト１０８はディスクドライバから、予め決定した優先ディスクの情報をミラーリング装置１００に送信する。この優先ディスクの情報は、不揮発性記憶装置１０９，１１０のどちらかを指定するものでも良く、或いは、その性能（アクセス速度や寿命等）を示すものでもいい。ここでは仮に、不揮発性記憶装置１０９が優先ディスクとして指定されたとする。
【００２１】
次に２０２で、ホスト１０８はミラーリング装置１００に対し、読み込み命令を発行する。これにより２０３で、ミラーリング装置１００は、読み込み命令（ＲｅａｄＡ）をマスタディスクである不揮発性記憶装置１０９に発行する。このとき２０４で、不揮発性記憶装置１０９で何らかのエラーが発生すると、ミラーリング装置１００は、２０５で、その情報をホスト１０８に伝える。そして２０６で、ミラーリング装置１００は、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切り替える。
【００２２】
このときホスト１０８はエラーを受信したため、２０７で、再度、読み込み命令を発行する。これによりミラーリング装置１００は、切り替わったマスタディスクである不揮発性記憶装置１１０からデータを読込み、２０９で、ホスト１０８に送信する。
【００２３】
このときミラーリング装置１００は、優先ディスクとマスタディスクが異なっているため、２１０で、内部で保持しているリトライ回数（アクセス回数）に１を加える。そして２１１で、そのリトライ回数と予め決められた上限値とを比較し、リトライ回数が上限値よりも小さい場合は、２１２で、マスタディスクを不揮発性記憶装置１０９に切り替える。
【００２４】
図３は、実施形態１に係るミラーリング装置１００のＣＰＵ１０１による処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ１０１がＲＯＭ１０２或いは不揮発性記憶装置１０９からＲＡＭ１０３に展開したプログラムを実行することにより達成される。
【００２５】
まずＳ３０１でＣＰＵ１０１は、ホスト１０８から優先ディスクを指定する情報を受信する。次にＳ３０２に進みＣＰＵ１０１は、ホスト１０８からリード命令を受け取ると、Ｓ３０１で受信した情報で指定されたマスタディスクである不揮発性記憶装置１０９からデータを読み取り、その読み取りでエラーが発生したかどうか判定する。ここでエラーが発生していないときは、そのままこの処理を終了するが、そうでないときはＳ３０３に進み、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切替える。これは図２の２０６に相当している。
【００２６】
次にＳ３０４に進みＣＰＵ１０１は、ホスト１０８からのリード命令により不揮発性記憶装置１１０からデータを読み取り、その読み取りでエラーが発生したかどうか判定する。ここでエラーが発生したときは、新たにマスタとした不揮発性記憶装置１１０でもエラーが発生するため、メンテナンス等の修理が必要と判断してこの処理を終了する。一方、不揮発性記憶装置１１０でリードエラーが発生しないときはＳ３０５に進みＣＰＵ１０１は、優先ディスクとマスタディスクが異なっている状態での読み取り回数を計数するためにリトライ回数に１を加算する（図２の２１０）。そしてＳ３０６でＣＰＵ１０１は、その回数が上限値を超えているかどうか判定する。ここで上限値を超えていないときは、この処理を終了するが、上限値を超えているときはＳ３０７に進みＣＰＵ１０１は、マスタディスクを、不揮発性記憶装置１１０から不揮発性記憶装置１０９に切替える。これは図２の２１２に相当している。
【００２７】
以上説明したように実施形態１によれば、優先ディスクとして指定された記憶装置でエラーが発生すると、マスタの記憶装置を他の記憶装置に切替え、その切替えた記憶装置での読み取り回数が所定値に到達すると元の記憶装置をマスタに戻す。これにより、優先ディスクとして指定された記憶装置を優先的に使用してミラーリングを行うことができる。尚、ここではデータの読み取りを例に説明したが、データの書込みの場合も同様にできる。
【００２８】
［実施形態２］
次に本発明の実施形態２を説明する。この実施形態２では、記憶装置からのデータの読み込みでエラーが発生すると、予め指定されたディスクへアクセスを試み、成功したらマスタディスクを切り替える動作について説明する。尚、実施形態２に係るミラーリング装置１００の構成は、前述の実施形態１と同じであるため、その説明を省略する。
【００２９】
図４は、実施形態２に係るミラーリング装置１００において、マスタディスクを切り替えるシーケンスを説明するシーケンス図である。尚、図４において、前述の図２と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００３０】
図４において、図２と同様に２０１〜２０９の動作を行った後、４０１で、ミラーリング装置１００は、再度、優先ディスクとして指定されている不揮発性記憶装置１０９からのデータの読み込みを行う。ここで４０２のように、データの読み込みに成功した場合は、前回のエラーは、軽度なエラーであったと判定し、４０３で、マスタディスクを、不揮発性記憶装置１１０から、元の不揮発性記憶装置１０９に切り替える。一方、４０４のように、データの読み込みに失敗したときは、マスタディスクを不揮発性記憶装置１１０にした状態で、動作を継続する。
【００３１】
図５は、実施形態２に係るミラーリング装置１００のＣＰＵ１０１による処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ１０１がＲＯＭ１０２或いは不揮発性記憶装置１０９からＲＡＭ１０３に展開したプログラムを実行することにより達成される。
【００３２】
まずＳ５０１でＣＰＵ１０１は、ホスト１０８から優先ディスクを指定する情報を受信する。次にＳ５０２に進みＣＰＵ１０１は、ホスト１０８からリード命令を受け取ると、Ｓ５０１で受信した情報で指定されたマスタディスクである不揮発性記憶装置１０９からデータを読み取り、その読み取りでエラーが発生したかどうか判定する。ここでエラーが発生していないときは、そのままこの処理を終了するが、そうでないときはＳ５０３に進み、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切替える。これは図４の４０３に相当している。
【００３３】
次にＳ５０４に進みＣＰＵ１０１は、優先ディスクとして指定されている不揮発性記憶装置１０９からデータを読み出し、リードエラーが発生したかどうか判定する。ここでリードエラーが発生しないときはＳ５０５に進みＣＰＵ１０１は、前回のエラーは軽度なエラーであったと判定して、マスタディスクを不揮発性記憶装置１１０から、元の不揮発性記憶装置１０９に切り替える。これは図４の４０３に該当している。またＳ５０４でリードエラーが発生したときは、Ｓ５０３で切り替えたマスタディスクのままとする。
【００３４】
以上説明したように実施形態２によれば、優先ディスクとして指定された記憶装置でエラーが発生したときは、マスタディスクを他の記憶装置に切替える。そして、優先ディスクとして指定された記憶装置に対して再度アクセスし、それに成功した時は、優先ディスクとして指定された記憶装置をマスタディスクに戻すことにより、優先ディスクとして指定された記憶装置を優先的にマスタとして使用できる。
【００３５】
［実施形態３］
次に本発明の実施形態３を説明する。この実施形態３では、記憶装置からのデータ読み込みでエラーになると、一旦、スレーブディスクへの読み込み結果をホスト１０８に返す。そしてその後、再度、マスタディスクへアクセスを試み、失敗したらマスタディスクを切り替える動作について説明する。尚、実施形態３に係るミラーリング装置１００の構成は、前述の実施形態１と同じであるため、その説明を省略する。
【００３６】
図６は、実施形態３に係るミラーリング装置１００において、マスタディスクを切り替えるシーケンスを説明するシーケンス図である。尚、図６において、前述の図２と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００３７】
ここでは図２と同様に２０１〜２０４の動作を行った後、６０１で、ミラーリング装置１００は、不揮発性記憶装置１１０からのデータの読み込みを行って、その結果をホスト１０８に送信する。その後、６０２で、ラーリング装置１００は、再度、優先ディスクとして指定されている不揮発性記憶装置１０９からデータの読み込みを行う。ここで６０３のように、読み込みに失敗した場合は、そのエラーは重度のエラーであると判定し、６０４で、マスタディスクを不揮発性記憶装置１１０に切り替える。一方、６０５のように、不揮発性記憶装置１０９からの読み込みに成功した場合は、前回のエラーは軽度なエラーであったと判定して、不揮発性記憶装置１０９をマスタディスクとしたままで、動作を継続する。
【００３８】
図７は、実施形態３に係るミラーリング装置１００のＣＰＵ１０１による処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ１０１がＲＯＭ１０２或いは不揮発性記憶装置１０９からＲＡＭ１０３に展開したプログラムを実行することにより達成される。
【００３９】
まずＳ７０１でＣＰＵ１０１は、ホスト１０８から優先ディスクを指定する情報を受信する。次にＳ７０２に進みＣＰＵ１０１は、ホスト１０８からリード命令を受け取ると、Ｓ７０１で受信した情報で指定されたマスタディスクである不揮発性記憶装置１０９からデータを読み取り、その読み取りでエラーが発生したかどうか判定する。ここでエラーが発生していないときは、そのままこの処理を終了するが、そうでないときはＳ７０３に進み、不揮発性記憶装置１１０からデータを読み取る。これは図６の６０２に相当している。
【００４０】
次にＳ７０４に進みＣＰＵ１０１は、不揮発性記憶装置１１０からのデータの読み取りでエラーが発生したかどうか判定する。エラーが発生したときは、不揮発性記憶装置１０９，１１０でエラーが発生したため、この処理を終了して、警告などの表示を行う。一方、不揮発性記憶装置１１０からのデータの読み取りでエラーが発生しないときはＳ７０５に進みＣＰＵ１０１は、指定されたマスタディスクである不揮発性記憶装置１０９から、再度、データを読み取る。そしてこのとき読み込みエラーが発生した場合は、そのエラーは重度のエラーであると判定してＳ７０６に進みＣＰＵ１０１は、マスタディスクを不揮発性記憶装置１１０に切り替えて、この処理を終了する。これは図６の６０４に該当している。一方、Ｓ７０５で読み込みエラーが発生しない場合は、前回の不揮発性記憶装置１０９でのエラーは軽度のエラーであると判定してマスタディスクの切り替えを行うことなく、この処理を終了する。
【００４１】
以上説明したように実施形態３によれば、優先ディスクとして指定された記憶装置でエラーが発生したときは、マスタディスクを切り替えることなく他の記憶装置からデータを読み出す。そして、優先ディスクとして指定された記憶装置に対して再度アクセスし、それに成功した時は、優先ディスクとして指定された記憶装置をマスタディスクのままとし、エラーが発生したときに初めて、マスタディスクを他の記憶装置に切替える。これにより、優先ディスクとして指定された記憶装置を優先的にマスタとして使用できる。
【００４２】
［実施形態４］
次に本発明の実施形態４を説明する。この実施形態４では、記憶装置からのデータ読み込みでエラーになると、ホストがマスタディスクを確認し、優先ディスクと異なっていたらマスタディスクを切り替える動作について説明する。尚、実施形態４に係るミラーリング装置１００の構成は、前述の実施形態１と同じであるため、その説明を省略する。
【００４３】
図８は、実施形態４に係るミラーリング装置１００において、マスタディスクを切り替えるシーケンスを説明するシーケンス図である。尚、図８において、前述の図２と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００４４】
ここでは図２と同様に２０１〜２０９の動作を行った後、８０１で、ホスト１０８はミラーリング装置１００に対し、マスタディスクの確認を行う。ここでホスト１０８は、現在、マスタディスクとなっている不揮発性記憶装置１１０が優先ディスクでないと判定すると、８０２で、ミラーリング装置１００に対して、マスタディスクの切替を指示する。これによりミラーリング装置１００は、８０３で、マスタディスクを不揮発性記憶装置１１０から不揮発性記憶装置１０９に切り替える。尚、８０１〜８０３の処理は、自動的に行なってもいいし、８０１での確認の内容をホスト１０８の表示装置（不図示）に表示した上で、ホスト１０８のユーザが切替を指示するようにしても良い。
【００４５】
図９は、実施形態４に係るミラーリング装置１００のＣＰＵ１０１による処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ１０１がＲＯＭ１０２或いは不揮発性記憶装置１０９からＲＡＭ１０３に展開したプログラムを実行することにより達成される。ここでは図８の８０１以降の処理を示している。
【００４６】
まずＳ９０１でＣＰＵ１０１は、ホスト１０８からマスタディスクの確認を受信するとＳ９０２に進みＣＰＵ１０１は、現在のマスタディスクを判別して、ホスト１０８に応答する。そしてＳ９０３に進みＣＰＵ１０１は、ホスト１０８からマスタディスクの切替指示を受信したかどうか判定する。ここでマスタディスクの切替指示を受信するとＳ９０４に進むが、そうでないときは、そのまま処理を終了する。Ｓ９０４でＣＰＵ１０１は、マスタディスクを、不揮発性記憶装置１１０から不揮発性記憶装置１０９に切り替えて、この処理を終了する。これは図８の８０３に相当している。
【００４７】
以上説明したように実施形態４によれば、マスタの記憶装置でエラーが発生したときは他の記憶装置に切替えるとともに、その切替えた記憶装置が優先ディスクとして指定された記憶装置でないときは、ホストからの指示によりマスタの記憶装置を切り替える。これにより、優先ディスクとして指定された記憶装置を優先的にマスタとして使用できる。
【００４８】
［実施形態５］
次に本発明の実施形態５を説明する。この実施形態５では、記憶装置へのデータの書き込みでエラーになった場合は、予め指定されたディスクへアクセスを試み、それに成功するとマスタディスクを切り替える動作について説明する。尚、実施形態５に係るミラーリング装置１００の構成は、前述の実施形態１と同じであるため、その説明を省略する。
【００４９】
図１０は、実施形態５に係るミラーリング装置１００において、マスタディスクを切り替えるシーケンスを説明するシーケンス図である。尚、図１０において、前述の図２と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００５０】
２０１で、ホスト１０８は、予め決定した優先ディスクの情報をミラーリング装置１００に送信して後、１００１で、ホスト１０８はミラーリング装置１００に対して書き込み命令を発行する。これにより１００２で、ミラーリング装置１００は、書き込み命令を不揮発性記憶装置１０９，１１０の両方に発行する。ここで１００３のように、不揮発性記憶装置１０９への書き込みが失敗し、不揮発性記憶装置１１０への書き込みが成功したとするとミラーリング装置１００はホスト１０８に成功を送信する。そして１００４で、ミラーリング装置１００は、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切り替える。その後、１００５でミラーリング装置１００は、不揮発性記憶装置１０９への書き込み失敗して不揮発性記憶装置１１０に記憶されたデータを不揮発性記憶装置１１０から読み込み、そのデータを不揮発性記憶装置１０９に、再度、書き込む処理を行う。ここで１００６のように、不揮発性記憶装置１０９への書き込みに成功すると、前回のエラーは軽度なエラーであったと判定して、１００７で、マスタディスクを不揮発性記憶装置１１０から不揮発性記憶装置１０９に切り替える。一方、１００８のように、不揮発性記憶装置１０９への書き込みに失敗したときは、マスタディスクを切り替えることなく、そのまま動作を継続する。
【００５１】
図１１は、実施形態５に係るミラーリング装置１００のＣＰＵ１０１による処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ１０１がＲＯＭ１０２或いは不揮発性記憶装置１０９からＲＡＭ１０３に展開したプログラムを実行することにより達成される。
【００５２】
まずＳ１１０１でＣＰＵ１０１は、ホスト１０８から優先ディスクを指定する情報を受信する。次にＳ１１０２に進みＣＰＵ１０１は、ホスト１０８からデータの書き込みを受け取ると、不揮発性記憶装置１０９、１１０の両方に同じデータを書き込む。次にＳ１１０３に進みＣＰＵ１０１は、優先ディスクとして指定された不揮発性記憶装置１０９で書き込みエラーが発生したかどうか判定する。ここで書き込みエラーが発生しないときは、このまま処理を終了するが、そうでないときはＳ１１０４に進む。Ｓ１１０４でＣＰＵ１０１は、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切り替える。これは図１０の１００４に相当している。次にＳ１１０５に進みＣＰＵ１０１は、前回書き込みに失敗したデータを、再度、不揮発性記憶装置１０９に書き込む。そしてＳ１１０６に進みＣＰＵ１０１は、不揮発性記憶装置１０９へのデータの書込みでエラーが発生したかどうか判定する。ここでエラーが発生しないときはＳ１１０７に進みＣＰＵ１０１は、前回のエラーは軽度なエラーであったと判定して、マスタディスクを不揮発性記憶装置１１０から不揮発性記憶装置１０９に切り替えて、この処理を終了する。これは図１０の１００７に相当している。
【００５３】
以上説明したように実施形態５によれば、マスタの記憶装置でエラーが発生したときは他の記憶装置に切替えるとともに、再度、エラーが発生したデータを、元のマスタの記憶装置に書き込めるかどうか試みる。ここで元のマスタの記憶装置に書き込めたときは、マスタの記憶装置を元の記憶装置に戻す。これにより、優先ディスクとして指定された記憶装置を優先的にマスタとして使用できる。
【００５４】
［実施形態６］
次に本発明の実施形態６を説明する。この実施形態６では、記憶装置からの読み込みでエラーになると、そのエラーの種類を判別し、マスタディスクを予め指定されたディスクに切り替える動作について説明する。尚、実施形態６に係るミラーリング装置１００の構成は、前述の実施形態１と同じであるため、その説明を省略する。
【００５５】
図１２は、実施形態６に係るミラーリング装置１００において、マスタディスクを切り替えるシーケンスを説明するシーケンス図である。尚、図１２において、前述の図２と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００５６】
図２の２０１〜２０５の動作を行った後、ミラーリング装置１００は、受信したエラーの内容を判別し、軽度のエラーと判別した場合は、１２０１で、内部で保持しているリトライ回数に１を加える。重度のエラーと判別した場合、又はリトライ回数が所定の回数を超えていた場合は、１２０２で、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切り替える。
【００５７】
図１３は、実施形態６に係るミラーリング装置１００のＣＰＵ１０１による処理を説明するフローチャートである。このフローチャートで示す処理は、ＣＰＵ１０１がＲＯＭ１０２或いは不揮発性記憶装置１０９からＲＡＭ１０３に展開したプログラムを実行することにより達成される。
【００５８】
まずＳ１３０１でＣＰＵ１０１は、ホスト１０８から優先ディスクを指定する情報を受信する。次にＳ１３０２に進みＣＰＵ１０１は、ホスト１０８からデータの読み取り命令受け取ると、優先ディスクとして指定された不揮発性記憶装置１０９からデータを読み取る。そしてＣＰＵ１０１は、不揮発性記憶装置１０９で読み取りエラーが発生したかどうか判定する。ここで読み取りエラーが発生しないときは、このまま処理を終了するが、そうでないときはＳ１３０３に進む。Ｓ１３０３でＣＰＵ１０１は、そのエラーが軽度のエラーかどうか判定し、そうであればＳ１３０４に進んで、リトライ回数に１を加えて、この処理を終了する。一方、重度のエラーと判別した場合、又はリトライ回数が所定の回数を超えていた場合は、Ｓ１３０５に進みＣＰＵ１０１は、マスタディスクを不揮発性記憶装置１０９から不揮発性記憶装置１１０に切り替えて（図１２の１２０２）、この処理を終了する。
【００５９】
以上説明したように実施形態６によれば、マスタの記憶装置でエラーが発生したときは、そのエラーが重度でなく、かつエラーの回数を計数した計数値が所定値に達しないときは、マスタの記憶装置を切り替えることなく処理を継続する。また、重度のエラー、或いは、エラー回数が所定回数に達したときはマスタの記憶装置を切り替える。これにより、優先ディスクとして指定された記憶装置を優先的にマスタとして使用できる。
【００６０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６１】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００６２】
１００…ミラーリング装置、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１０８…ホスト、１０９，１１０…不揮発記憶装置
【図１】
2018142274.tif 000003
【図２】
2018142274.tif 000004
【図３】
2018142274.tif 000005
【図４】
2018142274.tif 000006
【図５】
2018142274.tif 000007
【図６】
2018142274.tif 000008
【図７】
2018142274.tif 000009
【図８】
2018142274.tif 000010
【図９】
2018142274.tif 000011
【図１０】
2018142274.tif 000012
【図１１】
2018142274.tif 000013
【図１２】
2018142274.tif 000014
【図１３】
2018142274.tif 000015