JP6568212B2 - 重複排除システムのハッシュ・ベース・マルチテナンシ - Google Patents

重複排除システムのハッシュ・ベース・マルチテナンシ Download PDF

Info

Publication number
JP6568212B2
JP6568212B2 JP2017520029A JP2017520029A JP6568212B2 JP 6568212 B2 JP6568212 B2 JP 6568212B2 JP 2017520029 A JP2017520029 A JP 2017520029A JP 2017520029 A JP2017520029 A JP 2017520029A JP 6568212 B2 JP6568212 B2 JP 6568212B2
Authority
JP
Japan
Prior art keywords
tenant
data
hash
tenants
repository
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017520029A
Other languages
English (en)
Other versions
JP2017524213A (ja
Inventor
シャシャ、オスナット
アキラフ、シャイ、ハイム
バーチャル、ヤリーヴ
ダイン、ジョセフ、ホィットニー
キシ、グレゴリー、タッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017524213A publication Critical patent/JP2017524213A/ja
Application granted granted Critical
Publication of JP6568212B2 publication Critical patent/JP6568212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般に、コンピューティング・システムに関し、より具体的には、重複排除(deduplication)システムのハッシュ・ベース・マルチテナンシのためのシステムおよび方法に関する。
今日の社会において、コンピュータ・システムは当たり前のものになっている。コンピュータ・システムは、職場、家庭、または学校に見出すことができる。データ処理システムは、一般的には、少なくとも1つの中央処理ユニット(CPU)を有するプロセッサ・サブシステム、入力/出力(I/O)サブシステム、メモリ・サブシステム、およびバス・サブシステムを含む。データ処理システムのメモリ・サブシステムは、一般的には、バック・エンド・ストレージに接続されたコントローラを有するデータ・ストレージ・システムを含む。コントローラは、データ処理システムとバック・エンド・ストレージとの間のデータの流れを制御する。
これらのデータ処理システムは、データを処理し、格納するためのデータ・ストレージ・システムまたはディスク・ストレージ・システムを含むことができる。毎日大量のデータを処理する必要があり、現在の傾向は、近い将来、これらの量は増加の一途をたどり続けるだろうと示唆している。ほとんどの場合、コンピューティング・システムは、大量のデータの格納に対するますます厳しい需要に対処するための重大な問題に直面している。この問題を解決するための効率的な方法は、重複排除を用いるものである。重複排除システムの基礎となる考えは、利用可能データの大部分が何度も繰り返しコピーされ、変更することなく転送されるという事実を利用して、繰り返されるデータを見つけ、その最初の出現のみを格納するというものである。
従って、データ重複排除およびクラウド・コンピューティングを改善し、最適化することが望ましい。
一実施形態において、コンピューティング環境における、プロセッサ・デバイスを用いた、重複排除システムのハッシュ・ベース・マルチテナンシのための方法が提供される。単なる例として、一実施形態において、方法は、単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するためにテナント識別(ID)を入力データの一部であるかのようにハッシュ値計算に組み込む。
別の実施形態において、コンピューティング環境における、プロセッサ・デバイスを用いた、重複排除システムのハッシュ・ベース・マルチテナンシのためのコンピュータ・システムが提供される。コンピュータ・システムは、コンピュータ可読媒体と、コンピュータ可読媒体と動作可能に通信するプロセッサとを含む。単なる例として、一実施形態において、プロセッサは、単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するためにテナント識別(ID)を入力データの一部であるかのようにハッシュ値計算に組み込む。
さらに別の実施形態において、コンピューティング環境における、プロセッサ・デバイスを用いた、重複排除システムのハッシュ・ベース・マルチテナンシのためのコンピュータ・プログラム製品が提供される。コンピュータ可読ストレージ媒体は、その上に格納されたコンピュータ可読プログラム・コード部分を有する。コンピュータ可読プログラム・コード部分は、単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するためにテナント識別(ID)を入力データの一部であるかのようにハッシュ値計算に組み込む第1の実行可能部分を含む。
前述の例示的な方法の実施形態に加えて、他の例示的なシステムおよびコンピュータ・プログラム製品の実施形態が提供され、関連する利点を与える。前述の概要は、詳細な説明においてさらに後述される概念の選択を、簡略化された形で導入するために提供されている。本概要は、特許請求される主題の重要な特徴または必須の特徴を識別することを意図するものではなく、また、特許請求される主題の範囲を決定する一助として使用されることを意図するものでもない。特許請求される主題は、背景において言及した任意のまたは全ての不利点を解決する実施に限定されるものではない。
本発明の利点が容易に理解されるように、上記に簡単に説明される本発明のさらに具体的な説明が、添付図面に示される特定の実施形態を参照することによって与えられる。これらの図面は本発明の典型的な実施形態を示すものに過ぎず、従って、その範囲を限定していると考えるべきではないことを理解した上で、添付図面を用いて付加的な具体性および詳細さをもって本発明を記載し、説明する。
本発明の態様を実現することができる、例示的なストレージ・デバイスを有するコンピューティング・システム環境を示すブロック図である。 本発明の態様を実現することができる、コンピュータ・システムにおけるデータ・ストレージ・システムのハードウェア構造を示すブロック図である。 本発明の態様を実現することができる、データ重複排除のための参照ベースのデータ・ブロック位置合わせのための例示的な方法を示すフローチャートである。 本発明の態様を実現することができる、テナンシを無視する際の重複排除システムを示すブロック図である。 本発明の態様を実現することができる、ハッシュ関数がハッシュ値の計算時にテナントIDを考慮に入れる際の重複排除システムを示すブロック図である。
近年、クラウド・コンピューティングは、データの格納を改善する利益をもたらしている。クラウド・コンピューティングは、インターネットなどのネットワーク・インフラストラクチャを介するコンピューティング・リソースおよびデータのアクセスである。コンピューティング・リソースおよびデータ・ストレージは、「クラウド」、すなわち、ネットワークのリンクされたデータ・センタにより提供することができる。データ・センタの各々は、コンピューティング・リソース、ならびにデータ・ストレージおよび検索能力を提供する複数のサーバを含むことができる。クラウド・コンピューティングのユーザは、一般に、「クラウド」の基礎となるデータ・センタ・インフラストラクチャに関する知識、またはこれに対する制御を必要としない。ユーザは、必要に応じて、コンピューティング・リソースおよびデータ・ストレージ機能にアクセスすることができる。
さらに、多くのサービス・プロバイダは、ストレージ・システムにおけるストレージ・ドメインを容易にするマルチテナンシ・サービスを提供することを必要とする。ストレージ・サーバ(例えば、物理プール)内にそれぞれの専用ストレージ・リソースを有することができる、ストレージ・ドメインは、「テナント・ドメイン」と呼ばれる。ストレージ・クライアントおよび/またはクライアントのグループは、データの性質に基づき、テナント・ドメインを使用するまたは使用しないように選択することが可能である。クライアントは、データをグローバル・プール(テナンシ・サポートなしに)内に置くことができ、一方、他のデータを特定のプール上に置くことができ、従って、この目的のために一意のテナント・ドメインを有することになる。このモデルは、マルチテナント・ストレージと呼ばれる。マルチテナント・ストレージ・サービスにおいて、サービス・プロバイダ(SP)は、1)テナント・ドメイン間のデータ・セグメントの漏れ、2)テナントのドメイン境界を越えること、すなわち別のテナントによる1つのテナントのデータ・ブロックへのアクセス(偶然であっても)、および3)他のテナント・ドメインに対する、1つのテナント・ドメインのデータ・ブロックのデータ破損の影響を防止することによって、テナント・データの各々を保護することを求められる。
例えば、コピー・サービス範囲の管理において、コピー・サービス関係は、ユーザ指定のリソースのセットのドメインに限定することができる。さらに、ユーザIDは、これらが特定のドメインに対してのコピー・サービス要求の発行だけを可能にするように構成することができる。このことは、いずれかのホストまたはユーザが特定のテナント・ドメイン境界を越えてコピー・サービス作業を開始するのを防止することによって、マルチテナンシを容易にする。マルチテナント機能に加えて、コピー・サービス・ドメインは、異種環境を互いから隔離するために汎用のパーティション化を提供することもできる。
クラウド・コンピューティングに加えて、データ重複排除は、コンピューティング・ストレージ・システムにおいて極めて重要であり、活気のある分野である。データ重複排除とは、冗長データの低減および/または排除を言う。データ重複排除において、ファイル、データ・ストリーム、または何らかの他の形のデータとすることができるデータ・オブジェクトは、チャンクまたはブロックと呼ばれる1つまたは複数の部分に分解される(チャンクおよび/またはブロックは、データ・セグメントと呼ぶこともできる)。データ重複排除プロセスにおいて、データの重複コピー(duplicate copy)が低減または排除され、それぞれ、最小量の冗長コピーまたはデータの単一コピーを残ることになる。データ重複排除システムの目的は、重複データの単一コピーを格納することである。この目的を達成する際の問題は、通常大容量のリポジトリ内の重複データ・パターンを効率的に見つけ、そのデータ・パターンを、効率的に重複排除する形式でストレージ内に格納することである。
大部分の重複排除システムは、ハッシュ・ベース・インデックスを使用して、システム内に格納される既存のデータ・セグメントを見つける。新しいデータ・ストリームが重複排除システムに入ると、データはデータ・セグメントに分解される。各データ・セグメントには、計算された代表ハッシュ値が存在する。ハッシュ・ベース・インデックス内で、新しいハッシュ値のそれぞれを検索し、新しいハッシュ値が見つかった場合、一致するデータ・セグメントは同一と見なされ、新しいデータ・セグメントはシステムに書き込まれない。代わりに、既存のデータ・セグメントが指し示される。言い換えれば、同じハッシュ値を有するデータ・セグメント(例えば、ブロック)が識別され、そのデータ・ブロックの1つのコピーだけが格納される。ブロックのハッシュ値と関連して、同じデータを有するブロックの全ての位置へのポインタがテーブル内に格納される。
重複排除は、ストレージ・スペースの節約のために使用されるが、マルチテナンシの場合、重複排除は、実際には、同じシステムを用いる異なるテナント間のデータ・セグメントの共有をもたらし、クライアントはそのことを進んで受け入れない場合がある。従って、クラウド・コンピューティングにおいてデータ重複排除システムを改善するための必要性が存在する。
問題に対処する1つの方法は、各テナントについての専用ハッシュ・ベース・インデックスを保持することである。重複排除ハッシュ・ベース・インデックスは通常、システムのコア内にあり、最も大きいリソースを消費するものの1つであるので、これは、メモリ・スペース、ディスク・スペース、およびシステム内の他の最適化されたリソースのようなリソースの無駄をもたらし得る。従って、1つの実施形態において、本発明は、1つだけの(単一の)ハッシュ・ベース・インデックスを使用するが、テナントIDを、入力データの一部であるかのようにハッシュ計算に組み込む。テナントIDを、入力データの一部であるかのようにハッシュ計算に組み込むことにより、オリジナルのデータ・セグメントのコンテンツが同一である場合でも、2つの異なるテナントは、2つの異なるデータ・セグメントを指し示す。
一実施形態において、本発明は、コンピューティング環境における、プロセッサ・デバイスを用いた重複排除システムのハッシュ・ベース・マルチテナンシを提供する。一実施形態において、単なる例として、方法は、マルチテナント重複排除システムにおいてデータ・セグメントを分離するために、単一のハッシュ・ベース・インデックス・テーブルを用いて、入力データの一部であるかのように、テナント識別(ID)をハッシュ値計算に組み込む。一実施形態において、マルチテナント重複排除システムにおいてデータ・セグメントを分離するために、単一のハッシュ・ベース・インデックス・テーブルを用いて、テナントIDをハッシュ値計算に組み込むことは、ファイル・レベルではなく、ブロック・レベルのストレージを処理する重複排除エンジンを有するバックアップ・ストレージ・デバイスにおいて実施される。単一のハッシュ・ベース・インデックス・テーブルを用いて、入力データの一部であるかのようにテナントIDをハッシュ値計算に組み込むことにより、テナント・ドメイン間のデータ・セグメントの漏れ、および別のテナントによる1つまたは複数のテナントのデータ・ブロックへのアクセス(偶然であっても)、ならびに他のテナント・ドメインに対する、1つのテナントのデータ・ブロックのデータ破損の影響が防止される。
一実施形態において、本発明は、マルチテナント(クラウド)重複排除システムのハッシュ・ベース・マルチテナンシを提供する。本発明は、ファイルを、ファイル・レベルで複数のファイル・セグメントにセグメント化するのではなく、データを分離するために、入力データの一部であるかのように、テナントIDをハッシュ計算に組み込み、ファイル・レベルではなく、ブロック・レベルでストレージを処理する重複排除エンジンを有するバックアップ・ストレージ・デバイスにおいて実施される。一実施形態において、クライアントが、プライバシーおよび機密性を強化するために、各テナントごとに物理ストレージ(例えば、ディスクの分離)を必要とする場合、各テナントごとに専用および/または共用の仮想および/または物理ストレージ・プールが提供される。例えば、重複排除エンジンを有するバックアップ・ストレージの場合、ストレージ・システムにおいて定められるようなテナントごとの専用物理ストレージ・プールはないが、専用ストレージ・プールおよび/またはテナント間で共有される共有ストレージ・プールから構成できる1つのリポジトリがある。付加的な実施形態において、本発明は、テナント・データを、異なるストレージ・プール上に置くことを可能にし、従って、両方の場合が可能となる。一般に、テナント用の専用物理ストレージ・プールは、1つの選択肢であり、本発明は、その達成を助ける。付加的な実施形態において、本発明は、物理ストレージ・プールだけでなく、仮想ストレージ・プールも用いる。
重複排除エンジンが単一の重複排除ハッシュ・ベース・インデックスを保持しながらテナントのデータを完全に分離するので、上述の機能を有する重複排除エンジンは、この分離アクティビティをサポートする。また、権限のないユーザが、同じシステムを使用する全ての他のクライアントのデータの破損を引き起こし得る周知のハッシュ衝突データでそのデータをシードすることにより、権限のないユーザ(攻撃)がハッシュ分離およびハッシュ計算技術を突き止めるのを防止するようにデータのセキュリティおよびプライバシーを強化するために、本発明は、テナントID(暗号化される)を用いて上述の攻撃の影響を排除し、そうした攻撃の実施をはるかに困難にする暗号化のレベルを導入する。
現況の技術で使用される「テナント」の定義を理解することに加えて、本明細書で使用される用語「テナント」は、クライアント、クライアントのグループを含む/表すことができる。一方、本明細書で使用される用語「テナント・ドメイン」は、データのプールを含む/表すことができる。例えば、クライアントXは、クライアントXのデータの一部をグローバル・プール(テナントIDなし)に置き、他のデータを特定のプール(一意のテナントID)に置くように選択することができる。あるいは、本発明が仮想化エンジン(例えば、IBM(登録商標)仮想化エンジンTS7700)に拡張された場合、「テナントID」は、「ストレージ・プール」、すなわち、データの「非クライアント」ベースの分離、と関連付けることができる。
ここで図1を参照すると、コンピューティング・システム環境の例示的なアーキテクチャ10が示される。コンピュータ・システム10は、中央処理ユニット(CPU)12を含み、CPU12は、通信ポート18およびメモリ・デバイス16に接続される。通信ポート18は、通信ネットワーク20と通信する。通信ネットワーク20およびストレージ・ネットワークは、サーバ(ホスト)24およびストレージ・デバイス14を含むことができるストレージ・システムと通信するように構成することができる。ストレージ・システムは、ハードディスクドライブ(HDD)デバイス、ソリッド・ステート・デバイス(SSD)等を含むことができ、これらは、redundant array of independent disks(RAID)に構成することができる。後述されるような操作は、システム10中にまたは他の場所に位置するストレージ・デバイス14上で実行することができ、システム10は、独立しておよび/または他のCPUデバイス12と共に動作する複数のメモリ・デバイス16を有することができる。メモリ・デバイス16は、電気的消去可能プログラム可能読出し専用メモリ(EEPROM)などのメモリ、または関連デバイスのホストを含むことができる。メモリ・デバイス16およびストレージ・デバイス14は、信号伝達媒体を介して、CPU12に接続される。さらに、CPU12は、通信ポート18を通じて、複数の付加的なコンピュータ・ホスト・システム24が取り付けられた通信ネットワーク20に接続される。加えて、メモリ・デバイス16およびCPU12は、コンピューティング・システム10の各コンポーネント内に埋め込まれ、含められてもよい。各ストレージ・システムは、協働して、または別個のメモリ・デバイス16および/またはCPU12として動作する、別個のおよび/または個別のメモリ・デバイス16およびCPU12を含むこともできる。
図2は、本発明によるコンピュータ・システムにおけるデータ・ストレージ・システムのハードウェア構造を示す例示的なブロック図200である。ホスト・コンピュータ210、220、250が示されており、各々が、データ・ストレージ・システム200の一部としてデータ処理を実施するための中央処理ユニットとして働く。クラスタ・ホスト/ノード(物理または仮想デバイス)210、220および225は、データ・ストレージ・システム200において、本発明の目的を達成するための1つまたは複数の新しい物理デバイスまたは論理デバイスとすることができる。一実施形態において、単なる例として、データ・ストレージ・システム200は、IBM(登録商標)System Storage(商標)DS8000(商標)として実装することができる。ネットワーク接続260は、ファイバ・チャネル・ファブリック、ファイバ・チャネル・ポイント・ツー・ポイント・リンク、ファイバ・チャネル・オーバー・イーサネット・ファブリック、またはポイント・ツー・ポイント・リンク、FICON若しくはESCON I/Oインターフェース、他のいずれかのI/Oインターフェース・タイプ、無線ネットワーク、有線ネットワーク、LAN、WAN、異種、同種、パブリック(すなわち、インターネット)、プライベート、またはこれらの任意の組み合わせとすることができる。ホスト210、220および225は、ローカルであっても、または1つまたは複数の位置間でまたは分散させてもよく、ファイバ・チャネル、FICON、ESCON、イーサネット、光ファイバ、無線、同軸アダプタなど、ストレージ・コントローラ240への任意のタイプのファブリック(またはファブリック・チャネル)(図2には図示されていない)またはネットワーク・アダプタ260を備えていてもよい。従って、データ・ストレージ・システム200は、通信するための適切なファブリック(図2には図示されていない)またはネットワーク・アダプタ260を備えている。データ・ストレージ・システム200は、図2では、ストレージ・コントローラ240およびクラスタ・ホスト210、220および250を含むように示される。クラスタ・ホスト210、220および250は、クラスタ・ノードを含むことができる。
本明細書に説明される方法のより明確な理解を容易にするために、図2において、ストレージ・コントローラ240は、マイクロプロセッサ242、システム・メモリ243および不揮発性ストレージ(「NVS」)216を含む単一の処理ユニットとして示される。幾つかの実施形態においては、ストレージ・コントローラ240は、複数の処理ユニットからなり、各処理ユニットは、それ自体のプロセッサ・コンプレックスおよびシステム・メモリを有し、データ・ストレージ・システム200内の専用ネットワークによって相互接続されることに留意されたい。ストレージ230(図3では、230a、230bおよび230nと表記される)は、ストレージ・アレイなど、1つまたは複数のストレージ・デバイスからなるものとすることができ、これらのストレージ・デバイスは、(ストレージ・ネットワークによって)ストレージ・コントローラ240に接続され、1つまたは複数のクラスタ・ホスト210、220および225は、各ストレージ・コントローラ240に接続される。
幾つかの実施形態において、ストレージ230内に含められるデバイスは、ループ・アーキテクチャで接続されてもよい。ストレージ・コントローラ240は、ストレージ230を管理し、ストレージ230に向けられた書き込みおよび読み取り要求の処理を容易にする。ストレージ・コントローラ240のシステム・メモリ243は、本発明の機能および方法ステップを実行し、本明細書で説明されるストレージ230を実行および管理するために、プロセッサ242がアクセスすることができる、プログラム命令およびデータを格納する。一実施形態において、システム・メモリ243は、オペレーション・ソフトウェア250を含み、またはこれと関連付けられ、またはこれと通信し、本明細書で説明される方法および動作を実施する。図2に示されるように、システム・メモリ243はまた、それぞれ書き込み/読み込み要求およびその関連データを指す「書き込みデータ」および「読み込みデータ」をバッファリングするために、本明細書では「キャッシュ・メモリ」とも呼ばれる、ストレージ230のためのキャッシュ245を含むことも、またはこれと通信することもできる。一実施形態において、キャッシュ245は、システム・メモリ243の外部のデバイス中で割り当てられるが、なおマイクロプロセッサ242によってアクセス可能なままであり、本明細書で説明される動作を実行することに加えて、データ損失に対する付加的なセキュリティを提供するのに役立つことができる。
幾つかの実施形態において、キャッシュ245は、揮発性メモリおよび不揮発性メモリによって実装され、データ・ストレージ・システム200の性能向上のために、ローカル・バス(図2には図示されない)を介してマイクロプロセッサ242に結合される。データ・ストレージ・コントローラ内に含まれるNVS216は、マイクロプロセッサ242によってアクセス可能であり、他の図に記載のような本発明の動作および実行のための、付加的なサポートを提供するのに役立つ。NVS216は、「永続的」キャッシュまたは「キャッシュ・メモリ」とも呼ばれ、内部に格納されるデータを保持するために外部電力を用いることもまたは用いないこともある不揮発性メモリによって実装される。NVS216は、本発明の目的を達成するのに適した任意の目的で、キャッシュ245内におよびキャッシュ245によって格納され得る。幾つかの実施形態において、データ・ストレージ・システム200に対する電力損失の場合に、バッテリなどのバックアップ電源(図2には図示されない)が、内部に格納されたデータを保持するのに十分な電力をNVS216に供給する。特定の実施形態において、NVS216の容量は、キャッシュ245の総容量より少ないか、またはこれに等しい。
ストレージ230は、ストレージ・アレイなど、1つまたは複数のストレージ・デバイスで物理的に構成されてもよい。ストレージ・アレイは、ハードディスクなどの個々のストレージ・デバイスの論理的グループ化である。特定の実施形態において、ストレージ230は、JBOD(Just a Bunch of Disks)アレイまたはRAID(Redundant Array of Independent Disks)アレイからなる。物理ストレージ・アレイの集まりをさらに結合して、ランクを形成することができ、ランクは、物理ストレージを論理構成から切り離す。ランク中のストレージ・スペースは、論理ボリュームに割り当てることができ、論理ボリュームは、書き込み/読み取り要求の中で指定されるストレージ位置を定める。
一実施形態において、単なる例として、図2に示すようなストレージ・システムは、論理ボリュームまたは単に「ボリューム」を含むことができ、異なる種類の割り当てを有することがある。ストレージ230a、230bおよび230nは、データ・ストレージ・システム200中のランクとして示され、本明細書では、ランク230a、230bおよび230nと呼ばれる。ランクは、データ・ストレージ・システム200に対してローカルであってもよく、または、物理的遠隔位置に位置してもよい。言い換えれば、ローカル・ストレージ・コントローラは、遠隔ストレージ・コントローラと接続し、遠隔位置におけるストレージを管理することができる。ランク230aは、2つの全体的ボリューム234および236、ならびに1つの部分的ボリューム232aを有して構成されるように示される。ランク230bは、別の部分的ボリューム232bを有して示される。このように、ボリューム232は、ランク230aと230bとにまたがって割り当てられる。ランク230nは、ボリューム238に完全に割り当てられるものとして示される。すなわち、ランク230nは、ボリューム238に対する物理ストレージ全体を指す。上記の例から、ランクは、1つまたは複数の部分的および/または全体的ボリュームを含むように構成できることが理解されるであろう。ボリュームおよびランクはさらに、いわゆる「トラック」に分割することができ、トラックは、ストレージの固定ブロックを表す。従って、トラックは所定のボリュームと関連付けられ、トラックには所定のランクを与えることができる。
ストレージ・コントローラ240は、重複排除モジュール255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263を含むことができる。重複排除文字255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263は、ストレージ・コントローラ240、ホスト210、220、225およびストレージ・デバイス230のそれぞれのコンポーネントと協働することができる。重複排除文字255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263は、構造的に1つの完全なモジュールであってもよく、または他の個々のモジュールと関連付けることおよび/またはそれらと共に含まれてもよい。重複排除文字255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263は、キャッシュ245または他のコンポーネント内に配置してもよい。
ストレージ・コントローラ240は、ホスト・コンピュータ210、220、225へのファイバ・チャネル・プロトコルを制御するための制御スイッチ241と、全てのストレージ・コントローラ240を制御するためのマイクロプロセッサ242と、ストレージ・コントローラ240の動作を制御するためのマイクロプログラム(オペレーション・ソフトウェア)250と、制御のためのデータと、データを一時的に格納(バッファリング)するためのキャッシュ245と、キャッシュ245がデータの読み出しおよび書き込みを行うのを補助するためのバッファ244と、ストレージ・デバイス230との間のデータ転送を制御するプロトコルを制御するための制御スイッチ241と、重複排除モジュール255と、テナントIDモジュール257と、単一のハッシュ・ベース・インデックス・テーブル259と、暗号化モジュール261と、情報を設定することができるテナント分離モジュール263とを含むことができる。本発明を用いて複数のバッファ244を実装して、本明細書に述べる動作を補助することができる。一実施形態において、クラスタ・ホスト/ノード210、220、225およびストレージ・コントローラ240は、インターフェースとしてのネットワーク・アダプタ(これは、ファイバ・チャネルとすることができる)260を通じて、すなわち「ファブリック」と呼ばれる少なくとも1つのスイッチを介して接続される。
一実施形態において、ホスト・コンピュータ、すなわち1つまたは複数の物理若しくは仮想デバイス210、220、225、およびストレージ・コントローラ240は、インターフェースとしてのネットワーク・アダプタ(これは、ファイバ・チャネルとすることができる)260を通じて、すなわち「ファブリック」と呼ばれる少なくとも1つのスイッチを介して接続される。一実施形態において、図2に示すシステムの動作について説明する。マイクロプロセッサ242は、メモリ243を制御して、ホスト・デバイス(物理または仮想)210からのコマンド情報と、ホスト・デバイス(物理または仮想)210を識別するための情報とを格納することができる。制御スイッチ241、バッファ244、キャッシュ245、オペレーション・ソフトウェア250、マイクロプロセッサ242、メモリ243、NVS216、重複排除モジュール255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263は、互いに通信し、これらは、別個のコンポーネントまたは1つの個々のコンポーネントとすることができる。また、オペレーション・ソフトウェア250など、全てのとは言わないまでも幾つかのコンポーネントが、メモリ243と共に含まれてもよい。図示されるデバイス内の各コンポーネントは、本発明に適した目的で、共にリンクされてよく、互いに通信することができる。
上述のように、重複排除モジュール255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263は、キャッシュ245または他のコンポーネント内に配置されてもよい。従って、重複排除モジュール255、テナントIDモジュール257、単一のハッシュ・ベース・インデックス・テーブル259、暗号化モジュール261、およびテナント分離モジュール263の1つまたは複数は、ストレージ・アーキテクチャおよびユーザ・プリファレンスに基づいて、必要に応じて使用することができる。図示されるデバイス内のコンポーネントの各々は、本発明に適した目的で、共にリンクされてよく、互いに通信することができる。
図3は、本発明の態様を実現することができる、重複排除システムにおけるハッシュ・ベース・マルチテナンシのための付加的な例示的方法300を示すフローチャートである。方法300は、単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するためにテナント識別(ID)を入力データの部分であるかのようにハッシュ値計算に組み込むこと(ステップ304)から始まる。方法は終了する(ステップ306)。
一実施形態において、新しいデータ・ストリームが重複排除システムに入ると、データはデータ・セグメントに分解され、各データ・セグメントについて、計算される代表ハッシュ値がある。データ・ストリームがデータ・セグメントに分解される場合、各データ・セグメントは依然としてハッシュ値を受け取るが、ハッシュ値は、テナントIDも考慮に入れる方法で計算される。一実施形態において、ハッシュ関数がテナントIDを考慮に入れるようにする1つより多い方法がある。例えば、1つの方法では、以下の実施を用いる。各テナントが一意の4バイトID、すなわちテナントIDを有するシステムにおいて、4千(K)のデータ・セグメント・サイズが処理されると仮定する。マルチテナンシ・サポートなしで使用される同じハッシュ・アルゴリズム(例えば、暗号ハッシュ関数SHA−2)をここで同様に使用することができる。しかしながら、データ・セグメントに対するハッシュのみを計算する代わりに、4096バイトのデータ・セグメントに4バイトのテナントIDを加えた連結に対して計算を行い、単に計算用の4100バイトのサイズ(4096バイト+4バイト)の人工的な「拡張された」データ・セグメントを生成する。このように、テナントの両方の4Kデータ・セグメントが同一であっても、2つの異なるテナントは、異なる2つの値を得る。従って、この例は、一般的な場合における1つの可能な実施とすることができ、以下のハッシュ関数の式において示される。:
HASH{F(4096バイト・データ・セグメント,4バイト・テナントID A)}=ハッシュ値A (1)
ここで、Fは関数であり、4096(ここでは、任意のサイズのバイト・サイズを使用できる)はデータ・セグメントのバイト・サイズであり、テナントID Aは、任意に「A」と表記されたデータ・セグメントについてのテナントIDであり、ハッシュ値Aは、テナントIDを組み込むときの、データ・セグメント「A」についての計算されたハッシュ値である。この実施においては、1つのハッシュ・ベース・インデックスだけが使用される。
ここで図4を参照すると、本発明の態様を実現できる、テナンシを無視する場合の重複排除システムを示すブロック図400である。図4は、テナンシを無視する場合の重複排除システムの例を示す。図4は、テナント・ドメインAから受け取ったデータ・ストリーム402と、テナント・ドメインBから受け取ったデータ・ストリーム406とを示す。テナントAから受け取ったデータ・ストリーム402内には、3つのデータ・セグメント404A〜C(データ・セグメントの#A1〜A3)がある。テナントBから受け取ったデータ・ストリーム406内には、3つのデータ・セグメント408A〜C(データ・セグメントの#B1〜B3)がある。各データ・セグメントは、ハッシュ関数を用いて計算されたハッシュ値を含む。例えば、テナントAから受け取ったデータ・ストリーム402内の3つのデータ・セグメント404について、データ・セグメント#A1は、「X」に等しいハッシュ値(A1)を有する(Hash(A1)=Xとして図4に見られる)。データ・セグメント#A2は、「Y」に等しいハッシュ値(A2)を有する(Hash(A2)=Yとして図4に見られる)。データ・セグメント#A3は、「Z」に等しいハッシュ値(A3)を有する(Hash(A3)=Zとして図4に見られる)。テナントBから受け取ったデータ・ストリーム406内の3つのデータ・セグメント408について、データ・セグメント#B1は、「V」に等しいハッシュ値(B1)を有する(Hash(B1)=Vとして図4に見られる)。データ・セグメント#B2は、「W」に等しいハッシュ値(B2)を有する(Hash(B2)=Wとして図4に見られる)。しかしながら、データ・セグメント#B3は、「Z」に等しいハッシュ値(B3)を有する(Hash(B3)=Zとして図4に見られる)。2つのデータ・セグメント404Cおよび408C(テナントAのデータ・セグメント#A3 404CおよびテナントBのデータ・セグメント#B3 408C)は同じハッシュ値(例えば、図4に見られるように、Hash(B=3)=Z)を有するため、一致するデータ・セグメントは同一と考えられ、新しいデータ・セグメントはシステムに書き込まれない。2つのストリームは、同じデータ・セグメントを指し示すことになる。
図5は、本発明の態様を実現することができる、ハッシュ値の計算時にハッシュ関数がテナントIDを考慮に入れる場合の重複排除システム500を示すブロック図である。図5は、テナントAから受け取ったデータ・ストリーム502と、テナントBから受け取ったデータ・ストリーム506とを示す。テナントAから受け取ったデータ・ストリーム502内には、3つのデータ・セグメント504A〜C(データ・セグメントの#A1〜A3)がある。テナントBから受け取ったデータ・ストリーム506内には、3つのデータ・セグメント508A〜C(データ・セグメントの#B1〜B3)がある。各データ・セグメントは、ハッシュ関数を用いて計算されたハッシュ値を含むが、このハッシュ値は、テナントIDも考慮に入れることによって計算される。一実施形態において、所定数のバイトのデータ・セグメントにテナントIDを加えた連結に対して計算を行って、単に計算用の人工的な「拡張された」データ・セグメント・サイズを生成する。
例えば、同じアーキテクチャ構造2つのデータ・ストリーム502および506を用いて、テナントAから受け取ったデータ・ストリーム502内の3つのデータ・セグメント504、および、テナントBから受け取ったデータ・ストリーム506内の3つのデータ・セグメント508が存在する。この例では、テナントAから受け取ったデータ・ストリーム502について、テナントIDの510A〜Cは今や、マルチテナント重複排除システムにおいてデータ・セグメント504A〜Cを分離するために、単一のハッシュ・ベース・インデックス・テーブルを用いて、入力データの一部であるかのようにハッシュ値計算に組み込まれる。同様に、テナントIDの512A〜Cは今や、マルチテナント重複排除システムにおいてデータ・セグメント508A〜Cを分離するために、単一のハッシュ・ベース・インデックス・テーブルを用いて、入力データの一部であるかのようにハッシュ値計算に組み込まれる。
従って、マルチテナント重複排除システムにおいてデータ・セグメントを分離するために、単一のハッシュ・ベース・インデックス・テーブルを用いて、入力データの一部であるかのように、テナントID 510および512をハッシュ値計算に組み込むことにより、データ・セグメント#A3 404Cおよびデータ・セグメント#B3 408Cとは違って、データ・セグメント#A3 504Cおよびデータ・セグメント#B3 508Cは、2つの異なるハッシュ値を有することになり、異なるテナント内の同一のデータ・セグメントが、同じデータ・セグメントを指し示すことになるのを防止する。
例えば、データ・セグメント#A3 504Cは今や、テナントID 510Cを含む新しく計算されたハッシュ値(例えば、Hash(A3、テナントID A)=Zaとして図5に示されるような)を有する。さらに、テナントBから受け取った第2のデータ・ストリーム506について、データ・セグメント#B3は、テナントID 512Cを含む新しく計算されたハッシュ値(例えば、Hash(B3、テナントID B)=Zbとして図5に示されるような)を有する。2つのデータ・セグメント504Cおよび508C(テナントAのデータ・セグメント#A3およびテナントBのデータ・セグメント#B3)は、異なるハッシュ値を有するので、一致するデータ・セグメントは、もはや同一と見なされず、新しいデータ・セグメントはシステムに書き込まれる。2つのストリームは今や、同じデータ・セグメントを指し示すことにならない。このように、テナントの両方のデータ・セグメントが同一であってもおよび/または同一のオリジナルのデータ・ストリームに由来するものであっても、2つの異なるテナントは、2つの異なる値を得る。データ・セグメント504および508にテナントID 510A〜Cおよび512A〜Cの使用を加えた連結に対して、ハッシュ値の計算を行うことができることに留意されたい。テナントAおよびテナントBは、互いに独立した別個の物理ストレージ・プール内に分離される。テナントID 510A〜Cおよび512A〜Cは、テナントごとにそれぞれの物理ストレージ・プールと関連付けられる。言い換えれば、組み込まれたテナントID 510Cを含む新しいハッシュ値を用いることにより、データ・セグメント#A3 504Cは、テナントAに割り当てられる別個の物理ストレージ・プールに関連付けられる。さらに、データ・セグメント#B3は、組み込まれたテナントID 512Cを含む新しい異なるハッシュ値(組み込まれたテナントID 510Cと比較して)を有し、テナントBに割り当てられる別個の仮想および/または物理ストレージ・プールと関連付けられる。従って、データ・セグメント504および508は分離される。このように、テナント・ドメイン間のデータ・セグメントの漏れ、別のテナントによる1つのテナントのデータ・ブロックへのアクセス(偶然であっても)、および他のテナントに対する、1つのテナントのデータ・ブロックのデータ破損の影響が排除される。
一実施形態において、本発明は、コンピューティング環境内のプロセッサ・デバイスを用いて、重複排除システムにおけるハッシュ・ベース・マルチテナンシを提供する。一実施形態において、単なる例として、本発明は、マルチテナント重複排除システムにおいてデータ・セグメントを分離するために、単一のハッシュ・ベース・インデックス・テーブルを用いて、入力データの一部であるかのように、テナント識別(ID)をハッシュ値計算に組み込む。新しいハッシュ値は、テナントIDの組み込みに基づいて生成される。一実施形態において、ハッシュ値計算は、データ・セグメントにテナントIDの使用を加えた連結に対して行われ、人工的な拡張されたデータ・セグメントを生成する。異なるデータ・セグメントが同一であったとしても、複数のテナントが異なるデータ・セグメントを指し示すように、異なるハッシュ値を複数のテナントのそれぞれに割り当てる。複数のテナントのそれぞれは分離され、リポジトリに格納される。リポジトリは仮想ストレージ・プールおよび物理ストレージ・プールの少なくとも一方であり、かつ、リポジトリは専用ストレージ・プールおよび共有ストレージ・プールの少なくとも一方である。一実施形態において、テナントIDは、リポジトリと関連付けられる。1つのテナントが他のテナントのデータ・セグメントにアクセスするのを禁止することにより、各データ・セグメントへのアクセスが制御される。このように、テナント・ドメイン間のデータ・セグメントの漏れ、別のテナントによる1つのテナントのデータ・ブロックへのアクセス(偶然であっても)、および他のテナントに対する、1つのテナントのデータ・ブロックのデータ破損の影響が排除される。
一実施形態において、複数のテナントのそれぞれのデータ・セグメントを暗号化するために暗号化キーを使用すること、およびデータ・セグメントのセキュリティのために複数のテナントのそれぞれについての各テナントIDを暗号化することのそれぞれを、および/またはそのうちの少なくとも1つを実施する。
本発明は、システム、方法、および/またはコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピューティング可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数または複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより用いられる命令を保持および格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピーディスク、パンチ・カードまたは命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、および上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、またはワイヤを通って伝送される電気信号などの、一時的な信号自体として解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークおよび/または無線ネットワークなどのネットワークを介して、外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、および/またはエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、または、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されるいずれかのソース・コード若しくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、または完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、または外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態除法を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図および/またはブロック図を参照して説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、または他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータまたは他のプログラム可能装置上で実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
図面内のフローチャートおよびブロック図は、本発明の種々の実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能および動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、またはこれらのブロックはときとして逆順で実行されることもある。ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図内のブロックの組み合わせは、指定された機能または動作を実行する、または専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
10:コンピュータ・システム
14:ストレージ・システム
16:メモリ・デバイス
18:通信ポート
20:通信ネットワーク
24:サーバ
200:データ・ストレージ・システム
210、220、225:ホスト・コンピュータ
216:不揮発性ストレージ(NVS)
230、230a、230b、230n:ストレージ
240:ストレージ・コントローラ
241:制御スイッチ
242:マイクロプロセッサ
243:システム・メモリ
244:バッファ
245:キャッシュ
250:オペレーション・ソフトウェア
255:重複排除モジュール
257:テナントIDモジュール
259:単一のハッシュ・ベース・インデックス・テーブル
260:ネットワーク接続、ネットワーク・アダプタ
261:暗号化モジュール
263:テナント分離モジュール
402、406、502、506:データ・ストリーム
404A〜C、408A〜C、504A〜C、508A〜C:データ・セグメント
510A〜C、512A〜C:テナントID

Claims (17)

  1. コンピューティング環境における、プロセッサ・デバイスによる重複排除システムのハッシュ・ベース・マルチテナンシのための方法であって、
    単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するためにテナント識別(ID)を入力データの一部であるかのようにハッシュ値計算に組み込むこと、
    前記複数のテナントのそれぞれを分離してリポジトリに格納することをさらに実行させることを含み、前記リポジトリは仮想ストレージ・プールおよび物理トレージ・プールの少なくとも一方であり、かつ、前記リポジトリは専用ストレージ・プールおよび共用ストレージ・プールの少なくとも一方である、前記リポジトリに格納すること、
    を前記プロセッサ・デバイスに実行させることを含む、方法。
  2. 前記テナントIDを組み込むことに基づいてハッシュ値を生成することをさらに含む、請求項1に記載の方法。
  3. データ・セグメントに前記テナントIDの使用を加えた連結に対して前記ハッシュ値計算を行い、人工的な拡張されたデータ・セグメントを生成することをさらに含む、請求項1に記載の方法。
  4. 2つのデータセグメントの内容が同一であったとしても、複数のテナントが異なるデータ・セグメントを指し示すように、異なるハッシュ値を複数のテナントのそれぞれに割り当てることをさらに含む、請求項1に記載の方法。
  5. 前記テナントIDを前記リポジトリと関連付けることをさらに含む、請求項に記載の方法。
  6. 前記複数のテナントのそれぞれについての前記データ・セグメントを暗号化するために暗号化キーを使用すること、および
    データ・セグメントのセキュリティのために、前記複数のテナントのそれぞれについての各テナントIDを暗号化すること、
    の少なくとも一方を実施することをさらに含む、請求項1に記載の方法。
  7. コンピューティング環境における、重複排除システムのハッシュ・ベース・マルチテナンシのためのシステムであって、
    重複排除エンジンと、
    前記コンピューティング環境内で動作可能であり、前記重複排除エンジンを制御する少なくとも1つのプロセッサ・デバイスと、
    を含み、前記プロセッサ・デバイスは、
    単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するために、テナント識別(ID)を入力データの一部であるかのようにハッシュ値計算に組み込み、
    前記複数のテナントのそれぞれを分離してリポジトリに格納し、前記リポジトリは仮想ストレージ・プールおよび物理トレージ・プールの少なくとも一方であり、かつ、前記リポジトリは専用ストレージ・プールおよび共用ストレージ・プールの少なくとも一方である、
    システム。
  8. 前記少なくとも1つのプロセッサ・デバイスは、前記テナントIDを組み込むことに基づいてハッシュ値を生成する、請求項に記載のシステム。
  9. 前記少なくとも1つのプロセッサ・デバイスは、データ・セグメントに前記テナントIDの使用を加えた連結に対して前記ハッシュ値計算を行い、人工的な拡張されたデータ・セグメントを生成する、請求項に記載のシステム。
  10. 前記少なくとも1つのプロセッサ・デバイスは、2つのデータセグメントの内容が同一であったとしても、複数のテナントが異なるデータ・セグメントを指し示すように、異なるハッシュ値を複数のテナントのそれぞれに割り当てる、請求項に記載のシステム。
  11. 前記少なくとも1つのプロセッサ・デバイスは、前記テナントIDを前記リポジトリと関連付ける、請求項に記載のシステム。
  12. 前記少なくとも1つのプロセッサ・デバイスは、
    前記複数のテナントのそれぞれについての前記データ・セグメントを暗号化するために暗号化キーを使用すること、および
    データ・セグメントのセキュリティのために、前記複数のテナントのそれぞれについての各テナントIDを暗号化すること、
    の少なくとも一方を実施する、請求項に記載のシステム。
  13. コンピューティング環境における、プロセッサ・デバイスによる、重複排除システムのハッシュ・ベース・マルチテナンシのためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータ可読プログラム・コード部分を含み、前記コンピュータ可読プログラム・コード部分は、
    単一のハッシュ・ベース・インデックス・テーブルを用いて、マルチテナント重複排除システムにおいてデータ・セグメントを分離するためにテナント識別(ID)を入力データの一部であるかのようにハッシュ値計算に組み込む第1の実行可能部分
    を含み、
    2つのデータセグメントの内容が同一であったとしても、複数のテナントが異なるデータ・セグメントを指し示すように、異なるハッシュ値を複数のテナントのそれぞれに割り当てること、および
    前記複数のテナントのそれぞれを分離してリポジトリに格納することであって、前記リポジトリは仮想ストレージ・プールおよび物離トレージ・プールの少なくとも一方であり、かつ、前記リポジトリは専用ストレージ・プールおよび共用ストレージ・プールの少なくとも一方である、分離してリポジトリに格納すること、
    の少なくとも一方を実行する第2の実行可能部分をさらに含む、
    コンピュータ・プログラム。
  14. 前記テナントIDを組み込むことに基づいてハッシュ値を生成する第2の実行可能部分をさらに含む、請求項13に記載のコンピュータ・プログラム。
  15. データ・セグメントに前記テナントIDの使用を加えた連結に対して前記ハッシュ値計算を行い、人工的な拡張されたデータ・セグメントを生成する第2の実行可能部分をさらに含む、請求項13に記載のコンピュータ・プログラム。
  16. 前記テナントIDを前記リポジトリと関連付ける第3の実行可能部分をさらに含む、請求項13に記載のコンピュータ・プログラム。
  17. 前記複数のテナントのそれぞれについての前記データ・セグメントを暗号化するために暗号化キーを使用すること、および
    データ・セグメントのセキュリティのために、前記複数のテナントのそれぞれについての各テナントIDを暗号化すること、
    の少なくとも一方を実施する第2の実行可能部分をさらに含む、請求項13に記載のコンピュータ・プログラム。
JP2017520029A 2014-07-02 2015-06-16 重複排除システムのハッシュ・ベース・マルチテナンシ Active JP6568212B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/322,079 US10803019B2 (en) 2014-07-02 2014-07-02 Hash-based multi-tenancy in a deduplication system
US14/322,079 2014-07-02
PCT/IB2015/054532 WO2016001785A1 (en) 2014-07-02 2015-06-16 Hash-based multi-tenancy in a deduplication system

Publications (2)

Publication Number Publication Date
JP2017524213A JP2017524213A (ja) 2017-08-24
JP6568212B2 true JP6568212B2 (ja) 2019-08-28

Family

ID=55017129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017520029A Active JP6568212B2 (ja) 2014-07-02 2015-06-16 重複排除システムのハッシュ・ベース・マルチテナンシ

Country Status (4)

Country Link
US (1) US10803019B2 (ja)
JP (1) JP6568212B2 (ja)
CN (1) CN106471477A (ja)
WO (1) WO2016001785A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6231669B2 (ja) * 2014-09-15 2017-11-15 華為技術有限公司Huawei Technologies Co.,Ltd. データ書込み要求処理方法及びストレージアレイ
US10649974B1 (en) * 2015-09-30 2020-05-12 EMC IP Holding Company User-level processes in a shared multi-tenant de-duplication system
US10380098B1 (en) * 2015-09-30 2019-08-13 EMC IP Holding Company LLC Fine-grained shared multi-tenant de-duplication system
US10671608B1 (en) * 2015-11-01 2020-06-02 Yellowbrick Data, Inc. Memory-aware system and method for identifying matching portions of two sets of data in a multiprocessor system
JP6620595B2 (ja) * 2016-02-25 2019-12-18 富士通株式会社 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法
SG11201704732PA (en) * 2016-04-19 2017-11-29 Huawei Tech Co Ltd Vector processing for segmentation hash values calculation
US10305861B2 (en) 2016-08-29 2019-05-28 Microsoft Technology Licensing, Llc. Cross-tenant data leakage isolation
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US10558641B2 (en) 2017-04-21 2020-02-11 Microsoft Technology Licensing, Llc Trigger system for databases using proxy
US10678754B1 (en) * 2017-04-21 2020-06-09 Pure Storage, Inc. Per-tenant deduplication for shared storage
US11403019B2 (en) * 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
CN107256243A (zh) * 2017-05-31 2017-10-17 杭州云证网络科技有限公司 一种基于多重哈希算法的数据存取证方法及其装置
US10977215B2 (en) 2017-08-08 2021-04-13 International Business Machines Corporation System and method for storage optimization in a de-duplication system
US10241965B1 (en) 2017-08-24 2019-03-26 Deephaven Data Labs Llc Computer data distribution architecture connecting an update propagation graph through multiple remote query processors
US10282129B1 (en) 2017-10-24 2019-05-07 Bottomline Technologies (De), Inc. Tenant aware, variable length, deduplication of stored data
US11106375B2 (en) * 2019-04-04 2021-08-31 Netapp, Inc. Deduplication of encrypted data within a remote data store
US12074471B2 (en) 2020-12-18 2024-08-27 Eaton Intelligent Power Limited Apparatus and methods for distribution of UPS-associated energy storage
US11687492B2 (en) * 2021-06-21 2023-06-27 International Business Machines Corporation Selective data deduplication in a multitenant environment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447829B1 (en) * 2006-02-10 2013-05-21 Amazon Technologies, Inc. System and method for controlling access to web services resources
US8291490B1 (en) 2008-06-30 2012-10-16 Emc Corporation Tenant life cycle management for a software as a service platform
CN101639835A (zh) 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
US9473419B2 (en) * 2008-12-22 2016-10-18 Ctera Networks, Ltd. Multi-tenant cloud storage system
US9262643B2 (en) 2010-02-22 2016-02-16 Sookasa Inc. Encrypting files within a cloud computing environment
US8775486B2 (en) * 2011-04-04 2014-07-08 Symantec Corporation Global indexing within an enterprise object store file system
US8782762B2 (en) 2011-08-17 2014-07-15 International Business Machines Corporation Building data security in a networked computing environment
JP5929326B2 (ja) 2012-03-02 2016-06-01 日本電気株式会社 ストレージシステム
US8875247B2 (en) * 2013-03-14 2014-10-28 Facebook, Inc. Instant personalization security

Also Published As

Publication number Publication date
US10803019B2 (en) 2020-10-13
CN106471477A (zh) 2017-03-01
WO2016001785A1 (en) 2016-01-07
JP2017524213A (ja) 2017-08-24
US20160004716A1 (en) 2016-01-07

Similar Documents

Publication Publication Date Title
JP6568212B2 (ja) 重複排除システムのハッシュ・ベース・マルチテナンシ
US11153094B2 (en) Secure data deduplication with smaller hash values
US9792450B2 (en) Preserving redundancy in data deduplication systems by encryption
US10701134B2 (en) Transferring data between block and file storage systems
US20170317991A1 (en) Offloading storage encryption operations
JP6227007B2 (ja) データ圧縮領域へのデータの実時間分類
US10261946B2 (en) Rebalancing distributed metadata
WO2013008264A1 (en) Storage system and its data processing method
US20190129971A1 (en) Storage system and method of controlling storage system
US10242021B2 (en) Storing data deduplication metadata in a grid of processors
US10223209B2 (en) Splitting a clone having snapshots from a parent
JP2021533619A (ja) マルチテナントデータベース管理システムにおけるデータベース暗号化のシステム及び方法
US10255288B2 (en) Distributed data deduplication in a grid of processors
US8848918B2 (en) Method and system for deleting data
US10268384B2 (en) File transfers between machines without target CPU intervention
US10719399B2 (en) System combining efficient reliable storage and deduplication
US10740203B2 (en) Aggregation of updated tracks to be copied to a backup volume for physically contiguous storage on a RAID stride

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190412

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190801

R150 Certificate of patent or registration of utility model

Ref document number: 6568212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150