(57)【要約】      （修正有）【課題】ＲＡＩＤ制御部が故障したときに、他のＲＡＩＤ制御部を使用することなくホストコンピュータが記憶装置にデータを格納する又は記憶装置からデータを読み出すことが可能な経路制御装置を提供する。【解決手段】ストレージシステム１において、経路制御装置３０は、ホストコンピュータ１０からのデータを受信し、経路３７ａ、３７ｂを介して記憶装置に格納するＲＡＩＤ制御部３４と、ＲＡＩＤ制御部３４を介さずに、ホストコンピュータ１０が第１記憶装置２０ａにデータを格納する又は第１記憶装置２０ａからデータを読み出すための経路３８ａと、経路３７ａと経路３８ａを切り換える第１切換部３１と、ＲＡＩＤ制御部３４に異常があった場合に、経路３８ａにより、ホストコンピュータ１０が記憶装置２０ａにデータを格納する又は第１記憶装置２０ａからデータを読み出すように第１切換部３１を制御する切換制御部３５と、を有する。【選択図】図１
2019148986.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部と、
前記ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すための第２経路と、
前記第１経路と前記第２経路を切り換える第１切換部と、
前記ＲＡＩＤ制御部に異常があった場合に、前記第２経路により、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すように前記第１切換部を制御する切換制御部と、
を有することを特徴とする経路制御装置。
【請求項２】
前記ＲＡＩＤ制御部に異常があった場合に前記１つの記憶装置を選択するために、前記第２経路を切り換える第２切換部を更に有する、請求項１に記載の経路制御装置。
【請求項３】
前記切換制御部は、前記１つの記憶装置への最終の書き込みが正常に完了していると判定したとき、前記第２経路を選択するように前記第２切換部を制御する、請求項２に記載の経路制御装置。
【請求項４】
ホストコンピュータからのデータを、前記ＲＡＩＤ制御部を介さずに前記複数の記憶装置の内の他の１つの記憶装置に格納するための第３経路を更に有し、
前記第２切換部は、前記第２経路と前記第３経路とを切り換え、
前記切換制御部は、前記１つの記憶装置への最終の書き込みが正常に完了していないと判定したとき、前記他の１つの記憶装置への最終の書き込みが正常に完了しているか否かを判定し、前記他の１つの記憶装置への最終の書き込みが正常に完了しているとき、前記第３経路を選択するように前記第２切換部を制御する、請求項３に記載の経路制御装置。
【請求項５】
ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部と、前記ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すための第２経路と、前記第１経路と前記第２経路を切り換える第１切換部と、を有する経路制御装置の制御方法であって、
前記ＲＡＩＤ制御部に異常があった場合に、前記第２経路により、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すように前記第１切換部を制御する、
ことを含むことを特徴とする制御方法。
【請求項６】
ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部と、前記ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すための第２経路と、前記第１経路と前記第２経路を切り換える第１切換部と、を有する経路制御装置の制御プログラムであって、
前記ＲＡＩＤ制御部に異常があった場合に、前記第２経路により、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すように前記第１切換部を制御する、
ことを前記経路制御装置に実行させることを特徴とする制御プログラム。
【請求項７】
ホストコンピュータと、
複数の記憶装置と、
前記ホストコンピュータからのデータを受信し、第１経路を介して前記複数の記憶装置に格納するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部と、
経路制御装置と、を有し、
前記経路制御装置は、
前記ＲＡＩＤ制御部を介さずに、前記ホストコンピュータが前記複数の記憶装置の内の１つの記憶装置にデータを格納する又は前記１つの記憶装置からデータを読み出すための第２経路と、
前記第１経路と前記第２経路を切り換える第１切換部と、
前記ＲＡＩＤ制御部に異常があった場合に、前記第２経路により、前記ホストコンピュータが前記１つの記憶装置にデータを格納する又は前記１つの記憶装置からデータを読み出すように前記第１切換部を制御する切換制御部と、を有する、
ことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路制御装置、その経路制御装置の制御方法及び制御プログラム、並びにストレージシステムに関する。特に、本発明は、ホストコンピュータと記憶装置との間におけるデータの格納又は読み出しの経路を制御する経路制御装置、制御方法、制御プログラム及びストレージシステムに関する。
【背景技術】
【０００２】
同一のデータを複数のＨＤＤ（Hard Disk Drive）に格納することによってデータ記憶の信頼性を向上させる技術として、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）のレベル１が知られている。２台のＨＤＤがＲＡＩＤのレベル１により制御される場合、２台のＨＤＤは論理的に１台のＨＤＤとして扱われ、同一のデータがそれぞれのＨＤＤに格納される。ＲＡＩＤのレベル１を使用すると、一方のＨＤＤが故障したときに他方のＨＤＤからデータを読み出すことができるため、データ記憶の信頼性が向上する。
【０００３】
ＲＡＩＤ機能を制御するＲＡＩＤ制御手段が故障した場合であっても、故障したＲＡＩＤ制御手段を交換するにあたって、システム全体を停止することがないＲＡＩＤ制御システムが開示されている（特許文献１を参照）。このＲＡＩＤ制御システムは、ＲＡＩＤ制御手段を複数個有し、動作中のＲＡＩＤ制御手段に異常が発生すると他のＲＡＩＤ制御手段が動作することにより、システム全体が停止することを防止する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−３１９５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＲＡＩＤ制御を実行する装置では、装置サイズの大型化を抑制しつつ、可用性を高めることが望まれている。
【０００６】
本発明の目的は、ＲＡＩＤ制御を実行する装置において、装置サイズの大型化を抑制しつつ、可用性を高めることが可能な経路制御装置、制御方法、制御プログラム及びストレージシステムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る経路制御装置は、ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ制御部と、ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すための第２経路と、第１経路と第２経路を切り換える第１切換部と、ＲＡＩＤ制御部に異常があった場合に、第２経路により、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すように第１切換部を制御する切換制御部と、を有する。
【０００８】
また、本発明の他の側面に係る制御方法は、ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ制御部と、ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すための第２経路と、第１経路と第２経路を切り換える第１切換部と、を有する経路制御装置の制御方法であって、ＲＡＩＤ制御部に異常があった場合に、第２経路により、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すように第１切換部を制御する。
【０００９】
また、本発明の一側面に係る制御プログラムは、ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ制御部と、ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すための第２経路と、第１経路と第２経路を切り換える第１切換部と、を有する経路制御装置の制御プログラムであって、ＲＡＩＤ制御部に異常があった場合に、第２経路により、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は複数の記憶装置の内の１つの記憶装置からデータを読み出すように第１切換部を制御する、ことを経路制御装置に実行させる。
【００１０】
また、本発明の他の側面に係るストレージシステムは、ホストコンピュータと、複数の記憶装置と、ホストコンピュータからのデータを受信し、第１経路を介して複数の記憶装置に格納するＲＡＩＤ制御部と、経路制御装置と、を有し、経路制御装置は、ＲＡＩＤ制御部を介さずに、ホストコンピュータが複数の記憶装置の内の１つの記憶装置にデータを格納する又は１つの記憶装置からデータを読み出すための第２経路と、第１経路と第２経路を切り換える第１切換部と、ＲＡＩＤ制御部に異常があった場合に、第２経路により、ホストコンピュータが１つの記憶装置にデータを格納する又は１つの記憶装置からデータを読み出すように第１切換部を制御する切換制御部と、を有する。
【発明の効果】
【００１１】
本発明に係る経路制御装置、制御方法、制御プログラム及びストレージシステムは、ＲＡＩＤ制御を実行する装置において、装置サイズの大型化を抑制しつつ、可用性を高めることが可能である。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係るストレージシステムのハードウェア構成を示す図である。
【図２】ホスト記憶装置及びホストＣＰＵの概略構成を示す図である。
【図３】制御部記憶装置及びＣＰＵの概略構成を示す図である。
【図４】ホストコンピュータの動作の例を示すフローチャートである。
【図５】非ＲＡＩＤ接続処理の動作の例を示すフローチャートである。
【図６】経路制御装置の動作の例を示すフローチャートである。
【図７】他の実施形態に係るストレージシステムのハードウェア構成を示す図である。
【図８】他の実施形態に係る経路制御装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一側面に係る経路制御装置及び制御方法について図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１４】
＜第１実施形態＞
図１は、第１実施形態に係るストレージシステムのハードウェア構成を示す図である。
【００１５】
ストレージシステム１は、例えば特定の装置に組み込んで使用される組み込みコンピュータであり、特定の装置からの要求に従ってデータを格納するとともに、格納したデータを読み出す。ストレージシステム１は、ホストコンピュータ１０と、第１記憶装置２０ａと、第２記憶装置２０ｂと、経路制御装置３０とを有する。以下、ストレージシステム１の各部について詳細に説明する。
【００１６】
ホストコンピュータ１０は、例えばサーバ等のコンピュータである。ホストコンピュータ１０は、ホストコンピュータ１０が記憶するデータ又はホストコンピュータ１０と接続するサーバ等の他装置からのデータを、第１記憶装置２０ａ又は第２記憶装置２０ｂに格納する。また、ホストコンピュータ１０は、格納したデータを第１記憶装置２０ａ又は第２記憶装置２０ｂから読み出し、ホストコンピュータ１０に記憶又は他装置に送信する。ホストコンピュータ１０は、制御インタフェース１１と、メインインタフェース１２と、サブインタフェース１３と、ホスト記憶装置１４と、ホストＣＰＵ（Central Processing Unit）１５とを有する。これらの各部は、ホストコンピュータ１０のマザーボード上に実装される。以下、ホストコンピュータ１０の各部について詳細に説明する。
【００１７】
制御インタフェース１１は、経路制御装置３０と通信可能なインタフェース回路を有し、制御ケーブル５４を介して経路制御装置３０と電気的に接続して各種のデータ及び情報を送受信する。制御インタフェース１１は、例えばＩ２Ｃ（Inter-Integrated Circuit）等の方式で通信するための回路を有する。
【００１８】
メインインタフェース１２は、経路制御装置３０と通信可能なインタフェース回路を有し、メインケーブル５１を介して経路制御装置３０と電気的に接続して各種のデータ及び情報を送受信する。メインインタフェース１２は、例えばＳＡＴＡ（Serial ATA）、ＰＣＩｅ（PCI express）等の規格に準じた方式で通信するための回路を有する。
【００１９】
サブインタフェース１３は、経路制御装置３０と通信可能なインタフェース回路を有し、第１サブケーブル５２を介して経路制御装置３０と電気的に接続して各種のデータ及び情報を送受信する。サブインタフェース１３は、例えばＳＡＴＡ、ＰＣＩｅ等の規格に準じた方式で通信するための回路を有する。
【００２０】
ホスト記憶装置１４は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ＨＤＤ等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、ホスト記憶装置１４には、ＢＩＯＳ（Basic Input Output System）、ブートローダ、ホストコンピュータ１０の各種処理に用いられる各種データ、コンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いてホストコンピュータ１０にインストールされてもよい。可搬型記録媒体は、例えばＣＤ−ＲＯＭ（compact disk read only memory）、ＤＶＤ−ＲＯＭ（digital versatile disk read only memory）等である。
【００２１】
ホストＣＰＵ１５は、予めホスト記憶装置１４に記憶されているプログラムに基づいて動作する。なお、ホストＣＰＵ１５に代えて、ＤＳＰ（digital signal processor）、ＬＳＩ（large scale integration）等が用いられてもよい。また、ホストＣＰＵ１５に代えて、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programming Gate Array）等が用いられてもよい。
【００２２】
図２は、ホスト記憶装置及びホストＣＰＵの概略構成を示す図である。
【００２３】
ホスト記憶装置１４には、リンク確立プログラム１４１、ＲＡＩＤ状態取得プログラム１４２、経路切換プログラム１４３等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。ホストＣＰＵ１５は、ホスト記憶装置１４に記憶された各プログラムを読み取り、読み取った各プログラムに従って動作することにより、リンク確立部１５１、ＲＡＩＤ状態取得部１５２、経路切換部１５３等として機能する。
【００２４】
第１記憶装置２０ａ及び第２記憶装置２０ｂは、例えばＨＤＤ等の固定ディスク装置である。第１記憶装置２０ａ及び第２記憶装置２０ｂには、ホストコンピュータ１０から経路制御装置３０を介して送信された各種データ等が格納される。以後、第１記憶装置２０ａ及び第２記憶装置２０ｂを記憶装置２０と総称する。記憶装置２０は、複数の記憶装置であればよく、３個以上の記憶装置であってもよい。
【００２５】
経路制御装置３０は、例えばＲＡＩＤカードのような、ホストコンピュータ１０の拡張スロットに装着して使用される拡張カードである。経路制御装置３０は、第１切換部３１と、第２切換部３２と、第３切換部３３と、ＲＡＩＤ制御部３４と、切換制御部３５とを有する。以下、経路制御装置３０の各部について詳細に説明する。
【００２６】
第１切換部３１は、第１ＲＡＩＤケーブル３７ａを介してＲＡＩＤ制御部３４と接続し、第１非ＲＡＩＤケーブル３８ａを介して第２切換部３２と接続する。第１切換部３１は、更に、第１ＨＤＤケーブル５３ａを介して第１記憶装置２０ａと接続し、制御ケーブル４５を介して切換制御部３５と接続する。第１ＲＡＩＤケーブル３７ａは、第１経路の一例であり、第１非ＲＡＩＤケーブル３８ａは、第２経路の一例である。
【００２７】
第１切換部３１は、切換制御部３５による制御ケーブル４５を介した制御に応じて、第１ＨＤＤケーブル５３ａの接続先を第１ＲＡＩＤケーブル３７ａ及び第１非ＲＡＩＤケーブル３８ａのいずれか一つに切り換えるスイッチである。
【００２８】
第１切換部３１は、起動処理後の初期状態において、第１ＨＤＤケーブル５３ａと第１ＲＡＩＤケーブル３７ａとを接続している。第１切換部３１は、例えばマルチプレクサのような切換回路を使用して、第１ＨＤＤケーブル５３ａの接続先を切り換える。
【００２９】
第２切換部３２は、第１サブケーブル５２を介してホストコンピュータ１０と接続し、第２サブケーブル３６を介してＲＡＩＤ制御部３４と接続する。第２切換部３２は、更に、第１非ＲＡＩＤケーブル３８ａを介して第１切換部３１と接続し、第２非ＲＡＩＤケーブル３８ｂを介して第３切換部３３と接続し、制御ケーブル４６を介して切換制御部３５と接続する。第２非ＲＡＩＤケーブル３８ｂは、第３経路の一例である。
【００３０】
第２切換部３２は、切換制御部３５による制御ケーブル４６を介した制御に応じて、第１サブケーブル５２の接続先を第２サブケーブル３６、第１非ＲＡＩＤケーブル３８ａ及び第２非ＲＡＩＤケーブル３８ｂのいずれか一つに切り換えるスイッチである。
【００３１】
第２切換部３２は、起動処理後の初期状態において、第１サブケーブル５２と第２サブケーブル３６とを接続している。第２切換部３２は、例えばマルチプレクサのような切換回路を使用して、第１サブケーブル５２の接続先を切り換える。
【００３２】
第３切換部３３は、第２ＲＡＩＤケーブル３７ｂを介してＲＡＩＤ制御部３４と接続し、第２非ＲＡＩＤケーブル３８ｂを介して第２切換部３２と接続する。第３切換部３３は、更に、第２ＨＤＤケーブル５３ｂを介して第２記憶装置２０ｂと接続し、制御ケーブル４７を介して切換制御部３５と接続する。第２ＲＡＩＤケーブル３７ｂは第１経路の一例である。
【００３３】
第３切換部３３は、切換制御部３５による制御ケーブル４７を介した制御に応じて、第２ＨＤＤケーブル５３ｂの接続先を第２ＲＡＩＤケーブル３７ｂ及び第２非ＲＡＩＤケーブル３８ｂのいずれか一つに切り換えるスイッチである。
【００３４】
第３切換部３３は、起動処理後の初期状態において、第２ＨＤＤケーブル５３ｂと第２ＲＡＩＤケーブル３７ｂとを接続している。第３切換部３３は、例えばマルチプレクサのような切換回路を使用して、第２ＨＤＤケーブル５３ｂの接続先を切り換える。
【００３５】
ＲＡＩＤ制御部３４は、第１記憶装置２０ａ及び第２記憶装置２０ｂを論理的に１台のＨＤＤとして扱うように制御し、ホストコンピュータ１０にＲＡＩＤのレベル１の機能を提供する。ＲＡＩＤ制御部３４は、例えばＳｏＣ（System on a Chip）、ＣＰＵ、ＤＳＰ、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡ等により実装される。ＲＡＩＤ制御部３４は、第２サブケーブル３６、第１ＲＡＩＤケーブル３７ａ、第２ＲＡＩＤケーブル３７ｂ、制御ケーブル４８及びメインケーブル５１と接続する。
【００３６】
ＲＡＩＤ制御部３４は、第１ＲＡＩＤケーブル３７ａ及び第１ＨＤＤケーブル５３ａを介して、第１記憶装置２０ａの動作状態を示す情報を周期的に読み取り、読み取った情報をＲＡＩＤ制御部３４の第１レジスタ（不図示）に記憶する。ＲＡＩＤ制御部３４は、第２ＲＡＩＤケーブル３７ｂ及び第２ＨＤＤケーブル５３ｂを介して、第２記憶装置２０ｂの動作状態を示す情報を周期的に読み取り、読み取った情報をＲＡＩＤ制御部３４の第２レジスタ（不図示）に記憶する。記憶装置２０の動作状態を示す情報は、記憶装置２０への最後の書き込みが正常に終了したか否かの情報、記憶装置２０の動作状態を示すＳ．Ｍ．Ａ．Ｒ．Ｔ．（Self-Monitoring, Analysis and Reporting Technology）情報等を含む。
【００３７】
ＲＡＩＤ制御部３４は、自らの動作に異常を検出すると、検出した異常を示す情報をＲＡＩＤ制御部３４の第３レジスタ（不図示）に記憶する。
【００３８】
ＲＡＩＤ制御部３４は、ホストコンピュータ１０から送信されるデータを受信し、第１ＲＡＩＤケーブル３７ａを介して第１記憶装置２０ａに格納するとともに、第２ＲＡＩＤケーブル３７ｂを介して第２記憶装置２０ｂに格納する。ＲＡＩＤ制御部３４は、第１記憶装置２０ａ又は第２記憶装置２０ｂに記憶されているデータを第１ＲＡＩＤケーブル３７ａ又は第２ＲＡＩＤケーブル３７ｂを介して読み出す。ＲＡＩＤ制御部３４は、読み出したデータをメインケーブル５１又は第２サブケーブル３６を介してホストコンピュータ１０に送信する。
【００３９】
ＲＡＩＤ制御部３４は、ホストコンピュータ１０から送信された要求信号を受信し、要求信号に対応する処理を実行すると、要求信号に対する応答信号を、要求信号が送信されたケーブルと同一のケーブルを使用してホストコンピュータ１０へ送信する。また、ＲＡＩＤ制御部３４は、ホストコンピュータ１０又は経路制御装置３０の他の構成要素から送信された第１〜第３レジスタの読み出し要求信号を受信すると、該当するレジスタの値を含む読み出し応答信号を要求信号の送信元へ送信する。
【００４０】
切換制御部３５は、制御ケーブル５４を介してホストコンピュータ１０と接続され、制御ケーブル４５〜４８を介して第１切換部３１、第２切換部３２、第３切換部３３及びＲＡＩＤ制御部３４と接続される。切換制御部３５は、ＲＡＩＤ制御部３４に異常があった場合に、第１切換部３１を制御して、第１非ＲＡＩＤケーブル３８ａを介し且つＲＡＩＤ制御部３４を介さずにホストコンピュータ１０と第１記憶装置２０ａとを接続するように通信経路を切り換える。又は、切換制御部３５は、ＲＡＩＤ制御部３４に異常があった場合に、第３切換部３３を制御して、第２非ＲＡＩＤケーブル３８ｂを介し且つＲＡＩＤ制御部３４を介さずにホストコンピュータ１０と第２記憶装置２０ｂとを接続するように通信経路を切り換える。
【００４１】
切換制御部３５は、例えばＳｏＣ、ＣＰＵ、ＤＳＰ、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡ等により実装される。切換制御部３５は、インタフェース３５１と、制御部記憶装置３５２と、ＣＰＵ３５３とを有する。以下、切換制御部３５の各部について詳細に説明する。
【００４２】
インタフェース３５１は、制御インタフェース１１と同様のインタフェース回路を有し、制御ケーブル５４を介してホストコンピュータ１０と電気的に接続して各種のデータ及び情報を送受信する。インタフェース３５１は、更に第１切換部３１、第２切換部３２、第３切換部３３及びＲＡＩＤ制御部３４と、それぞれ制御ケーブル４５〜４８を介して電気的に接続して、各種のデータ及び情報を送受信する。
【００４３】
制御部記憶装置３５２は、ＲＯＭ、ＲＡＭ等のメモリ装置等を有する。また、制御部記憶装置３５２には、切換制御部３５の各種処理に用いられる各種データ、コンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて切換制御部３５にインストールされてもよい。
【００４４】
ＣＰＵ３５３は、プロセッサの一例であり、予め制御部記憶装置３５２に記憶されているプログラムに基づいて動作する。なお、ＣＰＵ３５３に代えて、ＤＳＰ、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡ等が用いられてもよい。
【００４５】
図３は、制御部記憶装置及びＣＰＵの概略構成を示す図である。
【００４６】
制御部記憶装置３５２には、ＨＤＤ状態取得プログラム３５４、経路設定プログラム３５５等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。ＣＰＵ３５３は、制御部記憶装置３５２に記憶された各プログラムを読み取り、読み取った各プログラムに従って動作することにより、ＨＤＤ状態取得部３５６、経路設定部３５７等として機能する。
【００４７】
図４は、ホストコンピュータの動作の例を示すフローチャートである。以下、図４に示したフローチャートを参照しつつ、ホストコンピュータの動作の例を説明する。なお、以下に説明する動作のフローは、主にホストＣＰＵ１５によりホストコンピュータ１０の各要素と協働して実行される。
【００４８】
ユーザがストレージシステム１の電源を投入すると、ホストＣＰＵ１５は、ＢＩＯＳを動作させる等の起動処理を実行する（ステップＳ１１）。次に、リンク確立部１５１は、メインインタフェース１２と経路制御装置３０のＲＡＩＤ制御部３４との間に、データ送受信用のリンクを確立し（ステップＳ１２）、確立が成功したか否かを判定する（ステップＳ１３）。リンク確立部１５１は、所定の手順に従って要求信号を送信し、一定期間内にリンク確立成功を示す応答信号を受信した場合、リンク確立成功と判定し、一定期間内にリンク確立成功を示す応答信号を受信しなかった場合、リンク確立失敗と判定する。
【００４９】
リンクの確立に失敗した場合（ステップＳ１３−Ｎ）、リンク確立部１５１は、サブインタフェース１３と経路制御装置３０のＲＡＩＤ制御部３４との間に、データ送受信用のリンクを確立する（ステップＳ１４）。次に、リンク確立部１５１は、確立が成功したか否かを判定する（ステップＳ１５）。リンク確立部１５１は、所定の手順に従って要求信号を送信し、一定期間内にリンク確立成功を示す応答信号を受信した場合、リンク確立成功と判定し、一定期間内にリンク確立成功を示す応答信号を受信しなかった場合、リンク確立失敗と判定する。経路切換部１５３は、ステップＳ１３−ＮとＳ１４との間に、制御インタフェース１１を介して経路制御装置３０の切換制御部３５に所定の要求信号を送信し、切換制御部３５によって第１サブケーブル５２と第２サブケーブル３６とを接続させてもよい。
【００５０】
ステップＳ１３及びＳ１５のいずれか一方でリンクの確立に成功した場合、ＲＡＩＤ状態取得部１５２は、確立されたリンクを介して、ＲＡＩＤ制御部３４の第３レジスタの読み出し要求信号を送信する。ＲＡＩＤ状態取得部１５２は、読み出し要求信号に対する応答信号を受信し、応答信号からＲＡＩＤ制御部３４の状態を取得する（ステップＳ１６）。次に、ＲＡＩＤ状態取得部１５２は、取得された状態が正常を示すか否かを判定する（ステップＳ１７）。
【００５１】
取得された状態が正常を示す場合（ステップＳ１７−Ｙ）、ホストＣＰＵ１５は、一連の処理を終了する。以後、ホストＣＰＵ１５は、確立されたリンクを介して、ＲＡＩＤ機能を提供するように制御された記憶装置２０にデータを格納する、又は記憶装置２０からデータを読み出す。
【００５２】
ステップＳ１５でリンクの確立に失敗した場合、又は、ステップＳ１７で取得された状態が異常を示す場合、経路切換部１５３は、ＲＡＩＤ制御部３４に異常があると判定し、非ＲＡＩＤ接続処理を実行して（ステップＳ１８）、一連の処理を終了する。
【００５３】
図５は、ステップＳ１８に示す非ＲＡＩＤ接続処理の動作の例を示すフローチャートである。
【００５４】
最初に、経路切換部１５３は、制御インタフェース１１を介して、経路制御装置３０に切換要求信号を送信する（ステップＳ３１）。切換要求信号は、ホストコンピュータ１０と記憶装置２０とを結ぶ通信経路を、ＲＡＩＤ制御部３４を介する通信経路から介さない通信経路に切り換えることを要求する信号である。経路切換部１５３は、制御インタフェース１１を介して、通信経路の切換結果を含む切換応答信号を経路制御装置３０から受信する（ステップＳ３２）。次に、経路切換部１５３は、切換結果が第１記憶装置２０ａへの切換、第２記憶装置２０ｂへの切換及び切換不可のいずれを示すかを判定する（ステップＳ３３）。
【００５５】
切換結果が第１記憶装置２０ａへの切換を示す場合、リンク確立部１５１は、サブインタフェース１３と第１記憶装置２０ａとの間にデータ送受信用のリンクを確立するため、所定の手順に従って要求信号を送信する（ステップＳ３４）。要求信号は、サブインタフェース１３、第１サブケーブル５２、第２切換部３２、第１非ＲＡＩＤケーブル３８ａ、第１切換部３１及び第１ＨＤＤケーブル５３ａから構成される通信経路を介して第１記憶装置２０ａへ送信される。
【００５６】
切換結果が第２記憶装置２０ｂへの切換を示す場合、リンク確立部１５１は、サブインタフェース１３と第２記憶装置２０ｂとの間にデータ送受信用のリンクを確立するため、所定の手順に従って要求信号を送信する（ステップＳ３５）。要求信号は、サブインタフェース１３、第１サブケーブル５２、第２切換部３２、第２非ＲＡＩＤケーブル３８ｂ、第３切換部３３及び第２ＨＤＤケーブル５３ｂから構成される通信経路を介して第２記憶装置２０ｂへ送信される。
【００５７】
ステップＳ３４又はステップＳ３５の次に、リンク確立部１５１は、リンクの確立に成功したか否かを判定する（ステップＳ３６）。リンク確立部１５１は、要求信号の送信から一定期間内にリンク確立成功を示す応答信号を受信した場合、リンク確立成功と判定し、一定期間内にリンク確立成功を示す応答信号を受信しなかった場合、リンク確立失敗と判定する。
【００５８】
リンクの確立に成功した場合（ステップＳ３６−Ｙ）、ホストＣＰＵ１５は、一連の処理を終了する。以後、ホストＣＰＵ１５は、確立されたリンクを介して、リンクが確立された記憶装置２０にデータを格納する、又はリンクが確立された記憶装置２０からデータを読み出す。
【００５９】
ステップＳ３３で切換結果が切換不可を示す場合、又は、ステップＳ３６でリンクの確立に失敗した場合、ホストＣＰＵ１５は、記憶装置２０が使用できないこと示す画面を表示装置（不図示）に表示して（ステップＳ３７）、一連の処理を終了する。
【００６０】
図６は、経路制御装置の動作の例を示すフローチャートである。以下、図６に示したフローチャートを参照しつつ、経路制御装置３０の動作の例を説明する。なお、以下に説明する動作のフローは、主にＣＰＵ３５３により経路制御装置３０の各要素と協働して実行される。
【００６１】
最初に、ＣＰＵ３５３は、インタフェース３５１を介して、ホストコンピュータ１０から切換要求信号を受信する（ステップＳ５１）。次に、ＨＤＤ状態取得部３５６は、インタフェース３５１を介して、ＲＡＩＤ制御部３４に第１レジスタの読み出し要求信号を送信する。次に、ＨＤＤ状態取得部３５６は、インタフェース３５１を介して、ＲＡＩＤ制御部３４から第１レジスタの読み出し応答信号を受信し、応答信号から第１記憶装置２０ａの動作状態を示す情報を取得する（ステップＳ５２）。
【００６２】
次に、経路設定部３５７は、第１記憶装置２０ａが正常に動作しているか否かを判定する（ステップＳ５３）。例えば、取得した情報が、第１記憶装置２０ａへの最後の書き込みが正常に終了していないことを示す場合、経路設定部３５７は、第１記憶装置２０ａが正常に動作していないと判定する。また、取得した情報が、第１記憶装置２０ａからデータを読み出すときに発生したエラーの割合が所定の閾値を超えていることを示す場合、経路設定部３５７は、第１記憶装置２０ａが正常に動作していないと判定する。経路設定部３５７は、第１記憶装置２０ａが正常に動作していないと判定されない場合、第１記憶装置２０ａが正常に動作していると判定する。
【００６３】
第１記憶装置２０ａが正常に動作している場合（ステップＳ５３−Ｙ）、経路設定部３５７は、第１サブケーブル５２の接続先を第１非ＲＡＩＤケーブル３８ａに設定するように、インタフェース３５１を介して第２切換部３２を制御する。第２切換部３２は、第１サブケーブル５２と第１非ＲＡＩＤケーブル３８ａを接続する（ステップＳ５４）。
【００６４】
次に、経路設定部３５７は、第１ＨＤＤケーブル５３ａの接続先を第１非ＲＡＩＤケーブル３８ａに設定するように、インタフェース３５１を介して第１切換部３１を制御する。第１切換部３１は、第１非ＲＡＩＤケーブル３８ａと第１ＨＤＤケーブル５３ａを接続する（ステップＳ５５）。ステップＳ５４及びＳ５５の処理により、切換制御部３５は、ホストコンピュータ１０が第１非ＲＡＩＤケーブル３８ａを介して第１記憶装置２０ａにデータを格納する又は第１記憶装置２０ａからデータを読み出すための通信経路を設定する。
【００６５】
次に、ＣＰＵ３５３は、インタフェース３５１を介して、第１記憶装置２０ａへの切換を示す切換応答信号をホストコンピュータ１０に送信し（ステップＳ５６）、一連の処理を終了する。
【００６６】
ステップＳ５３において第１記憶装置２０ａが正常に動作していない場合（ステップＳ５３−Ｎ）、ＨＤＤ状態取得部３５６は、インタフェース３５１を介して、ＲＡＩＤ制御部３４に第２レジスタの読み出し要求信号を送信する。ＨＤＤ状態取得部３５６は、インタフェース３５１を介して、ＲＡＩＤ制御部３４から第２レジスタの読み出し応答信号を受信して、応答信号から第２記憶装置２０ｂの動作状態を示す情報を取得する（ステップＳ５７）。
【００６７】
次に、経路設定部３５７は、第１記憶装置２０ａが正常に動作しているか否かの判定と同様の基準により、第２記憶装置２０ｂが正常に動作しているか否かを判定する（ステップＳ５８）。
【００６８】
第２記憶装置２０ｂが正常に動作している場合（ステップＳ５８−Ｙ）、経路設定部３５７は、第１サブケーブル５２の接続先を第２非ＲＡＩＤケーブル３８ｂに設定するように、インタフェース３５１を介して第２切換部３２を制御する。第２切換部３２は、第１サブケーブル５２と第２非ＲＡＩＤケーブル３８ｂを接続する（ステップＳ５９）。
【００６９】
次に、経路設定部３５７は、第２ＨＤＤケーブル５３ｂの接続先を第２非ＲＡＩＤケーブル３８ｂに設定するように、インタフェース３５１を介して第３切換部３３を制御する。第３切換部３３は、第２非ＲＡＩＤケーブル３８ｂと第２ＨＤＤケーブル５３ｂを接続する（ステップＳ６０）。ステップＳ５９及びＳ６０の処理により、切換制御部３５は、ホストコンピュータ１０が第２非ＲＡＩＤケーブル３８ｂを介して第２記憶装置２０ｂにデータを格納する又は第２記憶装置２０ｂからデータを読み出すための通信経路を設定する。
【００７０】
次に、ＣＰＵ３５３は、インタフェース３５１を介して、第２記憶装置２０ｂへの切換を示す切換応答信号をホストコンピュータ１０に送信し（ステップＳ６１）、一連の処理を終了する。
【００７１】
ステップＳ５８において第２記憶装置２０ｂが正常に動作していない場合（Ｓ５８−Ｎ）、ＣＰＵ３５３は、インタフェース３５１を介して、切換不可を示す切換応答信号をホストコンピュータ１０に送信し（ステップＳ６２）、一連の処理を終了する。
【００７２】
以上詳述したように、経路制御装置は、ＲＡＩＤ制御部に異常があった場合に、他のＲＡＩＤ制御部を使用することなく、ホストコンピュータが１つの記憶装置にデータを格納する又は１つの記憶装置からデータを読み出すことを可能にする。ホストコンピュータのユーザは、経路制御装置を使用することにより、ＲＡＩＤ制御部に異常があった場合でも記憶装置にデータを格納する又は記憶装置からデータを読み出すことが可能なため、ＲＡＩＤ制御部を修理するまでの間にデータを使用することができる。従って、経路制御装置は、ＲＡＩＤ制御を実行する装置において、装置サイズの大型化を抑制しつつ、可用性を高めることが可能である。
【００７３】
また、経路制御装置は、第２経路を切り換える第２切換部を更に有することにより、ＲＡＩＤ制御部に異常があった場合に、データの格納又は読み出しを実行する記憶装置を選択することができる。従って、経路制御装置は、第１記憶装置２０ａが故障した場合でも、第２記憶装置２０ｂにより処理を継続させることが可能となり、可用性をさらに向上させることが可能となる。
【００７４】
また、経路制御装置は、１つの記憶装置への最終の書き込みが正常に完了していると判定したとき、１つの記憶装置に接続される第２経路を選択するように第２切換部を制御する。これにより、経路制御装置は、データが正常に記憶されている可能性の高い記憶装置を適切に選択できる。
【００７５】
なお、第１実施形態においては、ステップＳ１７におけるＲＡＩＤ制御部３４の異常判定をホストコンピュータ１０が実行したが、経路制御装置３０の切換制御部３５が実行してもよい。
【００７６】
例えば、ステップＳ１６のＲＡＩＤ制御部の状態取得及びステップＳ１７の異常判定の代わりに、切換制御部３５は、ホストコンピュータ１０の起動処理後に周期的にＲＡＩＤ制御部３４の第３レジスタの読み出し要求信号をＲＡＩＤ制御部３４へ送信する。切換制御部３５は、一定期間内に対応する応答信号を受信しない場合、又は、異常を示す情報を含む応答信号を受信した場合、ステップＳ５２〜Ｓ６２の処理を、切換応答信号の送信を切換通知信号の送信に代えて実行する。ホストコンピュータ１０は、切換通知信号を受信すると、ステップＳ３３〜Ｓ３７の処理を実行する。
【００７７】
また、第２サブケーブル３６、第１ＲＡＩＤケーブル３７ａ、第２ＲＡＩＤケーブル３７ｂ、第１非ＲＡＩＤケーブル３８ａ及び第２非ＲＡＩＤケーブル３８ｂは、バス配線であってもよい。同様に、メインケーブル５１、第１サブケーブル５２、第１ＨＤＤケーブル５３ａ、第２ＨＤＤケーブル５３ｂ、制御ケーブル４５〜４８及び５４は、バス配線であってもよい。
【００７８】
また、リンク確立部１５１がリンクを確立し、リンクが確立されたか否かを判定することに代えて、ＣＰＵ１５は、ＢＩＯＳの動作においてホストコンピュータ１０へ接続するデバイスを認識し、リンク確立部１５１は、その認識結果を判定してもよい。この場合、ＣＰＵ１５は、デバイスを認識し、デバイスを認識したか否かをＣＰＵ１５内のレジスタ（不図示）に書き込む。次に、リンク確立部１５１は、ＣＰＵ１５内のレジスタを読み取り、デバイスが認識されたことをレジスタが示す場合はリンク確立成功と判定し、デバイスが認識されていないことをレジスタが示す場合はリンク確立失敗と判定する。
【００７９】
＜第２実施形態＞
図７は、第２実施形態に係るストレージシステムのハードウェア構成を示す図である。
【００８０】
第２実施形態は、ストレージシステム１´が経路制御装置１３０とは別個にＲＡＩＤカード１３１を有し、ＲＡＩＤ制御部３４がＲＡＩＤカード１３１に実装されている点で第１実施形態と相違し、その他の点は第１実施形態と同様である。経路制御装置１３０及びＲＡＩＤカード１３１以外のストレージシステム１´の構成要素の構成及び機能は、同一符号が付されたストレージシステム１の構成要素の構成及び機能と同一であるため、ここでは詳細な説明を省略する。
【００８１】
ＲＡＩＤカード１３１は、例えばホストコンピュータ１０の拡張スロットに装着して使用される拡張カードであり、経路制御装置１３０が装着される拡張スロットとは異なる拡張スロットに装着して使用される。
【００８２】
ＲＡＩＤ制御を実行するストレージシステム１´は、経路制御装置のサイズの大型化を抑制しつつ、可用性を高めることが可能である。
【００８３】
＜第３実施形態＞
図８は、他の実施形態に係る経路制御装置３０´の概略構成を示すブロック図である。
【００８４】
経路制御装置３０´は、切換制御部３５の代わりに切換制御回路３５´を有する点が第１実施形態の経路制御装置３０と相違し、その他の点は第１実施形態と同様である。切換制御回路３５´以外の経路制御装置３０´の構成要素の構成及び機能は、同一符号が付された経路制御装置３０の構成要素の構成及び機能と同一であるため、ここでは詳細な説明を省略する。また、図８において、ＨＤＤにデータを格納する又はＨＤＤからデータを読み出す際の通信経路となる各ケーブルと記憶装置２０の記載は省略する。
【００８５】
経路制御装置３０´の切換制御回路３５´は、経路制御装置３０のＣＰＵ３５３の代わりに各種処理を実行する。切換制御回路３５´は、ＨＤＤ状態取得回路３５６´、経路設定回路３５７´等を有する。
【００８６】
ＨＤＤ状態取得回路３５６´は、ＨＤＤ状態取得部３５６、及び、ＲＡＩＤ制御部３４に対するインタフェース３５１と同様の機能を有する。ＨＤＤ状態取得回路３５６´は、ＲＡＩＤ制御部３４から記憶装置２０の動作状態を示す情報を取得する。
【００８７】
経路設定回路３５７´は、経路設定部３５７、及び、ホストコンピュータ１０、第１切換部３１、第２切換部３２及び第３切換部３３に対するインタフェース３５１と同様の機能を有する。経路設定回路３５７´は、ホストコンピュータ１０から受信する切換要求信号及び記憶装置２０の動作状態に応じて、第１切換部３１、第２切換部３２及び第３切換部３３を制御し、ホストコンピュータ１０と記憶装置２０との間の通信経路を切り換える。
【００８８】
経路制御装置は、切換制御回路３５´を使用する場合においても、装置サイズの大型化を抑制しつつ、可用性を高めることが可能である。
【符号の説明】
【００８９】
１    ストレージシステム
１０    ホストコンピュータ
２０ａ    第１記憶装置
２０ｂ    第２記憶装置
３０、１３０    経路制御装置
３１    第１切換部
３２    第２切換部
３３    第３切換部
３４    ＲＡＩＤ制御部
３５    切換制御部
３７ａ    第１ＲＡＩＤケーブル（第１経路）
３７ｂ    第２ＲＡＩＤケーブル（第１経路）
３８ａ    第１非ＲＡＩＤケーブル（第２経路）
３８ｂ    第２非ＲＡＩＤケーブル（第３経路）
【図１】
2019148986.tif 000003
【図２】
2019148986.tif 000004
【図３】
2019148986.tif 000005
【図４】
2019148986.tif 000006
【図５】
2019148986.tif 000007
【図６】
2019148986.tif 000008
【図７】
2019148986.tif 000009
【図８】
2019148986.tif 000010