JP2022087843A - コンピュータ実装方法、システムおよびコンピュータ・プログラム(ログ構造化アレイにおけるi/o動作) - Google Patents
コンピュータ実装方法、システムおよびコンピュータ・プログラム(ログ構造化アレイにおけるi/o動作) Download PDFInfo
- Publication number
- JP2022087843A JP2022087843A JP2021195198A JP2021195198A JP2022087843A JP 2022087843 A JP2022087843 A JP 2022087843A JP 2021195198 A JP2021195198 A JP 2021195198A JP 2021195198 A JP2021195198 A JP 2021195198A JP 2022087843 A JP2022087843 A JP 2022087843A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- storage
- data
- internal
- computer
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004590 computer program Methods 0.000 title claims abstract description 20
- 230000004044 response Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 23
- 238000007726 management method Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 10
- 238000013500 data storage Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000000224 chemical solution deposition Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ログ構造化アレイ(LSA)における入出力(I/O)動作を管理するための方法、システム、およびコンピュータ・プログラム製品を提供する。【解決手段】方法は、ストレージ・ボリュームへの書込みリクエストを受け取る。書込みリクエストは、データのセットを含む。方法は、フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、ストレージ・ボリュームのターゲット範囲についてのデータのセットがターゲット位置にコピーされないと判定する。ストレージ・ボリュームに対する次のIO動作中にデータのセットに対して内部コピー・オン・ライト(COW)を実行するようにLSAに命令する。内部COW命令に基づいて、方法は、仮想ボリュームからフラッシュ・コピー・ボリュームにターゲット位置の内部ポインタを移動させる。【選択図】図2
Description
本開示は、一般に、LSA環境におけるI/O動作を管理するための方法に関する。さらに、本開示は、LSA環境におけるI/O動作を管理するための関連システム、および、このようなシステムを動作させるためのコンピュータ・プログラムに関する。
コンピューティング・ストレージ・システムには、ポイント・イン・タイム・データ・コピー機能を可能にするものもある。これらの機能は、ブロック・ストレージ・レベルで利用可能になり得る。例えば、ポイント・イン・タイム・データ・コピー機能は、所与のストレージ・ユニット内のデータのフル・ボリューム・コピーを作成するためのコピーの作成を含むことがある。コピーは、ソース・ボリュームとターゲット・ボリュームとの間の関係を確立する。
ボリュームの確立したペアは、ポイント・イン・タイム・コピーとして機能し、ソース・ボリュームとターゲット・ボリューム両方への読み書き動作を可能にする。書込みがソース・ボリュームに対して行われるとき、データをターゲット位置にコピーされる場合があり、その結果、新しいデータがソース・ボリュームに書き込まれる可能性がある。
本明細書で説明する一実施形態によれば、ログ構造化アレイ(LSA)における入出力(I/O)動作を管理するためのコンピュータ実装方法が提供される。方法は、ストレージ・ボリュームへの書込みリクエストを受け取る。書込みリクエストは、データのセットを含む。方法は、フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、ストレージ・ボリュームのターゲット範囲についてのデータのセットがターゲット位置にコピーされないと判定する。ストレージ・ボリュームに対する次のIO動作中にデータのセットに対して内部コピー・オン・ライト(COW)を実行するようにLSAに命令する。内部COW命令に基づいて、方法は、仮想ボリュームからフラッシュ・コピー・ボリュームにターゲット位置の内部ポインタを移動させる。
本明細書で説明する一実施形態によれば、ログ構造化アレイ(LSA)における入出力(I/O)動作を管理するためのシステムが提供される。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに連結されたコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行された場合、動作を1つまたは複数のプロセッサに実行させるプログラム命令を格納する、コンピュータ可読記憶媒体とを含む。動作は、ストレージ・ボリュームへの書込みリクエストを受け取る。書込みリクエストは、データのセットを含む。動作は、フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、ストレージ・ボリュームのターゲット範囲についてのデータのセットがターゲット位置にコピーされないと判定する。ストレージ・ボリュームに対する次のIO動作中にデータのセットに対して内部コピー・オン・ライト(COW)を実行するようにLSAに命令する。内部COW命令に基づいて、動作は、仮想ボリュームからフラッシュ・コピー・ボリュームにターゲット位置の内部ポインタを移動させる。
本明細書で説明する一実施形態によれば、ログ構造化アレイ(LSA)における入出力(I/O)動作を管理するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、プログラム命令は、ストレージ・ボリュームへの書込みリクエストを受け取ることを1つまたは複数のプロセッサに行わせるように、1つまたは複数のプロセッサによって実行可能である。書込みリクエストは、データのセットを含む。コンピュータ・プログラム製品は、フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、ストレージ・ボリュームのターゲット範囲についてのデータのセットがターゲット位置にコピーされないと判定する。ストレージ・ボリュームに対する次のIO動作中にデータのセットに対して内部コピー・オン・ライト(COW)を実行するようにLSAに命令する。内部COW命令に基づいて、コンピュータ・プログラム製品は、仮想ボリュームからフラッシュ・コピー・ボリュームにターゲット位置の内部ポインタを移動させる。
本出願に含まれる図面は、本明細書に組み込まれ、本明細書の一部を形成する。これらは、本開示の実施形態を示し、本明細書と共に、本開示の原理を説明する。図面は、特定の実施形態の例示に過ぎず、本開示を限定しない。
本開示は、一般に、LSA環境におけるI/O動作を管理するための方法に関する。排他的にではなく、より具体的には、本開示の実施形態は、統合ストレージ・システムにおけるブロック・データ・バックアップ中のLSAにおけるI/O動作を管理するためのコンピュータ実装方法に関する。さらに、本開示は、LSA環境におけるI/O動作を管理するための関連システム、および、このようなシステムを動作させるためのコンピュータ・プログラム製品に関する。
データ・ストレージ・システムおよび設備は、処理の課題を素早く実行するために、および比較的多数のユーザのために構築されることが多い。これらのシステムのいくつかは、データベース、処理およびストレージを単一のコンパクトなシステムに統合する。これらのシステムは、分析処理のために構成しても、柔軟な成長のために設計してもよい。未加工データを分析するとき、これらのデータ・ストレージ・システムを活用するビジネス・インテリジェンス・アプリケーションは、多くの読取り入出力(I/O)動作を発行して、処理のためのデータを収集することがある。これらのアプリケーションは、また、一時記憶空間に中間データを保存するために、多くの書込みI/O動作を送ることがある。これらのアプリケーションは、複数のディスク筐体に接続された複数のサーバ・ブレードに複数のホストを接続したデータ・ストレージ・システム・アーキテクチャを活用することがある。複数のディスクは、ストレージ・システムまたはストレージ・システム・アーキテクチャから公開されたボリュームであってもよい。各ディスクは、複数の仮想化ボリュームを有することができる。仮想化ボリュームは、少なくとも一時的に、システムの上層に公開でき、データを格納するために使用することができる。ストレージ制御またはストレージ・コントローラ・クラスタは、ストレージ・ディスクを仮想化することを可能にすることができる。また、これらのストレージ制御構成要素は、ストレージ・レベル・バックアップおよびスナップショット、フラッシュ・コピー、または仮想化ボリュームのポイント・イン・タイム・データ・コピーを可能にすることができる。これらのポイント・イン・タイム・データ・コピーは、ブロック・レベルで実行することができ、様々な目的に使用することができる。
ポイント・イン・タイム・コピーがログ構造化アレイと共に使用される場合、ポイント・イン・タイム・データ・コピーに対して実行される書込み動作は、データの内部移動が無効データ位置を作成することにより、ホールになることがある。ホールが増加すると、利用可能なストレージが減少し得る。ログ構造化アレイからホールを除去するために、ガベージ・コレクション動作を使用する。ガベージ・コレクション動作は、計算処理的に負荷が高いことがあり、他の動作への割り込みを発生させ得る。
データ・ストレージ・システムには、ログ構造化アレイ(LSA)・ファイル・システムを採用するものもある。LSAシステムは、一連のファイル・システムの変更をバッファすることによって、いくつかのデータ・ストレージ・システムの書込み性能問題に対処することができる。変更は、キャッシュにバッファすることができる。適切な数の変更、期間または他の閾値条件を満たすと、変更は、所与のディスクにキャッシュから順次書き込むことができる。連続書込みは、単一のディスク書込み動作で実行することができる。変更は、ファイル・データ・ブロック、属性、インデックス・ブロック、ディレクトリまたはファイル・システムを管理するために使用され得る他の任意の情報を含み得るディスクに書き込むことができる。
ブロック・ストレージ・システムは、ログ構造化ブロック・ストレージに対して同様のアプローチを使用することができる。このようなシステムでは、論理ブロックを、ボリュームに対して定義することができる。論理ブロックは、ディスクの実際の論理ブロック・アドレス(LBA)を指すことができる。ブロック・ストレージ・システムの論理ボリュームLBA(例えば、ディスクの仮想ボリュームについてのLBA)は、ストレージ・システムに対する書込み動作を管理するための、ログ構造化アレイとして管理することができる。各ホスト書込み動作は、データ・ポインタが位置する新しい論理LBA位置に保存することができる。このようなシステムでは、ストレージ・システムの物理LBAに対する書込みI/O動作およびシーク・タイムは、各書込み動作に対して、除くことができる。例えば、ブロック・ストレージ・システムは、ブロック・ストレージ・プールからボリュームを作成することができる。ボリュームは、ディスクに対してI/O動作を実行するために、ホスト・アプリケーションに公開することができる。ボリュームは、ブロック・ストレージ・システムのためのストレージ・コントローラ・アーキテクチャのマッピング・ポリシに基づいて、物理LBA位置を内部的に指す、ボリュームに関連付けられた論理LBAを有することができる。このように、ブロック・ストレージ・システムは、ストレージ・プール・レベルのログ構造化実装形態を有することができる。さらに、ブロック・ストレージ・システムは、循環バッファ位置へのポインタとして、1つの位置を有することができる。ホストがボリュームに書込みI/Oを発行する場合、データは、LSAに最新ポインタ位置を書き込むことができ、ポインタは、次の論理位置に移動させることができる。
このように、データを循環バッファに書き込むと、ポインタが次の位置に移動するたびに、ストレージ・コントローラのLSAに無効位置が作成される。無効データ位置は、LSAにおけるホールになり得る。バッファ空間からクリアするために、ホールは、ガベージ・コレクション動作を受ける。ガベージ・コレクション処理は、LSAにおける物理ボリュームLBAを解放するが、動作は、計算処理的に負荷が高く、通常のI/O動作の休止を引き起こす。ガベージ・コレクション動作は、LSAにおいて閾値数の論理ブロックを占有するか、ホールの数が、指定の閾値を越えて増加したとき、トリガされ得る。ガベージ・コレクション動作中、論理LBAマップ内の位置が連続的になるように、論理および物理LBAアドレスを変更することができる。さらなる解放された論理LBA位置が、LSAまたはストレージ・コントローラによって使用可能になり得るように、LSAポインタを更新することができる。ガベージ・コレクション動作が使用されるか、より頻繁になると、ストレージ・システムに対するガベージ・コレクション動作のインパクトが増加する。
ブロック・ストレージ・システムは、フラッシュ・コピーなどのポイント・イン・タイム・データ・コピー機能を使用して、ストレージ・ユニット内にデータのフル・ボリューム・コピーを作成することができる。フラッシュ・コピーは、ソース・ボリュームとターゲット・ボリュームとの間の関係を作成する。また、フラッシュ・コピー動作は、ソース・ボリュームのビットマップを作成する。関係およびビットマップを作成すると、データが物理的にコピーされたかのように、ターゲット・ボリュームにアクセスすることができる。同様に、バックグラウンド処理が、ソース・ボリュームからターゲット・ボリュームにトラックをコピーすることができる。ターゲット、またはフラッシュ・コピー動作によって生成したコピーは、ソース・ボリュームのポイント・イン・タイム・コピーを生成し、ソース・ボリュームとターゲット・ボリュームの両方が、読み書き動作を受けることが可能である。いくつかの事例では、新しいデータがソース・ボリュームに書き込まれることになるときに、フラッシュ・コピーとしてターゲット・ボリュームを生成することができる。このような事例では、時間Tにおけるソース・ボリュームのデータは、T0データとしてターゲット位置にコピーすることができる。ソース・ボリュームに書き込まれることになるデータは、T1データとして書き込むことができる。T1データを書き込むと、選択したI/O位置のビットマップを更新することができる。このように、ソース・ディスクに書込みを発行するときに、実際のデータをコピーしつつ、ボリュームの即時コピーを作成する。この動作は、コピー・オン・ライト(COW)動作と理解することができる。
ログ構造化アレイでは、ストレージ・ベースのスナップショットは、COW動作を使用して、ストレージ仮想化において構成することができる。書込みI/O動作をストレージ・システムに送るとき、論理ボリューム・レベルLBAの位置を、仮想化マップ内で識別する。既存のフラッシュ・コピー関係を解析することができ、データ移動判定を、仮想化エンジンまたはストレージ・コントローラによって行うことができる。書込みI/O動作をソース・ボリュームが受け取り、以前のフラッシュ・コピーが確立されていなかったとき、データをターゲット・ディスクに移動させる。次に、ホストI/O動作を、ソース・ディスクに書き込むことができる。この事例では、1つずつLSAポインタを増分させる、ソース・ボリュームからターゲット・ボリュームへの移動から、1つの内部I/O動作が生成される。また、内部I/O動作は、LSAにホールを作成する。動作が完了した場合、ホスト書込み動作を、最新のLSAポインタ位置に保存する。この内部移動が、LSAにおけるホールになる。ソース・ディスクが書込み指向である場合、LSAにホールの数が増加し、ガベージ・コレクション動作をトリガすることがある。ガベージ・コレクション動作を繰り返すと、ガベージ・コレクション動作を処理している間、ホスト・アプリケーションに性能問題および遅延を生じることがある。
本開示の実施形態は、LSAにおけるCOWデータおよび動作の効率的なハンドリング、ならびに、ストレージ・システムの同様の実装形態を可能にする。本開示のいくつかの実施形態は、ストレージ・システムのログ・ストレージ・アレイまたはボリューム内のホールまたは空きスペースをストレージ・システムが回避できるようにする。本開示は、層にして書込み動作からのデータ移動を可能にすることによって、ログ構造化アレイ内の空きスペースを減らすか、除くことができる。いくつかの実施形態では、本開示は、内部データ移動とホスト・アプリケーション書込み動作との区別を可能にする。本開示のいくつかの実施形態は、ストレージ・システム内の性能およびデータ管理効率を向上させるために、LSAアルゴリズムがCOW移動と書込みI/O動作を区別するメカニズムを可能にする。いくつかの実施形態では、本開示は、ストレージ管理システムにおけるログ構造化アレイおよびフラッシュ・コピー・サービス・モジュールの動作を可能にする方法およびシステムを提示する。本開示の実施形態は、COW動作時に、フラッシュ・コピーCOW動作、およびデータ・ブロックの内部移動に関する情報をストレージ・システムに提供することができる。いくつかの実施形態では、本開示は、インバウントおよびアウトバウンドのAPI実装形態のための、ストレージ管理システムにおける2つのモデル間の通信を可能にし、ストレージ・システムの機能モジュール間のコマンド交換を可能にする。
本明細書で説明する概念のいくつかの実施形態は、システムまたはコンピュータ・プログラム製品の形態をとってもよい。例えば、コンピュータ・プログラム製品は、コンピューティング・システムの1つまたは複数のプロセッサによって実行された場合、コンピュータ実装方法について上記で説明した動作をコンピューティング・システムに実行させるプログラム命令を格納することができる。さらなる例として、システムは、プロセッサおよびコンピュータ可読記憶媒体などの構成要素を備えることができる。コンピュータ可読記憶媒体は、システムの他の構成要素と相互作用して、本明細書で説明するコンピュータ実装方法の動作を含むプログラム命令をシステムに実行させることができる。本明細書では、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって、またはこれらと共に使用するための、プログラムの格納、通信、伝搬または移送のための手段を収めることができる任意の装置であってもよい。
ここで図1を参照して、実例のコンピューティング環境100のブロック図を示す。本開示は、実例のコンピューティング環境100内で実装することができる。いくつかの実施形態では、コンピューティング環境100は、以下で説明するコンピュータ・システム内に含めるか、コンピュータ・システムによって具現化することができる。コンピューティング環境100は、ストレージ管理システム102を含むことができる。ストレージ管理システム102は、ストレージ・コントローラ110、フラッシュ・コピー・マネージャ120、およびアレイ・コンポーネント130を備えることができる。ストレージ・コントローラ110は、1つまたは複数のストレージ・ボリュームについてのリクエストを受け取り、ストレージ管理システム102に関連付けられたディスクについて動作を協調させる。フラッシュ・コピー・マネージャ120は、ストレージ管理システム102に関連付けられたディスクについての仮想ストレージ・ボリュームに関する動作を実行する。アレイ・コンポーネント130は、ストレージ管理システム102に関連付けられたディスクのログ構造化アレイに関する動作を実行する。別個の構成要素で説明しているが、少なくともいくつかの実施形態では、構成要素を結合もしくは分割できるか、もしくは、本開示の範囲から逸脱することなく、さらなる構成要素を追加できるか、またはその両方であることを理解されたい。
ここで図2を参照して、コンピュータ実装方法200のフロー図を示す。コンピュータ実装方法200は、LSA環境におけるI/O動作を管理するための方法である。いくつかの実施形態では、コンピュータ実装方法200は、以下でより詳細に説明するような、コンピューティング環境100の1つまたは複数の構成要素によって実行することができる。
動作210において、ストレージ・コントローラ110は、ストレージ・ボリュームへの書込みリクエストを受け取る。いくつかの実施形態では、書込みリクエストは、データのセットを含む。ストレージ・ボリュームは、ストレージ管理システム102がアクセスできるか管理する、複数のストレージ・ボリューム内の個々のストレージ・ボリュームであってもよい。書込みリクエストは、ストレージ管理システム102に連結されたディスクのセットまたはストレージ・システムと相互作用するホストから受け取ることができる。いくつかの実施形態では、ホストは、ユーザが動作させ、ホストから離れたストレージ・システムまたはディスクのセットと相互作用するコンピューティング・デバイスであってもよい。例えば、ホストは、ストレージ・コントローラ110に通信ネットワークを介して書込みリクエストを伝送することができる。ストレージ・コントローラ110は、書込みリクエストを受け取って、クラウド・ベースのストレージ・システム内のボリュームに対して書込みリクエストを処理し、実装することができる。
動作220において、フラッシュ・コピー・マネージャ120は、書込みリクエストがターゲットにするストレージ・ボリュームについてのコピー・オン・ライト(COW)・ステータスを判定する。いくつかの実施形態では、フラッシュ・コピー・マネージャ120は、ストレージ・ボリュームがストレージ・システム内で有効にされたCOW機能を有していることを識別することによってCOWステータスを判定する。フラッシュ・コピー・マネージャは、ストレージ・ボリューム、ストレージ・ボリュームを収容するディスク、またはストレージ・ボリュームもしくはディスクがその一部であるストレージ・システムについての、1つまたは複数の構成ファイルに基づいて、ストレージ・ボリュームのCOWステータスを判定することができる。
動作230において、フラッシュ・コピー・マネージャ120は、ストレージ・ボリュームのターゲット範囲についてのデータのセットがターゲット位置にコピーされないと判定する。フラッシュ・コピー・マネージャ120は、フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、データのセットがコピーされないと判定することができる。ターゲット・マップは、ターゲット・ボリュームの指定のデータ位置内に格納されたデータを示すことができる。いくつかの事例では、ターゲット・マップは、所与の時間における、ボリューム(例えば、ソース・ボリューム)のフラッシュ・コピー内のデータを表す。例えば、ターゲット・ボリュームは、T0におけるターゲット・ボリュームであってもよい。
いくつかの実施形態では、フラッシュ・コピー・マネージャ120は、帯域外プロトコルを使用してアレイ・コンポーネント130と通信する。フラッシュ・コピー・マネージャ120は、スモール・コンピュータ・システム・インターフェース(SCSI)CBDなどの書込みコマンド記述ブロック(CBD)内の予備フィールドを使用して、アレイ・コンポーネント130と通信することができる。SCSI CBDは、コマンドを記述する情報のブロックであってもよい。各CBDは、合計6、10、12、もしくは16バイト、または任意の適切な可変長であってもよい。いくつかの事例では、フラッシュ・コピー・マネージャ120およびアレイ・コンポーネント130は、ストレージ管理システム102内の層として、帯域外プロトコルとCBD内の予備フィールドの両方を使用して通信する。フラッシュ・コピー・マネージャ120およびアレイ・コンポーネント130は、層またはユーザの他の任意の適切な独立したメカニズムにわたって情報をパスする。いくつかの実施形態では、1つのストレージ・システムから別のストレージ・システムに、ヒート・マップを通信することができる。ヒート・マップは、遠隔地へのアクセスをフェイル・オーバーすることができるリモート・コピーが、所与のストレージ・ボリューム、ディスク、またはSSD内の指定のデータを維持することを保証するために通信することができる。
動作240において、アレイ・コンポーネント130は、内部COW動作を実行するようにログ構造化アレイ(LSA)に命令する。内部COW動作は、ストレージ・ボリュームに対する次の入出力(I/O)動作中に、データのセットに対して実行することができる。いくつかの実施形態では、フラッシュ・コピー・マネージャ120は、LSAとして構成されたストレージ・プールに命令を伝送する。命令は、次のI/O動作が内部COW動作になることを示す。内部COW動作は、仮想ボリューム(例えば、ソース・ボリューム)に書込みリクエストのデータのセットを書き込むことができる。また、内部COW動作は、フラッシュ・コピー・ボリューム(例えば、ターゲット・ボリューム)として、データのセットを書き込む前に、仮想ボリュームのコピーを生成することができる。命令は、内部COW動作の後に実際のアプリケーション・ホスト書込みI/O動作が続くことを示すことができる。
動作250において、ストレージ・コントローラ110は、仮想ボリュームからフラッシュ・コピー・ボリュームにターゲット位置の内部ポインタを移動させる。いくつかの実施形態では、内部ポインタは、内部COW命令に基づいて移動する。このような事例では、内部COW命令は、内部ポインタを移動させるための、ストレージ・コントローラ110内のホール防止装置への信号として扱われる。データのセットがソース・ボリュームに書き込まれ、ターゲット・ボリュームがフラッシュ・コピーとして生成される実施形態では、ターゲット位置の内部ポインタは、ソース・ボリューム内の位置からターゲット・ボリューム内の位置に移動する。ターゲット・ボリュームまたはフラッシュ・コピー・ボリュームにターゲット位置の内部ポインタを移動させると、書込みリクエストのデータのセットが仮想ボリュームまたはソース・ボリュームに書き込まれることにより、LSAにおいてホールが発生するのを防ぐ。フラッシュ・コピー・ボリュームが確立され、内部ポインタが移動すると、書込みリクエストに関連付けられたLSAにおけるデータの古い方のバージョンは、古い方のソース論理LBAを示すフラッシュ・コピー・ボリュームに向けられたポインタに関連付けられることになる。
動作260において、アレイ・コンポーネント130は、LSAのビットマップを更新する。いくつかの実施形態では、ビットマップは、内部ポインタの変更に応答して更新される。内部ポインタが移動する場合、LSAのビットマップは、アレイ・コンポーネント130によって更新することができ、フラッシュ・コピーしたボリュームの間でボリューム・コピーを一致させるために、フラッシュ・コピー・マネージャ120に命令を送ることができる。ビットマップ更新が完了し、ボリューム・コピーを一致させると、ホスト・アプリケーションが通常通りに扱われ、LSAポインタを増分させ、循環バッファ内の次の位置にデータを保存することができる。このような事例では、書込みリクエストのデータのセットについての新しいポインタは、LSAにおける新しい位置のデータのセットに、仮想ボリュームまたはソース・ボリュームをリンクさせることができる。
COW動作の場合に、内部ポインタが移動し、新しいポインタが生成されると、物理ディスクへの実際のデータ・コピーは、必要ではない。フラッシュ・コピーの生成、COWの使用、およびポインタの移動は、物理的位置へのI/Oの移動を減らす。I/Oの移動の減少は、書込みリクエストを機能的に実行するのに必要な計算時間およびリソースを減らすことができる。I/Oの移動を制限すると、関連付けられたストレージ・システムの性能を向上させることができる。さらに、COWの使用、およびポインタの移動は、ログ構造化アレイ内のホールを最小化するので、LSAにおけるガベージ・コレクション動作の頻度を減少させる。また、ガベージ・コレクション動作の頻度を減少させると、SSDディスクの健康およびライフスパンを向上させることができる。
図3は、LSA環境におけるI/O動作を管理するためのコンピュータ実装方法300の一実施形態のフロー図を示す。方法300は、コンピューティング環境100によって、またはコンピューティング環境100内で実行することができる。いくつかの実施形態では、方法300は、方法200の1つまたは複数の動作を含むか、組み込む。
動作310において、ストレージ・コントローラ110は、書込みリクエストに関連付けられたストレージ・ボリュームに対する仮想ボリュームを検出する。仮想ボリュームは、ストレージ・ボリュームに書き込まれることになるデータのセットを収める書込みリクエストをストレージ・コントローラ110が受け取ることに応答して検出することができる。いくつかの実施形態では、ストレージ・コントローラ110は、フラッシュ・コピー・マネージャ120と協働して、仮想ボリュームを検出する。仮想ボリュームは、データ・ストレージのための物理ボリューム(例えば、ストレージ・ボリューム)に対するバッファまたはキャッシュであってもよい。
動作320において、ストレージ・コントローラ110は、ストレージ・ボリュームに対するフラッシュ・コピー・ボリュームを検出する。フラッシュ・コピーは、仮想ストレージ・ボリュームに対する所与の時点のコピーであってもよい。いくつかの実施形態では、フラッシュ・コピー・ボリュームは、仮想ボリュームの以前に生成したコピーである。フラッシュ・コピー・ボリュームは、指定の時間の仮想ボリューム内のデータの完全コピーを収めることができる。指定の時間は、書込みリクエストの受け取り前の任意の時間であってもよい。フラッシュ・コピー・ボリュームが検出されない場合、ストレージ・コントローラ110が仮想ボリュームを検出したとき、または、書込みリクエストを受け取ったときに、仮想ボリュームのフラッシュ・コピーを生成するように、フラッシュ・コピー・マネージャ120に命令することができる。いくつかの事例では、動作220および230の1つまたは複数に応答して、フラッシュ・コピー・ボリュームを検出または生成する。
動作330において、アレイ・コンポーネント130は、データのセットを仮想ボリュームに上書きする。いくつかの実施形態では、データのセットは、仮想ボリューム内の事前の値のセットを置き換える。いくつかの事例では、アレイ・コンポーネント130は、仮想ボリュームの論理LBAマップにデータのセットを挿入することによって、仮想ボリューム内のデータのセットを上書きする。
動作340において、ストレージ・コントローラ110は、仮想ボリュームからフラッシュ・コピー・ボリュームにターゲット位置の第1の内部ポインタを移動させる。いくつかの実施形態では、第1の内部ポインタは、内部COW命令に基づいて移動する。第1の内部ポインタは、動作250に関して説明したのと同様または同じ手法で移動させることができる。
動作350において、ストレージ・コントローラ110は、仮想ボリューム内のデータのセットに対する第2の内部ポインタを生成する。いくつかの実施形態では、第2の内部ポインタは、仮想ボリューム内のデータのセットから、ストレージ・ボリュームに対する物理ボリューム論理ブロック・アドレス(LBA)・マップ内の位置に指すために生成される。
動作360において、ストレージ・コントローラ110は、LSAにおける物理ボリュームLBAマップに対するビットマップ更新をトリガする。いくつかの実施形態では、ビットマップ更新は、第1の内部ポインタを移動し、第2の内部ポインタを生成することに基づいてトリガされる。
本開示の実施形態は、プログラム・コードの格納もしくは実行またはその両方にプラットフォームが適しているかにかかわらず、事実上任意のタイプのコンピュータと共に実装することができる。図4は、本明細書で開示する方法に関するプログラム・コードの実行、および、LSA環境におけるI/O動作の管理に適したコンピューティング・システム400(例えば、クラウド・コンピューティング・システム)を例として示す。
コンピューティング・システム400は、適切なコンピュータ・システムの1つの例に過ぎず、以上に記載される機能のいずれかの実装もしくは実行またはその両方をコンピュータ・システム400ができるどうかにかかわらず、本明細書で説明する本開示の実施形態の使用または機能の範囲について、いかなる限定も示唆することを意図するものではない。コンピュータ・システム400には、非常に多くの他の汎用または専用コンピューティング・システム環境または構成で動作する構成要素がある。コンピュータ・システム/サーバ400と共に使用するのに適し得る、よく知られたコンピューティング・システム、環境もしくは構成またはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、等を含むがこれらに限定されない。コンピュータ・システム/サーバ400は、コンピュータ・システム400によって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造、等を含むことができる。コンピュータ・システム/サーバ400は、通信ネットワークを通じてリンクしたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実践することができる。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモート両方のコンピュータ・システム・記憶媒体の中に位置してもよい。
図示のように、汎用コンピューティング・デバイスの形態のコンピュータ・システム/サーバ400を示す。コンピュータ・システム/サーバ400の構成要素は、1つまたは複数のプロセッサ402(例えば、処理ユニット)、システム・メモリ404(例えば、1つまたは複数のプロセッサに連結されたコンピュータ可読記憶媒体)、およびシステム・メモリ404を含む様々なシステム構成要素をプロセッサ402に連結するバス406を含むことができるがこれらに限定されない。バス406は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、バス構造のいくつかのタイプのいずれかの1つまたは複数を表す。例として、また限定することなく、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)・バス、マイクロ・チャネル・アーキテクチャ(MCA)・バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)・ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)・バスを含む。コンピュータ・システム/サーバ400は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ400がアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体および不揮発性媒体ならびに取外し可能媒体および取外し不能媒体の両方を含む。
システム・メモリ404は、ランダム・アクセス・メモリ(RAM)408もしくはキャッシュ・メモリ410またはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ400は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・記憶媒体をさらに含むことができる。ほんの一例として、ストレージ・システム412は、取外し不能な不揮発性磁気媒体(図示せず、また典型的には、「ハード・ドライブ」と呼ばれる)から、または取外し不能な不揮発性磁気媒体へ、読み書きするために提供することができる。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー・ディスク」)から、および取外し可能な不揮発性磁気ディスクへ、読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの、取外し可能な不揮発性光ディスクから、または取外し可能な不揮発性光ディスクへ、読み書きするための光ディスク・ドライブを提供することができる。このような事例では、1つまたは複数のデータ媒体インターフェースによってバス406にそれぞれを接続することができる。以下でさらに描写し、説明するように、システム・メモリ404は、本開示の実施形態の機能を実行するように構成された、プログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データだけでなく、プログラム・モジュール416のセット(少なくとも1つ)を有するプログラム/ユーティリティも、例として、また限定することなく、システム・メモリ404に格納することができる。プログラム・モジュールは、図1に示す、ストレージ・コントローラ110、フラッシュ・コピー・マネージャ120、およびアレイ・コンポーネント130の1つまたは複数を含むことができる。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそのいくつかの組み合わせのそれぞれは、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール416は、一般に、本明細書で説明するように、本開示の実施形態の機能もしくは方法論またはその両方を実行する。
また、コンピュータ・システム/サーバ400は、キーボード、ポインティング・デバイス、ディスプレイ420等などの1つもしくは複数の外部デバイス418、ユーザがコンピュータ・システム/サーバ400と対話することを可能にする1つもしくは複数のデバイス、もしくは、コンピュータ・システム/サーバ400が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、またはその組み合わせと通信することができる。このような通信は、入出力(I/O)インターフェース414を介して行うことができる。さらに、コンピュータ・システム/サーバ400は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)もしくはパブリック・ネットワーク(例えばインターネット)、またはその組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ422を介して通信することができる。描写するように、ネットワーク・アダプタ422は、コンピュータ・システム/サーバ400の他の構成要素と、バス406を介して通信することができる。図示していないが、コンピュータ・システム/サーバ400と共に、他のハードウェアもしくはソフトウェアまたはその両方の構成要素を使用できることを理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム等を含むがこれらに限定されない。
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載する教示の実装形態は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在知られているか、後で開発されるコンピューティング環境の他の任意のタイプと共に実装することができる。
クラウド・コンピューティングは、最低限の管理努力またはサービスのプロバイダとの対話により、迅速にプロビジョニングおよびリリースできる構成可能なコンピューティング・リソースの共用プール(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)への便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメントモデルを含むことができる。
サービス・モデルは、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)を含むことができる。SaaSでは、利用者に提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて、様々なクライアント・デバイスからアクセス可能である。利用者は、限定的なユーザ固有アプリケーション構成設定を例外とする可能性はあるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはことによると、個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わない。PaaSでは、利用者に提供される能力は、プロバイダがサポートするプログラミング言語およびツールを使用して作成される、利用者が作成または獲得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、デプロイしたアプリケーション、および場合によっては、アプリケーションをホストする環境構成に対する制御を有している。IaaSでは、利用者に提供される能力は、処理、ストレージ、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを利用者がデプロイし、動かすことができる他の基本的なコンピューティング・リソースをプロビジョニングすることである。利用者は、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、オペレーティング・システム、ストレージ、デプロイしたアプリケーション、および場合によっては、ネットワーキング構成要素(例えば、ホスト・ファイアウォール)の選択についての限定的な制御に対する制御を有している。
デプロイメントモデルは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、およびハイブリッド・クラウドを含むことができる。プライベート・クラウドでは、クラウド・インフラストラクチャは、組織のために単に運用される。クラウド・インフラストラクチャは、組織またはサード・パーティによって管理されてもよく、敷地内または敷地外に存在してもよい。コミュニティ・クラウドでは、クラウド・インフラストラクチャは、いくつかの編成によって共有され、懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮)を共有してきた固有のコミュニティをサポートする。クラウド・インフラストラクチャは、敷地内または敷地外に存在し得る組織またはサード・パーティによって管理されてもよい。パブリック・クラウドでは、クラウド・インフラストラクチャは、一般大衆または大規模業界団体が利用できるようにされ、クラウド・サービスを販売する組織によって所有される。ハイブリッド・クラウドでは、クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションの移植を可能にする標準または独自の技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって一緒に結びつけられた2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構造である。
クラウド・コンピューティング環境は、無国籍、疎結合モジュラリティ、および意味論的相互運用性に焦点を当てたサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを含むインフラストラクチャがある。
ここで図5を参照し、例示的なクラウド・コンピューティング環境50を描写する。図示のように、クラウド・コンピューティング環境50は、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、もしくは自動車コンピュータ・システム54Nまたはその組み合わせなどの、クラウド利用者によって使用されるローカル・コンピューティング・デバイスが通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。ノード10は、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組み合わせなどの、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、ローカル・コンピューティング・デバイス上のリソースをクラウド利用者が維持する必要がないサービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはその組み合わせを提供することができる。図5に示すコンピューティング・デバイス54A~54Nのタイプは、例示のみを意図すること、ならびに、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークもしくは(例えば、ウェブ・ブラウザを使用する)ネットワーク・アドレス可能接続またはその両方で、任意のタイプのコンピュータ化デバイスと通信できることが理解される。
ここで図6を参照し、クラウド・コンピューティング環境50(図5)によって提供される機能抽象化層のセットを示す。図6に示す構成要素、層、および機能は、例示のみを意図し、本開示の実施形態はこれらに限定されないことを予め理解されたい。描写するように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75という、仮想エンティティの例を提供できる抽象化層を提供する。
1つの例では、管理層80は、以下で説明する機能を提供することができる。リソースプロビジョニング81は、クラウド・コンピューティング環境内のタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの利用についての請求書作成またはインボイス作成を行う。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド利用者およびタスクの識別情報検証、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウド・コンピューティング・リソースの割当ておよび管理を行う。サービス・レベル契約(SLA)計画立案およびフルフィルメント85は、SLAに応じて、将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
ワークロード層90は、クラウド・コンピューティング環境を利用できる機能の例を提供する。この層から提供できるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ分析処理94、トランザクション処理95、ならびにストレージ管理処理96を含む。
クラウド・モデルは、オンデマンド・セルフ・サービス、ブロード・ネットワーク・アクセス、リソース・プーリング、迅速な伸縮性、および測定されるサービスを含む特性を含むことができる。オンデマンド・セルフ・サービスでは、クラウド利用者は、サービスのプロバイダとの人間対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどの、コンピューティング能力を一方的にプロビジョニングすることができる。ブロード・ネットワーク・アクセスでは、能力は、ネットワーク上で利用可能であり、ヘテロジニアスなシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準メカニズムを通じてアクセスされる。リソース・プーリングでは、プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用する複数の利用者にサービスを提供するためにプールされ、種々の物理および仮想リソースが、需要に従って動的に割当てられ、再割当てされる。利用者は、一般に、提供されるリソースの正確な位置についての制御または知識を有していないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を指定でき得るという点で、位置独立感がある。迅速な伸縮性では、能力は、素早くスケール・アウトするために、迅速かつ伸縮自在に、場合によっては自動的にプロビジョニングされ、素早くスケール・インするために、迅速にリリースされ得る。利用者にとって、プロビジョニングするために利用可能な能力は、しばしば、無制限のように見え、いつでも任意の量で購入することができる。測定されるサービスでは、クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象化レベルで計量能力を活用することによって、リソース使用を自動的に制御し、最適化する。リソース利用率は、監視、制御および報告することができ、利用されるサービスのプロバイダと利用者の双方に透明性をもたらす。
本開示の様々な実施形態の説明を例示のために提示してきたが、網羅的であること、または開示の実施形態に限定することを意図するものではない。説明した実施形態の範囲および趣旨から逸脱することなく、多くの修正および変更が、当業者に明らかになるであろう。本明細書で使用する専門用語は、実施形態の原理、実用的用途、もしくは、市場で見つかる技術に対する技術的改善を最も良く説明するように、または、本明細書で開示する実施形態を他の当業者が理解できるように、選ばれた。
本発明は、システム、方法もしくはコンピュータ・プログラム製品またはその組み合わせとして具現化することができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含むことができる。
コンピュータ可読記憶媒体は、伝搬媒体のための電子システム、磁気システム、光システム、電磁システム、赤外線システムまたは半導体システムであってもよい。コンピュータ可読媒体の例は、半導体式またはソリッド・ステート式メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定磁気ディスク、および光ディスクを含むことができる。光ディスクの現在の例は、コンパクト・ディスク-リード・オンリ・メモリ(CD-ROM)、コンパクト・ディスク-リード/ライト(CD-R/W)、DVD、およびブルーレイ-ディスクを含む。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納できる有形デバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組み合わせであってもよいがこれらに限定されない。コンピュータ可読記憶媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型のコンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、本質的に一過性の信号であると解釈されるべきではない。
本明細書で説明するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング・デバイス/処理デバイスに、または、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワークまたはその組み合わせといったネットワークを介して、外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバまたはその組み合わせを備えることができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体への格納のためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)、C++等などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でスタンド・アロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータおよび部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続することができ、または、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行うことができる。いくつかの実施形態では、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャートもしくはブロック図またはその両方を参照しながら本明細書で説明する。フローチャートもしくはブロック図またはその両方の各ブロック、ならびにフローチャートもしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するべく、機械を生み出すために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはその組み合わせに特定の手法で機能するよう指示することができるコンピュータ可読記憶媒体に格納することで、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実装する命令を含む製造品を、命令を格納したコンピュータ可読記憶媒体が備えるようにしてもよい。
コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または別のデバイスにロードして、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータ実装処理を生成することで、コンピュータ、他のプログラム可能装置または別のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するようにしてもよい。
図中のフローチャートもしくはブロック図またはその両方は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図中の各ブロックは、指定の論理機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表してよい。いくつかの代替的な実装形態では、ブロックに記す機能は、図に記す順序とは異なる順序で行われてもよい。例えば、連続して示す2つのブロックは、実際には、含まれる機能に応じて、実質的に同時に実行されてもよく、または、それらのブロックは、場合によっては、逆の順序で実行されてもよい。ブロック図もしくはフローチャートまたはその両方の各ブロック、および、ブロック図もしくはフローチャートまたはその両方におけるブロックの組み合わせは、指定の機能もしくは動作を実行するか、専用ハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェア・ベースのシステムにより実装できることにも留意されたい。
本明細書で使用する専門用語は、特定の実施形態のみを説明するためのものであり、本開示を限定することを意図するものではない。本明細書で使用する場合、「a」、「an」および「the」で示される単数形は、文脈から明確にそうでないと分からない限り、複数形も同様に含むことを意図している。用語「備える(comprise)」もしくは「備える(comprising)」またはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素もしくは構成要素またはその組み合わせの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素もしくはそのグループまたはその組み合わせの存在または追加を排除しないことがさらに理解されよう。
以下の特許請求の範囲における機能要素に加えて、全ての手段またはステップの対応する構造、材料、動作および同等物は、具体的に特許請求されるような、他の特許請求される要素と組み合わせて機能を実行するための任意の構造、材料または動作を含むことが意図されている。例示および説明のために本開示の説明を提示してきたが、網羅的であること、または開示された形態に本開示を限定することを意図するものではない。本開示の範囲から逸脱することなく、当業者には、多くの修正および変更が明らかになるであろう。実施形態は、本開示の原理、および実用的用途を説明するために、かつ、想定される特定の使用に適したような様々な修正を伴う様々な実施形態について本開示を他の当業者が理解できるように、選択および説明されている。
本開示の様々な実施形態の説明は、例示のために提示してきたが、網羅的であること、または開示の実施形態に限定することを意図するものではない。説明された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変更が当業者には明らかになるであろう。本明細書で使用した専門用語は、実施形態の原理、実用的用途、もしくは、市場で見つかる技術に対する技術的改善を説明するために、または、本明細書で開示された実施形態を他の当業者が理解できるように選ばれた。
100 コンピューティング環境
102 ストレージ管理システム
110 ストレージ・コントローラ
120 フラッシュ・コピー・マネージャ
130 アレイ・コンポーネント
400 コンピューティング・システム、コンピュータ・システム、コンピュータ・システム/サーバ
402 プロセッサ
404 システム・メモリ
406 バス
408 ランダム・アクセス・メモリ(RAM)
410 キャッシュ・メモリ
412 ストレージ・システム
414 入出力(I/O)インターフェース
416 プログラム・モジュール
418 外部デバイス
420 ディスプレイ
422 ネットワーク・アダプタ
10 クラウド・コンピューティング・ノード、ノード、コンピューティング・ノード
50 クラウド・コンピューティング環境
54A パーソナル・デジタル・アシスタント(PDA)、セルラー電話
54B デスクトップ・コンピュータ
54C ラップトップ・コンピュータ
54N 自動車コンピュータ・システム
60 ハードウェアおよびソフトウェア層
61 メインフレーム
62 RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ
63 サーバ
64 ブレード・サーバ
65 ストレージ・デバイス
66 ネットワークおよびネットワーキング構成要素
67 ネットワーク・アプリケーション・サーバ・ソフトウェア
68 データベース・ソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 オペレーティング・システム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 計量および価格設定
83 ユーザ・ポータル
84 サービス・レベル管理
85 サービス・レベル契約(SLA)計画立案およびフルフィルメント
90 ワークロード層
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想クラスルーム教育配信
94 データ分析処理
95 トランザクション処理
96 ストレージ管理処理
100 コンピューティング環境
102 ストレージ管理システム
110 ストレージ・コントローラ
120 フラッシュ・コピー・マネージャ
130 アレイ・コンポーネント
400 コンピューティング・システム、コンピュータ・システム、コンピュータ・システム/サーバ
402 プロセッサ
404 システム・メモリ
406 バス
408 ランダム・アクセス・メモリ(RAM)
410 キャッシュ・メモリ
412 ストレージ・システム
414 入出力(I/O)インターフェース
416 プログラム・モジュール
418 外部デバイス
420 ディスプレイ
422 ネットワーク・アダプタ
10 クラウド・コンピューティング・ノード、ノード、コンピューティング・ノード
50 クラウド・コンピューティング環境
54A パーソナル・デジタル・アシスタント(PDA)、セルラー電話
54B デスクトップ・コンピュータ
54C ラップトップ・コンピュータ
54N 自動車コンピュータ・システム
60 ハードウェアおよびソフトウェア層
61 メインフレーム
62 RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ
63 サーバ
64 ブレード・サーバ
65 ストレージ・デバイス
66 ネットワークおよびネットワーキング構成要素
67 ネットワーク・アプリケーション・サーバ・ソフトウェア
68 データベース・ソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 オペレーティング・システム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 計量および価格設定
83 ユーザ・ポータル
84 サービス・レベル管理
85 サービス・レベル契約(SLA)計画立案およびフルフィルメント
90 ワークロード層
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想クラスルーム教育配信
94 データ分析処理
95 トランザクション処理
96 ストレージ管理処理
Claims (20)
- コンピュータ実装方法であって、
ストレージ・コントローラによって、ストレージ・ボリュームの書込みリクエストを受け取る段階であって、前記書込みリクエストが、データのセットを含む、受け取る段階と、
フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、前記ストレージ・ボリュームのターゲット範囲についての前記データのセットがターゲット位置にコピーされない、と判定する段階と、
前記ストレージ・ボリュームに対する次の入出力(I/O)動作中に前記データのセットに対して内部コピー・オン・ライト(COW)を実行するようにログ構造化アレイ(LSA)に命令する段階と、
前記内部COWに基づいて、仮想ボリュームから前記フラッシュ・コピー・ボリュームに前記ターゲット位置の内部ポインタを移動させる段階と
を含む、方法。 - 前記内部ポインタの前記移動に応答して、前記LSAのビットマップを更新する段階
をさらに備える、
請求項1に記載の方法。 - 前記書込みリクエストがターゲットにする前記ストレージ・ボリュームについてのCOWステータスを判定する段階
をさらに備える、請求項1または2に記載の方法。 - 前記ストレージ・ボリュームに対する前記仮想ボリュームを検出する段階と、
前記ストレージ・ボリュームに対する前記フラッシュ・コピー・ボリュームを検出する段階と
をさらに備える、請求項1から3のいずれか一項に記載の方法。 - 前記仮想ボリュームに前記データのセットを上書きする段階であって、前記データのセットが、前記仮想ボリューム内の前の値のセットを置き換える、上書きする段階
をさらに備える、請求項4に記載の方法。 - 前記内部ポインタが、第1の内部ポインタであり、前記方法が、
前記ストレージ・ボリュームに対する物理ボリューム論理ブロック・アドレス(LBA)・マップ内の位置への、前記仮想ボリューム内の前記データのセットに対する第2の内部ポインタを生成する段階
をさらに備える、請求項5に記載の方法。 - 前記第1の内部ポインタを移動させる段階、および前記第2の内部ポインタを生成する段階に基づいて、前記LSAにおける前記物理ボリュームLBAマップに対するビットマップ更新をトリガする段階
をさらに備える、請求項6に記載の方法。 - システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに連結されたコンピュータ可読記憶媒体であって、前記1つまたは複数のプロセッサによって実行された場合、
ストレージ・コントローラによって、ストレージ・ボリュームの書込みリクエストを受け取ることであって、前記書込みリクエストが、データのセットを含む、受け取ること、
フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、前記ストレージ・ボリュームのターゲット範囲についての前記データのセットがターゲット位置にコピーされない、と判定すること、
前記ストレージ・ボリュームに対する次の入出力(I/O)動作中に前記データのセットに対して内部コピー・オン・ライト(COW)を実行するようにログ構造化アレイ(LSA)に命令することと、
前記内部COWに基づいて、仮想ボリュームから前記フラッシュ・コピー・ボリュームに前記ターゲット位置の内部ポインタを移動させることと
を含む動作を前記1つまたは複数のプロセッサに実行させるプログラム命令を格納する、コンピュータ可読記憶媒体と
を備える、システム。 - 前記動作が、
前記内部ポインタの前記移動に応答して、前記LSAのビットマップを更新すること
をさらに含む、
請求項8に記載のシステム。 - 前記動作が、
前記書込みリクエストがターゲットにする前記ストレージ・ボリュームについてのCOWステータスを判定すること
をさらに含む、
請求項8または9に記載のシステム。 - 前記動作が、
前記ストレージ・ボリュームに対する前記仮想ボリュームを検出することと、
前記ストレージ・ボリュームに対する前記フラッシュ・コピー・ボリュームを検出することと
をさらに含む、
請求項8から10のいずれか一項に記載のシステム。 - 前記動作が、
前記仮想ボリュームに前記データのセットを上書きすることであって、前記データのセットが、前記仮想ボリューム内の前の値のセットを置き換える、上書きすること
をさらに含む、
請求項11に記載のシステム。 - 前記内部ポインタが、第1の内部ポインタであり、前記動作が、
前記ストレージ・ボリュームに対する物理ボリューム論理ブロック・アドレス(LBA)・マップ内の位置への、前記仮想ボリューム内の前記データのセットに対する第2の内部ポインタを生成すること
をさらに含む、
請求項12に記載のシステム。 - 前記動作が、
前記第1の内部ポインタを移動させることと、前記第2の内部ポインタを生成することに基づいて、前記LSAにおける前記物理ボリュームLBAマップに対するビットマップ更新をトリガすることと
をさらに含む、
請求項13に記載のシステム。 - プロセッサに、
ストレージ・コントローラによって、ストレージ・ボリュームの書込みリクエストを受け取る手順であって、前記書込みリクエストが、データのセットを含む、手順と、
フラッシュ・コピー・ボリュームのターゲット・マップに基づいて、前記ストレージ・ボリュームのターゲット範囲についての前記データのセットがターゲット位置にコピーされない、と判定する手順と、
前記ストレージ・ボリュームに対する次の入出力(I/O)動作中に前記データのセットに対して内部コピー・オン・ライト(COW)を実行するようにログ構造化アレイ(LSA)に命令する手順と、
前記内部COWに基づいて、仮想ボリュームから前記フラッシュ・コピー・ボリュームに前記ターゲット位置の内部ポインタを移動させる手順と
を実行させるためのコンピュータ・プログラム。 - 前記プロセッサに、
前記内部ポインタの前記移動に応答して、前記LSAのビットマップを更新する手順
をさらに実行させる、
請求項15に記載のコンピュータ・プログラム。 - 前記プロセッサに、
前記書込みリクエストがターゲットにする前記ストレージ・ボリュームについてのCOWステータスを判定する手順
をさらに実行させる、
請求項15または16に記載のコンピュータ・プログラム。 - 前記プロセッサに、
前記ストレージ・ボリュームに対する前記仮想ボリュームを検出する手順と、
前記ストレージ・ボリュームに対する前記フラッシュ・コピー・ボリュームを検出する手順と
をさらに実行させる、
請求項15から17のいずれか一項に記載のコンピュータ・プログラム。 - 前記プロセッサに、
前記仮想ボリュームに前記データのセットを上書き手順ことであって、前記データのセットが、前記仮想ボリューム内の前の値のセットを置き換える、手順
をさらに実行させる、
請求項18に記載のコンピュータ・プログラム。 - 前記内部ポインタが、第1の内部ポインタであり、前記プロセッサに、
前記ストレージ・ボリュームに対する物理ボリューム論理ブロック・アドレス(LBA)・マップ内の位置への、前記仮想ボリューム内の前記データのセットに対する第2の内部ポインタを生成する手順と、
前記第1の内部ポインタを移動させることと、前記第2の内部ポインタを生成することに基づいて、前記LSAにおける前記物理ボリュームLBAマップに対するビットマップ更新をトリガする手順と
をさらに実行させる、
請求項19に記載のコンピュータ・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/108,068 | 2020-12-01 | ||
US17/108,068 US11467735B2 (en) | 2020-12-01 | 2020-12-01 | I/O operations in log structured arrays |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022087843A true JP2022087843A (ja) | 2022-06-13 |
Family
ID=79163602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021195198A Pending JP2022087843A (ja) | 2020-12-01 | 2021-12-01 | コンピュータ実装方法、システムおよびコンピュータ・プログラム(ログ構造化アレイにおけるi/o動作) |
Country Status (5)
Country | Link |
---|---|
US (1) | US11467735B2 (ja) |
JP (1) | JP2022087843A (ja) |
CN (1) | CN114579043A (ja) |
DE (1) | DE102021130358A1 (ja) |
GB (1) | GB2604974B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782641B2 (en) * | 2021-06-09 | 2023-10-10 | International Business Machines Corporation | Backend aware virtualized storage |
CN115826878B (zh) * | 2023-02-14 | 2023-05-16 | 浪潮电子信息产业股份有限公司 | 一种写时拷贝方法、装置、设备及计算机可读存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237021B1 (en) | 1998-09-25 | 2001-05-22 | Complex Data Technologies, Inc. | Method and apparatus for the efficient processing of data-intensive applications |
GB0030226D0 (en) | 2000-12-12 | 2001-01-24 | Ibm | A data storage system and a method of storing data including a multi-level cache |
GB0104469D0 (en) | 2001-02-23 | 2001-04-11 | Ibm | Log-structured array |
US7171516B2 (en) | 2003-09-29 | 2007-01-30 | International Business Machines Corporation | Increasing through-put of a storage controller by autonomically adjusting host delay |
US8935493B1 (en) | 2011-06-30 | 2015-01-13 | Emc Corporation | Performing data storage optimizations across multiple data storage systems |
US20140136884A1 (en) | 2012-11-15 | 2014-05-15 | Lsi Corporation | Read disturb handling for non-volatile solid state media |
US9904598B2 (en) * | 2015-04-21 | 2018-02-27 | Commvault Systems, Inc. | Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology |
US20170032005A1 (en) | 2015-07-31 | 2017-02-02 | Netapp, Inc. | Snapshot and/or clone copy-on-write |
US9940041B2 (en) * | 2015-09-21 | 2018-04-10 | International Business Machines Corporation | Copy-redirect on write |
US10514986B2 (en) | 2015-09-30 | 2019-12-24 | Commvault Systems, Inc. | Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities in a data storage management system |
US10146631B1 (en) | 2015-09-30 | 2018-12-04 | EMC IP Holding Company LLC | Incremental forever backups for exchange |
-
2020
- 2020-12-01 US US17/108,068 patent/US11467735B2/en active Active
-
2021
- 2021-11-17 GB GB2116550.1A patent/GB2604974B/en active Active
- 2021-11-19 DE DE102021130358.3A patent/DE102021130358A1/de active Granted
- 2021-11-29 CN CN202111430298.6A patent/CN114579043A/zh active Pending
- 2021-12-01 JP JP2021195198A patent/JP2022087843A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202116550D0 (en) | 2021-12-29 |
GB2604974B (en) | 2023-05-03 |
US11467735B2 (en) | 2022-10-11 |
GB2604974A (en) | 2022-09-21 |
DE102021130358A1 (de) | 2022-06-02 |
CN114579043A (zh) | 2022-06-03 |
US20220171537A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023286B2 (en) | Container based service management | |
US10701134B2 (en) | Transferring data between block and file storage systems | |
US20180081548A1 (en) | Storage device efficiency during data replication | |
US10977081B2 (en) | Context aware container management | |
US9934069B2 (en) | Managing provisioning of storage resources | |
CN110557425B (zh) | 对数据存档的方法、介质和系统 | |
JP2022087843A (ja) | コンピュータ実装方法、システムおよびコンピュータ・プログラム(ログ構造化アレイにおけるi/o動作) | |
KR20230057389A (ko) | 통합 스토리지 환경 내 스토리지 계층화 | |
US10838641B2 (en) | Defragmenting backup objects | |
JP2023553316A (ja) | ストレージシステム最適化を使用したアプリケーション性能の強化 | |
US11210010B2 (en) | Data migration in a multi-tiered storage system | |
KR20220132639A (ko) | 원격-저장 파일들의 예측 제공 | |
JP7431490B2 (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
US10140030B2 (en) | Dynamic modulation of cache memory | |
US11119655B2 (en) | Optimized performance through leveraging appropriate disk sectors for defragmentation in an erasure coded heterogeneous object storage cloud | |
US11287982B2 (en) | Associating data management policies to portions of data using connection information | |
AU2021325335B2 (en) | Minimizing delay while migrating direct memory access (dma) mapped pages | |
US11635918B2 (en) | Data migration and replication | |
WO2023036585A1 (en) | Data deduplication | |
JP2023537206A (ja) | メタデータベースのデータレプリケーション |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220518 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240516 |