JP4727705B2 - 階層型ストレージシステム - Google Patents

階層型ストレージシステム Download PDF

Info

Publication number
JP4727705B2
JP4727705B2 JP2008281120A JP2008281120A JP4727705B2 JP 4727705 B2 JP4727705 B2 JP 4727705B2 JP 2008281120 A JP2008281120 A JP 2008281120A JP 2008281120 A JP2008281120 A JP 2008281120A JP 4727705 B2 JP4727705 B2 JP 4727705B2
Authority
JP
Japan
Prior art keywords
pool
page
data
real
real page
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
JP2008281120A
Other languages
English (en)
Other versions
JP2010108341A (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
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Computer Peripherals Co Ltd
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 Computer Peripherals Co Ltd, Hitachi Ltd filed Critical Hitachi Computer Peripherals Co Ltd
Priority to JP2008281120A priority Critical patent/JP4727705B2/ja
Priority to US12/351,339 priority patent/US8205054B2/en
Publication of JP2010108341A publication Critical patent/JP2010108341A/ja
Application granted granted Critical
Publication of JP4727705B2 publication Critical patent/JP4727705B2/ja
Priority to US13/473,647 priority patent/US20120233437A1/en
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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • 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

Description

本発明は、それぞれ性能の異なる複数種類の記憶装置を備えるストレージシステムに関する。
従来、階層型ストレージシステムと呼ばれるものが知られている。階層型ストレージシステムは、それぞれ性能の異なる複数種類の記憶装置を備え、同一種類の記憶装置上の記憶領域の集合を一つのレイヤとして、複数のレイヤを用いてデータ管理を行うことができるストレージシステムである。例えば、階層型ストレージシステムは、データの特性(例えば、アクセス頻度等)に基づいて、そのデータの格納先となるレイヤを決定することができる。階層型ストレージシステムは、データを、その特性に合った適切なレイヤに格納することにより、効率的なデータ管理を行うことができる。特許文献1〜3には、階層型ストレージシステムに関する技術が開示されている。
特開2007−102455号公報 特開2007−280089号公報 特開2008−90741号公報
データの格納先を決定付けているデータ特性が、時間の経過とともに変化する場合、階層型ストレージシステムは、データのマイグレーションを行って、データの格納先のレイヤを変更することができる。このレイヤを変更する方法として、論理ボリューム単位で行う方法(以下、「ボリューム単位変更方法」)と、ファイル単位で行う方法(以下、「ファイル単位変更方法」)とが知られている。
ボリューム単位変更方法では、論理ボリュームごとに、その論理ボリューム内のデータのデータ特性が、所定の条件に合致しているか否かが判定される。そして、条件に合致している場合に、論理ボリューム内の全データが、その論理ボリュームとは異なるレイヤに属する論理ボリュームへマイグレーションされる。
ボリューム単位変更方法には、マイグレーションを行うデータ単位が大きすぎるという問題がある。データ単位が大きすぎることは、下記の理由から問題である。
すなわち、論理ボリュームに格納されているデータ(以下、「ボリュームデータ」)は、その論理ボリュームを構成する複数のデータブロックのそれぞれに格納されている複数のデータ(以下、「ブロックデータ」)の集合である。そして、ブロックデータのデータ特性は、ブロックデータ毎に異なることがあり、故に、一つのボリュームデータにおいてデータ特性にばらつきがある場合がある。この場合、マイグレーションされたボリュームデータの中には、データ特性に合ったレイヤに変更されるブロックデータと、データ特性に合っていないレイヤに変更されるブロックデータとが含まれることになる。データ単位が大きいほど、データ特性に合っていないレイヤに変更されるブロックデータの数が多くなりやすい。即ち、データ単位が大きいほど、データ特性に合った適切なレイヤへ変更することが難しくなるのである。
一方、ファイル単位変更方法では、ファイルごとに、そのファイルを構成するデータのデータ特性が、所定の条件に合致しているか否かが判定される。そして、条件に合致している場合に、そのファイルを構成するデータが、そのデータが格納されていた格納先とは異なるレイヤに属する格納先へマイグレーションされる。
ファイル単位変更方法では、ボリューム単位変更方法における上述したような問題は生じない。何故ならば、通常、ファイルを構成するデータに関するデータ特性は、そのファイルの特性のことを意味しており、一つのファイルを構成するデータにおいてデータ特性にばらつきが生じることはないからである。
しかしながら、ファイル単位変更方法では、レイヤを変更する処理に多大な時間を要するという問題がある。何故ならば、ファイルを管理しているファイルシステムが行う処理(例えば、ディレクトリの検索等)に時間がかかってしまうからである。
従って、本発明の目的は、処理負荷を増大させることなく、データ特性に合った適切なレイヤへ格納することである。
本発明の他の目的は、後の説明から明らかになるであろう。
ストレージシステムは、複数種類のプールの基になる複数の記憶装置と、ライト要求又はリード要求であるI/O要求をホスト計算機から受け付け、そのI/O要求に従うI/O処理を行うコントローラとを備える。前記複数の記憶装置には、それぞれ性能の異なる複数種類の記憶装置が含まれている。前記複数種類のプールは、それぞれ異なるレイヤに属する。一以上の同種類の記憶装置を基に、その種類に対応した種類のプールが構成されている。各種プールは、プールの基になっている一以上の同種類の記憶装置に基づく複数の実ページで構成されている。前記コントローラは、I/O処理部と、格納先変更処理部とを有する。前記I/O処理部は、複数の仮想ページで構成されている仮想的な論理ボリュームである仮想ボリューム内の仮想ページが指定されたライト要求を前記ホスト計算機から受けると、前記I/O処理として、前記指定された仮想ページに実ページが未割当てであれば、その仮想ページに、いずれかの種類のプールにおける未割当ての実ページを割り当て、割り当てた実ページに、前記受信したライト要求に従うライト対象のデータを書き込む。前記格納先変更処理部は、所定の格納先変更条件に合致した場合に、或る仮想ページに割り当てられている対象の第一の実ページに格納されている対象のデータの格納先を、前記対象の第一の実ページを有する第一種のプールとは異なる種類の第二種のプール内の未割当ての第二の実ページへ変更する格納先変更処理を行う。各仮想ページは、仮想的な記憶領域である。各実ページは、物理的な記憶領域である。実ページのサイズは、プールの種類によって異なる。
上述したI/O処理部及び格納先変更処理部のうちの少なくとも一つは、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
以下、図面を参照しながら本発明の一実施形態について詳細に説明する。
図1は、本実施形態に係る計算機システムの構成例を示す図である。
ホストコンピュータ(以下、単に「ホスト」という)1とストレージシステム3とが、通信ネットワーク2を介して接続される。ホスト1とストレージシステム3間のデータ通信は、例えば、iSCSI(Internet Small Computer System Interface)プロトコルやFC(Fibre Channel)プロトコル等のプロトコルに基づいて行われる。
ストレージシステム3には、例えば、多重化されたコントローラデバイス(CTL)31と、それぞれ性能の異なる複数種類の記憶装置37とが搭載される。
CTL31は、例えば、ハードウェア回路である。CTL31には、ホストアダプタ32と、共有メモリ33と、キャッシュメモリ34と、接続部35と、記憶装置アダプタ36とが備えられる。
ホストアダプタ32は、ホスト1や他のストレージシステム3等の外部の装置との間のデータ通信を行うインタフェース装置であり、一又は複数の通信ポートを備えている。ホストアダプタ32は、CPUやメモリ等を備えたマイクロコンピュータシステム(例えば、回路基盤)として構成されている。ホストアダプタ32は、例えば、ホスト1からのライト要求があった場合、ライト対象のデータをキャッシュメモリ34に、ホスト1から受信したコマンドを共有メモリ33にそれぞれ書き込む。また、ホストアダプタ32は、ホスト1からのリード要求があった場合、ホスト1から受信したコマンドを共有メモリ33に書き込み、また、記憶装置アダプタ36が記憶装置37から読み出してキャッシュメモリ34に書き込んだリード対象のデータをキャッシュメモリ34から読み出してホスト1へ送信する。
記憶装置アダプタ36は、各記憶装置37との間のデータ授受を行うインタフェース装置である。ストレージシステム3には、複数種類の記憶装置37のそれぞれと接続するための複数種類の記憶装置アダプタ36が備えられる。各記憶装置アダプタ36は、ホストアダプタ32と同様に、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成することができる。記憶装置アダプタ36は、例えば、ホストアダプタ36からキャッシュメモリ34に書き込まれたライト対象のデータをキャッシュメモリ34から読み出して記憶装置37に書き込んだり、記憶装置37から読み出したリード対象のデータをキャッシュメモリ34に書き込んだりする。
接続部35は、例えばクロスバスイッチであり、ホストアダプタ32、共有メモリ33、キャッシュメモリ34及び記憶装置アダプタ36を相互に接続させる装置である。バスなどの他種の接続装置が、接続部35として採用されてもよい。
共有メモリ33は、例えば、不揮発または揮発の半導体メモリから構成することができる。共有メモリ33には、例えば、ホスト1から受信した各種コマンドや、ストレージシステム3の制御に使用される制御情報等が記憶される。コマンドや制御情報等は、複数の共有メモリ33によって、冗長記憶されてもよい。
キャッシュメモリ34は、例えば、揮発または不揮発の半導体メモリから構成することができる。キャッシュメモリ34には、ホスト1から受信したデータや、記憶装置37から読み出されたデータ等が記憶される。尚、共有メモリ33とキャッシュメモリ34とは、本実施形態のように、それぞれ別々のメモリとして構成されてもよいし、一つのメモリから構成されてもよい。一つのメモリから構成される場合は、例えば、メモリの一部がキャッシュ領域として使用され、同一のメモリの別の一部が共有メモリ領域として使用される。
記憶装置37の種類は、記憶媒体の違い(例えば、ハードディスクであるかフラッシュメモリであるかテープであるか)や、記憶装置アダプタ36との接続方式の違い(例えば、FC方式であるかSAS(Serial Attached SCSI)方式であるかSATA(Serial AT Attachment)方式であるか)や、例えば記憶媒体がハードディスクであればその回転速度の違い等によって様々なものが考えられる。本実施形態では、記憶装置37の種類として、以下の七種類を考慮する。本実施形態に係るストレージシステム3には、これら七種類の記憶装置37が備えられるとする(正確に言えば、本実施形態に係るストレージシステム3は、(1)〜(6)の記憶装置37を備え、(7)の記憶装置37を利用可能である)。
(1)FC−HDD37A … 記憶媒体がハードディスクである記憶装置37(ハードディスクドライブ(HDD))であって記憶装置アダプタ36との接続方式がFC方式である記憶装置37;
(2)SAS−HDD37B … HDDであって記憶装置アダプタ36との接続方式がSAS方式である記憶装置37;
(3)SATA−HDD37C … HDDであって記憶装置アダプタ36との接続方式がSATA方式である記憶装置37;
(4)テープ装置37D … 記憶媒体がテープである記憶装置37;
(5)光ディスク装置37E … 記憶媒体が光ディスクである記憶装置37;
(6)フラッシュメモリ装置37F … 記憶媒体がフラッシュメモリである記憶装置37;
(7)外部ストレージ37G … 外部のストレージシステム3が備える記憶装置37。
これら七種類の記憶装置37は、それぞれアクセス性能が異なる。これらのアクセス性能を比較すると、アクセス性能の高いものから順に、フラッシュメモリ装置37F、FC−HDD37A、SAS−HDD37B、SATA−HDD37C、光ディスク装置37E、テープ装置37Dとなる。尚、テープ装置37Dは、シーケンシャルアクセスデバイスであるため、そのアクセス性能は低速だが、そのデータ転送性能は、単体のHDDよりも高速である。また、外部ストレージ37Gは、その記憶媒体やストレージシステム3間の接続方式等によってアクセス性能が異なるため、ここでは比較の対象としていない。
図2は、記憶装置37を基に形成される論理ボリュームの構成例を示す図である。
図2では、記憶装置37としてHDD(FC−HDD37A、SATA−HDD37C)が例示されているが、他種の記憶装置37の場合も、HDDの場合と同様にして論理ボリュームが形成される。
ストレージシステム3には、例えば、一以上のRAID(Redundant Arrays of Independent (or Inexpensive) Disks)グループ44が、同一種類の複数の記憶装置37から構成される。RAIDグループ44は、例えば、RAID1やRAID5等の所定のRAIDレベルに基づく冗長化された記憶方式を提供する。RAIDグループ44に含まれる複数の記憶装置37のそれぞれの記憶領域の一部ずつによって、LDEV(Logical Device)43が構成される。即ち、LDEV43は、記憶装置37上の物理的な記憶領域(以下、「実領域」)から構成された論理ボリュームである。
プール42は、仮想VOL41に割り当て可能な実領域を登録しておくための領域である。プール42への実領域の登録は、対象とするプール42に一以上のLDEV43が登録されることにより行われる。即ち、或るプール42に登録されたLDEV43を構成する実領域が、そのプール42に登録された実領域(プール42内の実領域)となる。ここで、一のプール42には、同一種類のLDEV43(同一種類の記憶装置37上の記憶領域から形成されたLDEV43)が登録される。従って、一のプール42には、同一種類の実領域(同一種類の記憶装置37上の記憶領域)が登録される。ストレージシステム3には、複数種類の記憶装置37が備えられるため、記憶装置37の種類に対応した複数種類のLDEV43が形成され、記憶装置37の種類に対応した複数種類のプール42が形成されることになる。尚、同一種類の実領域の全てが、一つのプール42に登録されるというわけではない。同一種類の実領域が、異なるプール42に登録されることにより、同一種類のプール42が、複数形成されてもよい。
仮想VOL41は、ホスト1に提供される論理ボリュームであり、仮想的な記憶領域(以下、「仮想領域」)から構成された論理ボリュームである。仮想VOL41は、実領域を持たないため、仮想VOL41に対するデータのライト要求が発生した場合は、プール42内の実領域が仮想領域に割り当てられ、その割り当てられた実領域にライト対象のデータが格納される。仮想領域への実領域の割り当ては、所定サイズの単位で行われる。以下の説明では、便宜上、この割当て単位を「ページ」と呼ぶ。また、割り当てられる側(割り当て先)である仮想領域の割り当て単位を「仮想ページ」と呼び、割り当てる側(割り当て元)である実領域の割り当て単位を「実ページ」と呼ぶ。
以上のことから、次のように言うこともできる。すなわち、仮想VOL41は、複数の仮想ページ51で構成されている論理ボリュームである。また、プール42は、一以上且つ同種類のLDEV43で構成されており、故に、同種類の複数の実ページ52で構成されている一つの実ページ群である。
なお、後述するが、プール42の種類によって、実ページ52のサイズは異なる場合がある。また、仮想ページ51のサイズと実ページ52のサイズとは、異なる場合がある。ホスト1は、仮想ページ51を特定するアドレス(LBA(Logical Block Address))を指定してライト要求或いはリード要求を出すことで、仮想VOL41内の仮想ページ51に対してデータのライト或いはリードを行うことができる。
仮想VOL41に対するデータのライト処理について簡単に説明すると、次のようになる。即ち、ライト要求を受信したCTL31は、まず、いずれかのプール42内の実ページ52が、ライト要求で指定されたLBAに属する仮想ページ51に既に割り当てられているか否かを判定する。実ページ52が未割り当ての場合、CTL31は、複数のプール42のうちのどのプール42内の実ページ52を、仮想ページ51に割り当てるかを決定する。仮想ページ51に割り当てる実ページ52の属するプール42は、仮想VOL41ごとに予め設定されていてもよいし、例えばCTL31がライト対象のデータのデータ特性を判断してそのデータ特性に合うように自動的に決定してもよい。その後、CTL31は、決定されたプール42内の実ページ52のうち未だどの仮想ページ51にも割り当てられていない実ページ52(つまり未割当ての実ページ52)を、指定された仮想ページ51に割り当てる。その後、CTL31は、ライト対象のデータを、指定された仮想ページ51に割り当てられた実ページ52に格納する。
尚、データのライト処理を行う主体をCTL31としたが、より正確には、これらの処理は、ホストアダプタ32(或いは、記憶装置アダプタ36)のCPUがコンピュータプログラムを実行することによって行われる。CTL31が主体となるその他の処理(例えば、後述するレイヤ変更処理)についても同様である。
図3は、本実施形態において形成されるプール42の種類とそれらのアクセス性能の関係とを示す図である。
上述したように、ストレージシステム3には、記憶装置37の種類に対応した複数種類のプール42が形成される。図3には、本実施形態に係るストレージシステム3において形成されるプール42の種類が示されている。フラッシュメモリプール42Fは、フラッシュメモリ装置37Fの実領域が登録されるプール42である。FC−HDDプール42Aは、FC−HDD37Aの実領域が登録されるプール42である。SAS−HDDプール42Bは、SAS−HDD37Bの実領域が登録されるプール42である。SATA−HDDプール42Cは、SATA−HDD37Cの実領域が登録されるプール42である。光ディスクプール42Eは、光ディスク装置37Eの実領域が登録されるプール42である。テーププール42Dは、テープ装置37Dの実領域が登録されるプール42である。尚、外部ストレージ37Gの実領域が登録されるプール42も形成されるが、ここでは省略している。
本実施形態において、プール42のアクセス性能とは、プール42に登録される実領域(言い換えれば、そのプール42を構成する実ページ52)のアクセス性能のことをいう。従って、プール42のアクセス性能は、そのプール42を形成するための基となる記憶装置37(そのプール42に登録されるLDEV43の基となる記憶装置37)のアクセス性能に依存する。それ故、プール42のアクセス性能の関係は、記憶装置37のアクセス性能の関係と同じである。よって、各種のプール42のアクセス性能を比較すると、図3に示すように、アクセス性能の高いものから順に、フラッシュメモリプール42F、FC−HDDプール42A、SAS−HDDプール42B、SATA−HDDプール42C、光ディスクプール42E、テーププール42Dとなる。
本実施形態に係るストレージシステム3は、同一種類のプール42の集合(プール42内の実領域の集合)を一つのレイヤとする階層型ストレージシステムである。即ち、ストレージシステム3は、データの特性(例えば、アクセス頻度等)に基づいて、そのデータの格納先となるレイヤ(即ち、プール42の種類)を決定することができる。ストレージシステム3は、データを、その特性に合った適切なレイヤに格納(適切なレイヤに属する実領域に格納)することにより、効率的なデータ管理を行うことができる。以下、或るレイヤと比較した場合に、そのレイヤよりもアクセス性能の高いレイヤを「上位レイヤ」と呼び、そのレイヤよりもアクセス性能の低いレイヤを「下位レイヤ」と呼ぶ。
本実施形態では、格納先のレイヤを決定するためのデータ特性として、そのデータのアクセス頻度(そのデータが現在の実ページ52に格納されてから現在に至るまでのそのデータに対するアクセス回数)や、そのデータが作成されてからどの程度時間が経過しているかや、最後にそのデータにアクセス(ライト又はリード)してからどの程度時間が経過しているかの三つが考慮される。例えば、ストレージシステム3のCTL31は、アクセス頻度の高いデータを上位のレイヤに格納し、アクセス頻度の低いデータを下位のレイヤに格納することにより、効率的なデータ管理を行うことができる。どのようなデータ特性の場合にどのレイヤに格納するかといった格納先のレイヤの決定基準は、例えば、予めユーザによって設定される。
本実施形態で考慮されるデータ特性は、データが格納された後に得ることができる。従って、新規にデータを格納する際は、CTL31は、その新規に格納するデータに関するデータ特性を得ることができないため、データ特性に基づいて格納先のレイヤを決定することができない。そこで、CTL31は、仮想VOL41ごとに予め設定されている初期のプール42(以下、「初期プール42」)にデータを格納(初期プール42内の実領域に格納)する。初期プール42は、例えば、ユーザによって指定されたプール42、或いは、中間のアクセス性能を持つレイヤ(本実施形態であれば、例えば、SAS−HDDプール42BやSATA−HDDプール42C)に属するプール42とすることができる。
また、本実施形態で考慮されるデータ特性は、時間の経過とともに変化する。CTL31は、例えば、定期的又は不定期的に、或いはデータへのアクセスがあったときに、データの格納先のレイヤを変更した方がよいかどうかを判定する。データの格納先のレイヤを変更した方がよいと判定された場合は、CTL31は、現在のデータの格納先のレイヤを、より適切なレイヤに変更する。以下の説明において、データの格納先のレイヤを変更する処理を「レイヤ変更処理」と呼ぶ。
図4は、レイヤ変更処理の概要を説明する図である。
レイヤ変更処理は、例えば、以下の(1)〜(3)の流れで行われる。
(1)レイヤの変更を行うか否かの判定
CTL31は、データが格納されている実ページ52(即ち、仮想ページ51に割り当てられている実ページ52)のそれぞれについて、その実ページ52に格納されているデータの格納先を、他のレイヤに変更した方がよいかどうかを判定する。具体的には、まず、CTL31は、対象とする実ページ52(以下、図4の説明において「対象実ページ52」)に格納されているデータ(以下、図4の説明において「対象データ」)に関するデータ特性を、後述する実ページ管理テーブルから取得する。そして、CTL31は、取得したデータ特性が、予め定められた条件(以下、「レイヤ変更ルール」)に合致するか否かを判定する。レイヤ変更ルールには、上位レイヤに変更するための条件であるレイヤアップルールと、下位レイヤに変更するための条件であるレイヤダウンルールとの二種類がある。レイヤ変更ルールは、後述するレイヤ変更テーブルに記録されている。レイヤ変更テーブルには、レイヤ変更ルールとともに、そのレイヤ変更ルールに合致した場合に、どのレイヤに変更するか(即ち、変更後となるレイヤを示す情報)が記録されている。レイヤ変更ルールに合致した場合、CTL31は、次の(2)及び(3)の処理を行って、対象データの格納先を変更後のレイヤに変更する。
(2)データのマイグレーション
CTL31は、対象実ページ52から、変更後のレイヤに属する実ページ52のうちの未割当ての実ページ52(以下、「変更後の実ページ52」)へ、対象データをマイグレーションする。
(3)仮想ページ51の割り当て元の変更
CTL31は、対象実ページ52が割り当てられていた仮想ページ51(以下、図4の説明において「対象仮想ページ51」)について、割り当て元を、変更前の実ページ52(即ち、対象実ページ52)から変更後の実ページ52へ変更する。具体的には、CTL31は、対象仮想ページ51に対する対象実ページ52の割り当てを解除し、新たに、対象仮想ページ51に対して変更後の実ページ52を割り当てる。尚、図4では、変更後の実ページ52として、上位レイヤのものと下位レイヤのものとの二つが記載されているが、実際には、変更後の実ページ52は、いずれか一方となる。
以上が、レイヤ変更処理の概要である。このように、本実施形態に係るレイヤ変更処理では、データが実際に格納される領域である実ページ52が、他の種類に変更される。一方、ホスト1が認識することができる仮想ページ51は、変更されない。そのため、ホスト1は、レイヤ変更処理が行われる前と同様に、対象仮想ページ51にアクセスすることで、変更後の実ページ52(即ち、種類の変更された実ページ52)に格納されたデータにアクセスすることができる。
図5は、仮想ページ51への実ページ52の割り当ての具体例を示す図である。
仮想VOL41を構成する仮想ページ51のそれぞれは、LBAによって特定される。図5では、仮想ページ51ごとに、一つのLBA番号(“LBA0”〜“LBAn”)が割り当てられているが、このLBA番号は、実際には、その仮想ページ51の開始LBAから終了LBAまでの範囲を示すものである。例えば、“LBA0”は、開始LBAである“0000”から終了LBAである“0099”までの範囲とされる。
一方、プール41内の各実ページ52は、ページ番号によって特定される。図5では、実ページ52ごとに数値が付されているが、この数値がページ番号である。ページ番号は、各プール42内においてユニークな値とされる。
本実施形態では、実ページ52のサイズが、その実ページ52の属するプール42の種類(レイヤ)によって異なる。具体的には、レイヤが下位である程、そのレイヤに属する実ページ52のサイズは、大きく設定される(但し、全てのレイヤについて実ページ52のサイズが異なっている必要は無く、例えば、隣り合うレイヤ(例えば2つのレイヤ)については、実ページ52のサイズが、同じに設定されてもよい)。例えば、下位レイヤに属する実ページ52のサイズは、上位レイヤに属する実ページ52のサイズのN倍(Nは自然数)に設定される。そして、仮想ページ51のサイズは、最も小さく設定された実ページ52のサイズと同じかそれよりも小さく(例えば、最も小さく設定された実ページ52のサイズの1/N(Nは自然数)に)設定される。図5の例では、FC−HDDプール42A内の実ページ52のサイズは、仮想ページ51のサイズと同じサイズ(例えば16MB(メガバイト))に設定されている。また、FC−HDDプール42Aよりも下位のレイヤに属するSATA−HDDプール42C内の実ページ52のサイズは、FC−HDDプール42A内の実ページ52の2倍(例えば32MB)に設定されている。また、SATA−HDDプール42Cよりも下位のレイヤに属するテーププール42D内の実ページ52のサイズは、SATA−HDDプール42C内の実ページ52のサイズの2倍、即ち、FC−HDDプール42A内の実ページ52のサイズの4倍(例えば64MB)に設定されている。
図5において、仮想ページ51と実ページ52とを結ぶ線は、両ページ51,52が割り当ての関係にあること(即ち、その実ページ52がその仮想ページ51に割り当てられていること)を示している。
図5に示されるように、仮想ページ51と、FC−HDDプール42A内の実ページ52とは、それぞれ一対一に割り当てられている。仮想ページ51のサイズが、FC−HDDプール42A内の実ページ52のサイズと同じだからである。
一方、SATA−HDDプール42C内の実ページ52のサイズは、仮想ページ51の2倍である。そのため、SATA−HDDプール42Cについては、二つの連続する仮想ページ51に対して一つの実ページ52が割り当てられる。
また、テーププール42D内の実ページ52のサイズは、SATA−HDDプール42C内の実ページ52のサイズの2倍、即ち、仮想ページ51の4倍であるため、テーププール42Dについては、四つの連続する仮想ページ51に対して一つの実ページ52が割り当てられる。
後述するが、ストレージシステム3の共有メモリ33には、プール42に登録されている全ての実ページ52について、個々の実ページ52を管理するための情報(以下、「実ページ管理情報」)が記憶される。実ページ管理情報は、実ページ52ごとに用意されるため、実ページ52の数が多ければ多い程、実ページ管理情報の数が多くなり、実ページ管理情報の全体サイズ(全ての実ページ管理情報のサイズの総和)が大きくなる。よって、実領域全体のサイズが同じであっても、その実領域全体から構成される実ページ52のサイズを大きく設定した場合(言い換えると、その実領域全体から構成される実ページ52の数を少なく設定した場合)は、実ページ管理情報の全体サイズを小さくすることができる。
一方で、実ページ52のサイズを大きくすればする程、データを、その特性に合った適切なレイヤに格納することが難しくなる(より正確に言うと、データ特性に合った適切なレイヤに格納したつもりでも、実際にはそれ程データ特性に合っていないレイヤに格納されることが起こり得る)。何故ならば、実ページ52のサイズを大きくすればする程、その実ページ52に格納されるデータの特性に、ばらつきが生じやすくなるためである。より具体的に説明すると、実ページ52のサイズを16MBとした場合、一つのファイルのサイズを1MBと仮定すれば、一つの実ページ52には、16個のファイルを構成するデータが格納され得る。16個のファイルを構成するデータが格納された場合のデータ特性は、16個のファイルのそれぞれのアクセス頻度等を包括したものとなる。一方、実ページ52のサイズを64MBとした場合、上記と同様に一つのファイルのサイズを1MBと仮定すれば、一つの実ページ52には、64個のファイルを構成するデータが格納され得る。64個のファイルを構成するデータが格納された場合のデータ特性は、64個のファイルのそれぞれのアクセス頻度等を包括したものとなる。つまり、実ページ52のサイズを64MBとした場合の方が、データ特性は、より多くのファイルのアクセス頻度等を包括したものとなる。そのため、データ特性にばらつきが生じやすくなるのである。例えば、64個のファイルのうちの一つだけがアクセス頻度が非常に高く、他の63個のファイルがほとんどアクセスされない場合にも、これら64個のファイルを構成するデータが、上位のレイヤに格納されるということも起こり得る。この場合、アクセス頻度の高い一つのファイルを構成するデータについて見れば、データ特性に合ったレイヤに格納されたことになるが、その他のファイルを構成するデータについて見れば、データ特性には合わないレイヤに格納されたことになる。実ページ52のサイズを小さくすればする程、データ特性に合わないレイヤに格納されるデータ量(そのデータを構成するファイルの数)を少なくすることができる。
本実施形態では、レイヤが下位である程、そのレイヤに属する実ページ52のサイズを大きく設定することにより、実ページ管理情報の全体サイズを小さくし、実ページ管理情報を記憶しておくために必要となるメモリサイズを小さくしている。一方で、上位のレイヤ(即ち、アクセス性能の高いレイヤ)については、実ページ52のサイズが小さく設定される。これにより、実ページ管理情報の全体サイズを小さくしつつ、且つ、アクセス頻度の高いデータについては、データ特性に合った適切なレイヤへ格納することが可能となる。
以下、図6〜図9を参照して、レイヤ変更処理を具体的に説明する。尚、レイヤの変更が行われる前は、仮想ページ51に対する実ページ52の割り当ての状態は、図5に示した状態であるとする。また、以下の説明では、図3に示した6種類のプールのうちの3種類のプールとして、FC−HDDプール42A、SATA−HDDプール42C、テーププール42Dを例に採り、且つ、これらのプールが属するレイヤの上下を理解し易くするために、FC−HDDプール42Aを「プール1」と言い、SATA−HDDプール42Cを「プール2」と言い、テーププール42Dを「プール3」と言うことにする(番号が若いプールほど、上位のレイヤに属する)。また、以下の説明では、LBA番号がLBAn(nは整数)の仮想ページ51を「仮想ページ(n)」と言い(例えば、LBA番号が“LBA4”の仮想ページ51を、「仮想ページ(4)」と言い)、プールm(mはプールの番号であり整数)内のページ番号x(xは整数)の実ページ52を「実ページ(m−x)」と言うことにする(例えば、プール1内のページ番号6の実ページ52を「実ページ(1−6)」と言うことにする)。
図6は、プール2からプール1へのレイヤの変更の一例を示す図である。この例では、プール2が変更前のプールであり、プール1が変更後のプールである。
図6では、プール2における実ページ(2−0)に格納されているデータ(以下、図6の説明において「対象データ」)のデータ特性が、レイヤアップルールに合致した場合を想定する。図5及び図6を見るとわかるとおり、実ページ(2−0)は、連続した2つの仮想ページ(4)及び(5)に割り当てられている。なぜなら、プール2内の1つの実ページのサイズは、1つの仮想ページのサイズの2倍であるからである。
CTL31は、変更後のプール1内の実ページ52のうちの未割当ての実ページ52(例えば実ページ(1−6)及び(1−7))を選択する。ここで、変更後のプール1から2つの実ページ52が選択された理由は、変更前のプール2内の実ページ52のサイズが、変更後のプール1内の実ページ52のサイズの2倍であるからである。なお、図6に示す例によれば、連続した2つの実ページ(1−6)及び(1−7)が選択されているが、連続した実ページが選択される必要はない(例えば、不連続の実ページ(1−6)と(1−13)が選択されても良い)。
その後、CTL31は、変更前の実ページ(2−0)から変更後の実ページ(1−6)及び(1−7)へ、対象データをマイグレーションする。具体的には、CTL31は、対象データを二つに分割し、そのうちの一方を、実ページ(1−6)へ移動し、他方を、実ページ(1−7)へ移動する。
その後、CTL31は、仮想ページ(4)及び(5)に対する変更前の実ページ(2−0)の割り当てを解除し、新たに、仮想ページ(4)及び(5)に対して変更後の実ページ(1−6)及び(1−7)を割当てる。ここで、仮想ページ51のサイズと変更後の実ページ52のサイズは、同じである。従って、仮想ページ51に変更後の実ページ52が一対一で割り当てられる。また、変更後の実ページ52の割り当ては、仮想ページ51上において、データの連続性が保たれるように行われる。具体的には、図6の例では、仮想ページ(4)及び(5)のうち、LBA番号の最も若い仮想ページ(4)には、二つに分割された対象データの前半部分が格納された実ページ(1−6)が割り当てられる。また、仮想ページ(4)に連続する仮想ページ(5)には、二つに分割された対象データの後半部分が格納された実ページ(1−7)が割り当てられる。
以上の処理が行われることにより、仮想ページ(4)及び(5)に格納(実際には、仮想ページ(4)及び(5)に割り当てられていた実ページ(2−0)に格納)されているデータの格納先が、プール2(SATA−HDDプール42C)からプール1(FC−HDDプール42A)へ変更される(レイヤアップされる)。
図7は、プール3からプール1へのレイヤの変更の一例を示す図である。この例では、プール3が変更前のプールであり、プール1が変更後のプールである。
図7では、実ページ(3−0)に格納されているデータ(以下、図7の説明において「対象データ」)のデータ特性が、レイヤアップルールに合致した場合を想定する。図5及び図7を見るとわかるとおり、実ページ(3−0)は、仮想ページ(10)〜(12)に割り当てられている。
CTL31は、変更後のプール1(FC−HDDプール42A)内の実ページ52のうちの未割当ての実ページ(1−8)、(1−9)、(1−10)及び(1−11)を選択する。ここで、変更後のプール1から4つの実ページ52が選択された理由は、変更前のプール2内の実ページ52のサイズが、変更後のプール1内の実ページ52のサイズの4倍であるからである。なお、図7に示す例によれば、連続した4つの実ページ(1−8)、(1−9)、(1−10)及び(1−11)が選択されているが、連続した実ページが選択される必要はない(例えば、不連続の実ページ(1−1)、(1−5)、(1−9)、(1−14)が選択されても良い)。
その後、CTL31は、変更前の実ページ(3−0)から変更後の実ページ(1−8)、(1−9)、(1−10)及び(1−11)へ、対象データをマイグレーションする。具体的には、CTL31は、対象データを四つに分割し、それぞれを、実ページ(1−8)、(1−9)、(1−10)及び(1−11)のいずれかに重複しないように移動する。
その後、CTL31は、仮想ページ(10)〜(13)に対する実ページ(3−0)の割り当てを解除し、新たに、仮想ページ(10)〜(13)に対して変更後の実ページ(1−8)、(1−9)、(1−10)及び(1−11)を割り当てる。ここで、仮想ページ51のサイズと変更後の実ページ52のサイズは、同じである。従って、仮想ページ51に変更後の実ページ52が一対一で割り当てられる。また、変更後の実ページ52の割り当ては、仮想ページ51上において、データの連続性が保たれるように行われる。具体的には、図7の例では、仮想ページ(10)〜(13)のうち、LBA番号の最も若い仮想ページ(10)には、四つに分割された対象データの先頭部分が格納された実ページ(1−8)が割り当てられる。また、仮想ページ(10)に連続する仮想ページ(11)には、四つに分割された対象データの先頭から二番目の部分が格納された実ページ(1−9)が割り当てられる。また、仮想ページ(11)に連続する仮想ページ(12)には、四つに分割された対象データの先頭から三番目の部分が格納された実ページ(1−10)が割り当てられる。また、仮想ページ(12)に連続する仮想ページ(13)には、四つに分割された対象データの最終部分が格納された実ページ(1−11)が割り当てられる。
以上の処理が行われることにより、仮想ページ(10)〜(13)に格納されているデータの格納先が、プール3(テーププール42D)からプール1(FC−HDDプール42A)へ変更される(レイヤアップされる)。
図8は、プール1からプール2へのレイヤの変更の一例を示す図である。この例では、プール1が変更前のプールであり、プール2が変更後のプールである。
図8では、実ページ(1−0)に格納されているデータ(以下、図8の説明において「対象データ」)のデータ特性が、レイヤダウンルールに合致した場合を想定する。図5及び図8を見るとわかるとおり、実ページ(1−0)は、仮想ページ(0)に割り当てられている。
変更後のプール2(SATA−HDDプール42C)内の実ページ52のサイズは、変更前のプール1(FC−HDDプール42A)内の実ページ52のサイズの2倍である。そこで、CTL31は、対象データに加えて、対象データに連続する、対象データと同一サイズのデータ(以下、図8の説明において「連続データ」)もが、変更後のプール2へ変更することが適切であるかどうかを判定する。即ち、CTL31は、連続データが、対象データが合致したレイヤダウンルール(即ち、プール2へ変更することを定めたルール)に合致するか否かを判定する。ここで、或る二つのデータが連続しているとは、両データのそれぞれが格納されている(正確には、両データのそれぞれが格納されている実ページ52が割り当てられている)二つの仮想ページ51が連続していることをいう。従って、ここでの連続データは、仮想ページ(0)と連続する仮想ページ(1)に格納されているデータとなる。以下、図8の説明において、対象の仮想ページ(0)と連続する仮想ページ(1)を「連続仮想ページ(1)」と呼び、連続仮想ページ(1)に割り当てられている実ページ(1−1)(即ち、連続データが格納されている実ページ(1−1))を「連続実ページ(1−1)」と呼ぶ。
CTL31は、対象データに加えて、連続データもが、プール2へ変更することを定めたルールに合致すると判定した場合は、対象データ及び連続データの格納先を一括してプール2へ変更する。一方、CTL31は、連続データが、プール2へ変更することを定めたルールに合致しないと判定した場合は、対象データ及び連続データの格納先の変更を行わない。以下、対象データ及び連続データの格納先がプール2へ変更される場合について説明する。
CTL31は、変更後のプール2内の実ページ52のうち未割当ての実ページ(2−1)を選択する。
その後、CTL31は、対象実ページ(1−0)及び連続実ページ(1−1)から変更後の実ページ(2−1)へ、対象データ及び連続データをマイグレーションする。具体的には、CTL31は、対象データ及び連続データを結合し、その結合したデータを、変更後の実ページ(2−0)に移動する。
その後、CTL31は、対象仮想ページ(0)に対する対象実ページ(1−0)の割り当て、及び、連続仮想ページ(1)に対する連続実ページ(1−1)の割り当てを解除する。そして、CTL31は、新たに、対象仮想ページ(0)及び連続仮想ページ(1)に対して一つの変更後の実ページ(2−1)を割り当てる。すなわち、変更後のプール2内の実ページ52のサイズは、仮想ページ51のサイズの2倍であるため、二つの連続する仮想ページ(0)及び(1)に対して変更後のプール2内の一つの実ページ(2−1)が割り当てられる。
以上の処理が行われることにより、対象仮想ページ(0)及び連続仮想ページ(1)のそれぞれに格納されているデータの格納先は、プール1(FC−HDDプール42A)からプール2(SATA−HDDプール42C)へ変更される(レイヤダウンされる)。
図9は、プール1からプール3へのレイヤの変更の一例を示す図である。この例では、プール1が変更前のプールであり、プール2が変更後のプールである。
図9では、実ページ(1−0)に格納されているデータ(以下、図9の説明において「対象データ」)のデータ特性が、レイヤダウンルールに合致した場合を想定する。図5及び図9を見るとわかるとおり、実ページ(1−0)は、仮想ページ(0)に割り当てられている。
変更後のプール3(テーププール42D)内の実ページ52のサイズは、変更前のプール1(FC−HDDプール42A)内の実ページ52のサイズの4倍である。そこで、CTL31は、対象データに加えて、対象データから連続する、対象データと同一サイズの三つのデータ(以下、それぞれのデータを、図9の説明において「連続データ」という)もが、変更後のプール3へ変更することが適切であるかどうかを判定する。即ち、CTL31は、全ての連続データが、対象データが合致したレイヤダウンルール(即ち、プール3へ変更することを定めたルール)に合致するか否かを判定する。ここでの連続データは、仮想ページ(0)と連続する仮想ページ(1)に格納されているデータと、仮想ページ(1)と連続する仮想ページ(2)に格納されているデータと、仮想ページ(2)と連続する仮想ページ(3)に格納されているデータとの三つになる。以下、図9の説明において、対象の仮想ページ(0)から連続する三つの仮想ページ(1)〜(3)のそれぞれを「連続仮想ページ(1)〜(3)」と呼び、連続仮想ページ(1)〜(3)のそれぞれに割り当てられている実ページ(1−1)、(1−2)及び(1−3)を「連続実ページ(1−1)、(1−2)及び(1−3)」と呼ぶ。
CTL31は、対象データに加えて、全ての連続データが、プール3へ変更することを定めたルールに合致すると判定した場合は、対象データ及び全ての連続データの格納先を一括してプール1からプール3へ変更する。一方、CTL31は、少なくとも一つの連続データが、プール3へ変更することを定めたルールに合致しないと判定した場合は、対象データ及び連続データの格納先の変更を行わない。以下、対象データ及び連続データの格納先が、プール3へ変更される場合について説明する。
CTL31は、変更後のプール3内の実ページ52のうち未割当ての実ページ(3−1)を選択する。
その後、CTL31は、対象実ページ(1−0)及び全ての連続実ページ(1−1)、(1−2)及び(1−3)から変更後の実ページ(3−1)へ、対象データ及び全ての連続データをマイグレーションする。具体的には、CTL31は、対象データ及び全ての連続データを結合し、その結合したデータを、変更後の実ページ(3−1)に移動する。
その後、CTL31は、対象仮想ページ(0)に対する対象実ページ(1−0)の割り当て、及び、連続仮想ページ(1)〜(3)のそれぞれに対する連続実ページ(1−1)、(1−2)及び(1−3)の割り当てを解除する。そして、CTL31は、新たに、対象仮想ページ(0)及び連続仮想ページ(1)〜(3)に対して一つの変更後の実ページ(3−1)を割り当てる。すなわち、変更後のプール3内の実ページ52のサイズは、仮想ページ51のサイズの4倍であるため、四つの連続する仮想ページ(0)〜(3)に対して変更後のプール3内の一つの実ページ(3−1)が割り当てられる。
以上の処理が行われることにより、対象仮想ページ(0)及び連続仮想ページ(1)〜(3)のそれぞれに格納されているデータの格納先は、プール1(FC−HDDプール42A)からプール3(テーププール42D)へ変更される(レイヤダウンされる)。
以下、図10〜図13を参照して、ストレージシステム3が備える共有メモリ33に記憶される各種のテーブル(仮想VOL管理テーブル61、プール管理テーブル62、実ページ管理テーブル63及びレイヤ変更ルールテーブル64)について説明する。尚、各種のテーブル61,62,63,64は、キャッシュメモリ34に記憶されてもよい。
図10は、仮想VOL管理テーブル61の一例を示す図である。
仮想VOL管理テーブル61は、ストレージシステム3において形成されている仮想VOL41に関する情報を管理するためのテーブルである。具体的には、仮想VOL管理テーブル61は、仮想VOL41を構成する仮想ページ51のそれぞれについて、いずれかの実ページ52が割り当てられているかどうか、及び、実ページ52が割り当てられている場合はどの実ページ52が割り当てられているかを管理するためのテーブルである。例えば、図10に示すように、仮想VOL管理テーブル61には、仮想VOL41を構成する仮想ページ51ごとに、その仮想ページ51を特定するLBA612と、その仮想ページ51に割り当てられている実ページ52(以下、図10の説明において「割り当て実ページ52」)が登録されているプール42のプールID613と、割り当て実ページ52が登録されたプール42のプール種別614と、割り当て実ページ52のページ番号615とが、対応付けて記録される。
図11は、プール管理テーブル62の一例を示す図である。
プール管理テーブル62は、ストレージシステム3において形成されているプール42に関する情報を管理するためのテーブルである。以下、プール管理テーブル62によって管理される、各プール42に関する情報を、「プール管理情報」と呼ぶ。プール管理テーブル62には、例えば、ストレージシステム3において形成されているプール42ごとに、プールID621と、プール種別622と、プール容量623と、実ページサイズ624と、総実ページ数625と、使用実ページ数626と、空き実ページ数627と、使用実ページキューポインタ628と、空き実ページキューポインタ629と、データ作成日時キューポインタ62Aと、最終データ更新日時キューポインタ62Bと、最終データアクセス日時キューポインタ62Cとが、対応付けて記録される。
プールID621は、プール42を一意に特定するための情報である。プール種別622は、対応するプールID621によって特定されるプール42(以下、図11の説明において「対応プール42」)の種類を示す情報である。プール容量623は、対応プール42の総容量(即ち、対応プール42内の全実ページ52のサイズの総和)である。実ページサイズ624は、対応プール42内の実ページ52のサイズである。総実ページ数625は、対応プール42内の実ページ52の総数である。使用実ページ数626は、対応プール4内の実ページ52のうち使用されているもの(即ち、仮想ページ51に割り当てられているものであり、以下、「使用実ページ52」という)の数である。空き実ページ数627は、対応プール4内の実ページ52のうち使用されていないもの(即ち、仮想ページ51に割り当てられていないものであり、以下、「空き実ページ52」という)の数である。
使用実ページキューポインタ628は、対応プール42内の使用実ページ52を管理するために利用されるキューポインタ(キュー構造を構成するポインタ)である。空き実ページキューポインタ629は、対応プール42内の空き実ページ52を管理するために利用されるキューポインタである。データ作成日時キューポインタ62Aは、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータのデータ作成日時を管理するために利用されるキューポインタである。最終データ更新日時キューポインタ62Bは、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータの最終データ更新日時(そのデータが最後に更新された日時)を管理するために利用されるキューポインタである。最終データアクセス日時キューポインタ62Cは、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータの最終データアクセス日時(そのデータが最後にアクセス(ライト又はリード)された日時)を管理するために利用されるキューポインタである。キューポインタ628〜62Cがどのように利用されるかについては、後述する。
図12は、実ページ管理テーブル63の一例を示す図である。
実ページ管理テーブル63は、ストレージシステム3において形成されているプール42に登録されている実ページ52に関する情報を管理するためのテーブルである。本実施形態では、このページ管理テーブル63によって管理される、各実ページ52に関する情報を、「実ページ管理情報」と呼んでいる。実ページ管理テーブル63は、ストレージシステム3において形成されているプール42ごとに作成される。実ページ管理テーブル63には、例えば、その実ページ管理テーブル63が管理の対象とするプール42内の実ページ51ごとに、ページ番号631と、実ページサイズ632と、割り当て先の仮想ページ633と、データ特性634と、プール内キューポインタ635と、データ作成日時キューポインタ636と、最終データ更新日時キューポインタ637と、最終データアクセス日時キューポインタ638とが、対応付けて記録される。
ページ番号631は、実ページ52を一意に特定するための情報である。実ページサイズ632は、対応するページ番号631によって特定される実ページ52(以下、図12の説明において「対応実ページ52」)のサイズである。割り当て先の仮想ページ633は、対応実ページ52が割り当てられている仮想ページ51(以下、図12の説明において「割り当て先仮想ページ51」)を示す情報である。割り当て先の仮想ページ633には、割り当て先仮想ページ51が属する仮想VOL41のIDと、割り当て先仮想ページ51を特定するためのLBAとが含まれる。データ特性634は、対応実ページ52に格納されているデータ(以下、図12の説明において「対応データ」)のデータ特性である。本実施形態では、データ特性634には、データ作成日時と、最終データ更新日時と、最終データアクセス日時と、アクセス回数とが含まれる。データ作成日時は、対応データが新規に作成された日時である。最終データ更新日時は、対応データが最後に更新された日時である。最終データアクセス日時は、対応データが最後にアクセス(ライト又はリード)された日時である。アクセス回数は、対応データが対応実ページ52に格納されてから現在に至るまでの、ホスト1からアクセスされた回数である。
プール内キューポインタ635は、対応実ページ52が属するプール42(即ち、この実ページ管理テーブル63が管理の対象としているプール42であり、以下、図12の説明において「対応プール42」という)内の使用実ページ52及び空き実ページ52を管理するためのキューポインタである。プール内キューポインタ635は、プール管理テーブル62における使用実ページキューポインタ628又は空き実ページキューポインタ629とともに利用される。データ作成日時キューポインタ636は、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータのデータ作成日時を管理するために利用されるキューポインタである。データ作成日時キューポインタ636は、プール管理テーブル62におけるデータ作成日時ページキューポインタ62Aとともに利用される。最終データ更新日時キューポインタ637は、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータの最終データ更新日時を管理するために利用されるキューポインタである。最終データ更新日時キューポインタ637は、プール管理テーブル62における最終データ更新日時ページキューポインタ62Bとともに利用される。最終データアクセス日時キューポインタ638は、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータの最終データアクセス日時を管理するために利用されるキューポインタである。最終データアクセス日時キューポインタ638は、プール管理テーブル62における最終データアクセス日時キューポインタ62Cとともに利用される。キューポインタ635〜638がどのように利用されるかについては、後述する。
図13は、レイヤ変更ルールテーブル64の一例を示す図である。
レイヤ変更ルールテーブル64は、どのようなデータ特性の場合にどのレイヤに格納するかといった格納先のレイヤの決定基準を管理するためのテーブルである。レイヤ変更ルールテーブル64には、例えば、プール42ごとに、そのプール42に関するレイヤ変更ルール(レイヤアップルール及び/又はレイヤダウンルール)と、そのレイヤ変更ルールに合致した場合の変更後のプール42とが、対応付けて記録される。
対象プール641は、対象とするプール42を示す情報である。対象プール641には、対象とするプール42のIDであるプールID6411と、対象とするプール42の種類を示す情報であるプール種別6412とが含まれる。ルール種別642は、対応するレイヤ変更ルールの種類(レイヤアップルール又はレイヤダウンルール)を示す情報である。レイヤ変更ルール643には、そのレイヤ変更ルールにおいて考慮されるデータ特性を示す情報である判定項目6431と、そのレイヤ変更ルールに合致するか否かを決定するための基準を示す情報である条件6432とが含まれる。変更後のプール644は、対応するレイヤ変更ルールに合致した場合の変更後のプール42を示す情報である。変更後のプール644には、その変更後のプール42のIDであるプールID6441と、その変更後のプール42の種類を示す情報であるプール種別6442とが含まれる。
例えば、図13の例では、プールIDが“プール2”であるSATA−HDDプール42Cには、レイヤダウンルール及びレイヤアップルールがそれぞれ一つずつ定義されている。レイヤダウンルールは、データ作成日時から365日経過することである。また、レイヤダウンルールに合致した場合の変更後のプール42は、プールIDが“プール3”のテーププール42Dである。従って、プールIDが“プール2”であるSATA−HDDプール42C内の実ページ52(以下、図13の説明において「対象実ページ52」)に格納されているデータ(以下、図13の説明において「対象データ」)が、データ作成日時から365日経過していた場合は、レイヤダウンルールに合致することになる。よって、対象データの格納先が、対象実ページ52から、プールIDが“プール3”のテーププール42D内の実ページ52へ変更される。また、レイヤアップルールは、アクセス回数が10000回を超えることである。また、レイヤアップルールに合致した場合の変更後のプール42は、プールIDが“プール1”のFC−HDD42Aである。従って、対象データのアクセス回数が、10000回を超えていた場合は、レイヤアップルールに合致することになる。よって、対象データの格納先が、対象実ページ52から、プールIDが“プール1”のFC−HDD42A内の実ページ52へ変更される。
図14は、プール管理情報及び実ページ管理情報によって示されるキュー構造の例である。
図11及び図12で説明したように、プール管理情報及び実ページ管理情報には、幾つかのキューポインタが含まれる。本実施形態では、プール管理情報には、使用実ページキューポインタ628と、空き実ページキューポインタ629と、データ作成日時キューポインタ62Aと、最終データ更新日時キューポインタ62Bと、最終データアクセス日時キューポインタ62Cとの五つが含まれる。また、実ページ管理情報には、プール内キューポインタ635と、データ作成日時キューポインタ636と、最終データ更新日時キューポインタ637と、最終データアクセス日時キューポインタ638との四つが含まれる。図14には、プール管理情報に含まれるキューポインタ(図14では“QP”と略している)628〜62Cと、実ページ管理情報に含まれるデータ特性634及びキューポインタ635〜638とが記されている。
以下、一つのプール42(以下、図14の説明において「対象プール42」)を例に挙げて説明する。対応プール42には、ページ番号“100”、“101”,“102”,“103”及び“104”の五つの実ページ52が属しているものとする。また、ページ番号“100”、“101”及び“102”の実ページ52が使用実ページ52であり、ページ番号“103”及び“104”の実ページ52が空き実ページ52であるものとする。
プール管理情報に含まれるキューポインタ628〜62Cの横には、対象プール42に関する、それぞれのキューポインタ628〜62Cの値が記されている。また、実ページ管理情報に含まれるデータ特性634及びキューポインタ635〜638の横には、対象プール42内の全ての実ページ52(図14の例では、ページ番号“100”、“101”,“102”,“103”及び“104”の五つの実ページ52)に関する、それぞれのデータ特性634及びキューポインタ635〜638の値が記されている。
まず、プール管理情報に含まれる使用実ページキューポインタ628及び実ページ管理情報に含まれるプール内キューポインタ635について説明する。上述したように、使用実ページキューポインタ628及びプール内キューポインタ635は、対応プール42内の使用実ページ52を管理するために利用されるキューポインタである。使用実ページキューポインタ628の値は、対応プール42内の一つの使用実ページ52のページ番号である。即ち、使用実ページキューポインタ628は、対応プール42内の一つの使用実ページ52を指している。また、或る実ページ52(当該実ページ52)について見たときに、当該実ページ52におけるプール内キューポインタ635の値は、当該実ページ52が使用実ページ52の場合は、他の使用実ページ52のページ番号又は他の使用実ページ52がないことを示す情報(図14の例では、“root”)である(当該実ページ52が空き実ページ52の場合は、他の空き実ページ52のページ番号又は他の空き実ページ52がないことを示す情報である)。即ち、プール内キューポインタ635は、他の使用実ページ52(或いは他の空き実ページ)を指している。ここで、他の使用(空き)実ページ52とは、当該実ページ52、及び、使用実ページキューポインタ628(空き実ページキューポインタ629)が指している使用(空き)実ページ52から当該実ページ52までに指された全ての使用(空き)実ページ52のいずれとも異なる使用(空き)実ページ52のことをいう。
図14の例では、使用実ページキューポインタ628は、ページ番号“102”の使用実ページ52を指している。また、ページ番号“102”の使用実ページ52におけるプール内キューポインタ635は、ページ番号“101”の使用実ページ52を指している。また、ページ番号“101”の使用実ページ52におけるプール内キューポインタ635は、ページ番号“100”の使用実ページ52を指している。
このように、使用実ページキューポインタ628及びプール内キューポインタ635は、対応プール42内の全ての使用実ページ52を繋いでいる。従って、管理情報を参照するCTL31は、使用実ページキューポインタ628及びプール内キューポインタ635を辿ることによって、対応プール42内の全ての使用実ページ52を知ることができる。尚、使用実ページキューポインタ628及びプール内キューポインタ635によって繋がれる使用実ページ52の順番は任意である。
上述したように、プール管理情報に含まれる空き実ページキューポインタ629及び実ページ管理情報に含まれるプール内キューポインタ635は、対応プール42内の空き実ページ52を管理するために利用されるキューポインタである。空き実ページキューポインタ629及びプール内キューポインタ635を利用した、空き実ページ52の管理方法は、上述したような、使用実ページキューポインタ628及びプール内キューポインタ635を利用した、使用実ページ52の管理方法と同様である。
次に、データ作成日時キューポインタ62A,636について説明する。上述したように、データ作成日時キューポインタ62A,636は、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータのデータ作成日時を管理するために利用されるキューポインタである。プール管理情報に含まれるデータ作成日時キューポインタ62Aの値は、対応プール42内の使用実ページ52のうち、そこに格納されているデータのデータ作成日時が最も古いもののページ番号である。即ち、プール管理情報に含まれるデータ作成日時キューポインタ62Aは、データ作成日時が最も古いデータが格納されている使用実ページ52を指している。また、或る使用実ページ52(当該使用実ページ52)について見たときに、当該使用実ページ52におけるデータ作成日時キューポインタ636の値は、次にデータ作成日時が古い使用実ページ52のページ番号である。即ち、当該使用実ページ52におけるデータ作成日時キューポインタ636は、次にデータ作成日時が古い使用実ページ52を指している。ここで、次にデータ作成日時が古い使用実ページ52とは、当該使用実ページ52に格納されているデータの次にデータ作成日時が古いデータが格納されている使用実ページ52のことをいう。
図14の例では、データ作成日時キューポインタ62Aは、ページ番号“102”の使用実ページ52を指している。また、ページ番号“102”の使用実ページ52におけるデータ作成日時キューポインタ636は、ページ番号“101”の使用実ページ52を指している。また、ページ番号“101”の使用実ページ52におけるデータ作成日時キューポインタ636は、ページ番号“100”の使用実ページ52を指している。
このように、データ作成日時キューポインタ62A,636は、対応プール42内の全ての使用実ページ52を、そこに格納されるデータのデータ作成日時が古いものから順番に繋いでいる。従って、管理情報を参照するCTL31は、データ作成日時キューポインタ62A,636を辿ることによって、対応プール42内の使用実ページ52を、そこに格納されているデータのデータ作成日時が古いものから順番に取得することができる。尚、データ作成日時キューポインタ62A,636に加えて或いはデータ作成日時キューポインタ62A,636に代えて、対応プール42内の全ての使用実ページ52を、そこに格納されるデータのデータ作成日時が新しいものから順番に繋ぐキューポインタが用いられてもよい。
例えば、レイヤ変更ルールで考慮されるデータ特性がデータ作成日時である場合は、CTL31は、データ作成日時キューポインタ62A,636を参照することで、判定対象の実ページ52を、効率的に選択することができる。ここで、判定対象の実ページ52とは、レイヤの変更を行うか否かの判定(即ち、レイヤ変更ルールに合致するか否かの判定)が行われることとなるデータが格納されている実ページ52のことである。以下、判定対象の実ページ52を効率的に選択できることについて、図14を参照して具体的に説明する。例えば、レイヤ変更ルールが、データ作成日時から365日経過することであるとする。また、現在の日時が、“09/01/20 01:23:45”であるとする。CTL31は、まず、プール管理情報に含まれるデータ作成日時キューポインタ62Aを参照する。これにより、CTL31は、データ作成日時が最も古いデータが格納されている使用実ページ52(図14の例では、ページ番号“102”の実ページ52)を得ることができる。CTL31は、ここで得られた使用実ページ52を、第一の判定対象の実ページ52とする。第一の判定対象の実ページ52とされた、ページ番号“102”の実ページ52におけるデータ作成日時は、“08/01/01 01:23:45”であり、故に、現在の日時“09/01/20 01:23:45”はそのデータ作成日時“08/01/01 01:23:45”から365日を経過している。即ち、第一の判定対象の実ページ52に格納されているデータ(以下、図14の説明において「第一の判定対象のデータ」)は、レイヤ変更ルールに合致する。従って、第一の判定対象のデータの格納先は、他のレイヤに変更される。次に、CTL31は、第一の判定対象の実ページ52におけるデータ作成日時キューポインタ636を参照する。これにより、CTL31は、データ作成日時が、第一の判定対象のデータの次に古いデータが格納されている使用実ページ52(図14の例では、ページ番号“101”の実ページ52)を得ることができる。CTL31は、ここで得られた使用実ページ52を、第二の判定対象の実ページ52とする。第二の判定対象の実ページ52とされた、ページ番号“101”の実ページ52におけるデータ作成日時は、“08/02/02 01:23:45”であり、故に、現在の日時“09/01/20 01:23:45”はそのデータ作成日時“08/02/02 01:23:45”から365日を経過していない。即ち、第二の判定対象の実ページ52に格納されているデータ(以下、図14の説明において「第二の判定対象のデータ」)は、レイヤ変更ルールに合致しない。従って、第二の判定対象のデータの格納先は、他のレイヤに変更されない。ここで、第二の判定対象の実ページ52よりも後にデータ作成日時キューポインタ636で繋がれている使用実ページ52は、そこに格納されているデータのデータ更新日時が、第二の判定対象のデータよりも新しいものである。従って、CTL31は、この時点で、第一の対象データ以外に、レイヤ変更ルールに合致するデータは存在しないと判定することができる。つまり、CTL31は、必ずしも全ての使用実ページ52のそれぞれに格納されているデータの全てついて、レイヤの変更を行うか否かの判定を行わなくともよくなる。
上述したように、最終データ更新日時キューポインタ62B,637は、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータの最終データ更新日時を管理するために利用されるキューポインタである。最終データアクセス日時キューポインタ62C,638は、対応プール42内の全ての使用実ページ52について、それぞれに格納されているデータの最終データアクセス日時を管理するために利用されるキューポインタである。これらのキューポインタ62B,637,62C,638の利用方法は、データ作成日時キューポインタ62A,636の利用方法と同じである。即ち、最終データ更新日時キューポインタ62B,637は、対応プール42内の全ての使用実ページ52を、そこに格納されるデータの最終データ更新日時が古いものから順番に繋いでいる。また、最終データアクセス日時キューポインタ62C,638は、対応プール42内の全ての使用実ページ52を、そこに格納されるデータの最終データアクセス日時が古いものから順番に繋いでいる。尚、データ作成日時キューポインタ62A,636と同様に、最終データ更新日時キューポインタ62B,637に加えて或いは最終データ更新日時キューポインタ62B,637に代えて、対応プール42内の全ての使用実ページ52を、そこに格納されるデータの最終データ更新日時が新しいものから順番に繋ぐキューポインタが用いられてもよい。また、最終データアクセス日時キューポインタ62C,638に加えて或いは最終データアクセス日時キューポインタ62C,638に代えて、対応プール42内の全ての使用実ページ52を、そこに格納されるデータの最終データアクセス日時が新しいものから順番に繋ぐキューポインタが用いられてもよい。
以下、本実施形態に係るストレージシステム3で行われる処理の詳細を説明する。以下の説明では、各処理を行う主体をCTL31として記載するが、各処理は、CTL31のホストアダプタ32の制御の下に行われてもよいし、CTL31の記憶装置アダプタ36の制御の下に行われてもよい。また、各処理は、CTL31内(例えば、ホストアダプタ32及び/又は記憶装置アダプタ36内)のマイクロプロセッサでコンピュータプログラムが実行されることで実現されるが、それに代えて、少なくとも一部がハードウェア回路で行われても良い。
図15は、リード要求を受けた場合にCTL31が行う処理のフローチャートである。
CTL31(ホストアダプタ32)が、ホスト1からリード要求を受信すると、図15の処理が開始される。リード要求では、リード対象の仮想VOL41と、リード対象のデータの格納先の仮想ページ51を示すLBAとが指定される。
まず、リード要求を受信したCTL31は、リード対象のデータがキャッシュメモリ34に記憶されているか否かを判定する(S101)。
リードデータがキャッシュメモリ34に記憶されている場合は(S101:YES)、CTL31は、S108の処理を行う。
一方、リード対象のデータがキャッシュメモリ34に記憶されていない場合は(S101:NO)、CTL31は、指定されたLBAによって特定される仮想ページ51(以下、図15及び図16の説明において「対象仮想ページ51」)に対して、いずれかの実ページ52が割り当てられているか否かを判定する(S102)。この判定は、仮想VOL管理テーブル61が参照されることにより行われる。即ち、CTL31は、仮想VOL管理テーブル61における、対象仮想ページ51に対応する割り当て元の実ページに、いずれかの実ページ51を示す情報が記録されていれば、実ページ52が割り当てられていると判定する。逆に、CTL31は、仮想VOL管理テーブル61における、対象仮想ページ51に対応する割り当て元の実ページに、実ページ51を示す情報が記録されていなければ、実ページ52が割り当てられていないと判定する。
対象仮想ページ51に対して実ページ52が割り当てられていない場合は(S102:NO)、CTL31は、全てが“0”とされたデータを、キャッシュメモリ34に格納する(S111)。
その後、CTL31は、キャッシュメモリ34に格納した、全てが“0”とされたデータを、リード対象のデータとして、ホスト1へ送信する(S112)。
その後、CTL31は、キャッシュメモリ34を解放する(S113)。即ち、CTL31は、キャッシュメモリ34に格納した、全てが“0”とされたデータを削除する。
一方、対象仮想ページ51に対して実ページ52が割り当てられている場合は(S102:YES)、CTL31は、リード対象のデータの格納先がテープ装置37Dであるか否か(即ち、対象仮想ページ51に割り当てられている実ページ52が、テーププール42Dに属しているか否か)を判定する(S103)。具体的には、CTL31は、仮想VOL管理テーブル61を参照して、仮想VOL管理テーブル61における、対象仮想ページ51に対応する割り当て元の実ページのプール種別614が、テーププール42Dを示していれば、リード対象のデータの格納先がテープ装置37Dであると判定する。逆に、CTL31は、仮想VOL管理テーブル61における、対象仮想ページ51に対応する割り当て元の実ページのプール種別614が、テーププール42D以外を示していれば、リード対象のデータの格納先がテープ装置37Dではないと判定する。
リード対象のデータの格納先がテープ装置37Dではない場合は(S103:NO)、CTL31は、リード対象のデータを、その格納先の記憶装置37から読み出してキャッシュメモリ34へ格納する(S104)。その後、CTL31は、S108の処理を行う。
一方、リード対象のデータの格納先がテープ装置37Dである場合は(S103:YES)、CTL31は、一時的にリード対象のデータを格納するためのHDD上の領域を確保する(S105)。
その後、CTL31は、リード対象のデータを、その格納先の記憶装置37(テープ装置37D)から読み出して、S105で確保した領域へ格納する(S106)。
その後、CTL31は、リード対象のデータを、S105で確保した領域から読み出して、キャッシュメモリ34へ格納する(S107)。
S108では、CTL31は、キャッシュメモリ34に格納したリード対象のデータを、ホスト1へ送信する。
その後、CTL31は、対象仮想ページ51に割り当てられている実ページ52を、判定対象の実ページ52として、レイヤ変更処理を行う(S109)。S109において行われるレイヤ変更処理の詳細については、後に図16を参照して説明する。
その後、CTL31は、キャッシュメモリ34を解放する(S110)。即ち、CTL31は、キャッシュメモリ34に格納したリード対象のデータを削除する。
図16は、図15におけるS109において行われるレイヤ変更処理のフローチャートである。
まず、CTL31は、プール管理テーブル62及び実ページ管理テーブル63の内容を更新する(201)。即ち、CTL31は、プール管理情報及び実ページ管理情報のうち、ホスト1がリード対象のデータにアクセスしたことによって変更が生じたものを、変更後の内容に更新する。具体的には、まず、CTL31は、リード対象のデータが格納されている実ページ52(判定対象の実ページ52)に関する実ページ管理情報における最終データアクセス日時を、現在の日時に更新する。また、CTL31は、判定対象の実ページ52に関する実ページ管理情報におけるアクセス回数に、“1”を加算する。また、CTL31は、判定対象の実ページ52が属するプール42(以下、図16の説明において「対象プール42」)における、最終データアクセス日時に関するキュー構造を変更する。即ち、CTL31は、判定対象の実ページ52が、キュー構造の最も後に繋がれるように、対象プール42に関するプール管理情報における最終データアクセス日時キューポインタ62C、及び、対象プール42に属する各実ページ52に関する実ページ管理情報における最終データアクセス日時キューポインタ638の値を変更する。
次に、CTL31は、リード対象のデータが、レイヤ変更ルールに合致するか否かを判定する(S202)。図16のレイヤ変更処理は、リード対象のデータのアクセス回数が増加したことを契機として行われるものである。従って、ここでは、レイヤアップルールに合致するか否かが判定される。具体的には、CTL31は、レイヤ変更ルールテーブル64から、対象プール42に関するレイヤアップルール(テーブル64におけるレイヤ変更ルール643)を取得する。ここでは、取得したレイヤアップルールが、アクセス回数が10000回を超えることであるとする。また、CTL31は、実ページ管理テーブル63を参照して、判定対象の実ページ52に対応するデータ特性634のうちのアクセス回数(即ち、リード対象のデータに関するアクセス回数)を取得する。そして、CTL31は、取得したアクセス回数が、取得したレイヤアップルールに合致するか否か(即ち、10000回を超えているか否か)を判定する。
リード対象のデータがレイヤ変更ルールに合致していない場合は(S202:NO)、CTL31は、図16の処理を終了する。即ち、この場合、リード対象のデータの格納先は、変更されない。
一方、リード対象のデータがレイヤ変更ルールに合致している場合は(S202:YES)、CTL31は、S203〜S206の処理を行って、リード対象のデータの格納先のレイヤを変更する。
即ち、まず、CTL31は、S202で取得したレイヤアップルールに合致した場合の変更後のプール42(テーブル64における変更後のプール644)を、レイヤ変更ルールテーブル64から取得する。そして、CTL31は、取得した変更後のプール42に属する実ページ52のうち未だどの仮想ページ51にも割り当てられていないもの(変更後の実ページ52)を選択する。そして、CTL31は、その選択した変更後の実ページ52の領域を確保する(S203)。選択する実ページ52の数は、仮想ページ51のサイズ、対象プール42の実ページ52のサイズ及び変更後のプール42の実ページ52のサイズによって異なる。詳細は、図6及び図7において説明した通りである。
その後、CTL31は、変更前の実ページ52(判定対象の実ページ52)から変更後の実ページ52へ、リード対象のデータをコピーする(S204)。
その後、CTL31は、変更前の実ページ52(判定対象の実ページ52)の領域を解放する(S205)。即ち、判定対象の実ページ52に格納されていたリード対象のデータが、削除される。S204及びS205により、判定対象の実ページ52から変更後の実ページ52への、リード対象のデータのマイグレーションが完了する。
その後、CTL31は、仮想VOL管理テーブル61、プール管理テーブル62及び実ページ管理テーブル63の内容を更新する(S206)。
具体的には、CTL31は、仮想VOL管理テーブル61を、以下のように更新する。即ち、CTL31は、仮想VOL管理テーブル61における、対象仮想ページ51に対応する割り当て元の実ページを、変更後の実ページ52を示す内容にする。これにより、対象仮想ページ51へ割り当てられる実ページ52が、判定対象の実ページ52から変更後の実ページ52に変更される。
リード対象のデータの格納先が変更されたことで、判定対象の実ページ52は、空き実ページ52となり、変更後の実ページ52は、使用実ページ52となる。そこで、CTL31は、プール管理テーブル64を、以下のように更新する。即ち、CTL31は、プール管理テーブル62における、対象プール42に対応する使用実ページ数626を、もとの値から判定対象の実ページ52(ここでは“1”)の数を減算した値に変更する。また、CTL31は、プール管理テーブル62における、対象プール42に対応する空き実ページ数626を、もとの値に判定対象の実ページ52の数(ここでは“1”)を加算した値に変更する。更に、CTL31は、プール管理テーブル62における、変更後のプール42に対応する使用実ページ数626を、もとの値に変更後の実ページ52の数を加算した値に変更する。また、CTL31は、プール管理テーブル62における、変更後のプール42に対応する空き実ページ数626を、もとの値から変更後の実ページ52の数を減算した値に変更する。
また、CTL31は、実ページ管理テーブル63を、以下のように更新する。即ち、CTL31は、対応プール42に関する実ページ管理テーブル63における、判定対象の実ページ52に対応する割り当て先の仮想ページ633及びデータ特性634の全ての値を、“null”(何も設定されていないことを意味するデータ)にする。また、CTL31は、変更後のプール42に関する実ページ管理テーブル63における、変更後の実ページ52に対応する割り当て先の仮想ページ633を、対象仮想ページ51を示す内容にする。また、CTL31は、変更後のプール42に関する実ページ管理テーブル63における、変更後の実ページ52に対応するデータ特性634に、それぞれの値を設定する。即ち、データ作成日時、最終データ更新日時及び最終データアクセス日時は、現在の日時とされる。また、アクセス回数は、1回とされる。
詳細な説明は省略するが、プール管理テーブル62における、対象プール42及び変更後のプール42のそれぞれに対応するキューポインタ628〜62Cの値、及び、対象プール42及び変更後のプール42のそれぞれに関する実ページ管理テーブル63におけるキューポインタ635〜638の値も、変更後のキュー構造を示す内容に更新される。
図17は、ライト要求を受けた場合にCTL31が行う処理のフローチャートである。
CTL31(ホストアダプタ32)が、ホスト1からライト要求を受信すると、図17の処理が開始される。ライト要求では、ライト対象の仮想VOL41と、ライト対象のデータの格納先の仮想ページ51を示すLBAとが指定される。
まず、ライト要求を受信したCTL31は、指定されたLBAによって特定される仮想ページ51(以下、図17の説明において「対象仮想ページ51」)に割り当てられている実ページ52(以下、図17の説明において「対象実ページ52」)に対応する領域が、キャッシュメモリ34上に確保されているか否かを判定する(S301)。
対象実ページ52に対応する領域がキャッシュメモリ34上に確保されている場合は(S301:YES)、CTL31は、S305の処理を行う。この場合は、データの上書きとなる。
一方、対象実ページ52に対応する領域がキャッシュメモリ34上に確保されていない場合は(S301:NO)、データの新規書き込みとなる。CTL31は、対象仮想ページ51に対して、いずれかの実ページ52が割り当てられているか否か(即ち、対象実ページ52が存在するか否か)を判定する(S302)。この判定は、図15におけるS102と同様にして行われる。
対象仮想ページ51に対して実ページ52が割り当てられている場合は(S302:YES)、CTL31は、S304の処理を行う。
一方、対象仮想ページ51に対して実ページ52が割り当てられていない場合は(S302:NO)、CTL31は、対象仮想ページ51に対する実ページ52の割り当てを行う(S303)。具体的には、例えば、CTL31は、ライト対象の仮想VOL41について予め設定されている初期プール42内の実ページ52のうち、未だどの仮想ページ51にも割り当てられていないものを選択する。そして、CTL31は、仮想VOL管理テーブル61における、対象仮想ページ51に対応する割り当て元の実ページを、選択した実ページ52を示す内容にする。これにより、この選択された実ページ52が、対象実ページ52となる。
S304では、CTL31は、実ページ管理テーブル63における、ライト対象のデータに関するデータ作成日時を更新する。具体的には、CTL31は、実ページ管理テーブル63における、対象実ページ52に対応するデータ特性634のデータ作成日時を、現在の日時とする。
S305では、CTL31は、対象実ページ52に対応するキャッシュメモリ34上の領域に、ライト対象のデータを格納する。キャッシュメモリ34上の領域に格納されたライト対象のデータは、その後、対象実ページ52に対応する記憶装置37上の領域へ格納される。
その後、CTL31は、S306〜S311の処理(レイヤ変更処理)を行う。これらの処理は、図16におけるS201〜S206と実質的に同じである。ここでは、対象実ページ52が、判定対象の実ページ52となる。また、ライト対象のデータが、図16の説明文中におけるリード対象のデータに相当する。更に、S306では、ライト対象のデータが格納されている実ページ52(判定対象の実ページ52)に関する実ページ管理情報については、最終データアクセス日時、アクセス回数に加えて、最終データ更新日時も更新される。また、キュー構造についても、最終データアクセス日時に関するキュー構造に加えて、最終データ更新日時に関するキュー構造も変更される。
図18は、定期的又は不定期的に行われるレイヤ変更処理のフローチャートである。
図18の処理は、定期的又は不定期的に行われる。尚、本実施形態では、下位レイヤから上位レイヤへの変更(レイヤアップ)は、上述した図15〜図17の処理において行われ(即ち、データへのアクセスがあった場合に行われ)、上位レイヤから下位レイヤへの変更(レイヤダウン)は、図18の処理において行われる。図18の処理において、レイヤアップルールに合致するか否かが判定されて、レイヤアップが行われてもよい。
まず、CTL31は、ストレージシステム3において形成されているプール42のうちの一つを選択する(S401)。以下、S401で選択されたプール42を「選択プール42」と呼ぶ。
次に、CTL31は、選択プール42内の使用実ページ52のうちの一つを選択する(S402)。以下、S402で選択された使用実ページ52を「選択使用実ページ52」と呼ぶ。
次に、CTL31は、選択使用実ページ52に格納されているデータ(以下、図18の説明において「対象データ」)が、レイヤ変更ルール(本実施形態では、レイヤダウンルール)に合致するか否かを判定する(S403)。具体的には、CTL31は、レイヤ変更ルールテーブル64から、選択プール42に関するレイヤダウンルール(テーブル64におけるレイヤ変更ルール643)を取得する。また、CTL31は、実ページ管理テーブル63を参照して、選択使用実ページ52に対応するデータ特性634(取得したレイヤダウンルールで考慮されるもの)を取得する。そして、CTL31は、取得したデータ特性が、取得したレイヤダウンルールに合致するか否かを判定する。
対象データがレイヤダウンルールに合致していない場合は(S403:NO)、CTL31は、S410の処理を行う。
一方、対象データがレイヤダウンルールに合致している場合は(S403:YES)、CTL31は、S403で取得したレイヤダウンルールに合致した場合の変更後のプール42(テーブル64における変更後のプール644)を、レイヤ変更ルールテーブル64から取得する。また、CTL31は、選択プール42内の実ページ52のサイズと変更後のプール42内の実ページ52のサイズとを、プール管理テーブル62から取得する。そして、CTL31は、選択プール42内の実ページ52のサイズと変更後のプール42内の実ページ52のサイズとが同じであるか否かを判定する(S404)。
選択プール42内の実ページ52のサイズと変更後のプール42内の実ページ52のサイズとが同じである場合は(S404:YES)、CTL31は、S406〜S409の処理を行って、対象データの格納先のレイヤを変更する。
一方、選択プール42内の実ページ52のサイズと変更後のプール42内の実ページ52のサイズとが異なっている場合は(S404:NO)、変更後のプール42内の実ページ52のサイズは、選択プール42内の実ページ52のサイズよりも大きくなる。何故ならば、レイヤダウンルールに合致した場合の変更後のプール42は、変更前のプール42(選択プール42)の属するレイヤの下位レイヤに属しているものだからである。従って、この場合、CTL31は、対象データに加えて、対象データに連続する、対象データと同一サイズの一以上のデータ(以下、それぞれのデータを、図18の説明において「連続データ」という)もが、S403で取得したレイヤダウンルールに合致するか否かを判定する(S405)。尚、連続データの数は、選択プール42の実ページ52のサイズ及び変更後のプール42の実ページ52のサイズによって異なる。詳細は、図8及び図9において説明した通りである。
連続データのいずれかがS403で取得したレイヤダウンルールに合致していない場合は(S405:NO)、CTL31は、S410の処理を行う。
一方、連続データの全てがS403で取得したレイヤダウンルールに合致している場合は(S405:YES)、CTL31は、S406〜S409の処理を行って、対象データの格納先のレイヤを変更する。
即ち、まず、CTL31は、S404で取得した変更後のプール42に属する実ページ52のうち未だどの仮想ページ51にも割り当てられていないもの(変更後の実ページ52)を選択する。そして、CTL31は、その選択した変更後の実ページ52の領域を確保する(S406)。
その後、CTL31は、変更前の実ページ52(選択使用実ページ52)から変更後の実ページ52へ、リード対象のデータをコピーする(S407)。
その後、CTL31は、変更前の実ページ52(選択使用実ページ52)の領域を解放する(S408)。即ち、選択使用実ページ52に格納されていた対象データが、削除される。S407及びS408により、選択使用実ページ52から変更後の実ページ52への、対象データのマイグレーションが完了する。
その後、CTL31は、仮想VOL管理テーブル61、プール管理テーブル62及び実ページ管理テーブル63の内容を更新する(S409)。具体的な内容は、S206と実質的に同じである。
CTL31は、選択プール42内の全ての使用実ページ52についてS402〜S409の処理を繰り返して行う(S410)。尚、CTL31は、上述したように、キューポインタ62B,62C,637,638を参照することで、最終データ更新日時或いは最終データアクセス日時が古いものから順に、使用実ページ52を選択することができる。そのため、レイヤダウンルールに合致しないデータが格納されている使用実ページ52が見つかった時点で、それ以降に選択される使用実ページ52に格納されているデータは、そのレイヤダウンルールに合致しないことがわかる。この場合は、選択プール42内の全ての使用実ページ52についてS402〜S409の処理を行う必要はない。
CTL31は、ストレージシステム3において形成されている全てのプール42についてS401〜S410の処理を繰り返して行う(S411)。
図19は、CTL31がユーザにプール42に関する情報を設定させるために表示する画面の一例である。
図19に示されるように、この画面7には、例えば、設定対象のプール42のプールIDを入力するための領域71と、設定対象のプール42内の実ページ52のページサイズを選択するためのラジオボタン72と、設定対象のプール42に登録する実領域を設定するための領域73と、設定対象のプール42に関するレイヤ変更ルールを設定するための領域74とが設けられる。
図20は、CTL31がユーザに仮想VOL41に関する情報を設定させるために表示する画面の一例である。
図20に示されるように、この画面8には、例えば、設定対象の仮想VOL41の仮想VOL
IDを入力するための領域81と、設定対象の仮想VOL41の容量を入力するための領域82と、設定対象の仮想VOL41について予め設定されている初期プール42のプールIDを入力するための領域83と、設定対象の仮想VOL41を構成する仮想ページ51の最小ページサイズを選択するためのラジオボタン84とが設けられる。
図21は、実ページ管理情報の管理方法の一例を示す。
実ページ管理情報は、キャッシュメモリ34及び/又は共有メモリ33(以下、「コントローラメモリ」と総称する)と、記憶装置37とのうちの少なくとも一方に記憶される。この図21によれば、所定の高さ以上に高いレイヤに属する種類のプール内の各実ページに対応した実ページ管理情報が、コントローラメモリに記憶され、所定の高さより低いレイヤに属する種類のプール内の各実ページに対応した実ページ管理情報が、記憶装置37に記憶される。記憶装置37は、どの種類のプールの基になっている記憶装置でも良い。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
本実施形態に係る計算機システムの構成例を示す図である。 記憶装置を基に形成される論理ボリュームの構成例を示す図である。 本実施形態において形成されるプールの種類とそれらのアクセス性能の関係とを示す図である。 レイヤ変更処理の概要を説明する図である。 仮想ページへの実ページの割り当ての具体例を示す図である。 プール2(SATA−HDDプール)からプール1(FC−HDDプール)へのレイヤの変更の一例を示す図である。 プール3(テーププール)からプール1(FC−HDDプール)へのレイヤの変更の一例を示す図である。 プール1(FC−HDDプール)からプール2(SATA−HDDプール)へのレイヤの変更の一例を示す図である。 プール1(FC−HDDプール)からプール3(テーププール)へのレイヤの変更の一例を示す図である。 仮想VOL管理テーブルの一例を示す図である。 プール管理テーブルの一例を示す図である。 実ページ管理テーブルの一例を示す図である。 レイヤ変更ルールテーブルの一例を示す図である。 プール管理情報及び実ページ管理情報によって示されるキュー構造の例である。 リード要求を受けた場合にCTLが行う処理のフローチャートである。 図15におけるS109において行われるレイヤ変更処理のフローチャートである。 ライト要求を受けた場合にCTLが行う処理のフローチャートである。 定期的又は不定期的に行われるレイヤ変更処理のフローチャートである。 CTLがユーザにプールに関する情報を設定させるために表示する画面の一例である。 CTLがユーザに仮想VOLに関する情報を設定させるために表示する画面の一例である。 実ページ管理情報の管理方法の一例を示す。
符号の説明
1…ホスト、2…通信ネットワーク、3…ストレージシステム

Claims (11)

  1. 複数種類のプールの基になる複数の記憶装置と、
    ライト要求又はリード要求であるI/O要求をホスト計算機から受け付け、そのI/O要求に従うI/O処理を行うコントローラと
    を備え、
    前記複数の記憶装置には、それぞれ性能の異なる複数種類の記憶装置が含まれており、
    前記複数種類のプールは、それぞれ異なるレイヤに属し、
    一以上の同種類の記憶装置を基に、その種類に対応した種類のプールが構成されており、
    各種プールは、プールの基になっている一以上の同種類の記憶装置に基づく複数の実ページで構成されており、
    前記コントローラは、
    複数の仮想ページで構成されている仮想的な論理ボリュームである仮想ボリューム内の仮想ページが指定されたライト要求を前記ホスト計算機から受けると、前記I/O処理として、前記指定された仮想ページに実ページが未割当てであれば、その仮想ページに、いずれかの種類のプールにおける未割当ての実ページを割り当て、割り当てた実ページに、前記受信したライト要求に従うライト対象のデータを書き込むI/O処理部と、
    所定の格納先変更条件に合致した場合に、或る仮想ページに割り当てられている対象の第一の実ページに格納されている対象のデータの格納先を、前記対象の第一の実ページを有する第一種のプールとは異なる種類の第二種のプール内の未割当ての第二の実ページへ変更する格納先変更処理を行う格納先変更処理部と、
    を備え、
    前記コントローラは、メモリを有し、
    前記メモリが、仮想ページに割り当てられている実ページに格納されているデータのデータ特性に関するデータ特性情報と、どの種類のプールについてどんな格納先変更条件に合致した場合にどの種類のプールにデータの格納先を変更するかを表す変更条件情報とを記憶し、
    各仮想ページは、仮想的な記憶領域であり、
    各実ページは、物理的な記憶領域であり、
    低いレイヤに属する種類のプール内の実ページのサイズは、高いレイヤに属する種類のプール内の実ページのサイズよりも大きく、
    各種プール内の実ページのサイズは、仮想ページのサイズのN倍であり(Nは自然数)、
    前記格納先変更処理部は、前記格納先変更処理として、下記(2−1)及び(2−2)、
    (2−1)前記変更条件情報を参照し、前記対象のデータのデータ特性が、前記第一種のプールに対応する格納先変更条件に合致するか否かを判定し、
    (2−2)前記(2−1)の判定の結果が肯定的である場合、前記対象の第一の実ページから、前記変更条件情報から特定される、前記第一種のプールに対応する格納先である第二種のプール内の未割当ての第二の実ページにマイグレーションし、
    を行い、
    前記(2−1)において、前記第一種のプールが属するレイヤが、前記第二種のプールが属するレイヤよりも低いが故に、前記第一の実ページのサイズが、前記第二の実ページのサイズのP倍(Pは2以上の自然数)であれば、前記(2−2)として、前記格納先変更処理部は、下記(A−1)乃至(A−3)を実行し、
    (A−1)前記第二種のプールから未割当てのP個の第二の実ページを選択し、選択されたP個の第二の実ページに、前記対象のデータを構成するP個の対象データ部分をマイグレーションする;
    (A−2)前記対象の第一の実ページの割当先となっている一以上の対象の仮想ページに対する前記対象の第一の実ページの割当てを解除する;
    (A−3)前記対象のデータの連続性が保たれるように前記P個の第二の実ページを前記一以上の対象の仮想ページに割り当てる;
    前記(2−1)において、前記第一種のプールが属するレイヤが、前記第二種のプールが属するレイヤよりも高いが故に、前記第二の実ページのサイズが、前記第一の実ページのサイズのQ倍(Qは2以上の自然数)であれば、前記格納先変更処理部は、前記対象の第一の実ページの割当先となっている一以上の対象の仮想ページを含んだ複数の対象の仮想ページのうちの、前記一以上の対象の仮想ページ以外の対象の仮想ページに割当てられている、(Q−1)個の第一の実ページに記憶されているデータのデータ特性についても、前記(2−1)の判定を行い、(Q−1)個の第一の実ページに記憶されている全てのデータについて、前記(2−1)の判定の結果が肯定的であれば、前記格納先変更処理部は、前記(2−2)として、下記(B−1)乃至(B−3)を実行し、
    (B−1)前記第二種のプールから未割当ての第二の実ページを選択し、選択された第二の実ページに、前記Q個の第一の実ページに記憶されている全てのデータをマイグレーションする;
    (B−2)前記複数の対象の仮想ページに対する前記Q個の第一の実ページの割当てを解除する;
    (B−3)前記(B−1)で選択された第二の実ページを前記複数の対象の仮想ページに割り当てる
    ストレージシステム。
  2. 各種プール内の実ページ毎に、実ページに関する情報を含んだ実ページ管理情報があり、
    前記メモリは、所定の高さ以上に高いレイヤに属する種類のプール内の各実ページに対応した実ページ管理情報を記憶し、
    前記複数の記憶装置のいずれかが、所定の高さより低いレイヤに属する種類のプール内の各実ページに対応した実ページ管理情報を記憶する、
    請求項1記載のストレージシステム。
  3. 前記格納先変更処理部は、前記格納先変更処理を、定期的に、及び、前記仮想ボリュームを指定したI/O要求に従うI/O処理を前記I/O処理部が実行した後に行う、
    請求項2記載のストレージシステム。
  4. 複数種類のプールの基になる複数の記憶装置と、
    ライト要求又はリード要求であるI/O要求をホスト計算機から受け付け、そのI/O要求に従うI/O処理を行うコントローラと
    を備え、
    前記複数の記憶装置には、それぞれ性能の異なる複数種類の記憶装置が含まれており、
    前記複数種類のプールは、それぞれ異なるレイヤに属し、
    一以上の同種類の記憶装置を基に、その種類に対応した種類のプールが構成されており、
    各種プールは、プールの基になっている一以上の同種類の記憶装置に基づく複数の実ページで構成されており、
    前記コントローラは、
    複数の仮想ページで構成されている仮想的な論理ボリュームである仮想ボリューム内の仮想ページが指定されたライト要求を前記ホスト計算機から受けると、前記I/O処理として、前記指定された仮想ページに実ページが未割当てであれば、その仮想ページに、いずれかの種類のプールにおける未割当ての実ページを割り当て、割り当てた実ページに、前記受信したライト要求に従うライト対象のデータを書き込むI/O処理部と、
    所定の格納先変更条件に合致した場合に、或る仮想ページに割り当てられている対象の第一の実ページに格納されている対象のデータの格納先を、前記対象の第一の実ページを有する第一種のプールとは異なる種類の第二種のプール内の未割当ての第二の実ページへ変更する格納先変更処理を行う格納先変更処理部と、
    を備え、
    前記コントローラは、記憶資源を有し、
    前記記憶資源は、
    前記仮想ボリュームを構成する仮想ページに割り当てられている実ページのそれぞれについて、当該実ページに格納されているデータのデータ特性を示すデータ特性情報と、
    どの種類のプールについてどんな格納先変更条件に合致した場合にどの種類のプールにデータの格納先を変更するかを表す変更条件情報と
    を記憶し、
    各仮想ページは、仮想的な記憶領域であり、
    各実ページは、物理的な記憶領域であり、
    実ページのサイズは、プールの種類によって異なり、
    前記格納先変更処理は、
    (5−1)前記対象のデータのデータ特性が、前記第一種のプールの種類に対応する格納先変更条件に合致するか否かを判定し、
    (5−2)前記判定の結果が肯定的である場合、前記対象のデータを、第一の実ページから第二の実ページへマイグレーションする、
    ストレージシステム。
  5. 前記第一の実ページのサイズが前記第二の実ページのサイズよりも大きい場合、前記格納先変更処理部は、前記(5−2)において、P個(Pは2以上の整数)の第二の実ページを選択し、前記対象のデータを構成するP個の対象データ部分をそれぞれ前記P個の第二の実ページにマイグレーションし、
    前記Pの値は、前記第一の実ページのサイズと前記第二の実ページのサイズとの関係に基づく値である、
    請求項4記載のストレージシステム。
  6. 前記第一の実ページのサイズが前記第二の実ページのサイズよりも小さい場合、前記格納先変更処理部は、前記(5−1)において、前記対象のデータに加えて、前記対象の仮想ページに連続する一以上の仮想ページのそれぞれに割り当てられている一以上の他の第一の実ページに格納されている一以上のデータのそれぞれについても、データ特性が、前記第一のプールの種類に対応する格納先変更条件に合致するか否かを判定し、
    前記格納先変更処理部は、前記対象のデータについての判定結果及び前記一以上のデータについてのそれぞれの判定の結果の全てが肯定的である場合に、前記(5−2)において、前記第一のデータ及び前記一以上のデータを、前記第二の実ページへマイグレーションする、
    請求項4又は5に記載のストレージシステム。
  7. 性能の低い種類のプールほど、当該プールに登録されている実ページのサイズが、大きく設定される、
    請求項4〜6のうちのいずれかに記載のストレージシステム。
  8. 前記指定された仮想ページに割り当てられている実ページである対象実ページに対してI/O処理が行われた後、前記I/O処理部が、前記対象実ページに格納されているデータに関するデータ特性情報を更新し、その後、前記格納先変更処理部が、前記対象実ページに格納されているデータについて、前記(5−1)を実行する、
    請求項4〜7のうちのいずれかに記載のストレージシステム。
  9. 前記複数種類の記憶装置は、それぞれアクセス性能が異なっており、
    前記複数種類のプールは、前記記憶装置の種類のそれぞれに対応してそれぞれアクセス性能が異なっており、
    前記データ特性情報は、データに最後にアクセスした日時である最終データアクセス日時であり、
    前記格納先変更条件は、前記第一のデータが現在日時から所定の期間以上アクセスされていないことであり、
    前記第二のプールのアクセス性能は、前記第一のプールのアクセス性能よりも低く、
    前記格納先変更処理部は、
    前記(5−1)において、前記対象のデータに関する最終データアクセス日時から現在日時までの期間が前記所定の期間以上アクセスされていないかどうかを判定し、
    前記(5−2)において、前記対象のデータに関する最終データアクセス日時から現在日時までの期間が前記所定の期間以上アクセスされていない場合、前記対象のデータを、第一の実ページから第二の実ページへマイグレーションする、
    請求項4〜8のうちのいずれかに記載のストレージシステム。
  10. 前記格納先変更処理部は、前記複数のプールの中から選択された対象プールに登録されている実ページであって、前記仮想ページに対して割り当てられている、複数の対象実ページの中から選択された一つを前記第一の実ページとして、前記複数の対象実ページのそれぞれについて前記格納先変更処理を繰り返して行い、
    前記データ特性情報は、前記複数の対象実ページを、それぞれに格納されているデータに関する最終データアクセス日時が古い順に管理されており、
    前記格納先変更処理部は、前記データ特性情報の順序通りに、複数の対象実ページの中から前記第一の実ページを選択して前記格納先変更処理を行い、前記第一のデータが前記所定の条件に合致しなかった時点で前記格納先変更処理を終了し、選択されなかった対象実ページについては、前記格納先変更処理を行わない、
    請求項9記載のストレージシステム。
  11. 各種プール内の実ページ毎に、実ページに関する情報を含んだ実ページ管理情報があり、
    前記コントローラが、メモリを有し、
    前記メモリは、所定の高さ以上に高いレイヤに属する種類のプール内の各実ページに対応した実ページ管理情報を記憶し、
    前記複数の記憶装置のいずれかが、所定の高さより低いレイヤに属する種類のプール内の各実ページに対応した実ページ管理情報を記憶する、
    4〜10のうちのいずれかに記載のストレージシステム。
JP2008281120A 2008-10-31 2008-10-31 階層型ストレージシステム Expired - Fee Related JP4727705B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008281120A JP4727705B2 (ja) 2008-10-31 2008-10-31 階層型ストレージシステム
US12/351,339 US8205054B2 (en) 2008-10-31 2009-01-09 Hierarchical storage system
US13/473,647 US20120233437A1 (en) 2008-10-31 2012-05-17 Hierarchical storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008281120A JP4727705B2 (ja) 2008-10-31 2008-10-31 階層型ストレージシステム

Publications (2)

Publication Number Publication Date
JP2010108341A JP2010108341A (ja) 2010-05-13
JP4727705B2 true JP4727705B2 (ja) 2011-07-20

Family

ID=42132898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008281120A Expired - Fee Related JP4727705B2 (ja) 2008-10-31 2008-10-31 階層型ストレージシステム

Country Status (2)

Country Link
US (2) US8205054B2 (ja)
JP (1) JP4727705B2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234316B2 (en) * 2008-09-30 2012-07-31 Microsoft Corporation Nested file system support
KR101023883B1 (ko) * 2009-02-13 2011-03-22 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US9134922B2 (en) 2009-03-12 2015-09-15 Vmware, Inc. System and method for allocating datastores for virtual machines
WO2011053318A1 (en) * 2009-10-30 2011-05-05 Hewlett-Packard Development Company, L.P. Hard disk drives having different rotational speeds
JP5594647B2 (ja) * 2010-08-10 2014-09-24 日本電気株式会社 ストレージ装置及びその制御方法
US8356147B2 (en) 2010-08-20 2013-01-15 Hitachi, Ltd. Tiered storage pool management and control for loosely coupled multiple storage environment
US8954688B2 (en) 2010-10-06 2015-02-10 International Business Machines Corporation Handling storage pages in a database system
US20120110259A1 (en) * 2010-10-27 2012-05-03 Enmotus Inc. Tiered data storage system with data management and method of operation thereof
JP5523292B2 (ja) * 2010-12-03 2014-06-18 株式会社日立製作所 シンプロビジョニングが適用された記憶制御装置
EP2583163A1 (en) * 2010-12-28 2013-04-24 Hitachi, Ltd. Storage system, management method of the storage system, and program
JP5632082B2 (ja) 2011-02-02 2014-11-26 株式会社日立製作所 ストレージ装置及びデータ管理方法
US20120260051A1 (en) * 2011-03-01 2012-10-11 Hitachi, Ltd. Computer system, management system and data management method
US20120254583A1 (en) * 2011-03-31 2012-10-04 Hitachi, Ltd. Storage control system providing virtual logical volumes complying with thin provisioning
WO2012137249A1 (en) * 2011-04-05 2012-10-11 Hitachi, Ltd. Storage apparatus and volume management method
WO2012164671A1 (ja) 2011-05-30 2012-12-06 株式会社日立製作所 計算機システムの管理装置及び管理方法
US8706963B2 (en) 2011-06-02 2014-04-22 Hitachi, Ltd. Storage managing system, computer system, and storage managing method
US8775774B2 (en) 2011-08-26 2014-07-08 Vmware, Inc. Management system and methods for object storage system
US8650359B2 (en) 2011-08-26 2014-02-11 Vmware, Inc. Computer system accessing object storage system
US8775773B2 (en) * 2011-08-26 2014-07-08 Vmware, Inc. Object storage system
US8595460B2 (en) 2011-08-26 2013-11-26 Vmware, Inc. Configuring object storage system for input/output operations
US8769174B2 (en) 2011-08-29 2014-07-01 Vmware, Inc. Method of balancing workloads in object storage system
US8677085B2 (en) 2011-08-29 2014-03-18 Vmware, Inc. Virtual machine snapshotting in object storage system
JP5209096B2 (ja) * 2011-09-07 2013-06-12 株式会社東芝 リモートアクセスシステム、電子機器およびリモートアクセス処理方法
WO2013042174A1 (en) * 2011-09-22 2013-03-28 Hitachi, Ltd. Computer system and storage management method
US9063768B2 (en) 2011-10-10 2015-06-23 Vmware, Inc. Method and apparatus for comparing configuration and topology of virtualized datacenter inventories
US9128819B2 (en) * 2011-11-18 2015-09-08 Hitachi, Ltd. Storage system and management method therefor
WO2013103005A1 (ja) 2012-01-05 2013-07-11 株式会社日立製作所 計算機システムの管理装置及び管理方法
US8880804B2 (en) 2012-03-21 2014-11-04 Hitachi, Ltd. Storage apparatus and data management method
US8825724B2 (en) * 2012-03-29 2014-09-02 Lsi Corporation File system hinting
JP6055924B2 (ja) * 2013-01-07 2016-12-27 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US9009204B2 (en) * 2013-04-04 2015-04-14 Hitachi, Ltd. Storage system
US20140310493A1 (en) * 2013-04-11 2014-10-16 International Business Machines Corporation Migrating data across storages with dissimilar allocation sizes
US10582340B2 (en) * 2013-07-08 2020-03-03 International Business Machines Corporation Allocation of resources in a networked computing environment based on physical location mapping
KR101593012B1 (ko) * 2013-12-24 2016-02-18 주식회사 케이티 계층형 스토리지 제어 장치 및 방법
CN104969170B (zh) 2014-01-31 2017-09-08 株式会社东芝 层次化存储系统、存储控制器以及代替层次间的数据移动的方法
JP2015170160A (ja) * 2014-03-07 2015-09-28 富士通株式会社 情報処理システム,情報処理装置,情報処理プログラム及び情報処理方法
US9715353B2 (en) 2014-09-16 2017-07-25 International Business Machines Corporation Data set management
CN107037975B (zh) * 2015-07-15 2019-12-03 中兴通讯股份有限公司 卷的空间分配方法和装置
US11064727B2 (en) 2019-02-06 2021-07-20 Altria Client Services Llc Sensor apparatuses and systems
WO2022038874A1 (ja) 2020-08-21 2022-02-24 富士フイルム株式会社 情報処理装置、情報処理方法、情報処理プログラム、及び磁気テープカートリッジ
CN116521053A (zh) 2022-01-21 2023-08-01 戴尔产品有限公司 用于管理盘的方法、电子设备和计算机程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003513352A (ja) * 1999-10-26 2003-04-08 ストレイジ・テクノロジー・コーポレイション データページ・アトミックユニットを使用する仮想テープボリューム管理装置
JP2006099748A (ja) * 2004-08-30 2006-04-13 Hitachi Ltd ストレージシステム及びデータ再配置制御装置。
JP2008084053A (ja) * 2006-09-28 2008-04-10 Hitachi Ltd 仮想化システム及び領域割当て制御方法
JP2008112276A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd 再配置システムおよび再配置方法
JP2008112254A (ja) * 2006-10-30 2008-05-15 Fuji Xerox Co Ltd 電子ファイル管理プログラム及び電子ファイル管理装置、電子ファイル管理システム
JP2009538482A (ja) * 2006-05-24 2009-11-05 コンペレント・テクノロジーズ Raid管理、再割振り、およびリストライピングのためのシステムおよび方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US7136883B2 (en) * 2001-09-08 2006-11-14 Siemens Medial Solutions Health Services Corporation System for managing object storage and retrieval in partitioned storage media
JP2005018233A (ja) * 2003-06-24 2005-01-20 Fujitsu Ltd 仮想記憶媒体に記録されたデータをバックアップする方法及び、仮想記憶媒体に記録されたデータのバックアップ装置
JP4806556B2 (ja) 2005-10-04 2011-11-02 株式会社日立製作所 ストレージシステム及び構成変更方法
JP2007280089A (ja) 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
JP4757165B2 (ja) 2006-10-04 2011-08-24 株式会社日立製作所 計算機システム、データ移行監視方法及びデータ移行監視プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003513352A (ja) * 1999-10-26 2003-04-08 ストレイジ・テクノロジー・コーポレイション データページ・アトミックユニットを使用する仮想テープボリューム管理装置
JP2006099748A (ja) * 2004-08-30 2006-04-13 Hitachi Ltd ストレージシステム及びデータ再配置制御装置。
JP2009538482A (ja) * 2006-05-24 2009-11-05 コンペレント・テクノロジーズ Raid管理、再割振り、およびリストライピングのためのシステムおよび方法
JP2008084053A (ja) * 2006-09-28 2008-04-10 Hitachi Ltd 仮想化システム及び領域割当て制御方法
JP2008112276A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd 再配置システムおよび再配置方法
JP2008112254A (ja) * 2006-10-30 2008-05-15 Fuji Xerox Co Ltd 電子ファイル管理プログラム及び電子ファイル管理装置、電子ファイル管理システム

Also Published As

Publication number Publication date
US20120233437A1 (en) 2012-09-13
JP2010108341A (ja) 2010-05-13
US8205054B2 (en) 2012-06-19
US20100115222A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
JP4727705B2 (ja) 階層型ストレージシステム
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
US9916248B2 (en) Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache
US8762639B2 (en) Storage system, storage apparatus, and optimization method of storage areas of storage system
JP4890033B2 (ja) 記憶装置システム及び記憶制御方法
US8984248B2 (en) Data migration system and data migration method
US8832371B2 (en) Storage system with multiple flash memory packages and data control method therefor
US7441096B2 (en) Hierarchical storage management system
US9052823B2 (en) Storage system and data management method with application specific storage tiers
JP5502232B2 (ja) ストレージシステム、及びその制御方法
US7587553B2 (en) Storage controller, and logical volume formation method for the storage controller
US9921781B2 (en) Storage system including multiple storage apparatuses and pool virtualization method
US20120011329A1 (en) Storage apparatus and storage management method
WO2015162758A1 (ja) ストレージシステム
JP2012533100A (ja) プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法
JP2009104421A (ja) ストレージアクセス装置
US9361033B2 (en) Compound storage system and storage control method
JP6995728B2 (ja) ストレージ装置、管理方法及びプログラム
JP2008299559A (ja) ストレージシステム及びストレージシステムにおけるデータ移行方法
WO2019026221A1 (ja) ストレージシステム及びストレージ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110413

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees