(57)【要約】【課題】アクセス頻度に応じてディスクドライブの電源をオン／オフ制御するストレージシステムにおいて、ディスクドライブの電源をオン／オフ切り替えする頻度を少なくする。【解決手段】ストレージシステム２は、ホスト計算機１から論理ユニット２８へのデータ読み出し要求を受けると、論理ユニット２８に割り当てられた各論理デバイス２７ａ，２７ｂの電源状態と電源オフ時刻とからデータを読み出す論理デバイス２７ａを選択し、選択された論理デバイス２７ａの電源をオンに制御してデータを読み出す。ストレージシステム２は、ホスト計算機１から論理ユニット２８へのデータ書き込み要求を受けると、論理ユニット２８に割り当てられた各論理デバイス２７ａ，２７ｂの電源をオンに制御するとともに各論理デバイス２７ａ，２７ｂにデータを多重書きする。【選択図】図２
2007241334.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理デバイスによって多重化された論理ボリュームをホスト計算機に提供するストレージシステムであって、
前記複数の論理デバイスの記憶領域を提供する複数のディスクドライブと、
前記ホスト計算機からデータ読み出しが要求される前記論理ボリュームに割り当てられた各論理デバイスの電源状態と電源オフ時刻とからデータを読み出す論理デバイスを選択し、選択した論理デバイスの電源をオンに制御して、選択された論理デバイスからデータを読み出す読み出し部と、
前記ホスト計算機からデータ書き込みが要求される前記論理ボリュームに割り当てられた各論理デバイスの電源をオンに制御し、データ書き込みが要求される論理ボリュームに割り当てられた各論理デバイスにデータを多重書きする書き込み部と、
を備えるストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、前記読み出し部は、前記ホスト計算機から前記論理ボリュームへのデータ読み出し要求に応答して、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスの電源がオフであるときには、前記データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスのうち電源オフ時刻が最も古い論理デバイスを選択し、選択された論理デバイスの電源をオンに制御して、選択された論理デバイスからデータを読み出す、ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、前記読み出し部は、前記ホスト計算機から前記論理ボリュームへのデータ読み出し要求に応答して、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスのうち一部の論理デバイスが電源オンであるときには、電源オンの論理デバイスからデータを読み出す、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、前記読み出し部は、前記ホスト計算機から前記論理ボリュームへのデータ読み出し要求に応答して、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスの電源がオフであるときには、前記データ読み出し要求を受けた時刻と電源オフ時刻との時間差が予め定められた許容期間を超えている論理デバイスを選択し、選択された論理デバイスの電源をオンに制御して、選択された論理デバイスからデータを読み出す、ストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、前記論理ボリュームに割り当てられる複数の論理デバイスのうち少なくとも一部の論理デバイスは、前記ストレージシステムに外部接続された他のストレージシステムが有するストレージデバイスによって提供される記憶領域である、ストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記論理ボリュームに割り当てられる論理デバイスの数を前記論理ボリュームが属するストレージクラス又は記論理ボリュームに格納されるファイルが属するストレージクラスに基づいて設定する多重度設定部を更に備える、ストレージシステム。
【請求項７】
請求項１に記載のストレージシステムであって、
前記ホスト計算機から多重化の指示を受けた論理ボリュームに複数の論理デバイスを割り当てる割当部を更に備える、ストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、前記論理ボリュームに割り当てられる各論理デバイスは、異なる電源制御グループに属している、ストレージシステム。
【請求項９】
請求項１に記載のストレージシステムであって、
各ディスクドライブへのアクセス頻度に応じて各ディスクドライブの電源オン／オフを制御する電源制御部を更に備える、ストレージシステム。
【請求項１０】
複数の論理デバイスによって多重化された論理ボリュームをホスト計算機に提供するストレージシステムであって、
前記複数の論理デバイスの記憶領域を提供する複数のディスクドライブと、
各ディスクドライブを制御するコントローラと、
前記ホスト計算機から各ディスクドライブへのアクセス頻度に応じて各ディスクドライブの電源オン／オフを制御する電源制御部と、を備え、
前記コントローラは、前記ホスト計算機から前記論理ボリュームへのデータ読み出し要求を受けると、データ読み出しが要求される論理ボリュームに割り当てられた各論理デバイスの電源状態と電源オフ時刻とからデータを読み出す論理デバイスを選択し、選択された論理デバイスの電源をオンに制御し、選択された論理デバイスからデータを読み出し、前記ホスト計算機から前記論理ボリュームへデータ書き込み要求を受けると、データ書き込みが要求される論理ボリュームに割り当てられた各論理デバイスの電源をオンに制御するとともに、データ書き込みが要求される論理ボリュームに割り当てられた各論理デバイスにデータを多重書きする、ストレージシステム。
【請求項１１】
複数の論理デバイスによって多重化された論理ボリュームをホスト計算機に提供するストレージシステムの制御方法であって、
前記ホスト計算機から前記論理ボリュームへのデータ読み出し要求を受信するステップと、
データ読み出しが要求される論理ボリュームに割り当てられた各論理デバイスの電源状態と電源オフ時刻とからデータを読み出す論理デバイスを選択するステップと、
選択された論理デバイスの電源をオンに制御するステップと、
選択された論理デバイスからデータを読み出すステップと、
を備えるストレージシステムの制御方法。
【請求項１２】
請求項１１に記載のストレージシステムの制御方法であって、
前記ホスト計算機から前記論理ボリュームへのデータ書き込み要求を受信するステップと、
データ書き込みが要求される論理ボリュームに割り当てられた全ての論理デバイスの電源をオンに制御するステップと、
データ書き込みが要求される論理ボリュームに割り当てられた全ての論理デバイスにデータを多重書きするステップと、
を更に備えるストレージシステムの制御方法。
【請求項１３】
請求項１１に記載のストレージシステムの制御方法であって、
データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスの電源がオフであるときには、前記データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスのうち電源オフ時刻が最も古い論理デバイスを選択するステップと、
選択された論理デバイスの電源をオンに制御するステップと、
選択された論理デバイスからデータを読み出すステップと、
を更に備えるストレージシステムの制御方法。
【請求項１４】
請求項１１に記載のストレージシステムの制御方法であって、
データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスのうち一部の論理デバイスが電源オンであるときには、電源オンの論理デバイスからデータを読み出すステップを更に備える、ストレージシステムの制御方法。
【請求項１５】
請求項１１に記載のストレージシステムの制御方法であって、
データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスの電源がオフであるときには、前記データ読み出し要求を受けた時刻と電源オフ時刻との時間差が予め定められた許容期間を超えている論理デバイスを選択するステップと、
選択された論理デバイスの電源をオンに制御するステップと、
選択された論理デバイスからデータを読み出すステップと、
を更に備えるストレージシステムの制御方法。
【請求項１６】
請求項１１に記載のストレージシステムの制御方法であって、
前記論理ボリュームに割り当てられる複数の論理デバイスのうち少なくとも一部の論理デバイスは、前記ストレージシステムに外部接続された他のストレージシステムが有するディスクドライブによって提供される記憶領域である、ストレージシステムの制御方法。
【請求項１７】
請求項１１に記載のストレージシステムの制御方法であって、
前記論理ボリュームに割り当てられる論理デバイスの数を前記論理ボリュームが属するストレージクラス又は記論理ボリュームに格納されるファイルが属するストレージクラスに基づいて設定するステップを更に備える、ストレージシステムの制御方法。
【請求項１８】
請求項１１に記載のストレージシステムの制御方法であって、
前記ホスト計算機から多重化の指示を受けた論理ボリュームに複数の論理デバイスを割り当てるステップを更に備える、ストレージシステムの制御方法。
【請求項１９】
請求項１１に記載のストレージシステムの制御方法であって、
前記論理ボリュームに割り当てられる各論理デバイスは、異なる電源制御グループに属している、ストレージシステムの制御方法。
【請求項２０】
請求項１１に記載のストレージシステムの制御方法であって、
各ディスクドライブへのアクセス頻度に応じて各ディスクドライブの電源オン／オフを制御するステップを更に備える、ストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の論理デバイスによって多重化された論理ボリュームをホスト計算機に提供するストレージシステム及びその制御方法に関する。
【背景技術】
【０００２】
近年、ストレージシステムの管理方法として、データライフサイクル管理が注目されている。データライフサイクル管理は、時間と共に変化するデータの価値に応じて、ストレージシステム間のデータマイグレーションを管理することにより、コスト効率のよいデータ管理を実現する概念である。例えば、メールシステムは、企業等の基幹システムに位置付けられているので、高性能かつ高信頼性を有するハイエンドストレージシステムが必要である。数週間経過したメールはアクセス頻度が低下するので、ハイエンドストレージシステムからニアラインストレージシステムにデータを移動させる。ニアラインストレージシステムは、ハイエンドストレージシステムと比較すると、性能や信頼性は劣るものの、低価格というメリットがあり、必要に応じて即時アクセスが可能である。そして、ニアラインストレージシステムにデータを移動してから１〜２年経過した後に、テープ媒体にデータを移動させ、保管庫に保管する。
【０００３】
データライフサイクル管理の考えを更に一歩進めた技術として、アクセス頻度の少ないディスクドライブの回転を停止したり或いは電源をオフにしたりすることにより、ストレージシステムの消費電力の低減を図る技術として、ＭＡＩＤ（Massive Arrays of Inactive Disks）と称される技術が知られている。例えば、特開２００５−１５７７１０号公報には、ストレージシステムに接続された計算機からの指示に基づいて、ストレージシステムが提供する論理ボリュームを構成するディスクドライブの電源をオン／オフ制御する技術が提案されている。
【特許文献１】特開２００５−１５７７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、ディスクドライブの電源を頻繁にオン／オフ切り替えしたり、或いはディスクドライブを頻繁に回転／停止させたりすると、ディスクドライブの経年劣化を早め、故障確率の増加と消費電力の増大を招くという問題が生じる。このため、ディスクドライブの電源を頻繁にオン／オフ切り替えしたり、或いはディスクドライブを頻繁に回転／停止させたりしない方が望ましい。
【０００５】
例えば、同一データが複数のディスクドライブに分散されている場合には、どのディスクドライブからデータを読み出してもよいが、データを読み出すディスクドライブを均等に分散すると、ディスクドライブの電源をオン／オフ切り替えする頻度が増加するため、ディスクドライブの故障確率の増加と消費電力の増大を招くという問題が生じる。
【０００６】
更に、ＭＡＩＤ技術により消費電力を低減するには、ディスクドライブの回転を止めたり或いは電源をオフにしたりする必要があるが、ディスクドライブの故障の有無は、ディスクドライブを動作させたり、或いはディスクドライブにデータアクセスしないと検出できない。ディスクドライブの電源を長期間にわたりオフにしたままにすると、データ復旧可能な範囲の台数を超えてディスクドライブが故障したとしても、電源オフの期間中は、ディスクドライブの障害を検出することができず、データロストとなる危険性がある。
【０００７】
そこで、本発明は、アクセス頻度に応じてディスクドライブの電源をオン／オフ制御するストレージシステムにおいて、ディスクドライブの電源をオン／オフ切り替えする頻度を少なくするとともに、複数のディスクドライブの中から電源オンに制御されるディスクドライブの割合を低減することを課題とする。また、本発明は、アクセス頻度に応じてディスクドライブの電源をオン／オフ制御するストレージシステムにおいて、データロストの確率を低減することを課題とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明のストレージシステムは、複数の論理デバイスの記憶領域を提供する複数のディスクドライブを備えており、複数の論理デバイスによって多重化された論理ボリュームをホスト計算機に提供する。このストレージシステムは、ホスト計算機から論理ボリュームへのデータ読み出し要求を受けると、データ読み出しが要求される論理ボリュームに割り当てられた各論理デバイスの電源状態と電源オフ時刻とからデータを読み出す論理デバイスを選択し、選択された論理デバイスの電源をオンに制御して、選択された論理デバイスからデータを読み出す。また、このストレージシステムは、ホスト計算機から論理ボリュームへデータ書き込み要求を受けると、データ書き込みが要求される論理ボリュームに割り当てられた各論理デバイスの電源をオンに制御するとともに、データ書き込みが要求される論理ボリュームに割り当てられた各論理デバイスにデータを多重書きする。
【０００９】
例えば、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスの電源がオフであるときには、ストレージシステムは、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスのうち電源オフ時刻が最も古い論理デバイスを選択し、選択された論理デバイスの電源をオンに制御して、選択された論理デバイスからデータを読み出す。これにより、特定のディスクドライブの電源が長期間オフのままになることを抑制し、電源オフ期間中にディスクドライブに障害が発生したとしても、障害を早期に発見できる。
【００１０】
例えば、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスのうち一部の論理デバイスが電源オンであるときには、ストレージシステムは、電源オンの論理デバイスからデータを読み出す。これにより、ディスクドライブの電源をオン／オフ切り替えする頻度を少なくするとともに、複数のディスクドライブの中から電源オンに制御されるディスクドライブの割合を低減できる。
【００１１】
例えば、データ読み出しが要求される論理ボリュームに割り当てられた複数の論理デバイスの電源がオフであるときには、ストレージシステムは、データ読み出し要求を受けた時刻と電源オフ時刻との時間差が予め定められた許容期間を超えている論理デバイスを選択し、選択された論理デバイスの電源をオンに制御して、選択された論理デバイスからデータを読み出す。これにより、特定のディスクドライブの電源が長期間オフのままになることを抑制し、電源オフ期間中にディスクドライブに障害が発生したとしても、障害を早期に発見できる。
【発明の効果】
【００１２】
本発明によれば、アクセス頻度に応じてディスクドライブの電源をオン／オフ制御するストレージシステムにおいて、ディスクドライブの電源をオン／オフ切り替えする頻度を少なくするとともに、複数のディスクドライブの中から電源オンに制御されるディスクドライブの割合を低減できる。また、ディスクドライブの障害によるデータロストが発生する確率を低減できる。
【発明を実施するための最良の形態】
【００１３】
以下、各図を参照しながら本発明の実施例について説明する。各実施例は、特許請求の範囲を限定するものではなく、また実施例で説明されている特徴の全てが発明の解決手段に必須であるとは限らない。
【実施例１】
【００１４】
図１は実施例１に関わる計算機システム１０のハードウェア構成を示す。計算機システム１０は、ホスト計算機１、及びストレージシステム２を備える。ホスト計算機１とストレージシステム２とは、通信ネットワーク３を介して接続されている。通信ネットワーク３は、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、ＷＡＮ（Wide Area Network）、インターネット、専用回線、公衆回線等である。
【００１５】
ホスト計算機１は、主記憶装置１１、ＣＰＵ１２、及び入出力インターフェース１３を備える。ＣＰＵ１２は、主記憶装置１１に格納されている多重度指示処理プログラム１１００の命令コードをロードして解釈実行する。入出力インターフェース１３は、通信ネットワーク３を介してストレージシステム２にアクセスするためのインターフェースであり、例えば、ホストバスアダプタ等である。
【００１６】
多重度指示処理プログラム１１００は、ホスト計算機１が認識する論理的な記憶領域である論理ボリュームの多重度、又は論理ボリュームに格納されるファイルの多重度をストレージシステム２に指示する。多重度指示処理プログラム１１００の詳細については、後述する。
【００１７】
ストレージシステム２は、コントローラ２０、複数のディスクドライブ２５ａ，２５ｂ、及び電源制御回路２９を備える。コントローラ２０は、メインメモリ２１、ＣＰＵ２２、チャネルアダプタ２３、及びディスクアダプタ２４を備える。メインメモリ２１は、論理ユニット管理テーブル１００、論理デバイス管理テーブル２００、電源制御グループ管理テーブル３００、多重度設定処理プログラム２１００、論理デバイス多重割当処理プログラム２２００、論理デバイス割当解除処理プログラム２３００、多重化ボリューム出力処理プログラム２４００、電源制御処理プログラム２５００、及び多重化ボリューム入力処理プログラム２６００を格納する。ＣＰＵ２２は、メインメモリ２１から各種の処理プログラム２１００〜２６００をロードして、解釈実行する。チャネルアダプタ２３は、ホスト計算機１とストレージシステム２との間で通信ネットワーク３を介して入出力データを送受信したり、或いはホスト計算機１から発行される多重度指示を受信したりするためのホストインターフェースである。多重度指示の詳細については後述する。ディスクアダプタ２４は、ＣＰＵ２１とディスクドライブ２５ａ，２５ｂとの間でデータを送受信するためのドライブインターフェースである。
【００１８】
尚、ストレージシステム２は、複数のコントローラ２０を備えてもよい。コントローラ２０は、複数のチャネルアダプタ２３又は複数のディスクアダプタ２４を備えてもよい。
【００１９】
各ディスクドライブ２５ａ，２５ｂは、データを格納するための物理的な記憶領域を有する物理デバイスであり、例えば、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブ等のストレージデバイスである。
【００２０】
複数のディスクドライブ２５ａのそれぞれが提供する論理的な記憶領域が集合して一つのＲＡＩＤグループ２６ａが定義される。例えば、４つのディスクドライブ２５ａを一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのディスクドライブ２５ａを一組としてグループ化することにより（７Ｄ＋１Ｐ）、論理的な記憶領域であるＲＡＩＤグループ２６ａが定義される。論理デバイス２７ａは、ＲＡＩＤグループ２６ａの記憶領域上に定義される。つまり、論理デバイス２７ａは、一つ以上の各ディスクドライブ２５ａが有する物理的な記憶領域を論理的に分割した記憶領域を一つ或いは複数含む記憶領域である。論理デバイス２７ａに格納されるデータとそのデータから生成されたパリティは、複数のディスクドライブ２５ａに分散されて格納される。
【００２１】
複数のディスクドライブ２５ｂのそれぞれが提供する論理的な記憶領域が集合して一つのＲＡＩＤグループ２６ｂが定義される。例えば、４つのディスクドライブ２５ｂを一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのディスクドライブ２５ｂを一組としてグループ化することにより（７Ｄ＋１Ｐ）、論理的な記憶領域であるＲＡＩＤグループ２６ｂが定義される。論理デバイス２７ｂ，２７ｃは、ＲＡＩＤグループ２６ｂの記憶領域上に定義される。つまり、各論理デバイス２７ｂ，２７ｃは、一つ以上の各ディスクドライブ２５ｂが有する物理的な記憶領域を論理的に分割した記憶領域を一つ或いは複数含む記憶領域である。各論理デバイス２７ｂ，２７ｃに格納されるデータとそのデータから生成されたパリティは、複数のディスクドライブ２５ｂに分散されて格納される。
【００２２】
それぞれの論理デバイス２７ａ，２７ｂには、それぞれの論理デバイス２７ａ，２７ｂをストレージシステム２内で一意に識別するための論理デバイスＩＤがアサインされる。論理デバイスＩＤは、例えば、論理デバイス番号（ＬＤＥＶ＃）である。
【００２３】
論理ユニット２８ａは、複数の論理デバイス２７ａ，２７ｂが割り当てられた論理的な記憶領域であり、論理ユニット２８ｂは、一つの論理デバイス２７ｃが割り当てられた論理的な記憶領域である。説明の便宜上、論理ユニット２８ａは、複数の論理デバイス２７ａ，２７ｂによって多重化されており、論理ユニット２８ｂは、多重化されていない構成例を示すが、本発明はこの構成例に限られるものではない。ホスト計算機１は、各論理ユニット２８ａ，２８ｂを一つの論理ボリュームとして認識する。それぞれの論理ユニット２８ａ，２８ｂには、それぞれの論理ユニット２８ａ，２８ｂをコントローラ２０内で一意に識別するための論理ユニットＩＤがアサインされる。論理ユニットＩＤは、例えば、ＣＣＡ（Channel Connection Address）又はＬＵＮ（Logical Unit Number）である。
【００２４】
尚、ホスト計算機１がＵＮＩＸ（登録商標）系のシステムである場合には、論理ユニット２７ａ，２７ｂは、デバイスファイル（Device File）に対応付けられる。ホスト計算機５１がＷｉｎｄｏｗｓ（登録商標）系のシステムである場合には、論理ユニット２７ａ，２７ｂは、ドライブレター（ドライブ名）に対応付けられる。
【００２５】
計算機１内のプログラムから論理ボリュームを一意に識別する識別子としての論理ボリュームＩＤには、論理ユニットＩＤとは異なる識別子が定義される。論理ボリュームＩＤは、例えば、デバイス番号（ＤＥＶＮ）又はデバイスファイル名（例えば、/dev/hdaなど）である。論理ボリュームＩＤと論理ユニットＩＤとの対応関係は、ホスト計算機１の管理者によって、ホスト計算機１のデバイス設定ファイル（図示せず）に定義される。デバイス設定ファイルは、ホスト計算機１が起動するときに主記憶装置１１に読み込まれる。
【００２６】
尚、以下の説明では、ディスクドライブ２５ａ，２５ｂを区別する必要がないときは、ディスクドライブ２５と記す。ＲＡＩＤグループ２６ａ，２６ｂを区別する必要がないときは、ＲＡＩＤグループ２６と記す。論理デバイス２７ａ，２７ｂを区別する必要がないときは、論理デバイス２７と記す。論理ユニット２８ａ，２８ｂを区別する必要がないときは、論理ユニット２８と記す。
【００２７】
電源制御回路２９は、各ディスクドライブ２５の電源を電源制御グループ単位でオン／オフ制御する。電源制御グループとは、電源制御を目的として複数のディスクドライブ２５をグループ化したものであり、同一の電源制御グループに属する全てのディスクドライブ２５は、電源制御回路２９によって、同時に電源オン又は電源オフの何れかに制御される。ディスクドライブ２５がＲＡＩＤ構成されている場合には、電源制御グループは、一つ以上のＲＡＩＤグループによって構成される。ディスクドライブ２５がＲＡＩＤ構成されてない場合には、電源制御グループは、一つ以上のディスクドライブ２５によって構成される。電源制御回路２９は、ＣＰＵ２２からの指示に応答して、電源制御グループの電源状態（電源オン又は電源オフ）をＣＰＵ２２に通知する機能を有する。
【００２８】
尚、電源制御回路２９は、ディスクドライブ２５の電源オン／電源オフを制御する替わりに、ディスクドライブ２５の回転／停止を制御してもよい。電源制御回路２９がディスクドライブ２５の回転／停止を制御する場合は、以下に説明する各処理において、「ディスクドライブ２５の電源オン」を「ディスクドライブ２５の回転」に置き換え、「ディスクドライブ２５の電源オフ」を「ディスクドライブ２５の停止」に置き換えればよい。
【００２９】
電源制御回路２９は、アクセス頻度の低い又は長期間アクセスのない論理ユニット２８の記憶領域を提供するディスクドライブ２５の電源をオフに制御することにより、消費電力の低減を図る。しかし、ディスクドライブ２５の電源を長期間にわたりオフにしたままにすると、データ復旧可能な範囲の台数を超えてディスクドライブ２５が故障したとしても、電源オフの期間中は、ディスクドライブ２５の障害を検出することができず、データロストとなる危険性がある。この問題を解決するため、一つの論理ユニット２８に複数の論理デバイス２７を割り当てることにより、論理ユニット２８を多重化する。ホスト計算機１から論理ユニット２８へデータの読み込みが要求されると、コントローラ２０は、論理ユニット２８に割り当てられた複数の論理デバイス２７の中から、各論理デバイス２７の電源状態及び電源オフ時刻に基づいて、一つの論理デバイス２７を選択し、選択した論理デバイス２７からデータを読み出す。論理デバイス多重割当処理プログラム２２００は、論理ユニット２８を複数の論理デバイス２７によって多重化する処理を行う。多重化ボリューム出力処理プログラム２４００は、複数の論理デバイス２７によって多重化された論理ユニット２８にデータを書き込む処理を行う。多重化ボリューム入力処理プログラム２６００は、複数の論理デバイス２７によって多重化された論理ユニット２８からデータを読み出す処理を行う。
【００３０】
図２は計算機システム１０の制御処理に関わる機能ブロックを示す。ホスト計算機１内のＣＰＵ１２は、多重度指示処理プログラム１１００の命令コードを読み出して解釈実行する。多重度指示処理プログラム１１００を実行するＣＰＵ１２は、論理ボリューム又はファイルに付与されたストレージクラスに基づいて、一つの論理ユニット２８に割り当てられる論理デバイス２７の数（要求多重度）を指定した上で、ストレージシステム２内のコントローラ２０に論理ユニット２８の多重化を要求する。
【００３１】
論理ユニット２８の多重化要求を受けたコントローラ２０内のＣＰＵ２２は、多重度設定処理プログラム２１００の命令コードを読み出して解釈実行する。多重度設定処理プログラム２１００を実行するＣＰＵ２２は、論理ユニット管理テーブル１００に要求多重度を記録するとともに、論理デバイス多重割当処理プログラム２２００の命令コードを読み出して解釈実行する。
【００３２】
論理デバイス多重割当処理プログラム２２００を実行するＣＰＵ２２は、論理デバイス管理テーブル２００から未割り当ての論理デバイス２７を検索し、検索した論理デバイス２７を論理ユニット２８に割り当てる。更に、ＣＰＵ２２は、論理ユニット２８に割り当てられた論理デバイス２７の論理デバイスＩＤを論理ユニット管理テーブル１００に登録する。ＣＰＵ２２は、一つの論理ユニット２８に割り当てられる全ての論理デバイス２７に書き込まれるデータを同一にするため、一つの論理ユニット２８に既に割り当てられている論理デバイス２７に書き込まれているデータを、その論理ユニット２８に新たに割り当てられる論理デバイス２７に複製する。
【００３３】
複数の論理デバイス２７によって多重化された一つの論理ユニット２８へホスト計算機１がデータの書き込みを要求すると、ストレージシステム２内のＣＰＵ２２は、多重化ボリューム出力処理プログラム２４００の命令コードを読み出して解釈実行し、データ書き込みが要求される論理ユニット２８に割り当てられた各論理デバイス２７の内容を多重書きにより一致させる。論理ユニット２８へのデータ書き込み後、同一の電源制御グループに属する全てのディスクドライブ２５に割り当てられている全ての論理デバイス２７に一定期間アクセスがない場合、ＣＰＵ２２は、電源制御処理プログラム２５００の命令コードを読み出して解釈実行し、同一の電源制御グループに属する全てのディスクドライブ２５の電源をオフにする指示を電源制御回路２９に送信し、電源制御グループ管理テーブル３００に登録されている電源状態と電源オフ時刻とを更新する。
【００３４】
一方、複数の論理デバイス２７によって多重化された一つの論理ユニット２８へホスト計算機１がデータの読み取りを要求すると、ストレージシステム２内のＣＰＵ２２は、多重化ボリューム入力処理プログラム２６００の命令コードを読み出して解釈実行し、データ読み取りが要求される論理ユニット２８に割り当てられた各論理デバイス２７の電源状態と電源オフ時刻とを電源制御グループ管理テーブル３００から求める。そして、ＣＰＵ２２は、各論理デバイス２７の電源状態と電源オフ時刻とに基づいて、一つの論理デバイス２７を選択し、選択した論理デバイス２７からデータを読み出す。
【００３５】
ホスト計算機１が論理ユニット２８の要求多重度の変更をストレージシステム２に指示すると、ストレージシステム２内のＣＰＵ２２は、論理デバイス割当解除処理プログラム２３００の命令コードを読み出して解釈実行し、論理ユニット２８に割り当てられている複数の論理デバイス２７のうち一部の論理デバイス２７を開放する。
【００３６】
図３は電源状態と電源オフ時刻とからデータを読み出す論理デバイス２７を決定する処理の概要を示すタイムチャートである。同図において、ハッチングを付した部分は、電源オン状態を示しており、ハッチングを付してない部分は、電源オフ状態を示している。説明を簡略化するため、以下の説明では、一つのＲＡＩＤグループ２６と一つの電源制御グループが一対一の対応関係にあるものとする。ＲＡＩＤグループ２６ａに属する論理デバイス２７ａと、ＲＡＩＤグループ２６ｂに属する論理デバイス２７ｂとは、それぞれ異なる電源制御グループに属する。ＲＡＩＤグループ２６ｂに属する論理デバイス２７ｂと、ＲＡＩＤグループ２６ｂに属する論理デバイス２７ｃとは、それぞれ同一の電源制御グループに属する。異なる電源制御グループに属する論理デバイス２７ａ，２７ｂは、異なるタイミングで電源のオン／オフが制御される。同一の電源制御グループに属する論理デバイス２７ｂ，２７ｃは、同一のタイミングで電源のオン／オフが制御される。尚、上述の如く、論理ユニット２８ａには、複数の論理デバイス２７ａ，２７ｂが割り当てられており、論理ユニット２８ｂには、単一の論理デバイス２７ｃが割り当てられている。
【００３７】
ホスト計算機１から論理ユニット２８ａに読み出し要求のある「読み出し１」のタイミングでは、論理ユニット２８ａに割り当てられている論理デバイス２７ａの記憶領域を提供するディスクドライブ２５ａも、論理デバイス２７ｂの記憶領域を提供するディスクドライブ２５ｂも、共に電源オフの状態にある。複数の論理デバイス２７によって多重化されている論理ユニット２８にデータ読み出し要求がなされた場合において、読み出し要求のある論理ユニット２８に割り当てられている何れの論理デバイス２７も電源がオフである場合には、ＣＰＵ２２は、電源制御グループ管理テーブル３００を参照し、複数の論理デバイス２７の中から電源オフ時刻が最も古い論理デバイス２７を一つ選択し、選択した論理デバイス２７からデータを読み出す。ディスクドライブ２５の電源オフの期間が長くなると、その間に障害が生じ、故障を発見する確率が高くなる。このため、ディスクドライブ２５の電源がオフになっている期間は、できるだけ短い方が好ましい。図３に示す例では、論理デバイス２７ａが電源オフになった時刻よりも、論理デバイス２７ｂが電源オフになった時刻の方が古いので、ＣＰＵ２２は、論理デバイス２７ｂの電源をオンにし、論理デバイス２７ｂからデータを読み出す。データ読み出し後、一定期間、論理デバイス２７ｂにアクセスがないときには、ＣＰＵ２２は、論理デバイス２７ｂの電源をオフにする。
【００３８】
ホスト計算機１から論理ユニット２８ａに読み出し要求のある「読み出し２」のタイミングでは、論理ユニット２８ａに割り当てられている論理デバイス２７ａの記憶領域を提供するディスクドライブ２５ａは電源オフの状態にあり、論理デバイス２７ｂの記憶領域を提供するディスクドライブ２５ｂは電源オンの状態にある。これは、「アクセス１」のタイミングでＣＰＵ２２が論理デバイス２７ｃからデータを読み取っているので、論理デバイス２７ｃと同じ電源制御グループに属する論理デバイス２７ｂも「アクセス１」のタイミングで電源オンになっているためである。複数の論理デバイス２７によって多重化されている論理ユニット２８にデータ読み出し要求がなされた場合において、読み出し要求のある論理ユニット２８に割り当てられている複数の論理デバイス２７のうち何れかの論理デバイス２７が電源オンの状態にあり、それ以外の論理デバイス２７が電源オフの状態にある場合には、ＣＰＵ２２は、電源制御グループ管理テーブル３００を参照し、電源オンの状態にある論理デバイス２７を一つ選択し、選択した論理デバイス２７からデータを読み出す。これにより、データ読み出し要求の都度、ディスクドライブ２５の電源を頻繁にオン／オフ制御しなくて済むので、消費電力の低減を図ることができる。図３に示す例では、ＣＰＵ２２は、「読み出し２」のタイミングで電源オンの状態にある論理デバイス２７ｂを選択し、選択した論理デバイス２７ｂからデータを読み出す。
【００３９】
但し、複数の論理デバイス２７によって多重化されている論理ユニット２８にデータ読み出し要求がなされた場合において、読み出し要求のある論理ユニット２８に割り当てられている複数の論理デバイス２７のうち何れかの論理デバイス２７が電源オンの状態にあり、それ以外の論理デバイス２７が電源オフの状態にある場合であっても、特定の論理デバイス２７から常時データを読み出すと、他の論理デバイス２７の電源がオフになる期間が長期化するので、電源オフ期間中にディスクドライブ２５に障害が発生しても、障害発生を見落とす可能性がある。このため、ホスト計算機１から論理ユニット２８にデータの読み出しが要求された場合において、論理ユニット２８に割り当てられている複数の論理デバイス２７のうち電源オフ期間が一定期間（以下、許容期間と称する。）を超えている論理デバイス２７が存在する場合には、電源オンの状態にある論理デバイス２７が他に存在しているとしても、電源オフ期間が許容期間を超えた論理デバイス２７を選択し、選択した論理デバイス２７からデータを読み出す。これにより、電源オフ期間中にディスクドライブ２５に障害が発生したとしても、障害を早期に発見できる。図３に示す例では、ホスト計算機１から論理ユニット２８ａに読み出し要求のある「読み出し３」のタイミングでは、論理デバイス２７ｂの電源はオン状態にあるものの、論理デバイス２７ａの電源オフ期間が許容期間を超えているので、ＣＰＵ２２は、論理デバイス２７ａの電源をオンに制御する一方で、論理デバイス２７ｂの電源をオフに制御し、論理デバイス２７ａからデータを読み取る。
【００４０】
尚、許容期間とは、ディスクドライブ２５の電源をオフにしている期間とディスクドライブ２５の故障割合との相関関係などを基準にストレージシステム２の設計者が予め求めた期間であってもよく、或いはユーザが指定した期間であってもよい。
【００４１】
以上、説明したように、ＣＰＵ２２は、複数の論理デバイス２７によって多重化された論理ユニット２８へ読み出し要求がなされた場合には、論理ユニット２８に割り当てられている各論理デバイス２７の電源状態、電源オフ時刻、許容期間経過の有無を基にデータを読み出す論理デバイス２７を一つ選択し、選択した論理デバイス２７からデータを読み出すので、ディスクドライブ２５の電源オン／オフ切り替えの頻度を少なく抑えつつ、しかも、電源オフ期間の長期化を抑制し、障害発見の早期化を可能にしている。
【００４２】
尚、一つの論理ユニット２８を複数の論理デバイス２７で多重化する場合、論理デバイス２７は、できるだけ異なる電源制御グループに分散しているものが望ましい。論理ユニット２８に割り当てられる複数の論理デバイス２７を異なる電源制御グループに分散させておけば、論理ユニット２８に読み出し要求がなされた時点で、論理ユニット２８に割当されている複数の論理デバイス２７のうち何れかの論理デバイス２７の電源がオンになっている確率を高めることができる。これにより、ディスクドライブ２５の電源のオン／オフ切り替えの頻度を抑制できる。
【００４３】
尚、ディスクドライブ２５の種類（ＦＣディスクドライブやＳＡＴＡディスクドライブなどの種別）が異なれば、ディスクドライブ２５の信頼性（故障率）も変わるので、ディスクドライブ２５の種類に応じて適切な許容期間を設定するのが望ましい。例えば、高信頼性のＦＣディスクドライブには、長期間の許容期間を設定する一方で、低信頼性のＳＡＴＡディスクドライブには、短期間の許容期間を設定してもよい。
【００４４】
また、ディスクドライブ２５の稼動時間に応じて許容期間を設定してもよい。稼動時間とは、ディスクドライブ２５の電源がオンに設定されている時間と、ディスクドライブ２５の電源がオフに設定されている時間との総和である。稼動時間が長くなると、ディスクドライブ２５の故障率は増加する傾向にあるので、早めに障害の有無をチェックするのが好ましい。このため、稼動時間が長いディスクドライブ２５に設定される許容期間は、稼動時間が短いディスクドライブ２５に設定される許容期間よりも短い方が望ましい。例えば、稼動時間をある一定時間Ｔで区切り、各稼動時間（稼動時間Ｔ，稼動時間２Ｔ，…，稼動時間ｎＴ（ｎは自然数））について、予め許容期間をストレージシステム２内のメモリ（メインメモリ２１又はその他の不揮発性メモリ）に格納する。
【００４５】
また、重要度の高いデータを格納する論理ユニット２８は、重要度の低いデータを格納する論理ユニット２８よりも、小まめに障害の有無をチェックする必要があるので、論理ユニット２８に格納されたデータの重要度に応じて許容期間を変えるのが望ましい。例えば、重要度の高いデータを格納する論理ユニット２８の記憶領域を提供するディスクドライブ２５に設定される許容期間は、重要度の低いデータを格納する論理ユニット２８の記憶領域を提供するディスクドライブ２５に設定される許容期間よりも短くする。論理ユニット２８の多重度を設定する方法と同様の方法で、論理ユニット２８毎に許容期間を設定してもよい。但し、論理ユニット２８毎に許容期間を設定すると、異なる許容期間が設定されたディスクドライブ２５が同一の電源制御グループに属する場合が生じえるが、このような場合には、同一の電源制御グループ内に属する複数のディスクドライブ２５の中で許容期間が一番短いものを、その電源制御グループの許容期間として設定すればよい。
【００４６】
図４（Ａ），（Ｂ）は論理ユニット管理テーブル１００のテーブル構造を示す。論理ユニット管理テーブル１００は、複数のエントリ１１０ａ，１１０ｂを有する。エントリ１１０ａは、論理ユニット２８ａを管理し、エントリ１１０ｂは、論理ユニット２８ｂを管理する。それぞれのエントリ１１０ａ，１１０ｂは、論理ユニットＩＤ１０１、要求多重度１０２、論理デバイスＩＤ１０３ａ，１０３ｂ、及び最終アクセス時刻１０４を含む。
【００４７】
ここで、論理デバイスＩＤ１０３ａ，１０３ｂは、複数の論理デバイス２７が一つの論理ユニット２８に割り当てられている場合において、各論理デバイス２７の識別子を示す。最終アクセス時刻１０４は、ホスト計算機１が論理ユニット２８にライトアクセス又はリードアクセスした時刻のうち最新の時刻を示す。但し、最終アクセス時刻１０４に替えてホスト計算機１と論理ユニット２８との間のパスがオフラインになった時刻（以下、オフライン時刻と称する。）を用いてもよい。最終アクセス時刻１０４として、オフライン時刻が用いられる場合には、ホスト計算機１と論理ユニット２８との間のパスがオンラインになると、最終アクセス時刻１０４はリセットされる。
【００４８】
以下の説明では、エントリ１１０ａ，１１０ｂを特に区別する必要がないときは、エントリ１１０と記す。論理デバイスＩＤ１０３ａ，１０３ｂを特に区別する必要がないときは、論理デバイスＩＤ１０３と記す。一つの論理ユニット２８に３以上の論理デバイス２７が割り当てられる場合には、一つのエントリ１１０には、３以上の論理デバイスＩＤ１０３が格納される。
【００４９】
図４（Ａ）は、論理ユニット２８ａに論理デバイス２７ａのみが割り当てられている段階の論理ユニット管理テーブル１００を示し、図４（Ｂ）は、論理ユニット２８ａに複数の論理デバイス２８ａ，２８ｂが割り当てられた後の段階の論理ユニット管理テーブル１００を示している。論理ユニット２８ａに割り当てる論理デバイス２７の数を一つ増加すると、エントリ１１０ａの要求多重度は「１」から「２」に変更され、論理デバイスＩＤ１０３ｂに論理デバイス２７ｂの論理デバイスＩＤが追加される。
【００５０】
図５（Ａ），（Ｂ）は論理デバイス管理テーブル２００のテーブル構造を示す。論理デバイス管理テーブル２００は、複数のエントリ２１０ａ，２１０ｂ，２１０ｃ，２１０ｄを有する。エントリ２１０ａは、論理デバイス２７ａを管理し、エントリ２１０ｂは、論理デバイス２７ｂを管理し、エントリ２１０ｃは、論理デバイス２７ｃを管理し、エントリ２１０ｄは、図示されていない他の論理デバイスを管理する。それぞれのエントリ２１０ａ，２１０ｂ，２１０ｃ，２１０ｄは、論理デバイスＩＤ２０１、論理ユニットＩＤ２０２、電源制御グループＩＤ２０３、外部ボリューム識別情報（記憶装置ＩＤ２０４、及びボリュームＩＤ２０５）、及び多重化フラグ２０６を含む。
【００５１】
ここで、電源制御グループＩＤ２０３は、論理デバイス２７の記憶領域を提供するディスクドライブ２５が属する電源制御グループを一意に識別するための識別子である。記憶装置ＩＤ２０４は、ストレージシステム２を一意に識別するための識別子である。ボリュームＩＤ２０５は、ストレージシステム２内で論理デバイス２７を一意に識別するための識別子である。但し、全ての論理デバイス２７が同一のストレージシステム２内に存在する場合には、記憶装置ＩＤ２０４とボリュームＩＤ２０５は不要である。多重化フラグ２０６は、多重化を必要とする論理デバイス２７であるか否かを示す情報である。多重化フラグ２０６の値は、ディスクドライブ単位、論理デバイス単位、或いはストレージシステム単位で設定することができる他、ユーザが指定した値を設定できる。例えば、高信頼性のＦＣディスクドライブからなるディスクドライブ２５の多重化フラグ２０６を「否」に設定し、低信頼性のＳＡＴＡディスクドライブからなるディスクドライブ２５の多重化フラグ２０６の値を「要」に設定する。ＣＰＵ２２は、多重化フラグ２０６の値が「要」に設定されている論理デバイス２７が割り当てられている論理ユニット２８の要求多重度１０２が２以上の値に設定されたときに、論理ユニット２８に複数の論理デバイス２７を割り当てて、論理ユニット２８を多重化する。但し、ストレージシステム２の型名などからストレージシステム２内の全てのディスクドライブ２５がＳＡＴＡディスクドライブであることが判別できるような場合には、多重化フラグ２０６は必ずしも必要ではない。
【００５２】
以下の説明では、エントリ２１０ａ，２１０ｂ，２１０ｃ，２１０ｄを特に区別する必要がないときは、エントリ２１０と記す。
【００５３】
図５（Ａ）は、論理ユニット２８ａに論理デバイス２７ａのみが割り当てられている段階の論理デバイス管理テーブル２００を示し、図５（Ｂ）は、論理ユニット２８ａに複数の論理デバイス２８ａ，２８ｂが割り当てられた後の段階の論理デバイス管理テーブル２００を示している。論理ユニット２８ａの要求多重度を「１」から「２」に変更すると、論理ユニット２８ａに新たに割り当てられた論理デバイス２７ｂを管理するエントリ２１０ｂの論理ユニットＩＤ２０２に、論理ユニット２８ａの識別子が設定される。
【００５４】
図６は電源制御グループ管理テーブル３００を示す。電源制御グループ管理テーブル３００は、複数のエントリ３１０ａ，３１０ｂを有する。エントリ３１０ａは、ＲＡＩＤグループ２６ａからなる電源制御グループを管理し、エントリ３１０ｂは、ＲＡＩＤグループ２６ｂからなる電源制御グループを管理する。それぞれのエントリ３１０ａ，３１０ｂは、電源制御グループＩＤ３０１、電源状態３０２、電源オフ時刻３０３、及び電源制御グループ構成情報（記憶装置ＩＤ３０４、及びＲＡＩＤグループＩＤ３０５）を含む。
【００５５】
ここで、電源制御グループＩＤ２０３は、論理デバイス２７の記憶領域を提供するディスクドライブ２５が属する電源制御グループを一意に識別するための識別子である。電源状態３０２は、同一の電源制御グループに属する全てのディスクドライブ２５が「電源オン」の状態にあるか又は「電源オフ」の状態にあるかを示す。電源オフ時刻３０３は、同一の電源制御グループに属する全てのディスクドライブ２５の電源がオフに制御された時刻の中で最新の時刻を示す。電源オフ時刻３０３は、電源状態３０２が「電源オフ」に設定されているときにのみ有効である。記憶装置ＩＤ３０４は、ストレージシステム２を一意に識別するための識別子である。但し、全ての論理デバイス２７が同一のストレージシステム２内に存在する場合には、記憶装置ＩＤ３０４は不要である。ＲＡＩＤグループＩＤ３０５は、同一の電源制御グループに属するＲＡＩＤグループの識別子である。
【００５６】
以下の説明では、エントリ３１０ａ，３１０ｂを特に区別する必要がないときは、エントリ３１０と記す。
【００５７】
ところで、ユーザは、ファイル、論理ボリューム、又は論理ボリュームのグループが属するストレージクラス毎に要求多重度を設定できる。ストレージクラスとは、ファイル、又はファイルを格納する領域（ディレクトリ等）に対する入出力応答目標時間（ホストアクセス目標時間）やバックアップの有無等のストレージ属性のリストである。ＣＰＵ２２は、同一の論理ボリュームにストレージクラスの異なるファイルが混在しないように、ファイルを格納するための記憶領域を論理ボリュームに割り当てる。
【００５８】
図７は多重度指示処理プログラム１１００が実行する多重度指示処理を記述したフローチャートである。ユーザが論理ボリューム又は論理ボリュームのグループに対する要求多重度を変更したとき、或いは要求多重度を２以上に設定したとき、又は要求多重度が２以上に設定されたストレージクラスに属するファイルが論理ボリュームに割り当てられたときに、多重度指示処理が実行される。
【００５９】
まず、ＣＰＵ１２は、ユーザから要求多重度に関する指示を受けると、その指示が論理ボリューム又は論理ボリュームのグループに対する要求多重度を変更する要求であるか否かをチェックする（Ｓ１１０１）。ユーザからの指示が論理ボリューム又は論理ボリュームのグループに対する要求多重度を変更する要求である場合には（ステップ１１０１；ＹＥＳ）、ＣＰＵ１２は、要求多重度が変更される論理ボリュームに入出力要求を発行し（ステップ１１０４）、多重度設定要求コマンドと要求多重度とをストレージシステム２に送信する（ステップＳ１１０５）。
【００６０】
一方、ユーザからの指示が論理ボリューム又は論理ボリュームのグループに対する要求多重度を変更する要求ではなく（ステップ１０１１；ＮＯ）、ファイル割当の場合には、ＣＰＵ１２は、ストレージクラスの条件を満たす論理ボリュームにファイルを格納するための記憶領域を割り当て（ステップ１１０２）、ファイルの記憶領域が割り当てられた論理ボリュームに対して多重度設定要求がなされているか否かをチェックする（ステップ１１０３）。
【００６１】
ファイルの記憶領域が割り当てられた論理ボリュームに対して多重度設定要求がなされていれば（ステップ１１０３；ＹＥＳ）、ＣＰＵ１２は、その論理ボリュームに入出力要求を発行し（ステップ１１０４）、多重度設定要求コマンドと要求多重度とをストレージシステム２に送信する（ステップＳ１１０５）。
【００６２】
一方、ファイルの記憶領域が割り当てられた論理ボリュームに対して多重度設定要求がなされていなければ（ステップ１１０３；ＮＯ）、ＣＰＵ１２は、多重度指示処理を終了する。
【００６３】
尚、デバイス設定ファイルから論理ボリュームに対応する論理ユニットＩＤを求め、ステップ１１０５において、多重度設定要求コマンドと要求多重度とともに、論理ユニットＩＤもストレージシステム２に送信すれば、ストレージシステム２において、要求多重度を変更する論理ボリュームを識別できるため、ステップ１１０４では、要求多重度を変更する論理ボリューム以外の論理ボリュームに入出力要求を発行してもよい。
【００６４】
図８は多重度設定処理プログラム２１００が実行する多重度設定処理を記述したフローチャートである。多重度設定処理プログラム２１００は、論理ユニット２８を有するストレージシステム２に接続されたホスト計算機１から論理ユニット２８の要求多重度の変更を指示する多重度設定要求コマンドを受けたＣＰＵ２２によって実行される。
【００６５】
まず、ＣＰＵ２２は、要求多重度の変更が要求されている論理ボリュームに対応する論理ユニットＩＤに一致する論理ユニットＩＤ１０１を有するエントリ１１０を論理ユニット管理テーブル１００から検索する（ステップ２１０１）。
【００６６】
次に、ＣＰＵ２２は、ホスト計算機１が指定した要求多重度がエントリ１１０に登録されている要求多重度１０２より小さいか否かをチェックする（ステップ２１０２）。ホスト計算機１が指定した要求多重度がエントリ１１０に登録されている要求多重度１０２より小さいならば（ステップ２１０２；ＹＥＳ）、ＣＰＵ２２はホスト計算機１が指定した要求多重度とエントリ１１０に登録されている要求多重度１０２との差の数だけ論理デバイス割り当て解除処理プログラム２３００を呼び出して、論理ユニット２８に割り当てられている論理デバイス２７を開放し、開放した論理デバイス２７の論理デバイスＩＤ１０３を論理ユニット管理テーブル１００のエントリ１１０から削除する（ステップ２１０３）。
【００６７】
次に、ＣＰＵ２２は、ホスト計算機１が指定した要求多重度を要求多重度１０２としてエントリ１１０に登録する（ステップ２１０７）。
【００６８】
ホスト計算機１が指定した要求多重度がエントリ１１０に登録されている要求多重度１０２より小くなければ（ステップ２１０２；ＮＯ）、ＣＰＵ２２は、ホスト計算機１が指定した要求多重度がエントリ１１０に登録されている要求多重度１０２より大きいか否かをチェックする（ステップ２１０４）。
【００６９】
ホスト計算機１が指定した要求多重度がエントリ１１０に登録されている要求多重度１０２より大きくなければ（ステップ２１０４；ＮＯ）、ホスト計算機１が指定した要求多重度とエントリ１１０に登録されている要求多重度１０２とは同一であることを意味するので、ＣＰＵ２２は、ホスト計算機１が指定した要求多重度を要求多重度１０２としてエントリ１１０に登録する（ステップ２１０７）。
【００７０】
ホスト計算機１が指定した要求多重度がエントリ１１０に登録されている要求多重度１０２より大きいならば（ステップ２１０４；ＹＥＳ）、ＣＰＵ２２は、論理ユニット２８に割り当て済みの論理デバイス２７が多重化を要するものか否かをチェックする（ステップ２１０５）。論理デバイス２７が多重化を要するものか否かは、論理デバイス管理テーブル２００の多重化フラグ２０６により判定できる。
【００７１】
論理ユニット２８に割り当て済みの論理デバイス２７が多重化を要するものでないならば（ステップ２１０５；ＮＯ）、ＣＰＵ２２は、ホスト計算機１が指定した要求多重度を要求多重度１０２としてエントリ１１０に登録する（ステップ２１０７）。
【００７２】
一方、論理ユニット２８に割り当て済みの論理デバイス２７が多重化を要するものならば（ステップ２１０５；ＹＥＳ）、ＣＰＵ２２は、ホスト計算機１が指定した要求多重度とエントリ１１０に登録されている要求多重度１０２との差の数だけ論理デバイス多重割り当て処理プログラム２２００を呼び出して、論理ユニット２８に論理デバイス２７を新たに割り当て、新たに割り当てられた論理デバイス２７の論理デバイスＩＤ１０３を論理ユニット管理テーブル１００のエントリ１１０に登録し（ステップ２１０６）、ホスト計算機１が指定した要求多重度を要求多重度１０２としてエントリ１１０に登録する（ステップ２１０７）。
【００７３】
図９は論理デバイス多重割当処理プログラム２２００が実行する論理デバイス多重割当処理を記述したフローチャートである。
【００７４】
まず、ＣＰＵ２２は、論理ユニット管理テーブル１００に登録されているエントリ１１０の中から要求多重度を変更する論理ユニット２８を管理するエントリ１１０を検索し、検索したエントリ１１０に登録されている論理デバイスＩＤ１０３に一致する論理デバイスＩＤ２０１を登録しているエントリ２１０を論理デバイス管理テーブル２００から検索する（ステップ２２０１）。例えば、論理ユニット２８ａの要求多重度を変更する場合を例にとると、ＣＰＵ２２は、論理ユニット管理テーブル１００に登録されているエントリ１１０の中から、要求多重度を変更する論理ユニット２８ａを管理するエントリ１１０ａを検索し、検索したエントリ１１０ａに登録されている論理デバイスＩＤ１０３ａ，１０３ｂに一致する論理デバイスＩＤ２０１を登録しているエントリ２１０ａ，２１０ｂを論理デバイス管理テーブル２００から検索する。
【００７５】
次に、ＣＰＵ２２は、ステップ２２０１で検索したエントリ２１０の中から要求多重度を変更する論理ユニット２８に割当済みの論理デバイス２７が属する電源制御グループを識別する電源制御グループＩＤ２０３とは異なる電源制御グループＩＤ２０３を登録し、且つ要求多重度を変更する論理ユニット２８に割当済みの論理デバイス２７が属するストレージシステム２を識別する記憶装置ＩＤ２０４とは異なる記憶装置ＩＤ２０４を登録するエントリ２１０を検索する（ステップ２２０２）。ステップ２２０１で検索したエントリ２１０が複数存在する場合には、その複数のエントリ２１０のうち、どのエントリ２１０に登録されている電源制御グループＩＤ２０３にも記憶装置ＩＤ２０４にも異なる電源制御グループＩＤ２０３と記憶装置ＩＤ２０４とを有するエントリ２１０を検索する。
【００７６】
例えば、論理ユニット２８ａの要求多重度を変更する場合を例にとると、ＣＰＵ２２は、検索したエントリ２１０ａ，２１０ｂの中から要求多重度を変更する論理ユニット２８ａに割当済みの論理デバイス２７ａが属する電源制御グループを識別する電源制御グループＩＤ２０３とは異なる電源制御グループＩＤ２０３を登録し、且つ要求多重度を変更する論理ユニット２８ａに割当済みの論理デバイス２７ａが属するストレージシステム２を識別する記憶装置ＩＤ２０４とは異なる記憶装置ＩＤ２０４を登録するエントリ２１０ｂを検索する。
【００７７】
このように、論理ユニット２８ａを多重化する場合において、論理ユニット２８ａに割当済みの論理デバイス２７ａが属する電源制御グループとは異なる電源制御グループに属する未割り当ての論理デバイス２７ｂを検索するのは、仮に論理デバイス２７ａの電源がオフであっても、他の論理デバイス２７（例えば、論理デバイス２７ｃ）へのアクセスにより、論理デバイス２７ｂの電源がオンになっている確率を高めるためである。更に、論理ユニット２８ａに割当済みの論理デバイス２７ａが属するストレージシステム２とは異なるストレージシステムに属する未割り当ての論理デバイス２７ｂを検索するのは、ストレージシステム２に障害が発生したときに、論理ユニット２８に割り当てられた全ての論理デバイス２７ａ，２７ｂが使用不能になるのを防ぐためである。
【００７８】
検索条件を満たすエントリ２１０が存在するならば（ステップ２２０２；ＹＥＳ）、ＣＰＵ２２は、ステップ２２０５に進む。
【００７９】
一方、検索条件を満たすエントリ２１０が存在してないならば（ステップ２２０２；ＮＯ）、ＣＰＵ２２は、ステップ２２０１で検索したエントリ２１０の中から要求多重度を変更する論理ユニット２８に割当済みの論理デバイス２７が属する電源制御グループを識別する電源制御グループＩＤ２０３とは異なる電源制御グループＩＤ２０３を登録し、且つ論理ユニットＩＤ２０２が登録されていないエントリ２１０を検索する（ステップ２２０３）。
【００８０】
検索条件を満たすエントリ２１０が存在するならば（ステップ２２０３；ＹＥＳ）、ＣＰＵ２２は、ステップ２２０５に進む。
【００８１】
一方、検索条件を満たすエントリ２１０が存在してないならば（ステップ２２０３；ＮＯ）、ＣＰＵ２２は、ステップ２２０１で検索したエントリ２１０の中から論理ユニットＩＤ２０２が登録されていないエントリ２１０を検索する（ステップ２２０４）。
【００８２】
検索条件を満たすエントリ２１０が存在するならば（ステップ２２０４；ＹＥＳ）、ＣＰＵ２２は、ステップ２２０５に進む。
【００８３】
一方、検索条件を満たすエントリ２１０が存在してないならば（ステップ２２０４；ＮＯ）、ＣＰＵ２２は、処理を終了する。
【００８４】
次に、ＣＰＵ２２は、論理ユニット２８に既に割り当てられている論理デバイス２７のデータを、論理ユニット２８に新たに割り当てる論理デバイス２７に複製する（ステップ２２０５）。
【００８５】
次に、ＣＰＵ２２は、論理ユニット２８に割当済みの論理デバイス２７を管理するエントリ１１０に登録されている論理ユニットＩＤ１０１を、ステップ２２０２〜ステップ２２０４において検索したエントリ２１０内の論理ユニットＩＤ２０２に登録する（ステップ２２０６）。
【００８６】
次に、ＣＰＵ２２は、論理ユニット２８に新たに割り当てた論理デバイス２７を識別する論理デバイスＩＤ２０１を多重度設定処理プログラム２１００に返却する（ステップ２２０７）。
【００８７】
図１０は論理デバイス割当解除処理プログラム２３００が実行する論理デバイス割当解除処理を記述したフローチャートである。
【００８８】
まず、ＣＰＵ２２は、要求多重度を変更する論理ユニット２８を管理するエントリ１１０に登録されている複数の論理デバイスＩＤ１０３の中から一つ以上の論理デバイスＩＤ１０３を選択し、選択した論理デバイスＩＤ１０３に一致する論理デバイスＩＤ２０１を登録するエントリ２１０を論理デバイス管理テーブル２００から選択する（ステップ２３０１）。
【００８９】
次に、ＣＰＵ２２は、ステップ２３０１で選択されたエントリ２１０に登録されている論理ユニットＩＤ２０２を削除し（ステップ２３０２）、削除した論理ユニットＩＤ２０２を多重度設定処理プログラム２１００に返却する（ステップ２３０３）。
【００９０】
図１１は多重化ボリューム出力処理プログラム２４００が実行する多重化ボリューム出力処理を記述したフローチャートである。
【００９１】
ホスト計算機１から論理ユニット２８に書き込み要求があると、ＣＰＵ２２は、書き込み要求がなされた論理ユニット２８を識別する論理ユニットＩＤに一致する論理ユニットＩＤ１０１を登録するエントリ１１０に登録されている論理デバイスＩＤ１０３に一致する論理デバイスＩＤ２０１を登録するエントリ２１０を論理デバイス管理テーブル２００から検索する（ステップ２４０１）。
【００９２】
次に、ＣＰＵ２２は、検索したエントリ２１０に登録されている電源制御グループＩＤ２０３に一致する電源制御グループＩＤ３０１を登録するエントリ３１０を電源制御グループ管理テーブル３００から検索する（ステップ２４０２）。
【００９３】
次に、ＣＰＵ２２は、検索したエントリ３１０に登録されている電源状態３０２が「電源オフ」の状態にあるか否かをチェックする（ステップ２４０３）。電源状態３０２が「電源オフ」の状態ならば（ステップ２４０３；ＹＥＳ）、ＣＰＵ２２は、電源制御グループに属する全てのディスクドライブ２５の電源をオンにすることを電源制御回路２９に指示し、電源状態３０２を「電源オン」に更新する（ステップ２４０４）。
【００９４】
一方、電源状態３０２が「電源オン」の状態ならば（ステップ２４０３；ＮＯ）、ＣＰＵ２２は、ステップ２４０５に進む。
【００９５】
次に、ＣＰＵ２２は、論理デバイスＩＤ２０１によって識別される論理デバイス２７にホスト計算機１から送信されるデータを書き込み（ステップ２４０５）、最終アクセス時刻１０４を最新のデータアクセス時刻に更新する（ステップ２４０６）。
【００９６】
ＣＰＵ２２は、書き込み要求がなされた論理ユニット２８を識別する論理ユニットＩＤに一致する論理ユニットＩＤ１０１を登録するエントリ１１０に登録されている論理デバイスＩＤ１０３に対応する論理デバイス２７の全てについて、ステップ２４０１〜ステップ２４０６を実行したか否かをチェックする（ステップ２４０７）。
【００９７】
エントリ１１０に登録されている論理デバイスＩＤ１０３に対応する論理デバイス２７の一部について、ステップ２４０１〜ステップ２４０６を実行してない場合には（ステップ２４０７；ＮＯ）、ＣＰＵ２２は、未実施の論理デバイス２７について、ステップ２４０１〜ステップ２４０６を実行する。
【００９８】
尚、複数の論理デバイス２７が一つの論理ユニット２８に割り当てられている場合において、複数の論理デバイス２７のうち何れか一つの論理デバイス２７を正論理デバイスとし、他の論理デバイス２７を副論理デバイスとしてもよい。この場合、ステップ２４０５の処理に替えて、ＣＰＵ２２は、正論理デバイスのどの領域が更新されたかを示す差分情報を記憶しておき、正論理デバイスの電源がオフになる前に、差分情報を参照して、正論理デバイスから副論理デバイスへ差分データをコピーしてもよい。
【００９９】
また、最終アクセス時刻１０４に替えてオフライン時刻が用いられる場合には、ステップ２４０６の処理に替えて、ホスト計算機１から論理ユニット２８に対するオフライン要求がなされたときに、最終アクセス時刻１０４をオフライン時刻に更新してもよい。
【０１００】
また、ステップ２４０５において、論理デバイス２７へのデータ書き込みが失敗した場合には、ＣＰＵ２２は、書き込みに失敗した論理デバイス２７を識別する論理デバイスＩＤ１０３をエントリ１１０から削除するとともに、論理ユニット２８の多重度を維持するために、論理デバイス多重割当処理プログラム２２００を呼び出して、新たな論理デバイス２７を論理ユニット２８に割り当てる。
【０１０１】
図１２は電源制御処理プログラム２５００が実行する電源制御処理を記述したフローチャートである。
【０１０２】
まず、ＣＰＵ２２は、電源制御グループ管理テーブル３００内のそれぞれのエントリ３１０について、エントリ３１０に登録されている電源制御グループＩＤ３０１に一致する電源制御グループＩＤ２０３を有するエントリ２１０を論理デバイス管理テーブル２００の中から検索し、検索したエントリ２１０内の論理ユニットＩＤ２０２に一致する論理ユニットＩＤ１０１を有するエントリ１１０を論理ユニット管理テーブル１００の中から検索する（ステップ２５０１）。
【０１０３】
次に、検索したエントリ１１０の中から最も現在時刻に近い最終アクセス時刻１０４と現在時刻との時間差が所定の期間（ユーザが指定する期間）を超えていれば（ステップ２５０２；ＹＥＳ）、ＣＰＵ２２は、エントリ３１０に対応する電源制御グループに属する全てのディスクドライブ２５の電源をオフにすることを電源制御回路２９に指示し（ステップ２５０３）、電源オフ時刻３０３を更新する（ステップ２５０４）。
【０１０４】
尚、電源制御処理は、ある一定の時間間隔で実行されるか、多重化ボリューム出力処理又は多重化ボリューム入力処理の後に実行されるか、或いはホスト計算機１からの指示に応答して実行される。ホスト計算機１からの指示により電源制御処理が実行される場合には、ＣＰＵ２２は、最終アクセス時刻１０４を、論理ボリュームのオフラインが指示された時刻に更新すればよい。また、ステップ２５０２の処理に替えて、ＣＰＵ２２は、検索した全てのエントリ１１０に最終アクセス時刻１０４が設定されているか否かをチェックし、全てのエントリ１１０に最終アクセス時刻１０４が設定されているときに、ステップ２５０３〜ステップ２５０４を実行すればよい。
【０１０５】
図１３は多重化ボリューム入力処理プログラム２６００が実行する多重化ボリューム入力処理を記述したフローチャートである。
【０１０６】
ホスト計算機１から論理ユニット２８に読み出し要求があると、ＣＰＵ２２は、読み出し要求がなされた論理ユニット２８を管理するエントリ１１０に登録されている論理デバイスＩＤ１０３に一致する論理デバイスＩＤ２０１を登録するエントリ２１０を論理デバイス管理テーブル２００から検索し、検索したエントリ２１０に登録されている電源制御グループＩＤ２０３に一致する電源制御グループＩＤ３０１を有するエントリ３１０内の電源状態３０２を参照する（ステップ２６０１）。
【０１０７】
次に、ＣＰＵ２２は、論理ユニット２８に割り当てられている全ての論理デバイス２７の電源がオフであるか否かをチェックする（ステップ２６０２）。論理ユニット２８に割り当てられている全ての論理デバイス２７の電源がオフであるならば（ステップ２６０２；ＹＥＳ）、ＣＰＵ２２は、電源オフ時刻３０３が最も古い電源制御グループに属するディスクドライブ２５の電源をオンに制御し、その電源制御グループに属する論理デバイス２７からデータを読み出す（ステップ２６０３）。
【０１０８】
一方、論理ユニット２８に割り当てられている一部論理デバイス２７の電源がオフでないならば（ステップ２６０２；ＮＯ）、ＣＰＵ２２は、論理ユニット２８に割り当てられている全ての論理デバイス２７の電源がオンであるか否かをチェックする（ステップ２６０４）。論理ユニット２８に割り当てられている全ての論理デバイス２７の電源がオンであるならば（ステップ２６０４；ＹＥＳ）、ＣＰＵ２２は、任意に選択した論理デバイス２７からデータを読み出す（ステップ２６０５）。
【０１０９】
一方、論理ユニット２８に割り当てられている一部論理デバイス２７の電源がオンでない場合、つまり、論理ユニット２８に割り当てられている複数の論理デバイス２７のうち一部の論理デバイス２７は電源オンであり、且つ他の論理デバイス２７の電源がオフである場合には（ステップ２６０４；ＮＯ）、ＣＰＵ２２は、電源制御グループ管理テーブル３００を参照し、電源オフ時刻３０３と現在時刻との時間差が許容期間を超える電源制御グループが存在するか否かをチェックする（ステップ２６０６）。
【０１１０】
電源オフ時刻３０３と現在時刻との時間差が許容期間を超える電源制御グループが存在しないならば（ステップ２６０６；ＮＯ）、ＣＰＵ２２は、電源オン状態にある電源制御グループに属する論理デバイス２７からデータを読み出す（ステップ２６０７）。
【０１１１】
一方、電源オフ時刻３０３と現在時刻との時間差が許容期間を超える電源制御グループが存在するならば（ステップ２６０６；ＹＥＳ）、ＣＰＵ２２は、電源オフ時刻３０３と現在時刻との時間差が許容期間を超える電源制御グループの中から電源オフ時刻３０３が最も古い電源制御グループのディスクドライブ２５の電源をオンにすることを電源制御回路２９に指示し、電源をオンにした電源制御グループに属する論理デバイス２７からデータを読み出す（ステップ２６０８）。
【０１１２】
次に、ＣＰＵ２２は、最終アクセス時刻１０４を現在時刻に更新する（ステップ２６０９）。但し、オフライン時刻を最終アクセス時刻１０４とする場合には、ＣＰＵ２２は、ステップ２６０９の処理は実行しない。
【０１１３】
尚、ステップ２６０３，２６０５，２６０７，２６０８において、論理デバイス２７からのデータ読み出しに失敗したときには、ＣＰＵ２２は、ステップ２６０２〜２６０９を再度実行し、論理ユニット２８に割り当てられている他の論理デバイス２７からデータを読み出す。データの読み出しに失敗した論理デバイス２７については、論理ユニット２８への割当を解除し、他の論理デバイス２７を論理ユニット２８に割り当てて、論理ユニット２８の多重度を維持する。
【０１１４】
本実施例によれば、ディスクドライブ２５の電源をオン／オフ切り替えする頻度を少なくできるとともに、複数のディスクドライブ２５の中から電源オンに制御されるディスクドライブ２５の割合を低減できる。これにより、ディスクドライブ２５の障害によるデータロストが発生する確率を低減できるとともに、低消費電力を実現できる。
【実施例２】
【０１１５】
図１４は実施例２に関わる計算機システム１０ａのハードウェア構成を示す。計算機システム１０ａは、ホスト計算機１、ストレージシステム２ａ、及びストレージシステム２ｓを備える。ホスト計算機１とストレージシステム２ａとは、通信ネットワーク３ａを介して接続されている。ストレージシステム２ａとストレージシステム２ｓとは、通信ネットワーク３ｓを介して接続されている。
【０１１６】
ストレージシステム２ａは、コントローラ２０ａ、複数のディスクドライブ２５ａ、及び電源制御回路２９ａを備える。コントローラ２０ａは、各種のテーブル及びプログラム等を格納するメインメモリ２１ａ、各種の制御処理を実行するＣＰＵ２２ａ、ホスト計算機１に接続するためのホストインターフェースとして機能するチャネルアダプタ２３ａ、外部に所在するストレージシステム２ｓに接続するためのイニシエータポートとして機能するチャネルアダプタ２３ｂ、及びディスクドライブ２５ａへのデータ入出力を制御するためのドライブインターフェースとして機能するディスクアダプタ２４ａを備える。
【０１１７】
メインメモリ２１ａは、論理ユニット管理テーブル１００、論理デバイス管理テーブル２００、電源制御グループ管理テーブル３００、多重度設定処理プログラム２１００、論理デバイス多重割当処理プログラム２２００、論理デバイス割当解除処理プログラム２３００、多重化ボリューム出力処理プログラム２４００、電源制御処理プログラム２５００、多重化ボリューム入力処理プログラム２６００、記憶装置増設処理プログラム２７００、及び論理デバイスマイグレーション処理プログラム２８００を格納する。記憶装置増設処理プログラム２７００、及び論理デバイスマイグレーション処理プログラム２８００の詳細については、後述する。
【０１１８】
複数のディスクドライブ２５ａのそれぞれが提供する論理的な記憶領域が集合して一つのＲＡＩＤグループ２６ａが定義される。論理デバイス２７ａは、ＲＡＩＤグループ２６ａの記憶領域上に定義される。
【０１１９】
ストレージシステム２ｓは、各種のテーブル及びプログラム等を格納するメインメモリ２１ｓ、各種の制御処理を実行するＣＰＵ２２ｓ、外部に所在するストレージシステム２ａに接続するためのターゲットポートとして機能するチャネルアダプタ２３ｓ、ディスクドライブ２５ｓへのデータ入出力を制御するためのドライブインターフェースとして機能するディスクアダプタ２４ａ、データを格納するための複数のディスクドライブ２５ｓ、及びディスクドライブ２５ｓの電源制御を行う電源制御回路２９ｓを備える。
【０１２０】
複数のディスクドライブ２５ｓのそれぞれが提供する論理的な記憶領域が集合して一つのＲＡＩＤグループ２６ｓが定義される。論理デバイス２７ｓは、ＲＡＩＤグループ２６ｓの記憶領域上に定義される。
【０１２１】
ストレージシステム２ｓ内の論理デバイス２７ｓは、ストレージシステム２ａ内の論理デバイスとして定義可能である。論理デバイス２７ｓをストレージシステム２ａ内の論理デバイスとして定義するには、論理デバイス管理テーブル２００の記憶装置ＩＤ２０４に「ストレージシステム２ｓを識別するための記憶装置ＩＤ」を登録し、ボリュームＩＤ２０５に「論理デバイス２７ｓをストレージシステム２ｓ内で一意に識別するための論理デバイスＩＤ」を登録すればよい。尚、論理デバイス２７ｓは、ディスクドライブ２５ｓ以外のストレージデバイス（例えば、テープ媒体など）の記憶領域上に定義されていてもよい。
【０１２２】
ストレージシステム２ｓが電源制御可能な装置（より詳細には、電源制御グループに属するディスクドライブ２５ｓの電源制御が可能であり、且つ電源制御グループの一覧や各電源制御グループの電源状態などの情報を取得できる装置）である場合には、ＣＰＵ２２ａは、電源制御グループ管理テーブル３００について、ストレージシステム２ｓ内の電源制御グループ毎にエントリ３１０を追加し、ストレージシステム２ａ内の電源制御グループの電源制御グループＩＤ３０１とストレージシステム２ｓ内の電源制御グループＩＤ３０１とが重複しないように、ストレージシステム２ｓ内の電源制御グループに電源制御グループＩＤ３０１をアサインし、ストレージシステム２ｓ内で電源制御グループを一意に識別する識別子をＲＡＩＤグループＩＤ３０５に登録する。
【０１２３】
論理ユニット２８ａには、論理デバイス２７ａと、ストレージシステム２ａ内の論理デバイスとして定義されたストレージシステム２ｓ内の論理デバイス２７ｓとが割り当てられる。つまり、論理ユニット２８ａは、ストレージシステム２ａから見て、内部デバイスとしての論理デバイス２７ａと、ストレージシステム２ａから見て、外部デバイスとしての論理デバイス２７ｓとによって二重化されている。このように、論理ユニット２８ａを多重化するための論理デバイスは、内部デバイスであるか又は外部デバイスであるかを問わない。ストレージシステム２ｓ内の論理デバイス２７ｓは、論理デバイス２７ａと同様にホスト計算機１から読み書きされる。
【０１２４】
本実施例における、多重度指示処理、多重度設定処理、論理デバイス多重割当処理、論理デバイス割当解除処理、多重化ボリューム出力処理、多重化ボリューム入力処置、電源制御処理の処理手順は、実施例１とほぼ同様であるため、ここでは、相違点のみを説明する。
【０１２５】
多重化ボリューム出力処理のステップ２４０５では、記憶装置ＩＤ２０４が外部に所在するストレージシステム２ｓを識別するための記憶装置ＩＤに設定されているときには、ストレージシステム２ａは、ホスト計算機１から受信したデータをストレージシステム２ｓに転送する。すると、ストレージシステム２ｓは、ストレージシステム２ａから受信したデータを、ボリュームＩＤ２０５が示す論理デバイス２７ｓに書き込む。
【０１２６】
多重化ボリューム入力処理のステップ２６０３及びステップ２６０８では、記憶装置ＩＤ２０４が外部に所在するストレージシステム２ｓを識別するための記憶装置ＩＤに設定されているときには、ストレージシステム２ａは、ボリュームＩＤ２０５を指定した上で、ストレージシステム２ｓにデータ読み出し要求を行う。すると、ストレージシステム２ｓは、ストレージシステム２ａが指定したボリュームＩＤ２０５に対応する論理デバイス２７ｓからデータを読み出す。
【０１２７】
尚、上述したステップ２５０３、ステップ２６０３、ステップ２６０８では、ストレージシステム２ａは、ＲＡＩＤグループＩＤ３０５を指定した上で、ストレージシステム２ｓに電源オン又は電源オフを要求する指示を送信する。すると、ストレージシステム２ｓ内のＣＰＵ２２ｓは、ストレージシステム２ａが指定するＲＡＩＤグループＩＤ３０５に対応する電源制御グループを構成する各ディスクドライブ２５ｓの電源をオン又はオフに制御することを電源制御回路２９ｓに指示する。
【０１２８】
図１５は記憶装置増設処理プログラム２７００が実行する記憶装置増設処理を記述したフローチャートである。
【０１２９】
ストレージシステム２ａにストレージシステム２ｓが増設されたことを契機として、ＣＰＵ２２ａは、ストレージシステム２ｓが電源制御可能な装置（より詳細には、電源制御グループに属するディスクドライブ２５ｓの電源制御が可能であり、且つ電源制御グループの一覧や各電源制御グループの電源状態などの情報を取得できる装置）であるか否かをストレージシステム２ｓの型番などの情報から判定する（ステップ２７０１）。
【０１３０】
ストレージシステム２ｓが電源制御可能な装置である場合には（ステップ２７０１；ＹＥＳ）、ＣＰＵ２２ａは、ストレージシステム２ｓから電源制御グループの一覧を取得し（ステップ２７０２）、取得した電源制御グループに関するエントリ３１０を電源制御グループ管理テーブル３００に追加する（ステップ２７０３）。
【０１３１】
一方、ストレージシステム２ｓが電源制御可能な装置でない場合には（ステップ２７０１；ＮＯ）、ＣＰＵ２２ａは、ステップ２７０４に進む。
【０１３２】
ＣＰＵ２２ａは、ストレージシステム２ｓ内で定義されている論理デバイス２７ｓの一覧をストレージシステム２ｓから取得し（ステップ２７０４）、取得した論理デバイス２７ｓに関するエントリ２１０を論理デバイス管理テーブル２００に追加する（ステップ２７０５）。
【０１３３】
図１６は論理デバイスマイグレーション処理プログラム２８００が実行する論理デバイスマイグレーション処理を記述したフローチャートである。論理デバイスマイグレーション処理は、ストレージシステム２ａ内の論理ユニット２８ａに複数の論理デバイス２７ａが割り当てられている場合において、その複数の論理デバイス２７ａのうち一部の論理デバイス２７ａをストレージシステム２ｓ内の論理デバイス２７ｓに移動する処理である。論理デバイスマイグレーション処理は、記憶装置増設処理の後に実行される。
【０１３４】
まず、ＣＰＵ２２ａは、論理ユニット管理テーブル１００内のエントリ１１０に複数の論理デバイスＩＤ１０３が登録されているか否かをチェックする（ステップ２８０１）。エントリ１１０に複数の論理デバイスＩＤ１０３が登録されているならば（ステップ２８０１；ＹＥＳ）、ＣＰＵ２２ａは、それぞれの論理デバイスＩＤ１０３に対応する論理デバイス２７ａが属するストレージシステム２ａの記憶装置ＩＤを求める（ステップ２８０２）。つまり、ＣＰＵ２２ａは、論理デバイスＩＤ１０３に一致する論理デバイスＩＤ２０１を有するエントリ２１０を論理デバイス管理テーブル２００から求め、エントリ２１０に登録されている電源制御グループＩＤ２０３に一致する電源制御グループＩＤ３０１を有するエントリ３１０を電源制御グループ管理テーブル３００から検索する。
【０１３５】
同一のストレージシステム２ａ内に複数の論理デバイス２７ａが割り当てられている場合には（ステップ２８０３；ＹＥＳ）、ＣＰＵ２２ａは、論理デバイス割当処理プログラム２２００を呼び出して論理デバイス多重割当処理を実行し、ストレージシステム２ｓ内の論理デバイス２７ｓを論理ユニット２８ａに割り当てるとともに、論理デバイス割当解除処理プログラム２３００を呼び出して論理デバイス割当解除処理を実行し、論理ユニット２８ａに割り当てられていた一部の論理デバイス２７ａを開放する（ステップ２８０４）。
【０１３６】
一方、エントリ１１０に複数の論理デバイスＩＤ１０３が登録されていない場合（ステップ２８０１；ＮＯ）、又は同一のストレージシステム２ａ内に複数の論理デバイス２７ａが割り当てられていない場合には（ステップ２８０３；ＮＯ）、ＣＰＵ２２ａは、ステップ２８０５に進む。
【０１３７】
エントリ１１０に登録されている論理デバイスＩＤ１０３に対応する論理デバイス２７ａの一部について、ステップ２８０１〜ステップ２８０４を実行してない場合には（ステップ２８０５；ＮＯ）、ＣＰＵ２２ａは、未実施の論理デバイス２７ａについて、ステップ２８０１〜ステップ２８０４を実行する。
【０１３８】
本実施例によれば、論理ユニット２８は、論理デバイス２７ａ（内部デバイス）だけでなく論理デバイス２７ｓ（外部デバイス）によっても多重化されているので、耐障害性を高めることができる。
【図面の簡単な説明】
【０１３９】
【図１】実施例１に係わる計算機システムのハードウェア構成図である。
【図２】計算機システムの制御処理に係わる機能ブロック図である。
【図３】電源状態と電源オフ時刻とからデータを読み出す論理デバイスを決定する処理の概要を示すタイムチャートである。
【図４】論理ユニット管理テーブルの説明図である。
【図５】論理デバイス管理テーブルの説明図である。
【図６】電源制御グループ管理テーブルの説明図である。
【図７】多重度指示処理を記述したフローチャートである。
【図８】多重度設定処理を記述したフローチャートである。
【図９】論理デバイス多重割当処理を記述したフローチャートである。
【図１０】論理デバイス割当解除処理を記述したフローチャートである。
【図１１】多重化ボリューム出力処理を記述したフローチャートである。
【図１２】電源制御処理を記述したフローチャートである。
【図１３】多重化ボリューム入力処理を記述したフローチャートである。
【図１４】実施例２に係わる計算機システムのハードウェア構成図である。
【図１５】装置増設処理を記述したフローチャートである。
【図１６】論理デバイスマイグレーション処理を記述したフローチャートである。
【符号の説明】
【０１４０】
２…ストレージシステム  ２０…コントローラ  ２５ａ，２５ｂ…ディスクドライブ  ２７ａ，２７ｂ…論理デバイス  ２８ａ，２８ｂ…論理ユニット  ２９…電源制御回路  １００…論理ユニット管理テーブル  ２００…論理デバイス管理テーブル  ３００…電源制御グループ管理テーブル  ２１００…多重度設定処理プログラム  ２２００…論理デバイス多重割当処理プログラム  ２３００…論理デバイス割当解除処理プログラム  ２４００…多重化ボリューム出力処理プログラム  ２５００…電源制御処理プログラム  ２６００…多重化ボリューム入力処理プログラム  ２７００…記憶装置増設処理プログラム  ２８００…論理デバイスマイグレーション処理プログラム
【図１】
2007241334.tif 000003
【図２】
2007241334.tif 000004
【図３】
2007241334.tif 000005
【図４】
2007241334.tif 000006
【図５】
2007241334.tif 000007
【図６】
2007241334.tif 000008
【図７】
2007241334.tif 000009
【図８】
2007241334.tif 000010
【図９】
2007241334.tif 000011
【図１０】
2007241334.tif 000012
【図１１】
2007241334.tif 000013
【図１２】
2007241334.tif 000014
【図１３】
2007241334.tif 000015
【図１４】
2007241334.tif 000016
【図１５】
2007241334.tif 000017
【図１６】
2007241334.tif 000018