JP6622273B2 - リソース管理装置、リソース管理方法、及びリソース管理プログラム - Google Patents

リソース管理装置、リソース管理方法、及びリソース管理プログラム Download PDF

Info

Publication number
JP6622273B2
JP6622273B2 JP2017198588A JP2017198588A JP6622273B2 JP 6622273 B2 JP6622273 B2 JP 6622273B2 JP 2017198588 A JP2017198588 A JP 2017198588A JP 2017198588 A JP2017198588 A JP 2017198588A JP 6622273 B2 JP6622273 B2 JP 6622273B2
Authority
JP
Japan
Prior art keywords
resource
abnormality
input
surplus
drive
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.)
Active
Application number
JP2017198588A
Other languages
English (en)
Other versions
JP2019074798A (ja
Inventor
雄太 西原
雄太 西原
渡辺 孝
渡辺  孝
志織 井上
志織 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017198588A priority Critical patent/JP6622273B2/ja
Priority to US16/118,933 priority patent/US10725879B2/en
Publication of JP2019074798A publication Critical patent/JP2019074798A/ja
Application granted granted Critical
Publication of JP6622273B2 publication Critical patent/JP6622273B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/3442Recording 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 planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Description

本発明は、余剰リソースの投入案を決定し、決定した投入案に従って余剰リソースの割当を制御するリソース管理装置等に関する。
IT資源(リソース)管理技術としては、ITリソースの割当を動的に変更し、ITリソースの管理コストを削減するための技術が検討されている。例えば、ストレージシステム全体を仮想化し、性能劣化/障害発生時の業務アプリケーション側の設定変更をさせることなくストレージのリソースを割り当てる技術が知られている(例えば、特許文献1参照)。
特開2005−216151号公報
例えば、複数のストレージデバイス(例えば、ドライブ)を備えるストレージ装置においては、障害(異常)発生時における冗長性を確保するために、故障したドライブと交換するためのスペア(交換用)のドライブを備えておき、いずれかのドライブが故障した場合には、故障したドライブをスペアのドライブと切換えるようにすることが行われている。また、ストレージ装置においては、ピーク時に必要な性能や容量を見越して、物理ボリュームを構成するドライブの数が決められている。
例えば、上記したように、予めスペアのドライブを用意しておけば、ドライブの障害に対処することができる。しかしながら、ドライブを交換する場合においては、スペアのドライブが元のドライブと同等の性能を有しておく必要があり、コストが高くなるという問題がある。
これに対して、複数の性能の異なるドライブを用意することにより、コストを下げることが考えられるが、これらドライブをどのように使用するのかを決定することが重要となる。例えば、或る異常に対処するために或るドライブを使用した後に、別の異常が発生した場合に、最初に使用したドライブの種類によっては、別の異常に対処できない虞もある。
本発明は、上記事情に鑑みなされたものであり、その目的は、複数の異常が発生した場合において対処できる可能性を向上することのできる技術を提供することにある。
上記目的を達成するため、一観点に係るリソース管理装置は、複数の種類の余剰リソースを含む複数のリソースを備えるストレージ装置における異常の対処に用いる、前記余剰リソースの投入案を決定し、決定した投入案に従って前記余剰リソースの割当を制御するリソース管理装置であって、リソース管理装置は、プロセッサ部を備え、プロセッサ部は、ストレージ装置におけるリソースに関わる異常を検出し、異常を検出した場合に、ストレージ装置におけるリソースの運用情報に基づいて、異常を対処することのできる余剰リソースの投入案を1以上算出し、投入案が複数ある場合に、それぞれの投入案を実行する際に残存する余剰リソースによる、異常と同時に発生する可能性のある他の異常に対する対処可能状況に基づいて、異常の対処に用いる投入案を決定する。
本発明によれば、複数の異常が発生した場合において対処できる可能性を向上することができる。
図1は、一実施形態に係る計算機システムの全体構成図である。 図2は、一実施形態に係るストレージ装置のリソースの構成を説明する図である。 図3は、一実施形態に係るプール管理テーブルの構成図である。 図4は、一実施形態に係るRAID Group管理テーブルの構成図である。 図5は、一実施形態に係るボリューム管理テーブルの構成図である。 図6は、一実施形態に係るドライブ管理テーブルの構成図である。 図7は、一実施形態に係るプール監視テーブルの構成図である。 図8は、一実施形態に係るドライブ監視テーブルの構成図である。 図9は、一実施形態に係るドライブ監視履歴テーブルの構成図である。 図10は、一実施形態に係るプール監視履歴テーブルの構成図である。 図11は、一実施形態に係る障害テーブルの構成図である。 図12は、一実施形態に係るRAID Group種別テーブルの構成図である。 図13は、一実施形態に係るドライブ種別テーブルの構成図である。 図14は、一実施形態に係るTier種別テーブルの構成図である。 図15は、一実施形態に係るリソース投入履歴テーブルの構成図である。 図16は、一実施形態に係るページ移動性能一覧テーブルの構成図である。 図17は、一実施形態に係るページ移動性能影響一覧テーブルの構成図である。 図18は、一実施形態に係るリソース投入案一覧テーブルの構成図である。 図19は、一実施形態に係る構成変更時間一覧テーブルの構成図である。 図20は、一実施形態に係る構成変更手段一覧テーブルの構成図である。 図21は、一実施形態に係る性能監視処理のフローチャートである。 図22は、一実施形態に係るドライブ障害監視処理のフローチャートである。 図23は、一実施形態に係るリソース投入処理のフローチャートである。 図24は、一実施形態に係るリソース投入案算出処理のフローチャートである。 図25は、一実施形態に係る組合せ算出処理のフローチャートである。 図26は、一実施形態に係るリソース投入案選択処理のフローチャートである。 図27は、一実施形態に係るリソース割当監視処理のフローチャートである。 図28は、一実施形態に係るリソース回収処理のフローチャートである。 図29は、一実施形態に係るリソース管理処理のフローチャートである。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、プロセッサが行う処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。プロセッサが実行するプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば、不揮発性の可搬型の記憶メディア)であってもよい。
また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAID Group(RAIDグループ)は、複数の物理デバイス(典型的には同種の物理デバイス)で構成され、そのRAID Groupに関連付けられたRAIDレベルに従いデータを記憶する。RAID Groupは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAID Groupのことでよい。
また、以下の説明では、要素の識別情報として、名前が使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られた名前を使用することがある。
図1は、一実施形態に係る計算機システムの全体構成図である。
計算機システム1は、1以上のサーバ10と、ストレージ装置30とを含む。サーバ10と、ストレージ装置30とは、通信ネットワークの一例としてのSAN(Storage Area Network)20を介して接続されている。
サーバ10は、各種処理を実行することが可能であり、処理に伴うストレージ装置30の仮想ボリューム405(図2参照)へのデータの書き込みや、仮想ボリューム405からのデータの読み込みを行う。
ストレージ装置30は、複数のストレージデバイスを含むディスクユニット40と、リソース管理装置の一例としてのストレージコントローラ50とを備える。
ストレージコントローラ50は、ディスクI/F(インターフェース)51と、通信I/F52と、プロセッサ部の一例としてのプロセッサ53と、メモリ54と、入力デバイス55と、出力デバイス56とを備えている。
ディスクI/F51は、ストレージコントローラ50とディスクユニット40との間でのデータの転送の処理を行う。
通信I/F52は、SAN20を介して他の装置(例えば、サーバ10)と通信する。
入力デバイス55は、例えば、マウス、キーボード等であり、ストレージ装置30の管理者からの各種入力を受け付ける。出力デバイス56は、例えば、液晶ディスプレイであり、各種情報を表示出力する。
プロセッサ53は、メモリ54に格納されているプログラムに従って各種処理を実行する。
メモリ54は、例えば、RAM(RANDOM ACCESS MEMORY)であり、プロセッサ53で実行されるプログラムや、各種テーブルや、必要な情報を記憶する。本実施形態では、メモリ54は、監視プログラム61と、リソース管理プログラム65と、リソース割当制御プログラム67と、テーブル群80(テーブル81〜98)とを記憶する。
監視プログラム61は、性能監視処理プログラム62と、ドライブ障害監視処理プログラム63と、リソース割当監視処理プログラム64とを含む。リソース管理プログラム65は、リソース管理処理プログラム66を含む。リソース割当制御プログラム67は、リソース投入処理プログラム68と、リソース回収処理プログラム69と、リソース投入案算出処理プログラム70と、組合せ算出処理プログラム71と、リソース投入案選択処理プログラム72とを含む。なお、プロセッサ53が各プログラムを実行することにより実行される処理については、後述する。
テーブル群80は、プール管理テーブル81と、RAID Group管理テーブル82と、ボリューム管理テーブル83と、ドライブ管理テーブル84と、プール監視テーブル85と、ドライブ監視テーブル86と、ドライブ管理履歴テーブル87と、プール監視履歴テーブル88と、障害テーブル89と、RAID Group種別テーブル90と、ドライブ種別テーブル91と、Tier種別テーブル92と、リソース投入履歴テーブル93と、ページ移動性能一覧テーブル94と、ページ移動性能影響一覧テーブル95と、リソース投入案一覧テーブル96と、構成変更時間一覧テーブル97と、構成変更手段一覧テーブル98とを含む。各テーブルの詳細については後述する。
図2は、一実施形態に係るストレージ装置のリソースの構成を説明する図である。
ストレージコントローラ50は、監視部57と、リソース管理部58と、リソース割当制御部59とを備える。監視部57は、プロセッサ53が監視プログラム61を実行することにより構成される。リソース管理部58は、プロセッサ53がリソース管理プログラム65を実行することにより構成される。リソース割当制御部59は、プロセッサ53がリソース割当制御プログラム67を実行することにより構成される。
ストレージ装置30のディスクユニット40は、複数のドライブ401を備える。ドライブ401は、リソースの一例である。複数のドライブ401は、種類や性能の異なるドライブであってもよい。ドライブ401としては、例えば、HDD(Hard Disk Drive)であってもよく、SSD(Solid State Drive)であってもよい。また、ドライブ401がHDDである場合には、例えば、SAS(Serial Attached SCSI) HDDを含んでもよく、NL−SAS(ニアラインSAS) HDDを含んでもよい。
複数のドライブ401のうちの一部の複数のドライブ401は、ストレージ装置30内での異常に対処するために予備的に用意されている余剰リソースであり、余剰リソース群406として管理されている。本実施形態においては、余剰リソース群406のドライブ401の使用用途は、例えば、ドライブの交換専用といったように特定の用途に限定されていない。
ディスクユニット40においては、複数のドライブ401により、1以上のRAID Group402が構成されている。RAID Group402の記憶領域に基づいて、物理ボリューム403が構成されている。また、物理ボリューム403の記憶領域に基づいて、プール(容量プール)404が構成されている。また、ディスクユニット40においては、サーバ10に対して提供する、すなわち、サーバ10がアクセスする対象となる1以上の仮想ボリューム405を備える。仮想ボリューム405は、その記憶領域が複数のページで管理されている。仮想ボリューム405には、このページを単位として、プール404の記憶領域が割り当てられる。ここで、ドライブ401の記憶領域に基づく、RAID Group402、物理ボリューム403、プール404、仮想ボリューム405もリソースの一例といえる。
次に、テーブル群80に属する各テーブルの構成について詳細に説明する。
図3は、一実施形態に係るプール管理テーブルの構成図である。
プール管理テーブル81は、ストレージ装置30内の各プール404を管理するためのテーブルであり、各プール404に対応する行(レコード)を格納する。プール管理テーブル81の行は、番号(#)81aと、プール名81bと、物理ボリューム名(Tier)81cと、物理容量81dとのフィールドを含む。
番号(#)81aには、プール管理テーブル81における行の番号が格納される。プール名81bには、行に対応するプール404の名前(プール名)が格納される。物理ボリューム名(Tier)81cには、行に対応するプール404の記憶領域を構成する物理ボリュームの名前と、プール404におけるTier(階層)とが格納される。物理容量81dには、行に対応するプール404に対して物理ボリューム名(Tier)81cの物理ボリューム名に対応する物理ボリュームから提供されている記憶領域の物理容量が格納される。
図4は、一実施形態に係るRAID Group管理テーブルの構成図である。
RAID Group管理テーブル82は、ストレージ装置30内の各RAID Group402を管理するためのテーブルであり、各RAID Group402に対応する行(レコード)を格納する。RAID Group管理テーブル82の行は、番号(#)82aと、RAID Group名82bと、ドライブ名82cと、RAID Level82dとのフィールドを含む。
番号(#)82aには、 RAID Group管理テーブル82における行の番号が格納される。RAID Group名82bには、行に対応するRAID Group402の名前(RAID Group名)が格納される。ドライブ名82cには、行に対応するRAID Groupを構成する複数のドライブ401のドライブ名が格納される。RAID Level82dには、行に対応するRAID Group402のRAID Levelが格納される。
図5は、一実施形態に係るボリューム管理テーブルの構成図である。
ボリューム管理テーブル83は、ストレージ装置30内の各ボリューム(物理ボリューム403及び仮想ボリューム405)を管理するためのテーブルであり、各ボリュームに対応する行(レコード)を格納する。ボリューム管理テーブル83の行は、番号(#)83aと、ボリューム名83bと、RAID Group名 or プール名83cと、容量81dとのフィールドを含む。
番号(#)83aには、ボリューム管理テーブル83における行の番号が格納される。ボリューム名83bには、行に対応するボリュームの名前(ボリューム名)が格納される。RAID Group名 or プール名83cには、行に対応するボリュームの記憶領域を構成するRAID Group402又はプール404の名前が格納される。容量83dには、行に対応するボリュームの記憶領域の容量が格納される。
図6は、一実施形態に係るドライブ管理テーブルの構成図である。
ドライブ管理テーブル84は、ストレージ装置30内の各ドライブ401を管理するためのテーブルであり、各ドライブ401に対応する行(レコード)を格納する。ドライブ管理テーブル84の行は、番号(#)84aと、ドライブ名84bと、ドライブタイプ84cと、容量84dと、状態84eと、スピンアップ/ダウン84fとのフィールドを含む。
番号(#)84aには、ドライブ管理テーブル84における行の番号が格納される。ドライブ名84bには、行に対応するドライブの名前(ドライブ名)が格納される。ドライブタイプ84cには、行に対応するドライブ401のドライブタイプが格納される。ドライブタイプとしては、例えば、ドライブ401がSSDである場合には、SSDであり、ドライブ401がSAS HDDである場合には、SASである。容量84dには、行に対応するドライブ401の記憶領域の容量が格納される。状態84eには、行に対応するドライブ401の状態が格納される。ドライブ401の状態としては、例えば、正常であることを示すNORMALと、異常(障害)であることを示すERRORとがある。スピンアップ/ダウン84fには、行に対応するドライブ401がスピンアップされているか、スピンダウンされているかを示す情報が格納される。
図7は、一実施形態に係るプール監視テーブルの構成図である。
プール監視テーブル85は、ストレージ装置30内の各プール404の最新の稼動情報を管理するためのテーブルであり、各プール404に対応する行(レコード)を格納する。プール監視テーブル85の行は、番号(#)85aと、プール名85bと、使用率85cと、割当ボリューム名(率)85dと、しきい値[注意]85eと、しきい値[異常]85fと、容量変動率[短期](間隔)85gとのフィールドを含む。
番号(#)85aには、プール監視テーブル85における行の番号が格納される。プール名85bには、行に対応するプール404のプール名が格納される。使用率85cには、行に対応するプール404の記憶領域についての使用率(稼動情報の一例)が格納される。割当ボリューム名(率)85dには、行に対応するプール404の記憶領域を割り当てたボリュームの名前と、割り当てた割合(率)とが格納される。しきい値[注意]85eには、行に対応するプール404の使用率に関して注意状態(異常の一例)であることを検出するためのしきい値(しきい値[注意])が格納される。しきい値[異常]85fには、行に対応するプール404の使用率に関して異常状態であることを検出するしきい値(しきい値[異常])が格納される。容量変動率[短期](間隔)85gには、行に対応するプール404の使用容量の短期的な変動率と、変動率に対応する間隔とが格納される。例えば、図7の1番の行は、プール01のプール404は、使用率が50%であり、物理ボリューム01に対して記憶領域の100%を割り当てており、しきい値[注意]が80%であり、しきい値[異常]が95%であり、15分間(15min)の容量変動率が0%であることを示している。
図8は、一実施形態に係るドライブ監視テーブルの構成図である。
ドライブ監視テーブル86は、ストレージ装置30内の各ドライブ401の最新の稼動情報を管理するためのテーブルであり、各ドライブ401に対応する行(レコード)を格納する。ドライブ監視テーブル86の行は、番号(#)86aと、ドライブ名86bと、稼働率86cと、しきい値[注意]86dと、しきい値[異常]86eと、稼働率変動率[短期](間隔)86fとのフィールドを含む。
番号(#)86aには、ドライブ監視テーブル86における行の番号が格納される。ドライブ名86bには、行に対応するドライブ401のドライブ名が格納される。稼動率86cには、行に対応するドライブ401の稼動率(稼動情報の一例)が格納される。しきい値[注意]86dには、行に対応するドライブ401の稼動率に関して注意状態(異常の一例)であることを検出するしきい値(しきい値[注意])が格納される。しきい値[異常]86eには、行に対応するドライブ401の稼動率に関して異常状態であることを検出するしきい値(しきい値[異常])が格納される。稼動率変動率[短期](間隔)86fには、行に対応するドライブ401の稼動率の短期的な変動率と、変動率に対応する間隔とが格納される。例えば、図8の1番の行は、ドライブ01のドライブ401は、稼動率が20%であり、しきい値[注意]が60%であり、しきい値[異常]が80%であり、15分間(15min)の稼動率変動率が0%であることを示している。
図9は、一実施形態に係るドライブ監視履歴テーブルの構成図である。
ドライブ監視履歴テーブル87は、ストレージ装置30内の各ドライブ401の過去からの稼動情報の履歴を管理するためのテーブルであり、各ドライブ401の各時点に対応する行(レコード)を格納する。ドライブ監視履歴テーブル87の行は、番号(#)87aと、ドライブ名87bと、時間87cと、稼働率87dとのフィールドを含む。
番号(#)87aには、ドライブ監視履歴テーブル87における行の番号が格納される。ドライブ名87bには、行に対応するドライブ401のドライブ名が格納される。時間87cには、行に対応する時点を示す時間が格納される。稼動率87dcには、行に対応するドライブ401及び時点における稼動率が格納される。
図10は、一実施形態に係るプール監視履歴テーブルの構成図である。
プール監視履歴テーブル88は、ストレージ装置30内の各プール404の過去からの稼動情報の履歴を管理するためのテーブルであり、各プール404の各時点に対応する行(レコード)を格納する。プール監視履歴テーブル88の行は、番号(#)88aと、プール名88bと、時間88cと、使用率88dと、割当ボリューム(率)88eとのフィールドを含む。
番号(#)88aには、プール監視履歴テーブル88における行の番号が格納される。プール名88bには、行に対応するプール404のプール名が格納される。時間88cには、行に対応する時点を示す時間が格納される。使用率88dには、行に対応するプール404及び時点における使用率が格納される。割当ボリューム(率)88eには、行に対応するプール404の記憶領域を割り当てたボリュームの名前と、割り当てた割合(率)とが格納される。
図11は、一実施形態に係る障害テーブルの構成図である。
障害テーブル89は、ストレージ装置30内で発生する障害(異常)を管理するためのテーブルであり、障害種別及び障害部位に対応する行(レコード)を格納する。障害テーブル89の行は、番号(#)89aと、障害種別89bと、障害部位89cと、同時発生する障害89dとのフィールドを含む。
番号(#)89aには、障害テーブル89における行の番号が格納される。障害種別98bには、行に対応する障害種別が格納される。本実施形態においては、障害種別としては、例えば、アクセス速度等が低い等といった性能不足、プール404の記憶容量が枯渇している容量枯渇、ドライブに障害が発生しているドライブ障害等がある。障害部位89cには、行に対応する障害が発生している部位(障害部位)が格納される。同時発生する障害89dには、行に対応する障害種別及び障害部位が示す障害と同時に発生する可能性がある1以上の障害の情報が格納される。ここで、障害種別及び障害部位が示す障害と同時に発生する障害とは、障害種別及び障害部位が示す障害が発生した後において、その障害と並行して発生する可能性のある他の障害である。障害の情報は、例えば、同時に発生する他の障害に対応する障害テーブル89における行の番号と、その障害の障害部位が複数存在する場合において障害が発生する確率との組を含んでもよい。なお、本実施形態では、同時発生する障害89dにおいて、他の障害が選択的に発生する場合については、それぞれの障害情報をorでつないで格納するようにしている。
例えば、図11の3番の行は、プール01のプール404についての容量枯渇という障害については、同時発生する他の障害として、障害テーブル89の1行目の障害(確率1/1)又は2行目の障害(確率1/1)と、4行目の障害(確率1/1)と、5行目の障害(確率1/16)と、6行目の障害(確率1/16)とがあることを示している。
図12は、一実施形態に係るRAID Group種別テーブルの構成図である。
RAID Group種別テーブル90は、ストレージ装置30内で作成できるRAID Groupの構成の一覧を示すテーブルであり、各RAID Levelに対応する行(レコード)を格納する。RAID Group種別テーブル90の行は、番号(#)90aと、RAID Level90bと、信頼性評価値90cと、性能評価値90dとのフィールドを含む。
番号90aには、RAID Group種別テーブル90における行の番号が格納される。RAID Level90bには、行に対応するRAID Levelが格納される。信頼性評価値90cには、行に対応するRAID LevelのRAID Groupについての信頼性の評価値(信頼性評価値)が格納される。本実施形態では、信頼性評価値が高いほど、信頼性が高い構成であることを示している。性能評価値90dには、行に対応するRAID LevelのRAID Groupについての性能の評価値(性能評価値)が格納される。本実施形態では、性能評価値が高いほど、性能が高い構成であることを示している。
図13は、一実施形態に係るドライブ種別テーブルの構成図である。
ドライブ種別テーブル91は、ストレージ装置30に搭載可能なドライブ種別の一覧を示すテーブルであり、各ドライブ種別(ドライブタイプ)に対応する行(レコード)を格納する。ドライブ種別テーブル91の行は、番号(#)91aと、ドライブタイプ(容量)91bと、スペアドライブタイプ(容量)91cと、性能評価値91dと、性能比91eとのフィールドを含む。
番号91aには、ドライブ種別テーブル91における行の番号が格納される。ドライブタイプ(容量)91bには、行に対応するドライブタイプ及びドライブの容量が格納される。スペアドライブタイプ(容量)91cには、行に対応するドライブタイプのドライブに障害が発生した際に、スペアドライブ(データ移動先のドライブ)として利用可能なドライブタイプ及びドライブの容量が格納される。なお、スペアドライブとして利用可能なドライブタイプが複数ある場合には、スペアドライブタイプ(容量)91cには、複数のドライブタイプが格納される。性能評価値91dには、行に対応するドライブタイプのドライブの性能評価値が格納される。本実施形態では、性能評価値が高いほど、性能が高いドライブであることを示している。性能比91eには、NL−SASのHDDの性能を1とした場合における、行に対応するドライブタイプのドライブの性能を示す値(すなわち、性能比)が格納される。
図14は、一実施形態に係るTier種別テーブルの構成図である。
Tier種別テーブル92は、ストレージ装置30内で構成可能なプール404のTier構成の一覧を示すテーブルであり、各Tier構成に対応する行(レコード)を格納する。Tier種別テーブル92の行は、番号(#)92aと、Tier92bと、ドライブタイプ92cとのフィールドを含む。
番号92aには、Tier種別テーブル92における行の番号が格納される。Tier92bには、行に対応するTier構成を示す1以上のTier名が格納される。ドライブタイプ92cには、行に対応するTier構成の各Tierを構成することのできるドライブのタイプが格納される。例えば、図14の8番の行は、Tier1とTier2とによりTierを構成することができ、Tier1は、SSDで構成することができ、Tier2は、SAS HDDで構成することができることを示している。
図15は、一実施形態に係るリソース投入履歴テーブルの構成図である。
リソース投入履歴テーブル93は、ストレージ装置30における障害を解消するためのリソース投入の履歴を管理するためのテーブルであり、各リソース投入に対応する行(レコード)を格納する。リソース投入履歴テーブル93の行は、番号(#)93aと、投入時間93bと、回収時間93cと、障害部位93dと、障害種別93eと、投入リソース93fとのフィールドを含む。
番号93aには、リソース投入履歴テーブル93における行の番号が格納される。投入時間93bには、行に対応するリソース投入を行った時間(例えば、年/月/日 時:分)が格納される。回収時間93cには、行に対応するリソース投入を行ったリソースの回収を行った時間が格納される。なお、まだリソースが回収されていない場合には、回収時間93cは、空白となっている。障害部位93dには、行に対応するリソース投入を行うこととなった障害部位が格納される。障害種別93eには、行に対応するリソース投入の原因となった障害の種別が格納される。投入リソース93fには、行に対応するリソース投入において、投入したリソースが格納される。
例えば、図15の1番の行は、プール01の性能不足という障害に対して、ドライブ13〜18によりRAID5(5D+1P)のRAID Group03を作成し、このRAID Group03の記憶領域により物理ボリューム03(容量500GB)を作成し、この物理ボリューム03をプール01のTier1に追加するように割り当てるリソース投入が、2017/01/01 12:00に行われ、投入されたリソースはまだ回収されていないことを示している。
図16は、一実施形態に係るページ移動性能一覧テーブルの構成図である。
ページ移動性能一覧テーブル94は、ストレージ装置30でのページ移動時の性能(ページ移動性能)を管理するためのテーブルであり、ページ移動性能に対応する行(レコード)を格納する。ページ移動性能一覧テーブル94の行は、番号(#)94aと、速度種別94bと、速度94cとのフィールドを含む。
番号94aには、ページ移動性能一覧テーブル94における行の番号が格納される。速度種別94bには、行に対応するページ移動性能に対応する速度種別が格納される。速度94cには、行に対応するページ移動性能における転送速度が格納される。
図17は、一実施形態に係るページ移動性能影響一覧テーブルの構成図である。
ページ移動性能影響一覧テーブル95は、ストレージ装置30でのページ移動を行った際の負荷(ここでは、稼働率)の増加量を管理するためのテーブルであり、ページ移動を行うRAID Groupの構成毎に対応する行(レコード)を格納する。ページ移動性能影響一覧テーブル95の行は、番号(#)95aと、RAID Level95bと、ドライブタイプ95cと、低速時の負荷[移動先/移動元]95dとのフィールドを含む。
番号95aには、ページ移動性能影響一覧テーブル95における行の番号が格納される。RAID Level95bとには、行に対応するRAID GroupのRAID Levelが格納される。ドライブタイプ95cには、行に対応するRAID Groupを構成するドライブのタイプが格納される。低速時の負荷[移動先/移動元]95dには、行に対応するRAID Groupの構成において、低速でのページ移動を行った際の移動先のドライブ及び移動元のドライブにおける負荷の増加量(稼動率の増加量)が格納される。
図18は、一実施形態に係るリソース投入案一覧テーブルの構成図である。
リソース投入案一覧テーブル96は、ストレージ装置30における異常を解消(解決)するために算出されたリソース投入案を管理するテーブルであり、各リソース投入案に対応する行(レコード)を格納する。リソース投入案一覧テーブル96は、例えば、対象とする異常毎に備えられる。リソース投入案一覧テーブル96の行は、番号(#)96aと、評価値96bと、障害#(番号)96cと、追加ボリューム(容量)96dと、追加RAID Group96eと、追加ドライブ96fと、構成変更96gとのフィールドを含む。
番号96aには、リソース投入案一覧テーブル96における行の番号が格納される。評価値96bには、行に対応するリソース投入案に対する評価値が格納される。本実施形態では、評価値96bには、例えば、物理ボリュームに係る障害の発生時に、物理ボリュームを追加するリソース投入案であれば、追加する物理ボリュームの信頼性評価値が障害に係る物理ボリュームと同等であり、性能評価値が同等以上である場合には、「1」が設定され、信頼性評価値が障害に係る物理ボリュームと同等であり、性能評価値が同等未満である場合には、「2」が設定される。本実施形態では、評価値96bに設定される評価値は、小さいほど評価が高いことを示している。障害#(番号)96cには、行に対応するリソース投入案が解消する障害種別に対応する番号(障害種別に対応する障害テーブル89における行の番号)が格納される。追加ボリューム(容量)96dには、行に対応するリソース投入案により追加されるボリュームのボリューム名と、追加される容量が格納される。追加RAID Group96eには、行に対応するリソース投入案により追加されるRAID GroupのRAID Levelが格納される。追加ドライブ96fには、行に対応するリソース投入案で追加されるドライブのタイプ及び個数が格納される。構成変更96gには、この行に対応するリソース投入案による変更される構成の内容が格納される。
図19は、一実施形態に係る構成変更時間一覧テーブルの構成図である。
構成変更時間一覧テーブル97は、ストレージ装置30での構成変更を行った際に要する時間を管理するためのテーブルであり、構成変更の内容毎に対応する行(レコード)を格納する。構成変更時間一覧テーブル97の行は、番号(#)97aと、構成変更97bと、時間97cとのフィールドを含む。
番号97aには、構成変更時間一覧テーブル97における行の番号が格納される。構成変更97bには、この行に対応する構成変更の内容が格納される。時間97cには、この行に対応する構成変更に要する時間(分(min))が格納される。
図20は、一実施形態に係る構成変更手段一覧テーブルの構成図である。
構成変更手段一覧テーブル98は、ストレージ装置30での構成変更を行う手段を管理するためのテーブルであり、構成変更を行う手段毎に対応する行(レコード)を格納する。構成変更手段一覧テーブル98の行は、番号(#)98aと、障害種別98bと、手段98cと、構成変更98dとのフィールドを含む。
番号98aには、構成変更手段一覧テーブル98における行の番号が格納される。障害種別98bには、この行に対応する構成変更を行う手段により解消される障害種別が格納される。手段98cには、この行に対応する手段が格納される。構成変更98bには、この行に対応する構成変更を行う手段による構成変更の内容が格納される。
次に、一実施形態に係るストレージ装置30における処理動作について説明する。
図21は、一実施形態に係る性能監視処理のフローチャートである。
性能監視処理は、プロセッサ53が性能監視処理プログラム62を実行することにより行われる。この性能監視処理は、例えば、ストレージ装置30の電源がONとなった後に実行が開始され、継続して実行される。
まず、プロセッサ53は、ストレージ装置30の稼動情報(各ドライブ404の稼動率、及び各プール404の使用率)を取得する(ステップS11)。
次いで、プロセッサ53は、取得した稼動率と、使用率とに基づいて、監視履歴テーブル(ドライブ監視履歴テーブル87及びプール監視履歴テーブル88)を更新する(ステップS12)。
次いで、プロセッサ53は、以下の式(1)により稼動情報についての変動率[短期]h(容量変動率[短期]及び稼動率変動率[短期])を算出する(ステップS13)。
h=1+(d(1)−d(T/t))/d(T/t) ・・・(1)
ここで、Tは、変動率[短期]を算出する周期(間隔)であり、tは、稼動情報の取得間隔である。また、d(n)は、時点nの稼動情報を示し、n=1は、稼動情報を取得した最新の時点を示し、n=2,3,・・・は、稼動情報を取得した1周期前の時点,2周期前の時点,・・・を示している。したがって、d(T/t)は、変動率[短期]の算出周期の1周期前の時点における稼動情報を示している。
次いで、プロセッサ53は、ステップS11で取得した稼動情報と、ステップS13で算出した変動率[短期](容量変動率[短期]及び稼動率変動率[短期])とに基づいて、監視テーブル(プール監視テーブル85及びドライブ監視テーブル86)を更新する(ステップS14)。具体的には、プロセッサ53は、プール監視テーブル85における各プールに対応する行における使用率85cの値をステップS11で取得した使用率に更新するとともに、容量変動率[短期](間隔)85gの値をステップS13で算出した容量変動率[短期]及びその間隔に更新し、また、ドライブ監視テーブル86における各ドライブに対応する行における稼動率86cの値をステップS11で取得した稼動率に更新するとともに、稼働率変動率[短期](間隔)86fの値をステップS13で算出した稼動率変動率[短期]及びその間隔に更新する。
次いで、プロセッサ53は、プール監視テーブル85及びドライブ監視テーブル86の各行を対象にステップS15の処理を行う。まず、プロセッサ53は、対象とするレコードの稼動情報(使用率又は稼動率)がその行のしきい値[注意]の値を超過しているか否かを判定し(ステップS15)、稼動情報がしきい値[注意]を超過している場合(ステップS15:YES)には、異常が発生していることを意味しているので、異常を解消するためにリソースを投入するリソース投入処理(ステップS16:図23参照)を実行させ、稼動情報がしきい値[注意]を超過していない場合(ステップS15:NO)には、何もしない。
そして、プール監視テーブル85及びドライブ監視テーブル86の各行を対象にステップS15以降の処理を行った後に、プロセッサ53は、次監視周期まで処理を停止し(ステップS17)、その後、処理をステップS11に進める。
図22は、一実施形態に係るドライブ障害監視処理のフローチャートである。
ドライブ障害監視処理は、プロセッサ53がドライブ障害監視処理プログラム63を実行することにより行われる。このドライブ障害監視処理は、例えば、ストレージ装置30の電源がONとなった後に実行が開始され、継続して実行される。
まず、プロセッサ53は、ストレージ装置30の各ドライブ401の状態の情報(ドライブ情報)を取得する(ステップS21)。ここで、ドライブ情報とは、例えば、ドライブ401が通常動作している状態(NORMAL)であるか、障害が発生している状態(ERROR)であるかの情報である。
次いで、プロセッサ53は、取得したドライブ情報に基づいて、ドライブ管理テーブル84を更新する(ステップS22)。具体的には、プロセッサ53は、ドライブ管理テーブル84の各ドライブ401の行の状態84eの値を取得した各ドライブ401のドライブ情報の値に更新する。
次いで、プロセッサ53は、ドライブ管理テーブル84の各行を対象にステップS23の処理を行う。まず、プロセッサ53は、行に対応するドライブにドライブ障害が発生しているか否かを判定する(ステップS23)。具体的には、プロセッサ53は、行の状態84eがERRORであるか否かに基づいて、ドライブ401にドライブ障害が発生しているか否かを判定する。
この結果、ドライブ障害が発生している場合(ステップS23:YES)には、プロセッサは、ドライブ障害を解消するためにリソースを投入するリソース投入処理(ステップS16:図23参照)を実行させ、ドライブ障害が発生していない場合(ステップS23:NO)には、何もしない。
そして、ドライブ管理テーブル84の各行を対象にステップS23からの処理を行った後に、プロセッサ53は、次監視周期まで処理を停止し(ステップS24)、その後、処理をステップS21に進める。
図23は、一実施形態に係るリソース投入処理のフローチャートである。
リソース投入処理は、プロセッサ53がリソース投入処理プログラム68を実行することにより行われる。このリソース投入処理は、図21の性能監視処理及び図22のドライブ障害監視処理のステップS16で実行される処理である。
プロセッサ53は、障害がドライブ障害(ドライブ401のハードウェアの障害)であるか否かを判定する(ステップS31)。ここで、このリソース投入処理がドライブ障害監視処理において実行された場合には、ドライブ障害であると判定される。
この結果、障害がドライブ障害である場合(ステップS31:YES)には、プロセッサ53は、障害に対処するまでの猶予時間をドライブ障害時の所定の時間(本実施形態では、例えば、0.1(min))とし(ステップS32)、この障害に対処するためのリソース投入案を算出するリソース投入案算出処理(ステップS35:図24参照)の実行を開始させる。
一方、障害がドライブ障害でない場合(ステップS31:NO)には、プロセッサ53は、ループAの処理(ステップS33)を実行する。ループAでは、各変数nの値を1から1ずつ増加させて、各変数を対象にステップS33の処理を実行する。
具体的には、プロセッサ53は、0>S−F(n)であるか否かを判定する(ステップS33)。
ここで、Sは、障害が発生しているリソースのしきい値[異常]であり、例えば、プール404の障害に対する処理であれば、プール監視テーブル85の障害が検出されたプール404の行におけるしきい値[異常]85fの値であり、例えば、ドライブ401の障害(稼動率に対する障害)に対する処理であれば、ドライブ監視テーブル86の障害が検出されたドライブ401の行におけるしきい値[異常]86eの値である。また、F(n)=d(1)×hであり、例えば、F(1)=d(1)×h、F(2)=d(1)×h×h,F(3)=d(1)×h×h×hである。F(n)は、n周期(周期は、変動率[短期]の演算周期)後における稼動情報の推定値を示している。
したがって、0>S−F(n)であるか否かの判定は、n周期後の稼動情報の値が、しきい値[異常]の値を超えているか否かを判定していることを意味している。
この結果、0>S−F(n)である場合(ステップS33:YES)には、稼動情報がしきい値[異常]の値を超えていることを意味しているので、プロセッサ53は、ループAの処理を抜けて処理をステップS34に進める。一方、0>S−F(n)でない場合(ステップS33:NO)には、稼動情報がしきい値[異常]を超えていないことを意味しているので、プロセッサ53は、ループAの処理を継続して実行する。このループAの処理によると、しきい値[異常]を超えるまでの周期を適切に検出することができる。
ステップS34では、プロセッサ53は、n×Tを猶予時間とし、その後、この障害に対処するためのリソース投入案を算出するリソース投入案算出処理(ステップS35:図24参照)の実行を開始させる。
リソース投入案算出処理が終了した後に、プロセッサ53は、ステップS35で算出されたリソース投入案から実際に実行するリソース投入案を選択するリソース投入案選択処理(ステップS36:図26参照)の実行を開始させる。
リソース投入案選択処理が終了した後に、プロセッサ53は、選択したリソース投入案によるストレージ装置50の構成変更が反映されるように、管理テーブル(プール管理テーブル81、RAID Group管理テーブル82、ボリューム管理テーブル83、ドライブ管理テーブル84の少なくともいずれか1つのテーブル)を更新し(ステップS37)、選択したリソース投入案の構成変更を実施する(ステップS38)。この後、プロセッサ53は、リソース投入履歴テーブル93に実施したリソース投入案に対応する行を追加する更新を行い(ステップS39)、リソース投入処理を終了する。
図24は、一実施形態に係るリソース投入案算出処理のフローチャートである。
リソース投入案算出処理は、プロセッサ53がリソース投入案算出処理プログラム70を実行することにより行われる。このリソース投入案算出処理は、図23のリソース投入処理のステップS35で実行される処理である。
プロセッサ53は、障害がドライブ障害であるか否かを判定する(ステップS41)。
この結果、障害がドライブ障害でない場合(ステップS41:NO)には、プロセッサ53は、障害種別が容量枯渇か否かを判定する(ステップS42)。
この結果、障害種別が容量枯渇である場合(ステップS42:Yes)には、プロセッサ53は、障害が発生している物理ボリューム(以下、本処理の説明において該当物理ボリュームという)と、同等の信頼性評価値及び同等以上の性能評価値となり、且つ、同一Tierに追加することのできる物理ボリュームについての、RAID Group、ドライブ、及び構成変更手段の組み合わせを算出するために組合せ算出処理(ステップS43:図25参照)を実行させる。
組合せ算出処理の実行後に、プロセッサ53は、追加する物理ボリュームに必要な容量を算出する(ステップS44)。具体的には、プロセッサ53は、以下の式(2)により、必要な容量を算出する。
必要な容量[GB]=F(x)×物理容量[GB]−d(1)×物理容量[GB] ・・・(2)
ここで、xは、予め設定されている定数であり、例えば、容量により余裕を持たせる場合には、xの値を大きくすればよい。
次いで、プロセッサ53は、構成変更時間一覧テーブル97を参照し、ステップS43で算出された各組み合わせの構成変更に必要な時間を算出する(ステップS45)。
次いで、プロセッサ53は、ステップS43で算出された各組み合わせの中から、追加する容量[GB]が必要な容量[GB]よりも多く、且つ、構成変更に必要な時間が猶予時間未満である組み合わせをリソース投入案として抽出し(ステップS46)、新たなリソース投入案一覧テーブル96を作成し、このリソース投入案一覧テーブル96に、抽出したリソース投入案に対応する行を追加する(ステップS47)。
次いで、プロセッサ53は、該当物理ボリュームと、同等の信頼性評価値となり、且つ、下位のTierに追加することのできる物理ボリュームについての、RAID Group、ドライブ、及び構成変更手段の組み合わせを算出するために組合せ算出処理(ステップS48:図25参照)を実行させる。
組合せ算出処理の実行後に、プロセッサ53は、該当物理ボリュームから追加する物理ボリュームに対するページ移動に伴う通信量の増加量を算出する(ステップS49)。具体的には、プロセッサ53は、以下の式(3)により、増加量を算出する。
増加量[Mbps]=(物理容量[GB]×F(1)−物理容量[GB]×d(1))×1024×8)÷(T×60) ・・・(3)
次いで、プロセッサ53は、構成変更時間一覧テーブル97を参照し、ステップS48で算出された各組み合わせの構成変更に必要な時間を算出する(ステップS50)。
次いで、プロセッサ53は、ステップS48で算出された各組み合わせの中から、プール(追加する物理ボリューム)を構成するドライブの稼動率と、ページ移動性能影響一覧テーブル95から取得されるページ移動時の負荷とを加算した値が、しきい値[注意]よりも小さく、増加量[Mbps]がページ移動速度(ページ移動性能一覧テーブル94の行の速度94cの値)よりも小さく、追加する容量[GB]が必要な容量[GB]よりも多く、且つ、構成変更に必要な時間が猶予時間未満である組み合わせをリソース投入案として抽出し(ステップS51)、処理をステップS62に進める。
一方、ステップS42において、障害種別が容量枯渇でない場合(ステップS42:NO)には、障害種別が性能低下であることを示しているので、プロセッサ53は、該当物理ボリュームと、同等の信頼性評価値及び同等以上の性能評価値となり、且つ、同一Tierに追加することのできる物理ボリュームについての、RAID Group、ドライブ、及び構成変更手段の組み合わせを算出するために組合せ算出処理(ステップS52:図25参照)を実行させる。
組合せ算出処理の実行後に、プロセッサ53は、構成変更時間一覧テーブル97を参照し、ステップS52で算出された各組み合わせの構成変更に必要な時間を算出する(ステップS53)。
次いで、プロセッサ53は、ステップS52で算出された各組み合わせの中から、ドライブを該当物理ボリュームと同一のTierに追加した場合に想定される稼動率(想定稼動率)が、しきい値[注意]よりも小さくなり、且つ、構成変更に必要な時間が猶予時間未満である組み合わせをリソース投入案として抽出する(ステップS54)。
ここで、推定稼動率は、例えば、以下の式(4)により算出することができる。
推定稼動率=(F(x)×該当物理ボリュームが所属するTierのドライブ数)÷(該当物理ボリュームが所属するTierのドライブ数+組み合わせでの追加するドライブ数) ・・・(4)
次いで、プロセッサ53は、新たなリソース投入案一覧テーブル96を作成し、このリソース投入案一覧テーブル96に、ステップS54で抽出したリソース投入案に対応する行を追加する(ステップS55)。
次いで、プロセッサ53は、該当物理ボリュームと、同等の信頼性評価値及び同等以上の性能評価値となり、且つ、上位のTierに追加することのできる物理ボリュームについての、RAID Group、ドライブ、及び構成変更手段の組み合わせを算出するために組合せ算出処理(ステップS56:図25参照)を実行させる。
次いで、プロセッサ53は、構成変更時間一覧テーブル97を参照し、ステップS56で算出された各組み合わせの構成変更に必要な時間を算出する(ステップS57)。
次いで、プロセッサ53は、ステップS56で算出された各組み合わせの中から、ドライブを該当物理ボリュームの上位のTierに追加した場合に想定される稼動率(上位Tier想定稼動率)が、しきい値[注意]よりも小さくなり、且つ、構成変更に必要な時間が猶予時間未満である組み合わせをリソース投入案として抽出し(ステップS58)、処理をステップS62に進める。
ここで、上位Tier推定稼動率は、例えば、以下の式(5)により算出することができる。
上位Tier推定稼動率=(F(x)×該当物理ボリュームが所属するTierのドライブ数×該当物理ボリュームのドライブの性能比)÷((該当物理ボリュームが所属するTierの上位のtierのドライブ数+組み合わせでの追加するドライブ数)×追加する物理ボリュームのドライブの性能比) ・・・(5)
なお、物理ボリュームのドライブの性能比は、ドライブ種別テーブル91のドライブに対応する行の性能比91eの値から取得することができる。
一方、ステップS41で、障害がドライブ障害である場合(ステップS41:YES)と判定された場合には、プロセッサ53は、障害が発生したドライブのスペアドライブとして利用可能な1以上のドライブ(リソース投入案に相当)を算出し(ステップS59)、障害が発生したドライブをスペアドライブと交換するための構成変更に必要な時間を算出し(ステップS60)、構成変更に必要な時間が猶予時間未満となるようなリソース投入案を抽出し(ステップS61)、処理をステップS62に進める。
ステップS62では、プロセッサ53は、リソース投入案一覧テーブル96に、直前のステップ(ステップS51,S58,又はS61)で抽出したリソース投入案に対応する行を追加する。なお、ステップS61を経由している場合には、プロセッサ53は、新たにリソース投入案一覧テーブル96を作成する。
このリソース投入案算出処理によると、障害の解消に実施できるリソース投入案(複数あれば、複数のリソース投入案)に対応する行がリソース投入案一覧テーブル96に格納されることとなる。
図25は、一実施形態に係る組合せ算出処理のフローチャートである。
組合せ算出処理は、プロセッサ53が組合せ算出処理プログラム71を実行することにより行われる。この組合せ算出処理は、図24のリソース投入案算出処理のステップS43,S48,S52,S56で実行される処理である。
プロセッサ53は、ドライブ管理テーブル84の中の状態84eの値がNORMALである行に対応するドライブ401であって、RAID Groupに所属していないドライブ401を特定し、このドライブ401を余剰リソースとして把握する(ステップS71)。ドライブ401がRAID Groupに所属しているか否かは、RAID Group管理テーブル82の各行のドライブ名82cとしてドライブ名が設定されているか否かによって特定することができる。
次いで、プロセッサ53は、RAID Group管理テーブル82、ボリューム管理テーブル83、及びドライブ管理テーブル84を参照して、該当物理ボリューム(組合せ算出処理を実行させたリソース投入案算出処理における該当物理ボリューム)のRAID Level、ドライブタイプを取得する。また、プロセッサ53は、RAID Group種別テーブル90を参照し、取得したRAID Levelについての信頼性評価値及び性能評価値を取得する。また、プロセッサ53は、ドライブ種別テーブル91を参照して、取得したドライブタイプのドライブについての性能評価値を取得する(ステップS72)。
次いで、プロセッサ53は、RAID Group種別テーブル90を参照して、取得したRAID Levelの信頼性評価値と、同等の信頼性評価値となるRAID Level(同信頼性RAID Level)を取得する(ステップS73)。
次いで、プロセッサ53は、把握した余剰リソースによって構成可能な同信頼性RAID LevelのRAID Groupの組合せを算出する(ステップS74)。
ここで、例えば、同等な信頼性評価となるRAID LevelがRAID5(2D+1P)、RAID5(3D+1P)であり、余剰リソースが、SSDが8本、SASが3本である場合には、算出される組合せは、例えば、以下に示す9通りとなる。
・SSD:RAID5(2D+1P)×1
・SSD:RAID5(3D+1P)×1
・SAS:RAID5(2D+1P)×1
・SSD:RAID5(2D+1P)×2
・SSD:RAID5(3D+1P)×2
・SSD:RAID5(2D+1P)×1、SSD:RAID5(3D+1P)×1
・SSD:RAID5(2D+1P)×2、SAS:RAID5(2D+1P)×1
・SSD:RAID5(3D+1P)×2、SAS:RAID5(2D+1P)×1
・SSD:RAID5(2D+1P)×1、SSD:RAID5(3D+1P)×1、SAS:RAID5(2D+1P)×1
次いで、プロセッサ53は、組合せとして算出するRAID Groupの組合せに、同等以上の性能評価値が必要であるか否かを判定する(ステップS75)。同等以上の性能評価値が必要であるか否かについては、リソース投入案算出処理での組合せ算出処理による算出対象の組合せに基づいて決定することができる。例えば、ステップS43での組合せ算出処理であれば、同等以上の性能評価値が必要であると判定される。
この結果、組合せとして算出するRAID Groupの組合せに、同等以上の性能評価値が必要である場合(ステップS75:YES)には、プロセッサ53は、ステップS74で算出した組合せから、同等未満の性能評価値となるRAID Groupを含む組合せを除外し(ステップS76)、処理をステップS77に進める一方、組合せとして算出するRAID Groupの組合せに、同等以上の性能評価値が必要でない場合(ステップS75:NO)には、処理をステップS77に進める。
ステップS77では、プロセッサ53は、組合せとして算出するRAID Groupの組合せに、下位のTierに追加する物理ボリュームが必要であるか否かを判定する。下位のTierに追加する物理ボリュームが必要であるか否かについては、リソース投入案算出処理での組合せ算出処理による算出対象の組合せに基づいて決定することができる。
この結果、組合せとして算出するRAID Groupの組合せに、下位のTierに追加する物理ボリュームが必要である場合(ステップS77:YES)には、プロセッサ53は、現在の組合せ(ステップS74で算出された組合せ、又はステップS76が実行された場合には、ステップS76の実行後の組合せ)の中から、下位のTierに追加できるRAID Groupの組合せを抽出し(ステップS78)、処理をステップS79に進める一方、組合せとして算出するRAID Groupの組合せに、下位のTierに追加する物理ボリュームが必要でない場合(ステップS77:NO)には、処理をステップS79に進める。
ステップS79では、プロセッサ53は、組合せとして算出するRAID Groupの組合せに、上位のTierに追加する物理ボリュームが必要であるか否かを判定する。上位のTierに追加する物理ボリュームが必要であるか否かについては、リソース投入案算出処理での組合せ算出処理による算出対象の組合せに基づいて決定することができる。
この結果、組合せとして算出するRAID Groupの組合せに、上位のTierに追加する物理ボリュームが必要である場合(ステップS79:YES)には、プロセッサ53は、現在の組合せ(ステップS74で算出された組合せ、又はステップS76が実行された場合には、ステップS76の実行後の組合せ)の中から、上位のTierに追加できるRAID Groupの組合せを抽出し(ステップS80)、処理をステップS81に進める一方、組合せとして算出するRAID Groupの組合せに、上位のTierに追加する物理ボリュームが必要でない場合(ステップS79:NO)には、処理をステップS81に進める。
ステップS81では、プロセッサ53は、組合せとして算出するRAID Groupの組合せに、同一のTierに追加する物理ボリュームが必要であるか否かを判定する。同一のTierに追加する物理ボリュームが必要であるか否かについては、リソース投入案算出処理のステップにおける組合せ算出処理による算出対象の組合せに基づいて決定することができる。
この結果、組合せとして算出するRAID Groupの組合せに、同一のTierに追加する物理ボリュームが必要である場合(ステップS81:YES)には、プロセッサ53は、現在の組合せ(ステップS74で算出された組合せ、又はステップS76が実行された場合には、ステップS76の実行後の組合せ)の中から、同一のTierに追加できるRAID Groupの組合せを抽出し(ステップS82)、抽出したRAID Groupの組合せを組合せ算出処理に返して処理を終了させる一方、組合せとして算出するRAID Groupの組合せに、同一のTierに追加する物理ボリュームが必要でない場合(ステップS81:NO)には、抽出したRAID Groupの組合せを組合せ算出処理に返して処理を終了させる。
図26は、一実施形態に係るリソース投入案選択処理のフローチャートである。
リソース投入案選択処理は、プロセッサ53がリソース投入案選択処理プログラム72を実行することにより行われる。このリソース投入案選択処理は、図23のリソース投入処理のステップS36で実行される処理である。
プロセッサ53は、ループBの処理(ステップS91,S92)を実行する。ループBでは、変数nの値を1から同時に発生する可能性のある障害の数となるまで1ずつ加算して、各変数nの値を用いてステップS91,S92の処理を実行する。
ループBでは、まず、プロセッサ53は、E(n)を算出するために使用する値を設定する(ステップS91)。ここで、E(n)は、現在発生している障害(発生障害)と同時に発生するn番目の障害に対応するリソース投入案一覧テーブル96である。nは、障害テーブル89の発生障害に対応する行の同時に発生する障害89dに登録されている順番をiとし、iの確率をk(i)、iの障害部位の数をc(i)とした場合、n=CEIL(k(1)×c(1))+CEIL(k(2)×c(2))+・・・+CEIL(k(i)×c(i))に対応する。CEILは、小数点以下を切り捨てる関数とする。現在発生している障害(発生障害)と同時に発生する障害の数Nは、障害テーブル89の発生障害に対応する行の同時に発生する障害89dに登録されている障害の数をIとした場合、N=CEIL(k(1)×c(1))+CEIL(k(2)×c(2))+・・・+CEIL(k(I)×c(I))となる。
E(n)を算出するために使用する値として、稼働率又は使用容量をそれに対応するしきい値[注意]に設定し、変動率[短期]を過去に計測した最大の変動率[短期]に設定し、猶予時間を、過去に計測した最大の変動率[短期]としきい値[注意]とに基づいて算出される値に設定する。
次いで、プロセッサ53は、ステップS91において設定した値を用いて、リソース投入案算出処理(図24参照)を実行する(ステップS92)。このステップS92の処理によると、発生障害と同時に発生する可能性のある障害が発生した際のリソース投入案を含むリソース投入案一覧テーブル96が作成される。
そして、変数nを同時に発生する障害の数として、ステップS91及びステップS92を行った場合には、プロセッサ53は、ループBを抜ける。
次いで、プロセッサ53は、ループCの処理(ステップS93〜S96)を実行する。ループCでは各変数xの値を1からx_maxまで1ずつ加算して、各変数xの値を用いて、ステップ93〜S96の処理を実行する。ここで、x_maxは、発生障害に対応するリソース投入案一覧テーブル96の行の番号の最大値である。
ループCでは、設定された変数xについて、プロセッサ53は、E(0)[x]で使用するドライブ401が使用されたと仮定する(ステップS93)。ここで、E(0)は、発生障害に対応するリソース投入案一覧テーブル96を示し、E(0)[x]は、発生障害に対応するリソース投入案一覧テーブル96におけるx番目の行を示す。
次いで、プロセッサ53は、発生障害と当時に発生する可能性のあるすべての障害のリソース投入案の組合せ(E(1)[a],E(2)[b],・・・の組合せ)を算出する(ステップS94)。
例えば、発生障害と同時に発生する他の障害についてのリソース投入案として、E(1)[1],E(1)[2],E(2)[1],E(2)[2],E(3)[1],E(3)[2]が存在し、E(2)に対応する障害とE(3)に対応する障害とが同時に発生しない場合には、ステップS94では、以下の16通りの組み合わせが算出される。なお、各リソース投入案の順番は、実行順番を示している。
・E(1)[1],E(2)[1]
・E(1)[1],E(2)[2]
・E(1)[1],E(3)[1]
・E(1)[1],E(3)[2]
・E(1)[2],E(2)[1]
・E(1)[2],E(2)[2]
・E(1)[2],E(3)[1]
・E(1)[2],E(3)[2]
・E(2)[1],E(1)[1]
・E(2)[2],E(1)[1]
・E(3)[1],E(1)[1]
・E(3)[2],E(1)[1]
・E(2)[1],E(1)[2]
・E(2)[2],E(1)[2]
・E(3)[1],E(1)[2]
・E(3)[2],E(1)[2]
次いで、プロセッサ53は、算出された全ての組合せにおいて、使用可能なドライブを使用して解消可能な障害の数(N)を算出する(ステップS95)。
次いで、プロセッサ53は、算出されたNのうちの最も大きな値をE(0)[x]についてのMとする(ステップS96)。ここで、Mは、同時に発生する可能性のある障害の中で解消することのできる最大の数を意味している。このMは、異常と同時に発生する可能性のある他の異常に対する対処可能状況の一例である。
ここで、例えば、ステップS94において算出された組合せが以下の6通りであるとする。
・E(1)[1],E(2)[1],E(3)[1]
・E(1)[1],E(3)[1],E(2)[1]
・E(2)[1],E(1)[1],E(3)[1]
・E(2)[1],E(3)[1],E(1)[1]
・E(3)[1],E(1)[1],E(2)[1]
・E(3)[1],E(2)[1],E(1)[1]
この場合において、E(1)[1]では、SSDを8本使用し、E(2)[1]では、SSDを4本使用し、E(3)[1]では、SSDを4本使用するものとし、余剰リソースとして、SSDが8本あるものとする。
この場合には、ステップS95において、・E(1)[1],E(2)[1],E(3)[1]については、N=1、・E(1)[1],E(3)[1],E(2)[1]については、N=1、
・E(2)[1],E(1)[1],E(3)[1]については、N=1、・E(2)[1],E(3)[1],E(1)[1]については、N=2、・E(3)[1],E(1)[1],E(2)[1]については、N=1、・E(3)[1],E(2)[1],E(1)[1]については、N=2と算出され、ステップS96においては、E(0)[x]のMが2と算出される。
ループCにおいて、変数xをx_maxとして、ステップS93〜S96の処理を終了した場合には、プロセッサ53は、ループCを抜ける。
次いで、プロセッサ53は、E(0)[1]〜[x_max]の中で、最大のMとなっているリソース投入案E(0)[x]を実行するリソース投入案として抽出(決定)し(ステップS97)、処理を終了する。
このリソース投入案選択処理によると、発生障害を解消するために投入するリソース投入案として、発生障害と同時に発生する可能性のあるより多くの障害に対処できるリソースを残すことのできるリソース投入案に適切に決定することができる。これにより、発生障害を解消するためにリソースを投入した際において、新たに発生する障害に対して対処できる可能性を向上することができる。
図27は、一実施形態に係るリソース割当監視処理のフローチャートである。
リソース割当監視処理は、プロセッサ53がリソース割当監視処理プログラム64を実行することにより行われる。このリソース割当監視処理は、例えば、ストレージ装置30の電源がONとなった後に実行が開始され、継続して実行される。
まず、プロセッサ53は、リソース投入履歴テーブル93を参照し、回収されていないリソースがあるか否かを判定する(ステップS101)。ここで、リソースが回収されているか否かについては、リソース投入テーブル履歴テーブル93に、回収時間93cに値が設定されていない行があるか否かにより判定することができる。
この結果、回収されていないリソースがないと判定された場合(ステップS101:NO)には、プロセッサ53は、処理をステップS103に進める。
一方、回収されていないリソースがあると判定された場合(ステップS101:YES)には、プロセッサ53は、回収されていないリソースは、ドライブ障害に対するリソースであるか否かを判定する(ステップS102)。
この結果、ドライブ障害に対するリソースでない場合(ステップS102:NO)には、プロセッサ53は、対応するリソースを回収するためのリソース回収案(ステップS103:図28参照)を実行させ、処理をステップS105に進める。
一方、ドライブ障害に対するリソースである場合(ステップS102:YES)には、プロセッサ53は、障害部位のドライブがNORMALになっている場合、すなわち、ドライブ管理テーブル84の障害部位のドライブに対応する行の状態84eがNORMALの場合には、リソース投入履歴テーブル93の障害部位に対応する行の回収時間93cに現在の時刻を設定し、行の状態84eがNORMALでない場合には、何もせず(ステップS104)、処理をステップS105に進める。
ステップS105では、プロセッサ53は、次監視周期まで処理を停止し、その後、処理をステップS101に進める。
図28は、一実施形態に係るリソース回収処理のフローチャートである。
リソース回収処理は、プロセッサ53がリソース回収処理プログラム69を実行することにより行われる。このリソース回収処理は、図27のリソース割当監視処理のステップS103で実行される処理である。
まず、プロセッサ53は、ループDの処理(ステップS111〜S113)を実行する。ループDでは、変数vの値を1から、リソースを回収する対象のリソース投入案において投入したボリュームの数となるまで1ずつ加算して、各変数vの値を用いてステップS111〜S113の処理を実行する。
ループDでは、まず、プロセッサ53は、リソースを回収してもプールの使用率がしきい値[注意]未満((プールの物理容量×使用率)÷(物理容量−v(v番目の物理ボリューム)の容量)<しきい値[注意])であり、且つリソースを回収してもプールのTierの稼動率がしきい値[注意]未満((vの所属するTierのドライブ稼動率の平均値)×vの所属するTierのドライブ数÷(vの所属するTierのドライブ数−vのドライブ数)<しきい値[注意])であるか否かを判定する(ステップS111)。
この結果、リソースを回収してもプールの使用率がしきい値[注意]未満であり、且つリソースを回収してもプールのTierの稼動率がしきい値[注意]未満である場合(ステップS111:YES)には、プロセッサ53は、ループEの処理(ステップS112,S113)を実行する一方、リソースを回収してもプールの使用率がしきい値[注意]未満であり、且つリソースを回収してもプールのTierの稼動率がしきい値[注意]未満でない場合(ステップS111:NO)には、プロセッサ53は、後述するループEの処理を抜ける。
ループEでは、変数nの値を1から、同時に発生する障害の数となるまで1ずつ加算して、各変数nの値を用いてステップS112,S113の処理を実行する。
ループEでは、プロセッサ53は、E(v,n)を算出するために使用する値を設定する(ステップS112)。ここで、E(v,n)は、vに対応する物理ボリュームが回収できたとした場合に、現在発生している障害(発生障害)と同時に発生するn番目の障害に対応するリソース投入案一覧テーブル96である。
E(v,n)を算出するために使用する値として、稼働率又は使用容量をそれに対応するしきい値[注意]に設定し、変動率[短期]を過去に計測した最大の変動率[短期]に設定し、猶予時間を、過去に計測した最大の変動率[短期]としきい値[注意]とに基づいて算出される値に設定する。
次いで、プロセッサ53は、ステップS112において設定した値を用いて、リソース投入案算出処理(図24参照)を実行する(ステップS113)。このステップS113の処理によると、vに対応する物理ボリュームを回収したとした場合に、発生障害と同時に発生する可能性のある障害が発生した際のリソース投入案を含むリソース投入案一覧テーブル96が作成される。
ループEにおいて、変数nを同時に発生する障害の数として、ステップS112,S113の処理を終了した場合には、プロセッサ53は、ループEの処理を抜ける。
また、ループDにおいて、変数vを投入したボリュームの数として、ステップS111〜S113の処理を終了した場合には、プロセッサ53は、ループDの処理を抜ける。
ループDの処理を抜けると、プロセッサ53は、ループFの処理(ステップS114〜S116)を実行する。ループFでは、変数vの値を1から、リソースを回収する対象のリソース投入案において投入したボリュームの数となるまで1ずつ加算して、各変数vの値を用いてステップS114〜S116の処理を実行する。
ループFでは、プロセッサ53は、発生障害と当時に発生する可能性のあるすべての障害のリソース投入案の組合せ(E(v,1)[a],E(v,2)[b],・・・の組合せ)を算出する(ステップS114)。ここで、E(v,n)[a]は、vに対応する物理ボリュームを回収したとした場合における発生障害に対応するリソース投入案一覧テーブル96におけるa番目の行を示す。
次いで、プロセッサ53は、算出された全ての組合せにおいて、使用可能なドライブを使用して解消可能な障害の数(N)を算出する(ステップS115)。
次いで、プロセッサ53は、算出されたNのうちの最も大きな値を、vに対応する物理ボリュームを回収した際におけるMとする(ステップS116)。ここで、Mは、同時に発生する可能性のある障害の中で解消することのできる最大の数を意味している。このMは、同時に発生する可能性のある障害についての対処可能状況の一例である。
ループFにおいて、変数vを投入したボリュームの数として、ステップS114〜S116の処理を終了した場合には、プロセッサ53は、ループFの処理を抜ける。
次いで、プロセッサ53は、1〜v_max(投入したボリュームの数の最大値)の中で最大のMとなるvを選択し(ステップS117)、プール管理テーブル81、RAID Group管理テーブル82、ボリューム管理テーブル83、及びドライブ管理テーブル84のうちの関係するテーブルについて、選択したvに対応する物理ボリュームを回収した場合の状態に更新し(ステップS118)、選択したvに対応する物理ボリュームを回収し(ステップS119)、リソース投入履歴テーブル93のリソースを回収したリソース投入案に対応する行の回収時間93cに現在の時刻を設定し(ステップS120)、処理を終了する。
このリソース回収処理によると、リソースを回収した際に解消することのできる障害の数が多いリソースを優先して回収することができる。
図29は、一実施形態に係るリソース管理処理のフローチャートである。
リソース管理処理は、プロセッサ53がリソース管理処理プログラム66を実行することにより行われる。このリソース管理処理は、例えば、ストレージ装置30の電源がONとなった後に実行が開始され、継続して実行される。
まず、プロセッサ53は、ループGの処理(ステップS121,S122)を実行する。ループGでは、変数nの値を1から同時に発生する可能性のある障害の最大数(n_max)となるまで1ずつ加算して、各変数nの値を用いてステップS121,S122の処理を実行する。
ループGでは、まず、プロセッサ53は、E(n)を算出するために使用する値を設定する(ステップS121)。ここで、E(n)は、各障害に対応するリソース投入案一覧テーブル96である。
E(n)を算出するために使用する値として、稼働率又は使用容量をそれに対応するしきい値[注意]に設定し、変動率[短期]を過去に計測した最大の変動率[短期]に設定し、猶予時間を、過去に計測した最大の変動率[短期]としきい値[注意]とに基づいて算出される値に設定する。
次いで、プロセッサ53は、ステップS121において設定した値を用いて、リソース投入案算出処理(図24参照)を実行する(ステップS122)。このステップS122の処理によると、発生する可能性のある障害についてのリソース投入案一覧テーブル96が作成される。
そして、変数nを発生する可能性のある障害の最大数として、ステップS121及びステップS122を行った場合には、プロセッサ53は、ループGの処理を抜ける。
次いで、プロセッサ53は、発生する可能性のあるすべての障害のリソース投入案の組合せ(E(1)[a],E(2)[b],・・・の組合せ)を算出する(ステップS123)。
次いで、プロセッサ53は、算出された全ての組合せにおいて、使用可能なドライブを使用して解消可能な障害の数(N)を算出する(ステップS124)。次いで、算出されたNのうちの最も大きな値を、発生する可能性のある障害の中で解消することのできる最大の数であるMとする(ステップS125)。このMは、同時に発生する可能性のある異常に対する対処可能状況の一例である。
次いで、プロセッサ53は、Mがn_maxと同じであるか否かを判定する(ステップS126)。
この結果、Mがn_maxと同じでない場合(ステップS126:NO)には、同時に発生する可能性のある障害の全てに対応するためには、余剰リソースが不足していることを意味しているので、プロセッサ53は、Mがn_maxとなる組合せを実現する際に不足するドライブ数のうちの最も少ない数を算出し(ステップS127)、プロセッサ53、例えば、出力デバイス56に、不足するドライブ数及び種類のドライブの増設を提案するメッセージを表示させ(ステップS128)、処理をステップS131に進める。これにより、同時に発生する障害の全てに対処するために必要なリソースの増設を適切に提案することができる。
一方、Mがn_maxと同じである場合(ステップS126:YES)には、同時に発生する可能性のある障害の全てに対応できることを意味しているので、プロセッサ53は、Mがn_maxとなる組合せを実現する際に、最も少ないドライブ数となる組合せを選択し(ステップS129)、例えば、出力デバイス56に、選択した組合せで使用しないドライブがある場合には、そのドライブの種類及び数の減設を提案するメッセージを表示させ(ステップS130)、処理をステップS131に進める。これにより、同時に発生する障害の全てに対処するために不必要となるリソースの減設を適切に提案することができる。
ステップS131では、プロセッサ53は、次監視周期まで処理を停止し、その後、処理をループGの処理に進める。
以上説明したように、リソース管理処理によると、同時に発生する障害に対応するための余剰リソースを適切な数に調整させるように提案することができる。したがって、必要最低限の余剰リソースで、適切に異常に対処することができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、ページ移動性能一覧テーブル94には、低速に対応するレコードのみを格納するようにしていたが、本発明は、これに限られず、例えば、複数の速度(中速、高速等)についての行を格納するようにしてもよい。また、この場合においては、ページ移動性能影響一覧テーブル95の行に、各速度に対応する負荷のフィールドを設け、各速度に対応する負荷の値を格納するようにすればよい。そして、ページ移動する際における速度に応じた負荷については、このテーブルを用いて特定するようにすればよい。
また、上記実施形態において、リソース管理装置の一例を、ストレージ装置30内のストレージコントローラ50としていたが、本発明はこれに限られず、例えば、ストレージ装置30とは別のサーバに、ストレージコントローラ50におけるリソースの管理に必要な機能を実行させるようにしてもよい。
1…計算機システム、10…サーバ、20…SAN、30…ストレージ装置、40…ディスクユニット、50…ストレージコントローラ、53…プロセッサ、54…メモリ、61…監視プログラム、65…リソース管理プログラム、67…リソース割当制御プログラム、80…テーブル群

Claims (12)

  1. 複数の種類の余剰リソースを含む複数のリソースを備えるストレージ装置における異常の対処に用いる、前記余剰リソースの投入案を決定し、決定した投入案に従って前記余剰リソースの割当を制御するリソース管理装置であって、
    前記リソース管理装置は、プロセッサ部を備え、
    前記プロセッサ部は、
    前記ストレージ装置における前記リソースに関わる異常を検出し、
    前記異常を検出した場合に、前記ストレージ装置における前記リソースの運用情報に基づいて、異常を対処することのできる前記余剰リソースの投入案を1以上算出し、
    前記投入案が複数ある場合に、それぞれの前記投入案を実行する際に残存する余剰リソースによる、前記異常と同時に発生する可能性のある他の異常に対する対処可能状況に基づいて、前記異常の対処に用いる投入案を決定し、
    前記プロセッサ部は、
    前記投入案が複数ある場合に、前記残存する余剰リソースによる、対処可能な前記他の異常の数が多い投入案を、対処に用いる投入案として決定する
    リソース管理装置。
  2. 前記リソースの運用情報は、前記ストレージ装置における前記リソースの構成情報と、前記リソースの稼動情報とを含む
    請求項1に記載のリソース管理装置。
  3. 前記プロセッサ部は、
    前記リソースの稼動情報に基づいて、前記リソースに関わる状態が、第1段階の異常状態からさらに深刻な第2段階の異常状態になるまでの猶予時間を特定し、
    前記猶予時間未満で実行可能な投入案を算出する
    請求項2に記載のリソース管理装置。
  4. 前記リソースは、ストレージデバイスであり、
    前記ストレージ装置は、1以上のストレージデバイスの記憶領域に基づく記憶領域により構成される物理ボリュームと、1以上の前記物理ボリュームの記憶領域に基づく容量プールと、前記容量プールの記憶領域が割り当てられる仮想ボリュームとを有し、
    前記リソースに関わる異常は、前記容量プールの記憶領域の容量不足を含み、
    前記プロセッサ部は、
    前記容量プールの記憶領域の容量不足を検出した場合に、異常に対処することのできる前記余剰リソースの投入案として、前記容量プールの容量不足に対応する物理ボリュームを構成するリソースに対して、同等以上の信頼性と、同等以上の性能評価とを有する余剰リソースにより構成される物理ボリュームを追加する投入案を算出する
    請求項1から請求項のいずれか一項に記載のリソース管理装置。
  5. 前記プロセッサ部は、
    前記容量プールの記憶領域の容量不足を検出した場合に、異常の対処に用いる前記余剰リソースの投入案として、前記容量プールの容量不足に対応する物理ボリュームを構成するリソースに対して、同等以上の信頼性を有する余剰リソースにより構成される物理ボリュームを追加する投入案を算出する
    請求項に記載のリソース管理装置。
  6. 前記プロセッサ部は、
    前記異常の対処に用いる投入案として、前記容量プールの容量不足に対応する物理ボリュームを構成するリソースに対して、同等以上の信頼性を有する余剰リソースにより構成される物理ボリュームを追加する投入案に決定した場合に、前記容量不足に対応する前記物理ボリュームの記憶領域が割り当てられている仮想ボリュームのページを、追加された物理ボリュームの記憶領域に再配置させる
    請求項に記載のリソース管理装置。
  7. 前記リソースは、ストレージデバイスであり、
    前記ストレージ装置は、1以上のストレージデバイスの記憶領域に基づく記憶領域により構成される物理ボリュームと、1以上の前記物理ボリュームの記憶領域に基づく容量プールと、前記容量プールの記憶領域が割り当てられる仮想ボリュームとを有し、
    前記リソースに関わる異常は、前記仮想ボリュームのアクセス性能の低下を含み、
    前記プロセッサ部は、前記仮想ボリュームのアクセス性能の低下を検出した場合に、異常を対処することのできる前記余剰リソースの投入案として、前記容量プールの容量不足に対応する物理ボリュームを構成するリソースに対して、同等以上の信頼性と、同等以上の性能評価とを有する余剰リソースにより構成される物理ボリュームを追加する投入案を算出する
    請求項1から請求項のいずれか1項に記載のリソース管理装置。
  8. 前記プロセッサ部は、
    前記ストレージ装置における前記リソースに関わる異常が解消されたか否かを判定し、
    前記異常が解消された場合において、前記異常に対処するために実行された投入案に係る複数の余剰リソースについて、各余剰リソースを回収することによる、前記異常と同時に発生する可能性がある他の異常に対する対処可能状況に基づいて回収する
    請求項1から請求項のいずれか1項に記載のリソース管理装置。
  9. 前記プロセッサ部は、
    前記ストレージ装置において発生する可能性のある異常が発生した場合における異常に対処することのできる1以上の前記余剰リソースの投入案と、前記異常と同時に発生する可能性がある他の異常に対処することのできる1以上の前記余剰リソースの投入案と、前記余剰リソースとに基づいて、前記異常及び前記他の異常の全てに対処可能であるか否かを判定し、
    前記異常及び前記他の異常の全てに対処可能である場合には、前記異常及び前記他の異常の全てに対処した場合において必要最低限のリソースの種類及び数を特定し、
    前記余剰リソースの種類及び数と、前記必要最低限のリソースの種類及び数とに基づいて、不要なリソースの種類及び数のリソース減設するように提案するメッセージを表示させる
    請求項1から請求項のいずれか一項に記載のリソース管理装置。
  10. 前記プロセッサ部は、
    前記異常及び前記他の異常の全てに対処可能でない場合には、前記異常及び前記他の異常の全てに対処した場合において必要最低限のリソースの種類及び数を特定し、
    前記余剰リソースの種類及び数と、前記必要最低限のリソースの種類及び数とに基づいて、不足しているリソースの種類及び数のリソースを増設するように提案するメッセージを表示させる
    請求項に記載のリソース管理装置。
  11. 複数の種類の余剰リソースを含む複数のリソースを備えるストレージ装置における異常の対処に用いる、前記余剰リソースの投入案を決定し、決定した投入案に従って前記余剰リソースの割当を制御するリソース管理装置によるリソース管理方法であって、
    前記リソース管理装置は、
    前記ストレージ装置における前記リソースに関わる異常を検出し、
    前記異常を検出した場合に、前記ストレージ装置における前記リソースの運用情報に基づいて、異常を対処することのできる前記余剰リソースの投入案を1以上算出し、
    前記投入案が複数ある場合に、それぞれの前記投入案を実行する際に残存する余剰リソースによる、前記異常と同時に発生する可能性のある他の異常に対する対処可能状況に基づいて、前記異常の対処に用いる投入案を決定し、
    前記投入案が複数ある場合に、前記残存する余剰リソースによる、対処可能な前記他の異常の数が多い投入案を、対処に用いる投入案として決定する
    リソース管理方法。
  12. 複数の種類の余剰リソースを含む複数のリソースを備えるストレージ装置における異常の対処に用いる、前記余剰リソースの投入案を決定し、決定した投入案に従って前記余剰リソースの割当を制御するリソース管理装置を構成するコンピュータに実行させるためリソース管理プログラムであって、
    前記コンピュータを、
    前記ストレージ装置における前記リソースに関わる異常を検出する手段と、
    前記異常を検出した場合に、前記ストレージ装置における前記リソースの運用情報に基づいて、異常を対処することのできる前記余剰リソースの投入案を1以上算出する手段と、
    前記投入案が複数ある場合に、それぞれの前記投入案を実行する際に残存する余剰リソースによる、前記異常と同時に発生する可能性のある他の異常に対する対処可能状況に基づいて、前記異常の対処に用いる投入案を決定する手段と、して機能させ、
    前記投入案を決定する手段は、前記投入案が複数ある場合に、前記残存する余剰リソースによる、対処可能な前記他の異常の数が多い投入案を、対処に用いる投入案として決定するリソース管理プログラム。
JP2017198588A 2017-10-12 2017-10-12 リソース管理装置、リソース管理方法、及びリソース管理プログラム Active JP6622273B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017198588A JP6622273B2 (ja) 2017-10-12 2017-10-12 リソース管理装置、リソース管理方法、及びリソース管理プログラム
US16/118,933 US10725879B2 (en) 2017-10-12 2018-08-31 Resource management apparatus, resource management method, and nonvolatile recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017198588A JP6622273B2 (ja) 2017-10-12 2017-10-12 リソース管理装置、リソース管理方法、及びリソース管理プログラム

Publications (2)

Publication Number Publication Date
JP2019074798A JP2019074798A (ja) 2019-05-16
JP6622273B2 true JP6622273B2 (ja) 2019-12-18

Family

ID=66095796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017198588A Active JP6622273B2 (ja) 2017-10-12 2017-10-12 リソース管理装置、リソース管理方法、及びリソース管理プログラム

Country Status (2)

Country Link
US (1) US10725879B2 (ja)
JP (1) JP6622273B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041304A (ja) * 2000-07-28 2002-02-08 Hitachi Ltd 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
US7146522B1 (en) * 2001-12-21 2006-12-05 Network Appliance, Inc. System and method for allocating spare disks in networked storage
JP2005216151A (ja) 2004-01-30 2005-08-11 Hitachi Ltd 資源運用管理システム及び資源運用管理方法
US7941628B2 (en) * 2007-09-04 2011-05-10 International Business Machines Corporation Allocation of heterogeneous storage devices to spares and storage arrays
JP4842334B2 (ja) * 2009-02-12 2011-12-21 富士通株式会社 ディスクアレイ制御装置
JP5719974B2 (ja) * 2012-09-03 2015-05-20 株式会社日立製作所 複数の監視対象デバイスを有する計算機システムの管理を行う管理システム
JP6051228B2 (ja) * 2012-11-07 2016-12-27 株式会社日立製作所 計算機システム、ストレージ管理計算機及びストレージ管理方法
WO2015068299A1 (ja) * 2013-11-11 2015-05-14 株式会社日立製作所 管理計算機および計算機システムの管理方法
US9519556B2 (en) * 2014-09-09 2016-12-13 Dell Products, Lp Member replacement in an array of information storage devices
WO2017026017A1 (ja) * 2015-08-07 2017-02-16 株式会社日立製作所 管理計算機および計算機システムの管理方法

Also Published As

Publication number Publication date
US10725879B2 (en) 2020-07-28
US20190114240A1 (en) 2019-04-18
JP2019074798A (ja) 2019-05-16

Similar Documents

Publication Publication Date Title
JP6373482B2 (ja) コンピュータ環境を統制し分析するためのインターフェース
JP4723925B2 (ja) ボリューム活動に従ってストレージポリシーをコントロールするための方法
US10095418B1 (en) Automatic tiering of storage using dynamic grouping
US8914598B2 (en) Distributed storage resource scheduler and load balancer
JP6842440B2 (ja) 性能分析方法および管理計算機
JP4896593B2 (ja) 性能監視方法、計算機及び計算機システム
US8880801B1 (en) Techniques for reliability and availability assessment of data storage configurations
US10082965B1 (en) Intelligent sparing of flash drives in data storage systems
US10825477B2 (en) RAID storage system with logical data group priority
US20160004475A1 (en) Management system and method of dynamic storage service level monitoring
US9747156B2 (en) Management system, plan generation method, plan generation program
WO2007140260A2 (en) System and method for raid management, reallocation, and restriping
CN109213428B (zh) 用于管理存储系统的方法和设备
US8024542B1 (en) Allocating background workflows in a data storage system using historical data
US8904144B1 (en) Methods and systems for determining at risk index for storage capacity
JP2019053474A (ja) クラウドベースサービスのデータ保護方法
JP6622273B2 (ja) リソース管理装置、リソース管理方法、及びリソース管理プログラム
WO2018089647A1 (en) Apparatus and method of behavior forecasting in a computer infrastructure
US11113163B2 (en) Storage array drive recovery
US20210303177A1 (en) Prediction of maintenance window of a storage system
JP6622808B2 (ja) 管理計算機および計算機システムの管理方法
CN103577334A (zh) 分配数据存储物理实体镜像对的方法和镜像数据存储系统
US8005014B2 (en) Method of choosing nodes in a multi-network
JP6636656B2 (ja) 管理システム、管理装置、および管理方法
US11494081B2 (en) System and method for using telemetry data to change operation of storage middleware client of a data center

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191121

R150 Certificate of patent or registration of utility model

Ref document number: 6622273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150