JP2018124915A - 解析プログラム、解析方法及びストレージシステム - Google Patents

解析プログラム、解析方法及びストレージシステム Download PDF

Info

Publication number
JP2018124915A
JP2018124915A JP2017018702A JP2017018702A JP2018124915A JP 2018124915 A JP2018124915 A JP 2018124915A JP 2017018702 A JP2017018702 A JP 2017018702A JP 2017018702 A JP2017018702 A JP 2017018702A JP 2018124915 A JP2018124915 A JP 2018124915A
Authority
JP
Japan
Prior art keywords
unit
accesses
range
vector
storage
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
JP2017018702A
Other languages
English (en)
Inventor
達夫 熊野
Tatsuo Kumano
達夫 熊野
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 JP2017018702A priority Critical patent/JP2018124915A/ja
Priority to US15/879,492 priority patent/US10606601B2/en
Publication of JP2018124915A publication Critical patent/JP2018124915A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0653Monitoring storage devices or systems
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • 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/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くする。【解決手段】記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、各範囲における期間毎のアクセス数又はアクセス数の変動量に基づいて、範囲間の相関を特定する処理を含む。また、期間毎のアクセス数又はアクセス数の変動量を要素とする各範囲のベクトルのクラスタリングによって、範囲間の相関を特定するようにしてもよい。【選択図】図5

Description

本発明は、記憶デバイスへのアクセスを解析する技術に関する。
例えば補助記憶装置としてSSD(Solid State Drive)とHDD(Hard Disk Drive)とを併用するストレージシステムでは、レイテンシの小さいSSDを有効に利用することによって処理性能を高め、安価なHDDで大きな容量を確保することによってコストの低減を図っている。
このようなストレージシステムでは、下位層でSSDのプールとHDDのプールとを管理し、上位層で全体としての論理的な記憶領域を制御するストレージ階層制御が行われることが多い。ストレージ階層制御では、アクセス頻度が高いデータをSSDへ配置することによって、適宜性能を高めるようにしている。
或る特許文献には、同時にアクセスされたデータのパターンに基づいて、事前読み込みを行う技術が開示されている。このように、先んじてアクセスされる範囲を予測できれば、ストレージ階層制御における処理性能を向上させることができる。
特開2015−219926号公報 特開2006−260067号公報 特開2003−167781号公報
本発明の目的は、一側面では、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くすることである。
一態様に係る解析方法は、(A)記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、(B)各範囲における期間毎のアクセス数又はアクセス数の変動量に基づいて、範囲間の相関を特定する処理を含む。
一側面としては、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くなる。
図1は、システム構成例を示す図である。 図2は、アプリケーションプログラムの動作例を示す図である。 図3は、アプリケーションプログラムの動作例を示す図である。 図4は、アクセス数ベクトルの概要を示す図である。 図5は、フェーズを示す図である。 図6は、キャプチャサーバ装置のモジュール構成例を示す図である。 図7は、範囲テーブルの例を示す図である。 図8は、期間テーブルの例を示す図である。 図9は、サンプル収集処理(A)フローを示す図である。 図10は、サンプルテーブルの例を示す図である。 図11は、解析処理(A)フローを示す図である。 図12は、第1ベクトルテーブルの例を示す図である。 図13は、ベクトル生成処理(A)フローを示す図である。 図14は、グループテーブルの例を示す図である。 図15は、適用処理(A)フローを示す図である。 図16は、第2ベクトルテーブルの例を示す図である。 図17は、ベクトル生成処理(B)フローを示す図である。 図18は、解析処理(B)フローを示す図である。 図19は、ベクトル変換処理フローを示す図である。 図20は、要素変換処理(A)フローを示す図である。 図21は、要素変換処理(B)フローを示す図である。 図22は、要素変換処理(C)フローを示す図である。 図23は、適用処理(B)フローを示す図である。 図24は、ログテーブルの例を示す図である。 図25は、事前読み込みルーチン処理(A)フローを示す図である。 図26は、適用処理(C)フローを示す図である。 図27は、事前読み込みルーチン処理(B)を示す図である。 図28は、サンプル収集処理(B)フローを示す図である。 図29は、適用処理(D)フローを示す図である。 図30は、サンプル収集処理(C)フローを示す図である。 図31は、適用処理(E)フローを示す図である。 図32は、システム構成例を示す図である。 図33は、サンプル収集処理(D)フローを示す図である。 図34は、サンプル収集処理(E)フローを示す図である。 図35は、サンプル収集処理(F)フローを示す図である。 図36は、コンピュータの機能ブロック図である。
[実施の形態1]
図1に、システム構成例を示す。クライアント装置101a乃至cは、ネットワークスイッチ103を介してストレージサーバ装置105と接続している。ストレージサーバ装置105は、クライアント装置101a乃至cにおいて動作するアプリケーションプログラム109a乃至cが使用するデータを管理する。クライアント装置101a乃至cから送られるI/O要求は、ネットワークスイッチ103を介してストレージサーバ装置105へ送られる。具体的には、リードコマンド又はライトコマンドが設定されたパケットが伝送される。以下では、リードコマンド及びライトコマンドをアクセスコマンドという。尚、システムに含まれるクライアント装置101は、1台であってもよい。また、クライアント装置101において動作するアプリケーションプログラム109は、複数であってもよい。
ネットワークスイッチ103には、キャプチャサーバ装置107が接続されている。キャプチャサーバ装置107は、ネットワークスイッチ103におけるポートミラーリング機能を利用して、ネットワークスイッチ103からストレージサーバ装置105へ伝送されるパケットをキャプチャする。そして、キャプチャしたパケットの解析を行う。そして、解析によって生成されたグループテーブルがストレージサーバ装置105へ送られる。尚、解析の内容及びグループテーブルについては後述する。
ストレージサーバ装置105は、複数の記憶デバイスを有している。この例で、ストレージサーバ装置105は、第1記憶デバイス115及び第2記憶デバイス117を有している。第1記憶デバイス115は、例えばSSDである。第2記憶デバイス117は、例えばHDDである。SSDは、HDDよりもレイテンシが小さい。但し、SSDは、HDDよりも高価である。尚、記憶デバイスは、SSD及びHDDに限らない。
ここでは第1記憶デバイス115及び第2記憶デバイス117がストレージサーバ装置105に含まれる例を示したが、第1記憶デバイス115及び第2記憶デバイス117をストレージサーバ装置105の外部に設けるようにしてもよい。また、3つ以上の記憶デバイスを制御対象としてもよい。
第1受付部111は、アクセスコマンドを受け付け、当該アクセスコマンドをアクセス制御部113へ転送する。
アクセス制御部113は、ストレージ階層制御を行う。下位層でSSDのプールとHDDのプールとを管理する。これら下位層のプールは、内部的且つ論理的な記憶領域に相当する。アクセス制御部113は、下位層のプールと連係する上位層のプールも管理する。上位層のプールも、論理的な記憶領域に相当する。但し、上位層のプールは、ストレージサーバ装置105のインターフェースにおける論理アドレスに対応する。ストレージサーバ装置105のインターフェースにおける論理アドレスは、例えばLBA(Logical Block Addressing)である。LBAは、仮想的なセクタの番号に相当する。仮想的なセクタには、移動単位に相当するデータが割り当てられる。内部的には、移動単位によってデータ管理が行われる。アクセス頻度が低い移動単位は、第2記憶デバイス117のプールで管理される。アクセス頻度が高い移動単位は、第1記憶デバイス115のプールで管理される。この処理は、例えば配置ポリシーに基づいて自動的に行われる。尚、ストレージサーバ装置105のインターフェースにおける論理アドレスは、LBA以外であってもよい。
また、アクセス制御部113は、事前読み込み処理を行う。事前読み込み対象としてLBAで特定される移動単位が第2記憶デバイス117のプールにおいて管理されている場合には、当該移動単位の管理を第1記憶デバイス115のプールにおいて行うようにする。その際、移動単位は、第2記憶デバイス117から第1記憶デバイス115へ移される。当該移動単位が既に第1記憶デバイス115のプールにおいて管理されている場合には、当該移動単位の移動は行われない。
第2受付部119は、キャプチャサーバ装置107から出力されたグループテーブルを受け付ける。グループ記憶部121は、受け付けたグループテーブルを記憶する。本実施の形態では、アクセス制御部113は、事前読み込み処理においてグループテーブルを利用する。グループテーブルの利用方法については、後述する。
また、ストレージサーバ装置105は、ログ記憶部123を有する。ログ記憶部123は、ログテーブルを記憶する。ログテーブルについては、図24を用いて後述する。
上述した第1受付部111、アクセス制御部113及び第2受付部119は、ハードウエア資源(例えば、図36)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したグループ記憶部121及びログ記憶部123は、ハードウエア資源(例えば、図36)を用いて実現される。
続いて、アプリケーションプログラム109の動作例を示す。まず、図2に示した動作例について説明する。第1段に示すように、アプリケーションプログラム109bは、或るタイミングでアプリケーションプログラム109a及びアプリケーションプログラム109cを起動する。
第2段に示すように、立ち上がったアプリケーションプログラム109aは、ストレージサーバ装置105で管理されているデータAを読み、更にデータAを更新する処理を繰り返す。この時点で、アプリケーションプログラム109cはまだ立ち上がっていない。
その後10秒ほど遅れて、第3段に示すように、アプリケーションプログラム109cが立ち上がる。そして、アプリケーションプログラム109cは、ストレージサーバ装置105で管理されているデータBを読み、更にデータBを更新する処理を繰り返す。
しばらく第3段に示した状態が継続した後、第4段に示すように、或るタイミングでアプリケーションプログラム109a及びアプリケーションプログラム109cを停止させる。その後は、データA及びデータBを読む動作及び更新する動作は行われない。
この例で、アプリケーションプログラム109aがデータAを読んだ時点で、ストレージサーバ装置105が内部的にデータBの事前読み込みを行えば、アプリケーションプログラム109cが実際にデータBを読むために要する時間が短くなる。
図3に別の動作例を示す。第1段に示すように、アプリケーションプログラム109dはデータCを読み、データCに関する処理を行う。そして、第2段に示すように、アプリケーションプログラム109dは、処理結果をアプリケーションプログラム109eへ渡す。処理結果を受けたアプリケーションプログラム109eは、当該処理結果に基づいてデータDを更新する。アプリケーションプログラム109dがデータCを読んだ時点からアプリケーションプログラム109eがデータDを更新するまでの時間は、5秒程度である。第1段から第3段までの処理が、何度か繰り返される。
この例で、アプリケーションプログラム109dがデータCを読んだ時点で、ストレージサーバ装置105が内部的にデータDの事前読み込みを行えば、アプリケーションプログラム109eが実際にデータDを更新するために要する時間が短くなる。
本実施の形態では、このように近い時期に生じる傾向があるアクセスに着目する。そのために、アクセス数ベクトルを生成する。続いて、図4を用いてアクセス数ベクトルの概要について説明する。
上段のグラフで、縦軸はLBAを示す。横軸は、経過時間を示す。LBAは、1GiBの範囲(エクステントということもある。)に分けられる。範囲の数は、1000である。24時間に亘る経過時間は、1分の期間に分けられる。期間の数は、1440である。
1つのドットは、1回のアクセスに対応し、アクセスされたLBA及びアクセスされたタイミングを示す。例えば、計測開始から1分経つまでの間に、2GiB以上3GiB未満の範囲に含まれるLBAによるアクセスが1回あったことを示している。
下段は、当該グラフに対応するアクセス数ベクトルの例を示している。アクセス数ベクトルは、範囲毎に設けられる。アクセス数ベクトルは、各期間に対応する要素を有する。要素の値は、当該期間において当該範囲内のLBAによるアクセスが行われた回数である。例えば、第3範囲のアクセス数ベクトルに関して、2GiB以上3GiB未満の範囲内のLBAによるアクセス数が、要素の値に相当する。
近い時期に同じ程度のアクセスが生じた範囲同士は、アクセス数ベクトルが近似する。図2に示した動作例で、アプリケーションプログラム109a及びアプリケーションプログラム109cの動作中は、アプリケーションプログラム109aによるアクセスとアプリケーションプログラム109cによるアクセスとが頻発する。従って、アプリケーションプログラム109a及びアプリケーションプログラム109cの動作中に相当する期間における要素の値は、データAを読むためのLBAを含む範囲のアクセス数ベクトルとデータBを読むためのLBAを含む範囲のアクセス数ベクトルとのいずれにおいても大きな値となる。一方、アプリケーションプログラム109a及びアプリケーションプログラム109cの停止中は、アプリケーションプログラム109aによるアクセスとアプリケーションプログラム109cによるアクセスとが生じない。従って、アプリケーションプログラム109a及びアプリケーションプログラム109cの停止中に相当する期間における要素の値は、データAを読むためのLBAを含む範囲のアクセス数ベクトルとデータBを読むためのLBAを含む範囲のアクセス数ベクトルとのいずれにおいても小さい値となる。
また、図3に示した動作例で、アプリケーションプログラム109dがデータCを読んだ時点とアプリケーションプログラム109eがデータDを更新する時点は、高い確率で同じ期間に含まれる。更に、読む回数と更新する回数も一致する。従って、データCを読むためのLBAを含む範囲のアクセス数ベクトルとデータDを更新するためのLBAを含む範囲のアクセス数ベクトルとは近似する。
尚、図2及び図3の動作例で、他の偶発的なアクセスや定常的なアクセスが一緒に生じることがある。但し、これらのアクセスが生じるタイミングはアプリケーションプログラム109a乃至109eによるアクセスと無関係であるので、アクセス数ベクトル間の相関を示す特徴は表れない。
本実施の形態では、アクセス数ベクトルのクラスタリングによって、範囲をグループ化する。アクセス数ベクトルのクラスタリングによってグループとなった範囲同士は相関がある。つまり、同じグループに含まれる各範囲内のLBAによるアクセスのタイミングは、集中し易い。
続いて、図5を用いて、本実施の形態におけるフェーズについて説明する。最初のサンプル収集フェーズでは、キャプチャサーバ装置107においてパケットをキャプチャし、アクセスコマンドに係るパケットを取得した日時と当該アクセスコマンドのLBAとの組であるサンプルを収集する(S501)。
サンプル収集フェーズに続く解析フェーズでは、キャプチャサーバ装置107において、サンプルに基づくアクセス数ベクトルのクラスタリングによって範囲のグループ分けを行う(S503)。
最後の適用フェーズでは、ストレージサーバ装置105においてグループ分けの結果を用いて、事前読み込み処理を行う(S505)。以上で本実施の形態における概要の説明を終える。
以下、キャプチャサーバ装置107の動作について説明する。図6に、キャプチャサーバ装置107のモジュール構成例を示す。キャプチャサーバ装置107は、サンプル収集部601、サンプル記憶部603、解析部605、グループ記憶部607及び出力部609を有する。
サンプル収集部601は、パケットをキャプチャし、アクセスコマンドに係るパケットを取得した日時と当該アクセスコマンドのLBAとの組であるサンプルを収集する。サンプル記憶部603は、サンプルテーブルを記憶する。サンプルテーブルについては、図10を用いて後述する。解析部605は、サンプルを解析して、アクセス数ベクトルのクラスタリングによって範囲のグループ分けを行う。グループ記憶部607は、グループテーブルを記憶する。グループテーブルについては、図14を用いて後述する。出力部609は、グループテーブルを出力する。
サンプル収集部601は、キャプチャ部611及びロギング部613を有する。キャプチャ部611は、ネットワークスイッチ103からストレージサーバ装置105へ伝送されるパケットをキャプチャする。ロギング部613は、サンプルテーブルを生成する。
解析部605は、ベクトル生成部621、範囲記憶部623、期間記憶部625、ベクトル記憶部627及び分類部629を有している。ベクトル生成部621は、範囲毎のアクセス数ベクトルを生成する。後述する実施の形態において、ベクトル生成部621は、範囲毎にアクセス数の変動量のベクトルを生成する。
範囲記憶部623は、範囲テーブルを記憶する。範囲テーブルについては、図7を用いて後述する。期間記憶部625は、期間テーブルを記憶する。期間テーブルについては、図8を用いて後述する。ベクトル記憶部627は、第1ベクトルテーブル及び第2ベクトルテーブルを記憶する。第1ベクトルテーブルについては、図12を用いて後述する。第2ベクトルテーブルについては、図16を用いて後述する。
分類部629は、範囲を分類する。分類部629は、ベクトル変換部631及びクラスタリング部633を有している。ベクトル変換部631は、アクセス数ベクトルを変動量ベクトルに変換する。クラスタリング部633は、アクセス数ベクトル及び変動量ベクトルをクラスタリングする。
上述したサンプル収集部601、解析部605、出力部609、キャプチャ部611、ロギング部613、ベクトル生成部621、分類部629、ベクトル変換部631及びクラスタリング部633は、ハードウエア資源(例えば、図36)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したサンプル記憶部603、グループ記憶部607、範囲記憶部623、期間記憶部625及びベクトル記憶部627は、ハードウエア資源(例えば、図36)を用いて実現される。
図7に、範囲テーブルの例を示す。この例における範囲テーブルは、範囲に対応するレコードを有している。範囲テーブルのレコードは、範囲IDが設定されているフィールドと、LBA範囲が設定されているフィールドとを有している。
範囲IDは、範囲を識別する。LBA範囲は、記憶領域の区分けによって定まる。この例で、LBA範囲のサイズは、1GiBである。図示した1番目のレコードは、範囲ID:E1が、LBAの0GiB以上1GiB未満の範囲を識別することを示している。
図8に、期間テーブルの例を示す。この例における期間テーブルは、期間に対応するレコードを有している。期間テーブルのレコードは、期間IDが設定されているフィールドと、期間が設定されているフィールドとを有している。
期間IDは、期間を識別する。この例における期間の長さは、1分である。図示した1番目のレコードは、期間ID:P1が、0時0分0秒以降0時1分0秒の直前までの期間を識別することを示している。
続いて、サンプル収集フェーズにおける処理について説明する。本実施の形態では、サンプル収集処理(A)を実行する。図9に、サンプル収集処理(A)フローを示す。キャプチャ部611は、ストレージサーバ装置105へ送られるパケットをキャプチャする(S901)。ロギング部613は、キャプチャされたパケットがアクセスコマンドに該当するか否かを判定する(S903)。キャプチャされたパケットがアクセスコマンドに該当しないと判定した場合には、そのままS909の処理に移る。
一方、キャプチャされたパケットがアクセスコマンドに該当すると判定した場合には、ロギング部613は、当該アクセスコマンドからLBAを抽出する(S905)。ロギング部613は、取得日時とLBAとをサンプルテーブルの新たなレコードに格納する(S907)。
図10に、サンプルテーブルの例を示す。この例におけるサンプルテーブルは、アクセスコマンドに対応するレコードを有している。サンプルテーブルのレコードは、取得日時が格納されるフィールドと、LBAが格納されるフィールドとを有している。
取得日時は、アクセスコマンドを取得したタイミングを特定する。LBAは、アクセスされた領域を特定する。図示した1番目のレコードは、2017年1月1日の0時0分01.00秒において、LBA:L1に対するアクセスコマンドを取得したことを示している。
図9の説明に戻る。ロギング部613は、終了タイミングに至ったか否かを判定する(S909)。終了タイミングに至っていないと判定した場合には、S901に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理(A)を終える。
次に、解析フェーズにおける処理について説明する。本実施の形態では、解析処理(A)を実行する。図11に、解析処理(A)フローを示す。ベクトル生成部621は、ベクトル生成処理を実行する(S1101)。
本実施の形態におけるベクトル生成処理では、各範囲におけるアクセス数ベクトルを生成する。アクセス数ベクトルは、第1ベクトルテーブルに設定される。
図12に、第1ベクトルテーブルの例を示す。第1ベクトルテーブルは、範囲に対応するレコードを有している。第1ベクトルテーブルのレコードは、範囲IDが格納されるフィールドと、各期間IDにおけるアクセス数が格納されるフィールドとを有している。
範囲IDは、アクセス数のカウント対象である範囲を特定する。図示した1番目のレコードは、例えば期間ID:P1で特定される期間において、範囲ID:E1で特定される範囲においてA1_1回のアクセスがあったことを示している。
図13を用いて、本実施の形態におけるベクトル生成処理(A)について詳述する。ベクトル生成部621は、範囲を1つ特定する(S1301)。例えば、ベクトル生成部621は、昇順に範囲IDを1つ特定する。
ベクトル生成部621は、各期間内において当該範囲にアクセスされた回数を要素とするベクトルを生成する(S1303)。
ベクトル生成部621は、未処理の範囲があるか否かを判定する(S1305)。未処理の範囲があると判定した場合には、S1301に示した処理に戻って、上述した処理を繰り返す。一方、未処理の範囲がないと判定した場合には、ベクトル生成処理(A)処理を終える。そして、呼び出し元の解析処理(A)に復帰する。
図11の説明に戻る。クラスタリング部633は、クラスタリング処理を実行する(S1103)。クラスタリング処理では、アクセス数ベクトルのクラスタリングによって、範囲を相関の強いグループに分ける。このとき、階層型クラスタリング又は非階層型クラスタリングのいずれを実行するようにしてもよい。これらのクラスタリングは、従来技術と同様であるので、詳細は省略する。尚、本実施の形態におけるクラスタリング処理は、分類部629における分類処理に相当する。
クラスタリング処理の結果、グループテーブルが生成される。図14に、グループテーブルの例を示す。この例におけるグループテーブルは、範囲に対応するレコードを有している。グループテーブルのレコードは、範囲IDが格納されるフィールドと、グループIDが格納されるフィールドとを有している。
範囲IDは、分類対象の範囲を特定する。グループIDは、当該範囲が属するグループを特定する。図示した1番目のレコードは、範囲ID:E1の範囲が、グループID:G1のグループに属することを示している。
図11の説明に戻る。出力部609は、グループテーブルを出力する(S1105)。この例では、出力部609は、グループテーブルをストレージサーバ装置105へ送信する。そして、解析処理(A)を終える。尚、記憶媒体を介してグループテーブルをストレージサーバ装置105へ渡すようにしてもよい。
最後に、適用フェーズにおける処理について説明する。本実施の形態では、適用処理(A)を実行する。図15に、適用処理(A)フローを示す。第2受付部119は、キャプチャサーバ装置107からグループテーブルを受け付ける(S1501)。適用フェーズが開始される時点までにキャプチャサーバ装置107からグループテーブルを受け付けていれば、S1501の処理を省くようにしてもよい。グループテーブルは、グループ記憶部121に記憶される。
第1受付部111がアクセスコマンドを受け付けると(S1503)、アクセス制御部113は、受け付けたアクセスコマンドを実行する(S1505)。リードコマンドの場合には、LBAで特定される領域からデータを読み出し、I/O要求元のクライアント装置101へ当該データを送信する。ライトコマンドの場合には、I/O要求元のクライアント装置101から受信したデータを、LBAで特定される領域に書き込む。
アクセス制御部113は、実行したアクセスコマンドからLBAを抽出する(S1507)。アクセス制御部113は、範囲テーブルに基づいて当該LBAを含む範囲を特定する(S1509)。アクセス制御部113は、グループテーブルに基づいて当該範囲が属するグループを特定する(S1511)。
アクセス制御部113は、グループテーブルに基づいて当該グループに属する他の範囲を1つ特定する(S1513)。アクセス制御部113は、当該他の範囲に関する事前読み込みを実行する(S1515)。
当該他の範囲に含まれる各LBAについて、当該LBAで特定される移動単位が第2記憶デバイス117のプールにおいて管理されている場合には、当該移動単位の管理を第1記憶デバイス115のプールにおいて行うようにする。その際、移動単位は、第2記憶デバイス117から第1記憶デバイス115へ移される。当該移動単位が既に第1記憶デバイス115のプールにおいて管理されている場合には、当該移動単位の移動は行われない。
アクセス制御部113は、未特定の他の範囲があるか否かを判定する(S1517)。未特定の他の範囲があると判定した場合には、S1513に示した処理に戻って、上述した処理を繰り返す。一方、未特定の他の範囲がないと判定した場合には、S1503に示した処理に戻って、上述した処理を繰り返す。
本実施の形態によれば、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くなる。
また、アクセス数を要素とするベクトルのクラスタリングを行うので、相関のある範囲を特定し易い。
また、グループに基づいて事前読み出し処理の対象となる範囲を特定するので、リソースの有効利用を図り易い。
[実施の形態2]
上述した実施の形態では、アクセス数を要素とするベクトルを生成する例について説明したが、本実施の形態では、アクセス数の変動量を要素とするベクトルを生成する例について説明する。
アクセス数の変動量を要素とするベクトルは、第2ベクトルテーブルに設定される。図16に、第2ベクトルテーブルの例を示す。第2ベクトルテーブルは、範囲に対応するレコードを有している。第2ベクトルテーブルのレコードは、範囲IDが格納されるフィールドと、各期間IDにおけるアクセス数の変動量が格納されるフィールドとを有している。
アクセス数の変動量は、当該期間におけるアクセス数から直前期間におけるアクセス数を引いた値である。例えば、期間ID:P2で特定される期間において、範囲ID:E1で特定される範囲の変動量B1_2は、P2の期間におけるE1の範囲内のアクセス数からP1の期間におけるE1の範囲内のアクセス数を引いた値である。
本実施の形態では、ベクトル生成処理(A)に代えて、ベクトル生成処理(B)を実行する。図17に、ベクトル生成処理(B)フローを示す。ベクトル生成処理(A)の場合と同様に、ベクトル生成部621は、範囲を1つ特定する(S1701)。そして、ベクトル生成部621は、ベクトル生成処理(A)の場合と同様に、各期間内において当該範囲にアクセスされた回数を要素とするベクトルを生成する(S1703)。
次に、ベクトル生成部621は、期間を1つ特定する(S1705)。例えば、ベクトル生成部621は、昇順に期間IDを特定する。
ベクトル生成部621は、当該期間内のアクセス数から直前期間内のアクセス数を引いて、変動量を求める(S1707)。そして、ベクトル生成部621は、当該アクセス数の変動量を、S1701で特定された範囲の変動量ベクトルの要素に設定する(S1709)。
ベクトル生成部621は、未処理の期間があるか否かを判定する(S1711)。未処理の期間があると判定した場合には、S1705に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の期間がないと判定した場合には、ベクトル生成部621は、未処理の範囲があるか否かを判定する(S1713)。未処理の範囲があると判定した場合には、S1701に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の範囲がないと判定した場合には、ベクトル生成処理(B)を終える。そして、呼び出し元の解析処理(A)に復帰する。尚、S1103のクラスタリング処理では、変動量ベクトルのクラスタリングによって、範囲を相関の強いグループに分ける。
本実施の形態によれば、アプリケーションプログラム109によるアクセスの増減に特徴がある場合に、範囲間の相関を特定し易い。
[実施の形態3]
本実施の形態では、上述したベクトルにおける要素をクラスタリングに適した値に変換する例について説明する。
本実施の形態では、解析処理(A)に代えて、解析処理(B)を実行する。図18に、解析処理(B)フローを示す。ベクトル生成部621は、ベクトル生成処理を実行する(S1801)。このとき、ベクトル生成部621は、ベクトル生成処理(A)又はベクトル生成処理(B)のいずれを実行するようにしてもよい。
ベクトル変換部631は、ベクトル変換処理を実行する(S1803)。ベクトル変換処理では、ベクトル生成処理において生成されたベクトルを変換する。図19に、ベクトル変換処理フローを示す。ベクトル変換部631は、範囲に対応するベクトルを1つ特定する(S1901)。例えば、ベクトル変換部631は、範囲IDの昇順にベクトルを1つ特定する。
ベクトル変換部631は、ベクトルの要素を1つ特定する(S1903)。例えば、ベクトル変換部631は、順番に従って要素を特定する。ベクトル変換部631は、要素を変換する(S1905)。元の要素の値を新たな要素の値に変換する。
例えば、新たな要素の値として、元の値の平方根を求めるようにしてもよい。平方根に変換すれば、例えばアクセス数が極端に多い場合に、その影響を抑制することができる。
また、新たな要素の値として、loge(元の値+1)を求めるようにしてもよい。平方根の場合と同様に、例えばアクセス数が極端に多い場合に、その影響を抑制することができる。但し、抑制の程度が異なる。
図20に示した要素変換処理(A)を実行するようにしてもよい。要素変換処理(A)では、閾値による判定を行って元の値を2値に変換する。
ベクトル変換部631は、元の要素、つまり変換元のベクトルにおける要素の値が閾値以上であるか否かを判定する(S2001)。
元の要素の値が閾値以上であると判定した場合には、ベクトル変換部631は、新たな要素の値を1とする(S2003)。一方、元の要素の値が閾値未満であると判定した場合には、ベクトル変換部631は、新たな要素の値を0とする(S2005)。要素変換処理(A)を終えると、ベクトル変換処理に復帰する。
また、図21に示した要素変換処理(B)を実行するようにしてもよい。要素変換処理(B)では、元の値が閾値以上である場合に、対数変換を行う。
要素変換処理(A)の場合と同様に、ベクトル変換部631は、元の要素の値が閾値以上であるか否かを判定する(S2101)。
元の要素の値が閾値以上であると判定した場合には、ベクトル変換部631は、log(元の要素の値−閾値+1)を算出し、新たな要素の値とする(S2103)。一方、元の要素の値が閾値未満であると判定した場合には、ベクトル変換部631は、新たな要素の値を0とする(S2105)。要素変換処理(B)を終えると、ベクトル変換処理に復帰する。
更に、図22に示した要素変換処理(C)を実行するようにしてもよい。要素変換処理(B)では、元の値が閾値以上である場合に、平方根変換を行う。
要素変換処理(A)の場合と同様に、ベクトル変換部631は、元の要素の値が閾値以上であるか否かを判定する(S2201)。
元の要素の値が閾値以上であると判定した場合には、ベクトル変換部631は、(元の要素の値−閾値)の平方根を算出し、新たな要素の値とする(S2203)。一方、元の要素の値が閾値未満であると判定した場合には、ベクトル変換部631は、新たな要素の値を0とする(S2205)。要素変換処理(C)を終えると、ベクトル変換処理に復帰する。
図19の説明に戻る。ベクトル変換部631は、未処理の要素があるか否かを判定する(S1907)。未処理の要素があると判定した場合には、S1903に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の要素がないと判定した場合には、ベクトル変換部631は、未処理のベクトルがあるか否かを判定する(S1909)。未処理のベクトルがあると判定した場合には、S1901に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のベクトルがないと判定した場合には、ベクトル変換処理を終える。そして、解析処理(B)に復帰する。
図18の説明に戻る。クラスタリング部633は、クラスタリング処理を実行する(S1805)。クラスタリング処理では、変換されたベクトルのクラスタリングによって、範囲を相関の強いグループに分ける。上述した通り、階層型クラスタリング又は非階層型クラスタリングのいずれを実行するようにしてもよい。尚、本実施の形態におけるベクトル生成処理及びクラスタリング処理は、分類部629における分類処理に相当する。
出力部609は、グループテーブルを出力する(S1807)。そして、解析処理(B)を終える。
本実施の形態によれば、ベクトルの各々に含まれる要素のうち、基準を下回る要素を所定値に変換し、変換されたベクトルをクラスタリングの対象とするので、例えば偶発的なアクセス或いは定常的なアクセスに起因する解析誤差を排除し易い。
[実施の形態4]
本実施の形態では、第2の適用例について説明する。第2の適用例では、アクセスコマンドを受け付けないときに事前読み込みを行う。
本実施の形態では、適用処理(A)に代えて、適用処理(B)を実行する。図23に、適用処理(B)フローを示す。アクセス制御部113は、第1受付部111においてアクセスコマンドを受け付けたか否かを判定する(S2301)。
アクセスコマンドを受け付けたと判定した場合には、アクセス制御部113は、受け付けたアクセスコマンドを実行する(S2303)。アクセス制御部113は、実行したアクセスコマンドからLBAを抽出する(S2305)。アクセス制御部113は、LBAを含む範囲を特定し、LBA及び範囲の組をログテーブルに記録する(S2307)。そして、S2301の処理に戻る。
図24に、ログテーブルの例を示す。この例におけるログテーブルは、1回のアクセスに対応するレコードを有している。ログテーブルのレコードは、アクセス日時が格納されるフィールドと、範囲IDが格納されるフィールドとを有している。
アクセス日時は、アクセスされたタイミングを特定する。範囲IDは、アクセスされたLBAを含む範囲を特定する。
図示した1番目のレコードは、範囲ID:E2に含まれるLBAへのアクセスが、日時:T1に行われたことを示している。
図23の説明に戻る。S2301においてアクセスコマンドを受け付けていないと判定した場合には、アクセス制御部113は、事前読み込みルーチン処理(A)を起動する(S2309)。事前読み込みルーチン処理(A)は、適用処理(B)と並行に動作する。
図25に、事前読み込みルーチン処理(A)フローを示す。アクセス制御部113は、ログテーブルに基づいて、直近の期間で最もアクセスが多かった範囲を特定する(S2501)。更に、アクセス制御部113は、グループテーブルに基づいて、当該範囲が属するグループを特定する(S2503)。
アクセス制御部113は、グループテーブルに基づいて当該グループに属する他の範囲を1つ特定する(S2505)。例えば、アクセス制御部113は、昇順に範囲IDを特定する。アクセス制御部113は、当該他の範囲に関する事前読み込みを実行する(S2507)。
アクセス制御部113は、未特定の他の範囲があるか否かを判定する(S2509)。未特定の他の範囲があると判定した場合には、S2505に示した処理に戻って、上述した処理を繰り返す。
一方、未特定の他の範囲がないと判定した場合には、事前読み込みルーチン処理(A)を終える。
本実施の形態によれば、アクセスコマンドが集中している間は事前読み込みを行わないので、I/O要求に対する応答性能を高めることができる。
[実施の形態5]
本実施の形態では、第3の適用例について説明する。第3の適用例では、周期的に事前読み込みを行う。
本実施の形態では、適用処理(C)を実行する。図26に、適用処理(C)フローを示す。アクセス制御部113は、第1受付部111においてアクセスコマンドを受け付けたか否かを判定する(S2601)。
アクセスコマンドを受け付けていないと判定した場合には、S2601の処理を繰り返す。
一方、アクセスコマンドを受け付けていると判定した場合には、アクセス制御部113は、アクセスコマンドを実行する(S2603)。
S2603乃至S2607に示した処理は、図23のS2303乃至S2307に示した処理の場合と同様である。
本実施の形態では、適用処理(C)と並行に事前読み込みルーチン処理(B)を動作させる。図27に、事前読み込みルーチン処理(B)を示す。S2701乃至S2709に示した処理は、図25のS2501乃至S2509に示した処理と同様である。
アクセス制御部113は、一定時間待機して(S2711)、S2701に示した処理に戻って、上述した処理を繰り返す。
本実施の形態によれば、事前読み込みの処理負担を時間的に分散することができる。
[実施の形態6]
上述した実施の形態では、リードコマンド及びライトコマンドに関する事前読み込みを行う例について説明したが、本実施の形態では、リードコマンドに関する事前読み込みを行う例について説明する。
本実施の形態では、例えばサンプル収集処理(A)に代えて、サンプル収集処理(B)を実行する。図28に、サンプル収集処理(B)フローを示す。S901に示した処理は、図9の場合と同様である。
ロギング部613は、キャプチャされたパケットがリードコマンドに該当するか否かを判定する(S2801)。キャプチャされたパケットがリードコマンドに該当しないと判定した場合には、そのままS909の処理に移る。
一方、キャプチャされたパケットがリードコマンドに該当すると判定した場合には、ロギング部613は、リードコマンドからLBAを抽出する(S2803)。
S907及びS909に示した処理は、図9の場合と同様である。
本実施の形態では、例えば適用処理(A)に代えて、適用処理(D)を実行する。図29に、適用処理(D)フローを示す。S1501乃至S1505に示した処理は、図15の場合と同様である。
アクセス制御部113は、実行したアクセスコマンドがリードコマンドであったか否かを判定する(S2901)。実行したアクセスコマンドがリードコマンドではなかったと判定した場合には、S1503に示した処理に戻って、上述した処理を繰り返す。
一方、実行したアクセスコマンドがリードコマンドであったと判定した場合には、アクセス制御部113は、当該リードコマンドからLBAを抽出する(S2903)。
S1509乃至S1517に示した処理は、図15の場合と同様である。
本実施の形態によれば、例えばリード処理の性能を重視するアプリケーションプログラム109が多い場合に、リード処理の高速化を優先してリソースを使うようにできる。
[実施の形態7]
本実施の形態では、ライトコマンドに関する事前読み込みを行う例について説明する。
本実施の形態では、例えばサンプル収集処理(A)に代えて、サンプル収集処理(C)を実行する。図30に、サンプル収集処理(C)フローを示す。S901に示した処理は、図9の場合と同様である。
ロギング部613は、キャプチャされたパケットがライトコマンドに該当するか否かを判定する(S3001)。キャプチャされたパケットがライトコマンドに該当しないと判定した場合には、そのままS909の処理に移る。
一方、キャプチャされたパケットがライトコマンドに該当すると判定した場合には、ロギング部613は、ライトコマンドからLBAを抽出する(S3003)。
S907及びS909に示した処理は、図9の場合と同様である。
本実施の形態では、例えば適用処理(A)に代えて、適用処理(E)を実行する。図31に、適用処理(E)フローを示す。S1501乃至S1505に示した処理は、図15の場合と同様である。
アクセス制御部113は、実行したアクセスコマンドがライトコマンドであったか否かを判定する(S3101)。実行したアクセスコマンドがライトコマンドではなかったと判定した場合には、S1503に示した処理に戻って、上述した処理を繰り返す。
一方、実行したアクセスコマンドがライトコマンドであったと判定した場合には、アクセス制御部113は、当該ライトコマンドからLBAを抽出する(S3103)。
S1509乃至S1517に示した処理は、図15の場合と同様である。
本実施の形態によれば、例えばライト処理の性能を重視するアプリケーションプログラム109が多い場合に、ライト処理の高速化を優先してリソースを使うようにできる。
[実施の形態8]
本実施の形態では、ストレージサーバ装置105においてサンプル収集及び解析を行う例について説明する。
図32に、システム構成例を示す。ストレージサーバ装置105は、第1受付部111、アクセス制御部113、第1記憶デバイス115、第2記憶デバイス117、グループ記憶部121及びログ記憶部123の他に、サンプル収集部3201、サンプル記憶部3203及び解析部3205を有する。
サンプル収集部3201は、取得部3211及びロギング部3213を有する。取得部3211は、第1受付部111からアクセスコマンドを取得する。ロギング部3213は、ロギング部613と同様である。サンプル記憶部3203は、サンプル記憶部603と同様である。解析部3205は、グループテーブルの出力を省く点を除き解析部605と同様である。
上述したサンプル収集部3201、解析部3205、取得部3211及びロギング部3213は、ハードウエア資源(例えば、図36)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したサンプル記憶部3203は、ハードウエア資源(例えば、図36)を用いて実現される。
本実施の形態のストレージサーバ装置105は、サンプル収集処理(D)を実行する。図33に、サンプル収集処理(D)フローを示す。取得部3211は、第1受付部111からアクセスコマンドを取得する(S3301)。ロギング部3213は、取得したアクセスコマンドからLBAを抽出する(S3303)。ロギング部3213は、取得日時とLBAとをサンプルテーブルの新たなレコードに格納する(S3305)。
ロギング部3213は、終了タイミングに至ったか否かを判定する(S3307)。終了タイミングに至っていないと判定した場合には、S3301に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理(D)を終える。
ストレージサーバ装置105における適用処理は、グループテーブルの受け付けを省く点を除き、上述した実施の形態と同様である。
実施の形態6で説明したように、リードコマンドに関する事前読み込みを行うようにしてもよい。その場合に、ストレージサーバ装置105は、サンプル収集処理(E)を実行する。
図34に、サンプル収集処理(E)フローを示す。取得部3211は、第1受付部111からリードコマンドを取得する(S3401)。ロギング部3213は、取得したリードコマンドからLBAを抽出する(S3403)。ロギング部3213は、取得日時とLBAとをサンプルテーブルの新たなレコードに格納する(S3405)。
ロギング部3213は、終了タイミングに至ったか否かを判定する(S3407)。終了タイミングに至っていないと判定した場合には、S3401に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理(E)を終える。
実施の形態7で説明したように、ライトコマンドに関する事前読み込みを行うようにしてもよい。その場合に、ストレージサーバ装置105は、サンプル収集処理(F)を実行する。
図35に、サンプル収集処理(F)フローを示す。取得部3211は、第1受付部111からライトコマンドを取得する(S3501)。ロギング部3213は、取得したライトコマンドからLBAを抽出する(S3503)。ロギング部3213は、取得日時とLBAとをサンプルテーブルの新たなレコードに格納する(S3505)。
ロギング部3213は、終了タイミングに至ったか否かを判定する(S3507)。終了タイミングに至っていないと判定した場合には、S3501に示した処理に戻って、上述した処理を繰り返す。一方、終了タイミングに至ったと判定した場合には、サンプル収集処理(F)を終える。
本実施の形態によれば、システムの構成を単純にすることができる。例えばI/O要求が比較的少ない場合やストレージサーバ装置105の処理能力が高い場合には、キャプチャサーバ装置107を設けなくてもよい。
尚、補助記憶装置に対するアクセスを解析する例について説明したが、主記憶装置に対するアクセスを解析する場合に本実施の形態を適用するようにしてもよい。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べたストレージサーバ装置105及びキャプチャサーバ装置107は、コンピュータ装置であって、図36に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーションプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーションプログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーションプログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーションプログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る解析方法は、(A)記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、(B)各範囲における期間毎のアクセス数又はアクセス数の変動量に基づいて、範囲間の相関を特定する処理を含む。
このようにすれば、記憶領域の或る範囲へのアクセスと近い時期にアクセスされる他の範囲を予測し易くなる。
また、期間毎のアクセス数又はアクセス数の変動量を要素とする各範囲のベクトルのクラスタリングによって、範囲間の相関を特定するようにしてもよい。
このようにすれば、相関のある範囲を特定し易い。
更に、ベクトルの各々に含まれる要素のうち、基準を下回る要素を所定値に変換し、変換されたベクトルをクラスタリングの対象とするようにしてもよい。
このようにすれば、例えば偶発的なアクセス或いは定常的なアクセスに起因する解析誤差を排除し易い。
また、記憶領域は、複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域であってもよい。更に、範囲間の相関に基づいて、ストレージ階層制御におけるデータ移動の対象となる範囲を特定する処理を含むようにしてもよい。
このようにすれば、リソースの有効利用を図り易い。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
処理をコンピュータに実行させる解析プログラム。
(付記2)
前記期間毎の前記アクセス数又は前記アクセス数の変動量を要素とする前記各範囲のベクトルのクラスタリングによって、前記範囲間の相関を特定する
付記1記載の解析プログラム。
(付記3)
更に、
前記ベクトルの各々に含まれる前記要素のうち、基準を下回る要素を所定値に変換し、変換された前記ベクトルを前記クラスタリングの対象とする
付記2記載の解析プログラム。
(付記4)
前記記憶領域は、複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域であって、
更に、
前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する処理
をコンピュータに実行させる付記1乃至3のいずれか1つ記載の解析プログラム。
(付記5)
記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
処理を含み、コンピュータにより実行される解析方法。
(付記6)
解析装置と、複数の記憶デバイスを制御する制御装置とを含み、
前記解析装置は、
前記複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出する算出部と、
各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する第1特定部と
を有し、
前記制御装置は、
前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する第2特定部
を有するストレージシステム。
101 クライアント装置 103 ネットワークスイッチ
105 ストレージサーバ装置 107 キャプチャサーバ装置
109 アプリケーションプログラム 111 第1受付部
113 アクセス制御部 115 第1記憶デバイス
117 第2記憶デバイス 119 第2受付部
121 グループ記憶部 123 ログ記憶部
601 サンプル収集部 603 サンプル記憶部
605 解析部 607 グループ記憶部
609 出力部 611 キャプチャ部
613 ロギング部 621 ベクトル生成部
623 範囲記憶部 625 期間記憶部
627 ベクトル記憶部 629 分類部
631 ベクトル変換部 633 クラスタリング部
3201 サンプル収集部 3203 サンプル記憶部
3205 解析部 3211 取得部
3213 ロギング部

Claims (6)

  1. 記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
    各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
    処理をコンピュータに実行させる解析プログラム。
  2. 前記期間毎の前記アクセス数又は前記アクセス数の変動量を要素とする前記各範囲のベクトルのクラスタリングによって、前記範囲間の相関を特定する
    請求項1記載の解析プログラム。
  3. 更に、
    前記ベクトルの各々に含まれる前記要素のうち、基準を下回る要素を所定値に変換し、変換された前記ベクトルを前記クラスタリングの対象とする
    請求項2記載の解析プログラム。
  4. 前記記憶領域は、複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域であって、
    更に、
    前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する処理
    をコンピュータに実行させる請求項1乃至3のいずれか1つ記載の解析プログラム。
  5. 記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出し、
    各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する
    処理を含み、コンピュータにより実行される解析方法。
  6. 解析装置と、複数の記憶デバイスを制御する制御装置とを含み、
    前記解析装置は、
    前記複数の記憶デバイスを用いたストレージ階層制御による論理的な記憶領域を分割する複数範囲の各々について、複数期間の各々におけるアクセス数又はアクセス数の変動量を算出する算出部と、
    各範囲における期間毎の前記アクセス数又は前記アクセス数の変動量に基づいて、範囲間の相関を特定する第1特定部と
    を有し、
    前記制御装置は、
    前記範囲間の相関に基づいて、前記ストレージ階層制御におけるデータ移動の対象となる範囲を特定する第2特定部
    を有するストレージシステム。
JP2017018702A 2017-02-03 2017-02-03 解析プログラム、解析方法及びストレージシステム Pending JP2018124915A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017018702A JP2018124915A (ja) 2017-02-03 2017-02-03 解析プログラム、解析方法及びストレージシステム
US15/879,492 US10606601B2 (en) 2017-02-03 2018-01-25 Method, system and non-transitory computer-readable storage medium for analyzing access to storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017018702A JP2018124915A (ja) 2017-02-03 2017-02-03 解析プログラム、解析方法及びストレージシステム

Publications (1)

Publication Number Publication Date
JP2018124915A true JP2018124915A (ja) 2018-08-09

Family

ID=63037679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017018702A Pending JP2018124915A (ja) 2017-02-03 2017-02-03 解析プログラム、解析方法及びストレージシステム

Country Status (2)

Country Link
US (1) US10606601B2 (ja)
JP (1) JP2018124915A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112019003290B4 (de) 2018-06-29 2024-03-28 Denso Corporation Horizontaler Scrollverdichter

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102615593B1 (ko) * 2016-05-04 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10938742B1 (en) 2020-01-31 2021-03-02 Bank Of America Corporation Multiplexed resource allocation architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507893B2 (en) * 2001-01-26 2003-01-14 Dell Products, L.P. System and method for time window access frequency based caching for memory controllers
JP2003167781A (ja) 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd 磁気ディスク装置およびデータ読み出し制御方法
US6760818B2 (en) * 2002-05-01 2004-07-06 Koninklijke Philips Electronics N.V. Memory region based data pre-fetching
US6963959B2 (en) * 2002-10-31 2005-11-08 International Business Machines Corporation Storage system and method for reorganizing data to improve prefetch effectiveness and reduce seek distance
US7496592B2 (en) * 2005-01-31 2009-02-24 International Business Machines Corporation Systems and methods for maintaining closed frequent itemsets over a data stream sliding window
WO2006082592A1 (en) * 2005-02-04 2006-08-10 Hewlett-Packard Development Company, L.P. Data processing system and method
JP4151977B2 (ja) 2005-03-16 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 先読み装置、先読み方法、および先読みプログラム
US8762649B2 (en) * 2010-03-29 2014-06-24 Via Technologies, Inc. Bounding box prefetcher
KR102295769B1 (ko) 2014-05-20 2021-08-30 삼성전자주식회사 스토리지 컨트롤러 및 상기 스토리지 컨트롤러의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112019003290B4 (de) 2018-06-29 2024-03-28 Denso Corporation Horizontaler Scrollverdichter

Also Published As

Publication number Publication date
US20180225122A1 (en) 2018-08-09
US10606601B2 (en) 2020-03-31

Similar Documents

Publication Publication Date Title
EP2618261B1 (en) Qos control method and system for storage system
KR102267480B1 (ko) 멀티-스트림이 가능한 솔리드 스테이트 드라이브들을 위하여 데이터 스트림들을 통합하는 방법
US9032175B2 (en) Data migration between storage devices
US20130007302A1 (en) System, Method and Program Product to Manage Transfer of Data to Resolve Overload of a Storage System
JP2018124915A (ja) 解析プログラム、解析方法及びストレージシステム
JP2021522615A (ja) ストレージボリューム作成方法および装置、サーバ、並びに記憶媒体
CN104598495A (zh) 基于分布式文件系统的分级存储方法及系统
Bai et al. RTRM: A response time-based replica management strategy for cloud storage system
JP2014512578A (ja) 実記憶領域動的割当方法を用いたストレージシステム
US9916311B1 (en) Storage of bursty data using multiple storage tiers with heterogeneous device storage
JP2014241117A (ja) ストレージシステム、運用管理方法及び運用管理プログラム
Yin et al. Muse: A multi-tierd and sla-driven deduplication framework for cloud storage systems
He et al. A heterogeneity-aware region-level data layout for hybrid parallel file systems
Ren et al. Realistic and scalable benchmarking cloud file systems: Practices and lessons from AliCloud
Wan et al. SSD-optimized workload placement with adaptive learning and classification in HPC environments
He et al. A holistic heterogeneity-aware data placement scheme for hybrid parallel I/O systems
Nakashima et al. I/o performance improvement of secure big data analyses with application support on ssd cache
US20240069783A1 (en) Memory phase monitoring and scheduling system
Groot et al. Modeling I/O interference for data intensive distributed applications
Malensek et al. Alleviation of disk I/O contention in virtualized settings for data-intensive computing
US11687243B2 (en) Data deduplication latency reduction
US20210240630A1 (en) Adapting Cache Processing Using Phase Libraries and Real Time Simulators
US20200410359A1 (en) Computing device and parameter synchronization method implemented by computing device
Liu et al. An efficient schema for cloud systems based on SSD cache technology
Wu et al. POS: A popularity-based online scaling scheme for raid-structured storage systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201013

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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210216