(57)【要約】【課題】制御装置における意図しない電源オン動作の発生を抑制できるようにする。【解決手段】複数の制御装置１１のうち第２の制御装置１１Ａからの電源オン指示の受信を監視する監視部１４と、監視部１４が第２の制御装置１１Ａからの電源オン指示を検知すると、第２の制御装置１１Ａに対する電源オン指示の発行を阻止する阻止部１４とを備える。【選択図】図２
2015099486.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御装置を冗長化して備える情報処理装置であって、
前記複数の制御装置のうち第１の制御装置が、
前記複数の制御装置のうち第２の制御装置からの電源オン指示の受信を監視する監視部と、
前記監視部が前記第２の制御装置からの電源オン指示を検知すると、前記第２の制御装置に対する電源オン指示の発行を阻止する阻止部とを備えることを特徴とする、情報処理装置。
【請求項２】
前記第１の制御装置が、
当該第１の制御装置への電源オン指示が入力されてから、当該第１の制御装置に電力を供給する電源部に対する電源投入指示を遅延させる遅延部を備えることを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記遅延部による前記電源投入指示の遅延時間が、前記第１の制御装置から前記第２の制御装置に対して定期的に送信される電源オン指示の送信間隔以上であることを特徴とする、請求項２記載の情報処理装置。
【請求項４】
他の制御装置と冗長化して備えられる制御装置であって、
前記他の制御装置からの電源オン指示の受信を監視する監視部と、
前記監視部が前記他の制御装置からの電源オン指示を検知すると、前記第２の制御装置に対する電源オン指示の発行を阻止する阻止部とを備えることを特徴とする、制御装置。
【請求項５】
当該制御装置への電源オン指示が入力されてから、当該制御装置に電力を供給する電源部に対する電源投入指示を遅延させる遅延部を備えることを特徴とする、請求項４記載の制御装置。
【請求項６】
前記遅延部による前記電源投入指示の遅延時間が、当該制御装置から前記他の制御装置に対して定期的に送信される電源オン指示の送信間隔以上であることを特徴とする、請求項５記載の制御装置。
【請求項７】
複数の制御装置を備えるストレージ装置における制御方法であって、
前記複数の制御装置のうち第１の制御装置が、
前記複数の制御装置のうち第２の制御装置からの電源オン指示の受信を監視する処理と、
前記第２の制御装置からの電源オン指示を検知すると、前記第２の制御装置に対する電源オン指示の発行を阻止する処理とを行なうことを特徴とする、制御方法。
【請求項８】
前記第１の制御装置が、
当該第１の制御装置への電源オン指示が入力されてから、当該第１の制御装置に電力を供給する電源部に対する電源投入指示を遅延させる処理を行なうことを特徴とする、請求項７記載の制御方法。
【請求項９】
前記電源投入指示の遅延時間が、前記第１の制御装置から前記第２の制御装置に対して定期的に送信される電源オン指示の送信間隔以上であることを特徴とする、請求項８記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，制御装置及び制御方法に関する。
【背景技術】
【０００２】
図６は一般的なＲＡＩＤ装置におけるサーバとの接続例を示す図である。
この図６に示すＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置１０００は、冗長化された２つのＣＭ（Controller Module）１０１０ａ，１０１０ｂを備えている。又、これらの２つのＣＭ１０１０ａ，１０１０ｂの内、ＣＭ１０１０ａにサーバ２０００が接続されている。
【０００３】
このようなＲＡＩＤ装置をＣＭ１０１０ａ，１０１０ｂの冗長性を活かして運用するためには、例えば、図示しないスイッチやサーバ２０００から電源オン指示を受信した場合に、２つのＣＭ１０１０ａ，１０１０ｂの両方が電源オン状態へ遷移することが望ましい。
しかしながら、サーバ２０００が接続されていないＣＭ１０１０ｂにおいては、サーバ２０００からの電源オン指示を受信することができない。このため、２つのＣＭ１０１０ａ，１０１０ｂ間で電源状態を一致させる制御（電源合わせこみ）が必要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１０６９８０号公報
【特許文献２】特開２００７−１２２４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような従来のＣＭ間の電源合わせこみ方法を備えるストレージ装置においては、オペレータの操作によりストレージ装置の起動、停止、再起動が行なわれるため、予期しない操作によって、ＣＭ間の電源オン／オフの信号の伝達が正常に行なわれず、オペレータの意図しない電源オン動作が発生するという課題がある。
１つの側面では、本発明は、制御装置における意図しない電源オン動作の発生を抑制できるようにすることを目的とする。
【０００６】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００７】
このため、この情報処理装置は、複数の制御装置を冗長化して備える情報処理装置であって、前記複数の制御装置のうち第１の制御装置が、前記複数の制御装置のうち第２の制御装置からの電源オン指示の受信を監視する監視部と、前記監視部が前記第２の制御装置からの電源オン指示を検知すると、前記第２の制御装置に対する電源オン指示の発行を阻止する阻止部とを備える。
【０００８】
また、この制御装置は、他の制御装置と冗長化して備えられる制御装置であって、前記他の制御装置からの電源オン指示の受信を監視する監視部と、前記監視部が前記他の制御装置からの電源オン指示を検知すると、前記第２の制御装置に対する電源オン指示の発行を阻止する阻止部とを備える。
さらに、この制御方法は、複数の制御装置を備えるストレージ装置における制御方法であって、前記複数の制御装置のうち第１の制御装置が、前記複数の制御装置のうち第２の制御装置からの電源オン指示の受信を監視する処理と、前記第２の制御装置からの電源オン指示を検知すると、前記第２の制御装置に対する電源オン指示の発行を阻止する処理とを備える。
【発明の効果】
【０００９】
一実施形態によれば、制御装置における意図しない電源オン動作の発生を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としてのストレージ装置のハードウェア構成および機能構成を示すブロック図である。
【図２】実施形態の一例としてのストレージ装置の電源合わせこみ機能を実現するための機能構成を示す図である。
【図３】実施形態の一例としてのストレージ装置における再起動の処理を説明するフローチャートである。
【図４】実施形態の一例としてのストレージ装置における再起動の処理を説明するフローチャートである。
【図５】実施形態の一例としてのストレージ装置におけるタイマの効果を説明するためのフローチャートである。
【図６】一般的なＲＡＩＤ装置におけるサーバとの接続例を示す図である。
【図７】実施形態の一例としてのストレージ装置とは異なるストレージ装置における電源制御機能を模式的に示す図である。
【図８】実施形態の一例としてのストレージ装置とは異なるストレージ装置におけるＣＭ間の電源合わせこみ方法を説明するフローチャートである。
【図９】実施形態の一例としてのストレージ装置とは異なるストレージ装置の再起動の処理を示すフローチャートである。
【図１０】実施形態の一例としてのストレージ装置とは異なるストレージ装置の電源オフの処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本情報処理装置，制御装置及び制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
図１は、実施形態の一例としてのストレージ装置１のハードウェア構成および機能構成を示すブロック図、図２はその電源合わせこみ機能を実現するための機能構成を示す図である。
図１に示すストレージ装置１は、ストレージユニット２０に格納された一以上の記憶装置（物理ディスク；図示略）を仮想化して、仮想ストレージ環境を形成する。そして、ストレージ装置１は、仮想ボリュームを、上位装置である図示しないホスト装置に提供する。
【００１３】
ストレージ装置１は、１以上のホスト装置２に対して通信可能に接続されている。図１に示す例では、ストレージ装置１に備えられた一対のＣＡ３０Ａ，３０Ｂの内、ＣＡ３０Ａにホスト装置２が接続されている。これにより、本ストレージ装置１に備えられた２つのＣＭ（Controller Module）１１Ａ，１１Ｂの内、ＣＭ１１Ａにだけホスト装置２が接続されている。
【００１４】
ホスト装置２は、例えば、サーバ機能を備えた情報処理装置であり、本ストレージ装置１との間において、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）のコマンドを送受信する。ホスト装置は、例えば、ストレージ装置１に対してリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書き込みや読み出しを行なう。
【００１５】
また、ホスト装置２は、本ストレージ装置１に対する電源オン／オフの制御を行なう。すなわち、ホスト装置２は、本ストレージ装置１に対して電源オン指示や電源オフ指示を発行する。
ストレージ装置１は、ホスト装置２からボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、このボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。
【００１６】
ストレージ装置１は、１つ以上（図１に示す例では２つ）のＣＭ１１Ａ，１１Ｂ及びストレージユニット２０を備える。
ストレージユニット２０は、１以上の図示しない記憶装置を備え、これらの記憶装置の記憶領域を、ＣＡ３０Ａ，３０Ｂを介して接続されるホスト装置に対して提供する。なお、複数の記憶装置を用いてＲＡＩＤを構成することができる。
【００１７】
ＣＭ１１Ａ，１１Ｂは種々の制御を行なう制御装置（ストレージ制御装置）であり、ホスト装置からのホストＩ／Ｏに従って、ストレージユニット２０へのアクセス制御等、各種制御を行なう。なお、以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１１Ａ，１１Ｂを用いるが、任意のＣＭを指すときには符号１１を用いる。
【００１８】
ＣＭ１１Ａ，１１Ｂは互いにほぼ同様の構成を有しており、冗長化されている。すなわち、ＣＭ１１Ａ，１１Ｂは二重化されている。
なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
また、本ストレージ装置１においては、ホスト装置２に接続されたＣＭ１１Ａが、このホスト装置２から電源オン指示や電源オフ指示、再起動指示等を受信すると、ＣＭ１１ＡとＣＭ１１Ｂとの間で電源状態を一致させる（電源合わせこみ）制御を行なう。又、以下、このホスト装置２に接続されたＣＭ１１Ａを、ホスト接続ＣＭ１１Ａといい、ホスト装置２に接続されていないＣＭ１１Ｂをホスト非接続ＣＭ１１Ｂという場合がある。
【００１９】
ＣＭ１１Ａは、図１に示すように、ＣＰＵ１２Ａ，ＦＰＧＡ１３Ａ，デバイス２１Ａ（Device#0），デバイス１９Ａ（Device#1），デバイス２２Ａ（Device#2）及びディスク用インタフェース２３を備える。又、ＣＭ１１Ｂは、図１に示すように、ＣＰＵ１２Ｂ，ＦＰＧＡ１３Ｂ，デバイス２１Ｂ（Device#0），デバイス１９Ｂ（Device#1），デバイス２２Ｂ（Device#2）及びディスク用インタフェース２３を備える。
【００２０】
また、各ＣＭ１１Ａ，１１Ｂは、図２に示すように、それぞれ電源部３１，制御部３２及び電源投入要因３５を備える。
制御部３２はＣＭ１１としての各種機能を実現するための制御を行なうものであり、例えば、ホスト装置２からのホストＩ／Ｏに従って、図示しないストレージユニットへのアクセス制御等、各種制御を行なう。
【００２１】
電源部３１は、ＣＭ１１内の各部に電力供給を行なう。制御部３２はこの電源部３１から電力を供給される。
なお、以下、ＣＰＵを示す符号としては、複数のＣＰＵのうち１つを特定する必要があるときには符号１２Ａ，１２Ｂを用いるが、任意のＣＰＵを指すときには符号１２を用いる。同様に、以下、ＦＰＧＡを示す符号としては、複数のＦＰＧＡのうち１つを特定する必要があるときには符号１３Ａ，１３Ｂを用いるが、任意のＦＰＧＡを指すときには符号１３を用いる。又、以下、デバイスを示す符号としては、複数のデバイスのうち１つを特定する必要があるときには符号２１Ａ，２２Ａ，１９Ａ，２１Ｂ，２２Ｂ，１９Ｂを用いるが、任意のデバイスを指すときには符号２１，２２，１９を用いる。
【００２２】
ＣＰＵ１２は、種々の制御や演算を行なう処理装置であり、図示しないメモリ等に格納されたプログラムを実行することにより、ＲＡＩＤ制御等の種々の機能を実現する。
ディスク用インタフェース２３は、例えばＳＡＳインタフェースであり、ストレージユニット２０における記憶装置等と通信可能に接続する。又、ディスク用インタフェース２３は、通信路５１に接続され、この通信路５１を介した通信を制御するインタフェース部としても機能する。通信路５１は、ＣＭ１１Ａのディスク用インタフェース部２３とＣＭ１１Ｂのディスク用ＳＡＳインタフェース部２３との間を通信可能に接続する。
【００２３】
デバイス１９は、例えばＳＳＤ（Solid State Drive）であり、ＣＰＵ１２の２次キャッシュとして使用される。各ＣＭ１１において、デバイス１９は、デバイス２１に接続されている。
デバイス２２は、ＣＭ１１において、ＣＡ３０とＣＰＵ１２とディスク用インタフェース２３との間をつなぐブリッジとして機能するスイッチデバイスであり、例えばＰＣＩｅスイッチである。
【００２４】
ＣＭ１１Ａにおいては、このデバイス２２を介して、ＣＰＵ１２とホスト装置２とストレージユニット２０とが通信可能に接続される。つまり、ＣＰＵ１２による制御の下、デバイス２２およびディスク用インタフェース部２３を介して、ホスト装置からのＩ／Ｏ要求に応じたデータの書き込みや読み出しがストレージユニット２０に対して行なわれる。
デバイス２１Ａ，２１Ｂは、通信路５０，４１に接続され、これらの通信路５０，４１による通信を制御するインタフェース部であり、例えば、ＰＣＩｅスイッチである。デバイス２１ＡはＣＭ１１Ａに備えられ、デバイス２１ＢはＣＭ１１Ｂに備えられる。これらのデバイス２１Ａ，２１Ｂは互いに同様の構成を備える。
【００２５】
通信路（ＰＣＩｅＳＷ間通信路）５０は、ＣＭ１１Ａのデバイス２１ＡとＣＭ１１Ｂのデバイス２１Ｂとの間を通信可能に接続する。
ＦＰＧＡ１３は、プログラミングすることができる集積回路（ＬＳＩ）であり、ＣＭ１１ＡとＣＭ１１Ｂとの間において電源状態の合わせこみを行なう機能を実現する。
ＦＰＧＡ１３は、図１に示すように、電源投入指示監視ブロック１４，電源制御ブロック１５及びＦＰＧＡ間通信制御ブロック１７を備える。
【００２６】
電源制御ブロック１５は電源部３１に対する制御を行なう。電源制御ブロック１５は、電源部３１の電源のオン／オフを制御する機能ブロックであり、電源部３１に対して電源投入指示や電源断指示を行なう。
電源制御ブロック１５は、図２に示すように、自ＣＭの電源状態レジスタ１５１，他ＣＭの電源状態レジスタ１５２及びタイマ１５３を有する。
【００２７】
自ＣＭの電源状態レジスタ１５１は、当該ＦＰＧＡ１３が備えられたＣＭ（自ＣＭ）１１の電源の状態を示す値が格納される。例えば、自ＣＭ１１の電源がオン状態においては“１”が、又、自ＣＭ１１の電源がオフ状態においては“０”が格納される。
他ＣＭの電源状態レジスタ１５２は、当該ＦＰＧＡ１３が備えられたＣＭ１１とは異なるＣＭ（他ＣＭ）１１の電源の状態を示す値が格納される。例えば、他ＣＭ１１の電源がオン状態においては“１”が、又、自ＣＭ１１の電源がオフ状態においては“０”が格納される。
【００２８】
これらの自ＣＭの電源状態レジスタ１５１及び他ＣＭの電源状態レジスタ１５２に対する各値の設定（格納）は、電源制御ブロック１５が制御する。
電源制御ブロック１５は、後述する電源投入指示監視ブロック１４の自ＣＭへの電源オン指示レジスタ１４２が有効になると、電源部３１へ電源投入指示を発行する。
また、電源制御ブロック１５は、電源部３１から電源状態通知を受信し、この電源状態通知の内容を自ＣＭの電源状態レジスタ１５１へ反映させる。
【００２９】
さらに、電源制御ブロック１５は、ＦＰＧＡ間通信制御ブロック１７から他ＣＭの電源状態を受信し、この他ＣＭの電源状態を他ＣＭの電源状態レジスタ１５２に反映させる。
タイマ１５３は、電源投入指示監視ブロック１４の自ＣＭへの電源オン指示レジスタ１４２が有効になってから、所定時間（例えば、２００μｓｅｃ）経過後に、電源部３１に対して電源投入指示を発行する。すなわち、タイマ１５３は、電源部３１に対する電源投入指示の発行を所定時間遅延させる。
【００３０】
なお、このタイマ１５３が計時する所定時間は、例えば、当該ＣＭ１１から他ＣＭ１１に対して定期的に送信される電源オン指示の送信間隔（例えば２００μｓｅｃ）以上とすることが望ましく、特に、この電源オン指示の送信間隔と同じであることが望ましい。
この電源オン指示の送信間隔は、ＦＰＧＡ１３のＦＰＧＡ間通信制御ブロック１７の仕様に依存するものであって、ストレージ装置毎に異なるものではない。すなわち、同一のＦＰＧＡ１３を備えるストレージ装置で共通した値となるので、ストレージ装置毎に調整する必要がない。
【００３１】
なお、タイマ１５３により電源部３１に対する電源投入指示の発行を所定時間遅延させることによる効果については、図５を用いて後述する。
ＦＰＧＡ間通信制御ブロック１７は、ＣＭ１１ＡとＣＭ１１Ｂとの間でデータ通信を行なう。ＦＰＧＡ間通信制御ブロック１７は、他ＣＭ１１のＦＰＧＡ間通信制御ブロック１７と通信路５２を介して１対１で通信可能に接続されている。
【００３２】
ＣＭ１１ＡのＦＰＧＡ間通信制御ブロック１７とＣＭ１１ＢのＦＰＧＡ間通信制御ブロック１７との通信路５２を介した通信は、各ＣＭ１１において電源部３１から制御部３２への電力供給が停止されている状態でも行なわれる。なお、通信路５２は上述した通信路５０と異なるプロトコルの通信を行なうことが望ましい。
ＦＰＧＡ間通信制御ブロック１７は、他方のＣＭ１１に備えられたＦＰＧＡ間通信制御ブロック１７に対して電源オン指示を送信する。
【００３３】
ＦＰＧＡ間通信制御ブロック１７は、電源投入指示監視ブロック１４の他ＣＭへの電源オン指示レジスタ１４３が有効であり、且つ、電源制御ブロック１５の他ＣＭの電源状態レジスタ１５２に電源オフ状態が格納されている場合に、他ＣＭ１１に対して電源オン指示を定期的に発行する。又、ＦＰＧＡ間通信制御ブロック１７は、他ＣＭ１１から電源オン指示を受信すると、要因検出部１４１へ、その旨の通知を行なう。
【００３４】
さらに、ＦＰＧＡ間通信制御ブロック１７は、電源制御ブロック１５の自ＣＭの電源状態レジスタ１５１の値を自ＣＭの電源状態を示す情報として定期的（例えば２００μｓｅｃ毎）に他ＣＭ１１へ通知する。
一方、他ＣＭ１１から自ＣＭの電源状態レジスタ１５１の値を受信したＦＰＧＡ間通信制御ブロック１７は、その値を、他ＣＭの電源状態レジスタ１５２へ反映させる。
【００３５】
電源投入指示監視ブロック１４は、電源投入指示の入力を監視する。この電源投入指示監視ブロック１４は、要因検出部１４１，自ＣＭへの電源オン指示レジスタ１４２，他ＣＭへの電源オン指示レジスタ１４３及び他ＣＭからの電源オン指示レジスタ１４４を備える。
自ＣＭへの電源オン指示レジスタ１４２は、当該ＦＰＧＡ１３が備えられたＣＭ（自ＣＭ）１１の電源部３１に対する電源オン指示の状態を示す値が格納される。例えば、自ＣＭ１１の電源部３１に電源オン指示がされている（有効な）状態においては“１”が、又、自ＣＭ１１の電源部３１に電源オン指示がされていない（無効な）状態においては“０”が格納される。
【００３６】
他ＣＭへの電源オン指示レジスタ１４３は、当該ＦＰＧＡ１３が備えられたＣＭ１１とは異なる他のＣＭ（他ＣＭ）１１の電源部３１に対する電源オン指示の状態を示す値が格納される。例えば、他ＣＭ１１の電源部３１に電源オン指示がされている（有効な）状態においては“１”が、又、他ＣＭ１１の電源部３１に電源オン指示がされていない（無効な）状態においては“０”が格納される。
【００３７】
また、この他ＣＭへの電源オン指示レジスタ１４３は、後述する他ＣＭからの電源オン指示レジスタ１４４が有効になると、無効（“０”）となる。
他ＣＭからの電源オン指示レジスタ１４４は、他ＣＭ１１から電源オン指示を受信しているか否かの状態を示すレジスタである。ＦＰＧＡ間通信制御ブロック１７が他ＣＭ１１から電源オン指示を受信すると、この他ＣＭからの電源オン指示レジスタ１４４は有効になり、例えば “１”が設定される。又、ＦＰＧＡ間通信制御ブロック１７が他ＣＭ１１から電源オン指示を受信していない状態では、この他ＣＭからの電源オン指示レジスタ１４４は無効になり、例えば “０”が設定される。
【００３８】
また、電源制御ブロック１５の自ＣＭの電源状態レジスタ１５１が電源オン状態になると、この他ＣＭからの電源オン指示レジスタ１４４は無効になり、例えば “０”が設定される。
これにより、電源投入指示監視ブロック１４（他ＣＭからの電源オン指示レジスタ１４４）は、複数のＣＭ１１のうちＣＭ１１Ａ（第２の制御装置）からの電源オン指示の受信を監視する監視部として機能する。
【００３９】
これらの、自ＣＭへの電源オン指示レジスタ１４２，他ＣＭへの電源オン指示レジスタ１４３及び他ＣＭからの電源オン指示レジスタ１４４に対する各値の設定（格納）は、電源投入指示監視ブロック１４が制御する。
要因検出部１４１には、ホスト装置２もしくは、自ＣＭ１１内の電源投入要因３５から電源オン指示が入力される。なお、電源投入要因３５は、自ＣＭ１１に電源投入の要因があることを示し、例えば、電源スイッチのオン入力や再起動による電源オンが相当する。
【００４０】
要因検出部１４１は、電源制御ブロック１５の自ＣＭの電源状態レジスタ１５１の値が電源オフを示す場合に、ホスト装置２もしくは電源投入要因３５から電源オン指示の入力を検出すると、自ＣＭへの電源オン指示レジスタ１４２及び他ＣＭへの電源オン指示レジスタ１４３をそれぞれ有効にする。すなわち、これらのレジスタ１４２，１４３に“１”を設定する。
【００４１】
また、要因検出部１４１は、電源制御ブロック１５の自ＣＭの電源状態レジスタ１５１が電源オフ状態の場合に、他ＣＭ１１からの電源オン指示を受信すると、自ＣＭへの電源オン指示レジスタ１４２のみを有効にする。
さらに、要因検出部１４１は、電源制御ブロック１５の他ＣＭの電源状態レジスタ１５２が無効から有効へ変化すると、他ＣＭへの電源オン指示レジスタ１４３を無効にする。
【００４２】
また、要因検出部１４１は、他ＣＭからの電源オン指示レジスタ１４４が有効になると、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
さらに、要因検出部１４１は、他ＣＭからの電源オン指示レジスタ１４４が有効になると、他ＣＭへの電源オン指示レジスタ１４３を有効にする。これにより、電源投入指示監視ブロック１４（要因検出部１４１）は、他ＣＭ（第２の制御装置）１１Ａからの電源オン指示を検知すると、この他ＣＭ１１Ａに対する電源オン指示の発行を阻止する阻止部として機能する。
【００４３】
上述の如く構成された実施形態の一例としてのストレージ装置１における再起動の処理を、図３及び図４に示すフローチャート（ステップＡ１０１〜Ａ１１５，Ｂ１０１〜１１５）に従って説明する。
これらの図３及び図４中おいては、その左側にＣＭ＃０の処理を、右側にＣＭ＃１の処理を示す。又、これらの図３及び図４中おいて、各ＣＭ１１のＦＰＧＡ間通信制御ブロック１７から他方のＣＭ１１に送信される自ＣＭの電源状態を示す情報を実線の太矢印で示す。更に、図３及び図４中おいて、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７からＣＭ＃１に送信される電源オン指示を破線の太矢印で示す。
【００４４】
本ストレージ装置１の再起動においては、先ず、ステップＡ１０１において、ＣＭ＃０の電源部３１が電源オフすることにより、制御部３２に対する電力供給を停止する。
ステップＡ１０２において、再起動による電源投入要因３５が発生し、ステップＡ１０３において、ＣＭ＃０の要因検出部１４１は、電源投入要因３５からの電源オン指示を検出する。
【００４５】
ステップＡ１０４において、要因検出部１４１は、自ＣＭへの電源オン指示レジスタ１４２を有効にする。ステップＡ１０５において、タイマ１５３は、所定時間（例えば２００μｓｅｃ）の計時を行なう。タイマ１５３が所定時間（２００μｓｅｃ）経過したことを計時すると、電源部３１に対して電源投入指示が発行される。
ステップＡ１０６において、電源部３１は、電源投入指示に従って電源を投入し、制御部３２に対して電力を供給する。又、電源部３１は、電源制御ブロック１５に対して電源オン状態を通知し、ステップＡ１０７において、電源制御ブロック１５の自ＣＭの電源状態レジスタ１５１に電源オン状態を示す“１”が格納される。
【００４６】
また、これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対して通知される自ＣＭの電源状態を示す情報は、“電源オフ”から“電源オン”に切り替わる。更に、これに伴い、他ＣＭからの電源オン指示レジスタ１４４も無効となる。
なお、他ＣＭ１１（ＣＭ＃１）から通知される自ＣＭの電源状態を示す情報は、電源制御ブロック１５の他ＣＭの電源状態レジスタ１５２に格納される。
【００４７】
また、上述したステップＡ１０４と並行して、ステップＡ１０８において、要因検出部１４１は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３５から入力されたものであるかを確認する。
電源オン指示が電源投入要因３５から入力されたものでない場合には（ステップＡ１０８のＮＯルート参照）、ステップＡ１１５において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対する電源オン指示の送信が停止される。
【００４８】
電源オン指示が電源投入要因３５から入力されたものである場合には（ステップＡ１０８のＹＥＳルート参照）、ステップＡ１０９において、電源投入指示監視ブロック１４は、他ＣＭからの電源オン指示レジスタ１４４が有効であるか否かを確認する。
他ＣＭからの電源オン指示レジスタ１４４が有効である場合には（ステップＡ１０９のＹＥＳルート参照）、ステップＡ１１５においては、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対する電源オン指示の送信が停止される。又、併せて、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
【００４９】
一方、他ＣＭからの電源オン指示レジスタ１４４が無効である場合には（ステップＡ１０９のＮＯルート参照）、ステップＡ１１０において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を有効にする。
その後、ステップＡ１１１において、電源制御ブロック１５が、他ＣＭの電源状態レジスタ１５２を確認することで、他ＣＭ１１の電源状態を確認する。
【００５０】
この確認の結果、他ＣＭ１１の電源状態がオフである場合には（ステップＡ１１１の“電源オフ”ルート参照）、ステップＡ１１２において、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対して電源オン指示の送信が開始される。
次に、ステップＡ１１３において、電源投入指示監視ブロック１４は、他ＣＭからの電源オン指示レジスタ１４４が有効であるか否かを確認する。
【００５１】
他ＣＭからの電源オン指示レジスタ１４４が有効である場合には（ステップＡ１１３のＹＥＳルート参照）、ステップＡ１１５において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対する電源オン指示の送信が停止される。又、併せて、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
【００５２】
一方、他ＣＭからの電源オン指示レジスタ１４４が無効である場合には（ステップＡ１１３のＮＯルート参照）、ステップＡ１１４において、電源制御ブロック１５が、他ＣＭの電源状態レジスタ１５２を確認することで、他ＣＭ１１の電源状態を確認する。すなわち、他ＣＭ１１の電源状態がオン状態に変化したか否かを確認する。
また、ステップＡ１１１における確認の結果、他ＣＭ１１の電源状態がオンである場合にも（ステップＡ１１１の“電源オン”ルート参照）、ステップＡ１１４において、再度、他ＣＭ１１の電源状態を確認する。
【００５３】
他ＣＭ１１の電源状態がオンへ変化した場合には（ステップＡ１１４の“オフ→オン変化検出”ルート参照）、ステップＡ１１５において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が停止される。又、併せて、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
【００５４】
また、他ＣＭ１１の電源状態がオフからオンへ変化していない場合には（ステップＡ１１４の“オフ→オン変化検出なし”ルート参照）、ステップＡ１１１に戻る。
一方、ＣＭ＃１においては、ステップＢ１０１において、ＣＭ＃１の電源部３１が電源オフすることにより、制御部３２に対する電力供給を停止する。
次に、ステップＢ１０２において、再起動による電源投入要因３５が発生し、ステップＢ１０３において、ＣＭ＃１の要因検出部１４１は、電源投入要因３５からの電源オン指示を検出する。
【００５５】
ステップＢ１０４において、要因検出部１４１は、自ＣＭへの電源オン指示レジスタ１４２を有効にする。ステップＢ１０５において、タイマ１５３は、所定時間（例えば２００μｓｅｃ）の計時を行なう。タイマ１５３が所定時間（２００μｓｅｃ）経過したことを計時すると、電源部３１に対して電源投入指示が発行される。
ステップＢ１０６において、ＣＭ＃１の電源部３１は、電源制御ブロック１５からの電源投入指示に従って電源を投入し、制御部３２に対して電力を供給する。又、電源部３１は、電源制御ブロック１５に対して電源オン状態を通知し、ステップＢ１０７において、電源制御ブロック１５の自ＣＭの電源状態レジスタ１５１に電源オン状態を示す“１”が格納される。
【００５６】
また、これにより、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７に対して通知される自ＣＭの電源状態を示す情報は、“電源オフ”から“電源オン”に切り替わる。
また、上述したステップＢ１０４と並行して、ステップＢ１０８において、要因検出部１４１は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３５から入力されたものであるかを確認する。
【００５７】
電源オン指示が電源投入要因３５から入力されたものでない場合には（ステップＢ１０８のＮＯルート参照）、ステップＢ１１５において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。
電源オン指示が電源投入要因３５から入力されたものである場合には（ステップＢ１０８のＹＥＳルート参照）、ステップＢ１０９において、電源投入指示監視ブロック１４は、他ＣＭからの電源オン指示レジスタ１４４が有効であるか否かを確認する。
【００５８】
他ＣＭからの電源オン指示レジスタ１４４が有効である場合には（ステップＢ１０９のＹＥＳルート参照）、要因検出部１４１は、ステップＢ１１５において、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃１においては、ＣＭ＃０に対する電源オン指示の発行を抑止する。従って、本ストレージ装置１の再起動後にその電源オフを行なう場合においても、その電源オフの処理過程において、ＣＭ＃１からＣＭ＃０に対して電源オン指示が送信されることがなく、意図しないＣＭ＃０の電源オンが発生することを防止することができる。又、併せて、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
【００５９】
一方、他ＣＭからの電源オン指示レジスタ１４４が無効である場合には（ステップＢ１０９のＮＯルート参照）、ステップＢ１１０において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を有効にする。
その後、ステップＢ１１１において、電源制御ブロック１５が、他ＣＭの電源状態レジスタ１５２を確認することで、他ＣＭ１１の電源状態を確認する。
【００６０】
この確認の結果、他ＣＭ１１の電源状態がオフである場合には（ステップＢ１１１の“電源オフ”ルート参照）、ステップＢ１１２において、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７に対して電源オン指示の送信が開始される。
次に、ステップＢ１１３において、電源投入指示監視ブロック１４は、他ＣＭからの電源オン指示レジスタ１４４が有効であるか否かを確認する。
【００６１】
他ＣＭからの電源オン指示レジスタ１４４が有効である場合には（ステップＢ１１３のＹＥＳルート参照）、ステップＢ１１５において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対する電源オン指示の送信が停止される。又、併せて、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
【００６２】
一方、他ＣＭからの電源オン指示レジスタ１４４が無効である場合には（ステップＢ１１３のＮＯルート参照）、ステップＢ１１４において、電源制御ブロック１５が、他ＣＭの電源状態レジスタ１５２を確認することで、他ＣＭ１１の電源状態を確認する。すなわち、他ＣＭ１１の電源状態がオン状態に変化したか否かを確認する。
また、ステップＢ１１１における確認の結果、他ＣＭ１１の電源状態がオンである場合にも（ステップＢ１１１の“電源オン”ルート参照）、ステップＢ１１４において、再度、他ＣＭ１１の電源状態を確認する。
【００６３】
他ＣＭ１１の電源状態がオンへ変化した場合には（ステップＢ１１４の“オフ→オン変化検出”ルート参照）、ステップＢ１１５において、要因検出部１４１は、他ＣＭへの電源オン指示レジスタ１４３を無効にする。これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック１７から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック１７に対する電源オン指示の送信が停止される。又、併せて、自ＣＭへの電源オン指示レジスタ１４２を有効にする。
【００６４】
また、他ＣＭ１１の電源状態がオフからオンへ変化していない場合には（ステップＢ１１４の“オフ→オン変化検出なし”ルート参照）、ステップＢ１１１に戻る。
このように、実施形態の一例としてのストレージ装置１によれば、電源投入指示監視ブロック１４に他ＣＭからの電源オン指示レジスタ１４４を備え、他ＣＭ１１から電源オン指示を受信すると、この電源オン指示レジスタ１４４を有効にする。そして、この他ＣＭからの電源オン指示レジスタ１４４が有効になると、他ＣＭへの電源オン指示レジスタ１４３を無効にする。
【００６５】
これにより、他ＣＭ１１に対する電源オン指示の通知を抑止することができ、例えば、本ストレージ装置１の再起動処理後に電源オフを行なう場合に、電源オフ処理の過程で、他ＣＭ１１が電源オン指示を受信することがなく、ＣＭ１１の意図しない起動を阻止することができる。
また、ホスト接続ＣＭ１１Ａの電源制御ブロック１５にタイマ１５３を備え、このタイマ１５３が、電源投入指示監視ブロック１４の自ＣＭへの電源オン指示レジスタ１４２が有効になってから、所定時間経過後に、電源部３１に対して電源投入指示を発行する。
【００６６】
また、この所定時間を、ホスト接続ＣＭ１１ＡのＦＰＧＡ間通信制御ブロック１７が他ＣＭ１１に対して定期的に送信する電源オン指示の送信間隔（例えば、２００μｓｅｃ）以上とする。
これにより、ホスト非接続ＣＭ１１Ｂにおいて、このホスト非接続ＣＭ１１Ｂが電源オンする前に、ホスト接続ＣＭ１１Ａから少なくとも１回の電源オン指示を受信することができる。すなわち、ホスト非接続ＣＭ１１Ｂにおいて、ホスト接続ＣＭ１１Ａかから電源オン指示を受信することにより、ホスト非接続ＣＭ１１Ｂにおいて有効となっている他ＣＭへの電源オン指示レジスタ１４３を無効にする（クリアにする）ことができる。従って、ＣＭ１１ＢでＣＭ１１Ａへの電源オン指示が継続して予約されることを防止できる。
【００６７】
図５は実施形態の一例としてのストレージ装置１におけるタイマ１５３の効果を説明するためのフローチャートであり、図３に示すフローチャートのステップＡ１０５，Ｂ１０５を除去したものである。以下、図中、既述の符号と同一の符号を付したステップは同様の処理を示しているので、その説明は省略する。
この図５に示す例においては、自ＣＭへの電源オン指示レジスタ１４２が有効になってから、タイマ１５３による２００μｓｅｃの計時を行なうことなく、電源部３１に対して電源投入指示を発行する場合について示している。
【００６８】
ＣＭ＃０が電源オン指示を発行しようとしているときに（ステップＡ１１２参照）、ＣＭ＃１の電源が投入されてしまい、ＣＭ＃１から電源オン状態を送信すると、ＣＭ＃０では、ＣＭ＃１の電源状態が電源オフから電源オンに変化したことを検知する。これにより、ＣＭ＃０においては、ＣＭ＃１への電源オン指示がクリアされてしまう（符号Ｐ１参照）。
【００６９】
このため、ＣＭ＃１では、以降、有効に設定された他ＣＭへの電源オン指示レジスタ１４３を無効にする（クリアにする）条件を見つけることができない。すなわち、ＣＭ＃０への電源オン指示発行が予約されたままの状態となる（符号Ｐ２参照）。
このため、次回に本ストレージ装置１が電源オフする際に、ＣＭ＃０の電源状態が電源オフとなったことを検出し、ＣＭ＃０へ電源オン指示を発行してしまい、ＣＭ＃０が意図せずに電源オンしてしまうことになる。
【００７０】
そこで、本ストレージ装置１においては、図３のステップＡ１０５に示すように、自ＣＭへの電源オン指示レジスタ１４２が有効になってから、タイマ１５３による２００μｓｅｃの計時後（遅延後）に電源部３１に対する電源投入指示を発行する。これにより、他ＣＭ１１に電源オンを送信する前に確実に他ＣＭ１１からの電源オン指示を１回は受信できることを保証し、ＣＭ＃１において、ＣＭ＃０への電源オン指示発行が継続して予約されてしまう状況を防止する。
【００７１】
ＣＭ＃１が電源オンする前に、ＣＭ＃０から電源オン指示を受信できれば、その時点でＣＭ＃１の他ＣＭからの電源への電源オン指示レジスタ１４３を無効化（クリア）できるので、ＣＭ＃１でＣＭ＃０への電源オン指示が継続して予約されることを防止できる。
ＣＭ＃０において、電源オン指示レジスタ１４２が有効になってから２００μｓｅｃ遅延させて電源部３１に対する電源投入指示を発行することで、ＣＭ＃１においては、ＣＭ＃０における電源オフから電源オンへの変更を確実に検知することができる。
【００７２】
これにより、ＣＭ＃１はＣＭ＃０に対する電源オン指示の通知をキャンセルすることができ、ＣＭ＃１からＣＭ＃０への電源オン指示が出しっぱなし（電源オン指示を継続して予約）の状態を阻止することができる。従って、ＣＭ＃０がこのＣＭ＃１からの電源オン指示を受信してしまうことにより意図せずに電源オンしてしまうことを阻止することができる。
【００７３】
比較の為に、以下に、上述したストレージ装置１の電源合わせこみ機能を備えないストレージ装置１００におけるＣＭ１０１ａ，１０１ｂ間の電源合わせこみ手法を説明する。
図７は実施形態の一例としてのストレージ装置とは異なるストレージ装置１００における電源制御機能を模式的に示す図である。この図７に示すように、ストレージ装置１００において、ＣＭ１０１ａ，１０１ｂは、それぞれＦＰＧＡ３０１，電源部３１１及び制御部３１２を備える。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１０１ａ，１０１ｂを用いるが、任意のＣＭを指すときには符号１０１を用いる。又、以下、ＣＭ１０１ａをＣＭ＃０と、又、ＣＭ１０１ｂをＣＭ＃１とそれぞれ表す場合がある。
【００７４】
このストレージ装置１００においては、他ＣＭからの電源オン指示レジスタ１４４やタイマ１５３を備えておらず、上述したストレージ装置１の電源合わせこみ機能を備えていない。
制御部３１２はＣＭとしての各種機能を実現するための制御を行なうものであり、例えば、サーバ２００からのホストＩ／Ｏに従って、図示しないストレージユニットへのアクセス制御等、各種制御を行なう。
【００７５】
電源部３１１は、ＣＭ１０１ａ，１０１ｂ内の各部に電力供給を行なう。制御部３１２はこの電源部３１１から電力を供給される。
ＦＰＧＡ３０１は、プログラミングすることができる集積回路（ＬＳＩ）であり、ＣＭ１０１ａ，１０１ｂにおける電源合わせこみを行なう。
ＦＰＧＡ３０１は、図７に示すように、電源投入指示監視ブロック３０２，電源制御ブロック３０３及びＦＰＧＡ間通信制御ブロック３０４を備える。
【００７６】
電源制御ブロック３０３は、電源部３１１の電源投入を制御する機能ブロックであり、電源部３１１に対する電源投入指示を行なう。
電源制御ブロック３０３は、自ＣＭの電源状態レジスタ３１０及び他ＣＭの電源状態レジスタ３０９を有する。
自ＣＭの電源状態レジスタ３１０は、当該ＦＰＧＡ３０１が備えられたＣＭ（自ＣＭ）１０１の電源の状態を示す値が格納される。例えば、自ＣＭ１０１の電源がオン状態においては“１”が、又、自ＣＭ１０１の電源がオフ状態においては“０”が格納される。
【００７７】
他ＣＭの電源状態レジスタ３０９は、当該ＦＰＧＡ３０１が備えられたＣＭ１０１とは異なるＣＭ（他ＣＭ）１０１の電源の状態を示す値が格納される。例えば、他ＣＭ１０１の電源がオン状態においては“１”が、又、他ＣＭ１０１の電源がオフ状態においては“０”が格納される。
電源制御ブロック３０３は、電源投入指示監視ブロック３０２の自ＣＭへの電源オン指示レジスタ３０８が有効になると、電源部３１１へ電源投入指示を発行する。
【００７８】
また、電源制御ブロック３０３は、電源部３１１から電源状態通知を受信し、この電源状態通知の内容を自ＣＭの電源状態レジスタ３１０へ反映させる。
さらに、電源制御ブロック３０３は、ＦＰＧＡ間通信制御ブロック３０４から他ＣＭの電源状態を受信し、この他ＣＭの電源状態を他ＣＭの電源状態レジスタ３０９に反映させる。
【００７９】
ＦＰＧＡ間通信制御ブロック３０４は、ＣＭ１０１ａとＣＭ１０１ｂとの間でデータ通信を行なう。このＦＰＧＡ間通信制御ブロック３０４は、他方のＣＭ１０１に備えられたＦＰＧＡ間通信制御ブロック３０４に対して、例えば、自ＣＭの電源状態を示す情報を定期的（例えば２００μｓｅｃ毎）に送信する。又、ＦＰＧＡ間通信制御ブロック３０４は、他方のＣＭ１０１に備えられたＦＰＧＡ間通信制御ブロック３０４に対して、電源オン指示も送信する。
【００８０】
ＦＰＧＡ間通信制御ブロック３０４は、電源投入指示監視ブロック３０２の他ＣＭへの電源オン指示レジスタ３０７が有効の場合に、他ＣＭ１０１へ電源オン指示を定期的に発行する。又、ＦＰＧＡ間通信制御ブロック３０４は、他ＣＭ１０１から電源オン指示を受信すると、要因検出部３０６へ、その旨の通知を行なう。
さらに、ＦＰＧＡ間通信制御ブロック３０４は、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０の値を定期的に他ＣＭ１０１へ通知する。
【００８１】
一方、他ＣＭ１０１から自ＣＭの電源状態レジスタ３１０の値を受信したＦＰＧＡ間通信制御ブロック３０４は、その値を、他ＣＭの電源状態レジスタ３０９へ反映させる。
電源投入指示監視ブロック３０２は、電源投入指示の入力を監視する。この電源投入指示監視ブロック３０２は、要因検出部３０６，自ＣＭへの電源オン指示レジスタ３０８及び他ＣＭへの電源オン指示レジスタ３０７を備える。
【００８２】
自ＣＭへの電源オン指示レジスタ３０８は、当該ＦＰＧＡ３０１が備えられたＣＭ（自ＣＭ）１０１の電源部３１１に対する電源オン指示の状態を示す値が格納される。例えば、自ＣＭ１０１の電源部３１１に電源オン指示がされている状態においては“１”が、又、自ＣＭ１０１の電源部３１１に電源オン指示がされていない状態においては“０”が格納される。
【００８３】
他ＣＭへの電源オン指示レジスタ３０７は、当該ＦＰＧＡ３０１が備えられたＣＭ１０１とは異なる他のＣＭ（他ＣＭ）１０１の電源部３１１に対する電源オン指示の状態を示す値が格納される。例えば、他ＣＭ１０１の電源部３１１に電源オン指示がされている（有効な）状態においては“１”が、又、他ＣＭ１０１の電源部３１１に電源オン指示がされていない（無効な）状態においては“０”が格納される。
【００８４】
要因検出部３０６には、サーバ２００もしくは、自ＣＭ１０１内の電源投入要因３０５から電源オン指示が入力される。なお、電源投入要因３０５は、自ＣＭ１０１に電源投入の要因があることを示し、例えば、電源スイッチのオン入力や再起動による電源オンが相当する。
要因検出部３０６は、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０の値が電源オフを示す場合に、サーバ２００もしくは電源投入要因３０５から電源オン指示の入力を検出すると、自ＣＭへの電源オン指示レジスタ３０８及び他ＣＭへの電源オン指示レジスタ３０７を有効にする。すなわち、これらのレジスタ３０８，３０７に“１”を設定する。
【００８５】
また、要因検出部３０６は、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０が電源オフの場合に、他ＣＭ１０１からの電源オン指示を受信すると、自ＣＭへの電源オン指示レジスタ３０８のみを有効にする。
さらに、要因検出部３０６は、電源制御ブロック３０３の他ＣＭの電源状態レジスタ３０９が無効から有効へ変化すると、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
【００８６】
次に、このような実施形態の一例としてのストレージ装置とは異なるストレージ装置１００におけるＣＭ間の電源合わせこみ方法を、図８に示すフローチャート（ステップＡ１〜Ａ９，Ｂ１〜Ｂ１０）に従って説明する。
この図８中の左側にＣＭ＃０の処理を、右側にＣＭ＃１の処理を示す。又、図８中において、各ＣＭ１０１のＦＰＧＡ間通信制御ブロック３０４から他方のＣＭ１０１に送信される自ＣＭの電源状態を示す情報を実線の太矢印で示す。更に、図８中において、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４からＣＭ＃１に送信される電源オン指示を破線の太矢印で示す。
【００８７】
ステップＡ１において、ＣＭ＃０の要因検出部３０６は、電源投入要因３０５からの電源オン指示を検出すると、ステップＡ２において、自ＣＭへの電源オン指示レジスタ３０８を有効にする。
ステップＡ３において、電源部３１１は、電源制御ブロック３０３からの電源投入指示に従って、電源を投入し、制御部３１２に対して電力を供給する。又、電源部３１１は、電源制御ブロック３０３に対して電源オン状態を通知し、ステップＡ４において、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０に電源オン状態を示す“１”が格納される。
【００８８】
また、これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対して通知される自ＣＭの電源状態を示す情報は、“電源オフ”から“電源オン”に切り替わる。なお、他ＣＭ１０１から通知される自ＣＭの電源状態を示す情報は、電源制御ブロック３０３の他ＣＭの電源状態レジスタ３０９に格納される。
【００８９】
また、上述したステップＡ２と並行して、ステップＡ５において、要因検出部３０６は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３０５から入力されたものであるかを確認する。
電源オン指示が電源投入要因３０５から入力されたものでない場合には（ステップＡ５のＮＯルート参照）、ステップＡ９において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
【００９０】
電源オン指示が電源投入要因３０５から入力されたものである場合には（ステップＡ５のＹＥＳルート参照）、ステップＡ６において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を有効にする。これにより、ステップＡ７において、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が開始される。
【００９１】
ステップＡ８において、ＣＭ＃０の電源制御ブロック３０３は他ＣＭの電源状態レジスタ３０９を確認することで、他ＣＭ１０１の電源状態を確認する。すなわち、電源制御ブロック３０３は、他ＣＭ１０１の電源状態がオフからオンへ変化したか否かを確認する。
他ＣＭ１０１の電源状態がオフのまま変化していない場合には（ステップＡ８の“オフ→オン変化検出なし”ルート参照）、ステップＡ８を繰り返し行なう。
【００９２】
そして、他ＣＭ１０１の電源状態がオフからオンへ変化したことを検知した場合には（ステップＡ８の“オフ→オン変化検出”ルート参照）、ステップＡ９に移行し、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が停止される。
【００９３】
一方、ＣＭ＃１においては、ステップＢ１において、ＦＰＧＡ間通信制御ブロック３０４が、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から送信された電源オン指示を受信する。これにより、ステップＢ２において、要因検出部３０６が電源オン指示を検出する。
ステップＢ３において、ＣＭ＃１の要因検出部３０６は、自ＣＭへの電源オン指示レジスタ３０８を有効にする。
【００９４】
ステップＢ４において、ＣＭ＃１の電源部３１１は、電源制御ブロック３０３からの電源投入指示に従って、電源を投入し、制御部３１２に対して電力を供給する。又、電源部３１１は、電源制御ブロック３０３に対して電源オン状態を通知し、ステップＢ５において、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０に電源オン状態を示す“１”が格納される。
【００９５】
また、これにより、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対して通知される自ＣＭの電源状態を示す情報は、“電源オフ”から“電源オン”に切り替わる。
また、上述したステップＢ３と並行して、ステップＢ６において、要因検出部３０６は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３０５から入力されたものであるかを確認する。
【００９６】
電源オン指示が電源投入要因３０５から入力されたものでない場合には（ステップＢ６のＮＯルート参照）、ステップＢ１０において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
電源オン指示が電源投入要因３０５から入力されたものである場合には（ステップＢ６のＹＥＳルート参照）、ステップＢ７において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を有効にする。これにより、ステップＢ８において、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が開始される。
【００９７】
ステップＢ９において、ＣＭ＃１の電源制御ブロック３０３は他ＣＭの電源状態レジスタ３０９を確認することで、他ＣＭ１０１の電源状態を確認する。すなわち、電源制御ブロック３０３は、他ＣＭ１０１の電源状態がオフからオンへ変化したか否かを確認する。
他ＣＭ１０１の電源状態がオフのまま変化していない場合には（ステップＢ９の“オフ→オン変化検出なし”ルート参照）、ステップＢ９を繰り返し行なう。
【００９８】
そして、他ＣＭ１０１の電源状態がオフからオンへ変化したことを検知した場合には（ステップＢ９の“オフ→オン変化検出”ルート参照）、ステップＢ１０に移行し、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が停止される。
【００９９】
図９は実施形態の一例としてのストレージ装置とは異なるストレージ装置の再起動の処理を示すフローチャート（ステップＡ１１〜Ａ２１，Ｂ１１〜Ｂ２０）、図１０はその電源オフの処理を示すフローチャート（ステップＡ３１〜Ａ４２，Ｂ３１〜Ｂ３４）である。なお、図１０に示す電源オフ処理は図９に示す再起動後に行なわれる。
これらの図９及び図１０中おいても、その左側にＣＭ＃０の処理を、右側にＣＭ＃１の処理を示す。又、これらの図９及び図１０中おいても、各ＣＭ１０１のＦＰＧＡ間通信制御ブロック３０４から他方のＣＭ１０１に送信される自ＣＭの電源状態を示す情報を実線の太矢印で示す。更に、図９及び図１０中おいても、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４からＣＭ＃１に送信される電源オン指示を破線の太矢印で示す。
【０１００】
ストレージ装置の再起動においては、先ず、ステップＡ１１において、ＣＭ＃０の電源部３１１が電源オフすることにより、制御部３１２に対する電力供給を停止する。
ステップＡ１２において、再起動による電源投入要因３０５が発生し、ステップＡ１３において、ＣＭ＃０の要因検出部３０６は、電源投入要因３０５からの電源オン指示を検出する。ステップＡ１４において、要因検出部３０６は、自ＣＭへの電源オン指示レジスタ３０８を有効にする。
【０１０１】
ステップＡ１５において、電源部３１１は、電源制御ブロック３０３からの電源投入指示に従って、電源を投入し、制御部３１２に対して電力を供給する。又、電源部３１１は、電源制御ブロック３０３に対して電源オン状態を通知し、ステップＡ１６において、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０に電源オン状態を示す“１”が格納される。
【０１０２】
また、これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対して通知される自ＣＭの電源状態を示す情報は、“電源オフ”から“電源オン”に切り替わる。なお、他ＣＭ１０１から通知される自ＣＭの電源状態を示す情報は、電源制御ブロック３０３の他ＣＭの電源状態レジスタ３０９に格納される。
【０１０３】
また、上述したステップＡ１４と並行して、ステップＡ１７において、要因検出部３０６は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３０５から入力されたものであるかを確認する。
電源オン指示が電源投入要因３０５から入力されたものでない場合には（ステップＡ１７のＮＯルート参照）、ステップＡ２１において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
【０１０４】
電源オン指示が電源投入要因３０５から入力されたものである場合には（ステップＡ１７のＹＥＳルート参照）、ステップＡ１８において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を有効にする。これにより、ステップＡ１９において、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が開始される。
【０１０５】
ステップＡ２０において、ＣＭ＃０の電源制御ブロック３０３は他ＣＭの電源状態レジスタ３０９を確認することで、他ＣＭ１０１の電源状態を確認する。すなわち、電源制御ブロック３０３は、他ＣＭ１０１の電源状態がオフからオンへ変化したか否かを確認する。
他ＣＭ１０１の電源状態がオフのまま変化していない場合には（ステップＡ２０の“オフ→オン変化検出なし”ルート参照）、ステップＡ２０を繰り返し行なう。
【０１０６】
そして、他ＣＭ１０１の電源状態がオフからオンへ変化したことを検知した場合には（ステップＡ２０の“オフ→オン変化検出”ルート参照）、ステップＡ２１に移行し、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
これにより、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が停止される。
【０１０７】
一方、ＣＭ＃１においては、ステップＢ１１において、ＣＭ＃１の電源部３１１が電源オフすることにより、制御部３１２に対する電力供給を停止する。
ここで、一般に、ＣＭ＃０とＣＭ＃１との間ではＣＭの電源オフ処理に時間差（例えば、２００ｍｓｅｃ）があり、ＣＭ＃０において電源オフ（ステップＡ１１参照）と電源オン（ステップＡ１５参照）とが行なわれた後に、ＣＭ＃１の電源オフ（ステップＢ１１）が行なわれる。
【０１０８】
ステップＢ１２において、再起動による電源投入要因３０５が発生し、ステップＢ１３において、ＣＭ＃１の要因検出部３０６は、電源投入要因３０５からの電源オン指示を検出する。ステップＢ１４において、要因検出部３０６は、自ＣＭへの電源オン指示レジスタ３０８を有効にする。
ステップＢ１５において、ＣＭ＃１の電源部３１１は、電源制御ブロック３０３からの電源投入指示に従って、電源を投入し、制御部３１２に対して電力を供給する。又、電源部３１１は、電源制御ブロック３０３に対して電源オン状態を通知し、ステップＢ１６において、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０に電源オン状態を示す“１”が格納される。
【０１０９】
また、これにより、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対して通知される自ＣＭの電源状態を示す情報は、“電源オフ”から“電源オン”に切り替わる。
ＣＭ＃０においては、この通知される自ＣＭの電源状態を示す情報が、“電源オフ”から“電源オン”に切り替わったことを検知することで、ステップＡ２１で示したように、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
【０１１０】
また、上述したステップＢ１４と並行して、ステップＢ１７において、要因検出部３０６は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３０５から入力されたものであるかを確認する。
電源オン指示が電源投入要因３０５から入力されたものである場合には（ステップＢ１７のＹＥＳルート参照）、ステップＢ１８において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を有効にする。これにより、ステップＢ１９において、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が開始される。
【０１１１】
ステップＢ２０において、ＣＭ＃１の電源制御ブロック３０３は他ＣＭの電源状態レジスタ３０９を確認することで、他ＣＭ１０１の電源状態を確認する。すなわち、電源制御ブロック３０３は、ＣＭ＃０の電源状態がオフからオンへ変化したか否かを確認する。
他ＣＭ＃０の電源状態がオフのまま変化していない場合には（ステップＢ２０の“オフ→オン変化検出なし”ルート参照）、ステップＢ２０を繰り返し行なう。
【０１１２】
そして、ＣＭ＃０の電源状態がオフからオンへ変化したことを検知した場合や（ステップＢ２０の“オフ→オン変化検出”ルート参照）、  電源オン指示が電源投入要因３０５から入力されたものでない場合には（ステップＢ１７のＮＯルート参照）、図１０に示す電源オフの処理に移行する。
ここで、前述の如く、ＣＭ＃１の電源オフの前に、ＣＭ＃０の電源オフ（ステップＡ１１参照）と電源オン（ステップＡ１５参照）とが行なわれている。これにより、ＣＭ＃１においては、ＣＭ＃０から通知される自ＣＭの電源状態を示す情報が、“電源オフ”から“電源オン”に切り替わったことを検知することがない。従って、ＣＭ＃１においては、要因検出部３０６が、他ＣＭへの電源オン指示レジスタ３０７を無効にすることなく、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４からは、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対して電源オン指示が継続して送信される。
【０１１３】
その後、ストレージ装置が、図１０に示す電源オフの処理に移行する。
ＣＭ＃１においては、ステップＢ３１において、電源部３１１が電源オフすることにより、制御部１１に対する電力供給を停止する。
また、ＣＭ＃１においては、上述の如く、ステップＢ１８において有効に設定された他ＣＭへの電源オン指示レジスタ３０７が有効のまま維持されている。これにより、ステップＢ３２においてもＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が引き続き送信される。
【０１１４】
ステップＢ３３において、ＣＭ＃１の電源制御ブロック３０３は他ＣＭの電源状態レジスタ３０９を確認することで、他ＣＭ１０１の電源状態を確認する。すなわち、電源制御ブロック３０３は、他ＣＭ１０１の電源状態がオフからオンへ変化したか否かを確認する。
他ＣＭ１０１の電源状態がオフのまま変化していない場合には（ステップＢ３３の“オフ→オン変化検出なし”ルート参照）、ステップＢ３２に戻り、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が引き続き送信される。
【０１１５】
そして、他ＣＭ１０１の電源状態がオフからオンへ変化したことを検知した場合には（ステップＢ３３の“オフ→オン変化検出”ルート参照）、ステップＢ３４に移行し、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
これにより、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が停止される。
【０１１６】
一方、ＣＭ＃０においては、ステップＡ３１において、ＣＭ＃０の電源部３１１が電源オフすることにより、制御部３１２に対する電力供給を停止する。
しかし、その後、ステップＡ３２において、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４は、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４から電源オン指示を受信する。
ＣＭ＃０においては、このＣＭ＃１から受信する電源オン指示は有効な電源オン指示として取り扱われ（ステップＡ３３）、ステップＡ３４において、ＣＭ＃０の要因検出部３０６は、電源投入要因３０５からの電源オン指示を検出する。
【０１１７】
ステップＡ３５において、要因検出部３０６は、自ＣＭへの電源オン指示レジスタ３０８を有効にする。
ステップＡ３６において、電源部３１１は、電源制御ブロック３０３からの電源投入指示に従って、電源を投入し、制御部３１２に対して電力を供給する。
すなわち、ストレージ装置を電源オフする処理において、ＣＭ＃０ではＣＭ＃１からの電源オン指示を受信することにより、意図しない電源オンが行なわれるのである。
【０１１８】
電源部３１１は、電源制御ブロック３０３に対して電源オン状態を通知し、ステップＡ３７において、電源制御ブロック３０３の自ＣＭの電源状態レジスタ３１０に電源オン状態を示す“１”が格納される。
なお、ステップＡ３５と並行して、ステップＡ３８において、要因検出部３０６は、電源オン指示が自ＣＭで要因検出されたことにより行なわれたものか、すなわち、電源オン指示が電源投入要因３０５から入力されたものであるかを確認する。
【０１１９】
電源オン指示が電源投入要因３０５から入力されたものでない場合には（ステップＡ３８のＮＯルート参照）、ステップＡ４２において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
電源オン指示が電源投入要因３０５から入力されたものである場合には（ステップＡ３８のＹＥＳルート参照）、ステップＡ３９において、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を有効にする。これにより、ステップＡ４０において、ＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４から、ＣＭ＃１のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示の送信が開始される。
【０１２０】
ステップＡ４１において、ＣＭ＃０の電源制御ブロック３０３は他ＣＭの電源状態レジスタ３０９を確認することで、他ＣＭ１０１の電源状態を確認する。すなわち、電源制御ブロック３０３は、他ＣＭ１０１の電源状態がオフからオンへ変化したか否かを確認する。
他ＣＭ１０１の電源状態がオフのまま変化していない場合には（ステップＡ４１の“オフ→オン変化検出なし”ルート参照）、ステップＡ４１を繰り返し行なう。
【０１２１】
そして、他ＣＭ１０１の電源状態がオフからオンへ変化したことを検知した場合には（ステップＡ４１の“オフ→オン変化検出”ルート参照）、ステップＡ４２に移行し、要因検出部３０６は、他ＣＭへの電源オン指示レジスタ３０７を無効にする。
このように、実施形態の一例としてのストレージ装置とは異なるストレージ装置１００においては、ストレージ装置１００を電源オフさせる処理にもかかわらず、ＣＭ＃１からはＣＭ＃０のＦＰＧＡ間通信制御ブロック３０４に対する電源オン指示が送信され続ける場合があり、これにより、ＣＭ＃０が意図しないタイミングで電源オンされてしまう。
【０１２２】
すなわち、ストレージ装置１００の再起動を行なった後に装置電源のオフを行なう際に、オペレータの意図しない動作が発生してしまう。
一方、本ストレージ装置１においては、ＣＭ＃０がこのＣＭ＃１からの電源オン指示を受信してしまうことにより意図せずに電源オンしてしまうことを阻止することができる。
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１２３】
例えば、上述した実施形態においては、２つのＣＭ１１Ａ，１１Ｂを備えているが、これに限定されるものではなく、３つ以上のＣＭ１１を備えてもよい。
さらに、上述した実施形態においては、ＣＭ１１Ａ，１１Ｂを備えたストレージ装置１について説明しているが、これに限定されるものではない。すなわち、複数モジュールによる冗長構成を有している各種システムや複数のモジュールを接続して構成するシステムに適用することで、これらの複数のモジュール間で電源の合わせこみを行なうことができる。
【０１２４】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【符号の説明】
【０１２５】
１    ストレージ装置
２    ホスト装置
１１Ａ，１１Ｂ，１１    ＣＭ
１２Ａ，１２Ｂ，１２  ＣＰＵ
１３Ａ，１３Ｂ，１３    ＦＰＧＡ
１４    電源投入監視ブロック
１５    電源制御ブロック
１７    ＦＰＧＡ間通信制御ブロック
１９Ａ，１９Ｂ，２１Ａ，２１Ｂ，２２Ａ，２２Ｂ    デバイス
２０    ストレージユニット
２３    ディスク用インタフェース
３０Ａ，３０Ｂ    ＣＡ
３１    電源部
３２    制御部
３５    電源投入要因
４１，５０１，５１    通信路
１４１    要因検出部
１４２    自ＣＭへの電源オン指示レジスタ
１４３    他ＣＭへの電源オン指示レジスタ
１４４    他ＣＭからの電源オン指示レジスタ
１５１    自ＣＭの電源状態レジスタ
１５２    他ＣＭの電源状態レジスタ
１５３    タイマ
【図１】
2015099486.tif 000003
【図２】
2015099486.tif 000004
【図３】
2015099486.tif 000005
【図４】
2015099486.tif 000006
【図５】
2015099486.tif 000007
【図６】
2015099486.tif 000008
【図７】
2015099486.tif 000009
【図８】
2015099486.tif 000010
【図９】
2015099486.tif 000011
【図１０】
2015099486.tif 000012