(57)【要約】【課題】  コントローラ間の負荷を分散するとともに、記憶装置間のアクセス性能の均等化を行う。【解決手段】  ホストコンピュータの要求を受信して、割り当てられた記憶装置の入出力を実行するコントローラを複数備えたストレージ制御装置であって、グルーピング手段とパス制御手段を備える。グルーピング手段は、プール内の記憶装置をコントローラの数のグループに分ける。パス制御手段は、一つのグループを当該プールのマスタコントローラに割り当て、他のグループを当該プール内の記憶装置へのアクセスが当該プールのマスタコントローラより遅い他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更する。【選択図】      図１
2015090631.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置を含むプールとホストコンピュータに接続され、前記ホストコンピュータの要求を受信して、割り当てられた前記記憶装置の入出力を実行するコントローラを複数備えたストレージ制御装置であって、
前記プール内の記憶装置を前記コントローラの数のグループに分けるグルーピング手段と、
一つのグループを当該プールのマスタコントローラに割り当て、他のグループを当該プール内の前記記憶装置へのアクセスが当該プールのマスタコントローラより遅い他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更するパス制御手段と、を備えるストレージ制御装置。
【請求項２】
前記グルーピング手段は、前記記憶装置ごとの入出力量を参照して、前記グループ間の前記入出力量のグループ間の差異が所定条件以下となるようにグループに分ける、請求項１のストレージ制御装置。
【請求項３】
前記グルーピング手段は、優先属性が付与された当該プール内の前記記憶装置を、前記プールのマスタコントローラに割り当てる、請求項１または２のストレージ制御手段。
【請求項４】
前記複数のコントローラと同数のプールに接続され、前記複数のコントローラ各々は、前記複数のプールの何れかのマスタコントローラである、請求項１乃至３の何れかのストレージ制御装置。
【請求項５】
請求項１乃至４の何れかのストレージ制御装置と、
前記複数の記憶装置のプールと、
前記ホストコンピュータと、を包含するストレージシステム。
【請求項６】
複数の記憶装置のプールに接続され、複数台のコントローラを備えたストレージ装置における方法であって、
前記プール内の記憶装置を前記コントローラの数のグループに分け、
一つのグループを当該プールのマスタコントローラに割り当て（メモ:Optimizedパスの設定）、他のグループを当該プール内記憶装置へのアクセスが当該プールのマスタコントローラより遅くなる他のコントローラに割り当て、
所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更し、
ホストコンピュータから前記記憶装置の何れかを指定した入出力要求を受けて、指定された前記記憶装置に割り当てられたコントローラ経由でアクセスする、ストレージ制御方法。
【請求項７】
前記記憶装置ごとの入出力量を測定して、前記グループ間の前記入出力量のグループ間の差異が所定条件以下となるようにグループに分ける、請求項６のストレージ制御方法。
【請求項８】
優先属性が付与された当該プール内の前記記憶装置を、前記プールのマスタコントローラに割り当てる、請求項６または７のストレージ制御手段。
【請求項９】
複数の記憶装置を含むプールとホストコンピュータに接続され、前記ホストコンピュータの要求を受信して、割り当てられた前記記憶装置の入出力を実行するコントローラを複数備えたコンピュータに、
前記プール内の記憶装置を前記コントローラの数のグループに分けるグルーピング処理と、
一つのグループを当該プールのマスタコントローラに割り当て、他のグループを当該プール内の前記記憶装置へのアクセスが当該プールのマスタコントローラより遅い他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更するパス制御処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ストレージ制御装置、ストレージシステム、ストレージ制御方法、および、プログラム、特に、複数のアクセスコントローラ間の負荷分散に関する。
【背景技術】
【０００２】
特許文献１は、情報処理装置から複数の論理パスで接続される記憶装置を開示する。このシステムは、応答時間を参照して論理パスの負荷を判定し、データ入出力要求を割り当てる論理パスを負荷に応じて決定する。
【０００３】
特許文献２は、複数のホストコンピュータと複数の論理ボリュームをネットワークで接続したシステムを開示する。複数の論理ボリュームは、複数のアレイグループに分けて管理されている。このシステムは、アレイグループ間でアクセス頻度の差があると、頻度の高いグループの論理ボリュームのデータを、頻度の低いグループの論理ボリュームにマイグレーションする。
【０００４】
特許文献３は、複数のサーバコンピュータと複数の論理ディスクＬＵを複数のパスで接続したシステムを開示する。このシステムは、同一のチャネルアダプタを経由するパスをグループ化して管理し、あるパスで遅延が発生すると、グループ単位でパスの閉塞を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2005-10956号公報
【特許文献２】特開2012-108931号公報
【特許文献３】特開2011-238290号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術は、ＡＬＵＡ (Asymmetric Logical Unit Access)構成のシステムには適用できない。ＡＬＵＡ構成においては、記憶装置に対してアクセスする際に、経由するパスによって性能が異なる。したがって、ＡＬＵＡ構成において、特許文献３の御術を適用すると、性能が良いパスだけにアクセスが集中する。特許文献２と３は上記課題を解決するものではない。
【０００７】
本発明は、上記課題を解決することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施の形態のストレージ制御装置は、複数の記憶装置を含むプールとホストコンピュータに接続され、前記ホストコンピュータの要求を受信して、割り当てられた前記記憶装置の入出力を実行するコントローラを複数備えたストレージ制御装置であって、前記プール内の記憶装置を前記コントローラの数のグループに分けるグルーピング手段と、一つのグループを当該プールのマスタコントローラに割り当て、他のグループを当該プール内の前記記憶装置へのアクセスが当該プールのマスタコントローラより遅い他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更するパス制御手段と、を備える。
【０００９】
本発明の一実施の形態のストレージ制御方法は、複数の記憶装置のプールに接続され、複数台のコントローラを備えたストレージ装置における方法であって、前記プール内の記憶装置を前記コントローラの数のグループに分け、一つのグループを当該プールのマスタコントローラに割り当て（メモ:Optimizedパスの設定）、他のグループを当該プール内記憶装置へのアクセスが当該プールのマスタコントローラより遅くなる他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更し、ホストコンピュータから前記記憶装置の何れかを指定した入出力要求を受けて、指定された前記記憶装置に割り当てられたコントローラ経由でアクセスする。
【００１０】
本発明の一実施の形態のプログラムは、複数の記憶装置を含むプールとホストコンピュータに接続され、前記ホストコンピュータの要求を受信して、割り当てられた前記記憶装置の入出力を実行するコントローラを複数備えたコンピュータに、前記プール内の記憶装置を前記コントローラの数のグループに分けるグルーピング処理と、一つのグループを当該プールのマスタコントローラに割り当て、他のグループを当該プール内の前記記憶装置へのアクセスが当該プールのマスタコントローラより遅い他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更するパス制御処理と、を実行させる。
【発明の効果】
【００１１】
ホストコンピュータと記憶装置の間に接続されて、記憶装置対応にアクセス性能の異なる複数のコントローラを備える制御装置において、コントローラ間の負荷を分散するとともに、記憶装置間のアクセス性能の均等化を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施の形態の一例であるストレージ制御装置100の構成図である。
【図２】図２は、管理テーブル111の一部であるＬＵ管理テーブルの構成図である。
【図３】図３は、管理テーブル111の一部であるＬＵコントローラテーブルの構成図である。
【図４】図４は、ＬＵコントローラテーブルが図３の状態である場合におこなわれる、アクセスの様子を示す。
【図５】図５は、入れ替え後のＬＵコントローラテーブルの構成図である。
【図６】図６は、ＬＵコントローラテーブルが図５の状態である場合におこなわれる、アクセスの様子を示す。
【図７】図７は、グルーピング部110の動作フローチャートである。
【図８】図８は、パス制御部112のＬＵに対するコントローラの割り当てと変更の動作フローチャートである。
【図９】図９は、第２の実施の形態のＬＵ管理テーブルの構成を示す。
【図１０】図１０は、第２の実施の形態におけるコントローラの割り当てを示す。
【図１１】図１１は、第２の実施の形態におけるコントローラの割り当ての一定時間後の変化を示す。
【図１２】図１２は、第３の実施の形態の一例であるストレージ制御装置100の構成図である。
【発明を実施するための形態】
【００１３】
近年ではホストやストレージの仮想化が進んでおり、多数の仮想ホストをストレージに接続、ストレージには多数の仮想的なディスクを構築して必要なときに必要な分だけ使用して柔軟に運用するシステムが一般的になっている。通常ホストからストレージ装置への論理的なディスクへのアクセスは冗長化のために複数のコントローラに接続されていて、正常時はいずれかのコントローラを通して論理的なディスクにアクセスしている。このとき接続されるコントローラによって論理的なディスクごとにアクセス性能が異なるような構成のストレージ装置の場合、性能が出るコントローラへの負荷の集中たり、ホストごとにアクセス性能に偏りが出ることがある問題があった。このような課題を解決する為のストレージ制御装置100について説明する。
【００１４】
（第１の実施の形態の構成）
図１は、本実施の形態の一例であるストレージ制御装置100の構成図である。本例のストレージ制御装置100のコントローラ101-1（コントローラ０）とコントローラ101-2（コントローラ１）は、それぞれ、ホストコンピュータ201（ホスト１）、ホストコンピュータ202（ホスト２）、ホストコンピュータ203（ホストm）、ホストコンピュータ204（ホストn）に接続されている。さらに、コントローラ０とコントローラ１は、それぞれ、物理ディスク群105に接続されている。
【００１５】
なお、ストレージ制御装置100に接続されたホスト201等と物理ディスク群105は、全体としてストレージシステム300を構成する。
【００１６】
物理ディスク群105は、論理的なディスク装置であるＬＵ（Logical Unit）を複数包含する。ＬＵは、そのアクセス時に、例えば、コントローラによって、物理ディスクにマッピングされる。各々のホストは、冗長化された複数のコントローラのうちの、いずれかのコントローラを経由していずれかのＬＵにアクセスを行う。このとき、例えば、ホスト１はコントローラ０、コントローラ１のどちらを経由してもＬＵにアクセスすることができるが、ＬＵごとに経由するパスによってアクセス性能が異なる。このような構成をＡＬＵＡ構成という。
【００１７】
ＡＬＵＡ構成のストレージ制御装置100は、ＡＬＵＡを制御するＳＣＳＩ（Small Computer System Interface）コマンドにより、ホストとＬＵ間のパスの切り替え制御を行うことができる。ＬＵごとにアクセスに最適な、即ち、アクセス性能が優れているパスをActive/Optimizedパス、それ以外のパスをActive/Non-Optimizedパスという。コントローラは、どのコントローラを経由するパスがActive/Optimizedパスであるかを、ＡＬＵＡ制御用ＳＣＳＩコマンドのReport Target Port Groupsの仕様に従い、ホストに通知している。
【００１８】
ストレージ制御装置100は物理ディスク群を例えば、ＲＡＩＤ（Redundant Arrays of Independent Disks）構成単位でまとめたものをプールとして管理する。プールを制御するコントローラは、ストレージ制御装置100内のいずれかのコントローラであり、このコントローラを、プールマスタコントローラという。図１において、ストレージ制御装置100には、プール０とプール１の二つのプールが接続されている。プール０のマスタコントローラはコントローラ０であり、プール１のマスタコントローラはコントローラ１である。
【００１９】
プールに対するアクセスは必ず当該プールのマスタコントローラから行われる。あるＬＵに対するアクセス要求が、当該ＬＵのマスタコントローラに出されれば、当該マスタコントローラが直接当該ＬＵをアクセスする。あるＬＵに対するアクセス要求が、当該ＬＵのマスタコントローラ以外のコントローラ（非マスタコントローラ）に出されれば、当該非マスタコントローラは、例えば、マスタコントローラにアクセス要求を転送して、間接的に当該ＬＵをアクセスする。
【００２０】
各コントローラには、グルーピング部110、ＬＵ管理テーブル、パス制御部112、Ｉ／Ｏ制御部113が搭載されている。グルーピング部110、パス制御部112、および、Ｉ／Ｏ制御部113は、コントローラに内蔵されている電子論理回路である。グルーピング部110、パス制御部112、およびＩ／Ｏ制御部113は、コントローラ内の制御メモリ（図示せず）に格納されたプログラムを、コントローラのプロセッサ（図示せず）が実行することで実現されても良い。この場合、コントローラは、一種のコンピュータである。ＬＵ管理テーブルは、コントローラ内の制御メモリに格納されている。
【００２１】
なお、グルーピング部110、ＬＵ管理テーブル、パス制御部112は、コントローラとは別に、ストレージ制御装置100内の、電子論理回路、制御メモリで実現されていても良い。さらに、グルーピング部110、パス制御部112は、ストレージ制御装置100内の制御メモリ（図示せず）に格納されたプログラムを、ストレージ制御装置100のプロセッサ（図示せず）が実行することで実現されても良い。この場合、ストレージ制御装置100は、一種のコンピュータである。
【００２２】
図２は、管理テーブル111の一部であるＬＵ管理テーブルの構成図である。ＬＵ管理テーブルは、ＬＵごとにアセス数、および、グループ番号を記憶するエリアをもつ。この図は、ストレージ制御装置100には、各々４つのＬＵを包含する２つのプールが接続されていることを示す。この図において、例えば、プール０は、ＬＵＮ（Logical Unit Number）が０から３のＬＵを包含し、おのおののアクセス数が20,30,30,20であって、ＬＵＮが０と１のＬＵのグループ０と、ＬＵＮが２と３のＬＵのグループ１の二つのグループに分けられていることを示している。なお、このＬＵ管理テーブルは、プールごとに別のコントローラに分散して記憶されていても良い。
【００２３】
図３は、管理テーブル111の一部であるＬＵコントローラテーブルの構成図である。ＬＵコントローラテーブルは、ＬＵごとにActive/Optimizedパスで使用されるコントローラの識別情報を記憶するエリアを持つ。この図は、図２のＬＵ管理テーブルのデータ例において、例えば、グループ０に属するＬＵ（ＬＵＮが０、１）に対しては、コントローラ０がActive/Optimizedパスで使用され、グループ１に属するＬＵ（ＬＵＮが２、３）に対しては、コントローラ１がActive/Optimizedパスで使用されることを示す。なおこのＬＵコントローラテーブルは、全コントローラに同じものが記憶されていても良い。
【００２４】
Ｉ／Ｏ制御部113は、ホストが送信した入出力要求を受信して、当該要求で指定されたＬＵに対応する物理ディスクにアクセスする。また、Ｉ／Ｏ制御部113は、管理テーブル102のアクセス数を記憶するエリアに、アクセスがあったＬＵへのアクセス数をカウントする。
【００２５】
グルーピング部110は、一定時間ごとにＬＵ管理テーブルのアクセス数を参照し、プール単位で各ＬＵのアクセス数の合計がなるべく均等となるようにグルーピングしてＬＵ管理テーブルのグループ番号エリアに番号を記録する。なお、ここで均等というのは厳密な意味ではなく、グループ間のアクセス数の差異が所定条件以下になることを意味する。図７は、グルーピング部110の動作フローチャートである。この例においては、グループ間のアクセス数の差異が、最大アクセス数のＬＵ分以下となる。また、グループ化の指標は、アクセス数に限られず、転送データ量、あるいは、Ｉ／Ｏビジー時間比率としても良い。
【００２６】
パス制御部112は、ＬＵのグループごとにActive/Optimizedパスとして使用するコントローラを決定する。これを、グループをコントローラに割り当てる、または、コントローラをグループに割り当てるという。パス制御部112は、ＬＵごとに、割り当てたコントローラの識別子をＬＵコントローラテーブルのActive/Optimizedパスで使用されるコントローラの識別情報エリアに記録する。
【００２７】
パス制御部112は、ホストが発行するReport Target Port Groupsコマンドを受信すると、当該コマンドで指定されたＬＵに対応するコントローラの識別情報をＬＵコントローラテーブルから取得してホストに出力し、ホストは指定されたコントローラ経由で、当該ＬＵにアクセスする。
【００２８】
図４は、ＬＵコントローラテーブルが図３の状態である場合におこなわれる、アクセスの様子を示す。ＬＵＮ０はコントローラ０を経由してアクセスされ、ＬＵＮ２はコントローラ１を経由してアクセスされる。
【００２９】
なお、パス制御部112は、一定時間ごとにグループ間のActive/Optimizedパスのコントローラの入れ替えを行う。
【００３０】
図５は、入れ替え後のＬＵコントローラテーブルの構成図である。この図は、図２のＬＵ管理テーブルのデータ例において、グループ０に属するＬＵ（ＬＵＮが０、１）に対しては、Active/Optimizedパスで使用されるコントローラが０から１に変更され、グループ１に属するＬＵ（ＬＵＮが２、３）に対しては、Active/Optimizedパスで使用されるコントローラが１から０に変更されている。
【００３１】
図６は、ＬＵコントローラテーブルが図５の状態である場合におこなわれる、アクセスの様子を示す。ＬＵＮ０はコントローラ１を経由してアクセスされ、ＬＵＮ２はコントローラ０を経由してアクセスされる。
【００３２】
図８は、パス制御部112のＬＵに対するコントローラの割り当てと変更の動作フローチャートである。
【００３３】
なお、グルーピング部110、管理テーブル111、パス制御部112が、コントローラの内部に設けられている場合、各部は、当該コントローラがマスタコントローラになっているプールに関して、上記の動作を行う。この場合、パス制御部112は、ＬＵコントローラテーブルの情報を設定あるいは変更したときは、設定・変更情報を他のコントローラに送信しても良い。
【００３４】
本実施の形態のストレージ制御装置100は、ＡＬＵＡ構成において、コントローラ間の負荷を分散するとともに、記憶装置間のアクセス性能の均等化を行うことができる。その理由は、バス制御部112が、プールを分割したグループに対するコントローラの割り当てを変更するからである。プール内のＬＵへのアクセスにおいて、常にプールマスタ側のコントローラに接続されないようになっているからである。また、グルーピング部110が、プールを、アクセス量が均等なグループに分割するからである。
【００３５】
なお、本実施の形態において、ストレージ制御装置100が備えるコントローラが２台、接続されるＬＵのプールが二つに限られない。コントローラおよびプールの数が３以上のＮである場合、グルーピング部110は、各プールをＮ分割し、そのＮ個のグループをラウンドロビンで、マスタコントローラに割り当てる。
【００３６】
（第２の実施形態）
第１の実施形態のようにグルーピング部110によってアクセス数でパスの割り振りを均等に行った場合、アクセス性能が常に必要な基幹業務用のＬＵも例外なくプールマスタではないコントローラにActive/Optimizedパスが割り振られてしまう期間が生じてしまう。この場合、ストレージ内での負荷は均等になっていたとしてもシステム全体としては遅い状態になってしまう問題が生じる。
【００３７】
その対策として、本実施形態のストレージ制御装置100においては、管理テーブルに優先フラグをセットできるエリアを設けて、ユーザが保守端末や管理ソフトから常にアクセス性能が必要なＬＵに優先フラグをセットする。
【００３８】
図９は、本実施の形態のＬＵ管理テーブルの構成を示す。本図においては、プール０のＬＵＮが０と２のＬＵに優先フラグが設定されている。グルーピング部110は、優先フラグがセットされているＬＵは優先グループ100を設定し、そのほかのＬＵでアクセス数が均等になるようにグループを分ける。図９の例は、プール０は、ＬＵＮが１のＬＵのグループ０と、ＬＵＮが３のＬＵのグループ１の二つのグループに分けられていることを示している。このように優先フラグの設定されていないプール１については、第１の実施形態と同じ論理でグループ分けが実行される。
【００３９】
パス制御部112は、優先グループ100のActive/Optimizedパスが必ずプールマスタになるように設定し、その他のグループのActive/Optimizedを各コントローラに振り分ける。図１０は、本実施の形態におけるコントローラの割り当てを示す。図１１は、本実施の形態におけるコントローラの割り当ての一定時間後の変化を示す。
【００４０】
図１０において、優先グループ100は、プール０のプールマスタであるコントローラ０に割り当てられている。プール０においては、当初は、グループ０のＬＵ（ＬＵＮ＝１）がコントローラ１に、グループ１のＬＵ（ＬＵＮ＝３）がコントローラ０に割り当てられている。
【００４１】
一定時間後には、プール０においては、グループ０のＬＵ（ＬＵＮ＝１）と、グループ１のＬＵ（ＬＵＮ＝３）の割り当てコントローラが変更されて逆転しているが、グループ100のＬＵは固定的にコントローラ０に割り当てられている。
【００４２】
なお、図９乃至１１から明らかなように、本実施の形態において、優先フラグの設定のないプール（例えば、図中のプール１）に対しては、第１の実施の形態と同じ扱いがなされる。
【００４３】
本実施の形態のストレージ制御装置100は、システム全体のアクセス性能の安定性を保証する。その理由は、パス制御部112が、性能が必要なＬＵを固定的にプールマスタであコントローラに割り当てるからである。
【００４４】
（第３の実施の形態）
図１２は、本実施の形態の一例であるストレージ制御装置100の構成図である。ストレージ制御装置100は、コントローラ101を複数と、グルーピング110と、パス制御部112を備える。
【００４５】
コントローラ101は、複数の記憶装置を含むプールとホストコンピュータに接続され、ホストコンピュータの要求を受信して、割り当てられた前記記憶装置の入出力を実行する。
【００４６】
グルーピング部110は、プール内の記憶装置をコントローラの数のグループに分ける。パス制御部112は、一つのグループを当該プールのマスタコントローラに割り当て、他のグループを当該プール内の記憶装置へのアクセスが当該プールのマスタコントローラより遅い他のコントローラに割り当て、所定時間ごとに、当該プールのマスタコントローラに割り当てるグループを循環的に変更する。
【００４７】
本実施の形態のストレージ制御装置100は、ＡＬＵＡ構成において、コントローラ間の負荷を分散するとともに、記憶装置間のアクセス性能の均等化を行うことができる。その理由は、バス制御部112が、プールを分割したグループに対するコントローラの割り当てを変更するからである。プール内のＬＵへのアクセスにおいて、常にプールマスタ側のコントローラに接続されないようになっているからである。
【００４８】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００４９】
100      ストレージ制御装置
101    コントローラ
105    物理ディスク群
110    グルーピング部
111    管理テーブル
112    パス制御部
113    Ｉ／Ｏ制御部
201、202、203、204    ホストコンピュータ
【図１】
2015090631.tif 000003
【図２】
2015090631.tif 000004
【図３】
2015090631.tif 000005
【図４】
2015090631.tif 000006
【図５】
2015090631.tif 000007
【図６】
2015090631.tif 000008
【図７】
2015090631.tif 000009
【図８】
2015090631.tif 000010
【図９】
2015090631.tif 000011
【図１０】
2015090631.tif 000012
【図１１】
2015090631.tif 000013
【図１２】
2015090631.tif 000014