(57)【特許請求の範囲】
【請求項１】
入力される第１のデータを保持し、前記第１のデータを二重化のためのキャッシュデータとして転送し、記憶装置に前記第１のデータを書き込む前に前記第１のデータの送信元に書き込みが完了したことを示す応答信号を出力し、前記第１のデータを前記記憶装置に書き込む第１の書き込み手段と、入力される前記第１のデータを二重化のためのキャッシュデータとして転送せずに前記記憶装置に書き込む第２の書き込み手段のいずれかを選択して、入力される前記第１のデータを前記記憶装置に書き込む第１の制御手段と、
前記第１の制御手段から転送されてくる前記キャッシュデータを保持する手段と、入力される第２のデータの前記記憶装置への書き込みを制御する手段とを有する第２の制御手段と、
前記第１の制御手段が前記第１のデータを前記キャッシュデータとして転送する際の処理状態と、前記第１の制御手段が前記第１のデータを前記記憶装置に書き込む際の処理状態とを監視する監視手段と、
前記監視手段の監視結果に基づいて、新たに入力される前記第１のデータを前記記憶装置に書き込む際に、前記第１の書き込み手段と前記第２の書き込み手段のいずれが適しているかを判断する判断手段と、
前記判断手段が前記第２の書き込み手段の方が適していると判断した場合に、前記第１のデータの前記送信元に、前記第２の書き込み手段への切り替えを行っていること示す所定の情報を通知する制御方法通知手段と
を備え、
前記第１の制御手段は、前記第１の書き込み手段を選択しているときに、前記判断手段が前記第２の書き込み手段の方が適していると判断した場合に、前記第２の書き込み手段を選択して、新たに入力される前記第１のデータを前記記憶装置に書き込むことを特徴とする制御回路。
【請求項２】
前記第１の制御手段は、前記第２の書き込み手段を選択している際に、前記判断手段が前記第１の書き込み手段の方が適していると判断した場合に、第１の書き込み手段を選択して、新たに入力される前記第１のデータを前記記憶装置に書き込むことを特徴とする請求項１に記載の制御回路。
【請求項３】
前記監視手段は、前記第１の制御手段が前記第１のデータを前記キャッシュデータとして転送する際の転送速度と、前記第１の制御手段が前記第１のデータを前記記憶装置に書き込む際の書き込み速度とを計測し、
前記判断手段は、計測した前記転送速度および前記書き込み速度を基に、前記第１の書き込み手段と、前記第２の書き込み手段のいずれが適するかを判断することを特徴とする請求項１または２に記載の制御回路。
【請求項４】
前記第１の制御手段の処理能力に対し、実際に稼働している割合を示す利用率と、前記利用率のうち前記キャッシュデータの前記第２の制御手段への転送処理に要する割合を示す転送利用率とを計測する利用率計測手段をさらに備え、
前記判断手段は、前記監視手段の前記監視結果と、前記利用率計測手段が計測する前記利用率および前記転送利用率とを基に、前記第１の書き込み手段と、前記第２の書き込み手段のいずれが適するかを判断することを特徴とする請求項１から３いずれかに記載の制御回路。
【請求項５】
前記第１の制御手段が、新たに入力される前記第１のデータを、前記第２の書き込み手段によって前記記憶装置に書き込む際に、
前記第２の制御手段は、前記第１のデータとは異なる前記第２のデータを、前記第１の制御手段による前記第１のデータの書き込み処理と並列処理となるように前記記憶装置に書き込むことを特徴とする請求項１から４いずれかに記載の制御回路。
【請求項６】
入力される第１のデータを保持し、前記第１のデータを二重化のためのキャッシュデータとして転送し、記憶装置に前記第１のデータを書き込む前に前記第１のデータの送信元に書き込みが完了したことを示す応答信号を出力し、前記第１のデータを前記記憶装置に書き込む第１の書き込み手段と、入力される前記第１のデータを二重化のためのキャッシュデータとして転送せずに前記記憶装置に書き込む第２の書き込み手段のいずれかを選択して、入力される前記第１のデータを前記記憶装置に書き込む第１の制御手段と、
前記第１の制御手段から転送されてくる前記キャッシュデータを保持する手段と、入力される第２のデータの前記記憶装置への書き込みを制御する手段とを有する第２の制御手段と、
前記第１の制御手段が前記第１のデータを前記キャッシュデータとして転送する際の処理状態と、前記第１の制御手段が前記第１のデータを前記記憶装置に書き込む際の処理状態とを監視する監視手段と、
前記監視手段の監視結果に基づいて、新たに入力される前記第１のデータを前記記憶装置に書き込む際に、前記第１の書き込み手段と前記第２の書き込み手段のいずれが適しているかを判断する判断手段と、
を備え、
前記監視手段は、前記第１の制御手段が前記第１のデータを前記キャッシュデータとして転送する際の転送速度と、前記第１の制御手段が前記第１のデータを前記記憶装置に書き込む際の書き込み速度とを計測し、
前記判断手段は、計測した前記転送速度および前記書き込み速度を基に、前記第１の書き込み手段と、前記第２の書き込み手段のいずれが適するかを判断し、
前記第１の制御手段は、前記第１の書き込み手段を選択しているときに、前記判断手段が前記第２の書き込み手段の方が適していると判断した場合に、前記第２の書き込み手段を選択して、新たに入力される前記第１のデータを前記記憶装置に書き込むことを特徴とする制御回路。
【請求項７】
請求項１から６いずれかに記載の制御回路と、
不揮発性の半導体記憶装置によって構成される記憶装置と、を備え、
前記制御回路の前記第１の制御手段は入力される前記第１のデータを前記記憶装置に書き込むことを特徴とするディスクアレイ装置。
【請求項８】
請求項７に記載のディスクアレイ装置と、
前記ディスクアレイ装置の前記制御回路を介して前記記憶装置へのデータの書き込みを行う手段を有する情報処理装置と、を備え、
前記情報処理装置は、前記制御回路が前記第２の書き込み手段を選択したことを検知したときに、前記第１の制御手段と前記第２の制御手段が前記記憶装置に並列に書き込みを行うように、前記制御回路に前記第１のデータと前記第２のデータを出力することを特徴とする情報処理システム。
【請求項９】
情報処理装置と、記憶装置と、前記情報処理装置から入力されるデータを前記記憶装置に書き込む制御回路とを備える情報処理システムにおける制御方法であって、
前記制御回路は、入力される第１のデータを保持し、前記第１のデータを二重化のためのキャッシュデータとして転送し、前記記憶装置に前記第１のデータを書き込む前に前記第１のデータの送信元に書き込みが完了したことを示す応答信号を出力し、前記第１のデータを前記記憶装置に書き込む第１の書き込み方法によって、入力される前記第１のデータを前記記憶装置に書き込み、
前記第１のデータを前記キャッシュデータとして転送する際の処理状態と、前記第１のデータを前記記憶装置に書き込む際の処理状態とを監視し、
監視結果に基づいて、新たに入力される前記第１のデータを前記記憶装置に書き込む際に、前記第１の書き込み方法と、入力される前記第１のデータを二重化のための前記キャッシュデータとして転送せずに前記記憶装置に書き込む第２の書き込み方法のいずれが適しているかを判断し、
前記第１の書き込み方法を選択しているときに、前記第２の書き込み方法の方が適していると判断した場合に、前記第２の書き込み方法を選択し、前記第１のデータの前記送信元の前記情報処理装置に、前記第２の書き込み方法への切り替えを行っていること示す所定の情報を通知し、新たに入力される前記第１のデータを前記記憶装置に書き込むことを特徴とする制御方法。
【請求項１０】
前記制御回路は、前記第２の書き込み方法の方が適していると判断した場合に、前記第１のデータの前記送信元に、前記第２の書き込み方法への切り替えを行っていること示す所定の情報を通知し、
前記所定の情報を受け取った前記送信元の前記情報処理装置は、前記第２の書き込み方法によって前記第１のデータと第２のデータが２つのパスを介して並列に前記記憶装置に書き込まれるように前記第１のデータと前記第２のデータを出力すること特徴とする請求項９に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置へのデータ書き込み技術に関するものであり、特に、書き込みを行うコントローラを複数、備えるディスクアレイ装置に関するものである。
【背景技術】
【０００２】
情報システムに用いられる記憶装置には、大容量のデータ保存や高信頼性が要求されることが多くなり、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）のようなディスクアレイ装置が広く用いられている。また、フラッシュメモリのような不揮発性の半導体記憶デバイスの大容量化や高信頼性化が進み、ＳＳＤ（Solid State Drive）と呼ばれる大容量の半導体記憶装置が情報処理装置やディスクアレイ装置等の記憶装置として用いられるようになっている。そのようなフラッシュメモリを用いたＳＳＤによって構成される記憶装置は、フラッシュストレージとも呼ばれる。ＳＳＤは、小型で大容量の記憶装置を構成することができるため、ＳＳＤを記憶装置として用いることで限られたスペースの中で大容量のディスクアレイ装置を構成することが可能になる。また、ＳＳＤは、高速のＩ／Ｏ（Input / output）処理が可能なため、ハードディスクドライブ等を用いた場合に比べて高性能化も可能となる。
【０００３】
ディスクアレイ装置では、ホストからの複数のＩ／Ｏ要求への対応や冗長化のため、記憶装置への書き込みおよび読み出し等のＩ／Ｏ処理を行うコントローラが２つ以上備えられていることがある。Ｉ／Ｏ処理を行うコントローラが二重化されたディスクアレイ装置では、コントローラを二重に備えている特性を生かして高速にＩ／Ｏ処理を行うことができることが望ましい。そのような、記憶装置への書き込みを制御するコントローラを複数、備えるディスクアレイ装置において、記憶装置へのＩ／Ｏ処理を高速に行うための技術としては、例えば、特許文献１のような技術が開示されている。
【０００４】
特許文献１は、コントローラを二重化して備えているディスクアレイ装置に関するものである。特許文献１のディスクアレイ装置は、キャッシュメモリをそれぞれ有する第１のコントローラおよび第２のコントローラと、書き込みを行うデータを二重化して保持するためのキャッシュメモリと、データの保存先となるハードディスクドライブを備えている。特許文献１では、ホストからの書き込み要求があった際に、コントローラが書き込みを行うデータをキャッシュメモリに保存した後に、記憶装置への書き込み前にホストへの応答を返すライトバックキャッシュ方式が示されている。ライトバックキャッシュ方式では、応答を返してからデータの書き込みを行うことで、ホスト側の処理と記憶装置への書き込み処理が並列化されるためディスクアレイ装置における記憶装置への書き込み処理が高速化され得る。
【０００５】
また、特許文献１のディスクアレイ装置では、ホストから書き込み要求があった際に、第１のコントローラまたは第２のコントローラが有するキャッシュメモリと、二重化のためのキャッシュメモリとの間で書き込み用のデータを二重化して保持している。このような書き込みを行うためのデータを二重化して保持する方式は、ミラードキャッシュ方式と呼ばれる。ディスクアレイ装置においてライトバックキャッシュ方式を用いる際に、ミラードキャッシュ方式を併せて用いることで応答処理後に障害が発生した際に、二重化されたデータを用いて書き込みを行うことが可能になる。そのため、コントローラが二重化されたディスクアレイ装置においてライトバックキャッシュ方式とミラードキャッシュ方式を用いることで、高速化と信頼性の維持の両立が可能になり得る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２３２９６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術は次のような点で十分ではない。不揮発性の半導体記憶装置を用いたＳＳＤによって構成されるディスクアレイ装置では、記憶装置への書き込み処理が、ハードディスクドライブ等に書き込みを行う場合に比べて非常に高速化されている。そのため、Ｉ／Ｏ処理を行うコントローラがデータを記憶装置に書き込むために要する時間に比べて、書き込み用のデータを二重化するために要する時間の方が長くなる状態が生じ得る。特に、ホストからの書き込み要求のデータ量または頻度が増大したとき、Ｉ／Ｏ処理を行うコントローラやＩ／Ｏ処理の制御を行うＣＰＵ（Central Processing Unit）等の負荷が増大すると、データの二重化に要する時間が長くなる可能性が高くなる。
【０００８】
Ｉ／Ｏ処理の制御を行うＣＰＵ等の負荷の増大によってデータの二重化の処理に要する時間が長くなり、記憶装置への書き込みに要する時間よりも長くなると、データの二重化処理がボトルネックになり得る。そのような場合には、Ｉ／Ｏ処理が長時間化し、ホストとなる情報処理装置等の要求に応じて高速にＩ／Ｏ処理を行うことが出来ず、ディスクアレイ装置の性能低下が生じる。そのため、特許文献１の技術は、不揮発性の半導体記憶装置によって構成されるディスクアレイ装置において、書き込み要求の増大によって負荷量が増加したような場合においても、処理速度の低下を抑制し性能を維持するための技術としては十分ではない。
【０００９】
本発明は、上記の課題を解決するため、書き込み要求の増大によって負荷量が増加したような場合においても、処理速度の低下を抑制し性能を維持することができる制御回路を得ることを目的としている。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明の制御回路は、第１の制御手段と、第２の制御手段と、監視手段と、判断手段を備えている。第１の制御手段は、第１の書き込み手段と第２の書き込み手段のいずれかを選択して、入力される第１のデータを記憶装置に書き込む。第１の書き込み手段は、入力される第１のデータを保持し、第１のデータを二重化のためのキャッシュデータとして転送する。また、第１の書き込み手段は、記憶装置に第１のデータを書き込む前に第１のデータの送信元に書き込みが完了したことを示す応答信号を出力し、第１のデータを記憶装置に書き込む。第２の書き込み手段は、入力される第１のデータを二重化のためのキャッシュデータとして転送せずに記憶装置に書き込む。第２の制御手段は、第１の制御手段から転送されてくるキャッシュデータを保持する手段と、入力される第２のデータの記憶装置への書き込みを制御する手段とを有する。監視手段は、第１の制御手段が第１のデータをキャッシュデータとして転送する際の処理状態と、第１の制御手段が第１のデータを記憶装置に書き込む際の処理状態とを監視する。判断手段は、監視手段の監視結果に基づいて、新たに入力される第１のデータを記憶装置に書き込む際に、第１の書き込み手段と第２の書き込み手段のいずれが適しているかを判断する。また、第１の制御手段は、第１の書き込み手段を選択しているときに、判断手段が第２の書き込み手段の方が適していると判断した場合に、第２の書き込み手段を選択して、新たに入力される第１のデータを記憶装置に書き込む。
【００１１】
本発明の制御方法は、第１の書き込み方法によって、入力される第１のデータを記憶装置に書き込む。第１の書き込み方法は、入力される第１のデータを保持し、第１のデータを二重化のためのキャッシュデータとして転送する方法である。また、第１の書き込み方法は、記憶装置に第１のデータを書き込む前に第１のデータの送信元に書き込みが完了したことを示す応答信号を出力し、第１のデータを記憶装置に書き込む方法である。本発明の制御方法は、第１のデータをキャッシュデータとして転送する際の処理状態と、第１のデータを記憶装置に書き込む際の処理状態とを監視する。本発明の制御方法は、監視結果に基づいて、新たに入力される第１のデータを記憶装置に書き込む際に、第１の書き込み方法と、入力される第１のデータを二重化のためのキャッシュデータとして転送せずに記憶装置に書き込む第２の書き込み方法のいずれが適しているかを判断する。本発明の制御方法は、第１の書き込み方法を選択しているときに、第２の書き込み方法の方が適していると判断した場合に、第２の書き込み方法を選択して、新たに入力される第１のデータを記憶装置に書き込む。
【発明の効果】
【００１２】
本発明によると、書き込み要求の増大によって負荷量が増加したような場合においても、処理速度の低下を抑制し性能を維持することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態の情報処理装置の構成の概要を示す図である。
【図４】本発明の第２の実施形態のディスクアレイ装置の構成の一部を示す図である。
【図５】本発明の第２の実施形態のディスクアレイ装置におけるデータの流れの例を模式的に示した図である。
【図６】本発明の第２の実施形態のディスクアレイ装置におけるデータの流れの例を模式的に示した図である。
【図７】本発明の第２の実施形態における動作フローの概要を示す図である。
【図８】本発明の第２の実施形態における動作フローの概要を示す図である。
【図９】本発明の第２の実施形態における動作状態の例をグラフとして示した図である。
【図１０】本発明の第２の実施形態における動作状態の例をグラフとして示した図である。
【図１１】本発明の第２の実施形態における動作状態の例をグラフとして示した図である。
【図１２】本発明の第２の実施形態の他の構成の例を示した図である。
【図１３】本発明の第２の実施形態の他の構成の例におけるデータの流れを模式的に示した図である。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態の制御回路の構成の概要を示したものである。本実施形態の制御回路は、第１の制御手段１と、第２の制御手段２と、監視手段３と、判断手段４を備えている。
【００１５】
第１の制御手段１は、第１の書き込み手段と第２の書き込み手段のいずれかを選択して、入力される第１のデータを記憶装置に書き込む。第１の書き込み手段は、入力される第１のデータを保持し、第１のデータを二重化のためのキャッシュデータとして転送する。また、第１の書き込み手段は、記憶装置に第１のデータを書き込む前に第１のデータの送信元に書き込みが完了したことを示す応答信号を出力し、第１のデータを記憶装置に書き込む。第２の書き込み手段は、入力される第１のデータを二重化のためのキャッシュデータとして転送せずに記憶装置に書き込む。第２の制御手段２は、第１の制御手段１から転送されてくるキャッシュデータを保持する手段と、入力される第２のデータの記憶装置への書き込みを制御する手段とを有する。監視手段３は、第１の制御手段１が第１のデータをキャッシュデータとして転送する際の処理状態と、第１の制御手段１が第１のデータを記憶装置に書き込む際の処理状態とを監視する。判断手段４は、監視手段３の監視結果に基づいて、新たに入力される第１のデータを記憶装置に書き込む際に、第１の書き込み手段と第２の書き込み手段のいずれが適しているかを判断する。また、第１の制御手段１は、第１の書き込み方法を選択しているときに、判断手段４が第２の書き込み手段の方が適していると判断した場合に、第２の書き込み手段を選択して、新たに入力される第１のデータを記憶装置に書き込む。
【００１６】
本実施形態の制御回路は、第１の制御手段１において、記憶装置に書き込むための第１のデータをキャッシュデータとして転送する第１の書き込み手段と、転送を行わない第２の書き込み手段のいずれかによって第１のデータを記憶装置に書き込んでいる。また、監視手段３において第１のデータを転送する際の処理状態と、第１のデータを記憶装置に書き込む際の処理状態を監視し、監視結果に基づいて、判断手段４が第１の書き込み手段と第２の書き込み手段のいずれが適するかを判断している。本実施形態の制御回路では、第１の書き込み手段を選択して第１のデータを記憶装置に書き込んでいる際に、判断手段４が第２の書き込み手段の方が適していると判断すると、第１の書き込み手段から第２の書き込み手段への移行が行われる。このように、第１のデータを転送する際の処理状態と、第１のデータを記憶装置に書き込む際の処理状態の監視結果を基に、書き込み手段を判断することで、書き込み処理の負荷が増大した場合などに、より適切な制御方法に移行することができる。そのため、書き込み処理の負荷が増大した場合などにも、性能低下を抑制して記憶装置への書き込み処理を高速に行うことが可能になり得る。その結果、本実施形態の制御回路を用いることで、ディスクアレイ装置において書き込み要求の増大によって負荷量が増加したような場合においても、処理速度の低下を抑制し性能を維持することができる。
【００１７】
（第２の実施形態）
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の情報システムの構成の概要を示したものである。本実施形態の情報システムは、情報処理装置１０と、ディスクアレイ装置２０を備えている。本実施形態の情報システムは、ホストである情報処理装置１０が、ディスクアレイ装置２０へのデータの書き込みおよびディスクアレイ装置２０からのデータの読み出しを行うシステムである。ディスクアレイ装置２０は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）によって構成されている。ディスクアレイ装置２０は、ＲＡＩＤ以外の構成であってもよい。また、ホストである情報処理装置１０は、通信ネットワークを介して他の情報処理装置と接続されていてもよい。
【００１８】
情報処理装置１０の構成について説明する。図３は、本実施形態の情報処理装置１０の構成の概要を示したものである。情報処理装置１０は、ディスクアレイ装置２０へのデータの書き込みおよびディスクアレイ装置２０からのデータの読み出しを行うホストコンピュータとしての機能を有する。情報処理装置１０は、情報処理部１１と、パス制御部１２と、制御切り替え監視部１３を備えている。
【００１９】
情報処理部１１は、アプリケーションプログラムの実行等の処理を行いディスクアレイ装置２０へのデータの書き込みおよびディスクアレイ装置２０からのデータの読み出しを行う。情報処理部１１は、自装置の処理に必要なデータおよび他装置からの要求のあったデータについてディスクアレイ装置２０への書き込みおよびディスクアレイ装置２０からの読み出しを行うＩ／Ｏ（Input / output）処理を実施する。情報処理部１１は、Ｉ／Ｏ処理を行う際にパス制御部１２を介してディスクアレイ装置２０にアクセスを行う。
【００２０】
パス制御部１２は、ディスクアレイ装置２０にアクセスする際に用いるディスクアレイ装置のコントローラ部へのパスを制御する機能を有する。パス制御部１２は、制御切り替え監視部１３の監視結果に基づいて、複数のコントローラ部からディスクアレイ装置２０へのアクセスする際に用いるコントローラ部を選択する。複数パスを介してディスクアレイ装置２０の各論理ディスクに並列にアクセスする方が有利な場合には、パス制御部１２は、並列処理を行うためのコントローラ部を複数、選択する。また、二重化処理によってディスクアレイ装置２０の各論理ディスクにアクセスする方が有利な場合は、パス制御部１２は、論理ディスクにアクセスするコントローラ部と、キャッシュデータを二重化するコントローラ部をそれぞれ選択する。
【００２１】
本実施形態において並列処理とは、ディスクアレイ装置２０が有する複数のコントローラ部それぞれが、ディスクアレイ装置２０の記憶装置に形成されている論理ディスクへのＩ／Ｏ処理を並列に行うことをいう。また、二重化処理とは、ディスクアレイ装置２０のコントローラ部が書き込みを行うデータを他のコントローラ部に転送し、冗長化された状態で論理ディスクへの書き込みを行った後に、キャッシュデータを削除して冗長化を解除することをいう。二重化処理を行っているときには、論理ディスクへのＩ／Ｏ処理は、他のコントローラが転送されたデータを保持することで、データが冗長化された状態で行われる。パス制御部１２は、データの書き込みに用いる情報処理部１１からＩ／Ｏ処理の要求を受けたときに、データの書き込みに用いるコントローラ部を選択してＩ／Ｏ処理の要求を送信する。
【００２２】
制御切り替え監視部１３は、ディスクアレイ装置２０のコントローラ部から制御切り替え信号Ｓ１１が入力されているかを監視する機能を有する。ディスクアレイ装置２０に並列処理で書き込みを行うことを示す制御切り替え信号Ｓ１１を検知すると、制御切り替え監視部１３は、受け取った並列処理を示す情報をパス制御部１２に送る。また、コントローラ部間の二重化処理で書き込みを行うことを示す制御切り替え信号Ｓ１１を検知すると、制御切り替え監視部１３は、二重化処理を示す情報をパス制御部１２に送る。
【００２３】
ディスクアレイ装置２０の構成について説明する。ディスクアレイ装置２０は、図２に示すように第１のコントローラ部２１と、第２のコントローラ部２２と、記憶装置２３を備えている。
【００２４】
第１のコントローラ部２１および第２のコントローラ部２２は、情報処理装置１０からＩ／Ｏ処理の要求に基づいて記憶装置２３の各論理ディスクへのデータの書き込みおよび各論理ディスクからのデータの読み出しを制御する機能を有する。図４は、本実施形態の第１のコントローラ部２１および第２のコントローラ部２２の構成の概要を、コントローラ部３０として示したものである。コントローラ部３０は、ＣＰＵ（Central Processing Unit）３１と、Ｉ／Ｏ（Input / Output）制御部３２と、ＣＰＵ利用率監視部３３と、コントローラ間通信性能監視部３４と、記憶装置性能監視部３５と、制御切り替え管理部３６を備えている。また、コントローラ部３０は、キャッシュメモリ部３７と、コントローラ間通信インタフェース部３８をさらに備えている。
【００２５】
ＣＰＵ３１は、情報処理装置１０からのデータのＩ／Ｏ処理の要求、すなわち、データの入出力要求に応じてディスクアレイ装置２０へのデータの書き込みおよびディスクアレイ装置２０からのデータの読み出しを制御する機能を有する。ＣＰＵ３１は、Ｉ／Ｏ制御部３２を制御して、情報処理装置１０からのデータの入出力要求に応じてディスクアレイ装置２０へのデータの書き込みおよびディスクアレイ装置２０からのデータの読み出しを行う。また、ＣＰＵ３１は、Ｉ／Ｏ制御部３２を制御して、他のコントローラ部との間でデータの二重化の処理を行う。
【００２６】
Ｉ／Ｏ制御部３２は、ＣＰＵ３１の制御に基づいてディスクアレイ装置２０へのデータの書き込みおよびディスクアレイ装置２０からのデータの読み出しを行う機能を有する。Ｉ／Ｏ制御部３２は、情報処理装置１０から書き込み要求を受けたデータをディスクアレイ装置２０に書き込みを行う。また、Ｉ／Ｏ制御部３２は、情報処理装置１０から読み出し要求を受けた領域のデータをディスクアレイ装置２０から読み出し、情報処理装置１０に送る。
【００２７】
Ｉ／Ｏ制御部３２は、二重化処理によって記憶装置２３にデータを書き込む際にキャッシュメモリ部３７のデータを他のコントローラ部に転送した後に、記憶装置２３にデータの書き込みを行わずに情報処理装置１０に書き込みの完了を示す応答信号を送信する。Ｉ／Ｏ制御部３２は、キャッシュメモリ部３７に所定の量のデータが保存されると、キャッシュメモリ部３７に保存されていたデータを記憶装置２３に書き込む。Ｉ／Ｏ制御部３２は、キャッシュメモリ部３７のデータの記憶装置２３への書き込みが完了すると、キャッシュメモリ部３７のデータを削除する。また、Ｉ／Ｏ制御部３２は、キャッシュメモリ部３７のデータの記憶装置２３への書き込みが完了すると、他のコントローラ部にキャッシュメモリ部３７のデータの削除を通知する。
【００２８】
Ｉ／Ｏ制御部３２は、二重化処理のためのデータを他のコントローラ部から受け取ると、受け取ったデータをキャッシュメモリ部３７に保存する。また、Ｉ／Ｏ制御部３２は、他のコントローラ部からキャッシュメモリ部３７のデータの削除の通知を受け取るとキャッシュメモリ部３７のデータを削除する。
【００２９】
Ｉ／Ｏ制御部３２は、並列処理によって記憶装置２３へのデータの書き込みを行う際にキャッシュメモリ部３７のデータを他のコントローラ部に転送せずに、記憶装置２３へのデータの書き込みを行う。
【００３０】
ＣＰＵ利用率監視部３３は、ＣＰＵ３１の利用率を監視する機能を有する。ＣＰＵ利用率監視部３３は、ＣＰＵ３１の利用率を計測し、計測した結果を制御切り替え管理部３６に出力する。また、ＣＰＵ利用率監視部３３は、ＣＰＵ３１の利用率のうち二重化処理に関する処理に相当する利用率を計測し、計測した結果を制御切り替え管理部３６に出力する。ＣＰＵ３１の利用率とは、ＣＰＵ３１の演算処理能力のうち実際の処理に利用している割合のことをいう。
【００３１】
コントローラ間通信性能監視部３４は、他のコントローラ部との間の二重化処理の応答時間およびデータ転送性能を計測する機能を有する。コントローラ間通信性能監視部３４は、他のコントローラ部との間で通信を行う際の応答時間、データ転送量、データ転送速度および平均のデータ長を計測する。コントローラ間通信性能監視部３４は、計測した応答時間、データ転送量、データ転送速度および平均のデータ長の情報を制御切り替え管理部３６に出力する。
【００３２】
記憶装置性能監視部３５は、記憶装置２３へのデータ書き込みの処理の応答時間およびデータ転送性能を計測する機能を有する。記憶装置性能監視部３５は、記憶装置性能監視部３５は、記憶装置２３へのデータ書き込みの処理の応答時間、データ転送速度および平均のデータ長を計測する。記憶装置性能監視部３５は、計測した記憶装置２３へのデータ書き込みの処理の応答時間、データ転送速度および平均のデータ長の情報を制御切り替え管理部３６に出力する。また、本実施形態のコントローラ間通信性能監視部３４および記憶装置性能監視部３５の機能は、第１の実施形態の監視手段３の機能に相当する。
【００３３】
制御切り替え管理部３６は、並列処理と二重化処理のいずれが有利かを判断する機能を有する。また、制御切り替え管理部３６は、並列処理と二重化処理のいずれを選択するのかを示す情報を情報処理装置１０の制御切り替え監視部１３に通知する機能を有する。
【００３４】
制御切り替え管理部３６は、通常の動作を行っているときに処理の切り替えによって応答性能が向上できるかを監視する。制御切り替え管理部３６は、二重化処理を行っているとき、コントローラ部間で二重化処理のために行われるデータ転送量と、記憶装置２３の論理ディスクの数と論理ディスクへの転送速度から並列処理によって性能が向上するかを判断する。データ長が長い場合には、論理ディスクへの転送効率が低下するため、性能が向上するかの判断は、平均データ長の長さごとに設定された基準によって行われてもよい。並列処理によって処理性能が向上するとき、制御切り替え管理部３６は、ＣＰＵ３１の利用率および二重化処理に係るＣＰＵ３１の利用率を基に、並列処理への切り替えの要否を判断する。
【００３５】
制御切り替え管理部３６は、例えば、ＣＰＵ３１の利用率が所定の基準よりも高く、かつ、二重化処理に係る利用率が所定の基準よりも高いとき、並列処理への切り替えが必要と判断する。ＣＰＵ３１の利用率および二重化処理に係る利用率がともに高いときは、二重化処理に要する時間が長くなる恐れがあり、並列処理に切り替えた方が応答完了までに要する時間を抑制することができるからである。制御切り替え管理部３６は、ＣＰＵ３１の利用率が所定の基準よりも低いときおよび二重化処理に係る利用率が所定の基準よりも低いとき、並列処理への切り替えは不要と判断する。
【００３６】
制御切り替え管理部３６は、二重化処理に係る利用率の変化量を基に、並列処理への切り替えの要否を判断してもよい。例えば、制御切り替え管理部３６は、ＣＰＵ３１の利用率が所定の基準以上のときに、二重化処理に係る利用率の上昇率が所定の基準を超えたときに並列処理への切り替えが必要と判断するようにしてもよい。ＣＰＵ３１の利用率が高く、二重化処理に係る利用率が上昇している場合には、二重化処理のために必要なＣＰＵ３１の処理能力を十分に割り当てられていないため、データの転送処理に遅延が生じる恐れがあるからである。ＣＰＵ３１の利用率が高く、二重化処理に係る利用率が上昇している場合には、並列処理に移行することで、記憶装置２３へのデータ書き込み処理の速度が向上することが期待される。
【００３７】
制御切り替え管理部３６は、並列処理を行っているとき二重化処理の方が、性能が向上すると判断すると、ＣＰＵ３１の利用率を基に、二重化処理への切り替えの要否を判断する。制御切り替え管理部３６は、例えば、ＣＰＵ３１の利用率が所定の基準よりも低いとき、二重化処理への切り替えが必要と判断する。
【００３８】
制御切り替え管理部３６は、二重化処理の動作を行っているとき、並列処理が有利である判断すると、並列処理が有利であることを示す情報を制御切り替え信号Ｓ１１として情報処理装置１０に送る。また、制御切り替え管理部３６は、二重化処理の動作を行っているとき、並列処理が有利である判断すると、並列処理が有利であることを示す情報を処理方法切替信号Ｓ３１としてＩ／Ｏ制御部３２に送る。
【００３９】
制御切り替え管理部３６は、並列処理の動作を行っているとき、二重化処理が有利である判断すると、二重化処理が有利であることを示す情報を制御切り替え信号Ｓ１１として情報処理装置１０に送る。また、制御切り替え管理部３６は、並列処理の動作を行っているとき、二重化処理が有利である判断すると、二重化処理が有利であることを示す情報を処理方法切替信号Ｓ３１としてＩ／Ｏ制御部３２に送る。また、本実施形態の制御切り替え管理部３６の機能は、第１の実施形態の判断手段４に相当する。
【００４０】
キャッシュメモリ部３７は、記憶装置２３に書き込むデータを保持する機能を有する。キャッシュメモリ部３７は、記憶装置２３に書き込むデータをＩ／Ｏ制御部３２から受け取ると、受け取ったデータを保存する。キャッシュメモリ部３７は、Ｉ／Ｏ制御部３２からデータを削除する要求を受け取ると、保存しているデータを削除する。また、キャッシュメモリ部３７は、記憶装置２３に書き込むデータを他のコントローラ部からＩ／Ｏ制御部３２を介して受け取ると、受け取ったデータを保存する。キャッシュメモリ部３７は、データを受け取った他のコントローラ部からデータを削除する要求を受け取ると、保存しているデータを削除する。
【００４１】
コントローラ間通信インタフェース部３８は、他のコントローラ部との間でデータの送受信を行う機能を有する。コントローラ間通信インタフェース部３８は、Ｉ／Ｏ制御部３２から二重化処理のためのデータを受け取ると、受け取ったデータを二重化のためのデータを保持する他のコントローラ部に送る。コントローラ間通信インタフェース部３８は、二重化処理のためにキャッシュとして保持しているデータを削除する情報を受け取ると、受け取った情報を二重化のためのデータを保持している他のコントローラ部に送る。
【００４２】
コントローラ間通信インタフェース部３８は、他のコントローラ部から二重化処理のためのデータを受け取ると、受け取ったデータをＩ／Ｏ制御部３２送る。コントローラ間通信インタフェース部３８は、他のコントローラ部から二重化処理のためにキャッシュとして保持しているデータを削除する情報を受け取ると、受け取った情報をＩ／Ｏ制御部３２に送る。
【００４３】
本実施形態の第１のコントローラ部２１のＣＰＵ３１、Ｉ／Ｏ制御部３２およびキャッシュメモリ部３７の機能は、第１の実施形態の第１の制御手段１に相当する。また、本実施形態の第２のコントローラ部２２のＣＰＵ３１、Ｉ／Ｏ制御部３２およびキャッシュメモリ部３７の機能は、第１の実施形態の第２の制御手段２に相当する。また、本実施形態のディスクアレイ装置２０は、第１のコントローラ部２１および第２のコントローラ部２２の２つのコントローラ部によって、記憶装置２３へのＩ／Ｏ処理を制御しているが、コントローラ部の数は３つ以上であってもよい。
【００４４】
記憶装置２３は、第１のコントローラ部２１および第２のコントローラ部２２の制御に基づいてデータの保存および出力を行う機能を有する。本実施形態の記憶装置２３は、半導体記憶装置によって構成されるＳＳＤ（Solid State Drive）が用いられている。記憶装置２３は、複数のＳＳＤのユニットで構成されていてもよい。ＳＳＤを構成する半導体記憶装置としては、例えば、フラッシュメモリを用いることができる。ＳＳＤを構成する半導体記憶装置は、フラッシュメモリ以外の不揮発性の半導体記憶装置であってもよい。本実施形態の記憶装置２３は、全記憶領域を複数に分割して形成される論理ドライブごとにデータの書き込みおよび出力を行うことができる。
【００４５】
本実施形態の情報システムの動作について説明する。始めに、情報処理装置１０がディスクアレイ装置２０の記憶装置２３に、第１のコントローラ部２１を介して二重化処理によってデータを書き込む際の動作について説明する。図５は、本実施形態の情報システムにおいて二重化処理によって記憶装置２３へのデータの書き込みが行われる際のデータの流れを模式的に示したものである。図５は、第１のコントローラ部２１が、記憶装置２３のうちＳＳＤと記載された４つの論理ドライブに二重化処理によってデータの書き込みを行う例について示している。
【００４６】
ディスクアレイ装置２０への保存が必要なデータが生じると、情報処理装置１０は、データの書き込み要求と、書き込みを行うデータをディスクアレイ装置２０の第１のコントローラ部２１に送る。第１のコントローラ部２１に送られたデータの書き込み要求と書き込みを行うデータは、第１のコントローラ部２１のＩ／Ｏ制御部３２に入力される。Ｉ／Ｏ制御部３２に入力されたデータは、キャッシュメモリ部３７に保存される。情報処理装置１０から第１のコントローラ部２１にデータが送られキャッシュメモリ部３７に保存される際のデータの流れは、図５の（Ａ１）に相当する。
【００４７】
Ｉ／Ｏ制御部３２に書き込みを行うデータが入力されるとＣＰＵ３１は、Ｉ／Ｏ制御部３２を制御して、第２のコントローラ部２２との間でデータの二重化を行う。データの二重化を行うため、Ｉ／Ｏ制御部３２は、受け取ったデータを第２のコントローラ部２２にコントローラ間通信インタフェース部３８を介して送る。二重化のためのデータを受け取った第２のコントローラ部２２は、受け取ったデータをキャッシュデータとしてキャッシュメモリ部３７に保存する。第１のコントローラ部２１から第２のコントローラ部２２に二重化を行うためのデータが送られ、第２のコントローラ部２２に保存される際のデータの流れは、図５の（Ａ２）に相当する。
【００４８】
二重化のためのデータをキャッシュデータとして第２のコントローラ部２２に送ると、Ｉ／Ｏ制御部３２は、情報処理装置１０に書き込みの完了の応答を送信する。Ｉ／Ｏ制御部３２は、情報処理装置１０に書き込みの完了の応答を送信する際のデータの流れは、図５の（Ａ３）に相当する。また、図５の（Ａ１）、（Ａ２）および（Ａ３）のデータの流れに係る処理は、二重化が完了した段階で情報処理装置１０に書き込みの完了を通知する処理であり、Ｆａｓｔ  Ｗｒｉｔｅ動作とも呼ばれ、書き込み時の応答性能を向上させる。
【００４９】
書き込みの完了の応答を送信すると、ＣＰＵ３１は、Ｉ／Ｏ制御部３２を制御して、キャッシュメモリ部３７に保存されているデータの記憶装置２３への書き込みを行う。Ｉ／Ｏ制御部３２は、ＣＰＵ３１の制御に基づいてキャッシュメモリ部３７に保存していたデータを、記憶装置２３に書き込み、データの保存を行う。キャッシュメモリ部３７に保存していたデータを、記憶装置２３に書き込む際のデータの流れは、図５の（Ａ４）に相当する。
【００５０】
キャッシュメモリ部３７に保存していたデータが記憶装置２３に書き込まれると、ＣＰＵ３１は、Ｉ／Ｏ制御部３２を制御してキャッシュデータとして保存していたデータを消去する情報を、二重化のためのデータを送った第２のコントローラ部２２に送る。Ｉ／Ｏ制御部３２は、キャッシュデータとして保存していたデータを消去する情報を、コントローラ間通信インタフェース部３８を介して、第２のコントローラ部２２に送る。
【００５１】
第２のコントローラ部２２は、第１のコントローラ部２１からャッシュデータとして保存していたデータを消去する情報を受け取ると、キャッシュメモリ部３７に保存していたデータを消去する。また、キャッシュデータとして保存していたデータを消去する情報を第２のコントローラ部２２に送ると、Ｉ／Ｏ制御部３２は、キャッシュメモリ部３７に保存していたデータを消去する。第１のコントローラ部２１および第２のコントローラ部２２に保存されていたキャッシュデータを消去する際のデータの流れは、図５の（Ａ５）に相当する。
【００５２】
図５の（４）および（５）に係る処理は、Ｗｒｉｔｅ  Ｂａｃｋ動作とも呼ばれる。また、第１のコントローラ部２１および第２のコントローラ部２２に保存されていたキャッシュデータは、次のデータが保存されるまで消去されずに維持され、次のキャッシュデータが保存されるときに上書きされる構成としてもよい。
【００５３】
次に、本実施形態の情報システムにおいて並列処理によって記憶装置２３へのデータの書き込みが行われる場合の動作について説明する。図６は、本実施形態の情報システムにおいて並列処理によって記憶装置２３へのデータの書き込みが行われる際のデータの流れを模式的に示したものである。図６は、第１のコントローラ部２１および第２のコントローラ部２２が、記憶装置２３のうちＳＳＤと記載された４つの論理ドライブに並列処理によってデータの書き込みを行う例について示している。
【００５４】
ディスクアレイ装置２０への保存が必要なデータが生じると、情報処理装置１０は、データの書き込み要求と、書き込みを行うデータをディスクアレイ装置２０の第１のコントローラ部２１および第２のコントローラ部２２にそれぞれ送る。第１のコントローラ部２１および第２のコントローラ部２２に送られたデータの書き込み要求と書き込みを行うデータは、それぞれのＩ／Ｏ制御部３２に入力される。Ｉ／Ｏ制御部３２に入力されたデータは、それぞれキャッシュメモリ部３７に保存される。情報処理装置１０から第１のコントローラ部２１および第２のコントローラ部２２に送られたデータがそれぞれキャッシュメモリ部３７に保存される際のデータの流れは、図６の（Ｂ１）に相当する。
【００５５】
Ｉ／Ｏ制御部３２に書き込みを行うデータが入力されキャッシュメモリ部３７に保存されると、ＣＰＵ３１は、Ｉ／Ｏ制御部３２を制御してキャッシュメモリ部３７に保存していたデータを記憶装置２３に書き込む。Ｉ／Ｏ制御部３２は、ＣＰＵ３１の制御に基づいてキャッシュメモリ部３７に保存していたデータを、記憶装置２３に書き込み、データの保存を行う。キャッシュメモリ部３７に保存していたデータを、記憶装置２３に書き込む際のデータの流れは、図６の（Ｂ２）に相当する。
【００５６】
記憶装置２３へのデータの書き込みを行うと、第１のコントローラ部２１および第２のコントローラ部２２のＩ／Ｏ制御部３２は、情報処理装置１０に書き込みの完了の応答をそれぞれ送信する。第１のコントローラ部２１および第２のコントローラ部２２のＩ／Ｏ制御部３２が情報処理装置１０に書き込みの完了の応答をそれぞれ送信する際のデータの流れは、図６の（Ｂ３）に相当する。また、第１のコントローラ部２１および第２のコントローラ部２２のＩ／Ｏ制御部３２は、キャッシュメモリ部３７に保存していたデータを消去する。キャッシュメモリ部３７に保存していたデータを消去する際のデータの流れは図６の（Ｂ４）に相当する。第１のコントローラ部２１および第２のコントローラ部２２に保存されていたキャッシュデータは、次のデータが保存されるまで消去されずに維持され、次のキャッシュデータが保存されるときに上書きされる構成としてもよい。
【００５７】
本実施形態の情報システムにおいて、記憶装置２３からのデータの読み出しは、二重化処理または並列処理のうち、書き込みに用いられている処理方式によって行われる。第１のコントローラ部２１および第２のコントローラ部２２は、情報処理装置１０からの要求に基づいて、記憶装置２３に保存されているデータを情報処理装置１０に送る。
【００５８】
次に、本実施形態の情報システムが二重化処理による記憶装置２３へのデータの書き込みから、並列処理によるデータの書き込みへと移行する際の動作について説明する。図７は、本実施形態の情報システムにおいて二重化処理から並列処理へと動作状態を移行する際の動作フローの概要を示したものである。
【００５９】
二重化処理による動作を行っている際に、制御切り替え管理部３６は、ＣＰＵ利用率監視部３３、コントローラ間通信性能監視部３４および記憶装置性能監視部３５からそれぞれ送られてくるデータを監視する。制御切り替え管理部３６は、二重化処理を行っている際に、各部位から送られてくるデータを監視することでＣＰＵ３１の稼働状態、二重化用データの転送状態および記憶装置へのデータの書き込み状態をそれぞれ監視する（ステップ１０１）。
【００６０】
ＣＰＵ利用率監視部３３は、ＣＰＵ３１の処理状態を監視し、ＣＰＵ３１の利用率および二重化処理に関するＣＰＵ３１の利用率を計測し、計測した結果を制御切り替え管理部３６に出力する。
【００６１】
コントローラ間通信性能監視部３４は、第２のコントローラ部２２との間の二重化処理の応答時間、データ転送量、データ転送速度および平均のデータ長を計測する。コントローラ間通信性能監視部３４は、応答時間、データ転送量、データ転送速度および平均のデータ長の情報を制御切り替え管理部３６に出力する。
【００６２】
記憶装置性能監視部３５は、記憶装置２３へのデータ書き込みの処理の応答時間、データ転送速度および平均データ長を計測する。記憶装置性能監視部３５は、計測した記憶装置２３へのデータ書き込みの処理の応答時間、データ転送速度および平均のデータ長の情報を制御切り替え管理部３６に出力する。
【００６３】
第１のコントローラ部２１の制御切り替え管理部３６は、ＣＰＵ利用率監視部３３、コントローラ間通信性能監視部３４および記憶装置性能監視部３５から送られてくる計測結果を基に、処理方式の切り替えによる性能向上の有無の判断を行う。制御切り替え管理部３６は、各計測結果を基に、処理方式の切り替えによって書き込み速度が向上し性能の向上が期待できるかを判断する（ステップ１０２）。
【００６４】
制御切り替え管理部３６は、コントローラ部間で二重化処理のために行われるデータ転送に要する時間を推測する。制御切り替え管理部３６は、データ転送速度等を基に所定のデータ量を記憶装置２３に書き込む際に二重化処理に要する時間を推測する。また、制御切り替え管理部３６は、二重化処理を行わずに所定のデータ量を記憶装置２３に書き込む際に要する時間を、記憶装置２３へのデータ転送速度等を基に推測する。制御切り替え管理部３６は、二重化処理に要する時間と、二重化処理を行わずに書き込む際に要する時間を比較する。
【００６５】
二重化処理に要する時間の方が短いとき、制御切り替え管理部３６は、二重化処理の方が処理方法として適していると判断する。並列処理への移行では性能の向上が期待できず二重化処理の方が適していると判断すると（ステップ１０３でＮｏ）、制御切り替え管理部３６は、切り替えの判断を行わずにステップ１０１に戻り、各データの監視を継続する。
【００６６】
記憶装置２３にデータを書き込む処理に要する時間の方が短いとき、制御切り替え管理部３６は、並列処理の方が処理方法として適していると判断する。並列処理によって性能の向上が期待できると判断すると（ステップ１０３でＹｅｓ）、制御切り替え管理部３６は、並列処理への切り替えの要否を判断する。
【００６７】
第１のコントローラ部２１の制御切り替え管理部３６は、ＣＰＵ３１の利用率と二重化処理に係るＣＰＵ３１の利用率を基に、並列処理への移行の要否を判断する（ステップ１０４）。第１のコントローラ部２１の制御切り替え管理部３６は、ＣＰＵ３１の利用率が所定の基準よりも高く、かつ、二重化処理に係る利用率が所定の基準よりも高いとき、並列処理への移行が必要と判断する。ＣＰＵ３１の利用率が高く、かつ、二重化処理に係る利用率が高い場合には、二重化処理に十分な処理能力が割り当てることが出来ないため、二重化処理のままでは処理効率の向上が期待できないと判断できるからである。ＣＰＵ３１の利用率を判断する所定の基準と、二重化処理に係る利用率を判断する所定の基準は、それぞれの基準としてあらかじめ設定されている。
【００６８】
並列処理への移行が必要と判断すると（ステップ１０５でＹｅｓ）、制御切り替え管理部３６は、並列処理への切り替えを示す情報を処理方法切替信号Ｓ３１としてＩ／Ｏ制御部３２に送る。また、並列処理への切り替えが必要と判断すると、制御切り替え管理部３６は、並列処理への切り替えを示す情報を制御切り替え信号Ｓ１１としてホストである情報処理装置１０の制御切り替え監視部１３に送る（ステップ１０６）。
【００６９】
Ｉ／Ｏ制御部３２が並列処理への切り替えを示す処理方法切替信号Ｓ３１を受け取ると、ＣＰＵ３１およびＩ／Ｏ制御部３２は、二重化処理を停止し、情報処理装置１０から受け取ったデータを記憶装置２３に書き込む（ステップ１０７）。Ｉ／Ｏ制御部３２は、情報処理装置１０から受け取ったデータを記憶装置２３に書き込むと書き込みが完了したことを示す応答を情報処理装置１０に送る（ステップ１０８）。
【００７０】
並列処理への切り替えを示す制御切り替え信号Ｓ１１を受け取ると、情報処理装置１０の制御切り替え監視部１３は、並列処理への切り替えを示す情報をパス制御部１２に送る。並列処理への切り替えを示す情報を受け取ると、情報処理部１１からデータの書き込み要求を受けた際に、パス制御部１２は、第１のコントローラ部２１および第２のコントローラ部２２を並列に使用するように書き込みを行うパスの選択を行う。２つのコントローラ部が並列に使用されるように選択されることで並列処理による書き込み処理が開始され二重化処理から並列処理への移行が完了する（ステップ１０９）。
【００７１】
ＣＰＵ３１の利用率が所定の基準よりも低いとき、および、二重化処理に係る利用率が所定の基準よりも低いとき、制御切り替え管理部３６は、並列処理への切り替えが不要と判断する。並列処理への切り替えが不要と判断すると（ステップ１０５でＮｏ）、制御切り替え管理部３６は、ステップ１０１に戻って各部位から送られてくるデータの監視を継続する。
【００７２】
次に本実施形態の情報システムにおいて記憶装置２３へのデータの書き込みを並列処理から二重化処理へ移行する際の動作について説明する。図８は、本実施形態の情報システムにおいて記憶装置２３へのデータの書き込みを並列処理から二重化処理へ移行する際の動作フローの概要を示したものである。
【００７３】
制御切り替え管理部３６は、並列処理によって書き込みを行っているとき、ＣＰＵ３１の稼働状態および記憶装置２３へのデータの書き込み状態を監視する（ステップ１１１）。制御切り替え管理部３６は、二重化処理時と同様にＣＰＵ利用率監視部３３および記憶装置性能監視部３５から入力される各データを監視する。
【００７４】
制御切り替え管理部３６は、並列処理から二重化処理に移行することで性能の向上が期待できるかを判断する（ステップ１１２）。二重化処理に移行することで性能の向上が期待できるかを判断するため、制御切り替え管理部３６は、二重化処理に要する時間と、二重化処理を行わずにデータを記憶装置２３に書き込む際に要する時間を比較する。二重化処理に要する時間は、あらかじめ設定された値または二重化処理時に計測された平均速度を基にした値が用いられる。
【００７５】
二重化処理に要する時間の方が長いとき、制御切り替え管理部３６は、並列処理の方が処理方法として適していると判断する。二重化処理への移行では性能の向上が期待できず並列処理の方が適していると判断すると（ステップ１１３でＮｏ）、制御切り替え管理部３６は、切り替えの判断を行わずにステップ１１１に戻り、各データの監視を継続する。
【００７６】
二重化処理に要する時間の方が短いとき、制御切り替え管理部３６は、二重化処理の方が処理方法として適していると判断する。二重化処理の方が適し性能の向上が期待できると判断すると（ステップ１１３でＹｅｓ）、制御切り替え管理部３６は、ＣＰＵ３１の利用率から二重化処理への切り替えが必要かを判断する（ステップ１１４）。ＣＰＵ３１の利用率が所定の基準よりも低いとき、制御切り替え管理部３６は、二重化処理への移行が必要と判断する。ＣＰＵ３１の利用率を判断する際の所定の基準は、あらかじめ設定されている。
【００７７】
二重化処理への移行が必要と判断すると（ステップ１１５でＹｅｓ）、制御切り替え管理部３６は、二重化処理への切り替えを示す情報を処理方法切替信号Ｓ３１としてＩ／Ｏ制御部３２に送る。また、二重化処理への切り替えが必要と判断すると、制御切り替え管理部３６は、二重化処理への切り替えを示す情報を制御切り替え信号Ｓ１１としてホストである情報処理装置１０の制御切り替え監視部１３に送る（ステップ１１６）。
【００７８】
Ｉ／Ｏ制御部３２が二重化処理への切り替えを示す処理方法切替信号Ｓ３１を受け取ると、ＣＰＵ３１およびＩ／Ｏ制御部３２は、情報処理装置１０から受け取っているデータを、二重化処理を行わずに記憶装置２３に書き込む（ステップ１１７）。Ｉ／Ｏ制御部３２は、情報処理装置１０から受け取ったデータを記憶装置２３に書き込むと、書き込みが完了したことを示す応答を情報処理装置１０に送る（ステップ１１８）。
【００７９】
二重化処理への切り替えを示す制御切り替え信号Ｓ１１を受け取ると、情報処理装置１０の制御切り替え監視部１３は、二重化処理への切り替えを示す情報をパス制御部１２に送る。二重化処理への切り替えを示す情報を受け取ると、情報処理部１１からデータの書き込み要求を受けた際に、パス制御部１２は、第１のコントローラ部２１を使用して書き込みを行うようにパスの選択を行う。二重化処理への切り替えを示す情報を受け取ると、情報処理装置１０から出力される書き込み要求には、二重化処理によって書き込みを行うことを示す情報が付加される。
【００８０】
パス制御部１２が、第１のコントローラ部２１を使用して二重化処理によって書き込みを行うようにパスの選択を行うと、二重化処理による書き込み処理が開始される（ステップ１１９）。第１のコントローラ部２１は、二重化処理によって書き込みを行うことを示す書き込み要求を受け取ると、第２のコントローラ部２２との間でデータの二重化を行って、データの書き込みを行う。
【００８１】
ＣＰＵ３１の利用率が所定の基準よりも高いとき、制御切り替え管理部３６は、二重化処理への切り替えが不要と判断する。二重化処理への切り替えが不要と判断すると（ステップ１１５でＮｏ）、制御切り替え管理部３６は、ステップ１１１に戻って各部位から送られてくるデータの監視を継続する。
【００８２】
図９は、二重化処理によって書き込み処理を行っている際に、二重化のためのデータの転送処理がデータの書き込み処理に対して余裕がある場合の例について示している。図９の最上段のグラフは、コントローラ間のデータ転送に要する時間と転送速度を示している。図９の最上段の左側の縦軸は、データ転送に要する時間を示している。また、図９の最上段の右側の縦軸は、コントローラ間のデータ転送速度を示している。図９の横軸は、いずれのグラフでも時間を示している。また、図９の上から２段目のグラフは、第１のコントローラ部２１から記憶装置２３のＳＳＤにデータを書き込む際に要する時間と、ＳＳＤへのデータ書き込み速度を示したものである。図９の上から２段目の左側の縦軸は、ＳＳＤへのデータ書き込みに要する時間を示している。また、図９の最上段の右側の縦軸は、ＳＳＤへのデータ書き込み速度を示している。
【００８３】
図９の上から３段目のグラフはＳＳＤの稼働率を示している。図９の上から３段目の例では稼働率が１０％以下であり、ＳＳＤへの書き込み処理には余裕があることがわかる。また、図９の最下段のグラフはＣＰＵ３１の利用率を示したグラフである。図９の最下段の例では、ＣＰＵ３１の利用率と二重化処理に係る利用率がともに５％前後となっており二重化処理にも余裕があることを示している。よって、図９に示す状態では、ディスクアレイ装置２０は、十分な性能を維持している。
【００８４】
図１０は、情報処理装置１０からのＩ／Ｏ処理の要求が図９の状態から増大し、負荷が増大している場合の例について示したものである。図１０の最上段のコントローラ間の転送速度は上昇しているが、転送に要する時間も長くなっている。図１０の例では、上から３段目のグラフにおけるＳＳＤの稼働率が２０％と余裕があるにも関わらず、ＳＳＤの書き込み速度は向上していない。図１０の上から４段目に示すようにＣＰＵの利用率が９０％に達しているのに対し、二重化処理に係る利用率が上昇せずに、二重化のためのデータの転送処理が滞っているからである。図１０の例では、二重化のための転送処理が遅いため、ＳＳＤへデータを書き込む動作に入ることができずにＳＳＤの稼働率が低い状態が続いている。
【００８５】
図１１は、図１０の状態から並列処理への移行が行われた場合における各部位の状態を示したグラフである。図１１の上から２段目のＳＳＤへの書き込みに要する時間は処理の切り替え後に短くなっている。また、図１１の上から３段目に示すＳＳＤの利用率も処理の切り替えによって５０％にまで上昇している。図１１の例では、二重化処理から並列処理への切り替えによって、ＳＳＤへの書き込み速度および利用率が改善され性能が向上していることがわかる。図１１のような状態では、情報処理装置１０に対する応答時間と、ＳＳＤへの書き込みに要する時間が近い値になり、記憶装置２３へのデータの書き込みが高速に行えることが期待できる。
【００８６】
本実施形態の情報システムは、二重化処理を行っている際に、コントローラ間通信性能監視部３４および記憶装置性能監視部３５によって二重化のためのデータ転送の状態および記憶装置２３へのデータの書き込み動作の状態を監視している。本実施形態の情報システムは、コントローラ間通信性能監視部３４および記憶装置性能監視部３５の監視結果に基づいて、二重化処理から並列処理に移行した際に、記憶装置２３への書き込み性能が向上するかを判断している。また、記憶装置２３への書き込み性能が向上するかを判断したときに、本実施形態の情報システムは、ＣＰＵ３１の利用率および二重化処理に係る利用率を基に、実際に並列処理を移行するかを判断している。本実施形態の情報システムはこのように、二重化処理から並列処理への移行によって性能が向上すると期待されるときに、ＣＰＵ３１の利用率と、二重化処理に係る利用率を基に移行の要否を判断し、並列処理への移行を行っている。そのため、本実施形態の情報システムは、負荷状態に応じて、より適切な処理方法で記憶装置２３へのデータの書き込みを行うことができる。
【００８７】
また、本実施形態の情報システムは、二重化処理に係るデータ転送およびＣＰＵ３１の処理能力が十分で無かったときに、二重化処理を行わずに記憶装置２３への書き込みを行っている。情報処理装置１０から半導体記憶装置によって構成される記憶装置２３に二重化処理を行わずにデータの書き込むことで、記憶装置２３に高速に書き込み処理を行うことが可能になる。そのため、本実施形態の情報システムは、不揮発性の半導体記憶装置によって構成されるディスクアレイ装置において、書き込み要求の増大によって負荷量が増加したような場合においても、処理速度の低下を抑制し性能を維持することができる。
【００８８】
第２の実施形態では、コントローラ部が２つの場合の例について示したが、３つ以上の場合の例について説明する。図１２は、第２の実施形態の情報システムにおいてディスクアレイ装置が３つ以上のコントローラ部を有する場合の構成の例を示したものである。図１２では、コントローラ部は、ＣＮＴとして示されている。図１２の例では情報処理装置とコントローラ部の間、および、コントローラ部と記憶装置の間にそれぞれＳｗｉｔｃｈとして示したスイッチ素子が備えられている。図１２の例では、２つのスイッチ素子の切り替えによってパスの選択が制御される。
【００８９】
図１３は、ＣＮＴ０、ＣＮＴ１およびＣＮＴ３の３つのコントローラ部を有するディスクアレイ装置において並列処理によって記憶装置にデータを書き込む際のデータの流れの例を示したものである。図１３の例では、ＣＮＴ０とＣＮＴ１の２つのコントローラ部で４つのＳＳＤに対して書き込み処理を行い、ＣＮＴ２のコントローラで２つのＳＳＤに対して書き込み処理を行っている。図１３の（Ｃ１）、（Ｃ２）、（Ｃ３）および（Ｃ４）は、図６に示した（Ｂ１）、（Ｂ２）、（Ｂ３）および（Ｂ４）にそれぞれ対応する。このようにコントローラ部やＳＳＤを増設することによって、ディスクアレイ装置としての処理能力を向上することができる。また、このようにコントローラ部の増設やＳＳＤの増設を行うことで、ディスクアレイ装置におけるＩ／Ｏ処理性能をスケールアウトすることが可能になる。
【符号の説明】
【００９０】
１    第１の制御手段
２    第２の制御手段
３    監視手段
４    判断手段
１０    情報処理装置
１１    情報処理部
１２    パス制御部
１３    制御切り替え監視部
２０    ディスクアレイ装置
２１    第１のコントローラ部
２２    第２のコントローラ部
２３    記憶装置
３０    コントローラ部
３１    ＣＰＵ
３２    Ｉ／Ｏ制御部
３３    ＣＰＵ利用率監視部
３４    コントローラ間通信性能監視部
３５    記憶装置性能監視部
３６    制御切り替え管理部
３７    キャッシュメモリ部
３８    コントローラ間通信インタフェース部
Ｓ１１    制御切り替え信号
Ｓ３１    処理方法切替信号
【図１】
0006365557.tif 000002
【図２】
0006365557.tif 000003
【図３】
0006365557.tif 000004
【図４】
0006365557.tif 000005
【図５】
0006365557.tif 000006
【図６】
0006365557.tif 000007
【図７】
0006365557.tif 000008
【図８】
0006365557.tif 000009
【図９】
0006365557.tif 000010
【図１０】
0006365557.tif 000011
【図１１】
0006365557.tif 000012
【図１２】
0006365557.tif 000013
【図１３】
0006365557.tif 000014