(57)【要約】【課題】  ＳＡＴＡブリッジの制御回路は煩雑化させず、複数の機能を機能させることが可能なストレージシステム及びその制御方法、並びにプログラムを提供することを目的とする。【解決手段】  カスケード接続されたＳＡＴＡブリッジと、そのＳＡＴＡブリッジの先に接続された記憶装置デバイスを判別し、ＳＡＴＡブリッジと記憶装置デバイスの接続構成に応じて各々のＳＡＴＡブリッジの動作モードの設定を行なう。【選択図】  図６
2019086959.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置をミラーリング動作させるミラーリングモードと、複数の記憶装置をミラーリング動作させずにそれぞれ動作させるハイブリッドモードを含む記憶装置の動作モードを設定する設定手段を有するストレージコントローラを含むストレージシステムにおいて、
前記ストレージコントローラが有する複数の接続部の中のひとつの接続部はひとつのバスブリッジに対して接続され、前記バスブリッジはひとつの所定の動作モードに前記設定手段により設定されている複数の記憶装置に対してさらに接続され、前記複数の接続部の中の他の接続部に対して直接に接続されているまたは前記バスブリッジとは別のバスブリッジを介して接続されている記憶装置は、前記所定の記憶装置の動作モードとは異なる動作モードに前記設定手段が設定可能であることを特徴とするストレージシステム。
【請求項２】
前記ストレージコントローラは、前記ブリッジ及び記憶装置の接続構成に基づき、前記ストレージシステムに含まれる記憶装置の動作モードを設定する請求項１に記載のストレージシステム。
【請求項３】
前記ストレージシステム内の所定の記憶装置が暗号化動作するよう設定されている場合、前記記憶装置に対して下流側に接続されている記憶装置を暗号化動作させないよう制御する請求項１に記載のストレージシステム。
【請求項４】
前記他の接続部に対して記憶されている記憶装置は、前記ブリッジとは別のブリッジに置き換え可能であることを特徴とする請求項２に記載のストレージシステム。
【請求項５】
複数の記憶装置をミラーリング動作させるミラーリングモードと、複数の記憶装置をミラーリング動作させずにそれぞれ動作させるハイブリッドモードを含む記憶装置の動作モードを設定するストレージコントローラを含むストレージシステムの制御方法において、
前記ストレージコントローラが有する複数の接続部の中のひとつの接続部はひとつのバスブリッジに対して接続され、前記バスブリッジはひとつの所定の動作モードを設定されている複数の記憶装置に対してさらに接続されており、
前記複数の接続部の中の他の接続部に対して直接に接続されているまたは前記バスブリッジとは別のバスブリッジを介して接続されている記憶装置を、前記所定の記憶装置の動作モードとは異なる動作モードを設定する設定工程を有することを特徴とするストレージシステムの制御方法。
【請求項６】
前記ストレージコントローラは、前記ブリッジ及び記憶装置の接続構成に基づき、前記ストレージシステムに含まれる記憶装置の動作モードを設定する請求項５に記載の制御方法。
【請求項７】
前記ストレージシステム内の所定の記憶装置が暗号化動作するよう設定されている場合、前記記憶装置に対して下流側に接続されている記憶装置を暗号化動作させないよう制御する請求項５に記載の制御方法。
【請求項８】
前記他の接続部に対して記憶されている記憶装置は、前記ブリッジとは別のブリッジに置き換え可能であることを特徴とする請求項６に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）などの情報処理装置は、装置のプログラムやユーザの画像データを保存する。このため、ＭＦＰは、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）など記憶装置を備えている。
【０００３】
従来から、記憶装置のインターフェース規格であるＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）などを用いたストレージシステムの制御方法が提案されている。
【０００４】
例えば、特許文献１において、複数のＨＤＤが接続されたストレージ制御装置において、複数の動作モードを持ち、動作モードを切り替えることにより転送方式を切り替えてデータ転送を行なうような制御方法が提案されている（特許文献１）。
【０００５】
ホスト側のメインコントローラに接続されデバイス側のポートマルチプライヤとして機能するＳＡＴＡブリッジコントローラが開示される。このブリッジコントローラに、ＳＡＴＡブリッジを数段カスケード接続する。これにより、ポートマルチプライヤの機能を拡張する制御方法が提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１４３３２８号公報
【特許文献２】特表２０１１−５１５７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載のような、複数の動作モードを切り替えることによって転送方式の機能を切り替える方法がある。例えばミラーリング機能とストライピング機能の両方を動作させる場合には、ＳＡＴＡブリッジに３つ以上のインターフェースの接続ポートが必要となる。
【０００８】
さらに複数の動作モードを同時に行うための回路も増大してしまい、ＳＡＴＡブリッジが行なう制御方法が煩雑化してしまうといった課題や、ＳＡＴＡブリッジの制御回路のコストが増大してしまうといった課題がある。
【０００９】
また一方で前記特許文献２に記載のように、ＳＡＴＡブリッジをカスケードに接続することによってポートマルチプライヤの機能を拡張する方法が提案されているが、各ＳＡＴＡブリッジがどのように複数の動作の切り替えを行なうか方法は記載されていない。
【００１０】
本発明のある側面は上述の問題点の少なくともひとつを鑑みてなされたものである。
【００１１】
本発明の目的は、制御回路は煩雑化させず、ストレージシステムの複数の機能を適切に機能させることが可能なストレージシステム及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本実施形態においては一例として、複数の記憶装置をミラーリング動作させるミラーリングモードと、複数の記憶装置をミラーリング動作させずにそれぞれ動作させるハイブリッドモードを含む記憶装置の動作モードを設定する設定手段を有するストレージコントローラを含むストレージシステムにおいて、前記ストレージコントローラが有する複数の接続部の中のひとつの接続部はひとつのバスブリッジに対して接続され、前記バスブリッジはひとつの所定の動作モードに前記設定手段により設定されている複数の記憶装置に対してさらに接続され、前記複数の接続部の中の他の接続部に対して直接に接続されているまたは前記バスブリッジとは別のバスブリッジを介して接続されている記憶装置は、前記所定の記憶装置の動作モードとは異なる動作モードに前記設定手段が設定することを特徴とするストレージシステムが開示される。
【発明の効果】
【００１３】
本発明によれば、制御回路は煩雑化させず、ストレージシステムの複数の機能を適切に機能させることが可能なストレージシステム及びその制御方法、並びにプログラムを提供することにある。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の構成例全体ブロック図
【図２】本発明のメインコントローラ（１００）の詳細構成図
【図３】本発明のブリッジ（２００）の詳細構成図
【図４】本発明のブリッジ（３００）の詳細構成図
【図５】本発明のブリッジ（２００、３００、３１０）の動作モードの状態遷移図
【図６】（Ａ）本発明のメインコントローラ（１００）が行なう動作モード設定時のフローチャート、（Ｂ）本発明のブリッジ（２００、３００、３１０）が行なう動作モード設定時のフローチャート
【図７】（Ａ）本発明のブリッジ（２００、３００、３１０）に対して設定可能な動作モードの例、（Ｂ）本発明のブリッジ（２００、３００、３１０）の動作モードの割り振り例
【図８】本発明の第２の構成例全体ブロック図
【図９】本発明の第２の構成例のブリッジ３１０の詳細構成図
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１６】
〔第１の実施例〕
（実施例１）
図１に、本発明の第１の構成例の情報処理装置全体のブロック図を示す。本実施例では、情報処理装置を一例として、ＭＦＰのシステム構成で説明するが、この構成に限定するものではなく、複数の記憶装置を備えた構成の情報処理装置であれば適応可能である。
【００１７】
本発明の情報処理装置は、ＭＦＰ全体を制御するメインコントローラ１００と、データを保管する記憶装置４００、４０１、４０２と、その記憶装置にデータを送受信するブリッジ２００、３００によって構成されている。
【００１８】
本実施例では、記憶装置４００・４０１はＨＤＤとして、記憶装置４０２はＳＳＤとして説明するが、これに限定するものではない。
【００１９】
本実施例では記憶装置４００、４０１には、高速なアクセス速度が要求されないデータが格納される。また、記憶装置４０２には、高速なアクセス速度が要求されるデータが格納される。
【００２０】
本システムは、ＳＡＴＡ  Ｄｅｖｉｃｅ  Ｉ／Ｆを２ポート備え、ＨＤＤの暗号化機能を備える。以下２つの動作モードで動作が可能である。
【００２１】
ミラーリングモードでは、同じデータを２本のハードディスクに書き込むモード（いわゆるＲＡＩＤ１）を実行する。ハイブリッドモードは、高速ＭＦＰ向けに開発した新規の機能である。例えば、接続された高速小容量の記憶装置４０２と低速大容量デバイス（ＨＤＤ）４００および４０１とする。ミラーリングモードは、これらの記憶装置をホストからはあたかも１つの高速大容量デバイスとしてみせ、スピードと容量の課題を解決する動作モードである。
【００２２】
さらに、ハイブリッドモードがある。高速アクセスが必要なデータはＳＳＤに書き込み、それ以外のデータはＨＤＤに書き込むモードである。高速ＭＦＰで高速アクセスが必要なときの動作モードである。また、本システムでは、これらの動作モードは排他に構成されており、同時にＯＮすることはできない。
【００２３】
図２に、メインコントローラ１００の詳細構成図を示す。メインコントローラ１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＤＲＡＭ１０３、Ｎｅｔｗｏｒｋ１０４、各種画像処理部（１０５、１０７）、スキャナ１０６、プリンタ１０８、操作部１０９、ＳＡＴＡコントローラ１１０により構成されている。ＣＰＵ１０１は、情報処理装置のシステム全体を制御するコントローラであり、システム制御、演算処理、ＯＳやアプリケーションを実行する。
【００２４】
ＲＯＭ１０２は、リード専用のメモリであり、ＣＰＵ１０１で実行されるプログラムおよび設定情報を格納している。ＤＲＡＭ１０３は、ＣＰＵ１０１で実行する制御プログラムを格納している。また、一時的なワークエリアとしても使用される。
【００２５】
Ｎｅｔｗｏｒｋ１０４は、ネットワークＩ／Ｆであり、情報処理装置内で画像処理を施した画像データをＬＡＮ１１１（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）経由で外部情報機器（不図示）に送信する。または、Ｎｅｔｗｏｒｋ１０４は、外部情報処理装置から画像データを入力する。
【００２６】
スキャン画像処理部１０５は、スキャナ１０６から受信した画像データに画像処理を施す。処理された画像データは、ＳＡＴＡコントローラ１１０を経由して、記憶装置４００、４０１、４０２、４０３のいずれかに保存される。
【００２７】
スキャナ１０６は、画像入力デバイスであり、原稿となる紙上の画像を照射し、ＣＣＤラインセンサ（不図示）を走査する事でラスター・イメージデータとして電気信号に変換する。プリンタ画像処理部１０７は、受信した画像データに画像処理を施す。処理された画像データはプリンタ１０８へ送信される。
【００２８】
プリンタ１０８は、画像出力デバイスであり、ラスター・イメージデータを用紙上の画像に変換する。操作部１０９は、表示機能と操作機能を兼ね揃えたタッチパネル等のデバイスであり、入力された画像データを表示する役割とシステム使用者が入力した情報をＣＰＵ１０１に伝える役割を持つ。
【００２９】
ＳＡＴＡコントローラ１１０は、ＳＡＴＡ規格に準拠して接続機器を制御し、ブリッジ２００とデータの送受信を行う。ＬＡＮ１１１は、画像形成装置と外部情報機器の通信を行う為のネットワーク網である。
【００３０】
図３に、ブリッジ２００の詳細構成図を示す。ＣＰＵ２０１は、ブリッジ２００のシステム制御、演算処理、ＡＴＡコマンド処理を行い、記憶装置４００、４０１、４０２、ブリッジ３００への送信コマンド処理等を行う。ＲＯＭ２０２は、ＣＰＵ２０１の制御プログラムや各種モードの設定値のデータを格納する。
【００３１】
ＲＡＭ２０３は、ＣＰＵ２０１で実行する制御プログラムを格納している。また、一時的なワークエリアとしても使用される。ＳＡＴＡデバイスＩ／Ｆ２０４は、メインコントローラ１００に接続されていて、ＳＡＴＡ規格に準拠して、メインコントローラ１００内のＳＡＴＡコントローラ１１０と通信する。ＳＡＴＡホストＩ／Ｆ２０５・２０６は、ブリッジ３００と記憶装置４０２に接続され、ＳＡＴＡ規格に準拠して、それぞれブリッジ３００・記憶装置４０２とで通信を行なう。暗号化／復号化部２０７は、ＣＰＵ２０１からの指示によってＳＡＴＡデバイスＩ／Ｆ２０４あるいはＳＡＴＡホストＩ／Ｆ２０５・２０６からの受信データに対して暗号化あるいは復号化処理を行う。
【００３２】
図４に、ブリッジ３００の詳細構成図を示す。
【００３３】
ブリッジ３００のＣＰＵ３０１は、システム制御、演算処理、ＡＴＡコマンド処理を行い、記憶装置４００、記憶装置４０１への送信コマンド処理等を行う。
【００３４】
ＲＯＭ３０２は、ＣＰＵ３０１の制御プログラムや各種モードの設定値のデータを格納する。ＲＡＭ３０３は、ＣＰＵ３０１で実行する制御プログラムを格納している。また、一時的なワークエリアとしても使用される。
【００３５】
ＳＡＴＡデバイスＩ／Ｆ３０４は、ブリッジ２００に接続されていて、ＳＡＴＡ規格に準拠して、ブリッジ２００内のＳＡＴＡホストＩ／Ｆ２０５と通信する。
【００３６】
ＳＡＴＡホストＩ／Ｆ３０５、３０６は、記憶装置４００、４０１に接続され、ＳＡＴＡ規格に準拠して、記憶装置４００、４０１と通信する。暗号化／復号化部３０７は、ＣＰＵ３０１からの指示によってＳＡＴＡデバイスＩ／Ｆ３０４あるいはＳＡＴＡホストＩ／Ｆ３０５、３０６からの受信データに対して暗号化あるいは復号化処理を行う。
【００３７】
図８に、本発明の第２の構成例の情報処理装置全体のブロック図を示す。図１の第１の構成例との違いはブリッジ２００に対して、ブリッジ３００とブリッジ３１０が接続されブリッジ３１０にはさらに記憶装置４０２・４０３が接続される構成となっている部分である。
【００３８】
このように本発明はブリッジの個数を限定するものではなく、動作させる機能や接続する記憶装置の数に応じてブリッジ３００・３１０にさらに不図示のブリッジを接続しても良い。図９に、ブリッジ３１０の詳細構成図を示す。
【００３９】
ブリッジ３１０のＣＰＵ３１１は、システム制御、演算処理、ＡＴＡコマンド処理を行い、記憶装置４０２、記憶装置４０３への送信コマンド処理等を行う。
【００４０】
ＲＯＭ３１２は、ＣＰＵ３１１の制御プログラムや各種モードの設定値のデータを格納する。ＲＡＭ３１３は、ＣＰＵ３１１で実行する制御プログラムを格納している。また、一時的なワークエリアとしても使用される。
【００４１】
ＳＡＴＡデバイスＩ／Ｆ３１４は、ブリッジ２００に接続されていて、ＳＡＴＡ規格に準拠して、ブリッジ２００内のＳＡＴＡホストＩ／Ｆ２０６と通信する。
【００４２】
ＳＡＴＡホストＩ／Ｆ３１５、３１６は、記憶装置４０２、４０３に接続され、ＳＡＴＡ規格に準拠して、記憶装置４０２、４０３と通信する。
【００４３】
暗号化／復号化部３１７は、ＣＰＵ３１１からの指示によってＳＡＴＡデバイスＩ／Ｆ３１４あるいはＳＡＴＡホストＩ／Ｆ３１５、３１６からの受信データに対して暗号化あるいは復号化処理を行う。
【００４４】
本実施例では、ブリッジ２００・ブリッジ３００・ブリッジ３１０は、同一の構成として説明するが、同一の構成に限定するものではなく、本発明の目的を果たす範囲で、機能を追加または削除して良いことは言うまでもない。
【００４５】
また、本実施例では、ブリッジ２００、３００、３０１は、ＳＡＴＡインターフェースで接続されるＳＡＴＡブリッジとして説明するが、これに限定するものではない。ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）などの他のインターフェースでもよい。
【００４６】
またさらに、本実施例では、ＳＡＴＡコントローラ１１０、ブリッジ２００・ブリッジ３００・ブリッジ３０１が別チップとして説明する。しかし、これらに限定するものではなく、ＳＡＴＡコントローラ１１０、ブリッジ２００、３００、３０１のいずれかが同一チップ内に含まれていてもよい。
【００４７】
図５に第１の実施例のブリッジ２００・３００・３０１の状態遷移図を示す。図５を用いてブリッジ２００・３００・３０１の動作を説明する。ここでは代表としてブリッジ３００のブロック図を用いて動作を説明する。また、記憶装置４００、４０１の例としてＨＤＤを挙げて説明する。
【００４８】
ブリッジ２００・３００・３０１はシングルモード（Ｓ５０１）、ミラーリングモード（Ｓ５０２）、ハイブリッドモード（Ｓ５０３）の３つの動作モードを有する。
【００４９】
シングルモード（Ｓ５０１）は、１台のＳＡＴＡホストＩ／ＦのみにＨＤＤが装着された状態で動作するモードである。ブリッジ３００を例に挙げると、シングルモード（Ｓ５０１）はＳＡＴＡホストＩ／Ｆ３０５かＳＡＴＡホストＩ／Ｆ３０６のどちらか片方のみにＨＤＤが接続された状態で動作するモードである。
【００５０】
シングルモード（Ｓ５０１）において、ＣＰＵ３０１は、ＳＡＴＡデバイスＩ／Ｆ３０４を通じてホスト側からミラーリングモード（Ｓ５０２）への移行命令があると、ミラーステート（Ｓ５０４）へ移行する。
【００５１】
また、シングルモード（Ｓ５０１）において、ＣＰＵ３０１は、ＳＡＴＡデバイスＩ／Ｆ３０４を通じてホスト側からハイブリッドモード（Ｓ５０３）への移行命令があると、ハイブリッドステート（Ｓ５０８）へ移行する。
【００５２】
ＣＰＵ３０１は、各ステート移行した際にＲＯＭ３０２に移行したステートを記憶する。
【００５３】
シングルモード（Ｓ５０１）はデフォルトの動作モードであり、ＣＰＵ３０１は起動時にＲＯＭ３０２に前回動作時のモードが記憶されていない場合にはシングルモード（Ｓ５０１）で動作を開始する。
【００５４】
また、ＣＰＵ３０１は起動時にＲＯＭ３０２に前回動作時のモードが記憶されていた場合には、その記憶されていた動作モードにて動作を開始する。
【００５５】
ミラーリングモード（Ｓ５０２）は、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６にＨＤＤが装着された状態で動作するモードである。
【００５６】
ミラーリングモード（Ｓ５０２）には、ミラーステート（Ｓ５０４）、デグレードステート（Ｓ５０５）、リビルドステート（Ｓ５０６）、ホールトステート（Ｓ５０７）の４つの状態が存在する。
【００５７】
ミラーリングモード（Ｓ５０２）では、ＣＰＵ３０１は２つのＳＡＴＡホストＩ／Ｆ３０５、３０６に対して片方をマスターＨＤＤ、もう片方をスレーブＨＤＤとして扱う。
【００５８】
ミラーステート（Ｓ５０４）は、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６にＨＤＤが装着された状態で正常に動作している状態である。
【００５９】
ミラーステート（Ｓ５０４）において、ＣＰＵ３０１は、ＳＡＴＡデバイスＩ／Ｆ３０４を通じてホスト側から通知されるデータ読み出し命令に対して、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６のうち、マスターＨＤＤのみに対して行なう。
【００６０】
ミラーステート（Ｓ５０４）において、ＣＰＵ３０１は、ＳＡＴＡデバイスＩ／Ｆ３０４を通じてホスト側から通知されるデータ書き込み命令に対して、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６のうち、マスターＨＤＤとスレーブＨＤＤの両方に対して行なう。
【００６１】
ミラーステート（Ｓ５０４）において、マスターＨＤＤとスレーブＨＤＤのどちらか片方のＨＤＤが故障すると、デグレードステート（Ｓ５０５）へ移行する。
【００６２】
ミラーステート（Ｓ５０４）において、ＣＰＵ３０１は、ＳＡＴＡデバイスＩ／Ｆ３０４を通じてホスト側からリビルドステート（Ｓ５０６）への移行命令があると、リビルドステート（Ｓ５０６）へ移行する。
【００６３】
デグレードステート（Ｓ５０５）は、一方のＳＡＴＡホストＩ／Ｆに接続されている正常デバイスのみ（例えば故障していないＨＤＤ）のみで動作している状態である。さらに、もう一方ＳＡＴＡホストＩ／Ｆに異常なデバイス（例えば故障しているＨＤＤ）を検知してアクセスが発生していない状態である。
【００６４】
デグレードステート（Ｓ５０５）において、ＣＰＵ３０１は、故障しているＨＤＤの代わりに新たに正常なＨＤＤが接続されたことを検知すると、リビルドステート（Ｓ５０６）へ移行する。
【００６５】
デグレードステート（Ｓ５０５）において、ＣＰＵ３０１は、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６ともに異常なデバイスが接続されている（２台目のＨＤＤも故障したこと）を検知すると、ホールトステート（Ｓ５０７）へ移行する。
【００６６】
リビルドステート（Ｓ５０６）は、片方のＨＤＤ（前から装着され故障しなかったＨＤＤ）のみで動作している状態だが、そのＨＤＤからもう片方のＨＤＤ（故障したＨＤＤの代わりに新たに装着されたＨＤＤ）へデータをコピー（リビルド）している状態である。
【００６７】
この時、ＣＰＵ３０１は、コピー元のＨＤＤ（前から装着され故障しなかったＨＤＤ）をマスターＨＤＤ、コピー先のＨＤＤ（故障したＨＤＤの代わりに新たに装着されたＨＤＤ）をスレーブＨＤＤとして扱う。
【００６８】
リビルドステート（Ｓ５０６）において、リビルドが完了すると、ミラーステート（Ｓ５０４）へ移行する。リビルドステート（Ｓ５０６）において、スレーブＨＤＤが故障すると、デグレードステート（Ｓ５０５）へ移行する。リビルドステート（Ｓ５０６）において、マスターＨＤＤが故障すると、ホールトステート（Ｓ５０７）へ移行する。
【００６９】
ホールトステート（Ｓ５０７）は、両方のＨＤＤが異常状態になったことにより、ミラーリング動作が継続できなくなった状態である。
【００７０】
ここではＳＡＴＡホストＩ／Ｆ３０５、３０６に接続されるデバイスの例としてＨＤＤを挙げたが、ＳＳＤやＳＡＴＡブリッジでもよい。
【００７１】
ＳＡＴＡホストＩ／Ｆ３０５、３０６に接続されるデバイスがＳＳＤの場合には、ＣＰＵ３０１は、ＨＤＤ同様にＳＳＤ自体の故障している場合に、異常なデバイスが接続されていると判断する。
【００７２】
ＳＡＴＡホストＩ／Ｆ３０５、３０６に接続されるデバイスがＳＡＴＡブリッジの場合には、ＣＰＵ３０１は、ＳＡＴＡブリッジが異常状態であることを通知してきた場合に、異常なデバイスが接続されていると判断する。
【００７３】
ハイブリッドモード（Ｓ５０３）は、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６に対してＨＤＤとＳＳＤが装着された状態で動作するモードである。
【００７４】
ハイブリッドモード（Ｓ５０３）には、ハイブリッドステート（Ｓ５０８）、エラーステート（Ｓ５０９）の２つの状態が存在する。
【００７５】
ハイブリッドモード（Ｓ５０２）では、ＣＰＵ３０１は２つのＳＡＴＡホストＩ／Ｆ３０５、３０６に接続されるＨＤＤとＳＳＤに対してアドレスを統合し、ＳＡＴＡデバイスＩ／Ｆ３０４を通じてホスト側からは１つの記憶装置として見えるように動作する。
【００７６】
ハイブリッドステート（Ｓ５０８）は、２つのＳＡＴＡホストＩ／Ｆ３０５、３０６にＨＤＤとＳＳＤが装着された状態で正常に動作している状態である。
【００７７】
ハイブリッドステート（Ｓ５０８）において、ＣＰＵ３０１はＨＤＤとＳＳＤのどちらか片方が故障すると、エラーステート（Ｓ５０９）へ移行する。
【００７８】
エラーステート（Ｓ５０９）は、ＨＤＤとＳＳＤのどちらか片方が異常状態になったことにより、ハイブリッド動作が継続できなくなった状態である。
【００７９】
図６（Ａ）のフローチャートを用いて、メインコントローラ１００内のＣＰＵ１０１が実行する、ＳＡＴＡコントローラ１１０に接続されたデバイスの初期化処理の動作を説明する。
【００８０】
図６（Ａ）の動作フローはＣＰＵ１０１上で動作するプログラムである。これは、ＲＡＭ１０３、ＲＯＭ１０２または記憶装置デバイス４００、４０１、４０２、４０１に格納される。
【００８１】
図６（Ａ）は、起動などの初期化時に実行することが望ましいが、これに限定するものではなく、接続されているＳＡＴＡデバイスにアクセスする際に実行しても構わない。
【００８２】
Ｓ６０１においてＣＰＵ１０１はＳＡＴＡコントローラ１１０を通じて、ＳＡＴＡデバイスが接続されているかどうかを確認する。具体的な一例としては、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドなどのＡＴＡコマンドの発行を行ない、ＳＡＴＡデバイスが接続されているかどうかを確認する。
【００８３】
Ｓ６０１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答があった場合、ＣＰＵ１０１はＳＡＴＡコントローラ１１０にＳＡＴＡデバイスが接続されていると判断し（Ｓ６０２でＹｅｓ）、Ｓ６０３に進む。
【００８４】
Ｓ６０１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答がない場合、ＣＰＵ１０１はＳＡＴＡコントローラ１１０にＳＡＴＡデバイスが接続されていないと判断し（Ｓ６０２でＮｏ）、Ｓ６０５に進む。
【００８５】
Ｓ６０３において、ＣＰＵ１０１はＳ６０１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答内容から、ＳＡＴＡコントローラ１１０にＳＡＴＡブリッジが接続されているかを判断する。
【００８６】
Ｓ６０３において、ＣＰＵ１０１がＳＡＴＡコントローラ１１０にＳＡＴＡブリッジが接続されていると判断した場合（Ｓ６０３でＹｅｓ）、Ｓ６０４に進む。
【００８７】
Ｓ６０３において、ＣＰＵ１０１がＳＡＴＡコントローラ１１０に記憶装置が接続されていると判断した場合（Ｓ６０３でＮｏ）、Ｓ６０９に進む。
【００８８】
Ｓ６０４において、ＣＰＵ１０１はＳ６０１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答内容から、ＳＡＴＡコントローラ１１０に接続されたＳＡＴＡブリッジ２００の先にさらに接続デバイスが接続されているかを判断する。
【００８９】
Ｓ６０４において、ＣＰＵ１０１がＳＡＴＡブリッジ２００の先にさらに接続デバイスが接続されていると判断した場合（Ｓ６０４でＹｅｓ）、Ｓ６０６に進む。
【００９０】
Ｓ６０４において、ＣＰＵ１０１がＳＡＴＡブリッジ２００の先にさらに接続デバイスが接続されていないと判断した場合（Ｓ６０４でＮｏ）、Ｓ６０５に進む。
【００９１】
Ｓ６０５において、ＣＰＵ１０１はＳＡＴＡコントローラ１１０には接続されている記憶装置デバイスが検出できないとして操作部ＵＩ１０９に対してエラー表示を行なう。
【００９２】
Ｓ６０６において、ＣＰＵ１０１はＳＡＴＡコントローラ１１０を通じ、ＳＡＴＡブリッジ２００にたしして暗号化処理の指示を行なう。
【００９３】
Ｓ６０７において、ＣＰＵ１０１はＳ６０１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答内容から、ＳＡＴＡコントローラ１１０にＳＡＴＡブリッジがカスケード接続されているかを判断する。
【００９４】
Ｓ６０７において、ＣＰＵ１０１がＳＡＴＡコントローラ１１０にＳＡＴＡブリッジ２００がカスケード接続されていると判断した場合（Ｓ６０７でＹｅｓ）、Ｓ６０８に進む。
【００９５】
Ｓ６０７において、ＣＰＵ１０１がＳＡＴＡコントローラ１１０にＳＡＴＡブリッジ２００がカスケード接続されていないと判断した場合（Ｓ６０７でＮｏ）、Ｓ６１１に進む。
【００９６】
Ｓ６１１において、ＣＰＵ１０１はＳＡＴＡコントローラ１１０を通じ、ＳＡＴＡブリッジ２００に対して動作モードの設定を行なう。その際、ＳＡＴＡブリッジ２００に対して設定できる動作モードはミラーリングモードＳ５０２のみかハイブリッドモードＳ５０３のみのいずれかである。
【００９７】
Ｓ６０８において、ＣＰＵ１０１はＳＡＴＡコントローラ１１０を通じ、ＳＡＴＡブリッジ２００、３００、３１０の動作モードを設定する。その際、ＳＡＴＡブリッジ２００、３００、３０１に対して設定できる動作モードは、ミラーリングモードＳ５０２のみか、ハイブリッドモードＳ５０３のみか、ミラーリングモードＳ５０２とハイブリッドモードＳ５０３の両方の３種類である。
【００９８】
Ｓ６０９において、ＣＰＵ１０１はＳＡＴＡコントローラ１１０、ＳＡＴＡブリッジ２００、３００、３０１を通じて接続されている記憶装置４００、４０１、４０２、４０３に対して初期化処理の指示を行なう。
【００９９】
Ｓ６１０において、ＣＰＵ１０１はＳＡＴＡコントローラ１１０の先に接続されているデバイス構成の情報やＳＡＴＡブリッジ２００、３００、３０１の設定情報を、ＲＯＭ１０２あるいは記憶装置４００、４０１、４０２、４０３に記憶する。
【０１００】
本実施例では、接続されているデバイス構成を確認するための方法としてＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを例とした。
【０１０１】
しかし、これに限定するものではなく、ＳＡＴＡデバイスの有無の確認、ＳＡＴＡブリッジが存在するか確認、ＳＡＴＡブリッジがカスケード接続されているかを確認できる方法であれば何でも良い。もちろん、ＡＴＡコマンドに限定するものはなく、独自の拡張コマンドを発行しても構わない。
【０１０２】
次に図６（Ｂ）のフローチャートを用いて、ブリッジ２００、３００、３１０が実行するモード設定と初期化処理の動作を説明する。ここでは例としてブリッジ２００内のＣＰＵ２０１が実行する初期化処理の動作を説明するが、本動作フローはブリッジ３００、３１０にも適応可能である。
【０１０３】
図６（Ｂ）の動作フローはＣＰＵ２０１上で動作するプログラムであり、ＲＡＭ２０３、ＲＯＭ２０２または記憶装置４００、４０１、４０２、４０１に格納される。
【０１０４】
図６（Ｂ）は、起動などの初期化時に実行することが望ましいが、これに限定するものではなく、接続されているＳＡＴＡデバイスにアクセスする際に実行しても構わない。
【０１０５】
Ｓ６２１においてＣＰＵ２０１はＳＡＴＡデバイスＩ／Ｆ２０４を通じて、ホスト側からの接続デバイス確認が通知されると、ＳＡＴＡホストＩ／Ｆ２０５・２０６の先にＳＡＴＡデバイスが接続されているかどうかを確認する。具体的な一例としては、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドなどのＡＴＡコマンドの発行を行ない、ＳＡＴＡデバイスが接続されているかどうかを確認する。
【０１０６】
Ｓ６２１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答があった場合、ＣＰＵ２０１はＳＡＴＡホストＩ／Ｆ２０５・２０６の先にＳＡＴＡデバイスが接続されていると判断し（Ｓ６２２でＹｅｓ）、Ｓ６２３に進む。
【０１０７】
Ｓ６２１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答がない場合、ＣＰＵ２０１はＳＡＴＡホストＩ／Ｆ２０５・２０６にＳＡＴＡデバイスが接続されていないと判断し（Ｓ６２２でＮｏ）、Ｓ６２７に進む。
【０１０８】
Ｓ６２３において、ＣＰＵ２０１は、Ｓ６２１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答にデバイスが接続されていないエラー状態であることを通知する内容が含まれているかを判断する。
【０１０９】
Ｓ６２３において、ＣＰＵ２０１がＳ６２１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答にエラー通知内容が含まれていると判断した場合（Ｓ６２３でＹｅｓ）、Ｓ６２７へ進む。
【０１１０】
Ｓ６２３において、ＣＰＵ２０１がＳ６２１で発行したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答にエラー通知内容が含まれていないと判断した場合（Ｓ６２３でＮｏ）、Ｓ６２４へ進む。
【０１１１】
Ｓ６２４において、ＣＰＵ２０１は、Ｓ６２１で発行したＳＡＴＡホストＩ／Ｆ２０５・２０６へのＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドの応答内容とブリッジ２００自身の情報を接続デバイス情報としてマージを行なう。Ｓ６２４において、さらにＣＰＵ２０１は、ホスト側へその接続デバイス情報を通知する。
【０１１２】
Ｓ６２５において、ＣＰＵ２０１はＳＡＴＡデバイスＩ／Ｆ２０４を通じて、ホスト側から暗号化処理の設定指示があるかを判断する。
【０１１３】
Ｓ６２５において、ＣＰＵ２０１がホスト側から暗号化処理の設定指示があったと判断した場合（Ｓ６２５Ｙｅｓ）はＳ６２６へ処理を進める。ＣＰＵ２０１がホスト側から暗号化処理の設定指示がないと判断した場合（Ｓ６２５Ｎｏ）はＳ６２８へ処理を進める。
【０１１４】
Ｓ６２６において、ＣＰＵ２０１はＳＡＴＡデバイスＩ／Ｆ２０４を通じて、Ｓ６２５でホスト側から受けた指示に従って、暗号化／復号化の設定処理を行ない、その設定内容をＲＯＭ２０２に記憶する。
【０１１５】
これ以降、ＳＡＴＡデバイスＩ／Ｆ２０４を通じて受信したメインコントローラ１００が記憶装置４００、４０１、４０２、４０３に対して書き込むデータに対して次を行う。ＣＰＵ２０１は当該データに対して、ＲＯＭ２０２に記憶された設定内容と、暗号化／復号化部２０７を用いて暗号化処理を行ない、ＳＡＴＡホストＩ／Ｆ２０５・２０６を通じて下位のデバイスに送信する。
【０１１６】
また更に、ＳＡＴＡホストＩ／Ｆ２０５・２０６を通じてメインコントローラ１００が記憶装置４００、４０１、４０２、４０３からデータを読み出す。このデータに対して、ＣＰＵ２０１はＲＯＭ２０２に記憶された設定内容と、暗号化／復号化部２０７を用いて復号化処理を行ない、ＳＡＴＡデバイスＩ／Ｆ２０４を通じて上位のホストに送信する。
【０１１７】
Ｓ６２８においてＣＰＵ２０１はＳＡＴＡデバイスＩ／Ｆ２０４を通じて、ホスト側からのモード設定指示を受信する。さらにＳ６２８においてＣＰＵ２０１は、受信したホスト側からのモード設定指示が、複数の動作モード設定指示かを判断する。
【０１１８】
Ｓ６２８においてＣＰＵ２０１が、受信したホスト側からのモード設定指示が、複数の動作モード設定指示であると判断した場合（Ｓ６２８でＹｅｓ）、処理をＳ６２９に進める。
【０１１９】
Ｓ６２８においてＣＰＵ２０１が、受信したホスト側からのモード設定指示が、複数の動作モード設定指示でないと判断した場合（Ｓ６２８でＮｏ）、処理をＳ６３５に進める。
【０１２０】
Ｓ６２９において、ＣＰＵ２０１はＳ６２８で受信したモード設定指示を、自デバイスに設定する動作モードと、下位のブリッジデバイスに対して設定する動作モードに割り振りを行なう。
【０１２１】
Ｓ６３０において、ＣＰＵ２０１はＳ６２９で割り振ったブリッジ２００自身のモード設定に従い自身の動作モード設定を行なう。
【０１２２】
Ｓ６３１において、ＣＰＵ２０１はＳ６２９で割り振った下位のブリッジデバイスへのモード設定に従い、ＳＡＴＡホストＩ／Ｆ２０５・２０６を通じて下位のブリッジデバイスの動作モード設定を行なう。
【０１２３】
Ｓ６３２において、ＣＰＵ２０１はＳＡＴＡデバイスＩ／Ｆ２０４を通じて、ホスト側から記憶装置に対する初期化処理指示を受信する。さらにＳ６２６においてＣＰＵ２０１は受信した初期化処理指示をＳＡＴＡホストＩ／Ｆ２０５・２０６に接続されているデバイスに対して通知する。
【０１２４】
Ｓ６３３において、ＣＰＵ２０１はＳ６２８で受信したブリッジ２００自身のモード設定に従い自身の動作モード設定を行ない、Ｓ６３２へ処理を進める。
【０１２５】
Ｓ６３４において、ＣＰＵ２０１はＳ６２９やＳ６３３で設定したブリッジ２００自身の動作モードやＳ６２１で確認した接続デバイスの接続構成をＲＯＭ２０２に記憶する。
【０１２６】
Ｓ６２７において、ＣＰＵ２０１はＳＡＴＡホストＩ／Ｆ２０５・２０６にデバイスが接続されていないエラー状態であることをホスト側へ通知する。
【０１２７】
以上により、ブリッジ２００のモード設定と初期化処理を終了する。
【０１２８】
次に図７（Ａ）を用いて、図６（Ａ）のＳ６０８におけるＣＰＵ１０１が設定指示可能な動作モードのパターンについて詳細に説明する。
【０１２９】
図７（Ａ）はメインコントローラ１００に接続されるＳＡＴＡブリッジのカスケード接続の構成パターンと、ＣＰＵ１０１が下位のブリッジに対して設定可能な動作モードのパターンの対応表である。
【０１３０】
Ｓ６０３とＳ６０７で、ＣＰＵ１０１はＳＡＴＡコントローラ１１０より下位にＳＡＴＡブリッジが接続されているかと、カスケード接続されているかの判断を行なった。ここでＳＡＴＡコントローラ１１０より下位に接続されるＳＡＴＡブリッジのカスケード接続構成としては、次がある。すなわち、「記憶装置のみ」接続されているか、「ＳＡＴＡブリッジが１つ」のみ接続されているか、「ＳＡＴＡブリッジが２つ以上」接続されているか、に分類される。
【０１３１】
ＳＡＴＡコントローラ１１０より下位に「記憶装置のみ」接続されている場合には、ＳＡＴＡブリッジが存在しないため、設定可能なモードはない。
【０１３２】
ＳＡＴＡコントローラ１１０より下位に「ＳＡＴＡブリッジが１つ」のみ接続されている場合には、ＳＡＴＡブリッジが１つしか存在しないため、設定可能なモードは「ミラーリングモード（Ｓ５０２）のみ」か「ハイブリッドモード（Ｓ５０３）のみ」となる。
【０１３３】
さらにＳＡＴＡコントローラ１１０より下位に「ＳＡＴＡブリッジが２つ以上」接続されている場合には、次のようになる。設定可能なモードは「ミラーリングモード（Ｓ５０２）のみ」か「ハイブリッドモード（Ｓ５０３）のみ」か「ミラーリングモード（Ｓ５０２）とハイブリッドモード（Ｓ５０３）の両方」となる。
【０１３４】
次に図７（Ｂ）を用いて、図６（Ｂ）のＳ６２９においてＣＰＵ２０１が行なった、複数の動作モードの下位のブリッジに対する割り振りについて説明する。
【０１３５】
図７（Ｂ）はＳＡＴＡブリッジ２００に接続されるデバイスの、カスケード接続構成パターンと、ＣＰＵ２０１が複数の動作モードを下位のブリッジに対して割り振る、動作モードの割振りパターンの対応表である。
【０１３６】
ＳＡＴＡブリッジ２００のＳＡＴＡホストＩ／Ｆ２０５・２０６に対して記憶装置が１つとＳＡＴＡブリッジが１つ接続されている場合、モード設定を行なうのはＳＡＴＡブリッジ２００自身とＳＡＴＡブリッジ３００である。そのため、ＳＡＴＡデバイスＩ／Ｆ２０４を通じてホスト側から受信した複数動作モードの割り振られ方は、次のようになる。すなわち、自デバイス（ＳＡＴＡブリッジ２００）に対してはハイブリッドモードＳ５０３を割り当てられる。そして、下位のブリッジデバイス（ＳＡＴＡブリッジ３００）に対してはミラーリングモードＳ５０２を割り当てられる、方法の１パターンのみである。
【０１３７】
さらにＳＡＴＡブリッジ２００のＳＡＴＡホストＩ／Ｆ２０５・２０６に対してＳＡＴＡブリッジが２つ接続されている場合、モード設定を行なうのはＳＡＴＡブリッジ２００自身とＳＡＴＡブリッジ３００とＳＡＴＡブリッジ３１０である。
【０１３８】
そのため、ＳＡＴＡデバイスＩ／Ｆ２０４を通じてホスト側から受信した複数動作モードの割り振り方は次のようになる。自デバイス（ＳＡＴＡブリッジ２００）に対してはハイブリッドモードを割り当てる。下位のブリッジデバイス２つ（ＳＡＴＡブリッジ３００・３１０）に対してはミラーリングモードを割り当てる。この方法が１パターン目である。さらに自デバイス（ＳＡＴＡブリッジ２００）に対してはミラーリングモードＳ５０２を割り当て、下位のブリッジデバイス２つ（ＳＡＴＡブリッジ３００・３１０）に対してはハイブリッドモードＳ５０３を割り当てる、方法が２パターン目である。
【０１３９】
以上、説明したように本発明の実施例によれば、カスケード接続されたＳＡＴＡブリッジ２００・３００・３１０と、そのＳＡＴＡブリッジの先に接続された記憶装置デバイス４００・４０１・４０２・４０３を判別する。そして、ＳＡＴＡブリッジと記憶装置デバイスの接続構成に応じて各々のＳＡＴＡブリッジの動作モードの割り振りと設定を行なう。これにより、各々のＳＡＴＡブリッジの制御回路は煩雑化させずにストレージシステム全体として複数の機能を同時に機能させることが可能となる。
【０１４０】
ＣＰＵ３１１は、ストレージコントローラの一例である。記憶装置デバイス４００〜４０３は、複数の記憶装置の一例である。これらをミラーリング動作させるミラーリングモードと、複数の記憶装置をミラーリング動作させずにそれぞれ動作させるハイブリッドモードを含む記憶装置の動作モードを設定するＣＰＵ３１１を開示した。ストレージコントローラが有する複数の接続部の中のひとつの接続部はひとつのバスブリッジに対して接続されうる。そして、バスブリッジはストレージコントローラにより設定されている複数の記憶装置デバイスに対してさらに接続されうる。記憶装置デバイスは、所定の動作モード（たとえばミラーリングまたはハイブリッド）と設定されうる。また、複数の接続部（３１５、３１６）の中の他の接続部に対して直接に接続されている、または、別のバスブリッジを介して接続されている記憶装置デバイスがある。そして、所定の記憶装置の動作モードとは異なる動作モードにストレージコントローラは設定できる。
【０１４１】
ＳＡＴＡ  Ｉ／Ｆ３１５および３１６は、接続部の一例である。
【０１４２】
ＣＰＵ３１１は、ブリッジ２００−３１０及び記憶装置デバイス４００〜４０３の接続構成に基づき次の設定をする。つまり、ストレージシステムに含まれる記憶装置デバイス４００−ないし４０３の動作モードを設定する。図７（Ａ）（Ｂ）には、記憶装置の個数、ＳＡＴＡブリッジの個数などに依存して記憶装置の動作モードの設定が異なることが記載されている。図７（Ａ）（Ｂ）は、これらがどのようにカスケード接続されるかを含む接続構成の一例である。
【０１４３】
ストレージシステム内の所定の記憶装置デバイス４００等が暗号化動作するよう設定されている場合、記憶装置デバイス４００に対して下流側に接続されている記憶装置デバイスを暗号化動作させないよう制御することもできる。例えば、図７（Ｂ）にその記載がある。他の接続部に対して記憶されている記憶装置デバイス４００−４０３は、別のブリッジに置き換え可能である。
【図１】
2019086959.tif 000003
【図２】
2019086959.tif 000004
【図３】
2019086959.tif 000005
【図４】
2019086959.tif 000006
【図５】
2019086959.tif 000007
【図６】
2019086959.tif 000008
【図７】
2019086959.tif 000009
【図８】
2019086959.tif 000010
【図９】
2019086959.tif 000011