説明

情報管理方法、及び情報提供用計算機

【課題】ファイルサーバのストレージ容量をオンラインストレージサービスを利用して拡張する場合、同期処理時の通信量の削減とオンラインストレージサービス上に保管されるデータ量を削減し、課金量を節減する。
【解決手段】オンラインストレージサービス上の記憶領域をマウントするカーネルモジュールにおいて、ファイルをブロックファイルに分割して管理し、既に登録・保存されたブロックファイル群に対して重複するブロックについては、アップロードせず、ファイルの構成情報を変更するのみとする。また、メタ情報や重複排除を管理するDBについては分割管理し、更新のあった部分のみ、適宜アップロードする仕組みを採用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報管理方法、及び情報提供用計算機に関し、例えば、オンラインストレージサービスを用いた情報提供サーバに関するものである。
【背景技術】
【0002】
クラウドコンピューティングの興隆によって、企業ではITの所有から利用への推移が進んでいくと予想されているが、こうした背景の中、インターネット経由でストレージサービスを提供するベンダが増えてきている。こうしたオンラインストレージサービスの代表的なものとして、Amazon S3やWindows Azure Storage等がある。一般的に、このようなオンラインストレージサービスは、RESTやSOAPといったWebインタフェースを利用してアクセスを行い、リソースの利用量に応じて従量課金を行っている。セキュリティやコンプライアンスの問題は残っているが、コストメリットが大きいため、今後、大きく利用が拡大していくと考えられている。
【0003】
そして、このような外部のオンラインストレージサービスを利用する上では、データ保存量が増大するにつれ、課金量が大きくなってしまうという問題がある。また、WAN経由でデータ転送を行うため、転送効率が良くなく、大量データを保存する場合に時間がかかってしまう問題がある。更に、保存量だけでなく転送量に対しても課金されてしまうため、保存・転送するデータの圧縮が重要な技術となってくる。
【0004】
ストレージ内のデータ圧縮方式として、GZIPやLZH等のアルゴリズムが一般的であるが、近年、重複しているデータを統合化してデータ重複度を排除することで、圧縮を実現する方式が提案されている。例えば、特許文献1の発明では、SANストレージに複数のOSイメージを格納する場合の、OSイメージの共通部分の重複排除を行い、ストレージ容量削減を実現する方式が提案されている。本特許では、ストレージ内で共通LUと個別LUに分け、各ホストに共通するOS・APデータを共通LUに格納し、各ホスト個別データを個別LUに格納することで、従来だと重複するOS・APデータに関して重複排除を行い、ストレージ容量削減を実現している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−230661号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1によれば、ストレージ側で内部的に重複排除を行う方式を採用しており、通信量を削減することができず、一般の既存のオンラインストレージサービス利用に対して適用することは困難である。また、オンラインストレージサービスではWAN越しのアクセスが発生するが、ネットワーク上のデータ転送量が削減されないため、パフォーマンス改善に繋がらない点も課題である。
【0007】
本発明はこのような状況に鑑みてなされたものであり、クラウド環境において、ストレージサービス側でのデータ保存量の削減及び情報提供サーバからストレージサービス側へのデータ転送量の削減の双方を実現するための技術を提供するものである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明では、オンラインストレージサービス上に定義された論理記憶領域を、特定フォルダにマウントして、オンラインストレージサービスを透過的に利用する方式における、重複排除技術を利用したデータ保存量・転送量削減を実現する仕組みを提案する。クラウド環境における性能向上を実現するために、書込みデータについてはローカルキャッシュ機能であらかじめキャッシュを行い、非同期な遅延アップロード処理により、重複排除処理を実行しつつ、データをオンラインストレージサービスに格納する。また、管理用のデータベースについては分割して管理し、更新のあった部分のみ、適宜オンラインストレージサービス上にアップロードする仕組みを提供する。さらに、データ種別により、重複排除による圧縮効率は変わるため、データ種別に応じた重複排除の適用可否について管理する。これらの仕組みにより、効率的かつ課金量を節減したオンラインストレージサービス利用方式を実現する。
【0009】
即ち、本発明による情報提供用計算機は、複数のファイルのそれぞれを複数に分割した複数の構成ブロックの情報を管理する構成ブロックデータベースと、複数のファイルの前記複数の構成ブロックの構成情報を管理するファイル構成データベースと、複数のファイルのそれぞれのディレクトリ構成を含むメタ情報を管理するメタ情報データベースと、を有する。そして、構成ブロックデータベースと、ファイル構成データベースと、メタ情報データベースはそれぞれ、格納情報を複数に分割して構成される複数の分割データベースで構成されている。このような情報提供用計算機において、構成ブロックデータベースに格納されている前記複数の構成ブロックにおける重複を排除して、重複排除された構成ブロック群が生成される。また、複数の構成ブロックのそれぞれが他のファイルで共通に用いられている度合いを示す重複度の情報が管理される。さらに、重複排除された構成ブロック群、複数の構成ブロックの構成情報、及びメタ情報は、オンラインストレージサービスにアップロードされる。
【発明の効果】
【0010】
本発明によれば、クラウド環境において、ストレージサービス側でのデータ保存量の削減及び情報提供サーバからストレージサービス側へのデータ転送量の削減の双方を実現することができるようになる。
【0011】
なお、上述した以外の課題、構成及び効果は、以下の本発明を実施するための形態および添付図面によって明らかになるものである。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態による情報処理システムの概略構成を示す図である。
【図2】メタ情報DBテーブルの構成例を示す図である。
【図3】構成ブロックDBテーブルの構成例を示す図である。
【図4】ファイル構成DBテーブルの構成例を示す図である。
【図5】分割DBへのアクセス処理に係る概念を示す図である。
【図6】分割DB管理テーブルの構成例を示す図である。
【図7】マウントフォルダへのファイルオープン処理を説明するためのフローチャートである。
【図8】マウントフォルダへのファイル読込み処理を説明するためのフローチャートである。
【図9】マウントフォルダへのファイル書込み処理を説明するためのフローチャートである。
【図10】マウントフォルダへのファイル削除処理を説明するためのフローチャートである。
【図11】キャッシュデータのアップロード処理を説明するためのフローチャートである。
【図12】キャッシュブロックファイルの重複排除処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0013】
本発明は、ファイルを分割してデータ重複を排除し、外部ストレージサービスに保存することにより、保存量に対する課金量を節減するとともに、WAN経由で送信されるデータ転送量を減らすことで、データ転送に対する課金量を低減しつつ、転送効率を向上する方式に関する。
【0014】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【0015】
なお、以後の説明ではDBを「テーブル」という表現にてDB内の情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について「情報」と呼ぶことができるものとする。
【0016】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【0017】
以後の説明では「モジュール」を主語として説明を行う。ただし、モジュールの機能は、プログラムによっても実現することができる。この場合、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うようすることができるため、プロセッサを主語とした説明としてもよい。
【0018】
<システムの構成>
図1は、本発明の実施形態による情報提供システム(情報処理システムともいう)の概略構成を示す図である。情報提供システムは、ファイルサーバ103と、利用者端末101と、オンラインストレージサービス105と、を有している。
【0019】
利用者端末101は、LAN102経由でファイルサーバ103に接続可能となっており、ファイルサーバ103はWAN104経由でオンラインストレージサービス105に接続可能な構成となっている。なお、ファイルサーバ103は、情報提供するサーバの代表として記述しているだけであり、これに限られるものではない。よって、ファイルサーバは、Webサーバ等の情報提供サーバと読み替えることが可能である。
【0020】
オンラインストレージサービス105は、ストレージアクセス用のWebインタフェースを公開・提供しており、WAN104経由でアクセスすることが可能となっている。ここでは、一例としてファイルサーバ103を挙げているが、Webサーバや業務サーバ等、一般にオンラインストレージサービス105にデータを格納するニーズのあるサーバであれば何でも良い。
【0021】
ファイルサーバ103内には、CIFS/NFSサービス106と容量拡張モジュール107が稼動しており、二次記憶装置111上には構成ブロックDB群108、メタ情報DB群109、ファイル構成DB群110、キャッシュブロックファイル112が格納されている。図示されてはいないが、ファイルサーバ103は、各種プログラムを動作させるためのCPU(MPU)やメモリを有している。
【0022】
CIFS/NFSサービス106はCIFS/NFSプロトコルを通じて、利用者端末からアクセスされた際に、リクエストに応じてローカルのファイル操作を行い、要求データを返すサービスであり、ファイルサーバの基本機能を提供している部分である。
【0023】
また、容量拡張モジュール107は、オンラインストレージサービス105の指定された記憶領域を、ファイルサーバ103上の指定されたローカルフォルダにマウントして、フォルダに対するファイル操作リクエストを処理し、オンラインストレージサービス105上の記憶領域上のファイルデータの読出しや、ファイルサーバ103から記憶領域へのデータ同期処理を行う。このモジュールにより、ファイルサーバ103上のストレージ容量を、オンラインストレージサービス105上の記憶領域を利用してシームレスに拡張することができる。
【0024】
オンラインストレージサービス105上の記憶領域がマウントされたフォルダに対して、書き込まれたファイルは、初回の場合はそのままキャッシュデータとして二次記憶装置111に保存され、容量拡張モジュール107のアップロード処理時に分割されて、重複排除処理が施され、オンラインストレージサービス105上の記憶領域にアップロードされる。また、ファイル読込み時は、ローカルのキャッシュブロックファイル112にデータがあれば、そのデータが返され、無ければオンラインストレージサービス105から対応する構成ブロックファイルがダウンロードされる。なお、以下では簡単のため分割されるブロック長は、ファイルの最後尾のブロック以外、固定長と仮定して議論を進めるが、可変長でも同様の議論になり、発明が限定されるものではない。
【0025】
構成ブロックDB(群)108は、重複排除処理後の、各ファイルを構成する構成ブロックファイルを管理する分割されたDB(群)(図3参照)である。メタ情報DB(群)109は、各ファイルのメタ情報を格納した分割DB(図2参照)である。ファイル構成DB(群)110は、各ファイルがどの構成ブロックファイルで構成されているかを管理する分割DB(図4参照)である。ここで、分割DBとは、1つのDBが複数に分割されて構成されたDBである(図5参照)。各DBが分割DBとして取り扱われている理由は、WAN経由でオンラインストレージサービスにDB情報をアップロードする際に、更新のあった部分のみアップロードすることで、データの転送効率を向上するためであり、更新された分割DBを管理するために、容量拡張モジュール内で、それぞれの分割DB群に対して、分割DB管理テーブルを保持している。
【0026】
一方、オンラインストレージサービス105の記憶領域内には、構成ブロックファイル群113と、メタ情報DBファイル群114と、構成ブロックDBファイル群115と、ファイル構成DBファイル群116が保存される。構成ブロックファイル群113は、重複排除後の構成ブロックファイルの集合である。メタ情報DBファイル群114は、ファイルサーバ103上のメタ情報DB群109のDBファイル群である。同様に、構成ブロックDBファイル群115は、構成ブロックDB群108のDBファイル群である。ファイル構成DBファイル群116は、ファイル構成DB群110のDBファイル群である。
【0027】
ここで、オンラインストレージサービス105として、例えばAmazon S3を想定した場合、記憶領域は「バケット」に相当する。また、容量拡張モジュール107の具体的な実装例として、バケットを特定のディレクトリにマウントするカーネルモジュール(例えば、FUSEベースのファイルシステムモジュール)が考えられる。以下、上記の実装を仮定して説明を進めるが、これにより発明が限定されるものではない。
【0028】
<メタ情報DB>
図2は、メタ情報DB109の構成例を示す図である。メタ情報DB109は、ファイルやディレクトリの属性を管理するためのテーブルで構成される。メタ情報DB109により、各ファイルとディレクトリとの関係が分かる。
【0029】
当該テーブルは、構成する属性として、例えば、ファイル・ディレクトリID201、親ディレクトリID202、ファイル・ディレクトリ名203、及びStat情報204を有している。
【0030】
ファイル・ディレクトリID201は、ファイルやディレクトリを識別する固有のIDである。親ディレクトリID202は、マウントしたフォルダ内で構築されたディレクトリ構造における、当該ファイル・ディレクトリID201のファイル、またはディレクトリの親ディレクトリのファイル・ディレクトリID201である。ファイル・ディレクトリ名203は、当該ファイル・ディレクトリID201で指定されたファイル・ディレクトリの名前情報である。Stat情報204は、更新日時、サイズ、モードといったStat構造体のデータを格納している。
【0031】
<構成ブロックDB>
図3は、構成ブロックDB108の構成例を示す図である。構成ブロックDB108は、ファイルを構成する各ブロック(チャンクとも言う)の属性を管理するためのテーブルで構成される。当該テーブルは、構成する属性として、構成ブロックファイルID301、ハッシュ値302、及び参照カウント303を有している。
【0032】
構成ブロックファイルID301は、重複排除処理後のオンラインストレージサービスに保存対象となる構成ブロックファイルの識別IDである。また、ハッシュ値302は、構成ブロックファイルのハッシュ値であり、MD5やSHA256といったハッシュアルゴリズムで計算された値が格納されている。また、参照カウント303は、当該構成ブロックファイルを構成要素としているファイルがあった場合の、参照数を示したものである。参照カウント303が0になった時点で、当該構成ブロックファイルがどのファイルの構成要素でも無くなったことを意味し、エントリが構成ブロックDB108から削除される。
【0033】
<ファイル構成DB>
図4は、ファイル構成DB110の構成例を示す図である。ファイル構成DB110は、各ファイルがどのようなブロック(チャンク)の集合で構成されるかを管理するためのテーブルである。当該テーブルは、属性として、ファイル・ディレクトリID401、構成リストポインタ402を有している。
【0034】
構成リストポインタ402は、構成リスト403を指し示すポインタを格納している。構成リスト403は、構成ブロックファイルID404がリスト構造で格納されている。個々のファイルは、構成ブロックファイルの集まりで構成されるが、本テーブルはその構成情報を管理している。即ち、構成リスト403内の構成ブロックファイルID404のリストは、先頭から順番に、当該ファイル・ディレクトリID401のファイルを構成する構成ブロックファイルの順列を示している。当該テーブルからは、例えば、ファイル・ディレクトリID=00・・・01で示されるファイルは、b00、b01、・・・の構成ブロックファイルによって構成されることが分かる。
【0035】
<分割DBへのアクセス処理>
図5は、分割DBへのアクセス処理の概念を説明するための図である。ファイルサーバ103内で取り扱うDBとして、構成ブロックDB群108、メタ情報DB群109、ファイル構成DB群110の3つのDBは、いずれも分割DBであり、図5は3つの分割DBに関するアクセス処理の概要について示している。
【0036】
図5において、分割DBクエリモジュール501は、容量拡張モジュール107内にあるモジュールであり、分割DBに対するクエリを発行するモジュールである。あるキー値でファイルを検索したい場合、分割DBクエリモジュール501は、キー値のハッシュ値を計算し、分割DB管理テーブル505に問い合わせる。そして、分割DBクエリモジュール501は、どの分割DBに格納されているかを示す分割DB識別番号を取得し、対応する分割DBに対してクエリを発行する。
【0037】
また、分割DBクエリモジュール501は、分割DBに対する更新用のクエリの場合は、分割DB管理テーブル内の対応するエントリにあるDirtyフラグをONにして、定期的な同期処理後に更新された分割DBを管理する。
【0038】
<分割DB管理テーブル>
図6は、分割DB管理テーブルの構成例を示す図である。分割DB管理テーブル505は、属性として、分割DB識別番号601、格納先分類用ハッシュ値602、及びDirtyフラグ603を有している。また、分割DB管理テーブル505は、構成ブロックDB108、メタ情報DB109、及びファイル構成DB110のそれぞれについて存在する。
【0039】
分割DB識別番号601は、個々の分割DBに付されたIDであり、格納先分類用ハッシュ値602は、検索のキー値が与えられたときに、そのハッシュ値を計算してどの分割DBにデータが格納されているかを示すためのハッシュ値である。また、Dirtyフラグ603は、対応する分割DBが、オンラインストレージサービスとの同期処理以降に更新されたかどうかを示すフラグであり、次回同期処理時のアップロード対象とするか否かを判定するのに使用される。
【0040】
<ファイルオープン処理>
図7は、マウントフォルダへのファイルオープン処理について説明するためのフローチャート図である。
【0041】
マウントフォルダ内のファイルに対してOPEN要求が発行されると、容量拡張モジュール107は、OPEN要求を受信し(ステップ701)、OPEN要求されているファイルのキャッシュブロックファイルが二次記憶装置111内に存在するかどうかを確認する(ステップ702)。
【0042】
キャッシュブロックファイルが二次記憶装置111内に存在する場合、容量拡張モジュール107は、キャッシュブロックファイル群を格納しているフォルダをオープンして、そのファイル識別子を上位に返す(ステップ703)。
【0043】
キャッシュブロックファイルが二次記憶装置111内に存在しない場合、容量拡張モジュール107は、キャッシュブロックファイル群を格納するためのフォルダを二次記憶装置111上に生成し、そのファイル識別子を上位に返す(ステップ704)。
【0044】
<ファイル読込処理>
図8は、マウントフォルダへのファイル読込み処理について説明するためのフローチャートである。
【0045】
マウントフォルダ内のファイルに対してREAD要求が発行されると、容量拡張モジュール107は、READ要求を受信し(ステップ801)、オフセットとサイズから、READ要求されているファイルの、どのブロックファイルへの要求かを判別し、対応するキャッシュブロックファイルが二次記憶装置内に存在するか否かを確認する(ステップ802)。
【0046】
キャッシュブロックが二次記憶装置111内に存在する場合、容量拡張モジュール107は、当該キャッシュブロックファイル群から必要なデータを読み込んで、READバッファに詰めて要求元に返す(ステップ808)。
【0047】
キャッシュブロックが二次記憶装置111内に存在しない場合、容量拡張モジュール107は、READ要求の引数であるオフセット値とサイズから、ファイル構成DBを検索して、ダウンロード対象となる構成ブロックファイルIDを取得する(ステップ803)。そして、容量拡張モジュール107は、取得した構成ブロックファイルIDからオンラインストレージサービス105上の格納先URIを解決してダウンロードし、キャッシュに保存(ステップ804)すると共に、更に保存したキャッシュブロックファイル群112から、必要データを読み込んでREADバッファに詰めて要求元に返す(ステップ805)。
【0048】
<ファイル書き込み処理>
図9は、マウントフォルダへのファイル書込み処理について説明するためのフローチャートである。
【0049】
マウントフォルダ内のファイルに対してWRITE要求が発行されると、容量拡張モジュール107は、WRITE要求を受信し(ステップ901)、オフセットとサイズから、WRITE要求されているファイルの、どのブロックファイルへの要求かを判別し、対応するキャッシュブロックファイルが二次記憶装置内に存在するか否かを確認する(ステップ902)。
【0050】
キャッシュブロックファイルが二次記憶装置内に存在する場合、容量拡張モジュール107は、対応するキャッシュブロックファイル群にデータを上書きし、サイズ情報を要求元に返す(ステップ905)。
【0051】
キャッシュブロックファイルが二次記憶装置内に存在しない場合、容量拡張モジュール107は、新規にキャッシュブロックファイル群の書込みを行い、サイズ情報を要求元に返す(ステップ903)と共に、書込み箇所に対応したブロックと更新した分割DB群のDirtyフラグをセットして、更新が発生したことを記録する(ステップ904)。
【0052】
<ファイル削除処理>
図10は、マウントフォルダへのファイル削除処理(削除予約処理)について説明するためのフローチャートである。
【0053】
マウントフォルダ内のファイル・ディレクトリに対して削除要求が発行されると、容量拡張モジュール107は、削除要求を受信し(ステップ1001)、メタ情報DB群から削除対象となるファイル、またはディレクトリのエントリを削除する(ステップ1002)。
【0054】
その後、容量拡張モジュール107は、削除対象のファイル・ディレクトリIDを、容量拡張モジュールが管理する削除ファイル・ディレクトリリスト(図示せず)に登録する(ステップ1003)。ここでは、削除対象をリストに登録され、実際の削除は所定のタイミングで実行される。つまり、データを直ぐに削除するのではなく、所定のタイミングで消去するファイルである子をと認識するためにリストに登録される。
【0055】
さらに、容量拡張モジュール107は、ローカルに削除対象となるファイルのキャッシュブロックファイル群が保存されている場合、それらのファイルを削除する(ステップ1004)。キャッシュされているデータに関しては、重複排除処理されていない。よって、キャシュされているデータの削除は、ステップ1002及び1003で実行される処理とは連動する処理ではないため、削除要求を受けた後であれば、どのタイミングで実行するようにしても良い。
【0056】
<データアップロード処理>
図11は、キャッシュデータのアップロード処理を説明するためのフローチャートである。容量拡張モジュール107は、指定された時間間隔で、ファイルサーバ内の更新データをオンラインストレージサービスにアップロードして同期を取るためのアップロード処理スレッドを起動する。
【0057】
本スレッドでは、容量拡張モジュール107は、まず、更新のあったキャッシュブロックファイル群に対して、個々に重複排除処理を適用し、当該キャッシュブロックファイルが既に登録済みの構成ブロックファイル群に含まれていないかどうかを調べる(ステップ1101)。重複排除処理の詳細については、図12で後述する。図12を見れば分かるように、ファイル更新の場合には、ステップ1101の処理が終了すると、DirtyフラグがONになった状態となっている。ステップ1206でDirtyフラグがONにセットされるためである。
【0058】
容量拡張モジュール107は、重複排除処理を行い、重複のない新規登録されたキャッシュブロックファイル群を順次、オンラインストレージサービス105にアップロードする(ステップ1102)。
【0059】
次に、容量拡張モジュール107は、上述した削除ファイル・ディレクトリリストとファイル構成DB群110を参照し、削除されたファイルを構成する構成ブロックファイルについて、構成ブロックDB群108の参照カウントを1ずつ減らし、ファイル構成DB群110内の対応するエントリを削除し、対応する分割DBのDirtyフラグをONにする(ステップ1103)。
【0060】
そして、容量拡張モジュール107は、構成ブロックDB群108の参照カウントが0になったエントリを削除し、対応する構成ブロックファイルをオンラインストレージサービス105から削除する(ステップ1104)。
【0061】
その後、容量拡張モジュール107は、分割DBに関して、それぞれの分割DB管理テーブル505(図6)を参照し、Dirtyフラグのついた分割DBファイルをアップロードする(ステップ1105)。
【0062】
容量拡張モジュール107は、アップロードが完了した時点でアップロード処理スレッドを終了し、ファイルサーバとオンラインストレージサービス間のデータ同期処理を終了する。
【0063】
<重複排除処理>
図12は、キャッシュブロックファイルの重複排除処理について説明するためのフローチャートである。
【0064】
チェック対象となるキャッシュブロックファイルが与えられると、容量拡張モジュール107は、まず、当該キャッシュブロックファイルのハッシュ値を取得する(ステップ1201)。
【0065】
次に、容量拡張モジュール107は、構成ブロックDB群108を検索し、同じハッシュ値のブロックがDB群内に存在するかどうかを確認する(ステップ1202)。
【0066】
同じハッシュ値のファイルの存在を検証した結果、存在しない場合(ステップ1203でNoの場合)、容量拡張モジュール107は、新規に構成ブロックDBにエントリを追加登録して(ステップ1207)、構成ブロックDB群108の中の更新した分割DBに対応する、分割DB管理テーブル505上のDirtyフラグをONにする(ステップ1206)。
【0067】
一方、同じハッシュ値のファイルが存在する場合(ステップ1203でYesの場合)、容量拡張モジュール107は、構成ブロックDB群108内の同一ハッシュ値のエントリの参照カウントを1つ上げ(ステップ1204)、ファイル構成DB群110の当該キャッシュブロックファイルに対応する、構成リスト内の構成ブロックファイルIDを更新する(ステップ1205)。そして、容量拡張モジュール107は、更新された構成ブロックDB群108、及びファイル構成DB群110の分割DBに対応する、分割DB管理テーブル505上のDirtyフラグをONにする(ステップ1206)。
【0068】
以上の構成を採ることにより、オンラインストレージサービス105上にデータを保存する際に、ローカル側のファイルサーバ103内で重複排除によるデータ圧縮を行うことで、オンラインストレージサービス105に保管するデータ量や通信量を削減でき、課金量を節減することができる。また、通信量を削減することで、同期処理やダウンロード処理の高速化も実現することができる。更に、メタ情報DBや構成ブロックDB等のDBを分割して、更新部分を管理し、更新のあった部分のみオンラインストレージサービスにアップロードする仕組みを取り入れることで、同期処理の高速化を実現することができる。
【0069】
<まとめ>
本実施形態では、構成ブロックDBと、ファイル構成DBと、メタ情報DBはそれぞれ、格納情報を複数に分割して構成される複数の分割データベースで構成されている。構成ブロックDBに格納されている複数の構成ブロックにおける重複を排除し、重複排除された構成ブロック群が生成される。また、構成ブロックDBでは、複数の構成ブロックのそれぞれが他のファイルで共通に用いられている度合いを示す重複度の情報(参照カウント)が管理される。そして、重複排除された構成ブロック群と、複数の構成ブロックの構成情報と、メタ情報は、オンラインストレージサービスにアップロードされる。このようにすることにより、データの重複を排除した状態で、オンラインストレージサービスに保存することができるようになり、利用容量や通信量に対する課金量を節減することができる。
【0070】
さらに、本実施形態では、追加又は更新された構成ブロックが構成ブロックDB内の複数の構成ブロックと重複するか否か判断される。そして、重複する構成ブロックについて、重複度の情報(参照カウント値)が更新される(参照カウント値がインクリメントされる)。また、更新された構成ブロックを格納する、構成ブロックDB内の分割DBの情報がオンラインストレージサービスにアップロードされる。このように、更新された部分である分割DBのみオンラインストレージサービスにアップロードするので、ファイルサーバ(情報提供サーバ)とオンラインストレージサービス間の通信量を削減し、転送スピードを向上させることができる。
【0071】
さらに、構成ブロックDBにおいて構成ブロックのデータに更新があった場合、更新された構成ブロックが属する分割DBに変更が発生したこと示す変更発生情報(Dirtyフラグ)を管理する。つまり、Dirtyフラグが当該分割DBを管理する情報に付与される。そして、更新発生情報に従って、更新された構成ブロックが属する分割DBのみがオンラインストレージサービスにアップロードされる。また、構成ブロックが新たに追加された場合も同様であり、追加された構成ブロックについて、構成ブロックDBにおいて重複する他の構成ブロックがないと判断した場合には、追加された構成ブロックが属する分割DBに変更が発生したことを示す変更発生情報(Dirtyフラグ)が分割DBを管理する情報に付与される。そして、変更発生情報に従って、追加された構成ブロックが属する分割DBのみがオンラインストレージサービスにアップロードされる。このように、データベース上の情報が更新されたり、新たに情報が追加されたりしても、データベース上の全ての情報をオンラインストレージサービスにアップロードするのではなく、更新された情報を含む分割DBのみをアップロードするので、アップロード時の通信量を削減しながら、更新データの同期処理を実行することができるようになる。
【0072】
重複度の情報(参照カウント値)は、構成ブロックが他のファイルで参照されている数を示すカウント値で構成されている。構成ブロックの削除要求がなされると、それに応答して、参照カウント値が減らされる。このカウント値が0となった構成ブロックがある場合、カウント値が0となった構成ブロックが属する分割DBに構成ブロックの削除が発生したこと示す変更発生情報(Dirtyフラグ)が分割DBを管理する情報に付与される。そして、変更発生情報に従って、削除された構成ブロックが属する分割DBがオンラインストレージサービスにアップロードされる。
【0073】
ファイル読込要求が利用者端末からなされると、ファイル読込み要求の対象となるファイルに対応する構成ブロックが、ファイル構成DBに基づいて特定される。そして、特定した構成ブロックについて、オンラインストレージサービス上の情報格納先が特定される(格納先URLが解決される)。次に、対象となる構成ブロックがオンラインストレージサービスからダウンロードされ、情報提供用計算機内にキャッシュされ、読込みデータを構成して利用者端末に提供される。このようにすることにより、オンラインストレージサービスとファイルサーバとの通信データを削減しながら、READ時のデータダウンロードにおける性能向上を実現することができる。
【0074】
なお、本発明は、実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0075】
また、実施形態で示された各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現しても良い。各機能等を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録或いは記憶装置、またはICカード、SDカード、DVD等の記録或いは記憶媒体に格納することができる。
【0076】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【符号の説明】
【0077】
101…利用者端末
102…LAN
103…ファイルサーバ
104…WAN
105…オンラインストレージサービス
106…CIFS/NFSサービス
107…容量拡張モジュール
108…構成ブロックDB群
109…メタ情報DB群
110…ファイル構成DB群
111…二次記憶装置
112…キャッシュブロックファイル群
113…構成ブロックファイル群
114…メタ情報DBファイル群
115…構成ブロックDBファイル群
116…ファイル構成DBファイル群
117…記憶領域
201…ファイル・ディレクトリID
202…親ディレクトリID
203…ファイル・ディレクトリ名
204…Stat情報
301…構成ブロックファイルID
302…ハッシュ値
303…参照カウント
401…ファイル・ディレクトリID
402…構成リストポインタ
403…構成リスト
404…構成ブロックファイルID
501…分割DBクエリモジュール
502…分割DB
505…分割DB管理テーブル
601…分割DB識別番号
602…格納先分類用ハッシュ値
603…Dirtyフラグ

【特許請求の範囲】
【請求項1】
利用者端末からの要求に応答して情報を提供する情報提供用計算機と、提供すべき情報を格納するオンラインストレージサービスと、を備える情報処理システムにおける情報管理方法であって、
前記情報提供用計算機は、プロセッサと、複数のファイルのそれぞれを複数に分割した複数の構成ブロックの情報を管理する構成ブロックデータベースと、前記複数のファイルの前記複数の構成ブロックの構成情報を管理するファイル構成データベースと、前記複数のファイルのそれぞれのディレクトリ構成を含むメタ情報を管理するメタ情報データベースと、を有し、前記構成ブロックデータベースと、前記ファイル構成データベースと、前記メタ情報データベースはそれぞれ、格納情報を複数に分割して構成される複数の分割データベースで構成されており、
前記情報管理方法は、
前記プロセッサが、前記構成ブロックデータベースに格納されている前記複数の構成ブロックにおける重複を排除し、重複排除された構成ブロック群を生成するステップと、
前記プロセッサが、前記複数の構成ブロックのそれぞれが他のファイルで共通に用いられている度合いを示す重複度の情報を管理するステップと、
前記プロセッサが、前記重複排除された構成ブロック群と、前記複数の構成ブロックの構成情報と、前記メタ情報と、を前記オンラインストレージサービスにアップロードするステップと、
を有することを特徴とする情報管理方法。
【請求項2】
請求項1において、
さらに、前記プロセッサが、追加又は更新された構成ブロックが前記構成ブロックデータベース内の前記複数の構成ブロックと重複するか否か判断するステップと、
前記プロセッサが、重複する構成ブロックについて、前記重複度の情報を更新するステップと、
前記更新された構成ブロックを格納する、前記構成ブロックデータベース内の前記分割データベースの情報を前記オンラインストレージサービスにアップロードするステップと、
を有することを特徴とする情報管理方法。
【請求項3】
請求項2において、
さらに、前記プロセッサが、前記構成ブロックデータベースにおいて構成ブロックのデータに更新があった場合、更新された構成ブロックが属する前記分割データベースに変更が発生したこと示す変更発生情報を管理するステップを有し、
前記アップロードするステップにおいて、前記プロセッサは、前記更新発生情報に従って、前記更新された構成ブロックが属する前記分割データベースを前記オンラインストレージサービスにアップロードすることを特徴とする情報管理方法。
【請求項4】
請求項2において、
さらに、前記追加された構成ブロックについて、前記構成ブロックデータベースにおいて重複する他の構成ブロックがないと判断した場合、前記プロセッサが、前記追加された構成ブロックが属する前記分割データベースに変更が発生したことを示す変更発生情報を管理するステップを有し、
前記アップロードするステップにおいて、前記プロセッサは、前記変更発生情報に従って、前記追加された構成ブロックが属する前記分割データベースを前記オンラインストレージサービスにアップロードすることを特徴とする情報管理方法。
【請求項5】
請求項2において、
前記重複度の情報は、構成ブロックが他のファイルで参照されている数を示すカウント値で構成されており、
前記重複度の情報を更新するステップにおいて、前記プロセッサは、構成ブロックの削除要求に応答して、前記重複度のカウント値を減らし、
前記情報管理方法は、さらに、前記プロセッサが、前記重複度のカウント値が0となった構成ブロックがある場合、前記カウント値が0となった構成ブロックが属する前記分割データベースに構成ブロックの削除が発生したこと示す変更発生情報を管理するステップを有し、
前記アップロードするステップにおいて、前記プロセッサは、前記変更発生情報に従って、前記削除された構成ブロックが属する前記分割データベースを前記オンラインストレージサービスにアップロードすることを特徴とする情報管理方法。
【請求項6】
請求項1において、
さらに、前記プロセッサが、ファイル読込み要求の対象となるファイルに対応する前記構成ブロックを、前記ファイル構成データベースに基づいて特定するステップと、
前記プロセッサが、前記特定した構成ブロックについて、前記オンラインストレージサービス上の情報格納先を特定するステップと、
前記プロセッサが、前記構成ブロックを前記オンラインストレージサービスからダウンロードするステップと、
前記プロセッサが、前記情報提供用計算機内にキャッシュし、読込みデータを構成して前記ファイル読込み要求に応答するステップと、
を有することを特徴とする情報管理方法。
【請求項7】
利用者端末からの要求に応答して、オンラインストレージサービスから情報を取得し、当該情報を前記利用者端末に提供する情報提供用計算機であって、
プロセッサと、
複数のファイルのそれぞれを複数に分割した複数の構成ブロックの情報を管理する構成ブロックデータベースと、
前記複数のファイルの前記複数の構成ブロックの構成情報を管理するファイル構成データベースと、
前記複数のファイルのそれぞれのディレクトリ構成を含むメタ情報を管理するメタ情報データベースと、を有し、
前記構成ブロックデータベースと、前記ファイル構成データベースと、前記メタ情報データベースはそれぞれ、格納情報を複数に分割して構成される複数の分割データベースで構成されており、
前記プロセッサは、
前記構成ブロックデータベースに格納されている前記複数の構成ブロックにおける重複を排除して、重複排除された構成ブロック群を生成し、
前記複数の構成ブロックのそれぞれが他のファイルで共通に用いられている度合いを示す重複度の情報を管理し、
前記重複排除された構成ブロック群と、前記複数の構成ブロックの構成情報と、前記メタ情報と、を前記オンラインストレージサービスにアップロードすることを特徴とする情報提供用計算機。
【請求項8】
請求項7において、
前記プロセッサは、
追加又は更新された構成ブロックが前記構成ブロックデータベース内の前記複数の構成ブロックと重複するか否か判断し、
重複する構成ブロックについて、前記重複度の情報を更新して、前記更新された構成ブロックを格納する、前記構成ブロックデータベース内の前記分割データベースの情報を前記オンラインストレージサービスにアップロードすることを特徴とする情報提供用計算機。
【請求項9】
請求項8において、
前記プロセッサは、
前記構成ブロックデータベースにおいて構成ブロックのデータに更新があった場合、更新された構成ブロックが属する前記分割データベースに変更が発生したこと示す変更発生情報を管理し、
前記更新発生情報に従って、前記更新された構成ブロックが属する前記分割データベースを前記オンラインストレージサービスにアップロードすることを特徴とする情報提供用計算機。
【請求項10】
請求項8において、
前記プロセッサは、
前記追加された構成ブロックについて、前記構成ブロックデータベースにおいて重複する他の構成ブロックがないと判断した場合、前記追加された構成ブロックが属する前記分割データベースに変更が発生したことを示す変更発生情報を管理し、
前記変更発生情報に従って、前記追加された構成ブロックが属する前記分割データベースを前記オンラインストレージサービスにアップロードすることを特徴とする情報提供用計算機。
【請求項11】
請求項8において、
前記重複度の情報は、構成ブロックが他のファイルで参照されている数を示すカウント値で構成されており、
前記プロセッサは、
構成ブロックの削除要求に応答して、前記重複度のカウント値を減らし、
前記重複度のカウント値が0となった構成ブロックがある場合、前記カウント値が0となった構成ブロックが属する前記分割データベースに構成ブロックの削除が発生したこと示す変更発生情報を管理し、
前記変更発生情報に従って、前記削除された構成ブロックが属する前記分割データベースを前記オンラインストレージサービスにアップロードすることを特徴とする情報提供用計算機。
【請求項12】
請求項7において、
前記プロセッサは、
ファイル読込み要求の対象となるファイルに対応する前記構成ブロックを、前記ファイル構成データベースに基づいて特定し、前記特定した構成ブロックについて、前記オンラインストレージサービス上の情報格納先を特定し、前記構成ブロックを前記オンラインストレージサービスからダウンロードし、前記情報提供用計算機内にキャッシュし、読込みデータを構成して前記ファイル読込み要求に応答することを特徴とする情報提供用計算機。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−141738(P2012−141738A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2010−293455(P2010−293455)
【出願日】平成22年12月28日(2010.12.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】