(57)【要約】  低消費電力化を実現する。メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの記憶部が複数ある稼動状態のいずれかの状態にある記憶システムと、所望のメタデータを含む検索要求に対応するデータを取得するデータ取得部と、メタデータに対応するデータがどの記憶部に記憶されているかを管理すると共に各記憶部の稼動状態を管理し、データ取得部からの検索要求に対し、管理内容に基づいて検索結果を応答する管理部と、を備え、データ取得部は、検索結果に基づいて非起動状態にある記憶部よりも優先して起動状態にある記憶部にアクセスすることで、所望のデータを取得する。
2011071104.tif 000002
【特許請求の範囲】
【請求項１】
メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの前記記憶部が複数ある稼動状態のいずれかの状態にある記憶システムと、
所望のメタデータを含む検索要求に対応するデータを取得するデータ取得部と、
前記メタデータに対応するデータがどの前記記憶部に記憶されているかを管理すると共に各前記記憶部の稼動状態を管理し、前記データ取得部からの検索要求に対し、管理内容に基づいて検索結果を応答する管理部と、
を備え、
前記データ取得部は、前記検索結果に基づいて非起動状態にある前記記憶部よりも優先して起動状態にある前記記憶部にアクセスすることで、所望のデータを取得することを特徴とする分散ファイルシステム。
【請求項２】
前記検索結果には、前記所望のメタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を含み、
前記データ取得部は、前記検索結果に基づいて前記記憶部にアクセスすることで前記所望のデータを取得することを特徴とする請求項１記載の分散ファイルシステム。
【請求項３】
前記検索要求には、選択基準情報をさらに含み、
前記検索結果には、前記選択基準情報に合致する、前記所望のメタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を含むことを特徴とする請求項２記載の分散ファイルシステム。
【請求項４】
起動状態にある前記記憶部は、非起動状態にある前記記憶部よりも消費電量が大きいことを特徴とする請求項１記載の分散ファイルシステム。
【請求項５】
前記管理部は、前記メタデータに対応させたオブジェクト識別子と、前記オブジェクト識別子に対応させた前記記憶部の識別子と、前記記憶部の識別子に対応させた前記記憶部の稼動状態とを記憶する管理記憶部を備え、前記管理記憶部を参照することで前記管理を行うことを特徴とする請求項１記載の分散ファイルシステム。
【請求項６】
前記管理部は、前記記憶部の稼動状態を前記記憶部から受信して前記管理記憶部内の情報を更新することを特徴とする請求項５記載の分散ファイルシステム。
【請求項７】
起動状態にある前記記憶部は、停止条件を満たす場合に非起動状態とされることを特徴とする請求項１または４記載の分散ファイルシステム。
【請求項８】
前記メタデータは、属性と値の組からなることを特徴とする請求項１、２、３、５のいずれか一に記載の分散ファイルシステム。
【請求項９】
前記管理部は、サーバであって、前記データ取得部は、クライアントであって、前記記憶システムと前記サーバと前記クライアントとは、ネットワークを介して接続されることを特徴とする請求項１記載の分散ファイルシステム。
【請求項１０】
メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの前記記憶部が複数ある稼動状態のいずれかの状態にある記憶システムとサーバとクライアントとを備える分散ファイルシステムにおけるデータの選択方法であって、
前記クライアントが前記サーバに所望のメタデータを含む検索要求を送信するステップと、
前記サーバが、前記メタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を前記クライアントに返信するステップと、
前記クライアントが、前記サーバからの返信に基づいて、非起動状態にある前記記憶部よりも優先して起動状態にある前記記憶部にアクセスすることで、所望のデータを取得するステップと、
を含むことを特徴とする分散ファイルシステムのデータ選択方法。
【請求項１１】
メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの前記記憶部が複数ある稼動状態のいずれかの状態にある記憶システムとサーバとクライアントとを備える分散ファイルシステムを構成するコンピュータに、
前記クライアントが前記サーバに所望のメタデータを含む検索要求を送信する処理と、
前記サーバが、前記メタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を前記クライアントに返信する処理と、
前記クライアントが、前記サーバからの返信に基づいて、非起動状態にある前記記憶部よりも優先して起動状態にある前記記憶部にアクセスすることで、所望のデータを取得する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２００９−２８０６６１号（２００９年１２月１０日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、分散ファイルシステム、そのデータ選択方法およびプログラムに関し、特にこれらにおける省電力技術に関する。
【背景技術】
【０００２】
従来より、複数のストレージノードにデータを分散して格納する技術が知られている。このような技術は、分散ストレージや分散ファイルシステムや並列ファイルシステムなどと呼ばれており、単純にファイルを分散させて格納するだけではなく、ファイルをより細かい単位に分割して分散格納したり、複数のストレージノードに複製を格納したりすることで、スループット性能を向上させたり、データロスの可能性を低減させたりすることが可能である（例えば、非特許文献１参照）。非特許文献１に記載されるシステムは、多数のＰＣクラスタを分散し、メタデータによる検索を行い、データにアクセスすることができる。【０００３】
ここで、メタデータとは、データに関する属性情報を表すデータである。例えば、データの作成者や作成日時のような情報であったり、分散して格納したファイル群を一つのファイルシステムによって管理するような分散ファイルシステムにおいてはファイルパスやファイル名であったり、ファイルをさらに小さな単位に分割して分散格納するシステムにおいてはファイル内の位置情報であったり、コンテンツとしてデジタルカメラで撮影した画像ファイルであれば撮影者や被写体情報や撮影場所のような情報などである。【０００４】
ところで、省電力を目的として、データが格納されたハードディスクドライブの回転を停止したり電源をオフにしたりする技術が知られている（例えば、特許文献１参照）。このような省電力技術は、前述のような複数のストレージノードにデータを分散格納するシステムにも適用可能である。例えば、一定時間アクセスの無いストレージノードのハードディスクドライブの回転を停止することによって消費電力の低減が図られる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３２５８１７号公報
【非特許文献】
【０００６】
【非特許文献１】建部  修見，森田  洋平，松岡  聡，関口  智嗣，曽田  哲之，「広域大規模データ解析のためのＧｒｉｄ  Ｄａｔａｆａｒｍアーキテクチャ」，情報処理学会研究報告，２００１−ＨＰＣ−８７，ＳＷｏＰＰ２００１，ｐｐ．１７７−１８２，２００１年７月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１及び非特許文献１の全開示内容はその引用をもって本書に繰込み記載する。
以下の分析は本発明において与えられる。【０００８】
非特許文献１に記載のようにメタデータによる検索を行い、データにアクセスするような場合、必ずしも全てのデータにアクセスする必要が無い場合もある。例えば、メタデータ検索の結果が異なるストレージに格納された複数の複製データであるような場合には、いずれか１つのデータにアクセスできれば、所望のデータにアクセスすることができる。しかしながら、このような場合、従来のメタデータによる検索システムでは、消費電力の増加を抑制する技術を開示しておらず、システムの低消費電力化が実現できない。【０００９】
したがって、本発明の目的は、低消費電力化を実現する分散ファイルシステム（装置）、そのデータ選択方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の１つのアスペクト（側面）に係る分散ファイルシステム（装置）は、メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの記憶部が複数ある稼動状態のいずれかの状態にある記憶システムと、所望のメタデータを含む検索要求に対応するデータを取得するデータ取得部と、メタデータに対応するデータがどの記憶部に記憶されているかを管理すると共に各記憶部の稼動状態を管理し、データ取得部からの検索要求に対し、管理内容に基づいて検索結果を応答する管理部と、を備え、データ取得部は、検索結果に基づいて非起動状態にある記憶部よりも優先して起動状態にある記憶部にアクセスすることで、所望のデータを取得する。【００１１】
本発明の他のアスペクト（側面）に係るデータ選択方法は、メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの記憶部が複数ある稼動状態のいずれかの状態にある記憶システムとサーバとクライアントとを備える分散ファイルシステムにおけるデータの選択方法であって、クライアントがサーバに所望のメタデータを含む検索要求を送信するステップと、サーバが、メタデータに対応するデータが記憶されている記憶部と該記憶部の稼動状態とに係る情報をクライアントに返信するステップと、クライアントが、サーバからの返信に基づいて、非起動状態にある記憶部よりも優先して起動状態にある記憶部にアクセスすることで、所望のデータを取得するステップと、を含む。【００１２】
本発明の別のアスペクト（側面）に係るプログラムは、メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの記憶部が複数ある稼動状態のいずれかの状態にある記憶システムとサーバとクライアントとを備える分散ファイルシステムを構成するコンピュータに、クライアントがサーバに所望のメタデータを含む検索要求を送信する処理と、サーバが、メタデータに対応するデータが記憶されている記憶部と該記憶部の稼動状態とに係る情報をクライアントに返信する処理と、クライアントが、サーバからの返信に基づいて、非起動状態にある記憶部よりも優先して起動状態にある記憶部にアクセスすることで、所望のデータを取得する処理と、を実行させる。
【発明の効果】
【００１３】
本発明によれば、非起動状態にある記憶部へのアクセスを抑制し、起動に係る消費電力の増加を抑える。したがって低消費電力化を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る分散ファイルシステムの構成を示す図である。
【図２】本発明の第１の実施形態に係るクライアントの構成を示す図である。
【図３】本発明の第１の実施形態に係るメタデータサーバの構成を示す図である。
【図４】本発明の第１の実施形態に係るストレージノードの構成を示す図である。
【図５】本発明の第１の実施形態に係るメタデータ記憶部の構成を示す図である。
【図６】本発明の第１の実施形態に係る配置情報記憶部の構成を示す図である。
【図７】本発明の第１の実施形態に係る稼動状態情報記憶部の構成を示す図である。
【図８】本発明の第１の実施形態に係るクライアントの動作を示すフローチャートである。
【図９】本発明の第１の実施形態に係るメタデータサーバの動作を示すフローチャートである。
【図１０】本発明の第１の実施形態に係るストレージノードの動作を示すフローチャートである。
【図１１】本発明の第１の実施例に係る分散ファイルシステムの構成を示す図である。
【図１２】本発明の第１の実施例に係るメタデータ記憶部の構成を示す図である。
【図１３】本発明の第１の実施例に係る配置情報記憶部の構成を示す図である。
【図１４】本発明の第１の実施例に係る稼動状態情報記憶部の構成を示す図である。
【図１５】本発明の第１の実施例に係る分散ファイルシステムの動作を表すシーケンス図である。
【図１６】本発明の第２の実施形態に係るクライアントの動作を示すフローチャートである。
【図１７】本発明の第２の実施形態に係るメタデータサーバの動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
本発明の実施形態に係る分散ファイルシステムは、メタデータに対応するデータを分散して記憶する複数の記憶部（図１のストレージノード３に相当）から構成され、それぞれの記憶部が複数ある稼動状態のいずれかの状態にある記憶システム（図１のストレージノード３の群に相当）と、所望のメタデータを含む検索要求に対応するデータを取得するデータ取得部（図１のクライアント１に相当）と、メタデータに対応するデータがどの記憶部に記憶されているかを管理すると共に各記憶部の稼動状態を管理し、データ取得部からの検索要求に対し、管理内容に基づいて検索結果を応答する管理部（図１のメタデータサーバ２に相当）と、を備え、データ取得部は、検索結果に基づいて非起動状態にある記憶部よりも優先して起動状態にある記憶部にアクセスすることで、所望のデータを取得する。
【００１６】
分散ファイルシステムにおいて、検索結果には、所望のメタデータに対応するデータが記憶されている記憶部と該記憶部の稼動状態とに係る情報を含み、データ取得部は、検索結果に基づいて記憶部にアクセスすることで所望のデータを取得するようにしてもよい。
【００１７】
分散ファイルシステムにおいて、検索要求には、選択基準情報をさらに含み、検索結果には、選択基準情報に合致する、所望のメタデータに対応するデータが記憶されている記憶部と該記憶部の稼動状態とに係る情報を含むようにしてもよい。
【００１８】
分散ファイルシステムにおいて、起動状態にある記憶部は、非起動状態にある記憶部よりも消費電量が大きいことが好ましい。
【００１９】
分散ファイルシステムにおいて、管理部は、メタデータに対応させたオブジェクト識別子と、オブジェクト識別子に対応させた記憶部の識別子と、記憶部の識別子に対応させた記憶部の稼動状態とを記憶する管理記憶部（図３の２２に相当）を備え、管理記憶部を参照することで管理を行うようにしてもよい。
【００２０】
分散ファイルシステムにおいて、管理部は、記憶部の稼動状態を記憶部から受信して管理記憶部内の情報を更新するようにしてもよい。
【００２１】
分散ファイルシステムにおいて、起動状態にある記憶部は、停止条件を満たす場合に非起動状態とされるようにしてもよい。
【００２２】
分散ファイルシステムにおいて、メタデータは、属性と値の組からなるようにしてもよい。
【００２３】
分散ファイルシステムにおいて、管理部は、サーバであって、データ取得部は、クライアントであって、記憶システムとサーバとクライアントとは、ネットワークを介して接続されるようにしてもよい。
【００２４】
また、別の見方によれば、本発明の実施形態に係る分散ファイルシステムは、データ群の中から所与のメタデータ条件に対応する候補データ群を選択するメタデータ検索手段と、選択された候補データ群の各データと、各データが記憶されたデバイスの稼動状態を対応づけて付与する稼動状態付与手段と、を備える。また、候補データ群の中から、アクセスを行うデータ群の優先順位を決定するために、稼動状態を判断手段として用いるよう動作するアクセスデータ選択手段を備える。
【００２５】
ところで、省電力モードにあるストレージノードにアクセスするためには、省電力モードでないストレージノードにアクセスする場合よりも時間がかかるのが一般的である。例えば、省電力のために回転停止しているハードディスクのデータにアクセスするには、ディスクの回転処理を行う必要があるので、回転しているハードディスクにアクセスするよりも時間がかかる。
【００２６】
本実施形態に係る分散ファイルシステムによれば、省電力状態にある記憶部へのデータアクセス回数を低減することで、起動に係る消費電力の増加を抑制する。また、省電力状態にある記憶部へのアクセス回数を減らし、省電力状態からの起動に要する時間を待つ回数を抑制し、省電力状態からの起動に要する時間を待つ回数を削減することができる。
【００２７】
以下、分散ファイルシステムについて、より具体的に図面を参照して詳しく説明する。
【００２８】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る分散ファイルシステムの構成を示すブロック図である。図１において、分散ファイルシステムは、データ取得部に相当するクライアント１と、管理部に相当するメタデータサーバ２と、複数の記憶部に相当するストレージノード３と、ネットワーク９とから構成され、クライアント１と、メタデータサーバ２と、複数のストレージノード３は、ネットワーク９を介して接続される。
【００２９】
クライアント１は、データのアクセス要求を行う。メタデータサーバ２は、メタデータとデータの対応情報、およびデータとデータが格納されているストレージノード３との対応情報を保有する。ストレージノード３はデータを保有する。
【００３０】
ここで、クライアント１は、ファイル名によるアクセスを行うものとし、ストレージノード３は、オブジェクトと呼ぶ単位でデータを格納するものとする。オブジェクトは、例えば、ファイルや、ファイルを分割したチャンク等を意味する。
【００３１】
クライアント１は、所望のファイルにアクセスする場合、まずメタデータサーバ２にファイル名を送り、検索要求を行う。メタデータサーバ２は、ファイル名に該当するファイルを構成するオブジェクトを検索し、オブジェクト識別子と各々のオブジェクトを格納しているストレージノード３のノード識別子をクライアント１に送信する。クライアント１は、メタデータサーバ２から受信したノード識別子とオブジェクト識別子を用いてストレージノード３にオブジェクトを要求し、所望のオブジェクトを得て、これらのオブジェクトを組み合わせて所望のファイルを得る。
【００３２】
次に、図２を用いてクライアント１の構成を詳細に説明する。クライアント１は、処理部１１と、記憶部１２と、通信部１３とからなる。
【００３３】
処理部１１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とメモリによって構成された計算機システムや、専用の電子回路によって実現され、プログラム実行部１１１と、オブジェクト選択部１１２と、検索要求部１１３と、オブジェクト要求部１１４とからなる。処理部１１は、クライアント用の所定のプログラムを実行することで各部を機能させるようにしてもよい。
【００３４】
プログラム実行部１１１は、プログラム記憶部１２１に記憶されたプログラムを読み込んで実行する。
【００３５】
オブジェクト選択部１１２は、検索要求部１１３から渡されたメタデータ検索結果と選択基準情報記憶部１２２に記憶された選択基準情報に基づいて、アクセスするオブジェクトを決定してプログラム実行部１１１にアクセスするオブジェクトの情報を渡す。
【００３６】
検索要求部１１３は、通信部１３およびネットワーク９を介してメタデータサーバ２にメタデータ検索要求を行う。また、ネットワーク９および通信部１３を介してメタデータサーバ２からメタデータ検索結果を受信してオブジェクト選択部１１２に渡す。
【００３７】
オブジェクト要求部１１４は、通信部１３およびネットワーク９を介してストレージノード３にオブジェクト要求を行う。また、ネットワーク９および通信部１３を介してストレージノード３から受信したオブジェクトをオブジェクト記憶部１２３に格納する。
【００３８】
なお、プログラム実行部１１１と、オブジェクト選択部１１２と、検索要求部１１３と、オブジェクト要求部１１４は、物理的には、各々が別のシステムであっても良いし、２つ以上が同一システム上で動作する構成であっても良い。
【００３９】
記憶部１２は、例えばハードディスクドライブによって実現され、プログラム記憶部１２１と、選択基準情報記憶部１２２と、オブジェクト記憶部１２３とからなる。
【００４０】
プログラム記憶部１２１は、プログラム実行部１１１が実行するためのプログラムを記憶する。選択基準情報記憶部１２２は、オブジェクト選択部１１２がオブジェクト選択を行うための基準とする情報を記憶する。オブジェクト記憶部１２３は、オブジェクトを記憶する。
【００４１】
通信部１３は、クライアント１の内部とネットワーク９とのインタフェースを司る。
【００４２】
次に、図３を用いてメタデータサーバ２の構成を詳細に説明する。メタデータサーバ２は、処理部２１と、記憶部２２と、通信部２３とからなる。
【００４３】
処理部２１は、例えばＣＰＵとメモリによって構成された計算機システムや、専用の電子回路によって実現され、検索部２１１と、検索要求処理部２１２と、稼動状態管理部２１３とからなる。処理部２１は、メタデータサーバ用の所定のプログラムを実行することで各部を機能させるようにしてもよい。
【００４４】
検索部２１１は、検索要求処理部２１２から渡された検索条件に基づき、メタデータ記憶部２２１からメタデータ検索を行い、検索結果であるオブジェクト識別子を検索要求処理部２１２に渡す。
【００４５】
検索要求処理部２１２は、ネットワーク９と通信部２３を介してクライアント１からメタデータ検索要求を受信し、検索部２１１に検索条件を渡し、検索部２１１から検索結果であるオブジェクト識別子を受け取る。また、配置情報記憶部２２２に格納された配置情報から、前記のオブジェクト識別子に対応するノード識別子を検索する。また、稼動状態情報記憶部２２３に格納された稼動状態情報から、前記のノード識別子に対応する稼動状態を検索する。また、前記オブジェクト識別子と、前記ノード識別子と、前記稼動状態を、通信部２３とネットワーク９を介してメタデータ検索要求を行ったクライアント１に送信する。
【００４６】
稼動状態管理部２１３は、ネットワーク９と通信部２３を介してストレージノード３から稼動状態変更通知を受信すると、稼動状態情報記憶部２２３の情報を更新する。
【００４７】
なお、検索部２１１と、検索要求処理部２１２と、稼動状態管理部２１３は、物理的には、各々が別のシステムであっても良いし、２つ以上が同一システム上で動作する構成であっても良い。
【００４８】
記憶部２２は、例えばハードディスクドライブにより実現され、メタデータ記憶部２２１と、配置情報記憶部２２２と、稼動状態情報記憶部２２３とからなる。
【００４９】
メタデータ記憶部２２１は、オブジェクト識別子とメタデータの属性名とメタデータの値を記憶する。オブジェクト識別子とは、全てのストレージノード３が有するオブジェクトの中で一意に付与されたオブジェクトの識別子である。メタデータとは、オブジェクトに関する情報であり、属性名と値の組である。例えば、属性名が作成日、値が２０００年８月２２日といったものがある。ひとつのオブジェクトに対して、複数のメタデータが付与されうる。図５は、メタデータ記憶部２２１のデータ構造を表す。メタデータ記憶部２２１は、オブジェクト識別子を記憶するオブジェクト識別子列２２１１と、属性名を記憶する属性名列２２１２と、値を記憶する値列２２１３とからなる表構造である。一つのオブジェクト識別子に対応する属性名と値は複数記憶することが可能である。すなわち、同一のオブジェクト識別子の値を有する行が複数存在しうる。
【００５０】
配置情報記憶部２２２は、オブジェクト識別子とノード識別子を記憶する。ノード識別子とは、ストレージノード３を一意に識別するための値である。図６は、配置情報記憶部２２２のデータ構造を表す。配置情報記憶部２２２は、オブジェクト識別子を記憶するオブジェクト識別子列２２２１と、ノード識別子を記憶するノード識別子列２２２２とからなる表構造である。
【００５１】
稼動状態情報記憶部２２３は、ノード識別子と稼動状態を記憶する。図７は、稼動状態情報記憶部２２３のデータ構造である。稼動状態情報記憶部２２３は、ノード識別子列２２３１と稼動状態列２２３２とからなる表構造である。
【００５２】
通信部２３は、メタデータサーバ２の内部とネットワーク９とのインタフェースを司る。
【００５３】
次に、図４を用いてストレージノード３の構成を詳細に説明する。ストレージノード３は、処理部３１と、記憶部３２と、通信部３３とからなる。
【００５４】
処理部３１は、例えばＣＰＵとメモリによって構成された計算機システムや、専用の電子回路によって実現され、オブジェクト要求処理部３１１と、稼動状態通知部３１２と、稼動状態決定部３１３と、稼動状態制御部３１４とからなる。処理部３１は、ストレージノード用の所定のプログラムを実行することで各部を機能させるようにしてもよい。
【００５５】
オブジェクト要求処理部３１１は、通信部３３とネットワーク９を介してクライアント１から受信したオブジェクト要求に従って、オブジェクト記憶部３２１からオブジェクトを読み出して、クライアント１に送信する。また、オブジェクトへのアクセス履歴をアクセス履歴記憶部３２２に記憶する。アクセス履歴とは、アクセス頻度やアクセス日時である。
【００５６】
稼動状態通知部３１２は、ストレージノード３の稼動状態が変更された時に、通信部３３とネットワーク９を介してメタデータサーバ２にノード識別子と稼動状態を通知する。稼動状態とは、例えば１台のストレージノード３全体を起動させた状態や、１台のストレージノード３全体を停止させた状態や、オブジェクト記憶部３２１のうち、アクセス頻度の少ないオブジェクトのみが格納されたハードディスクドライブのみを停止させた状態、などである。ただし本実施の形態では、ストレージノード３全体が起動状態である場合と、ストレージノード３全体が停止状態である場合のみを扱う。なお、停止状態であってもクライアント１からの要求は受信可能な状態とする。
【００５７】
稼動状態決定部３１３は、アクセス履歴記憶部３２２に基づいて、ストレージノード３の稼動状態を決定する。例えば、一定期間アクセスが無い場合は、停止状態とする。また、停止状態にある時にクライアント１からオブジェクト要求を受信した場合は、起動させた状態とする。
【００５８】
稼動状態制御部３１４は、稼動状態決定部３１３が決定した状態になるようにストレージノード３を制御する。
【００５９】
なお、オブジェクト要求処理部３１１と、稼動状態通知部３１２と、稼動状態決定部３１３と、稼動状態制御部３１４は、物理的には、各々が別のシステムであっても良いし、２つ以上が同一システム上で動作する構成であっても良い。
【００６０】
記憶部３２は、例えばハードディスクドライブにより実現され、オブジェクト記憶部３２１と、アクセス履歴記憶部３２２とからなる。オブジェクト記憶部３２１は、オブジェクトを記憶する。アクセス履歴記憶部３２２は、アクセス履歴を記憶する。
【００６１】
通信部３３は、ストレージノード３の内部とネットワーク９とのインタフェースを司る。
【００６２】
次に、図８のフローチャートを参照して本実施の形態のクライアント１の動作について説明する。
【００６３】
まず、クライアント１は、メタデータサーバ２にメタデータ検索要求を送信する（ステップＡ１）。メタデータ検索要求時には、メタデータの属性と値の組を送信する。属性と値の組は複数であっても良い。次に、メタデータサーバ２から検索結果を受信するのを待つ（ステップＡ２）。検索結果を受信すると、検索結果と選択基準情報に基づいてアクセスするオブジェクトを選択し（ステップＡ３）、ストレージノード３にオブジェクト要求を送信し（ステップＡ４）、全オブジェクトを受信するのを待つ（ステップＡ５）。
【００６４】
次に、図９のフローチャートを参照して本実施の形態のメタデータサーバ２の動作について説明する。
【００６５】
まず、メタデータサーバ２は、メタデータ検索要求を受信すると（ステップＢ１のＹｅｓ）、検索要求された条件、すなわち属性と値を有するオブジェクトを検索し、オブジェクト識別子を得る（ステップＢ２）。次に、このオブジェクト識別子を有するノードを検索し、ノード識別子を得る（ステップＢ３）。次に、ノード識別子のノードの稼動状態を検索し、稼動状態を得る（ステップＢ４）。次に、検索要求を行ったクライアント１に検索結果を送信する（ステップＢ５）。検索結果は、メタデータ検索に合致した全てのオブジェクトについての、オブジェクト識別子と、ノード識別子と、稼動状態の組である。ステップＢ５の後は、ステップＢ１の処理に戻る。
【００６６】
ステップＢ１において検索要求を受信しなかった場合（ステップＢ１のＮｏ）、ストレージノード３から稼動状態通知を受信すると（ステップＢ６）、該当する稼動状態情報を更新し（ステップＢ７）、ステップＢ１の処理に戻る。
【００６７】
次に、図１０のフローチャートを参照して本実施の形態のストレージノード３の動作について説明する。
【００６８】
まず、ストレージノード３は、クライアント１からオブジェクト要求を受信すると（ステップＣ１のＹｅｓ）、ストレージノード３が起動状態の場合は（ステップＣ２のＹｅｓ）、要求されたオブジェクトをクライアント１に送信し（ステップＣ３）、アクセス履歴を更新し（ステップＣ４）、ステップＣ１の処理に戻る。
【００６９】
ステップＣ２で起動状態でない場合（ステップＣ２のＮｏ）、起動処理を行い（ステップＣ５）、ステップＣ３の処理を行う。
【００７０】
ステップＣ１でオブジェクト要求を受信していない場合（ステップＣ１のＮｏ）、所定時間以上アクセスが無いなどの停止条件を満たしていれば（ステップＣ６のＹｅｓ）、停止処理（ステップＣ７）を行い、ステップＣ１の処理に戻る。ステップＣ６で停止条件を満たしていない場合（ステップＣ６のＮｏ）、ステップＣ１の処理に戻る。
【００７１】
以上の説明では、ファイル名での検索を行う単純な例について説明したが、メタデータサーバ２がより多くのメタデータを管理する場合、メタデータによるより高度な検索によるアクセスも可能である。例えば、クライアント１が特性の期間を指定してメタデータサーバ２に検索を要求し、メタデータサーバ２は所与の期間内に作成されたファイルのオブジェクト識別子およびノード識別子および稼動状態の一覧をクライアント１に送信し、クライアント１は一覧の中からさらに条件を絞って実際にアクセスするオブジェクトを選択するようなことも可能である。
【００７２】
次に、簡単な事例を用いて上記第１の実施形態の具体的な動作を説明する。
【００７３】
「実施例１」
図１１は、本発明の第１の実施例に係る分散ファイルシステムの構成を表す図である。クライアント１として、クライアント１ａ、１ｂの２台が設けられ、ストレージノード３として、ストレージノード３ａ、３ｂ、３ｃの３台が設けられているものとする。
【００７４】
図１２は、本実施例におけるメタデータサーバ２のメタデータ記憶部２２１の状態の一部を表した図である。図１３は、本実施例におけるメタデータサーバ２の配置情報記憶部２２２の状態の一部を表した図である。図１４は、本実施例におけるメタデータサーバ２の稼動状態情報記憶部２２３の状態の一部を表した図である。なお、ノード識別子列に格納されているａ、ｂ、ｃの各文字は、ストレージノード３ａ、３ｂ、３ｃの添え字のアルファベットに対応するものとする。
【００７５】
クライアント１ａのプログラム記憶部１２１には、所与のメタデータの条件を満たす写真を取得するプログラムが格納されているものとする。また、クライアント１ａの選択基準情報記憶部１２２には、「起動ストレージノード最優先で２個のオブジェクト」である情報が格納されているものとする。
【００７６】
ここで、クライアント１ａにおいて、メタデータ「属性名＝被写体、値＝富士山」のオブジェクトを取得するプログラムが実行された場合について考える。
【００７７】
まず、クライアント１ａは、メタデータサーバ２に対してメタデータ「属性名＝被写体、値＝富士山」を指定した検索要求を送信する（ステップＡ１）。
【００７８】
メタデータサーバ２は、検索要求を受信すると（ステップＢ１のＹｅｓ）、メタデータ記憶部２２１から、「属性名＝被写体、値＝富士山」を検索し、該当するオブジェクト識別子を抽出する（ステップＢ２）。この場合、図１２を参照すると、検索結果として、「ｏｂｊｅｃｔ１１」、「ｏｂｊｅｃｔ２３」、「ｏｂｊｅｃｔ５６」、「ｏｂｊｅｃｔ７２」の４つのオブジェクト識別子が抽出される。
【００７９】
次に、メタデータサーバ２は、配置情報記憶部２２２を用いて、４つのオブジェクト識別子に対応するノード識別子を検索する（ステップＢ３）。この場合、図１３を参照すると、オブジェクト識別子とノード識別子の組は、「ｏｂｊｅｃｔ１１、ｃ」、「ｏｂｊｅｃｔ２３、ｂ」、「ｏｂｊｅｃｔ５６、ａ」、「ｏｂｊｅｃｔ７２、ｂ」となる。
【００８０】
さらに、メタデータサーバ２は、稼動状態情報記憶部２２３を用いて４つのノード識別子に対応するストレージノードの稼動状態を検索する（ステップＢ４）。この場合、図１４を参照すると、オブジェクト識別子とノード識別子と稼動状態の組は、「ｏｂｊｅｃｔ１１、ｃ、起動」、「ｏｂｊｅｃｔ２３、ｂ、停止」、「ｏｂｊｅｃｔ５６、ａ、起動」、「ｏｂｊｅｃｔ７２、ｂ、停止」となる。次に、メタデータサーバ２は、検索結果として、「ｏｂｊｅｃｔ１１、ｃ、起動」、「ｏｂｊｅｃｔ２３、ｂ、停止」、「ｏｂｊｅｃｔ５６、ａ、起動」、「ｏｂｊｅｃｔ７２、ｂ、停止」をクライアント１に送信する（ステップＢ５）。
【００８１】
クライアント１ａは、検索結果を受信すると（ステップＡ２のＹｅｓ）、選択基準情報である「起動ストレージノード最優先」に従って、アクセスするオブジェクトを選択する（ステップＡ３）。この場合、「ｏｂｊｅｃｔ１１、ｃ、起動」と「ｏｂｊｅｃｔ５６、ａ、起動」が選択される。
【００８２】
次に、クライアント１ａは、ストレージノード３ｃに対してｏｂｊｅｃｔ１１を、ストレージノード３ａに対してｏｂｊｅｃｔ５６を要求する（ステップＡ４）。
【００８３】
ストレージノード３ｃおよび３ａはそれぞれ、クライアント１ａからオブジェクト要求を受信すると（ステップＣ１のＹｅｓ）、いずれも起動状態であるので（ステップＣ２のＹｅｓ）、ストレージノード３ｃはｏｂｊｅｃｔ１１を、ストレージノード３ａはｏｂｊｅｃｔ５６をそれぞれのオブジェクト記憶部３２１から読み出して、クライアント１ａに送信し（ステップＣ３）、アクセス履歴を更新する（ステップＣ４）。
【００８４】
クライアント１ａは、ストレージノード３ｃからｏｂｊｅｃｔ１１を、ストレージノード３ａからｏｂｊｅｃｔ５６を受信してオブジェクト記憶部１２３に格納する。
【００８５】
以上の動作をシーケンス図で示すと、図１５のようになる。
【００８６】
以上のような分散ファイルシステムによれば、停止状態であるストレージノード３ｂが起動すること無く、クライアント１ａは所定のメタデータに対応するオブジェクトを所定の数だけ得ることができる。この場合、ストレージノード３ｂが起動することによる消費電力の増大を避け、かつ、クライアント１ａはストレージノード３ｂの起動にかかる時間を待つ必要が無い。
【００８７】
すなわち、メタデータサーバ２が稼動状態情報記憶部２２３を有し、メタデータ検索結果に対応するストレージノード３の稼動状態をクライアント１に送信し、クライアント１は稼動状態をオブジェクト選択に用いるため、停止状態にあるストレージサーバ３の起動を抑制することができる。また、クライアント１がストレージサーバ３の起動を待つためにアクセス時間が増加する回数を減らすことができる。
［第２の実施形態］
【００８８】
本発明の第２の実施形態に係る全体構成（図１）、クライアント１の構成（図２）、メタデータサーバ２の構成（図３）、ストレージノード３の構成（図４）、ストレージノード３の動作（図１０）は、第１の実施形態と同じである。ただし、クライアント１の動作の一部およびメタデータサーバ２の動作の一部に関して、第１の実施形態とは異なる。以降の説明では、第１の実施形態と異なる部分についてのみ説明する。
【００８９】
まず、図１６のフローチャートを用いて本実施形態におけるクライアント１の動作について説明する。クライアント１の動作は、第１の実施形態におけるクライアント１の動作（図８のステップＡ１）とは検索要求送信（ステップＡ１ａ）において送信する内容が異なる。ステップＡ１ａでは、検索要求送信時に、メタデータの属性と値の組に加え、選択基準情報を送信する。また、第１の実施形態とは、オブジェクト選択（図８のステップＡ３）を行わない点が異なる。
【００９０】
次に、図１７のフローチャートを用いて本実施形態におけるメタサーバ２の動作について説明する。メタサーバ２の動作は、第１の実施形態におけるメタサーバ２の動作（図９）とは、稼動状態検索（ステップＢ４）と検索結果送信（ステップＢ５）の間にオブジェクト選択（ステップＢ１０）を行う点において異なる。オブジェクト選択（ステップＢ１０）では、クライアント１から送信された選択基準情報に基づいて、オブジェクトの選択を行う。
【００９１】
以上のように、本実施形態では、第１の実施形態においてクライアント１が行っていたオブジェクトの選択をメタサーバ２が行う。このようにすることで、第１の実施形態と比較すると、クライアント１の処理の負荷が低減される。したがって、クライアント１のマシン性能が低く、メタサーバ２として性能の高いマシンを用意できるようなシステム構成において優位となる。また、メタサーバ２がクライアント１に送信する検索結果のデータ量を削減することができる。
【００９２】
なお、以上の説明では、メタデータサーバ２が稼動状態管理部２１３や稼動状態情報記憶部２２３を有する構成としたが、これらの機能を持つ独立した稼動状態管理ノードを設け、メタデータサーバ２と稼動状態管理ノード間およびストレージノード３と稼動状態管理ノード間で通信を行うことにより同様の動作を行わせるようにしても良い。
【００９３】
また、以上の説明では、クライアント１において選択基準情報記憶部１２２が選択基準情報を有する構成としたが、選択基準情報の一部はプログラムにより決定されるようにしても良い。例えば、外部からコンソール（不図示）を通してプログラム実行パラメータとして選択基準を入力し、この外部から入力した選択基準と選択基準情報記憶部１２２が有する選択基準の両方を満たす条件を選択基準情報とするようにしても良い。
【００９４】
さらに、以上の説明では、稼動状態として起動状態と停止状態のみを扱ったが、電力がこれらの中間となるような状態（例えば一部の回路の電源を停止した状態）など、消費電力に係るその他の状態を扱うようにしてもよい。ただしこの場合、状態と消費電力の大小関係を対応させて扱い、消費電力の小さな状態を消費電力の大きな状態にできるだけ遷移させないようにアクセスするオブジェクトを選択することが好ましい。
【００９５】
また、以上の説明では、アクセスするオブジェクトの選択は稼動状態のみによって決定したが、別の条件と組み合わせて選択の際の優先順位付けを行うようにしても良い。例えば、メタデータとして各々のオブジェクトの作成日時をメタデータサーバから取得して、作成日時の新しさを１番目の優先順位付けに用い、稼動状態は２番目の優先順位付けに用いてアクセスするオブジェクトを選択するようにしてもよい。
【００９６】
さらに、以上の説明では、稼動状態情報の管理はノード単位で管理する構成としたが、稼動状態の遷移が別のデバイスの単位（例えばハードディスクドライブ）で行われる場合は、この単位で行うことが好ましい。
【００９７】
また、以上の説明では、ストレージノード３が自身の稼動状態を制御して、その状態をメタデータサーバ２に通知する動作としたが、メタデータサーバ２がストレージノード３のアクセス履歴を監視して、停止を指示するような構成にしてもよい。
【００９８】
さらに、以上の説明では、分散ファイルシステムをネットワーク９を介したクライアントサーバシステムであるとして説明したが、これに限定されるものではない。すなわち、ストレージノードに対応する記憶システムと、メタデータサーバに対応する管理部と、クライアントに対応するデータ取得部とで構成するようなシステムであればよい。
【産業上の利用可能性】
【００９９】
本発明によれば、分散ストレージといった用途に適用できる。また、コンテンツ配信システムといった用途にも適用可能である。【０１００】
なお、前述の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１０１】
１、１ａ、１ｂ  クライアント
１１  処理部
１１１  プログラム実行部
１１２  オブジェクト選択部
１１３  検索要求部
１１４  オブジェクト要求部
１２  記憶部
１２１  プログラム記憶部
１２２  選択基準情報記憶部
１２３  オブジェクト記憶部
１３  通信部
２  メタデータサーバ
２１  処理部
２１１  検索部
２１２  検索要求処理部
２１３  稼動状態管理部
２２  記憶部
２２１  メタデータ記憶部
２２１１  オブジェクト識別子列
２２１２  属性名列
２２１３  値列
２２２  配置情報記憶部
２２２１  オブジェクト識別子列
２２２２  ノード識別子列
２２３  稼動状態情報記憶部
２２３１  ノード識別子列
２２３２  稼動状態列
２３  通信部
３、３ａ、３ｂ、３ｃ  ストレージノード
３１  処理部
３１１  オブジェクト要求処理部
３１２  稼動状態通知部
３１３  稼動状態決定部
３１４  稼動状態制御部
３２  記憶部
３２１  オブジェクト記憶部
３２２  アクセス履歴記憶部
３３  通信部
９  ネットワーク
【図１】
2011071104.tif 000003
【図２】
2011071104.tif 000004
【図３】
2011071104.tif 000005
【図４】
2011071104.tif 000006
【図５】
2011071104.tif 000007
【図６】
2011071104.tif 000008
【図７】
2011071104.tif 000009
【図８】
2011071104.tif 000010
【図９】
2011071104.tif 000011
【図１０】
2011071104.tif 000012
【図１１】
2011071104.tif 000013
【図１２】
2011071104.tif 000014
【図１３】
2011071104.tif 000015
【図１４】
2011071104.tif 000016
【図１５】
2011071104.tif 000017
【図１６】
2011071104.tif 000018
【図１７】
2011071104.tif 000019
【手続補正書】
【提出日】平成24年6月15日(2012.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの前記記憶部が複数ある稼動状態のいずれかの状態にある記憶システムと、
所望のメタデータを含む検索要求に対応するデータを取得するデータ取得部と、
前記メタデータに対応するデータがどの前記記憶部に記憶されているかを管理すると共に各前記記憶部の稼動状態を管理し、前記データ取得部からの検索要求に対し、管理内容に基づいて検索結果を応答する管理部と、
を備え、
前記データ取得部は、前記検索結果に基づいて非起動状態にある前記記憶部よりも優先して起動状態にある前記記憶部にアクセスすることで、所望のデータを取得することを特徴とする分散ファイルシステム。
【請求項２】
前記検索結果には、前記所望のメタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を含み、
前記データ取得部は、前記検索結果に基づいて前記記憶部にアクセスすることで前記所望のデータを取得することを特徴とする請求項１記載の分散ファイルシステム。
【請求項３】
前記検索要求には、選択基準情報をさらに含み、
前記検索結果には、前記選択基準情報に合致する、前記所望のメタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を含むことを特徴とする請求項２記載の分散ファイルシステム。
【請求項４】
起動状態にある前記記憶部は、非起動状態にある前記記憶部よりも消費電量が大きいことを特徴とする請求項１記載の分散ファイルシステム。
【請求項５】
前記管理部は、前記メタデータに対応させたオブジェクト識別子と、前記オブジェクト識別子に対応させた前記記憶部の識別子と、前記記憶部の識別子に対応させた前記記憶部の稼動状態とを記憶する管理記憶部を備え、前記管理記憶部を参照することで前記管理を行うことを特徴とする請求項１記載の分散ファイルシステム。
【請求項６】
起動状態にある前記記憶部は、停止条件を満たす場合に非起動状態とされることを特徴とする請求項１または４記載の分散ファイルシステム。
【請求項７】
前記メタデータは、属性と値の組からなることを特徴とする請求項１、２、３、５のいずれか一に記載の分散ファイルシステム。
【請求項８】
前記管理部は、サーバであって、前記データ取得部は、クライアントであって、前記記憶システムと前記サーバと前記クライアントとは、ネットワークを介して接続されることを特徴とする請求項１記載の分散ファイルシステム。
【請求項９】
メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの前記記憶部が複数ある稼動状態のいずれかの状態にある記憶システムとサーバとクライアントとを備える分散ファイルシステムにおけるデータの選択方法であって、
前記クライアントが前記サーバに所望のメタデータを含む検索要求を送信するステップと、
前記サーバが、前記メタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を前記クライアントに返信するステップと、
前記クライアントが、前記サーバからの返信に基づいて、非起動状態にある前記記憶部よりも優先して起動状態にある前記記憶部にアクセスすることで、所望のデータを取得するステップと、
を含むことを特徴とする分散ファイルシステムのデータ選択方法。
【請求項１０】
メタデータに対応するデータを分散して記憶する複数の記憶部から構成され、それぞれの前記記憶部が複数ある稼動状態のいずれかの状態にある記憶システムとサーバとクライアントとを備える分散ファイルシステムを構成するコンピュータに、
前記クライアントが前記サーバに所望のメタデータを含む検索要求を送信する処理と、
前記サーバが、前記メタデータに対応するデータが記憶されている前記記憶部と該記憶部の稼動状態とに係る情報を前記クライアントに返信する処理と、
前記クライアントが、前記サーバからの返信に基づいて、非起動状態にある前記記憶部よりも優先して起動状態にある前記記憶部にアクセスすることで、所望のデータを取得する処理と、
を実行させるプログラム。
【国際調査報告】
2011071104.tif 000020
2011071104.tif 000021
2011071104.tif 000022
2011071104.tif 000023