(57)【要約】【課題】本発明は、複数のディスクコントローラを有するストレージシステムにおいて、担当LUN制御を行うディスクコントローラに障害が発生したときの制御方法に関するものである。【解決手段】ディスクアレイサブシステム内の配下のディスクデバイスをデバイスルータによりRAIDグループ単位に結合し、ホスト装置に対して担当LUN制御を行うディスクコントローラであって、ホスト装置およびコントローラルータとのインタフェース制御を行うチャネルアダプタ部と、ディスクコントローラの各機能部のエラーを検出・診断し、切り分け、再起動、再立ち上げを行う診断制御部とを備え、診断制御部は、再起動または再立ち上げを行う際に、チャネルアダプタ部の機能に問題ないとき、チャネルアダプタと他の機能部とを切り離して動作させるモードに設定して、再起動または再立ち上げを行うディスクコントローラ。【選択図】図３
2008040612.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイサブシステム内の他のディスクコントローラとコントローラルータで互いに結合され、配下のディスクデバイスをデバイスルータによりRAIDグループ単位に結合し、ホスト装置に対して担当LUN制御を行うディスクコントローラであって、
ホスト装置およびコントローラルータとのインタフェース制御を行うチャネルアダプタ部と、ディスクコントローラの各機能部のエラーを検出・診断し、切り分け、再起動、再立ち上げを行う診断制御部とを備え、
診断制御部は、再起動または再立ち上げを行う際に、チャネルアダプタ部の機能に問題ないとき、チャネルアダプタと他の機能部とを切り離して動作させるモードに設定して、再起動または再立ち上げを行う
ことを特徴とするディスクコントローラ。
【請求項２】
請求項１に記載のディスクコントローラであって、
チャネルアダプタと他の機能部とを切り離して動作させるモードでの再起動または再立ち上げのとき、
チャネルアダプタ以外の機能テストが正常に終わると、チャネルアダプタが動作していないことを確認して組み込み、通常モードとする
ことを特徴とするディスクコントローラ。
【請求項３】
ディスクアレイサブシステム内の他のディスクコントローラとコントローラルータで互いに結合され、配下のディスクデバイスをデバイスルータによりRAIDグループ単位に結合し、ホスト装置に対して担当LUN制御を行うディスクコントローラの診断制御方法であって、
ディスクコントローラの各機能部のエラーを検出・診断し、
ホスト装置およびコントローラルータとのインタフェース制御を行うチャネルアダプタ部の機能に問題ないと判断したとき、
再起動又は再立ち上げを行うことが必要と判断したとき、
チャネルアダプタと他の機能部とを切り離して動作させるモードに設定し、
再起動又は再立ち上げを行う
ことを特徴とする診断制御方法。
【請求項４】
請求項３に記載のディスクコントローラの診断制御方法であって、
チャネルアダプタと他の機能部とを切り離して動作させるモードで再起動または再立ち上げのとき、
チャネルアダプタ以外の機能テストを行い、正常であればチャネルアダプタが動作していないことを確認して組み込み、通常モードとする
ことを特徴とする診断制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイサブシステムにおけるRAID制御方式に関連するものであり、複数のディスクコントローラを有するストレージシステムにおいて、担当LUN制御を行うディスクコントローラに障害が発生したときの制御方法に関するものである。
注）LUN：Logical Unit Number
【背景技術】
【０００２】
図１にストレージシステムの装置構成例を示す。
【０００３】
このシステムは、主要要素として複数のホスト装置(H0〜)10a,10bと、ハードディスクを制御する複数のディスクコントローラ(C0〜)2a,2bと、各ディスクコントローラ間を結合するコントローラルータ(CR)3と、複数のハードディスクで構成される複数のRAIDグループ(RG0〜)5a,5bとを有する。RAIDグループに分けられた複数のハードディスクは、デバイスルータ(DR0〜)4a,4bによりRAIDグループ単位でディスクコントローラ(C0〜)2a,2bに接続され制御される。なお、ホスト装置は汎用計算機やPCサーバなどである。
【０００４】
複数のディスクコントローラを用いて、複数のRAIDグループを制御する場合に、可用性を高めるため物理的には各要素の接続形態は自由に変更できるようになっている。図１には簡単のため構成要素を各２つしか記載してないが３つ以上であることもあり、また図では省略した接続ルートもありうる。
【０００５】
ホスト装置等の制御資源を有効に利用するために、通常動作時には、ホスト装置に対してRAIDグループ毎に担当のコントローラを１対１に配置する制御（担当LUN制御）が行われている。ディスクコントローラ(C)とホスト装置(H)との接続は１対１であり、RAIDグループ(RG)との結合も１対１である。各ディスクコントローラ間はコントローラルータ(CR)3により結合されている。図１ではホスト装置(H0)10a、ディスクコントローラ(C0)2a、デバイスルータ(DR0)4a、RAIDグループ(RG0)5aと、ホスト装置(H1)10b、ディスクコントローラ(C1)2b、デバイスルータ(DR1)4b、RAIDグループ(RG1)5bとに分けられている。
【０００６】
各ディスクコントローラは、ホスト装置(H)から自分の担当するRAIDグループ以外のRAIDグループを指定したコマンドを受けた場合には、コントローラルータ(CR)を介して他のディスクコントローラへ伝達して以後の制御をまかせる。
【０００７】
通常、起動時などにマスタとなるディスクコントローラが決められ、各ディスクコントローラの担当するRAIDグループが決められ、それに従ってデバイスルータDR0〜nも設定される。この決め方は所定のルールによって決められるが本発明との直接の関連はないため詳細は省略する。
【０００８】
ここで、あるディスクコントローラ（例としてC0とする）が異常動作を起こしたとする。ディスクコントローラ(C0)2aは診断処理部(DG)23を備えており、異常検出により、リトライ等の復旧処理、故障部分の特定、切り離し（縮退）処理等を行う。その結果や動作中の異常ステータスをホスト装置(H0)10aに伝えて終了する。ここで、障害の復旧処理ができない場合や故障の特定ができない場合など、そのまま動作を続けることができない場合はステータスをホスト装置(H0)10aに伝えたのち、一旦自己リセットを行って再起動する。あるいは電源断からの再立ち上げを行う。
【０００９】
ディスクアレイサブシステム20は機能が複雑になっているため、ファームウエアのバグや特定の動作の組み合わせなどにより、まれに原因不明な異常動作を起こす場合がある。復旧処理、縮退処理、故障部分の特定ができなくても、再起動等を行えば復旧する場合が多いが、再起動や、電源断からの再立ち上げ時には、初期設定や初期診断等の処理に時間をとられる。それほど長い時間ではないとはいえ、図２に示すように、その間ホスト装置(H0)10aからのパスが切れることになり、RAIDグループ(RG0)5aへのアクセスができなくなる。システムへのアクセスが集中する時間帯であれば、システムとしての処理能力に重大な影響を及ぼすことがあり得る。この他に、ディスクコントローラ(C)の機能改良などでファームウエアを入れ替える場合や、以前の障害による縮退運転をしていた故障部分の交換などの場合がある。このときもシステム全体は停止しないで行うが、ディスクコントローラ(C)は止めなければならないので、その間、その担当するRAIDグループ(RG)へのアクセスはできないので、同様にシステムとしての処理能力に影響を及ぼすことになる。
【００１０】
多重化、冗長構成は広く行われており、ディスクアレイの管理、リカバリ方式については例えば
【特許文献１】特開2003-196036号公報のように多数の公知例がある。しかし、再起動や、電源断からの再立ち上げ時のパスが切れる期間を短縮するという観点の公知例は検出できなかった。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、ディスクアレイサブシステムにおいて、ディスクコントローラの故障やファームウエアの機能向上等に伴う一時的な動作停止や再立ち上げによりホスト装置からのパスが切れたり、RAIDグループヘのアクセスが出来なくなる事を防ぐ事を目的とするものである。
【課題を解決するための手段】
【００１２】
図２において、ディスクコントローラのインタフェース（Channel Adapter）部分を可能な限り生かす事で実現する。
【００１３】
ディスクコントローラ2aは、システム内の他のディスクコントローラ2bとコントローラルータ３で互いに結合され、配下のディスクデバイスはデバイスルータ4aによりRAIDグループ単位に結合され、担当LUN制御を行う。
【００１４】
また、ホスト装置10aおよびコントローラルータ３とのインタフェース制御を行うチャネルアダプタ部21と、ディスクコントローラの各機能部22のエラーを検出・診断し、切り分け、復旧処理、縮退処理および再起動や再立ち上げを行う診断処理部23とを備える。
【００１５】
診断制御部23は、再起動や再立ち上げを行う際に、チャネルアダプタ21の機能に問題ないとき、チャネルアダプタをRAIDグループを担当しない設定とし、かつ他の機能部と切り離して動作させるモードとする。
【００１６】
異常発生時、ディスクコントローラの診断処理部23はホスト装置10aおよび他のディスクコントローラ2bに通知する。診断処理部23は、診断処理の結果チャネルアダプタ21には異常がない場合、他の部分と切り離す。この状態で再起動や再立ち上げを行うと、チャネルアダプタ21はホスト装置10aからのコマンド等をスルーでコントローラルータ３に渡す動作となる。
【００１７】
このとき、他のディスクコントローラが事態を判断して、どれかがマスタとして動作し肩代わりする。そして異常ディスクコントローラの担当LUNを肩代わりする。この動作自体は従来技術と変わりはない。
【００１８】
異常が発生したディスクコントローラ2aは、障害の復旧処理ができない場合や故障の特定ができない場合などには、一旦再起動または再立ち上げ（電源断の後で電源再投入）を行うが、この間に、担当していたRAIDグループ5aにホスト装置10aがアクセスした場合、肩代わりした他のディスクコントローラ2bが引き継いで応答する。再立ち上げの場合でも電源が投入された時点でチャネルアダプタ21は正常動作するので、ホスト装置10aからのアクセスができない時間は短くできる。
【発明の効果】
【００１９】
(実施例１)
図３にディスクコントローラ(C)2に異常状態が発生した場合の診断処理部の動作フローチャートを示す。
（s1）エラー検出
（s2）診断制御部は、診断を行って故障部分の特定を行い、
（s3）復旧可能であればリトライ等の復旧処理（s31）、
（s4）縮退可能であれば、切り離し（縮退）処理（s41）等を行う。
（s51）動作継続可能な場合、その結果や動作中の異常ステータスをホスト装置に伝えて終了する。
【００２０】
障害の復旧処理、縮退処理ができない場合や故障の特定ができない場合など、そのまま動作を続けることができない場合は、
（s5）ステータスをホスト装置および他のディスクコントローラに通知する。
（s7）診断の結果、チャネルアダプタには異常がない場合、他の部分と切り離して動作させるモード（チャネルアダプタ分離モード）に設定する。チャネルアダプタはRAIDグループを担当しない設定となる。
（s8）自己リセットを行って再起動する。あるいは電源断からの再立ち上げを行う。  
【００２１】
１）再起動
ディスクコントローラのメモリが故障した等、チャネルアダプタ部分は正常であるがディスクコントローラC自体はそのまま使えないケースでは、ディスクコントローラ自体は異常状態であるため、一旦リセット再起動処理を実施してから改めてチャネルアダプタのみを独立して動作させる。
【００２２】
２）電源断からの再立ち上げ
再起動では回復不可能と判断できる場合や再起動失敗の場合は、電源の再投入を行う。ディスクコントローラCの電源断後に電源が投入されたとき、ディスクコントローラCのチャネルアダプタは独立して動作する。
【００２３】
図４に再起動または電源再投入の場合の処理フローチャートを示す。
（p1）再起動または電源再投入で電源が入ったとき、通常モードかチャネルアダプタ分離モードかを判定する。チャネルアダプタ分離モードであれば、チャネルアダプタは独立して動作する。
【００２４】
その間に、診断処理部(DG)23は、
（p2）チャネルアダプタ21やディスク等が動作中でないことを確認して、
（p3）初期設定や機能チェックを行う。
（p4）その結果が正常であれば、
（p5）チャネルアダプタ21やディスク等が動作中でないことを確認して、
（p6）チャネルアダプタの組み込みを行い、チャネルコントローラとして復帰させる。
【００２５】
ディスクコントローラ自体（の主要部分）の起動処理とは無関係にチャネルアダプタが動作するので、一時的にホストからのアクセスができなくなるものの、ホスト装置とのパスが切れるには至らずシステムをそのまま使用できる。
【００２６】
ディスクコントローラC0が故障したとすると、チャネルアダプタCA0が立ち上がれば、チャネルアダプタCA0はホスト装置H0からのコマンドはスルーで他のディスクコントローラC1に渡すので、それまで担当していたRAIDグループDR0は他のディスクコントローラC1に引き継がれる。
【００２７】
これにより、一時的にホスト装置H0からアクセスが出来なくなるものの、ディスクコントローラC0の再起動、再立ち上げ時の初期設定やディスクパス確認等の処理にかかっていた時間の間も、ホスト装置H0からのパスが切れるには至らずシステムはそのまま処理を続行できる。
【図面の簡単な説明】
【００２８】
【図１】ハードウエア構成
【図２】ディスクコントローラC0が故障した場合
【図３】診断処理部の動作フローチャート
【図４】再起動または電源再投入処理
【符号の説明】
【００２９】
１０    ホスト装置
２０    ディスクサブシステム
２、2a、2b    ディスクコントローラ
２１      チャネルアダプタ
２２      機能部
２３      診断処理部
２４      デバイスアダプタ
３      コントローラルータ
４、4a、4b    デバイスルータ
５、5a、5b    RAIDグループ
【図１】
2008040612.tif 000003
【図２】
2008040612.tif 000004
【図３】
2008040612.tif 000005
【図４】
2008040612.tif 000006