JPWO2015107626A1 - 計算機システムおよびその階層記憶の制御方法 - Google Patents

計算機システムおよびその階層記憶の制御方法 Download PDF

Info

Publication number
JPWO2015107626A1
JPWO2015107626A1 JP2015557614A JP2015557614A JPWO2015107626A1 JP WO2015107626 A1 JPWO2015107626 A1 JP WO2015107626A1 JP 2015557614 A JP2015557614 A JP 2015557614A JP 2015557614 A JP2015557614 A JP 2015557614A JP WO2015107626 A1 JPWO2015107626 A1 JP WO2015107626A1
Authority
JP
Japan
Prior art keywords
storage
information
time
tier
page
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.)
Granted
Application number
JP2015557614A
Other languages
English (en)
Other versions
JP6100404B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP6100404B2 publication Critical patent/JP6100404B2/ja
Publication of JPWO2015107626A1 publication Critical patent/JPWO2015107626A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • 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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、前記特定処理と前記記憶領域の対応に関する第1の情報を記憶する第1のステップと、前記特定処理の経時的なアクセスの動作に関する第2の情報を取得する第2のステップと、前記記憶領域の経時的なアクセス量に関する第3の情報を取得する第3のステップと、前記第1の情報に基づき前記第2の情報と前記第3の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第4のステップと、を有する。

Description

本発明は計算機システムおよびその階層記憶の制御方法に関するものである。
一般にサービスは、時期などの要因により利用量が変動する。その結果、ストレージシステムは最も利用量が増加する状況で要求される性能を持つ記憶領域を、増加する情報を格納するだけの容量分用意する必要がある。しかし、情報システムへの投資は急激には増えないため、必要な記憶領域を用意できないことが課題となっている。
これに対し、特許文献1では、ストレージシステムが複数の異なる特性(入出力性能やビットコストなど)を持つ記憶領域を備える場合に、書き込まれたデータをページと呼ばれる一定サイズの断片に分割して、各ページを指定された特性を示す記憶領域に配置する。そして、ストレージシステムは、データが指定された特性を示す記憶領域に配置された後に、ホスト計算機によって当該ページにアクセスされる頻度に応じて、適切な入出力性能を有する記憶領域の当該ページを再配置する技術が開示されている。
以降、説明のためにストレージシステムが備える複数の特性を示す記憶領域を記憶階層と称し、記憶階層を構成する各記憶領域をTierと称する。また、ページを記憶階層に配置する処理及びページを再配置する処理を階層制御と称する。
特許文献1においては、一般的に高価な入出力性能の高い記憶領域(上位Tierと称する)に、その性能が必要なデータのみを配置することが可能となるが、サービスの利用が突発的に増加した場合、当該サービスによってアクセスされるデータは上位階層記憶に配置されていないケースがある。その結果、サービスの利用者が期待する時間内に情報システムがサービスを完了できないことが課題となっている。
これに対し、特許文献2では、アプリケーションプログラム(以降、アプリケーションプログラムを単にアプリケーションと称する場合もある)で使用するデータに対して満たすべきレスポンス性能(要求レスポンス性能と称する)が付与されている場合には、当該ファイルを、要求レスポンス性能を満たす適切な入出力性能を有する記憶装置に配置する技術が開示されている。特許文献2によれば、アプリケーションで利用されるデータを、要求レスポンス性能を満たす記憶領域に常時配置することにより、アプリケーションの処理遅延や停止を防ぐことが可能となる。
米国特許出願公開第2009/0300285号明細書 米国特許出願公開第2012/0185426号明細書
特許文献2ではアプリケーションの利用状況を踏まえずに、アプリケーションで利用するデータを、要求レスポンス性能を満たす上位Tierに常時配置し続ける。例えばアプリケーション起動時にのみアクセスされるデータは、アプリケーション未起動時やアプリケーション起動完了後であっても上位Tierに配置され続ける。その結果、アプリケーションの利用状況によっては必ずしもレスポンス性能を必要としないデータが上位Tierに配置されるため、上位Tierが無駄に消費されてしまう。
そこで、本発明の目的は、アプリケーションに対する操作に応じて適切なデータを適切なタイミングで記憶階層に配置することにより、各時刻において上位Tierにアクセス量が少ないデータが配置されることを抑止するとともに、アプリケーションへのレスポンス性能を向上させることにある。
本発明にかかる代表的な階層記憶の制御方法は、アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、前記特定処理と前記記憶領域の対応に関する第1の情報を記憶する第1のステップと、前記特定処理の経時的なアクセスの動作に関する第2の情報を取得する第2のステップと、前記記憶領域の経時的なアクセス量に関する第3の情報を取得する第3のステップと、前記第1の情報に基づき前記第2の情報と前記第3の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第4のステップと、を有することを特徴とする。
本発明によれば、アプリケーションに対する操作に応じて適切なデータを適切なタイミングで記憶階層に配置することができ、各時刻において上位Tierにアクセス量が少ないデータが配置されることを抑止できるとともに、アプリケーションへのレスポンス性能を向上させることができる。
階層制御の概略を示す図である。 計算機システムの構成の例を示す図である。 管理計算機の構成の例を示す図である。 ストレージシステムの構成の例を示す図である。 ホスト計算機の構成の例を示す図である。 サブプログラムページ関連テーブルの例を示す図である。 イベント解析テーブルの例を示す図である。 I/O解析データの例を示す図である。 ジョブ管理テーブルの例を示す図である。 ページ階層制御タスク管理テーブルの例を示す図である。 IOPS変移データの例を示す図である。 ログファイルデータの例を示す図である。 ログファイル管理テーブルの例を示す図である。 階層記憶性能管理テーブルの例を示す図である。 ログファイルの例を示す図である。 ページ階層制御管理テーブルの例を示す図である。 階層記憶容量管理テーブルの例を示す図である。 I/O解析プログラムのフローチャートの例を示す図である。 階層制御プラン作成プログラムのフローチャートの例を示す図である。 ページを上位Tierに移動させる処理のフローチャートの例を示す図である。 ページを下位Tierに移動させる処理のフローチャートの例を示す図である。 ジョブ終了時I/O解析修正プログラムのフローチャートの例を示す図である。 実施例2の管理計算機の構成の例を示す図である。 実施例2のサブプログラムページ関連発見プログラムフローチャートの例を示す図である。 実施例3の管理計算機の構成の例を示す図である。 実施例3の相対階層記憶管理テーブルの例を示す図である。
以下図面にしたがって、好ましい一実施の形態を詳述する。なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することもあるが、各種情報はテーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、「プログラム」を主語として処理を説明する場合もあるが、プログラムはコントローラに含まれるプロセッサ(例えばCPU:Central Processing Unit)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェースデバイス(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する管理システム(例えば、管理用計算機あるいはサーバ)が行う処理としても良い。また、コントローラはプロセッサそれ自体であっても良いし、コントローラが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムはプログラムソースから各コントローラにインストールされても良い。プログラムソースは例えばプログラム配布サーバ又は記憶メディアであっても良い。
なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェースやイーサーネットインタフェース(イーサーネットは登録商標)を入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入力デバイスでの入力及び表示を代替してもよい。
以後、計算機システムを管理し、ストレージシステムを管理制御する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである。また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
また、以下の説明では、「時刻」という言葉を用いるが、時刻は年、月、日といった情報も指し示しても良く、当然ながら時、分、秒(含む小数点以下の秒)を指し示しても良い。
(1−1)本実施の形態の概要
好ましい本実施の形態では、アプリケーションのログ情報からアプリケーションに対する操作に伴って発生する複数の特定処理(以降、説明のためにサブプログラムと称する。サブプログラムの詳細な説明は後述する。)の実行パターンを解析し、各サブプログラムによってアクセスされるページと、発生するアクセス数の経時変化を特定する。さらに、上記のサブプログラムによるアクセスの経時変化を基に、ページの階層制御を計画する。これにより、アプリケーションに対する操作に応じて適切なデータを、適切なタイミングで記憶階層に配置する。
図1は本実施の形態の概略を示す図である。アプリケーションのログ情報以外にOS起動ログからも経時的な処理の実行パターンを抽出できる。ここで、例えばVMがアプリケーションに相当し、処理AなどがアプリケーションVM1のサブプログラムに相当する。処理Aはページ1(p1)へアクセスすることが処理とページとの関係テーブルから特定でき、時刻に対する各ページへのアクセス(IOPS)を測定し解析すると、起動時にはページ1のアクセス数(I/O数)が多いのに対し、起動5分後には処理Bによるページ3へのアクセスが急増するという経時変化が特定できる。このため、ジョブスケジューラで8時にVM1を起動すると設定されている場合、起動5分後の8時5分に間に合うように7時51分にページ3を上位Tierへ移動開始する。
図1において太い実線矢印はI/Oの解析処理の情報の流れであり、次回の起動において使用するページの階層制御のプランの準備をするためのものである。太い点線矢印は次回の起動においてページ階層制御のプランを作成してプランを実行する情報の流れである。
(1−2)計算機システムのハードウェア構成
図2に計算機システム10のハードウェア構成の例を示す。計算機システム10は、管理計算機100、ストレージシステム200及びホスト計算機300から構成される。計算機システム10において、管理計算機100及びホスト計算機300は、同一計算機であってもよいし、それぞれ1台であってもよいし、複数台であってもよい。また、計算機システム10において、ストレージシステム200は、1台であってもよいし、複数台であってもよい。また、計算機システム10において、ホスト計算機300及びストレージシステム200は、同一計算機であってもよいし、それぞれ1台であってもよいし、複数台であってもよい。
ストレージシステム200、ホスト計算機300は、通信ネットワーク(例えばSAN(Storage Area Network))500を介して相互に接続される。また、管理計算機100はホスト計算機300及びストレージシステム200に通信ネットワーク(例えばLAN(Local Area Network))550を介して接続される。なお、通信ネットワーク500及び550は図2に示すように別々のネットワークでもよいし、同一のネットワークでもよい。
図3に管理計算機100の構成の例を示す。管理計算機100は、メモリ110、ディスク120、管理用I/F130、データ通信I/F140及びCPU150を有する計算機である。メモリ110、ディスク120、管理用I/F130、データ通信I/F140及びCPU150は、内部ネットワーク160を介して相互に接続されている。
メモリ110はCPU150によって必要とされる情報を記憶する。具体的には、メモリ110は、サブプログラムページ関連テーブル1101、イベント解析テーブル1102、I/O解析データ1103、ジョブ管理テーブル1104、ページ階層制御タスク管理テーブル1105、ページ階層制御管理テーブル1106及び階層記憶容量管理テーブル1107を記憶する。
ディスク120はCPU150によって実行されるプログラム及びCPU150によって必要とされる永続的な情報を記憶する。具体的には、IOPS変移データ1201、ログファイルデータ1202、ログファイル管理テーブル1203、階層記憶性能管理テーブル1204、ログファイル収集プログラム1251、ストレージI/O量集計プログラム1252、ページ割り当て状態監視プログラム1253、I/O解析プログラム1254、階層制御プラン作成プログラム1255、階層制御プログラム1256及びジョブ終了時I/O解析修正プログラム1257を記憶する。
サブプログラムページ関連テーブル1101は、ホスト計算機300のCPUで実行されるアプリケーションプログラムに対する操作に伴い実行されるサブプログラムと、サブプログラムがアクセスするページの関連情報を格納する。イベント解析テーブル1102はホスト計算機300のメモリに記憶されるアプリケーションプログラムに対する各種操作実行に伴い実行されるサブプログラムの解析情報を格納する。I/O解析データ1103はホスト計算機300にてアプリケーションプログラムが実行された際のストレージシステム200に対するアクセスの解析結果を格納する。ジョブ管理テーブル1104はホスト計算機300のメモリに記憶されるアプリケーションプログラムに対する各種操作に関するジョブを格納する。ページ階層制御タスク管理テーブル1105は、ページの階層制御に関してストレージシステム200に対する管理操作のタスク情報を格納する。ページ階層制御管理テーブル1106は、ページが配置されるTierと、ページに対するアクセス量を示す情報の経時変化を格納する。階層記憶容量管理テーブル1107はTierの容量の経時変化を格納する。メモリ110に記憶される各種テーブルについての詳細は後述する。
ログファイル収集プログラム1251はホスト計算機300のディスクに記憶されているログファイルを収集するプログラムである。ストレージI/O量集計プログラム1252はストレージシステム200からページに対するアクセス量を表す情報(例えばIOPS)を取得するプログラムである。ページ割り当て状態監視プログラム1253はページの階層制御の状態を監視するためのプログラムである。
I/O解析プログラム1254はサブプログラムによって発生するストレージシステム200に対するアクセス量の経時変化を解析するプログラムである。階層制御プラン作成プログラム1255はページの階層制御の実行プランを作成するためのプログラムである。階層制御プログラム1256はページの階層制御の実行プランに従い、ページの階層制御を実施するためのプログラムである。ジョブ終了時I/O解析修正プログラム1257はジョブ実行後に実行結果に基づきI/O解析結果を修正するためのプログラムである。
IOPS変移データ1201はページに対するIOPSの時間変化を示す情報を格納する。ログファイルデータ1202はホスト計算機300のディスクに記憶されるログファイルの情報を格納する。ログファイル管理テーブル1203はホスト計算機300から収集したログの情報を保持するログファイルデータ1202を管理する情報を格納する。階層記憶性能管理テーブル1204は各Tierの性能情報を格納する。ディスク120に記憶される各種テーブルについての詳細は後述する。
管理用I/F130は通信ネットワーク500を介してストレージシステム200及びホスト計算機300に接続するためのインタフェースである。データ通信I/F140は通信ネットワーク550を介してストレージシステム200及びホスト計算機300に接続するためのインタフェースである。CPU150はディスク120に記憶されるプログラムを実行することによって各種処理を行う。なお、図3では管理用I/F130とデータ通信I/F140は同一ではないが、管理用I/F130とデータ通信I/F140は同一であってもよい。
図4にストレージシステム200の構成の例を示す。ストレージシステム200は、メモリ210、コントローラ220、管理用I/F230、データ通信I/F240及び記憶メディア250を備える。メモリ210、コントローラ220、管理用I/F230、データ通信I/F230及び記憶メディア250は内部ネットワーク260を介して相互に接続されている。なお、図4では管理用I/F230とデータ通信I/F240は同一ではないが、管理用I/F230とデータ通信I/F240は同一であってもよい。
メモリ210はコントローラ220によって実行されるプログラム及びコントローラ220によって必要とされる情報を記憶する。具体的には、メモリ210は、I/O量監視プログラム2151、ページ割り当て制御プログラム2152を記憶する。I/O量監視プログラム2151は階層記憶のページに対するアクセス量を監視するためのプログラムである。ページ割り当て制御プログラム2152はページを記憶領域を構成する記憶メディア250の実アドレス空間に割り当てるためのプログラムである。
コントローラ220は、メモリ210に記憶されるプログラムを実行することによって、ストレージシステム200の動作を制御する。管理用I/F230は通信ネットワーク550を介して管理計算機100及びホスト計算機300に接続するためのインタフェースである。データ通信I/F240は通信ネットワーク500を介して管理計算機100及びホスト計算機300に接続するためのインタフェースである。
記憶メディア250はホスト計算機300から書き込み要求されたデータを記憶する。記憶メディア250は入出力性能やビットコストなどの特性が異なる複数種類のメディアであってもよい。例えば、SSD(Solid State Disk)群250A、SAS(Serial Attached SCSI)磁気ディスク群250B、SATA(Serial ATA)磁気ディスク群250Cなどの1種類以上の組み合わせであってもよい。
図5にホスト計算機300の構成の例を示す。ホスト計算機300は、メモリ310、ディスク320、管理用I/F330、データ通信I/F340及びCPU350を有する計算機である。メモリ310、ディスク320、管理用I/F330、データ通信I/F340及びCPU350は内部ネットワーク360を介して相互に接続されている。
メモリ310はCPU350によって実行されるプログラム及びCPU350によって必要とされる情報等を記憶する。具体的には、メモリ310は、1又は複数のアプリケーションプログラム3101を記憶する。アプリケーションプログラム3101はCPU350が実行する各種処理を定義するプログラムである。
アプリケーションプログラム3101は1又は複数のサブプログラム3102を含む。サブプログラム3102はアプリケーションプログラム3101の処理を構成するプログラムの一部または全部であり、アプリケーションプログラム3101に対する操作に伴って発生する処理のプログラムである。操作としては例えば図示と説明を省略した計算機では一般的なOS(Operating System)からアプリケーションプログラム3101への入力であって、ユーザからのアプリケーションプログラム3101の起動入力やデータ入力あるいはタイマなどによる割り込み入力などでもよい。
サブプログラム3102は操作により直接発生する処理には限定されない。サブプログラム3102としてアプリケーションプログラム3101に対する操作が実行され、アプリケーションプログラム3101の何らかの処理が実行されて、その実行された処理から自動実行されるプログラムであってもよい。また、サブプログラム3102としてアプリケーションプログラム3101に対する複数の操作の組み合わせによって実行されるプログラムであってもよい。アプリケーションプログラム3101に対する操作と何らかの関係をもって発生する処理のプログラムをサブプログラム3102としてもよい。
例えば、管理者がアプリケーションプログラム3101であるメールサーバプログラムの起動操作に伴って自動的に実行されるメールに関するDB(データベース)プログラムであってもよいし、ユーザのメール受信操作に伴って発生するメール受信プログラムであってもよいし、メール受信プログラムの実行後に実行される受信メール一覧表示プログラムであってもよい。なお、サブプログラム3102は以上の説明に限定されるものではなく、以下のサブプログラム3102に関する説明に適合するプログラムをサブプログラム3102としてもよい。
ディスク320はCPU350によって実行されるプログラム及びCPU350によって必要とされる永続的な情報を記憶する。具体的には、ディスク320は、ログファイル3201、ログファイル送信プログラム3251を記憶する。ログファイル3202は、メモリ310に記憶されるアプリケーションプログラム3101に対する各種操作のログ、アプリケーションプログラム3101に対して各種操作が行われた際にアプリケーションプログラム3101によって自動実行されるサブプログラム3102のログなどを格納するファイルである。ログファイル送信プログラム3251はログファイル3201を管理計算機100に送信するためのプログラムである。
管理用I/F330は通信ネットワーク500を介して管理計算機100及びストレージシステム200に接続するためのインタフェースである。データ通信I/F340は通信ネットワーク550を介して管理計算機100及びストレージシステム200に接続するためのインタフェースである。CPU350はディスク120に記憶されるプログラムを実行することによって各種処理を行う。なお、図5では管理用I/F330とデータ通信I/F340は同一ではないが、管理用I/F330とデータ通信I/F340は同一であってもよい。
(1−3)各種テーブルの内容
図6は管理計算機100のメモリ110に記憶されているサブプログラムページ関連テーブル1101の例を示す図である。サブプログラムページ関連テーブル1101は、ホスト計算機300のCPU350で実行されるプログラムとプログラムがアクセスするページの関連情報を管理するテーブルである。
アプリケーション名欄110101にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101の名称が格納される。操作種別欄110102にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対して行う事ができる操作の種別が格納される。サーバ名欄110103にはホスト計算機300の名称が格納される。サブプログラム欄110104には、ホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対して操作を実施した際に、ホスト計算機300のディスク320が記憶するログファイル3201に記録される一連のサブプログラム3102の状態が格納される。データID欄110105にはサブプログラム3102によって利用されるデータのID情報(例えばファイルのディレクトリパスとファイル名、データセットのデータセット名など)が格納される。ページ番号欄110106にはデータID欄110105に格納されるデータIDに対応するデータが格納されているページの番号情報が格納される。
なお、サブプログラムページ関連テーブル1101の内容は管理計算機100の図示を省略した入力装置などから予め入力してもよい。
図7は管理計算機100のメモリ110に記憶されているイベント解析テーブル1102の例を示す図である。イベント解析テーブル1102は、ホスト計算機300のメモリ310に記憶されるアプリケーションプログラム3101に対する各種操作実行に伴い実行されるサブプログラム3102の解析情報である。
アプリケーション名欄110201にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101の名称が格納される。操作種別欄110202にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対して行う事ができる操作の種別が格納される。サーバ名欄110203にはホスト計算機300の名称が格納される。サブプログラム欄110204には、ホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対して操作を実施した際に、ホスト計算機300のディスク320が記憶するログファイル3201に記録される一連のサブプログラム3102の状態が格納される。サブプログラム発生タイミング欄110205には、サブプログラム欄110204に格納されるサブプログラム3102の状態変化が発生する、ホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対する操作実施からの経過時間が格納される。I/O解析データID欄110206はサブプログラム欄110204に格納されるサブプログラム3102の状態変化に伴うストレージシステム200へのアクセス量変化を示すI/O解析データのID情報を格納する。
図8は管理計算機100のメモリ110に記憶されているI/O解析データ1103の例を示す図である。I/O解析データ1103は、ホスト計算機300のCPU350によってサブプログラム3102が実行された際のストレージシステム200に対するアクセスの解析結果に関する情報である。
I/O解析データID欄110301には、I/O解析データ1103を識別するID情報が格納される。当該ID情報は、イベント解析テーブル1102のアプリケーション名欄110201、操作種別欄110202、サーバ名欄110203、サブプログラム欄110204に格納される情報の組み合わせ毎に発行される。
経過時間欄110302にはイベント解析テーブル1102のサブプログラム発生タイミング欄110205に格納されるサブプログラム3102の状態変化発生からの経過時間が格納される。図8に示す当該経過時間(60秒毎)は一例であって例えば他の時間間隔であってもよい。ページ番号欄110303にはサブプログラム3102によって利用されるデータが格納されるページの番号情報が格納される。平均IOPS欄110304には、経過時間欄110302に格納される経過時間において、ページ番号欄110303に番号情報が格納されるページに対して発生したアクセス量(IOPS)を示す情報が格納される。指定Tier欄110305には、ページ番号欄110303に番号情報が格納されるページを配置するよう指定された1又は複数のTierの番号情報が格納される。
なお、指定Tier欄110305に指定されるTierの情報は管理計算機100が記憶するプログラムが設定する。例えば、本実施例においては、ジョブ終了時I/O解析修正プログラム1257がストレージシステムの性能情報を基に設定する。しかし、これは一例であり、例えば、ユーザ入力値に基づき設定してもよいし、ホスト計算機300が保持するアプリケーションプログラム3101の要求性能に基づき設定するなどをしてもよい。また、管理計算機100に指定Tier欄110305に情報を設定するためのプログラムを用意することで、ホスト計算機300が記憶するプログラムが上記プログラムを通して指定Tierを変更可能とするなどをしてもよい。なお、性能とは異なる指標に基づく設定としてもよい。
図9は管理計算機100のメモリ110に記憶されているジョブ管理テーブル1104の例を示す図である。ジョブ管理テーブル1104は、ホスト計算機300のメモリ310に記憶されるアプリケーションプログラム3101に対する各種操作に関するジョブを管理する情報である。
ジョブID欄110401にはジョブを識別するためのID情報が格納される。実行時刻欄110402にはジョブを実行する時刻が格納される。アプリケーション名欄110403にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101の名称が格納される。操作種別欄110404には、ホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対して行う事ができる操作の種別が格納される。サーバ名欄110405にはホスト計算機300の名称が格納される。
図10は管理計算機100のメモリ110に記憶されているページ階層制御タスク管理テーブル1105の例を示す図である。ページ階層制御タスク管理テーブル1105は、ページの階層制御に関するストレージシステム200に対する管理操作タスクの情報である。
階層制御タスクID欄110501にはタスクを識別するためのID情報が格納される。実行時刻欄110502には、タスクを実行する予定の将来の時刻、又はタスクを実行した過去の時刻が格納される。完了予定時刻欄110503にはタスクの実行時刻におけるタスクが完了する予定である将来の時刻が格納される。完了時刻欄110504には、タスクが完了していない場合には、タスク未完了であることを示すために“―”が格納され、タスクが完了している場合には、タスクが完了した時刻が格納される。なお、タスク未完了を示す“―”は一例であって、他の表現形式であってもよい。ページID欄110505には階層制御の対象であるページの番号が格納される。移動先Tier欄110506にはページの移動先Tier番号が格納される。ジョブID欄110507には階層制御の対象のページを利用するジョブのID情報が格納される。
図11は管理計算機100のディスク120に記憶されているIOPS変移データ1201の例を示す図である。IOPS変移データ1201は、ページに対するアクセス量(IOPS)の時間変化を示す情報である。
IOPS変移データID欄120101にはIOPSデータの取得元であるストレージシステム200毎に異なる識別子となるIDが格納される。時刻欄120102にはストレージシステム200にてページに対するアクセス量を測定した時刻情報が格納される。ページ番号欄120103にはストレージシステム200にてアクセス量を測定したページの番号が格納される。IOPS欄120104には、ページ番号欄120103に格納される番号のページに対して、時刻欄120102に格納される時刻の間に発生したアクセス量を示す情報(例えばIOPS)が格納される。
図12は管理計算機100のディスク120に記憶されているログファイルデータ1202の例を示す図である。ログファイルデータ1202は、ホスト計算機300から収集したログファイル3201の情報である。
ログファイルID欄120201にはホスト計算機300から収集したログファイル3201を識別するID情報が格納される。時刻欄120202にはアプリケーションプログラム3101に対する操作に伴う各種サブプログラム3102の実行時刻情報が格納され、サブプログラム欄120203にはサブプログラム3102の状態が格納される。時刻欄120202とサブプログラム欄120203は、ホスト計算機から収集したログファイル3201(詳細は図15を用いて後で説明する)の時刻欄320103とサブプログラム欄320104とそれぞれ対応する。
図13は管理計算機100のディスク120に記憶されているログファイル管理テーブル1203の例を示す図である。ログファイル管理テーブル1203は、IOPS変移データ1201とログファイルデータ1202の関連情報である。
アプリケーション名欄120301にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101の名称が格納される。操作種別欄120302にはホスト計算機300のCPU350がアプリケーションプログラム3101に対して実行した操作の種別が格納される。サーバ名欄120303にはホスト計算機300の名称が格納される。実行時刻欄120304には、アプリケーション名欄120301に格納されるアプリケーションプログラム3101に対して、操作種別欄120302に格納される操作を実行した時刻が格納される。ログファイルID120305にはログファイルデータ1202を識別するIDが格納される。アプリケーション名欄120301と操作種別欄120302に格納される情報は、同一行のログファイルID欄120305に格納されるログファイルIDが指すログファイルデータ1202に対応するログファイル3201の情報(320103、320104)とそれぞれ対応する。
図14は管理計算機100のディスク120に記憶されている階層記憶性能管理テーブル1204の例を示す図である。階層記憶性能管理テーブル1204は、各Tierの性能情報である。
Tier ID欄120401にはTierの番号情報が格納される。例えば図14においては、このTier番号が小さいほど性能(例えばスループットやIOPS)が高い記憶領域であることを示す。Readスループット欄120402には当該Tierの読み込み性能(例えばMB/s)、Writeスループット欄120403には当該Tierの書き込み性能(例えばMB/s)が格納される。上限IOPS欄120404には当該Tierが対応することができるIOPSの上限値が格納される。なお、図14ではTier番号が小さいほど性能が高いとしたが、これに限定されるものではない。例えば、Tier番号ではなく、Tierを構成するメディアの名称をTier ID欄120401の内容として用いることもできる。
図15はホスト計算機300のディスク320に記憶されているログファイル3201の例を示す図である。ログファイル3201は、アプリケーションプログラム3101のログ情報を格納するファイルである。
アプリケーション名欄320101にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101の名称が格納される。操作種別欄320102にはホスト計算機300のCPU350が実行するアプリケーションプログラム3101に対して行う事ができる操作の種別が格納される。時刻欄320103にはアプリケーションプログラム3101に対する操作に伴うサブプログラム3102の実行時刻情報が格納される。
サブプログラム欄320104にはサブプログラム3102の状態が格納される。ここでのサブプログラム3102は例えば下記に記すサブプログラムである。
第1タイプのサブプログラム:アプリケーションプログラム3101に対する操作実行に伴い、アプリケーションプログラム3101によって自動実行されるサブプログラム。
第2タイプのサブプログラム:アプリケーションプログラム3101に対する操作実行後に、アプリケーションプログラム3101に対して実行される次なる操作によって実行されるサブプログラム。
第3タイプのサブプログラム:アプリケーションプログラム3101に対する操作実行後に、アプリケーションプログラム3101が利用されることによって実行されるサブプログラム。
なお、上記サブプログラムはアプリケーションプログラム3101に対する操作に伴って実行されるサブプログラム3102の一例であって、他の契機、因果関係、実行手段で実行されるサブプログラムであってもよい。
図16は管理計算機100のメモリ110に記憶されているページ階層制御管理テーブル1106の例示す図である。ページ階層制御管理テーブル1106は、ページが配置されるTierとページに対するアクセス量を示す情報の経時変化の情報である。
時刻欄110601には一定間隔で区切られた時刻の区間が格納され、具体的には開始時刻と終了時刻の組が格納される。ページ番号欄110602にはページを識別する番号が格納される。Tier ID欄110603には、対応する時刻欄110601の時刻において、ページが配置されるTierの番号が格納される。IOPS欄110604にはページに対するアクセス数を表す情報(例えばIOPS)が格納される。指定Tier欄110605には、時刻欄110601の時刻において、ページが配置されるように指定されたTierの番号が格納される。
図17は管理計算機100のメモリ110に記憶されている階層記憶容量管理テーブル1107の例を示す図である。
時刻欄110701には一定間隔で区切られた時刻の区間が格納され、具体的には開始時刻と終了時刻の組が格納される。Tier ID欄110702には、Tierの番号が格納される。全体容量(GB)欄110703にはTierの使用可能な容量が格納され、具体的にはページ割り当て済みの記憶領域の容量と後述する空き容量(GB)の和である。空き容量(GB)欄110704はページを割り当てることができるTierの容量である。固定化容量(GB)欄110705は、時刻欄110701の時刻の区間において、Tier ID欄110702のTierに固定して配置されているページの総容量である。
(1−4)計算機システムの動作の詳細
(1−4−1)I/O解析の動作の詳細
まず、管理計算機100におけるI/O解析の動作を詳細に説明する。管理計算機100は、ディスク120に記憶するIOPS変移データ1201とログファイルデータ1202を用いて、I/O解析プログラム1254に基づき、ホスト計算機300のCPU350によって実行されるアプリケーションプログラム3101に対して行われる操作に伴い実行されるサブプログラム3102の実行タイミングと、サブプログラム3102によるストレージシステム200に対するI/Oを解析する。
I/O解析プログラム1254によって用いられるIOPS変移データ1201とログファイルデータ1202は、それぞれストレージI/O量集計プログラム1252とログファイル収集プログラム1251により生成される。IOPS変移データ1201は、ストレージI/O量集計プログラム1252が管理計算機100のCPU150で実行され、例えば、次の処理(a1)〜(a2)が実行されることにより生成される。
(a1)ストレージI/O量集計プログラム1252はページに対するアクセス数の累積値をストレージシステム200から定期的に取得する。
(a2)ストレージI/O量集計プログラム1252は、ストレージシステム200からページに対するアクセス数の累積値を受信すると、その結果から前回受信時の累積値との差分を算出し、前回受信時刻と今回受信時刻とその時刻間におけるページに対するアクセス数を、IOPS変移データ1201に追加する。
ストレージシステム200は、上記(a1)の実行に備え、I/O量監視プログラム2151をコントローラ220で実行し、例えば以下の処理(b1)〜(b2)を行う。
(b1)I/O量監視プログラム2151に基づき、コントローラ220はページに対するアクセス数を監視し、ページに対するアクセス数の累積値を保持する。
(b2)I/O量監視プログラム2151は、上記(a1)実行によるアクセス数累積値の送信要求に応答し、アクセス数累積値を管理計算機100に送信する。
ログファイルデータ1202は、ログファイル収集プログラム1251が管理計算機100のCPU150で実行され、例えば次の処理(c1)〜(c3)が実行されることにより生成される。
(c1)ログファイル収集プログラム1251はホスト計算機300に対して定期的にログファイル3201を収集する。
(c2)ログファイル収集プログラム1251は、ログファイル3201に含まれる時刻320103とサブプログラム情報320104を基にログファイルデータ1202を生成する。
(c3)ログファイル収集プログラム1251は、アプリケーション名320101と操作種別320102の情報とともに、上記(c2)で生成したログファイルデータ1202のIDをログファイル管理テーブル1203に追加する。
なお、ログファイル収集プログラム1251を定期的に実行することは、ログファイル収集プログラム1251の実行契機の一例であり、例えばジョブ実行終了を契機に実行するなどしてもよい。
また、ホスト計算機300は、管理計算機100からログファイル3201の取得要求(例えば上記(c1)におけるログファイル収集要求)を受信すると、ログファイル送信プログラム3251に基づきログファイル3201を管理計算機100に送信する。
I/O解析プログラム1254のフローチャートの例を図18に示す。管理計算機100のCPU150(以下、管理計算機100として説明する)は、定期的に図13に示すログファイル管理テーブル1203に含まれるアプリケーション名120301、操作種別120302、サーバ名120303の組み合わせを入力としてI/O解析プログラム1254を実行する。他の実行契機が採用されてもよく、例えば、ログファイル収集プログラム1251に基づいてホスト計算機300からログファイル3201を収集したタイミングであってもよい。また、以降の説明のため、アプリケーション名120301、操作種別120302、サーバ名120303の組み合わせのことをイベントと表現する。また、イベントが示すホスト計算機300のCPU350で実行されるアプリケーションプログラム3101に対して操作が実行されることをイベントが発生すると表現する。
管理計算機100は、I/O解析プログラム1254が実行されると、入力として与えられたイベントに対応する全てのログファイルID120305をログファイル管理テーブル1203から取得する。次に、取得したログファイルID120305に対応するログファイルデータ1202を取得する(ステップS1005)。
次に、管理計算機100はステップS1005で取得したログファイルデータ群1202を比較し、サブプログラム欄120203のサブプログラム3102が出現するログファイルデータ1202の数の情報を基にイベントが発生した際に実行されるサブプログラム3102を推定する(ステップS1010)。ここでの推定方法は例えば統計的仮説検定などを用いてもよい。具体的には、まず、イベントが発生した際には特定のサブプログラム3102が実行されるとの仮定を設定する。この仮定の下で適当な有意水準(例えば1パーセント)を設定し、サブプログラム欄120203のサブプログラム3102がログファイルデータ1202に出現する確率について仮説検定を行えばよい。サブプログラム欄120203のサブプログラム3102がログファイルデータ1202に出現する確率は、2以上のログファイルデータ1202において、サブプログラム欄120203のサブプログラム3102が出現するログファイルデータの全体に対する割合から算出すればよい。
管理計算機100は、各サブプログラム3102について以降のステップS1020からステップS1050の処理を1又は複数回実行する(ステップS1015とステップS1055)。
管理計算機100は、ステップS1010で用いたログファイルデータ群1202のうち、サブプログラム3102が出現するログファイルデータ1202より、サブプログラム3102が実行された時刻120202を取得する。また、管理計算機100は、ステップS1010で用いたログファイルデータ群のうち、サブプログラム3102が出現するログファイルデータ1202のログファイルID120201に対応するイベントの実行時刻120304をログファイル管理テーブル1203より取得する。次に、管理計算機100は、上記で取得した1以上のイベントの実行時刻120304と、前記の実行時刻120304に対応するサブプログラム3102が実行された時刻120202の情報を基に、イベントが発生してからサブプログラム3102が実行されるまでの経過時間を算出する。
管理計算機100は、上記で2以上のログファイルデータ1202から算出した各イベントが発生してからサブプログラム3102が実行されるまでの経過時間群を基に、代表的なイベントが発生してからサブプログラム3102が実行されるまでの経過時間を推定する。推定方法は例えば微分エッジ検出法などの特徴検出法を用いてもよい。具体的には、特徴検出法を経過時間群に対して適用し、特徴的な値である経過時間を検出してもよい(以降、説明のために推定されたイベントが発生してからサブプログラム3102が実行されるまでの代表的な経過時間をサブプログラム3102が実行されるタイミングと称する)(ステップS1020)。
ステップS1025において、管理計算機100は図6に示すサブプログラムページ関連テーブル1101を参照し、I/O解析プログラム1254の入力として与えられたイベントに対応する情報(110101〜110103)が、サブプログラムページ関連テーブル1101に含まれるかを判断する。含まれる場合にはサブプログラム3102の情報(110104)がサブプログラムページ関連テーブル1101に含まれるかを判断する。
ステップS1025における判断の結果が否定的な場合には、当該サブプログラム3102に関する処理を中止し、ステップ1015より別のサブプログラム3102に関する処理を開始する。
ステップS1025における判断の結果が肯定的な場合に、管理計算機100はイベントとサブプログラム3102に対応するページ番号欄110106のページ番号をサブプログラムページ関連テーブル1101より取得する(ステップS1030)。
管理計算機100は、ステップ1020で用いたサブプログラム3102が出現するログファイルデータ群1202からサブプログラム3102が実行されている時刻群を取得する。そして、IOPS変移データ1201から上記で求めた時刻におけるIOPS変移をそれぞれ抽出する。
管理計算機100は、上記処理にて取得した各IOPS変移を基にして、例えば下記の処理ステップ(d1)〜(d3)を実行し、ステップS1030で特定したページ番号欄110106のページ番号に対応するページに対してアクセス数が変化するタイミング(以降説明のため、サブプログラム3102が発生してからページに対してアクセス数が変化するまでの経過時間を、ページに対してアクセス数が変化するタイミングと表現する。)を抽出する(ステップS1035)。
(d1)図11に示すIOPS変移データ1201より、ステップ1030で特定したページ番号欄110106のページ番号に対応する時刻欄120101とIOPS欄120104の情報を取得する。
(d2)IOPS欄120104のIOPS値の変移より、IOPS値の変更量が大きい時刻を検出する。検出方法は例えば微分エッジ検出法などの特徴検出法を用いてもよい。
(d3)上記(d2)で検出した時刻と、サブプログラム3102の実行タイミングと、イベントの実行時刻欄120304の時刻より、サブプログラム3102が実行されてからIOPS値が変化するまでの経過時間を算出する。
次に、管理計算機100は、ステップS1035において算出したページに対してIOPS値が変化するタイミングについて、外れ値を検出する。ステップS1045以降の処理において管理計算機100は、検出した外れ値に対応するIOPS変移と、その対応するログファイルデータ1202は除外して処理を行う。外れ値の検出方法は例えば統計的な外れ値検定方法を用いてもよい(ステップS1040)。
管理計算機100は、処理対象のログファイルデータ1202に格納されたサブプログラム3102の実行時刻におけるIOPS変移を基に、ステップS1030で取得したページに対する各サブプログラム3102の実行からの各経過時間におけるIOPS値の平均値を算出する。さらに、管理計算機100は、I/O解析データ1103に対し、サブプログラム3102の実行後の経過時間欄の110302の時間、ステップS1030で取得したページをページ番号欄11303へ、上記で算出したIOPS値の平均値を平均IOPS欄110304へそれぞれ格納する。なお、平均値を使用する方法は一例であって中央値などの他の統計的方法であってもよい(ステップS1045)。
管理計算機100は、ステップS1050において、図7に示すイベント解析テーブル1102に対して、当該イベントの情報(110201〜110203)とサブプログラム3102の情報(110204)、ステップS1020で算出したサブプログラム3102の実行タイミング(110205)、ステップS1050で生成したI/O解析データ1103のID(110206)を格納する。
ステップS1055において管理計算機100は、ステップS1010で抽出したすべてのサブプログラム3102について、ステップS1020からステップS1050までの処理を実行したかを判断する。すべてのサブプログラム3102について、ステップS1020からステップS1050までの処理を実行したならば、I/O解析プログラム1254を終了する。すべてのサブプログラム3102について、ステップS1020からステップS1050までの処理を実行していないならば、ステップS1015へ戻り、ステップS1010で抽出した別のサブプログラム3102について処理を開始する。
以上で説明したように、管理計算機100でI/O解析プログラム1254を実行することで、ホスト計算機300のディスク320に記憶されるログファイル3201とストレージシステム200から取得されるIOPS変移データ1201を基に、イベント実行にともなうサブプログラム3102の実行時のページに対するI/Oの経時変化を解析することが可能となる。なお、以上の説明ではログファイルデータ1202においてサブプログラム3102が実行される確率情報からイベントに伴い実行されるサブプログラム3102を推定したが、サブプログラム3102はユーザによる指定などによって管理計算機100に対して通知されてもよい。その場合にはステップS1005からステップS1010の処理が必要とされない。
(1−4−2)階層制御プラン作成の動作の詳細
管理計算機100における階層制御プラン作成の動作を詳細に説明する。管理計算機100は、ディスク120に記憶するイベント解析テーブル1102を用いて、階層制御プラン作成プログラム1255に基づき、ストレージシステム200に対して階層制御を行うためのタスクを生成する。
図19は管理計算機100における階層制御プラン作成プログラム1255のフローチャートの例を示す図である。管理計算機100は、図9に示すジョブ管理テーブル1104に新規のジョブが追加されると、階層管理プラン作成プログラム1255を開始する(ステップS2000)。まず、管理計算機100はジョブ管理テーブル1104から新規に追加されたジョブを取得する(ステップS2005)。
管理計算機100は、ジョブからイベント(アプリケーション名欄110403、操作種別欄110404、サーバ名欄110405)の情報を抽出し、図7に示すイベント解析テーブル1102に抽出したイベントに対応する情報が含まれるか、否かを判断する(ステップS2010)。ステップS2010において、イベントに対応する情報が含まれない場合には、階層制御プラン作成プログラム1255の処理を終了する。
一方、ステップS2010において、イベントに対応する情報が含まれる場合には、管理計算機100はイベント解析テーブル1102のサブプログラム欄110204からイベント実行時に伴い発生するサブプログラム3102の一覧を取得する。管理計算機100は取得した各サブプログラム3102について以降のステップS2020からステップS2070の処理をループ(A)として1又は複数回実行する(ステップS2015)。
ステップS2020において、管理計算機100は、処理対象のイベントとサブプログラム3102に対応する、イベントが発生してからサブプログラム3102が実行されるまでの経過時間とI/O解析データを特定し、イベント解析テーブル1102のサブプログラム発生タイミング欄110205とI/O解析データID欄110206より取得する(ステップS2020)。
管理計算機100は、ステップS2020にて取得したI/O解析データのIDから特定されるI/O解析データ1103の経過時間欄110302より、サブプログラム3102実行からの経過時間のステップを取得する。管理計算機100は取得した経過時間のステップ毎に以降のステップS2030からステップ2065をループ(B)として1又は複数回実行する(ステップS2025)。
管理計算機100は、ステップS2020にて取得したI/O解析データのIDから特定されるI/O解析データ1103のページ番号欄110303より、当該経過時間のステップにおけるサブプログラム3102が参照するページを取得する。管理計算機100は取得したページ毎に以降のステップS2040からステップ2060をループ(C)として1又は複数回実行する(ステップS2035)。
管理計算機100は、ステップS2040において、当該ページを配置することが指定されているTierとして、前経過時間ステップと比べ、より入出力性能が高いTierが指定されているか、否かを判断する。図14を用いて説明したように、Tier番号が小さいほど、性能(例えばスループットやIOPS)が高い記憶領域であると定義したため、I/O解析データ1103の指定Tier欄110305を参照し、経過時間ステップの変化に伴い、より番号の小さいTierが指定されているか、否かを判断する。また、I/O解析データ1103の指定Tier欄110305を参照した結果、前回経過時間ステップにおいて、ページを配置するTierが指定されておらず、今回経過時間ステップにおいてページを配置するTierが指定されている場合には、肯定的判断を行い、今回経過時間ステップにおいてページを配置するTierが指定されていない場合には、否定的判断を行う。
なお、ループ(C)の1回目の実行時においては、今回経過時間ステップにおいて、ページを配置するTierが指定されている場合には肯定的判断を行い、ページを配置するTierが指定されていない場合には否定的判断を行う。
ステップ2040の判断の結果、否定的判断であった場合に、管理計算機100は、I/O解析データ1103を参照し、前回経過時間ステップにおけるページのIOPS値と、今回経過時間ステップにおけるページのIOPS値を比較する。なお、ループ(C)の1回目の実行時であった場合には、管理計算機100は当該ページについて、他のページのIOPS値と比較して適切なTierを決定するために、対象のI/O解析データ1103の指定Tier欄110305にすべてのTier番号を指定した上で、肯定的判断を行う(ステップS2045)。
ステップS2040の結果が肯定的である場合、または、ステップS2040の結果が否定的かつステップS2045の結果が肯定的である場合、管理計算機100はステップS2050にて、後述するページを上位Tierに移動させるための処理を実行する。また、ステップS2040の結果が否定的かつステップS2045の結果が否定的である場合、管理計算機100はステップS2060にて、後述するページを下位Tierに移動させるための処理を実行する。
ステップS2065において、管理計算機100はループ(C)の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100はステップS2070を実行し、実行されていない場合、管理計算機100はステップS2035へ処理を戻す。ステップS2070において、管理計算機100はループ(B)の対象のすべての経過時間ステップに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100はステップS2075を実行し、実行されていない場合、管理計算機100はステップS2025へ処理を戻す。ステップS2075において、管理計算機100はループ(A)の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100は階層制御プラン作成プログラム1255を終了し、実行されていない場合、管理計算機100はステップS2015へ処理を戻す。
ページを上位Tierに移動させるための処理(図19のステップS2050)を詳細に図20を用いて説明する。
管理計算機100は、ステップS3005において、階層制御プラン作成プログラム1255の入力情報である図9に示すジョブ管理テーブル1104に格納された新規のジョブと、ステップS2050を実行する状態において、処理対象としているサブプログラム3102、サブプログラム3102が実行されてからの経過時間、ページの情報から、対象の時刻情報を算出する。具体的には、管理計算機100は、ジョブ管理テーブル1104の実行時刻欄110402からジョブの発生時刻と、イベント解析テーブル1102のサブプログラム発生タイミング欄110205からイベント発生からサブプログラム3102実行までの経過時間、処理対象としているサブプログラム3102が実行されてからの経過時間、を基に時刻を算出する(以降、説明のためにここで算出した時刻をI/O発生時刻と表現する)。
次に、管理計算機100は、階層記憶容量管理テーブル1107を参照し、I/O発生時刻における各Tierの容量情報(全体容量欄110703、空き容量情報欄110704、固定化容量欄110705)を取得する。さらに、管理計算機100は、ステップS2050を実行時に処理対象であるI/O解析データ1103において、経過時間欄110302とページ番号欄110303の欄内の処理対象である経過時間とページ番号に対応する指定Tier番号欄110305のTier番号を取得する。管理計算機100は、上記で取得した各Tierの空き容量情報とTier番号の情報より、I/O発生時刻において指定されたTierより入出力性能が高いTierに空き容量があるか、否かを判断する。
ステップS3005における判断が肯定的であった場合、管理計算機100は、ステップS3010において、空き容量のあるTierの内、より入出力性能の高いTierを処理対象のページの移行先Tierとして選択する。一方、ステップS3005における判断が否定的であった場合、管理計算機100はステップS3015を実行する。
ステップS3015において管理計算機100は、階層記憶容量管理テーブル1107を参照し、I/O発生時刻における各Tierの全体容量110703と固定化容量110705を比較し、各Tierのページが固定されていない領域の容量を算出する。管理計算機100は、上記で算出した各Tierのページが固定されていない領域の容量の情報を基に、I/O発生時刻において指定Tierより入出力性能が高いTierへTierを変更可能なページがあるか、否かを判断する。
ステップS3015における判断が否定的であった場合、管理計算機100はさらにステップS3030を実行する。ステップS3030において管理計算機100は、ページ階層制御管理テーブル1106を参照し、指定されたTier以上の入出力性能を持つTierに配置されているページ番号をページ番号欄110602の中で特定する。そして、管理計算機100は、特定したページ番号についてのIOPS欄110604でのIOPS値と処理対象のページに対するIOPS値を比較し、処理対象のIOPS値以下のIOPSであるページが、指定されたTier以上の入出力性能を持つTierにあるか、否かを判断する。
ステップS3015における判断の結果が肯定的な場合、または、ステップS3030における判断が肯定的であった場合、管理計算機100は、ステップS3020において、指定されたTier以上の入出力性能を持つTierに配置済みのページから交換対象のページすなわち下位Tierへ移動することにより上位Tierに空きを作るページを特定し、交換対象のページに関する階層制御タスクを設定する。具体的には、管理計算機100は、ページ階層制御管理テーブル1106を参照し、指定されたTier以上の入出力性能を持つTierに配置されているページをページ番号欄110602の中で特定する。そして、管理計算機100は、特定したページのうち、指定Tier欄110605のTier番号が、Tier ID110603のTier番号と等しくないページを一つ選択する。次に、管理計算機100は、選択したページについて、ページを上位Tierに移動させるための処理に基づき、ページ階層制御タスクを生成する。
管理計算機100は、交換対象のページが配置されていたTierを、処理対象のページの移動先Tierとして選択する(ステップS3025)。
ステップS3030における判断が否定的であった場合に、管理計算機100は、ページを上位Tierに移動させることできないと判断し、ページを下位Tierに移動させるための処理を終了し、図19に示す処理へ戻る。
ステップS3040において管理計算機100は、I/O発生時刻の時点において処理対象のページが配置されているTier(以降、移動元Tierと称する)から、移動先Tierにページを移動する処理にかかる時間を算出する。具体的には、ページ階層制御テーブル1106からI/O発生時刻における処理対象ページが配置されるTierを参照する。次に、管理計算機100は階層記憶性能管理テーブル1204を参照して移動元TierのReadスループットと移動先TierのWriteスループットを取得する。これらの性能情報を基に、(ページ階層制御に要する時間)=Min(移動元TierのReadスループット、移動先TierのWriteスループット)*(ページの容量)でページ階層制御に要する時間を算出する。
管理計算機100は、I/O発生時刻から上記で算出したページ階層制御に要する時間を差し引くことにより、階層制御タスクの実行時刻を算出する(ステップS3045)。
ステップS3050において管理計算機100は移動先Tierと階層制御タスクの実行時刻を基に階層制御タスクを生成する。具体的には、まず、管理計算機100は、I/O発生時刻と処理対象のページの組み合わせに対応する、ページ階層制御管理テーブル1106におけるレコードのTier ID欄110603に対して、移動先Tierの番号を設定し、IOPS欄110604に対して、I/O解析データ1103に格納されている処理対象ページにおけるIOPS情報を設定し、指定Tier欄11605へ処理対象ページに対して指定された指定Tierの番号を設定する。
次に、管理計算機100はI/O発生時刻の移動元Tierと移動先Tierに対応する階層記憶容量管理テーブル1107におけるレコードの容量情報を更新する。すなわち、移動元Tierの空き容量に対応するフィールドについては、ページ容量分減少させ、移動先Tierの空き容量に対応するフィールドについては、ページ容量分増加させる。移動元Tierの固定化容量に対応するフィールドについては、ページ階層制御管理テーブル1106において、I/O発生時刻に移動元ページに対して設定されているTier IDと指定Tierが同一であれば、ページ容量分減少させる。また、移動先Tierの固定化容量に対応するフィールドについては、ページ階層制御管理テーブル1106において、I/O発生時刻に移動先ページに対して設定されているTier IDと指定Tierが同一であれば、ページ容量分増加させる。さらに、管理計算機100は、タスク実行時刻、I/O発生時刻、処理対象ページ、移動先Tierの情報を基に、ページ階層制御タスクを生成し、ページ階層制御タスク管理テーブル1105に追加する。
ページを下位Tierに移動させるための処理(図19のステップS2060)を詳細に説明する。図21はページを下位Tierに移動させる処理のフローチャートの例を示す図である。
管理計算機100は、I/O解析データ1103を参照し、処理対象ページに対して指定されるTier番号の経時変化を取得する。さらに、管理計算機100はI/O発生時刻の前後での指定Tierを比較する(ステップS4005)。
比較の結果、I/O発生時刻において、それ以前よりも入出力性能の高いTierが指定されていたか、指定されているTierが変わっていない場合には、ページを下位Tierに移動させるための処理を終了し、図19に示す処理へ戻る。一方、I/O発生時刻において、それ以前よりも入出力性能の低いTierが指定されていたか、Tierが指定されていない場合には、ステップS4010以降の処理を実行する。
ステップS4010において管理計算機100は、ページ階層制御管理テーブル1106を参照し、I/O発生時刻において処理対象のページに対して指定されたTier以上のTierに対して配置されているページをページ番号欄110602から取得する。さらに、管理計算機は取得したページのなかで、指定Tier欄110605のTier番号よりも、Tier ID欄110603のTier番号が入出力性能の低いTierとなっているページがあるか、否かを判断する。
ステップS4010における判断の結果が肯定的であった場合、管理計算機100は、S4010で取得した指定Tier欄110605のTier番号よりも、Tier ID欄110603のTier番号が入出力性能の低いTierとなっているページのうち、一つを処理対象ページとの交換対象のページとして選択する(ステップS4015)。
一方、ステップS4010における判断の結果が否定的であった場合、ステップS4020において管理計算機100は、ページ階層制御管理テーブル1106を参照し、I/O発生時刻において処理対象のページに対して指定されたTier以上のTierに対して配置されているページ番号をページ番号欄110602から取得する。さらに、管理計算機は取得したページのなかで、処理対象のページに対するIOPS値よりも、IOPS欄110604のIOPS値が小さいページがあるか、否かを判断する。
ステップS4020における判断の結果が肯定的であった場合、管理計算機100は、ステップS4020で取得した処理対象のページに対するIOPS値よりも、IOPS欄110604のIOPS値が小さいページのうち、一つを処理対象ページとの交換対象のページとして選択する(ステップS4025)。
一方、ステップS4020における判断の結果が否定的であった場合、管理計算機100は、ページを下位Tierに移動させる必要はないと判断し、ページを下位Tierに移動させるための処理を終了して、図19に示す処理へ戻る。
ステップS4030において管理計算機100は、ページ階層制御管理テーブル1106と、階層記憶容量管理テーブル1107を更新し、交換対象のページと処理対象のページを交換する階層制御タスクを生成し、ページ階層制御タスク管理テーブル1105に追加する。ページ階層制御管理テーブル1106と階層記憶容量管理テーブル1107を更新する処理および階層制御タスクの生成処理はステップS3050と同様である。
(1−4−3)ジョブ終了時I/O解析修正の動作の詳細
管理計算機100におけるジョブ終了時I/O解析修正の動作を詳細に説明する。管理計算機100は、ディスク120に記憶するイベント解析テーブル1102を用い、ジョブ終了時I/O解析修正プログラム1257に基づき、ストレージシステム200に対して階層制御を行うためのタスクを生成する。
図22は管理計算機100におけるジョブ終了時I/O解析修正プログラム1257のフローチャートの例を示す図である。管理計算機100は、図9に示されるジョブ管理テーブル1104に格納されたジョブ実行が終了すると、ジョブ終了時I/O解析修正プログラム1257を実行する(ステップS6000)。管理計算機100は、ジョブ終了を検知すると、IOPS変移データ1201より、ジョブ開始時刻から終了時刻までのIOPS変移を抽出する(ステップS6005)。
管理計算機100は、ページ階層制御管理テーブル1106を参照し、ジョブ開始時刻から終了時刻までの階層制御情報を取得する(ステップS6010)。そして、管理計算機100は、イベント解析テーブル1102から、終了したジョブに対応するイベントであるレコードを特定し、特定したレコードのサブプログラム欄110204とサブプログラム発生タイミング欄110205とI/O解析データID欄110206に含まれるサブプログラム3102の一覧とそれらのサブプログラム3102の実行タイミングとI/O解析データIDを取得する。次に、管理計算機100は、取得した各サブプログラム3102について、以降のステップS6020からステップS6060をループ(A)として1又は複数回実行する(ステップS6015)。
ステップS6020において管理計算機100は、サブプログラム3102に対応するI/O解析データIDから、I/O解析データ1103を取得する(ステップS6020)。次に、管理計算機100は、ステップS6020にて取得したI/O解析データ1103に含まれる各サブプログラム3102実行からの経過時間ステップについて、以降のステップS6030からステップS6055をループ(B)として1又は複数回実行する(ステップS6025)。さらに、管理計算機100は、ステップS6020にて取得したI/O解析データ1103において、処理対象となっている経過時間ステップにおける各ページ番号について、以降のステップS6035からステップS6050をループ(C)として1又は複数回実行する(ステップS6030)。
ステップS6035において管理計算機100は、処理対象のページがジョブ実行時に配置されていたTierにおいて性能が不足していたか、否かを判断する。具体的には、管理計算機100は、ジョブの実行時刻、ステップS6015においてイベント解析テーブル1102から取得したサブプログラム3102の実行タイミング、ステップS6025にてI/O解析データ1103から取得したサブプログラム3102実行からの経過時間より、時刻情報を算出する。次に、管理計算機100は、上記で算出した時刻において、処理対象のページに対して発生したIOPS値を、ステップ6005で生成したIOPS変移データより取得する。また、同様に管理計算機100は、上記で算出した時刻において、処理対象のページが配置されていたTierを、ステップ6010で取得した階層制御情報より求める。次に、管理計算機100は、階層記憶性能管理テーブル1204を参照し、処理対象のページが配置されていたTierのIOPS上限値を取得する。そして、管理計算機100は、処理対象のページに対して発生したIOPS値と処理対象のページが配置されていたTierのIOPS上限値を比較し、ジョブ実行時に処理対象のページに対して発生したIOPSが上限値となっているか、否かを判断する(ステップS6035)。
ステップS6035の判断の結果が肯定的であれば、管理計算機100は、処理対象のページが配置されていたTierが、I/O解析データ1103で指定されたTierよりも入出力性能の高いTierであるか、否かを判断する(ステップS6037)。
ステップS6037の判断の結果が肯定的であれば、管理計算機100は、I/O解析データ1103の、ステップS6025で指定した経過時間のうち、ステップS6030で指定したページに対応する指定Tierのフィールドに設定されているTierの情報を、より上位のTierに変更する(ステップS6040)。ステップS6037の判断の結果が否定的であれば、管理計算機100はステップS6055以降の処理を実施する。
ステップS6035の判断の結果が否定的であれば、管理計算機100は、処理対象のページがジョブ実行時に必要以上の性能のTierに割り当てられていたか、否かを判断する。具体的には、管理計算機100は、ステップ6035で取得した処理対応のページに対して発生したIOPS値と、階層記憶性能管理テーブル1204の各TierのIOPS上限値情報を比較し、処理対応のページに対して発生したIOPS値よりも、実際に配置されたTier以下のTierの上限値の方が大きいか、否かを判断する(ステップS6045)。
ステップS6045の判断の結果が肯定的であれば、管理計算機100は、処理対象のページがジョブ実行時に必要以上の性能のTierに割り当てられていたと判断し、ステップS6045で参照した指定Tierのフィールドに設定されるTier情報を、より下位のTierに変更する。ステップS6045の判断の結果が否定的であれば、管理計算機100は、ステップS6055以降の処理を実施する。
ステップS6055において管理計算機100はループ(C)の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100はステップS6060を実行し、実行されていない場合、管理計算機100はステップS6030に処理を戻す。ステップS6060において管理計算機100はループ(B)の対象のすべての経過時間ステップに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100はステップS6070を実行し、実行されていない場合、管理計算機100はステップS6025に処理を戻す。ステップS6070において管理計算機100はループ(A)の対象のすべてのサブプログラム3102に対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100はジョブ終了時I/O解析修正プログラム1257を終了し、実行されていない場合、管理計算機100はステップS6015に処理を戻す。
なお、以上の説明においては、ストレージシステム200の階層記憶に関する性能情報(IOPS)とTierのIOPS上限値を基に、階層制御プランの修正を判断したが、これは階層制御プラン修正の方法の一例であって、階層制御プラン修正を行う際に利用する情報を階層記憶に関する性能情報(IOPS)とTierのIOPS上限値に限定するものではない。例えば、ホスト計算機300のアプリケーションプログラム3101の応答性能情報とアプリケーションプログラム3101に設定されている要求性能などであってもよい。
以上で説明したように、サブプログラム3102のアクセス量の多いページをサブプログラム3102の実行前に上位Tierへ移動することが可能であり、アプリケーションプログラムへのレスポンス性能を向上できる。また、サブプログラム3102のアクセス量の少ないページを下位Tierへ移動することも可能であり、上位Tierがアクセス量の少ないページで占有されることを防止できる。
(2−1)本実施の形態の概要
実施例2の計算機システムについて、以下では実施例1と異なる部分のみを説明する。実施例1では、管理計算機100のディスク120に記憶するサブプログラムページ関連テーブル1101において、アプリケーションプログラム3101を構成するサブプログラム3102とページの関連を予め設定できることが実施の前提であった。しかし、実施例2では、この関連が予め設定できないアプリケーションプログラム3101に対しても、I/O解析プログラム1254を適用可能とする。具体的には、管理計算機は、サブプログラムページ関連発見プログラムに基づき、サブプログラム3102に関連するページを特定し、サブプログラムページ関連テーブル1101を更新する。
(2−2)計算機システムのハードウェア構成
実施例2の計算機システムは、管理計算機100A、ストレージシステム200、ホスト計算機300から構成され、これらは通信ネットワーク500及び通信ネットワーク550を介して相互に接続される。ここで、ストレージシステム200とホスト計算機300は図2と同じである。図23は実施例2の管理計算機100Aの構成の例を示し、ディスク120Aは、図3に示す管理計算機100がディスク120Aに展開されるプログラムとテーブルを記憶するとともに、サブプログラムページ関連発見プログラム1258を更に記憶する。
(2−3)サブプログラムページ関連の発見の動作の詳細
管理計算機100Aがディスク120Aに記憶するサブプログラムページ関連発見プログラムの動作を詳細に説明する。図24はサブプログラムページ関連発見プログラム1258のフローチャートの例を示す図である。管理計算機100Aは、定期的かつログファイル管理テーブル1203に含まれるイベントの情報(アプリケーション名欄120301、操作種別欄120302、サーバ名欄120303に示される情報の組み合わせ)毎に、イベントの情報を入力としてサブプログラムページ関連発見プログラム1258を実行する。
管理計算機100AのCPU150(以降、管理計算機100Aと省略する)は、まず、ログファイル管理テーブル1203より、入力されたイベントの情報に対応するすべてのログファイルIDをログファイルID欄120305から取得し、取得したログファイルIDに対応するログファイルデータ1202を特定する(ステップS7005)。次に、管理計算機100Aは、特定したログファイルデータ群1202から、1以上のサブプログラム3102を抽出する(ステップS7010)。ステップS7010の処理はステップS1010の処理と同様であるため、説明を省略する。
管理計算機100Aは、ステップS7010で抽出したサブプログラム3102毎に以降のステップS7020からステップS7050の処理をループ(A)として1又は複数回実行する(ステップS7015)。ステップS7020において管理計算機100Aは、ステップS7005で特定したログファイルデータ群1202のサブプログラム欄120203と時刻欄120202より、ステップS7015で選択しているサブプログラム3102に関する情報と対応する時刻情報を抽出する。具体的には、時刻情報はサブプログラム3102の開始時刻及び終了時刻を示している。
管理計算機100Aは、IOPS変移データ1103より、ステップS7020で抽出した時刻群におけるIOPS変移を抽出する。具体的には、サブプログラム3102の開始時刻からの終了時刻までのIOPS変移である。なお、ステップS7020において、サブプログラム3102の終了時刻が特定されていない場合は、ログファイルデータ1202に格納されている最終時刻までのIOPS変移である(ステップS7025)。
管理計算機100Aは、ページ毎に以降のステップS7035からステップS7045の処理をループ(B)として1又は複数回実行する(ステップS7030)。管理計算機100Aは、ステップS7035において、ステップS7030で選択したページに対し、サブプログラム3102の実行後に必ずアクセスが発生しているか、否かを判断する。具体的には、ステップS7025で抽出したIOPS変移群において、ページに対するIOPSがしきい値を超えない場合があるか、否かを判断する(ステップS7035)。なお、しきい値は、例えば、いずれのイベントも発生していない状態における当該ページに対するIOPS値などを用いればよい。
ステップS7035の判断の結果、すべてのIOPS変移のデータにおいて、ページに対してアクセスが発生しているならば、管理計算機100AはステップS7040を実行する。管理計算機100Aは、ステップS7040において、ステップS7030で選択したページに対して発生するアクセス量が変化するタイミングが一定であるか、否かを判断する。具体的には、管理計算機100Aは、ステップS7025で抽出したIOPS変移群に対して、ページ対して発生するアクセス量が変化するサブプログラム3102が実行されてからの経過時間を算出する。算出方法は、例えば、S1020と同様の処理を実行すればよい。次に、管理計算機100Aは、各IOPS変移群において、上記で算出したページに対するアクセス量が変化する、サブプログラム3102が実行されてからの経過時間にずれがないか、否かを判断する(ステップS7040)。経過時間のずれを検定する方法は、例えば、ステップS1010で利用する統計的検定手法を利用すればよい。
ステップS7040の判断の結果が肯定的であれば管理計算機100AはステップS7045を実行し、否定的であれば管理計算機100AはステップS7050を実行する。ステップS7045において管理計算機100Aは、入力として与えられたイベントの情報と、ステップS7015で選択されたサブプログラム3102と、ステップS7030で選択されたページの番号を、サブプログラムページ関連テーブル1101に格納する。なお、サブプログラムページ関連テーブル1101のデータID欄110105には空欄を示す情報を格納する。
ステップS7050において、管理計算機100Aはループ(B)の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100AはステップS7055を実行し、実行されていない場合、管理計算機100AはステップS7030に処理を戻す。ステップS7055において管理計算機100は、ループ(A)の対象のすべてのサブプログラム3102に対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機100Aはジョブ終了時I/O解析修正プログラム1258を終了し、実行されていない場合、管理計算機100AはステップS7030に処理を戻す。
以上で説明したように、サブプログラム3102とページの関連が明らかとなっていないアプリケーションプログラム3101においても、サブプログラムページ関連発見プログラム1258に基づき、サブプログラム3102に関連するページを特定し、サブプログラムページ関連テーブル1101を更新することでI/O解析を行う事が可能となる。
(3−1)本実施の形態の概要
実施例3の計算機システムについて、以下では実施例1と異なる部分のみを説明する。実施例1ではアプリケーションプログラム3101が利用するデータをストレージシステム200に配置していた。これに対して実施例3によれば、ホスト計算機内のディスクに対しても、アプリケーションプログラム3101が利用するデータを配置することが可能となり、アプリケーションプログラム3101に対する操作実施時のI/O解析に基づき、ページ階層制御を実施することができる。
(3−2)計算機システムのハードウェア構成
実施例3の計算機システムは、管理計算機100B、ストレージシステム200、ホスト計算機300Bから構成され、通信ネットワーク500及び通信ネットワーク550を介して相互に接続されている。ここで、ストレージシステム200は図4と同じである。図25は実施例3の管理計算機100Bの構成の例を示す図である。管理計算機100Bのディスク120Bは、図3に示す管理計算機100がディスク120に展開されるプログラムとテーブルを記憶するとともに、ディスク120Bに相対階層記憶管理テーブル1205を更に保持する。実施例3に係る管理計算機100Bのメモリ110、管理用I/F130、データ通信I/F140、CPU150及びメモリ110が記憶するプログラムとテーブルは、実施例1に係る管理計算機100の構成と同様であるため、説明を省略する。
ホスト計算機300Bのディスク320は、図5に示すホスト計算機300がディスク320に展開されるプログラムとテーブルを記憶するとともに、図4に示すストレージシステム200がメモリ220に記憶するI/O量監視プログラム2151とページ割り当て制御プログラム2152と同様のプログラムをディスク320に保持する。
なお、実施例3の計算機システムにおいては、図4に示すストレージシステム200が記憶領域250に記憶するアプリケーションプログラムが利用するデータの一部または全部を、ストレージシステム200の記憶領域250のみならず、ディスク320に記憶してもよく、図示を省略したホスト計算機300Bに接続された外付けストレージDAS(Direct Attached Storage)に記憶してもよい。すなわち、実施例3においてストレージシステム200の存在は必須ではない。さらに、実施例3の計算機システムにおいては、2以上のホスト計算機300Bの間で相互にデータの格納を行ってもよい。
実施例3のホスト計算機300Bのメモリ310、管理用I/F330、データ通信I/F340、CPU350及びメモリ310が記憶するプログラムとテーブルは、図5に示すホスト計算機300の構成と同様であるため、説明を省略する。
(3−3)各種テーブルの詳細
図26は管理計算機100Bのディスク120Bに記憶されている相対階層記憶管理テーブル1205の例を示す図である。相対階層記憶管理テーブル1205は、ホスト計算機300Bからデータアクセスを行った場合の、ストレージシステム200及びホスト計算機300Bが保持するTierを入出力性能の順に順序付けした情報である。
サーバ名欄120501にはアプリケーションプログラム3101が実行されるホスト計算機300Bの名称が格納される。相対TierID欄120502にはアプリケーションプログラム3101が実行されるホスト計算機300Bからアクセス可能な記憶領域であるTierの番号が格納される。相対TierID欄120502には、アプリケーションプログラム3101が実行されるホスト計算機300Bから見て入出力性能が高いTierほど、小さい番号が与えられる。Tier提供マシン名欄120503には、実際にTierを保持するストレージシステム200またはホスト計算機300Bの名称が格納される。
Tier ID欄120504には、実際にTierを保持するストレージシステム200またはホスト計算機300Bの内部でのTier番号が格納される。また、アプリケーションプログラム3101が実行されるホスト計算機300Bから見た入出力性能によって番号が決定される相対Tierに対し、ストレージシステム200またはホスト計算機300B内部において、TierID120504で番号付けされるTierを絶対Tierと表現する。なお、図26ではTier番号が小さいほど性能が高いとしたが、これに限定されるものではない。また、Tier番号ではなく、Tierを構成するメディアの名称をTier IDとして用いることもできる。
(3−4)各装置の動作の詳細
管理計算機100Bがディスク120Bに記憶する各プログラムにおいてTierの番号を参照する際には、相対階層記憶管理テーブル1205の相対TierID欄120502のTierの番号を参照する。さらに、管理計算機100Bが階層制御プランを作成する際には、相対階層記憶管理テーブル1205を基に、相対Tierから絶対Tierを判別し、絶対Tierを指定して階層制御タスクを生成する。
以上で説明したように、管理計算機100BはI/O解析の結果に基づき、ストレージシステム200とホスト計算機300Bが提供するすべてのTier間における階層制御プランを作成し、実行することができる。また、専用のストレージシステムが存在しない、すなわちサーバ内蔵もしくは外付けのストレージのみで構成された計算機システムにおいても階層制御プランを作成し、実行することができる。
100 管理計算機
200 ストレージシステム
300 ホスト計算機
1101 サブプログラム関連テーブル
1201 IOPS変移データ
3201 ログファイル

Claims (11)

  1. アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、
    前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、
    前記特定処理と前記記憶領域の対応に関する第1の情報を記憶する第1のステップと、
    前記特定処理の経時的なアクセスの動作に関する第2の情報を取得する第2のステップと、
    前記記憶領域の経時的なアクセス量に関する第3の情報を取得する第3のステップと、
    前記第1の情報に基づき前記第2の情報と前記第3の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第4のステップと、
    を有することを特徴とする階層記憶の制御方法。
  2. 前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前にアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する前記第4のステップを有することを特徴とする請求項1に記載の階層記憶の制御方法。
  3. 前記アクセス量の増加の時刻から前記記憶領域のデータの移動の時間を差し引くことにより前記移動時刻を決定する前記第4のステップを有することを特徴とする請求項2に記載の階層記憶の制御方法。
  4. 前記アクセス量の変化がアクセス量の減少の場合、前記アクセス量の減少の時刻にアクセス性能の高い記憶階層からアクセス性能の低い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する第4のステップを有することを特徴とする請求項1に記載の階層記憶の制御方法。
  5. 前記第2の情報と前記第3の情報を取得し、当該取得した第2の情報と第3の情報に基づき前記特定処理と前記記憶領域とを対応付けて前記第1の情報を生成し、前記生成した第1の情報を記憶する前記第1のステップを有することを特徴とする請求項1に記載の階層記憶の制御方法。
  6. 前記アプリケーションプログラムに対する操作と時間的関係を有する前記特定処理の経時的なアクセスの開始に関する第2の情報を取得する前記第2のステップを有することを特徴とする請求項1に記載の階層記憶の制御方法。
  7. 前記第1の情報に基づき前記第2の情報と前記第3の情報から前記操作の時刻に対する前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう前記操作の時刻を基準にした移動開始時刻を決定する第4のステップを有することを特徴とする請求項6に記載の階層記憶の制御方法。
  8. ストレージとホスト計算機と管理計算機を含む計算機システムであって、
    前記ストレージは、アクセス性能の異なる複数の記憶階層を有し、
    前記ホスト計算機は、前記記憶階層内の記憶領域へアクセスする特定処理を含むアプリケーションプログラムを実行し、
    前記管理計算機は、
    前記特定処理と前記記憶領域の対応に関する第1の情報を記憶し、
    前記ホスト計算機から前記特定処理の経時的なアクセスの動作に関する第2の情報を取得し、
    前記ストレージから前記記憶領域の経時的なアクセス量に関する第3の情報を取得し、
    前記第1の情報に基づき前記第2の情報と前記第3の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
    ことを特徴とする計算機システム。
  9. 前記管理計算機は、
    前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前に前記ストレージ内のアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定することを特徴とする請求項8に記載の計算機システム。
  10. 前記ホスト計算機は前記ストレージを含み、
    前記管理計算機は、
    前記ホスト計算機から前記第3の情報を取得し、
    前記第1の情報に基づき前記第2の情報と前記第3の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内の記憶階層間で移動するよう移動開始時刻を決定する、
    ことを特徴とする請求項8に記載の計算機システム。
  11. 前記ストレージは第1の記憶階層を含み、
    前記ホスト計算機は第2の記憶階層を含み、
    前記管理計算機は、
    前記ホスト計算機と前記ストレージから前記第3の情報を取得し、
    前記第1の情報に基づき前記第2の情報と前記第3の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内および/あるいは前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
    ことを特徴とする請求項8に記載の計算機システム。
JP2015557614A 2014-01-15 2014-01-15 計算機システムおよびその階層記憶の制御方法 Expired - Fee Related JP6100404B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/050514 WO2015107626A1 (ja) 2014-01-15 2014-01-15 計算機システムおよびその階層記憶の制御方法

Publications (2)

Publication Number Publication Date
JP6100404B2 JP6100404B2 (ja) 2017-03-22
JPWO2015107626A1 true JPWO2015107626A1 (ja) 2017-03-23

Family

ID=53542550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015557614A Expired - Fee Related JP6100404B2 (ja) 2014-01-15 2014-01-15 計算機システムおよびその階層記憶の制御方法

Country Status (6)

Country Link
US (1) US9778854B2 (ja)
JP (1) JP6100404B2 (ja)
CN (1) CN105164629B (ja)
DE (1) DE112014002303T5 (ja)
GB (1) GB2549244A (ja)
WO (1) WO2015107626A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017046902A1 (ja) * 2015-09-16 2017-03-23 株式会社日立製作所 管理システム、管理計算機、及び、ストレージ装置の管理方法
JP2018197933A (ja) * 2017-05-23 2018-12-13 富士通株式会社 ストレージ制御装置、情報処理システムおよびプログラム
JP6958311B2 (ja) * 2017-12-12 2021-11-02 富士通株式会社 情報処理装置、情報処理システムおよびプログラム
JP6684850B2 (ja) * 2018-05-16 2020-04-22 株式会社日立製作所 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071068A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp 記憶装置
JP2006072684A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd ストレージネットワークシステム及び管理サーバ、ホストとストレージ装置
JP2006164167A (ja) * 2004-12-10 2006-06-22 Hitachi Ltd ストレージ管理装置、計算機システム、ストレージ管理方法及びストレージ管理プログラム
JP2006301892A (ja) * 2005-04-20 2006-11-02 Sony Corp 階層ストレージ管理装置、方法、およびプログラム
JP2011192259A (ja) * 2010-03-16 2011-09-29 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置
JP2013105489A (ja) * 2011-11-15 2013-05-30 Lsi Corp 階層間の効率的なデータ移行を管理する装置
JP2013171474A (ja) * 2012-02-21 2013-09-02 Fuji Xerox Co Ltd 情報処理システム、情報処理装置及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4322031B2 (ja) * 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
JP2007066259A (ja) 2005-09-02 2007-03-15 Hitachi Ltd 計算機システムとストレージシステム並びにボリューム容量拡張方法
US8768883B2 (en) 2010-03-25 2014-07-01 Hitachi, Ltd. Storage apparatus and control method of the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071068A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp 記憶装置
JP2006072684A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd ストレージネットワークシステム及び管理サーバ、ホストとストレージ装置
JP2006164167A (ja) * 2004-12-10 2006-06-22 Hitachi Ltd ストレージ管理装置、計算機システム、ストレージ管理方法及びストレージ管理プログラム
JP2006301892A (ja) * 2005-04-20 2006-11-02 Sony Corp 階層ストレージ管理装置、方法、およびプログラム
JP2011192259A (ja) * 2010-03-16 2011-09-29 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置
JP2013105489A (ja) * 2011-11-15 2013-05-30 Lsi Corp 階層間の効率的なデータ移行を管理する装置
JP2013171474A (ja) * 2012-02-21 2013-09-02 Fuji Xerox Co Ltd 情報処理システム、情報処理装置及びプログラム

Also Published As

Publication number Publication date
CN105164629A (zh) 2015-12-16
US20160110117A1 (en) 2016-04-21
GB2549244A (en) 2017-10-18
GB201519399D0 (en) 2015-12-16
DE112014002303T5 (de) 2016-02-25
WO2015107626A1 (ja) 2015-07-23
US9778854B2 (en) 2017-10-03
CN105164629B (zh) 2018-05-22
JP6100404B2 (ja) 2017-03-22

Similar Documents

Publication Publication Date Title
JP5185445B2 (ja) ストレージシステム及びストレージシステムにおける使用容量管理方法
US8346934B2 (en) Method for executing migration between virtual servers and server system used for the same
US8429346B1 (en) Automated data relocation among storage tiers based on storage load
US10353616B1 (en) Managing data relocation in storage systems
JP5771280B2 (ja) 計算機システム及びストレージ管理方法
JP4922834B2 (ja) コンピュータシステムに存在するリソースの性能を監視する装置及び方法
US8495331B2 (en) Storage apparatus and storage management method for storing entries in management tables
JP5706531B2 (ja) 計算機システム、及び情報管理方法
JP5668151B2 (ja) 計算機システムの管理装置及び管理方法
US9274941B1 (en) Facilitating data migration between tiers
US9323459B1 (en) Techniques for dynamic data storage configuration in accordance with an allocation policy
JP5395962B2 (ja) 計算機システム、及びその管理方法、並びに、プログラム
US20110320754A1 (en) Management system for storage system and method for managing storage system
JP2013536478A (ja) ストレージシステム、及びその制御方法
JP2011186794A (ja) ストレージシステム内のデータの配置を制御する管理システム、及び、データ配置制御方法
JP2006268398A (ja) 計算機システム、データ管理方法およびプログラム
EP2404231A1 (en) Method, system and computer program product for managing the placement of storage data in a multi tier virtualized storage infrastructure
JP6100404B2 (ja) 計算機システムおよびその階層記憶の制御方法
US9304702B2 (en) System and method for parallelized performance data collection in a computing system
WO2013111331A1 (ja) 計算機システム
WO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
WO2015189988A1 (ja) ファイル再配置ポリシーを出力する管理サーバ、及びストレージシステム
WO2012039062A1 (ja) ストレージ装置における複数の記憶デバイスを複数の階層に振り分ける方法及びシステム
US20140058717A1 (en) Simulation system for simulating i/o performance of volume and simulation method
EP2584453A2 (en) Method and apparatus to change storage tiers

Legal Events

Date Code Title Description
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: 20170131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170222

R150 Certificate of patent or registration of utility model

Ref document number: 6100404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees