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

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

Info

Publication number
JP6065695B2
JP6065695B2 JP2013063854A JP2013063854A JP6065695B2 JP 6065695 B2 JP6065695 B2 JP 6065695B2 JP 2013063854 A JP2013063854 A JP 2013063854A JP 2013063854 A JP2013063854 A JP 2013063854A JP 6065695 B2 JP6065695 B2 JP 6065695B2
Authority
JP
Japan
Prior art keywords
data block
access mode
information
file
disk
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.)
Active
Application number
JP2013063854A
Other languages
English (en)
Other versions
JP2014191398A5 (ja
JP2014191398A (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 JP2013063854A priority Critical patent/JP6065695B2/ja
Priority to US14/144,773 priority patent/US9430168B2/en
Publication of JP2014191398A publication Critical patent/JP2014191398A/ja
Publication of JP2014191398A5 publication Critical patent/JP2014191398A5/ja
Application granted granted Critical
Publication of JP6065695B2 publication Critical patent/JP6065695B2/ja
Active 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/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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units

Description

本発明は、ストレージ制御方法、ストレージシステム、およびストレージ制御プログラムに関する。
ディスクアレイシステム等のストレージシステムで使用されるディスクドライブとしては、例えば、SSD(Solid State Drive),SAS(Serial Attached SCSI (Small Computer System Interface))ディスク,SATA(Serial Advanced Technology Attachment)ディスクの3種類が挙げられる。図9に示すように、これら3種類のうち、最も信頼性および性能が高いのはSSDであり、2番目に信頼性および性能が高いのはSASディスクであり、3番目に信頼性および性能が高いのはSATAディスクである。
このように異なる特性をもつ3種類のディスクを有する階層化ディスク(図9参照)を含むストレージ装置を、サーバが用いる場合、以下のようなストレージ階層化制御が行なわれる。つまり、階層化ディスクを用いる構成では、ディスク側において、アクセス頻度に基づき、再配置すべきデータブロックと、そのデータブロックの再配置先のディスクとが決定され、図9に示すように、当該データブロックの再配置が行なわれる。
例えば、SSD上のファイルに含まれるデータブロックに対するアクセス頻度が低い場合、当該データブロックは、SSDからSASディスクへ移動されSASディスク上で再配置される。同様に、SASディスク上のデータブロックに対するアクセス頻度が低い場合、当該データブロックは、SASディスクからSATAディスクへ移動されSATAディスク上で再配置される。逆に、SATAディスク上のデータブロックに対するアクセス頻度が高くなった場合、当該データブロックは、SATAディスクからSASディスクへ移動されSASディスク上で再配置される。同様に、SASディスク上のデータブロックに対するアクセス頻度が高くなった場合、当該データブロックは、SASディスクからSSDへ移動されSSD上で再配置される。
特開2006−4011号公報
ところで、SSD上におけるシーケンシャルアクセスのファイルに含まれるデータブロックの一部をSASディスク上で再配置した場合、当該ファイルを構成するデータブロックの配置状態は、シーケンシャルでなくなる。このため、SASディスク上のデータブロックに対するシーケンシャルアクセスの性能は、SSD上のデータブロックに対するアクセス性能と比べて劣化する。そして、当該ファイルの再配置の頻度が高くなると、当該ファイルのデータはより断片化し、SASディスク上のデータブロックに対するシーケンシャルアクセスの性能は、より劣化する。
データの断片化を抑止すべく、ファイルに含まれるデータブロックに対するアクセス態様がシーケンシャルアクセスであるか否かを判別してデータブロックの再配置を行なうためには、階層化ディスクにアクセスするアプリケーション側の仕様に係るアクセス(Read/Write)層での情報が必要である。つまり、階層化ディスクを用いるサーバは、階層化ディスクが実際にどのようなアクセス態様でデータ配置を行なっているかに関する情報を有していない。このため、現状の階層化ディスクでは、シーケンシャルアクセスにおける性能劣化や、再配置によるデータの断片化等の悪影響が生じる。
一つの側面で、本発明は、階層化ディスクに対するデータブロックの再配置によるデータの断片化を抑止することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
本件のストレージシステムは、特性の異なる複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とが接続されたストレージシステムであって、前記ストレージ装置は、前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報と、前記データブロックに対するアクセス頻度を含むアクセス情報とを、前記情報処理装置に通知するディスク制御部を有し、前記情報処理装置は、前記階層化ディスクに対する入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定するアクセス態様特定部と、前記アクセス態様特定部によって特定された前記ファイル毎のアクセス態様情報と、前記ディスク制御部から通知された前記ブロック情報および前記アクセス情報に含まれる情報とを対応付けてファイルアクセス態様情報として管理し、前記ファイルアクセス態様情報に基づいて再配置対象データブロックを判断し、前記ファイルアクセス態様情報に基づいて前記再配置対象データブロックのアクセス態様を判断し、前記再配置対象データブロックのアクセス態様と前記ブロック情報とに基づいて、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置の内容を決定して前記ストレージ装置の前記ディスク制御部に指示する管理部と、を有し、前記ストレージ装置の前記ディスク制御部は、前記情報処理装置の前記管理部から指示された前記再配置の内容に従って、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置を行なう。
一実施形態によれば、階層化ディスクに対するデータブロックの再配置によるデータの断片化が抑止される。
本実施形態のストレージシステムのハードウエア構成および機能構成を示すブロック図である。 図1に示すストレージシステムの機能や動作を概略的に説明する図である。 本実施形態のファイルアクセス態様テーブルの例を示す図である。 図1に示すストレージシステムの動作を説明するフローチャートである。 本実施形態における対象ファイルのアクセス態様の判断手順を説明するフローチャートである。 本実施形態におけるSSDからSASディスクへの再配置手順を説明するフローチャートである。 図1に示すストレージシステムにおけるデータブロックの具体的な再配置例を示す図である。 図1に示すストレージシステムにおけるデータブロックの具体的な再配置例を示す図である。 階層化ディスクおよびストレージ階層化制御を説明する図である。
以下、図面を参照して実施の形態を説明する。
〔1〕本実施形態のストレージシステムの構成
図1は、本実施形態のストレージシステム1のハードウエア構成および機能構成を示すブロック図である。図1に示すように、ストレージシステム1は、ストレージ装置10およびサーバ(情報処理装置)20を有している。
ストレージ装置10は、サーバ20(アプリケーション211)によってアクセスされるとともにサーバ20(管理部213)によって管理され、階層化ディスク11,CPU(Central Processing Unit)12およびメモリ13を有している。なお、図1では、ストレージ装置10において論理ユニット110が図示されている。論理ユニット110は、LUN(Logical Unit Number)によって特定されるもので、後述するアプリケーション211から見える一つの論理ディスクである。
階層化ディスク11は、特性の異なる複数のディスクを有する。本実施形態の階層化ディスク11では、図1に示すように、2種類のディスク、つまりSSD111およびSASディスク112が備えられている。なお、本発明は、これに限定されるものでなく、例えば図9を参照しながら前述したように、階層化ディスク11が3種類のディスク、つまりSSD,SASディスクおよびSATAディスクを有する場合にも本実施形態と同様に適用される。
ここで、SSDは、ハードディスクのようにディスクをもたないので、読取装置(ヘッド)をディスク上で移動させる時間(シークタイム)や、目的のデータがヘッド位置まで回転してくるまでの待ち時間(サーチタイム)がない。このため、SSDでは、シーケンシャルアクセスのファイルに含まれるデータブロックが連続的に配置されていても断片化してランダムに配置されていても、アクセス性能に差異はない。
これに対し、SASディスクやSATAディスクでは、シーケンシャルアクセスのファイルに含まれるデータブロックが、断片化してランダムに配置されていると、連続的に配置されている場合に比べ、シークタイムやサーチタイムを要し、アクセス性能が低下する。
そこで、本実施形態では、少なくともシーケンシャルアクセスのデータブロックをSASディスクやSATAディスク上で再配置する際に、再配置対象のデータブロックのアクセス態様がシーケンシャルアクセスであるか否かを考慮する。
このため、本実施形態では、SSD111からSASディスク112への再配置を行なう場合、再配置対象のデータブロックのアクセス態様が判断され、判断されたアクセス態様に基づく再配置が実行される。なお、階層化ディスク11が上述した3種類のディスクを有する場合、SSDからSASディスクへの再配置,SASディスクからSATAディスクへの再配置,SATAディスクからSASディスクへの再配置を行なう際に本実施形態のごとくアクセス態様に基づく再配置が実行される。また、SASディスクからSSDへの再配置を行なう場合、再配置対象のデータブロックのアクセス態様に基づく再配置が実行されてもよいし実行されなくてもよい。
CPU(処理部,コンピュータ)12は、メモリ13に格納されたプログラムを読み出して実行することで、後述するディスク制御部121としての機能を果たす。なお、ディスク制御部121は、階層化ディスク11の制御を行なうもので、図9を参照しながら前述したストレージ階層化制御の機能も果たす。
メモリ13は、RAM(Random Access Memory)等であり、CPU12が実行するプログラムを保存するほか、ストレージ装置10においてCPU12が処理(ディスク制御部121による制御処理等)を行なう際に必要となる各種データ等を保存する。
サーバ20は、FC(Fibre Channel)/iSCSIを介しストレージ装置10に接続され、ストレージ装置10の階層化ディスク11にアクセスする。また、サーバ20は、LAN(Local Area Network)を介しストレージ装置10のディスク制御部121(CPU12)に接続され、ストレージ装置10の管理を行なう。サーバ20は、CPU21およびメモリ22を有している。
CPU21は、メモリ22に格納されたアプリケーション(アプリケーションプログラム)211を読み出して実行することで、ストレージ装置10の階層化ディスク11に対しR/W(Read/Write)命令(入出力要求)を発行する。なお、前述したように、アプリケーション211は、階層化ディスク11を論理ディスク110として認識し、論理ディスク110に対しR/W命令を発行する。
また、CPU21は、メモリ22に格納されたプログラムを読み出して実行することで、アプリケーション211とストレージ装置10との間に、後述するアクセス態様特定部として機能する仮想ドライバ(仮想デバイス)212を構築する。
さらに、CPU21は、メモリ22に格納されたプログラムを読み出して実行することで、後述するファイルアクセス態様テーブル221を作成し、当該テーブル221を用いて、後述する管理部213としての機能を果たす。
メモリ22は、RAM等であり、CPU21が実行するプログラムや、テーブル221を保存するほか、サーバ20においてCPU21が処理(アプリケーション211,仮想ドライバ212,管理部213による処理等)を行なう際に必要となる各種データ等を保存する。
なお、図1に示すストレージシステム1では、一つのサーバ20が、アプリケーション211,仮想ドライバ212,管理部213およびテーブル221を備えているが、二つのサーバが、アプリケーション211,仮想ドライバ212,管理部213およびテーブル221を分けて備えてもよい。例えば、ストレージ装置10にアクセスする業務サーバが、アプリケーション211および仮想ドライバ212を備え、管理サーバが、LANを介して業務サーバおよびストレージ装置10に接続され、管理部213およびテーブル221を備えてもよい。
以下、本実施形態のストレージシステム1におけるディスク制御部121,仮想ドライバ212および管理部213の具体的な機能について、図2を参照しながら説明する。併せて、サーバ20のメモリ22に保存されるファイルアクセス態様テーブル221の具体例について、図3を参照しながら説明する。なお、図2は、ストレージシステム1の機能や動作を概略的に説明する図、図3は、ファイルアクセス態様テーブル221の例を示す図である。
仮想ドライバ(仮想デバイス)212は、アプリケーション211から、ストレージ装置10に対するR/W命令(入出力要求)を受けると、ファイル毎のアクセス態様情報を特定するアクセス態様特定部として機能する。アクセス態様情報は、ストレージ装置10を利用するアプリケーション211を特定する情報(アプリケーション名等)と、R/W命令の対象ファイルを特定する情報(ファイル名等)と、当該対象ファイルのアクセス態様とを含む。仮想ドライバ212は、取得・特定したアクセス態様情報を管理部213に通知する(図2の矢印A1参照)。
ここで、仮想ドライバ212は、以下のようにして、対象ファイルのアクセス態様がシーケンシャルアクセスであるかランダムアクセスであるかを特定する。つまり、仮想デバイス212は、R/W命令が対象ファイルのR/W位置(入出力位置)をインデックスでシークしているか否かを測定する。仮想デバイス212は、R/W命令がインデックスでシークしていない場合、即ち対象ファイルの先頭から読み込んでいる場合、対象ファイルのアクセス態様をシーケンシャルアクセスと判断する。一方、仮想デバイス212は、R/W命令がインデックスでシークしている場合に対象ファイルのアクセス態様をランダムアクセスと判断する。
なお、仮想ドライバ212は、アプリケーション211が用いるファイルのうち、テーブル221に登録されていない対象ファイルについてアクセス態様を特定する。また、仮想ドライバ212は、アプリケーション211によるアクセス開始後、所定時間の間、アクセス態様の特定を行なう。
ディスク制御部121は、階層化ディスク11に保存されている各ファイルに含まれるデータブロックの記憶位置(物理位置)を含むブロック情報や、各データブロックに対するアクセス情報を取得し(図2の矢印A2参照)、取得したブロック情報やアクセス情報をサーバ20の管理部213に通知する(図2の矢印A3参照)。ブロック情報には、アプリケーション211を特定する情報(アプリケーション名等)と、アプリケーション211が用いる対象ファイルを特定する情報(ファイル名等)と、当該対象ファイルに含まれるデータブロックが実際に存在する物理位置(つまりサーバ20上のアプリケーション211が認識している論理ディスク110が存在する物理ストレージ)に関する情報とが含まれる。また、アクセス情報は、アプリケーション211による、各データブロックに対するアクセス頻度を含む。
管理部213は、仮想デバイス212から通知されたアクセス態様情報と、ディスク制御部121から通知されたブロック情報やアクセス情報とを、メモリ22上のファイルアクセス態様テーブル221に登録する(図2の矢印A4参照)。
ファイルアクセス態様テーブル221には、図3に示すように、仮想デバイス212から通知されたアクセス態様情報に基づき、アプリケーション211のアプリケーション名と、当該アプリケーションが用いる対象ファイルのファイル名と、仮想ドライブ212によって特定された対象ファイルのアクセス態様(シーケンシャルアクセスかランダムアクセスか)とが登録される。また、ファイルアクセス態様テーブル221には、図3に示すように、ディスク制御部121から通知されたブロック情報やアクセス情報が、アプリケーション名やファイル名によってアクセス態様情報に対応付けられて登録される。即ち、対象ファイルに含まれる各データブロックの記憶位置と、各データブロックに対するアクセス頻度とが登録される。図3では、一つのデータブロックの記憶位置およびアクセス頻度が示されているが、実際には、データブロック毎に記憶位置およびアクセス頻度が登録される。なお、図3において、アクセス頻度の単位は、1秒間当たりの読込み/書込み回数を示すIOPS(Input/Output Per Second)である。
そして、管理部213は、テーブル221を参照し(図2の矢印A5参照)、再配置すべきデータブロックを判断する。このとき、管理部213は、SSD111に配置され且つアクセス頻度の低いデータブロックを、SASディスク112に再配置すべきデータブロックであると判断する。一方、管理部213は、SASディスク112に配置され且つアクセス頻度の高いデータブロックを、SSD111に再配置すべきデータブロックであると判断する。また、管理部213は、テーブル221を参照し(図2の矢印A5参照)、再配置対象のデータブロックのアクセス態様(シーケンシャルアクセスかランダムアクセスか)を判断する。つまり、管理部213は、アプリケーション211が用いるファイル毎のアクセス態様情報、および、ディスク制御部121から通知された各ファイルのブロック情報に基づき、データブロックのアクセス態様を判断する。
また、管理部213は、アクセス頻度に基づき判断された再配置対象のデータブロックについてのブロック情報(記憶位置)と、管理部213によって判断された再配置対象のデータブロックのアクセス態様とに基づき、後述するごとく、階層化ディスク11に対する再配置の内容を決定する。管理部213は、決定された再配置の内容に従ったデータブロックの再配置を行なうように、ストレージ装置10のディスク制御部121に対し指示する(図2の矢印A6参照)。
ストレージ装置10のディスク制御部121は、管理部213から指示されたデータブロックの再配置を階層化ディスク11に対し行なう。
このとき、本実施形態のストレージシステム1では、SSD111からSASディスク112へデータブロックを再配置する場合、項目(A1)〜(A4)を参照しながら後述するように、管理部213によって再配置の内容が決定され、ディスク制御部121によって再配置対象のデータブロックの再配置が実行される。なお、管理部213による再配置の内容の具体的な決定手法等については後述する。また、ディスク制御部121による具体的な再配置例については、図7および図8を参照しながら後述する。
〔2〕本実施形態のストレージシステムの動作
ストレージ装置10においては、ディスク制御部121のストレージ階層化制御の機能によって、データブロック単位でデータ領域へのアクセス情報(アクセス頻度)が測定される。ディスク制御部121のストレージ階層化制御の機能によってデータブロック単位で測定されたデータでは、各データブロック内のデータがどのようなアクセス態様(シーケンシャルアクセスかランダムアクセスか)をもつかは不明であった。本実施形態では、ディスク制御部121によって得られるブロック情報と、サーバ20上で仮想ドライバ212によって得られるアクセス態様情報とを対応付けることによって、各ファイルを構成するデータブロックのアクセス態様の判断が可能になる。
そして、シーケンシャルアクセスと判断されたデータブロックは、ファイルを構成するデータブロックの連続性が保たれるように再配置される。シーケンシャルアクセスのファイルを構成するデータブロックがSSD111およびSASディスク112の両方に分かれて存在する場合、連続的な再配置を容易に行なえるようデータブロックの前後に空き領域が設けられる。しかし、SASディスク112に再配置されたデータブロックの前後を単純に空き領域とした場合、SASディスク112の利用効率が低下する。そこで、管理部213は、前後のデータブロックが再配置されるか否かを再配置の頻度から予測し、再配置される可能性が高い場合に、再配置されたデータブロックの前後を空き領域とするようにしてもよい。
以下、本実施形態のストレージシステム1の動作について、図4〜図8を参照しながら説明する。
〔2−1〕ストレージシステムの動作
図4に示すフローチャート(ステップS1〜S9)に従って、ストレージシステム1の動作について説明する。
上述したように、ディスク制御部121のストレージ階層化制御機能では、各データブロックに対するアクセス頻度を測定することは可能であるが、各データブロックのアクセス態様を判断することはできなかった。そこで、本実施形態のストレージシステム1においては、サーバ20上に仮想ドライバ212が構築され、仮想ドライバ212とディスク制御部121のストレージ階層化制御機能とを管理部213により連携させることで、各データブロックのアクセス態様の判断が可能になっている。
サーバ20において、アプリケーション211が対象ファイルへR/W命令を発行し、仮想ドライバ212がR/W命令を受けると(ステップS1のYESルート)、仮想ドライバ212は、管理部213を介してメモリ22のファイルアクセス態様テーブル221を参照する。そして、仮想ドライバ212は、今回R/W命令を発行したアプリケーション211のアプリケーション名、および、当該アプリケーション211によってアクセスされる対象ファイルのファイル名が、ファイルアクセス態様テーブル221に登録されているか否かを判断する(ステップS2)。
アプリケーション名およびファイル名の両方が登録されている場合(ステップS2のYESルート)、ストレージシステム1は、ステップS3,S4の処理をスキップし、ステップS5の処理に移行する。一方、アプリケーション名およびファイル名の少なくとも一方が登録されていない場合(ステップS2のNOルート)、仮想ドライバ212は、アプリケーション211のアプリケーション名と、対象ファイルのファイル名と、当該対象ファイルのアクセス態様とを測定・取得する(ステップS3)。ステップS3におけるアクセス態様の判断手順については、図5を参照しながら後述する。
そして、仮想ドライバ212は、取得したアプリケーション名,ファイル名およびアクセス態様を、管理部213に通知し(図2の矢印A1参照)、管理部213経由でファイルアクセス態様テーブル221に登録する(ステップS4;図2の矢印A4参照)。なお、テーブル221において、アプリケーション名が登録されているが、ファイル名が登録されていない場合、仮想ドライバ212は、ファイル名とアクセス態様とを管理部213に通知する。
この後、ステップS5において、ディスク制御部121は、アプリケーション211がアクセスしている対象ファイルのデータブロックの記憶位置(物理位置)を含むブロック情報や、当該データブロックに対するアクセス情報(アクセス情報)を取得する(ステップS5;図2の矢印A2参照)。
ディスク制御部121は、取得したブロック情報やアクセス情報をサーバ20の管理部213に通知し(図2の矢印A3参照)、管理部213経由でファイルアクセス態様テーブル221に登録する(ステップS6;図2の矢印A4参照)。このとき、前述した通り、ディスク制御部121から通知された記憶位置やアクセス頻度が、アプリケーション名やファイル名によってアクセス態様情報に対応付けられて登録される。メモリ22に保存されるファイルアクセス態様テーブル221は、アクセス頻度等の評価を繰り返すことで更新され、管理部213は、以下のように、更新されたテーブル221に基づき、ディスク制御部に対し、データブロックの再配置の指示を行なう。
つまり、管理部213は、ファイルアクセス態様テーブル221を参照し(図2の矢印A5参照)、再配置すべきデータブロックを判断する(ステップS7)。このとき、管理部213は、SSD111に配置され且つアクセス頻度の低いデータブロックを、SASディスク112に再配置すべきデータブロックであると判断する。一方、管理部213は、SASディスク112に配置され且つアクセス頻度の高いデータブロックを、SSD111に再配置すべきデータブロックであると判断する。また、管理部213は、テーブル221を参照し(図2の矢印A5参照)、再配置対象のデータブロックのアクセス態様(シーケンシャルアクセスかランダムアクセスか)を判断する。
また、管理部213は、アクセス頻度に基づき判断された再配置対象のデータブロックについてのブロック情報(記憶位置)と、管理部213によって判断された再配置対象のデータブロックのアクセス態様とに基づき、階層化ディスク11に対する再配置の内容を決定する。つまり、管理部213は、テーブル221を参照して再配置対象のデータブロックの記憶位置を把握する。記憶位置を把握した結果、SASディスク112に配置すべきデータブロックがSSD111上に配置されている場合、管理部213は、SASディスク112に再配置対象のデータブロックを再配置するよう再配置の内容を決定する。また、記憶位置を把握した結果、SSD111に配置すべきデータブロックがSASディスク112上に配置されている場合、管理部213は、SSD111に再配置対象のデータブロックを再配置するよう再配置の内容を決定する。一方、記憶位置を把握した結果、SSD111に再配置すべきデータブロックが既にSSD111に配置されている場合、管理部213は、再配置対象のデータブロックについては現状の配置状態を維持する。同様に、記憶位置を把握した結果、SASディスク112に再配置すべきデータブロックが既にSASディスク112に配置されている場合、管理部213は、再配置対象のデータブロックについては現状の配置状態を維持する。
管理部213は、上述のごとく決定された再配置の内容に従ったデータブロックの再配置を行なうように、ストレージ装置10のディスク制御部121に対し指示する(ステップS8;図2の矢印A6参照)。
そして、ストレージ装置10のディスク制御部121は、管理部213から指示されたデータブロックの再配置の内容に従って、階層化ディスク11におけるデータブロックの再配置を行なう(ステップS9)。
〔2−2〕アクセス態様の判断手順
図2のステップS3において、仮想ドライバ212は、以下のように、図5に示す手順で対象ファイルのアクセス態様を判断する。図5は、本実施形態における対象ファイルのアクセス態様(アクセス特性)の判断手順を説明するフローチャート(ステップS11〜S13)である。
つまり、仮想デバイス212は、R/W命令が対象ファイルのR/W位置をインデックスでシークしているか否かを測定する(ステップS11)。そして、仮想デバイス212は、R/W命令がインデックスでシークしていない場合、即ち対象ファイルの先頭から読み込んでいる場合(ステップS11のNOルート)、対象ファイルのアクセス態様をシーケンシャルアクセスと判断する(ステップS12)。一方、仮想デバイス212は、R/W命令がインデックスでシークしている場合(ステップS11のYESルート)、対象ファイルのアクセス態様をランダムアクセスと判断する(ステップS13)。
〔2−3〕再配置手順
次に、図6に示すフローチャート(ステップS21〜S26)に従って、本実施形態におけるSSD111からSASディスク112への再配置手順(図4のステップS7〜S9の処理)について、より具体的に説明する。
まず、管理部213は、ファイルアクセス態様テーブル221を参照し、アプリケーション211がアクセスした対象ファイルのデータブロックのI/O特性(アクセス情報/アクセス頻度)を評価する(ステップS21)。これにより、管理部213は、SSD111に配置され且つアクセス頻度の低いデータブロックを、SASディスク112に再配置すべきデータブロックであると判断する。
また、管理部213は、ファイルアクセス態様テーブル221を参照し、再配置対象のデータブロックのアクセス態様がシーケンシャルアクセスであるかランダムアクセスであるかについて判断する(ステップS22)。
さらに、管理部213は、再配置対象のデータブロックに関する情報(データブロックの記憶位置)とデータブロックのアクセス態様とに基づき、図4のステップS8と同様にして、階層化ディスク11に対する再配置の内容を決定する。そして、管理部213は、決定した再配置の内容に従って、再配置対象のデータブロックをSSD111からSASディスク112へ移動(再配置)する際のデータ配置を、マッピング情報としてメモリ22に保持させる(ステップS23)。
この後、管理部213は、予め定めた評価期間が経過したか否かを判断し(ステップS24)、評価期間が経過していない場合(ステップS24のNOルート)、管理部213は、上述したステップS21〜S24の処理を繰り返し実行する。その際、管理部213は、図4のステップS1〜S4の処理によって更新されたファイルアクセス態様テーブル221を参照する。
一方、評価期間が経過した場合(ステップS24のYESルート)、管理部213は、メモリ22に保持されているマッピング情報に基づき、ディスク制御部121に対しデータブロックの再配置を指示する(ステップS25)。そして、ディスク制御部121は、管理部213から指示された再配置の内容に従って、再配置対象のデータブロックを、SSD111からSASディスク112へ移行(再配置)する(ステップS26)。
なお、管理部213は、SASディスク112に配置され且つアクセス頻度の高いデータブロックを、SSD111に再配置すべきデータブロックであると判断する。上述した通り、SSD111では、シーケンシャルアクセスのファイルに含まれるデータブロックが連続的に配置されていても断片化してランダムに配置されていても、アクセス性能に差異はない。このため、SASディスク112からSSD111への再配置を行なう場合、管理部213は、再配置対象のデータブロックのアクセス態様を判断することなく、再配置対象のデータブロックを、SSD111の適当な空き領域に再配置するよう、ディスク制御部121に指示する。ディスク制御部121は、このような管理部213からの指示に従い、SASディスク112上の再配置対象のデータブロックをSSD111の適当な空き領域に再配置する。
〔2−4〕データブロックの再配置内容の決定手法
次に、管理部213による、図4のステップS8や図6のステップS23における再配置内容の決定手法について説明する。ここでは、特に、シーケンシャルアクセスと判断されたデータブロックを、連続性を保ちながら再配置するための再配置内容の決定手法が説明される。なお、以下では、アクセス態様がシーケンシャルアクセスであるファイルをシーケンシャルファイルといい、アクセス態様がランダムアクセスであるファイルをランダムファイルという。
まず、本実施形態のストレージシステム1における再配置内容の決定手法を概略的に説明すると、以下の通りである。シーケンシャルファイルを構成するデータブロックの再配置に際し、管理部213は、仮想ドライバ212で取得した情報に基づき、データブロックがシーケンシャルな並びになるように再配置内容を決定する。ただし、ファイルを構成する一部のデータブロックが移動し、ファイル全体が連続的に再配置されない場合、管理部213は、連続的に再配置された一部のデータブロックの前後に空き領域を配置する。これにより、その後、再配置が実行された際に、管理部213は、空き領域を用いて前後のデータブロックを連続的に配置することが可能になる。一方、ランダムファイルを構成するデータブロックの再配置に際し、管理部213は、シーケンシャルファイルのデータブロックの領域や、前記空き領域を避けた領域に、ランダムファイルのデータブロックを再配置するように再配置内容を決定する。また、管理部213は、シーケンシャルファイルの再配置に際し部分的データブロックの前後に設けた空き領域を、以下のような場合に解放してもよい。つまり、管理部213は、ランダムファイルの再配置の契機でディスク制御部121のストレージ階層化制御機能によりアクセス頻度評価を再度実施する。そして、その評価結果が変わらない場合、管理部213は、空き領域に対しシーケンシャルファイルのデータブロックが再配置されないと判断して、空き領域を解放し、ランダムファイルのデータブロック再配置を可能にする。なお、前述したように、再配置されたデータブロックの前後を単純に空き領域とした場合、ディスクの利用効率が低下する。そこで、管理部213は、前後のデータブロックが再配置されるか否かを再配置の頻度から予測し、再配置される可能性が高い場合に、再配置されたデータブロックの前後を空き領域とするようにしてもよい。
本実施形態のストレージシステム1では、SSD111からSASディスク112へデータブロックを再配置する場合、以下の項目(A1)〜(A4)のように、管理部213によって再配置の内容が決定され、ディスク制御部121によって再配置対象のデータブロックの再配置が実行される。
(A1)再配置対象のデータブロックのアクセス態様がシーケンシャルアクセスである場合、且つ、データブロックが再配置されるSASディスク112上に、連続する複数のデータブロックが存在する場合: 管理部213は、SASディスク112上に前記連続する複数のデータブロックを連続的に再配置するよう再配置内容を決定しディスク制御部121に対し指示する。これにより、ディスク制御部121は、ストレージ装置10の階層化ディスク11において、SASディスク112上に前記連続する複数のデータブロックを連続的に再配置する。
(A2)再配置対象のデータブロックのアクセス態様がシーケンシャルアクセスである場合、且つ、データブロックが再配置されるSASディスク112上に、当該データブロックの前側または後側に続く他のデータブロックが存在しない場合: 管理部213は、SASディスク112上に再配置された当該データブロックの前側または後側に、前記他のデータブロック用の空き領域を設けるよう再配置内容を決定しディスク制御部121に対し指示する。これにより、ディスク制御部121は、ストレージ装置10の階層化ディスク11において、SASディスク112上に再配置された当該データブロックの前側または後側に、他のデータブロック用の空き領域を設ける。
(A3)空き領域を設けた後、所定期間が経過しても、または、データブロックの再配置処理を所定回数行なっても、空き領域に前記他のデータブロックが再配置されない場合: 管理部213は、当該空き領域を解放し、当該空き領域に前記他のデータブロック以外のデータブロックを再配置するよう再配置内容を決定しディスク制御部121に対し指示する。これにより、ディスク制御部121は、当該空き領域に前記他のデータブロック以外のデータブロックを再配置する。
(A4)再配置対象のデータブロックのアクセス態様がランダムアクセスである場合: 管理部213は、当該データブロックを、アクセス態様がシーケンシャルアクセスであるデータブロックの配置状態に応じて再配置するよう再配置内容を決定しディスク制御部121に対し指示する。これにより、ディスク制御部121は、シーケンシャルアクセスのデータブロックの領域や、前記空き領域を考慮し、これらのシーケンシャルアクセスのデータブロックの領域や、前記空き領域を避けた領域において、ランダムアクセスのデータブロックを再配置する。
次に、図7および図8を参照しながら、ディスク制御部121による具体的な再配置例について説明する。図7および図8は、ストレージシステム1におけるデータブロックの具体的な再配置例を示す図である。図7および図8において、4個のブロックS1〜S4は、シーケンシャルファイルAを構成する、シーケンシャルなデータブロックを示し、この順で連続的に配置されるべき4個のデータブロックS1〜S4によって一つのシーケンシャルファイルAが構成されている。また、「空」を付されたブロックは、データブロック1個分の容量を有する空き領域を示している。
図7では、SSD111上に配置されたシーケンシャルファイルに含まれる4個のデータブロックS1〜S4と、SSD111上に配置されたランダムファイルに含まれる4個のデータブロックRとが、SASディスク112で再配置される場合が示されている。この場合、管理部213において各データブロックのアクセス態様がシーケンシャルアクセスかランダムアクセスかが判断された上で、SSD111からSASディスク112へのデータブロックのデフラグ再配置が実行される。つまり、シーケンシャルファイルに含まれる4個のデータブロックS1〜S4は、SASディスク112上において、シーケンシャルな並びになるように再配置される。そして、ランダムファイルに含まれる4個のデータブロックRは、SASディスク112上において、データブロックS1〜S4の配置領域以外の適当な空き領域に再配置される。
図8の上段のSASディスク112では、図7の例と同様、SSD11上のファイルAおよびファイルBに含まれる全てのデータブロックが、移動対象(再配置対象)であり、SASディスク112で再配置される場合が示されている。この場合は、図7と同様の再配置が実行される。
図8の下段のSASディスク112では、SSD11上のファイルAおよびファイルBに含まれるデータブロックの一部が、移動対象(再配置対象)であり、SASディスク112で再配置される場合が示されている。ここでは、シーケンシャルファイルAに含まれる2個のデータブロックS3,S4と、ランダムファイルBに含まれる2個のデータブロックRとが、移動対象(再配置対象)であり、SASディスク112で再配置される場合が示されている。この場合も、管理部213において各データブロックのアクセス態様がシーケンシャルアクセスかランダムアクセスかが判断された上で、SSD111からSASディスク112へのデータブロックのデフラグ再配置が実行される。つまり、シーケンシャルファイルに含まれる2個のデータブロックS3,S4は、SASディスク112上において、シーケンシャルな並びになるように再配置される。さらに、データブロックS3,S4の前側には、以降の再配置処理で連続するデータブロックS1,S2が再配置される可能性があるので、データブロック2個分の空き領域が設けられる。そして、ランダムファイルに含まれる2個のデータブロックRは、SASディスク112上において、データブロックS3,S4の配置領域と、データブロックS3,S4の前側に設けたデータブロック2個分の空き領域とを除く、適当な空き領域に再配置される。
〔3〕本実施形態のストレージシステム1によれば、以下のような作用効果を得ることができる。
ディスク制御部121によって得られるブロック情報と、サーバ20上で仮想ドライバ212によって得られるアクセス態様情報とを対応付けることによって、各ファイルを構成するデータブロックのアクセス態様の判断が可能になる。これにより、データブロックのアクセス態様の判断結果に基づきデータブロックの再配置を行なうことができるので、SSD111からSASディスク112へ移動したデータについて、シーケンシャルアクセスにおける性能劣化を回避することができる。また、階層化ディスクに対するデータブロックの再配置によるデータの断片化が抑止され、断片化等の悪影響を回避することができる。
また、アプリケーション211が用いる対象ファイルごとのアクセス態様が、仮想ドライバ212によって判断される。これにより、OS(Operating System)に近い部分で、ファイルごとに、アクセス態様が、ランダムアクセスであるのか、シーケンシャルアクセスであるのかを確実に判別することができる。ただし、アクセス態様を判断するために仮想ドライバ212を単純に用いると、アクセス速度の低下を招く虞がある。そこで、仮想ドライバ212は、アプリケーション211によるアクセス開始後、所定時間の間だけ、アクセス態様の測定を行ない、所定時間経過後はアクセス態様の測定を行なわないようにする。これにより、アクセス速度の低下を回避することができる。
さらに、仮想ドライバ212は、ファイルアクセス態様テーブル221に登録されていないファイルのアクセス態様についてのみ、アクセス態様情報を収集する。これにより、ディスクアクセスに対する負荷を増やすことなく、階層化ディスク11でのブロック配置を最適化することができる。
また、シーケンシャルファイルを構成するデータブロックがSSD111およびSASディスク112の両方に分かれて存在する場合、データブロックの前後に空き領域を設けることで、連続的な再配置を容易に行なうことができる。
このとき、管理部213は、前後のデータブロックが再配置されるか否かを再配置の頻度から予測し、再配置される可能性が高い場合に、再配置されたデータブロックの前後に空き領域を設定する。これにより、SASディスク112の利用効率の低下を招くことなく、SASディスク112に再配置されたデータブロックの前後に空き領域を設定することができる。
再配置されたデータブロックの前後に空き領域を設けた後、所定期間が経過しても、または、データブロックの再配置処理を所定回数行なっても、空き領域に、連続する他のデータブロックが再配置されない場合、管理部213は、当該空き領域を解放する。これにより、管理部213は、当該空き領域にデータブロックを再配置することでき、SASディスク112の領域を有効に利用することが可能になる。
〔4〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、本実施形態では、一つのストレージ装置10に対し一つのサーバ20を備えた場合について説明したが、ストレージシステム1は、ストレージ装置10に対し複数のサーバがアクセスするように構成されてもよい。この場合、複数のサーバのうちの少なくとも一つが上述したサーバ20として機能するように構成し、サーバ20によって得られる各種情報を前記複数のサーバの間で連携させることで、一つのサーバ20によって複数のサーバにおいて上述した実施形態と同様の作用効果を得ることができる。
上述したディスク制御部121,仮想ドライバ212および管理部213としての機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のプログラム(ストレージ制御プログラム)を実行することによって実現される。
また、上記アプリケーションプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウエアとOSとを含む概念であり、OSの制御の下で動作するハードウエアを意味している。また、OSが不要でプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、ディスク制御部121,仮想ドライバ212および管理部213としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、プログラムではなくOSによって実現されてもよい。
〔5〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とを備えたストレージシステムにおいて、
前記ストレージ装置は、前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報を、前記情報処理装置に通知し、
前記情報処理装置は、前記階層化ディスクへのアクセスを行なうアプリケーションが用いるファイル毎のアクセス態様情報、および、前記ストレージ装置から通知された前記各ファイルの前記ブロック情報に基づき、前記データブロックのアクセス態様を判断し、
前記ストレージ装置は、前記情報処理装置において判断された前記データブロックのアクセス態様に基づく前記階層化ディスクに対する前記データブロックの再配置を行なう、ストレージ制御方法。
(付記2)
前記情報処理装置は、前記データブロックに対するアクセス頻度を前記ストレージ装置から取得し、取得した前記アクセス頻度と、前記情報処理装置において判断された前記データブロックのアクセス態様とに基づき、前記階層化ディスクに対する前記データブロックの再配置の内容を決定し、当該内容に従った前記データブロックの再配置を前記ストレージ装置に指示し、
前記ストレージ装置は、前記情報処理装置から指示された前記データブロックの再配置を前記階層化ディスクに対し行なう、付記1記載のストレージ制御方法。
(付記3)
前記情報処理装置は、仮想デバイスによって、前記アプリケーションから入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定する、付記1または付記2に記載のストレージ制御方法。
(付記4)
前記情報処理装置は、前記仮想デバイスによって特定された前記対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報としてテーブルに登録し、前記テーブルに登録された前記ファイル毎のアクセス態様情報と、前記ストレージ装置から通知された前記各ファイルの前記ブロック情報とに基づき、前記データブロックのアクセス態様を判断する、付記3記載のストレージ制御方法。
(付記5)
前記仮想デバイスは、前記アプリケーションが用いる前記ファイルのうち、前記テーブルに登録されていない前記対象ファイルについて前記アクセス態様を特定する、付記4記載のストレージ制御方法。
(付記6)
前記仮想デバイスは、前記アプリケーションによるアクセス開始後、所定期間だけ前記アクセス態様の特定を行なう、付記3〜付記5のいずれか一項に記載のストレージ制御方法。
(付記7)
前記仮想デバイスは、前記入出力要求が前記対象ファイルの入出力位置をインデックスでシークするか否かを測定し、シークしない場合に前記対象ファイルのアクセス態様をシーケンシャルアクセスと判断する一方、シークする場合に前記対象ファイルのアクセス態様をランダムアクセスと判断する、付記3〜付記6のいずれか一項に記載のストレージ制御方法。
(付記8)
前記ストレージ装置は、前記データブロックのアクセス態様がシーケンシャルアクセスである場合、且つ、前記データブロックが再配置される前記複数のディスクのうちの一のディスク上に、連続する複数の前記データブロックが存在する場合、前記一のディスク上に複数の前記データブロックを連続的に再配置する、付記7記載のストレージ制御方法。
(付記9)
前記ストレージ装置は、前記データブロックのアクセス態様がシーケンシャルアクセスである場合、且つ、前記データブロックが再配置される前記複数のディスクのうちの一のディスク上に、前記データブロックの前側または後側に続く他のデータブロックが存在しない場合、前記一のディスク上に再配置された前記データブロックの前側または後側に、前記他のデータブロック用の空き領域を設ける、付記7または付記8に記載のストレージ制御方法。
(付記10)
前記ストレージ装置は、前記空き領域を設けた後、所定期間が経過しても、または、前記データブロックの再配置を所定回数行なっても、前記空き領域に前記他のデータブロックが再配置されない場合、前記空き領域を解放する、付記9記載のストレージ制御方法。
(付記11)
前記ストレージ装置は、アクセス態様がランダムアクセスであるデータブロックを、アクセス態様がシーケンシャルアクセスであるデータブロックの配置状態に応じて再配置する、付記8〜付記10のいずれか一項に記載のストレージ制御方法。
(付記12)
複数の情報処理装置が前記ストレージ装置にアクセスする場合、前記複数の情報処理装置のうちの少なくとも一つを前記情報処理装置として機能させる、付記1〜付記11のいずれか一項に記載のストレージ制御方法。
(付記13)
複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とを備えたストレージシステムであって、
前記ストレージ装置は、
前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報を、前記情報処理装置に通知するディスク制御部を有し、
前記情報処理装置は、
前記階層化ディスクへのアクセスを行なうアプリケーションが用いるファイル毎のアクセス態様情報、および、前記ディスク制御部から通知された前記各ファイルの前記ブロック情報に基づき、前記データブロックのアクセス態様を判断する管理部を有し、
前記ストレージ装置の前記ディスク制御部は、前記管理部によって判断された前記データブロックのアクセス態様に基づき、前記階層化ディスクに対する前記データブロックの再配置を行なう、ストレージシステム。
(付記14)
前記情報処理装置の前記管理部は、前記データブロックに対するアクセス頻度を前記ストレージ装置から取得し、取得した前記アクセス頻度と、前記情報処理装置において判断された前記データブロックのアクセス態様とに基づき、前記階層化ディスクに対する前記データブロックの再配置の内容を決定し、当該内容に従った前記データブロックの再配置を前記ストレージ装置に指示し、
前記ストレージ装置の前記ディスク制御部は、前記管理部から指示された前記データブロックの再配置を前記階層化ディスクに対し行なう、付記13記載のストレージシステム。
(付記15)
前記情報処理装置は、
前記アプリケーションから入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定するように構築された仮想デバイスを有する、付記14記載のストレージシステム。
(付記16)
前記情報処理装置は、
前記仮想デバイスによって特定された前記対象ファイルに関する情報と前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として登録するテーブルを有し、
前記情報処理装置の前記管理部は、
前記テーブルに登録された前記ファイル毎のアクセス態様情報と前記ディスク制御部から通知された前記各ファイルの前記ブロック情報とに基づき、前記データブロックのアクセス態様を判断する、付記15記載のストレージシステム。
(付記17)
前記仮想デバイスは、前記アプリケーションが用いる前記ファイルのうち、前記テーブルに登録されていない前記対象ファイルについて前記アクセス態様を特定する、付記16記載のストレージシステム。
(付記18)
前記仮想デバイスは、前記アプリケーションによるアクセス開始後、所定時間の間、前記アクセス態様の特定を行なう、付記15〜付記17のいずれか一項に記載のストレージシステム。
(付記19)
前記仮想デバイスは、前記入出力要求が前記対象ファイルの入出力位置をインデックスでシークするか否かを測定し、シークしない場合に前記対象ファイルのアクセス態様をシーケンシャルアクセスと判断する一方、シークする場合に前記対象ファイルのアクセス態様をランダムアクセスと判断する、付記15〜付記18のいずれか一項に記載のストレージシステム。
(付記20)
複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とを備えたストレージシステムに含まれるコンピュータに、
前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報を、前記ストレージ装置から前記情報処理装置に通知し、
前記情報処理装置において、前記階層化ディスクへのアクセスを行なうアプリケーションが用いるファイル毎のアクセス態様情報、および、前記ストレージ装置から通知された前記各ファイルの前記ブロック情報に基づき、前記データブロックのアクセス態様を判断し、
前記ストレージ装置において、前記情報処理装置において判断された前記データブロックのアクセス態様に基づく前記階層化ディスクに対する前記データブロックの再配置を行なう、
処理を実行させる、ストレージ制御プログラム。
(付記21)
複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とを備えたストレージシステムに含まれるコンピュータに、
前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報を、前記ストレージ装置から前記情報処理装置に通知し、
前記情報処理装置において、前記階層化ディスクへのアクセスを行なうアプリケーションが用いるファイル毎のアクセス態様情報、および、前記ストレージ装置から通知された前記各ファイルの前記ブロック情報に基づき、前記データブロックのアクセス態様を判断し、
前記ストレージ装置において、前記情報処理装置において判断された前記データブロックのアクセス態様に基づく前記階層化ディスクに対する前記データブロックの再配置を行なう、
処理を実行させる、ストレージ制御プログラムを記録したコンピュータ読取可能な記録媒体。
1 ストレージシステム
10 ストレージ装置
11 階層化ディスク
110 論理ディスク(論理ユニット)
111 SSD(ディスク)
112 SASディスク(ディスク)
12 CPU(処理部,コンピュータ)
121 ディスク制御部
13 メモリ
20 サーバ(情報処理装置)
21 CPU(処理部,コンピュータ)
211 アプリケーション(アプリケーションプログラム)
212 仮想ドライバ(仮想デバイス,アクセス態様特定部)
213 管理部
22 メモリ
221 ファイル・アクセス態様テーブル(テーブル)

Claims (10)

  1. 特性の異なる複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とが接続されたストレージシステムであって、
    前記ストレージ装置は、
    前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報と、前記データブロックに対するアクセス頻度を含むアクセス情報とを、前記情報処理装置に通知するディスク制御部を有し、
    前記情報処理装置は、
    前記階層化ディスクに対する入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定するアクセス態様特定部と、
    前記アクセス態様特定部によって特定された前記ファイル毎のアクセス態様情報と、前記ディスク制御部から通知された前記ブロック情報および前記アクセス情報に含まれる情報とを対応付けてファイルアクセス態様情報として管理し、前記ファイルアクセス態様情報に基づいて再配置対象データブロックを判断し、前記ファイルアクセス態様情報に基づいて前記再配置対象データブロックのアクセス態様を判断し、前記再配置対象データブロックのアクセス態様と前記ブロック情報とに基づいて、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置の内容を決定して前記ストレージ装置の前記ディスク制御部に指示する管理部と、を有し、
    前記ストレージ装置の前記ディスク制御部は、前記情報処理装置の前記管理部から指示された前記再配置の内容に従って、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置を行なう、ストレージシステム。
  2. 前記アクセス態様特定部は、前記入出力要求された複数のファイルのうち、前記ファイルアクセス態様情報に登録されていないファイルについて前記アクセス態様を特定する、請求項記載のストレージシステム。
  3. 前記アクセス態様特定部は、前記入出力要求が前記対象ファイルの入出力位置をインデックスでシークするか否かを測定し、シークしない場合に前記対象ファイルのアクセス態様をシーケンシャルアクセスと判断する一方、シークする場合に前記対象ファイルのアクセス態様をランダムアクセスと判断する、請求項1または請求項2に記載のストレージシステム。
  4. 前記情報処理装置の前記管理部は、前記再配置対象データブロックのアクセス態様がシーケンシャルアクセスである場合、且つ、前記再配置対象データブロックが再配置される前記複数のディスクのうちの一のディスク上に、連続する複数のデータブロックが存在する場合、前記一のディスク上に前記複数のデータブロックを連続的に再配置するように、前記再配置の内容を決定して前記ストレージ装置の前記ディスク制御部に指示する、請求項3記載のストレージシステム。
  5. 前記情報処理装置の前記管理部は、前記再配置対象データブロックのアクセス態様がシーケンシャルアクセスである場合、且つ、前記再配置対象データブロックが再配置される前記複数のディスクのうちの一のディスク上に、前記再配置対象データブロックの前側または後側に続く他のデータブロックが存在しない場合、前記一のディスク上に再配置された前記再配置対象データブロックの前側または後側に、前記他のデータブロック用の空き領域を設けるように、前記再配置の内容を決定して前記ストレージ装置の前記ディスク制御部に指示する、請求項3または請求項4に記載のストレージシステム。
  6. 前記情報処理装置の前記管理部は、前記空き領域を設けた後、所定期間が経過しても、または、前記再配置対象データブロックの再配置を所定回数行なっても、前記空き領域に前記他のデータブロックが再配置されない場合、前記空き領域を解放するように、前記再配置の内容を決定して前記ストレージ装置の前記ディスク制御部に指示する、請求項記載のストレージシステム。
  7. 前記情報処理装置の前記管理部は、アクセス態様がランダムアクセスであるデータブロックを、アクセス態様がシーケンシャルアクセスであるデータブロックの配置状態に応じて再配置するように、前記再配置の内容を決定して前記ストレージ装置の前記ディスク制御部に指示する、請求項3〜請求項6に記載のストレージシステム。
  8. 特性の異なる複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とが接続されたストレージシステムにおいて、
    前記ストレージ装置は、
    前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報と、前記データブロックに対するアクセス頻度を含むアクセス情報とを、前記情報処理装置に通知し、
    前記情報処理装置は、
    前記階層化ディスクに対する入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定し、
    特定された前記ファイル毎のアクセス態様情報と、前記ストレージ装置から通知された前記ブロック情報および前記アクセス情報に含まれる情報とを対応付けてファイルアクセス態様情報として管理し、
    前記ファイルアクセス態様情報に基づいて再配置対象データブロックを判断し、
    前記ファイルアクセス態様情報に基づいて前記再配置対象データブロックのアクセス態様を判断し、
    前記再配置対象データブロックのアクセス態様と前記ブロック情報とに基づいて、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置の内容を決定して前記ストレージ装置に指示し、
    前記ストレージ装置は、前記情報処理装置から指示された前記再配置の内容に従って、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置を行なう、ストレージ制御方法。
  9. 特性の異なる複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とが接続されたストレージシステムにおける前記ストレージ装置に含まれるコンピュータに、
    前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報と、前記データブロックに対するアクセス頻度を含むアクセス情報とを、前記ストレージ装置から前記情報処理装置に通知し、
    前記情報処理装置、前記階層化ディスクに対する入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定し、特定された前記ファイル毎のアクセス態様情報と、前記ストレージ装置から通知された前記ブロック情報および前記アクセス情報とを対応付けてファイルアクセス態様情報として管理し、前記ファイルアクセス態様情報に基づいて再配置対象データブロックを判断し、前記ファイルアクセス態様情報に基づいて前記再配置対象データブロックのアクセス態様を判断し、前記再配置対象データブロックのアクセス態様と前記ブロック情報とに基づいて、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置の内容を決定して前記ストレージ装置に指示することによって、前記情報処理装置から指示された、前記再配置の内容に従って、前記再配置対象データブロックを配置する前記階層化ディスクにおける記憶位置の再配置を行なう、
    処理を実行させる、ストレージ制御プログラム。
  10. 特性の異なる複数のディスクを有する階層化ディスクを含むストレージ装置と、前記ストレージ装置にアクセスする情報処理装置とが接続されたストレージシステムにおける前記情報処理装置に含まれるコンピュータに、
    前記階層化ディスクに対する入出力要求を受けると前記入出力要求の対象ファイルと前記対象ファイルのアクセス態様とを前記ファイル毎のアクセス態様情報として特定し、
    特定された前記ファイル毎のアクセス態様情報と、前記ストレージ装置から通知された、前記階層化ディスクに保存された各ファイルに含まれるデータブロックの記憶位置を含むブロック情報、および、前記ストレージ装置から通知された、前記データブロックに対するアクセス頻度を含むアクセス情報に含まれる情報と、を対応付けてファイルアクセス態様情報として管理し、
    前記ファイルアクセス態様情報に基づいて再配置対象データブロックを判断し、
    前記ファイルアクセス態様情報に基づいて前記再配置対象データブロックのアクセス態様を判断し、
    前記再配置対象データブロックのアクセス態様と前記ブロック情報とに基づいて、前記再配置対象データブロックを配置する前記階層化ディスクにおける位置情報の再配置を行なう、
    処理を実行させる、ストレージ制御プログラム。
JP2013063854A 2013-03-26 2013-03-26 ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム Active JP6065695B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013063854A JP6065695B2 (ja) 2013-03-26 2013-03-26 ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム
US14/144,773 US9430168B2 (en) 2013-03-26 2013-12-31 Recording medium storing a program for data relocation, data storage system and data relocating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013063854A JP6065695B2 (ja) 2013-03-26 2013-03-26 ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム

Publications (3)

Publication Number Publication Date
JP2014191398A JP2014191398A (ja) 2014-10-06
JP2014191398A5 JP2014191398A5 (ja) 2016-01-07
JP6065695B2 true JP6065695B2 (ja) 2017-01-25

Family

ID=51621997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013063854A Active JP6065695B2 (ja) 2013-03-26 2013-03-26 ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US9430168B2 (ja)
JP (1) JP6065695B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825324B (zh) 2013-11-27 2023-05-30 北京奥星贝斯科技有限公司 混合存储的控制方法及混合存储系统
WO2016054640A1 (en) * 2014-10-03 2016-04-07 Ezuniverse Inc. Data management system
JP6165909B1 (ja) * 2016-03-16 2017-07-19 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、及び階層化制御方法
US10528261B2 (en) 2017-12-01 2020-01-07 International Business Machines Corporation Optimized performance through leveraging appropriate disk sectors for defragmentation in an erasure coded heterogeneous object storage cloud
US11119654B2 (en) * 2018-07-10 2021-09-14 International Business Machines Corporation Determining an optimal storage environment for data sets and for migrating data sets
CN114816277B (zh) * 2022-06-30 2022-11-11 广东睿江云计算股份有限公司 文件数据块顺序性保障的控制方法及控制系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3747937B2 (ja) * 1993-06-21 2006-02-22 株式会社日立製作所 計算機システムおよび二次記憶装置
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
US6766430B2 (en) * 2000-07-06 2004-07-20 Hitachi, Ltd. Data reallocation among storage systems
JP3988417B2 (ja) 2001-09-05 2007-10-10 日本電気株式会社 コンピュータシステム、記憶装置、ファイル配置方法、及びファイル配置プログラム
JP3744504B2 (ja) 2003-04-01 2006-02-15 株式会社日立製作所 プロセッサ装置
US7032090B2 (en) * 2003-04-08 2006-04-18 International Business Machines Corporation Method, system, and apparatus for releasing storage in a fast replication environment
US7464250B2 (en) * 2004-03-11 2008-12-09 International Business Machines Corporation Method to reduce disk access time during predictable loading sequences
JP4480479B2 (ja) 2004-06-15 2010-06-16 株式会社日立製作所 ストレージシステム
US7512135B2 (en) * 2004-12-10 2009-03-31 International Business Machines Corporation Method for transferring data among a logical layer, physical layer, and storage device
US7472249B2 (en) * 2006-06-30 2008-12-30 Sun Microsystems, Inc. Kernel memory free algorithm
US7555575B2 (en) 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
US9110791B2 (en) * 2008-03-03 2015-08-18 Microsoft Technology Licensing, Llc Optimistic object relocation
US8812805B2 (en) * 2008-08-05 2014-08-19 Broadcom Corporation Mixed technology storage device that supports a plurality of storage technologies
US8407436B2 (en) * 2009-02-11 2013-03-26 Hitachi, Ltd. Methods and apparatus for migrating thin provisioning volumes between storage systems
US8321645B2 (en) * 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
US8280854B1 (en) * 2009-09-01 2012-10-02 Symantec Corporation Systems and methods for relocating deduplicated data within a multi-device storage system
WO2012095892A1 (en) * 2011-01-14 2012-07-19 Hitachi, Ltd. Storage apparatus and response time control method

Also Published As

Publication number Publication date
US9430168B2 (en) 2016-08-30
JP2014191398A (ja) 2014-10-06
US20140297944A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP6065695B2 (ja) ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム
US10176212B1 (en) Top level tier management
US9229653B2 (en) Write spike performance enhancement in hybrid storage systems
JP4749255B2 (ja) 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP5271424B2 (ja) ダイナミックストレージ階層化によるオンラインデータ配置をボリュームに提供するためのアロケートオンライトのスナップショット機構
JP6476932B2 (ja) ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法
JP5314158B2 (ja) ダイナミックストレージティアリング構成に基づいてデータをプレステージングする方法、及び、コンピュータ可読媒体
US9274941B1 (en) Facilitating data migration between tiers
US8621176B2 (en) Method and system for allocating data objects for efficient reads in a mass storage subsystem
JP2012515969A (ja) アロケートオンライトのスナップショットを用いた、ダイナミックストレージ階層化のための方法及びシステム
JP6409613B2 (ja) 情報処理装置,マルチパス制御方法及びマルチパス制御プログラム
KR20130100722A (ko) Smr raid용의 대블록 무작위 쓰기 핫 스페어 ssd 구현
JP6350162B2 (ja) 制御装置
TWI471725B (zh) 用於管理儲存陣列的方法及具有執行該方法的指令之電腦可讀取記錄媒體
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20180341423A1 (en) Storage control device and information processing system
JP2013041547A5 (ja)
JP2015158711A (ja) ストレージ制御装置、仮想ストレージ装置、ストレージ制御方法、及びストレージ制御プログラム
JP5729479B2 (ja) 仮想テープ装置及び仮想テープ装置の制御方法
JPWO2012127566A1 (ja) ストレージ装置,制御装置及び制御方法
US20100161920A1 (en) Data management apparatus, data management system, and data management method
US9841930B2 (en) Storage control apparatus and storage control method
JP3127796B2 (ja) 情報記録再生装置
US10268386B2 (en) Data storage device including temporary storage locations
JP7200746B2 (ja) 制御装置、及び制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6065695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150