(57)【要約】【課題】本発明は、高速なＩ／Ｏ処理性能を維持し得るストレージ装置を提案する。【解決手段】複数の物理デバイスの負荷率を算出する負荷率算出部と、負荷率算出部により算出された物理デバイスの負荷率が所定の閾値以上であるか否かを判断する負荷率判断部と、負荷率判断部により物理デバイスの負荷率が所定の閾値以上であると判断された場合に、ホスト計算機から発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断するコマンド比率判断部と、コマンド比率判断部によりコマンド比率が所定の閾値以上であると判断された場合に、複数の物理デバイス間のデータとパリティとを入れ替える入れ替え部とを備えるようにした。【選択図】図３
2008090372.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機から送信されるデータと当該データのパリティとを所定単位ごとに分散保持する複数の物理デバイスを有するストレージ装置であって、
前記複数の物理デバイスの負荷率を算出する負荷率算出部と、
前記負荷率算出部により算出された前記物理デバイスの負荷率が所定の閾値以上であるか否かを判断する負荷率判断部と、
前記負荷率判断部により前記物理デバイスの負荷率が所定の閾値以上であると判断された場合に、前記ホスト計算機から発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断するコマンド比率判断部と、
前記コマンド比率判断部により前記コマンド比率が所定の閾値以上であると判断された場合に、前記複数の物理デバイス間の前記データと前記パリティとを入れ替える入れ替え部と
を備えることを特徴とするストレージ装置。
【請求項２】
前記負荷率判断部は、
前記複数の物理デバイスのうち、所定数の前記物理デバイスにより構成されるグループに対し、当該グループ内のいずれかの前記物理デバイスの負荷率が所定の閾値以上であるか否かを判断し、
前記コマンド比率判断部は、
前記ホスト計算機から前記グループに発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断し、
前記入れ替え部は、
前記グループ内の前記物理デバイス間で前記データと前記パリティとを入れ替える
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記負荷率算出部は、
前記グループ内の前記物理デバイスの平均負荷率を算出し、
前記負荷率判断部は、
前記負荷率算出部により算出された前記グループ内の前記物理デバイスの平均負荷率と、前記グループ内の前記物理ディスクの負荷率との乖離が所定の閾値以上であるか否かを判断し、
前記コマンド比率判断部は、
前記負荷率判断部により前記グループ内の前記物理デバイスの平均負荷率と、前記グループ内の前記物理ディスクの負荷率との乖離が所定の閾値以上であると判断された場合に、前記コマンド比率が所定の閾値以上であるか否かを判断する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記負荷率判断部は、
前記グループ内の前記物理ディスクの負荷率の最大値と最小値との差の絶対値が所定の閾値以上であるか否かを判断し、
前記コマンド比率判断部は、
前記負荷率判断部により前記グループ内の前記物理ディスクの負荷率の最大値と最小値との差の絶対値が所定の閾値以上であると判断された場合に、前記コマンド比率が所定の閾値以上であるか否かを判断する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項５】
前記入れ替え部は、
前記コマンド比率判断部により前記ライトコマンドのコマンド比率が所定の閾値以上であると判断された場合には、前記負荷率判断部により所定の閾値以上と判断された前記グループ内の物理デバイスのパリティを保持する比率を低くするようにデータとパリティとを入れ替える
ことを特徴とする請求項２に記載のストレージ装置。
【請求項６】
前記入れ替え部は、
前記負荷率判断部により所定の閾値以上と判断された前記グループ内の物理デバイスのパリティと、当該物理デバイス以外の前記グループ内の他の物理デバイスのデータとを入れ替える
ことを特徴とする請求項５に記載のストレージ装置。
【請求項７】
前記入れ替え部は、
前記コマンド比率判断部により前記リードコマンドのコマンド比率が所定の閾値以上であると判断された場合には、前記負荷率判断部により所定の閾値以上と判断された前記グループ内の物理デバイスのパリティを保持する比率を高くするようにデータとパリティとを入れ替える
ことを特徴とする請求項２に記載のストレージ装置。
【請求項８】
前記入れ替え部は、
前記負荷率判断部により所定の閾値以上と判断された前記グループ内の物理デバイスのデータと、当該物理デバイス以外の前記グループ内の他の物理デバイスのパリティとを入れ替える
ことを特徴とする請求項７に記載のストレージ装置。
【請求項９】
ホスト計算機から送信されるデータと当該データのパリティとを所定単位ごとに分散保持する複数の物理デバイスを有するストレージ装置の負荷分散方法であって、
前記複数の物理デバイスの負荷率を算出する第１のステップと、
前記第１のステップにおいて算出した前記物理デバイスの負荷率が所定の閾値以上であるか否かを判断する第２のステップと、
前記第２のステップにおいて前記物理デバイスの負荷率が所定の閾値以上であると判断した場合に、前記ホスト計算機から発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断する第３のステップと、
前記第３のステップにおいて前記コマンド比率が所定の閾値以上であると判断した場合に、前記複数の物理デバイス間の前記データと前記パリティとを入れ替える第４のステップと
を備えることを特徴とする負荷分散方法。
【請求項１０】
前記第２のステップでは、
前記複数の物理デバイスのうち、所定数の前記物理デバイスにより構成されるグループに対し、当該グループ内のいずれかの前記物理デバイスの負荷率が所定の閾値以上であるか否かを判断し、
前記第３のステップでは、
前記ホスト計算機から前記グループに発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断し、
前記第４のステップでは、
前記グループ内の前記物理デバイス間で前記データと前記パリティとを入れ替える
ことを特徴とする請求項９に記載の負荷分散方法。
【請求項１１】
前記第１のステップでは、
前記グループ内の前記物理デバイスの平均負荷率を算出し、
前記第２のステップでは、
前記第１のステップにおいて算出した前記グループ内の前記物理デバイスの平均負荷率と、前記グループ内の前記物理ディスクの負荷率との乖離が所定の閾値以上であるか否かを判断し、
前記第３のステップでは、
前記負荷率判断部により前記グループ内の前記物理デバイスの平均負荷率と、前記グループ内の前記物理ディスクの負荷率との乖離が所定の閾値以上であると判断された場合に、前記コマンド比率が所定の閾値以上であるか否かを判断する
ことを特徴とする請求項１０に記載の負荷分散方法。
【請求項１２】
前記第２のステップでは、
前記グループ内の前記物理ディスクの負荷率の最大値と最小値との差の絶対値が所定の閾値以上であるか否かを判断し、
前記第３のステップでは、
前記第２のステップにおいて前記グループ内の前記物理ディスクの負荷率の最大値と最小値との差の絶対値が所定の閾値以上であると判断した場合に、前記コマンド比率が所定の閾値以上であるか否かを判断する
ことを特徴とする請求項１０に記載の負荷分散方法。
【請求項１３】
前記第４のステップでは、
前記第３のステップにおいて前記ライトコマンドのコマンド比率が所定の閾値以上であると判断した場合には、前記第２のステップにおいて所定の閾値以上と判断した前記グループ内の物理デバイスのパリティを保持する比率を低くするようにデータとパリティとを入れ替える
ことを特徴とする請求項１０に記載の負荷分散方法。
【請求項１４】
前記第４のステップでは、
前記第２のステップにおいて所定の閾値以上と判断した前記グループ内の物理デバイスのパリティと、当該物理デバイス以外の前記グループ内の他の物理デバイスのデータとを入れ替える
ことを特徴とする請求項１３に記載の負荷分散方法。
【請求項１５】
前記第４のステップでは、
前記第３のステップにおいて前記リードコマンドのコマンド比率が所定の閾値以上であると判断した場合には、前記第２のステップにおいて所定の閾値以上と判断した前記グループ内の物理デバイスのパリティを保持する比率を高くするようにデータとパリティとを入れ替える
ことを特徴とする請求項１０に記載の負荷分散方法。
【請求項１６】
前記第４のステップでは、
前記第２のステップにおいて所定の閾値以上と判断した前記グループ内の物理デバイスのデータと、当該物理デバイス以外の前記グループ内の他の物理デバイスのパリティとを入れ替える
ことを特徴とする請求項１５に記載の負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及び負荷分散方法に関し、例えば、物理ディスクの負荷バランスを制御するストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
一般に、複数のディスクから構成されるストレージ装置にて、高いＩ／Ｏ処理性能を引き出すためには、バックエンドを構成するディスクの性能を十分に引き出す必要がある。
【０００３】
ここで、バックエンドの構築には、データの信頼性向上を目的としたＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成が多くとられており、さまざまなレベルのＲＡＩＤを構成することができるストレージ装置が提案されている(例えば非特許文献１参照)。
【０００４】
また、ディスクの負荷分散を実現するための一手法として、物理ボリュームに設定された特定の論理ボリュームが過負荷状態となった場合に、その論理ボリュームの内容を、予備の物理ボリュームに設定された論理ボリュームにコピーし、両論理ボリュームを１つの仮想論理ボリュームとしてホスト装置に提供することで、負荷を分散する手法が提案されている(例えば特許文献１参照)。
【非特許文献１】論文：「A Case for Redundant Arrays of Inexpensive Disks (RAID)」David A. Patterson, Garth Gibson and Randy H. Katz著[平成１８年９月２９日ＵＲＬ検索]http://www.cs.cmu.edu/~garth/RAIDpaper/Patterson88.pdf
【特許文献１】特開２００６−０５３６０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ここで、ストライピング制御を行うＲＡＩＤ構成では、データが複数のディスクに分散しているため、複数のディスクへのアクセスによって1つの処理が完了する場合がある。ゆえに、ＲＡＩＤを構成する特定のディスクに負荷が集中し、負荷が集中したディスクが処理限界にまで達すると、そのディスクがボトルネックとなることで処理遅延が発生し、ストレージ装置性能を十分に引き出せない(以下、ディスクネックと定義する)という問題がある。
【０００６】
また、特許文献１にて提案された手法によれば、予備の物理ボリュームのディスクを割り当て、１つの論理ボリュームに対して担当するディスクの台数を増加させることで負荷を分散することが可能であるが、予備の物理ボリュームを用意するために、ユーザが使用可能な領域が減少するという問題がある。
【０００７】
本発明は以上の点を考慮してなされたもので、高速なＩ／Ｏ処理性能を維持し、ストレージ装置性能を十分に引き出し得るストレージ装置及び負荷分散方法を提案するものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するために本発明においては、ホスト計算機から送信されるデータと当該データのパリティとを所定単位ごとに分散保持する複数の物理デバイスを有するストレージ装置であって、複数の物理デバイスの負荷率を算出する負荷率算出部と、負荷率算出部により算出された物理デバイスの負荷率が所定の閾値以上であるか否かを判断する負荷率判断部と、負荷率判断部により物理デバイスの負荷率が所定の閾値以上であると判断された場合に、ホスト計算機から発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断するコマンド比率判断部と、コマンド比率判断部によりコマンド比率が所定の閾値以上であると判断された場合に、複数の物理デバイス間のデータとパリティとを入れ替える入れ替え部とを備えるようにした。
【０００９】
従って、特定の物理デバイスに負荷が集中した場合に、その負荷を均一化させるため、当該物理デバイスがボトルネックとなることで処理遅延が発生してストレージ装置性能を十分に引き出せないといった事態を回避して、物理デバイスを負荷分散することができる。
【００１０】
また、本発明においては、ホスト計算機から送信されるデータと当該データのパリティとを所定単位ごとに分散保持する複数の物理デバイスを有するストレージ装置の負荷分散方法であって、複数の物理デバイスの負荷率を算出する第１のステップと、第１のステップにおいて算出した物理デバイスの負荷率が所定の閾値以上であるか否かを判断する第２のステップと、第２のステップにおいて物理デバイスの負荷率が所定の閾値以上であると判断した場合に、ホスト計算機から発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断する第３のステップと、第３のステップにおいてコマンド比率が所定の閾値以上であると判断した場合に、複数の物理デバイス間のデータとパリティとを入れ替える第４のステップとを備えるようにした。
【００１１】
従って、特定の物理デバイスに負荷が集中した場合に、その負荷を均一化させるため、当該物理デバイスがボトルネックとなることで処理遅延が発生してストレージ装置性能を十分に引き出せないといった事態を回避して、物理デバイスを負荷分散することができる。
【発明の効果】
【００１２】
本発明によれば、複数の物理デバイスの負荷率を算出し、物理デバイスの負荷率が所定の閾値以上であるか否かを判断して、物理デバイスの負荷率が所定の閾値以上であると判断した場合に、ホスト計算機から発行されるライトコマンド又はリードコマンドのいずれかのコマンド比率が所定の閾値以上であるか否かを判断し、コマンド比率が所定の閾値以上であると判断した場合に、複数の物理デバイス間のデータとパリティとを入れ替えることにより、特定の物理デバイスに負荷が集中した場合に、その負荷を均一化させるため、当該物理デバイスがボトルネックとなることで処理遅延が発生してストレージ装置性能を十分に引き出せないといった事態を回避して、物理デバイスを負荷分散することができ、かくして、高速なＩ／Ｏ処理性能を維持し、ストレージ装置性能を十分に引き出し得るストレージ装置及び負荷分散方法を実現できる。
【発明を実施するための最良の形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
図１は、本発明の一実施の形態におけるストレージシステム１の全体構成を示す構成図である。図１において、ストレージ装置１０は、当該ストレージ装置１０全体の制御を行なうストレージ制御装置１００と、記憶領域を提供するストレージ駆動装置２００から構成されている。
【００１５】
ストレージ装置１０には、ストレージ制御装置１００のホストアダプタ１１０を介して、ストレージ装置１０を利用する上位装置となるアプリケーションサーバなどのホスト計算機３００が接続されている。
【００１６】
なお、ストレージ装置１０とホスト計算機３００とを接続するためのインタフェースには、例えば、専用のネットワークであるＳＡＮ（Storage Area Network）１８０が用いられる。また、ＳＡＮ１８０の構築には、ファイバチャネル、ＳＣＳＩ（Small Computer System Interface）、ｉＳＣＳＩ（internet Small Computer System Interface）、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４バス等を用いることが可能である。また、ストレージ装置１０に接続されるホスト計算機３００は、複数台でもよい。
【００１７】
さらに、ホスト計算機３００上には、ストレージ装置１０のディスク構成の操作や設定を行い、ストレージ装置１０の動作を制御する制御ソフトウェアがインストールされている。ホスト計算機３００は、ホスト計算機３００上の制御ソフトウェアにより、ストレージ装置１０に対してコマンドなどを発行し、ストレージ装置１０の動作を制御することができる。ただし、ストレージ装置１０とホスト計算機３００上のストレージ制御ソフトウェアとは、例えば、ＬＡＮ（Local Area Network）１９０を経由し、ストレージ装置１０のＮＩＣ(Network Interface Card)１７０を介してデータのやり取りを行う。なお、ストレージ装置１０の管理・制御を行う計算機は、ホスト計算機３００とは別のものを使用しても良い。
【００１８】
ストレージ制御装置１００は、ストレージ装置１０を利用するホスト計算機３００を接続するホストアダプタ１１０、ストレージ装置１０の全体制御を行なうＣＰＵ（Central Processing Unit：中央演算装置）１２０、当該ＣＰＵ１２０がストレージ装置１０を制御するために必要なプログラムやデータを格納するメモリ１３０、ホスト計算機３００に対する送受信のためのデータを一時的に格納し、データアクセスに対し高速レスポンスを提供するキャッシュメモリ１４０、ＲＡＩＤを構成する際にパリティ計算等を行なう特定用途向け集積回路であるＡＳＩＣｓ（Application Specific Integrated Circuits）１５０及びストレージ制御装置１００とストレージ駆動装置２００とを接続するディスクアダプタ１６０から構成されている。
【００１９】
メモリ１３０には、ＣＰＵ１２０がストレージ装置１０を制御するために使用するプログラム１３００、物理ディスク２１００内のデータおよびパリティの格納位置情報を管理するために使用するアドレス管理テーブル１３１０、データとパリティとの入れ替え（以下、「データ／パリティ入れ替え」と表記する）の実行契機を判断するための情報を管理するデータ／パリティ入れ替え実行契機管理テーブル１３２０が格納されている。
【００２０】
ストレージ駆動装置２００は、多数のディスクボックス２１０を備えており、当該ディスクボックス２１０の中に多数の物理ディスク２１００（記憶デバイス）を備えている。ここで、物理ディスク２１００は、例えば図１のように複数台でＲＡＩＤグループ２２００を構成し、さらにＲＡＩＤグループ２２００内に論理的な記憶領域である論理ユニット（Logical Unit：LU）（図示せず）を構成することで、大容量の記憶領域をホスト計算機３００に対して提供する。また、本発明では、記憶領域をＲＡＩＤ５若しくはＲＡＩＤ６にて構成する。この場合、ＲＡＩＤ５やＲＡＩＤ６では、一般に、データと、当該データのパリティとを複数の物理ディスク２１００に分散保持するＲＡＩＤレベルである。なお、本発明では、物理ディスク２１００に限らず、例えば、半導体メモリ等のこの他種々の物理デバイスに適用することができる。
【００２１】
図２は、アドレス管理テーブル１３１０の構成図である。アドレス管理テーブル１３１０は、ストライプ列番号欄１３１１、論理アドレス欄１３１２及び物理アドレス欄１３１３から構成される。ここで、ストライプ列とは、ＲＡＩＤ５やＲＡＩＤ６のようなデータ及びパリティを複数ディスクに分散保持するＲＡＩＤレベルにおける、対応するデータ及びパリティを保持する制御単位を示している。
【００２２】
ストライプ列番号欄１３１１は、ＲＡＩＤグループ２２００内のストライプ列を一意に識別するための番号を管理する。論理アドレス欄１３１２及び物理アドレス欄１３１３は、論理ユニットの論理的なアドレスが実際の物理ディスク２１００のどのアドレスに対応するかの情報を管理する。また、物理アドレス欄１３１３は、データを格納する物理ディスク２１００のアドレスを管理するためのデータアドレス欄１３１４及びパリティを格納する物理ディスク２１００のアドレスを管理するためのパリティアドレス欄１３１５から構成される。図２は、データを格納する物理ディスク２１００が２つであり、パリティを格納する物理ディスク２１００が１つである２Ｄ＋１ＰのＲＡＩＤ５の例を示しており、同一ストライプ列内のパリティアドレス欄１３１５が１段であるが、ＲＡＩＤ６の場合には同一ストライプ列内のパリティアドレス格納欄１３１５が２段作成される。
【００２３】
論理アドレス欄１３１２は、ＬＵＮ（Logical Unit Number）欄１３１２１、先頭ＬＢＡ（Logical Brock Address）欄１３１２２及び末尾ＬＢＡ欄１３１２３から構成される。ＬＵＮ欄１３１２１は、ＲＡＩＤグループ２２００内に作成された論理ユニットの番号を管理する。先頭ＬＢＡ欄１３１２２及び末尾ＬＢＡ欄１３１２３は、論理ユニットの論理的なアドレス空間の先頭と末尾のアドレスを管理する。
【００２４】
データアドレス欄１３１４は、ＨＤＤ（物理ディスク）番号欄１３１４１、先頭ＬＢＡ欄１３１４２及び末尾ＬＢＡ欄１３１４３から構成される。また、パリティアドレス欄１３１５は、ＨＤＤ番号欄１３１５１、先頭ＬＢＡ欄１３１５２及び末尾ＬＢＡ欄１３１５３から構成される。
【００２５】
ＨＤＤ番号欄１３１４１、１３１５１は、データおよびパリティの格納先である物理ディスク２１００の番号を管理する。先頭ＬＢＡ欄１３１４２は、先頭ＬＢＡ欄１３１２２と対応しており、また、末尾ＬＢＡ欄１３１４３は、末尾ＬＢＡ欄１３１２３と対応しており、それぞれホスト計算機３００が認識する論理アドレス空間と実際のデータ格納先である物理アドレス空間との対応を管理する。また、先頭ＬＢＡ欄１３１５２及び末尾ＬＢＡ欄１３１５３は、パリティの格納先の物理アドレス空間の先頭と末尾のアドレスを管理する。
【００２６】
なお、図２中では、ＨＤＤ番号欄１３１４１、１３１５１の識別子の例として物理ディスク２１００の物理的な位置情報を用いている。例えば、ＨＤＤ番号「Ｍ−Ｎ」は、当該物理ディスク２１００が「Ｍ」番目のディスクボックス２１０の「Ｎ」列目に搭載されていることを示す。ここで、「Ｍ」番目のディスクボックス２１０は、複数のディスクボックス２１０を一列に並べたときに「Ｍ」番目に位置するディスクボックス２１０である。またなお、アドレス管理テーブル１３１０は、ＲＡＩＤグループ２２００ごとに作成され、管理されるものである。
【００２７】
図３は、データ／パリティ入れ替え実行契機管理テーブル１３２０の構成図である。データ／パリティ入れ替え実行契機管理テーブル１３２０は、ＲＡＩＤグループ番号欄１３２１、ＨＤＤ番号欄１３２２、物理ディスク負荷率欄１３２３、平均物理ディスク負荷率欄１３２４、平均ライトコマンド率欄１３２５、平均リードコマンド率欄１３２６及びデータ／パリティ入れ替え実行属性欄１３２７から構成される。
【００２８】
ＲＡＩＤグループ番号欄１３２１は、ストレージ駆動装置２００内に作成された、ＲＡＩＤグループ２２００を一意に識別するための番号を管理する。ＨＤＤ番号欄１３２２は、ＲＡＩＤグループ２２００を構成するそれぞれの物理ディスク２１００を識別するための番号を管理する。物理ディスク負荷率欄１３２３は、現在の物理ディスク２１００の負荷状況を管理するものであり、例えば、物理ディスク２１００の稼動率等で表現される。
【００２９】
平均ディスク負荷率欄１３２４は、各ＲＡＩＤグループ２２００に所属する物理ディスク２１００の平均負荷率を管理するもので、物理ディスク負荷率欄１３２３内の物理ディスク負荷率を用いて算出される。平均ライトコマンド率欄１３２５は、各ＲＡＩＤグループ２２００に発行されたライトコマンドの比率を管理するものである。また、平均リードコマンド率欄１３２６は、各ＲＡＩＤグループ２２００に発行されたリードコマンドの比率を管理するものである。
【００３０】
データ／パリティ入れ替え実行属性欄１３２７は、後述するデータ／パリティ入れ替え処理の実行コマンドを発行する際に参照されるパラメータを管理する。データ／パリティ入れ替え処理実行の必要があるときは、「リード」（図３中には非表記）若しくは「ライト」を保持し、データ／パリティ入れ替え実行が不要の場合は「Ｎ／Ａ」を保持する。また、ＲＡＩＤグループ２２００が新規作成された場合も「Ｎ／Ａ」を保持する。また、データ／パリティ入れ替え実行契機管理テーブル１３２０の構成要素として、ＲＡＩＤグループ２２００に構成される論理ユニットのコマンド率等を保持してもよい。
【００３１】
なお、データ／パリティ入れ替え実行契機管理テーブル１３２０は、ホスト計算機３００からストレージ装置１０に発行されたリードコマンド及びライトコマンドの各コマンドを、ＣＰＵ１２０が処理する毎に更新され、後述するデータ／パリティ入れ替え処理実行時に、実行要否を判断するための情報として参照される。
【００３２】
図４は、データ／パリティ入れ替え実行契機管理テーブル更新処理のフローチャートである。ＣＰＵ１２０は、ホスト計算機３００からストレージ装置１０に発行されるリードコマンドやライトコマンドといったＩ／Ｏコマンドを受信すると、データ／パリティ入れ替え実行契機管理テーブル１３２０の更新処理を開始し、受信したＩ／Ｏコマンドを処理するＩ／Ｏ処理を実行する（ステップＳ３０１)。
【００３３】
その後、ＣＰＵ１２０は、ステップＳ３０１でのＩ／Ｏ処理に伴い、ディスクアクセスが発生したＲＡＩＤグループ２２００に対し、当該ＲＡＩＤグループ２２００に所属する物理ディスク２１００の物理ディスク負荷率を算出し、物理ディスク負荷率欄１３２３を更新する（ステップＳ３０２）。
【００３４】
次に、ＣＰＵ１２０は、ディスク負荷率欄１３２３の情報を元に、当該ＲＡＩＤグループ２２００に所属する物理ディスク２１００の平均負荷率を算出し、平均負荷率欄１３２４を更新する（ステップＳ３０３）。
【００３５】
その後、ＣＰＵ１２０は、当該ＲＡＩＤグループ２２００に発行された平均ライトコマンド率を算出し、平均ライトコマンド率欄１３２５を更新する（ステップＳ３０４）。その後、ＣＰＵ１２０は、当該ＲＡＩＤグループ２２００に発行された平均リードコマンド率を算出し、平均リードコマンド率欄１３２６を更新する（ステップＳ３０６）。ＣＰＵ１２０は、以上のステップにより、データ／パリティ入れ替え実行契機管理テーブル１３２０の更新処理を終了する。ただし、データ／パリティ入れ替え実行契機管理テーブル１３２０の更新タイミングは、Ｉ／Ｏ処理開始前やＩ／Ｏ処理途中に実行しても良い。
【００３６】
図５は、データ／パリティ入れ替え処理のフローチャートである。ＣＰＵ１２０は、所定のタイミング（後述）で、データ／パリティ入れ替え処理を開始し、データ／パリティ入れ替え実行契機管理テーブル１３２０の情報を元に、全てのＲＡＩＤグループ２２００を対象に、データ／パリティ入れ替えが必要か否かを判断する(ステップＳ４０１)（詳細は、図６にて説明）。そして、ＣＰＵ１２０は、データ／パリティ入れ替えが必要なＲＡＩＤグループ２２００が存在すると判断した場合（Ｓ４０１：ＹＥＳ）には、対象となるＲＡＩＤグループ２２００にデータ／パリティ入れ替えを実行する(ステップＳ４０２)（詳細は図７にて説明）。その後、ＣＰＵ１２０は、データ／パリティ入れ替え処理を終了する。
【００３７】
一方、ＣＰＵ１２０は、ステップＳ４０１にて、データ／パリティ入れ替え実行が必要なＲＡＩＤグループ２２００が存在しないと判断した場合（Ｓ４０１：ＮＯ）には、そのままデータ／パリティ入れ替え実行処理を終了する。
【００３８】
なお、データ／パリティ入れ替え処理は、定期的なタイミングあるいは任意のタイミングにて実行される。定期的なタイミングの例としては、タイマによる一定時間毎の実行や、ホスト計算機３００からの受領コマンド数が特定数の倍数に到達する毎の実行等がある。また、任意のタイミングの例としては、ストレージ装置１０の管理者がホスト計算機３００にインストールされた制御ソフトウェアを使用して本処理の実行を指示した場合や、ストレージ装置１０が特定のコマンドを受領した場合、若しくはＣＰＵ１２０が特定のコマンドを実行した場合等がある。
【００３９】
（１）データ／パリティ入れ替え実行要否判断処理
図６は、データ／パリティ入れ替え実行要否判断処理を実行するステップＳ４０１の詳細なフローチャートである。ＣＰＵ１２０は、特定のＲＡＩＤグループ２２００に対し、当該ＲＡＩＤグループ２２００内で負荷率が高い物理ディスク２１００が存在するか否かを、物理ディスク負荷率欄１３２３を元に判定する(ステップＳ５０１)。
【００４０】
そして、ＣＰＵ１２０は、物理ディスク負荷率が高いディスク２１００が存在すると判断した場合（Ｓ５０１：ＹＥＳ）には、そのＲＡＩＤグループ２２００内の物理ディスク２１００間で物理ディスク負荷率にばらつきがあるか否かを判定する(ステップＳ５０２)。
【００４１】
次に、ＣＰＵ１２０は、当該ＲＡＩＤグループ２２００内の物理ディスク２１００間で物理ディスク負荷率にばらつきがあると判断した場合（Ｓ５０２：ＹＥＳ）には、そのＲＡＩＤグループ２２００に発行されたライトコマンドが支配的であるか否かを、平均ライトコマンド率欄１３２５を元に判断する（ステップＳ５０３）。そして、ＣＰＵ１２０は、ライトコマンドが支配的であると判断した場合（Ｓ５０３：ＹＥＳ）には、データ／パリティ入れ替え実行属性１３２７を「ライト」に変更し(ステップＳ５０４)、ステップＳ４０１の判定結果がデータ／パリティ入れ替えが必要であることを示す「ＹＥＳ」に進む。
【００４２】
これに対して、ＣＰＵ１２０は、ライトコマンドが支配的でないと判断した場合（Ｓ５０３：ＮＯ）には、そのＲＡＩＤグループ２２００に発行されたリードコマンドが支配的であるか否かを、平均リードコマンド率欄１３２６を元に判定する（ステップＳ５０５）。そして、ＣＰＵ１２０は、リードコマンドが支配的であると判断した場合（Ｓ５０５：ＹＥＳ）には、データ／パリティ入れ替え実行属性１３２７を「リード」に変更し(ステップＳ５０６)、ステップＳ４０１の判定結果がデータ／パリティ入れ替えが必要であることを示す「ＹＥＳ」に進む。
【００４３】
一方、ＣＰＵ１２０は、物理ディスク負荷率が高いディスク２１００が存在しないと判断した場合（Ｓ５０１：ＮＯ）、当該ＲＡＩＤグループ２２００内の物理ディスク２１００間で物理ディスク負荷率にばらつきがないと判断した場合（Ｓ５０２：ＮＯ）、又はリードコマンドが支配的でないと判断した場合（Ｓ５０５：ＮＯ）には、データ／パリティ入れ替え実行属性１３２７を「Ｎ／Ａ」に変更し(ステップＳ５０７)、ステップＳ４０１の判定結果がデータ／パリティ入れ替えが不要であることを示す「ＮＯ」に進む。
【００４４】
ここで、ステップＳ５０１において、ディスク負荷率が高い値である場合とは、例えば、ディスク負荷率が１００％であったり、９５％以上であったりと所定の閾値以上であり、物理ディスク２１００が処理限界に近い、若しくは処理限界に到達した場合を示している。
【００４５】
また、ステップＳ５０２において、物理ディスク負荷率にばらつきがある場合とは、例えば、特定のＲＡＩＤグループ２２００の平均ディスク負荷率１３２４と、各物理ディスク２１００の物理ディスク負荷率とを比べた場合、その乖離が設定閾値以上である場合や、ディスク負荷率の最大値と最小値との差の絶対値が設定閾値以上である場合を示している。
【００４６】
さらに、ステップＳ５０３において、支配的なコマンドがある場合とは、例えば、設定閾値が６０％に設定されている場合に、発行されたライトコマンドとリードコマンドとの比が８０％：２０％であるような、どちらかのコマンド比率が設定閾値以上である場合を示している。
【００４７】
なお、ステップＳ５０２の判定に使用する設定閾値や、ステップＳ５０３の支配的なコマンド比率の設定閾値の具体的な値等は、ホスト計算機３００にインストールされた制御ソフトウェアにより、設定可能なチューニングパラメータとして変更可能である。
【００４８】
（２）データ／パリティ入れ替え実行処理
図７は、データ／パリティ入れ替え実行処理を実行するステップＳ４０２の詳細なフローチャートである。ＣＰＵ１２０は、ステップＳ４０１におけるデータ／パリティ入れ替え実行要否判断処理が終了すると、データ／パリティ入れ替え実行処理を開始し、当該ＲＡＩＤグループ２２００のデータ／パリティ入れ替え実行属性欄１３２７が「ライト」であるか否かを判定する(ステップＳ６０１)。
【００４９】
そして、ＣＰＵ１２０は、データ／パリティ入れ替え実行属性欄１３２７が「ライト」である場合（Ｓ６０１：ＹＥＳ）には、当該ＲＡＩＤグループ２２００の物理ディスク２１００に対して、物理ディスク負荷率が高い物理ディスク２１００におけるパリティを保持する比率を低くするようにデータとパリティとを入れ替える、データ／パリティ入れ替え実行コマンドを発行する(ステップＳ６０２)。
【００５０】
これに対して、ＣＰＵ１２０は、データ／パリティ入れ替え実行属性欄１３２７が「ライト」でない場合（Ｓ６０１：ＮＯ）には、データ／パリティ入れ替え実行属性欄１３２７が「リード」であると判断し、当該ＲＡＩＤグループ２２００の物理ディスク２１００に対して、物理ディスク負荷率が高い物理ディスク２１００におけるパリティを保持する比率を高くするようにデータとパリティとを入れ替える、データ／パリティ入れ替え実行コマンドを発行する(ステップＳ６０３)。
【００５１】
そして、ＣＰＵ１２０は、発行された入れ替えコマンドを実行してデータとパリティとを入れ替える（ステップＳ６０４）。そして、ＣＰＵ１２０は、データ／パリティ入れ替え実行処理を終了し、その後、データ／パリティ入れ替え処理を終了する。
【００５２】
図８は、データ／パリティ入れ替えコマンド実行処理を実行するステップＳ６０４の詳細なフローチャートである。ＣＰＵ１２０は、ステップＳ６０２又はステップＳ６０３において、データ／パリティ入れ替え実行コマンドを発行すると、アドレス管理テーブル１３１０の情報を元に、入れ替え対象のデータ及びパリティの、現在の格納位置及び入れ替え先の格納位置を特定する(ステップＳ７０１)。
【００５３】
次に、ＣＰＵ１２０は、入れ替え対象のデータ及びパリティを、物理ディスク２１００からキャッシュメモリ１４０に読み上げる(ステップＳ７０２)。続いて、ＣＰＵ１２０は、キャッシュメモリ１４０に読み上げた入れ替え対象のデータおよびパリティを、入れ替え先の格納位置となる新アドレスへと転送する(ステップＳ７０３)。やがて、ＣＰＵ１２０は、入れ替え対象となったデータのＨＤＤ番号１３１４１、先頭ＬＢＡ１３１４２及び末尾ＬＢＡ１３１４３とパリティのＨＤＤ番号１３１５１、先頭ＬＢＡ１３１５２及び末尾ＬＢＡ１３１５３とのアドレス値をそれぞれ更新する(入れ替える)ことで、物理ディスク２１００内の格納位置を管理するためのアドレス管理テーブル１３１０を更新する(ステップＳ７０４)。その後、ＣＰＵ１２０は、データ／パリティ入れ替えコマンド実行処理を終了する。
【００５４】
この場合、ＣＰＵ１２０は、データ／パリティ入れ替え実行属性欄１３２７が「ライト」である場合には、当該ＲＡＩＤグループ２２００の物理ディスク２１００に対して、物理ディスク負荷率が低い物理ディスク２１００におけるパリティを保持する比率を高くするようにデータとパリティとを入れ替えるようになされている。一方、ＣＰＵ１２０は、データ／パリティ入れ替え実行属性欄１３２７が「リード」である場合には、当該ＲＡＩＤグループ２２００の物理ディスク２１００に対して、物理ディスク負荷率が高い物理ディスク２１００におけるパリティを保持する比率を高くするようにデータとパリティとを入れ替えるようになされている。
【００５５】
ここで、データとパリティとの入れ替えの例を、図９及び図１０を用いて説明する。図９及び図１０は、３台の物理ディスクより構成されたＲＡＩＤ５での入れ替え例を示したものである。図９は、通常時(データ／パリティ入れ替えを実施しない)の物理ディスク２１００内のそれぞれのデータ格納構造を示したものである。図９では、例えば、３台の物理ディスク２１００間のパリティ比率が１：１：１となるようにデータが格納されている。
【００５６】
このとき、一般に、ＲＡＩＤ５やＲＡＩＤ６では、データ更新(ライト)処理を行う場合、データを保持する物理ディスク２１００に比べ、パリティを保持する物理ディスク２１００が高負荷な状態となりやすい。これは、データ更新が発生すると、新パリティの作成のための旧データリードと旧パリティリード、また新データおよび新パリティをディスクに書き込むための、新データライトと新パリティライトがそれぞれの物理ディスク２１００に発生するが、データは複数台の物理ディスク２１００にて保持されるため、更新範囲によっては必ずしも全物理ディスク２１００へのアクセスは生じないのに対し、パリティは１台の物理ディスク２１００にて保持されるため、データ更新の度に必ずアクセスが発生するため、データとパリティとの間にアクセス頻度の差が生じるためである。ゆえに、データライトが支配的なＩ／Ｏ環境下において、例えば、ＲＡＩＤ５で構成されたＲＡＩＤグループ２２００の特定の物理ディスク２１００のみに負荷が集中した場合、負荷が集中し高負荷状態となっている物理ディスク２１００のパリティ比率を他の物理ディスク２１００よりも低くし、低負荷な他の物理ディスク２１００のパリティ比率を高負荷状態となっている物理ディスク２１００よりも高くすることで、物理ディスク２１００間の負荷分散を図ることが可能となる。
【００５７】
逆にリード処理では、パリティへのアクセスは発生しないため、データを保持する物理ディスク２１００に比べ、パリティを保持する物理ディスク２１００の方が低負荷な状態となる。ゆえに、データリードが支配的なＩ／Ｏ環境下では、高負荷状態となっている物理ディスク２１００のパリティ比率を他の物理ディスク２１００よりも高くし、低負荷な他の物理ディスク２１００のパリティ比率を高負荷状態となっている物理ディスク２１００よりも低くすることで、物理ディスク２１００間の負荷分散が可能となる。
【００５８】
具体的に、ストレージ装置１０では、図９に示すＲＡＩＤグループ２２００の物理ディスク２１００−３の物理ディスク負荷率が高いと判断され、当該ＲＡＩＤグループ２２００内の物理ディスク２１００間で物理ディスク負荷率にばらつきがあると判断され、かつ当該ＲＡＩＤグループ２２００に発行されたライトコマンドが支配的であると判断された場合には、物理ディスク負荷率が高い物理ディスク２１００−３におけるパリティを保持する比率を低くするようにデータとパリティとを入れ替える。即ち、ストレージ装置１０では、対応するストライプ列の物理ディスク２１００−３のパリティと、物理ディスク２１００−１又は２１００−２のデータとを入れ替えるようになされている。
【００５９】
また、ストレージ装置１０では、図９に示すＲＡＩＤグループ２２００の物理ディスク２１００−３の物理ディスク負荷率が高いと判断され、当該ＲＡＩＤグループ２２００内の物理ディスク２１００間で物理ディスク負荷率にばらつきがあると判断され、かつ当該ＲＡＩＤグループ２２００に発行されたリードコマンドが支配的であると判断された場合には、物理ディスク負荷率が高い物理ディスク２１００−３におけるパリティを保持する比率を高くするようにデータとパリティとを入れ替える。即ち、ストレージ装置１０では、対応するストライプ列の物理ディスク２１００−３のデータと、物理ディスク２１００−１又は２１００−２のパリティとを入れ替えるようになされている。
【００６０】
なお、図１０は、データ／パリティ入れ替えを実施した後の物理ディスク２１００内のデータ格納構造を示したものである。図１０では、例えば、同一ストライプ列内のデータとパリティの位置をそれぞれ入れ替え、３台の物理ディスク２１００間のパリティ比率が１：１：２に変更された様子を示している。即ち、図９に示すＲＡＩＤグループ２２００の物理ディスク２１００−３の物理ディスク負荷率が高いと判断され、当該ＲＡＩＤグループ２２００内の物理ディスク２１００間で物理ディスク負荷率にばらつきがあると判断され、かつ当該ＲＡＩＤグループ２２００に発行されたリードコマンドが支配的であると判断された場合におけるパリティ保持比率の変更後の状態を示したものである。
【００６１】
またなお、物理ディスク２１００のパリティの比率等を指定する入れ替えパターンは、ストレージ装置１０の管理者がホスト計算機３００にインストールされた制御ソフトウェアにより、変更可能なチューニングパラメータとして、管理者が任意の比率に変更可能である。さらに、入れ替えパターンの設定項目として、1回の処理でデータとパリティとの位置を入れ替える対象範囲を指定してもよい。この場合、対象範囲として、一度にすべての物理ディスク領域を対象とする、若しくは、任意のストライプ列単位を対象とする等が挙げられる。
【００６２】
このようにして、ストレージシステム１では、ＲＡＩＤグループ２２００内の特定の物理ディスク２１００に負荷が集中し、かつ、リードコマンド若しくはライトコマンドが支配的な場合に、ＲＡＩＤグループ２２００内の物理ディスク２１００のパリティ比率を変更することで、ＲＡＩＤグループ２２００内の物理ディスク２１００のストライプ列ごとにデータとパリティとを入れ替える。
【００６３】
従って、特定の物理ディスク２１００に負荷が集中した場合に、その負荷を同一ＲＡＩＤグループ２２００内の物理ディスク２１００で均一化させるため、ディスクネックを回避して、物理ディスク２１００を負荷分散することができ、かくして、高速なＩ／Ｏ処理性能を維持することができる。
【００６４】
すなわち、本発明では、特定の物理ディスクのみに負荷が集中した場合、ＲＡＩＤグループを構成する物理ディスクのパリティ比率を変化させる。ゆえに、物理ディスクの負荷バランスを均一化することができ、ディスクネックの発生を回避して、高速Ｉ／Ｏ処理を維持するストレージ装置の実現が可能である。
【産業上の利用可能性】
【００６５】
本発明は、複数の物理ディスクからＲＡＩＤグループを構成するこの他種々のストレージ装置に広く適用することができる。
【図面の簡単な説明】
【００６６】
【図１】本実施の形態によるストレージシステムの概略的な構成を示すブロック図である。
【図２】アドレス管理テーブルの説明に供する概念図である。
【図３】データ／パリティ入れ替え実行契機管理テーブルの説明に供する概念図である。
【図４】データ／パリティ入れ替え実行契機管理テーブル更新処理手順の説明に供するフローチャートである。
【図５】データ／パリティ入れ替え処理手順の説明に供するフローチャートである。
【図６】データ／パリティ入れ替え実行要否判断処理手順の説明に供するフローチャートである。
【図７】データ／パリティ入れ替え実行処理手順の説明に供するフローチャートである。
【図８】データ／パリティ入れ替えコマンド実行処理手順の説明に供するフローチャートである。
【図９】データ／パリティ入れ替え例の説明に供する概念図である。
【図１０】データ／パリティ入れ替え例の説明に供する概念図である。
【符号の説明】
【００６７】
１……ストレージシステム、１０……ストレージ装置、１２０……ＣＰＵ、３００……ホスト計算機、１３１０……アドレス管理テーブル、１３２０……データ／パリティ入れ替え実行契機管理テーブル、１３２３……物理ディスク負荷率欄、１３２４……平均物理ディスク負荷率欄、１３２５……平均ライトコマンド率欄、１３２６……平均リードコマンド率欄、１３２７……データ／パリティ入れ替え実行属性、２１００……物理ディスク、２２００……ＲＡＩＤグループ
【図１】
2008090372.tif 000003
【図２】
2008090372.tif 000004
【図３】
2008090372.tif 000005
【図４】
2008090372.tif 000006
【図５】
2008090372.tif 000007
【図６】
2008090372.tif 000008
【図７】
2008090372.tif 000009
【図８】
2008090372.tif 000010
【図９】
2008090372.tif 000011
【図１０】
2008090372.tif 000012