JP7116381B2 - クラウド・ベースのランクを使用するデータの動的再配置 - Google Patents

クラウド・ベースのランクを使用するデータの動的再配置 Download PDF

Info

Publication number
JP7116381B2
JP7116381B2 JP2020514287A JP2020514287A JP7116381B2 JP 7116381 B2 JP7116381 B2 JP 7116381B2 JP 2020514287 A JP2020514287 A JP 2020514287A JP 2020514287 A JP2020514287 A JP 2020514287A JP 7116381 B2 JP7116381 B2 JP 7116381B2
Authority
JP
Japan
Prior art keywords
cloud
data
storage
ranks
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020514287A
Other languages
English (en)
Other versions
JP2020533694A (ja
JP2020533694A5 (ja
Inventor
グプタ、ローケーシュ
ボーリック、マシュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2020533694A publication Critical patent/JP2020533694A/ja
Publication of JP2020533694A5 publication Critical patent/JP2020533694A5/ja
Application granted granted Critical
Publication of JP7116381B2 publication Critical patent/JP7116381B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

クラウド・ベースのランクを使用するデータの動的再配置を実現するためのコンピュータ実装方法に関する。
ストレージ・エリア・ネットワーク(SAN:storage area networks)などのストレージ・ネットワークは、さまざまなタイプのデータ・ストレージ・システムをさまざまなタイプのサーバ(本明細書では「ホスト・システム」とも呼ばれる)と相互接続するために使用される。一部のサーバは、データ・ストレージ媒体、ストレージ・コントローラ、メモリ、および付随する電力システム、冷却システムなどの、さまざまなハードウェアを含む。
ストレージ・コントローラは、読み取り要求および書き込み要求に応答して、データ・ストレージ媒体およびメモリへのアクセスを制御する。ストレージ・コントローラは、RAID(redundant array of independent disks:新磁気ディスク制御機構)、JBOD(just a bunch of disks:単純ディスク束)、ならびにその他の冗長性およびセキュリティ・レベルなどのデータ・ストレージ・デバイスに従って、データを管理することができる。一例として、DS8000シリーズなどのIBM(R)ESS(Enterprise Storage Server)は、コンピュータの実体、キャッシュ、不揮発性ストレージなどの冗長なクラスタを含む。
クラウド・ベースのランクを使用するデータの動的再配置を提供する。
本発明の態様は、クラウド・ベースのランクを使用するデータの動的再配置のためのコンピュータ実装方法、コンピュータ・プログラム製品、コンピューティング・デバイス、およびシステムを含んでよい。本発明を具現化する例示的な方法は、エンタープライズ・ストレージ・システムの複数のローカル・ランクに格納されたデータへのアクセスを監視することと、監視されたアクセスに基づいて、既定の時間の間アクセスされていないデータを識別することと、既定の時間の間アクセスされていないデータをエンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのランクに移動することとを含み、各クラウド・ベースのランクが、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含み、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間が、仮想ローカル・ランクとしてグループ化された対応する仮想ローカル・アドレスにマッピングされる。
上記の概要は、本発明の各実施形態例もすべての実装も説明するよう意図されていない。
各図面が、本発明の実施形態例のみを表しており、したがって、範囲の制限と見なされるべきではないということを理解して、添付の図面を使用することによって、追加の特殊性および詳細と共に、本発明の実施形態例が説明される。
例示的なネットワーク環境を示す上位のブロック図である。 例示的なストレージ・システムを示す上位のブロック図である。 例示的なデバイス・アダプタのブロック図である。 データの動的再配置の例示的な方法を示すフローチャートである。
慣行に従って、説明されるさまざまな特徴は一定の縮尺で描かれておらず、本発明の実施形態例に関連する特定の特徴を強調するように描かれている。
以下の詳細な説明では、本明細書の一部を形成する添付の図面に対する参照が行われ、その参照において、本発明の特定の例示的な実施形態が、例として示される。ただし、本発明のその他の実施形態が利用されてよく、論理的変更、機械的変更、および電気的変更が行われてよいということが、理解されるべきである。さらに、図面および本明細書において提示される方法は、個別のステップが実行される順序を制限すると解釈されるべきではない。したがって、以下の詳細な説明は、限定する意味で受け取られるべきではない。
本明細書において使用されるとき、「少なくとも1つ」、「1つまたは複数」、および「~または~あるいはその組み合わせ」という語句は、動作中の結合および分離の両方である無制限の表現である。例えば、「A、B、およびCのうちの少なくとも1つ」、「A、B、またはCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、「A、B、またはCのうちの1つまたは複数」、および「A、B、またはC、あるいはその組み合わせ」という表現の各々は、A単独、B単独、C単独、AおよびBの組み合わせ、AおよびCの組み合わせ、BおよびCの組み合わせ、またはA、B、およびCの組み合わせを意味する。さらに、「1つ(a)」または「1つ(an)」の実体という用語は、その実態のうちの1つまたは複数のことを指す。そのため、「1つ(a)」(または「1つ(an)」)、「1つまたは複数」、および「少なくとも1つ」という用語は、本明細書では交換可能なように使用され得る。「備えている」、「含んでいる」、および「有している」という用語が交換可能なように使用され得るということにも注意するべきである。「自動的」およびその変形の用語は、本明細書において使用されるとき、プロセスまたは動作が実行されるときに、具体的な人間の入力なしで実行される、任意のプロセスまたは動作のことを指す。人間の入力は、そのような入力が、プロセスまたは動作の実行方法または実行のタイミングを指示または制御する場合に、具体的であると見なされる。人間の入力を使用するプロセスは、その入力が、プロセスの実行方法または実行のタイミングを指示することも制御することも行わない場合、まだ自動的であると見なされる。
「決定する」、「算出する」、および「計算する」という用語、ならびにその変形は、本明細書において使用されるとき、交換可能なように使用され、任意の種類の方法、プロセス、数学演算、または手法を含む。以下では、「通信する」または「通信によって結合される」は、無線または有線に関わらず、任意の電気接続を意味するものとし、2つ以上のシステム、コンポーネント、モジュール、デバイスなどが、任意のプロトコルまたは形式を使用してデータ、信号、またはその他の情報を交換できるようにする。さらに、通信によって結合された2つのコンポーネントは、互いに直接結合される必要はなく、他の中間のコンポーネントまたはデバイスを介して一緒に結合されてもよい。
図1は、例示的なネットワーク・アーキテクチャ100を示す上位のブロック図である。ネットワーク・アーキテクチャ100は、制限ではなく、単に例として提示されている。実際、本明細書で開示されるシステムおよび方法は、図1に示されているネットワーク・アーキテクチャ100に加えて、多種多様な異なるネットワーク・アーキテクチャに適用可能であってよい。
図に示されているように、ネットワーク・アーキテクチャ100は、1つまたは複数のクライアントまたはクライアント・コンピュータ102-1…102-N(Nはクライアント・コンピュータの総数)、および1つまたは複数のホスト106-1…106-M(Mはホスト(本明細書では、「サーバ・コンピュータ」106、「ホスト・システム」106、または「ホスト・デバイス」106とも呼ばれる)の総数)を含む。図1には5つのクライアント102が示されているが、本発明の他の実施形態では、その他の数のクライアント102が使用され得るということが、理解されるべきである。例えば、一部の実施形態では、1つのクライアント102のみが実装される。本発明の他の実施形態では、5つより多いクライアント102または少ないクライアント102が使用される。同様に、図1には4つのホスト106が示されているが、任意の適切な数のホスト106が使用され得るということが、理解されるべきである。例えば、本発明の一部の実施形態では、1つのホスト106のみが使用される。本発明の他の実施形態では、4つより多いストレージ・ホスト106または少ないストレージ・ホスト106が使用され得る。
クライアント・コンピュータ102の各々は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップまたはノートブック・コンピュータ、ネットブック、タブレット・コンピュータ、ポケット・コンピュータ、スマートフォン、あるいは任意のその他の適切な種類の電子デバイスとして実装され得る。同様に、ホスト106の各々は、任意の適切なホスト・コンピュータまたはサーバを使用して実装され得る。そのようなサーバは、IBM System z(R)およびIBM System i(R)サーバに加えて、UNIX(R)サーバ、Microsoft Windows(R)サーバ、およびLinuxプラットフォームを含むことができるが、これらに限定されない。
クライアント・コンピュータ102は、ネットワーク104を介して、ホスト106に通信によって結合される。ネットワーク104の例としては、ローカル・エリア・ネットワーク(LAN:local-area-network)、広域ネットワーク(WAN:wide-area-network)、インターネット、イントラネットなどが挙げられる。一般に、クライアント・コンピュータ102は、通信セッションを開始し、一方、サーバ・コンピュータ106は、クライアント・コンピュータ102からの要求を待つ。本発明の特定の実施形態では、コンピュータ102またはサーバ106あるいはその両方は、1つまたは複数の内部または外部の直接取り付けられたストレージ・システム112(例えば、ハードディスク・ドライブ、半導体ドライブ、テープ・ドライブなどのアレイ)に、接続されてよい。これらのコンピュータ102、106、および直接取り付けられたストレージ・システム112は、ATA、SATA、SCSI、SAS、ファイバ・チャネルなどのプロトコルを使用して通信してよい。
ネットワーク・アーキテクチャ100は、本発明の特定の実施形態では、ストレージ・エリア・ネットワーク(SAN:storage-area-network)108またはLAN108(例えば、ネットワークに取り付けられたストレージを使用する場合)など、サーバ106の背後にストレージ・ネットワーク108を含んでよい。図1に示された例では、ネットワーク108は、サーバ106を1つまたは複数のストレージ・サブシステム110に接続する。説明の目的で、1つのストレージ・サブシステム110のみが示されているが、本発明の他の実施形態では2つ以上のストレージ・サブシステム110が使用され得るということが、理解されるべきである。ストレージ・サブシステム110は、ストレージ・デバイスのアレイ116への接続を管理する。ストレージ・デバイスのアレイ116は、ハードディスク・ドライブまたは半導体ドライブあるいはその両方のアレイを含むことができる。加えて、図1に示されている例では、下で詳細に説明されているように、ストレージ・サブシステム110が、クラウド・ストレージに接続し、クラウド・ストレージが高度なデータ管理機能を可能にするローカル・ストレージ・アレイのように見えるように、クラウド・ストレージからストレージ・アレイを作成するように構成される。
加えて、従来のシステムでは、コールド・データ(例えば、頻繁にアクセスされないデータ)が、相対的に遅いストレージ媒体(例えば、スピニング・ディスク)に配置され、より頻繁にアクセスされるデータが、より速い媒体(例えば、半導体ディスク)に配置されることがある。コールド・データとして分類されたデータが増加し、古くなったとき、従来のシステムは、より多くのディスク領域が必要になるまでコールド・データを放置し、その後、追加のストレージ空間が追加されるが、この追加は、非常に費用と時間がかかるプロセスになることがある。その後、コールド・データの量が減少した場合、必要な量より多いストレージ空間が存在することになる。エンタープライズ・ストレージ・システムにはローカル・ランクのように見えるクラウド・ベースのランクの作成を可能にすることによって、本明細書に記載された本発明の実施形態は、下で詳細に説明されているように、より効率的なデータの動的再配置を可能にする。具体的には、データ・アクセスに基づいて、データの追加のカテゴリが作成される。この追加のカテゴリは、長期間の間アクセスされていないデータを含むように定義される。その後、この新しいデータのカテゴリは、下で詳細に説明されているように、クラウド・ベースのランクに移動または再配置され得る。このようにして、新しいランク(すなわち、クラウド・ベースのランク)を必要に応じて作成し、不要になったときに削除することができ、これによって、通常はリモート・ストレージに使用できない高度な管理機能を可能にしたままで、相対的に高速なローカル・ランクの空間を節約する。
ストレージ・サブシステム110にアクセスするために、ホスト・システム106は、ホスト106上の1つまたは複数のポートからストレージ・サブシステム110上の1つまたは複数のポートへの物理的接続を経由して通信してよい。接続は、スイッチ、ファブリック、直接接続などを介してよい。特定の実施形態では、サーバ106およびストレージ・サブシステム110は、ファイバ・チャネル(FC:Fibre Channel)またはiSCSIなどのネットワーク規格を使用して通信してよい。
図2は、ストレージ・システム200の上位のブロック図である。ストレージ・システム200は、ストレージ・ドライブ(例えば、ハードディスク・ドライブまたは半導体ドライブあるいはその両方)の1つまたは複数のアレイを含んでいる。図に示されているように、ストレージ・システム200は、ストレージ・サブシステム210と、複数のスイッチ220と、ハード・ディスク・ドライブまたは半導体ドライブ(フラッシュメモリベースのドライブなど)あるいはその両方などの複数のストレージ・ドライブ216とを含んでいる。ストレージ・サブシステム210は、1つまたは複数のホスト(例えば、オープン・システムまたはメインフレーム・サーバあるいはその両方)が、複数のストレージ・ドライブ216内のデータにアクセスできるようにしてよい。
本発明の一部の実施形態では、ストレージ・サブシステム210は、1つまたは複数のストレージ・コントローラ222を含んでいる。図2に示されている例では、ストレージ・サブシステムは、ストレージ・コントローラ222aおよびストレージ・コントローラ222bを含んでいる。説明の目的で、本明細書では2つのストレージ・コントローラ222のみが示されているが、本発明の他の実施形態では3つ以上のストレージ・コントローラが使用され得るということが、理解されるべきである。図2のストレージ・サブシステム210は、ストレージ・サブシステム210をホスト・デバイスおよびストレージ・ドライブ204にそれぞれ接続するために、ホスト・アダプタ224a、224b、およびデバイス・アダプタ226a、226bも含んでいる。複数のストレージ・コントローラ222a、222bは、データが接続されたホストで使用可能であることを保証するのに役立つ冗長性を実現する。したがって、1つのストレージ・コントローラ(例えば、ストレージ・コントローラ222a)が故障した場合、他のストレージ・コントローラ(例えば、222b)が故障したストレージ・コントローラのI/O負荷を受け取り、ホストとストレージ・ドライブ204の間でI/Oを継続できることを保証することができる。このプロセスは、「フェイルオーバー」と呼ばれることがある。
各ストレージ・コントローラ222は、1つまたは複数のプロセッサ228およびメモリ230をそれぞれ含むことができる。メモリ230は、揮発性メモリ(例えば、RAM)および不揮発性メモリ(例えば、ROM、EPROM、EEPROM、フラッシュ・メモリなど)を含むことができる。揮発性メモリおよび不揮発性メモリは、プロセッサ228上で実行され、ストレージ・ドライブ204内のデータにアクセスするために使用される、ソフトウェア・モジュールを格納することができる。ストレージ・コントローラ222は、これらのソフトウェア・モジュールのうちの少なくとも1つのインスタンスをホストすることができる。これらのソフトウェア・モジュールは、ストレージ・ドライブ204内の論理ボリュームに対するすべての読み取り要求および書き込み要求を管理することができる。
具体的には、各ストレージ・コントローラ222は、各デバイス・アダプタ226を介して、ストレージ・ドライブ204に通信によって結合される。各デバイス・アダプタ226は、ストレージ・ドライブ216への入出力(I/O:Input/Output)アクセス(本明細書では、データ・アクセス要求またはアクセス要求とも呼ばれる)を管理するように構成される。例えば、デバイス・アダプタ226は、ストレージ・ドライブ216を論理的に構成し、データを格納するストレージ・ドライブ216上の位置を決定する。ストレージ・ドライブ216(ディスク・ドライブ・モジュール(DDM:disk drive modules)とも呼ばれる)は、異なる性能特性を有するさまざまな種類のドライブのグループを含むことができる。例えば、ストレージ・ドライブ216は、(相対的に)遅い「ニアライン」ディスク(例えば、毎分7,200回転(RPM:revolutions per minute)の回転速度)、SASディスク・ドライブ(例えば、10kまたは15kRPM)、および相対的に速い半導体ドライブ(SSD:solid state drives)の組み合わせを含むことができる。
デバイス・アダプタ226は、スイッチ220を介してストレージ・ドライブ216に結合される。スイッチ220の各々は、光ファイバ接続を介してストレージ・ドライブ216をデバイス・アダプタに結合するファイバ・スイッチであることができる。デバイス・アダプタ226は、ストレージ・ドライブ216をアレイ・サイト234に論理的にグループ化する。説明の目的で、ストレージ・ドライブ216から成る単一のアレイ・サイト234が図2に示されている。しかし、本発明の他の実施形態では、ストレージ・ドライブ216から成る2つ以上のアレイ・サイトが含まれ得るということが、理解されるべきである。アレイ・サイト234は、新磁気ディスク制御機構(RAID)アレイ234として構成され得る。任意の種類のRAIDアレイ(例えば、RAID0、RAID5、RAID10など)が使用され得るということが、理解されるべきである。各RAIDアレイは、ランクとも呼ばれる。各ランクは、範囲と呼ばれる、複数の同じサイズのパーティションに分割される。各範囲のサイズは、実装に応じて変化することができる。例えば、各範囲のサイズは、少なくとも部分的に、範囲のストレージ・タイプによって決まることができる。範囲のストレージ・タイプ(例えば、固定長ブロック(FB:Fixed Block)またはカウント・キー・データ(CKD:count key data))は、ストレージ・サブシステムに結合されたホストの種類(例えば、オープンシステム・ホストまたはメインフレーム・サーバ)によって決まる。その後、これらの範囲は、論理ボリュームを構成するためにグループ化される。
ストレージ・サブシステム210は、フルディスク暗号化、不揮発性ストレージ(NVS:non-volatile storage)アルゴリズム(例えば、しきい値化、ステージ、デステージ)、ストレージ・プール・ストライピング(範囲の循環)、動的ボリューム拡張、動的データ再配置、インテリジェントな書き込みキャッシング、および適応型マルチストリーム・プリフェッチ(adaptive multi-stream prefetching)などの、ただしこれらに限定されない、さまざまな管理機能を可能にすることができる。図2に示されたアーキテクチャに類似するアーキテクチャを有するストレージ・システム210の1つの例は、IBM DS8000(TM)シリーズ・エンタープライズ・ストレージ・システムである。DS8000(TM)は、継続的動作をサポートするように設計されたディスク・ストレージおよび半導体ストレージを提供する、高性能、大容量のストレージ・サブシステムである。それでも、本明細書で開示された本発明の実施形態は、IBM DS8000(TM)シリーズ・エンタープライズ・ストレージ・システムに限定されず、システムに関連付けられた製造業者、製品名、またはコンポーネントもしくはコンポーネント名に関わらず、任意の同等の、または類似するストレージ・システムまたはストレージ・システムのグループにおいて実装され得る。したがって、IBM DS8000(TM)は、単に例として提示されており、限定するよう意図されていない。
さらに、図2に示された本発明の実施形態では、デバイス・アダプタ226の各々が、イーサネット(R)・ポートなどの各ネットワーク・ポート232を含んでおり、このポートが、インターネットなどのネットワークを介して、デバイス・アダプタ226をクラウド・ストレージ・デバイス214に通信によって結合する。図2に示されている例では、各デバイス・アダプタ226は、各再配置モジュール232をさらに含んでおり、再配置モジュール232は、クラウド・ストレージ・デバイス214が、ストレージ・コントローラ222にはローカルRAIDアレイまたはローカル・ランクのように見えるように、クラウド・ストレージ・デバイス214を仮想RAIDアレイに割り当ててグループ化するように構成される。このようにして、ローカル・ランク(RAIDアレイ243など)に使用できるストレージ・コントローラ222の機能が、クラウドのランク214にも使用できる。
図3および4に関して下で詳細に説明されているように、再配置モジュール232は、ストレージ・コントローラ・コマンドまたはI/Oアクセスあるいはその両方と、クラウド・インターフェイス・コマンド(cloud interface commands)またはI/Oアクセスあるいはその両方との間で変換するように構成される。この例では、再配置モジュール232がデバイス・アダプタ226に含まれているが、他の実施形態では、再配置モジュール232がストレージ・コントローラ222に含まれ得るということに、注意するべきである。具体的には、一部の実施形態では、各ストレージ・コントローラ222は、各デバイス・アダプタ226へのコマンドの変換を実行する各再配置モジュールを含む。
したがって、本明細書に記載された本発明の実施形態は、従来のクラウド・ストレージ・システムを超える優位性を可能にする。例えば、従来のクラウド・ストレージ・システムは、通常、リモートのアーカイブ、バックアップ、および取得などの、比較的簡単な機能を可能にする。しかし、そのような従来のシステムは、クラウドに格納されたデータに対して、前述した管理機能(例えば、しきい値化、ステージ、およびデステージなどのNVSアルゴリズム)などの高度な管理機能を実行できない。したがって、下でさらに詳細に説明される再配置モジュール232を使用することによって、本明細書に記載された本発明の実施形態は、クラウド・ストレージ・デバイスに格納されたデータに対する、従来のクラウド・ストレージ・システムに使用できない高度な管理機能の実行を可能にする。具体的には、再配置モジュール232を使用することによって、ストレージ・コントローラ222およびデバイス・アダプタ226は、仮想RAIDアレイが、リモート・ストレージではなく、デバイス・アダプタ226に結合されたローカル・ドライブであるかのように、クラウド・ストレージから成る仮想RAIDアレイまたはランクにアクセスして利用することができる。このようにして、前述した管理機能などの、ローカル・ドライブに使用できる管理機能と同じ管理機能を、それらの管理機能の実装に関連付けられた基礎になるコードまたはハードウェアあるいはその両方を変更することなく、リモートのクラウド・ストレージに使用することができる。
さらに、ストレージ・サブシステム210にはローカル・ストレージのように見える仮想RAIDアレイを作成することによって、本明細書に記載された実施形態は、効率的なデータの再配置という問題に対する解決策を提供する。具体的には、再配置モジュール232は、ストレージ・システム内の1つまたは複数のRAIDアレイ(例えば、アレイ234)の複数のストレージ・デバイス上のデータへのデータ・アクセスを監視するように構成される。監視されたアクセスに基づいて、再配置モジュール232は、データの複数のカテゴリを識別することができる。例えば、一部の実施形態では、再配置モジュール232は、ホット・データのカテゴリ、コールド・データのカテゴリ、極度のコールド・データのカテゴリを識別する。ホット・データのカテゴリは、第1の期間内にデータ・アクセスがあるデータに対応する。コールド・データのカテゴリは、第1の期間内にデータ・アクセスがなかったが、第1の期間より長いまたは大きい第2の期間内にデータ・アクセスがあったデータに対応する。極度のコールド・データのカテゴリは、第1の期間内、第2の期間内のどちらにもデータ・アクセスがなかったデータに対応する。言い換えると、極度のコールド・データのカテゴリ内のデータは、第2の期間を超える期間の間、データ・アクセスがなかった。下で詳細に説明されているように、再配置モジュール232は、極度のコールド・データのカテゴリ内のデータをクラウド・ベースのランクのうちの1つまたは複数に移動するように構成される。したがって、再配置モジュール232は、ストレージ・システム200の既存のクラウド・ベースのランク上で空間を使用できない場合に、クラウド・ベースのランクを作成するように構成され得る。
図3は、デバイス・アダプタ226などのデバイス・アダプタまたはストレージ・コントローラ222などのストレージ・コントローラとして実装できる、例示的なコンピューティング・デバイス300のブロック図である。説明の目的で、コンピューティング・デバイス300は、本明細書ではデバイス・アダプタに関して説明される。図3に示された例では、デバイス・アダプタ300は、メモリ325、ストレージ335、相互接続(例えば、バス)340、1つまたは複数のプロセッサ305(本明細書ではCPU305ともに呼ばれる)、I/Oデバイス・インターフェイス350、およびネットワーク・アダプタまたはポート315を含んでいる。
各CPU305は、メモリ325またはストレージ335あるいはその両方に格納されたプログラミング命令を取得して実行する。相互接続340は、プログラミング命令などのデータを、CPU305、I/Oデバイス・インターフェイス350、ストレージ335、ネットワーク・アダプタ315、およびメモリ325の間で移動するために使用される。相互接続340は、1つまたは複数のバスを使用して実装され得る。さまざまな実施形態では、CPU305は、単一のCPU、複数のCPU、または複数のプロセッシング・コアを含んでいる単一のCPUであることができる。本発明の一部の実施形態では、プロセッサ305は、デジタル信号プロセッサ(DSP:digital signal processor)であることができる。メモリ325は、一般に、ランダム・アクセス・メモリ(例えば、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ダイナミック・ランダム・アクセス・メモリ(DRAM:dynamic random access memory)、またはフラッシュ)を表すために含められている。ストレージ335は、一般に、ハード・ディスク・ドライブ、半導体デバイス(SSD:solid state device)、取り外し可能メモリ・カード、光ストレージ、またはフラッシュ・メモリ・デバイスなどの、不揮発性メモリを表すために含められている。
本発明の一部の実施形態では、メモリ325は、再配置命令301を格納し、ストレージ335は、マップ・テーブル307を格納する。しかし、本発明のさまざまな実施形態では、再配置命令301およびマップ・テーブル307が、部分的にメモリ325に格納され、かつ部分的にストレージ335に格納されるか、あるいは全体的にメモリ325に格納されるか、または全体的にストレージ335に格納される。
再配置命令301は、CPU305によって実行された場合、CPU305に、マップ・テーブル307を利用して、図2に関して前述された再配置モジュールを実装させる。再配置命令301およびマップ・テーブル307は、デバイス・アダプタ300に格納され、デバイス・アダプタ300によって実行/利用されるように示されているが、本発明の他の実施形態では、再配置命令301およびマップ・テーブル307が、図2に示されているストレージ・コントローラ222aまたはストレージ・コントローラ222bあるいはその両方などのストレージ・コントローラに格納され、それらのストレージ・コントローラよって実行/利用され得るということに、注意するべきである。再配置命令301は、CPU305に、図2に示されたクラウド・ストレージ・デバイス214などの、クラウド・ストレージ・デバイス上の空間を割り当てさせる。この空間は、静的に割り当てられるか、または必要性が生じたときに要求に応じて割り当てられ得る。例えば、この空間は、先験的に、または実行時に割り当てられ得る。さらに、クラウド・ストレージのランクは、異なるストレージ容量で作成され得る。
再配置命令301は、CPU305に、割り当てられたストレージを1つまたは複数の仮想ランクにグループ化することと、クラウド・ストレージ・デバイスと1つまたは複数の仮想ランクとの間のマッピングをマップ・テーブル307に格納することとをさらに実行させる。具体的には、再配置命令301は、CPU305にマップ・テーブル307を生成させ、マップ・テーブル307は、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングし、仮想ローカル・アドレスをグループ化して1つまたは複数の仮想ローカル・ランクまたはRAIDアレイを作成する。このようにして、クラウド・ストレージの仮想ランクは、I/Oデバイス・インターフェイス350を介してデバイス・アダプタ300に通信によって結合されたストレージ・コントローラに直接取り付けられたローカル・ランクのように見える。また、I/Oデバイス・インターフェイス350は、デバイス・アダプタ300を、半導体ドライブおよびニアライン・ドライブ(例えば、前述されたストレージ・ドライブ216)などの、ストレージ・デバイスのローカル・ランクに、通信によって結合する。例えば、I/Oデバイス・インターフェイス350は、光ファイバ・ポートを含むことができる。本明細書において使用されるとき、ローカル・ランクは、インターネットなどの広域ネットワークが介在せずに、デバイス・アダプタ300に直接接続されたストレージ・デバイスから成るランクまたはRAIDアレイである。
I/Oアクセス(例えば、読み取り要求または書き込み要求)が受信されたときに、クラウド変換命令301が、CPU305に、要求がクラウド・ストレージの仮想ランクに格納されたデータに向けられているかどうかを判定させる。要求がクラウド・ストレージの仮想ランクに格納されたデータに向けられている場合、再配置命令301が、クラウド・インターフェイスを介してクラウド・ストレージ・デバイスに送信するために、I/Oアクセス(本明細書では、データ・アクセス要求またはアクセス要求とも呼ばれる)を変換する。例えば、再配置命令301は、クラウド・ストレージ・デバイスにアクセスするためにクラウド・インターフェイスによって使用されるコマンド、書式、デバイスのアドレスなどを使用して、I/Oアクセスを変換できる。本明細書において使用されるとき、I/Oアクセス、読み取り/書き込みアクセス、およびデータ・アクセスという用語は、交換可能なように使用され得る。クラウド・インターフェイスの例としては、IBM(R)Cloud Managerまたはthe Amazon(R)Simple Storage Service(Amazon S3)インターフェイスが挙げられるが、これらに限定されない。したがって、前述したように、再配置命令301は、他のローカル・ストレージ・デバイスと同様に、クラウド・ストレージをストレージ・コントローラで透過的に使用できるようにする。
加えて、再配置命令301は、CPU305に、頻繁にアクセスされないデータを動的に再配置させて、ストレージ・システムの効率を改善する。具体的には、再配置命令301は、CPU305に、既定の時間を超える間アクセスされなかったデータをクラウド・ベースのランクに動的に再配置させる。例えば、再配置命令301は、CPU305に、図4に関してさらに詳細に説明されている動的再配置を実行させるように構成され得る。
加えて、再配置命令303は、本発明の一部の実施形態では、CPU305に、サービス・レベルをクラウド・ベースのランクに割り当てさせるように、構成される。本発明の一部のそのような実施形態では、3つのレベルのサービスが存在する。しかし、複数のレベルのサービスを提供する本発明の他の実施形態では、2つまたは4つ以上のレベルのサービスが提供され得る。この例では、3つのレベルのサービスが利用され、サービスのレベルの選択は、ミラーリングされているデータの圧縮率、仮想ローカル・ランクの各入出力データ速度、およびサービス・レベル・アグリーメントに基づく。例えば、サービス・レベル・アグリーメントが低品質のサービスを示しており、仮想ローカル・ランクのI/Oデータ速度がしきい値を下回っており、アクセスされているデータが圧縮可能である場合、第1のレベルのサービスが選択される。低品質のサービスは、サービスの事前に定義されたしきい値レベルを下回る、任意の品質のサービスであることができる。第1のレベルのサービスは、この例の3つの選択肢のうちの最低レベルのサービスである。例えば、第1のレベルのサービスは、他の2つのレベルのサービスより大きい待ち時間および小さいスループットを含むことができる。サービス・レベル・アグリーメントが低品質のサービスを示しており、仮想ローカル・ランクのI/Oデータ速度がしきい値を下回っており、データが圧縮不可能である場合、第2のレベルのサービスが選択される。第2のレベルのサービスは、第1のレベルのサービスより大きいスループットまたはより小さい待ち時間あるいはその両方を含む。最後または第3のレベルのサービスは、他のすべてのデータに使用される(例えば、SLAが、事前に定義されたしきい値を超えるサービスのレベルを示しているか、またはI/Oデータ速度がしきい値を超えているか、あるいはその両方である)。第3のレベルのサービスは、第1および第2の両方のレベルのサービスより大きいスループットまたはより小さい待ち時間あるいはその両方を含む。
異なるレベルのサービスを提供することによって、デバイス・アダプタ326は、クラウド・ストレージの仮想ランクを活用して、クラウド・ストレージおよびアクセスに対する顧客の必要性を満たすことにおいて、より大きい柔軟性を提供することができる。例示的な第1、第2、および第3のレベルが、待ち時間およびスループットにおいて異なっていると説明されているが、サービスのレベルを区別するために他の要因が使用され得るということに、注意するべきである。例えば、本発明の一部の実施形態では、3つのレベルのサービスは、同じ待ち時間およびスループットを有しているが、費用および冗長性のレベルにおいて異なる。
図4は、データの動的再配置の方法400を示すフローチャートである。方法400は、デバイス・アダプタ226などのデバイス・アダプタまたはストレージ・コントローラ222などのストレージ・コントローラによって実施され得る。例えば、方法400は、再配置命令301などの命令を実行する、コンピューティング・デバイス300内のCPU305などのCPUによって、実施され得る。例示的な方法400における動作の順序が、例示の目的で提供されているということ、および本発明の他の実施形態では、この方法が異なる順序で実行され得るということが、理解されるべきである。同様に、本発明の他の実施形態では、一部の動作が省略されるか、または追加の動作が含まれ得るということが、理解されるべきである。
ブロック402で、エンタープライズ・ストレージ・システムの複数のローカル・ランクに格納されたデータへのアクセスが、監視される。例えば、デバイス・アダプタまたはストレージ・コントローラあるいはその両方が、データへのアクセス数を数えながら、データ・アクセスが発生した時間を追跡するように構成され得る。ブロック404で、既定の時間を超える間アクセスされなかったデータ。本発明の一部の実施形態では、この既定の時間は、指定された週数である。本発明の他の実施形態では、この既定の時間は、指定された日数である。本発明の他の実施形態では、他の時間が使用される。
本発明の一部の実施形態では、複数のローカル・ランクまたはローカルRAIDアレイに格納されたデータが、監視されたデータ・アクセスに基づいて複数のカテゴリに分類される。例えば、本発明のそのような一部の実施形態では、前述したように、データの3つのカテゴリが使用される。本発明の他の実施形態では、4つ以上のカテゴリが使用される。カテゴリの各々は、データ・アクセスの頻度によって定義され得る。例えば、一部の実施形態では、第1の最短の期間内にアクセスされるデータは、最も頻繁にアクセスされるデータ(またはホット・データ)である。同様に、第1の最短の期間内にアクセスされないが、第1の期間より長い第2の期間内にアクセスされるデータは、第2のカテゴリ(例えば、コールド・データ)に分類される。このようにして、異なる期間が、データの異なるカテゴリを定義することができる。他の実施形態では、特定の時間内に発生するアクセスの数が、異なるカテゴリの定義に使用され得る。異なるカテゴリを定義する方法に関わらず、既定の時間の間アクセスされなかったデータを識別することは、アクセスされる頻度が最も低いデータを識別することを含む。例えば、複数の期間が複数のカテゴリの定義に使用される場合、ブロック404で使用される既定の時間は、最長の期間である。
ブロック406で、既定の時間内にアクセスされなかったデータが、エンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのランクに移動される。各クラウド・ベースのランクは、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含む。1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間は、前述したように、仮想ローカル・ランクとしてグループ化された対応する仮想ローカル・アドレスにマッピングされる。
データをクラウド・ベースのランクに移動することは、クラウド・ベースのランクを作成することを含むことができる。例えば、ブロック404で識別されたデータのための十分な空間を有しているクラウド・ベースのランクを使用できない(例えば、既存のクラウド・ベースのランクが十分な空間を有していないか、またはクラウド・ベースのランクが現在存在していない)ということの決定に応答して、デバイス・アダプタまたはストレージ・コントローラが、1つまたは複数の新しいクラウド・ベースのランクを作成できる。1つまたは複数の新しいクラウド・ベースのランクを作成することは、クラウド・インターフェイスを介して、1つまたは複数の対応するクラウド・ストレージ・デバイス上のストレージ空間を割り当てることを含む。クラウド・インターフェイスは、クラウド・ストレージ・デバイスへのアクセスを可能にするように構成されたインターフェイスである。例えば、クラウド・インターフェイスは、アプリケーション・プログラミング・インターフェイス(API:application programming interface)として実装され得る。上では、例示的なクラウド・インターフェイスが説明された。クラウド・ストレージを割り当てることは、クラウド・インターフェイスを介して、指定された量のストレージを要求することを含むことができる。このストレージ空間は、必要とされる前に静的に要求されるか、またはストレージ空間が必要とされるときに動的に要求され得る。さらに、本明細書において使用されるとき、クラウド・ストレージ・デバイスは、ローカル・エリア・ネットワークまたは直接通信リンクとは対照的に、インターネットなどの広域ネットワークを介してアクセスされるストレージ・デバイスである。
新しいクラウド・ベースのランクを作成することは、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることをさらに含む。例えば、本発明の一部の実施形態では、デバイス・アダプタまたはストレージ・コントローラは、割り当てられたストレージ空間を対応する仮想ローカル・アドレスに割り当てる。本明細書において使用されるとき、仮想ローカル・アドレスは、ローカル接続を介してデバイス・アダプタに結合されたストレージ・デバイスのアドレスのように見えるメモリ・アドレスである。ローカル接続とは、インターネットなどの広域ネットワークまたはリモート・ネットワークを経由しない接続のことを指す。
新しいクラウド・ベースのランクを作成することは、仮想ローカル・アドレスを仮想ローカル・ランクとしてグループ化することをさらに含む。例えば、デバイス・アダプタまたはストレージ・コントローラは、ストレージ・デバイスのローカルRAIDアレイとしてデバイス・アダプタに直接接続されているように見えるように、仮想ローカル・アドレスをグループ化または配置するように構成される。
さらに、本発明の一部の実施形態では、ブロック404で識別されたデータを移動することは、既定の条件が満たされるまでデータの移動を待つことを含む。例えば、本発明のそのような一部の実施形態では、ブロック404で識別されたデータを移動することは、ブロック404で識別されたデータのサイズを決定することと、データのサイズが既定のサイズしきい値を超えているということの決定に応答して、データを移動することとを含む。例えば、このサイズしきい値は、一部の実施形態では、1ギガバイト、10ギガバイト、または100ギガバイトなどに設定され得る。他の実施形態では、このサイズは、1つまたは複数のローカルRAIDアレイ上の範囲のサイズに応じて決定される。
本発明の他の実施形態では、デバイス・アダプタまたはストレージ・コントローラが、1つまたは複数のローカルRAIDアレイ上で使用できる空間の量に基づいて、ブロック404で識別されたデータの移動を待つように構成される。例えば、本発明のそのような一部の実施形態では、ブロック404で識別されたデータを移動することは、複数のローカル・ランク上に残っている使用できる空間の量を決定することと、使用できる空間の量を既定の使用可能な空間しきい値と比較することとを含む。複数のローカル・ランク上で使用できる空間がしきい値未満に低下した後に、デバイス・アダプタまたはストレージ・コントローラが、データの移動をクラウド・ベースのランクに向ける。
ブロック408で、クラウド・ベースのランク上のデータの少なくとも一部に対するデータ・アクセス要求が受信されたかどうかが判定される。クラウド・ベースのランク上のデータに対するデータ・アクセス要求は、ブロック406でクラウド・ベースのランクに移動されたデータの少なくとも一部に対応する仮想ローカル・アドレスに向けられたアクセス要求を含む。デバイス・アダプタまたはストレージ・コントローラは、アクセス要求を、1つまたは複数のクラウド・ベースのランクの1つまたは複数のクラウド・ストレージ・デバイスに対応するアプリケーション・プログラミング・インターフェイス(API)用に構成されたクラウド・データ・アクセス要求に変換するように構成される。
クラウド・ベースのランクに移動されたデータの少なくとも一部に対するデータ・アクセス要求が受信されなかった場合、ブロック408で、データ・アクセス要求が受信されるまで方法400がループする。クラウド・ベースのランクに移動されたデータの少なくとも一部に対するデータ・アクセス要求が受信された場合、ブロック410で、要求されたデータが、1つまたは複数のローカルRAIDアレイの1つまたは複数のストレージ・ドライブに再配置される。
ブロック412で、クラウド・ベースのランク上にデータがまだ残っているかどうかが判定される。クラウド・ベースのランクの各々にデータがまだ残っている場合、方法400がブロック408にループする。クラウド・ベースのランクのうちの1つまたは複数にデータが残っていない場合、ブロック414で、データが格納されていない対応するクラウド・ベースのランクが削除される。クラウド・ベースのランクを削除することは、ストレージ空間の割り当てを解除することと、マップ・テーブル内の対応するエントリを削除することとを含む。このようにして、ストレージ空間が必要になったときに、クラウド・ベースのランクが動的に作成および削除され得る。
前述したように、例示的な方法400における動作の順序は、例示の目的で提供されており、他の実施形態では、方法400を異なる順序で実行することができ、または一部の動作を省略することができ、もしくは追加の動作を含めることができ、あるいはこれらの組み合わせが可能である。同様に、本発明の他の実施形態では、一部の動作が省略されるか、または追加の動作が含まれ得るということが、理解されるべきである。例えば、本発明の一部の実施形態では、ブロック412および414が省略される。本発明のそのような実施形態では、ローカルRAIDアレイのうちの1つまたは複数へのデータの再配置後に、クラウド・ベースのランクのうちの1つまたは複数にデータが残っていない場合でも、クラウド・ベースのランクが削除されない。さらに、動作が順次に実行される必要はないということが、理解されるべきである。例えば、ブロック402および404で説明された監視および識別は、同時に発生することができ、または方法400において説明された他の動作と重複することができる。
本発明の実施形態は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。本発明の一部の実施形態では、本発明の実施形態の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の実施形態の態様は、本明細書において、本発明の実施形態に記載された方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
実施例
実施例1は、データの動的再配置のためのコンピュータ実装方法を含む。この方法は、エンタープライズ・ストレージ・システムの複数のローカル・ランクに格納されたデータへのアクセスを監視することと、監視されたアクセスに基づいて、既定の時間の間アクセスされていないデータを識別することと、既定の時間の間アクセスされていないデータをエンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのランクに移動することとを含み、各クラウド・ベースのランクが、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含み、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間が、仮想ローカル・ランクとしてグループ化された対応する仮想ローカル・アドレスにマッピングされる。
実施例2は、実施例1のコンピュータ実装方法を含み、移動されたデータの少なくとも一部に対応する仮想ローカル・アドレスに向けられたアクセス要求に応答して、アクセス要求を、1つまたは複数のクラウド・ベースのランクの1つまたは複数のクラウド・ストレージ・デバイスに対応するアプリケーション・プログラミング・インターフェイス(API)用に構成されたクラウド・データ・アクセス要求に変換することと、移動されたデータの少なくとも一部を1つまたは複数のクラウド・ベースのランクから複数のローカル・ランクのうちの少なくとも1つに再配置することとをさらに含む。
実施例3は、実施例2のコンピュータ実装方法を含み、移動されたデータのすべてが複数のローカル・ランクのうちの少なくとも1つに再配置されたことを決定することと、1つまたは複数のクラウド・ベースのランクを削除することとをさらに含む。
実施例4は、実施例1~3のいずれかのコンピュータ実装方法を含み、既定の時間が、既定の週数または既定の日数のうちの1つを含む。
実施例5は、実施例1~4のいずれかのコンピュータ実装方法を含み、データを移動することが、十分なストレージ空間を有しているクラウド・ベースのランクを使用できないということの決定に応答して、1つまたは複数の新しいクラウド・ベースのランクを作成することを含む。1つまたは複数の新しいクラウド・ベースのランクの各々を作成することは、クラウド・インターフェイスを介して1つまたは複数の対応するクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・ランクとして仮想ローカル・アドレスをグループ化することとを含む。
実施例6は、実施例1~5のいずれかのコンピュータ実装方法を含み、データを移動することが、既定の時間の間アクセスされていないデータのサイズが既定のサイズしきい値を超えているということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動することを含む。
実施例7は、実施例1~5のいずれかのコンピュータ実装方法を含み、データを移動することが、複数のローカル・ランク上で使用できる空間が既定の使用可能な空間しきい値未満であるということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動することを含む。
実施例8は、ストレージ・システムを含む。ストレージ・システムは、ホスト・アダプタを1つまたは複数のホスト・デバイスに通信によって結合するように構成された1つまたは複数のポートを含んでいるホスト・アダプタと、プロセッサおよびメモリを備えているストレージ・コントローラであって、ホスト・アダプタに通信によって結合されている、ストレージ・コントローラと、プロセッサおよびメモリを備えているデバイス・アダプタであって、ストレージ・コントローラに通信によって結合されている、デバイス・アダプタとを備える。デバイス・アダプタは、複数のローカル・ストレージ・ドライブに通信によって結合された複数のポートと、ネットワークを介して複数のクラウド・ストレージ・デバイスに通信によって結合された少なくとも1つのネットワーク・ポートとをさらに含む。デバイス・アダプタおよびストレージ・コントローラのうちの1つが、データ再配置モジュールを実装するようにさらに構成される。データ再配置モジュールは、エンタープライズ・ストレージ・システムの複数のローカル新磁気ディスク制御機構(RAID)アレイに格納されたデータへのアクセスを監視することと、監視されたアクセスに基づいて、既定の時間の間アクセスされていないデータを識別することと、既定の時間の間アクセスされていないデータをエンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのRAIDアレイに移動することとを実行するように構成され、各クラウド・ベースのRAIDアレイが、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含み、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間が、仮想ローカルRAIDアレイとしてグループ化された対応する仮想ローカル・アドレスにマッピングされる。
実施例9は、実施例8のストレージ・システムを含み、再配置モジュールが、移動されたデータの少なくとも一部に対応する仮想ローカル・アドレスに向けられたアクセス要求に応答して、移動されたデータの少なくとも一部を1つまたは複数のクラウド・ベースのランクから複数のローカル・ランクのうちの少なくとも1つに再配置するようにさらに構成される。
実施例10は、実施例9のストレージ・システムを含み、再配置モジュールが、移動されたデータのすべてが複数のローカル・ランクのうちの少なくとも1つに再配置されたということの決定に応答して、1つまたは複数のクラウド・ベースのランクを削除するようにさらに構成される。
実施例11は、実施例8~10のいずれかのストレージ・システムを含み、再配置モジュールが、十分なストレージ空間を有しているクラウド・ベースのランクを使用できないということの決定に応答して、1つまたは複数の新しいクラウド・ベースのランクを作成することによって、データを移動するように構成される。再配置モジュールは、クラウド・インターフェイスを介して1つまたは複数の対応するクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・ランクとして仮想ローカル・アドレスをグループ化することとによって、1つまたは複数の新しいクラウド・ベースのランクの各々を作成するように構成される。
実施例12は、実施例8~11のいずれかのストレージ・システムを含み、再配置モジュールが、既定の時間の間アクセスされていないデータのサイズが既定のサイズしきい値を超えているということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動するように構成される。
実施例13は、実施例8~12のいずれかのストレージ・システムを含み、再配置モジュールが、データを移動することが、複数のローカル・ランク上で使用できる空間が既定の使用可能な空間しきい値未満であるということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動するように構成される。
実施例14は、コンピュータ可読プログラムが格納されているコンピュータ可読記憶媒体を備えているコンピュータ・プログラム製品を含む。コンピュータ可読プログラムは、プロセッサによって実行された場合に、プロセッサに、エンタープライズ・ストレージ・システムの複数のローカル新磁気ディスク制御機構(RAID)アレイに格納されたデータへのアクセスを監視することと、監視されたアクセスに基づいて、既定の時間の間アクセスされていないデータを識別することと、既定の時間の間アクセスされていないデータをエンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのRAIDアレイに移動することとを実行させ、各クラウド・ベースのRAIDアレイが、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含み、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間が、仮想ローカルRAIDアレイとしてグループ化された対応する仮想ローカル・アドレスにマッピングされる。
実施例15は、実施例14のコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、移動されたデータの少なくとも一部に対応する仮想ローカル・アドレスに向けられたアクセス要求に応答して、アクセス要求を、1つまたは複数のクラウド・ベースのランクの1つまたは複数のクラウド・ストレージ・デバイスに対応するアプリケーション・プログラミング・インターフェイス(API)用に構成されたクラウド・データ・アクセス要求に変換することと、移動されたデータの少なくとも一部を1つまたは複数のクラウド・ベースのランクから複数のローカル・ランクのうちの少なくとも1つに再配置することとを実行させるようにさらに構成される。
実施例16は、実施例15のコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、移動されたデータのすべてが複数のローカル・ランクのうちの少なくとも1つに再配置されたということの決定に応答して、1つまたは複数のクラウド・ベースのランクを削除させるようにさらに構成される。
実施例17は、実施例14~16のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、十分なストレージ空間を有しているクラウド・ベースのランクを使用できないということの決定に応答して、1つまたは複数の新しいクラウド・ベースのランクを作成することによって、データを移動させるようにさらに構成される。再配置モジュールは、クラウド・インターフェイスを介して1つまたは複数の対応するクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングすることと、仮想ローカル・ランクとして仮想ローカル・アドレスをグループ化することとによって、1つまたは複数の新しいクラウド・ベースのランクの各々を作成するように構成される。
実施例18は、実施例14~17のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、既定の時間の間アクセスされていないデータのサイズが既定のサイズしきい値を超えているということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動させるようにさらに構成される。
実施例19は、実施例14~18のいずれかのコンピュータ・プログラム製品を含み、コンピュータ可読プログラムが、プロセッサに、データを移動することが、複数のローカル・ランク上で使用できる空間が既定の使用可能な空間しきい値未満であるということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動させるようにさらに構成される。
実施例20は、コンピューティング・デバイスを含む。コンピューティング・デバイスは、ネットワークを介してコンピューティング・デバイスを1つまたは複数のクラウド・ストレージ・デバイスに通信によって結合するように構成されたネットワーク・アダプタと、データを格納するように構成されたストレージ媒体と、ネットワーク・アダプタおよびストレージ媒体に通信によって結合されたプロセッサとを備える。このプロセッサは、エンタープライズ・ストレージ・システムの複数のローカル・ランクに格納されたデータへのアクセスを監視することと、監視されたアクセスに基づいて、既定の時間の間アクセスされていないデータを識別することと、既定の時間の間アクセスされていないデータをエンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのランクに移動することとを実行するように構成され、各クラウド・ベースのランクが、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含み、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間が、仮想ローカル・ランクとしてグループ化された対応する仮想ローカル・アドレスにマッピングされる。
実施例21は、実施例20のコンピューティング・デバイスを含み、プロセッサが、移動されたデータの少なくとも一部に対応する仮想ローカル・アドレスに向けられたアクセス要求に応答して、アクセス要求を、1つまたは複数のクラウド・ベースのランクの1つまたは複数のクラウド・ストレージ・デバイスに対応するアプリケーション・プログラミング・インターフェイス(API)用に構成されたクラウド・データ・アクセス要求に変換することと、移動されたデータの少なくとも一部を1つまたは複数のクラウド・ベースのランクから複数のローカル・ランクのうちの少なくとも1つに再配置することとを実行するようにさらに構成される。
実施例22は、実施例21のコンピューティング・デバイスを含み、プロセッサが、移動されたデータのすべてが複数のローカル・ランクのうちの少なくとも1つに再配置されたということの決定に応答して、1つまたは複数のクラウド・ベースのランクを削除するようにさらに構成される。
実施例23は、実施例20~22のいずれかのコンピューティング・デバイスを含み、プロセッサが、十分なストレージ空間を有しているクラウド・ベースのランクを使用できないということの決定に応答して、1つまたは複数の新しいクラウド・ベースのランクを作成することによって、データを移動するようにさらに構成される。プロセッサは、対応する1つまたは複数のクラウド・ストレージ・デバイスに関連付けられたアプリケーション・プログラミング・インターフェイス(API)を介して1つまたは複数の対応するクラウド・ストレージ・デバイス上のストレージ空間を割り当てることと、割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングするマップ・テーブルを生成ことと、対応する仮想ローカル・ランクとして仮想ローカル・アドレスをグループ化することとによって、1つまたは複数の新しいクラウド・ベースのランクの各々を作成するように構成される。
実施例24は、実施例20~23のいずれかのコンピューティング・デバイスを含み、プロセッサが、既定の時間の間アクセスされていないデータのサイズが既定のサイズしきい値を超えているということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動するようにさらに構成される。
実施例25は、実施例20~24のいずれかのコンピューティング・デバイスを含み、プロセッサが、データを移動することが、複数のローカル・ランク上で使用できる空間が既定の使用可能な空間しきい値未満であるということの決定に応答して、既定の時間の間アクセスされていないデータを1つまたは複数のクラウド・ベースのランクに移動するようにさらに構成される。
本明細書では、本発明の特定の実施形態が示され、説明されたが、同じ目的を達成するように計算された任意の配置が、示された本発明の特定の実施形態の代わりに使用されてよいということが、当業者によって理解されるであろう。したがって、本発明が特許請求の範囲およびそれと同等のもののみによって制限されるということが、明白に意図される。

Claims (8)

  1. データの動的再配置のためのコンピュータ実装方法であって、前記方法が、
    エンタープライズ・ストレージ・システムの複数のローカル・ランクに格納されたデータへのアクセスを監視するステップと、
    前記監視されたアクセスに基づいて、既定の時間の間アクセスされていないデータを識別するステップと、
    前記既定の時間の間アクセスされていない前記データを前記エンタープライズ・ストレージ・システムの1つまたは複数のクラウド・ベースのランクに移動するステップとを含み、各クラウド・ベースのランクが、1つまたは複数のクラウド・ストレージ・デバイス上のストレージ空間を含み、前記1つまたは複数のクラウド・ストレージ・デバイス上の前記ストレージ空間が、仮想ローカル・ランクとしてグループ化された対応する仮想ローカル・アドレスにマッピングされ、
    さらに、
    前記移動されたデータの少なくとも一部に前記対応する仮想ローカル・アドレスに向けられたアクセス要求に応答して、前記アクセス要求を、前記1つまたは複数のクラウド・ベースのランクの前記1つまたは複数のクラウド・ストレージ・デバイスに対応するアプリケーション・プログラミング・インターフェイス(API)用に構成されたクラウド・データ・アクセス要求に変換するステップと、
    前記移動されたデータの前記少なくとも一部を前記1つまたは複数のクラウド・ベースのランクから前記複数のローカル・ランクのうちの少なくとも1つに再配置するステップと、
    移動されたデータのすべてが前記複数のローカル・ランクのうちの少なくとも1つに再配置されたことを決定するステップと、
    前記再配置されたことの決定に応答して、前記1つまたは複数のクラウド・ベースのランクを削除するステップと
    を含む 、コンピュータ実装方法。
  2. 前記既定の時間が、既定の週数または既定の日数のうちの1つを含んでいる、請求項1に記載の方法。
  3. 前記データを移動するステップが、
    十分なストレージ空間を有しているクラウド・ベースのランクを使用できないということの決定に応答して、1つまたは複数の新しいクラウド・ベースのランクを作成するステップを含んでおり、
    前記1つまたは複数の新しいクラウド・ベースのランクの各々を作成するステップが、クラウド・インターフェイスを介して1つまたは複数の対応するクラウド・ストレージ・デバイス上のストレージ空間を割り当てるステップと、
    前記割り当てられたストレージ空間を対応する仮想ローカル・アドレスにマッピングするステップと、
    仮想ローカル・ランクとして前記仮想ローカル・アドレスをグループ化するステップとを含んでいる、請求項1に記載の方法。
  4. 前記データを移動するステップが、前記既定の時間の間アクセスされていない前記データのサイズが既定のサイズしきい値を超えているということの決定に応答して、前記既定の時間の間アクセスされていない前記データを前記1つまたは複数のクラウド・ベースのランクに移動するステップを含んでいる、請求項1に記載の方法。
  5. 前記データを移動するステップが、前記複数のローカル・ランク上で使用できる空間が既定の使用可能な空間しきい値未満であるということの決定に応答して、前記既定の時間の間アクセスされていない前記データを前記1つまたは複数のクラウド・ベースのランクに移動するステップを含んでいる、請求項1に記載の方法。
  6. 前記ランクがRAIDアレイを含んでいる、請求項1に記載の方法。
  7. ホスト・アダプタを1つまたは複数のホスト・デバイスに通信によって結合するように構成された1つまたは複数のポートを含んでいる前記ホスト・アダプタと、
    プロセッサおよびメモリを備えているストレージ・コントローラであって、前記ホスト・アダプタに通信によって結合されている、前記ストレージ・コントローラと、
    プロセッサおよびメモリを備えているデバイス・アダプタであって、前記ストレージ・コントローラに通信によって結合されている、前記デバイス・アダプタとを備えている、ストレージ・システムであって、
    前記デバイス・アダプタが、複数のローカル・ストレージ・ドライブに通信によって結合された複数のポートと、ネットワークを介して複数のクラウド・ストレージ・デバイスに通信によって結合された少なくとも1つのネットワーク・ポートとをさらに含んでおり、
    前記デバイス・アダプタおよび前記ストレージ・コントローラのうちの1つが、請求項1ないしのいずれかに記載の方法に含まれる各ステップを実行するように構成されたデータ再配置モジュールを実装するようにさらに構成されている、ストレージ・システム。
  8. プロセッサに、請求項1ないしのいずれかに記載の前記方法に含まれる各ステップを実行させる、コンピュータ・プログラム
JP2020514287A 2017-09-14 2018-08-20 クラウド・ベースのランクを使用するデータの動的再配置 Active JP7116381B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/704,775 2017-09-14
US15/704,775 US10372371B2 (en) 2017-09-14 2017-09-14 Dynamic data relocation using cloud based ranks
PCT/IB2018/056280 WO2019053534A1 (en) 2017-09-14 2018-08-20 DYNAMIC DATA TRANSLATION USING CLOUD LEVELS

Publications (3)

Publication Number Publication Date
JP2020533694A JP2020533694A (ja) 2020-11-19
JP2020533694A5 JP2020533694A5 (ja) 2021-02-18
JP7116381B2 true JP7116381B2 (ja) 2022-08-10

Family

ID=65631054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020514287A Active JP7116381B2 (ja) 2017-09-14 2018-08-20 クラウド・ベースのランクを使用するデータの動的再配置

Country Status (6)

Country Link
US (2) US10372371B2 (ja)
JP (1) JP7116381B2 (ja)
CN (1) CN111095188B (ja)
DE (1) DE112018003524T5 (ja)
GB (1) GB2580263B (ja)
WO (1) WO2019053534A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10721304B2 (en) * 2017-09-14 2020-07-21 International Business Machines Corporation Storage system using cloud storage as a rank
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
CN109819061B (zh) * 2018-09-11 2021-09-21 华为技术有限公司 一种在云系统中处理云服务的方法、装置和设备
CN109947373B (zh) * 2019-03-28 2022-05-13 北京大道云行科技有限公司 一种数据处理方法和装置
JP7477143B2 (ja) 2020-03-12 2024-05-01 Necソリューションイノベータ株式会社 ストレージ制御装置、ストレージ制御方法、ストレージシステム、プログラム、及び記録媒体
CN111475117B (zh) * 2020-04-09 2024-01-23 南京信息职业技术学院 一种聚合云存储QoS控制方法及系统
CN111741106A (zh) * 2020-06-19 2020-10-02 星辰天合(北京)数据科技有限公司 基于文件存储系统的文件归档方法及装置、电子设备
CN111741107B (zh) * 2020-06-19 2023-08-04 北京星辰天合科技股份有限公司 基于文件存储系统的分层方法及装置、电子设备
US11461335B1 (en) * 2021-04-09 2022-10-04 Snowflake Inc. Optimized processing of data in different formats
US11100111B1 (en) 2021-04-09 2021-08-24 Snowflake Inc. Real-time streaming data ingestion into database tables
CN113949713A (zh) * 2021-10-15 2022-01-18 佳缘科技股份有限公司 一种基于数据漂移的动态存储方法、存储介质和计算机设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012524946A (ja) 2009-04-24 2012-10-18 マイクロソフト コーポレーション バックアップデータのインテリジェント階層
JP2013511104A (ja) 2009-11-16 2013-03-28 マイクロソフト コーポレーション ブロブとしての仮想ハードドライブ管理
US20140032850A1 (en) 2012-07-25 2014-01-30 Vmware, Inc. Transparent Virtualization of Cloud Storage
JP2014175004A (ja) 2013-03-12 2014-09-22 Hon Hai Precision Industry Co Ltd 記憶スペース拡張システム及びその方法
JP2014530415A (ja) 2011-09-12 2014-11-17 マイクロソフト コーポレーション クラウド選択のための調整エンジン
WO2016132572A1 (ja) 2015-02-19 2016-08-25 Necソリューションイノベータ株式会社 データ配置装置及びデータ配置方法
US20170075907A1 (en) 2015-09-14 2017-03-16 Komprise, Inc. Electronic file migration system and various methods of transparent data migration management
US20170160951A1 (en) 2015-12-07 2017-06-08 International Business Machines Corporation Distributed storage of data in a local storage and a heterogeneous cloud
JP2017130103A (ja) 2016-01-21 2017-07-27 日本電気株式会社 ブロックストレージ

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028158B1 (en) * 2001-11-02 2006-04-11 Beatty And Company Computing, Inc. Storage virtualization engine
US6996741B1 (en) * 2001-11-15 2006-02-07 Xiotech Corporation System and method for redundant communication between redundant controllers
US7225211B1 (en) * 2003-12-31 2007-05-29 Veritas Operating Corporation Multi-class storage mechanism
WO2008008340A2 (en) * 2006-07-11 2008-01-17 Juvent, Inc. System and method for a low profile vibrating plate
US7590599B2 (en) * 2006-12-22 2009-09-15 International Business Machines Corporation System and method of automatically maintaining and recycling software components
US8250215B2 (en) * 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8370312B1 (en) * 2009-09-15 2013-02-05 Symantec Corporation Systems and methods for using cloud-based storage to optimize data-storage operations
US8730312B2 (en) * 2009-11-17 2014-05-20 The Active Network, Inc. Systems and methods for augmented reality
CN101719106A (zh) 2009-12-11 2010-06-02 成都市华为赛门铁克科技有限公司 一种精简配置存储阵列的管理方法、装置和系统
US8122282B2 (en) * 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
WO2011148496A1 (ja) 2010-05-27 2011-12-01 株式会社日立製作所 通信ネットワークを介してリモートのファイルサーバにファイルを転送するローカルのファイルサーバ、及び、それらのファイルサーバを有するストレージシステム
US9229842B2 (en) 2010-07-19 2016-01-05 Soasta, Inc. Active waterfall charts for continuous, real-time visualization of website performance data
US8832130B2 (en) 2010-08-19 2014-09-09 Infosys Limited System and method for implementing on demand cloud database
US9128948B1 (en) * 2010-09-15 2015-09-08 Symantec Corporation Integration of deduplicating backup server with cloud storage
US8484416B2 (en) 2010-12-23 2013-07-09 Lsi Corporation High availability raid using low-cost direct attached raid controllers
US9645943B2 (en) 2011-02-22 2017-05-09 Infinidat Ltd. Storage arrangement and method using a plurality of storage spaces which have separate control layers and separate mapping structures
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8745327B1 (en) 2011-06-24 2014-06-03 Emc Corporation Methods, systems, and computer readable medium for controlling prioritization of tiering and spin down features in a data storage system
JP2013026350A (ja) * 2011-07-19 2013-02-04 Sony Corp 光発振装置及び記録装置
US20130218919A1 (en) * 2012-02-20 2013-08-22 Aleksey Solonchev Method and apparatus for managing content
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
CN102882885B (zh) * 2012-10-17 2015-07-01 北京卓微天成科技咨询有限公司 一种提高云计算数据安全的方法及系统
US9268493B2 (en) 2012-11-28 2016-02-23 Dell Products L.P. Systems and methods for smart storage interconnection in a heterogeneous storage environment
US9003135B2 (en) 2013-01-15 2015-04-07 International Business Machines Corporation Efficient allocation and reclamation of thin-provisioned storage
GB2513377A (en) 2013-04-25 2014-10-29 Ibm Controlling data storage in an array of storage devices
EP3060993B1 (en) * 2013-10-21 2023-03-08 FLC Global, Ltd. Final level cache system and corresponding method
US9529773B2 (en) * 2014-05-02 2016-12-27 Cavium, Inc. Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller
US9342346B2 (en) * 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
US9881018B2 (en) 2014-08-14 2018-01-30 International Business Machines Corporation File management in thin provisioning storage environments
US9646010B2 (en) 2014-08-27 2017-05-09 Mokhtarzada Holdings, Llc Method and system for expanding storage capacity of a drive using cloud storage systems
US9411539B2 (en) 2014-09-24 2016-08-09 International Business Machines Corporation Providing access information to a storage controller to determine a storage tier for storing data
US9740436B2 (en) * 2014-11-14 2017-08-22 International Business Machines Corporation Elastic file system management in storage cloud environments
CN104820575B (zh) 2015-04-27 2017-08-15 西北工业大学 实现存储系统自动精简的方法
US10579403B2 (en) 2015-06-29 2020-03-03 Vmware, Inc. Policy based provisioning of containers
US10237343B1 (en) * 2015-12-07 2019-03-19 EMC IP Holding Company LLC Sustaining backup service level objectives using dynamic resource allocation
US9665303B1 (en) 2016-10-12 2017-05-30 Divergent Storage Systems, Inc. Method and apparatus for storing information using an intelligent block storage controller

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012524946A (ja) 2009-04-24 2012-10-18 マイクロソフト コーポレーション バックアップデータのインテリジェント階層
JP2013511104A (ja) 2009-11-16 2013-03-28 マイクロソフト コーポレーション ブロブとしての仮想ハードドライブ管理
JP2014530415A (ja) 2011-09-12 2014-11-17 マイクロソフト コーポレーション クラウド選択のための調整エンジン
US20140032850A1 (en) 2012-07-25 2014-01-30 Vmware, Inc. Transparent Virtualization of Cloud Storage
JP2014175004A (ja) 2013-03-12 2014-09-22 Hon Hai Precision Industry Co Ltd 記憶スペース拡張システム及びその方法
WO2016132572A1 (ja) 2015-02-19 2016-08-25 Necソリューションイノベータ株式会社 データ配置装置及びデータ配置方法
US20170075907A1 (en) 2015-09-14 2017-03-16 Komprise, Inc. Electronic file migration system and various methods of transparent data migration management
US20170160951A1 (en) 2015-12-07 2017-06-08 International Business Machines Corporation Distributed storage of data in a local storage and a heterogeneous cloud
JP2017130103A (ja) 2016-01-21 2017-07-27 日本電気株式会社 ブロックストレージ

Also Published As

Publication number Publication date
GB2580263B (en) 2021-11-17
DE112018003524T5 (de) 2020-04-09
US20190079693A1 (en) 2019-03-14
GB2580263A (en) 2020-07-15
CN111095188B (zh) 2023-12-15
WO2019053534A1 (en) 2019-03-21
JP2020533694A (ja) 2020-11-19
US20190347032A1 (en) 2019-11-14
US10372371B2 (en) 2019-08-06
GB202004106D0 (en) 2020-05-06
CN111095188A (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
JP7116381B2 (ja) クラウド・ベースのランクを使用するデータの動的再配置
JP7210554B2 (ja) クラウド・ストレージをランクとして使用するストレージ・システム
JP7135074B2 (ja) クラウド・ベースのランクを使用するシン・プロビジョニング
US9594514B1 (en) Managing host data placed in a container file system on a data storage array having multiple storage tiers
US10581969B2 (en) Storage system using cloud based ranks as replica storage
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
US9542328B2 (en) Dynamically controlling a file system write cache
US10621059B2 (en) Site recovery solution in a multi-tier storage environment
US11100008B2 (en) Efficient memory usage for snapshots
US11157198B2 (en) Generating merge-friendly sequential IO patterns in shared logger page descriptor tiers
US20130054883A1 (en) Method and system for shared high speed cache in sas switches
US11347641B2 (en) Efficient memory usage for snapshots based on past memory usage
US11429318B2 (en) Redirect-on-write snapshot mechanism with delayed data movement
US10942857B1 (en) Dynamically adjusting a number of memory copy and memory mapping windows to optimize I/O performance
US11016692B2 (en) Dynamically switching between memory copy and memory mapping to optimize I/O performance
US11237916B2 (en) Efficient cloning of logical storage devices
US9164681B1 (en) Method and apparatus for dynamic path-selection for improving I/O performance in virtual provisioned storage arrays with data striping

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20220328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220425

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220705

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20220707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220713

R150 Certificate of patent or registration of utility model

Ref document number: 7116381

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150