JP6211631B2 - ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定 - Google Patents

ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定 Download PDF

Info

Publication number
JP6211631B2
JP6211631B2 JP2015559565A JP2015559565A JP6211631B2 JP 6211631 B2 JP6211631 B2 JP 6211631B2 JP 2015559565 A JP2015559565 A JP 2015559565A JP 2015559565 A JP2015559565 A JP 2015559565A JP 6211631 B2 JP6211631 B2 JP 6211631B2
Authority
JP
Japan
Prior art keywords
disk
calculated
disk group
buffer
logical volumes
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.)
Expired - Fee Related
Application number
JP2015559565A
Other languages
English (en)
Other versions
JP2016510918A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2016510918A publication Critical patent/JP2016510918A/ja
Application granted granted Critical
Publication of JP6211631B2 publication Critical patent/JP6211631B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • 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/065Replication 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、広くは、データ複製に関し、より具体的には、自動的にワークロードを特定して、複製バッファのサイズを設定することによる、効率的なボリューム複製に関するものである。
仮想データセンタ環境におけるデータ複製を目的としたボリュームの複製は、複雑で、エラーが発生しやすいプロセスである。それには、ストレージアレイ技術についての包括的な知識が必要となるだけではなく、仮想環境の複製に要する複製バッファのサイズ設定のための複雑な計算が必要となる。ユーザは、複製を要するボリュームを決定するために、仮想環境を物理ストレージアレイ環境に手動で対応付ける必要がある。ボリュームが特定されたら、そのワークロードを適切にリモートサイトに複製するのに要する複製バッファのサイズを設定するために、ボリューム固有のメトリクスによる複雑な計算が必要である。必要な複製バッファのサイズが計算されたら、複製バッファを生成し、ボリューム対に関連付けして、複製を開始する。
本発明の例示的な実施形態により、ある仮想データセンタから別の仮想データセンタへの複製の、自動識別、計算、構成、および作成を提供する。自動プロセスは、以下のことを含む3つの異なるフェーズに分けられる。
1.仮想マシンの識別、および仮想マシンから物理ボリュームへのマッピング。
2.複製要件を満たすための必要な複製バッファサイズの計算。
3.複製バッファとボリューム複製との間の関連付け、およびローカルとリモートの仮想データセンタ間の関連付けの、作成ならびに記録。
それぞれのフェーズは、新規の複製バッファの生成プロセス、または既存の複製バッファの変更プロセスのどちらかに対処する別々のサブプロセスに分けられる。
2つの実施形態について説明する。それらは、識別フェーズのみが異なる。第1の実施形態では、ユーザが定義した既存の物理ボリューム構成を維持する。第2の実施形態では、選択されたもののみに複製ボリュームの範囲を絞り込むための追加の識別および構成のステップを提供する。データを、同様のパフォーマンスの新規の結合ボリュームに移行させて、それらのボリュームのみを複製構成に含めることで、仮想データセンタ間の複製負荷を軽減する。
自動プロセスを実行するシステムは、仮想データセンタで見つかる仮想環境と物理環境の両方のインベントリを作成し、データストアなどの仮想リソースを論理ボリュームなどの物理リソースにマッピングする能力を有する。このインベントリおよびマッピングの能力によって、システムは、詳細な説明で概説する仮想リソースおよび物理リソースの必要な作成および移行を実行することが可能となる。本発明は、複製を要するボリュームを特定し、その複製負荷を処理するために必要な複製バッファサイズを計算して、その複製バッファを生成するために用いることができる。
本発明の一態様によれば、コンピュータは、メモリとコントローラとを備える。コントローラは、第1のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの1つ以上の仮想マシンを特定し;特定された1つ以上の仮想マシンによって使用される1つ以上の論理ボリュームであって、第1のストレージシステムにおける複数の論理ボリュームのうちの1つ以上の論理ボリュームを、複数の仮想マシンと複数の論理ボリュームとの間の第1の関係情報に基づいて特定し、ここで、第1の関係情報は該コントローラによって管理されるものであり;特定された1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、特定された1つ以上の論理ボリュームに使用されるワークロードを計算し、ここで、モニタされるワークロードの情報は該コントローラによって管理されるものであり;特定された1つ以上の論理ボリュームの計算されたワークロードに基づいて、1つ以上のリモートコピーペアのリモートコピー手順において第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用される第1のストレージシステムにおけるバッファ領域のサイズを計算し、ここで、1つ以上のリモートコピーペアのそれぞれは、第1のストレージシステムにおける特定された1つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての1つの論理ボリュームと、第2のストレージシステムにおけるセカンダリ論理ボリュームとしての別の1つの論理ボリュームとによって形成されており、このとき、特定された1つ以上の論理ボリュームのリモートコピー手順のために、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された1つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する、ように動作する。
一部の実施形態では、コントローラは、(i)計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第1のストレージシステムにおいて新規のバッファ領域を生成するか、または(ii)計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第1のストレージシステムにおいて既存のバッファ領域を変更する、ように動作する。コントローラは、(i)計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第2のストレージシステムにおいて新規のバッファ領域を生成するか、または(ii)計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第2のストレージシステムにおいて既存のバッファ領域を変更する、ように動作する。第1のストレージシステムは、オーバヘッドおよび停止時間を有する。バッファ領域のサイズは、計算されたワークロードを停止時間で乗算し、(1+オーバヘッド)で乗算したものとして計算される。
具体的な実施形態では、第1のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有する。各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有する。コントローラは、第1のストレージシステムにおいてバッファ領域によって使用されるべき1つ以上のディスク群を、未使用ディスク群から選択するように動作し、1つ以上のディスク群を選択することは、それらの未使用ディスク群を、ディスク群レイアウトによって編成することと;各々のディスク群レイアウトについて、計算されたワークロードよりも高いトータルディスク群スループットを有するとともにバッファ領域の計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することで、候補ディスク群のリストを1つ以上作成することと;候補ディスク群の特定された1つ以上のリストから、最高のトータルディスク群スループットを有する候補ディスク群リストを選択することと;候補ディスク群の選択されたリストで、バッファ領域のために必要なディスク群の数を決定することであって、(i)計算されたワークロードを、選択されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第1の計算値を取得し、(ii)バッファ領域の計算されたサイズを、選択されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第2の計算値を取得し、そして、(iii)候補ディスク群の選択されたリストで、バッファ領域のために必要なディスク群の数として、第1の計算値と第2の計算値から最大値を選択することにより、バッファ領域のために必要なディスク群の数を決定することと、を含む。
一部の実施形態では、バッファ領域の計算されたサイズは、保護するべき既存の1つ以上の仮想マシンのリストを有する既存のバッファ領域を変更するためのものである。コントローラは、既存の1つ以上の仮想マシンのリストから、それらの既存の1つ以上の仮想マシンのうち保護を維持するものを特定し;新たに保護されるべき1つ以上の仮想マシンをいずれも特定する、ように動作する。上記1つ以上の論理ボリュームが特定され、保護を維持すべき特定された1つ以上の仮想マシン、および新たに保護されるべき特定された1つ以上の仮想マシンによって使用される。第1のストレージシステムは、ディスク群を複数有する。バッファ領域の計算されたサイズは、そのバッファ領域の計算されたサイズよりも大きいサイズを有するとともに計算されたワークロードよりも高いトータルスループットを有する既存のバッファ領域を選択するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた1つ以上のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた1つ以上のディスク群の数との積に等しい。
具体的な実施形態では、第1のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有する。バッファ領域の計算されたサイズは、(i)バッファ領域の計算されたサイズを超えないサイズ、または、(ii)計算されたワークロードを超えないトータルスループット、を有する既存のバッファ領域を変更するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた1つ以上の既存のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた1つ以上の既存のディスク群の数との積に等しい。コントローラは、第1のストレージシステムにおいて既存のバッファ領域に追加されるべき1つ以上のディスク群を、未使用ディスク群から選択するように動作する。
一部の実施形態では、各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有する。その既存のバッファ領域内の上記1つ以上の既存のディスク群は、ある既存のディスク群レイアウトを有する。第1のストレージシステムにおいて既存のバッファ領域に追加されるべき1つ以上のディスク群を選択することは、それらの未使用ディスク群を、ディスク群レイアウトによって編成することと;その既存のディスク群レイアウトと同じディスク群レイアウトを有する未使用ディスク群から、候補ディスク群のリストを特定することであって、その既存のディスク群に追加されることで、計算されたワークロードよりも高いトータルディスク群スループットを有するとともにバッファ領域の計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することと;候補ディスク群の特定されたリストで、既存のバッファ領域に追加するために必要なディスク群の数を決定することであって、(i)計算されたワークロードを、その既存のディスク群に追加されたときの特定されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第1の計算値を取得し、(ii)バッファ領域の計算されたサイズを、その既存のディスク群に追加されたときの特定されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第2の計算値を取得し、そして、(iii)候補ディスク群の特定されたリストで、既存のバッファ領域に追加するために必要なディスク群の数として、第1の計算値と第2の計算値から最大値を選択することにより、既存のバッファ領域に追加するために必要なディスク群の数を決定することと、を含む。
具体的な実施形態では、第1のストレージシステムは、ディスク群を複数有する。第1のストレージシステムにおいて、第1の関係情報に基づいて複数の論理ボリュームが特定される。コントローラは、第1のストレージシステムにおいて特定された論理ボリュームを格納するディスク群を特定し;第1のストレージシステムにおいて特定された論理ボリュームのデータをすべて格納するための、特定されたディスク群の各々のために準備すべきスペースの総容量を計算し;特定されたディスク群の各々のために準備すべきスペースの計算された総容量に基づいて、単一の論理ボリュームを作成し;特定された論理ボリュームの代わりに、作成された単一の論理ボリュームを使用して、ワークロードおよびバッファ領域のサイズを計算する、ように機能する。
一部の実施形態では、コントローラは、計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第1のストレージシステムにおいてバッファ領域を生成し;複数の仮想マシンと複数の論理ボリュームとの間の第1の関係を更新し;第1のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの1つ以上の新規の仮想マシンを特定し、ここで、1つ以上の新規の仮想マシンは、前に特定された保護されるべき1つ以上の仮想マシンとは異なるものであり;特定された1つ以上の新規の仮想マシンによって使用される1つ以上の新規の論理ボリュームを、第1のストレージシステムにおける複数の論理ボリュームのうちの複数の新規ボリュームを、複数の仮想マシンと複数の論理ボリュームとの間の第1の関係情報に基づいて特定し;第1のストレージシステムにおける特定された新規の論理ボリュームを格納するディスク群を特定し;第1のストレージシステムにおける特定された新規の論理ボリュームのデータをすべて格納するための、特定されたディスク群の各々のために準備すべき新規のスペースの総容量を計算し;特定された保護されるべき1つ以上の新規の仮想マシンに基づいて、非保護にする必要がある仮想マシンをいずれも削除すること、および新たに保護される必要がある仮想マシンをいずれも追加することを含む、前に作成された単一の論理ボリュームを変更することによって、特定されたディスク群の各々のために準備すべき新規のスペースの計算された総容量に基づいて、新規の単一の論理ボリュームを作成し;新規の単一の論理ボリュームについてモニタされるワークロードの情報に基づいて、新規の単一の論理ボリュームに使用される新規のワークロードを計算し;1つ以上のリモートコピーペアのリモートコピー手順において、第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用される、第1のストレージシステムにおける新規のバッファ領域の新たなサイズを、新規の単一の論理ボリュームの計算された新規のワークロードに基づいて計算し、このとき、新規の単一の論理ボリュームのリモートコピー手順のために、計算された新たなサイズ以上のサイズを有する新規のバッファ領域を用いることで、特定された1つ以上の新規の仮想マシンの保護を管理することが可能であるように、新規のバッファ領域の新たなサイズを計算し;計算された新規のワークロードおよび新規のバッファ領域の計算された新たなサイズに基づいて、新規のバッファ領域を生成するために、前に生成されたバッファ領域を変更する、ように動作する。
本発明の別の態様は、第1のストレージシステムと、第2のストレージシステムと、管理コンピュータと、を備えるシステムに関する。管理コンピュータは、メモリとコントローラとを有する。コントローラは、第1のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの1つ以上の仮想マシンを特定し;特定された1つ以上の仮想マシンによって使用される1つ以上の論理ボリュームであって、第1のストレージシステムにおける複数の論理ボリュームのうちの1つ以上の論理ボリュームを、複数の仮想マシンと複数の論理ボリュームとの間の第1の関係情報に基づいて特定し、ここで、第1の関係情報は該コントローラによって管理されるものであり;特定された1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、特定された1つ以上の論理ボリュームに使用されるワークロードを計算し、ここで、モニタされるワークロードの情報は該コントローラによって管理されるものであり;特定された1つ以上の論理ボリュームの計算されたワークロードに基づいて、1つ以上のリモートコピーペアのリモートコピー手順において第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用される第1のストレージシステムにおけるバッファ領域のサイズを計算し、ここで、1つ以上のリモートコピーペアのそれぞれは、第1のストレージシステムにおける特定された1つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての1つの論理ボリュームと、第2のストレージシステムにおけるセカンダリ論理ボリュームとしての別の1つの論理ボリュームとによって形成されており、このとき、特定された1つ以上の論理ボリュームのリモートコピー手順のために、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された1つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する、ように動作する。
本発明の別の態様は、複製を管理するデータプロセッサを制御するための複数の命令を格納したコンピュータ可読記憶媒体に関する。複数の命令は、第1のストレージシステムにおいて保護されるべき複数の仮想マシンのついの1つ以上の仮想マシンを、データプロセッサに特定させる命令と;特定された1つ以上の仮想マシンによって使用される1つ以上の論理ボリュームであって、第1のストレージシステムにおける複数の論理ボリュームのうちの1つ以上の論理ボリュームを、コントローラによって管理される第1の関係情報であって、複数の仮想マシンと複数の論理ボリュームとの間の第1の関係情報に基づいて、データプロセッサに特定させる命令と;コントローラによって管理されるワークロードのモニタ情報であって、特定された1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、特定された1つ以上の論理ボリュームに使用されるワークロードを、データプロセッサに計算させる命令と;
特定された1つ以上の論理ボリュームの計算されたワークロードに基づいて、1つ以上のリモートコピーペアのリモートコピー手順において第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用される第1のストレージシステムにおけるバッファ領域のサイズを、データプロセッサに計算させる命令であって、1つ以上のリモートコピーペアのそれぞれは、第1のストレージシステムにおける特定された1つ以上の論理ボリュームのうちの1つの論理ボリュームをプライマリ論理ボリュームとして、第2のストレージシステムにおける別の1つの論理ボリュームをセカンダリ論理ボリュームとして形成されており、このとき、特定された1つ以上の論理ボリュームのリモートコピー手順のために、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された1つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算させる命令と、を含む。
本発明のこれらおよび他の特徴ならびに効果は、以下の具体的な実施形態についての詳細な説明を参照することで、当業者に明らかになるであろう。
本発明の第1の実施形態により、発明の方法ならびに装置を適用することができるシステムのハードウェア構成の一例を示している。 図1の管理コンピュータ内のメモリの一例を示している。 本発明の第1の実施形態により、新規の複製バッファの生成において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。 VM(仮想マシン)複製リスト・テーブルの一例を示している。 第1の実施形態により、図3のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。 新規の複製バッファ生成のための、VMからボリュームへのマッピング・テーブルの一例を示している。 第1の実施形態による新規の複製バッファ生成のための、論理ボリューム複製リスト・テーブルの一例を示している。 第1の実施形態により、既存の複製バッファの変更において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。 VM保護フラグ・テーブルの一例を示している。 第1の実施形態により、図8のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。 既存の複製バッファ変更のための、VMからボリュームへのマッピング・テーブルの一例を示している。 第1の実施形態による既存の複製バッファ変更のための、論理ボリューム複製リスト・テーブルの一例を示している。 ワークロードを計算するプロセスを示すフロー図の一例を示している。 3つのタイプのワークロード・メトリクスの間の関係を示している。 計算されたワークロード値の一例を示している。 図13から計算されたワークロード値に基づいて、複製バッファサイズを計算するプロセスを示すフロー図の一例を示している。 計算された複製バッファ最小サイズ値の一例を示している。 複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。 未使用ローカルディスク群のテーブル(ローカルサイト)の一例を示している。 未使用リモートディスク群のテーブル(リモートサイト)の一例を示している。 第2の実施形態による既存の複製バッファ変更のための、VMから新規の論理ボリュームへのマッピング・テーブルの一例を示している。 第2の実施形態による既存の複製バッファ変更のための、論理ボリューム複製リスト・テーブルの一例を示している。 複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。 既存の複製バッファ内のローカルディスク群のテーブルの一例を示している。 既存の複製バッファ内のリモートディスク群のテーブルの一例を示している。 新規の複製バッファ生成のために必要なディスク群を計算する下位プロセスを示すフロー図の一例を示している。 リモートディスク群テーブルの一例を示している。 ローカルディスク群テーブルの一例を示している。 必要なディスク群を計算するステップを完全に経た後の、適合スループットフラグ欄および適合サイズフラグ欄を有するリモートディスク群テーブルの一例を示している。 必要なディスク群を計算するステップを完全に経た後の、適合スループットフラグ欄および適合サイズフラグ欄を有するローカルディスク群テーブルの一例を示している。 複製バッファの基準を満たすリモートディスク群のテーブルの一例を示している。 複製バッファの基準を満たすローカルディスク群のテーブルの一例を示している。 図26〜28の、必要なディスク群を計算する下位プロセスの出力としての、バッファ用リモートディスク群のテーブルの一例を示している。 図26〜28の、必要なディスク群を計算する下位プロセスの出力としての、バッファ用ローカルディスク群のテーブルの一例を示している。 既存の複製バッファ変更のために必要な変更ディスク群を計算する下位プロセスを示すフロー図の一例を示している。 図33および34の、必要な変更ディスク群を計算する下位プロセスの出力としてしての、複製バッファ用リモートディスク群のテーブルの一例である。 図33および34の、必要な変更ディスク群を計算する下位プロセスの出力としての、複製バッファ用ローカルディスク群のテーブルの一例である。 新規の複製バッファを生成するプロセスを示すフロー図の一例を示している。 ローカルからリモートへのボリュームのマッピング・テーブルの一例を示している。 ローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルの一例を示している。 既存の複製バッファを変更するプロセスを示すフロー図の一例を示している。 本発明の第2の実施形態による、複数の論理ボリュームから、後にリモートシステムに複製される1つ以上の統合された論理ボリュームへの、仮想ボリュームの移動および移行を示している。 第2の実施形態により、本発明の方法ならびに装置を適用することができるシステムのハードウェア構成の一例を示している。 第2の実施形態により、図3のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。 第2の実施形態による新規の複製バッファ生成のための、VMから新規の論理ボリュームへのマッピング・テーブルの一例を示している。 第2の実施形態による新規の複製バッファ生成のための、論理ボリューム複製リスト・テーブルの一例を示している。 第2の実施形態により、図8のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。
本発明の以下の詳細な説明では、本開示の一部をなす添付の図面を参照し、それらの図面に、限定するものではない実例として、本発明を実施することができる例示的な実施形態を示している。図面では、本質的に類似したコンポーネントは、いくつかの図面にわたって同様の符号で示している。また、詳細な説明では、以下に記載するような、さらには図面に示すような、種々の例示的な実施形態を提示しているが、本発明は、本明細書で記載および図示される実施形態に限定されるものではなく、当業者に周知であるような、または周知となるような、他の実施形態に拡張することができるということに留意すべきである。本明細書における「一実施形態」、「本実施形態」、または「これらの実施形態」という表現は、その実施形態に関連して記載される特定の機能、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味し、これらの表現が本明細書の様々な箇所に記載されていても、必ずしもそれらがすべて同じ実施形態を指しているとは限らない。また、本発明についての完全な理解を与えるため、様々な具体的詳細が以下の詳細な説明において記載される。しかしながら、これら特定の詳細は、すべてが本発明を実施するために必要とは限らないことは、当業者には明らかであろう。他の状況では、本発明を不必要に不明瞭にすることがないよう、周知の構造、材料、回路、プロセス、およびインタフェースについては詳細に記載しておらず、さらに/または、それらをブロック図の形式で示している場合がある。
また、以下の詳細な説明の一部は、コンピュータにおける演算のアルゴリズムおよび記号表現によって提示される。これらのアルゴリズム記述および記号表現は、データ処理技術の当業者が、自身の技術革新の本質を他の当業者に最も効果的に伝えるために用いる手段である。アルゴリズムは、所望の最終状態または結果に至る一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を得るための具体的な数量の物理的操作を必要とする。通常、これらの数量は、必ずしもではないが、記憶、伝達、結合、比較、およびその他の操作が可能な電気信号もしくは磁気信号または命令の形をとるものである。これらの信号は、ビット、値、要素、記号、文字、項、番号、命令などとして参照することが、一般的に使用されているという主な理由で、時として好都合であることが実証されている。しかしながら、留意すべきことは、これらおよび類似の表現はすべて、適切な物理量に関連付けられるべきであり、それらの数量に適用される単なる便宜的なラベルにすぎないということである。別段の規定がある場合を除き、以下の説明から明らかなように、本明細書全体を通して「処理する」、「演算する」、「計算する」、「判断する」、「表示する」などのような用語を使用する解説は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)な量として表されるデータを、コンピュータシステムのメモリもしくはレジスタ内または他の情報記憶、伝達、もしくは表示装置内で同様に物理量として表される他のデータに操作および変換する、コンピュータシステムまたは他の情報処理装置のアクションおよびプロセスを含み得るものと理解される。
本発明は、さらに、本明細書に記載のオペレーションを実行するための装置に関する。この装置は、所要の目的のために専用に構築することができ、または1つ以上のコンピュータプログラムにより選択的にアクティブ化または再構成される1つ以上の汎用コンピュータを含むことができる。かかるコンピュータプログラムは、限定するものではないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイスおよびドライブ、または電子情報を保存するのに適した他の任意のタイプの媒体など、非一時的媒体を含むコンピュータ可読記憶媒体に保存することができる。本明細書で提示するアルゴリズムならびに表示は、本来、特定のコンピュータまたは他の装置に関連したものではない。種々の汎用システムを、本明細書に記載の教示によるプログラムおよびモジュールと共に用いることができ、または所望の方法ステップを実行するために、より特化した装置を構築するほうが適当であることが実証される場合がある。また、本発明は、いずれかの特定のプログラミング言語に準拠して説明されるものではない。当然のことながら、本明細書に記載の発明の教示を実施するために、様々なプログラミング言語を用いることができる。プログラミング言語(複数の場合もある)による命令は、例えば中央処理装置(CPU)、プロセッサ、またはコントローラである1つ以上の処理装置で実行することができる。
さらに詳細に以下で説明する本発明の例示的な実施形態により、自動的にワークロードを特定し、複製バッファのサイズを設定することによる、効率的なボリューム複製のための装置、方法、およびコンピュータプログラムを提供する。
I.実施形態1
第1の実施形態では、ローカルサイトからリモートロケーションに複製するべき既存のボリュームのセットを識別すること、そのボリュームセットに必要な複製バッファを計算すること、および選択されたボリュームと複製バッファとの間の関係を確立すること、について提示する。第1の実施形態は、ボリュームの識別、複製バッファサイズの計算、および選択されたボリュームと複製バッファとの間の複製関係の確立という、3つのフェーズに分けられる。各フェーズは、複製バッファの生成または変更に基づく別々のオペレーションに分けられる。
図1は、本発明の方法ならびに装置を適用することができるシステムのハードウェア構成の一例を示している。図1に、ローカルサイトのローカルデータセンタと、リモートサイトのリモートデータセンタと、を示している。それぞれのデータセンタは、ホストコンピュータとストレージサブシステムとを備える。各々のホストコンピュータは、コントローラと、メモリと、ストレージと、を有する。ローカルデータセンタは、さらに、2つのホストコンピュータからの一群の仮想マシン(VM)および仮想ボリューム(VV)を含んでいる。一般的には、データセンタ内に複数の群があり得る。各々のストレージサブシステムは、ストレージアレイと複製バッファとを有し、これらは、1つ以上の論理ボリューム(LV)を対応する仮想ボリューム(VV)と共にそれぞれ含むディスク群(DG)を格納している。ストレージサブシステムは、ホストコンピュータのための記憶領域として、複数の論理ボリュームを提供する。ホストコンピュータは、これらの論理ボリュームの識別子を用いて、ストレージサブシステムからデータを読み出したり、またはストレージサブシステムにデータを書き込んだりする。論理ボリュームの識別子は、論理ユニット番号(LUN)と呼ばれる。論理ボリュームは、単一の物理ストレージデバイスまたは複数のストレージデバイスに含まれ得る。同様に、複数の論理ボリュームが、単一の物理ストレージデバイスに関連付けられることがある。ストレージコントローラ、メモリ、ストレージディスク、インタフェースなどのさらなるコンポーネントは、省略している。
図1では、ローカルデータセンタおよびリモートデータセンタの外部の管理コンピュータによって、効率的なボリューム複製のための自動プロセスを制御する。(ホストコンピュータとしての)管理コンピュータは、マネージャ(管理コントローラ)と、メモリと、ストレージと、を有する。管理コンピュータのローカルストレージは、プロセスのフェーズ間で記憶されるチャートを含む管理データを保存する。ストレージは、さらに、リカバリ目的で、リブート時にインメモリのチャートのコピーを保持する。マネージャのローカルコントローラは、マネージャプロセスとローカルハイパーバイザ環境との統合を担う。コントローラは、さらに、インベントリ情報を要求する際、ならびに複製の識別、計算、確立のために必要な各種オブジェクトの作成、変更、または削除をストレージアレイに指示する際の、ストレージアレイへの問い合わせを担う。
別の実施形態では、管理コンピュータの管理機能を、いずれかのデータセンタ(一般的には、ローカルデータセンタ)で実行することができ、外部の管理コンピュータを省くことができる。
図2は、図1の管理コンピュータ内のメモリの一例を示している。メモリは、VMおよびボリュームの識別モジュールと、複製バッファサイズ計算モジュールと、複製バッファ生成モジュールと、新規の複製バッファ生成のためのVMからボリュームへのマッピング・テーブル(図6)と、新規の複製バッファ生成のための論理ボリューム複製リスト・テーブル(図7または図51)と、VM保護フラグ・テーブル(図9)と、既存の複製バッファ変更のためのVMからボリュームへのマッピング・テーブル(図11)と、既存の複製バッファ変更のための論理ボリューム複製リスト・テーブル(図12または図22)と、計算されたワークロード値(図15)と、計算された複製バッファ最小サイズ値(図17)と、未使用ローカルディスク群のテーブル(図19)と、未使用リモートディスク群のテーブル(図20)と、既存の複製バッファ内のローカルディスク群のテーブル(図24)と、既存の複製バッファ内のリモートディスク群のテーブル(図25)と、リモートディスク群テーブル(図29)と、ローカルディスク群テーブル(図29A)と、適合スループットフラグ欄および適合サイズフラグ欄を有するリモートディスク群テーブル(図30)と、適合スループットフラグ欄および適合サイズフラグ欄を有するローカルディスク群テーブル(図30A)と、複製バッファの基準を満たすリモートディスク群のテーブル(図31)と、複製バッファの基準を満たすローカルディスク群のテーブル(図31A)と、必要なディスク群を計算する下位プロセスの出力としてのバッファ用リモートディスク群のテーブル(図32)と、必要なディスク群を計算する下位プロセスの出力としてのバッファ用ローカルディスク群のテーブル(図32A)と、必要な変更ディスク群を計算する下位プロセスの出力としてしてのバッファ用リモートディスク群のテーブル(図35)と、必要な変更ディスク群を計算する下位プロセスの出力としてのバッファ用ローカルディスク群のテーブル(図35A)と、ローカルからリモートへのボリュームのマッピング・テーブル(図39)と、ローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブル(図40)と、新規の複製バッファ生成のためのVMから新規の論理ボリュームへのマッピング・テーブル(図50)と、既存の複製バッファ変更のためのVMから新規の論理ボリュームへのマッピング・テーブル(図21)と、を保存する。
I.A フェーズ1:識別
フェーズ1の仮想マシンおよび物理ボリュームの識別プロセスは、VMおよびボリュームの識別モジュール(例えば、プログラム)によって実行される。
I.A.1 新規の複製バッファの生成
図3は、本発明の第1の実施形態により、新規の複製バッファの生成において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。プロセスは、ステップ100で、ユーザによって選択される2つの選択機構の選択を提示する。一方の選択機構によれば、ステップ101で、ハイパーバイザを介して仮想マシン(VM)群のリストを集成し、ステップ102で、どの群を複製に使用すべきか選択を行う。選択された仮想マシン群は、ステップ104で、ユーザに提示される。もう一方の選択機構によれば、ステップ103で、ハイパーバイザを介して全ての仮想マシンのリストを集成し、ステップ104で、そのリストをユーザに提示する。ステップ104で、ユーザは、ステップ102で選択された群またはステップ103で取得されたリストのいずれかから、複製/保護するべき仮想マシンを選択することができる。ステップ105で、プログラムにより、複製するべき仮想マシンを列挙した図4に示すVM複製リスト・テーブルを作成する。
図5は、第1の実施形態により、図3のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。ステップ106で、プログラムにより、図4のVM複製リスト・テーブルから、複製するべき仮想マシンのリストを読み込む。ステップ107で、プログラムにより、選択された仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図6のVMからボリュームへのマッピング・テーブルにおいて、仮想マシン(VM)欄および仮想ボリューム欄を初期化する。ステップ108で、(例えば、ソフトウェアまたはモジュールの)プログラムによって、それらの仮想ボリュームが含まれる論理ボリュームを特定する。ステップ109で、プログラムにより、図6のVMからボリュームへのマッピング・テーブルにおいて、論理ボリューム欄を埋める。ステップ106で特定された全ての仮想マシンついて、プログラムは繰り返す。ステップ110で、プログラムにより、図6のVMからボリュームへのマッピング・テーブルの論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図7に示すような、第1の実施形態による新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルを作成し、これをステップ111で出力する。次に、プロセスは、新規の複製バッファ生成の場合のフェーズ2に進む。
I.A.2 既存の複製バッファの変更
図8は、第1の実施形態により、既存の複製バッファの変更において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。ステップ130で、プログラムにより、既存の複製バッファのリストを取得する。ステップ131で、どの複製バッファを変更すべきか選択を行う。ステップ132で、図9のVM保護フラグ・テーブルを、選択された複製バッファにより現在保護されている仮想マシンの内容によって初期化する。この情報は、その複製バッファが生成されたときの図3のステップ105の出力によって確認される。テーブルは、VM識別子のVMリスト欄と、true/falseの保護フラグ欄と、を含んでいる。特定のVM識別子に対応する保護フラグは、その仮想マシンが複製バッファにおいて保護されるべきであるかどうかを示している。図9のVM保護フラグ・テーブルは、その複製バッファに現在含まれている全ての仮想マシンに対して、trueに設定された保護フラグで初期化される。
図8を再び参照して、プログラムにより、ステップ133で、ユーザによって選択される2つの選択機構の選択を提示する。一方の選択機構によれば、ステップ134で、ハイパーバイザを介してVM群のリストを集成し、ステップ135で、どの群を複製に使用すべきか選択を行う。選択された仮想マシン群は、ステップ137で、ユーザに提示される。もう一方の選択機構によれば、ステップ136で、ハイパーバイザを介して全ての仮想マシンのリストを集成し、ステップ137で、そのリストをユーザに提示する。ステップ137で、ユーザは、ステップ135で選択された群またはステップ136で取得されたリストのいずれかから、複製/保護するべき仮想マシンを選択することができる。ステップ137の選択機構で、図9のVM保護フラグ・テーブルで設定されている保護フラグを用いて、この複製バッファによってどの仮想マシンが現在保護されているのかを表示する。ステップ137で選択された入力に基づいて、ステップ138で、図9の保護フラグを更新する。「true」は、その仮想マシンを保護するべきであることを示し、「false」は、その仮想マシンを保護するべきではないことを示す。その後、図9のVM保護フラグ・テーブルは、メモリに保存されて、図10のプロセスなどの後続プロセスで使用される。
図10は、第1の実施形態により、図8のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。ステップ140で、プログラムにより、図9の仮想マシンのリストを取得し、そして、図11のVMからボリュームへのマッピング・テーブルを、保護を維持するべき仮想マシンまたは新たに保護するべき仮想マシンのみによって初期化する。これは、図9における保護フラグ欄のtrue値によって示される。ステップ141で、プログラムにより、図9からのtrueに設定された保護フラグを有する選択された仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図11のVMからボリュームへのマッピング・テーブルにおいて、仮想マシン欄および仮想ボリューム欄を初期化する。ステップ142で、プログラムにより、それらの仮想ボリュームが含まれる論理ボリュームを特定する。ステップ143で、プログラムにより、図11のVMからボリュームへのマッピング・テーブルにおいて、論理ボリューム欄を埋める。ステップ140で特定された全ての仮想マシンついて、プログラムは繰り返す。ステップ144で、プログラムにより、図11のVMからボリュームへのマッピング・テーブルの論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図12に示すような、第1の実施形態による既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルを作成し、これが図10の出力である。次に、プロセスは、既存の複製バッファ変更の場合のフェーズ2に進む。
I.B.フェーズ2:計算
I.B.1 新規の複製バッファの生成
新規の複製バッファを生成する場合のこの第2フェーズでは、複製バッファサイズ計算モジュール(例えば、プログラム)によって、新規のローカル複製バッファおよびリモート複製バッファのサイズ、ならびにローカルストレージアレイおよびリモートストレージアレイにおけるディスク群構成を計算するプロセスを実行する。これらの計算は、その後、フェーズ3においてデータ複製のためにローカルサイトおよびリモートサイトを構成するために用いることができる。
図13は、ワークロードを計算するプロセスを示すフロー図の一例を示している。プログラムにより、フェーズ1で保護のために特定されて、実施形態1の場合は図7(または後述する実施形態2の場合は図51)の論理ボリューム複製リスト・テーブルに格納された論理ボリュームのリストを、ステップ200で取得する。ステップ201で、プログラムにより、計算に用いるワークロード・メトリクスのタイプ、すなわち、ピーク、標準、または平均、を特定する。ピーク・ワークロードは、システムで見られる最高のワークロードであり、標準ワークロードは、通常のオペレーションで予測され得る最高のワークロードであり、平均ワークロードは、その論理ボリュームの生存期間にわたる平均ワークロードである。図14は、これらの3つのタイプのワークロード・メトリクスの間の関係を示している。
ステップ202で、プログラムにより、特定のワークロード・メトリクスを取得する。ワークロードは、ユーザが手動で指定することができ、または論理ボリュームに対して測定することができ、またはハイパーバイザによってワークロードを返すことができる。ステップ203で、ステップ200で特定された全ての論理ボリュームについて、プログラムは繰り返す。ステップ204で、プログラムによって、ステップ200で特定された論理ボリュームの各々についてステップ202で取得された全てのワークロード・メトリクスを加算することにより、全てのボリュームのトータルワークロードを計算する。ステップ205aで、プログラムにより、そのトータルワークロードを、後の計算で使用するために、図15に示す計算ワークロード値に記憶する。
図16は、図13から計算されたワークロード値に基づいて、複製バッファサイズを計算するプロセスを示すフロー図の一例を示している。ステップ205bで、プログラムにより、図13で計算され、図15に示す計算ワークロード値に記憶されるトータルワークロードを取得する。プログラムにより、ステップ206で停止時間を取得し、ステップ207でオーバヘッドを取得する。停止時間は、ユーザから要求される入力値であり、オーバヘッドは、システム(例えば、システムソフトウェア)に記憶されたハードコード値である。ステップ208で、プログラムにより、式:複製バッファサイジング=(ワークロード)*停止時間*[1+オーバヘッド]を用いて、複製バッファサイズを計算する。ステップ209で、プログラムにより、その複製バッファサイジングを、後の計算で使用するために、図17に示す計算複製バッファ最小サイズ値に記憶する。
図18は、複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。ローカルサイトにおいて、ステップ210で、プログラムにより、ストレージアレイから未使用ローカルディスク群のリストを取得し、そのリストを、インメモリで、図19に示す未使用ローカルディスク群のテーブル(ローカルサイト)として保存する。テーブルは、ディスク群名、レイアウト/サイズ、およびスループットの欄(カラム)を有する。プログラムにより、図26〜28に示すステップ212〜235に明示するとともにフェーズ2の中で必要なディスク群を計算する下位プロセスで後述する下位プロセスに対して、図19の未使用ローカルディスク群のリストを入力として渡す。下位プロセスからの出力は、ローカル複製バッファの基準に適合するローカルディスク群のリストである。プロセスは、その出力を、インメモリで、図32Aに示すような新規の複製バッファ生成のためのバッファ用ローカルディスク群のテーブルに保存する。
リモートサイトにおいて、ステップ211で、プログラムにより、ストレージアレイから未使用リモートディスク群のリストを取得し、そのリストを、インメモリで、図20に示す未使用リモートディスク群のテーブル(リモートサイト)として保存する。プログラムにより、図26〜28に示すステップ212〜235に明示するとともにフェーズ2の中で必要なディスク群を計算する下位プロセスで後述する下位プロセスに対して、図20の未使用リモートディスク群のリストを入力として渡す。下位プロセスからの出力は、リモート複製バッファの基準に適合するリモートディスク群のリストである。プロセスは、その出力を、インメモリで、図32に示すような新規の複製バッファ生成のためのバッファ用リモートディスク群のテーブルに保存する。
その後、プロセスは、後述の、複製バッファ生成の場合のフェーズ3(図36のステップ300)に進む。
I.B.2 既存の複製バッファの変更
既存の複製バッファを変更する場合のこの第2フェーズでは、複製バッファサイズ計算モジュール(例えば、プログラム)によって、既存の複製バッファの新たなサイズ、ならびにローカルストレージアレイおよびリモートストレージアレイにおけるディスク群構成を計算するプロセスを実行する。これらの計算は、その後、フェーズ3においてデータ複製のためにローカルサイトおよびリモートサイトを再構成するために用いることができる。
本プロセスは、図13のプロセスを用いてワークロードを計算し、さらに図16のプロセスを用いて、図13からの計算ワークロード値に基づいて複製バッファサイズを計算する。これらのステップの出力は、図15の計算ワークロード値、および図17の計算複製バッファ最小サイズ値に見られる値である。
図23は、複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。ローカルサイトにおいて、ステップ246で、プログラムにより、前に計算されて図32Aに格納された既存の複製バッファ構成をローカルストレージアレイから取得して、このリストを、インメモリで、図24に示す既存の複製バッファ内のローカルディスク群のテーブルに保存し、このテーブルはディスク群のスループット能力で拡張される。テーブルは、ディスク群名、レイアウト/サイズ、およびスループットの欄(カラム)を有する。プログラムにより、図33および34に示すステップ236〜245に明示するとともにフェーズ2の中で必要な変更ディスク群を計算する下位プロセスで後述する下位プロセスに対して、図24のローカルディスク群のリストを入力として渡す。下位プロセスからの出力は、ローカル複製バッファの基準に適合するローカルディスク群のリストである。プロセスは、その出力を、インメモリで、(図32Aの新規の複製バッファ生成のためのバッファ用ローカルディスク群のテーブルと同様の形式の)既存のローカル複製バッファ変更のためのバッファ用ローカルディスク群のテーブルに保存する。
リモートサイトにおいて、ステップ247で、プログラムにより、前に計算されて図32に格納された既存の複製バッファ構成をリモートストレージアレイから取得して、このリストを、インメモリで、図25に示す既存の複製バッファ内のリモートディスク群のテーブルとして保存し、このテーブルはディスク群のスループット能力で拡張される。プログラムにより、図33および34に示すステップ236〜245に明示するとともにフェーズ2の中で必要な変更ディスク群を計算する下位プロセスで後述する下位プロセスに対して、図25のリモートディスク群のリストを入力として渡す。下位プロセスからの出力は、リモート複製バッファの基準に適合するリモートディスク群のリストである。プロセスは、その出力を、インメモリで、(図32の新規の複製バッファ生成のためのバッファ用リモートディスク群のテーブルと同様の形式の)既存のリモート複製バッファ変更のためのバッファ用リモートディスク群のテーブルに保存する。
その後、プロセスは、後述の、複製バッファ変更の場合のフェーズ3(図41のステップ316)に進む。
I.A.3 必要なディスク群を計算するためのフェーズ2の下位プロセス
図26〜28は、ローカルシステムまたはリモートシステムのいずれかにおいて、新規の複製バッファ生成のために必要なディスク群を計算する下位プロセスを示すフロー図の一例を示している。下位プロセスは、ステップ212で開始して、ローカルサイトの計算の場合に図19の未使用ローカルディスク群のテーブルとして(またはリモートサイトの計算の場合に図20の未使用リモートディスク群のテーブルとして)インメモリで保存されたレイアウト、サイズ、およびスループットを含むディスク群のリストである入力を収集する。ステップ213で、プログラムにより、そのディスク群レイアウトを、下位プロセスのこの呼び出しにおいて以前に見たことがあるかどうか判断する。そのディスク群レイアウトを見たことがない場合、プログラムは、ステップ214に進んで、ローカルの場合は図29Aに示すような、リモートの場合は図29に示すような、ディスク群レイアウト/ディスクサイズ、ディスク群のリスト、およびスループットの欄を有するディスク群テーブルに、エントリ(すなわち行)を追加する。ステップ215で、プログラムにより、ディスク群テーブルのそのエントリにディスク群名を追加する。プログラムによって、そのディスク群レイアウトを以前に見たことがある場合、プログラムは、ステップ216に進んで、そのディスク群名を、ディスク群テーブルの該当するエントリ(すなわち、そのディスク群名を追加するのに適切な行)に追加する。入力における残りのエントリについて、プログラムは繰り返す。図26のプロセスの出力は、完成した図29のリモートディスク群テーブルまたは図29Aのローカルディスク群テーブルである。次に、プロセスは図27に進む。
図27のステップ220で、プログラムにより、インメモリで保存されている図29/29Aのディスク群テーブルを取得する。ステップ221で、プログラムにより、前のステップで図15の計算ワークロード値としてインメモリで保存された計算ワークロードを取得する。ステップ222で、プログラムによって、図29/29Aのディスク群テーブルのスループット・エントリに、そのテーブルの同じ行に格納されたディスク群名の総数で乗算することにより、各レイアウトタイプのディスク群の合計のトータルスループットを計算する。そのトータルスループットが、ステップ220で取得されたワークロードよりも高い場合は、ステップ223で、そのディスク群を、複製バッファのワークロード基準を満たすものとしてマークする。ステップ224で、ディスク群テーブルの残りのエントリについて、プログラムは繰り返す。図30または図30Aは、スループット基準を満たすディスク群に対して設定されている適合スループット欄を示している。
ステップ225で、プログラムにより、計算されて図17の計算複製バッファ最小サイズ値に格納された複製バッファ最小サイズを取得する。ステップ226で、プログラムによって、図29/29Aのディスク群テーブルのサイズ・エントリに、そのテーブルの同じ行に格納されたディスク群名の総数で乗算することにより、各レイアウトタイプのディスク群の合計のトータルサイズを計算する。そのトータルサイズが、ステップ225で取得された複製バッファ最小サイズよりも大きい場合は、ステップ227で、そのディスク群を、複製バッファのサイズ基準を満たすものとしてマークする。ステップ228で、ディスク群テーブルの残りのエントリについて、プログラムは繰り返す、図30/30Aは、サイズ基準を満たすディスク群に対して設定されている適合サイズフラグ欄を示している。
ローカルの場合の図30A、リモートの場合の図30は、必要なディスク群を計算する上記ステップを完全に経た後の、適合スループットフラグ欄および適合サイズフラグ欄を有するディスク群テーブルの一例である。適合スループットフラグは、複製バッファ基準を満たすディスク群では「Yes」に設定される。適合サイズフラグは、複製バッファ基準を満たすディスク群では「Yes」に設定される。ステップ229で、プログラムにより、図30/30Aのテーブルにおいて、両方の基準(すなわち、複製バッファワークロードおよび複製バッファサイズ)を満たしていないエントリを削除し、その結果を、ローカルの場合の図31A、またはリモートの場合の図31に示すような、複製バッファの基準を満たすディスク群のテーブルに保存する。図31/31Aのテーブルは、インメモリで保存され、プロセスは図28に進む。
図28のステップ230で、プロセスは、ローカルの場合の図31Aまたはリモートの場合の図31の、複製バッファ基準を満たすディスク群のリストを格納したテーブルを得て、開始する。ステップ231で、プログラムにより、図15の計算ワークロード値から、計算ワークロードを取得する。ステップ232で、図31/31Aのテーブルを用いて、プログラムにより、最高のスループット値を有するディスク群のリストを、その欄の全ての値に最大値関数を用いて特定し、そして、最高のスループット(図31/31Aでは80)を有するエントリを選択する。ステップ233で、プログラムにより、複製バッファに割り当てるべきディスク群の数を計算する。これによって、図15からの計算ワークロードを、ステップ232で見つけた最高スループット値で除算し、その結果を、最も近い整数(第1の計算値)に切り上げることにより、最小ワークロード基準を満たすディスク群の数を計算する。プログラムによって、図17の計算複製バッファ最小サイズの結果からの複製バッファサイジングを、最高スループット値を有するディスク群エントリに見られるディスクサイズ値で除算し、その結果を、最も近い整数(第2の計算値)に切り上げることにより、最小サイズ基準を満たすために必要なディスク群の数を計算する。使用するべきディスク群の数は、これら2つの計算値(第1と第2の計算値)の最大値である。ステップ234で、プログラムにより、図31/31Aのテーブルのそのディスク群エントリから、ステップ233で計算された数のディスク群を選択し、そして、図26〜28の必要なディスク群を計算する下位プロセスの出力として、図32/32Aのバッファ用ディスク群のテーブルを作成する。図26〜28のこのプロセスを、ローカルサイトについて実行した場合、その結果は図32Aのテーブルである。図26〜28のこのプロセスを、リモートサイトについて実行した場合、その結果は図32のテーブルである。
I.B.4 必要な変更ディスク群を計算するためのフェーズ2の下位プロセス
図33および34は、既存の複製バッファ変更のために必要な変更ディスク群を計算する下位プロセスを示すフロー図の一例を示している。下位プロセスは、ステップ236で開始して、既存の複製バッファ構成をストレージアレイから取得し、これは、図26〜28の必要なディスク群を計算する下位プロセスの出力としての、ローカルの場合の図32Aまたはリモートの場合の図32のバッファ用ディスク群テーブルとして、さらに、ディスク群のスループット能力によってテーブルを拡張しているローカルサイトの計算の場合の図24に示すローカルディスク群のテーブル(またはリモートサイトの計算の場合の図25に示すリモートディスク群のテーブル)として、この下位プロセスに渡される。ステップ237で、プログラムにより、図15の計算ワークロード値および図17の計算複製バッファ最小サイズ値に見られるワークロードおよび複製バッファサイジングを取得する。
ステップ238で、既存の複製バッファのサイズが、必要な複製バッファサイジングよりも大きい場合、プログラムはステップ239に進む。ステップ239で、[ディスク群スループット*複製バッファ内の既存のディスク群の数]が、ワークロードよりも高い場合は、複製バッファを変更する必要はないので、プロセスはフェーズ3に進む。フェーズ2の出力は、図26〜28の必要なディスク群を計算する下位プロセスの出力としての、図32/32Aのバッファ用ディスク群のテーブルとして、インメモリで保存される既存のディスク群のテーブルである。ステップ238または239における計算に対する答えがnoである場合、プロセスは図34に進む。
図34のステップ240で、プログラムにより、その複製バッファ内のディスク群と同じレイアウトタイプの未使用ディスク群のリストを、ストレージアレイから取得する。ステップ241で、プログラムにより、図15の計算ワークロード値および図17の計算複製バッファ最小サイズ値から、ワークロードおよび複製バッファ最小サイズを取得する。ステップ242で、プログラムにより、全ての空きディスク群のサイズの合計を既存の複製バッファのディスク群サイズに加算したものが、複製バッファ最小サイズよりも大きいかどうか判断する。noの場合、エラー状態が存在し、プログラムはプロセス全体を終了させる。yesの場合、プログラムは、ステップ243に進んで、使用可能な全ての空きディスク群の合計を全ての既存のディスク群に加えたスループットを合計し、その値がワークロードよりも高いかどうか判断する。noの場合、エラー状態が存在し、プログラムはプロセス全体を終了させる。yesの場合、プログラムはステップ244に進む。
ステップ244で、プログラムにより、複製バッファに割り当てるべきディスク群の総数を計算する。これによって、図15の計算ワークロード値からのワークロードを、最高スループット値で除算し、その結果を、最も近い整数(第1の計算値)に切り上げることにより、最小ワークロード基準を満たすディスク群の数を計算する。図17の計算複製バッファ最小サイズ値からの複製バッファサイジングを、最高スループット値を有するディスク群エントリに見られるディスクサイズ値で除算し、その結果を、最も近い整数(第2の計算値)に切り上げることにより、最小サイズ基準を満たすために必要なディスク群の数を計算する。使用するべきディスク群の総数は、これら2つの計算値(第1と第2の計算値)の最大値である。
ステップ245で、プログラムにより、既存のバッファのディスク群および該当するタイプの必要数のディスク群を、図32/32Aのバッファ用ディスク群のテーブルとしてインメモリで保存される出力テーブルに加えて、ローカルディスク群の場合の図35Aおよびリモートディスク群の場合の図35に示すように、図33および34の必要な変更ディスク群を計算する下位プロセスの出力としてのバッファ用ディスク群テーブルの形で、図33および34の下位プロセスの出力を生成する。図35および35Aのテーブルは、複製バッファ用の既存のディスク群、ならびに複製バッファに追加するべき新規のディスク群を含んでいる。
I.C フェーズ3:複製バッファの生成
このフェーズは、複製バッファに割り当てるべきディスク群のリストを受け継いで、ローカルサイトおよびリモートサイトで新規の複製バッファを生成するか、またはローカルサイトおよびリモートサイトで既存の複製バッファを再構成するかいずれかとし、さらに複製関係およびデータ複製を確立させることに関する。フェーズ3の複製バッファ生成は、複製バッファ生成モジュール(例えば、プログラム)によって実行される。
I.C.1 新規の複製バッファの生成
図36〜38は、新規の複製バッファを生成するプロセスを示すフロー図の一例を示している。図36では、リモート論理ボリュームを作成して、ローカル論理ボリュームとリモート論理ボリュームとのマッピングを出力する。図37では、ローカル複製バッファおよびリモート複製バッファを生成する。図38では、ローカル論理ボリュームをローカル複製バッファに関連付けし、リモート論理ボリュームをリモート複製バッファに関連付けし、ローカル複製バッファをリモート複製バッファに関連付けして、ローカルサイトからリモートサイトへの複製を開始させる。
図36のステップ300で、プログラムにより、保護するべき論理ボリュームのリストを取得し、それは、フェーズ1の出力であって、実施形態1の場合の図7の新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルまたは実施形態2の場合の図51の新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルに格納されたものである。プログラムによって、該当するデータを、図39に示すローカルからリモートへのボリュームのマッピング・テーブルのローカル論理ボリューム欄に転送する。テーブルは、さらにリモート論理ボリューム欄を有する。ステップ301で、プログラムにより、リモートコントローラと通信することで、複製用にリモート論理ボリュームを作成する必要がある等価なディスク群を取得する。ステップ302で、プログラムにより、複製をサポートするために必要な全てのリモート論理ボリュームのための十分なスペースが、そのリモートディスク群にあるかどうか判断する。十分なスペースがない場合は、エラー状態が存在し、プログラムはプロセス全体を終了させる。十分なスペースがある場合、プログラムはステップ303に進む。ステップ303で、プログラムにより、ローカル論理ボリュームと同じサイズのリモート論理ボリュームを作成する。ステップ304aで、図39のローカルからリモートへのボリュームのマッピング・テーブルに含まれる残りの論理ボリュームについて、プログラムは繰り返す。プログラムにより、全てのリモート論理ボリュームの作成を終えたら、ステップ304bで、図39のローカルからリモートへのボリュームのマッピング・テーブルを、作成されたリモート論理ボリュームの識別子によって更新する。プロセスは図37に進む。
図37のステップ305で、プログラムにより、ローカルストレージアレイにおける新規の複製バッファ生成に使用するべきローカルディスク群のリストを取得する。ローカルディスク群のリストは、フェーズ2で計算されて、図32Aのバッファ用ローカルディスク群のテーブルに格納されたものである。ステップ306で、プログラムにより、ローカルストレージアレイにおいてローカル複製バッファを生成し、そのバッファに、ステップ305で取得したディスク群を関連付ける。ステップ307で、プログラムにより、リモートストレージアレイにおける新規の複製バッファ生成に使用するべきリモートディスク群のリストを取得する。リモートディスク群のリストは、フェーズ2で計算されて、図32のバッファ用リモートディスク群のテーブルに格納されたものである。ステップ308で、プログラムにより、リモートストレージアレイにおいてリモート複製バッファを生成し、そのバッファに、ステップ307で取得したディスク群を関連付ける。次に、プロセスは図38に進む。
図38のステップ309で、プログラムにより、図39に見られるローカル論理ボリュームを、ステップ306で生成されたローカル複製バッファに関連付ける。この関連付けは、図40に示すように、ローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルに記録される。ステップ310で、残りのローカル論理ボリュームについて、プログラムは繰り返す。ステップ311で、プログラムにより、図39に見られるリモート論理ボリュームを、ステップ308で生成されたリモート複製バッファに関連付ける。この関連付けは、図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルに記録される。ステップ312で、残りのリモート論理ボリュームについて、プログラムは繰り返す。ステップ313で、プログラムにより、ローカル複製バッファとリモート複製バッファとの間の関連付けを、ストレージアレイによって記録する。ステップ314で、プログラムにより、図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを、(例えば、管理コンピュータ内の)パーマネント・ストレージに保存する。ステップ315で、プログラムにより、ローカル複製バッファとリモート複製バッファとの間で複製を開始させる。これで、フェーズ3の複製バッファ生成モジュールのプロセスは完了する。
I.C.2 既存の複製バッファの変更
図41〜45は、既存の複製バッファを変更するプロセスを示すフロー図の一例を示している。図41のステップ316で、プログラムにより、保護するべき論理ボリュームのリストを取得し、それは、フェーズ1の出力であって、実施形態1の場合の図12の既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルまたは実施形態2の場合の図22の既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルのいずれかに格納されたものである。プログラムによって、該当するデータを、図39のローカルからリモートへのボリュームのマッピング・テーブルのローカル論理ボリューム欄に転送する。
ステップ317で、プログラムにより、作成されてディスクに保存された図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを参照することにより、そのローカル論理ボリュームに対するリモート論理ボリュームが存在するかどうか判断する。リモート論理ボリュームが存在する場合は、ステップ321で、残りのローカル論理ボリュームについて、プログラムは繰り返す。リモート論理ボリュームが存在しない場合、プログラムは、ステップ318に進んで、リモートストレージアレイからリモートディスク群を取得する。ステップ319で、プログラムにより、そのリモートディスク群に十分なスペースがあるかどうか判断する。十分なスペースがない場合は、エラー状態が存在し、プログラムはプロセス全体を終了させる。十分なスペースがある場合は、プログラムにより、ステップ320でリモート論理ボリュームを作成し、ステップ321で、残りのローカル論理ボリュームについて、プログラムは繰り返す。ステップ322で、プログラムによって、図39のローカルからリモートへのボリュームのマッピング・テーブルを更新することにより、ローカル論理ボリュームからリモート論理ボリュームへのマッピングを記録する。プロセスは図42に続く。
図42のステップ324で、プログラムにより、選択されたローカルディスク群のリストを取得し、それらのローカルディスク群は、フェーズ2の出力(ローカルサイトの計算の場合の図35A)によって選択されたものである。ステップ325で、プログラムにより、ステップ324からの選択されたローカルディスク群のいずれかが、既存のローカル複製バッファに含まれていないかどうか判断する。存在しないものがある場合は、ステップ326で、プログラムにより、それらの存在しないディスク群を、ローカル複製バッファに追加する。プロセスは図43に続く。
図43のステップ328で、プログラムにより、選択されたリモートディスク群のリストを取得し、それらのリモートディスク群は、フェーズ2の出力(リモートサイトの計算の場合の図35)によって選択されたものである。ステップ329で、プログラムにより、ステップ328からの選択されたリモートディスク群のいずれかが、既存のリモート複製バッファに含まれていないかどうか判断する。存在しないものがある場合は、ステップ330で、プログラムにより、それらの存在しないディスク群を、リモート複製バッファに追加する。プロセスは図44に続く。
図44のステップ331で、プログラムにより、ローカル論理ボリュームとローカル複製バッファとの間に関連付けが、既に存在するかどうか判断する。プログラムによって、その複製が最初に作成されたときにディスクに保存された図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを参照することにより、関連付けが存在するかどうか判断する。関連付けが存在する場合、プログラムはステップ333に進む。関連付けが存在しない場合は、ステップ332で、プログラムによって、ローカル論理ボリュームとローカル複製バッファとの間の関連付けを確立し、そして、図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルにおいて、そのエントリを更新する。その後、ステップ333で、残りのローカル論理ボリュームについて、プログラムは繰り返す。
ステップ334で、プログラムにより、リモート論理ボリュームとリモート複製バッファとの間に関連付けが、既に存在するかどうか判断する。プログラムによって、その複製が最初に作成されたときにディスクに保存された図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを参照することにより、関連付けが存在するかどうか判断する。関連付けが存在する場合、プログラムはステップ336に進む。関連付けが存在しない場合は、ステップ335で、プログラムによって、リモート論理ボリュームとリモート複製バッファとの間の関連付けを確立し、そして、図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルにおいて、そのエントリを更新する。その後、ステップ336で、残りのローカル論理ボリュームについて、プログラムは繰り返す。次に、プロセスは図45に進む。
図45のステップ337で、プログラムにより、ローカル複製バッファとリモート複製バッファとの間に関連付けが、既に存在するかどうか判断する。関連付けが既に存在する場合、プログラムはステップ339に進む。関連付けが存在しない場合は、ステップ338で、プログラムにより、その関連付けを確立して、それを、図40のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルに記録し、そして(例えば、管理コンピュータ内の)パーマネント・ストレージに格納する。ステップ339で、プログラムにより、ローカルとリモートのストレージアレイ間で複製が開始されているかどうか確認する。開始されている場合、プログラムはプロセスを終了させる。開始されていない場合は、プログラムによって、ステップ340で複製を開始させて、その後プロセスを終了させる。
II.実施形態2
実施形態2は、等価なデータプールで、含まれるボリュームの最小サブセットへの複製を目的として、選択されるボリュームの識別および移行を伴う。実施形態2のフェーズ2およびフェーズ3は、実施形態1のフェーズ2およびフェーズ3と同じであり、本実施形態の説明では繰り返さない。
図46は、第2の実施形態による、複数の論理ボリューム(DG1のLV1およびLV2)から、後にリモートシステムに複製される1つ以上の統合された論理ボリューム(LG1のLV4)への、仮想ボリュームの移動および移行を示している。LVは論理ボリュームを表し、DGはディスク群を表す。図46に示す複製ボリュームの統合されたセットは、その後、第2の実施形態により本発明の方法ならびに装置を適用することができるシステムのハードウェア構成を例示する図47に示すシステムにおいて、用いられる。
II.A フェーズ1:識別
II.A.1 新規の複製バッファの生成
新規の複製バッファ生成の場合のフェーズ1のVMおよび物理ボリュームの識別プロセスは、図3に示す実施形態1で保護するべき仮想マシンを特定するのと同じ一連のステップで開始する。プロセスは、VMおよびボリュームの識別モジュール(例えば、プログラム)によって実行される。図3の出力は、インメモリで保存される図4のVM複製リスト・テーブルである。実施形態2のプロセスは、次に図48に進む。
図48および49は、第2の実施形態により、図3のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。図48のステップ112で、プログラムにより、複製するべき仮想マシンのリストを読み込む。ステップ113で、プログラムにより、図4のVM複製リスト・テーブルからの選択された仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図50に示すような新規の複製バッファ生成のためのVMから新規の論理ボリュームへのマッピング・テーブルにおいて、仮想マシン欄および仮想ボリューム欄を初期化する。ステップ114で、プログラムによって、それらの仮想ボリュームが含まれる論理ボリュームを特定する。ステップ115で、プログラムにより、それらの論理ボリュームが含まれるディスク群を特定する。ステップ116で、プログラムにより、それらの仮想マシンに関連付けられたホストを特定する。ステップ117で、プログラムにより、図50のVMから新規の論理ボリュームへのマッピング・テーブルにおいて、論理ボリューム、ディスク群、およびホストの欄を埋める。ステップ113で特定された全ての仮想ボリュームついて、プログラムは繰り返す。そして、ステップ112で特定された全ての仮想マシンについて、プログラムは繰り返す。ステップ120で、プログラムにより、このマッピング情報を、VMから新規の論理ボリュームへのマッピング・テーブルにインメモリで保存する。実施形態2のプロセスは、次に図49に進む。
図49のステップ121で、プログラムは、図50のVMから新規の論理ボリュームへのマッピング・テーブルに格納された情報を得て開始する。ステップ122で、プログラムにより、ディスク群(DG01、DG02)の各々に含まれるそれぞれの論理ボリュームのサイズを合計し、その結果、それらのディスク群によって、選択された仮想マシンの全ての論理ボリュームのデータを全て格納するのに必要な論理ボリュームのサイズが得られる。次に、プログラムにより、ディスク群の各々において、単一の論理ボリュームを作成する。プログラムにより、作成する必要がある第1の新規の論理ボリュームから開始して、ステップ123で、その新規の論理ボリュームを作成する。次に、その新規の論理ボリュームの識別子を用いて、図50のVMから新規の論理ボリュームへのマッピング・テーブルに、新規の論理ボリューム欄を追加する。そして、プログラムにより、ステップ124で、新規の論理ボリュームをフォーマットした後に、その新規の論理ボリュームを、論理ボリュームのオリジナルセットに関連付けられたホストのユニークリストで確認される全てのホストに提示する。ステップ126で、作成する必要がある全ての新規の論理ボリュームについて、プログラムは繰り返す。
ステップ127で、プログラムにより、図50のVMから新規の論理ボリュームへのマッピング・テーブルの仮想マシン欄に確認される第1の仮想マシンから開始して、ハイパーバイザを用いて、その仮想マシンを新規の論理ボリュームに移行する。その後、図50のVMから新規の論理ボリュームへのマッピング・テーブルに含まれる全ての仮想マシンについて、プログラムは繰り返す。ステップ128で、プログラムにより、図50の新規の論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図51に示すような、第2の実施形態による新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルを作成し、これをステップ129で出力する。次に、プロセスは、新規の複製バッファ生成の場合のフェーズ2に進む。
II.A.2 既存の複製バッファの変更
新規の複製バッファ生成のためのフェーズ1のVMおよび物理ボリュームの識別プロセスは、図8に示す実施形態1で保護するべき仮想マシンを特定するのと同じ一連のステップで開始する。プロセスは、VMおよびボリュームの識別モジュール(例えば、プログラム)によって実行される。図8の出力は、図9のVM保護フラグ・テーブルである。実施形態2のプロセスは、次に図52に進む。
図52〜54は、第2の実施形態により、図8のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。図52のステップ145で、プログラムにより、保護するべき仮想マシンのリストを、図9のVM保護フラグ・テーブルから読み込む。ステップ146で、プログラムにより、図21に示すような、既存の複製バッファ変更のためのVMから新規の論理ボリュームへのマッピング・テーブルにおいて、保護フラグ欄の全ての値を「false」に設定する。図21のテーブルは、その複製バッファが最初に生成されたときに図50の新規の複製バッファ生成のためのVMから新規の論理ボリュームへのマッピング・テーブルで作成されて保存されたマッピングファイルから、初期化されたものである。ステップ145で読み込んだ保護される仮想マシンの各々について、プログラムにより、その仮想マシンの保護フラグ欄をtrueに設定する。
ステップ147で、プログラムにより、図21からの保護される仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいて、仮想マシン欄および仮想ボリューム欄を初期化する。保護するべき仮想マシンに属する全ての仮想ボリュームについて、プログラムは繰り返す。ステップ148で、プログラムにより、その仮想ボリュームが既に保護されているかどうか確認する。保護されている場合、プログラムはステップ153に進む。保護されていない場合、プログラムはステップ149に進む。
ステップ149で、プログラムにより、その仮想ボリュームを含む論理ボリュームを特定し、ステップ150で、プログラムにより、その論理ボリュームを含むディスク群を特定する。ステップ151で、プログラムにより、その仮想マシンに関連付けられたホストを特定する。ステップ152で、プログラムにより、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいて、論理ボリューム、ディスク群、およびホストの欄を埋める。ステップ147で取得された全ての仮想ボリュームについて、プログラムは繰り返す。ステップ145で取得された全ての仮想マシンについて、プログラムは繰り返す。ステップ154で、プログラムにより、図21のVMから新規の論理ボリュームへのマッピング・テーブルに格納されたマッピング情報を保存する。実施形態2のプロセスは、次に図53に進む。
図53のステップ155で、プログラムにより、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいて保護フラグのfalse値で確認される、複製バッファによって保護されるべきではない仮想マシンのリストを取得する。ステップ156で、プログラムにより、ハイパーバイザを用いて、非保護とする必要がある仮想マシンを、新規の論理ボリューム(2)から元の論理ボリューム(1)に移行する。ステップ157で、プログラムにより、(2)で使用されるその仮想マシンによって消費されるスペースを空きプールに戻し、そして、図21のVMから新規の論理ボリュームへのマッピング・テーブルを更新して、その仮想マシンの新規の論理ボリューム・エントリ(3)をクリアする。その後、非保護とするべき残りの仮想マシンについて、プログラムは繰り返す。ステップ158で、プログラムにより、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいてマッピング情報を更新し、そして、プログラムは図54に進む。
図54のステップ159で、プログラムにより、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいて保護フラグのtrue値で確認される、複製バッファによって保護されるべき仮想マシンのリストを取得する。ステップ160で、その仮想マシンが既に保護されている場合は、プログラムはステップ166に進む。それ以外の場合は、プログラムはステップ161に進む。
ステップ161で、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいてディスク群欄で確認されるディスク群が存在する場合は、プログラムはステップ169に進んで、そのディスク群に関連付けられた新規の論理ボリュームのサイズを、新規の仮想マシンの要求を満たすように拡張する。その後、プログラムはステップ164に進む。ディスク群が存在しない場合は、プログラムはステップ162に進んで、その仮想マシンの仮想ボリュームを格納するための新規の論理ボリュームを作成し、そしてフォーマットする。ステップ163で、プログラムにより、図21のVMから新規の論理ボリュームへのマッピング・テーブルにおいて新規の論理ボリューム欄を、新たに作成された論理ボリュームによって更新する。
ステップ164で、プログラムにより、ステップ169で拡張された新規の論理ボリュームまたはステップ162で新たに作成された新規の論理ボリュームを、新規のホストに提示する必要があるかどうか判断する。その必要がある場合は、プログラムにより、その新規の論理ボリュームを該当するホストに提示する。ステップ165で、プログラムにより、ハイパーバイザを用いて、その仮想マシンを、元の論理ボリューム(1)から新規の論理ボリューム(2)に移行する。ステップ166で、残りの仮想マシンについて、プログラムは繰り返す。ステップ167で、プログラムにより、図21の新規の論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図22に示すような、第2の実施形態による既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルを作成し、これをステップ168で出力する。次に、プロセスは、既存の複製バッファ変更の場合のフェーズ2に進む。
II.B.フェーズ2:計算
第2の実施形態のフェーズ2は、第1の実施形態のフェーズ2と同じである。
II.C フェーズ3:複製バッファの生成
第2の実施形態のフェーズ3は、第1の実施形態のフェーズ3と同じである。
言うまでもなく、図1および47に示すシステム構成は、本発明を実施することができる情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータおよびストレージシステムは、さらに、周知のI/Oデバイス(例えば、CDおよびDVDドライブ、フロッピーディスクドライブ、ハードドライブなど)を備えることもでき、これらにより、上記発明の実施に使用されるモジュール、プログラム、およびデータ構造を保存し、読み出すことができる。これらのモジュール、プログラム、およびデータ構造は、かかるコンピュータ可読媒体上にコード化することができる。例えば、本発明のデータ構造は、発明で使用するプログラムが常駐する1つ以上のコンピュータ可読媒体とは独立のコンピュータ可読媒体に保存することができる。システムのコンポーネントは、例えば通信ネットワークであるデジタルデータ通信の任意の形式または媒体によって、相互接続することができる。通信ネットワークの例として、ローカルエリアネットワーク、例えばインターネットである広域ネットワーク、無線ネットワーク、ストレージエリアネットワークなどが含まれる。
本明細書では、発明についての完全な理解を与えるため、説明の目的で様々な詳細について記載している。しかしながら、本発明を実施するために、これら特定の詳細のすべてが必要とされるわけではないことは、当業者には明らかであろう。また、本発明は、プロセスとして記述できるということにも留意すべきであり、それは、通常、フローチャート、フロー図、構造図、またはブロック図として表現される。フローチャートでは、オペレーションが逐次プロセスとして記述され得るが、それらのオペレーションの多くは、並列または同時に実行することができる。さらに、オペレーションの順序は並べ替えることができる。
当該技術分野で知られているように、上記オペレーションは、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実行することができる。本発明の実施形態のいくつかの態様は、回路および論理デバイス(ハードウェア)を用いて実装することができる一方、他の態様は、機械可読媒体に格納された命令(ソフトウェア)を用いて実装することができ、それらの命令は、プロセッサで実行されることで、本発明の実施形態を実施する方法をプロセッサに実行させるものである。また、本発明のいくつかの実施形態は、ハードウェアのみで実行することができる一方、他の実施形態は、ソフトウェアのみで実行することができる。さらに、記載された種々の機能は、単一のユニットで実行することができ、または、あらゆる方法で多くのコンポーネントに分散させることができる。ソフトウェアで実行する場合、本方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサで実行することができる。それらの命令は、所望であれば圧縮および/または暗号化形式で媒体に保存することができる。
上記のことから、本発明は、自動的にワークロードを特定して、複製バッファのサイズを設定することによる、効率的なボリューム複製のための方法、装置、ならびにコンピュータ可読媒体に格納されたプログラムを提供するものであることは明らかであろう。また、本明細書では具体的な実施形態を例示および記載しているが、当業者であれば理解できるように、同じ目的を達成すると予測される任意の構成を、開示された特定の実施形態の代用とすることができる。本開示は、本発明のあらゆる改良または変形を包括するものであり、また、当然のことながら、以下の請求項において使用される用語は、本明細書に開示の特定の実施形態に発明を限定するものと解釈されるべきではない。むしろ、本発明の範囲は、かかる請求項によって権利が認められる均等物の全範囲と共に、確立されたクレーム解釈論に従って解釈されるべき以下の請求項によって、完全に決定されるべきである。

Claims (20)

  1. 1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記1つ以上の論理ボリュームのワークロードを計算するワークロード計算手段と、
    前記1つ以上の論理ボリュームについて前記計算されたワークロードに基づいて、前記1つ以上の論理ボリュームの1つ以上のリモートコピーペアのリモートコピー手順において第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用されるバッファ領域のサイズであるバッファサイズを計算するバッファサイズ計算手段であって、前記第1および第2のストレージシステムの少なくとも1つが複数のディスク群を有し、前記1つ以上のリモートコピーペアのそれぞれは、前記第1のストレージシステムにおける前記1つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての1つの論理ボリュームと、前記第2のストレージシステムにおけるセカンダリ論理ボリュームとしての別の1つの論理ボリュームとによって形成されているバッファサイズ計算手段と
    前記バッファ領域に割り当てられるべき1つ以上のディスク群を、前記計算されたワークロード、前記計算されたバッファサイズ、前記複数のディスク群における各未使用ディスク群のディスク群レイアウト、スループットおよびディスク群サイズを基に、前記第1または第2のストレージシステムの複数のディスク群における未使用ディスク群から選択するディスク群選択手段と
    を有するコンピュータ。
  2. 前記第1のストレージシステムは、オーバヘッドおよび停止時間を有し、
    前記計算されたバッファサイズは、前記計算されたワークロードを停止時間で乗算し、(1+オーバヘッド)で乗算したものである、
    請求項1に記載のコンピュータ。
  3. 前記ディスク群選択手段は、
    各々のディスク群レイアウトについて、合計されたスループットが、前記計算されたワークロードよりも高いディスク群スループットを有するとともに、合計されたディスク群サイズが、前記計算されたバッファサイズよりも大きいディスク群サイズを有する未使用ディスク群のリストである候補ディスク群のリストを特定することと、
    各々のディスク群レイアウトの特定された候補ディスク群のリストから、最高のディスク群スループットを有する候補ディスク群のリストを選択することと、
    前記選択された候補ディスク群のリストについて、
    (i)前記計算されたワークロードを、前記選択された候補ディスク群のディスク群スループットで除算して、最も近い整数に切り上げることで、第1の計算値を取得すること、
    (ii)前記計算されたバッファサイズを、前記選択された候補ディスク群のディスク群サイズで除算して、最も近い整数に切り上げることで、第2の計算値を取得すること、
    (iii)前記バッファ領域のために必要なディスク群の数として、前記第1の計算値と前記第2の計算値から最大値を選択することにより、前記バッファ領域のために必要なディスク群の数を決定すること、
    を実行するにより、前記1つ以上のディスク群を選択する、
    請求項1または2に記載のコンピュータ。
  4. 前記選択された1つ以上のディスク群を新たに既存のバッファ領域に割り当てることにより当該既存のバッファ領域を変更する既存バッファ変更手段、
    を更に有する請求項1または2に記載のコンピュータ。
  5. 前記ディスク群選択手段は、前記計算されたバッファサイズよりも大きいサイズとともに前記計算されたワークロードよりも高いスループットを既存のバッファ領域が有するか否かを判断し、当該判断の結果が偽の場合に、前記既存のバッファに追加的に割り当てられる1つ以上のディスク群を選択し、
    その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた1つ以上のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた前記1つ以上のディスク群の数との積に等しい、
    請求項4に記載のコンピュータ。
  6. 前記既存バッファ変更手段は、前記選択された1つ以上のディスク群を新たに既存のバッファ領域に割り当てることにより、前記計算されたバッファサイズを超えないサイズ、または、前記計算されたワークロードを超えないトータルスループット、を有する当該既存のバッファ領域を、前記計算されたバッファサイズよりも大きいサイズとともに前記計算されたワークロードよりも高いスループットを有するバッファ領域に変更する、
    請求項5に記載のコンピュータ。
  7. 前記選択された1つ以上のディスク群が割り当てられた新規のバッファ領域を生成する新規バッファ生成手段、
    を更に有する請求項1ないし3のうちのいずれか1項に記載のコンピュータ。
  8. 或る1つ以上の論理ボリュームの各々について、当該論理ボリュームを格納するディスク群を特定するディスク群特定手段と、
    前記或る1つ以上の論理ボリュームの各々について、当該論理ボリュームのデータをすべて格納するための、前記ディスク群特定手段により特定されたディスク群のために準備すべきスペースの総容量を計算する総容量計算手段と、
    前記或る1つ以上の論理ボリュームの各々について、前記特定されたディスク群のために準備すべきスペースの前記計算された総容量に基づいて、前記ディスク群特定手段により特定されたディスク群に基づく単一の論理ボリュームを作成するボリューム作成手段と
    を更に有し、
    モニタされる前記1つ以上の論理ボリュームは、それぞれ、1つ以上の前記作成された単一の論理ボリュームである、
    請求項7に記載のコンピュータ。
  9. 複数の仮想マシンのうちの1つ以上の仮想マシンを特定する仮想マシン特定手段と、
    前記特定された1つ以上の仮想マシンによって使用される1つ以上の論理ボリュームであって、複数のディスク群を有する第1のストレージシステムにおける複数の論理ボリュームのうちの1つ以上の論理ボリュームを、前記複数の仮想マシンと前記複数の論理ボリュームとの間の関係を示す関係情報に基づいて特定するボリューム特定手段と
    を更に有し、
    前記1つ以上の論理ボリュームは、前記ボリューム特定手段により特定された1つ以上の論理ボリュームである、
    請求項1ないし7のうちのいずれか1項に記載のコンピュータ。
  10. 第1のストレージシステムと、
    第2のストレージシステムと、
    管理コンピュータと
    を備え、
    前記管理コンピュータは、
    1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記1つ以上の論理ボリュームのワークロードを計算し、
    前記1つ以上の論理ボリュームについて前記計算されたワークロードに基づいて、前記1つ以上の論理ボリュームの1つ以上のリモートコピーペアのリモートコピー手順において前記第1のストレージシステムから前記第2のストレージシステムに送られるコピーデータを一時的に保存するために使用されるバッファ領域のサイズであるバッファサイズを計算し、
    前記第1および第2のストレージシステムの少なくとも1つが複数のディスク群を有し、
    前記1つ以上のリモートコピーペアのそれぞれは、前記第1のストレージシステムにおける前記1つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての1つの論理ボリュームと、前記第2のストレージシステムにおけるセカンダリ論理ボリュームとしての別の1つの論理ボリュームとによって形成されており、
    前記バッファ領域に割り当てられるべき1つ以上のディスク群を、前記計算されたワークロード、前記計算されたバッファサイズ、前記複数のディスク群における各未使用ディスク群のディスク群レイアウト、スループットおよびディスク群サイズを基に、前記第1または第2のストレージシステムの複数のディスク群における未使用ディスク群から選択する、
    システム。
  11. 1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記1つ以上の論理ボリュームのワークロードを計算し、
    前記1つ以上の論理ボリュームについて前記計算されたワークロードに基づいて、前記1つ以上の論理ボリュームの1つ以上のリモートコピーペアのリモートコピー手順において第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用されるバッファ領域のサイズであるバッファサイズを計算し、
    前記第1および第2のストレージシステムの少なくとも1つが複数のディスク群を有し、
    前記1つ以上のリモートコピーペアのそれぞれは、前記第1のストレージシステムにおける前記1つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての1つの論理ボリュームと、前記第2のストレージシステムにおけるセカンダリ論理ボリュームとしての別の1つの論理ボリュームとによって形成されており、
    前記バッファ領域に割り当てられるべき1つ以上のディスク群を、前記計算されたワークロード、前記計算されたバッファサイズ、前記複数のディスク群における各未使用ディスク群のディスク群レイアウト、スループットおよびディスク群サイズを基に、前記第1または第2のストレージシステムの複数のディスク群における未使用ディスク群から選択する、
    ことをコンピュータに実行させるコンピュータプログラム。
  12. 前記第1または第2のストレージシステムは、オーバヘッドおよび停止時間を有し、
    前記計算されたバッファサイズは、前記計算されたワークロードを停止時間で乗算し、(1+オーバヘッド)で乗算したものである、
    請求項11に記載のコンピュータプログラム。
  13. 前記1つ以上のディスク群を選択することは、
    各々のディスク群レイアウトについて、合計されたスループットが、前記計算されたワークロードよりも高いディスク群スループットを有するとともに、合計されたディスク群サイズが、前記計算されたバッファサイズよりも大きいディスク群サイズを有する未使用ディスク群のリストである候補ディスク群のリストを特定することと、
    各々のディスク群レイアウトの特定された候補ディスク群のリストから、最高のディスク群スループットを有する候補ディスク群のリストを選択することと、
    前記選択された候補ディスク群のリストについて、
    (i)前記計算されたワークロードを、前記選択された候補ディスク群のディスク群スループットで除算して、最も近い整数に切り上げることで、第1の計算値を取得すること、
    (ii)前記計算されたバッファサイズを、前記選択された候補ディスク群のディスク群サイズで除算して、最も近い整数に切り上げることで、第2の計算値を取得すること、
    (iii)前記バッファ領域のために必要なディスク群の数として、前記第1の計算値と前記第2の計算値から最大値を選択することにより、前記バッファ領域のために必要なディスク群の数を決定すること、
    を含む、
    請求項11または12に記載のコンピュータプログラム。
  14. 前記選択された1つ以上のディスク群を新たに既存のバッファ領域に割り当てることにより当該既存のバッファ領域を変更する、
    ことを更にコンピュータに実行させる請求項11または12に記載のコンピュータプログラム。
  15. 前記計算されたバッファサイズよりも大きいサイズとともに前記計算されたワークロードよりも高いスループットを既存のバッファ領域が有するか否かを判断し、当該判断の結果が偽の場合に、前記既存のバッファに追加的に割り当てられる1つ以上のディスク群を選択し、
    その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた1つ以上のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた前記1つ以上のディスク群の数との積に等しい、
    請求項14に記載のコンピュータプログラム。
  16. 前記既存のバッファ領域を変更することは、前記選択された1つ以上のディスク群を新たに既存のバッファ領域に割り当てることにより、前記計算されたバッファサイズを超えないサイズ、または、前記計算されたワークロードを超えないトータルスループット、を有する当該既存のバッファ領域を、前記計算されたバッファサイズよりも大きいサイズとともに前記計算されたワークロードよりも高いスループットを有するバッファ領域に変更することである、
    請求項15に記載のコンピュータプログラム。
  17. 前記1つ以上のディスク群が割り当てられた新規のバッファ領域を生成する、
    ことを更にコンピュータに実行させる請求項11ないし13のうちのいずれか1項に記載のコンピュータプログラム。
  18. 或る1つ以上の論理ボリュームの各々について、当該論理ボリュームを格納するディスク群を特定し、
    前記或る1つ以上の論理ボリュームの各々について、当該論理ボリュームのデータをすべて格納するための、前記ディスク群特定手段により特定されたディスク群のために準備すべきスペースの総容量を計算し、
    前記或る1つ以上の論理ボリュームの各々について、前記特定されたディスク群のために準備すべきスペースの前記計算された総容量に基づいて、前記特定されたディスク群に基づく単一の論理ボリュームを作成する
    ことを更にコンピュータに実行させ、
    モニタされる前記1つ以上の論理ボリュームは、それぞれ、1つ以上の前記作成された単一の論理ボリュームである、
    請求項17に記載のコンピュータプログラム。
  19. 複数の仮想マシンのうちの1つ以上の仮想マシンを特定し、
    前記特定された1つ以上の仮想マシンによって使用される1つ以上の論理ボリュームであって、複数のディスク群を有する第1のストレージシステムにおける複数の論理ボリュームのうちの1つ以上の論理ボリュームを、前記複数の仮想マシンと前記複数の論理ボリュームとの間の関係を示す関係情報に基づいて特定する
    ことを更にコンピュータに実行させ、
    前記1つ以上の論理ボリュームは、前記特定された1つ以上の論理ボリュームである、
    請求項11ないし17のうちのいずれか1項に記載のコンピュータプログラム。
  20. 1つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記1つ以上の論理ボリュームのワークロードを計算し、
    前記1つ以上の論理ボリュームについて前記計算されたワークロードに基づいて、前記1つ以上の論理ボリュームの1つ以上のリモートコピーペアのリモートコピー手順において第1のストレージシステムから第2のストレージシステムに送られるコピーデータを一時的に保存するために使用されるバッファ領域のサイズであるバッファサイズを計算し、
    前記第1および第2のストレージシステムの少なくとも1つが複数のディスク群を有し、
    前記1つ以上のリモートコピーペアのそれぞれは、前記第1のストレージシステムにおける前記1つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての1つの論理ボリュームと、前記第2のストレージシステムにおけるセカンダリ論理ボリュームとしての別の1つの論理ボリュームとによって形成されており、
    前記バッファ領域に割り当てられるべき1つ以上のディスク群を、前記計算されたワークロード、前記計算されたバッファサイズ、前記複数のディスク群における各未使用ディスク群のディスク群レイアウト、スループットおよびディスク群サイズを基に、前記第1または第2のストレージシステムの複数のディスク群における未使用ディスク群から選択する、
    方法。
JP2015559565A 2013-05-13 2013-05-13 ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定 Expired - Fee Related JP6211631B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2013/001975 WO2014184606A1 (en) 2013-05-13 2013-05-13 Identifying workload and sizing of buffers for the purpose of volume replication

Publications (2)

Publication Number Publication Date
JP2016510918A JP2016510918A (ja) 2016-04-11
JP6211631B2 true JP6211631B2 (ja) 2017-10-11

Family

ID=49725155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015559565A Expired - Fee Related JP6211631B2 (ja) 2013-05-13 2013-05-13 ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定

Country Status (6)

Country Link
US (1) US9854037B2 (ja)
JP (1) JP6211631B2 (ja)
CN (1) CN104969169B (ja)
DE (1) DE112013006646B4 (ja)
GB (1) GB2524448B (ja)
WO (1) WO2014184606A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052938B1 (en) * 2014-04-15 2015-06-09 Splunk Inc. Correlation and associated display of virtual machine data and storage performance data
US9575858B2 (en) * 2014-10-02 2017-02-21 Vmware, Inc. Dynamic protection of storage resources for disaster recovery
JP6613603B2 (ja) 2015-04-30 2019-12-04 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
US9864640B2 (en) 2015-08-14 2018-01-09 International Business Machines Corporation Controlling virtual machine density and placement distribution in a converged infrastructure resource pool
WO2018011839A1 (ja) * 2016-07-11 2018-01-18 株式会社日立製作所 情報処理システム、及び、情報処理システムの制御方法
US10949124B2 (en) * 2019-06-28 2021-03-16 Amazon Technologies, Inc. Virtualized block storage servers in cloud provider substrate extension
JP7154261B2 (ja) * 2020-09-25 2022-10-17 株式会社日立製作所 複合型ストレージシステム
US11537310B2 (en) 2021-02-05 2022-12-27 Microsoft Technology Licensing, Llc Threading of replication based on data type

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204358A (ja) 2007-02-22 2008-09-04 Hitachi Ltd 継続的データ保護方法および継続的データ保護システム
JP4916420B2 (ja) 2007-11-16 2012-04-11 株式会社日立製作所 ストレージシステム及びリモートコピー制御方法
JP5387315B2 (ja) * 2009-10-13 2014-01-15 富士通株式会社 記憶装置、制御装置および記憶装置の制御方法
US9185054B2 (en) 2010-09-15 2015-11-10 Oracle International Corporation System and method for providing zero buffer copying in a middleware machine environment
JP5470594B2 (ja) 2010-09-16 2014-04-16 株式会社日立製作所 計算機システム及びストレージ・ボリューム管理方法
US8516209B2 (en) 2010-09-16 2013-08-20 Hitachi, Ltd. Computer system, storage volume management method, and computer-readable storage medium
WO2012066605A1 (en) 2010-11-19 2012-05-24 Hitachi, Ltd. Storage control apparatus and logical volume size setting method
US8478961B2 (en) * 2011-03-02 2013-07-02 International Business Machines Corporation Dynamic migration of virtual machines based on workload cache demand profiling
US9626105B2 (en) * 2011-12-12 2017-04-18 International Business Machines Corporation Controlling a storage system
CN102868727B (zh) * 2012-08-23 2015-06-17 广东电子工业研究院有限公司 一种实现逻辑卷高可用性的方法
US8966316B2 (en) * 2012-11-30 2015-02-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Identifying software responsible for changes in system stability
US9135140B2 (en) * 2012-11-30 2015-09-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Identifying software responsible for a change in system stability

Also Published As

Publication number Publication date
US20160014200A1 (en) 2016-01-14
GB2524448B (en) 2020-10-14
DE112013006646T5 (de) 2015-10-22
CN104969169B (zh) 2017-11-17
GB201513463D0 (en) 2015-09-16
CN104969169A (zh) 2015-10-07
DE112013006646B4 (de) 2023-06-15
GB2524448A (en) 2015-09-23
JP2016510918A (ja) 2016-04-11
US9854037B2 (en) 2017-12-26
WO2014184606A1 (en) 2014-11-20

Similar Documents

Publication Publication Date Title
JP6211631B2 (ja) ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定
RU2658886C1 (ru) Способ управления файлами, распределенная система хранения и узел управления
JP4733461B2 (ja) 計算機システム、管理計算機及び論理記憶領域の管理方法
JP5608016B2 (ja) オブジェクト単位階層の管理方法及び装置
JP6616827B2 (ja) スケーラブルなデータストレージプール
US9613037B2 (en) Resource allocation for migration within a multi-tiered system
US7464232B2 (en) Data migration and copying in a storage system with dynamically expansible volumes
CN102099794B (zh) 控制备份操作中的资源分配
US20130339956A1 (en) Computer system and optimal arrangement method of virtual machine in computer system
WO2012035575A1 (en) Method and device for eliminating patch duplication
US10356150B1 (en) Automated repartitioning of streaming data
US9575858B2 (en) Dynamic protection of storage resources for disaster recovery
JP2008165620A (ja) ストレージ装置構成管理方法、管理計算機及び計算機システム
JP2012504295A (ja) データベースサーバシステムのためのストレージ階層
JP2019191951A (ja) 情報処理システム及びボリューム割当て方法
CN105302536A (zh) MapReduce应用的相关参数的配置方法和装置
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US7792966B2 (en) Zone control weights
US11429311B1 (en) Method and system for managing requests in a distributed system
CN108604231A (zh) 镜像处理方法以及计算设备
JP6744272B2 (ja) 移行管理装置及び移行管理方法
KR101654969B1 (ko) 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치
US20140365610A1 (en) Appliance interconnection architecture
JP7225190B2 (ja) 計算機システム
JP6657990B2 (ja) ストレージ装置、仮想ボリューム制御システム、仮想ボリューム制御方法および仮想ボリューム制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170803

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: 20170815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170913

R150 Certificate of patent or registration of utility model

Ref document number: 6211631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees