JPWO2013061382A1 - 計算機システム及びストレージ管理方法 - Google Patents

計算機システム及びストレージ管理方法 Download PDF

Info

Publication number
JPWO2013061382A1
JPWO2013061382A1 JP2013540511A JP2013540511A JPWO2013061382A1 JP WO2013061382 A1 JPWO2013061382 A1 JP WO2013061382A1 JP 2013540511 A JP2013540511 A JP 2013540511A JP 2013540511 A JP2013540511 A JP 2013540511A JP WO2013061382 A1 JPWO2013061382 A1 JP WO2013061382A1
Authority
JP
Japan
Prior art keywords
storage
data
hierarchical
management
information
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
JP2013540511A
Other languages
English (en)
Other versions
JP5771280B2 (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
Priority to JP2013540511A priority Critical patent/JP5771280B2/ja
Publication of JPWO2013061382A1 publication Critical patent/JPWO2013061382A1/ja
Application granted granted Critical
Publication of JP5771280B2 publication Critical patent/JP5771280B2/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file 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
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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

Abstract

アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置する。
ストレージ装置は、性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、ホスト計算機からのデータの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、前記制御部は、前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定し、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる。

Description

本発明は、計算機システム及びストレージ管理方法に関し、アプリケーションプログラムが使用するデータを階層管理する計算機システム及びストレージ管理方法に適用して好適なるものである。
最近では、情報システムが普及し、多様な領域で広く利用されるようになった。従来、人手で実施されていた作業も現在は情報システムに置き変わってきており、情報システムに期待される処理量も膨大になってきている。その結果、情報処理システムに課された処理が、目標とする時間までに完了できないことが課題となっている。
そこで、特許文献1では、重要度の高いアプリケーションプログラム(以降、アプリケーションプログラムを単にアプリケーションと称する。)に対し、当該アプリケーションにより使用されるデータを、適切な入出力性能を有する記憶装置にファイル単位で配置する技術が開示されている。特許文献1によれば、少なくとも優先度の高いアプリケーションについては、目標とする時間までに処理を完了することが可能となる。ここで、記憶装置が複数の異なる特性(入出力性能や信頼性など)を示す記憶領域を備える場合、それぞれの記憶領域を階層記憶と称し、複数の階層記憶のいずれかに計算機システムが使用するデータを配置する技術を階層記憶制御と称して以下説明する。
また、特許文献2では、記憶装置が装置内の仮想的な記憶領域に書き込まれたデータを、ファイルなどよりも細かい断片に分割して、指定された階層記憶に配置する。そして、記憶装置は、データが指定された階層記憶に配置された後に、ホスト計算機によって当該断片にアクセスされる頻度に応じて、適切な入出力性能を有する階層記憶の当該断片を再配置する技術が開示されている。特許文献2によれば、一般的に高価な入出力性能の高い階層記憶(上位階層記憶と称する。)に、その性能が必要なデータのみを配置することが可能となり、これにより高価な上位階層記憶の利用を最小にして、上位階層記憶の入出力性能と同様の性能を期待することができる。
特開平5−173873号公報 特開2007−066259号公報
しかし、特許文献1では、優先度の高いアプリケーションのデータを上位階層記憶に配置することができるが、ファイルよりも細かな単位で階層記憶制御を実行することができないため、ファイル内でアクセス頻度の低い断片があっても、当該ファイルは上位階層記憶に配置されてしまうため、無駄に上位階層記憶が消費されてしまうという課題があった。また、特許文献2では、アプリケーションのデータのうち、ホスト計算機に頻繁に参照される断片のみを上位階層記憶に配置することができるが、データの参照頻度に応じた階層記憶制御であるため、アプリケーションの優先度に応じた階層記憶制御をすることができないという課題があった。
本発明は以上の点を考慮してなされたもので、アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置することが可能な計算機システム及びストレージ管理方法を提案しようとするものである。
かかる課題を解決するために本発明においては、ストレージ装置と、前記ストレージ装置へのデータの書き込みを要求するホスト計算機と、前記ストレージ装置と前記ホスト計算機とを管理する管理計算機と、がネットワークを介してそれぞれ相互に接続された計算機システムであって、前記ストレージ装置は、前記性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、前記ホスト計算機からの前記データの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、前記制御部は、前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定し、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させることを特徴とする、計算機システムが提供される。
かかる構成によれば、アプリケーションが使用するデータのファイル編成を管理計算機で管理することで、ファイル編成の特性を利用して、アプリケーションのデータ使用特性を引き出すことが可能となり、OSなどで管理するファイルなどの単位よりも細やかな階層制御を実現することができる。これにより、アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置して、使用者が求める高い入出力性能を提供することが可能となる。
本発明によれば、アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置して、効率的に記憶装置を利用することができる。
本発明の第1の実施形態に係る計算機システムのハードウェア構成を示すブロック図である。 同実施形態にかかる管理計算機の構成を示すブロック図である。 同実施形態にかかるホスト計算の構成を示すブロック図である。 同実施形態にかかるストレージ装置の構成を示すブロック図である。 同実施形態にかかる計算機システムの処理の概要を説明する概念図である。 同実施形態にかかる階層記憶制御の概要を説明する概念図である。 同実施形態にかかる階層記憶制御の概要を説明する概念図である。 同実施形態にかかる実行中ジョブ管理テーブルの内容を示す図表である。 同実施形態にかかる制御対象データ管理テーブルの内容を示す図表である。 同実施形態にかかるユーザ設定情報管理テーブルの内容を示す図表である。 同実施形態にかかる入出力頻度管理テーブルの内容を示す図表である。 同実施形態にかかる階層記憶利用状況管理テーブルの内容を示す図表である。 同実施形態にかかる階層テーブルの内容を示す図表である。 同実施形態にかかるホスト構成管理テーブルの内容を示す図表である。 同実施形態にかかる過去階層保持テーブルの内容を示す図表である。 同実施形態にかかるボリューム管理情報の内容を示す図表である。 同実施形態にかかる仮想論理ボリューム管理情報の内容を示す図表である。 同実施形態にかかる階層記憶プール管理情報の内容を示す図表である。 同実施形態にかかるストレージ基本情報の内容を示す図表である。 同実施形態にかかるストレージ情報テーブルの内容を示す図表である。 同実施形態にかかるIO要求の内容を示す図表である。 同実施形態にかかるデータアクセス処理の処理手順を示すフローチャートである。 同実施形態にかかるプールからのページ割り当て処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶制御処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶制御要求処理の処理手順を示すフローチャートである。 同実施形態にかかるアプリケーション及びジョブの概念について説明する概念図である 同実施形態にかかる環境構築段階の動作の詳細を示すフローチャートである。 同実施形態にかかる管理計算機100の入力画面の一例を示す図表である。 同実施形態にかかる階層記憶割り当て動作を示すフローチャートである。 同実施形態にかかる細粒度階層記憶割り当て処理の処理手順を示すフローチャートである。 同実施形態にかかる過去データセット割り当て階層記憶再現処理の処理手順を示すフローチャートである。 同実施形態にかかる横取り処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶の優先度変更処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶割り当て解除処理の処理手順を示すフローチャートである。 同実施形態にかかる仮想テープシステムのハードウェア構成を示すブロック図である。 同実施形態にかかるテープフォーマットのデータを示す概念図である。 同実施形態にかかる入出力頻度管理テーブルの内容を示す図表である。
以下図面について、本発明の一実施の形態を詳述する。
なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、コントローラに含まれるプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する管理システム(例えば、表示用計算機(例えばクライアント)又は管理用計算機(例えばサーバ))が行う処理としても良い。また、コントローラは、プロセッサそれ自体であっても良いし、コントローラが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムは、プログラムソースから各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインターフェースやイーサーネットインターフェース(イーサーネットは登録商標)を入出力デバイスとし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入力デバイスでの入力及び表示を代替してもよい。
以後、計算機システムを管理し、ストレージシステムを管理制御する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである。また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
また、以下の説明では、「時刻」という言葉を用いるが、時刻は年、月、日といった情報も指し示しても良く、当然ながら時、分、秒(含む小数点以下の秒)を指し示しても良い。
(1)第1の実施の形態
(1−1)本実施の形態の概要
最近では、情報システムが普及し、多様な領域で広く利用されるようになった。従来、人手で実施されていた作業も現在は情報システムに置き変わってきており、情報システムに期待される処理量も膨大になってきている。その結果、情報処理システムに課された処理が、目標とする時間までに完了できないことが課題となっている。
そこで、重要度の高いアプリケーションプログラム(以降、アプリケーションプログラムを単にアプリケーションと称する。)に対し、当該アプリケーションにより使用されるデータを、適切な入出力性能を有する記憶装置にファイル単位で配置する技術が開示されている。当該技術によれば、少なくとも優先度の高いアプリケーションについては、目標とする時間までに処理を完了することが可能となる。ここで、記憶装置が複数の異なる特性(入出力性能や信頼性など)を示す記憶領域を備える場合、それぞれの記憶領域を階層記憶と称し、複数の階層記憶のいずれかに計算機システムが使用するデータを配置する技術を階層記憶制御と称して以下説明する。
また、記憶装置が装置内の仮想的な記憶領域に書き込まれたデータを、ファイルなどよりも細かい断片に分割して、指定された階層記憶に配置する技術が開示されている。さらに、記憶装置は、データが指定された階層記憶に配置された後に、ホスト計算機によって当該断片にアクセスされる頻度に応じて、適切な入出力性能を有する階層記憶の当該断片が再配置される。当該技術によれば、一般的に高価な入出力性能の高い階層記憶(上位階層記憶と称する。)に、その性能が必要なデータのみを配置することが可能となり、これにより高価な上位階層記憶の利用を最小にして、上位階層記憶の入出力性能と同様の性能を期待することができる。
しかし、上記した前段の技術では、優先度の高いアプリケーションのデータを上位階層記憶に配置することができるが、ファイルよりも細かな単位で階層記憶制御を実行することができない。このため、ファイル内でアクセス頻度の低い断片があっても、当該ファイルは上位階層記憶に配置されてしまうため、無駄に上位階層記憶が消費されてしまうという課題があった。また、上記した後段のアプリケーションのデータのうち、ホスト計算機に頻繁に参照される断片のみを上位階層記憶に配置することができるが、データの参照頻度に応じた階層記憶制御であるため、アプリケーションの優先度に応じた階層記憶制御をすることができないという課題があった。例えば、応答時間が短いことが重要なデータであっても、参照頻度が低い場合には低位の階層記憶に配置されてしまったり、優先度が低いアプリケーションであっても、参照頻度が高い場合には上位の階層記憶に配置されてしまったりするため、効率的な階層記憶制御が実現できなかった。
そこで、本実施の形態では、アプリケーションの優先度や特性に応じて、ファイルよりも細かな単位でデータを階層記憶に配置することを可能としている。これにより、無駄な階層記憶を消費することなく、指定されたアプリケーションに対し、同一の性能、同一の実行時間、同一のトランザクション性能を提供することを可能とした。
(1−2)計算機システムのハードウェア構成
図1に、計算機システム10のハードウェア構成を示す。計算機システム10は、管理計算機100、ホスト計算機200及びストレージ装置300から構成される。計算機システム10において、管理計算機100及びホスト計算機200は、同一計算機であってもよいし、それぞれ1台であってもよいし、複数台であってもよい。また、計算機システム10において、ストレージ装置300は、1台であってもよいし、複数台であってもよい。
管理計算機100、ホスト計算機200及びストレージ装置300は、通信ネットワーク(例えばSAN(Storage Area Network))500を介して相互に接続される。また、管理計算機100は、ホスト計算機200及びストレージ装置300に、通信ネットワーク(例えばLAN(Local Area Network))550を介して接続される。
図2に、管理計算機100の構成を示す。管理計算機100は、メモリ110、プロセッサ120及びIO処理部130を有する計算機である。メモリ110、プロセッサ120及びIO処理部130は、内部ネットワーク(図示省略)を介して相互に接続されている。
プロセッサ120は、メモリ110に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ120は、ストレージ装置300にIO要求を送信することによって、ストレージ装置300によって実行される階層記憶を制御する。IO要求は、例えば、データアクセス指示又は階層制御指示などを含む。IO要求については、後で詳細に説明する。
メモリ110には、プロセッサ120によって実行されるプログラム及びプロセッサ120によって必要とされる情報等が記憶されている。具体的には、メモリ110には、ストレージ管理プログラム111、実行中ジョブ管理テーブル112、制御対象データ管理テーブル113、ユーザ設定情報管理テーブル114、入出力頻度管理テーブル115、階層記憶利用状況管理テーブル116、階層テーブル117、ホスト構成管理テーブル118、過去階層保持テーブル119及びストレージ情報テーブル101が記憶されている。更に、メモリ110には、OS(Operating System)及びアプリケーションプログラム(AP)が記憶されても良い。
ストレージ管理プログラム111は、ストレージ装置300を管理するためのプログラムである。実行中ジョブ管理テーブル112は、後述するジョブを管理するための情報である。制御対象データ管理テーブル113は、ジョブにより使用されるデータに関する情報である。ユーザ設定情報管理テーブル114は、制御対象のデータに関して、計算機システム10の使用者によりあらかじめ設定された情報である。入出力頻度管理テーブル115は、アプリケーションの参照特性に関する情報である。階層記憶利用状況管理テーブル116は、後述する階層記憶の利用状況に関する情報などを保持する情報である。階層テーブル117は、指定した論理ボリュームが後述する階層記憶制御によってどの実ボリュームに配置されているかを保持するテーブルである。この階層テーブル117は、正ボリュームに割り当てられている実記憶領域を有する記憶媒体の特性を特定することのできる特性情報である。ホスト構成管理テーブル118は、後述する階層制御対象となるアプリケーションのデータを使用するホスト計算機管理用の情報である。過去階層保持テーブル119は、過去にジョブが実行された際に当該ジョブが使用したデータセットに割り当てられていた階層記憶を復元するための情報である。ストレージ情報テーブル101は、管理計算機100によって管理されるストレージ装置300に関する情報である。メモリ110に記憶されている各種テーブルについては、後で詳細に説明する。
IO処理部130は、通信ネットワーク500を介してホスト計算機200及びストレージ装置300に接続されるインターフェースである。
図3にホスト計算機200の構成を示す。ホスト計算機200は、メモリ210、プロセッサ220及びIO処理部230を有する計算機である。メモリ210、プロセッサ220及びIO処理部230は、内部ネットワーク(図示省略)を介して相互に接続されている。
プロセッサ220は、メモリ210に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ220は、ストレージ装置300にIO要求を送信することによって、そのストレージ装置300で管理される論理ボリューム(実論理ボリューム、仮想論理ボリューム)のデータにアクセスする。
メモリ210には、プロセッサ220によって実行されるプログラム及びプロセッサ220によって必要とされる情報等が記憶される。具体的には、メモリ210には、1か複数のアプリケーションプログラム211、OS212及びエージェントプログラム213が記憶される。
アプリケーションプログラム211は、各種処理を実行する。例えば、アプリケーションプログラム211は、データベース機能又はメールサーバ機能を提供する。OS212は、ホスト計算機200の処理の全体を制御する。エージェントプログラム213は、管理計算機100からの指示を受け付ける。
IO処理部230は、通信ネットワーク500を介して管理計算機100及びストレージ装置300と通信するためのインターフェースである。具体的には、例えば、IO処理部230は、ストレージ装置300にIO要求を送信する。
図4にストレージ装置300の構成を示す。ストレージ装置300は、記憶制御装置1000、複数のディスクドライブ1500及び管理端末1600を備える。図4では、管理端末1600は、ストレージ装置300内において記憶制御装置1000に直接的に接続されているが、通信ネットワーク500及び550のうちの少なくとも一つを介してストレージ装置300に接続されていてもよい。記憶制御装置1000と、複数のディスクドライブ1500とは内部ネットワークを介して相互に接続されている。
ディスクドライブ1500は、ディスク型の記憶メディアのドライブであり、ホスト計算機200から書き込み要求されたデータを記憶する。ストレージ装置300では、ディスクドライブ1500に加えて、又は、ディスクドライブ1500に代えて、他種の記憶メディアを有する記憶デバイス(例えばフラッシュメモリドライブ)を備えてもよい。
記憶制御装置1000は、ストレージ装置300の動作を制御する。例えば、記憶制御装置1000は、ディスクドライブ1500へのデータの書き込み及びディスクドライブ1500からのデータの読み出しを制御する。また、記憶制御装置1000は、1つ以上の論理ボリュームを管理計算機100、及び、ホスト計算機200に提供する。1つ以上の論理ボリュームは、実ボリュームと仮想ボリュームのいずれか一方から構成される。実ボリュームは1つ以上のディスクドライブ1500の記憶空間を基に形成された論理的な1つ以上の記憶領域である。また、仮想ボリュームは、当該実ボリュームの一部の領域を利用する仮想的なボリュームである。実ボリューム及び仮想ボリュームについては、後で詳細に説明する。
記憶制御装置1000は、キャッシュメモリ1100、共有メモリ1200、入出力制御部1300及びディスク制御部1400を備える。キャッシュメモリ1100、共有メモリ1200、入出力制御部1300及びディスク制御部1400は、内部ネットワーク(図示省略)を介して相互に接続されている。
キャッシュメモリ1100は、ディスクドライブ1500へ書き込まれるデータ及びディスクドライブ1500から読み出されるデータを、一時的に記憶する。ディスク制御部1400は、ディスクドライブ1500へのデータの書き込み及びディスクドライブ1500からのデータの読み出しを制御する。また、ディスク制御部1400は、1つ以上のディスクドライブ1500の記憶空間から実ボリュームを生成する。
入出力制御部1300は、プロセッサ1310、IO送受信部1320及びメモリ1330を備える。プロセッサ1310、IO送受信部1320及びメモリ1330は、内部ネットワーク(図示省略)を介して相互に接続されている。IO送受信部1320は、通信ネットワーク500を介して他の装置(例えば、管理計算機100、ホスト計算機200及び他のストレージ装置300の少なくとも一つ)と通信するインターフェースである。具体的には、例えば、IO送受信部1320は、管理計算機100又はホスト計算機200からIO要求を受信する。また、IO送受信部1320は、ディスクドライブ1500から読み出されたデータを、管理計算機100又はホスト計算機200に送信する。プロセッサ1310は、メモリ1330又は共有メモリ1200に記憶されるプログラムを実行することによって、各種処理を行う。具体的には、例えば、プロセッサ1310は、IO送受信部1320によって受信されたIO要求を処理する。メモリ1330には、プロセッサ1310によって実行されるプログラム及びプロセッサ1310によって必要とされる情報等が記憶されている。
共有メモリ1200には、プロセッサ1310によって実行されるプログラム及びプロセッサ1310によって必要とされる情報等が記憶される。更に、共有メモリ1200には、ディスク制御部1400によって実行されるプログラム及びディスク制御部1400によって必要とされる情報等が記憶されている。具体的には、例えば、共有メモリ1200には、仮想ボリューム処理プログラム1220、入出力処理プログラム1240、ボリューム管理情報1250、仮想論理ボリューム管理情報1270及び階層記憶プール管理情報1290が記憶されている。
仮想ボリューム処理プログラム1220は、仮想ボリュームに対する処理を実行するプログラムである。コピー処理プログラム1230は、ローカルコピーを行うプログラムである。入出力処理プログラム1240は、IO送受信部1320によって受信されたIO要求を処理するプログラムである。
ボリューム管理情報1250は、ストレージ装置300によって提供される論理ボリュームを管理するための情報である。仮想論理ボリューム管理情報1270は、仮想論理ボリュームの仮想的な記憶領域と実ボリュームの割当領域(実記憶領域)の対応情報である。階層記憶プール管理情報1290は、仮想論理ボリュームに割り当て可能な論理ボリュームを管理するための情報である。共有メモリ1200に記憶されている各種管理情報については、後で詳細に説明する。
管理端末1600は、プロセッサ、メモリ及びインターフェース(図示省略)を備える計算機である。管理端末1600は、システム使用者(ユーザ)から入力された情報を、ストレージ装置300の記憶制御装置1000に送信する。
(1−3)計算機システムの処理の概要
次に、図5を参照して、計算機システム10の処理の概要について説明する。はじめに、本実施の形態で前提となる論理ボリューム、実論理ボリューム、仮想論理ボリュームの関係を説明する。
図5は、ストレージ装置300がホスト計算機200に20GBと10GBの2つの論理ボリュームを提供する際の、ストレージ装置300の動作を示している。論理ボリュームは実ボリューム、仮想ボリュームのいずれか一方から構成される。本実施の形態では、実ボリュームと仮想ボリュームとを区別するために、実ボリュームから構成される論理ボリュームを実論理ボリューム、仮想ボリュームから構成される論理ボリュームを仮想論理ボリュームと称して以下説明する。
図5では、Vol2が実論理ボリュームに該当し、Vol1が仮想論理ボリュームに該当する。実ボリュームは1つ以上のディスクドライブ1500の記憶領域から形成される論理的な1つ以上の記憶領域である。本実施の形態におけるストレージ装置300は、複数の異なる特性を備えた実ボリュームを有する。特性の違いとは、例えば、半導体ドライブ(例SSD:Solid State Drive)、磁性体ドライブ(例HDD:Hard Disk Drive)などの記憶素子の違い、FC、SAS、SATAなどのインターフェースの違いや、ディスクドライブから記憶領域を形成する方法(RAIDレベルなど)の違いを意味する。この特性の違いにより、データを読み書きするために必要となる時間や、ハードウェア障害からの回復の可能性が異なってくる。
ここで、RAIDとは、Redundant Array of Inexpensive Disksの略である。また、RAIDレベルとは、実ボリュームの信頼性や性能の分類である。RAIDレベルは、データの記録方法により分類される。具体的には、RAIDレベルは、ホスト計算機200から書き込まれたデータを分割・複製することでデータの断片を複数のディスクドライブ1500に分散、かつ、重複して保持したり、データを復元するために必要なパリティなどのデータを生成しホスト計算機200のデータと同時に保持したり、などの違いにより分類される。
仮想論理ボリュームは、当該仮想論理ボリュームに更新のあった領域分のデータだけを実ボリュームに保存する仮想的なボリュームである。図5では、その一例として、ホスト計算機200からのデータIO要求で仮想論理ボリューム(Vol1)の1つの領域に、データ要素D3が記憶されている。実際には、その領域(データ要素D3)に割り当てられた実ボリュームの記憶領域の断片(P3)にデータ要素D3が記憶される。このように、仮想論理ボリュームへの読み、書きで実ボリュームに割り当てられた「記憶領域の断片」を、以後、「ページ」とよび、ページに記憶されるデータ(言い換えれば、ページの割当て先の仮想領域に記憶されるデータ)を、「データ要素」とよぶ。
図5では、ページP3は、実ボリューム(Vol13)から提供される。また、通常、ホスト計算機200からアクセスされる実論理ボリューム用の実ボリュームと、仮想論理ボリューム用の実ボリュームとを区別するために、ストレージ装置300では、仮想論理ボリューム用の実ボリュームは特別なグループ(以下、「プール」とよぶ)に登録し、管理される。プールには特性の異なる1又は複数の実ボリュームが特性情報とともに登録される。
また、ストレージ装置300では仮想論理ボリュームにおいて、実ボリュームの特性情報を基に、プール内で特性の異なる実ボリューム間でページ上のデータ要素を移動させる。このような処理を、以下では、階層記憶制御と称して説明する。また、ページ上のデータ要素を実ボリューム間で移動させる処理を単にページ移動とよぶ。
階層記憶制御の動作例について、図5を参照して説明する。ストレージ装置300では、ホスト計算機200によるデータの読み書きの応答時間の違いを特性情報(図5では、高性能や、中性能)として管理しているものとする。ここで、ホスト計算機200からページD2へのデータアクセス頻度が過去との比較で高まったと判断した場合、ストレージ装置300は、低性能(Vol11)から中性能(Vol12)な実ボリュームにページD2を移動させる。上記のようなページ移動を実施することで、ストレージ装置300は、ホスト計算機200がデータにアクセスする頻度に応じ、適切な性能の論理ボリュームを提供することができる。
以上のように、階層記憶制御においては、プール内の特性の異なる実ボリューム間でページの移動を実施する。なお、本実施の形態では階層記憶制御でページ移動の鍵となる実ボリュームの特性の違いを「階層」の違いと表記することにする。また、以降、本発明の実施の形態では特に断らない限り3階層で説明する。ただし、本発明の実施の形態は3階層に限定されるものではない。
次に図6A及び図6Bを参照して、本実施の形態におけるアプリケーションの優先度や特性に基づく階層記憶制御の概要を説明する。
図6Aは、ホスト計算機200によるストレージ装置300へのデータ参照処理を示した概念図である。また、図6Bは、ホスト計算機200により参照されたデータが、ストレージ装置300内でどのように配置されるかを示した概念図である。
ホスト計算機200は、アプリケーションが必要とするストレージ装置300内の論理ボリュームに配置されたデータを参照する場合、次のように動作する。
図6Aに示すように、ホスト計算機200は、参照対象のデータがどのような構成で配置されているかが規定されるファイル編成情報を、OSまたはボリュームの特定領域(VTOC:Volume Table of Contentsなど)から取得する。
次に、ホスト計算機200は、OSまたはVTOCから得られた情報を基に、データアクセスを開始する。ここで、ファイル編成には索引編成、順編成、区分編成、仮想記憶アクセス編成、直接編成などがあり、アプリケーションのデータ参照特性に合わせ適切な編成が選択されている。言い換えると、アプリケーションのデータ参照特性はファイル編成を知ることで、ある程度予測することができる。
図6Aでは、データ参照特性の一例として、ファイル編成が索引編成の場合を示している。索引編成の場合、データは索引領域とデータ領域に分かれている。索引領域には、論理的に分割されたデータの断片(レコード)の配置アドレスが1つか複数個保存される。データ領域には、実際のデータ断片が保存される。図6Aでは、ホスト計算機200は、はじめに索引領域を参照し、対象とするレコードの配置アドレスを取得する。次に、ホスト計算機200は、取得したアドレスを指定し、対象とするレコードを参照する。
このように、索引編成で論理ボリューム上のデータが参照される場合、索引領域が必ずホスト計算機200から参照され、次に目的とする任意のレコードが参照される。すなわち、索引編成の場合、データの中でも特に索引領域が高頻度に参照される。その一方で索引編成の場合、データ領域はアプリケーションで必要となるレコードが任意に参照されるため、データ領域上のどの部位(レコード)が高頻度に参照されるか不定となる。
データのファイル編成が索引編成であるため、高頻度に参照される索引領域が高速に参照できることが好ましい。そこで、図6Bに示すように、当該索引領域上のデータを上位階層記憶に割り当て、以後の階層制御によってページ移動を起こさないようにする。このページ移動後に階層制御によりページを移動させない処理をページロックと称して以下説明する。一方、データ領域上のデータの参照頻度はアプリケーション動作に基づくもので静的には特定が難しいため、従来の階層記憶制御処理に従い配置する。すなわち、データ領域上のデータについて、データ配置後の参照頻度に基づいたページ移動により、性能の適正化を実現している。
このように、本実施の形態におけるアプリケーションの優先度や特性に基づく階層記憶制御では、データのファイル編成から、静的に判定可能なデータ部位別の参照頻度を特定する。そして、参照頻度が高い領域のデータを上位階層記憶に割り当てて、当該データ要素をページロックする。このような処理を実行することにより、優先度の高いアプリケーションで、あらかじめ高いIO処理性能が必要であることがわかっているような場合、特に参照頻度の高いデータ領域を高速に参照可能なように制御することができる。
(1−4)各種テーブルの内容
図7は管理計算機100のメモリ110に記憶されている実行中ジョブ管理テーブル112の内容を示す図表である。実行中ジョブ管理テーブル112は、実行中のジョブを管理するテーブルであって、図7に示すように、ジョブ名欄11201、データセット名欄11202、制御領域欄11203、優先度欄11204及び開始時刻欄11205から構成される。
ジョブ名欄11201には、ホスト計算機200上で動作するOSがアプリケーションを実行する時に使用するジョブの名称が格納される。データセット名欄11202には、ジョブ名欄11201のジョブで起動されるアプリケーションが使用するデータセットの名称が格納される。制御領域欄11203には、管理計算機100による階層制御対象となる論理ボリューム上の領域に関する情報が格納される。例えば、先頭シリンダ、ヘッダ、最後尾シリンダまたはヘッダなどが格納される。優先度欄11204には、階層制御を対象とする場合の優先度の情報が格納される。開始時刻欄11205には、ジョブが実行された時刻が格納される。
図8は、管理計算機100のメモリ110に記憶されている制御対象データ管理テーブル113の内容を示す図表である。制御対象データ管理テーブル113は、ジョブにより使用されるデータに関する情報であって、図8に示すように、データセット名欄11301、デバイスID欄11302、格納アドレス(格納ADR)欄11303、ファイル編成欄11304、ファイル編成詳細欄11305及び過去階層ポインタ欄11306から構成される。
データセット名欄11301には、ホスト計算機200上で主に動作するアプリケーションが使用するデータで、特にメインフレームOSで管理される論理的な単位であるデータセットの名称が格納される。オープンシステムでは、例えば、ファイル名がデータセット名に相当する。デバイスID欄11302には、当該データセットが配置される論理ボリュームをホスト計算機200上のOSが一意に識別するための識別子(例えばデバイス番号など)が格納される。格納アドレス(格納ADR)11303欄には、データセットの格納デバイスIDのアドレスが格納される。具体的には、後述するホスト構成管理テーブル118の格納デバイスID欄1183のアドレスがデバイスID欄11302に格納される。例えば、当該データセットの先頭シリンダ、ヘッダ数、および、最後尾シリンダ、ヘッダ数が格納される。通信ネットワーク500がSCSI(Small Computer System Interface)の場合はLBA(Logical Block Address)であっても構わない。ファイル編成欄11304には、データセットに設定されているファイル編成の名称が格納される。ファイル編成詳細欄11305には、ファイル編成に基づき階層制御対象とする領域の情報が格納される。例えば、先頭シリンダ、ヘッダ、最後尾シリンダ、ヘッダで表される。過去階層ポインタ欄11306には、後述する過去階層保持テーブル119を参照するためのポインタが格納される。過去階層保持テーブル119は、後述するように、過去にジョブが実行された際に、当該ジョブが使用したデータセットに割り当てられていた階層記憶を復元するための情報を管理するテーブルである。
図9は、管理計算機100のメモリ110に記憶されるユーザ設定情報管理テーブル114の内容を示す図表である。ユーザ設定情報管理テーブル114は、制御対象のデータに関して、計算機システム10の使用者によりあらかじめ設定された情報であって、図9に示すように、項目優先度欄11401、項目欄11402、設定内容欄11403及び階層記憶優先度欄11404から構成される。
項目優先度欄11401には、後述の初期設定で管理計算機100の使用者により設定された複数の項目における優先度が格納される。項目欄11402には、当該使用者により指定された項目が格納される。項目には、例えば、時刻、ジョブ名、ジョブクラス、データセット名、ユーザ名などを例示できる。設定内容11403欄には、指定された項目11402の内容が格納される。例えば時刻の場合はT3からT4といった時刻範囲が指定される。階層記憶優先度11404欄には、使用者により指定された項目に該当するデータセットが優先度の高いものなのか否かの情報が格納される。
図10は、管理計算機100のメモリ110に記憶される入出力頻度管理テーブル115の内容を示す図表である。入出力頻度管理テーブル115は、アプリケーションの参照特性に関する情報であって、図10に示すように、ファイル編成欄11501、高頻度入出力1欄11502、高頻度入出力2欄11503及び取得方法欄11504から構成される。
ファイル編成欄11501には、制御対象のデータセットに設定されているファイル編成の名称が格納される。高頻度入出力1欄11502には、当該ファイル編成で最も高頻度にデータが参照される領域の情報が格納される。高頻度入出力2欄11502は、当該ファイル編成で高頻度入出力1の次に高頻度にデータが参照される領域の情報が格納される。
ここで、ファイル編成が、仮想記憶アクセス編成(VSAMともよばれる)の場合の、高頻度入出力欄1及び2に設定される情報について説明する。仮想記憶アクセス編成は、高い入出力性能が必要なアプリケーションであるデータベースで利用されるファイル編成である。当該編成のデータ参照には、データセット全体に高い入出力性能が求められ、その中でも特にIndex領域に高い入出力性能が求められる。そこで、高頻度入出力1にはIndexを、高頻度入出力2にはデータセット全体を登録する。取得方法11504欄には、当該高頻度入出力領域の論理ボリューム上の領域を取得するために必要となる手段(OS utility1)の情報が格納される。
図11は、管理計算機100のメモリ110に記憶される階層記憶利用状況管理テーブル116の内容を示す図表である。階層記憶利用状況管理テーブル116は、階層記憶の利用状況に関する情報などを保持する情報であって、階層番号欄11601、全体容量欄11602、空き容量欄11603、ページロック済み容量(高優先)欄11604及びページロック済み容量(低優先)欄11605から構成される。
階層番号欄11601には、後述する階層記憶の番号が格納される。例えば、本実施の形態では、この階層番号11601の値が小さいものほど、性能が高い階層記憶であることを示す。全体容量欄11602には、ストレージ装置300内の階層番号に対応する階層記憶の全容量の情報が格納される。空き容量欄11603には、当該階層記憶において未だ階層制御対象ではない容量の情報が格納される。ページロック済み容量欄116には、本実施の形態で使用されるページロック制御が実施されている領域の情報が格納され、優先度の高いジョブ向けに割り当てた階層記憶の容量が高優先欄11604に格納され、優先度の低いジョブ向けに割り当てた階層記憶の容量が低優先欄11605に格納される。
図12は、管理計算機100のメモリ110に記憶される階層テーブル117の内容を示す図表である。階層テーブル117は、複数のアドレスマップから構成され、アドレスマップは仮想アドレス欄11702及び階層番号欄11703から構成される。仮想アドレス欄11702には、仮想ボリュームの領域を示す情報が格納される。階層番号欄11703には、後述する階層記憶の番号が格納される。
図13は、管理計算機100のメモリ110に記憶されるホスト構成管理テーブル118の内容を示す図表である。ホスト構成管理テーブル118は、階層制御の対象となるアプリケーションのデータを使用するホスト計算機200を管理するためのテーブルであって、図13に示すように、ホストID欄1181、データセット名欄1182、格納デバイス欄ID1183、格納アドレス(格納ADR)欄1184、ストレージID欄1185及びボリュームID欄1186から構成される。
ホストID1181欄には、ホスト計算機200を識別する識別子が格納される。例えば、ホストID1181欄には、TCP/IPのHost NameとIPアドレスとの組み合わせが格納される。データセット名欄1182には、ホスト計算機200で主に動作するアプリケーションが使用するデータで、特にメインフレームOSで管理される論理的な単位であるデータセットの名称が格納される。例えば、オープンシステムではファイル名がデータセットに相当する。格納デバイスID欄1183には、当該データセットが配置されている論理ボリュームを、ホスト計算機200上のOSが一意に識別するための識別子(例えばデバイス番号など)が格納される。格納アドレス1184欄には、対応するデータセットが配置されている格納デバイスID1183欄に対応するアドレスが格納される。例えば、当該データセットの先頭シリンダ、ヘッダ数、および、最後尾シリンダ、ヘッダ数が格納される。SCSIなどの場合はLBA(Logical Block Address)であっても構わない。ストレージID欄1185には、管理計算機100によって管理されるストレージ装置300を識別するための識別子が格納される。ボリュームID欄1186には、ストレージID欄1185によって識別されるストレージ装置300が付与した論理ボリュームを識別するための識別子が格納される。
図14は、管理計算機100のメモリ110に記憶されている過去階層保持テーブル119の内容を示す図表である。過去階層保持テーブル119は、指定した論理ボリュームが階層記憶制御によってどのボリュームに配置されているかを管理するテーブルであって、図14に示すように、データセット名欄11901及びアドレスマップから構成され、アドレスマップはさらに仮想アドレス欄11902及び階層番号欄11903から構成される。
データセット名欄11901には、ホスト計算機200で主に動作するアプリケーションが使用するデータで、特にメインフレームOSで管理される論理的な単位であるデータセットの名称が格納される。仮想アドレス欄11902には、ストレージ装置300が仮想ボリュームを識別するために使用する識別子が格納される。階層番号欄11903には、後述する階層記憶の番号が格納される。
図15は、ストレージ装置300の共有メモリ1200に記憶されるボリューム管理情報1250の内容を示す図表である。ボリューム管理情報1250は、論理ボリュームを管理するための情報であって、図15に示すように、論理ボリュームID欄12501、ボリューム状態欄12502、容量欄12503、実ボリュームID欄12506及び仮想フラグ欄12507から構成される。
論理ボリュームID欄12501には、ボリューム管理情報1250を記憶するストレージ装置300によって提供される論理ボリュームを識別するための識別子が格納される。ボリューム状態欄12502には、論理ボリュームID12501によって識別される論理ボリュームの現在の状態を示す情報が格納される。例えば、ボリューム状態12502には、正常、異常又は未実装を示す情報のうち少なくとも1つが格納される。より具体的には、例えば、論理ボリュームIDによって識別される論理ボリュームにホスト計算機200が正常にアクセスできる場合、ボリューム状態情報欄12502は、「正常」を示す情報が格納される。また、論理ボリュームIDによって識別される論理ボリュームにホスト計算機200が正常にアクセスできない場合、ボリューム状態情報欄12502には、「異常」を示す情報が格納される。例えば、ディスクドライブ1500の故障時、コピーの障害時には、ボリューム状態情報欄12502には、「異常」を示す情報が格納される。また、論理ボリュームIDによって識別される論理ボリュームにデータが格納されていない場合、ボリューム状態情報欄12502には、「未実装」を示す情報が格納される。
容量欄12503には、論理ボリュームIDによって識別される論理ボリュームの容量(記憶容量)が格納される。実ボリュームID欄12506には、論理ボリュームIDに対応する論理ボリュームに対応付けられた実ボリュームを識別する識別子が格納される。仮想フラグ欄12507には、論理ボリュームが仮想ボリュームから構成されるか否かを示す情報が格納される。仮想フラグが1の場合、論理ボリュームが仮想論理ボリュームであることを意味する。また、仮想フラグが0の場合、論理ボリュームが実論理ボリュームであることを意味する。
図16は、ストレージ装置300に記憶される仮想論理ボリューム管理情報1270の内容を示す図表である。仮想論理ボリューム管理情報1270は、仮想論理ボリュームを管理する情報であって、仮想論理ボリューム管理情報1270の数は、ストレージ装置300が保持する仮想論理ボリュームの個数と同数である。つまり、1つの仮想論理ボリュームに対して1つの仮想論理ボリューム管理情報1270が作成される。仮想論理ボリューム管理情報1270は、図16に示すように、ボリュームID欄12701、プールID欄12702及びアドレスマップ(12703、12704、12705、12706、12707)から構成される。以下、この仮想論理ボリューム管理情報1270を記憶するストレージ装置300を「このストレージ装置300」とよび、この仮想論理ボリューム管理情報1270に対応する仮想論理ボリュームを「この仮想論理ボリューム」とよぶ。
ボリュームID欄12701には、このストレージ装置300によって識別される実ボリュームの識別子が格納される。プールID欄12702には、このストレージ装置300によって管理される階層記憶プール管理情報1290を識別する識別子が格納される。プールID欄12702に格納されるプールIDは、この仮想論理ボリュームにページを提供する実ボリューム群を特定するために使用される。
アドレスマップは、仮想アドレス欄12703、階層番号欄12704、階層アドレスポインタ欄12705、参照フラグ欄12706及びロックフラグ欄12707から構成される。仮想アドレス欄12703には、仮想論理ボリュームにおける一単位の仮想領域を示すアドレスが格納される。仮想領域の1単位のサイズは、ページのサイズと同一である。ホスト計算機200からのIO要求において、仮想論理ボリュームが指定される場合、仮想論理ボリュームにおけるアクセス先の仮想領域を表す仮想アドレスも指定される。階層番号欄12704には、プールIDが示す階層記憶プール管理情報1290の特定の階層記憶を示す番号が格納される。階層アドレスポインタ欄12705には、プールID12703が示す階層記憶プール管理情報1290の特定階層の階層記憶アドレスマップの一領域を指すポインタが格納される。つまり、階層記憶プール管理情報1290には、いくつかの階層があり、各階層には階層記憶アドレスマップが対応付けられている。さらに、階層記憶アドレスマップは、線形的な記憶領域を提供しており、階層番号欄12704の階層番号と階層アドレスポインタ欄12705の階層アドレスポインタにより、そのプール内の階層番号と当該階層番号毎に提供される階層記憶アドレスマップの1アドレスが指定される。なお、仮想領域にページが割り当てられていない場合、その仮想領域の仮想アドレス12703に対応した階層アドレスポインタ12705には、「空き」を示す情報が格納される。参照フラグ12706には、この仮想アドレスが示す領域(ページ)に書き込みもしくは書き込み参照があったことを示すフラグが格納される。ロックフラグ欄12707には、この仮想アドレスが指す領域(ページ)が前述のページロック制御中であることを示すフラグが格納される。
図17は、ストレージ装置300の共有メモリ1200に記憶される階層記憶プール管理情報1290の内容を示す図表である。階層記憶プール管理情報1290は、プールを管理するための情報であって、階層記憶プール管理情報1290の数は、このストレージ装置300内におけるプールの数と同数である。つまり、1つのプールに対して1つの階層記憶プール管理情報1290が作成される。階層記憶プール管理情報1290は、プールID12901、階層記憶アドレスマップ情報(12902〜12910)から構成される。以下、この階層記憶プール管理情報1290に対応するプールを「このプール」とよぶ。プールID12901は、このプールを一意に示す識別子である。階層記憶アドレスマップ情報は、このプールに1又は複数存在する階層に割り当てられた1又は複数の実ボリュームを管理するための情報である。階層記憶アドレスマップ情報は、このプールに登録される階層の個数分存在し、各階層の記憶領域を線形的なアドレスで参照可能にする情報である。
階層記憶アドレスマップ情報は、階層番号欄12902、総実ボリューム数欄12903、総容量情報欄12904、空き総容量情報欄12905、アドレス欄12906、割当情報欄12907、アクセス頻度欄12910、ボリュームID欄12908及び実アドレス欄12909から構成される。以下、この階層記憶アドレスマップ情報に対応する実ボリュームを「この実ボリューム」とよぶ。
階層番号欄12902には、階層記憶の階層を表す番号が格納される。総実ボリューム数欄12903には、この階層番号が指す階層に登録される実ボリュームの個数が格納される。総容量情報欄12904には、この階層番号が指す階層に登録される実ボリュームの総容量が格納される。空き総容量欄12905には、この階層番号が指す階層に登録される実ボリュームで、ページが割り当てられていない空き領域の総容量が格納される。アドレス欄12906には、階層記憶アドレスマップが提供する線形的なアドレス空間のアドレスが格納される。割当情報欄12907には、アドレス12906に対応する領域が割当て済みか又は未割当か(つまり、割当不可能か割当可能か)、又はページロック制御中かを表す情報が格納される。アクセス頻度欄12910には、アドレス12906に対応する領域が割当済みの場合にこの領域割当後に、何回参照されたかの情報(アクセス頻度)が格納される。ボリュームID欄12908には、実ボリュームを一意に識別する識別子が格納される。実アドレス欄12909には、実ボリュームIDが指す実ボリュームのアドレスが格納される。
図18は、ストレージ装置300の共有メモリ1200に記憶されるストレージ基本情報1260の内容を示す図表である。ストレージ基本情報1260は、ストレージ装置300の情報を管理するテーブルであって、IPアドレス欄12601及びストレージID12602から構成される。IPアドレス欄12601には、ストレージ装置300に付与されたIPアドレスが格納される。ストレージID欄12602は、IPアドレスが示すストレージ装置300を一意に識別する識別子が格納される。
図19は、管理計算機100に記憶されるストレージ情報テーブル101の内容を示す図表である。ストレージ情報テーブル101は、ストレージID欄1011、ボリュームID欄1012及び仮想フラグ欄1013から構成される。ストレージID欄1011には、管理計算機100によって管理されるストレージ装置300を一意に識別する識別子が格納される。ボリュームID欄1012には、ストレージIDによって識別されるストレージ装置300により付与された論理ボリュームを一意に識別する識別子が格納される。仮想フラグ欄1013には、仮想論理ボリュームであることを示すフラグが格納される。
図20は、IO要求7300の内容を示す図表である。IO要求7300は、管理計算機100又はホスト計算機200によって発行される。IO要求7300は、宛先73001、指示内容73002、通し番号73003及びオプション73004から構成される。
宛先73001は、このIO要求7300についての宛先に関する情報であって、例えば、このIO要求7300の送信先となるストレージ装置300の識別子と、そのストレージ装置300における論理ボリューム(例えば仮想論理ボリューム或いは実論理ボリューム)の識別子と、その論理ボリュームにおける記憶領域(例えば、仮想領域、或いは実領域)のアドレス(ボリュームアドレス)とを含む情報である。
指示内容73002は、このIO要求7300によって指示される処理の内容である。例えば、指示内容73002は、階層制御指示か、或いは、データアクセスの指示等である。階層制御指示としては、例えば、ページ階層移動、ページロック開始、ページロック解除、ボリューム階層状態取得、又はプール状態取得などが挙げられる。また、データアクセスの指示としては、例えば、データ書き込み又はデータ読み込みなどが挙げられる。
通し番号73003は、このIO要求7300が発行された順番を示す。通し番号73003は、このIO要求7300の発行元である管理計算機100又はホスト計算機200によって決められる。オプション73004は、このIO要求7300によって書き込みが要求されるデータの内容及び、ページ移動する場合の移動後のアドレスマップ情報などが挙げられる。
(1−5)各装置の動作の詳細
(1−5−1)ストレージ装置の動作の詳細
まず、ストレージ装置300の動作の詳細について説明する。図21は、ストレージ装置300におけるデータアクセス処理の処理手順を示すフローチャートである。
ストレージ装置300の入出力制御部1300は、ホスト計算機200からIO要求7300を受信すると、そのIO要求7300の宛先73001が仮想論理ボリュームを表しているか否かを判定する(S5000)。具体的には、例えば、入出力制御部1300のプロセッサ1310(以下、入出力制御部1300として説明する。)は、IO要求7300の宛先73001を参照し、宛先73001に含まれているボリュームIDを取得する。次に、入出力制御部1300は、取得したボリュームIDに合致する論理ボリュームに関する情報を、図15に示すボリューム管理情報1250から取得する。
そして、ボリューム管理情報1250の仮想フラグ12507が仮想論理ボリュームを表している場合には、入出力制御部1300は、ステップS5005以降を実行する。一方、仮想論理ボリュームを表していない場合、入出力制御部1300は、ステップS5095を実行する。以下、図21及び図22の説明において、上記取得したボリュームIDに対応する仮想論理ボリュームを「この仮想論理ボリューム」と称して以下説明する。
ステップS5005において、入出力制御部1300は、図16に示す1又は複数の仮想論理ボリューム管理情報1270から、上記取得したボリュームIDに対応する仮想論理ボリューム管理情報1270を参照する。以下、図21及び図22の説明において、この特定された仮想論理ボリューム管理情報1270を「この仮想論理ボリューム管理情報1270」と称して以下説明する。
入出力制御部1300は、この仮想論理ボリューム管理情報1270から、IO要求7300の宛先73001に含まれているボリュームアドレス(以下、図21及び図22の説明において「このボリュームアドレス」と言う)に対応する仮想アドレス12703を特定する。入出力制御部1300は、特定した仮想アドレス12703に対応する仮想アドレスエントリを参照する。ここで、仮想アドレスエントリとは、仮想アドレス12703、階層番号12704、及び階層アドレスポインタ12705及び、参照フラグ12706及びロックフラグ12707からなる情報要素(エントリ)である。以下、入出力制御部1300が特定した仮想アドレスエントリをこの仮想アドレスエントリと称する。
次に、入出力制御部1300は、この仮想論理ボリューム管理情報1270の参照フラグ12706欄に参照があったことを示すフラグを登録する(S5007)。
次に、入出力制御部1300は、このIO要求7300の指示内容73002が、階層制御指示か否かを判定する(S5009)。このIO要求7300の指示内容73002が階層制御指示の場合には、後述する階層記憶制御処理を実行して(S5020)、入出力処理を終了する。このIO要求7300の指示内容73002が階層制御指示ではない場合、次のステップS5010を実行する。
次に、入出力制御部1300は、IO要求7300の指示内容73002が、データ読み込み参照か否かを判定する(S5010)。IO要求7300の指示内容73002がデータ読み込み参照ではない場合には、入出力制御部1300は、ステップS5060の処理を実行する。
ステップS5060において、入出力制御部1300は、この仮想アドレスエントリに割り当てページがあるかを判定する(S5060)。具体的に、入出力制御部1300は、階層アドレスポインタ12705を参照して、階層アドレスポインタ12705が「空き」(割当ページがないこと)を表しているかを判定する。
ステップS5060において、仮想アドレスエントリに割り当てページがあると判定された場合には、入出力制御部1300は、プールからページを割り当てる処理を実行する(S5070)。ステップS5070におけるページを割り当てる処理については後で詳細に説明する。
ステップS5010において、IO要求7300における指示内容73002がデータ読み込み参照である場合には、入出力制御部1300は、この仮想アドレスエントリに割り当てページがあるかを判定する(S5040)。具体的に、入出力制御部1300は、階層アドレスポインタ12705を参照して、階層アドレスポインタ12705が「空き」(割当ページがないこと)を表しているかを判定する。
ステップS5040において、仮想アドレスエントリに割り当てページがあると判定された場合には、入出力制御部1300は、IO要求7300でデータ参照の結果を0として(つまり、0を表すデータ要素が読み出されたとして)、ホスト計算機200にデータ要素0を返信し(S5050)、データアクセス処理を終了する。
ステップS5070におけるプールからページを割り当てる処理の後、または、ステップ5060の判定で階層アドレスポインタ12705が「空き」を表していないと判定された場合(割当ページがある場合)には、入出力制御部1300は、ステップ5095を実施する。
ステップS5040において階層アドレスポインタ12705が「空き」を表していないと判定された場合、または、ステップS5000においてそのボリューム管理情報1250の仮想フラグ12507が仮想論理ボリュームを表していないと判定された場合、入出力制御部1300は、その論理ボリューム(仮想論理ボリューム又は実論理ボリューム)へのデータアクセス処理を実行する(S5095)。
論理ボリュームへのデータアクセス処理で、IO要求7300の宛先73001が表す論理ボリュームが仮想論理ボリュームである場合、入出力制御部1300は、この仮想アドレスエントリの階層アドレスポインタ12705から特定されるページにアクセスする。また、IO要求7300の宛先73001が表す論理ボリュームが実論理ボリュームである場合、入出力制御部1300は、宛先73001におけるボリュームアドレスから特定される実領域にアクセスする。
以上、ストレージ装置300におけるデータアクセス処理の流れの一例を説明した。なお、図21の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行ってもよい。プロセッサ1310は、仮想ボリューム処理プログラム1220に仮想ボリュームに関わる処理を実行させてもよい。
図22は、図21のステップS5070において実行されるストレージ装置300におけるプールからのページ割り当て処理の処理手順を示すフローチャートである。
まず、ストレージ装置300の入出力制御部1300は、この仮想論理ボリュームの仮想論理ボリューム管理情報1270におけるプールID12702が示す階層記憶プール管理情報1290を参照する。次に入出力制御部1300は、1又は複数の階層記憶アドレスマップ情報のうち、階層番号が最も小さい階層(性能や信頼性が最も高いと設定される最上位の階層)を選定する(S5100)。
次に、入出力制御部1300は、この階層番号の階層記憶アドレスマップ情報のいずれかの割当情報12907に「空き」を表しているものがあるか否かを判定する(S5120)。
ここで、ステップS5120において、階層記憶アドレスマップ情報のいずれかの割当情報12907に「空き」のあるエントリ(アドレス12906、割当情報12907、ボリュームID12908、実アドレス12909からなる階層記憶アドレスマップ情報の行)が見つかったと判定された場合には、入出力制御部1300は、このエントリの情報を参照し、ボリュームID12908と実アドレス12909を取得し、アクセス対象のページを特定する。さらに、入出力制御部1300は、このエントリの割当情報12907を、割当ありにし、さらにこの情報に含まれるアクセス頻度12910の値に1を加算する(S5150)。
次に、入出力制御部1300は、この階層記憶アドレスマップの情報を更新する(S5160)。具体的に、入出力制御部1300は、空き総容量情報12905の空き総容量から割り当てに必要なページ容量分を削減する(S5160)。
次に、入出力制御部1300は、仮想論理ボリューム管理情報1270の階層アドレスポインタ12705をこのエントリに変更する。階層アドレスポインタ12705は、階層記憶プール管理情報1290の階層番号及びアドレスから構成される。
一方、ステップ5120において、階層記憶アドレスマップ情報のいずれもの割当情報12907に「空き」が無いと判定された場合には、入出力制御部1300は、この階層記憶アドレスマップ情報の階層番号よりも一つ下位の階層(現在の階層番号+1)の階層記憶アドレスマップ情報の有無を確認する(S5130)。
ステップS5130において、一つ下位の階層の階層記憶アドレスマップ情報が存在する場合には、入出力制御部1300は、現在よりも一つ下位の階層の階層記憶アドレスマップ情報(現在の階層番号+1)を選定し(S5110)、再度ステップS5120を実行する。
ステップS5130において、一つ下位の階層の階層記憶アドレスマップ情報が存在しない場合には、入出力制御部1300は、IOエラーをIO要求発行元のホスト計算機200に返す(S5140)。入出力制御部1300は、ステップS5140において、IOエラーのホスト計算機200にIOエラーを返すだけでなく、管理端末1600や、メールなどで使用者にIOエラーを通知しても良い。
以上、ストレージ装置300におけるページ割当て処理の流れの一例を説明した。なお、図22の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行ってもよい。プロセッサ1310は、仮想ボリューム処理プログラム1220に仮想ボリュームに関わる処理を実行させてもよい。
図23は、図21のステップS5020において実行されるストレージ装置300における階層記憶制御処理の処理手順を示すフローチャートである。階層記憶制御処理は、定期的に実行される階層記憶制御もしくは管理計算機100の指示により実行される階層記憶制御で使用される処理である。以下では、各プールにおける階層記憶制御処理について説明している。
まず、ストレージ装置300の入出力制御部1300は、指定されたプールの階層記憶プール管理情報1290における割当情報12907を参照する(S8000)。ステップS8000において、入出力制御部1300は、最下位階層の階層記憶アドレスマップ情報の上位エントリから順に参照する。以下、説明のため、入出力制御部1300が現時点のページの置き換え元として参照している階層をソース階層、階層記憶プール管理情報1290のソース階層の階層記憶アドレスマップ情報のエントリをソースエントリと称する。また、ページの置き換え先として参照する階層をターゲット階層、階層記憶プール管理情報1290のターゲット階層の階層アドレスマップ情報のエントリをターゲットエントリと称する。
次に、入出力制御部1300は、今回の階層制御処理が階層記憶制御指示によるものなのかを判定する(S8005)。ここで、階層記憶制御指示によるものである場合、後述の階層制御要求処理(S8200)を実行する。一方、階層記憶制御指示ではない場合、入出力制御部1300は、ステップS8010以降の処理を実行する。
入出力制御部1300は、ソース階層に対して規定されている基準アクセス頻度(基準値)と、該当エントリの割当情報12907に記載されているアクセス頻度を比較する(S8010)。階層記憶制御処理では、各階層には基準となるアクセス頻度(基準アクセス頻度)が、あらかじめ使用者等により指定されている。ステップS8010では、この基準アクセス頻度を超えている場合に、階層の異なる実ボリューム間でページ移動が実行される。
ステップS8010において、ソースエントリのアクセス頻度12910が基準値を上回る場合には、入出力制御部1300は、さらに、ソース階層に上位階層があるかを判定する(S8090)。ステップS8090において、ソース階層よりも一つ上位の階層がある場合には、入出力制御部1300は、当該階層をターゲット階層として選定し(S8070)、当該階層の基準値と比較する(S8010)。ここで、ターゲット階層の初期値はソース階層と同じ値として設定されている。
入出力制御部1300は、上記処理を繰り返し、基準値を超えないターゲット階層を特定する。なお、ステップS8090において、ソース階層に上位階層がないと判定された場合には、入出力制御部1300は、対応するページの移動をせずに(S8120)、ステップ8025以降の処理を実行する。このように、ソース階層に上位階層が無い場合、すなわち、ソース階層が最上位階層であると入出力制御部1300が判断した場合、最上位階層を使い続けるために、入出力制御部1300は、ソースエントリのページ移動をせず、そのまま処理を継続する。
一方、ステップS8010において、ソースエントリのアクセス頻度12910が基準値以下である場合には、入出力制御部1300は、ソース階層とターゲット階層が同一かを判定する(S8013)。ステップS8013において、ソース階層とターゲット階層が同一であると判定された場合には、入出力制御部1300は、ソースエントリが示すページは現状配置されている階層記憶の基準値を満たしており、ソースエントリのページ移動の必要が無いと判断し、ステップ8025以降の処理を実行する。
一方、ステップS8013において、ソース階層とターゲット階層が同一でないと判定された場合には、入出力制御部1300は、ソースエントリが示すページは現状配置されている階層記憶の基準値を満たしておらず、ソースエントリのページ移動の必要があると判断し、ターゲット階層の階層記憶アドレスマップ情報の空き総容量12905を参照し、ターゲット階層にページ移動が可能な空きのある実ボリュームが存在するかを確認する(S8015)。
ステップS8015において、ターゲット階層に空きが無いと判定された場合には、入出力制御部1300は、ターゲット階層にソースエントリのアクセス頻度12910の参照頻度よりも低い参照頻度のエントリでかつ割り当て情報がページロック以外であるか否かを判定する(S8100)。
ステップS8100において、ターゲット階層にソースエントリのアクセス頻度12910よりも低い参照頻度のエントリが無い、または、ターゲット階層にソースエントリのアクセス頻度12910よりも低い参照頻度のエントリはあるがその割り当て情報12907がページロックのものしか無いと判定された場合には、入出力制御部1300は、ターゲット階層よりも一つ下位の階層をターゲット階層に選定し(S8107)、ターゲット階層がソース階層と同一かを判定する(S8013)。
ステップS8100において、ターゲット階層にソースエントリのアクセス頻度12910の参照頻度よりも低い参照頻度のエントリがあり、かつ、当該エントリの割り当て情報12907がページロック以外の場合には、入出力制御部1300は、ソースエントリとターゲットエントリとのページの入れ替えを実行する(S8110)。
一方、ステップS8015において、ターゲット階層にページ移動が可能な空きのある実ボリュームが存在する場合には、入出力制御部1300は、ターゲット階層の空きが存在する実ボリュームに対しページ移動を実行する(S8020)。
入出力制御部1300は、ステップS8020、ステップS8110、または、ステップS8120を実行した後、ソースエントリを次のエントリに変更する(S8025)。
次に、入出力制御部1300は、プール内のソース階層の全ソースエントリについて判定処理を実行したかを確認し(S8030)、未処理のエントリがある場合には、ステップS8010以降の処理を再度実行する。
一方、ステップS8030において、ソース階層に未処理のエントリが無い場合、ソース階層よりも一つ高位の階層をソース階層に設定する(S8040)。ステップS8040において設定された階層が最上位階層を上回っていない、すなわち、ソース階層よりも一つ高位の階層が存在する場合には(S8050でNo)、入出力制御部1300は、ステップS8000から再度処理を実行する。
一方、ステップS8040において設定された階層が最上位階層を上回っている場合、すなわち、ソース階層よりも1階層高い階層が存在しない場合には(S8050でYes)、入出力制御部1300は、プール内の全階層の階層記憶アドレスマップ情報におけるアクセス頻度12910の参照頻度を0にリセットして(S8130)、階層記憶制御処理を終了する。
図24は、図23のステップS8200において実行されるストレージ装置における階層記憶制御要求処理の処理手順を示すフローチャートである。階層記憶制御要求処理は、管理計算機100の指示によりストレージ装置300において実行される階層記憶制御処理が実行されることを前提としている。図23に示した階層記憶制御処理は定期的に実行される処理であるのに対し、階層記憶制御要求処理は、管理計算機100による指示のもと実行される処理である。また、階層記憶制御要求処理は、ページ単位に実行されることを前提に説明するが、IO要求のオプション領域に指定されたアドレスマップに複数のページが含まれる場合は、ページの個数分、本処理を繰り返し実行される。以下では、各プールにおける階層記憶制御要求処理について説明している。
まず、ストレージ装置300の入出力制御部1300は、IO要求7300により指定された指示内容73002がページロック開始またはページロック解除であるか否かを判定する(S8210)。ステップS8210において、指示内容73002がページロック開始または解除であると判定された場合には、ページロック処理のための判定処理(S8215)を実行する。
ステップS8215において、入出力制御部1300はさらにIO要求の指示内容73002がページロック開始かを判定する。ステップS8215において、指示内容72002がページロック開始であると判定された場合には、ステップS8235を実行する。一方、ステップS8215において、指示内容72002がページロックではなく、ページ解除であると判定された場合には、ステップS8245を実行する。
ステップS8235において、入出力制御部1300は、IO要求の宛先73001に指定されたページをページロックする。具体的に、入出力制御部1300は、IO要求の宛先73001に指定された仮想論理ボリュームのアドレスが指す仮想論理ボリューム管理情報1270の該当エントリのページロックフラグをYesに設定する。さらに、入出力制御部1300は、仮想論理ボリューム管理情報1270内の該当エントリの階層アドレスポインタから、階層記憶プール管理情報1290の該当アドレス内の割当情報12907をページロックする。その後、階層記憶制御要求処理を終了し、呼び出し元の処理に戻る。
また、ステップS8245において、入出力制御部1300は、IO要求の宛先73001に指定されたページを解放する。具体的に、入出力制御部1300は、IO要求の宛先73001に指定された仮想論理ボリュームのアドレスが指す仮想論理ボリューム管理情報1270の該当エントリのページロックフラグをNoに設定する。さらに、入出力制御部1300は、仮想論理ボリューム管理情報1270内該当エントリの階層アドレスポインタから、階層記憶プール管理情報1290の該当アドレス内割当情報12907のページロックを解除する。その後、階層記憶制御要求処理を終了し、呼び出し元の処理に戻る。
一方、ステップS8210の判定の結果、指示内容73002がページロック開始でも解除でもない場合には、入出力制御部1300は、IO要求の指示内容73002がページ移動であり、かつ、IO要求で指定されたページが現状配置されている階層記憶の階層よりもIO要求で指定された階層が下位であるかを判定する(S8220)。ステップS8220において、入出力制御部1300は、IO要求に指定されたページが配置されている階層記憶を取得するため、IO要求に指定されたアドレスに対応する仮想論理ボリューム管理情報1270のエントリを参照し、当該エントリの階層番号12704を参照する。ステップS8220において、現状の階層記憶よりも下位の階層記憶にページ移動すると判定された場合には、入出力制御部1300は、ステップS8240の処理を実行する。
ステップS8240において、入出力制御部1300は、IO要求に指定されたページが配置されている階層記憶に空き実ボリュームがあるかを判定する(S8240)。具体的に、入出力制御部1300は、階層記憶プール管理情報1290の空き総容量12905を参照して、IO要求に指定されたページが配置されている階層記憶の空き総容量を取得する。これにより、入出力制御部1300は、得られた空き総容量から該当する階層記憶に新たなページの配置が可能かを判定する。
ステップS8240において、該当する階層記憶に新たなページの配置が可能と判定された場合には、入出力制御部1300は、IO要求で指定されたページを現状の階層記憶から指定された階層記憶に移動する(S8295)。
一方、ステップS8240において、該当する階層記憶に新たなページの配置ができないと判定された場合には、入出力制御部1300はIO要求で指定されたページと移動先の階層記憶の1ページの入れ替えを実施する。移動先である階層記憶から選出するページは、該当階層記憶の中で最もアクセス頻度の高いページである。これは、ページの入れ替えにより移動する階層記憶が現在配置されている階層記憶よりも上位のものになるため、移動先である上位階層記憶の高い性能を有効に活用する狙いがある。具体的に、入出力制御部1300は、階層記憶プール管理情報1290のIO要求7300で指定された移動先の階層記憶アドレスマップ情報の該当エントリにあるアクセス頻度12910を参照し、その頻度が最大のものを選出する(S8250)。
次に、入出力制御部1300は、IO要求7300で指定されたページとステップ8250で選出した移動先ページとを入れ替える(S8260)。入れ替え完了後、入出力制御部は呼び出し元の処理に戻る。
一方、ステップ8220において、現状の階層記憶よりも下位の階層記憶にページを移動しないと判定された場合には、入出力制御部1300は、ステップS8230を実行する。
ステップS8230において、入出力制御部1300は、IO要求の指示内容73002がページ移動であり、かつ、IO要求で指定されたページが現状配置されている階層記憶の階層よりもIO要求で指定された階層が上位であるか否かを判定する(S8230)。ステップS8230の判定においても、ステップS8220で実施した判定と同様の手順で、IO要求7300で指定されたページが上位階層記憶に移動するか否かを判定する。
ステップS8230において、現状の階層記憶よりも上位の階層記憶にページ移動すると判定された場合には、入出力制御部1300は、ステップS8270を実行する。
ステップS8270において、入出力制御部1300は、IO要求に指定されたページが配置されている階層記憶の空き総容量を、ステップS8240と同様の手順で取得し、得られた空き総容量から該当する階層記憶に新たなページの配置が可能かを判定する。
ステップS8270において、該当する階層記憶に新たなページの配置が可能であると判定された場合には、入出力制御部1300は、IO要求で指定されたページを現状の階層記憶から指定された階層記憶に移動する(S8295)。
一方、ステップS8270において、該当する階層記憶に新たなページの配置ができないと判定された場合には、入出力制御部1300は、IO要求で指定されたページと移動先の階層記憶の1ページの入れ替えを実行する。後述するステップS8290において、移動先である階層記憶から選出されるページは、該当階層記憶の中で最もアクセス頻度の低いページである。これは、ページの入れ替えにより移動する階層記憶が現在配置されている階層記憶よりも下位になるため、移動先の下位階層記憶の低い性能でも十分にその階層記憶を活用できるようにすることを意図している。
具体的に、入出力制御部1300は、階層記憶プール管理情報1290のIO要求7300で指定された移動先の階層記憶アドレスマップ情報の該当エントリにあるアクセス頻度12910を参照し、その頻度が最小のものを選出する(S8280)。
次に、入出力制御部1300は、IO要求7300で指定されたページとステップ8280で選出した移動先ページとを入れ替えを行う(S8290)。入れ替え完了後、入出力制御部は呼び出し元の処理に戻る。
一方、ステップ8230において、現状の階層記憶よりも上位の階層記憶にページ移動するものではないと判定された場合には、入出力制御部1300は、IO要求の階層制御指示がボリューム階層状態取得であるとして、ステップS8232を実行する。
ステップ8232において、入出力制御部1300は、IO要求が指定した仮想論理ボリュームの階層配置を取得し、IO要求7300の要求元に返送する。具体的に、入出力制御部1300は、IO要求7300の宛先で指定される論理ボリュームが指す仮想論理ボリューム管理情報1270のアドレスマップを参照し、そのアドレスマップ内の仮想アドレス12703、階層番号12704をアドレスマップから抜き出し、当該情報をIO要求7300の要求元に返送する(ステップ8232)。その後、入出力制御部1300は、呼び出し元の処理に戻る。
以上のように、階層記憶制御要求処理をストレージ装置300で実施することで、管理計算機100の指示に基づいて、ストレージ装置300上の階層記憶をページ単位で制御することが可能となる。
(1−5−2)ホスト計算機の動作の詳細
次に、ホスト計算機200の動作の詳細について説明する。図25は、ホスト計算機200上で起動するアプリケーション及びジョブの概念について説明する概念図である。
ホスト計算機200では、1つまたは複数のアプリケーションを同時に実行させることができる。アプリケーションを実行する場合には、ジョブとよばれるスクリプトプログラムに実行対象のアプリケーション名、アプリケーションが使用するデータセット名などを規定し、そのジョブを実行(SUBMIT)する。具体的に、ジョブはアプリケーション名やデータセット名だけではなく、ジョブ名、ジョブの種別であるジョブクラス、ジョブの使用者等を規定することも出来る。ジョブの実行が使用者により指示されると、OS212の指示に従って、ホスト計算機200はジョブを開始する。
図25に示すように、OS212には、ホスト計算機200でジョブを処理するための3つの処理部が備えられている。具体的に、OS212内には、ジョブ受付、ジョブスプール、アプリケーション実行部が備わっている。例えば、ジョブ実行を使用者に指示されると、OS内のジョブ受付部がそのジョブを受け付け、ジョブで規定されている種々の情報を取得するための処理をホスト計算機200に指示する。ここで、使用者により実行が指示されたジョブをこのジョブとよぶことにする。
ホスト計算機200は、ジョブで規定されている情報を取得後、このジョブに関しジョブスプール部の処理を実行する。ジョブスプール部では、アプリケーション実行部でこのジョブの処理が可能になるまで、このジョブの実行が保留される。
アプリケーション実行部で新しいジョブの処理が可能になると、ホスト計算機200はこのジョブに関する処理を、ジョブスプール部からアプリケーション実行部の処理に切り替える。アプリケーション実行部では、ジョブに規定されているアプリケーションが実行される。アプリケーションが実行されて初めて、当該ジョブに規定されたアプリケーションプログラム用データが参照される。
アプリケーション実行部での処理が終了する(すなわち、このジョブに規定されたアプリケーションの処理が完了する)と、ホスト計算機200は、このジョブの終了処理を実行し、ジョブを終了させる。
(1−5−3)管理計算機の動作の詳細
次に、管理計算機100の動作の詳細について説明する。管理計算機100は、準備段階及び運用段階の2段階の動作を行う。基本的に、管理計算機100は、ストレージ装置300に指示を出す場合、ホスト計算機200のメモリ210に存在するエージェントプログラム213に指示を出し、ホスト計算機200は、当該エージェントプログラム213の指示に従い、ストレージ装置300にIO要求を発行する。また、ホスト計算機200は、ホスト計算機200上のOSやアプリケーションの状態の変更を検知することができ、検知した場合はその内容を管理計算機100に通信ネットワーク550を介して通知する。ホスト計算機200から検知結果を通知された管理計算機100は、通知内容にしたがって、ホスト計算機200またはストレージ装置300に指示を発行し、当該機器を制御する。このように、ホスト計算機200と管理計算機100を分離する理由は、複数のホスト計算機200を1管理計算機で集中して管理するためである。
まず、準備段階における管理計算機100の動作の詳細について説明する。図26は管理計算機100における環境構築段階の動作の詳細を示すフローチャートである。
準備段階の動作は、管理計算機100のプロセッサ120がストレージ管理プログラム111に基づいて処理を実行することで実現される。以下、フローチャートでは、単に管理計算機100を主語にして説明を行うが、すべての動作は管理計算機100のプロセッサ120が実行するものである。
まず、管理計算機100は、計算機システム10上に存在するホスト計算機200を検出する(S4010)。ホスト計算機200を検出するための情報として、例えば、管理計算機100の使用者によるIPアドレスの入力を使用する。アドレスの入力は、例えば、192.168.1.1から192.168.1.50といったIPアドレスの範囲を入力でも良いし、特定のIPアドレスを入力してもよい。管理計算機100は、ホスト計算機200のエージェントプログラム213用の情報取得要求を作成し、入力されたIPアドレスに向けて発行する。ホスト計算機200が情報取得要求を受信した場合、このホスト計算機200上のエージェントプログラム213の指示に基づき、このホスト計算機200が存在することを管理計算機100に返信する。管理計算機100はホスト計算機200から返信があるものに対し、この返信に含まれる情報を基にして、ホスト構成管理テーブル118を作成する。ただしこの時点では、管理計算機100はホスト構成管理テーブル118のホストID1181にのみ応答のあったホスト計算機200のIPアドレス、ホストID等のホスト計算機を識別するための情報を設定する。
次に、管理計算機100は、計算機システム10上に存在するストレージ装置300を検出する(S4020)。ステップS4020におけるストレージ装置300の検出は、ステップS4010と同様に、管理計算機100の使用者によって入力されたIPアドレスを基に、管理計算機100により、ストレージ装置300向けの情報取得要求が作成される。ストレージ装置300では、記憶制御装置1000のプロセッサ1310がこの情報取得要求を受信すると、共有メモリ1200に格納されるボリューム管理情報1250と、ストレージ基本情報1260とを参照し、それら情報をまとめて管理計算機100に返信する。管理計算機100は、ストレージ装置300から返信があるものに対し、この返信に含まれる情報を基にして、ストレージ情報テーブル101を作成する。
次に、管理計算機100は、制御対象となるアプリケーションデータとその優先度を設定する(S4030)。アプリケーションデータの設定には、直接データを設定するデータセット指定の他、指定された時刻に実行されるアプリケーション全てを対象とする時刻指定、アプリケーションを起動するためにジョブを指定するジョブ指定、ジョブの種別を指定するジョブクラス指定、ある特定の使用者が実行するジョブすべてを対象とするユーザ名指定等がある。これ以外に間接的に階層記憶対象のデータを指定してもよい。これらのデータの指定は複数の項目を指定することが出来る。
また、複数の項目を指定する場合、それぞれの項目の優先度を指定する。一方、データの優先度には、高優先、低優先がある。制御対象のデータを複数指定する場合、指定した項目に該当するデータ全てが階層記憶制御の対象となる。ただし、複数の項目に1つのデータが該当する場合、入力項目の優先度の高い項目を優先する。管理計算機100は、使用者により指定された項目をユーザ設定情報管理テーブル114に格納する。ここで、管理計算機100の使用者は管理計算機100の入力画面をみながら、入力デバイスなどを介し、上記を設定することができる。
ここで、図27に管理計算機100の入力画面の一例を示す。図27の入力画面140では、時刻指定、ジョブ名、ジョブクラスを指定することができ、それぞれの項目に対し、例えば時刻T1〜T2に実行されるジョブが使用するデータすべてを、低優先で階層制御することを指定する。ここで低優先に設定され、かつ、上位階層記憶に配置されたデータについては、ページロックされていたとしても、ページ置き換えの対象になる場合がある。例えば、後続の高優先で設定されたデータの階層制御のために、上位階層記憶に空き領域を作る必要がある場合に、ページの置き換え処理が実行される。このようなページ置き換え処理を横取り処理と称して以降説明する。横取り処理については、後で詳細に説明する。
次に、管理計算機100は、データを検出する(S4040)。管理計算機100は、ホスト計算機200のOS212に登録されているボリューム情報と、ステップ4020で作成したストレージ情報テーブル101を基にデータを検出する。具体的に、ホスト計算機200が認識するボリュームの内、仮想論理ボリュームであるものを選出する。データの検出処理は、管理計算機100が、ホスト計算機200のエージェントプログラム213向けの情報取得要求を作成し、当該要求をホスト計算機200に発行し指示することにより実行される。
ホスト計算機200が情報取得要求を受信した場合、このホスト計算機200上のエージェントプログラム213の指示に基づき、このホスト計算機200の構成情報を管理計算機100に返信する。この構成情報には、データの名称とそのデータが格納される論理ボリューム及び論理ボリュームの格納アドレス(格納アドレスとは、例えば、論理ボリュームのシリンダ、ヘッダ数、もしくはSCSIのLBAなどである)の情報が含まれる。
管理計算機100は、構成情報から検出した論理ボリュームをホスト構成管理テーブル118のボリューム情報(1182、1183、1184、1185,1186)に登録する。さらに、管理計算機100は、階層記憶制御処理の対象となる仮想論理ボリュームのみを絞り込むため、ストレージ情報テーブル101内の仮想フラグ1013が仮想論理ボリュームであるボリューム情報だけを、制御対象データ管理テーブル113のデータセット名11301、デバイスID11302、及び、格納ADR11303に登録する。
次に、管理計算機100は、入出力頻度管理テーブル115を参照する。これにより管理計算機100は、制御対象データ管理テーブル113に登録された仮想論理ボリュームで、そのボリュームに配置されたデータに関するファイル編成や頻繁にアクセスされる領域を検出するための必要な情報を取得することができる。管理計算機100は、入出力頻度管理テーブル115の取得方法11504に指定されている手段を使用し、制御対象データ管理テーブル113に登録されているデータのファイル編成、ファイル編成詳細を取得する。ここで、ファイル編成にはOS212のファイル編成特定のためのツールの実施結果が登録され、ファイル編成詳細には、入出力頻度管理テーブル115の情報の取得方法11504に記載の手段で取得したデータ内で高頻度に入出力される領域の情報が登録されている。
次に、運用段階における管理計算機100の動作の詳細について説明する。運用段階では、実行されるジョブの状態により、3つの動作、すなわち、階層記憶割り当て動作、階層記憶の優先度変更動作、階層記憶割り当て解除動作がある。以下、運用段階におけるそれぞれの段階の管理計算機100による動作の詳細を順次説明する。
まず、図28を参照して、運用段階における階層記憶割り当て動作について説明する。管理計算機100による階層記憶割り当て動作は、階層記憶制御対象のジョブがホスト計算機200で実行された時点で開始される。上記ジョブの実行を検出するべく、ホスト計算機200は、エージェントプログラム213の指示にしたがって、ホスト計算機200のOS212の処理を監視する。
管理計算機100は、ホスト計算機200上でジョブが実行されたかを判定する(S3010)。上記したように、ホスト計算機200は、OS212を介してジョブが投入されたことを検出する。ホスト計算機200は、OS212を介してジョブが実行されたことを検出し、管理計算機100にジョブが実行されたことを通知する。ここで、ホスト計算機200で実行されたジョブを実行ジョブとよぶことにする。
次に、管理計算機100は、実行ジョブに関する情報の収集をホスト計算機200に指示する(S3020)。実行ジョブに関する情報収集の指示を受け取ったホスト計算機200は、OS213に問い合わせを実施し、実行ジョブに関する情報を収集して、管理計算機100に通知する。ステップS3020において収集される実行ジョブに関する情報は、ジョブ名、データセット名、ユーザ名、ジョブクラスなどが挙げられる。
次に、管理計算機100は、ステップS3020において収集したジョブの情報が階層記憶制御対象のジョブであるかを判定する(S3030)。管理計算機100は、ユーザ設定情報管理テーブル114を参照し、使用者により設定された項目に、実行ジョブが該当するかを比較することによりステップS3030の判定を実行する。ステップS3030において、実行ジョブが階層記憶制御対象でないと判定された場合には、処理を終了する。
一方、ステップ3030において、実行ジョブが階層記憶制御対象である場合には、管理計算機100はステップS3020において得られた実行ジョブの情報と、ユーザ設定情報管理テーブル114に該当する項目の階層記憶優先度11404を基に、実行中ジョブ管理テーブル112を作成する(S3040)。
次に、管理計算機100は、実行ジョブが過去にホスト計算機200上で実行されたことがあるかを判定する(S3050)。ステップS3050では、作成した実行中ジョブ管理テーブル112のデータセット名11202と同名のデータセット名が制御対象データ管理テーブル113にあり、かつ、そのデータセット名に関連する制御対象データ管理テーブル113上の過去階層ポインタ11306が登録されている場合に、管理計算機100は過去に実行ジョブが実行されていると判定する。ステップ3050において、過去に実行ジョブが実行されていたと判定された場合には、管理計算機100は、後述の過去実行ジョブ割り当て階層記憶処理(S3200)を実行し、処理を終了する。
一方、ステップS3050において、過去に実行ジョブが実行されていないと判定された場合には、後述の細粒度階層記憶割り当て処理(S3500)を実行し、処理を終了する。
以上の管理計算機100による階層記憶割り当て動作により、ホスト計算機200で実行されるジョブの中で、階層記憶制御対象であるものが選出され、さらに、実行されるジョブが過去にも実行される場合、過去のジョブ実行の実績に基づいた階層記憶制御処理が実行される。また、過去にジョブの実行がない場合も、ファイル編成の特性に基づき階層記憶を細やかな単位で制御することができる。
次に、図28のステップS3500における細粒度階層記憶割り当て処理について説明する。図29は、管理計算機100による細粒度階層記憶割り当て処理の処理手順を示すフローチャートである。
まず、管理計算機100は、ストレージ装置300の階層記憶の状態を取得する(S3501)。具体的に、管理計算機100は、ストレージ装置300の階層記憶の状態を把握するため、ホスト計算機200にストレージ装置300における階層記憶容量の状態に関する問い合わせを指示する。ホスト計算機200は、管理計算機100の指示により、指示内容としてプール状態取得を指定したIO要求7300を作成し、ストレージ装置300に発行する。当該IO要求を受け取ったストレージ装置300は、IO要求に指示されたプールIDをもつ階層記憶プール管理情報1290を参照し、階層記憶番号とその総容量情報、空き総容量情報などをホスト計算機200に返す。IO要求の応答を受け取ったホスト計算機200は、取得した情報を管理計算機100に転送する。管理計算機100はホスト計算機200から情報を受信すると、階層記憶利用状況管理テーブル116の該当領域(全体容量11602、空き容量11603)を更新する。
次に、管理計算機100は、階層記憶割り当て動作で検出した実行ジョブのファイル編成に基づいて、階層記憶制御処理を実行する。具体的に、管理計算機100は、実行ジョブのファイル編成を制御対象データ管理テーブル113から取得して、ファイル編成が仮想記憶アクセス(VSAM)かを判定する(S3510)。
ステップS3510において、得られたファイル編成が仮想記憶アクセス(VSAM)である場合には、管理計算機100は、仮想記憶アクセスファイル編成用の階層記憶制御のための処理(ステップ3511、3512、3513、3514)を実行する。
ステップ3511において、管理計算機100は、上位階層記憶の容量がデータセット(DS)分あるかを判定する(S3511)。具体的に、管理計算機100は、入出力頻度管理テーブル115の仮想記憶アクセスファイル編成の情報を取得して、実行ジョブ使用のデータのファイル編成に関する入出力頻度情報を取得する。そして、管理計算機100は、入出力頻度管理テーブル115を取得することにより、最も入出力頻度の高い領域がIndex領域であり、次に高い領域がデータセット全体であることを把握する。そこで、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセット全体が上位の階層記憶に配置可能かを判定する。ステップS3511では、ストレージ装置300から最大の入出力性能を得るために、実行ジョブが使用するデータセット全体が上位の階層記憶に配置可能であるかを判定している。
ステップS3511において、上位階層にデータセット全体が配置可能であると判定された場合には、管理計算機100は、データセット全体を上位階層に割り当てる(S3512)。具体的に、管理計算機100は、データセット全体とその階層番号を階層テーブル117に登録し、階層テーブル117を基に、ページ階層移動およびページロック開始を、ホスト計算機200に指示する。上記指示を受け付けたホスト計算機200は、指示内容にページ階層移動、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。次に、ホスト計算機200は、指示内容にページロック開始、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。ストレージ装置300は、上記2つのIO要求を受信し、IO要求に指定された記憶領域に関し、ページ移動、およびページロック処理を実施する。ストレージ装置300の階層記憶制御完了後、管理計算機100は、制御対象データ管理テーブル113のファイル編成詳細11305をデータセットに変更する。そして、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604、11605の値を更新する。ここで、高優先か、低優先のいずれを更新するかは、実行中ジョブ管理テーブルの優先度11204に設定された内容に基づき実施する。すなわち、実行中ジョブ管理テーブル112の優先度11204が高優先の場合、階層記憶利用状況管理テーブル116の高優先11604の情報を更新する。
ステップ3511において、上位階層にデータセット全体が配置不可能であると判定された場合には、管理計算機100は、上位階層の容量がIndex分あるかを判定する(S3513)。具体的に、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセットで最も参照頻度の高いIndex領域が上位階層記憶に配置可能かを判定する。
ステップS3513において、上位階層へのIndex領域の配置が可能であると判定された場合には、ステップS3512で説明した処理と同様にIndex領域分の階層記憶制御をストレージ装置300に指示する。ストレージ装置300の階層記憶制御完了後、管理計算機100は、制御対象データ管理テーブル113のファイル編成詳細11305をIndexに変更する。次に、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604,11605の値を更新する(S3514)。
ステップS3513において、上位階層へのIndex領域の配置が不可能であると判定された場合には、管理計算機100は、後述の横取り処理を実行する(S3600)。
一方、ステップS3510において、実行ジョブのファイル編成がVSAMではなく、区分である場合には、管理計算機100は、区分ファイル編成用の階層記憶制御のための処理(ステップS3521、S3522)を実行する。
ステップS3521において、管理計算機100は、上位階層記憶の容量がデータセットの先頭領域分あるかを判定する(S3521)。具体的に、管理計算機100は、入出力頻度管理テーブル115における区分の情報を取得して、実行ジョブ使用データのファイル編成に関する入出力頻度情報を取得する。管理計算機100は、入出力頻度管理テーブル115から情報を取得することにより、最も入出力頻度の高い領域がDirectory領域であることを把握する。そこで、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセットの内、Directory領域が上位階層記憶に配置可能かを判定する。ステップS3521では、ストレージ装置300から最大の入出力性能を得るために、実行ジョブが使用するデータセットの内、Directory領域が上位階層記憶に配置可能かを判定している。
ステップS3521において、上位階層へのDirectory領域の配置が可能であると判定された場合には、管理計算機100は、Directory領域を上位階層に割り当てる指示を行う(S3522)。具体的に、管理計算機100は、Directory領域とその階層番号を階層テーブル117に登録し、階層テーブル117を基に、ページ階層移動およびページロック開始を、ホスト計算機200に指示する。上記指示を受け付けたホスト計算機200は、指示内容にページ階層移動、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。次に、ホスト計算機200は、指示内容にページロック開始、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。ストレージ装置300は、上記2つのIO要求を受信し、IO要求に指定された記憶領域に関し、ページ移動、およびページロック処理を実行する。ストレージ装置300の階層記憶制御完了後、管理計算機100は制御対象データ管理テーブル113のファイル編成詳細11305をデータセットに変更する。次に、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604,11605の値を更新する。ここで、高優先か、低優先のいずれを更新するかは、実行中ジョブ管理テーブルの優先度11204に設定された内容に基づき実施する。すなわち、実行中ジョブ管理テーブル112の優先度11204が高優先の場合、階層記憶利用状況管理テーブル116の高優先11604の情報を更新する。
ステップS3521において、上位階層へのDirectory領域の割り当てが不可能であると判定された場合には、管理計算機100は、後述の横取り処理を実行する(ステップ3600)。
一方、ステップS3520において、実行ジョブのファイル編成が区分ではないと判定され、順次であると判定された場合には、管理計算機100は、順次ファイル編成用の階層記憶制御のための処理(ステップS3531、S3532)を実行する。
ステップS3531において、管理計算機100は、上位階層記憶の容量がVTOC領域分あるかを判定する。具体的に、管理計算機100は、入出力頻度管理テーブル115における区分の情報を取得して、実行ジョブの使用データのファイル編成に関する入出力頻度情報を取得する。入出力頻度管理テーブル115から情報を取得することにより、管理計算機100は、最も入出力頻度の高い領域がVTOC領域であることを把握する。そこで、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセットの内、VTOC領域が上位階層記憶に配置可能かを判定する。ステップS3531では、することでストレージ装置300から最大の入出力性能を得るために、VTOC領域が上位階層記憶に配置可能かを判定している。
ステップS3531において、上位階層へのVTOC領域の配置が可能であると判定された場合には、管理計算機100は、VTOC領域を上位階層に割り当てる指示を行う(S3532)。具体的に、管理計算機100は、VTOC領域とその階層番号を階層テーブル117に登録し、階層テーブル117を基に、ページ階層移動およびページロック開始を、ホスト計算機200に指示する。上記指示を受け付けると、ホスト計算機200は指示内容にページ階層移動、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。次に、ホスト計算機200は、指示内容にページロック開始、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。ストレージ装置300は、上記2つのIO要求を受信し、IO要求に指定された記憶領域に関し、ページ移動、およびページロック処理を実施する。ストレージ装置300の階層記憶制御完了後、管理計算機100は制御対象データ管理テーブル113のファイル編成詳細11305をデータセットに変更する。次に、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604,11605の値を更新する。ここで、高優先か、低優先のいずれを更新するかは、実行中ジョブ管理テーブルの優先度11204に設定された内容に基づき実施する。すなわち、実行中ジョブ管理テーブル112の優先度11204が高優先の場合、階層記憶利用状況管理テーブル116の高優先11604の情報を更新する。
一方、ステップS3530において、実行ジョブのファイル編成が順次ではなくそれ以外のファイル編成であると判定された場合には、管理計算機100は、入出力頻度管理テーブル115に基づき、上記ファイル編成がVSAMもしくは区分である場合の処理と同様の処理を実行する。
次に、図28のステップS3200における過去データセット割り当て階層記憶再現処理について説明する。図30は、管理計算機100による過去データセット割り当て階層記憶再現処理の処理手順を示すフローチャートである。
過去データセット割り当て階層記憶再現処理は、過去に階層記憶制御処理が実行され、所定の要件に合致する高い入出力性能が得られた場合に、当該階層記憶制御処理による階層記憶へのデータ配置を再現する処理である。過去データセット割り当て階層記憶再現処理は、同一ジョブが実行される毎に繰り返される。当該処理により、繰り返し実行されることが前提となるホスト計算機200のジョブの実行において、常に高い入出力性能を提供することが可能となる。
まず、管理計算機100は、ストレージ装置300の階層記憶の状況を取得する(S3210)。具体的に、管理計算機100は、ストレージ装置300の階層記憶の状態を把握するため、ホスト計算機200にストレージ装置300における階層記憶容量の状態に関し問い合わせを指示する。ホスト計算機200は、管理計算機100の指示により、指示内容としてプール状態取得を指定したIO要求7300を作成し、ストレージ装置300に発行する。当該IO要求を受け取ったストレージ装置300は、IO要求に指示されたプールIDをもつ階層記憶プール管理情報1290を参照し、階層記憶番号とその総容量情報、空き総容量情報などをホスト計算機200に返す。IO要求の応答を受け取ったホスト計算機200は、取得した情報を管理計算機100に転送する。管理計算機100は、ホスト計算機200から情報を受信すると、階層記憶利用状況管理テーブル116の該当領域(全体容量11602、空き容量11603)を更新する。
次に、管理計算機100は、階層記憶毎の空き容量が、過去のデータセットを再現するための容量分あるかを判定する(S3220)。具体的に、管理計算機100は、制御対象データ管理テーブル113において、実行ジョブが使用するデータセットと名称が合致するテーブル内の行にある過去階層ポインタ11306から、過去階層保持テーブル119を参照して、実行ジョブ使用データに対し、過去の同一ジョブの実行で割り当てた階層記憶の情報を取得する。管理計算機100は、この過去階層保持テーブル119における階層番号が共通のアドレスマップ内の行数を数えることで、階層番号毎に必要な空き容量を算出する。そして、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、算出した階層番号(階層記憶)毎の空き容量がストレージ装置300の該当プールに存在しているかを判定する。
ステップS3220において、階層記憶に過去データセット再現分の空きがあると判定された場合には、過去の実行ジョブが使用したデータセットに割り当てていた階層記憶を再現する(S3230)。具体的に、管理計算機100は、上記の過去階層保持テーブル119の内容を階層テーブル117に複製し、IO要求7300を作成し、ホスト計算機200を経由して、ストレージ装置300に指示を出す。管理計算機100は、2種類のIO要求7300を作成し、順次ストレージ装置300に発行する。1つめのIO要求7300は、指示内容にページ階層移動、オプションに階層テーブル117の内容が登録されたものである。2つめのIO要求7300は、指示内容にページロック開始、オプションに階層テーブル117を登録したものである。
ステップS3220において、階層記憶に過去データセット再現分の空きがないと判定された場合には、管理計算機100は、上記した細粒度階層記憶割り当て処理を実行して(S3500)、処理を呼び出し元に戻す。
次に、図29のステップS3600における横取り処理について説明する。図31は、管理計算機100による横取り処理の処理手順を示すフローチャートである。当該横取り処理は、制御対象のアプリケーションデータを階層記憶に割り当てる際、割当先の階層記憶に空きが無い場合、当該アプリケーションデータよりも優先度の低いデータで上位階層記憶を利用しているデータがあれば、当該領域を制御対象のデータで置き換える処理である。これにより、優先度の高いアプリケーションデータを極力高い入出力性能の階層記憶に配置することが可能となり、結果として優先度の高いアプリケーションの処理を優先的に高い性能で処理させることが可能となる。
まず、管理計算機100は、現状の階層記憶の割り当て状況を確認する(S3610)。具体的に、管理計算機100は、階層記憶利用状況管理テーブル116を参照し、上位階層記憶(例えば階層番号11601の値が1)で低優先のページロック済み容量を取得する。
次に、管理計算機100は、階層記憶制御対象のデータと優先度の低い上位階層記憶に配置されるデータとの置き換えが可能か否かを判定する(S3620)。具体的に、管理計算機100は、階層記憶制御対象のデータの容量がステップS3610で得られた空き容量よりも小さいか否かを判定する。
ステップS3620において、階層記憶制御対象のデータの容量がステップS3610で得られた空き容量よりも小さいか、等しいと判定された場合には、階層記憶制御対象のデータと優先度の低い上位階層記憶に配置されるデータとを置き換えて(S3640)、呼び出し元に処理を戻す。
一方、ステップS3620において、階層記憶制御対象のデータの容量がステップS3610で得られた空き容量よりも大きいと判定された場合には、管理計算機100は、横取り処理の実行が不可能であると判定し、アラートを管理計算機100の使用者に通知し(ステップS3630)、呼び出し元に処理を戻す。
次に、運用段階における階層記憶の優先度変更処理について説明する。図32は、管理計算機100による階層記憶の優先度変更処理の処理手順を示すフローチャートである。
ホスト計算機200では、OS212のアプリケーション処理部の指示により、アプリケーションが実行される。アプリケーション処理部では、アプリケーションの実行時間があまりにも長い場合、当該アプリケーションの優先度を変更し、早期に処理を完了させる場合がある。階層記憶の優先度変更処理では、アプリケーションの優先度が変更になった場合に、階層記憶制御で対応するための処理である。例えば、優先度が高まったアプリケーションに対しては、当該アプリケーションが利用するデータで、低位の階層記憶に配置されているものを上位階層記憶に移動させることにより、アプリケーションの優先度の変更に対応することができる。
まず、管理計算機100は、階層記憶制御処理を行っているジョブの優先度が変更したかを判定する(S6010)。ホスト計算機200でアプリケーションの優先度が変更になる場合、ホスト計算機200はエージェントプログラムの指示により、優先度が変更になったアプリケーションに関する情報(ジョブ名など)を管理計算機100に通知する。以下、優先度が変更になったジョブを該当ジョブと称して説明する。
ステップS6010において、ホスト計算機200からの通知により、ジョブの優先度が変更したと判定された場合には、管理計算機100は、階層記憶の状況を取得する(S6025)。具体的に、管理計算機100は、ホスト計算機200から優先度が変更したことを通知されると、該当ジョブが入出力優先の処理か否かの調査をホスト計算機200のエージェントプログラム213に指示する。
一方、ステップS6010において、入出力優先に関する処理ではないと判定された場合には、処理を終了する。
そして、ステップS6025の後、管理計算機100は、ステップS6030の処理を実行する。ステップS6030では、管理計算機100は、ホスト計算機200にストレージ装置300における階層記憶容量の状態に関し問い合わせを指示する。ホスト計算機200は、管理計算機100の指示により、指示内容としてプール状態取得を指定したIO要求7300を作成し、ストレージ装置300に発行する。当該IO要求を受け取ると、ストレージ装置300は、ストレージ装置300のIO要求に指示されたプールIDをもつ階層記憶プール管理情報1290を参照し、階層記憶番号とその総容量情報、空き総容量情報などをホスト計算機200に返す。IO要求の応答を受け取ると、ホスト計算機200は得られた情報を管理計算機100に転送する。管理計算機100は上記情報を受信すると、階層記憶利用状況管理テーブル116の該当領域(全体容量11602、空き容量11603)を更新する。
そして、管理計算機100は、ホスト計算機200に該当ジョブが使用するデータがストレージ装置300のどの階層記憶に配置されているかを調査する。具体的に、管理計算機100は、該当ジョブが使用するデータを、実行中ジョブ管理テーブル112を参照することで特定する。さらに、実行中ジョブ管理テーブル112を参照することで得られたデータセット名を下に、制御対象データ管理テーブル113を参照し、当該データがストレージ装置300のどのボリュームに配置されているかを特定する。そして、管理計算機100は、ホスト計算機200を介して、ストレージ装置300に指示内容をボリューム階層状態取得にしたIO要求7300を発行して、上記データがストレージ装置300のどの階層記憶に配置されているかを調査する。ストレージ装置300は、上記IO要求を受信すると、指定された論理ボリュームのアドレスと階層番号との関係を、仮想論理ボリューム管理情報1270を参照することで取得し、その情報をIO要求の応答と共に返す。管理計算機100は、ストレージ装置300からIO要求の応答が戻ると、IO要求の応答から得られた情報を階層テーブル117に設定する。
次に、管理計算機100は、上位階層に空き容量があるかを判定する(S6040)。具体的に、管理計算機100は、階層テーブル117を参照し、中位階層記憶に配置されているデータの容量を計算する。そして、管理計算機100は、計算した容量がステップS6025で取得した階層記憶利用状況管理テーブル116の高位階層記憶の空き容量11603よりも小さいことを確認する。
ステップS6040において、中位階層記憶に配置されているデータが上位階層記憶の空き容量よりも小さいか等しいと判定された場合には、管理計算機100は、階層テーブル117のデータで、階層番号11703が中位階層であるものを上位階層に書き換え、ホスト計算機200を介して2種類のIO要求7300をストレージ装置300に発行することにより、上位階層記憶に中位階層記憶に配置されているデータを移動する。ここで、2つのIO要求7300とは、1つ目のIO要求の指示内容がページ階層移動であり、2つめのIO要求の指示内容がページロックである。
ステップS6040において、中位階層記憶に配置されているデータが上位階層記憶の空き容量よりも大きいと判定された場合には、管理計算機100は、上記した横取り処理3600を実行する(S3600)。
次に、管理計算機100は、中位階層に空き容量があるかを判定する(S6060)。具体的に、管理計算機100は、階層テーブル117を参照し、下位階層記憶に配置されているデータの容量を計算する。そして、管理計算機100は、計算した容量がステップS6025で取得した階層記憶利用状況管理テーブル116の中位階層記憶の空き容量11603よりも小さいことを確認する。
ステップS6060において、下位階層記憶に配置されているデータが中位階層記憶の空き容量よりも小さいか等しいと判定された場合には、管理計算機100は、階層テーブル117に格納されたデータのうち、階層番号11703が下位階層であるものを中位階層に書き換える。そして、ステップ6050同様、ホスト計算機200を介して2種類のIO要求7300をストレージ装置300に発行することにより、中位階層記憶に下位階層記憶に配置されているデータを移動する。
ステップS6040において、下位階層記憶に配置されているデータが中位階層記憶の空き容量よりも大きいと判定された場合には、管理計算機100は、上記した横取り処理3600を実行し、処理を終了する。
次に、運用段階における階層記憶割り当て解除処理について説明する。図33は、管理計算機100による階層記憶割り当て解除処理の処理手順を示すフローチャートである。階層記憶割り当て解除処理は、ホスト計算機200で実行されるジョブが終了することを検出すると、後続ジョブで同一データを使うものが無い限り、当該ジョブが使用するデータへの階層制御処理も終了する。
まず、管理計算機100は、ホスト計算機200のエージェントプログラム213を介し、定期的にジョブの実行状況を監視して、実行中のジョブが終了したかを判定する(S9005)。
ステップS9005において、実行中のジョブが終了したと判定された場合には、終了するジョブの情報を収集する。収集する情報は、ジョブ名、ジョブ開始時刻などである。ここで、管理計算機100によって検出される終了するジョブを終了ジョブとよぶことにする。
次に、管理計算機100は、実行中ジョブ管理テーブル112を参照し、終了ジョブと同一のジョブが後続に実行されているかを判定する(ステップS9010)。具体的に、管理計算機100は、実行中ジョブ管理テーブル112を参照し、同テーブルに終了ジョブと同一ジョブ名のジョブが、終了ジョブとは別に存在しているかを確認する。
ステップS9010において、終了ジョブと同一ジョブが存在していると判定された場合には、階層記憶制御を終了せず本処理を終了する。これにより、後続のジョブで終了ジョブと同一ジョブが実行された場合に、終了ジョブ使用データに割り当てた階層記憶を後続ジョブでも再利用することが可能となる。
ステップS9010で後続ジョブに終了ジョブと同一ジョブが存在しない場合には、管理計算機100は、後続ジョブで終了ジョブが使用したデータセットと同一データセットを参照するものがあるか否かを確認する(S9020)。具体的に、管理計算機100は、実行中ジョブ管理テーブル112を参照し、終了ジョブが使用するデータセットと同一なデータセットを参照するジョブが存在しているか否かを確認する。
ステップS9020において、終了ジョブと同一のデータセットを参照するジョブが存在していると判定された場合には、階層記憶制御を終了せず本処理を終了する。これにより、後続のジョブで終了ジョブと同一データセットが参照されるものと判定し、終了ジョブ使用データに割り当てた階層記憶を後続ジョブでも再利用することができる。
ステップS9020において、後続ジョブが終了ジョブと同一のデータセットを参照するジョブが存在しないと判定された場合には、管理計算機100は、近い将来に終了ジョブと同一ジョブが再度実行されるかを判定する(S9030)。具体的に、管理計算機100は、ホスト計算機200のOS212などが備えるジョブスケジューラに終了ジョブと同一ジョブが登録されていないかを確認する。ジョブスケジューラに終了ジョブと同一ジョブが登録されている場合、さらに、管理計算機100は、スケジューラの該当ジョブが終了ジョブの終了時刻から近い間隔で実行されるものかを確認する。
ステップS9030において、近い時間間隔で終了ジョブと同一ジョブが実行されると判定された場合には、スケジューラで実行される当該ジョブのために、階層記憶制御を終了せずに本処理を終了する。
一方、ステップS9030において、近い時間間隔で終了ジョブと同一ジョブが実行されないと判定された場合には、ステップS9040の処理を実行する。
ステップS9040では、管理計算機100は、現状の階層記憶の割り当て状況を取得して、当該割り当て状況を保存する。具体的に、管理計算機100は、ホスト計算機200を経由して、ストレージ装置300にIO要求(指示内容はボリューム階層状態取得)を発行し、終了ジョブが使用したデータへの階層記憶配置を取得する。ストレージ装置300は、上記IO要求を受け取ると、仮想論理ボリューム管理情報1270を参照し、同テーブル内の仮想アドレス12703と階層番号12704を抜き取り、IO要求の応答としてIO要求発行元に返す。管理計算機100は、IO要求の結果を基に、終了ジョブ使用データセット向けに過去階層保持テーブル119を作成し、保管する。
ここで、管理計算機100は、別手段でジョブ使用データの入出力性能を監視しておき、その性能に基づき、過去階層保持テーブル119に保存する情報を変更しても良い。例えば、管理計算機100は、ジョブ使用データの入出力性能が想定よりも低いものであった場合、ストレージシステムから得られた階層記憶配置を変更し、階層記憶の低いものを高いものに変更して過去階層保持テーブル119に保存するといった処理をしても良い。この処理により、ジョブ使用データの実際の入出力性能結果に基づき、後続ジョブの入出力性能を適正化し、本来使用者が設定したジョブの入出力性能の要求値に近づけることができる。
次に、管理計算機100は、過去のジョブが使用したデータセットに割当たっている階層記憶を解除する手続きを行う(S9040)。具体的に、管理計算機100は、過去のジョブが使用するデータセットが配置されているボリュームを宛先に設定し、ページロック解除を指示内容にしたIO要求7300をストレージ装置300に発行する。ストレージ装置300は、当該IO要求7300を受け取ると、ページロックしていた該当仮想論理ボリューム上の指定ページを解除する。
以上、運用段階における階層記憶割り当て解除処理により、終了ジョブが使用したデータを後続ジョブで再利用することができる。これにより、高い入出力性能を常に再現することが可能となる。さらに、後続ジョブが実行されない間は、ページロックを解除することにより、上位階層記憶を別のジョブで使いまわすことができ、高価な階層記憶を有効に利用することが可能となる。
(1−6)本実施の形態の効果
以上のように、本実施の形態によれば、アプリケーションが使用するデータのファイル編成を管理計算機100で管理することで、ファイル編成の特性を利用して、アプリケーションのデータ使用特性を引き出すことが可能となり、OSなどで管理するファイルなどの単位よりも細やかな階層制御を実現することができる。また、ホスト計算機200が備えるジョブの動作と連動することで、アプリケーションが動作する期間に相当するジョブ使用期間だけに、高価な上位階層を割り当てるように、限りある階層記憶の資源を有効に利用することが可能となる。これにより、本実施の形態による計算機システム10は、制御対象として設定したアプリケーションデータに関して、常に使用者が求める高い入出力性能を提供することが可能となる。
また、計算機システム10では、ホスト計算機200で実行されるジョブとそのジョブが使用するデータを検出し、当該データのファイル編成を調査することで、当該データの中で参照頻度の高い領域を特定し、ストレージシステム内に配置された当該領域を上位階層記憶に移動し、ストレージシステム内の他階層記憶に移動しないように制御する。さらに、ジョブ終了を検出した際には、ジョブ使用データをストレージシステム内の上位階層記憶から移動が可能なように制御する。以上により、ジョブ実行時は当該ジョブが参照するデータを常に高い入出力性能で参照可能にするように制御することができる。また、ジョブが実行されていない場合は、当該ジョブのデータを上位階層記憶に配置しないようにすることで、資源に限りのあるストレージシステム内の階層記憶を有効に活用することが可能となり、計算機システム全体で高い入出力性能を提供することが可能となる。
(2)第2の実施の形態
(2−1)計算機システムのハードウェア構成
次に、本発明の第2の実施の形態に係る計算機システムについて説明する。本発明の第2の実施の形態によれば、ファイル編成を持たない計算機システムであっても、アプリケーションの挙動に基づいて、階層記憶を細やかに利用して効率的な制御が可能となる。
本実施の形態の一例として、例えば、図34に示す仮想テープシステム20を例示できる。仮想テープシステム20は、管理計算機100、ホスト計算機200A、仮想テープサーバ200B及びストレージ装置300から構成される。
仮想テープサーバ200Bは、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。CPUは、演算処理装置として機能し、メモリに記憶されているプログラムや演算パラメータ等にしたがって、ホスト計算機200の動作を制御する。また、仮想テープサーバ200Bは、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置と、モニタディスプレイやスピーカ等の情報出力装置とを備えている。
また、仮想テープサーバ200Bは、ネットワーク(図示せず)を介して管理計算機100、ホスト計算機200A及びストレージ装置300と接続されている。
なお、本実施の形態にかかる管理計算機100、ホスト計算機200A及びストレージ装置300の構成は、第1の実施の形態にかかる管理計算機100、ホスト計算機200及びストレージ装置300と同様の構成であるため、詳細な説明は省略する。
(2−2)仮想テープシステムの動作の詳細
仮想テープシステム20で、仮想テープサーバ200Bなどがストレージ装置300を仮想化して、ホスト計算機200Aからのテープ制御指示に基づいて、ホスト計算機200Aにはあたかもテープが動作しているものとして見せるシステムである。このように、仮想テープシステム20では、ストレージ装置300を仮想テープとして仮想化して、ホスト計算機から受信したテープ制御指示に含まれるデータをディスクドライブに保存し、ホスト計算機200Aの要求により、保存したディスクドライブからデータを読み出している。
また、仮想テープシステム20では、論理ボリューム151にはテープフォーマットのデータが保存される。図35に、テープフォーマットのデータの一例を示す。
図35に示すように、仮想テープフォーマット1510は、テープ関連の情報が保管されるヘッダ1511に加え、データを分割して保管するためのギャップ1512と、データそのもので、ホスト計算機に転送するために適切な容量であるレコード1513から構成される。
仮想テープが参照される場合は、テープ同様にテープフォーマットの先頭(ヘッダ)から参照される。したがって、仮想テープのフォーマットでは、先頭に近いデータほど参照頻度が高いと言える。そこで、図36のように、管理計算機100の入出力頻度管理テーブル115に、ファイル編成が「仮想テープ」である仮想のデータセットを管理する。すなわち、ファイル編成が「仮想テープ」である場合に、高頻度入出力1欄11502に入出力頻度が最も高いデータとして「ヘッダ」が格納され、高頻度入出力2欄11503に入出力頻度が次いで高いデータとして「上位領域」が格納され、取得方法11504欄に当該高頻度入出力領域の論理ボリューム上の領域を取得するための手段として「仮想サーバツール」が格納される。
上記した入出力頻度管理テーブル115を活用することにより、第1の実施の形態で説明したファイル編成と同様の細やかな階層制御を実現することが可能となる。
また、仮想テープシステム20では、ホスト計算機200からのテープマウント指示により、ストレージ装置300へのデータ参照を開始する。また、ホスト計算機200からのテープアンマウント指示により、ストレージ装置300へのデータ参照を終了する。これは、上記した第1の実施の形態のジョブ開始とジョブ終了にそれぞれ相当する。
本実施の形態では、管理計算機100が、ホスト計算機200Aによるテープ制御指示を仮想テープサーバ200Bが受信したことを検出する。管理計算機100は、検出したテープ制御指示を解析し、そのテープ制御指示がテープマウント指示である場合には、図28に示したジョブ投入に基づいた階層制御処理を実行する。一方、管理計算機100は、解析したテープ制御指示がテープアンマウント指示である場合、図33の階層記憶割り当て解除処理を実行する。
100 管理計算機
101 ストレージ情報テーブル
111 ストレージ管理プログラム
112 実行中ジョブ管理テーブル
113 制御対象データ管理テーブル
114 ユーザ設定情報管理テーブル
115 入出力頻度管理テーブル
116 階層記憶利用状況管理テーブル
117 階層テーブル
118 ホスト構成管理テーブル
119 過去階層保持テーブル
200 ホスト計算機
211 アプリケーションプログラム
213 エージェントプログラム
300 ストレージ装置
1200 共有メモリ
1220 仮想ボリューム処理プログラム
1230 コピー処理プログラム
1240 入出力処理プログラム
1250 ボリューム管理情報
1260 ストレージ基本情報
1270 仮想論理ボリューム管理情報
1290 階層記憶プール管理情報
1300 入出力制御部
1310 プロセッサ
1320 送受信部
1330 メモリ
1400 ディスク制御部
1500 ディスクドライブ

Claims (9)

  1. ストレージ装置と、前記ストレージ装置へのデータの書き込みを要求するホスト計算機と、前記ストレージ装置と前記ホスト計算機とを管理する管理計算機と、がネットワークを介してそれぞれ相互に接続された計算機システムであって、
    前記ストレージ装置は、
    性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、前記ホスト計算機からの前記データの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、
    前記制御部は、
    前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定し、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる
    ことを特徴とする、計算機システム。
  2. 前記ストレージ装置の前記制御部は、
    前記仮想ボリュームの所定の領域に対して割当られた記憶領域に格納されているデータを、所定の条件にしたがって、既に割り当てられている一の前記階層記憶から性能の異なる他の前記階層記憶に移動させる
    ことを特徴とする、請求項1に記載の計算機システム。
  3. 前記ストレージ装置の前記制御部は、
    前記仮想ボリュームの所定の領域に対して割当られた記憶領域に格納されているデータを、当該データのアクセス頻度に応じて、既に割り当てられている一の前記階層記憶から性能の異なる他の前記階層記憶に移動させる
    ことを特徴とする、請求項2に記載の計算機システム。
  4. 前記ストレージ装置の前記制御部は、
    前記特定のデータのうち参照頻度の高い領域を前記特定のデータの編成情報に基づいて移動させた場合に、移動後の前記階層記憶から当該階層記憶と異なる前記階層記憶への前記特定のデータの移動を抑止する、
    ことを特徴とする、請求項1に記載の計算機システム。
  5. 前記管理計算機は、
    前記特定のデータの編成情報に基づいて、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる際に、前記他の階層記憶に空き領域がなかった場合には、前記ホスト計算機により実行されている複数のプログラムの優先度を比較し、当該優先度に応じて前記プログラムが使用する前記データを前記階層記憶間で移動させるように前記ストレージ装置を制御する
    ことを特徴とする、請求項1に記載の計算機システム。
  6. 前記管理計算機は、
    前記特定のデータの編成情報に基づいて、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる際に、前記他の階層記憶に空き領域がなかった場合には、前記ホスト計算機により実行されている複数のプログラムの優先度を比較し、前記特定のデータの移動先となる前記他の階層記憶の領域に記憶されている前記データを利用しているプログラムのうち、優先度の低い前記プログラムが使用する前記データを、既に割り当てられている一の前記階層記憶から、より性能の低い他の階層記憶に移動させるように前記ストレージ装置を制御する
    ことを特徴とする、請求項5に記載の計算機システム。
  7. 前記管理計算機は、
    前記ホスト計算機により実行されている一のプログラムとは異なる他のプログラムの実行が開始され、前記他のプログラムが使用するデータのうち参照頻度の高い領域を、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる際に、前記他の階層記憶に空き領域が存在せず、前記一のプログラムが前記他のプログラムよりも優先度が低い場合に、前記一のプログラムが使用するデータを、既に割り当てられている一の前記階層記憶からより性能の低い他の前記階層記憶に移動させるように前記ストレージ装置を制御する
    ことを特徴とする、請求項6に記載の計算機システム。
  8. 前記管理計算機は、
    前記ホスト計算機により実行されている一のプログラム終了時に、前記一のプログラムよりも後に実行される他のプログラムが前記一のプログラムと同一のデータを使用する場合に、前記一のプログラム終了後に、当該データが配置されている一の階層記憶から他の階層記憶への移動を抑止するように前記ストレージ装置を制御する
    ことを特徴とする、請求項5に記載の計算機システム。
  9. ストレージ装置と、前記ストレージ装置へのデータの書き込みを要求するホスト計算機と、前記ストレージ装置と前記ホスト計算機とを管理する管理計算機と、がネットワークを介してそれぞれ相互に接続された計算機システムにおけるストレージ管理方法であって、
    前記ストレージ装置は、
    性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、前記ホスト計算機からの前記データの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、
    前記制御部が、
    前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定する第1のステップと、
    既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる第2のステップと、
    を含むことを特徴とする、ストレージ管理方法。

JP2013540511A 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法 Expired - Fee Related JP5771280B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013540511A JP5771280B2 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/JP2011/006048 WO2013061382A1 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法
JP2013540511A JP5771280B2 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法

Publications (2)

Publication Number Publication Date
JPWO2013061382A1 true JPWO2013061382A1 (ja) 2015-04-02
JP5771280B2 JP5771280B2 (ja) 2015-08-26

Family

ID=48167250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013540511A Expired - Fee Related JP5771280B2 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法

Country Status (3)

Country Link
US (2) US8954671B2 (ja)
JP (1) JP5771280B2 (ja)
WO (1) WO2013061382A1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124311A1 (en) * 2009-08-04 2012-05-17 Axxana (Israel) Ltd. Data Gap Management in a Remote Data Mirroring System
US9335928B2 (en) * 2011-10-01 2016-05-10 International Business Machines Corporation Using unused portion of the storage space of physical storage devices configured as a RAID
US9836340B2 (en) * 2011-10-03 2017-12-05 International Business Machines Corporation Safe management of data storage using a volume manager
US9817733B2 (en) * 2011-10-05 2017-11-14 International Business Machines Corporation Resource recovery for checkpoint-based high-availability in a virtualized environment
US9811288B1 (en) * 2011-12-30 2017-11-07 EMC IP Holding Company LLC Managing data placement based on flash drive wear level
WO2013140447A1 (en) * 2012-03-21 2013-09-26 Hitachi, Ltd. Storage apparatus and data management method
KR20130131135A (ko) * 2012-05-23 2013-12-03 삼성전자주식회사 QoS 기반 캐시 컨트롤러 및 그 동작 방법
US9773531B2 (en) * 2012-06-08 2017-09-26 Hewlett Packard Enterprise Development Lp Accessing memory
US10037271B1 (en) * 2012-06-27 2018-07-31 Teradata Us, Inc. Data-temperature-based control of buffer cache memory in a database system
WO2014081719A1 (en) * 2012-11-20 2014-05-30 Peddle Charles I Solid state drive architectures
US11037625B2 (en) 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
US9547454B2 (en) * 2013-01-15 2017-01-17 International Business Machines Corporation Selecting first data sets in a first storage group to swap with second data sets in a second storage group
US9778884B2 (en) * 2013-03-13 2017-10-03 Hewlett Packard Enterprise Development Lp Virtual storage pool
US9201662B2 (en) * 2013-03-29 2015-12-01 Dell Products, Lp System and method for pre-operating system memory map management to minimize operating system failures
US20140297953A1 (en) * 2013-03-31 2014-10-02 Microsoft Corporation Removable Storage Device Identity and Configuration Information
US9836413B2 (en) * 2013-04-03 2017-12-05 International Business Machines Corporation Maintaining cache consistency in a cache for cache eviction policies supporting dependencies
JP6142685B2 (ja) * 2013-06-12 2017-06-07 富士通株式会社 ストレージシステム、運用管理方法及び運用管理プログラム
US9552370B1 (en) * 2013-06-27 2017-01-24 EMC IP Holding Company LLC Signaling impending out of storage condition from a virtual tape drive
CN104516678B (zh) 2013-09-29 2017-09-26 国际商业机器公司 用于数据存储的方法和设备
US9824020B2 (en) * 2013-12-30 2017-11-21 Unisys Corporation Systems and methods for memory management in a dynamic translation computer system
US10031863B2 (en) * 2014-01-30 2018-07-24 Hewlett Packard Enterprise Development Lp Access controlled memory region
US11073986B2 (en) * 2014-01-30 2021-07-27 Hewlett Packard Enterprise Development Lp Memory data versioning
TWI552162B (zh) * 2014-07-31 2016-10-01 Zhi-Cheng Xiao Low power memory
US11095715B2 (en) 2014-09-24 2021-08-17 Ebay Inc. Assigning storage responsibility in a distributed data storage system with replication
WO2016095156A1 (en) * 2014-12-18 2016-06-23 Intel Corporation Translation cache closure and persistent snapshot in dynamic code generating system software
GB2541038B (en) * 2014-12-23 2019-01-16 Intel Corp Apparatus and method for managing a virtual graphics processor unit (VGPU)
US9430290B1 (en) * 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
US9875037B2 (en) * 2015-06-18 2018-01-23 International Business Machines Corporation Implementing multiple raid level configurations in a data storage device
US10432723B2 (en) * 2015-09-03 2019-10-01 Toshiba Memory Corporation Storage server and storage system
US9760290B2 (en) * 2015-09-25 2017-09-12 International Business Machines Corporation Smart volume manager for storage space usage optimization
US9946512B2 (en) * 2015-09-25 2018-04-17 International Business Machines Corporation Adaptive radix external in-place radix sort
US9513968B1 (en) 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US9921757B1 (en) * 2016-03-31 2018-03-20 EMC IP Holding Company LLC Using an FPGA for integration with low-latency, non-volatile memory
US10552038B2 (en) 2016-05-13 2020-02-04 International Business Machines Corporation Object storage architecture based on file_heat
US10296460B2 (en) * 2016-06-29 2019-05-21 Oracle International Corporation Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds
US10740016B2 (en) * 2016-11-11 2020-08-11 Scale Computing, Inc. Management of block storage devices based on access frequency wherein migration of block is based on maximum and minimum heat values of data structure that maps heat values to block identifiers, said block identifiers are also mapped to said heat values in first data structure
US10691614B1 (en) * 2016-11-18 2020-06-23 Tibco Software Inc. Adaptive page replacement
JP6341307B1 (ja) * 2017-03-03 2018-06-13 日本電気株式会社 情報処理装置
US10379912B2 (en) 2017-04-11 2019-08-13 International Business Machines Corporation Data storage allocation utilizing virtual machine resource allocation
WO2019030883A1 (ja) * 2017-08-10 2019-02-14 株式会社日立製作所 計算機システムおよびデータ処理方法
US10534559B2 (en) 2018-02-14 2020-01-14 International Business Machines Corporation Heat-tiered storage system having host awareness
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US10956058B2 (en) 2018-08-03 2021-03-23 Western Digital Technologies, Inc. Tiered storage system with tier configuration by peer storage devices
US10628074B2 (en) * 2018-08-03 2020-04-21 Western Digital Technologies, Inc. Tiered storage system with data routing by peer storage devices
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules
US11797209B2 (en) * 2021-03-30 2023-10-24 Hitachi, Ltd. Storage pool determination system
US11907197B2 (en) * 2021-09-02 2024-02-20 Netapp, Inc. Volume placement failure isolation and reporting
US20240028205A1 (en) * 2022-07-20 2024-01-25 Dell Products L.P. Hybrid storage device with data migration for an information handling system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128276A (ja) * 1995-08-28 1997-05-16 Toshiba Corp 計算機システムおよびそのシステムで使用されるファイル管理方法
WO2009088007A1 (ja) * 2008-01-11 2009-07-16 Nec Corporation コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法およびプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3448068B2 (ja) 1991-12-24 2003-09-16 富士通株式会社 データ処理システムおよびストレージ管理方法
US6324620B1 (en) * 1998-07-23 2001-11-27 International Business Machines Corporation Dynamic DASD data management and partitioning based on access frequency utilization and capacity
US6904599B1 (en) * 1999-11-29 2005-06-07 Microsoft Corporation Storage management system having abstracted volume providers
JP2001337790A (ja) * 2000-05-24 2001-12-07 Hitachi Ltd 記憶システム及びその階層管理制御方法
JP4549787B2 (ja) * 2004-09-10 2010-09-22 株式会社日立製作所 ストレージ装置
GB0514529D0 (en) * 2005-07-15 2005-08-24 Ibm Virtualisation engine and method, system, and computer program product for managing the storage of data
JP2007066259A (ja) 2005-09-02 2007-03-15 Hitachi Ltd 計算機システムとストレージシステム並びにボリューム容量拡張方法
JP4749255B2 (ja) * 2006-07-03 2011-08-17 株式会社日立製作所 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP2008097502A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd 容量監視方法及び計算機システム
JP4477681B2 (ja) * 2008-03-06 2010-06-09 富士通株式会社 階層記憶装置、制御装置、および制御方法
JP5186982B2 (ja) * 2008-04-02 2013-04-24 富士通株式会社 データ管理方法及びスイッチ装置
US8566550B2 (en) * 2009-09-22 2013-10-22 Hitachi, Ltd. Application and tier configuration management in dynamic page reallocation storage system
US8627004B2 (en) * 2010-01-07 2014-01-07 International Business Machines Corporation Extent migration for tiered storage architecture
US8375180B2 (en) * 2010-02-05 2013-02-12 International Business Machines Corporation Storage application performance matching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128276A (ja) * 1995-08-28 1997-05-16 Toshiba Corp 計算機システムおよびそのシステムで使用されるファイル管理方法
WO2009088007A1 (ja) * 2008-01-11 2009-07-16 Nec Corporation コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法およびプログラム

Also Published As

Publication number Publication date
US20130111129A1 (en) 2013-05-02
WO2013061382A1 (ja) 2013-05-02
US8954671B2 (en) 2015-02-10
US20150127855A1 (en) 2015-05-07
US9747036B2 (en) 2017-08-29
JP5771280B2 (ja) 2015-08-26

Similar Documents

Publication Publication Date Title
JP5771280B2 (ja) 計算機システム及びストレージ管理方法
US8635427B2 (en) Data storage control on storage devices
EP2239655B1 (en) Storage controller and storage control method
US9684593B1 (en) Techniques using an encryption tier property with application hinting and I/O tagging
JP4943081B2 (ja) ファイル格納制御装置及び方法
JP4920976B2 (ja) データ移動方法及びストレージシステム
US7502904B2 (en) Information processing system and management device for managing relocation of data based on a change in the characteristics of the data over time
WO2012004837A1 (en) Storage apparatus and storage management method
US20070239803A1 (en) Remote mirroring method between tiered storage systems
JP2009093571A (ja) 記憶制御装置、記憶制御装置のデータアーカイブ方法及びストレージシステム
JP2008015623A (ja) 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP2007041904A (ja) ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
JP5957520B2 (ja) データ管理システム及び方法
US9547450B2 (en) Method and apparatus to change tiers
US8478936B1 (en) Spin down of storage resources in an object addressable storage system
JP2006003973A (ja) ストレージ装置とその論理記憶装置割り当て制御方法
JP5606583B2 (ja) ストレージ装置及び同装置の制御方法
WO2015145707A1 (ja) 追記型記憶装置への書き込みデータ決定方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150430

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150626

R150 Certificate of patent or registration of utility model

Ref document number: 5771280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees