(57)【特許請求の範囲】
【請求項１】
複数の記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、所定期間内における前記複数の記憶装置の各々に対するアクセスの時間長を前記複数のユーザの各々について算出する第１算出部と、
前記複数のユーザのうちログイン中であるユーザについて算出された前記時間長を前記複数の記憶装置の各々について合計して評価値を算出する第２算出部と、
前記第２算出部により算出された前記評価値と所定の閾値との関係に基づき、前記複数の記憶装置の各々に電源を投入するか決定する決定部と、
を有する情報処理装置。
【請求項２】
前記データは複数のファイルを含み、
前記第１算出部は、
前記複数のユーザの各々について、当該ユーザがログイン中であるか又は前記複数のファイルのうち当該ユーザのファイルがオープンである時間帯において、当該ユーザのノードによるアクセスが行われているアクセス時間の長さである前記時間長を算出する、
請求項１記載の情報処理装置。
【請求項３】
前記第１算出部は、
前記複数のユーザの各々について、前記複数のファイルに対するアクセスの時間長の合計を前記複数の記憶装置の各々について算出する、
請求項２記載の情報処理装置。
【請求項４】
前記第１算出部は、
前記複数のユーザの各々について、当該ユーザがログイン中であるか又は前記複数のファイルのうち当該ユーザのファイルがオープンである時間帯の長さおよび当該時間帯の開始時刻においてオープンであるファイルの数と、当該時間帯においてオープンされたファイルについて当該オープンの時刻から当該時間帯の終了時刻までの時間長の合計と、当該時間帯においてクローズされたファイルについて当該時間帯の開始時刻から当該クローズの時刻までの時間長の合計とに基づき、前記複数のファイルに対するアクセスの時間長の合計を算出する、
請求項３記載の情報処理装置。
【請求項５】
前記第１算出部は、
前記複数のユーザの各々について、当該ユーザがログイン中であるか又は前記複数のファイルのうち当該ユーザのファイルがオープンである時間帯の長さの合計が前記所定期間を超えた場合、当該所定期間を超えた分の時間帯であって最も古い時間帯におけるアクセスの時間長を前記合計から削除することにより、前記複数のファイルに対するアクセスの時間長の合計を算出する、
請求項３記載の情報処理装置。
【請求項６】
ログインを行うユーザのノードから受信した通知およびログアウトを行うユーザのノードから受信した通知に基づき、前記複数のユーザのログインおよびログアウトを管理するための情報を生成する第１生成部
をさらに有し、
前記第２算出部は、
前記第１生成部により生成された前記情報に基づき、ログイン中であるユーザを特定する、
請求項１乃至５のいずれか１つ記載の情報処理装置。
【請求項７】
前記データに対するアクセスを開始するノードから受信した通知および前記データに対するアクセスを終了するノードから受信した通知に基づき、前記データに対して前記複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報を生成する第２生成部
をさらに有する請求項１乃至６のいずれか１つ記載の情報処理装置。
【請求項８】
コンピュータが、
複数の記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、所定期間内における前記複数の記憶装置の各々に対するアクセスの時間長を前記複数のユーザの各々について算出し、
前記複数のユーザのうちログイン中であるユーザについて算出された前記時間長を前記複数の記憶装置の各々について合計して評価値を算出し、
前記第２算出部により算出された前記評価値と所定の閾値との関係に基づき、前記複数の記憶装置の各々に電源を投入するか決定する、
処理を実行するストレージ制御方法。
【請求項９】
コンピュータに、
複数の記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、所定期間内における前記複数の記憶装置の各々に対するアクセスの時間長を前記複数のユーザの各々について算出し、
前記複数のユーザのうちログイン中であるユーザについて算出された前記時間長を前記複数の記憶装置の各々について合計して評価値を算出し、
前記第２算出部により算出された前記評価値と所定の閾値との関係に基づき、前記複数の記憶装置の各々に電源を投入するか決定する、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージデバイスの電源制御技術に関する。
【背景技術】
【０００２】
分散ファイルシステムとは、分散された複数のストレージデバイス（例えばＨＤＤ（Hard Disk Drive）等）においてファイル等のデータを管理するシステムである。分散ファイルシステムにおいて消費される電力は、使用されていないストレージデバイスへの電源供給を停止することで削減することができる。
【０００３】
例えば、ストレージデバイスを有するシステムの省電力化に関して以下のような技術が存在する。具体的には、データの入出力についての要求がアクセス履歴として記憶され、アクセス履歴から、所定のタイミングにおいてアクセスが有るか判定される。アクセスが無いと判定された場合にはデータ記憶部への電力供給が停止され、アクセスが有ると判定された場合にはデータ記憶部への電力供給が行われる。
【０００４】
また、以下のような技術も存在する。具体的には、ストレージシステムの論理ボリュームへの過去のアクセス順序が記録され、アクセス時刻が最も古いディスクのへの電源供給が停止され、次にアクセスされると予測されたディスクへ電源が投入される。
【０００５】
但し、上記のような方法によってアクセスを予測しディスクを停止させたとしても、予測が外れてそのディスクに対するアクセスが発生した場合には、ディスクを再度起動することになる。この場合、ディスクに対してアクセスを行えるようになるまで時間がかかり、また、消費電力を削減することはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−８０６０３号公報
【特許文献２】特開２００８−１１２２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、１つの側面では、分散ファイルシステムの消費電力を削減するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、データに対するアクセスの時間長を複数のユーザの各々について算出する第１算出部と、複数のユーザのうちログイン中であるユーザについて算出された時間長の合計を算出する第２算出部と、第２算出部により算出された合計に基づき、記憶装置に電源を投入するか決定する決定部とを有する。
【発明の効果】
【０００９】
１つの側面では、分散ファイルシステムの消費電力を削減できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態における分散ファイルシステムの概要を示す図である。
【図２Ａ】図２Ａは、ログインノードの機能ブロック図である。
【図２Ｂ】図２Ｂは、クライアントノードの機能ブロック図である。
【図３】図３は、データサーバの機能ブロック図である。
【図４】図４は、メタデータサーバの機能ブロック図である。
【図５】図５は、管理データ格納部に格納されるファイルテーブルの一例を示す図である。
【図６】図６は、管理データ格納部に格納される要求履歴テーブルの一例を示す図である。
【図７】図７は、管理データ格納部に格納されるサーバテーブルの一例を示す図である。
【図８】図８は、メタデータ格納部に格納されるファイル管理テーブルの一例を示す図である。
【図９】図９は、メタデータサーバが実行する処理の処理フローを示す図である。
【図１０】図１０は、第１算出処理の処理フローを示す図である。
【図１１】図１１は、算出対象時間帯について説明するための図である。
【図１２】図１２は、複数のファイルへのアクセスの一例を示す図である。
【図１３】図１３は、ファイル数管理テーブルの一例を示す図である。
【図１４】図１４は、第１アクセス時間テーブルの一例を示す図である。
【図１５】図１５は、第２算出処理の処理フローを示す図である。
【図１６】図１６は、第２アクセス時間テーブルの一例を示す図である。
【図１７Ａ】図１７Ａは、第３算出処理の処理フローを示す図である。
【図１７Ｂ】図１７Ｂは、ディスクの電源状態を管理するための図である。
【図１８】図１８は、メタデータサーバからディスク停止の要求を受信したデータサーバが実行する処理の処理フローを示す図である。
【図１９】図１９は、ユーザのログイン時及びログアウト時にログインノードが実行する処理の処理フローを示す図である。
【図２０】図２０は、ユーザのログイン時にメタデータサーバが実行する処理の処理フローを示す図である。
【図２１】図２１は、ログイン管理テーブルに格納されるデータの一例を示す図である。
【図２２】図２２は、メタデータサーバからディスク起動の要求を受信したデータサーバが実行する処理の処理フローを示す図である。
【図２３】図２３は、ディスク停止の具体例を示す図である。
【図２４】図２４は、ディスク起動の具体例を示す図である。
【図２５】図２５は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１に、本実施の形態における分散ファイルシステムの概要を示す。ネットワーク７には、メタデータサーバ１と、データサーバ３ａ及び３ｂと、ログインノード４と、クライアントノード５ａ及び５ｂとが接続される。メタデータサーバ１には、１又は複数のメタデータ格納部１００が接続される。データサーバ３ａには１又は複数のデータ格納部３００ａが接続され、データサーバ３ｂにはデータ格納部３００ｂが接続される。ネットワーク７は、ＬＡＮ（Local Area Network）であってもよいし、インターネット等の広域ネットワークであってもよい。
【００１２】
分散ファイルシステムの複数のファイルは、データ格納部３００ａ及び３００ｂに格納される。１つのファイルのデータは複数のデータ格納部にまたがって格納されることがある。分散ファイルシステムのファイルのメタデータは、メタデータ格納部１００に格納される。データ格納部３００ａ及び３００ｂは、ＨＤＤ（Hard Disk Drive）等のディスク装置（以下、ディスクと呼ぶ）であるが、他の記憶装置であってもよい。また、データ格納部３００ａはデータサーバ３ａに内蔵されていてもよく、データ格納部３００ｂはデータサーバ３ｂに内蔵されていてもよい。
【００１３】
ログインノード４はユーザによって操作され、クライアントノード５ａ及び５ｂにジョブの実行を指示する。クライアントノード５ａ及び５ｂ、ジョブの実行時、データサーバ３ａ及び３ｂにファイルアクセスの要求（例えば、ファイルへの書き込み要求およびファイルからの読み込み要求）を送信する。
【００１４】
なお、クライアントノード、データサーバ、メタデータ格納部１００並びにデータ格納部３００ａ及び３００ｂの数に限定は無い。
【００１５】
図２Ａに、ログインノード４の機能ブロック図を示す。ログインノード４は、状態通知部４１を含む。状態通知部４１は、ユーザのログイン（ログオン又はサインインとも呼ばれる）時にメタデータサーバ１にログイン通知を送信し、ユーザのログアウト（ログオフ又はサインアウトとも呼ばれる）時にメタデータサーバ１にログアウト通知を送信する。
【００１６】
図２Ｂに、クライアントノード５ａの機能ブロック図を示す。クライアントノード５ａは、クライアント処理部５１を含む。クライアント処理部５１は、ファイルにアクセスするためにメタデータサーバ１にメタデータへのアクセスの要求を送信し、ファイルアクセスの要求をデータサーバ３ａ及び３ｂに送信する。なお、クライアントノード５ｂの機能ブロック図はクライアントノード５ａの機能ブロック図と同じであるので、説明を省略する。
【００１７】
図３に、データサーバ３ａの機能ブロック図を示す。データサーバ３ａは、データ処理部３１と、切替部３２とを含む。データ処理部３１は、クライアントノード５ａ及び５ｂから受信したファイルアクセスの要求に従って、データ格納部３００ａに格納されているファイルに対する書き込みおよびファイルからの読み込み等を実行する。ファイルから読み込まれたデータは、要求の送信元のクライアントノードに送信される。切替部３２は、メタデータサーバ１から受信した、ディスク停止の要求およびディスク起動の要求に従い、ディスクへの電源の投入を制御してディスクを停止及び起動する。なお、データサーバ３ｂの機能ブロック図はデータサーバ３ａの機能ブロック図と同じであるので、説明を省略する。
【００１８】
図４に、メタデータサーバ１の機能ブロック図を示す。メタデータサーバ１は、切替判定部１０と、メタデータ処理部１１と、管理データ格納部１２とを含む。切替判定部１０は、第１算出部１０１と、第２算出部１０２と、第３算出部１０３と、判定部１０４と、ログイン管理部１０５とを含む。
【００１９】
メタデータ処理部１１は、メタデータ格納部１００に格納されているメタデータを管理する。また、メタデータ処理部１１は、メタデータへのアクセス要求に従って、メタデータ格納部１００に格納されているメタデータの書き換えおよびメタデータの読み込み等を実行する。読み込まれたメタデータは、要求の送信元のクライアントノードに送信される。また、メタデータ処理部１１は、ファイルのオープン要求及びクローズ要求があった場合に、オープン要求及びクローズ要求の発生時刻、ユーザの識別子およびファイルが有るディスクの識別子を要求履歴テーブルに格納する。要求履歴テーブルは、管理データ格納部１２に格納される。ファイルを格納するディスクは、以下で説明するファイルテーブル（図５）によって特定される。
【００２０】
第１算出部１０１は、管理データ格納部１２に格納されているデータに基づき第１算出処理を実行する。第２算出部１０２は、管理データ格納部１２に格納されているデータ及び第１算出部１０１の処理結果に基づき、第２算出処理を実行する。第３算出部１０３は、管理データ格納部１２に格納されているデータ及び第２算出部１０２の処理結果に基づき、第３算出処理を実行する。判定部１０４は、管理データ格納部１２に格納されているデータ及び第３算出部１０３の処理結果に基づき、電源オンと電源オフの切替について判定を行い、判定の結果に基づき、ディスク停止の要求およびディスク起動の要求を、ディスクを管理するデータサーバに送信する。ログイン管理部１０５は、状態通知部４１から受信したログイン通知及びログアウト通知に基づき、ログイン管理テーブルを更新する。
【００２１】
図５に、管理データ格納部１２に格納されるファイルテーブルの一例を示す。図５の例では、ファイルの識別子と、そのファイルを格納するディスクの識別子とが格納される。
【００２２】
図６に、管理データ格納部１２に格納される要求履歴テーブルの一例を示す。図６の例では、時刻と、要求に係るファイルを格納するディスクの識別子と、要求の送信元のクライアントノードを操作するユーザの識別子と、アクセス種別（オープン又はクローズ）とが格納される。複数のディスクにまたがって格納されるファイルに対する要求があった場合には、各ディスクについてエントリが生成される。
【００２３】
図７に、管理データ格納部１２に格納されるサーバテーブルの一例を示す。図７の例では、ディスクの識別子と、そのディスクを管理するデータサーバの識別子とが格納される。
【００２４】
図８に、メタデータ格納部１００に格納されるファイル管理テーブルの一例を示す。図８の例では、ファイルの識別子と、ファイルの所有者であるユーザの識別子と、ファイルの作成日時と、ファイルの最終更新日時と、ファイルサイズと、アクセス権限に関する情報とが格納される。
【００２５】
次に、図９乃至図２４を用いて、本実施の形態の分散ファイルシステムにおいて実行される処理について説明する。
【００２６】
まず、図９乃至図１７Ｂを用いて、メタデータサーバ１が実行する処理について説明する。メタデータサーバ１における判定部１０４は、前回ステップＳ３乃至Ｓ１５の処理を実行した時点から所定時間（例えば数分）が経過したか判定する（図９：ステップＳ１）。
【００２７】
所定時間が経過していない場合（ステップＳ１：Ｎｏルート）、ステップＳ１の処理に戻る。所定時間が経過した場合（ステップＳ１：Ｙｅｓルート）、判定部１０４は、第１算出部１０１を呼び出す。これに応じ、第１算出部１０１は、第１算出処理を実行する（ステップＳ３）。第１算出処理については、図１０乃至図１４を用いて説明する。
【００２８】
まず、第１算出部１０１は、未処理のユーザを１人特定する（図１０：ステップＳ２１）。ステップＳ２１において特定されたユーザをユーザｕとする。
【００２９】
第１算出部１０１は、ユーザｕについて未処理のディスクを１台特定する（ステップＳ２３）。ステップＳ２３において特定されたディスクをディスクｄとする。
【００３０】
第１算出部１０１は、ユーザｕ及びディスクｄについて未処理の算出対象時間帯を１つ特定する（ステップＳ２５）。ステップＳ２５において特定された算出対象時間帯を［ｔ（ｘ−１），ｔｘ］（すなわち、時刻ｔ（ｘ−１）から時刻ｔｘまでの時間帯）とする。
【００３１】
本実施の形態においては、ユーザｕがログインしていたか又はユーザｕの未クローズドファイル（すなわち、オープンされているファイル）が有る時間帯が算出対象時間帯として取り扱われ、算出対象時間帯ごとにユーザｕのアクセス時間が算出される。算出対象時間帯は、例えば図１１に示すように、ユーザごとに異なる。図１１においては、横軸は時間を表し、ユーザＵ１の算出対象時間帯はＰ１乃至Ｐ３であり、ユーザＵ２の算出対象時間帯はＰ４及びＰ５である。図１１において、算出対象時間帯における太い実線はファイルアクセスを表し、縦方向の位置が異なる複数の太い実線は複数の異なるファイルへのアクセスを表す。
【００３２】
なお、ステップＳ２５において「未処理」として特定される算出対象時間帯は、前回第１算出処理を実行したときに存在しなかった算出対象時間帯である。
【００３３】
第１算出部１０１は、ユーザｕ、ディスクｄおよび算出対象時間帯［ｔ（ｘ−１），ｔｘ］について、アクセス時間Ｓ（ｕ，ｄ，ｔ（ｘ−１），ｔｘ）を算出し、管理データ格納部１２に設けられたアクセス時間テーブルに格納する（ステップＳ２７）。アクセス時間Ｓ（ｕ，ｄ，ｔ（ｘ−１），ｔｘ）は、ユーザｕがディスクｄに対して時刻ｔ（ｘ−１）から時刻ｔｘまでの間にアクセスした時間長を表す。
【００３４】
例えば、ユーザｕ及びディスクｄの算出対象時間帯［ｔ０，ｔ１］について、図１２に示すようなファイルアクセスがあったとする。この場合、アクセス時間Ｓ（ｕ，ｄ，ｔ０，ｔ１）は、ファイル＃１がオープンされてからクローズされるまでの時間長と、ファイル＃２がオープンされてから時刻ｔ１までの時間長と、時刻ｔ０からファイル＃３がクローズされるまでの時間長と、時刻ｔ０から時刻ｔ１までの時間長との総和に相当する。このような総和は、以下の式に従って算出される。
【００３５】
【数１】
0006769106.tif 000002
【００３６】
ここで、Ｎopen（ｕ，ｄ，ｔ）は、時刻ｔにおいて、ユーザｕ及びディスクｄについてオープン済みであり且つクローズされていないファイルの数である。ｅo及びｅcは要求履歴テーブル（図６）におけるエントリを表す。
【００３７】
ｅoは以下の条件を満たす。
【００３８】
【数２】
0006769106.tif 000003
【００３９】
ｅcは以下の条件を満たす。
【００４０】
【数３】
0006769106.tif 000004
【００４１】
ｔ（ｅo）はｅoの時刻、ａ（ｅo）はｅoのアクセス種別、ｕ（ｅo）はｅoのユーザ、ｄ（ｅo）はｅoのディスクを表す。ｔ（ｅc）はｅcの時刻、ａ（ｅc）はｅcのアクセス種別、ｕ（ｅc）はｅcのユーザ、ｄ（ｅc）はｅcのディスクを表す。
【００４２】
Ｎopen（ｕ，ｄ，ｔ）について、現在の時刻ｔ１におけるＮopen（ｕ，ｄ，ｔ１）と、過去の時刻ｔ０におけるＮopen（ｕ，ｄ，ｔ０）との間において以下の関係が成立する。
【００４３】
【数４】
0006769106.tif 000005
【００４４】
数式（４）における第２項は、時刻ｔ０から時刻ｔ１までの間にユーザｕのクライアントノードがディスクｄ内のファイルをオープンした回数を表す。数式（４）における第３項は、時刻ｔ０から時刻ｔ１までの間にユーザｕのクライアントノードがディスクｄ内のファイルをクローズした回数を表す。ファイルシステムがどのクライアントノードにもマウントされていない時刻ｔｍにおいては、任意のユーザｕ及びディスクｄに対してＮopen（ｕ，ｄ，ｔｍ）＝０が成立する。これと数式（４）とを用いて、一般の時刻ｔにおけるＮopen（ｕ，ｄ，ｔ）を帰納的に算出することができる。
【００４５】
なお、第１算出部１０１は、各ユーザについて、最後に算出されたＮopen（ｕ，ｄ，ｔ）を、管理データ格納部１２に設けられた、図１３に示すようなファイル数管理テーブルに格納する。ファイル数管理テーブルはステップＳ２７の処理を次に実行する際に利用される。
【００４６】
第１算出部１０１は、ユーザｕ及びディスクｄについて未処理の算出対象時間帯が有るか判定する（ステップＳ２９）。ユーザｕ及びディスクｄについて未処理の算出対象時間帯が有る場合（ステップＳ２９：Ｙｅｓルート）、次の算出対象時間帯について処理するため、ステップＳ２５の処理に戻る。
【００４７】
ユーザｕ及びディスクｄについて未処理の算出対象時間帯が無い場合（ステップＳ２９：Ｎｏルート）、第１算出部１０１は、ユーザｕについて未処理のディスクが有るか判定する（ステップＳ３１）。ユーザｕについて未処理のディスクが有る場合（ステップＳ３１：Ｙｅｓルート）、次のディスクについて処理するため、ステップＳ２３の処理に戻る。
【００４８】
ユーザｕについて未処理のディスクが無い場合（ステップＳ３１：Ｎｏルート）、第１算出部１０１は、未処理のユーザが有るか判定する（ステップＳ３３）。未処理のユーザが有る場合（ステップＳ３３：Ｙｅｓルート）、次のユーザについて処理するため、ステップＳ２１の処理に戻る。
【００４９】
未処理のユーザが無い場合（ステップＳ３３：Ｎｏルート）、呼び出し元の処理に戻る。
【００５０】
以上のような処理を実行すると、例えばユーザｕについては、図１４に示すような第１アクセス時間テーブルが生成される。図１４においては、各算出対象時間帯の各ディスクについてアクセス時間が格納されている。図１４に示したような第１アクセス時間テーブルは、各ユーザについて生成され、管理データ格納部１２に保存される。なお、例えば［ｔ０，ｔ１］についてアクセス時間Ｓ（ｕ，ｄ，ｔ０，ｔ１）が算出された場合には、メモリリソースの節約のため、要求履歴テーブル（図６）における［ｔ０，ｔ１］のエントリは削除される。
【００５１】
図９の説明に戻り、判定部１０４は、第２算出部１０２を呼び出す。これに応じ、第２算出部１０２は、第２算出処理を実行する（ステップＳ５）。第２算出処理については、図１５及び図１６を用いて説明する。
【００５２】
まず、第２算出部１０２は、未処理のユーザを１人特定する（図１５：ステップＳ４１）。ステップＳ４１において特定されたユーザをユーザｕとする。
【００５３】
第２算出部１０２は、ユーザｕについて未処理のディスクを１台特定する（ステップＳ４３）。ステップＳ４３において特定されたディスクをディスクｄとする。
【００５４】
第２算出部１０２は、複数の算出対象時間帯についてのＳ（ｕ，ｄ，ｔ（ｘ−１），ｔｘ）を合計することで、ユーザｕによるディスクｄへのアクセス時間Ｓ（ｕ，ｄ）を算出する（ステップＳ４５）。複数の算出対象時間帯は、新しいものから順に合計の算出に使用される。また、図１１に示したように、算出対象時間帯の長さはユーザ毎に異なるが、公平性のため、複数の算出対象時間帯の時間長の合計がユーザ毎に同じ長さＴになるように計算が行われる。この際、各ユーザについて、最も古い算出対象時間帯については一部だけが合計の算出に使用されることもある。複数の算出対象時間帯の時間長の合計がＴに満たない場合、存在する複数の算出対象時間帯だけについて合計が算出される。アクセス時間Ｓ（ｕ，ｄ）は、長さがＴの時間帯（必ずしも連続した時間帯とは限らない）においてユーザｕがディスクｄにアクセスした時間を表す。
【００５５】
実際にＳ（ｕ，ｄ）が算出される時には、計算の高速化のため、前回の処理において算出したＳ（ｕ，ｄ）に、前回の処理までに算出されていなかったＳ（ｕ，ｄ，ｔ（ｘ−１），ｔｘ）が加算され、Ｔを超える分の算出対象時間帯であって最も古い算出対象時間帯についてのアクセス時間が減算される。
【００５６】
第２算出部１０２は、ユーザｕについて未処理のディスクが有るか判定する（ステップＳ４７）。ユーザｕについて未処理のディスクが有る場合（ステップＳ４７：Ｙｅｓルート）、ステップＳ４３の処理に戻る。
【００５７】
ユーザｕについて未処理のディスクが無い場合（ステップＳ４７：Ｎｏルート）、第２算出部１０２は、未処理のユーザが有るか判定する（ステップＳ４９）。未処理のユーザが有る場合（ステップＳ４９：Ｙｅｓルート）、ステップＳ４１の処理に戻る。一方、未処理のユーザが無い場合（ステップＳ４９：Ｎｏルート）、呼び出し元の処理に戻る。
【００５８】
以上のような処理を実行すると、例えば図１６に示すような第２アクセス時間テーブルが管理データ格納部１２において生成される。図１６の例では、各ユーザについて、アクセス時間がディスク毎に算出されている。
【００５９】
図９の説明に戻り、判定部１０４は、第３算出部１０３を呼び出す。これに応じ、第３算出部１０３は、第３算出処理を実行する（ステップＳ７）。第３算出処理については、図１７Ａ及び図１７Ｂを用いて説明する。
【００６０】
まず、第３算出部１０３は、未処理のディスクを１台特定する（図１７Ａ：ステップＳ５１）。ステップＳ５１において特定されたディスクをディスクｄとする。
【００６１】
第３算出部１０３は、ディスクｄに電源が投入されているか判定する（ステップＳ５３）。ステップＳ５３の判定は、メタデータサーバ１が管理データ格納部１２において管理する、図１７Ｂに示すようなデータを使用して行われる。但し、ディスクｄを管理するデータサーバをサーバテーブル（図７）を用いて特定し、特定したデータサーバに問い合わせを出力することにより判定を行ってもよい。
【００６２】
ディスクｄに電源が投入されていない場合（ステップＳ５３：Ｎｏルート）、ステップＳ５７の処理に移行する。ディスクｄに電源が投入されている場合（ステップＳ５３：Ｙｅｓルート）、第３算出部１０３は、ログイン中であるユーザ又は未クローズドファイルが有るユーザ（ユーザｕとする）についてのＳ（ｕ，ｄ）の合計により、ディスク評価値Ｓ（ｄ）を算出する（ステップＳ５５）。ログイン中であるユーザは、後述の処理によって生成されるログイン管理テーブルによって特定される。未クローズドファイルが有るユーザは、要求履歴テーブル（図６）に基づき、ファイルオープンの要求を発行したがファイルクローズの要求を発行していないユーザが特定される。
【００６３】
第３算出部１０３は、未処理のディスクが有るか判定する（ステップＳ５７）。未処理のディスクが有る場合（ステップＳ５７：Ｙｅｓルート）、ステップＳ５１の処理に戻る。一方、未処理のディスクが無い場合（ステップＳ５７：Ｎｏルート）、呼び出し元の処理に戻る。
【００６４】
以上のような処理を実行すれば、実際に電源が投入されているディスクについて、アクセスされる可能性を表すディスク評価値Ｓ（ｄ）を算出できるようになる。
【００６５】
図９の説明に戻り、判定部１０４は、ステップＳ７において算出したディスク評価値Ｓ（ｄ）が閾値未満であるディスクが有るか判定する（ステップＳ９）。ディスク評価値Ｓ（ｄ）が閾値未満であるディスクが無い場合（ステップＳ９：Ｎｏルート）、ステップＳ１５の処理に移行する。
【００６６】
一方、ディスク評価値Ｓ（ｄ）が閾値未満であるディスクが有る場合（ステップＳ９：Ｙｅｓルート）、判定部１０４は、ディスク評価値Ｓ（ｄ）が閾値未満であるディスクを管理するデータサーバを、サーバテーブル（図７）を用いて特定する（ステップＳ１１）。
【００６７】
判定部１０４は、ステップＳ１１において特定したデータサーバに、ディスク停止の要求を送信する（ステップＳ１３）。ディスク停止の要求は、例えば、ディスク評価値Ｓ（ｄ）が閾値未満であるディスクの識別子を含む。ディスク停止の要求を受信したデータサーバが実行する処理については、後で説明する。
【００６８】
判定部１０４は、メタデータサーバ１の管理者から終了指示の入力を受け付けたか判定する（ステップＳ１５）。終了指示の入力を受け付けていない場合（ステップＳ１５：Ｎｏルート）、ステップＳ１の処理に戻る。一方、終了指示の入力を受け付けた場合（ステップＳ１５：Ｙｅｓルート）、処理は終了する。
【００６９】
以上のように、ログイン中のユーザ又は未クローズドファイルが有るユーザについて算出したディスク評価値Ｓ（ｄ）に基づきディスクを停止するか否かが判定される。これにより、実際にアクセスされる可能性が低いディスクを停止できるようになるので、分散ファイルシステムの電力消費を抑制することができるようになる。
【００７０】
次に、図１８を用いて、メタデータサーバ１からディスク停止の要求を受信したデータサーバが実行する処理について説明する。
【００７１】
まず、メタデータサーバ１からディスク停止の要求を受信したデータサーバにおける切替部３２は、メタデータサーバ１からディスク停止の要求を受信する（図１８：ステップＳ６１）。
【００７２】
切替部３２は、ディスク停止の要求に含まれるディスク識別子が示すディスクを停止する（すなわち、そのディスクへの電源の投入を停止する）（ステップＳ６３）。そして処理は終了する。
【００７３】
以上のような処理を実行すれば、実際にアクセスされる可能性が低いディスクによって消費される電力を削減することができるようになる。
【００７４】
次に、図１９を用いて、ユーザが操作するログインノード４がログイン時及びログアウト時に実行する処理について説明する。
【００７５】
まず、ログインノード４の状態通知部４１は、ログイン指示又はログアウト指示の入力をユーザから受け付ける（図１９：ステップＳ６５）。
【００７６】
状態通知部４１は、ユーザがログインしたことを示すログイン通知又はユーザがログアウトしたことを示すログアウト通知を、メタデータサーバ１に送信する（ステップＳ６７）。そして処理は終了する。
【００７７】
以上のような処理を実行すれば、メタデータサーバ１がログインの状態を管理できるようになる。
【００７８】
次に、図２０を用いて、ユーザのログイン時にメタデータサーバ１が実行する処理について説明する。
【００７９】
まず、メタデータサーバ１のログイン管理部１０５は、ログインノード４から送信されたログイン通知を受信し、受信したログイン通知に基づいて、管理データ格納部１２に格納されているログイン管理テーブルを更新する（図２０：ステップＳ７１）。
【００８０】
図２１に、ログイン管理テーブルに格納されるデータの一例を示す。図２１の例では、ログインノード４を操作するユーザの識別子と、ログイン又はログアウトのいずれであるかを示す情報と、時刻とが格納される。
【００８１】
判定部１０４は、分散ファイルシステムにおけるディスクのうち未処理のディスク１台特定する（ステップＳ７３）。ステップＳ７３において特定されたディスクをディスクｄとする。
【００８２】
判定部１０４は、ディスクｄに電源が投入されているか判定する（ステップＳ７５）。ディスクｄに電源が投入されている場合（ステップＳ７５：Ｙｅｓルート）、ステップＳ８５の処理に移行する。
【００８３】
一方、ディスクｄに電源が投入されていない場合（ステップＳ７５：Ｎｏルート）、判定部１０４は、新たにログインしたユーザ（すなわち、ログイン通知の送信元のログインノード４を操作するユーザ。ここでは、ユーザｕとする）についてのＳ（ｕ，ｄ）を用いて、ディスク評価値Ｓ（ｄ）を再計算する（ステップＳ７７）。上で述べたように、ステップＳ５５においてはログイン中であるユーザ又は未クローズドファイルが有るユーザについてのＳ（ｕ，ｄ）を用いてディスク評価値Ｓ（ｄ）が算出されるため、新たにログインしたユーザについてのＳ（ｕ，ｄ）をさらに加えることによって、Ｓ（ｄ）が再計算される。
【００８４】
判定部１０４は、ステップＳ７７において算出したディスク評価値Ｓ（ｄ）が閾値以上であるか判定する（ステップＳ７９）。ステップＳ７７において算出したディスク評価値Ｓ（ｄ）が閾値以上ではない場合（ステップＳ７９：Ｎｏルート）、ディスクｄを起動しなくてもよいので、ステップＳ８５の処理に移行する。一方、ステップＳ７７において算出したディスク評価値Ｓ（ｄ）が閾値以上である場合（ステップＳ７９：Ｙｅｓルート）、判定部１０４は、ディスクｄを管理するデータサーバをサーバテーブル（図７）から特定する（ステップＳ８１）。
【００８５】
判定部１０４は、ステップＳ８１において特定したデータサーバにディスク起動の要求を送信する（ステップＳ８３）。ディスク起動の要求は、例えば、ディスク評価値Ｓ（ｄ）が閾値以上であるディスクの識別子を含む。
【００８６】
判定部１０４は、未処理のディスクが有るか判定する（ステップＳ８５）。未処理のディスクが有る場合（ステップＳ８５：Ｙｅｓルート）、ステップＳ７３の処理に戻る。一方、未処理のディスクが無い場合（ステップＳ８５：Ｎｏルート）、処理は終了する。
【００８７】
以上のような処理を実行すれば、実際にアクセスされる可能性が高いディスクを稼働させておくことができるので、停止中のディスクを起動しなければならなくなるような事態を回避することができるようになる。
【００８８】
次に、図２２を用いて、メタデータサーバ１からディスク起動の要求を受信したデータサーバが実行する処理について説明する。
【００８９】
まず、メタデータサーバ１からディスク起動の要求を受信したデータサーバにおける切替部３２は、メタデータサーバ１からディスク起動の要求を受信する（図２２：ステップＳ９１）。
【００９０】
切替部３２は、ディスク起動の要求に含まれるディスク識別子が示すディスクを起動する（すなわち、そのディスクへの電源の投入を開始する）（ステップＳ９３）。そして処理は終了する。
【００９１】
以上のような処理を実行すれば、実際にアクセスされる可能性が高いディスクを起動し、クライアントノード５ａ及び５ｂからのアクセスに予め備えることができるようになる。
【００９２】
図２３に、ディスク停止の具体例を示す。図２３においては、ログイン中のユーザはユーザＡ及びユーザＢである。ディスク２３１にはユーザＡ及びユーザＢが頻繁にアクセスするファイルが格納されており、ディスク２３２にはユーザＡ及びユーザＢが頻繁にアクセスするファイルが格納されていない。ディスク２３３にはユーザＡが頻繁にアクセスするファイルが格納されている。
【００９３】
メタデータサーバ１は、ユーザＡ及びユーザＢがログインしたことを通知されており、ユーザＡ及びユーザＢについてのＳ（ｕ，ｄ）を合計することによりディスク評価値Ｓ（ｄ）を定期的に算出する。すると、ディスク２３２についてのディスク評価値Ｓ（ｄ）は閾値未満になり、アクセスされる可能性が低いと判定されるので、ディスク２３２は停止される。これにより、省電力化が実現される。
【００９４】
図２４に、ディスク起動の具体例を示す。図２４においては、ディスク２３２が停止されている状態において、新たにユーザＣがログインした。この場合、メタデータサーバ１は新たにユーザＣがログインしたことを通知されるので、ユーザＣについてのＳ（ｕ，ｄ）を既に算出したＳ（ｄ）に加算することでＳ（ｄ）を再計算する。すると、ディスク２３２についてのディスク評価値Ｓ（ｕ，ｄ）が閾値以上になり、アクセスされる可能性が高いと判定されるので、ディスク２３２が起動される。これにより、ユーザＣからディスク２３２へのアクセスに迅速に応答することができるようになる。
【００９５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したメタデータサーバ１、データサーバ３ａ及び３ｂ、ログインノード４及びクライアントノード５ａ及び５ｂの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００９６】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００９７】
なお、複数の算出対象時間帯のアクセス時間を合計する処理においては、予め定められた自然数Ｎ個の算出対象時間帯のアクセス対象時間帯を算出するようにしてもよい。
【００９８】
なお、上で述べたメタデータサーバ１、データサーバ３ａ及び３ｂ、ログインノード４及びクライアントノード５ａ及び５ｂは、コンピュータ装置であって、図２５に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１００】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、データに対するアクセスの時間長を複数のユーザの各々について算出する第１算出部と、（Ｂ）複数のユーザのうちログイン中であるユーザについて算出された時間長の合計を算出する第２算出部と、（Ｃ）第２算出部により算出された合計に基づき、記憶装置に電源を投入するか決定する決定部とを有する。
【０１０１】
このような処理を実行すれば、実際にログイン中のユーザのノードからアクセスされる可能性が低い記憶装置に電源が投入されることを抑制できるようになる。これにより、複数の記憶装置を有する分散データシステムの消費電力を削減できるようになる。
【０１０２】
また、データは複数のファイルを含んでもよい。そして、第１算出部は、（ａ１）複数のユーザの各々について、当該ユーザがログイン中であるか又は複数のファイルのうち当該ユーザのファイルがオープンである時間帯のうち、当該ユーザのノードによるアクセスが行われている時間帯の長さである時間長を算出してもよい。
【０１０３】
ログイン中におけるアクセスの可能性が時間長に反映されるようになる。
【０１０４】
また、第１算出部は、（ａ２）複数のユーザの各々について、複数のファイルに対するアクセスの時間長の合計を算出してもよい。
【０１０５】
複数のファイルに対するアクセスが行われるケースにも対処できるようになる。
【０１０６】
また、第１算出部は、（ａ３）複数のユーザの各々について、当該ユーザがログイン中であるか又は複数のファイルのうち当該ユーザのファイルがオープンである時間帯の長さおよび当該時間帯の開始時刻においてオープンであるファイルの数と、当該時間帯においてオープンされたファイルの数および当該オープンの時刻から当該時間帯の終了時刻までの時間長と、当該時間帯においてクローズされたファイルの数および当該時間帯の開始時刻から当該クローズの時刻までの時間長とに基づき、複数のファイルに対するアクセスの時間長の合計を算出してもよい。
【０１０７】
複数のファイルのオープンおよびクローズのタイミングが異なる場合であっても適切に算出できるようになる。
【０１０８】
また、第１算出部は、（ａ４）複数のユーザの各々について、当該ユーザがログイン中であるか又は複数のファイルのうち当該ユーザのファイルがオープンである時間帯の長さの合計が所定長を超えた場合、当該所定長を超えた分の時間帯であって最も古い時間帯におけるアクセスの時間長を合計から削除することにより、複数のファイルに対するアクセスの時間長の合計を算出してもよい。
【０１０９】
時間長の合計がユーザ間で同じになるので、アクセスの可能性をより適切に反映させることができるようになる。また、算出に要する処理負荷が減るので、アクセスに対するレスポンスの性能が劣化することを抑制できるようになる。
【０１１０】
また、本情報処理装置は、（Ｄ）ログインを行うユーザのノードから受信した通知およびログアウトを行うユーザのノードから受信した通知に基づき、複数のユーザのログインおよびログアウトを管理するための情報を生成する第１生成部をさらに有してもよい。そして、第２算出部は、（ｂ１）第１生成部により生成された情報に基づき、ログイン中であるユーザを特定してもよい。
【０１１１】
ログイン中であるノードを適切に特定できるようになる。
【０１１２】
また、本情報処理装置は、（Ｅ）データに対するアクセスを開始するノードから受信した通知およびデータに対するアクセスを終了するノードから受信した通知に基づき、データに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報を生成する第２生成部をさらに有してもよい。
【０１１３】
本実施の形態の第２の態様に係るストレージ制御方法は、（Ｆ）記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、データに対するアクセスの時間長を複数のユーザの各々について算出し、（Ｇ）複数のユーザのうちログイン中であるユーザについて算出された時間長の合計を算出し、（Ｈ）算出された合計に基づき、記憶装置に電源を投入するか決定する処理を含む。
【０１１４】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１１５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）
記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、前記データに対するアクセスの時間長を前記複数のユーザの各々について算出する第１算出部と、
前記複数のユーザのうちログイン中であるユーザについて算出された前記時間長の合計を算出する第２算出部と、
前記第２算出部により算出された前記合計に基づき、前記記憶装置に電源を投入するか決定する決定部と、
を有する情報処理装置。
【０１１７】
（付記２）
前記データは複数のファイルを含み、
前記第１算出部は、
前記複数のユーザの各々について、当該ユーザがログイン中であるか又は前記複数のファイルのうち当該ユーザのファイルがオープンである時間帯のうち、当該ユーザのノードによるアクセスが行われている時間帯の長さである前記時間長を算出する、
付記１記載の情報処理装置。
【０１１８】
（付記３）
前記第１算出部は、
前記複数のユーザの各々について、前記複数のファイルに対するアクセスの時間長の合計を算出する、
付記２記載の情報処理装置。
【０１１９】
（付記４）
前記第１算出部は、
前記複数のユーザの各々について、当該ユーザがログイン中であるか又は前記複数のファイルのうち当該ユーザのファイルがオープンである時間帯の長さおよび当該時間帯の開始時刻においてオープンであるファイルの数と、当該時間帯においてオープンされたファイルの数および当該オープンの時刻から当該時間帯の終了時刻までの時間長と、当該時間帯においてクローズされたファイルの数および当該時間帯の開始時刻から当該クローズの時刻までの時間長とに基づき、前記複数のファイルに対するアクセスの時間長の合計を算出する、
付記３記載の情報処理装置。
【０１２０】
（付記５）
前記第１算出部は、
前記複数のユーザの各々について、当該ユーザがログイン中であるか又は前記複数のファイルのうち当該ユーザのファイルがオープンである時間帯の長さの合計が所定長を超えた場合、当該所定長を超えた分の時間帯であって最も古い時間帯におけるアクセスの時間長を前記合計から削除することにより、前記複数のファイルに対するアクセスの時間長の合計を算出する、
付記３記載の情報処理装置。
【０１２１】
（付記６）
ログインを行うユーザのノードから受信した通知およびログアウトを行うユーザのノードから受信した通知に基づき、前記複数のユーザのログインおよびログアウトを管理するための情報を生成する第１生成部
をさらに有し、
前記第２算出部は、
前記第１生成部により生成された前記情報に基づき、ログイン中であるユーザを特定する、
付記１乃至５のいずれか１つ記載の情報処理装置。
【０１２２】
（付記７）
前記データに対するアクセスを開始するノードから受信した通知および前記データに対するアクセスを終了するノードから受信した通知に基づき、前記データに対して前記複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報を生成する第２生成部
をさらに有する付記１乃至６のいずれか１つ記載の情報処理装置。
【０１２３】
（付記８）
コンピュータが、
記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、前記データに対するアクセスの時間長を前記複数のユーザの各々について算出し、
前記複数のユーザのうちログイン中であるユーザについて算出された前記時間長の合計を算出し、
算出された前記合計に基づき、前記記憶装置に電源を投入するか決定する、
処理を実行するストレージ制御方法。
【０１２４】
（付記９）
コンピュータに、
記憶装置に格納されたデータに対して複数のユーザのノードがアクセスを開始した時刻の情報および当該アクセスを終了した時刻の情報から、前記データに対するアクセスの時間長を前記複数のユーザの各々について算出し、
前記複数のユーザのうちログイン中であるユーザについて算出された前記時間長の合計を算出し、
算出された前記合計に基づき、前記記憶装置に電源を投入するか決定する、
処理を実行させるストレージ制御プログラム。
【符号の説明】
【０１２５】
１  メタデータサーバ    ３ａ，３ｂ  データサーバ
４  ログインノード    ５ａ，５ｂ  クライアントノード
７  ネットワーク    １００  メタデータ格納部
３００ａ，３００ｂ  データ格納部    １０  切替判定部
１１  メタデータ処理部    １２  管理データ格納部
１０１  第１算出部    １０２  第２算出部
１０３  第３算出部    １０４  判定部
１０５  ログイン管理部    ３１  データ処理部
３２  切替部    ４１  状態通知部
５１  クライアント処理部
【図１】
0006769106.tif 000006
【図２Ａ】
0006769106.tif 000007
【図２Ｂ】
0006769106.tif 000008
【図３】
0006769106.tif 000009
【図４】
0006769106.tif 000010
【図５】
0006769106.tif 000011
【図６】
0006769106.tif 000012
【図７】
0006769106.tif 000013
【図８】
0006769106.tif 000014
【図９】
0006769106.tif 000015
【図１０】
0006769106.tif 000016
【図１１】
0006769106.tif 000017
【図１２】
0006769106.tif 000018
【図１３】
0006769106.tif 000019
【図１４】
0006769106.tif 000020
【図１５】
0006769106.tif 000021
【図１６】
0006769106.tif 000022
【図１７Ａ】
0006769106.tif 000023
【図１７Ｂ】
0006769106.tif 000024
【図１８】
0006769106.tif 000025
【図１９】
0006769106.tif 000026
【図２０】
0006769106.tif 000027
【図２１】
0006769106.tif 000028
【図２２】
0006769106.tif 000029
【図２３】
0006769106.tif 000030
【図２４】
0006769106.tif 000031
【図２５】
0006769106.tif 000032