IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立ヴァンタラ株式会社の特許一覧

特開2024-162449クォータ管理システム及びクォータ管理方法
<>
  • 特開-クォータ管理システム及びクォータ管理方法 図1
  • 特開-クォータ管理システム及びクォータ管理方法 図2
  • 特開-クォータ管理システム及びクォータ管理方法 図3
  • 特開-クォータ管理システム及びクォータ管理方法 図4
  • 特開-クォータ管理システム及びクォータ管理方法 図5
  • 特開-クォータ管理システム及びクォータ管理方法 図6
  • 特開-クォータ管理システム及びクォータ管理方法 図7
  • 特開-クォータ管理システム及びクォータ管理方法 図8
  • 特開-クォータ管理システム及びクォータ管理方法 図9
  • 特開-クォータ管理システム及びクォータ管理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162449
(43)【公開日】2024-11-21
(54)【発明の名称】クォータ管理システム及びクォータ管理方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241114BHJP
   G06F 13/10 20060101ALI20241114BHJP
   G06F 16/13 20190101ALI20241114BHJP
   H04L 67/1097 20220101ALI20241114BHJP
   G06F 3/06 20060101ALI20241114BHJP
【FI】
G06F9/50 120Z
G06F13/10 340A
G06F16/13 120
H04L67/1097
G06F3/06 301Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023077955
(22)【出願日】2023-05-10
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】マルティネス レリン, パブロ
(72)【発明者】
【氏名】早坂 光雄
(57)【要約】
【課題】複数ロケーションのストレージ装置の複数テナントの各々についてのクォータの管理負担を削減する。
【解決手段】システムが、要求対象のクォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定されたクォータ要求を受け付け、クォータ情報を基に競合判定(クォータ要求で指定されたテナント、一つ以上のロケーション及び容量上限が関連付けられたクォータについて競合があるか否かの判定)を行い、競合判定の結果が偽の場合に要求クォータに関する情報をクォータ情報に追加する。クォータ情報は、複数ロケーションにおける複数のストレージ装置のクォータ毎に、テナント、一つ以上のロケーション、及び、容量上限を表す情報を含む。複数ロケーションの各々について、当該ロケーションにあるストレージ装置の容量のうちテナントが使用可能な容量は、当該ロケーションと当該テナントとに対応したクォータの容量上限以下である。
【選択図】図1
【特許請求の範囲】
【請求項1】
ストレージシステムと通信可能なインターフェース装置と、
前記ストレージシステムの複数のテナントの各々を表す情報を含むテナント情報と、前記ストレージシステムのクォータに関する情報を含むクォータ情報とを記憶する記憶装置と、
前記インターフェース装置及び前記記憶装置に接続されたプロセッサと
を備え、
前記ストレージシステムは、複数ロケーションにおける複数のストレージ装置を含み、
クォータ毎に、クォータに関する情報は、テナント、前記複数ロケーションのうちの一つ以上のロケーション、及び、容量上限を表す情報を含み、
前記複数ロケーションの各々について、当該ロケーションにあるストレージ装置の容量のうちテナントが使用可能な容量は、当該ロケーションを含む一つ以上のロケーションと当該テナントとに対応したクォータであって前記クォータ情報に定められたクォータの容量上限以下であり、
前記プロセッサは、
要求対象のクォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定されたクォータ要求を受け付け、
前記テナント情報と前記クォータ情報とを基に、前記クォータ要求で指定されたテナント、一つ以上のロケーション及び容量上限が関連付けられたクォータである要求クォータについて競合があるか否かの判定である競合判定を行い、
前記競合判定の結果が偽の場合に、前記指定されたテナント、ロケーション及び容量上限が関連付いた要求クォータに関する情報を、前記クォータ情報に追加する、
クォータ管理システム。
【請求項2】
前記テナント情報は、前記複数のテナントの階層関係を表し、
前記競合判定は、前記指定されたテナントの上位テナントについて対象上位テナントクォータがあるか否かの判定を含み、
前記対象上位テナントクォータは、前記指定されたテナントの上位テナントの一つ以上のクォータのうち、前記指定された一つ以上のロケーションの全てを含む一つ以上のロケーションが関連付いたクォータであり、
前記指定されたテナントの少なくとも一つの上位テナントについて前記対象上位テナントクォータが無い場合、前記競合判定の結果が偽である、
請求項1に記載のクォータ管理システム。
【請求項3】
前記競合判定は、前記指定された容量上限が条件を満たすか否かの判定である容量判定を含み、
前記容量判定は、前記指定されたテナントの上位テナントの対象上位テナントクォータに関連付いた容量上限と、前記指定されたテナントの一つ以上の下位クォータの対象下位テナントクォータそれぞれに関連付いた容量上限とに基づく判定であり、
前記対象下位テナントクォータは、前記指定されたテナントの下位テナントの一つ以上のクォータのうち、前記指定された一つ以上のロケーションに全て含まれる一つ以上のロケーションが関連付いたクォータであり、
前記指定されたテナントの少なくとも一つの上位テナントについて前記容量判定の結果が偽の場合に、前記競合判定の結果が偽である、
請求項2に記載のクォータ管理システム。
【請求項4】
前記条件は、下記(X)から下記(Y)を引いた差が下記(Z)以上であることであり、
(X)前記指定されたテナントの上位テナントの前記対象上位テナントクォータに関連付いた容量上限、
(Y)下記(y1)乃至(y3)の合計、
(y1)当該上位テナントが前記対象上位テナントクォータの範囲で使用している容量、
(y2)前記指定されたテナントの前記指定された容量上限、
(y3)前記指定されたテナントの一つ以上の下位テナントの前記対象下位テナントクォータの容量上限の合計、
(Z)第1の閾値(0以上)、
請求項3に記載のクォータ管理システム。
【請求項5】
前記インターフェース装置は、ユーザ端末と通信可能であり、
前記プロセッサは、リソース枯渇ロケーションが検出された場合、前記リソース枯渇ロケーションの容量増設のために前記リソース枯渇ロケーションにハードウェアリソースを増設することを示唆する情報を、前記ユーザ端末に送信し、
前記リソース枯渇ロケーションは、前記(X)から前記(Y)を引いた差が前記第1の閾値より大きい第2の閾値未満に該当する対象上位テナントクォータに関連付いた少なくとも一つのロケーションである、
請求項4に記載のクォータ管理システム。
【請求項6】
前記インターフェース装置は、前記指定されたテナントのプロバイダのプロバイダ端末と通信可能であり、
前記プロセッサは、前記プロバイダ端末に対し、前記要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限を受け付けるインターフェースであるクォータインターフェースを提供し、
前記クォータインターフェースを介して、前記要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定される、
請求項1に記載のクォータ管理システム。
【請求項7】
前記インターフェース装置は、前記指定されたテナントに属するコンシューマのコンシューマ端末と通信可能であり、
前記プロセッサは、前記コンシューマ端末に対し、前記要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限を受け付けるインターフェースであるクォータインターフェースを提供し、
前記クォータインターフェースを介して、前記要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定される、
請求項1に記載のクォータ管理システム。
【請求項8】
前記インターフェース装置は、更に、前記指定されたテナントのプロバイダのプロバイダ端末と通信可能であり、
前記プロセッサは、前記競合判定の結果が偽の場合、
前記プロバイダ端末に、前記要求クォータについて競合無しを表す情報を送信し、
前記プロバイダ端末から、前記要求クォータについて承認を受け付けた場合に、前記指定されたテナント、ロケーション及び容量上限が関連付いた要求クォータに関する情報を、前記クォータ情報に追加する、
請求項7に記載のクォータ管理システム。
【請求項9】
前記プロセッサは、前記競合判定の結果が偽の場合に、人手による承認無しに、前記要求クォータに関する情報を前記クォータ情報に追加する、
請求項1に記載のクォータ管理システム。
【請求項10】
複数ロケーションの各々について、一つ以上のストレージタイプが定められており、
クォータ毎に、クォータに関する情報は、ストレージタイプを表す情報を更に含み、
前記プロセッサは、前記要求対象のクォータに関し更にストレージタイプの指定を受け付け、
前記対象上位テナントクォータは、前記指定されたテナントの上位テナントの一つ以上のクォータのうち、更に前記指定されたストレージタイプと同じストレージタイプが関連付いたクォータである、
請求項2に記載のクォータ管理システム。
【請求項11】
前記プロセッサは、
テナント、ロケーション及び容量が指定された容量要求を受け付け、
前記容量要求で指定されたテナントについて前記クォータ情報から特定される一つ以上のクォータのうち、前記容量要求で指定されたロケーションが関連付いたクォータである対象クォータを特定し、
前記対象クォータを基に、前記容量要求で指定された容量を前記容量要求で指定されたテナントへ提供することが可能か否かの提供判定を行い、
前記提供判定の結果が真の場合に、前記容量要求で指定された容量を前記容量要求で指定されたテナントに提供する、
請求項1に記載のクォータ管理システム。
【請求項12】
前記テナント情報は、前記複数のテナントの階層関係を表し、
前記提供判定は、下記(A)から下記(B)を引いた差が下記(C)以上か否かの判定であり、
(A)前記対象クォータの容量上限、
(B)下記(b1)及び(b2)の合計、
(b1)前記対象クォータの使用容量、
(b2)前記容量要求で指定されたテナントの一つ以上の下位クォータの対象下位テナントクォータそれぞれに関連付いた容量上限、
前記対象下位テナントクォータは、前記容量要求で指定されたテナントの下位テナントの一つ以上のクォータのうち、前記容量要求で指定されたロケーションを含んだ一つ以上のロケーションが関連付いたクォータである、
(C)前記容量要求で指定された容量、
請求項11に記載のクォータ管理システム。
【請求項13】
前記複数ロケーションの各々は、サイト、地理的な地域、データセンタ及びネットワークエリアのうちのいずれかである、
請求項1に記載のクォータ管理システム。
【請求項14】
前記競合判定は、前記指定されたテナントについて、前記クォータ情報に、前記指定された一つ以上のロケーションの少なくとも一つのロケーションを含むクォータがあるか否かの判定を含み、
当該判定の結果が真の場合、前記競合判定の結果が真となる、
請求項1に記載のクォータ管理システム。
【請求項15】
コンピュータが、要求対象のクォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定されたクォータ要求を受け付け、
コンピュータが、テナント情報とクォータ情報とを基に、前記クォータ要求で指定されたテナント、一つ以上のロケーション及び容量上限が関連付けられたクォータである要求クォータについて競合があるか否かの判定である競合判定を行い、
コンピュータが、前記競合判定の結果が偽の場合に、前記指定されたテナント、ロケーション及び容量上限が関連付いた要求クォータに関する情報を、前記クォータ情報に追加し、
前記テナント情報は、ストレージシステムの複数のテナントの各々を表す情報を含み、
前記ストレージシステムは、複数ロケーションにおける複数のストレージ装置を含み、
前記クォータ情報は、前記ストレージシステムのクォータに関する情報を含み、
クォータ毎に、クォータに関する情報は、テナント、前記複数ロケーションのうちの一つ以上のロケーション、及び、容量上限を表す情報を含み、
前記複数ロケーションの各々について、当該ロケーションにあるストレージ装置の容量のうちテナントが使用可能な容量は、当該ロケーションを含む一つ以上のロケーションと当該テナントとに対応したクォータであって前記クォータ情報に定められたクォータの容量上限以下である、
クォータ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、クォータ管理に関する。
【背景技術】
【0002】
ストレージ装置は、一般に、プロバイダが所有又は管理し、プロバイダが、一定期間(例えば数年)のコミットメント期間をもってコンシューマに容量割当を行う。コンシューマは、通常、複数のテナントのうちの一部に属する。
【0003】
「クォータ」は、コンシューマがストレージ装置にデータを保存することを許可し、保存できるデータ量を制限する。クォータ管理として、例えば、特許文献1に開示の技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】US11003497
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示のクォータ管理によれば、プロバイダが単一ロケーションのストレージ装置に関しクォータを設定することができる。
【0006】
しかし、複数ロケーションのストレージ装置(例えば、オンプレミス、ニアクラウド及びパブリッククラウドのストレージ装置)にデータを配置するテナント(例えば企業)があるが、そのようなテナントに、特許文献1に開示のクォータ管理が採用されると、ロケーション別のクォータ管理が必要となり、負担が大きい。
【0007】
また、クォータの変更に伴い、ハードウェアリソースの変更(例えば増設又は減設)が必要になり得る。例えば、クォータがより容量上限が大きいクォータに変更された場合、HDD(Hard Disk Drive)やSDD(Solid State Drive)といった記憶デバイスの増設が必要になり得る。ハードウェアリソースの変更には時間と労力が必要になるため、クォータの変更には、一般に、人間の承認が必要とされ、また、クォータには、一定のコミットメント期間が関連付けられる。必要以上の容量上限が関連付けられたクォータを設定しておくことが考えられるが、その場合、ハードウェアリソースの使用率が低く、無駄に多くのハードウェアリソースが必要になることが考えられる。
【課題を解決するための手段】
【0008】
クォータ管理システムが、要求対象のクォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定されたクォータ要求を受け付け、テナント情報とクォータ情報とを基に競合判定(クォータ要求で指定されたテナント、一つ以上のロケーション及び容量上限が関連付けられたクォータである要求クォータについて競合があるか否かの判定)を行う。競合判定の結果が偽の場合に、クォータ管理システムが、指定されたテナント、ロケーション及び容量上限が関連付いた要求クォータに関する情報を、クォータ情報に追加する。テナント情報は、ストレージシステムの複数のテナントの各々を表す情報を含む。ストレージシステムは、複数ロケーションにおける複数のストレージ装置を含む。クォータ情報は、ストレージシステムのクォータに関する情報を含む。クォータ毎に、クォータに関する情報は、テナント、複数ロケーションのうちの一つ以上のロケーション、及び、容量上限を表す情報を含む。複数ロケーションの各々について、当該ロケーションにあるストレージ装置の容量のうちテナントが使用可能な容量は、当該ロケーションを含む一つ以上のロケーションと当該テナントとに対応したクォータであってクォータ情報に定められたクォータの容量上限以下である。
【発明の効果】
【0009】
本発明によれば、複数ロケーションのストレージ装置の複数テナントの各々についてのクォータの管理負担を削減することができる。
【図面の簡単な説明】
【0010】
図1】実施形態に係るクォータ管理システムを含むシステム全体の構成例を示す。
図2】クォータ管理システムにおけるクォータ管理の一例を模式的に示す。
図3】クォータインターフェースの一例を示す。
図4】クォータ管理システムのメモリに格納されるテーブル及びプログラムの例を示す。
図5】テナントテーブルの構成例を示す。
図6】ロケーションテーブルの構成例を示す。
図7】クォータテーブルの構成例を示す。
図8】クォータ決定処理の流れを示す。
図9】容量判定処理(図8のS806の詳細)の流れを示す。
図10】容量提供処理の流れを示す。
【発明を実施するための形態】
【0011】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0012】
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0013】
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
【0014】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0015】
また、以下の説明では、処理の実行主体をプログラムとして処理を説明することがあるが、プログラムはプロセッサによって実行されるため(典型的には、プログラムがプロセッサに実行されることによって行われる処理は、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため)、プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各プログラムの説明は一例であり、複数のプログラムが1つのプログラムにまとめられたり、1つのプログラムが複数のプログラムに分割されたりしてもよい。
【0016】
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られるデータを説明することがあるが、当該データは、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxxデータ」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【0017】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。
【0018】
図1は、本発明の一実施形態に係るクォータ管理システムを含むシステム全体の構成例を示す。
【0019】
クォータ管理システム4000は、通信ネットワーク5000(例えばインターネット又はWAN(Wide Area Network))を介して、プロバイダ端末1000、コンシューマ端末2000、及び、複数のストレージサーバ3000と通信可能である。少なくともプロバイダ端末1000又はコンシューマ端末2000は複数存在してよい。
【0020】
プロバイダ端末1000は、プロバイダの情報処理端末(例えば、パーソナルコンピュータ又はスマートフォン)である。プロバイダは、1つ以上のテナントに割り当てられたリソースプロバイダロールを有するユーザである。プロバイダは、プロバイダ端末1000を用いて、クォータ管理システム4000に対し、当該プロバイダが担当するテナントについてクォータを承認又は設定(アサイン)する。一のプロバイダが、特定のテナントに割り当てられず、いずれのテナントについても、クォータを承認又は設定できてよい。
【0021】
コンシューマ端末2000は、コンシューマの情報処理端末である。コンシューマは、1つ以上のテナントに所属しておりリソースコンシューマの役割を持つユーザである。コンシューマは、コンシューマ端末2000を用いて、クォータ管理システム4000に対し、当該コンシューマが所属するテナントについてのクォータを要求したり、当該コンシューマが所属するテナントのための論理ボリュームの提供を要求したりする。一のコンシューマが、特定のテナントに所属せず、いずれのテナントについても、クォータや論理ボリューム提供を要求できてよい。
【0022】
複数のストレージサーバ3000は、異なる複数のロケーション6000に存在する。例えば、図1が示す例によれば、ロケーション6000A~6000Cがあり、ロケーション6000Aに、ストレージサーバ3000A1及び3000A2があり、ロケーション6000Bに、ストレージサーバ3000Bがあり、ロケーション6000Cに、ストレージサーバ3000Cがある。異なるロケーション6000B及び6000Cにおけるストレージサーバ3000B及び3000C間が通信ネットワーク5000非経由に通信可能に接続されてよい。なお、ロケーション6000は、サイト、地理的な地域、データセンタ及びネットワークエリアのうちのいずれかを意味してよい。ロケーション6000は、サイトと呼ばれてもよい。また、ロケーション6000は、オンプレミス環境、ニアクラウド環境又はパブリッククラウド環境といったストレージ環境を意味してもよい。異なる意味(定義)のロケーション6000が混在してもよい。本実施形態では、ロケーション6000は、地理的な地域でよい。
【0023】
ストレージサーバ3000は、物理的なストレージ装置でもよいし、論理的なストレージ装置(例えば、ロジカルパーティショニングにより構成されたストレージ装置、又は、クラウドストレージ)でもよい。ストレージサーバ3000は、インターフェース装置3100、メモリ3300、一つ以上のPDEV(物理的なストレージデバイス)3400、及びそれらに接続されたCPU3200を備える。インターフェース装置3100が通信ネットワーク5000に接続される。ストレージサーバ3000は、論理ボリュームを提供し、論理ボリュームを指定したI/O(Input/Output)要求に応答して論理ボリュームに対しデータを入出力することができる。
【0024】
クォータ管理システム4000は、本実施形態では、物理的な計算機システム(一つ以上の物理的な計算機)であるが、物理的な計算機システムに基づく論理的な計算機システム(例えば、仮想マシン又はクラウドコンピューティングシステム)でもよい。クォータ管理システム4000(例えばサーバ)は、インターフェース装置4100、メモリ4300、及びそれらに接続されたCPU4200を有する。インターフェース装置4100が通信ネットワーク5000に接続される。クォータ管理システム4000が、複数ロケーション6000の複数のストレージサーバ3000の複数テナントの各々についてクォータを管理する。
【0025】
図2は、クォータ管理システム4000におけるクォータ管理の一例を模式的に示す。
【0026】
ロケーション6000A~6000Cは、US-West、UK、及び、Japanである。クォータ管理システム4000は、複数のテナントを階層的に管理する。テナントは、企業、組織、部門、支店又はチームでよい。
【0027】
テナント管理は、テナントをノードとしテナント間の階層関係をエッジとしたグラフ(ツリー)の管理でよい。この段落において、一つのテナントを「注目テナント」と呼ぶ。注目テナントの上位にあるテナントのうち、注目テナントの1つ上位のテナントを、「親テナント」と呼び、注目テナントの下位にあるテナントのうち、注目テナントの1つ下位のテナントを「子テナント」と呼ぶことができる。テナントの「上位/下位」又は「親/子」の概念は、何を管理(例えば監視)する立場であるかによって違い得るが、所定の基準に沿って定義されていてよい。例えば、テナント間が「接続関係」の場合、一方のテナントが下位であり、一方のテナントに依存する(一方のテナントをベースとする)他方のテナントが上位でよい。テナント間が「包含関係」の場合、一方のテナントが下位であり、一方のテナントを包含する他方のテナントが上位でよい。図2が示す例によれば、最上位テナントとして、Company AとCompany Bがある。Company Aの子テナントはBranch AとBranch Bである。Branch Bの子テナントは、Salse EとSalse Wである。Company Bの子テナントはTeam 1とTeam 2である。
【0028】
クォータ管理は、テナントにクォータを関連付けることを含んでよい。テナントに関連付けられるクォータは、クォータの要素として、ストレージタイプ、容量上限、及び、ロケーションを含む。
【0029】
クォータ管理システム4000は、クォータの競合が生じない範囲で、階層関係を有する複数のテナントにそれぞれクォータを関連付けたり、同一のテナントに複数のクォータを関連付けたりすることができる。クォータの競合に該当する条件の詳細は後述するが、図2によれば、クォータの例は以下の通りである。
【0030】
Company Aに関連付けれたクォータでは、ロケーションは“US-West、UK及びJapan”、ストレージタイプは“SSD”、容量上限は“500TB”である。すなわち、Company Aは、合計500TBまで、US-West、UK及びJapanうちのいずれのロケーション6000のストレージサーバ3000のSSD(例えば、SSDに基づく記憶領域が割り当てられる論理ボリューム)にデータを配置することができる。
【0031】
また、Branch Bに関連付けられたクォータでは、ロケーションは“UK及びJapan”、ストレージタイプは“SSD”、容量上限は“100TB”である。Branch Bのクォータは、Branch Bの親テナントであるCompany Aのクォータと競合しない。なぜなら、Company Aのクォータは、ロケーションとしてBranch B(子テナント)“Japan”を含んでおり、ストレージタイプとしてBranch Bの“SSD”を含んでおり、且つ、容量上限はBranch Bの“100TB”以上であるからである。
【0032】
また、Company Bに二つのクォータが関連付けられている。一つのクォータでは、ロケーションは“US-West”、ストレージタイプは“HDD”、容量上限は“80TB”である。もう一つのクォータでは、ロケーションは“US-West及びJapan”、ストレージタイプは“SSD”、容量上限は“70TB”である。これらのクォータは競合しない。なぜなら、ストレージタイプが異なるからである。
【0033】
図3は、クォータインターフェースの一例を示す。
【0034】
クォータインターフェース4400は、クォータ管理システム4000により提供されクォータの要求又は設定のためのインターフェースであり、例えば、プログラムによりアクセスされるAPI(Application Programming Interface)、又は、ユーザに提供されるUI(User Interface)である。本実施形態では、クォータインターフェース4400は、プロバイダ端末1000及びコンシューマ端末2000のいずれにも提供され得るGUI(Graphical User Interface)である。クォータインターフェース4400を介して、プロバイダ及びコンシューマのいずれも、クォータ管理システム4000と対話することができる。クォータインターフェース4400は、ストレージタイプ4410、容量上限4420、期間4430、ロケーション4440及びテナント名4450という入力フィールドを有する。また、クォータインターフェース4400は、OK4460というアクションボタンを有する。入力フィールド及びアクションボタンはそれぞれGUI部品の一例である。
【0035】
ストレージタイプ4410は、クォータの対象とするストレージタイプの入力を受け付ける。ストレージタイプとして、本実施形態ではSSD及びHDDといった記憶デバイスタイプが採用されるが、記憶デバイスタイプに代えて/又は加えて、ブロックストレージ、ファイルストレージ及びオブジェクトストレージといった格納データタイプ又はその他のタイプが採用されてもよい。
【0036】
容量上限4420は、クォータとしての容量上限の入力を受け付ける。
【0037】
期間4430は、クォータのコミットメント期間(コミットメントと有効性の期間)の入力を受け付ける。例えば、“2 years”は、クォータが関連付けられたテナントに属するコンシューマは2年間クォータの変更が不可であることを意味する。なお、図3に例示の入力フィールドのうち少なくとも期間4430はクォータインターフェース4400に設けられなくてもよい。この場合、クォータのコミットメント期間は無制限でよい。
【0038】
ロケーション4440は、クォータがカバーする一つ以上のロケーションの入力を受け付ける。例えば、“US-West”と“Japan”の選択は、テナントが両方のロケーションでの容量消費の合計が容量上限以下の範囲で両方のロケーションにデータを配置できることを意味する。
【0039】
テナント名4450は、クォータが関連付けられるテナントのテナント名の入力を受け付ける。
【0040】
OK4460が押されると、図8に示すクォータ決定処理が開始される。
【0041】
図4は、クォータ管理システム4000のメモリ4300に格納されるテーブル及びプログラムの例を示す。
【0042】
メモリ4300には、テナントテーブル4310、ロケーションテーブル4320及びクォータテーブル4330といったデータや、クォータプログラム4340及びプロビジョンプログラム4350といったプログラムが格納される。
【0043】
図5は、テナントテーブル4310の構成例を示す。
【0044】
テナントテーブル4310は、テナント毎にレコードを有する。レコードは、テナントID4311、テナント名4312及び親テナントID4313といった情報を有する。
【0045】
テナントID4311は、テナントのIDを表す。テナント名4312は、テナントの名前を表す。親テナントID4313は、テナントの親テナントのIDを表す。なお、親テナントID4313“Top”は、親テナントが無くテナントが最上位テナントであることを意味する。また、各テナントについて、子テナントは一つ又は複数存在し得るが、親テナントはゼロ又は一つである。
【0046】
テナントテーブル4310は、例えばプロバイダによって作成又は更新される。
【0047】
図6は、ロケーションテーブル4320の構成例を示す。
【0048】
ロケーションテーブル4320は、ロケーション毎にレコードを有する。レコードは、ロケーション4321及びストレージタイプ4322といった情報を有する。
【0049】
ロケーション4321は、ロケーション6000のIDを表す。ストレージタイプ4322は、ロケーション6000にあるストレージサーバ3000のストレージタイプを表す。
【0050】
ロケーションテーブル4320は、例えばプロバイダによって作成又は更新される。ロケーションテーブル4320は、各ロケーション6000のストレージサーバ3000から収集されたデータに基づきクォータプログラム4340により作成又は更新されてもよい。例えば、US-Westに属するストレージサーバ3000から全てのHDDが外された場合、クォータプログラム4340が、US-Westに属するストレージサーバ3000からHDD除去を表すデータを受信し、US-Westに対応のストレージタイプ4322から“HDD”を削除してもよい。
【0051】
図7は、クォータテーブル4330の構成例を示す。
【0052】
クォータテーブル4330は、クォータ毎に、レコードを有する。レコードは、クォータID4331、テナントID4332、テナント名4333、ロケーション4334、ストレージタイプ4335、容量上限4336及び使用容量4337といった情報を有する。
【0053】
クォータID4331は、クォータのIDを表す。テナントID4332は、クォータが関連付けられたテナントのIDを表す。テナント名4333は、クォータが関連付けられたテナントの名前を表す。ロケーション4334は、クォータがカバーする一つ以上のロケーションを表す。ストレージタイプ4335は、クォータのストレージタイプを表す。容量上限4336は、クォータの容量上限を表す。使用容量4337は、クォータの容量上限のうち使用されている容量を表す。
【0054】
以下、本実施形態で行われる処理の例を説明する。
【0055】
図8は、クォータ決定処理の流れを示す。
【0056】
クォータ決定処理は、例えば、クォータインターフェース4400のOK4460が押された場合に開始される。
【0057】
クォータプログラム4340は、指定テナント(テナント名4450で指定されたテナント名に該当のテナント)に既に競合のクォータが関連付けられているか否かを判定する(S801)。具体的には、例えば、クォータプログラム4340は、クォータテーブル4330に下記の全ての条件に該当するレコードがあるか否かを判定する。
・クォータインターフェース4400のテナント名4450で指定されたテナント名を表すテナント名4333がある。
・クォータインターフェース4400のロケーション4440で選択された一つ以上のロケーションのうちの少なくとも一つのロケーションを表すロケーション4334がある。
・クォータインターフェース4400のストレージタイプ4110で指定されたストレージタイプを表すストレージタイプ4335がある。
【0058】
S801の判定結果が真の場合(S801:Yes)、クォータプログラム4340は、競合を表す応答を返す(S808)。図8に示す処理において、応答の提供先は、クォータインターフェース4400の提供先(つまりプロバイダ又はコンシューマ)である。S808で返る応答は、クォータインターフェース4400で指定された情報のうち、競合に該当する情報を表す情報を含んでよい。
【0059】
S801の判定結果が偽の場合(S801:No)、クォータプログラム4340は、テナントテーブル4310を参照し、指定テナントが最上位テナントか(指定テナントに対応の親テナントID4313が“Top”か)否かを判定する(S802)。S802の判定結果が真の場合(S802:Yes)、最上位テナントに新設のクォータには競合が生じないため、クォータプログラム4340は、承認を表す応答を返す(S807)。
【0060】
S802の判定結果が偽の場合(S802:No)、クォータプログラム4340は、クォータテーブル4330及びテナントテーブル4310を基に、指定テナントの全ての上位テナントについて、クォータテーブル4330に下記の条件を満たすレコードがあるか否かを判定する。
・レコードにおけるロケーション4334が表す一つ以上のロケーションが、クォータインターフェース4400のロケーション4440で選択された一つ以上のロケーションの全てを含む。
・同レコードにおけるストレージタイプ4335が、クォータインターフェース4400のストレージタイプ4110で指定されたストレージタイプを表す。
【0061】
少なくとも一つの上位テナントについて上記条件を満たすレコードが無い場合、S803の判定結果が偽となる。S803の判定結果が偽の場合(S803:No)、指定テナントについて要求されたクォータの少なくとも一部が上位テナントのクォータの範囲を超えているため、クォータプログラム4340は、S808を行う。
【0062】
全ての上位テナントの各々について上記条件を満たすレコードがある場合、S803の判定結果が真となる。このようなレコードに対応のクォータを、以下、図8(及び図9)の説明において、「上位テナントクォータ」と呼ぶ。S803の判定結果が真の場合(S803:Yes)、クォータプログラム4340は、S804~S806が未処理の上位テナントクォータがあれば、そのような上位テナントクォータを一つ選択して、S804~S806を行う。つまり、S804~S806が未処理の上位テナントクォータが無くなるまで(又は、いずれかの上位テナントクォータについてS806:Yesが検出されるまで)、S804~S806が繰り返される。一つの上位テナントクォータを例に取り、S804~S806を説明する。
【0063】
クォータプログラム4340は、上位テナントクォータの容量上限4336から、指定テナントの容量上限(容量上限4420で指定された容量)を引く(S804)。例えば、図2図3及び図7が示す例によれば、上位テナントクォータの容量上限4336がCompany Aの容量上限“500TB”であるため、クォータプログラム4340は、“500TB”から、指定テナント“Branch B”の容量上限“100TB”を引く。結果として、“400TB”が得られる。
【0064】
次に、クォータプログラム4340は、S804で算出された値から、当該上位テナントクォータの使用容量4337を引く(S805)。例えば、クォータプログラム4340は、S804で算出された値“400TB”から、上位テナント“Company A”の使用容量“2TB”を引く。結果として、“398TB”が得られる。
【0065】
次に、クォータプログラム4340は、容量は十分か否かを判定する(S806)。具体的には、クォータプログラム4340は、図9の容量判定処理を行う。容量判定処理の結果が競合の場合、S806の判定結果が偽となり(S806:No)、S808が行われる。その容量判定処理の結果が非競合の場合、S806の判定結果が真となる(S806:Yes)。S804~S806が未処理の上位テナントクォータがあれば、そのような上位テナントクォータが一つ選択されて、S804~S806が行われる。S804~S806が未処理の上位テナントクォータが無ければ、S807が行われる。
【0066】
なお、S807において、クォータプログラム4340は、指定テナントに、クォータインターフェース4400を通じて要求されたクォータを関連付けてよい(指定テナントについて要求されたクォータのレコードをクォータテーブル4330に追加してよい)。クォータインターフェース4400の提供先がコンシューマの場合、クォータプログラム4340は、クォータの要求があったこととクォータの競合が検出されなかったことを表す情報を、指定テナントのプロバイダに通知してよい。その通知に対してプロバイダの承認が得られた場合に、クォータプログラム4340は、要求されたクォータを指定テナントに関連付けてよい。
【0067】
図9は、容量判定処理(図8のS806の詳細)の流れを示す。
【0068】
クォータプログラム4340は、S901を行う。具体的には、クォータプログラム4340は、指定テナントのテナントIDを親テナントID4313として持つレコードをテナントテーブル4310から探す。指定テナントが最下位テナントでなければ、典型的には、一つ以上のレコード、つまり、指定テナントの一つ以上の下位テナントが見つかる。クォータプログラム4340は、一つ以上の下位テナントの各々について、当該下位テナントのクォータのレコードのうち、下記の全ての条件に該当するレコードを取得する。
・レコードにおけるテナント名4333が、当該下位テナントのテナント名を表す。
・同レコードにおけるロケーション4334が表す一つ以上のロケーションの全てが、クォータインターフェース4400のロケーション4440で選択された一つ以上のロケーションに含まれる。
・同レコードにおけるストレージタイプ4335が、クォータインターフェース4400のストレージタイプ4110で指定されたストレージタイプを表す。
【0069】
上記の条件に該当するレコードに対応のクォータを、以下、図9の説明において、「下位テナントクォータ」と呼ぶ。クォータプログラム4340は、S902が未処理の下位テナントクォータがあれば、そのような下位テナントクォータを一つ選択して、S902を行う。つまり、クォータプログラム4340は、最新の残容量から、下位テナントクォータの容量上限4336を引くことで、残容量を更新する(S902)。S902が1回目(初めて)の場合、「最新の残容量」は、S805で算出された値(例えば“398TB”)である。S902が2回目又はそれ以降の場合、「最新の残容量」は、直前回のS902で得られた残容量である。例えば、図2図3図7及び図8が示す例によれば、1回目のS902において、クォータプログラム4340は、最新の残容量“398TB”から、Sales E(UK)の容量上限“20TB”を引くことで、残容量“378TB”を算出する。次に、2回目のS902において、クォータプログラム4340は、最新の残容量“378TB”から、Sales E(Japan)の容量上限“40TB”を引くことで、残容量“338TB”を算出する。次に、3回目のS902において、クォータプログラム4340は、最新の残容量“338TB”から、Sales Wの容量上限“30TB”を引くことで、残容量“308TB”を算出する。
【0070】
S902が未処理の下位テナントクォータが無くなるまで、S902が繰り返される。つまり、S902の後、クォータプログラム4340は、S902が未処理の下位テナントクォータがあるか否かを判定する。この判定結果が真の場合、クォータプログラム4340は、そのような下位テナントクォータを一つ選択して、S902を行う。この判定結果が偽の場合、処理がS903に進む。
【0071】
クォータプログラム4340は、最後に算出された残容量が閾値(例えば“0”)以上か否かを判定する(S903)。
【0072】
S903の判定結果が真の場合(S903:Yes)、クォータプログラム4340は、非競合を出力する(S904)。この結果、S806の判定結果が真(S806:Yes)となる。
【0073】
S903の判定結果が偽の場合(S903:No)、クォータプログラム4340は、競合を出力する(S904)。この結果、S806の判定結果が偽(S806:No)となる。
【0074】
図9が示す処理において、クォータプログラム4340は、S902の都度にS903を行い、S903:Noが検出された場合に、S905を行い、S902が未処理の下位テナントクォータがあっても、図9の処理を終えてもよい。
【0075】
図10は、容量提供処理の流れを示す。
【0076】
プロビジョンプログラム4350は、プロバイダ端末1000又はコンシューマ端末2000からの容量要求に応答して、容量提供処理を開始する。容量要求では、例えば、テナント名、ロケーション、ストレージタイプ及び容量が指定される。また、容量は、その容量を持った論理ボリュームとして提供される。
【0077】
プロビジョンプログラム4350は、クォータテーブル4330に、下記の全ての条件に該当するレコードがあるか否かを判定する(S1001)。
・レコードのテナント名4333が、容量要求で指定されたテナント名を表す。
・同レコードのストレージタイプ4335が、容量要求で指定されたストレージタイプを表す。
・同レコードのロケーション4334が表す一つ以上のロケーションが、容量要求で指定されたロケーションを含む。
【0078】
上記の条件に該当するレコードが無い場合、S1001の判定結果が偽となる。S1001の判定結果が偽の場合(S1001:No)、容量要求での要求内容は、容量要求で指定されたテナントのクォータの範囲を超えているため、プロビジョンプログラム4350は、容量要求に対し拒否を表す応答を、容量要求の送信元(つまりプロバイダ又はコンシューマ)に返す(S1008)。
【0079】
上記の条件に該当するレコードがある場合、S1001の判定結果が真となる。S1001の判定結果が真の場合(S1001:Yes)、プロビジョンプログラム4350は、条件に該当のレコードから容量上限4336及び使用容量4337を特定し(S1002)、当該容量上限4336から当該使用容量4337を引くことで空き容量を算出する(S1003)。例えば、該当するレコードが、クォータID“Q2”を有するレコードである場合、特定された容量上限4336は“100TB”であり、特定された使用容量4337は“5TB”であるため、算出される空き容量は、“95TB”(=100TB-5TB)である。
【0080】
S1003の後、プロビジョンプログラム4350は、クォータテーブル4330及びテナントテーブル4310を基に、指定されたテナントの全ての下位テナントについて、クォータテーブル4330に下記の条件を満たすレコードを取得する(S1004)。
・レコードにおけるロケーション4334が表す一つ以上のロケーションが、容量要求で指定されたロケーションを含む。
・同レコードにおけるストレージタイプ4335が、容量要求で指定されたストレージタイプを表す。
【0081】
上記の条件に該当するレコードに対応のクォータを、以下、図10の説明において、「下位テナントクォータ」と呼ぶ。プロビジョンプログラム4350は、S1005が未処理の下位テナントクォータがあれば、そのような下位テナントクォータを一つ選択して、S1005を行う。つまり、プロビジョンプログラム4350は、最新の空き容量から、下位テナントクォータの容量上限4336を引くことで、空き容量を更新する(S1005)。S1005が1回目(初めて)の場合、「最新の空き容量」は、S1003で算出された値(例えば“95TB”)である。S1005が2回目又はそれ以降の場合、「最新の空き容量」は、直前回のS1005で得られた空き容量である。例えば、図2図3、及び図10が示す例によれば、1回目のS1005において、プロビジョンプログラム4350は、最新の空き容量“95TB”から、Sales E(UK)の容量上限“20TB”を引くことで、空き容量“75TB”を算出する。次に、2回目のS1005において、プロビジョンプログラム4350は、最新の空き容量“75TB”から、Sales E(Japan)の容量上限“40TB”を引くことで、空き容量“35TB”を算出する。次に、3回目のS1005において、プロビジョンプログラム4350は、最新の空き容量“35TB”から、Sales Wの容量上限“30TB”を引くことで、空き容量“5TB”を算出する。
【0082】
S1005が未処理の下位テナントクォータが無くなるまで、S1005が繰り返される。つまり、S1005の後、プロビジョンプログラム4350は、S1005が未処理の下位テナントクォータがあるか否かを判定する。この判定結果が真の場合、プロビジョンプログラム4350は、そのような下位テナントクォータを一つ選択して、S1005を行う。この判定結果が偽の場合、処理がS1006に進む。
【0083】
プロビジョンプログラム4350は、最後に算出された空き容量が、容量要求で指定された容量以上か否かを判定する(S1006)。
【0084】
S1006の判定結果が偽の場合(S1006:No)、プロビジョンプログラム4350は、S1008を行う。S1006の判定結果が真の場合(S1006:Yes)、プロビジョンプログラム4350は、承認を表す応答を返す(S1007)。
【0085】
なお、S1007において、プロビジョンプログラム4350は、指定されたテナントに対し、要求された容量を持つ論理ボリュームを割り当て、指定されたテナントの該当クォータの使用容量4337に、要求された容量を加算してよい。容量要求の送信元がコンシューマの場合、プロビジョンプログラム4350は、容量要求があったことと容量要求が承認されたことを表す情報を、指定されたテナントのプロバイダに通知してよい。その通知に対してプロバイダの承認が得られた場合に、プロビジョンプログラム4350は、要求された容量を持つ論理ボリュームを、指定されたテナントに割り当てよい(更に、指定されたテナントの該当クォータの使用容量4337に、要求された容量を加算してよい)。
【0086】
図10が示す処理において、プロビジョンプログラム4350は、S1005の都度にS1006を行い、S1006:Noが検出された場合に、S1008を行い、S1005が未処理の下位テナントクォータがあっても、図10の処理を終えてもよい。
【0087】
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
【0088】
また、以上の説明を、例えば、下記のように総括することができる。下記の総括は、上述の補足説明や変形例の説明を含んでよい。
【0089】
クォータ管理システム4000は、インターフェース装置4100と、メモリ4300(記憶装置の一例)と、それらに接続されたCPU4200(プロセッサの一例)とを備える。インターフェース装置4100は、ストレージシステムと通信可能である。メモリ4300は、ストレージシステムの複数のテナントの各々を表す情報を含むテナントテーブル4310(テナント情報の一例)と、ストレージシステムのクォータに関する情報を含むクォータテーブル4330(クォータ情報の一例)とを記憶する。
【0090】
ストレージシステムは、複数ロケーション6000における複数のストレージ装置を含む。ロケーション6000毎に、ストレージ装置は、例えば、一つ以上のストレージサーバ3000である。ストレージ装置は、容量(典型的には当該容量を持つ論理ボリューム)を提供する。
【0091】
クォータ毎に、クォータに関する情報は、テナント、一つ以上のロケーション6000、及び、容量上限を表す情報(例えば、テナントID4332、テナント名4333、ロケーション4334及び容量上限4336)を含む。
【0092】
複数ロケーション6000の各々について、当該ロケーション6000にあるストレージ装置の容量のうちテナントが使用可能な容量は、当該ロケーション6000を含む一つ以上のロケーションと当該テナントとに対応したクォータ(クォータテーブル4330)に定められたクォータの容量上限以下である。このような制御は、例えば、クォータプログラム4340を実行するCPU4200により行われてもよいし、各ロケーション6000のストレージ装置により行われてもよい。
【0093】
CPU4200は、要求対象のクォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定されたクォータ要求を受け付ける。CPU4200は、テナントテーブル4310とクォータテーブル4330とを基に、競合判定を行う。競合判定は、要求クォータ(クォータ要求で指定されたテナント、一つ以上のロケーション及び容量上限が関連付けられたクォータ)について競合があるか否かの判定である。競合判定の結果が偽の場合に、CPU4200は、指定されたテナント、ロケーション及び容量上限が関連付いた要求クォータに関する情報を、クォータテーブル4330に追加する。
【0094】
これにより、複数ロケーション6000のストレージ装置の複数テナントの各々についてのクォータの管理負担を削減することができる。クォータ管理システム4000によれば、複数ロケーション6000のストレージ装置におけるテナントとクォータの管理を一元化し、管理業務の軽減と簡素化を実現することができる。例えば、テナントのポリシーやロケーション6000に適用されている法規制等に基づき、プロバイダやコンシューマといったユーザは、複数ロケーション6000の全て又は一部を指定することができる。また、「クォータ要求」は、クォータの新規設定の要求でもよいし、既存クォータの変更の要求でもよい。また、複数ロケーション6000の各々は、サイト、地理的な地域、データセンタ及びネットワークエリアのうちのいずれかでよい。
【0095】
テナントテーブル4310は、複数のテナントの階層関係を表してよい。競合判定は、指定されたテナントの上位テナントについて対象上位テナントクォータがあるか否かの判定を含んでよい(例えばS803)。「対象上位テナントクォータ」とは、指定されたテナントの上位テナントの一つ以上のクォータのうち、指定された一つ以上のロケーションの全てを含む一つ以上のロケーションが関連付いたクォータでよい(例えば、指定された一つ以上のロケーションが“UK”及び“Japan”の場合、「対象上位テナントクォータ」は、“UK”及び“Japan”を含んだ二つ以上のロケーションが関連付けられたクォータでよい)。指定されたテナントの少なくとも一つの上位テナントについて対象上位テナントクォータが無い場合(例えばS803:No)、競合判定の結果が偽でよい。このようにして、複数ロケーション6000のストレージ装置のクォータの一元管理において、テナント階層関係とロケーションの観点から、クォータの競合(ここでは、上位テナントのクォータのロケーション範囲外のクォータが指定テナントについて設定されてしまうこと)を回避することができる。
【0096】
競合判定は、指定された容量上限が条件を満たすか否かの判定である容量判定(例えばS804~S806)を含んでよい。容量判定は、指定されたテナントの上位テナントの対象上位テナントクォータに関連付いた容量上限と、指定されたテナントの一つ以上の下位クォータの対象下位テナントクォータそれぞれに関連付いた容量上限とに基づく判定でよい。「対象下位テナントクォータ」は、指定されたテナントの下位テナントの一つ以上のクォータのうち、指定された一つ以上のロケーションに全て含まれる一つ以上のロケーションが関連付いたクォータでよい(例えば、指定された一つ以上のロケーションが“UK”及び“Japan”の場合、「対象下記テナントクォータ」は、“UK”及び“Japan”の少なくとも一つを含み“UK”及び“Japan”以外のロケーションを含まないクォータでよい)。指定されたテナントの少なくとも一つの上位テナントについて容量判定の結果が偽の場合に(例えばS806:No)、競合判定の結果が偽でよい。このようにして、複数ロケーション6000のストレージ装置のクォータの一元管理において、テナント階層関係とロケーションの他に容量上限の観点から、クォータの競合(ここでは、上位テナントのクォータのロケーション及び容量上限の範囲外のクォータが指定テナントについて設定されてしまうこと)を回避することができる。
【0097】
なお、容量判定における「条件」は、下記(X)から下記(Y)を引いた差が下記(Z)以上であることでよい。
(X)指定されたテナントの上位テナントの対象上位テナントクォータに関連付いた容量上限。
(Y)下記(y1)乃至(y3)の合計。
(y1)当該上位テナントが対象上位テナントクォータの範囲で使用している容量(例えば、使用容量4337が表す容量)。
(y2)指定されたテナントの指定された容量上限。
(y3)指定されたテナントの一つ以上の下位テナントの対象下位テナントクォータの容量上限の合計。
(Z)第1の閾値(0以上)。
【0098】
この条件に該当するか否かの判定の例が、図8のS804~S806(図9のS901~S905を含む)でよい。すなわち、一例として、(X)から(y2)が引かれ(例えばS804)、次に(y1)が引かれ、その後に、一つ以上の対象下位テナントクォータの容量上限が順次に引かれ(例えばS902)、最後に得られた値が(Z)以上か否かが判定(例えばS903)されてよい。指定されたテナントの少なくとも一つの上位テナントについて容量判定の結果が偽の場合に、(S806:No)競合判定の結果が偽でよい。
【0099】
インターフェース装置4100は、ユーザ端末と通信可能でよい。ユーザ端末は、ユーザの物理的な情報処理端末や入出力コンソールでもよいし、論理的な情報処理端末(例えば仮想デスクトップやアカウント)でもよい。ユーザ端末は、プロバイダ端末1000、コンシューマ端末2000、又は、ストレージシステムの管理者の管理者端末(図示せず)でよい。ユーザは、プロバイダ、コンシューマ及び管理者のいずれでもよい。CPU4200は、リソース枯渇ロケーションが検出された場合、リソース枯渇ロケーションの容量増設のためにリソース枯渇ロケーションにハードウェアリソースを増設することを示唆する情報をユーザ端末に送信してよい。「リソース枯渇ロケーション」は、上記(X)から上記(Y)を引いた差(例えばS903で比較される差)が第1の閾値より大きい第2の閾値未満に該当する対象上位テナントクォータに関連付いた少なくとも一つのロケーションでよい。例えば、そのような対象上位テナントクォータに関連付いたロケーションが“US-West”、“UK”及び“Japan”の場合、リソース枯渇ロケーションは、それらのロケーション全て又は一部もよいし、指定されたロケーション“UK”及び“Japan”の全部又は一部でもよい。これにより、要求クォータの設定(又は、クォータ要求に対する拒否)に並行して、容量不足が生じないように前もってロケーション6000にリソース(典型的には論理ボリュームに格納されたデータが格納される物理的な記憶デバイス)を追加することが期待できる。なお、増設を示唆する情報が送信されるため、競合判定の結果が真の場合に人手による承認無しに要求リソースに関する情報をクォータ情報に追加することが行われてもよい。
【0100】
CPU4200は、プロバイダ端末1000(ユーザ端末の一例)に対し、要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限を受け付けるインターフェースであるクォータインターフェース(例えばクォータインターフェース4400)を提供してよい。クォータインターフェースを介して、要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限が指定されてよい。これにより、プロバイダがテナントに対してクォータをアサインすることができる。
【0101】
CPU4200は、コンシューマ端末2000(ユーザ端末の一例)に対し、要求クォータに関するテナント、一つ以上のロケーション、及び、容量上限を受け付けるインターフェースであるクォータインターフェース(例えばクォータインターフェース4400)を提供してよい。これにより、コンシューマがクォータを要求できる。なお、CPU4200は、競合判定の結果が偽の場合、要求クォータについて競合無しを表す情報をプロバイダ端末1000に送信し、要求クォータについて承認をプロバイダ端末1000から受け付けた場合に要求クォータに関する情報をクォータテーブル4330に追加してよい。プロバイダという権限のあるユーザの承認があってクォータが設定されるため、セキュリティの向上が期待される。なお、CPU4200は、競合判定の結果が偽の場合に、プロバイダ等の人手による承認無しに、要求クォータに関する情報をクォータテーブル4330に追加してもよい。これにより、クォータ設定にかかる作業負担の一層の軽減が期待される。
【0102】
複数ロケーション6000の各々について、一つ以上のストレージタイプが定められていてよい(例えばロケーションテーブル4320)。クォータ毎に、クォータに関する情報は、ストレージタイプを表す情報を更に含んでよい。CPU4200は、要求対象のクォータに関し更にストレージタイプの指定を受け付けてよい。「対象上位テナントクォータ」は、指定されたテナントの上位テナントの一つ以上のクォータのうち、更に指定されたストレージタイプと同じストレージタイプが関連付いたクォータでよい。これにより、ストレージタイプの観点からも、上位テナントのクォータ範囲外のクォータが指定テナントについて設定されてしまうことを回避することができる。
【0103】
CPU4200は、テナント、ロケーション及び容量が指定された容量要求を受け付けてよい。CPU4200は、容量要求で指定されたテナントについてクォータテーブル4330から特定される一つ以上のクォータのうち、容量要求で指定されたロケーションが関連付いたクォータである対象クォータを特定してよい。CPU4200は、対象クォータを基に、容量要求で指定された容量を容量要求で指定されたテナントへ提供することが可能か否かの提供判定(例えばS1006)を行ってよい。提供判定の結果が真の場合に、CPU4200は、容量要求で指定された容量(例えば論理ボリューム)を、容量要求で指定されたテナントに提供してよい。このようにして、複数ロケーション6000のストレージ装置のクォータの一元管理において、テナント及びロケーションの指定を受け付け、当該テナント及びロケーションに対応のクォータの範囲で、指定された容量を当該テナントに提供することができる。なお、「論理ボリューム」は、テナント(具体的には、例えば、コンシューマ端末2000、又は、コンシューマ端末2000が利用するアプリケーションを実行するコンピュータ)に提供される論理的な記憶領域でよい。論理ボリュームは、実体的な論理ボリュームであってもよいし、仮想的な論理ボリュームであってもよい。実体的な論理ボリュームは、その論理ボリュームを提供するストレージ装置が有する物理的なストレージリソース(例えば、一つ以上のPDEV)に基づく論理ボリュームでよい。仮想的な論理ボリュームは、複数の仮想的な記憶領域で構成されており容量仮想化技術(典型的にはThin Provisioning)に従う論理ボリュームでよい。また、提供判定は、下記(A)から下記(B)を引いた差が下記(C)以上か否かの判定でよい。
(A)対象クォータの容量上限。
(B)下記(b1)及び(b2)の合計。
(b1)対象クォータの使用容量。
(b2)容量要求で指定されたテナントの一つ以上の下位クォータの対象下位テナントクォータそれぞれに関連付いた容量上限。(なお、ここでの「対象下位テナントクォータ」は、容量要求で指定されたテナントの下位テナントの一つ以上のクォータのうち、容量要求で指定されたロケーションを含んだ一つ以上のロケーションが関連付いたクォータでよい。)
(C)容量要求で指定された容量。
【0104】
この条件に該当するか否かの判定の例が、図10のS1002~S1006でよい。すなわち、一例として、(A)から(b1)が引かれ(例えばS1003)、その後に、一つ以上の対象下位テナントクォータの容量上限が順次に引かれ(例えばS1005)、最後に得られた値が(C)以上か否かが判定(例えばS1006)されてよい。
【0105】
競合判定は、クォータ要求で指定されたテナントについて、クォータテーブル4330に、クォータ要求で指定された一つ以上のロケーションの少なくとも一つのロケーションを含むクォータがあるか否かの判定(例えばS801)を含んでよい。当該判定の結果が真の場合(例えばS801:Yes)、競合判定の結果が真(例えばS808)でよい。このようにして、複数ロケーション6000のストレージ装置のクォータの一元管理において、同一テナントについてロケーションが重複する異なるクォータが設定されることを回避することができる。
【符号の説明】
【0106】
4000:クォータ管理システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10