JP6340439B2 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP6340439B2
JP6340439B2 JP2016571608A JP2016571608A JP6340439B2 JP 6340439 B2 JP6340439 B2 JP 6340439B2 JP 2016571608 A JP2016571608 A JP 2016571608A JP 2016571608 A JP2016571608 A JP 2016571608A JP 6340439 B2 JP6340439 B2 JP 6340439B2
Authority
JP
Japan
Prior art keywords
virtual
resource
resources
volume
amount
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
JP2016571608A
Other languages
English (en)
Other versions
JPWO2016121066A1 (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
Publication of JPWO2016121066A1 publication Critical patent/JPWO2016121066A1/ja
Application granted granted Critical
Publication of JP6340439B2 publication Critical patent/JP6340439B2/ja
Active 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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

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

Description

本発明は、ストレージシステムの性能管理技術に関する。
クラウド環境では、テナントを単位とした性能管理技術が重要となってきており、テナントを構成するストレージの性能管理技術も、ますます重要になってきている。一方で近年、ストレージ仮想化技術により、ストレージに関する専門知識を持たない管理者でも容易にストレージ管理ができるようになってきている。以上の背景から、ストレージ仮想化技術を適用した仮想ストレージの性能管理技術が重要となってきている。
ストレージシステムの性能管理技術として、ストレージシステムが持つ各物理資源(ポートやキャッシュなど)について、ユーザによる資源占有量を設定可能にすることで、アプリケーション間の性能影響を防止する技術がある。一方、ストレージ仮想化技術として、シンプロビジョニング技術やティアリング技術など、データを格納する適切なメディアをストレージシステムが自動決定することで、専門知識を持たないユーザでも、ストレージシステムを管理可能にする技術がある。
仮想ストレージを対象とした性能管理技術の課題の1つは、資源占有量の設定によって性能管理を行う時、どの物理資源が、どの程度の資源占有量を必要とするかを、ユーザが判断することが難しいことである。すなわち、目標性能を達成するための必要最小限の資源占有量を、ユーザが設定することが難しいことである。
また、仮想ストレージを対象とした性能管理技術の課題のもう1つは、仮想ストレージが複数の物理資源で構成される場合に、仮に各物理資源に必要最小限の資源占有量を設定できた場合でも、各物理資源への処理負荷の偏りが変化することによって、特定の物理資源の資源占有量が不足し、目標性能を達成できない可能性があることである。
本発明におけるストレージシステムは、ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有する。物理資源の種類には少なくとも、プロセッサ資源、メモリ資源、ホストと接続されるポート資源とが含まれる。ストレージシステムは、物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能で、仮想ストレージ装置内にホストからのI/O要求を受け付ける仮想ボリュームを作成する際、仮想資源を仮想ボリュームに割り当て、仮想ボリュームに対するI/O要求をホストから受け付けると、割り当てられた仮想資源を用いて前記I/O要求に係る処理を実施する。ストレージシステムはまた、仮想資源を仮想ボリュームに割り当てた後、仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる。
仮想ストレージを対象とした性能管理が容易となり、性能管理コストの低減が可能となる。
本発明におけるシステム構成図を示す。 本発明における仮想ストレージの構成図である。 第一の実施例における仮想ボリュームの構成図である。 本発明における制御プログラム例と制御テーブル例とを示す図である。 第一の実施例における仮想ストレージ設定管理テーブルの構成図である。 第一の実施例における仮想ストレージ構成管理テーブルの構成図である。 第一の実施例における仮想ボリューム構成管理テーブルの構成図である。 第一の実施例における物理ボリューム構成管理テーブルの構成図である。 第一の実施例における仮想ボリュームモニタテーブルの構成図である。 第一の実施例における物理資源量管理テーブルの構成図である。 第一の実施例における仮想資源量管理テーブルの構成図である。 第一の実施例における資源割当てプログラムの構成図である。 第一の実施例における仮想ボリューム作成プログラムの構成図である。 第一の実施例におけるホストI/Oプログラムの構成図である。 第一の実施例における資源再割当てプログラムの処理概要図である。 第一の実施例における資源再割当てプログラムの構成図である。 第一の実施例における資源逼迫改善プログラムの構成図である。 第二の実施例における仮想ボリュームの構成図を示す。 第二の実施例における仮想ボリューム構成管理テーブルの構成図である。 第二の実施例における物理ボリューム構成管理テーブルの構成図である。 第二の実施例における仮想ボリュームモニタテーブルの構成図である。 第二の実施例における仮想ボリューム作成プログラムの構成図である。 第二の実施例におけるホストI/Oプログラムの構成図である。 第二の実施例における資源再割当てプログラムの構成図である。 第三の実施例における仮想ストレージ構成管理テーブルの構成図である。 第三の実施例における資源再割当てプログラムの処理概要図である。 第三の実施例における資源再割当てプログラムの処理概要図(2)である。 第三の実施例における資源再割当てプログラムの構成図である。 第四の実施例におけるボリュームコピー機能の概要図である。 第四の実施例におけるボリュームコピー機能の状態遷移図である。 第四の実施例における重複排除機能と圧縮機能の概要図である。 第四の実施例におけるストレージ機能状態管理テーブルの構成図である。 第四の実施例におけるストレージ機能状態補正テーブルの構成図である。 第四の実施例におけるストレージ機能状態変更プログラムの構成図である。 資源再割当てプログラムの変形例である。
図1は、実施例1に係る計算機システムの概略構成を模式的に示すブロック図である。本計算機システムは、ホスト100、管理サーバ110、ストレージシステム120を含む。計算機システムが含みえるホスト、管理サーバ、ストレージシステムのそれぞれの数は、1以上の任意の数である。
ホストは、ストレージシステムに格納されたデータを使って業務などを行う計算機である。ホストとストレージシステムとは、データネットワーク130で接続されており、互いに通信が可能である。データネットワークは、SAN(Storage Area Network)とも呼ばれ、FC(Fibre Channel)や、Eathernetなどの一般的な技術を使って構成される。
管理サーバは、ストレージシステムが提供する各種機能の設定など、ストレージシステムの管理を行う計算機である。管理サーバとストレージシステムとは、管理ネットワーク131で接続されており、互いに通信が可能である。管理ネットワークも、Eathernetなどの一般的な技術を使って構成される。
ストレージシステムは、ホストが読み書きするデータを格納する1以上のメディア150と、ホストとメディアとの間のデータ転送制御などを行う1以上のストレージコントローラ140とで構成される。メディアには、SSD(Solid State Drive)151やHDD(Hard Disk Drive)152などの一般的な技術が利用できる。
ストレージコントローラは、プロセッサ141、メモリ142、ホストインターフェース160(単にポートと呼ぶこともある)、管理インターフェース161、メディアインターフェース162などのデバイスで構成される。ストレージコントローラは、各デバイスを1以上の任意の数含むことができる。
ストレージコントローラ内の各デバイスは互いに内部ネットワークで接続されており、通信が可能である。同様に、ストレージシステム内の各ストレージコントローラも互いに内部ネットワークで接続されており、通信が可能である。
プロセッサは、ホストから受領するコマンドを処理するプログラムなど、ストレージコントローラが備える各種機能を実現するプログラムを実行できる。ただし、ストレージコントローラが備える機能の少なくとも一部は、プロセッサ以外のデバイス(専用ハードウェアなど)で実行されてもよい。
ホストインターフェースと管理インターフェースはそれぞれ、ホストと管理サーバに接続され、通信を行うデバイスである。ホストインターフェースと管理インターフェースにはそれぞれ、データネットワークや管理ネットワークに使われている通信プロトコルが実装され、ホストや管理サーバと、データやコマンドを通信することができる。
メディアインターフェースは、メディアに接続され、互いに通信を行うデバイスである。メディアインターフェースには、FC、Serial Attached SCSI(SAS)、Serial Advanced Technology Attachment(SATA)などの標準的な通信プロトコルが実装され、メディアと、データやコマンドを通信することができる。
以降、ストレージコントローラが含む、プロセッサ、メモリ、メディア、ホストインターフェース等の、ホストからのI/O要求を処理するために用いられる各デバイスを「物理資源」と呼ぶ。また、プロセッサやメモリ等のデバイス種別は「資源種別」と呼ぶ。また本実施例に係るストレージコントローラは、いわゆる仮想計算機技術を用いて、1つの物理資源(の処理能力)を論理的に分割することで複数の仮想資源(仮想プロセッサ、仮想ポート等)を生成することができる。具体的には、たとえば物理資源の処理能力を時分割で複数の仮想資源に割り当てることにより、1つの物理資源を論理的に分割する。各物理資源には、最大処理能力が定められている。本明細書では各物理資源の最大処理能力のことを、「限界資源量」と呼ぶ。当該資源はI/O処理など処理を実行することで消費される。尚、本明細書では、同一の資源種別であっても、限界資源量が異なる構成を許容する。
図2は、仮想ストレージの構成例を示す図である。仮想ストレージ200は、ストレージシステム120の物理資源(プロセッサ141、メモリ142、メディア150、ポート160)を仮想化した仮想資源(仮想プロセッサ201、仮想メモリ201、仮想メディア203、仮想ポート204)を有する論理的なストレージである。ストレージシステムは、複数個の仮想ストレージを構成できる。各仮想資源は、ストレージシステムが有するプロセッサ、メモリ、メディア、ポートにそれぞれ対応する。
図3は、第一の実施例における、仮想ボリュームの構成例を示す図である。仮想ボリューム300は、仮想ストレージ200が提供する仮想的な論理ボリュームであり、物理ボリューム301で構成される。仮想ボリュームは、資源割当てプログラム400にて作成される。物理ボリュームは、メディア150に直接対応づいた論理ボリュームである。
本実施例では、便宜上、仮想ボリュームと物理ボリュームとの対応関係が1:1であり、かつボリュームサイズが同じである構成について示す。しかしながら、ボリュームサイズが半分である2個の物理ボリュームを組合せて、1個の仮想ボリュームを作成しても、1個の物理ボリュームを複数の仮想ボリュームに関連付けても構わない。
図4は、メモリ142に格納されるストレージ制御プログラム、およびストレージ制御テーブルの一例を示すブロック図である。ストレージ制御プログラムには、少なくとも、資源割当てプログラム400、ホストI/Oプログラム401、資源再割当てプログラム402、資源逼迫改善プログラム403、共有資源解放プログラム404、ストレージ機能状態変更プログラム405が含まれる。各プログラムの詳細は後述する。
ストレージ制御テーブルは、少なくとも、仮想ストレージ設定管理テーブル410、仮想ストレージ構成管理テーブル411、仮想ボリューム構成管理テーブル412、物理ボリューム構成管理テーブル413、仮想ボリュームモニタテーブル414、物理資源量管理テーブル415、仮想資源量管理テーブル416、ストレージ機能状態管理テーブル417、ストレージ機能状態補正テーブル418を含む。各制御テーブルの詳細は後述する。
図4で示すストレージ制御プログラムは、同じく図4で示すストレージ制御テーブルを参照して、ストレージシステム120の動作を制御する。尚、上では、各種管理情報を「テーブル」と呼んでいるが、これら管理情報のデータ構造がテーブルに限定されるわけではない。各管理情報はデータ構造に依存せず、リストやキューなど、適切なデータ構造で表現することができる。
図5は、仮想ストレージ設定管理テーブル410の一例である。仮想ストレージ設定管理テーブルとは管理サーバ110が指定する仮想ストレージ200の構成情報を管理するテーブルであり、ストレージシステム120当り複数個存在しうる。仮想ストレージ設定管理テーブルは、少なくとも、仮想ストレージ番号(以下、VS#と略す場合もある)カラム501と、仮想ボリューム番号(以下、VVOL#と略す場合もある)カラム502、目標資源使用率カラム504、優先順位カラム505とを含む。
仮想ストレージ番号カラム501には、当該ストレージシステムが提供する仮想ストレージの識別子を格納する。仮想ボリューム番号カラム502には、当該仮想ストレージに所属する仮想ボリューム300の識別子を格納する。当カラムに格納する仮想ボリューム番号は、複数個存在してよい。
目標資源使用率カラム504には、当該仮想ストレージが目標とする資源使用率を格納する。目標資源使用率は、資源再割当てプログラム402で使用される値であり、目標性能を達成するために必要な仮想資源量の予備量を制御する設定値である。
例えば、目標資源使用率504を10%に設定した場合、ストレージシステム120が目標性能達成に必要と見積もった仮想資源量の10倍の量を仮想ストレージに占有させることが可能であり、90%に設定した場合に比べて、ワークロードの変化が原因となる目標性能未達リスクを低減させることができる。目標資源使用率504は、管理サーバによって指定されることも可能であるが、本実施例では、ストレージシステム120が自動調整する例を示す。また、本実施例における仮想資源量の定義は後述する。
優先順位カラム505には、性能保証度合いに関する、仮想ストレージ間の優先順位を示す値を格納する。優先順位505は、資源逼迫改善プログラム403で使用される値であり、優先順位505が1に近づくにつれ、優先順位が高いことを意味する。そして優先順位505が高い仮想ストレージから優先的に資源逼迫改善プログラム403の処理対象とされる。資源逼迫改善プログラム403が実行されることにより、担当資源変更が原因となる目標性能未達リスクを低減させることができる。
図6は、仮想ストレージ構成管理テーブル411の一例である。仮想ストレージ構成管理テーブルは、各仮想ストレージ200を構成する各仮想資源の構成情報を示すテーブルであり、少なくとも、VS#カラム601、仮想ポート構成カラム602、仮想プロセッサ構成カラム603、仮想メモリ構成604、仮想メディア構成カラム605、を含む。
仮想ポート構成カラム602は、複数のポート160より構成される仮想ポート204の仮想資源量を示す。仮想ポート204の仮想資源量は、例えば、ポート性能(Gbps)とポート数(個)で表現される。仮想プロセッサ構成カラム603は、複数のプロセッサ141より構成される仮想プロセッサ201の仮想資源量を示す。仮想プロセッサ201の仮想資源量は、例えば、プロセッサ性能(GHz)とプロセッサ数(個)とで表現される。
仮想メモリ構成カラム604は、複数のメモリ142より構成される仮想メモリ202の仮想資源量を示す。仮想メモリ202の仮想資源量は、例えば、メモリ量(Byte)で表現される。仮想メディア構成カラム605は、複数のメディア150より構成される仮想メディア203の仮想資源量を示す。仮想メディア203の仮想資源量は、例えば、メディア種別(SSD151またはHDD152)やメディア台数(個)で表現される。尚、各メディア種別の1台当りの資源量(メディア種別資源量)は、HDDは100IOPS、SSDは10000IOPSのように、事前にシステムで一意の値が決定されていると仮定する。当然、メディア種別資源量が異なるメディア種別を追加しても構わない。
カラム602から605の値は、以降、仮想総資源量とも呼ばれる。例えば、VS#001の仮想ポート総資源量(仮想ポート構成602)は8Gbpsであり、仮想プロセッサ総資源量(仮想プロセッサ構成603)は2.3GHzであり、仮想メモリの総資源量(仮想メモリ構成604)は200GBであり、仮想メディアの総資源量(仮想メディア構成605)は30000IOPSである。一方、仮想ストレージに割り当てられた、特定の1つの物理資源の一部(数十%など)のことは、仮想資源量と呼ばれる。たとえば性能が2GHzの物理プロセッサの10%(つまり0.2GHz)をある仮想ストレージに割り当てた時、仮想ストレージに割り当てられたプロセッサの仮想資源量は0.2GHzである、と表現する。
尚、仮想ストレージ構成管理テーブル411に格納される各仮想総資源量の指定方法は一例であり、処理性能に関する資源量を示す一般的な単位を使用することができる。また、仮想ストレージ構成管理テーブル411のカラムとして、ストレージシステム120が有する他の資源種別で構成した仮想資源の仮想総資源量を定義することも可能である。
図7は、仮想ボリューム構成管理テーブル412の一例である。仮想ボリューム構成管理テーブル412は、各仮想ボリューム300と物理ボリューム301との対応関係を示す情報である。仮想ボリューム構成管理テーブル412は、少なくとも、VVOL#カラム701、ボリュームサイズカラム702、物理ボリューム番号カラム703、目標性能カラム704を含む。特に、物理ボリューム番号カラム703に「N/A」が格納されている場合は、当該仮想ボリュームが未使用であることを示す。
目標性能カラム704には、仮想ボリュームの目標性能を格納する。目標性能として、スループット性能(IOPSなど)やレスポンス性能(msなど)、またはその組合せを指定できる。スループットやレスポンスは、範囲で指定することができる。すなわち、「100IOPS以上」や「200IOPS以下」、または、その組合せで指定することができる。但し、本実施例では、便宜上、スループット性能の下限値、および、レスポンス性能の上限値のみ指定可能にする。図7ではスループット性能の下限値が指定されている例が示されている。
特に、目標性能にスループット性能が設定される場合は、当該仮想ストレージに所属する全仮想ボリュームに対して適用される。例えば、目標性能に100IOPSを設定した場合、各仮想ボリュームの合計が100IOPSであることを示す。また、目標性能にレスポンス性能が設定される場合の性能管理方法は、第三の実施例で示す。尚、目標性能の単位は、上記の限りではなく、スループット性能やレスポンス性能を指定可能な単位であれば良い。
図8は、物理ボリューム構成管理テーブル413の一例を示す。物理ボリューム構成管理テーブル413とは、ストレージシステム120が有する各物理ボリューム301について、当該物理ボリュームの処理を担当する物理資源(以下、担当資源と呼ぶ)の情報を保持するテーブルである。物理ボリューム構成管理テーブル413は、少なくとも、物理ボリューム番号カラム801、ボリュームサイズカラム802、担当ポート番号カラム803、担当プロセッサ番号カラム804、担当メモリ番号カラム805、担当メディア番号カラム806の情報を含む。
カラム803からカラム806には、物理ボリュームの各担当資源の識別子を格納する。特に、担当メディア番号として、「HDD100」、「SSD100」など、メディア種別ごとに一意な識別子を示したが、格納先メディアが特定できれば、識別子はいずれでも構わない。また、ボリュームサイズカラム802に「N/A」が格納されている場合は、当該物理ボリューム番号が未定義であることを示す。
尚、メモリ142やメディア150に実際にデータを格納する処理では、格納先のメモリアドレスや、メディアアドレスを算出する処理が必要となるが、当該処理は一般的であるため本明細書では省略する。また、各物理ボリュームには、RAID(Redundant Arrays of Inexpensive Disks)技術を適用することもできる。この場合、物理ボリュームのデータが複数のメディア150に分散して格納されるため、担当メディア番号806に複数のメディア識別子が格納される。
図9は、仮想ボリュームモニタテーブル414の一例である。仮想ボリュームモニタテーブル414は、各仮想ボリューム300のモニタリング情報を格納するテーブルであり、少なくとも、VVOL#カラム901、スループット性能カラム902、レスポンス性能カラム903を含む。各カラムの詳細な説明は自明のため省略する。
カラム902とカラム903の値は、ホストI/Oプログラム401にて更新される。本明細書中では、これらの値の更新方法の詳細を記載しないが、一般的なモニタリング技術を使用した更新が可能である。例えば、スループット性能の更新は、ホストが受領したI/O数を逐次カウントし、1秒ごとに集計する処理で実現できる。
図10は、物理資源量管理テーブル415の一例を示す。物理資源量管理テーブル415は、ストレージシステム120が備える各物理資源の資源量を管理するテーブルである。物理資源量管理テーブル415は、少なくとも、資源種別カラム1001、資源番号カラム1002、限界資源量カラム1003、資源割当て率カラム1004、物理資源使用率カラム1005、使用率閾値カラム1006を有する。
資源種別カラム1001は、ポート160、プロセッサ140、メモリ142、メディア150などの資源種別を格納し、資源番号カラム1002に格納する資源種別ごとの識別子とともに、ストレージシステム120内の各物理資源を一意に特定する情報となる。限界資源量カラム1003は、各物理資源の処理能力を示す値を格納する。
資源割当て率カラム1004は、当該物理資源の限界資源量1003に占める、当該物理資源を使用する全ての仮想ストレージ200が占有する資源量合計の割合を示す。同様に、物理資源使用率カラム1005は、当該物理資源の限界資源量1003に占める、当該物理資源を使用する全ての仮想ストレージ200が、I/O処理の実行のために使用している資源量合計の割合を示す。前述の通り、当該テーブルの資源割当て率1004や物理資源使用率1005は、物理資源の処理性能に基づく値である。尚本明細書では、便宜上、「100%−(資源割当て率1004)」を余剰資源率とも表現する。
例えば、限界資源量1003が4Gbpsであるポートの場合、「資源割当て率10%」は400Mbpsが仮想ストレージ200により占有され(割り当てられ)、「物理資源使用率1%」は40Mbpsが仮想ストレージ200でI/O処理を行うために使用されている(稼働している)ことを示す。同様に、限界資源量1003が2GHzのプロセッサの場合、「資源割当て率50%」は1GHz分(または、毎秒500ms)が仮想ストレージ200により占有され、「物理資源使用率40%」は0.8GHz分(または、毎秒400ms)が仮想ストレージ200でI/O処理を行うために使用されている(稼働している)ことを示す。
限界資源量1003が4GBのメモリの場合、「資源割当て率50%」は2GB分が仮想ストレージ200により占有され、「物理資源使用率40%」は仮想ストレージ200により単位時間当たりにリードキャッシュとして参照されたキャッシュ容量が1.6GB分であることを示す。同様に、限界資源量1003が100IOPSのメディアの場合、「資源割当て率50%」は50IOPS分が仮想ストレージ200により占有され、「物理資源使用率10%」は10IOPSが仮想ストレージ200のI/O処理で使用されていることを示す。
以上、各資源の資源割当て率1004と物理資源使用率1005の計算例を示した。当然ながら各値は、各物理資源の処理性能を対象とした資源量を示す値であれば、異なる計算式で算出することも、異なる単位を用いることも可能である。
使用率閾値カラム1006は、当該物理資源を資源逼迫状態と判定する閾値を示す。例えば、使用率閾値が80%である場合、物理資源使用率1005が80%を超えた場合に、当該物理資源を資源逼迫状態と判定する。資源逼迫状態にある物理資源は、仮想ストレージ200が目標性能を達成する妨げとなりうるため、資源逼迫改善プログラム403で改善する。
図11は、仮想資源量管理テーブル416の一例を示す。仮想資源量管理テーブル416は、仮想ストレージ200に割り当てられている各資源の仮想資源量を管理するテーブルである。仮想資源量管理テーブル416は、少なくとも、VS#カラム1100、VVOL#カラム1101、資源種別カラム1102、資源番号カラム1103、資源占有率カラム1104、共有資源占有率カラム1105、仮想資源使用率カラム1106を有する。
カラム1100から1103は自明のため記載を省略する。資源占有率カラム1104は、仮想ストレージ内仮想ボリュームに割り当てられている各仮想資源の構成を示す。一例として、VS#000内のVVOL#000に割り当てられている仮想資源(仮想プロセッサ)は、プロセッサ000の限界資源量1003の50%を占有することで構成していることが示されている。
共有資源占有率1105には、仮想ストレージが有する余剰資源量を格納する。共有資源の詳細は後述する。仮想資源使用率カラム1106に格納する値は、仮想ストレージ内仮想ボリュームに割り当てられている仮想資源量(=限界資源量1003×資源占有率1104)に対する、当該仮想ボリュームの資源使用率を格納する。例えば、VS#000のVVOL#000が、限界資源量1003が4Gbpsであるポート000の資源量の10%である0.4Gbpsを占有しており、かつ0.28Gbps分を使用している場合を想定する。この場合、仮想資源利用率1106は70%(=0.28÷0.4)と計算される。
図12は、資源割当てプログラム400の一例である。資源割当てプログラム400は、管理サーバ110からの仮想ストレージ設定要求に応じて実行するプログラムであり、複数のプロセッサ141のうちいずれか1つのプロセッサ141で実行される。また資源割当てプログラム400は、仮想ストレージ200に仮想総資源量(602〜605)を設定するとともに、仮想ストレージ200に対して、ストレージシステム120が有する物理資源の中の、いずれの物理資源を割り当てるか、また割り当てられた物理資源についてどの程度の資源量を割当てるかを決定するプログラムである。
まず、当該プログラムは仮想ストレージ設定要求を受領する(1201)。当該設定要求には、設定対象となる仮想ストレージ200の仮想ストレージ番号、仮想ボリューム番号、仮想ボリュームのサイズ、仮想ボリュームの目標性能、そして仮想ストレージ設定テーブル410や、仮想ストレージ構成テーブル411へ格納すべき各値が含まれている。次に、仮想ボリューム作成プログラムを実行し(1203)、当該仮想ストレージに所属させる各仮想ボリュームの作成と仮想資源量の割当てを開始する。仮想ボリューム作成プログラムの詳細は後述する。
当該プログラムは、当該仮想ストレージに所属させる全仮想ボリュームに対して仮想ボリューム作成プログラムを実行した後(1205)、管理サーバに設定成功を応答して終了する(1206)。仮想ボリューム作成が失敗した場合は(1204:No)、当該プログラム内で実行した変更内容を全てロールバックした後(1207)、管理サーバ110に対して設定失敗を応答して終了する(1208)。
尚、当該プログラムのステップ1202にて、目標資源使用率504の初期値を設定する。目標資源使用率504の初期値は任意であるが、低い値(たとえば20%等)と設定するとよい。その後、当該目標資源使用率504は、資源再割当てプログラム402にて仮想資源使用率1106を考慮しながら段階的に引き上げられ、最終的に必要最小限の仮想資源量が割り当てられるようになった時点で確定されるからである。
図13は、仮想ボリューム作成プログラム1203の一例である。仮想ボリューム作成プログラムでは、仮想ボリュームの作成と、当該仮想ボリューム分の仮想資源量の割当てを行う。まず、当該プログラムは、資源種別の1つを選択し(1301)、選択した資源種別に対して、ステップ1302から1304の処理を実行する。以降、資源種別として、プロセッサが選択されたと仮定し、ステップ1302から1304の処理を説明する。
仮想ボリューム作成プログラム1203は、選択した資源種別である全ての物理プロセッサ141の中から、物理資源使用率1005が最も小さい物理プロセッサ141を担当資源として選択する(1302)。図10の例では「プロセッサ001」が選択される。
次に仮想ボリューム作成プログラム1203は、仮想ボリューム分の資源占有率1104を計算する(1303)。ある仮想ボリュームの資源占有率1104の計算方法の一例は、「(プロセッサの仮想総資源量(つまり仮想プロセッサ構成603の値))÷(当該仮想ストレージに所属させる仮想ボリュームのボリュームサイズの総和)×(当該仮想ボリュームのボリュームサイズ)÷(担当プロセッサの限界資源量)」で求まる。ここで、担当プロセッサの限界資源量とは、ステップ1302で選択された物理プロセッサ141の限界資源量1003である。
ここでステップ1303の目的は、当該仮想ボリューム用の資源占有率の初期値として、妥当な資源占有率を決定することである。当該目的に沿っていれば、資源占有率を異なる手段で算出してもよい。例えば簡易的に、「(管理サーバが指定した仮想総資源量)÷(当該仮想ストレージに所属させる仮想ボリュームの総数)÷(担当資源の限界資源量)」で求めてもよい。
決定した資源占有率が、担当プロセッサの余剰資源率より多い場合(1304)、仮想ボリューム作成プログラム1203は、仮想ボリューム作成失敗を応答して終了する(1310)。ステップ1301からステップ1304までの処理は、全ての資源種別に対して繰り返される(1305)。
各資源種別について、当該仮想ボリューム分の資源占有率を決定した後、仮想ボリューム作成プログラム1203は、物理ボリュームを作成し(1306)、当該物理ボリュームに対して、決定した担当資源を関連付ける。具体的に仮想ボリューム作成プログラム1203は、物理ボリューム構成管理テーブル413について、物理ボリュームが未定義である物理ボリューム番号を選択し、ボリュームサイズ802に、仮想ボリュームのボリュームサイズを格納した後、決定した担当資源の識別子を対応するカラム803から806に資源種別ごとに格納する。
次に仮想ボリューム作成プログラム1203は、関連付けた各担当資源の資源割当て率1004および資源占有率1104について、ステップ1303で決定した資源占有率を加算し、仮想資源量の割当てを行う(1307)。最後に仮想ボリューム作成プログラム1203は、物理ボリュームと仮想ボリュームとを関連付ける(1308)。具体的には仮想ボリューム構成管理テーブル412に対し、作成した仮想ボリュームのVVOL#をVVOL#701に格納する。そしてこの行の物理ボリューム番号703に、ステップ1306で作成した物理ボリュームの物理ボリューム番号を格納し、ボリュームサイズ702にはステップ1306で作成した物理ボリュームの物理ボリューム番号を格納する。最後に仮想ボリューム作成成功を応答し(1309)、処理を終了する。
当該プログラムによると、管理サーバからの仮想ストレージ設定要求に応じて、当該仮想ストレージに所属させる各仮想ボリュームの担当資源を決定し、各担当資源へ適切な仮想資源量を割当てることが可能となる。
図14は、ホストI/Oプログラム401の一例である。ホストI/Oプログラムは、ホスト100が発行し、ストレージシステム120が受領した仮想ボリューム200に対するRead/Writeコマンドを処理するプログラムである。尚、コマンドを受領すると、ストレージシステム120が任意に選択した1つの物理プロセッサ141において、当該コマンドに対するホストI/Oプログラム401の実行が開始される。
仮想ボリュームに対するI/O要求を受領すると(1401)、ストレージシステム120は、仮想ボリューム構成管理テーブル412や物理ボリューム構成管理テーブル413を使って、当該仮想ボリュームの担当資源を特定する(1402)。次に、ホストI/Oプログラム401は、自プロセッサが担当プロセッサであるかを判定する(1417)。担当プロセッサでない場合、担当プロセッサにて当該コマンドに対応するホストI/Oプログラム401の実行を開始させ(1418)、自プロセッサでの処理を終了する。
担当プロセッサである場合、ホストI/Oプログラム401は、当該仮想ボリュームの担当ポートに対する要求であるかどうか確認する(1403)。担当ポートに対する要求でない場合、ホストにエラー応答し(1416)、処理を終了する。
担当ポートに対する要求である場合、ホストI/Oプログラム401は、仮想資源量管理テーブル416を使って、各担当資源の仮想資源使用率1106が全て100%未満であるか確認する(1404)。いずれかの担当資源の仮想資源使用率1106が100%の場合、当該仮想ボリュームを処理する仮想資源量が不足していると判断し、全ての担当資源の仮想資源使用率が100%未満になるまで待機する。
尚、本実施例が示すストレージシステム120は、待機によって生じる目標性能未達のリスクを排除するため、一時的に共有資源を割当てる機能を有する。共有資源とは、いずれの仮想ストレージにも割当てられていない、各物理資源の資源量である。共有資源は必ず割当てできるとは限らないため、目標性能未達のリスクを完全に排除できない点が、仮想ボリューム作成プログラムにおける仮想資源量の割当てとの違いである。
当該プログラムは、仮想資源使用率1106が100%である資源種別の担当資源について、共有資源が存在するか否かを資源占有率1104が100%未満であるか否かで判定する(1414)。共有資源が存在する場合、当該仮想ストレージ向けに共有資源の割当てを行う(1415)。本実施例では、割当てる共有資源の資源量は、予め決められた一定量とする。
共有資源の割当てとは具体的に、担当資源の物理資源使用率1005および共有資源占有率1105に一定比率(前述の一定量に相当する比率)を加算し、その後に仮想資源使用率1106を再計算することである。共有資源占有率1105に値を加算する際、I/O対象の仮想ストレージ、仮想ボリュームの識別子がそれぞれ、000、000の場合、仮想資源量管理テーブル416のVS#1101が“000”、VVOL#1101が “000”の行の、共有資源占有率1105の値を更新する。共有資源の割当てにより、全ての仮想資源使用率が100%未満となり、待機せずとも、ステップ1405以下の処理を実行することが可能となる。
全ての仮想資源利用率が100%未満の場合(1404:Yes)、当該プログラムは、担当プロセッサでコマンドの要求を解析し(1405)、要求種別(ReadまたはWrite)を確認する(1406)。Read要求である場合、要求データが担当メモリ上に格納されているかを判定する(1419)。格納されている場合、担当メモリ上に格納されているデータをホストに返送し、ホストに処理が正常に終了した旨を応答する(1409)。格納されていない場合は、担当メディアから要求データを読み込み(1407)、担当メモリに格納(1408)したあと、担当メモリ上のデータをホストに送付し、ホストに処理が正常終了した旨を応答する(1409)。
一方、Write要求である場合、担当メモリに受領データ格納後(1410)、ホストに正常応答を返し(1411)、担当メディアに要求データを書き込む(1412)。最後に、モニタリング情報を更新し(1413)、処理を終了する。
当該ステップで更新するモニタリング情報は、具体的に、当該仮想ボリュームのスループット性能902とレスポンス性能903、および、当該プログラムで使用した担当資源の物理資源使用率1005、および、仮想資源使用率1106が対象である。仮想資源使用率1106については、当該仮想ボリュームが所属する仮想ストレージの値を更新する。尚、各モニタリング情報の更新方法は、各カラムを有する各テーブルにて説明済みである。
図15は、資源再割当てプログラム402の処理概要を説明する図である。資源再割当てプログラムでは、2つの目的で資源再割当てを行う。資源再割当てプログラムの目的の1つは、仮想ストレージ200の各担当資源の仮想資源使用率1106を平準化するように資源占有率1104を変更することにより、いずれかの物理資源の仮想資源使用率が100%となって、目標性能未達となるリスクを排除することである。
また、資源再割当てプログラムの目的のもう1つは、仮想資源使用率を考慮して、目標資源使用率504を次第に引き上げる制御を行うことで、目標性能を達成するための仮想資源量を必要最小限にすることである。
図15の例では、仮想ストレージが、2つの仮想ボリューム200(#1と#2)を有している。また、各仮想ボリュームの目標スループット性能704はそれぞれ100IOPSと300IOPSであり、担当プロセッサ804はそれぞれ(物理)プロセッサ#1と(物理)プロセッサ#2である。またここでは、各仮想ボリュームの性能は目標スループット性能704に到達できている例を説明する。
ここで、各仮想ボリュームに割り当てられているプロセッサの仮想資源使用率が、それぞれ40%、60%であったとする。この状態では、担当資源間で処理負荷の偏りがあるため、負荷が上昇した場合、プロセッサ#2のみが仮想資源使用率100%となって、目標性能未達となるリスクがある。このため、当該プログラムは、各担当資源の仮想資源使用率が均一化されるように(たとえばいずれの仮想資源使用率も50%になるようにする)、プロセッサ#1の資源占有率を40%に、プロセッサ#2の資源占有率を60%に変更する(1501)。この処理の詳細は、図16の処理の説明を行う際に述べるが、ここでは、各仮想ボリュームに割り当てられている資源(プロセッサ等)の仮想資源使用量は変動しないように調整する。そのため、仮想資源使用率を引き上げる場合には、資源占有率は減少し、仮想資源使用率を引き下げる場合には、資源占有率は増加する。
仮想資源使用率が50%の場合、まだ使用率が向上しても、資源に余裕がある。そのためストレージシステム120は次に、仮想プロセッサ(仮想ストレージ)の目標資源使用率504を50%から、60%に引き上げ(1502)、目標性能達成に必要な仮想資源量の見積もりを小さくする。すなわち、プロセッサ#1の資源占有率を33%に、プロセッサ#2の資源占有率を50%に変更することで、仮想プロセッサの仮想資源使用率が60%となるようにする(1503)。この処理の詳細も、図16の処理の説明を行う際に述べる。この処理を繰り返し、最終的に当該仮想ストレージに対して共有資源が割り当てられた時点で、これ以上の引き上げができない(仮想資源量が必要最小限である)と判断し、目標資源使用率を確定する。
図16は、資源再割当てプログラム402の一例である。資源再割当てプログラム402は、仮想ストレージ200毎に実行される。
まず、資源再割当てプログラム402は、仮想ストレージ200に所属する各仮想ボリューム300について、仮想ボリュームモニタテーブル414と仮想資源量管理テーブル416の値を用いることで、各仮想ボリュームの性能値と、各仮想ボリュームの担当資源の仮想資源使用率1106を特定する(1601)。続いて資源再割当てプログラム402は、資源種別ごとに、各仮想ボリュームの担当資源の仮想資源使用率1106の平均値を算出する。図15を例にとって説明する。図15では仮想ボリューム#1、#2の担当資源(担当プロセッサ)、つまりプロセッサ#1、#2の仮想資源使用率がそれぞれ、40%と60%である。ステップ1602ではこの平均値、つまり(40+60)÷2=50%を算出する。
次に資源再割当てプログラム402は、各仮想ボリュームについて、
(ステップ1601で特定した仮想ボリュームの性能値÷目標性能704)
を計算する(1603)。本明細書ではこの値を「性能比率」と呼ぶ。
その後資源再割当てプログラム402は、当該仮想ボリュームの各担当資源について、割り当てるべき仮想資源量を算出する。
本実施例に係るストレージシステム120では、現時点で仮想ボリュームに使用されている仮想資源量と性能比率とに基づいて、目標性能704を達成するために必要となる仮想資源量を算出する機能を有している。たとえば資源再割当てプログラム402に、現時点で使用されている仮想資源量と性能比率を入力値とし、目標性能704を達成するために必要となる仮想資源量を出力とする関数を持たせることで、この機能を実現できる。また現時点で仮想ボリュームに使用されている仮想資源量は、
(担当資源の限界資源量1003×資源占有率1104×仮想資源使用率1106)
を計算することで求められる。
本実施例に係るストレージシステム120ではこの関数を、資源種別(プロセッサ、ポート、メモリ、メディア)ごとに有している。ステップ1604では、資源再割り当てプログラム401はこの関数を用いて、各担当資源に割り当てるべき仮想資源量を算出する。また別の実施形態として、性能比率を計算する代わりに、ステップ1601で特定した仮想ボリュームの性能値と目標性能704と、現時点で使用されている仮想資源量を入力値とし、目標性能704を達成するために必要となる仮想資源量を出力とする関数を用いるようにしてもよい。
続いてステップ1605では、資源再割り当てプログラム401はステップ1604で算出した資源量、ステップ1602で算出した仮想資源使用率の平均値、そして担当資源の限界資源量1003を用いて、各担当資源の資源占有率1104を算出し、仮想資源量管理テーブル416に設定する。資源種別がプロセッサの場合について、資源占有率1104の算出方法の具体例を説明する。ステップ1604で算出された、ある仮想ボリューム(たとえば仮想ボリューム#1)の担当プロセッサの仮想資源量(これは目標性能を達成するために必要となるプロセッサ資源量である)が0.4GHzであり、ステップ1602で算出された仮想資源使用率の平均値が50%、そして仮想ボリューム#1の担当プロセッサの限界資源量が2GHzであったとする。
この場合、仮想ボリューム#1には0.8GHz分のプロセッサ資源を割り当てる必要がある(仮想資源使用率が50%のため、ステップ1604で算出された資源量の倍の資源量を割り当てる必要がある)。そして、限界資源量が2GHzであるから、仮想ボリューム#1の資源占有率1104は、0.8÷2=0.4(つまり40%)と計算される。つまりステップ1605では、仮想ボリュームに割り当てられている各担当資源の資源占有率1104は、各担当資源について、
(仮想ボリュームが目標性能を達成するために必要となる仮想資源量÷仮想資源使用率の平均値)÷担当資源の限界資源量1003
を計算することで求められる。
以下、全仮想ボリュームについて、各資源の資源占有率1104の算出が完了するまで、1603から1606の処理を実行する。以上が、図15の1501に相当する処理である。
次に、資源再割り当てプログラム401は、当該仮想ストレージの共有資源占有率1104が0%か否かを判定することで、共有資源の有無を判定する(1607)。共有資源有り(共有資源占有率1104が0%でない)の場合、資源再割り当てプログラム401は目標資源使用率の引上げによる目標性能未達リスクがあると判断し、目標資源使用率を確定させ、処理を終了する。一方、共有資源無しの場合は、目標資源使用率の引上げによる目標性能未達リスクがないと判断し、資源再割り当てプログラム401は目標資源使用率504を一定量(たとえば10%)引上げる(1608)。
その後資源再割り当てプログラム401は、各担当資源の仮想資源使用率1106が目標資源使用率504の値に等しくなるように、各担当資源の資源占有率1104を算出し、仮想資源量管理テーブル416に設定し、処理を終了する(1609)。ここでの各担当資源の資源占有率1104の算出方法について、以下で具体例を説明する。
ステップ1605では、仮想ボリューム#1に割り当てられるプロセッサ資源の資源占有率の割り当て方法を説明した。ここではそれと同じ例を用いて説明を行う。ステップ1605の完了時点では、仮想ボリューム#1に割り当てられているプロセッサ(担当プロセッサ)の仮想資源占有率が50%、資源占有率1104は40%である。そして担当プロセッサの限界資源量は2GHz、仮想ボリューム#1が必要とするプロセッサ資源量は0.4GHzである。ステップ1609ではこの資源量(仮想ボリューム#1が目標性能を達成するために必要とするプロセッサ資源量)は変動しないように、資源占有率1104を調節する。具体的には資源占有率1104は、ステップ1605と同様の計算式、つまり
(仮想ボリューム#1が目標性能を達成するために必要とする仮想資源量÷目標資源使用率504)÷限界資源量1003
の計算式によって算出される。上で説明した例では、資源占有率1104は
(0.4[GHz]÷60%)÷2[GHz]=33.3...%
と算出される。以上が、図15の1503に相当する処理である。
当該プログラムによると、モニタリング情報を使って、各担当資源の資源占有量を動的に調整することで、ワークロードの変化による目標性能未達リスクを排除することができる。また、仮想資源使用率を参照しながら、目標資源使用率を段階的に引き上げることで、目標性能達成のための仮想資源量を必要最小限にすることができる。尚、当該プログラムの一部は、管理サーバ110で実行しても構わない。
図17は、資源逼迫改善プログラム403の一例である。資源逼迫改善プログラムとは、ある物理資源が資源逼迫状態に変化したことを検知し、当該物理資源を使用する仮想ストレージ200の担当資源を変更することで、資源逼迫状態を改善し、当該物理資源を使用する仮想ストレージが目標性能未達となるリスクを排除するプログラムである。
まず資源逼迫改善プログラムは、ストレージシステム120に属する物理資源を1つ選択し(1701)、物理資源量管理テーブル415を使って、物理資源使用率が使用率閾値1006を超過しているか否かを判定する(1702)。使用率閾値1006を超過している場合、担当資源変更による資源逼迫状態の改善を行う。
資源逼迫状態を改善するに当り、当該プログラムは、可能な限りホスト100に性能影響を与えないよう、担当資源変更対象を選択する。そのために、当該プログラムは、当該物理資源を使用する仮想ストレージの中で最も優先順位505が高い仮想ストレージを選択し(1703)、当該仮想ストレージに所属する最もボリュームサイズ702が小さい仮想ボリュームを選択する(1704)。尚、ホストへの性能影響を小さくする目的が同一であれば、担当資源変更対象を選択する方法が異なっていても構わない。
次に当該プログラムは、ステップ1704で選択された仮想ボリュームの新たな担当資源を選択する。本実施例では、資源逼迫状態でなく、かつ物理資源使用率が最も小さい物理資源を新たな担当資源の候補として選択する(1705)。新たな担当資源の候補が存在する場合には(ステップ1705:No)、仮想ボリュームの担当資源を、ステップ1705で選択された担当資源に変更する(1707)。以下、ステップ1702から1707の処理を、資源逼迫状態が改善されるまで繰り返し実行する。
担当資源の変更方法は、資源種別に異なる。以下、本明細書が対象とする資源種別について、担当資源の変更方法を記載する。例えば、担当プロセッサの変更は、移動元の物理プロセッサで実行中の当該仮想ボリュームの処理を中断し、移動先の物理プロセッサで処理を再開することで実現できる。同様に、担当メモリの変更は、移動元の物理メモリ上に格納されている当該仮想ボリュームのデータキャッシュを全てパージしたのち、その後のデータ格納先を移動先の物理メモリに切り替えることで実現できる。
担当メディアの変更は、移動元の物理メディア上に格納されている仮想ボリュームのデータを全て読み出し、移動先の物理メディアに書き込んだあと、データアクセス先を移動先の物理メディアに変更することで実現できる。また、担当ポートの変更は、移動先の物理ポートからのアクセスを許可し、ホスト100の設定を手動で変更することでアクセス先を移動先ポートに切り替え、移動先ポートへのアクセスを確認し、移動元の物理ポートに対するアクセスを禁止することで実現できる。
尚、担当資源の変更方法は、上記の限りではなく、一般的な方法を使用することができる。例えば、担当ポートの変更は、ホストに交替パスソフトをインストールし、ストレージシステムの全ての物理ポートのアクセス可否情報を交替パスソフトへ通知することで、移動元の物理ポートへのアクセスを移動先の物理ポートへ自動で切り替える一般的な方法を使用することができる。
仮に、担当資源候補が存在しない場合(1706)、管理サーバに対して改善不可通知を行い(1709)、管理サーバによる資源逼迫状態の改善を依頼する。以下、ストレージシステム内の全ての物理資源について確認を行ったあと(1708)、当該プログラムを終了する。
当該プログラムによると、物理資源の資源逼迫状態を検知し、担当資源の変更によって資源逼迫状態を改善することで、仮想ストレージの目標性能未達となるリスクを排除することができる。
以上で説明した実施例によれば、仮想ストレージに対して性能管理が容易になる。
また、資源の再割り当ては上で説明した方法に限定されない。段階的に仮想資源使用率を上昇させることができるような方法であれば、上で説明した以外にも様々な方法を採用可能である。
図35は、資源再割当てプログラムの別の例である。図16で説明した資源再割当てプログラム402と区別するため、図35で説明するプログラムのことを、資源再割り当てプログラム402’と表記する。
ステップ1601’で資源再割当てプログラム402’は、仮想ストレージ200に所属する各仮想ボリューム300について、仮想資源量管理テーブル416の値を用いることで、各仮想ボリュームの担当資源の仮想資源使用率1106を特定する。続いて資源再割当てプログラム402は、資源種別ごとに、各仮想ボリュームの担当資源の仮想資源使用率1106の平均値を算出する(1602’)。この処理は図16のステップ1602と同じである。
ステップ1604’で資源再割当てプログラム402’は、当該仮想ボリュームの各担当資源について、現在使用されている仮想資源量を算出する。これは限界資源量1003、そして仮想資源量管理テーブル416で管理されている資源占有率1104と仮想資源使用率1106から算出できる。
続いてステップ1605’では、資源再割り当てプログラム402’はステップ1604’で算出した仮想資源量、ステップ1602で算出した仮想資源使用率の平均値、そして担当資源の限界資源量1003を用いて、各担当資源の資源占有率1104を算出し、仮想資源量管理テーブル416に設定する。具体的には資源再割り当てプログラム402’は各担当資源について、
(ステップ1604’で算出した仮想資源量÷仮想資源使用率の平均値)÷担当資源の限界資源量1003
を計算する。
ステップ1606’〜ステップ1608’は、図16のステップ1606〜ステップ1608と同じであるため、説明を省略する。
ステップ1609’では資源再割当てプログラム402’は図16のステップ1609と同様に、各担当資源の仮想資源使用率1106が目標資源使用率504の値に等しくなるように、各担当資源の資源占有率1104を調整し、仮想資源量管理テーブル416に設定し、処理を終了する。(1609)。ここでの調整方法の計算式は、以下の通りである。
(ステップ1604’で算出した仮想資源量÷目標資源使用率504)÷限界資源量
つまり、図16のステップ1609で用いられた計算式では、仮想ボリュームが目標性能を達成するために必要とする仮想資源量が用いられたが、ステップ1609’ではこの代わりに、ステップ1604’で算出した仮想資源量、つまり現時点で使用されている仮想資源量が用いられる点のみが異なる。
資源再割り当てプログラム402’では、仮想ボリュームの性能についての情報が用いられていない。ただし各仮想ボリュームについて、おおむね目標性能に近い性能で稼働している場合、資源再割り当てプログラム402’を用いても、資源再割り当てプログラム402と同じように資源占有率の調整が可能である。
以下、第二の実施例について示す。第二の実施例では、仮想ストレージに所属する仮想ボリューム内の分割領域ごとに担当資源が存在する構成にて、当該仮想ストレージの性能管理を行う方法について述べる。
図18は、第二の実施例における仮想ボリューム300と物理ボリューム301の対応関係を示す概要図である。本実施例における、仮想ボリュームと物理ボリュームの対応関係は、ボリュームより細かな固定長単位で管理される。便宜上、仮想ボリュームを固定長に分割した単位を分割領域1901と呼び、物理ボリュームを固定長に分割した単位をページ1902と呼ぶ。分割領域やページの中には、お互いに関連づいていないものもある(1904や1905)。
図19は、仮想ボリューム構成管理テーブル413の一例を示す。本実施例の仮想ボリューム構成管理テーブルは、仮想ボリュームの分割領域と、物理ボリュームのページとの対応関係を新たに管理する。分割領域とページとの対応関係を管理するために、仮想ボリューム構成管理テーブルは、各分割領域のLBA範囲を示す仮想LBAカラム2203と各ページのLBA範囲を示す物理LBAカラム2205とを管理する。その他のカラムの説明は省略する。
尚、本実施例では、シンプロビジョニング技術を適用することが可能である。シンプロビジョニング技術とは、ホスト100から特定の分割領域へのWrite要求を受領して初めて、当該分割領域にページを対応づける技術である。当該技術を適用することで、ストレージシステムの容量効率を高めることができる。
仮想ボリュームにシンプロビジョニング技術を適用する場合、分割領域にページが対応づいていない場合がある。このような分割領域について、仮想ボリューム管理テーブルでは、物理LBAカラムに「N/A」を格納することで表現する。以下、本実施例の説明は、シンプロビジョニング技術が適用されている場合について示す。
図20は、物理ボリューム構成管理テーブル414の一例である。本実施例の物理ボリューム構成管理テーブルは、物理LBAカラム2103が追加され、ページごとに担当資源を管理することが可能である。その他のカラムの説明は省略する。尚、当該実施例では、第一の実施例と異なり、必要数の物理ボリュームが事前に作成されていることとする。
図21は、仮想ボリュームモニタテーブル415の一例である。本実施例の仮想ボリュームモニタテーブルも同様に、仮想LBAカラム2202が追加され、分割領域ごとの性能値を管理することが可能である。その他のカラムの説明は省略する。
図22は、仮想ボリューム作成プログラム1202の一例である。当該実施例では、まず、分割領域ごとに担当資源を決定し、当該担当資源へ仮想資源を割当てるようステップ2302からステップ2308の処理が変更される。
特に、当該実施例では、仮想ボリューム内の各分割領域について、対応ページが存在するか否かに応じて、仮想資源の割当て方法が変わる。これは、対応ページを決定する契機で各分割領域の担当資源を決定することにより、より適切な担当資源を決定するためである。
このため、当該プログラムでは、まず各分割領域に対応ページが存在するかどうかを判定する(2303)。対応ページが存在する場合、図13と同様の方法で担当資源を決定し(2304)、資源占有率1104を算出する(2305)。当該実施例では、各分割領域のサイズは固定長であり、資源占有率は、「(仮想総資源量)÷(当該仮想ストレージに所属させる仮想ボリュームの分割領域数の総和)÷(担当資源の限界資源量)」で求まる。その後も、図13と同様の方法で担当資源へ仮想資源量の割当てを行う(2306、2307)。
一方担当ページが存在しない場合、一旦、当該分割領域を未割当て領域数としてカウントする(2314)。そして、全ての分割領域に対する判定が完了したことを確認した後(2308)、未割当て領域数分の資源占有率を「(仮想総資源量)÷(当該仮想ストレージに所属させる仮想ボリュームの分割領域数の総和)×(未割当て領域数)÷(担当資源の限界資源量)」で算出したのち(2309)、ステップ2301にて選択した資源種別に属する全ての物理資源に対し、一時的に均等に、未割当て領域数分の資源占有率を割当てる(2311)。
図23は、ホストI/Oプログラム401の一例である。本実施例における、ホストI/Oプログラムも同様に、分割領域ごとに担当資源を特定するよう処理が変更される(2402)。また、シンプロビジョニング技術の適用に伴い、分割領域へのWrite要求を受領して初めて、当該分割領域にページを対応づけるように処理を追加する(ステップ2417、ステップ2418)。
前述した通り、各分割領域は、ページを対応づけた契機で担当資源を決定する。このため、ステップ2418には、当該分割領域に対する担当資源決定処理、および当該担当資源に対する資源占有量設定処理が含まれる。これらの詳細は、図22のステップ2304から2307までの処理と同じであるため、詳細な記載は省略する。
図24は、資源再割当てプログラム402の一例である。本実施例における、資源再割当てプログラムも同様に、分割領域ごとに担当資源の仮想資源量を決定するよう処理が変更される(ステップ2502から2506)。
また、図22同様、各分割領域に対応ページが存在するかどうかを判定し(2503)、存在しない場合は、当該分割領域を未割当て領域数としてカウントする(2516)。そして、全ての分割領域に対する判定が完了したことを確認した後(2506)、未割当て領域数分の資源占有量を算出し(2507)、一時的に全ての物理資源に均等に資源占有量を割り振る(2508)。
以上で説明したストレージ制御プログラムやストレージ管理テーブルによると、仮想ボリューム内を分割領域単位で管理する構成で、シンプロビジョニング技術が適用されている場合でも、仮想ストレージの性能管理が可能である。
以下、第三の実施例について示す。第三の実施例では、第二の実施例の構成に加え、各仮想ボリュームにティアリング技術が適用されている構成にて、当該仮想ストレージの性能管理を行う方法について述べる。
ティアリング技術とは、ある仮想ボリュームの各分割領域に、異なるメディア種別で構成した物理ボリュームのページを対応づける技術である。また、スループット性能が大きい分割領域を高速なメディア種別へ自動再配置することで、当該仮想ボリュームの性能向上を可能にする。本明細書において、高速なメディア種別とはSSD151を指す。
図25は、仮想ストレージ構成管理テーブルの一例である。本実施例における仮想ストレージ構成管理テーブルは、仮想メディア2705として、HDD151とSSDとを混在させたメディア種別を指定できる。ストレージシステムは、HDDの資源占有量とSSDの資源占有量とをティアリング技術によって動的に調整し、目標性能を達成するためのSSDの資源占有量を必要最小限にする。その他のカラムの説明は省略する。
図26、図27は、本実施例における、資源再割当てプログラム203の処理概要図である。図26の例では、仮想ストレージ200が、1つの仮想ボリューム300を有している。当該仮想ストレージの目標性能は「5ms未満」に設定されている。また図27に示されているとおり、仮想ボリュームに含まれる各分割領域1901の担当メディア2107は、SSD#1とHDD#1とのいずれかであり、SSD#1を担当資源とする分割領域のスループット性能2203の総和は100IOPS、HDD#1を担当資源とする分割領域のスループット性能の総和は200IOPSである。
ここで、SSDの平均レスポンス性能を1ms、HDDの平均レスポンス性能を6msと仮定すると、当該仮想ストレージのレスポンス性能は、概ね4.3msと計算できる。一方、目標性能である5ms未満を達成するための必要最小限の構成では、SSD#1を担当資源とする分割領域のスループット性能2203の総和が60IPS、HDD#1を担当資源とする分割領域のスループット性能の総和が240IOPSであればよい。
このため、当該プログラムは、担当資源がSSD#1である分割領域の中でスループット性能が小さいものから順に40IOPS分を選択し、担当資源をHDDに変更することでSSDの資源割当て量を必要最小限にする。ここで、スループット性能が小さいものを選んだ理由は、SSDの容量資源を有効活用するためであり、40IOPS分であれば異なる選択基準でも構わない。
図28は、資源再割当てプログラム402の一例である。本実施例における、資源再割当てプログラムは、レスポンス性能が設定されている場合の、資源再割当て方法について示す。
まず、当該プログラムは、目標性能を達成するために最低限必要な、SSDの目標スループット性能を計算する(2801)。当該処理の計算方法の一例は、図27で示した通りである。その後、現在の目標資源使用率を基に、「目標スループット性能÷SSDの目標スループット性能」を計算し、必要な仮想資源量として算出する(2802)。次に、当該プログラムは、担当メディアのメディア種別がSSDである分割領域について、スループット性能を集計し(2803)、算出した仮想資源量との差を計算することで、HDDへ移動する必要があるスループット性能量(移動予定性能量)を算出する(2804)。
尚、本実施例では、SSDからHDDに担当資源を変更する場合の例のみ示すが、HDDからSSDへ担当資源を変更する場合も、同様に計算できる。次に、担当メディアのメディア種別がSSDである分割領域をスループット性能が低い順にソートし(2805)、先頭の分割領域から順に、移動予定性能量分、担当メディアをSSDからHDDへ変更する(2806、2807)。担当メディアの変更方法の一例は、図17にて示した方法を適用できる。
尚当該プログラムは、担当メディアを変更した分割領域のスループット性能を移動済性能量として加算し(2808)、移動済性能量が移動予定性能量を超過した時点で処理を終了する(2809)。
また、当該プログラムは、図16と同様に、共有資源の有無に応じて、目標資源使用率の調整を行う(ステップ2810からステップ2812)。以上、当該プログラムによると、目標性能を達成するために必要なSSDの資源量を必要最小限にすることができる。
以上で説明したストレージ制御プログラムやストレージ管理テーブルによると、仮想ボリューム内を分割領域単位で管理する構成で、ティアリング技術が適用されている場合でも、仮想ストレージの性能管理が可能である。
以下、第四の実施例について示す。第四の実施例では、仮想ストレージに所属する仮想ボリュームに対してストレージ機能を適用されている構成において、当該仮想ストレージの性能管理を行う方法について示す。
本実施例では、仮想ストレージを構成する各仮想ボリュームに対して、さまざまなストレージ機能を適用することができる。ストレージ機能とは、具体的には、ボリュームコピー機能や重複排除機能、圧縮機能などを指す。仮想ボリュームにストレージ機能を適用する場合、そのストレージ機能の機能状態によって、目標性能を達成する仮想資源量が異なるため、機能状態に応じた仮想資源量調整が必要となる。
図29は、本実施例が対象とするボリュームコピー機能の概要を示す。ボリュームコピー機能とは、ある仮想ボリューム300に格納したデータの複製を、別の仮想ボリュームに複製する機能である。本明細書では、複製元の仮想ボリュームをPrimary Volume2901、複製先の仮想ボリュームをSecondary Volume2902として区別する。
ボリュームコピー機能は、Primary VolumeとSecondary Volumeとの間の複製作成状況を示す機能状態を有する。図30は、当該機能状態の状態遷移図の一例である。「Init」は複製を作成していない初期状態を示し(2911)、「Copying」はPrimary VolumeからSecondary Volumeへデータを複製している途中状態を示す(2912)。
「Paired」は、一旦データの複製を完了した後、Write要求をPrimary VolumeとSecondary Volumeの両方に書き込んで複製を維持している状態を示し(2913)、「Suspended」は、Write要求がPrimary Volumeのみに書き込まれ、かつSecondary Volumeとのデータ差分箇所を記録している状態を示す(2914)。「Restoreing」は、前記データ差分箇所のデータをSecondary VolumeからPrimary Volumeに複製している状態を示す(2915)。
ここで例えば、機能状態がCopyingの場合、Suspendedに比べてSecondary Volumeが目標性能を達成するための仮想資源量がより多くなる。すなわち、SuspendedからCopyingに状態変更した契機でSecondary Volumeに適切な仮想資源量を追加する制御を行うことで、仮想資源量を必要最小限にできる。
図31は、本実施例が対象とする重複排除機能と圧縮機能との概要を示す。重複排除機能とは、格納データが同一である分割領域1901に共通のページ1902を対応付ける(重複排除する)ことで、容量効率向上を図る機能である。一方、圧縮機能とは、分割領域を圧縮したデータをページに格納することで、容量効率向上を図る機能である。尚、同一の分割領域に、重複排除、圧縮の両方を適用することも可能である。
ここで例えば、圧縮機能が適用されている場合、当該データに対するI/Oについて圧縮処理や伸張処理を実施する必要があり、目標性能を達成するための仮想資源量がより多くなる。すなわち、圧縮を実行した契機で仮想ボリュームに適切な仮想資源量を追加する制御を行うことで、仮想ボリュームに割当てる物理資源量を必要最小限にできる。
図32は、ストレージ機能状態管理テーブル417の一例である。機能状態管理テーブルは、各仮想ボリューム300に適用されている機能種別と、その機能状態とを管理するテーブルである。機能状態管理テーブルは少なくとも、仮想ボリューム番号カラム3101、機能種別カラム3102、機能状態カラム3103を含む。
機能種別カラムには、仮想ボリュームに適用されている機能種別を格納する。本実施例では、「ボリュームコピー(Primary Volume)」、「ボリュームコピー(Secondary Volume)」、「重複排除」、「圧縮」などの値を格納する。
機能状態カラムには、各機能種別が提供する機能の機能状態を格納する。ボリュームコピーでは、図30で示したInit、Copying、などの状態を格納する。同様に、重複排除では、仮想ボリュームに含まれる分割領域の中で、重複排除されているページの割合を格納し、圧縮では、「圧縮済」、「未圧縮」のいずれかの状態を格納する。
図33は、ストレージ機能状態補正テーブル418の一例である。ストレージ機能状態補正テーブルは、仮想ボリューム300に適用されているストレージ機能が、特定の機能状態に遷移した場合の、仮想資源量の補正率を管理するテーブルである。当該テーブルは、少なくとも、機能種別カラム3201、機能状態カラム3202、ポート補正率カラム3203、プロセッサ補正率カラム3204、メモリ補正率カラム3205、メディア補正率カラム3206を含む。
ストレージシステム120は、仮想ストレージ200が占有する仮想資源量を、カラム3203から3006で示す補正率で調整する。例えば、仮想ストレージに所属する、ある仮想ボリュームにボリュームコピー(Primary Volume)が適用されており、ストレージ機能状態がCopyingに遷移した場合、資源再割当てプログラム402のステップ1605で算出される資源占有率に補正率を加算して補正する。たとえばプロセッサ補正率3204が10%の時、ステップ1605で、プロセッサの資源占有率が算出された後、算出された資源占有率に1.1を乗じることで、補正が行われる。
図34は、ストレージ機能状態変更プログラム406の一例である。ストレージ機能状態変更プログラムとは、仮想ボリュームのストレージ機能状態を変更されるたびに実行され、変更後のストレージ機能状態に応じて、資源占有率を補正するプログラムである。
まず、ストレージ機能状態変更プログラムは、仮想ボリュームの機能状態変更を検知し(3301)、ストレージ機能状態を更新する(3302)。機能状態の変更は、管理サーバ110からの要求に伴って発生することが一般的であるが、機能種別によっては、ホスト100からのコマンド受領契機や障害契機などで状態変更が発生する場合もある。
ストレージ機能状態変更を検知すると、当該プログラムは、当該仮想ボリュームに適用されている機能種別の1つを選択し(3303)、機能状態補正テーブル418を基に、更新した機能状態に応じた各資源補正率を算出する(3304)。仮想ボリュームに適用されている全ての機能種別について、資源補正率を算出した後(3305)、算出した資源補正率を全て足し合わせ、総補正率として計算する(3306)。最後に、仮想ストレージに対して、物理資源を補正する(3307)。ステップ3307の補正では、図33の説明の際に述べた補正が行われる。
以上により、仮想ストレージに所属する各仮想ボリュームにストレージ機能が適用する場合でも、その機能状態に応じて資源割当て量を変更することで必要最小限の物理資源量を割当てることが可能となる。
以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
100…ホスト、110・・・管理サーバ、120・・ストレージシステム、130・・データねtt−ワーク、140・・ストレージコントローラ、150・・メディア

Claims (10)

  1. ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムにおいて、
    前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、
    前記ストレージシステムは、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能に構成されており、
    前記仮想ストレージ装置は、前記仮想ストレージ装置内に前記ホストからのI/O要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するI/O要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記I/O要求に係る処理を実施し、
    前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、
    ことを特徴とする、ストレージシステム。
  2. 前記ストレージシステムは、前記プロセッサ資源を割り当て、当該割り当てたプロセッサ資源の資源量に基づいて、前記仮想ボリュームのボリュームサイズを決定し、前記仮想資源を前記仮想ボリュームに割り当てる、
    ことを特徴とする、請求項1に記載のストレージシステム。
  3. 前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
    A) 前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
    B) 前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、
    C) 前記目標性能を達成するために必要とされる前記仮想資源の資源量÷前記仮想資源の使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  4. 前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
    D) 標資源使用率を引き上げ
    E) 前記目標性能を達成するために必要とされる前記仮想資源の資源量÷前記目標資源使用率÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項3に記載のストレージシステム。
  5. 前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
    A) 前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
    B) 現時点で使用されている前記仮想資源の資源量÷前記仮想資源の使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項2に記載のストレージシステム。
  6. 前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
    C) 標資源使用率を引き上げ
    D) 現時点で使用されている前記仮想資源の資源量÷前記目標資源使用率÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項5に記載のストレージシステム。
  7. ホストからのI/O要求を処理するために用いられる複数種類の物理資源を有するストレージコントローラと、データを格納するためのメディア資源を有するストレージシステムの制御方法であって、
    前記物理資源の種類には、少なくともプロセッサ資源、メモリ資源、前記ホストと接続されるポート資源とが含まれており、
    前記ストレージシステムは、前記物理資源の処理能力を論理的に分割した仮想資源が割り当てられた仮想ストレージ装置を1以上形成可能であって、
    前記ストレージシステムは、
    1) 前記仮想ストレージ装置内に前記ホストからのI/O要求を受け付ける仮想ボリュームを作成する際、前記仮想資源を前記仮想ボリュームに割り当て、前記仮想ボリュームに対するI/O要求を前記ホストから受け付けると、前記割り当てられた前記仮想資源を用いて前記I/O要求に係る処理を実施し、
    2) 前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる、
    ことを特徴とする、ストレージシステムの制御方法。
  8. 前記ストレージシステムは、前記プロセッサ資源を割り当て、当該割り当てたプロセッサ資源の資源量に基づいて、前記仮想ボリュームのボリュームサイズを決定し、前記仮想資源を前記仮想ボリュームに割り当てる、
    ことを特徴とする、請求項7に記載のストレージシステムの制御方法。
  9. 前記ストレージシステムは、前記仮想資源を前記仮想ボリュームに割り当てた後、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させる前に、
    A) 前記仮想ストレージ装置内の各前記仮想ボリュームに割り当てられている前記仮想資源の使用率の平均値を算出し、
    B) 前記各仮想ボリュームの現時点の性能とあらかじめ定められた目標性能と、現時点で使用されている前記仮想資源の資源量に基づいて、前記目標性能を達成するために必要とされる前記仮想資源の資源量を算出し、
    C) 前記目標性能を達成するために必要とされる前記仮想資源の資源量÷前記仮想資源の使用率の平均値÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項8に記載のストレージシステムの制御方法。
  10. 前記ストレージシステムは、前記仮想ボリュームに割り当てられた前記仮想資源の使用率を段階的に上昇させるとき、
    D) 標資源使用率を引き上げ
    E) 前記目標性能を達成するために必要とされる前記仮想資源の資源量÷前記目標資源使用率÷前記物理資源の最大処理能力を算出することで、前記物理資源のうち前記仮想ボリュームに対して割り当てる資源量の比率を決定する、
    ことを特徴とする、請求項9に記載のストレージシステムの制御方法。
JP2016571608A 2015-01-29 2015-01-29 ストレージシステム Active JP6340439B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052568 WO2016121066A1 (ja) 2015-01-29 2015-01-29 ストレージシステム

Publications (2)

Publication Number Publication Date
JPWO2016121066A1 JPWO2016121066A1 (ja) 2017-11-30
JP6340439B2 true JP6340439B2 (ja) 2018-06-06

Family

ID=56542717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571608A Active JP6340439B2 (ja) 2015-01-29 2015-01-29 ストレージシステム

Country Status (3)

Country Link
US (1) US10664182B2 (ja)
JP (1) JP6340439B2 (ja)
WO (1) WO2016121066A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9971548B1 (en) * 2017-03-06 2018-05-15 Nutanix, Inc. Storage resource management employing performance analytics
US10853307B2 (en) * 2017-07-28 2020-12-01 Dell Products, L.P. System and method for a host application to access and verify contents within non-volatile storage of an information handling system
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
CN112241320B (zh) * 2019-07-17 2023-11-10 华为技术有限公司 资源分配方法、存储设备和存储系统
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194251A1 (en) * 2000-03-03 2002-12-19 Richter Roger K. Systems and methods for resource usage accounting in information management environments
JP4847272B2 (ja) * 2006-10-18 2011-12-28 株式会社日立製作所 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
US20100030877A1 (en) * 2007-02-23 2010-02-04 Mitsuru Yanagisawa Virtual server system and physical server selecting method
US8185909B2 (en) * 2007-03-06 2012-05-22 Sap Ag Predictive database resource utilization and load balancing using neural network model
JP2008257572A (ja) 2007-04-06 2008-10-23 Hitachi Ltd 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
US8190844B2 (en) * 2008-12-02 2012-05-29 Lsi Corporation Efficient alert mechanism for overutilization of storage resources
WO2011069705A1 (en) * 2009-12-10 2011-06-16 International Business Machines Corporation Data storage system and method
JP5560690B2 (ja) * 2009-12-15 2014-07-30 富士通株式会社 仮想計算機割当資源管理プログラム、仮想計算機割当資源管理装置および仮想計算機割当資源管理方法
US9047135B2 (en) * 2010-01-22 2015-06-02 International Business Machines Corporation Qualitative assignment of resources to a logical partition in a multipartitioned computer system
JP5544967B2 (ja) * 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
US8612989B1 (en) * 2010-10-04 2013-12-17 Teradata Us, Inc. Assigning resources among multiple groups of workloads in a database system
US9038068B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
KR101540631B1 (ko) * 2012-12-28 2015-07-30 삼성에스디에스 주식회사 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체

Also Published As

Publication number Publication date
WO2016121066A1 (ja) 2016-08-04
JPWO2016121066A1 (ja) 2017-11-30
US10664182B2 (en) 2020-05-26
US20180004447A1 (en) 2018-01-04

Similar Documents

Publication Publication Date Title
JP6340439B2 (ja) ストレージシステム
US7415573B2 (en) Storage system and storage control method
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
JP5314772B2 (ja) 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
JP5438827B2 (ja) 記憶制御装置及び仮想ボリュームの制御方法
JP5973089B2 (ja) ストレージシステムの移行方式および移行方法
WO2010106574A1 (ja) 記憶制御装置及び仮想ボリュームの制御方法
US20120297156A1 (en) Storage system and controlling method of the same
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
JP5080611B2 (ja) ThinProvisioningが適用されたストレージ装置
US20150006722A1 (en) Computing device system and information managing method for rearrangement of data based on access characteristic related to a task
JP6234557B2 (ja) ストレージシステム
WO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
US9690693B2 (en) Storage system, storage apparatus, and computer product
US9547443B2 (en) Method and apparatus to pin page based on server state
JP2015111460A (ja) 管理計算機、計算機システム、及び管理方法
WO2017085870A1 (ja) 計算機システム
WO2018116392A1 (ja) 情報処理システム、及び、情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180406

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180514

R150 Certificate of patent or registration of utility model

Ref document number: 6340439

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150