(57)【要約】【課題】ハードディスクドライブと半導体メモリドライブを混載したストレージ装置において、ドライブ起動短時間を短縮する。【解決手段】ストレージ装置のストレージコントローラが、ドライブ起動前に搭載されたドライブの種別（ＨＤＤ／ＳＳＤ）を識別する。次にストレージコントローラがＨＤＤを複数回に分けて時間差起動する。ＨＤＤの起動完了後、ストレージコントローラはＳＳＤを一括起動する。また、予め設定されたピーク電流低減や起動時間短縮等のドライブ起動ポリシーとドライブ種別識別結果から、ストレージコントローラがドライブ起動処理を決定する。【選択図】図１２
2009271637.tif 000002
【特許請求の範囲】
【請求項１】
ハードディスクあるいは半導体メモリを備える複数のドライブと、前記複数のドライブを制御するストレージコントローラと、を含むストレージ装置において、
前記ストレージ装置は、同一電源に接続された前記複数のドライブに含まれるハードディスクドライブあるいは半導体メモリドライブへの電源供給の可否を、前記ストレージコントローラが個別に制御可能な制御部を備え、
前記ストレージコントローラは、
ハードディスクドライブのスピンアップ処理を開始する前に、前記複数のドライブに含まれる各ドライブがハードディスクドライブであるか、半導体メモリドライブであるかを識別し、
前記識別結果に基づき、前記複数のドライブ毎にハードディスクドライブの同時スピンアップ数を決定し、
前記複数のドライブ毎にドライブ起動処理を実行する、
ことを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置において、
前記複数のドライブに含まれる全てのハードディスクドライブのスピンアップ処理を完了した後に、前記複数のドライブに含まれる半導体メモリドライブへの電源供給を開始する、ことを特徴とするストレージ装置。
【請求項３】
請求項１記載のストレージ装置において、
予め設定されたドライブ起動方針に従って、前記ストレージコントローラが、前記制御部を制御し、前記ハードディスクドライブのスピンアップ処理と前記半導体メモリドライブへの電源供給を開始する、ことを特徴とするストレージ装置。
【請求項４】
請求項３記載のストレージ装置において、
前記予め設定されたドライブ起動方針は、ドライブ起動に要する電流の極大値を最小にする方針である第１の方針と、ハードディスクドライブを優先して起動する方針である第２の方針と、半導体メモリドライブを優先して起動する方針である第３の方針のいずれかである、ことを特徴とするストレージ装置。
【請求項５】
請求項１記載のストレージ装置において、
前記ストレージコントローラは、前記複数のドライブに含まれる各ドライブの記録媒体種別情報を保持する、ことを特徴とするストレージ装置。
【請求項６】
請求項１記載のストレージ装置において、
前記複数のドライブはそれぞれ記録媒体識別信号を出力する信号ピンを備えた少なくとも１以上のカードリッジに格納され、
前記ストレージコントローラは、前記記録媒体識別信号を判定することにより、前記少なくとも１以上のカートリッジに格納された複数のドライブに含まれる各ドライブの記録媒体種別を識別する、ことを特徴とするストレージ装置。
【請求項７】
請求項６記載のストレージ装置において、
前記少なくとも１以上のカートリッジは、ハードディスクドライブと半導体メモリドライブの外形の差異を検出して前記記録媒体識別信号を前記ストレージコントローラへ出力する、ことを特徴とするストレージ装置。
【請求項８】
請求項１記載のストレージ装置において、
前記ストレージコントローラは、ハードディスクドライブのスピンアップ処理を開始する前の前記複数のドライブに含まれるドライブ毎の電源電流量の差異により、前記複数のドライブに含まれる各ドライブの記録媒体種別を識別する、ことを特徴とするストレージ装置。
【請求項９】
ハードディスクあるいは半導体メモリを備える複数のドライブと、前記複数のドライブを制御するストレージコントローラと、を含むストレージ装置において、
前記ストレージコントローラは、
同一電源に接続された前記複数のドライブ毎に電源を供給し、
前記ハードディスクドライブのスピンアップ処理を開始する前に、前記複数のドライブに含まれる各ドライブがハードディスクドライブであるか、半導体メモリドライブであるかを識別し、
前記識別結果に基づき、前記複数のドライブに含まれるハードディスクドライブの同時スピンアップ数を決定し、
前記複数のドライブ毎にドライブ起動処理を実行する、
ことを特徴とするストレージ装置。
【請求項１０】
請求項９記載のストレージ装置において、
前記ストレージコントローラは、前記複数のドライブに含まれる全てのハードディスクドライブのスピンアップ処理を完了した後に、前記複数のドライブに含まれる半導体メモリドライブのインターフェースとの通信を開始する、ことを特徴とするストレージ装置。
【請求項１１】
請求項９記載のストレージ装置において、
予め設定されたドライブ起動方針に従って、前記ストレージコントローラが、ハードディスクドライブのスピンアップ処理と半導体メモリドライブのインターフェースとの通信を開始する、ことを特徴とするストレージ装置。
【請求項１２】
請求項１１記載のストレージ装置において、
前記予め設定された起動方針は、ドライブ起動に要する電流の極大値を最小にする方針である第１の方針と、ハードディスクドライブを優先して起動する方針である第２の方針と、半導体メモリドライブを優先して起動する方針である第３の方針のいずれかである、ことを特徴とする請求項１１記載のストレージ装置。
【請求項１３】
請求項９記載のストレージ装置において、
前記ストレージコントローラは、前記複数のドライブに含まれる各ドライブの記録媒体種別情報を保持する、ことを特徴とするストレージ装置。
【請求項１４】
請求項９記載のストレージ装置において、
前記複数のドライブはそれぞれ記録媒体識別信号を出力する信号ピンを備えた少なくとも1以上のカードリッジに格納され、
前記ストレージコントローラは、前記記録媒体識別信号を判定することにより、前記少なくとも１以上のカートリッジに格納されたそれぞれのドライブの記録媒体種別を識別する、ことを特徴とするストレージ装置。
【請求項１５】
請求項１４記載のストレージ装置において、
前記少なくも１以上のカートリッジは、ハードディスクドライブと半導体メモリドライブの外形の差異を検出して前記記録媒体識別信号を前記ストレージコントローラへ出力する、ことを特徴とするストレージ装置。
【請求項１６】
請求項９記載のストレージ装置において、
前記ストレージコントローラは、ハードディスクドライブのスピンアップ処理を開始する前の前記複数のドライブに含まれるドライブ毎の電源電流量の差異により、前記複数のドライブに含まれる各ドライブの記録媒体種別を識別する、ことを特徴とするストレージ装置。
【請求項１７】
ハードディスクあるいは半導体メモリを備える複数のドライブと、前記複数のドライブを制御するストレージコントローラと、を含むストレージ装置のドライブ起動方法において、
前記ストレージコントローラが、ストレージ管理者により設定されたドライブ起動方針を読み出すステップと、
前記ストレージコントローラが、前記複数のドライブに含まれる各ドライブの記録媒体種別を判定するステップと、
前記ストレージコントローラが、前記ドライブ起動方針と前記記録媒体識別の判定結果から、ドライブ起動処理を決定するステップと、
を含むことを特徴とするストレージ装置のドライブ起動方法。
【請求項１８】
請求項１７記載のストレージ装置のドライブ起動方法において、
前記ドライブ起動方針は、ドライブ起動に要する電流の極大値を最小にする方針である第１の方針を含み、
前記ストレージ管理者により前記第１の方針が設定された場合に、前記ストレージコントローラは、最後にスピンアップ処理するハードディスクドライブ数を１として、順次ハードディスクドライブのスピンアップ処理を実行するステップと、
ハードディスクドライブのスピンアップ処理完了後に、半導体メモリドライブの起動を開始するステップ、
を含むことを特徴とするストレージ装置のドライブ起動方法。
【請求項１９】
請求項１７記載のストレージ装置のドライブ起動方法において、
前記ドライブ起動方針は、ハードディスクドライブを優先して起動する方針である第２の方針を含み、
前記ストレージ管理者により前記第２の方針が設定された場合に、前記ストレージコントローラは、電源供給可能なハードディスクドライブの同時スピンアップ処理数を算出するステップ、
を含むことを特徴とするストレージ装置のドライブ起動方法。
【請求項２０】
請求項１７記載のストレージ装置のドライブ起動方法において、
前記ドライブ起動方針は、半導体メモリドライブを優先して起動する方針である第３の方針を含み、
前記ストレージ管理者により前記第３の方針が設定された場合に、前記ストレージコントローラは、全半導体メモリドライブ起動後に電源供給可能なハードディスクドライブの同時スピンアップ処理数を算出するステップ、
を含むことを特徴とするストレージ装置のドライブ起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びそのドライブ起動方法に関し、特に、複数のハードディスクドライブと複数の半導体メモリドライブを搭載するストレージ装置及びそのドライブ起動方法に適用しても好適なものである。
【背景技術】
【０００２】
ストレージ装置は、一般的に、ランダムアクセス可能な不揮発性記録媒体を備える。この不揮発性記録媒体は、例えば、磁気ディスク又は光ディスク等である。また、現在主流のストレージ装置は、ハードディスクドライブを多数備えている。
【０００３】
このようなストレージ装置において、ハードディスクドライブを起動し、ディスクに記録されたデータを読み書きするためには、内蔵するディスクを回転させる必要がある。このディスクの回転を開始する動作がスピンアップであり、スピンアップに消費する電流はスピンアップ電流である。スピンアップ電流は定常回転時のハードディスクドライブの消費電流よりも大きい。このため、ハードディスクドライブの消費電流特性は、起動時の電源電流が定常時より大きい突入電流型である。したがって、多数のハードディクドライブのスピンアップを同時に開始すると、大量の電源電流が必要となる。
【０００４】
ディスクシステムのドライブ起動方法に関連する公知技術としては、以下の文献が知られている。
【特許文献１】特開平４−７８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術によると、多数のハードディスクドライブを搭載したストレージ装置におけるドライブ起動方法は、複数回に分けてハードディスクドライブをスピンアップさせることにより、ハードディスクドライブ突入電流の重畳を抑える。さらに、全ハードディスクドライブのスピンアップに要する時間を短縮するため、複数回に分けてスピンアップするドライブ数を、順に減少するように設定する。
【０００６】
一方、半導体技術の進歩に伴って、フラッシュメモリ等の不揮発性半導体メモリを記録媒体とする半導体メモリドライブが開発されている。半導体メモリドライブを記録媒体とするストレージ装置は、ハードディスクドライブを多数備えるストレージ装置に比べ、寿命、省電力及びアクセス時間等に優れていると考えられている。
【０００７】
これは、半導体メモリドライブは、ディスクを内蔵していないのでスピンアップ電流が流れないからであり、半導体メモリドライブの消費電流特性は、起動時と定常時の電源電流量に大きな差がない平均電流型であり、また、半導体メモリドライブの消費電流はハードディスクドライブに比べで少ないので、ハードディスクドライブよりも多くのドライブを一括起動することができるからである。
【０００８】
ハードディスクドライブと半導体メモリドライブの両方を搭載したストレージ装置において、従来技術のドライブ起動方法を実行する場合には、ハードディスクドライブと半導体メモリドライブを同一に扱う。つまり半導体メモリドライブも、ハードディスクドライブ同様に複数回に分けて時間差起動を実行する。このため、半導体メモリドライブを一括起動する場合に比べて、全ドライブの起動完了に長時間を要する、という課題があった。
【０００９】
また、ハードディスクドライブ起動前に半導体メモリドライブを起動すると、ハードディスクドライブのスピンアップ電流と起動済み半導体メモリドライブの消費電流が重畳するため、ハードディスクドライブのみを時間差起動する場合に比べてピーク消費電流が大きくなる、という課題があった。
【００１０】
本発明は、以上の点を考慮してなされたもので、複数のハードディスクドライブと複数の半導体メモリドライブとを搭載したストレージ装置において、ドライブ起動時間の短縮およびピーク消費電流の低減を図ることができるストレージ装置及びそのドライブ起動方法を提案しようとするものである。
【課題を解決するための手段】
【００１１】
本発明のストレージ装置は、同一電源に接続された複数のドライブに含まれるハードディスクあるいは半導体メモリドライブへの電源供給の可否を、ストレージコントローラが個別に制御可能な例えばスイッチである制御部を備える。そしてストレージコントローラは、ハードディスクドライブのスピンアップ処理を開始する前に、各ドライブがハードディスクドライブであるか、半導体メモリドライブであるかを識別する。さらにストレージコントローラは、記録媒体識別結果に基づき、同一電源に接続されたドライブ群毎にハードディスクドライブの同時スピンアップ数を決定し、ドライブ群毎にドライブ起動シーケンスを実行する。
【００１２】
さらに本発明のストレージ装置は、同一電源に接続されたドライブ群に含まれる全てのハードディスクドライブのスピンアップ処理を完了した後に、ドライブ群に含まれる半導体メモリドライブへの電源供給を開始する。
【００１３】
この構成によるストレージ装置は、ストレージコントローラがドライブの媒体種別を識別して、時間差起動する複数のハードディスクドライブと、一括起動する複数の半導体メモリドライブに分けて起動するため、全ドライブ起動に要する時間を短くすくことができる。また、そのストレージ装置はハードディスクドライブの突入電流と半導体メモリドライブの消費電流が重畳しないため、ドライブ起動時のピーク消費電流を抑えることができる。
【発明の効果】
【００１４】
本発明によれば、複数のハードディスクドライブと複数の半導体メモリドライブとを搭載したストレージ装置において、ドライブ起動時間の短縮およびピーク消費電流の低減を図ることができるストレージ装置及びそのドライブ起動方法を提案することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について図面を参照して説明する。
【００１６】
図１は、本発明の実施の形態であるストレージ装置のブロック図である。ストレージ装置は、ストレージコントローラＳＣと、ハードディスクドライブＰ００〜Ｐ０２、Ｐ１０〜Ｐ１２、及び半導体メモリドライブＰ０３〜Ｐ０５、Ｐ１３〜Ｐ１５を備える。半導体メモリドライブは、例えばフラッシュメモリを記録媒体とするストレージデバイスである。
【００１７】
ストレージコントローラＳＣは、チャネルアダプタＣＡ０、ＣＡ１、キャッシュメモリＣＭ０、ＣＭ１、ストレージアダプタＳＡ０、ＳＡ１及び相互接続網ＮＷ０、ＮＷ１を備える。なお、チャネルアダプタＣＡ０、ＣＡ１、キャッシュメモリＣＭ０、ＣＭ１及びストレージアダプタＳＡ０、ＳＡ１は、二つずつを図示しているが、いくつ備えられていてもよい。
【００１８】
相互接続網ＮＷ０及びＮＷ１は、例えばスイッチ等であり、ストレージコントローラＳＣを構成する装置を相互に接続する。具体的には、相互接続網ＮＷ０及びＮＷ１は、チャネルアダプタＣＡ０、キャッシュメモリＣＭ０及びストレージアダプタＳＡ０を相互に接続する。同様に、相互接続網ＮＷ０、ＮＷ１は、チャネルアダプタＣＡ１、キャッシュメモリＣＭ１及びストレージアダプタＳＡ１を相互に接続する。
【００１９】
チャネルアダプタＣＡ０は、図２で後述するが、チャネルＣ００を介して、外部の上位装置（図示省略）に接続されている。同様に、チャネルアダプタＣＡ１は、チャネルＣ１０を介して、外部の上位装置（図示省略）に接続されている。なお、上位装置は、本実施形態のストレージ装置にデータを読み書きする計算機である。
【００２０】
キャッシュメモリＣＭ０、ＣＭ１は、チャネルアダプタＣＡ０、ＣＡ１及びストレージアダプタＳＡ０、ＳＡ１から受信したデータを一時的に記憶する。
【００２１】
ストレージアダプタＳＡ０は、図３で後述するが、ハードディスクドライブＰ００等に接続されている。具体的には、ストレージアダプタＳＡ０は、チャネルＤ００とエキスパンダ１００を介して、ハードディスクドライブＰ００〜Ｐ０２と、半導体メモリドライブＰ０３〜Ｐ０５に接続されている。エキスパンダはＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔｃａｈｅｄ  ＳＣＳＩ）のスイッチであり、複数のＳＡＳドライブまたはＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）ドライブを接続できる。さらにストレージアダプタＳＡ０は、チャネルＤ０１とエキスパンダ１０１を介して、ハードディスクドライブＰ１０〜Ｐ１２と、半導体メモリドライブＰ１３〜Ｐ１５に接続されている。
【００２２】
同様に、ストレージアダプタＳＡ１は、ハードディスクドライブＰ００等に接続されている。具体的には、ストレージアダプタＳＡ１は、チャネルＤ１０とエキスパンダ１１０を介して、ハードディスクドライブＰ００〜Ｐ０２と、半導体メモリドライブＰ０３〜Ｐ０５に接続されている。さらにストレージアダプタＳＡ１は、チャネルＤ１１とエキスパンダ１１１を介して、ハードディスクドライブＰ１０〜Ｐ１２と、半導体メモリドライブＰ１３〜Ｐ１５に接続されている。
【００２３】
チャネルアダプタＣＡ０、ＣＡ１と、ストレージアダプタＳＡ０、ＳＡ１及びエキスパンダ１００、１０１、１１０、１１１は、ネットワークＮ００を介して保守端末ＳＶＰに接続されている。保守端末ＳＶＰは、ストレージ装置の管理者から入力された設定情報を、チャネルアダプタＣＡ０、ＣＡ１またはストレージアダプタＳＡ０、ＳＡ１またはエキスパンダ１００、１０１、１１０、１１１に送信する。
【００２４】
なお、ストレージ装置は、ストレージアダプタＳＡ０及びチャネルアダプタＣＡ０に代わって、一つのアダプタを備えていても良い。この場合、当該アダプタが、ストレージアダプタＳＡ０及びチャネルアダプタＣＡ０の処理を行う。
【００２５】
ハードディスクドライブＰ００〜Ｐ０２と半導体メモリドライブＰ０３〜Ｐ０５とエキスパンダ１００、１１０は、後述する電源ユニットと合わせて、エンクロージャ１２０に格納されている。同様に、ハードディスクドライブＰ１０〜Ｐ１２と半導体メモリドライブＰ１３〜Ｐ１５とエキスパンダ１０１、１１１は、後述する電源ユニットと合わせて、エンクロージャ１２１に格納されている。
【００２６】
図２は、チャネルアダプタＣＡ０のブロック図である。チャネルアダプタＣＡ０は、ホストチャネルインターフェース２１、キャッシュメモリインターフェース２２、ネットワークインターフェース２３、プロセッサ２４、ローカルメモリ２５及びプロセッサ周辺制御部２６を備える。
【００２７】
ホストチャネルインターフェース２１は、チャネルＣ００を介して、外部の上位装置（図示省略）と接続するインターフェースである。また、ホストチャネルインターフェース２１は、チャネルＣ００上のデータ転送プロトコルと、ストレージコントローラＳＣの内部のデータ転送プロトコルとを相互に変換する。
【００２８】
キャッシュメモリインターフェース２２は、チャネルアダプタＣＡ０と相互結合網ＮＷ０、ＮＷ１を接続するインターフェースである。ネットワークインターフェース２３は、チャネルアダプタＣＡ０と保守端末ＳＶＰを接続するインターフェースである。
【００２９】
なお、ホストチャネルインターフェース２１とキャッシュメモリインターフェース２２とは、信号線２７によって接続されている。
【００３０】
プロセッサ２４は、ローカルメモリ２５に記憶されているプログラムを実行することによって、各種処理を行う。具体的には、プロセッサ２４は、上位装置と相互結合網ＮＷ０、ＮＷ１との間のデータ転送を制御する。
【００３１】
ローカルメモリ２５は、プロセッサ２４によって実行されるプログラムを記憶する。また、ローカルメモリ２５は、プロセッサ２４によって参照されるテーブルを記憶する。なお、当該テーブルは、管理者によって設定又は変更される。
【００３２】
この場合、管理者は、テーブルの設定又はテーブルの変更に関する情報を、保守端末ＳＶＰに入力する。保守端末ＳＶＰは、入力された情報を、ネットワークインターフェース２３を介してプロセッサ２４に送信する。プロセッサ２４は、受信した情報に基づいて、テーブルを作成又は変更する。そして、プロセッサ２４は当該テーブルをローカルメモリ２５に格納する。
【００３３】
プロセッサ周辺制御部２６は、ホストチャネルインターフェース２１、キャッシュメモリインターフェース２２、ネットワークインターフェース２３、プロセッサ２４及びローカルメモリ２５間のデータ転送を制御する。プロセッサ周辺制御部２６は、例えば、チップセット等である。なお、チャネルアダプタＣＡ１も、チャネルアダプタＣＡ０と同一の構成である。よって、説明を省略する。
【００３４】
図３は、ストレージアダプタＳＡ０のブロック図である。ストレージアダプタＳＡ０は、キャッシュメモリインターフェース３１、ストレージチャネルインターフェース３２、ネットワークインターフェース３３、プロセッサ３４、ローカルメモリ３５及びプロセッサ周辺制御部３６を備える。
【００３５】
キャッシュメモリインターフェース３１は、ストレージアダプタＳＡ０と相互結合網ＮＷ０、ＮＷ１を接続するインターフェースである。
【００３６】
ストレージチャネルインターフェース３２は、チャネルＤ００と接続するインターフェースである。また、ストレージチャネルインターフェース３２は、チャネルＤ００上のデータ転送プロトコルと、ストレージコントローラＳＣの内部のデータ転送プロトコルとを相互に変換する。
なお、キャッシュメモリインターフェース３１とストレージチャネルインターフェース３２とは、信号線３７によって接続されている。
【００３７】
ネットワークインターフェース３３は、ストレージアダプタＳＡ０と保守端末ＳＶＰを接続するインターフェースである。
【００３８】
プロセッサ３４は、ローカルメモリ３５に記憶されているプログラムを実行することによって、各種処理を行う。
【００３９】
ローカルメモリ３５は、プロセッサ３４によって実行されるプログラムを記憶する。また、ローカルメモリ３５は、プロセッサ３４によって参照されるテーブルを記憶する。なお、当該テーブルは、管理者によって設定又は変更される。
【００４０】
この場合、管理者は、テーブルの設定又はテーブルの変更に関する情報を、保守端末ＳＶＰに入力する。保守端末ＳＶＰは、入力された情報を、ネットワークインターフェース３３を介してプロセッサ３４に送信する。プロセッサ３４は、受信した情報に基づいて、テーブルを作成又は変更する。そして、プロセッサ３４は当該テーブルをローカルメモリ３５に格納する。
【００４１】
プロセッサ周辺制御部３６は、キャッシュメモリインターフェース３１、ストレージチャネルインターフェース３２、ネットワークインターフェース３３、プロセッサ３４及びローカルメモリ３５間のデータ転送を制御する。プロセッサ周辺制御部３６は、例えば、チップセット等である。なお、ストレージアダプタＳＡ１も、ストレージアダプタＳＡ０と同一の構成である。よって、説明を省略する。
【００４２】
図４は、本発明の実施の形態のストレージコントローラＳＣとエンクロージャ１２０、１２１の形態を説明する図である。
【００４３】
ストレージコントローラＳＣは、ストレージアダプタＳＡ０、ＳＡ１と、チャネルアダプタＣＡ０、ＣＡ１と、キャッシュメモリＣＭ０、ＣＭ１が、故障した場合に、故障部位をストレージコントローラＳＣ前面から交換可能に構成されている。
【００４４】
エンクロージャ１２０は、エキスパンダ１００を搭載したエキスパンダボード４００と、エキスパンダ１１０を搭載したエキスパンダボード４１０とが、故障時に交換可能に構成されている。ドライブスロット４２０には、後述する記録媒体を内蔵したドライブカートリッジを挿入する。記録媒体が故障した場合には、エンクロージャ１２０前面においてドライブカートリッジをドライブスロット４２０から取り外し、正常部品と交換する。同様に、エンクロージャ１２１は、エキスパンダ１０１を搭載したエキスパンダボード４０１と、エキスパンダ１１１を搭載したエキスパンダボード４１１とが、故障時に交換可能に構成されている。
【００４５】
ドライブスロット４２１は、後述する記録媒体を内蔵したドライブカートリッジを挿入する。記録媒体が故障した場合には、エンクロージャ１２１前面においてドライブカートリッジをドライブスロット４２１から取り外し、正常部品と交換する。
【００４６】
図４には、２台のエンクロージャのみをストレージコントローラＳＣに接続した例を示しているが、ストレージコントローラＳＣにエンクロージャを追加して接続する場合には、エキスパンダボード４０１のエキスパンダポート４０３およびエキスパンダボード４１１のエキスパンダポート４１３から、新しいエキスパンダをカスケード接続する。
【００４７】
図５は、記録媒体であるハードディスクドライブあるいは半導体メモリドライブを内蔵するドライブカートリッジを説明する図である。図５において、ドライブカートリッジ６１０にハードディスクドライブＰ００が内蔵されている。ここで、ハードディスクドライブＰ００はＳＡＴＡドライブである。ドライブカートリッジ６１０のＳＡＴＡコネクタ５０１は、ハードディスクドライブのＳＡＴＡコネクタと同一あるいは電気的に接続されている。ドライブカートリッジ６１０は、内蔵されているドライブがハードディスクドライブか半導体メモリドライブかを識別するための信号を出力する、ドライブ種別検出信号ピン６３０を備える。ドライブ種別検出信号ピン６３０は、入力ピン５０２または入力ピン５０３から入力した電圧信号のどちらかを選択して出力する。
【００４８】
図６は、エンクロージャ１２０のブロック図である。ただし、ドライブ起動制御に関する構成要素のみを記述し、その他のデータ読み書きに関する配線等は省略している。エンクロージャ１２０は、電源ユニット６０６と、バックプレーン６４０を含む。
【００４９】
電源ユニット６０６は、電圧源６０７と、エンクロージャ内各ドライブへの給電を制御するためのスイッチ６００〜６０５を有する。バックプレーン６４０には、記録媒体を内蔵したドライブカートリッジ６１０〜６１５が、バックプレーンコネクタ６２０〜６２５を介して、それぞれ接続されている。ドライブカートリッジ６１０〜６１５に備えられたドライブ種別検出信号ピン６３０〜６３５も、バックプレーンコネクタ６２０〜６２５を介してバックプレーン６４０上の配線に接続される。同様に、電源ユニット６０６から各ドライブカートリッジ６１１〜６１５への電源配線６０〜６５も、バックプレーンコネクタ６２０〜６２５を介して配線されている。
【００５０】
ドライブ種別検出信号ピン６３０〜６３５は、バックプレーン６４０上のドライブ種別検出信号線６４１と、バックプレーンコネクタ６５０、６６０を介して、エキスパンダボード４００、４１０と接続されている。エキスパンダボード４００は、エキスパンダ１００と、ドライブ起動制御ユニット６５２を備える。
【００５１】
ドライブ起動制御ユニット６５２は、ドライブ種別検出信号線６４１とバックプレーンコネクタ６５０を介して接続され、各ドライブカートリッジ６１０〜６１５からのドライブ種別検出信号を判定し、ドライブカートリッジ６１０〜６１５に内蔵されているドライブ種別を識別する。そして、ドライブ起動制御ユニット６５２は、電源ユニット６０６と電源制御信号線６５３により接続され、スイッチ６００〜６０５を切り換えることにより、各ドライブカートリッジ６１０〜６１５への給電を制御する。エキスパンダ１００は、ＳＥＳ（ＳＣＳＩ  Ｅｎｃｌｏｓｕｒｅ  Ｓｅｒｖｉｃｅ）ユニット６５１を内蔵している。
【００５２】
ＳＥＳユニット６５１は、エンクロージャ１２０内の空冷ファン、温度モニタ等を制御する部位であり、エキスパンダ１００内の仮想ターゲットデバイス（図示省略）を介して、ストレージコントローラＳＣからアクセス可能である。
【００５３】
本実施の形態においては、ＳＥＳユニット６５１とドライブ起動制御ユニット６５２とを接続することにより、ストレージコントローラＳＣがストレージアダプタＳＡ０とＳＥＳユニット６５１を介してドライブへの給電を制御できる。また、電源ユニット６０６とエキスパンダ１００と保守端末ＳＶＰは、ネットワークＮ００で接続されている。従って、電源ユニット６０６内のスイッチ６００〜６０５は、ネットワークＮ００を介して、保守端末ＳＶＰまたはストレージコントローラＳＣから制御することもできる。
【００５４】
エキスパンダボード４１０も、エキスパンダボード４００と同様に、ＳＥＳユニット６６１を内蔵したエキスパンダ１１０と、ドライブ起動制御ユニット６６２を備える。ドライブ起動制御ユニット６６２は、バックプレーンコネクタ６６０とドライブ種別検出信号線６４１を介して各ドライブカートリッジ６１０〜６１５と、またバックプレーンコネクタ６６０と電源制御配線６６３を介して電源ユニット６０６と、接続している。ドライブ起動制御ユニット６６２も電源ユニット６０６内のスイッチ６００〜６０５を切り換えることにより、各ドライブへの給電を制御可能である。
【００５５】
図７は、ドライブ起動制御管理テーブルを説明する図である。ドライブ起動制御管理テーブル７００は、ストレージアダプタＳＡ０、ＳＡ１のローカルメモリ３５内に保持され、保守端末ＳＶＰから変更および参照が可能である。ドライブ起動制御管理テーブル７００は、エンクロージャ識別子７０１と、ドライブスロット識別子７０２と、ドライブ種別７０３と、起動フラグ７０４と、ドライブ起動ポリシー７０５を格納する。
【００５６】
エンクロージャ識別子７０１は、ストレージコントローラＳＣに接続するエンクロージャを識別するためのデータである。ドライブスロット識別子７０２は、各エンクロージャのドライブスロットを識別するためのデータである。ドライブ種別７０３は、各ドライブスロットに挿入したドライブカートリッジが内蔵するドライブ種別が、ハードディスクドライブの場合は０を、は半導体メモリドライブである場合は１を入力する。起動フラグ７０４は、ストレージシステム起動時に、各ドライブを起動するか否かを入力する。起動する場合は１を、起動しない場合やドライブスロットに何も挿入されていない場合は０を入力する。ドライブ起動ポリシー７０５は、詳細は後述するが、省電流ドライブ起動ポリシーの場合は１を、ハードディスクドライブ優先起動ポリシーの場合は２を、半導体メモリドライブ優先起動ポリシーの場合は３を入力する。
【００５７】
次に図８から図１３において、ドライブ起動時の電流特性とドライブ起動ポリシーについて説明する。図８は、ドライブ電流特性テーブルを説明する図である。ドライブ電流特性テーブル８００は、ドライブ種別８０１と、電源電圧８０２と、動作状態毎の消費電流値８０３〜８０５を格納する。３．５インチハードディスクドライブのように、複数の電源電圧（１２Ｖ、５Ｖ等）の供給が必要な場合に、電源電圧毎に消費電流を格納する。５Ｖの電源しか必要としない半導体メモリドライブの場合には、１２Ｖ電源の電流値は０を入力する。
【００５８】
図９は、ハードディスクドライブの起動時からの消費電流の時間変化を説明する図である。ドライブへ給電開始後且つスピンアップ前の状態９０１に流れる電流９０４を、ドライブ電流特性テーブル８００のハードディスクドライブのスリープ電流値として８０３へ格納する。スピンアップ時９０２の電流値９０５を、ドライブ電流特性テーブル８００のハードディスクドライブのスタートアップ電流値として８０４へ格納する。このスタートアップ電流は、ハードディスクドライブのモーター電流の他に、ドライブ起動時に消費する回路電流も含む。スピンアップ後のアイドル状態９０３の電流値９０６を、ドライブ電流特性テーブル８００のハードディスクドライブのアイドル電流値として８０５へ格納する。
【００５９】
図１０は、半導体メモリドライブの起動時からの消費電流の時間変化を説明する図である。ドライブへ給電開始後且つインターフェース起動前の状態１００１に流れる電流１００４を、ドライブ電流特性テーブル８００の半導体メモリドライブのスリープ電流値として８０３へ格納する。インターフェース起動後１００２でアイドル状態の電流値１００５を、ドライブ電流特性テーブル８００の半導体メモリドライブのアイドル電流値として８０４へ格納する。ドライブへのデータ読み書き実行時１００３の電流値１００６を、ドライブ電流特性テーブル８００の半導体メモリドライブのアクティブ電流値として８０５へ格納する。
【００６０】
図１１は、省電流ドライブ起動ポリシーを説明する図である。このポリシーは、ドライブ起動時の電流が最小になるようにドライブ起動を制御する。そのため、ドライブ起動を大きく２段階に分ける。先ず初めに、ハードディスクドライブを起動し、全ハードディスクドライブの起動完了後に、半導体メモリドライブを起動する。ハードディスクドライブは、スピンアップに伴う消費電流増加があるため、複数回に分けて起動する（１１０２〜１１０５）。
【００６１】
この起動に必要な電流値１１０１は、最後に起動（１１０５）するハードディスクドライブを１台にした場合に最少となる。電流値１１０１を超えない範囲で、複数のドライブを同時起動可能である。例えば５台のハードディスクを起動する場合、初めに２台を起動（１１０２）し、次に１台ずつ（１１０３〜１１０５）起動する。半導体メモリドライブはスピンアップに伴う電流増加が無いため、一括して起動する（１１０６）ことにより全ドライブ起動完了時間を短縮することができる。また、ハードディスクドライブのスタートアップ電流と、半導体メモリドライブの消費電流が重畳しないため、消費電流のピークを低減できる。
【００６２】
図１２は、ハードディスクドライブ優先起動ポリシーを説明する図である。このポリシーは、ハードディスクドライブの起動時間短縮となるように、ドライブ起動を制御する。同時起動可能なハードディスクドライブ数は、エンクロージャ内電源ユニットが起動時にドライブへ給電可能な電源電流の上限値１２０１に制限される。初めに、電源電流上限値１２０１以下の電流で起動可能なハードディスクドライブを同時起動する（１２０２）。続いて、電源電流上限値１２０１と起動済みのドライブ電流との差分で起動可能なハードディスクドライブを同時起動してゆく（１２０３）。そして、全ハードディスクドライブ起動完了後、半導体メモリドライブを一括起動する（１２０４）。このドライブ起動ポリシーによれば、同時起動するハードディスクドライブ数は最大となり、半導体メモリドライブを一括起動しているので、ドライブ起動時間が最短となる。
【００６３】
図１３は、半導体メモリドライブ優先起動ポリシーを説明する図である。このポリシーは、半導体メモリドライブの起動後に、ハードディスクドライブの起動時間も短縮するようにドライブ起動を制御する。初めに、全半導体メモリドライブを起動する（１３０２）。この後、同時起動可能なハードディスクドライブ数は、エンクロージャ内電源ユニットが起動時にドライブへ給電可能な電源電流の上限値１３０１と、半導体メモリドライブおよび起動済みハードディスクドライブの消費電流との差分に制限される。次に、この差分値以下の電流で起動可能なハードディスクドライブを同時起動する（１３０３）。そして、全ハードディスクドライブ起動完了まで繰り返す（１３０４）。このドライブ起動ポリシーによれば、ドライブ起動処理開始直後から半導体メモリドライブへのアクセスが可能となる。
【００６４】
図１４から図１７を用いて、本発明の実施の形態における、ドライブ種別識別手段を説明する。
【００６５】
図１４は、ドライブカートリッジ内に設けたジャンパピンによって、ドライブ種別を識別する手段を説明する図である。ジャンパピン１４０１と、入力ピン５０２を信号線１４０２で接続する。入力ピン５０２には、正の電源電圧を入力する。また、ジャンパピン１４０１と、入力ピン５０３を信号線１４０３で接続する。入力ピン５０３には、負の電源電圧を入力する。ジャンパピン１４０１は、信号線１４０２または信号線１４０３との接続を選択し、選択した電圧信号をドライブ種別検出信号ピン６３０へ出力する。
【００６６】
例えば、ドライブカートリッジに内蔵したドライブがハードディスクドライブである場合は、ジャンパピン１４０１は信号線１４０３とドライブ種別検出信号ピン６３０の接続を選択し、半導体メモリドライブである場合は、ジャンパピン１４０１を信号線１４０２とドライブ種別検出信号ピン６３０の接続を選択する。そうすることにより、ドライブ種別検出信号ピン６３０の出力電圧が正の電源電圧である場合は、内蔵ドライブが半導体メモリドライブであり、出力電圧が負の電源電圧である場合には，内蔵ドライブがハードディスクドライブであると識別可能である。
【００６７】
図６のドライブ起動制御ユニット６５２は、ドライブ種別検出信号ピン６３０出力電圧からドライブ種別を識別し、エキスパンダ１００とネットワークＮ００経由をして、あるいはエキスパンダ１００とチャネルＤ００を経由して、ストレージコントローラＳＣへドライブ識別結果を送信する。ストレージコントローラＳＣは、受信した識別結果をドライブ起動制御管理テーブル７００に入力する。
【００６８】
図１５と図１６に、ハードディスクドライブと半導体メモリドライブの外形の差異を検出してドライブ種別を識別する手段について説明する。
【００６９】
図１５は、半導体メモリドライブ１５００の外形を示す。半導体メモリドライブ１５００には、凹部１５０２を形成する。この凹部１５０２は、ドライブ外形のどこにあっても良いが、ハードディスクドライブでは凹部とならない場所に形成する。
【００７０】
図１６は、ドライブカートリッジ１６００に収納した半導体メモリドライブ１５００を示す図である。ドライブカートリッジ１６００は、マイクロスイッチ１６０１と、ドライブ種別検出信号ピン１６０２と、入力ピン１６０６、１６０７を備える。
【００７１】
ドライブカートリッジ１６００内部において、マイクロスイッチ１６０１と、正の電源電圧を入力した入力ピン１６０７を信号線１６０３で接続する。また、マイクロスイッチ１６０１と、負の電源電圧を入力した入力ピン１６０６を信号線１６０４で接続する。さらにマイクロスイッチ１６０１を、信号線１６０５を介してドライブ種別検出信号ピン１６０２に接続する。マイクロスイッチ１６０１を押さない場合は、ドライブ種別検出信号ピン１６０２には正の電源電圧が出力される。マイクロスイッチ１６０１を押した場合は、ドライブ種別検出信号ピン１６０２には負の電源電圧が出力される。
【００７２】
ドライブカートリッジ１６００に、凹部１５０２を設けた半導体メモリドライブ１５００を内蔵した場合は、マイクロスイッチ１６０１が押されない状態になり、ドライブ種別検出信号ピン１６０２には正の電源電圧が出力される。一方、凹部が無いハードディスクドライブをドライブカートリッジ１６００へ内蔵した場合は、マイクロスイッチ１６０１が押された状態になり、ドライブ種別検出信号ピン１６０２には負の電源電圧が出力される。以上から、ドライブ種別検出信号ピン１６０２の出力電圧を調べることにより、ドライブ種別を識別することが可能となる。
【００７３】
図１７は、ドライブ電流測定によるドライブ種別識別手段を説明する図である。この手段によれば、上記のようにドライブカードリッジにドライブ種別検出信号ピンを備えなくとも、ドライブ種別を識別可能である。図１７において、電源ユニット６６は、複数の電圧源１７０１と１７０４を備える。
【００７４】
電圧源１７０１は、例えば５Ｖ電源であり、ハードディスクドライブの電子回路部や、半導体メモリドライブへ電力を供給する電源である。電圧源１７０４は、例えば１２Ｖ電源であり、ハードディスクドライブのモーターへ電力を供給する電源である。電圧源１７０１は、スイッチ１７０２と電源配線１７０３を介して、ドライブカートリッジ６１０に内蔵されたドライブへ電力を供給する。電圧源１７０４は、スイッチ１７０５と電流センサ１７０７、１７０８と電源配線１７０６を介して、ドライブカートリッジ６１０に内蔵されたドライブへ電力を供給する。電源制御部１７１３はネットワークＮ００を介して保守端末ＳＶＰおよびエキスパンダ１００と接続している。また、電源制御部１７１３は電源制御信号線６５３を介してドライブ起動制御ユニット６５２と接続している。
【００７５】
電源ユニット６６内において、電源制御部１７１３とスイッチ１７０２をスイッチ制御信号線１７０９で、電源制御部１７１３とスイッチ１７０５をスイッチ制御信号線１７１０で、それぞれ接続する。また電流センサ１７０７の出力は、電流センサ出力信号線１７１１を介して電源制御部１７１３と接続する。電流センサ１７０８の出力は、バックプレーン６４０上の電流センサ出力信号線１７１２を介してドライブ起動制御ユニット６５２と接続する。ストレージコントローラＳＣは、スイッチ１７０２、１７０５の切り換え命令を、電源制御信号線６５３あるいはネットワークＮ００を介して、電源制御部１７１３へ送信する。
【００７６】
スイッチ１７０２、１７０５は、ストレージコントローラＳＣからの命令を電源制御部１７１３とスイッチ制御信号線１７０９、１７１０を介して受信して、オン・オフを切り換える。スイッチ１７０５をオンにすると、ドライブカートリッジ６１０に内蔵されたドライブが半導体メモリドライブである場合は電源電流が流れないが、ハードディスクドライブである場合は、スピンアップ前でもある程度の電流が流れる。
【００７７】
例えば図８の８０３を参照すると、ハードディスクドライブの１２Ｖ電源電流は、スピンアップ前で２０ｍＡである。半導体メモリドライブの１２Ｖ電源電流は０ｍＡであるので、この電流差を電流センサ１７０７あるいは１７０８で検出することにより、ドライブ種別を識別する。ドライブ起動制御ユニット６５２は、電流センサ１７０８の出力からドライブ種別を識別し、エキスパンダ１００とネットワークＮ００経由をして、あるいはエキスパンダ１００とチャネルＤ００を経由して、ストレージコントローラＳＣへドライブ識別結果を送信する。ストレージコントローラＳＣは、受信した識別結果をドライブ起動制御管理テーブル７００に入力する。電流センサ１７０７と１７０８は、必ずしも両方が必要ではなく、どちらか一方がドライブ電源電流を検出して、ドライブ起動制御管理テーブル７００に識別結果を入力できればよい。
【００７８】
図１８から図２３は、３通りのドライブ起動ポリシー毎のドライブ起動制御の一例を説明するフローチャートである。共通の電源ユニットから電源供給を受けるドライブ群を単位として、ストレージコントローラＳＣがドライブ起動を制御する。本実施の形態においては、エンクロージャ単位でストレージコントローラＳＣがドライブ起動を制御する。ここで説明するドライブ起動手順は、各ドライブへの電力供給のオン・オフを行うため、電流ピーク低減効果が大きい。
【００７９】
図１８と図１９は、省電流ドライブ起動ポリシーのドライブ起動手順を説明するフローチャートである。
【００８０】
ステップ１８０１において、ストレージ装置のドライブ起動処理を開始する。ステップ１８０２において、エンクロージャ内電源ユニットは、ドライブを除く部位に電力供給を開始する。
【００８１】
ステップ１８０３において、ドライブ起動制御ユニットが各ドライブカートリッジのドライブ種別検出信号ピンの電圧を観測し、各ドライブカートリッジに内蔵されているドライブの種別を識別する。そして、ストレージコントローラＳＣは、ドライブ起動制御ユニットのドライブ種別識別結果を受信して、ドライブ起動制御管理テーブル７００を更新する。あるいは、ストレージ装置管理者が保守端末ＳＶＰからドライブ起動制御管理テーブル７００のデータを入力し、ドライブ種別を指示してもよい。
【００８２】
ステップ１８０４において、ストレージコントローラＳＣはドライブ起動ポリシーを確認し、ステップＳ１８０５において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、ドライブ種別がハードディスクドライブであり、且つ起動フラグが１になっている起動対象ドライブへの電源供給開始を電源ユニットへ指示する。この電源ユニットへの指示は、エキスパンダボード上のドライブ起動制御ユニット経由、またはネットワークＮ００経由のどちらで送信してもよい。ハードディスクドライブは電力供給を開始しただけではスピンアップしない。例えばＳｔａｇｇｅｒｅｄ  Ｓｐｉｎ−ｕｐ機能を有効にしたＳＡＴＡハードディスクドライブでは、ＳＡＴＡインターフェースの起動（Ｐｈｙ  Ｒｅａｄｙの状態になること）を契機としてスピンアップ処理を開始する。
【００８３】
ステップ１８０６において、ストレージコントローラＳＣは同時起動ハードディスクドライブ数ｎ１を算出する。詳細は後述する。ステップ１８０７において、ストレージコントローラＳＣはｎ１台のハードディスクドライブに対してスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【００８４】
ステップ１８０８において、ストレージコントローラＳＣは、１台のハードディスクドライブを除いて起動フラグが１であるハードディスクドライブのスピンアップ処理を完了したか否かを判定する。ＮＯの場合はステップ１８０６へ戻り、ＹＥＳの場合はステップ１８０９へ進む。ステップ１８０９において、最後のハードディスクドライブ１台のスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【００８５】
ステップ１８１０において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、ドライブ種別が半導体メモリドライブであり、且つ起動フラグが１になっている起動対象ドライブへの電源供給開始を電源ユニットへ指示する。
【００８６】
ステップ１８１１において、ストレージコントローラＳＣは、電源供給を開始した半導体メモリドライブのインターフェースを起動する（Ｐｈｙ  Ｒｅａｄｙの状態にする）。以上で、ストレージ装置のドライブ起動処理が完了する（ステップ１８１２）。
【００８７】
図１９は、同時起動ハードディスクドライブ数ｎ１を算出する手順を説明するフローチャートである。図１８のステップ１８０６において、ステップ１９０１からステップ１９０６のサブルーチンが呼び出される。
【００８８】
ステップ１９０２において、ハードディスクドライブを起動する際に最低必要な電流値Ｉｐｅａｋを以下の式により算出する。
I peak＝HDD Idle電流×(起動対象HDD数−1)+HDD Startup電流
なお、HDD Idle電流はハードディスクドライブのアイドル電流値、HDD Startup電流はハードディスクドライブのスタートアップ電流値である。
【００８９】
ステップ１９０３において、同時起動可能なハードディスクドライブ数ｎ１を下記式に従い算出する。
n1=int((I peak−HDD Idle電流×起動済みHDD数−HDD Sleep電流×(起動対象HDD数−起動済みHDD数))／(HDD Startup電流−HDD Sleep電流))
【００９０】
ステップ１９０４において、同時起動ハードディスクドライブ数ｎ１が未起動ハードディスクドライブ数−１より大きいか否かを判定する。ここでの未起動ハードディスクドライブ数は、ドライブ起動制御管理テーブル７００の起動フラグ７０４が１の起動対象ドライブのみを対象として数える。ＹＥＳの場合はステップ１９０５へ、ＮＯの場合はステップ１９０６へ進む。
【００９１】
ステップ１９０５において、同時起動ハードディスクドライブ数ｎ１に未起動ハードディスクドライブ数−１を代入する。以上で、同時起動ハードディスクドライブ数ｎ１の算出処理を完了する（ステップ１９０６）。なお、複数の電源電圧をドライブに供給する場合には、電源電圧ごとに同時起動ハードディスクドライブ数を算出し、それらの間の最小値を同時起動ハードディスクドライブ数として選択する。
【００９２】
図２０と図２１は、ハードディスクドライブ優先起動ポリシーのドライブ起動手順を説明するフローチャートである。ステップ２００１からステップ２００５は、上述した図１８のステップ１８０１〜１８０５と同様であるので説明を省略する。
【００９３】
ステップ２００６において、ストレージコントローラＳＣは同時起動ハードディスクドライブ数ｎ２を算出する。詳細は後述する。ステップ２００７において、ストレージコントローラＳＣはｎ２台のハードディスクドライブに対してスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【００９４】
ステップ２００８において、ストレージコントローラＳＣは、起動フラグが１である全てのハードディスクドライブのスピンアップ処理を完了したか否かを判定する。ＮＯの場合はステップ２００６へ戻り、ＹＥＳの場合はステップ２００９へ進む。
【００９５】
ステップ２００９において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、ドライブ種別が半導体メモリドライブであり、且つ起動フラグが１になっている起動対象ドライブへの電源供給開始を電源ユニットへ指示する。
【００９６】
ステップ２０１０において、ストレージコントローラＳＣは、電源供給を開始した半導体メモリドライブのインターフェースを起動する（Ｐｈｙ  Ｒｅａｄｙの状態にする）。以上で、ストレージ装置のドライブ起動処理が完了する（ステップ２０１１）。
【００９７】
図２１は、同時起動ハードディスクドライブ数ｎ２を算出する手順を説明するフローチャートである。図２０のステップ２００６において、ステップ２１０１からステップ２１０６のサブルーチンが呼び出される。
【００９８】
ステップ２１０２において、ハードディスクドライブを起動する際に電源ユニットが供給可能な最大電流値をＩｐｅａｋに代入する。
【００９９】
ステップ２１０３において、同時起動可能なハードディスクドライブ数ｎ２を下記式に従い算出する。
n2=int((I peak−HDD Idle電流×起動済みHDD数−HDD Sleep電流×(起動対象HDD数−起動済みHDD数))／(HDD Startup電流−HDD Sleep電流))
【０１００】
ステップ２１０４において、同時起動ハードディスクドライブ数ｎ２が未起動ハードディスクドライブ数より大きいか否かを判定する。ここでの未起動ハードディスクドライブ数は、ドライブ起動制御管理テーブル７００の起動フラグ７０４が１の起動対象ドライブのみを対象として数える。ＹＥＳの場合はステップ２１０５へ、ＮＯの場合はステップ２１０６へ進む。
【０１０１】
ステップ２１０５において、同時起動ハードディスクドライブ数ｎ２に未起動ハードディスクドライブ数を代入する。以上で、同時起動ハードディスクドライブ数ｎ２の算出処理を完了する（ステップ２１０６）。
【０１０２】
なお、複数の電源電圧をドライブに供給する場合には、電源電圧ごとに同時起動ハードディスクドライブ数を算出し、それらの間の最小値を同時起動ハードディスクドライブ数として選択する。
【０１０３】
図２２と図２３は、半導体メモリドライブ優先起動ポリシーのドライブ起動手順を説明するフローチャートである。ステップ２２０１からステップ２２０４は、上述した図１８のステップ１８０１〜１８０４と同様であるので説明を省略する。
【０１０４】
ステップ２２０５において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、起動フラグが１になっている起動対象ドライブへの電源供給開始を電源ユニットへ指示する。
【０１０５】
ステップ２２０６において、ストレージコントローラＳＣは、電源供給を開始した半導体メモリドライブのインターフェースを起動する（Ｐｈｙ  Ｒｅａｄｙの状態にする）。
【０１０６】
ステップ２２０７において、ストレージコントローラＳＣは同時起動ハードディスクドライブ数ｎ３を算出する。詳細は後述する。
【０１０７】
ステップ２２０８において、ストレージコントローラＳＣはｎ３台のハードディスクドライブに対してスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【０１０８】
ステップ２２０９において、ストレージコントローラＳＣは、起動フラグが１である全てのハードディスクドライブのスピンアップ処理を完了したか否かを判定する。ＮＯの場合はステップ２２０７へ戻り、ＹＥＳの場合はステップ２２１０へ進む。以上で、ストレージ装置のドライブ起動処理が完了する（ステップ２２１０）。
【０１０９】
図２３は、同時起動ハードディスクドライブ数ｎ３を算出する手順を説明するフローチャートである。図２２のステップ２２０７において、ステップ２３０１からステップ２３０６のサブルーチンが呼び出される。
【０１１０】
ステップ２３０２において、ハードディスクドライブを起動する際に電源ユニットが供給可能な最大電流値をＩｐｅａｋに代入する。
【０１１１】
ステップ２３０３において、同時起動可能なハードディスクドライブ数ｎ３を下記式に従い算出する。
n3=int((I peak−HDD Idle電流×起動済みHDD数−HDD Sleep電流×(起動対象HDD数−起動済みHDD数)−SSD Active電流×起動対象SSD数)／(HDD Startup電流−HDD Sleep電流))
ここで半導体メモリドライブの消費電流としては、ストレージコントローラＳＣが半導体メモリドライブへのアクセス開始を想定して、データアクセス時の電流値を使用する。
【０１１２】
ステップ２３０４において、同時起動ハードディスクドライブ数ｎ３が未起動ハードディスクドライブ数より大きいか否かを判定する。ここでの未起動ハードディスクドライブ数は、ドライブ起動制御管理テーブル７００の起動フラグ７０４が１の起動対象ドライブのみを対象として数える。ＹＥＳの場合はステップ２３０５へ、ＮＯの場合はステップ２３０６へ進む。
【０１１３】
ステップ２３０５において、同時起動ハードディスクドライブ数ｎ３に未起動ハードディスクドライブ数を代入する。以上で、同時起動ハードディスクドライブ数ｎ３の算出処理を完了する（ステップ２３０６）。
【０１１４】
なお、複数の電源電圧をドライブに供給する場合には、電源電圧ごとに同時起動ハードディスクドライブ数を算出し、それらの間の最小値を同時起動ハードディスクドライブ数として選択する。
【０１１５】
図２４から図２９は、３通りのドライブ起動ポリシー毎のドライブ起動制御の他の例を説明するフローチャートである。共通の電源ユニットから電源供給を受けるドライブ群を単位として、ストレージコントローラＳＣがドライブ起動を制御する。本実施の形態においては、エンクロージャ単位でストレージコントローラＳＣがドライブ起動を制御する。上述した図１８から図２３の起動手順に対して、図２４から図２９で説明する起動手順は、ドライブ毎の電源スイッチ制御を行わない。そのため、エンクロージャ内にドライブ毎の電力供給を制御するスイッチが備わっていない場合や、エンクロージャが全ドライブに共通電源を有する場合に適用可能である。
【０１１６】
図２４と図２５は、省電流ドライブ起動ポリシーのドライブ起動手順を説明するフローチャートである。
【０１１７】
ステップ２４０１において、ストレージ装置のドライブ起動処理を開始する。ステップ２４０２において、エンクロージャ内電源ユニットは、エンクロージャ内全ドライブへの電力供給を開始する。
【０１１８】
ステップ２４０３において、ドライブ起動制御ユニットが各ドライブカートリッジのドライブ種別検出信号ピンの電圧を観測し、各ドライブカートリッジに内蔵されているドライブの種別を識別する。そして、ストレージコントローラＳＣは、ドライブ起動制御ユニットのドライブ種別識別結果を受信して、ドライブ起動制御管理テーブル７００を更新する。また、ストレージ装置管理者が保守端末ＳＶＰからドライブ起動制御管理テーブル７００のデータを入力し、ドライブ種別を指示してもよい。
【０１１９】
ステップ２４０４において、ストレージコントローラＳＣは、ドライブ起動ポリシーを確認する。ステップＳ２４０５において、ストレージコントローラＳＣは同時起動ハードディスクドライブ数ｍ１を算出する。詳細は後述する。
【０１２０】
ステップ２４０６において、ストレージコントローラＳＣはｍ１台のハードディスクドライブに対してスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【０１２１】
ステップ２４０７において、ストレージコントローラＳＣは、１台のハードディスクドライブを除いて起動フラグが１であるハードディスクドライブのスピンアップ処理を完了したか否かを判定する。ＮＯの場合はステップ２４０５へ戻り、ＹＥＳの場合はステップ２４０８へ進む。
【０１２２】
ステップ２４０８において、最後のハードディスクドライブ１台のスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【０１２３】
ステップ２４０９において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、ドライブ種別が半導体メモリドライブであり、且つ起動フラグが１になっている半導体メモリドライブのインターフェースを起動する（Ｐｈｙ  Ｒｅａｄｙの状態にする）。以上で、ストレージ装置のドライブ起動処理が完了する（ステップ２４１０）。
【０１２４】
図２５は、同時起動ハードディスクドライブ数ｍ１を算出する手順を説明するフローチャートである。図２４のステップ２４０５において、ステップ２５０１からステップ２５０６のサブルーチンが呼び出される。
【０１２５】
ステップ２５０２において、ハードディスクドライブを起動する際に最低必要な電流値Ｉｐｅａｋを以下の式により算出する。
I peak＝HDD Idle電流×(起動対象HDD数−1)+HDD Startup電流
【０１２６】
ステップ２５０３において、同時起動可能なハードディスクドライブ数ｍ１を下記式に従い算出する。
m1= int((I peak−HDD Idle電流×起動済みHDD数−HDD Sleep電流×(起動対象HDD数−起動済みHDD数))／(HDD Startup電流−HDD Sleep電流))
【０１２７】
ステップ２５０４において、同時起動ハードディスクドライブ数ｍ１が未起動ハードディスクドライブ数−１より大きいか否かを判定する。ここでの未起動ハードディスクドライブ数は、ドライブ起動制御管理テーブル７００の起動フラグ７０４が１の起動対象ドライブのみを対象として数える。ＹＥＳの場合はステップ２５０５へ、ＮＯの場合はステップ２５０６へ進む。
【０１２８】
ステップ２５０５において、同時起動ハードディスクドライブ数ｍ１に未起動ハードディスクドライブ数−１を代入する。
【０１２９】
以上で、同時起動ハードディスクドライブ数ｍ１の算出処理を完了する（ステップ２５０６）。なお、複数の電源電圧をドライブに供給する場合には、電源電圧ごとに同時起動ハードディスクドライブ数を算出し、それらの間の最小値を同時起動ハードディスクドライブ数として選択する。
【０１３０】
図２６と図２７は、ハードディスクドライブ優先起動ポリシーのドライブ起動手順を説明するフローチャートである。ステップ２６０１からステップ２６０４は、上述した図２４のステップ２４０１〜２４０４と同様であるので説明を省略する。
【０１３１】
ステップ２６０５において、ストレージコントローラＳＣは同時起動ハードディスクドライブ数ｍ２を算出する。詳細は後述する。
【０１３２】
ステップ２６０６において、ストレージコントローラＳＣはｍ２台のハードディスクドライブに対してスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【０１３３】
ステップ２６０７において、ストレージコントローラＳＣは、起動フラグが１である全てのハードディスクドライブのスピンアップ処理を完了したか否かを判定する。ＮＯの場合はステップ２６０５へ戻り、ＹＥＳの場合はステップ２６０８へ進む。
【０１３４】
ステップ２６０８において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、ドライブ種別が半導体メモリドライブであり、且つ起動フラグが１になっている半導体メモリドライブのインターフェースを起動する（Ｐｈｙ  Ｒｅａｄｙの状態にする）。以上で、ストレージ装置のドライブ起動処理が完了する（ステップ２６０９）。
【０１３５】
図２７は、同時起動ハードディスクドライブ数ｍ２を算出する手順を説明するフローチャートである。図２６のステップ２６０４において、ステップ２７０１からステップ２７０６のサブルーチンが呼び出される。
【０１３６】
ステップ２７０２において、ハードディスクドライブを起動する際に電源ユニットが供給可能な最大電流値をＩｐｅａｋに代入する。
【０１３７】
ステップ２７０３において、同時起動可能なハードディスクドライブ数ｍ２を下記式に従い算出する。
m2=int((I peak−HDD Idle電流×起動済みHDD数−HDD Sleep電流×(HDD総数−起動済みHDD数)−SSD Sleep電流×SSD総数)／(HDD Startup電流−HDD Sleep電流))
【０１３８】
ステップ２７０４において、同時起動ハードディスクドライブ数ｍ２が未起動ハードディスクドライブ数より大きいか否かを判定する。ここでの未起動ハードディスクドライブ数は、ドライブ起動制御管理テーブル７００の起動フラグ７０４が１の起動対象ドライブのみを対象として数える。ＹＥＳの場合はステップ２７０５へ、ＮＯの場合はステップ２７０６へ進む。
【０１３９】
ステップ２７０５において、同時起動ハードディスクドライブ数ｍ２に未起動ハードディスクドライブ数を代入する。
【０１４０】
以上で、同時起動ハードディスクドライブ数ｍ２の算出処理を完了する（ステップ２７０６）。なお、複数の電源電圧をドライブに供給する場合には、電源電圧ごとに同時起動ハードディスクドライブ数を算出し、それらの間の最小値を同時起動ハードディスクドライブ数として選択する。
【０１４１】
図２８と図２９は、半導体メモリドライブ優先起動ポリシーのドライブ起動手順を説明するフローチャートである。ステップ２８０１からステップ２８０４は、上述した図２４のステップ２４０１〜２４０４と同様であるので説明を省略する。
【０１４２】
ステップ２８０５において、ストレージコントローラＳＣは、ドライブ起動制御管理テーブル７００を参照し、ドライブ種別が半導体メモリドライブであり、且つ起動フラグが１になっている半導体メモリドライブのインターフェースを起動する（Ｐｈｙ  Ｒｅａｄｙの状態にする）。
【０１４３】
ステップ２８０６において、ストレージコントローラＳＣは同時起動ハードディスクドライブ数ｍ３を算出する。詳細は後述する。
【０１４４】
ステップ２８０７において、ストレージコントローラＳＣはｍ３台のハードディスクドライブに対してスピンアップ処理開始を指示し、スピンアップ完了まで待つ。
【０１４５】
ステップ２８０８において、ストレージコントローラＳＣは、起動フラグが１である全てのハードディスクドライブのスピンアップ処理を完了したか否かを判定する。ＮＯの場合はステップ２８０６へ戻り、ＹＥＳの場合はステップ２８０９へ進む。
【０１４６】
以上で、ストレージ装置のドライブ起動処理が完了する（ステップ２８０９）。
【０１４７】
図２９は、同時起動ハードディスクドライブ数ｍ３を算出する手順を説明するフローチャートである。図２８のステップ２８０５において、ステップ２９０１からステップ２９０６のサブルーチンが呼び出される。
【０１４８】
ステップ２９０２において、ハードディスクドライブを起動する際に電源ユニットが供給可能な最大電流値をＩｐｅａｋに代入する。
【０１４９】
ステップ２９０３において、同時起動可能なハードディスクドライブ数ｍ３を下記式に従い算出する。
m3=int((I peak−HDD Idle電流×起動済みHDD数−HDD Sleep電流×(HDD総数−起動済みHDD数)−SSD Active電流×起動対象SSD数−SSD Sleep電流×(SSD総数−起動対象SSD数))／(HDD Startup電流−HDD Sleep電流))
ここで半導体メモリドライブの消費電流としては、ストレージコントローラＳＣが半導体メモリドライブへのアクセス開始を想定して、データアクセス時の電流値を使用する。
【０１５０】
ステップ２９０４において、同時起動ハードディスクドライブ数ｍ３が未起動ハードディスクドライブ数より大きいか否かを判定する。ここでの未起動ハードディスクドライブ数は、ドライブ起動制御管理テーブル７００の起動フラグ７０４が１の起動対象ドライブのみを対象として数える。ＹＥＳの場合はステップ２９０５へ、ＮＯの場合はステップ２９０６へ進む。
【０１５１】
ステップ２９０５において、同時起動ハードディスクドライブ数ｍ３に未起動ハードディスクドライブ数を代入する。
【０１５２】
以上で、同時起動ハードディスクドライブ数ｍ３の算出処理を完了する（ステップ２９０６）。なお、複数の電源電圧をドライブに供給する場合には、電源電圧ごとに同時起動ハードディスクドライブ数を算出し、それらの間の最小値を同時起動ハードディスクドライブ数として選択する。
【０１５３】
以上説明した実施形態によると、ハードディスクドライブＰ００〜Ｐ０２，Ｐ１０〜Ｐ１２と半導体メモリドライブＰ０３〜Ｐ０５，Ｐ１３〜Ｐ１５とを搭載したストレージ装置は、ドライブ起動時間の短縮およびピーク消費電流の低減を図ることができる。
【産業上の利用可能性】
【０１５４】
本発明は、ストレージ装置及びそのドライブ起動方法に広く適用することができる。
【図面の簡単な説明】
【０１５５】
【図１】本発明の実施形態に関わるストレージ装置のブロック図である。
【図２】同実施形態に係わるチャネルアダプタのブロック図である。
【図３】同実施形態に係わるストレージアダプタのブロック図である。
【図４】同実施形態に係わるストレージコントローラとエンクロージャの形態を説明する図である。
【図５】同実施形態に係わるドライブカートリッジを説明する図である。
【図６】同実施形態に係わるエンクロージャのブロック図である。
【図７】同実施形態に係わるドライブ起動制御管理テーブルを説明する図である。
【図８】同実施形態に係わるドライブ電流特性テーブルを説明する図である。
【図９】ハードディスクドライブの消費電流特性を説明する図である。
【図１０】半導体メモリドライブの消費電流特性を説明する図である。
【図１１】同実施形態に係わる省電流ドライブ起動ポリシーを説明する図である。
【図１２】同実施形態に係わるハードディスクドライブ優先起動ポリシーを説明する図である。
【図１３】同実施形態に係わる半導体メモリドライブ優先起動ポリシーを説明する図である。
【図１４】同実施形態に係わるドライブ種別識別手段を説明する図である。
【図１５】同実施形態に係わるドライブ種別識別手段を説明する図である。
【図１６】同実施形態に係わるドライブ種別識別手段を説明する図である。
【図１７】同実施形態に係わるドライブ種別識別手段を説明する図である。
【図１８】同実施形態に係わるドライブ起動方法を説明するフローチャートである。
【図１９】同実施形態に係わる同時起動ＨＤＤ数の決定方法を説明するフローチャートである。
【図２０】同実施形態に係わるドライブ起動方法を説明するフローチャートである。
【図２１】同実施形態に係わる同時起動ＨＤＤ数の決定方法を説明するフローチャートである。
【図２２】同実施形態に係わるドライブ起動方法を説明するフローチャートである。
【図２３】同実施形態に係わる同時起動ＨＤＤ数の決定方法を説明するフローチャートである。
【図２４】同実施形態に係わるドライブ起動方法を説明するフローチャートである。
【図２５】同実施形態に係わる同時起動ＨＤＤ数の決定方法を説明するフローチャートである。
【図２６】同実施形態に係わるドライブ起動方法を説明するフローチャートである。
【図２７】同実施形態に係わる同時起動ＨＤＤ数の決定方法を説明するフローチャートである。
【図２８】同実施形態に係わるドライブ起動方法を説明するフローチャートである。
【図２９】同実施形態に係わる同時起動ＨＤＤ数の決定方法を説明するフローチャートである。
【符号の説明】
【０１５６】
ＳＣ  ストレージコントローラ
ＣＡ０、ＣＡ１  チャネルアダプタ
ＣＭ０、ＣＭ１  キャッシュメモリ
ＳＡ０、ＳＡ１  ストレージアダプタ
Ｐ００、Ｐ０１、Ｐ０２、Ｐ１０、Ｐ１１、Ｐ１２  ハードディスクドライブ
Ｐ０３、Ｐ０４、Ｐ０５、Ｐ１３、Ｐ１４、Ｐ１５  半導体メモリドライブ
Ｃ００、Ｃ１０、Ｄ００、Ｄ１０、Ｄ０１、Ｄ１１  チャネル
Ｎ００  ネットワーク
ＮＷ０、ＮＷ１  相互結合網
ＳＶＰ  保守端末
１００、１０１、１１０、１１１  エキスパンダ
１２０、１２１  エンクロージャ
２１  ホストチャネルインターフェース
２２  キャッシュメモリインターフェース
２３  ネットワークインターフェース
２４  プロセッサ
２５  ローカルメモリ
２６  プロセッサ周辺制御部
２７  信号線
３１  キャッシュメモリインターフェース
３２  ストレージチャネルインターフェース
３３  ネットワークインターフェース
３４  プロセッサ
３５  ローカルメモリ
３６  プロセッサ周辺制御部
３７  信号線
４００、４０１、４１０、４１１  エキスパンダボード
４０３、４１３  エキスパンダポート
４２０、４２１  ドライブスロット
５０１、  ＳＡＴＡコネクタ
５０２、５０３、１６０６、１６０７  入力ピン
６０、６１、６２、６３、６４、６５、１７０３、１７０６  電源配線
６６、６０６  電源ユニット
６００、６０１、６０２、６０３、６０４、６０５、１７０２、１７０５  スイッチ
１７０１、１７０４  電圧源
６１０、６１１、６１２、６１３、６１４、６１５、１６００  ドライブカートリッジ
６２０、６２１、６２２、６２３、６２４、６２５  バックプレーンコネクタ
６３０、６３１、６３２、６３３、６３４、６３５、１６０２  ドライブ種別検出信号ピン
６４０  バックプレーン
６４１  ドライブ種別検出信号線
６５１、６６１  ＳＥＳユニット
６５２、６６２  ドライブ起動制御ユニット
６５３、６６３  電源制御信号線
１４０１  ジャンパピン
１４０２、１４０３、１６０３、１６０４、１６０５  信号線
１５００  半導体メモリドライブ
１５０２  凹部
１６０１  マイクロスイッチ
１７０７、１７０８  電流センサ
１７０９、１７１０  スイッチ制御信号線
１７１１、１７１２  電流センサ出力信号線
１７１３  電源制御部
【図１】
2009271637.tif 000003
【図２】
2009271637.tif 000004
【図３】
2009271637.tif 000005
【図４】
2009271637.tif 000006
【図５】
2009271637.tif 000007
【図６】
2009271637.tif 000008
【図７】
2009271637.tif 000009
【図８】
2009271637.tif 000010
【図９】
2009271637.tif 000011
【図１０】
2009271637.tif 000012
【図１１】
2009271637.tif 000013
【図１２】
2009271637.tif 000014
【図１３】
2009271637.tif 000015
【図１４】
2009271637.tif 000016
【図１５】
2009271637.tif 000017
【図１６】
2009271637.tif 000018
【図１７】
2009271637.tif 000019
【図１８】
2009271637.tif 000020
【図１９】
2009271637.tif 000021
【図２０】
2009271637.tif 000022
【図２１】
2009271637.tif 000023
【図２２】
2009271637.tif 000024
【図２３】
2009271637.tif 000025
【図２４】
2009271637.tif 000026
【図２５】
2009271637.tif 000027
【図２６】
2009271637.tif 000028
【図２７】
2009271637.tif 000029
【図２８】
2009271637.tif 000030
【図２９】
2009271637.tif 000031