(57)【要約】【課題】冗長構成されたストレージ制御装置の再起動に伴うパス切れによる影響を限定できる。【解決手段】ストレージシステム１は、ストレージ装置２とサーバ装置５を含む。ストレージ装置２は、切替部２ｓとストレージ制御装置４，４ｄを含む。ストレージ制御装置４は、記憶部４ａと制御部４ｃを備える。記憶部４ａは、パス接続情報４ｂを記憶する。制御部４ｃは、ストレージ制御装置４ｄの再起動条件を検出した場合に、パス接続情報４ｂにもとづいて切替部２ｓにおける第２ポート５ｂの接続先を、第２パス２ｂによるストレージ制御装置４ｄから第３パス２ｃによるストレージ制御装置４に切り替えた後、ストレージ制御装置４ｄに再起動を指示する。【選択図】図１
2017010390.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置の第１ポートと切替部を介して第１パスで接続し、前記サーバ装置の第２ポートと前記切替部を介して第２パスで接続する冗長系ストレージ制御装置とともに前記サーバ装置からストレージ装置へのアクセス制御を分担するストレージ制御装置であって、
前記切替部における前記サーバ装置と当該ストレージ制御装置との接続および前記サーバ装置と前記冗長系ストレージ制御装置との接続に関するパス接続情報を記憶する記憶部と、
前記冗長系ストレージ制御装置の再起動条件を検出した場合に、前記パス接続情報にもとづいて前記切替部における前記第２ポートの接続先を、前記第２パスで接続する前記冗長系ストレージ制御装置から第３パスで接続する当該ストレージ制御装置に切り替えた後、前記冗長系ストレージ制御装置に再起動を指示する、
制御部を備えるストレージ制御装置。
【請求項２】
前記切替部は、前記切替部が保持する前記パス接続情報にもとづいてパス切替を制御するものであって、
前記制御部は、前記冗長系ストレージ制御装置の再起動条件を検出した場合に前記パス接続情報を更新する、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、前記冗長系ストレージ制御装置の異常検出を契機に、前記パス接続情報を更新する、
請求項２記載のストレージ制御装置。
【請求項４】
前記制御部は、前記冗長系ストレージ制御装置の再起動要求を契機に前記パス接続情報を更新し、前記パス接続情報にもとづくパス切替を確認後に前記冗長系ストレージ制御装置の再起動要求を許可する、
請求項２記載のストレージ制御装置。
【請求項５】
前記制御部は、前記冗長系ストレージ制御装置の再起動完了を契機に前記パス接続情報を更新し、前記パス接続情報にもとづいて前記切替部における前記第２ポートの接続先を、前記第３パスによる当該ストレージ制御装置から前記第２パスによる前記冗長系ストレージ制御装置に切り替える、
請求項４記載のストレージ制御装置。
【請求項６】
前記制御部は、前記再起動の対象となる第１制御部と、前記再起動の対象外である前記第１制御部を監視する第２制御部とを含む、
請求項１記載のストレージ制御装置。
【請求項７】
サーバ装置の第１ポートと切替部を介して第１パスで接続し、前記サーバ装置の第２ポートと前記切替部を介して第２パスで接続する冗長系ストレージ制御装置とともに前記サーバ装置からストレージ装置へのアクセス制御を分担するストレージ制御装置が備えるコンピュータが実行するストレージ制御プログラムであって、
前記コンピュータに、
前記冗長系ストレージ制御装置の再起動条件を検出した場合に、前記切替部における前記サーバ装置と当該ストレージ制御装置との接続および前記サーバ装置と前記冗長系ストレージ制御装置との接続に関するパス接続情報にもとづいて前記切替部における前記第２ポートの接続先を、前記第２パスで接続する前記冗長系ストレージ制御装置から第３パスで接続する当該ストレージ制御装置に切り替えた後、前記冗長系ストレージ制御装置に再起動を指示する、
処理を実行させるストレージ制御プログラム。
【請求項８】
サーバ装置の第１ポートと切替部を介して第１パスで接続し、前記サーバ装置の第２ポートと前記切替部を介して第２パスで接続する冗長系ストレージ制御装置とともに前記サーバ装置からストレージ装置へのアクセス制御を分担するストレージ制御装置が備えるコンピュータが実行するストレージ制御方法であって、
前記冗長系ストレージ制御装置の再起動条件を検出した場合に、前記切替部における前記サーバ装置と当該ストレージ制御装置との接続および前記サーバ装置と前記冗長系ストレージ制御装置との接続に関するパス接続情報にもとづいて前記切替部における前記第２ポートの接続先を、前記第２パスで接続する前記冗長系ストレージ制御装置から第３パスで接続する当該ストレージ制御装置に切り替えた後、前記冗長系ストレージ制御装置に再起動を指示する、
処理を実行するストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法に関する。
【背景技術】
【０００２】
冗長構成されたストレージ制御装置（冗長モジュール）を有するストレージ装置は、異常が生じた冗長モジュールの再起動によりエラー状態を除去して異常から復帰できる場合がある。これにより、ストレージ装置は、異常が生じた冗長モジュールの交換を要せずに機能維持を図ることができる。
【０００３】
サーバ装置は、異常が生じた冗長モジュールとのパス切れを検出した場合にエラーパスを切り離してフェールオーバーパスへの切り替えをおこなう。これにより、サーバ装置は、１つの系の閉塞により縮退運転される場合があるがストレージ装置へのアクセスを継続できる。サーバ装置は、異常が生じた冗長モジュールが再起動により復帰した場合、切り離したエラーパスを再度確立して冗長モジュールに生じた異常から復旧できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１６９６５９号公報
【特許文献２】特開２００８−２０４２３８号公報
【特許文献３】特開２００８−２１７２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなストレージ装置は、サーバ装置にフェールオーバーパスへの切り替え機能を求めることとなる。また、サーバ装置がパス切れの検出をおこなうこととなり、パス切れの検出遅れはシステム要件のレスポンス低下を惹起し、パス切れの検出誤りはシステムを不安定化させる。また、システムによっては、一旦切り離されたエラーパスの再度の確立にシステムエンジニアのオペレーションを要する場合がある。
【０００６】
１つの側面では、本発明は、冗長構成されたストレージ制御装置の再起動に伴うパス切れによる影響を限定できるストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、以下に示すような、サーバ装置の第１ポートと切替部を介して第１パスで接続し、サーバ装置の第２ポートと切替部を介して第２パスで接続する冗長系ストレージ制御装置とともにサーバ装置からストレージ装置へのアクセス制御を分担するストレージ制御装置が提供される。ストレージ制御装置は、記憶部と制御部を備える。記憶部は、切替部におけるサーバ装置と当該ストレージ制御装置との接続およびサーバ装置と冗長系ストレージ制御装置との接続に関するパス接続情報を記憶する。制御部は、冗長系ストレージ制御装置の再起動条件を検出した場合に、パス接続情報にもとづいて切替部における第２ポートの接続先を、第２パスで接続する冗長系ストレージ制御装置から第３パスで接続する当該ストレージ制御装置に切り替えた後、冗長系ストレージ制御装置に再起動を指示する。
【０００８】
また、１つの態様では、コンピュータに処理を実行させるストレージ制御プログラムが提供される。また、１つの態様では、コンピュータが実行するストレージ制御方法が提供される。
【発明の効果】
【０００９】
１態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法において、冗長構成されたストレージ制御装置の再起動に伴うパス切れによる影響を限定できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態のストレージシステムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のストレージ装置の構成の一例を示す図である。
【図４】第２の実施形態のＦＣスイッチの構成の一例を示す図である。
【図５】第２の実施形態のストレージシステムにおけるパス構成と障害復旧の一例を示す図である。
【図６】第２の実施形態のストレージシステムにおける障害復旧のタイミングチャートの一例を示す図（その１）である。
【図７】第２の実施形態のストレージシステムにおける障害復旧のタイミングチャートの一例を示す図（その２）である。
【図８】第２の実施形態のストレージシステムにおける障害復旧のタイミングチャートの一例を示す図（その３）である。
【図９】第２の実施形態の異常監視処理のフローチャートを示す図である。
【図１０】第２の実施形態の割込処理のフローチャートを示す図である。
【図１１】第２の実施形態のパス切替処理のフローチャートを示す図である。
【図１２】第２の実施形態のゾーニング設定テーブルの一例を示す図である。
【図１３】第２の実施形態のストレージシステムにおけるファームウェアアップデートのタイミングチャートの一例を示す図である。
【図１４】第３の実施形態のストレージシステムにおけるパス構成と障害復旧の一例を示す図である。
【図１５】第４の実施形態のストレージシステムにおけるパス構成と障害復旧の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージシステムについて図１を用いて説明する。図１は、第１の実施形態のストレージシステムの構成の一例を示す図である。
【００１２】
ストレージシステム１は、ストレージ装置２と、ストレージ装置２と接続するサーバ装置（外部装置）５を含む。ストレージ装置２は、サーバ装置５から受け付けるアクセス要求に応じてストレージデバイスを制御する。ストレージデバイスは、たとえばＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などがある。
【００１３】
ストレージ装置２は、切替部２ｓとストレージ制御装置４，４ｄを含む。なお、ストレージ装置２は、切替部２ｓを含まずに切替部２ｓを外部接続するものであってもよい。ストレージ制御装置４，４ｄは、ストレージ装置２にとって冗長構成である。ストレージ制御装置４，４ｄは、サーバ装置５からストレージデバイスへのアクセス制御を分担し、一方に障害が生じたとき他方がサーバ装置５からストレージデバイスへのアクセス制御を担う。したがって、ストレージ制御装置４，４ｄは、一方にとって他方が冗長系ストレージ制御装置となる。
【００１４】
切替部２ｓは、サーバ装置５とストレージ制御装置４，４ｄとのパスを切り替える。たとえば、切替部２ｓは、サーバ装置５の第１ポート５ａとストレージ制御装置４とを第１パス２ａで接続し、サーバ装置５の第２ポート５ｂとストレージ制御装置４ｄとを第２パス２ｂで接続する。切替部２ｓは、第２ポート５ｂの接続先を、第２パス２ｂで接続するストレージ制御装置４ｄから第３パス２ｃで接続するストレージ制御装置４に切り替えることができる。
【００１５】
ストレージ制御装置４は、記憶部４ａと制御部４ｃを備える。記憶部４ａは、パス接続情報４ｂを記憶する。パス接続情報４ｂは、切替部２ｓにおけるサーバ装置５とストレージ制御装置４，４ｄとの接続に関する情報である。たとえば、パス接続情報４ｂは、サーバ装置５の第１ポート５ａとストレージ制御装置４とを第１パス２ａで接続する接続関係と、サーバ装置５の第２ポート５ｂとストレージ制御装置４ｄとを第２パス２ｂで接続する接続関係とを含む。記憶部４ａは、たとえば、ＲＡＭ（Random Access Memory）などがある。
【００１６】
制御部４ｃは、ストレージ制御装置４ｄの再起動条件を検出できる。再起動条件は、たとえば、ストレージ制御装置４ｄの再起動を要する障害の検出（ストレージ制御装置４ｄからの通知を含む）や、ストレージ制御装置４ｄの再起動を要するアップデート（ストレージ制御装置４ｄのファームウェアの更新など）がある。
【００１７】
制御部４ｃは、ストレージ制御装置４ｄの再起動条件を検出した場合に、パス接続情報４ｂにもとづいて切替部２ｓにおける第２ポート５ｂの接続先を、第２パス２ｂで接続するストレージ制御装置４ｄから第３パス２ｃで接続するストレージ制御装置４に切り替える。制御部４ｃは、第２ポート５ｂの接続先をストレージ制御装置４ｄからストレージ制御装置４に切り替えた後、ストレージ制御装置４ｄに再起動を指示する。
【００１８】
なお、ストレージ制御装置４ｄは、ストレージ制御装置４と同様の構成を有する。ストレージ制御装置４ｄは、ストレージ制御装置４の再起動条件を検出した場合、切替部２ｓにパス接続の切り替えを指示できるとともに、ストレージ制御装置４に対して再起動を指示できる。
【００１９】
このようなストレージ制御装置４によれば、サーバ装置５は、フェールオーバーパスへの切り替え機能を要しない。また、サーバ装置５がストレージ制御装置４，４ｄとのパス切れの検出をおこなうことを要しない。したがって、ストレージシステム１は、パス切れの検出遅れによりシステム要件のレスポンスが低下することを抑制できる。また、ストレージシステム１は、パス切れの検出誤りによりシステムが不安定化することを抑制できる。このように、ストレージ制御装置４は、冗長構成されたストレージ制御装置の再起動に伴うパス切れによる影響を限定できる。
【００２０】
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２１】
ストレージシステム６は、サーバ装置７とＦＣ（Fibre Channel）スイッチ８とストレージ装置１０を含む。サーバ装置７は、ＦＣスイッチ８を介してストレージ装置１０とＦＣｏＥ（Fibre Channel over Ethernet）で接続し、ストレージ装置１０が備えるストレージデバイスにデータを書き込み、またストレージデバイスからデータを読み出すことができる。
【００２２】
次に、第２の実施形態のストレージ装置について図３を用いて説明する。図３は、第２の実施形態のストレージ装置の構成の一例を示す図である。
ストレージ装置１０は、コントローラモジュール（以下、ＣＭ（Controller Module））１１，１２と、ドライブエンクロージャ（以下、ＤＥ（Drive Enclosure））２０，２１，２２と、チャネルアダプタ（ＣＡ（Channel Adapter））１１７，１１８，１２７，１２８を含む。
【００２３】
ＣＡ１１７，１１８，１２７，１２８は、サーバ装置７と接続可能なサーバインタフェースポートであり、ＦＣスイッチ８を介してサーバ装置７と接続するときＦＣインタフェースとして機能する。ＣＡ１１７，１１８は、ＣＭ１１に対応して備えられ、ＣＡ１２７，１２８は、ＣＭ１２に対応して備えられる。ＣＡ１１７，１１８，１２７，１２８は、通常時においてターゲット動作をおこなうが、設定時等においてイニシエータ動作をおこなうことができる。
【００２４】
ＤＥ２０，２１，２２は、それぞれ１または２以上のストレージデバイスを含む。たとえば、ＤＥ２０は、ＨＤＤ２００，２０１，２０２，２０３を含む。なお、ＤＥ２０は、ＳＳＤなどその他のストレージデバイスを含むものであってもよい。ＤＥ２０，２１，２２が備えるストレージデバイスは、サーバ装置７からＣＭ１１またはＣＭ１２を介してアクセスされる。ストレージ装置１０は、たとえば、ＤＥ２０，２１，２２が備えるストレージデバイスによりＲＡＩＤ（Redundant Arrays of Independent Disks）を実現し、サーバ装置７とＦＣスイッチ８とともにＲＡＩＤシステムを構成する。ＣＭ１１，１２は、ＲＡＩＤシステムにおいてそれぞれＲＡＩＤサブシステムを構成する。
【００２５】
ＣＭ１１とＣＭ１２は、協働して負荷を分担することができる。ＣＭ１１とＣＭ１２は、信号線１３で接続する。信号線１３は、データの送受信に用いられるローカルバスと、割込信号の通知に用いられる信号線を含む。なお、ストレージ装置１０は、２つのＣＭ１１，１２を含むが、これに限らず３つ以上のＣＭを含むものであってもよく、たとえば４つあるいは８つのＣＭを含むものであってもよい。
【００２６】
ＣＭ１１は、メインプロセッサ（ＭＰ（Main Processor））１１１と、メモリ１１２，１１３と、サービスプロセッサ（ＳＶＰ（Service Processor））１１４と、ディスクアダプタ（ＤＡ（Disk Adapter））１１５，１１６を含む。ＣＭ１２は、ＭＰ１２１と、メモリ１２２，１２３と、ＳＶＰ１２４と、ＤＡ１２５，１２６を含む。なお、ＣＭ１２はＣＭ１１と同様の構成を有するため、以下、ＣＭ１１の説明をもってＣＭ１２の説明に代える。
【００２７】
ＭＰ１１１、メモリ１１２、ＣＡ１１７，１１８、およびＤＡ１１５，１１６は、図示しないバスを介して接続されている。ＭＰ１１１は、ＣＭ１１が担当するストレージ制御をおこなう。
【００２８】
ＳＶＰ１１４およびメモリ１１３は、図示しないＳＭバス（System Management Bus）を介して接続されている。ＳＶＰ１１４は、ＭＰ１１１の動作状態を監視する監視モジュールとして機能する。ＳＶＰ１１４は、ＩＰＭＩ（Intelligent Platform Management Interface）によりＭＰ１１１の動作状態を監視するとともに、リブート（再起動）の指示をおこなうことができる。また、ＳＶＰ１１４は、ＭＰ１１１に対してパス切替のトリガとなる割込みをかけることができる。たとえば、ＳＶＰ１１４は、割込みコントローラを介してＳＶＰ１１４にＮＭＩ（Non Mask-able Interruption）を入力できる。これにより、ＳＶＰ１１４は、ＭＰ１１１に対してパス切替のトリガを最優先順位で通知できる。
【００２９】
なお、ＭＰ１１１およびＳＶＰ１１４は、マルチプロセッサであってもよい。ＭＰ１１１およびＳＶＰ１１４は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またＭＰ１１１およびＳＶＰ１１４は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３０】
メモリ１１２は、ストレージデバイスからデータを読み出したときにデータを保持するほか、ストレージデバイスにデータを書き込むときのバッファとなる。また、メモリ１１２は、ユーザデータや制御情報を格納する。メモリ１１３は、ＳＶＰ１１４の制御情報や、ゾーニング設定テーブル、構成情報、ＭＰ１１１の監視情報などを格納する。たとえば、メモリ１１３は、不揮発性メモリを含む。
【００３１】
たとえば、メモリ１１２は、ＤＩＭＭ（Dual Interface Memory Module）などのＲＡＭや不揮発性メモリを含む。ＣＭ１１の主記憶装置として使用される。ＲＡＭには、ＭＰ１１１に実行させるオペレーティングシステム（Operating System）のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭには、ＭＰ１１１による処理に必要な各種データが格納される。また、ＲＡＭは、各種データの格納に用いるメモリと別体にキャッシュメモリを含む。
【００３２】
不揮発性メモリは、ストレージ装置１０の電源遮断時においても記憶内容を保持する。不揮発性メモリは、たとえば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）やフラッシュメモリなどの半導体記憶装置や、ＨＤＤなどである。また、不揮発性メモリは、ＣＭ１１の補助記憶装置として使用される。不揮発性メモリには、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
【００３３】
バスに接続される周辺機器としては、入出力インタフェース、および通信インタフェースがある。入出力インタフェースは、入出力装置と接続して入出力をおこなう。入出力インタフェースは、ＨＤＤなどの記憶装置から送られてくる信号やデータをＭＰ１１１やメモリ１１２に送信する。また、入出力インタフェースは、たとえば、ＭＰ１１１から受信した信号を、他の制御部や、ＣＭ１１と接続する出力装置に出力する。通信インタフェースは、ストレージ装置１０内の他のＣＭ（ＣＭ１２）との間でデータの送受信をおこなう。
【００３４】
入出力インタフェースと接続する入出力装置は、たとえばメンテナンスターミナルがある。メンテナンスターミナルは、ノートＰＣ（Personal Computer）などであって、入出力インタフェースとＥｔｈｅｒｎｅｔ（登録商標）で接続する。
【００３５】
ＤＡ１１５，１１６は、ＤＥ２０，２１，２２が備えるストレージデバイス（たとえば、ＨＤＤ２００，２０１，２０２，２０３）とのインタフェース制御（アクセス制御）をおこなう。
【００３６】
以上のようなハードウェア構成によって、ストレージ装置１０、あるいはＣＭ１１，１２の処理機能を実現することができる。なお、第１の実施形態に示したストレージ制御装置４，４ｄも、ストレージ装置１０、あるいはＣＭ１１，１２と同様のハードウェアにより実現することができる。このとき、ＣＭ１１，１２は、それぞれストレージ装置１０のストレージ制御装置として機能する。また、ＭＰ１１１とＳＶＰ１１４はＣＭ１１の制御部として機能し、メモリ１１２，１１３はＣＭ１１の記憶部として機能する。また、ＭＰ１２１とＳＶＰ１２４はＣＭ１２の制御部として機能し、メモリ１２２，１２３はＣＭ１２の記憶部として機能する。
【００３７】
次に、ＦＣスイッチ８の構成について図４を用いて説明する。図４は、第２の実施形態のＦＣスイッチの構成の一例を示す図である。
ＦＣスイッチ８は、コントローラ８０と、メモリ８１と、ポート８２〜８９を含む。コントローラ８０は、ＦＣスイッチ８を統括的に制御し、各種設定や、パスの設定、パスの切替などをおこなう。また、コントローラ８０は、サーバ装置７またはストレージ装置１０から指示を受けて、ポート８２〜８９間の対応を組み替えてパスを切り替えることができる。メモリ８１は、ゾーニング設定テーブルや構成情報などを格納する。ポート８２〜８５は、サーバ装置７と接続するポートであり、ポート８６〜８９は、ストレージ装置１０と接続するポートである。
【００３８】
なお、ＦＣスイッチ８は、サーバ装置７またはストレージ装置１０からの指示にもとづいてパスを切り替え可能なスイッチの一例である。たとえば、このようなスイッチには、他にＳＡＳ（Serial Attached ＳＣＳＩ（Small Computer System Interface））スイッチがある。また、スイッチは、ストレージ装置１０側からの指示にもとづいてパスを切り替え可能であればよく、このようなスイッチには、ＰＣＩｅ（Peripheral Component Interconnect express）などのインタフェースを用いるスイッチやユニークなノード間切替スイッチなどがある。
【００３９】
次に、ストレージシステム６におけるパス構成について図５を用いて説明する。図５は、第２の実施形態のストレージシステムにおけるパス構成と障害復旧の一例を示す図である。
【００４０】
以下、パス構成の説明については、接続関係を明確にするため、サーバ装置７をサーバ装置＃１と表わし、サーバ装置＃１のインタフェースをＨＢＡ（Host Bus Adapter）−１とＨＢＡ−２で表わす。また、ＦＣスイッチ８のポート８２〜８９をそれぞれＰｏｒｔ−１からＰｏｒｔ−８で表わす。また、ストレージ装置１０が備える２つのＣＭ１１，１２をそれぞれＣＭ＃１、ＣＭ＃２と表わし、ＭＰ１１１，１２１をそれぞれＭＰ＃１，ＭＰ＃２と表わし、ＳＶＰ１１４，１２４をそれぞれＳＶＰ＃１、ＳＶＰ＃２と表わす。また、ＣＭ＃１のＣＡ１１７，１１８をそれぞれＣＨ−１１、ＣＨ−１２と表わし、ＣＭ＃２のＣＡ１２７，１２８をそれぞれＣＨ−２１、ＣＨ−２２と表わす。
【００４１】
サーバ装置＃１とＦＣスイッチ８は、ＨＢＡ−１とＰｏｒｔ−１とを接続し、ＨＢＡ−２とＰｏｒｔ−３とを接続する。ＣＭ＃１とＦＣスイッチ８は、ＣＨ−１１とＰｏｒｔ−５とを接続し、ＣＨ−１２とＰｏｒｔ−６とを接続する。ＣＭ＃２とＦＣスイッチ８は、ＣＨ−２１とＰｏｒｔ−７とを接続し、ＣＨ−２２とＰｏｒｔ−８とを接続する。
【００４２】
ＣＭ＃１、ＣＭ＃２が正常に稼働しているとき、ＦＣスイッチ８は、Ｐｏｒｔ−１とＰｏｒｔ−５とを接続し、Ｐｏｒｔ−３とＰｏｒｔ−７とを接続する。したがって、サーバ装置＃１とＣＭ＃１とは、ＨＢＡ−１とＰｏｒｔ−１とＰｏｒｔ−５とＣＨ−１１を経由するパスｐ１で接続される。また、サーバ装置＃１とＣＭ＃２とは、ＨＢＡ−２とＰｏｒｔ−３とＰｏｒｔ−７とＣＨ−２１を経由するパスｐ２で接続される。
【００４３】
ここで、ＣＭ＃２に障害が生じた場合、ＣＭ＃２はＭＰ＃２のリブート（再起動）により復旧を試みる。ＳＶＰ＃２は、ＭＰ＃２の状態を監視可能であり、ＭＰ＃２のリブートに先立ち、ＳＶＰ＃１と接続するローカルバス経由でＣＭ＃２の障害をＣＭ＃１に通知する。ＣＭ＃２の障害を検出したＣＭ＃１は、パスｐ２の切り替えをＦＣスイッチ８に指示し、ＦＣスイッチ８は、ＨＢＡ−２とＣＨ−２１を接続するパスｐ２からＨＢＡ−２とＣＨ−１２を接続するパスｐ３に切り替える。これにより、サーバ装置＃１とＣＭ＃１とは、ＨＢＡ−２とＰｏｒｔ−３とＰｏｒｔ−６とＣＨ−１２を経由するパスｐ３で接続され、ＣＭ＃２はサーバ装置＃１から切り離される。ＣＭ＃１は、ＦＣスイッチ８がパスｐ２からパスｐ３に切り替えたことを確認した後、ＭＰ＃２のリブートを指示（許可）する。
【００４４】
これにより、サーバ装置＃１は、ＨＢＡ−２からＣＭ＃２経由でおこなっていたストレージデバイスへのアクセスをＣＭ＃１経由で継続できる。すなわち、ストレージ装置１０は、冗長構成されたＣＭの再起動に伴うパス切れによる影響を限定できる。
【００４５】
なお、サーバ装置＃１は、ストレージデバイスへのアクセスのタイムアウトからアクセスパスの障害を検出して、マルチパスドライバ７１によるＨＢＡ−２からＨＢＡ−１へのパスの切り替えや、ＦＣスイッチ８へのパス切替の指示をおこなうことができる場合がある。しかしながら、ストレージ装置１０は、自らの異常を検出できることから、タイムアウト監視によりアクセスパスの障害を検出するサーバ装置＃１よりも早期に障害を検出できる。
【００４６】
また、ストレージ装置１０は、サーバ装置＃１のタイムアウト監視時間以内にＦＣスイッチ８におけるパス切替を完了することで、サーバ装置＃１の障害対応を不要にする。すなわち、ストレージ装置１０は、サーバ装置＃１におけるパス切替機能を不要にすることから、ストレージ装置１０と接続するサーバ装置の要件を緩和できる。なお、ストレージ装置１０は、ＦＣスイッチ８におけるパス切替完了までの間のサーバ装置＃１からのアクセスに対してビジー応答を返すことでアクセスパス障害検出の監視時間がタイムアウトすることを防止できる。
【００４７】
なお、図５では、ＣＭ＃２に障害が生じた場合を例示したが、ＣＭ＃１に障害が生じた場合であっても同様である。
次に、ストレージシステム６における障害復旧過程について図６から図８を用いて説明する。まず、障害ＣＭのリブート実行までの障害復旧過程について図６を用いて説明する。図６は、第２の実施形態のストレージシステムにおける障害復旧のタイミングチャートの一例を示す図（その１）である。
【００４８】
［シーケンスｓｑ１］ＭＰ＃２は、検出した異常をＳＶＰ＃２に通知する。ＭＰ＃２が検出する異常は、たとえば、ハードウェアやソフトウェアの障害があり、またＭＰ＃２自体の障害のほかＣＨ＃２１やＣＨ＃２２の障害がある。
【００４９】
［シーケンスｓｑ２］ＳＶＰ＃２は、ＭＰ＃２からの通知を受けてＭＰ＃２の異常を検出する。
［シーケンスｓｑ３］ＳＶＰ＃２は、検出した異常にもとづいてステータスレジスタ（制御情報）を更新し、ＳＶＰ＃１に異常を通知する。たとえば、ステータスレジスタは、１６ビットあり、ＳＶＰ＃２は、割込信号およびリブート待ち信号に相当するビットに「１」をセットする。ステータスレジスタの割込信号に相当するビットに「１」をセットすることによって、ＳＶＰ＃２は、ハード的に割込信号をＳＶＰ＃１に出力する。
【００５０】
［シーケンスｓｑ４］ＳＶＰ＃１は、ＳＶＰ＃２からの割込信号の入力を契機にしてローカルバス経由でＳＶＰ＃２の制御情報を取得し、制御情報から検出したＭＰ＃２の異常、すなわちＣＭ＃２の異常をＭＰ＃１に通知する。制御情報は、ＣＭ＃２の状態情報と、ＳＶＰ＃１とＳＶＰ＃２との間で協調動作をおこなうためのリモート制御情報（リクエストやＡｃｋ（肯定応答））を含む。これによりＳＶＰ＃１は、ＣＭ＃２の状態を把握できるほか、ＳＶＰ＃２との間で協調動作を図ることができる。
【００５１】
［シーケンスｓｑ５］ＭＰ＃１は、ＣＭ＃２の異常を検出する。
［シーケンスｓｑ６］ＭＰ＃１は、ＦＣスイッチ８のコントローラ８０にパス切替を指示する。たとえば、ＭＰ＃１は、コントローラ８０にパスｐ２からパスｐ３へのパス切替（図５参照）を指示する。
【００５２】
［シーケンスｓｑ７］ＦＣスイッチ８のコントローラ８０は、パスｐ２からパスｐ３へのパス切替をおこなう。
［シーケンスｓｑ８］ＦＣスイッチ８のコントローラ８０は、パスｐ２からパスｐ３へのパス切替完了をＭＰ＃１に通知する。
【００５３】
［シーケンスｓｑ９］ＭＰ＃１は、パス切替完了をＳＶＰ＃１に通知する。
［シーケンスｓｑ１０］ＳＶＰ＃１は、パス切替完了をＳＶＰ＃２に通知する。たとえば、ＳＶＰ＃１は、ＳＶＰ＃２のステータスレジスタのパス切替に相当するビットに「１」をセットすることによって、あるいはＡｃｋリブートに相当するビットに「１」をセットすることによって、パス切替完了をＳＶＰ＃２に通知する。
【００５４】
［シーケンスｓｑ１１］ＳＶＰ＃２は、パス切替完了を検出する。たとえば、ＳＶＰ＃２は、ステータスレジスタのＡｃｋリブートに相当するビットに「１」がセットされることによりパス切替完了を検出する。
【００５５】
［シーケンスｓｑ１２］ＳＶＰ＃２は、ＭＰ＃２にリブートを指示する。
［シーケンスｓｑ１３］ＭＰ＃２は、リブートを実行する。このとき、ＳＶＰ＃２は、ＭＰ＃２のリブートの実行をＳＶＰ＃１に通知可能にしてもよい。たとえば、ＳＶＰ＃２は、ＳＶＰ＃２のステータスレジスタのリブート実行中に相当するビットに「１」をセットすることによって、ＭＰ＃２のリブート実行中をＳＶＰ＃１に通知できる。
【００５６】
このようにストレージ装置１０は、ＣＭ＃２とサーバ装置＃１とのパスを、ＣＭ＃１とサーバ装置＃１とのパスに切り替えてから、ＣＭ＃２のリブートを実行する。これにより、ストレージ装置１０は、パス切れによるサーバ装置＃１への影響を限定してＣＭ＃２のリブートを実行できる。
【００５７】
次に、障害ＣＭのリブート実行後に障害ＣＭが正常復帰する場合の障害復旧過程について図７を用いて説明する。図７は、第２の実施形態のストレージシステムにおける障害復旧のタイミングチャートの一例を示す図（その２）である。
【００５８】
［シーケンスｓｑ２１］ＭＰ＃２は、リブートの実行により正常復帰する。なお、ＣＭ＃２は、ＭＰ＃２のほかにＭＰ＃２と接続する周辺デバイス（たとえば、ＣＨ−２１、ＣＨ−２２）をリブートの実行対象に含めてもよい。ただし、ＳＶＰ＃２は、ＭＰ＃２の正常復帰を監視するためリブートの実行対象とならない。すなわち、ＭＰ＃２は、リブートの対象であり、ＳＶＰ＃２は、リブートの対象外である。
【００５９】
［シーケンスｓｑ２２］ＳＶＰ＃２は、ＭＰ＃２の復帰を検出する。
［シーケンスｓｑ２３］ＳＶＰ＃２は、ＭＰ＃２の復帰をＳＶＰ＃１に通知する。たとえば、ＳＶＰ＃２は、ＳＶＰ＃２のステータスレジスタのＲｅａｄｙに相当するビットに「１」をセットすることによって、ＭＰ＃２の復帰をＳＶＰ＃１に通知する。
【００６０】
［シーケンスｓｑ２４］ＳＶＰ＃１は、ＭＰ＃２の復帰、すなわちＣＭ＃２の復帰をＭＰ＃１に通知する。
［シーケンスｓｑ２５］ＭＰ＃１は、ＣＭ＃２の復帰を検出する。
【００６１】
［シーケンスｓｑ２６］ＭＰ＃１は、ＦＣスイッチ８のコントローラ８０にパス切替を指示する。たとえば、ＭＰ＃１は、コントローラ８０にパスｐ３からパスｐ２へのパス切替（図５参照）を指示する。
【００６２】
［シーケンスｓｑ２７］ＦＣスイッチ８のコントローラ８０は、パスｐ３からパスｐ２へのパス切替をおこなう。
［シーケンスｓｑ２８］ＦＣスイッチ８のコントローラ８０は、パスｐ３からパスｐ２へのパス切替完了をＭＰ＃１に通知する。
【００６３】
［シーケンスｓｑ２９］ＭＰ＃１は、パス切替完了をＳＶＰ＃１に通知する。
［シーケンスｓｑ３０］ＳＶＰ＃１は、パス切替完了をＳＶＰ＃２に通知する。たとえば、ＳＶＰ＃１は、ＳＶＰ＃２のステータスレジスタのパス切替に相当するビットに「０」をセットすることによってパス切替完了をＳＶＰ＃２に通知する。
【００６４】
［シーケンスｓｑ３１］ＳＶＰ＃２は、パス切替完了を検出する。たとえば、ＳＶＰ＃２は、ステータスレジスタからパス切替完了を検出する。
［シーケンスｓｑ３２］ＳＶＰ＃２は、パス切替完了をＭＰ＃２に通知する。
【００６５】
［シーケンスｓｑ３３］ＭＰ＃２は、パス切替完了の通知を受けてパス復帰を確認できる。
このように、ストレージ装置１０は、サーバ装置＃１への影響を限定して、ＣＭ＃２の再起動に伴い一旦切り離されたパスの再度の確立をおこなうことができる。また、ストレージシステム６は、システムエンジニアのオペレーションを要することなしに一旦切り離されたパスの再度の確立をおこなうことができる。
【００６６】
次に、障害ＣＭのリブート実行後に障害ＣＭが異常継続する場合の障害復旧過程について図８を用いて説明する。図８は、第２の実施形態のストレージシステムにおける障害復旧のタイミングチャートの一例を示す図（その３）である。
【００６７】
［シーケンスｓｑ４１］ＭＰ＃２は、リブートの実行により正常復帰せず、異常継続する。
［シーケンスｓｑ４２］ＳＶＰ＃２は、ＭＰ＃２の復帰失敗を検出する。
【００６８】
［シーケンスｓｑ４３］ＳＶＰ＃２は、ＭＰ＃２の復帰失敗をＳＶＰ＃１に通知する。たとえば、ＳＶＰ＃２は、ＳＶＰ＃２のステータスレジスタのＲｅａｄｙに相当するビットに「１」をセットしないことによって、ＭＰ＃２の復帰失敗をＳＶＰ＃１に通知する。
【００６９】
［シーケンスｓｑ４４］ＳＶＰ＃１は、ＭＰ＃２の復帰失敗、すなわちＣＭ＃２の復帰失敗をＭＰ＃１に通知する。
［シーケンスｓｑ４５］ＭＰ＃１は、ＣＭ＃２の復帰失敗を検出する。
【００７０】
［シーケンスｓｑ４６］ＭＰ＃１は、パスｐ２からパスｐ３へのパス切替（図５参照）後のストレージ装置１０のパフォーマンス（たとえば、サーバ装置＃１のリクエストに対する応答時間やＩＯＰＳ（Input Output Per Second）など）を監視する。
【００７１】
［シーケンスｓｑ４７］ＭＰ＃１は、ストレージ装置１０のパフォーマンスが閾値に満たないとき、ＣＭ＃２をストレージシステム６から切り離すためのパス切替をＦＣスイッチ８のコントローラ８０に指示する。
【００７２】
［シーケンスｓｑ４８］ＦＣスイッチ８のコントローラ８０は、サーバ装置＃１とＣＭ＃２とのパス接続を切り離すパス切替をおこなう。
［シーケンスｓｑ４９］ＭＰ＃１は、サーバ装置＃１にＣＭ＃２の異常（ストレージ装置１０の縮退）を通知する。
【００７３】
［シーケンスｓｑ５０］サーバ装置＃１は、ＣＭ＃２の異常を検出する。これにより、サーバ装置＃１は、ＦＣスイッチ８によらずマルチパスドライバ７１によりパス切替をおこなうことができる。
【００７４】
次に、第２の実施形態の異常監視処理について図９を用いて説明する。図９は、第２の実施形態の異常監視処理のフローチャートを示す図である。
異常監視処理は、障害ＣＭのＳＶＰが実行する処理である。たとえば、障害ＣＭがＣＭ＃２のときＳＶＰ＃２が異常監視処理を実行する。異常監視処理は、図６に示した障害復旧過程のシーケンスｓｑ２、シーケンスｓｑ３、シーケンスｓｑ１１、およびシーケンスｓｑ１２に相当する処理である。以下、障害ＣＭをＣＭ＃２、障害ＣＭとともに冗長構成をなすＣＭをＣＭ＃１として異常監視処理を説明する。
【００７５】
［ステップＳ１１］ＳＶＰ＃２は、ＭＰ＃２を監視し、ＭＰ＃２の異常を検出したか否かを判定する。ＳＶＰ＃２は、ＭＰ＃２の異常を検出した場合にステップＳ１２にすすみ、ＭＰ＃２の異常を検出しない場合にＭＰ＃２の監視を継続する。
【００７６】
［ステップＳ１２］ＳＶＰ＃２は、ステータスレジスタの割込信号に相当するビットに「１」をセットする。ＳＶＰ＃２は、ステータスレジスタの割込信号のビットセットによりＮＭＩ（Non Mask-able Interruption）信号をＳＶＰ＃１に出力する。ＳＶＰ＃２は、ＮＭＩによりＭＰ＃２の異常をＳＶＰ＃１に通知できる。
【００７７】
［ステップＳ１３］ＳＶＰ＃２は、ステータスレジスタのリブート待ち信号に相当するビットに「１」をセットする。ＳＶＰ＃２は、ＮＭＩにより割り込みが発生したＳＶＰ＃１に対してステータスレジスタの値を読み出させることにより、ＭＰ＃２の制御状態をＳＶＰ＃１に通知できる。
【００７８】
［ステップＳ１４］ＳＶＰ＃２は、リブート許可を待ち受ける。ＳＶＰ＃２は、ステータスレジスタのＡｃｋリブートに相当するビットに「１」がセットされることによりパス切替完了を検出して、リブート許可ありと判定する。ＳＶＰ＃２は、リブート許可がある場合にステップＳ１５にすすみ、リブート許可がない場合にリブート許可を待ち受ける。
【００７９】
［ステップＳ１５］ＳＶＰ＃２は、ＭＰ＃２にリブートを指示してステップＳ１１にすすむ。
このように、ストレージ装置１０において障害ＣＭのＳＶＰは、異常監視処理を実行することで、自系ＣＭの異常を検出する異常検出手段障害検出手段、自系ＣＭの異常を他系ＣＭに通知する異常通知手段として機能する。また、ストレージ装置１０において障害ＣＭのＳＶＰは、他系ＣＭからリブート許可を受けて自系ＣＭのリブート制御をおこなうリブート制御手段として機能する。
【００８０】
次に、第２の実施形態の割込処理について図１０を用いて説明する。図１０は、第２の実施形態の割込処理のフローチャートを示す図である。
割込処理は、ＮＭＩが入力されたＣＭのＳＶＰが実行する処理である。たとえば、障害ＣＭがＣＭ＃２のとき、ＳＶＰ＃２が出力したＮＭＩを入力したＳＶＰ＃１が割込処理を実行する。割込処理は、図６に示した障害復旧過程のシーケンスｓｑ４およびシーケンスｓｑ１０に相当する処理である。以下、障害ＣＭをＣＭ＃２、障害ＣＭ（他系ＣＭ）とともに冗長構成をなす自系ＣＭをＣＭ＃１として割込処理を説明する。
【００８１】
［ステップＳ２１］ＳＶＰ＃１は、ＳＶＰ＃２（他系ＣＭのＳＶＰ）から制御情報を取得する。ＳＶＰ＃１は、ＳＶＰ＃２のステータスレジスタの値を読み出すことで制御情報を取得できる。
【００８２】
［ステップＳ２２］ＳＶＰ＃１は、制御情報から他系ＣＭがリブート待ちか否かを判定する。ＳＶＰ＃１は、ＳＶＰ＃２のステータスレジスタのリブート待ちに相当するビットに「１」がセットされている場合に他系ＣＭがリブート待ちであると判定できる。ＳＶＰ＃１は、他系ＣＭがリブート待ちである場合にステップＳ２３にすすみ、他系ＣＭがリブート待ちでない場合に割込処理を終了する。
【００８３】
［ステップＳ２３］ＳＶＰ＃１は、ＭＰ＃１（自系ＭＰ）に他系ＣＭの異常を通知する。これにより、ＭＰ＃１は、他系ＣＭの異常を検出し、ＦＣスイッチ８にパス切替を指示することができる。
【００８４】
［ステップＳ２４］ＳＶＰ＃１は、ＭＰ＃１からのパス切替の確認通知を待ち受ける。ＳＶＰ＃１は、確認通知がある場合にステップＳ２５にすすみ、確認通知がない場合に確認通知を待ち受ける。
【００８５】
［ステップＳ２５］ＳＶＰ＃１は、ＳＶＰ＃２にパス切替完了を通知して割込処理を終了する。ＳＶＰ＃１は、ＳＶＰ＃２のステータスレジスタのＡｃｋリブートに相当するビットに「１」をセットすることによってパス切替完了をＳＶＰ＃２に通知することができる。
【００８６】
このように、ストレージ装置１０において障害ＣＭからＮＭＩを入力されたＳＶＰは、割込処理を実行することで、他系ＣＭの異常を検出する他系異常検出手段、他系ＣＭの異常を自系ＭＰに通知する他系異常通知手段として機能する。また、ストレージ装置１０において障害ＣＭからＮＭＩを入力されたＳＶＰは、割込処理を実行することで、ＦＣスイッチ８のパス切替完了を他系ＣＭに通知する異常時パス切替完了通知手段として機能する。
【００８７】
次に、第２の実施形態のパス切替処理について図１１を用いて説明する。図１１は、第２の実施形態のパス切替処理のフローチャートを示す図である。
パス切替処理は、ＦＣスイッチ制御部（ＦＣスイッチ８のコントローラ８０）が実行する処理である。
【００８８】
［ステップＳ３１］ＦＣスイッチ制御部は、ゾーンＩＤの更新があるか否かを判定する。ゾーンＩＤは、ゾーニング設定テーブルのパラメータの１つである。ゾーニング設定テーブルは、ＣＭ＃１、ＣＭ＃２、またはメンテナンスターミナルから通知されるゾーニング情報から作成され、メモリ８１に格納される情報である。ゾーンＩＤを含むゾーニング設定テーブルについては、図１２を用いて後で説明する。
【００８９】
ＦＣスイッチ制御部は、ゾーンＩＤの更新がある場合にステップＳ３２にすすみ、ゾーンＩＤの更新がない場合にゾーンＩＤの更新を待ち受ける。
［ステップＳ３２］ＦＣスイッチ制御部は、ゾーンＩＤの更新がフェールオーバーポートの切替を指示するものか否かを判定する。なお、ゾーンＩＤの更新は、フェールオーバーポート（フェールオーバーパス）の切替とデフォルトポート（デフォルトパス）の切替とがある。ＦＣスイッチ制御部は、ゾーンＩＤの更新がフェールオーバーポートの切替を指示する場合にステップＳ３３にすすむ。一方、ＦＣスイッチ制御部は、ゾーンＩＤの更新がフェールオーバーポートの切替を指示しない場合に、すなわちゾーンＩＤの更新がデフォルトポートの切替を指示する場合にステップＳ３５にすすむ。
【００９０】
［ステップＳ３３］ＦＣスイッチ制御部は、ゾーンＩＤ更新の対象となるＣＭに対する冗長系ＣＭとサーバ装置＃１とを接続するフェールオーバーポートを選択する。ＦＣスイッチ制御部は、フェールオーバーポートの選択肢があらかじめ１以上用意されていることから優先順位にしたがい選択肢のうちの１つを選択する。
【００９１】
［ステップＳ３４］ＦＣスイッチ制御部は、選択したフェールオーバーポートへの切替をおこない、ステップＳ３１にすすむ。
［ステップＳ３５］ＦＣスイッチ制御部は、デフォルトポートへの切替をおこない、ステップＳ３１にすすむ。なお、デフォルトポートは、フェールオーバーポートと異なり、ただ１つが設定されていることから、ＦＣスイッチ制御部は、デフォルトポートについて選択することを要しない。
【００９２】
このように、ＦＣスイッチ制御部は、パス切替処理を実行することで、デフォルトパスからフェールオーバーパスに切り替えるパス切替手段、フェールオーバーパスからデフォルトパスに切り替える（切り戻す）パス切り戻し手段として機能する。また、ＦＣスイッチ制御部は、パス切替処理を実行することで、ゾーニング設定テーブルにもとづいてパス切替制御をおこなうパス切替制御手段として機能する。
【００９３】
次に、ゾーニング設定テーブルについて図１２を用いて説明する。図１２は、第２の実施形態のゾーニング設定テーブルの一例を示す図である。
ゾーニング設定テーブル３００は、ＣＭ１１がメモリ１１２に、ＣＭ１２がメモリ１２２に、ＦＣスイッチ８がメモリ８１に格納する情報である。ゾーニング設定テーブル３００は、パス接続情報の一形態である。ゾーニング設定テーブル３００は、ゾーニング情報としてＣＭ１１，１２およびＦＣスイッチ８間で更新される。
【００９４】
ゾーニング設定テーブル３００は、パラメータとして、ゾーンＩＤと、ホストポートと、ＳＷポート（ホストサイド）と、ＳＷポート（ＣＭサイド）と、フェールオーバーポートとを含む。フェールオーバーポートは、１以上のフェールオーバーポート選択肢を含む。
【００９５】
ゾーンＩＤは、行方向のパラメータを関連付けた設定内容の識別情報である。ゾーンＩＤは、通常一の位を「０」とするユニークな番号が付される。ゾーンＩＤは、一の位が「０」のときにパスがデフォルトパスであることを示し、一の位が「１」のときにパスがフェールオーバーパスであることを示す。
【００９６】
ＣＭ１１，１２は、ゾーンＩＤの一の位を更新することにより、ＦＣスイッチ８におけるパス切替を制御することができる。すなわち、ＦＣスイッチ８は、ＣＭ１１，１２によりゾーンＩＤの一の位が「０」から「１」に更新されたとき、ゾーンＩＤに対応するパスをデフォルトパスからフェールオーバーパスに切り替える。また、ＦＣスイッチ８は、ＣＭ１１，１２によりゾーンＩＤの一の位が「１」から「０」に更新されたとき、ゾーンＩＤに対応するパスをフェールオーバーパスからデフォルトパスに切り替える。
【００９７】
ホストポートは、ＦＣスイッチ８と接続するサーバ装置（ホスト）７のポートネームを示す。ＳＷポート（ホストサイド）は、ＦＣスイッチ８におけるサーバ装置７側のポートネームを示す。ＳＷポート（ＣＭサイド）は、ＦＣスイッチ８におけるストレージ装置１０側のポートネームと、ＦＣスイッチ８と接続するストレージ装置１０のポートネームとの対を示す。なお、ホストポートとＳＷポート（ホストサイド）とＳＷポート（ＣＭサイド）の組は、デフォルトパスを示す。
【００９８】
フェールオーバーポートは、１以上の選択肢を含む。各選択肢は、優先順位を示すシーケンシャル番号が付され、有効な選択肢にはＦＣスイッチ８におけるストレージ装置１０側のポートネームと、ＦＣスイッチ８と接続するストレージ装置１０のポートネームとの対が設定される。なお、図示するゾーニング設定テーブル３００は、無効な選択肢を「−」によって示す。
【００９９】
たとえば、図示するゾーニング設定テーブル３００は、ゾーンＩＤ「１０」は、ゾーンＩＤの一の位が「０」であることから、ＦＣスイッチ８がホストポート「ＨＢＡ−１」、ＳＷポート（ホストサイド）「Ｐｏｒｔ−１」を通るパスを、デフォルトパスとすることを示す。すなわち、ＦＣスイッチ８は、ホストポート「ＨＢＡ−１」、ＳＷポート（ホストサイド）「Ｐｏｒｔ−１」、ＳＷポート（ＣＭサイド）「Ｐｏｒｔ−５、ＣＨ−１１」を接続する。
【０１００】
また、ゾーンＩＤ「１０」が「１１」に更新された場合、ＦＣスイッチ８は、優先順位「１」のフェールオーバーポートを選択して、デフォルトパスからフェールオーバーパスに切り替える。たとえば、ＦＣスイッチ８は、ホストポート「ＨＢＡ−１」、ＳＷポート（ホストサイド）「Ｐｏｒｔ−１」、ＳＷポート（ＣＭサイド）「Ｐｏｒｔ−７、ＣＨ−２１」を接続する。なお、ＦＣスイッチ８は、優先順位「２」のフェールオーバーポートを選択する場合、ホストポート「ＨＢＡ−１」、ＳＷポート（ホストサイド）「Ｐｏｒｔ−１」、ＳＷポート（ＣＭサイド）「Ｐｏｒｔ−８、ＣＨ−２２」を接続する。なお、ＦＣスイッチ８は、障害検出やロードバランス制御にもとづいて下位の優先順位のフェールオーバーポートを選択することができる。
【０１０１】
なお、ゾーニング設定テーブル３００は、メンテナンスターミナルより初期情報が設定されてもよいし、ストレージ装置１０またはＦＣスイッチ８が各機器の設定情報を取得して、接続関係を解析して生成されるものであってもよい。たとえば、メンテナンスターミナルは、ＣＭ１１のｈｔｔｐサーバにログインしてＧＵＩ（Graphic User Interface）やＣＬＩ（Command Line Interface）を用いてゾーニング設定テーブル３００を作成できる。ゾーニング設定テーブル３００は、ＦＣスイッチ８に転送されるとともに、ＭＰ１１１とＳＶＰ１１４を介してメモリ１１３に格納される。
【０１０２】
次に、ストレージシステム６におけるＣＭ１１，１２のファームウェアアップデート時のリブートと、リブートに伴うパス切替について説明する。ストレージシステム６は、障害発生時のリブートのほかにファームウェアアップデートにおけるリブートを実行可能である。
【０１０３】
ストレージシステム６におけるファームウェアアップデート過程について図１３を用いて説明する。図１３は、第２の実施形態のストレージシステムにおけるファームウェアアップデートのタイミングチャートの一例を示す図である。
【０１０４】
［シーケンスｓｑ５１］ＭＰ＃２は、ファームウェアアップデートの実行契機にリブート要求をＳＶＰ＃２に通知する。ＭＰ＃２は、諸条件（アップデート対象のファームウェアの準備が整ったこと、ＣＭ＃２にかかる負荷が小さな時間帯、他系ＣＭ（ＣＭ＃１）の正常稼働など）にもとづいてファームウェアアップデートの実行契機を決定できる。
【０１０５】
［シーケンスｓｑ５２］ＳＶＰ＃２は、ＭＰ＃２からの通知を受けてＭＰ＃２のリブート要求を検出する。
［シーケンスｓｑ５３］ＳＶＰ＃２は、検出したリブート要求にもとづいてステータスレジスタ（制御情報）を更新し、ＳＶＰ＃１にリブート要求を通知する。たとえば、ＳＶＰ＃２は、割込信号およびリブート要求信号に相当するビットに「１」をセットする。ステータスレジスタの割込信号に相当するビットに「１」をセットすることによって、ＳＶＰ＃２は、ハード的に割込信号をＳＶＰ＃１に出力する。
【０１０６】
［シーケンスｓｑ５４］ＳＶＰ＃１は、ＳＶＰ＃２から割込信号の入力を契機にしてローカルバス経由でＳＶＰ＃２の制御情報を取得し、制御情報から検出したＣＭ＃２のリブート要求をＭＰ＃１に通知する。
【０１０７】
［シーケンスｓｑ５５］ＭＰ＃１は、ＣＭ＃２のリブート要求を検出する。
［シーケンスｓｑ５６］ＭＰ＃１は、ＦＣスイッチ８のコントローラ８０にパス切替を指示する。たとえば、ＭＰ＃１は、コントローラ８０にパスｐ２からパスｐ３へのパス切替（図５参照）を指示する。
【０１０８】
［シーケンスｓｑ５７］ＦＣスイッチ８のコントローラ８０は、パスｐ２からパスｐ３へのパス切替をおこなう。
［シーケンスｓｑ５８］ＦＣスイッチ８のコントローラ８０は、パスｐ２からパスｐ３へのパス切替完了をＭＰ＃１に通知する。
【０１０９】
［シーケンスｓｑ５９］ＭＰ＃１は、パス切替完了をＳＶＰ＃１に通知する。
［シーケンスｓｑ６０］ＳＶＰ＃１は、パス切替完了をＳＶＰ＃２に通知する。たとえば、ＳＶＰ＃１は、ＳＶＰ＃２のステータスレジスタのパス切替に相当するビットに「１」をセットすることによって、あるいはＡｃｋリブートに相当するビットに「１」をセットすることによって、パス切替完了をＳＶＰ＃２に通知する。
【０１１０】
［シーケンスｓｑ６１］ＳＶＰ＃２は、パス切替完了を検出する。たとえば、ＳＶＰ＃２は、ステータスレジスタのＡｃｋリブートに相当するビットに「１」がセットされることによりパス切替完了を検出する。
【０１１１】
［シーケンスｓｑ６２］ＳＶＰ＃２は、ＭＰ＃２にリブートを許可する。
［シーケンスｓｑ６３］ＭＰ＃２は、ファームウェアをアップデートする。
［シーケンスｓｑ６４］ＭＰ＃２は、リブートを実行する。
【０１１２】
なお、ＣＭ＃２のリブート実行後のパス切替は、図７に示した障害復旧のタイミングチャートと同様におこなうことができる。
このようにストレージ装置１０は、ＣＭ＃２とサーバ装置＃１とのパスを、ＣＭ＃１とサーバ装置＃１とのパスに切り替えてから、ＣＭ＃２のリブートを実行する。これにより、ストレージ装置１０は、パス切れによるサーバ装置＃１への影響を限定してＣＭ＃２のリブートを実行できる。
【０１１３】
［第３の実施形態］
次に、第３の実施形態のストレージシステムについて図１４を用いて説明する。第３の実施形態のストレージシステムは、ストレージ装置がＦＣスイッチ機能を有する点で第２の実施形態のストレージ装置１０と相違する。図１４は、第３の実施形態のストレージシステムにおけるパス構成と障害復旧の一例を示す図である。
【０１１４】
ストレージシステム６ａは、サーバ装置７とストレージ装置１０ａを含む。サーバ装置７は、ストレージ装置１０ａとＦＣｏＥで接続する。ストレージ装置１０ａは、ＦＣスイッチ８ａとＣＭ１１ａ，１２ａを含み、ＦＣスイッチ８ａを介してサーバ装置７とＣＭ１１ａ，１２ａとを接続する。ＦＣスイッチ８ａは、サーバ装置７とＣＭ１１ａ，１２ａとを接続するパスを切替可能である。
【０１１５】
以下、パス構成の説明については、接続関係を明確にするため、サーバ装置７をサーバ装置＃１と表わし、サーバ装置＃１のインタフェースをＨＢＡ−１とＨＢＡ−２で表わす。また、ストレージ装置１０ａが備える２つのＣＭ１１ａ，１２ａをそれぞれＣＭ＃１、ＣＭ＃２と表わす。また、ＣＭ＃１の２つのＣＡをそれぞれＣＨ−１１、ＣＨ−１２と表わし、ＣＭ＃２の２つのＣＡをそれぞれＣＨ−２１、ＣＨ−２２と表わす。また、ＦＣスイッチ８ａのサーバ装置７側ＣＡをそれぞれＣＨ−００からＣＨ−０３と表わす。
【０１１６】
サーバ装置＃１とストレージ装置１０ａ（ＦＣスイッチ８ａ）は、ＣＭ＃１、ＣＭ＃２が正常に稼働しているとき、ＨＢＡ−１とＣＨ−００とを接続し、ＨＢＡ−２とＣＨ−０２とを接続する。ＦＣスイッチ８ａは、ＣＨ−００とＣＨ−１１とを接続し、ＣＨ−０２とＣＨ−２１とを接続する。したがって、サーバ装置＃１とＣＭ＃１とは、ＨＢＡ−１とＣＨ−００とＣＨ−１１を経由するパスｐ１ａで接続される。また、サーバ装置＃１とＣＭ＃２とは、ＨＢＡ−２とＣＨ−０２とＣＨ−２１を経由するパスｐ２ａで接続される。
【０１１７】
ここで、ＣＭ＃２に障害が生じた場合、サーバ装置＃１とＣＭ＃１とは、ＨＢＡ−２とＣＨ−０２とＣＨ−１２を経由するパスｐ３ａで接続され、ＣＭ＃２はサーバ装置＃１から切り離される。
【０１１８】
このように、ストレージ装置１０ａは、ＦＣスイッチ８ａによってサーバ装置７とＣＭ１１ａ，１２ａとのパスを切替可能にするものであってもよい。この場合、ＦＣスイッチ８ａは、ストレージ装置１０ａにおけるパス切替手段として機能する。ＦＣスイッチ８ａが第２の実施形態で示したＦＣスイッチ８と同様の機能を有することで、ストレージシステム６ａもまた第２の実施形態で示したストレージシステム６と同様の機能を有する。
【０１１９】
［第４の実施形態］
次に、第４の実施形態のストレージシステムについて図１５を用いて説明する。第４の実施形態のストレージシステムは、複数のサーバ装置がＦＣスイッチと接続する点で第２の実施形態と相違する。図１５は、第４の実施形態のストレージシステムにおけるパス構成と障害復旧の一例を示す図である。
【０１２０】
ストレージシステム６ｂは、サーバ装置７ａ，７ｂとＦＣスイッチ８とストレージ装置１０を含む。サーバ装置７ａ，７ｂは、ＦＣスイッチ８を介してストレージ装置１０とＦＣｏＥで接続し、ストレージ装置１０が備えるストレージデバイスにデータを書き込み、またストレージデバイスからデータを読み出すことができる。
【０１２１】
サーバ装置７ａ，７ｂは、ＨＡ（High Availability）クラスタリングソフト７２を実行することにより連携して可用性を高めたサーバシステムを構築している。サーバ装置７ａ，７ｂは、それぞれマルチパスドライバ７１ａ，７１ｂを含む。
【０１２２】
以下、パス構成の説明については、接続関係を明確にするため、サーバ装置７ａをサーバ装置＃１と表わし、サーバ装置＃１のインタフェースをＨＢＡ−１とＨＢＡ−２で表わす。また、サーバ装置７ｂをサーバ装置＃２と表わし、サーバ装置＃２のインタフェースをＨＢＡ−３とＨＢＡ−４で表わす。また、ＦＣスイッチ８のポート８２〜８９をそれぞれＰｏｒｔ−１からＰｏｒｔ−８で表わす。また、ストレージ装置１０が備える２つのＣＭ１１，１２をそれぞれＣＭ＃１、ＣＭ＃２と表わす。また、ＣＭ＃１のＣＡ１１７，１１８をそれぞれＣＨ−１１、ＣＨ−１２と表わし、ＣＭ＃２のＣＡ１２７，１２８をそれぞれＣＨ−２１、ＣＨ−２２と表わす。
【０１２３】
サーバ装置＃１とＦＣスイッチ８は、ＨＢＡ−１とＰｏｒｔ−１とを接続し、ＨＢＡ−２とＰｏｒｔ−２とを接続する。サーバ装置＃２とＦＣスイッチ８は、ＨＢＡ−３とＰｏｒｔ−３とを接続し、ＨＢＡ−４とＰｏｒｔ−４とを接続する。ＣＭ＃１とＦＣスイッチ８は、ＣＨ−１１とＰｏｒｔ−５とを接続し、ＣＨ−１２とＰｏｒｔ−６とを接続する。ＣＭ＃２とＦＣスイッチ８は、ＣＨ−２１とＰｏｒｔ−７とを接続し、ＣＨ−２２とＰｏｒｔ−８とを接続する。
【０１２４】
ＣＭ＃１、ＣＭ＃２が正常に稼働しているとき、ＦＣスイッチ８は、Ｐｏｒｔ−１とＰｏｒｔ−５とを接続し、Ｐｏｒｔ−２とＰｏｒｔ−７とを接続し、Ｐｏｒｔ−３とＰｏｒｔ−６とを接続し、Ｐｏｒｔ−４とＰｏｒｔ−８とを接続する。
【０１２５】
したがって、サーバ装置＃１とＣＭ＃１とは、ＨＢＡ−１とＰｏｒｔ−１とＰｏｒｔ−５とＣＨ−１１を経由するパスｐ１１で接続される。また、サーバ装置＃１とＣＭ＃２とは、ＨＢＡ−２とＰｏｒｔ−２とＰｏｒｔ−７とＣＨ−２１を経由するパスｐ２１で接続される。また、サーバ装置＃２とＣＭ＃１とは、ＨＢＡ−３とＰｏｒｔ−３とＰｏｒｔ−６とＣＨ−１２を経由するパスｐ１２で接続される。また、サーバ装置＃２とＣＭ＃２とは、ＨＢＡ−４とＰｏｒｔ−４とＰｏｒｔ−８とＣＨ−２２を経由するパスｐ２２で接続される。
【０１２６】
ここで、ＣＭ＃２に障害が生じた場合、サーバ装置＃１とＣＭ＃１とは、パスｐ１１の接続に加えて、ＨＢＡ−２とＰｏｒｔ−２とＰｏｒｔ−５とＣＨ−１１を経由するパスｐ３１で接続される。また、ＣＭ＃２に障害が生じた場合、サーバ装置＃２とＣＭ＃１とは、パスｐ１２の接続に加えて、ＨＢＡ−４とＰｏｒｔ−４とＰｏｒｔ−６とＣＨ−１２を経由するパスｐ３２で接続される。これにより、ＣＭ＃２はサーバ装置＃１およびサーバ装置＃２から切り離される。
【０１２７】
このようなストレージシステム６ｂは、たとえば稼働系のサーバ装置＃１に障害が発生し、待機系のサーバ装置＃２にフェールオーバーと、ＣＭ＃１またはＣＭ＃２の故障が同時に発生しても復旧対応を容易にすることができる。
【０１２８】
すなわち、ストレージ装置１０におけるアクセスパスのフェールオーバー制御により、サーバ装置＃１およびサーバ装置＃２におけるフェールオーバー制御をサーバ装置＃１およびサーバ装置＃２側に局所化して簡素化できる。このような簡素化されたストレージシステム６ｂは、高い信頼性を提供することができる。
【０１２９】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置４，４ｄ、ストレージ装置２，１０，１０ａ、ＣＭ１１，１２，１１ａ，１２ａ、ＦＣスイッチ８，８ａが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３０】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３１】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３２】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１３３】
１，６，６ａ，６ｂ  ストレージシステム
２，１０，１０ａ  ストレージ装置
２ｓ  切替部
４，４ｄ  ストレージ制御装置
４ａ  記憶部
４ｂ  パス接続情報
４ｃ  制御部
５  サーバ装置
５ａ  第１ポート
５ｂ  第２ポート
７，７ａ，７ｂ  サーバ装置
８，８ａ  ＦＣスイッチ
１１，１１ａ，１２，１２ａ  ＣＭ
１３  信号線
２０，２１，２２  ＤＥ
７１，７１ａ，７１ｂ  マルチパスドライバ
７２  ＨＡクラスタリングソフト
８０  コントローラ
８１，１１２，１１３，１２２，１２３  メモリ
８２〜８９  ポート
１１１，１２１  ＭＰ
１１４，１２４  ＳＶＰ
１１５，１１６，１２５，１２６  ＤＡ
１１７，１１８，１２７，１２８  ＣＡ
２００，２０１，２０２，２０３  ＨＤＤ
【図１】
2017010390.tif 000003
【図２】
2017010390.tif 000004
【図３】
2017010390.tif 000005
【図４】
2017010390.tif 000006
【図５】
2017010390.tif 000007
【図６】
2017010390.tif 000008
【図７】
2017010390.tif 000009
【図８】
2017010390.tif 000010
【図９】
2017010390.tif 000011
【図１０】
2017010390.tif 000012
【図１１】
2017010390.tif 000013
【図１２】
2017010390.tif 000014
【図１３】
2017010390.tif 000015
【図１４】
2017010390.tif 000016
【図１５】
2017010390.tif 000017