JP6065642B2 - ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法 - Google Patents

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

Info

Publication number
JP6065642B2
JP6065642B2 JP2013034831A JP2013034831A JP6065642B2 JP 6065642 B2 JP6065642 B2 JP 6065642B2 JP 2013034831 A JP2013034831 A JP 2013034831A JP 2013034831 A JP2013034831 A JP 2013034831A JP 6065642 B2 JP6065642 B2 JP 6065642B2
Authority
JP
Japan
Prior art keywords
storage device
storage
load
target area
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
JP2013034831A
Other languages
English (en)
Other versions
JP2014164510A (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 JP2013034831A priority Critical patent/JP6065642B2/ja
Priority to US14/088,485 priority patent/US9348516B2/en
Publication of JP2014164510A publication Critical patent/JP2014164510A/ja
Application granted granted Critical
Publication of JP6065642B2 publication Critical patent/JP6065642B2/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/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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Description

本件は、ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法に関する。
例えば、HDD(Hard Disk Drive)とSSD(Solid State Drive)とを有する階層ストレージシステムの負荷分析の結果から、一部の階層ストレージシステムにおいてノマディックワークロードスパイク(Nomadic Workload Spike)が発生することがわかっている。
スパイクとは、ストレージの一部のセグメントにワークロード(負荷)が集中することを指す。ノマディックワークロードスパイクとは、スパイクが比較的短時間(1〜10分程度)に集まったのち、別のオフセットに発生したスパイクに移動する現象である。
ノマディックワークロードスパイクの例を図13に示す。
図13の縦軸はストレージのボリュームに対するオフセットを示し、横軸は経過時間を示す。
図13の黒いバーは、ストレージボリューム上の負荷が集中している1GBセグメントを示す。ここで、セグメントとは、ストレージボリュームをある一定の大きさに区切った領域を指す。例えば、1GBセグメントは、ストレージのボリュームを1GB単位で区切った領域を指す。
図13のAの点線の時点において、10以下のセグメントが同時に発生している。図13の矢印B,Cで示す部分は、ワークロードが継続して発生しているセグメントを示す。
このようなワークロードを解消するために、従来、階層ストレージシステムに、HDDのほかに、キャッシュとして例えばSSDを設けることにより、性能向上とコストパフォーマンスとの両方を実現してきた。このような方式をSSDキャッシュ方式と呼ぶ。
SSDキャッシュの例として、フェイスブックフラッシュキャッシュやFusion−ioダイレクトキャッシュなどがある。
特開2011−154669号公報
しかし、前述の如きSSDキャッシュ方式は、ライトバックキャッシュ方式を採用している。従って、write比の高いノマディックワークロードスパイクに適用すると、スパイクの移動時に問題が発生する。
詳細には、1つ前のスパイクの発生時点で全SSDキャッシュブロックを使い果たした場合、新しいスパイクとキャッシュブロックを割り当てるには、キャッシュブロックのクリーンアップが必要になる。ここで、ノマディックワークロードスパイクのwrite比が高い場合には、HDDへの書き戻し(ライトバック)が大量に発生する。
SSDキャッシュブロックは通常4KB程度と小さいので、ライトバックによりHDDへのランダムアクセスが発生し、大きな遅延の要因となる。
又、ライトバックキャッシュでは、キャッシュ領域を使い果たすとダーティブロック(HDDの対応するブロックと内容が相違するSSDのブロック)のライトバックが定常的に発生する。write比が高いノマディックワークロードスパイクの実行中は、ダーティブロックのライトバックが大量に発生するので、SSDのユーザが使用可能な帯域が消費されてしまう。
このように、write比が高いノマディックワークロードスパイクが発生するワークロードにSSDキャッシュを適用しても、十分な効果が得られないことが多い。
1つの側面では、本発明は、ストレージシステムにおいて、ノマディックワークロードスパイクを効率的に処理することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、本開示のストレージ制御プログラムは、第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置の制御プログラムにおいて、前記ストレージ制御装置に、前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集させ、収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動させる。
前記移動対象領域は、前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定される。また、前記移動対象領域は、前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されてもよい。
又、本開示の階層ストレージ制御装置は、第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置において、前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集する収集部と、前記収集部が収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定する特定部と、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動する移動部と、を有する。
前記移動対象領域は、前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定される。また、前記移動対象領域は、前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されてもよい。
又、本開示の階層ストレージシステムは、第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置と、前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定するとともに、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動するストレージ制御装置と、を有する。
前記移動対象領域は、前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定される。また、前記移動対象領域は、前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されてもよい。
又、本開示の階層ストレージ制御方法は、第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置の制御方法において、前記ストレージ制御装置が、前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動する。
前記移動対象領域は、前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定される。また、前記移動対象領域は、前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されてもよい。
本発明によれば、ストレージシステムにおいて、ノマディックワークロードスパイクを効率的に処理することができる。
実施形態の一例としての階層ストレージシステムのシステム構成を示す模式図である。 実施形態の一例としての階層ストレージシステムの機能及びハードウェア構成を示す模式図である。 実施形態の一例としての階層ストレージシステムで使用される階層化テーブルを例示する図である。 実施形態の一例としての階層ストレージシステムで使用される転送テーブルを例示する図である。 実施形態の一例としての階層ストレージシステムにおけるデータ収集部によるデータ収集処理を示すフローチャートである。 実施形態の一例としての階層ストレージシステムにおけるワークロード分析部及び移動部による移動処理の概要を示すフローチャートである。 ワークロード分析部による、図6の移動候補のセグメントの抽出処理を示すフローチャートである。 実施形態の一例としての階層ストレージシステムにおける移動部によるセグメント移動処理を示すフローチャートである。 実施形態の一例としての階層ストレージシステムにおける階層化ドライバによるセグメント移動後の処理を示すフローチャートである。 実施形態の一例としての階層ストレージシステムにおける階層化ドライバによるセグメント移動処理を示すフローチャートである。 実施形態の一例としての階層ストレージシステムにおける階層化ドライバによるユーザIOの処理を示すフローチャートである。 実施形態の一例としての階層ストレージシステムと従来の階層ストレージシステムとの比較結果を例示するグラフである。 ノマディックワークロードスパイクの例を示すグラフである。 ワークロードの平均余命時間を例示するグラフである。
以下、図面を参照して本技術に係る実施の形態を説明する。
(A)構成
以下、図1〜図4を参照して、実施形態の一例としての階層ストレージシステム(ストレージシステム)1の構成について説明する。
図1は、実施形態の一例としての階層ストレージシステム1のシステム構成を示す模式図である。又、図2は、実施形態の一例としての階層ストレージシステム1の機能及びハードウェア構成を示す模式図である。
階層ストレージシステム1は、情報処理装置2、HDD(第1の記憶装置)7、キャッシュSSD(第3の記憶装置)8、及び階層化SSD(第2の記憶装置)9をそなえる。
情報処理装置2は、例えば、サーバ機能をそなえたコンピュータであり、後述するHDD7及びキャッシュSSD8との間において、SCSIコマンドやレスポンス等の各種データを、ストレージ接続プロトコルを用いて送受信する。この情報処理装置2は、HDD7及びキャッシュSSD8に対してリード/ライト等のディスクアクセスコマンドを送信することにより、HDD7及びキャッシュSSD8が提供する記憶領域にデータの書き込みや読み出しを行なう。
HDD7は、磁性体を塗布した円盤を記録装置として使用し、磁気ヘッドを移動させることで、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
キャッシュSSD8は、半導体素子メモリを記憶装置として使用するストレージドライブであり、シリコンディスクドライブ、半導体ディスクドライブともよばれる。一般に、キャッシュSSD8は、HDD7のような磁気ヘッドの移動に伴うヘッドシークタイムがないため、HDD7よりも高速なランダムアクセスが可能である。その一方、半導体メモリを使用するのでHDD7よりも高価である。
本実施形態においては、HDD7とキャッシュSSD8とは、仮想的に一台のディスクとして機能する。詳細には、HDD7上にあるデータのうち、階層ストレージ制御装置1からのアクセスが頻繁に発生するデータが、アクセス速度の高いキャッシュSSD8上に置かれる。つまり、キャッシュSSD8はHDD7のキャッシュとして使用される。このため、以降、HDD7とキャッシュSSD8とをまとめて、フラッシュキャッシュ10、或いはキャッシュ10と呼ぶ。或いは、HDD7とキャッシュSSD8とを仮想的に1つのHDD10とみなし、HDD10と呼ぶこともある。
なお、キャッシュSSD8をHDD7のキャッシュとして使用する手法については当業界において広く用いられているため、ここではその説明を省略する。
階層化SSD9は、半導体素子メモリを記憶装置として使用するストレージドライブであり、シリコンディスクドライブ、半導体ディスクドライブともよばれる。一般に、階層化SSD9は、HDD7のような磁気ヘッドの移動に伴うヘッドシークタイムがないため、HDD7よりも高速なランダムアクセスが可能である。その一方、半導体メモリを使用するのでHDD7よりも高価である。
図2に示すように、情報処理装置2は、例えば、CPU(Central Processing Unit)51、メモリ52、内蔵ディスク53、I/O(Input/Output)インタフェース54、及び媒体リーダ55をそなえる。
CPU51は、情報処理装置2の基本機能を実現するシステムソフトウェアであるオペレーティングシステム(operating system;OS)4を実行する。又、CPU51は、後述するメモリ52に格納されているプログラムを実行することにより、各種処理を実行する。
メモリ52は、CPU51が実行するプログラムや種々のデータや、CPU51の動作により得られたデータ等を格納する。又、メモリ52は、後述する転送テーブル13及び階層化テーブル22を格納する格納部としても機能する。メモリ52としては、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、不揮発性メモリ、揮発性メモリなど、既存の種々のメモリを使用することができる。又、複数種類のメモリをそなえていてもよい。
内蔵ディスク53は、情報処理装置2の内蔵の記憶域を提供するディスクドライブであり、例えば、情報処理装置2で実行されているOS4や各種プログラムを記憶している。内蔵ディスク53は、例えばHDDである。又、内蔵ディスク53は、後述する負荷データベース(DB;データセット)15を格納する格納部としても機能する。
I/Oインタフェース54は、情報処理装置2と、HDD7、キャッシュSSD8、階層化SSD9とを接続するアダプタである。I/Oインタフェース54は、例えば、SATA(Serial Advanced Technology Attachment)、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)、FC(Fibre Channel)などに準拠したディスクインタフェースカードである。
媒体リーダ55は、CD−ROMやDVD−ROMなどの記録媒体56を読み出すドライブであり、例えば、CD−ROMドライブやDVD−ROMドライブである。
CPU51は、OS4を実行している。
OS4は、情報処理装置2のハードウェアの管理などの基本機能を実現するシステムソフトウェアである。OS4は、例えばLinux(登録商標)などである。
OS4は、階層化ドライバ5、キャッシュドライバ6、ディスクドライバ31〜33、blktraceコマンド41、及びiostatコマンド42を有する。
ディスクドライバ31は、HDD7のハードウェア制御を実行するデバイスドライバである。
ディスクドライバ32は、キャッシュSSD8のハードウェア制御を実行するデバイスドライバである。
ディスクドライバ33は、階層化SSD9のハードウェア制御を実行するデバイスドライバである。
キャッシュドライバ6は、フラッシュキャッシュドライバとも呼ばれ、HDD7とキャッシュSSD8とで定義されるフラッシュキャッシュ10のキャッシュシステムを実現するために、ディスクドライバ31とディスクドライバ32とを制御する。
階層化ドライバ5は、後述するように、HDD7とキャッシュSSD8とで定義されるフラッシュキャッシュ10と、階層化SSD9との間における、所定のセグメント単位でのデータの移動(転送)を制御する。
図1に示すように、階層化ドライバ5は、IOマップ部21と、階層化テーブル22とを有する。
IOマップ部21は、後述する階層化テーブル22を参照して、キャッシュドライバ6及びディスクドライバ33に対して、所定のセグメント単位でのデータの移動(転送)の指示を行なう。
階層化テーブル22は、フラッシュキャッシュ(HDD)10と階層化SSD9との関連を示すテーブルである。
図3は、実施形態の一例としての階層ストレージシステム1で使用される階層化テーブル22を例示する図である。
図3に示す例では、階層化テーブル22は、SSDオフセット221と、これに対応するHDD10のオフセット222と、状態223とを相互に関連させて格納している。
SSDオフセット221は、階層化SSD9にデータを移動させたセグメントの位置を、階層化SSD9におけるそのセグメントのオフセットにより示す。例えば、このオフセットとして、階層化SSD9上での当該セグメントのLBA(Logical Block Address)が使用される。
HDDオフセット222は、SSDオフセット221が示す階層化SSD9に移動したセグメントの、フラッシュキャッシュ10上での位置を、フラッシュキャッシュ10におけるそのセグメントのオフセットにより示す。例えば、オフセットは、フラッシュキャッシュ10上での当該セグメントのLBA(Logical Block Address)である。ここでは、フラッシュキャッシュ10を仮想的に1台のHDD10上とみなし、フラッシュキャッシュ10におけるオフセットを「HDD10上オフセット」と呼んでいる。
状態223は、SDオフセット221が示す階層化SSD9に移動したセグメントの状態を示す情報を格納する。状態223には、例えば、階層化SSD9の空きを示す‘空き’、階層化SSD9に割り当て済みであるが実際にはデータが移動されていない‘割り当て済み’、HDD10と階層化SSD9間でデータの移動が行なわれている‘Moving’の値が格納される。又、‘Moving’の値には、HDD10から階層化SSD9にデータが移動された‘Moving(HDD→SSD)’と、逆方向にデータが移動された‘Moving(SSD→HDD)’との2つが存在する。
図1,2に示すblktraceコマンド41は、ブロックIOレイヤのトレースに使用される。blktraceコマンド41はブロックIOレイヤの入口及び出口、並びにブロックIOレイヤ内部でのIO要求の状態をトレースする。このトレースの結果がIOトレースである。
後述するデータ収集部11は、このblktraceコマンド41を定期的に(例えば1分間隔で)実行することにより、IOトレースを負荷データベース15として蓄積する。
例えば、LinuxOS上では、データ収集部11は、ストレージボリュームを、所定の大きさ(例では1GB)に分割した領域(以下、この領域をセグメントと呼ぶ)毎に、1)IO数、2)IOサイズごとの割合、3)read/writeの割合、4)レスポンスのヒストグラムなどを計測し、負荷データベース15に格納する。
iostatコマンド42は、IOの統計情報を取得するコマンドであり、オプション「−x」を指定することにより、ディスクごとの利用率であるビジー率(%util、100に近いほど性能限界に近い)等の情報を取得できる。
この%utilから、ピーク性能比でディスクの性能をどれだけの割合使用しているのかがわかる。
又、階層ストレージ制御装置1のCPU51(図2参照)は、不図示のプログラムを実行することにより、階層化管理部(階層ストレージ制御装置)3として機能する。
階層化管理部3は、HDD7とキャッシュSSD8とで定義されるフラッシュキャッシュ10から、継続時間が比較的長い(例えば、3分以上)ノマディックワークロードスパイクが発生しているセグメントをリアルタイムに抽出する。そして、そのセグメント(つまり、そのセグメントのデータ)をHDD10から階層化SSD9へ移動させる。
階層化管理部3は、データ収集部(収集部)11、ワークロード分析部(分析部)12、及び移動部14をそなえる。
データ収集部11は、所定の間隔でblctraceコマンド41を実行して、セグメント単位のIO数等のデータをリアルタイムに収集し、負荷データベース(負荷情報)15に格納する。
例えば、フラッシュキャッシュ10の容量が4.4TB,セグメントサイズが1GB、所定の間隔(タイムスライス)が1分の場合を考える。この場合、データ収集部11は、4400セグメントのIO数を1分間隔で取得して、負荷データベース15に格納する。
なお、データ収集部11の具体的な処理については、図5を参照して後述する。
ワークロード分析部12は、データ収集部11が収集した負荷データベース15に基づいて、ノマディックワークロードスパイクが発生しているセグメントの特定を行なう。
ここで、ワークロード分析部12は、ノマディックワークロードスパイクとして、継続時間が比較的長いものを選択する。その際、ワークロード分析部12は、ノマディックワークロードスパイクの継続時間が長いかどうかを、その平均余命時間に基づいて判断する。平均余命時間とは、負荷が継続する継続時間から既に実行済みの実行時間を減じた時間をいう。
詳細には、システム管理者等が、事前に、階層ストレージシステム1のノマディックワークロードスパイク(ワークロード)の継続時間のデータを収集しておき、このデータから、公知の計算方式を用いて、ノマディックワークロードスパイクの継続時間を算出する。なお、平均余命時間の具体的な計算方法は公知であるため、ここではその説明を省略する。
ここで、図14を参照して、平均余命時間の例を説明する。
図14は、ワークロードの平均余命時間の例を示す図である。
ここでは、8つのワークロード(proj1,proj2,…)の平均余命時間を計算している。
横軸は、各ワークロードの実行時間(継続時間)、縦軸はその実行時間における各ワークロードの余命を示す。
例えばproj4を例にとると、図14から、ノマディックワークロードスパイクが3分継続した場合、ワークロードがあと10分継続する可能性があることがわかる。
このように、ワークロード分析部12は、ワークロードごとの平均余命時間のデータに基づいてノマディックワークロードスパイクを、階層化SSD9へ投機的に移動する。
図14のProj4の例では、3分間継続したノマディックワークロードスパイクが見つかるとさらに10分間スパイクが継続する可能性があることがわかる。
ワークロード分析部12は、この10分が、階層移動(ステージング)のためのコスト(検出オーバーヘッドとステージングの時間との和)を上回っている場合には階層移動を行なう。
つまり、ワークロード分析部12は、一定時間継続したノマディックワークロードスパイク(例えば3分)を検出すると、後述する式(3)に示すように、セグメント数に基づいて階層移動に要するコストを求め、この値と上図の平均余命時間との比較を行なう。
階層移動に要するコストよりも平均余命時間のほうが長いと判定した場合、ワークロード分析部12は、そのノマディックワークロードスパイクが発生しているセグメントを移動対象として判定する。そして、転送(移動)対象と判定したセグメントの情報を転送テーブル13に書き込む。
ここで、転送テーブル13の例を図4に示す。転送テーブル13は、図4に示すように、セグメント番号131と連続数132とを有する。
セグメント番号131は、階層化SSD9への移動を指示するセグメントの番号を示す。
連続数132は、セグメント番号131が示すセグメントにおいて、ノマディックワークロードスパイクが発生していると、過去何回、所定のタイムアウト値分連続して判定されたかの回数を示す。
又、ワークロード分析部12は、階層化SSD9に移動したセグメントが、所定のタイムアウト値分連続してノマディックワークロードスパイクとして判定されなかった場合に、階層化SSD9からフラッシュキャッシュ10にそのセグメントを書き戻すように指示する。
なお、ワークロード分析部12の詳細な動作については、図6,7を参照して後述する。
移動部14は、ワークロード分析部12からの指示に基づいて、セグメントを、階層化SSD9からフラッシュキャッシュ10へ、或いはその逆方向に移動するように階層化ドライバ5に対して指示を行なう。
なお、移動部14の詳細な動作については、図8を参照して後述する
なお、上記の実施形態においては、情報処理装置2のCPU51が、ストレージ制御プログラムを実行することにより、図1,2の階層化管理部3、データ収集部11、ワークロード分析部12、及び移動部14として機能する。
なお、これらの階層化管理部3、データ収集部11、ワークロード分析部12、及び移動部14の機能を実現するためのプログラム(ストレージ制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体56に記録された形態で提供される。そして、コンピュータはその記録媒体56からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体56)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
階層化管理部3、データ収集部11、ワークロード分析部12、及び移動部14としての機能を実現する際には、内部記憶装置(本実施形態では情報処理装置2のメモリ52)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態では情報処理装置2のCPU51)によって実行される。このとき、記録媒体56に記録されたプログラムを、媒体リーダ55を介してコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体56に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置2がコンピュータとしての機能を有しているのである。
(B)機能及び動作
以下、図面を参照して、実施形態の一例としての階層ストレージシステム1の機能及び動作を説明する。
最初に、図5を参照して、データ収集部11の処理について説明する。
図5は、実施形態の一例としての階層ストレージシステム1におけるデータ収集部11によるデータ収集処理を示すフローチャート(ステップS1〜S5)である。
ステップS1において、データ収集部11は、s秒(例えば、60秒)実行して終了する条件でblktraceコマンド41を起動する。
次に、ステップS2において、データ収集部11は、s秒が経過しblktraceコマンド41が終了したかどうかを判定する。
blktraceコマンド41が終了していない場合(ステップS2のNOルート参照)、処理はステップS2に戻る。
一方、blktraceコマンド41が終了している場合(ステップS2のYESルート参照)、ステップS3において、データ収集部11は、blktraceコマンド41で取得したトレース結果を取り出し、所定のセグメント単位(例えば、1GBセグメント単位)で、オフセット毎のIO数を抽出する。
次に、ステップS4において、データ収集部11は、ステップS3で抽出したIO数の抽出結果を、タイムスタンプと共に負荷データベース15に書き込む。
最後に、ステップS5において、データ収集部11は、t秒(例えば、60秒)スリープした後、ステップS1に戻る。
次に、図6〜図7を参照して、ワークロード分析部12及び移動部14の処理について説明する。
図6は、実施形態の一例としての階層ストレージシステム1におけるワークロード分析部12及び移動部14による移動処理の概要を示すフローチャート(ステップS11〜S23)である。図7は、ワークロード分析部12による、図6の移動候補のセグメントの抽出処理を示すフローチャート(ステップS121〜S131)である。
まず、図6のステップS11において、ワークロード分析部12は、負荷データベース15から、直近のタイムスタンプのセグメント単位のIO数情報を取り出す。
次に、ステップS12において、ワークロード分析部12は、階層移動対象とするセグメントを抽出する。この抽出処理については、図7を参照して説明する。
まず、図7のステップS121において、ワークロード分析部12は、変数mに1の初期値を与える。この変数mは、スパイク発生と判断するIO割合閾値io_rate_valueに達するセグメント数を求めるために使用する。
次に、ステップS122において、ワークロード分析部12は、図6のステップS11で取り出した情報を、IO数が多いセグメントの順に並べ替え、配列seg_sort(1),…を得る。ここで、seg_sort(k)は、k番目にアクセス数が多いセグメントのIO数である。
次に、ステップS123において、ワークロード分析部12は、全セグメントのIO数を合計して、io_allを求める。つまり、io_allは、分析対象のタイムスライスにおける総IO数である。
次に、ステップS124において、ワークロード分析部12は、seg_sort(1),…について、以下の計算を行なう。
Figure 0006065642
ステップS125において、ワークロード分析部12は、mが、同時に階層化を実行する最大セグメント数max_seg_numに達しているか、或いは上記io_rateが、スパイク発生と判断するIO割合しきい値io_rate_valueを超えているかどうか判定する。
mがmax_seg_numに達しているか、或いはio_rateがio_rate_valueを超えている場合(ステップS125のYESルートを参照)、ステップS126において、ワークロード分析部12は、mがmax_seg_numに到達しているかを判定する。
mがmax_seg_numに到達している場合(ステップS126のYESルートを参照)、ステップS128において、ワークロード分析部12は、対応するセグメント番号が、連続して何回この上位k個(全IOのio_rate_value(%))に入ったかを記録する。
次に、ステップS129において、ワークロード分析部12は、前タイムスライスで上位kセグメントに入ったセグメント番号のち、今回上位k個から外れたセグメントを、階層移動対象から除外する(リセットする)。
ステップS130において、ワークロード分析部12は、ステップS128で求めた連続回数が、min_cont_timeを超えたセグメントを、階層移動候補のセグメントとして抽出する。ここで、min_cont_timeは、この設定値の時間を超えてスパイクが継続した場合に、そのセグメントを階層移動候補セグメントとするしきい値である。
ステップS131において、ワークロード分析部12は、階層移動候補となったn個のセグメントについて、以下を計算する。
tiering_time=seg_move_time×n+検出遅延 …(3)
上記式(3)において、seg_move_timeは、1つのセグメントをHDD10から階層化SSD9へ移動するのに要するコストを、時間(秒)で表わした値であり、例えば、10秒である。又、検出遅延は、セグメントの移動に要する遅延時間(秒)である。
一方、mが、max_seg_numに達しておらず、かつio_rateがio_rate_valueを超えていない場合(ステップS125のNOルート及びステップS126のNOルート)参照、ステップS127においてmが1インクリメントされる。その後、処理がステップS122に戻る。
図6に戻ると、ステップS13において、ワークロード分析部12は、スパイクの平均余命時間life_ex_timeが、tiering_timeを超えているかどうかを判定する。ここで、life_ex_timeは、ワークロードごとに決まる値であり、事前に算出され、システム管理者等によって情報処理装置2に設定される。
life_ex_timeがtiering_timeを超えている場合(ステップS13のYESルート参照)、ステップS14において、ワークロード分析部12は、移動部14に、階層移動候補セグメント情報を送り、HDD10から階層化SSD9への階層移動を指示する。これを受けて、移動部14は、指示された階層移動候補セグメントをHDD10から階層化SSD9に移動させる。
そしてステップS15において、ワークロード分析部12は、階層化SSD9への移動を指示したセグメント情報を、ワークロード分析部12内の転送テーブル13に記録する。
一方、ステップS13において、life_ex_timeがtiering_time以下の場合(ステップS13のNOルート参照)、処理がステップS16に移動する。
次に、ステップS16において、ワークロード分析部12は、ステップS12で求めた上位k個に入ったセグメント番号と、転送テーブル13に登録されているセグメント番号とを比較する。
次に、ステップS17において、ワークロード分析部12は、転送テーブル13に登録されているセグメント番号ごとに、そのセグメントが、上位k個に入ったかどうかを判定する。
上位k個に入った場合(ステップS17のYESルート参照)、ステップS18において、ワークロード分析部12は、セグメント番号の連続数を1インクリメントする。
上位k個に入らなかった場合(ステップS17のNOルート参照)、ステップS19において、ワークロード分析部12は、セグメント番号の連続数を‘0’にリセットする。
次に、ステップS20において、ワークロード分析部12は、転送テーブル13に登録されているセグメント番号ごとに、セグメント番号の連続数がmove_to_hddを超えているかどうかの判断を行なう。なお、move_to_hddは、この値に設定した値、上位k個セグメントから外れると、そのセグメントを階層化SSD9からHDD10に戻すと判定するしきい値である。
セグメント番号の連続数がmove_to_hddを超えている場合(ステップS20のYESルート参照)、ステップS21において、ワークロード分析部12は、超えている各セグメント番号について、当該セグメント番号を移動部14に送り、階層化SSD9からHDD7への階層移動を指示する。
そして、ステップS22において、ワークロード分析部12は、転送テーブル13に登録されているセグメント番号を削除する。
一方、セグメント番号の連続数がmove_to_hdd以下の場合(ステップS20のNOルート参照)、処理はステップS23に移動する。
次にステップS23において、ワークロード分析部12は、u秒(例えば60秒)スリープした後、ステップS11に戻る。
上記図6,図7の処理で使用される各種しきい値(max_seg_num、io_rate_value、min_cont_time、seg_move_time、life_ex_time、move_to_hdd等)は、例えば、事前に情報処理装置2に予め設定されている。これらの値は、工場出荷時に設定されていても、ユーザによって設定されてもよい。又、ユーザが後から変更可能でもよい。
次に、図8を参照して、移動部14による移動処理について説明する。
図8は、実施形態の一例としての階層ストレージシステム1における移動部14によるセグメント移動処理を示すフローチャート(S31〜S34)である。
ステップS31において、移動部14は、ワークロード分析部12から階層移動指示の受信を待機する。
ステップS32において、移動部14は、ワークロード分析部12から階層移動指示を受信したかどうかを判定する。
階層移動指示を受信した場合(ステップS32のYESルート参照)、ステップS33において、移動部14は、ワークロード分析部12から受信した階層移動指示に含まれるセグメント番号を、HDD10上のオフセット(LBA)に変換する。
例えば、512バイト/セクタで、1セグメントのサイズが1GBの場合、移動部14は、1×1024×1024×1024/512を算出する。
次に、ステップS34において、移動部14は、セグメント番号に対応するオフセット情報(HDD10のLBA)と、移動方向(HDD10→階層化SSD9、又は階層化SSD9→HDD10)とを、階層化ドライバ5に伝達する。これを受けて、階層化ドライバ5はこれらの情報に基づいて、セグメントの移動を行なう。その後処理はステップS31に戻る。
また、ステップS32において階層移動指示を未受信の場合(ステップS32のNOルート参照)も、移動部14はステップS31に戻って階層移動指示の受信を待機する。
次に、図9を参照して、階層化ドライバ5によるセグメントの移動処理について説明する。
図9は、実施形態の一例としての階層ストレージシステム1における階層化ドライバ5によるセグメント移動処理を示すフローチャート(ステップS41〜S45)である。
ステップS41において、階層化ドライバ5は、移動部4から階層移動指示の受信を待機する。
ステップS42において、階層化ドライバ5は、移動部4から階層移動指示を受信したかどうかを判定する。
階層移動指示を受信した場合(ステップS42のYESルート参照)、ステップS43において、階層化ドライバ5は、階層化テーブル22内のHDDオフセット222がNULLとなっているエントリを検索する。
次に、ステップS44において、階層化ドライバ5は、見つかったNULLのエントリに、階層化テーブル22内のHDDオフセット222情報と状態(Moving(HDD→SSD又はSSD→HDD))とを登録する。
最後に、ステップS45において、階層化ドライバ5は、階層化SSD9とキャッシュ10とにセグメントの転送を指示する。詳細には、階層化ドライバ5のIOマップ部21が、キャッシュドライバ6とディスクドライバ33とにセグメントの転送を指示する。その後処理はステップS41に戻る。
また、ステップS42において階層移動指示を未受信の場合(ステップS42のNOルート参照)も、階層化ドライバ5はステップS41に戻って階層移動指示の受信を待機する。
次に、階層化ドライバ5によるセグメントの移動後の処理について説明する。
図10は、実施形態の一例としての階層ストレージシステム1における階層化ドライバ5によるセグメント移動後の処理を示すフローチャート(ステップS51〜S56)である。
ステップS51において、階層化ドライバ5は、階層化SSD9とキャッシュ10間のセグメントの転送の完了を待機する。
ステップS52において、階層化ドライバ5は、転送完了を受信したかどうかを判定する。
転送完了報を受信した場合(ステップS52のYESルート参照)、ステップS53において、階層化ドライバ5は、階層化テーブル22内で、転送が完了したエントリを、階層化テーブル22内で検索する。
次に、ステップS54において、階層化ドライバ5は、見つかったエントリの状態がMoving(HDD→SSD)であるかどうかを判定する。
状態がMoving(HDD→SSD)である場合(ステップS54のYESルート参照)、ステップS55において、階層化ドライバ5は、当該エントリの状態を‘割り当て済み’に変更する。その後処理はステップS51に戻る。
一方、状態がMoving(HDD→SSD)ではない場合(ステップS54のNOルート参照)、ステップS56において、階層化ドライバ5は、当該エントリの状態を‘空き’に変更し、対応するHDDオフセット222に値NULLを設定する。この場合も処理はステップS51に戻る。
また、ステップS52において転送完了を未受信の場合(ステップS52のNOルート参照)も、階層化ドライバ5はステップS51に戻って転送完了の受信を待機する。
次に、階層化ドライバ5によるユーザIOの処理について説明する。
図11は、実施形態の一例としての階層ストレージシステム1における階層化ドライバ5によるユーザIOの処理を示すフローチャート(ステップS61〜S66)である。
ステップS61において、階層化ドライバ5は、ユーザIOの受信を待機する。ユーザIOには、例えば、IO対象のデータのHDD7上のオフセット、IO対象のデータのサイズ、及びIOがread/writeのいずれであるかを示す情報が含まれる。
ステップS62において、階層化ドライバ5は、ユーザIOを受信したかどうかを判定する。
ユーザIOを受信した場合(ステップS62のYESルート参照)、ステップS63において、階層化ドライバ5は、階層化テーブル22に登録されている各エントリを調べる。そして、このユーザIOに含まれるオフセットと、各エントリのオフセット221,222にユーザIOに含まれるセグメントサイズとが一致するエントリが存在するかどうかを調べる。更に、階層化ドライバ5は、そのエントリの状態223が‘割り当て済み’であるかどうかを調べる
一致するエントリが存在しその状態223が‘割り当て済み’である場合(ステップS64のYESルート参照)、ユーザIO対象のデータが階層化SSDに存在するため、ステップS65において、階層化ドライバ5は、ユーザIOを仮想化SSD9に送信する。詳細には、階層化ドライバ5のIOマップ部21が、ディスクドライバ33に対してユーザIOの実行を指示する。その後、処理はステップS61に戻る。
一方、一致するエントリが存在しないか、或いはエントリが存在していてもその状態223が‘割り当て済み’ではない場合(ステップS64のNOルート参照)、ユーザIO対象のデータはキャッシュ化ストレージ10に存在する。そのため、ステップS66において、階層化ドライバ5は、ユーザIOをキャッシュ化ストレージ10に送信する。詳細には、階層化ドライバ5のIOマップ部21が、キャッシュドライバ6に対してユーザIOの実行を指示する。この場合も処理はステップS61に戻る。
また、ステップS62においてユーザIOを未受信の場合(ステップS62のNOルート参照)も、階層化ドライバ5はステップS61に戻ってユーザIOの受信を待機する。
(C)作用・効果
本開示の技術によれば、階層ストレージシステム1においては、SSD9への移動コスト(移動時間)がその持続時間を超えるノマディックワークロードスパイクを、SSD9へ動的に移動させる。
ここで、階層ストレージシステム1においては、SSD9とHDD7とが階層化されているため、SSD9に空きブロックを作るために、ダーティブロックのライトバックが発生することがない。つまり、一旦データがSSD9へステージングされた後は、ライトバック負荷等が発生しない。このため、ノマディックワークロードスパイクの発生時でもSSD9を有効に利用することができる。
なお、本発明者らによる実験結果では、情報処理装置2は、フラッシュキャッシュ10のみをそなえた階層ストレージ制御装置と比較して、約17%の高速化が実現される。
図12に、実施形態の一例としての階層ストレージシステム1と従来の階層ストレージシステムとの比較結果を例示する。
このグラフは、本階層ストレージシステム1と、フェイスブックフラッシュキャッシュのみをそなえたシステムとに、同じベンチマークを実行した結果を示す。SSDの容量はいずれのシステムも25GBと統一し、効果を比較した。
図12の横軸は実行開始からの経過時間、縦軸は1秒間のio数(iops)を示す。
このデータより、本階層ストレージシステム1のほうがピーク時の負荷が高くなり、ベンチマークの実行が早く終了することがわかる。
このように、階層ストレージシステム1においては、SSD9に空きブロックを作るために、ダーティブロックのライトバックが発生することがないため、ノマディックワークロードスパイクの処理を効率化することができる。
(D)その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記の実施形態の一例においては、ボリュームが1GBセグメントの単位で区分されるが、ボリュームの区分単位は任意に変更することができる。
更に、第1の記憶装置がHDDであり、第1の記憶装置よりも高速な第2の記憶装置がSSDであるとして記載した。しかし、第1の記憶装置よりも第2の記憶装置のほうが高速であれば、これらの記憶装置がほかのタイプの記憶装置でもよい。
又、上記の実施形態の一例においては、各情報処理装置2に搭載されるOS54の例としてLinuxを採り上げたが、他のUNIX(登録商標)OSや、他のOSアーキテクチャのOSも使用することもできる。その場合、使用するOSの対応するコマンドを使用する。例えば、OS54としてWindows(登録商標)を使用する場合、対応するWindowsコマンドを使用してIO数の情報を収集することができる。
又、上述した階層ストレージシステム1の各構成、各手段及び各機能は、必要に応じて取捨選択されてもよいし、適宜組み合わせられてもよい。即ち、上述した機能を発揮できるように、上記の各構成及び各機能は取捨選択されたり、適宜組み合わせて用いられたりしてもよい。
又、上記の実施形態の一例においては、処理フローのステップの実行順序を変更してもよい。
又、階層ストレージシステム1において、上記のフローチャートの処理を組み合わせてもよい。
(E)付記
(付記1)
第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置の制御プログラムにおいて、
前記ストレージ制御装置に、
前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集させ、
収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、
前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動させる
ことを特徴とするストレージ制御プログラム。
(付記2)
前記負荷情報は、
単位時間あたりの入出力要求数であることを特徴とする付記1記載のストレージ制御プログラム。
(付記3)
前記移動対象領域は、
前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定されることを特徴とする付記1又は2記載のストレージ制御プログラム。
(付記4)
前記移動対象領域は、
前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されることを特徴とする付記1ないし3のいずれか1項に記載のストレージ制御プログラム。
(付記5)
第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置において、
前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集する収集部と、
前記収集部が収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定する特定部と、
前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動する移動部と、
を有することを特徴とするストレージ制御装置。
(付記6)
前記収集部は、前記負荷情報を、単位時間あたりの入出力要求数として収集することを特徴とする付記5記載の階層ストレージ制御装置。
(付記7)
前記特定部は、前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて前記移動対象領域を特定することを特徴とする付記5又は6記載の階層ストレージ制御装置。
(付記8)
前記特定部は、前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域を、移動対象領域として特定することを特徴とする付記5ないし7のいずれか1項に記載の階層ストレージ制御装置。
(付記9)
第1の記憶装置と、
前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置と、
前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定するとともに、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動するストレージ制御装置と、
を有することを特徴とするストレージシステム。
(付記10)
前記ストレージ制御装置は、前記負荷情報を、単位時間あたりの入出力要求数として収集することを特徴とする付記9記載のストレージシステム。
(付記11)
前記ストレージ制御装置は、前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて前記移動対象領域を特定することを特徴とする付記9又は10記載のストレージシステム。
(付記12)
前記ストレージ制御装置は、前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域を、移動対象領域として特定することを特徴とする付記9ないし11のいずれか1項に記載のストレージシステム。
(付記13)
前記ストレージシステムはさらに、
前記第1の記憶装置よりもアクセス速度が高い第3の記憶装置を有し、
前記第3の記憶装置は、
前記第1の記憶装置を制御するドライバであって、前記第3の記憶装置と共通のドライバにより制御されることを特徴とする付記9ないし12のいずれか1項に記載のストレージシステム。
(付記14)
第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置の制御方法において、
前記ストレージ制御装置が、
前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、
収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、
前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動する
ことを特徴とするストレージ制御方法。
(付記15)
前記負荷情報は、
単位時間あたりの入出力要求数であることを特徴とする付記14記載のストレージ制御方法。
(付記16)
前記移動対象領域は、
前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定されることを特徴とする付記14又は15記載のストレージ制御方法。
(付記17)
前記移動対象領域は、
前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されることを特徴とする付記14ないし16のいずれか1項に記載のストレージ制御方法。
1 階層ストレージシステム(ストレージシステム)
2 情報処理装置
3 階層化管理部(ストレージ制御装置)
4 OS
5 階層化ドライバ
6 キャッシュドライバ
7 HDD(第1の記憶装置)
8 キャッシュSSD(第3の記憶装置)
9 階層化SSD(第2の記憶装置)
10 フラッシュキャッシュ
11 データ収集部(収集部)
12 ワークロード分析部(分析部)
13 転送テーブル
14 移動部
15 負荷データベース(負荷情報)
21 IOマップ部
22 階層化テーブル
31〜33 ディスクドライバ
41 blktraceコマンド
42 iostatコマンド

Claims (10)

  1. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置の制御プログラムにおいて、
    前記ストレージ制御装置に、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集させ、
    収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、
    前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動させ
    前記移動対象領域は、
    前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定され
    ことを特徴とするストレージ制御プログラム。
  2. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置の制御プログラムにおいて、
    前記ストレージ制御装置に、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集させ、
    収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、
    前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動させ、
    前記移動対象領域は、
    前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定される
    ことを特徴とするストレージ制御プログラム。
  3. 前記負荷情報は、
    単位時間あたりの入出力要求数であることを特徴とする請求項1又は2記載のストレージ制御プログラム。
  4. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置において、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集する収集部と、
    前記収集部が収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定する特定部と、
    前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動する移動部と、
    を有し、
    前記移動対象領域は、
    前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定されることを特徴とするストレージ制御装置。
  5. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを制御するストレージ制御装置において、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集する収集部と、
    前記収集部が収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定する特定部と、
    前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動する移動部と、
    を有し、
    前記移動対象領域は、
    前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されることを特徴とするストレージ制御装置。
  6. 第1の記憶装置と、
    前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置と、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定するとともに、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動するストレージ制御装置と、
    を有し、
    前記移動対象領域は、
    前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定されることを特徴とするストレージシステム。
  7. 第1の記憶装置と、
    前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置と、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定するとともに、前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動するストレージ制御装置と、
    を有し、
    前記移動対象領域は、
    前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定されることを特徴とするストレージシステム。
  8. 前記ストレージシステムはさらに、
    前記第1の記憶装置よりもアクセス速度が高い第3の記憶装置を有し、
    前記第3の記憶装置は、
    前記第1の記憶装置を制御するドライバであって、前記第3の記憶装置と共通のドライバにより制御されることを特徴とする請求項6又は7記載のストレージシステム。
  9. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを
    制御するストレージ制御装置の制御方法において、
    前記ストレージ制御装置が、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、
    収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、
    前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動し、
    前記移動対象領域は、
    前記負荷情報に応じて算出した、前記第1の記憶装置に含まれる複数の領域の各々における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間に基づいて特定され
    ことを特徴とするストレージ制御方法。
  10. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が高い第2の記憶装置とを
    制御するストレージ制御装置の制御方法において、
    前記ストレージ制御装置が、
    前記第1の記憶装置に含まれる複数の領域の各々の負荷に関する負荷情報を収集し、
    収集した前記負荷情報に基づいて、前記第1の記憶装置の移動対象領域を特定し、
    前記第2の記憶装置に、特定した前記移動対象領域に含まれるデータを移動し、
    前記移動対象領域は、
    前記第1の記憶装置に含まれる複数の領域のうち、各領域における負荷が継続する継続時間から既に実行済みの実行時間を減じた平均余命時間が、前記第1の記憶装置から前記第2の記憶装置に当該負荷を移動させる移動時間よりも大きい領域が特定される
    ことを特徴とするストレージ制御方法。
JP2013034831A 2013-02-25 2013-02-25 ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法 Active JP6065642B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013034831A JP6065642B2 (ja) 2013-02-25 2013-02-25 ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法
US14/088,485 US9348516B2 (en) 2013-02-25 2013-11-25 Storage controller, storage system, method of controlling storage controller, and computer-readable storage medium having storage control program stored therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013034831A JP6065642B2 (ja) 2013-02-25 2013-02-25 ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2014164510A JP2014164510A (ja) 2014-09-08
JP6065642B2 true JP6065642B2 (ja) 2017-01-25

Family

ID=51389459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013034831A Active JP6065642B2 (ja) 2013-02-25 2013-02-25 ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法

Country Status (2)

Country Link
US (1) US9348516B2 (ja)
JP (1) JP6065642B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6086007B2 (ja) * 2013-03-26 2017-03-01 富士通株式会社 ストレージ制御装置の制御プログラム、ストレージ制御装置の制御方法、ストレージ制御装置及びストレージシステム
JP6504337B2 (ja) * 2014-11-12 2019-04-24 日本電気株式会社 ストレージシステム、ストレージ装置、及びステージング方法
JP6394313B2 (ja) 2014-11-19 2018-09-26 富士通株式会社 ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム
US20180004430A1 (en) * 2015-01-30 2018-01-04 Hewlett Packard Enterprise Development Lp Chunk Monitoring
JP6443170B2 (ja) 2015-03-26 2018-12-26 富士通株式会社 階層ストレージ装置,階層ストレージ制御装置,階層ストレージ制御プログラム及び階層ストレージ制御方法
JP2016207096A (ja) * 2015-04-27 2016-12-08 富士通株式会社 階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラム
JP6558090B2 (ja) 2015-06-15 2019-08-14 富士通株式会社 ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム
JP6497233B2 (ja) 2015-06-19 2019-04-10 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
JP6572756B2 (ja) 2015-11-27 2019-09-11 富士通株式会社 情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
CN107391031B (zh) * 2017-06-27 2020-05-08 北京邮电大学 一种基于混合存储的计算系统中的数据迁移方法及装置
CN107809487B (zh) * 2017-11-07 2021-10-01 普天东方通信集团有限公司 一种传感器数据传输方法、系统及介质
CN107967172B (zh) * 2017-12-21 2022-01-11 深圳大学 一种面向异构存储的Spark任务动态迁移方法和系统
CN110377430B (zh) * 2019-07-24 2021-08-31 中南民族大学 数据迁移方法、设备、存储介质及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324620B1 (en) * 1998-07-23 2001-11-27 International Business Machines Corporation Dynamic DASD data management and partitioning based on access frequency utilization and capacity
DE19961499A1 (de) * 1999-12-20 2001-07-05 Ericsson Telefon Ab L M Caching von Objekten in Platten-gestützten Datenbanken
JP4257785B2 (ja) * 2003-04-22 2009-04-22 株式会社日立製作所 キャッシュストレージ装置
US8688904B1 (en) * 2005-05-23 2014-04-01 Hewlett-Packard Development Company, L.P. Method for managing data storage
JP4414409B2 (ja) * 2006-04-24 2010-02-10 富士通株式会社 ディスク装置、ディスク制御方法及びプログラム
JP2008299559A (ja) * 2007-05-31 2008-12-11 Hitachi Ltd ストレージシステム及びストレージシステムにおけるデータ移行方法
US8874867B2 (en) 2008-11-21 2014-10-28 Lsi Corporation Identification and containment of performance hot-spots in virtual volumes
JP2010257094A (ja) 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
US8285959B2 (en) 2010-01-25 2012-10-09 Netapp, Inc. Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
JP5130313B2 (ja) 2010-04-02 2013-01-30 株式会社日立製作所 管理システム及び計算機システムの管理方法
JP2012123551A (ja) * 2010-12-07 2012-06-28 Fujitsu Ltd 情報記憶装置
US8549247B2 (en) * 2010-12-28 2013-10-01 Hitachi, Ltd. Storage system, management method of the storage system, and program
US8775731B2 (en) * 2011-03-25 2014-07-08 Dell Products, L.P. Write spike performance enhancement in hybrid storage systems
JP5175953B2 (ja) * 2011-06-02 2013-04-03 株式会社東芝 情報処理装置およびキャッシュ制御方法
US9626105B2 (en) * 2011-12-12 2017-04-18 International Business Machines Corporation Controlling a storage system

Also Published As

Publication number Publication date
US9348516B2 (en) 2016-05-24
JP2014164510A (ja) 2014-09-08
US20140244959A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
JP6065642B2 (ja) ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法
JP6299169B2 (ja) ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
JP5466794B2 (ja) コンピューティング・ストレージ環境における実行時動的性能スキュー排除のための方法、システム、コンピュータ・プログラム(実行時動的性能スキュー排除)
JP2013171305A (ja) ストレージ装置、ストレージシステム、ストレージ管理方法及びストレージ管理プログラム
US8566553B1 (en) Techniques for automated evaluation and movement of data between storage tiers
US9832270B2 (en) Determining I/O performance headroom
KR20130100722A (ko) Smr raid용의 대블록 무작위 쓰기 핫 스페어 ssd 구현
US10521124B1 (en) Application-specific workload-based I/O performance management
US20180181307A1 (en) Information processing device, control device and method
WO2016107390A1 (zh) 一种管理磁盘文件的方法和装置
JP6142685B2 (ja) ストレージシステム、運用管理方法及び運用管理プログラム
US20170344269A1 (en) Storage system, control apparatus, and method of transmitting data
US11429431B2 (en) Information processing system and management device
US10133517B2 (en) Storage control device
JP6260384B2 (ja) ストレージ制御装置,制御プログラム,及び制御方法
JP6880711B2 (ja) 情報処理装置、ストレージ制御プログラムおよびストレージ制御方法
Oe et al. On-The-Fly Automated Storage Tiering (OTF-AST)
Oe et al. On-the-fly automated storage tiering with caching and both proactive and observational migration
US10168944B2 (en) Information processing apparatus and method executed by an information processing apparatus
US11429318B2 (en) Redirect-on-write snapshot mechanism with delayed data movement
US10725710B2 (en) Hierarchical storage device, hierarchical storage control device, computer-readable recording medium having hierarchical storage control program recorded thereon, and hierarchical storage control method
JP6497233B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
JP2017134700A (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161111

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150