JP5314772B2 - 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 - Google Patents
性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 Download PDFInfo
- Publication number
- JP5314772B2 JP5314772B2 JP2011551580A JP2011551580A JP5314772B2 JP 5314772 B2 JP5314772 B2 JP 5314772B2 JP 2011551580 A JP2011551580 A JP 2011551580A JP 2011551580 A JP2011551580 A JP 2011551580A JP 5314772 B2 JP5314772 B2 JP 5314772B2
- Authority
- JP
- Japan
- Prior art keywords
- pool
- virtual
- access
- vvol
- performance
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013508 migration Methods 0.000 claims abstract description 82
- 230000005012 migration Effects 0.000 claims abstract description 82
- 230000008569 process Effects 0.000 claims description 41
- 230000008859 change Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 claims 9
- 238000012545 processing Methods 0.000 description 35
- 238000009826 distribution Methods 0.000 description 28
- 230000004044 response Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 230000006872 improvement Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101150053844 APP1 gene Proteins 0.000 description 1
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 1
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 1
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 1
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0647—Migration 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ストレージシステムの管理に関する。
ストレージシステムは、1以上のストレージ装置で構成されるが、ストレージ装置として、シンプロビジョニング(Thin Provisioning)技術が適用された装置が知られている(例えば、特許文献1)。シンプロビジョニング(ダイナミックプロビジョニングと呼ばれることもある)によれば、仮想的な論理ボリュームである仮想ボリューム(以下、VVOL)と言う)がホスト計算機に提供される。VVOLは、複数の仮想領域(仮想的な記憶領域)の集合である。ホスト計算機からVVOLに対するライトが発生した場合、ライト先の仮想領域にプールから実領域(実体的な記憶領域、以下、「ページ」と言う)が割り当てられる。プールは、複数のページで構成された記憶領域である。
プールは、例えば、複数の論理ボリュームで構成される。各論理ボリュームが複数のページに分割されており、それ故、プールはページ群で構成されている。論理ボリュームは、ストレージ装置が有する1以上の物理記憶デバイス(例えば、RAID(Redundant Array of Independent (or Inexpensive) Disks)グループ)に基づいていても良いし、別のストレージ装置が有する論理ボリュームに基づいていても良い。
論理ボリュームの性能(例えば、レスポンスタイム)は、その論理ボリュームの基になっている1以上の物理記憶デバイスの性能に依存する。1以上の物理記憶デバイスの性能は、例えば、物理記憶デバイスの種類、RAIDグループのRAIDレベル等に依存する。
このため、或る論理ボリュームの基になっている1以上の物理記憶デバイスの性能と、別の論理ボリュームの基になっている1以上の物理記憶デバイスの性能が異なっていれば、それらの論理ボリュームの性能も異なる。例えば、SSD(Solid State Drive)はHDD(Hard Disk Drive)よりも性能が高いので、SSDに基づく論理ボリュームの性能は、HDDに基づく論理ボリュームの性能より高い。
性能の異なる複数のページ群(例えば1以上の論理ボリューム)でプールを構成することが考えられる。そして、そのようなプールを複数個作成することが考えられる。各VVOLには、複数のプールのうちのいずれかのプールが関連付けられている。VVOLの仮想領域に対するライトが発生した場合、ライト先の仮想領域には、そのVVOLに関連付けられているプールからページが割り当てられる。1つのアクセス元(例えば、ホスト或いはアプリケーション)からだけアクセスされるVVOLもあれば、複数のアクセス元からアクセスされるVVOLもある。例えば、VVOLの第1の部分が第1のアクセス元からアクセス可能な仮想領域群とされ、そのVVOLの第2の部分(第1の部分とは別の部分)が第2のアクセス元からアクセス可能な仮想領域群とされることがある。
このようなケースにおいて、ストレージシステムの外部にいるアクセス元からのアクセスに関して要求される性能(要求性能)を出すためには、VVOLにどのページ群内のページをどの程度割り当てるかを考慮する必要があると考えられる。例えば、要求性能のわりにVVOLに多くの高性能のページが割り当てられていると、その要求性能を過剰に満たすことになり、且つ、そのVVOLに無駄に多くの高性能のページが割り当てられていることから、高性能のページが不足するおそれがある。これは、オーバープロビジョニング(無駄)が生じていることを意味する。
そこで、本発明の目的は、アクセス元からのアクセスに関する要求性能を満たしつつオーバープロビジョニングを抑制することにある。
ストレージシステムが、複数の仮想ボリューム(以下、VVOL)と、複数のプールと、コントローラとを有する。各VVOLは、複数の仮想領域で構成された仮想的な論理ボリュームである。各プールは、性能が異なる複数の実領域群で構成された記憶領域である。コントローラは、アクセス元からアクセスコマンドを受信し、アクセスコマンドから特定された仮想領域に割り当てられている実領域にアクセスする。コントローラは、どの仮想領域にどの実領域が割り当てられているかと仮想領域に関するアクセス負荷とを表す情報であるプール状況情報を管理する。ストレージシステムの管理システムが、要求性能と性能を各VVOLについて表す管理情報を有する。VVOLの性能は、プール状況情報を基に特定された性能である。管理システムが、管理情報を基に、状況が不適切であるVVOLを特定し、特定されたVVOLの状況を不適切な状況から適切な状況に変えるために前記特定されたVVOLに関連付けられているプールに関わるマイグレーション処理を行う。
アクセス元としては、ホスト装置、仮想計算機、アプリケーションプログラムなど、種々の対象が考えられる。また、VVOLの性能や実領域群の性能としては、例えば、アクセスに関する性能がある。アクセスに関する性能としては、例えば、データのアクセスのためのコマンドが入力されてからそのコマンドに対する応答が出力されるまでの時間長であるレスポンスタイム、或いは、単位時間当たりに入出力されるデータの量がある。また、アクセス負荷は、アクセスに関する負荷であり、例えば、アクセス頻度(単位時間当たりに行われるアクセスの回数)、又は、データ転送速度(単位時間当たりに転送されるデータの量)である。また、「仮想領域に関するアクセス負荷」とは、仮想領域のアクセス負荷であっても良いし、仮想領域に割り当てられている実領域のアクセス負荷であっても良い。また、アクセスは、例えば、ライト及び/又はリードである。
前記管理システムは、前記ストレージシステムの外に存在する1以上の計算機であっても良いし、前記コントローラと一体になっていても良いし、前記ホスト装置と一体になっていても良いし、前記ストレージシステムと前記ストレージシステムの外に存在する装置との組合せで実現されても良い。
ストレージシステムは、1つのストレージ装置で構成されていても良いし複数のストレージ装置で構成されていても良い。
本発明の幾つかの実施例を説明する。なお、本発明の技術的範囲が各実施例に限定されてはならない。
なお、以後の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以後の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信制御装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。また、プログラムを主語として説明された処理は、管理システムが行う処理としても良い。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。このため、プログラムを主語として説明された処理は、コントローラが行う処理としても良い。コントローラは、プロセッサと、プロセッサに実行されるコンピュータプログラムを記憶する記憶資源とを含んでも良いし、上記の専用ハードウェアを含んでも良い。また、コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
なお、管理システムは、一以上の計算機で構成されて良い。具体的には、例えば、管理計算機が情報を表示する場合、或いは、管理計算機が表示用情報を遠隔の計算機に送信する場合、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理システムである。
図1は、本発明の実施例1に係る計算機システムを示す。
ストレージシステム103に、ホスト装置101と、管理計算機201が接続されている。
ストレージシステム103は、1以上のストレージ装置で構成されている。1以上のストレージ装置の少なくとも1つが、シンプロビジョニング技術が適用された装置である。
ストレージシステム103は、性能の異なる複数のメディア群を有する。メディア群は、1以上のメディアの集合である。本実施例で言う「メディア」とは、論理ボリュームのことである。
複数のメディア群として、本実施例では、3つのメディア群、具体的には、SSDメディア群109Aと、SAS(Serial Attached SCSI)メディア群109Bと、SATA(Serial ATA(Advanced Technology Attachment))メディア群109Cとがある。SSDメディア群109Aは、SSDメディア(SSDに基づく論理ボリューム)で構成されており、SASメディア群109Bは、SASメディア(SAS−HDD(Hard Disk Drive)に基づく論理ボリューム)で構成されており、SATAメディア群109Cは、SATAメディア(SATA−HDDに基づく論理ボリューム)で構成されている。これら3つのメディア群のうちの少なくとも1つが別種のメディア群であっても良いし、メディア群の数は、2以上であれば良い。例えば、SASメディア群109Bは、SAS10Krpm(回転数が10,000回転/分のSAS)に基づくメディア群と、SAS15Krpm(回転数が15,000回転/分のSAS)に基づくメディア群とに別れていても良い。また、プール107を有するストレージ装置とは別のストレージ装置から提供されたメディア群(外部メディア群)があっても良い。
ストレージシステム103は、複数のプール107を有する。各プール107は、性能の異なる複数のメディアで構成されている。具体的には、例えば、各プール107は、SSDメディア群109Aのうちの1以上のSSDメディアと、SASメディア群109Bのうちの1以上のSASメディアと、SATAメディア群109Cのうちの1以上のSATAメディアとで構成されている。各メディアが、複数のページに区切られている。このため、各プール107は、SSDページ群と、SASページ群と、SATAページ群とで構成されていることになる。
なお、後述するが、1つのプール107には、複数の階層がある。1つの階層は、同じ性能の1以上のメディアで構成される。このため、例えば、上位の階層として、SSDメディアで構成された階層があり、中位の階層として、SASメディアで構成された階層があり、下位の階層として、SATAメディアで構成された階層がある。各階層には、アクセス頻度範囲(アクセス頻度の範囲)が設けられている。アクセス頻度は、単位時間当りのアクセスの数であり、例えば、IOPSで表される。なお、IOPSは、IO per second、すなわち、1秒間当たりに行われるアクセス(I/O(Input/Output))の数である。
ストレージシステム103は、複数のVVOL105を有する。1つのVVOL105が、複数のホスト装置101のうちのいずれか1つのホスト装置101に提供される。本実施例では、VVOL105とホスト装置101が1対1で対応している。VVOL105は、仮想的な論理ボリュームであり、複数の仮想領域(仮想的な記憶領域)で構成されている。仮想領域は、例えば、アドレス(例えばLBA(Logical Block Address))である。
ホスト装置101は、アクセス元の一例である。ホスト装置101は、提供されたVVOL105にアクセスする。具体的には、ホスト装置101は、アクセス先情報を有するアクセスコマンドをストレージシステム103に送信する。アクセス先情報は、アクセス先を表す情報であり、例えば、VVOL105のID(例えばLUN(Logical Unit Number))と仮想領域のID(例えばLBA)とを含んでいる。
本実施例では、ホスト装置101は、計算機である。しかし、ホスト装置101は、他種の装置、例えば、ストレージシステムの外部のストレージ装置(例えば、リモートコピーのコピー元のストレージ装置)であっても良いし、仮想的な計算機であっても良い。例えば、複数の仮想計算機が、物理的なホスト計算機(典型的にはサーバマシン)で実行され、それら複数の仮想計算機は、そのホスト計算機で実行されるハイパバイザ(図示せず)で管理されて良い。このケースでは、例えば、図2に示すように、各仮想計算機(VM)101’は、提供されたVVOLに関連付けられた論理デバイス(VOL)302を認識する(つまり、仮想計算機101’は、VVOLを認識する)。しかし、ハイパバイザは、複数の仮想計算機101’が認識している複数の論理デバイス302を複数のファイルとして認識し、それら複数の論理デバイス302が、ファイルシステム311で管理されることになる。本実施例では、要求性能の一例であるSLO(Service Level Objective)が、VVOL毎に設定されるが、SLOは、ファイルシステム311毎に設定されて良い。
管理計算機201は、ストレージシステム103を管理する計算機である。管理計算機201は、ストレージシステム103から種々の情報を収集し、収集された情報を基に、複数のプール107におけるデータの配置を制御する。管理計算機201が有する機能は、ストレージシステムに備えられても良いし、ホスト装置101に備えられても良い。この場合、管理計算機201は無くても良い。
図3は、複数のホスト装置101のうちの1つのホスト装置101の構成と、管理計算機201の構成と、ストレージシステム103を構成する1以上のストレージ装置のうちの1つのストレージ装置203の構成とを示す。
ストレージ装置203に、第1の通信ネットワーク(例えばLAN(Local Area Network))231を通じて、管理計算機201及びホスト装置101が接続されている。また、ストレージ装置203に、第2の通信ネットワーク(例えばSAN(Storage Area Network)232を通じて、ホスト装置101に接続されている。第1及び第2の通信ネットワーク231及び232は一体であっても良い。
ストレージ装置203は、物理記憶デバイス群と、物理記憶デバイス群に接続されたコントローラ251とを有する。
物理記憶デバイス群は、1以上の物理記憶デバイスである。物理記憶デバイス群として、本実施例では、SSD群309A、SAS群309B及びSATA群309Cがある。SSD群309Aは、1以上のSSDであり、SAS群309Bは、1以上のSAS−HDDであり、SATA群309Cは、1以上のSATA−HDDである。このように、物理記憶デバイス群には、性能の異なる複数の物理記憶デバイスが混在している。
コントローラ251は、管理I/F(図では、M−I/Fと記載)241と、通信I/F242(図では、C−I/Fと記載)242と、デバイスI/F(図では、D−I/F)245と、メモリ243と、それらの要素に接続されたプロセッサ244とを有する。
管理I/F241は、第1のプロトコルで通信するための通信インタフェース装置(例えば、NIC(Network Interface Card))である。
通信I/F242は、第2のプロトコルで通信するための通信インタフェース装置である。
デバイスI/F245は、第3のプロトコルで物理記憶デバイスと通信するための通信インタフェース装置である。物理記憶デバイスの種類毎にデバイスI/F245があっても良い。デバイスI/F245を通じて、物理記憶デバイスに対するアクセスが行われる。
メモリ243は、プロセッサ244で実行されるコンピュータプログラムや、種々の情報を記憶する。また、メモリ243は、キャッシュメモリ領域を有する。キャッシュメモリ領域には、ホスト装置101から受けたライトコマンドに従うデータや、ホスト装置101から受けたリードコマンドに応答してページ(具体的には、ページの基になっている物理記憶デバイス)から読み出されたデータが一時格納される。キャッシュメモリ領域内のライト対象のデータは、ライト先の仮想領域に割り当てられたページの基になっている物理記憶デバイスに格納される。キャッシュメモリ領域内のリード対象のデータは、ホスト装置101に提供される。
ホスト装置101は、管理I/F(例えばNIC)224と、通信I/F(例えばHBA(Host Bus Adapter))226と、記憶資源221と、それら接続されたプロセッサ222とを有する。記憶資源221は、例えば、メモリである(ハードディスクドライブ等の補助記憶装置を含んでも良い)。記憶資源221は、例えば、アプリケーションプログラム(例えば業務プログラム)やOS(Operating System)を記憶し、プロセッサ222が、そのアプリケーションプログラムやOSを実行する。
管理計算機201は、管理I/F(例えばNIC)214と、記憶資源211と、それらに接続されたプロセッサ212とを有する。記憶資源211は、例えば、メモリである(ハードディスクドライブ等の補助記憶装置を含んでも良い)。記憶資源211は、コンピュータプログラムや種々の情報を記憶する。コンピュータプログラムは、プロセッサ212で実行される。
以上が、本実施例に係る計算機システムのハードウェア構成の一例である。前述した管理I/Fや通信I/Fがどのような通信インタフェースデバイスであるかは、例えば、そのI/Fが接続されるネットワークの種類や、そのI/Fを有する装置の種類によって異なる。
図4は、コントローラ251内のメモリ243に記憶されるプログラム及び情報を示す。
プログラムとして、プール管理プログラム401が記憶される。情報として、ページ状態管理テーブル402、プール管理テーブル403、VOL管理テーブル404及びメディア状態管理テーブル405が記憶される。
図5は、ページ状態管理テーブル402を示す。
ページ状態管理テーブル402は、ページ毎の状態を表す。具体的には、例えば、テーブル402は、ページ毎に、下記の情報を有する。
*プールID501:ページを有するプールのID、
*ページID502:ページのID、
*VVOL ID503:ページの割当先の仮想領域を有するVVOLのID。「N/A」は、ページがどの仮想領域にも割り当てられていないこと(Not Assigned)を意味する、
*最近アクセス時刻504:ページに最近アクセスされた時刻を表す情報、
*アクセス頻度505:ページに対するアクセスの頻度。
*プールID501:ページを有するプールのID、
*ページID502:ページのID、
*VVOL ID503:ページの割当先の仮想領域を有するVVOLのID。「N/A」は、ページがどの仮想領域にも割り当てられていないこと(Not Assigned)を意味する、
*最近アクセス時刻504:ページに最近アクセスされた時刻を表す情報、
*アクセス頻度505:ページに対するアクセスの頻度。
最近アクセス時刻504は、ページに対する最近のライトの時刻とページからの最近のリードの時刻とに区別されていても良い。
アクセス頻度505は、ライトの頻度とリードの頻度とに区別されていても良い。アクセス頻度505は、ページに対するアクセスが行われた場合に更新され、アクセスコマンドを受けたもののページに対するアクセスが行われなかった場合には、更新されない。
図6は、プール管理テーブル403を示す。
プール管理テーブル403は、プールを構成する各ページと仮想領域との対応関係を表す。具体的には、例えば、テーブル403は、ページ毎に、下記の情報を有する。
*プールID601:ページを有するプールのID、
*ページID602:ページのID、
*メディアID603:ページを有するメディアのID、
*メディアLBA604:メディアにおけるページの位置(ページの先頭のLBAとそのページの末端のLBA)、
*VVOL ID605:ページの割当先のVVOLのID。「N/A」は、ページがどの仮想領域にも割り当てられていないこと(Not Assigned)を意味する、
*VVOL LBA606:ページの割当先の仮想領域の、VVOLにおける位置(仮想領域の先頭のLBAとその仮想領域の末端のLBA)。
*プールID601:ページを有するプールのID、
*ページID602:ページのID、
*メディアID603:ページを有するメディアのID、
*メディアLBA604:メディアにおけるページの位置(ページの先頭のLBAとそのページの末端のLBA)、
*VVOL ID605:ページの割当先のVVOLのID。「N/A」は、ページがどの仮想領域にも割り当てられていないこと(Not Assigned)を意味する、
*VVOL LBA606:ページの割当先の仮想領域の、VVOLにおける位置(仮想領域の先頭のLBAとその仮想領域の末端のLBA)。
図7は、VOL管理テーブル404を示す。
VOL管理テーブル404は、ストレージ装置が有するボリュームに関する情報を有する。具体的には、例えば、テーブル404は、ボリューム毎に、下記の情報を有する。
*VOL ID701:VVOLのID、又は、メディアのID、
*容量702:VVOLの記憶容量、又は、メディアの記憶容量、
*タイプ703:ボリュームがVVOLかメディアか。ボリュームがメディアであるならば、タイプ703は、メディアのタイプ(SSD、SAS、SATA)を表す、
*プールID704:ボリュームがVVOLの場合に有効な値が設定される情報であって、VVOLに関連付けられたプールのID。
*VOL ID701:VVOLのID、又は、メディアのID、
*容量702:VVOLの記憶容量、又は、メディアの記憶容量、
*タイプ703:ボリュームがVVOLかメディアか。ボリュームがメディアであるならば、タイプ703は、メディアのタイプ(SSD、SAS、SATA)を表す、
*プールID704:ボリュームがVVOLの場合に有効な値が設定される情報であって、VVOLに関連付けられたプールのID。
図8は、メディア状態管理テーブル405を示す。
メディア状態管理テーブル405は、メディアの状態に関する情報を有する。具体的には、例えば、テーブル405は、メディア毎に、下記の情報を有する。
*プールID801:メディアを有するプールのID、
*メディアID:802:メディアのID、
*階層タイプ803:メディアが属する階層のタイプを表す情報、
*アクセス頻度限界804:メディアのアクセス頻度の上限値、
*アクセス頻度805:メディアのアクセス頻度。
*プールID801:メディアを有するプールのID、
*メディアID:802:メディアのID、
*階層タイプ803:メディアが属する階層のタイプを表す情報、
*アクセス頻度限界804:メディアのアクセス頻度の上限値、
*アクセス頻度805:メディアのアクセス頻度。
以上が、テーブル402〜405についての説明である。なお、それらのテーブルに加えて、どのページが割り当てられているかを仮想領域毎に表すマッピング管理テーブル(図示せず)が用意されても良い。仮想領域にページが割り当てられているか否かは、そのマッピング管理テーブルを基に判断されても良い。
再び図4を参照する。
プール管理プログラム401は、前述したテーブル402〜405を基に、例えば、次の処理を行う。
(A)プログラム401は、以下の(a1)〜(a9)の処理を含んだライト処理を行う。
(a1)プログラム401は、ライトコマンドをホスト装置101から受信する。
(a2)プログラム401は、ライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想領域を特定する。
(a3)プログラム401は、ライトコマンドに従うライト対象のデータをキャッシュメモリ領域に格納する。プログラム401は、この段階で、ホスト装置101にライト完了を応答して良い。
(a4)プログラム401は、ページ状態管理テーブル402(又は前述のマッピング管理テーブル)を基に、上記(a2)で特定されたライト先仮想領域にページが割り当てられているかを判断する。
(a5)上記(a4)の判断の結果が肯定的であれば、プログラム401は、ライト先仮想領域に割り当てられているページに、キャッシュメモリ領域内のライト対象のデータを書き込む。
(a6)上記(a4)の判断の結果が否定的であれば、プログラム401は、VOL管理テーブル404と、ページ状態管理テーブル402又はプール管理テーブル403とを基に、ライト先VVOLに関連付けられているプールにおける、未使用のページ(どの仮想領域にも割り当てられていないページ)を特定する。ここで、プログラム401は、メディア状態管理テーブル405を基に、なるべく上位の階層に属するメディアから未使用のページを特定して良い。
(a7)プログラム401は、上記(a6)で特定したページをライト先仮想領域に対応付ける。具体的には、例えば、プログラム401は、プール管理テーブル403に、割り当てたページに対応するVVOL LBA606として、ライト先仮想領域の先頭LBA及び末端LBAを書き込む。
(a8)プログラム401は、上記(a6)で特定したページに、キャッシュメモリ領域内のライト対象のデータを書き込む(プログラム401は、この段階で、ホスト装置101にライト完了を応答して良い)。
(a9)プログラム401は、上記(a5)又は(a8)において、ページ状態管理テーブル402における、データの書込み先のページの最近アクセス時刻504及びアクセス頻度505を更新する。また、それに伴い、プログラム401は、メディア状態管理テーブル405における、そのページを有するメディアのアクセス頻度805を更新する。
(a1)プログラム401は、ライトコマンドをホスト装置101から受信する。
(a2)プログラム401は、ライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想領域を特定する。
(a3)プログラム401は、ライトコマンドに従うライト対象のデータをキャッシュメモリ領域に格納する。プログラム401は、この段階で、ホスト装置101にライト完了を応答して良い。
(a4)プログラム401は、ページ状態管理テーブル402(又は前述のマッピング管理テーブル)を基に、上記(a2)で特定されたライト先仮想領域にページが割り当てられているかを判断する。
(a5)上記(a4)の判断の結果が肯定的であれば、プログラム401は、ライト先仮想領域に割り当てられているページに、キャッシュメモリ領域内のライト対象のデータを書き込む。
(a6)上記(a4)の判断の結果が否定的であれば、プログラム401は、VOL管理テーブル404と、ページ状態管理テーブル402又はプール管理テーブル403とを基に、ライト先VVOLに関連付けられているプールにおける、未使用のページ(どの仮想領域にも割り当てられていないページ)を特定する。ここで、プログラム401は、メディア状態管理テーブル405を基に、なるべく上位の階層に属するメディアから未使用のページを特定して良い。
(a7)プログラム401は、上記(a6)で特定したページをライト先仮想領域に対応付ける。具体的には、例えば、プログラム401は、プール管理テーブル403に、割り当てたページに対応するVVOL LBA606として、ライト先仮想領域の先頭LBA及び末端LBAを書き込む。
(a8)プログラム401は、上記(a6)で特定したページに、キャッシュメモリ領域内のライト対象のデータを書き込む(プログラム401は、この段階で、ホスト装置101にライト完了を応答して良い)。
(a9)プログラム401は、上記(a5)又は(a8)において、ページ状態管理テーブル402における、データの書込み先のページの最近アクセス時刻504及びアクセス頻度505を更新する。また、それに伴い、プログラム401は、メディア状態管理テーブル405における、そのページを有するメディアのアクセス頻度805を更新する。
(B)プログラム401は、以下の(b1)〜(b8)の処理を含んだリード処理を行う。
(b1)プログラム401は、リードコマンドをホスト装置101から受信する。
(b2)プログラム401は、リードコマンドが有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(b3)プログラム401が、リード対象のデータがキャッシュメモリ領域に残っているか否かを判断する。
(b4)上記(b3)の判断の結果が肯定的の場合、プログラム401は、キャッシュメモリ領域内のリード対象データを、ホスト装置101に送信する。この場合、リード元仮想領域に割り当てられているページの最終アクセス時刻504及びアクセス頻度505(及び、そのページを有するメディアのアクセス頻度805)は、更新されない。
(b5)上記(b3)の判断の結果が否定的の場合、プログラム401は、ページ状態管理テーブル402(又は前述のマッピング管理テーブル)を基に、上記(b2)で特定されたリード元仮想領域にページが割り当てられているかを判断する。
(b6)上記(b5)の判断の結果が否定的であれば、プログラム401は、所定のデータ(例えばエラー)をホスト装置101に送信する。
(b7)上記(b5)の判断の結果が肯定的であれば、プログラム401は、リード元仮想領域に割り当てられているページからデータを読み出し、そのデータをキャッシュメモリ領域に書き込む。そして、プログラム401は、キャッシュメモリ領域内のそのデータをホスト装置101に送信する。
(b8)プログラム401は、上記(b6)において、ページ状態管理テーブル402における、データの書込み先のページの最近アクセス時刻504及びアクセス頻度505を更新する。また、それに伴い、プログラム401は、メディア状態管理テーブル405における、そのページを有するメディアのアクセス頻度805を更新する。
(b1)プログラム401は、リードコマンドをホスト装置101から受信する。
(b2)プログラム401は、リードコマンドが有するアクセス先情報を基に、リード元VVOLとリード元仮想領域を特定する。
(b3)プログラム401が、リード対象のデータがキャッシュメモリ領域に残っているか否かを判断する。
(b4)上記(b3)の判断の結果が肯定的の場合、プログラム401は、キャッシュメモリ領域内のリード対象データを、ホスト装置101に送信する。この場合、リード元仮想領域に割り当てられているページの最終アクセス時刻504及びアクセス頻度505(及び、そのページを有するメディアのアクセス頻度805)は、更新されない。
(b5)上記(b3)の判断の結果が否定的の場合、プログラム401は、ページ状態管理テーブル402(又は前述のマッピング管理テーブル)を基に、上記(b2)で特定されたリード元仮想領域にページが割り当てられているかを判断する。
(b6)上記(b5)の判断の結果が否定的であれば、プログラム401は、所定のデータ(例えばエラー)をホスト装置101に送信する。
(b7)上記(b5)の判断の結果が肯定的であれば、プログラム401は、リード元仮想領域に割り当てられているページからデータを読み出し、そのデータをキャッシュメモリ領域に書き込む。そして、プログラム401は、キャッシュメモリ領域内のそのデータをホスト装置101に送信する。
(b8)プログラム401は、上記(b6)において、ページ状態管理テーブル402における、データの書込み先のページの最近アクセス時刻504及びアクセス頻度505を更新する。また、それに伴い、プログラム401は、メディア状態管理テーブル405における、そのページを有するメディアのアクセス頻度805を更新する。
(C)プログラム401は、以下の(c1)〜(c3)の処理を含んだメディア追加処理を行う。なお、(c3)の後に、後述の(E)リバランス処理が行われて良い。
(c1)プログラム401は、追加対象のメディアにIDを付与する。
(c2)プログラム401は、追加対象のメディアをページに分割し、分割により得られた各ページにIDを付与する。
(c3)プログラム401は、追加対象のメディアに関する情報(メディアの追加先のプールのID、(c1)で付与されたメディアID、(c2)で付与されたページID等)を、テーブル402〜405に追加する。
(c1)プログラム401は、追加対象のメディアにIDを付与する。
(c2)プログラム401は、追加対象のメディアをページに分割し、分割により得られた各ページにIDを付与する。
(c3)プログラム401は、追加対象のメディアに関する情報(メディアの追加先のプールのID、(c1)で付与されたメディアID、(c2)で付与されたページID等)を、テーブル402〜405に追加する。
(D)プログラム401は、以下の(d1)及び(d2)の処理を含んだメディア削除処理を行う。
(d1)プログラム401は、削除対象のメディア内の全ての使用ページ(いずれかの仮想領域に割り当てられているページ)内のデータを他のメディアにマイグレーションするリバランス処理を実行する。
(d2)プログラム401は、削除対象のメディアに関する情報を、テーブル402〜405から削除する。
(d1)プログラム401は、削除対象のメディア内の全ての使用ページ(いずれかの仮想領域に割り当てられているページ)内のデータを他のメディアにマイグレーションするリバランス処理を実行する。
(d2)プログラム401は、削除対象のメディアに関する情報を、テーブル402〜405から削除する。
(E)プログラム401は、以下の(e1)〜(e4)の処理を含んだリバランス処理を行うことができる。その場合、例えば、メモリ243は、管理計算機201が有する後述の階層定義テーブルを有していて良い。このリバランス処理は、定期的に行われて良い。また、このリバランス処理は、上記(d1)でのリバランス処理に適用されて良い。
(e1)プログラム401は、マイグレーション元のページを見つける。マイグレーション元のページは、不適切に配置されているデータが記憶されているページである。具体的には、マイグレーション元のページは、ページのアクセス頻度505がそのページを有する階層のアクセス頻度範囲に属していないページである。なお、マイグレーション元のページは、上記(d1)のリバランス処理では、削除対象のメディア内の使用ページである。
(e2)プログラム401は、上記(e1)で見つけたマイグレーション元ページのアクセス頻度505が属するアクセス頻度範囲に対応した階層を特定する。
(e3)プログラム401は、上記(e2)で特定した階層から、未使用のページを特定する。ここで特定された未使用のページが、マイグレーション先のページである。
(e4)プログラム401は、上記(e1)で特定したマイグレーション元ページ内のデータを、上記(e3)で特定したマイグレーション先ページにマイグレーションする。また、プログラム401は、マイグレーション元ページが割り当てられている仮想領域に、マイグレーション元ページに代えて、マイグレーション先ページを割り当てる(テーブル402及び403が更新される)。
(e1)プログラム401は、マイグレーション元のページを見つける。マイグレーション元のページは、不適切に配置されているデータが記憶されているページである。具体的には、マイグレーション元のページは、ページのアクセス頻度505がそのページを有する階層のアクセス頻度範囲に属していないページである。なお、マイグレーション元のページは、上記(d1)のリバランス処理では、削除対象のメディア内の使用ページである。
(e2)プログラム401は、上記(e1)で見つけたマイグレーション元ページのアクセス頻度505が属するアクセス頻度範囲に対応した階層を特定する。
(e3)プログラム401は、上記(e2)で特定した階層から、未使用のページを特定する。ここで特定された未使用のページが、マイグレーション先のページである。
(e4)プログラム401は、上記(e1)で特定したマイグレーション元ページ内のデータを、上記(e3)で特定したマイグレーション先ページにマイグレーションする。また、プログラム401は、マイグレーション元ページが割り当てられている仮想領域に、マイグレーション元ページに代えて、マイグレーション先ページを割り当てる(テーブル402及び403が更新される)。
なお、(E)のリバランス処理は、アクセス頻度とアクセス頻度範囲との比較に代えて又は加えて、各ページの最近アクセス時刻504からどのぐらい経過したかを基に行われても良い。
図9は、管理計算機201内の記憶資源211に記憶されるプログラム及び情報を示す。
プログラムとして、VVOL管理プログラム5010、性能管理プログラム5020、及び状態管理プログラム5030が記憶される。情報として、VVOL管理テーブル5040及び階層定義テーブル5050が記憶される。
図10は、VVOL管理テーブル5040を示す。
VVOL管理テーブル5040は、VVOLに関する情報を有する。具体的には、例えば、テーブル5040は、VVOL毎に、下記の情報を有する。
*VVOL ID1001:VVOLのID、
*サブシステムID1002:VVOLを有するストレージ装置のID、
*プールID1003:VVOLに関連付けられているプールのID、
*SLO1004:VVOLのSLOを表す情報、
*容量1005:VVOLの容量を表す情報、
*使用容量1006:VVOLを構成する仮想領域のうちページが割り当てられている仮想領域の総記憶容量を表す情報、
*性能1007:VVOLの性能を表す情報。
*VVOL ID1001:VVOLのID、
*サブシステムID1002:VVOLを有するストレージ装置のID、
*プールID1003:VVOLに関連付けられているプールのID、
*SLO1004:VVOLのSLOを表す情報、
*容量1005:VVOLの容量を表す情報、
*使用容量1006:VVOLを構成する仮想領域のうちページが割り当てられている仮想領域の総記憶容量を表す情報、
*性能1007:VVOLの性能を表す情報。
SLO1004は、性能1007と比較される閾値又はその閾値の基になる値である。性能1007は、VVOLの平均のレスポンスタイムである。ここで言う「レスポンスタイム」とは、例えば、VVOLを指定したアクセスコマンドがストレージ装置に入ってから応答がホスト装置101に返されるまでの時間長である。
VVOLの平均レスポンスタイムは、下記の(1)式により算出することができる。
(VVOLの平均レスポンスタイム)=(VVOLに割り当てられている全てのページについての、アクセス頻度とレスポンスタイムの積の和)/(VVOLに割り当てられている全てのページについてのアクセス頻度の和)・・・(1)。
ここで、アクセス頻度の単位は、例えば、IOPS(IO per second)である。
例えば、VVOLにページ1〜6が割り当てられているとする。ページ1〜6のそれぞれについて、「ページが属する階層/その階層でのアクセス速度/ページのアクセス頻度」は、次の通りであるとする。
ページ1:上位階層(SSD)/1/100、
ページ2:中位階層(SAS)/10/50、
ページ3:中位階層(SAS)/10/20、
ページ4:下位階層(SATA)/20/10、
ページ5:下位階層(SATA)/20/5、
ページ6:下位階層(SATA)/20/0。
ページ1:上位階層(SSD)/1/100、
ページ2:中位階層(SAS)/10/50、
ページ3:中位階層(SAS)/10/20、
ページ4:下位階層(SATA)/20/10、
ページ5:下位階層(SATA)/20/5、
ページ6:下位階層(SATA)/20/0。
この場合、(1)式によれば、VVOLの平均レスポンスタイムKは、
K=(100×1+50×10+20×10+10×20+5×20+0×20)/(100+50+20+10+15)
=約5.37
となる。アクセス速度は、後に説明する階層定義テーブル5050から分かる。
K=(100×1+50×10+20×10+10×20+5×20+0×20)/(100+50+20+10+15)
=約5.37
となる。アクセス速度は、後に説明する階層定義テーブル5050から分かる。
このようにして求められた平均レスポンスタイム(性能)は、SLO(又はSLOの所定割合(例えば80%))と比較される。
なお、以下の説明では、SLO1004が大きい/小さい、性能1007が大きい/小さい、という言い方をするが、それは、SLOの値が大きい/小さい、性能の値が大きい/小さい、という意味である。性能1007(及びSLO1004)が例えば平均レスポンスタイムの場合、性能1007(及びSLO1004)が大きいということは、性能(及びSLO)が低いということを意味し、性能1007(及びSLO1004)が小さいということは、性能(及びSLO)が高いということを意味する。
図11は、階層定義テーブル5050を示す。
階層定義テーブル5050は、階層の定義を表す。具体的には、例えば、テーブル5050は、階層毎に、下記の情報を有する。
*階層タイプ1101:階層のタイプを表す情報、
*メディアタイプ1102:階層に属するメディアのタイプを表す情報、
*速度1103:階層に対するアクセスの速度を表す情報、
*最大アクセス頻度1104:階層に対応するアクセス頻度の最大値、
*コスト1105:階層に属するメディアのコストを表す情報。
*階層タイプ1101:階層のタイプを表す情報、
*メディアタイプ1102:階層に属するメディアのタイプを表す情報、
*速度1103:階層に対するアクセスの速度を表す情報、
*最大アクセス頻度1104:階層に対応するアクセス頻度の最大値、
*コスト1105:階層に属するメディアのコストを表す情報。
各階層の最大アクセス頻度1104により、各階層のアクセス頻度範囲が表されている。具体的には、図11によれば、上位階層(SSD)のアクセス頻度範囲は、25000〜2500(2500を含まない)であり、中位階層(SAS)のアクセス頻度範囲は、2500〜1250(1250を含まない)であり、下位階層(SATA)のアクセス頻度範囲は、1250〜0である。
以下、実施例1で行われる処理を説明する。
実施例1では、不適切なVVOLが検出される。その場合に、下記の(1)〜(3)の処理が行われる。
(1)不適切なVVOLに関連付けられているプールに、他のプールから、メディアがマイグレーションされる。マイグレーション元のプールは、マイグレーション先のプールを有するストレージ装置内のプールである。
(2)不適切なVVOLに割り当てられている全てのページ内のデータが、そのページを有するプールから、別のプールにマイグレーションされる。
(3)上記(1)及び(2)で、不適切なVVOLが適切なVVOLにならなければ、不適切なVVOLに関連付けられているプールにメディアが追加される。
(1)不適切なVVOLに関連付けられているプールに、他のプールから、メディアがマイグレーションされる。マイグレーション元のプールは、マイグレーション先のプールを有するストレージ装置内のプールである。
(2)不適切なVVOLに割り当てられている全てのページ内のデータが、そのページを有するプールから、別のプールにマイグレーションされる。
(3)上記(1)及び(2)で、不適切なVVOLが適切なVVOLにならなければ、不適切なVVOLに関連付けられているプールにメディアが追加される。
また、実施例1では、不適切なメディアが検出される。その場合に、そのメディアを有する階層内でのデータ再配置か、或いは、そのメディアを有する階層にメディアが追加される。
以下、実施例1で行われる処理を詳細に説明する。
<仮想ボリューム管理>。
VVOL管理プログラム5010が、VVOLを管理する。例えば、プログラム5010は、管理者からVVOLの作成の指示を受ける。その際、プログラム5010は、VVOLの容量及びSLO等を受ける。プログラム5010は、VVOLの作成指示に応答して、VVOLに関連付けるプール及びプールを有するストレージ装置を決定する。そして、プログラム5010は、その決定に従う情報と、VVOLの容量及びSLOとを含んだエントリ(レコード)を、VVOL管理テーブル5040に追加する。
<状態管理>。
図12は、第1の状態管理処理の流れを示す。この処理は、例えば定期的に行われる。
状態管理プログラム5030は、ページ状態管理テーブル402をストレージ装置から取得する(ステップS1001)。
プログラム5030は、取得したテーブル402を基に、VVOL管理テーブル5040を更新する(S1002)。1つのVVOLを例に採れば、具体的には、下記が行われる。
*プログラム5030は、VVOLに割り当てられている全てのページの総記憶容量を、そのVVOLに対応した使用容量1006の欄に書き込む。
*プログラム5030は、どの階層から幾つのページがVVOLに割り当てられているかと、各階層の速度とを基に、VVOLの性能を算出する。プログラム5030は、算出された性能を表す情報を、VVOLに対応した性能1007の欄に書き込む。
*プログラム5030は、VVOLに割り当てられている全てのページの総記憶容量を、そのVVOLに対応した使用容量1006の欄に書き込む。
*プログラム5030は、どの階層から幾つのページがVVOLに割り当てられているかと、各階層の速度とを基に、VVOLの性能を算出する。プログラム5030は、算出された性能を表す情報を、VVOLに対応した性能1007の欄に書き込む。
プログラム5030は、不適切なVVOLがあるかどうかを判断する(S1003)。不適切なVVOLは、性能1007がSLO1004を満たしていないVVOLである。具体的には、例えば、不適切なVVOLは、性能1007がSLO1004と係数gとの積より大きいVVOL(例えば、平均レスポンスタイムがSLO1004と係数gとの積より長いVVOL)である。なお、係数gは0より大きく1以下の数である。g=1の場合、性能1007はSLO1004それ自体と比較される。
S1003の判断の結果が肯定的であれば、プログラム5030は、アラート1を出力する(S1004)。アラート1は、例えば、S1003で不適切と判断されたVVOLのIDを有する。
図13は、第2の状態管理処理の流れを示す。この処理は、例えば定期的に行われる。
状態管理プログラム5030は、メディア状態管理テーブル405をストレージ装置から取得する(ステップS1101)。
プログラム5030は、取得したテーブル405を基に、不適切なメディアがあるかどうかを判断する(S1102)。不適切なメディアは、アクセス頻度805がアクセス頻度上限804を超えているメディアである。
S1102の判断の結果が肯定的であれば、プログラム5030は、アラート2を出力する(S1103)。アラート2は、例えば、S1102で不適切と判断されたメディアのIDを有する。
<性能管理>。
図14は、アラート1(第1の状態管理処理で発行されたアラート)を受信した性能管理プログラム5020が行う処理の流れを示す。なお、以下の説明では、アラート1の原因になった不適切なVVOLを、「アラート1−VVOL」と言い、アラート1−VVOLに関連付けられているプールを、「アラート1−プール」と言い、アラート1−プールを有するストレージ装置を「アラート1−ストレージ装置」と言う。
性能管理プログラム5020は、改善目標を決定する(S1201)。改善目標は、例えば、アラート1−VVOLの性能が、そのVVOLのSLO1040と係数gとの積より低いこと、である。アラート1−VVOLは、例えば、アラート1が有するVVOLのIDから特定される。
プログラム5020は、S1201で決定した改善目標を、メディアマイグレーションで達成できるか否かを判断する(S1202)。S1202の判断の結果が肯定的であれば、S1202で作成された指示が、アラート1−ストレージ装置に送信される(S1204)。
S1202の判断の結果がNOであれば、プログラム5020は、S1201で決定した改善目標を、VVOLマイグレーションで、達成できるか否かを判断する(S1203)。S1203の判断の結果が肯定的であれば、S1203で作成された指示が、アラート1−ストレージ装置に送信される(S1204)。
S1203の判断の結果が否定的であれば、S1205が行われる。すなわち、プログラム5020は、S1201で決定した改善目標を達成するための追加容量(追加すべき記憶容量)を決定し、決定した追加容量を追加することの指示(以下、メディア追加指示)を作成する。このメディア追加指示が、アラート1−ストレージ装置に送信され、そのストレージ装置において、そのメディア追加指示に従う容量がプールに追加される。S1205では、具体的には、例えば、以下の処理が行われる。
*プログラム5020が、階層定義テーブル505を基に、どの階層に幾つのページを追加すれば、S1201で決定した改善目標を達成できるか計算する。ここで、W1、W2、W3が算出されたとする。W1は、上位階層(SSD)に追加する容量、すなわち、上位階層(SSD)について算出されたページ数の総記憶容量である。W2は、中位階層(SAS)に追加する容量、すなわち、中位階層(SAS)について算出されたページ数の総記憶容量である。W3は、下位階層(SATA)に追加する容量、すなわち、下位階層(SATA)について算出されたページ数の総記憶容量である。
*プログラム5020が、メディア追加指示を作成する。そのメディア追加指示は、前述のW1、W2及びW3と、アラート1−プールのIDとを有する。S1204で、このメディア追加指示がアラート1−ストレージ装置に送信される。そのストレージ装置において、プール管理プログラム401が、W1以上の総記憶容量の1以上のSSDメディア、W2以上の総記憶容量の1以上のSASメディア、及び、W3以上の総記憶容量の1以上のSATAメディアを、メディア追加指示から特定されるプールに追加する。ここでプールに追加されるメディアは、例えば、未使用のメディアである。
*プログラム5020が、階層定義テーブル505を基に、どの階層に幾つのページを追加すれば、S1201で決定した改善目標を達成できるか計算する。ここで、W1、W2、W3が算出されたとする。W1は、上位階層(SSD)に追加する容量、すなわち、上位階層(SSD)について算出されたページ数の総記憶容量である。W2は、中位階層(SAS)に追加する容量、すなわち、中位階層(SAS)について算出されたページ数の総記憶容量である。W3は、下位階層(SATA)に追加する容量、すなわち、下位階層(SATA)について算出されたページ数の総記憶容量である。
*プログラム5020が、メディア追加指示を作成する。そのメディア追加指示は、前述のW1、W2及びW3と、アラート1−プールのIDとを有する。S1204で、このメディア追加指示がアラート1−ストレージ装置に送信される。そのストレージ装置において、プール管理プログラム401が、W1以上の総記憶容量の1以上のSSDメディア、W2以上の総記憶容量の1以上のSASメディア、及び、W3以上の総記憶容量の1以上のSATAメディアを、メディア追加指示から特定されるプールに追加する。ここでプールに追加されるメディアは、例えば、未使用のメディアである。
メディアの追加は、このように自動で行われることに代えて、管理者によって手動で行われても良い。例えば、プログラム5020が、算出したW1、W2、W3を表示し、管理者が、そのW1〜W3を基に、プールに容量を追加しても良い。
以上が、アラート1を受信した場合に行われる処理である。なお、S1203よりもS1202が先に行われているが、その理由は、メディアマイグレーションのコストの方が、VVOLマイグレーションのコストよりも低いためである。「メディアマイグレーション」とは、アラート1−プールとは別のプールを構成するメディアをアラート1−プールにマイグレーションすることである。メディアマイグレーションは、ストレージ装置間で行われても良いが、本実施例では、1つのストレージ装置内で行われる。つまり、メディアのマイグレーション元のプールとメディアのマイグレーション先のプール(アラート1−プール)は、1つのストレージ装置内に存在する。「VVOLマイグレーション」とは、VVOLに割り当てられている全てのページ内のデータを、アラート1−プールから別のプールにマイグレーションすることである。この場合、マイグレーション対象のVVOLは、アラート1−プールに代えてマイグレーション先のプールに関連付けられる。VVOLマイグレーションは、1つのストレージ装置内で行われても良いし、ストレージ装置間で行われても良い。
図15は、図14のS1202の処理の流れを示す。
プログラム5020は、必要メディア量(=X)を見積もる(S1301)。具体的には、例えば、プログラム5020は、アラート1−ストレージ装置からページ状態管理テーブル402を取得し、そのテーブル402を基に、どの階層に幾つのページを追加すれば、S1201で決定した改善目標を達成できるか計算する。ここで、X1、X2、X3が算出されたとする。X1は、上位階層(SSD)に追加する容量、すなわち、上位階層(SSD)について算出されたページ数の総記憶容量である。X2は、中位階層(SAS)に追加する容量、すなわち、中位階層(SAS)について算出されたページ数の総記憶容量である。X3は、下位階層(SATA)に追加する容量、すなわち、下位階層(SATA)について算出されたページ数の総記憶容量である。なお、ページ状態管理テーブル402を取得せずに、図12のS1001で取得されたページ状態管理テーブル402が使用されても良い。
プログラム5020は、アラート1−プール以外のプールであって、アラート1−ストレージ装置におけるプールの中に、S1304で選択されていないプールがあるか否かを判断する(S1302)。
S1302の判断の結果が肯定的の場合、プログラム5020は、アラート1−プール以外のプールから未だ選択されていないプールを選択する(S1304)。
そして、プログラム5020は、性能余剰メディア量(=Q)を算出する(S1305)。具体的には、例えば、以下の処理が行われる。
*プログラム5020は、S1304で選択されたプールについて、S1301と同様の方法で、各階層についての必要メディア量を計算する。
*プログラム5020は、S1304で選択されたプールについて、階層毎に使用容量(仮想領域に割り当てられているページの総記憶容量)を計算する。
*プログラム5020は、階層毎に、算出された必要メディア容量から算出された使用容量を引くことで、階層毎の性能余剰メディア量を計算する。上位階層、中位階層及び下位階層の性能余剰メディア量を、それぞれ、Q1、Q2、Q3とする。
*プログラム5020は、S1304で選択されたプールについて、S1301と同様の方法で、各階層についての必要メディア量を計算する。
*プログラム5020は、S1304で選択されたプールについて、階層毎に使用容量(仮想領域に割り当てられているページの総記憶容量)を計算する。
*プログラム5020は、階層毎に、算出された必要メディア容量から算出された使用容量を引くことで、階層毎の性能余剰メディア量を計算する。上位階層、中位階層及び下位階層の性能余剰メディア量を、それぞれ、Q1、Q2、Q3とする。
プログラム5020は、Q1>X1、Q2>X2、及びQ3>X3であるか否かを判断する(S1306)。これらのうちの少なくとも1つが違っていれば、この判断の結果は否定的となり、S1302が再度行われる。
S1306の判断の結果が肯定的であれば、プログラム5020は、メディアマイグレーション指示を作成する(S1307)。その指示は、例えば、下記の情報を有する。
*マイグレーション元のプールのID、
*マイグレーション先のプール(つまり、アラート1−プール)のID、
*各階層について、性能余剰メディア量以上の総記憶容量の1以上のメディア(すなわち、マイグレーション対象の1以上のメディア)のID。
*マイグレーション元のプールのID、
*マイグレーション先のプール(つまり、アラート1−プール)のID、
*各階層について、性能余剰メディア量以上の総記憶容量の1以上のメディア(すなわち、マイグレーション対象の1以上のメディア)のID。
これらの情報のうち、性能余剰メディア量以上の総記憶容量の1以上のメディア(マイグレーション対象の1以上のメディア)のIDは、プール管理テーブル403及びVOL管理テーブル404から特定することができる。また、各階層について、マイグレーション対象のメディアは、その階層において、使用ページ(仮想領域に割り当てられているページ)の数が最も少ないメディアである。なお、使用ページを有するメディアがマイグレーション対象のメディアの場合、アラート1−ストレージ装置では、使用ページ内のデータが、マイグレーション対象のメディアではない、同じ階層内のメディアにマイグレーションされた後、マイグレーション対象のメディアが、マイグレーション元のプールから外されて、マイグレーション先のプールに追加される。
S1302の判断の結果が否定的の場合、プログラム5020は、各階層について、これまでに算出された性能余剰メディア量の合計が、必要メディア量を超えているか否かを判断する(S1303)。
S1303の判断の結果が肯定的であれば、前述したS1307が行われる。なお、この場合、S1307で作成される指示は、複数の、マイグレーション元のプールのIDを有する。
S1307が行われると、図14のS1202の判断結果が肯定的であり、S1303の判断結果が否定的であると(つまりS1307が行われないと)、図14のS1202の判断結果も否定的である。
以上が、図14のS1202の処理の流れである。なお、本処理は、プール毎の逐次処理に行われることに代えて、複数のプールについての並行処理であっても良い。
図16は、図14のS1203の処理の流れを示す。
プログラム5020は、ストレージシステム103内の、アラート1−プール以外のプールの中に、S1401で選択されていないプールがあるか否かを判断する(S1401)。
S1401の判断の結果が肯定的の場合、プログラム5020は、アラート1−プール以外のプールから未だ選択されていないプールを選択する(S1402)。
そして、プログラム5020は、S1402で選択したプールに、アラート1−VVOLの記憶容量以上の空き容量があるか否かを判断する(S1403)。アラート1−VVOLの記憶容量は、VVOL管理テーブル5040から分かり、S1402で選択したプールの空き容量は、ページ状態管理テーブル402から分かる。空き容量は、1以上の未使用のページ(仮想領域に割り当てられていないページ)の総記憶容量である。
S1403の判断の結果が否定的の場合、S1401が再度行われる。
S1403の判断の結果が肯定的の場合、プログラム5020は、S1402で選択したプールの分布に、アラート1−VVOLの分布を合成する(S1404)。ここで言う「分布」は、アクセス分布、具体的には、アクセス頻度とページ数との関係に従う分布である。より具体的には、例えば、アクセス分布は、アクセス頻度範囲毎に、そのアクセス頻度範囲に該当するページの総数を表す。アクセス頻度範囲は、アクセス頻度それ自体であっても良い。
プログラム5020は、S1404での合成後のアクセス分布を基に、アラート1−VVOLについての改善目標(図14のS1201で決定された目標)を満たし、且つ、S1402で選択したプールに関連付けられている各VVOLの性能が、(SLO×係数g)以下のままか否かを判断する(S1405)。
S1405の判断の結果が否定的の場合、S1401が再度行われる。
S1405の判断の結果が肯定的の場合、プログラム5020は、VVOLマイグレーション指示を作成する(S1406)。その指示は、例えば、下記の情報を有する。
*マイグレーション対象のVVOL(つまりアラート1−VVOL)のID、
*マイグレーション先のストレージ装置のID、
*マイグレーション先のプールのID。
*マイグレーション対象のVVOL(つまりアラート1−VVOL)のID、
*マイグレーション先のストレージ装置のID、
*マイグレーション先のプールのID。
S1406が行われると、図14のS1203の判断結果が肯定的であり、S1401の判断結果が否定的であると(つまりS1406が行われないと)、図14のS1203の判断結果が否定的である。
S1406で作成されたVVOLマイグレーション指示は、アラート1−ストレージ装置に送信される。そのストレージ装置では、その指示に応答して、プール管理プログラム401が、マイグレーション対象のVVOLに割り当てられている全てのページについて、下記の処理を行う。
*プログラム401が、マイグレーション対象のVVOLに割り当てられているページ(マイグレーション元のページ)内のデータを、マイグレーション先のストレージ装置におけるマイグレーション先のプール内の未使用のページ(マイグレーション先のページ)にマイグレーションする。
*プログラム401が、マイグレーション元のページが割り当てられていた仮想領域に、マイグレーション元のページに代えてマイグレーション先のページを割り当てる。
*プログラム401が、マイグレーション対象のVVOLに割り当てられているページ(マイグレーション元のページ)内のデータを、マイグレーション先のストレージ装置におけるマイグレーション先のプール内の未使用のページ(マイグレーション先のページ)にマイグレーションする。
*プログラム401が、マイグレーション元のページが割り当てられていた仮想領域に、マイグレーション元のページに代えてマイグレーション先のページを割り当てる。
以上が、図14のS1203の処理の流れである。
図17は、アラート2(第2の状態管理処理で発行されたアラート)を受信した性能管理プログラム5020が行う処理の流れを示す。なお、以下の説明では、アラート2の原因になったメディアを有するプールを、「アラート2−プール」と言い、アラート2−プールを有するストレージ装置を「アラート2−ストレージ装置」と言う。
プログラム5020は、メディア状態管理テーブル405(例えば、図13のS1101で取得されたテーブル405)を基に、アラート2−プールにおける各階層について、アクセス頻度の合計がアクセス頻度上限の合計を超えているか否かを判断する(S1501)。具体的には、例えば、プログラム5020は、各階層について、以下の処理を行う。
*プログラム5020は、階層に属する全てのメディアをテーブル405から特定する。
*プログラム5020は、特定された全てのメディアについて、アクセス頻度上限804の合計と、アクセス頻度805の合計とを計算する。
*プログラム5020は、アクセス頻度805の合計がアクセス頻度上限804の合計を超えているか否かを判断する。
*プログラム5020は、階層に属する全てのメディアをテーブル405から特定する。
*プログラム5020は、特定された全てのメディアについて、アクセス頻度上限804の合計と、アクセス頻度805の合計とを計算する。
*プログラム5020は、アクセス頻度805の合計がアクセス頻度上限804の合計を超えているか否かを判断する。
S1501の判断の結果が否定的となった階層について、プログラム5020は、S1502を行う。すなわち、プログラム5020は、一つの階層において、データ再配置を行う。例えば、一つの階層における複数のデータが、その一つの階層に属する複数のメディアに均等に配置されるよう、アラート2の原因となったメディアに集中しているデータが、そのメディアと同じ階層における他のメディアにマイグレーションされる。
S1501の判断の結果が肯定的となった階層について、プログラム5020は、図14のS1205と同様の処理を行う。具体的には、例えば、プログラム5020は、その階層に容量を追加することの指示を作成しその指示をアラート2−ストレージ装置に送信する、又は、その階層に追加する容量を表示する。
以下、本発明の実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
実施例1では、現実に問題が生じているVVOL(性能1007がSLO1004と係数gとの積を超えているVVOL)が、不適切なVVOLとして検出されるが、実施例2では、現実に問題は生じていないが将来問題が生じる可能性が高いVVOL(性能1007がSLO1004と係数gとの積を将来超える可能性の高いVVOL)が、不適切なVVOLとして検出される。そして、そのVVOLに割り当てられている全てのページ内のデータが、それらのページを有するプールから別のプールにマイグレーションされる。これにより、将来問題が生じる可能性を低減することができる。
以下、実施例2を詳細に説明する。
図18は、実施例2に係るVVOL管理テーブル2004を示す。
このテーブル2004は、図10に示したテーブル5040が有する情報1001〜1007の他に、VVOL毎に、アクセス分布1008を有する。アクセス分布1008は、アクセス頻度範囲毎に、そのアクセス頻度範囲に該当するページの総数とページ割合を表す。ページ割合は、VVOLに割り当てられているページの総数に対する、アクセス頻度範囲に該当するページの総数の割合である。図では、アクセス頻度範囲のサイズは、250であるが、アクセス頻度範囲のサイズは、例えば、1以上で整数であれば何でも良い。
VVOL管理プログラム5010が、ページ状態管理テーブル402を基に、VVOL毎のアクセス分布1008を算出することができる。
実施例2では、性能管理プログラム5020が、図19に示す処理を行う。
図19は、実施例2に係る性能管理プログラム5020が行うリバランス処理の流れを示す。
プログラム5020は、VVOL管理テーブル2004を基に、不適切なVVOLがあるか否かを判断する(S2101)。ここで言う「不適切なVVOL」は、相対的にSLO1004が小さいのに相対的に性能1007(平均レスポンスタイム)が大きいVVOLである。例えば、1つのプールに、下記の3つのVVOLが関連付けられていた場合、VVOL11が、性能1007がSLO1004と係数gとの積を超えていないものの、不適切なVVOLであると検出される。なぜなら、VVOL11のSLOは、VVOL13のSLOより小さいのに、VVOL 11の性能が、VVOL13の性能より大きいからである。
VVOL11 SLO:16.0、性能:14.1
VVOL12 SLO:12.0、性能: 4.5
VVOL13 SLO:18.0、性能:12.2。
VVOL11 SLO:16.0、性能:14.1
VVOL12 SLO:12.0、性能: 4.5
VVOL13 SLO:18.0、性能:12.2。
なお、不適切なVVOLの検出には、下記の(i)及び(ii)の一方又は両方が採用されても良い。
(i)SLOが相対的に低い第1のVVOLの性能が、SLOが相対的に高い第2のVVOLの性能より高くても、その差が、所定の閾値(0より大きい値)以下であれば、第1のVVOLは、不適切なVVOLとして検出されなくて良い。具体的には、例えば、所定の閾値として2.0が設定されている場合、VVOL11は、不適切なVVOLとして検出されない。なぜなら、VVOL11の性能とVVOL13の性能の差は1.9であり、それは、閾値2.0以下であるからである。
(ii)不適切なVVOL検出には、VVOL毎の履歴情報を基に決定されても良い。履歴情報の一例を、図20に示す。履歴情報2001は、例えば、VVOLにどの時点でどの階層から幾つのページが割り当てられていたかを表す情報である。また、履歴情報2001は、複数の時点での階層毎の使用ページ数を基に集計された、階層毎の使用ページ数を表す情報(以下、階層毎の集計情報)2002を有する。この履歴情報2001(例えば階層毎の集計情報2002)を基に、VVOLの性能1007が補正され、各VVOLの補正後の性能1007を用いて、VVOL同士の性能差が算出されても良い。履歴情報2001は、例えば、プール管理テーブル403を基にVVOL管理プログラム5010によって更新されて良い。また、履歴情報2001は、各時点についての重み係数を表す情報2003を有していても良い(図20によれば、現在に近い時点ほど、重み係数が大きい)。VVOLの性能1007は、各時点の階層毎のページ数に加えて、各時点の重み係数を用いて、補正されても良い。
(i)SLOが相対的に低い第1のVVOLの性能が、SLOが相対的に高い第2のVVOLの性能より高くても、その差が、所定の閾値(0より大きい値)以下であれば、第1のVVOLは、不適切なVVOLとして検出されなくて良い。具体的には、例えば、所定の閾値として2.0が設定されている場合、VVOL11は、不適切なVVOLとして検出されない。なぜなら、VVOL11の性能とVVOL13の性能の差は1.9であり、それは、閾値2.0以下であるからである。
(ii)不適切なVVOL検出には、VVOL毎の履歴情報を基に決定されても良い。履歴情報の一例を、図20に示す。履歴情報2001は、例えば、VVOLにどの時点でどの階層から幾つのページが割り当てられていたかを表す情報である。また、履歴情報2001は、複数の時点での階層毎の使用ページ数を基に集計された、階層毎の使用ページ数を表す情報(以下、階層毎の集計情報)2002を有する。この履歴情報2001(例えば階層毎の集計情報2002)を基に、VVOLの性能1007が補正され、各VVOLの補正後の性能1007を用いて、VVOL同士の性能差が算出されても良い。履歴情報2001は、例えば、プール管理テーブル403を基にVVOL管理プログラム5010によって更新されて良い。また、履歴情報2001は、各時点についての重み係数を表す情報2003を有していても良い(図20によれば、現在に近い時点ほど、重み係数が大きい)。VVOLの性能1007は、各時点の階層毎のページ数に加えて、各時点の重み係数を用いて、補正されても良い。
S2101の判断の結果が否定的であれば、一定時間待った後(S2102)、S2101が再度行われる。
S2101の判断の結果が肯定的であれば、プログラム5020が、不適切なVVOLに関連付けられているプール以外のプール(ストレージシステム103におけるプール)でS2105が行われていないプール(未処理のプール)があるか否かを判断する(S2103)。
S2103の判断の結果が否定的であれば、プログラム5020は、アラートを発行する(S2104)。なぜなら、後述の説明から分かるように、不適切なVVOLがあるにも関わらず、適切なマイグレーション先のプールが見つからなかったからである。なお、S2104に代えて、プログラム5020が、新規にプールをストレージ装置に作成させ、その新規のプールについて、S2105が行われても良い。S2104の後、S2102が行われる。
S2103の判断の結果が肯定的であれば、プログラム5020は、未処理のプールを1つ選択し、選択したプールに、不適切なVVOLの記憶容量以上の空き容量があるか否かを判断する(S2105)。S2105の判断の結果が否定的であれば、S2103が再度行われる。
S2105の判断の結果が肯定的であれば、プログラム5020は、不適切なVVOLに割り当てられている全てのページをS2105で選択したプールにマイグレーションしたと仮定した場合の、その選択したプール(マイグレーション先プール候補)に関連付けられている各VVOLの性能1007を予測する(S2106)。S2106では、具体的には、例えば、下記の処理が行われる。
(j1)プログラム5020が、管理計算機201内の記憶資源211に、図21に示すVVOLマイグレーション検証テーブル2101を用意する。テーブル2101は、マイグレーション先プール候補に関連付けられている各VVOLと、不適切なVVOL(VVOLX)とについて、下記の情報を有する。
*VVOL ID2111:VVOLのID、
*アクセス分布2112:VVOLのアクセス分布1008(図18参照)と同じ情報、
*合計2113:VVOLに割り当てられているページ(使用ページ)の総数、
*メディア比2114:合計2113に対する、階層毎の使用ページの総数の割合、
*性能2115:VVOLの性能1007(図18参照)と同じ値。
*SLO2116:VVOLの性能1004(図18参照)と同じ値。
(j2)プログラム5020が、テーブル2101に登録されている全てのアクセス分布2112を基に、アクセス頻度範囲毎の総使用ページ数を算出する。例えば、テーブル2101に登録されているVVOL ID2111が、VVOL1、VVOL2、VVOL3、VVOLXの4つであり、且つ、アクセス頻度範囲「500−749」が、3000、2000、2000、1500であった場合、アクセス頻度範囲「500−749」の総使用ページ数は、3000+2000+2000+1500=8500となる。
(j3)プログラム5020が、マイグレーション先プール候補における階層毎のページ群を、アクセス頻度範囲毎の総使用ページ数に応じて、割り振る。その際、アクセス頻度範囲が高いページが割り当てられている仮想領域ほど、上位の階層のページが優先的に割り当てられると仮定される。具体的には、例えば、上位階層を構成するページの数が10000、中位階層を構成するページの数が40000、下位階層を構成するページの数が50000であるとする。1番目に高いアクセス頻度範囲「2500以上」の総使用ページ数が6000の場合、上位階層の10000個のページのうちの6000個のページに、アクセス頻度範囲「2500以上」に属するアクセス頻度の6000個のページ内のデータが格納されると仮定される。2番目に高いアクセス頻度範囲「2250以上2249以下」の総使用ページ数が9000の場合、上位階層の10000個のページのうちの残りの4000個のページに、アクセス頻度範囲「2250以上2249以下」に属するアクセス頻度の8000個のページのうちの4000個のページ内のデータが格納されると仮定され、中位階層の40000個のページのうちの5000個のページに、アクセス頻度範囲「2250以上2249以下」に属するアクセス頻度の残りの5000個のページ内のデータが格納されると仮定される。その際、上位階層の4000個のページは、アクセス頻度範囲「2250以上2249以下」にアクセス頻度が属する使用ページ数の比(VVOL1:VVOL2:VVOL3:VVOLX)を基に割り振られる。
(j4)プログラム5020が、上記(j3)の結果を基に、VVOL1〜3及びVVOLXについてメディア比2114を更新する。更新後の値が、図21に、記号「->」の後に示されている。
(j5)プログラム5020が、VVOL1〜3及びVVOLXについて、更新後のメディア比2114を基に、マイグレーションが行われたと仮定した場合の性能2115を算出する。その性能2115の値が、図21に、記号「->」の後に示されている。マイグレーション先プール候補には、VVOLXが新たに関連付けられると仮定されているので、VVOLXを新たに関連付けることの影響で、VVOL1〜3の性能2115は、図21に示す通り悪化する(平均レスポンスタイムが長くなる)。
(j1)プログラム5020が、管理計算機201内の記憶資源211に、図21に示すVVOLマイグレーション検証テーブル2101を用意する。テーブル2101は、マイグレーション先プール候補に関連付けられている各VVOLと、不適切なVVOL(VVOLX)とについて、下記の情報を有する。
*VVOL ID2111:VVOLのID、
*アクセス分布2112:VVOLのアクセス分布1008(図18参照)と同じ情報、
*合計2113:VVOLに割り当てられているページ(使用ページ)の総数、
*メディア比2114:合計2113に対する、階層毎の使用ページの総数の割合、
*性能2115:VVOLの性能1007(図18参照)と同じ値。
*SLO2116:VVOLの性能1004(図18参照)と同じ値。
(j2)プログラム5020が、テーブル2101に登録されている全てのアクセス分布2112を基に、アクセス頻度範囲毎の総使用ページ数を算出する。例えば、テーブル2101に登録されているVVOL ID2111が、VVOL1、VVOL2、VVOL3、VVOLXの4つであり、且つ、アクセス頻度範囲「500−749」が、3000、2000、2000、1500であった場合、アクセス頻度範囲「500−749」の総使用ページ数は、3000+2000+2000+1500=8500となる。
(j3)プログラム5020が、マイグレーション先プール候補における階層毎のページ群を、アクセス頻度範囲毎の総使用ページ数に応じて、割り振る。その際、アクセス頻度範囲が高いページが割り当てられている仮想領域ほど、上位の階層のページが優先的に割り当てられると仮定される。具体的には、例えば、上位階層を構成するページの数が10000、中位階層を構成するページの数が40000、下位階層を構成するページの数が50000であるとする。1番目に高いアクセス頻度範囲「2500以上」の総使用ページ数が6000の場合、上位階層の10000個のページのうちの6000個のページに、アクセス頻度範囲「2500以上」に属するアクセス頻度の6000個のページ内のデータが格納されると仮定される。2番目に高いアクセス頻度範囲「2250以上2249以下」の総使用ページ数が9000の場合、上位階層の10000個のページのうちの残りの4000個のページに、アクセス頻度範囲「2250以上2249以下」に属するアクセス頻度の8000個のページのうちの4000個のページ内のデータが格納されると仮定され、中位階層の40000個のページのうちの5000個のページに、アクセス頻度範囲「2250以上2249以下」に属するアクセス頻度の残りの5000個のページ内のデータが格納されると仮定される。その際、上位階層の4000個のページは、アクセス頻度範囲「2250以上2249以下」にアクセス頻度が属する使用ページ数の比(VVOL1:VVOL2:VVOL3:VVOLX)を基に割り振られる。
(j4)プログラム5020が、上記(j3)の結果を基に、VVOL1〜3及びVVOLXについてメディア比2114を更新する。更新後の値が、図21に、記号「->」の後に示されている。
(j5)プログラム5020が、VVOL1〜3及びVVOLXについて、更新後のメディア比2114を基に、マイグレーションが行われたと仮定した場合の性能2115を算出する。その性能2115の値が、図21に、記号「->」の後に示されている。マイグレーション先プール候補には、VVOLXが新たに関連付けられると仮定されているので、VVOLXを新たに関連付けることの影響で、VVOL1〜3の性能2115は、図21に示す通り悪化する(平均レスポンスタイムが長くなる)。
プログラム5020は、VVOLマイグレーション検証テーブル2101を基に、マイグレーション先候補プールに関連付けられているVVOL(上記の例によれば、VVOL1〜3及びVVOLX)に、下記(a)及び(b)のいずれかのVVOLがあるか否かを判断する(S2107)。
(a)性能2115がSLO2116と係数gとの閾値を超えるVVOL、
(b)実施例2における前述の不適切なVVOL(すなわち、相対的にSLO2116が小さいのに相対的に性能2115(平均レスポンスタイム)が大きいVVOL)。
(a)性能2115がSLO2116と係数gとの閾値を超えるVVOL、
(b)実施例2における前述の不適切なVVOL(すなわち、相対的にSLO2116が小さいのに相対的に性能2115(平均レスポンスタイム)が大きいVVOL)。
S2107の判断の結果が否定的であれば、S2103が再度行われる。
S2107の判断の結果が肯定的であれば、プログラム5020は、下位の情報を有するVVOLマイグレーション指示を作成し、不適切なVVOLを有するストレージ装置に、その指示を送信する(S2108)。
*マイグレーション対象のVVOL(つまり、不適切なVVOL)のID、
*マイグレーション先プール候補を有するストレージ装置のID、
*マイグレーション先プール(マイグレーション先プール候補)のID。
*マイグレーション対象のVVOL(つまり、不適切なVVOL)のID、
*マイグレーション先プール候補を有するストレージ装置のID、
*マイグレーション先プール(マイグレーション先プール候補)のID。
そのVVOLマイグレーション指示に応答して、不適切なVVOLに割り当てられている全てのページ内のデータが、マイグレーション先プールにマイグレーションされる。なお、その指示は、S2106の予測に従う情報を含んで良い。例えば、不適切なVVOLに割り当てられている全てのページのうち、アクセス頻度範囲「2500以上」に属するアクセス頻度のページ内のデータは、マイグレーション先プールにおける上位階層におけるページにマイグレーションされる、ことを表す情報が、VVOLマイグレーション指示に含まれて良い。
管理者から終了指示が入力された場合(S2109:YES)、このリバランス処理が終了する。管理者から終了指示が無ければ(S2109:NO)、S2108が行われて一定時間待った後に(S2102)、S2101が再度行われる。
以上が、実施例2の説明である。
なお、実施例2では、不適切なVVOLは、将来問題が生じる可能性が高いVVOLを意味する定義であれば、相対的にSLOが小さいのに相対的に性能(平均レスポンスタイム)が大きいVVOLであることに代えて又は加えて、他の定義であっても良い。例えば、不適切なVVOLとしは、SLOが大きいのに性能が小さいVVOLで良い。具体的には、例えば、不適切なVVOLは、性能がSLOの50%より小さいVVOLが不適切なVVOLとして検出されてよい。この場合、SLOが18.0であれば、平均レスポンスタイムが9.0以下のVVOLが、不適切なVVOLである。
以下、本発明の実施例3を説明する。その際、実施例2との相違点を主に説明し、実施例2との共通点については説明を省略或いは簡略する。
実施例3では、SLOとアクセス分布の両方が類似している複数のVVOLが同一のプールに関連付けられるリバランス処理が行われる。そのリバランス処理は、管理計算機201内の性能管理プログラム5020によって行われる。
図22は、実施例3に係る性能管理プログラム5020が行うリバランス処理の流れを示す。
プログラム5020は、クラスタリング、すなわち、SLOとアクセス分布が類似している複数のVVOLが同じグループに属するようなグルーピングを行う(S2601)。具体的には、例えば、下記の処理(m1)及び(m2)が行われる。
(m1)プログラム5020は、ストレージシステム103内の全てのVVOL(N個のVVOL)を、SLOが類似しているM個のVVOL単位で、グルーピングする(N>M、N及びMは所定値且つ自然数)。例えば、N=10000でM=100であれば、100個のVVOL群ができる。この段階での各VVOL群を、「VVOL群x」と表す。この(m1)では、SLOが近いM個のVVOLずつグルーピングされるので、或るVVOL群xについてのSLOの最大値(及び最小値)と、別のVVOL群xについてのSLOの最大値(及び最小値)は異なることがある。
(m2)プログラム5020は、各VVOL群xについて、M個のVVOLを、アクセス分布が類似しているP個のVVOL単位で、グルーピングする(M>P、Pは所定値且つ自然数)。この段階での各VVOL群を、「VVOL群y」と表す。つまり、ストレージシステム内のN個のVVOLは、複数のVVOL群yにグルーピングされる。なお、類似度として、例えば、残差の二乗和が採用される。残差の二乗和が最小になるようにグルーピングが行われる。4個のVVOL(VVOL1〜VVOL4)で構成されたVVOL群xを2個のVVOLずつにグルーピングすることを例に採ると、次のようにグルーピングが行われる。
*VVOL1〜4のアクセス分布が「1」で正規化されたものが、図23に示す通りであるとする。また、図23のアクセス分布のグラフを、図24に示す(図24では、VVOLが「vol」と表記されている)。
*各VVOL同士の類似度が算出される。類似度は、例えば残差の二乗和(アクセス頻度範囲毎の使用ページ数(正規化された値)の差の二乗の合計)である。例えば、VVOL1とVVOL2の類似度は、
(0.6−0.5)2+(0.08−0.09)2+ … +(0.04−0.06)2=0.0118
である。各VVOL同士の類似度は、下記の通りとなる。正確な類似度をカッコ内に示し、正確な類似度の小数点第3位を四捨五入した値をカッコ外に示す。
VVOL1−VVOL2:0.01(0.0118)
VVOL1−VVOL3:0.21(0.208)
VVOL1−VVOL4:0.37(0.3712)
VVOL2−VVOL3:0.13(0.1264)
VVOL2−VVOL4:0.26(0.2618)
VVOL3−VVOL4:0.04(0.0388)
*プログラム5020は、類似度の合計が最小になる組合せを見つける。上記の例によれば、VVOL1−VVOL2:0.01と、VVOL3−VVOL4:0.04の組合せである0.5が最小である。このため、プログラム5020は、VVOL1〜VVOL4を、VVOL1,2で構成されたVVOL群yと、VVOL3,4で構成されたVVOL群yに、グルーピングすることを決定する。なお、VVOL1,2のアクセス分布同士と、VVOL3,4のアクセス分布同士が、VVOL1又は2のアクセス分布とVVOL3又は4のアクセス分布同士に比べて類似していることは、図24のグラフからも明らかである。
(m1)プログラム5020は、ストレージシステム103内の全てのVVOL(N個のVVOL)を、SLOが類似しているM個のVVOL単位で、グルーピングする(N>M、N及びMは所定値且つ自然数)。例えば、N=10000でM=100であれば、100個のVVOL群ができる。この段階での各VVOL群を、「VVOL群x」と表す。この(m1)では、SLOが近いM個のVVOLずつグルーピングされるので、或るVVOL群xについてのSLOの最大値(及び最小値)と、別のVVOL群xについてのSLOの最大値(及び最小値)は異なることがある。
(m2)プログラム5020は、各VVOL群xについて、M個のVVOLを、アクセス分布が類似しているP個のVVOL単位で、グルーピングする(M>P、Pは所定値且つ自然数)。この段階での各VVOL群を、「VVOL群y」と表す。つまり、ストレージシステム内のN個のVVOLは、複数のVVOL群yにグルーピングされる。なお、類似度として、例えば、残差の二乗和が採用される。残差の二乗和が最小になるようにグルーピングが行われる。4個のVVOL(VVOL1〜VVOL4)で構成されたVVOL群xを2個のVVOLずつにグルーピングすることを例に採ると、次のようにグルーピングが行われる。
*VVOL1〜4のアクセス分布が「1」で正規化されたものが、図23に示す通りであるとする。また、図23のアクセス分布のグラフを、図24に示す(図24では、VVOLが「vol」と表記されている)。
*各VVOL同士の類似度が算出される。類似度は、例えば残差の二乗和(アクセス頻度範囲毎の使用ページ数(正規化された値)の差の二乗の合計)である。例えば、VVOL1とVVOL2の類似度は、
(0.6−0.5)2+(0.08−0.09)2+ … +(0.04−0.06)2=0.0118
である。各VVOL同士の類似度は、下記の通りとなる。正確な類似度をカッコ内に示し、正確な類似度の小数点第3位を四捨五入した値をカッコ外に示す。
VVOL1−VVOL2:0.01(0.0118)
VVOL1−VVOL3:0.21(0.208)
VVOL1−VVOL4:0.37(0.3712)
VVOL2−VVOL3:0.13(0.1264)
VVOL2−VVOL4:0.26(0.2618)
VVOL3−VVOL4:0.04(0.0388)
*プログラム5020は、類似度の合計が最小になる組合せを見つける。上記の例によれば、VVOL1−VVOL2:0.01と、VVOL3−VVOL4:0.04の組合せである0.5が最小である。このため、プログラム5020は、VVOL1〜VVOL4を、VVOL1,2で構成されたVVOL群yと、VVOL3,4で構成されたVVOL群yに、グルーピングすることを決定する。なお、VVOL1,2のアクセス分布同士と、VVOL3,4のアクセス分布同士が、VVOL1又は2のアクセス分布とVVOL3又は4のアクセス分布同士に比べて類似していることは、図24のグラフからも明らかである。
再び図22を参照する。プログラム5020は、マイグレーションプランを作成する(S2602)。そのプランは、下記の条件を満たすプランである。
*VVOLマイグレーションでマイグレーションされるデータの量が最小になるようなプラン。具体的には、例えば、プログラム5020は、VVOL管理テーブル2004の使用容量1005(図18参照)を基に、マイグレーション対象のVVOLの数ではなく、マイグレーションされるデータの総量が最小になるようなマイグレーションプランを作成する。
*1つのプールに、1つのVVOL群yだけが関連付けられる。すなわち、1つのプールには、SLO及びアクセス分布が類似していないVVOLは関連付けられない。
*VVOLマイグレーションでマイグレーションされるデータの量が最小になるようなプラン。具体的には、例えば、プログラム5020は、VVOL管理テーブル2004の使用容量1005(図18参照)を基に、マイグレーション対象のVVOLの数ではなく、マイグレーションされるデータの総量が最小になるようなマイグレーションプランを作成する。
*1つのプールに、1つのVVOL群yだけが関連付けられる。すなわち、1つのプールには、SLO及びアクセス分布が類似していないVVOLは関連付けられない。
プログラム5020は、S2602で作成したプランに従うマイグレーションを実行すべきか否かを判断する(S2603)。例えば、プログラム5020は、そのプランに従うマイグレーションを行うと、性能がSLOと係数gとの積を越えるVVOLが出ないか否かを判断する。
S2603の判断の結果が否定的であれば、S2604がスキップされ、S2605が行われる。
S2603の判断の結果が肯定的であれば、プログラム5020は、S2602で作成したプランに従うVVOLマイグレーション指示を作成する。例えば、その指示は、マイグレーション対象のVVOL、或いは、マイグレーション対象のVVOLを有するストレージ装置別に作成される。プログラム5020は、作成したVVOLマイグレーション指示を、マイグレーション対象のVVOLを有するストレージ装置に送信する。これにより、S2602で作成したプランに従うマイグレーションが行われる。
プログラム5020は、終了指示を管理者から入力された場合(S2605:YES)、このリバランス処理を終了し、終了指示が管理者から入力されていなければ(S2605:NO)、一定時間待って(S2606)、S2601を再度行う。
以上が、実施例3の説明である。
なお、VVOL群x及びVVOL群yのうちの少なくとも一方は、VVOLの数は所定値でなくて良い。例えば、複数のSLO範囲が定義されていて、1つのSLO範囲につき、そのSLO範囲に属するSLOの全てのVVOLで、VVOL群xが構成されても良い。つまり、複数のVVOL群xには、VVOLの数が異なる二以上のVVOL群xがあっても良い。同様に、複数のVVOL群yには、VVOLの数が異なる二以上のVVOL群yがあっても良い。
また、マイグレーションプランは、マイグレーション対象のデータの総量がなるべく小さくなることに代えて又は加えて、VVOL群yのアクセス分布と、各プールの構成(例えば各階層の容量)とに基づいて、決定されて良い。具体的には、例えば、アクセス頻度が高い使用ページが他のVVOL群yよりも多く割り当てられているVVOL群yには、他のVVOL群yが関連付けられるプールよりも上位階層の容量が大きい(又はプールにおける比率が高い)プールが関連付けられ、アクセス頻度が小さい使用ページ数が他のVVOL群yより多く割り当てられているVVOL群yには、他のVVOL群yが関連付けられるプールよりも下位階層の容量が大きい(又はプールにおける比率が高い)プールが関連付けられるようなプランが作成されて良い。或いは、例えば、プログラム5020は、プランの作成において、マイグレーション先のプールを決定し、VVOL群yについてのアクセス分布からオーバープロビジョニング(或いは、性能又は容量の不足)が予測されれば、どのプールのどの階層にどれだけの容量を追加又は削除するか(例えばどのメディアを追加又は削除するか)を決定して良い。その決定した内容は、S2604のマイグレーションの実行前又は後に、管理者に通知されて良い。
実施例4では、SLOが、VVOL毎ではなく、アクセス元毎に用意される。
図25は、実施例4に係るVVOL管理テーブル2701を示す。
本実施例では、アクセス元は、ホスト装置101で実行されるアプリケーションプログラムである。テーブル2701には、アプリケーションプログラム毎に、図18を参照して説明した情報1001、1002、…の他に、下記の情報を有する。
*APP ID2511:アプリケーションプログラムのID、
*LBA範囲:アプリケーションプログラムからアクセス可能なVVOLのLBA範囲を表す情報。
*APP ID2511:アプリケーションプログラムのID、
*LBA範囲:アプリケーションプログラムからアクセス可能なVVOLのLBA範囲を表す情報。
テーブル2701において、SLO1004及び性能1007(図25には示されていない)は、アクセス元についてのSLO1004及び性能1007である。このため、実施例4では、不適切なVVOLに代えて不適切なアプリケーションプログラムが検出されることになる。不適切なアプリケーションプログラムが検出された場合、実施例1〜3のうちの少なくとも1つの実施例におけるリバランス処理が行われ、それにより、不適切なアプリケーションプログラムが適切なアプリケーションプログラムとなる。
図25によれば、1つのアプリケーションプログラム(例えば、APP1)が複数のVVOL(例えば、VVOL1、VVOL3)にアクセス可能なケース(以下、第1のケース)もあれば、複数のアプリケーションプログラム(例えば、APP3、APP4)が、VVOL(例えば、VVOL2)を共有するケース(以下、第2のケース)もある。VVOLが複数のアプリケーションプログラムから共有される場合、VVOLのどのLBA範囲にどのアプリケーションプログラムがアクセス可能であるかが、テーブル2701に定義されている。
第1のケースでは、1つのアプリケーションプログラムに対応したVVOL毎に、実施例1〜3の少なくとも1つに従う処理を行うことができる。
第2のケースでは、複数のアプリケーションプログラムに共有されるVVOL(複数のSLO1004が対応付けられたVVOL)について、いずれか1つのSLO1004(例えば、対応付けられている複数のSLO1004のうちの最小のSLO1004)を用いて、実施例1〜3の少なくとも1つに従う処理を行うことができる。
アクセス元は、アプリケーションプログラムに代えて又は加えて、仮想計算機或いはホスト装置であっても良い。
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、仮想領域に対するアクセスが発生した場合には、その仮想領域に割り当てられているページにアクセスしたか否かに関わらず、仮想領域に対応したアクセス頻度505は更新されても良い。また、仮想領域に対するアクセスが特定種類のアクセスの場合(例えばリードの場合)、仮想領域に対応したアクセス頻度505は更新されなくても良い。
101…ホスト装置 201…管理計算機 103…ストレージシステム
Claims (2)
- アクセス元からアクセスコマンドを受信するストレージシステムの管理システムであって、
前記ストレージシステムが、複数の仮想ボリュームと、複数のプールと、コントローラとを有し、
各仮想ボリュームは、複数の仮想領域で構成された仮想的な論理ボリュームであり、
各プールは、性能が異なる複数の実領域群で構成された記憶領域であり、
前記コントローラは、
(a)前記アクセスコマンドを受信し、
(b)前記アクセスコマンドから特定された仮想領域に実領域が割り当てられていれば、その実領域にアクセスし、
(c)前記特定された仮想領域に実領域が割り当てられていなければ、前記複数のプールのうちの、前記特定された仮想領域を有する仮想ボリュームに関連付けられているプールから実領域を割り当て、割り当てた実領域にアクセスし、
前記コントローラは、どの仮想領域にどの実領域が割り当てられているかと仮想領域に関するアクセス負荷とを表す情報であるプール状況情報を管理し、
前記管理システムが、
記憶資源と、
前記記憶資源に接続されたプロセッサと
を有し、
前記記憶資源が、アクセス元から仮想ボリュームへのアクセスに関する要求性能と、アクセス元から仮想ボリュームへのアクセスに関する性能とを各仮想ボリュームについて表す管理情報を記憶し、
仮想ボリュームの性能は、前記プール状況情報を基に特定された性能であり、
前記プロセッサが、
(A)前記管理情報を基に、前記複数の仮想ボリュームのうち状況が不適切である仮想ボリュームを特定し、
(B)前記特定された仮想ボリュームの状況を不適切な状況から適切な状況に変えるために前記特定された仮想ボリュームに関連付けられているプールに関わるマイグレーション処理を行うようになっており、
前記(A)で特定される仮想ボリュームは、性能が要求性能を満たしているものの性能が要求性能を将来満たさなくなる可能性の高い仮想ボリュームであり、
前記(B)で行われるマイグレーション処理は、前記(A)で特定された仮想ボリュームに割り当てられている全ての実領域内のデータが、前記(A)で特定された仮想ボリュームに関連付けられているプールである第1のプールから、前記第1のプールとは別のプールである第2のプールにマイグレーションされ、且つ、前記(A)で特定された仮想ボリュームが前記第1のプールに代えて前記第2のプールに関連付けられるための処理であり、
前記第2のプールは、前記(A)で特定された仮想ボリュームが関連付けられても、既に関連付けられているいずれの仮想ボリュームも、性能が要求性能を満たさなくなる仮想ボリュームにも、性能が要求性能を満たしているものの性能が要求性能を将来満たさなくなる可能性の高い仮想ボリュームにもならないプールであり、
前記プロセッサが、前記プール状況情報を基に、アクセス負荷範囲毎の実領域数を表すアクセス状況を各仮想ボリュームについて特定するようになっており、
前記プロセッサが、前記(B)において、
(b1)前記第1のプール以外のプールから、前記第2のプールの候補を決定し、
(b2)前記第2のプールの候補に既に割り当てられている仮想ボリュームのアクセス状況と、前記第2のプールの候補に割り当てられる予定の前記(A)で特定された仮想ボリュームのアクセス状況と、前記第2のプールの候補を構成する実領域群毎の実領域数とを基に、前記第2のプールの候補を前記第2のプールとするか否かを判断し、
前記(b2)では、アクセス負荷範囲が高い実領域が割り当てられている仮想領域ほど、性能の高い実領域群内の実領域が割り当てられると仮定され、
前記(b2)の判断の結果が肯定的の場合に、前記第2のプールの候補が前記第2のプールである、
管理システム。 - アクセス元からアクセスコマンドを受信するストレージシステムの管理方法であって、
前記ストレージシステムが、複数の仮想ボリュームと、複数のプールと、コントローラとを有し、
各仮想ボリュームは、複数の仮想領域で構成された仮想的な論理ボリュームであり、
各プールは、性能が異なる複数の実領域群で構成された記憶領域であり、
前記コントローラは、
(a)前記アクセスコマンドを受信し、
(b)前記アクセスコマンドから特定された仮想領域に実領域が割り当てられていれば、その実領域にアクセスし、
(c)前記特定された仮想領域に実領域が割り当てられていなければ、前記複数のプールのうちの、前記特定された仮想領域を有する仮想ボリュームに関連付けられているプールから実領域を割り当て、割り当てた実領域にアクセスし、
前記コントローラは、どの仮想領域にどの実領域が割り当てられているかと仮想領域に関するアクセス負荷とを表す情報であるプール状況情報を管理し、
前記管理方法が、
(A)アクセス元から仮想ボリュームへのアクセスに関する要求性能と、アクセス元から仮想ボリュームへのアクセスに関する性能とを各仮想ボリュームについて表す管理情報を基に、前記複数の仮想ボリュームのうち状況が不適切である仮想ボリュームを特定し、
(B)前記特定された仮想ボリュームの状況を不適切な状況から適切な状況に変えるために前記特定された仮想ボリュームに関連付けられているプールに関わるマイグレーション処理を行い、
前記(A)で特定される仮想ボリュームは、性能が要求性能を満たしているものの性能が要求性能を将来満たさなくなる可能性の高い仮想ボリュームであり、
前記(B)で行われるマイグレーション処理は、前記(A)で特定された仮想ボリュームに割り当てられている全ての実領域内のデータが、前記(A)で特定された仮想ボリュームに関連付けられているプールである第1のプールから、前記第1のプールとは別のプールである第2のプールにマイグレーションされ、且つ、前記(A)で特定された仮想ボリュームが前記第1のプールに代えて前記第2のプールに関連付けられるための処理であり、
前記第2のプールは、前記(A)で特定された仮想ボリュームが関連付けられても、既に関連付けられているいずれの仮想ボリュームも、性能が要求性能を満たさなくなる仮想ボリュームにも、性能が要求性能を満たしているものの性能が要求性能を将来満たさなくなる可能性の高い仮想ボリュームにもならないプールであり、
前記(B)において、
(b1)前記第1のプール以外のプールから、前記第2のプールの候補を決定し、
(b2)前記第2のプールの候補に既に割り当てられている仮想ボリュームのアクセス状況と、前記第2のプールの候補に割り当てられる予定の前記(A)で特定された仮想ボリュームのアクセス状況と、前記第2のプールの候補を構成する実領域群毎の実領域数とを基に、前記第2のプールの候補を前記第2のプールとするか否かを判断し、
前記(b2)では、アクセス負荷範囲が高い実領域が割り当てられている仮想領域ほど、性能の高い実領域群内の実領域が割り当てられると仮定され、
前記(b2)の判断の結果が肯定的の場合に、前記第2のプールの候補が前記第2のプールである、
アクセス負荷範囲毎の実領域数を表すアクセス状況は、前記プール状況情報を基に各仮想ボリュームについて特定される、
管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/000511 WO2011092738A1 (ja) | 2010-01-28 | 2010-01-28 | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011092738A1 JPWO2011092738A1 (ja) | 2013-05-23 |
JP5314772B2 true JP5314772B2 (ja) | 2013-10-16 |
Family
ID=44318758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011551580A Expired - Fee Related JP5314772B2 (ja) | 2010-01-28 | 2010-01-28 | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8543778B2 (ja) |
JP (1) | JP5314772B2 (ja) |
WO (1) | WO2011092738A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019021315A (ja) * | 2017-07-19 | 2019-02-07 | 三星電子株式会社Samsung Electronics Co.,Ltd. | オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443153B1 (en) * | 2010-01-06 | 2013-05-14 | Netapp, Inc. | Dynamic balancing of performance with block sharing in a storage system |
US8768883B2 (en) * | 2010-03-25 | 2014-07-01 | Hitachi, Ltd. | Storage apparatus and control method of the same |
US8732518B2 (en) | 2011-04-13 | 2014-05-20 | Netapp, Inc. | Reliability based data allocation and recovery in a storage system |
WO2012169027A1 (ja) | 2011-06-08 | 2012-12-13 | 株式会社日立製作所 | 計算機システム及びストレージシステム管理方法 |
US9052830B1 (en) * | 2011-06-30 | 2015-06-09 | Emc Corporation | Techniques for automated evaluation and movement of data between storage tiers for thin devices |
US8972694B1 (en) * | 2012-03-26 | 2015-03-03 | Emc Corporation | Dynamic storage allocation with virtually provisioned devices |
US8549519B2 (en) * | 2011-08-19 | 2013-10-01 | Hitachi, Ltd. | Method and apparatus to improve efficiency in the use of resources in data center |
US8775773B2 (en) * | 2011-08-26 | 2014-07-08 | Vmware, Inc. | Object storage system |
US8856440B2 (en) * | 2011-09-12 | 2014-10-07 | Microsoft Corporation | Volatile memory representation of nonvolatile storage device set |
WO2013061368A1 (en) * | 2011-10-26 | 2013-05-02 | Hitachi, Ltd. | Storage apparatus and method of controlling storage apparatus |
JP5830599B2 (ja) | 2011-10-28 | 2015-12-09 | 株式会社日立製作所 | 計算機システム及びその管理システム |
US9086804B2 (en) | 2012-01-05 | 2015-07-21 | Hitachi, Ltd. | Computer system management apparatus and management method |
US8706962B2 (en) * | 2012-01-27 | 2014-04-22 | International Business Machines Corporation | Multi-tier storage system configuration adviser |
US9639383B1 (en) * | 2012-06-27 | 2017-05-02 | EMC IP Holding Company LLC | Volume moving |
WO2014013524A1 (en) | 2012-07-18 | 2014-01-23 | Hitachi, Ltd. | Storage system and storage control method |
US9454487B2 (en) * | 2012-08-27 | 2016-09-27 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
IN2015DN01544A (ja) * | 2012-10-12 | 2015-07-03 | Hitachi Ltd | |
WO2014073045A1 (ja) | 2012-11-07 | 2014-05-15 | 株式会社日立製作所 | 計算機システム、ストレージ管理計算機及びストレージ管理方法 |
US9608933B2 (en) * | 2013-01-24 | 2017-03-28 | Hitachi, Ltd. | Method and system for managing cloud computing environment |
CN103152405B (zh) * | 2013-02-19 | 2017-05-03 | 浪潮电子信息产业股份有限公司 | 一种高可用集群对于存储池资源的应用方法 |
US20140281301A1 (en) * | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Elastic hierarchical data storage backend |
WO2014188682A1 (ja) * | 2013-05-20 | 2014-11-27 | 日本電気株式会社 | ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム |
US20160004476A1 (en) * | 2013-07-03 | 2016-01-07 | Hitachi, Ltd. | Thin provisioning of virtual storage system |
US9811531B2 (en) | 2013-08-26 | 2017-11-07 | Vmware, Inc. | Scalable distributed storage architecture |
US10747475B2 (en) * | 2013-08-26 | 2020-08-18 | Vmware, Inc. | Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines |
US11016820B2 (en) | 2013-08-26 | 2021-05-25 | Vmware, Inc. | Load balancing of resources |
US9887924B2 (en) | 2013-08-26 | 2018-02-06 | Vmware, Inc. | Distributed policy-based provisioning and enforcement for quality of service |
JP6190898B2 (ja) * | 2013-10-28 | 2017-08-30 | 株式会社日立製作所 | サーバに接続されるシステム及び仮想マシンが動作しているサーバに接続されたシステムによる方法 |
JP6151795B2 (ja) | 2013-11-11 | 2017-06-21 | 株式会社日立製作所 | 管理計算機および計算機システムの管理方法 |
CN104750538B (zh) * | 2013-12-27 | 2020-03-03 | 伊姆西Ip控股有限责任公司 | 用于为目标应用提供虚拟存储池的方法和系统 |
JP6394070B2 (ja) * | 2014-05-28 | 2018-09-26 | 日本電気株式会社 | バックアップシステムおよびバックアップ方法 |
JP6276208B2 (ja) * | 2014-10-30 | 2018-02-07 | 東芝メモリ株式会社 | メモリシステム及びプログラム |
US10102118B2 (en) | 2014-10-30 | 2018-10-16 | Toshiba Memory Corporation | Memory system and non-transitory computer readable recording medium |
US11347637B2 (en) | 2014-10-30 | 2022-05-31 | Kioxia Corporation | Memory system and non-transitory computer readable recording medium |
CN104536909B (zh) * | 2014-12-09 | 2018-01-23 | 华为技术有限公司 | 一种存储管理方法,存储管理装置及存储设备 |
GB2533405A (en) | 2014-12-19 | 2016-06-22 | Ibm | Data storage resource assignment |
US20160328179A1 (en) * | 2015-05-08 | 2016-11-10 | Micron Technology, Inc. | Multiple virtually over-provisioned, virtual storage devices created from a single physical storage device |
US9696930B2 (en) * | 2015-06-10 | 2017-07-04 | International Business Machines Corporation | Reducing new extent failures on target device during non-disruptive logical data set migration |
US9582328B1 (en) * | 2015-06-19 | 2017-02-28 | EMC IP Holding Company LLC | Allocation of resources in computing environments |
WO2017017775A1 (ja) * | 2015-07-28 | 2017-02-02 | 株式会社日立製作所 | 計算機システム及びボリュームの割り当て制御方法 |
US20170031600A1 (en) * | 2015-07-30 | 2017-02-02 | Netapp Inc. | Real-time analysis for dynamic storage |
US10509578B2 (en) * | 2016-04-14 | 2019-12-17 | Red Hat, Inc. | Logical address space for storage resource pools |
US10503413B1 (en) * | 2016-06-01 | 2019-12-10 | EMC IP Holding Company LLC | Methods and apparatus for SAN having local server storage including SSD block-based storage |
US10089136B1 (en) * | 2016-09-28 | 2018-10-02 | EMC IP Holding Company LLC | Monitoring performance of transient virtual volumes created for a virtual machine |
WO2019066689A1 (en) * | 2017-09-27 | 2019-04-04 | Telefonaktiebolaget Lm Ericsson (Publ) | METHOD AND RE-ASSEMBLY COMPONENT FOR MANAGING THE RESETTING OF INFORMATION FROM TARGET SOURCE MEMORY CIRCUITS |
US20210405913A1 (en) * | 2020-06-26 | 2021-12-30 | Micron Technology, Inc. | Host access tracking in a memory sub-system |
US20220382478A1 (en) * | 2021-06-01 | 2022-12-01 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for page migration in memory systems |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102455A (ja) * | 2005-10-04 | 2007-04-19 | Hitachi Ltd | ストレージシステム及び構成変更方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4175788B2 (ja) | 2001-07-05 | 2008-11-05 | 株式会社日立製作所 | ボリューム制御装置 |
US7103731B2 (en) * | 2002-08-29 | 2006-09-05 | International Business Machines Corporation | Method, system, and program for moving data among storage units |
-
2010
- 2010-01-28 US US12/742,502 patent/US8543778B2/en not_active Expired - Fee Related
- 2010-01-28 JP JP2011551580A patent/JP5314772B2/ja not_active Expired - Fee Related
- 2010-01-28 WO PCT/JP2010/000511 patent/WO2011092738A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102455A (ja) * | 2005-10-04 | 2007-04-19 | Hitachi Ltd | ストレージシステム及び構成変更方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019021315A (ja) * | 2017-07-19 | 2019-02-07 | 三星電子株式会社Samsung Electronics Co.,Ltd. | オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 |
JP7063756B2 (ja) | 2017-07-19 | 2022-05-09 | 三星電子株式会社 | オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2011092738A1 (ja) | 2011-08-04 |
US20120005435A1 (en) | 2012-01-05 |
JPWO2011092738A1 (ja) | 2013-05-23 |
US8543778B2 (en) | 2013-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5314772B2 (ja) | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 | |
JP5502232B2 (ja) | ストレージシステム、及びその制御方法 | |
US8639899B2 (en) | Storage apparatus and control method for redundant data management within tiers | |
US8495331B2 (en) | Storage apparatus and storage management method for storing entries in management tables | |
US7739446B2 (en) | System and method for managing disk space in a thin-provisioned storage subsystem | |
JP5981563B2 (ja) | 情報記憶システム及び情報記憶システムの制御方法 | |
JP5303066B2 (ja) | プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 | |
US8984221B2 (en) | Method for assigning storage area and computer system using the same | |
JP5685676B2 (ja) | 計算機システム及びデータ管理方法 | |
JP5079841B2 (ja) | ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置 | |
JP5793196B2 (ja) | 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法 | |
JP4690765B2 (ja) | ストレージ管理システム、ストレージ管理サーバ、データ再配置制御方法およびデータ再配置制御プログラム | |
JP5363595B2 (ja) | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 | |
JP5080611B2 (ja) | ThinProvisioningが適用されたストレージ装置 | |
JP2012531653A (ja) | 記憶制御装置及び仮想ボリュームの制御方法 | |
US20120297156A1 (en) | Storage system and controlling method of the same | |
JP2011070345A (ja) | 計算機システム、計算機システムの管理装置、計算機システムの管理方法 | |
WO2015198441A1 (ja) | 計算機システム、管理計算機、および管理方法 | |
JP2020052919A (ja) | ストレージ装置、管理方法及びプログラム | |
US8572347B2 (en) | Storage apparatus and method of controlling storage apparatus | |
US10089125B2 (en) | Virtual machines accessing file data, object data, and block data | |
JP5597266B2 (ja) | ストレージシステム | |
JP6035363B2 (ja) | 管理計算機、計算機システム、及び管理方法 | |
JP5355764B2 (ja) | ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置 | |
WO2017163322A1 (ja) | 管理計算機、および計算機システムの管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130424 |
|
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: 20130618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130705 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |