JP6955142B2 - 情報処理装置、ストレージ制御方法およびストレージ制御プログラム - Google Patents

情報処理装置、ストレージ制御方法およびストレージ制御プログラム Download PDF

Info

Publication number
JP6955142B2
JP6955142B2 JP2017052987A JP2017052987A JP6955142B2 JP 6955142 B2 JP6955142 B2 JP 6955142B2 JP 2017052987 A JP2017052987 A JP 2017052987A JP 2017052987 A JP2017052987 A JP 2017052987A JP 6955142 B2 JP6955142 B2 JP 6955142B2
Authority
JP
Japan
Prior art keywords
load state
time
data
storage device
set time
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
JP2017052987A
Other languages
English (en)
Other versions
JP2018156423A (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 JP2017052987A priority Critical patent/JP6955142B2/ja
Priority to US15/920,734 priority patent/US11010081B2/en
Publication of JP2018156423A publication Critical patent/JP2018156423A/ja
Application granted granted Critical
Publication of JP6955142B2 publication Critical patent/JP6955142B2/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/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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、ストレージ制御方法およびストレージ制御プログラムに関する。
記憶装置については、一般的に、アクセス性能が高いほど容量当たりのコストが高い。そのため、要求されるアクセス性能や容量、コストの上限のバランスを考慮して、記憶装置の種別や機種が選択される。このような観点から、アクセス性能の異なる複数の記憶装置を有効利用することが考えられている。例えば、ストレージシステム内の記憶装置をアクセス性能に応じて階層化し、階層間でデータを移動するストレージ階層化技術が知られている。
ストレージ階層化技術を用いたシステムの例として、次のような階層ストレージ制御装置が提案されている。この階層ストレージ制御装置は、ボリュームの領域からアクセスが高負荷の領域を検出し、高負荷領域のデータを低速な記憶装置から高速な記憶装置へ移動させる。また、階層ストレージ制御装置は、高負荷と判定された領域において、一定時間高負荷でない状態が続くと高負荷が消滅したとみなし、その領域のデータを高速な記憶装置から低速な記憶装置へ移動させる。
また、例えば、次のような階層型ストレージも提案されている。この階層型ストレージは、あらかじめ特定のプロセスを実行するユーザIDを登録しておき、そのユーザIDからあるファイルにリコール操作があった後、このユーザIDからそのファイルへのアクセスが一定時間なかった場合に、そのファイルをマイグレートする。
特開2014−191503号公報 特開2016−71601号公報
ところで、上記の階層ストレージ制御装置は、高負荷と判定された領域において、一定の判定時間だけ高負荷でない状態が続いた場合に、その領域のデータを低速な記憶装置へ移動させる。ここで、判定時間は固定的に設定されているが、例えば、アクセス負荷の状況に応じて判定時間を動的に変更することで、移動させるべきデータを適切に選択し、高速な記憶領域を有効に利用できると考えられる。
この場合、高負荷と判定された領域が高負荷でない状態に遷移してから、どれだけの期間アクセス負荷の状況を監視するかという点に課題がある。例えば、監視時間が長いほど、アクセス負荷の状況を正確に把握でき、上記の判定時間を適正化できる。その反面、監視処理の負荷が高くなり、この負荷がボリュームに対するアクセス性能に悪影響を与える可能性がある。
1つの側面では、本発明は、高速な記憶装置から低速な記憶装置へ移動させるデータの選択基準を適正化するための処理負荷を軽減した情報処理装置、ストレージ制御方法およびストレージ制御プログラムを提供することを目的とする。
1つの案では、記憶部と制御部を有する情報処理装置が提供される。記憶部は、第1の設定時間と、第1の設定時間より長い第2の設定時間とを記憶する。制御部は、論理記憶領域に含まれ、データが第1の記憶装置に記憶された複数の第1の領域の中から、アクセス負荷が高い高負荷状態からアクセス負荷が低い低負荷状態に遷移した複数の第2の領域を特定し、複数の第2の領域のうち、低負荷状態に遷移してから第1の設定時間が経過したときに低負荷状態が継続している領域のデータを、第1の記憶装置から第1の記憶装置よりアクセス速度が低い第2の記憶装置に移動させ、複数の第2の領域のそれぞれについて、低負荷状態に遷移してから第2の設定時間が経過するまでアクセス負荷状況を監視し、アクセス負荷状況の監視結果に基づいて、第1の設定時間を更新し、第1の期間において低負荷状態に遷移した第2の領域のうち、データが第2の記憶装置に移動した領域についてのデータ移動時間を平均した平均移動時間に基づいて、第2の設定時間を更新する。
また、1つの案では、上記の情報処理装置と同様の処理をコンピュータが実行するストレージ制御方法が提供される。
さらに、1つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1つの側面では、高速な記憶装置から低速な記憶装置へ移動させるデータの選択基準を適正化するための処理負荷を軽減できる。
第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。 第2の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。 情報処理装置が有する処理機能の構成例を示すブロック図である。 階層テーブルのデータ構成例を示す図である。 ワークロード分析部の内部構成を示す図である。 不揮発DIMMへのデータ移動処理について説明するための図である。 サブLUN群でのIO発生パターンの例を示す図である。 第1管理テーブルのデータ構成例を示す図である。 第2管理テーブルのデータ構成例を示す図である。 データ移動制御手順の例を示すフローチャートである。 不揮発DIMMへのデータ移動制御手順の例を示すフローチャートである。 SSDへのデータ移動制御手順の例を示すフローチャートである。 データがSSDに移動したサブLUN群の監視処理手順の例を示すフローチャートである。 Ta更新処理手順の第1の例を示すフローチャートである。 Ta更新処理手順の第2の例を示すフローチャートである。 Tmax更新処理手順の例を示すフローチャートである。 データ移動制御部の処理手順の例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。情報処理装置1は、記憶部1aと制御部1bを有する。
記憶部1aは、情報処理装置1が備える記憶装置(図示せず)の記憶領域として実現される。記憶部1aには、設定時間T1,T2が記憶される。ここで、設定時間T2は、設定時間T1より大きい値であるものとする。
制御部1bは、例えば、プロセッサ(図示せず)として実現される。制御部1bは、論理記憶領域2におけるアクセス負荷の状況に基づいて、論理記憶領域2に含まれるデータを記憶装置3a,3bのいずれかに配置する機能を備える。換言すると、制御部1bの制御により、論理記憶領域2に対応する物理領域として、記憶装置3a,3bのいずれかの記憶領域が割り当てられる。
ここで、記憶装置3aのアクセス速度は、記憶装置3bより高速であるものとする。制御部1bは、基本的に、論理記憶領域2のデータのうち、アクセス負荷の高いデータを記憶装置3aに配置し、アクセス負荷の低いデータを記憶装置3bに配置する。なお、記憶装置3aは、情報処理装置1の内部に設けられていてもよいし、外部に設けられていてもよい。同様に、記憶装置3bは、情報処理装置1の内部に設けられていてもよいし、外部に設けられていてもよい。
以下、論理記憶領域2に含まれる領域R1〜R3(第1の領域)が、アクセス負荷が高い高負荷状態になり、領域R1〜R3に対応するデータが記憶装置3aに移動されたものとする。
制御部1bは、領域R1〜R3の中から、アクセス負荷が低い低負荷状態に遷移した領域R2,R3(第2の領域)を特定する(ステップS1)。そして、制御部1bは、領域R2,R3のうち、低負荷状態に遷移してから設定時間T1が経過したときに低負荷状態が継続している領域のデータを、記憶装置3aから記憶装置3bに移動させる(ステップS2)。
論理記憶領域2上のある領域が高負荷状態から低負荷状態に遷移した場合、その後に比較的短時間で再び高負荷状態に遷移する場合がある。このような事象の発生に備えて、ステップS2の処理では、その領域が低負荷状態に遷移しても、データはすぐに記憶装置3bに移動されずに、設定時間T1が経過するまでの一定時間、記憶装置3aに保持される。これにより、記憶装置3a,3bの間での無駄なデータ移動が行われにくくなる。
例えば、図1に示すタイムチャート4は、高負荷状態に遷移して、対応するデータが記憶装置3aに移動したある領域についての、その後のアクセス負荷状況の例を示す。このタイムチャート4において、低負荷状態に遷移した時刻t1から、設定時間T1が経過する時刻t2までの間に再び高負荷状態に遷移した場合には、データ移動が行われることなく、記憶装置3aに対してアクセスが行われる。
また、制御部1bは、領域R2,R3のそれぞれについて、低負荷状態に遷移してから設定時間T2が経過するまでアクセス負荷状況を監視する(ステップS3)。この監視によれば、制御部1bは、例えば、設定時間T2が経過した時点を限度として、監視対象の領域が再び高負荷状態に遷移して、その領域のデータを記憶装置3aへ移動させる必要が生じるまでの時間を検出することができる。例えば、タイムチャート4において、制御部1bは、設定時間T2が経過した時刻t4までの間(例えば時刻t3)に、監視対象の領域が再び高負荷状態に遷移した場合には、時刻t1から時刻t3までの時間を検出できる。
制御部1bは、以上のステップS1〜S3の処理を、記憶装置3aに対して高負荷状態と判定された領域のデータが移動されるのに伴って、継続的に実行する。そして、制御部1bは、ある期間におけるステップS3によるアクセス負荷状況の監視結果に基づいて、設定時間T1を更新する(ステップS4)。これにより、アクセス負荷状況に応じて、設定時間T1を適正化することができる。設定時間T1の適正化により、記憶装置3aから記憶装置3bへ移動するべきデータを、無駄なデータ移動ができるだけ実行されないように適切に選択することができる。
また、制御部1bは、ある期間において、対応するデータが記憶装置3aに移動した後に低負荷状態に遷移した領域のうち、その後にデータが記憶装置3bに移動した領域についてのデータ移動にかかった時間の平均値(平均移動時間)を計算する。そして、制御部1bは、算出された平均移動時間に基づいて、設定時間T2を更新する(ステップS5)。
ここで、設定時間T2が長いほど、監視対象の領域が低負荷状態に遷移してからのアクセス負荷状況の監視時間が長くなるので、制御部1bは、アクセス負荷状況を正確に検出できる。そのため、設定時間T2が長いほど、アクセス負荷状況に基づいて算出される、更新後の設定時間T1の算出精度が高くなる。その反面、アクセス負荷状況の監視処理負荷が高くなり、その処理負荷が論理記憶領域2に対するアクセス性能に悪影響を与える可能性が出てくる。
これに対して、制御部1bは、以下のような観点から、データ移動にかかった時間を基準として設定時間T2を適正化する。設定時間T2が短くなるほど、設定時間T1も短くなることから、データが記憶装置3aへ移動してから記憶装置3bに再移動するまでの最小間隔が短くなる。そのため、設定時間T2が短いほど、データ移動が頻繁に実行される可能性が高くなり、その結果として、論理記憶領域2へのアクセス性能が低下する場合がある。
データ移動が論理記憶領域2へのアクセス性能に与える影響を小さくするためには、論理記憶領域2へのアクセスの実行時間全体に対する、データ移動の実行時間の割合を小さくすることが望ましい。そこで、制御部1bは、例えば、設定時間T2を、監視対象領域のデータ移動の実行に必要な時間よりも十分に長い値に設定する。この方法によれば、監視対象領域のデータ移動までの最小時間である設定時間T1に対する、データ移動の実行時間の相対的な割合が小さくなる。その結果、論理記憶領域2へのアクセス性能に悪影響を与えるほどデータ移動の実行頻度が高くなる可能性が低下する。
これにより、制御部1bは、アクセス負荷状況の監視時間を、監視対象領域のデータ移動時間を基準として設定される範囲内に抑えることができる。設定時間T2が、データ移動の実行に必要な時間より十分に長い値に設定されることで、設定時間T1の算出精度を大きく低下させない範囲で監視時間を短縮することができる。その結果、記憶装置3bにデータを移動させる領域を選択するための判定基準を、低処理負荷で適正化できるようになる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。図2に示す情報処理装置100は、サーバ機能を備えるコンピュータである。図2に示すように、情報処理装置100は、例えば、プロセッサ101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、グラフィックインタフェース(I/F)104、入力インタフェース(I/F)105、読み取り装置106、ネットワークインタフェース(I/F)107、不揮発DIMM(Dual-Inline Memory Module)108およびSSD(Solid State Drive)109を有する。
プロセッサ101は、情報処理装置100全体を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、情報処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
HDD103は、情報処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSDなどの他の種類の不揮発性記憶装置を使用することもできる。
グラフィックインタフェース104には、表示装置104aが接続される。グラフィックインタフェース104は、プロセッサ101からの命令にしたがって、画像を表示装置104aに表示させる。表示装置104aとしては、例えば、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続される。入力インタフェース105は、入力操作に応じて入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、例えば、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース107は、ネットワーク107aを介して他の装置(図示せず)との間でデータの送受信を行う。
不揮発DIMM108およびSSD109も、情報処理装置100の補助記憶装置の1つとして使用される。後述するように、不揮発DIMM108およびSSD109は、サーバ機能を実現するサーバアプリケーションからアクセスされる論理ボリュームの実記憶領域を実現する。
不揮発DIMM108は、DIMMスロット108aに装着される不揮発性メモリであり、例えば、NVRAM(Non-Volatile Random Access Memory)である。SSD109は、PCI Express(PCIe,PCI:Peripheral Component Interconnect)スロット109aに接続され、NVM Express規格(NVM:Non-Volatile Memory)にしたがってアクセスが制御される。ここで、不揮発DIMM108は、SSD109と比較してアクセス速度が高い。
なお、DIMMスロット108aは、不揮発DIMM108と接続するためのインタフェースの一例であり、PCIeスロット109aは、SSD109と接続するためのインタフェースの一例である。また、実際には、RAM102もDIMMスロット108aに接続されていてもよい。さらに、HDD103もPCIeスロット109aに接続されていてもよい。
以上のようなハードウェア構成によって、情報処理装置100の処理機能を実現することができる。
図3は、情報処理装置が有する処理機能の構成例を示すブロック図である。情報処理装置100は、サーバアプリケーション110、階層化管理部120、階層化制御部130、ドライバ141,142およびIO(Input/Output)トレース部150を有する。
階層化制御部130、ドライバ141,142およびIOトレース部150は、OS空間161に属する。すなわち、階層化制御部130、ドライバ141,142およびIOトレース部150の処理は、プロセッサ101がOSプログラムを実行することで実現される。一方、サーバアプリケーション110および階層化管理部120は、ユーザ空間162に属する。すなわち、サーバアプリケーション110の処理と階層化管理部120の処理は、プロセッサ101がそれぞれ個別のアプリケーションプログラムを実行することで実現される。
サーバアプリケーション110は、ユーザに対して所定のサービスを提供するための処理を実行する。情報処理装置100には、サーバアプリケーション110からのアクセス対象となる1以上の論理ボリュームが設定されている。本実施の形態では、論理ボリュームを「LUN(Logical Unit Number)」と呼ぶ。サーバアプリケーション110は、階層化制御部130を介してLUNに対するIO処理を実行する。なお、以下の説明では、サーバアプリケーション110からのLUNに対するIOを「ユーザIO」と呼ぶ。
LUNに対応する物理記憶領域は、不揮発DIMM108およびSSD109によって実現される。LUNは、所定サイズ(例えば、1GB)の「サブLUN」に分割される。そして、サブLUNを単位として、アクセス負荷に応じて不揮発DIMM108とSSD109のいずれかの記憶領域が割り当てられる「階層化制御」が行われる。すなわち、アクセス負荷が高いサブLUNには、アクセス速度の高い不揮発DIMM108の記憶領域が割り当てられ、アクセス負荷が低いサブLUNには、アクセス速度の低いSSD109の記憶領域が割り当てられる。
階層化管理部120は、データ収集部121、ワークロード分析部122および移動指示部123を有する。また、情報処理装置100の記憶装置(例えば、RAM102)には、収集情報データベース(DB)124が記憶され、階層化管理部120によって参照される。
データ収集部121は、LUNに対するユーザIOのトレースログをIOトレース部150から一定時間ごとに収集する。データ収集部121は、収集したトレースログに基づいて、サブLUNごとのユーザIOの数を収集情報データベース124に登録する。収集情報データベース124には、データ収集部121による登録処理によって、サブLUNを識別するIDと、一定時間におけるユーザIOの数と、収集された期間を示すタイムスタンプとを含むレコードが蓄積される。
ワークロード分析部122は、収集情報データベース124に基づいて、各サブLUNにおけるアクセス負荷を判定し、各サブLUNに対して不揮発DIMM108とSSD109のどちらの記憶領域を割り当てるかを判定する。ワークロード分析部122は、割り当て判定の結果、不揮発DIMM108とSSD109との間でデータを移動させるべきサブLUNが存在する場合には、そのサブLUNについてのデータ移動を移動指示部123に指示する。
移動指示部123は、ワークロード分析部122からの指示に応じて、不揮発DIMM108とSSD109との間のデータ移動を階層化制御部130に指示する。
階層化制御部130は、データ移動制御部131とユーザIO制御部132とを有する。また、情報処理装置100の記憶装置(例えば、RAM102)には、階層テーブル133が記憶され、階層化制御部130に参照される。
階層テーブル133は、各サブLUNのデータが不揮発DIMM108またはSSD109のどの領域に格納されているかを示す情報を保持する。
データ移動制御部131は、移動指示部123から、不揮発DIMM108とSSD109との間のデータ移動の指示を受ける。データ移動制御部131は、ドライバ141,142に対してIO要求を発行することで、指示されたデータ移動処理を実行する。また、データ移動制御部131は、データ移動処理の実行に応じて階層テーブル133を更新する。
ユーザIO制御部132は、階層テーブル133に基づいて、サーバアプリケーション110からのLUNに対するIO要求をドライバ141,142のいずれかに振り分ける。
ドライバ141は、階層化制御部130からのIO要求に基づいて、不揮発DIMM108に対するIOを実行する。ドライバ142は、階層化制御部130からのIO要求に基づいて、SSD109に対するIOを実行する。
IOトレース部150は、LUNに対するIOをトレースし、トレースログを記憶装置(例えば、RAM102)に記録する。IOトレース部150は、データ収集部121からの要求に応じて、一定時間ごとのユーザIOのトレース結果を出力する。
図4は、階層テーブルのデータ構成例を示す図である。階層テーブル133は、例えば、サブLUNごとのレコードを有する。各レコードには、LUNオフセット、不揮発DIMMオフセットおよびSSDオフセットが登録される。
LUNオフセットは、LUN上のサブLUNの位置を示すオフセットである。例えば、LUNオフセットには、サブLUNの先頭オフセットが登録される。不揮発DIMMオフセットには、サブLUNのデータが不揮発DIMM108に格納されている場合に、その格納位置を示す不揮発DIMM108上のオフセットが登録される。SSDオフセットには、サブLUNのデータがSSD109に格納されている場合に、その格納位置を示すSSD109上のオフセットが登録される。
ユーザIO制御部132は、サーバアプリケーション110からLUN上のオフセットが指定されたIO要求を受けると、階層テーブル133のレコードのうち、指定されたLUNが含まれるサブLUNに対応するレコードを参照する。レコードに不揮発DIMM108のオフセットが登録されている場合、ユーザIO制御部132は、そのオフセットから不揮発DIMM108上の該当データ領域のオフセットを計算し、算出されたオフセットを指定したIO要求をドライバ141に出力する。一方、レコードにSSD109のオフセットが登録されている場合、ユーザIO制御部132は、そのオフセットからSSD109上の該当データ領域のオフセットを計算し、算出されたオフセットを指定したIO要求をドライバ142に出力する。
また、IO要求が書き込み要求であって、レコードに不揮発DIMM108とSSD109のいずれのオフセットも登録されていない場合、ユーザIO制御部132は、SSD109の空き領域をレコードに対応するサブLUNに割り当てる。ユーザIO制御部132は、割り当てた空き領域を示すオフセットをSSDオフセットの項目に登録し、この領域におけるデータ書き込み先領域のオフセットを指定したIO要求をドライバ142に出力する。
図5は、ワークロード分析部の内部構成を示す図である。ワークロード分析部122は、DIMM移動制御部122a、SSD移動制御部122bおよびパラメータ更新部122cを有する。また、情報処理装置100の記憶装置(例えば、RAM102)には、収集情報データベース(DB)124に加えて、第1管理テーブル125と第2管理テーブル126とがさらに記憶され、ワークロード分析部122によって参照される。さらに、情報処理装置100は、ワークロード分析部122によって参照されるパラメータ記憶部127を有する。
DIMM移動制御部122aは、収集情報データベース124の情報に基づいて、一定時間内にユーザIOが集中したLUNの領域を示す「IO集中領域」を判定し、その領域を示す情報を第1管理テーブル125に登録する。IO集中領域は、隣接する1以上のサブLUNを含むサブLUN群として特定される。また、DIMM移動制御部122aは、第1管理テーブル125に登録されたサブLUN群のうち、所定回数連続してIO集中領域と判定されたサブLUN群のデータを、SSD109から不揮発DIMM108へ移動させるように移動指示部123に指示する。
SSD移動制御部122bは、データが不揮発DIMM108へ移動されたサブLUN群の中から、データをSSD109へ移動させるべきサブLUN群を判定し、このサブLUN群のデータ移動を移動指示部123に指示する。SSD移動制御部122bは、SSD109へデータを移動させたサブLUN群の情報を第2管理テーブル126に登録するとともに、このサブLUN群の情報を第1管理テーブル125から削除する。
パラメータ更新部122cは、SSD移動制御部122bの処理において利用される制御パラメータを、ユーザIOの発生状況に応じて更新する。
パラメータ記憶部127には、SSD移動制御部122bの処理において利用される制御パラメータが記憶される。具体的には、パラメータ記憶部127には、後述する判定時間Taと監視時間Tmaxとが記憶される。なお、パラメータ記憶部127は、情報処理装置100の記憶装置(例えば、RAM102)の記憶領域によって実現される。
次に、ワークロード分析部122によるデータ移動制御についてさらに説明する。
<SSDから不揮発DIMMへのデータ移動制御>
図6は、不揮発DIMMへのデータ移動処理について説明するための図である。DIMM移動制御部122aは、例として60秒間隔で、収集情報データベース124の情報に基づいて、直近60秒における各サブLUNに対するユーザIOの数を判別する。そして、DIMM移動制御部122aは、判別結果に基づいてIO集中領域を判定する。
DIMM移動制御部122aは、LUN全体の容量の数%以下の範囲に、LUNに対する全ユーザIOのうち半分以上のユーザIOが集まったとき、その範囲にIOが集中したと判定する。具体的には、次のような手順で判定が行われる。なお、図6において、四角形はサブLUNを示し、四角形に付された数字はサブLUNを識別するIDを示す。
まず、時刻TM1において、DIMM移動制御部122aは、収集情報データベース124を参照して、直近60秒におけるサブLUN毎のユーザIOの数を判別する(ステップS11)。次に、DIMM移動制御部122aは、サブLUNをユーザIOの数が多い順にソートし、先頭から所定個数のサブLUNを特定する(ステップS12)。図6の例では、LUNのサイズを300GBとし、サブLUNのサイズを1GBとする。そして、ステップS12では、先頭から20個のサブLUNが特定されるものとする。
次に、DIMM移動制御部122aは、特定したサブLUNの中から、隣接するサブLUNを結合して、1以上のサブLUN群を生成する。各サブLUN群には、1以上のサブLUNが含まれる。そして、DIMM移動制御部122aは、各サブLUN群を、ユーザIOの合計値が多い順にソートする(ステップS13)。図3の例では、先頭から順に、ID=65〜68のサブLUNを含むサブLUN群GP#1、ID=6,7のサブLUNを含むサブLUN群GP#2、ID=112のサブLUNを含むサブLUN群GP#3が特定されたとする。
次に、DIMM移動制御部122aは、先頭のサブLUN群から順にユーザIO数を合算していく。DIMM移動制御部122aは、ユーザIO数の合算値が、LUN全体でのユーザIOの総数に対して60%を超えたときのサブLUN群を、IO集中領域として特定する(ステップS14)。例えば、図6では、サブLUN群GP#1のユーザIO数が総数に対する49%であるとする。また、サブLUN群GP#1,GP#2のユーザIO数の合算値が、総数に対する63%であるとする。この場合、サブLUN群GP#1,GP#2が、それぞれIO集中領域として特定される。
以上の手順により、ユーザIOが集中したと見なされるIO集中領域が判定される。DIMM移動制御部122aは、IO集中領域と判定されたサブLUN群GP#1,GP#2に含まれるサブLUNを示す情報を、第1管理テーブル125に登録する。また、第1管理テーブル125には、サブLUN群が何回連続してIO集中領域と判定されたかを示す「連続数」も登録される。図6の例では、時刻TM1においてサブLUN群GP#1,GP#2が初めてIO集中領域と判定されたとすると、それぞれに対応付けて連続数=1が登録される。
DIMM移動制御部122aは、上記のようなIO集中領域の判定を60秒間隔で実行する。そして、DIMM移動制御部122aは、所定時間以上(すなわち、所定回数以上)連続してIO集中領域と判定されたサブLUN群のデータを、SSD109から不揮発DIMM108へ移動させるように移動指示部123に指示する。
例えば、時刻TM1から60秒後の時刻TM2において、ID=65〜67のサブLUNを含むサブLUN群と、ID=12〜14のサブLUNを含むサブLUN群とが、IO集中領域として特定されたとする。このとき、第1管理テーブル125には、ID=65〜68のサブLUNを含むサブLUN群GP#1が登録されている。
この場合、時刻TM2でIO集中領域として特定された、ID=65〜67のサブLUNを含むサブLUN群は、登録されているサブLUN群GP#1と重複する。このことから、DIMM移動制御部122aは、ID=65〜67のサブLUNを含むサブLUN群をサブLUN群GP#1と同一と見なし、第1管理テーブル125に登録されたサブLUN群GP#1の範囲をID=65〜67に更新する。そして、DIMM移動制御部122aは、サブLUN群GP#1に対応付けられた連続数を「2」にカウントアップする。すなわち、DIMM移動制御部122aは、サブLUN群GP#1が2回連続してIO集中領域と判定された、と認識する。
一方、ID=12〜14のサブLUNを含むサブLUN群と重複するサブLUN群は、第1管理テーブル125に登録されていない。この場合、DIMM移動制御部122aは、このサブLUN群を新たにIO集中領域と判定されたサブLUN群GP#4として第1管理テーブル125に登録し、その連続数を「1」とする。
同様に、時刻TM2から60秒後の時刻TM3において、ID=65〜68のサブLUNを含むサブLUN群と、ID=2〜4のサブLUNを含むサブLUN群とが、IO集中領域として特定されたとする。このとき、第1管理テーブル125には、ID=65〜67のサブLUNを含むサブLUN群GP#1が登録されている。
この場合、DIMM移動制御部122aは、ID=65〜68のサブLUNを含むサブLUN群をサブLUN群GP#1と同一と見なし、第1管理テーブル125に登録されたサブLUN群GP#1の範囲をID=65〜68に更新する。そして、DIMM移動制御部122aは、サブLUN群GP#1に対応付けられた連続数を「3」にカウントアップする。なお、ID=2〜4のサブLUNを含むサブLUN群は、新たにIO集中領域と判定されたサブLUN群GP#5として第1管理テーブル125に登録される。
ここで、連続数が3以上の場合にデータ移動を行うものとすると、DIMM移動制御部122aは、サブLUN群GP#1のデータをSSD109から不揮発DIMM108へ移動させるように移動指示部123に指示する。これにより、ID=65〜68のサブLUNのデータがSSD109から不揮発DIMM108へ移動する。
<不揮発DIMMからSSDへのデータ移動制御>
SSD移動制御部122bは、データが不揮発DIMM108へ移動されたサブLUN群におけるユーザIOの発生状況を監視する。そして、SSD移動制御部122bは、これらのサブLUN群の中から、IO集中領域と判定されなくなったサブLUN群を、データを不揮発DIMM108からSSD109へ移動させるサブLUN群の候補とする。
図7は、サブLUN群でのIO発生パターンの例を示す図である。ユーザIOがある程度の時間集中したサブLUN群について、ユーザIOが集中しなくなった後、比較的短時間で再度ユーザIOが集中するという事象が発生することがある。そこで、SSD移動制御部122bは、データが不揮発DIMM108に移動されたサブLUN群のうち、一定時間(図7の判定時間Ta)連続してIO集中領域と判定されていないサブLUN群のデータを、不揮発DIMM108からSSD109へ移動させる。
すなわち、SSD移動制御部122bは、サブLUN群がIO集中領域と判定されなくなったとき、ユーザIOが集中する状態が終息したと判断するものの、その後に短時間でIO集中が再発生する可能性があると判断して、データを不揮発DIMM108に残す。そして、SSD移動制御部122bは、ユーザIOの集中(IO集中)が終息してから判定時間Taが経過してもIO集中領域と判定されない場合に、IO集中が再発生する可能性が低いと判断して、データを不揮発DIMM108からSSD109へ移動させる。
これにより、ユーザIOが集中しなくなったサブLUN群のデータが不揮発DIMM108に一定期間残るようになる。その結果、IO集中が再発生した場合に、ユーザIO制御部132が不揮発DIMM108に対して高速にアクセスできる可能性が高まる。
<判定時間Taの算出>
ここで、判定時間Taを一定値に設定したと仮定すると、IO集中が再発生するパターンとしては、大別して図7に示す2つのパターンがあり得る。
第1のパターンは、時刻t11でIO集中が終息してから、判定時間Taより長い時間が経過した後の時刻t14で、再度ユーザIOが集中するパターンである。この場合、判定時間Taが経過した時刻t13で、サブLUN群のデータは不揮発DIMM108からSSD109に移動する。このため、時刻t14でユーザIOが集中したときにはSSD109に対するアクセスが行われるので、アクセス速度が低下してしまう。
一方、第2のパターンは、時刻t11でIO集中が終息してから、判定時間Taが経過する前の時刻t12に再度ユーザIOが集中するパターンである。この場合、時刻t12ではサブLUN群のデータは不揮発DIMM108に保持されているので、不揮発DIMM108に対する高速なアクセスが行われる。
サブLUN群においてIO集中が終息した後、どれだけの時間が経過すると再度ユーザIOが集中するかは、ワークロードの状態によって変わる。そこで、パラメータ更新部122cは、ワークロードの状態に応じて判定時間Taを適宜変化させる。これにより、不揮発DIMM108に保持されるデータ量を抑制しつつ、ワークロードが変化した場合でも、IO集中が再発生した時点でサブLUN群のデータが不揮発DIMM108に保持されている可能性を高める。そのような可能性を高めることで、アクセス性能を向上させることができる。
判定時間Taの算出方法としては、次の2つの方法を用いることができる。
(第1の方法)
SSD移動制御部122bは、サブLUN群におけるIO集中が終息してから、監視時間Tmax(ただし、Tmax>Ta)が経過するまでの間、このサブLUN群においてIO集中が再発生するかを監視する。そして、SSD移動制御部122bは、第1のパターンにおいて、データをSSD109へ移動させてからIO集中が再発生するまでの時間Tbを検出する。ただし、Ta+Tb≦Tmaxとなる。また、SSD移動制御部122bは、第2のパターンにおいて、IO集中が終息してから、データをSSD109へ移動させる前にIO集中が再発生するまでの時間Tcを検出する。
なお、本実施の形態では、Ta,Tb,Tc,Tmaxは、IO集中領域の判定周期(60秒)の倍数で表されるものとする。換言すると、Ta,Tb,Tc,Tmaxは、データが不揮発DIMM108に移動されたサブLUN群について、連続してIO集中領域であると判定されなかった回数を示す。
SSD移動制御部122bは、サブLUN群においてIO集中が終息するたびに、時間Tbまたは時間Tcを蓄積していく。また、SSD移動制御部122bは、判定時間Taの経過後、時間Tbが経過する前までにIO集中が再発生した回数を示す「Tb回数」と、判定時間Taが経過するより前にIO集中が再発生した回数を示す「Tc回数」を記録する。すなわち、Tb回数は、監視時間Tmaxが経過する前までの期間において、データをSSD109に移動させた後にIO集中が再発生した回数を示す。また、Tc回数は、データをSSD109に移動させる前にIO集中が再発生した回数を示す。さらに、SSD移動制御部122bは、監視時間Tmaxが経過した時点でIO集中が再発生しなかった回数Nも記録する。
パラメータ更新部122cは、IO集中領域の判定周期(60秒)より長い一定間隔で、判定時間Taを更新する。本実施の形態では、判定時間Taの更新間隔を60分とする。パラメータ更新部122cは、前回の更新タイミングから現時刻までの時間Tb,Tc、Tb回数、Tc回数および回数Nに基づいて、次の式(1)にしたがって判定時間Taを再計算する。
Ta={Sum(Ta+Tb)+Sum(Tc)}/(Tb回数+Tc回数+N)・・・(1)
ただし、Sum(Ta+Tb)は、60分の期間に蓄積されたTa+Tbの合計値を示す。Sum(Tc)は、60分の期間に蓄積されたTcの合計値を示す。
(第2の方法)
SSD移動制御部122bは、第1の方法と同様の方法で、時間Tb,Tcを蓄積する。パラメータ更新部122cは、60分ごとに、前回の更新タイミングから現時刻までの時間Tb,Tcに基づいて、次の式(2)にしたがって判定時間Taを再計算する。
Ta=Max(Ta1,Ta2)・・・(2)
ただし、Ta1=Max(Ta+Tb)、Ta2=Max(Tc)である。Max(Ta+Tb)は、60分の期間に蓄積されたTa+Tbの最大値を示す。Max(Tc)は、60分の期間に蓄積されたTcの最大値を示す。Max(Ta1,Ta2)は、Ta1,Ta2のうちの大きい方を出力することを示す。
ここで、第1の方法によれば、IO集中が終息してからIO集中が再発生するまでの平均時間が、判定時間Taとして設定される。一方、第2の方法によれば、IO集中が終息してからIO集中が再発生するまでの時間の最大値が、判定時間Taとして設定される。
これら2つの方法を比較すると、第1の方法では、データをSSD109へ移動させる前にIO集中が再発生する確率を高められるものの、その確率は第2の方法より低くなる可能性が高い。その反面、第2の方法と比較して、不揮発DIMM108の使用容量を節約することができる。このため、新たに不揮発DIMM108に移動させるべきと判定されたサブLUN群のデータを、不揮発DIMM108の空き領域に対して即座に移動させることができる確率が高まる。
一方、第2の方法では、データをSSD109へ移動させる前にIO集中が再発生する確率を、第1の方法より高めることができる。その反面、不揮発DIMM108の使用容量が第1の方法より大きくなる可能性が高い。
<監視時間Tmaxの算出>
ところで、上記の第1の方法、第2の方法のいずれでも、SSD移動制御部122bは、IO集中の終息から最大で監視時間Tmaxが経過するまでの間、IO集中が再発生するかを監視する。ここで、監視時間Tmaxが長くなるほど、IO集中の再発生を検知できる可能性が高まる。その結果、判定時間Taの算出精度が向上し、IO集中の再発生時にデータが不揮発DIMM108に保持されている確率が高まるので、ユーザIOの応答時間を短縮できる。
その一方、監視時間Tmaxが長くなるほど、SSD移動制御部122bによる監視処理の負荷が高まり、その結果、情報処理装置100の処理負荷が高まる。この負荷の増加は、ユーザIOの応答性能に悪影響を及ぼす可能性もある。そこで、パラメータ更新部122cは、判定時間Taの算出精度をできるだけ維持しつつ、監視処理負荷が増大しないように、監視時間Tmaxを定期的に更新する。
まず、監視時間Tmaxを、一定期間において検出された、IO集中が終息してからIO集中が再発生するまでの時間の最大値とする方法が考えられる。この方法によれば、理論上、その期間においてIO集中の再発生を確実に検出できる。しかし、この方法では、IO集中の再発生までの間隔が長いサブLUN群が存在した場合に、そのサブLUN群について、ユーザIOが集中していないにもかかわらず監視処理が長時間実行される、という事態が発生し得る。このようなサブLUN群が多いほど、プロセッサ101やRAM102などのリソースが浪費されてしまう。
そこで、本実施の形態では、パラメータ更新部122cは、上記の方法を採用するとともに、監視時間Tmaxの上限を設定して、リソースの浪費を抑制する。パラメータ更新部122cは、以下のような観点から、サブLUN群のデータ移動にかかった時間を基準にして、監視時間Tmaxの上限を設定する。
SSD109へのデータ移動の要否を判定するための判定時間Taは、監視時間Tmaxより小さい値となる。このため、監視時間Tmaxが短くなるほど、サブLUN群のデータが不揮発DIMM108に移動してからSSD109に再移動するまでの最小時間も短くなる。これは、監視時間Tmaxが小さいほど、不揮発DIMM108からSSD109へのデータ移動が頻繁に実行される可能性が高いことを意味する。データ移動の頻度が高過ぎると、ユーザIOの応答性能が低下してしまい、データ移動の意義が薄れてしまう。
データ移動がユーザIOの応答性能に与える影響を小さくするためには、全体のIO処理時間に対して、データ移動が実行される時間の割合を小さくすることが望ましい。このような割合を小さくする方法として、パラメータ更新部122cは、監視時間Tmaxの上限を、サブLUN群のデータ移動の実行に必要な時間よりも十分に長い値に設定する方法を採用する。この方法によれば、判定時間Taに対するサブLUN群のデータ移動時間の相対的な割合も小さくなり、データ移動がユーザIOの応答性能に与える影響が小さくなる。
ただし、サブLUN群のデータ移動の実行に必要な時間よりも十分に長くなるように監視時間Tmaxの上限を大きくするほど、監視処理の負荷は大きくなってしまう。そこで、パラメータ更新部122cは、監視時間Tmaxの上限を、サブLUN群のデータ移動の実行に必要な時間よりも十分に長いと言える、できるだけ小さい値に設定する。これにより、データ移動による負荷と監視処理による負荷とのバランスを適正化する。例えば、パラメータ更新部122cは、監視時間Tmaxの上限を、一定期間におけるサブLUN群のデータ移動の平均実行時間に対して100倍程度に設定する。
以上をまとめると、パラメータ更新部122cは、次のような計算によって監視時間Tmaxを定期的に更新する。
パラメータ更新部122cは、一定時間においてSSD109へのデータ移動が実行されたサブLUN群についてのサブLUN当たりの平均データ移動時間ave_migと、これらのサブLUN群の平均サブLUN数ave_numとを求める。そして、パラメータ更新部122cは、次の式(3)にしたがって、監視時間Tmaxの上限値Tmax_upperを算出する。
Tmax_upper=ave_mig*ave_num*M・・・(3)
ただし、Mは固定値であり、例えば100である。
また、パラメータ更新部122cは、一定時間において、サブLUN群ごとにIO集中が終息してからIO集中が再発生するまでの時間間隔の最大値Tmax_tempを求める。ただし、この時間間隔は、監視時間Tmaxの制限に関係なくIO集中の再発生を検知することによって求められることが望ましい。
そして、パラメータ更新部122cは、求められた上限値Tmax_upperと最大値Tmax_tempのうち小さい方の値を、新たな監視時間Tmaxに設定する。
なお、上記のように、監視時間Tmaxが小さ過ぎるとデータ移動が頻繁に実行される可能性が高くなり、それによってユーザIOの応答性能が低下する可能性がある。そこで、パラメータ更新部122cは、監視時間Tmaxの更新間隔を判定時間Taの更新間隔より長くする。これにより、上記の最大値Tmax_tempの変動幅が抑制されて、その値の最小値が一定以上に維持されるようになり、その結果、監視時間Tmaxが小さ過ぎる値になる可能性が抑制される。また、監視時間Tmaxの更新処理による情報処理装置100の処理負荷を軽減することもできる。一例として、本実施の形態では、監視時間Tmaxの更新間隔を1日(24時間)とする。
<管理テーブルの構成例>
次に、判定時間Taおよび監視時間Tmaxの計算のために使用される管理テーブルについて説明する。
図8は、第1管理テーブルのデータ構成例を示す図である。第1管理テーブル125は、DIMM移動制御部122aによってIO集中領域と判定されたサブLUN群ごとのレコードを有する。なお、IO集中領域と判定されたサブLUN群のレコードは、このサブLUN群のデータが不揮発DIMM108に移動し、さらにSSD109に移動するまで第1管理テーブル125に保持され続ける。各レコードには、グループID、先頭サブLUN、末尾サブLUN、連続数、登録時刻、状態、Tc、移動時間およびタイムアウトが登録される。
グループIDは、サブLUN群の識別番号を示す。先頭サブLUNは、サブLUN群に含まれるサブLUNのうち先頭のサブLUNを示す。末尾サブLUNは、サブLUN群に含まれるサブLUNのうち末尾のサブLUNを示す。連続数は、サブLUN群がIO集中領域として連続して判定された回数を示す。
登録時刻は、サブLUN群が第1管理テーブル125に登録された時刻を示す。状態は、サブLUN群のデータがSSD109から不揮発DIMM108に移動したか否かを示す。Tcは、図7に示した時間Tcのカウント値を示す。移動時間は、サブLUN群のデータをSSD109から不揮発DIMM108に移動させたときにかかった時間を、サブLUN群に含まれるサブLUN数で除算した値を示す。すなわち、移動時間は、サブLUN当たりのデータ移動時間を示す。タイムアウトは、サブLUN群がIO集中領域として連続して判定されなかった回数を示す。
図9は、第2管理テーブルのデータ構成例を示す図である。第2管理テーブル126は、不揮発DIMM108からSSD109に対してデータが移動したサブLUN群ごとのレコードを有する。各レコードは、グループID、先頭サブLUN、末尾サブLUN、連続数、登録時刻、終息時刻、Tc、移動時間およびTbが登録される。
グループIDは、サブLUN群の識別番号を示す。先頭サブLUNは、サブLUN群に含まれるサブLUNのうち先頭のサブLUNを示す。末尾サブLUNは、サブLUN群に含まれるサブLUNのうち末尾のサブLUNを示す。連続数は、サブLUN群がIO集中領域として連続して判定された回数を示す。
登録時刻は、サブLUN群が第1管理テーブル125に登録された時刻を示す。終息時刻は、サブLUN群におけるIO集中が終息した時刻(すなわち、サブLUN群がIO集中と判定されている状態からIO集中領域と判定されなくなった時刻)を示す。ただし、この終息時刻は、サブLUN群のデータがSSD109に移動する前において、最後にIO集中が終息したと判定された時刻である。
Tcは、図7に示した時間Tcのカウント値を示す。移動時間は、SSD109から不揮発DIMM108に対するサブLUN当たりのデータ移動時間を示す。Tbは、図7に示した時間Tbの計測値を示す。
<フローチャート>
次に、情報処理装置100の処理についてフローチャートを用いて説明する。
図10は、データ移動制御手順の例を示すフローチャートである。
[ステップS21]データ収集部121は、直近60秒のユーザIOのトレースログをIOトレース部150から取得し、収集情報データベース124に登録する。DIMM移動制御部122aは、収集情報データベース124を参照して、直近60秒におけるサブLUNごとのユーザIO数を特定する。
[ステップS22]DIMM移動制御部122aは、ステップS21で特定されたユーザIO数に基づいて、図6で説明した手順にしたがい、ユーザIOが集中したサブLUN群(IO集中領域)を判定する。DIMM移動制御部122aは、判定されたサブLUN群を示す情報を、記憶領域(例えば、RAM102)に一時的に記録する。
[ステップS23]DIMM移動制御部122aは、ステップS22での判定結果と第1管理テーブル125の情報とに基づいて、データを不揮発DIMM108へ移動させるサブLUN群を特定する。DIMM移動制御部122aは、特定されたサブLUN群のデータをSSD109から不揮発DIMM108へ移動させるように移動指示部123に指示する。
[ステップS24]SSD移動制御部122bは、ステップS22での判定結果と第1管理テーブル125の情報とに基づいて、データをSSD109へ移動させるサブLUN群を特定する。SSD移動制御部122bは、特定されたサブLUN群のデータを不揮発DIMM108からSSD109へ移動させるように移動指示部123に指示する。また、SSD移動制御部122bは、データをSSD109に移動させたサブLUN群についてのレコードを第2管理テーブル126に登録するとともに、このサブLUN群についてのレコードを第1管理テーブル125から削除する。
[ステップS25]SSD移動制御部122bは、第2管理テーブル126に基づいて、データがSSD109に移動したサブLUN群についてのIO集中の発生を監視する監視処理を実行する。
[ステップS26]ワークロード分析部122は、一定時間(本実施の形態では、60秒)スリープし、その後にステップS21の処理を再実行する。
図11は、不揮発DIMMへのデータ移動制御手順の例を示すフローチャートである。この図11の処理は、図10のステップS23の処理に対応する。
[ステップS231]DIMM移動制御部122aは、図10のステップS22でIO集中領域と判定されたサブLUN群の中から、第1管理テーブル125に登録されていないサブLUN群を特定する。この際に特定されるサブLUN群とは、このサブLUN群に含まれるサブLUNを1つでも含むサブLUN群が第1管理テーブル125に登録されていないものを指す。
DIMM移動制御部122aは、特定されたサブLUN群に対応するレコードを第1管理テーブル125に新規登録する。また、DIMM移動制御部122aは、このレコードにおいて、連続数として「1」を設定し、登録時刻として現在の時刻を登録し、状態として不揮発DIMM108に移動していないことを示す「未移動」を登録し、Tc、移動時間、タイムアウトとしていずれも「0」を登録する。
[ステップS232]DIMM移動制御部122aは、図10のステップS22でIO集中領域と判定されたサブLUN群の中から、第1管理テーブル125に登録済みのサブLUN群を特定する。この特定処理では、第1管理テーブル125に登録されているサブLUN群のうち、IO集中領域と判定されたサブLUN群に含まれるサブLUNを1つでも含むサブLUN群が、IO集中領域と判定されたサブLUN群と同一と判定される。
DIMM移動制御部122aは、特定されたサブLUN群の先頭サブLUNおよび末尾サブLUNの情報によって、第1管理テーブル125に登録済みの対応するレコードを登録する。また、DIMM移動制御部122aは、対応するレコードのうち、タイムアウトが「0」であるレコードの連続数をカウントアップする。
[ステップS233]DIMM移動制御部122aは、ステップS232で特定されたサブLUN群の中から、データが不揮発DIMMに移動していないサブLUN群を特定する。このとき特定されるサブLUN群とは、第1管理テーブル125のレコードの状態が「未移動」となっているサブLUN群である。
[ステップS234]DIMM移動制御部122aは、ステップS233で特定されたサブLUN群の中に、連続数が所定数(例えば「10」)以上であるサブLUN群があるかを判定する。DIMM移動制御部122aは、該当するサブLUN群がある場合、ステップS235の処理を実行する。一方、該当するサブLUN群がない場合、図10のステップS24の処理が実行される。
[ステップS235]DIMM移動制御部122aは、ステップS234で連続数が所定数以上と判定されたサブLUN群のデータを、SSD109から不揮発DIMM108へ移動するように移動指示部123に指示する。この指示は、移動指示部123から階層化制御部130のデータ移動制御部131に通知され、データ移動制御部131によってデータの移動処理が実行される。
DIMM移動制御部122aは、各サブLUN群のデータ移動の完了通知を移動指示部123を介して受信するたびに、第1管理テーブル125の対応するレコードに登録された状態を、データが不揮発DIMM108へ移動したことを示す「移動済み」に更新する。また、DIMM移動制御部122aは、サブLUN群ごとに、データ移動を指示してから完了通知を受信するまでにかかった時間を計測し、計測された時間をサブLUN群に含まれるサブLUN数で除算した値を、対応するレコードに移動時間として登録する。以上の処理が終了すると、図10のステップS24の処理が実行される。
図12は、SSDへのデータ移動制御手順の例を示すフローチャートである。この図12の処理は、図10のステップS24の処理に対応する。
[ステップS241]SSD移動制御部122bは、第1管理テーブル125に登録されたサブLUN群の中から、図10のステップS22でIO集中領域と判定され、かつ、タイムアウトが「1」以上のサブLUN群を特定する。ここで特定されるサブLUN群は、IO集中領域でない(すなわち、IO集中が終息した)と1回以上連続して判定されたが、今回再度IO集中領域と判定されたサブLUN群である。
[ステップS242]SSD移動制御部122bは、ステップS241で特定されたサブLUN群の中から、タイムアウトの値がTcより小さいIO集中領域を特定する。SSD移動制御部122bは、特定されたIO集中領域について、Tcの値をタイムアウトの値によって更新し、さらにタイムアウトの値を「0」にリセットする。このTc更新処理によれば、IO集中が終息した状態からIO集中が再度発生したサブLUN群について、この後にデータがSSD109へ移動されるまでの間におけるTcの最小値がレコードに登録されるようになる。これにより、判定時間Taの算出精度が向上する。
[ステップS243]SSD移動制御部122bは、ステップS241で特定されたサブLUN群のうち、ステップS242で特定されなかったIO集中領域について、タイムアウトの値を「0」にリセットする。
[ステップS244]SSD移動制御部122bは、第1管理テーブル125に登録されたサブLUN群の中から、図10のステップS22でIO集中領域と判定されていないサブLUN群を特定する。SSD移動制御部122bは、特定されたサブLUN群について、タイムアウトの値をカウントアップする。
[ステップS245]SSD移動制御部122bは、第1管理テーブル125に登録されたサブLUN群の中に、タイムアウトの値がパラメータ記憶部127に設定されている判定時間Taに達したサブLUN群があるかを判定する。SSD移動制御部122bは、該当するサブLUN群がある場合、ステップS246の処理を実行する。一方、該当するサブLUN群がない場合、図10のステップS25の処理が実行される。
[ステップS246]SSD移動制御部122bは、ステップS245でタイムアウトの値が判定時間Taに達したと判定されたサブLUN群のデータを、不揮発DIMM108からSSD109へ移動するように移動指示部123に指示する。この指示は、移動指示部123から階層化制御部130のデータ移動制御部131に通知され、データ移動制御部131によってデータの移動処理が実行される。
[ステップS247]SSD移動制御部122bは、各サブLUN群のデータ移動の完了通知を移動指示部123を介して受信するたびに、次の処理を実行する。
SSD移動制御部122bは、データ移動が完了したサブLUN群に対応するレコードを第2管理テーブル126に新規登録する。SSD移動制御部122bは、登録したレコードにおいて、先頭サブLUN、末尾サブLUN、連続数、登録時刻、Tcおよび移動時間として、第1管理テーブル125における同じサブLUN群に対応するレコードの同じ項目に登録された情報をコピーする。また、SSD移動制御部122bは、登録したレコードにおいて、現在時刻から判定時間Taを減算した時刻を、終息時刻として登録する。さらに、SSD移動制御部122bは、登録したレコードにおいて、Tbとして初期値「0」を登録する。また、SSD移動制御部122bは、以上のように第2管理テーブル126のレコードの登録処理が完了すると、第1管理テーブル125からデータ移動が完了したサブLUN群に対応するレコードを削除する。
この後、図10のステップS25の処理が実行される。
図13は、データがSSDに移動したサブLUN群の監視処理手順の例を示すフローチャートである。この図13の処理は、図10のステップS25の処理に対応する。
[ステップS251]SSD移動制御部122bは、第2管理テーブル126に登録されたサブLUN群の中から、現在時刻と終息時刻との差が現在設定されている監視時間Tmax以下であるサブLUN群を特定する。
[ステップS252]SSD移動制御部122bは、ステップS251で特定されたサブLUN群の中に、図10のステップS22でIO集中領域と判定されたサブLUN群があるかを判定する。SSD移動制御部122bは、該当するサブLUN群がある場合、ステップS253の処理を実行し、該当するサブLUN群がない場合、ステップS254の処理を実行する。
[ステップS253]SSD移動制御部122bは、ステップS251で特定されたサブLUN群のうち、図10のステップS22でIO集中領域と判定されたサブLUN群のそれぞれについて、次の処理を実行する。SSD移動制御部122bは、現在時刻から、
パラメータ記憶部127に設定されている判定時間Taを減算して、Tb_curを算出する。SSD移動制御部122bは、算出されたTb_curと、第2管理テーブル126の対応するレコードに登録されているTbのうち、大きい方の値によって、レコードのTbを更新する。
このステップS253では、第2管理テーブル126に登録されたサブLUN群のうち、DIMM移動制御部122aによって再度IO集中領域と判定されたサブLUN群について、Tbが更新される。
[ステップS254]SSD移動制御部122bは、第2管理テーブル126に登録されたサブLUN群の中に、現在時刻と終息時刻との差がパラメータ記憶部127に設定されている監視時間Tmaxと一致するサブLUN群があるかを判定する。SSD移動制御部122bは、該当するサブLUN群がある場合、そのサブLUN群を処理対象としてステップS255の処理を実行する。一方、該当するサブLUN群がない場合には、図10のステップS26の処理が実行される。
[ステップS255]SSD移動制御部122bは、処理対象のサブLUN群に対応する第2管理テーブル126のレコードを参照し、Tbが初期値「0」の場合には、Tbを「−1」に更新する。この処理によれば、第2管理テーブル126に登録されたサブLUN群の中から、IO集中の終息から監視時間Tmaxが経過した時点でIO集中が再度発生していないサブLUN群が、Tb=−1によって識別可能になる。
この後、図10のステップS26の処理が実行される。
図14は、Ta更新処理手順の第1の例を示すフローチャートである。この図14では、前述の「第1の方法」を用いて判定時間Taを更新する場合について示す。
[ステップS41]パラメータ更新部122cは、第2管理テーブル126から、直近60分に対応するレコードを特定する。例えば、パラメータ更新部122cは、終息時刻が直近60分の期間に含まれるレコードを特定する。
[ステップS42]パラメータ更新部122cは、特定された各レコードからTa+Tbを算出する。ただし、パラメータ更新部122cは、Tb=−1のレコードからは計算を行わない。パラメータ更新部122cは、算出されたTa+Tbを合計することでSum(Ta+Tb)を算出する。また、パラメータ更新部122cは、特定された各レコードのTcを合計することでSum(Tc)を算出する。
さらに、パラメータ更新部122cは、特定されたレコードのうち、Tb=−1であるレコード以外のレコードの数を、Tb回数として算出する。また、パラメータ更新部122cは、特定されたレコードのうち、Tcとして「0」以外の値が登録されているレコードの数を、Tc回数として算出する。また、パラメータ更新部122cは、特定されたレコードのうち、Tb=−1であるレコードの数を、回数Nとして算出する。
[ステップS43]パラメータ更新部122cは、ステップS42での算出結果を用いて、前述の式(1)にしたがって判定時間Taを算出し、算出された判定時間Taによってパラメータ記憶部127に設定されている判定時間Taを更新する。
[ステップS44]パラメータ更新部122cは、一定時間(本実施の形態では、60分)スリープし、その後にステップS41の処理を再実行する。
図15は、Ta更新処理手順の第2の例を示すフローチャートである。この図15では、前述の「第2の方法」を用いて判定時間Taを更新する場合について示す。図15の処理では、図14に示したステップS42,S43の代わりにステップS42a,S43aが実行される。
[ステップS42a]パラメータ更新部122cは、ステップS41で特定された各レコードからTa+Tbを算出する。ただし、パラメータ更新部122cは、Tb=−1のレコードからは計算を行わない。パラメータ更新部122cは、算出されたTa+Tbのうちの最大値(Max(Ta+Tb))をTa1として算出する。また、パラメータ更新部122cは、特定された各レコードのTcのうちの最大値(Mac(Tc))をTa2として算出する。
[ステップS43a]パラメータ更新部122cは、Ta1とTa2のうちの大きい方(Max(Ta1,Ta2))によって、パラメータ記憶部127に設定されている判定時間Taを更新する。
図16は、Tmax更新処理手順の例を示すフローチャートである。
[ステップS61]パラメータ更新部122cは、第2管理テーブル126から、直近24時間に対応するレコードを特定する。例えば、パラメータ更新部122cは、終息時刻が直近24時間の期間に含まれるレコードを特定する。
[ステップS62]パラメータ更新部122cは、特定された各レコードから、サブLUN群に含まれるサブLUN数を算出する。サブLUN数は、末尾サブLUNの値から先頭サブLUNの値を減算することで算出される。パラメータ更新部122cは、算出されたサブLUN数を平均して、平均サブLUN数ave_numを算出する。
また、パラメータ更新部122cは、特定された各レコードについて、移動時間をサブLUN群に含まれるサブLUN数によって除算して、サブLUN当たりのデータ移動時間を算出する。パラメータ更新部122cは、算出されたデータ移動時間を平均して、サブLUN当たりの平均データ移動時間ave_migを算出する。
[ステップS63]パラメータ更新部122cは、前述の式(3)にしたがって、監視時間Tmaxの上限値Tmax_upperを算出する。
[ステップS64]パラメータ更新部122cは、特定された各レコードに対応するサブLUN群を、それぞれ共通のサブLUNを含むサブLUN群の組み合わせに区分する。なお、共通のサブLUNを含むサブLUN群は、同一サブLUN群と判別される。パラメータ更新部122cは、区分されたサブLUN群の組み合わせごとに、IO集中が終息してから再発生するまでの最大時間を算出する。この算出は、次のような手順で行われる。
パラメータ更新部122cは、サブLUN群の組み合わせのレコードを終息時刻の順番で並べたときに、あるレコードに登録された終息時刻と次のレコードに登録された登録時刻との差分を、IO集中が終息してから再発生するまでの時間として算出する。パラメータ更新部122cは、このようにしてサブLUN群の組み合わせから算出された時間のうち最大時間を求める。これにより、サブLUN群の組み合わせごとに最大時間が算出される。
[ステップS65]パラメータ更新部122cは、ステップS64でサブLUN群の組み合わせごとに算出された最大時間のうち最大の値を、最大値Tmax_tempに設定する。
[ステップS66]パラメータ更新部122cは、上限値Tmax_upperと最大値Tmax_tempのうち小さい方の値によって、パラメータ記憶部127に設定されている監視時間Tmaxを更新する。
[ステップS67]パラメータ更新部122cは、一定時間(本実施の形態では、24時間)スリープし、その後にステップS61の処理を再実行する。
以上の監視時間Tmaxの更新処理によれば、判定時間Taの算出精度をある程度維持しながら、IO集中が終息したサブLUN群におけるワークロードの監視処理負荷を抑制できる。
例えば、IO集中の終息から再発生までの時間間隔が長く、Tmax_upper<Tmax_tempとなるようなケースでは、監視時間Tmaxは上限値Tmax_upperを超えないように小さい値に抑制される。これにより、ユーザIOが集中していない期間が長いにもかかわらずワークロードの監視が長時間行われ、プロセッサ101やRAM102などのリソースが浪費されることを防止できる。
一方、IO集中の終息から再発生までの時間間隔が短く、Tmax_upper>Tmax_tempとなるようなケースでは、監視時間Tmaxは最大値Tmax_tempに設定される。これにより、判定時間Taの算出精度を重視した更新処理が行われる。このケースでは、最大値Tmax_tempが大きくなったとしても、監視時間Tmaxが経過するよりずっと前のタイミングでIO集中が再発生する可能性が高いので、監視処理負荷は増大しない。
図17は、データ移動制御部の処理手順の例を示すフローチャートである。
[ステップS81]データ移動制御部131は、移動指示部123からデータ移動指示を受信すると、ステップS82の処理を実行する。
[ステップS82]データ移動制御部131は、指示されたデータ移動が不揮発DIMM108への移動であるかを判定する。データ移動制御部131は、不揮発DIMM108へのデータ移動が指示された場合、ステップS83の処理を実行し、SSD109へのデータ移動が指示された場合、ステップS84の処理を実行する。
[ステップS83]データ移動制御部131は、不揮発DIMM108の空き領域からデータの移動先領域を確保して、SSD108から不揮発DIMM108へのデータ転送のための指示をドライバ141,142に出力する。また、データ移動制御部131は、データ移動が完了すると、完了通知を移動指示部123に通知する。これとともに、データ移動制御部131は、階層テーブル133のレコードのうち、データ移動を行ったサブLUNに対応するレコードにおいて、データの移動先領域を示すDIMMオフセットを登録し、SSDオフセットを削除する。
[ステップS84]データ移動制御部131は、SSD109の空き領域からデータの移動先領域を確保して、不揮発DIMM108からSSD108へのデータ転送のための指示をドライバ141,142に出力する。また、データ移動制御部131は、データ移動が完了すると、完了通知を移動指示部123に通知する。これとともに、データ移動制御部131は、階層テーブル133のレコードのうち、データ移動を行ったサブLUNに対応するレコードにおいて、データの移動先領域を示すSSDオフセットを登録し、DIMMオフセットを削除する。
なお、上記の各実施の形態に示した装置(例えば、情報処理装置1,100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
1 情報処理装置
1a 記憶部
1b 制御部
2 論理記憶領域
3a,3b 記憶装置
4 タイムチャート
R1〜R3 領域
T1,T2 設定時間

Claims (5)

  1. 第1の設定時間と、前記第1の設定時間より長い第2の設定時間とを記憶する記憶部と、制御部とを有し、
    前記制御部は、
    論理記憶領域に含まれ、データが第1の記憶装置に記憶された複数の第1の領域の中から、アクセス負荷が高い高負荷状態からアクセス負荷が低い低負荷状態に遷移した複数の第2の領域を特定し、
    前記複数の第2の領域のうち、前記低負荷状態に遷移してから前記第1の設定時間が経過したときに前記低負荷状態が継続している領域のデータを、前記第1の記憶装置から前記第1の記憶装置よりアクセス速度が低い第2の記憶装置に移動させ、
    前記複数の第2の領域のそれぞれについて、前記低負荷状態に遷移してから前記第2の設定時間が経過するまでアクセス負荷状況を監視し、
    前記第1の設定時間を更新する第1の更新処理を所定の第1の時間ごとに周期的に実行し、
    前記第2の設定時間を更新する第2の更新処理を所定の第2の時間ごとに周期的に実行し、
    前記アクセス負荷状況の監視では、前記複数の第2の領域のうち、前記低負荷状態に遷移してから前記第2の設定時間が経過する前に再度前記高負荷状態に遷移した領域について、前記低負荷状態に遷移してから前記高負荷状態に遷移するまでの経過時間を管理情報に記録し、
    前記第1の更新処理では、直近の前記第1の時間の長さの第1の期間において前記管理情報に記録された前記経過時間に基づく計算値によって、前記第1の設定時間を更新し、前記計算値は、前記複数の第2の領域のうち前記第1の期間に前記低負荷状態に遷移した後に再度前記高負荷状態に遷移した領域の数と、前記複数の第2の領域のうち前記第1の期間に前記低負荷状態に遷移してから前記第2の設定時間が経過するまでに再度前記高負荷状態に遷移しなかった領域の数との加算値によって、前記第1の期間に前記管理情報に記録された前記経過時間の合計値を除算した値であり、
    前記第2の更新処理では、直近の前記第2の時間の長さの第2の期間において前記低負荷状態に遷移した前記第2の領域のうち、データが前記第2の記憶装置に移動した領域についての前記第1の記憶装置と前記第2の記憶装置との間のデータ移動にかかったデータ移動時間を平均した平均移動時間と、データが前記第2の記憶装置に移動した領域の平均数と、1より大きい所定値とを乗算した乗算値によって、前記第2の設定時間を更新する、
    情報処理装置。
  2. 前記第2の設定時間の更新では、前記複数の第2の領域の中から、前記第1の期間において前記低負荷状態から再度前記高負荷状態に遷移した1以上の第3の領域を特定し、前記1以上の第3の領域それぞれについての、前記低負荷状態に遷移してから前記高負荷状態に遷移するまでの遷移時間を算出し、前記遷移時間の最大値と前記乗算値のうち小さい方の値によって、前記第2の設定時間を更新する、
    請求項1記載の情報処理装置。
  3. 第1の設定時間と、前記第1の設定時間より長い第2の設定時間とを記憶する記憶部と、制御部とを有し、
    前記制御部は、
    論理記憶領域に含まれ、データが第1の記憶装置に記憶された複数の第1の領域の中から、アクセス負荷が高い高負荷状態からアクセス負荷が低い低負荷状態に遷移した複数の第2の領域を特定し、
    前記複数の第2の領域のうち、前記低負荷状態に遷移してから前記第1の設定時間が経過したときに前記低負荷状態が継続している領域のデータを、前記第1の記憶装置から前記第1の記憶装置よりアクセス速度が低い第2の記憶装置に移動させ、
    前記複数の第2の領域のそれぞれについて、前記低負荷状態に遷移してから前記第2の設定時間が経過するまでアクセス負荷状況を監視し、
    前記第1の設定時間を更新する第1の更新処理を所定の第1の時間ごとに周期的に実行し、
    前記第2の設定時間を更新する第2の更新処理を所定の第2の時間ごとに周期的に実行し、
    前記アクセス負荷状況の監視では、前記複数の第2の領域の中から、前記第1の設定時間が経過した後前記第2の設定時間が経過する前までに再度前記高負荷状態に遷移した第3の領域と、前記第1の設定時間が経過するまでに再度前記高負荷状態に遷移した第4の領域とを特定し、前記第3の領域それぞれについての前記低負荷状態に遷移してから前記高負荷状態に遷移するまでの第1の経過時間と、前記第4の領域それぞれについての前記低負荷状態に遷移してから前記高負荷状態に遷移するまでの第2の経過時間とを管理情報に記録し、
    前記第1の更新処理では、直近の前記第2の時間の長さの第2の期間に記録された前記第1の経過時間のうちの第1の最大値と、前記第2の期間に記録された前記第2の経過時間のうちの第2の最大値とを特定し、前記第1の最大値と前記第2の最大値のうち大きい方の値によって前記第1の設定時間を更新し
    前記第2の更新処理では、前記第2の期間において前記低負荷状態に遷移した前記第2の領域のうち、データが前記第2の記憶装置に移動した領域についての前記第1の記憶装置と前記第2の記憶装置との間のデータ移動にかかったデータ移動時間を平均した平均移動時間と、データが前記第2の記憶装置に移動した領域の平均数と、1より大きい所定値とを乗算した乗算値によって、前記第2の設定時間を更新する、
    情報処理装置。
  4. コンピュータが、
    論理記憶領域に含まれ、データが第1の記憶装置に記憶された複数の第1の領域の中から、アクセス負荷が高い高負荷状態からアクセス負荷が低い低負荷状態に遷移した複数の第2の領域を特定し、
    前記複数の第2の領域のうち、前記低負荷状態に遷移してから第1の設定時間が経過したときに前記低負荷状態が継続している領域のデータを、前記第1の記憶装置から、前記第1の記憶装置よりアクセス速度が低い第2の記憶装置に移動させ、
    前記複数の第2の領域のそれぞれについて、前記低負荷状態に遷移してから前記第1の設定時間より長い第2の設定時間が経過するまでアクセス負荷状況を監視し、
    前記第1の設定時間を更新する第1の更新処理を所定の第1の時間ごとに周期的に実行し、
    前記第2の設定時間を更新する第2の更新処理を所定の第2の時間ごとに周期的に実行し、
    前記アクセス負荷状況の監視では、前記複数の第2の領域のうち、前記低負荷状態に遷移してから前記第2の設定時間が経過する前に再度前記高負荷状態に遷移した領域について、前記低負荷状態に遷移してから前記高負荷状態に遷移するまでの経過時間を管理情報に記録し、
    前記第1の更新処理では、直近の前記第1の時間の長さの第1の期間において前記管理情報に記録された前記経過時間に基づく計算値によって、前記第1の設定時間を更新し、前記計算値は、前記複数の第2の領域のうち前記第1の期間に前記低負荷状態に遷移した後に再度前記高負荷状態に遷移した領域の数と、前記複数の第2の領域のうち前記第1の期間に前記低負荷状態に遷移してから前記第2の設定時間が経過するまでに再度前記高負荷状態に遷移しなかった領域の数との加算値によって、前記第1の期間に前記管理情報に記録された前記経過時間の合計値を除算した値であり、
    前記第2の更新処理では、直近の前記第2の時間の長さの第2の期間において前記低負荷状態に遷移した前記第2の領域のうち、データが前記第2の記憶装置に移動した領域についての前記第1の記憶装置と前記第2の記憶装置との間のデータ移動にかかったデータ移動時間を平均した平均移動時間と、データが前記第2の記憶装置に移動した領域の平均数と、1より大きい所定値とを乗算した乗算値によって、前記第2の設定時間を更新する、
    ストレージ制御方法。
  5. コンピュータに、
    論理記憶領域に含まれ、データが第1の記憶装置に記憶された複数の第1の領域の中から、アクセス負荷が高い高負荷状態からアクセス負荷が低い低負荷状態に遷移した複数の第2の領域を特定し、
    前記複数の第2の領域のうち、前記低負荷状態に遷移してから第1の設定時間が経過したときに前記低負荷状態が継続している領域のデータを、前記第1の記憶装置から、前記第1の記憶装置よりアクセス速度が低い第2の記憶装置に移動させ、
    前記複数の第2の領域のそれぞれについて、前記低負荷状態に遷移してから前記第1の設定時間より長い第2の設定時間が経過するまでアクセス負荷状況を監視し、
    前記第1の設定時間を更新する第1の更新処理を所定の第1の時間ごとに周期的に実行し、
    前記第2の設定時間を更新する第2の更新処理を所定の第2の時間ごとに周期的に実行し、
    前記アクセス負荷状況の監視では、前記複数の第2の領域のうち、前記低負荷状態に遷移してから前記第2の設定時間が経過する前に再度前記高負荷状態に遷移した領域について、前記低負荷状態に遷移してから前記高負荷状態に遷移するまでの経過時間を管理情報に記録し、
    前記第1の更新処理では、直近の前記第1の時間の長さの第1の期間において前記管理情報に記録された前記経過時間に基づく計算値によって、前記第1の設定時間を更新し、前記計算値は、前記複数の第2の領域のうち前記第1の期間に前記低負荷状態に遷移した後に再度前記高負荷状態に遷移した領域の数と、前記複数の第2の領域のうち前記第1の期間に前記低負荷状態に遷移してから前記第2の設定時間が経過するまでに再度前記高負荷状態に遷移しなかった領域の数との加算値によって、前記第1の期間に前記管理情報に記録された前記経過時間の合計値を除算した値であり、
    前記第2の更新処理では、直近の前記第2の時間の長さの第2の期間において前記低負荷状態に遷移した前記第2の領域のうち、データが前記第2の記憶装置に移動した領域についての前記第1の記憶装置と前記第2の記憶装置との間のデータ移動にかかったデータ移動時間を平均した平均移動時間と、データが前記第2の記憶装置に移動した領域の平均数と、1より大きい所定値とを乗算した乗算値によって、前記第2の設定時間を更新する、
    処理を実行させるストレージ制御プログラム。
JP2017052987A 2017-03-17 2017-03-17 情報処理装置、ストレージ制御方法およびストレージ制御プログラム Active JP6955142B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017052987A JP6955142B2 (ja) 2017-03-17 2017-03-17 情報処理装置、ストレージ制御方法およびストレージ制御プログラム
US15/920,734 US11010081B2 (en) 2017-03-17 2018-03-14 Information processing apparatus and storage control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017052987A JP6955142B2 (ja) 2017-03-17 2017-03-17 情報処理装置、ストレージ制御方法およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2018156423A JP2018156423A (ja) 2018-10-04
JP6955142B2 true JP6955142B2 (ja) 2021-10-27

Family

ID=63520055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017052987A Active JP6955142B2 (ja) 2017-03-17 2017-03-17 情報処理装置、ストレージ制御方法およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US11010081B2 (ja)
JP (1) JP6955142B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7039989B2 (ja) * 2017-12-20 2022-03-23 富士通株式会社 制御プログラム、制御方法及び制御装置
US11182090B2 (en) 2018-11-19 2021-11-23 Micron Technology, Inc. Systems, devices, and methods for data migration
US10782911B2 (en) 2018-11-19 2020-09-22 Micron Technology, Inc. Data migration dynamic random access memory
US11256437B2 (en) 2018-11-19 2022-02-22 Micron Technology, Inc. Data migration for memory operation
US11163473B2 (en) * 2018-11-19 2021-11-02 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
CN109766392A (zh) * 2019-01-21 2019-05-17 北京字节跳动网络技术有限公司 数据处理方法和装置
US10877699B1 (en) * 2019-06-26 2020-12-29 Vmware, Inc. I/O destaging bandwidth control
CN110377430B (zh) * 2019-07-24 2021-08-31 中南民族大学 数据迁移方法、设备、存储介质及装置
CN116860858B (zh) * 2023-09-01 2023-11-17 北京四维纵横数据技术有限公司 数据库操作级别的io跟踪方法、装置、设备及介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152652A (ja) 1993-11-29 1995-06-16 Canon Inc 仮想記憶制御方法及び情報処理装置
US7529903B2 (en) 2005-07-05 2009-05-05 International Business Machines Corporation Systems and methods for memory migration
JP6035991B2 (ja) * 2012-08-15 2016-11-30 富士通株式会社 ストレージ制御方法、およびストレージ制御装置
US9542125B1 (en) * 2012-09-25 2017-01-10 EMC IP Holding Company LLC Managing data relocation in storage systems
JP6086007B2 (ja) 2013-03-26 2017-03-01 富士通株式会社 ストレージ制御装置の制御プログラム、ストレージ制御装置の制御方法、ストレージ制御装置及びストレージシステム
JP6005116B2 (ja) 2014-09-30 2016-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 特定のアプリケーションによってリコールされたファイルの自動化されたマイグレーション

Also Published As

Publication number Publication date
JP2018156423A (ja) 2018-10-04
US20180267737A1 (en) 2018-09-20
US11010081B2 (en) 2021-05-18

Similar Documents

Publication Publication Date Title
JP6955142B2 (ja) 情報処理装置、ストレージ制御方法およびストレージ制御プログラム
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
US7525745B2 (en) Magnetic disk drive apparatus and method of controlling the same
JP2015210718A (ja) 記憶制御装置、ストレージシステム、および記憶制御プログラム
US8429346B1 (en) Automated data relocation among storage tiers based on storage load
RU2642349C1 (ru) Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных
US8205059B2 (en) Buffer management method and optical disc drive
JP5808018B2 (ja) ストレージ装置、その制御方法およびシステム管理プログラム
WO2023207562A1 (zh) 一种数据处理方法、装置及设备
US9152490B2 (en) Detection of user behavior using time series modeling
JP2019125175A (ja) データ処理装置、データ処理システムおよびデータ処理プログラム
CN1545030A (zh) 基于磁盘特征的数据分布动态映射的方法
Wu et al. APP-LRU: A new page replacement method for PCM/DRAM-based hybrid memory systems
KR20120078096A (ko) 비휘발성 메모리 및 휘발성 메모리를 포함하는 메모리 시스템 및 그 시스템을 이용한 처리 방법
KR20140032789A (ko) 불휘발성 메모리 장치의 컨트롤러 및 그것의 커멘드 스케줄링 방법
Gim et al. Extract and infer quickly: Obtaining sector geometry of modern hard disk drives
US9075606B2 (en) Storage apparatus and method of determining device to be activated
JP2020144737A (ja) 情報処理装置およびタスク管理プログラム
JP2018106462A (ja) 情報処理装置、ストレージ制御プログラムおよびストレージ制御方法
JP2008046763A (ja) ディスクアレイサブシステム及びプログラム
JP2018151815A (ja) ストレージ管理システム
CN114327272A (zh) 一种数据处理方法、固态硬盘控制器及固态硬盘
KR20240025451A (ko) 데이터 캐싱을 위한 방법 및 장치
CN112306404A (zh) 一种瓦记录磁盘数据布局方法、系统及相关设备
JP2007272721A (ja) ストレージ装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210819

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210913

R150 Certificate of patent or registration of utility model

Ref document number: 6955142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150