以下、本発明の好ましい態様及び実施形態を添付図面を参照してより詳細に説明する。異なる図面及び実施形態の中の同じ又は同様の特徴は同様の参照番号によって示されている。様々な好ましい態様及び好ましい実施形態に関係する以下の詳細な説明は本発明の範囲を限定することを意図しないことを理解すべきである。
本明細書及び添付の特許請求の範囲で使用するとき、文脈上他の意味に解すべき場合を除き、以下の用語は示されている意味を有するものとする:
「ストレージデバイス」とは、データを記憶するために使用されるデバイス又はシステムである。ストレージデバイスは、1つ又は複数の磁気、若しくは光磁気、若しくは光ディスクドライブ、ソリッドステートストレージデバイス、又は磁気テープを含んでもよい。便宜上、ストレージデバイスは「ディスク」又は「ハードディスク」と呼ぶことがある。データストレージシステムは、同じ又は異なる記憶容量を有する同じ又は異なる種類のストレージデバイスを含み得る。
「RAIDコントローラ」とは、幾つかのストレージデバイスの記憶容量を、「システムドライブ」(「SD」)、「論理ユニット」(「LU」又は「LUN」)、又は「ボリューム」と代替的に呼ばれ得る仮想的な記憶空間の断片へと組み合わせるデバイス又はシステムである。典型的には、SDは単一のストレージデバイスよりも大きく、幾つかのストレージデバイスから空間を取得し、一定数のディスクの故障にデータ喪失なしで耐えることができるように冗長情報を含む。例示的実施形態では、以下「論理ユニット識別子」又は「LUID」と呼ばれる一意の識別子が各SDに関連付けられ、各SDは、例えば2TB〜64TB又はそれ以上の所定の最大サイズよりも大きくない。
SDにコマンドが送信されるとき、RAIDコントローラは典型的にはそのコマンドをSDの全てのストレージデバイスに同時に転送する。RAIDコントローラは、典型的なストレージデバイスの主な制約の3つ、つまり記ストレージデバイスが典型的にはストレージシステムの最も遅い構成要素であること、破局的故障を最も受けやすいこと、及び典型的には相対的に小さい記憶容量を有することを克服するのを助ける。
「RAIDシステム」とは、1つ又は複数のRAIDコントローラ及び幾つかのストレージデバイスを含むデバイス又はシステムである。典型的には、RAIDシステムは(一方が故障しても他方が機能し続けることができるように、更に両方が正常である間は負荷を共有するために)2つのRAIDコントローラ及び数ダースのストレージデバイスを含む。例示的実施形態では、RAIDシステムは典型的には2から32のSDで構成される。ファイルサーバがデータを記憶する又は取得する必要がある場合、ファイルサーバはRAIDシステムのRAIDコントローラにコマンドを送信し、次いでそれらのRAIDコントローラは個々のストレージデバイスにコマンドをルートし、必要に応じてデータを記憶し又は取得する役割を担う。
いくつかのRAIDシステムでは、SD間でミラー関係を確立することができ、それにより或るSD(「主SD」と呼ぶ)に書き込まれるデータが、RAIDシステムによって冗長性の目的で他のSD(本明細書では「副SD」又は「ミラーSD」と呼ぶ)に自動で書き込まれる。副SDは、正SDと同じRAIDシステムによって又は異なるローカル若しくはリモートのRAIDシステムによって管理されてもよい。SDのミラーリングは、SDの或いは或る状況では可能性のある複数のSDの喪失又は破損からの回復を提供するために、SDにわたるRAID1+0機能を効果的に提供する。
「ファイルシステム」とは、ファイルストレージシステム内に記憶されるファイル及びディレクトリ(フォルダ)の構造である。ファイルストレージシステム内で、ファイルシステムは典型的には多くの仮想記憶構造を使用して管理され、例示的実施形態では、ファイルシステムはレンジ、ストライプセット、及びスパンと呼ばれる仮想記憶構造の階層を使用して管理される。ファイルサーバのファイルシステム機能は、オブジェクト管理、空き領域管理(例えば割り当て)、及び/又はディレクトリ管理を含んでもよい。
「アーカイブ」とは、長期保持のために作成されるデータの複製又は部分的複製である。
「非同期的複製」の操作は、ストレージに書き込まれ、次いでバックアップ又は複製目的で宛先に送信されるデータトランザクションを指す。データトランザクションは、ネットワーク上で送信される及び/又は宛先に送信される前、メモリ内に保持される。更に、システム障害の場合にデータ喪失を防ぐために、トランザクションはログファイル内に保持されてもよい。トランザクションは、メモリから及び/又はログファイルから宛先に送信されてもよい。
「バックアップ」とは、運用回復及び/又は災害からの回復のために生成されるデータの複製又は部分的複製を指す。バックアップは、保護しようとする全データの完全な複製を表してもよく、又は前のバックアップ以降のデータの差異及び/又は変更を記憶する差分バックアップだけを表してもよい。更にバックアップは、例えば継続的データ保護(CDP)、又は索引付けと共に若しくは索引付けなしでリポジトリが継続的にライブアップデートで更新されるライブバックアップによって継続的に処理されてもよい。更に、バックアップはバッチで、例えば周期的に処理されてもよく、バックアップはバッチにおいて作成される。バッチバックアップは、例えば前回のバックアップ以降の変更についてソースデータを走査することを含む、予定された再同期に従ってリポジトリを周期的に又は少なくとも繰り返し更新する操作を指してもよく、変更されたデータ、変更されたファイル、及び/又は変更されたバイトだけが記憶のために宛先に転送される。
「リポジトリ」は、例えばライブバックアップ、バッチバックアップ、バージョニング、及び/又はアーカイビングのためにソースノード(又はノードのソースクラスタ)から受信されるデータを記憶するノード(又はノードのクラスタ)であってもよい。バージョニングは、ファイル、ディレクトリ、及び/又はデータ部分のバージョンがその変更時に取られるデータ保護操作を指し得る(例えば文書がファイル内に保存されるたびに、別のバージョンが保持され索引付けされ、例えば変更履歴に従って複数世代のデータを作成する)。
例示的なシステムの概要
図1Aは、例示的実施形態に係るデータシステムの概略図を例示的に示す。
図1Aのデータシステムでは、複数のクライアント装置100a及び100b(例えばホストコンピュータ)が通信ネットワークを介してウェブサーバ200に例示的に接続されている。図1Aのネットワークは有線通信ネットワーク(例えばLAN)又は無線通信ネットワーク(例えばWLAN)としてそれぞれ実装してもよく、又はインターネット接続に代表されてもよく、又はいくつかの例示的実施形態では各通信ネットワークは直接通信接続(有線又は無線)で置き換えてもよい。
クライアント装置100a及び100bのユーザは、例えばHTMLインタフェース及び/又はRESTインタフェース若しくは他のメッセージ転送プロトコルインタフェースを使用してウェブブラウザを介してウェブサーバ200にアクセスしてもよく、及び/又は例えばRESTインタフェース若しくは他のメッセージ転送プロトコルインタフェースを使用してCLI(コマンドラインインタフェース)を介してウェブサーバ200にアクセスしてもよく、ウェブサーバ200は、例えばクライアント装置100a及び100bのウェブブラウザに複数のウェブページ又は他の種類のHTML文書を提供してもよい。
他方で、図1Aのデータシステム内のウェブサーバ200は、別の通信ネットワークを介して(又は同じ通信ネットワークを介して)外部ストレージシステム900に例示的に接続され、ウェブサーバ200は、別の通信ネットワークを介して(又は同じ通信ネットワークを介して)UIC(ユーザインタフェースコントローラ)装置300に更に例示的に接続されている。
UIC装置300は、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)管理コンピュータ800、認証装置600、及び承認装置700に例示的に接続されている。
更にUIC装置300は、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)複数のストレージハンドラ装置400a、400b、及び400c(リソースハンドリングコントローラ)に例示的に接続される。
例示的には、(第1の)ストレージハンドラ装置400aは、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)複数のストレージノード500a(例えば第1ソースノード)及び500b(例えば第1宛先ノード)に通信可能に接続される。更に例示的には、(第2の)ストレージハンドラ装置400bは、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)ストレージノード500c(例えば第2ソースノード)に通信可能に接続され、ストレージノード500cがストレージノード500d(例えば第2宛先ノード)に通信可能に接続される。
上記において、例示的にはストレージノードはデータを記憶するための1又は複数のストレージデバイスを提供する物理ストレージ装置としてもよい。更にストレージノードは、データを記憶するための1又は複数のストレージボリュームを提供する論理ストレージユニットであってもよい。更に他の例示的実施形態では、ストレージノードは統一記憶空間を提供する複数のクラスタノードを有するストレージクラスタを表してもよい。概して、ストレージノードはデータを記憶するための物理的な、論理的な、又は仮想的なストレージエンティティを表してもよい。
概して、ソースノードは管理されるデータを記憶するエンティティ又は機械(例えばサーバ、ワークステーション、又は仮想マシン)を表してもよい。ソースノードは、ホストの1又は複数のファイルシステムをモニタするように構成してもよく、ユーザが定めたデータ保護ポリシに従ってデータ保護操作を実行し開始するように構成してもよい。ソースノードはデータを記憶し、ローカルに記憶されたデータを転送し、又はデータ追跡、ブロッキング、若しくは監査機能を実施するように構成されてもよい。
宛先ノードは、複製構成内のデータの受け手として指定されているリポジトリ又は汎用システム等のデータを受信する(及び記憶する)ように構成されるエンティティ又は機械(例えばサーバ、ファイルサーバ、ワークステーション、又は仮想マシン)を表してもよい。
概して、データ保護ポリシはノード又はノードグールにマップされ、少なくともソースノード及び宛先ノードを定める構成可能な目標である。つまり抽象レベルでは、データ保護ポリシは、データ保護操作のソース(ソースノード)、ソースノードによって管理される保護しようとするデータ、及び管理されるデータに対して行われるデータ保護操作の宛先(宛先ノード)のうちの少なくとも1つを定める。
従ってデータ保護ポリシは、定められたソースノードと宛先ノードとの間のデータ経路によるデータ移動操作を更に定めてもよい。データ移動操作は、例えばミラー操作、複製操作、バックアップ操作(例えばバッチバックアップ及び/又はライブバックアップ)、スナップショット操作、アーカイブ操作、バージョニング操作の、ソースノードと宛先ノードとの間で行われるデータ保護操作の種類及び/又は方向、並びにデータの移動がバッチで行われるべきか(例えばバッチバックアップ)、継続的に行われるべきか(例えば継続的データ保護又はライブバックアップとして)、又はデータを同期的に、非同期的に、若しくはログファイル内にデータを一時的な記憶を伴っての非同期的に移動するのかを定めてもよい。
更に、データ保護操作のそれぞれについて、又は複数の並列若しくはチェーンデータ保護操作のグループについて、データ保護ポリシはデータ保持時間(例えばデータ保護操作によって記憶されるデータがデータを受信する宛先ノードにおいて保持されるべき時間)、データ保護操作が行われるべき頻度、周期性、又は時間窓(例えば目標復旧ポイント等)等の更なるポリシ情報を含んでもよい。更に、追加の目的はどのデータを保護する必要があるのか(例えばファイルの種類、アプリケーションに対する関係に基づいて、ユーザグループ又は個々のユーザの素性に基づいて)、及び他の時間制約(例えばデータ保護操作を行うべきではない除外された時間窓等)を定めることができる。
図1Aでは、例示的にはユーザはクライアント装置100a又は100bを介してデータストレージシステムにログインしてもよく、又は管理者は管理コンピュータ800を介してデータストレージシステムにログインしてもよい。但しこの管理コンピュータ800は任意であってよい。例えばいくつかの例示的実施形態では、(例えば「管理者」のユーザ役割が管理アクセス特権に関連付けられることで)管理アクセス特権を有するユーザがクライアント装置100a又は100bを介して管理者としてログインしてもよいという点で、各クライアント装置100a又は100bは管理コンピュータとして使用されてもよい。
管理コンピュータ800(及び/又はユーザがクライアント装置100a又は100bを介して管理者としてログインする場合はクライアント装置100a又は100b)は、データストレージシステムの設定、管理構成、及びポリシ(例えばデータ保護ポリシ)の変更を可能にするように構成されてもよい。
UIC装置300は、例えばストレージノード500aから500dの1又は複数に記憶されるデータへの、更には外部ストレージシステム900へのアクセス要求を管理するために、データストレージシステムに対するユーザアクセス対話を管理する(例えばユーザアクセス要求のルーティングを管理する)ように例示的に構成される。
従って例示的実施形態では、UIC装置300は、ウェブサーバ200を介してユーザ用のユーザインタフェース(例えばグラフィカルユーザインタフェース/GUI、又はコマンドラインインタフェース/CLI)を介して通信するように例示的に構成されてもよい。例示的実施形態では、ユーザインタフェースは、ウェブサーバ200上で又はウェブサーバ200によってクライアントに提供されてもよい。他の実施形態では、ユーザインタフェースは、UIC装置300によって直接又はウェブサーバ200を介して間接的にクライアントに提供されてもよい。
UIC装置300は、クライアント装置100a及び100b及び/又は管理コンピュータ800のうちの1つからUIC装置300において受信されるユーザアクセス要求をストレージハンドラ装置400aから400cに通信するように構成される。特に、UIC装置300は、責任を負う1又は複数のストレージハンドラ装置400a、400b、及び400cにユーザアクセス要求をルートするように例示的に構成されてもよく、それらのストレージハンドラ装置は例示的にはそれぞれのユーザアクセス要求の実行を管理する。
各ストレージハンドラ装置400a、400b、及び400cは、ストレージノード500aから500d又は外部ストレージシステム900によって提供されるデータストレージリソースを管理するように構成されてもよい。例えば各ストレージハンドラ装置400a、400b、及び400c(リソースハンドリングコントローラ)は、データ記憶システムの1又は複数のストレージノード又は1又は複数のストレージノード上に設けられる1又は複数のストレージリソースを管理するように構成されてもよく、特に、データストレージシステムの各ストレージノード及び/又はストレージリソースは関連する1つのストレージハンドラ装置(リソースハンドリングコントローラ)によって管理され及び/又は制御されてもよい。
例えば図1Aでは、ストレージハンドラ装置400aは、ストレージノード500a及び500bによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい一方、ストレージハンドラ装置400bはストレージノード500c及び500dによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい。
例示的には、データ保護操作は、記憶ノード500aから、ストレージハンドラ装置400aによって管理される、更にはストレージハンドラ装置400aによって複製される記憶ノード500bに、データを複製することを含んでもよく、例示的にはデータ保護操作は、記憶ノード500cから、ストレージハンドラ装置400bによって管理される記憶ノード500dにデータを複製することを含んでもよく、ストレージハンドラ装置400bは記憶ノード500d(例示的にはストレージハンドラ装置400bに直接接続されていない)にデータを複製するためにかかる複製操作が記憶ノード500cによって実行されるように命令する。
更に例示的には、ストレージハンドラ装置400cは、外部ストレージシステムによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい。
図1Aでは、外部ストレージシステム900は、ウェブサーバ200に例示的に接続される。他の例示的実施形態では、外部ストレージシステム900は、UIC装置300、及び/又はストレージハンドラ装置400aから400cの1又は複数にも接続されてもよい。
好ましくは、外部ストレージシステム900へのアクセスの管理は、責任を負う1つ又は複数のストレージハンドラ装置400aから400cによって管理されるが、ストレージハンドラ装置400aから400cから外部ストレージシステム900へのメッセージ又はアクセス要求は直接送信されてもよく、又はUIC装置300及び/又はウェブサーバ200を介してルートされてもよい。
例えば外部ストレージシステム900への接続のために、責任を負うストレージハンドラは外部ストレージシステム900と接続してもよい。
例えば外部ストレージシステム900へのユーザ要求は、ウェブサーバ200及びUIC装置300を介してルートすることができ、及び/又は責任を負うストレージハンドラ装置は外部ストレージシステム900と(例えば直接、又はUIC装置300及び/又はウェブサーバ200を介してルートされて間接的に)対話する。
一部の例示的実施形態では、外部ストレージシステム900は、例えばウェブサーバ200を介してではなく、UIC装置300及び/又は、1又は複数のストレージハンドラ装置に直接接続されてもよい。
図1Bは、例示的実施形態に係る別のデータシステムの概略図を例示的に示す。
図1Bのデータシステムでは、図1Aと同様に、複数のクライアント装置100a及び100b(例えばホストコンピュータ)が、通信ネットワークを介してウェブサーバ200に例示的に接続される。
図1Bのデータシステム内のウェブサーバ200は、別の通信ネットワークを介して(又は同じ通信ネットワークを介して)外部ストレージシステム900に例示的に接続され、ウェブサーバ200は別の通信ネットワークを介して(又は同じ通信ネットワークを介して)ストレージ管理装置1000のUIC(ユーザインタフェースコントローラ)モジュール301に更に例示的に接続される。
例示的には、ストレージ管理装置1000は、UICモジュール301を含み、複数のストレージハンドラモジュール401aから401cを更に含む。UICモジュール301は、図1AのUIC装置300と同様に機能してもよく及び/又はUIC装置300と同様の処理機能を提供してもよい。ストレージハンドラモジュール401aから401cは、図1Aのストレージハンドラ装置400aから400cと同様に機能してもよく、及び/又はストレージハンドラ装置400aから400cと同様の処理機能を提供してもよい。
ストレージ管理装置1000のUICモジュール301は、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)管理コンピュータ800、認証装置600、及び承認装置700に例示的に接続される。
更にUICモジュール301(ユーザインタフェースコントローラ)は、ストレージ管理装置1000の環境内の複数のストレージハンドラモジュール401a、401b、及び401c(リソースハンドリングコントローラ)に例示的に通信可能に接続される。
例示的には、(第1)ストレージハンドラモジュール401aは、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)複数のストレージノード500a(例えば第1ソースノード)及び500b(例えば第1宛先ノード)に通信可能に接続される。更に例示的には、(第2)ストレージハンドラモジュール401bは、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)ストレージノード500c(例えば第2ソースノード)に通信可能に接続され、ストレージノード500cがストレージノード500d(例えば第2宛先ノード)に通信可能に接続される。
図1Bでは、例示的にはユーザはクライアント装置100a又は100bを介してデータストレージシステムにログインすることができ、又は管理者はストレージ管理装置1000に例示的に接続される管理装置800を介してデータストレージシステムにログインすることができる。但し、このような管理コンピュータ800は任意であってよい。例えば一部の例示的実施形態では、(例えば「管理者」のユーザ役割が管理アクセス特権に関連付けられることで)管理アクセス特権を有するユーザがクライアント装置100a又は100bによって管理者としてログインしてもよいという点で、各クライアント装置100a又は100bが管理コンピュータとして使用されてもよい。
管理装置800(及び/又はユーザがクライアント装置100a又は100bによって管理者としてログインする場合はクライアント装置100a又は100b)は、データストレージシステムの設定、管理構成、及びポリシ(例えばデータ保護ポリシ)の変更を可能にするように構成されてもよい。
UICモジュール301は、例えばストレージノード500aから500dの1又は複数に記憶されるデータへの、更には外部ストレージシステム900へのアクセス要求を管理するために、データストレージシステムに対するユーザアクセス対話を管理する(例えばユーザアクセス要求のルーティングを管理する)ように例示的に構成される。
従って例示的実施形態では、UICモジュール301は、ウェブサーバ200を介してユーザ用のユーザインタフェース(例えばグラフィカルユーザインタフェース/GUI、又はコマンドラインインタフェース/CLI)を介して通信するように例示的に構成されてもよい。例示的実施形態では、ユーザインタフェースは、ウェブサーバ200上で又はウェブサーバ200によってクライアントに提供されてもよい。他の実施形態では、ユーザインタフェースは、UICモジュール301によって直接又はウェブサーバ200を介して間接的にクライアントに提供されてもよい。
UICモジュール301は、クライアント装置100a及び100b及び/又は管理装置800のうちの1つからUICモジュール301において受信されるユーザアクセス要求をストレージハンドラモジュール401aから401cに通信するように構成される。特に、UICモジュール301は、責任を負う1又は複数のストレージハンドラモジュール401a、401b、及び401cにユーザアクセス要求をルートするように例示的に構成されてもよく、それらのストレージハンドラモジュールは例示的にはそれぞれのユーザアクセス要求の実行を管理する。
各ストレージハンドラモジュール401a、401b、及び401cは、ストレージノード500aから500d又は外部ストレージシステム900によって提供されるデータストレージリソースを管理するように構成されてもよい。例えば各ストレージハンドラモジュール401a、401b、及び401c(リソースハンドリングコントローラ)は、データストレージシステムの1つ又は複数のストレージノード、又は1又は複数のストレージノード上に設けられる1又は複数のストレージリソースを管理するように構成されてもよく、特にデータストレージシステムの各ストレージノード及び/又はストレージリソースは関連する1つのストレージハンドラ装置(リソースハンドリングコントローラ)によって管理され及び/又は制御されてもよい。
例えば図1Bでは、ストレージハンドラモジュール401aは、ストレージノード500a及び500bによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい一方、ストレージハンドラモジュール401bはストレージノード500c及び500dによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい。
例示的には、データ保護操作は、ストレージノード500aから、ストレージハンドラモジュール401aによって管理される、更にはストレージハンドラモジュール401aによって複製されるストレージノード500bにデータを複製することを含んでもよい、例示的にはデータ保護操作は、ストレージノード500cからストレージハンドラモジュール401bによって管理されるストレージノード500dにデータを複製することを含んでもよく、ストレージハンドラモジュール401bは記憶ノード500d(例示的にはストレージハンドラモジュール401bに直接接続されていない)にデータを複製するためにかかる複製操作がストレージノード500cによって実行されることを命令する。
更に例示的には、ストレージハンドラモジュール401cは、外部ストレージシステムによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい。
従って図1Aとの違いとして、図1Bによる例示的実施形態では、UICモジュール301及びストレージハンドラモジュール401aから401bが、図1Aに例示的に示すように別個の装置として例示的に実装されるのではなく、同じストレージ管理装置1000上に実装される。更なる例示的実施形態では、UICモジュール301は、1つの装置上に実装することができ、ストレージハンドラモジュール401aから401bを別の装置上に実装することができる。
概して、UIC(ユーザインタフェースコントローラ)及びストレージハンドラ(リソースハンドリングコントローラ)は、ハードウェア(機械、ワークステーション、コンピュータ、サーバ、更には機械、ワークステーション、コンピュータ、サーバのクラスタ等を含む)によって、又はソフトウェアによって(例えば機械、ワークステーション、コンピュータ、サーバ、更には機械、ワークステーション、コンピュータ、サーバのクラスタ上で実行可能な別個の又は複合ソフトウェアモジュール等によって、又は分散クラウドサービスとしてさえ)、又はハードウェアとソフトウェアとの任意の組み合わせによって(例えば仮想マシンとして又は、1又は複数の仮想マシン上で実行されるもの等として)実装してもよい。
ストレージハンドラ(リソースハンドリングコントローラ)をソフトウェアモジュールとして提供することには、追加のストレージノード又はストレージシステムを追加して更なる管理可能なストレージリソースを提供する場合、その新たに追加したストレージリソースが1又は複数の過去に確立されたストレージハンドラモジュール(リソースハンドリングコントローラ)の1又は複数によって管理されるように割り当てられること、又は新たに追加したストレージリソースの1又は複数を管理するために1又は複数の新たなストレージハンドラモジュールを開始させ、作成させ、又はインストールさせることができることの利点がある。例えば一部の例示的実施形態では、新たに追加されたストレージリソースごとに及び/又は新たに追加されたストレージノードごとに、それぞれの新たに追加されたストレージリソースを管理するために及び/又は新たに追加されたストレージノードを管理するために、それぞれの新たなストレージハンドラモジュール(リソースハンドリングコントローラ)を開始させ、作成させ、又はインストールさせてもよい。
図1Bでは、外部ストレージシステム900がウェブサーバ200に例示的に接続されている。他の例示的実施形態では、外部ストレージシステム900がストレージ管理装置1000に接続されてもよい。
好ましくは、ストレージ記憶システム900へのアクセスの管理は、責任を負う1又は複数のストレージハンドラモジュール401aから401cによって管理されるが、ストレージハンドラモジュール401aから401cから外部ストレージシステム900へのメッセージ又はアクセス要求は直接送信されてもよく、又はUICモジュール301及び/又はウェブサーバ200を介してルートされてもよい。
例えば外部ストレージシステム900への接続のために、責任を負うストレージハンドラは外部ストレージシステム900とインタフェースで接続してもよい。
例えば外部ストレージシステム900へのユーザ要求は、ウェブサーバ200及びUICモジュール301を介してルートすることができ、及び/又は責任を負うストレージハンドラモジュールが外部ストレージシステム900と(例えば直接、又はUICモジュール301及び/又はウェブサーバ200を介してルートされて間接的に)対話する。
一部の例示的実施形態では外部ストレージシステム900が、例えばウェブサーバ200を介してではなく、UICモジュール301及び/又はストレージハンドラモジュールの1又は複数に直接接続され得る。
図1Cは、例示的実施形態に係る別のデータシステムの概略図を例示的に示す。
図1Cのデータシステムでは、図1A及び図1Bと同様に複数のクライアント装置100a及び100b(例えばホストコンピュータ)が通信ネットワークを介してウェブサーバ200に例示的に接続され、ウェブサーバ200は別の通信ネットワークを介して(又は同じ通信ネットワークを介して)外部ストレージシステム900に例示的に接続され、ウェブサーバ200は、別の通信ネットワークを介して(又は同じ通信ネットワークを介して)ストレージ管理装置1001のUIC(ユーザインタフェースコントローラ)モジュール301に更に例示的に接続される。
例示的には、ストレージ管理装置1001は、UICモジュール301を含み、複数のストレージハンドラモジュール401aから401cを更に含む。UICモジュール301は、図1AのUIC装置300及び図1BのUICモジュール301と同様に機能できてもよく及び/又は同様の処理機能を提供できてもよい。ストレージハンドラモジュール401aから401cは、図1Aのストレージハンドラ装置400aから400c及び図1Bのストレージハンドラモジュール401aから401cと同様に機能してもよく及び/又はかかるストレージハンドラ装置400aから400c及びストレージハンドラモジュール401aから401cと同様の処理機能を提供してもよい。
ストレージ管理装置1001のUICモジュール301は、別の通信ネットワークによる別のネットワークを介して(又は同じ通信ネットワークを介して)管理モジュール801、認証モジュール601、及び承認モジュール701に例示的に接続され、それらのモジュールもストレージ管理装置1001内に例示的に含まれる。
更にUICモジュール301(ユーザインタフェースコントローラ)は、図1Bの構成と同様にストレージ管理装置1001の環境内の複数のストレージハンドラモジュール401a、401b、及び401c(リソースハンドリングコントローラ)に例示的に通信可能に接続される。
図1Cでは、例示的にはユーザはクライアント装置100a又は100bを介してデータ記憶システムにログインしてもよく、又は管理者はストレージ管理装置1001の管理モジュール801を介してデータストレージシステムにログインしてもよい。一部の例示的実施形態では、(例えば「管理者」のユーザ役割が管理アクセス特権に関連付けられることで)管理アクセス特権を有するユーザがクライアント装置100a又は100bによって管理者としてログインしてもよいという点で、各クライアント装置100a又は100bが管理コンピュータとして使用されてもよい。
管理モジュール801(及び/又はユーザがクライアント装置100a又は100bによって管理者としてログインする場合はクライアント装置100a又は100b)は、データストレージシステムの設定、管理構成、及びポリシ(例えばデータ保護ポリシ)の変更を可能にするように構成されてもよい。但しこの管理モジュール801は任意であってよい。例えば一部の例示的実施形態では、(例えば「管理者」のユーザ役割が管理アクセス特権に関連付けられることで)管理アクセス特権を有するユーザがクライアント装置100a又は100bによって管理者としてログインしてもよいという点で、各クライアント装置100a又は100bが管理コンピュータとして使用されてもよい。
管理モジュール801は、構成、設定、及びその変更を入力するためのユーザインタフェースを介して、例えば記憶管理装置1001におけるGUI(グラフィカルユーザインタフェース)及び/又はCLI(コマンドラインインタフェース)を介して通信してもよい。例示的実施形態では、ユーザインタフェースはウェブサーバ200上で又はウェブサーバ200によってクライアントに提供されてもよい。他の実施形態では、ユーザインタフェースはUICモジュール301によって直接又はウェブサーバ200を介して間接的にクライアントに提供されてもよい。
例えば管理モジュール801は、ウェブサーバ200によってクライアント装置(複数も可)に提供されるグラフィカルユーザインタフェース及び/又はコマンドラインインタフェースによってアクセスされるように構成されてもよい。次いでユーザは、管理モジュール801にアクセスすることによって管理設定を変更するためにクライアント装置100a又は100bを介してデータストレージシステムにログインしてもよい。
管理モジュール801は、ソフトウェア及び/又はハードウェアによって提供されてもよい。一部の例示的実施形態では、管理モジュール801はUICモジュール301の一部であってもよく又はUICモジュール301に含まれてもよい。UICモジュール301は、例えば記憶ノード500aから500dの1又は複数に記憶されるデータへの、更には外部ストレージシステム900へのアクセス要求を管理するために、データストレージシステムに対するユーザアクセス対話を管理するように例示的に構成される。
従って例示的実施形態では、UICモジュール301は、それぞれのクライアント装置/コンピュータにおいてウェブサーバ200を通して提供されるように、ユーザ用のユーザインタフェース(例えばグラフィカルユーザインタフェース/GUI又はコマンドラインインタフェース/CLI)をウェブサーバ200を介して提供するように例示的に構成されてもよい。
UICモジュール301は、クライアント装置100a及び100b及び/又は管理モジュール801のうちの1つからUICモジュール301において受信されるユーザアクセス要求をストレージハンドラモジュール401aから401cに通信するように構成される。
特に、UICモジュール301は、責任を負う1つ又は複数のストレージハンドラモジュール401a、401b、及び401cにユーザアクセス要求をルートするように例示的に構成されてもよく、それらのストレージハンドラモジュールは例示的にはそれぞれのユーザアクセス要求の実行を管理する。
各ストレージハンドラモジュール401a、401b、及び401cは、ストレージノード500aから500d又は外部ストレージシステム900によって提供されるデータストレージリソースを管理するように構成されてもよい。例えば各ストレージハンドラモジュール401a、401b、及び401c(リソースハンドリングコントローラ)は、データストレージシステムの1又は複数のストレージノード又は、1又は複数のストレージノード上に設けられる1又は複数のストレージリソースを管理するように構成されてもよく、特にデータストレージシステムの各ストレージノード及び/又はストレージリソースは、関連する1つのストレージハンドラ装置(リソースハンドリングコントローラ)によって管理され及び/又は制御されてもよい。
例えば外部ストレージシステム900への接続のために、責任を負うストレージハンドラは外部ストレージシステム900とインタフェースを介して接続してもよい。例えば外部ストレージシステム900へのユーザ要求はウェブサーバ200及びUICモジュール301を介してルートすることができ、責任を負うストレージハンドラは外部ストレージシステム900と(例えば直接、又はUICモジュール301及びウェブサーバ200を介してルートされて間接的に)対話する。一部の例示的実施形態では外部記憶システム900が、例えばウェブサーバ200を介してではなく、UICモジュール301及び/又はストレージハンドラモジュールの1又は複数に直接接続され得る。
図1Cでは、ストレージハンドラモジュール401aはストレージノード500a及び500bによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい一方、ストレージハンドラモジュール401bはストレージノード500c及び500dによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい。
例示的には、データ保護操作は、ストレージノード500aからストレージハンドラモジュール401aによって管理される、更にはストレージハンドラモジュール401aによって複製されるストレージノード500bにデータを複製することを含んでもよく、例示的にはデータ保護操作は、ストレージノード500cからストレージハンドラモジュール401bによって管理されるストレージノード500dにデータを複製することを含んでもよく、ストレージハンドラモジュール401bは(例示的にはストレージハンドラモジュール401bに直接接続されていない)ストレージノード500dにデータを複製するためにかかる複製操作がストレージノード500cによって実行されることを命令する。
更に例示的には、ストレージハンドラモジュール401cは、外部ストレージシステムによって提供される1又は複数のデータストレージリソースを管理するように構成されてもよい。
従って図1Bと同様だが図1Aとの違いとして、図1Cによる例示的実施形態では、UICモジュール301及びストレージハンドラモジュール401aから401bが、図1Aに例示的に示すように別個の装置として例示的に実装されるのではなく、同じストレージ管理装置1001上に実装される。更なる例示的実施形態では、UICモジュール301を1つの装置上に実装することができ、ストレージハンドラモジュール401aから401bを別の装置上に実装することができる。
図1Cでは、外部ストレージシステム900がストレージ管理装置1001に例示的に接続されている。他の例示的実施形態では、外部ストレージシステム900がウェブサーバ200を介して接続されてもよい。
好ましくは、外部ストレージ記憶システム900へのアクセスの管理は、責任を負う1又は複数のストレージハンドラモジュール401aから401cによって管理されるが、ストレージハンドラモジュール401aから401cから外部ストレージシステム900へのメッセージ又はアクセス要求は直接送信されてもよく、又はUICモジュール301及び/又はウェブサーバ200を介してルートされてもよい。
例えば外部ストレージシステム900への接続のために、責任を負うストレージハンドラは外部ストレージシステム900とインタフェースにより、接続することができる。
例えば外部ストレージシステム900へのユーザ要求はウェブサーバ200及びUICモジュール301を介してルートすることができ、及び/又は責任を負うストレージハンドラモジュールが外部ストレージシステム900と(例えば直接、又はUICモジュール301及び/又はウェブサーバ200を介してルートされて間接的に)対話する。
一部の例示的実施形態では外部ストレージシステム900が、例えばウェブサーバ200を介してではなく、UICモジュール301及び/又はストレージハンドラモジュールの1又は複数に直接接続され得る。
概して、UIC(ユーザインタフェースコントローラ)及びストレージハンドラ(資源ハンドリングコントローラ)は、ハードウェア(機械、ワークステーション、コンピュータ、サーバ、更には機械、ワークステーション、コンピュータ、サーバのクラスタ等を含む)によって、又はソフトウェアによって(例えば機械、ワークステーション、コンピュータ、サーバ、更には機械、ワークステーション、コンピュータ、サーバのクラスタ上で実行可能な別個の又は複合ソフトウェアモジュール等によって、又は分散クラウドサービスとしてさえ)、又はハードウェアとソフトウェアとの任意の組み合わせによって(例えば仮想マシンとして又は1又は数の仮想マシン上で実行されるもの等として)実装することができる。
ストレージハンドラ(リソースハンドリングコントローラ)をソフトウェアモジュールとして提供することには、追加のストレージノード又はストレージシステムを追加して更なる管理可能なストレージリソースをもたらす場合、その新たに追加したストレージリソースが1又は複数の過去に確立されたストレージハンドラモジュール(リソースハンドリングコントローラ)の1又は複数によって管理されるように指定されてもよい、又は新たに追加したストレージリソースの1又は複数を管理するために1又は複数の新たなストレージハンドラモジュールを開始し、作成し、又はインストールしてもよい利点がある。例えば一部の例示的実施形態では、新たに追加されるストレージリソースごとに及び/又は新たに追加されるストレージノードごとに、それぞれの新たに追加されるストレージリソースを管理するために及び/又は新たに追加されるストレージノードを管理するために、それぞれの新たなストレージハンドラモジュール(リソースハンドリングコントローラ)を開始し、作成し、又はインストールしてもよい。
更に、管理モジュール801、認証モジュール601、及び承認モジュール701は、図1A及び図1Bに例示的に示すように別個の装置として例示的に実装されるのではなく、同じ記憶管理装置1001上に例示的に実装される。
概して、管理、認証、及び承認装置/モジュールは、ハードウェア(機械、ワークステーション、コンピュータ、サーバ、更には機械、ワークステーション、コンピュータ、サーバのクラスタ等を含む)によって、又はソフトウェアによって(例えば機械、ワークステーション、コンピュータ、サーバ、更には機械、ワークステーション、コンピュータ、サーバのクラスタ上で実行可能な別個の又は複合ソフトウェアモジュール等によって、又は分散クラウドサービスとしてさえ)、又はハードウェアとソフトウェアとの任意の組み合わせによって(例えば仮想マシンとして又は、1又は複数の仮想マシン上で実行されるもの等として)実装してもよい。
上記の例示的実施形態では、例示的には、それぞれのストレージハンドラ装置/モジュールはソースノード及び/又は宛先ノードを管理すること、及びソースノードから宛先ノードに行われるデータ保護操作を処理すること、管理すること、又は制御することを担ってもよい。選択的に又は加えて、異なるストレージハンドラ装置/モジュールがソースノード又はソースノードによって提供されるデータストレージリソースを管理してもよく、宛先ノード又は宛先ノードによって提供されるデータストレージリソースは別の(又は他の複数の)ストレージハンドラ装置/モジュールによって管理され、異なるストレージハンドラ装置/モジュールが宛先ノード又は宛先ノードによって提供されるデータストレージリソースを管理してもよく、ソースノード又はソースノードによって提供されるデータストレージリソースは別の(又は他の複数の)ストレージハンドラ装置/モジュールによって管理される。更に例示的実施形態では、1又は複数のストレージハンドラ装置/モジュールは、ソースノード又はソースノードによって提供されるデータストレージリソースのみを管理してもよく、他の1又は複数のストレージハンドラ装置は宛先ノード又は宛先ノードによって提供されるデータストレージリソースのみを管理してもよい。
例示的なユーザ認証プロセス
ユーザ認証プロセスのために、本明細書ではUIC(ユーザインタフェースコントローラ)とだけ更に呼ぶUIC装置300(又はUICモジュール301)は、本明細書では「認証モジュール」とだけ更に呼ぶ認証装置600(又は認証モジュール601)と通信するように例示的に構成される。
例えばユーザが、ウェブサーバ200によって提供されるグラフィカルユーザインタフェース、コマンドラインインタフェース、又は別のユーザインタフェースによってクライアントコンピュータ(クライアント装置)からUICにログインする場合、ユーザ名(又は他のユーザ識別子)及びパスワードを示す、対応するログイン要求がUICにおいて受信されてもよい。
このようなユーザ名(又は他のユーザ識別情報)及びパスワードは、クライアント装置においてUIC(ユーザインタフェースコントローラ)に与えられる、ウェブサーバ200のユーザインタフェース(例えばCLI又はGUI等)を介してそれぞれのユーザによって入力されてもよい。
図2は、いくつかの例示的実施形態に係るユーザ認証のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS21で、UIC(ユーザインタフェースコントローラ)は、クライアント装置100a又は100bからログインしようとしているユーザのユーザ名(及び/又はユーザ役割;典型的な例示的実施形態において該当し得るようにユーザ役割が含まれない場合、任意選択的にユーザ役割はユーザ名に関連するユーザプロファイルに基づいて後で決定されてもよい)を含むログイン要求を例えばウェブサーバ200を介して受信する。ログイン要求は、例示的にはユーザから入力されたパスワードを更に含む。パスワードは、ログイン要求と共に(例えば所定のハッシング関数又はハッシングアルゴリズムによってパスワードをハッシングすることによって)符号化形式及び/又は暗号化形式で送信されてもよい。更に、パスワードは、例えばTLS及び/又はSSLv3等のSSL暗号化を使用すること等の他の暗号化技法を使用してネットワーク上で送信されてもよい。
いくつかの例示的実施形態では、ログイン要求はデータストレージシステムへのログインを試みるユーザのユーザドメインを更に示してもよい。本明細書の全体を通して使用されるユーザドメイン又は単純にドメインと呼ばれる用語は、例えばアクティブディレクトリドメイン等のより狭い意味でのドメインを指してもよく、又はより広い意味ではユーザの認証空間を広く指してもよい。ユーザドメイン又はドメインは、一般的にユーザを追加することができ(又はユーザを除去することができ)、1又は複数の下位グループも有するユーザグループと見なしてもよい。
ステップS22で、UICは、受信済みのログイン要求又はログイン要求から取得し若しくは復号した対応するログイン情報を認証モジュールに送信する。複数のユーザドメインがある場合、例えば各認証モジュールが複数のユーザドメインのうちのそれぞれの1又は複数のユーザのユーザ認証を担ってもよい点で、データ記憶システムが複数の認証モジュール(モジュール、装置、又はシステム)を含んでもよい。
このような例示的実施形態では、ステップ22は、UICにおける受信したログイン要求に関連するそれぞれのユーザのユーザドメインを決定すること、及び受信されたログイン要求(又はログイン要求から取得され若しくは復号される対応するログイン情報)を決定された認証モジュールに送信するための責任を負う認証モジュールを決定することを更に含んでもよい。
ステップS23で、認証モジュールは、UICからログイン要求(又はログイン要求から取得され若しくは復号される対応するログイン情報)を受信すると、UICから受信されたユーザに関連するログイン要求(又はユーザログイン情報)をチェックして、認証モジュールのデータベース内に記憶されている認証データに基づいてユーザを認証できるか否かを決定する。
例えばユーザの認証は、認証モジュールのデータベース内に記憶される認証データがユーザログイン要求に関連するそれぞれのユーザのユーザ名に関する認証データを有し、且つパスワード又はその暗号化表現がユーザログイン要求に関連するそれぞれのユーザのユーザ名に関する認証データと一致する場合は、成功したと決定することができる。さもなければユーザの認証は不成功だと決定される。
いくつかの例示的実施形態では、例えばユーザの資格情報を例えばローカルコンピュータ及び/又はリモートコンピュータ上のアクティブディレクトリ、LDAP、又はローカルセキュリティサービス等のサードパーティ認証システムに照らしてチェックすることにより、外部の認証サービス/システムを使用することによって認証プロセスを実行してもよい。その場合(例えば以下に記載の認証プロセスの代わりに、サードパーティ認証システムとの対話に基づいて認証を付与し又は拒否してもよく、ステップS23、S24、S25、及び/又はS27若しくは同様のものがサードパーティ認証システムによって実行されてもよい)。
ステップS23で、認証モジュールは、例えばユーザログイン要求が事前登録されたユーザに実際に関連すること(即ちそのユーザが主張通りの人物であること)を認証するために、ユーザログイン要求に関連するそれぞれのユーザのユーザ認証が成功したかどうかを例示的にチェックする。
ステップS23がNOを返す場合、認証モジュールはステップS25で拒否メッセージをUICに単純に送信してもよく、ステップS26でUICは(例えばエラー又はアクセス拒否のメッセージをユーザに与えるようにウェブサーバ200に指示することによって)アクセスを拒否してもよい。これでこのプロセスは終了してもよい。
他方でステップS23がYESを返す場合、認証モジュールは、ステップS27で、例えば認証されたユーザに関連するユーザ情報を含む確認メッセージをUICに送信し、その確認を受信すると、ステップS28でUICはログイン要求に関連するユーザのセッション開始を例示的に始め、ステップS29でアクセス制御目的でユーザ承認プロセスを続ける(例えば図3参照)。
S27で送信される「ユーザ情報」と呼ばれる情報は、いくつかの例示的実施形態ではユーザ資格情報であってもよい。
いくつかの例示的実施形態では、ユーザ資格情報は、ログイン要求に関連するユーザのユーザ名(及び任意選択的にユーザドメイン)を確認してもよく、又は他の例示的実施形態では、ユーザ資格情報はユーザID等のユーザ識別子を含んでもよい。ユーザ資格情報は、任意選択的にユーザのパスワードのハッシュ値を追加で含むことができる。但し、そのような情報は通常はユーザのパスワードを含まない。
他の例示的実施形態では、S27で送信されるユーザ情報はユーザ名等の個人的ユーザ情報を送信しなくてもよいが、ユーザ情報はユーザが属するグループに関する「メンバシップ情報」又は「グループ情報」を含んでもよい。例えば、そのユーザの「メンバシップ情報」は、ユーザが属するグループ及び/又はユーザのドメインの少なくとも1つを示してもよい。
S27で送信される情報は、以下に記載の例示的実施形態の承認プロセスの中で使用してもよい。
上記の認証プロセスは任意選択的であり、いくつかの例示的実施形態では安全な環境内でユーザ認証プロセスを飛ばしてもよいことに留意すべきである。更に、より単純な認証プロセスを使用してもよく、ユーザ認証プロセスはUICによって直接実行されるようにUIC内に実装されていてもよい。
更に、上記の例示的な認証プロセスはパスワードの使用に依存するが、顔認識、音声認識、及び/又は指紋識別等のバイオメトリックス情報に基づく及び/又はタッチスクリーンフィンガパターン認証等にも基づく、ログイン要求に関連する特定のユーザを識別するための他の認証プロセスも(代わりに又は追加で)実行されてもよいことに留意すべきである。
例示的なユーザ承認プロセス(アクセス制御承認)
ユーザ承認目的で、例えばアクセス制御に関連して、UICは承認モジュール/装置と通信するように例示的に構成される。例えばユーザが(例えばウェブサーバ200によって提供されるグラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース(CLI)、又は別のユーザインタフェースによってクライアントコンピュータ(クライアント装置)から)UICにログインする場合、ユーザ名(又は他のユーザ識別子)を示す対応するログイン要求がUICにおいて受信され得る。
例えば上記のように任意選択的な認証プロセスを行うとき、UICはログイン要求に関連するユーザのユーザ名に基づいて承認プロセスの開始を実行してもよい。
更にUIC(ユーザインタフェースコントローラ)は、例えばユーザ名及び/又はユーザID等のユーザ識別子を使用することにより、又はユーザのグループ及び/又はドメインに関する情報を使用することにより、上記の認証プロセスによって与えられるログイン要求に関連するユーザのユーザ資格情報又はメンバシップ情報等のユーザ情報に基づいて承認プロセスの開始を実行してもよい。
例示的には、いくつかの例示的実施形態におけるユーザ承認は役割ベースアクセス制御(RBAC)スキームを使用することによって行われる。しかし、役割ベースアクセス制御(RBAC)スキームを使用することは好ましい例示的態様だが、いくつかの例示的実施形態では(定められたユーザ役割なしの)他のアクセス制御スキームが使用されてもよい。
概して、役割ベースアクセス制御(RBAC)スキームは、例えば特定のユーザ役割に関連する各ユーザが特定のユーザ役割に関連する活動を実行することを(又はその実行を要求することを)許可されてもよいという点において、1又は複数のユーザ役割のそれぞれとそれぞれのユーザ役割のユーザに関連する1又は複数の許容ユーザ活動との間の関連付けを定めてもよい。
1又は複数のユーザ役割のそれぞれとそれぞれのユーザ役割のユーザに関連する1つ又は複数の許容ユーザ活動との間のそのような関連付けは、そのような関連付けがそれぞれのユーザ役割のユーザについて許可される1又は複数の活動をユーザ役割ごとに定める肯定的方法で定めてもよい。いくつかの例示的実施形態では、(加えて又は代替的に)1又は複数のユーザ役割のそれぞれとそれぞれのユーザ役割のユーザに関連する1又は複数の許容ユーザ活動との間の関連付けは、かかる関連付けがそれぞれのユーザ役割のユーザについて許可すべきではない複数の活動のうちの1又は複数の活動をユーザ役割ごとに定める否定的方法で任意選択的に定めてもよい。
(定められたユーザ役割なしの)別のアクセス制御スキームが使用され得る場合、アクセス制御スキームは、例えば各ユーザが自らに関連付けられた活動を実行することを(又はその実行を要求することを)それぞれ許可され得るという点において、1又は複数のユーザのそれぞれとそれぞれのユーザに関連する1又は複数の許容ユーザ活動との間の関連付けを直接定めてもよい。
複数のユーザのそれぞれとそれぞれのユーザに関連する1又は複数の許容ユーザ活動との間のそのような関連付けは、そのような関連付けがそれぞれのユーザについて許可される1又は複数の活動をユーザごとに定める肯定的方法で定めてもよい。いくつかの例示的実施形態では、(加えて又は代替的に)複数のユーザのそれぞれとそれぞれのユーザに関連する1又は複数の許容ユーザ活動との間のそのような関連付けは、そのような関連付けがそれぞれのユーザについて許可すべきではない複数の活動のうちの1又は複数の活動をユーザごとに定める否定的方法で定めてもよい。
それでもなお、本開示はそれに限定されないが、いくつかの例示的実施形態では役割ベースアクセス制御(RBAC)スキームを使用することは好ましい例示的態様であり、それはかかる役割ベースアクセス制御(RBAC)が個人ユーザごとに許容活動の関連付けを定める必要がないが(システム内には数百人更には数千人ものユーザがいる可能性がある)、(ユーザの総数よりも少ない数の)様々なユーザグループを定めることを許容してもよいからであり、各ユーザグループは1組の特定の1又は複数の許容活動に関連する特定のユーザ役割に関連付けられる。更に、過去に定められている可能性がある適切なユーザ役割を新たなユーザに割り当てるだけでよいので、又は多くのユーザの新たなグループについて新たなユーザ役割を効率的に定めることができるので、システムに新たなユーザ(更には新たなユーザグループ)を追加することがより効率的になる。
概して、ユーザ役割には1又は複数の活動及び/又は活動の1又は複数の活動グループを関連付けてもよく、特定のユーザ役割のユーザは、その特定のユーザ役割に関連する1又は複数の活動及び/又は活動の1又は複数の活動グループを実行することを許可される。例えば第1ユーザ役割は第1活動及び/又は第1活動グループを実行することを許可してもよい一方、他の第2役割は第2活動及び/又は第2活動グループを実行することを許可してもよい。
更にいくつかの例示的実施形態では、例えば特定のユーザ役割をそのそれぞれのユーザ役割のユーザによって特定のリソースに対して行われ得る特定の活動に関連付けることができるという点において、ユーザ役割をリソースに関連付けたり又はリソースに対して制御できたりしてもよいことにも留意すべきである。例えば第1ユーザ役割は第1リソースに対して(及び/又は第1リソースグループに対して)第1活動(及び/又は第1活動グループ)を実行することを許可してもよい一方、他の第2役割は第2リソースに対して(及び/又は第2リソースグループに対して)第2活動(及び/又は第2活動リソース)を実行することを許可してもよい。
更にいくつかの例示的実施形態では、活動を実行することが許可された特定のリソースにユーザ役割を関連付けることができるように、ユーザ役割をリソースに関連付けることができる。例えば第1ユーザ役割は第1リソースに対して(及び/又は第1資源グループ群に対して)1又は複数の活動を実行することを許可してもよい一方、別の第2役割は第2リソースに対して(及び/又は第2資源グループに対して)1又は複数の活動を実行することを許可し得る。
ユーザ承認プロセスの例示的態様を以下で説明するが、ユーザ承認プロセスの全体的な例示的態様は図3に関して以下で説明する。
この例では、ユーザのアクセス許可は、現在システムにログインしている特定のユーザに関連するアクセス制御プロファイル情報内に記載される。例示的には、そのようなユーザ承認プロセスはセッション開始時に(即ちユーザのログイン後に、任意選択的にはユーザ認証プロセスの成功の確認時に)UICによって例示的に実行される。
図3は、一部の例示的実施形態に係るユーザ承認プロセスのためのプロセスの流れ図を例示的に示す。
例示的には、ステップS31で(例えば上記の認証プロセスの後、又は特定のユーザからログイン要求を受信してすぐ)UIコントローラ(UIC)がユーザ承認プロセスを開始し、(例えばユーザのユーザ名、ユーザのユーザID、又は認証モジュール若しくは認証装置600から受信される資格情報を使用することによって例えばユーザの識別情報を示す、及び/又はユーザグループ及び/又はドメインを示す)対応する承認要求を承認モジュール/装置に送信する。
承認モジュールはログイン要求に関連するユーザの、対応する承認要求を受信し、ステップS32で、複数のユーザと1又は複数のアクセス制御プロファイルとの間の関連付けを記憶し得る自らの承認データベースを探索する。承認データベースは、個人ユーザに関するアクセス制御プロファイル(例えばユーザごとの1又は複数の関連するアクセス制御プロファイル)、ユーザグループに関するアクセス制御プロファイル(例えばユーザグループごとの1又は複数の関連するアクセス制御プロファイル)、及び/又はユーザドメインに関するアクセス制御プロファイル(例えばユーザドメインごとの1又は複数の関連するアクセス制御プロファイル)に対する関連付けを記憶してもよい。
従って、承認装置/モジュールは、ログイン要求に関連するユーザの対応する承認要求に基づき、それぞれのユーザ(及び/又はユーザグループ及び/又はユーザドメイン)に関する1又は複数のアクセス制御プロファイル、即ちそれぞれのユーザ(及び/又はユーザグループ及び/又はユーザドメイン)に関連する1又は複数のアクセス制御プロファイルを決定するように、及び/又はそれぞれのユーザ(及び/又はユーザグループ及び/又はユーザドメイン)のユーザ役割に関連する1又は複数のアクセス制御プロファイルを決定するように構成される。
例えば承認データベースは、複数のユーザ(及び/又はユーザグループ及び/又はユーザドメイン)のユーザごとに、それぞれのユーザ(及び/又はユーザグループ及び/又はユーザドメイン)に関連する1又は複数のアクセス制御プロファイルを記憶してもよく、及び/又は、1又は複数のアクセス制御プロファイルのアクセス制御プロファイルごとに、それぞれのアクセス制御プロファイルに関連する0、1、又はそれを上回るユーザ(及び/又はユーザグループ及び/又はユーザドメイン)を記憶してもよい。
加えて又はそれに代えて、承認データベースは、1つ又は複数のユーザ役割のユーザ役割ごとに、それぞれのユーザ役割に関連する1又は複数のアクセス制御プロファイルを記憶してもよく、及び/又は、1又は複数のアクセス制御プロファイルのアクセス制御プロファイルごとに、それぞれのアクセス制御プロファイルに関連する1又は複数のユーザ役割を記憶してもよい。次いで承認データベースは、好ましくは、複数のユーザ(及び/又はユーザグループ及び/又はユーザドメイン)のユーザごとに、それぞれのユーザ(及び/又はユーザグループ及び/又はユーザドメイン)に関連する1つ(又は複数)のユーザ役割を記憶してもよく、及び/又は、承認データベースは、好ましくは、1又は複数のユーザ役割のユーザ役割ごとに、それぞれのユーザ役割に関連する0、1、又はそれを上回るユーザ(及び/又はユーザグループ及び/又はユーザドメイン)も記憶してもよい。
更なる例示的実施形態では、承認データベースは、複数のユーザの各ユーザを1又は複数のユーザグループのうちのそれぞれのユーザグループに関連付けるユーザグループ情報、及び/又は、1又は複数のユーザグループの各ユーザグループを複数のユーザのうちのそれぞれのユーザに関連付けるユーザグループ情報を記憶してもよい。このような例示的実施形態では、承認データベースは、1又は複数のユーザグループのそれぞれを1又は複数のアクセス制御プロファイルに関連付ける、及び/又は、1又は複数のアクセス制御プロファイルのそれぞれを1又は複数のユーザグループに関連付けるアクセス制御プロファイル関連付け情報を更に記憶してもよい。
ここではグループは、ユーザドメインも指してもよく(例えばユーザbob@domain.comとmary@domain.comとは同じドメイン「@domain.com」に属する異なるユーザであってもよい)、及び/又はグループ内の複数のユーザのユーザグループ(例えば特定のドメインの全ユーザの下位グループ)を指してもよい。
概して、上記の内容に基づき、承認データベース内でそれぞれのログイン要求に関連するそれぞれのユーザを探索することにより、承認モジュール/装置は、それぞれのログイン要求に関連するそれぞれのユーザに関連する1又は複数のアクセス制御プロファイルを、例えばユーザとアクセス制御プロファイルとの間の関連付けによって直接、又はそれぞれのログイン要求に関連するそれぞれのユーザに関連するユーザグループ及び/又はユーザ役割を決定することを含む関連付けによって間接的に決定することができる。
以下でより詳細に説明するように、各アクセス制御プロファイルはそれぞれのアクセス制御プロファイル情報に関係することができ、好ましい例示的態様では、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、好ましくは実行することが許可されている(又はそれぞれのアクセス制御プロファイルに関連すると判定されるユーザによって実行のために要求されることが許可されている)1又は複数の活動(又はユーザ活動)、及びそれぞれのアクセス制御プロファイルに関連すると判定されるユーザによってアクセスされることが許可されている(例えばストレージノード又はストレージノードグループがデータストレージリソースを表し得るという意味で及び/又は、1又は複数のストレージリソースを提供し得るという意味で、例えば上記のようにストレージノードによって与えられる又は上記で論じたようにストレージノードによって表される)1又は複数のデータストレージリソース(例えば許可された活動を実行すること又は要求することをユーザが認められている1又は複数のデータストレージリソース)を少なくとも示してもよい。
上記の内容に加えて(又はその代わりに)、好ましい例示的態様では、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、好ましくはユーザによって実行されることが許可されている1又は複数の活動(又はユーザ活動)及びそれぞれのアクセス制御プロファイルに関連すると判定されるユーザによってアクセスされることが許可されている1又は複数のデータストレージリソースを少なくとも示してもよく、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、1又は複数のリソースグループを示すことができ、各リソースグループは1又は複数のデータストレージリソースに関連する。
上記の内容に加えて(又はその代わりに)、好ましい例示的態様では、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、好ましくはユーザによって実行されることが許可されている1又は複数の活動(又はユーザ活動)及びそれぞれのアクセス制御プロファイルに関連すると判定されるユーザによってアクセスされることが許可されている1又は複数のデータストレージリソースを少なくとも示してもよく、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、1又は複数の活動グループを示すことができ、各活動群グループは許可される1又は複数の活動に関連する(特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、活動グループに加えて0以上の活動(例えば追加の活動)を更に示してもよい)。
更に好ましくは、役割ベースアクセス制御(RBAC)スキームでは、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は1又は複数のユーザ役割を示すことができ、各ユーザ役割は、1又は複数の活動グループ(各活動グループは1又は複数の活動に関連する)及び0以上の活動、又は(例えば活動グループとの少なくとも1つの関連付けが既にある場合は)1つ又は複数の活動に好ましくは関連する。
更に好ましくは、一部の例示的実施形態では、特定のアクセス制御プロファイルのアクセス制御プロファイル情報は、1又は複数のアクセスレベル(例えばリソースグループごとに1つのアクセスレベル)を好ましくは例示的に示してもよい。アクセスレベル及びその例示的な効果について以下で更に説明する。
図4は、一部の例示的実施形態に係る、ユーザとユーザに関係するアクセス制御プロファイルとの間の関連付け、及びアクセス制御プロファイル情報の関連付けの一例を例示的に示す。
例示的には、図4のアクセス制御プロファイルは役割ベースアクセス制御(RBAC)に基づき、上記で述べたように本発明は役割ベースアクセス制御(RBAC)に限定されない。例えば複数のユーザのそれぞれを少なくとも1つのユーザ役割に関連付ける、及び各ユーザ役割を1又は複数のそれぞれのアクセス制御プロファイルに関連付ける代わりに(又はそれに加えて)、ユーザは例えばユーザ役割を使用することなしに1又は複数のそれぞれのアクセス制御プロファイルに直接関連付けることができる。
概して、好ましい例示的態様では、複数のユーザのそれぞれが1又は複数のアクセス制御プロファイルに(例えばそのユーザ識別情報に依存して、ユーザが属する特定のドメインの1又は複数のユーザグループに従って、及び/又はユーザが属する1又は複数のドメインに従って)関連付けられる。
複数のユーザのそれぞれを1又は複数のそれぞれのアクセス制御プロファイルに関連付ける管理情報により、ACP(アクセス制御プロファイル)の関連付けが表される。
例えば承認モジュール/装置の承認データベースは以下の1又は複数を示し得るアクセスプロファイル関連付け情報を記憶してもよい:
・1又は複数の関連付け(アクセス制御プロファイルの関連付け)であり、各関連付けは個人ユーザ、ユーザのグループ(ユーザグループ)、及び/又はドメインについて提供されてもよい。
・各関連付けは1又は複数のアクセス制御プロファイルを示す(又は含む)んでもよい。
・各アクセス制御プロファイルはユーザ役割及び/又はリソースグループを示す(又は含む)んでもよい。
・各アクセス制御プロファイル内で、好ましくはリソースグループごとにアクセスレベルを指定することができる。
・各ユーザ役割は1又は複数の活動及び/又は、1又は複数の活動に関連することができ、各活動グループは1又は複数の活動(ユーザ活動)に関連づけられてもよい。
・各リソースグループは、1又は複数のストレージリソースに関連することができる。
上記の内容に鑑みて、ユーザ(又はユーザが属するユーザグループ)が特定のアクセス制御プロファイル(アクセス制御プロファイルの関連付け)に関連すると判定された場合、それぞれのリソースグループについて示されるそれぞれのアクセスレベルに従って、関連するアクセス制御プロファイル内で示されるリソースグループに含まれるストレージリソースに対して、アクセス制御プロファイル内で示されるユーザ役割に関連する1又は複数の活動、及び/又はユーザ役割に関連する活動グループに関連する1又は複数の活動を実行する/行うことを許可されるようにそのユーザはアクセスを付与されてもよい。
特定のユーザは複数のアクセス制御プロファイルに関連付けることができることに留意すべきである。例えば承認データベースが個人ユーザ、ユーザグループ、及びドメインのアクセス制御プロファイルを記憶する場合、ユーザbob@domain.comに複数のアクセス制御プロファイル、例えば個人ユーザ「bob」に関連する第1アクセス制御プロファイルACP1、ドメイン「domain.com」に関連する第2アクセス制御プロファイルACP2、及びユーザ「bob」が属し得る1又は複数のユーザグループに関連する、潜在的な1又は複数の更なるアクセス制御プロファイルを割り当てることができる。
例えば図4(A)は、図4(A)内の矢印によって例示的に示されているように(複数のユーザのうちの)ユーザ「ユーザ1」が(複数のアクセス制御プロファイルのうちの)アクセス制御プロファイル「ACP1」に関連付けられることを例示的に示す。それに代えて又は加えて、例えば図4(B)にあるように、(複数のユーザのうちの)ユーザ「ユーザ1」は、ここでもアクセス制御プロファイル「ACP1」に関連する(1又は複数のユーザにそれぞれ関連する複数のユーザグループのうちの)ユーザグループ「ユーザグループ1」(例えば特定のユーザ役割に関連するユーザグループ、例えば通常ユーザ、スーパユーザ、及び/又は管理者等に関連するユーザ群)に例示的に関連付けられてもよい。
従って、各ユーザは1つ又は複数のアクセス制御プロファイルに関連付けられる。承認モジュール/装置は、そのような承認関連付け情報に基づいて、特定のユーザ、例えばUICにログインし承認されようとするユーザに関連する1又は複数のアクセス制御プロファイル(又は複数のアクセス制御プロファイル)を決定することができる。
ユーザのアクセス許可は、それぞれのアクセス制御プロファイルに関連するアクセス制御情報内で例示的に示される。その結果、アクセス制御プロファイル情報は、定められたアクセス制御プロファイルごとに例えば図4(C)の関連付けに従って記憶されてもよい。
図4(C)では、例示的には、(複数のアクセス制御プロファイルのうちの)アクセス制御プロファイル「ACP1」が(複数のユーザ役割のうちの)ユーザ役割「ユーザ役割1」に例示的に関連する。更に例示的には、(複数のユーザ役割のうちの)ユーザ役割「ユーザ役割1」は、(複数の活動グループのうちの)活動グループ「活動グループ1」に関連し、「活動グループ1」は、(複数の活動のうちの)活動「活動1」及び「活動2」に例示的に関連する。ユーザ役割は、複数の活動のうちの0、1、又はそれを上回る活動に直接関連付けられてもよい。各アクセス制御プロファイルは、1又は複数の活動グループ及び0、1、又はそれを上回る活動に関連するユーザ役割に関連付けられてもよく、各活動グループは1又は複数の活動に関連づけられてもよい。
図4(C)では、例示的には、(複数のアクセス制御プロファイルのうちの)アクセス制御プロファイル「ACP1」は、(複数のリソースグループのうちの)リソースグループ「リソースグループ1」に例示的に関連付けられ、(複数のリソースグループのうちの)リソースグループ「リソースグループ1」はストレージリソース「リソース1」、「リソース2」、及び「リソース3」に例示的に関連付けられる。各アクセス制御プロファイルは1又は複数のリソースグループに関連付けられてもよく、各リソースグループは1又は複数のリソースに関連付けられてもよい。
図4(C)では、例示的には、(複数のアクセス制御プロファイルのうちの)アクセス制御プロファイル「ACP1」が(複数のアクセスレベルのうちの)アクセスレベル「アクセスレベル1」に例示的に関連付けられている。各アクセス制御プロファイルは1又は複数のアクセスレベルに関連付けられてもよい。好ましくは、アクセス制御プロファイルは、例えば各リソースグループをそれぞれのアクセスレベルに関連付けることにより、それぞれのアクセス制御プロファイルに関連するリソースグループごとのそれぞれのアクセスレベルに関連付けられている。
要約すれば、図4の関連付け情報及びアクセス制御プロファイル情報は、それぞれのユーザ「ユーザ1」がアクセス制御プロファイル「ACP1」に関連付けられ、「ACP1」は、ユーザ「ユーザ1」がユーザ役割「ユーザ役割1」を有し、アクセスレベル「アクセスレベル1」に基づいてリソースグループ「リソースグループ1」によるリソースグループ「リソース1」、「リソース2」、及び「リソース4」にアクセスすることを許可されていることを示しており、ユーザ「ユーザ1」は、アクセスレベル「アクセスレベル1」に基づいてリソースグループ「リソースグループ1」によるストレージリソース「リソース1」、「リソース2」、及び「リソース4」に対して活動グループ「活動グループ1」のうちの活動「活動1」、「活動2」、及び「活動5」を実行すること(又はその実行を要求すること)を許可される。
従って例示的には、アクセス制御プロファイルは、それぞれのユーザがそれぞれのアクセス制御プロファイル「ACP1」に関連し、関連するアクセスレベルに基づいて関連するリソースグループによるストレージリソースにアクセスすることを許可されること、及びそれぞれのユーザが、関連するアクセスレベルに基づいて関連するリソースグループによるストレージリソースに対して関連する活動グループの活動及び/又は関連する活動を実行すること(又はその実行を要求すること)を許可されることを示す。
図3に戻り、ステップS33で、ステップS32の探索に基づいて承認モジュール/装置が、ログイン要求及び/又は承認要求に関連するユーザに関連する1又は複数のアクセス制御プロファイル(及び/又は対応するアクセス制御プロファイル情報)を取得し、ログイン要求及び/又は承認要求に関連するユーザに関連する決定された1又は複数のアクセス制御プロファイルを示す対応するアクセス制御プロファイル情報を使用してペイロードを作成し(ステップS34)、そのペイロードはステップS35で承認モジュール/装置からUIC(ユーザインタフェースコントローラ)に送信される。
ステップS37で、UIC(ユーザインタフェースコントローラ)は、ウェブサーバ200を介して確認メッセージを送信することによってその時の(認証済みの且つ)承認済みのユーザに関するセッション開始を例示的に確認する。
例示的には(並列に、ステップS37の前に、又はステップS37の後で実行され得る)ステップS34で、それぞれのユーザに関するアクセス制御情報のペイロードを作成する。従っていくつかの例示的実施形態では、承認装置/モジュールは、ユーザに関連する取得されたアクセス制御プロファイルに基づいてそのそれぞれのユーザのペイロードを作成することを担い、作成されたペイロードはUIC(ユーザインタフェースコントローラ)に送信される。他の例示的実施形態では、承認装置/モジュールは、ユーザに関連する取得されたアクセス制御プロファイル又はユーザに関連するアクセス制御プロファイルを示すアクセス制御プロファイル情報をUICに送信してもよく、かかる例示的実施形態ではペイロードは、受信されたアクセス制御プロファイル又はアクセス制御プロファイル情報に基づいてUICにおいて作成されてもよい。
ペイロードは、ログイン要求に関連するそれぞれのユーザについて承認装置/モジュールによって得られる対応するアクセス制御プロファイル情報を好ましくは示す。いくつかの例示的な好ましい態様では、対応するアクセス制御プロファイル情報は、ペイロードの作成時に例えば圧縮された圧縮データ形式で符号化されてもよい。
そのようなペイロードは、上記の承認プロセスを後で再び行う必要がないという利点を与えるが、それぞれのユーザのそれぞれのアクセス制御プロファイル情報は、(少なくともその間ユーザのアクセス制御プロファイルがリセットされ又は再構成されない限り)再利用のためにユーザが再びログアウトするまで全セッションにわたって又はユーザが再びログインするまで保たれるように更に長く(UICの例えばキャッシュ、NVRAM内に、又はストレージデバイス上に、例えばセッションデータベース内に)記憶しておかなければならない。
更にそのようなペイロードは、UICがペイロードをアクセス要求内に(例えばペイロードをかかるアクセス要求に付加することによって、又はペイロードをかかるアクセス要求若しくはそのヘッダセクション内に符号化し若しくは追加することによって)埋め込むことができる利点を与える。すると最初の承認処理はUICによって集中化された方法で行われるが、ストレージハンドリング装置(リソースハンドリングコントローラ)がアクセス要求ごとの個々のアクセス制御をエンドポイントにおいて、即ちデータ記憶システムのデータアクセスポイントにおいて、例えばストレージハンドリング装置(リソースハンドリングコントローラ)上で、それぞれのノード上で、及び/又はストレージリソースにアクセスするためのストレージコントローラによって行うことができる点において、アクセス要求ごとの後のアクセス制御が分散された方法で効率的且つ高信頼に行うことができる。
従って、(例えばアクセスごとに集中承認システムとの間の問合せを処理する必要性を回避することによって中央承認システム上の作業負荷を著しく減らしながら、及び/又はアクセスごとの集中承認システムとの間の問合せの必要性を回避することによってシステム内の通信帯域幅を著しく減らしながら)分散された方法でのより効率的なアクセス制御。
更に任意選択的なステップS36で、UICが、それぞれのユーザについて作成されたペイロード(及び/又は受信されたアクセス制御プロファイル情報)をユーザのセッションに関連するセッション情報として例示的に記憶する。このようなセッション情報は、現在開始されているセッションのそれぞれのユーザを含む現在ログインしている1又は複数のユーザのそれぞれについてセッション管理情報としてセッション管理情報メモリセクション内にUICによって記憶されてもよい。
この形態は、現在ログインしている(セッションが実行されている)ユーザからアクセス要求がUICにおいて受信される場合、UICがそれぞれのペイロードをアクセス要求内に/上に埋め込んでからそのアクセス要求を責任を負う1又は複数のストレージハンドラ装置(資源ハンドリングコントローラ)にルートできるという利点がある。
更に、現在ログインしている1又は複数のユーザのアクセス制御プロファイルが(例えばリソースグループを再定義すること、リソースグループにリソースを追加すること、若しくはリソースグループからリソースを除去することによって、及び/又はユーザ役割及び/又はユーザ若しくはユーザ役割に関連する活動若しくは活動グループを再定義することによって、及び/又は活動グループを再定義すること、活動グループに活動を追加すること、若しくは活動グループから活動を除去することによって、及び/又はユーザアクセス制御プロファイル内のアクセスレベルを変更すること等によって、例えば承認装置/モジュールによって管理される上記の関連付けの何れかを管理者ユーザが再構成する点において)変わり得る場合、承認装置/モジュールはUICにしかるべく(例えば通知メッセージによって)知らせてもよい。
UICは、アクセス制御プロファイル又は基礎を成す関連付けの通知された変更の影響を受けるセッション情報をチェックするように構成してもよく、蹴決定された影響を受けるセッション情報は、例えば再作成を要求することにより及び/又は関連するペイロード及び/又はアクセス制御プロファイル情報を更新することにより、影響を受けるユーザの現在のセッション中に適切に更新されてもよい。
次いで、影響を受けるユーザから新たなアクセス要求が受信されると、進行中のセッション中の実行時の変更を反映する更新済みの/再作成されたペイロードは、変更されたアクセス制御プロファイルを有する影響を受けるユーザから新たに受信されるそのようなアクセス要求内に/上に、が埋め込まれてもよい。
ここでは、図5Aから図5Eに関して以下で説明するように複数の例示的実施形態を実現することができる。
概してUICは、変更が加えられた(並びにアクセス制御プロファイル情報及び/又はアクセス制御プロファイル関連付け情報が変更されている可能性がある)という通知を承認モジュール/装置から受信し、及び現在ログインしているどのユーザが影響を受けるのかを明らかにすると、それらのユーザのセッション情報を直ちに更新(又は更新することを要求)してもよい。例えばUICは、影響を受けるログインユーザについて記憶されたセッション情報及びペイロードが「期限切れ」と示してもよく、そのユーザから新たなアクセス要求が受信されると(例えばUICが承認モジュール/装置に新たなペイロードの作成を要求することによって)新たなペイロードが作成されてもよい。更に他の例示的実施形態では、変更が加えられたという通知を承認モジュール/装置から受信したとき、影響を受ける全てのユーザのセッション情報及びペイロードが更新/再作成されてもよい。
例示的なUICアクセス要求処理
図5Aは、一部の例示的実施形態に係る、UICにおけるUICアクセス要求処理のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS41で、ユーザインタフェースコントローラ(UIC)がストレージへのアクセス要求をユーザから受信してもよく、そのユーザは上記に基づいて過去に認証及び/又は承認されており、及び/又はそのユーザについてセッションが過去に開始されている。アクセス要求は、アクセスされるデータストレージシステムの1又は複数のストレージリソース上に記憶される1又は複数のデータ構造(即ちストレージリソース上のどのデータ構造が、受信アクセス要求によってアクセスされることを要求されるのか)を示していてもよい。
更に一部の例示的実施形態では、アクセス要求が、アクセス要求によって示されるデータストレージシステムの1又は複数のストレージリソース上に記憶される1又は複数のデータ構造に対して実行すべき1又は複数の活動を示してもよい。
アクセス要求は、データストレージシステムの1又は複数のストレージリソースに記憶されるデータ構造のデータに関連する、データの書き込み、データの複製、データの読み出し等のデータ操作に関係してもよい。
但しアクセス要求は、データストレージシステムの1又は複数のストレージリソース上に記憶されるデータ構造のためのデータ保護操作設定を閲覧すること、構成すること、又は変更すること、例えばソースノード及び宛先ノードを定めること、どのデータを何処から何処に何時、どの頻度で、又はどの事象の発生に基づいて複製すべきか等のポリシを設定すること等、データ構造のデータをソースノードから宛先ノードに又はソースデータストレージリソースから宛先データストレージリソースに完全に、部分的に、又は修正された方法で複製するデータ保護操作を実行することに関係する、例えばデータ保護ポリシ、スナップショットポリシ、複製ポリシ、ミラーリングポリシ、バックアップポリシ等を構成すること及び/又は設定することにも関係してもよい。
ステップS42で、受信アクセス要求に基づき(例えばアクセスされるターゲットノード及び/又はターゲットストレージリソース及び/又はターゲットデータ構造に基づき)、UICは例えばアクセス要求に基づいてアクセスされるそれぞれのターゲットノード及び/又はターゲットストレージリソース及び/又はターゲットデータ構造を管理する及び/又は制御する責任を負うそれぞれのストレージハンドラ(リソースハンドリングコントローラ)を決定することにより、アクセス要求に基づくアクセスを管理する及び/又は制御する責任を負うストレージハンドラ(リソースハンドリングコントローラ)を決定する。
ユーザは前に承認されているので、受信アクセス要求に関連するユーザに関連する1又は複数のアクセス制御プロファイルを示すペイロードが作成されている。
ステップS43で、受信アクセス要求に関連するユーザに関連する1又は複数のアクセス制御プロファイルを示す過去に作成されたペイロードはアクセス要求に埋め込まれ、ステップS44で、責任を負うストレージハンドラ(リソースハンドリングコントローラ)によって更に処理されるように、埋め込まれたペイロードを有するアクセス要求は、UICから決定された責任を負うストレージハンドラ(リソースハンドリングコントローラ)に送信される。
従ってペイロードがアクセス制御プロファイルの情報を含むので、ストレージハンドラはUICを再び照会する必要なしにペイロードに基づいてアクセス制御処理を効率的且つ高信頼に行うことができる。
しかし(例えばユーザの進行中のセッション中の)その時の管理者が例えばユーザ役割、活動グループ、及び/又はリソースグループ、若しくは上記の関連付けの他の情報を再構成することによって上記の関連付けの何れかを変更する場合、その修正は承認装置/モジュールにおいてリセットされる。そのような潜在的な変更を(アクセス要求の受信ごとに承認処理を行う必要なしに)タイムリーに反映させるために、一部の例示的実施形態ではUICが、現在ログインしているユーザ及びそれらのペイロード及び/又はアクセス制御プロファイルを示すセッション情報を管理してもよく、UICは承認装置/モジュールから受信される構成変更通知に基づき、構成されるそれぞれのセッションデータを更新して更新済みのペイロード情報を保ち、進行中のセッションのユーザからの要求に対して更新済みのペイロードを埋め込んでもよい。
図5Bは、一部の例示的実施形態に係る、UICにおけるUICセッション管理処理のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS45で、UICは、アクセス制御プロファイル、ユーザ役割、活動グループ、及び/又はリソースグループ、若しくは上記の関連付けの他の情報がリセットされること、又は再構成されること、又は変更されることにより、アクセス制御プロファイル情報が変更されている可能性があることを示す通知メッセージを承認装置/モジュールから受信する。
ステップS46で、受信した通知メッセージに基づき、UICは進行中のセッションの影響を受けるユーザをセッション管理情報に基づいて決定する。例えば通知メッセージ及び現在ログインしているユーザについて記憶されているアクセス制御プロファイル情報に基づき、UICはセッション管理情報内に記憶されているアクセス制御プロファイル及び/又はペイロードを決定することで影響を受けるユーザを決定する。
ステップS47で、受信した通知メッセージに基づき、UICは影響を受けるユーザのペイロードを更新する又は再作成するように承認装置/モジュールに要求し、更新済みの又は新たに作成されたペイロードを承認装置/モジュールから受信すると、UICはステップS48でセッション管理情報をしかるべく更新する。
つまり影響を受けるユーザから新たなアクセス要求が受信される場合、その影響を受けるユーザの進行中のセッション中に変更が行われても、上記のステップS41及びS44に従って埋め込まれるペイロードは影響を受けるユーザのアクセス制御プロファイル情報の変更を既に反映している更新済みのペイロードである。
上記では、例示的にはユーザが更なるアクセス要求を送信し得るかどうかに関係なく、UICは影響を受けるユーザを明らかにする。これに代えて他の例示的実施形態では、ユーザからアクセス要求を受信するときだけ、ユーザが最近のアクセス制御プロファイル情報の変更の影響を受けたかどうかを決定することが可能であり(例えば図5C参照)、又は影響を受けるユーザから別のアクセス要求を受信する場合にのみ、そのユーザのペイロードがアクセス要求の受信時に再作成される/更新されることが可能である(例えば図5D及び図5E参照)。
図5Cは、他の一部の例示的実施形態に係る、UICにおけるUICアクセス要求処理のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS45で、UICは、アクセス制御プロファイル、ユーザ役割、活動グループ、及び/又はリソースグループ、若しくは上記の関連付けの他の情報がリセットされること、又は再構成されること、又は変更されることにより、アクセス制御プロファイル情報が変更されている可能性があることを示す通知メッセージを承認装置/モジュールから受信する。
例示的には、ステップS41で、ユーザインタフェースコントローラ(UIC)がストレージへのアクセス要求をユーザから受信してもよく、そのユーザは上記に基づいて過去に認証及び/又は承認されており、及び/又はそのユーザについてセッションが過去に開始されている。アクセス要求は、アクセスされるデータ記憶システムの1又は複数のストレージリソース上に記憶される1又は複数のデータ構造(即ちストレージリソース上のどのデータ構造が、受信アクセス要求によってアクセスされることを要求されるのか)を示してもよい。
ステップS46’において、ステップS45で受信した通知メッセージに基づき、UICは通知メッセージ内で示される変更の影響をそれぞれのユーザが受けたかどうかを、アクセス要求に関連するユーザについて記憶されているセッション管理情報に基づいて、例えばそのそれぞれのユーザに関連する過去に作成されたペイロード及び/又はそれぞ
れのユーザの関連するアクセス制御プロファイルを参照することによって決定する。例えば通知メッセージ及びそれぞれのユーザについて記憶されているアクセス制御プロファイル情報に基づき、UICはそれぞれのユーザが変更の影響を受けるかどうかを決定する。
ステップS46’がNOを返す場合、このプロセスは上記の図5Aと同様にステップS42、S43、及びS44を続ける。しかしステップS46’がYESを返す場合、この方法はステップS47’及びS48’を続ける。
ステップS47’で、UICは影響を受けるそれぞれのユーザのペイロードを更新する又は再作成するように承認装置/モジュールに要求し、更新済みの又は新たに作成された情報をUICにおいて受信すると、UICはステップS48’で、影響を受けるそれぞれのユーザのセッション管理情報をしかるべく更新する。
つまり影響を受けるユーザから新たなアクセス要求が受信される場合、その影響を受けるユーザの進行中のセッション中に変更が行われても、S44内で埋め込まれるペイロードは影響を受けるユーザのアクセス制御プロファイル情報の変更を既に反映している更新されたペイロードである。次いでこのプロセスは上記の図5Aと同様にステップS42、S43、及びS44を続ける。
図5Dは、他のいくつかの例示的実施形態に係る、UICにおけるUICセッション管理処理のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS45で、UICは、アクセス制御プロファイル、ユーザ役割、活動グループ、及び/又はリソースグループ、若しくは上記の関連付けの他の情報がリセットされること、又は再構成されること、又は変更されることにより、アクセス制御プロファイル情報が変更されている可能性があることを示す通知メッセージを承認装置/モジュールから受信する。
ステップS46で、受信した通知メッセージに基づき、UICは進行中のセッションの影響を受けるユーザをセッション管理情報に基づいて決定する。例えば通知メッセージ及び現在ログインしているユーザについて記憶されているアクセス制御プロファイル情報に基づき、UICはセッション管理情報内に記憶されているアクセス制御プロファイル及び/又はペイロードを決定することで影響を受けるユーザを決定する。
ステップS49で、UICは、セッション管理情報内で示されるそれらのユーザのペイロード及びアクセス制御プロファイルが更新されていないこと(「期限切れ」)を示すために、決定された影響を受けるユーザのセッション管理情報を更新し、過去に作成されたペイロードが「期限切れ」であることを、決定された影響を受けるユーザについて登録することができる。この形態は、影響を受ける全てのユーザについてペイロードが必ずしも直ちに再作成されず、必要に応じてのみ再作成されるという利点がある(例えば図5E参照)。
図5Eは、他の一部の例示的実施形態に係る、UICにおけるUICアクセス要求処理のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS41で、ユーザインタフェースコントローラ(UIC)はストレージへのアクセス要求をユーザから受信してもよく、そのユーザは上記に基づいて過去に認証及び/又は承認されており、及び/又はそのユーザについてセッションが過去に開始されている。アクセス要求は、アクセスされるデータストレージシステムの1又は複数のストレージリソース上に記憶される1又は複数のデータ構造(即ちストレージリソース上のどのデータ構造が、受信アクセス要求によってアクセスされることを要求されるのか)を示してもよい。
ステップS46’’で、UICは、ユーザのペイロードが期限切れかどうかをセッション管理情報が示すかどうかをチェックすることにより、アクセス要求に関連するユーザについて記憶されているセッション管理情報(図5DのステップS49で更新されている可能性がある)に基づいて、それぞれのユーザが任意の通知メッセージ内で示された最近の任意の変更の影響を受けたかどうかを決定する。
ステップS46’’がNOを返す場合、このプロセスは上記の図5A又は図5Cと同様にステップS42、S43、及びS44を続ける。しかしステップS46’’がYESを返す場合、この方法は図5Cと同様にステップS47’及びS48’を続ける。
ステップS47’で、UICは影響を受けるそれぞれのユーザのペイロードを更新する又は再作成するように承認装置/モジュールに要求し、更新済みの又は新たに作成された情報をUICにおいて受信すると、UICはステップS48’で、影響を受けるそれぞれのユーザのセッション管理情報をしかるべく更新する。
つまり影響を受けるユーザから新たなアクセス要求が受信される場合、その影響を受けるユーザの進行中のセッション中に変更が行われても、ステップS44内で埋め込まれるペイロードは影響を受けるユーザのアクセス制御プロファイル情報の変更を既に反映している更新されたペイロードである。次いでこのプロセスは上記の図5A又は図5Cと同様にステップS43及びS44を続ける。
例示的なストレージハンドラアクセス要求処理
図6Aは、他のいくつかの例示的実施形態に係る、ストレージハンドラにおけるストレージハンドラアクセス要求処理のためのプロセスのフローチャートを例示的に示す。
例示的には、ステップS61で、上記のストレージハンドラ装置又はストレージハンドラモジュール等のストレージハンドラ(リソースハンドリングコントローラ)は、例えば上記のステップS44で送信される特定のユーザに関連するアクセス制御プロファイル情報を示す埋め込みペイロードと共にUICからユーザのアクセス要求を受信する。
ステップS62で、ストレージハンドラ(リソースハンドリングコントローラ)は、アクセス要求内に埋め込まれているペイロードに基づき、受信アクセス要求に関連する特定のユーザに関連するアクセス制御プロファイル情報を例示的に決定する。
更にストレージハンドラ(リソースハンドリングコントローラ)は、例えば更に説明するステップS64を伴うS63、S66を伴うS65、及び/又はS68を伴うS67のうちの1又は複数に(任意の順序で)基づいて非集中(即ちUICへの更なる問合せなしの)アクセス制御を例示的に行ってもよい。
例示的には、ステップS63で、ストレージハンドラ(リソースハンドリングコントローラ)がアクセス要求に基づいてアクセスされる1又は複数のストレージリソースを決定し、ステップS64で、ストレージハンドラ(リソースハンドリングコントローラ)は、アクセスされる決定された1又は複数のストレージリソースにアクセスすることをアクセス要求に関連するユーザが許可されている/認められているかどうかを決定する。ステップS64がNOを返す場合はアクセス処理を停止し、要求されたアクセス要求の実行を控え、(例えばUICへの拒否メッセージ又はエラーメッセージの送信によって)このプロセスは終了する。
例えばストレージハンドラ(リソースハンドリングコントローラ)は、決定された1又は複数のストレージリソースがそれぞれのユーザに関連するアクセス制御プロファイル情報内で示されるリソースグループに含まれる場合、アクセス要求に関連するユーザが決定された1又は複数のストレージリソースにアクセスすることを許可される/認められると決定してもよい。更にストレージハンドラ(リソースハンドリングコントローラ)は、決定された1又は複数のストレージリソースがそれぞれのユーザに関連するアクセス制御プロファイル情報内で示されるどのリソースグループにも含まれない場合、アクセス要求に関連するユーザが決定された1又は複数のストレージリソースにアクセスすることを許可されない/認められないと決定してもよい。
例示的には、ステップS65で、ストレージハンドラ(リソースハンドリングコントローラ)がアクセス要求に基づいて実行される1又は複数の活動を決定し、ステップS66で、ストレージハンドラ(リソースハンドリングコントローラ)は、実行される決定された1又は複数の活動を実行すること又は要求することをアクセス要求に関連するユーザが許可されている/認められているかどうかを決定する。ステップS66がNOを返す場合はアクセス処理を停止し、要求されたアクセス要求の実行を控え、(例えばUICへの拒否メッセージ又はエラーメッセージの送信によって)このプロセスは終了する。
例えばストレージハンドラ(資源ハンドリングコントローラ)は、決定された1又は複数の活動がそれぞれのユーザに関連するアクセス制御プロファイル情報内で示される活動グループに含まれる場合、又は決定された1又は複数の活動がそれ自体でそれぞれのユーザに関連するアクセス制御プロファイル情報内で示される場合、アクセス要求に関連するユーザが決定された1又は複数の活動を実行すること又は要求することを許可される/認められると決定してもよい。更にストレージハンドラ(リソースハンドリングコントローラ)は、決定された1又は複数の活動がそれぞれのユーザに関連するアクセス制御プロファイル情報内で示されるどの活動グループにも含まれない場合、及び/又は決定済みの1つ又は複数の活動がそれ自体でそれぞれのユーザに関連するアクセス制御プロファイル情報内で示されない場合、アクセス要求に関連するユーザが決定された1又は複数の活動を実行すること又は要求することを許可されない/認められないと決定してもよい。
例示的には、ステップS67で、ストレージハンドラ(リソースハンドリングコントローラ)がアクセス要求に基づいてアクセスされるストレージリソース上の1又は複数のデータ構造を決定し、ステップS68で、ストレージハンドラ(リソースハンドリングコントローラ)は、アクセスされるストレージリソース上の決定済みの1又は複数のデータ構造にアクセスすることをアクセス要求に関連するユーザが許可されている/認められているかどうかを決定する。ステップS68がNOを返す場合はアクセス処理を停止し、要求されたアクセス要求の実行を控え、(例えばUICへの拒否メッセージ又はエラーメッセージの送信によって)このプロセスは終了する。
例えばストレージハンドラ(リソースハンドリングコントローラ)は、それぞれのユーザに関連するアクセス制御プロファイル情報内で示されるアクセスレベルに基づいて、又はそれぞれのユーザに関連するアクセス制御プロファイル情報内の、1又は複数のそれぞれのデータ構造を記憶するストレージリソースのリソースグループについて示されるアクセスレベルに基づいて、決定された1又は複数のデータ構造にアクセスすることをアクセス要求に関連するユーザが許可されている/認められているかどうかを決定することができる。
例示的には、上記のアクセス制御処理がアクセス処理の停止及びアクセスを控えることを生じさせない場合、例えばステップS64、S66、及びS68がYESをもたらす場合、例えば要求された1又は複数のストレージリソースへのアクセスを実行して要求された1又は複数のデータ構造に対する要求された1又は複数の活動を実行することにより、このプロセスは要求されたアクセス操作を行うことで続行する。
図6Bは、他のいくつかの例示的実施形態に係る、ストレージハンドラにおけるストレージハンドラアクセス要求処理のためのプロセスのフローチャートを例示的に示す。
いくつかの例示的実施形態によれば、要求されたストレージリソースに対してユーザがどの活動を実行することができるのかをまとめて決定することが重要である場合があり、それはかかる活動が(1又は複数の個々の活動及び/又は1又は複数の許可された活動グループの1又は複数の活動を許可する)ユーザ役割、並びにリソースグループ及びそのリソースグループの指定のアクセスレベルの影響を受ける可能性があるからである。換言すれば、決定されたストレージリソースに対して要求された活動を実行することをユーザが許可されているかどうかをシステムが決定することが好ましい。
例えば、特定のユーザが記憶ノードN1に対して活動A1を行うことを許可されてもよく、同じユーザが記憶ノードN2に対して活動A2を行うことを許可されてもよく、そのユーザは記憶ノードN1に対して活動A2を行うことを許可されなくてもよく、記憶ノードN2に対して活動A1を行うことを許可されなくてもよい。従って、これらの決定は図6Bの例示的なフローチャートの中の同じステップS68’において例示的に行われる。
更に、ストレージノード上の特定のデータ構造にユーザがアクセス可能かどうかは、そのノードが属するストレージグループについて指定される「アクセスレベル」に基づいて決定されてもよい。アクセスレベルは、アクセス制御プロファイル情報から得てもよい。
例示的には、図6B及びステップS61において、上記のストレージハンドラ装置又はストレージハンドラモジュール等のストレージハンドラ(リソースハンドリングコントローラ)が、例えば上記のステップS44で送信される特定のユーザに関連するアクセス制御プロファイル情報を示す埋め込みペイロードと共にUICからユーザのアクセス要求を受信する。
ステップS62で、ストレージハンドラ(リソースハンドリングコントローラ)が、アクセス要求内に埋め込まれたペイロードに基づき、受信アクセス要求に関連する特定のユーザに関連するアクセス制御プロファイル情報を例示的に決定する。
更にストレージハンドラ(リソースハンドリングコントローラ)は、非集中(即ちUICへの更なる問合せなしの)アクセス制御を例示的に行ってもよい。
例示的には、ステップS63で、ストレージハンドラ(リソースハンドリングコントローラ)がアクセス要求に基づいてアクセスされる1又は複数のストレージリソースを決定する。
例示的には、ステップS65で、ストレージハンドラ(リソースハンドリングコントローラ)がアクセス要求に基づいて実行される1又は複数の活動を決定する。
例示的には、ステップS67で、ストレージハンドラ(リソースハンドリングコントローラ)がアクセス要求に基づいてアクセスされるストレージリソース上の1又は複数のデータ構造を決定する。
次いでステップS68’で、ストレージハンドラ(リソースハンドリングコントローラ)は、ステップS63及びS65で決定されたアクセスされるストレージリソース上の決定済みの1又は複数のデータ構造に対して、ステップS65で決定された活動を実行することをアクセス要求に関連するユーザが許可されている/認められているかどうかを決定する。先に述べたように、ステップS68’の決定はユーザに関連するアクセス制御プロファイルに依存し、ステップS68’は、ユーザのアクセス制御プロファイル情報内の許可された活動及び/又は許可された活動グループ及びリソースグループ並びにリソースグループのアクセスレベルに基づいて実行される。
ステップS68’がNOを返す場合はアクセス処理を停止し、要求されたアクセス要求の実行を控え、(例えばUICへの拒否メッセージ又はエラーメッセージの送信によって)このプロセスは終了する。
例示的には、上記のアクセス制御処理がアクセス処理の停止及びアクセスを控えることを生じさせない場合、ステップS68’がYESをもたらす場合、例えば要求された1又は複数のストレージリソースへのアクセスを実行して要求された1又は複数のデータ構造に対する要求された1又は複数の活動を実行することにより、このプロセスは要求されたアクセス操作を行うことで続行する。
データストレージシステム内の例示的なデータ構造
図7は、例示的なデータストレージシステムに係るデータ構造の分布を例示的に示す。
例示的には、図7のデータストレージシステムはノードN1、N2、N3、N4、N5、N6、及びN7を含む。ノードN1、N2、N3、N4、N5、N6、及びN7は、ユーザがアクセス可能な1つ又は複数のデータ構造のためのストレージ提供するストレージリソースと呼ぶことがある。
ストレージリソースを表す物理ノード又は論理ノードに加えて、ノード又はノードのクラスタシステム上の論理ストレージエンティティもストレージリソースと呼ぶことがある。
例えば図7では、ノードN5、N6、及びN7はデータ構造を記憶するためのストレージリソースとして論理リポジトリR1、R2、及びR3をそれぞれ提供する。
「データ構造」は、ユーザがアクセス可能なデータの任意の形式のデータ構造としてもよく、このようなデータ構造はファイル、ファイルグループ、ファイルシステム、ファイルシステムグループ、データベース、データベースグループ、アーカイブ、アーカイブグループ、ストレージボリューム、又は論理ボリューム、仮想ボリュームを含むストレージボリュームグループを示してもよく、データ構造内のデータはファイルベースのストレージ構造、ブロックベースのストレージ構造、又はオブジェクトベースのストレージ構造によって記憶されてもよい。
先に述べたそのようなデータ構造は、ユーザ、管理者によって手動で、又はアプリケーションによってシステムに追加されるという意味で、及び/又は特に別のデータ構造とは独立に、アプリケーションのアクセス及び/又はユーザのアクセスに基づいてそれぞれのデータ構造にデータを読み書きし又は追加するためにユーザアクセス可能(及び/又はアプリケーションアクセス可能)であるという意味で「主データ構造」と呼んでもよい。
他方で、「副データ構造」と呼ばれる別の種類のデータ構造は、動的に及び/又は自動で作成され得るデータ構造及び/又は例えば関連する「主データ構造」のデータの複製を部分的に又は完全に記憶することによって特に「主データ構造」に依存し得るデータ構造を指してもよい。例えば「主データ構造」のデータ(及び/又は「主データ構造」のデータのメタデータ)がデータ保護目的で例えば複製、ミラーコピー、バックアップ、スナップショット等として部分的に又は完全に複製される場合、その「主データ構造」の部分的な又は完全な複製、ミラーコピー、バックアップ、及び/又はスナップショットは特定の「主データ構造」のそれぞれの「副データ構造」と呼ばれる。
そのような「副データ構造」は、データ保護ポリシに基づいて、例えばソースノード及び宛先ノード、ソースデータ、ソースデータの種類(例えば複製、ミラーコピー、バックアップ、スナップショット等、「主データ構造」の種類)を定めることによって、及び二次データ構造を何時、どの頻度間隔で、又はどの事象の発生で作成すべきか及び/又は更新すべきか等の操作ポリシに基づいて「副データ構造」を管理することでシステムによって(例えばストレージハンドラによって)動的に及び/又は自動で作成され得る。
「主データ構造」に関して、図7のデータストレージシステムは、ノードN1上にファイルシステムFS1を、ノードN2上にファイルシステムFS2を、ノードN3上にファイルシステムFS3を例示的に記憶する。更に例示的には、ノードN2はデータベースDB1を記憶し、ノードN3はデータベースDB2を例示的に記憶する。ノードN4はデータベースDB3及びアーカイブAR1を例示的に記憶する。
「副データ構造」に関して、図7のデータストレージシステムは上記の主データ構造のバックアップデータをそれぞれ例示的に記憶する。
例えばノードN5は、(矢印によって示すように)ノードN1のファイルシステムFS1のバックアップBU1を記憶するリポジトリR1を提供する。これはファイルシステムのミラーコピー又はスナップショットに関係してもよく、又はファイルシステムのいくつかのファイルのバックアップコピー又はそのメタデータのバックアップコピー等、ファイルシステムの部分コピーにも関係してもよい。
同様にリポジトリR1は、ノードN2のファイルシステムFS2のバックアップBU2、及びノードN2のデータベースDB1のバックアップコピーBU3を例示的に記憶する。更に例示的には、リポジトリR1はノードN3のファイルシステムFS3のバックアップBU4を記憶する。
更にノードN6は、ノードN3のデータベースDB2のバックアップBU5を記憶するリポジトリR2を提供する。これはミラーコピー、リモート複製コピー、部分コピー、又はそのメタデータのコピー若しくは部分コピー等に関係してもよい。
同様にリポジトリR2は、ノードN4のデータベースDB3のバックアップBU6を例示的に記憶する。更に例示的には、リポジトリR2はノードN4のアーカイブのバックアップBU7を記憶する。これはミラーコピー、リモート複製コピー、部分コピー、又はそのメタデータのコピー若しくは部分コピー等に関係してもよい。
更にノードN7は、リポジトリR1内のバックアップBU1のバックアップBU8を(例えばBU1のコピー又は部分コピーとして)記憶するリポジトリR3を提供する。リポジトリR3は、リポジトリR1内のバックアップBU2のバックアップBU9を、リポジトリR1内のバックアップBU4のバックアップBU10を、リポジトリR2内のバックアップBU5のバックアップBU11を、及びリポジトリR2内のバックアップBU7のバックアップBU12を更に例示的に記憶する。
更に、責任を負うそれぞれのストレージハンドラのメタデータセクション及び/又はそれぞれの二次データ構造は、副データ構造ごとに、それぞれの親ストレージリソース及びオーナストレージリソースを好ましくは示すデータ構造メタデータを記憶する。
それぞれの副データ構造の「オーナストレージリソース」は、対応する関連「主データ構造」を記憶するストレージリソースである。
従って図7では、例示的には、
−バックアップBU1及びBU8のオーナストレージリソースは両方についてノードN1であり、それはノードN1がファイルシステムFS1である関連主データ構造を記憶するからである
−バックアップBU2及びBU9のオーナストレージリソースは両方についてノードN2であり、それはノードN2がファイルシステムFS2である関連主データ構造を記憶するからであり、
−バックアップBU3のオーナストレージリソースはノードN2であり、それはノードN2がデータベースDB1である関連主データ構造を記憶するからであり、
−バックアップBU4及びBU10のオーナストレージリソースは両方についてノードN3であり、それはノードN3がファイルシステムFS3である関連主データ構造を記憶するからであり
−バックアップBU5及びBU11のオーナストレージリソースは両方についてノードN3であり、それはノードN3がデータベースDB2である関連主データ構造を記憶するからであり、
−バックアップBU6のオーナストレージリソースはノードN4であり、それはノードN4がデータベースDB3である関連主データ構造を記憶するからであり、そして、
−バックアップBU7及びBU12のオーナストレージリソースは両方についてノードN4であり、それはノードN4がアーカイブAR1である関連主データ構造を記憶するからである。
他方で、それぞれの副データ構造の「親ストレージリソース」は、それぞれの副データ構造を記憶するストレージリソースである。
従って図7では、例示的には、
−バックアップBU1からBU4の親ストレージリソースはその全てについてリポジトリR1であり、それはリポジトリR1がそれぞれのバックアップBU1からBU4を記憶するからであり、
−バックアップBU5からBU7の親ストレージリソースはその全てについてリポジトリR2であり、それはリポジトリR2がそれぞれのバックアップBU5からBU7を記憶するからであり、そして、
−バックアップBU8からBU12の親ストレージリソースはその全てについてリポジトリR3であり、それはリポジトリR3がそれぞれのバックアップBU8からBU12を記憶するからである。
従って、以下のメタデータは、それぞれのバックアップとして、責任を負うそれぞれのストレージハンドラ(リソースハンドリングコントローラ)のメタデータセクション内に及び/又はそれぞれの副データ構造と共に記憶されてもよい。。
バックアップBU1について、それぞれのデータ構造メタデータは、親データストレージリソースR1(例えばストレージリソースID形式のリポジトリR1)及びオーナデータストレージリソースN1(例えばストレージリソースID形式のノードN1)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを、例えばテナントID形式で更に示してもよい。
バックアップBU2について、それぞれのデータ構造メタデータは親データストレージリソースR1(例えばストレージリソースID形式のリポジトリR1)及びオーナデータストレージリソースN2(例えばストレージリソースID形式のノードN2)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU3について、それぞれのデータ構造メタデータは親データストレージリソースR1(例えばストレージリソースID形式のリポジトリR1)及びオーナデータストレージリソースN2(例えばストレージリソースID形式のノードN2)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU4について、それぞれのデータ構造メタデータは親データストレージリソースR1(例えばストレージリソースID形式のリポジトリR1)及びオーナデータストレージリソースN3(例えばストレージリソースID形式のノードN3)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU5について、それぞれのデータ構造メタデータは親データストレージリソースR2(例えばストレージリソースID形式のリポジトリR2)及びオーナデータストレージリソースN3(例えばストレージリソースID形式のノードN3)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示しててもよい。
バックアップBU6について、それぞれのデータ構造メタデータは親データストレージリソースR2(例えばストレージリソースID形式のリポジトリR2)及びオーナデータストレージリソースN4(例えばストレージリソースID形式のノードN4)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU7について、それぞれのデータ構造メタデータは親データストレージリソースR2(例えばストレージリソースID形式のリポジトリR2)及びオーナデータストレージリソースN4(例えばストレージリソースID形式のノードN4)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU8について、それぞれのデータ構造メタデータは親データストレージリソースR3(例えばストレージリソースID形式のリポジトリR3)及びオーナデータストレージリソースN1(例えばストレージリソースID形式のノードN1)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU9について、それぞれのデータ構造メタデータは親データストレージリソースR3(例えばストレージリソースID形式のリポジトリR3)及びオーナデータストレージリソースN2(例えばストレージリソースID形式のノードN2)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU10について、それぞれのデータ構造メタデータは親データストレージリソースR3(例えばストレージリソースID形式のリポジトリR3)及びオーナデータストレージリソースN3(例えばストレージリソースID形式のノードN3)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU11について、それぞれのデータ構造メタデータは親データストレージリソースR3(例えばストレージリソースID形式のリポジトリR3)及びオーナデータストレージリソースN3(例えばストレージリソースID形式のノードN3)を示してもよい。データ構造メタデータは、テナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
バックアップBU12について、それぞれのデータ構造メタデータは親データストレージリソースR3(例えばストレージリソースID形式のリポジトリR3)及びオーナデータストレージリソースN4(例えばストレージリソースID形式のノードN4)を示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれの親ストレージリソース及び/又はオーナストレージリソース若しくはデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
他方で主データ構造について、それぞれのデータ構造メタデータは、それぞれのデータ構造を記憶するストレージリソースを示してもよい。データ構造メタデータは、示されたテナントのユーザについてのみアクセスを許可するために、それぞれのストレージリソース又はデータ構造に関連するテナントを例えばテナントID形式で更に示してもよい。
データ構造メタデータ内でテナントが更に示される場合、ユーザは、自らのテナントがデータ構造メタデータ内で示されるテナント(例えばテナントID)と一致する場合にのみ、特定のストレージリソース(又は特定のストレージリソース上のデータ構造)へのアクセスが与えられる。
リソースグループの例
一例として、図7のデータストレージシステムについて以下のリソースグループを例示的に定めてもよい:
−リソースグループRG1={N1,N2,N5,R1}、
−リソースグループRG2={N2,N3,N5,R1,N7,R3}、
−リソースグループRG3={N3,N4,N6,R2,N7,R3}、及び
−リソースグループRG4={N2,N7,R3}。
主データ構造について、ユーザのアクセス制御プロファイル内で示されたリソースグループは、ユーザがその上の主データ構造にアクセスすることができるストレージリソースを示してもよい。
例えば、リソースグループRG1に関連するアクセス制御プロファイルに関連するユーザは、リソースグループRG1のリソース上の主データ構造に、即ち例示的にはノードN1上のファイルシステムFS1及びノードN2上のファイルシステムFS2並びにノードN2上のデータベースDB1にアクセスすることができ、それはノードN1及びN2がそれぞれのリソースノードN1内に含まれるからである。
従って、リソースグループRG1に関連するアクセス制御プロファイルに関連するユーザは、ノードN3及びN4上の主データ構造FS3、DB2、DB3、及びAR1のどれにたいしてもアクセスが拒否される。
例示的なアクセスレベル
先に論じたように、アクセス制御プロファイル情報は、好ましくは、それぞれのアクセス制御プロファイル内で示される又はそれぞれのアクセス制御プロファイルに関連するリソースグループごとに、それによって、アクセスレベルストレージリソース、特にそのようなストレージリソース上の副データ構造がそれぞれのユーザによってアクセスできる特定のアクセスレベルを好ましくは示してもよい従って好ましくは、アクセス制御プロファイル内の各リソースグループにアクセスレベルが与えられる。
例えば以下のアクセスレベルを与えることができる:
−第1アクセスレベル(グループアクセスレベル、限定アクセスレベルとも呼ばれてもよい)であって、この第1のアクセスレベルは、それぞれのユーザアカウントに関連するユーザによるユーザアクセスが、アクセス制御情報に従って許可される特定のリソースグループの中にそれぞれのオーナデータストレージリソースが含まれる副データ構造に、それぞれの親データストレージリソース上でアクセスすることを特定のリソースグループの第1アクセスレベルに関連するそれぞれのユーザアカウントのユーザが許可されることを示す。換言すれば、ユーザに関連するアクセス制御プロファイル内の特定のリソースグループについて第1アクセスレベルが指定されている場合、ユーザはその同じ特定のリソースグループの中のストレージリソースに由来する副データ構造にアクセスすることを可能にされる(例えば図7のリソースグループRG1への第1アクセスレベルでは、ユーザはBU1、BU2、及びBU3を(それらがN1及びN2に由来するので)見ることはできるが、BU4は見ることができない)、
−第2アクセスレベル(オーナアクセスレベル、パーソナルアクセスレベルとも呼ばれてもよい)であって、この第2アクセスレベルは、特にそれぞれのユーザアカウントに関連するユーザによるユーザアクセスがアクセス制御情報に従って許可される特定のリソースグループの中に関連するそれぞれのオーナデータストレージリソースが含まれるという条件で、ユーザが現在ログインしているノードによって提供されるオーナデータストレージリソースに関連する副データ構造にそれぞれの親データストレージリソース上でアクセスすることを特定のリソースグループの第2アクセスレベルに関連するそれぞれのユーザアカウントのユーザが許可されることを示す。換言すれば、ユーザに関連するアクセス制御プロファイル内の特定のリソースグループについて第2アクセスレベルが指定されている場合、ユーザは自らがログインしているストレージリソースに由来する副データ構造にアクセスすることを可能にされる(例えば図7の資源群RG1への第2アクセスレベルでは、ノードN1においてログインしているユーザはBU1を見ることはできるが、BU2、BU3、及びBU4は見ることができず、しかし同じユーザがノードN2においてログインする場合、そのユーザはBU2及びBU3を見ることができ、BU1及びBU4は見ることができない)、そして、
−第3アクセスレベル(フルアクセスレベル)であって、この第3アクセスレベルは、それぞれのユーザアカウントに関連するユーザによるユーザアクセスがアクセス制御情報に従って許可されるリソースグループの中に関連するそれぞれのオーナデータストレージリソースが含まれるかどうかに関係なく、それぞれの親データストレージリソース上に記憶される副データ構造にそれぞれの親データストレージリソース上でアクセスすることを第3アクセスレベルに関連するそれぞれのユーザアカウントのユーザが許可されることを示す。換言すれば、ユーザに関連するアクセス制御プロファイル内の特定のリソースグループについて第3アクセスレベルが指定されている場合、ユーザは特定のリソースグループの中の任意のストレージリソース上の全ての副データ構造にアクセスすることを可能にされる(例えば図7のリソースグループRG1への第3アクセスレベルでは、R1にフルアクセスが付与されているのでユーザはR1上の全てのデータ構造(BU1、BU2、BU3、及びBU4)を見ることができる)。
例えば、ノードN1を介してログインし、その上のファイルシステムFS1へのアクセスを許可されており、リソースグループRG1={N1,N2,N5,R1}及び第3(フル)アクセスレベルに関連するアクセス制御プロファイルに関連付けられているユーザは、バックアップBU4がユーザの関連するリソースグループRG1内に含まれないノード(ノードN3)上の一次データ構造(FS3)のバックアップコピーであっても、BU1、BU2、BU3、及び特にBU4を含むリポジトリR1上の全ての二次データ構造に、アクセスすることができる。
しかし、第3アクセスレベル「フル」にもかかわらず、そのユーザはリポジトリR2及びR3上のどの副データ構造にも引き続きアクセスすることができず、それはそれらのリポジトリR2及びR3がリソースグループRG1内に含まれておらず、アクセス制御に基づいて如何なるアクセス要求も拒否されるからである。
更に例示的には、ノードN1を介してログインし、リソースグループRG1={N1,N2,N5,R1}及び第1(グループ又は限定)アクセスレベルに関連するアクセス制御プロファイルに関連付けられているユーザは、リポジトリR1上の副データ構造BU1、BU2、BU3しかアクセスすることができず、それはそれらのオーナストレージリソースがユーザのリソースグループRG1内に含まれるストレージリソース(ノードN1及びN2)上で与えられるからである。
しかし、バックアップBU4のオーナストレージリソース(ノードN3)はユーザのリソースグループRG1内に含まれてないので、BU4の親ストレージリソース(リポジトリR1)がユーザのリソースグループRG1内に含まれていても、それぞれのユーザはバックアップBU4にアクセスすることができない。更に、リポジトリR2及びR3は資源群RG1内に含まれておらず、如何なるアクセス要求もアクセス制御に基づいて拒否されるので、そのユーザはリポジトリR2及びR3上の如何なる副データ構造にもアクセスすることができない。
更に例示的には、ノードN1によってログインし、リソースグループRG1={N1,N2,N5,R1}及び第2(オーナ又はパーソナル)アクセスレベルに関連するアクセス制御プロファイルに関連付けられたユーザは、リポジトリR1上の副データ構造BU1しかアクセスすることができず、それはユーザがBU1のオーナストレージリソース(ノードN1)に現在ログオンしているからである。
しかし、データ構造FS2及びDB1を記憶するストレージリソースとしてのノードN2と、バックアップBU2及びBU3のオーナ記憶資源としてのノードN2と、バックアップBU2及びBU3の親ストレージリソース(リポジトリR1)は、ユーザのリソースグループRG1及び親内に全て含まれるが、ユーザはバックアップBU2及びBU3のオーナストレージリソースであるノードN2に現在ログインしていないので、リポジトリR1上のそれらのバックアップBU2及びBU3に依然としてアクセスすることができない。
更に、バックアップBU4のオーナストレージリソース(ノードN3)はユーザのリソースグループRG1に含まれていないので、BU4の親ストレージリソース(リポジトリR1)がユーザのリソースグループRG1内に含まれていても、それぞれのユーザはバックアップBU4にアクセスすることができない。更に、リポジトリR2及びR3はリソースグループRG1内に含まれておらず、如何なるアクセス要求もアクセス制御に基づいて拒否されるのいで、ユーザはリポジトリR2及びR3上の如何なる副データ構造にもアクセスすることができない。
更に例示的には、アクセスレベルに関係なく、リソースグループRG2={N2,N3,N5,R1,N7,R3}に関連するアクセス制御プロファイルを有するユーザは、ノードN1及びN4上の主データ構造のどれにもアクセスすることができず、それは、これは、リソースグループRG2内に含まれないからである。更に、ノードN6及びリポジトリR2はリソースグループRG2内に含まれてないので、ユーザはノードN6及びリポジトリR2上の副データ構造のどれにもアクセスすることができない。
但しユーザは、リソースグループRG2内に含まれるノードN2及びN3上の主データ構造にアクセスすることができる。
ノードN5及びN7並びにリポジトリR1及びR3がリソースグループRG2内に含まれているので、アクセスレベルに応じてユーザはリポジトリR1及びR3上の特定の副データ構造にアクセスすることができる。
特に、「フル」アクセスレベル(第3アクセスレベル)の下では、ユーザはリポジトリR1及びR3上の全ての副データ構造にアクセスすることができる。
しかし「グループ」アクセスレベル(第1アクセスレベル)の下では、ユーザはリポジトリR1上のバックアップBU1(ノードN1であるBU1のオーナストレージリソースがリソースグループRG2内に含まれないので)、リポジトリR3上のバックアップBU8(ノードN1であるBU8のオーナストレージリソースがリソースグループRG2内に含まれないので)、及びリポジトリR3上のバックアップBU12(ノードN4であるBU12のオーナストレージリソースがリソースグループRG2内に含まれないので)のデータ構造にアクセスすることはできない。
リソースグループRG2に関連するユーザが「オーナ」アクセスレベル(第2アクセスレベル)の下でノードN2にログインしている場合、ユーザはリポジトリR1及びR3上のバックアップBU2、BU3、及びBU9にしかアクセスできず、それはそれらのバックアップはオーナストレージリソースとしてユーザがログインしているノードN2を有する副データ構造だからである。
更に例示的には、アクセスレベルに関係なく、リソースグループRG3={N3,N4,N6,R2,N7,R3}に関連するアクセス制御プロファイルを有するユーザは、ノードN1及びN2上の主データ構造のどれにもアクセスすることができず、それはノードN1及びN2がリソースグループRG3内に含まれないからである。更に、ノードN5及びリポジトリR1はリソースグループRG3内に含まれないので、ユーザはノードN5及びリポジトリR1上の副データ構造のどれにもアクセスすることができない。
但しユーザは、リソースグループRG3内に含まれるノードN3及びN4上の主データ構造にアクセスすることができる。ノードN6及びN7並びにリポジトリR2及びR3がリソースグループRG3内に含まれるので、アクセスレベルに応じてユーザはリポジトリR2及びR3上の特定の副データ構造にアクセスすることができる。
特に、「フル」アクセスレベル(第3アクセスレベル)の下では、ユーザはリポジトリR2及びR3上の全ての副データ構造にアクセスすることができる。
しかし「グループ」アクセスレベル(第1アクセスレベル)の下では、ユーザはリポジトリR3上のバックアップBU8(ノードN1であるBU8のオーナストレージリソースがリソースグループRG3内に含まれないので)、及びリポジトリR3上のバックアップBU9(ノードN2であるBU9のオーナストレージリソースがリソースグループRG3内に含まれないので)のデータ構造にアクセスすることはできない。
リソースグループRG3に関連するユーザが「オーナ」アクセスレベル(第2アクセスレベル)の下でノードN3にログインしている場合、ユーザはリポジトリR2及びR3上のバックアップBU5、BU10、及びBU11にしかアクセスできず、それはそれらは、オーナストレージリソースとしてユーザがログインしているノードN3を有する副データ構造だからである。
更に例示的には、アクセスレベルに関係なく、リソースグループRG4={N2,N7,R3}に関連するアクセス制御プロファイルを有するユーザは、ノードN1、N3、及びN4上の主データ構造のどれにもアクセスすることができず、それはノードN1、N3、及びN4がリソースグループRG4内に含まれないからである。更に、ノードN5及びリポジトリR1並びにノードN6及びリポジトリR2はリソースグループRG4内に含まれないので、ユーザはノードN5及びリポジトリR1並びにノードN6及びリポジトリR2上の副データ構造のどれにもアクセスすることができない。
但しユーザは、資源群RG4内に含まれるノードN2上の主データ構造にアクセスすることができる。ノードN7及びリポジトリR3がリソースグループRG4内に含まれるので、アクセスレベルに応じて、ユーザはリポジトリR3上の特定の副データ構造にアクセスすることができる。
特に、「フル」アクセスレベル(第3アクセスレベル)の下では、ユーザはリポジトリR3上の全ての副データ構造にアクセスすることができる。
しかし「グループ」アクセスレベル(第1アクセスレベル)の下では、又はユーザのリソースグループRG4内に含まれる主データ構造の唯一のノードであるノードN2によってログインしている場合は「オーナ」アクセスレベル(第2アクセスレベル)の下でも、ユーザはリポジトリR3上のバックアップBU9のデータ構造にしかアクセスすることができず、それはBU9がリソースグループRG4内に含まれるオーナストレージリソースを有するリポジトリR3上の唯一の副データ構造だからである。
更に例示的には、「オーナ」アクセスレベル(第2アクセスレベル)の下では、ユーザがアクセスできるリソースグループの何れにも含まれないストレージノードにおいてユーザがログインする場合、そのユーザはストレージリソース上のどの副データ構造も見えない。例えば図7のリソースグループRG1に関する第2アクセスレベルを有するユーザがストレージノードN4においてログインする場合、そのユーザはR1内のどの副データ構造も見えない。
上記の内容に鑑みて、例示的実施形態では、主データ構造及び副データ構造へのアクセス制御のための効率的且つ高信頼並びに非常に柔軟なアクセス制御スキームを、例えば1又は複数のリソースグループを示す及び/又は主データ構造に基づいて作成される副データ構造へのアクセスに関する様々なアクセスレベルを示すアクセス制御プロファイルに基づいて提供することができる。更に、それらのアクセス制御スキームは、例えばアクセス制御プロファイルに関連する活動グループ及び/又は活動に基づいて役割ベースアクセス制御(RBAC)及び活動許可と高信頼且つ効率的に組み合わせることができる。データストレージリソースへのユーザアクセスをテナントに基づいて許可するために、かかる態様はテナント区別スキームと共に更に定めることができる。
更に、例示的実施形態では、例えば上記の例示的なストレージハンドラ又はリソースハンドリングコントローラ等のエンドポイントコントローラの管理において、ユーザのアクセス制御プロファイルを示すペイロードをユーザのアクセス要求に実装する又は埋め込むことにより、及び/又はデータ構造に関するメタデータを保つことにより、分散システム内に非集中アクセス制御スキームを与えることが有利に可能であり、そのことは中央承認モジュール/装置又は例示的なUIC(ユーザインタフェースコントローラ)等のユーザインタフェース管理装置/モジュールにおける所要の通信帯域幅及び処理負荷をそのいくつかの例示的実施形態において減らす。
当業者によって理解されるように、上記の及び添付図面に記載の本発明は方法(例えばコンピュータによって実施されるプロセス、ビジネスプロセス、又は他の任意のプロセス)、装置(デバイス、機械、システム、コンピュータプログラム製品、及び/又は他の任意の装置を含む)、又は上記のものの組み合わせとして具体化することができる。
従って、本発明の実施形態は完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又は本明細書で「システム」と広く呼ばれ得るソフトウェアの側面とハードウェアの側面とを組み合わせる実施形態の形を取ってもよい。更に本発明の実施形態は、コンピュータ実行可能プログラムコードが媒体に具体化されたコンピュータ可読媒体上のコンピュータプログラム製品の形を取ってもよい。
図中、矢印は2つ以上のエンティティが関与する通信、転送、又は他の活動を表すために使用されてもよいことに留意すべきである。双方向矢印は活動が双方向に行われ得ること(例えば或る方向のコマンド/要求と他の方向の対応する返信、又は何れかのエンティティによって開始されるピアツーピア通信)を概して示すが、状況によっては活動が必ずしも双方向に行われなくてもよい。
単方向矢印は専ら又は主に一方向の活動を概して示すが、特定の状況ではかかる方向性の活動が実際には双方向の活動(例えば送信者から受信者へのメッセージと受信者から送信者に返される肯定応答、又は転送前の接続の確立と転送後の接続の終了)を含んでもよいことに留意すべきである。従って、特定の活動を表すために特定の図面の中で使用される矢印の種類は例示的であり、限定的と見なすべきではない。
本発明の実施形態を方法及び装置のフローチャート及び/又はブロック図に関して、並びにそれらの方法及び/又は装置によって生成されるグラフィカルユーザインタフェースの幾つかのサンプルビューに関して上記で記載してきた。フローチャート及び/又はブロック図の各ブロック、及び/又は流れ図及び/又はブロック図の中のブロックの組み合わせ、並びにグラフィカルユーザインタフェースはコンピュータ実行可能プログラムコードによって実装され得ることが理解されよう。
コンピュータ実行可能プログラムコードは、特定の機械を作り出すために汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えられてもよく、それによりコンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行されるプログラムコードが、フローチャート、ブロック図の1又は複数のブロック、図面、及び/又は記載の説明の中で明記した機能/動作/出力を実装するための手段を作り出す。
これらのコンピュータ実行可能プログラムコードは、特定の方法で機能するようにコンピュータ又は他のプログラム可能データ処理装置に指示することができるコンピュータ可読メモリ内に記憶してもよく、それによりコンピュータ可読メモリ内に記憶されたプログラムコードがフローチャート、ブロック図の1又は複数のブロック、図面、及び/又は記載の説明の中で明記した機能/動作/出力を実施する命令手段を含む製品をもたらす。
コンピュータ実行可能プログラムコードは、コンピュータ又は他のプログラム可能装置上で実行される一連の動作上のステップを生じさせて、コンピュータによって実施されるプロセスをもたらすためにコンピュータ又は他のプログラム可能データ処理装置上にロードすることもでき、それによりコンピュータ又は他のプログラム可能装置上で実行されるプログラムコードがフローチャート、ブロック図のブロック(複数も可)、図面、及び/又は記載の説明の中で明記した機能/動作/出力を実施するためのステップをもたらす。それに代えて、本発明の実施形態を実行するために、コンピュータプログラムによって実施されるステップ又は動作をオペレータ又は人間によって実施されるステップ又は動作と組み合わせてもよい。
本明細書では、「サーバ」及び「プロセッサ」等の用語は、本発明の特定の実施形態の中で使用され得るデバイスを記述するために使用してもよく、文脈上他の意味に解すべき場合を除き、本発明を或る特定の装置の種類に限定するものだと解釈すべきではない。従ってデバイスは、ブリッジ、ルータ、ブリッジルータ(ブルータ)、スイッチ、ノード、サーバ、コンピュータ、器具、又は他の種類のデバイスを制限なしに含み得る。かかるデバイスは、通信ネットワーク上で通信するための1又は複数のネットワークインタフェース及びデバイスの機能を実行するようにしかるべく構成されるプロセッサ(例えばメモリ及び他の周辺装置及び/又は特定用途向けハードウェアを有するマイクロプロセッサ)を典型的には含む。
通信ネットワークはパブリックネットワーク及び/又はプライベートネットワークを概して含んでもよく、ローカルエリア、広域、都市圏、ストレージ、及び/又は他の種類のネットワークを含んでもよく、アナログ技術、デジタル技術、光学技術、無線技術(例えばBluetooth(登録商標))、ネットワーキング技術、及びインターネットワーキング技術を含むがこれだけに決して限定されない通信技術を採用することができる。
デバイスは通信プロトコル及びメッセージ(例えばデバイスによって作成され、伝送され、受信され、記憶され、及び/又は処理されるメッセージ)を使用してもよく、それらのメッセージが通信ネットワーク又は通信媒体によって搬送されてもよいことにも留意すべきである。
文脈上他の意味に解すべき場合を除き、本発明は或る特定の通信メッセージの種類、通信メッセージの形式、又は通信プロトコルに限定されるものとして解釈すべきではない。従って通信メッセージは、典型的に、フレーム、パケット、データグラム、ユーザデータグラム、セル、又は他の種類の通信メッセージを制限なしに含んでもよい。
文脈上他の意味に解すべき場合を除き、特定の通信プロトコルへの言及は例示的であり、代替的実施形態はかかる通信プロトコルの改変形態(例えば適宜行われ得るプロトコルの修正又は拡張)又は既知の若しくは将来開発される他のプロトコルを必要に応じて採用してもよいことを理解すべきである。
本明細書では、ロジックフローは本発明の様々な態様を実証するために本明細書で説明することがあり、或る特定のロジックフロー又はロジック実装に本発明を限定するものだと解釈すべきではない。全体的な結果を変えることなしに、或いは本発明の真の範囲から逸脱することなしに、記載のロジックは様々なロジックブロック(例えばプログラム、モジュール、関数、又はサブルーチン)へと区分化してもよい。
全体的な結果を変えることなしに、或いは本発明の真の範囲から逸脱することなしに、多くの場合、論理要素は追加し、修正し、省略し、異なる順序で実行し、又は様々な論理構造(例えば論理ゲート、ループ基本命令、条件付きロジック、及び他の論理構造)を使用して実装してもよい。
本発明は、プロセッサ(例えばマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、又は汎用コンピュータ)用のコンピュータプログラムロジック、プログラム可能論理装置(例えば書換可能ゲートアレイ(FPGA)又は他のPLD)用のプログラム可能ロジック、個別の構成要素、集積回路(例えば特定用途向け集積回路(ASIC))、又はそれらの任意の組み合わせを含む他の任意の手段を含むがこれだけに決して限定されない多くの異なる形式で具体化することができる。記載した機能の一部又は全てを実装するコンピュータプログラムロジックは、典型的にはコンピュータ実行可能形式に変換され、そのようにコンピュータ可読媒体内に記憶され、オペレーティングシステムの制御下でマイクロプロセッサによって実行されるコンピュータプログラム命令のセットとして実装される。記載した機能の一部又は全てを実装するハードウェアベースのロジックは、1又は複数の適切に構成されたFPGAを使用して実装してもよい。
本明細書で先に記載した機能の全て又は一部を実装するコンピュータプログラムロジックは、ソースコード形式、コンピュータ実行可能形式、及び様々な中間形式(例えばアセンブラ、コンパイラ、リンカ、又はロケータによって生成される形式)を含むがこれだけに決して限定されない様々な形式で実施してもよい。
ソースコードは、様々なオペレーティングシステム又はオペレーティング環境用の、様々なプログラミング言語(例えばオブジェクトコード、アセンブリ言語、又はFortran、C、C++、JAVA(登録商標)、若しくはHTML等の高級言語)の何れかによって実装される一連のコンピュータプログラム命令を含んでもよい。ソースコードは、様々なデータ構造及び通信メッセージを定義し使用してもよい。ソースコードは、(例えばインタプリタによって)コンピュータ実行可能形式であってもよく、又はソースコードは、(例えばトランスレータ、アセンブラ、又はコンパイラによって)コンピュータ実行可能形式に変換されてもよい。
本発明の実施形態の動作を実行するためのコンピュータ実行可能プログラムコードは、Java(登録商標)、Perl、Smalltalk、C++等のオブジェクト指向プログラミング言語、スクリプトプログラミング言語、又は非スクリプトプログラミング言語で書かれてもよい。但し本発明の実施形態の動作を実行するためのコンピュータプログラムコードは、「C」プログラミング言語又は同様のプログラミング言語等の従来の手続き型プログラミング言語で書かれてもよい。
本明細書で先に記載した機能の全て又は一部を実装するコンピュータプログラムロジックは、単一のプロセッサ上で様々な時点において(例えば同時に)実行されてもよく、又は複数のプロセッサ上で同じ時点若しくは異なる時点において実行されてもよく、単一のオペレーティングシステムプロセス/スレッドの下で又は異なるオペレーティングシステムプロセス/スレッドの下で実行されてもよい。
従って「コンピュータプロセス」という用語は、様々なコンピュータプロセスが同じプロセッサ上で実行されるか異なるプロセッサ上で実行されるかに関係なく、及び様々なコンピュータプロセスが同じオペレーティングシステムプロセス/スレッドの下で実行され又は異なるオペレーティングシステムプロセス/スレッドの下で実行されるかに関係なく、コンピュータプログラム命令のセットの実行を広く指す。
コンピュータプログラムは任意の形式(例えばソースコード形式、コンピュータ実行可能形式、又は中間形式)で、半導体メモリデバイス(例えばRAM、ROM、PROM、EEPROM、又はフラッシュプログラム可能RAM)、磁気メモリデバイス(例えばディスケット又は固定ディスク)、光学メモリデバイス(例えばCD−ROM)、PCカード(例えばPCMCIAカード)、又は他のメモリデバイス等の有形の記憶媒体の中に永続的に又は一時的に固定してもよい。
コンピュータプログラムは、アナログ技術、デジタル技術、光学技術、無線技術(例えばBluetooth)、ネットワーキング技術、及びインターネットワーキング技術を含むがこれだけに決して限定されない様々な通信技術の何れかを使用してコンピュータに伝送することができる信号の中に任意の形式で固定してもよい。
コンピュータプログラムは、付属の印刷文書又は電子文書を有するリムーバブル記憶媒体(例えばシュリンクラップソフトウェア)として任意の形式で配布させてもよく、コンピュータシステムに(例えばシステムROM又は固定ディスク上に)予めロードさせてもよく、又は通信システム(例えばインターネット又はワールドワイドウェブ)上でサーバ又は電子掲示板から配布させてもよい。
本明細書で先に記載した機能の全て又は一部を実装するハードウェアロジック(プログラム可能論理デバイス用のプログラム可能ロジックを含む)は、従来の手動方法を使用して設計してもよく、又は計算機援用設計(CAD)、ハードウェア記述言語(例えばVHDL又はAHDL)、若しくはPLDプログラミング言語(例えばPALASM、ABEL、又はCUPL)等の様々なツールを使用して電子的に設計し、捕捉し、シミュレートし、若しくは文書化してもよい。
任意の適切なコンピュータ可読媒体が利用されてもよい。コンピュータ可読媒体は、例えばこれだけに限定されないが、電子、磁気、光学、電磁、赤外、又は半導体のシステム、装置、デバイス、又は媒体であってもよい。
コンピュータ可読媒体のより具体的な例は、これだけに限定されないが、1又は複数の配線を有する電気接続、又はポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能なプログラム可能読取専用メモリ(EPROM又はフラッシュメモリ)、コンパクトディスク読取専用メモリ(CD−ROM)、又は他の光学記憶デバイス若しくは磁気記憶デバイス等の他の有形記憶媒体を含む。
プログラム可能ロジックは、半導体メモリデバイス(例えばRAM、ROM、PROM、EEPROM、又はフラッシュプログラム可能RAM)、磁気メモリデバイス(例えばディスケット又は固定ディスク)、光学メモリデバイス(例えばCD−ROM)、又は他のメモリデバイス等の有形記憶媒体の中に永続的に又は一時的に固定してもよい。
プログラム可能ロジックは、アナログ技術、デジタル技術、光学技術、無線技術(例えばBluetooth)、ネットワーキング技術、及びインターネットワーキング技術を含むがこれだけに決して限定されない様々な通信技術の何れかを使用してコンピュータに伝送することができる信号の中に固定してもよい。
プログラム可能ロジックは、付属の印刷文書又は電子文書を有するリムーバブル記憶媒体(例えばシュリンクラップソフトウェア)として配布させてもよく、コンピュータシステムに(例えばシステムROM又は固定ディスク上に)予めロードしてもよく、又は通信システム(例えばインターネット又はワールドワイドウェブ)上でサーバ又は電子掲示板から配布させてもよい。当然ながら、本発明の一部の実施形態はソフトウェア(例えばコンピュータプログラム製品)及びハードウェア両方の組み合わせとして実装してもよい。本発明の更に他の実施形態は完全にハードウェアとして、又は完全にソフトウェアとして実装される。
特定の例示的実施形態を説明し添付図面の中に示したが、上記の段落の中で記載したものに加えて他の様々な変更、組み合わせ、省略、修正、及び置換が可能なので、それらの実施形態は広範な発明の例示にすぎず、広範な発明を限定しておらず、本発明の実施形態は図示及び説明した特定の仕組み及び構成に限定されないことを理解すべきである。
本発明の範囲及び趣旨から逸脱することなしに、ちょうど記載した実施形態の様々な適合、修正、及び/又は組み合わせを構成できることを当業者なら理解されよう。従って、添付の特許請求の範囲内で、本発明は本明細書で具体的に記載した以外のやり方で実践できることを理解すべきである。例えば別段の定めがない限り、本明細書で記載したプロセスのステップは本明細書に記載したのと異なる順序で実行してもよく、1又は複数のステップを組み合わせる、分割する、又は同時に実行してもよい。
本開示に鑑みて、本明細書に記載した本発明の様々な実施形態を組み合わせて本発明の他の実施形態を形成できることも当業者なら理解されよう。