JP2020046929A - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
JP2020046929A
JP2020046929A JP2018174840A JP2018174840A JP2020046929A JP 2020046929 A JP2020046929 A JP 2020046929A JP 2018174840 A JP2018174840 A JP 2018174840A JP 2018174840 A JP2018174840 A JP 2018174840A JP 2020046929 A JP2020046929 A JP 2020046929A
Authority
JP
Japan
Prior art keywords
storage device
queue
movement
instruction
data
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.)
Pending
Application number
JP2018174840A
Other languages
English (en)
Inventor
和一 大江
Kazuichi Oe
和一 大江
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 JP2018174840A priority Critical patent/JP2020046929A/ja
Priority to US16/541,217 priority patent/US20200089425A1/en
Publication of JP2020046929A publication Critical patent/JP2020046929A/ja
Pending legal-status Critical Current

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
    • 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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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)

Abstract

【課題】互いに性能の異なる複数の記憶装置間でのデータ移動の効率化を図る。【解決手段】階層ストレージ装置の階層管理部は、第1記憶装置30と、アクセス速度の低い第2記憶装置20との間でデータを移動させる移動処理を指示するための移動指示を格納するキュー11dをそなえ、移動処理の対象データを決定し、決定した対象データについての移動指示をキューに格納し、第1のタイミングで決定された対象データについての移動指示がキューに格納されるタイミングに先立って、第1のタイミングよりも前の第2のタイミングで決定された第2記憶装置から第1記憶装置への移動指示をキューから削除し、キューに格納された移動指示を読み出し、移動指示に従った移動処理の実行を制御する。第2から第1記憶装置への移動指示における対象データは、第1記憶装置において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータである。【選択図】図9

Description

本発明は、情報処理装置及び情報処理プログラムに関する。
データを格納するストレージシステムとして、複数の記憶媒体(記憶装置)を組み合わせた階層ストレージシステムが用いられることがある。複数の記憶媒体には、例えば高速アクセスが可能な高速記憶装置(第1記憶装置)、及び、比較的低速な低速記憶装置(第2記憶装置)、が含まれてよい。
階層ストレージシステムにおいては、IO(Input Output)アクセスが特定の狭い記憶領域に集中して発生する場合がある。例えば、アクセス頻度が低い記憶領域のデータを低速記憶装置に配置する一方、アクセスが集中発生する領域のデータを高速記憶装置に配置することで、高速記憶装置の使用効率を高め、IOアクセスの集中による性能低下を回避する手法が知られている。
また、このようなIOアクセス集中が発生する記憶領域を予測し、低速記憶装置に配置する候補(Down候補)の記憶領域と、高速記憶装置に配置する候補(Up候補)の記憶領域とを決定する手法が知られている。
特開2017−010196号公報 特開2012−038212号公報 特開2017−027301号公報
上記の手法では、例えば、Down候補の記憶領域と、Up候補の記憶領域とが同時に存在する場合、Up候補が優先され、当該Up候補の記憶領域のデータが高速記憶装置に配置される。
しかしながら、Up候補の記憶領域の中には、IOアクセス数がそれほど多くなく、高速記憶領域に配置したとしても階層ストレージシステムの性能向上(例えば平均応答時間の削減)効果の小さい記憶領域が含まれることがある。このような記憶領域が高速記憶装置に配置される場合、高速記憶装置の消費量が増加することになり、高速記憶装置及び低速記憶領域間でのデータ移動が非効率となる場合がある。
1つの側面では、本発明は、互いに性能の異なる複数の記憶装置間でのデータ移動の効率化を図ることを目的とする。
1つの側面では、情報処理装置は、キューと、決定部と、削除部と、実行制御部と、をそなえてよい。前記キューは、第1記憶装置と、前記第1記憶装置よりもアクセス速度の低い第2記憶装置と、の間でデータを移動させる移動処理を指示するための移動指示を格納してよい。前記決定部は、前記移動処理の対象データを決定し、決定した対象データについての移動指示を前記キューに格納してよい。前記削除部は、第1のタイミングで決定された対象データについての移動指示が前記キューに格納されるタイミングに先立って、前記キューに格納された移動指示のうち、前記第1のタイミングよりも前の第2のタイミングで決定された前記第2記憶装置から前記第1記憶装置への移動指示を削除対象として前記キューから削除してよい。前記実行制御部は、前記キューに格納された移動指示を読み出し、当該移動指示に従った前記移動処理の実行を制御してよい。前記第2記憶装置から前記第1記憶装置への移動指示における対象データは、前記第1記憶装置において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータであってよい。
1つの側面では、互いに性能の異なる複数の記憶装置間でのデータ移動を効率化できる。
一実施形態の一例としての階層ストレージシステムの構成例を示すブロック図である。 一実施形態の一例としての階層ストレージ装置の構成例を示すブロック図である。 IOアクセス情報の一例を示す図である。 移動候補テーブルの一例を示す図である。 IOアクセス集中の一例を示す図である。 IOアクセス集中の一例を示す図である。 サブLUNの高優先キュー及び低優先キューへの振り分けの一例を示す図である。 IOアクセス集中が発生するサブLUNの移動例を示す図である。 一実施形態に係る階層管理部の動作例を説明する図である。 一実施形態の一例としての階層ドライバの構成例を示すブロック図である。 一実施形態に係る階層ドライバの動作例を説明する図である。 図1に示す階層ストレージ装置のハードウェア構成例を示すブロック図である。 キュー制御部による処理の動作例を説明するフローチャートである。 移動指示部による処理の動作例を説明するフローチャートである。 階層ドライバによる階層移動処理の動作例を説明するフローチャートである。 階層ドライバよるビットマップ更新処理の動作例を説明するフローチャートである。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕構成
〔1−1〕ストレージシステムの構成例
図1は一実施形態の一例としての階層ストレージ装置1をそなえるストレージシステム100の構成を例示する図である。
図1に示すように、ストレージシステム100は、例示的に、PC(Personal Computer)又はサーバ等のホスト装置2と階層ストレージ装置1とをそなえてよい。ホスト装置2と階層ストレージ装置1とは、例えば、SAS(Serial Attached Small Computer System Interface)やFC(Fibre Channel)等のインタフェース(IF;Interface)を介して接続されてよい。
ホスト装置2は、図示しないCPU(Central Processing Unit)等のプロセッサをそなえてよく、プロセッサによりアプリケーション3を実行することで、種々の機能を実現してよい。
階層ストレージ装置1は、ストレージ装置の一例であり、後述の如く、互いに性能の異なる複数種類の記憶装置をそなえてよく、これらの記憶装置の記憶領域をホスト装置2に提供してよい。階層ストレージ装置1が提供する記憶領域には、ホスト装置2においてアプリケーション3の実行により生成されたデータや、アプリケーション3を実行するために用いられるデータ等が格納されてよい。
ホスト装置2が階層ストレージ装置1の記憶領域に対してデータのライトやリードを行なうことで、IOアクセスが生じる。
〔1−2〕階層ストレージ装置の機能構成例
図2は一実施形態の一例としての階層ストレージ装置1の機能構成を示す図である。図2に示すように、階層ストレージ装置1は、例示的に、階層ストレージ制御装置10、SSD(Solid State Drive)20、及び、DIMM(Dual Inline Memory Module)30をそなえてよい。
階層ストレージ制御装置10は、ホスト装置2からのIOアクセスに応じて、SSD20及びDIMM30への種々のアクセスを行なうストレージ制御装置の一例である。例えば、階層ストレージ制御装置10は、SSD20及びDIMM30へのリード又はライト等のアクセスを行なってよい。階層ストレージ制御装置10としては、例えば、PCやサーバ、又はコントローラモジュール(CM;Controller Module)等の情報処理装置が挙げられる。
また、本実施形態に係る階層ストレージ制御装置10は、IOアクセスの頻度に応じて、アクセス頻度が低い領域をSSD20に配置する一方、アクセス頻度が高い領域をDIMM30に配置する、動的階層制御を実現してよい。
DIMM30は、種々のデータやプログラム等を格納する高速記憶装置又は第1記憶装置(第1記憶部)の一例である。例えば、DIMM30としては、NVM(Non-Volatile Memory;不揮発性メモリ)等の半導体メモリモジュールが用いられてよい。
SSD20は、DIMM30とは異なる性能の(例えばよりアクセス速度が低い)低速記憶装置又は第2記憶装置(第2記憶部)の一例である。
一実施形態において、互いに異なる記憶装置の組み合わせとして、DIMM30等の半導体メモリモジュール、SSD20等の半導体ドライブ装置をそれぞれ例に挙げているが、これに限定されるものではない。第1及び第2記憶装置として、互いに性能差(例えばリード/ライト等のIOアクセスの速度差)のある種々の記憶装置が用いられてよい。
上述したSSD20及びDIMM30は、階層ストレージ装置1におけるストレージボリュームを構成してよい。
以下、ホスト装置2等から認識される1つのストレージボリュームをLUN(Logical Unit Number)という。さらに、LUNを予め決められたサイズで分割した1単位(単位領域)をサブLUN(sub LUN)という。なお、サブLUNのサイズは、例えば、MB(MegaByte)〜GB(GigaByte)のオーダで適宜変更して実施することができる。
なお、サブLUNは、セグメント又は単位領域と称されてもよい。
SSD20及びDIMM30の各々は、ストレージボリューム上のサブLUN(単位領域)のデータを格納可能な記憶領域を含む。階層ストレージ制御装置10は、サブLUN単位で、SSD20とDIMM30との間の領域移動を制御してよい。以下、SSD20の記憶領域とDIMM30の記憶領域との間におけるデータの移動をマイグレーション(Migration)という場合がある。
なお、図2では、階層ストレージ装置1がそれぞれ1つのSSD20及びDIMM30をそなえるものとしているが、これに限定されるものではなく、それぞれ複数のSSD20及びDIMM30をそなえてもよい。
次に、階層ストレージ制御装置10の詳細について説明する。階層ストレージ制御装置10は、図2に示すように、例示的に、階層管理部11、階層ドライバ12、SSDドライバ13及びDIMMドライバ14をそなえてよい。なお、例えば、階層管理部11は、ユーザ空間で実行されるプログラムとして実現されてよく、階層ドライバ12、SSDドライバ13、及び、DIMMドライバ14は、OS(Operating System)空間で実行されるプログラムとして実現されてよい。
本実施形態においては、階層ストレージ制御装置10は、例えば、Linux(登録商標) device−mapperの機能を用いるものとする。device−mapperがストレージボリュームをサブLUN単位で監視し、高負荷となったサブLUNのデータをSSD20からDIMM30へ移動することで高負荷領域へのIOを処理する。なお、device−mapperはコンピュータプログラムとして実装されてよい。
階層管理部11は、サブLUNに対するデータアクセスを分析することで、SSD20からDIMM30へデータを移動させるサブLUNを特定(移動候補抽出)してよい。また、階層管理部11は、SSD20からDIMM30に対して、又は、DIMM30からSSD20に対して、サブLUNのデータを移動させる制御を行なってよい。
階層管理部11は、例えば、SSD20又は/及びDIMM30についてトレースされたIOの情報に基づいて、領域移動を行なうサブLUNを判定し、判定したサブLUNのデータの移動を階層ドライバ12に指示する。
階層ドライバ12は、ユーザからのストレージボリュームに対するIO要求をSSDドライバ13又はDIMMドライバ14に振り分け、SSDドライバ13又はDIMMドライバ14からのIOレスポンスをユーザに返す。
また、階層ドライバ12は、階層管理部11からサブLUNの移動指示(セグメント移動指示)を受け取ると、DIMM30又はSSD20の移動対象の単位領域に記憶されたデータをSSD20又はDIMM30に移動する移動処理を実行する。
SSDドライバ13は、階層ドライバ12の指示に基づいてSSD20へのアクセスを制御する。DIMMドライバ14は、階層ドライバ12の指示に基づいてDIMM30へのアクセスを制御する。
〔1−2−1〕階層管理部の説明
階層管理部11は、図2に示すように、例示的に、データ収集部11a、移動判定部11b、キュー制御部11c、キュー11d、及び、移動指示部11eとしての機能をそなえてよい。
階層管理部11は、例えば、Linux上においてはログプール(Log Pool)、サブLUN移動判定、及び、サブLUN移動指示の3つのコンポーネントを有する分割・構成変更エンジンとして実装されてよい。そして、これらのログプール、サブLUN移動判定、及び、サブLUN移動指示の各コンポーネントが、図2に示すデータ収集部11a、移動判定部11b及びキュー11d、並びに、移動指示部11eとしての機能をそれぞれ実現してよい。
(データ収集部11aの説明)
データ収集部11aは、SSD20又は/DIMM30に対するIOアクセスの情報(IOアクセス情報)を収集し、収集した情報に基づいて、サブLUNごとのIOアクセス数を集計してよい。
例えば、データ収集部11aは、Linuxのblktraceを用いてSSD20又は/及びDIMM30についてトレースされたIOの情報を収集してよい。データ収集部11aは、IOトレースにより、例えばtimestampやLBA(Logical Block Addressing)、r/w(read/write)、length等の情報を採取してよい。なお、LBAからはサブLUN IDを求めることができる。
ここで、blktraceは、ブロックIOレベルでのIOをトレースするコマンドである。なお、データ収集部11aは、blktraceに代えて、ディスクIOの利用状況を確認するコマンドであるiostat等の他の手法を用いてIOアクセス情報を収集してもよい。なお、blktrace及びiostatはOS空間で実行されてよい。
データ収集部11aは、一定時間間隔(t)ごとにサブLUN単位でIOアクセスに関する情報を収集してよい。例えば、階層管理部11がN秒(Nは1以上の整数)間隔でサブLUNの移動判定を行なう場合には、一定時間間隔(t)はN秒に設定されてよい。
なお、データ収集部11aは、各セグメント又は/及び全セグメントへのIOのリードライト比(rw比)を集計し、上述した情報に含めてもよい。
データ収集部11aは、収集したIOアクセス情報を、例えば移動判定部11bの後述するDB101に格納してよい。
図3は実施形態に係るIOアクセス情報の一例を示す図である。IOアクセス情報は、SSD20において発生中のIOアクセスに関する情報である。なお、図3には、IOアクセス情報をテーブル形式で例示しているが、これに限定されるものではなく、IOアクセス情報は配列等の種々の形態でDB101に格納されてよい。
図3に示すように、IOアクセス情報は、項目として、サブLUNごとに、サブLUN ID、IO数、及びタイムスタンプをそなえてよい。図3の例では、サブLUN ID“0”について、IO数“10”、タイムスタンプ“1”が設定されている。
サブLUN IDは、サブLUN(エントリ)を特定するための識別情報である。IDとして、例えばストレージボリュームの先頭オフセット等の識別情報が用いられてもよい。IO数は、例示的に、サブLUNに対して1秒間に行なわれたIOの合計数(IOPS;IO Per Second)であってよい。タイムスタンプは、時刻を識別する識別子である。タイムスタンプとして、例えば時刻そのものが用いられてもよい。
このように、データ収集部11aは、SSD20又はDIMM30で使用される領域を所定の大きさで分割した複数の単位領域について、入力されたIOアクセス要求に関する情報を収集する収集部の一例である。
(移動判定部11bの説明)
移動判定部11bは、データ収集部11aによって収集されたIOアクセス情報に基づき、SSD20又はDIMM30におけるデータの移動元となるサブLUNを選択し、選択したサブLUNに関する情報をキュー11dに格納する。キュー11dに格納された情報は、後述する優先度に従って、移動指示部11eに出力される。
移動判定部11bは、図2に示すように、データベース(DB)101、検出部102、Up判定部103、Down判定部104、及び、予測移動判定部105をそなえてよい。検出部102、Up判定部103、Down判定部104、及び、予測移動判定部105は、IOアクセス情報が更新される一定時間間隔(t)ごとに、後述する動作を行なってよい。以下、階層管理部11による一定時間間隔(t)ごとの処理を、1サイクル(インターバル)の処理という場合がある。
DB101は、データ収集部11aにより集計されたサブLUNごとのIO数に関する情報を記憶するものであり、例えば図示しないメモリ等により実現される。
検出部102は、サブLUN単位のIOアクセスについてのIOアクセス情報に基づき、SSD20におけるIOアクセス集中の発生を検出する。
ここで、IOアクセス集中とは、例えば、全ボリューム容量の所定%(例えば、0.1%程度〜数%)までの範囲領域に全IOアクセスの半分以上が集まった状態をいう。
検出部102は、例えば、上述した所定の範囲領域に、所定の閾値以上(例えば、全IOアクセスの50%〜90%程度)のアクセスが集中した状態(IOアクセス集中状態)を検出してよい。
なお、IOアクセスの集中を判断するための範囲領域としては、連続した1つの範囲領域を対象として判断してもよく、また、互いに離散した複数の範囲領域の合計を対象として判断してもよい。1つのIOアクセスの継続時間は、非限定的な一例として、最大で80分前後であり、短いケースでは、1分未満で終息してしまう場合もある。
また、検出部102は、IOアクセス集中の終息についても検出してよい。IOアクセス集中の終息とは、今までIOアクセスが集中していた範囲領域に関して、IOアクセス数が、上述した閾値未満となった状態をいう。
なお、IOアクセス数が一瞬低下した後に、すぐに回復するケースもある。そこで、検出部102は、例えば、今までIOアクセスが集中していた範囲領域に関して、IOアクセス数が、上述した閾値未満となってから所定時間(例えば、N秒間)経過した時点で、IOアクセス集中が終息したと判断してよい。
例えば、検出部102は、以下の(A)〜(D)の手順により特定される領域において、IOアクセス集中の発生を検出してよい。当該手順により特定される領域は、SSD20又はDIMM30への移動候補の領域となる。例えば、検出部102は、特定した領域に関する情報(移動候補情報)をDB101等に格納してもよい。
(A)検出部102は、LUN全体のIOPSが予め定めた閾値i(iは正の実数)以上か否かを判定する。なお、LUN全体のIOPSが閾値iを超えていない場合、検出部102は、処理を終了してよい。この場合、検出部102は、次のサイクル(例えばN秒後)に再び(A)の処理を行なってよい。
(B)LUN全体のIOPSが閾値iを超えた場合、検出部102は、IOアクセス情報を、サブLUNごとに、発生したIOアクセス数の多い順に並べ替え、上位n(nは整数)までのサブLUNを抽出する。nは、1度に移動可能な最大サブLUN数であり、サブLUNごとのIO数を集計する間隔であるN(秒)を、SSD20からDIMM30へのサブLUN内のデータの移動速度(秒/サブLUN)で除算して求められてよい。
(C)検出部102は、IOアクセス数が多い順に上位nのサブLUN同士を結合し、1つの領域(以下、サブLUNグループという場合がある)として扱う。また、検出部102は、サブLUNグループ内でIOアクセス数を合計し、IOアクセス数が多い順にサブLUNグループを並べ替える。
(D)検出部102は、IOアクセス数の多い順にサブLUNグループのIOアクセス数を累積していき、全IOのm(mは正の実数)%を超えたところまでに入ったサブLUNグループを移動候補として特定する。mは、移動候補にするサブLUNグループをカットオフするための値である。
図4は移動候補情報の一例を示す図である。図4に示す例においては、便宜上、移動候補情報をテーブルとして示している。以下、移動候補情報をテーブル状に示した情報を移動候補テーブルという。
図4に示すように、移動候補情報は、項目として、サブLUNグループごとに、Group ID、Start sub-LUN、End sub-LUN、及び、IO数をそなえてよい。図4の例では、Group ID“0”について、Start sub-LUN“4”、終了位置(終了サブLUN ID)“6”、IO数“50”が設定されている。
Group IDは、サブLUNグループ(エントリ)を特定するための識別情報である。Start sub-LUNは、IOアクセス集中領域の始点となるサブLUNを特定する情報であり、End sub-LUNは、End sub-LUN は、IOアクセス集中領域の終点となるサブLUNを特定する情報である。従って、(End sub-LUN - Start sub-LUN)は、IOアクセス集中が発生している領域の数(領域の大きさ)を表す。IO数は、例示的に、サブLUNグループに対して1秒間に行なわれたIOの合計数(IOPS)であってよい。
検出部102は、上述した(A)〜(D)の手順により特定した移動候補情報を、移動候補テーブルに対して登録してよい。
Up判定部103は、移動候補情報に基づき、移動候補のサブLUNグループの継続時間を評価し、予め決められた閾値を超えてIOアクセス集中が継続するサブLUNグループを移動対象のサブLUNグループと判定する。また、Up判定部103は、判定したサブLUNグループの情報(例えば、サブLUNグループを構成するサブLUN ID)、及び、当該サブLUNのIOアクセス数の情報を、キュー制御部11cに送信する。なお、Up判定部103は、例えば、DB101に格納されたIOアクセス情報からサブLUNのIOアクセス数の情報を読み出すことで特定してよい。
例えば、Up判定部103は、所定の時間に亘ってIOアクセス集中が継続した移動候補のサブLUNグループを、SSD20からDIMM30に移動させる移動対象(Up対象)として決定してよい。所定の時間は、例えば、サブLUNごとのIO数の集計間隔(t)(N秒)と、IOアクセス集中として検出された回数(c)(インターバル数)と、の積により決定されてよい。例えば、c=3の場合、Up判定部103は、IOアクセス集中が3回に亘って検出されたサブLUNグループをUp対象に決定してよい。
なお、Up判定部103は、IOアクセス集中の残り継続時間と階層移動にかかる時間とに基づいて、階層移動の間にIOアクセス集中が終息するか否かを判定してもよい。残り継続時間は、IOアクセス集中が継続する継続時間から既に実行済みの実行時間を減じた時間であり、ワークロードに応じて定まる値である。
例えば、Up判定部103は、移動候補のサブLUNグループについてDIMM30に移動するコスト(移動時間)を計算し、残り継続時間が移動時間以下になる場合には、SSD20からDIMM30への階層移動を抑止してもよい。
残り継続時間の算出、及び、残り継続時間を用いたサブLUNの移動制御については、既知の種々の手法により実現可能であり、その詳細な説明を省略する。
Down判定部104は、DIMM30に移動されたサブLUNから、SSD20への移動対象(Down対象)となるサブLUNを判定する。
例えば、Down判定部104は、所定の回数(例えば10回等)に亘って、連続してUp対象のサブLUNグループに含まれない(サブLUNグループの範囲から外れた)サブLUNを、Down対象に決定してよい。なお、Down判定部104は、例えば、Up対象のサブLUNグループの範囲から外れたサブLUNと、連続して外れた回数とを対応付けた削除情報(図示省略)を管理してよく、削除情報を用いて、Down対象のサブLUNを決定してよい。また、Down判定部104は、削除情報に含まれるサブLUNがUp対象のサブLUNグループに含まれることになった場合、当該サブLUNを削除情報から削除してよい。
Down判定部104は、Down対象に決定したサブLUNの情報を、キュー制御部11cに送信してよい。
予測移動判定部105は、検出部102及びUp判定部103により判定されたUp対象のサブLUNの移動に加えて、近い将来IOアクセス集中が発生する(IO数が増加する)サブLUNを予測する。そして、予測移動判定部105は、予測したサブLUNの情報を、キュー制御部11cに送信してよい。
予測移動判定部105により予測されたサブLUNは、当該サブLUNにおけるIOアクセス集中が発生する前に、SSD20からDIMM30に移動される。
予測移動制御により、IOアクセス集中が発生する前に当該サブLUNのデータをDIMM30に移行できるため、現時点でIOアクセス集中が発生しているサブLUNのデータをDIMM30に移行するよりもユーザIOへの影響を低減させることができる。
なお、図5に例示するように、IOアクセス集中の発生するサブLUNが時間経過とともに移動することがわかる。また、このサブLUNの移動速度は略等速度である。
そこで、予測移動判定部105は、IOアクセス集中が発生する領域の遷移速度に基づき、近い将来IOアクセス集中が移動する移動先領域を求め、IOアクセス集中が発生する前に当該移動先領域のデータをDIMM30に移動させる制御を行なう。
予測移動判定部105による予測移動制御については、例えば、上述した特許文献1に記載された手法を用いることができる。
(キュー制御部11cの説明)
キュー制御部11cは、移動判定部11bから送信された、SSD20からDIMM30、又は、DIMM30からSSD20への移動対象となるサブLUNの情報を、キュー11dに格納(挿入、プッシュ)する制御を行なう。
例えば、キュー制御部11cは、予測移動判定部105から受信した、予測移動対象のサブLUNの情報を、キュー11dの高優先キュー106(予測移動用キュー106a)に格納する。また、キュー制御部11cは、Down判定部104から受信した、Down対象のサブLUNの情報を、キュー11dの低優先キュー107(Down用キュー107b)に格納する。
さらに、キュー制御部11cは、Up判定部103から受信した、Up対象のサブLUNの情報を、キュー11dの高優先キュー106(高IOアクセス用キュー106b)、又は、低優先キュー107(その他用キュー107a)に選択的に格納する。
図5及び図6は、IOアクセス集中の一例を示す図である。図5及び図6に示すように、c=2の場合、インターバル2の段階で、インターバル1及び2の連続する2つのインターバルに亘ってIOアクセス集中が検出されたサブLUNグループ(サブLUN ID“4”〜“7”を含むグループ)がUp対象して決定される。
ここで、検出部102によりIOアクセス集中と判定され、Up判定部103によりUp対象に決定されたサブLUNグループの中でも、サブLUN間でIOアクセス数に偏りが生じる場合がある。
そこで、一実施形態においては、キュー制御部11cは、Up対象に決定されたサブLUNグループ内の複数のサブLUNを、IOアクセス数に応じて優先度ごとにグルーピングし、それぞれのグループを互いに優先度の異なるキューに登録する。
換言すれば、キュー制御部11cは、SSD20からDIMM30への移動指示における対象データの優先度を、DIMM30において当該対象データに発生したアクセス数に基づき設定する。
例えば、キュー制御部11cは、IOアクセス数が予め決められた閾値以上のサブLUNを高優先グループに分類し、IOアクセス数が閾値未満のサブLUNを低優先グループに分類してよい。なお、キュー制御部11cは、例えば、Up判定部103から受信した、Up対象のサブLUNグループを構成する各サブLUNのIO数と、閾値Thとを比較することで、高優先グループ又は低優先グループへの分類(振り分け)を行なってよい。なお、この閾値Thは、例えば、検出部102による上記(A)の手順で用いられる閾値iと同一であってもよい。或いは、閾値Thは、全IOアクセス数のXX%(例えば5%)等の数であってもよい。
図7は、キュー制御部11cによる、サブLUNの高優先又は低優先キューへの振り分けの一例を示す図である。図7の例では、IOアクセス集中が発生したサブLUNグループ内のサブLUN ID“4”〜“7”のうち、サブLUN ID“4”のIO数が閾値以上であり、サブLUN ID“5”〜“7”のIO数が閾値未満である場合を示す。この場合、キュー制御部11cは、サブLUN ID“4”を高優先グループに分類し、IO数が閾値以上であり、サブLUN ID“5”〜“7”を低優先グループに分類する。
そして、キュー制御部11cは、高優先グループのサブLUNの情報を、キュー11dの高優先キュー106(高IOアクセス用キュー106b)に登録してよい。また、キュー制御部11cは、低優先グループのサブLUNの情報を、キュー11dの低優先キュー107(その他用キュー107a)に登録してよい。キュー11dの詳細は後述する。
このように、移動判定部11b及びキュー制御部11cは、移動処理の対象データを決定し、決定した対象データについての移動指示をキュー11dに格納する決定部の一例である。
図8は、IOアクセス集中が発生するサブLUNの移動例を示す図である。図8に示すように、IOアクセス集中となったサブLUNは、時間経過とともに移動する可能性がある。このため、キュー11dにおいて過去(前回及びそれよりも前)に移動できなかったサブLUNが蓄積されてしまうと、移動判定のタイミングと移動実行のタイミングとにずれが生じることがある。
なお、移動判定のタイミングと移動実行のタイミングとにずれが生じる、とは、移動判定と移動実行とが、互いに異なるインターバル(階層管理部11による1サイクルの処理)で行なわれる場合をいうものとする。一方、移動判定のタイミングと移動実行のタイミングとが同じである、とは、移動判定と移動実行とが同じインターバル内で行なわれる場合をいうものとする。
図8に示す例では、移動判定が行なわれたタイミングにおいてIOアクセス集中が発生しているサブLUNと、移動の実行が行なわれるタイミングにおいてIOアクセス集中が発生しているサブLUNとが異なっている。
このように、移動を判定したタイミングと、移動を実行するタイミングとにずれが生じた場合、移動を判定したタイミングでキュー11dに挿入されたIDのサブLUNに対して階層移動を行なっても、性能向上効果が得られない可能性がある。
そこで、一実施形態において、キュー制御部11cは、一定時間(例えばN秒)ごとに、キュー11dに蓄積されている、予測移動対象及びUp対象のサブLUN IDを全てクリア(削除或いは無効化等)してよい。キュー制御部11cによるクリア対象のキュー11dの記憶領域としては、例えば、高優先キュー106の予測移動用キュー106a及び高IOアクセス用キュー106b、並びに、低優先キュー107のその他用キュー107aが挙げられる。
換言すれば、キュー制御部11cは、第1のタイミングで決定された対象データについての移動指示がキュー11dに格納されるタイミングに先立って、キュー11dに格納された移動指示のうち、第1のタイミングよりも前の第2のタイミングで決定されたSSD20からDIMM30への移動指示を削除対象としてキュー11dから削除する削除部の一例である。ここで、SSD20からDIMM30への移動指示における対象データは、DIMM30において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータである。
これにより、DIMM30への移動を行なうサブLUNを、移動実行と同一のインターバル内で移動判定されたサブLUNに限定することができ、階層ストレージ制御装置10の性能向上効果が得られる確率を高めることができる。
なお、低優先キュー107のDown用キュー107bは、クリア対象となっておらず、キュー制御部11cは、Down対象のサブLUN IDをキュー11dに残す、すなわち、削除対象から除外する。このため、Down用キュー107bには、過去にSSD20へ移動できなかったDown対象のサブLUNの情報が蓄積されることがある。
上述のように、IOアクセス集中が発生するサブLUNは、時間経過とともに移動する傾向があるため、当該Down対象のサブLUNと同一のサブLUNが、今回の移動判定処理により予測移動対象又はUp対象として決定されることがある。
そこで、キュー制御部11cは、キュー11dにおいて、同一のサブLUN IDが、予測移動対象又はUp対象用の高優先キュー106及びその他用キュー107aと、Down対象用のDown用キュー107bと、に重複して登録されることを抑止してよい。
例えば、キュー制御部11cは、現在のDown用キュー107bに登録されているサブLUN IDの各々と、予測移動判定部105及びUp判定部103からそれぞれ受信した、予測移動対象及びUp対象のサブLUN IDとを比較する。そして、キュー制御部11cは、比較の結果、一致したサブLUN IDについては、Down用キュー107bから削除してよい。
換言すれば、キュー制御部11cは、第1のタイミングで決定されたSSD20からDIMM30への移動指示が示す記憶領域と、キュー11dに格納された第1のタイミングよりも前の第2のタイミングで決定されたDIMM30からSSD20への移動指示が示す記憶領域と、が一致する場合、DIMM30からSSD20への移動指示をキュー11dから削除する。
これにより、DIMM30に移動される又は移動されたIOアクセス集中が発生するサブLUNのデータが、過去にDown用キュー107bに登録された指示によってSSD20に移動されることを抑制できる。従って、階層ストレージ制御装置10の性能低下のリスクを下げることができる。
(キュー11dの説明)
キュー11dは、移動対象のサブLUNの情報(例えばID)を一時的に格納するFIFO(First-In First Out)構造の記憶領域であり、図示しないメモリ等により実現されてよい。
キュー11dは、DIMM30と、DIMM30よりもアクセス速度の低いSSD20と、の間でデータを移動させる移動処理を指示するための移動指示を格納してよい。
図2に示すように、キュー11dは、例示的に、高優先キュー106及び低優先キュー107をそなえてよい。
高優先キュー106は、移動指示部11eにより優先的に読み出される(出力される)サブLUN IDが挿入されるキューであり、予測移動用キュー106a及び高IOアクセス用キュー106bを含んでよい。
予測移動用キュー106aには、予測移動対象のサブLUN IDが挿入される。高IOアクセス用キュー106bには、Up対象のサブLUN IDの中で優先度の高いサブLUN IDが挿入される。
高優先キュー106において、予測移動用キュー106a及び高IOアクセス用キュー106bの間では、どちらを優先させてもよい。一実施形態では、予測移動用キュー106a内のサブLUN IDが全て出力されてから、高IOアクセス用キュー106b内のサブLUN IDが全て出力されるものとするが、これに限定されるものではない。
例えば、高IOアクセス用キュー106b内のサブLUN IDが全て出力されてから、予測移動用キュー106a内のサブLUN IDが全て出力されてもよい。或いは、予測移動用キュー106a及び高IOアクセス用キュー106bから、交互にサブLUN IDが出力されてもよい。
低優先キュー107は、高優先キュー106よりも優先度の低いキューであり、その他用キュー107a及びDown用キュー107bを含んでよい。低優先キュー107に挿入されたサブLUN IDは、高優先キュー106からサブLUN IDが全て出力されてから(高優先キュー106が空になってから)、出力されてよい。
その他用キュー107aには、Up対象のサブLUN IDの中で優先度の低いサブLUN IDが挿入される。Down用キュー107bには、Down対象のサブLUN IDが挿入される。
低優先キュー107において、その他用キュー107a及びDown用キュー107bの間では、どちらを優先させてもよい。一実施形態では、その他用キュー107a及びDown用キュー107bから、交互にサブLUN IDが出力されるものとするが、これに限定されるものではない。例えば、その他用キュー107a内のサブLUN IDが全て出力されてから、Down用キュー107b内のサブLUN IDが全て出力されてもよいし、逆順であってもよい。
なお、図2の例では、便宜上、キュー11dが符号106a、106b、107a、107bの4つの記憶領域をそなえるものとしたが、これに限定されるものではない。例えば、キュー11dは、1つ以上のFIFO構造のメモリの記憶領域を、4つの領域(範囲)に区画して、それぞれの領域を符号106a、106b、107a、107bに割り当てたものであってよい。この場合、4つの領域の各々において、サブLUN IDの格納位置をポインタによって指定可能であってよい。
(移動指示部11eの説明)
移動指示部11eは、一定時間間隔(t)(インターバル)ごとに、当該インターバルにおいて可能な範囲で、キュー11dに蓄積されたサブLUN IDを順次読み出し、階層ドライバ12に対して、読み出したサブLUNのデータの階層移動を指示する。
例えば、移動指示部11eは、インターバルが開始すると、高優先キュー106からサブLUN IDを1つ取り出し、階層ドライバ12に当該サブLUNのデータのDIMM30への移動を指示してよい。移動指示部11eは、インターバルの残り時間から移動の実行時間を減算し、残り時間が0になる、或いは、高優先キュー106にサブLUN IDが存在しなくなるまで、高優先キュー106に存在するサブLUN IDの移動を指示してよい。
また、移動指示部11eは、高優先キュー106にサブLUN IDが存在しなくなると、低優先キュー107からサブLUN IDを1つ取り出し、階層ドライバ12に当該サブLUNのデータのDIMM30又はSSD20への移動を指示してよい。移動指示部11eは、インターバルの残り時間から移動の実行時間を減算し、残り時間が0になる、或いは、低優先キュー107にサブLUN IDが存在しなくなるまで、低優先キュー107に存在するサブLUN IDの移動を指示してよい。
このように、移動指示部11eは、キュー11dに格納された移動指示を読み出し、当該移動指示に従った移動処理の実行を制御する実行制御部の一例である。
図9は、階層管理部11の動作の一例を説明する図である。なお、図9においては、便宜上、一部の構成の図示を省略している。
上述した一実施形態に係る手法によれば、図9に例示するように、階層管理部11において、一定時間間隔(例えばN秒間隔)で移動判定部11bにIOアクセスログが供給される(図9の矢印(1)参照)。
移動判定部11bでは、一定時間間隔で移動判定が行なわれ、移動対象として決定されたサブLUNの情報が、キュー制御部11cによる振り分けによってキュー11dにプッシュされる(図9の矢印(2)参照)。
キュー11dに蓄積されたサブLUNの情報は、移動指示部11eにより、一定時間内に実行可能な分だけ読み出され、当該サブLUNのデータのマイグレーションが指示される(図9の矢印(3)参照)。マイグレーションの指示により、階層ドライバ12(図示省略)によって、SSD20−DIMM30間においてサブLUNのデータのマイグレーションが実行される。
一定時間が経過すると、移動指示部11eにより、Up処理用のキュー(予測移動用キュー106a、高IOアクセス用キュー106b、その他用キュー107a)の内容がクリアされる(図9の符号(4−1)参照)。また、移動指示部11eにより、Down処理用のキュー(Down用キュー107b)の内容は維持される(図9の符号(4−2)参照)。
換言すれば、移動判定部11bは、SSD20からDIMM30への移動指示における対象データと、当該対象データの優先度とを決定し、キュー制御部11cは、決定した対象データについての移動指示を優先度ごとにキュー11dに格納する。そして、移動指示部11eは、キュー11dから、優先度の高い移動指示を全て読み出してから、優先度の低い移動指示を読み出す。
このように、キュー制御部11c、キュー11d、及び、移動指示部11eによれば、Up対象のサブLUNグループの中で、性能向上効果が大きいサブLUNを優先してDIMM30に配置することができる。また、Up対象のサブLUNグループにおける残りのサブLUNを、Down対象のサブLUNとともに、低優先キュー107から公平にDIMM30又はSSD20に配置することができる。
これにより、階層ストレージ制御装置10の性能を維持したまま、DIMM30の消費量を引き下げることができるため、階層間でのデータ移動の効率化を図ることができる。
〔1−2−2〕階層ドライバの説明
図10は、階層ドライバ12の機能構成例を示す図である。なお、図10においては、便宜上、階層ストレージ制御装置10における階層管理部11等の図示を省略している。
図10に示すように、階層ドライバ12は、例示的に、IOアクセス制御部121、移動制御部122、ビットマップ123、ビットマップ管理部124、及び、移動領域決定部125をそなえてよい。
IOアクセス制御部121は、IOアクセスに関するユーザ(ホスト装置2)との間の種々の制御を行なう。例えば、IOアクセス制御部121は、ユーザからのストレージボリュームに対するIO要求をSSDドライバ13又はDIMMドライバ14に振り分け、SSDドライバ13又はDIMMドライバ14からのIOレスポンスをユーザに返す。
移動制御部122は、SSD20−DIMM30間のデータ移動処理に関する種々の制御を行なう。データ移動処理において、移動制御部122は、移動指示部11e(図示省略)からの指示に応じて、サブLUN単位で階層移動(マイグレーション)を行なう。例えば、移動制御部122は、移動指示部11eからサブLUNの移動指示(セグメント移動指示)を受け取ると、DIMM30又はSSD20の移動対象の単位領域に記憶されたデータをSSD20又はDIMM30に移動する移動処理を実行する。
IOアクセス制御部121及び移動制御部122による処理は、既知の種々の手法により実現可能であり、その詳細な説明を省略する。
ところで、移動制御部122は、既知の手法等によれば、DIMM30からSSD20への移動処理(Down処理)において、Down対象のサブLUNに1度でもデータ書き込みが発生した場合、当該サブLUNの全領域をSSD20に書き戻すことになる。
上述のように、サブLUNは、例えば1GB程度のサイズであるため、データ書き込みが発生した領域サイズが比較的小さい場合には、当該サブLUNの全領域のデータをDIMM30からSSD20に書き戻す処理の処理負荷や処理時間が増加し、非効率となる。
そこで、一実施形態において、階層ドライバ12は、ビットマップ123、ビットマップ管理部124、及び、移動領域決定部125の構成をそなえることで、移動制御部122に対して、Down処理を効率的に実施させることができる。
ビットマップ123は、DIMM30に配置されたサブLUNにおいて書き込み(Write)IOアクセスの発生した領域(部分領域)を管理するための情報であり、例えば、図示しないメモリ等の記憶領域に記憶されてよい。
換言すれば、ビットマップ123は、DIMM30における移動処理の対象データの記憶領域に対する書き込みアクセスの有無を、対象データの記憶領域を所定の大きさで分割した部分領域ごとに管理する管理情報の一例である。
ビットマップ123は、例えば、サブLUNの記憶領域を所定数(一例として、100等)に分割した部分領域の各々に対応するビットを有してよい。
ビットマップ管理部124は、ビットマップ123の管理を行なう。例えば、ビットマップ管理部124は、書き込みIOアクセスにより更新のあったサブLUNの部分領域に対応する、ビットマップ123のビットをONに設定する。
移動領域決定部125は、Down対象のサブLUNについて、ビットマップ123を参照して、ONに設定されたビット数をカウントする。そして、移動領域決定部125は、カウント値に応じて、ビットがONの部分領域、及び、サブLUNの全領域、のいずれか一方を、Down対象の移動領域として決定する。
図11は、階層ドライバ12の動作の一例を説明する図である。なお、図11においては、便宜上、一部の構成の図示を省略している。
図11に例示するように、階層ドライバ12において、SSD20のデータが、サブLUN単位でDIMM30にマイグレーション(Up処理)される(図11の矢印(1)参照)。
ビットマップ管理部124は、SSD20のサブLUN21のデータがDIMM30に配置(移動)された場合、DIMM30に配置されたサブLUN31に対して、ビットマップ123の記憶領域を割り当てる(図11の矢印(2)参照)。
DIMM30に対して書き込みIOアクセスが発生した場合、ビットマップ管理部124は、サブLUN31における、書き込みIOアクセスが発生した部分領域に対応するビットマップ123のビットをONに設定する(図11の矢印(3)参照)。
サブLUN31がSSD20にマイグレーション(Down処理)される場合、移動領域決定部125は、ビットマップ123を参照して、Down対象のサブLUN31に割り当てられた複数のビットのうち、ONに設定されているビット数をカウントする。
移動領域決定部125は、カウント値が所定数(M;Mは自然数)未満の場合、ビットマップ123においてONに設定されているビットに対応する、サブLUNの部分領域を、Down対象の移動領域に決定する。
一方、移動領域決定部125は、カウント値が所定数(M)以上の場合、Down対象のサブLUNの領域全体を、Down対象の移動領域に決定する。
そして、移動領域決定部125は、決定したDown対象の移動領域に対するDown処理の実行を、移動制御部122に指示する。
移動制御部122は、Down対象のサブLUNについて、移動領域決定部125から指示された移動領域(1以上の部分領域、又は、サブLUNの全領域)のDown処理(Evict)を実行する(図11の矢印(4−1)参照)。また、移動制御部122は、DIMM30に対して、Down処理を行なったサブLUN31を解放する。
なお、移動領域決定部125は、Down処理が行なわれたサブLUNの情報をビットマップ管理部124に通知してよい。ビットマップ管理部124は、移動領域決定部125から通知されたサブLUNの、ビットマップ123への割り当てをクリア(解放)する(図11の矢印(4−2)参照)。なお、割り当てがクリアされたビットマップ123の記憶領域は、ビットマップ管理部124により、Up処理が行なわれたサブLUN31に対して割り当て可能に管理される。
このように、一実施形態に係る手法によれば、移動領域決定部125は、ビットマップ123により、DIMM30に配置されたサブLUN31の部分領域への書き込み有無を判断する。そして、Down対象のサブLUN31において書き込みが行なわれた部分領域の数が少ない場合、Down処理の移動領域が、サブLUN31の全領域ではなく、書き込みが行なわれた部分領域に制限される。
換言すれば、移動領域決定部125は、ビットマップ123を参照して、当該移動指示における対象データについて、書き込みアクセスがあった部分領域の数が閾値未満の場合、対象データのうち、書き込みアクセスがあった部分領域のデータを、DIMM30からSSD20に移動させる。
これにより、IOアクセスにより変化のあった領域の範囲に応じて、効率的にDown処理を実行することが可能となる。
〔1−3〕階層ストレージ制御装置のハードウェア構成例
次に、図12を参照して、図2に示す階層ストレージ制御装置10のハードウェア構成について説明する。図12は実施形態の一例としての階層ストレージ装置1における階層ストレージ制御装置10のハードウェア構成例を示す図である。
階層ストレージ制御装置10は、図12に示すように、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface;インタフェース)部10d、入出力部10e、及び、読取部10fをそなえてよい。
プロセッサ10aは、対応する各ブロック10b〜10fとバス10iを介して相互に通信可能に接続され、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、メモリ10b、記憶部10c、記録媒体10h、又は、図示しないROM(Read Only Memory)等に格納されたプログラムを実行することにより、階層ストレージ制御装置10における種々の機能を実現する。
なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路が挙げられる。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
メモリ10bは、種々のデータやプログラムを格納する記憶装置である。プロセッサ10aは、プログラムを実行する際に、メモリ10bにデータやプログラムを格納し展開する。なお、メモリ10bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。
記憶部10cは、種々のデータやプログラム等を格納するハードウェアである。記憶部10cとしては、例えばHDD(Hard Disk Drive)等の磁気ディスク装置、SSD等の半導体ドライブ装置、フラッシュメモリ等の不揮発性メモリ等の各種デバイスが挙げられる。なお、記憶部10cとして複数のデバイスが用いられてもよく、これらのデバイスでRAID(Redundant Arrays of Inexpensive Disks)が構成されてもよい。また、記憶部10cは、ストレージクラスメモリ(Storage Class Memory:SCM)であってもよく、また、図2に示すSSD20及びDIMM30を含んでもよい。
記憶部10cには、一実施形態に係る階層ストレージ制御装置10の各種機能の全部もしくは一部を実現する情報処理プログラム10gが格納されてもよい。例えば、プロセッサ10aは、記憶部10cから読み出した情報処理プログラム10gを、メモリ10b等の記憶装置に展開して実行することができる。これにより、コンピュータ(プロセッサ10a、情報処理装置、各種端末を含む)は、上述した階層ストレージ制御装置10の機能を実現することができる。
なお、図2に例示するDB101、及び、図10に例示するビットマップ123は、それぞれ、メモリ10b及び記憶部10cの少なくとも一方の記憶領域により実現されてよい。
IF部10dは、有線又は無線による、ネットワーク(図示省略)や他の情報処理装置との間の接続及び通信の制御等を行なうものである。IF部10dとしては、例えば、LAN(Local Area Network)、ファイバチャネル(FC)、インフィニバンド(InfiniBand)等に準拠したアダプタが挙げられる。
入出力部10eは、マウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。例えば、入出力部10eは、階層ストレージ制御装置10の使用者又は管理者等による種々の作業に用いられる。
読取部10fは、コンピュータ読取可能な記録媒体10hに記録されたデータやプログラムを読み出す装置である。記録媒体10hには、情報処理プログラム10gが格納されてもよい。例えば、プロセッサ10aは、読取部10fを介して記録媒体10hから読み出したプログラムを、メモリ10b等の記憶装置に展開して実行してもよい。
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等が挙げられる。なお、CDとしては、例示的に、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、例示的に、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
なお、階層ストレージ制御装置10の上述したハードウェア構成は例示である。従って、階層ストレージ制御装置10内でのハードウェアの増減(例えば任意のブロックの追加や省略)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
〔2〕動作例
次に、図13〜図16を参照して、上述の如く構成された一実施形態に係る階層ストレージ装置1の動作例を説明する。
〔2−1〕キュー制御部の動作例
図13に示すように、キュー制御部11cは、移動判定部11bから以下の情報を受信する(ステップS1)。
(1)予測移動対象のサブLUN。
(2)Up対象のサブLUN、及び、各サブLUNのIOアクセス数。
(3)Down対象のサブLUN。
キュー制御部11cは、上記(1)及び(2)のインターバル(第1のタイミング)で決定されたサブLUN IDと、低優先キュー107(Down用キュー107b)に登録済みの過去のインターバル(第2のタイミング)で決定されたサブLUN IDとを比較する(ステップS2)。そして、キュー制御部11cは、一致するサブLUN IDがあるか否かを判定する(ステップS3)。
一致するサブLUN IDがある場合(ステップS3でYes)、キュー制御部11cは、当該サブLUN IDを低優先キュー107(Down用キュー107b)から削除し(ステップS4)、処理がステップS5に移行する。一方、一致するサブLUN IDがない場合(ステップS3でNo)、処理がステップS5に移行する。
ステップS5では、キュー制御部11cは、上記(1)を高優先キュー106(予測移動用キュー106a)に全てプッシュする。また、キュー制御部11cは、上記(3)を低優先キュー107(Down用キュー107b)に全てプッシュする(ステップS6)。なお、ステップS5及びS6は逆順でもよいし、並行して実行されてもよい。
次いで、キュー制御部11cは、上記(2)の各サブLUNのIOアクセス数と閾値Thとを比較し(ステップS7)、IOアクセス数が閾値Th以上のサブLUNを高優先キュー106(高IOアクセス用キュー106b)に全てプッシュする(ステップS8)。
また、キュー制御部11cは、IOアクセス数が閾値Th未満のサブLUNを低優先キュー107(その他用キュー107a)に全てプッシュする(ステップS9)。なお、ステップS8及びS9は逆順でもよいし、並行して実行されてもよい。また、ステップS5及びS6と、ステップS7〜S9とは、逆順でもよいし、並行して実行されてもよい。
そして、キュー制御部11cは、一定時間(例えばN秒)スリープし(ステップS10)、Up用のキュー(高優先キュー106、低優先キュー107のその他用キュー107a)の内容を全てクリアして(ステップS11)、処理がステップS1に移行する。スリープ後のステップS11から、次のループのステップS10(スリープ)までの期間を、1つのインターバルとして捉えた場合、各インターバルにおいて、ステップS1で受信する情報は、第1のタイミングで決定された移動対象についての移動指示であるといえる。また、ステップS11の処理は、次のステップS1で受信する情報(第1のタイミングで決定された情報)をキュー11dに格納するタイミングに先立って、第1のタイミングよりも前の第2のタイミングで決定された移動指示をキュー11dから削除する処理であるといえる。
〔2−2〕移動指示部の動作例
図14に示すように、移動指示部11eは、残り時間(Rtime)にN(秒)をセットし(ステップS21)、高優先キュー106にサブLUNが存在するか否かを判定する(ステップS22)。
高優先キュー106にサブLUNが存在する場合(ステップS22でYes)、移動指示部11eは、高優先キュー106からサブLUNを1つ取り出し、階層ドライバ12に対して当該サブLUNの階層移動を指示する(ステップS23)。
なお、高優先キュー106からサブLUNを取り出す優先順位は、予測移動用キュー106a及び高IOアクセス用キュー106bのいずれか一方が高くてもよい。この場合、移動指示部11eは、一方からサブLUNを全て取り出した後に、他方からサブLUNを取り出してよい。或いは、優先順位が同じであってもよく、この場合、移動指示部11eは、予測移動用キュー106a及び高IOアクセス用キュー106bから交互にサブLUNを取り出してもよい。
移動指示部11eは、階層移動の完了を待ち合わせ(ステップS24)、例えば階層ドライバ12から階層移動完了を通知されると、Rtimeから階層移動の実行時間(Mtime)を減算して、Rtimeを更新する(ステップS25)。
移動指示部11eは、Rtimeが0よりも大きいか否かを判定する(ステップS26)。Rtimeが0よりも大きい場合(ステップS26でYes)、処理がステップS22に移行する。一方、Rtimeが0以下の場合(ステップS26でNo)、処理がステップS21に移行する。
ステップS22において、高優先キュー106にサブLUNが存在しない場合(ステップS22でNo)、移動指示部11eは、低優先キュー107にサブLUNが存在するか否かを判定する(ステップS27)。
低優先キュー107にサブLUNが存在する場合(ステップS27でYes)、移動指示部11eは、低優先キュー107からサブLUNを1つ取り出し、階層ドライバ12に対して当該サブLUNの階層移動を指示する(ステップS28)。
なお、低優先キュー107からサブLUNを取り出す優先順位は、その他用キュー107a及びDown用キュー107bで同じであってもよい。この場合、移動指示部11eは、その他用キュー107a及びDown用キュー107bから交互にサブLUNを取り出してよい。或いは、優先順位はいずれか一方が高くてもよく、この場合、移動指示部11eは、例えば、一方からサブLUNを全て取り出した後に、他方からサブLUNを取り出してもよい。
移動指示部11eは、階層移動の完了を待ち合わせ(ステップS29)、例えば階層ドライバ12から階層移動完了を通知されると、Rtimeから階層移動の実行時間(Mtime)を減算して、Rtimeを更新する(ステップS30)。
移動指示部11eは、Rtimeが0よりも大きいか否かを判定する(ステップS31)。Rtimeが0よりも大きい場合(ステップS31でYes)、処理がステップS27に移行する。一方、Rtimeが0以下の場合(ステップS31でNo)、処理がステップS21に移行する。
ステップS27において、低優先キュー107にサブLUNが存在しない場合(ステップS27でNo)、移動指示部11eは、Rtimeの間スリープし(ステップS32)、処理がステップS21に移行する。
〔2−3〕階層ドライバの動作例
図15に示すように、階層移動処理において、階層ドライバ12の移動制御部122は、移動指示部11eからの移動指示を待つ(ステップS41)。
移動指示を受信すると、移動制御部122は、指示された移動がSSD20からDIMM30への移動(Up処理)か否かを判定する(ステップS42)。
SSD20からDIMM30への移動(Up処理)の場合(ステップS42でYes)、移動制御部122は、移動指示に従って、サブLUN単位で階層移動(Up処理)を行なう(ステップS43)。
ビットマップ管理部124は、階層移動したサブLUNに、ビットマップ123の領域を割り当て(ステップS44)、処理がステップS41に移行する。
ステップS42において、DIMM30からSSD20への移動(Down処理)の場合(ステップS42でNo)、移動領域決定部125は、Down対象のサブLUNに対応する、ビットマップ123の領域を参照する。そして、移動領域決定部125は、ビットマップ123の領域のうち、ONに設定されたビットの数をカウントする(ステップS45)。
移動領域決定部125は、カウント値が閾値M以上か否かを判定し(ステップS46)、カウント値が閾値M以上の場合(ステップS46でYes)、移動制御部122に対して、移動領域としてサブLUNを通知する。移動制御部122は、サブLUN単位で階層移動(Down処理)を実行し(ステップS47)、処理がステップS49に移行する。
一方、カウント値が閾値M未満の場合(ステップS46でNo)、移動領域決定部125は、移動制御部122に対して、移動領域として、ONに設定されたビットに対応する部分領域を通知する。移動制御部122は、部分領域単位で階層移動(Down処理)を実行し(ステップS48)、処理がステップS49に移行する。
ステップS49では、移動制御部122は、DIMM30におけるDown対象のサブLUNを解放する。
ビットマップ管理部124は、Down対象のサブLUNと、ビットマップ123の領域との対応関係をクリアし(ステップS50)、処理がステップS41に移行する。なお、ステップS49及びS50は逆順で実行されてもよいし、並行して実行されてもよい。
図16に示すように、ビットマップ更新処理において、ビットマップ管理部124は、DIMM30への書き込みIOアクセスを待つ(ステップS51)。
書き込みIOアクセスが発生すると、ビットマップ管理部124は、ビットマップ123に対して、書き込みIOアクセス対象の部分領域に対応するビットをONに設定し(ステップS52)、処理がステップS51に移行する。
〔3〕その他
開示の技術は上述した実施形態に限定されるものではなく、一実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、一実施形態において、SSD20及びDIMM30を用いた階層ストレージ装置1について説明したが、これに限定されるものではなく、例えばキャッシュメモリと主記憶装置とを用いた階層記憶システムにも同様に適用することができる。すなわち、一実施形態は、不揮発性記憶装置の階層記憶システムだけでなく、揮発性記憶装置を含む階層記憶システムにも同様に適用することができる。
また、一実施形態に係る階層ストレージ装置1は、SSD20及びDIMM30の他に、速度差のある記憶装置にも適用することが可能である。例えばSSD20と、SSDよりも低速なアクセス速度を有するHDDとを用いた階層ストレージ装置等にも適用することが可能である。また、SSD20と、SSDよりも大容量だが低速なテープドライブ等の磁気記録装置とを用いた階層ストレージ装置等にも適用してもよい。
さらに、一実施形態において、階層ストレージ制御装置10の動作を1つのSSD20及び1つのDIMM30に着目して説明したが、複数のSSD20及び複数のDIMM30が階層ストレージ装置1にそなえられる場合も同様である。
また、上述した実施形態においては、階層ストレージ制御装置10がLinux device−mapper等の機能を用いる例を示したが、これに限定されるものではない。例えば、他のボリューム管理用ドライバや他のOSの機能を用いてもよく、種々変形して実施することができる。
また、図2に示す階層ストレージ制御装置10の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
上述した実施形態では、DB101、検出部102、Up判定部103、Down判定部104、及び、予測移動判定部105としての機能を移動判定部11bにそなえた場合について説明したが、これに限定されるものではない。例えば、これらの機能は、階層管理部11内にそなえられていればよい。また、キュー制御部11cは、移動判定部11b又はキュー11dにそなえられてもよく、或いは、移動判定部11b及びキュー11dに分散してそなえられてもよい。
さらに、一実施形態において、階層ドライバ12のビットマップ123、ビットマップ管理部124、及び、移動領域決定部125としての機能は、階層管理部11とは独立した機能と捉えることができる。すなわち、階層ドライバ12に代えて、従来の階層ドライバが用いられた場合でも、上述した階層管理部11による効果と同様の効果を奏することができる。
また、上述した実施形態では、階層ストレージに適用した場合について説明したが、これに限定されるものでない。例えば、DIMM等の第1の記憶装置がキャッシュメモリである場合についても、上述した実施形態と同様に適用可能であり、上述した実施形態と同様の効果を奏することができる。
また、上述した開示により一実施形態を当業者によって実施・製造することが可能である。
〔4〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
第1記憶装置と、前記第1記憶装置よりもアクセス速度の低い第2記憶装置と、の間でデータを移動させる移動処理を指示するための移動指示を格納するキューと、
前記移動処理の対象データを決定し、決定した対象データについての移動指示を前記キューに格納する決定部と、
第1のタイミングで決定された対象データについての移動指示が前記キューに格納されるタイミングに先立って、前記キューに格納された移動指示のうち、前記第1のタイミングよりも前の第2のタイミングで決定された前記第2記憶装置から前記第1記憶装置への移動指示を削除対象として前記キューから削除する削除部と、
前記キューに格納された移動指示を読み出し、当該移動指示に従った前記移動処理の実行を制御する実行制御部と、をそなえ、
前記第2記憶装置から前記第1記憶装置への移動指示における対象データは、前記第1記憶装置において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータである、情報処理装置。
(付記2)
前記削除部は、前記キューに格納された前記第2のタイミングで決定された移動指示のうち、前記第1記憶装置から前記第2記憶装置への移動指示を前記削除対象から除外する、付記1に記載の情報処理装置。
(付記3)
前記削除部は、前記第2記憶装置から前記第1記憶装置への前記第1のタイミングで決定された移動指示が示す記憶領域と、前記第2のタイミングで決定された前記第1記憶装置から前記第2記憶装置への移動指示が示す記憶領域と、が一致する場合、前記第1記憶装置から前記第2記憶装置への移動指示を前記キューから削除する、付記2に記載の情報処理装置。
(付記4)
前記決定部は、前記第2記憶装置から前記第1記憶装置への移動指示における対象データと、当該対象データの優先度とを決定し、決定した対象データについての移動指示を優先度ごとに前記キューに格納し、
前記実行制御部は、前記キューから、優先度の高い移動指示を全て読み出してから、優先度の低い移動指示を読み出す、付記1〜3のいずれか1項に記載の情報処理装置。
(付記5)
前記決定部は、前記第2記憶装置から前記第1記憶装置への移動指示における対象データの優先度を、前記第1記憶装置において当該対象データに発生したアクセス数に基づき設定する、付記1〜4のいずれか1項に記載の情報処理装置。
(付記6)
前記第1記憶装置における前記対象データの記憶領域に対する書き込みアクセスの有無を、前記対象データの記憶領域を所定の大きさで分割した部分領域ごとに管理する管理情報を記憶する記憶領域をそなえ、
前記実行制御部は、前記第1記憶装置から前記第2記憶装置への移動指示に従って前記移動処理の実行を制御する際に、前記管理情報を参照して、当該移動指示における対象データについて、書き込みアクセスがあった部分領域の数が閾値未満の場合、前記対象データのうち、前記書き込みアクセスがあった部分領域のデータを、前記第1記憶装置から前記第2記憶装置に移動させる、付記1〜5のいずれか1項に記載の情報処理装置。
(付記7)
第1記憶装置と、前記第1記憶装置よりもアクセス速度の低い第2記憶装置と、の間でデータを移動させる移動処理の対象データを決定し、
第1のタイミングで決定された対象データについての移動指示をキューに格納し、
前記キューに格納された移動指示のうち、前記第1のタイミングよりも前の第2のタイミングで決定された前記第2記憶装置から前記第1記憶装置への移動指示を削除対象として前記キューから削除し、
前記キューに格納された移動指示を読み出し、当該移動指示に従った前記移動処理の実行を制御する、
処理をコンピュータに実行させ、
前記第2記憶装置から前記第1記憶装置への移動指示における対象データは、前記第1記憶装置において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータである、情報処理プログラム。
(付記8)
前記キューに格納された前記第2のタイミングで決定された移動指示のうち、前記第1記憶装置から前記第2記憶装置への移動指示を前記削除対象から除外する、
処理を前記コンピュータに実行させる、付記7に記載の情報処理プログラム。
(付記9)
前記第2記憶装置から前記第1記憶装置への前記第1のタイミングで決定された移動指示が示す記憶領域と、前記第2のタイミングで決定された前記第1記憶装置から前記第2記憶装置への移動指示が示す記憶領域と、が一致する場合、前記第1記憶装置から前記第2記憶装置への移動指示を前記キューから削除する、
処理を前記コンピュータに実行させる、付記8に記載の情報処理プログラム。
(付記10)
前記第2記憶装置から前記第1記憶装置への移動指示における対象データと、当該対象データの優先度とを決定し、決定した対象データについての移動指示を優先度ごとに前記キューに格納し、
前記キューから、優先度の高い移動指示を全て読み出してから、優先度の低い移動指示を読み出す、
処理を前記コンピュータに実行させる、付記7〜9のいずれか1項に記載の情報処理プログラム。
(付記11)
前記第2記憶装置から前記第1記憶装置への移動指示における対象データの優先度を、前記第1記憶装置において当該対象データに発生したアクセス数に基づき設定する、
処理を前記コンピュータに実行させる、付記7〜10のいずれか1項に記載の情報処理プログラム。
(付記12)
管理情報を用いて、前記第1記憶装置における前記対象データの記憶領域に対する書き込みアクセスの有無を、前記対象データの記憶領域を所定の大きさで分割した部分領域ごとに管理し、
前記第1記憶装置から前記第2記憶装置への移動指示に従って前記移動処理の実行を制御する際に、前記管理情報を参照して、当該移動指示における対象データについて、書き込みアクセスがあった部分領域の数が閾値未満の場合、前記対象データのうち、前記書き込みアクセスがあった部分領域のデータを、前記第1記憶装置から前記第2記憶装置に移動させる、
処理を前記コンピュータに実行させる、付記7〜11のいずれか1項に記載の情報処理プログラム。
1 階層ストレージ装置
2 ホスト装置
10 階層ストレージ制御装置
11 階層管理部
11a データ収集部
11b 移動判定部
11c キュー制御部
11d キュー
11e 移動指示部
100 ストレージシステム
101 DB
102 検出部
103 Up判定部
104 Down判定部
105 予測移動判定部
106 高優先キュー
106a 予測移動用キュー
106b 高IOアクセス用キュー
107 低優先キュー
107a その他用キュー
107b Down用キュー
12 階層ドライバ
121 IOアクセス制御部
122 移動制御部
123 ビットマップ
124 ビットマップ管理部
125 移動領域決定部
13 SSDドライバ
14 HDDドライバ
20 SSD
30 DIMM

Claims (7)

  1. 第1記憶装置と、前記第1記憶装置よりもアクセス速度の低い第2記憶装置と、の間でデータを移動させる移動処理を指示するための移動指示を格納するキューと、
    前記移動処理の対象データを決定し、決定した対象データについての移動指示を前記キューに格納する決定部と、
    第1のタイミングで決定された対象データについての移動指示が前記キューに格納されるタイミングに先立って、前記キューに格納された移動指示のうち、前記第1のタイミングよりも前の第2のタイミングで決定された前記第2記憶装置から前記第1記憶装置への移動指示を削除対象として前記キューから削除する削除部と、
    前記キューに格納された移動指示を読み出し、当該移動指示に従った前記移動処理の実行を制御する実行制御部と、をそなえ、
    前記第2記憶装置から前記第1記憶装置への移動指示における対象データは、前記第1記憶装置において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータである、情報処理装置。
  2. 前記削除部は、前記キューに格納された前記第2のタイミングで決定された移動指示のうち、前記第1記憶装置から前記第2記憶装置への移動指示を前記削除対象から除外する、請求項1に記載の情報処理装置。
  3. 前記削除部は、前記第2記憶装置から前記第1記憶装置への前記第1のタイミングで決定された移動指示が示す記憶領域と、前記第2のタイミングで決定された前記第1記憶装置から前記第2記憶装置への移動指示が示す記憶領域と、が一致する場合、前記第1記憶装置から前記第2記憶装置への移動指示を前記キューから削除する、請求項2に記載の情報処理装置。
  4. 前記決定部は、前記第2記憶装置から前記第1記憶装置への移動指示における対象データと、当該対象データの優先度とを決定し、決定した対象データについての移動指示を優先度ごとに前記キューに格納し、
    前記実行制御部は、前記キューから、優先度の高い移動指示を全て読み出してから、優先度の低い移動指示を読み出す、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 前記決定部は、前記第2記憶装置から前記第1記憶装置への移動指示における対象データの優先度を、前記第1記憶装置において当該対象データに発生したアクセス数に基づき設定する、請求項1〜4のいずれか1項に記載の情報処理装置。
  6. 前記第1記憶装置における前記対象データの記憶領域に対する書き込みアクセスの有無を、前記対象データの記憶領域を所定の大きさで分割した部分領域ごとに管理する管理情報を記憶する記憶領域をそなえ、
    前記実行制御部は、前記第1記憶装置から前記第2記憶装置への移動指示に従って前記移動処理の実行を制御する際に、前記管理情報を参照して、当該移動指示における対象データについて、書き込みアクセスがあった部分領域の数が閾値未満の場合、前記対象データのうち、前記書き込みアクセスがあった部分領域のデータを、前記第1記憶装置から前記第2記憶装置に移動させる、請求項1〜5のいずれか1項に記載の情報処理装置。
  7. 第1記憶装置と、前記第1記憶装置よりもアクセス速度の低い第2記憶装置と、の間でデータを移動させる移動処理の対象データを決定し、
    第1のタイミングで決定された対象データについての移動指示をキューに格納し、
    前記キューに格納された移動指示のうち、前記第1のタイミングよりも前の第2のタイミングで決定された前記第2記憶装置から前記第1記憶装置への移動指示を削除対象として前記キューから削除し、
    前記キューに格納された移動指示を読み出し、当該移動指示に従った前記移動処理の実行を制御する、
    処理をコンピュータに実行させ、
    前記第2記憶装置から前記第1記憶装置への移動指示における対象データは、前記第1記憶装置において、アクセス集中が発生しているデータ、又は、アクセス集中の発生が予測されるデータである、情報処理プログラム。
JP2018174840A 2018-09-19 2018-09-19 情報処理装置及び情報処理プログラム Pending JP2020046929A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018174840A JP2020046929A (ja) 2018-09-19 2018-09-19 情報処理装置及び情報処理プログラム
US16/541,217 US20200089425A1 (en) 2018-09-19 2019-08-15 Information processing apparatus and non-transitory computer-readable recording medium having stored therein information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018174840A JP2020046929A (ja) 2018-09-19 2018-09-19 情報処理装置及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2020046929A true JP2020046929A (ja) 2020-03-26

Family

ID=69772941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018174840A Pending JP2020046929A (ja) 2018-09-19 2018-09-19 情報処理装置及び情報処理プログラム

Country Status (2)

Country Link
US (1) US20200089425A1 (ja)
JP (1) JP2020046929A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022182584A (ja) * 2021-05-28 2022-12-08 株式会社日立製作所 ストレージシステム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113705844A (zh) * 2021-09-07 2021-11-26 首约科技(北京)有限公司 一种机场范围内派单公平性的司机排队策略方法
CN113741819A (zh) * 2021-09-15 2021-12-03 第四范式(北京)技术有限公司 数据分级存储的方法和装置
CN114415965B (zh) * 2022-01-25 2024-05-28 中国农业银行股份有限公司 一种数据迁移方法、装置、设备及存储介质
CN115826877B (zh) * 2023-01-20 2023-12-26 中国华能集团清洁能源技术研究院有限公司 大数据环境下的数据对象迁移方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022182584A (ja) * 2021-05-28 2022-12-08 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
US20200089425A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
JP2020046929A (ja) 情報処理装置及び情報処理プログラム
JP5629919B2 (ja) 継続中の負荷の測定及びランク付けを用いてストレージプールに仮想ボリュームのホットスポットを配置する方法
US8447946B2 (en) Storage apparatus and hierarchical data management method for storage apparatus
US8549247B2 (en) Storage system, management method of the storage system, and program
US10606503B2 (en) Apparatus to reduce a data-migration time for rearranging data between storage hierarchical layers
US8762995B2 (en) Computing system, method of controlling the same, and system management unit which plan a data migration according to a computation job execution schedule
US9563552B2 (en) Storage control device and storage control method
US9658796B2 (en) Storage control device and storage system
US7603337B2 (en) Storage system operation management method and storage system
US20110283062A1 (en) Storage apparatus and data retaining method for storage apparatus
US20180181307A1 (en) Information processing device, control device and method
US20180341423A1 (en) Storage control device and information processing system
US10203879B2 (en) Control device and control method
US9430168B2 (en) Recording medium storing a program for data relocation, data storage system and data relocating method
US20140297988A1 (en) Storage device, allocation release control method
JP6260384B2 (ja) ストレージ制御装置,制御プログラム,及び制御方法
JP7234704B2 (ja) 情報処理装置及び情報処理プログラム
US20190324677A1 (en) Information processing apparatus
US10168944B2 (en) Information processing apparatus and method executed by an information processing apparatus
US20140115293A1 (en) Apparatus, system and method for managing space in a storage device
US9740420B2 (en) Storage system and data management method
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) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US20110161607A1 (en) Storage system and control method therefor
US9058113B2 (en) Storage region providing device, storage region providing method, and recording medium

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607