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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7497945大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換
<>
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図1
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図2
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図3
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図4A
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図4B
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図4C
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図5
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図6A
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図6B
  • 特許-大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換 図6C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-03
(45)【発行日】2024-06-11
(54)【発明の名称】大容量エクステント・ストレージ・プールの小容量エクステント・ストレージ・プールへのインプレースでの変換
(51)【国際特許分類】
   G06F 3/06 20060101AFI20240604BHJP
   G06F 12/02 20060101ALI20240604BHJP
【FI】
G06F3/06 301Z
G06F12/02 510A
【請求項の数】 12
(21)【出願番号】P 2022512789
(86)(22)【出願日】2020-08-25
(65)【公表番号】
(43)【公表日】2022-11-07
(86)【国際出願番号】 IB2020057925
(87)【国際公開番号】W WO2021044250
(87)【国際公開日】2021-03-11
【審査請求日】2023-01-20
(31)【優先権主張番号】16/563,109
(32)【優先日】2019-09-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ハーディー、クリント
(72)【発明者】
【氏名】ニールセン、カール、アレン
(72)【発明者】
【氏名】カロス、マシュー
【審査官】松平 英
(56)【参考文献】
【文献】国際公開第2015/068233(WO,A1)
【文献】米国特許出願公開第2011/0185140(US,A1)
【文献】特開2008-269338(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
12/00-12/128
13/16-13/18
(57)【特許請求の範囲】
【請求項1】
既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するコンピュータ実装された方法であって、
第1のエクステント・サイズを有する前記既存のストレージ・プールを、第2のエクステント・サイズを有する前記目的のストレージ・プールに変換する要求を識別することであって、前記第1のエクステント・サイズは、前記第2のエクステント・サイズよりも大きい、識別すること、
前記既存のストレージ・プール内の各ボリュームについて、
与のボリュームに対応するボリューム・セグメント・テーブル(VST)エントリに対して一時停止/ロックを実行すること、
新しい構造を前記VSTエントリに適用することであって、前記新しい構造は、前記VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する、適用すること、および
前記既存のストレージ・プール内のランクのそれぞれについて、所与のランクを、前記第1のエクステント・サイズから前記第2のエクステント・サイズに変換すること
を含む方法。
【請求項2】
前記第1のエクステント・サイズから前記第2のエクステント・サイズに前記所与のランクを変換することが、
新しいスペースをランク・セグメント・テーブル(RST)内に割り当てること、
前記所与のランクについてエクステント変更アクティビティを休止させること、
前記第2のエクステント・サイズに対応する新しいエントリを、前記新たに割り当てられたRSTスペースに投入すること、
前記所与のランクに対応する既存のRSTエントリに対して一時停止/ロックを実行すること、および
前記所与のランクについてエクステント変更アクティビティを再開すること
を含む、請求項1に記載の方法
【請求項3】
前記第1のエクステント・サイズから前記第2のエクステント・サイズに前記所与のランクを変換することが、
前記既存のRSTエントリを解放すること
を含む、請求項2に記載の方法
【請求項4】
前記RSTは、各RSTエントリが所与のサイズのランク・エクステントに対応し、対応するボリューム・エクステントを指し示すように構成される、請求項2に記載の方法。
【請求項5】
前記新しい構造は、前記より小さな物理的エクステントがパディングを含むことなく前記目的のストレージ・プールのエクステント間の境界と整合するように、前記VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する、請求項1に記載の方法。
【請求項6】
前記ボリューム内のデータは、前記既存のストレージ・プールを前記目的のストレージ・プールに変換する間、前記既存のストレージ・プール外に移行されない、請求項1に記載の方法。
【請求項7】
既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するコンピュータ・プログラムであって、前記コンピュータ・プログラムは、請求項1ないし6のいずれか1項に記載の方法をプロセッサに行わせる、コンピュータ・プログラム。
【請求項8】
プロセッサ、および
前記プロセッサに統合されているか、前記プロセッサにより実行可能であるか、または前記プロセッサに統合されかつ前記プロセッサにより実行可能であるロジック
を含み、既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するシステムであって、前記ロジックは、
第1のエクステント・サイズを有する前記既存のストレージ・プールを、第2のエクステント・サイズを有する前記目的のストレージ・プールに変換する要求を、前記プロセッサにより識別することであって、前記第1のエクステント・サイズは、前記第2のエクステント・サイズよりも大きい、識別すること、
前記既存のストレージ・プール内の各ボリュームについて、
与のボリュームに対応するボリューム・セグメント・テーブル(VST)エントリに対して、一時停止/ロックを前記プロセッサにより実行すること、
新しい構造を前記VSTエントリに前記プロセッサにより適用することであって、前記新しい構造は、前記VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する、適用すること、および
前記既存のストレージ・プール内のランクのそれぞれについて、所与のランクを、前記第1のエクステント・サイズから前記第2のエクステント・サイズに、前記プロセッサにより変換すること
を行うように構成される、システム。
【請求項9】
前記所与のランクを前記第1のエクステント・サイズから前記第2のエクステント・サイズに変換することが、
新しいスペースをランク・セグメント・テーブル(RST)内に割り当てること、
前記所与のランクについてエクステント変更アクティビティを休止させること、
前記第2のエクステント・サイズに対応する新しいエントリを、前記新たに割り当てられたRSTスペースに投入すること、
前記所与のランクに対応する既存のRSTエントリに対して一時停止/ロックを実行すること、および
前記所与のランクについてエクステント変更アクティビティを再開することを含み、
前記ボリューム内のデータは、前記既存のストレージ・プールを前記目的のストレージ・プールに変換する間、前記既存のストレージ・プール外に移行されない、請求項に記載のシステム。
【請求項10】
前記所与のランクを前記第1のエクステント・サイズから前記第2のエクステント・サイズに変換することが、
前記既存のRSTエントリを解放すること
を含む、請求項に記載のシステム。
【請求項11】
前記RSTは、各RSTエントリが所与のサイズのランク・エクステントに対応し、対応するボリューム・エクステントを指し示すように構成される、請求項に記載のシステム。
【請求項12】
前記新しい構造は、前記より小さな物理的エクステントがパディングを含むことなく前記目的のストレージ・プールのエクステント間の境界と整合するように、前記VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する、請求項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの移動もしくは変換またはその両方に関し、より具体的には、本発明は、大容量エクステント・ストレージ・プールから小容量エクステント・ストレージ・プールへのインプレースでのデータの変換に関する。
【背景技術】
【0002】
ストレージ製品におけるエクステント・プールは、異なるエクステント・サイズを実装することができる。例えば、1GBのエクステント・サイズは、大容量エクステント・プールのために実装することができ、16MBのエクステント・サイズは、小容量エクステント・プールのために実装することができる。一部の作業負荷は、大容量エクステント・プールと比較すると、小容量エクステント・プールではより良好に実行することができる。したがって、ある状況では、特定のエクステント・サイズが、所与のストレージ・プールのためにクライアントによって選択されても、時間が経過すると要因が変化し、それゆえに、異なるエクステント・サイズが望ましくなるものとなる。例えば、いくつかの状況では、ストレージ・システムは、より小さなエクステント・サイズのストレージ・プールをより大きなエクステント・サイズのストレージ・プールに変換するほどに、物理的ストレージに対する需要の増加を受けることがある。
【0003】
しかし、所与のプールによって実装されるエクステント・サイズを変換するための既存のプロセスは、時間を要し、非効率的である。例えば、ストレージ・プール内のエクステント・サイズを変換するための従来のプロセスは、そのエクステント・サイズにいかなる変更を加え得る前でも、データを最初に他のストレージ・プールに移行させることを必要とする。このデータ移行のプロセスは、すべてのデータを他の記憶媒体に物理的にコピーするために、追加のストレージ・リソース、処理帯域幅、時間を必要とするため、望ましくない。したがって、ストレージ・プール内のエクステントのサイズを効率的に変換することができるプロセスが望まれている。
【発明の概要】
【0004】
一アプローチによれば、コンピュータ実装方法は、既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するための方法である。本コンピュータ実装方法は、第1のエクステント・サイズを有する既存のストレージ・プールを第2のエクステント・サイズを有する目的のストレージ・プールに変換する要求を識別することを含み、第1のエクステント・サイズは、第2のエクステント・サイズよりも大きい。既存のストレージ・プール内の各ボリュームについて、ボリューム・セグメント・テーブル(VST)エントリに対して一時停止/ロックを実行し、新しい構造をVSTエントリに適用する。この新しい構造は、VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する。さらに、既存のストレージ・プール内のランクのそれぞれについて、所与のランクは、第1のエクステント・サイズから第2のエクステント・サイズに変換される。
【0005】
また、ボリューム内のデータは、既存のストレージ・プールを目的のストレージ・プールに変換する間、既存のストレージ・プール外に移行されないことにも留意されたい。本明細書に含まれるアプローチのいくつかは、データ・ストレージ・プール内のランクのエクステント・サイズを、インプレースでデータを留めたまま変換できるということになる。このプロセスが、ランク・エクステント・サイズへの実際の変更が起こり得る前にデータのいくつかを並べ替えることを含まない一方で、データは、変換が実行されている間に所与のストレージ・プール内に位置したままであり、それによって、オペレーション効率を大幅に増加し、データ・ストレージの消費を低減し、パフォーマンスの遅延を減少させ、ネットワーク・トラフィック(例えば、データを移行させることに起因する)を低減する。これらの改善点は、ボリュームの特性がこれらの様々なプロセスおよびサブプロセスによってボリュームおよびランクのレイアウトをより大きなエクステント・サイズに変換することを可能にする、という事実に(少なくとも部分的に)起因して達成される。
【0006】
RSTもしくはVSTまたはその両方の特性は、他のストレージ・プールまたは機械へのデータの移動が関与しないように、これらの改良を達成することを可能にする。新しい構造はまた、より小さな物理的エクステントがパディングを含むことなく目的のストレージ・プールのエクステント間の境界と整合するように、VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する。このため、ストレージ・スペース利用の効率がさらに増加し、それにより、全体としての包括的なデータ・ストレージ・システムのパフォーマンスが向上する。
【0007】
別のアプローチによれば、コンピュータ・プログラム製品は、既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するためのものである。本コンピュータ・プログラム製品は、それを以て具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。プロセッサによって可読なもしくは実行可能なまたはその両方のプログラム命令は、前述の方法をプロセッサに実行させる。
【0008】
別のアプローチによれば、システムは、プロセッサと、プロセッサに統合されているか、プロセッサにより実行可能であるか、またはプロセッサに統合されかつプロセッサにより実行可能である、ロジックとを含む。このロジックは、前述の方法を実行するように構成されている。
【0009】
本発明の他の態様およびアプローチは、図面と併せて用いられた際に本発明の原理の例として説明される、以下の詳細な記載から明らかとなる。
【図面の簡単な説明】
【0010】
図1】一アプローチによるネットワーク・アーキテクチャの表示図である。
図2】一アプローチによる、図1のサーバもしくはクライアントまたはその両方に関連付けられ得る代表的なハードウェア環境を示す図である。
図3】一アプローチによる階層型データ・ストレージ・システムの表示図である。
図4A】一アプローチによる、既存の小容量エクステント・ストレージ・プールを目的の大容量エクステント・ストレージ・プールにインプレースで変換する方法のフローチャートである。
図4B】一アプローチによる、図4Aの方法におけるオペレーションの1つに対するサブプロセスのフローチャートである。
図4C】一アプローチによる、図4Aの方法におけるオペレーションの1つに対するサブプロセスのフローチャートである。
図5】一アプローチによるストレージ環境の表示図を示す。
図6A】一アプローチによる、既存の大容量エクステント・ストレージ・プールを目的の小容量エクステント・ストレージ・プールにインプレースで変換する方法のフローチャートである。
図6B】一アプローチによる、図6Aの方法におけるオペレーションの1つに対するサブプロセスのフローチャートである。
図6C】一アプローチによる、図6Aの方法におけるオペレーションの1つに対するサブプロセスのフローチャートである。
【発明を実施するための形態】
【0011】
以下の記載は、大容量エクステント・プールから小容量エクステント・プールへデータを移行するためのシステム、方法、およびコンピュータ・プログラム製品のいくつかの好適なアプローチを開示する。様々なアプローチは、ソース・ストレージ・プールのランク・エクステント内のボリュームと物理オフセット・ロケーションのロジックボリューム・エクステント間の対応を作成する方法を提供し、対応を利用して、ソース・ストレージ・プールの1つまたは複数のランクから行き先ソース・ストレージ・プールの1つまたは複数のランクにデータを移行する。
【0012】
以下の記載は、本発明の全般的な原理を説明するためになされたものであり、本明細書の特許請求の範囲に記載の本発明の概念を限定することを意味するものではない。さらに、本明細書に記載される具体的な特徴は、様々な可能な組合せおよび置換のそれぞれにおいて、他の記載された特徴と組み合わせて使用することができる。
【0013】
本明細書で別段明確に定義されない限り、すべての用語は、本明細書から含意される意味、ならびに当業者に理解される意味もしくは辞書、学術論文などで定義される意味またはその両方を含む、最も広い可能な解釈を与えられるものとなる。
【0014】
また、本明細書および添付の特許請求の範囲に用いられるように、単数形「a」、「an」、および「the」は、特に指定しない限り、複数の言及を含むことに留意されたい。「含む(includes)」もしくは「含む(comprising)」またはその両方という用語は、本明細書で使用される際に、記載された特徴、整数、ステップ、操作、要素、もしくは構成要素またはそれらの組合せの存在を特定するが、1つまたは複数の他の特徴、整数、ステップ、操作、要素、構成要素、もしくはそれらの群、またはそれらの組合せの存在または追加を排除しないことがさらに理解されるものとなる。
【0015】
以下の記載は、データをインプレースで留めたまま、データ・ストレージ・プール内のランクのエクステント・サイズを変換するためのシステム、方法、およびコンピュータ・プログラム製品のいくつかの好適なアプローチを開示している。変換の実行中にデータを所与のストレージ・プールに位置するよう保つことによって、本明細書に含まれる様々なアプローチは、例えばのちにさらに詳しく記載されるように、システムのオペレーション効率を大幅に増加させることができる。
【0016】
一般的な一アプローチでは、コンピュータ実装方法は、既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するための方法である。本コンピュータ実装方法は、第1のエクステント・サイズを有する既存のストレージ・プールを第2のエクステント・サイズを有する目的のストレージ・プールに変換する要求を識別することを含み、第1のエクステント・サイズは、第2のエクステント・サイズよりも大きい。既存のストレージ・プール内の各ボリュームについて、ボリューム・セグメント・テーブル(VST)エントリに対して一時停止/ロックを実行し、新しい構造をVSTエントリに適用する。この新しい構造は、VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する。さらに、既存のストレージ・プール内のランクのそれぞれについて、所与のランクは、第1のエクステント・サイズから第2のエクステント・サイズに変換される。
【0017】
別の一般的なアプローチでは、コンピュータ・プログラム製品は、既存のストレージ・プールを目的のストレージ・プールにインプレースで変換するためのものである。本コンピュータ・プログラム製品は、それを以て具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。プロセッサによって可読なもしくは実行可能なまたはその両方のプログラム命令は、前述の方法をプロセッサに実行させる。
【0018】
さらに別のアプローチによれば、システムは、プロセッサと、プロセッサに統合されているか、プロセッサにより実行可能であるか、またはプロセッサに統合されかつプロセッサにより実行可能である、ロジックとを含む。このロジックは、前述の方法を実行するように構成されている。
【0019】
図1は、一アプローチによるアーキテクチャ100を示す。図1に示すように、複数の遠隔ネットワーク102は、第1の遠隔ネットワーク104と第2の遠隔ネットワーク106とを備える。ゲートウェイ101は、遠隔ネットワークs102と近接ネットワーク108との間に結合されてもよい。本アーキテクチャ100のコンテキストでは、ネットワーク104、106はそれぞれ、以下に限定されないが、LAN、WAN、例えばインターネット、公衆交換電話ネットワーク(PSTN)、内部電話ネットワークなどを含む任意の形態をとることができる。
【0020】
使用時には、ゲートウェイ101は、遠隔ネットワーク102から近接ネットワーク108への入口ポイントとして役割を果たす。そのため、ゲートウェイ101は、ゲートウェイ101に到着した所与のパケットのデータを方向付けることのできるルータとして、および所与のパケットについてゲートウェイ101内へのおよび外への実際の経路を供給するスイッチとして機能することができる。
【0021】
さらに含まれるのは、近接ネットワーク108に結合され、ゲートウェイ101を介して遠隔ネットワーク102からアクセス可能である、少なくとも1つのデータ・サーバ114である。データ・サーバ114は、任意のタイプのコンピューティング・デバイス/グループウェアを含むことができることに留意すべきである。各データ・サーバ114に結合されているのは、複数のユーザ・デバイス116である。ユーザ・デバイス116はまた、ネットワーク104、106、108のうち1つを介して直接的に接続されてもよい。このようなユーザ・デバイス116は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、または任意の他のタイプのロジックを含むことができる。ユーザ・デバイス111はまた、1つのアプローチで任意のネットワークに直接的に結合されていてもよいことに留意すべきである。
【0022】
周辺装置120または周辺装置一式120、例えば、ファクシミリ装置、プリンタ、ネットワーク、またはローカル・ストレージ・ユニットもしくはシステムまたはそれらの組合せなどは、ネットワーク104、106、108のうちの1つまたは複数に結合されていてもよい。データベースもしくは追加の構成要素またはその両方が、ネットワーク104、106、108に結合された任意のタイプのネットワーク要素と共に利用されてもよいし、その中に統合されてもよいことに留意すべきである。本願記載のコンテキストでは、ネットワーク要素が、ネットワークの任意の構成要素を指すことがある。
【0023】
いくつかのアプローチによれば、本明細書に記載される方法およびシステムは、仮想システムによりもしくは仮想システム上でまたはその両方で、またはIBM z/OS環境をエミュレートするUNIX(登録商標)システム、MICROSOFTWINDOWS(登録商標)環境を仮想的にホストするUNIX(登録商標)システム、IBM z/OS環境をエミュレートするMICROSOFTWINDOWS(登録商標)システムなどの1つもしくは複数の他のシステムをエミュレートするシステムによりもしくはそのシステム上でまたはその両方で、またはそれらのシステムを組み合わせて、実装することができる。この仮想化もしくはエミュレーションまたはその両方は、いくつかのアプローチにおいて、VMWAREソフトウェアを使用して増強することができる。
【0024】
より多くのアプローチでは、1つまたは複数のネットワーク104、106、108は、「クラウド」と一般に呼ばれるシステムのクラスタを表すことができる。クラウド・コンピューティングでは、処理力、周辺機器、ソフトウェア、データ、サーバなどの共有リソースが、クラウド内の任意のシステムにオンデマンド関係で提供され、それによって多くのコンピューティング・システムにわたってサービスのアクセスおよび分配が可能になる。クラウド・コンピューティングは、典型的には、クラウドで動作するシステム間のインターネット接続を伴うが、システムを接続する他の技術も使用してよい。
【0025】
図2は、一アプローチによる、図1のユーザ・デバイス116もしくはサーバ114またはその両方に関連付けられた代表的なハードウェア環境を示す。この図は、マイクロプロセッサなどの中央処理ユニット210と、システムバス212を介して相互接続された多数の他のユニットとを有するワークステーションの典型的なハードウェア構成を示す。
【0026】
図2に示されるワークステーションは、ランダム・アクセス・メモリ(RAM)214、読出し専用メモリ(ROM)216、ディスク・ストレージ・ユニット220などの周辺デバイスをバス212に接続するためのI/Oアダプタ218、キーボード224、マウス226、スピーカ228、マイクロフォン232、もしくはタッチスクリーンやデジタルカメラ(図示せず)などの他のユーザ・インタフェース・デバイス、またはそれらの組合せをバス212に接続するための、ユーザインターフェースアダプタ222、ワークステーションを通信ネットワーク235(例えばデータ処理ネットワーク)に接続するための通信アダプタ234、およびバス212をディスプレイ・デバイス238に接続するためのディスプレイ・アダプタ236を含む。
【0027】
ワークステーションは、Microsoft Windows(登録商標)オペレーティング・システム(OS)、MAC OS、UNIX(登録商標) OSなどのオペレーティング・システムをその上に常駐させてもよい。好適なアプローチは、上述以外のプラットフォームおよびオペレーティング・システム上でも実装され得ることが理解されよう。好適なアプローチは、オブジェクト指向プログラミング方法論に沿って、XML、C、もしくはC++言語またはそれらの組合せ、または他のプログラミング言語を使用して書き込まれてもよい。複雑なアプリケーションを開発するために広く使用されつつあるオブジェクト指向プログラミング(OOP)が使用されてもよい。
【0028】
ここで図3を参照すると、ストレージ・システム300が一アプローチにより示されている。なお、図3に示される要素のいくつかは、様々なアプローチにしたがって、ハードウェアもしくはソフトウェアまたはその両方として実装することができる。ストレージ・システム300は、少なくとも1つの上位ストレージ階層302および少なくとも1つの下位ストレージ階層306上の複数のメディアと通信するためのストレージ・システム・マネージャ312を含んでいてもよい。上位ストレージ階層302は、好ましくは、1つまたは複数のランダムアクセスもしくはダイレクトアクセス媒体304またはその両方を含むことができ、そのような媒体は例えば、ハードディスク・ドライブ(HDD)内のハードディスク、不揮発性メモリ(NVM)、ソリッド・ステート・ドライブ(SSD)内のソリッド・ステート・メモリ、フラッシュメモリ、SSDアレイ、フラッシュ・メモリ・アレイ、または本明細書に記述のもしくは当技術分野に公知の他の媒体、またはそれらの組合せである。下位ストレージ階層306は、好ましくは、1つまたは複数の下位実行ストレージ媒体308を含んでいてもよく、そのようなものとしては、テープ・ドライブ内の磁気テープおよび/もしくは光学媒体などの連続アクセス媒体、低速アクセスHDD、低速アクセスSSDなど、または本明細書に記述のもしくは当技術分野に公知の他の媒体、またはそれらの組合せが挙げられる。1つまたは複数の追加のストレージ階層316は、システム300の設計者の所望する任意の組合せの記憶メモリ媒体を含んでいてもよい。また、上位ストレージ階層302もしくは下位ストレージ階層306またはその両方のいずれも、記憶デバイスもしくは記憶媒体またはその両方のいくつかの組合せを含んでいてもよい。
【0029】
ストレージ・システム・マネージャ312は、図3に示すようにストレージ・エリア・ネットワーク(SAN)などのネットワーク310を介して、またはいくつか他の適したネットワーク型を介して、上位ストレージ階層302および下位ストレージ階層306上でストレージ媒体304、308と通信することができる。ストレージ・システム・マネージャ312は、ホスト・インタフェース314を介して、1つまたは複数のホスト・システム(図示せず)と通信することもでき、ホスト・インタフェース314は、ストレージ・システム・マネージャ312の一部であってもなくてもよい。ストレージ・システム・マネージャ312もしくはストレージ・システム300またはその両方の任意の他のコンポーネントは、ハードウェアもしくはソフトウェアまたはその両方に実装されてもよく、中央処理ユニット(CPU)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、アプリケーション固有の集積回路(ASIC)など、当技術分野に公知のタイプのコマンドを実行するためのプロセッサ(図示せず)を使用することができる。言うまでもなく、本願記載を読めば当業者に明らかとなるように、ストレージ・システムの任意の配置を用いてもよい。
【0030】
より多くのアプローチでは、ストレージ・システム300は、任意の数のデータ・ストレージ階層を含むことができ、各ストレージ階層内に同じまたは異なるストレージ・メモリ媒体を含むことができる。例えば、各データ・ストレージ階層は、HDD、SSD、連続アクセス媒体(テープ・ドライブ内のテープ、光学ディスク・ドライブ内の光学ディスク)、直接アクセス媒体(CD-ROM、DVD-ROMなど)などの同じタイプのストレージ・メモリ媒体を含んでいてもよいし、または媒体ストレージタイプの任意の組合せを含んでいてもよい。このような構成の1つでは、上位ストレージ階層302は、上位実行ストレージ環境でデータを格納するためのSSDストレージ媒体の大部分を含んでいてもよく、下位ストレージ階層306および追加のストレージ階層316を含めた残りのストレージ階層は、下位実行ストレージ環境にデータを格納するためのSSD、HDD、テープ・ドライブなどの任意の組合せを含んでいてもよい。このようにして、より頻繁にアクセスされるデータ、より高い優先度を有するデータ、より迅速にアクセスされる必要のあるデータなどは、上位ストレージ階層302に格納され得るのに対し、これらの属性の1つを持たないデータは、下位ストレージ階層306を含めた追加のストレージ階層316に格納され得る。言うまでもなく、当業者は、本願記載を読めば、本明細書に提示されたアプローチに従って、異なるストレージ・スキームに実装するために、ストレージ媒体タイプの数多くの他の組み合わせを考案することができる。
【0031】
いくつかのアプローチによれば、本ストレージ・システム(300など)は、データ・セットを開く要求を受信するように構成されたロジックと、要求されたデータ・セットが複数の関連部分において階層型データ・ストレージ・システム300の下位ストレージ階層306に格納されているか否かを判定するように構成されたロジックと、要求されたデータ・セットの各関連部分を階層型データ・ストレージ・システム300の上位ストレージ階層302に移動させるように構成されたロジックと、上記関連部分から階層型データ・ストレージ・システム300の上位ストレージ階層302上で要求されたデータを組み立てるように構成されたロジックとを含んでいてもよい。
【0032】
言うまでもなく、このロジックは、様々なアプローチにより、任意のデバイスもしくはシステムまたはその両方上の方法として、またはコンピュータ・プログラム製品として、実装されてもよい。
【0033】
前述したように、ストレージ製品におけるエクステント・プールは、異なるエクステント・サイズを実装することができる。さらに、一部の作業負荷は、大容量エクステント・ストレージ・プールでの実行と比較すると、小容量エクステント・ストレージ・プールではより良好に(例えば、より効率的に)実行することができる。したがって、特定のエクステント・サイズが、所与のストレージ・プールのためにクライアントによって選択されても、時間が経過すると要因が変化し、それゆえに、異なるエクステント・サイズがパフォーマンス効率の観点からより望ましくなるものとなる。例えば、いくつかの状況では、ストレージ・システムは、より小さなエクステント・サイズのストレージ・プールをより大きなエクステント・サイズのストレージ・プールに変換することが望ましいほどに、物理的ストレージに対する需要の増加を受けることがある。
【0034】
しかし、所与のストレージ・プールによって実装されるエクステント・サイズを変換するための既存のプロセスは、時間を要し、非効率的である。例えば、ストレージ・プール内のエクステントのサイズを変換するための従来のプロセスは、そのエクステント・サイズにいかなる変更を加え得る前でも、データを既存のストレージ・プールから完全に離して別の物理的ストレージ・プールに移行させることを必要とする。このデータ移行のプロセスは、すべてのデータを代替の記憶媒体などに物理的にコピーするために、追加のストレージ・リソース、処理帯域幅、時間を必要とするため、望ましくない。したがって、ストレージ・プール内のエクステントのサイズを効率的に変換することができるプロセスが望まれている。したがって、ストレージ・プール内のエクステントのサイズを効率的に変換することができるプロセスが望まれている。
【0035】
従来のプロセスで経た上述の欠点とは著しく対照的に、本明細書に含まれるアプローチの様々なものは、データがインプレースで留まる間に、データ・ストレージ・プール内のランクのエクステント・サイズを変換することができることが望ましい。このプロセスは、ランク・エクステント・サイズへの実際の変更が起こり得る前にデータのいくつかを並べ替えることを含まない一方で、データは、変換の実行されている間に所与のストレージ・プール内に位置したままであり、それによって、例えば以下にさらに詳細に説明されるように、オペレーション効率を大幅に増加する。
【0036】
次に、図4Aを参照すると、一アプローチによる、既存の小容量エクステント・ストレージ・プールを目的の大容量エクステント・ストレージ・プールにインプレースで変換するための方法400のフローチャートが示されている。方法400は、様々なアプローチで、とりわけ図1図3に示されるいずれの環境においても、本発明に従って実施することができる。言うまでもなく、図4A具体的に記載されものよりも多いかまたは少ないオペレーションが、本願記載を読めば当業者に理解されるように、方法400に含まれることがある。
【0037】
方法400の各ステップは、動作環境の任意の適切な構成要素によって実行されてもよい。例えば、様々なアプローチでは、方法400は、部分的にまたは完全に、コントローラ、プロセッサ、コンピュータなど、または、1つもしくは複数のプロセッサを内部に有する他の装置によって実行されてもよい。したがって、いくつかのアプローチでは、方法400は、コンピュータ実装方法であってもよい。さらに、コンピュータ、プロセッサ、およびコントローラという用語は、本明細書のアプローチのいずれかに関して互換的に使用されてもよく、そのような構成要素は、本発明の多くの多様な並べ替えにおいて同等であると考えられる。
【0038】
さらに、プロセッサを有するこれらのアプローチについて、プロセッサ、例えば、ハードウェアもしくはソフトウェアまたはその両方で実装される処理回路、チップ、もしくはモジュール、またはそれらの組合せを有し、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサは、方法400の1つまたは複数のステップを実行するために任意のデバイスにおいて利用され得る。例証となるプロセッサは、以下に限定されないが、中央処理ユニット(CPU)、アプリケーション特定集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野に公知の任意の他の適切なコンピューティング・デバイスを含む。
【0039】
図4Aに示すように、方法400のオペレーション402は、第1のランク・エクステント・サイズを有する既存のストレージ・プールを、第2のランク・エクステント・サイズを有する目的のストレージ・プールに変換する要求を識別することを含む。上述したように、方法400は、小容量エクステント・ストレージ・プールを大容量エクステント・ストレージ・プールに変換することを含む。そのため、本願記載について、「第1のランク・エクステント・サイズ」は、「第2のランク・エクステント・サイズ」よりも比較的小さい。例えば、既存のストレージ・プール構成は、それぞれ約16MBのサイズを有するランク・エクステントを有することがあり、一方、目的のストレージ・プール構成は、それぞれ約1GBのサイズを有するランク・エクステントを有する。やはり、所与のエクステント・サイズを実装する環境において、一部の作業負荷が大幅に改善され得る。例えば、一部の作業負荷は、大容量エクステント・ストレージ・プールを用いる実行と比較すると、小容量エクステント・ストレージ・プールを使用してより効率的に実行される。ゆえに、所与のストレージ・プールのエクステント・サイズを変換する要求は、新たに開始された作業負荷に応答して実行中のアプリケーションから受け取られたり、エクステント・サイズに関する評価システムのパフォーマンスに応答してユーザから受け取られたりするなどとしてよい。
【0040】
用語「既存のストレージ・プール」および「目的のストレージ・プール」は、実際には、同じストレージ・プールの異なる構成を指すことに留意されたい。言い換えれば、用語「既存ストレージ・プール」は、ストレージ・プールの既存の状態(例えば、より小さなランク・エクステント・サイズ)を参照することを意図しており、「目的のストレージ・プール」は、同じストレージ・プールの計画された目標状態(例えば、より大きなランク・エクステント・サイズ)を指すことを意図している。
【0041】
当業者に理解されるように、例示的なストレージ・プールの論理構成は、物理的ストレージを含むランク(RAIDアレイ)と、物理的ストレージを論理的な連続するストレージ(例えば、論理ユニット数など)のホスト・アドレス可能範囲にマッピングするボリュームとを含む。ランクは、ランク・セグメント(エクステント)テーブル(RST)を含み、一方でボリュームは、ボリューム・セグメント(エクステント)テーブル(VST)を含む。これらのテーブルは、例えば以下にさらに詳細に記載されるように(例えば図5を参照)、ランク上で異なる物理エクステントを個々のボリュームに対応するエクステントへマッピングすることを、少なくとも部分的に制御する。
【0042】
図4Aをなおも参照すると、オペレーション404はさらに、既存のストレージ・プール内に並替えボリューム・エクステントを含み、そのボリュームの物理的ランク・エクステントが、目的のストレージ・プールのランク・エクステント間の境界と実質的に整合するようになっている。データをインプレースで保ちながら、所与のストレージ・プール内で実装されるエクステント・サイズを増加させることは、そのボリュームの物理的ランク・エクステントがより大きなエクステントの境界に沿って整合するように、ボリューム・エクステントの配置を再均衡させることを含む。言い換えれば、記載されるようにボリューム・エクステントを再均衡させることにより、連続した小容量エクステントは、例えば、本願記載を読んだ後に当業者により理解されるように、より大きな目的の(例えば、計画された)エクステント・サイズについて、隣接するスペースに整合しマッピングすることが可能になる。
【0043】
好適なアプローチによれば、既存のストレージ・プール内のボリューム・エクステントは、そのボリュームの物理的ランク・エクステントが、より大きなランク・エクステントを有する目的のストレージ・プールのランク・エクステント間の境界と実質的に整合するように、並べ替えられる。本願記載について、「実質的に整合する」とは、ボリューム・エクステントとランク・エクステント間の境界との間にパディングが存在しないように、ボリューム・エクステントが並べ替えられる状況を指すことを意図していることに留意されたい。言い換えれば、ボリューム・エクステントが、空隙を形成することなく、より大きな目的のランク・イベントを満たすことが好ましい。その結果、ストレージ・スペース利用の効率が増加し、それにより、全体としての包括的なデータ・ストレージ・システムのパフォーマンスが向上する。しかし、他のアプローチでは、ボリューム・エクステントとランク・エクステント間の境界との間に存在する可能性のある許容可能な量のパディングを、有効に予め定義する公差が実装されてもよい。
【0044】
また、上記に述べたように、ボリューム・エクステントをインプレースで並べ替えることは、既存のストレージ・プールがより大きなランク・エクステント・サイズを有する目的のストレージ・プールに変換されている間に、実際にボリュームに含まれるデータが既存のストレージ・プールの外に移行されることを防止することから望ましい。具体的には、本明細書に含まれるアプローチは、具体的には従来の手順と比較して、追加のストレージ・リソースの量、消費される処理帯域幅、パフォーマンスの遅延などを大幅に削減することができる。
【0045】
図4Aを続けて参照すると、いくつかのアプローチでは、既存のストレージ・プール内のボリューム・エクステントを並べ替えるプロセスは、各ボリューム・エクステントに含まれるデータの温度に基づいて、ボリューム・エクステントを並べ替えることを含むことに留意されたい。言い換えれば、いくつかのアプローチでは、オペレーション404は、ストレージ・プール内にどのようにボリューム・エクステントを配置すべきかを決定するために、データ・ヒート・セパレーションを使用することを含む。その結果、ホット・データを含む既存のストレージ・プール内のボリューム・エクステントをまとめてグループ化するとともに、コールド・データを含む既存のストレージ・プール内のボリューム・エクステントをまとめてグループ化する。これにより、ストレージ・プールを動作させることのできる効率をさらに高めることができる。しかし、データ・ヒート・セパレーションは、ボリューム・エクステントがオペレーション404において並べ替えられた後に意図的に無効化され、その位置合わせに対する継続的な変化を回避することにも留意されたい。さらに、所与のボリュームへの新しいエクステントの割当ては、連続する大容量エクステントの範囲に整合する連続的な小容量エクステントを割り当てることを含むことが好ましい。
【0046】
他のアプローチでは、既存のストレージ・プール内のボリューム・エクステントを並べ替えるプロセスは、ボリューム・エクステントによって論理的に表されるデータの全サイズに基づいて、ボリューム・エクステントを並べ替えることを含む。しかし、他のアプローチでは並べ替えは、ランダムに、逐次的に、非逐次的に実行されてもよい。さらに他のアプローチでは、ボリューム・エクステントを並べ替えるプロセスは、例えば、個々のランクのデータ検索速度などの1つまたは複数の基準に基づいてもよい。例えば、各ランクが、データ検索速度を低下させるために列挙されてもよく、そのリストに従って(例えば、最も速いデータ検索速度を有するランクなどから始まる)、ボリューム・エクステントがランクに割り当てられてもよい。
【0047】
ストレージ・プール内の各ボリュームをより大きな目的のエクステント・サイズに整合させることに応答して、次のステップは、ランクを新しいエクステント・サイズに変換することである。したがって、オペレーション406は、さらに、既存のストレージ・プール内の各ランクを、第1のランク・エクステント・サイズから第2のランク・エクステント・サイズに変換することを含む。言い換えれば、オペレーション406は、既存のストレージ・プール内の各ランクのサイズを、目的のストレージ・プールに関連付けられた目的のランク・サイズに増加させることを含む。好適なアプローチでは、既存のストレージ・プールの各ランクは、あるランクから次のランクへと進行することによって順次変換されるが、本発明を限定することを全く意図するものではない。例えば、いくつかのアプローチでは、2以上のランクのサイズを並行して増加させてもよい。
【0048】
先に述べたように、データ移行を行わずに所定のランクのサイズを増加させるプロセスが望ましい。少し図4Bを参照すると、例証となるアプローチに従って、既存のストレージ・プールの各ランクをより小さな第1のランク・エクステント・サイズからより大きな第2のランク・エクステント・サイズに変換する例示的なサブプロセスが図示されている。したがって、図4Bに含まれる任意の1つまたは複数のサブプロセスは、図4Aのオペレーション406を実行するために用いられることになる。しかし、図4Bのサブプロセスは、本発明を限定することを全く意図していない一アプローチに従って図示されていることに留意されたい。
【0049】
示されるように、サブオペレーション450は、既存のストレージ・プール内のランクに進むことを含む。例えば、図4Bのサブプロセスの第1の反復は、ストレージ・プール内の第1のランクに進むことを含んでいてもよく、一方、図4Bのサブプロセスの後続の反復は、ストレージ・プール内の後続のランクに進むことを含んでもよい。上述のように、図4Bのサブプロセスは、ストレージ・プール内のランクのそれぞれについて反復的に繰り返されてもよい。
【0050】
データをインプレースで維持しながらランクを変換するために、そのボリュームを既に含む既存のランク・エクステント・レイアウトにマッピングするための新たなテーブルを作成する。したがって、サブオペレーション452は、サブプロセス450において識別された所与のランクのための新しいRSTスペースもしくはエントリまたはその両方を割り当てることを含む。上述のように、この割り当てられた新しいRSTスペースもしくはエントリまたはその両方は、より大きな目的のランク・エクステント・サイズに対応し、それゆえに、そこに格納されたデータを移行させる必要なく、所与のランクのサイズを変換するために使用されてもよい。例えば、新たに割り当てられたRSTスペースもしくはエントリまたはその両方には、所与のランクの境界と実質的に整合するように並べ替えられているボリューム内のデータの論理位置が投入されていてもよい。いくつかのアプローチによれば、これは、データが論理的に格納されるボリューム内のボリュームおよびボリューム・エクステントを識別することによって、達成されることがある。
【0051】
好適なアプローチでは、RSTは、1対1ベースのエクステント方式で構成されることにも留意されたい。言い換えれば、各RSTエントリは、所与のサイズのランク・エクステントに対応し、対応するボリューム・エクステントを指し示す。例えば、いくつかのアプローチでは、所与のランク内のエクステントは、ランクのためのRSTエントリとして表され、各ランク・エクステントは、ストレージ・プール内のデータを格納するための所定量のストレージを表す。さらに、新しいRSTスペースを割り当てるプロセスは、本願記載を読んだ後に当業者には明らかとなる任意のプロセスを用いて実行されてもよい。
【0052】
図4Bを継続して参照すると、サブオペレーション454は、所与のランクについての全てのエクステント変更アクティビティを休止することを含む。これにより、所定のランクを変換することができるとともに、その中に含まれるエクステントは一時的に留まったままとなり、それによって、当業者に理解されるように、いかなるエラーも回避することができる。なお、エクステント変更アクティビティは、所与のランクについては休止されるが、ストレージ・プール内に留まるランクは、いくつかのアプローチでは影響を受けないことがあることに留意すべきである。これにより、変換を達成するためにプールからデータへ移行するのを回避することに加えて、各ランクのエクステント・サイズを体系的に変換しながら、全体的なストレージ・プールが稼働し続けることが可能になる。
【0053】
このフローチャートは、さらにサブオペレーション456に進むが、このサブオペレーションは、新たに割り当てられたRSTスペースもしくはエントリまたはその両方に、第2のランク・エクステント・サイズに対応する新しいエントリを投入することを含む。言い換えれば、サブオペレーション456は、サブオペレーション452に形成された新しいRSTエントリを、目的のより大きなランク・エクステント・サイズにしたがって所与のランクの境界と整合するように並べ替えられたより小さなボリューム・エクステントを指し示すように投入することを含む。いくつかのアプローチによれば、(例えば、参照番号を用いて)関連するボリューム・エクステントを参照する1つまたは複数のポインタを用いて、新たに割り当てられたRSTスペースを投入することができる。しかし、所望のプロセスは、例えば、所望のアプローチに応じて実装されてもよい。
【0054】
サブオペレーション458は、所与のランクに対応する既存のRSTエントリに対して一時停止/ロックを実行することをさらに含み、一方、サブオペレーション460は、第2のランク・エクステント・サイズに対応する(例えば、指し示す)新たなRSTエントリを活性化することを含む。これにより、サブオペレーション458および460は、新たに割り当てられたRSTエントリに、既存の(例えば、以前の)RSTエントリから遷移することができる。いくつかのアプローチによれば、既存のRSTエントリに対して一時停止/ロックを実行することは、新たに割り当てられたRSTエントリを使用してフローチャートが実際に遷移可能になる前に、全ての可能なスレッドを検査することを含んでいてもよい。
【0055】
新たに割り当てられたRSTエントリを活性化することに応答して、サブオペレーション462は、所与のランクについてのエクステント変更アクティビティを再開することを含む。サブオペレーション464は、追加的に、既存の(例えば、以前の)RSTエントリを所望の通りに再利用されることのあるように解放することを含む。例えば、いくつかのアプローチでは、既存のRSTエントリを解放することは、テーブル内のスペースを他のランクに関して使用されることのあるように解放することを含む。また、既存のRSTエントリ内に格納された任意の情報(例えばデータ、メタデータなど)は、削除されてもよい。
【0056】
決定466に進むと、ここで、フローチャートは、既存のストレージ・プール内の全てのランクが、より大きなランク・エクステント・サイズを実装するように変換されているか否かを判定することを含む。言い換えれば、決定466は、既存のストレージ・プール内の全てのランクが評価されているか否かを判定することを含む。より大きなランク・エクステント・サイズを実装するように既存のストレージ・プールの少なくとも1つのランクがまだ変換されていないと判定したことに応答して、フローチャートはサブオペレーション450に戻る。そこでは、サブオペレーション450は、まだ変換されていない次のランクに進むことを含み、それゆえに例えば、図4Bに図説されたサブプロセスをそのランクについて繰り返すことがある。しかし、既存のストレージ・プール内の全てのランクが、より大きなランク・エクステント・サイズを実装するように変換されていることを決定することに応答して、フローチャートは、図4Aのオペレーション408に進む。
【0057】
図4Aに戻ると、オペレーション408は、実際に、新たに変換されたランクにそれらがマッピングされるようにボリュームを変換することを含む。言い換えれば、より大きなランク・エクステント・サイズを実装するように各ランクが変換された後、ボリューム自体も変換される。少し図4Cを参照すると、例示的なアプローチに従って、新たに変換されたランクにそれらがマッピングされるようにボリュームを変換する例証となるサブプロセスが示されている。したがって、図4Cに含まれるいずれか1つまたは複数のサブプロセスを用いて、図4Aのオペレーション408を実行し得ることになる。しかし、図4Cのサブプロセスは、本発明を限定することを意図していない一アプローチに従って図説されていることに留意するべきである。
【0058】
図示のように、サブオペレーション470は、ストレージ・プール内のボリュームに進むことを含む。例えば、図4Cのサブプロセスの第1の反復が、ストレージ・プール内の第1のボリュームに進むことを含み得る一方で、図4Cのサブプロセスの後続の反復は、ストレージ・プール内の後続のボリュームまで進むことを含み得る。上述のように、図4Cのサブプロセスは、ストレージ・プール内の各ボリュームに対して反復的に繰り返されてもよい。
【0059】
サブオペレーション472に進むと、所与のボリュームに対応するVSTエントリに対して一時停止/ロックが実行される。いくつかのアプローチによれば、一時停止/ロックを実行することは、発行時にVSTエントリに関連付けられた可能な各スレッドをチェックすることを含む。
【0060】
さらに、サブオペレーション474は、第1のランク・エクステント・サイズに対応する(例えば、指し示す)VSTエントリに関連する既存の構造を除去することを含む。上述のように、各ボリュームは、より大きなランク・エクステント・サイズを有する新たに変換されたランクにマッピングされるように、変換されることが好ましい。このようにするために、より小さなランク・エクステント・サイズを有するランクの元の構成にマッピングする、任意の既存の構造を除去することが好ましい。これにより、より小さなランク・エクステント・サイズを形成した既存のVST構造が有効に除去され、それによって、より大きなランク・エクステント・サイズを実装することが可能になる。
【0061】
既存の構造を除去することに応答して、サブオペレーション476は、より大きなランク・エクステント・サイズに対応する新しい構造を有するVSTエントリを投入することをさらに含む。その結果、VSTエントリは、より大きなランク・エクステント・サイズを有する物理的ランク・エクステント(例えば、物理エクステントの開始エクステント数)を指し示すものとなる。ボリューム・エクステント・ナンバリングは最小エクステント単位を使用しているため、好適なアプローチでは、VSTエントリは、物理的エクステントについての開始エクステント数を指し示すことができる。さらに、上記のように、エクステントは、本願記載を読んだ後に当業者により理解されるように、いくつかのアプローチにおいて、パディングを含まずに物理的に共に充填される。
【0062】
本発明を限定することを全く意図していないいくつかのアプローチによれば、VSTエントリには、ボリュームの論理ボリューム・エクステントとストレージ・プールの個々のランク・エクステント内の物理的オフセット位置との間の対応を作成することによって、より大きなランク・エクステント・サイズに対応する新しい構造を投入することができる。この対応を作成することは、より大きなサイズに変換されている個々のランク・エクステントに対応するボリューム内のVSTエントリを識別することを含むことができる。例えば、VSTは、ボリュームに格納されたデータの論理表現を格納することができ、その場合、VSTは複数のエントリを含む。これらのエントリのサブセットは、個々のランク・エクステントに対応するVST内で識別され得る。
【0063】
他のアプローチでは、対応を作成することは、識別されたVSTエントリ毎に補足VSTを作成することを含んでいてもよい。例えば、識別されたVSTエントリのサブセットのそれぞれについて、補足VSTが作成されてもよい。別の例では、補助VSTの各々を用いて、高い粒度で、その対応するVSTエントリ内の全ての論理ボリューム・エクステントを表してもよい。さらに他のアプローチでは、対応を作成することは、変換されたランク・エクステント内の対応するオフセット位置を指し示すように補足VST内の論理ボリューム・エクステントを設定することを含んでいてもよい。このようにして、ボリュームの補足VSTの論理ボリューム・エクステントとランク・エクステント内のオフセット位置との間に、直接的な対応が確立され得る。
【0064】
決定478に進むと、ここで、フローチャートは、既存のストレージ・プール内の全てのボリュームが変換されているか否かを判定することを含む。言い換えれば、決定478は、既存のストレージ・プール内の全てのボリュームが、新たに変換されたランクにマッピングされるように変換されているか否かを判定することを含む。少なくとも1つのボリュームがまだ変換されていないと判定したことに応答して、フローチャートはサブオペレーション470に戻る。そこでは、サブオペレーション470は、まだ変換されていない次のボリュームに進むことを含み、それゆえに例えば、図4Cに図説されたサブプロセスをそのボリュームについて繰り返すことがある。しかし、既存のストレージ・プール内の全てのボリュームが、より大きなランク・エクステント・サイズに従って変換されていることを決定することに応答して、フローチャートは、図4Aのオペレーション410に進む。
【0065】
再び図4Aに戻って、全てのランクおよびボリュームが変換された後にフローチャートはオペレーション410に進み、これにより、方法400が終了することができる。したがって、ストレージ・プールは、オペレーション410への到達に応答して、既存の小容量エクステント・ストレージ・プールから目的の大容量エクステント・ストレージ・プールに有効に変換されているものと結論することができる。しかし、方法400がオペレーション410に到達すると終了することができるとはいえ、別のストレージ・プールを変換するために、方法400に含まれるいずれか1つまたは複数のプロセスを繰り返すことができることに留意するべきである。言い換えれば、別の既存の小容量エクステント・ストレージ・プールを目的の大容量エクステント・ストレージ・プールにインプレースで変換するために、方法400に含まれるプロセスのうちいずれか1つまたは複数を繰り返してもよい。
【0066】
したがって、図4A図4Cに含まれる様々なプロセスおよびサブプロセスは、データがインプレースで留まる間に、データ・ストレージ・プール内のランクのエクステント・サイズを変換することができることになる。このプロセスが、ランク・エクステント・サイズへの実際の変更が起こり得る前にデータのいくつかを並べ替えることを含まない一方で、データは、変換が実行されている間に所与のストレージ・プール内に位置したままであり、それによって、オペレーション効率を大幅に増加し、データ・ストレージの消費を低減し、パフォーマンスの遅延を減少させ、ネットワーク・トラフィック(例えば、データを移行させることに起因する)を低減する。これらの改善点は、ボリュームの特性がこれらの様々なプロセスおよびサブプロセスによってボリュームおよびランクのレイアウトをより大きなエクステント・サイズに変換することを可能にする、という事実に(少なくとも部分的に)起因して達成される。上述のように、RSTテーブルおよびVSTテーブルの特性は、他のストレージ・プールまたは機械へのデータの移行が含まれないようにこれが達成されることを可能にする。
【0067】
図5をここで少し参照すると、ストレージ環境500が一アプローチに従って示されている。オプションとして、今示しているストレージ環境500は、図4A図4Cなどの他の図を参照して記載されたものなど、本明細書に挙げられた任意の他のアプローチからの特徴と関連して実装されてもよい。しかし、このようなストレージ環境500および本明細書に提示される他のものは、本明細書に挙げられた例証となるアプローチにおいて具体的に記載されることもされないこともある様々な用途でもしくは置換でまたはその両方で使用されてもよい。さらに、本明細書に提示されるストレージ環境500は、任意の所望の環境で使用することができる。したがって、図5(および他の図)は、任意の可能な置換を含むものと考えることができる。
【0068】
示されるように、VST 502は、ボリューム0 504内に格納されたデータの論理表現を格納する。さらに、1つまたは複数のRSTは、既存のストレージ・プール0 526のランク3 524内に格納されたデータの物理的表現を格納する。また、既存のストレージ・プール0 526のランク粒度は、本アプローチに従って16MBであることに留意するべきである。例えば、既存のストレージ・プール0 526内の各ランク・エクステントは、約16MBのサイズを有する。しかし、これらのランク・エクステントは、約16MBから約1GBのサイズに、例えば本明細書に含まれる任意の1つまたは複数のアプローチ(例えば、上記図4A図4C参照)を使用して、変換されてもよい。
【0069】
さらに図5を参照すると、フル・ボリューム・エクステントVSTエントリ532および534とは、データが既存のストレージ・プール0 526に物理的に格納されているRST内の位置530A~530Bを指す。例えば、既存のストレージ・プール0 526のランク3 524のランク・エクステント0 530Aは、ボリューム0 504内のVSTエントリ0 532へのリンクを含む。逆に、ボリューム0 504内のVSTエントリ0 532は、既存のストレージ・プール0 526のランク3 524のランク・エクステント0 530Aへのリンクを含む。
【0070】
同様に、既存のストレージ・プール0 526のランク3 524のランク・エクステント64 530Bは、ボリューム0 504内のVSTエントリ2 534へのリンクを含む。逆に、ボリューム0 504内のVSTエントリ2 534は、既存のストレージ・プール0 526のランク3 524のランク・エクステント64 530Bへのリンクを含む。このようにして、ボリューム0 504内のデータの論理表現間の接続は、既存のストレージ・プール0 526内のデータの物理的表現にマッピングされる。
【0071】
さらにまた、ストレージ製品中のエクステント・プールは、異なるエクステント・サイズを有するものとしてよい。例えば、DS8000データ・ストレージ・プラットフォームは、より大きなサイズのプールのための1GBエクステント・サイズと、より小さなサイズのプールのための16MBエクステント・サイズとを実装することができる。さらに、前述したように、一部の作業負荷は、小さなプールを用いてより良好に実行し、一方で、他の作業負荷は、大容量エクステント・プールにおいてより良好に実行する。したがって、本明細書に含まれる様々なアプローチは、所与のプール内で実装されるエクステント・サイズを調整することによって、パフォーマンスを向上するために使用されてもよい。
【0072】
本発明を限定することを全く意図していない使用例によれば、RSTは、ランク・エクステントの状態を記述するランク(アレイ)のマッピング・テーブルとして、および物理ランク・エクステントの属する論理ボリューム・エクステントとして使用される。例えば、ランク「rO」が1Tであり、エクステント・サイズが1Gであるとすると、このRSTテーブルは1024個のエントリを有し、各エントリは1つの物理的エクステントを表す。ランク・エクステント0がボリューム0×1010の論理エクステント1に割り当てられた場合、RST内のエントリは、物理エクステント状態が割り当てられていることを標示する情報を有するものとなり、ボリューム0×1010の論理エクステント1に割り当てられる。
【0073】
さらに、VSTは、ボリュームの論理エクステントをランクの物理的エクステントにマッピングするボリュームについてのマッピング・テーブルとして使用され、それゆえに例えば、本記載を読んだ後に当業者に理解されるように、ボリュームLBA境界上にあるホストI/Oが到着すると、物理的位置を容易に識別することができる。
【0074】
さらに、例証となるアプローチでは、小さなVST(smVST)は、エントリ・マップを含む64個のエントリを含むボリュームについてのマッピング・テーブルとして使用されてもよく、各エントリ・マップは、ランクの物理的エクステントに小さな論理エクステント(16MB)をマップし、それゆえに、ボリュームLBA境界上にあるホストI/Oが到着した際に物理的位置を識別することができる。さらにまた、一アプローチでは、RSTのみがディスク内で持続的であり、VSTは、RSTに基づきオンデマンドでメモリに内蔵およびロードされる。
【0075】
本明細書に含まれる複数のアプローチが、より小さなエクステント・サイズを有するストレージ・プールを、(少なくとも上記のより小さなエクステント・サイズに比べて)より大きなエクステント・サイズを有するストレージ・プールに変換することができる一方で、本明細書の他のアプローチは、より大きなエクステント・サイズを有するストレージ・プールを、より小さなエクステント・サイズを有するストレージ・プールに変換することができる。上述のように、所与のストレージ・プールにより実装されたエクステント・サイズを変換する従来のプロセスは、パフォーマンスの遅延、リソースの消費などの点で非効率的であることが実証されている。例えば、ストレージ・プール内のエクステントのサイズを変換するための従来のプロセスは、そのエクステント・サイズにいかなる変更を加え得る前でも、データを既存のストレージ・プールから完全に離して別の物理的ストレージ・プールに移行させることを必要とする。この従来のデータ移行のプロセスは、すべてのデータを代替の記憶媒体などに物理的にコピーするために、追加のストレージ・リソース、処理帯域幅、時間を必要とするため、望ましくない。したがって、ストレージ・プール内のエクステントのサイズを効率的に変換することができるプロセスが望まれている。
【0076】
これらの従来の欠点とは著しく対照的に、本明細書に含まれるアプローチの様々なものは、データがインプレースで留まる間に、データ・ストレージ・プール内のランクのエクステント・サイズを変換することができることが望ましい。具体的には、本明細書に含まれる一部のアプローチは、所与のストレージ・プールにより実装されたエクステント・サイズを増加させ、それによってオペレーション効率を、例えば下記にさらに詳細に記載されるように、大幅に増加させることができる。
【0077】
次に、図6Aを参照すると、一アプローチによる、より大きなエクステント・サイズを有する既存のストレージ・プールをより小さなエクステント・サイズを有する目的のストレージ・プールにインプレースで変換するための方法600のフローチャートが示されている。方法600は、様々なアプローチで、とりわけ図1図5に示されるいずれの環境においても、本発明に従って実施することができる。言うまでもなく、図6Aに具体的に記載されものよりも多いかまたは少ないオペレーションが、本願記載を読めば当業者に理解されるように、方法600に含まれることがある。
【0078】
方法600の各ステップは、動作環境の任意の適切な構成要素によって実行されてもよい。例えば、様々なアプローチでは、方法600は、部分的にまたは完全に、コントローラ、プロセッサ、コンピュータなど、または、1つもしくは複数のプロセッサを内部に有する他の装置によって実行されてもよい。したがって、いくつかのアプローチでは、方法600は、コンピュータ実装方法であってもよい。さらに、コンピュータ、プロセッサ、およびコントローラという用語は、本明細書のアプローチのいずれかに関して互換的に使用されてもよく、そのような構成要素は、本発明の多くの多様な並べ替えにおいて同等であると考えられる。
【0079】
さらに、プロセッサを有するこれらのアプローチについて、プロセッサ、例えば、ハードウェアもしくはソフトウェアまたはその両方で実装される処理回路、チップ、もしくはモジュール、またはそれらの組合せを有し、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサは、方法600の1つまたは複数のステップを実行するために任意のデバイスにおいて利用され得る。例証となるプロセッサは、以下に限定されないが、中央処理ユニット(CPU)、アプリケーション特定集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野に公知の任意の他の適切なコンピューティング・デバイスを含む。
【0080】
図6Aに示すように、方法600のオペレーション602は、第1のエクステント・サイズを有する既存のストレージ・プールを、第2のエクステント・サイズを有する目的のストレージ・プールに変換する要求を識別することを含む。上述のように、本アプローチでは、既存のストレージ・プールに対応する第1のエクステント・サイズは、目的のストレージ・プールに対応する第2のエクステント・サイズよりも大きい。そのため、本願記載について、「第1のエクステント・サイズ」は、「第2のエクステント・サイズ」よりも比較的大きい。例えば、既存のストレージ・プール構成は、それぞれ約1GBのサイズを有するエクステントを有することがあり、一方、目的のストレージ・プール構成は、それぞれ約16MBのサイズを有するエクステントを有する。やはり、所与のエクステント・サイズを実装する環境において、一部の作業負荷が大幅に改善され得る。例として、一部の作業負荷は、より大きなエクステントを有するストレージ・プールを用いた実行と比較して、より小さなエクステントを有するストレージ・プールを用いるとはるかにより良好に実行する。ゆえに、所与のストレージ・プールのエクステント・サイズを変換する要求は、新たに開始された作業負荷に応答して実行中のアプリケーションから受け取られたり、エクステント・サイズに関する評価システムのパフォーマンスに応答してユーザから受け取られたりするなどとしてよい。
【0081】
用語「既存のストレージ・プール」および「目的のストレージ・プール」は、実際には、同じストレージ・プールの異なる構成を指すことに留意されたい。言い換えれば、用語「既存ストレージ・プール」は、ストレージ・プールの既存の状態(例えば、より大きなランク・エクステント・サイズ)を参照することを意図しており、「目的のストレージ・プール」は、同じストレージ・プールの計画された目標状態(例えば、より小さなランク・エクステント・サイズ)を指すことを意図している。
【0082】
当業者に理解されるように、例示的なストレージ・プールの論理構成は、物理的ストレージを含むランク(RAIDアレイ)と、物理的ストレージを論理的な連続するストレージ(例えば、論理ユニット数など)のホスト・アドレス可能範囲にマッピングするボリュームとを含む。ランクは、ランク・セグメント(エクステント)テーブル(RST)を含み、一方でボリュームは、ボリューム・セグメント(エクステント)テーブル(VST)を含む。これらのテーブルは、ランク上で異なる物理エクステントを個々のボリュームに対応するエクステントへマッピングすることを、少なくとも部分的に制御する(例えば、上記図5を参照)。
【0083】
図6Aをそのまま参照すると、オペレーション604は、既存のストレージ・プール内の第1のボリュームに進むことを含み、一方で、オペレーション606は、所与のボリュームに対応するボリューム・セグメント・テーブル(VST)エントリに対して一時停止/ロックを実行することを含む。本願記載によれば、「第1のボリューム」は、既存のストレージ・プール内に任意のボリュームを含んでいてもよい。例として、アプローチに応じて、第1のボリュームは、既存のストレージ・プール内のボリューム、ユーザにより予め決定されたボリュームなどの間の比較に基づき、無作為に識別されてもよい。すぐに明らかになるように、既存のストレージ・プール内の各ボリュームが好ましくは評価され、それゆえに、方法600がボリュームを通して進む順番は、一部のアプローチにおいて結果として得られるストレージ・プールに影響を及ぼさない。
【0084】
VSTエントリに対して一時停止/ロックを実行することは、所与のVSTもしくは関連付けられたボリュームまたはその両方へのアクセスを効果的に防ぎ、それゆえにエラーを何も被ることなく調整が行われ得る。VSTエントリに対する一時停止/ロックを実行するプロセスは、一部のアプローチで問題になっているVSTエントリに関連付けられた可能なスレッドのそれぞれをチェックすることを含む。他のアプローチでは、一時停止/ロックは、フラグを設定することやエントリに関連付けられたアドレスを向こうにすることなどによって、または本願記載を読んだ後に当業者に明らかとなる他の任意のプロセスによって、所与のVSTエントリに対して実行されてもよい。
【0085】
方法600はさらに、VSTエントリに関連付けられた既存の物理的エクステントを変更するVSTエントリに新しい構造を適用することを含む。オペレーション608を参照されたい。好ましくは、VSTエントリに適用される(例えばはめ込まれる)この新しい構造は、VSTエントリに関連付けられた既存の物理的エクステントを2つ以上のより小さな物理的エクステントに分割する。言い換えれば、新しいVSTエントリは、新しい物理的エクステントとそれに対応するレファレンスを効果的に作成する。
【0086】
これらのより小さな物理的エクステントは、好ましくは、目的のストレージ・プールのより小さな第2のランク・サイズに対応するように形成される。言い換えれば、VSTエントリに適用される新しい構造は、好ましくは、目的のストレージ・プールの特徴に対応する複数のより小さなエクステントに既存の物理的エクステントを分割するように構成される。本発明を限定することを全く意図されていない例示的なアプローチによれば、VSTエントリに関連付けられた各物理的エクステントは、新しい構造を適用する前に約1ギガバイトのサイズを有することがある。しかし、新しい構造の適用に応答して、VSTエントリに適用された新しい構造に関連付けられている変更された物理的エクステントのそれぞれは、約16メガバイトのサイズを有することがあり、尤も、それは所望のアプローチに応じて、より高いこともより低いこともある。
【0087】
好ましくは、より小さな物理的エクステントはまた、パディングを含むことなく目的のストレージ・プールのエクステント間の境界と整合する。言い換えれば、より小さな物理的エクステントがエクステント間の境界を越えて広がらないように、より小さな物理的エクステントは既存の物理的エクステントから形成される。また、新しい構造を適用し新しい(より小さな)物理的エクステントを形成するプロセスは、例えば本願記載を読んだ後に当業者に理解されるように、エクステントの再付番を実行すること、もしくはその中にオフセットを確立すること、またはその両方を含んでいてもよい。
【0088】
オペレーション608から、方法600は、既存のストレージ・プール内の全てのボリュームが評価されているか否かを決定することを含む決定610に進む。既存のストレージ・プール内の少なくとも1つのボリュームが未だに評価されていないと決定することに応答して、方法600はオペレーション612に進む。そこでは、オペレーション612は、次のボリュームに対して一時停止/ロックが実行されるように、オペレーション606に戻る前に既存のストレージ・プール内の次のボリュームに進むことを含む。したがって、プロセス606~612は、既存のストレージ・プール内の全てのボリュームについて反復する方式で繰り返されてもよい。
【0089】
決定610に戻ると、既存のストレージ・プール内の全てのボリュームが評価されてその既存の物理的エクステントをより小さな物理的エクステントに分割して有することを決定することに応答して、方法はオペレーション614に跳ぶ。したがって、オペレーション614は、既存のストレージ・プール内の各ランクを、より大きな第1のエクステント・サイズからより小さな第2のエクステント・サイズに変換することを含む。言い換えれば、オペレーション614は、既存のストレージ・プール内の各ランクのサイズを、目的のストレージ・プールに関連付けられた目的のランク・サイズに低減することを含む。好適なアプローチでは、既存のストレージ・プールの各ランクは、あるランクから次のランクへと進行することによって順次変換されるが、本発明を限定することを全く意図するものではない。例えば、いくつかのアプローチでは、2以上のランクのサイズを並行して減少させてもよい。
【0090】
本明細書に述べるように、データ移行を行わずに所定のランクのサイズを減少させるプロセスが望ましい。少し図6Bを参照すると、例証となるアプローチに従って、既存のストレージ・プールの各ランクをより大きな第1のランク・エクステント・サイズからより小さな第2のランク・エクステント・サイズに変換する例示的なサブプロセスが図示されている。したがって、図6Bに含まれる任意の1つまたは複数のサブプロセスは、図6Aのオペレーション614を実行するために用いられることになる。しかし、図6Bのサブプロセスは、本発明を限定することを全く意図していない一アプローチに従って図示されていることに留意されたい。
【0091】
示されるように、サブオペレーション650は、既存のストレージ・プール内のランクに進むことを含む。例えば、図6Bのサブプロセスの第1の反復は、ストレージ・プール内の第1のランクに進むことを含んでいてもよく、一方、図6Bのサブプロセスの後続の反復は、ストレージ・プール内の後続のランクに進むことを含んでもよい。上述のように、図6Bのサブプロセスは、ストレージ・プール内のランクのそれぞれについて反復的に繰り返されてもよい。
【0092】
データをインプレースで維持しながらランクを変換するために、含むようにそのボリュームを変換されているより小さなエクステント・レイアウトにマッピングするための新たなテーブルを作成する(例えば、上記オペレーション608を参照)。したがって、サブオペレーション652は、サブプロセス650において識別された所与のランクのための新しいRSTスペースもしくはエントリまたはその両方を割り当てることを含む。上述のように、この新たに割り当てられたRSTスペースもしくはエントリまたはその両方は、より小さな目的のエクステント・サイズに対応し、それゆえに、そこに格納されたデータを移行させる必要なく、所与のエクステントのサイズを変換するプロセスで使用されてもよい。例えば、新たに割り当てられたRSTスペースもしくはエントリまたはその両方には、以前のより大きなエクステントから形成されているボリューム内のデータの論理位置が投入されてもよい。いくつかのアプローチによれば、これは、データが論理的に格納されるボリューム内のボリュームおよびボリューム・エクステントを識別することによって、達成されることがある。
【0093】
好適なアプローチでは、RSTは、1対1ベースのエクステント方式で構成されることにも留意されたい。言い換えれば、各RSTエントリは、所与のサイズのランク・エクステントに対応し、対応するボリューム・エクステントを指し示す。例えば、いくつかのアプローチでは、所与のランク内のエクステントは、ランクのためのRSTエントリとして表され、各ランク・エクステントは、ストレージ・プール内のデータを格納するための所定量のストレージを表す。さらに、新しいRSTスペースを割り当てるプロセスは、本願記載を読んだ後に当業者には明らかとなる任意のプロセスを用いて実行されてもよい。
【0094】
図6Bを継続して参照すると、サブオペレーション654は、所与のランクについての全てのエクステント変更アクティビティを休止することを含む。これにより、所定のランクを変換することができるとともに、その中に含まれるエクステントは一時的に留まったままとなり、それによって、当業者に理解されるように、いかなるエラーも回避することができる。なお、エクステント変更アクティビティは、所与のランクについては休止されるが、ストレージ・プール内に留まるランクは、いくつかのアプローチでは影響を受けないことがあることに留意すべきである。これにより、目的のストレージ・プールを形成するために変換中にプールからデータを移行する必要性を回避することに加えて、各ランクのエクステント・サイズを体系的に変換しながら、全体的なストレージ・プールが稼働し続けることが可能になる。
【0095】
このフローチャートは、さらにサブオペレーション656に進むが、このサブオペレーションは、新しい割り当てられたRSTスペースに、第2のエクステント・サイズに対応する新しいエントリを投入することを含む。言い換えれば、サブオペレーション656は、サブオペレーション652内に形成された新しいRSTエントリを投入して、より大きなボリューム・エクステントを有する対応のVSTエントリに新しい構造を適用した結果として形成されたより小さなボリューム・エクステント指し示すことを含む。いくつかのアプローチによれば、(例えば、参照番号を用いて)関連するボリューム・エクステントを参照する1つまたは複数のポインタを用いて、新たに割り当てられたRSTスペースを投入することができる。しかし、所望のプロセスは、例えば、所望のアプローチに応じて実装されてもよい。
【0096】
サブオペレーション658は、所与のランクに対応する既存のRSTエントリに対して一時停止/ロックを実行することをさらに含み、一方、サブオペレーション660は、サブオペレーション652内に形成された新たなRSTエントリを活性化することを含む。これにより、サブオペレーション658および660は、新たに割り当てられたRSTエントリに、既存の(例えば、以前の)RSTエントリから円滑に遷移することができる。いくつかのアプローチによれば、既存のRSTエントリに対して一時停止/ロックを実行することは、新たに割り当てられたRSTエントリを使用してフローチャートが実際に遷移可能になる前に、全ての可能なスレッドを検査することを含んでいてもよい。
【0097】
新たに割り当てられたRSTエントリを活性化することに応答して、サブオペレーション662は、所与のランクについてのエクステント変更アクティビティを再開することを含む。サブオペレーション664は、追加的に、既存の(例えば、以前の)RSTエントリを所望の通りに再利用されることのあるように解放することを含む。例えば、いくつかのアプローチでは、既存のRSTエントリを解放することは、テーブル内のスペースを他のランクに関して使用されることのあるように解放することを含む。また、既存のRSTエントリ内に格納された任意の情報(例えばデータ、メタデータなど)は、削除されてもよい。
【0098】
決定666に進むと、ここで、フローチャートは、既存のストレージ・プール内の全てのランクが、より小さなランク・エクステント・サイズを実装するように変換されているか否かを判定することを含む。言い換えれば、決定666は、既存のストレージ・プール内の全てのランクが評価されているか否かを判定することを含む。より大きなエクステント・サイズを実装するように既存のストレージ・プールの少なくとも1つのランクがまだ変換されていないと判定したことに応答して、フローチャートはサブオペレーション650に戻る。そこでは、サブオペレーション650は、まだ変換されていない次のランクに進むことを含み、それゆえに例えば、図6Bに図説されたサブプロセスをそのランクについて繰り返すことがある。
【0099】
しかし、既存のストレージ・プール内の全てのランクが、より小さなエクステント・サイズを実装するように変換されていることを決定することに応答して、フローチャートは、図6Aのオペレーション616に進み、それによって方法600が終了してもよい。したがって、ストレージ・プールは、オペレーション410への到達に応答して、既存の大容量エクステント・ストレージ・プールから目的の小容量エクステント・ストレージ・プールに有効に変換されているものと結論することができる。しかし、方法600がオペレーション616に到達すると終了することができるとはいえ、別のストレージ・プールを変換するために、方法600に含まれるいずれか1つまたは複数のプロセスを繰り返すことができることに留意するべきである。言い換えれば、別の既存の小容量エクステント・ストレージ・プールを目的の大容量エクステント・ストレージ・プールにインプレースで変換するために、方法600に含まれるプロセスのうちいずれか1つまたは複数を繰り返してもよい。
【0100】
したがって、図6A図6Bに含まれる様々なプロセスおよびサブプロセスは、データがインプレースで留まる間に、データ・ストレージ・プール内のランクのエクステント・サイズを変換することができることになる。これにより、包括的なデータ・システムについて大幅な改善、例えばオペレーション効率の増加、データ・ストレージの消費の低減、パフォーマンスの遅延の減少、ネットワーク・トラフィック(例えば、その他データの移行に由来するもの)の低減などを達成することが可能になる。これらの改善点は、ボリュームの特性がこれらの様々なプロセスおよびサブプロセスによってボリュームおよびランクのレイアウトをより小さなエクステント・サイズにインプレースで変換することを可能にする、という事実に(少なくとも部分的に)起因して達成される。繰り返しになるが、RSTまたはVSTまたはその両方の特性は、他のストレージ・プールまたは機械へのデータの移行が含まれないように、テーブルを用いてこれが達成されることを可能にする。
【0101】
さらにまた、ストレージ製品におけるエクステント・プールは、異なるエクステント・サイズを実装することができる。さらに、一部の作業負荷は、大容量エクステント・ストレージ・プールでの実行と比較すると、小容量エクステント・ストレージ・プールではより良好に(例えば、より効率的に)実行することができる。したがって、特定のエクステント・サイズが、所与のストレージ・プールのためにクライアントによって選択されても、時間が経過すると要因が変化し、それゆえに、異なるエクステント・サイズがパフォーマンス効率の観点からより望ましくなるものとなる。例えば、いくつかの状況では、ストレージ・システムは、より小さなエクステント・サイズのストレージ・プールをより大きなエクステント・サイズのストレージ・プールに変換することが望ましいほどに、物理的ストレージに対する需要の増加を受けることがある。したがって、本明細書に含まれる一部のアプローチは、そこに格納されたデータの物理的な移行を実行することなくストレージ・プールによりインプレースで実装されるエクステント・サイズを効率的に調整するために実装されてもよい。
【0102】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、もしくはコンピュータ・プログラム製品、またはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を行わせるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含んでいてもよい。
【0103】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、以下に限定されないが、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適した組合せとしてよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的な一覧としては、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能なプログラム可能な読出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル汎用ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、機械的に符号化されたデバイス、例えば、命令を上に記録したパンチ・カードまたは溝内の隆起構造など、および前述の任意の適切な組合せが挙げられる。コンピュータ可読記憶媒体は、本明細書で使用される際に、それ自体が電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体(例えば、光ファイバ・ケーブルを通る光パルス)を伝搬する電磁波、またはワイヤを介して伝送される電気信号などの一時的な信号であるものと解釈されるべきではない。
【0104】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各演算/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組合せを介して外部コンピュータまたは外部記憶装置に、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはそれらの組合せを含むことができる。各演算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、各演算/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を送る。
【0105】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかとしてよく、プログラミング言語としては、Smalltalk、C++などのオブジェクト指向プログラミング言語と、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語が挙げられる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上に部分的に、またはリモート・コンピュータ上で部分的にもしくはリモート・コンピュータ上で全体的に、実行してもよい。後者のシナリオでは、リモート・コンピュータが、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されていてもよいし、または接続が、外部コンピュータに(例えば、インターネットサービスプロバイダを用いてインターネットを介して)なされていてもよい。いくつかの実施形態では、例えば、プログラム可能なロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラム可能なロジックアレイ(PLA)を含めた電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報によって、コンピュータ可読プログラム命令を実行してもよい。
【0106】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0107】
これらのコンピュータ可読プログラム命令は、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装する手段を生成するように、機械を生成し得る。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、もしくは他のデバイス、またはそれらの組合せを特定の方法で機能させることのできるコンピュータ可読記憶媒体に格納されてもよく、ゆえに、命令を中に格納したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む、製品を含み得る。
【0108】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実施させて、コンピュータ実装プロセスを生じる。
【0109】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施形態のアーキテクチャ、機能性、および動作を説明する。この点に関して、フローチャートまたはブロック図の各ブロックは、指定されたロジック機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことがある。いくつかの代替的な実施形態では、ブロックに記載された機能は、図に記載された順序の外に生じ得る。例えば、連続して示される2つのブロックが、実際には、1ステップで達成されてもよいし、同時に、実質的に同時に、部分的にもしくは全体的に一時的に重複して実行されてもよいし、またはブロックが、関与する機能性に応じて、逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、ならびにブロック図もしくはフローチャート図またはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェアとコンピュータ命令との組合せを実施する、専用ハードウェアベースのシステムによって実装できることに留意されたい。
【0110】
さらに、様々な実施形態によるシステムが、プロセッサと、プロセッサに統合されているか、プロセッサにより実行可能であるか、またはプロセッサに統合されかつプロセッサにより実行可能である、ロジックとを含み、ロジックが、本明細書に記載のプロセスのステップのうちの1つまたは複数を実行するように構成されているものとしてよい。このプロセッサは、処理ハードウェア、メモリ、I/Oインターフェースなどの多くの構成要素を含む離散的なプロセッサまたは処理回路などの、本明細書に記載された任意の構成のものとしてよい。統合されるというのが意味するところは、プロセッサが、アプリケーション固有の集積回路(ASIC)やFPGAなどのハードウェア・ロジックとして、中に埋め込まれたロジックを有するということである。プロセッサにより実行可能であるというのが意味するところは、ロジックがハードウェア・ロジックであること、ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などソフトウェア・ロジックであること、またはプロセッサによりアクセス可能であり、プロセッサにより実行されるとプロセッサにいくつかの機能性を実行させるように構成された、ハードウェア・ロジックとソフトウェア・ロジックとのいくつかの組合せであることである。ソフトウェア・ロジックは、当技術分野に公知であるように、任意のメモリタイプのローカルもしくはリモートまたはその両方のメモリ上に格納されてもよい。ソフトウェア・プロセッサ・モジュールもしくはASIC、FPGA、中央処理ユニット(CPU)、集積回路(IC)、グラフィックス処理ユニット(GPU)などのハードウェア・プロセッサ、またはその両方など、当技術分野で公知の任意のプロセッサを使用することができる。
【0111】
上述のシステムもしくは方法論またはその両方の様々な特徴は、任意の方法で組み合わされてもよく、上記の記載から複数の組合せを作り出すことが明らかになろう。
【0112】
さらに、本発明の実施形態は、需要に対しサービスを提供するために顧客の代わりに配備されたサービスの形態で提供できることが理解されよう。
【0113】
本発明の様々な実施形態の説明が、例示のために提示されてきたが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実用的な適用、もしくは市場で発見された技術を超える技術的な改善を最も良く説明するために、または本明細書に開示された実施形態を他の当業者が理解することを可能にするように選択されたものである。
図1
図2
図3
図4A
図4B
図4C
図5
図6A
図6B
図6C