(57)【特許請求の範囲】
【請求項１】
計算機と、前記計算機にネットワークを介して接続されるストレージシステムと、を備える計算機システムであって、
前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ストレージシステムは、複数のディスクドライブと、前記複数のディスクドライブを制御するコントローラと、を備え、
前記複数のディスクドライブのデータ記憶領域は、複数の論理ボリュームに分割され、
前記複数の論理ボリュームは、第１数の第１論理ボリューム、及び、前記第１数と同数の第２論理ボリュームを含み、
前記各論理ボリュームは、複数のボリュームセットのいずれか一つに属し、
前記複数のボリュームセットは、前記第１数の前記第１論理ボリュームが属する第１ボリュームセット、及び、前記第１数の前記第２論理ボリュームが属する第２ボリュームセットを含み、
前記第１数の前記第１論理ボリュームは、第２数の前記ディスクドライブに分散して割り当てられ、
前記第１数の前記第２論理ボリュームは、前記第２数より大きい第３数の前記ディスクドライブに分散して割り当てられ、
前記計算機は、
前記各第１論理ボリュームと、前記各第２論理ボリュームとを対応付ける管理情報を保持し、
所定の条件が満たされるか否かを判定した結果に基づいて、前記第１ボリュームセット又は前記第２ボリュームセットの一方を選択し、
前記選択されたボリュームセットと、今回の選択以前に選択されたボリュームセットとが同一であるか否かを判定し、
前記選択されたボリュームセットと、前記今回の選択以前に選択されたボリュームセットとが異なると判定された場合、前記今回の選択以前に選択されたボリュームセットに属する前記各論理ボリュームに格納されたデータを、前記選択されたボリュームセットに属する前記各論理ボリュームにコピーする指示を前記ストレージシステムに送信し、
一つのファイルのデータを、前記選択されたボリュームセットに属する前記第１数の論理ボリュームに分散して格納し、
前記選択されたボリュームセットに属する前記第１数の論理ボリュームのいずれも割り当てられていない前記ディスクドライブのディスク回転を停止する指示を前記ストレージシステムに送信することを特徴とする計算機システム。
【請求項２】
前記計算機は、
前記今回選択されたボリュームセットと、前記以前に選択されたボリュームセットが異なると判定された場合、前記以前に選択されたボリュームセットに属する前記各論理ボリュームと、前記今回選択されたボリュームセットに属する前記論理ボリュームとの間で前回の前記コピーが実行された後にそれらの論理ボリュームのうち一方のデータが更新されたか否かを判定し、
前回の前記コピーが実行された後にそれらの論理ボリュームのうち一方のデータが更新されたと判定された場合、前記以前に選択されたボリュームセットに属する前記各論理ボリュームに格納されたデータを、前記今回選択されたボリュームセットに属する前記各論理ボリュームにコピーする指示を前記ストレージシステムに送信することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記計算機は、
同期する必要がないデータを特定する情報を保持し、
前記以前に選択されたボリュームセットに属する前記各論理ボリュームに含まれるデータ、及び、前記今回選択されたボリュームセットに属する前記各論理ボリュームに含まれるデータのうち、前記同期する必要がないデータのみが、前回の前記コピーが実行された後に更新された場合、前回の前記コピーが実行された後にそれらの論理ボリュームのうち一方のデータが更新されていないと判定することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記計算機は、受信したコマンドが所定の情報を含むか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記計算機は、前記ファイルの属性を示す情報が所定の情報を含むか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項６】
前記計算機は、環境変数によって指定された情報が所定の情報を含むか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項７】
前記計算機は、前記ファイルへのアクセスを実行するジョブを起動する親ジョブが所定のジョブであるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項８】
前記計算機は、前記ファイルへのアクセスを実行するジョブを起動する親ジョブがジョブ実行をスケジュールするプログラムである場合、前記所定の条件が満たされると判定し、前記第２ボリュームセットを選択することを特徴とする請求項７に記載の計算機システム。
【請求項９】
前記計算機は、前記ファイルへのアクセスを実行するジョブが所定のジョブであるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項１０】
前記計算機は、前記ファイルへのアクセスを実行するユーザが所定のユーザであるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項１１】
前記計算機は、前記ファイルへのアクセスを実行するユーザが所定のグループに属するか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項１に記載の計算機システム。
【請求項１２】
計算機と、前記計算機にネットワークを介して接続されるストレージシステムと、を備える計算機システムを制御する方法であって、
前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ストレージシステムは、複数のディスクドライブと、前記複数のディスクドライブを制御するコントローラと、を備え、
前記複数のディスクドライブのデータ記憶領域は、複数の論理ボリュームに分割され、
前記複数の論理ボリュームは、第１数の第１論理ボリューム、及び、前記第１数と同数の第２論理ボリュームを含み、
前記各論理ボリュームは、複数のボリュームセットのいずれか一つに属し、
前記複数のボリュームセットは、前記第１数の前記第１論理ボリュームが属する第１ボリュームセット、及び、前記第１数の前記第２論理ボリュームが属する第２ボリュームセットを含み、
前記第１数の前記第１論理ボリュームは、第２数の前記ディスクドライブに分散して割り当てられ、
前記第１数の前記第２論理ボリュームは、前記第２数より大きい第３数の前記ディスクドライブに分散して割り当てられ、
前記計算機は、前記各第１論理ボリュームと、前記各第２論理ボリュームとを対応付ける管理情報を保持し、
前記方法は、
前記計算機が、所定の条件が満たされるか否かを判定した結果に基づいて、前記第１ボリュームセット又は前記第２ボリュームセットの一方を選択する第１手順と、
前記選択されたボリュームセットと、今回の選択以前に選択されたボリュームセットとが同一であるか否かを判定する第２手順と、
前記選択されたボリュームセットと、前記今回の選択以前に選択されたボリュームセットとが異なると判定された場合、前記今回の選択以前に選択されたボリュームセットに属する前記各論理ボリュームに格納されたデータを、前記選択されたボリュームセットに属する前記各論理ボリュームにコピーする指示を、前記計算機が前記ストレージシステムに送信する第３手順と、
前記計算機が、一つのファイルのデータを、前記選択されたボリュームセットに属する前記第１数の論理ボリュームに分散して格納する第４手順と、
前記計算機が、前記選択されたボリュームセットに属する前記第１数の論理ボリュームのいずれも割り当てられていない前記ディスクドライブのディスク回転を停止する指示を前記ストレージシステムに送信する第５手順と、を含むことを特徴とする方法。
【請求項１３】
前記第１手順は、前記計算機が、受信したコマンドが所定の情報を含むか否かに基づいて、前記所定の条件が満たされるか否かを判定する手順を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記第１手順は、前記計算機が、環境変数によって指定された情報が所定の情報を含むか否かに基づいて、前記所定の条件が満たされるか否かを判定する手順を含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記第１手順は、前記計算機が、前記ファイルへのアクセスを実行するジョブを起動する親ジョブが所定のジョブであるか否かに基づいて、前記所定の条件が満たされるか否かを判定する手順を含むことを特徴とする請求項１２に記載の方法。
【請求項１６】
前記第１手順は、前記計算機が、前記ファイルへのアクセスを実行するジョブを起動する親ジョブがジョブ実行をスケジュールするプログラムである場合に前記所定の条件が満たされると判定する手順と、前記第２ボリュームセットを選択する手順と、を含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記第１手順は、前記計算機が、前記ファイルへのアクセスを実行するジョブが所定のジョブであるか否かに基づいて、前記所定の条件が満たされるか否かを判定する手順を含むことを特徴とする請求項１２に記載の方法。
【請求項１８】
前記第１手順は、前記計算機が、前記ファイルへのアクセスを実行するユーザが所定のユーザであるか否かに基づいて、前記所定の条件が満たされるか否かを判定する手順を含むことを特徴とする請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で開示される技術は、ストレージシステムの消費電力及び性能の管理に関し、特に、消費電力及び性能に関するポリシに応じたデータアクセスを提供するファイルシステムに関する。
【背景技術】
【０００２】
計算機システムが扱うデータ量の増大に伴い、ストレージシステムの大規模化が進んでいる。それに伴い、データセンター等で使用される大規模なストレージシステムが消費する電力が問題になっている。
【０００３】
この問題に対応するため、ＭＡＩＤ（Ｍａｓｓｉｖｅ  Ａｒｒａｙｓ  ｏｆ  Ｉｄｌｅ  Ｄｉｓｋｓ）技術が提案されている（特許文献１参照）。ＭＡＩＤ技術によれば、使用されていないディスクドライブのディスク回転を停止することによって、ストレージシステムの消費電力が削減される。
【０００４】
このＭＡＩＤ技術を応用した、電源制御可能なストレージシステムが提案されている（特許文献２参照）。特許文献２によれば、複数のディスクドライブがＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成する。この場合、ＲＡＩＤを構成する複数のディスクドライブの管理単位ごとに電源が制御される。
【０００５】
ディスク回転が停止したディスクドライブへのアクセスが発生した場合、ディスク回転を起動してからアクセスが実行される。この起動に要する時間は、アクセス性能低下の原因となる。このようなアクセス性能の低下を抑制するため、データのアクセス頻度に応じて、そのデータを格納するディスクドライブを選択する技術が開示されている（特許文献３及び４参照）。具体的には、ディスク回転が停止する時間が短くなるように制御されたディスクドライブ（又は、ディスク回転が停止しないように制御されたディスクドライブ）に、アクセス頻度が高いデータが格納されるように、データの格納先が選択される。
【０００６】
さらに、アクセス性能向上のため、データを複数のディスクドライブに分散して格納する技術が知られている。一般に、より多くのディスクドライブにデータを分散するほど、アクセス性能（具体的には、Ｉ／Ｏスループット）が向上する。しかし、例えば一つのファイルのデータを複数のディスクドライブに分散して格納した場合、そのファイルを読み出すためにそれら複数のディスクドライブにアクセスする必要がある。このため、多くのディスクドライブにデータを分散するほど、一つのファイルを読み出すために起動すべきディスクドライブの数が多くなる。
【０００７】
特許文献５には、上記のアクセス性能及び起動時間に関するポリシに基づいてデータの配置を決定する技術が開示されている。具体的には、アクセス性能の向上を優先する場合には比較的少数のディスクドライブにデータが分散して格納され、ディスクドライブの起動時間の抑制を優先する場合には比較的多数のディスクドライブにデータが分散して格納される。
【特許文献１】米国特許第７０３５９７２号明細書
【特許文献２】特開２００５−１５７７１０号公報
【特許文献３】特開２００７−８６８４３号公報
【特許文献４】特開２００７−１６４６５０号公報
【特許文献５】特開２００７−２８６９７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、データをより多くのディスクドライブに分散して格納するほど、アクセス性能は向上する。しかし、それらのディスクドライブにＭＡＩＤ技術を適用した場合、データをより多くのディスクドライブに分散して格納するほど、アクセスのために起動すべきディスクドライブの数も増大するため、消費電力を削減する効果が低下する。このように、消費電力と、実現される性能との間にトレードオフの関係がある。
【０００９】
一方、同一のファイルへのアクセスが実行される場合であっても、実行されるジョブの特性等によって、要求されるアクセス性能は一定でない。例えば、バッチ環境において大量のジョブが実行される場合には、高いＩ／Ｏスループットが要求されるが、通常の対話環境においてファイルが参照される場合には、それほど高いＩ／Ｏスループットは要求されない。従来は、上記のような場合に、実行されるジョブの特性等に応じてデータの配置を切り替えることによって最適なアクセス性能及び消費電力を実現することができなかった。
【課題を解決するための手段】
【００１０】
本願で開示する代表的な発明は、計算機と、前記計算機にネットワークを介して接続されるストレージシステムと、を備える計算機システムであって、前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、前記ストレージシステムは、複数のディスクドライブと、前記複数のディスクドライブを制御するコントローラと、を備え、前記複数のディスクドライブのデータ記憶領域は、複数の論理ボリュームに分割され、前記複数の論理ボリュームは、第１数の第１論理ボリューム、及び、前記第１数と同数の第２論理ボリュームを含み、前記各論理ボリュームは、複数のボリュームセットのいずれか一つに属し、前記複数のボリュームセットは、前記第１数の前記第１論理ボリュームが属する第１ボリュームセット、及び、前記第１数の前記第２論理ボリュームが属する第２ボリュームセットを含み、前記第１数の前記第１論理ボリュームは、第２数の前記ディスクドライブに分散して割り当てられ、前記第１数の前記第２論理ボリュームは、前記第２数より大きい第３数の前記ディスクドライブに分散して割り当てられ、前記計算機は、前記各第１論理ボリュームと、前記各第２論理ボリュームとを対応付ける管理情報を保持し、所定の条件が満たされるか否かを判定した結果に基づいて、前記第１ボリュームセット又は前記第２ボリュームセットの一方を選択し、前記選択されたボリュームセットと、今回の選択以前に選択されたボリュームセットとが同一であるか否かを判定し、前記選択されたボリュームセットと、前記今回の選択以前に選択されたボリュームセットとが異なると判定された場合、前記今回の選択以前に選択されたボリュームセットに属する前記各論理ボリュームに格納されたデータを、前記選択されたボリュームセットに属する前記各論理ボリュームにコピーする指示を前記ストレージシステムに送信し、一つのファイルのデータを、前記選択されたボリュームセットに属する前記第１数の論理ボリュームに分散して格納し、前記選択されたボリュームセットに属する前記第１数の論理ボリュームのいずれも割り当てられていない前記ディスクドライブのディスク回転を停止する指示を前記ストレージシステムに送信することを特徴とする。
【発明の効果】
【００１１】
本発明の一実施形態によれば、同一のファイルへのアクセスが実行される場合であっても、実行されるジョブの特性等に応じて最適なアクセス性能及び消費電力を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を、図面を参照して説明する。
【００１３】
図１は、本発明の実施形態の計算機システムの構成を示すブロック図である。
【００１４】
本実施形態の計算機システムは、ホストコンピュータ１０１、サービスプロセッサ（ＳＶＰ）１０３及び電源制御可能なストレージシステム１０２（以下、単にストレージシステム１０２と記載する）を備える。ホストコンピュータ１０１は、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）１０５を介してＳＶＰ１０３と、Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＳＡＮ）１０４を介してストレージシステム１０２と接続される。ストレージシステム１０２は、ＬＡＮ１０６を介してＳＶＰ１０３と接続される。
【００１５】
ホストコンピュータ１０１は、ストレージシステム１０２を使用して種々のアプリケーションを実現する計算機である。本実施形態のホストコンピュータ１０１は、相互に接続されたＣＰＵ１６１、メモリ１６２、インターフェース（Ｉ／Ｆ）１６３及びＩ／Ｆ１６４を備える。
【００１６】
ＣＰＵ１６１は、メモリ１６２に格納されたプログラムを実行するプロセッサである。以下の説明において各プログラムが実行する処理は、実際にはＣＰＵ１６１によって実行される。
【００１７】
メモリ１６２は、ＣＰＵ１６１によって実行されるプログラム及びＣＰＵ１６１によって参照されるデータ等を格納する記憶装置である。メモリ１６２が例えばＤＲＡＭのような半導体メモリである場合、上記のプログラム及びデータ等は、ハードディスクドライブ（図示省略）に格納され、必要に応じてそれらの全部又は一部がメモリ１６２にコピーされてもよい。
【００１８】
本実施形態のメモリ１６２は、少なくとも、ＬＵセット管理プログラム１１１、ファイルシステムプログラム又は入出力ライブラリ１１２、及び、ストレージ管理プログラム１１３を格納する。
【００１９】
ＬＵセット管理プログラム１１１は、複数の論理ボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ、ＬＵ）からなるＬＵセットを管理するためのプログラムである。ＬＵセット管理プログラム１１１は、ＬＵセット選択部１２１、電源制御部１２２、ＬＵセット同期起動部１２３、切り替え条件登録部１２４、ＬＵ更新情報登録部１２５、ＬＵセット管理情報１３１、利用モード情報１３２、電源制御情報１３３、ＬＵセット切り替え条件情報１３４及びサブデータ更新通知除外情報１３５を含む。これらについては後で詳細に説明する。
【００２０】
ファイルシステムプログラム又は入出力ライブラリ１１２は、オペレーティングシステム（ＯＳ）（図示省略）の一部として提供されるファイルシステムプログラムであってもよいし、ユーザアプリケーション（図示省略）によって使用される入出力ライブラリであってもよい。以下、代表的な例としてファイルシステムプログラム又は入出力ライブラリ１１２がファイルシステムプログラムである場合について説明する。このため、以下の説明においてファイルシステムプログラム又は入出力ライブラリ１１２は単にファイルシステムプログラム１１２と記載される。しかし、以下の説明は、ファイルシステムプログラム又は入出力ライブラリ１１２が入出力ライブラリである場合にも適用することができる。
【００２１】
本実施形態のファイルシステムプログラム１１２は、ＬＵセット選択ヒント情報１４１、サブデータ更新情報１４２及びサブデータ更新情報管理部１４３を含む。これらの詳細については後述する。
【００２２】
ストレージ管理プログラム１１３は、ストレージシステム１０２を管理するための処理を実行する。ストレージ管理プログラム１１３は、ＯＳの一部として提供されてもよい。
【００２３】
メモリ１６２には、さらに、任意の機能をユーザに提供するユーザアプリケーションプログラム（図示省略）が格納されてもよい。
【００２４】
Ｉ／Ｆ１６３は、ＬＡＮ１０５に接続され、ＬＡＮ１０５を介してＳＶＰ１０３と通信するインターフェースである。
【００２５】
Ｉ／Ｆ１６４は、ＳＡＮ１０４に接続され、ＳＡＮ１０４を介してストレージシステム１０２と通信するインターフェースである。
【００２６】
ストレージシステム１０２は、ホストコンピュータ１０１によって書き込まれたデータを格納する。ストレージシステム１０２は、少なくともＬＵ間同期プログラム１５１を保持する。ストレージシステム１０２の詳細な構成については、図２を参照して後述する。
【００２７】
ＳＶＰ１０３は、ストレージシステム１０２を管理するための計算機である。ＳＶＰ１０３は、相互に接続されたＣＰＵ（図示省略）、メモリ（図示省略）及びインターフェース（図示省略）を備えてもよい。インターフェースは、ＬＡＮ１０５及びＬＡＮ１０６に接続される。
【００２８】
本実施形態では、ＬＡＮ１０５及び１０６においてインターネットプロトコル（ＩＰ）が使用され、ＳＡＮ１０４においてファイバーチャネル（ＦＣ）プロトコルが使用される。しかし、これらのネットワークは上記以外のいかなるプロトコルを使用するものであってもよい。上記以外のプロトコルが使用される場合、Ｉ／Ｆ１６３及びＩ／Ｆ１６４は、それぞれ、それらに接続されるネットワークに適合するインターフェースによって置き換えられる。
【００２９】
図２は、本発明の実施形態のストレージシステム１０２の構成を示すブロック図である。
【００３０】
本実施形態のストレージシステム１０２は、コントローラ部２０１及び複数のハードディスクドライブ（ＨＤＤ）２３１ａ等を備える。
【００３１】
本実施形態の複数のＨＤＤ２３１ａ等は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成する。ＲＡＩＤグループ２１１ａ等は、ＲＡＩＤを構成する複数のＨＤＤ２３１ａ等の管理単位である。具体的には、例えば二つのＨＤＤ２３１ａ等がＲＡＩＤレベル１を構成する場合、ミラーリングされた二つのＨＤＤ２３１ａ等が一つのＲＡＩＤグループを構成する。例えば、四つのＨＤＤ２３１ａ等が３Ｄ（データ）＋１Ｐ（パリティ）のＲＡＩＤレベル５を構成する場合、データと、そのデータから生成されたパリティと、が格納される四つのＨＤＤ２３１ａ等が一つのＲＡＩＤグループを構成する。
【００３２】
図２の例では、ＨＤＤ２３１ａ及び２３１ｂ等がＲＡＩＤグループ２１１ａを構成する。ＨＤＤ２３２ａ及び２３２ｂがＲＡＩＤグループ２１１ｂを構成する。ＨＤＤ２３３ａ及び２３３ｂがＲＡＩＤグループ２１１ｃを構成する。ＨＤＤ２３４ａ及び２３４ｂ等がＲＡＩＤグループ２１２ａを構成する。ＨＤＤ２３５ａ及び２３５ｂ等がＲＡＩＤグループ２１２ｂを構成する。
【００３３】
各ＲＡＩＤグループ内のＨＤＤの記憶領域は、任意の大きさのＬＵとしてホストコンピュータ１０１に提供される。ホストコンピュータ１０１は、各ＬＵを一つの記憶装置と認識する。図２の例では、ＲＡＩＤグループ２１１ａにＬＵ２２１ａ及び２２１ｂが設定される。ＲＡＩＤグループ２１１ｂにはＬＵ２２２が設定される。ＲＡＩＤグループ２１１ｃにはＬＵ２２３ａ、２２３ｂ及び２２３ｃが設定される。ＲＡＩＤグループ２１２ａにはＬＵ２２４ａ及び２２４ｂが設定される。ＲＡＩＤグループ２１２ｂにはＬＵ２２５が設定される。
【００３４】
コントローラ部２０１は、複数のＨＤＤ２３１ａ等へのデータの書き込み及び読み出しを制御する。さらに、コントローラ部２０１は、複数のＨＤＤ２３１ａ等の少なくとも一部の電源投入（ＯＮ）及び遮断（ＯＦＦ）を制御することができる。ここで、ＨＤＤの電源投入（ＯＮ）とは、少なくともＨＤＤのディスク回転を起動することを意味し、電源遮断（ＯＦＦ）とは、少なくともＨＤＤのディスク回転を停止することを意味する。
【００３５】
本実施形態のコントローラ部２０１は、相互に接続されたＣＰＵ２６１、メモリ２６２、Ｉ／Ｆ２６３、Ｉ／Ｆ２６４、ディスクコントローラ２５１及び電源制御部２５２を備える。
【００３６】
なお、図２に示すコントローラ部２０１の構成は一例であり、図２に示すものと異なる構成のコントローラ部が適用されても、本実施形態を実現することができる。例えば、電源制御部２５２がディスクコントローラ２５１の下（すなわちＨＤＤ側）に接続されてもよい。
【００３７】
ＣＰＵ２６１は、メモリ２６２に格納されたプログラムを実行するプロセッサである。
【００３８】
メモリ２６２は、ＣＰＵ２６１によって実行されるプログラム及びＣＰＵ２６１によって参照されるデータ等を格納する記憶装置である。本実施形態のメモリ２６２は、少なくとも、ＬＵ間同期プログラム１５１を格納する。
【００３９】
Ｉ／Ｆ２６３及びＩ／Ｆ２６４は、それぞれ、ＳＡＮ１０４及びＬＡＮ１０６に接続され、ホストコンピュータ１０１及びＳＶＰ１０３と通信する。
【００４０】
ディスクコントローラ２５１は、例えばＦＣによって各ＨＤＤ２３１ａ等に接続され、各ＨＤＤ２３１ａ等へのデータの書き込み及び各ＨＤＤ２３１ａ等からのデータの読み出しを制御する。
【００４１】
電源制御部２５２は、各ＨＤＤ２３１ａ等の電源ＯＮ及びＯＦＦを制御する。本実施形態の電源制御部２５２は、所定の数のＨＤＤ２３１ａ等からなる各電源制御単位に接続され、電源制御単位ごとに電源ＯＮ及びＯＦＦを制御することができる。
【００４２】
一つの電源制御単位は、任意の数のＨＤＤを含むことができる。例えば、一つの電源制御単位は、一つの筐体に格納された複数のＨＤＤ２３１ａ等によって構成されてもよい。図２の例では、ＲＡＩＤグループ２１１ａ、２１１ｂ及び２１１ｃが電源制御単位２０２を構成し、ＲＡＩＤグループ２１２ａ及び２１２ｂが電源制御単位２０３を構成する。しかし、各電源制御単位を構成するＲＡＩＤグループの数は、上記の例に限定されない。例えば、一つのＲＡＩＤグループが一つの電源制御単位を構成してもよい。
【００４３】
図２には二つの電源制御単位２０２及び２０３を示すが、ストレージシステム１０２は、任意の数の電源制御単位を含むことができる。複数の電源制御単位のうち少なくとも一つは、電源ＯＦＦが禁止されてもよい。例えば、ストレージシステム１０２を管理するために必要な情報が格納されたＨＤＤを含む電源制御単位の電源ＯＦＦが禁止されてもよい。
【００４４】
図２には９個のＬＵを示すが、ストレージシステム１０２は、任意の数のＬＵを含むことができる。
【００４５】
図３は、本発明の実施形態のＬＵセットの構成を示すブロック図である。
【００４６】
本実施形態では、複数のＬＵが一つのＬＵセットを構成する。アクセス性能（具体的には、Ｉ／Ｏスループット）向上のため、一つのＬＵセットに含まれる１６個のＬＵにおいてデータがストライピングされる。図３の例では、１６個のＬＵが一つのＬＵセットを構成する。このため、一つのファイルに含まれるデータが、最大１６個のＬＵに分散して格納される。
【００４７】
さらに、本実施形態では、二つのＬＵセットが対応付けられる。対応付けられた二つのＬＵセットには、原則として、同一のデータが格納される。ただし、後述するように、対応付けられた二つのＬＵセットの一方に格納されたデータが更新された後、データを同期させる処理が実行されるまでの間、両者に格納されたデータは一致しない。
【００４８】
図３の例では、ストレージシステム１０２は、四つのラック、すなわち、ラック１＿３０１からラック４＿３０４を備える。各ラックは、五つの筐体を備える。具体的には、ラック１＿３０１は、筐体００＿３３１ａ、筐体１０＿３３１ｅ、筐体２０＿３３１ｉ、筐体３０＿３３１ｍ及び筐体４０＿３３１ｑを備える。本実施形態では、これらの各筐体が、図２に示す電源制御単位２０２等と同様の電源制御単位として扱われる。例えば図３の筐体００＿３３１ａに表示された番号「００」は、その筐体の識別子である。他の筐体に表示された番号も同様である。
【００４９】
同様に、ラック２＿３０２は、筐体０１＿３３１ｂ、筐体１１＿３３１ｆ、筐体２１＿３３１ｊ、筐体３１＿３３１ｎ及び筐体４１＿３３１ｒを備える。ラック３＿３０３は、筐体０２＿３３１ｃ、筐体１２＿３３１ｇ、筐体２２＿３３１ｋ、筐体３２＿３３１ｏ及び筐体４２＿３３１ｓを備える。ラック４＿３０４は、筐体０３＿３３１ｄ、筐体１３＿３３１ｈ、筐体２３＿３３１ｌ、筐体３３＿３３１ｐ及び筐体４３＿３３１ｔを備える。
【００５０】
筐体００＿３３１ａは、四つのＬＵ、すなわち、ＬＵ０００＿３１１ａ、ＬＵ００１＿３１１ｅ、ＬＵ００２＿３１１ｉ及びＬＵ００３＿３１１ｍを含む。各ＬＵは、図２のＬＵ２２１ａ等と同様のものである。例えば図３のＬＵ０００＿３１１ａに表示された番号「０００」は、そのＬＵの識別子である。他のＬＵに表示された番号も同様である。
【００５１】
同様に、筐体０１＿３３１ｂは、ＬＵ０１０＿３１１ｂ、ＬＵ０１１＿３１１ｆ、ＬＵ０１２＿３１１ｊ及びＬＵ０１３＿３１１ｎを含む。筐体０２＿３３１ｃは、ＬＵ０２０＿３１１ｃ、ＬＵ０２１＿３１１ｇ、ＬＵ０２２＿３１１ｋ及びＬＵ０２３＿３１１ｏを含む。筐体０３＿３３１ｄは、ＬＵ０３０＿３１１ｄ、ＬＵ０３１＿３１１ｈ、ＬＵ０３２＿３１１ｌ及びＬＵ０３３＿３１１ｐを含む。
【００５２】
図３の例では、上記のＬＵ０００＿３１１ａからＬＵ０３３＿３１１ｐまでの１６個のＬＵが第１のＬＵセット３１１を構成する。
【００５３】
筐体１０＿３３１ｅは、少なくとも、ＬＵ１００＿３２１ａを含む。同様に、筐体２０＿３３１ｉ、筐体３０＿３３１ｍ、筐体４０＿３３１ｑ、筐体１１＿３３１ｆ、筐体２１＿３３１ｊ、筐体３１＿３３１ｎ、筐体４１＿３３１ｒ、筐体１２＿３３１ｇ、筐体２２＿３３１ｋ、筐体３２＿３３１ｏ、筐体４２＿３３１ｓ、筐体１３＿３３１ｈ、筐体２３＿３３１ｌ、筐体３３＿３３１ｐ及び筐体４３＿３３１ｔは、それぞれ、少なくとも、ＬＵ２００＿３２１ｅ、ＬＵ３００＿３２１ｉ、ＬＵ４００＿３２１ｍ、ＬＵ１１０＿３２１ｂ、ＬＵ２１０＿３２１ｆ、ＬＵ３１０＿３２１ｊ、ＬＵ４１０＿３２１ｎ、ＬＵ１２０＿３２１ｃ、ＬＵ２２０＿３２１ｇ、ＬＵ３２０＿３２１ｋ、ＬＵ４２０＿３２１ｏ、ＬＵ１３０＿３２１ｄ、ＬＵ２３０＿３２１ｈ、ＬＵ３３０＿３２１ｌ及びＬＵ４３０＿３２１ｐを含む。
【００５４】
図３の例では、上記のＬＵ１００＿３２１ａからＬＵ４３０＿３２１ｔまでの１６個のＬＵが第２のＬＵセットを構成する。以下の説明において、第２のＬＵセットをＬＵセット３２１と記載する。
【００５５】
ＬＵセット３２１は、ＬＵセット３１１と対応する。具体的には、ＬＵ０００＿３１１ａ、ＬＵ００１＿３１１ｅ、ＬＵ００２＿３１１ｉ、ＬＵ００３＿３１１ｍ、ＬＵ０１０＿３１１ｂ、ＬＵ０１１＿３１１ｆ、ＬＵ０１２＿３１１ｊ、ＬＵ０１３＿３１１ｎ、ＬＵ０２０＿３１１ｃ、ＬＵ０２１＿３１１ｇ、ＬＵ０２２＿３１１ｋ、ＬＵ０２３＿３１１ｏ、ＬＵ０３０＿３１１ｄ、ＬＵ０３１＿３１１ｈ、ＬＵ０３２＿３１１ｌ及びＬＵ０３３＿３１１ｐが、それぞれ、ＬＵ１００＿３２１ａ、ＬＵ２００＿３２１ｅ、ＬＵ３００＿３２１ｉ、ＬＵ４００＿３２１ｍ、ＬＵ１１０＿３２１ｂ、ＬＵ２１０＿３２１ｆ、ＬＵ３１０＿３２１ｊ、ＬＵ４１０＿３２１ｎ、ＬＵ１２０＿３２１ｃ、ＬＵ２２０＿３２１ｇ、ＬＵ３２０＿３２１ｋ、ＬＵ４２０＿３２１ｏ、ＬＵ１３０＿３２１ｄ、ＬＵ２３０＿３２１ｈ、ＬＵ３３０＿３２１ｌ及びＬＵ４３０＿３２１ｐと対応する。
【００５６】
上記のように、ＬＵセット３１１に属する１６個のＬＵは、４個の筐体に分散して割り当てられる。一方、ＬＵセット３２１に属する１６個のＬＵは、１６個の筐体に分散して割り当てられる。各筐体に含まれるＨＤＤの数が互いに同じである場合、ＬＵセット３２１に属する１６個のＬＵは、ＬＵセット３１１に属する１６個のＬＵより多くのＨＤＤに分散して割り当てられる。
【００５７】
例えば、あるファイルのデータがＬＵセット３１１に格納される場合、そのデータは、ＬＵセット３１１に含まれる１６個のＬＵに分散して格納される。その後、ＬＵセット３１１とＬＵセット３２１とを同期させる処理が実行されると、ＬＵセット３１１の１６個のＬＵに格納されたデータが、ＬＵセット３２１の１６個のＬＵにそれぞれコピーされる。その結果、二つのＬＵセットに同一のファイルのデータが格納される。
【００５８】
一つのファイルのデータを複数のＬＵに分散して格納することによって、ファイルへのアクセス性能が向上する。これは、複数のＬＵに対するアクセス（より正確には、複数のＬＵが割り当てられた複数のＨＤＤへのアクセス）が並行して実行されるためである。ただし、複数のＬＵが物理的に一つのＨＤＤを共有する場合、そのＨＤＤへのアクセスは順次実行されるため、アクセス性能が向上しない。
【００５９】
図３の例において、ＬＵセット３１１を構成する１６個のＬＵのうち、ＬＵ０００＿３１１ａ、ＬＵ００１＿３１１ｅ、ＬＵ００２＿３１１ｉ及びＬＵ００３＿３１１ｍは、同一の筐体００＿３３１ａに割り当てられる。すなわち、これらの４個のＬＵは、ＨＤＤを共有する可能性がある。特に、筐体００＿３３１ａが一つのＲＡＩＤグループのみを含む場合、これらの４個のＬＵは、必ずＨＤＤを共有する。その場合、これらの４個のＬＵにデータを分散して格納することによるアクセス性能の向上は期待できない。筐体０１＿３３１ｂ、筐体０２＿３３１ｃ及び筐体０３＿３３１ｄに含まれるＬＵについても同様のことが言える。
【００６０】
一方、ＬＵセット３２１を構成する１６個のＬＵは、全て異なる筐体に割り当てられる。したがって、それらの１６個のＬＵへのアクセスを並行に実行することによって、ＬＵセット３２１に格納されたファイルのデータへのアクセス性能が向上する。
【００６１】
しかし、ＬＵセット３１１に格納されたデータにアクセスするために、４個の筐体のＨＤＤに電源を投入する必要があるのに対して、ＬＵセット３２１に格納されたデータにアクセスするためには、１６個の筐体のＨＤＤに電源を投入する必要がある。このため、ＬＵセット３２１内のデータにアクセスするためには、ＬＵセット３１１内のデータにアクセスする場合と比較して、より多くの電力が消費される。
【００６２】
上記のように、ＬＵセット３１１及びＬＵセット３２１に同一のデータが格納されている場合、要求されるアクセス性能及び消費電力に基づいて、ＬＵセット３１１及びＬＵセット３２１の一方がアクセス先として選択される。高いアクセス性能よりも消費電力の削減が優先される場合はＬＵセット３１１が、消費電力の削減よりも高いアクセス性能が優先される場合にはＬＵセット３２１が、アクセス先として選択される。
【００６３】
なお、いずれかのＬＵに、ストレージシステム１０２を管理するために必要なデータが格納される場合がある。このようなデータへのアクセスが常に可能になるように、このようなデータを格納する筐体の電源の遮断が禁止されてもよい。その場合、消費電力の削減が優先される場合に使用されるＬＵを、そのような電源の遮断が禁止された筐体に格納してもよい。これによって、電源が投入される筐体の数の増加を防ぐことができる。例えば、図３の例において、筐体００＿３３１ａ〜筐体０３＿３３１ｄは、電源の遮断を禁止されたものであってもよい。
【００６４】
次に、二つのＬＵセットのうち選択された一方へのホストコンピュータ１０１によるアクセスを可能にするための方法について、図４及び図２３から図２６を参照して説明する。
【００６５】
図４は、本発明の実施形態における論理的に単一なファイル記憶空間の構成の説明図である。
【００６６】
図１に示した計算機システムの構成のうち、論理的に単一なファイル記憶空間の説明に必要のない部分は、図４において省略されている。
【００６７】
ファイルシステムプログラム１１２は、図１に示した情報等に加えて、ＬＵ活性化部４１３、構成定義情報４１１及びファイルシステムのマウント先情報４１２を含む。ＬＵセット管理プログラム１１１は、図１に示した情報等に加えて、選択されたＬＵセット情報４２１を含む。これらについては後で詳細に説明する。
【００６８】
さらに、構成定義情報４１１、ファイルシステムのマウント先情報４１２及びＬＵセット管理情報１３１と同等の内容を含む情報がディスク４０１に格納される。
【００６９】
ディスク４０１は、いかなる物理的な記憶装置又は論理的な記憶領域によって実現されてもよい。例えば、ディスク４０１は、ストレージシステム１０２に含まれるＨＤＤ２３１ａ等のいずれかであってもよいし、ＬＵ２２１ａ等のいずれかであってもよいし、又は、ＳＡＮ１０４に接続された、ストレージシステム１０２から独立した記憶装置であってもよい。ただし、ＬＵセット管理プログラム１１１によるディスク４０１の電源制御は禁止されている必要がある。すなわち、ＬＵセット管理プログラム１１１は、ディスク４０１の電源を遮断することができない。
【００７０】
図４に示すサブデータ１＿４３１ａからサブデータ１６＿４３１ｐは、それぞれ、分散されたファイル記憶空間である。これらの１６個のサブデータは、それぞれ、ＬＵセット３１１に含まれるＬＵ０００＿３１１ａからＬＵ０３３＿３１１ｐまでの１６個のＬＵの記憶領域、又は、ＬＵセット３２１に含まれるＬＵ１００＿３２１ａからＬＵ４３０＿３２１ｐまでの１６個のＬＵの記憶領域のいずれか一方と対応付けられる。
【００７１】
図４は、便宜上、例えば、サブデータ１＿４３１ａがＬＵ０００＿３１１ａに対応付けられた状態と、ＬＵ１００＿３２１ａに対応付けられた状態との両方を図示している。しかし、実際は、サブデータ１＿４３１ａは、ＬＵ０００＿３１１ａ及びＬＵ１００＿３２１ａの両方に同時に対応付けられることはなく、選択された一方に対応付けられる。
【００７２】
サブデータ１＿４３１ａがＬＵ０００＿３１１ａに対応付けられる場合、サブデータ２＿４３１ｂからサブデータ１６＿４３１ｐは、それぞれ、ＬＵ００１＿３１１ｅからＬＵ０３３＿３１１ｐに対応付けられる。サブデータ１＿４３１ａがＬＵ１００＿３２１ａに対応付けられる場合、サブデータ２＿４３１ｂからサブデータ１６＿４３１ｐは、それぞれ、ＬＵ２００＿３２１ｅからＬＵ４３０＿３２１ｐに対応付けられる。これらの１６個のサブデータは、論理的に単一のファイル記憶空間として扱われる。
【００７３】
なお、図４においてサブデータ１＿４３１ａからサブデータ１６＿４３１ｐまでに表示された「１」から「１６」は、各サブデータを識別する情報である。この情報は、サブデータラベルとして図２４及び図２５において参照される。
【００７４】
図４に示すマスタデータ４３２は，ディスク４０２に格納される。マスタデータ４３２は，１６個のサブデータを論理的に単一のファイル記憶空間として扱うときに，１６個のサブデータ内に各々格納される部分ファイルを，一つの論理的なファイルとして扱うようにする情報を格納する。マスタデータ４３２は，例えば，論理的なファイルの名前や，複数の論理的なファイルをツリー構造で管理するための情報を保持する。
【００７５】
ディスク４０２もディスク４０１と同様に，いかなる物理的な記憶装置又は論理的な記憶領域によって実現されてもよい。また，ＬＵセット管理プログラム１１１は、ディスク４０２の電源を遮断することができないことも同様である。
【００７６】
なお、図４にはディスク４０１及びディスク４０２を示したが、これらが一つのディスクによって実現されてもよい。例えば、ディスク４０１にマスタデータ４３２を追加し、ディスク４０２を省略してもよい。
【００７７】
図２３は、本発明の実施形態の構成定義情報４１１の説明図である。
【００７８】
構成定義情報４１１は、ディレクトリ名２３０１を含む。ディレクトリ名２３０１は、各サブデータに対応するＬＵがマウントされるべきディレクトリ（すなわちマウントポイント）を識別するディレクトリ名のリストである。もちろん、構成定義情報４１１が保持する情報は、ディレクトリ名そのものである必要はなく、それに基づいてディレクトリ名を生成できる情報であれば、どのような情報であってもよい。
【００７９】
なお、構成定義情報４１１は、ストライピング格納のために必要な情報（例えばストライピングサイズを示す情報）をさらに含んでもよい。
【００８０】
図２４は、本発明の実施形態のファイルシステムのマウント先情報４１２の説明図である。
【００８１】
ファイルシステムのマウント先情報４１２は、ディレクトリ名２４０１及びサブデータラベル情報２４０２を含む。
【００８２】
サブデータラベル情報２４０２は、各サブデータを識別する情報である。
【００８３】
ディレクトリ名２４０１は、各サブデータに対応するＬＵがマウントされるべきディレクトリを識別するディレクトリ名である。
【００８４】
図２４の例では、ディレクトリ名２４０１の値「／ｓｕｂ／ｉｏ０１」に対応するサブデータラベル情報２４０２として「１」が登録されている。これは、サブデータラベル「１」によって識別されるサブデータ１＿４３１ａに対応付けられるＬＵ０００＿３１１ａ又はＬＵ１００＿３２１ａのいずれかが、マウントポイント「／ｓｕｂ／ｉｏ０１」にマウントされることを示す。ＬＵ０００＿３１１ａ及びＬＵ１００＿３２１ａのうちいずれがマウントされるかは、次に説明する選択されたＬＵセット情報４２１に基づいて判定される。
【００８５】
図２５は、本発明の実施形態の選択されたＬＵセット情報４２１の説明図である。
【００８６】
選択されたＬＵセット情報４２１は、サブデータラベル情報２５０１及び選択されたＬＵＩＤ２５０２を含む。
【００８７】
サブデータラベル情報２５０１は、サブデータラベル情報２４０２と同様、各サブデータを識別する情報である。
【００８８】
選択されたＬＵＩＤ２５０２は、サブデータラベル情報２５０１によって識別されるサブデータに対応付けられるＬＵを識別する情報である。なお、選択されたＬＵＩＤ２５０２は、ＬＵを一意に識別する情報であれば、どのようなものであってもよい。例えば、選択されたＬＵＩＤ２５０２は、デバイスファイル名であってもよいし、Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＵＩＤ）及びラベル名であってもよい。
【００８９】
図２５は、アクセス先としてＬＵセット３２１が選択された例を示す。この例では、サブデータラベル情報２５０１の値「１」に対応する選択されたＬＵＩＤ２５０２として、「１００」が登録されている。これは、ＬＵ０００＿３１１ａ及びＬＵ１００＿３２１ａのうちＬＵ１００＿３２１ａが、サブデータ１＿４３１ａに対応付けられるＬＵとして選択されたことを示す。
【００９０】
なお、ＬＵセットの選択は、後述する図１０、図１１及び図２２に示すように、ＬＵセット選択部１２１によって実行される。
【００９１】
図２６は、本発明の実施形態のＬＵ活性化部４１３が実行する処理を示すフローチャートである。
【００９２】
最初に、ＬＵ活性化部４１３は、構成定義情報４１１を参照して、サブデータとして使用されるディレクトリ名２３０１（すなわちマウントポイントを示す情報）を取得する（ステップ２６０１）。
【００９３】
次に、ＬＵ活性化部４１３は、ファイルシステムのマウント先情報４１２を参照して、各ディレクトリのマウント先を示す情報（すなわちサブデータラベル情報２４０２）を取得する（ステップ２６０２）。
【００９４】
次に、ＬＵ活性化部４１３は、ＬＵセット管理プログラム１１１から、選択されたＬＵセット情報４２１を受信する（ステップ２６０３）。
【００９５】
次に、ＬＵ活性化部４１３は、ステップ２６０３において受信した情報から、各サブデータラベル情報２５０１に対応する選択されたＬＵＩＤ２５０２を取得し、マウントを実行する（ステップ２６０４）。具体的には、ＬＵ活性化部４１３は、選択されたＬＵＩＤ２５０２に対応するサブデータラベル情報２５０１と同一のサブデータラベル情報２４０２に対応するディレクトリ名２４０１を取得し、そのディレクトリ名２４０１によって識別されるディレクトリに、選択されたＬＵＩＤ２５０２によって識別されるＬＵをマウントする。
【００９６】
上記の処理によって、ＬＵが活性化される。
【００９７】
例えば、ステップ２６０３において受信した情報に含まれる選択されたＬＵＩＤ２５０２が、図２５に示すように、ＬＵセット３２１に含まれるＬＵを識別する場合、図２６の処理によって、ＬＵセット３２１に含まれる各ＬＵが、ディレクトリ名２３０１によって識別される各ディレクトリにマウントされる。すなわち、これによって、ＬＵセット３２１に含まれるＬＵが活性化される。
【００９８】
既に説明したように、ＬＵセット３１１とそれに対応するＬＵセット３２１には、同一のファイルのデータが格納される。上記のようにＬＵセット３２１に含まれる各ＬＵが活性化された後、ファイルシステムプログラム１１２がそのファイルへのアクセス要求を受信した場合、ファイルシステムプログラム１１２は、選択されたＬＵセット３２１に含まれるＬＵに対するアクセスを実行する。
【００９９】
具体的には、ファイルシステムプログラム１１２は、ファイルの書き込み要求を実行する場合、一つのファイルのデータを、選択されたＬＵセット３２１に含まれる１６個のＬＵに分散して格納する。あるいは、ファイルシステムプログラム１１２は、ファイルの読み出し要求を実行する場合、選択されたＬＵセット３２１に含まれる１６個のＬＵに分散して格納された一つのファイルのデータを読み出す。この書き込み及び読み出しは、図２７及び図２８に示す処理によって実現される。
【０１００】
なお、アクセス先としてＬＵセット３１１が選択された場合、図２５において、サブデータラベル情報２５０１の値「１」〜「１６」に対応する選択されたＬＵＩＤ２５０２の値は、ＬＵセット３１１に含まれる各ＬＵの識別子、すなわち、「０００」〜「０３３」となる。この場合、図２６に示す処理によってＬＵセット３１１に含まれるＬＵが活性化され、その後、それらのＬＵへのアクセスが実行される。
【０１０１】
図２７は、本発明の実施形態のファイルシステムプログラム１１２が実行する論理ファイル作成処理を示すフローチャートである。
【０１０２】
図２７に示す処理は、ファイルシステムプログラム１１２内の論理ファイル作成部（図示省略）によって実行される。
【０１０３】
最初に、論理ファイル作成部は、構成定義情報４１１に基づいて、使用すべきサブデータを決定する（ステップ２７０１）。
【０１０４】
次に、論理ファイル作成部は、マスタデータ４３２上にマスタファイル（図示省略）を作成する（ステップ２７０２）。マスタファイルは、論理ファイルの名称に基づいて一意に決定される。このマスタファイルは、論理ファイルの部分内容を保持するために、使用すべき各サブデータ内に作成されるサブファイル（図示省略）を一意に決定する情報を含む。
【０１０５】
次に、論理ファイル作成部は、使用すべきサブデータ内に、論理ファイルの部分内容を保持するためのサブファイルを作成する（ステップ２７０３）。
【０１０６】
図２８は、本発明の実施形態のファイルシステムプログラム１１２が実行する論理ファイル入出力処理を示すフローチャートである。
【０１０７】
図２８に示す処理は、ファイルシステムプログラム１１２内の論理ファイル入出力部（図示省略）によって実行される。
【０１０８】
最初に、論理ファイル入出力部は、マスタデータ４３２上のマスタファイルの内容によって決定されるサブファイルの情報を取得する（ステップ２８０１）。
【０１０９】
次に、論理ファイル入出力部は、取得したサブファイルの情報に基づいて、サブファイルに対する読み出し又は書き込みを実行する（ステップ２８０２）。
【０１１０】
図５は、本発明の実施形態のＬＵセット管理情報１３１の説明図である。
【０１１１】
ＬＵセット管理情報１３１は、サブデータＩＤ５０１、性能優先５０２、省電力優先５０３及び同期完了フラグ５０４を含む。
【０１１２】
サブデータＩＤ５０１は、サブデータラベル情報２４０２等と同様の、各サブデータを識別する情報である。図５の例では、サブデータＩＤ５０１として、図４において説明した１６個のサブデータを識別する「１」〜「１６」が登録される。
【０１１３】
性能優先５０２は、性能優先モードにおいて選択されるＬＵの識別子である。性能優先モードとは、消費電力の削減よりもアクセス性能の向上が優先される場合に設定されるモードである。以下の説明において、性能優先モードは、モード１とも記載される。図５の例では、性能優先５０２として、ＬＵセット３２１に含まれるＬＵを識別する「１００」〜「４３０」が登録される。
【０１１４】
省電力優先５０３は、省電力優先モードにおいて選択されるＬＵの識別子である。省電力優先モードとは、アクセス性能の向上よりも消費電力の削減が優先される場合に設定されるモードである。以下の説明において、省電力優先モードは、モード２とも記載される。図５の例では、省電力優先５０３として、ＬＵセット３１１に含まれるＬＵを識別する「０００」〜「０３３」が登録される。
【０１１５】
同期完了フラグ５０４は、一つのサブデータに対応付けられる二つのＬＵを同期させる処理が完了したか否かを示すフラグである。一つのサブデータに対応付けられる二つのＬＵを同期させる処理が完了すると、それらのＬＵに対応する同期完了フラグ５０４の値として「Ｙｅｓ」が登録される。このとき、それらのＬＵには同一のデータが格納されている。その後、それらのＬＵに格納されたデータの一方のみが更新された場合、それらのＬＵに対応する同期完了フラグ５０４の値が「Ｎｏ」に更新される。このとき、それらのＬＵに格納されたデータの少なくとも一部は互いに相違する。
【０１１６】
図６は、本発明の実施形態の利用モード情報１３２の説明図である。
【０１１７】
利用モード情報１３２は、本実施形態において設定されるモードを管理する情報を含む。具体的には、利用モード情報１３２は、デフォルト６０１、デフォルトモード切替可否６０２、最終６０３、現在６０４、現在モード切替可否６０５及び一時６０６を含む。
【０１１８】
デフォルト６０１は、モードの選択を明示的に指示されていない場合に選択されるべきモード（すなわちデフォルトモード）を示す情報である。
【０１１９】
デフォルトモード切替可否６０２は、ユーザに現在設定されているモードの切り替えを許可するか否かを示す情報のデフォルト値である。後述するように（図１０参照）、マウント要求のオプションによってモードの切り替えの可否が指定されなかった場合、デフォルトモード切替可否６０２に登録された値によってモードの切り替えの可否が決定される。すなわち、その場合、デフォルトモード切替可否６０２に登録されたものと同じ値が、後述する現在モード切替可否６０５に登録される。
【０１２０】
最終６０３は、最後に設定されていたモードを示す情報である。具体的には、ＬＵをアンマウントするときに、そのアンマウントの直前に設定されていたモードを示す値（すなわち、アンマウントの直前に現在６０４として登録されていた値）が最終６０３として登録される。そのようにしてアンマウントされたＬＵを再びマウントするときに、後述する同期処理が実行される場合がある。その同期処理におけるコピー元及びコピー先を決定するために、最終６０３が参照される。
【０１２１】
現在６０４は、現在設定されているモードを示す情報である。
【０１２２】
現在モード切替可否６０５は、ユーザに現在のモードの切り替えを許可するか否かを示す情報である。現在モード切替可否６０５の値が「可」である場合、ユーザによる現在のモードの切り替えが許可される。
【０１２３】
一時６０６は、現在のモードの切り替えが許可されている場合に、現在のモードを切り替えることによって設定されるモードを示す情報である。例えば、現在省電力優先モードが設定されており、かつ、ユーザによる現在のモードの切り替えが許可されている場合、一時６０６として「性能優先モード」が登録される。
【０１２４】
図７は、本発明の実施形態の電源制御情報１３３の説明図である。
【０１２５】
電源制御情報１３３は、ＬＵＩＤ７０１、使用中フラグ７０２、ＲＧＩＤ７０３、電源制御単位ＩＤ７０４及び電源状態７０５を含む。
【０１２６】
ＬＵＩＤ７０１は、各ＬＵを識別する情報である。
【０１２７】
使用中フラグ７０２は、各ＬＵが使用されているか否か、すなわち、各ＬＵがマウントされているか否かを示す情報である。ＬＵがマウントされている場合、そのＬＵに対応する使用中フラグ７０２として「Ｙｅｓ」が登録される。
【０１２８】
ＲＧＩＤ７０３は、各ＬＵを含むＲＡＩＤグループ（ＲＧ）を識別する情報である。
【０１２９】
電源制御単位ＩＤ７０４は、各ＬＵを含む電源制御単位を識別する情報である。
【０１３０】
電源状態７０５は、各ＬＵを含む電源制御単位の電源の状態（すなわちＯＮ又はＯＦＦ）を示す情報である。電源状態７０５の値が「ＯＮ」であることは、その値に対応する電源制御単位に含まれるＨＤＤの電源がＯＮであることを示す。
【０１３１】
図７の例では、ＬＵＩＤ７０１の値「０００」に対応する使用中フラグ７０２、ＲＧＩＤ７０３、電源制御単位ＩＤ７０４及び電源状態７０５として、それぞれ、「Ｙｅｓ」、「００」、「００」及び「ＯＮ」が登録されている。これは、「０００」によって識別されるＬＵ０００＿３１１ａがマウントされており、ＬＵ０００＿３１１ａは「００」によって識別されるＲＡＩＤグループに含まれ、そのＲＡＩＤグループは「００」によって識別される電源制御単位（すなわち筐体００＿３３１ａ）に含まれ、筐体００＿３３１ａに含まれるＨＤＤの電源がＯＮであることを示す。
【０１３２】
なお、図３に示すように、一つの電源制御単位が複数のＬＵを含む場合がある。一つの電源制御単位に含まれるいずれのＬＵも使用されていない場合、その電源制御単位の電源をＯＦＦにすることができる。一方、その電源制御単位に含まれる複数のＬＵのうち少なくとも一つが使用されている場合、残りのＬＵが使用されていなくても、その電源制御単位の電源をＯＮにする必要がある。このため、使用中フラグ７０２の値「Ｙｅｓ」に対応する電源状態７０５の値は必ず「ＯＮ」であるが、使用中フラグ７０２の値「Ｎｏ」に対応する電源状態７０５の値は、「ＯＮ」である場合と「ＯＦＦ」である場合とがある。
【０１３３】
図８は、本発明の実施形態のＬＵセット切り替え条件情報１３４の説明図である。
【０１３４】
ＬＵセット切り替え条件情報１３４は、モードの切り替えを判定する条件（すなわち、マウントされるＬＵの切り替えを判定する条件）を管理する情報を含む。この判定は、後述する図１０のステップ１００１及び図１２のステップ１２０３において実行される。
【０１３５】
ＬＵセット切り替え条件情報１３４は、評価順位８０１、評価項目８０２、性能優先８０３及び省電力優先８０４を含む。
【０１３６】
評価順位８０１は、判定条件を評価する順位を示す。
【０１３７】
評価項目８０２は、判定条件として評価される項目を示す。
【０１３８】
性能優先８０３は、性能優先モードへの切り替えを判定する条件を示す。すなわち、性能優先８０３に登録された条件が満たされた場合、性能優先モードへの切り替え（言い換えると、性能優先モードに対応するＬＵセットへの切り替え）が実行される。
【０１３９】
省電力優先８０４は、省電力優先モードへの切り替えを判定する条件を示す。すなわち、省電力優先８０４に登録された条件が満たされた場合、省電力優先モードへの切り替え（言い換えると、省電力優先モードに対応するＬＵセットへの切り替え）が実行される。
【０１４０】
図８の例では、評価順位８０１の値「１」に対応する評価項目８０２、性能優先８０３及び省電力優先８０４として、それぞれ、「ｍｏｕｎｔ時指定」、「ｐｅｒｆ」及び「ｐｓａｖｅ」が登録されている（エントリ８１１）。この場合、マウント要求に含まれるモード指定が最初に判定される。具体的には、マウント時に「ｐｅｒｆ」が指定された場合（例えば、マウントコマンドのオプションやマウント関数のフラグ引数に「ｐｅｒｆ」が含まれる場合）、性能優先モードが設定される。すなわち、この場合、ＬＵセット３２１に含まれる各ＬＵがマウントされる。一方、マウント時に「ｐｓａｖｅ」が指定された場合、省電力優先モードが設定される。すなわち、この場合、ＬＵセット３１１に含まれる各ＬＵがマウントされる（図１０のステップ１００１及びステップ１００３参照）。
【０１４１】
マウント時に「ｐｅｒｆ」又は「ｐｓａｖｅ」のいずれも指定されなかった場合、利用モード情報１３２のデフォルト６０１に登録されたモードが設定される。
【０１４２】
上記のように、いずれかのモードに対応するＬＵがマウントされた後、種々のタイミングで、評価順位８０１の値「２」以降に対応する値に基づいてモードの切り替えが判定される（図１２のステップ１２０３参照）。
【０１４３】
具体的には、最初に評価順位８０１の値「２」に対応する値に基づいてモードの切り替えが判定される。その結果、「Ｏ＿ＰＥＲＦ」又は「Ｏ＿ＰＳＡＶＥ」のいずれも指定されなかった場合、評価順位８０１の値「３」に対応する値に基づく判定が実行される。以下同様に、ある評価順位８０１の値に対応する指定がなかった場合に、次の評価順位８０１の値に対応する指定に基づく判定が実行される。
【０１４４】
図８の例では、評価順位８０１の値「２」に対応する評価項目８０２、性能優先８０３及び省電力優先８０４として、それぞれ、「ｏｐｅｎ時指定」、「Ｏ＿ＰＥＲＦ」及び「Ｏ＿ＰＳＡＶＥ」が登録されている（エントリ８１２）。この場合、ファイルのオープン要求に含まれる指定に基づいて、ＬＵセットの切り替えが判定される。
【０１４５】
具体的には、オープン時に「Ｏ＿ＰＥＲＦ」が指定された場合（例えば、オープンコマンドのオプションやオープン関数のフラグ引数に「Ｏ＿ＰＥＲＦ」が含まれる場合）、性能優先８０３に登録された条件が満たされる。その時点で既に省電力優先モードが設定されていた場合、省電力優先モードから性能優先モードへの切り替えが実行される。すなわち、この場合、ＬＵセット３１１に含まれる各ＬＵがアンマウントされ、ＬＵセット３２１に含まれる各ＬＵがマウントされる。
【０１４６】
一方、オープン時に「Ｏ＿ＰＳＡＶＥ」が指定された場合、省電力優先８０４に設定された条件が満たされる。その時点で性能優先モードが設定されていた場合、性能優先モードから省電力優先モードへの切り替えが実行される。
【０１４７】
上記のエントリ８１１及びエントリ８１２によれば、マウントコマンドやマウント関数、又は、オープンコマンドやオープン関数による明示的なモードの設定（又は切り替え）が可能になる。例えば、ユーザは、高い性能が要求されるアクセスを実行しようとする場合、マウントコマンドやマウント関数、又は、オープンコマンドやオープン関数によって性能優先モードを指定してもよい。
【０１４８】
評価順位８０１の値「３」に対応する評価項目８０２、性能優先８０３及び省電力優先８０４として、それぞれ、「ファイル属性」、「ＰＥＲＦ」及び「ＰＳＡＶＥ」が登録されている（エントリ８１３）。この場合、ファイルの属性に基づいて、ＬＵセットの切り替えが判定される。
【０１４９】
具体的には、例えば、オープンコマンドやオープン関数によって指定されたファイル又はアクセス先として指定されたファイルの属性を示すメタデータに「ＰＥＲＦ」又は「ＰＳＡＶＥ」のいずれかが含まれる場合、そのメタデータを参照することによってファイルの属性が判定される。ファイルの属性を示すメタデータが「ＰＥＲＦ」を含む場合、性能優先８０３に登録された条件が満たされ、性能優先モードが設定される。一方、ファイルの属性を示すメタデータが「ＰＳＡＶＥ」を含む場合、省電力優先８０４に登録された条件が満たされ、省電力優先モードへの切り替えが実行される。
【０１５０】
例えば、システム管理者は、高速にアクセスされる必要があるファイルのメタデータに「ＰＥＲＦ」を加えることができる。これによって、アクセスされるファイルごとにモードを設定することが可能になる。
【０１５１】
評価順位８０１の値「４」に対応する評価項目８０２、性能優先８０３及び省電力優先８０４として、それぞれ、「環境変数」、「ＥＮＶ＿ＰＥＲＦ」及び「ＥＮＶ＿ＰＳＡＶＥ」が登録されている（エントリ８１４）。この場合、環境変数に基づいて、ＬＵセットの切り替えが判定される。
【０１５２】
具体的には、環境変数の「ＥＮＶ＿ＰＥＲＦ」が定義された場合、又は、環境変数の「ＥＮＶ＿ＰＥＲＦ」に規定の値（例えば１）が指定された場合、性能優先８０３に登録された条件が満たされ、性能優先モードが設定される。一方、環境変数の「ＥＮＶ＿ＰＳＡＶＥ」が定義された場合、又は、環境変数の「ＥＮＶ＿ＰＳＡＶＥ」に規定の値（例えば１）が指定された場合、省電力優先８０４に登録された条件が満たされ、省電力優先モードへの切り替えが実行される。
【０１５３】
評価順位８０１の値「５」に対応する評価項目８０２及び性能優先８０３として、それぞれ、「親プロセス名」及び「ジョブスケジューラ名」が登録されている（エントリ８１５）。この場合、現在実行されているジョブを起動した親プロセスの名前が、性能優先８０３に登録されているものと一致するか否かが判定される。それらが一致する場合、性能優先８０３に登録された条件が満たされ、性能優先モードへの切り替えが実行される。一方、それらが一致しない場合、性能優先８０３に登録された条件が満たされないため、モードの切り替えは実行されない。
【０１５４】
評価順位８０１の値「６」に対応する評価項目８０２及び性能優先８０３として、それぞれ、「実行ジョブ名」及び「ｊｏｂ１」が登録されている（エントリ８１６）。この場合、現在実行されているジョブの名前が、性能優先８０３に登録されている「ｊｏｂ１」と一致するか否かが判定される。それらが一致する場合、性能優先８０３に登録された条件が満たされ、性能優先モードへの切り替えが実行される。
【０１５５】
エントリ８１５及びエントリ８１６によれば、実行されるジョブの種類に基づいてモードを設定することができる。例えば、大規模なジョブが、所定の時間帯（例えば夜間）に実行されるようにジョブスケジューラに登録されている場合、そのジョブスケジューラの名前がエントリ８１５の性能優先８０３として登録されてもよいし、そのジョブ自体の名前がエントリ８１６の性能優先８０３として登録されてもよい。
【０１５６】
なお、エントリ８１５及びエントリ８１６による評価では、後述のユーザから受信するＬＵセット選択ヒント情報１４１で実行ジョブ名９０７や親プロセス名９０９が指定されない場合がある。これに備えるため、次に示すプロセスＩＤによる評価も可能にする。
【０１５７】
すなわち、性能優先８０３や省電力優先８０４に登録されている親プロセス名である「ジョブスケジューラ名」や実行ジョブ名である「ｊｏｂ１」を使って、ＯＳが管理するプロセスの実行状態情報を参照し、それぞれのプロセスＩＤを求める。求めたプロセスＩＤと、後述のＬＵセット選択ヒント情報１４１の実行ジョブのプロセスＩＤ９０８や親プロセスＩＤ９１０との一致又は不一致を判定して、エントリ８１５及びエントリ８１６の評価と同様の判定を可能にする。
【０１５８】
評価順位８０１の値「７」に対応する評価項目８０２及び性能優先８０３として、それぞれ、「グループＩＤ」及び「ｈｐｃ」が登録されている（エントリ８１７）。この場合、現在のジョブを実行したユーザが属するグループの名前が「ｈｐｃ」であるか否かが判定される。グループ名が「ｈｐｃ」である場合、性能優先８０３に登録された条件が満たされ、性能優先モードへの切り替えが実行される。
【０１５９】
評価順位８０１の値「８」に対応する評価項目８０２及び性能優先８０３として、それぞれ、「ユーザＩＤ」及び「ｆｏｏ、ｂａｒ」が登録されている（エントリ８１８）。この場合、現在のジョブを実行したユーザの名前が「ｆｏｏ」又は「ｂａｒ」であるか否かが判定さる。ユーザ名が「ｆｏｏ」又は「ｂａｒ」のいずれかである場合、性能優先８０３に登録された条件が満たされ、性能優先モードへの切り替えが実行される。
【０１６０】
エントリ８１７及びエントリ８１８によれば、ファイルにアクセスするユーザの名前に基づいてモードを設定することができる。例えば、常に高い性能が要求されるアクセスを実行するユーザは、自分のユーザ名又は自分が属するグループ名を性能優先８０３に登録してもよい。
【０１６１】
システム管理者又はユーザは、ＬＵセット切り替え条件情報１３４に任意の値を登録することができる。例えば、エントリ８１１からエントリ８１４は、システム管理者によって設定される、全てのユーザに共通する条件である。一方、エントリ８１５からエントリ８１８は、ユーザによって任意に設定されてもよい。ＬＵセット切り替え条件情報１３４は、各ユーザによって設定されたエントリ８１５からエントリ８１８と同様の情報をさらに含んでもよい。
【０１６２】
図９は、本発明の実施形態のＬＵセット選択ヒント情報１４１の説明図である。
【０１６３】
ＬＵセット選択ヒント情報１４１は、ファイルシステムプログラム１１２が、ユーザから受信したファイル操作要求等（例えば、ファイルのオープン要求）に基づいて作成し、ＬＵセット管理プログラム１１１に送信する情報である。
【０１６４】
具体的には、ＬＵセット選択ヒント情報１４１は、使用するファイルパス名９０１、ファイル使用時に指定されたオプション９０２、使用するファイルの属性９０３、環境変数９０４、ジョブ実行ユーザＩＤ９０５、ジョブ実行グループＩＤ９０６、実行ジョブ名９０７、実行ジョブのプロセスＩＤ９０８、親プロセス名９０９及び親プロセスＩＤ９１０を含む。
【０１６５】
ＬＵセット管理プログラム１１１は、受信したＬＵセット選択ヒント情報１４１とＬＵセット切り替え条件情報１３４とを比較することによって、モードの切り替え（すなわちＬＵセットの切り替え）を実行する条件が満たされるか否かを判定する（図１２のステップ１２０３参照）。
【０１６６】
具体的には、例えば、ファイル使用時に指定されたオプション９０２に「Ｏ＿ＰＥＲＦ」又は「Ｏ＿ＰＳＡＶＥ」が含まれる場合、その値とＬＵセット切り替え条件情報１３４の評価項目「ｏｐｅｎ時指定」（エントリ８１２）に対応する値とを比較することによって、条件が満たされるか否かが判定される。例えば、ファイル使用時に指定されたオプション９０２に「Ｏ＿ＰＥＲＦ」が含まれる場合、エントリ８１２の性能優先８０３に登録された条件が満たされると判定される。その場合、後述するように、性能優先モードが選択される。
【０１６７】
同様に、使用するファイルの属性９０３、環境変数９０４、ジョブ実行ユーザＩＤ９０５、ジョブ実行グループＩＤ９０６、実行ジョブ名９０７及び親プロセス名９０９が、それぞれ、ＬＵセット切り替え条件情報１３４の評価項目「ファイル属性」、「環境変数」、「ユーザＩＤ」、「グループＩＤ」、「実行ジョブ名」及び「親プロセス名」に対応する。
【０１６８】
図１０は、本発明の実施形態において、マウント要求が発行されたときにＬＵセット選択部１２１が実行する処理を示すフローチャートである。
【０１６９】
ＬＵセット選択部１２１は、マウント要求を受信すると、マウント要求のオプションによって性能優先モード又は省電力優先モードが指定されているか否かを判定する（ステップ１００１）。この判定は、マウント要求のオプションと、ＬＵセット切り替え条件情報１３４の評価項目「ｍｏｕｎｔ時指定」に対応する値とを比較することによって実行される。
【０１７０】
ステップ１００１において、いずれのモードも指定されていないと判定された場合、ＬＵセット選択部１２１は、利用モード情報１３２のデフォルト６０１によって指定されたモードを設定する（ステップ１００２）。例えば、図６に示すようにデフォルト６０１として省電力優先モードが指定されている場合、ＬＵセット選択部１２１は、省電力優先モードを設定する（すなわち、利用モード情報１３２の現在６０４として、デフォルト６０１と同一の値を登録する）。
【０１７１】
一方、ステップ１００１において、いずれかのモードが指定されていると判定された場合、ＬＵセット選択部１２１は、指定されたモードを利用モード情報１３２の現在６０４として登録する（ステップ１００３）。
【０１７２】
次に、ＬＵセット選択部１２１は、マウント要求のオプションによってモード切り替えの可否が指定されているか否かを判定する（ステップ１００４）。
【０１７３】
ステップ１００４において、モード切り替えの可否が指定されていないと判定された場合、ＬＵセット選択部１２１は、利用モード情報１３２のデフォルトモード切替可否６０２に登録された値（図６の例では、「可」）と同じ値を現在モード切替可否６０５に登録する（ステップ１００５）。
【０１７４】
一方、ステップ１００４において、モード切り替えの可否が指定されていると判定された場合、ＬＵセット選択部１２１は、指定された値（すなわち「可」又は「否」のいずれか）を、現在モード切替可否６０５に登録する（ステップ１００６）。
【０１７５】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の現在６０４に登録されたモードに対応するＬＵセットを制御対象に指定して、電源投入を電源制御部１２２に指示する（ステップ１００７）。
【０１７６】
具体的には、ＬＵセット選択部１２１は、ＬＵセット管理情報１３１に基づいて、現在６０４に登録されたモードに対応するＬＵを特定する。例えば、図６に示すように、現在６０４に省電力優先モードが登録されている場合、図５の省電力優先５０３に登録されたＬＵ０００＿３１１ａ〜ＬＵ０３３＿３１１ｐ（すなわちＬＵセット３１１）が特定される。そして、ＬＵセット選択部１２１は、電源制御情報１３３に基づいて、特定されたＬＵを含む電源制御単位を特定する。例えば、上記のようにＬＵ０００＿３１１ａ〜ＬＵ０３３＿３１１ｐが特定された場合、それらのＬＵを含む電源制御単位００＿３３１ａ〜電源制御単位０３＿３３１ｄが特定される。このため、ＬＵセット選択部１２１は、特定された電源制御単位００＿３３１ａ〜電源制御単位０３＿３３１ｄの電源投入を電源制御部１２２に指示する。
【０１７７】
電源投入を指示された電源制御部１２２が実行する処理については、図１４を参照して後述する。
【０１７８】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の現在６０４に登録された値が最終６０３に登録された値と異なるか否かを判定する（ステップ１００８）。
【０１７９】
現在６０４に登録された値が最終６０３に登録された値と異なる場合、今回のマウントが実行される以前に最後にマウントされていたＬＵセットと、今回マウントされるＬＵセット（すなわち、ステップ１００７において特定されたＬＵセット）とが異なる。この場合、今回マウントされるＬＵセットには最新のデータが格納されていない可能性がある。
【０１８０】
例えば、前回のマウント時に性能優先モードが指定された場合、ＬＵセット３２１に含まれるＬＵがマウントされる。そして、それらのＬＵに格納されたデータが更新された後でそれらのＬＵがアンマウントされると、その時点で、ＬＵセット３２１に格納された最新のデータは、ＬＵセット３１１に反映されていない（なお、この場合、利用モード情報１３２の最終６０３として、性能優先モードを示す値が登録される）。したがって、その後、今回のマウントによって省電力優先モードが指定された場合、省電力モードに対応するＬＵセット３１１に最新のデータを反映させる必要がある。
【０１８１】
このため、現在６０４に登録された値が最終６０３に登録された値と異なる場合、ＬＵセット選択部１２１は、利用モード情報１３２の最終６０３に登録されたモードに対応するＬＵセットを制御対象に指定して、電源投入を電源制御部１２２に指示する（ステップ１００９）。制御対象のＬＵは、ステップ１００７と同様の手順によって特定される。
【０１８２】
次に、ＬＵセット選択部１２１は、最終６０３に登録されたモードに対応するＬＵセットをコピー元、現在６０４に登録されたモードに対応するＬＵセットをコピー先に指定して、ＬＵセット同期起動部１２３を実行する（ステップ１０１０）。このときＬＵセット同期起動部１２３によって実行される処理については、図１３を参照して後述する。
【０１８３】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の最終６０３に登録されたモードに対応するＬＵセットを制御対象に指定して、電源遮断を電源制御部１２２に指示する（ステップ１０１１）。この指示を受信した電源制御部１２２が実行する処理については、図１４から図１６を参照して後述する。
【０１８４】
次に、ＬＵセット選択部１２１は、ＬＵセットの利用準備が完了したことを示す通知を送信する（ステップ１０１２）。このとき、ＬＵセット選択部１２１は、選択されたＬＵセットに属するＬＵ（すなわち、ステップ１００７において特定されたＬＵ）の識別子を送信してもよい。
【０１８５】
一方、ステップ１００８において、現在６０４に登録された値が最終６０３に登録された値と同一であると判定された場合、ステップ１００７において特定されたＬＵには最新のデータが格納されている。したがって、この場合、ステップ１００９〜ステップ１０１１は実行されず、ステップ１０１２が実行される。
【０１８６】
ステップ１０１２が実行された結果、選択されたＬＵセットに属する各ＬＵの識別子が、選択されたＬＵセット情報４２１の選択されたＬＵＩＤ２５０２に登録される。例えば、ＬＵセット３２１が選択された場合、図２５に示すように、ＬＵセット３２１に属するＬＵ１００＿３２１ａ〜ＬＵ４３０＿３２１ｐの識別子「１００」〜「４３０」が登録される。
【０１８７】
以上で、マウント要求が発行されたときにＬＵセット選択部１２１が実行する処理が終了する。
【０１８８】
図１１は、本発明の実施形態において、ＬＵセットを一時的に切り替えるときにＬＵセット選択部１２１が実行する処理を示すフローチャートである。
【０１８９】
最初に、ＬＵセット選択部１２１は、ファイルシステムプログラム１１２からＬＵセット選択ヒント情報１４１を受信する（ステップ１１０１）。
【０１９０】
次に、ＬＵセット選択部１２１は、ＬＵセットの一時的な切り替え（すなわちモードの一時的な切り替え）を実行するか否かを判定する（ステップ１１０２）。具体的には、ＬＵセット選択部１２１は、後述するＬＵセット一時切り替え可否判定処理を実行する（図１２参照）。
【０１９１】
ステップ１１０２において、ＬＵセットの一時的な切り替えを実行すると判定された場合、ＬＵセット選択部１２１は、利用モード情報１３２の現在６０４に登録されたモードに対応するＬＵセット（図６及び図５の例では、ＬＵセット３１１）を静止化する（ステップ１１０３）。ＬＵセットの静止化とは、ＬＵセットへのＩ／Ｏの停止を意味する。ＬＵセットに属するＬＵにこれから書き込まれるべきデータがＯＳによって保持されている場合、ＬＵセットへのＩ／Ｏを停止する前に、そのデータがＬＵに書き込まれる。
【０１９２】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の一時６０６に登録されたモードに対応するＬＵセット（図６及び図５の例では、性能優先モードに対応するＬＵセット３２１）を制御対象に指定して、電源投入を電源制御部１２２に指示する（ステップ１１０４）。
【０１９３】
次に、ＬＵセット選択部１２１は、現在６０４に登録されたモードに対応するＬＵセットをコピー元、一時６０６に登録されたモードに対応するＬＵセットをコピー先に指定して、ＬＵセット同期起動部１２３を実行する（ステップ１１０５）。
【０１９４】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の現在６０４に登録されたモードに対応するＬＵセットを制御対象に指定して、電源遮断を電源制御部１２２に指示する（ステップ１１０６）。
【０１９５】
次に、ＬＵセット選択部１２１は、ＬＵセットの利用準備が完了したことを示す通知を送信する（ステップ１１０７）。このとき、ＬＵセット選択部１２１は、選択されたＬＵセットに属するＬＵ（すなわち、ステップ１１０４において指定されたＬＵ）の識別子を送信してもよい。
【０１９６】
ステップ１１０２において、ＬＵセットの一時的な切り替えを実行しないと判定された場合、ＬＵセット選択部１２１は、ステップ１１０３からステップ１１０６を実行せずに、ステップ１１０７を実行する。
【０１９７】
ステップ１１０７が実行された結果、図１０のステップ１０１２の場合と同様、選択されたＬＵセットに属する各ＬＵの識別子が、選択されたＬＵセット情報４２１の選択されたＬＵＩＤ２５０２に登録される。
【０１９８】
以上で、オープン要求が発行されたときにＬＵセット選択部１２１が実行する処理が終了する。
【０１９９】
図１２は、本発明の実施形態のＬＵセット選択部１２１が実行するＬＵセット一時切り替え可否判定処理を示すフローチャートである。
【０２００】
図１２に示すＬＵセット一時切り替え可否判定処理は、図１１のステップ１１０２において実行される。
【０２０１】
最初に、ＬＵセット選択部１２１は、利用モード情報１３２の現在モード切替可否６０５の値が「可」であるか否かを判定する。
【０２０２】
現在モード切替可否６０５の値が「可」でない場合、モードの一時的な切り替え（すなわちＬＵセットの一時的な切り替え）は許可されない。このため、ＬＵセット選択部１２１は、利用モード情報１３２の一時６０６の値をクリアし（ステップ１２０８）、モードの一時的な切り替えを実行しないことを示す値（例えば「否」）を返し（ステップ１２０９）、ＬＵセット一時切り替え可否判定処理を終了する。ステップ１２０９が実行された場合、図１１のステップ１１０２において、ＬＵセットの一時的な切り替えを実行しないと判定される。
【０２０３】
一方、現在モード切替可否６０５の値が「可」である場合、モードの一時的な切り替えが許可される。この場合、次に、ＬＵセット選択部１２１は、ＬＵセット管理情報１３１を参照し、モードの異なる複数のＬＵセットが対応付けて登録されているか否かを判定する（ステップ１２０２）。
【０２０４】
図５の例では、性能優先モードのＬＵセット３２１と、省電力モードのＬＵセット３１１とが対応付けて登録されている。この場合、ステップ１２０２において、モードの異なる複数のＬＵセットが対応付けて登録されていると判定される。
【０２０５】
ステップ１２０２において、モードの異なる複数のＬＵセットが対応付けて登録されていないと判定された場合、ＬＵセット選択部１２１は、モードの一時的な切り替えを実行することができない。このため、ＬＵセット選択部１２１は、ステップ１２０８及びステップ１２０９を実行して、ＬＵセット一時切り替え可否判定処理を終了する。
【０２０６】
一方、ステップ１２０２において、モードの異なる複数のＬＵセットが対応付けて登録されていると判定された場合、ＬＵセット選択部１２１は、ＬＵセット選択ヒント情報１４１に基づいてＬＵセット切り替え条件情報１３４を評価することによって、切り替え条件を満たすモードのＬＵセットがあるか否か（すなわち、いずれかの評価項目８０２において、性能優先８０３又は省電力優先８０４に登録された条件が満たされるか否か）を判定する（ステップ１２０３）。この判定の方法は、図８及び図９を参照して説明した通りである。
【０２０７】
ステップ１２０３において、切り替え条件を満たすモードのＬＵセットがないと判定された場合、ＬＵセット選択部１２１は、モードの一時的な切り替えを実行する必要がない。このため、ＬＵセット選択部１２１は、ステップ１２０８及びステップ１２０９を実行して、ＬＵセット一時切り替え可否判定処理を終了する。
【０２０８】
一方、ステップ１２０３において、切り替え条件を満たすモードのＬＵセットがあると判定された場合、ＬＵセット選択部１２１は、切り替え条件を満たすモードを示す値を、利用モード情報１３２の一時６０６に登録する（ステップ１２０４）。
【０２０９】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の一時６０６に登録された値が現在６０４に登録された値と異なるか否かを判定する（ステップ１２０５）。
【０２１０】
ステップ１２０５において、一時６０６に登録された値が現在６０４に登録された値と同一であると判定された場合、モードを切り替える必要がない。このため、ＬＵセット選択部１２１は、ステップ１２０８及びステップ１２０９を実行して、ＬＵセット一時切り替え可否判定処理を終了する。
【０２１１】
一方、ステップ１２０５において、一時６０６に登録された値が現在６０４に登録された値と異なると判定された場合、ＬＵセット選択部１２１は、現在６０４に登録されたモードに対応するＬＵセットが使用されているか否かを判定する（ステップ１２０６）。たとえば、具体的には、ＬＵセット選択部１２１は、ＯＳが管理するＬＵをアンマウントできるかどうかの情報を参照し、アンマウント可能か否かを判定する。アンマウント可能であればＬＵは使用されていないと判定し、アンマウントが不可能であればＬＵが使用されていると判定する。ＬＵをアンマウントできるか否かは、例えば、ｆｕｓｅｒコマンドによって取得される情報に基づいて判定されてもよい。
【０２１２】
ステップ１２０６において、現在６０４に登録されたモードに対応するＬＵセットが使用されていると判定された場合、それらのＬＵを含む電源制御単位の電源を遮断することができない。すなわち、その場合、モードを切り替えることができない。このため、ＬＵセット選択部１２１は、ステップ１２０８及びステップ１２０９を実行して、ＬＵセット一時切り替え可否判定処理を終了する。
【０２１３】
一方、ステップ１２０６において、現在６０４に登録されたモードに対応するＬＵセットが使用されていないと判定された場合、ＬＵセット選択部１２１は、モードの一時的な切り替えを実行することを示す値（例えば「可」）を返し（ステップ１２０７）、ＬＵセット一時切り替え可否判定処理を終了する。ステップ１２０７が実行された場合、図１１のステップ１１０２において、ＬＵセットの一時的な切り替えを実行すると判定される。
【０２１４】
図１３は、本発明の実施形態のＬＵセット同期起動部１２３が実行する処理を示すフローチャートである。
【０２１５】
図１３に示す処理は、図１０のステップ１０１０及び図１１のステップ１１０５において実行される。
【０２１６】
最初に、ＬＵセット同期起動部１２３は、ＬＵセット管理情報１３１の同期完了フラグ５０４を参照して、コピー元として指定されたＬＵと、それに対応するコピー先として指定されたＬＵとからなる全てのＬＵの組が同期しているか否かを判定する（ステップ１３０１）。
【０２１７】
ステップ１３０１において、少なくとも一つのＬＵの組が同期していないと判定された場合、その組の一方のＬＵに格納された最新のデータが、もう一方のＬＵに反映されていない。この場合、ＬＵセット同期起動部１２３は、同期していないＬＵの組について、コピー先のＬＵをコピー元のＬＵに同期させる指示（すなわち、コピー元のＬＵに格納されたデータをコピー先のＬＵにコピーさせる指示）を、ＬＵ間同期プログラム１５１に送信する（ステップ１３０２）。コピーが完了すると、ＬＵセット同期起動部１２３は、コピーが実行されたＬＵの組に対応する同期完了フラグ５０４の値を「Ｙｅｓ」に更新して、処理を終了する。
【０２１８】
一方、ステップ１３０１において、全てのＬＵの組が同期していると判定された場合、ＬＵセット同期起動部１２３は、ステップ１３０２を実行せずに、処理を終了する。
【０２１９】
図１３に示す処理によって、今回選択されたＬＵセットと、それ以前に選択されたＬＵセットとが同一であるか否かが判定される。それらが同一でない場合、以前に選択されたＬＵセットにおいてその以前の選択の後に更新されたデータが今回選択されたＬＵセットにコピーされる。
【０２２０】
なお、図１８及び図１９を参照して後述するように、互いに対応する二つのＬＵに含まれるデータのうち、同期する必要がないデータとして指定されたもの（例えばメタデータ）のみが相違する場合、同期完了フラグ５０４の値は「Ｙｅｓ」である。したがって、その場合、同期のためのコピー（ステップ１３０２）は実行されない。
【０２２１】
図１４は、本発明の実施形態の電源制御部１２２が実行する処理を示すフローチャートである。
【０２２２】
図１４に示す処理は、図１０のステップ１００７、ステップ１００９、ステップ１０１１、図１１のステップ１１０４及びステップ１１０６において送信された指示を受信した電源制御部１２２によって実行される。
【０２２３】
最初に、電源制御部１２２は、電源投入（すなわち電源ＯＮ）を指示されたか否かを判定する（ステップ１４０１）。
【０２２４】
電源投入を指示された場合、電源制御部１２２は、電源ＯＮ処理を実行する（ステップ１４０２）。電源ＯＮ処理については、図１５を参照して後述する。
【０２２５】
一方、電源ＯＮを指示されなかった場合、電源遮断（すなわち電源ＯＦＦ）を指示されている。この場合、電源制御部１２２は、電源ＯＦＦ処理を実行する（ステップ１４０３）。電源ＯＦＦ処理については、図１６を参照して後述する。
【０２２６】
ステップ１４０２又はステップ１４０３が終了すると、電源制御部１２２は処理を終了する。
【０２２７】
図１５は、本発明の実施形態の電源制御部１２２が実行する電源ＯＮ処理を示すフローチャートである。
【０２２８】
電源ＯＮ処理は、図１４のステップ１４０２において実行される。
【０２２９】
最初に、電源制御部１２２は、電源制御情報１３３を参照し、制御対象として指定されたＬＵセットに含まれるＬＵが属する全ての電源制御単位の電源状態７０５が「ＯＮ」であるか否かを判定する（ステップ１５０１）。
【０２３０】
ステップ１５０１において、制御対象として指定されたＬＵセットに含まれるＬＵが属する電源制御単位のうち少なくとも一つの電源状態７０５が「ＯＦＦ」であると判定された場合、電源制御部１２２は、制御対象として指定されたＬＵセットに含まれるＬＵが属する電源制御単位のうち、電源状態７０５が「ＯＦＦ」であるものの電源をＯＮにする指示をストレージシステム１０２又はＳＶＰ１０３に送信する（ステップ１５０２）。
【０２３１】
ただし、ステップ１５０２において特定された電源制御単位の電源制御が禁止されている場合がある。例えば、ストレージシステム１０２を管理するために必要な情報を格納する電源制御単位は、常時電源ＯＮに設定され、電源遮断が禁止される。ステップ１５０２において、このような電源制御が禁止された電源制御単位の電源を「ＯＮ」にする指示を送信する必要はない。
【０２３２】
なお、ステップ１５０２の指示がＳＶＰ１０３に送信された場合、ＳＶＰ１０３は、受信した指示によって指定された電源制御単位の電源をＯＮにする指示を、ストレージシステム１０２に送信する。これは、後述するステップ１６０３においても同様である。
【０２３３】
次に、電源制御部１２２は、ステップ１５０２の指示によって電源がＯＮに変更された電源制御単位に対応する電源状態７０５の値を「ＯＮ」に更新する（ステップ１５０３）。
【０２３４】
次に、電源制御部１２２は、制御対象として指定されたＬＵセットに含まれるＬＵの使用中フラグ７０２の値を「Ｙｅｓ」に更新する（ステップ１５０４）。
【０２３５】
ステップ１５０１において、制御対象として指定されたＬＵセットに含まれるＬＵが属する全ての電源制御単位の電源状態７０５が「ＯＮ」であると判定された場合、既にそれらの電源制御単位の電源が投入されている。このため、電源制御部１２２は、ステップ１５０２及びステップ１５０３を実行せずに、ステップ１５０４を実行する。
【０２３６】
電源制御部１２２は、ステップ１５０４の実行が終了すると、電源ＯＮ処理を終了する。
【０２３７】
図１６は、本発明の実施形態の電源制御部１２２が実行する電源ＯＦＦ処理を示すフローチャートである。
【０２３８】
電源ＯＦＦ処理は、図１４のステップ１４０３において実行される。
【０２３９】
最初に、電源制御部１２２は、電源制御情報１３３を参照して、制御対象として指定されたＬＵセットに含まれるＬＵの使用中フラグ７０２の値を「Ｎｏ」に更新する（ステップ１６０１）。
【０２４０】
次に、電源制御部１２２は、ステップ１６０１において使用中フラグ７０２の値を「Ｎｏ」に更新されたＬＵの電源制御単位ＩＤ７０４の値を参照する。そして、電源制御部１２２は、参照された値と同一の電源制御単位ＩＤ７０４に対応する全てのＬＵの使用中フラグ７０２の値が「Ｎｏ」であるか否かを判定する（ステップ１６０２）。
【０２４１】
例えば、ステップ１６０１においてＬＵ０００＿３１１ａに対応する使用中フラグ７０２の値が「Ｙｅｓ」から「Ｎｏ」に更新された場合、電源制御部１２２は、ステップ１６０２において、ＬＵ０００＿３１１ａを格納する電源制御単位に格納される他のＬＵ（図７及び図３の例では、筐体００＿３３１ａに格納されるＬＵ００１＿３１１ｅ、ＬＵ００２＿３１１ｉ及びＬＵ００３＿３１１ｍ）の使用中フラグ７０２の値が「Ｎｏ」であるか否かを判定する。
【０２４２】
ステップ１６０２において、該当する全てのＬＵの使用中フラグ７０２の値が「Ｎｏ」である（すなわち、ステップ１６０１において使用中フラグ７０２の値を「Ｎｏ」に更新されたＬＵを含む電源制御単位は、使用されていないＬＵのみを含む）と判定された場合、それらのＬＵを含む電源制御単位の電源をＯＦＦにすることができる。このため、電源制御部１２２は、ステップ１６０１において使用中フラグ７０２の値を「Ｎｏ」に更新されたＬＵを含む電源制御単位の電源をＯＦＦにする指示をストレージシステム１０２又はＳＶＰ１０３に送信する（ステップ１６０３）。これによって、アクセス先として選択されたＬＵが割り当てられていないＨＤＤのディスク回転が停止される。
【０２４３】
ただし、その電源制御単位の電源制御が禁止されている場合、電源制御部１２２は、ステップ１６０３の指示を送信しない。
【０２４４】
次に、電源制御部１２２は、ステップ１６０３において電源がＯＦＦに変更された電源制御単位の電源状態７０５の値を「ＯＦＦ」に更新する（ステップ１６０４）。
【０２４５】
電源制御部１２２は、ステップ１６０４の実行が終了すると、電源ＯＦＦ処理を終了する。
【０２４６】
一方、ステップ１６０２において、該当する全てのＬＵのうち少なくとも一つの使用中フラグ７０２の値が「Ｙｅｓ」である場合、ステップ１６０１において使用中フラグ７０２の値を「Ｎｏ」に更新されたＬＵを含む電源制御単位は、使用されているＬＵを少なくとも一つ含む。この場合、ステップ１６０１において使用中フラグ７０２の値を「Ｎｏ」に更新されたＬＵを含む電源制御単位の電源をＯＦＦにすることができない。したがって、この場合、電源制御部１２２は、ステップ１６０３及びステップ１６０４を実行せずに、電源ＯＦＦ処理を終了する。
【０２４７】
図１７は、本発明の実施形態の切り替え条件登録部１２４が実行する処理を示すフローチャートである。
【０２４８】
切り替え条件登録部１２４は、ＬＵセット切り替え条件情報１３４を登録するために、図１７に示す処理を実行する。図１７に示す処理は、任意のタイミングで実行されてよい。例えば、図１に示す計算機システムの運用が開始される前に図１７に示す処理が実行されてもよい。さらに、ＬＵセット切り替え条件情報１３４に登録された内容を変更するために、任意のタイミングで図１７に示す処理が実行されてもよい。
【０２４９】
最初に、切り替え条件登録部１２４は、評価項目、評価項目として登録すべき内容、及び、その内容に対応するモードの識別情報（又は、そのモードに対応するＬＵセットの識別情報）を受信する（ステップ１７０１）。これらの情報は、例えば、システム管理者又はユーザによってホストコンピュータ１０１に入力されてもよい。
【０２５０】
次に、切り替え条件登録部１２４は、ステップ１７０１において受信した情報を、ＬＵセット切り替え条件情報１３４に登録する（ステップ１７０２）。具体的には、切り替え条件登録部１２４は、受信した評価項目を評価項目８０２として登録する。そして、切り替え条件登録部１２４は、評価項目として登録すべき内容を、性能優先８０３及び省電力優先８０４のうち、受信したモードの識別情報に対応する方に登録する。
【０２５１】
例えば、ステップ１７０１において、切り替え条件登録部１２４が、評価項目として「ｍｏｕｎｔ時指定」、性能優先モードに対応する評価項目として登録すべき内容として「ｐｅｒｆ」、省電力モードに対応する評価項目として登録すべき内容として「ｐｓａｖｅ」を受信した場合、ＬＵセット切り替え条件情報１３４の評価項目８０２として「ｍｏｕｎｔ時指定」、性能優先８０３として「ｐｅｒｆ」、省電力優先８０４として「ｐｓａｖｅ」が登録される（図８参照）。
【０２５２】
次に、サブデータ（例えばサブデータ１＿４３１ａ〜サブデータ１６＿４３１ｐ）の更新を管理する処理、及び、その処理に用いられる情報について、図１８から図２１を参照して説明する。
【０２５３】
図５を参照して説明したように、一つのサブデータに対応付けられた二つのＬＵのうち一方に格納されたデータが更新されると、そのサブデータに対応する同期完了フラグ５０４が「Ｎｏ」に更新される。その後、同期完了フラグ５０４が「Ｎｏ」であるＬＵの組において、同期処理が実行される（図１３参照）。
【０２５４】
しかし、実際には、上記のようなＬＵの組において、各ＬＵに格納されたデータの全てを同期する必要があるわけではない。一般に、ファイル管理の属性を示す情報（すなわち、ファイルの属性を示す情報、及び、記憶空間全体のファイルシステムのメタデータ等）を同期する必要はない。具体的には、例えば、ＬＵがマウントされると、そのマウントが実行されたことを示す管理情報がそのＬＵに書き込まれる。そのような管理情報を他のＬＵにコピーする必要はない。
【０２５５】
本実施形態では、同期する必要があるデータが更新された場合のみ同期が実行されるように、図１８等の処理が実行される。これによって不必要な同期が実行されることを防ぐことができる。
【０２５６】
図２０は、本発明の実施形態のサブデータ更新通知除外情報１３５の説明図である。
【０２５７】
サブデータ更新通知除外情報１３５は、上記のＬＵの組に格納されたデータのうち、同期する必要がないデータを管理する。具体的には、サブデータ更新通知除外情報１３５は、分類２００１及び除外項目２００２を含む。
【０２５８】
分類２００１は、同期する必要がないデータの分類を示す。図２０の例では、分類２００１として、メタデータ、データ（ディレクトリ）及びデータ（ファイル）が登録される。
【０２５９】
除外項目２００２は、同期する必要がないデータを特定する情報である。
【０２６０】
例えば、図２０では、分類２００１の値「メタデータ」に対応する除外項目２００２として、「マウント時更新情報」及び「ａｔｉｍｅ（アクセス時間）」が登録されている（エントリ２０１１参照）。これは、ＬＵに格納されるメタデータ（すなわち、サブデータを管理するためのデータ）のうち、マウント時更新情報及びアクセス時間を示す情報を同期する必要がないことを示す。ここで、マウント時更新情報とは、例えば、ＬＵがマウントされたことを示す情報である。
【０２６１】
図２０では、分類２００１の値「データ（ディレクトリ）」に対応する除外項目２００２として、「／ｔｍｐ」が登録されている（エントリ２０１２参照）。これは、ＬＵに格納されるデータのうち、ディレクトリ「／ｔｍｐ」の下のファイルのデータを同期する必要がないことを示す。
【０２６２】
さらに、図２０では、分類２００１の値「データ（ファイル）」に対応する除外項目２００２として、「／ｌａｒｇｅ／ｌｏｇ」及び「／ｌａｒｇｅ／ｍｅｓｓａｇｅｓ」が登録されている（エントリ２０１３参照）。これは、ＬＵに格納されるデータのうち、ファイル「／ｌａｒｇｅ／ｌｏｇ」及び「／ｌａｒｇｅ／ｍｅｓｓａｇｅｓ」のデータを同期する必要がないことを示す。
【０２６３】
図２１は、本発明の実施形態のサブデータ更新情報１４２の説明図である。
【０２６４】
サブデータ更新情報１４２は、各サブデータに含まれるデータ（すなわち、各サブデータに対応するＬＵに格納されたデータ）の更新を管理する情報である。具体的には、サブデータ更新情報１４２は、サブデータ２１０１、更新済み２１０２及び通知済み２１０３を含む。
【０２６５】
サブデータ２１０１は、各サブデータの識別子である。例えば、サブデータ２１０１として、サブデータ１＿４３１ａ〜サブデータ１６＿４３１ｐのサブデータラベル「１」〜「１６」が登録される
更新済み２１０２は、各サブデータに含まれるデータが更新されたか否かを示す情報である。更新済み２１０２の値「Ｙｅｓ」は、データが更新されたことを示す。
【０２６６】
通知済み２１０３は、各サブデータに含まれるデータが更新された後、その更新がＬＵセット管理プログラム１１１に通知されたか否かを示す情報である。通知済み２１０３の値「Ｙｅｓ」は、更新が通知されたことを示す。
【０２６７】
例えば、各サブデータが、二つのＬＵセットのうち一方に属する各ＬＵと新たに対応付けられたときに、サブデータ更新情報１４２が作成されてもよい。この時点で、二つのＬＵセットは同期しているため、更新済み２１０２及び通知済み２１０３の初期値は「Ｎｏ」である。
【０２６８】
図１８は、本発明の実施形態のサブデータ更新情報管理部１４３が実行する処理を示すフローチャートである。
【０２６９】
図１８に示す処理は、ファイルシステムプログラム１１２が書き込み処理を実行するときにサブデータ更新情報管理部１４３によって実行される。
【０２７０】
最初に、サブデータ更新情報管理部１４３は、サブデータ更新情報１４２を参照して、書き込み処理によってデータが書き込まれるサブデータに対応する更新済み２１０２の値が「Ｙｅｓ」であるか否かを判定する（ステップ１８０１）。
【０２７１】
ステップ１８０１において、更新済み２１０２の値が「Ｎｏ」であると判定された場合、サブデータ更新情報管理部１４３は、更新されたデータがサブデータ更新通知除外情報１３５の除外項目２００２に該当するか否かを判定する（ステップ１８０２）。
【０２７２】
ステップ１８０２において、更新されたデータが除外項目２００２に該当しないと判定された場合、更新されたデータは、同期する必要があるデータである。この場合、ステップ１８０３において、サブデータ更新情報管理部１４３は、そのサブデータに対応する更新済み２１０２の値を「Ｙｅｓ」に更新する。
【０２７３】
一方、ステップ１８０２において、更新されたデータが除外項目２００２に該当すると判定された場合、更新されたデータは、同期する必要がないデータである。この場合、ステップ１８０３を実行せずにステップ１８０４に進む。
【０２７４】
もう一方、ステップ１８０１において、更新済み２１０２の値が「Ｙｅｓ」であると判定された場合、同期する必要があるデータであることは既にわかっている。この場合、サブデータ更新情報管理部１４３は、ステップ１８０２及びステップ１８０３を実行せずにステップ１８０４に進む。
【０２７５】
ステップ１８０４において、通知済み２１０３の値が「Ｎｏ」であると判定された場合、サブデータ更新情報管理部１４３は、サブデータ内のデータが更新されたことをＬＵセット管理プログラム１１１に通知する（ステップ１８０５）。この通知には、更新されたデータを含むサブデータ（以下、更新されたサブデータと記載する）を識別する情報が含まれる。さらに、サブデータ更新情報管理部１４３は、更新されたサブデータに対応する通知済み２１０３の値を「Ｙｅｓ」に更新する。
【０２７６】
以上でサブデータ更新情報管理部１４３の処理が終了する。
【０２７７】
一方、ステップ１８０４において、通知済み２１０３の値が「Ｙｅｓ」であると判定された場合、同期する必要があるデータがあることはＬＵセット管理プログラム１１１に通知済みである。この場合、サブデータ更新情報管理部１４３は、ステップ１８０５を実行せずに処理を終了する。
【０２７８】
なお、図１８では、ステップ１８０１からステップ１８０３に続いて、ステップ１８０４を実行するように図示している。しかし、ステップ１８０４及びステップ１８０５の処理は、ステップ１８０１からステップ１８０３の処理とは独立に、別のタイミングで実行されてもよい。この場合、ＬＵセット管理プログラム１１１に対して、同期する必要があるサブデータが複数あることを一括して通知することが可能となる。
【０２７９】
図１９は、本発明の実施形態のＬＵ更新情報登録部１２５が実行する処理を示すフローチャートである。
【０２８０】
ＬＵ更新情報登録部１２５は、図１８のステップ１８０４において送信された通知を受信したときに、図１９に示す処理を実行する。
【０２８１】
最初に、ＬＵ更新情報登録部１２５は、更新されたサブデータの識別子を受信する（ステップ１９０１）。この識別子は、図１８のステップ１８０４において送信された通知に含まれる。
【０２８２】
次に、ＬＵ更新情報登録部１２５は、更新されたサブデータを格納するＬＵ（すなわち、更新されたサブデータに対応付けられたＬＵ）がＲｅａｄ  Ｏｎｌｙで使用されているか否かを判定する（ステップ１９０２）。
【０２８３】
ステップ１９０２において、更新されたサブデータを格納するＬＵがＲｅａｄ  Ｏｎｌｙで使用されていないと判定された場合、そのＬＵ内への新規データの書き込み及びそのＬＵに格納されているデータの更新が許可されている。この場合、ＬＵ更新情報登録部１２５は、更新されたサブデータを格納するＬＵに対応するＬＵセット管理情報１３１の同期完了フラグ５０４を「Ｎｏ」に更新して（ステップ１９０３）、処理を終了する。
【０２８４】
一方、ステップ１９０２において、更新されたサブデータを格納するＬＵがＲｅａｄ  Ｏｎｌｙで使用されていると判定された場合、そのＬＵ内への新規データの書き込み及びそのＬＵに格納されているデータの更新がいずれも禁止されている。この場合、ＬＵ更新情報登録部１２５は、ステップ１９０３を実行せずに処理を終了する。
【０２８５】
図１８及び図１９に示す処理によれば、互いに対応する二つのＬＵの同期処理（図１３のステップ１３０２）が実行された後、それらの一方に含まれるデータが更新されると、それらの二つのＬＵに対応する同期完了フラグ５０４の値が「Ｎｏ」に更新される。ただし、同期する必要がないデータ（例えばメタデータ）のみが更新された場合、同期完了フラグ５０４の値は「Ｙｅｓ」のまま維持される。
【０２８６】
言い換えると、同期完了フラグ５０４の値「Ｎｏ」に対応する二つのＬＵに含まれるデータのうち、同期する必要があるデータの少なくとも一部が互いに相違している。一方、同期完了フラグ５０４の値「Ｙｅｓ」に対応する二つのＬＵに含まれるデータのうち、少なくとも、同期する必要があるデータは同一である。
【０２８７】
図２２は、本発明の実施形態において、一時的に切り替えられたＬＵセットの運用を終了するときにＬＵセット選択部１２１が実行する処理を示すフローチャートである。
【０２８８】
具体的には、図２２は、図１１に示す処理によってＬＵセットが一時的に切り替えられた後、その切り替えられたＬＵセットの運用を終了し、再び元のＬＵセット（すなわち、現在６０４に登録されたモードに対応するＬＵセット）の運用を開始するために実行される処理を示す。
【０２８９】
最初に、ＬＵセット選択部１２１は、利用モード情報１３２の一時６０６に登録されたモードに対応するＬＵセット（図６及び図５の例では、性能優先モードに対応するＬＵセット３２１）が使用されているか否かを判定する（ステップ２２０１）。具体的には、ＬＵセットに属する全ＬＵに対応する使用中フラグ７０２の全ての値が「Ｎｏ」である場合、そのＬＵセットが使用されていないと判定される。一方、ＬＵセットに属する少なくとも一つのＬＵに対応する使用中フラグ７０２の値が「Ｙｅｓ」である場合、そのＬＵセットが使用されていると判定される。
【０２９０】
ステップ２２０１において、ＬＵセットが使用されていないと判定された場合、ＬＵセット選択部１２１は、そのＬＵセットを静止化する（ステップ２２０２）。
【０２９１】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の現在６０４に登録されたモードに対応するＬＵセット（図６及び図５の例では、省電力モードに対応するＬＵセット３１１）を制御対象に指定して、電源投入を電源制御部２５２に指示する（ステップ２２０３）。
【０２９２】
次に、ＬＵセット選択部１２１は、一時６０６に登録されたモードに対応するＬＵセットをコピー元、現在６０４に登録されたモードに対応するＬＵセットをコピー先に指定して、ＬＵセット同期起動部１２３を実行する（ステップ２２０４）。
【０２９３】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の一時６０６に登録されたモードに対応するＬＵセットを制御対象に指定して、電源遮断を電源制御部２５２に指示する（ステップ２２０５）。
【０２９４】
次に、ＬＵセット選択部１２１は、利用モード情報１３２の一時６０６に登録された値をクリアする（ステップ２２０６）。
【０２９５】
次に、ＬＵセット選択部１２１は、ＬＵセットの利用準備が完了したことを示す通知を送信する（ステップ２２０７）。このとき、ＬＵセット選択部１２１は、現在６０４に登録されたモードに対応するＬＵセットに属するＬＵの識別子を送信してもよい。
【０２９６】
ステップ２２０７が実行された結果、図１０のステップ１０１２の場合と同様、選択されたＬＵセットに属する各ＬＵの識別子が、選択されたＬＵセット情報４２１の選択されたＬＵＩＤ２５０２に登録される。
【０２９７】
以上で、ＬＵセット選択部１２１は処理を終了する。
【０２９８】
一方、ステップ２２０１において、ＬＵセットが使用されていると判定された場合、そのＬＵセットの電源を遮断することができない。このため、ＬＵセット選択部１２１は、ステップ２２０２からステップ２２０７を実行せずに処理を終了する。
【０２９９】
以上、本発明の実施形態によれば、同一のデータを格納する二つのＬＵセットが使用される。それらの一方は、比較的少数の電源管理単位に分散して格納され、もう一方は、比較的多数の電源管理単位に分散して格納される。システム管理者又はユーザが任意に設定した条件に基づいて、ストレージシステムの消費電力の削減とアクセス性能の向上とのどちらが優先されるかが判定される。消費電力の削減が優先される場合には前者のＬＵセットが使用され、アクセス性能の向上が優先される場合には後者のＬＵセットが使用される。これによって、例えば、ファイルの種類又はジョブの種類等に応じた最適な消費電力及びアクセス性能を実現することができる。
【図面の簡単な説明】
【０３００】
【図１】本発明の実施形態の計算機システムの構成を示すブロック図である。
【図２】本発明の実施形態のストレージシステムの構成を示すブロック図である。
【図３】本発明の実施形態のＬＵセットの構成を示すブロック図である。
【図４】本発明の実施形態における論理的に単一なファイル記憶空間の構成の説明図である。
【図５】本発明の実施形態のＬＵセット管理情報の説明図である。
【図６】本発明の実施形態の利用モード情報の説明図である。
【図７】本発明の実施形態の電源制御情報の説明図である。
【図８】本発明の実施形態のＬＵセット切り替え条件情報の説明図である。
【図９】本発明の実施形態のＬＵセット選択ヒント情報の説明図である。
【図１０】本発明の実施形態において、マウント要求が発行されたときにＬＵセット選択部が実行する処理を示すフローチャートである。
【図１１】本発明の実施形態において、ＬＵセットを一時的に切り替えるときにＬＵセット選択部が実行する処理を示すフローチャートである。
【図１２】本発明の実施形態のＬＵセット選択部が実行するＬＵセット一時切り替え可否判定処理を示すフローチャートである。
【図１３】本発明の実施形態のＬＵセット同期起動部が実行する処理を示すフローチャートである。
【図１４】本発明の実施形態の電源制御部が実行する処理を示すフローチャートである。
【図１５】本発明の実施形態の電源制御部が実行する電源ＯＮ処理を示すフローチャートである。
【図１６】本発明の実施形態の電源制御部が実行する電源ＯＦＦ処理を示すフローチャートである。
【図１７】本発明の実施形態の切り替え条件登録部が実行する処理を示すフローチャートである。
【図１８】本発明の実施形態のサブデータ更新情報管理部が実行する処理を示すフローチャートである。
【図１９】本発明の実施形態のＬＵ更新情報登録部が実行する処理を示すフローチャートである。
【図２０】本発明の実施形態のサブデータ更新通知除外情報の説明図である。
【図２１】本発明の実施形態のサブデータ更新情報の説明図である。
【図２２】本発明の実施形態において、一時的に切り替えられたＬＵセットの運用を終了するときにＬＵセット選択部が実行する処理を示すフローチャートである。
【図２３】本発明の実施形態の構成定義情報の説明図である。
【図２４】本発明の実施形態のファイルシステムのマウント先情報の説明図である。
【図２５】本発明の実施形態の選択されたＬＵセット情報の説明図である。
【図２６】本発明の実施形態のＬＵ活性化部が実行する処理を示すフローチャートである。
【図２７】本発明の実施形態のファイルシステムプログラムが実行する論理ファイル作成処理を示すフローチャートである。
【図２８】本発明の実施形態のファイルシステムプログラムが実行する論理ファイル入出力処理を示すフローチャートである。
【符号の説明】
【０３０１】
１０１  ホストコンピュータ
１０２  ストレージシステム
１０３  サービスプロセッサ（ＳＶＰ）
１０４  ストレージエリアネットワーク（ＳＡＮ）
１０５、１０６  ローカルエリアネットワーク（ＬＡＮ）
１１１  ＬＵセット管理プログラム
１１２  ファイルシステム
１１３  ストレージ管理プログラム
１６１、２６１  ＣＰＵ
１６２、２６２  メモリ
１６３、１６４、２６３、２６４  インターフェース（Ｉ／Ｆ）
２０１  コントローラ部
２０２、２０３、３３１ａ〜３３１ｔ  電源制御単位（ディスク群格納筐体）
２２１ａ、２２１ｂ、２２２、２２３ａ〜２２３ｃ、２４１ａ、２４１ｂ、２２５、３１１ａ〜３１１ｐ、３２１ａ〜３２１ｐ  論理ボリューム（ＬＵ）
２３１ａ、２３１ｂ、２３２ａ、２３２ｂ、２３３ａ、２３３ｂ、２３４ａ、２３４ｂ、２３５ａ、２３５ｂ  ハードディスクドライブ（ＨＤＤ）
【図１】
0005207367.tif 000002
【図２】
0005207367.tif 000003
【図３】
0005207367.tif 000004
【図４】
0005207367.tif 000005
【図５】
0005207367.tif 000006
【図６】
0005207367.tif 000007
【図７】
0005207367.tif 000008
【図８】
0005207367.tif 000009
【図９】
0005207367.tif 000010
【図１０】
0005207367.tif 000011
【図１１】
0005207367.tif 000012
【図１２】
0005207367.tif 000013
【図１３】
0005207367.tif 000014
【図１４】
0005207367.tif 000015
【図１５】
0005207367.tif 000016
【図１６】
0005207367.tif 000017
【図１７】
0005207367.tif 000018
【図１８】
0005207367.tif 000019
【図１９】
0005207367.tif 000020
【図２０】
0005207367.tif 000021
【図２１】
0005207367.tif 000022
【図２２】
0005207367.tif 000023
【図２３】
0005207367.tif 000024
【図２４】
0005207367.tif 000025
【図２５】
0005207367.tif 000026
【図２６】
0005207367.tif 000027
【図２７】
0005207367.tif 000028
【図２８】
0005207367.tif 000029