JPWO2013103005A1 - 計算機システムの管理装置及び管理方法 - Google Patents

計算機システムの管理装置及び管理方法 Download PDF

Info

Publication number
JPWO2013103005A1
JPWO2013103005A1 JP2013552367A JP2013552367A JPWO2013103005A1 JP WO2013103005 A1 JPWO2013103005 A1 JP WO2013103005A1 JP 2013552367 A JP2013552367 A JP 2013552367A JP 2013552367 A JP2013552367 A JP 2013552367A JP WO2013103005 A1 JPWO2013103005 A1 JP WO2013103005A1
Authority
JP
Japan
Prior art keywords
response time
host
storage
tier
relocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013552367A
Other languages
English (en)
Other versions
JP5668151B2 (ja
Inventor
直樹 磯村
直樹 磯村
徳生 吉孝
吉孝 徳生
草間 隆人
草間  隆人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5668151B2 publication Critical patent/JP5668151B2/ja
Publication of JPWO2013103005A1 publication Critical patent/JPWO2013103005A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

階層化されたプールを効率的に使用すること。
管理サーバは、複数のホスト計算機の性能情報を管理し、各性能情報に基づいて、複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する。管理サーバは、所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、複数の記憶階層毎の実記憶領域の割当量を規定する再配置計画を作成する。管理サーバは、再配置計画に基づいて、各論理的記憶領域と各記憶階層の各実記憶領域との対応関係を決定し、ストレージ装置に通知する。

Description

本発明は、計算機システムの管理装置及び管理方法に関する。
階層ストレージ技術は、ストレージ装置の利用効率を高める。階層ストレージ技術では、それぞれ性能の異なる複数種類の記憶装置を用いて、階層型プールを形成する。その階層型プールに蓄積されている実記憶領域(実領域とも呼ぶ)を、仮想的な論理ボリュームに割り当てる。
階層ストレージ技術では、仮想的な論理ボリュームのデータの格納先を、そのデータに対するI/O(Input/Output)負荷に基づいて、適切な性能の階層へと自動または手動で変更する。頻繁にアクセスされるデータは高性能の階層に格納され、アクセス頻度の少ないデータは低性能の階層に格納される。階層ストレージ技術を利用することで、データに対して、そのデータに必要な性能の記憶装置を必要な分だけ割当てることができる。
第1の特許文献では、ページと呼ばれる仮想的な記憶領域に含まれるデータ毎にI/O負荷を計測し、1ページ単位でデータの格納先を変更できる階層ストレージ技術を開示している(特許文献1)。
第2の特許文献は、アプリケーションプログラムの優先度、使用率、または性能要件情報を利用して、動的にページの再割当てを行う技術を開示している(特許文献2)。
特開2010−108341号公報 特開2011−70628号公報
従来技術は、ページ毎のI/O数の大小に基づいて、階層間でデータを再配置する。従来技術では、CPU(Central Processing Unit)利用率、ネットワーク使用率、I/O分布といった、ホスト計算機の稼働情報を使用していない。
そのため、従来技術では、I/O以外の性能(例えば、CPU処理時間)がボトルネックになっているホスト計算機であっても、そのホスト計算機からのI/O数が多い場合は、そのホスト計算に使用されるデータに対して、高性能な上位階層を割り当てる。
しかし、このケースでは、I/O以外の性能が性能ボトルネックであるため、上位階層を割当てることでI/Oレスポンスタイムの高速化を図っても、上位階層のコストに見合う程の効果を期待できない。ホスト計算機のI/O処理以外の他の処理を含む総合的なレスポンスタイムの向上を期待できない場合がある。ホスト計算機がデータを速やかに取得できたとしても、ホスト計算機のCPUが高負荷であるために、データ処理が遅れる可能性がある。
従って、性能ボトルネックが発生しているホスト計算機に上位階層を割り当てるよりも、性能ボトルネックの発生していない他のホスト計算機に上位階層を割り当てる方が、結果的に好ましい。こうすることで、プール全体の、I/O以外の処理を含むレスポンスタイムを最大化できる。しかし、従来技術では、上述のように、性能ボトルネックの発生したホスト計算機が上位階層を利用するため、プール全体のレスポンスタイムを最適化できない。
本発明の目的は、ホスト計算機の状態に応じて複数の記憶階層の実記憶領域を割り当てることで、複数の記憶階層の実記憶領域を効率的に使用することができるようにした、計算機システムの管理装置及び管理方法を提供することにある。
上記課題を解決すべく、本発明に従う計算機システムの管理装置は、複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理する管理装置であって、ストレージ装置は、複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、複数の仮想的論理ボリュームを構成する論理的記憶領域を、複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、複数のホスト計算機の性能情報を管理する性能情報管理部と、各性能情報に基づいて、複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定部と、複数の仮想的論理ボリュームのうち所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、複数の記憶階層毎の実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成部と、再配置計画に基づいて、複数の仮想的論理ボリュームの各論理的記憶領域と各記憶階層の各実記憶領域との対応関係を決定し、対応関係をストレージ装置に通知して、ストレージ装置に再配置処理の実行を指示する再配置指示部と、を備え、再配置計画作成部は、所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の再配置計画の中からいずれか一つを選択し、再配置指示部は、選択された再配置計画に基づいて対応関係を決定し、決定した対応関係をストレージ装置に通知する。
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の様態は、要素および多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
本明細書の記述は典型的な例示に過ぎず、本発明の請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
本実施形態の全体概要を示す説明図である。 第1実施例におけるシステム全体の構成図の例である。 第1実施例におけるストレージ装置の構成図の例である。 第1実施例における管理サーバの構成図の例である。 第1実施例におけるホストの構成図の例である。 第1実施例におけるストレージ制御プログラムの論理概念図の例である。 第1実施例におけるTierの性能履歴を管理する情報の構成例である。 第1実施例におけるホストの性能ボトルネック閾値を管理する情報の構成例である。 第1実施例における再配置プランを管理する情報の構成例である。 第1実施例における管理サーバが仮想ボリュームを管理するための情報の構成例である。 第1実施例におけるストレージ装置が仮想ボリュームを管理するための情報の構成例である。 第1実施例におけるホストの性能履歴を管理する情報の構成例である。 第1実施例における管理サーバがRAIDグループを管理するための情報の構成例である。 第1実施例におけるストレージ装置がRAIDグループを管理するための情報の構成例である。 第1実施例におけるTierの構成を管理する情報の構成例である。 第1実施例におけるTier構成別のレスポンスタイムを管理する情報の構成例である。 第1実施例におけるストレージ装置が実領域を管理するための情報の構成例である。 第1実施例における再配置プランを作成する処理を説明するフローチャートの例である。 第1実施例におけるホストの性能履歴を取得する処理を説明するフローチャートの例である。 第1実施例における性能ボトルネックを判別する処理を説明するフローチャートの例である。 第1実施例における再配置プランを策定する処理を説明するフローチャートの例である。 第1実施例におけるI/Oレスポンスタイムを計算する処理を説明するフローチャートの例である。 第1実施例における仮想ボリュームの性能情報を取得する処理を説明するフローチャートの例である。 第1実施例における再配置指示処理を説明するためのフローチャートの例である。 第1実施例におけるリード処理を説明するフローチャートの例である。 第1実施例におけるライト処理を説明するフローチャートの例である。 第1実施例における入力情報を登録する処理を説明するフローチャートの例である。 第1実施例におけるホストの性能ボトルネック閾値を設定するための画面例である。 第1実施例における再配置プラン策定処理の仮想配置先を管理する情報の構成例である。 第1実施例における再配置プラン策定処理の仮想再配置プログラムを説明するフローチャートの例である。 第1実施例における実領域割当ての処理を説明するフローチャートの例である。 第2実施例におけるホストの性能を管理する情報の構成例である。 第2実施例における構成プラン別のホスト性能情報をユーザに提示するための画面例である。 第2実施例におけるホストの性能情報をユーザに提示するための画面例である。 第3実施例におけるホストの性能ボトルネック閾値を設定するための画面例である。 第3実施例における再配置プランの策定および実行を説明するフローチャートの例である。 第3実施例におけるホストの性能ボトルネック閾値を管理する情報の構成例である。 第4実施例におけるレスポンスタイム変化指標を管理する情報の構成例である。 第4実施例におけるホストI/Oレスポンスタイム減少比を計算する処理を説明するフローチャートの例である。 第4実施例におけるプールI/Oレスポンスタイム増加比を計算する処理を説明するフローチャートの例である。 第4実施例における再配置プランの策定および実行を説明するフローチャートの例である。 第5実施例における再配置プランの策定および実行を説明するフローチャートの例である。 第5実施例におけるTier構成別のレスポンスタイムを管理する情報の構成例である。
以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態では、ストレージ装置の有する複数の記憶装置の使用状況を最適化するための管理装置、または管理方法あるいは管理ソフトウェアについて説明する。本実施形態は、後述のように、アプリケーションの性能情報を利用しているようなシステム構成において有効な技術を開示する。本実施形態では、プールを共有するホスト全体のレスポンスタイムを最適化できる。
添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は、本発明の原理に則った具体的な実施形態と実装例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
本実施形態では、当業者が本発明を実施するのに十分かつ詳細にその説明がなされているが、他の実装または形態も可能である。本発明の技術的思想の範囲と精神を逸脱することなく、構成または構造の変更、多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述を、これに限定して解釈してはならない。
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし、専用ハードウェアで実装してもよいし、またはソフトウェアとハードウェアの組み合わせで実装しても良い。
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
図1は、本実施形態の全体概念を模式的に示す説明図である。図1に示す構成は一例に過ぎず、本発明の範囲は図1の構成に限定されない。計算機システムは、複数のホスト計算機(以下、ホスト)1と、少なくとも一つの管理サーバ2と、少なくとも一つのストレージ装置3を備える。
ホスト1とストレージ装置3とは、例えば、IP−SAN(Internet Protocol_SAN)またはFC−SAN(Fibre Channel-Storage Area Network)のようなI/O用の通信ネットワーク4を介して接続される。ホスト1及びストレージ装置3と管理サーバ2とは、例えば、LAN(Local Area Network)のような管理用の通信ネットワーク5を介して接続される。I/O用通信ネットワーク4と管理用通信ネットワーク5とを結合して一つの通信ネットワークとして構成してもよい。
ストレージ装置3は、それぞれ性能の異なる複数の記憶階層(以下、Tier)を備えている。Tier内の実記憶領域は、仮想的論理ボリューム内の論理的記憶領域に対応付けられており、仮想的論理ボリュームのデータを記憶する。以下、仮想的論理ボリュームを仮想ボリュームと、実記憶領域を実ページと、論理的記憶領域を論理ページと、それぞれ呼ぶことがある。図1では、アプリケーションプログラム(以下、アプリケーション)AP1の稼働するホスト1が仮想ボリュームVVOL1を使用する。アプリケーションAP2の稼働するホスト1は仮想ボリュームVVOL2を、アプリケーションAP3の稼働するホスト1は仮想ボリュームVVOL3を使用する。
「管理装置」としての管理サーバ2は、例えば、設定値記憶部P21と、性能履歴管理部P22と、ボトルネック判定部P23と、再配置プラン策定部P24と、再配置指示部P25を有する。これら機能P21〜P25は、後述するストレージ・ホスト管理プログラム0124に対応する。
設定値記憶部P21は、システム管理者等のユーザから入力される値を、設定値として保存する。「性能情報管理部」としての性能履歴管理部P22は、ホスト1の性能情報を収集し、性能情報の履歴を管理する。「負荷判定部」としてのボトルネック判定部P23は、ホスト1の負荷状態が所定の閾値以上の高負荷状態であるかを判定する。ユーザは、所定の閾値を入力でき、その入力値は設定値記憶部P21に記憶される。図1では、アプリケーションAP1の稼働しているホスト1が高負荷状態であると仮定する。
「再配置計画作成部」としての再配置プラン策定部P24は、高負荷状態のホスト1(AP1)の使用する仮想ボリューム(VVOL1)に対する、Tier毎の実ページの割当量を算出する。再配置プラン策定部P24は、仮想ボリューム(VVOL1)に対して、上位Tierの実ページをどれだけ割当て、中位Tierの実ページをどれだけ割り当てるかを規定する再配置プランを作成する。
再配置指示部P25は、再配置プランに基づいて、各仮想ボリュームの論理ページと各Tierの実ページとの対応関係を決定し、ストレージ装置3に通知する。ストレージ装置3は、再配置指示部P25からの指示に基づいて、仮想ボリュームの論理ページに所定Tierの実ページを割当てる。
本実施形態の再配置プラン策定部P24は、高負荷状態のホスト1(AP1)に割り当てる上位Tierまたは中位Tierの実ページ数を少なくする。再配置指示部P25により、高負荷状態のホスト1(AP1)に割り当てられなくなった上位Tierまたは中位Tierの実ページは他のホスト1(AP2、AP3)に割り当てられる。
従って、本実施形態では、プール内の実ページをより効率的に使用することができ、プールを共有する複数のホストの全体としてのレスポンスタイムを最適化できる。以下、本実施形態を詳細に説明する。
図2〜図31を参照して第1実施例を説明する。本実施例では、複数のホストにより使用される仮想ボリュームは、ストレージ装置内の同一プールに基づいて作成される。プールは、性能の異なる複数の記憶階層を有する。管理サーバは、ホストの性能情報と実ページのアクセス情報とに基づいて、ページの再配置を行う。
図2は、第1実施例による計算機システムの概略図を示す図である。計算機システム0100は、複数のホスト0101と、少なくとも一つの管理サーバ0102と、少なくとも1つのストレージ装置0103と、を有している。ホスト0101と、ストレージ装置0103は、SAN(Storage Area Network)0104によって接続されている。また、ホスト0101、管理サーバ0102、及びストレージ装置0103は、LAN(Local Area Network)0105によって接続されている。
(1)ホスト0101
ホスト0101は、CPU0111と、メモリ0112と、を備える。ホスト0101は、SANポート0115を有し、SANポート0115によってSAN0104に接続されている。また、ホスト0101は、LANポート0116を有し、LANポート0116によってLAN0105に接続されている。
図5は、ホスト0101のハードウェア構成を示す図である。CPU0111は、メモリ0112に格納されているアプリケーション0113と、ホスト性能情報通知プログラム0114を実行することによって、各種処理を行う。
メモリ0112は、アプリケーション0113と、ホスト性能情報通知プログラム0114と、CPU0111がアプリケーション0113を実行する際に必要な情報(不図示)と、CPU0111がホスト性能情報通知プログラム0114を実行する際に必要な情報(不図示)と、を格納する。ホスト性能情報通知プログラム0114は、例えば、ホストのCPU利用率またはネットワーク利用率のような性能情報を、所定サイクルで(例えば10分に1回)、管理サーバ0102に通知する。
(2)管理サーバ0102
管理サーバ0102は、CPU0121と、メモリ0122と、補助記憶装置0123と、を備える。管理サーバ0102は、LANポート0126を有し、LANポート0126によってLAN0105に接続されている。
図4は、管理サーバ0102のハードウェア構成を示す図である。CPU0121は、メモリ0122に格納されているストレージ・ホスト管理プログラム0124を実行することによって、各種処理を行う。
メモリ0122は、ストレージ・ホスト管理プログラム0124と、ストレージ・ホスト管理プログラム0124を実行する際に必要な情報(不図示)と、ストレージ管理情報0125と、を格納する。
ストレージ・ホスト管理プログラム0124は、例えば、補助記憶装置0123に格納されているホスト性能情報と、ストレージ管理情報0125に格納されているストレージ装置0103の情報とから、ストレージ装置0103の記憶装置0133についての再配置プランを作成するプログラムである。
ストレージ・ホスト管理プログラム0124は、例えば、入力情報登録0301と、ホスト性能履歴取得0302と、性能ボトルネック判別0303と、再配置プラン策定0304と、再配置0305と、を有する。各処理については後述する。簡単に説明すると、ホスト0101とストレージ装置0103とから情報を収集する処理と、収集した情報に基づいて、ストレージ装置0103の補助記憶装置0133に関する再配置プランを作成してストレージ装置0103に通知する処理と、を有する。
ストレージ管理情報0125は、例えば、RAIDグループ管理情報0306と、実領域管理情報0307と、仮想ボリューム管理情報0308と、Tier性能履歴情報0309と、再配置プラン管理情報0310と、Tier管理情報0311と、を有する。各情報については後述する。簡単に説明すると、管理サーバ0102の有するストレージ管理情報0125は、ストレージ装置0103の有するストレージ管理情報0135から、再配置プランの作成に必要な情報を抽出して格納したものである。
補助記憶装置0123は、ストレージ・ホスト管理プログラム0124が収集または管理する情報を格納する。なお、補助記憶装置0123は、図中では1つで構成されているが、1つに限らず複数の補助記憶装置から構成されていてもよい。補助記憶装置0123としては、例えばSATA(Serial Advanced Technology Attatchment)ディスク、FC(Fibre Channel)ディスク、SSD(Solid State Drive)等がある。
なお、管理サーバ0102は、入力装置及び出力装置(不図示)を有する。出力装置は、例えば表示装置である。入出力装置の代替として、シリアルインターフェースまたはイーサーネットインターフェースを入出力装置としてもよい。そのインターフェースに、ディスプレイ及びキーボード(及び/又はポインタデバイス)を有する表示用計算機を接続してもよい。管理サーバ0102は、表示用情報を表示用計算機に送信して表示させたり、ユーザが表示用計算機に入力した情報を表示用計算機から受信したりできる。表示用計算機は、携帯電話、携帯情報端末、パーソナルコンピュータのように構成してもよい。管理サーバ0102は、複数のコンピュータから構成してもよい。
(3)ストレージ装置0103
ストレージ装置0103は、SANポート0136と、LANポート0137とを有している。ストレージ装置0103は、SANポート0136によってSAN0104に接続され、LANポート0137によってLAN0105に接続されている。また、ストレージ装置0103は、CPU0131と、メモリ0132と、少なくとも1つの補助記憶装置0133とを有している。
図3は、ストレージ装置0103のハードウェア構成を示す図である。CPU0131は、メモリ0132に格納されているストレージ制御プログラム0134を実行することによって、各種処理を行う。
メモリ0132は、ストレージ制御プログラム0134と、CPU0131がストレージ制御プログラム0134を実行する際に必要なストレージ管理情報0135を格納している。ストレージ制御プログラム0134は、例えば、他のストレージ装置から論理的に提供される論理ボリュームを、それがあたかもストレージ装置0103の固有の論理ボリュームであるかのようにホスト0101に見せかけるための処理も実行できる。
補助記憶装置0133は、後述するようにストレージ制御プログラム0134により記憶領域として扱われる領域を提供する。補助記憶装置0133は、性能の異なる複数の記憶装置0209を備える。記憶装置0209は、例えば、SATAディスク、FCディスク、SSD等から構成される。同種の記憶装置0209の記憶領域をRAIDグループ0210としてグループ化し、グループ化された記憶領域を用いて、論理ボリュームを生成することができる。
<論理記憶領域の構成例>
図6は、ストレージ制御プログラム0134の論理概念図である。ストレージ制御プログラム0134は、複数の補助記憶装置から論理記憶領域を構築する機能を有する。例えば、ストレージ制御プログラム0134は、RAIDグループ0210、論理ボリューム0508、ストレージプール0501、及び仮想論理ボリューム0509のような、論理記憶領域を構築することができる。以下、各論理記憶領域について詳述する。
RAIDグループ0210は、複数の記憶装置0209から構成された論理記憶領域、即ち、RAID(Redundant Arrays of Inexpensive Disks)であり、ストレージ制御プログラム0134により構築される。
例えば、ストレージ制御プログラム0134は、管理サーバ0102から複数の補助記憶装置0133の何れにRAIDグループを構成するかについての指示、及びRAIDレベルの指示を入力パラメータとして受け付ける。ストレージ制御プログラム0134は、指定されたRAIDレベルを持つRAIDグループ0210を指定された補助記憶装置0133に構築することができる。様々なサイズのRAIDグループ0201を、混在させて作成することができる。
論理ボリューム0508は、RAIDグループ0210内の論理記憶領域であり、ストレージ制御プログラム0134により構築される。例えば、ストレージ制御プログラム0134は、管理サーバ0102から、作成元RAIDグループ0210と作成する論理ボリューム0508のサイズとを入力値として受け付ける。ストレージ制御プログラム0134は、指定されたRAIDグループ0210から、指定されたサイズを持つ論理ボリューム0508を作成する。
ストレージプール0501は、複数の論理ボリューム0508から構成された論理記憶領域であり、ストレージ制御プログラム0134により構築される。例えば、ストレージ制御プログラム0134は、管理サーバ0102から、プールを構成すべき複数の論理ボリューム0508を入力値として受け付ける。ストレージ制御プログラム0134は、指定された複数の論理ボリューム0508を用いて、ストレージプール0501を構築することができる。
「実記憶領域」としての実領域(SEG)0506は、ストレージプール0501から構成された1つ又は複数の論理記憶領域であり、ストレージ制御プログラム0134により構築される。実領域(SEG)0506は、「実ページ」またはSEGと呼ぶことがある。SEG0506に格納されるデータは、そのページ(SEG)を構成するストレージプール0501を介して、当該ストレージプール0501を構成する論理ボリューム0508へ格納される。
「仮想的論理ボリューム」としての仮想ボリューム(VVOL)0509は、ストレージ制御プログラム0134により複数の仮想領域(VSEG)0502から構築された、論理記憶領域である。仮想ボリューム0509は、実容量以上の容量を持つ仮想ボリュームとして、ホスト0101に公開される。以下、仮想ボリュームは、図中ではVVOLと略記される場合がある。「論理記憶領域」としての仮想領域(VSEG)は、論理ページとも呼ばれ、後述のように、実ページ(SEG)に対応付けられる。
例えば、ストレージ制御プログラム0134は、管理サーバ0102から仮想ボリューム0509の容量を入力値として受け付けると、複数のSEG0506を用いて、指定された容量を持つ仮想ボリューム0509を構築する。
各仮想ボリューム0509は、プール0501に関連付けられている。簡単に説明すると、ホスト0101が仮想ボリューム0509内のVSEG0506にデータを書き込むと、プール0501から選択されたSEG0506が、その書込先のVSEG0506に割り当てられる。ホスト0101からのライトデータは、割り当てられたSEG0506に書き込まれる。
プール0501は、それぞれ性能の異なる複数の記憶階層を備える。プール0501は、例えば、第1階層(Tier1)0503、第2階層(Tier2)0504及び第3階層(Tier3)0505の3種類の記憶階層を備えることができる。
第1階層0503は、最も高性能の記憶装置0209の有する複数の実領域(SEG)0506から構成される。第1階層0503は、最上位階層と呼ぶこともできる。第2階層0504は、中程度の性能の記憶装置0209が有する複数の実領域(SEG)0506から構成される。第2階層0504は、中位階層と呼ぶこともできる。第3階層0505は、最も低性能の記憶装置0209の有する複数の実領域(SEG)0506から構成される。第3階層0505は、最下位階層と呼ぶこともできる。以降の説明では、第1階層0503と第2階層0504とを合わせて、上位Tierと呼ぶことがある。
ホスト0101が、実領域0506の割り当てられていない仮想領域(VSEG)0502にデータを書き込む場合、各階層0503、0504、0505のうちいずれかの階層に属する実領域0506が、ストレージ装置0103によって選択される。ストレージ装置0103は、選択した実領域0506を、書き込み対象の仮想領域0502に割り当てる。ストレージ装置0103は、仮想領域0502に割り当てられた実領域0506に、ホスト0101からのライトデータを書き込む。
仮想ボリューム0509の仮想領域0502に割り当てられた実領域0506のデータは、そのデータの利用頻度に応じて、所属先の階層が変更される。ストレージ装置0103は、実領域0506へのアクセスに関する情報(または、仮想領域0502へのアクセスに関する情報と言い換えてもよい)に基づいて、定期的にまたは不定期に、その実領域0506のデータが所属する階層を変更する。
例えば、アクセス頻度の高い仮想領域0502のデータは、ストレージ装置0103によって、高性能な階層に移動される。逆に、アクセス頻度の低い仮想領域0502のデータは、より低性能な階層に移動される。ストレージ装置0103は、データを記憶している実領域0506(コピー元)から、再配置先の階層に属する実領域0506(コピー先)へのデータコピーを行うことで、データの配置先を変更する。
アクセス頻度の高いデータは、高性能な階層に記憶されるため、その応答時間は短縮される。さらに、アクセス頻度の低いデータを、高性能な階層から低性能な階層に移動することができるため、高性能な階層が無駄に使用されるのを防止し、効率的に使用することができる。
<ストレージ装置の処理の概要>
ストレージ制御プログラム0134は、前述の論理記憶領域構成機能と、論理ボリューム割り当て機能と、仮想ボリューム拡張機能、及び性能情報収集機能を提供する。論理記憶領域構成機能とは、論理記憶領域を構成する機能である。論理ボリューム割当て機能とは、論理ボリューム0508および仮想ボリューム0509をホスト0101に割り当てる機能である。仮想ボリューム拡張機能とは、ボリュームを割り当てたホスト0101からのI/O命令に応じて、仮想ボリューム0509の仮想領域0502に実領域0506を割り当てる機能である。性能情報収集機能とは、ストレージリソースの性能情報を定期的に収集する機能である。
ストレージ制御プログラム0134は、それらの機能に関する管理情報をストレージ管理情報0135に格納して管理する。また、ストレージ制御プログラム0134は、管理サーバ0102からの要求に応答して、他の各ストレージ装置(不図示)及びホスト0101に管理情報を送出する。管理サーバ0102からの要求は、例えば、LAN0105を経由して、ストレージ制御プログラム0134に送信できる。
ストレージ装置0103は、上述の各機能をストレージ制御プログラム0134によって実現する。ストレージ制御プログラム0134は、図3に示すように、仮想ボリューム管理プログラム0202と、性能モニタリングプログラム0201と、データ再配置プログラム0203と、を備える。
仮想ボリューム管理プログラム0202は、仮想ボリューム0509の構成を管理するための機能である。仮想ボリューム管理プログラム0202は、仮想ボリューム0509を生成してホスト0101に対応付け、ホスト0101からのライトアクセスに応じて仮想領域0502にプール0501内の実領域0506を割り当てる。さらに、仮想ボリューム管理プログラム0202は、管理サーバ0102からの指示に基づいて、及び/または、データのアクセス頻度に基づいて、そのデータの再配置先を変更する。
性能モニタリングプログラム0201は、各実領域0506の性能値を取得する。ここで、「性能」とは、例えば、アクセス性能である。アクセス性能としては、例えば、レスポンスタイム、データ転送速度、IOPS(単位時間当たりに処理したアクセス要求の数)がある。アクセス性能は、例えば、リード処理2400またはライト処理2500で取得する、アクセス頻度から計算する。
図25は、リード処理2400を説明するためのフローチャートの例である。本処理は、ストレージ装置0103のストレージ制御プログラム0134により実行される。
ストレージ制御プログラム0134は、リード要求(リードコマンド)をホスト0101から受信すると(ステップ2401)、処理開始時間をメモリ0132に一時的に(ステップ2407まで)保存し、リード処理を開始する。
ステップ2402において、ストレージ制御プログラム0134は、リード要求が有するアクセス先情報を基に、データの読出し対象である仮想領域(以下、リード対象仮想領域)を特定する。
ステップ2403において、ストレージ制御プログラム0134は、リード対象仮想領域のデータがストレージ装置0103のキャッシュメモリ(不図示)上に存在するか否かを判断する。リード対象仮想領域のデータがキャッシュメモリに記憶されている場合(ステップ2403:YES)、ステップ2406において、ストレージ制御プログラム0134は、キャッシュメモリ上のリード対象データを、ホスト0101に送信する。
リード対象仮想領域がキャッシュメモリ上に無い場合(ステップ2403:NO)、ステップ2404において、ストレージ制御プログラム0134は、仮想ボリューム管理情報0206に基づいて、ステップ2402で特定されたリード対象仮想領域に割り当てられている実領域(以下、リード対象実領域)を特定する。
ステップ2405において、ストレージ制御プログラム0134は、リード対象実領域からデータを読み出し、そのデータをキャッシュメモリに書き込む。さらに、ストレージ制御プログラム0134は、ステップ2406において、キャッシュメモリに書き込んだデータをホスト0101に送信する。
ステップ2407において、ストレージ制御プログラム0134は、仮想ボリューム管理情報0202からリード対象仮想領域の再配置先判定結果1007を取得し、リード処理の開始時に保存した処理開始時間とステップ2407実行時点との差分を、管理サーバ0102に送信する。管理サーバ0102は、受信した情報で、Tier性能履歴情報0309を更新する(ステップS2407)。Tier性能履歴情報0309の更新方法は、後述する。
最後に、ステップ2408において、ストレージ制御プログラム0134は、仮想ボリューム管理情報0206において、リード対象仮想領域に対応するアクセス数1005の値を更新する。
図26は、ライト処理2500を説明するためのフローチャートの例である。本処理は、ストレージ制御プログラム0134により実行される。
ストレージ制御プログラム0134は、ライト要求をホスト0101から受信すると、ライト処理を開始する(ステップ2501)。ステップ2502において、ストレージ制御プログラム0134は、ライト要求が有するアクセス先情報を基に、データを書き込む先の仮想領域(ライト対象仮想領域)を特定する。
ストレージ制御プログラム0134は、ステップ2503において、ライト対象仮想領域に実領域が割り当てられているか否かを判断する。具体的には、ライト対象仮想領域が仮想ボリューム管理情報0206に登録されているか否かを判断する。
ライト対象仮想領域に実領域が割り当てられている場合(ステップS2503:YES)、ステップ2506において、ストレージ制御プログラム0134は、ライト対象データを、ライト対象仮想領域に割り当てられている実領域に書き込む。
ライト対象仮想領域に実領域が割り当てられていない場合(ステップS2503:NO)、ステップ2504において、ストレージ制御プログラム0134は、ライト対象仮想領域に割り当て可能な、未割当の実領域が存在するか否かを判断する。具体的には、ストレージ制御プログラム0134は、実領域管理情報0205の割当状況1603が「未割当て」に設定されている実領域が存在するか否かを判断する。
ライト対象仮想領域に未割当の実領域が存在する場合(ステップ2504:YES)、ステップ2505において、ストレージ制御プログラム0134は、ライト対象仮想領域に未割当の実領域を割り当て、ライト対象データをその実領域に書き込む。
ライト対象仮想領域に未割当の実領域が存在しない場合(ステップ2504:NO)、ステップ2508において、ストレージ制御プログラム0134は、ホスト0101にエラーを送信する。
最後に、ストレージ制御プログラム0134は、ステップ2507において、仮想ボリューム管理情報0206において、ライト対象仮想領域に対応するアクセス数1005の値を更新する。
図3に示すデータ再配置プログラム0203は、管理サーバ0102の再配置処理0305で算出された仮想ボリューム管理情報0206の再配置先判定結果1007と、仮想領域ID1002と、実領域ID1004と、に基づいて、仮想領域0502と実領域0506の対応付けを更新する。
<各管理情報の構成例>
以下、ストレージ装置0103に格納されている管理情報について説明する。ストレージ装置0103は、図3に示すように、例えば、RAIDグループ管理情報0204と、実領域管理情報0205と、仮想ボリューム管理情報0206と、を有する。
(1)RAIDグループ管理情報(図14)
図14は、RAIDグループ0210の情報を管理するRAIDグループ管理情報0204の構成例を示す図である。RAIDグループ管理情報0204は、例えば、RAIDグループID1301と、デバイスタイプ1302と、RAIDレベル1303と、記憶装置ID1304と、を構成項目として有している。
RAIDグループID1301は、RAIDグループ0210を一意に特定または識別するための識別子である。デバイスタイプ1302は、RAIDグループ0210を構成する記憶装置0209の種類を示す情報である。RAIDレベル1303は、RAIDグループ0210のRAIDレベル及びコンビネーションを示す情報である。記憶装置ID1304は、RAIDグループ0210を構成する記憶装置0209を識別する情報である。図中では、記憶装置0209を「PDEV」と略記する場合がある。
なお、以下に述べる各テーブル(情報)でも同様であるが、図示されたテーブルが含む項目の一部を他の項目に変更したり、新たな項目を追加したりしてもよい。さらに、一つのテーブルを複数のテーブルに分割することもできる。
(2)実領域管理情報(図17)
図17は、実領域0506の情報を管理する実領域管理情報0205の構成例を示す図である。実領域管理情報0205は、例えば、RAIDグループID1601と、実領域ID1602と、RAIDグループLBA範囲1603と、割当て状況1604と、を構成項目として有している。
RAIDグループID1601は、RAIDグループ0210を一意に特定または識別するための識別子である。実領域ID1602は、実領域0506を識別するための情報である。LBA範囲1603は、実領域0506に対応する、RAIDグループ0210のLBA(Logical Block Addressing)範囲を示す情報である。割当て状況1603は、実領域0506が仮想ボリューム0509に割当て済みか否かを示す情報である。
(3)仮想ボリューム管理情報(図11)
図11は、仮想ボリューム0509を管理する仮想ボリューム管理情報0206の構成例を示す図である。仮想ボリューム管理情報0206は、仮想ボリューム0509内の各仮想領域0502と、その仮想領域0502に割り当てられている実領域0506とに関する情報を管理する。
例えば、仮想ボリューム管理情報0206は、仮想ボリュームID1001と、仮想領域ID1002と、仮想ボリュームのLBA範囲1003と、実領域ID1004と、アクセス数1005と、モニタリング期間1006と、再配置先判定結果1007とを対応付けて管理する。
仮想ボリュームID(VVOL−ID)1001は、仮想ボリューム0509を識別する情報である。仮想ボリュームID1001は、ホスト0101から指定される識別子ではなく、ストレージ装置0103の内部で認識される識別子である。仮想領域ID1002は、仮想領域0502を識別する情報である。
仮想ボリュームのLBA範囲1003は、仮想ボリューム0509の仮想領域0502に対応するLBA範囲を示す値である。実領域ID1004は、仮想ボリューム0509の仮想領域0502に割り当てられている実領域0506を識別する情報である。
アクセス数1005は、仮想ボリューム0509内の仮想領域0502に対する、ホスト0101からのアクセス数(累計のI/O数)を示す情報である。アクセス数1005は、仮想領域0502に対するアクセス回数である。ストレージ装置0103によるアクセス回数の監視は、モニタリング期間1006に設定された時間範囲内で行われる。
モニタリング期間1006に特定の時間帯を示す値が設定されていない場合、ストレージ装置0103は、常時、アクセス回数の監視を行う。ストレージ装置0103は、モニタリングを開始するタイミングで、アクセス数1005の値を0にリセットする。モニタリング期間1006における監視結果を保存しない場合は、一定期間、例えば24時間毎に、アクセス数1005の値を0にリセットする。
モニタリング期間1006には、性能モニタリングプログラム0201によるモニタリング期間が登録される。性能モニタリングプログラム0201が、仮想ボリューム0509へのアクセス回数の監視と監視結果の保存とを行う時間範囲がモニタリング期間1006に記憶される。モニタリング期間1006の値は、予め固定値として与えることもできるし、または、管理サーバ30から任意の値を設定することもできる。
再配置先判定結果1007には、再配置処理により判定された、データ再配置先の階層を示す情報が登録される。後述の再配置処理により、仮想ボリューム内の仮想領域に割り当てられるべき実領域を供給する階層が一つ決定される。再配置先判定結果1007には、決定された階層を特定する識別情報が記憶される。
<管理サーバの論理構成>
図4は、管理サーバ0102のメモリ0122及び補助記憶装置0123の論理構成例を示す図である。
メモリ0122に格納されるストレージ・ホスト管理プログラム0124は、入力情報登録プログラム0301と、ホスト性能履歴取得プログラム0302と、性能ボトルネック判別プログラム0303と、再配置プラン策定プログラム0304と、再配置指示プログラム0305と、性能情報取得プログラム0316を含んでいる。
メモリ0122に格納されるストレージ管理情報0125は、RAIDグループ管理情報0306と、実領域管理情報0307と、仮想ボリューム管理情報0308と、Tier性能履歴情報0309と、再配置プラン管理情報0310と、Tier管理情報0311と、を含んでいる。
補助記憶装置0123は、ボトルネック閾値管理情報0312と、ホスト性能履歴管理情報0313と、Tier構成別レスポンスタイム管理情報0314と、仮想配置先管理情報0315と、を含んでいる。それらの管理情報0312〜0315は、再配置プラン作成プログラム0304が管理する。
管理サーバ0102の有するRAIDグループ管理情報0306と、実領域管理情報0307と、仮想ボリューム管理情報0308とは、ストレージ装置0103の有するRAIDグループ管理情報0204、実領域管理情報0205、仮想ボリューム管理情報0206に、それぞれ対応する。
管理サーバ0102内の各管理情報0306、0307、0308の構成は、対応する管理情報0204、0205、0206の構成と完全に一致している必要はない。管理サーバ0102は、ストレージ装置0103の管理情報0204、0205、0206から情報を取得して、管理情報0306、0307、0308に格納する。
(1)RAIDグループ管理情報(図13)
図13は、管理サーバ0102の有するRAIDグループ管理情報0306の構成例を示す図である。RAIDグループ管理情報0306は、ストレージ装置0103が有するRAIDグループ管理情報0204に対応しており、RAIDグループ管理情報0204が有する情報を格納するために用いられる。
但し、RAIDグループ管理情報0306が有する情報は、RAIDグループ管理情報0204が有する情報と完全に一致している必要はない。RAIDグループ管理情報0204の有する情報のうち一部の情報は、RAIDグループ管理情報0306に格納しなくてもよい。
例えば、RAIDグループ管理情報0306は、RAIDグループ0210の識別子を表すRAIDグループID1201と、RAIDグループ0210を構成する記憶装置0209の種類を表すデバイスタイプ1202と、RAIDグループ0210のRAIDレベル及びコンビネーションを示すRAIDレベル1203と、を管理する。
(2)実領域管理情報
管理サーバ0102の有する実領域管理情報0307は、図17に示すストレージ装置0103の有する実領域管理情報0205と同一構成にできるため、説明を省略する。従って、以下では図17を参照して、管理サーバ側の実領域管理情報0307を説明する場合がある。
(3)仮想ボリューム管理情報(図10)
図10は、管理サーバ0102の有する仮想ボリューム管理情報0308の構成例を示す図である。仮想ボリューム管理情報0308は、例えば、仮想ボリュームID0901と、仮想領域ID0902と、仮想ボリュームのLBA範囲0903と、実領域ID0904と、IOPS0905と、配置先判定結果0906と、ホストID0907と、を備える。
項目0901、0902、0903、0904、0906は、図11に示す仮想ボリューム管理情報0206の項目1001、1002、1003、1004、1007に対応するため、説明を省略する。
管理サーバ0102の有する仮想ボリューム管理情報0308では、性能情報をモニタリングする期間についての項目(図11の項目1006)は不要であるため、含まれていない。ホストID0907は、仮想ボリュームID0901で指定される仮想ボリューム0509を使用するホスト0101の識別子を示す情報である。
ストレージ装置0103の有する仮想ボリューム管理情報0206では、アクセス数1005に、仮想領域0502へのアクセス回数が記録される。これに対し、管理サーバ0102の有する仮想ボリューム管理情報0308では、IOPS0905に、管理サーバ0102が行う各処理において使用される、アクセス数に関連する値が記録される。例えば、IOPS0905には、前回処理時に計算された仮想領域のアクセス数の平均値(前回処理時の平均値)が記録される。
(4)Tier性能履歴情報(図7)
図7は、Tierの性能履歴情報0309の構成例を示す図である。階層ID0601は、階層を一意に識別するためのIDである。レスポンスタイム0602は、これまでのI/Oレスポンスタイムの平均値を格納している。レスポンスタイム0602は、再配置プラン策定プログラム0304において、ホスト0101のレスポンスタイムと、プール0501のI/Oレスポンスタイムとを計算するために使用する情報である。I/O数0603は、レスポンスタイム0602の計算に使用したI/Oの総数を格納する。
新たにI/Oを実行するとき、性能履歴情報を以下の式1に従って更新する。
更新後のレスポンスタイム=(更新前のレスポンスタイム*I/O数+新たに実行したI/Oのレスポンスタイム)/(I/O数+1)・・・(式1)
更新後のI/O数0603は、更新前のI/O数に1を加えた値である。つまり、I/O毎のレスポンスタイムをそれぞれ記録するのではなく、式1を用いて、Tier毎に1つのレスポンスタイムを管理する。
(5)再配置プラン管理情報(図9)
図9は、再配置プランを管理する情報0304の構成例を示す図である。再配置プラン管理情報0310は、例えば、ホスト0101の識別子を示すホストID0801と、ホスト0101が使用可能な第1階層の容量を示すTier1容量0802と、ホスト0101が使用可能な第2階層の容量を示すTier2容量0803と、を有する。
Tier1容量0802とTier2容量0803には、再配置プラン策定プログラム0304において計算された値が格納される。Tier1容量0802とTier2容量0803とは、再配置指示プログラム0305において使用される。再配置指示プログラム0305は、各階層の割当てが容量0802、0803で規定する値を超えないように、再配置指示プログラム0305を実行する。
(6)Tier管理情報(図15)
図15は、管理サーバ0102の有するTier管理情報0311の構成例を示す図である。Tier管理情報0311は、第1階層(Tier1)0503と、第2階層(Tier2)0504と、第3階層(Tier3)0505の、性能要件を管理する。Tier管理情報0311は、ユーザ(システム管理者)からの要求に応じて更新することができる。
Tier管理情報0311は、階層ID1401と、性能要件1402と、空き実領域数1403を備える。階層ID1401には、各階層の識別子が設定される。性能要件1402には、各階層の性能要件を表す値が設定される。空き実領域1403には、各階層の実領域のうち、未割当ての実領域の総数を表す値が設定される。
性能要件1402は、例えば、記憶装置0209のデバイスタイプと、RAIDグループ0210のRAIDレベルとの組合せとして定義することができる。さらに、アクセス速度等の他の性能パラメータを性能要件に含めてもよい。
(7)ボトルネック閾値管理情報(図8)
図8は、ホスト0101のボトルネック閾値を管理する情報0312の構成例を示す図である。例えば、ホスト性能履歴管理情報0313は、ホスト0101の識別子を示すホストID0701と、ホスト0101のCPU利用率閾値0702と、ホスト0101の性能ボトルネック条件の期間0703と、I/Oレスポンスタイムの目標値0704と、を有する。I/Oレスポンスタイムの目標値0704は、ホスト0101が性能ボトルネックの場合に使用される目標レスポンスタイムである。
CPU利用率閾値0702は、性能ボトルネック判別プログラム0303において、CPUボトルネックを判別するために使用する値である。例えば、ホストID0701で指定されたホスト0101のCPU利用率が、CPU利用率閾値0702を超え、かつ、CPU利用率閾値0702を超えた期間が、期間0703で指定された期間以上である場合に、ホスト0101はCPUボトルネックであると判別する。
図8では、CPU利用率閾値0702と期間0703とから性能ボトルネックを規定している。これに代えて、例えば、ネットワーク利用率などの他の指標を用いて、性能ボトルネックを判定しても良い。さらに他の指標を用いてもよく、複数の指標を組み合わせて性能ボトルネックを判定してもよい。
I/Oレスポンスタイム目標値0704は、性能ボトルネックであると判別されたホスト0101のI/Oレスポンスタイムを減少させるための目標値である。再配置プラン策定プログラム0304が、性能ボトルネックの有無を判定する。再配置プラン策定プログラム0304の詳細は後述する。
ボトルネック閾値管理情報0312の各項目0701〜0704の値は、図28で後述するホスト性能ボトルネック設定画面2700を介して、ユーザが設定する。
(8)ホスト性能履歴管理情報(図12)
図12は、ホストの性能履歴を管理する情報0313の構成例を示す図である。例えば、ホスト性能履歴管理情報0313は、ホストID1101と、CPU利用率1102と、性能情報取得日時1103と、ボトルネック1104と、を有する。
ホストID1101は、ホスト0101を一意に識別するための識別子である。CPU利用率1102は、性能情報取得日時1103における、ホスト0101のCPU利用率を示す情報である。性能情報取得日時1103は、ホスト0101の性能情報を取得した日時を示す情報である。ボトルネック1104は、ホスト0101の性能ボトルネックになっている構成要素を示す情報である。
図12では、CPU利用率1102のみを記述しているが、例えば、ネットワーク利用率などのように性能ボトルネックになり得る他の指標に変更しても良い。また、複数の指標を組み合わせて使用する構成でもよい。
ホスト性能履歴管理情報0313は、管理サーバ0102が、ホスト0101の性能データを受信した時に、管理サーバ0102により更新される。ホスト0101は、ホスト性能情報通知プログラム0114を実行し、管理サーバ0102にホストの性能データを定期的に送信する。ホストは、性能データを例えば10分毎に管理サーバに送信することができる。
(9)Tier構成別レスポンスタイム管理情報(図16)
図16は、Tierの構成別にレスポンスタイムを管理する情報0314の構成例を示す図である。Tier構成別レスポンスタイム管理表0314は、例えば、構成プランID1501と、第1階層(Tier1)1502と、第2階層(Tier2)1503と、プールレスポンスタイム1504と、を有する。
構成プランID1501は、Tier11502とTier21503との組合せである構成プランを、一意に識別するための識別子である。Tier1 1502及びTier2 1503は、再配置プラン策定プログラム0304が使用する情報であり、再配置プラン管理情報0310のTier1容量0802及びTier2容量0803に対応する。プールレスポンスタイム1504は、プール0501のレスポンスタイムを示す情報である。
(10)仮想配置先管理情報(図29)
図29は、仮想領域0502のTier配置先を管理する情報0315の構成例を示す図である。例えば、仮想配置先管理情報0315は、仮想領域ID3201と、仮想配置先3202と、を有する。
仮想領域ID3201は、仮想領域0502を一意に識別するための識別子である。仮想配置先3202は、仮想再配置プログラム3300により判定された、データ再配置先の階層を示す情報が登録される。図30で後述する仮想再配置プログラム3300により、仮想ボリューム内の仮想領域に割り当てられるべき実領域を供給する階層が一つ決定される。仮想配置先3202には、決定された階層を特定する識別情報が記憶される。
<管理サーバによる処理の概要>
図18は、管理サーバ0102が実行する処理の概要を説明するためのフローチャートである。この処理において、管理サーバは、性能情報取得プログラム0316と、再配置プラン策定プログラム0304と、再配置指示プログラム0305を実行する。以下、処理の主体を、プログラムまたは管理サーバであるとして説明する。
管理サーバは、図18の処理に入力する情報を取得するために、入力情報登録プログラム0301と、ホスト性能履歴取得プログラム0302と、性能ボトルネック判別プログラム0303と、を有する。
入力情報登録プログラム0301は、ユーザから、ホストのボトルネック閾値を取得するためのものである。ホスト性能履歴取得プログラム0302は、ホストから性能情報を取得するためのものである。性能ボトルネック判別プログラム0303は、ホストの性能ボトルネックを判別するためのものである。
ステップ1704において、管理サーバ0102は、IOPSを算出して、仮想ボリューム管理情報0308のIOPS905に格納する。具体的には、管理サーバは、ストレージ装置0103から、LAN0105を経由して、仮想ボリューム管理情報0206のアクセス数1005及びモニタリング期間1006を取得する。管理サーバは、それらアクセス数及びモニタリング期間からIOPSを計算し、仮想ボリューム管理情報0308のIOPS0905に格納する。
ステップ1701において、管理サーバは、性能ボトルネックの発生しているホストを、再配置プランの策定対象となるホスト(以下、対象ホスト)として選択する。対象ホストは「所定のホスト計算機」に該当する。
管理サーバ0102は、定期的にホスト性能履歴取得プログラム0302を実行して取得した性能情報と、性能ボトルネック判別プログラム0303で判別した性能ボトルネックのあるホストの情報とに基づき、再配置プラン策定プログラム0304の実行対象となるホストを選択する。
ステップ1702において、管理サーバは、再配置プラン策定プログラム0304により、Tier割当てのシミュレーションを行う。管理サーバは、対象ホストのI/Oレスポンスタイムが、入力情報登録プログラム0301で指定したI/Oレスポンスタイム目標値0704よりも遅くなる再配置プランを求め、再配置プラン管理情報0310に登録する。ステップ1703において、管理サーバは、ステップ1702で求めた再配置プラン管理情報0310に基づき、再配置指示プログラム0305を実行する。
以上のように、本実施形態における主な処理では、各装置0101、0103から必要な所定の情報を収集し、それらの情報に基づいて、性能ボトルネックを有するホストに割当てる上位階層(Tier1、Tier2)の容量を制限する。さらに、本実施形態の主な処理では、前記制限により未割当て状態となった上位階層の実領域を、性能ボトルネックの発生していない他のホストに割当てる。これにより、本実施形態では、性能の異なる複数階層を有するプール0501全体のレスポンスタイムを最適化できる。
今後、SSD(Solid State Drive)のように高速なI/O処理が可能な記憶装置の活用が広まり、その結果、アプリケーションにとってのボトルネックは、I/O処理速度よりも、CPU速度またはネットワーク通信速度に移動すると予想される。本実施形態は、CPUボトルネックと連動して階層再配置を行い、プールのレスポンスタイムを最適化するため、効果を発揮するであろう。
(1)性能情報取得プログラム
図23は、管理サーバ0102が仮想ボリューム(VVOL)0509の性能情報を取得する処理を説明するフローチャートの例である。管理サーバの性能情報取得プログラム0316は、まず最初にステップ2201において、仮想ボリューム管理情報0308のIOPS0905のデータを削除する処理を行う。
続いて、管理サーバ(詳しくは、性能情報取得プログラム0316)は、ステップ2203−2205を、全VVOL0509の全VSEG0502について繰り返す(ステップ2202)。
ステップ2203において、管理サーバは、仮想ボリューム管理情報(ストレージ側)0206のアクセス数1005及びモニタリング期間1006を取得する。ステップ2204において、管理サーバは、アクセス数1005とモニタリング期間1006とから、IOPSを計算する。ステップ2205において、管理サーバは、仮想ボリューム管理情報(管理側)0308のIOPS0905に、ステップ2204で算出したIOPSを格納する。
(2)再配置プラン策定プログラム
図21は、管理サーバが再配置プランを策定する処理を説明するためのフローチャートの例である。再配置プラン策定プログラム0304は、図18のステップ1701から始まるループの中で、繰り返し実行される。以下、再配置プラン策定プログラム0304のフローチャートの説明においては、図18のステップ1701で選択されたホストを対象ホストと呼ぶことにする。
管理サーバ0102の再配置プラン策定プログラム0304は、まず最初にステップ2001において、Tier構成別レスポンスタイム管理表0314(図16参照)のデータを削除し、Tier構成別レスポンスタイム管理表0314を初期化する。
ステップ2002−ステップ2008において、管理サーバは、対象ホストが使用する仮想領域(VSEG)0502に割当てる実領域(SEG)0506について、各Tierに属するSEGの数の全ての組合せの中から、所定のTierの組合せを求める。
管理サーバは、Tier1、Tier2、及びTier3にそれぞれ属するSEGの数の全組合せの中から、対象ホストのレスポンスタイムがI/Oレスポンスタイム目標値0704より遅く、かつ、プールのレスポンスタイムが最も速くなるTierの組合せを求める。
なお、ステップ2002−2008の処理は、その全てがシミュレーションとして実行される。再配置プランを作成する時点においては、ストレージ装置0103の有する仮想ボリューム0509のTier割当ては、実際には変更されない。以下、各ステップを詳細に説明する。
管理サーバは、ステップ2002で作成した各Tier容量の組合せのうちの一つの組合せについて、ステップ2004−ステップ2008までを繰り返し実行する。各Tierの容量の組合せを作る処理は、対象ホストのI/OレスポンスタイムがI/Oレスポンスタイム目標値0704以上であり、かつ、プールレスポンスタイム1504が最小である、Tier1割当てサイズ1502及びTier2割当てサイズ1503の組合せを作ることが可能であれば、どのような処理であっても良い。
例えば、対象ホストに割当てるSEG0506の総数と、対象ホストに割当てる、Tier1、Tier2、及びTier3のそれぞれのページの総数とが一致するように、Tier1、Tier2、Tier3の全組合せを順番に作る処理であっても良い。それらの考えられる全ての組合せのうち、I/Oレスポンスタイム目標値0704以上であり、かつ、プールレスポンスタイム1504が最小となる組合せを抽出すればよい。
ステップ2004では、管理サーバは、ステップ2002で指定したTier1の容量及びTier2の容量と、仮想ボリューム管理情報0308のIOPS0905とに基づいて、仮想再配置プログラム3300を行う。
図30は、仮想再配置プログラム3300を説明するフローチャートの例である。仮想再配置プログラム3300は、VSEG0502に割り当てるべきTierを決定する処理である。図30の詳細は後述する。
仮想再配置プログラム3300は、仮想ボリューム管理情報0308のIOPS0905の値が大きいVSEG0502から順に、上位Tierに仮想的に割当てる。割り当てるTierは、Tier1 0503と、Tier2 0504と、Tier3 0505の何れか1つである。仮想再配置プログラム3300は、Tier1、Tier2、Tier3の順でVSEG0502に仮想的に割当て、割当てた結果を仮想配置先管理情報0315(図29参照)に格納する。
仮想再配置プログラム3300は、対象ホストに割り当てるTier1の容量が、ステップ2002で指定したTier1の最大値を超えないことを保証する。同様に、仮想再配置プログラム3300は、対象ホストに割り当てるTier2の容量が、ステップ2002で指定したTier2の最大値を超えないことを保証する。
仮想再配置プログラム3300は、後述する再配置指示プログラム0305と類似した処理を行う。仮想再配置プログラム3300と再配置指示プログラム0305とは、計算結果である配置先を格納する場所が異なる。再配置指示プログラム0305は、仮想ボリューム管理情報(管理側)0308に配置先を格納する。これに対し、仮想再配置プログラム3300は、仮想配置先管理情報0315に配置先を格納する。
ステップ2005では、管理サーバの再配置プラン策定プログラム0304は、対象ホストのI/Oレスポンスタイムを、I/Oレスポンスタイム計算プログラム2100により計算する。
図22は、I/Oレスポンスタイムの計算処理を説明するためのフローチャートの例である。I/Oレスポンスタイム計算プログラム2100は、計算対象の全ページについて以下のステップ2101〜2103を実行する。
I/Oレスポンスタイム計算プログラム2100は、仮想ボリューム管理情報0308からIOPS0905を取得し(ステップ2101)、続いて、仮想配置先管理情報3200から仮想配置先3202を取得する(ステップ2102)。さらに、I/Oレスポンスタイム計算プログラム2100は、Tier性能履歴情報0309からレスポンスタイム0602を取得する(ステップ2103)。
I/Oレスポンスタイム計算プログラム2100は、下記の式2に基づいて、I/Oレスポンスタイムを算出する(ステップ2104)。
I/Oレスポンスタイム=Σ{計算対象のページ}(IOPS*ページの配置されているTierのレスポンスタイム)/(計算対象の全ページのIOPSの総和)・・・(式2)
ここで、上記式2のΣ{X}(Y)は、Xの各要素についてYの計算を行い、その総和を表す式である。
対象ホストのI/Oレスポンスタイムは、式2において、計算対象のページを、ホストに割当てられた仮想ボリューム0509の持つ仮想領域0502として算出すれば、求めることができる。プールのI/Oレスポンスタイムは、式2において、計算対象のページを、プール0501の全仮想ボリューム0509が有する仮想領域0502として計算すれば、求められる。
ステップ2006では、管理サーバの再配置プラン策定プログラム0304は、ステップ2005で計算した対象ホストのI/Oレスポンスタイムが、ボトルネック閾値管理表0312のI/Oレスポンスタイム目標値0704以上であるか否かを判定する。
対象ホストのI/Oレスポンスタイムが目標値0704以上であれば(ステップ2006:YES)、管理サーバは、ステップ2007において、プールのレスポンスタイムを計算する。管理サーバは、ステップ2008において、Tier構成別レスポンスタイム管理情報0314に、現在のTier構成とプールのレスポンスタイムを追加する。
管理サーバは、ステップ2004からステップ2008までを繰り返し、ホストのI/OレスポンスタイムがI/Oレスポンスタイム目標値0704以上となるTierの組合せを網羅し、Tier構成別レスポンスタイム管理情報0314に格納する。
最後に、管理サーバは、ステップ2009で、Tier構成別レスポンスタイム管理情報0314から、プールレスポンスタイム1504が最小となる上位Tierの組合せ(Tier1 1502、Tier2 1503)を探し出し、再配置プラン管理情報0310のうちホストID0801が対象ホストであるデータを更新する。
管理サーバは、Tier1容量0802にTier1 1502の値を格納し、Tier2容量0803にTier2 1503の値を格納する。
(3)再配置指示プログラム
図24は、再配置指示プログラム0305を説明するフローチャートの例である。再配置指示プログラム0305は、管理サーバ0102により決定された割当て結果(どのVSEGをどのTierに割り当てるか)を、ストレージ装置0103に送信し、ストレージ装置0103により再配置処理を実行させる。
ストレージ装置0103は、管理サーバで決定された割当て結果に基づいて、VSEG0502をSEG0506に割当てる。
再配置指示プログラム0305は、仮想ボリューム管理情報0308のIOPS0905の値が大きいVSEG0502から順に、Tierに割当てる。Tierは、Tier1 0503と、Tier2 0504と、Tier3 0505のTierと、の何れか1つである。管理サーバ0102は、Tier1、Tier2、Tier3の順にVSEG0502に割当てるべきTierを決定する。
再配置指示プログラム0305は、再配置プラン管理情報0310のTier1容量0802とTier2容量0803とが指定されている場合、その指定値に基づき、ホストに割当てるTier1の容量とTier2の容量が、それぞれ指定された値を超えないことを保証する。
ステップ2301では、管理サーバの再配置指示プログラム0305は、仮想ボリューム管理情報0308の再配置先判定結果0906の値を削除する。そして、管理サーバは、RAIDグループ管理情報0306と、管理サーバの実領域管理情報0307と、Tier管理情報0311と、から、各TierのSEG数の総数をカウントする(ステップ2301)。管理サーバは、カウントした値を、Tier管理情報0311の空き実領域数1403に格納する(ステップ2301)。なお、カウントの際には、割当て状況1603が「割当て済み」となっているデータもカウントする。
再配置指示プログラム0305は、ステップ2303―ステップ2305を、仮想ボリューム管理情報0308のIOPS0905の値が大きいVSEG順に実行する(ステップ2302)。
ステップ2303では、例えば、仮想ボリューム管理情報0308の、仮想領域ID0902及びホストID0907から、VSEG0502とホスト0101との対応関係を取得する。以下、対応関係のあるホストを対象ホストと呼ぶ。そして、管理サーバは、Tier管理情報0311を用いて、空き実領域数1403の値が1以上である、最も上位のTierを、配置先として選択する(ステップ2303)。
ステップ2304では、管理サーバは、再配置プラン管理情報0310のTier1容量0802が対象ホストに指定されている場合、仮想ボリューム管理情報0308を参照して、対象ホストのTier1割当量がTier1容量0802を超えていないことを確認する。対象ホストのTier1割当量がTier1容量0802を超えている場合、管理サーバは、VSEGの配置先を、Tier1から一つ下の階層であるTier2に変更する。
同様に、対象ホストに再配置プラン管理情報0310のTier2容量0803が指定されている場合、管理サーバは、仮想ボリューム管理情報0308を参照して、対象ホストのTier2割当量がTier2容量0803を超えていないことを確認する。対象ホストのTier2割当量がTier2容量0803を超えている場合、管理サーバは、VSEGの配置先を、Tier2から一つ下の階層であるTier3に変更する。
ステップ2305では、管理サーバは、再配置先判定結果0906の値を配置先Tierに更新し、配置先Tierの空き実領域数1403の値を1つ減らす。
ステップ2306で、ストレージ装置0103は、仮想ボリューム管理情報0206の再配置先判定結果1007に基づき、データ再配置プログラム0203を実行する。
図31は、図24にステップ2306として示す実領域割当ての処理を説明するためのフローチャートの例である。再配置指示プログラム0305は、全てのVSEG0502について、IOPSの高い順に以下のステップ4002〜ステップ4007を実行する(ステップ4001)。
以後、実行対象のVSEGを対象VSEGと呼ぶ。また、対象VSEGの再配置先判定結果0906を配置先と呼ぶ。
ステップ4002では、管理サーバは、RAIDグループ管理情報0306と、管理サーバ0102の実領域管理情報0307と、Tier管理情報0311とから、対象VSEGに割り当てられているTierを取得する。
管理サーバは、対象VSEGに割り当てられているTierと配置先Tierとが一致しているか否かを確認する(ステップ4002)。両者が一致した場合(ステップ4002:YES)、管理サーバは、次のVSEGを処理対象とする。両者が一致しなかった場合(ステップ4002:NO)、管理サーバは、ステップ4003を実行する。
ステップ4003では、管理サーバは、RAIDグループ管理情報0306と、実領域管理情報0307と、Tier管理情報0311とから、配置先として指示されたTier内に未割当てのSEG0508があるか確認する。
未割当てのSEG0508が有る場合(ステップS4003:YES)、管理サーバは、ステップ4004において、未割当てのSEGの中から1つのSEGを選択し、選択したSEG(移行先)に、対象VSEG0502に割当てられているSEG(移行元)のデータを移行させる。
データの配置先を変えるために、再配置指示プログラム0305は、移行元SEGから移行先SEGにデータを移行するように、ストレージ装置0103に指示する。ストレージ装置0103のストレージ制御プログラム0134は、再配置指示プログラム0305からの指示を受信すると、移行元SEG0508から移行先SEG0508にデータを移行する。
未割当てのSEG0508が無い場合(ステップ4003:NO)、管理サーバは、ステップ4005を実行する。ステップ4005において、管理サーバは、RAIDグループ管理情報0306と、実領域管理情報0307と、Tier管理情報0311とから、配置先Tierに、入れ替え可能な実領域(SEG)があるか否かを判定する。
具体的には、管理サーバは、配置先として指示されたTier内の割当て済みSEGの中から、そのSEGが割り当てられているVSEGに対応する再配置先判定結果0906が、実領域ID0904で指定されているSEGのTierと一致するものが存在するか否かを判定する。
例えば、管理サーバは、Tier2からTier1にVSEG0502を移行させる場合に、Tier1の割当済みSEG0508に対応するVSEG0502のうち、Tier2への移行が予定されているVSEG0502が有るか否かを判定する。
配置先Tierに入れ替え可能な領域がある場合(ステップ4005:YES)、管理サーバは、ステップ4006を実行する。
入れ替え可能な領域が無い場合(ステップ4005:NO)、管理サーバは、ステップ4007において、配置先Tierに性能が最も近い他のTier内の未割当のSEGを選択する(ステップ4007)。管理サーバは、性能の近いTier内の未割当てSEGに、対象VSEGに割り当てられているSEGのデータを移行させる。具体的なデータの移行方法は、ステップ4004で述べたと同様である。
ステップ4006では、管理サーバの再配置指示プログラム0305は、対象VSEGのSEGと、入れ替え可能なVSEGのSEGのデータとを入れ替えるように、ストレージ装置0103のストレージ制御プログラム0134に指示する。ストレージ制御プログラム0134は、再配置指示プログラム0305からの指示を受信すると、指定された各実領域間でデータを入れ替る。
ステップ4004と、ステップ4006と、ステップ4007とでは、管理サーバは、データ移行後またはデータ入れ替え後、データ移行先のSEG0508の割当て状況1603を「割当済み」に更新する。
さらに、管理サーバは、仮想ボリューム管理情報0308の実領域IDを、選択したSEG0508に更新する。管理サーバは、ステップ4004とステップ4007とで、データ移行元のSEG0508の割当て状況1603を「未割当て」に更新する。
最後に、図24のステップ2307では、ストレージ装置0103が、管理サーバ0102から、仮想領域ID0902と、実領域ID0904と、再配置先判定結果0906と、を取得する。ストレージ装置は、仮想ボリューム管理情報0206のうち、仮想領域ID1002が仮想領域ID0902と対応するデータに、実領域ID1004と再配置先判定結果1007とを格納する(ステップ2307)。
(4)入力情報登録プログラム
図27は、入力情報登録プログラム0301を示すフローチャートの例である。入力情報登録プログラム0301は、ユーザがホスト性能ボトルネック設定画面2700(図28参照)から入力した情報を、ボトルネック閾値管理情報0312に格納するための処理を行う。
図28の画面2700は、ユーザがホストの性能ボトルネックに関する値を設定するために使用される。画面2700は、例えば、ホストを指定するホスト名入力部2701と、ボトルネック閾値を指定するボトルネック閾値入力部2702と、ボトルネックの発生している期間を指定するボトルネック発生期間入力部2703と、定数を入力する定数入力部2704とを含む。入力内容を設定する場合、ユーザは登録ボタン2705を押す。入力内容を取り消す場合、ユーザはキャンセルボタン2706を押す。
管理サーバの入力情報登録プログラム0301は、ステップ2601において、ボトルネック閾値管理表0312に、ユーザが各入力部2701〜2704で入力した情報を記憶させる。
つまり、ボトルネック閾値管理表0312において、ホスト名2701で指定されたホストID0701のCPU利用率閾値0702と、期間0703と、I/Oレスポンスタイム目標値0704の値を、ユーザが入力したCPU利用率2702と、期間2703、I/Oレスポンスタイム目標値2704にそれぞれ更新する。
(5)ホスト性能履歴取得プログラム
図19は、ホスト性能履歴取得プログラム0302を説明するためのフローチャートの例である。ホスト性能履歴取得プログラム0302は、全てのホストから性能情報を取得して、性能ボトルネックの有無を判別し、ホスト性能履歴管理情報0313を更新する処理を行う。
ステップ1801では、管理サーバのホスト性能履歴取得プログラム0302は、ホスト0101のホストIDと、CPU利用率と、情報取得時の日時とを、ホストのホスト性能情報通知プログラム0114から取得する。ステップ1802では、管理サーバは、ステップ1801で取得した、ホストIDと、CPU利用率と、情報取得の日時を、ホスト性能履歴管理情報0313のホストID1101と、CPU利用率1102と、情報取得日時1103と、に登録する。
ステップ1803では、管理サーバは、性能ボトルネックの判別処理を実行し、性能ボトルネックが有る場合、ホスト性能履歴管理情報0313のボトルネック1104を更新する。
図19では、ステップ1801において、ホストから取得する性能情報としてCPU利用率のみを記述しているが、これに代えて、例えばネットワーク利用率等のように、性能ボトルネックになり得る別の情報を用いても良い。また、複数の情報を組み合わせて、性能ボトルネックを判定する構成としても良い。ステップ1801で取得する情報に対応して、ホスト性能履歴管理情報0313の項目を変更する。
(6)性能ボトルネック判別プログラム
図20は、性能ボトルネック判別プログラム0303を説明するためのフローチャートの例である。性能ボトルネック判別プログラム0303は、ホスト性能履歴取得プログラム0302から処理対象ホストを指定して呼び出される。以後、このホストを対象ホストと呼ぶ。
性能ボトルネック判別プログラム0303は、ボトルネック閾値管理情報0312とホスト性能履歴管理情報0313とに基づき、対象ホストの性能ボトルネックの有無を判別し、ホスト性能履歴管理情報0313のボトルネック1104を更新する。
ステップ1901では、管理サーバの性能ボトルネック判別プログラム0303は、ホスト性能履歴管理情報0313のホストID1101が対象ホストと一致するデータの中で、情報取得日時1103が新しい順にステップ1902−1904を実行する。
ステップ1902では、管理サーバは、ホスト性能履歴管理情報0313のCPU利用率1102が、ボトルネック閾値管理情報0312のCPU利用率閾値0702を超過しているか否かを判定する。超過している場合(ステップ1902:YES)、ステップ1903に移動する。超過していない場合(ステップ1902:NO)、ステップ1905に移動する。
ステップ1903では、管理サーバは、対象ホストが、期間0313以上の間、性能ボトルネックであるか否かを判定する。性能ボトルネックである期間とは、ホスト性能履歴管理情報0313の最新の情報取得日時1103から、繰り返し処理で見ているホスト性能管理情報0313の情報取得日時1103まで、とする。
期間0313以上の間、CPU利用率1102がCPU利用率閾値0702を超過している場合(ステップ1903:NO)、管理サーバは、CPUが性能ボトルネックであると判定する。管理サーバは、ステップ1904において、ホストID1101が対象ホストと一致しているデータの中で、ホスト性能履歴管理情報0313の最新の情報取得日時1103のボトルネック1104を「CPU」に更新する。
ステップ1905では、管理サーバは、対象ホストに性能情報ボトルネックが生じているか否かを、ホスト性能履歴管理情報0313のボトルネック1104に格納されている値の有無で判別する。
ボトルネック1104に値が格納されている場合(ステップ1905:YES)、本処理は終了する。ボトルネック1104に値が格納されていない場合(ステップ1905:NO)、ステップ1906に移動する。
ステップ1906では、管理サーバは、再配置プラン管理情報0310のデータの中で、対象ホストとホストIDが一致するデータのTier1容量0802の値と、Tier2容量0803の値とを削除する。Tier1容量0802の値とTier2容量0803の値とを削除することで、図24に示す再配置指示処理のステップ2304において、対象ホストは容量が制限されなくなる。
本実施例によれば、性能ボトルネックの発生しているホストが使用する仮想ボリュームへの上位Tierの割当量を制限し、性能ボトルネックの発生していない他のホストの使用する仮想ボリュームに、上位Tierの実領域を割り当てる。従って、上位Tierの実領域をより効率的に使用することができ、プール全体としてのレスポンスタイムを向上させることができる。
図32〜図34を参照して第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に該当する。そこで、以下では、既に説明された構成と異なる構成を中心に説明する。
本実施例では、第1実施例における再配置プラン策定プログラム0304において、ユーザ(例えば、ストレージ管理者)が手動で構成プランを選択する。第1実施例では、再配置プラン策定プログラム0304において、再配置シミュレーションを行い、再配置後のプールのレスポンスタイムのみを評価していた。
これに対し、本実施例では、例えば、再配置後の各ホストのレスポンスタイムを確認して、ユーザが適切な構成プランを選択する。これにより、例えば、ホストの優先度、または、ホストの性能要求など、ユーザの意思を、Tier構成のプランに反映することが可能となる。
例えば、ユーザは、優先度の高いホストの方が優先度の低いホストよりも大きく性能が向上する構成プランを選択できる。その結果、本実施例では、ホストの優先度を考慮して、ホストのレスポンスタイムを最適化することができる。
本実施例では、第1実施例における再配置プラン策定プログラム0304のステップ2009に替えて、ユーザが構成プラン(再配置プラン)を選択する。つまり、図21に示すステップ2009は、本実施例において、「ユーザが複数の再配置プランの中から、再配置プランを一つ選択する。」と変更される。
ユーザは、再配置プラン策定プログラム0304で作成したTier構成の組合せを画面上で確認して、最適な組合せ(再配置プラン)を選択する。ユーザが再配置プランを選択した後、管理サーバは、再配置指示プログラム0305を実行する。
図32は、ホスト性能管理情報2800の構成例である。管理サーバ0102の補助記憶装置0123が、ホスト性能管理情報2800を有している。ホスト性能管理情報2800は、後述する構成プラン別ホスト性能情報画面2900において、構成プラン適用前のレスポンスタイム2906を表示するために使用する。
図33は、本実施例における構成プラン別のホスト性能情報をユーザに提示するための画面2900である。図33では、例えば、ホスト1が性能ボトルネックである場合の例を表示している。以下、性能ボトルネックであるホストを対象ホストと呼ぶ。
画面2900は、構成プラン情報2909と、ホスト性能情報2910とを表示することができる。
構成プラン情報2909は、構成プランID2901と、Tier1 2902と、Tier2 2903と、プールレスポンスタイム2904と、を有する。構成プランIDは、構成プランを一意に識別するための識別子である。Tier1 2902は、対象ホストに割当てることができるTier1の容量を示す値である。Tier2 2903は、対象ホストに割当てることができるTier2の容量を示す値である。プールレスポンスタイムは、容量を制限した場合のプールのレスポンスタイムの予測値を示す。なお、例えば、レスポンスタイムの昇順に構成プランをソートして、構成プラン情報2909を表示してもよい。
ホスト性能情報2910は、ホストID2905と、構成プランを適用する前のレスポンスタイム2906と、構成プランを適用した後のレスポンスタイム2907と、を有する。ホストID2905は、ホストを一意に識別するための識別子である。
構成プランを適用する前のレスポンスタイム2906には、ホスト性能管理情報2800のI/Oレスポンスタイム2802を表示する。I/Oレスポンスタイム2802は、構成別ホスト性能情報2900の表示前に、管理サーバが値を計算し、格納する。例えば、管理サーバは、再配置指示プログラム0305を実行した後に、I/Oレスポンスタイムを計算する。
I/Oレスポンスタイム2802の計算は、I/Oレスポンスタイム計算処理2100に基づく。ただし、本実施例では、ステップ2102で仮想配置先管理情報0315から、対象ページの仮想配置先3202を取得する替わりに、仮想ボリューム管理情報0308から、対象ページの再配置先判定結果0906を取得する点が異なる。管理サーバは、I/Oレスポンスタイムの計算結果を、ホスト性能管理情報2800のI/Oレスポンスタイム2802に格納する。
構成プラン適用前レスポンスタイム2906は、本実施例では、管理サーバが値を計算している。これに代えて、各ホストのレスポンスタイムの実測値をレスポンスタイム2906として使っても良い。
構成プランを適用した後のレスポンスタイム2907は、ユーザが構成プランを選択した時に、管理サーバが、その選択された構成プランで仮想再配置プログラム3300を実行し、I/Oレスポンスタイム計算処理2100で算出された値を画面に表示する。
ユーザは、構成プラン情報2909に表示されている構成プランの中から、何れか1つを選択する。構成プランの選択後に、選択した構成プランに対応したホスト性能情報2910が、例えば同一画面の下部に表示される。
図33では、点線で囲む「Plan2」を選択した場合の、ホスト性能情報2910の表示を例示している。ホスト性能情報2910は、ホストID 2905と、構成プラン適用前のレスポンスタイム2906と、構成プラン適用後のレスポンスタイム2907とを含む。
ユーザが選択した構成プランで仮想再配置プログラム3300を実行し、各ホストのI/OレスポンスタイムをI/Oレスポンスタイム計算処理2100に基づいて計算する。その計算結果をホスト性能情報2910の構成プラン適用後レスポンスタイム2907に表示する。ユーザは、ホスト性能情報2910に表示される値を確認し、最適な構成プランを一つ選択する。
図34は、ホストの性能情報をユーザに提示するための画面3400の例である。ユーザは、管理サーバがホストに適用した構成プランをホスト性能情報画面3400を介して確認できる。ユーザが、構成プランを変更する場合には、変更対象のホストを選択し、選択したホストを対象とした構成プラン別ホスト性能情報2900を開き、構成プランを変更できる。
ホストID3401は、ホストを一意に識別するための識別子である。Tier1容量3402及びTier2容量3403は、再配置プラン管理情報0310において、ホストID0801とホストID3401の値が一致しているデータの、Tier1容量0802及びTier2容量0803の値である。
ボトルネック3404は、ホストID3401で識別されるホストにおける、ホスト性能履歴情報0313内の最新の情報取得日時1103のボトルネック1104の値を表示する。レスポンスタイム3405は、ホスト性能管理情報2800において、ホストID2801とホストID3401の値が一致しているデータの、I/Oレスポンスタイム2802の値である。
なお、ユーザに提示する情報は、図示した表示順序及び表示内容に限定されるものではなく、表示順序を変更する機能があっても良いし、更に、情報の一部を隠す機能があっても良い。
このように構成される本実施例も第1実施例と同様の効果を奏する。本実施例では、ユーザ自身が最適と考えるプランを選択できるため、ユーザの使い勝手が向上する。例えば、計算機システムに熟知したユーザにとって、本実施例の構成は使いやすいであろう。これに対し、第1実施例では、プールレスポンスタイムが向上するプランを自動的に選択するため、経験の少ないユーザにとって便利であろう。第1実施例と第2実施例とを組み合わせて、自動的に選択されたプランを、ユーザが手動で変更する構成としてもよい。さらに、例えば、複数のプールのうち一方のプールについては第1実施例を適用し、他方のプールについては第2実施例を適用する、構成としてもよい。
図35〜図37を参照して第3実施例を説明する。本実施例では、I/Oレスポンスタイム目標値0704を、手動または自動のいずれかで設定できるようになっている。
本実施例では、例えば、ユーザが、I/Oレスポンスタイム目標値を自動設定した場合、管理サーバが、ホスト0101のI/Oレスポンスタイム目標値を、CPUボトルネックであるホストのCPUボトルネックが解消されるまで、再配置を実行する毎に徐々に大きい値に変更する。本実施例により、ユーザがI/Oレスポンスタイム目標値を手動設定する手間を省略でき、ユーザの使い勝手を向上できる。以下、第1実施例または第2実施例との相違点を中心に説明する。
図35は、ホストの性能ボトルネック閾値を設定する画面3000の例である。本実施例の画面3000と、第1実施例及び第2実施例におけるホスト性能ボトルネック閾値設定画面2700との相違点を述べる。本実施例の画面3000は、I/Oレスポンスタイム目標値の自動設定3005を有する。
ユーザが、自動設定3005を選択すると、ボトルネック閾値管理情報0312のI/Oレスポンスタイム自動設定3505に「On」が格納される。ユーザが、手動設定を選択した場合は、ボトルネック閾値管理情報0312のI/Oレスポンスタイム自動設定3505に「Off」が格納される。自動設定部3005以外の構成3001〜3004、3006、3007は、ホスト性能ボトルネック閾値設定画面2700の2701〜2704、2705、2706と同一であるため、説明を省略する。
図36の前に図37を説明する。図37は、本実施例におけるホストの性能ボトルネック閾値を管理する情報0312の構成例である。本実施例と、第1実施例及び第2実施例との相違点は、本実施例におけるボトルネック閾値管理情報0312がI/Oレスポンスタイム自動設定3505を有する点である。I/Oレスポンスタイム自動設定3505は、ユーザが、I/Oレスポンスタイム目標値を自動設定にした場合Onを格納し、手動設定にした場合はOffを格納する。他の項目3501〜3504は、図8に示すボトルネック閾値管理情報0312の0701〜0704と同一のため、説明を省略する。
図36は、本実施例における再配置プランの策定および実行を説明するフローチャートの例である。本実施例と第1実施例及び第2実施例との相違点は、本実施例の処理3100がステップ3104及びステップ3105を有する点である。以後、性能ボトルネックがあり、再配置プラン策定処理の対象となっているホストを、対象ホストと呼ぶ。
管理サーバは、性能情報を取得する処理を実行する(ステップ3106)。管理サーバは、性能ボリュームを有するホストについて、以下のステップ3104、3102、3105を実行する(ステップ3101)。
ステップ3104において、管理サーバ0102は、対象ホストにおけるボトルネック閾値管理情報0312のI/Oレスポンスタイム自動設定3505が「On」であるか否かを判定する。
「On」の場合、ステップ3105において、管理サーバ0102は、対象ホストのI/Oレスポンスタイム目標値3504に、対象ホストのレスポンスタイムより大きい値を目標値として格納する。目標値は、例えば、対象ホストに関するホスト性能管理情報2800のI/Oレスポンスタイム2802と、所定のステップ幅との積として求めることができる。
所定のステップ幅は、例えば、1.1のように小さな値に設定することができる。ステップ幅は、管理サーバに予め定義された値を使っても良いし、ユーザが入力した値を使っても良い。ステップ幅をユーザが入力する場合、管理サーバ0102は、ユーザに対し、ステップ幅を入力するための画面を提示する。
I/Oレスポンスタイム目標値の計算方法は、対象ホストの現在のI/Oレスポンスタイムよりも目標値の方が大きい値になる計算方法であれば、前記以外の他の方法を用いてもよい。
ただし、現在のI/Oレスポンスタイムと比べて大きすぎるI/Oレスポンスタイム目標値を算出する方法の場合は、I/Oレスポンスタイムが遅くなりすぎて、性能問題を引き起こす可能性がある。これとは逆に、現在のI/Oレスポンスタイムと比べて小さすぎるI/Oレスポンスタイム目標値を算出する方法では、CPUボトルネックを解消するための処理ステップ3100の実行回数が多くなる。
対象ホストにCPUボトルネックが発生している限り、ステップ3100を繰り返す毎に、ステップ3105で指定するI/Oレスポンスタイム目標値3504は徐々に大きくなり、この結果、対象ホストのI/Oレスポンスタイムは遅くなる。そのため、ステップ3100を繰り返すことにより、対象ホストのボトルネックは、CPUからI/Oに移り、CPUボトルネックは解消される。
このように構成される本実施例も前記各実施例と同様の効果を奏する。本実施例では、レスポンスタイム目標値を自動的に設定するモード(ステップ3105)を備えるため、ユーザの使い勝手がさらに向上する。
図38〜図41を参照して第4実施例を説明する。第4実施例では、再配置プラン策定処理2000におけるステップ2002において、Tier1の容量とTier2の容量の組合せを探索する範囲を絞込み、処理ステップ2004−2008の繰り返し回数を低減する。
本実施例により、各ホストとプールのI/O分布を考慮した再配置プラン策定処理2000を高速化できる。従って、大容量のプール及びホストに対しても、本実施例を高速に適用できる。以後、性能ボトルネックがあり、再配置プラン策定処理を行う対象となっているホストを対象ホストと呼ぶ。
本実施例では、例えば、対象ホストのI/Oレスポンスタイムが減少する比と、プールのI/Oレスポンスタイムが増加する比との2種類の指標を用いて、Tier容量とTier2容量の組合せを探索する範囲を絞り込む。以下、第1実施例、第2実施例、または第3実施例との相違点を中心に説明する。
図38は、レスポンスタイム変化指標を管理する情報3600の構成例を示す。レスポンスタイム変化指標管理情報3600は、管理サーバ0102の補助記憶装置0123に記憶される。レスポンスタイム変化指標管理情報3600は、再配置プラン策定処理3900を実行した場合における、ホストのI/Oレスポンスタイムの変化量の特徴と、プールのI/Oレスポンスタイムの変化量の特徴とを、格納するために用いられる。
例えば、レスポンスタイム変化指標管理情報3600は、ホストの識別子を表すホストID3601と、ホストのI/Oレスポンスタイムの変化量の特徴を表すホストI/Oレスポンスタイム減少比3602と、プールのI/Oレスポンスタイムの変化量の特徴を表すプールI/Oレスポンスタイム増加比3603と、を有する。
ホストI/Oレスポンスタイム減少比3602は、管理サーバ0102が、対象ホストに対して、Tier1の容量を1ページ減少させた場合のホストのI/Oレスポンスタイムの変化量と、Tier2の容量を1ページ減少させた場合のホストのI/Oレスポンスタイムの変化量との比である。
ホストI/Oレスポンスタイム減少比3602が大きい程、ホストのI/Oレスポンスタイムに与えるTier1の影響が大きく、Tier2の影響は小さいことを示す。
例えば、ホストI/Oレスポンスタイム減少比が「3」の場合を説明する。この場合、ホストが使用するTier1を1ページ減少させ、かつ、ホストが使用するTier2を1ページ増加させることと、ホストが使用するTier2を3ページ減少させ、かつ、ホストが使用するTier3を3ページ増加させることとは、ホストのI/Oレスポンスタイムを減少させる観点において同等である。
プールI/Oレスポンスタイム増加比3603は、プールで使用可能なTier1の容量が1ページ増加し、かつ、Tier2が1ページ減少した場合のプールのレスポンスタイムの変化量と、プールで使用可能なTier2の容量が1ページ増加し、かつ、Tier3が1ページ減少した場合のプールのレスポンスタイムの変化量との比である。
プールI/Oレスポンスタイム増加比3603が大きい程、プールのI/Oレスポンスタイムに対するTier1の影響が大きく、Tier2の影響が小さくなる。例えば、プールI/Oレスポンスタイム増加比が「2」の場合を説明する。この場合、プールが使用するTier1を1ページ増加させ、かつ、プールが使用するTier2を1ページ減少させることと、プールが使用するTier2を2ページ増加させ、かつ、プールが使用するTier3を2ページ減少させることとは、プールのI/Oレスポンスタイムを増加させる観点において同等である。
図39は、ホストI/Oレスポンスタイム減少比を計算するための処理を説明するフローチャートの例である。対象ホストの仮想領域(VSEG)0502の中で、Tier1に割当てられているN個の仮想領域0502をTier2に移行したときのレスポンスタイムの変化量と、Tier2に割当てられているN個の仮想領域0502をTier3に移行したときのレスポンスタイムの変化量と、の比から、ホストI/Oレスポンスタイム減少比3602を計算する。例えば、本実施例では、N=10とする。
Nは、管理サーバに予め定義された値を使っても良いし、ユーザが入力した値を使っても良い。Nが小さい程、ホストI/Oレスポンスタイム減少比の計算結果の誤差が大きくなるが、処理時間は短い。Nが大きい程、ホストI/Oレスポンスタイム減少比の計算結果の誤差は小さくなるが、処理時間が長くなる。
ステップ3701において、管理サーバ0102は、仮想ボリューム管理情報0308から、再配置プラン策定処理3900の対象ホストの仮想領域ID0902と、IOPS0905と、再配置先判定結果0906と、を取得する。
ステップ3702において、管理サーバは、ステップ3701で取得したデータのうち、再配置先判定結果0906が「Tier1」であるデータを抽出する。管理サーバは、判定結果が「Tier1」であるデータがTier2へ移行する順序を特定するために、IOPSの降順にそれらのデータ(ページ)をソートする。再配置処理0305では、IOPSの降順に処理を行うため、Tier1からTier2へと移行するページは、IOPSの小さいページである。
ステップ3703で、管理サーバは、移行元のページのI/Oレスポンスタイムを計算する。I/Oレスポンスタイムの計算には、第1実施例で述べた式2を使用する。計算対象のページは、Tier1の下位N個のページである。ページの配置されているTierは、全て移行元のTier1とする。
ステップ3704において、管理サーバは、ステップ3703と同様に、移行先のページのI/Oレスポンスタイムを計算する。ただし、ページの配置されているTierは、全て移行先のTier2とする。式2の計算結果からステップ3703の計算結果を引いた値を計算する。
ステップ3705―ステップ3707までの処理は、ステップ3702―ステップ3704までの処理と同様である。ただし、ステップ3705−ステップ3707では、ステップ3702−ステップ3704における移行元のTier1、移行先のTier2を、それぞれTier2、Tier3に置き換えて処理を行う。
ステップ3708において、管理サーバは、ホストI/Oレスポンスタイム減少比を計算する。ホストI/Oレスポンスタイム減少比は、ステップ3704の計算結果と、ステップ3707の計算結果の商(ステップ3704の計算結果/ステップ3707の計算結果)である。
図40は、プールI/Oレスポンスタイム増加比の計算処理を説明するためのフローチャートの例である。プールの仮想領域0502の中で、Tier2に割当てられているN個の仮想領域0502をTier1に移行した場合のレスポンスタイムの変化量と、Tier3に割当てられているN個の仮想領域0502をTier2に移行した場合のレスポンスタイムの変化量との比から、プールI/Oレスポンスタイム増加比3603は算出される。
プールI/Oレスポンスタイム増加比計算処理3800は、ホストI/Oレスポンスタイム減少比計算処理3700と類似している。それらの相違点を述べる。ホストI/Oレスポンスタイム減少比計算処理3700では、IOPSの下位N個の仮想領域を現在Tierよりも下位のTierに移行したときの、I/Oレスポンスタイムの変化量を計算する。これに対し、プールI/Oレスポンスタイム増加比計算処理3800では、IOPSの上位N個の仮想領域を現在Tierよりも上位Tierに移行したときの、I/Oレスポンスタイムの変化量を計算する。
ステップ3801において、管理サーバ0102は、仮想ボリューム管理情報0308から、仮想領域ID0902と、IOPS0905と、再配置先判定結果0906と、を取得する。
ステップ3802において、管理サーバは、ステップ3801で取得したデータのうち、再配置先判定結果0906がTier2であるデータを抽出する。そして、管理サーバは、Tier2のデータがTier1へ移行する順序を特定するために、IOPSの降順にソートする。再配置処理0305では、IOPSの降順に処理を行うため、Tier2からTier1へと移行するページは、IOPSの大きいページである。
ステップ3803において、管理サーバは、移行元のページのI/Oレスポンスタイムを計算する。I/Oレスポンスタイムは、仮想ボリューム管理情報0308のIOPS0905と、Tier性能履歴情報0309のレスポンスタイム0602に基づき、式2により計算する。式2における計算対象のページは上位N個のページ(仮想領域)であり、ページの配置されているTierはTier2である。
ステップ3804において、ステップ3803と同様の計算を行う。ただし、式3において、ページの配置されているTierは移行先のTier1である点が異なる。式2の計算結果からステップ3803の計算結果を引いた値を計算する。
ステップ3805―ステップ3807の処理は、ステップ3802―ステップ3804と同様である。ただし、ステップ3805−3807では、ステップ3802−ステップ3804における移行元のTier2、移行先のTier1を、それぞれTier3、Tier2に置き換えて処理を行う。
ステップ3808において、管理サーバは、プールI/Oレスポンスタイム増加比を計算する。プールI/Oレスポンスタイム増加比は、ステップ3804の計算結果と、ステップ3807の計算結果の商(ステップ3804の計算結果/ステップ3807の計算結果)である。
図41は、本実施例における再配置プランの策定および実行を説明するフローチャートの例である。再配置プラン策定処理3900は、第1実施例の再配置プラン策定処理2000(図21参照)に、探索範囲の絞り込み処理を加えた処理である。本実施例では、再配置プラン策定処理を、再配置プラン策定処理2000ではなく、再配置プラン策定処理3900によって行う。
ステップ3901において、管理サーバ0102は、対象ホストのホストI/Oレスポンスタイム減少比をホストI/Oレスポンスタイム減少比計算処理3700によって計算する。ステップ3902において、管理サーバは、プールI/Oレスポンスタイム増加比をプールI/Oレスポンスタイム増加比計算処理3800によって計算する。
ステップ3903において、管理サーバは、対象ホストと、ステップ3901で計算したホストI/Oレスポンスタイム減少比と、ステップ3902で計算したプールI/Oレスポンスタイム増加比とによって、図38に示すレスポンスタイム変化指標管理情報3600を更新する。
再配置プラン策定処理3900のステップ3904と、ステップ3907と、ステップ3908とは、再配置プラン策定処理2000のステップ2001と、ステップ2004−ステップ2008と、ステップ2009とに対応し、同一処理を実行する。そこで、ステップ3904、3907、3908の説明は省略する。
ステップ3905において、管理サーバは、ホストI/Oレスポンスタイム減少比とプールI/Oレスポンスタイム増加比とから、Tier1容量を減少させた場合のプールI/Oレスポンスタイムへの効果と、Tier2容量を減少させた場合のプールI/Oレスポンスタイムへの効果とを比較する。管理サーバは、比較結果に基づいて、Tier1、Tier2の組合せを作成する(ステップ3905)。
管理サーバは、ホストI/Oレスポンスタイム減少比3602とプールI/Oレスポンスタイム増加比3603とから、Tier1容量またはTier2容量のどちらを優先的に減少させれば良いか判断ができる。
例えば、増加比3603と減少比3602との商(増加比3603/減少比3602)が1以上の場合を説明する。この場合、プールI/Oレスポンスタイム向上への効果は、Tier1容量を減少させる方が、Tier2容量を減少させるよりも大きくなる。増加比3603と減少比3602との商を、以降、増加減少比と呼ぶ。
増加減少比が1以上の場合、ステップ3905において、管理サーバは、Tier1容量の減少による対象ホストのI/Oレスポンスタイムの減少量が、一定値以上である構成プランを作成する。
例えば、増加減少比が大きい程、Tier1容量を減少させた場合にプールのレスポンスタイムが大きく向上する点を考慮して、管理サーバは、以下の式3により、Tier1容量の減少による対象ホストのレスポンスタイム減少量の下限値を定める。
Tier1容量の減少による対象ホストのレスポンスタイム減少量の下限値={(増加減少比−1)/(増加減少比)}*(I/Oレスポンスタイム目標値−再配置前の対象ホストのI/Oレスポンスタイム)・・・(式3)
式3によれば、例えば、増加減少比が2の場合、減少させる必要があるI/Oレスポンスタイムの半分が、Tier1容量の減少による対象ホストのレスポンスタイム減少量の下限となる。
式3により、増加減少比の増加に比例して、Tier1容量の上限値を小さくできることがわかる。Tier1容量の上限値は、例えば、対象ホストのレスポンスタイム減少量が下限値になるまで、Tier1容量を1ページずつ徐々に減少させることで、計算することができる。
増加減少比が1以下の場合、ステップ3905の処理を、値を置き換えて実行する。置き換える値は、増加減少比とTier1容量である。増加減少比を、増加減少比の逆数で置き換え、さらに、Tier1容量を、Tier2容量で置き換える。
ステップ3906において、管理サーバは、ステップ3905で作成した組合せを用いて処理を行う。これにより、管理サーバは、Tier1の容量とTier2の容量の組合せの探索範囲を絞り込むことができる。
管理サーバ0102は、ユーザが確認できるように、ホストI/Oレスポンスタイム減少比3602とプールI/Oレスポンスタイム増加比3603を、画面に提示する機能を有しても良い。
なお、ステップ3905において、組合せを更に絞り込む方法を説明する。その方法では、本実施例に加えて、増加比3603と、減少比3602と、再配置プランの組合せとを、履歴として保持する。さらに他の方法として、ステップ3901で計算した減少比3602と、ステップS3902で計算した増加比3603とが、履歴データ内の減少比及び増加比と類似する場合に、履歴データの再配置プランを参考にすることもできる。例えば、管理サーバは、履歴データ内のTier1とTier2の比率の周辺のみを探索することで、処理時間を短縮できる。
このように構成される本実施例も前記各実施例と同様の効果を奏する。さらに、本実施例では、再配置プランの策定に際して、本実施例に特徴的な判別指標である増加減少比を使用する。本実施例では、その特徴的指標を用いて、Tier1の容量とTier2の容量の組合せを探索する範囲を絞込む。従って、本実施例では、より高速に、再配置プランを作成できる。
図42及び図43を参照して、第5実施例を説明する。本実施例では、再配置プラン策定処理2000において、プールのI/Oレスポンスタイムを最小とするTier1 1502とTier2 1503の組合せを選択する替わりに、それとは異なる評価指標で、Tier1 1502とTier2 1503を選択する。
本実施例により、例えば、管理サーバが再配置プランを選択する際、再配置によって性能の向上するホストの中で、優先度の高いホストの数が、優先度の低いホストの数より多くなるような再配置プランを選択できる。以下、第1実施例または第2実施例との相違点を中心に説明する。
図42は、本実施例による再配置プラン策定処理のフローチャートである。管理サーバは、ステップ2006の次に、優先度の高いホストのうち、レスポンスタイムの向上したホストの数をカウントする(ステップ2007A)。ホストの優先度は、ユーザが設定してもよいし、または、ホストの種類等に応じて自動的に設定してもよい。例えば、バッチ処理であれば優先度を低くし、トランザクション処理であれば優先度を高くする。
管理サーバは、図43に示す、Tier構成別のレスポンスタイムを管理する情報0314Aにおいて、ホスト数1505の値を、ステップ2007Aで算出した値に更新する(ステップ2008A)。図43に示す管理情報0314Aは、図16の管理情報0314のプールレスポンスタイム1504に代えて、ホスト数1505を備える。
管理サーバは、ステップ2009Aにおいて、レスポンスタイムの改善されるホスト数が最大となる、Tier1 1502とTier2 1503の組合せを選択し、再配置プラン管理情報0310を更新する。
ホストの優先度を考慮せずに、I/Oレスポンスタイムが向上したホストの数に基づいて、再配置プランを作成してもよい。ホスト毎にI/Oレスポンスタイムの増加量を計算し、増加量が一定値以上のホストの数を、評価指標として使用する。ここで言う一定値とは、管理サーバに予め定義された値を使っても良いし、ユーザが入力した値を使っても良い。評価指標の値が大きい程、多くのホストのI/Oレスポンスタイムを向上できていることを示す。
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、上述された本発明の技術的特徴は、適宜結合させて実施することができる。
例えば、本発明は、以下のようにコンピュータプログラムの発明として表現することもできる。そのコンピュータプログラムは記録媒体に固定されて配布されたり、通信ネットワークを介して配信されたりできる。
「コンピュータを、複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理するための管理装置として機能させるためのコンピュータプログラムであって、
前記ストレージ装置は、前記複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、前記複数の仮想的論理ボリュームを構成する論理的記憶領域を、前記複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、
前記複数のホスト計算機の性能情報を管理する性能情報管理部と、
前記各性能情報に基づいて、前記複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定部と、
前記複数の仮想的論理ボリュームのうち前記所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、前記複数の記憶階層毎の前記実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成部であって、前記所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の前記再配置計画の中からいずれか一つを選択する再配置計画作成部と、
選択された前記再配置計画に基づいて、前記複数の仮想的論理ボリュームの前記各論理的記憶領域と前記各記憶階層の前記各実記憶領域との対応関係を決定し、前記対応関係を前記ストレージ装置に通知して、前記ストレージ装置に前記再配置処理の実行を指示する再配置指示部と、
を、前記コンピュータ上に実現させるためのコンピュータプログラム。」
1、0101:ホスト計算機、2、0102:管理サーバ、3、0103:ストレージ装置

Claims (13)

  1. 複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理する管理装置であって、
    前記ストレージ装置は、前記複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、前記複数の仮想的論理ボリュームを構成する論理的記憶領域を、前記複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、
    前記複数のホスト計算機の性能情報を管理する性能情報管理部と、
    前記各性能情報に基づいて、前記複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定部と、
    前記複数の仮想的論理ボリュームのうち前記所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、前記複数の記憶階層毎の前記実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成部と、
    前記再配置計画に基づいて、前記複数の仮想的論理ボリュームの前記各論理的記憶領域と前記各記憶階層の前記各実記憶領域との対応関係を決定し、前記対応関係を前記ストレージ装置に通知して、前記ストレージ装置に前記再配置処理の実行を指示する再配置指示部と、
    を備え、
    前記再配置計画作成部は、前記所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の前記再配置計画の中からいずれか一つを選択し、
    前記再配置指示部は、選択された前記再配置計画に基づいて前記対応関係を決定し、決定した前記対応関係を前記ストレージ装置に通知する、
    計算機システムの管理装置。
  2. ユーザから入力された値が前記目標応答時間として設定される、
    請求項1に記載の計算機システムの管理装置。
  3. 前記再配置計画作成部は、前記複数の再配置計画の中から、前記プールの応答時間が最小となる再配置計画を一つ選択する、
    請求項2に記載の計算機システムの管理装置。
  4. 前記再配置計画作成部は、前記所定の仮想的論理ボリュームに対する前記複数の記憶階層毎の前記実記憶領域の割当量の全ての組合せのうち、予め設定される所定の範囲内の組合せに基づいて、前記複数の再配置計画を作成する、
    請求項3に記載の計算機システムの管理装置。
  5. 前記複数の記憶階層には、最も高性能の第1記憶階層と、次に高性能の第2記憶階層と、最も性能の低い第3記憶階層とが含まれており、
    前記再配置計画作成部は、前記所定の仮想的論理ボリュームの応答時間が増加する程度を示すボリューム応答時間指標と、前記プールの応答時間が減少する程度を示すプール応答時間指標とに基づいて、前記所定の範囲を設定するようになっており、
    前記ボリューム応答時間指標は、前記所定の仮想的論理ボリュームに割り当てる前記第1記憶階層の実記憶領域を所定量だけ減らした場合の応答時間と、前記所定の仮想的論理ボリュームに割り当てる前記第2記憶階層の実記憶領域を前記所定量だけ減らした場合の応答時間との比として算出され、
    前記プール応答時間指標は、前記プールで使用可能な前記第1記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間と、前記プールで使用可能な前記第2記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間との比として算出される、
    請求項4に記載の計算機システムの管理装置。
  6. 前記複数のホスト計算機には優先度が設定されており、
    前記再配置計画作成部は、所定の優先度以上の優先度を有するホスト計算機の使用する前記仮想的論理ボリュームの応答時間が短縮されるホスト計算機の数を算出し、算出された数の最も大きい再配置計画を前記複数の再配置計画の中から選択する、
    請求項1に記載の計算機システムの管理装置。
  7. 前記再配置計画作成部は、前記複数の再配置計画の中から、ユーザにより指定される再配置計画を一つ選択する、
    請求項1に記載の計算機システムの管理装置。
  8. 前記目標応答時間は、手動モードまたは自動モードのうち予め選択されたモードに従って設定されるようになっており、
    前記手動モードが選択されている場合は、ユーザからの入力値を前記目標応答時間として設定し、
    前記自動モードが選択されている場合は、前記所定のホスト計算機の負荷が前記所定の閾値未満となるまで、前記所定のホスト計算機の現在の応答時間よりも長く設定される初期値から段階的に低下させることで、前記目標応答時間を設定する、
    請求項1に記載の計算機システムの管理装置。
  9. 前記再配置計画作成部は、前記所定の仮想的論理ボリュームに対する前記複数の記憶階層毎の前記実記憶領域の割当量の全ての組合せのうち、予め設定される所定の範囲内の組合せに基づいて、前記複数の再配置計画を作成する、
    請求項1に記載の計算機システムの管理装置。
  10. 前記複数の記憶階層には、最も高性能の第1記憶階層と、次に高性能の第2記憶階層と、最も性能の低い第3記憶階層とが含まれており、
    前記再配置計画作成部は、前記所定の仮想的論理ボリュームの応答時間が増加する程度を示すボリューム応答時間指標と、前記プールの応答時間が減少する程度を示すプール応答時間指標とに基づいて、前記所定の範囲を設定するようになっており、
    前記ボリューム応答時間指標は、前記所定の仮想的論理ボリュームに割り当てる前記第1記憶階層の実記憶領域を所定量だけ減らした場合の応答時間と、前記所定の仮想的論理ボリュームに割り当てる前記第2記憶階層の実記憶領域を前記所定量だけ減らした場合の応答時間との比として算出され、
    前記プール応答時間指標は、前記プールで使用可能な前記第1記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間と、前記プールで使用可能な前記第2記憶階層の実記憶領域が前記所定量だけ増加した場合の応答時間との比として算出される、
    請求項9に記載の計算機システムの管理装置。
  11. 複数のホスト計算機及び少なくとも一つのストレージ装置を含む計算機システムを管理装置で管理するための方法であって、
    前記ストレージ装置は、前記複数のホスト計算機に提供するための複数の仮想的論理ボリュームと、性能の異なる複数の記憶階層を有するプールとを備え、かつ、前記複数の仮想的論理ボリュームを構成する論理的記憶領域を、前記複数の記憶階層のうち所定の記憶階層の実記憶領域に対応付けるための再配置処理を実行するようになっており、
    前記管理装置は、
    前記複数のホスト計算機の性能情報を管理する性能情報管理ステップと、
    前記各性能情報に基づいて、前記複数のホスト計算機のうち予め設定される所定の閾値以上の負荷を有する所定のホスト計算機が有るか判定する負荷判定ステップと、
    前記複数の仮想的論理ボリュームのうち前記所定のホスト計算機の使用する所定の仮想的論理ボリュームに対する、前記複数の記憶階層毎の前記実記憶領域の割当量を規定する再配置計画を作成する再配置計画作成ステップであって、前記所定の仮想的論理ボリュームの応答時間が所定の目標応答時間以上となる複数の再配置計画を作成し、それら複数の前記再配置計画の中からいずれか一つを選択する再配置計画作成ステップと、
    選択された前記再配置計画に基づいて、前記複数の仮想的論理ボリュームの前記各論理的記憶領域と前記各記憶階層の前記各実記憶領域との対応関係を決定し、前記対応関係を前記ストレージ装置に通知して、前記ストレージ装置に前記再配置処理の実行を指示する再配置指示ステップと、
    を実行する、
    計算機システムの管理方法。
  12. 前記再配置計画作成ステップは、前記複数の再配置計画の中から、前記プールの応答時間が最小となる再配置計画を一つ選択する、
    請求項11に記載の計算機システムの管理方法。
  13. 前記再配置計画作成ステップは、前記所定の仮想的論理ボリュームに対する前記複数の記憶階層毎の前記実記憶領域の割当量の全ての組合せのうち、予め設定される所定の範囲内の組合せに基づいて、前記複数の再配置計画を作成する、
    請求項11に記載の計算機システムの管理方法。
JP2013552367A 2012-01-05 2012-01-05 計算機システムの管理装置及び管理方法 Expired - Fee Related JP5668151B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/050073 WO2013103005A1 (ja) 2012-01-05 2012-01-05 計算機システムの管理装置及び管理方法

Publications (2)

Publication Number Publication Date
JP5668151B2 JP5668151B2 (ja) 2015-02-12
JPWO2013103005A1 true JPWO2013103005A1 (ja) 2015-05-11

Family

ID=48744777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013552367A Expired - Fee Related JP5668151B2 (ja) 2012-01-05 2012-01-05 計算機システムの管理装置及び管理方法

Country Status (3)

Country Link
US (1) US9086804B2 (ja)
JP (1) JP5668151B2 (ja)
WO (1) WO2013103005A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012164718A1 (ja) * 2011-06-02 2012-12-06 株式会社日立製作所 ストレージ管理システム、計算機システム、及びストレージ管理方法
WO2014002162A1 (ja) * 2012-06-25 2014-01-03 富士通株式会社 ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
US10289685B2 (en) * 2012-09-07 2019-05-14 International Business Machines Corporation Information lifecycle governance
US9519441B1 (en) * 2012-09-30 2016-12-13 EMC IP Holding Company LLC Automated storage provisioning and management using a centralized database
US9992699B2 (en) * 2013-06-17 2018-06-05 Nec Corporation Son control system, son control method, and mobile communication system
US9372636B1 (en) * 2013-12-20 2016-06-21 Emc Corporation Tiered-storage design
WO2015140931A1 (ja) * 2014-03-18 2015-09-24 株式会社 東芝 トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
US9710178B2 (en) * 2015-04-10 2017-07-18 International Business Machines Corporation Optimizing volume placement based upon desired response time and priority
JP6544039B2 (ja) * 2015-05-20 2019-07-17 富士通株式会社 ストレージ制御装置、ストレージ制御プログラムおよびストレージシステム
US9542115B1 (en) * 2015-06-23 2017-01-10 Netapp, Inc. Methods and systems for trouble shooting performance issues in networked storage systems
WO2017017775A1 (ja) * 2015-07-28 2017-02-02 株式会社日立製作所 計算機システム及びボリュームの割り当て制御方法
US10089180B2 (en) * 2015-07-31 2018-10-02 International Business Machines Corporation Unfavorable storage growth rate abatement
WO2017068623A1 (ja) * 2015-10-19 2017-04-27 株式会社日立製作所 管理計算機及び閾値設定方法
US20170212705A1 (en) * 2016-01-26 2017-07-27 Netapp, Inc. Dynamic Weighting for Distributed Parity Device Layouts
WO2019022631A1 (en) * 2017-07-27 2019-01-31 EMC IP Holding Company LLC STORING DATA IN DIFFERENTLY SIZED WAFERS WITHIN DIFFERENT STORAGE LEVELS
CN112306372B (zh) 2019-07-31 2024-07-05 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
CN112860185B (zh) * 2021-01-29 2022-11-25 西藏宁算科技集团有限公司 基于lru算法的高可用缓存方法、存储装置以及电子设备
CN117157634A (zh) * 2021-06-29 2023-12-01 格步计程车控股私人有限公司 通信服务器、方法、用户装置和预订系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395396B2 (en) * 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
JP2009134397A (ja) * 2007-11-29 2009-06-18 Hitachi Ltd 仮想ボリュームに割り当て済みの全ての実記憶領域を解放するか否かを制御する計算機及び方法
JP2010097372A (ja) * 2008-10-16 2010-04-30 Hitachi Ltd ボリューム管理方式
JP2010097526A (ja) * 2008-10-20 2010-04-30 Hitachi Ltd キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法
JP4727705B2 (ja) 2008-10-31 2011-07-20 株式会社日立製作所 階層型ストレージシステム
JP2010122814A (ja) 2008-11-18 2010-06-03 Hitachi Ltd ストレージシステム及びストレージシステムの運用方法
US8566550B2 (en) 2009-09-22 2013-10-22 Hitachi, Ltd. Application and tier configuration management in dynamic page reallocation storage system
US8543778B2 (en) 2010-01-28 2013-09-24 Hitachi, Ltd. Management system and methods of storage system comprising pool configured of actual area groups of different performances
CN102640120B (zh) * 2010-01-28 2014-12-10 株式会社日立制作所 计算增设/减设的存储容量的管理系统
US8458424B2 (en) * 2010-02-08 2013-06-04 Hitachi, Ltd. Storage system for reallocating data in virtual volumes and methods of the same
US8284627B2 (en) * 2010-10-22 2012-10-09 International Business Machines Corporation Reducing energy consumption and optimizing workload and performance in multi-tier storage systems using extent-level dynamic tiering
JP2012181580A (ja) * 2011-02-28 2012-09-20 Fujitsu Ltd リソース制御装置、リソース制御方法、及びリソース制御プログラム
US9489429B2 (en) * 2011-11-16 2016-11-08 Hitachi, Ltd. Computer system, data management method, and program

Also Published As

Publication number Publication date
US9086804B2 (en) 2015-07-21
US20130179657A1 (en) 2013-07-11
WO2013103005A1 (ja) 2013-07-11
JP5668151B2 (ja) 2015-02-12

Similar Documents

Publication Publication Date Title
JP5668151B2 (ja) 計算機システムの管理装置及び管理方法
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
US8549247B2 (en) Storage system, management method of the storage system, and program
JP5706531B2 (ja) 計算機システム、及び情報管理方法
US8918613B2 (en) Storage apparatus and data management method for storage area allocation based on access frequency
JP5661921B2 (ja) 計算機システム及び管理システム
US8862849B2 (en) Storage system providing virtual volumes
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
WO2013164878A1 (ja) 計算機システムの管理装置および管理方法
JP5793196B2 (ja) 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法
JP5986319B2 (ja) ストレージ管理システム
JP2010122814A (ja) ストレージシステム及びストレージシステムの運用方法
WO2012081089A1 (ja) 計算機システムの管理装置及び管理方法
JP5395962B2 (ja) 計算機システム、及びその管理方法、並びに、プログラム
JP5886963B2 (ja) ストレージ装置及びデータ管理方法
JP5495828B2 (ja) 動的ページ再配置ストレージシステム管理
WO2013098960A1 (ja) 計算機システム、ファイル管理方法及び記憶媒体
WO2014155555A1 (ja) 管理システム及び管理プログラム
JP6142685B2 (ja) ストレージシステム、運用管理方法及び運用管理プログラム
WO2013111331A1 (ja) 計算機システム
JPWO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
WO2015189988A1 (ja) ファイル再配置ポリシーを出力する管理サーバ、及びストレージシステム
WO2015107626A1 (ja) 計算機システムおよびその階層記憶の制御方法
JP6035363B2 (ja) 管理計算機、計算機システム、及び管理方法
JP2011175334A (ja) データ再配置方法及びストレージ管理装置

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141215

R150 Certificate of patent or registration of utility model

Ref document number: 5668151

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees