(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-29
(45)【発行日】2024-11-07
(54)【発明の名称】オブジェクト管理方法、計算機システム、及びオブジェクト管理プログラム
(51)【国際特許分類】
G06F 16/14 20190101AFI20241030BHJP
【FI】
G06F16/14
(21)【出願番号】P 2022205140
(22)【出願日】2022-12-22
【審査請求日】2023-07-21
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】川口 航史
【審査官】早川 学
(56)【参考文献】
【文献】米国特許出願公開第2016/0132697(US,A1)
【文献】特開2020-102214(JP,A)
【文献】米国特許出願公開第2004/0193901(US,A1)
【文献】特開2021-051471(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
オブジェクトが格納される記憶領域を有する計算機システムが実行するオブジェクト管理方法であって、
前記計算機システムは、メモリと協働するプロセッサ
とデータベースとを有し、
前記プロセッサが、
ユーザによるカスタマイズ可能なメタデータであるカスタムメタデータが付与された実データを前記記憶領域に格納する格納リクエストに応じて、該実データと該カスタムメタデータを含んだ第1オブジェクトを前記記憶領域に格納し、
前記カスタムメタデータを匿名化した匿名化カスタムメタデータを作成し、
前記匿名化カスタムメタデータを含んだ第2オブジェクトを前記記憶領域に格納
し、
前記格納リクエストに応じて、前記第1オブジェクトの格納先情報を有する第1メタデータを作成して前記データベースに登録し、
前記第1オブジェクトに前記第1メタデータを含めて前記記憶領域に格納し、
前記データベースに登録されている前記第1メタデータに基づいて前記記憶領域から前記カスタムメタデータを取得し、
前記実データを含まず前記匿名化カスタムメタデータを含んだ前記第2オブジェクトを前記記憶領域に格納する
各処理を含んだことを特徴とするオブジェクト管理方法。
【請求項2】
請求項
1に記載のオブジェクト管理方法であって、
前記プロセッサが、
前記実データを含む前記第1オブジェクトの格納先情報と、前記第2オブジェクトの格納先情報とを有する第2メタデータを作成して前記データベースに登録し、
前記第2オブジェクトに前記第2メタデータを含めて前記記憶領域に格納する
各処理を含んだことを特徴とするオブジェクト管理方法。
【請求項3】
請求項
2に記載のオブジェクト管理方法であって、
前記プロセッサが、
前記第1オブジェクトを参照する参照リクエストに応じて、該参照リクエストを出したリクエストユーザの権限を確認し、
前記リクエストユーザが前記カスタムメタデータを参照する権限を有する場合に、前記データベースに登録されている前記第1メタデータに基づいて前記記憶領域から前記第1オブジェクトを取得し、取得した前記第1オブジェクトを以って前記参照リクエストに対して応答し、
前記リクエストユーザが前記カスタムメタデータを参照する権限を有さない場合に、前記データベースに登録されている前記第2メタデータに基づいて、前記記憶領域から前記実データ及び前記匿名化カスタムメタデータを取得し、取得した該実データ及び該匿名化カスタムメタデータを含んだオブジェクトを以って前記参照リクエストに対して応答する
各処理を含んだことを特徴とするオブジェクト管理方法。
【請求項4】
請求項
2に記載のオブジェクト管理方法であって、
前記第1メタデータは、前記匿名化カスタムメタデータを含む前記第2オブジェクトの格納先情報を有する
ことを特徴とするオブジェクト管理方法。
【請求項5】
請求項
4に記載のオブジェクト管理方法であって、
前記プロセッサが、
前記第1オブジェクトを削除する削除リクエストに応じて、前記データベースにおいて前記第1メタデータに含まれる前記匿名化カスタムメタデータの格納先情報と同一値を有する前記第2メタデータを特定し、特定した該第2メタデータに基づいて、前記記憶領域に格納されている前記第2オブジェクトを削除し、
前記データベースに登録されている前記第1メタデータに基づいて、前記記憶領域に格納されている前記第1オブジェクトを削除する
各処理を含んだことを特徴とするオブジェクト管理方法。
【請求項6】
請求項
5に記載のオブジェクト管理方法であって、
前記プロセッサが、
前記第2オブジェクトを先に削除し、該第2オブジェクトの削除完了後に前記第1オブジェクトを削除する
ことを特徴とする
オブジェクト管理方法。
【請求項7】
請求項
1に記載のオブジェクト管理方法であって、
前記プロセッサが、
前記実データのハッシュ値と、前記第1オブジェクトを複製した複製オブジェクトを格納するレプリケーション先の計算機システムにおける格納先情報とを前記第1メタデータに含めて前記データベースに登録し、
前記第1オブジェクトを参照する参照リクエストに応じて、前記データベースに登録されている前記第1メタデータに基づいて前記記憶領域から前記第1オブジェクトを取得し、
取得した前記第1オブジェクトのハッシュ値を算出し、
算出した前記ハッシュ値と、前記データベースに登録されている前記ハッシュ値とを比較し、
比較した2つの前記ハッシュ値が異なる場合に、前記データベースに登録されている前記第1メタデータに基づいて、前記レプリケーション先の計算機システムが有する記憶領域から、前記第1オブジェクトの前記複製オブジェクトを取得し、
前記第1オブジェクトを代替して、前記レプリケーション先の計算機システムから取得した前記複製オブジェクトを以って前記参照リクエストに対して応答する
各処理を含んだことを特徴とするオブジェクト管理方法。
【請求項8】
請求項
1に記載のオブジェクト管理方法であって、
前記プロセッサが、
前記第1オブジェクトに含まれる前記実データを更新実データで更新する更新リクエストの受信に際して、
前記実データと前記更新実データの両方を保存する前記実データの世代管理機能が有効である場合には、
前記更新実データと前記カスタムメタデータを含んだ第3オブジェクトの格納先情報を有する第3メタデータを作成して前記データベースに登録し、
前記第3オブジェクトに前記第3メタデータを含めて前記記憶領域に格納し、
前記データベースに登録されている前記第3メタデータに基づいて前記記憶領域から前記カスタムメタデータを取得し、
前記第3メタデータに基づいて前記記憶領域から取得した前記カスタムメタデータを匿名化した匿名化カスタムメタデータを作成し、
前記更新実データを含まず、前記第3メタデータに基づいて前記記憶領域から取得した前記カスタムメタデータを匿名化した前記匿名化カスタムメタデータを含んだ第4オブジェクトを前記記憶領域に格納し、
前記世代管理機能が無効である場合には、
前記データベースに登録されている前記第1メタデータに基づいて前記第1オブジェクトを前記更新実データで更新する
各処理を含んだことを特徴とするオブジェクト管理方法。
【請求項9】
オブジェクトが格納される記憶領域
とデータベースとを有する計算機システムであって、
ユーザによるカスタマイズ可能なメタデータであるカスタムメタデータが付与された実データを前記記憶領域に格納する格納リクエストに応じて、該実データと該カスタムメタデータを含んだ第1オブジェクトを前記記憶領域に格納する記憶領域管理部と、
前記カスタムメタデータを匿名化した匿名化カスタムメタデータを作成するサービス管理部と、を有し、
前記記憶領域管理部は、
前記匿名化カスタムメタデータを含んだ第2オブジェクトを前記記憶領域に格納
し、
前記格納リクエストに応じて、前記第1オブジェクトの格納先情報を有する第1メタデータを作成して前記データベースに登録し、
前記第1オブジェクトに前記第1メタデータを含めて前記記憶領域に格納し、
前記データベースに登録されている前記第1メタデータに基づいて前記記憶領域から前記カスタムメタデータを取得し、
前記実データを含まず前記匿名化カスタムメタデータを含んだ前記第2オブジェクトを前記記憶領域に格納する
ことを特徴とする計算機システム。
【請求項10】
オブジェクトが格納される記憶領域
とデータベースとを有する計算機システムとしてコンピュータを機能させるためのオブジェクト管理プログラムであって、
前記コンピュータに、
ユーザによるカスタマイズ可能なメタデータであるカスタムメタデータが付与された実データを前記記憶領域に格納する格納リクエストに応じて、該実データと該カスタムメタデータを含んだ第1オブジェクトを前記記憶領域に格納する手順と、
前記カスタムメタデータを匿名化した匿名化カスタムメタデータを作成する手順と、
前記匿名化カスタムメタデータを含んだ第2オブジェクトを前記記憶領域に格納する手順と
、
前記格納リクエストに応じて、前記第1オブジェクトの格納先情報を有する第1メタデータを作成して前記データベースに登録する手順と、
前記第1オブジェクトに前記第1メタデータを含めて前記記憶領域に格納する手順と、
前記データベースに登録されている前記第1メタデータに基づいて前記記憶領域から前記カスタムメタデータを取得する手順と、
前記実データを含まず前記匿名化カスタムメタデータを含んだ前記第2オブジェクトを前記記憶領域に格納する手順と
を実行させることを特徴とするオブジェクト管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト管理方法、計算機システム、及びオブジェクト管理プログラムに関する。
【背景技術】
【0002】
近年、データレイク基盤に適したストレージとして、オブジェクトストレージが注目されている。オブジェクトストレージには、実データ、メタデータ、及びカスタムメタデータが1つのオブジェクトとして格納される。
【0003】
メタデータは、オブジェクトストレージへの実データの格納時にシステムから実データに対して付与されたデータである。カスタムメタデータは、ユーザによって実データに付与され、実データの検索や分析等に用いられる、ユーザがカスタマイズ可能なメタデータである。オブジェクトストレージに格納されたオブジェクトは、メタデータ及びカスタムメタデータを利用して、各種分析や機械学習のトレーニングデータ等に幅広く利用されている。
【0004】
このような状況下で、メタデータの機密保護を図る技術として、メタデータを秘匿化し、メタデータ毎にアクセス制限を設ける技術が考案されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述の特許文献1に開示の技術では、メタデータの機密保護を実現する一方で、実データに付与されたカスタムメタデータの機密保護は実現できない。
【0007】
本発明は、上述の背景を鑑みてなされたものであり、オブジェクトストレージに格納された実データに付与されたカスタムメタデータの機密保護を実現することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一側面では、オブジェクトが格納される記憶領域を有する計算機システムが実行するオブジェクト管理方法であって、前記計算機システムは、メモリと協働するプロセッサを有し、前記プロセッサが、ユーザによるカスタマイズ可能なメタデータであるカスタムメタデータが付与された実データを前記記憶領域に格納する格納リクエストに応じて、該実データと該カスタムメタデータを含んだ第1オブジェクトを前記記憶領域に格納し、前記カスタムメタデータを匿名化した匿名化カスタムメタデータを作成し、前記匿名化カスタムメタデータを含んだ第2オブジェクトを前記記憶領域に格納する各処理を含んだことを特徴とする。
【発明の効果】
【0009】
本願の一側面によれば、オブジェクトストレージに格納された実データに付与されたカスタムメタデータの機密保護を実現することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る情報処理システムの構成を示す図。
【
図2】オブジェクトストレージのリージョンの説明図。
【
図4】実施形態に係るオブジェクト格納時処理を示すシーケンス図。
【
図6】リージョンに格納されたメタデータを示す図。
【
図7】実施形態に係るカスタムメタデータ匿名化処理を示すシーケンス図。
【
図8】実施形態に係るデータアクセス処理を示すシーケンス図。
【
図9A】実施形態に係るオブジェクト更新処理(Versioning無効時)を示すシーケンス図。
【
図9B】実施形態に係るオブジェクト更新処理(Versioning有効時)を示すシーケンス図。
【
図10】実施形態に係るオブジェクト削除処理を示すシーケンス図。
【
図11】実施形態に係るデータ破損時処理を示すシーケンス図。
【
図13】各ノードを実現するコンピュータのハードウェア図。
【発明を実施するための形態】
【0011】
以下、図面を参照して本願の開示に係るオブジェクト管理方法、計算機システム、及びオブジェクト管理プログラムの実施形態を説明する。実施形態は、図面も含めて本願を説明するための例示である。実施形態では、説明の明確化のため、適宜、省略及び簡略化がされている。特に限定しない限り、実施形態の構成要素は単数でも複数でもよい。また、ある実施形態と他の実施形態を組み合わせた形態も、本願に係る実施形態に含まれる。
【0012】
同一又は類似の構成要素には、同一の符号を付与し、後出の実施形態及び実施例では、説明を省略する、又は差分を中心とした説明のみを行う場合がある。また、同一又は類似の構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。各構成要素の数は、特に断りがない限り単数でも複数でもよい。
【0013】
実施形態において、プログラムを実行して行う処理について説明する場合がある。コンピュータは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))により、主記憶装置のメモリ等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。プロセッサがプログラムを実行することで、処理を行う機能部が実現される。
【0014】
同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であればよく、特定の処理を行う専用回路を含んでいてもよい。専用回路は、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等である。
【0015】
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読取り可能な非一時的な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶リソース(ストレージ)を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0016】
以下の実施形態では、DB(Data Base)で情報の保存手段を説明する場合があるが、情報の保存手段はDBに限らない。
【0017】
[実施形態]
(情報処理システムSの構成)
図1は、実施形態に係る情報処理システムSの構成を示す図である。情報処理システムSは、1つ以上のユーザ環境に配置された1つ以上のサーバ1と、異なる地域に位置する複数の拠点2にそれぞれ設置された複数のノード21とがネットワークNを介して相互に接続されて構成される。
【0018】
サーバ1は、ユーザ端末(不図示)から入力されたユーザリクエストをネットワークNを介してノード21に送信する。また、サーバ1は、ネットワークNを介して受信したユーザリクエストに対するノード21からの応答を、ユーザ端末を介してユーザに提示する。
【0019】
各拠点2内のノード21は、バックエンドのLAN(Local Area Network)で接続されたマルチノードシステムを構成する。各拠点2内のストレージ22(本実施形態では4つ)は、記憶領域の一例としてのオブジェクトストレージであり、各ノード21とSAN(Storage Area Network)を介して接続される。同一の拠点2内の複数のノード21と複数のストレージ22は、計算機システム1Sを構成する。本実施形態では、ノード21-j(j=1,2,…,4)にストレージ22-jがそれぞれ対応する。
【0020】
なお、サーバ1、ノード21、及びストレージ22は、オンプレミス及びクラウドの何れでもよい。また、サーバ1、拠点2、ノード21、及びストレージ22の数は、図示のものに限られない。また、ノード21とストレージ22との対応関係は、1対1に限られない。
【0021】
各ノード21は、本実施形態に関連する機能部として、リクエスト管理部211、サービス管理部212、メタデータ管理部213、ストレージ管理部(記憶領域管理部)214、及びDB(Data Base)215を有する。ノード21のその他の機能は、説明を省略する。
【0022】
リクエスト管理部211は、サーバ1からのI/O等のユーザリクエストを受け付け、受け付けたユーザリクエストを処理する同一の拠点2内のノード21を決定し、決定したノード21へユーザリクエストを転送する。
【0023】
サービス管理部212は、ユーザによって実データに付与されたカスタムメタデータの匿名化を実行する。実データは、ユーザによってストレージ22に格納されるデータ本体であり、データの種類及び形式は問わない。
【0024】
メタデータ管理部213は、実データにシステム的に付与されたメタデータを、BD215に格納して管理する。また、メタデータ管理部213は、カスタムメタデータを匿名化した匿名化カスタムメタデータにシステム的に付与されたメタデータを、BD215に格納して管理する。メタデータを管理するBD215内のメタデータ管理情報215Tは、
図6を参照して後述する。
【0025】
ストレージ管理部214は、実データ、カスタムメタデータ、及びメタデータを含んだオブジェクトを、ストレージ22に格納する。また、ストレージ管理部214は、匿名化カスタムメタデータ及びメタデータを含んだオブジェクトを、ストレージ22に格納する。
【0026】
ここで、
図1に示すように、実データ101A、実データ101Aのカスタムメタデータ102A、及び第1メタデータ103Aを含むオブジェクトを第1オブジェクト100Aと呼ぶ。第1メタデータ103Aは、実データ101Aに付与されるメタデータである。
【0027】
また、実データ101Aのダミーデータ101B、カスタムメタデータ102Aを匿名化した匿名化カスタムメタデータ102B、及び第2メタデータ103Bを含むオブジェクトを第2オブジェクト100Bと呼ぶ。第2メタデータ103Bは、匿名化カスタムメタデータ102Bに付与されるメタデータである。ダミーデータ101Bは、空データでも、存在しないデータを仮想的に表現したものでもよい。
【0028】
ストレージ管理部214は、第1オブジェクト100A及び第2オブジェクト100Bの格納を指示されると、自身が管理するストレージ22に第1オブジェクト100A及び第2オブジェクト100Bを格納する。
【0029】
(オブジェクトストレージのリージョン)
図2は、オブジェクトストレージのリージョンの説明図である。
図3は、リージョンマップ2151を示す図である。
【0030】
本実施形態では、同一の拠点2内の全てのノード21のDB215の記憶領域の全領域を所定数(本実施形態では32)に分割したリージョンに第1メタデータ103A及び第2メタデータ103Bを格納して管理する。各リージョンは、正系リージョンと、正系リージョンとは異なるノード21に配置された副系リージョンとを含む。リージョンマップ2151は、リージョン番号で識別される各リージョンの正系リージョンと副系リージョンが配置されるノード21を示す情報である。
【0031】
第1メタデータ103Aは、対となる正系リージョンと副系リージョンにそれぞれ格納される。第1メタデータ103Aが格納されるリージョン(リージョン番号)は、ユーザ指定の格納先のパス情報に基づいて算出されるハッシュ値によって決定される。第1メタデータ103Aは、決定されたリージョン番号とリージョンマップ2151とに基づいて、正系リージョン及び副系リージョンが位置するノード21が特定される。そして、第1メタデータ103Aは、特定された各ノード21のDB215の正系リージョン及び副系リージョンにそれぞれ格納される。
【0032】
なお、第1メタデータ103A及び第2メタデータ103Bの管理には、リージョンを用いた管理方法に限らず、種々の管理方法が採用できる。
【0033】
(データ格納時処理)
図4は、実施形態に係るオブジェクト格納時処理を示すシーケンス図である。
図4は、拠点2-1内において、第1メタデータ103Aが、ノード21-2(ノード#2)を正系リージョン、ノード21-3(ノード#3)を副系リージョンとしてそれぞれのDB215に格納される例を示す。また、第1オブジェクト100Aが、ノード21-3(ノード#3)に対応するストレージ22-3に格納される例を示す。
【0034】
先ずステップS11では、ノード21-1のリクエスト管理部211は、サーバ1から、格納リクエストと共に実データ101Aと実データ101Aのカスタムメタデータ102A(
図1)を受信する。各種リクエストの送信先のノード21は、DNS(Domain Name System)ラウンドロビン等の負荷分散手法を用いて決定される。
【0035】
次にステップS12では、ノード21-1のリクエスト管理部211は、ステップS11で受信した実データ101A及びカスタムメタデータ102Aを含む第1オブジェクト100Aの第1メタデータ103Aを作成する。第1メタデータ103Aは、実データ101Aの作成者(ユーザ名)、作成日、更新日、格納先情報、サイズ、実データ101Aのハッシュ値、及びその他の情報を含む。
【0036】
ここでメタデータ103(第1メタデータ103A、第2メタデータ103B)について説明する。
図5は、実施形態に係るメタデータ103の構成を示す図である。メタデータ103は、一例として、EF(External Files)、IF(Internal Files)、ECM(External Custom Metadata)、ICM(Internal Custom Metadata)、Masking、MCM(Masked Custom Metadata)、及びReplicationを項目として含む。これらのうちEF、IF、及びReplicationが従来と同様の項目であり、ECM、ICM、Masking、及びMCMが本実施形態で追加された項目である。
【0037】
ECMは、ユーザが指定可能なパスであり、EFのパス値にカスタムメタデータ102Aのファイル名を追加したものとなる。ICMは、カスタムメタデータ102Aを内部で管理するパスである。ICMは、カスタムメタデータ102Aを含んだオブジェクトのストレージ22への初回の格納時には、IFのパス値にカスタムメタデータ102Aのファイル名を追加したものとなる。また、ICMは、カスタムメタデータ102A又は匿名化カスタムメタデータ102Bを含んだオブジェクトのストレージ22への2回目以降の格納時には、オブジェクトのオブジェクトIDにカスタムメタデータ102Aのファイル名を追加したものとなる。
【0038】
Maskingは、カスタムメタデータ102Aの匿名化処理を行うかどうかのフラグであり、ユーザによって設定される。MCMは、カスタムメタデータ102Aが匿名化された匿名化カスタムメタデータ102Bを内部で管理するパスである。MCMは、カスタムメタデータ102Aを含んだオブジェクトのストレージ22への初回の格納時には、匿名化カスタムメタデータ102Bが存在しないので“null”となる。また、MCMは、カスタムメタデータ102A又は匿名化カスタムメタデータ102Bを含んだオブジェクトのストレージ22への2回目以降の格納時には、匿名化カスタムメタデータ102BのICMの値と同一となる。
【0039】
図4の説明に戻る。次にステップS13では、ノード21-1のリクエスト管理部211は、ユーザ指定のデータ格納パスEF(
図5)のハッシュ値を算出し、ステップS11で受信した実データ101Aの格納先のDB215のリージョンを決定する。次にステップS14では、ノード21-1のリクエスト管理部211は、ステップS13で決定した格納先のDB215の正系リージョン及び副系リージョンを有する各ノード21に、第1メタデータ103Aを送信する。ここでは、第1メタデータ103Aの格納先のリージョン2の正系リージョンはノード21-2(ノード#2)に存在し、副系リージョンはノード21-3(ノード#3)に存在するとする。
【0040】
次にステップS15では、ノード21-2のメタデータ管理部213は、ノード21-1から受信した第1メタデータ103Aを、自ノードのDB215の指定された正系リージョンのメタデータ管理情報215Tに追加する。ステップS16では、ノード21-3のメタデータ管理部213は、ステップS15と同様に、ノード21-1から受信した第1メタデータ103Aを、自ノードのDB215の指定された副系リージョンのメタデータ管理情報215Tに追加する。
【0041】
ここでメタデータ管理情報215Tについて説明する。
図6は、メタデータ管理情報215Tを示す図である。
図6に示すように、レコード215T1は、ステップS15で正系リージョンのメタデータ管理情報215Tに追加される第1メタデータ103Aのレコードである。
【0042】
レコード215T1は、第1メタデータ103Aを含む第1オブジェクト100Aである“ObjectA”の各項目値としてEF“/dirA/dirB/fileA”,IF“node#2:/ObjectA/fileA”,…,ECM“/dirA/dirB/metadata.xml”,ICM“node#2:/ObjectA/metadata.xml”,…,Masking“true”,MCM“node#2:/ObjectB/metadata.xml”,…Replication“Site#2:/node#3:/ObjectC/fileA”を含む。
【0043】
次にステップS17では、ノード21-1のリクエスト管理部211は、各ノード21のストレージ22の空き容量を算出し、第1オブジェクト100A(ObjectA)を格納するストレージ22を決定する。ここでは、ノード21-3(ノード#3)のストレージ22-3が格納先として決定されたとする。
【0044】
次にステップS18では、ノード21-1のリクエスト管理部211は、ステップS17で決定した格納先のストレージ22-3の担当ノード(ノード21-3)に、第1オブジェクト100Aを送信する。
【0045】
次にステップS19では、ノード21-3のストレージ管理部214は、受信した第1オブジェクト100Aをストレージ22-3に格納する。
【0046】
(実施形態に係るカスタムメタデータ匿名化処理)
図7は、実施形態に係るカスタムメタデータ匿名化処理を示すシーケンス図である。
図7は、オブジェクト格納時処理のステップS19でストレージ22-3に格納後の第1オブジェクト100Aについて実行されるカスタムメタデータ匿名化処理の例を示す。
【0047】
カスタムメタデータ匿名化処理は、第1オブジェクト100Aのオブジェクト格納時処理(
図4)の後に、複数のノード21が連携して実行される。
【0048】
先ずステップS21では、ノード21-1のサービス管理部212は、第1オブジェクト100Aの第1メタデータ103Aを管理するリージョンを有するノード21-2,21-3に、第2メタデータ103Bのレコード作成依頼を送信する。ここでノード21-1は、リソース(CPUとメモリ)に余裕があり、第2オブジェクト100Bの第2メタデータ103Bのレコード作成依頼を出す余力があるとして選択されたノード21である。
【0049】
次にステップS22では、ノード21-2のメタデータ管理部213は、自ノードのメタデータ管理情報215Tにおいて、第1オブジェクト100A(ObjectA)の第1メタデータ103Aを基に第2オブジェクト100Bの第2メタデータ103Bを作成する。そして、メタデータ管理部213は、作成した第2メタデータ103Bのレコードを、自ノードのメタデータ管理情報215Tに追加する。
【0050】
例えば
図6に例示するように、レコード215T2は、正系リージョンであるリージョン2のメタデータ管理情報215Tにおいて、第1メタデータ103Aのレコード215T1を基に追加された第2メタデータ103Bのレコードである。第1メタデータ103Aのレコード215T1のMaskingが“true”、MCMが“null”の場合、レコード215T1を基にして、匿名化カスタムメタデータ102Bを管理する第2メタデータ103Bのレコード215T2が同一のリージョン2に追加される。この時、“ObjectB”の実データの内部パスIFに、“ObjectA”の実データの内部パスIFと同一値が設定される。また、“ObjectA”のMCMに、“ObjectB”のICMと同一値が設定される。
【0051】
ステップS23では、ノード21-3のメタデータ管理部213は、自ノードのメタデータ管理情報215Tにおいて、第1オブジェクト100A“ObjectA”の第1メタデータ103Aを基に第2オブジェクト100Bの第2メタデータ103Bを作成する。そして、メタデータ管理部213は、作成した第2メタデータ103Bのレコードを、自ノードのメタデータ管理情報215Tに追加する。
【0052】
次にステップS24では、ノード21-2のメタデータ管理部213は、第1オブジェクト100A(ObjectA)のカスタムメタデータ102Aの格納先を示すICMと、第2オブジェクト100B(ObjectB)の第2メタデータ103Bを、依頼元のノード21-1のサービス管理部212に送信する。
【0053】
次にステップS25では、ノード21-1のサービス管理部212は、第1オブジェクト100A(ObjectA)のカスタムメタデータ102Aが格納されているストレージ22-3を管理するノード21-3に、カスタムメタデータ102Aの取得を依頼する。
【0054】
次にステップS26では、ノード21-3のストレージ管理部214は、第1オブジェクト100A(ObjectA)のカスタムメタデータ102Aを、ストレージ22-3から取得し、ノード21-1のサービス管理部212に送信する。
【0055】
次にステップS27では、ノード21-1のサービス管理部212は、ノード21-3から受信した第1オブジェクト100A(ObjectA)のカスタムメタデータ102Aを匿名化した匿名化カスタムメタデータ102Bを作成する。匿名化は、例えばカスタムメタデータ102が個人情報を含む場合、個人を特定できないレベルまで情報の少なくとも一部を削除したり置き換えたりするように、詳細の特定が不可能になるまで情報を加工する処理である。なお、本実施形態では、カスタムメタデータ102Aの情報保護の手法として匿名化を例に説明するが、匿名化に限られず、秘匿化やその他の情報保護処理の手法を採用することもできる。
【0056】
次にステップS28では、ノード21-1のサービス管理部212は、匿名化カスタムメタデータ102Bの格納先のストレージ22を決定する。ここでは空き容量に基づいて、ストレージ22-4が格納先と決定されたとする。次にステップS29では、ノード21-1のサービス管理部212は、ステップS28で決定したストレージ22-4の担当のノード21-4に、第2メタデータ103Bと匿名化カスタムメタデータ102Bとを含んだ第2オブジェクト100Bを送信する。
【0057】
次にステップS30では、ノード21-4のストレージ管理部214は、受信した第2オブジェクト100Bを、ストレージ22-4に格納する。
【0058】
(データアクセス処理)
図8は、実施形態に係るデータアクセス処理を示すシーケンス図である。
図8は、サーバ1からデータ参照リクエストを行ったユーザのカスタムメタデータの参照権限に応じて、実データ101Aとカスタムメタデータ102Aを応答するか、実データ101Aと匿名化カスタムメタデータ102Bを応答するかを切り替える例を示す。
【0059】
データアクセス処理の実行に先立って、第1オブジェクト100A、実データ101A、又はカスタムメタデータ102A毎にユーザのデータ参照権限の有無が予め定義され、各ノード21内に保存されているものとする。また、データアクセス処理の実行に先立って、
図7に示すカスタムメタデータ匿名化処理が実行済みで、拠点2-1内のストレージ22-3に第1オブジェクト100Aが格納済みであり、ストレージ22-4に第2オブジェクト100Bが格納済みであるとする。
【0060】
先ずステップS31では、ノード21-1のリクエスト管理部211は、サーバ1からユーザによる第1オブジェクト100Aの参照リクエストを受信する。ノード21-1は、DNSラウンドロビン等の負荷分散方法によって、参照リクエストを受信するノード21と決定されたものである。
【0061】
次にステップS32では、ノード21-1のリクエスト管理部211は、ユーザから指定されたパス(EF)のハッシュ値に基づいて参照対象の第1オブジェクト100Aの第1メタデータ103Aが管理されるリージョンを決定する。そして、リクエスト管理部211は、決定したリージョンとリージョンマップ2151に基づいて正系リージョンを管理するノード21を特定する。ここではノード21-2が特定されたとする。
【0062】
次にステップS33では、ノード21-1のリクエスト管理部211は、ステップS32で特定したノード21-2に対して、メタデータ管理情報215Tに登録されている第1オブジェクト100Aの第1メタデータ103Aの情報要求を送信する。
【0063】
次にステップS34では、ノード21-2のメタデータ管理部213は、メタデータ管理情報215Tに登録されている第1オブジェクト100Aの第1メタデータ103Aの情報をノード21-1に送信する。
【0064】
次にステップS35では、ノード21-2のメタデータ管理部213は、ステップS34で送信された第1メタデータ103Aの情報に基づいて、第1オブジェクト100Aを保存するノード21-3に、第1オブジェクト100Aの取得・送信を依頼する。ここでは第1オブジェクト100Aを保存するノード21-3は、ステップS34で送信された第1メタデータ103Aの情報に基づいて特定されたとする。
【0065】
次にステップS36では、ノード21-3のストレージ管理部214は、取得・送信依頼された第1オブジェクト100Aを、ストレージ22-3から取得し、ノード21-1に送信する。
【0066】
次にステップS37では、ノード21-1のリクエスト管理部211は、ステップS31で参照リクエストを送信したユーザが、ステップS36で送信された第1オブジェクト100Aの参照権限を有するかを判定する。リクエスト管理部211は、ステップS31で参照リクエストを送信したユーザが第1オブジェクト100Aの参照権限を有する場合(ステップS37YES)にステップS38に処理を移し、有さない場合(ステップS37NO)にステップS39に処理を移す。
【0067】
ステップS38では、ノード21-1のリクエスト管理部211は、ノード21-3から受信した第1オブジェクト100Aに含まれる実データ101A及び匿名化カスタムメタデータ102Bを、サーバ1に対して応答する。
【0068】
一方ステップS39では、ノード21-1のリクエスト管理部211は、ステップS32で特定したノード21-2に対して、メタデータ管理情報215Tにおいて第1オブジェクト100Aの第1メタデータ103Aに関連付けられている第2オブジェクト100Bの第2メタデータ103Bの情報要求を送信する。
【0069】
次にステップS40では、ノード21-2のメタデータ管理部213は、メタデータ管理情報215Tに登録されている第2オブジェクト100Bの第2メタデータ103Bの情報をノード21-1に送信する。
【0070】
次にステップS41では、ノード21-2のメタデータ管理部213は、ステップS40で送信された第2メタデータ103Bの情報に基づいて、第2オブジェクト100Bを保存するノード21-4に、第2オブジェクト100Bの取得・送信を依頼する。ここでは第2オブジェクト100Bを保存するノード21-4は、ステップS40で送信された第2メタデータ103Bの情報に基づいて特定されたとする。
【0071】
次にステップS42では、ノード21-4のストレージ管理部214は、取得・送信依頼された第2オブジェクト100Bを、ストレージ22-4から取得し、ノード21-1に送信する。
【0072】
次にステップS43では、ノード21-1のリクエスト管理部211は、ノード21-4から受信した第2オブジェクト100Bに含まれる匿名化カスタムメタデータ102Bを、既に取得済みの第1オブジェクト100Aに含まれる実データ101Aと共に、サーバ1に対して応答する。
【0073】
(オブジェクト更新処理)
オブジェクト(オブジェクト内の実データ)の更新処理は、オブジェクトストレージの世代管理機能(Versioning)を有効にしているか無効にしているかで動作が異なる。以下、Versioning無効時とVersioning有効時とを分けて説明する。
【0074】
(Versioning無効時のオブジェクト更新処理)
図9Aは、実施形態に係るオブジェクト更新処理(Versioning無効時)を示すシーケンス図である。
図9Aは、Versioning無効時に、サーバ1からユーザによって行われた実データ101Aの更新リクエストに応じて、実データ101Aを更新用の実データで更新する例を示す。オブジェクト更新処理(Versioning無効時)の実行に先立って、拠点2-1内のストレージ22-3に第1オブジェクト100Aが、ストレージ22-4に第2オブジェクト100Bがそれぞれ格納済みであるとする。
【0075】
先ずステップS51では、ノード21-1のリクエスト管理部211は、サーバ1からユーザによる第1オブジェクト100Aに含まれる実データ101Aの更新リクエストを受信する。ノード21-1は、DNSラウンドロビン等の負荷分散方法によって、更新リクエストを受信すると決定されたノード21である。
【0076】
次にステップS52では、ノード21-1のリクエスト管理部211は、ユーザから指定されたパス(EF)のハッシュ値に基づいて更新対象の第1オブジェクト100Aの第1メタデータ103Aが管理されるリージョンを決定する。そして、リクエスト管理部211は、決定したリージョンとリージョンマップ2151に基づいて正系リージョンを管理するノード21を特定する。ここではノード21-2が特定されたとする。
【0077】
次にステップS53では、ノード21-1のリクエスト管理部211は、ステップS52で特定したノード21-2に対して、メタデータ管理情報215Tに登録されている第1オブジェクト100Aの第1メタデータ103Aの情報要求を送信する。
【0078】
次にステップS54では、ノード21-2のメタデータ管理部213は、メタデータ管理情報215Tに登録されている第1オブジェクト100Aの第1メタデータ103Aの情報をノード21-1に送信する。
【0079】
次にステップS55では、ノード21-2のメタデータ管理部213は、ステップS54で送信された第1メタデータ103Aの情報に基づいて、第1オブジェクト100Aを格納するノード21-3に、第1オブジェクト100Aに含まれる実データ101Aの更新依頼を送信する。ここでは第1オブジェクト100Aを格納するノード21-3は、ステップS54で送信された第1メタデータ103Aの情報に基づいて特定されたとする。
【0080】
次にステップS56では、ノード21-3のストレージ管理部214は、ストレージ22-3に格納されている更新依頼された第1オブジェクト100Aに含まれる実データ101Aを、更新用の実データで更新する。
【0081】
(Versioning有効時のオブジェクト更新処理)
図9Bは、実施形態に係るオブジェクト更新処理(Versioning有効時)を示すシーケンス図である。
図9Bは、Versioning有効時に、サーバ1からユーザによって行われた実データ101Aの更新リクエストに応じて、世代管理可能に実データ101Aを更新する(すなわち更新前の実データ101Aと更新用の実データとの両方を保存する)例を示す。オブジェクト更新処理(Versioning有効時)の実行に先立って、拠点2-1内のストレージ22-3に第1オブジェクト100Aが、ストレージ22-4に第2オブジェクト100Bがそれぞれ格納済みであるとする。
【0082】
図9BのステップS51B~S53Bは、
図9AのステップS51~S53と同様である。
【0083】
ステップS54Bでは、ノード21-2のメタデータ管理部213は、ノード21-2内のメタデータ管理情報215Tに登録されている第2オブジェクト100Bの情報のECMを“null”にする。次にステップS55Bでは、ノード21-2のメタデータ管理部213は、ノード21-2内のメタデータ管理情報215Tに登録されている第1オブジェクト100Aの情報のEFとECMを“null”にする。
【0084】
次にステップS56Bでは、ノード21-1,21-2,21-3,21-4は、実データ101Aの更新用の実データとカスタムメタデータを含む第3オブジェクトについてオブジェクト格納時処理(
図4)を実行する。ステップS56Bの実行によって、何れかのストレージ22に第3オブジェクトが格納される。
【0085】
次にステップS57Bでは、ノード21-1,21-2,21-3,21-4は、実データ101Aの更新用の実データとカスタムメタデータと第3メタデータとを含む第3オブジェクトについてカスタムメタデータ匿名化処理(
図7)を実行する。ステップS57Bの実行によって、何れかのストレージ22に、第3オブジェクトのカスタムメタデータを匿名化した匿名化カスタムメタデータと第4メタデータとを含む第4オブジェクトが格納される。
【0086】
このように、更新前の第1オブジェクト100Aと第2オブジェクト100Bはそのまま保持され、実データ101Aの更新毎にオブジェクトが追加され履歴として記録されていくので、更新毎にオブジェクトの世代管理ができる。
【0087】
(オブジェクト削除処理)
図10は、オブジェクト削除処理を示すシーケンス図である。
図10では、サーバ1から受け付けたユーザによるオブジェクトの削除リクエストに応じて、第1メタデータ103A、第2メタデータ103B、第1オブジェクト100A、及び第2オブジェクト100Bを削除する例を示す。
【0088】
先ずステップS61では、ノード21-1のリクエスト管理部211は、サーバ1からユーザによる第1オブジェクト100Aの削除リクエストを受信する。ノード21-1は、DNSラウンドロビン等の負荷分散方法によって、削除リクエストを受信すると決定されたノードである。
【0089】
次にステップS62では、ノード21-1のリクエスト管理部211は、ユーザから指定されたパス(EF)のハッシュ値に基づいて削除対象の第1オブジェクト100Aの第1メタデータ103Aが管理されるリージョンを決定する。そしてリクエスト管理部211は、決定したリージョンとリージョンマップ2151に基づいて正系リージョンを管理するノード21を特定する。ここではノード21-2が特定されたとする。
【0090】
次にステップS63では、ノード21-1のリクエスト管理部211は、ステップS62で特定したノード21-2に対して、メタデータ管理情報215Tに登録されている第1オブジェクト100Aの第1メタデータ103Aの情報の確認要求を送信する。
【0091】
次にステップS64では、ノード21-2のメタデータ管理部213は、メタデータ管理情報215Tにおいて、第1オブジェクト100Aの第1メタデータ103Aに紐付く第2オブジェクト100Bの第2メタデータ103Bの存在を確認する。すなわち、第1メタデータ103AのMaskingが“true”の場合、同一リージョン内のメタデータ管理情報215Tにおいて、第1メタデータ103AのMCMと同一パス値を持つICMを持つ第2メタデータ103Bの削除を開始する。
【0092】
次にステップS65では、ノード21-2のメタデータ管理部213は、ステップS64で削除開始した第2オブジェクト100Bの第2メタデータ103Bの情報を、ノード21-1のリクエスト管理部211に送信する。
【0093】
次にステップS66では、ノード21-2のメタデータ管理部213は、ステップS65で第2メタデータ103Bの情報が送信された第2オブジェクト100Bを格納するノード21-4に、第2オブジェクト100Bの削除を依頼する。ここでは第2オブジェクト100Bを格納するノード21-4は、ステップS65で送信された第2メタデータ103Bの情報に基づいて特定されたとする。
【0094】
次にステップS67では、ノード21-4のストレージ管理部214は、削除依頼された第2オブジェクト100Bを、ストレージ22-4から削除する。
【0095】
次にステップS68では、ノード21-1のリクエスト管理部211は、第2オブジェクト100Bの削除完了を、ノード21-2のメタデータ管理部213に通知する。
【0096】
次にステップS69では、ノード21-2のメタデータ管理部213は、メタデータ管理情報215Tにおいて、第2オブジェクト100Bの第2メタデータ103Bのレコードを削除する。そしてメタデータ管理部213は、第1オブジェクト100Aの第1メタデータ103AのMaskingを“false”、MCMを“null”して第1メタデータ103Aの削除を開始する。
【0097】
次にステップS70では、ノード21-2のメタデータ管理部213は、ステップS69で削除開始した第1オブジェクト100Aの第1メタデータ103Aの情報を、ノード21-1のリクエスト管理部211に送信する。
【0098】
次にステップS71では、ノード21-1のリクエスト管理部211は、ステップS70で第1メタデータ103Aの情報が送信された第1オブジェクト100Aを格納するノード21-3に、第1オブジェクト100Aの削除を依頼する。ここでは第1オブジェクト100Aを格納するノード21-3は、ステップS70で送信された第1メタデータ103Aの情報に基づいて特定されたとする。
【0099】
次にステップS72では、ノード21-3のストレージ管理部214は、削除依頼された第1オブジェクト100Aを、ストレージ22-3から削除する。
【0100】
次にステップS73では、ノード21-1のリクエスト管理部211は、第1オブジェクト100Aの削除完了を、ノード21-2のメタデータ管理部213に通知する。次にステップS74では、ノード21-2のメタデータ管理部213は、メタデータ管理情報215Tにおいて、第1オブジェクト100Aの第1メタデータ103Aのレコードを削除する。
【0101】
(データ破損時処理)
図11は、データ破損時処理を示すシーケンス図である。データ破損時処理は、ユーザがサーバ1を介して参照しようとした第1オブジェクト100Aがデータ破損していた場合の処理を示す。
図11では、参照対象の第1オブジェクト100Aの第1メタデータ103Aが管理される正系リージョンはノード21-2に存在し、第1オブジェクト100Aはノード21-3のストレージ22-3に格納されているとする。また、第1オブジェクト100Aの複製である第1オブジェクト(複製オブジェクト)100Cが、レプリケーション先の拠点2-2に構築された正環境のレプリケーション環境に保存されている(
図1参照)。
【0102】
そして正環境である拠点2-1のストレージ22-3に格納されている第1オブジェクト100Aが読み出された際に破損していた場合、副環境の拠点2-2のストレージ22-3に格納されている第1オブジェクト100Cが取得される。また、第1メタデータ103Aは、第1オブジェクト100Aのハッシュ値を予め保持しているものとする。
【0103】
先ずステップS81では、ノード21-1のリクエスト管理部211は、サーバ1から受信したユーザの参照リクエストで指定されたパス(EF)のハッシュ値に基づいて参照対象の第1オブジェクト100Aの第1メタデータ103Aが管理されるリージョンを決定する。そして、リクエスト管理部211は、決定したリージョンとリージョンマップ2151に基づいて正系リージョンを管理するノード21-2を特定する。ここではノード21-2が特定されたとする。そしてリクエスト管理部211は、特定したノード21-2に対して、第1オブジェクト100Aの第1メタデータ103Aの情報要求を送信する。
【0104】
次にステップS82では、ノード21-2のメタデータ管理部213は、ノード21-2のDB215から要求対象の第1オブジェクト100A(ObjectA)の第1メタデータ103Aの情報を読み込み、ノード21-1のリクエスト管理部211に送信する。
【0105】
次にステップS83では、ノード21-1のリクエスト管理部211は、第1オブジェクト100A(ObjectA)が保存されたストレージ22-3に接続されたノード21-3に第1オブジェクト100A(ObjectA)の取得を依頼する。ここでは第1オブジェクト100A(ObjectA)を格納するノード21-3は、ステップS82で送信された第1メタデータ103Aの情報に基づいて特定されたとする。
【0106】
次にステップS84では、ノード21-3のストレージ管理部214は、ストレージ22-3から第1オブジェクト100A(ObjectA)を取得し、ノード21-1のリクエスト管理部211に送信する。
【0107】
次にステップS85では、ノード21-1のリクエスト管理部211は、ステップS84で送信された第1オブジェクト100Aのハッシュ値を算出する。そしてリクエスト管理部211は、ステップS82で送信された第1メタデータ103Aに保持されている第1オブジェクト100A(ObjectA)のハッシュ値と、算出した第1オブジェクト100Aのハッシュ値とを比較する。そしてリクエスト管理部211は、第1メタデータ103Aに保持されている第1オブジェクト100Aのハッシュ値と、算出したハッシュ値が異なる(異常である)場合(ステップS85YES)にステップS86に処理を移す。一方、リクエスト管理部211は、一致する(正常である)場合(ステップS85NO)に、サーバ1に、第1オブジェクト100Aを以って応答し、本データ破損時処理を終了する。
【0108】
ステップS86では、ノード21-1のリクエスト管理部211は、第1メタデータ103Aを参照し、第1オブジェクト100A(ObjectA)の複製である第1オブジェクト100C(ObjectC)が管理されるレプリケーション環境のリージョンを確認する。そして、リクエスト管理部211は、レプリケーション環境(拠点2-1)の第1オブジェクト100C(ObjectC)が管理されるリージョンに、拠点間接続にて接続する。
【0109】
次にステップS87では、拠点2-2において、ノード21-1のリクエスト管理部211は、ユーザから指定されたパス(EF)のハッシュ値に基づいて接続対象の第1オブジェクト100Cの第1メタデータ103Cが管理されるリージョンを決定する。ノード21-1は、DNSラウンドロビン等の負荷分散手法を用いて決定されたノード21である。そして、ノード21-1のリクエスト管理部211は、決定したリージョンとリージョンマップ2151に基づいて正系リージョンを管理するノード21-2を特定する。ここではノード21-2が特定されたとする。そして拠点2-2のノード21-1のリクエスト管理部211は、特定したノード21-2に対して、第1オブジェクト100Cの第1メタデータ103Cの情報要求を送信する。
【0110】
次にステップS88では、拠点2-2において、ノード21-2のメタデータ管理部213は、ノード21-2のDB215から情報要求対象の第1オブジェクト100C(ObjectC)の第1メタデータ103Cの情報を読み込む。メタデータ管理部213は、第1メタデータ103Cの情報をノード21-1のリクエスト管理部211に送信する。
【0111】
次にステップS89では、ノード21-1のリクエスト管理部211は、第1オブジェクト100C(ObjectC)が格納されたストレージ22-3に接続されたノード21-3に第1オブジェクト100C(ObjectC)の取得を依頼する。ここでは第1オブジェクト100C(ObjectC)を格納するノード21-3は、ステップS88で送信された第1メタデータ103Cの情報に基づいて特定されたとする。
【0112】
次にステップS90では、ノード21-3のストレージ管理部214は、ストレージ22-3から第1オブジェクト100C(ObjectC)を取得し、ノード21-1のリクエスト管理部211に送信する。
【0113】
次にステップS91では、ノード21-1のリクエスト管理部211は、ストレージ22-3が接続されるノード21-3から受信した第1オブジェクト100C(ObjectC)を、要求元である拠点2-1のノード21-1のリクエスト管理部211に転送する。拠点2-1のノード21-1のリクエスト管理部211は、第1オブジェクト100A(ObjectA)の代替として、拠点2-2のノード21-1のリクエスト管理部211から受信した第1オブジェクト100C(ObjectC)を以ってサーバ1に応答する。
【0114】
このようにカスタムメタデータ102Aの匿名化を行っても、従来のオブジェクトストレージと同様に、レプリケーション機能を利用することができる。
【0115】
(実施形態の効果)
上述の実施形態では、第1オブジェクト100Aのみで実データ101Aを管理し、匿名化カスタムメタデータ102Bを含む第2オブジェクト100Bは第1オブジェクト100Aの実データを参照させる。よって、カスタムメタデータの匿名化前の第1オブジェクト100Aの更新と同時に、カスタムメタデータの匿名化後の第2オブジェクト100Bにもこの更新を反映させることができ、データ管理を複雑化することなく行うことができる。また、匿名化カスタムメタデータ102Bを含む第2オブジェクト100Bを第1オブジェクト100Aから独立して管理するため、第2オブジェクト100Bを削除することで、匿名化カスタムメタデータ102Bのみを削除することができる。
【0116】
また、第1メタデータ103A及び第2メタデータ103Bの管理を同一のリージョンのメタデータ管理情報215Tで行うことで、第1オブジェクト100A及び第2オブジェクト100Bの各メタデータで相互の情報を検索できる。また、メタデータ103に“Masking”のフラグを持たせ、第1オブジェクト100Aの更新の際、メタデータ103を管理するメタデータ管理情報215Tを参照することで、第1オブジェクト100Aと連携する第2オブジェクト100Bの更新処理を行うことができる。
【0117】
また、オブジェクト更新処理の実行後に、第2オブジェクト100Bの更新が実行される際、メタデータ管理情報215Tにおいて第2オブジェクト100Bの新たな第2メタデータ103Bを管理するレコードが追記されていく。このように、更新前の第2メタデータ103Bの履歴が記録されるので、第1オブジェクト100A及び第2オブジェクト100Bの世代管理が行える。このように、実施形態では、従来のオブジェクトストレージの機能(Versioningやレプリケーションなど)を利用することができる。
【0118】
(実施形態の変形例)
図12は、実施形態の変形例の説明図である。上述の実施形態では、匿名化カスタムメタデータ102Bを、ダミーデータ101Bと第2メタデータ103Bを含む第2オブジェクト100Bに含めて、第1メタデータ103Aを含む第1オブジェクト100Aとは異なるオブジェクトで管理するとした。
【0119】
しかし匿名化カスタムメタデータ102Bの管理方法は、実施形態のものに限られない。すなわち変形例1として、匿名化カスタムメタデータ102Bを、実データ101Aと第2メタデータ103Bと共に第2オブジェクト100Bに含めて、第1オブジェクト100Aとは異なるオブジェクトで管理してもよい。
【0120】
変形例1では、実施形態で説明したカスタムメタデータ匿名化処理(
図7)と比較して、次の点が異なる。すなわち、第2オブジェクト100Bの第2メタデータ103Bの作成の際に、実データ101Aの参照パスとして、第1オブジェクト100Aの格納パスを第2メタデータ103Bに含めない。また、カスタムメタデータ匿名化処理において、第2オブジェクト100Bをストレージ22に格納する際に、第2オブジェクト100Bに実データ101Aを含める。
【0121】
また、変形例1では、実施形態で説明したデータアクセス処理(
図8)と比較して、次の点が異なる。すなわち、サーバ1からの参照リクエストに対して、ユーザがカスタムメタデータ102Aの参照権限を有する場合に、第1オブジェクト100Aを取得して第1オブジェクト100Aの実データ101A及びカスタムメタデータ102Aをサーバ1に応答する。一方、サーバ1からの参照リクエストに対して、ユーザがカスタムメタデータ102Aの参照権限を有さない場合に、第2オブジェクト100Bを取得して第2オブジェクト100Bの実データ101A及び匿名化カスタムメタデータ102Bをサーバ1に応答する。
【0122】
また、変形例1では、実施形態で説明したオブジェクト更新処理(
図9A及び
図9B)と比較して、次の点が異なる。すなわち、実データ101Aの更新の際には、第1オブジェクト100A及び第2オブジェクト100Bの両方に対して更新を反映する。
【0123】
また、変形例1では、実施形態で説明したデータ破損時処理(
図11)と異なり、第1オブジェクト100Aの破損の際に、実データ101Aを、第1オブジェクト100Aが格納される拠点2内に格納される第2オブジェクト100Bから取得してもよい。
【0124】
以上の差異以外は、変形例1における処理は実施形態と同様である。
【0125】
または変形例2として、匿名化カスタムメタデータ102Bを、実データ101A、カスタムメタデータ102A、及び第1メタデータ103Aと同じ第1オブジェクト100Aに追加して管理してもよい。
【0126】
変形例2では、実施形態で説明したカスタムメタデータ匿名化処理(
図7)と比較して、次の点が異なる。すなわち、第2オブジェクト100Bを作成せず、匿名化カスタムメタデータ102Bを、第1オブジェクト100Aに追加する。
【0127】
また、変形例2では、実施形態で説明したデータアクセス処理(
図8)と比較して、次の点が異なる。すなわち、サーバ1からの参照リクエストに対して、ユーザがカスタムメタデータ102Aの参照権限を有さない場合に、第1オブジェクト100Aの実データ101A及び匿名化カスタムメタデータ102Bをサーバ1に応答する。
【0128】
また、変形例2では、実施形態で説明したオブジェクト削除処理(
図10)と比較して、第2オブジェクト100Bは存在しないので第2オブジェクト100Bの削除処理は行われず、第1オブジェクト100Aの削除処理のみが行われる。
【0129】
以上の差異以外は、変形例2における処理は実施形態と同様である。
【0130】
(コンピュータ1000のハードウェア)
図13は、各ノード21を実現するコンピュータ1000のハードウェア図である。
【0131】
コンピュータ1000は、バス等の内部通信線1009を介して相互に接続されたCPUをはじめとするプロセッサ1001、主記憶装置1002、補助記憶装置1003、ネットワークインタフェース1004、入力装置1005、及び出力装置1006を備える。
【0132】
プロセッサ1001は、コンピュータ1000全体の動作制御を司る。また主記憶装置1002は、例えば揮発性の半導体メモリから構成され、プロセッサ1001のワークメモリとして利用される。補助記憶装置1003は、ハードディスク装置、SSD(Solid State Drive)、又はフラッシュメモリ等の大容量の不揮発性の記憶装置から構成され、各種プログラムやデータを長期間保持するために利用される。
【0133】
補助記憶装置1003に格納された実行可能プログラム1100がコンピュータ1000の起動時や必要時に主記憶装置1002にロードされ、プロセッサ1001によって実行されることで、各種処理を実行する各システムが実現される。
【0134】
なお、実行可能プログラム1100は、非一時的記録媒体に記録され、媒体読み取り装置によって非一時的記録媒体から読み出されて、主記憶装置1002にロードされてもよい。または、実行可能プログラム1100は、ネットワークを介して外部のコンピュータから取得されて、主記憶装置1002にロードされてもよい。
【0135】
ネットワークインタフェース1004は、コンピュータ1000をシステム内の各ネットワークに接続する、あるいは他のコンピュータと通信するためのインタフェース装置である。ネットワークインタフェース1004は、例えば、有線LAN(Local Area Network)や無線LAN等のNIC(Network Interface Card)から構成される。
【0136】
入力装置1005は、キーボードや、マウス等のポインティングデバイス等から構成され、ユーザがコンピュータ1000に各種指示や情報を入力するために利用される。出力装置1006は、例えば、液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイ等の表示装置や、スピーカ等の音声出力装置から構成され、必要時に必要な情報をユーザに提示するために利用される。
【0137】
以上、本発明の一実施形態について詳述したが、本発明は上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、上述の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上述の実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0138】
また上述の実施形態における各構成、機能部、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0139】
また上述の実施形態の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0140】
また上述の実施形態で説明した情報処理システムSの各機能及びデータの配置形態は一例に過ぎない。情報処理システムSの各拠点2内の複数のノード21及びストレージ22は、マルチノードシステムを構成するが、マルチノードシステム以外の構成でもよい。また、情報処理システムSの機能及びデータの配置形態は、ハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。また、上述の実施形態で説明した各処理ステップは、処理結果が同一である限り実行順序を入れ替えることができる。
【0141】
また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【符号の説明】
【0142】
S:情報処理システム、1:サーバ、2,2-1,2-2:拠点、21,21-1,21-2,21-3,21-4:ノード、22,22-1,22-2,22-3,22-4:ストレージ、100A:第1オブジェクト、101A:実データ、102A:カスタムメタデータ、103A:第1メタデータ、100B:第2オブジェクト、101B:ダミーデータ、102B:匿名化カスタムメタデータ、103B:第2メタデータ、211:リクエスト管理部、212:サービス管理部、213:メタデータ管理部、214:ストレージ管理部、215:DB、215T:メタデータ管理情報、1000:コンピュータ、1001:プロセッサ、1002:主記憶装置。