(57)【要約】【課題】ユーザ計算端末から多数の小サイズのユーザ利用データが転送される場合でも、これを分散記憶装置が高速に格納することができるデータ管理システムを提供する。【解決手段】記憶させるユーザ利用データの資源量情報をユーザ計算端末Ａ１が作成して送信する。これに基づいてユーザ利用データを分散記憶装置Ａ２が必要により分散させて記憶させる少なくとも一つのデータ記憶部Ａ２１１，Ａ２１２，〜を決定して返信する。これで受信する記憶資源ＩＤに対応してユーザ利用データをユーザ計算端末Ａ１が分散記憶装置Ａ２に送信する。これで受信したユーザ利用データを複数のデータ記憶部Ａ２１１，Ａ２１２，〜が必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する。これで受信した記憶位置データと記憶資源ＩＤとユーザ利用データを一意に示す利用データＩＤとを分散記憶装置Ａ２にユーザ計算端末Ａ１が送信する。【選択図】図１
2011048427.tif 000002
【特許請求の範囲】
【請求項１】
各種のユーザ利用データを個々に利用する複数のユーザ計算端末と、前記ユーザ利用データを必要により複数のデータ記憶資源に分散させて記憶する少なくとも一個の分散記憶装置と、を有するデータ管理システムであって、
前記ユーザ計算端末は、前記分散記憶装置の複数の前記データ記憶資源に必要により分散させて記憶させる前記ユーザ利用データの資源量情報を作成して送信する資源量送信手段を有し、
前記分散記憶装置は、前記ユーザ計算端末から受信した前記資源量情報に基づいて前記ユーザ利用データを必要により分散させて記憶させる少なくとも一つの前記データ記憶資源を決定して返信する資源管理手段を有し、
前記ユーザ計算端末は、受信する記憶資源ＩＤに対応して前記ユーザ利用データを前記分散記憶装置に送信するデータ送信手段を有し、
前記分散記憶装置は、受信した前記ユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数の前記データ記憶資源を有し、
前記ユーザ計算端末は、受信した前記記憶位置データと前記記憶資源ＩＤとともに前記ユーザ利用データを一意に示す利用データＩＤを前記分散記憶装置に送信する共有登録手段を有し、
前記分散記憶装置は、前記利用データＩＤごとに前記記憶位置データと前記記憶資源ＩＤとを受信して前記ユーザ利用データを管理する配置管理手段を有することを特徴とするデータ管理システム。
【請求項２】
前記データ送信手段は、所定のデータ個数とデータ容量との少なくとも一方を指標として複数のユーザ利用データを一つにして前記データ記憶資源に送信し、
前記分散記憶装置は、一つにされた複数の前記ユーザ利用データを必要により分散させて記憶するとともに各々の複数の記憶位置データを個々に返信し、
前記配置管理手段は、複数の前記ユーザ利用データを受信してから対応する複数の前記記憶位置データを送信する、請求項１に記載のデータ管理システム。
【請求項３】
複数の前記ユーザ計算端末は通信ネットワークで前記分散記憶装置の複数の前記データ記憶資源と接続されており、
複数の前記ユーザ計算端末は、各々の前記通信ネットワークでのネット端末位置を前記資源量送信手段が生成する前記資源量情報に内包させ、
前記分散記憶装置は、複数の前記データ記憶資源ごとに少なくとも前記通信ネットワークでのネット資源位置を記憶している記憶資源データベースを、さらに有し、
前記資源管理手段は、前記ネット端末位置と前記ネット資源位置との少なくとも一方に対応して前記ユーザ利用データを必要により分散させて記憶させる少なくとも一つの前記データ記憶資源を決定する請求項１または２に記載のデータ管理システム。
【請求項４】
前記記憶資源データベースは、必要により分散されて記憶されている複数の前記ユーザ利用データと複数の前記データ記憶資源との対応関係も記憶している請求項３に記載のデータ管理システム。
【請求項５】
前記資源量送信手段は、記憶させる複数のユーザ利用データのうち少なくとも一部に対応する一部対応の前記資源量情報も生成し、
前記データ送信手段は、一部対応の前記資源量情報に該当する前記ユーザ利用データを送信し、
前記共有登録手段は、送信された前記ユーザ利用手段に対応して返信された前記記憶位置データを一時保存するとともに残余の前記ユーザ利用データを記憶する前記データ記憶資源を前記資源管理手段に決定させて記憶させる複数の前記ユーザ利用データに対する前記記憶位置データも一時保存し、
前記共有登録手段は、一時保存された前記記憶位置データを前記配置管理手段に送信する請求項１ないし４の何れか一項に記載のデータ管理システム。
【請求項６】
前記分散記憶装置は、前記配置管理手段は、前記データ記憶資源に記憶させて管理した前記ユーザ利用データを任意の前記データ記憶資源に移動させ、移動させた前記ユーザ利用データを対応する前記データ記憶資源とともに管理する請求項１ないし５の何れか一項に記載のデータ管理システム。
【請求項７】
前記ユーザ計算端末は、前記分散記憶装置から対応する前記記憶位置データを受信した前記ユーザ利用データを削除するデータ削除手段を、さらに有する請求項１ないし６の何れか一項に記載のデータ管理システム。
【請求項８】
前記分散記憶装置は、前記データ記憶資源の故障を検知する死活監視手段と、前記死活監視手段が故障を検知した前記データ記憶資源に前記ユーザ利用データを送信中の前記ユーザ計算端末を特定するアボート特定手段と、特定された前記ユーザ計算端末にデータ再送依頼を送信する再送依頼手段とを、さらに有し、
前記ユーザ計算端末は、前記分散記憶装置から前記データ再送依頼を受信すると前記ユーザ利用データを前記データ送信手段に再送させる再送制御手段を、さらに有する請求項１ないし７の何れか一項に記載のデータ管理システム。
【請求項９】
前記資源管理手段は、一つ以上の前記データ記憶資源の利用可能資源量を各々管理する複数の部分資源管理手段を有し、
前記部分資源管理手段は、管理する前記データ記憶資源に対応する、前記記憶資源ＩＤと前記データ記憶資源の前記利用可能資源量とが互いに対応付けて記憶された記憶資源データベースの部分情報を持つ部分記憶資源データベースをそれぞれ有し、
前記ユーザ計算端末は、一つの前記部分資源管理手段を第一の資源管理手段として選択して、当該部分資源管理手段に前記資源量情報を送信し、
前記第一の資源管理手段は、受信した前記資源量情報と、当該第一の資源管理手段の有する前記部分記憶資源データベースに格納された前記部分情報と、に基づいて、前記データ記憶資源に前記ユーザ利用データを記憶することの可否を判定し、
前記データ記憶資源に前記ユーザ利用データを記憶することが不可能と判定されたとき、前記資源管理手段は、他の前記部分資源管理手段を第二の資源管理手段として選択して、当該部分資源管理手段に前記資源量情報を転送し、前記第二の資源管理手段は、受信した前記資源量情報と、当該第二の資源管理手段の有する前記部分記憶資源データベースに格納された前記部分情報と、に基づいて、前記データ記憶資源に前記ユーザ利用データを記憶することの可否を判定する請求項１ないし８の何れか一項に記載のデータ管理システム。
【請求項１０】
前記第二の資源管理手段が管理する前記データ記憶資源の前記記憶資源ＩＤを前記ユーザ計算端末に送信する請求項９に記載のデータ管理システム。 
【請求項１１】
前記配置管理手段は、前記ユーザ計算端末から前記記憶資源ＩＤと前記記憶位置データと前記利用データＩＤとを受信したときにデータ登録可否を判定し、データ登録不能のときは登録不可通知を前記ユーザ計算端末に返信し、
前記ユーザ計算端末は、受信した前記登録不可通知を前記データ利用機能に通知する請求項１ないし１０の何れか一項に記載のデータ管理システム。
【請求項１２】
前記配置管理手段は、管理する前記ユーザ利用データの前記利用データＩＤに内包されているデータ版情報も管理し、管理している前記データ版情報に対応して前記登録可否判断を実行する請求項１１に記載のデータ管理システム。
【請求項１３】
請求項１に記載のデータ管理システムの各種のユーザ利用データを利用するユーザ計算端末であって、
前記分散記憶装置の複数の前記データ記憶資源に必要により分散させて記憶させる前記ユーザ利用データの資源量情報を作成して送信する資源量送信手段と、
受信する前記記憶資源ＩＤに対応して前記ユーザ利用データを前記分散記憶装置に送信するデータ送信手段と、
受信した前記記憶位置データと前記記憶資源ＩＤとともに前記ユーザ利用データを一意に示す利用データＩＤを前記分散記憶装置に送信する共有登録手段と、
を有することを特徴とするユーザ計算端末。
【請求項１４】
請求項１に記載のデータ管理システムのユーザ利用データを必要により複数のデータ記憶資源に分散させて記憶する分散記憶装置であって、
前記ユーザ計算端末から受信した前記資源量情報に基づいて前記ユーザ利用データを必要により分散させて記憶させる少なくとも一つの前記データ記憶資源を決定して返信する資源管理手段と、
受信した前記ユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数の前記データ記憶資源と、
前記利用データＩＤごとに前記記憶位置データと前記記憶資源ＩＤとを受信して前記ユーザ利用データを管理する配置管理手段と、
を有することを特徴とする分散記憶装置。
【請求項１５】
請求項１３に記載のユーザ計算端末のコンピュータプログラムであって、
前記分散記憶装置の複数の前記データ記憶資源に必要により分散させて記憶させる前記ユーザ利用データの資源量情報を作成して送信する容量送信処理と、
受信する前記記憶資源ＩＤに対応して前記ユーザ利用データを前記分散記憶装置に送信するデータ送信処理と、
受信した前記記憶位置データと前記記憶資源ＩＤとともに前記ユーザ利用データを一意に示す利用データＩＤを前記分散記憶装置に送信する共有登録処理と、
を前記ユーザ計算端末に実行させることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１４に記載の分散記憶装置のコンピュータプログラムであって、
前記ユーザ計算端末から受信した前記資源量情報に基づいて前記ユーザ利用データを必要により分散させて記憶させる少なくとも一つの前記データ記憶資源を決定して返信する資源管理処理と、
受信した前記ユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数の前記データ記憶資源と、
前記利用データＩＤごとに前記記憶位置データと前記記憶資源ＩＤとを受信して前記ユーザ利用データを管理する配置管理処理と、
を前記分散記憶装置に実行させることを特徴とするコンピュータプログラム。
【請求項１７】
請求項１３に記載のユーザ計算端末のデータ処理方法であって、
前記分散記憶装置の複数の前記データ記憶資源に必要により分散させて記憶させる前記ユーザ利用データの資源量情報を作成して送信する容量送信動作と、
受信する前記記憶資源ＩＤに対応して前記ユーザ利用データを前記分散記憶装置に送信するデータ送信動作と、
受信した前記記憶位置データと前記記憶資源ＩＤとともに前記ユーザ利用データを一意に示す利用データＩＤを前記分散記憶装置に送信する共有登録動作と、
を前記ユーザ計算端末に実行させることを特徴とするデータ処理方法。
【請求項１８】
請求項１４に記載の分散記憶装置のデータ処理方法であって、
前記ユーザ計算端末から受信した前記資源量情報に基づいて前記ユーザ利用データを必要により分散させて記憶させる少なくとも一つの前記データ記憶資源を決定して返信する資源管理動作と、
受信した前記ユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数の前記データ記憶資源と、
前記利用データＩＤごとに前記記憶位置データと前記記憶資源ＩＤとを受信して前記ユーザ利用データを管理する配置管理動作と、
を前記分散記憶装置に実行させることを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のユーザ計算端末で利用されているユーザ利用データを、ネットワーク接続されている分散記憶装置の複数の記憶デバイス（ストレージノード）に分散させて記憶させる技術に関し、特に、これを実現するデータ管理システム、その分散記憶装置およびユーザ計算端末、そのコンピュータプログラムおよびデータ処理方法、に関する。
【背景技術】
【０００２】
現在、クライアント端末などのユーザ計算端末をデータベースサーバなどの分散記憶装置の複数のストレージ装置（ストレージノード）にネットワーク接続して大容量のデータ記憶システムを構築し、ユーザ計算端末で各種処理に利用されているユーザ利用データを複数のストレージノードに分散させて記憶する技術(データ管理システム)が知られている。
【０００３】
当然ながら、データ管理システムでは、分散記憶装置の複数のストレージノードの何処に、どのようにユーザ利用データが格納されているかを管理する必要がある。そこで、分散記憶装置の配置管理部によりユーザ利用データを、どのストレージノードに格納するか、および、ユーザ計算端末のユーザ利用データへの読み出しや書き込みアクセスを、どのストレージノードに振り分けるかを管理している。
【０００４】
ユーザ利用データを格納したいユーザ計算端末から送信されたユーザ利用データは、分散記憶装置の配置管理部により、必要により一つ以上のデータ塊に分割され、複数のストレージノードに格納される。
【０００５】
同じネットワーク上に接続された、ユーザ利用データを利用するユーザ計算端末は、分散記憶装置の配置管理部を利用し、例えば、所望のユーザ利用データを示す利用データＩＤ(Identity)から当該データが配置されたストレージノードを特定し、当該ストレージノードからユーザ利用データを取得する。
【０００６】
利用データＩＤは、ユーザ利用データを一意に示すものであり、例えば、ファイル名称である。ただし、データ管理システムでは、大容量のユーザ利用データが複数のストレージノードに分散されて記憶されることがあるため、その場合は、例えば、複数に分散された利用データ断片を相互関係とともに個々に示す利用データＩＤなどからなる。
【０００７】
例えば、チャンクと呼ぶ固定長のデータ塊をＧＦＳ（Ｇｏｏｇｌｅ（登録商標）  Ｆｉｌｅ  Ｓｙｓｔｅｍ）チャンクサーバと呼ぶストレージノードに格納する際、ＧＦＳマスターと呼ぶ配置管理部に対し、利用データＩＤとしてファイル名とチャンクインデックスを送信し、対象となるＧＦＳチャンクサーバを示すチャンク位置情報を受信する配置管理部が提案されている(例えば、非特許文献２参照)。
【０００８】
配置管理部の実現方法としては、ユーザ計算端末から利用可能な場所に集中制御された配置管理部を実現するアウトオブバンド方式、各ユーザ計算端末上に配置管理部の一部を委譲し、ユーザ計算端末が直接記憶部にアクセスする分散テーブル方式、が知られている。
【０００９】
例えば、チャンクと呼ぶ固定長のデータ塊をＧＦＳチャンクサーバと呼ぶストレージノードに格納する際、ユーザ計算端末であるＧＦＳクライアントがネットワーク上に存在するＧＦＳマスターと呼ぶ配置管理部に対しアクセスし格納ストレージノードを決定するアウトオブバンド方式が提案されている(例えば、非特許文献２参照)。
【００１０】
例えば、バリューと呼ぶ任意長のデータ塊をユーザ計算端末とストレージノードを兼ねるノードに格納する際、ノード内でChordと呼ぶアルゴリズムを用いてキーと呼ぶ利用データＩＤからストレージノードを決定する分散テーブル方式が提案されている(例えば、非特許文献３参照)。
【００１１】
また、データを分散させるだけでなく、データの冗長化を行い耐故障性を確保する方法も考えられている(例えば、特許文献１参照)。耐故障性確保とは、すなわち、ある定められた数の記憶装置が故障し、データが読み出し不可能となっても、システムとしてはデータをユーザに提供可能な状態を維持することである。
【００１２】
また、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）と呼称される、ブロックストレージのレベルでデータの分散、および、冗長化を行う複数の方法も提案されている(例えば、非特許文献１参照)。
【００１３】
また、データ格納時にＧＦＳマスターと呼ぶ配置管理部とＧＦＳチャンクサーバと呼ぶストレージノードがお互いに通信し、複数のストレージノードにチャンクと呼ぶ固定長のデータ塊の複製を配置する冗長化方式も提案されている(例えば、非特許文献２参照)。
【００１４】
また、アクセス負荷が限界値に達する前に、コンテンツの複製の作成やコンテンツとその他のコンテンツとで所在の再配置を行う方法も考えられている(例えば、特許文献１参照)。
【００１５】
さらに、ネットワーク上に分散した複数のストレージ装置を仮想化して管理するストレージ管理システム及びストレージ管理方法において、ストレージデータ転送性能が劣化しないようにストレージ仮想化及びストレージデータ用経路を設定する発明も出願されている。
【００１６】
その発明では、ストレージ管理サーバにおいて、ストレージ状態管理部が、各ストレージ装置のストレージ使用状態を管理し、ネットワーク状態管理部が各ネットワーク装置のトラフィック状態を管理し、経路検索・設定部がストレージ使用状態及び該トラフィック状態に基づいて、ストレージデータ用経路を決定して、ネットワーク装置に設定する。
【００１７】
ホストにおいて、仮想化マッピング部がストレージ管理サーバから応答されたストレージ領域を仮想ストレージに対応付け、経路情報設定部が、応答されたストレージデータ用経路でストレージデータを送受信する(例えば、特許文献２参照)。
【００１８】
また、ファイル管理情報を持つことなく、クライアントからのファイルアクセス要求に対して高速に応答可能としながらも、故障などからの復旧処理が迅速に行なえるファイル管理手段を備えたファイル格納システムの出願もある。
【００１９】
その発明では、ファイル管理手段は、ファイルの識別子を引数とするハッシュ値とストレージ数に基づくモデュロ演算により選択したストレージと、当該ストレージの番号を引数とする可逆平準化関数により選択したストレージにファイルを冗長格納する冗長格納管理手段と、復旧対象ストレージの番号と前記可逆平準化関数に基づいて、復旧対象ファイルが冗長格納されている複数の関連ストレージを選択し、選択した関連ストレージに格納されているファイルの識別子と冗長化数に基づいて修復ファイルを特定して復旧対象ストレージを修復するストレージ修復管理手段を備えている(例えば、特許文献３参照)。
【００２０】
センタと複数の端末間で共用するデータを分散管理する共用データ分散管理装置と方法に関し、ＬＡＮなど高速のネットワークで接続された複数のワークステーションの水平連携機能を活用し、複数のワークステーションのファイルに格納する共用データを一括管理し、センタと複数の端末全体として機能分担を最適にする垂直／水平連携システムを構築する手段を提供することを目的とする。
【００２１】
その発明では、中央処理装置が保管する共用データの一部を、ネットワーク結合された複数の分散処理装置に分散格納する共用データ分散格納手段と、上記分散格納された共用データの識別番号と対比して該共用データの属性を保持する共用データ属性テーブルと、上記共用データ属性テーブルを参照して、指定された識別番号の共用データの所在と有効性を判定する共用データ所在判定手段とを備える(例えば、特許文献４参照)。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開平１１−０８５６０４号公報
【特許文献２】特開２００５−２６６９３３号公報
【特許文献３】特開２００８−１８１３５８号公報
【特許文献４】特開平０８−１９０５０６号公報
【非特許文献】
【００２３】
【非特許文献１】David A.Patterson、Garth Gibson、and Randy H.Katz、"A Case for Redundant Arrays of Inexpensive Disks (ＲＡＩＤ)"、ACM SIGMOD Record、Vol. 17、No.3、pp.109-116
【非特許文献２】Sanjay Ghemawat、Howard Gobioff、Shun-Tak Leung、"The Google File System"、SOSP 2003.
【非特許文献３】Frank Dabek、Emma Brunskill、M. Frans Kaashoek、David Karger、Robert Morris、Ion Stoica、and Hari Balakrishnan、"Building Peer-to-Peer Systems With Chord、a Distributed Lookup Service、Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII)、May 2001.
【発明の概要】
【発明が解決しようとする課題】
【００２４】
しかしながら、非特許文献２に記載されているアウトオブバンド方式などでは、大きなサイズのユーザ利用データの格納または取得については高速に処理できるが、小サイズのユーザ利用データの格納処理については性能が低いという問題がある。
【００２５】
その理由は、ユーザ利用データをネットワークで転送する前に、ネットワーク距離に対応したユーザ利用データ転送の遅延時間が存在する通信ネットワークを利用して配置管理部を利用して対象ストレージノードを特定する必要があるが、当該ユーザ利用データ転送時間に対し配置管理部を利用する遅延時間が大きいからである。よって、求める全てのユーザ利用データを格納する時間が増大する。
【００２６】
また、非特許文献２〜３に記載されているアウトオブバンド方式および冗長化方式などでは、ユーザ利用データ転送元のユーザ計算端末が転送済ユーザ利用データを、当該端末上から高速に削除できない問題がある。
【００２７】
その理由は、転送済ユーザ利用データをユーザ利用データ転送元のユーザ計算端末から削除するためには、ユーザ利用データが分散記憶装置上で耐故障性を確保されている必要があるが、耐故障性を確保するための冗長化処理は、ユーザ利用データ転送終了後に当該分散記憶装置上で、ストレージノードと配置管理部の通信による複製作成等の処理を行う時間を要するためである。
【００２８】
すなわち、従来の分散記憶装置の問題点は、第一に、多数の小サイズのユーザ利用データを格納するときに必要な時間が長いということである。第二に、ユーザ利用データ転送元のユーザ計算端末上の転送済ユーザ利用データを高速に削除できないことである。
【００２９】
本発明は上述のような課題に鑑みてなされたものであり、ユーザ計算端末から転送される多数の小サイズのユーザ利用データを高速に格納でき、ユーザ利用データ転送元のユーザ計算端末上の転送済ユーザ利用データを高速に削除できる分散記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００３０】
本発明のデータ管理システムは、各種のユーザ利用データを個々に利用する複数のユーザ計算端末と、ユーザ利用データを必要により複数のデータ記憶資源に分散させて記憶する少なくとも一個の分散記憶装置と、を有するデータ管理システムであって、ユーザ計算端末は、分散記憶装置の複数のデータ記憶資源に必要により分散させて記憶させるユーザ利用データの資源量情報を作成して送信する資源量送信手段を有し、分散記憶装置は、ユーザ計算端末から受信した資源量情報に基づいてユーザ利用データを必要により分散させて記憶させる少なくとも一つのデータ記憶資源を決定して返信する資源管理手段を有し、ユーザ計算端末は、受信する記憶資源ＩＤに対応してユーザ利用データを分散記憶装置に送信するデータ送信手段を有し、分散記憶装置は、受信したユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数のデータ記憶資源を有し、ユーザ計算端末は、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置に送信する共有登録手段を有し、分散記憶装置は、利用データＩＤごとに記憶位置データと記憶資源ＩＤとを受信してユーザ利用データを管理する配置管理手段を有することを特徴とする。
【００３１】
本発明のユーザ計算端末は、本発明のデータ管理システムの各種のユーザ利用データを利用するユーザ計算端末であって、分散記憶装置の複数のデータ記憶資源に必要により分散させて記憶させるユーザ利用データの資源量情報を作成して送信する資源量送信手段と、受信する記憶資源ＩＤに対応してユーザ利用データを分散記憶装置に送信するデータ送信手段と、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置に送信する共有登録手段と、を有することを特徴とする。
【００３２】
本発明の分散記憶装置は、本発明のデータ管理システムのユーザ利用データを必要により複数のデータ記憶資源に分散させて記憶する分散記憶装置であって、ユーザ計算端末から受信した資源量情報に基づいてユーザ利用データを必要により分散させて記憶させる少なくとも一つのデータ記憶資源を決定して返信する資源管理手段と、受信したユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数のデータ記憶資源と、利用データＩＤごとに記憶位置データと記憶資源ＩＤとを受信してユーザ利用データを管理する配置管理手段と、を有することを特徴とする。
【００３３】
本発明の第一のコンピュータプログラムは、本発明のユーザ計算端末のコンピュータプログラムであって、分散記憶装置の複数のデータ記憶資源に必要により分散させて記憶させるユーザ利用データの資源量情報を作成して送信する容量送信処理と、受信する記憶資源ＩＤに対応してユーザ利用データを分散記憶装置に送信するデータ送信処理と、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置に送信する共有登録処理と、をユーザ計算端末に実行させることを特徴とする。
【００３４】
本発明の第二のコンピュータプログラムは、本発明の分散記憶装置のコンピュータプログラムであって、ユーザ計算端末から受信した資源量情報に基づいてユーザ利用データを必要により分散させて記憶させる少なくとも一つのデータ記憶資源を決定して返信する資源管理処理と、受信したユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数のデータ記憶資源と、利用データＩＤごとに記憶位置データと記憶資源ＩＤとを受信してユーザ利用データを管理する配置管理処理と、を分散記憶装置に実行させることを特徴とする。
【００３５】
本発明の第一のデータ処理方法は、本発明のユーザ計算端末のデータ処理方法であって、分散記憶装置の複数のデータ記憶資源に必要により分散させて記憶させるユーザ利用データの資源量情報を作成して送信する容量送信動作と、受信する記憶資源ＩＤに対応してユーザ利用データを分散記憶装置に送信するデータ送信動作と、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置に送信する共有登録動作と、をユーザ計算端末に実行させることを特徴とする。
【００３６】
本発明の第二のデータ処理方法は、本発明の分散記憶装置のデータ処理方法であって、ユーザ計算端末から受信した資源量情報に基づいてユーザ利用データを必要により分散させて記憶させる少なくとも一つのデータ記憶資源を決定して返信する資源管理動作と、受信したユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数のデータ記憶資源と、利用データＩＤごとに記憶位置データと記憶資源ＩＤとを受信してユーザ利用データを管理する配置管理動作と、を分散記憶装置に実行させることを特徴とする。
【００３７】
なお、本発明の各種の構成要素は、その機能を実現するように形成されていればよく、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与された分散記憶装置、コンピュータプログラムにより分散記憶装置に実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
【００３８】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００３９】
また、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および動作を順番に記載してあるが、その記載の順番は複数の処理および複数の動作を実行する順番を限定するものではない。
【００４０】
このため、本発明のコンピュータプログラムおよびデータ処理方法を実施するときには、その複数の処理および複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００４１】
さらに、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および複数の動作が個々に相違するタイミングで実行されることに限定されない。このため、ある処理および動作の実行中に他の処理および動作が発生すること、ある処理および動作の実行タイミングと他の処理および動作の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００４２】
また、本発明で云う分散記憶装置およびユーザ計算端末は、コンピュータプログラムを読み取って対応する処理動作を実行できるように、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、Ｉ／Ｆ（Interface）ユニット、等の汎用デバイスで構築されたハードウェア、所定の処理動作を実行するように構築された専用の論理回路、これらの組み合わせ、等として実施することができる。
【００４３】
ただし、本発明で云うユーザ計算端末は、物理的に形成されたハードウェアに限定されるものではなく、物理的なハードウェアにソフトウェアで論理的に形成されていることも許容する。
【発明の効果】
【００４４】
本発明のデータ管理システムによれば、ユーザ利用データに関する資源量情報に応じたデータ記憶資源に、当該ユーザ利用データがユーザ計算端末から、データ記憶資源に送信される。このため、ネットワーク距離に対応したデータ転送の遅延時間が存在する通信ネットワークを利用して配置管理手段を利用してユーザ利用データを他のユーザ計算端末が利用可能とする前にユーザ利用データをデータ記憶資源に記憶することができる。従って、ユーザ計算端末から多数の小サイズのユーザ利用データが転送される場合でも、これを分散記憶装置が高速に格納することができる。また、仮にユーザ利用データをユーザ計算端末から削除する場合にも、当該配置管理手段を利用しユーザ利用データを他のユーザ計算端末が利用可能とする前にユーザ利用データは既に分散記憶装置のデータ記憶資源に記憶されているため、ユーザ計算端末から削除することができ、当該削除処理の高速化が図られる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の第一の形態のデータ管理システムの全体構成を示す模式的なブロック図である。
【図２】データ管理システムの全体の処理の流れを示す模式的なブロック図である。
【図３】記憶資源データベースによる記憶資源情報管理の一例を示す説明図である。
【図４】データ管理システムの全体の処理の流れを示す模式的なブロック図である。
【図５】本発明の実施の第二の形態のデータ管理システムの構成を示す模式的なブロック図である。
【図６】ストレージノードの構成を示すブロック図である。
【図７】ユーザ計算端末の構成を示すブロック図である。
【図８】記憶装置割当表のデータ構造を示す模式図である。
【図９】データ塊配置表のデータ構造を示す模式図である。
【図１０】データ管理システムの構成を示す模式的なブロック図である。
【図１１】本発明の実施の第三の形態のデータ管理システムの構成を示す模式的なブロック図である。
【図１２】ストレージノードの構成を示すブロック図である。
【図１３】記憶資源表のデータ構造を示す模式図である。
【図１４】本発明の実施の第四の形態のデータ管理システムの構成を示す模式的なブロック図である。
【図１５】複雑なネットワークの一例を示す模式図である。
【図１６】配置管理部の一例を示す模式図である。
【発明を実施するための形態】
【００４６】
＜第一の実施形態＞
本発明の第一の実施形態を図１ないし図３を参照して以下に説明する。
まず、本実施の形態のデータ管理システムの概要を説明する。本実施の形態のデータ管理システムは、図１に示すように、各種のユーザ利用データを個々に利用する複数のユーザ計算端末Ａ１と、ユーザ利用データを必要により複数のデータ記憶資源であるデータ記憶部Ａ２１１,Ａ２１２,〜に分散させて記憶する少なくとも一個の分散記憶装置Ａ２と、を有する。
【００４７】
さらに、本実施の形態のデータ管理システムでは、図２に示すように、ユーザ計算端末Ａ１は、分散記憶装置Ａ２の複数のデータ記憶部Ａ２１１,Ａ２１２,〜に必要により分散させて記憶させるユーザ利用データの資源量情報を作成して送信する資源量送信部Ｂ１２１を有している。
分散記憶装置Ａ２は、ユーザ計算端末Ａ１から受信した資源量情報に基づいてユーザ利用データを必要により分散させて記憶させる少なくとも一つのデータ記憶部Ａ２１１,Ａ２１２,〜を決定して返信する資源管理部Ａ２２を有している。
ユーザ計算端末Ａ１は、受信する記憶資源ＩＤに対応してユーザ利用データを分散記憶装置Ａ２に送信するデータ送信部Ｂ１２３を有している。
分散記憶装置Ａ２は、受信したユーザ利用データを必要により分散させて記憶するとともに各々の記憶位置データを個々に返信する複数のデータ記憶部Ａ２１１,Ａ２１２,〜を有している。
ユーザ計算端末Ａ１は、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置Ａ２に送信する共有登録部Ｂ１２４を有している。
そして、分散記憶装置Ａ２は、利用データＩＤごとに記憶位置データと記憶資源ＩＤとを受信してユーザ利用データを管理する配置管理部Ａ２４を有している。
【００４８】
次に、本実施の形態のデータ管理システムをより詳細に説明する。
本実施の形態のデータ管理システムでは、図１に示すように、各種のユーザ利用データが複数のユーザ計算端末Ａ１のデータ利用プロセス（データ利用処理部）Ａ１１において個々に利用される。以下、「プロセス」とは、所定のデータ処理機能を有するデータ処理部を意味する場合がある。
そして、本実施の形態のデータ管理システムでは、そのユーザ利用データを少なくとも一個の分散記憶装置Ａ２の複数のデータ記憶部Ａ２１１,Ａ２１２,〜が必要により分散させて記憶する。ユーザ計算端末Ａ１は、ユーザ利用データをデータ記憶部Ａ２１１,Ａ２１２,〜に記憶させるための制御を行う格納制御部Ａ１２を備えている。
図２に示すように、格納制御部Ａ１２は、資源量送信部Ｂ１２１、格納先受信部Ｂ１２２、データ送信部Ｂ１２３、共有登録部Ｂ１２４を有する。
【００４９】
本実施形態のデータ管理システムでは、図２に示すように、ユーザ利用データの資源量情報をユーザ計算端末Ａ１の資源量送信部Ｂ１２１が作成して、分散記憶装置Ａ２の資源管理部Ａ２２に送信する。
【００５０】
このユーザ計算端末Ａ１から受信した資源量情報に基づいて、資源管理部Ａ２２は、ユーザ利用データを記憶するデータ記憶部Ａ２１１,Ａ２１２,〜を決定する。この決定は、資源管理部Ａ２２が受信した資源量情報と、データ記憶部Ａ２１１,Ａ２１２,〜の資源量とに基づいて行う。
【００５１】
資源管理部Ａ２２は、種々の判定アルゴリズムに基づいて、ユーザ利用データの記憶先としてデータ記憶部Ａ２１１,Ａ２１２,〜の一つまたは二つ以上を決定することができる。たとえば、データ記憶部Ａ２１１,Ａ２１２,〜の空き容量の大きいものから順に、当該空き容量の合計がユーザ利用データのデータ量を超えるまでデータ記憶部Ａ２１１,Ａ２１２,〜の一つまたは二つ以上を選択することができる。
【００５２】
以下、資源量情報が示すユーザ利用データのデータ量がデータ記憶部Ａ２１１の空き容量以下であって、ユーザ利用データをデータ記憶部Ａ２１１のみに格納する場合を例に説明する。
【００５３】
記憶資源データベースＡ２２１には、データ記憶部Ａ２１１,Ａ２１２,〜を互いに識別する情報である記憶資源ＩＤと各データ記憶部の利用可能資源量とが、互いに対応付けて記憶されている。記憶資源ＩＤは、例えば、データ記憶部Ａ２１１,Ａ２１２,〜に個々に付与されたネットワークアドレスである。利用可能資源量は、例えば、データ記憶部Ａ２１１、Ａ２１２、〜それぞれの格納可能バイト数である。
【００５４】
資源管理部Ａ２２は、記憶資源データベースＡ２２１を参照し、ユーザ利用データの記憶先としてデータ記憶部Ａ２１１を選択すると同時にデータ記憶部Ａ２１１の記憶資源ＩＤを呼び出し、これをユーザ計算端末Ａ１の格納先受信部Ｂ１２２に送信する。
【００５５】
そして、ユーザ計算端末Ａ１は、格納先受信部Ｂ１２２が受信した記憶資源ＩＤが示すデータ記憶部Ａ２１１に対して、データ送信部Ｂ１２３よりユーザ利用データを送信する。
【００５６】
データ記憶部Ａ２１１は、ユーザ利用データを受信すると、当該データを所定の空き領域に記憶する。データ記憶部Ａ２１１は、その記憶位置を示す記憶位置データをデータ送信部Ｂ１２３に返信する。
【００５７】
これにより、ユーザ計算端末Ａ１は、ユーザ利用データが格納されたデータ記憶部Ａ２１１の記憶ＩＤと、データ記憶部Ａ２１１におけるユーザ利用データの記憶位置を示す記憶位置データとを取得することができる。
【００５８】
さらに、ユーザ計算端末Ａ１の共有登録部Ｂ１２４は、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置Ａ２に送信する。
【００５９】
分散記憶装置Ａ２の配置管理部Ａ２４は、利用データＩＤを受信すると、当該利用データＩＤに関連づけて、記憶資源ＩＤ、記憶位置データおよびユーザ利用データを管理する。このため、配置管理部Ａ２４は、ユーザ計算端末Ａ１からの要求に基づいて、ユーザ利用データの格納位置を高速に特定することが可能となる。
【００６０】
なお、本実施形態においては、複数のデータ記憶部Ａ２１１,Ａ２１２,〜に分散してユーザ利用データを格納することもできる。この場合、資源管理部Ａ２２は、記憶資源データベースＡ２２１を参照し、当該複数のデータ記憶部Ａ２１１,Ａ２１２,〜をそれぞれ示す複数個の記憶資源ＩＤを呼び出して格納先受信部Ｂ１２２に送信する。このとき、分散記憶装置Ａ２は、データ記憶部Ａ２１１,Ａ２１２,〜の各記憶資源ＩＤに関連づけて、データ記憶部Ａ２１１,Ａ２１２,〜がそれぞれ記憶可能なデータ容量を示す情報をあわせて格納先受信部Ｂ１２２に送信するとよい。
【００６１】
ユーザ計算端末Ａ１は、格納先受信部Ｂ１２２が受信した複数の記憶資源ＩＤがそれぞれ示すデータ記憶部Ａ２１１,Ａ２１２,〜に対して、データ送信部Ｂ１２３よりユーザ利用データを個別に送信する。ユーザ利用データは、データ記憶部Ａ２１１,Ａ２１２,〜が記憶可能なデータサイズ以下となるようユーザ計算端末Ａ１で分割するとよい。
【００６２】
データ記憶部Ａ２１１,Ａ２１２,〜は、ユーザ利用データをそれぞれ受信すると、当該データを所定の空き領域に記憶するとともに、その記憶位置を示す記憶位置データをデータ送信部Ｂ１２３に対して個別に返信する。
【００６３】
これにより、ユーザ計算端末Ａ１は、ユーザ利用データが格納された各データ記憶部Ａ２１１,Ａ２１２,〜の記憶ＩＤと、当該データ記憶部Ａ２１１,Ａ２１２,〜におけるユーザ利用データの記憶位置を示す記憶位置データとを取得することができる。
【００６４】
さらに、ユーザ計算端末Ａ１の共有登録部Ｂ１２４は、受信した記憶位置データと記憶資源ＩＤとともにユーザ利用データを一意に示す利用データＩＤを分散記憶装置Ａ２に送信する。
【００６５】
分散記憶装置Ａ２の配置管理部Ａ２４は、利用データＩＤを受信すると、利用データＩＤに関連づけて、各記憶資源ＩＤと、当該記憶資源ＩＤに関する記憶位置データおよびユーザ利用データを管理する。このため、ユーザ利用データが複数のデータ記憶部Ａ２１１,Ａ２１２,〜に分散して格納されている場合であっても、配置管理部Ａ２４は、ユーザ計算端末Ａ１からの要求に基づいて、ユーザ利用データの格納位置を高速に特定することが可能となる。
【００６６】
以上により、本実施形態のデータ管理システムによれば、ユーザ利用データの格納位置が高速で特定され、換言するとユーザ利用データのデータ転送時間に対してユーザ利用データの格納位置の特定時間の割合が低減される。
【００６７】
従って、ユーザ計算端末Ａ１から多数の小サイズのユーザ利用データが転送される場合でも、これを分散記憶装置Ａ２が高速に格納することができる。なお、永続化管理部Ａ２３は、データ記憶部Ａ２１１,Ａ２１２,〜に記憶されたユーザ利用データをバックアップして永続化（冗長化）する。ユーザ利用データの永続化に関しては、後述する他の実施形態にて詳述する。
【００６８】
また、本実施の形態のデータ管理システムでは、例えば、データ送信部Ｂ１２３は、所定のデータ個数とデータ容量との少なくとも一方を指標として複数のユーザ利用データを一つにしてデータ記憶部Ａ２１１,Ａ２１２,〜に送信する。
【００６９】
分散記憶装置Ａ２は、一つにされた複数のユーザ利用データを必要により分散させて記憶するとともに各々の複数の記憶位置データを個々に返信する。配置管理部Ａ２４は、複数のユーザ利用データを受信してから対応する複数の記憶位置データを送信する。
【００７０】
さらに、複数のユーザ計算端末Ａ１は通信ネットワークで分散記憶装置Ａ２の複数のデータ記憶部Ａ２１１,Ａ２１２,〜と接続されている。そこで、複数のユーザ計算端末Ａ１は、各々の通信ネットワークでのネット端末位置を資源量送信部Ｂ１２１が生成する資源量情報に内包させる。
【００７１】
また、本実施の形態のデータ管理システムでは、分散記憶装置Ａ２は、複数のデータ記憶部Ａ２１１,Ａ２１２,〜ごとに少なくとも通信ネットワークでのネット資源位置を記憶している記憶資源データベースＡ２２１を、さらに有する。
【００７２】
そこで、資源管理部Ａ２２は、ネット端末位置とネット資源位置との少なくとも一方に対応してユーザ利用データを必要により分散させて記憶させる少なくとも一つのデータ記憶部Ａ２１１,Ａ２１２,〜を決定する。
【００７３】
なお、本発明は本実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、上記形態では複数のユーザ計算端末Ａ１の各々がハードウェアで構築されており、実際に通信ネットワークに位置していることを想定した。
【００７４】
しかし、このような複数のユーザ計算端末Ａ１が通信ネットワークに接続されているハードウェアにソフトウェアでバーチャルに構築されていてもよい。このような場合、記憶資源データベースＡ２２１は、必要により分散されて記憶されている複数のユーザ利用データと複数のデータ記憶部Ａ２１１,Ａ２１２,〜との対応関係も記憶していることが好適である。
【００７５】
なお、上記形態では、本発明がデータ格納動作の高速化をめざしたものであり、本発明適用時のデータ読み出し動作は、既存の読み出し操作と同一であるため、データ格納動作のみを記載した。
【００７６】
また、資源量送信部Ｂ１２１は、記憶させる複数のユーザ利用データのうち少なくとも一部に対応する一部対応の資源量情報も生成し、データ送信部Ｂ１２３は、一部対応の資源量情報に該当するユーザ利用データを送信し、共有登録部Ｂ１２４は、送信されたユーザ利用データに対応して返信された記憶位置データを一時保存するとともに残余のユーザ利用データを記憶するデータ記憶部Ａ２１１,Ａ２１２,〜を資源管理部Ａ２２に決定させて記憶させる複数のユーザ利用データに対する記憶位置データも一時保存し、共有登録部Ｂ１２４は、一時保存された記憶位置データを配置管理部Ａ２４に送信してもよい。
【００７７】
さらに、分散記憶装置Ａ２は、配置管理部Ａ２４は、データ記憶部Ａ２１１,Ａ２１２,〜に記憶させて管理したユーザ利用データを任意のデータ記憶部Ａ２１１,Ａ２１２,〜に移動させ、移動させたユーザ利用データを対応するデータ記憶部Ａ２１１,Ａ２１２,〜とともに管理してもよい。
【００７８】
図４は、本実施の形態のその他の変形例に係るデータ管理システムの全体の処理の流れを示す模式的なブロック図である。本変形例に係るユーザ計算端末Ａ１は、データ送信部Ｂ１２３がデータ記憶部Ａ２１１から受信した記憶位置データに対応するユーザ利用データを分散記憶装置Ａ２から削除するデータ削除部Ｄ１２５を有する点で、図２に示したデータ管理システムと相違している。
本変形例の場合、データ送信部Ｂ１２３が記憶位置データを受信してからユーザ利用データを削除し、その後に共有登録部Ｂ１２４が記憶位置データを配置管理部Ａ２４に送信することが好適である。
【００７９】
さらに、詳細には後述するが、分散記憶装置Ａ２は、データ記憶部Ａ２１１,Ａ２１２,〜の故障を検知する死活監視部と、死活監視部が故障を検知したデータ記憶部Ａ２１１,Ａ２１２,〜にユーザ利用データを送信中のユーザ計算端末Ａ１を特定するアボート特定部と、特定されたユーザ計算端末Ａ１にデータ再送依頼を送信する再送依頼部とを、さらに有し、ユーザ計算端末Ａ１は、分散記憶装置Ａ２からデータ再送依頼を受信するとユーザ利用データをデータ送信部Ｂ１２３に再送させる再送制御部を、さらに有してもよい(図示せず)。
【００８０】
この場合、詳細には後述するが、単純にデータ送信部Ｂ１２３に再送させるだけでなく、さらに必要資源量の確保まで手戻りしてもよい。これで処理の順序の変更を有効に利用することができる。
【００８１】
また、図４に示すように、本変形例のデータ管理システムＥ０における資源管理部Ａ２２は、一つ以上のデータ記憶部Ａ２１１，Ａ２１２，〜（同図ではＡ２１Ｘとして図示）の各種利用可能資源量を各々管理する複数の部分資源管理部Ａ２２ａ，Ａ２２ｂ，・・・を有している。
部分資源管理部Ａ２２ａ，Ａ２２ｂ，・・・は、管理するデータ記憶部Ａ２１１，Ａ２１２，〜に対応する、記憶資源データベースＡ２２１（図１，２を参照）の部分情報を持つ部分記憶資源データベースＡ２２１ａ，Ａ２２１ｂ，・・・をそれぞれ有している。
ユーザ計算端末Ａ１は、種々の選択アルゴリズムに基づいて、一つの部分資源管理部（例えばＡ２２ａ）を第一の資源管理部として選択する。つぎに、ユーザ計算端末Ａ１は、選択された部分資源管理部Ａ２２ａ（第一の資源管理部）に対して、資源量情報を送信する。
部分資源管理部Ａ２２ａ（第一の資源管理部）は、受信した資源量情報と、当該部分資源管理部Ａ２２ａの有する部分記憶資源データベースＡ２２１ａに格納された部分情報と、に基づいて、データ記憶部Ａ２１１にユーザ利用データを記憶することの可否を判定する。
【００８２】
ここで、ユーザ利用データを記憶するための必要資源量がデータ記憶部Ａ２１１の利用可能資源量を上回り、データ記憶部Ａ２１１にユーザ利用データを記憶することが不可能と第一の資源管理部に判定されたとき、資源管理部Ａ２２は、他の部分資源管理部（例えばＡ２２ｂ）を、第二の資源管理部として選択する。そして、資源管理部Ａ２２は、ユーザ計算端末Ａ１から受信している資源量情報を、部分資源管理部Ａ２２ｂに転送する。
そして、第二の資源管理部（部分資源管理部Ａ２２ｂ）は、受信した資源量情報と、当該第二の資源管理部の有する部分記憶資源データベースＡ２２１ｂに格納された部分情報と、に基づいて、データ記憶部Ａ２１２にユーザ利用データを記憶することの可否を判定する。
【００８３】
その場合、第二の資源管理部（部分資源管理部Ａ２２ｂ）が管理するデータ記憶部Ａ２１１,Ａ２１２,〜の記憶資源ＩＤをユーザ計算端末Ａ１に送信してもよい。
【００８４】
なお、データ記憶部Ａ２１２にユーザ利用データを記憶することが不可能と第二の資源管理部に判定されたときには、さらに他の部分資源管理部（図示せず）を第三の資源管理部として選択し、上記の処理を繰り返す。
これにより、本変形例のデータ管理システムＥ０では、ユーザ利用データを格納するデータ記憶部Ａ２１１，Ａ２１２，〜を決定することができる。
【００８５】
また、配置管理部Ａ２４は、ユーザ計算端末Ａ１から記憶資源ＩＤと記憶位置データと利用データＩＤとを受信したときにデータ登録可否を判定し、データ登録不能のときは登録不可通知をユーザ計算端末Ａ１に返信し、ユーザ計算端末Ａ１は、受信した登録不可通知をデータ利用機能に通知してもよい。
【００８６】
さらに、配置管理部Ａ２４は、管理するユーザ利用データの利用データＩＤに内包されているデータ版情報も管理し、管理しているデータ版情報に対応して登録可否判断を実行してもよい。
【００８７】
＜第二の実施形態＞
図５は第二の実施形態を示し、ネットワーク結合された分散制御の分散記憶装置Ｅ２とユーザ計算端末Ｅ１により本発明によるデータ管理システムＥ０を示すものである。図５のユーザ計算端末Ｅ１に格納されたユーザ利用データが分散記憶装置Ｅ２へ送信され格納される。
【００８８】
図５のストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・は、図６に示すように一つ以上のＣＰＵ Ｆ２１、一つ以上のメモリＦ２２、一つ以上のＩ／ＯコントローラＦ２３、一つ以上の記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・、一つ以上の通信コントローラＦ２４を備える計算機により構成される。
【００８９】
ストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・は、通信コントローラＦ２４を通じて、ネットワークＥ３上のユーザ計算端末Ｅ１とユーザ利用データの送受信を行う。また、ストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・は、必要なユーザ利用データの格納・読み出しを、Ｉ／ＯコントローラＦ２３を通じて記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・、と行う。この制御は、ＣＰＵ Ｆ２１およびメモリＦ２２を用いて実現されるソフトウェア処理により行われる。
【００９０】
記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・は例えば、ハードディスクドライブ、フラッシュメモリ、ＤＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭ、ＲＡＩＤコントローラに結合された一つ以上の記憶装置、磁気テープなどのユーザ利用データを記録可能な物理媒体、もしくはストレージノードの外部に設置された当該媒体へユーザ利用データを記録可能な制御装置である。
【００９１】
図５の部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・は、それぞれストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・上で動作し、分散アルゴリズムにより第一の実施形態における配置管理部Ａ２４（図２を参照）の機能を実現する。
【００９２】
ストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・へのユーザ利用データの配置はストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・上で動作する部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・による配置管理部Ａ２４の機能により決定され、利用データＩＤと格納ノードの対応を管理する。
【００９３】
例えば、配置管理部Ａ２４の機能は、分散ハッシュテーブルにより実現される。図１６を元に動作を説明する。分散ハッシュテーブルによる部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・では、あるバイト列ｄに対しある整数値を出力するハッシュ関数ｈ（ｄ）と、ハッシュ関数の出力値の範囲に基づくノード割り当て表を持つ。図９に対象ノード決定の動作を示す。
【００９４】
ユーザはある一つの分散管理プロセスにデータ塊識別子を含む検索依頼を送信する。ここでは部分管理プロセスＥ２１ａが受信したとする。部分管理プロセスＥ２１ａはデータ塊識別子をあるハッシュ関数ｈ（ｄ）の入力とし、出力されたハッシュ値よりノード割り当て表からデータ配置格納ストレージノードを決定する。
【００９５】
ここでは当該ハッシュ値のストレージノード割当は部分管理プロセスＥ２１ａが管理していたとする。部分管理プロセスＥ２１ａは当該ストレージノード上の分散データ配置機能に検索依頼を委譲する。
【００９６】
部分管理プロセスＥ２１ａでは、データ塊識別子と格納ノードの対の割当表を管理しており、当該割当表から格納ストレージノードを決定する。部分管理プロセスＥ２１ａは格納ストレージノードを示す識別子をユーザ計算端末Ｅ１に返信する。
【００９７】
配置管理部Ａ２４の機能の実装は上記に限らない。図５の冗長化管理プロセスＥ２１ｃ、Ｅ２２ｃ、Ｅ２３ｃ、・・・は、それぞれストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・上で動作し、格納データが求められた耐故障性を満たすように冗長化処理を行う。
【００９８】
例えば、記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・がハードディスクドライブで、求められた耐故障性が高々一台の記憶装置故障でユーザ利用データ喪失が起こらないこと、とした場合、冗長化管理プロセスＥ２１ｃ、Ｅ２２ｃ、Ｅ２３ｃ、・・・は、受信したユーザ利用データを必ず二つ以上の記憶装置に格納する。
【００９９】
別の例では、例えば、記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・がハードディスクドライブで、求められた耐故障性が高々八台に一台の記憶装置故障でユーザ利用データ喪失が起こらないこと、とした場合、冗長化管理プロセスＥ２１ｃ、Ｅ２２ｃ、Ｅ２３ｃ、・・・は、受信したユーザ利用データを４キロバイトごとのＲＡＩＤブロックに分割し、七つのＲＡＩＤブロックからパリティブロックを生成し、計八つのブロックを八台の記憶装置に格納する。
【０１００】
冗長化処理は上記に限らない。記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・上のユーザ利用データは、固定長あるいは任意長のデータ塊の集合と、当該データ塊を示す利用データＩＤで管理される。
【０１０１】
例えば、データ塊はファイル、利用データＩＤはi-node番号である。また別の例では、データ塊は４キロバイト長のブロック、利用データＩＤはボリューム名とブロック番号の組である。データ塊の実装は上記に限らない。
【０１０２】
データ塊はデータ塊配置表により内部利用データＩＤとオフセットから記憶装置Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ、・・・上位置の対応が管理される。例えば、図９に示すようなデータ塊配置表により管理される。データ塊配置表の実装は上記に限らない。
【０１０３】
図５の部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・は、それぞれストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・上で動作し、各ストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・上のデータ記憶資源を管理しており、要求に応じてデータ記憶資源を割り当てあるいは開放する。データ記憶資源は、例えば、記憶装置領域やＣＰＵ使用量、ネットワーク帯域がある。
【０１０４】
データ記憶資源の管理の例としては、例えば、記憶装置領域に対して、あらかじめ図８に示すような表として管理している記憶装置割当表に対し、必要確保サイズが要求された時、当該表を走査し、要求サイズが確保できる場合は、当該サイズを割当し、表情報を変更する。要求サイズが確保できない場合は要求不受理を返答する。
【０１０５】
また部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・は他の一つ以上の部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・の資源量を示す情報を持つこともでき、資源割当要求を他のストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・上で動作する部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・のうち少なくとも一つに委譲することができる。
【０１０６】
例えば、部分管理プロセスＥ２１ａはＥ２２ａの管理する記憶装置領域の空きサイズより大きな記憶装置領域概算値ＥＳＴＳＩＺＥ（Ｅ２）を保持しており、部分管理プロセスＥ２２ａが自身の記憶装置領域サイズを変更した際に当該概算値よりも空きサイズが下回った場合、部分管理プロセスＥ２１ａに対して概算値ＥＳＴＳＩＺＥ（Ｅ２）を減少させる概算値更新命令を送付し、部分管理プロセスＥ２１ａは概算値ＥＳＴＳＩＺＥ（Ｅ２）を減少させる。
【０１０７】
部分管理プロセスＥ２１ａは、資源割当要求を受信した際、ストレージノードＥ２１上の資源では要求を満たせない場合、概算値ＥＳＴＳＩＺＥ（Ｅ２）を参照し、ストレージノードＥ２２により当該資源割当要求が受理可能のときは当該資源割当要求をストレージノードＥ２２上の部分管理プロセスＥ２２ａに転送する。部分管理プロセスＥ２２ａは上記記憶装置割当表を更新し資源を割当て、要求への返信をユーザ計算端末Ｅ１に送付する。
【０１０８】
部分管理プロセスの実装は上記に限らない。ストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・をネットワークＥ３に接続し、上記の相互情報交換により分散記憶装置Ｅ２は構成される。
【０１０９】
ネットワークＥ３にはまた、少なくとも一つのユーザ計算端末Ｅ１が接続されている。ユーザ計算端末Ｅ１は、図７に示すように、一つ以上のＣＰＵ Ｇ１１、一つ以上のメモリＧ１２、および、一つ以上の通信コントローラＧ１３を備える計算機により構成される。
【０１１０】
ユーザ計算端末Ｅ１は、通信コントローラＧ１３を通じて、ネットワークＥ３上のストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・（図５を参照）とユーザ利用データの送受信を行う。この制御は、ＣＰＵ Ｇ１１およびメモリＧ１２を用いて実現されるソフトウェア処理により行われる。またユーザ計算端末Ｅ１は分散記憶装置Ｅ２へ送信するユーザ利用データを保持している。
【０１１１】
ユーザ利用データは例えば、メモリＧ１２上に配置する。別の例では、ユーザ計算端末Ｅ１は、さらに、一つ以上のＩ／Ｏコントローラと記憶装置を備えており、分散記憶装置Ｅ２と送受信するユーザ利用データはメモリＧ１２のほかに当該記憶装置上に格納してもよい。
【０１１２】
ユーザ利用データは固定長あるいは任意長のデータ塊の集合と、当該データ塊を示す利用データＩＤで管理される。例えば、データ塊はファイル、利用データＩＤはi-node番号である。また別の例では、データ塊は４キロバイト長のブロック、利用データＩＤはボリューム名とブロック番号の組である。
【０１１３】
データ格納制御部Ｅ１２は、資源量送信部Ｋ１２１、格納先受信部Ｋ１２２、データ送信部Ｋ１２３、共有登録部Ｋ１２４を有する。ネットワークＥ３は、例えば、Fibre Channel、FCoE、Infiniband、またはその他のEthernet（登録商標）上のTCP/IP等の上位プロトコル等により実現される。ネットワークＥ３の実現方法は上記に限定しない。
【０１１４】
かかる構成のシステムにおいて、ユーザ計算端末Ｅ１から分散記憶装置Ｅ２へのデータ転送は図１０のように行われる。以下ではその説明を記載する。
【０１１５】
まずユーザ計算端末Ｅ１上のデータ利用プロセスＥ１１は送信するユーザ利用データの格納サイズを作成するためのデータ特性情報を資源量送信部Ｋ１２１に送信する。例えば、ここではファイル名のリストが送付される。別の例ではブロック番号のリストが送付される。別の例では、ユーザ計算端末Ｅ１上の記憶装置のサイズが送付される。データ特性情報は上記に限らない。
【０１１６】
資源量送信部Ｋ１２１では、上記データ特性情報から、資源量情報を作成し、部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・のうち一つに資源割当要求として送信する。
【０１１７】
例えば、図１０では部分管理プロセスＥ２１ａに送信したとしている。資源量情報の例としては、ファイル名のリストから、当該ファイルを合計したサイズを作成し送信することができる。別の例ではユーザ計算端末Ｅ１上の記憶装置サイズを資源量情報として送信する。資源量情報は上記に限らない。
【０１１８】
資源割当要求を受信した分散記憶装置Ｅ２上の部分管理プロセスＥ２１ａは、上記の方法に基づき資源を割当し、ストレージノードＥ２１、Ｅ２２、Ｅ２３、・・・のうち一つを識別可能なノード識別子をユーザ計算端末Ｅ１に送信する。例えば、ノード識別子はネットワークアドレスである。例えば、以下の説明では、ストレージノードＥ２３が選択されたとする。
【０１１９】
格納先受信部Ｋ１２２によりノード識別子を受信したユーザ計算端末Ｅ１はデータ送信部Ｋ１２３により当該ノード識別子であらわされるストレージノードＥ２３に対し、ユーザ利用データを送信する。ユーザ利用データはデータ塊ごとに一つずつ送信してもよい。また複数のデータ塊をまとめて、データ塊間の境界が判断可能なデータ構造として送信してもよい。
【０１２０】
受信したストレージノードＥ２３は、永続化管理部Ｅ２３ｆにより当該データ塊を冗長化し、少なくとも一つの記憶装置Ｅ２３ｄに格納し、割り振った記憶位置データをユーザ計算端末Ｅ１に返信する。永続化管理部Ｅ２３ｆによるデータ塊の冗長化処理は、図５の冗長化管理プロセスＥ２３ｃで行われる。
ストレージノードＥ２３が複数のデータ塊をまとめて受信した場合は、対応する複数の記憶位置データを、記憶位置データ間の境界が判断可能なデータ構造として送信してもよい。
【０１２１】
データ送信部Ｋ１２３は、受信した記憶位置データと送信したストレージノード、および対応するデータ塊識別子の記憶位置データ対応表を作成し保持しておく。必要な全てのユーザ利用データを送信した場合は次の共有登録部Ｋ１２４に遷移する。
【０１２２】
また、他に格納が必要なユーザ利用データが存在する場合、資源量送信部Ｋ１２１に再び遷移し、上記の手順によりユーザ利用データを送信してもよい。共有登録部Ｋ１２４では、記憶位置データ対応表の項目を含む情報を分散管理プロセスＥ２１ｂ、Ｅ２２ｂ、Ｅ２３ｂ、・・・のうち少なくとも一つ（本実施の形態では、分散管理プロセスＥ２３ｂ）に送信する。
【０１２３】
記憶位置データ対応表の項目を含む情報を受信した分散管理プロセスＥ２３ｂでは、データ配置情報を更新する。例えば、上記分散ハッシュテーブル方式であれば、各部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・が保持するデータ塊識別子と格納ノードの対の割当表を更新し、データ格納が完了する。
【０１２４】
このように、本実施の形態では、資源量送信部Ｋ１２１と、部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・により資源をまとめて確保し、データ送信部Ｋ１２３により複数のデータ塊をまとめて送信しユーザ利用データの耐故障性を確保した後に共有登録部Ｋ１２４と部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・によりユーザ利用データを共有登録し利用可能とする。
【０１２５】
従って、本実施の形態では、データ管理システムＥ０は、大量の小さなユーザ利用データを挿入する際に、個別のデータ塊ごとに共有処理を行うことなく、ユーザ利用データを高速に挿入し、削除可能とすることができる。
【０１２６】
データ送信部Ｋ１２３が複数回実行される場合、共有登録部Ｋ１２４は最後にまとめて１回、記憶位置データ対応表の項目を送信してもよい。また、各データ送信部Ｋ１２３が実行後に、次のデータ送信部Ｋ１２３と並行して共有登録部Ｋ１２４を実行しても良い。
【０１２７】
また、ユーザ計算端末Ｅ１が保持するユーザ利用データのうち、上記データ送信部Ｋ１２３で記憶位置データを受信したユーザ利用データに関しては、分散記憶装置Ｅ２上で冗長化され耐故障性が確保されているため、データ削除部Ｄ１２５（図４を参照）により削除を行い、ユーザ計算端末Ｅ１上のデータ格納資源を解放してもよい。
【０１２８】
また、ユーザ計算端末Ｅ１は、さらに、図に記載されていないストレージノード死活監視部を持ち、ストレージノードが障害を起こしたことを高速に検知することができるとしてもよい。
【０１２９】
ストレージノード死活監視部による死活監視は例えば、ネットワークタイムアウト検知等で行う。別の例では、例えば、異なるストレージノード上からのハートビートによる検知でもよい。死活監視は上記に限らない。
【０１３０】
ユーザ計算端末Ｅ１は、分散記憶装置Ｅ２からデータ再送依頼を受信するデータ再送依頼受信部と、データ送信部Ｋ１２３に対しデータ送信停止命令を出し、資源量送信部Ｋ１２１に対し必要資源再確保命令を出す再送制御部をさらに備えることにより、ユーザ利用データを失うことなく再送することができる。
【０１３１】
また、分散記憶装置Ｅ２は、ユーザ計算端末Ｅ１上の上記データ共有部からの指令により部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・が更新を行った後、ユーザ利用データの読み出し性能を考え、ユーザ利用データを異なるストレージノード上にマイグレートする機能を備えていてもよい。さらに、ネットワークＬ３は、接続された機器間で性能や遅延時間に差があってもよい。
【０１３２】
かかる構成では、ユーザ計算端末Ｅ１上の資源量送信部が送信する資源量情報はネットワーク上の位置を表すネットワーク位置情報を含むことができる。ネットワーク位置情報は例えば、ネットワークアドレスである。
【０１３３】
別の例では、ネットワーク位置情報は、例えば、あらかじめ測定された各ストレージノードとの距離を示す値である。別の例では、ネットワーク位置情報は、例えば、接続されたネットワークスイッチの識別子である。
【０１３４】
別の例ではユーザ計算端末Ｅ１は複数の記憶装置を有しており、各記憶装置ごとのネットワーク位置情報をまとめたものをユーザ計算端末Ｅ１のネットワーク位置情報としてもよい。ネットワーク位置情報は上記に限らない。
【０１３５】
かかる構成では、ストレージノードＥ２１、Ｅ２２、Ｅ２３・・・は、さらに、ネットワーク構成分散判定部を有してもよい。ネットワーク構成分散判定部は、上記資源量情報中のネットワーク位置情報から、分散処理によりネットワーク上でより効率がよくデータ転送ができるストレージノードを決定する手段である。
【０１３６】
例えば、ネットワーク構成分散判定部は、分散記憶装置Ｅ２中のネットワークスイッチの相互接続情報を分割・複製を作成し持ちあい、ネットワーク位置情報がアドレスやネットワークスイッチの識別子であった場合、当該アドレスで示されるユーザ計算端末Ｅ１にもっとも近いスイッチに接続されたストレージノードを格納対象として決定できる。
【０１３７】
また、別の例では、ネットワーク構成分散判定部は、送信されたネットワーク位置情報があらかじめ測定された各ストレージノードとの距離を示す値であった場合、もっとも距離の小さなストレージを決定することができる。
【０１３８】
また、別の例では、ネットワーク構成分散判定部は、過去の資源割当情報履歴を把握し、現在最もデータ転送能力に余裕があるストレージノードを選定し、格納対象として決定できる。
【０１３９】
また、ネットワーク構成分散判定部は、さらに、ネットワーク情報と、資源量送信部の持つ情報をあわせ、格納対象ストレージノードを決定するとしてもよい。
【０１４０】
従って、本実施の形態では、上記のネットワーク構成分散判定部をさらに導入することにより、ユーザ計算端末Ｅ１はよりネットワーク上データ転送性能の良いストレージノードへユーザ利用データを転送できる。
【０１４１】
また、上記部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・は、さらに上記ユーザ計算端末Ｅ１から上記ノード識別子と上記記憶位置データの組とデータ塊識別子を受信したときにデータ登録の可否を判断し登録不可能のときは登録不可通知をユーザ計算端末Ｅ１に返信するデータ登録可否判断部を有し、上記ユーザ計算端末Ｅ１上は、さらに、上記分散記憶装置Ｅ２から登録不可通知を受信し上記データ利用プロセスＥ１１にデータ転送不可通知を送信するデータ登録失敗処理部を有するとしても良い。
【０１４２】
例えば、登録可否判断として、データ一貫性判断があげられる。この場合、上記部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・は、さらに分散処理によるデータ版管理機能を有する。
【０１４３】
部分管理プロセスＥ２１ａ、Ｅ２２ａ、Ｅ２３ａ、・・・とのやり取りを通じてユーザ利用データを読み出したユーザ計算端末Ｅ１は、ユーザ利用データと共に当該ユーザ利用データの取得時の版を示す版情報（以下、「版」と略記する場合がある）ＶＥＲ（１）を取得する。
【０１４４】
当該ユーザ利用データを更新し書き戻す際に、上記利用データＩＤに読み出し時の版ＶＥＲ（１）よりも大きな版ＶＥＲ（２）を示す版情報を含ませる。上記登録可否判断部は上記データ版管理機能と上記版情報に基づいて、当該版情報ＶＥＲ（２）が記録されている版よりも小さい場合登録不可能とする。記録されている版よりも大きい場合、データ登録の際に、当該ユーザ利用データの版を少なくとも版情報ＶＥＲ（２）よりも大きな値に変更する。
【０１４５】
従って、本実施の形態では、上記のデータ登録可否判断部をさらに導入することにより、ユーザ計算端末Ｅ１はデータ管理システムＥ０として不都合なユーザ利用データを登録し他のユーザ計算端末Ｅ１に提供してしまうことを防ぐことができる。例えば、データ登録可否判断が版情報に基づく場合、データ管理システムＥ０は最新ではないユーザ利用データを他のユーザ計算端末Ｅ１に提供してしまうことを防ぐことができる。
【０１４６】
＜第三の実施形態＞
次に、本発明の第三の発明を実施するための最良の形態について図面を参照して詳細に説明する。図１１は、ネットワーク結合された集中制御の分散記憶装置と複数のユーザ計算端末により本実施形態によるデータ管理システムを示すものである。図１１のユーザ計算端末Ｌ１、・・・に格納されたユーザ利用データが分散記憶装置Ｌ２に記録される。
【０１４７】
図１１のストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・は、図１２に示すように一つ以上のＣＰＵ Ｆ２１、一つ以上のメモリＦ２２、一つ以上のＩ／ＯコントローラＦ２３、一つ以上の記憶装置Ｌ２１ｄ、Ｌ２２ｄ、Ｌ２３ｄ、・・・、一つ以上の通信コントローラＦ２４を備える計算機により構成される。
【０１４８】
ストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・は、通信コントローラＦ２４を通じて、ネットワークＬ３上のユーザ計算端末Ｌ１、・・・とユーザ利用データの送受信を行う。また、ストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・は、必要なユーザ利用データの格納・読み出しを、Ｉ／ＯコントローラＦ２３を通じて記憶装置Ｌ２１ｄ、Ｌ２２ｄ、Ｌ２３ｄ、・・・、と行う。この制御は、ＣＰＵ Ｆ２１およびメモリＦ２２を用いて実現されるソフトウェア処理により行われる。
【０１４９】
記憶装置Ｌ２１ｄ、Ｌ２２ｄ、Ｌ２３ｄ、・・・は例えば、ハードディスクドライブ、フラッシュメモリ、ＤＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭ、ＲＡＩＤコントローラに結合された一つ以上の記憶装置、磁気テープなどのユーザ利用データを記録可能な物理媒体、もしくはストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・の外部に設置された当該媒体へユーザ利用データを記録可能な制御装置である。
【０１５０】
図１１のストレージコントローラＬ４は、一つ以上のＣＰＵ、一つ以上のメモリ、一つ以上の通信コントローラを備える計算機により構成され、資源量送信部Ｌ４１、分散配置管理部Ｌ４２、永続化管理部Ｌ４３を動作させる機能を有する。
【０１５１】
図１１の分散配置管理部Ｌ４２は、ストレージコントローラＬ４上で動作するプログラムであり、資源管理部Ａ２２の機能を実現する。ストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・へのデータ配置は分散配置管理部Ｌ４２で実現される資源管理部Ａ２２の機能により決定され、利用データＩＤと格納ノードの対応を管理する。
【０１５２】
例えば、分散データ配置機能は、配置を管理する表により決定される。分散データ配置機能の実装は上記に限らない。図１１の永続化管理部Ｌ４３は、ストレージコントローラＬ４上で動作するプログラムであり、永続化管理部Ｌ４３の機能を実現する。格納データが求められた耐故障性を満たすように冗長化処理を行う。
【０１５３】
例えば、記憶装置がハードディスクドライブで、求められた耐故障性が高々一台の記憶装置故障でデータ喪失が起こらないこと、とした場合、永続化管理部Ｌ４３は、受信したユーザ利用データを必ず二つ以上のストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・に格納するように分散配置管理部を制御する。
【０１５４】
冗長化処理は上記に限らない。ストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・上のユーザ利用データは、ストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・上で動作する内部データ管理機能Ｌ１１ａ、Ｌ１２ａ、Ｌ１３ａ、・・・により、固定長あるいは任意長のデータ塊の集合と、当該データ塊を示す利用データＩＤで管理される。
【０１５５】
例えば、データ塊はファイル、利用データＩＤはi-node番号である。また別の例では、データ塊は４キロバイト長のブロック、利用データＩＤはボリューム名とブロック番号の組である。データ塊の実装は上記に限らない。
【０１５６】
データ塊はデータ塊配置表により内部利用データＩＤとオフセットから記憶装置Ｌ１１ｂ、Ｌ１２ｂ、Ｌ１３ｂ、・・・上における位置の対応が管理される。例えば、図９に示すようなデータ塊配置表により管理される。データ塊配置表の実装は上記に限らない。
【０１５７】
図１１の資源量送信部Ｌ４１は、ストレージコントローラＬ４上で動作するプログラムである。資源量送信部Ｌ４１は各ストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・上の資源を管理しており、要求に応じて資源を割り当てあるいは開放依頼を内部データ管理機能Ｌ１１ａ、Ｌ１２ａ、Ｌ１３ａ、・・・に送信する。資源は、例えば、記憶装置領域やＣＰＵ使用量、ネットワーク帯域がある。
【０１５８】
資源の確保の例としては、例えば、記憶装置領域に対して、あらかじめ図１３に示すような表として管理している記憶資源表に対し、必要確保サイズが要求された時、当該表を走査し、要求サイズが確保できるストレージノードを決定しユーザ計算端末に送付する。
【０１５９】
また別の例では、例えば、記憶装置領域の資源の確保の際、永続化管理部Ｌ４３により、あらかじめ複製を配置する数が決定している際、例えば、３つの複製を配置する場合、要求サイズがそれぞれ確保できる３つのストレージノードを決定しユーザ計算端末に送付する。
【０１６０】
資源量送信部Ｌ４１の実装は上記に限らない。分散記憶装置Ｌ２はストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・、および、ストレージコントローラＬ４をネットワークＬ３に接続し、上記に示すような相互に情報をやり取りすることで構成される。
【０１６１】
ネットワークＬ３にはまた、少なくとも一つのユーザ計算端末が接続されている。ユーザ計算端末は、第二の実施形態と同様であり、詳細は割愛する。ネットワークＬ３は図１５のように複数のネットワークＬ３１、Ｌ３２、・・・の結合により構成されていてもよい。
【０１６２】
上述のような構成のデータ管理システムにおいて、ユーザ計算端末Ｌ１から分散記憶装置Ｌ２へのデータ転送は図１４のように行われる。以下ではその説明を記載する。まずユーザ計算端末上のデータ利用プロセスＬ１１は送信するユーザ利用データの格納サイズを作成するためのデータ特性情報を資源量送信部Ｌ１２１に送信する。
【０１６３】
データ特性情報の例としては、ここではファイル名のリストが送付される。別の例ではブロック番号のリストが送付される。別の例では、ユーザ計算端末上の記憶装置のサイズが送付される。データ特性情報は上記に限らない。
【０１６４】
資源量送信部Ｌ１２１では、上記データ特性情報から、資源量情報を作成し、資源量送信部Ｌ４１に資源割当要求として送信する。資源量情報の例としては、ファイル名のリストから、当該ファイルを合計したサイズを資源量情報として作成し送信することができる。別の例ではユーザ計算端末Ｅ１上の記憶装置サイズを資源量情報として送信する。資源量情報は上記に限らない。
【０１６５】
資源割当要求を受信した分散記憶装置Ｌ２上の資源量送信部Ｌ４１は、上記の方法に基づき資源を割当て、少なくとも一つのノード識別子をユーザ計算端末Ｌ１に送信する。ノード識別子はストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・のうち一つを決定可能な情報である。例えば、ノード識別子はネットワークアドレスである。
【０１６６】
送信されたノード識別子を位置受信部により受信したユーザ計算端末はデータ送信部Ｌ１２３により当該ノード識別子であらわされるストレージノードに対し、ユーザ利用データを送信する。ユーザ利用データはデータ塊ごとに一つずつ送信してもよい。また複数のデータ塊をまとめて、データ塊間の境界が判断可能なデータ構造として送信してもよい。
【０１６７】
受信したストレージノードは、ユーザ利用データを格納し、割り振った記憶位置データをユーザ計算端末に返信する。複数のデータ塊をまとめて受信した場合は、対応する複数の記憶位置データを、記憶位置データ間の境界が判断可能なデータ構造として送信してもよい。
【０１６８】
データ送信部Ｌ１２３は、受信した記憶位置データと送信したノード識別子、および対応するデータ塊識別子の記憶位置データ対応表を作成し保持しておく。必要な全てのユーザ利用データを送信した場合は次の共有登録部Ｌ１２４に遷移する。
【０１６９】
また、他に格納が必要なユーザ利用データが存在する場合、資源量送信部Ｌ１２１に再び遷移し、上記の手順によりユーザ利用データを送信してもよい。共有登録部Ｌ１２４では、記憶位置データ対応表の項目を分散配置管理部に送信する。分散配置管理部Ｌ４２では、データ配置情報を更新する。例えば、上記表方式であれば、表を更新し、データ格納が完了する。
【０１７０】
また、ユーザ計算端末Ｌ１上のプログラムは、上記データ送信部Ｌ１２３で、指定された全てのストレージノードＬ２１、Ｌ２２、Ｌ２３、・・・への記憶位置データを受信したユーザ利用データに関しては、分散記憶装置Ｌ２上で冗長化され耐故障性が確保されている、図に記載しないデータ削除部により削除を行い、ユーザ計算端末Ｌ１上のデータ格納資源を解放することができる。
【０１７１】
このように、本実施の形態では、資源量送信部Ｌ１２１と、資源量送信部Ｌ４１により資源をまとめて確保し、データ送信部Ｌ１２３により複数のデータ塊をまとめて送信しユーザ利用データの耐故障性を確保した後に共有登録部Ｌ１２４と分散配置管理部Ｌ４２によりユーザ利用データを共有登録し利用可能とする。
【０１７２】
従って、本実施の形態では、データ管理システムは、大量の小さなユーザ利用データを挿入する際に、個別のデータ塊ごとに共有処理を行うことなく、ユーザ利用データを高速に挿入し、削除可能とすることができる。
【０１７３】
さらに、ネットワークＬ３は図１５に示すように、接続された機器間で性能や遅延時間に差があってもよい。かかる構成では、ユーザ計算端末上の資源量送信部が送信する資源量情報はネットワーク上の位置を表すネットワーク位置情報を含むことができる。ネットワーク位置情報は例えば、ネットワークアドレスである。
【０１７４】
別の例では、ネットワーク位置情報は、例えば、あらかじめ測定された各ストレージノードとの距離を示す値である。別の例では、ネットワーク位置情報は、例えば、接続されたネットワークスイッチの識別子である。
【０１７５】
別の例ではユーザ計算端末は複数の記憶装置を有しており、各記憶装置ごとのネットワーク位置情報をまとめたものをユーザ計算端末Ｌ１のネットワーク位置情報としてもよい。ネットワーク位置情報は上記に限らない。
【０１７６】
かかる構成では、ストレージコントローラＬ４は、さらに、ネットワーク構成判定部を有してもよい。ネットワーク構成判定部は、上記資源量情報中のネットワーク位置情報から、ネットワーク上でより効率がよくデータ転送ができるストレージノードを決定する手段である。
【０１７７】
例えば、ネットワーク構成判定部は、分散記憶装置Ｌ２中のネットワークスイッチの相互接続情報を持ち、ネットワーク位置情報がアドレスやネットワークスイッチの識別子であった場合、当該アドレスで示されるユーザ計算端末にもっとも近いスイッチに接続されたストレージノードを格納対象として決定できる。
【０１７８】
また、別の例では、ネットワーク構成判定部は、送信されたネットワーク位置情報があらかじめ測定された各ストレージノードとの距離を示す値であった場合、もっとも距離の小さなストレージを選定し、格納対象として決定できる。
【０１７９】
また、別の例では、ネットワーク構成判定部は、過去の資源割当情報履歴を把握し、現在最もデータ転送能力に余裕があるストレージノードを選定し、格納対象として決定できる。
【０１８０】
また、ネットワーク構成判定部は、さらに、ネットワーク情報と、資源量送信部の持つ情報をあわせ、格納対象ストレージノードを決定するとしてもよい。従って、本実施の形態では、上記のネットワーク構成判定部を導入することにより、ユーザ計算端末はよりネットワーク上データ転送性能の良いストレージノードへユーザ利用データを転送できる。
【０１８１】
また、上記分散配置管理部Ｌ４２は、さらに上記ユーザ計算端末から上記ノード識別子と上記記憶位置データの組と利用データＩＤを受信したときにデータ登録の可否を判断し登録不可能のときは登録不可通知をユーザ計算端末に返信するデータ登録可否判断部を有し、上記ユーザ計算端末上は、さらに、上記分散記憶装置から登録不可通知を受信し上記データ利用機能にデータ転送不可通知を送信するデータ登録失敗処理部を有するとしてもよい。
【０１８２】
例えば、登録可否判断として、データ一貫性判断があげられる。この場合、上記分散配置管理部Ｌ４２は、さらにデータ版管理機能を有する。上記配置管理部を通してユーザ利用データを読み出したユーザ計算端末は、ユーザ利用データと共に当該ユーザ利用データの版を示す情報を取得する。
【０１８３】
当該ユーザ利用データを更新し書き戻す際には上記利用データＩＤにさらに、読み出し時よりも大きな版を示す版情報を含ませる。上記登録可否判断部は上記データ版管理機能と上記版情報に基づいて、当該版情報が記録されている版よりも小さい場合登録不可能とする。
【０１８４】
従って、本実施の形態では、上記のデータ登録可否判断部をさらに導入することにより、ユーザ計算端末はデータ管理システムとして不都合なユーザ利用データを登録し他のユーザ計算端末に提供してしまうことを防ぐことができる。例えば、データ登録可否判断が版情報に基づく場合、データ管理システムは最新ではないユーザ利用データを他のユーザ計算端末に提供してしまうことを防ぐことができる。
【０１８５】
なお、本発明のデータ管理システムは、並列ファイルシステム、ＲＡＩＤアレイ、分散記憶システム、データグリッド等の階層化に適用できる。また、分散記憶装置間のシステム移行といった用途にも適用できる。また、分散記憶装置を用いたデータウェアハウスへのデータロードといった用途にも適用できる。
【０１８６】
さらに、本実施の形態では分散記憶装置の各部がコンピュータプログラムにより各種機能として論理的に実現されることを例示した。しかし、このような各部の各々を固有のハードウェアとして形成することもでき、ソフトウェアとハードウェアとの組み合わせとして実現することもできる。
【０１８７】
なお、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各部の構造などを具体的に説明したが、その構造などは本発明を満足する範囲で各種に変更することができる。
【符号の説明】
【０１８８】
Ａ１ ユーザ計算端末
Ａ１１ データ利用プロセス
Ａ１２ 格納制御部
Ａ２ 分散記憶装置
Ａ２１１ データ記憶部
Ａ２２ 資源管理部
Ａ２２ａ、Ａ２２ｂ 部分資源管理部
Ａ２２１ 記憶資源データベース
Ａ２２１ａ、Ａ２２１ｂ 部分記憶資源データベース
Ａ２３ 永続化管理部
Ａ２４ 配置管理部
Ｂ１２１ 資源量送信部 
Ｂ１２２ 格納先受信部
Ｂ１２３ データ送信部
Ｂ１２４ 共有登録部
Ｅ０ データ管理システム
Ｅ１ ユーザ計算端末
Ｅ１１ データ利用プロセス
Ｅ１２ データ格納制御部
Ｅ２ 分散記憶装置
Ｅ２１、Ｅ２２、Ｅ２３ ストレージノード
Ｅ２１ａ、Ｅ２２ａ、Ｅ２３ａ 部分管理プロセス
Ｅ２１ｂ、Ｅ２２ｂ、Ｅ２３ｂ 分散管理プロセス
Ｅ２１ｃ、Ｅ２２ｃ、Ｅ２３ｃ 冗長化管理プロセス
Ｅ２１ｄ、Ｅ２２ｄ、Ｅ２３ｄ データ記憶装置
Ｅ２３ｆ 永続化管理部
Ｅ３ ネットワーク
Ｆ２１ ＣＰＵ
Ｆ２２ メモリ
Ｆ２３ Ｉ／Ｏコントローラ
Ｆ２４ 通信コントローラ
Ｇ１１ ＣＰＵ
Ｇ１２ メモリ
Ｇ１３ 通信コントローラ
ｈ ハッシュ関数
Ｋ１２１ 資源量送信部
Ｋ１２２ 格納先受信部
Ｋ１２３ データ送信部
Ｋ１２４ 共有登録部
Ｌ１ ユーザ計算端末
Ｌ１１    データ利用プロセス
Ｌ１１ａ、Ｌ１２ａ、Ｌ１３ａ 内部データ管理機能
Ｌ１１ｂ、Ｌ１２ｂ、Ｌ１３ｂ 記憶装置
Ｌ１２１ 資源量送信部
Ｌ１２３ データ送信部
Ｌ１２４ 共有登録部
Ｌ２ 分散記憶装置
Ｌ２１、Ｌ２２、Ｌ２３ ストレージノード
Ｌ３ ネットワーク
Ｌ３１、Ｌ３２ ネットワーク
Ｌ４ ストレージコントローラ
Ｌ４１ 資源量送信部
Ｌ４２ 分散配置管理部
Ｌ４３ 永続化管理部
ＶＥＲ 版情報
【図１】
2011048427.tif 000003
【図２】
2011048427.tif 000004
【図３】
2011048427.tif 000005
【図４】
2011048427.tif 000006
【図５】
2011048427.tif 000007
【図６】
2011048427.tif 000008
【図７】
2011048427.tif 000009
【図８】
2011048427.tif 000010
【図９】
2011048427.tif 000011
【図１０】
2011048427.tif 000012
【図１１】
2011048427.tif 000013
【図１２】
2011048427.tif 000014
【図１３】
2011048427.tif 000015
【図１４】
2011048427.tif 000016
【図１５】
2011048427.tif 000017
【図１６】
2011048427.tif 000018