JP5981563B2 - 情報記憶システム及び情報記憶システムの制御方法 - Google Patents

情報記憶システム及び情報記憶システムの制御方法 Download PDF

Info

Publication number
JP5981563B2
JP5981563B2 JP2014551435A JP2014551435A JP5981563B2 JP 5981563 B2 JP5981563 B2 JP 5981563B2 JP 2014551435 A JP2014551435 A JP 2014551435A JP 2014551435 A JP2014551435 A JP 2014551435A JP 5981563 B2 JP5981563 B2 JP 5981563B2
Authority
JP
Japan
Prior art keywords
rearrangement
page
tier
data
relocation
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
JP2014551435A
Other languages
English (en)
Other versions
JP2015520876A (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 JP2015520876A publication Critical patent/JP2015520876A/ja
Application granted granted Critical
Publication of JP5981563B2 publication Critical patent/JP5981563B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報記憶システム及び情報記憶システムの制御方法に関し、特に、情報記憶システムにおける階層間でのデータ再配置に関する。
ストレージシステムからホストに対してボリュームを提供する際、ストレージシステム内の性能の異なる複数のドライブの記憶領域から階層化されたプールを構成し、そのプールから構築した仮想ボリュームをホストに割り当てる運用が知られている(例えば、特許文献1:米国特許出願公開第2011/0167236号明細書を参照)。
ストレージシステムは、仮想ボリュームに対するホストからのI/O(Input/Output)負荷を分析し、I/O負荷の高いページを、性能の高い高価なディスクで構成されたリソースから成る上位階層に、そうでないページを性能の低い安価なディスクで構成されたリソースから成る下位階層に自動再配置する(階層間のページの再配置)。これにより、少ないTCO(Total Cost of Ownership)で、効率的に要求性能を満たすことができる。また、特許文献1は、SSDがボトルネックにならないよう、SSDに配置するページ数を制限する技術を開示している。
米国特許出願公開第2011/0167236号明細書
ホストI/O性能(レスポンス性能)を最大化するためには、ページ再配置を迅速に行い、ページ再配置完了までの時間を短くすることが重要である。しかし、ページ再配置の高速化は、ストレージシステムにおけるページ再配置の負荷の増加を招き、ストレージコントローラのCPUや記憶ドライブといったハードウェアリソースがボトルネックとなって、ストレージシステムのホストI/O性能が大きく悪化する可能性がある。したがって、ホストI/O性能の低下を抑えつつ、ページ再配置を迅速に行う技術が望まれる。
本発明の一態様の情報記憶システムは、アクセス性能が異なる複数階層を含むプールに実記憶領域を提供する、性能が異なる複数の物理記憶ドライブと、コントローラと、を含み、前記コントローラは、前記プールにおける第1階層へのアクセスを監視し、前記第1階層と前記プールにおける第2階層との間でのデータ再配置において、前記監視の結果及び前記第1階層の性能に基づき、複数の異なる再配置速度での再配置における、再配置によるホストに対する性能低下の影響及び再配置による性能の向上の度合いを推測し、前記推測した影響及び度合いに基づいて、再配置速度を前記複数の再配置速度から決定する。
本発明の一態様によれば、ホストI/O性能の低下を抑えつつ、階層化されたプールにおけるデータ再配置を迅速に行うことができる。
本実施形態における、計算機システムの概略構成を模式的に示すブロック図である。 本実施形態における、ストレージシステムがホストに提供する仮想ボリューム及び仮想ボリュームを提供するプールの論理構成を模式的に示している。 本実施形態における、共有メモリが格納しているデータを示すブロック図である。 本実施形態における、ローカルメモリが格納するストレージ制御プログラムの例を示すブロック図である。 本実施形態における、仮想論理変換テーブルの構成例を示している。 本実施形態における、論理物理変換テーブルの構成例を示している。 本実施形態における、細粒度モニタテーブルの構成例を示している。 本実施形態における、パリティグループモニタテーブルの構成例を示している。 本実施形態における、再配置ジョブ実行管理テーブルの構成例を示している。 本実施形態における、再配置速度管理テーブルの構成例を示している。 本実施形態における、ジョブ優先度に従った処理の概要を模式的に示している。 本実施形態における、再配置速度決定テーブルの構成例を示している。 本実施形態における、ホストREADプログラムの処理例(1)を示すフローチャートである。 本実施形態における、ホストWRITEプログラムの処理例(1)を示すフローチャートである。 本実施形態における、ドライブWRITEプログラムの処理例(1)を示すフローチャートである。 本実施形態における、ページのマイグレーションを説明するための模式図である。 本実施形態における、再配置プログラムの処理例を示すフローチャートである。 本実施形態における、再配置速度決定プログラムによる、簡易方式の再配置速度決定処理を示すフローチャートである。 本実施形態における、一つの階層のTier性能管理テーブルの構成例及びその作成方法を示している。 本実施形態における、再配置速度決定プログラムによる他の処理例を示すフローチャートである。 本実施形態における、階層のレスポンスカーブを示している。 本実施形態における、再配置コスト算出例を示すフローチャートである。 本実施形態における、再配置方式決定プログラムによる再配置方式決定処理の一例を示すフローチャートである。 本実施形態における、ページデータのスワップ方式による再配置の概要を説明する図である。 本実施形態における、スワップ方式の再配置方法の例を説明するフローチャートである。 本実施形態における、コピー方式による再配置の概要を説明する図である。 本実施形態における、コピーセグメントを管理する、コピーセグメント管理テーブルの構成例を示している。 本実施形態における、コピー方式の再配置の例を説明するフローチャートである。 本実施形態における、コピーセグメントを有する仮想ページに対するホストREAD処理(2)の例を説明するフローチャートである。 本実施形態における、コピーセグメントを有する仮想ページに対するライトコマンドに対応したホストWRITE処理例(2)を説明するフローチャートである。 本実施形態における、コピーセグメントを有する仮想ページに対するライトコマンドに対応したドライブWRITE処理例(2)を説明するフローチャートである。 本実施形態における、コピーセグメントのダーティ書き戻しの例を説明するフローチャートである。 本実施形態における、ユーザ(管理者)が再配置方法を設定するためのGUIの一例を示している 本実施形態における、再配置速度管理テーブルの他の構成例を示している。 本実施形態における、ページのI/O回数に応じた再配置の一例を示すフローチャートである。
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
本実施形態において、ストレージシステムは、階層化されたプールを有し、階層間においてデータを再配置する。本実施形態は、ストレージシステムにおけるI/O(Input/Output)に基づいて、階層間のデータ再配置における再配置速度及び/又は再配置方式を決定し、決定した再配置速度及び/又は再配置方式において階層間のデータ再配置を行う。
再配置速度により複数ページの再配置完了の所要時間が変化し、再配置速度が速い程、複数ページの再配置の完了時間が短くなる。再配置方式は、再配置におけるデータの移動方法を規定する。再配置方式が規定するデータの移動は、再配置対象として選択されたページのデータの移動又は、当該ページのデータ及びそれとは異なるデータの移動を規定する。適切な再配置速度及び/又は再配置方式を選択することで、データ再配置によるホストI/O性能の低下を抑えつつ、再配置後のホストI/O性能の向上させることができる。
以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。
また、プログラムを主語として開示された処理は、管理サーバやストレージシステム等の計算機又は情報処理装置が行う処理でもある。プログラムの少なくとも一部は専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムはプログラム配布サーバや非一時的な記憶媒体によって計算機や情報処理装置にインストールされてもよい。
プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサは、制御プログラムに従って動作することで制御部として機能し、管理プログラムに従って動作することで管理部として機能する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
図1は、本実施形態の計算機システムの概略構成を模式的に示すブロック図である。本計算機システムは、ホスト(ホスト計算機)100、管理サーバ(管理計算機)120、ストレージシステム140を含む。計算機システムが含みえるホスト100、管理サーバ120、ストレージシステム140のそれぞれの数は、1以上の任意の数である。
ホスト100、管理サーバ120、及びストレージシステム140は、管理ネットワーク170により、通信可能に接続されている。例えば、管理ネットワーク170は、IPネットワークである。なお、管理ネットワーク170は、管理データ通信用のネットワークであればIPネットワーク以外のネットワークでもよい。
ホスト100及びストレージシステム140は、データネットワーク160により接続されている。ホスト100はストレージシステム140のリソースにアクセスし、業務を行う計算機である。データネットワーク160はデータ通信用のネットワークであって、例えば、SAN(Storage Area Network)である。データネットワーク160は、データ通信用のネッットワークであれば、SANと異なるネットワークでもよい。データネットワーク160と管理ネットワーク170は同一のネットワークでもよい。
管理サーバ120は、ネットワークインタフェース(I/F)125、プロセッサ121、主記憶デバイスであるメモリ122、二次記憶デバイス123、入出力デバイス124を含む。管理サーバ120は、管理プログラム126を実行し、それに従って動作する。管理サーバ120のデバイスは、バスにより通信可能に接続されている。
入出力デバイス124は、ディスプレイ、ポインタ又はキーボード等のデバイスの一つ又は複数のデバイスを含む。管理者は、これら入出力デバイス124により、管理サーバ120を操作することができるほか、ネットワークを介して接続するクライアント計算機から管理サーバ120にアクセスしてもよい。クライアント計算機は、管理サーバ120と共に管理システムに含まれる。
管理者は、入力デバイス(例えばマウス及びキーボード)により必要な情報を入力し、出力デバイスにより必要な情報を視認することができる。管理システムは、一つ又は複数の計算機で構成されていてよく、それぞれが管理サーバ120の機能の一部又は全部を備える複数の計算機を含むことができる。
プロセッサ121は、メモリ122に記憶されているプログラムを実行することによって管理サーバ120の所定の機能を実現する。メモリ122は、プロセッサ121よって実行されるプログラム及びプログラムの実行に必要なデータを記憶する。プログラムは、不図示のOSの他、管理プログラム126を含む。
典型的には、プログラムは、二次記憶デバイス123からメモリ122にロードされる。二次記憶デバイス123は、管理サーバ120の所定の機能を実現するために必要なプログラム及びデータを格納する、不揮発性の非一時的記憶媒体を備える記憶装置である。二次記憶デバイス123は、ネットワークを介して接続された外部の記憶装置でもよい。
ストレージシステム140は、異なる種類の物理記憶ドライブ群146、147及びホスト100と物理記憶ドライブ群146、147との間においてデータ転送制御を行うストレージコントローラ155とを含む。
ストレージコントローラ155は、プロセッサ141、ローカルメモリ148、共有メモリ145、キャッシュメモリ144、ホストインタフェース142、管理インタフェース143、ドライブインタフェース149、ポート150を含む。ストレージシステム140は、ポート150を介して、外部の物理記憶ドライブ群151に接続している。ストレージシステム140は、複数クラスタのストレージコントローラを含んでいてもよい。
プロセッサ141は、ストレージ制御プログラム(図4を参照)を実行することで、ホスト100からのI/Oの制御及びストレージシステム140のプール及びボリュームの管理、制御を含む所定の機能を実現する。本実施形態で説明するストレージコントローラ155の機能の少なくとも一部は、プロセッサ141と異なるロジック回路によって実現されてもよい。
ローカルメモリ148は、プロセッサ141が扱うデータやプログラムを格納する。ローカルメモリ148のデータは、他のストレージシステムとは共有されない。典型的には、ストレージ制御プログラムやストレージシステム140の制御に利用されるデータが、いずれかの記憶ドライブ又はフラッシュメモリ(不図示)からロードされる。
管理インタフェース143は、管理サーバ120と接続するためのデバイスである。管理インタフェース143は、管理サーバ120とストレージコントローラ155との通信に用いられるプロトコル、例えばIPプロトコルを、ストレージコントローラ155内部で用いられるプロトコル、例えば、PCIeに変換する機能を有する。
ホストインタフェース142は、ホスト100と接続するためのデバイスである。ホストインタフェース142は、ホストコンピュータ100とストレージコントローラ155との通信に用いられるFC、Fibre Channel Over Ethernet(FCoE)、iSCSI等のプロトコルを、ストレージコントローラ155内部で用いられるプロトコル、例えば、PCIeに変換する機能を有する。
ドライブインタフェース149は、物理記憶ドライブ群146、147と接続するためのデバイスである。ドライブインタフェース149は、物理記憶ドライブ群146、147とストレージコントローラ155の通信に用いられるFC、Serial Attached SCSI(SAS)、Serial Advanced Technology Attachment(SATA)等のプロトコルを、ストレージコントローラ155内部で用いられるプロトコル、例えば、PCIeに変換する機能を有する。
キャッシュメモリ144は、ホスト100から物理記憶ドライブ群146、147、151に読み書きされるデータ(ユーザデータ)を、一時的に記憶し(ユーザデータのキャッシング)、さらに、それらの間でデータを中継する。共有メモリ145は、プロセッサ141(ストレージ制御プログラム)が利用し、他のストレージシステムとの共有データを格納する。共有メモリ145は、実装されていなくともよい。本システムの共有メモリ145が格納しているデータは、図3を参照して後述する。
本構成例において、ストレージシステム140は、アクセス性能が異なる3層の物理記憶ドライブを含む。アクセス性能は、レスポンス時間やスループットといった指標で表される。物理記憶ドライブ群146は、最もアクセス性能が高い物理記憶ドライブの層(Tier1)であり、物理記憶ドライブ群147は、次にアクセス性能が高い物理記憶ドライブの層(Tier2)である。さらに、ストレージシステム140は、最もアクセス性能が低い物理記憶ドライブの層(Tier3)として、外部物理記憶ドライブ群151を含む。
例えば、物理記憶ドライブ群146(Tier1)は、SSD(Solid State Drive)群であり、物理記憶ドライブ群147(Tier2)は、HDD(Hard Disk Drive)群である。一つの階層の物理記憶ドライブのアクセス性能は、その上位階層の物理記憶ドライブよりも低く、その下位階層の物理記憶ドライブのアクセス性能よりも高い。典型的には、同一層内の物理記憶ドライブのアクセス性能は同一であるが、小さい違いであれば異なっていてもよい。
物理記憶ドライブのアクセス性能は、物理記憶ドライブのインタフェースによっても異なり得る。例えば、SAS(Serial Attached SCSI)HDD群とSATA(Serial ATA)HDD群とは、異なる層を構成し得る。
図2は、ストレージシステム140がホスト100に提供する仮想ボリューム及び仮想ボリュームを提供するプールの論理構成を模式的に示している。ストレージシステム140は、1又は複数のプールを構築することができる。以下においては、基本的に一つのプールについて説明を行う。ストレージシステム140が複数のプールを含む場合、ストレージシステム140は、プール毎に、以下に説明する処理を行うことができる。
図2は、ホスト100に、三つの階層(Tier1、Tier2、Tier3)の記憶領域211、221、231を提供する例を説明している。プールは、4以上又は3未満の階層の階層に階層化されていてもよい。例えば、最も高位の階層(Tier1)がSSD群の記憶領域で構成され、次位の階層(Tier2)がSASHDD群の記憶領域で構成され、最低位の階層(Tier3)がSATAHDDの記憶領域で構成される。
図2において、ストレージコントローラ155は、プール201内の記憶領域から、仮想ボリューム271、275を構築する。プール201は、ページ(所定容量の記憶領域)単位で管理される。仮想ボリューム271、275にホスト100から書き込みがあり、データ格納領域が必要になる度に、ストレージシステム140は、ページを仮想ボリューム271、275に割り当てる。また、不要なページを解放する。
このように、動的にページを割り当てることで、仮想ボリューム271、275の容量を仮想化する、つまり、ホスト100が認識する(ホスト100に割り当てられている)容量よりも、実容量を小さくすることができる。ストレージシステム140は、プール内のページから構成され実容量とホスト100により認識される容量が一致するボリュームを、ホスト100に提供してもよい。
上述のようにプール201は階層化されている。本例においては、プール201は、Tier1(211)、Tier2(221)、Tier3(231)の3階層で構成されている。各層には、一つ又は複数のパリティグループ(RAIDグループ)の記憶領域が割り当てられる。パリティグループの全て又は一部の記憶領域が階層に割り当てられる。ストレージコントローラ155は、仮想ボリューム271、275に、異なる階層のページを割り当てることができる。
図2の例において、Tier1(211)に二つのパリティグループの記憶領域212A、212Bが割り当てられ、Tier2(221)に一つのパリティグループの記憶領域222が割り当てられ、Tier3(231)に二つのパリティグループの記憶領域232A、232Bが割り当てられている。
Tier1のパリティグループ記憶領域212Aはページ213A、213Bを含み、ページ(実ページ)213Aが仮想ボリューム271のページ(仮想ページ)272Aに割り当てられている。Tier1のパリティグループの記憶領域212Bはページ214A、214Bを含み、ページ(実ページ)214Aが仮想ボリューム275のページ(仮想ページ)276Aに割り当てられている。
Tier2のパリティグループ記憶領域222はページ223A〜223Dを含む。ページ(実ページ)223Aは、仮想ボリューム271のページ(仮想ページ)272Bに割り当てられている。ページ(実ページ)223Dは、仮想ボリューム275のページ(仮想ページ)276Bに割り当てられている。
Tier3のパリティグループ記憶領域232Aはページ233A、233Bを含み、ページ(実ページ)233Aが仮想ボリューム271のページ(仮想ページ)272Cに割り当てられている。Tier3のパリティグループの憶領域232Bはページ234A、234Bを含み、いずれのページも仮想ボリューム271、275に割り当てられていない。
以下に説明する例において、プール201がTier1、Tier2、Tier3の3階層に階層化されているものとする。Tier1が最高位の層であり、最高性能の物理記憶ドライブ(例えばSSD)の記憶領域で構成されている。Tier2が次位の層であり、次に高性能の物理記憶ドライブ(例えばSASHDD)の記憶領域で構成されている。そして、Tier3が最低位の層であり、最も性能が低い物理記憶ドライブ(例えばSATAHDD)の記憶領域で構成されている。
図3は、共有メモリ145が格納しているデータを示すブロック図である。共有メモリ145は、仮想論理変換テーブル301、論理物理変換テーブル302、細粒度モニタテーブル303、パリティグループモニタテーブル304、再配置ジョブ実行管理テーブル305、再配置速度管理テーブル306、再配置速度決定テーブル307、コピーセグメント管理テーブル308、Tier性能管理テーブル309を格納している。
ストレージ制御プログラムは、これらテーブルを参照して、ストレージシステム140の動作を制御、管理する。各テーブルの詳細は、後述する。これらはローカルメモリ148に格納されていてもよい。なお、本実施形態において、テーブル、リスト、DB、キュー等の表現にて情報を説明するが、本発明で利用される情報はデータ構造に依存せず、設計に従って適切なデータ構造で表現することができる。さらに、各情報の内容を説明する際に、識別子、名、ID等という表現を用いるが、これらについてはお互いに置換が可能である。
図4は、ローカルメモリ148が格納するストレージ制御プログラムの例を示すブロック図である。ストレージ制御プログラムは、ホストREADプログラム401、ホストWRITEプログラム402、ドライブWRITEプログラム403、ダーティ書き戻しプログラム404、再配置プログラム405、再配置速度決定プログラム406、再配置コスト計算プログラム407、再配置方式決定プログラム408を含む。各プログラムの処理の詳細は後述する。
図5は、仮想論理変換テーブル301の構成例を示している。仮想論理変換テーブル301は、ホスト100が指定する仮想ボリュームのアドレス(仮想アドレス)を、ストレージコントローラ155が管理しているパリティグループ(プール201)内の論理アドレスに変換ために参照されるテーブルである。論理アドレスは、パリティグループ内で一意である。
仮想論理変換テーブル301の1エントリは、1ページのアドレス情報を格納する。仮想論理変換テーブル301は、ページ番号のカラム501、仮想ボリューム番号のカラム502、仮想アドレスのカラム503、プール番号のカラム504、パリティグループ番号のカラム505、論理アドレスのカラム506を有する。仮想アドレスは、仮想ボリューム内でデータの位置を示すアドレスであり、論理アドレスはプールのパリティグループ内でデータの位置を示すアドレスである。
ページ番号のカラム501は、各ページを識別する値を格納する。例えば、ページ番号は、プール201内において一意である。仮想ボリューム番号のカラム502は、ページが割り当てられている仮想ボリュームを識別する値を格納する。例えば、仮想ボリューム番号は、プール201において一意である。仮想アドレスのカラム503は、仮想ボリュームにおいてページに割り当てられている仮想アドレスの開始アドレスを格納する。ページの容量は規定の一定値であるとする。
プール番号のカラム504は、ページが含まれるプールを識別する値を格納する。パリティグループ番号のカラム505は、ページが含まれるパリティグループを識別する値を格納する。例えば、パリティグループ番号は、プール201内で一意である。論理アドレスのカラムは506、パリティグループ内でのページの論理アドレスの開始アドレスを格納する。
ストレージコントローラ155は、仮想論理変換テーブル301を参照して、ホスト100からのリードコマンド及びライトコマンドが指定する仮想ボリュームにおける仮想アドレスから、プール内のパリティグループにおける論理アドレスを決定することができる。
図6は、論理物理変換テーブル302の構成例を示す図である。論理物理変換テーブル302は、プール201における論理アドレスを、物理記憶ドライブの物理アドレスに変換ために参照されるテーブルである。論理物理変換テーブル302は、パリティグループ番号のカラム601、RAID種別のカラム602及び物理記憶ドライブ番号のカラム603を有する。
RAID種別のカラム602は、パリティグープのRAID種別(RAIDレベル)の識別子を格納し、物理記憶ドライブ番号のカラム603は、パリティグープを構成する全ての物理記憶ドライブの物理記憶ドライブ番号を格納する。
パリティグループのRAID種別と、パリティグループを構成する物理記憶ドライブを定義することにより、パリティデータの配置を考慮したパリティグループの論理アドレス空間が定義される。コントローラ155は、定義された論理アドレス空間に基づき、パリティグループの論理アドレスから、物理記憶ドライブ番号とそのドライブにおける物理アドレスが特定できる。
図7は、細粒度モニタテーブル303の構成例を示している。細粒度モニタテーブル303は、ページ(仮想ページ)に対して、所定の監視期間内に発行されたI/O(ホストからのI/O及び再配置によるI/Oの双方を含む)の回数を管理するテーブルテーブルである。仮想ページには、実ページ(実記憶領域)又は、後述するように、実ページ及びコピーセグメント(実記憶領域)が割り当てられており、カウントされる仮想ページのI/O回数は、実ページ及びコピーセグメントのI/O回数である。
本例において、ストレージコントローラ155は、I/Oとしてリードアクセス及びライトアクセスをモニタする。つまり、I/O回数は、リードアクセスの回数とライトアクセスの回数の合計である。他の例は、それらの一方のみ、例えばリードアクセスのみをモニタしてもよい。
ストレージコントローラ155は、規定長さの監視期間において、ストレージシステム140におけるオペレーションを監視して、その監視結果を管理する。特に、本実施形態において、ストレージコントローラ155は、ホストからのI/O回数と、ページ再配置の回数(再配置によるI/O回数)を監視する。ストレージコントローラ155は、予め決められた長さの監視期間におけるこれらの値をカウントし、監視期間完了時の最終的なカウント値を、図3に示す管理テーブルの一つ又は複数に格納する。
監視期間は、予め定められた周期で繰り返される。典型的には全ての数値カウントのための監視期間は共通であるが、異なっていてもよい。監視期間の長さが決まっているため、その期間におけるホストI/O回数からホストI/O頻度(IOPS)を算出することができ、ページ再配置の回数からページ再配置によるI/O頻度(IOPS)を算出することができる。
細粒度モニタテーブル303は、ページ番号のカラム701、仮想ボリューム番号のカラム702、仮想アドレスのカラム703、I/O回数のカラム704を有する。ページ番号のカラム701、仮想ボリューム番号のカラム702、仮想アドレスのカラム703がそれぞれ格納する情報は、他の図面を参照して上に説明した通りである。
I/O回数のカラム704は、直前の完了監視期間におけるページへのI/O回数の値を格納する。I/O回数は、ホストからのコマンドによるI/O回数と再配置によるI/O回数の和である。再配置によるI/O回数には、再配置元である物理ディスクからのリード、および再配置先である物理ディスクへのライトの両方のアクセス回数が含まれる。上述のように、ストレージコントローラ155は、規定長の監視期間においてページのI/Oをカウントする。カウント中のI/O回数の値は、他のテーブル(不図示)に格納されている。
ストレージコントローラ155は、監視期間の完了後に、その監視結果の値でI/O回数のカラム704の値を更新する。例えば、管理テーブル更新プログラムに従って動作するストレージコントローラ155は、細粒度モニタテーブル303及び他のテーブルにおいて更新が必要な値を監視期間の満了後に更新する。I/O回数のカラム704における値を監視期間の長さで割った値は、当該ページへのIOPSである。
図8は、パリティグループモニタテーブル304の構成例を示している。パリティグループモニタテーブル304は、モニタされている、パリティグループのI/O回数(ホストからのI/O回数及び再配置によるI/O回数の和)及びパリティグループ間のページ再配置の回数を管理する。パリティグループモニタテーブル304は、パリティグループ番号のカラム801、Tierのカラム802、I/O回数のカラム803、再配置回数(再配置元)のカラム804、再配置回数(再配置先)のカラム805を有する。
パリティグループ番号のカラム801が格納する情報は、他の図面を参照して上に説明した通りである。Tierのカラム802は、パリティグループ(が提供する記憶領域)が属する階層を識別する値を格納する。
I/O回数のカラム803は、規定長の監視期間内における、パリティグループへのホストからのI/O発行数と再配置によるI/O発行数の和を格納する。再配置は、再配置元にリードコマンドを発行し、再配置先にライトコマンドを発行することに相当する。本例において、I/O回数のカウント方法は、上記ページのI/O回数のカウント方法と同様であり、それらの監視期間は同一である。本例において、パリティグループに含まれる全ページのI/O回数の和が、パリティグループのI/O回数である。
再配置回数(再配置元)のカラム804は、本パリティグループから別のパリティグループに再配置した回数を格納する。また、再配置回数(再配置先)のカラム805は、別パリティグループから本パリティグループに再配置した回数を格納する。
これらの回数のカウント方法は、パリティグループへのホストからのI/O発行数のカウントと共通の監視期間において再配置の回数をカウントし、監視期間完了後にその監視結果の値で再配置回数(再配置元)のカラム804の値、再配置回数(再配置先)のカラム805の値を更新する。これらI/O回数、再配置回数のカウント中の値は、別のテーブル(不図示)に格納されている。
図9は、再配置ジョブ実行管理テーブル305の構成例を示している。再配置ジョブ実行管理テーブル305は、各階層間の再配置ジョブを管理するテーブルである。再配置ジョブ実行管理テーブル305は、各プールに用意される。本例において、再配置ジョブ実行管理テーブル305は、Tierのカラム901、実行ジョブ数のカラム902、再配置速度番号のカラム903、再配置方式のカラム904を有する。
Tierのカラム901は、ページ再配置を行う二つの階層の識別情報を格納している。本例のプールは3階層に階層化されているため、Tier1とTier2との間の再配置、Tier2とTier3との間の再配置、そして、Tier1とTier3との間の再配置のエントリが保持されている。
実行ジョブ数のカラム902は、階層間において、今現在、実際に再配置を実行中のジョブ数を格納する。再配置速度番号のカラム903は、階層間の再配置に対して設定されている再配置速度を識別する値を格納する。再配置速度については、図10Aを参照して後述する。
再配置方式のカラム904は、階層間の再配置に対して設定されている再配置方式(データの移動方法)の識別子を格納する。再配置方式については後で説明するが、本例において、マイグレーション、コピー、スワップの三つのデータ移動方法から一つの方式が選択され、割り当てられる。ストレージコントローラ155は、ページ再配置において、再配置ジョブ実行管理テーブル305を参照して決定した再配置速度、再配置方式によってページ再配置を実行する。
図10Aは、再配置速度管理テーブル306の構成例を示している。再配置速度管理テーブル306は、ページ再配置において使用可能な再配置速度を定義する。本例において、再配置速度を定義するパラメータは、ジョブ数、スリープ時間、ジョブ優先度である。再配置速度管理テーブル306は、再配置速度番号のカラム1001、最大ジョブ数のカラム1002、スリープ時間のカラム1003、ジョブ優先度のカラム1004を有する。
再配置速度番号のカラム1001の格納する情報は、他の図面を参照して上に説明した通りである。最大ジョブ数のカラム1002は、再配置速度番号に対して定義されている再配置ジョブの最大多重実行数(同時実行の最大ジョブ数)の値を格納する。ジョブ数が大きくなると、再配置速度が速くなる。
スリープ時間のカラム1003は、再配置におけるスリープ時間を示す値を格納する。スリープ時間は、1ページ再配置した後に、次のページの再配置を開始するまでの待機時間である。再配置ジョブが多重化されている場合、各ジョブは、1ページ再配置した後に規定されているスリープ時間だけ、次のページの再配置を待つ。スリープ時間が短くなると、再配置速度が速くなる。
ジョブ優先度のカラム1004は、再配置ジョブの他のジョブ(例えば、ホストI/Oジョブ)と比較した優先度を格納する。本例のジョブ優先度のカラム1004において、優先度の値が小さいほど、優先度が高い。ストレージコントローラ155は、優先度が高いジョブから先に実行する。再配置のジョブ優先度が高いと、ストレージシステム140の負荷が大きい場合でも、再配置の速度が低下しない(より速い速度で再配置が実行される)。再配置ジョブが多重化されている場合、典型的には、全てのジョブの優先度が同一である。
図10Bは、ジョブ優先度に従った処理の概要を模式的に示している。ストレージコントローラ155は、物理記憶ドライブごとに、優先度ごとのI/O要求キューを保持している。本例において、ストレージコントローラ155は、物理記憶ドライブ1055に対して、高優先度(優先度1)のキュー1051、低優先度(優先度2)のキュー1052を保持している。ストレージコントローラ155は、物理記憶ドライブ1056に対して、高優先度(優先度1)のキュー1053、低優先度(優先度2)のキュー1054を保持している。
ストレージコントローラ155は、優先度の順でキューから要求を取り出し、物理記憶ドライブへ、READ/WRITE要求を発行する。通常、ホストI/O要求は優先度1(最も高い優先度)であり、再配置I/Oは優先度2以下である。例えば、ホストI/Oが過多のために全く再配置が動作できない場合、ストレージコントローラ155は、再配置I/Oの優先度を1に設定する。
図11は、再配置速度決定テーブル307の構成例を示している。再配置速度決定テーブル307は、ページ再配置における再配置速度を決定するためのテーブルである。本例において、ストレージコントローラ155は、再配置速度を、ページのI/O回数、再配置元の階層の負荷、再配置先の階層の負荷に基づいて、決定する。再配置元と再配置先の階層のうち、一方が相対的に高位階層であり他方が相対的に低位階層である。
再配置速度決定テーブル307は、高位階層負荷のカラム1101、低位階層負荷のカラム1102、ページI/O回数のカラム1103、再配置速度番号のカラム1104を有する。再配置速度番号のカラム1104が格納する情報は、他の図面を参照して上に説明した通りである。
高位階層負荷のカラム1101は、高位階層の負荷の複数のレベルを格納し、各フィールドには一つのレベルが格納される。階層の負荷は、例えば、IOPSで表される。階層のIOPSは、ホストIOPSのみ又はホストIOPSと再配置IOPSの和で表される。ストレージコントローラ155は、これらの値を、パリティグループモニタテーブル304から取得することができる。閾値より大きい負荷が「高い」レベルに属し、閾値以下の負荷が「低い」レベルに属する。
低位階層負荷のカラム1102は、低位階層の負荷の複数のレベルを格納し、各フィールドには一つのレベルが格納される。階層の負荷は、高位階層の負荷と同様に決定され、レベルも高位階層と同様の方法で決定される。IOPSを使用する場合、ストレージコントローラ155は、これらの値を、パリティグループモニタテーブル304の値から取得することができる。閾値より大きい負荷が「高い」レベルに属し、閾値以下の負荷が「低い」レベルに属する。
ページI/O回数のカラム1103は、ページI/O回数の複数のレベルを格納し、各フィールドには一つのレベルが格納される。本例においては、ページI/O回数は、「高い」と「低い」の二つレベルに分けられている。閾値より大きいページI/O回数が「高い」レベルに属し、閾値以下のページI/O回数が「低い」レベルに属する。ページI/O回数のレベルの決定は、細粒度モニタテーブル303を参照する。
本例は、低位階層から高位階層への再配置(プロモーション)と高位階層から低位階層への再配置(デモーション)の双方に同一のテーブルを適用する。他の例は、それぞれに固有の再配置速度決定テーブルを使用してもよい。本実施形態の再配置速度の決定は、プロモーションに対してのみ実行してもよい。本例は、全ての階層ペアに対して共通の再配置速度決定テーブルを適用するが、他の例は各階層ペアに固有の再配置速度決定テーブルを適用してもよい。
本例において、ストレージコントローラ155は、再配置の二つの階層の負荷と再配置されるページのI/O回数に基づいて、再配置速度を決定するが、ストレージコントローラ155は、これらの一部の値、例えば、再配置の階層の双方又は一方の負荷のみに基づいて再配置速度を決定してもよい。ストレージコントローラ155は、これらと異なる値、例えば、CPU負荷やパスの負荷を再配置速度の決定において参照してもよい。
図12は、ホストREADプログラム401の処理例(1)を示すフローチャートである。ホストREADプログラム401は、ホスト100から仮想アドレスを指定するリードコマンドを受信し、本フローチャートに従って動作する。
本例において、ホストREADプログラム401は、ホスト100からリードコマンドを受信すると、その指定アドレスのデータがキャッシュメモリ144に格納されているか、キャッシュ管理情報(不図示)を参照して判定する(S101)。指定データがキャッシュメモリ144に格納されている場合(S101:YES)、ホストREADプログラム401は、キャッシュメモリ144上の指定されたデータをホスト100に転送する(S105)。
指定データがキャッシュメモリ144に格納されていない場合(S101:NO)、ホストREADプログラム401は、指定されている仮想アドレスを、仮想論理変換テーブル301、論理物理変換テーブル302を参照して、物理アドレスに変換する(S102)。物理アドレスは、物理記憶ドライブ及びその物理記憶ドライブにおける記憶領域を指定するアドレスである。
具体的には、ホストREADプログラム401は、仮想論理変換テーブル301を参照して、指定されている仮想アドレスのデータを格納するパリティグループを特定し、さらに、その仮想アドレスに対応する論理アドレスを算出する。ホストREADプログラム401は、論理物理変換テーブル302を参照して、論理アドレスが示す物理記憶ドライブ番号及びそのどれライブにおけるアドレスを算出する。
ホストREADプログラム401は、算出した物理アドレスのデータを物理ドライブから読み出し、キャッシュメモリ144へデータを転送する(S103)。例えば、ホストREADプログラム401は、ドライブインタフェース149に物理アドレスを指定して、リードデータのキャッシュメモリ144への転送を指示する。
ホストREADプログラム401は、読みだしたページのカウント中のI/O回数(ホストI/O回数)の値と、当該ページが属するパリティグループのカウント中のI/O回数(ホストI/O回数)の値とを更新する(S104)。上述のように、本例は、リード及びライトの双方のアクセスにおいて、I/O回数をカウントする。監視期間満了時のこれらの値が、再粒度モニタテーブル303やパリティグループモニタテーブル304に格納される。
ホストREADプログラム401は、キャッシュメモリ144上のデータを、ホスト100に転送する(S105)。ホストREADプログラム401は、ホストインタフェース142を利用して、キャッシュメモリ144上のデータをホスト100に転送する。
図13は、ホストWRITEプログラム402の処理例(1)を示すフローチャートである。ホストWRITEプログラム402は、ホスト100からのライトコマンド及びライトデータの受信から、ライトデータのキャッシュメモリ144への転送までを担当する。ホストWRITEプログラム402は、ホスト100から仮想アドレスを指定するライトコマンドをユーザデータ(ライトデータ)と共に受信し、本フローチャートに従って動作する。
ホストWRITEプログラム402は、受信したライトコマンドを参照して、指定仮想アドレス領域を取得し、仮想論理変換テーブル301を参照して、その仮想アドレス領域に対してページ(実ページ)が割り当てられているか否か判定する(S201)。仮想論理変換テーブル301に当該アドレスのエントリが登録されていない場合、その仮想アドレス領域に対してページが割り当てられていない。
指定仮想アドレス領域にページが未割り当ての場合(S201:YES)、ホストWRITEプログラム402は、未使用のページを当該仮想アドレス領域に割り当て、キャッシュ管理テーブル(不図示)及び仮想論理変換テーブル301を更新する(S202)。例えば、Tier1のページが割り当てられる。
指定仮想アドレス領域にページが割り当て済みの場合(S201:NO)又は未使用のページを当該仮想アドレス領域に割り当てた後、ホストWRITEプログラム402は、キャッシュメモリ144にライトデータを転送する(S203)。その後、ホストWRITEプログラム402は、ホスト100へライトの完了を応答する(S204)。
図14は、ドライブWRITEプログラム403の処理例(1)を示すフローチャートである。ドライブWRITEプログラム403は、キャッシュメモリ144上のライトデータの物理記憶ドライブへの転送(物理記憶ドライブへの書き込み)を担当する。図14に示すように、ドライブWRITEプログラム403は、キャッシュメモリ144上に物理記憶ドライブへ未転送のデータが存在しているかキャッシュ管理テーブル(不図示)を参照して判定する(S301)。
未転送データが存在してない場合(S301:NO)、ドライブWRITEプログラム403はこのフローを終了する。未転送データが存在している場合(S301:YES)、ドライブWRITEプログラム403は、ライトコマンド指定する仮想アドレスを、仮想論理変換テーブル301及び論理物理変換テーブル302を参照して、ページの物理アドレスに変換する(S302)。
その後、ドライブWRITEプログラム403は、キャッシュメモリ144上のデータを、ドライブインタフェース149を利用して物理ドライブに転送する(S303)。ドライブインタフェース149は、上記物理アドレスへのライトコマンドと共にキャッシュメモリ144のライトデータを物理記憶ドライブに送信する。
ドライブWRITEプログラム403は、物理記憶ドライブへのライトデータの転送後に、ページのカウント中のI/O回数の値と、当該ページが属するパリティグループのカウント中のI/O回数の値とを更新する(S304)。上述のように、本例は、リードアクセス及びライトアクセスの合計をホストのI/O回数としてカウントし、監視期間満了時の値を再粒度モニタテーブル303やパリティグループモニタテーブル304に格納する。
図15は、ページのマイグレーションを説明するための模式図である。マイグレーションは、再配置の一つのデータ移動方法である。プロモーションの再配置は、ページデータを上位階層へ移動し、デモーションはページデータを下位階層へ移動する。図15は、デモーションを示していない。
マイグレーションは、ページのデータを現在の階層から他の階層の空きページに移行する。マイグレーションは、他の階層のページへの書き込みの後、元ページのデータを初期化する。多くの場合、ページデータのマイグレーションは、他のページデータの反対方向のマイグレーションを伴う。これにより、マイグレーション先階層の必要な空き容量が維持される。
マイグレーションは、再配置ターゲットのページデータを、再配置元の物理記憶ドライブからキャッシュメモリ144に読み出し、さらに、再配置先ページの物理記憶ドライブに格納する。図15の例は、Tier2の物理記憶ドライブ1503のページ1513のデータをキャッシュメモリ144に読み出し、再配置先ページのTier1の物理記憶ドライブ1501のページ1511に格納する。また、Tier2の物理記憶ドライブ1504のページ1514のデータをキャッシュメモリ144に読み出し、再配置先ページのTier1の物理記憶ドライブ1502のページ1512に格納する。
ストレージコントローラ155は、ページデータを再配置した後に、仮想論理変換テーブル301における当該ページの情報を更新する。具体的には、ストレージコントローラ155は、仮想論理変換テーブル301において、当該ページデータの仮想ページのアドレス(仮想アドレス)からの変換先の論理アドレスを、再配置先ページ(実ページ)の論理アドレスに書き換える。
図16は、再配置プログラム405の処理例を示すフローチャートである。このフローは、一つの再配置ジョブのフローである。再配置プログラム405は、後述する図17又は図19のフローにおいて決定された再配置速度において、ページ再配置を実行する。図10Aの再配置速度管理テーブル306の例において、再配置プログラム405は、選択された再配置速度番号の、最大実行ジョブ数内のジョブ数、スリープ時間、そしてジョブ優先度において再配置を実行する。
再配置プログラム405は、再配置ジョブ実行管理テーブル305を参照して、適用すべき再配置速度番号を知ることができ、再配置速度管理テーブル306を参照して、その再配置速度番号の定義内容(パラメータ値)を知ることができる。
再配置プログラム405は、選択したページのデータを、他の階層の空きページに再配置する。以下で説明する再配置方式は、図15を参照して説明したマイグレーションである。後述するように、再配置プログラム405は、マイグレーションと異なる再配置方式を使用することができる。再配置プログラム405は、図16のフローを所定のイベント、例えば規定時間の経過、に応答して実行する。
図16のフローにおいて、再配置プログラム405は、再配置すべきページ(のデータ)が存在するか判定する(S401)。再配置すべきページが存在しない場合(S401:NO)、再配置プログラム405はこのフローを終了する。再配置すべきページが存在する場合(S401:YES)、再配置プログラム405は、再配置を実行するページを選択する(S402)。
再配置プログラム405は、ページデータを再配置するか否かの判定方法において公知の技術を利用することができ、本実施形態において詳細な説明を省略する。例えば、再配置プログラム405は、ページのIOPSから当該ページデータの再配置の有無を決定する。再配置プログラム405は、ページのIOPSを、細粒度モニタテーブル303から知ることができる。
例えば、各階層に対してIPOS(ホストIOPS)のレンジが対応づけられており、再配置プログラム405は、ページのIOPSと各階層のIOPSのレンジを比較することで、当該ページのデータが属するべき階層を決定することができる。ページのIOPSが現在階層のレンジ内に含まれない場合、再配置プログラム405は、当該ページデータを、そのIOPSが含まれるレンジの階層に再配置することを決定する。再配置プログラム405は、階層内の使用容量が規定量未満である場合には、デモーションを行わなくともよい。
他の例において、再配置プログラム405は、各ページの順位をIOPSに従って決定し、各順位に応じた所属階層を決定することができる。例えば、3階層において、上位所定数のページのデータは最上位階層に格納され、次の上位所定数のページのデータは中位階層に格納され、他のページのデータは下位階層に格納される。
ステップS402において、再配置プログラム405は、規定された方法、例えば、IOPSの大きい順に再配置を実行するページを選択する。例えば、再配置プログラム405は、再配置すべきページから、最も大きいIOPS(ホストIOPS)のページを選択する。本例は一つのページを選択するが、複数のページを選択してもよい。
次に、再配置プログラム405は、選択したページデータの再配置先Tierを決定する(S403)。再配置先Tierの決定方法は上述の通りである。次に、再配置プログラム405は、再配置先Tierにおいて空きページを確保する(S404)。再配置プログラム405は、仮想論理変換テーブル301を参照して、再配置先Tierの領域からパリティグループが分散するように空きページを取得する。
再配置プログラム405は、論理物理変換テーブル302を参照して再配置対象ページの物理アドレスを決定し、その物理アドレスの領域からキャッシュメモリ144にデータを転送する(S405)。物理記憶ドライブからキャッシュメモリ144の転送方法はホストREAD処理(1)で説明した通りである。
再配置プログラム405は、再配置先ページの論理アドレスから論理物理変換テーブル302を参照して再配置先ページの物理アドレスを算出し、キャッシュメモリ144上のデータを上記物理アドレスに転送する(書き込む)(S406)。キャッシュメモリ144上のデータの物理記憶ドライブへの格納は、ドライブWRITE処理(1)で説明した通りである。
再配置プログラム405は、再配置を行ったページデータの情報を、仮想論理変換テーブル301において更新する(S407)。具体的には、再配置プログラム405は、再配置したページのエントリにおいて、仮想アドレスの変換先論理アドレスを、再配置元の論理アドレスから再配置先ページの論理アドレスに切り替える。
さらに、再配置プログラム405は、ページのカウント中のI/O回数の値、再配置元ページのパリティグループのカウント中のI/O回数の値及び再配置回数(再配置元)の値(現在監視期間における再配置回数(再配置元)の値)、並びに、再配置先ページのパリティグループのカウント中のI/O回数の値及び再配置回数(再配置先)の値(現在監視期間における再配置回数(再配置先)の値)を、更新する(S408)。ページの再配置は、ページのI/O回数を増加させ、再配置元パリティグループ及び再配置先パリティグループのそれぞれのI/O回数、再配置回数のそれぞれを増加させる。
再配置プログラム405は、再配置実行後に、規定時間(スリープ時間)、次の再配置実行まで待機する(S409)。再配置プログラム405は、予め決められている再配置速度(図17を参照)に従って、スリープ時間を決定する。スリープ時間は、再配置速度管理テーブル306に定義されている。既定のスリープ時間経過後に、再配置プログラム405は、ステップS401に戻る。
以下において、再配置速度決定プログラム406による再配置速度の決定を説明する。異なる再配置速度決定方法例を説明するが、再配置速度決定プログラム406は、これらと異なる方法により再配置速度を決定してもよい。
図17は、再配置速度決定プログラム406による、簡易方式の再配置速度決定処理を示すフローチャートである。本フローにおいて、再配置速度決定プログラム406は、再配置速度決定テーブル307を参照して、再配置速度を決定する。
図17のフローにおいて、再配置速度決定プログラム406は、前回の再配置速度決定例えば、次に行う再配置の階層間の前回の再配置速度の決定から規定時間経過したか判定する(S501)。規定時間経過していない場合(S501:NO)、再配置速度決定プログラム406は、このフローを終了する。規定時間経過している場合(S501:YES)、再配置速度決定プログラム406は、次のステップS502に進む。他の例において、再配置速度決定プログラム406は、規定ページ数(1又は複数ページ)の再配置毎に再配置速度を決定してもよい。
ステップS502において、再配置速度決定プログラム406は、次に実行する再配置の再配置元階層及び再配置先階層のそれぞれの負荷状態を判定する。再配置速度決定プログラム406は、パリティグループモニタテーブル304を参照して、再配置元階層及び再配置先階層のそれぞれのIOPSを算出する。このIOPSは、階層に含まれる全てのパリティグループのホストI/Oと再配置によるI/Oの和(I/O回数のカラム803の値)を監視期間で割った値である。
さらに、再配置速度決定プログラム406は、Tier性能管理テーブル309を参照し、算出したIOPSから各階層の負荷状態を決定する。Tier性能管理テーブル309は階層のそれぞれに用意される。
図18は、一つの階層のTier性能管理テーブル309の構成例及びその作成方法を示している。Tier性能管理テーブル309は、予めストレージシステム140に設定されている。本例において、Tier性能管理テーブル309は、当該階層のIOPS、レスポンス時間(レスポンス性能)そして負荷状態を関連付ける。
本例において、Tier性能管理テーブル309は、IOPSのカラム1801、レスポンス時間のカラム1802、負荷状態のカラム1803を有する。図18のグラフに示すように、Tier性能管理テーブル309は、レスポンスカーブ(IOPS対レスポンス時間)に応じて作成される。Tier性能管理テーブル309は、レスポンスカーブから抽出された特徴点を保持している。
IOPS/レスポンス時間の性能閾値が予め決定されており、その閾値を基準に階層の負荷状態が定義されている。IOPSの値とレスポンス時間の値は一対一の関係である。したがって、モニタされているIOPS又はレスポンス時間が閾値を超えると、その階層の負荷状態は高負荷であり、閾値以下であれば低負荷である。本例は階層のI/O回数(IOPS)をモニタするため、再配置速度決定プログラム406は、IOPSの値から階層の負荷状態を決定する。ストレージコントローラ155は、IOPSとレスポンス時間をモニタし、それらの値からレスポンスカーブを作成し、性能閾値を決定してもよい。
再配置速度決定プログラム406は、次に再配置を行うページ(現在ページ)のI/O回数を細粒度モニタテーブル303から取得し、既定の閾値と比較してそのI/O回数が高いか低いかを判定する。再配置速度決定プログラム406は、判定したページのI/O回数の状態及び階層の負荷状態に応じて、再配置速度決定テーブル307から最適な再配置速度を選択する(S503)。
次に、再配置速度決定プログラム406は、選択した再配置速度を当該プールの再配置元階層と再配置先階層との間の再配置に対して設定する(S504)。具体的には、再配置速度決定プログラム406は、再配置ジョブ実行管理テーブル305における当該エントリの再配置速度番号の値を更新する。
再配置速度決定プログラム406は、新たに設定した再配置速度の規定最大ジョブ数が現在の起動ジョブ数と異なるか否か判定する(S505)。再配置速度決定プログラム406は、再配置ジョブ実行管理テーブル305を参照して、当該プールの当該階層間の再配置における現在の起動ジョブ数を知ることができる。
再配置速度の規定最大値ジョブ数が現在の起動ジョブ数と異なる場合(S505:YES)、再配置速度決定プログラム406は、規定ジョブ数と一致するようにジョブを起動又は停止する(S506)。
上記処理例は、現在再配置を行っている階層間の再配置速度を決定する。他の例において、再配置速度決定プログラム406は、全ての階層間の再配置速度を決定してもよい。例えば、再配置速度決定プログラム406は、各階層間の前回又は次回再配置におけるページのI/O回数に基づいて再配置速度を決定することができる。
図19は、再配置速度決定プログラム406により他の処理例を示すフローチャートである。この再配置速度決定方法は、図17及び18を参照して説明した方法と比較して、より複雑で状況に詳細に沿った方法である。
図19のフローチャートにおいて、ステップS602〜ステップS604のみ、その内容が、図17のフローチャートと異なる。従って、以下において、これらのステップについて説明を行う。
再配置速度決定プログラム406は、既定の数式に従って再配置対象ページの移動効果Xを算出する(S602)。移動効果Xは、再配置によるその後のアクセス性能の向上の度合いを示す。再配置においてプロモーションと共にデモーションが実行される場合、移動効果Xの算出は、例えば、下式に従う。
X
=PROMOTE-DEMOTE
={(P_SRC_RESP-P_TGT_RESP)*P_PAGE_IOPS}*PAGE_NUM-{(D_SRC_RESP-D_TGT_RESP)*D_PAGE_IOPS}*PAGE_NUM
再配置がプロモーションのみ実行する場合又はデモーションの影響を無視する設計において、再配置速度決定プログラム406は、例えば、下式に従って移動効果Xを算出する。
X
=PROMOTE
=(P_SRC_RESP-P_TGT_RESP)*P_IOPS*PAGE_NUM
上記二つの数式において、「PROMOTE」はプロモーションによる性能向上効果、「DEMOTE」はデモーションによる性能低下の影響、「SRC_RESP」は再配置対象ページが所属する階層(再配置元階層)のレスポンス時間、「TGT_RESP」は再配置先ページが所属する階層(再配置先階層)のレスポンス時間、「PAGE_IOPS」は再配置対象ページのIOPSである。「P_」はプロモーションを意味し、「D_」はデモーションを意味する。「PAGE_NUM」は単位時間当たりに再配置可能なページ数を意味する。選択した再配置速度における再配置可能なページ数は、例えば、当該再配置速度における最大ジョブ数とスリープ時間を使用して算出することができる。再配置がデモーションのみ実行する場合、「PROMOTE-DEMOTE」の数式において、「PROMOTE」を0とすればよい。
再配置速度決定プログラム406は、パリティグループモニタテーブル304から再配置元階層と再配置先階層のIOPSの情報を取得する。このIOPSは、階層の全てのパリティグループのI/O回数カラム803の値の和を、監視期間で割った値である。このI/O回数は、ホストI/Oと再配置によるI/Oの和である。
再配置速度決定プログラム406は、各階層のTier性能管理テーブル309を参照して、再配置先階層及び再配置元階層の取得したIOPSのそれぞれに対するレスポンス時間を取得する。再配置速度決定プログラム406は、ページのIOPSを、細粒度モニタテーブル301から取得する。
次に、再配置速度決定プログラム406は、各再配置速度の再配置コストYを算出する(S603)。再配置コストYは、階層間における再配置によるレスポンス性能低下の影響を表す。各再配置速度における再配置による再配置コストYの算出を、図20のグラフ及び図21のフローチャートを参照して説明する。
図21のフローチャートに示すように、再配置速度決定プログラム406は、高位階層について、再配置負荷差し引き性能を算出し(S701)、再配置中予測性能を算出し(S702)、それらの値から再配置コストYを算出する(S703)。再配置速度決定プログラム406は、再配置コストYを取得するため、低位階層の再配置コス又は双方の階層の再配置コスト平均値を算出してもよい。
図20のグラフは、高位階層のレスポンスカーブを示し、X軸はIOPS、Y軸はレスポンス時間(ホストI/Oレスポンス性能)である。再配置速度決定プログラム406は、Tier性能管理テーブル309を参照して、IOPSの値からこのレスポンスカーブの近似値を得ることができる。
図20のグラフにおいて、点2002は、階層の現在のレスポンス性能の点を示す。現性能のIOPSは、ホストからのコマンドによるホストIOPSと再配置によるIOPS(Y1)の和である。
点2001は再配置負荷差し引き性能の点を示す。再配置負荷差し引き性能は、現性能2002のIOPSから再配置によるIOPS(Y1)を差し引いたIOPSでのレスポンス性能である。再配置負荷差し引き性能2001のIOPSはホストIOPSのみであり、再配置を実行しなかった場合のレスポンス性能(レスポンス時間)を示す。
点2003は、再配置中予測性能の点を示す。これは、再配置速度選択後に、当該再配置速度で行う再配置における、予測レスポンス性能を示す点であり。このIOPSは、上記ホストIOPSと、新たに設定される再配置速度における再配置による予測IOPS(Y2)の和である。再配置コストYは、再配置負荷差し引き性能2001と再配置中予測性能2003との間におけるレスポンス時間の差に、再配置負荷差し引き性能2001のIOPSを掛けた値である。
再配置速度決定プログラム406は、パリティグループモニタテーブル304の値から、再配置負荷差し引き性能2001におけるIOPSを算出する。具体的には、パリティグループモニタテーブル304のI/O回数カラム803の値から、当該階層に対する前回監視期間におけるホストコマンド及び再配置によるI/O回数の値を取得できる。
さらに、再配置回数(再配置元)のカラム804及び再配置回数(再配置先)のカラム805の値から、当該階層における再配置によるI/O回数を取得することができる。上記I/O回数から上記再配置によるI/O回数を差し引いた値が、ホストI/O回数であり、そのホストI/O回数の値を監視期間で割った値が、再配置負荷差し引き性能2001におけるIOPSである。
さらに、再配置速度決定プログラム406は、Tier性能管理テーブル309を参照して、上記IOPSに対応するレスポンス時間を算出する。この値が、再配置負荷差し引き性能2001におけるレスポンス時間である。
次に、再配置速度決定プログラム406は、選択した再配置速度における再配置による予測追加IOPS(Y2)を算出し、それを再配置負荷差し引き性能2001におけるIOPSに加算する。再配置速度決定プログラム406は、Tier性能管理テーブル309を参照して、その合計IOPSに対応するに対応するレスポンス時間を算出する。この値が再配置中予測性能2003のレスポンス時間であり、その値から再配置負荷差し引き性能2001のレスポンス時間を差し引いた値が、再配置コストYである。
再配置速度決定プログラム406は、選択した再配置速度における再配置による予測追加IOPS(Y2)を、例えば、当該再配置速度における最大ジョブ数とスリープ時間を使用して算出することができる。再配置速度決定プログラム406は、各階層ペアの1ジョブ当たりのIOPSを保持している。これらの値は予め設定されている。
選択した再配置速度における再配置のIOPSは、(最大ジョブ数*1ジョブIOPS*(1/(1+スリープ時間)))で表される。例えば、1ジョブIOPSが10IOPS、最大ジョブ数が2、スリープ時間が100msであれば、IOPSは、2*10IOPS*(1s/(1s+100ms))である。
最後に、再配置速度決定プログラム406は、ステップS602で算出した移動効果Xから、ステップS603で算出した再配置コストYを差し引いた値(X−Y)を求め、その値が最も大きい再配置速度を選択する(S604)。
再配置速度決定プログラム406は、上記例と異なる方法で、再配置コストYを算出することができる。例えば、再配置速度決定プログラム406は、次の数1及び数2に従って、再配置コストYを算出する。この数式は、待ち行列モデルを使って、階層の数が2である場合の、高位階層Mのへの影響を計算する式である。
Figure 0005981563
Figure 0005981563
上記数式において、rhost/TierMは高位階層TierMに対するホストIO(IOPS)、mhost/TierMはTierMの物理ドライブ1台当たりの処理能力(IOPS)(再配置のみ実行した場合)、mrel/TierMはTierMの物理ドライブ1台当たりの処理能力(IOPS)(ホストIOのみ発行した場合)、dTierMはTierMの物理ドライブ台数、Nはジョブ数である。入力は、N=ジョブ数である。min()は引数の中の最小値を選択する関数であり、本式では4つの値の中で最小の値を返す。
次に、再配置方式決定プログラム408による再配置方式(再配置におけるデータ移動方法)の決定を説明する。以下においては、プロモーションの再配置における再配置方式の決定を説明する。同様の手法がデモーションの再配置にも適用することができる。再配置処理プログラム405は、再配置方式決定プログラム408が決定した再配置方式により再配置を実行する。再配置方式決定プログラム408は、階層の負荷(IOPS)に応じて、複数の再配置方式から適切な再配置方式を選択する。
本例においては、マイグレーション方式、スワップ方式、コピー方式から適切な再配置方式が選択される。選択可能は再配置方式の数及び種類は設計に依存する。例えば、マイグレーション方式とスワップ方式又はマイグレーション方式とコピー方式の2再配置方式から選択可能であってもよい。
図22は、再配置方式決定プログラム408による再配置方式決定処理の一例を示すフローチャートである。再配置方式決定プログラム408は、それらの間で再配置を行う階層のそれぞれの負荷に応じて再配置方式を選択する。これにより、再配置によるホストI/O性能への影響を低減する。
図22のフローチャートにおいて、再配置方式決定プログラム408は、前回の再配置方式決定処理から規定時間経過したか否かを判定する(S801)。例えば、同一階層間の前回再配置方式の決定からの経過時間を参照する。規定時間経過してない場合(S801:NO)、再配置方式決定プログラム408はこのフローを終了する。再配置方式決定プログラム408ページの再配置毎に再配置方式を決定してもよい。
規定時間経過している場合(S801:YES)、再配置方式決定プログラム408は高位階層が高負荷であるか否か判定する(S802)。負荷判定は、図17のフローチャートを参照して説明したように、パリティグループモニタテーブル304とTier性能管理テーブル309を参照して判定する。
高位階層が高負荷である場合(S802:YES)、再配置方式決定プログラム408は、当該プールの再配置ジョブ実行管理テーブル305において、対応するエントリの再配置方式のカラム904の値を「スワップ」に更新する(S803)。スワップ方式は再配置対象ページのデータ消去が不要であり、物理記憶ドライブの負荷を低減することができる。
高位階層が低負荷であり(S802:NO)、かつ、低位階層が高負荷である場合(S804:YES)、再配置方式決定プログラム408は、当該プールの再配置ジョブ実行管理テーブル305において、対応するエントリの再配置方式のカラム904の値を「コピー」に更新する(S805)。コピーも再配置対象のデータ消去が不要であり、物理記憶ドライブの負荷を低減することができる。二つの階層においてデータが格納されているため、必要な容量が他の方式よりも大きい。
高位階層が低負荷であり(S802:NO)、かつ、低位階層が低負荷である場合(S804:NO)、再配置方式決定プログラム408は、当該プールの再配置ジョブ実行管理テーブル305において、対応するエントリの再配置方式のカラム904の値を「マイグレーション」に更新する(S806)。これにより、必要なデータのみを再配置することができる。
マイグレーションによる再配置においては、一般に、低位階層から上位階層へのデータ移動と上位階層から低位階層へのデータ移動が発生する。スワップは、マイグレーションにおけるページの初期化(データ消去)が不要であり、物理記憶ドライブの負荷を小さくすることができる。
後述するように、コピーは、上位階層をキャッシュ領域として利用することができる。コピーはプロモーション速度を低下させることなく、上位階層から低位階層へのデータ移動による負荷を避けることができ、低位階層の物理記憶ドライブの負荷を低減することができる。コピーは、データのための必要容量がスワップよりも多いため、容量の点においては、他の方式が好ましい。
図23は、ページデータのスワップ方式による再配置の概要を説明する図である。本例は、Tier1とTier2との間のページデータ再配置を示す。本例において、ストレージコントローラ155は、Tier1の再配置対象ページ2311のデータを、キャッシュメモリ144に読み出す。さらに、Tier2の再配置対象ページ2313のデータを、キャッシュメモリ144に読み出す。
次に、ストレージコントローラ155は、キャッシュメモリ144上のTier2の再配置対象ページのデータをTier1の物理記憶ドライブ2301の再配置対象ページ2311のアドレスに格納する。さらに、キャッシュメモリ144上のTier1の再配置対象ページのデータをTier2の物理記憶ドライブ2303の再配置対象ページ2313のアドレスに格納する。ページ2312、2314についても同様である。
次に、図24のフローチャートを参照して、スワップ方式の再配置のフロー例を説明する。ステップS901〜S903は、図16のマイグレーションのフローチャートにおけるステップS401〜S403と同様である。
ステップS904において、再配置プログラム405は、再配置対象ページAの再配置先階層から、再配置対象ページBを選択する。再配置プログラム405は、例えば、ページIOPSに基づいて再配置対象ページを選択することができる。例えば、再配置対象ページAのプロモーションにおいては、最もIOPSの小さいページが選択される。
次に、再配置プログラム405は、再配置対象ページA、Bの物理アドレスから、それぞれキャッシュメモリ144にデータを転送する(S905)。再配置プログラム405は、再配置対象ページAのキャッシュメモリ144上のデータを、再配置対象ページBの物理アドレスに転送し、再配置対象ページBのキャッシュメモリ144上のデータを、再配置対象ページAの物理アドレスに転送する(S906)。以上により、ページA及びBのデータが、それぞれ、反対のページの物理アドレスに再配置される。
次に、再配置プログラム405は、仮想論理変換テーブル301において、再配置したページA及びページBのデータの仮想アドレスの変換先論理アドレスを、再配置先ページに切り替える(S908)。具体的には、再配置プログラム405は、再配置したページのそれぞれのエントリにおいて、仮想アドレスの変換先論理アドレスを、再配置元の論理アドレスから再配置先ページの論理アドレスに切り替える。
再配置プログラム405は、ページA、Bのそれぞれについて、カウント中のページI/O回数の値(リードアクセス及びライトアクセスを含む)、再配置元ページのパリティグループのカウント中のI/O回数の値と再配置回数(再配置元)の値(現在監視期間における再配置回数(再配置元)の値)、再配置先ページのパリティグループのカウント中のI/O回数の値と再配置回数(再配置先)の値(現在監視期間における再配置回数(再配置先)の値)を、更新する(S909)。これは、図16におけるステップS408と同様である。
再配置プログラム405は、再配置実行後に、規定時間(スリープ時間)、次の再配置実行まで待機する(S910)。再配置プログラム405は、予め決められている再配置速度(図17を参照)に従って、スリープ時間を決定する。スリープ時間は、再配置速度管理テーブル306に定義されている。既定のスリープ時間経過後に、再配置プログラム405は、ステップS901に戻る。
図25は、コピー方式による再配置の概要を説明する図である。以下において、コピー先となる物理記憶ドライブの領域をコピーセグメントと呼ぶ。本例においては、コピーセグメントとページの領域サイズは同一である。そのため、ストレージコントローラ155は、ページを確保し、コピーセグメントとして使用する。
図25の例において、仮想ボリューム2511、2512には、プール201における階層211(Tier1)と階層221(Tier2)から実ページが割り当てられている。仮想ボリューム2515の仮想ページ2512に対して、階層221(Tier2)の実ページ2501が割り当てられている。階層211(Tier1)のコピーセグメント(実ページ)2502はページ2501のコピー先(再配置先)であり、仮想ページ2521に割り当てられている。
コピーセグメント2502はページ2501の再配置先であるので、ストレージコントローラ155は、ホスト100からの仮想ページ2521に対するリードコマンド及びライトコマンドに対してコピーセグメント2502にアクセスする。ストレージコントローラ155は、コピーセグメント2502とページ2501の不一致を解消する処理を行う。
本例において、ストレージコントローラ155は、新しいコピーセグメントを作成する場合、若しくは所定の期間が経過する場合に、作成済みのコピーセグメントのデータを削除する。後者の例では、ストレージコントローラ155は、コピーセグメントへの無アクセス期間が閾値に達する又は監視期間の満了において、コピーセグメントを初期化する。このように、ストレージコントローラ155は、上位階層をキャッシュとして利用して、アクセス性能を向上させる。
図26は、コピーセグメントを管理する、コピーセグメント管理テーブル308の構成例を示している。コピーセグメント管理テーブル308は、ページ番号のカラム3301、仮想ボリューム番号のカラム3302、仮想アドレスのカラム3303、コピー有無のカラム3304、セグメント状態のカラム3305、パリティグループ番号のカラム3306、論理アドレスのカラム3307を有する。
各エントリにおいて、仮想ボリューム番号のカラム3302は、当該ページが属する仮想ボリュームの番号を格納し、仮想アドレスのカラム3303は、仮想ボリュームにおけるページの開始アドレス(仮想アドレス)を格納する。コピー有無のカラム3304は、ページのコピーセグメントが存在するか否かを示すデータを格納している。「有」は、当該ページのコピーセグメントが存在することを示し、「無」は存在しないことを示す。
セグメント状態のカラム3305は、コピー元ページ(再配置元ページ)のデータと、コピーセグメント(再配置先ページ)のデータとが一致か不一致かを示すデータを格納する。「クリーン」は一致を示し、「ダーティ」は不一致を示す。パリティグループ番号のカラム3306は、当該コピーセグメントが属するパリティグループの識別子を格納し、論理アドレスのカラム3307は、当該コピーセグメントの開始論理アドレスの値を格納する。
次に、図27のフローチャートを参照して、コピー方式の再配置の例を説明する。以下においては、図16のマイグレーションのフローチャートと異なる点を主に説明する。ステップS1001〜S1003は、図16のマイグレーションのフローチャートにおけるステップS401〜S403と同様である。
ステップS1004において、再配置プログラム405は、再配置先の階層において、コピーセグメントを確保する。本例においては、コピーセグメントとページのサイズが一致しているため、このステップ1004は、ステップS404と同様である。
ステップS1005、S1006、S1007は、それぞれ、ステップS405、S406、S408と同様である。本フローにおいては、再配置プログラム405は、仮想論理変換テーブル301において、ページの仮想アドレスの変換先論理アドレスを変更せず、再配置元ページの論理アドレスを維持する。
再配置プログラム405は、ページデータのコピー完了後に、コピーセグメント管理テーブル308を更新する(S1008)。再配置プログラム405は、コピーセグメント管理テーブル308において、該当ページのエントリの情報を更新する。
具体的には、再配置プログラム405は、当該エントリにおいて、コピー有無カラム3004に「有」を設定し、セグメント状態カラム3005に「クリーン」を設定し、パリティグループ番号カラム3006にコピー先ページのパリティグループ番号を設定し、論理アドレスカラム3007にコピー先ページの開始論理アドレスを設定する。ステップS1009は、ステップS409と同様である。
次に、図28のフローチャートを参照して、コピーセグメントを有する仮想ページに対するホストREAD処理(2)の例を説明する。以下においては、図12を参照して説明したホストREAD処理(1)との相違点を主に説明する。主な相違点は、コピーセグメントの有無の確認と、コピーセグメントがあればコピーセグメントからデータを読み出す点である。
図28のフローチャートにおいて、ステップS1101は、図12におけるステップS101と同様である。ステップS1102において、ホストREADプログラム401は、コピーセグメント管理テーブル308を参照して、アクセス先の仮想ページに割り当てられているコピーセグメントが存在するか否かを判定する。
割り当てられているコピーセグメントが存在しない場合(S1102:NO)、ホストREADプログラム401はステップS1103に進む。ステップS1103は、ステップS102と同様である。割り当てられているコピーセグメントが存在する場合(S1102:YES)、ホストREADプログラム401は、仮想アドレスをコピーセグメントの物理アドレスに変換する(S1104)。
具体的には、ホストREADプログラム401は、コピーセグメント管理テーブル308を参照して、仮想ページに対応するコピーセグメントの論理アドレス(開始アドレス)を特定する。ホストREADプログラム401は、論理物理変換テーブル302を参照して、コピーセグメントの論理アドレスを物理アドレスに変換する。その後のステップS1105〜S1107は、図12におけるステップS103〜S105と同様である。ステップS1106は、コピーセグメントとコピーセグメントが属するパリティグループのI/O回数を更新する。
次に、図29のフローチャートを参照して、コピーセグメントを有する仮想ページに対するライトコマンドに対応したホストWRITE処理例(2)を説明する。以下においては、図13を参照して説明したホストWRITE処理(1)との相違点を主に説明する。主な相違点は、コピーセグメント管理テーブル308においてエントリの「セグメント状態」を「ダーティ」に更新することである。
図29のフローチャートにおいて、ステップS1201〜S1203は、図13のフローチャートにおけるステップS201〜S203と同様である。ステップS1204において、ホストWRITEプログラム402は、コピーセグメント管理テーブル308において、当該ページエントリのセグメント状態カラム3305のデータを、「ダーティ」に更新する。ステップS1205は、図13のフローチャートにおけるステップS204と同様である。
次に、図30のフローチャートを参照して、コピーセグメントを有する仮想ページに対するライトコマンドに対応したドライブWRITE処理例(2)を説明する。以下においては、図14を参照して説明したドライブWRITE処理(1)との相違点を主に説明する。主な相違点は、コピーセグメントの有無を確認し、コピーセグメントがあればコピーセグメントにユーザデータを書き込む点である。
図30のフローチャートにおいて、ステップS1301は、図14のフローチャートにおけるステップS301と同様である。キャッシュメモリ144上に未転送データが存在する場合(S1301:YES)、ドライブWRITEプログラム403は、コピーセグメント管理テーブル308を参照して、当該データの仮想ページに対応するコピーセグメントが存在するか判定する(S1302)。
コピーセグメントが存在しない場合(S1302:NO)、ドライブWRITEプログラム403はステップS1303に進む。ステップS1303は、図14のフローチャートにおけるステップS302と同様である。コピーセグメントが存在する場合(S1302:YES)、ドライブWRITEプログラム403は、仮想アドレスをコピーセグメントの物理アドレスに変換する(S1304)。
具体的には、ドライブWRITEプログラム403は、コピーセグメント管理テーブル308を参照して、仮想ページに対応するコピーセグメントの論理アドレス(開始アドレス)を特定する。ドライブWRITEプログラム403は、論理物理変換テーブル302を参照して、コピーセグメントの論理アドレスを物理アドレスに変換する。その後のステップS1305、S1306は、図14のフローチャートにおけるステップS303、S304と同様である。ステップS1306は、コピーセグメントが属するパリティグループのI/O回数を更新する。
次に、図31のフローチャートを参照して、コピーセグメントのダーティ書き戻しの例を説明する。この処理は、コピー元のページデータをコピーセグメントのデータに一致させる。
ダーティ書き戻しプログラム404は、コピーセグメント管理テーブル308を参照して、ダーティ状態のコピーセグメントが存在しているか判定する(S1401)。ダーティ状態のコピーセグメントが存在していない場合(S1401:NO)、ダーティ書き戻しプログラム404は、このフローを終了する。
ダーティ状態のコピーセグメントが存在している場合(S1401:YES)、ダーティ書き戻しプログラム404は、コピーセグメント管理テーブル308及び論理物理変換テーブル302を参照して、ページの仮想アドレスをコピーセグメントの物理アドレスに変換する(S1402)。
ダーティ書き戻しプログラム404は、上記物理アドレスが示す物理記憶ドライブにおける領域から、データをキャッシュメモリ144に転送する(S1403)。ダーティ書き戻しプログラム404は、キャッシュメモリ144上の上記データを、コピー元ページの物理アドレスが示す物理記憶ドライブに転送する(S1404)。ダーティ書き戻しプログラム404は、仮想論理変換テーブル301及び論理物理変換テーブル302を参照して、コピー元ページの物理アドレスを取得することができる。
コピーセグメントのデータのコピー元ページへの書き戻しが完了した後、ダーティ書き戻しプログラム404は、細粒度モニタテーブル303とパリティグループモニタテーブル304を更新する。
具体的には、ダーティ書き戻しプログラム404は、細粒度モニタテーブル303において該当するエントリのI/O回数カラム704の値を増加させる。ダーティ書き戻しプログラム404は、パリティグループモニタテーブル304において、コピーセグメントのパリティグループのエントリと、コピー元ページのパリティグループのエントリのそれぞれにおいて、I/O回数カラム803の値を増加させる(S1405)。本書き戻しは、コピーセグメントのリード及びコピー元ページへのライトに相当する。
図32は、ユーザ(管理者)が再配置方法を設定するためのGUIの一例を示している。ユーザは、入出力デバイス124を利用して、再配置方法の選択を行うことができる。本例において、ユーザは、再配置速度及び再配置方式を自動設定するか手動設定するか選択することができる。図32の画像3201においては、再配置速度及び再配置方式が手動設定されることが選択され、さらに、再配置方式としてコピー方式が選択されている。再配置速度及び再配置方式の手動設定は選択できなくともよい。再配置速度及び再配置方式の一方のみが、手動設定と自動設定を選択できる構成でもよい。
以下において、ページデータの再配置の他の例を説明する。本例は、I/O回数(IOPS)が閾値に達しているページを上位階層に再配置(プロモーション)する。以下に説明する例において、再配置はコピーを使用する。
図33は、再配置速度管理テーブル306の他の構成例を示す。再配置速度管理テーブル306は、再配置速度番号のカラム3301、プロモーション閾値のカラム3302、デモーション最大ジョブ数のカラム3303、デモーションスリープ時間のカラム3304、を有する。
デモーション最大ジョブ数のカラム3302は、ダーティ書き戻し処理の同時実行最大ジョブ数を規定する。デモーションスリープ時間のカラム3304は、ダーティ書き戻し処理におけるスリープ時間を規定する。
図34は、本例のリード処理のフローチャートである。ステップS1501は、図28に示すフローチャートに従う。次のステップS1502において、ホストREADプログラム401は、選択したページのI/O回数がプロモーション閾値よりも大きいか判定する。
具体的には、ホストREADプログラム401は、細粒度モニタテーブル303から選択したページのI/O回数を取得し、さらに、当該ページが属する階層からのプロモーションの再配置速度番号を、再配置ジョブ実行管理テーブル305から取得する。ホストREADプログラム401は、再配置速度管理テーブル306から、当該再配置速度番号のプロモーション閾値を取得して、当該ページのI/O回数と比較する。
I/O回数がプロモーション閾値より大きい場合(S1502:YES)、再配置プログラム405は当該ページのデータのプロモーションを実行する(S1504)。このステップは、図27のフローチャートに従う。I/O回数がプロモーション閾値以下である場合(S1502:NO)、このフローは終了する。
ストレージコントローラ155は、ライト処理においても、上記フローと同様にプロモーション閾値とI/O回数との関係から、プロモーションの有無を判定することができる。上記例は、前回監視期間におけるページのI/O回数を参照するが、現在監視期間におけるカウント中のページI/O回数を参照して、プロモーションの判定を行ってもよい。ストレージコントローラ155は、ページデータのプロモーションを行うと、当該ページのカウント中のI/O回数を初期値に更新する。
以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
上記構成例は、再配置速度と再配置方式の双方を決定するが、他の構成例は、それらの一方のみを決定し、決定したモードにおいて再配置を行ってもよい。上記構成においてストレージシステムが行う処理の少なくとも一部は、管理システムが行ってもよい。この構成において、情報記憶システムは、管理システムとストレージシステムを含み、管理システムは情報記憶システムのコントローラに含まれる。情報記憶システムは、複数のストレージシステムを含むことができる。

Claims (10)

  1. アクセス性能が異なる複数階層を含むプールに実記憶領域を提供する、性能が異なる複数の物理記憶ドライブと、
    コントローラと、を含み、
    前記コントローラは、
    前記プールにおける第1階層へのアクセスを監視し、
    前記第1階層と前記プールにおける第2階層との間でのデータ再配置において、前記監視の結果及び前記第1階層の性能に基づき、複数の異なる再配置速度での再配置における、再配置によるホストに対する性能低下の影響及び再配置による性能の向上の度合いを推測し、
    前記推測した影響及び度合いに基づいて、再配置速度を前記複数の再配置速度から決定する、情報記憶システム。
  2. 前記コントローラは、前記監視の結果が示す前記第1階層の負荷に基づいて、前記第2階層と前記第1階層との間のデータの再配置におけるデータ移動方法を、決定する、請求項1に記載の情報記憶システム。
  3. 前記コントローラは、スワップ、マイグレーション及びコピーのうちの少なくとも二つを含む複数種類の移動方法から前記再配置におけるデータ移動方法を選択する、請求項2に記載の情報記憶システム。
  4. 前記第1階層は前記第2階層よりも上位の階層であり、
    前記コントローラは、
    スワップ及びマイグレーションを含む複数種類の移動方法から前記再配置におけるデータ移動方法を選択し、
    前記第1階層の負荷が閾値よりも大きい場合に、前記再配置におけるデータ移動方法として前記スワップを選択する、請求項2に記載の情報記憶システム。
  5. 前記第1階層は前記第2階層よりも下位の階層であり、
    前記コントローラは、前記第1階層の負荷が閾値よりも大きい場合に前記データの移動方法としてコピーを選択し、前記第1階層の前記負荷が前記閾値以下である場合に前記データの移動方法としてマイグレーションを選択する、請求項2に記載の情報記憶システム。
  6. 前記コントローラは、ホストからのアクセスコマンドに応答して、コピーにより再配置されたデータのコピーセグメントにアクセスし、前記コピーセグメントのアクセスを監視する、請求項3に記載の情報記憶システム。
  7. 前記コントローラは、前記コピーセグメントへの書き込みの後、前記コピーセグメントのコピー元アドレスのデータと前記コピーセグメントのデータを一致させる、請求項6に記載の情報記憶システム。
  8. 性能が異なる複数階層を含むプールに実記憶領域を提供する、性能が異なる複数の物理記憶ドライブを含む情報記憶システムの制御方法であって、
    前記プールにおける第1階層へのアクセスを監視し、
    前記第1階層と前記プールにおける第2階層との間でのデータ再配置において、前記監視の結果及び前記第1階層の性能に基づき、複数の異なる再配置速度での再配置における、再配置によるホストに対する性能低下の影響及び再配置による性能の向上の度合いを推測し、
    前記推測した影響及び度合いに基づいて、再配置速度を前記複数の再配置速度から決定する、情報記憶システムの制御方法。
  9. 前記監視の結果が示す前記第1階層の負荷に基づいて、前記第2階層と前記第1階層との間のデータの再配置におけるデータ移動方法を、決定する、請求項8に記載の情報記憶システムの制御方法。
  10. 前記第1階層が前記第2階層よりも下位階層であり、
    前記第1階層の負荷が閾値よりも大きい場合に前記データ移動方法としてコピーを選択し、前記第1階層の前記負荷が前記閾値以下である場合に前記データ移動方法としてマイグレーションを選択する、請求項9に記載の情報記憶システムの制御方法。
JP2014551435A 2012-04-26 2012-04-26 情報記憶システム及び情報記憶システムの制御方法 Expired - Fee Related JP5981563B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/002882 WO2013160958A1 (en) 2012-04-26 2012-04-26 Information storage system and method of controlling information storage system

Publications (2)

Publication Number Publication Date
JP2015520876A JP2015520876A (ja) 2015-07-23
JP5981563B2 true JP5981563B2 (ja) 2016-08-31

Family

ID=46124688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014551435A Expired - Fee Related JP5981563B2 (ja) 2012-04-26 2012-04-26 情報記憶システム及び情報記憶システムの制御方法

Country Status (5)

Country Link
US (2) US9003150B2 (ja)
EP (1) EP2831715A1 (ja)
JP (1) JP5981563B2 (ja)
CN (1) CN104285206A (ja)
WO (1) WO2013160958A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5543668B2 (ja) * 2011-03-25 2014-07-09 株式会社日立製作所 ストレージシステム及び記憶領域の割当方法
WO2013190649A1 (ja) * 2012-06-20 2013-12-27 富士通株式会社 仮想ディスクのマイグレーションに関する情報処理方法及び装置
US9354813B1 (en) * 2012-12-28 2016-05-31 Emc Corporation Data storage system modeling
US9383924B1 (en) * 2013-02-27 2016-07-05 Netapp, Inc. Storage space reclamation on volumes with thin provisioning capability
JP6142599B2 (ja) * 2013-03-18 2017-06-07 富士通株式会社 ストレージシステム、ストレージ装置および制御プログラム
US20160077886A1 (en) * 2013-07-31 2016-03-17 Hewlett-Packard Development Company, L.P. Generating workload windows
US9619429B1 (en) * 2013-09-27 2017-04-11 EMC IP Holding Company LLC Storage tiering in cloud environment
US9854036B2 (en) * 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
CN104216598A (zh) * 2014-08-29 2014-12-17 合肥鑫晟光电科技有限公司 触摸基板及其制作方法、触摸显示装置
US9569118B2 (en) 2014-12-30 2017-02-14 International Business Machines Corporation Promoting consistent response times in a data storage system having multiple data retrieval mechanisms
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10324832B2 (en) * 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
KR102473665B1 (ko) * 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
CN106612619B (zh) * 2015-08-25 2019-05-21 株式会社东芝 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机
JP6721821B2 (ja) * 2015-11-19 2020-07-15 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
CN108241535B (zh) * 2016-12-27 2022-02-22 阿里巴巴集团控股有限公司 资源管理的方法、装置及服务器设备
JP6822274B2 (ja) * 2017-03-30 2021-01-27 富士通株式会社 情報処理システム、方法、及びプログラム
JP2018197933A (ja) * 2017-05-23 2018-12-13 富士通株式会社 ストレージ制御装置、情報処理システムおよびプログラム
JP7221585B2 (ja) * 2017-07-20 2023-02-14 富士通株式会社 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム
JP7132491B2 (ja) * 2018-05-14 2022-09-07 富士通株式会社 メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US10852964B2 (en) * 2018-09-25 2020-12-01 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
CN110908599B (zh) * 2019-09-27 2021-02-02 珠海博雅科技有限公司 数据的写入方法与写入系统
CN113568562A (zh) * 2020-04-28 2021-10-29 华为技术有限公司 一种存储系统、内存管理方法和管理节点
US11494090B2 (en) * 2020-09-25 2022-11-08 Vmware, Inc. Systems and methods of maintaining fault tolerance for new writes in degraded erasure coded distributed storage

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276304A (ja) * 1999-03-26 2000-10-06 Nec Corp データ移行方法と情報処理システム
CA2498154A1 (en) * 2002-09-16 2004-03-25 Tigi Corporation Storage system architectures and multiple caching arrangements
US20060129771A1 (en) * 2004-12-14 2006-06-15 International Business Machines Corporation Managing data migration
JP2006301820A (ja) * 2005-04-19 2006-11-02 Hitachi Ltd ストレージシステム及びストレージシステムのデータ移行方法
JP4900784B2 (ja) * 2006-04-13 2012-03-21 株式会社日立製作所 ストレージシステム及びストレージシステムのデータ移行方法
JP4884198B2 (ja) * 2006-12-19 2012-02-29 株式会社日立製作所 ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
JP5090941B2 (ja) * 2008-01-29 2012-12-05 株式会社日立製作所 ストレージサブシステム及びストレージシステム
US8521987B2 (en) * 2009-03-18 2013-08-27 Hitachi, Ltd. Allocation and release of storage areas to virtual volumes
US8443157B1 (en) * 2009-12-16 2013-05-14 Emc Corporation Data storage system having associated situational analysis framework for automatic response to movement in a state space
CN102483684B (zh) 2009-12-24 2015-05-20 株式会社日立制作所 提供虚拟卷的存储系统
EP2518614A4 (en) 2009-12-24 2014-01-01 Hitachi Ltd STORAGE SYSTEM FOR PROVIDING A VIRTUAL VOLUME
US8762667B2 (en) * 2010-02-01 2014-06-24 International Business Machines Corporation Optimization of data migration between storage mediums
US8578107B2 (en) * 2010-02-16 2013-11-05 International Business Machines Corporation Extent migration scheduling for multi-tier storage architectures
JP5079841B2 (ja) 2010-04-15 2012-11-21 株式会社日立製作所 ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
US8402238B2 (en) * 2010-05-18 2013-03-19 Hitachi, Ltd. Storage apparatus and control method thereof
US8578108B2 (en) * 2010-08-03 2013-11-05 International Business Machines Corporation Dynamic look-ahead extent migration for tiered storage architectures
US8284627B2 (en) * 2010-10-22 2012-10-09 International Business Machines Corporation Reducing energy consumption and optimizing workload and performance in multi-tier storage systems using extent-level dynamic tiering
WO2012147123A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Storage apparatus and control method therefor
US8341312B2 (en) * 2011-04-29 2012-12-25 International Business Machines Corporation System, method and program product to manage transfer of data to resolve overload of a storage system
US8782369B2 (en) * 2011-11-15 2014-07-15 Lsi Corporation Apparatus to manage efficient data migration between tiers

Also Published As

Publication number Publication date
CN104285206A (zh) 2015-01-14
US9003150B2 (en) 2015-04-07
EP2831715A1 (en) 2015-02-04
US20140019701A1 (en) 2014-01-16
WO2013160958A1 (en) 2013-10-31
JP2015520876A (ja) 2015-07-23
US20150193152A1 (en) 2015-07-09
US9652159B2 (en) 2017-05-16

Similar Documents

Publication Publication Date Title
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
JP5502232B2 (ja) ストレージシステム、及びその制御方法
US8984221B2 (en) Method for assigning storage area and computer system using the same
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
JP5685676B2 (ja) 計算機システム及びデータ管理方法
US8694727B2 (en) First storage control apparatus and storage system management method
JP5363595B2 (ja) 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
WO2012049711A1 (en) Data migration system and data migration method
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
JP6569477B2 (ja) ストレージ制御装置、および制御プログラム
JP6017032B2 (ja) ストレージシステム及びストレージ制御方法
US10664182B2 (en) Storage system
US20160041776A1 (en) Storage system and cache control method
WO2014155555A1 (ja) 管理システム及び管理プログラム
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
US10203874B1 (en) Managing time scheduled data placement in data storage systems
JP5362751B2 (ja) 計算機システム、管理計算機およびストレージ管理方法
WO2016006072A1 (ja) 管理計算機およびストレージシステム
JP5895042B2 (ja) 計算機システム、管理計算機およびストレージ管理方法
JP6231700B2 (ja) サーバストレージシステムと管理システムを有する計算機システム
JP2014002785A (ja) 計算機システム、管理計算機およびストレージ管理方法
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160728

R150 Certificate of patent or registration of utility model

Ref document number: 5981563

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees