[go: up one dir, main page]

JP2004302751A - Performance management method for computer system and computer system for managing performance of storage device - Google Patents

Performance management method for computer system and computer system for managing performance of storage device Download PDF

Info

Publication number
JP2004302751A
JP2004302751A JP2003093544A JP2003093544A JP2004302751A JP 2004302751 A JP2004302751 A JP 2004302751A JP 2003093544 A JP2003093544 A JP 2003093544A JP 2003093544 A JP2003093544 A JP 2003093544A JP 2004302751 A JP2004302751 A JP 2004302751A
Authority
JP
Japan
Prior art keywords
information
storage device
program
data
performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003093544A
Other languages
Japanese (ja)
Other versions
JP2004302751A5 (en
Inventor
Kazuhiko Mogi
和彦 茂木
Norifumi Nishikawa
記史 西川
Hideomi Idei
英臣 出射
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 JP2003093544A priority Critical patent/JP2004302751A/en
Priority to US10/633,637 priority patent/US7089347B2/en
Priority to EP03018058A priority patent/EP1471441B1/en
Priority to DE60322182T priority patent/DE60322182D1/en
Publication of JP2004302751A publication Critical patent/JP2004302751A/en
Publication of JP2004302751A5 publication Critical patent/JP2004302751A5/ja
Priority to US11/454,935 priority patent/US7694070B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】DBMSが稼動する計算機システムにおいて、記憶装置に対する性能管理を、ユーザの業務における性能指標を用いておこなえるようにし、性能管理を容易化する。
【解決手段】計算機システムの管理サーバは、各構成要素の稼動状態や、業務の応答時間等をモニタし、要求性能等の予め与えた処理に関する情報や収集したモニタ情報を用いて、処理を実施するときやモニタ値からチューニングが必要と判断した場合に、ポートにおける処理量の割り当てや、データに対するキャッシュ量の割り当て、ディスク装置の論理構成等の変更指示を出す。
バッチ業務をおこなう処理に対しては、処理時間を見積る方法を管理サーバに与え、見積り実行時間を基に設定変更指示を出す。オンライン業務をおこなう処理では、処理の応答時間やスループットが要求性能に満たない場合に、負荷が高い部分の設定を変更する指示を出す。
【選択図】 図1
In a computer system on which a DBMS operates, performance management for a storage device can be performed using a performance index in a user's business, thereby facilitating the performance management.
A management server of a computer system monitors an operation state of each component, a response time of a task, and the like, and executes a process using information related to a predetermined process such as a required performance and collected monitor information. When it is determined that tuning is necessary based on the monitor value, an instruction to change the allocation of the processing amount in the port, the allocation of the cache amount to the data, and the logical configuration of the disk device is issued.
For a process for performing a batch operation, a method for estimating the processing time is given to the management server, and a setting change instruction is issued based on the estimated execution time. In the process of performing an online job, when the response time or throughput of the process does not meet the required performance, an instruction to change the setting of the portion with a high load is issued.
[Selection diagram] Fig. 1

Description

【0001】
【発明の属する技術分野】
本発明は、計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システムに係り、特に、業務プログラム処理の要求性能に応じて、大規模データベース管理システム(DBMS,Database Management System)が稼動する計算機システム内の記憶装置の性能を調整し、要求されたシステムの性能を発揮するために用いて好適な計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システムに関する。
【0002】
【従来の技術】
近年、データベース(DB,Database)に関する一連の処理・管理をおこなうソフトウェアであるデータベース管理システム(DBMS)は極めて重要なものとなってきており、サーバ計算機上で実行されるアプリケーションプログラム(APプログラム)のソフトウェア構成を調べても、DBを基盤として利用するものが多数を占めるようになってきている。
【0003】
APプログラムの利用に際しては、業務毎に定まる要求性能が存在し、それを守ることが強く求められており、その管理は計算機システムの管理業務の中で極めて重要である。一般に、DBMSの性能は、データへのアクセス性能から多大な影響を受ける。データアクセス性能は、データアクセスパスに含まれるハードウェアリソースの稼動状況に強い影響を受けるため、記憶装置の稼動状況を考慮した性能管理が重要である。
【0004】
特許文献1では、データアクセスパスに含まれるハードウェアリソースの性能解析を容易化するため、DBMSから記憶装置間のデータのマッピングを取得し、各レイヤにおける稼動状況(稼働率)や、ある表やファイル等、データの管理構造に対応する他のレイヤの管理構造の稼動状況を提示する技術を開示している。特定の部位が過負荷状態の場合には、そこが性能低下の原因となっている可能性が極めて高い。そこで、特許文献1では、ある管理構造に属するデータの記憶位置を変更することによりそれを解消する最適化案の作成することにしている。
【0005】
一方、ハードウェアリソースの過負荷状態を解消することにより性能を最適化する機能を有する記憶装置が存在する。特許文献2は、計算機に論理記憶装置を認識させ、そのデータを記憶装置内部に複数存在する物理ディスク装置にマッピングして記憶する記憶装置において、論理記憶装置の物理ディスク装置へのマッピングを動的に(以下「他の処理を停止させることなく実施される」の意味で利用)変更することにより記憶装置のアクセス性能を向上する技術を開示している。この特許文献2では、稼働率が高い(過負荷状態の)物理ディスク装置に記憶されているデータの一部を他の物理ディスク装置に移動することにより、特定の物理ディスク装置が過負荷状態にならないようにし、性能を最適化する。
【0006】
また、Fibre Channel等を用いて、同一のポートを経由して複数の計算機と接続する場合に、特定の計算機からのアクセスを優先的に実行する機能を有する記憶装置が存在する(例えば、非特許文献1記載のPriorityAccess機能)。
【0007】
さらに、記憶装置の多くはキャッシュメモリを有している。したがって、データリード時にデータがキャッシュに存在している状態(ヒット)である確率を向上させることによりアクセス性能を向上させることができる。特許文献3では、データ種類毎に区分されたキャッシュ領域を持つ場合に、その領域割り当てを最適化してキャッシュヒット率を向上させる技術について開示している。この特許文献3では、LRU(Least Recently Used)置換アルゴリズムによるキャッシュデータ置換制御をおこなうシステムで、キャッシュヒット時にLRU管理リスト中のどの位置に存在するかの情報を取得し、その情報を用いて領域割り当て変更時のキャッシュヒット率の見積りをおこない、領域分割の最適化をおこなっている。
【0008】
【特許文献1】
米国特許第6,035,306号明細書
【特許文献2】
特開平9−274544号公報
【特許文献3】
米国特許第5,434,992号明細書
【非特許文献1】
Hitachi Data Systems社,「Hitachi Freedom Storage(TM) Lightning 9900(TM) V Series」,pp.8−9,DISK−432−00b, 2002年10月
【0009】
【発明が解決しようとする課題】
ユーザの業務における性能指標は、一括した大量データ処理をおこなうバッチ業務の場合には処理時間、オンライン業務の場合には応答時間や処理のスループットである場合が多い。しかしながら、従来技術が利用・提供する性能指標は、計算機システム内リソースの稼働率やキャッシュヒット率等の物理動作に直結したものであり、ユーザ視点での性能指標に直接結びつくものではない。また、多くの場合、従来技術が提供する複数の性能指標を調べ、その中から性能ボトルネックを発見・解消しないとユーザが求める性能を達成することはできない。現状では、それらの埋め合わせは管理者がおこなっており、しかも、これは簡単なものではなく、特別な技術を要する業務となっている。
【0010】
このように、現状の性能管理に関しては、管理者が関与する部分が少なくない。しかしながら、ヒューマンエラーの排除やその他管理コスト削減の観点から、できる限り管理は自動化することが好ましい。
【0011】
本発明は、上記従来技術の問題点を解決するためになされたもので、その目的は、DBMSが稼動する計算機システムにおいて、記憶装置に対する性能管理を、ユーザの業務における性能指標を用いておこなえるようにし、性能管理を容易化することである。
【0012】
また、本発明のさらなる目的は、DBSMが稼動する計算機システムにおいて、記憶装置の性能チューニング処理を自動化し、性能管理コストを削減することである。
【0013】
【課題を解決するための手段】
本発明の目的を達成するために以下のことを実施する。
【0014】
先ず、計算機システムの構成要素の動作状態を把握するために、各構成要素においてそれらの稼動状況や、業務の応答時間等をモニタし、それを管理サーバに集約する。管理サーバは、収集したモニタ情報や要求性能等の予め与えられた情報を用いて、処理を実施するときや、モニタ値からチューニングが必要と判断した場合には、記憶装置へ設定変更指示を出す。設定変更内容としては、記憶装置のポートにおける処理量の割り当てや、データに対するキャッシュ量の割り当て、データを記憶するディスク装置の記憶領域の構成変更等がある。
【0015】
バッチ業務をおこなうJob(管理サーバにおける処理を実現するプログラムの管理単位)に対しては、処理時間を見積る方法を管理サーバに与え、これを用いて処理時間を見積る。この見積りを用いて、要求時間内に処理が終わるように記憶装置の設定を変更する。処理時間は、データ処理量と現在利用可能な記憶装置のI/O処理量を考慮して見積る。処理時間を見積る方法は、実際に処理を実施させて計算機システムの各構成要素の動作状況を確認し、それと処理内容の対応付けを取ることにより定めることができる。
【0016】
オンライン業務をおこなうJobに関しては、処理の応答時間やスループットを計測し、要求性能に満たない場合に記憶装置の設定を変更する指示を出す。記憶装置のリソースの稼働率を参照して性能ボトルネックとなっている部分を発見し、それを解消するように設定変更指示を発行する。また、必要に応じて、アクセス性能を向上させるためにキャッシュ割り当ての変更指示を発行する。
【0017】
計算機システム内で複数のJobが並列して実施される場合には、異なるJob間で記憶装置内のリソースが共有され、性能ボトルネックになる可能性がある。そこで、Job毎に処理優先度を設け、リソース共有により問題が発生した場合には、優先度の低いJobが利用している処理量の一部を優先度が高いJobに割り当てることにより、優先度の高いJobの要求性能を維持する制御をおこなう。
【0018】
【発明の実施の形態】
以下、本発明に係る各実施形態を、図1ないし図28を用いて説明する。
【0019】
〔実施形態1〕
以下、本発明に係る第一の実施形態を、図1ないし図27を用いて説明する。
(I)本発明を適用する計算機システムの構成
先ず、図1を用いて本発明の第一の実施形態に係る記憶装置の性能を管理する計算機システムの構成について説明する。
図1は、本発明の第一の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【0020】
計算機システムは、記憶装置40、記憶装置40を使用する計算機(以下「サーバ」)70、システム性能その他の管理をおこなう計算機(以下「管理サーバ」)120、および、記憶領域の仮想化処理をおこなう仮想化スイッチ60を有する。各々の装置は、ネットワークI/F22を有し、それを介してネットワーク24に接続され、相互に通信可能である。
【0021】
サーバ70、仮想化スイッチ60、および、記憶装置40は、各々I/OパスI/F32を有し、それを介して通信線(以下「I/Oパス」)34により接続される。サーバ70と記憶装置40間のI/O処理は、I/Oパス34を用いて行われる。なお、I/Oパス34は、装置間で異なる物理媒体や異なるプロトコルでデータ転送をおこなう通信線が用いられてもよい。また、ネットワーク24とI/Oパス34が同一の通信線でもよい。
【0022】
記憶装置40は、CPU12、メモリ14、ディスク装置(以下「HDD」(Hard Disk Drive))16、ネットワークI/F22、I/OパスI/F32を有し、それらは、内部バス18で接続される。なお、HDD16は単数でも複数でもよい。メモリ14は、不揮発領域(ROM領域)と高性能領域(RAM領域)を有する。
【0023】
本実施形態では、記憶装置は論理ディスク装置(以下、「LU」(Logical Unit))を外部装置に対して提供し、データのアクセス単位としてブロックを用いることにする。
【0024】
記憶装置40を制御するプログラムである制御プログラム44は、メモリ14の不揮発領域に記憶され、起動時にメモリ14の高性能領域へ移された後にCPU12により実行される。記憶装置40が有する機能は、全て制御プログラム44により実現・制御される。
【0025】
また、メモリ14には制御プログラム44が記憶装置40を制御・管理するために利用する管理情報46が記憶される。さらに、メモリ14の一部は外部装置からアクセス要求のあったデータを一時的に記憶しておく領域であるデータキャッシュ42に割り当てられる。
【0026】
記憶装置40は、HDD16が有する物理記憶領域を仮想化して、一つまたは複数のLU208を外部装置に対して提供する。LU208は、HDD16と一対一に対応してもよいし、複数のHDD16から構成される記憶領域と対応してもよい。また、一つのHDD16が複数のLU208に対応してもよい。その対応関係は、管理情報46中に領域マッピング情報300の形で保持される。記憶装置40は、LU208の作成・削除、LU208の記憶領域の拡大・縮小を動的に(従来技術の項の定義参照)おこなう機能を有する。また、記憶装置40は、LU208とそのデータを記憶するHDD16の記憶領域との対応関係をデータ移動により動的に変更する機能を有する。
【0027】
記憶装置40は、LU208をアクセス可能なI/OパスI/F32のI/Oパス34へのポート26を一つ以上有する。また、ネットワークI/F22におけるネットワーク24へのポートを有する。
【0028】
ポートとアクセスするデータの対応関係は、上位ポートマッピング情報322(図4で後述)の形で管理情報46中に保持される。また、記憶装置40は、LU208をアクセス可能なポート26を動的に追加・削除する機能を有する。
【0029】
記憶装置40では、LU208を単位として記憶領域のグループ化が行われ、そのグループ毎に独立したデータキャッシュ42内の領域が割り当てられる(以下、このLU208のグループを「キャッシュグループ」と称する)。キャッシュグループの作成・削除や、それに所属するLU208の追加・削除は、動的におこなうことができる。また、記憶装置40は、キャッシュグループへのデータキャッシュ42の割当量を動的に変更する機能を有する。キャッシュグループにおけるキャッシュデータ置換制御は、それぞれ独立にLRU置換アルゴリズムを用いておこなう。また、前記アルゴリズムによるデータ置換によりデータキャッシュ42に存在しなくなったデータの記憶領域に関しても、置換後も一定量分は仮想管理領域としてLRU置換アルゴリズム用の管理リスト中にその情報を記憶し、稼動状況の計測に利用する。
【0030】
記憶装置40は、I/OパスI/F32のポート26毎に、特定の外部装置からアクセス要求を、単位時間あたりの処理量が設定値を満たすように優先的に実行する機能(以下「優先アクセス制御機能」)を有する。その設定は、管理情報46中にポートスループット設定情報440(図8で後述)の形で保持される。記憶装置40は、ポート26における優先アクセス制御機能の設定を作成・変更・削除する機能を有する。
【0031】
制御プログラム44は、記憶装置40の現存する各部位の稼動状況を計測し、それを管理情報46中にストレージモニタ情報360の形で記憶する。特に、キャッシュヒット数統計に関し、LRU置換アルゴリズム用のキャッシュセグメント(データキャッシュ42の領域管理単位)の管理リストを等サイズの複数領域に分割し、分割領域毎にヒット数を計測する。さらに、仮想管理領域に関しても実管理領域(実際にデータに対してキャッシュセグメントが割り当てられている領域)と等サイズの領域に分割して実管理領域と同様にヒット数を計測する。
【0032】
記憶装置40は、外部からの要求に応じて、領域マッピング情報300やストレージモニタ情報360、ポートスループット設定情報440、その他記憶装置40の構成情報を、ネットワーク24を介して外部に送信する機能を有する。なお、ここで出てきたデータ構造については、いずれも詳細に後述する。
【0033】
また、外部装置からネットワーク24を介して外部から受信した指示に従い、前述の各種機能を実行する機能を有する。
【0034】
仮想化スイッチ60は、CPU12、メモリ14、ネットワークI/F22、I/OパスI/F32を有し、それらは内部バス18で接続される。メモリ14は、不揮発領域(ROM領域)と高性能領域(RAM領域)を有する。
【0035】
仮想化スイッチ60を制御するプログラムである制御プログラム64は、メモリ14の不揮発領域に記憶され、起動時にメモリ14の高性能領域へ移された後にCPU12により実行される。仮想化スイッチ60が提供する機能は、全て制御プログラム64により制御される。また、メモリ14には、制御プログラム64が仮想化スイッチ60を制御・管理するために利用する管理情報66が記憶される。
【0036】
仮想化スイッチ60は、本装置に接続された記憶装置40から提供されるLU208を認識し、その記憶領域を仮想化して仮想ボリューム206を外部装置に提供する。なお、仮想化スイッチ60が多段接続された場合には、他の仮想スイッチ60が提供する仮想ボリューム206を記憶装置40から提供されるLU208と等価に扱い、その記憶領域を仮想化して仮想ボリューム206を外部装置に提供する。その対応関係は管理情報66中に領域マッピング情報300の形で保持される。仮想化スイッチ60は、仮想ボリューム206の作成・削除、仮想ボリューム206の記憶領域の拡大・縮小を動的におこなう機能を有する。さらに、仮想ボリューム206を構成するLU208や他の仮想ボリューム206の記憶領域との対応関係を動的に変更する機能を有する。また、仮想化スイッチ60は、それが保持する領域マッピング情報300で後述するフリーエントリ314に対応する領域について、領域マッピング情報300から削除する(以下「領域を開放する」)機能を有する。
【0037】
仮想化スイッチ60では、仮想ボリューム206をアクセス可能なI/OパスI/F32のポート26を一つ以上有する。その対応関係は、上位ポートマッピング情報322(後述)の形で管理情報66中に保持される。また、仮想ボリューム206をアクセス可能なポート26を動的に追加・削除する機能を有する。
【0038】
仮想化スイッチ60が提供する仮想ボリューム206がアクセスされた際、実施されたアクセス回数やその種別、転送されたデータ量をI/OパスI/F32のポート26毎に計測し、それを管理情報66中にポートモニタ情報400(図9で後述)の形で記憶する。
【0039】
仮想化スイッチ60は、外部からの要求に応じて、領域マッピング情報300やポートモニタ情報360を、ネットワーク24を介して外部に送信する機能を有する。また、外部装置からネットワーク24を介して外部から受信した指示に従い、前述の各種機能を実行する機能を有する。なお、これらのデータ構造については、後に詳細に説明する。
【0040】
サーバ70は、CPU12、メモリ14、HDD16、ネットワークI/F22、I/OパスI/F32を有し、それらは内部バス18で接続される。
【0041】
メモリ14上には、オペレーティングシステム(OS,Operating System)72と管理エージェント144がHDD16から読み込まれ、CPU12により実行される。
【0042】
OS72には、デバイスドライバ76、ボリュームマネージャ78、ファイルシステム80が含まれる。メモリ14上に読み込まれたOS72は、それらや他のOS72を構成するプログラムが利用する管理情報であるOS管理情報74を有する。OS管理情報74には、CPU12の数等、サーバ70のハードウェア構成の情報を含まれる。また、OS72は、OS管理情報74中に記憶されている情報を外部プログラムが読むためのソフトウェアインターフェイスを有する。なお、図1に示した例では、サーバ70は一つのファイルシステム80しか有していないが、複数のファイルシステム80を有してもよい。OS72は、OS72が動作している計算機で実施されるプログラムの管理をおこなう。このとき、実行中のプログラム全体がCPU12をどれだけ利用したかを計測、それを基にCPU12の稼働率を計算し、OS管理情報74中に保持する。
【0043】
デバイスドライバ76は、ネットワークI/F22やI/OパスI/F32等のハードウェアを制御するプログラムである。ネットワークI/F22やI/OパスI/F32を通してデータ転送(アクセス)をおこなった際に、実施された回数やその種別、転送されたデータ量をネットワークI/F22やI/OパスI/F32のポート26毎に計測し、それをOS管理情報74中にポートモニタ情報400の形で記憶する。
【0044】
ボリュームマネージャ78は、記憶装置40から提供されるLU208や仮想化スイッチ60から提供される仮想ボリューム206の記憶領域を仮想化し、論理ボリューム204をファイルシステム80に提供するプログラムである。その対応関係はOS管理情報74中に領域マッピング情報300の形で保持される。また、ボリュームマネージャ78は論理ボリューム204の構成変更(作成・削除を含む)を動的に実施する機能を有し、ボリュームマネージャ78が有するソフトウェアインターフェイスにより実行指示を与えることができる。ボリュームマネージャ78は、それが保持する領域マッピング情報300でフリーエントリ314に対応する領域を開放する機能を有する。また、ボリュームマネージャ78は、複数I/Oパス34を利用したI/O処理の負荷分散機能を有してもよい。
【0045】
ファイルシステム80は、記憶装置40から提供されるLU208や仮想化スイッチ60から提供される仮想ボリューム206、ボリュームマネージャ78から提供される論理ボリューム204の記憶領域を仮想化し、ファイル202を他のプログラムに提供するプログラムである。その対応関係はOS管理情報74中に領域マッピング情報300の形で保持される。なお、ファイル202と同じソフトウェアインターフェイスで、論理ボリューム204、仮想ボリューム206、LU208の記憶領域に直接アクセスする機能であるローデバイス機能も、ファイルシステム80により提供される。
【0046】
管理エージェント144は、管理サーバ120上で実行されるシステム管理プログラム140からネットワーク24を介して受け付けた処理要求をサーバ70で実行し、必要に応じてその結果をネットワーク24を介してシステム管理プログラム140に返信するプログラムである。管理エージェント144が実施する処理は、1)OS管理情報74中に記憶されている情報の読み出し、2)DBMS90やAPプログラム100の実行・停止、3)DBMS管理情報92中に記憶されている情報の読み出し、4)DBMS90にSQL(Structured Query Language)文を与え、SQL実行計画を取得、5)APプログラム管理情報102中に記憶されている情報の読み出し、6)ボリュームマネージャ78に対する構成変更指示、7)OS72に対する各種設定指示、等である。
【0047】
DBMS90は、DBに関する一連の処理・管理を実行するサーバ70上で実行されるプログラムである。DBMS90は、システム管理プログラム140からの指示に従って管理エージェント144から起動されて、サーバ70内のHDD16または記憶装置40からメモリ14に読み出されてCPU12により実行される。
【0048】
DBMS90は、記憶領域の管理単位として、一つ以上のファイル202が提供する記憶領域からなる「データ領域」を用いる。DBMS90が利用・管理する表・索引・ログ等(以下、まとめて「データ構造」と称する)は、それぞれ記憶されるべきデータ領域が定められている。データ領域の一部は、データ構造に対して未割り当てでもよい。
【0049】
メモリ14上に読み込まれたDBMS90は、データ記憶領域情報342を含むDBMS90の管理情報であるDBMS管理情報92を有する。DBMS90は、DBMS管理情報92を外部プログラムが読むためのソフトウェアインターフェイスを有する。
【0050】
DBMS90は、SQL文を与えるとそれの実行計画(以下、「SQL実行計画」と称す)を作成したのちにそれに従って処理を実行する。基本的に、検索条件以外同じSQL文を与えると同じSQL実行計画を作成する。DBMS90は、与えたSQL文のSQL実行計画を出力するソフトウェアインターフェイスを有する。また、SQL実行計画を出力するときに、DBMS90が見積もった処理件数等を同時に出力してもよい。
【0051】
APプログラム100は、ユーザがおこなう業務のためにサーバ70上で実行されるプログラムであり、DBMS90に対して処理要求を発行するものとする。APプログラム100は、システム管理プログラム140からの指示に従って管理エージェント144から起動され、サーバ70内のHDD16または記憶装置40からメモリ14に読み出されてCPU12により実行される。メモリ14上に読み込まれたAPプログラム100は、その管理情報であるAPプログラム管理情報102を有する。なお、APプログラム100は記憶装置40に記憶されるデータを扱う際に常にDBMS90に処理要求を発行してもよく、その場合には、APプログラム100が実行されるサーバ70はI/OパスI/F32を有さなくてもよい。
【0052】
本実施形態におけるオンライン業務のために実行されるAPプログラム100は、一つ以上の処理の組として実現され、処理それぞれに識別子である処理ID432がつけられる。ユーザはそのいずれかの処理実行を要求し、APプログラム100はそれに応じて処理を実施する。APプログラム100は受け付けた処理要求のキューイング制御を実施し、APプログラム100からDBMS90に対して処理要求を発行した場合には、DBMS90で即座に処理を開始できるものとする。APプログラム100は、処理に関する実行統計情報を取得し、それをオンラインJobモニタ情報430(図10で後述)としてAPプログラム管理情報102中に保持する。このとき、APプログラム100は、APプログラム管理情報102を外部プログラムが読むためのソフトウェアインターフェイスを有する。
【0053】
DBMS90やAPプログラム100は、1台のサーバ70上で複数同時に実行することができる。また、DBMS90とAPプログラム100が異なるサーバ70上で実行されてもよく、その場合には、APプログラム100はDBMS90に処理要求をネットワークを経由して伝達する。
【0054】
OS72やDBMS90、APプログラム100、管理エージェント144は、それらを記憶したCD−ROM(記憶媒体)が管理サーバ120が有するCD−ROMドライブ20を用いて読み出され、ネットワーク24を介してサーバ70内のHDD16もしくは記憶装置40にインストールされる。
【0055】
管理サーバ120は、CPU12、メモリ14、HDD16、CD−ROMドライブ20、ネットワークI/F22を有し、それらは内部バス18で接続される。
【0056】
メモリ14上には、OS72とシステム管理プログラム142がHDD16から読み込まれ、CPU12により実行される。CD−ROMドライブ20は、各種プログラムのインストールに用いられる。
【0057】
また、管理サーバ120には、キーボード・マウス等の入力装置112および表示画面114を有する管理端末110がネットワーク24を介して接続される。この接続は、ネットワーク24とは異なる通信線を用いてもよく、管理サーバ72と管理端末110が一体で構成されてもよい。管理者は、原則、情報の入出力を管理端末110を介して行い、必要に応じてCD−ROMドライブ20等も用いる。
【0058】
システム管理プログラム140は、管理サーバ120が有する、性能その他のシステム管理機能を実現するプログラムである。HDD16からメモリ14上に読み込まれ、CPU12により実行される。システム管理プログラム140は、その機能を実現するために必要な管理情報であるシステム管理情報142を有する。本プログラムは、それを記憶したCD−ROMが管理サーバ120が有するCD−ROMドライブ20を用いて読み出され、HDD16にインストールされる。本プログラムの動作詳細については後述する。
【0059】
なお、本実施形態の例では、システム管理プログラム140は管理サーバ120上で実行されるものとして説明するが、任意のサーバ70、仮想化スイッチ60、記憶装置40上で実行されてもよい。このとき、サーバ70では、HDD16に記憶され、メモリ14に読み出された後にCPU12により実行される。仮想化スイッチ60、記憶装置40では、メモリ14の不揮発領域に記憶され、メモリ14の高性能領域に移された後にCPU12により実行される。
(II)データマッピングの階層構造
次に、図2を用いて本実施形態のDBMS90が管理するデータのデータマッピングの階層構成について説明する。
図2は、本発明の第一の実施形態に係るDBMS90が管理するデータのデータマッピングの階層構成図である。
【0060】
本実施形態の例では、サーバ70と記憶装置40との間に一つの仮想化スイッチ60が存在する場合を説明する。なお、以下、ある2つの階層について、DBMS90に近い方(すなわち、アプリケーション側)を「上位」、HDD16に近い方(すなわち、物理的記憶手段側)を「下位」の階層と称する。また、記憶装置40、仮想化スイッチ60、ボリュームマネージャ78、ファイルシステム80をまとめて「仮想化機構」と称する。ファイル202、論理ボリューム204、仮想ボリューム206、LU208をまとめて「仮想構造」と称し、さらに、仮想構造にHDD16を加えたものをまとめて「管理構造」と称する。
【0061】
図2で示した例では、DBMS90は、それが管理しているデータ構造200を記憶しているファイルシステム80が提供するファイル202に対してアクセスをおこなう。ファイルシステム80は、ファイル202に対するアクセスを対応する論理ボリューム204の領域へのアクセスに変換する。ボリュームマネージャ78は、論理ボリューム204に対するアクセスを対応する仮想ボリューム206の領域へのアクセスに変換する。仮想化スイッチ60は、仮想ボリューム206に対するアクセスを対応するLU208の領域へのアクセスに変換する。記憶装置40は、LU208に対するアクセスを、対応するHDD16に対するアクセスに変換する。このように、仮想化機構は、それが上位階層に提供する仮想構造のデータを下位階層に存在する一つ以上の管理構造の記憶領域にマッピングする。
【0062】
また、図示しないが、ある仮想構造のデータの同一部分が複数の下位階層の管理構造にマッピングされてもよい。また、ある仮想構造のデータがHDD16にマッピングされる経路が複数存在してもよい。これらの場合には、仮想化機構が、そのようなマッピングであることを領域マッピング情報300中に保持しておく。さらに、ある管理構造が複数のサーバ70に共有されるマッピングを有してもよい。
【0063】
本実施形態では、論理層212における管理構造間のデータの対応関係が明確化されればよく、サーバ70でボリュームマネージャ78が使用されなくてもよい。さらに、仮想化スイッチ60は、複数段存在してもよいし、仮想化スイッチ60が存在せずにサーバ70と記憶装置40がI/Oパス34により直結されてもよい。仮想化スイッチ60に相当するスイッチが記憶領域の仮想化機能を有しなくてもよく、この場合、仮想化スイッチ60が下位階層から提供された管理構造をそのまま上位階層へ仮想構造として提供していると考える。
【0064】
なお、本実施形態の階層構成のモデルで、一つのLU208には一つのデータ構造208のみが記憶されるようにマッピングを作成すると、後述する記憶装置40の構成変更を変更した際の効果見積の精度向上等に役立つというメリットがある。
(III)データ構造
次に、図3ないし図17を用いて本実施形態の性能管理方法に用いられるデータ構造について説明する。
【0065】
先ず、図3を用いて領域マッピング情報300を説明する。
図3は、領域マッピング情報300のデータ構造を示す模式図である。
【0066】
領域マッピング情報300は、各仮想化機構の管理情報の中に置かれ、仮想化機構が提供する仮想構造の領域と、それが利用する管理構造の領域の対応を保持するものであり、エントリ302、304を有する。
【0067】
なお、ここでの説明では、上位仮想構造と下位管理構造を対応させるものとして、モデル化しているが、実際には、各対応する仮想化機構に応じて、(ファイル、論理ボリューム)、(論理ボリューム、仮想ボリューム)、(仮想ボリューム、論理ディスク装置)、(論理ディスク装置、HDD)の対応を示すものになる。
【0068】
エントリ302は、仮想化機構が上位階層に提供する仮想構造の領域に関する情報であり、仮想構造の識別子である仮想構造ID306を保持するエントリ、その構造内の領域を示すエントリ、その領域が下位階層の複数の仮想構造へ記憶されたり、異なる経路でHDD16に対応している場合に、それらを識別するための多重化方法を示すエントリの組を有する。エントリ304は、エントリ302に対応する下位階層の管理構造の領域に関する情報であり、管理構造をアクセスする際に利用するI/OパスI/F32のポート26の識別子であるポートID326を保持するエントリ、管理構造を提供する仮想化機構の識別子である仮想化機構ID308を保持するエントリ、管理構造の識別子である管理構造ID310を保持するエントリ、その構造内領域を示すエントリの組を有する。なお、ファイルシステム80がボリュームマネージャ78が提供する論理ボリューム204を利用する場合には、ポートID326を保持するエントリを保持しない。また、記憶装置40においては、ポートID326と仮想化機構ID308を有するエントリを保持しない。
【0069】
仮想構造ID306が“Free”であるフリーエントリ314は、本領域マッピング情報300を有する仮想化機構が、その領域を利用できる状態にあるが、まだ仮想構造として利用していない下位階層の記憶領域を示すことにする。データ移動による対応関係の動的変更機能を有する仮想化機構は、フリーエントリ314に対応する管理構造の記憶領域をデータ移動先として利用する。
【0070】
本実施形態においては、異なる仮想構造が同一の管理構造の記憶領域を利用することが許されるものとする。また、仮想化機構ID308、仮想構造ID306、管理構造ID310、ポートID326はシステム内で一意に定まる識別子であるとする。あるいは、システム内で一意でない場合でも、装置の識別子を付加することによりシステム内で一意に定まるようにする。
【0071】
次に、図4を用いて上位ポートマッピング情報322について説明する。
図4は、上位ポートマッピング情報322のデータ構造を示す模式図である。
【0072】
上位ポートマッピング情報322は、仮想化スイッチ60の管理情報66および記憶装置40の管理情報46の中に置かれ、あるポートを通して外部装置に提供される仮想構造を管理する情報であり、ポートID326を保持するエントリと、対応する仮想構造ID306を保持するエントリの組を保持する。
【0073】
次に、図5を用いてデータ記憶領域情報342について説明する。
図5は、データ記憶領域情報342のデータ構造を示す模式図である。
【0074】
データ記憶領域情報342は、サーバ70のDBMS管理情報92の中に置かれ、DBMS90が管理するデータの記憶領域管理に用いる情報であり、データ領域の名前であるデータ領域名344を保持するエントリ、データ構造の名前であるデータ構造名346を保持するエントリ、対応データがファイル202のどの位置に記憶されているかの情報であるデータ記憶位置348を保持するエントリの組からなる。
【0075】
次に、図6を用いてキャッシュグループ情報460について説明する。
図6は、キャッシュグループ情報460のデータ構造を示す模式図である。
【0076】
キャッシュグループ情報460は、記憶装置40の管理情報46の中に置かれ、記憶装置40がキャッシュグループの管理に用いる情報であり、キャッシュグループの識別子であるキャッシュグループID462を保持するエントリと、そのキャッシュグループに対して割り当てられるキャッシュセグメント数の情報である割当セグメント数464を保持するエントリ、そのキャッシュグループに属するLU208の識別子であるLUID364を保持するエントリの組を有する。
【0077】
次に、図7を用いてストレージモニタ情報360について説明する。
図7は、ストレージモニタ情報360のデータ構造を示す模式図である。
【0078】
ストレージモニタ情報360は、記憶装置40の管理情報46の中に置かれ、記憶装置40の稼動状況に関するデータを保持しており、キャッシュモニタ情報362、ストレージポートモニタ情報382、HDDモニタ情報392を含んでいる。
【0079】
キャッシュモニタ情報362は、LU208が外部装置からアクセスされた場合にどのキャッシュヒットしたかに関する稼動統計情報である。
【0080】
キャッシュモニタ情報362は、実管理領域の分割数を示す実領域分割数502と、実管理領域の分割後のサイズを単位とした仮想管理領域の保持量を示す仮想管理領域数504を含む。また、LU208毎のキャッシュヒット数の統計値として、LUID364を保持するエントリと、それに対応するリード/ライトのI/O種別366を保持するエントリ、それに対応するI/O処理の累積実行回数368を保持するエントリ、そのときにヒットした回数を示すキャッシュヒット回数累計370を保持するエントリの組を保持する。なお、キャッシュヒット回数累計370は、実管理領域でのヒット数の総累計値と、実管理領域と仮想管理領域の双方で分割された各領域でのヒット数の累計値を保持する。本実施形態では、実管理領域と仮想管理領域を統合して分割された領域に通番を付加し、最も最近利用されたデータが存在する領域を第1領域、以下小さい通番の領域ほど最近利用されたデータを有する領域であるとする。
【0081】
ストレージポートモニタ情報382は、LU208毎にI/OパスI/F32のポート26を利用してどれだけデータ転送処理が実施されたかの実行統計情報で、ポートID384を保持するエントリとLUID364を保持するエントリ、それに対応するI/O処理の累積実行回数368を有するエントリと累積データ転送量386を保持するエントリの組を有する。
【0082】
HDDモニタ情報392は、LU208毎にHDD16をどれだけ利用しているかの実行統計情報で、HDDの識別子であるHDDID394を保持するエントリとLUID364を保持するエントリ、それに対応する実際に処理をおこなっていた時間(待ち時間を含まない)の累積値である累積処理時間396を保持するエントリの組を保持する。
【0083】
次に、図8を用いてポートスループット設定情報440について説明する。
図8は、ポートスループット設定情報440のデータ構造を示す模式図である。
【0084】
ポートスループット設定情報440は、記憶装置40の管理情報46の中に置かれ、特定のポート26に対して外部装置の特定ポート26からアクセス処理量を制限する優先アクセス制御機能のための設定情報である。このポートスループット設定情報440は、ポートID384を保持するエントリとアクセス元ポートID442を保持するエントリ、最大データ転送量444を保持するエントリと、最大I/O処理量444を保持するエントリ446の組を有する。
【0085】
アクセス元ポートID442とは、制限をかけるポート26にアクセスしてくる外部装置のポート26のポートIDである。最大データ転送量444とは、ポート26に対応する単位時間あたりの最大転送量設定値である。最大I/O処理量444とは、単位時間あたりの最大I/O処理量の設定値である。
【0086】
次に、図9を用いてポートモニタ情報400について説明する。
図9は、ポートモニタ情報400のデータ構造を示す模式図である。
【0087】
ポートモニタ情報400は、仮想化スイッチ60の管理情報66およびサーバ70のOS管理情報74の中に置かれ、ポート26によりおこなわれたデータ転送処理に関する実行統計情報であり、ポートID384を保持するエントリと、対応するI/O種別366を保持するエントリ、I/O処理の累積実行回数368を有するエントリ、処理要求の発行/受取から処理完了までの時間(待ち時間を含む)である応答時間の累積値である累積応答時間402を保持するエントリ、累積データ転送量386を保持するエントリの組を有する。
【0088】
次に、図10を用いてオンラインJobモニタ情報430について説明する。
図10は、オンラインJobモニタ情報430のデータ構造を示す模式図である。
【0089】
オンラインJobモニタ情報430は、サーバ70のAP管理情報102の中に置かれ、APプログラム100が取得するオンラインJobのための実行統計情報であり、処理ID432を保持するエントリ、対応する処理の累積実行回数368を保持するエントリ、その処理の累積応答時間402を保持するエントリ、その処理をDBMS90に対して発行した際の累積処理時間396を保持するエントリの組を有する。
【0090】
次に、図11を用いてストレージ性能情報610について説明する。
図11は、ストレージ性能情報610のデータ構造を示す模式図である。
【0091】
ストレージ性能情報610は、管理装置120のシステム管理情報142中に保持される情報であり、HDD性能情報612とポート性能情報616を有する。この情報は、記憶装置40やその対応部位の型式を取得し、それと事前に与えられた型式毎の性能情報と組み合わせて作成される。
【0092】
HDD性能情報612は、HDD16のアクセス性能に関する情報であり、記憶装置40の識別子である装置ID572を保持するエントリとHDDID394を保持するエントリ、それに対応するHDD16が有するアクセス性能に関する情報であるアクセス性能情報612を含むエントリの組を有する。
【0093】
アクセス性能情報612は、ランダムアクセス時のリードでキャッシュヒットした/しない(ミスした)場合、ライトでキャッシュヒットした/しない場合のそれぞれの平均応答時間を保持する。
【0094】
ポート性能情報616は、記憶装置40のI/OパスI/F32のポート26の最大性能に関する情報であり、装置ID572を保持するエントリとポートID384を保持するエントリ、対応するポート性能情報618を含むエントリの組を有する。ポート性能情報612は、そのポートの最大性能の情報として最大I/O処理量(IOPS)と最大データ転送量(MB/s)の組を保持する。
【0095】
次に、図12を用いてモニタ履歴情報510について説明する。
図12は、モニタ履歴情報510のデータ構造を示す模式図である。
【0096】
モニタ履歴情報510は、管理装置120のシステム管理情報142中に保持される情報であり、各装置やプログラムが集めるモニタ情報であり、これまで説明してきたキャッシュモニタ情報370、ストレージポートモニタ情報382、HDDモニタ情報392、ポートモニタ情報400、オンラインJobモニタ情報430、そして、OS72が計算するCPU12の稼働率(以下これらをまとめて「モニタ情報」と称す)を取得し、それを適当な形に編集した情報を履歴情報として保持するものである。
【0097】
稼動状況がモニタされている部位(キャッシュモニタ情報370、ストレージポートモニタ情報382、HDDモニタ情報392に関しては、アクセス先のLU208も含む)に関して、システム内で一意に定まるモニタ部位ID514が付加される。
【0098】
モニタ履歴情報510は、モニタ部位ID514を保持するエントリとそのモニタ内容516を示す情報を保持するエントリと、対応する前回取得情報518を保持するエントリと、履歴情報520を保持するエントリの組を有する。モニタ内容516の具体的な内容としては、各モニタ情報のデータ構造を説明する際に説明した通りである。
【0099】
前回取得情報518は、前回モニタ情報の値を取得した日時のエントリとその取得値のエントリを有する。
【0100】
履歴情報520は、履歴として集計・記憶される値の内容を示す履歴内容522を保持するエントリと、ある期間のモニタ値であるサンプル524を保持する複数のエントリからなる。本実施形態おける履歴内容522としては、ストレージポートモニタ情報382から記憶装置40のI/OパスI/F32のポート26におけるLU208毎の平均実行回数と平均データ転送量、キャッシュモニタ情報370からLU208におけるリード/ライト毎の平均実行回数と平均実ヒット率と、リードの領域毎の平均ヒット率(期間内の領域でのリードヒット回数/期間内のLU208へのリード実行回数)、HDDモニタ情報からHDD16におけるLU208毎の平均稼働率、ポートモニタ情報400から、サーバ70、仮想化スイッチ60のI/OパスI/F32のポート26もしくはサーバ70のネットワークI/Fのポート26におけるリード/ライト毎の平均実行回数、平均データ転送量、平均応答時間、オンラインJobモニタ情報430からとしてAPプログラム100における各処理毎の平均実行回数、平均応答時間、平均処理時間、OS72が計算するCPU12の稼働率からとしてサーバ70におけるCPU稼働率がある。
【0101】
サンプル524は、そこに記憶されたデータがいつの期間のモニタ値かを示すエントリと、その期間における集計値である平均値と最大値をそれぞれ保持するエントリからなる。
【0102】
次に、図13を用いてバッチJob管理情報700について説明する。
図13は、バッチJob管理情報700のデータ構造を示す模式図である。
【0103】
バッチJob管理情報700は、管理サーバ120のシステム管理情報142の中に置かれるバッチJobのための管理情報であり、Jobの識別子であるJobID622を保持するエントリ、Jobの実行優先度を示すJob優先度704を保持するエントリ、Job種別706を保持するエントリ、このJobがどのような開始条件で実行されるかを示す実行条件708を保持するエントリ、Jobの最大実行時間の設定値である最大実行時間710を保持するエントリ、Jobを実行するサーバ70の識別子である実行サーバID712を保持するエントリとそのサーバ70で実行するコマンドである実行コマンド714を保持するエントリの組、Job依存入力情報720、Job依存出力データ情報730、CPU処理時間見積方法716、Jobが利用するデータに関する情報であるI/O処理内容情報740aを含む。実行サーバID712と実行コマンド714の組に関しては、複数存在しても良い。
【0104】
Job種別706は、バッチJob管理情報700の場合には、バッチ業務向けであることを示す情報が保持される。実行条件708の内容として、バッチJob管理情報700では、実行すべき日付や曜日の条件を含めた実行開始時刻、あるいは、一つ以上の別のJobが完了した時に実行する等がある。
【0105】
本実施形態のJobの実行イメージとしては、バッチJobは連続して実行され、前段のJobの出力データを次段のJobの入力データとして引き継いでいくものを考える。
【0106】
Job依存入力情報720は、そのJobを実行する際に利用するデータに関する情報であり、利用するデータを出力するJobのJobID622である前段JobID722を保持するエントリと、その入力データの情報であるデータ情報724を保持するエントリと、データの行数やファイルサイズ等、データ量の計量単位の情報であるデータ量単位726を保持するエントリの組からなる。
【0107】
データ情報724に記憶される情報は、基本的に、ファイル202の識別子またはDBMS90とそれが管理するデータ構造200の識別子の組等、記憶装置40に記憶されるデータの識別子であるが、制御情報受け渡しのための識別子でもよい。なお、入力に依存する処理をおこなわない場合、Job依存入力情報720は存在しない。
【0108】
Job依存出力データ情報730は、他のJob実行に利用されるJobの出力データに関する情報であり、出力データを利用するJobのJobID622である次段JobID732を保持するエントリと、その出力データのデータ情報724を保持するエントリ、データ量単位726を保持するエントリの組からなる。Job終了時に処理完了情報として返す出力データ量は、Job依存出力データ情報730中のデータ量単位726を用いて計測する。なお、出力データを利用するJobが存在しない場合には、Job依存出力データ情報730は存在しない。
【0109】
CPU処理時間見積方法716は、処理の実行時間のうちサーバ70のCPU12がボトルネックとなっている時間を見積る方法に関する情報である。
【0110】
I/O処理内容情報740aは、Jobが利用するデータに関する情報であり、このJobが利用するデータのデータ情報724を保持するエントリと、対応するデータの、アクセス順742を保持するエントリ、I/Oネック744を保持するエントリ、I/Oタイプ746を保持するエントリ、I/Oベース性能748を保持するエントリ、入力データ量から処理量を見積る方法の情報である処理量見積752を保持するエントリ、Job実行時に記憶装置40に対して指示すべき内容であるストレージヒント754を保持するエントリの組を有する。なお、ストレージヒント754は、記憶装置40に関する様々な内容が考えられるが、本実施形態では、データに対するキャッシュ量の明示的設定とした。
【0111】
アクセス順742はアクセス順に関する情報で、番号が若いほど先にアクセスされ、同じ値のものは同時にアクセスされることを意味する。I/Oネック744は、そのI/O処理が性能ボトルネックに、なる/ならないを示す情報であり、“Y”“N”の値を取る。I/Oタイプ746はI/O処理種別に関する情報であり、“シーケンシャル”“ランダム”の値を取る。I/Oベース性能748は、実行時間の見積り等に利用するI/O性能に関する情報であり、データの複数の記憶装置40への分散配置等に対応するため、そのデータをアクセスする際に利用される各記憶装置40の各ポート26毎にポートID384と性能値の組を保持する。性能値は、I/Oタイプ746が“シーケンシャル”の場合にはシーケンシャル性能(データ転送速度)、“ランダム”の場合にはランダム性能(IOPS)となる。また、処理量見積752はI/Oベース性能748に保持されるポートID384毎にその情報を保持する。
【0112】
次に、図14を用いてバッチSQL設計情報850を説明する。
図14は、バッチSQL設計情報850のデータ構造を示す模式図である。
【0113】
バッチSQL設計情報850は、バッチジョブ管理情報700を設定するために管理サーバ120に入力され、APプログラム100がDBMS90に対して要求する処理に関する情報である。このバッチSQL設計情報850は、設定をおこなうJobのJobID622を保持するエントリ、処理をおこなうDBMS90の識別子である実行DBMSID852を保持するエントリ、主入力データ854を保持するエントリ、SQLID858aを保持するエントリと対応する実行SQL文860を保持するエントリの組、データ情報724を保持するエントリとそれに対応するSQLID858bを保持するエントリの組、繰り返し実行SQL情報862を有する。
【0114】
主入力データ854とは、その量がAPプログラム100のCPU処理時間に一番大きく影響を与えるデータである。
【0115】
SQLID858aは、APプログラム100が実施する順に通番が振られ、APプログラム100がDBMS90に発行するSQL文の情報として、SQLID858と実行されるSQL文である実行SQL文860が対応して保持される。
【0116】
SQLID858bは、入出力データとしてファイル202を利用する場合に、そのデータ情報724と、そのデータ情報を利用したり、結果を保存するSQL文のIDである。
【0117】
繰り返し実行SQL情報862は繰り返し実行されるSQL文に関する情報であり、SQLIDセット864を保持するエントリと、その繰り返しの際の入力データのデータ情報724を保持するエントリの組を有する。SQLIDセット864とは、繰り返し実行される一つまたは複数のSQL文のSQLID858の組である。
次に、図15を用いてオンラインJob管理情報770について説明する。
図15は、オンラインJob管理情報770のデータ構造を示す模式図である。
【0118】
オンラインJob管理情報770は、管理サーバ120のシステム管理情報142の中に置かれ、オンラインJobを管理するための情報であり、JobID622を保持するエントリ、Job優先度704を保持するエントリ、Job種別706を保持するエントリ、実行条件708を保持するエントリ、要求性能774を保持するエントリ、実行サーバID712を保持するエントリと実行コマンド714を保持するエントリの組、I/O処理内容情報740c、処理の多重度を示す処理多重度782を保持するエントリを含む。
【0119】
本実施形態で、図13に示したバッチJob管理情報700とオンラインJob管理情報770とを分けたのは、そのJobの性質により要求される性能、管理すべき情報が異なっていることを考慮したものである。
【0120】
オンラインJob管理情報770の場合には、Job種別706はオンライン業務向けであることを示す情報が保持される。実行サーバID712と実行コマンド714の組に関しては、複数存在しても良い。実行条件708の内容として、オンラインJob管理情報770では、実行すべき日付や曜日の条件を含めた実行開始時刻と実行終了時刻(常時実行を含む)が与えられる。要求性能774はJobへの要求性能の設定情報であり、処理全体での平均応答時間と、高負荷状態における処理スループット(処理の平均実行回数)が保持される。
【0121】
I/O処理内容情報740cは、内容的には図13に示したバッチJob管理情報700中のI/O処理内容情報740aの一部を抜き出したものであり、データ情報724を保持するエントリと、対応するI/Oベース性能748を保持するエントリとストレージヒント754を保持するエントリの組を有する。Jobの設計情報から処理がアクセスするデータを把握し、データ情報724を設定し、I/Oベース性能748のポートID386をマッピング集約情報を参照して求める。ストレージヒント754に関しては、記憶装置に対する指示情報を設定する。本実施形態では、必要に応じてデータ毎に利用したいデータキャッシュ量を計算してその値を設定する指示を設定することにした。
【0122】
I/Oベース性能748の性能値に関しては、I/O処理内容情報740cでは常にランダム性能(IOPS)である。この値の決定法は、例えば、実際に処理を実行し、そのときの処理スループットと記憶装置40のI/OパスI/F32のポート26のI/O性能を記憶装置40のモニタ情報から把握し、要求性能774に与えられるスループットを達成するのに必要なI/O性能をスループットとI/O性能が比例するとして見積り、その値を設定する。なお、複数のデータが同一のポート26経由で同一のLU208にデータを記憶している場合には、それらの間で必要な性能を適当に分配する。
【0123】
次に、図16を用いてJobリソース管理情報620について説明する。
図16は、Jobリソース管理情報620のデータ構造を示す模式図である。
【0124】
Jobリソース管理情報620は、管理サーバ120のシステム管理プログラム140がワーク情報として利用する情報であり、Jobポート設定情報630とJobキャッシュ量情報650を含んでいる。
【0125】
Jobポート設定情報630は、記憶装置40のI/OパスI/F32のポート26毎の、ポート26を利用するJobとそのJobに割り当てられた優先アクセス制御機能の設定に関する情報であり、装置ID572を保持するエントリと、ポートID384を保持するエントリと、対応するポート26を利用してデータをアクセスするJobのJobID622とそのJobのそのポート26に対して割り当てられた性能割合632を保持するエントリの組を有する。なお、性能割合632は、ポート性能情報616に保持される対応ポートの最大性能からの割合として計算される性能指標値で、I/O処理量やデータ転送量への変換は、そのポート26に対応するポート性能情報618を参照して、そのポート26の最大I/O処理量や最大データ転送量を求め、それに性能割合632を乗じることによりおこなう。
【0126】
Jobキャッシュ量情報650は、記憶装置40のキャッシュグループ毎に、そのキャッシュグループに属するLU208を利用するJobとそのJobに対する割当量に関する情報であり、装置ID572を保持するエントリ、キャッシュグループID462を保持するエントリ、対応するキャッシュグループに属するLU208に記憶されているデータを利用するJobのJobID622を保持するエントリ、Jobへのキャッシュの割当量に関する情報である割当情報652を保持するエントリの組からなる。
【0127】
割当量に関しては、スタック形式で管理された複数世代の情報を持てるようにし、割当情報652中にその割当量が設定された理由に関しても割当量と組にして保持し、その原因が解決した場合には古い設定に戻れるようにする。なお、Jobが利用する一つ以上のキャッシュグループのキャッシュ割当量が変更される場合には、キャッシュ量の変更のないJobが利用する他のキャッシュグループも同期して世代を更新する。
【0128】
次に、図17を用いて優先度制御情報880について説明する。
図17は、優先度制御情報880のデータ構造を示す模式図である。
【0129】
優先度制御情報880中は、管理サーバ120の中のシステム管理プログラム140がJobの優先度を考慮した制御をおこなう際に用いられる設定情報であり、Job優先度704を保持するエントリと、対応する余裕係数882を保持するエントリの組を含む。
【0130】
本実施形態においては、Job優先度704は、P段階に分けられ、優先度の高いものから順にその値として1、2、…、Pを取る。余裕係数882とは、記憶装置40の設定変更方法を決定するときに、見積りデータに対して余裕を見込むための係数であり、Jobの優先度を高いものほど余裕を大きくするものであり、本実施形態では、1以上の値を取ることにしている。
(IV)性能管理方法の処理
次に、図18ないし図27を用いて本実施形態の性能管理方法の処理について説明する。
【0131】
(IV−1)システム管理プログラムの処理概要
先ず、システム管理プログラム140の処理概要について説明する。
【0132】
システム管理プログラム140は、システムに関する構成を把握する。構成要素である記憶装置40、仮想化スイッチ60、サーバ70、ボリュームマネージャ78、ファイルシステム80、DBMS90、APプログラム100に関してそれぞれ識別子を付加して管理する。また、ネットワーク24やI/Oパス34の接続関係をシステム管理情報142中に保持する。
【0133】
システム管理プログラム140は、他の装置から種々の情報を取得する。このとき、記憶装置40と仮想化スイッ60が保持する情報に関しては、ネットワーク24を介して直接情報の送信要求を発行し、情報を取得する。また、サーバ70上で実行されるプログラムが保持する情報に関しては、ネットワーク24を介して管理エージェント144に対して情報の読み出し要求を発行して、それが必要な情報を読み出すことにより情報を収集する。
【0134】
システム管理プログラム140は、各仮想化機構から領域マッピング情報300、DBMS90からデータ記憶領域情報342、記憶装置40と仮想化スイッチ60から上位ポートマッピング情報322、記憶装置40からキャッシュグループ情報460を取得し、それらを取得元の識別子とともにマッピング集約情報としてシステム管理情報142中に記憶する。
【0135】
ここで、システム管理プログラム140は、記憶装置40のキャッシュグループの管理において、ある特定のキャッシュグループをキャッシュ割当量の調整で優先的に削減対象とする「フリーキャッシュグループ」として扱う。キャッシュ量の割り当て要求がないLU208は、フリーキャッシュグループに属するとして制御する。
【0136】
また、ポートスループット設定情報440やキャッシュモニタ情報362に含まれる実領域分割数502と仮想管理領域数504に関しても各記憶装置40から取得し、それらの取得元の識別子とともにシステム管理情報142中に記憶する。これらの情報に関しては、設定変更後や一定期間経過後、情報の再取得と保持内容の整合性確認をおこなう。
【0137】
また、上記のシステム管理情報142のマッピング集約情報としてより詳細に説明すると、システム管理プログラム140は、実行中のJobのハードウェアリソースに関連するマッピングの情報をシステム管理情報142中に保持する。サーバ70に関しては、Jobが実施されるサーバ70の識別子と、どのデータがどのポート26を経由してアクセスされるか、仮想化スイッチ60に関しては、データは、どの仮想化スイッチ60を経由し、仮想化スイッチ60のどのI/OパスI/F32のどのポート26を経由してアクセスされるか、記憶装置40に関しては、どのデータがどの記憶装置40のどのLU208を利用し、そのLU208は記憶装置40のI/OパスI/F32のどのポート26を経由してアクセスされ、そのLU208中のデータはどのHDD16に記憶されているか、また、そのLU208は、どのキャッシュグループに属するか、に関する情報を保持する。以下、この情報を「Jobリソースマッピング情報」と称する。
【0138】
(IV−2)システム管理プログラムのJob管理方法とJob管理情報への値の設定
以下、システム管理プログラムのJob管理方法とJob管理情報への値の設定について説明する。
【0139】
システム管理プログラム140は、バッチ業務を実施するためのJobの管理情報として、バッチJob管理情報700を、オンライン業務を実施するJobの管理情報として、オンラインJob管理情報770をシステム管理情報142中に、それぞれ保持する。これらの情報はHDD16に記憶され、システム管理プログラム140が起動時にメモリ14上のシステム管理情報142中に読み出される。
【0140】
既に述べたように、Job管理情報700とオンラインJob管理情報770とを分けたのは、そのJobの性質により要求される性能、管理すべき情報が異なっていることを考慮したものである。
【0141】
以下、バッチJob管理情報700とオンラインJob管理情報770のいずれか、または、その両方を指す場合に「Job管理情報」と称する。Job管理情報は基本的に管理者が与えるが、一部の情報は後述する方法により設定される。
【0142】
また、バッチJob管理情報700中のI/O処理内容情報740aとオンラインJob管理情報770中のI/O処理内容情報740cをまとめて、「I/O処理内容情報740」と称することにする。
【0143】
既に述べたように、本実施形態のJobの実行は、バッチJobは連続して実行され、前段のJobの出力データを次段のJobの入力データとして引き継いでいくものとした。バッチJob管理情報700により管理されるJobにおいては、その中のJob依存出力データ情報730に設定されているデータに関し、Jobの終了時に処理完了情報としてそれらの出力データ量を返すことにする。そして、この情報とバッチJob管理情報700中の情報を基に、連続的に実施されるJobの実行時間見積りをおこなう。
【0144】
また、本実施形態において、出力データ量は、バッチ業務向けJobが実行するAPプログラム100が処理完了情報として出力するものを利用する。
【0145】
以下、バッチJob管理情報700の値の設定処理について説明する。
【0146】
バッチJob管理情報700は、バッチジョブのJob毎に与えられる情報であった。
【0147】
このエントリの内で、JobID622、Job優先度704、Job種別706、実行条件708、最大実行時間710、実行サーバID712、実行コマンド714、Job依存入力情報720、Job依存出力データ情報730、予め管理者からJob実行前に与えられる情報である。
【0148】
なお、Jobの最大実行時間を見積る方法については、後に詳細に説明する。
【0149】
CPU処理時間見積方法716とI/O処理内容情報740aに関しては、モニタ情報を実測して設定される。
【0150】
以下、図18を用いて、このCPU処理時間見積方法716とI/O処理内容情報740aを設定する処理について説明する。
図18は、Job管理情報700中のCPU処理時間見積方法716とI/O処理内容情報740aをモニタ情報の実測により設定する処理のフローチャートである。
【0151】
手順開始時、バッチJob管理情報700中の他の情報と、図14に示したバッチSQL設計情報850が管理者から与えられる。なお、この手順を開始する際には実際の動作時と同じように各種データがシステム内に存在する必要がある(ステップ1101)。
【0152】
先ず、バッチSQL設計情報850中の実行DBMSID852から処理を実施するDBMS90を把握し、そこから実行SQL文862中のSQL文のSQL実行計画を全て取得する(ステップ1102)。
【0153】
SQL実行計画は、SQLを実行するための情報であり、SQL文を実施するための処理ステップとその処理内容、利用データとアクセス方法の詳細情報などを含んでいる。
【0154】
なお、処理中に明示的に一時的に利用する表を作成する場合があるが、その表を利用するSQL文のSQL実行計画取得には、その表を作成した後にSQL実行計画を取得する。可能なら、処理をSQL文毎にステップ実行し、その処理実行直前にSQL実行計画を取得する。全てのSQL実行計画を取得した後に一時的に利用する表を削除する。
【0155】
取得したSQL実行計画とバッチSQL設計情報850中の情報から、各SQL文によりアクセスされるデータとアクセス方法、アクセス順を把握する(ステップ1103)。
【0156】
SQL実行計画は、SQL文を実施するための処理ステップとその処理内容、利用データとアクセス方法の詳細情報を含むため、一つのSQL文内でのアクセスデータ・アクセス方法・アクセス順は、SQL実行計画から把握できる。
【0157】
処理実施の際にDBMS90により暗黙に作成される一時表に関しては、その表が作成されるデータ領域のデータ領域名344を把握する。バッチSQL設計情報850中のSQLID858と繰り返し実行SQL情報862から、繰り返しを含めた実行順序がわかる。このとき、一つ以上のSQL文が繰り返し実行される場合には、それらがアクセスするデータは繰り返し処理により全て同時にアクセスされるものとする。
【0158】
そして、把握したアクセス先データとアクセス順をI/O処理内容情報740a中のデータ情報724とアクセス順742、I/Oベース性能748のポートID384に設定する。同じデータに複数の異なる処理ステップでアクセスされる場合には、それぞれ独立したものとする。ポートID384は、システム管理情報140中のマッピング集約情報を参照することにより、それが存在する記憶装置40と共に求めることができ、複数のポートID384が求まる可能性もある。
【0159】
ここで、把握した処理が“表の全走査”の場合にはI/Oタイプ746は“シーケンシャル”(図13では、「Seq」)に、B−Tree索引を利用した選択処理”の場合には、索引と表の双方ともに“ランダム”(図13では、「Rnd」)に設定する。ファイル202に対する入出力は全て“シーケンシャル”とする。
【0160】
これから処理を実施する際に外部から入力されるデータ量を把握する(ステップ1104)。
【0161】
Job依存入力情報720中に設定されているデータに関して、そのデータ量単位726に従ってデータ量を把握する。本実施形態では、原則、複数のJobが一連の処理を形成するため、それらを順次実行して完了報告としてシステム管理情報142中に出力された出力データ量を把握する。
【0162】
続いて、実際に処理を実行し、実行時間の計測と、DBMS90が稼動するサーバ70におけるCPU稼働率と、記憶装置40におけるI/O処理実行状況(I/O処理実行回数、データ転送量)を把握する(ステップ1105)。
【0163】
それらの稼動状況は、前述のシステム管理プログラム140が収集することにより把握する。このデータ取得の際にデータ取得間隔は処理の実行時間に比して十分に小さなものとする。システム負荷を削減するため、可能であれば、処理実行に関連するサーバ70のCPU稼働率とステップ1103で把握したデータを記憶している部分のみ詳細なモニタ情報を取得する。
【0164】
取得したモニタ情報から、DBMS90が稼動するサーバ70におけるCPU稼働率がある閾値(例えば、80%)以上の時間を把握し、その時間はバッチSQL設計情報850中の主入力データ854で指示されるデータのデータ量に比例するものとしてCPU処理時間見積方法716を決定する(ステップ1106)。
【0165】
入力データ量は、ステップ1104で把握したものを用いる。
【0166】
次に、モニタ情報から各アクセスデータにおけるI/Oネック、I/Oベース性能、入力データ量あたりのI/O処理量を把握し、I/O処理内容情報の値設定をおこなう(ステップ1107)。
【0167】
すなわち、ステップ1103で把握したアクセスデータとアクセス順、記憶装置40のアクセス先のポート26を基に、記憶装置40のストレージポートモニタ情報382中のポート26のモニタ情報との対応付けをおこなう。
【0168】
その後、あるアクセスデータに対応する期間における、DBMS90が稼動するサーバ70のCPU稼働率のモニタ値を調べ、それがステップ1106の閾値を越えている場合にはI/Oボトルネックではないとして対応するI/Oネック744の値を“Y”に設定し、そうでない場合には“N”に設定する。
【0169】
続いて、モニタ情報からポート26におけるI/O処理量とI/O処理を実施していた時間をLU208毎に把握し、その平均性能としてデータに対応するI/Oベース性能748をポート26毎に設定する。このとき、対応するI/Oタイプ744の値が“シーケンシャル”の場合には処理量としてデータ転送量を、“ランダム”の場合にはI/O処理実行回数を用いる。さらに、ステップ1104で把握した入力データ量とポート26毎のI/O処理量から、対応する処理量見積752を設定する。なお、同一のLU208に複数の異なるデータが記憶され、それらが同一のポート26を経由してアクセスされる場合には、それらの間で適当にI/O処理量を分割する。
【0170】
そして、手順を終了する(ステップ1108)。
【0171】
本手順では、I/O処理内容情報740a中のストレージヒント754は設定されない。ここは、本手順終了後に管理者が設定する。ストレージヒント754を設定した場合には、I/O処理性能が変化するため、ステップ1105からステップ1107を再度実行し、I/Oネック744とI/Oベース性能748を再設定する。
【0172】
次に、バッチJob管理情報700で管理されるJobの最大実行時間710の処理時間の見積り方法について説明する。
【0173】
本実施形態においては、バッチJob管理情報700で管理されるJobの処理時間を、CPUがボトルネックとなっている状態でのCPU処理時間と、I/Oがボトルネックとなっている状態でのI/O処理時間と、CPUがボトルネックとなっている状態でのI/O遅延による影響時間の和として見積る。また、各Jobへの入力データ量は、システム管理情報142中に記憶されるものとする。
【0174】
CPUがボトルネック状態でのCPU処理時間は、CPU処理時間見積り方法716と処理開始時に与えられる入力データ量から計算する。
【0175】
I/Oがボトルネック状態でのI/O処理時間は、I/O処理内容情報740a内のI/Oネック444の値が“Y”であるデータ情報724で識別されるデータに関して、処理開始時に与えられる入力データ量と処理量見積752により求まる処理量と、データアクセスに利用可能なI/O処理性能から計算し、その総和として求める。
【0176】
各データへのアクセスに利用可能な処理性能は以下のように求める。先ず、Jobがアクセスする各データに関して、それをアクセスする際に利用される記憶装置40のI/OパスI/F32のポート26をI/Oベース性能748から求める。続いて、各データ毎に求めたポート26とそのデータに対応するアクセス順742の値によりデータをグループ化し、ポート26を同時にアクセスするデータの組を求める。それぞれのグループにおいて、ポート26でJobが利用可能な性能割合632は、Jobポート設定情報630に保持されているか、あるいは、別途条件として指定されている。そして、その性能割合632を各データに対応するI/Oベース性能748の対応ポート26における性能値から計算される性能割合632に比例して分配する。このようにして、あるデータが利用可能な性能割合632を求め、これからデータへのアクセスに利用可能なポート26におけるI/O処理性能を求める。
【0177】
CPUがボトルネックとなっている状態でのI/O遅延による影響時間は次のように求める。I/O処理内容情報740a内のI/Oネック444の値が“N”であるデータ情報724で識別されるデータに関して、先ず、I/Oがボトルネック状態でのI/O処理時間と同様に現在のI/O処理量設定での処理時間を求める。引き続き、I/O処理性能がI/Oベース性能748に与えられた性能であると仮定して同様にI/O処理時間を求める。各データのポート26毎に前者から後者を引いた値が求める影響時間である。なお、計算により負の値が求まった場合には影響時間は0であるとする。
【0178】
本実施形態においては、入力データ量は、原則前段のJobの処理完了報告から把握する。常時実行中のAPプログラム100がある期間内に処理したデータを抽出するようなJob等、対応する前段Jobが存在しない場合、Jobへの入力データ量を取得するためのJobを作成・先行して実施させ、それに目的とする入力データ量を完了報告として出力させることにより、処理時間の見積りに必要となる入力データ量がシステム管理情報142中に記憶されるようにする。前述の例では、入力データ量として、APプログラム100の対象処理の対象期間内の処理実行回数をモニタ履歴情報510から取得し、それを件数として利用する。なお、データ量見積りJobを作成する代わりに、Job依存入力情報720中にデータ入力量を取得する方法を記憶させ、それを用いてデータ量を把握してもよい。
【0179】
(IV−3)システム管理プログラムのモニタ情報の収集とそのモニタ情報によるJobチューニング処理
次に、図19ないし図21を用いてシステム管理プログラムのモニタ情報の収集とそのモニタ情報によるJobチューニング処理について説明する。
【0180】
システム管理プログラムのモニタ情報の収集とそのモニタ情報によるJobチューニング処理は、管理サーバ120の実行中でシステム管理プログラムがシステムを監視している間は、常時、無限ループで実行されることになる。
図19は、システム管理プログラムのモニタ情報の収集とそのモニタ情報によるJobチューニング処理のゼネラルチャートである。
図20は、モニタ情報によるJobチューニング処理のフローチャートである(その一)。
図21は、モニタ情報によるJobチューニング処理のフローチャートである(その二)。
【0181】
モニタ履歴情報510への値の設定は以下のようにおこなう。
【0182】
この処理は、管理サーバ120が起ち上がり、システム管理プログラム140が起動し、その初期化が完了したときに開始される(ステップ1401)。
【0183】
先ず、初期モニタ値として、モニタ情報を取得している全ての装置やプログラムから現在のモニタ情報の値を取得し(ステップ1402)、前回取得情報518中の対応する取得日時と取得値のエントリを更新する。
【0184】
続いて、次のデータ取得タイミングまで、処理をスリープさせる(ステップ1403)。なお、データの取得は、前回モニタ値取得後一定間隔、もしくは、事前に定めた特定時刻におこなう。このとき、モニタする内容によりデータの取得間隔を個別に管理し、データ取得間隔をモニタする内容毎に異なるものとしてもよい。
【0185】
データを取得するタイミングが来たときに、現在のモニタ情報の値と現在日時を取得する。そして、それら情報の取得後、対応する前回取得情報518中に保存された前回取得日時とその取得値を把握し、履歴内容522の形の値を計算する方法をモニタ内容516を基に選択し、その値を計算する(ステップ1404)。
【0186】
現在日時と前回取得日時から期間を把握し、計算値を期間の平均かつ最大としてサンプル524を保持するエントリに記憶する。その後、現在日時と今回取得したモニタ情報の値を前回取得日時とその取得値として前回取得情報518に記憶する。
【0187】
続いて、ステップ1501から始まる収集したモニタ情報を基にしたチューニング処理を実施する(ステップ1405,図20,図21の処理)。
【0188】
そして、ある一定時間以前のデータを保持するサンプル524を整理して、モニタ履歴情報510のデータ量を削減する(ステップ1406)。
【0189】
その方法は、データの古さに応じて、1)ある期間内の複数のサンプル524を一つのサンプル524にまとめる、2)特に古いサンプル524のデータを削除する、ことをおこなう。処理完了後ステップ1403へ戻り、以下、繰り返しで処理を実施する。
【0190】
各装置の構成が変更されることにより、モニタすべき部位が動的に増減する。モニタ部位が増えた場合には、ステップ1404でモニタ履歴情報510中にエントリを追加し、その部位もモニタする。モニタ部位が削除された場合には、それに対応するデータは、ステップ1404の処理をおこなわず、ステップ1406において削除されたモニタ部位のサンプル524が全て削除された場合に、モニタ履歴情報510中のエントリを全て削除する。
【0191】
次に、図20および図21を用いてモニタ情報によるJobチューニング処理について説明する。
【0192】
このモニタ情報によるJobチューニング処理は、図19のステップ1405に示された処理である。
【0193】
この処理は、実行中の全Jobについて、各ステップを同時に、ステップ内ではJob優先度704が最も高いものから順に処理を実施する。ステップ1515、ステップ1517において、複数のJobにより同一の部位を対象としてデータの移動やI/O処理量の増加/削減が要求される場合には、Job優先度704が最も高いJobについてのみ処理を実施する。また、一つのJobに複数の問題点が存在すると判断された場合には、それぞれ独立した複数のパスに分岐する。
【0194】
Jobチューニング処理は、図19のステップ1405で、サブルーチンとしてコールされる(ステップ1501)。
【0195】
先ず、システム管理142中に記憶されている「データ移動要求」によりHDD過負荷状態の変更が実行可能か否かを確認する(ステップ1502)。HDD過負荷状態の変更とは、データ移動によって、LU208を適当なHDD16に配置換えするものである。なお、ここで扱うデータ移動要求は、以前に実施されたJobチューニング処理のステップ1508(後述)で実施されたものである。
【0196】
ここで、直近と、最近のある一定期間(例えば1週間)内の現時刻から一定時間(例えば30分間)における移動元HDD16、移動先HDD16の全体の稼働率の最大値をモニタ履歴情報510を用いて把握し、双方でその値が事前に定められた閾値(例えば40%)を下回っている場合にデータ移動を実行可能と判断する。他の仮想化機構におけるデータ移動の要求が存在する場合にも、同様に関連する部位の稼働率を調べ、全ての部位でその値が事前に定められた閾値未満のときに、データ移動とそれに伴う設定の変更を実施する。実行可能と判断されたデータ移動要求に関し、関連する仮想化機構に対して、そのデータ移動を実現するための処理要求を発行する。
【0197】
次に、Jobが現在、記憶装置40のデータキャッシュ42に関して、初期設定よりも多くのキャッシュ量を利用している場合に、それを開放できるか確認する(ステップ1503)。
【0198】
ここでは、図16に示したJobキャッシュ量情報650中の割当情報652を参照し、設定量が初期設定(最も古い世代のデータ)より大きなエントリを新しい世代の方から検索し、その原因をその設定理由から把握する。そして、その原因に対応するモニタ履歴情報510の最新のデータを把握し、設定理由中に記憶された負荷のよりも一定割合(例えば75%)未満の負荷になっているか確認し、負荷が下がっている場合には、その1世代前の設定に戻すと判断する。前の設定に戻すと判断された場合には、割当情報652のさらに古い世代のデータの確認を同様に繰り返しおこなう。
【0199】
この確認処理により、戻されるべき割当情報652の世代を把握し、そのようなものが存在する場合には、Jobキャッシュ量情報650中の割当情報652の戻される設定以降の新世代のデータを破棄し、戻された世代のデータに合わせて、記憶装置40に対してキャッシュ割当量の変更指示を発行する。
【0200】
次に、モニタ履歴情報510の最新データを参照し、問題点が存在するか確認する(ステップ1504)。
【0201】
ここで、JobがオンラインJob管理情報770で管理されている場合、すなわち、オンラインJobである場合には、図12に示されたモニタ履歴情報510に記憶された、最新のAPプログラム100における各処理の平均応答時間、平均処理時間、平均実行回数を把握し、それからAPプログラム100全体での平均応答時間、平均稼動率、平均実行回数を計算する。そして、対応するオンラインJob管理情報770を参照し、求めた平均応答時間が要求性能774に設定された平均応答時間を満たすか、また、平均稼働率が(処理多重度782)×(事前に定められた閾値)(例えば95%)を超えている場合に高負荷状態にあるとし、平均実行回数が要求性能774に設定された処理スループットを満たすか否かを確認して、満たさない条件が存在する場合に問題点が存在するとする。
【0202】
JobがバッチJob管理情報700で管理されている場合、すなわち、バッチJobである場合には、Jobリソースマッピング情報を参照してそのJobが利用するデータが記憶されるHDD16を把握し、それらのHDD16全体の稼働率が事前に定められる閾値(例えば70%)を超えている場合には過負荷状態にあると判断し、問題点が存在するとする。
【0203】
問題点が存在する場合には、ステップ1505に進む。存在しない場合には、ステップ1530に進み、処理を終了する。
【0204】
次に、図12に示されたモニタ履歴情報510の最新データを参照し、Jobに関連するハードウェアに関して、記憶装置40以外に過負荷状態の部位が存在するか確認する(ステップ1505)。
【0205】
Jobに関連するハードウェアとしては、サーバ70におけるCPU稼働率、仮想化スイッチ60とサーバ70におけるI/OパスI/F32のポート26等があり、それらはJobリソースマッピング情報を参照することにより求めることができる。過負荷状態とは、各々の稼働率が各ハードウェア毎に事前に定められた値を超えた状態として認識する。そのような部位が存在する場合には、ステップ1525に進み、存在しない場合にはステップ1506に進む。
【0206】
ステップ1505で過負荷状態であると判断された部位の負荷を下げる構成を取ることが可能であれば、それを実現するようにサーバ70中のOS72や仮想化スイッチ60に対して指示を出す(ステップ1525)。なお、本発明は、記憶装置の性能を調整することに主眼を置いているので、ステップ1525の具体的な方法については詳説しない。
【0207】
ステップ1505で記憶装置40以外に過負荷状態の部位が存在しないと判断されたときには、Jobが利用するデータを記憶する記憶装置40内の関連部位に関して、過負荷状態のものが存在するか否かを確認する(ステップ1506)。
【0208】
確認部位としては、I/OパスI/F32のポート26とHDD16がある。HDD16についてはステップ1504で述べた通りである。
【0209】
ポート26に関しては、JobがオンラインJob管理情報770で管理される場合のみ確認する。先ず、システム管理情報142の中に保持するJobリソースマッピング情報を参照し、Jobが利用するポート26とそこを通してアクセスするLU208を把握する。図12に示したモニタ履歴情報510の最新データを用いて、求めたLU208のポート26における性能割合632を計算し、ポート26毎にその総和を求める。求めた値が、Jobポート設定情報630に保存されているJobに対して割り当てられているポート26の性能割合632の一定割合(例えば、90%)を超える場合に、そのポート26はJobに対し過負荷状態にあると判断する。
【0210】
ステップ1506で、関連するポート26がJobに対し過負荷状態にある場合にはステップ1511に進む(図21[A])。関連するHDD16が過負荷状態にある場合にはステップ1507へ進む。そして、関連する全てのポート26とHDD16が正常値と判断される場合には、ステップ1519に進む。なお、このステップ以降は、過負荷状態の部位が複数存在する場合には、その部位毎にパスが分かれて、それぞれについて処理が進められる。
【0211】
ステップ1506で、関連する全てのポート26とHDD16が正常値と判断される場合には、性能問題が発生しているJobが利用するキャッシュグループのキャッシュ量割当を変更する方法を決定する(ステップ1519)。
【0212】
この処理では、このステップに来たJobに関して、Job優先度704が高い順に、オンラインJob向けにキャッシュ量をチューニングする処理を実施する。なお、オンラインJob向けにキャッシュ量をチューニングする処理は、後に(IV−5)の図25で説明する。
【0213】
このとき、先にチューニングを実施したJobが利用するキャッシュグループをシステム管理情報142の中のJobリソースマッピング情報から把握し、後続のJobに関して、オンラインJob向けにキャッシュ量をチューニングする処理を実施する際に、それらキャッシュグループのキャッシュ割当量を減らさないように指示を出す。なお、Jobに対する現在のキャッシュ割当量の一定比率分(例えば5%)をフリーキャッシュグループから割り当てた後に、オンラインJob向けにキャッシュ量をチューニングする処理を実施してもよい。
【0214】
そして、ステップ1519で求めたキャッシュ割当量の変更指示を対応する記憶装置40に発行し、その設定に合わせて、図16のJobリソース管理情報620の中のJobキャッシュ量情報650の値を更新する(ステップ1521)。
【0215】
そして、処理を終了する(ステップ1530)。
【0216】
ステップ1507で関連するHDD16が過負荷状態にあると判断された場合には、Jobが過負荷状態にあるHDD16にデータを記憶するLU208に属するキャッシュグループにキャッシュを追加するチューニングが実行可能か確認する(ステップ1507)。
【0217】
そのようなキャッシュグループに対して、そのJobのキャッシュ量を現在値からある一定割合(例えば5%)増加させるとしたとき、フリーキャッシュグループからその量を確保できるかJobキャッシュ量情報650を参照して確認し、割当可能な場合にはそのキャッシュ割当量変更処理を実施することとする。不可能な場合には、可能量を全てこのチューニングに用いる。このとき、Jobが利用する異なるデータについて、それぞれの異なるLU208により問題のHDD16に記憶される場合には、用いたLU処理時間変化の平均を考え、関連するLU208におけるその和が最大になるように割り当てる。なお、LU処理時間変化の平均を考えて、キャッシュ割当量変更変更案を作成する処理については、後の(IV−5)の図25で説明する。また、Jobキャッシュ量情報650の割当情報652をこのステップで設定した値に更新するときには新しい世代のデータとして記憶し、設定理由に過負荷HDD16のHDDID394と現在の稼働率を記憶する。
【0218】
次に、過負荷状態のHDD16上に記憶されている、Jobが利用するLU208のデータを通常負荷のHDD16へ移動させるデータ移動要求を作成する(ステップ1508)。
【0219】
データ移動要求は、以下のようにして作成される。先ず、過負荷状態のHDD16を移動元HDD16とする。Jobリソースマッピング情報を参照し、移動元HDD16に記憶されたLU208のうち、そのデータを利用する最も優先度の高いJobが利用するLU208をデータを移動するLU208として把握する。そして、移動元HDD16を有する記憶装置40、移動元HDD16データを移動するLU208を指定して、HDD過負下状態を解消する方法を決定する処理を実施してデータ移動要求を作成し、システム管理情報142中に記憶する。HDD過負下状態を解消する方法については、後に(IV−5)の図27で説明する。
【0220】
データ移動要求作成後に、それを実行した後の稼働率を、移動したLU208の稼働率分だけHDD16全体の稼働率が下がるとして見積り、その値が事前に定めた閾値(例えば60%)を下回らない場合には、次に優先度の高いJobが利用するLU208をデータを移動するLU208として、 HDD過負下状態を解消する方法を決定する処理を実施し、移動元HDD16の稼働率見積値が閾値を下回るか、あるいは、全てのJobに関してその確認を完了するまで繰り返す。
【0221】
なお、仮想化スイッチ60やボリュームマネージャ78がデータ移動により仮想構造と管理構造との対応関係を動的に変更できる場合には、記憶装置40内でのデータ移動要求の作成に失敗した場合に、 HDD過負下状態を解消する方法を決定する処理からの処理を準用して仮想化スイッチ60やボリュームマネージャ78におけるデータ移動の要求を作成してもよい。このとき、以下の点も考慮する。1)新たに仮想構造をフリー領域から作成してそこにデータを移動させる。2)移動先決定時にHDD16の稼働率のみでなく、データ移動先に対するアクセスパス(サーバ70から記憶装置40へ至るI/Oパス34の経路)におけるポート26の稼動状況を調べ、それぞれで移動後の値として見積られる稼働率が100%を超えないようにする。この見積りは、HDD16における稼働率の見積りと同様に実施する。3)移動先となる記憶装置40において、移動されたデータを保持するLU208が属するキャッシュグループに対して、現状と同じ分のキャッシュ量を割り当てる。
【0222】
次に、ステップ1507で割り当てたキャッシュ量が十分か判断する(ステップ1509)。
【0223】
HDD過負下状態を解消する方法で決定されたLU処理時間変化の平均を考え、関連するLU208におけるその値の和が事前に定められた閾値(例えば単位時間の5%)より大きい場合に十分と判断し、ステップ1521に進む。そうでない場合は不十分としてステップ1517に進む。
【0224】
ステップ1507で割り当てたキャッシュ量が十分と判断されたときには、これまでに求めたキャッシュ割当量の変更指示やI/O性能の設定変更を対応する記憶装置40に発行し、その設定に合わせて、図16のJobリソース管理情報620の中のJobポート設定情報630とJobキャッシュ量情報650の値を更新する(ステップ1521)。
【0225】
ステップ1507で割り当てたキャッシュ量が不十分と判断されたときには、ここでは、過負荷状態にあるHDD16にJobがデータを記憶するLU208へのI/O処理量を削減するチューニングが可能か判断し、可能ならI/O処理の設定変更をおこなう(ステップ1517)。なお、本ステップは、ポートにも問題があるときに、別パスでこの処理とは非同期に実施されるステップ1515より後に実施される必要がある。
【0226】
この処理では、先ず、現在チューニング中のJobのJob管理情報からJob優先度704を求める。過負荷状態にあるHDD16にデータを記憶するLU208を利用するJobを、システム管理情報124の中のJobリソースマッピング情報を参照して把握し、そのJobのJob優先度704を前述と同様に求め、先に求めた現在チューニング中のJobのJob優先度704より低いものを把握する。それらのJobに関して、過負荷状態にあるHDD16にデータを記憶するLU208をアクセスする際に利用される記憶装置40のI/OパスI/F32のポートをJobリソースマッピング情報から求め、Jobポート設定情報630に記憶された、そのJobのそのポート26における性能割合632の値を事前に定められた割合(例えば現在の値5%)を削減することとする。なお、直接HDD16へのアクセス量を制限できるときには、その設定をおこなってもよい。
【0227】
そして、ステップ1521を実施し、処理を終了する(ステップ1530)。
【0228】
ステップ1506で、関連するポート26がJobに対し過負荷状態にある場合には、ポート26がJobに対し過負荷状態である場合の解消方法を決定する(ステップ1511)。先ず、Jobに対して過負荷状態にあるポート26において、図16に示したJobリソース管理情報620の中のJobポート設定情報630を参照して、Jobに対して割り当てられているポート26の性能割合632を求め、その値を一定割合(例えば5%)増やすI/O性能設定変更方法を作成する。
【0229】
次に、ステップ1511で作成したI/O処理量増加案を実現可能か確認する(ステップ1512)。
【0230】
ステップ1511で求めたI/O性能設定変更方法を採用した際に、Jobに対して過負荷状態にあるポート26の各Jobに対して割り当てられた性能割合632を、Jobポート設定情報630を参照して求めてその和を計算し、その値が100%を超えない場合には実現可能としてステップ1521に進む。100%を超える場合には実現不可能としてステップ1513に進む。
【0231】
ステップ1512で、I/O処理量増加案が実現不可能と判断されたときには、Jobに対し過負荷状態にある問題ポート26経由してアクセスされるLU208に対して、サーバ70からそれを回避してアクセスするアクセスパスを追加するか、変更することにより、過負荷状態を回避することが可能か否かを確認する(ステップ1513)。
【0232】
これは、ボリュームマネージャ78、仮想化スイッチ60、記憶装置40が動的に複数のアクセスパスを設定・変更することにより実現するもので、Jobリソースマッピング情報やその他システム管理情報142中に保持される情報を用いて確認する。可能であるときにはステップ1523に進み、不可能である場合にはステップ1514に進む。
【0233】
ステップ1513で、アクセスパスを変更・追加可能と判断されたときには、ステップ1513で作成または変更可能と判断された、問題となっているポート26経由してアクセスされるLU208に対して、サーバ70からそれを回避してアクセスするアクセスパスを実現するように、ボリュームマネージャ78、仮想化スイッチ60、記憶装置40に対して指示を出して(ステップ1523)、処理を終了する(図20[C]、ステップ1530)。
【0234】
ステップ1513で、アクセスパスを変更・追加不可能と判断されたときには、次に、Jobに対し過負荷状態のポート26は複数のJobにより共有されているかJobリソースマッピング情報を参照して確認する(ステップ1514)。
【0235】
共有されている場合にはステップ1515に進む。共有されていない場合には、チューニング不可能としてステップ1530に進み、処理を終了する。
【0236】
ステップ1514で、過負荷状態のポート26は複数のJobにより共有されているといると判断されたときには、問題となっているJobのうち最もJob優先度704が高いものに対し、過負荷状態のポート26を共有する他JobのI/O処理量を絞り込むI/O処理性能の設定変更方法を決定する(ステップ1515)。
【0237】
すなわち、問題ポート26で現在Jobに割り当てられている性能割合632の値を一定割合(例えば5%)増加させるとし、JobのJobID622、問題ポート26のポートID384、新たに割り当てる性能割合632を指定して、ステップ1601から始まる処理を実施し、そのポート26における新たなI/O処理性能の割当を決定する。
【0238】
そして、ステップ1521(図20[B])に進む。
【0239】
(IV−4)システム管理プログラムによるJob実行処理
次に、図22を用いてシステム管理プログラムによるJob実行処理について説明する。
図22は、システム管理プログラムによるJob実行処理のフローチャートである。
【0240】
システム管理プログラム140は、与えられたJob管理情報中の実行条件708を参照して、与えられた条件が満たさた場合にそのJobを実行する(ステップ1301)。
【0241】
そのときに、処理開始時の時刻をJobID622とともにシステム管理情報142中に記憶する。なお、複数のバッチ業務向けのJobが連続して実行される場合には、前段の処理時間によりバッチJob管理情報700中の実行最大時間710の値を変更してもよく、その場合には元の値を別途保存する。
【0242】
Jobが開始されると、先ず、Jobが利用するハードウェアリソースを把握し、Jobリソースマッピング情報に設定する(ステップ1302)。
【0243】
これは、Job管理情報中の実行サーバID712から処理が実施されるサーバ70、I/O処理内容情報740中のデータ情報724から利用するデータを把握し、それらによりシステム管理情報142中のマッピング集約情報を参照しておこなう。
【0244】
次に、優先アクセス制御機能を利用した記憶装置40のI/OパスI/F32のポート26におけるI/O処理性能の変更方法を決定して、それに基づいて記憶装置40に対してその設定指示を出す(ステップ1303)。I/O処理性能の変更方法の決定処理については、後に(IV−4)で説明する。
【0245】
ここでは、開始するJobへ割当を追加する条件で、I/O処理性能の変更方法の決定処理を実施し、求めた値をJobポート設定情報630に反映させる。ここで求まる変更案は、Job毎の割当であり、システム管理情報142の中のJobリソースマッピング情報を利用して、記憶装置40へのアクセス元となるサーバ70もしくは仮想化スイッチ60のI/OパスI/F32のポート26を求め、同一のポート26からのものをまとめることにより記憶装置40への設定値を求め、記憶装置40に対してその設定指示を出す。
【0246】
次に、キャッシュグループの設定とそのキャッシュ量の設定・変更方法を決定すし、それに基づいて記憶装置40に対してその設定指示を出す(ステップ1304)。Jobを開始する際のキャッシュ量の割当てを決定する処理は、後に(IV−5)の図23で説明する。
【0247】
ここでは、先ず、Job管理情報のI/O処理処理内容情報740中のストレージヒント754からキャッシュ量の割当指示があるか調べる。続いて、割当指示があるデータに関して、Jobリソースマッピング情報を参照し、それが記憶されるLU208を調べ、それがフリーキャッシュグループに属しているかを調べる。属すものが存在する場合には、同じデータを記憶し、かつ同じ記憶装置40により提供されるLU208は同じキャッシュグループなるような構成案を作成し、必要であればキャッシュグループの新規作成をおこなうことにし、Jobリソースマッピング情報にその情報を追加する。このとき、できる限り異なるデータを保持するLU208は異なるキャッシュグループに属するようにする。
【0248】
続いて、開始するJobのJob管理情報とキャッシュグループ設定を変更する場合にはその情報を与えてステップ2301から始まる処理を実施し、Jobキャッシュ量情報650に値を設定する。求まる値はJob毎のキャッシュ割当量であり、あるキャッシュグループが利用するキャッシュ容量はそのキャッシュグループを利用するJobに与えられた割当量の総和とする。それらの変更内容に従って記憶装置40に対して指示を出す。
【0249】
これらの処理の後、Job管理情報中の実行サーバID712で識別されるサーバ70に、対応する実行コマンド714を実行するように指示を出し、処理を実行する(ステップ1305)。
【0250】
処理完了後、バッチJob管理情報700により管理されるJobの場合には、Job依存出力データ情報730に設定されているデータの出力データ量を処理完了情報として取得し、その値をJobID622やその出力データを識別するデータ情報724とともにシステム管理情報142内に記憶する。
【0251】
Jobが終わると、ステップ1303で設定したポート26におけるI/O処理性能の割当を他のJob向けに開放する(ステップ1306)。
【0252】
ここでは、実行完了したJobへの割当分を削除する条件で、ステップ1303と同様の処理を実施する。
【0253】
次に、ステップ1304で設定したキャッシュグループとキャッシュ割当の設定を解除する(ステップ1307)。
【0254】
ここでは、完了したJobのJobID622を与えてステップ2501から始まる処理を実施してキャッシュグループの構成変更方法を求める。その内容をJobキャッシュ量情報650やJobリソースマッピング情報に反映させ、求めた方法に従って記憶装置40に対して変更指示を出す。
【0255】
続いて、Jobの実行時間(開始・終了時刻)や処理件数等の実行情報をJob実行履歴として出力する(ステップ1308)。
【0256】
その後、処理を終了する(1309)。
【0257】
なお、処理開始時にバッチJob管理情報700中の実行最大時間710を変更した場合には、別途保存した元の値に戻す。また、バッチJob管理情報700で管理されたJobの処理完了時には、他のバッチJob管理情報700中の実行条件708を参照し、完了したJobに続いて実行すべきJobが存在するか確認し、そのJobの実行のため本手順を再度実施する。
【0258】
(IV−5)記憶装置の諸元の設定変更処理
次に、図23ないし図27を用いて記憶装置40の諸元を変更し、設定する処理について説明する。
【0259】
先ず、図23を用いてシステム管理プログラム140がJobを開始する際にキャッシュ量の割当を決定する処理について説明する。
図23は、システム管理プログラム140がJobを開始する際にキャッシュ量の割当を決定する処理のフローチャートである。
【0260】
このキャッシュ量の割当を決定する処理は、システム管理プログラム140がJobを開始する際、図22のステップ1304からコールされるものである。
【0261】
処理開始時に、上位ルーチンより、これから実行されるJobのJob管理情報と、そのJobの実行開始に際して設定されるキャッシュグループ構成案が与えられる(ステップ2301)。
【0262】
先ず、Jobリソースマッピング情報からJobが利用するデータとそのデータが記憶される記憶装置40を求める(ステップ2302)。
【0263】
そして、Job管理情報中のI/O処理内容情報740にあるストレージヒント754からそれぞれのキャッシュ要求量を把握し、システム管理情報142の中のJobリソースマッピング情報を参照して、LU208毎のキャッシュ要求量を求める。一つのデータが複数のLU208に記憶される場合には、マッピング集約情報からそれぞれのLU208においてデータが記憶される領域量を確認し、それに比例してキャッシュ量をLU208間で分割するものとする。
【0264】
また、一つのLU208に複数のデータが記憶されている場合には、その総和がLU208のキャッシュ要求量であるとする。その値を処理開始時に与えられた構成に従ってキャッシュグループ毎に集計し、Jobの初期設定としてJobキャッシュ量情報650に記憶する。さらに、その値を記憶装置40毎に集計し、キャッシュ要求量とする。
【0265】
続いて、各記憶装置40毎に、ステップ2302で求めたキャッシュ要求量をフリーキャッシュグループから割当可能か確認する。フリーキャッシュグループのキャッシュ量からキャッシュ要求量を差し引いた量が、事前に定められている閾値を下回らない場合には、割当可能とする。割当不可能と判断された場合には以下の処理をおこなう。
【0266】
先ず、キャッシュ割り当て中のJobに与えられたJob優先度704をJob管理情報から把握する。そして、その記憶装置40のキャッシュグループに関して、それを利用しているJobをJobリソースマッピング情報から把握し、そのJobのJob優先度704を求め、その値がキャッシュ割り当て中のJobより低いものを求める。そのようなJobが存在しない場合には、現在の割当量から変更なしとする。存在する場合には、それらのキャッシュ容量の一部をキャッシュ割当を要求しているJobへ再割当する方法を決定する(ステップ2303)。
【0267】
例えば、低優先度のJobに割り当てられているキャッシュを、その量に比例した分をキャッシュ割り当て中のJobに再割り当てする。このとき、キャッシュ量が削減されたJobに対して、Jobキャッシュ量情報650中の割当情報652に、設定量を削減後の値、設定量を“キャッシュ不足”として新世代のデータを設定する。
【0268】
続いて、ステップ2303で求めた割当量に従って、キャッシュグループへの割当方法を決定する(ステップ2304)。
【0269】
フリーキャッシュグループから要求量を取得できたときには、その値がそのまま割当量になる。取得できなかったときは、総和が割当量になるようにキャッシュグループ毎に要求量に比例した量を割り当てる。このとき、Jobキャッシュ量情報650中の割当情報652に、設定量として実際に割り当てられた量であり設定理由が“キャッシュ不足”である新世代のデータを設定する。
【0270】
そして、処理を終了する(ステップ2305)。なお、キャッシュ量を削減されたJobに対して、後に図25で説明するキャッシュチューニング処理を実施してもよい。
【0271】
次に、図24を用いてシステム管理プログラム140がJobの終了時処理として実施するキャッシュの再割当処理について説明する。
図24は、システム管理プログラム140がJobの終了時処理として実施するキャッシュの再割当処理のフローチャートである。
【0272】
このキャッシュ量の再割当処理は、システム管理プログラム140がJobを終了する際、図22のステップ1307からコールされるものである。
【0273】
この処理では、処理開始時に、上位ルーチンから終了したJobのJobID622が与えられる(ステップ2501)。
【0274】
先ず、Jobキャッシュ量情報650を参照し、終了するJobが利用していたキャッシュ量を開放キャッシュ量として把握し、各記憶装置40毎にその量を集計する(ステップ2502)。
【0275】
そして、対応エントリをJobキャッシュ量情報650から削除する。さらに、Jobリソースマッピング情報を参照して、終了するJobのデータのみが記憶されるLU208のみが属するキャッシュグループを把握し、そのキャッシュグループは削除するものとする。
【0276】
続いて、Jobキャッシュ量情報650を参照して、終了するJobがデータを記憶していた記憶装置40において、要求値分のキャッシュ量が割り当てられていないJobを把握する。対応する割当情報652の設定理由が“キャッシュ不足”のエントリのものがこれに相当する。そして、それらのJobのJob優先度704をJob管理情報から把握し、Job優先度704が高いものから順にキャッシュ量の要求値からの不足分を充足するように開放キャッシュの再割当をおこなう(ステップ2503)。
【0277】
ステップ2503において、全てのJobに対してキャッシュの再割当を行った後も開放キャッシュに残りが存在する場合には、それらはフリーキャッシュグループに割り当てるものとする(ステップ2504)。
【0278】
そして、処理を終了する(ステップ2505)。なお、不足分が充足されたJobのキャッシュグループに関しては、Jobキャッシュ量情報650の対応エントリを不足前の世代に戻す。
【0279】
次に、図25を用いてモニタ情報を基にしたオンラインJob向けにキャッシュ量をチューニングする処理について説明する。
図25は、モニタ情報を基にしたオンラインJob向けにキャッシュ量をチューニングする処理のフローチャートである。
【0280】
この処理は、図20、図21のJobのチューニング処理のステップ1507、ステップ1519からコールされる処理である。
【0281】
この処理では、処理開始時に上位ルーチンからチューニングを実施するJobのJobID622と、必要に応じてキャッシュ割当量を削減してはならないキャッシュグループが与えられる(ステップ2701)。
【0282】
先ず、指定されたJobが利用するデータを保持する記憶装置40、LU208、キャッシュグループをJobリソースマッピング情報から求める(ステップ2702)。
【0283】
続いて、キャッシュ量を変更した際のキャッシュヒット率の変化量を計算する(ステップ2703)。
【0284】
本実施形態においては、記憶装置40における実領域分割数502と仮想管理領域数504の値がそれぞれRとVであり、LU208が属するキャッシュグループの現在のキャッシュ量をCとしたとき、キャッシュモニタ情報362中のキャッシュヒット回数累計370における第i領域(0<i<=R)のヒット数は、そのLU208が属するキャッシュグループのキャッシュ量をiC/Rから(i−1)C/Rに削減したときにヒットしなくなる回数、第i領域(R<i<=R+V)のヒット数は、キャッシュ量を(i−1)C/RからiC/Rに増加させたときにヒットするようになる回数と考えられる。
【0285】
ここで、各LU208毎のリードアクセス実行時の第i領域(0<i<=R+V)での平均ヒット率は、図12に示されるモニタ履歴情報510に、記憶装置40における実領域分割数502と仮想管理領域数504は別途システム管理情報142中に保持されている。例えば、キャッシュ量をCからC/R減らしたときの平均実ヒット率の削減分が第R領域における平均ヒット率であるから、LU208におけるキャッシュ量が(i−1)C/RからiC/Rの範囲(0<i<=R)での単位キャッシュ量あたりの平均ヒット率削減分は(第i領域での平均ヒット率)×R/Cとして近似可能である。同様に、キャッシュ量が(i−1)C/RからiC/Rの範囲(R<i<=R+V)での単位キャッシュ量あたりの平均ヒット率増加分は(第i領域での平均ヒット率)×R/Cとして近似可能である。
【0286】
この値をJobが利用するデータを保持するLU208について全て計算し、ヒット率変化率とする。なお、以下のステップを含めてモニタ履歴情報510からは最も直近のサンプル524による値、あるいは、事前に定められた直近のある期間の平均値を取得するものとする。
【0287】
次に、システム管理情報412の中のJobリソースマッピング情報を用いて、Jobが利用するデータを保存するLU208とそれに対応するHDD16を把握する(ステップ2704)。
【0288】
そして、HDD性能情報612のHDD16のアクセス性能情報614を参照してHDD16のリードヒット時の平均応答時間とリードミス時の平均応答時間を求め、(リードミス時の平均応答時間)−(リードヒット時の平均応答時間)を計算しLU208の応答時間変化量とする。なお、LU208中のデータが性能の異なるHDD16に分割されて記憶される場合には、HDD16毎に応答時間変化量を求め、HDD16に記憶されるデータ量で重み付け平均を計算した値をLU208の応答時間変化量とする。
【0289】
記憶装置40毎に、
I = Σ(LU処理時間変化の平均)
ただし、 (LU処理時間変化の平均)=(応答時間変化量)×(LUの平均リードI/O回数)×(ヒット率変化量)
として、Iを最大化するようなキャッシュ割当の変更方法を求める(ステップ2705)。
【0290】
ここで、Σは、ある記憶装置40における指定されたJobのデータを保持するLU208に関して総和を取ることを意味する。また、応答時間変化量は、ステップ2704で求めたものを用い、LU208の平均リードI/O回数はモニタ履歴情報510から取得する。ヒット率変化量はステップ2703で求めたヒット率変化率とキャッシュ割当の変更量から求めることができる。このとき、ヒット率変化率は、キャッシュグループのキャッシュ量により変化することに注意する。
【0291】
最大化には、例えば、以下のアルゴリズムを用いる。
【0292】
先ず、あるキャッシュグループに対して、単位キャッシュ量を増やした場合と減らした場合のIを計算する。そして、キャッシュ量を減らした場合に最もIが大きい(影響が小さい)キャッシュグループからキャッシュ量を増やした場合に最もIの値が大きい(効果が高い)キャッシュグループへ単位量分キャッシュ割当を変更したとした場合のIの値を再計算し、それがある閾値以上のときに「効果あり」としてキャッシュ割当の変更をおこなうとする。以下、キャッシュ割当の変更がおこなわれたとして上記確認を繰り返し実施し、さらに割当変更をおこなうことに効果なしと判断されるか、あるいは、事前に定められる一定量(例えば、記憶装置40でJobが利用しているキャッシュ量の一定割合)分の割当変更をおこなった場合に、この確認の繰り返しを終了させる。なお、処理開始時にキャッシュ割当量を削減してはならないキャッシュグループが指定された場合には、その制約を守るようにする。
【0293】
そして、処理を終了する(ステップ2706)。このとき、図16のJobリソース管理情報620の中のJobキャッシュ量情報650中の割当情報652の値を更新する。
【0294】
次に、図26を用いてI/O処理性能の変更方法を決定する処理について説明する。
図26は、I/O処理性能の変更方法を決定する処理のフローチャートである。
【0295】
この処理は、Jobとポートの割当てを調整して変更する処理であり、図22のJobを実行する処理のステップ1303、図20、図21のJobのチューニング処理のステップ1515、1517からコールされる処理である。
【0296】
また、この処理は、処理開始時に、上位ルーチンからJobを新規に追加するときやJobの完了により割当を開放した際の変更をするときには、そのJobの識別子と追加・開放を示す情報が与えられ、既に割り当てられたI/O処理量を変更する場合には、変更するJobの識別子と割当を変更したいポート26の識別子、そのポート26へ新たに設定したい性能割合632が与えられる(ステップ1601)。他のJobが要求するI/O処理量は、特に指定がない限り、Jobポート設定情報630とそこから識別されるJobのJob管理情報740から把握する。
【0297】
先ず、割当変更の対象となる記憶装置40におけるI/OパスI/F32のポート26を把握する(ステップ1602)。
【0298】
Jobの新規追加・削除の時には、Jobの識別子からJobリソースマッピング情報を参照し、そのJobが利用するポート26を全て把握し、それらを処理量割当の変更対象とする。ポート26のI/O処理量が直接指定されたときは、処理量割当の変更対象は指定されたポート26のみとする。その後、求めたポート26を利用する現在実行中のJobを、システム管理情報412の中のJobリソースマッピング情報を用いて全て把握する。
【0299】
次に、ステップ1602で求めた各ポート26において、各Jobの要求値通りI/O処理量を割り当てるとした割当案を作成する(ステップ1603)。
【0300】
ここで要求値とは、処理が呼び出されたときに性能割合632が指定されたときにはその値であり、そうでない場合には以下のように求める。
【0301】
先ず、Jobリソースマッピング情報から求まるポート26を通してJobがアクセスする各データに対して、そのJobのJob管理情報中のI/O処理内容情報740を参照し、そのデータに対応するアクセス順742の値によりグループ化する。次に、各グループ毎にそれに属するデータのI/Oベース性能748のそのポート26における性能値を性能割合632に変換した値の和を計算する。それぞれのグループにおける計算値とJobポート設定情報630中の現在の性能割合632を比較し、その中で最も大きな値を要求値とする。
【0302】
ステップ1603で求めた割当案が実現可能か、すなわち、各ポート26における各Jobからの要求値の和が100%を超えないかを確認する(ステップ1604)。
【0303】
実現不可能なポートが存在する場合には、ステップ1605に進む。全てのポートで実現可能である場合には、ステップ1610に進み、現在の割当案をI/O処理量の割当方法とし、処理を終了する。
【0304】
ステップ1604で全てのポートで実現可能である場合と判断された場合、ステップ1604の確認で問題が発生するとされたポート26に対してのみ割当案の再計算をおこなう。
【0305】
先ず、オンライン業務向けJobの負荷確認に用いるモニタ情報の参照時間を定める(ステップ1605)。
【0306】
基本的には、現時刻から、事前に与えられた時間(例えば1時間)をその時間とする。ただし、ステップ1602で求めたJobに関して、あるJobがバッチJob管理情報700で管理される場合には、そのJobが開始された時間から最大実行時間710の値で与えられる時間、処理が実行されるとして実行終了時刻を見積り、その終了時刻が前述の参照期間の終了時刻より早い場合には、そのJobの実行終了見積時刻をモニタ情報の参照時間の終了時刻としてもよい。
【0307】
次に、要求性能に影響を与えないと見積られる範囲でI/O処理量を削減した割当案を作成する(ステップ1606)。
【0308】
割当値は、処理が呼び出されたときに処理量が指定されものはその値とする。
【0309】
バッチJob管理情報700で管理されるJobに対しては次のように計算する。先ず、割当量が定まっていないポート26における処理性能は、要求値にJob毎に定まる補正係数を掛けた値となるとし、そのときに処理実行時間見積値が最大実行時間710で与えられる時間となる補正係数を計算する。前述のJobの処理実行時間見積方法の説明に従うことにより補正係数を求める単純な方程式が得られ、これを解くことによりその値を求める。バッチJob管理情報700中のJob優先度704を用いて優先度制御情報880を参照して求める余裕係数882と計算した補正係数を要求値に乗じた値と要求値を比較し、小さな値の方を割当値とする。
【0310】
オンラインJob管理情報770で管理されるJobに対しては、次のように求める。先ず、割当量が定まっていないポート26を経由してアクセスされるデータを記憶するLU208をJobリソースマッピング情報から求める。過去のそのLU208への対象ポート26を介してのI/O処理量をモニタ履歴情報510から把握する。その際に参照するデータは、事前に定められた期間(例えば1週間)以内のステップ1605で求めたモニタ情報の参照時間内のモニタ値と、直前のモニタ値とする。そのモニタ値から計算する性能割合632の最大値にオンラインJob管理情報770中のJob優先度704から求まる余裕係数882を乗じた値と要求値を比較し、小さな方を割当値とする。
【0311】
そして、求めた各ポート26における各Jobからの割当値の和が100%を超えないか確認する(ステップ1607)。なお、和が100%を超えないポート26に関しては、総和が100%になるように割当値の修正をおこなう。この修正は、Job優先度704が高いJobから順に要求値からの差分を順次割り当てることによりおこなう。
【0312】
一つ以上のポート26で割当値の和が100%を超える問題が解消されない場合にステップ1608に進む。全てのポートで問題が解消された場合にはステップ1610に進み、現在の割当案をI/O処理量の割当方法とし、処理を終了する。
【0313】
以降、ステップ1607までで、問題が解決されなかったポート26に対して、Jobの優先度を考慮してI/O処理量を割り当てる処理をおこなう(ステップ1608)。
【0314】
例えば、割当が決まっていないポート26毎に、そのポート26への各Jobの割当量は、ステップ1606で求めた割当量にポート26毎に定める新たな補正係数を(Jobに与えられたJob優先度704の値)乗じたものとし、その総和が100%になるように補正係数を決定、その値を各Jobへの割当値とする。
【0315】
ステップ1608でI/O処理量の割当案が作成されたポート26を介してデータをアクセスするJobに関して、バッチJob管理情報700で管理されるJobにおいては割当案による処理時間見積り値が最大実行時間710を満たさない場合、オンラインJob管理情報770で管理されるJobにおいてはI/O処理量のステップ1606で求めた割当値を確保できなかったポート26が存在する場合に、要求性能を満たさない可能性が高い旨の情報を出力する(ステップ1609)。
【0316】
これは、管理端末110の画面114にその旨を表示してもよいし、また、システム管理プログラム140が各種イベントの履歴を記憶するログに追加してもよい。
【0317】
そして、処理を終了する(ステップ1610)。
【0318】
次に、図27を用いてモニタ情報を基にしたデータ移動によるHDD過負荷状態の解消方法を決定する処理について説明する。
図27は、モニタ情報を基にしたデータ移動によるHDD過負荷状態の解消方法を決定する処理のフローチャートである。
【0319】
この処理は、図20のJobのチューニング処理のステップ1508からコールされる処理である。
【0320】
処理開始時に、上位ルーチンからデータの移動元となる移動元HDD16を有する記憶装置40と移動元HDD16とそこに記憶されているデータを移動するLU208のそれぞれの識別子が与えられる(ステップ2901)。
【0321】
先ず、各仮想化機構から領域マッピング情報300の最新状態を取得し、マッピング集約情報を最新の状態に更新する。その後、各仮想化機構の領域マッピング情報300におけるフリーエントリ314に対応する下位管理構造対応領域情報304を基に「フリー領域」として把握し、可能であれば、仮想化スイッチ60、ボリュームマネージャ78におけるフリー領域を開放する(ステップ2902)
ここで、「フリー領域」とは、フリーエントリ314に対応する下位管理構造対応領域情報304のうちで、システム管理情報142中に既に存在する「データ移動要求」のデータの移動先として利用されていないものである。また、データ移動要求とは、このステップ2901から開始される処理が作成するある記憶装置40におけるデータ移動によりLU208とHDD16の対応を変更する方法に関する情報であり、そのデータ移動を実施する記憶装置40の装置ID572と移動元となるHDD16のHDDID394とデータを移動すべきLU208のLUID364、移動先となるHDD16のHDDID394とその中の領域に関する情報を含んでいる。この情報はシステム管理情報142中に保存される。
【0322】
把握したフリー領域のうち、仮想化スイッチ60、ボリュームマネージャ78におけるフリー領域に関しては、可能であればその領域を開放する指示を仮想化スイッチ60、ボリュームマネージャ78に発行することにより、開放することができる。ある領域が開放された際に、開放された領域を構成していたものが仮想構造であり、かつ、その仮想構造の全ての領域が上位階層で利用されなくなった場合には、その仮想構造を提供する仮想化機構にその仮想構造を削除するよう指示し、その仮想構造を構成していた管理構造の領域をフリー領域化する。以下、再帰的にこの領域開放処理を行い、それらについてもフリー領域の把握をおこなう。
【0323】
移動元HDD16を有する記憶装置40内のHDD16のうち、移動元HDD16上に記憶されている指定されたLU208のデータを全て連続したフリー領域へ格納可能なHDD16を求め、そのHDD16のリードミス時の平均応答時間をHDD性能情報612中のアクセス性能情報614から求め、その値が移動元HDD16の値以下(同等以上のリードミス性能)のHDD16を選択する(ステップ2903)。なお、HDD16が選択されない可能性もある。
【0324】
選択されたHDD16において、モニタ履歴情報510中の最近のある一定期間(例えば1週間)におけるHDD16の稼働率のサンプル524を把握し、その期間内の各サンプル524で、そこがデータの移動先となった場合の、データ移動後のHDD16全体の稼働率(HDD16にデータを記憶するLU208におけるHDD16の稼働率の総和)を見積る(ステップ2904)。
【0325】
ここで、移動されたLU208のデータによるHDD16の稼働率は、移動先と移動元でHDD16の稼働率はリードミス性能に比例するとして、移動元HDD16におけるLU208分の稼働率を補正した値として見積る。
【0326】
各サンプル524の見積り値のうち、最も値の大きいものをそのHDD16のデータ移動後の稼働率とし、その値が最も小さなHDD16を選択し、それが事前に定められる閾値(例えば50%)未満か否かを確認する。閾値未満の場合にはそこへ移動元HDD16におけるLU208のデータを移動するデータ移動要求を作成する(ステップ2905)。閾値以上の場合、もしくは、ステップ2903でHDD16が一つも選択されなかった場合には、作成失敗としてデータ移動要求は作成しない。
【0327】
そして処理を終了する(ステップ2906)。
【0328】
〔実施形態2〕
以下、本発明に係る第二の実施形態を、図28を用いて説明する。
図28は、本発明の第二の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【0329】
第一の実施形態では、サーバ70と記憶装置40の間に仮想化スイッチ60が置かれ、I/Oパス34と、ネットワーク24により接続されていた。そして、図2に示すような管理構造により、データが仮想化されていた。
【0330】
本実施形態では、記憶装置40bは、ファイルを外部装置に対して提供し、そのファイルは、ネットワークファイルシステムプロトコルを用いてネットワーク経由でアクセスされる。
【0331】
以下、第一の実施の形態との差異に関して説明する
本実施形態においては、I/Oパス34、仮想化スイッチ60が存在しない。ネットワークI/F24のポート26には、システム内で一意に識別可能なポートID384が付加される。
【0332】
サーバ70は、I/OパスI/F32を有せず、ネットワークI/F22のみ有している。OS72は、外部装置が提供するファイル202をネットワークファイルシステムプロトコルを用いて、ネットワーク24経由でアクセスするネットワークファイルシステム82を含む。
【0333】
ネットワークファイルシステム82は、領域マッピング情報300をOS管理情報74中に有する。また、DBMS90やAPプログラム100により認識されるファイル202と記憶装置40bから提供されるファイル202があるルールに従って対応する場合、その対応関係を定める情報のみがOS管理情報74中に保持されても良い。この場合には、システム管理プログラム140は対応関係を定める情報を取得し、それから領域マッピング情報300を作成し、マッピング集約情報中に記憶する。
【0334】
記憶装置40bは、I/OパスI/F32を有せず「ファイル」と言う概念で、外部装置に対してデータのアクセスをさせるものである。記憶装置40bの制御プログラム44bに変更され、次の機能を有する。制御プログラム44bは、第一の実施形態のファイルシステム80が提供する機能を有し、記憶装置40b内に存在するLU208の記憶領域を仮想化して、ファイル202と言う概念でデータアクセスを可能にする。また、制御プログラム44bは一つ以上のネットワークファイルシステムプロトコルを解釈し、ネットワーク24、ネットワークI/F22経由で外部装置からそのプロトコルを用いて要求されるファイルアクセス処理を実施する。
【0335】
データのマッピングに関しては、データのマッピング階層構成において、ファイル202以下が全て記憶装置40bにより提供されるようになり、サーバ70はOS72内のネットワークファイルシステム82を用いて記憶装置40b上にあるファイル202をアクセスする。
【0336】
記憶装置内の論理階層としては、図2のようなファイル202とLU208間に、論理ボリューム204、仮想ボリューム206を含んだものとしてもよいし、単に、ファイル202−LU208−HDD16という、より簡易な構成でもよい。
【0337】
その他の差異をまとめると以下のようになる。I/OパスI/F32のポート26をネットワークI/F22のポート26に対応させる。記憶装置40が有していた優先アクセス制御機能に関してもこれを当てはめる。
【0338】
記憶装置40のLU208に対応するものとして、記憶装置40bのファイル202を対応させる。キャッシュグループのメンバの管理単位もファイル202が単位となる。
【0339】
モニタ情報の取得や、各種処理においては、基本的に上記の変更をおこなうことにより、第一の実施の形態のものをそのまま当てはめることができる。
【0340】
【発明の効果】
本発明によれば、DBMSが稼動する計算機システムにおいて、記憶装置に対する性能管理を、ユーザの業務における性能指標を用いておこなえるようにし、性能管理を容易化することができる。
【0341】
また、本発明によれば、DBSMが稼動する計算機システムにおいて、記憶装置の性能チューニング処理を自動化し、性能管理コストを削減することができる。
【図面の簡単な説明】
【図1】本発明の第一の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【図2】本発明の第一の実施形態に係るDBMS90が管理するデータのデータマッピングの階層構成図である。
【図3】領域マッピング情報300のデータ構造を示す模式図である。
【図4】上位ポートマッピング情報322のデータ構造を示す模式図である。
【図5】データ記憶領域情報342のデータ構造を示す模式図である。
【図6】キャッシュグループ情報460のデータ構造を示す模式図である。
【図7】ストレージモニタ情報360のデータ構造を示す模式図である。
【図8】ポートスループット設定情報440のデータ構造を示す模式図である。
【図9】ポートモニタ情報400のデータ構造を示す模式図である。
【図10】オンラインJobモニタ情報430のデータ構造を示す模式図である。
【図11】ストレージ性能情報610のデータ構造を示す模式図である。
【図12】モニタ履歴情報510のデータ構造を示す模式図である。
【図13】バッチJob管理情報700のデータ構造を示す模式図である。
【図14】バッチSQL設計情報850のデータ構造を示す模式図である。
【図15】オンラインJob管理情報770のデータ構造を示す模式図である。
【図16】Jobリソース管理情報620のデータ構造を示す模式図である。
【図17】優先度制御情報880のデータ構造を示す模式図である。
【図18】Job管理情報700中のCPU処理時間見積方法716とI/O処理内容情報740aをモニタ情報の実測により設定する処理のフローチャートである。
【図19】システム管理プログラムのモニタ情報の収集とそのモニタ情報によるJobチューニング処理のゼネラルチャートである。
【図20】モニタ情報によるJobチューニング処理のフローチャートである(その一)。
【図21】モニタ情報によるJobチューニング処理のフローチャートである(その二)。
【図22】システム管理プログラムによるJob実行処理のフローチャートである。
【図23】システム管理プログラム140がJobを開始する際にキャッシュ量の割当を決定する処理のフローチャートである。
【図24】システム管理プログラム140がJobの終了時処理として実施するキャッシュの再割当処理のフローチャートである。
【図25】モニタ情報を基にしたオンラインJob向けにキャッシュ量をチューニングする処理のフローチャートである。
【図26】I/O処理性能の変更方法を決定する処理のフローチャートである。
【図27】モニタ情報を基にしたデータ移動によるHDD過負荷状態の解消方法を決定する処理のフローチャートである。
【図28】本発明の第二の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【符号の説明】
16…HDD、22…ネットワークI/F、24…ネットワーク、26…ポート、32…I/OパスI/F、34…I/Oパス、40…記憶装置、60…仮想化スイッチ、70…サーバ、90…DBMS、100…APプログラム、120…管理サーバ、140…システム管理プログラム。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a performance management method for a computer system and a computer system for managing the performance of a storage device. In particular, a large-scale database management system (DBMS, Database Management System) according to the required performance of business program processing. The present invention relates to a computer system performance management method suitable for adjusting the performance of a storage device in an operating computer system and exerting the required system performance, and a computer system for managing the performance of a storage device.
[0002]
[Prior art]
In recent years, a database management system (DBMS), which is software for performing a series of processes and management related to a database (DB, Database), has become extremely important. Even when examining the software configuration, those using a DB as a base have become dominant.
[0003]
When using an AP program, there is a required performance determined for each task, and it is strongly required to keep it, and its management is extremely important in the management task of the computer system. Generally, the performance of a DBMS is greatly affected by the performance of accessing data. Since the data access performance is strongly affected by the operation status of the hardware resources included in the data access path, it is important to manage the performance in consideration of the operation status of the storage device.
[0004]
In Patent Literature 1, in order to facilitate performance analysis of hardware resources included in a data access path, data mapping between storage devices is acquired from a DBMS, and an operation state (operation rate) in each layer, a certain table, A technology for presenting the operation status of a management structure of another layer corresponding to a data management structure such as a file is disclosed. When a specific part is in an overloaded state, it is highly likely that the specific part is a cause of performance degradation. Therefore, in Patent Literature 1, an optimization plan that solves the problem by changing the storage location of data belonging to a certain management structure is created.
[0005]
On the other hand, there is a storage device having a function of optimizing performance by eliminating an overload state of hardware resources. Patent Literature 2 discloses a storage device that causes a computer to recognize a logical storage device, maps the data to a plurality of physical disk devices existing in the storage device and stores the data, and dynamically maps the logical storage device to the physical disk device. (Hereinafter, used in the sense of "executed without stopping other processes") to improve the access performance of the storage device. In this patent document 2, a specific physical disk device is placed in an overloaded state by moving a part of data stored in a physical disk device with a high operating rate (overloaded state) to another physical disk device. And optimize performance.
[0006]
In addition, when connecting to a plurality of computers via the same port using a Fiber Channel or the like, there is a storage device having a function of giving priority to access from a specific computer (for example, non-patented devices). Priority Access function described in Document 1).
[0007]
Further, many of the storage devices have a cache memory. Therefore, the access performance can be improved by improving the probability that the data exists in the cache (hit) at the time of data reading. Patent Literature 3 discloses a technique for improving a cache hit rate by optimizing area allocation when a cache area is divided for each data type. In this patent document 3, in a system for performing cache data replacement control using an LRU (Least Recently Used) replacement algorithm, information on which position in an LRU management list exists at the time of a cache hit is obtained, and the area is determined using the information. The cache hit rate at the time of allocation change is estimated, and the area division is optimized.
[0008]
[Patent Document 1]
U.S. Patent No. 6,035,306
[Patent Document 2]
JP-A-9-274544
[Patent Document 3]
U.S. Pat. No. 5,434,992
[Non-patent document 1]
Hitachi Data Systems, Inc., "Hitachi Freedom Storage (TM) Lightning 9900 (TM) V Series", pp. 10-28. 8-9, DISK-432-00b, October 2002
[0009]
[Problems to be solved by the invention]
The performance index of a user's job is often a processing time in the case of a batch job in which a large amount of data processing is performed collectively, and a response time or a processing throughput in the case of an online job. However, the performance index used / provided by the conventional technology is directly linked to the physical operation such as the operation rate of the resource in the computer system and the cache hit rate, and is not directly linked to the performance index from the viewpoint of the user. In many cases, the performance required by the user cannot be achieved unless a plurality of performance indicators provided by the conventional technology are examined and a performance bottleneck is found and eliminated from the performance indicators. At present, these are compensated by an administrator, and this is not a simple task and requires special skills.
[0010]
As described above, there are many portions in which the manager is involved in the current performance management. However, it is preferable to automate the management as much as possible from the viewpoint of eliminating human errors and reducing other management costs.
[0011]
SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems of the related art, and an object of the present invention is to perform performance management for a storage device in a computer system in which a DBMS operates using a performance index in a user's business. And to facilitate performance management.
[0012]
A further object of the present invention is to automate performance tuning processing of a storage device in a computer system on which a DBSM operates, and to reduce performance management costs.
[0013]
[Means for Solving the Problems]
The following is performed to achieve the object of the present invention.
[0014]
First, in order to grasp the operation state of the components of the computer system, the operation status of each component, the response time of the business, and the like are monitored, and the results are collected in the management server. The management server issues a setting change instruction to the storage device when performing processing using the collected monitor information and the predetermined information such as the required performance, or when it is determined that tuning is necessary based on the monitor value. . The contents of the setting change include the allocation of the processing amount in the port of the storage device, the allocation of the cache amount to the data, and the configuration change of the storage area of the disk device for storing the data.
[0015]
For Job (a management unit of a program that realizes processing in the management server) that performs a batch job, a method for estimating the processing time is given to the management server, and the processing time is estimated using the method. Using the estimation, the setting of the storage device is changed so that the processing is completed within the required time. The processing time is estimated in consideration of the data processing amount and the I / O processing amount of the currently available storage device. The method of estimating the processing time can be determined by actually executing the processing, confirming the operation status of each component of the computer system, and associating it with the processing content.
[0016]
For a job that performs an online job, the response time and throughput of the processing are measured, and when the required performance is not satisfied, an instruction to change the setting of the storage device is issued. A part that is a performance bottleneck is found by referring to the operation rate of the resource of the storage device, and a setting change instruction is issued so as to eliminate the part. Also, if necessary, a cache allocation change instruction is issued to improve access performance.
[0017]
When a plurality of Jobs are executed in parallel in a computer system, resources in a storage device are shared between different Jobs, which may cause a performance bottleneck. Therefore, a processing priority is set for each Job, and when a problem occurs due to resource sharing, a part of the processing amount used by the low-priority Job is assigned to the high-priority Job. Is performed to maintain the required performance of Job, which is high.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to FIGS. 1 to 28.
[0019]
[Embodiment 1]
Hereinafter, a first embodiment according to the present invention will be described with reference to FIGS.
(I) Configuration of computer system to which the present invention is applied
First, the configuration of a computer system that manages the performance of a storage device according to the first embodiment of the present invention will be described with reference to FIG.
FIG. 1 is a configuration diagram of a computer system that manages the performance of a storage device according to the first embodiment of the present invention.
[0020]
The computer system performs a storage device 40, a computer (hereinafter, “server”) 70 that uses the storage device 40, a computer (hereinafter, “management server”) 120 that manages system performance and the like, and a storage area virtualization process. It has a virtualization switch 60. Each device has a network I / F 22, and is connected to a network 24 via the network I / F 22, and can communicate with each other.
[0021]
The server 70, the virtualization switch 60, and the storage device 40 each have an I / O path I / F 32, and are connected by a communication line (hereinafter, “I / O path”) 34 via the I / O path I / F 32. I / O processing between the server 70 and the storage device 40 is performed using the I / O path 34. Note that the I / O path 34 may use a physical medium that differs between devices or a communication line that performs data transfer using a different protocol. Further, the network 24 and the I / O path 34 may be the same communication line.
[0022]
The storage device 40 has a CPU 12, a memory 14, a disk device (hereinafter, “HDD” (Hard Disk Drive)) 16, a network I / F 22, and an I / O path I / F 32, which are connected by an internal bus 18. You. The HDD 16 may be singular or plural. The memory 14 has a non-volatile area (ROM area) and a high-performance area (RAM area).
[0023]
In this embodiment, the storage device provides a logical disk device (hereinafter, “LU” (Logical Unit)) to an external device, and uses a block as a data access unit.
[0024]
A control program 44, which is a program for controlling the storage device 40, is stored in a nonvolatile area of the memory 14, and is executed by the CPU 12 after being moved to a high-performance area of the memory 14 at the time of startup. All the functions of the storage device 40 are realized and controlled by the control program 44.
[0025]
The memory 14 stores management information 46 used by the control program 44 to control and manage the storage device 40. Further, a part of the memory 14 is allocated to a data cache 42 which is an area for temporarily storing data requested to be accessed by an external device.
[0026]
The storage device 40 virtualizes the physical storage area of the HDD 16 and provides one or more LUs 208 to an external device. The LU 208 may correspond to the HDD 16 on a one-to-one basis, or may correspond to a storage area including a plurality of HDDs 16. Further, one HDD 16 may correspond to a plurality of LUs 208. The correspondence is held in the management information 46 in the form of the area mapping information 300. The storage device 40 has a function of dynamically creating / deleting the LU 208 and expanding / reducing the storage area of the LU 208 (see the definition in the section of the related art). Further, the storage device 40 has a function of dynamically changing the correspondence between the LU 208 and the storage area of the HDD 16 that stores the data by data movement.
[0027]
The storage device 40 has one or more ports 26 to the I / O path 34 of the I / O path I / F 32 that can access the LU 208. Further, it has a port to the network 24 in the network I / F 22.
[0028]
The correspondence between the port and the data to be accessed is held in the management information 46 in the form of higher-level port mapping information 322 (described later in FIG. 4). Further, the storage device 40 has a function of dynamically adding / deleting the port 26 to which the LU 208 can be accessed.
[0029]
In the storage device 40, storage areas are grouped in units of LUs 208, and an independent area in the data cache 42 is allocated to each group (hereinafter, this LU 208 group is referred to as a "cache group"). Creation / deletion of a cache group and addition / deletion of an LU 208 belonging to the cache group can be performed dynamically. Further, the storage device 40 has a function of dynamically changing the allocation amount of the data cache 42 to the cache group. The cache data replacement control in the cache group is performed independently using the LRU replacement algorithm. Also, regarding the storage area of the data that no longer exists in the data cache 42 due to the data replacement by the above algorithm, the information is stored in the management list for the LRU replacement algorithm as a virtual management area for a certain amount even after the replacement, and the operation is performed. Used to measure the situation.
[0030]
The storage device 40 has a function of executing an access request from a specific external device preferentially for each port 26 of the I / O path I / F 32 so that the processing amount per unit time satisfies the set value (hereinafter referred to as “priority”). Access control function "). The setting is held in the management information 46 in the form of port throughput setting information 440 (described later in FIG. 8). The storage device 40 has a function of creating, changing, and deleting the setting of the priority access control function in the port 26.
[0031]
The control program 44 measures the operating status of each existing part of the storage device 40 and stores it in the management information 46 in the form of storage monitor information 360. In particular, regarding the cache hit number statistics, the management list of the cache segment (area management unit of the data cache 42) for the LRU replacement algorithm is divided into a plurality of equal-sized areas, and the number of hits is measured for each divided area. Further, the virtual management area is also divided into areas of the same size as the real management area (the area where the cache segment is actually allocated to the data) and the number of hits is measured similarly to the real management area.
[0032]
The storage device 40 has a function of transmitting area mapping information 300, storage monitor information 360, port throughput setting information 440, and other configuration information of the storage device 40 to the outside via the network 24 in response to a request from the outside. . It should be noted that all of the data structures described here will be described later in detail.
[0033]
In addition, it has a function of executing the above-described various functions according to an instruction received from an external device via the network 24 from outside.
[0034]
The virtualization switch 60 has a CPU 12, a memory 14, a network I / F 22, and an I / O path I / F 32, which are connected by an internal bus 18. The memory 14 has a non-volatile area (ROM area) and a high-performance area (RAM area).
[0035]
A control program 64, which is a program for controlling the virtualization switch 60, is stored in a non-volatile area of the memory 14, and is executed by the CPU 12 after being moved to a high-performance area of the memory 14 at the time of startup. All functions provided by the virtualization switch 60 are controlled by the control program 64. The memory 14 also stores management information 66 used by the control program 64 to control and manage the virtualization switch 60.
[0036]
The virtualization switch 60 recognizes the LU 208 provided from the storage device 40 connected to the present device, virtualizes the storage area, and provides the virtual volume 206 to the external device. When the virtualization switch 60 is connected in multiple stages, the virtual volume 206 provided by the other virtual switch 60 is treated equivalently to the LU 208 provided from the storage device 40, and the storage area is virtualized to To an external device. The correspondence is held in the management information 66 in the form of area mapping information 300. The virtualization switch 60 has a function of dynamically creating / deleting the virtual volume 206 and expanding / reducing the storage area of the virtual volume 206. Further, it has a function of dynamically changing the correspondence between the LU 208 constituting the virtual volume 206 and the storage area of another virtual volume 206. Further, the virtualization switch 60 has a function of deleting an area corresponding to a free entry 314 described later in the area mapping information 300 held by the virtualization switch 60 from the area mapping information 300 (hereinafter, “release area”).
[0037]
The virtualization switch 60 has one or more ports 26 of the I / O path I / F 32 that can access the virtual volume 206. The correspondence is held in the management information 66 in the form of the upper port mapping information 322 (described later). Further, it has a function of dynamically adding / deleting a port 26 to which the virtual volume 206 can be accessed.
[0038]
When the virtual volume 206 provided by the virtualization switch 60 is accessed, the number of accesses performed, the type of the access, and the amount of transferred data are measured for each port 26 of the I / O path I / F 32, and the information is managed. It is stored in the form of port monitor information 400 (described later with reference to FIG. 9).
[0039]
The virtualization switch 60 has a function of transmitting the area mapping information 300 and the port monitor information 360 to the outside via the network 24 in response to a request from the outside. In addition, it has a function of executing the above-described various functions according to an instruction received from an external device via the network 24 from outside. These data structures will be described later in detail.
[0040]
The server 70 has a CPU 12, a memory 14, an HDD 16, a network I / F 22, and an I / O path I / F 32, which are connected by an internal bus 18.
[0041]
On the memory 14, an operating system (OS, Operating System) 72 and a management agent 144 are read from the HDD 16 and executed by the CPU 12.
[0042]
The OS 72 includes a device driver 76, a volume manager 78, and a file system 80. The OS 72 read into the memory 14 has OS management information 74 which is management information used by these and other programs constituting the OS 72. The OS management information 74 includes information on the hardware configuration of the server 70, such as the number of CPUs 12. In addition, the OS 72 has a software interface for an external program to read information stored in the OS management information 74. In the example shown in FIG. 1, the server 70 has only one file system 80, but may have a plurality of file systems 80. The OS 72 manages programs executed on the computer on which the OS 72 operates. At this time, how much the entire program being executed has used the CPU 12 is measured, and the operation rate of the CPU 12 is calculated based on the measurement, and the calculated operation rate is stored in the OS management information 74.
[0043]
The device driver 76 is a program that controls hardware such as the network I / F 22 and the I / O path I / F 32. When data transfer (access) is performed through the network I / F 22 or the I / O path I / F 32, the number of times of execution, the type thereof, and the amount of transferred data are determined by the network I / F 22 or the I / O path I / F 32. Is measured for each port 26 and stored in the OS management information 74 in the form of port monitor information 400.
[0044]
The volume manager 78 is a program that virtualizes the storage area of the LU 208 provided by the storage device 40 and the virtual volume 206 provided by the virtualization switch 60, and provides the logical volume 204 to the file system 80. The correspondence is held in the OS management information 74 in the form of area mapping information 300. The volume manager 78 has a function of dynamically changing the configuration (including creation and deletion) of the logical volume 204, and can give an execution instruction through a software interface of the volume manager 78. The volume manager 78 has a function of releasing an area corresponding to the free entry 314 based on the area mapping information 300 held by the volume manager 78. Further, the volume manager 78 may have a load distribution function of I / O processing using a plurality of I / O paths 34.
[0045]
The file system 80 virtualizes the storage areas of the LU 208 provided from the storage device 40, the virtual volume 206 provided from the virtualization switch 60, and the logical volume 204 provided from the volume manager 78, and converts the file 202 to another program. It is a program to provide. The correspondence is held in the OS management information 74 in the form of area mapping information 300. Note that the file system 80 also provides a raw device function that directly accesses the storage areas of the logical volume 204, the virtual volume 206, and the LU 208 with the same software interface as the file 202.
[0046]
The management agent 144 executes on the server 70 the processing request received via the network 24 from the system management program 140 executed on the management server 120, and outputs the result as needed through the system management program 140 via the network 24. This is a program that sends a reply. The processing executed by the management agent 144 includes 1) reading information stored in the OS management information 74, 2) execution / stop of the DBMS 90 and the AP program 100, and 3) information stored in the DBMS management information 92. 4) A SQL (Structured Query Language) statement is given to the DBMS 90 to obtain an SQL execution plan, 5) reading of information stored in the AP program management information 102, 6) a configuration change instruction to the volume manager 78, 7) Various setting instructions to the OS 72, and the like.
[0047]
The DBMS 90 is a program executed on the server 70 that executes a series of processes and management related to the DB. The DBMS 90 is started by the management agent 144 in accordance with an instruction from the system management program 140, read out from the HDD 16 or the storage device 40 in the server 70 to the memory 14, and executed by the CPU 12.
[0048]
The DBMS 90 uses a “data area” including a storage area provided by one or more files 202 as a management unit of the storage area. Tables, indexes, logs, and the like (hereinafter, collectively referred to as “data structures”) used and managed by the DBMS 90 each have a data area to be stored. Part of the data area may not be allocated to the data structure.
[0049]
The DBMS 90 read on the memory 14 has DBMS management information 92 which is management information of the DBMS 90 including the data storage area information 342. The DBMS 90 has a software interface for reading the DBMS management information 92 by an external program.
[0050]
Given an SQL statement, the DBMS 90 creates an execution plan for the statement (hereinafter, referred to as “SQL execution plan”), and then executes processing according to the plan. Basically, when the same SQL statement is given except for the search condition, the same SQL execution plan is created. The DBMS 90 has a software interface that outputs an SQL execution plan of a given SQL statement. Further, when outputting the SQL execution plan, the number of processes and the like estimated by the DBMS 90 may be output at the same time.
[0051]
The AP program 100 is a program executed on the server 70 for a task performed by a user, and issues a processing request to the DBMS 90. The AP program 100 is started by the management agent 144 in accordance with an instruction from the system management program 140, is read from the HDD 16 or the storage device 40 in the server 70 to the memory 14, and is executed by the CPU 12. The AP program 100 read into the memory 14 has AP program management information 102 as its management information. The AP program 100 may always issue a processing request to the DBMS 90 when handling data stored in the storage device 40. In this case, the server 70 on which the AP program 100 is executed / F32 may not be provided.
[0052]
The AP program 100 executed for online business in the present embodiment is realized as a set of one or more processes, and a process ID 432 as an identifier is assigned to each process. The user requests execution of any of the processes, and the AP program 100 performs the processes accordingly. The AP program 100 executes queuing control of the received processing request, and when the AP program 100 issues a processing request to the DBMS 90, the processing can be started immediately by the DBMS 90. The AP program 100 acquires the execution statistical information related to the processing, and holds it in the AP program management information 102 as online Job monitor information 430 (described later in FIG. 10). At this time, the AP program 100 has a software interface for an external program to read the AP program management information 102.
[0053]
A plurality of DBMSs 90 and AP programs 100 can be executed simultaneously on one server 70. Further, the DBMS 90 and the AP program 100 may be executed on different servers 70. In this case, the AP program 100 transmits a processing request to the DBMS 90 via a network.
[0054]
The OS 72, the DBMS 90, the AP program 100, and the management agent 144 are read from a CD-ROM (storage medium) storing them using the CD-ROM drive 20 of the management server 120, and stored in the server 70 via the network 24. Installed in the HDD 16 or the storage device 40.
[0055]
The management server 120 has a CPU 12, a memory 14, an HDD 16, a CD-ROM drive 20, and a network I / F 22, which are connected by an internal bus 18.
[0056]
The OS 72 and the system management program 142 are read from the HDD 16 onto the memory 14 and executed by the CPU 12. The CD-ROM drive 20 is used for installing various programs.
[0057]
Further, an input terminal 112 such as a keyboard and a mouse and a management terminal 110 having a display screen 114 are connected to the management server 120 via a network 24. This connection may use a communication line different from the network 24, and the management server 72 and the management terminal 110 may be configured integrally. The administrator inputs and outputs information through the management terminal 110 in principle, and also uses the CD-ROM drive 20 and the like as necessary.
[0058]
The system management program 140 is a program that implements performance and other system management functions of the management server 120. The data is read from the HDD 16 onto the memory 14 and executed by the CPU 12. The system management program 140 has system management information 142 which is management information necessary to realize the function. The CD-ROM storing the program is read out using the CD-ROM drive 20 of the management server 120 and installed on the HDD 16. Details of the operation of this program will be described later.
[0059]
In the example of the present embodiment, the system management program 140 is described as being executed on the management server 120. However, the system management program 140 may be executed on any server 70, the virtualization switch 60, and the storage device 40. At this time, in the server 70, the data is stored in the HDD 16 and read out to the memory 14, and then executed by the CPU 12. The virtualization switch 60 and the storage device 40 are stored in a non-volatile area of the memory 14 and executed by the CPU 12 after being moved to a high-performance area of the memory 14.
(II) Hierarchical structure of data mapping
Next, a hierarchical configuration of data mapping of data managed by the DBMS 90 of the present embodiment will be described with reference to FIG.
FIG. 2 is a hierarchical configuration diagram of data mapping of data managed by the DBMS 90 according to the first embodiment of the present invention.
[0060]
In the example of the present embodiment, a case where one virtualization switch 60 exists between the server 70 and the storage device 40 will be described. In the following, of the two hierarchies, the one closer to the DBMS 90 (ie, the application side) is referred to as “upper”, and the one closer to the HDD 16 (ie, the physical storage means) is referred to as “lower” hierarchy. The storage device 40, the virtualization switch 60, the volume manager 78, and the file system 80 are collectively referred to as a “virtualization mechanism”. The file 202, the logical volume 204, the virtual volume 206, and the LU 208 are collectively referred to as a "virtual structure", and the one obtained by adding the HDD 16 to the virtual structure is collectively referred to as a "management structure".
[0061]
In the example shown in FIG. 2, the DBMS 90 accesses the file 202 provided by the file system 80 storing the data structure 200 managed by the DBMS 90. The file system 80 converts access to the file 202 to access to a corresponding area of the logical volume 204. The volume manager 78 converts access to the logical volume 204 to access to a corresponding area of the virtual volume 206. The virtualization switch 60 converts access to the virtual volume 206 to access to the corresponding LU 208 area. The storage device 40 converts access to the LU 208 to access to the corresponding HDD 16. In this way, the virtualization mechanism maps the data of the virtual structure provided to the upper hierarchy to the storage area of one or more management structures existing in the lower hierarchy.
[0062]
Although not shown, the same part of data of a certain virtual structure may be mapped to a plurality of lower-level management structures. Further, there may be a plurality of paths on which data of a certain virtual structure is mapped to the HDD 16. In these cases, the virtualization mechanism holds such mapping in the area mapping information 300. Further, a management structure may have a mapping that is shared by multiple servers 70.
[0063]
In the present embodiment, the data correspondence between the management structures in the logical layer 212 only needs to be clarified, and the server 70 need not use the volume manager 78. Furthermore, the virtualization switch 60 may exist in a plurality of stages, or the server 70 and the storage device 40 may be directly connected by the I / O path 34 without the virtualization switch 60. The switch corresponding to the virtualization switch 60 may not have the storage area virtualization function. In this case, the virtualization switch 60 provides the management structure provided from the lower hierarchy as it is to the upper hierarchy as a virtual structure. Think there is.
[0064]
Note that, in the hierarchical configuration model of the present embodiment, if mapping is created so that only one data structure 208 is stored in one LU 208, an effect estimation when a configuration change of the storage device 40 described later is changed is calculated. There is a merit that it is useful for improving accuracy.
(III) Data structure
Next, a data structure used in the performance management method according to the present embodiment will be described with reference to FIGS.
[0065]
First, the area mapping information 300 will be described with reference to FIG.
FIG. 3 is a schematic diagram showing the data structure of the area mapping information 300.
[0066]
The area mapping information 300 is placed in the management information of each virtualization mechanism, and holds the correspondence between the virtual structure area provided by the virtualization mechanism and the management structure area used by the virtualization mechanism. , 304.
[0067]
In the description here, the upper virtual structure and the lower management structure are modeled as corresponding to each other, but actually, (file, logical volume), (logical Volume, virtual volume), (virtual volume, logical disk device), and (logical disk device, HDD).
[0068]
The entry 302 is information relating to the area of the virtual structure provided to the upper hierarchy by the virtualization mechanism. The entry 302 holds the virtual structure ID 306 which is the identifier of the virtual structure, the entry indicating the area in the structure, and the area is the lower hierarchy. When the HDD 16 is stored in a plurality of virtual structures or corresponds to the HDD 16 through different paths, the entry has a set of entries indicating a multiplexing method for identifying them. The entry 304 is information relating to the area of the lower-level management structure corresponding to the entry 302, and is an entry holding a port ID 326 that is an identifier of the port 26 of the I / O path I / F 32 used when accessing the management structure. , An entry holding a virtualization mechanism ID 308 which is an identifier of a virtualization mechanism that provides a management structure, an entry holding a management structure ID 310 which is an identifier of a management structure, and an entry indicating an area in the structure. When the file system 80 uses the logical volume 204 provided by the volume manager 78, it does not hold the entry holding the port ID 326. The storage device 40 does not hold an entry having the port ID 326 and the virtualization mechanism ID 308.
[0069]
A free entry 314 whose virtual structure ID 306 is “Free” indicates a storage area of a lower hierarchy that is available for use by the virtualization mechanism having the present area mapping information 300 but is not yet used as a virtual structure. I will show you. The virtualization mechanism having the function of dynamically changing the correspondence relationship by data movement uses a storage area of the management structure corresponding to the free entry 314 as a data movement destination.
[0070]
In the present embodiment, different virtual structures are allowed to use the storage area of the same management structure. Further, it is assumed that the virtualization mechanism ID 308, the virtual structure ID 306, the management structure ID 310, and the port ID 326 are identifiers uniquely determined in the system. Alternatively, even if it is not unique within the system, it is uniquely determined within the system by adding an identifier of the device.
[0071]
Next, the upper port mapping information 322 will be described with reference to FIG.
FIG. 4 is a schematic diagram showing the data structure of the upper port mapping information 322.
[0072]
The upper port mapping information 322 is placed in the management information 66 of the virtualization switch 60 and the management information 46 of the storage device 40, and is information for managing a virtual structure provided to an external device through a certain port. A pair of an entry to be held and an entry to hold the corresponding virtual structure ID 306 is held.
[0073]
Next, the data storage area information 342 will be described with reference to FIG.
FIG. 5 is a schematic diagram showing the data structure of the data storage area information 342.
[0074]
The data storage area information 342 is placed in the DBMS management information 92 of the server 70, is information used for storage area management of data managed by the DBMS 90, and an entry holding a data area name 344 which is the name of a data area. It consists of a set of entries holding a data structure name 346 which is the name of the data structure, and an entry holding a data storage location 348 which is information on where the corresponding data is stored in the file 202.
[0075]
Next, the cache group information 460 will be described with reference to FIG.
FIG. 6 is a schematic diagram showing the data structure of the cache group information 460.
[0076]
The cache group information 460 is placed in the management information 46 of the storage device 40, is information used by the storage device 40 for managing a cache group, and an entry holding a cache group ID 462, which is an identifier of the cache group, It has a set of entries holding the number of allocated segments 464, which is information on the number of cache segments allocated to the group, and a set of entries holding the LUID 364, which is the identifier of the LU 208 belonging to the cache group.
[0077]
Next, the storage monitor information 360 will be described with reference to FIG.
FIG. 7 is a schematic diagram showing the data structure of the storage monitor information 360.
[0078]
The storage monitor information 360 is placed in the management information 46 of the storage device 40 and holds data on the operation status of the storage device 40, and includes cache monitor information 362, storage port monitor information 382, and HDD monitor information 392. In.
[0079]
The cache monitor information 362 is operation statistical information regarding which cache hit has occurred when the LU 208 was accessed from an external device.
[0080]
The cache monitor information 362 includes a real area division number 502 indicating the number of divisions of the real management area, and a virtual management area number 504 indicating the holding amount of the virtual management area in units of the divided size of the real management area. Further, as a statistical value of the number of cache hits for each LU 208, an entry holding the LU ID 364, an entry holding the read / write I / O type 366 corresponding to the entry, and a cumulative execution count 368 of the I / O processing corresponding to the entry are stored. A set of entries to be held and an entry to hold a cache hit count total 370 indicating the number of hits at that time are held. The cumulative cache hit count 370 holds the total cumulative value of the number of hits in the real management area and the cumulative value of the number of hits in each area divided by both the real management area and the virtual management area. In the present embodiment, a serial number is added to an area obtained by integrating the real management area and the virtual management area, and the area where the most recently used data exists is the first area. It is assumed that this is an area having data.
[0081]
The storage port monitor information 382 is execution statistical information indicating how much data transfer processing has been performed using the port 26 of the I / O path I / F 32 for each LU 208, and is an entry holding a port ID 384 and an entry holding an LU ID 364. , And a pair of an entry having the cumulative execution number 368 of the I / O processing corresponding thereto and an entry holding the cumulative data transfer amount 386.
[0082]
The HDD monitor information 392 is execution statistical information indicating how much the HDD 16 is used for each LU 208. An entry holding the HDD ID 394, which is the HDD identifier, an entry holding the LU ID 364, and the actual processing corresponding thereto is performed. A set of entries holding an accumulated processing time 396 which is an accumulated value of time (not including the waiting time) is held.
[0083]
Next, the port throughput setting information 440 will be described with reference to FIG.
FIG. 8 is a schematic diagram showing the data structure of the port throughput setting information 440.
[0084]
The port throughput setting information 440 is set in the management information 46 of the storage device 40, and is setting information for a priority access control function for limiting an access processing amount to the specific port 26 from the specific port 26 of the external device. is there. The port throughput setting information 440 includes a set of an entry holding the port ID 384, an entry holding the access source port ID 442, an entry holding the maximum data transfer amount 444, and an entry 446 holding the maximum I / O processing amount 444. Have.
[0085]
The access source port ID 442 is the port ID of the port 26 of the external device that accesses the port 26 to be restricted. The maximum data transfer amount 444 is a maximum transfer amount set value per unit time corresponding to the port 26. The maximum I / O processing amount 444 is a set value of the maximum I / O processing amount per unit time.
[0086]
Next, the port monitor information 400 will be described with reference to FIG.
FIG. 9 is a schematic diagram showing the data structure of the port monitor information 400.
[0087]
The port monitor information 400 is placed in the management information 66 of the virtualization switch 60 and the OS management information 74 of the server 70, is execution statistical information on data transfer processing performed by the port 26, and is an entry holding the port ID 384. And an entry holding the corresponding I / O type 366, an entry having the cumulative execution number 368 of the I / O processing, and a response time which is a time (including a waiting time) from issuance / reception of the processing request to completion of the processing. It has a set of entries holding an accumulated response time 402 which is an accumulated value and an entry holding an accumulated data transfer amount 386.
[0088]
Next, the online Job monitor information 430 will be described with reference to FIG.
FIG. 10 is a schematic diagram showing the data structure of the online Job monitor information 430.
[0089]
The online Job monitor information 430 is placed in the AP management information 102 of the server 70 and is execution statistical information for the online Job acquired by the AP program 100. The entry holding the process ID 432 and the cumulative execution of the corresponding process It has a set of entries holding the number of times 368, entries holding the cumulative response time 402 of the process, and entries holding the cumulative processing time 396 when the process is issued to the DBMS 90.
[0090]
Next, the storage performance information 610 will be described with reference to FIG.
FIG. 11 is a schematic diagram showing the data structure of the storage performance information 610.
[0091]
The storage performance information 610 is information held in the system management information 142 of the management device 120, and has HDD performance information 612 and port performance information 616. This information is created by acquiring the model of the storage device 40 and its corresponding part, and combining it with the performance information for each model given in advance.
[0092]
The HDD performance information 612 is information relating to the access performance of the HDD 16, an entry holding the device ID 572 which is an identifier of the storage device 40, an entry holding the HDD ID 394, and the access performance information corresponding to the access performance of the HDD 16. 612, including a set of entries.
[0093]
The access performance information 612 holds the average response times when a cache hit / no (miss) occurs during a read at random access and when a cache hit / does not occur during a write.
[0094]
The port performance information 616 is information on the maximum performance of the port 26 of the I / O path I / F 32 of the storage device 40, and includes an entry holding the device ID 572, an entry holding the port ID 384, and the corresponding port performance information 618. It has a set of entries. The port performance information 612 holds a set of a maximum I / O processing amount (IOPS) and a maximum data transfer amount (MB / s) as information of the maximum performance of the port.
[0095]
Next, the monitor history information 510 will be described with reference to FIG.
FIG. 12 is a schematic diagram showing the data structure of the monitor history information 510.
[0096]
The monitor history information 510 is information held in the system management information 142 of the management device 120, is monitor information collected by each device or program, and includes the cache monitor information 370, storage port monitor information 382, The HDD monitor information 392, the port monitor information 400, the online job monitor information 430, and the operating rate of the CPU 12 calculated by the OS 72 (hereinafter collectively referred to as "monitor information") are obtained and edited into an appropriate form. The stored information is stored as history information.
[0097]
A monitor part ID 514 uniquely determined in the system is added to a part whose operation status is monitored (the cache monitor information 370, the storage port monitor information 382, and the HDD monitor information 392 also include the access destination LU 208).
[0098]
The monitor history information 510 has a set of an entry holding the monitor part ID 514, an entry holding information indicating the monitor content 516, an entry holding the corresponding previous acquisition information 518, and an entry holding the history information 520. . The specific contents of the monitor content 516 are as described when describing the data structure of each monitor information.
[0099]
The previously obtained information 518 has an entry of the date and time when the value of the monitor information was previously obtained and an entry of the obtained value.
[0100]
The history information 520 is composed of an entry holding a history content 522 indicating the content of a value that is totaled and stored as a history, and a plurality of entries holding a sample 524 that is a monitor value for a certain period. The history contents 522 in the present embodiment include the average execution count and the average data transfer amount for each LU 208 in the port 26 of the I / O path I / F 32 of the storage device 40 from the storage port monitor information 382, and the cache monitor information 370 to the LU 208 The average number of executions and the average actual hit rate for each read / write, the average hit rate for each read area (the number of read hits in the area in the period / the number of read executions to the LU 208 in the period), the HDD monitor information and the HDD 16 From the average operation rate for each LU 208 and the port monitor information 400, the average for each read / write in the port 26 of the I / O path I / F 32 of the server 70 and the virtualization switch 60 or the port 26 of the network I / F of the server 70 Number of executions, average data transfer amount, average response time, online The average number of executions of each processing each as the ob monitor information 430 at the AP program 100, the average response time, average processing time, there is a CPU utilization rate in the server 70 and from the CPU12 uptime OS72 is calculated.
[0101]
The sample 524 includes an entry indicating when the data stored therein is a monitor value, and an entry holding an average value and a maximum value, which are total values in the period.
[0102]
Next, the batch job management information 700 will be described with reference to FIG.
FIG. 13 is a schematic diagram showing the data structure of the batch job management information 700.
[0103]
The batch Job management information 700 is management information for the batch Job placed in the system management information 142 of the management server 120, an entry holding the Job ID 622 that is the identifier of the Job, and a Job priority indicating the execution priority of the Job. An entry holding the degree 704, an entry holding the Job type 706, an entry holding an execution condition 708 indicating under what start condition this Job is executed, and a maximum execution which is a setting value of the maximum execution time of the Job. A set of an entry holding a time 710, an entry holding an execution server ID 712 which is an identifier of the server 70 executing the job, and an entry holding an execution command 714 which is a command executed by the server 70, Job-dependent input information 720, Job-dependent output data information 730, CPU processing time estimation Act 716, Job is information about the data used including I / O processing content information 740a. A plurality of pairs of the execution server ID 712 and the execution command 714 may exist.
[0104]
In the case of the batch job management information 700, the job type 706 holds information indicating that the job is for a batch job. The contents of the execution condition 708 include, in the batch job management information 700, an execution start time including a condition of a date to be executed and a day of the week, or execution when one or more different jobs are completed.
[0105]
As an execution image of the Job of the present embodiment, it is assumed that the batch Job is executed continuously and the output data of the preceding job is taken over as the input data of the next job.
[0106]
The job-dependent input information 720 is information relating to data used when executing the job, and includes an entry holding the preceding job ID 722 which is the job ID 622 of the job outputting the data to be used, and data information which is information of the input data. It is composed of a pair of an entry holding 724 and an entry holding a data amount unit 726 which is information of a data unit of a data amount such as the number of lines of data and a file size.
[0107]
The information stored in the data information 724 is basically an identifier of data stored in the storage device 40, such as an identifier of the file 202 or a set of an identifier of the DBMS 90 and the data structure 200 managed by the DBMS 90. It may be an identifier for delivery. Note that when the input-dependent process is not performed, the job-dependent input information 720 does not exist.
[0108]
The job-dependent output data information 730 is information relating to job output data used for executing another job. An entry holding the next-stage JobID 732 which is the JobID 622 of the job using the output data, and data information of the output data 724 and a set of entries holding the data amount unit 726. The output data amount returned as the processing completion information at the end of the job is measured using the data amount unit 726 in the job-dependent output data information 730. If there is no Job using the output data, the job-dependent output data information 730 does not exist.
[0109]
The CPU processing time estimating method 716 is information on a method of estimating a time during which the CPU 12 of the server 70 is a bottleneck in the processing execution time.
[0110]
The I / O processing content information 740a is information relating to data used by the Job. An entry holding the data information 724 of the data used by the Job and an entry holding the access order 742 of the corresponding data, I / O An entry holding the O-neck 744, an entry holding the I / O type 746, an entry holding the I / O base performance 748, and an entry holding a processing amount estimation 752 which is information on a method of estimating the processing amount from the input data amount. , A set of entries holding storage hints 754 which are contents to be instructed to the storage device 40 when executing Job. Although the storage hint 754 may have various contents regarding the storage device 40, in the present embodiment, the cache amount for data is explicitly set.
[0111]
The access order 742 is information on the access order, and means that the smaller the number is, the earlier the access is made, and that the same value is accessed simultaneously. The I / O neck 744 is information indicating whether the I / O processing becomes a performance bottleneck or not, and takes values of “Y” and “N”. The I / O type 746 is information on the I / O processing type, and takes a value of “sequential” or “random”. The I / O base performance 748 is information on I / O performance used for estimating execution time and the like, and is used when accessing the data in order to cope with distributed arrangement of the data in a plurality of storage devices 40 and the like. A set of a port ID 384 and a performance value is held for each port 26 of each storage device 40 to be executed. The performance value is sequential performance (data transfer speed) when the I / O type 746 is “sequential”, and random performance (IOPS) when it is “random”. The processing amount estimation 752 holds the information for each port ID 384 held in the I / O base performance 748.
[0112]
Next, the batch SQL design information 850 will be described with reference to FIG.
FIG. 14 is a schematic diagram showing the data structure of the batch SQL design information 850.
[0113]
The batch SQL design information 850 is input to the management server 120 in order to set the batch job management information 700, and is information relating to a process requested by the AP program 100 to the DBMS 90. The batch SQL design information 850 corresponds to an entry holding the Job ID 622 of the Job performing the setting, an entry holding the execution DBMS ID 852 which is an identifier of the DBMS 90 performing the processing, an entry holding the main input data 854, and an entry holding the SQLID 858a. It has a set of entries holding the execution SQL statement 860 to be executed, a set of entries holding the data information 724 and the corresponding entry holding the SQLID 858b, and the repetition execution SQL information 862.
[0114]
The main input data 854 is data whose amount has the greatest effect on the CPU processing time of the AP program 100.
[0115]
The SQLID 858a is assigned a serial number in the order of execution by the AP program 100, and as the information of the SQL statement issued by the AP program 100 to the DBMS 90, the SQLID 858 and the execution SQL statement 860 which is the SQL statement to be executed are held correspondingly.
[0116]
The SQLID 858b is the data information 724 when the file 202 is used as the input / output data, and the ID of the SQL statement that uses the data information and saves the result.
[0117]
The repetition execution SQL information 862 is information on an SQL statement to be repeatedly executed, and has a set of an entry holding an SQLID set 864 and an entry holding data information 724 of input data at the time of the repetition. The SQLID set 864 is a set of SQLIDs 858 of one or a plurality of SQL statements that are repeatedly executed.
Next, the online job management information 770 will be described with reference to FIG.
FIG. 15 is a schematic diagram showing the data structure of the online Job management information 770.
[0118]
The online Job management information 770 is placed in the system management information 142 of the management server 120 and is information for managing the online Job. An entry holding the Job ID 622, an entry holding the Job priority 704, and a Job type 706 are provided. , An entry holding the execution condition 708, an entry holding the required performance 774, a set of an entry holding the execution server ID 712 and an entry holding the execution command 714, the I / O processing content information 740c, and the number of processes. Includes an entry that holds the processing multiplicity 782 indicating the severity.
[0119]
In the present embodiment, the batch Job management information 700 and the online Job management information 770 shown in FIG. 13 are separated in consideration of the fact that the required performance and the information to be managed are different depending on the nature of the Job. Things.
[0120]
In the case of the online job management information 770, information indicating that the job type 706 is for online business is held. A plurality of pairs of the execution server ID 712 and the execution command 714 may exist. As the contents of the execution condition 708, the online Job management information 770 gives an execution start time and an execution end time (including an execution at all times) including a condition of a date to be executed and a day of the week. The required performance 774 is setting information of the required performance of the Job, and holds the average response time of the entire processing and the processing throughput (average number of executions of the processing) in a high load state.
[0121]
The I / O processing content information 740c is obtained by extracting a part of the I / O processing content information 740a from the batch job management information 700 shown in FIG. , And a pair of an entry holding the corresponding I / O base performance 748 and an entry holding the storage hint 754. Data accessed by the process is grasped from the job design information, data information 724 is set, and the port ID 386 of the I / O base performance 748 is obtained by referring to the mapping aggregation information. As for the storage hint 754, instruction information for the storage device is set. In the present embodiment, an instruction to calculate a data cache amount desired to be used for each data and set the value is set as needed.
[0122]
The performance value of the I / O base performance 748 is always random performance (IOPS) in the I / O processing content information 740c. This value is determined, for example, by actually executing the processing, and grasping the processing throughput and the I / O performance of the port 26 of the I / O path I / F 32 of the storage device 40 from the monitor information of the storage device 40 at that time. Then, the I / O performance required to achieve the throughput given to the required performance 774 is estimated as the throughput is proportional to the I / O performance, and the value is set. If a plurality of data are stored in the same LU 208 via the same port 26, the necessary performance is appropriately distributed among them.
[0123]
Next, the job resource management information 620 will be described with reference to FIG.
FIG. 16 is a schematic diagram illustrating the data structure of the Job resource management information 620.
[0124]
The job resource management information 620 is information used by the system management program 140 of the management server 120 as work information, and includes job port setting information 630 and job cache amount information 650.
[0125]
The job port setting information 630 is information on the setting of the Job using the port 26 and the priority access control function assigned to the Job for each port 26 of the I / O path I / F 32 of the storage device 40, and includes the device ID 572. , An entry holding a port ID 384, an entry holding a Job ID 622 of a Job accessing data using the corresponding port 26, and an entry holding a performance ratio 632 assigned to the port 26 of the Job. Have a pair. The performance ratio 632 is a performance index value calculated as a ratio from the maximum performance of the corresponding port held in the port performance information 616, and the conversion into the I / O processing amount or the data transfer amount is performed on the port 26. The processing is performed by referring to the corresponding port performance information 618 to obtain the maximum I / O processing amount and the maximum data transfer amount of the port 26 and multiplying the obtained data by the performance ratio 632.
[0126]
The job cache amount information 650 is, for each cache group of the storage device 40, information on the Job using the LU 208 belonging to the cache group and the amount allocated to the Job, and holds the entry holding the device ID 572 and the cache group ID 462. It is composed of a set of an entry, an entry holding the Job ID 622 of a Job using data stored in the LU 208 belonging to the corresponding cache group, and an entry holding allocation information 652, which is information on a cache allocation amount to the Job.
[0127]
As for the quota, it is possible to have information of a plurality of generations managed in the form of a stack. The reason why the quota is set in the quota information 652 is also held in combination with the quota, and when the cause is solved. Should be able to return to the old settings. When the cache allocation amount of one or more cache groups used by Job is changed, the generation is updated in synchronization with the other cache groups used by Job whose cache amount is not changed.
[0128]
Next, the priority control information 880 will be described with reference to FIG.
FIG. 17 is a schematic diagram showing the data structure of the priority control information 880.
[0129]
The priority control information 880 is setting information used when the system management program 140 in the management server 120 performs control in consideration of the job priority, and corresponds to an entry holding the job priority 704. A set of entries holding the margin coefficient 882 is included.
[0130]
In the present embodiment, the job priority 704 is divided into P levels, and takes 1, 2,... The margin coefficient 882 is a coefficient for estimating a margin for the estimated data when determining a method of changing the setting of the storage device 40. The higher the priority of Job, the larger the margin. In the embodiment, one or more values are taken.
(IV) Performance management method processing
Next, the processing of the performance management method according to the present embodiment will be described with reference to FIGS.
[0131]
(IV-1) Outline of processing of system management program
First, the processing outline of the system management program 140 will be described.
[0132]
The system management program 140 grasps the configuration related to the system. An identifier is added to each of the storage device 40, the virtualization switch 60, the server 70, the volume manager 78, the file system 80, the DBMS 90, and the AP program 100, which are constituent elements, to manage them. Further, the connection relationship between the network 24 and the I / O path 34 is held in the system management information 142.
[0133]
The system management program 140 acquires various information from other devices. At this time, with respect to the information held by the storage device 40 and the virtualization switch 60, a request for transmitting information is issued directly via the network 24, and the information is acquired. As for the information held by the program executed on the server 70, an information read request is issued to the management agent 144 via the network 24, and the necessary information is read to collect the information. .
[0134]
The system management program 140 acquires the area mapping information 300 from each virtualization mechanism, the data storage area information 342 from the DBMS 90, the upper port mapping information 322 from the storage device 40 and the virtualization switch 60, and the cache group information 460 from the storage device 40. These are stored in the system management information 142 as mapping aggregation information together with the identifier of the acquisition source.
[0135]
Here, in the management of the cache group of the storage device 40, the system management program 140 treats a specific cache group as a “free cache group” to be preferentially reduced by adjusting the cache allocation amount. The LU 208 having no cache amount allocation request is controlled as belonging to the free cache group.
[0136]
In addition, the real area division number 502 and the virtual management area number 504 included in the port throughput setting information 440 and the cache monitor information 362 are also acquired from each storage device 40 and stored in the system management information 142 together with the identifiers of the acquisition sources. I do. For these pieces of information, after the setting is changed or after a certain period of time, the information is reacquired and the consistency of the held contents is confirmed.
[0137]
In more detail, as the mapping aggregation information of the system management information 142 described above, the system management program 140 holds information on mapping related to the hardware resources of the running Job in the system management information 142. For the server 70, the identifier of the server 70 on which the Job is implemented and which data is accessed via which port 26; for the virtualization switch 60, the data is passed through which virtualization switch 60; Regarding which storage device 40 is accessed via which port 26 of which I / O path I / F 32 of the virtualization switch 60, which data uses which LU 208 of which storage device 40, and the LU 208 stores the data. Information regarding which port 26 of the I / O path I / F 32 of the device 40 is accessed, which HDD 16 stores the data in the LU 208, and which cache group the LU 208 belongs to. Hold. Hereinafter, this information is referred to as “Job resource mapping information”.
[0138]
(IV-2) Job Management Method of System Management Program and Setting of Values in Job Management Information
Hereinafter, a job management method of the system management program and setting of a value in the job management information will be described.
[0139]
The system management program 140 stores batch job management information 700 as job management information for performing batch operations, online job management information 770 as job management information for performing online operations in the system management information 142, Hold each. These pieces of information are stored in the HDD 16 and read out into the system management information 142 on the memory 14 when the system management program 140 is started.
[0140]
As described above, the reason why the job management information 700 and the online job management information 770 are separated is that the required performance and the information to be managed are different depending on the nature of the job.
[0141]
Hereinafter, when indicating either the batch Job management information 700 or the online Job management information 770, or both, it is referred to as “Job management information”. Job management information is basically given by an administrator, but some information is set by a method described later.
[0142]
Also, the I / O processing content information 740a in the batch Job management information 700 and the I / O processing content information 740c in the online Job management information 770 are collectively referred to as "I / O processing content information 740".
[0143]
As described above, in the execution of the job according to the present embodiment, the batch job is executed continuously, and the output data of the preceding job is taken over as the input data of the next job. In the Job managed by the batch Job management information 700, the output data amount of the data set in the Job dependent output data information 730 is returned as the processing completion information at the end of the Job. Then, based on this information and the information in the batch Job management information 700, the execution time of the continuously executed Job is estimated.
[0144]
Further, in the present embodiment, the output data amount uses what is output as the processing completion information by the AP program 100 executed by the Job for batch work.
[0145]
Hereinafter, the setting processing of the value of the batch Job management information 700 will be described.
[0146]
The batch job management information 700 is information given for each job of a batch job.
[0147]
In this entry, Job ID 622, Job priority 704, Job type 706, execution condition 708, maximum execution time 710, execution server ID 712, execution command 714, Job dependent input information 720, Job dependent output data information 730, the administrator This is information given before executing Job.
[0148]
A method for estimating the maximum execution time of Job will be described later in detail.
[0149]
The CPU processing time estimation method 716 and the I / O processing content information 740a are set by actually monitoring monitor information.
[0150]
Hereinafter, the processing for setting the CPU processing time estimation method 716 and the I / O processing content information 740a will be described with reference to FIG.
FIG. 18 is a flowchart of a process for setting the CPU processing time estimation method 716 and the I / O processing content information 740a in the job management information 700 by actually measuring the monitor information.
[0151]
At the start of the procedure, other information in the batch Job management information 700 and the batch SQL design information 850 shown in FIG. 14 are given by the administrator. At the start of this procedure, various data need to exist in the system as in the actual operation (step 1101).
[0152]
First, the DBMS 90 to be processed is grasped from the execution DBMS ID 852 in the batch SQL design information 850, and all the SQL execution plans of the SQL statements in the execution SQL statement 862 are acquired therefrom (step 1102).
[0153]
The SQL execution plan is information for executing an SQL statement, and includes processing steps for executing an SQL sentence, details of the processing, usage data and detailed information of an access method, and the like.
[0154]
In some cases, a table to be used temporarily temporarily is explicitly created during the process. To acquire an SQL execution plan of an SQL statement using the table, an SQL execution plan is acquired after the table is created. If possible, the process is executed step by step for each SQL statement, and an SQL execution plan is obtained immediately before the execution of the process. After acquiring all the SQL execution plans, delete the tables to be used temporarily.
[0155]
From the acquired SQL execution plan and the information in the batch SQL design information 850, the data accessed by each SQL statement, the access method, and the access order are grasped (step 1103).
[0156]
Since the SQL execution plan includes the processing steps for executing the SQL statement, the processing content thereof, the usage data and the detailed information of the access method, the access data, the access method, and the access order in one SQL statement are based on the SQL execution plan. We can understand from plan.
[0157]
As for the temporary table created implicitly by the DBMS 90 when performing the processing, the data area name 344 of the data area in which the table is created is grasped. From the SQLID 858 and the repetition execution SQL information 862 in the batch SQL design information 850, the execution order including repetition can be known. At this time, when one or more SQL statements are repeatedly executed, it is assumed that all data accessed by the statements are simultaneously accessed by the repetition processing.
[0158]
Then, the obtained access destination data and access order are set to the data information 724 in the I / O processing content information 740a, the access order 742, and the port ID 384 of the I / O base performance 748. If the same data is accessed in a plurality of different processing steps, they are independent. The port ID 384 can be obtained together with the storage device 40 in which it exists by referring to the mapping aggregation information in the system management information 140, and a plurality of port IDs 384 may be obtained.
[0159]
Here, when the grasped process is “full scan of the table”, the I / O type 746 is “sequential” (“Seq” in FIG. 13), and the I / O type 746 is “selection process using B-Tree index”. Is set to "random"("Rnd" in FIG. 13) for both the index and the table. All inputs and outputs to and from the file 202 are “sequential”.
[0160]
From now on, the amount of data input from the outside when performing the processing is grasped (step 1104).
[0161]
Regarding the data set in the job-dependent input information 720, the data amount is grasped in accordance with the data amount unit 726. In the present embodiment, in principle, a plurality of Jobs form a series of processes. Therefore, the jobs are sequentially executed and the amount of output data output in the system management information 142 as a completion report is grasped.
[0162]
Subsequently, the processing is actually executed, the execution time is measured, the CPU operation rate in the server 70 on which the DBMS 90 operates, and the I / O processing execution status (I / O processing execution count, data transfer amount) in the storage device 40. Is grasped (step 1105).
[0163]
The operating statuses of these are grasped by the above-mentioned system management program 140 collecting them. At the time of data acquisition, the data acquisition interval is set to be sufficiently smaller than the processing execution time. In order to reduce the system load, if possible, detailed monitor information is acquired only for the portion storing the CPU operation rate of the server 70 related to the processing execution and the data grasped in step 1103.
[0164]
From the obtained monitor information, the CPU utilization rate in the server 70 on which the DBMS 90 operates is grasped for a time that is equal to or greater than a certain threshold (for example, 80%), and the time is indicated by the main input data 854 in the batch SQL design information 850. The CPU processing time estimation method 716 is determined as being proportional to the data amount of data (step 1106).
[0165]
The input data amount used in step 1104 is used.
[0166]
Next, the I / O neck, I / O base performance, and I / O processing amount per input data amount of each access data are grasped from the monitor information, and the value of the I / O processing content information is set (step 1107). .
[0167]
That is, based on the access data grasped in step 1103, the access order, and the access destination port 26 of the storage device 40, the storage information is associated with the monitor information of the port 26 in the storage port monitor information 382 of the storage device 40.
[0168]
Thereafter, a monitor value of the CPU operation rate of the server 70 on which the DBMS 90 operates in a period corresponding to certain access data is checked. If the monitor value exceeds the threshold value in step 1106, it is determined that the I / O bottleneck is not present. The value of the I / O neck 744 is set to “Y”; otherwise, the value is set to “N”.
[0169]
Subsequently, the amount of I / O processing at the port 26 and the time during which the I / O processing was performed are ascertained for each LU 208 from the monitor information, and the I / O base performance 748 corresponding to the data is taken as the average performance for each port 26. Set to. At this time, when the value of the corresponding I / O type 744 is “sequential”, the data transfer amount is used as the processing amount, and when the value is “random”, the I / O processing execution count is used. Further, a corresponding processing amount estimate 752 is set from the input data amount and the I / O processing amount for each port 26 grasped in step 1104. When a plurality of different data are stored in the same LU 208 and they are accessed via the same port 26, the I / O processing amount is appropriately divided among them.
[0170]
Then, the procedure ends (step 1108).
[0171]
In this procedure, the storage hint 754 in the I / O processing content information 740a is not set. This is set by the administrator after the end of this procedure. When the storage hint 754 is set, since the I / O processing performance changes, steps 1105 to 1107 are executed again, and the I / O neck 744 and the I / O base performance 748 are reset.
[0172]
Next, a method of estimating the processing time of the maximum execution time 710 of a job managed by the batch job management information 700 will be described.
[0173]
In the present embodiment, the processing time of Job managed by the batch Job management information 700 includes the CPU processing time when the CPU is a bottleneck and the CPU processing time when the I / O is a bottleneck. It is estimated as the sum of the I / O processing time and the time affected by the I / O delay when the CPU is the bottleneck. The amount of data input to each Job is stored in the system management information 142.
[0174]
The CPU processing time when the CPU is in the bottleneck state is calculated from the CPU processing time estimation method 716 and the input data amount given at the start of the processing.
[0175]
The I / O processing time when the I / O is in the bottleneck state is the time when the processing is started for the data identified by the data information 724 in which the value of the I / O neck 444 in the I / O processing content information 740a is “Y”. It is calculated from the input data amount given at the time, the processing amount obtained by the processing amount estimation 752, and the I / O processing performance available for data access, and is obtained as the total sum.
[0176]
The processing performance available for accessing each data is obtained as follows. First, for each data accessed by Job, the port 26 of the I / O path I / F 32 of the storage device 40 used when accessing the data is obtained from the I / O base performance 748. Subsequently, the data is grouped according to the port 26 obtained for each data and the value of the access order 742 corresponding to the data, and a data set for simultaneously accessing the port 26 is obtained. In each group, the performance ratio 632 in which the Job can be used on the port 26 is stored in the Job port setting information 630 or specified as a separate condition. Then, the performance ratio 632 is distributed in proportion to the performance ratio 632 calculated from the performance value of the corresponding port 26 of the I / O base performance 748 corresponding to each data. In this way, the performance ratio 632 in which certain data can be used is obtained, and the I / O processing performance in the port 26 which can be used for accessing data is calculated.
[0177]
The time affected by the I / O delay when the CPU is the bottleneck is obtained as follows. Regarding the data identified by the data information 724 in which the value of the I / O neck 444 in the I / O processing content information 740a is “N”, first, the I / O is the same as the I / O processing time in the bottleneck state. First, the processing time at the current I / O processing amount setting is obtained. Subsequently, assuming that the I / O processing performance is the performance given to the I / O base performance 748, the I / O processing time is similarly obtained. The value obtained by subtracting the latter from the former for each port 26 of each data is the required influence time. When a negative value is obtained by calculation, the influence time is assumed to be zero.
[0178]
In the present embodiment, the input data amount is grasped from the job processing completion report of the preceding stage in principle. If there is no corresponding front-stage Job such as a Job that extracts data processed within a certain period of time during the execution of the AP program 100 that is constantly being executed, a job for acquiring the amount of input data to the Job is created and advanced. By executing the process and outputting the target amount of input data as a completion report, the amount of input data necessary for estimating the processing time is stored in the system management information 142. In the above-described example, the number of executions of the target process of the AP program 100 within the target period is acquired from the monitor history information 510 as the input data amount, and is used as the number of records. Instead of creating the data amount estimation Job, a method for acquiring the data input amount may be stored in the job-dependent input information 720, and the data amount may be grasped using the method.
[0179]
(IV-3) Collection of monitor information of the system management program and Job tuning processing based on the monitor information
Next, the collection of the monitor information of the system management program and the Job tuning process based on the monitor information will be described with reference to FIGS.
[0180]
The collection of the monitor information of the system management program and the Job tuning processing based on the monitor information are always executed in an infinite loop while the management server 120 is executing and the system management program monitors the system.
FIG. 19 is a general chart of collection of monitor information of the system management program and Job tuning processing based on the monitor information.
FIG. 20 is a flowchart of a Job tuning process based on monitor information (part 1).
FIG. 21 is a flowchart of a Job tuning process based on monitor information (part 2).
[0181]
The setting of the value in the monitor history information 510 is performed as follows.
[0182]
This process is started when the management server 120 is started up, the system management program 140 is started, and its initialization is completed (step 1401).
[0183]
First, as the initial monitor value, the value of the current monitor information is obtained from all devices or programs that have obtained the monitor information (step 1402), and the corresponding acquisition date and time and the entry of the acquired value in the previous acquisition information 518 are entered. Update.
[0184]
Subsequently, the process is put to sleep until the next data acquisition timing (step 1403). The acquisition of the data is performed at regular intervals after the previous monitor value acquisition or at a specific time determined in advance. At this time, the data acquisition interval may be individually managed according to the content to be monitored, and may be different for each content to be monitored.
[0185]
When the data acquisition timing comes, the current value of the monitor information and the current date and time are acquired. After the acquisition of the information, the previous acquisition date and time and the acquired value stored in the corresponding previous acquisition information 518 are grasped, and a method of calculating the value of the history content 522 is selected based on the monitor content 516. , And its value is calculated (step 1404).
[0186]
The period is grasped from the current date and time and the previous acquisition date and time, and the calculated value is stored in the entry holding the sample 524 as the average and maximum of the period. After that, the current date and time and the value of the monitor information acquired this time are stored in the previously acquired information 518 as the previously acquired date and time and the acquired value.
[0187]
Subsequently, a tuning process is performed based on the collected monitor information starting from step 1501 (step 1405, the processes in FIGS. 20 and 21).
[0188]
Then, the sample 524 holding the data before a certain time is arranged to reduce the data amount of the monitor history information 510 (step 1406).
[0189]
The method performs 1) combining a plurality of samples 524 within a certain period into one sample 524 according to the age of the data, and 2) deleting data of particularly old samples 524. After the processing is completed, the process returns to step 1403, and the processing is repeated thereafter.
[0190]
As the configuration of each device is changed, the number of parts to be monitored dynamically increases and decreases. If the number of monitored parts increases, an entry is added to the monitor history information 510 in step 1404, and the part is also monitored. If the monitor part is deleted, the corresponding data is not subjected to the processing of step 1404, and if all the samples 524 of the monitor part deleted in step 1406 are deleted, the entry in the monitor history information 510 is deleted. Is deleted.
[0191]
Next, a job tuning process based on monitor information will be described with reference to FIGS.
[0192]
The job tuning processing based on this monitor information is the processing shown in step 1405 of FIG.
[0193]
In this processing, the processing is performed for all the running Jobs at the same time, and the processing is performed in order from the job with the highest Job priority 704 in each step. In Steps 1515 and 1517, when a plurality of Jobs are required to move data or increase / decrease the I / O processing amount for the same part, only the Job having the highest Job priority 704 is processed. carry out. If it is determined that a plurality of problems exist in one Job, the process branches to a plurality of independent paths.
[0194]
The Job tuning process is called as a subroutine in Step 1405 of FIG. 19 (Step 1501).
[0195]
First, it is confirmed whether or not the change of the HDD overload state can be executed by the “data transfer request” stored in the system management 142 (step 1502). The change of the HDD overload state is to relocate the LU 208 to an appropriate HDD 16 by data movement. Note that the data movement request handled here has been executed in step 1508 (described later) of the previously executed Job tuning process.
[0196]
Here, the maximum values of the operating rates of the source HDD 16 and the destination HDD 16 in the last and a certain period (for example, 30 minutes) from the current time within a certain period (for example, one week) are stored in the monitor history information 510. It is determined that the data movement can be executed when the value is lower than a predetermined threshold value (for example, 40%) on both sides. Similarly, when there is a request for data movement in another virtualization mechanism, the operation rate of the related part is similarly examined, and when the value of all parts is less than a predetermined threshold, the data movement and the Change the settings accordingly. With respect to the data movement request determined to be executable, a processing request for realizing the data movement is issued to the related virtualization mechanism.
[0197]
Next, if the job currently uses a larger cache amount than the initial setting with respect to the data cache 42 of the storage device 40, it is checked whether or not it can be released (step 1503).
[0198]
Here, referring to the allocation information 652 in the Job cache amount information 650 shown in FIG. 16, an entry whose set amount is larger than the initial setting (data of the oldest generation) is searched from the newer generation, and the cause thereof is determined. Understand from the setting reason. Then, the latest data of the monitor history information 510 corresponding to the cause is grasped, and it is confirmed whether the load is less than a certain ratio (for example, 75%) of the load stored during the setting reason, and the load is reduced. If so, it is determined to return to the setting one generation before. If it is determined to return to the previous setting, the data of the older generation of the allocation information 652 is repeatedly confirmed.
[0199]
By this confirmation processing, the generation of the allocation information 652 to be returned is grasped, and if such information exists, the new generation data after the setting of the allocation information 652 in the job cache amount information 650 to be returned is discarded. Then, in accordance with the data of the returned generation, a change instruction of the cache allocation amount is issued to the storage device 40.
[0200]
Next, referring to the latest data of the monitor history information 510, it is confirmed whether or not there is a problem (step 1504).
[0201]
Here, when the job is managed by the online job management information 770, that is, when the job is an online job, each processing in the latest AP program 100 stored in the monitor history information 510 shown in FIG. The average response time, the average processing time, and the average number of executions are grasped, and then the average response time, the average operation rate, and the average number of executions of the entire AP program 100 are calculated. Then, referring to the corresponding online Job management information 770, the obtained average response time satisfies the average response time set in the required performance 774, and the average operation rate is (processing multiplicity 782) × (predetermined. If the average execution count satisfies the processing throughput set in the required performance 774, it is determined that the load is high, and there is a condition not satisfied. If there is a problem.
[0202]
When a job is managed by the batch job management information 700, that is, when the job is a batch job, the HDD 16 in which data used by the job is stored is determined by referring to the job resource mapping information, and the HDD 16 When the overall operation rate exceeds a predetermined threshold value (for example, 70%), it is determined that an overload state is present, and it is determined that there is a problem.
[0203]
If there is a problem, the process proceeds to step 1505. If not, the process proceeds to step 1530 and ends.
[0204]
Next, by referring to the latest data of the monitor history information 510 shown in FIG. 12, it is confirmed whether there is an overloaded part other than the storage device 40 for the hardware related to Job (step 1505).
[0205]
The hardware related to Job includes the CPU operation rate in the server 70, the port 26 of the I / O path I / F 32 in the virtualization switch 60 and the server 70, and the like, which are obtained by referring to the Job resource mapping information. be able to. The overload state is recognized as a state in which each operation rate exceeds a value predetermined for each hardware. If such a part exists, the process proceeds to step 1525; otherwise, the process proceeds to step 1506.
[0206]
If it is possible to reduce the load on the part determined to be in the overloaded state in step 1505, an instruction is issued to the OS 72 and the virtualization switch 60 in the server 70 to realize this ( Step 1525). Since the present invention is focused on adjusting the performance of the storage device, the specific method of step 1525 will not be described in detail.
[0207]
If it is determined in step 1505 that there is no overloaded part other than the storage device 40, it is determined whether there is an overloaded part related to the storage device 40 that stores data used by Job. Is confirmed (step 1506).
[0208]
The confirmation part includes the port 26 of the I / O path I / F 32 and the HDD 16. The HDD 16 is as described in step 1504.
[0209]
The port 26 is checked only when the Job is managed by the online Job management information 770. First, referring to the job resource mapping information held in the system management information 142, the port 26 used by the job and the LU 208 accessed through the port 26 are grasped. Using the latest data of the monitor history information 510 shown in FIG. 12, the calculated performance ratio 632 of the LU 208 at the port 26 is calculated, and the total sum is calculated for each port 26. If the calculated value exceeds a certain ratio (for example, 90%) of the performance ratio 632 of the port 26 allocated to the Job stored in the Job port setting information 630, the port 26 transmits the job to the Job. It is determined that there is an overload condition.
[0210]
If it is determined in step 1506 that the associated port 26 is overloaded with respect to Job, the process proceeds to step 1511 (FIG. 21A). If the associated HDD 16 is in an overloaded state, the process proceeds to step 1507. If all the related ports 26 and HDD 16 are determined to be normal values, the process proceeds to step 1519. After this step, if there are a plurality of parts in the overloaded state, the path is divided for each part, and the process proceeds for each part.
[0211]
If it is determined in step 1506 that all the related ports 26 and the HDD 16 are normal values, a method of changing the cache amount allocation of the cache group used by the job having the performance problem is determined (step 1519). ).
[0212]
In this process, for the Job that has come to this step, a process of tuning the cache amount for the online Job is performed in the descending order of the Job priority 704. The process of tuning the cache amount for online Job will be described later with reference to (IV-5) in FIG.
[0213]
At this time, when the cache group used by the previously tuned Job is grasped from the Job resource mapping information in the system management information 142, and the process of tuning the cache amount for the online Job for the subsequent Job is performed. Then, an instruction is issued so as not to reduce the cache quota of those cache groups. Note that, after allocating a fixed ratio (for example, 5%) of the current cache allocation amount to Job from the free cache group, a process of tuning the cache amount for online Job may be performed.
[0214]
Then, a change instruction of the cache allocation amount obtained in step 1519 is issued to the corresponding storage device 40, and the value of the job cache amount information 650 in the job resource management information 620 of FIG. 16 is updated according to the setting. (Step 1521).
[0215]
Then, the process ends (step 1530).
[0216]
If it is determined in step 1507 that the related HDD 16 is overloaded, Job checks whether it is possible to perform tuning for adding a cache to a cache group belonging to the LU 208 that stores data in the overloaded HDD 16. (Step 1507).
[0219]
For such a cache group, if the amount of cache of the job is to be increased by a certain percentage (for example, 5%) from the current value, refer to the job cache amount information 650 to see if the amount can be secured from the free cache group. Then, if the allocation is possible, the cache allocation change processing is performed. If not possible, use all possible amounts for this tuning. At this time, when different data used by Job are stored in the HDD 16 in question by different LUs 208, the average of the change in LU processing time used is considered, and the sum in the related LU 208 is maximized. assign. The process of creating a change plan for changing the cache allocation amount in consideration of the average of the LU processing time change will be described later with reference to FIG. 25 of (IV-5). When updating the allocation information 652 of the Job cache amount information 650 to the value set in this step, the allocation information 652 is stored as new generation data, and the HDDID 394 of the overloaded HDD 16 and the current operation rate are stored as the setting reason.
[0218]
Next, a data movement request is created to move the data of the LU 208 used by Job stored in the overloaded HDD 16 to the normally loaded HDD 16 (step 1508).
[0219]
The data movement request is created as follows. First, the overloaded HDD 16 is assumed to be the source HDD 16. By referring to the Job resource mapping information, the LU 208 used by the highest priority Job using the data among the LUs 208 stored in the source HDD 16 is grasped as the LU 208 to move the data. Then, the storage device 40 having the source HDD 16 and the LU 208 to which the source HDD 16 data is to be moved are specified, a process for determining a method of resolving the HDD underload condition is performed, a data transfer request is created, and the system management is performed. It is stored in the information 142. A method of resolving the HDD underload condition will be described later with reference to (IV-5) in FIG.
[0220]
After the data transfer request is created, the operation rate after execution of the data transfer request is estimated assuming that the operation rate of the entire HDD 16 decreases by the operation rate of the moved LU 208, and the value does not fall below a predetermined threshold value (for example, 60%). In this case, the LU 208 used by the job having the next highest priority is set as the LU 208 for moving data, and processing for determining a method for resolving the HDD underdeployment state is performed. Or until the confirmation is completed for all Jobs.
[0221]
If the virtualization switch 60 and the volume manager 78 can dynamically change the correspondence between the virtual structure and the management structure by data movement, if the creation of a data movement request in the storage device 40 fails, The data migration request in the virtualization switch 60 or the volume manager 78 may be created by applying the processing from the processing for determining the method of resolving the HDD underload condition mutatis mutandis. At this time, the following points are also considered. 1) Create a new virtual structure from the free area and move the data there. 2) When determining the destination, not only the operation rate of the HDD 16 but also the operating status of the port 26 in the access path (the route of the I / O path 34 from the server 70 to the storage device 40) for the data destination is checked, and The operation rate estimated as the value of is not to exceed 100%. This estimation is performed in the same manner as the estimation of the operation rate in the HDD 16. 3) In the storage device 40 as the transfer destination, the same cache amount as the current condition is allocated to the cache group to which the LU 208 holding the moved data belongs.
[0222]
Next, it is determined whether the cache amount allocated in step 1507 is sufficient (step 1509).
[0223]
Considering the average of the LU processing time change determined by the method for resolving the HDD overload condition, it is sufficient if the sum of the values in the related LU 208 is larger than a predetermined threshold value (for example, 5% of the unit time). It proceeds to step 1521. If not, the process proceeds to step 1517 as insufficient.
[0224]
If it is determined in step 1507 that the allocated cache amount is sufficient, the cache controller issues the cache allocation amount change instruction and the I / O performance setting change obtained so far to the corresponding storage device 40, and in accordance with the setting, The values of the job port setting information 630 and the job cache amount information 650 in the job resource management information 620 of FIG. 16 are updated (step 1521).
[0225]
If it is determined in step 1507 that the allocated cache amount is insufficient, it is determined here whether or not tuning is possible to reduce the I / O processing amount to the LU 208 in which Job stores data in the overloaded HDD 16. If possible, the setting of the I / O processing is changed (step 1517). This step needs to be performed after step 1515, which is performed asynchronously with this processing in another path when there is a problem with the port.
[0226]
In this process, first, the job priority 704 is obtained from the job management information of the job currently being tuned. The job using the LU 208 that stores data in the HDD 16 in the overloaded state is grasped by referring to the job resource mapping information in the system management information 124, and the job priority 704 of the job is obtained in the same manner as described above. The job whose priority is lower than the job priority 704 of the currently tuned job is obtained. For those Jobs, the port of the I / O path I / F 32 of the storage device 40 used when accessing the LU 208 that stores data in the overloaded HDD 16 is obtained from the Job resource mapping information, and the Job port setting information is obtained. The value of the performance ratio 632 of the Job stored in the port 26 at the port 26 is reduced by a predetermined ratio (for example, the current value of 5%). When the amount of access to the HDD 16 can be limited directly, the setting may be performed.
[0227]
Then, step 1521 is performed, and the process ends (step 1530).
[0228]
If it is determined in step 1506 that the associated port 26 is overloaded with Job, a method for resolving the case where the port 26 is overloaded with Job is determined (step 1511). First, at the port 26 which is overloaded with respect to Job, referring to the Job port setting information 630 in the Job resource management information 620 shown in FIG. The ratio 632 is obtained, and an I / O performance setting change method for increasing the value by a fixed ratio (for example, 5%) is created.
[0229]
Next, it is checked whether the I / O processing amount increase plan created in step 1511 can be realized (step 1512).
[0230]
When the I / O performance setting change method obtained in step 1511 is adopted, the performance ratio 632 assigned to each Job of the port 26 that is overloaded with Job is referred to the Job port setting information 630. Then, the sum is calculated, and if the value does not exceed 100%, the process proceeds to step 1521 as feasible. If it exceeds 100%, it is determined that it cannot be realized, and the process proceeds to step 1513.
[0231]
If it is determined in step 1512 that the I / O processing amount increase plan cannot be realized, the server 70 avoids the LU 208 accessed via the problem port 26 that is overloaded for Job. It is checked whether an overload state can be avoided by adding or changing an access path to be accessed (step 1513).
[0232]
This is realized by dynamically setting / changing a plurality of access paths by the volume manager 78, the virtualization switch 60, and the storage device 40, and is held in Job resource mapping information and other system management information 142. Confirm with information. If it is possible, the process proceeds to step 1523; otherwise, the process proceeds to step 1514.
[0233]
If it is determined in step 1513 that the access path can be changed or added, the server 70 sends the LU 208 accessed via the port 26 in question, which is determined to be created or changeable in step 1513, to the LU 208. An instruction is issued to the volume manager 78, the virtualization switch 60, and the storage device 40 so as to realize an access path for avoiding the access (step 1523), and the process is terminated (FIG. 20C). Step 1530).
[0234]
If it is determined in step 1513 that the access path cannot be changed or added, it is next checked by referring to the Job resource mapping information whether the port 26 that is overloaded with the Job is shared by a plurality of Jobs ( Step 1514).
[0235]
If it is shared, the process proceeds to step 1515. If it is not shared, it is determined that tuning is not possible, the process proceeds to step 1530, and the process ends.
[0236]
If it is determined in step 1514 that the port 26 in the overloaded state is shared by a plurality of Jobs, the port 26 having the highest Job priority 704 among the Jobs in question is An I / O processing performance setting change method for narrowing down the I / O processing amount of another Job sharing the port 26 is determined (step 1515).
[0237]
That is, it is assumed that the value of the performance ratio 632 currently assigned to Job at the problem port 26 is increased by a fixed ratio (for example, 5%), and the Job ID 622 of Job, the port ID 384 of the problem port 26, and the newly allocated performance ratio 632 are specified. Then, the process starting from step 1601 is performed, and the allocation of new I / O processing performance at the port 26 is determined.
[0238]
Then, the process proceeds to step 1521 (FIG. 20B).
[0239]
(IV-4) Job execution processing by the system management program
Next, Job execution processing by the system management program will be described with reference to FIG.
FIG. 22 is a flowchart of Job execution processing by the system management program.
[0240]
The system management program 140 refers to the execution condition 708 in the given Job management information and executes the Job when the given condition is satisfied (step 1301).
[0241]
At that time, the time at the start of processing is stored in the system management information 142 together with the Job ID 622. When jobs for a plurality of batch jobs are executed consecutively, the value of the maximum execution time 710 in the batch job management information 700 may be changed according to the processing time of the preceding stage. The value of is stored separately.
[0242]
When the job is started, first, a hardware resource used by the job is grasped and set in the job resource mapping information (step 1302).
[0243]
This is because the execution server ID 712 in the job management information identifies the server 70 on which the processing is performed, and the data to be used is grasped from the data information 724 in the I / O processing content information 740. Refer to the information.
[0244]
Next, a method of changing the I / O processing performance at the port 26 of the I / O path I / F 32 of the storage device 40 using the priority access control function is determined, and the setting instruction is given to the storage device 40 based on the determined method. Is issued (step 1303). The process of determining the method of changing the I / O processing performance will be described later in (IV-4).
[0245]
Here, under the condition that the allocation is added to the job to be started, the process of determining the method of changing the I / O processing performance is performed, and the obtained value is reflected in the job port setting information 630. The change plan obtained here is an assignment for each Job, and the I / O of the server 70 or the virtualization switch 60 that is an access source to the storage device 40 is utilized by using the Job resource mapping information in the system management information 142. The port 26 of the path I / F 32 is obtained, the values from the same port 26 are collected, the setting value for the storage device 40 is obtained, and the setting instruction is issued to the storage device 40.
[0246]
Next, the setting of the cache group and the method of setting and changing the cache amount are determined, and the setting instruction is issued to the storage device 40 based on the determination (step 1304). The process of determining the allocation of the cache amount when starting Job will be described later with reference to (IV-5) in FIG.
[0247]
Here, first, it is checked whether or not there is a cache amount allocation instruction from the storage hint 754 in the I / O processing content information 740 of the Job management information. Subsequently, with respect to the data for which there is an assignment instruction, the job resource mapping information is referred to, the LU 208 in which it is stored is checked, and it is checked whether it belongs to the free cache group. If there is one, the same data is stored, and the LU 208 provided by the same storage device 40 creates a configuration plan that forms the same cache group, and creates a new cache group if necessary. Then, the information is added to the Job resource mapping information. At this time, LUs 208 holding different data as much as possible belong to different cache groups.
[0248]
Subsequently, when the job management information and the cache group setting of the job to be started are changed, the information is given, the process starting from step 2301 is performed, and a value is set in the job cache amount information 650. The value obtained is the cache allocation amount for each Job, and the cache capacity used by a certain cache group is the sum of the allocation amounts given to Jobs using that cache group. An instruction is issued to the storage device 40 in accordance with those changes.
[0249]
After these processes, the server 70 identified by the execution server ID 712 in the Job management information is instructed to execute the corresponding execution command 714, and the process is executed (step 1305).
[0250]
After the processing is completed, in the case of a Job managed by the batch Job management information 700, the output data amount of the data set in the Job-dependent output data information 730 is acquired as the processing completion information, and the value is obtained as the Job ID 622 or its output. The data is stored in the system management information 142 together with the data information 724 for identifying the data.
[0251]
When the Job ends, the allocation of the I / O processing performance at the port 26 set in Step 1303 is released to another Job (Step 1306).
[0252]
Here, the same processing as in step 1303 is performed under the condition of deleting the execution-completed assignment to Job.
[0253]
Next, the settings of the cache group and the cache allocation set in step 1304 are released (step 1307).
[0254]
Here, the job ID 622 of the completed Job is given, and the process starting from step 2501 is performed to determine a cache group configuration change method. The contents are reflected in the job cache amount information 650 and the job resource mapping information, and a change instruction is issued to the storage device 40 according to the obtained method.
[0255]
Subsequently, execution information such as the job execution time (start / end time) and the number of processes is output as a job execution history (step 1308).
[0256]
Thereafter, the process ends (1309).
[0257]
When the maximum execution time 710 in the batch job management information 700 is changed at the start of the process, the original value stored separately is returned. When the processing of the job managed by the batch job management information 700 is completed, the execution condition 708 in the other batch job management information 700 is referenced to confirm whether there is a job to be executed following the completed job, This procedure is executed again to execute the job.
[0258]
(IV-5) Processing for Changing Settings of Specifications of Storage Device
Next, a process of changing and setting the specifications of the storage device 40 will be described with reference to FIGS.
[0259]
First, a process of determining the allocation of the cache amount when the system management program 140 starts a job will be described with reference to FIG.
FIG. 23 is a flowchart of a process in which the system management program 140 determines allocation of a cache amount when starting Job.
[0260]
The process for determining the allocation of the cache amount is called from step 1304 in FIG. 22 when the system management program 140 starts Job.
[0261]
At the start of the process, the job management information of the job to be executed and the cache group configuration plan set at the start of the execution of the job are given from the upper routine (step 2301).
[0262]
First, data used by the job and the storage device 40 in which the data is stored are obtained from the job resource mapping information (step 2302).
[0263]
Then, each cache request amount is grasped from the storage hint 754 in the I / O processing content information 740 in the job management information, and the cache request amount for each LU 208 is referred by referring to the job resource mapping information in the system management information 142. Find the quantity. When one data is stored in a plurality of LUs 208, it is assumed that the amount of data storage area in each LU 208 is confirmed from the mapping aggregation information, and the cache amount is divided among the LUs 208 in proportion thereto.
[0264]
When a plurality of data are stored in one LU 208, the sum of the data is assumed to be the cache request amount of the LU 208. The values are totaled for each cache group according to the configuration given at the start of the processing, and are stored in the Job cache amount information 650 as Job initial settings. Further, the values are totaled for each storage device 40 and set as a cache request amount.
[0265]
Subsequently, it is confirmed whether or not the cache request amount obtained in step 2302 can be allocated from the free cache group for each storage device 40. If the amount obtained by subtracting the cache request amount from the cache amount of the free cache group does not fall below a predetermined threshold, it can be allocated. If it is determined that allocation is impossible, the following processing is performed.
[0266]
First, the job priority 704 given to the job to which the cache is assigned is grasped from the job management information. Then, for the cache group of the storage device 40, the job using the job is grasped from the job resource mapping information, the job priority 704 of the job is obtained, and a job whose value is lower than the job assigned to the cache is obtained. . If there is no such Job, there is no change from the current assigned amount. If there is, a method of reallocating a part of those cache capacities to the Job requesting the cache allocation is determined (step 2303).
[0267]
For example, the cache allocated to a low-priority Job is reallocated to a job assigned to the cache in an amount proportional to the amount. At this time, for the Job whose cache amount has been reduced, a new generation of data is set in the allocation information 652 in the Job cache amount information 650, with the value after the set amount reduced and the set amount as “cache shortage”.
[0268]
Subsequently, an allocation method to the cache group is determined according to the allocation amount obtained in step 2303 (step 2304).
[0269]
When the requested amount can be obtained from the free cash group, the value becomes the allocated amount as it is. If it cannot be acquired, an amount proportional to the requested amount is assigned to each cache group so that the total sum becomes the assigned amount. At this time, in the allocation information 652 in the Job cache amount information 650, the data of the new generation, which is the amount actually allocated as the set amount and whose setting reason is “insufficient cache”, is set.
[0270]
Then, the process ends (step 2305). Note that a cache tuning process described later with reference to FIG. 25 may be performed on Job whose cache amount has been reduced.
[0271]
Next, with reference to FIG. 24, a description will be given of a cache reallocation process executed by the system management program 140 as a job termination process.
FIG. 24 is a flowchart of a cache reallocation process performed by the system management program 140 as a job termination process.
[0272]
This cache amount reassignment process is called from step 1307 in FIG. 22 when the system management program 140 ends Job.
[0273]
In this process, at the start of the process, the Job ID 622 of the Job completed from the upper routine is given (step 2501).
[0274]
First, referring to the job cache amount information 650, the cache amount used by the ending Job is grasped as an open cache amount, and the amount is totaled for each storage device 40 (step 2502).
[0275]
Then, the corresponding entry is deleted from the job cache amount information 650. Furthermore, referring to the Job resource mapping information, it is assumed that the cache group to which only the LU 208 in which only the data of the ending Job is stored belongs and the cache group is deleted.
[0276]
Subsequently, referring to the job cache amount information 650, the storage device 40 storing the data of the job to be ended recognizes the job to which the cache amount corresponding to the requested value is not allocated. The entry for which the setting reason of the corresponding allocation information 652 is “insufficient cache” corresponds to this. Then, the job priority 704 of those Jobs is grasped from the job management information, and the open cache is re-allocated in order from the job priority 704 having the highest job priority 704 so as to satisfy the shortage from the required value of the cache amount (step). 2503).
[0277]
In step 2503, if there are remaining caches in the open cache even after the caches have been reallocated to all Jobs, they are allocated to the free cache group (step 2504).
[0278]
Then, the process ends (step 2505). For the job cache group in which the shortage has been satisfied, the corresponding entry of the job cache amount information 650 is returned to the generation before the shortage.
[0279]
Next, a process of tuning the cache amount for online Job based on monitor information will be described with reference to FIG.
FIG. 25 is a flowchart of a process of tuning the cache amount for online Job based on monitor information.
[0280]
This process is a process called from steps 1507 and 1519 of the job tuning process in FIGS. 20 and 21.
[0281]
In this process, at the start of the process, a Job ID 622 of a Job to be tuned from a higher-level routine and a cache group whose cache allocation must not be reduced as necessary are given (Step 2701).
[0282]
First, the storage device 40, the LU 208, and the cache group that hold the data used by the designated Job are obtained from the Job resource mapping information (step 2702).
[0283]
Next, the amount of change in the cache hit rate when the cache amount is changed is calculated (step 2703).
[0284]
In this embodiment, when the values of the real area division number 502 and the virtual management area number 504 in the storage device 40 are R and V, respectively, and the current cache amount of the cache group to which the LU 208 belongs is C, the cache monitor information Regarding the number of hits in the i-th area (0 <i <= R) in the total number of cache hits 370 in 362, the cache amount of the cache group to which the LU 208 belongs is reduced from iC / R to (i-1) C / R. The number of times that no hit occurs, and the number of hits in the i-th area (R <i <= R + V) is the number of hits when the cache amount is increased from (i-1) C / R to iC / R. it is conceivable that.
[0285]
Here, the average hit rate in the i-th area (0 <i <= R + V) at the time of executing the read access for each LU 208 is obtained by adding the actual area division number 502 in the storage device 40 to the monitor history information 510 shown in FIG. And the number of virtual management areas 504 are separately held in the system management information 142. For example, since the reduction of the average actual hit rate when the cache amount is reduced from C / R from C is the average hit ratio in the R-th area, the cache amount in the LU 208 is (i-1) from C / R to iC / R. (0 <i <= R), the average hit rate reduction per unit cache amount can be approximated as (average hit rate in the i-th area) × R / C. Similarly, when the cache amount is in the range of (i-1) C / R to iC / R (R <i <= R + V), the average hit rate increase per unit cache amount is (average hit rate in the i-th area) ) × R / C.
[0286]
This value is calculated for all LUs 208 that hold data used by Job, and is set as a hit rate change rate. In addition, it is assumed that a value based on the latest sample 524 or an average value of a predetermined period in the latest is acquired from the monitor history information 510 including the following steps.
[0287]
Next, using the Job resource mapping information in the system management information 412, the LU 208 storing the data used by Job and the HDD 16 corresponding thereto are grasped (Step 2704).
[0288]
Then, the average response time at the time of a read hit and the average response time at the time of a read miss of the HDD 16 are obtained by referring to the access performance information 614 of the HDD 16 of the HDD performance information 612, and (average response time at the time of read miss) − (average response time at the time of read hit). Average response time) is calculated and used as the response time change amount of the LU 208. When the data in the LU 208 is divided and stored in the HDDs 16 having different performances, the response time change amount is obtained for each HDD 16, and the value obtained by calculating the weighted average with the data amount stored in the HDD 16 is used as the response of the LU 208. Time change.
[0289]
For each storage device 40,
I = Σ (Average change in LU processing time)
However, (average change in LU processing time) = (change amount of response time) × (average number of read I / O times of LU) × (change amount of hit rate)
, A method of changing the cache allocation that maximizes I is obtained (step 2705).
[0290]
Here, Σ means that the sum of LUs 208 holding data of the specified Job in a certain storage device 40 is calculated. In addition, the response time change amount used in step 2704 is used, and the average read I / O count of the LU 208 is obtained from the monitor history information 510. The hit rate change amount can be obtained from the hit rate change rate obtained in step 2703 and the cache allocation change amount. At this time, note that the hit rate change rate changes depending on the cache amount of the cache group.
[0291]
For maximization, for example, the following algorithm is used.
[0292]
First, I is calculated for a certain cache group when the unit cache amount is increased or decreased. Then, when the cache amount is reduced, the cache allocation for the unit amount is changed from the cache group having the largest I (the effect is small) to the cache group having the largest value of the I (the effect is large) when the cache amount is increased. In this case, the value of I is recalculated, and when the value is equal to or more than a certain threshold value, the cache allocation is changed as “effective”. Hereinafter, the above confirmation is repeatedly performed assuming that the cache allocation has been changed, and it is determined that there is no effect in further performing the allocation change, or a predetermined amount (for example, when the Job is stored in the storage device 40, When the allocation is changed by a certain percentage of the used cache amount), the repetition of this check is terminated. If a cache group for which the cache allocation must not be reduced is specified at the start of the process, the restrictions are to be observed.
[0293]
Then, the process ends (step 2706). At this time, the value of the allocation information 652 in the Job cache amount information 650 in the Job resource management information 620 in FIG. 16 is updated.
[0294]
Next, a process of determining a method of changing the I / O processing performance will be described with reference to FIG.
FIG. 26 is a flowchart of a process for determining a method of changing the I / O processing performance.
[0295]
This process is a process of adjusting and changing the assignment of the job and the port, and is called from step 1303 of the process of executing the job in FIG. 22 and steps 1515 and 1517 of the job tuning process of FIGS. Processing.
[0296]
Also, in this process, when a new job is added from a higher-level routine at the start of the process or when the assignment is released when the job is completed, the identifier of the job and information indicating addition / release are given. To change the already allocated I / O processing amount, the identifier of the Job to be changed, the identifier of the port 26 whose allocation is to be changed, and the performance ratio 632 to be newly set to the port 26 are given (step 1601). . Unless otherwise specified, the I / O processing amount requested by another Job is grasped from the Job port setting information 630 and the Job management information 740 of the Job identified therefrom.
[0297]
First, the port 26 of the I / O path I / F 32 in the storage device 40 to be changed is identified (step 1602).
[0298]
When a job is newly added or deleted, the job resource mapping information is referenced from the job identifier, all the ports 26 used by the job are grasped, and these are set as the change targets of the processing amount allocation. When the I / O processing amount of the port 26 is directly specified, the processing amount allocation is changed only for the specified port 26. Thereafter, all currently executing Jobs using the obtained port 26 are grasped using the Job resource mapping information in the system management information 412.
[0299]
Next, in each port 26 obtained in step 1602, an allocation plan is created that allocates the I / O processing amount according to the request value of each job (step 1603).
[0300]
Here, the request value is a value when the performance ratio 632 is specified when the process is called, and otherwise, it is obtained as follows.
[0301]
First, for each data accessed by the Job through the port 26 obtained from the Job resource mapping information, the I / O processing content information 740 in the Job management information of the Job is referred to, and the value of the access order 742 corresponding to the data is referred to. Group by. Next, for each group, the sum of the values obtained by converting the performance value of the I / O base performance 748 of the data belonging to the port 26 into the performance ratio 632 is calculated. The calculated value in each group is compared with the current performance ratio 632 in the job port setting information 630, and the largest value is set as the request value.
[0302]
It is checked whether the allocation plan obtained in step 1603 is feasible, that is, whether the sum of the request values from each Job in each port 26 does not exceed 100% (step 1604).
[0303]
If there is an unrealizable port, the process proceeds to step 1605. If it can be realized by all ports, the process proceeds to step 1610, where the current allocation plan is used as the I / O processing amount allocation method, and the process ends.
[0304]
If it is determined in step 1604 that all the ports can be realized, the allocation plan is recalculated only for the port 26 which is determined to have a problem in step 1604.
[0305]
First, the reference time of the monitor information used for confirming the load of the job for online business is determined (step 1605).
[0306]
Basically, a time given in advance (for example, one hour) from the current time is set as the time. However, with respect to the Job obtained in step 1602, when a certain Job is managed by the batch Job management information 700, the process is executed for a time given by the value of the maximum execution time 710 from the time when the Job was started. When the end time is earlier than the end time of the above-described reference period, the estimated execution end time of the job may be used as the end time of the reference time of the monitor information.
[0307]
Next, an allocation plan is created in which the I / O processing amount is reduced within a range in which the required performance is not affected (step 1606).
[0308]
If the processing amount is specified when the processing is called, the assigned value is set to that value.
[0309]
For a Job managed by the batch Job management information 700, the calculation is performed as follows. First, it is assumed that the processing performance of the port 26 for which the assigned amount is not determined is a value obtained by multiplying the required value by a correction coefficient determined for each Job. At that time, the processing execution time estimated value is given by the maximum execution time 710. Is calculated. A simple equation for obtaining the correction coefficient is obtained by following the description of Job's processing execution time estimating method, and the value is obtained by solving the equation. Using the job priority 704 in the batch job management information 700 and referring to the priority control information 880, a margin coefficient 882 and a value obtained by multiplying the calculated correction coefficient by the required value are compared with the required value. Is the assigned value.
[0310]
The job managed by the online job management information 770 is requested as follows. First, the LU 208 that stores data accessed via the port 26 for which the assigned amount is not determined is obtained from the Job resource mapping information. The past I / O processing amount to the LU 208 via the target port 26 is grasped from the monitor history information 510. The data referred at this time are the monitor value within the reference time of the monitor information obtained in step 1605 within a predetermined period (for example, one week) and the monitor value immediately before. The request value is compared with a value obtained by multiplying the maximum value of the performance ratio 632 calculated from the monitor value by the margin coefficient 882 obtained from the job priority 704 in the online job management information 770, and the smaller one is set as the allocation value.
[0311]
Then, it is checked whether the sum of the obtained assignment values from each Job in each port 26 does not exceed 100% (step 1607). For the ports 26 whose sum does not exceed 100%, the assigned value is corrected so that the sum becomes 100%. This correction is performed by sequentially assigning the difference from the request value in order from the job with the highest job priority 704.
[0312]
If the problem that the sum of the assigned values exceeds 100% at one or more ports 26 is not solved, the process proceeds to step 1608. If the problem has been solved for all ports, the process proceeds to step 1610, where the current allocation plan is used as the I / O processing amount allocation method, and the process ends.
[0313]
Thereafter, a process of allocating an I / O processing amount to the port 26 in which the problem has not been solved up to step 1607 is performed in consideration of the job priority (step 1608).
[0314]
For example, for each port 26 for which an assignment has not been determined, the amount of each Job assigned to that port 26 is obtained by adding a new correction coefficient determined for each port 26 to the assigned amount obtained in step 1606 (Job priority given to Job). (A value of the degree 704), and a correction coefficient is determined so that the sum thereof becomes 100%, and the value is set as an assigned value to each Job.
[0315]
Regarding the Job accessing the data via the port 26 for which the I / O processing amount allocation plan is created in step 1608, the estimated processing time by the allocation plan is the maximum execution time in the Job managed by the batch Job management information 700. If the port 710 is not satisfied, the required performance may not be satisfied if there is a port 26 for which the allocation value obtained in step 1606 of the I / O processing amount cannot be secured in the Job managed by the online Job management information 770. Then, information indicating the high possibility is output (step 1609).
[0316]
This may be displayed on the screen 114 of the management terminal 110, or may be added to a log in which the system management program 140 stores the history of various events.
[0317]
Then, the process ends (step 1610).
[0318]
Next, a process of determining a method of eliminating an HDD overload state due to data movement based on monitor information will be described with reference to FIG.
FIG. 27 is a flowchart of a process for determining a method for eliminating an HDD overload state due to data movement based on monitor information.
[0319]
This process is a process called from step 1508 of the job tuning process of FIG.
[0320]
At the start of the process, the identifiers of the storage device 40 having the source HDD 16 as the source of data, the source HDD 16 and the LU 208 for transferring the data stored therein are given from the upper routine (step 2901).
[0321]
First, the latest state of the area mapping information 300 is acquired from each virtualization mechanism, and the mapping aggregation information is updated to the latest state. Thereafter, it is grasped as a “free area” based on the lower management structure corresponding area information 304 corresponding to the free entry 314 in the area mapping information 300 of each virtualization mechanism, and if possible, the virtualization switch 60 and the volume manager 78 Free the free area (Step 2902)
Here, the “free area” is used as a destination of data of a “data migration request” already existing in the system management information 142 in the lower management structure corresponding area information 304 corresponding to the free entry 314. Not something. The data movement request is information on a method for changing the correspondence between the LU 208 and the HDD 16 by data movement in a certain storage device 40 created by the processing started from step 2901. The information includes the device ID 572 of the HDD 16, the HDD ID 394 of the HDD 16 as the transfer source, the LU ID 364 of the LU 208 to which data is to be transferred, the HDD ID 394 of the HDD 16 as the transfer destination, and information on the area therein. This information is stored in the system management information 142.
[0322]
Of the grasped free areas, the free area in the virtualization switch 60 and the volume manager 78 can be released by issuing an instruction to release the area to the virtualization switch 60 and the volume manager 78 if possible. it can. When a certain area is released, what constitutes the opened area is a virtual structure, and if all the areas of the virtual structure are not used in the upper hierarchy, the virtual structure is deleted. The virtualization mechanism to be provided is instructed to delete the virtual structure, and the area of the management structure forming the virtual structure is made free. Hereinafter, this area release processing is performed recursively, and the free area is also grasped for them.
[0323]
Among the HDDs 16 in the storage device 40 having the source HDD 16, the HDD 16 capable of storing all the data of the designated LU 208 stored on the source HDD 16 in a continuous free area is determined, and the average of the HDD 16 at the time of a read error is determined. The response time is obtained from the access performance information 614 in the HDD performance information 612, and the HDD 16 whose value is equal to or less than the value of the source HDD 16 (read miss performance equal to or higher than the original HDD 16) is selected (step 2903). Note that the HDD 16 may not be selected.
[0324]
In the selected HDD 16, a sample 524 of the operation rate of the HDD 16 in a recent certain period (for example, one week) in the monitor history information 510 is grasped. If this happens, the operation rate of the entire HDD 16 after data movement (total of the operation rates of the HDD 16 in the LU 208 that stores data in the HDD 16) is estimated (step 2904).
[0325]
Here, the operation rate of the HDD 16 based on the data of the moved LU 208 is estimated as a value obtained by correcting the operation rate of the LU 208 in the source HDD 16 assuming that the operation rate of the HDD 16 at the destination and the source is proportional to the read miss performance.
[0326]
Of the estimated values of each sample 524, the largest value is taken as the operation rate after the data transfer of the HDD 16, and the HDD 16 with the smallest value is selected, and whether the value is less than a predetermined threshold value (for example, 50%) or not. Check whether or not. If it is less than the threshold value, a data movement request for moving the data of the LU 208 in the transfer source HDD 16 is created (step 2905). If the number is equal to or larger than the threshold value, or if no HDD 16 is selected in step 2903, the data migration request is not created as creation failure.
[0327]
Then, the process ends (step 2906).
[0328]
[Embodiment 2]
Hereinafter, a second embodiment according to the present invention will be described with reference to FIG.
FIG. 28 is a configuration diagram of a computer system that manages the performance of a storage device according to the second embodiment of the present invention.
[0329]
In the first embodiment, the virtualization switch 60 is placed between the server 70 and the storage device 40, and is connected to the I / O path 34 and the network 24. Then, the data is virtualized by a management structure as shown in FIG.
[0330]
In the present embodiment, the storage device 40b provides a file to an external device, and the file is accessed via a network using a network file system protocol.
[0331]
Hereinafter, the difference from the first embodiment will be described.
In the present embodiment, the I / O path 34 and the virtualization switch 60 do not exist. A port ID 384 that can be uniquely identified in the system is added to the port 26 of the network I / F 24.
[0332]
The server 70 does not have the I / O path I / F 32 but has only the network I / F 22. The OS 72 includes a network file system 82 that accesses a file 202 provided by an external device via the network 24 using a network file system protocol.
[0333]
The network file system 82 has the area mapping information 300 in the OS management information 74. When the file 202 recognized by the DBMS 90 or the AP program 100 and the file 202 provided from the storage device 40b correspond to each other according to a certain rule, only information that defines the correspondence may be held in the OS management information 74. . In this case, the system management program 140 acquires information that defines the correspondence, creates area mapping information 300 from the information, and stores it in the mapping aggregate information.
[0334]
The storage device 40b does not have the I / O path I / F 32 and has a concept called a "file" and allows an external device to access data. It is changed to the control program 44b of the storage device 40b and has the following functions. The control program 44b has a function provided by the file system 80 of the first embodiment, virtualizes the storage area of the LU 208 existing in the storage device 40b, and enables data access using the concept of a file 202. . Further, the control program 44b interprets one or more network file system protocols, and executes a file access process requested by an external device via the network 24 and the network I / F 22 using the protocols.
[0335]
Regarding the data mapping, in the data mapping hierarchy, all of the files 202 and below are provided by the storage device 40b, and the server 70 uses the network file system 82 in the OS 72 to store the files 202 on the storage device 40b. To access.
[0336]
The logical hierarchy in the storage device may include a logical volume 204 and a virtual volume 206 between the file 202 and the LU 208 as shown in FIG. 2, or may be simply a file 202-LU 208-HDD 16, A configuration may be used.
[0337]
Other differences are summarized below. The port 26 of the I / O path I / F 32 is made to correspond to the port 26 of the network I / F 22. This applies to the priority access control function of the storage device 40.
[0338]
The file 202 of the storage device 40b is made to correspond to the LU 208 of the storage device 40. The file 202 is also the unit of management of the members of the cache group.
[0339]
In the acquisition of the monitor information and various processes, the above-described changes are basically made, so that the first embodiment can be applied as it is.
[0340]
【The invention's effect】
According to the present invention, in a computer system in which a DBMS operates, performance management for a storage device can be performed using a performance index in a user's business, thereby facilitating performance management.
[0341]
Further, according to the present invention, in a computer system in which a DBSM operates, performance tuning processing of a storage device can be automated, and performance management costs can be reduced.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a computer system that manages the performance of a storage device according to a first embodiment of the present invention.
FIG. 2 is a hierarchical configuration diagram of data mapping of data managed by a DBMS 90 according to the first embodiment of the present invention.
FIG. 3 is a schematic diagram showing a data structure of area mapping information 300.
FIG. 4 is a schematic diagram showing a data structure of upper port mapping information 322.
FIG. 5 is a schematic diagram showing a data structure of data storage area information 342.
FIG. 6 is a schematic diagram showing a data structure of cache group information 460.
FIG. 7 is a schematic diagram showing a data structure of storage monitor information 360.
FIG. 8 is a schematic diagram showing a data structure of port throughput setting information 440.
FIG. 9 is a schematic diagram showing a data structure of port monitor information 400.
FIG. 10 is a schematic diagram showing a data structure of online Job monitor information 430.
FIG. 11 is a schematic diagram showing a data structure of storage performance information 610.
FIG. 12 is a schematic diagram showing a data structure of monitor history information 510.
FIG. 13 is a schematic diagram showing a data structure of batch Job management information 700.
FIG. 14 is a schematic diagram showing a data structure of batch SQL design information 850.
FIG. 15 is a schematic diagram showing a data structure of online Job management information 770.
FIG. 16 is a schematic diagram showing a data structure of Job resource management information 620.
FIG. 17 is a schematic diagram showing a data structure of priority control information 880.
FIG. 18 is a flowchart of a process for setting a CPU processing time estimation method 716 and I / O processing content information 740a in the job management information 700 by actually measuring monitor information.
FIG. 19 is a general chart of collection of monitor information of a system management program and Job tuning processing based on the monitor information.
FIG. 20 is a flowchart of a Job tuning process based on monitor information (part 1).
FIG. 21 is a flowchart of a Job tuning process based on monitor information (part 2).
FIG. 22 is a flowchart of Job execution processing by the system management program.
FIG. 23 is a flowchart of a process in which the system management program 140 determines allocation of a cache amount when starting Job.
FIG. 24 is a flowchart of a cache reallocation process executed by the system management program 140 as a job termination process.
FIG. 25 is a flowchart of a process of tuning a cache amount for online Job based on monitor information.
FIG. 26 is a flowchart of a process for determining a method of changing the I / O processing performance.
FIG. 27 is a flowchart of a process for determining a method for eliminating an HDD overload state due to data movement based on monitor information.
FIG. 28 is a configuration diagram of a computer system that manages the performance of a storage device according to the second embodiment of the present invention.
[Explanation of symbols]
16 HDD, 22 network I / F, 24 network, 26 port, 32 I / O path I / F, 34 I / O path, 40 storage device, 60 virtualization switch, 70 server , 90 ... DBMS, 100 ... AP program, 120 ... Management server, 140 ... System management program.

Claims (36)

プログラムを実行する計算機と、そのプログラムの実行のためのデータを記憶する記憶装置とを有する計算機システムの性能管理方法において、
(1)前記プログラムに要求される性能の情報を取得する手順、
(2)前記プログラムを実行するためのデータのマッピング情報を、前記計算機、前記記憶装置から取得する手順、
(3)前記記憶装置から稼動統計情報を取得する手順、
(10)前記(1)ないし(3)の手順で取得された情報を用いて前記記憶装置の設定変更案を作成する手順、
(11)前記記憶装置に対して前記設定変更案に従った設定変更を指示する手順を有することを特徴とする性能管理方法。
In a performance management method for a computer system having a computer that executes a program and a storage device that stores data for executing the program,
(1) a procedure for acquiring performance information required for the program;
(2) a step of acquiring data mapping information for executing the program from the computer and the storage device;
(3) a procedure for acquiring operation statistical information from the storage device;
(10) a procedure for creating a setting change plan for the storage device using the information obtained in the procedures (1) to (3);
(11) A performance management method comprising a step of instructing the storage device to change a setting in accordance with the setting change plan.
さらに、
(4)前記プログラムの優先度に関する情報を取得する手順を有し、
前記(10)の手順で、前記(4)の手順で取得した情報をも利用して前記記憶装置の設定変更案を作成することを特徴とする請求項1記載の計算機システムの性能管理方法。
further,
(4) a step of obtaining information on the priority of the program,
2. The performance management method for a computer system according to claim 1, wherein, in the step (10), the setting change plan of the storage device is created using the information acquired in the step (4).
前記(1)の手順が、前記プログラムに要求される処理実行時間と、処理実行時間見積り方法と、前記プログラムに入力として与えられるデータのデータ量とを取得する処理を含み、
前記(10)の手順で、前記記憶装置の設定変更案を作成する際して、前記プログラムの処理実行時間と、前記処理実行時間見積り方法と、前記プログラムへの入力データ量とを利用することを特徴とする請求項1記載の計算機システムの性能管理方法。
The procedure (1) includes a process execution time required for the program, a process execution time estimating method, and a process of acquiring a data amount of data provided as input to the program,
In the step (10), when creating a setting change plan for the storage device, utilizing the processing execution time of the program, the processing execution time estimating method, and the amount of data input to the program. 2. The performance management method for a computer system according to claim 1, wherein:
前記処理実行時間見積り方法を取得する際に、前記(3)の手順で取得した前記稼動統計情報を利用することを特徴とする請求項3記載の計算機システムの性能管理方法。4. The performance management method for a computer system according to claim 3, wherein the operation statistical information obtained in the step (3) is used when obtaining the processing execution time estimation method. 前記(1)の手順が、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを取得する処理を含み、
前記(10)の手順で、前記記憶装置の設定変更案を作成する際して、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを利用することを特徴とする請求項1記載の計算機システムの性能管理方法。
The procedure of (1) includes a process of acquiring information on a response time of a process requested by the program and information on an actual measurement value of a response time of a process of the program,
In the step (10), when creating a setting change plan for the storage device, information on a response time of a process required for the program and information on an actual measurement value of a response time of a process of the program are stored. 2. The performance management method for a computer system according to claim 1, wherein the method is used.
前記記憶装置が、外部装置と接続するためのポートを備え、そのポートからのアクセスの処理量を制限する優先アクセス制御機能を有する記憶装置である場合に、
前記(10)の手順で作成する設定変更案が、前記優先アクセス制御機能の設定値の変更案であることを特徴とする請求項1記載の計算機システムの性能管理方法。
When the storage device is a storage device having a port for connecting to an external device and having a priority access control function of limiting the processing amount of access from the port,
2. The performance management method for a computer system according to claim 1, wherein the setting change plan created in the step (10) is a change plan of the setting value of the priority access control function.
前記記憶装置が、データキャッシュを備え、そのデータキャッシュを幾つかの領域に区分された領域により管理して、その区分されたデータキャッシュの領域を動的に追加・削除・領域サイズ変更をする機能を有する記憶装置である場合に、
前記(10)の手順で作成する設定変更案が、前記区分されたデータキャッシュの領域の追加・削除・領域サイズ変更案であることを特徴とする請求項1記載の計算機システムの性能管理方法。
A function in which the storage device includes a data cache, manages the data cache by an area divided into several areas, and dynamically adds, deletes, and changes the area size of the divided data cache area. If the storage device has
2. The performance management method for a computer system according to claim 1, wherein the setting change plan created in the step (10) is a plan to add / delete / change the area size of the partitioned data cache.
前記記憶装置が、少なくとも二つ以上の物理記憶手段を備え、
前記物理記憶手段の記憶領域を利用した論理記憶領域を提供する機能と、前記論理記憶領域の前記物理記憶手段の記憶領域への対応関係を動的に変更する物理記憶位置変更機能とを有し、
前記(10)の手順で作成する設定変更案が、前記物理記憶位置変更機能による前記物理記憶手段と前記論理記憶領域の対応関係の変更指示案であることを作成することを特徴と請求項1記載の計算機システムの性能管理方法。
The storage device includes at least two or more physical storage units,
It has a function of providing a logical storage area using a storage area of the physical storage means, and a physical storage location change function of dynamically changing a correspondence relationship between the logical storage area and the storage area of the physical storage means. ,
2. The method according to claim 1, wherein the setting change plan created in the step (10) is a change instruction plan for changing the correspondence between the physical storage unit and the logical storage area by the physical storage location change function. The performance management method of the computer system described in the above.
データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有する計算機システムの性能管理方法において、
(21)前記プログラムに要求される性能の情報を取得する手順、
(22)前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報を取得する手順、
(23)前記プログラムの実行するためのデータのマッピング情報を、前記第一の計算機、前記記憶装置から取得する手順、
(24)前記記憶装置から稼動統計情報を取得する手順、
(30)前記(21)ないし(24)の手順で取得された情報を用いて前記記憶装置の設定変更案を作成する手順、
(31)前記記憶装置に対して前記設定変更案に従った設定変更を指示する手順を有することを特徴とする計算機システムの性能管理方法。
A first computer that operates a database management system, a second computer that executes a program that issues a processing request to the database management system, and a storage device that stores data handled by the database management system. In the performance management method,
(21) a procedure for acquiring performance information required for the program;
(22) a step of acquiring information on data of a database used in a process requested by the program to the database management system;
(23) a step of acquiring data mapping information for executing the program from the first computer and the storage device;
(24) a procedure for obtaining operation statistics information from the storage device;
(30) a procedure for creating a setting change plan for the storage device using the information acquired in the procedures (21) to (24);
(31) A method for managing the performance of a computer system, comprising a step of instructing the storage device to change a setting in accordance with the setting change plan.
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項9記載の計算機システムの性能管理方法。10. The performance management method for a computer system according to claim 9, wherein said first computer and said second computer are the same computer. 前記記憶装置が、外部装置と接続するためのポートを備え、そのポートからのアクセスの処理量を制限する優先アクセス制御機能を有する記憶装置である場合に、
前記(30)の手順で作成する設定変更案が、前記優先アクセス制御機能の設定値の変更案であることを特徴とする請求項9記載の計算機システムの性能管理方法。
When the storage device is a storage device having a port for connecting to an external device and having a priority access control function of limiting the processing amount of access from the port,
10. The performance management method for a computer system according to claim 9, wherein the setting change plan created in the step (30) is a change plan of the setting value of the priority access control function.
前記記憶装置が、データキャッシュを備え、そのデータキャッシュを幾つかの領域に区分された領域により管理して、その区分されたデータキャッシュの領域を動的に追加・削除・領域サイズ変更をする機能を有する記憶装置である場合に、
前記(30)の手順で作成する設定変更案が、前記区分されたデータキャッシュの領域の追加・削除・領域サイズ変更案であることを特徴とする請求項9記載の計算機システムの性能管理方法。
A function in which the storage device includes a data cache, manages the data cache by an area divided into several areas, and dynamically adds, deletes, and changes the area size of the divided data cache area. If the storage device has
10. The performance management method for a computer system according to claim 9, wherein the setting change plan created in the step (30) is a plan for adding / deleting / changing an area size of the partitioned data cache.
前記記憶装置が、少なくとも二つ以上の物理記憶手段を備え、
前記物理記憶手段の記憶領域を利用した論理記憶領域を提供する機能と、前記論理記憶領域の前記物理記憶手段の記憶領域への対応関係を動的に変更する物理記憶位置変更機能とを有する記憶装置である場合に、
前記(30)の手順で作成する設定変更案が、前記物理記憶位置変更機能による前記物理記憶手段と前記論理記憶領域の対応関係の変更指示案であることを作成することを特徴とするの請求項9記載の計算機システムの性能管理方法。
The storage device includes at least two or more physical storage units,
A storage having a function of providing a logical storage area using a storage area of the physical storage means, and a physical storage location change function of dynamically changing a correspondence relationship between the logical storage area and the storage area of the physical storage means. If it is a device,
The method according to claim 30, wherein the setting change plan created in the step (30) is a change instruction plan for changing the correspondence between the physical storage unit and the logical storage area by the physical storage location change function. Item 14. The computer system performance management method according to Item 9.
データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有する記憶装置の性能を管理する計算機システムにおいて、
管理装置を有し、
この管理装置が、前記プログラムに要求される性能の情報と、
前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報と、
前記第一の計算機、前記記憶装置から得られる前記プログラムの実行するためのデータのマッピング情報と、
前記記憶装置から得られる稼動統計情報とを取得して、
前記管理装置が、取得した情報を用いて前記記憶装置の設定変更案を作成して、
前記記憶装置に対して前記設定変更案に従った設定変更を指示することを特徴とする記憶装置の性能を管理する計算機システム。
A first computer that operates a database management system, a second computer that executes a program that issues a processing request to the database management system, and a storage device that stores data handled by the database management system. In a computer system that manages performance,
Having a management device,
The management device may include information on performance required for the program,
Information on data of a database used in a process requested by the program to the database management system;
The first computer, mapping information of data for executing the program obtained from the storage device,
Acquiring operation statistics information obtained from the storage device,
The management device creates a setting change plan for the storage device using the acquired information,
A computer system for managing the performance of a storage device, which instructs the storage device to change the setting in accordance with the setting change plan.
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項14記載の記憶装置の性能を管理する計算機システム。15. The computer system according to claim 14, wherein the first computer and the second computer are the same computer. さらに、
前記第一の計算機と、前記記憶装置との間に接続され、両者の間のデータ転送を制御する記憶制御装置を有することを特徴とする請求項14記載の記憶装置の性能を管理する計算機システム。
further,
15. The computer system for managing performance of a storage device according to claim 14, further comprising a storage control device connected between said first computer and said storage device for controlling data transfer between said first computer and said storage device. .
前記管理装置の前記情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更の指示とをおこなう機能を、前記第一の計算機または前記第二の計算機で実現することを特徴とする請求項14記載の記憶装置の性能を管理する計算機システム。The first computer or the second computer implements a function of collecting the information of the management device, creating the setting change plan, and performing a setting change instruction according to the setting change plan. 15. A computer system for managing the performance of a storage device according to claim 14, wherein: 前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶装置で実現することを特徴とする請求項14記載の記憶装置の性能を管理する計算機システム。15. The storage device according to claim 14, wherein a function of collecting information of the management device, creating the setting change plan, and instructing a setting change in accordance with the setting change plan is realized by the storage device. A computer system that manages the performance of storage devices. 前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶制御装置で実現することを特徴とする請求項16記載の記憶装置の性能を管理する計算機システム。17. The storage control device according to claim 16, wherein a function of collecting information of the management device, creating the setting change plan, and instructing a setting change in accordance with the setting change plan is realized by the storage control device. A computer system that manages the performance of storage devices. データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有する計算機システムの性能を管理する管理装置において、
この管理装置が、前記プログラムに要求される性能の情報と、
前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報と、
前記第一の計算機、前記記憶装置から得られる前記プログラムの実行するためのデータのマッピング情報と、
前記記憶装置から得られる稼動統計情報とを取得して、
取得した情報を用いて前記記憶装置の設定変更案を作成して、
前記記憶装置に対して前記設定変更案に従った設定変更を指示することを特徴とする計算機システムの性能を管理する管理装置。
A first computer that operates a database management system; a second computer that executes a program that issues a processing request to the database management system; and a storage device that stores data handled by the database management system. In a management device that manages performance,
The management device may include information on performance required for the program,
Information on data of a database used in a process requested by the program to the database management system;
The first computer, mapping information of data for executing the program obtained from the storage device,
Acquiring operation statistics information obtained from the storage device,
Using the obtained information to create a setting change plan of the storage device,
A management device for managing the performance of a computer system, wherein the management device instructs the storage device to change a setting according to the setting change plan.
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項20記載の計算機システムの性能を管理する管理装置。21. The management device for managing the performance of a computer system according to claim 20, wherein said first computer and said second computer are the same computer. 前記記憶装置が、外部装置と接続するためのポートを備え、そのポートからのアクセスの処理量を制限する優先アクセス制御機能を有する記憶装置であって、
前記管理装置が作成する設定変更案が、前記優先アクセス制御機能の設定値の変更案であることを特徴とする請求項20記載の計算機システムの性能を管理する管理装置。
The storage device has a port for connecting to an external device, a storage device having a priority access control function of limiting the processing amount of access from the port,
21. The management apparatus for managing the performance of a computer system according to claim 20, wherein the setting change plan created by the management apparatus is a change plan of a setting value of the priority access control function.
前記記憶装置が、データキャッシュを備え、そのデータキャッシュを幾つかの領域に区分された領域により管理して、その区分されたデータキャッシュの領域を動的に追加・削除・領域サイズ変更をする機能を有する記憶装置であって、
前記管理装置が作成する設定変更案が、前記区分されたデータキャッシュの領域の追加・削除・領域サイズ変更案であることを特徴とする請求項20記載の計算機システムの性能を管理する管理装置。
A function in which the storage device includes a data cache, manages the data cache by an area divided into several areas, and dynamically adds, deletes, and changes the area size of the divided data cache area. A storage device having
21. The management apparatus for managing the performance of a computer system according to claim 20, wherein the setting change plan created by the management apparatus is a plan for adding / deleting / changing an area size of the partitioned data cache.
前記記憶装置が、少なくとも二つ以上の物理記憶手段を備え、
前記物理記憶手段の記憶領域を利用した論理記憶領域を提供する機能と、前記論理記憶領域の前記物理記憶手段の記憶領域への対応関係を動的に変更する物理記憶位置変更機能とを有する記憶装置であって、
前記管理装置で作成する設定変更案が、前記物理記憶位置変更機能による前記物理記憶手段と前記論理記憶領域の対応関係の変更指示案であることを特徴とする請求項20記載の計算機システムの性能を管理する管理装置。
The storage device includes at least two or more physical storage units,
A storage having a function of providing a logical storage area using a storage area of the physical storage means, and a physical storage location change function of dynamically changing a correspondence relationship between the logical storage area and the storage area of the physical storage means. A device,
21. The performance of a computer system according to claim 20, wherein the setting change plan created by the management device is a change instruction plan for changing the correspondence between the physical storage unit and the logical storage area by the physical storage location change function. Management device that manages
プログラムを実行する計算機と、そのプログラムの実行のためのデータを記憶する記憶装置とを有する計算機システムの性能管理プログラムにおいて、
前記プログラムに要求される性能の情報を取得する機能と、
前記プログラムを実行するためのデータのマッピング情報を、前記計算機、前記記憶装置から取得する機能と、
前記記憶装置から稼動統計情報を取得する機能とにより、
前記計算機システムより情報を収集し、前記収集された情報を用いて前記記憶装置の設定変更案を作成し、前記記憶装置に対して前記設定変更案に従った設定変更を指示する機能を実現することを特徴とする計算機システムの性能管理プログラム。
In a performance management program for a computer system having a computer that executes a program and a storage device that stores data for executing the program,
A function of acquiring performance information required for the program,
A function of acquiring data mapping information for executing the program from the computer and the storage device;
With the function of acquiring operation statistical information from the storage device,
A function of collecting information from the computer system, creating a setting change plan of the storage device using the collected information, and instructing the storage device to perform a setting change according to the setting change plan is realized. A computer system performance management program characterized in that:
さらに、
前記プログラムの優先度に関する情報を取得する機能を有し、
前記計算機システムにより、プログラムの優先度に関する情報をも収集し、その情報をも利用して前記記憶装置の設定変更案を作成することを特徴とする請求項25記載の計算機システムの性能管理プログラム。
further,
A function of acquiring information on the priority of the program,
26. The performance management program for a computer system according to claim 25, wherein the computer system also collects information on the priority of the program, and uses the information to create a setting change plan for the storage device.
前記プログラムに要求される性能の情報を取得する機能では、前記プログラムに要求される処理実行時間と、処理実行時間見積り方法と、前記プログラムに入力として与えられるデータのデータ量とを取得して、
前記記憶装置の設定変更案を作成する際して、前記プログラムの処理実行時間と、前記処理実行時間見積り方法と、前記プログラムへの入力データ量とを利用することを特徴とする請求項25記載の計算機システムの性能管理プログラム。
In the function of obtaining information on the performance required for the program, the processing execution time required for the program, the processing execution time estimation method, and the data amount of data given as input to the program are obtained,
26. The method according to claim 25, wherein a process execution time of the program, a process execution time estimating method, and an amount of data input to the program are used when creating a setting change plan of the storage device. Computer system performance management program.
前記処理実行時間見積り方法を取得する際に、前記機能で取得した前記稼動統計情報を利用することを特徴とする請求項27記載の計算機システムの性能管理プログラム。28. The computer system performance management program according to claim 27, wherein when acquiring the processing execution time estimation method, the operation statistical information acquired by the function is used. 前記プログラムに要求される性能の情報を取得する機能では、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを取得して
前記記憶装置の設定変更案を作成する際して、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを利用することを特徴とする請求項25記載の計算機システムの性能管理プログラム。
The function of acquiring information on the performance required for the program includes acquiring information on a response time of a process requested by the program and information on an actual measurement value of a response time of a process of the program, and 26. The method according to claim 25, wherein, when creating the setting change plan, information on a response time of a process requested by the program and information on an actual measurement value of a response time of a process of the program are used. Computer system performance management program.
前記請求項25記載の計算機システムの性能管理プログラムを記録する計算機読み取り可能な記憶媒体。A computer-readable storage medium for recording a performance management program for a computer system according to claim 25. データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有し、さらに、前記第一の計算機と、前記記憶装置との間に接続され、両者の間のデータ転送を制御する記憶制御装置とを有する計算機システムの性能管理プログラムにおいて、
前記プログラムに要求される性能の情報を取得する機能と、
前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報を取得する機能と、
前記プログラムの実行するためのデータのマッピング情報を、前記第一の計算機、前記記憶装置から取得する機能と、
前記記憶装置から稼動統計情報を取得する機能とにより、
前記計算機システムより情報を収集し、前記収集された情報を用いて前記記憶装置の設定変更案を作成し、前記記憶装置に対して前記設定変更案に従った設定変更を指示する機能を実現することを特徴とする計算機システムの性能管理プログラム。
A first computer that operates a database management system, a second computer that executes a program that issues a processing request to the database management system, and a storage device that stores data handled by the database management system, , A performance management program for a computer system having a storage controller connected between the first computer and the storage device and controlling data transfer between the two.
A function of acquiring performance information required for the program,
A function of acquiring information on data of a database used in a process that the program requests from the database management system,
A function of acquiring mapping information of data for executing the program from the first computer and the storage device;
With the function of acquiring operation statistical information from the storage device,
A function of collecting information from the computer system, creating a setting change plan of the storage device using the collected information, and instructing the storage device to perform a setting change according to the setting change plan is realized. A computer system performance management program characterized in that:
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項31記載の計算機システムの性能管理プログラム。32. The computer system performance management program according to claim 31, wherein said first computer and said second computer are the same computer. 前記管理装置の前記情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更の指示とをおこなう機能を、前記第一の計算機または前記第二の計算機で実現することを特徴とする請求項31記載の計算機システムの性能管理プログラム。The first computer or the second computer implements a function of collecting the information of the management device, creating the setting change plan, and performing a setting change instruction according to the setting change plan. 32. The computer system performance management program according to claim 31, wherein: 前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶装置で実現することを特徴とする請求項31記載の計算機システムの性能管理プログラム。33. The storage device according to claim 31, wherein a function of collecting information of the management device, creating the setting change plan, and instructing a setting change in accordance with the setting change plan is realized by the storage device. Computer system performance management program. 前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶制御装置で実現することを特徴とする請求項31記載の計算機システムの性能管理プログラム。32. The storage control device, wherein a function of collecting information of the management device, creating the setting change plan, and instructing a setting change in accordance with the setting change plan is realized by the storage control device. Computer system performance management program. 前記請求項31記載の計算機システムの性能管理プログラムを記録する計算機読み取り可能な記憶媒体。32. A computer readable storage medium for recording a computer system performance management program according to claim 31.
JP2003093544A 2003-03-31 2003-03-31 Performance management method for computer system and computer system for managing performance of storage device Pending JP2004302751A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003093544A JP2004302751A (en) 2003-03-31 2003-03-31 Performance management method for computer system and computer system for managing performance of storage device
US10/633,637 US7089347B2 (en) 2003-03-31 2003-08-05 Computer system for managing performances of storage apparatus and performance management method of the computer system
EP03018058A EP1471441B1 (en) 2003-03-31 2003-08-07 Performance management of a computer system with a database management system
DE60322182T DE60322182D1 (en) 2003-03-31 2003-08-07 Performance management of a computer system with a database management system
US11/454,935 US7694070B2 (en) 2003-03-31 2006-06-19 Computer system for managing performances of storage apparatus and performance management method of the computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003093544A JP2004302751A (en) 2003-03-31 2003-03-31 Performance management method for computer system and computer system for managing performance of storage device

Publications (2)

Publication Number Publication Date
JP2004302751A true JP2004302751A (en) 2004-10-28
JP2004302751A5 JP2004302751A5 (en) 2006-03-09

Family

ID=32959527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003093544A Pending JP2004302751A (en) 2003-03-31 2003-03-31 Performance management method for computer system and computer system for managing performance of storage device

Country Status (4)

Country Link
US (2) US7089347B2 (en)
EP (1) EP1471441B1 (en)
JP (1) JP2004302751A (en)
DE (1) DE60322182D1 (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260284A (en) * 2005-03-17 2006-09-28 Hitachi Ltd Storage management software and grouping method
JP2006277545A (en) * 2005-03-30 2006-10-12 Hitachi Ltd Computer system, storage device system, and write processing control method
JP2006330895A (en) * 2005-05-24 2006-12-07 Hitachi Ltd Storage system and storage system operation method
JP2007026064A (en) * 2005-07-15 2007-02-01 Hitachi Ltd Computer system, management computer, and database management system control method
JP2007087240A (en) * 2005-09-26 2007-04-05 Hitachi Computer Peripherals Co Ltd Network storage system using RFID and network storage system construction method
JP2007094681A (en) * 2005-09-28 2007-04-12 Hitachi Ltd Access path management method and device therefor
JP2007183703A (en) * 2006-01-04 2007-07-19 Hitachi Ltd Storage device to prevent data tampering
JP2007242019A (en) * 2006-03-07 2007-09-20 Hewlett-Packard Development Co Lp Method and system for hierarchical management of distributed data
JP2008250631A (en) * 2007-03-30 2008-10-16 Hitachi Ltd Storage apparatus and control method thereof
JP2009223879A (en) * 2007-12-12 2009-10-01 Huawei Technologies Co Ltd Network storage device and data read/write control method
US7673110B2 (en) 2005-09-05 2010-03-02 Hitachi, Ltd. Control method of device in storage system for virtualization
JP2010122814A (en) * 2008-11-18 2010-06-03 Hitachi Ltd Storage system and operation method thereof
JP2010134874A (en) * 2008-12-08 2010-06-17 Hitachi Ltd Performance management system, information processing system, and information collecting method in performance management system
KR100972646B1 (en) * 2007-12-04 2010-07-28 (주)아이피엠에스 User-centered integrated performance management method and management system
JP2010205159A (en) * 2009-03-05 2010-09-16 Hitachi Ltd Information processor and method for managing configuration information acquired from storage system
JP2010539770A (en) * 2007-09-14 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Dynamic address tracking
US8171241B2 (en) 2006-10-25 2012-05-01 Hitachi, Ltd. Computer system, computer and method for managing performance based on I/O division ratio
WO2014049718A1 (en) * 2012-09-26 2014-04-03 株式会社日立製作所 Management device and management method
JP2014106655A (en) * 2012-11-27 2014-06-09 Hitachi Ltd Setting automatic generation method of time sequence database, setting automatic generation system, and monitoring server
JP2014186590A (en) * 2013-03-25 2014-10-02 Nec Corp Resource allocation system and resource allocation method
WO2015029188A1 (en) * 2013-08-29 2015-03-05 株式会社日立製作所 Computer and method for reading data
US9152519B2 (en) 2010-10-14 2015-10-06 Fujitsu Limited Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program
WO2016051492A1 (en) * 2014-09-30 2016-04-07 株式会社日立製作所 Database management system, database management method, and storage medium
JP2016511463A (en) * 2013-02-28 2016-04-14 株式会社日立製作所 Management system and method for dynamic storage service level monitoring
JP2016076184A (en) * 2014-10-09 2016-05-12 富士通株式会社 File system, control program of management device and control method of file system
JP2016115130A (en) * 2014-12-15 2016-06-23 富士通株式会社 Storage management device, performance adjustment method, and performance adjustment program
US9992232B2 (en) 2016-01-14 2018-06-05 Cisco Technology, Inc. Policy block creation with context-sensitive policy line classification
US10171620B2 (en) 2014-01-29 2019-01-01 Fujitsu Limited Non-transitory computer-readable recording medium having stored therein control program, control apparatus and control method
KR20200043698A (en) * 2018-10-18 2020-04-28 인하대학교 산학협력단 Method and Apparatus for Memory Bottleneck due to Introduction of High Bandwidth Memory

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US7051102B2 (en) * 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
JP4123914B2 (en) 2002-11-26 2008-07-23 株式会社日立製作所 Monitoring method and monitoring program for program operating state
JP4433372B2 (en) * 2003-06-18 2010-03-17 株式会社日立製作所 Data access system and method
JP2005031929A (en) * 2003-07-11 2005-02-03 Hitachi Ltd Management server, storage device system, and program for allocating storage area to server
JP4421230B2 (en) * 2003-08-12 2010-02-24 株式会社日立製作所 Performance information analysis method
US7664798B2 (en) * 2003-09-04 2010-02-16 Oracle International Corporation Database performance baselines
US7376682B2 (en) 2003-09-05 2008-05-20 Oracle International Corporation Time model
US7292961B2 (en) * 2003-09-05 2007-11-06 Oracle International Corporation Capturing session activity as in-memory snapshots using a time-based sampling technique within a database for performance tuning and problem diagnosis
US7673291B2 (en) * 2003-09-05 2010-03-02 Oracle International Corporation Automatic database diagnostic monitor architecture
WO2005050489A1 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. System and method for stored data archive verification
US7613748B2 (en) 2003-11-13 2009-11-03 Commvault Systems, Inc. Stored data reverification management system and method
JP4307964B2 (en) * 2003-11-26 2009-08-05 株式会社日立製作所 Access restriction information setting method and apparatus
US7103735B2 (en) * 2003-11-26 2006-09-05 Intel Corporation Methods and apparatus to process cache allocation requests based on priority
JP4516306B2 (en) 2003-11-28 2010-08-04 株式会社日立製作所 How to collect storage network performance information
US7827535B2 (en) * 2003-12-10 2010-11-02 Oracle International Corporation Application performance tuning server-side component
JP2005190036A (en) 2003-12-25 2005-07-14 Hitachi Ltd Storage control device and control method of storage control device
JP4463042B2 (en) * 2003-12-26 2010-05-12 株式会社日立製作所 Storage system having volume dynamic allocation function
JP2005196673A (en) 2004-01-09 2005-07-21 Hitachi Ltd Storage control system for storing operation information
JP2005228278A (en) * 2004-01-14 2005-08-25 Hitachi Ltd Storage area management method, management apparatus, and management program
US7346620B2 (en) * 2004-02-12 2008-03-18 International Business Machines Corporation Adjusting log size in a static logical volume
JP4391265B2 (en) 2004-02-26 2009-12-24 株式会社日立製作所 Storage subsystem and performance tuning method
US8024301B2 (en) * 2004-03-26 2011-09-20 Oracle International Corporation Automatic database diagnostic usage models
JP4631301B2 (en) * 2004-03-31 2011-02-16 株式会社日立製作所 Cache management method for storage device
US7350046B2 (en) 2004-04-02 2008-03-25 Seagate Technology Llc Managed reliability storage system and method monitoring storage conditions
US7437506B1 (en) * 2004-04-26 2008-10-14 Symantec Operating Corporation Method and system for virtual storage element placement within a storage area network
US9262490B2 (en) * 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US7721287B2 (en) * 2004-08-31 2010-05-18 Sap Ag Organizing transmission of repository data
US7721288B2 (en) * 2004-08-31 2010-05-18 Sap Ag Organizing transmission of repository data
US7840755B2 (en) * 2005-05-24 2010-11-23 Lsi Corporation Methods and systems for automatically identifying a modification to a storage array
US8346740B2 (en) * 2005-07-22 2013-01-01 Hewlett-Packard Development Company, L.P. File cache management system
US7694082B2 (en) * 2005-07-29 2010-04-06 International Business Machines Corporation Computer program and method for managing resources in a distributed storage system
JP4871546B2 (en) * 2005-08-22 2012-02-08 株式会社日立製作所 Storage system
US20160098279A1 (en) * 2005-08-29 2016-04-07 Searete Llc Method and apparatus for segmented sequential storage
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
JP4694350B2 (en) * 2005-11-08 2011-06-08 株式会社日立製作所 Managing the number of disk groups that can be started in the storage device
JP4906317B2 (en) * 2005-11-10 2012-03-28 キヤノン株式会社 Information processing apparatus and method
US7516291B2 (en) * 2005-11-21 2009-04-07 Red Hat, Inc. Cooperative mechanism for efficient application memory allocation
US7502775B2 (en) * 2006-03-31 2009-03-10 International Business Machines Corporation Providing cost model data for tuning of query cache memory in databases
JP4740796B2 (en) * 2006-05-29 2011-08-03 パナソニック株式会社 Image recording / playback device
JP4837445B2 (en) * 2006-06-06 2011-12-14 株式会社日立製作所 Storage system and management apparatus and method
JP2008059478A (en) 2006-09-01 2008-03-13 Hitachi Ltd Storage system and data input / output control method
US20080062885A1 (en) * 2006-09-12 2008-03-13 Microsoft Corporation Major problem review and trending system
US20080065680A1 (en) * 2006-09-12 2008-03-13 Microsoft Corporation Change and release management system
JP5073259B2 (en) * 2006-09-28 2012-11-14 株式会社日立製作所 Virtualization system and area allocation control method
US7757013B1 (en) 2006-10-20 2010-07-13 Emc Corporation Techniques for controlling data storage system performance
JP2008108120A (en) * 2006-10-26 2008-05-08 Hitachi Ltd Computer system and method for monitoring performance using agents
JP4884198B2 (en) * 2006-12-19 2012-02-29 株式会社日立製作所 Storage network performance management method, and computer system and management computer using the method
JP4897499B2 (en) * 2007-01-19 2012-03-14 株式会社日立製作所 Storage system or storage migration method
US8174990B2 (en) * 2007-02-16 2012-05-08 International Business Machines Corporation Mechanism and system for programmable measurement of aggregate metrics from a dynamic set of nodes
US7921085B2 (en) * 2007-03-26 2011-04-05 International Business Machines Corporation Method and system for quantifying a data page repetition pattern for a database index in a database management system
US20080270653A1 (en) * 2007-04-26 2008-10-30 Balle Susanne M Intelligent resource management in multiprocessor computer systems
US7606944B2 (en) * 2007-05-10 2009-10-20 Dot Hill Systems Corporation Dynamic input/output optimization within a storage controller
KR101123491B1 (en) * 2007-05-22 2012-03-23 인터내셔널 비지네스 머신즈 코포레이션 Virtualized storage performance controller
JP5251002B2 (en) * 2007-05-25 2013-07-31 富士通株式会社 Distributed processing program, distributed processing method, distributed processing apparatus, and distributed processing system
JP4434235B2 (en) * 2007-06-05 2010-03-17 株式会社日立製作所 Computer system or computer system performance management method
US20090037242A1 (en) * 2007-07-30 2009-02-05 Siemens Medical Solutions Usa, Inc. System for Monitoring Periodic Processing of Business Related Data
US9336387B2 (en) 2007-07-30 2016-05-10 Stroz Friedberg, Inc. System, method, and computer program product for detecting access to a memory device
CN103279181A (en) 2007-08-28 2013-09-04 Commvault系统公司 Power management of data processing resources, such as power adaptive management of data storage operations
US8990811B2 (en) * 2007-10-19 2015-03-24 Oracle International Corporation Future-based performance baselines
JP2009146106A (en) * 2007-12-13 2009-07-02 Hitachi Ltd Storage system having a function of migrating a virtual communication port added to a physical communication port
US20090165004A1 (en) * 2007-12-21 2009-06-25 Jaideep Moses Resource-aware application scheduling
US20090293051A1 (en) * 2008-05-22 2009-11-26 Fortinet, Inc., A Delaware Corporation Monitoring and dynamic tuning of target system performance
JP4701267B2 (en) * 2008-06-04 2011-06-15 株式会社日立製作所 Storage system and management method thereof
US8769048B2 (en) * 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8914540B1 (en) * 2008-07-01 2014-12-16 Cisco Technology, Inc. Multi-fabric SAN based data migration
JP2010020441A (en) * 2008-07-09 2010-01-28 Hitachi Ltd Computer system, configuration management method, and management computer
US8095507B2 (en) * 2008-08-08 2012-01-10 Oracle International Corporation Automated topology-based statistics monitoring and performance analysis
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
WO2010086902A1 (en) * 2009-02-02 2010-08-05 Hitachi, Ltd. Information apparatus and method of generating tuning plan for resource configuration of storage system
EP2261805B1 (en) * 2009-06-12 2013-07-31 Siemens Aktiengesellschaft Method for storing real time values
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
JP5463885B2 (en) * 2009-12-07 2014-04-09 富士通株式会社 Batch job processing time estimation program, method and apparatus
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
JP5636853B2 (en) * 2010-10-04 2014-12-10 富士通株式会社 Storage system virtualization control apparatus and control program
US8495324B2 (en) 2010-11-16 2013-07-23 Lsi Corporation Methods and structure for tuning storage system performance based on detected patterns of block level usage
US9009406B2 (en) 2010-12-10 2015-04-14 International Business Machines Corporation Determining server write activity levels to use to adjust write cache size
JP5845789B2 (en) * 2011-09-30 2016-01-20 富士通株式会社 Control program, data access control device, and data control method
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US8950009B2 (en) 2012-03-30 2015-02-03 Commvault Systems, Inc. Information management of data associated with multiple cloud services
US9262496B2 (en) 2012-03-30 2016-02-16 Commvault Systems, Inc. Unified access to personal data
US9641431B1 (en) * 2012-04-18 2017-05-02 Google Inc. System and methods for utilization-based balancing of traffic to an information retrieval system
US9223597B2 (en) 2012-12-21 2015-12-29 Commvault Systems, Inc. Archiving virtual machines in a data storage system
US20140181044A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to identify uncharacterized and unprotected virtual machines
US10346259B2 (en) 2012-12-28 2019-07-09 Commvault Systems, Inc. Data recovery using a cloud-based remote data recovery center
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US9703584B2 (en) 2013-01-08 2017-07-11 Commvault Systems, Inc. Virtual server agent load balancing
US20140201162A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Systems and methods to restore selected files from block-level backup for virtual machines
US9286110B2 (en) 2013-01-14 2016-03-15 Commvault Systems, Inc. Seamless virtual machine recall in a data storage system
US20150074536A1 (en) 2013-09-12 2015-03-12 Commvault Systems, Inc. File manager integration with virtualization in an information management system, including user control and storage management of virtual machines
JP6033985B2 (en) * 2014-03-07 2016-11-30 株式会社日立製作所 Performance evaluation method and information processing apparatus
US9563518B2 (en) 2014-04-02 2017-02-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
CN104980454B (en) * 2014-04-02 2019-08-06 腾讯科技(深圳)有限公司 A kind of resource data sharing method, server and system
US9483510B2 (en) * 2014-04-17 2016-11-01 Netapp, Inc. Correlating database and storage performance views
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
US9710465B2 (en) 2014-09-22 2017-07-18 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9436555B2 (en) 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
US9417968B2 (en) 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US10776209B2 (en) 2014-11-10 2020-09-15 Commvault Systems, Inc. Cross-platform virtual machine backup and replication
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
US10262075B2 (en) * 2014-12-05 2019-04-16 Sap Se Efficient navigation through hierarchical mappings
US9830242B2 (en) * 2015-01-14 2017-11-28 Mediatek Inc. Loading calculation method and loading calculation system for processor in electronic device
CN104536833A (en) * 2015-01-28 2015-04-22 浪潮电子信息产业股份有限公司 Method for improving high-frequency trading performance
US9842148B2 (en) 2015-05-05 2017-12-12 Oracle International Corporation Method for failure-resilient data placement in a distributed query processing system
US20170031601A1 (en) * 2015-07-30 2017-02-02 Kabushiki Kaisha Toshiba Memory system and storage system
US10440153B1 (en) 2016-02-08 2019-10-08 Microstrategy Incorporated Enterprise health score and data migration
US11283900B2 (en) 2016-02-08 2022-03-22 Microstrategy Incorporated Enterprise performance and capacity testing
US10592350B2 (en) 2016-03-09 2020-03-17 Commvault Systems, Inc. Virtual server cloud file system for virtual machine restore to cloud operations
JP6686602B2 (en) * 2016-03-24 2020-04-22 富士通株式会社 Control method, control program, and control device
JP6766495B2 (en) * 2016-07-21 2020-10-14 富士通株式会社 Programs, computers and information processing methods
US10474548B2 (en) 2016-09-30 2019-11-12 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, using ping monitoring of target virtual machines
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US10152251B2 (en) 2016-10-25 2018-12-11 Commvault Systems, Inc. Targeted backup of virtual machine
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US10459895B2 (en) 2017-03-21 2019-10-29 Bank Of America Corporation Database storage monitoring equipment
US20180276085A1 (en) 2017-03-24 2018-09-27 Commvault Systems, Inc. Virtual machine recovery point generation
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US11074138B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Multi-streaming backup operations for mailboxes
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
US11294786B2 (en) 2017-03-31 2022-04-05 Commvault Systems, Inc. Management of internet of things devices
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
US11221939B2 (en) 2017-03-31 2022-01-11 Commvault Systems, Inc. Managing data from internet of things devices in a vehicle
US10917496B2 (en) * 2017-09-05 2021-02-09 Amazon Technologies, Inc. Networked storage architecture
US11954117B2 (en) 2017-09-29 2024-04-09 Oracle International Corporation Routing requests in shared-storage database systems
US10747607B2 (en) * 2017-12-28 2020-08-18 Facebook, Inc. Techniques for dynamic throttling in batched bulk processing
US10877928B2 (en) 2018-03-07 2020-12-29 Commvault Systems, Inc. Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations
US10891198B2 (en) 2018-07-30 2021-01-12 Commvault Systems, Inc. Storing data to cloud libraries in cloud native formats
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US10996974B2 (en) 2019-01-30 2021-05-04 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US11263111B2 (en) 2019-02-11 2022-03-01 Microstrategy Incorporated Validating software functionality
CN111857558B (en) * 2019-04-30 2024-04-09 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for storage management
US11494273B2 (en) 2019-04-30 2022-11-08 Commvault Systems, Inc. Holistically protecting serverless applications across one or more cloud computing environments
US11461184B2 (en) 2019-06-17 2022-10-04 Commvault Systems, Inc. Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems
US20210011816A1 (en) 2019-07-10 2021-01-14 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container in a container-orchestration pod
US11637748B2 (en) 2019-08-28 2023-04-25 Microstrategy Incorporated Self-optimization of computing environments
US11210189B2 (en) 2019-08-30 2021-12-28 Microstrategy Incorporated Monitoring performance of computing systems
US11354216B2 (en) 2019-09-18 2022-06-07 Microstrategy Incorporated Monitoring performance deviations
US11360881B2 (en) 2019-09-23 2022-06-14 Microstrategy Incorporated Customizing computer performance tests
US11438231B2 (en) 2019-09-25 2022-09-06 Microstrategy Incorporated Centralized platform management for computing environments
US11321318B2 (en) * 2019-11-01 2022-05-03 International Business Machines Corporation Dynamic access paths
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11422900B2 (en) 2020-03-02 2022-08-23 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11321188B2 (en) 2020-03-02 2022-05-03 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11748143B2 (en) 2020-05-15 2023-09-05 Commvault Systems, Inc. Live mount of virtual machines in a public cloud computing environment
US12130708B2 (en) 2020-07-10 2024-10-29 Commvault Systems, Inc. Cloud-based air-gapped data storage management system
JP7191906B2 (en) * 2020-09-09 2022-12-19 株式会社日立製作所 RESOURCE ALLOCATION CONTROL DEVICE, COMPUTER SYSTEM, AND RESOURCE ALLOCATION CONTROL METHOD
US11789830B2 (en) 2020-09-22 2023-10-17 Commvault Systems, Inc. Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system
US11314687B2 (en) 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11604706B2 (en) 2021-02-02 2023-03-14 Commvault Systems, Inc. Back up and restore related data on different cloud storage tiers
US12032855B2 (en) 2021-08-06 2024-07-09 Commvault Systems, Inc. Using an application orchestrator computing environment for automatically scaled deployment of data protection resources needed for data in a production cluster distinct from the application orchestrator or in another application orchestrator computing environment
TWI827974B (en) * 2021-09-08 2024-01-01 財團法人工業技術研究院 Virtual function performance analyzing system and analyzing method thereof
US12411712B2 (en) * 2021-12-01 2025-09-09 Microsoft Technology Licensing, Llc Predictable and adaptive quality of service for storage
US11928038B2 (en) * 2022-06-21 2024-03-12 International Business Machines Corporation Managing data sets based on user activity
US12135618B2 (en) 2022-07-11 2024-11-05 Commvault Systems, Inc. Protecting configuration data in a clustered container system
US12360942B2 (en) 2023-01-19 2025-07-15 Commvault Systems, Inc. Selection of a simulated archiving plan for a desired dataset

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062055A (en) * 1986-09-02 1991-10-29 Digital Equipment Corporation Data processor performance advisor
JPH04359356A (en) 1991-06-05 1992-12-11 Nec Corp On-line response delay recognition system
US5325505A (en) 1991-09-04 1994-06-28 Storage Technology Corporation Intelligent storage manager for data storage apparatus having simulation capability
US5434992A (en) 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5664106A (en) * 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
JP3181446B2 (en) 1993-09-24 2001-07-03 株式会社東芝 Information storage device
US5668944A (en) * 1994-09-06 1997-09-16 International Business Machines Corporation Method and system for providing performance diagnosis of a computer system
JP3641872B2 (en) 1996-04-08 2005-04-27 株式会社日立製作所 Storage system
US6035306A (en) 1997-11-24 2000-03-07 Terascape Software Inc. Method for improving performance of large databases
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6195703B1 (en) * 1998-06-24 2001-02-27 Emc Corporation Dynamic routing for performance partitioning in a data processing network
US6338115B1 (en) * 1999-02-16 2002-01-08 International Business Machines Corporation Advanced read cache management
US6505248B1 (en) 1999-03-24 2003-01-07 Gte Data Services Incorporated Method and system for monitoring and dynamically reporting a status of a remote server
JP3843713B2 (en) 1999-08-27 2006-11-08 株式会社日立製作所 Computer system and device allocation method
JP3541744B2 (en) 1999-08-30 2004-07-14 株式会社日立製作所 Storage subsystem and control method thereof
US6341331B1 (en) 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
EP1282861A4 (en) * 2000-04-18 2008-03-05 Storeage Networking Technologi Storage virtualization in a storage area network
JP2001337790A (en) * 2000-05-24 2001-12-07 Hitachi Ltd Storage system and hierarchical management control method
US6760828B1 (en) 2000-06-27 2004-07-06 Emc Corporation Method and apparatus for using logical volume identifiers for tracking or identifying logical volume stored in the storage system
US6950871B1 (en) * 2000-06-29 2005-09-27 Hitachi, Ltd. Computer system having a storage area network and method of handling data in the computer system
JP4115093B2 (en) 2000-07-06 2008-07-09 株式会社日立製作所 Computer system
US7130824B1 (en) * 2000-08-21 2006-10-31 Etp Holdings, Inc. Apparatus and method for load balancing among data communications ports in automated securities trading systems
JP4144727B2 (en) 2001-07-02 2008-09-03 株式会社日立製作所 Information processing system, storage area providing method, and data retention management device
JP2003108420A (en) 2001-09-27 2003-04-11 Hitachi Ltd Data storage system and control method thereof
US20030084071A1 (en) 2001-11-01 2003-05-01 International Business Machines Corporation Method and system for managing computer performance
JP4162183B2 (en) 2001-11-12 2008-10-08 株式会社日立製作所 Storage device having means for acquiring static information of database management system
JP2003216348A (en) 2001-11-14 2003-07-31 Hitachi Ltd Method and device for management of storage device
US20030158920A1 (en) 2002-02-05 2003-08-21 Sun Microsystems, Inc. Method, system, and program for supporting a level of service for an application
JP4310070B2 (en) * 2002-04-26 2009-08-05 株式会社日立製作所 Storage system operation management method
JP4183443B2 (en) 2002-05-27 2008-11-19 株式会社日立製作所 Data relocation method and apparatus
JP2004005085A (en) 2002-05-31 2004-01-08 Hitachi Ltd Storage network performance measurement system
JP2004013547A (en) 2002-06-07 2004-01-15 Hitachi Ltd Data allocation method, information processing system
JP3996010B2 (en) 2002-08-01 2007-10-24 株式会社日立製作所 Storage network system, management apparatus, management method and program
JP2004070403A (en) 2002-08-01 2004-03-04 Hitachi Ltd File storage volume control method
US7020758B2 (en) * 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
JP4116413B2 (en) 2002-12-11 2008-07-09 株式会社日立製作所 Prefetch appliance server
JP4089427B2 (en) 2002-12-26 2008-05-28 株式会社日立製作所 Management system, management computer, management method and program
US6988110B2 (en) * 2003-04-23 2006-01-17 International Business Machines Corporation Storage system class distinction cues for run-time data management

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260284A (en) * 2005-03-17 2006-09-28 Hitachi Ltd Storage management software and grouping method
JP2006277545A (en) * 2005-03-30 2006-10-12 Hitachi Ltd Computer system, storage device system, and write processing control method
US7325096B2 (en) 2005-03-30 2008-01-29 Hitachi, Ltd. Computer system, storage subsystem, and write processing control method
US20090150608A1 (en) 2005-05-24 2009-06-11 Masataka Innan Storage system and operation method of storage system
JP2006330895A (en) * 2005-05-24 2006-12-07 Hitachi Ltd Storage system and storage system operation method
US8180979B2 (en) 2005-05-24 2012-05-15 Hitachi, Ltd. Storage system and operation method of storage system
US7953942B2 (en) 2005-05-24 2011-05-31 Hitachi, Ltd. Storage system and operation method of storage system
US8484425B2 (en) 2005-05-24 2013-07-09 Hitachi, Ltd. Storage system and operation method of storage system including first and second virtualization devices
JP2007026064A (en) * 2005-07-15 2007-02-01 Hitachi Ltd Computer system, management computer, and database management system control method
US7673110B2 (en) 2005-09-05 2010-03-02 Hitachi, Ltd. Control method of device in storage system for virtualization
US8694749B2 (en) 2005-09-05 2014-04-08 Hitachi, Ltd. Control method of device in storage system for virtualization
US8214615B2 (en) 2005-09-05 2012-07-03 Hitachi, Ltd. Control method of device in storage system for virtualization
JP2007087240A (en) * 2005-09-26 2007-04-05 Hitachi Computer Peripherals Co Ltd Network storage system using RFID and network storage system construction method
JP2007094681A (en) * 2005-09-28 2007-04-12 Hitachi Ltd Access path management method and device therefor
JP2007183703A (en) * 2006-01-04 2007-07-19 Hitachi Ltd Storage device to prevent data tampering
JP2007242019A (en) * 2006-03-07 2007-09-20 Hewlett-Packard Development Co Lp Method and system for hierarchical management of distributed data
US8171241B2 (en) 2006-10-25 2012-05-01 Hitachi, Ltd. Computer system, computer and method for managing performance based on I/O division ratio
JP2008250631A (en) * 2007-03-30 2008-10-16 Hitachi Ltd Storage apparatus and control method thereof
US8086773B2 (en) 2007-03-30 2011-12-27 Hitachi, Ltd. Disk array subsystem and control method thereof
JP2010539770A (en) * 2007-09-14 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Dynamic address tracking
KR100972646B1 (en) * 2007-12-04 2010-07-28 (주)아이피엠에스 User-centered integrated performance management method and management system
JP2009223879A (en) * 2007-12-12 2009-10-01 Huawei Technologies Co Ltd Network storage device and data read/write control method
JP2010122814A (en) * 2008-11-18 2010-06-03 Hitachi Ltd Storage system and operation method thereof
JP2010134874A (en) * 2008-12-08 2010-06-17 Hitachi Ltd Performance management system, information processing system, and information collecting method in performance management system
JP2010205159A (en) * 2009-03-05 2010-09-16 Hitachi Ltd Information processor and method for managing configuration information acquired from storage system
US9152519B2 (en) 2010-10-14 2015-10-06 Fujitsu Limited Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program
US9417817B2 (en) 2012-09-26 2016-08-16 Hitachi, Ltd. Management apparatus and management method
WO2014049718A1 (en) * 2012-09-26 2014-04-03 株式会社日立製作所 Management device and management method
JP5801968B2 (en) * 2012-09-26 2015-10-28 株式会社日立製作所 Management apparatus and management method
JP2014106655A (en) * 2012-11-27 2014-06-09 Hitachi Ltd Setting automatic generation method of time sequence database, setting automatic generation system, and monitoring server
JP2016511463A (en) * 2013-02-28 2016-04-14 株式会社日立製作所 Management system and method for dynamic storage service level monitoring
JP2014186590A (en) * 2013-03-25 2014-10-02 Nec Corp Resource allocation system and resource allocation method
JP5999536B2 (en) * 2013-08-29 2016-09-28 株式会社日立製作所 Computer and data reading method
WO2015029188A1 (en) * 2013-08-29 2015-03-05 株式会社日立製作所 Computer and method for reading data
US10171620B2 (en) 2014-01-29 2019-01-01 Fujitsu Limited Non-transitory computer-readable recording medium having stored therein control program, control apparatus and control method
WO2016051492A1 (en) * 2014-09-30 2016-04-07 株式会社日立製作所 Database management system, database management method, and storage medium
JP2016076184A (en) * 2014-10-09 2016-05-12 富士通株式会社 File system, control program of management device and control method of file system
JP2016115130A (en) * 2014-12-15 2016-06-23 富士通株式会社 Storage management device, performance adjustment method, and performance adjustment program
US9992232B2 (en) 2016-01-14 2018-06-05 Cisco Technology, Inc. Policy block creation with context-sensitive policy line classification
KR20200043698A (en) * 2018-10-18 2020-04-28 인하대학교 산학협력단 Method and Apparatus for Memory Bottleneck due to Introduction of High Bandwidth Memory
KR102136792B1 (en) * 2018-10-18 2020-07-22 인하대학교 산학협력단 Method and Apparatus for Memory Bottleneck due to Introduction of High Bandwidth Memory

Also Published As

Publication number Publication date
EP1471441B1 (en) 2008-07-16
US7694070B2 (en) 2010-04-06
EP1471441A2 (en) 2004-10-27
US20040193827A1 (en) 2004-09-30
US20060242356A1 (en) 2006-10-26
DE60322182D1 (en) 2008-08-28
US7089347B2 (en) 2006-08-08
EP1471441A3 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
JP2004302751A (en) Performance management method for computer system and computer system for managing performance of storage device
US8478731B1 (en) Managing compression in data storage systems
JP4313068B2 (en) Cache management method for storage device
JP4631301B2 (en) Cache management method for storage device
US8429346B1 (en) Automated data relocation among storage tiers based on storage load
US6928451B2 (en) Storage system having means for acquiring execution information of database management system
US10831387B1 (en) Snapshot reservations in a distributed storage system
US7092971B2 (en) Prefetch appliance server
US7107273B2 (en) Method and program of collecting performance data for storage network
US8380947B2 (en) Storage application performance matching
US6928450B2 (en) Storage apparatus acquiring static information related to database management system
US20130297872A1 (en) Enhancing tiering storage performance
JP2005196602A (en) System configuration change method in non-shared database management system
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
US9176881B2 (en) Computer system and storage control method
GB2496807A (en) Computer system, management method thereof and program
US12008241B2 (en) Techniques for collecting and utilizing activity metrics
JP2006277545A (en) Computer system, storage device system, and write processing control method
JP2012014739A (en) Computer system and database management system program
US20080301151A1 (en) Computer system and database management method using the same
JP5261809B2 (en) Computer system and database management system program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060116

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090402

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090428