JP6011153B2 - ストレージシステム、ストレージ制御方法およびストレージ制御プログラム - Google Patents

ストレージシステム、ストレージ制御方法およびストレージ制御プログラム Download PDF

Info

Publication number
JP6011153B2
JP6011153B2 JP2012183384A JP2012183384A JP6011153B2 JP 6011153 B2 JP6011153 B2 JP 6011153B2 JP 2012183384 A JP2012183384 A JP 2012183384A JP 2012183384 A JP2012183384 A JP 2012183384A JP 6011153 B2 JP6011153 B2 JP 6011153B2
Authority
JP
Japan
Prior art keywords
data
storage area
storage
control unit
write
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
JP2012183384A
Other languages
English (en)
Other versions
JP2014041471A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012183384A priority Critical patent/JP6011153B2/ja
Priority to US13/932,082 priority patent/US9158478B2/en
Publication of JP2014041471A publication Critical patent/JP2014041471A/ja
Application granted granted Critical
Publication of JP6011153B2 publication Critical patent/JP6011153B2/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/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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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

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

本発明は、ストレージシステム、ストレージ制御方法およびストレージ制御プログラムに関する。
HDD(Hard Disk Drive)は、比較的大容量のストレージ装置として広く使用されている。特に、ニアラインディスク(Near Line Disk)と呼ばれるHDDは、アクセス速度は劣るものの、データ容量当たりの価格が安いことで知られる。一方、近年では、他の種類のストレージ装置としてSSD(Solid State Drive)が普及しつつある。SSDは、HDDと比較して、データ容量当たりの価格が高いものの、特にランダムアクセス性能が高いという特徴がある。
このような高い性能を生かしたSSDの様々な使用方法が考えられている。例えば、SSDを複数のHDDの共用キャッシュとして使用したシステムがある。また、シーケンシャルアクセスか、あるいはランダムアクセスかというアクセス特性に応じて、HDDまたはSSDのいずれかに対してデータを選択的に書き込むようにしたシステムもある。
特開2010−191672号公報 特開2008−015623号公報 特表2011−515727号公報
ところで、多くのストレージシステムでは、RAID(Redundant Arrays of Inexpensive Disks)技術を用いて、データが2つ以上の記憶装置に冗長化されるような記録制御が行われる。特に、RAIDレベルとしてRAID−4,5,6などを用いて制御されるストレージシステムは、多数の記憶装置を備えることになり、必要な記憶容量が大きくなる。
一方、RAID技術を用いたストレージシステムは、記憶装置としてHDDとSSDのいずれも搭載可能であるが、SSDが搭載されることでアクセス速度を高めることができる。しかしながら、SSDを用いた大容量の記憶領域が必要になることで、ストレージシステムのコストが増大するという問題がある。
1つの側面では、本発明は、低コストで記憶装置のアクセス性能を向上させたストレージシステム、ストレージ制御方法およびストレージ制御プログラムを提供することを目的とする。
1つの案では、第1の記憶装置と、第1の記憶装置よりアクセス速度の高い第2の記憶装置と、第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するストレージ制御装置と、を備えるストレージシステムが提供される。このストレージシステムにおいて、ストレージ制御装置は、判定部および制御部を有する。判定部は、論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定する。制御部は、書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを論理記憶領域に書き込み、書き込みのパターンがランダムアクセスである場合には、第2の記憶装置の記憶領域を仮想化した仮想記憶領域に書き込みデータを書き込む。
また、1つの案では、上記のストレージ制御装置と同様の処理が実行されるストレージ制御方法が提供される。
さらに、1つの案では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1態様によれば、ストレージシステム、ストレージ制御方法およびストレージ制御プログラムにおいて、低コストで記憶装置のアクセス性能を向上させることができる。
第1の実施の形態に係るストレージシステムの構成例および動作例を示す図である。 第2の実施の形態に係るストレージシステムの全体構成例を示す図である。 CMのハードウェア構成例を示す図である。 ボリュームの構成例を示す図である。 ランダムデータの書き込み処理を示す図である。 シーケンシャルデータの書き込み処理を示す図である。 SSDVOLに格納されたランダムデータのマージ処理を示す図である。 SSDVOLとNLVOLとの間のデータ転送の他の例を示す図である。 CMが備える処理機能の例を示すブロック図である。 RAID管理テーブルに登録されるデータの例を示す図である。 格納場所管理テーブルに登録されるデータの例を示す図である。 状態管理テーブルに登録されるデータの例を示す図である。 仮想領域管理テーブルに登録されるデータの例を示す図である。 書き込み処理の例を示すフローチャートである。 読み出し処理の例を示すフローチャートである。 マージ処理の例を示すフローチャートである。 アクセス頻度に応じたSSD解放処理の例を示すフローチャートである。 NLVOLからSSDVOLへのコピー処理の例を示すフローチャートである。 SSDの残容量に応じたSSD解放処理の例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例および動作例を示す図である。ストレージシステム1は、ストレージ制御装置10と、1つ以上の記憶装置21(第1の記憶装置)と、記憶装置21よりアクセス性能の高い記憶装置22(第2の記憶装置)とを備える。
ストレージ制御装置10は、1つ以上の記憶装置21の記憶領域によって実現される論理記憶領域31に対するアクセス要求を受け付けて、論理記憶領域31に対するデータの読み書きを制御する。なお、論理記憶領域31が複数の記憶装置21の記憶領域によって実現される場合、ストレージ制御装置10は、例えば、論理記憶領域31に対するデータの書き込みを、データが異なる記憶装置21に冗長化されるように制御する。例えば、ストレージ制御装置10は、RAID−1、RAID−4、RAID−5、RAID−6、RAID−(1+0)などのRAID技術を用いて、論理記憶領域31に対するデータの読み書きを制御する。
記憶装置22は、上記のように、記憶装置21よりもアクセス速度の高い記憶装置である。例えば、記憶装置21がHDDである場合、記憶装置22としてSSDを用いることができる。記憶装置22の容量当たりの価格は、記憶装置21の容量当たりの価格より高額である。
ストレージ制御装置10は、記憶装置22の記憶領域を仮想化した仮想記憶領域32を作成し、仮想記憶領域32に対するデータの読み書きを制御する。ストレージ制御装置10は、例えば、記憶装置22の空き記憶領域から、必要な分だけの記憶領域を仮想記憶領域32に対して随時割り当てることができる。
ストレージ制御装置10は、判定部11および制御部12を有する。判定部11および制御部12の処理は、例えば、ストレージ制御装置10が備えるプロセッサが所定のプログラムを実行することによって実現される。
判定部11は、論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスか、あるいはランダムアクセスかを判定する。
制御部12は、判定された書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを論理記憶領域31に書き込む。この場合、少なくとも1つの記憶装置21に対するデータの書き込みが行われることになる。
一方、制御部12は、判定された書き込みのパターンがランダムアクセスである場合には、書き込みデータを仮想記憶領域32に書き込む。これにより、書き込みデータを論理記憶領域31に書き込む場合と比較して、書き込みに要する時間が短縮され、全体として書き込み性能が向上する。
上記のように、ストレージ制御装置10は、ランダムアクセスの際の書き込みデータを、アクセス性能が高く容量当たりのコストが高い記憶装置22を仮想化した仮想記憶領域32に書き込む。このため、ランダムアクセスの際のデータの書き込み先として、論理記憶領域31と同じ容量分の記憶装置22を用意しておく必要がない。従って、ストレージ制御装置10は、低コストでアクセス性能を向上させることができる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの全体構成例を示す図である。ストレージシステム100は、CM(Controller Module)101と、複数のHDD210と、少なくとも1台のSSD220とを備える。なお、本実施の形態では例として、HDD210はすべて低コストのニアラインディスクであるものとする。以下、HDD210のことを「NLディスク210」と呼称する。なお、CM101は、処理の信頼性を向上させるために、ストレージシステム100内に複数設けられて冗長化されてもよい。
CM101には、ホストサーバ300が接続されている。CM101は、ホストサーバ300からのI/O(In/Out)要求に応じて、NLディスク210やSSD220に対するI/O処理を行う。また、CM101は、NLディスク210によって実現される物理記憶領域をRAIDによって管理し、これらの物理記憶領域へのアクセスを制御する。
図3は、CMのハードウェア構成例を示す図である。
CM101は、プロセッサ111によって装置全体が制御されている。プロセッサ111は、マルチプロセッサであってもよい。プロセッサ111は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ111は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ111には、メモリ112および複数の周辺機器が、バス115を介して接続されている。メモリ112は、プロセッサ111に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを記憶する。
プロセッサ111には、周辺機器の例として、CA(Channel Adapter)113およびDI(Drive Interface)114が接続されている。
CA113は、ホストサーバ300とCM101との間でデータを送受信するインタフェース処理を実行する。CA113とホストサーバ300とは、例えば、FC(Fibre Channel)、iSCSI(Internet Small Computer System Interface)、FCoE(FC over Ethernet,Ethernet:登録商標)、SAS(Serial Attached SCSI)などのインタフェース規格に従って通信する。
DI114は、ストレージシステム100内のNLディスク210やSSD220との間でデータを送受信するインタフェース処理を実行する。DI114とNLディスク210およびSSD220とは、例えば、SASなどのインタフェース規格に従って通信する。
以上のハードウェア構成によって、CM101の処理機能が実現される。なお、ホストサーバ300も、図3に示すようなハードウェア構成を有するコンピュータとして実現可能である。
次に、CM101によるアクセス制御処理について詳しく説明する。まず、図4は、ボリュームの構成例を示す図である。
図4に示すニアラインボリュームNLVOL#1〜#5(以下、「NLVOL#1〜#5」と略称する)は、ホストサーバ300からのアクセスの対象となる論理ボリュームであり、CM101によって設定される。NLVOL#1〜#5は、ストレージシステム100に搭載される複数のNLディスク(図2のNLディスク210)の実記憶領域を用いて実現される論理ボリュームである。そして、CM101は、NLVOL#1〜#5へのデータの書き込みを、データが異なるNLディスクに冗長化されるように制御する。
本実施の形態では例として、NLVOL#1〜#5は、NLディスク211〜216の実記憶領域を用いて実現される。また、NLディスク211〜216は、例として、RAID−5によって制御されるRAIDグループを構成し、NLVOL#1〜#5に書き込まれるデータは、CM101の制御によってパリティを用いて冗長化される。
なお、NLディスク211〜216のそれぞれの記憶容量を1TB(テラバイト)とすると、NLVOL#1〜#5の合計の記憶容量は、NLディスク211〜216におけるパリティの記憶領域を除く5TBとなる。NLVOL#1〜#5は、例えば、NLディスク211〜216の実記憶領域によって実現される5TBの論理ボリュームLV#1を、分割することによって得られる。
本実施の形態では、NLVOL#1〜#5は、論理ボリュームLV#1を先頭から1TBずつ分割することで得られるものとする。CM101は、NLVOL#1〜#5のそれぞれにおける論理アドレスの指定を受けると、指定された論理アドレスを論理ボリュームLV#1の論理アドレスに変換する。CM101はさらに、変換された論理アドレスと、実記憶領域を実現するNLディスク211〜216の数(6台)と、ストライプサイズとに基づいて、アクセス先の物理アドレスを決定する。これにより、CM101は、NLVOL#1〜#5のそれぞれにおける論理アドレスの指定を受けると、指定された論理アドレスからアクセス先の物理アドレスを一意に決定できる。
以上のように、アクセス対象の論理記憶領域の実記憶領域を実現する記憶装置として、HDD、特に、アクセス速度は比較的低いもののデータ容量当たりのコストが低いNLディスクを使用することで、記憶装置にかかるコストを低減することができる。特に、論理記憶領域に書き込むデータをRAIDを用いて冗長化する場合には、論理記憶領域の容量より大きな実記憶領域が必要となり、実記憶領域を実現する記憶装置の台数も増加する。上記のように、RAIDグループを構成する記憶装置としてHDD、好適にはNLディスクを使用することで、ストレージシステム100に搭載される記憶装置の台数が増加することによるコストの上昇を抑制することができる。
ところで、CM101は、ホストサーバ300から書き込みを要求された書き込みデータを、NLVOL#1〜#5のいずれかに書き込む際に、書き込みパターンがシーケンシャルアクセスかランダムアクセスかを判定する。以下、書き込みパターンがシーケンシャルアクセスである場合の書き込みデータを「シーケンシャルデータ」と呼ぶ。また、書き込みパターンがランダムアクセスである場合の書き込みデータを「ランダムデータ」と呼ぶ。
CM101は、書き込みパターンの判定結果に基づき、シーケンシャルデータをNLVOL#1〜#5に書き込む。この場合、NLディスク211〜216に対する書き込み動作が行われる。一方、CM101は、ランダムデータを、NLVOL#1〜#5の代わりにSSD221に書き込む。これにより、ランダムデータをNLVOL#1〜#5に書き込む場合と比較して、書き込みに要する時間が短縮される。なお、SSD221は、ストレージシステム100に搭載されたSSD220(図2に参照)の1つである。
CM101は、ランダムデータの書き込み先として、図4に示すSSDボリュームSSDVOL#1〜#5(以下、「SSDVOL#1〜#5」と略称する)を設定する。SSDVOL#1〜#5は、NLVOL#1〜#5にそれぞれ対応付けて生成される。例えば、CM101は、書き込み先がNLVOL#1であるランダムデータをSSDVOL#1に書き込み、書き込み先がNLVOL#2であるランダムデータをSSDVOL#2に書き込む。
また、CM101は、SSDVOL#1〜#5に書き込んだランダムデータを、所定のタイミングで、NLVOL#1〜#5のうちの対応するボリューム内の対応する位置に書き込み、ランダムデータをミラーリングする。例えば、CM101は、SSDVOL#1に書き込んだランダムデータを、NLVOL#1における対応する位置に書き込む。
SSDVOL#1〜#5は、SSD221を仮想化した仮想ボリュームであり、CM101は、SSDVOL#1〜#5のそれぞれに対して、SSD221の空き領域を必要に応じて割り当てる。従って、SSDVOL#1〜#5のそれぞれの大きさは適宜変化する。ここで、SSDVOL#1〜#5の実記憶領域を実現するSSD221は1台用意されても、あるいは複数台用意されてもよいが、用意される実記憶領域の総容量はNLVOL#1〜#5の総容量より小さくてよい。
このように、ランダムデータの書き込み先がSSD221を仮想化した仮想ボリュームとされることで、ランダムデータの書き込み先として、NLVOL#1〜#5の総容量と同じ容量のSSDを用意する必要がなくなる。従って、書き込み速度を高速化しつつ、SSDの容量が増大することによるコストの増加を抑制することができる。
ここで、図5〜図8を用いて、例としてNLVOL#1に対するデータの書き込みについて説明する。なお、NLVOL#1の記憶領域は、所定長のブロックごとに割り振られた論理アドレスであるLBA(Logical Block Address)によって管理されるものとする。また、所定数の連続するブロックは「トラック」として管理されるものとする。例えば、1ブロックの長さは512Byteであり、1トラックの長さは64KB(キロバイト)である。ただし、以下の図5〜図8では、説明をわかりやすくするために、1トラックには8ブロックが含まれるものとする。
図5は、ランダムデータの書き込み処理を示す図である。
NLVOL#1への書き込みデータがランダムデータである場合、CM101は、その書き込みデータをNLVOL#1に対応するSSDVOL#1に書き込む。図5では例として、NLVOL#1への1回の書き込み要求コマンドにより、2トラック内の不連続な3ブロックのデータの書き込みが要求されたものとする。この場合、CM101は、書き込みが要求された3ブロック分の実記憶領域を、SSD221からSSDVOL#1に割り当ててSSDVOL#1を拡張し、拡張されたSSDVOL#1に対して書き込み対象の3ブロックを書き込む。
また、CM101は、書き込みデータをSSDVOL#1に書き込むとともに、同じデータをホットスペア(Hot Spare)のNLディスク217(以下、「ホットスペアディスク217」と略称する)にも書き込み、ランダムデータを二重化する。ホットスペアディスク217は、ストレージシステム100に搭載されたNLディスク210(図2参照)のうち、RAIDグループを構成するNLディスクが故障したときの代替用に用意された記憶装置である。
このように、CM101は、書き込みデータがランダムデータである場合、その書き込みデータをSSDVOLだけでなくホットスペアディスク217にも書き込むことで、書き込みデータを冗長化する。これにより、記憶装置の故障によって書き込みデータが失われる危険性が低下する。
なお、CM101は、例えば、ランダムデータをSSDVOLに書き込んだ後、同じデータをホットスペアディスク217に書き込む前に、書き込み完了の応答を行ってもよい。これにより、書き込み要求に対する応答時間を短縮することができる。
図6は、シーケンシャルデータの書き込み処理を示す図である。
NLVOL#1への書き込みデータがシーケンシャルデータである場合、CM101は、その書き込みデータをNLVOL#1に書き込む。図6では例として、NLVOL#1への1回の書き込み要求コマンドにより、3トラック分のデータの書き込みが要求されたものとする。
また、CM101は、書き込みデータの中に、すでに対応するSSDVOL#1に書き込み済みのブロックがある場合には、そのブロックについての新たなデータを、NLVOL#1だけでなく、対応するSSDVOL#1にも上書きする。図6では、書き込みデータのうちSSDVOL#1にすでに書き込まれているブロックを、黒く塗りつぶした状態で表している。
CM101は、NLVOL#1からのデータの読み出しが要求された場合、できる限りSSDVOL#1からデータを読み出そうとする。例えば、CM101は、NLVOL#1からの読み出しが要求されたデータのすべてがSSDVOL#1に格納されている場合に、データをSSDVOL#1から読み出す。これにより、読み出しに要する時間が短縮される。
図6に示すように、CM101は、書き込みデータがシーケンシャルデータである場合でも、SSDVOL#1に書き込み済みのブロックについてはこれを上書きしておく。これにより、SSDVOL#1に一度書き込まれたランダムデータが常に最新に保たれ、データ読み出し時にSSDVOL#1から読み出し可能になる確率が高くなる。従って、全体として読み出し性能を向上させることができる。
図7は、SSDVOLに格納されたランダムデータのマージ処理を示す図である。
CM101は、SSDVOL#1に書き込んだランダムデータを、所定のタイミングで対応するNLVOL#1にも書き込む。SSDVOL#1内のランダムデータをNLVOL#1に書き込むタイミングを決定するための1つのパラメータとして、1つのトラックのデータのうち、SSDVOL#1に格納されているデータの割合を示す「SSD格納率」が用いられる。
CM101は、NLVOL#1内のトラックごとにSSD格納率を検知し、SSD格納率が所定のしきい値以上になったトラックについて、図7に示すようなマージ処理を行う。マージ処理は、NLVOL#1およびSSDVOL#1のそれぞれにおける同一トラックのデータをCM101上で統合し、NLVOL#1に書き直す処理である。
図7の例では、トラック#1のブロックのうち、先頭から2番目、3番目、5番目、7番目および8番目の各ブロックのデータが、SSDVOL#1に格納されている。例えばSSD格納率50%が判定しきい値であるとすると、図7の状態ではSSD格納率が判定しきい値を超えている。このとき、CM101は、NLVOL#1からトラック#1のデータを読み出すとともに、SSDVOL#1からもトラック#1のデータを読み出す。
ここで、図6に示したSSDVOL#1への書き込み処理により、SSDVOL#1には常に最新データが格納されていることになる。このため、CM101は、SSDVOL#1から読み出したトラック#1の各ブロックのデータを、NLVOL#1から読み出したトラック#1のデータにおける対応するブロックに上書きし、トラック#1全体の最新データを生成する。CM101は、生成したトラック#1の最新データを、NLVOL#1に上書きする。
このように、トラック内の一部を構成するランダムデータがSSDVOLに書き込まれた場合でも、そのランダムデータがSSDVOLからNLVOLに書き込まれる際に、NLVOLに元々格納されていたデータとマージされることで、NLVOL上にシーケンシャルデータが格納される確率が高くなる。これにより、該当トラックのデータの読み出しが要求された場合に、NLVOLからのデータ読み出し速度を向上させることができる。
また、CM101は、SSD格納率が所定のしきい値以上になったトラックのみをSSDVOLからNLVOLに転送することで、SSDVOLからNLVOLへのデータ転送が発生する頻度を必要最小限に抑えることができる。従って、CM101の処理負荷や、CM101とNLディスクおよびSSDとの間の伝送負荷が低減され、SSDVOLからNLVOLへの転送処理が、CM101からNLVOLへの通常のアクセス処理に与える影響を軽減することができる。
図8は、SSDVOLとNLVOLとの間のデータ転送の他の例を示す図である。
上記の図7では、SSD格納率が所定のしきい値以上になったトラックのデータを、SSDVOL#1からNLVOL#1に転送した。これに加えて、CM101は、SSDVOL#1に格納されたデータのアクセス頻度が低下した場合に、そのデータをNLVOL#1に転送する。この場合、CM101は、アクセス頻度が低下したSSDVOL#1のデータを無効化して、そのデータが記録されていたSSD221の実記憶領域を解放する。解放された実記憶領域は、その後にSSDVOL#1〜#5のいずれかに対して新たに割り当てることが可能になる。このような処理により、仮想ボリュームに対して必要な分だけSSD221の実記憶領域を割り当てることができ、SSD221の実記憶領域を効率的に利用可能になるとともに、SSD221に必要な容量を小さくし、コストを低減することができる。
なお、後述するように、CM101はさらに、SSD221の残容量が所定量以下になったときに、SSDVOLに格納されたデータを対応するNLVOLに転送するとともに、SSDVOLの対応する領域を解放する。
一方、CM101は、NLVOL#1に格納されたデータのアクセス頻度が高くなった場合に、そのデータを対応するSSDVOL#1に複写する。これにより、CM101は、アクセス頻度の高いデータをSSDVOL#1に格納しておき、それらのデータの読み出しが要求された場合に、データをSSDVOL#1から高速に読み出すことができるようになる。
なお、本実施の形態では、CM101は、アクセス頻度をトラックごとに検知し、SSDVOLとNLVOLとの間のデータ転送をトラック単位で実行するものとする。
次に、図9は、CMが備える処理機能の例を示すブロック図である。
CM101は、キャッシュ制御部121、パターン判定部122、I/O制御部123、転送制御部124、RAID制御部125およびディスクアクセス制御部126を備える。これらの各部の処理は、例えば、CM101が備えるプロセッサ111が所定のプログラムを実行することで実現される。
また、CM101の記憶装置には、キャッシュ領域131が確保される。さらに、CM101の記憶装置には、RAID管理テーブル141、格納場所管理テーブル142、状態管理テーブル143および仮想領域管理テーブル144が記憶される。
キャッシュ制御部121は、NLVOLのデータをキャッシュ領域131にキャッシュするための制御を行う。キャッシュ領域131は、例えば、CM101が備えるSSD113に確保される。
キャッシュ制御部121は、キャッシュ領域131に格納されたデータをライトバックする際、対応するNLVOLへのデータの書き込みを要求するための書き込みコマンドを、パターン判定部122を通じてI/O制御部123に通知する。また、キャッシュ制御部121は、キャッシュミスしたデータをNLVOLから読み出す際、対応するNLVOLからのデータの読み出しを要求するための読み出しコマンドを、I/O制御部123に通知する。
パターン判定部122は、キャッシュ制御部121から書き込みコマンドを受け付けると、書き込みコマンドによるアクセスパターンがシーケンシャルアクセスか、あるいはランダムアクセスかを判定する。なお、パターン判定部122は、例えば、シーケンシャルアクセスかランダムアクセスかを、連続性を示すフラグなどの、受信したコマンドに含まれる情報によって判断することができる。
I/O制御部123は、パターン判定部122による判定結果に応じて、ライトバック対象のデータの書き込み先を判定し、書き込み制御を行う。図5および図6に示したように、I/O制御部123は、基本的に、シーケンシャルデータの書き込み先をNLVOLと判定し、ランダムデータの書き込み先をSSDVOLおよびホットスペアディスクと判定する。また、I/O制御部123は、キャッシュ制御部121から読み出しコマンドを受け付けると、格納場所管理テーブル142を参照して、データの読み出し場所を判別し、読み出し制御を行う。
転送制御部124は、格納場所管理テーブル142、状態管理テーブル143および仮想領域管理テーブル144を参照しながら、SSDVOLとNLVOLとの間のデータ転送を制御する。
ここで、I/O制御部123および転送制御部124は、ともに次のような書き込みまたは読み出しの制御を行う。
I/O制御部123および転送制御部124は、データをNLVOLに書き込む際には、書き込み先のNLVOLの識別番号と、書き込みデータのNLVOLにおける論理アドレス(LBA)とをRAID制御部125に通知して、書き込みを依頼する。また、I/O制御部123および転送制御部124は、データをSSDVOLに書き込む際には、対応するSSDVOLに対し、書き込みデータの容量分の実記憶領域をSSD221の空き領域から割り当てる。そして、I/O制御部123および転送制御部124は、割り当てた実記憶領域のアドレスをディスクアクセス制御部126に通知して、SSD221への書き込みを依頼する。なお、I/O制御部123は、データをホットスペアディスクに書き込む際は、書き込み先の実アドレスをディスクアクセス制御部126に通知して、ホットスペアディスクへの書き込みを依頼する。
一方、I/O制御部123および転送制御部124は、データをNLVOLから読み出す場合には、NLVOLの識別番号と、読み出しデータのNLVOLにおける論理アドレス(LBA)とをRAID制御部125に通知して、読み出しを依頼する。また、I/O制御部123および転送制御部124は、データをSSDVOLから読み出す場合には、仮想領域管理テーブル144を参照して、SSD221における読み出しアドレスを判別する。そして、I/O制御部123および転送制御部124は、判別した読み出しアドレスをディスクアクセス制御部126に通知して、データの読み出しを依頼する。
RAID制御部125は、RAID管理テーブル141を参照しながら、I/O制御部123および転送制御部124からの要求に応じたNLVOLへのアクセスを、RAIDを用いて制御する。RAID制御部125は、アクセス先のNLディスクまたはSSDにおける実アドレスをディスクアクセス制御部126に通知して、データの書き込みまたはデータの読み出しを依頼する。
ディスクアクセス制御部126は、I/O制御部123、転送制御部124およびRAID制御部125からの要求に応じて、NLディスクやSSDへのデータの書き込み、あるいはNLディスクやSSDからのデータの読み出しを行う。
図10は、RAID管理テーブルに登録されるデータの例を示す図である。RAID管理テーブル141は、RAIDグループごとに生成されて、例えばCM101のSSD113に格納される。各RAID管理テーブル141には、RAIDグループ番号、RAIDレベル、ストライプサイズ、ディスク数、ディスク番号およびNLVOL情報の各項目に対応する情報が登録される。
RAIDグループ番号は、RAIDグループの識別番号を示す。RAIDレベルは、対応するRAIDグループの制御に使用されるRAIDレベルを示す。ストライプサイズは、ストライプが使用されるRAIDレベル(例えば、RAID−4,5,6など)が設定された場合に、1ストライプにおける記憶装置ごとの記憶領域のサイズを示す。
ディスク数は、対応するRAIDグループに属するNLディスクの数を示す。ディスク番号は、対応するRAIDグループに属する各NLディスクの識別番号を示す。従って、ディスク番号は、ディスク数の欄に設定された数だけ登録される。
NLVOL情報は、RAIDグループ番号に対応付けられた唯一の論理ボリュームLV(図4の論理ボリュームLV#1に対応)を分割して得られる各NLVOLについての情報を示す。NLVOLの情報としては、NLVOLの識別番号、RAIDグループ番号が示す論理ボリュームにおけるNLVOLの先頭論理アドレス、NLVOLのサイズなどがある。
RAID制御部125は、I/O制御部123および転送制御部124からNLVOLの識別番号およびLBAが通知されたとき、NLVOL情報に基づいて、通知されたNLVOLおよびLBAに対応する論理ボリュームLV上の論理アドレスを判別する。さらに、RAID制御部125は、RAIDレベル、ストライプサイズ、ディスク数およびディスク番号に基づいて、アクセス先の実アドレスを判別し、実アドレスをディスクアクセス制御部126に通知してアクセスを要求する。また、RAID制御部125は、データの書き込みが要求された場合には、データの分割やパリティの計算などのRAIDレベルに応じた処理も実行する。
図11は、格納場所管理テーブルに登録されるデータの例を示す図である。格納場所管理テーブル142は、NLVOLごとに生成されて、例えばCM101のSSD113に格納される。
格納場所管理テーブル142は、対応するNLVOL内の各ブロックの最新データがどこに格納されているかを管理するためのテーブルである。各格納場所管理テーブル142には、対応するNLVOL内の各LBAに対応付けて、SSD格納フラグ、HS格納フラグおよびNL格納フラグが登録される。
SSD格納フラグは、対応するブロックの最新データがSSDVOLに格納されているか否かを示す。SSD格納フラグの値は、最新データがSSDVOLに格納されている場合に「1」とされ、格納されていない場合に「0」とされる。
HS格納フラグは、対応するブロックの最新データがホットスペアディスクに格納されているか否かを示す。HS格納フラグの値は、最新データがホットスペアディスクに格納されている場合に「1」とされ、格納されていない場合に「0」とされる。
NL格納フラグは、対応するブロックの最新データがNLVOLに格納されているか否かを示す。NL格納フラグの値は、最新データがNLVOLに格納されている場合に「1」とされ、格納されていない場合に「0」とされる。
図12は、状態管理テーブルに登録されるデータの例を示す図である。状態管理テーブル143は、NLVOLごとに生成されて、例えばCM101のメモリ112に一時的に格納される。
状態管理テーブル143は、対応するNLVOL内の各トラックの状態を管理するためのテーブルである。状態管理テーブル143には、対応するNLVOL内の各トラック番号に対応付けて、SSD格納率、SSDアクセス頻度およびNLアクセス頻度が登録される。SSD格納率、SSDアクセス頻度およびNLアクセス頻度は、例えば、I/O制御部123によって検出されて、状態管理テーブル143に登録される。
SSD格納率は、対応するトラックのデータのうち、SSDVOLに格納されているデータの割合を示す。SSD格納率は、例えばブロック単位で計算され、トラック内のブロック数に対する、SSDVOLにデータが格納されているブロック数の割合(単位:%)として計算される。
SSDアクセス頻度は、対応するトラックにおける少なくとも1ブロックのデータがSSDVOLに格納されている場合に、SSDVOLに格納されているデータに対するアクセス頻度を示す。NLアクセス頻度は、対応するトラックにおける少なくとも1ブロックのデータがNLVOLに格納されている場合に、NLVOLに格納されているデータに対するアクセス頻度を示す。
ここで、アクセス頻度とは、例えば、直近の所定時間におけるトラック単位の書き込みまたは読み出しの回数を示す。また、アクセス頻度は、例えば、キャッシュ制御部121からの1回のI/O要求に応じて、該当トラック内の少なくとも1つのブロックに対するアクセスが発生した場合に、インクリメントされる。
なお、SSDアクセス頻度の欄には、対応するトラックのデータがSSDVOLに格納されていない場合には、例えば、有効な数値が登録されていないことを示す「NULL」が登録される。同様に、NLアクセス頻度の欄には、対応するトラックのデータがNLVOLに格納されていない場合には、有効な数値が登録されていないことを示す「NULL」が登録される。
図13は、仮想領域管理テーブルに登録されるデータの例を示す図である。仮想領域管理テーブル144は、NLVOLごとに生成されて、例えばCM101のSSD113に格納される。
仮想領域管理テーブル144は、対応するNLVOL内の各ブロックのデータが、SSD内のどの実記憶領域に格納されているかを管理するためのテーブルである。これとともに、仮想領域管理テーブル144は、SSD内の実記憶領域のうち、仮想ボリュームに割り当て済みの領域を管理するための役割も担う。
仮想領域管理テーブル144には、対応するNLVOL内の各LBAに対応付けて、SSDにおける物理アドレスが登録されている。なお、仮想領域管理テーブル144においては、格納場所管理テーブル142のSSD格納フラグが「1」になっているLBAに対してのみ、SSDの物理アドレスが登録される。
次に、CM101の処理について、フローチャートを用いて説明する。以下、例として、NLVOL#1に対するアクセスが行われる場合の処理について説明する。
図14は、書き込み処理の例を示すフローチャートである。図14の処理は、キャッシュ制御部121がパターン判定部122に対して、NLVOL#1に対してデータを書き込むための書き込みコマンドを発行した場合に実行される。
[ステップS11]パターン判定部122は、発行された書き込みコマンドによるアクセスパターンを判定し、判定結果を書き込みコマンドとともにI/O制御部123に通知する。アクセスパターンがシーケンシャルアクセスである場合、ステップS12の処理が実行され、アクセスパターンがランダムアクセスの場合、ステップS15の処理が実行される。
[ステップS12]I/O制御部123は、格納場所管理テーブル142を参照して、書き込みが要求された書き込みデータの少なくとも一部が、対応するSSDVOL#1に格納済みであるかを判定する。I/O制御部123は、書き込み先領域に含まれる各LBAに対応付けられたSSD格納フラグのうち1つでも「1」である場合、書き込みデータの少なくとも一部がSSDVOL#1に格納済みであると判定する。
I/O制御部123は、書き込みデータの少なくとも一部がSSDVOL#1に格納済みである場合、ステップS13の処理を実行し、書き込みデータ全体がSSDVOL#1に格納されていない場合には、ステップS14の処理を実行する。
[ステップS13]I/O制御部123は、書き込み先領域に含まれる各LBAのうちSSD格納フラグが「1」であるLBAのデータを、SSDVOL#1内の対応する格納済みデータに上書きする。
I/O制御部123は、仮想領域管理テーブル144を参照して、SSD格納フラグが「1」であったLBAに対応付けられたSSD上の物理アドレスを読み出すことで、対応する書き込み済みデータのSSDにおける実記憶領域を判別する。I/O制御部123は、ディスクアクセス制御部126に対して、上書き対象の物理アドレスと各アドレスに対応する上書きデータとを通知して、書き込みを依頼する。
これにより、キャッシュ制御部121から書き込みが要求されたシーケンシャルデータのうち、SSDVOL#1に格納済みのデータが新たなデータによって更新される。従って、シーケンシャルデータが書き込まれる場合でも、そのシーケンシャルデータのうちSSDVOL#1に格納済みのデータについては、SSDVOL#1上のデータも最新のデータに更新され、SSDVOL#1から読み出し可能になる。
なお、ステップS13で上書き対象となるデータは、次のステップS14でNLVOL#1にも書き込まれて冗長化される。このため、I/O制御部123は、SSDVOL#1に上書きしたデータをホットスペアディスクに二重化しなくてよい。I/O制御部123は、格納場所管理テーブル142における、上書きされたLBAに対応するNL格納フラグを、すべて「0」に更新する。
[ステップS14]I/O制御部123は、書き込みデータをNLVOL#1に書き込むようにRAID制御部125に依頼する。RAID制御部125は、RAIDレベルに応じたNLディスクに対する書き込み制御を行う。また、I/O制御部123は、NLVOL#1における書き込み対象のLBAのうち、格納場所管理テーブル142においてSSD格納フラグが「0」であるLBAを判別し、判別したLBAに対応するSSD格納フラグを「1」に更新する。
[ステップS15]I/O制御部123は、書き込みデータをSSDVOL#1およびホットスペアディスクに書き込むように、ディスクアクセス制御部126に依頼する。
ここで、I/O制御部123は、格納場所管理テーブル142を参照し、書き込みデータのうち、SSDVOL#1に書き込み済みでないブロック(SSD格納フラグが「0」であるブロック)については、それらのブロックのデータを格納するための新たな実記憶領域をSSDVOL#1に割り当てて、SSDVOL#1の実記憶領域を拡張する。具体的には、I/O制御部123は、書き込みデータの書き込み先LBAのうちSSDVOL#1に書き込み済みでないLBAに対応するSSD上の空きアドレスを、仮想領域管理テーブル144に基づいて取得する。I/O制御部123は、取得したアドレスを、仮想領域管理テーブル144における書き込み済みでないLBAに対応付けて登録する。これにより、SSDVOL#1が拡張される。また、I/O制御部123は、格納場所管理テーブル142における書き込み済みでないLBAに対応するSSD格納フラグおよびHS格納フラグを、「1」に更新する。
また、I/O制御部123は、格納場所管理テーブル142を参照し、書き込み対象のLBAのうち、NLVOL#1に古いデータが書き込まれているLBA(NL格納フラグが「1」であるLBA)を抽出する。I/O制御部123は、抽出したLBAに対応付けられていたNL格納フラグを「0」に更新して、NLVOL#1上の古いデータを無効化する。
なお、I/O制御部123は、SSDVOL#1への書き込みが完了した時点で、ホットスペアディスクへの書き込みが完了していなくても、キャッシュ制御部121に対して書き込み完了を通知してもよい。これにより、キャッシュ制御部121によるライトバック処理時間を短縮することができる。
[ステップS16]I/O制御部123は、状態管理テーブル143において、書き込み先のLBAが含まれるトラックに対応付けられたアクセス頻度をインクリメントするとともに、SSD格納率を必要に応じて更新する。I/O制御部123は、SSDVOL#1に書き込みを行った場合には、書き込み先に対応するトラックに対応付けられたSSDアクセス頻度をインクリメントするとともに、SSD格納率を更新する。また、I/O制御部123は、NLVOL#1に書き込みを行った場合には、書き込み先に対応するトラックに対応付けられたNLアクセス頻度をインクリメントする。
なお、I/O制御部123は、書き込みの完了をキャッシュ制御部121に通知した後に、ステップS16の処理を実行してもよい。
図15は、読み出し処理の例を示すフローチャートである。図15の処理は、キャッシュ制御部121がI/O制御部123に対して、NLVOL#1からデータを読み出すための読み出しコマンドを発行した場合に実行される。
[ステップS21]I/O制御部123は、格納場所管理テーブル142において読み出し対象のLBAに対応付けられたSSD格納フラグを参照して、読み出し対象のデータがすべてSSDVOL#1に格納されているかを判定する。I/O制御部123は、読み出し対象のデータがすべてSSDVOL#1に格納されている場合には、ステップS22の処理を実行する。一方、I/O制御部123は、読み出し対象のデータの少なくとも一部がSSDVOL#1に格納されていない場合には、ステップS23の処理を実行する。
[ステップS22]I/O制御部123は、読み出し対象のデータをSSDVOL#1から読み出すように、ディスクアクセス制御部126に依頼する。このとき、I/O制御部123は、仮想領域管理テーブル144から、読み出し対象のデータの格納場所を示す実アドレスを読み出して、ディスクアクセス制御部126に通知する。
[ステップS23]I/O制御部123は、格納場所管理テーブル142において読み出し対象のLBAに対応付けられたNL格納フラグを参照して、読み出し対象のデータがすべてNLVOL#1に格納されているかを判定する。I/O制御部123は、読み出し対象のデータがすべてNLVOL#1に格納されている場合には、ステップS25の処理を実行する。一方、I/O制御部123は、読み出し対象のデータの少なくとも一部がNLVOL#1に格納されていない場合には、ステップS24の処理を実行する。
[ステップS24]I/O制御部123は、読み出し対象のデータのうち、SSDVOL#1に格納されているデータの読み出しを、ディスクアクセス制御部126に依頼する。このとき、I/O制御部123は、仮想領域管理テーブル144から対応するデータの格納場所を示す実アドレスを読み出して、ディスクアクセス制御部126に通知する。
[ステップS25]I/O制御部123は、読み出し対象のデータのうち、NLVOL#1に格納されているデータの読み出しを、RAID制御部125に依頼する。
なお、ステップS24,S25の両方が実行される場合、I/O制御部123はステップS25において、SSDVOL#1から読み出されたデータとNLVOL#1から読み出されたデータとをマージして読み出しデータを生成し、その読み出しデータをキャッシュ制御部121に転送する。
[ステップS26]I/O制御部123は、状態管理テーブル143において、読み出し元のLBAが含まれるトラックに対応付けられたアクセス頻度をインクリメントする。I/O制御部123は、SSDVOL#1から読み出しを行った場合には、読み出し元に対応するトラックに対応付けられたSSDアクセス頻度をインクリメントする。また、I/O制御部123は、NLVOL#1から読み出しを行った場合には、読み出し元に対応するトラックに対応付けられたNLアクセス頻度をインクリメントする。
なお、I/O制御部123は、読み出しデータをキャッシュ制御部121に転送して応答した後に、ステップS26の処理を実行してもよい。
図16は、マージ処理の例を示すフローチャートである。転送制御部124は、I/O制御部123がキャッシュ制御部121から書き込み要求コマンドを受信するたびに、図16に示す処理を実行する。ただし、図16の処理の実行開始タイミングは、I/O制御部123がキャッシュ制御部121に、書き込み要求コマンドに対する応答を行った後である。これにより、書き込み要求に対する応答の遅延を抑制することができる。
[ステップS31]転送制御部124は、書き込み要求コマンドによって指定された書き込み先領域を含むトラックを先頭のトラックから順に選択し、ステップS31からループ端のステップS35までの処理をトラックごとに繰り返す。
[ステップS32]転送制御部124は、状態管理テーブル143から、選択したトラックに対応付けられたSSD格納率を読み出し、SSD格納率が所定の割合以上かを判定する。転送制御部124は、SSD格納率が所定割合以上の場合には、ステップS33の処理を実行し、所定割合未満の場合には、ステップS35の処理を実行する。
[ステップS33]転送制御部124は、格納場所管理テーブル142に基づき、選択したトラックについてのデータをSSDVOL#1とNLVOL#1から読み出す。転送制御部124は、SSDVOL#1からのデータの読み出しをディスクアクセス制御部126に依頼し、NLVOL#1からのデータの読み出しをRAID制御部125に依頼する。
[ステップS34]転送制御部124は、ステップS33で読み出したトラックのデータをマージし、マージされたデータをNLVOL#1上の同じトラックに上書きするようにRAID制御部125に依頼する。
[ステップS35]転送制御部124は、書き込み先領域を含む全トラックについてステップS31〜S35の処理を繰り返した後、マージ処理を終了する。
なお、マージ処理は、例えば、書き込み要求コマンドの受信に関係なく実行されてもよい。例えば、転送制御部124は、図16のステップS32〜S34の処理を状態管理テーブル143に登録された全トラックについて実行することでマージ処理を行い、このようなマージ処理を一定時間ごとに繰り返す。
図17は、アクセス頻度に応じたSSD解放処理の例を示すフローチャートである。
[ステップS41]転送制御部124は、状態管理テーブル143を先頭のトラックから順に選択し、ステップS41からループ端のステップS46までの処理をトラックごとに繰り返す。
[ステップS42]転送制御部124は、選択したトラックに対応付けられたSSDアクセス頻度を読み出し、SSDアクセス頻度が所定のしきい値以下かを判定する。転送制御部124は、SSDアクセス頻度が所定のしきい値以下である場合には、ステップS43の処理を実行し、所定のしきい値を超えている場合には、ステップS46の処理を実行する。
[ステップS43]転送制御部124は、格納場所管理テーブル142に基づき、選択したトラックについてのSSDVOL#1上のデータが、すべてNLVOL#1に書き込み済みであるかを判定する。転送制御部124は、SSDVOL#1上のデータがすべてNLVOL#1にも書き込み済みである場合には、ステップS45の処理を実行する。一方、転送制御部124は、SSDVOL#1上のデータの中にNLVOL#1に書き込み済みでないデータがある場合には、ステップS44の処理を実行する。
このステップS43では、転送制御部124は、格納場所管理テーブル142における、選択したトラックに含まれるLBAのレコードから、SSD格納フラグおよびNL格納フラグを読み取る。転送制御部124は、NL格納フラグが「1」であり、かつSSD格納フラグが「0」であるLBAがある場合、そのLBAについてのSSDVOL#1上のデータはNLVOL#1に書き込まれていないと判定する。一方、転送制御部124は、SSD格納フラグが「1」であり、かつNL格納フラグが「1」であるLBAについては、そのLBAについてのデータがSSDVOL#1とNLVOL#1の両方に書き込まれていると判定する。
[ステップS44]転送制御部124は、SSD格納フラグが「1」であり、かつNL格納フラグが「0」であるLBAのデータについて、SSDVOL#1から読み出すようにディスクアクセス制御部126に依頼する。転送制御部124は、読み出されたデータをNLVOL#1に書き込むようにRAID制御部125に依頼する。
なお、このステップS44では、転送制御部124は例えば、図16のステップS33,S34のように、該当トラックについてSSDVOL#1とNLVOL#1からデータを読み出してマージし、マージされたデータをNLVOL#1に上書きしてもよい。
[ステップS45]転送制御部124は、選択したトラックについてのSSDVOL#1上のデータを削除する。このステップS45では、転送制御部124は、格納場所管理テーブル142における、選択したトラックに含まれるLBAに対応付けられたSSD格納フラグを、すべて「0」に更新する。また、転送制御部124は、仮想領域管理テーブル144における、選択したトラックに含まれるLBAに対応付けられた物理アドレスを、すべて消去する。後者の処理により、ステップS44でSSDVOL#1から読み出されたデータの格納のためにSSDVOL#1に割り当てられていたSSDの物理記憶領域が解放されて、その物理記憶領域が未使用領域に変更される。
[ステップS46]転送制御部124は、状態管理テーブル143の全トラックについてステップS41〜S46の処理を繰り返した後、SSD解放処理を終了する。
なお、以上の図17の処理は、例えば、一定時間ごとに繰り返される。
図18は、NLVOLからSSDVOLへのコピー処理の例を示すフローチャートである。転送制御部124は、I/O制御部123が、キャッシュ制御部121からの書き込み要求コマンドに応じてNLVOLに書き込みを行うか、あるいは、キャッシュ制御部121からの読み出し要求コマンドに応じてNLVOLまたはSSDVOLから読み出しを行ったときに、図18に示す処理を実行する。ただし、図18の処理の実行開始タイミングは、I/O制御部123がキャッシュ制御部121に、書き込み要求コマンドまたは読み出し要求コマンドに対する応答を行った後である。これにより、書き込み要求または読み出し要求に対する応答の遅延を抑制することができる。
[ステップS51]転送制御部124は、書き込み要求コマンドによって指定された書き込み先領域または読み出し要求コマンドによって指定された読み出し元領域を含むトラックを、先頭のトラックから順に選択し、ステップS51からループ端のステップS54までの処理をトラックごとに繰り返す。
[ステップS52]転送制御部124は、状態管理テーブル143から、選択したトラックに対応付けられたNLアクセス頻度を読み出し、NLアクセス頻度が所定のしきい値を超えるかを判定する。転送制御部124は、NLアクセス頻度が所定のしきい値を超える場合には、ステップS53の処理を実行し、所定のしきい値以下である場合には、ステップS54の処理を実行する。
[ステップS53]転送制御部124は、選択したトラックのデータをNLVOL#1からSSDVOL#1にコピーするための処理を実行する。
このステップS53では、転送制御部124は、格納場所管理テーブル142を参照して、該当トラックに含まれる各LBAのデータのうち、NLVOL#1に格納されているがSSDVOL#1に格納されていないデータを判別する。転送制御部124は、判別したデータをNLVOL#1から読み出すように、RAID制御部125に依頼する。転送制御部124は、NLVOL#1から読み出したデータを格納するためのSSDの実記憶領域をSSDVOL#1に割り当て、割り当てたSSDVOL#1にNLVOL#1から読み出したデータを書き込むように、ディスクアクセス制御部126に依頼する。
[ステップS54]転送制御部124は、書き込み先領域または読み出し元領域を含む全トラックについてステップS51〜S54の処理を繰り返した後、コピー処理を終了する。
なお、NLVOLからSSDVOLへのコピー処理は、例えば、書き込み要求コマンドまたは読み出し要求コマンドの受信に関係なく実行されてもよい。例えば、転送制御部124は、図18のステップS52〜S53の処理を状態管理テーブル143に登録された全トラックについて実行することで上記コピー処理を行い、このようなコピー処理を一定時間ごとに繰り返す。
図19は、SSDの残容量に応じたSSD解放処理の例を示すフローチャートである。
転送制御部124は、キャッシュ制御部121からの書き込み要求コマンドに応じてI/O制御部123がSSDVOLへ書き込みを行ったとき、あるいは、転送制御部124が図18に示したNLVOLからSSDVOLへのコピー処理を実行することによりSSDVOLへ書き込みを行ったときに、図19の処理を実行する。ただし、前者の場合、図19の処理の実行開始タイミングは、I/O制御部123がキャッシュ制御部121に、書き込み要求コマンドに対する応答を行った後である。
なお、図19の処理は、上記のようなSSDVOLへの書き込みタイミングに関係なく行われてもよい。例えば、転送制御部124は、一定時間ごとに図19の処理を繰り返し実行してもよい。
[ステップS61]転送制御部124は、SSDの残容量が所定の第1のしきい値以下かを判定する。転送制御部124は、SSDの残容量が第1のしきい値以下である場合に、ステップS62の処理を実行し、残容量が第1のしきい値を超えている場合には、SSD解放処理を終了する。
なお、転送制御部124は、仮想領域管理テーブル144に基づいて、各SSDVOLに割り当てられていないSSDの実記憶領域を判別することで、SSDの残容量を検出することができる。
[ステップS62]転送制御部124は、I/O制御部123によるデータの書き込み先をNLVOLに限定し、SSDVOLへの新規データの書き込みを禁止する。
[ステップS63]転送制御部124は、全NLVOLについての状態管理テーブル143から、SSDアクセス頻度が最低であるトラックを選択する。
[ステップS64]転送制御部124は、ステップS63で選択したトラックのデータをSSDVOLから読み出してNLVOLに書き込むための処理を実行する。
このステップS64では、転送制御部124は、格納場所管理テーブル142を参照して、該当トラックに含まれる各LBAのデータのうち、SSDVOLに格納されているがNLVOLに格納されていないデータを判別する。転送制御部124は、判別したデータをSSDVOLから読み出すように、ディスクアクセス制御部126に依頼する。転送制御部124はさらに、SSDVOLから読み出したデータを対応するNLVOLに書き込むように、RAID制御部125に依頼する。
[ステップS65]転送制御部124は、ステップS64でSSDVOLから読み出したデータを、SSDVOLから削除する。このステップS65では、転送制御部124は、格納場所管理テーブル142における、該当トラックに含まれるLBAに対応付けられたSSD格納フラグを、すべて「0」に更新する。また、転送制御部124は、仮想領域管理テーブル144における、該当トラックに含まれるLBAに対応付けられた物理アドレスを、すべて消去する。後者の処理により、ステップS64でSSDVOLから読み出されたデータの格納のためにSSDVOLに割り当てられていたSSDの物理記憶領域が解放されて、その物理記憶領域が未使用領域に変更される。
[ステップS66]転送制御部124は、ステップS65でのデータ削除後におけるSSD残容量を計算し、算出されたSSD残容量が、第1のしきい値より大きい所定の第2のしきい値以上であるかを判定する。転送制御部124は、SSD残容量が第2のしきい値未満である場合には、ステップS63の処理を再度実行し、SSD残容量が第2のしきい値以上である場合には、SSD解放処理を終了する。
上記の図19の処理によれば、転送制御部124は、SSDVOLに格納された全データのうち、アクセス頻度が低い順に一定量(第2のしきい値と第1のしきい値との差分)のデータがSSDから削除され、SSDの残容量が増加する。
なお、SSDからのデータ削除の方法としては、他の方法を用いることもできる。例えば、転送制御部124は、SSDVOLから、アクセス頻度ではなく書き込み時刻が古い順に一定量のデータを削除してもよい。あるいは、転送制御部124は、SSDVOLごとに一定量のデータをSSDから削除してもよい。この場合、転送制御部124は、例えば、SSDVOLごとにアクセス頻度の低い順に、あるいは書き込み時刻が古い順に、一定量だけデータを削除する。
なお、上記の各実施の形態に示したストレージ制御装置の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。なお、プログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 第1の記憶装置と、
前記第1の記憶装置よりアクセス速度の高い第2の記憶装置と、
前記第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するストレージ制御装置と、
を備え、
前記ストレージ制御装置は、
前記論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定する判定部と、
前記書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを前記論理記憶領域に書き込み、前記書き込みのパターンがランダムアクセスである場合には、前記第2の記憶装置の記憶領域を仮想化した仮想記憶領域に前記書き込みデータを書き込む制御部と、
を有することを特徴とするストレージシステム。
(付記2) 前記制御部は、前記仮想記憶領域への前記書き込みデータの書き込みとは非同期に、前記仮想記憶領域に書き込まれたデータを、前記論理記憶領域における対応する位置に書き込むことを特徴とする付記1記載のストレージシステム。
(付記3) 前記制御部は、前記論理記憶領域を分割して得られる複数の分割領域のうち、データが所定割合以上前記仮想記憶領域に書き込まれている分割領域を選択し、前記選択された分割領域のうち前記仮想記憶領域に書き込まれているデータを、前記論理記憶領域における対応する位置に書き込むことを特徴とする付記2記載のストレージシステム。
(付記4) 前記制御部は、前記仮想記憶領域に書き込まれたデータのうち、アクセス頻度が所定のしきい値以下のデータを、前記論理記憶領域における対応する位置に書き込むとともに、当該データを前記仮想記憶領域から削除することを特徴とする付記2または3記載のストレージシステム。
(付記5) 前記制御部は、前記第2の記憶装置の残容量が所定のしきい値以下になったとき、前記仮想記憶領域に書き込まれたデータを前記論理記憶領域におけるそれぞれ対応する位置に書き込むとともに、選択した各データを前記仮想記憶領域から削除することを特徴とする付記2記載のストレージシステム。
(付記6) 前記制御部は、前記論理記憶領域からのデータの読み出しが要求されたとき、読み出し対象のすべてのデータが前記仮想記憶領域に格納されている場合には、当該データを前記仮想記憶領域から読み出すことを特徴とする付記1〜5のいずれか1つに記載のストレージシステム。
(付記7) 前記制御部は、前記論理記憶領域に書き込まれたデータのアクセス頻度を、前記論理記憶領域を分割して得られる分割領域ごとに検出し、アクセス頻度が所定のしきい値を超えた分割領域のデータを前記仮想記憶領域に複写することを特徴とする付記6記載のストレージシステム。
(付記8) 前記制御部は、前記書き込みデータを前記論理記憶領域に書き込む際、前記書き込みデータの一部が前記仮想記憶領域に格納済みである場合には、前記仮想記憶領域に格納済みのデータを新たなデータで上書きすることを特徴とする付記6または7記載のストレージシステム。
(付記9) 前記ストレージシステムは、前記第1の記憶装置を複数備え、
前記論理記憶領域は、複数の前記第1の記憶装置の記憶領域によって実現され、
前記制御部は、前記論理記憶領域へのデータの書き込みを、データが異なる前記第1の記憶装置に冗長化されるように制御する、
ことを特徴とする付記1〜8のいずれか1つに記載のストレージシステム。
(付記10) 前記ストレージシステムは、第3の記憶装置を備え、
前記制御部は、前記書き込みデータを前記仮想記憶領域に書き込む際、前記書き込みデータを前記第3の記憶装置にも書き込む、
ことを特徴とする付記9記載のストレージシステム。
(付記11) 第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するためのストレージ制御方法において、
コンピュータが、
前記論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定し、
前記書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを前記論理記憶領域に書き込み、前記書き込みのパターンがランダムアクセスである場合には、前記第1の記憶装置よりアクセス速度の高い第2の記憶装置の記憶領域を仮想化した仮想記憶領域に前記書き込みデータを書き込む、
ことを特徴とするストレージ制御方法。
(付記12) 前記コンピュータが、前記仮想記憶領域への前記書き込みデータの書き込みとは非同期に、前記仮想記憶領域に書き込まれたデータを、前記論理記憶領域における対応する位置に書き込む、
処理をさらに含むことを特徴とする付記11記載のストレージ制御方法。
(付記13) 前記仮想記憶領域に書き込まれたデータを前記論理記憶領域に書き込む処理では、前記論理記憶領域を分割して得られる複数の分割領域のうち、データが所定割合以上前記仮想記憶領域に書き込まれている分割領域を選択し、前記選択された分割領域のうち前記仮想記憶領域に書き込まれているデータを、前記論理記憶領域における対応する位置に書き込むことを特徴とする付記12記載のストレージ制御方法。
(付記14) 前記仮想記憶領域に書き込まれたデータを前記論理記憶領域に書き込む処理では、前記仮想記憶領域に書き込まれたデータのうち、アクセス頻度が所定のしきい値以下のデータを、前記論理記憶領域における対応する位置に書き込むとともに、当該データを前記仮想記憶領域から削除することを特徴とする付記12または13記載のストレージ制御方法。
(付記15) 前記コンピュータが、前記論理記憶領域からのデータの読み出しが要求されたとき、読み出し対象のすべてのデータが前記仮想記憶領域に格納されている場合には、当該データを前記仮想記憶領域から読み出す、
処理をさらに含むことを特徴とする付記11〜14のいずれか1つに記載のストレージ制御方法。
(付記16) 前記コンピュータが、前記論理記憶領域に書き込まれたデータのアクセス頻度を、前記論理記憶領域を分割して得られる分割領域ごとに検出し、アクセス頻度が所定のしきい値を超えた分割領域のデータを前記仮想記憶領域に複写する、
処理をさらに含むことを特徴とする付記15記載のストレージ制御方法。
(付記17) 前記書き込みデータを前記論理記憶領域に書き込む処理では、前記書き込みデータの一部が前記仮想記憶領域に格納済みである場合には、前記仮想記憶領域に格納済みのデータを新たなデータで上書きすることを特徴とする付記15または16記載のストレージ制御方法。
(付記18) 前記論理記憶領域は、複数の前記第1の記憶装置の記憶領域によって実現され、
前記論理記憶領域に対するデータの書き込みは、データが異なる前記第1の記憶装置に冗長化されるように制御される、
ことを特徴とする付記11〜17のいずれか1つに記載のストレージ制御方法。
(付記19) 前記書き込みデータを前記仮想記憶領域に書き込む処理では、同じ前記書き込みデータを第3の記憶装置にも書き込むことを特徴とする付記18記載のストレージ制御方法。
(付記20) 第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するためのストレージ制御プログラムにおいて、
コンピュータに、
前記論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定し、
前記書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを前記論理記憶領域に書き込み、前記書き込みのパターンがランダムアクセスである場合には、前記第1の記憶装置よりアクセス速度の高い第2の記憶装置の記憶領域を仮想化した仮想記憶領域に前記書き込みデータを書き込む、
処理を実行させることを特徴とするストレージ制御プログラム。
1 ストレージシステム
10 ストレージ制御装置
11 判定部
12 制御部
21,22 記憶装置
31 論理記憶領域
32 仮想記憶領域

Claims (10)

  1. 第1の記憶装置と、
    前記第1の記憶装置よりアクセス速度の高い第2の記憶装置と、
    前記第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するストレージ制御装置と、
    を備え、
    前記ストレージ制御装置は、
    前記論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定する判定部と、
    前記書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを前記論理記憶領域に書き込み、前記書き込みのパターンがランダムアクセスである場合には、前記第2の記憶装置の記憶領域を仮想化した仮想記憶領域に前記書き込みデータを書き込み、
    前記仮想記憶領域への前記書き込みデータの書き込みとは非同期に、前記論理記憶領域を分割して得られる複数の分割領域のうち、データが所定割合以上前記仮想記憶領域に書き込まれている分割領域を選択し、前記選択された分割領域のうち前記仮想記憶領域に書き込まれているデータを、前記論理記憶領域における対応する位置に書き込む、制御部と、
    を有することを特徴とするストレージシステム。
  2. 前記制御部は、前記仮想記憶領域に書き込まれたデータのうち、アクセス頻度が所定のしきい値以下のデータを、前記論理記憶領域における対応する位置に書き込むとともに、当該データを前記仮想記憶領域から削除することを特徴とする請求項記載のストレージシステム。
  3. 前記制御部は、前記第2の記憶装置の残容量が所定のしきい値以下になったとき、前記仮想記憶領域に書き込まれたデータを前記論理記憶領域におけるそれぞれ対応する位置に書き込むとともに、選択した各データを前記仮想記憶領域から削除することを特徴とする請求項記載のストレージシステム。
  4. 前記制御部は、前記論理記憶領域からのデータの読み出しが要求されたとき、読み出し対象のすべてのデータが前記仮想記憶領域に格納されている場合には、当該データを前記仮想記憶領域から読み出すことを特徴とする請求項1〜のいずれか1つに記載のストレージシステム。
  5. 前記制御部は、前記論理記憶領域に書き込まれたデータのアクセス頻度を、前記論理記憶領域を分割して得られる分割領域ごとに検出し、アクセス頻度が所定のしきい値を超えた分割領域のデータを前記仮想記憶領域に複写することを特徴とする請求項記載のストレージシステム。
  6. 前記制御部は、前記書き込みデータを前記論理記憶領域に書き込む際、前記書き込みデータの一部が前記仮想記憶領域に格納済みである場合には、前記仮想記憶領域に格納済みのデータを新たなデータで上書きすることを特徴とする請求項4または5記載のストレージシステム。
  7. 前記ストレージシステムは、前記第1の記憶装置を複数備え、
    前記論理記憶領域は、複数の前記第1の記憶装置の記憶領域によって実現され、
    前記制御部は、前記論理記憶領域へのデータの書き込みを、データが異なる前記第1の記憶装置に冗長化されるように制御する、
    ことを特徴とする請求項1〜のいずれか1つに記載のストレージシステム。
  8. 前記ストレージシステムは、第3の記憶装置を備え、
    前記制御部は、前記書き込みデータを前記仮想記憶領域に書き込む際、前記書き込みデータを前記第3の記憶装置にも書き込む、
    ことを特徴とする請求項記載のストレージシステム。
  9. 第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するためのストレージ制御方法において、
    コンピュータが、
    前記論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定し、
    前記書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを前記論理記憶領域に書き込み、前記書き込みのパターンがランダムアクセスである場合には、前記第1の記憶装置よりアクセス速度の高い第2の記憶装置の記憶領域を仮想化した仮想記憶領域に前記書き込みデータを書き込み、
    前記仮想記憶領域への前記書き込みデータの書き込みとは非同期に、前記論理記憶領域を分割して得られる複数の分割領域のうち、データが所定割合以上前記仮想記憶領域に書き込まれている分割領域を選択し、前記選択された分割領域のうち前記仮想記憶領域に書き込まれているデータを、前記論理記憶領域における対応する位置に書き込む、
    ことを特徴とするストレージ制御方法。
  10. 第1の記憶装置の記憶領域によって実現される論理記憶領域に対するデータの書き込みを制御するためのストレージ制御プログラムにおいて、
    コンピュータに、
    前記論理記憶領域へのデータの書き込みが要求されたとき、書き込みのパターンがシーケンシャルアクセスであるかランダムアクセスであるかを判定し、
    前記書き込みのパターンがシーケンシャルアクセスである場合には、書き込みデータを前記論理記憶領域に書き込み、前記書き込みのパターンがランダムアクセスである場合には、前記第1の記憶装置よりアクセス速度の高い第2の記憶装置の記憶領域を仮想化した仮想記憶領域に前記書き込みデータを書き込み、
    前記仮想記憶領域への前記書き込みデータの書き込みとは非同期に、前記論理記憶領域を分割して得られる複数の分割領域のうち、データが所定割合以上前記仮想記憶領域に書き込まれている分割領域を選択し、前記選択された分割領域のうち前記仮想記憶領域に書き込まれているデータを、前記論理記憶領域における対応する位置に書き込む、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2012183384A 2012-08-22 2012-08-22 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム Expired - Fee Related JP6011153B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012183384A JP6011153B2 (ja) 2012-08-22 2012-08-22 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US13/932,082 US9158478B2 (en) 2012-08-22 2013-07-01 Storage system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012183384A JP6011153B2 (ja) 2012-08-22 2012-08-22 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2014041471A JP2014041471A (ja) 2014-03-06
JP6011153B2 true JP6011153B2 (ja) 2016-10-19

Family

ID=50149083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012183384A Expired - Fee Related JP6011153B2 (ja) 2012-08-22 2012-08-22 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US9158478B2 (ja)
JP (1) JP6011153B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9778986B2 (en) 2014-03-28 2017-10-03 Hitachi, Ltd. Storage system
US9836419B2 (en) * 2014-09-15 2017-12-05 Microsoft Technology Licensing, Llc Efficient data movement within file system volumes
MX363170B (es) * 2015-11-27 2019-03-13 Huawei Tech Co Ltd Método para almacenar datos por medio de un dispositivo de almacenamiento y dispositivo de almacenamiento.
JP6708923B2 (ja) * 2016-03-14 2020-06-10 富士通株式会社 ストレージシステム
JP2018018271A (ja) * 2016-07-27 2018-02-01 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
KR102340094B1 (ko) * 2017-03-31 2021-12-17 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
CN113535096B (zh) * 2021-09-16 2022-01-11 深圳创新科技术有限公司 虚拟NVMe固态驱动器存储构建方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040170A (ja) 1996-07-26 1998-02-13 Toshiba Corp ディスクキャッシュシステム
JP3541349B2 (ja) * 1999-07-21 2004-07-07 日本電気エンジニアリング株式会社 キャッシュメモリ・バックアップシステム
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
JP4749255B2 (ja) 2006-07-03 2011-08-17 株式会社日立製作所 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP4536785B2 (ja) * 2008-02-01 2010-09-01 富士通株式会社 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法
US9134917B2 (en) * 2008-02-12 2015-09-15 Netapp, Inc. Hybrid media storage system architecture
JP4734432B2 (ja) 2009-02-18 2011-07-27 株式会社東芝 データ記憶システム
JP5298982B2 (ja) 2009-03-17 2013-09-25 日本電気株式会社 ストレージシステム
JP5070315B2 (ja) * 2010-04-28 2012-11-14 株式会社日立製作所 ストレージ装置及びストレージ装置におけるデータ階層管理方法
US8468303B2 (en) * 2010-09-27 2013-06-18 Hitachi, Ltd. Method and apparatus to allocate area to virtual volume based on object access type

Also Published As

Publication number Publication date
US20140059294A1 (en) 2014-02-27
JP2014041471A (ja) 2014-03-06
US9158478B2 (en) 2015-10-13

Similar Documents

Publication Publication Date Title
US9569130B2 (en) Storage system having a plurality of flash packages
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10176212B1 (en) Top level tier management
US9128855B1 (en) Flash cache partitioning
JP6212137B2 (ja) ストレージ装置及びストレージ装置の制御方法
JP5937697B2 (ja) ストレージシステム
US9104334B2 (en) Performance improvements in input/output operations between a host system and an adapter-coupled cache
JP6429963B2 (ja) ストレージ装置及びストレージ装置の制御方法
US10521345B2 (en) Managing input/output operations for shingled magnetic recording in a storage system
US9075729B2 (en) Storage system and method of controlling data transfer in storage system
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
WO2015015550A1 (ja) 計算機システム及び制御方法
JP2010102369A (ja) ストレージシステム
CN111857540B (zh) 数据存取方法、装置和计算机程序产品
EP2695066A1 (en) Journaling raid system
US7073029B2 (en) Storage system using fast storage and log-structured storage
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US20180307427A1 (en) Storage control apparatus and storage control method
JP6928247B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP6163588B2 (ja) ストレージシステム
JP7288191B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP3861061B2 (ja) ディスクキャッシュ制御装置
JP2004355040A (ja) ディスク制御装置およびデータ先読み方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160905

R150 Certificate of patent or registration of utility model

Ref document number: 6011153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees