JP5781925B2 - 計算機システム及びその制御方法 - Google Patents
計算機システム及びその制御方法 Download PDFInfo
- Publication number
- JP5781925B2 JP5781925B2 JP2011510141A JP2011510141A JP5781925B2 JP 5781925 B2 JP5781925 B2 JP 5781925B2 JP 2011510141 A JP2011510141 A JP 2011510141A JP 2011510141 A JP2011510141 A JP 2011510141A JP 5781925 B2 JP5781925 B2 JP 5781925B2
- Authority
- JP
- Japan
- Prior art keywords
- pool
- volume
- allocation
- virtual volume
- logical
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
ストレージ装置は、複数のハードディスクをRAID(Redundant Array of Independent/Inexpensive Disks)方式で管理する。そして、多数のハードディスクが有する物理的な記憶領域を論理化し、これを論理ボリュームとしてホスト装置に提供する。ホスト装置は論理ボリュームにアクセスしてデータのリード・ライトを要求する。
この種の論理化技術の一つにシン・プロビジョニングと称されるものがある。ストレージ装置は、物理的な記憶領域を有さない仮想的なボリュームをホスト装置に対して設定する。ホスト装置が仮想的なボリュームにライトアクセスにすることに合わせて、ストレージ装置は、仮想ボリュームに対して記憶領域を順次割り当てていく。
したがって、この技術は、論理ボリュームに対して当初から大容量な記憶領域を割り当てる方式に比べて、ストレージ資源を有効に活用できる点で効果的である。この技術は、特願2003−15915号公報、及び、特開2006−338341号公報に記載されている。
仮想ボリュームに記憶領域を提供するための手段は、それぞれ実の記憶領域が割り当てられた複数の論理ボリュームをプールと呼ばれる論理グループに纏めたものから構成される。複数の論理ボリュームはそれぞれプールボリュームと呼ばれる。仮想ボリュームにホスト装置からライトアクセスがあると、仮想ボリュームのアクセス先に、プールボリュームの対応領域の記憶領域を割り当てる。
ストレージ装置は、仮想ボリュームに対するホスト装置からのアクセス領域を、プールボリュームに記憶容量が割り当てられた領域に対応させることにより、ホスト装置からのライトデータを保存することができる。
ストレージ装置は、複数のプールボリュームへの記憶領域の割り当てが均等になるようにするが、長い時間を経過してゆく過程で、この均等が崩れてくる問題がある。そこで、特開2008−234158号は、複数のプールボリューム間で記憶領域を移動させて、記憶領域の容量が複数のプールボリュームについて均等になることを開示している。
なお、米国特許第6857059号公報には、仮想ボリュームの未割当て領域へリードアクセスが来た場合、ストレージ装置は、プログラムによって全部が“0”からなる固定パターンを作成してホスト装置へ応答すること、仮想ボリュームの未割当て領域へライトが来た場合、記憶領域を割り当てることが記載されている。
そこで、本発明は、仮想ボリュームに記憶領域を割り当てる複数の論理ボリュームに対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することを目的とするものである。
さらに、本発明は、固定パターンデータを削除することなどのように、論理ボリューム
のデータ量に変化が避けられない場合にも、仮想ボリュームに記憶領域を割り当てる複数の論理ボリュームに対して、記憶容量の均等化が維持される計算機システムを提供することを目的とするものである。
本発明は、さらに、論理ボリュームから固定パターンデータの削除を行いながら、複数の論理ボリューム間で記憶容量のバランスを図るようにした計算機システムであることを特徴とするものである。
さらに、本発明によれば、固定パターンデータを削除することなどのように、論理ボリュームのデータ量に変化が避けられない場合にも、仮想ボリュームに記憶領域を割り当てる複数の論理ボリュームに対して、記憶容量の均等化が維持される計算機システムを提供することができる。
図2は、図1に示した計算機ステムにおいて、ストレージ装置が行う記憶領域の動的割り当ての動作を示す機能ブロック図である。
図3は、ストレージ装置のメモリブロック図である。
図4は、VDEV管理情報を説明するブロック図である。
図5は、LDEV管理情報を説明するブロック図である。
図6は、アドレス管理テーブルを説明するブロック図である。
図7は、POOL管理情報のブロック図である。
図8は、VVOL−DIR及びPSCBのブロック図である。
図9は、計算機システムの第2の形態を示すハードウエアブロック図である。
図10Aは図1に示すシステムにおける、ターゲットデバイスと、LDEVと、PDEVとのマッピングの関係を示すブロック図であり、図10Bは図9のシステムの同ブロック図である。
図11に、1つの仮想ボリュームと複数のプールボリュームとの間で、均等に、ページが割り当てられている様子を示すブロック図である。
図12は、複数のプールボリューム間でのページのリバランスの過程を示す仮想ボリューム及びプールボリュームのブロック図である。
図13は、複数のプールボリューム間で、プールボリュームの容量比を勘案してリバランスを行う様子を示す、仮想ボリューム及びプールボリュームのブロック図である。
図14は、リバランスの契機にしたがって、ストレージ装置がリバランの処理を行うことを説明するフローチャートである。
図15はリバンラスを示すフローチャートートである。
図16Aはプールを管理するテーブルであり、図16Bはプールボリュームを管理するテーブルであり、図16Cは、フリーキュー単位を管理するテーブルである。
図17は、ホスト装置から仮想ボリュームへのライトアクセスに対して、プールに属するプールボリュームから仮想ボリュームにページを割り当てる順序を示したブロック図である。
図18は、この割り当て順序を管理するテーブルである。
図19は、複数のプールボリューム間でマイグレーションされるページ数の算出の処理を示すフローチャートである。
図20は、算出されたページ数とページの移動の様子を示す、仮想ボリュームとプールボリュームとのブロック図である。
図21は、図20に示すページの移動形態を実現するための管理テーブルである。
図22は、ページ割り当てバランス管理テーブルである。
図23は、マイグレーション処理の詳細を示すフローチャートである。
図24は固定データパターンの破棄を伴う、マイグレーション処理の詳細を示すフローチャートである。
図25は、ページマイグレーションに対してホスト装置からI/O処理を優先させることを説明するフローチャートである。
図26は、図24の処理を実現するためのプール及びキャッシュメモリのブロック図である。
図27Aは、仮想ボリュームの未使用領域がプールボリュームの0データ専用領域に割り当たっている様子を示す仮想ボリュームとプールボリュームとのブロック図であり、図27Bは仮想ボリュームにプールボリュームの未使用領域が割り当てられたことを示すブロック図であり、図27Cはプールボリュームの割り当てページが全0データである場合の処理内容を説明するブロック図である。
図28は、0データ専用領域へのリード処理を示すフローチャートである。
図29は、仮想ボリュームの未割当領域にホスト装置からライト要求が発行された場合の処理を説明するフローチャートである。
図30Aは、追加プールボリュームに0データ専用領域を設定している様子を説明する仮想ボリュームとプールボリュームとのブロック図であり、図30Bは、削除されるプールボリュームに0データ専用領域が割り当てられている様子を説明するブロック図である。
図31は図26の変形例に係るブロック図である。
図32は、複数のプールボリューム間でページマイグレーションが行われている様子を説明するブロック図であり、図33の前提となるものである。
図33はページのマイグレーションを実現するフリーキュー処理を説明するブロック図である。
図34は、図35の前提となるブロック図である。
図35は、マイグレーションの中断が発生した場合でのフリーキュー処理を説明するブロック図である。
図36は、マイグレーション進捗管理のための管理テーブルである
図37は、リバランスを考慮したプールボリュームのシュリンク処理を説明するフローチャートである。
図38は、GUIによってユーザに提供されるシュリンク情報の例である。
図39はシュリンクの予想結果の出力例である。
図40はストレージ装置がシュリンクするプールボリュームを決定するための処理の詳細を示したフローチャートである。
図41及び図42は、プールボリュームの削減を伴ったリバランスを説明するためのブロック図である。
図43は、図9に示すストレージ装置が複数のクラスタを備えていることを説明するハードウエアブロック図である。
図44は、仮想ボリュームの属性に、ホスト装置からのアクセスに対する応答の高速性を示す「性能」を追加したことを説明する仮想ボリュームとプールボリュームとのブロック図である。
ホスト計算機10は、ストレージ装置30の論理的な記憶資源にアクセスする。管理装置20は、ストレージ装置30の記憶領域の構成を管理する。ストレージ装置30は、物理デバイス34に設定された記憶領域にデータを格納する。
ホスト計算機10は、入力手段110、出力手段120、CPU130、メモリ140、ディスクアダプタ150、ネットワークアダプタ160及びディスクドライブ170を備える。入力手段110は、ホスト計算機10を操作する管理者等から入力を受け付ける手段である。入力手段110は、例えば、キーボードで構成される。出力手段120は、ホスト計算機10の状態や設定項目を表示する手段である。出力手段120は、例えばディスプレイ装置で構成される。
CPU130は、ディスクドライブ170に格納されているプログラムをメモリ140に読み込んで、そのプログラムに規定された処理を実行する。メモリ140は、例えばRAM等で構成され、プログラムやデータ等を格納する。
ディスクアダプタ150は、ストレージ装置30とストレージネットワーク50を介して接続し、ストレージ装置30にデータを送受信する。ストレージネットワーク50は、データ転送に適したプロトコル(例えば、Fibre Channel)で構成される。
ネットワークアダプタ160は、ストレージシステム管理装置20又はストレージ装置30と管理ネットワーク40を介してデータを送受信する。管理ネットワーク40は、例えばEthernetで構成される。
ディスクドライブ170は、例えばハードディスク装置で構成され、データやプログラムを格納する。
管理装置20は、入力手段210、出力手段220、CPU230、メモリ240、ネットワークアダプタ250及びディスクドライブ260を備える。
入力手段210は、管理装置20を操作する管理者等の入力を受け付ける手段である。入力手段210は、例えばキーボードで構成される。出力手段220は、管理装置20の状態や設定項目を表示する手段である。出力手段220は、例えばディスプレイ装置で構成される。
CPU230は、ディスクドライブ260に格納されている管理プログラムをメモリ240に読み込んで、そのプログラムに基づくストレージ装置に対する管理処理を実行する。メモリ240は、例えばRAM等で構成され、プログラムやデータ等を格納する。
ネットワークアダプタ250は、ホスト計算機10又はストレージ装置30と管理ネットワーク40を介してデータを送受信する。
ディスクドライブ260は、例えばハードディスク装置で構成され、データやプログラムを格納する。
ストレージ装置30は、コントローラ31、ストレージキャッシュメモリ32、共有メモリ33、物理デバイス(PDEV)34、電源スイッチ35及び電源36を備える。 コントローラ31は、PDEV34に構成された記憶領域へのデータの格納を制御する。 ストレージキャッシュメモリ32は、PDEV34に読み書きされるデータを一時的に格納する。共有メモリ33は、コントローラ31やPDEV34の構成情報を格納する。PDEV34は、複数のディスク装置によって構成される。電源36は、ストレージ装置30の各部に電力を供給する。電源スイッチ35は、電源36からの電力の供給をON/OFFするスイッチである。ディスク装置(記憶デバイス)は、例えばハードディスクドライブで構成され、主としてユーザデータを格納する。記憶デバイスとしては、フラッシュメモリなどの半導体メモリからなるドライブでもよい。
コントローラ31は、ホストアダプタ310、ネットワークアダプタ320、不揮発性メモリ330、電源制御部340、メモリ350、プロセッサ360、ストレージアダプタ370及び共有メモリアダプタ380によって構成される。
ホストアダプタ310は、ストレージネットワーク50を介してホスト計算機10との間でデータを送受信する。ネットワークアダプタ320は、管理ネットワーク40を介してホスト計算機10又は管理装置20との間でデータを送受信する。
不揮発性メモリ330は、ハードディスクやフラッシュメモリで構成され、コントローラ31で動作するプログラムや構成情報等を格納する。電源制御部340は、電源36から供給される電力を制御する。
メモリ350は、例えばRAM等で構成され、プログラムやデータ等を格納する。プロセッサ360は、不揮発性メモリ330に格納されているプログラムをメモリ350に読み込んで、そのプログラムに規定された処理を実行する。
ストレージアダプタ370は、PDEV34及びストレージキャッシュメモリ32との間でデータを送受信する。共有メモリアダプタ380は、共有メモリ33との間でデータを送受信する。
図2は、図1に示した計算機ステムにおいて、ストレージ装置30が行う記憶領域の動的割り当ての動作を示す機能ブロック図である。PDEV34からRAID構成によってRAIDグループが構成される。このRAIDグループから仮想デバイス(VDEV)400が構成される(S101)。VDEV400は記憶領域である複数の論理デバイス(LDEV)500に分割されている。PDEV34から構成されたVDEVを、「第1種VDEV」と呼ぶ。この第1種VDEVに含まれるLDEVを、「第1種LDEV」と呼ぶ。
ホスト計算機10は、ストレージ装置30のボリューム(論理領域)にアクセスする。ホスト計算機10から見えるボリュームを「ターゲットデバイス」と呼ぶ。ターゲットデバイス700は、第1種LDEV500を含むボリュームにホスト計算機10へのパスを定義して設定される(S102)。
ストレージ装置30の外部に接続されている外部物理デバイス600をPDEV34と同様に扱うこともできる。すなわち、RAID構成によって複数の外部物理デバイス(EDEV)600から複数の第1種VDEV400が構成される(S103)。第1種VDEV400は一つ以上の記憶領域である第1種LDEV500に分割されている。この第1種LDEV500にホスト計算機10へのパスを設定して、ターゲットデバイス700が設定される(S104)。
また、ストレージ装置30において、第2種VDEV401を設定できる。第2種VDEVとは、PDEV34によって構成される第1種VDEVとは異なり、アドレスと領域を持っているがPDEV34に対応する領域は持っていない仮想的なデバイスである。第2種VDEVに対応するキャッシュメモリの領域の設定は可能である。この第2種VDEV401には、一つ以上のLDEVを構成する。このLDEVを2種LDEV501と呼ぶ。
この第2種LDEV501にホスト計算機10へのパスを設定して、ターゲットデバイス701が設定される(S110)。このターゲットデバイスが仮想ボリュームに対応する。
第2種VDEV及び第2種LDEVは、物理的な記憶領域がPDEVから割り当てられていない(記憶領域を持っていない)。これをホスト計算機10が使用するためには、第2種LDEVを、ストレージプール(あるいは単に“プール”という。)60に関連付ける必要がある。
ストレージプール60は、第1種LDEV500の一つまたは複数を、ストレージプールの属性で纏めたグループである。第1種LDEV500は、ストレージプールに割り当てられている(S112)。第1種LDEVがプールボリュームである。
このストレージプールに設定された第1種LDEV500を第2種LDEV501に、アドレスを用いて、関連付けを行う(S111)。この関連付けを、“マッピング”あるいは、“割り当て”という。
これによって、ホスト計算機10が、仮想ボリュームに対してライト・リードアクセスが可能となる。また、第1種LDEVと第2種LDEVとのマッピングを変更することで、仮想ボリュームの記憶領域を変更できる。
図3は、ストレージ装置30のメモリ350ブロック図である。メモリ350には、プロセッサ360によって読み込まれて実行される各種プログラムや、LDEVの設定に関する構成情報351及びストレージプールの設定に関するプール情報352が格納される。
コマンド制御プログラム3501は、ホスト計算機10又は管理装置20からのコマンドを解釈し、そのコマンドに規定された処理を実行する。構成制御プログラム3503は、ストレージ装置30の構成を制御する。ディスクI/Oプログラム3505は、PDEV34へのアクセスを制御する。プール制御プログラム3507は、ストレージプールを設定する。
構成情報351は、ストレージ装置30のVDEV及びLDEVに関する設定を格納する。プール情報352は、ストレージプールに関する設定を格納する。
構成情報351は、アドレス管理テーブル3511、LDEV管理情報3512、VDEV管理情報3514を含む。
アドレス管理テーブル3511は、ターゲットデバイスとLDEVとVDEVと物理デバイスとのアドレスのマッピング情報を格納する。アドレス管理テーブル3511は、ターゲットデバイス−LDEVマッピング情報35111、LDEV−VDEVマッピング情報35112及びVDEV−PDEVマッピング情報35113を含む。LDEV管理情報3512は、LDEVに関する情報を格納する。VDEV管理情報3514は、仮想論理ボリュームに関する情報を格納する。
プール情報352は、POOL管理情報3521、POOL−VOL管理情報3522、VVOL−DIR3523、PSCB3524を含む。POOL管理情報3521は、ストレージプールの設定を格納する。POOL−VOL管理情報3522は、ストレージプールのボリュームの情報を格納する。VVOL−DIR3523は、ストレージプールのLDEVのアドレスの割り当てを格納する。PSCB情報は、ストレージプールのLDEVのアドレスの情報を格納する。
さらに、メモリ350は、ストレージプールに属する複数のLDEV(プールボリューム)500にPDEVから記憶領域を均等に割り当てるための割り当て処理プログラム3508と、複数のプールボリューム間で記憶領域を移動させて、複数のプールボリュームの記憶容量を均等化させるためのリバランス処理プログラム3509と、を有している。
割り当て処理プログラムがホスト計算機からIOがきてページを割り当てる際に、どのプールボリュームからどの頻度で割り当てるかは、仮想ボリュームごとに定義した割り当て順序テーブル(あるいは選択順序テーブル)によって定義されている。
図4は、VDEV管理情報の説明図である。VDEV管理情報は、VDEV固有情報35141から構成される。VDEV固有情報35141は、VDEV番号(VDEV#)35142、エミュレーションタイプ35143、総サイズ35144、残サイズ35145、デバイス属性35146、デバイス状態35147、設定LDEV数35148、LDEV番号35149、先頭VDEV−SLOT#35150及び終了VDEV−SLOT#35151で構成される。
VDEV#35142は、VDEVの識別子である。エミュレーションタイプ35143はVDEVのエミュレーションタイプの識別子である。総サイズ35144は、VDEVに設定されている総サイズである。残サイズ35145はVDEVの未使用の領域のサイズである。
デバイス属性35146は、VDEVに定義されている属性の識別子である。そのVDEVが第1種VDEVである場合には第1種VDEVを示す識別子が格納され、そのVDEVが第2種VDEVであり、仮想ボリュームに設定されている場合には第2種VDEVを示す識別子が格納される。
デバイス状態35147は、VDEVの状態を示す識別子である。VDEVの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
設定LDEV数35148は、VDEVに設定されているLDEVの総数である。LDEV番号35149はVDEVに設定されているLDEVの番号が格納される。先頭VDEV−SLOT#35150は、設定されているLDEVの物理的な先頭のスロット番号の識別子である。
終了VDEV−SLOT#35151は、設定されているLDEVの物理的な最終のスロット番号である。このLDEV番号35149、先頭VDEV−SLOT#35150及び終了VDEV−SLOT#35151は、LDEV数と同じ数だけLDEV番号毎に設定される。
図5は、LDEV管理情報の説明図である。LDEV管理情報は、VDEV固有情報35121から構成される。LDEV固有情報35121は、LDEV番号(LDEV#)35122、エミュレーションタイプ35123、サイズ35124、先頭スロット番号35125、終了スロット番号35126、パス定義情報35127、デバイス属性35128、デバイス状態35129、プログラム使用状況351300及びPOOL−ID351301で構成される。
LDEV#35122は、LDEVの識別子である。エミュレーションタイプ35123はLDEVのエミュレーションタイプの識別子である。サイズ35124は、LDEVに設定されている総サイズである。
先頭スロット番号35125は設定されたLDEVの先頭のスロット番号の識別子である。終了スロット番号35126は設定されたLDEVの最終のスロット番号である。パス定義情報35127は、ホスト計算機10に定義されたパスの識別子である。
デバイス属性35128は、LDEVの属性の識別子である。LDEVが第1種LDEVである場合には第1種LDEVを示す識別子が格納され、LDEVが第2種LDEVである場合には第2種LDEVを示す識別子が格納される。また、LDEVがストレージプールに設定されている場合は、プール属性を示す識別子が格納される。
デバイス状態35129は、そのLDEVが所属するVDEVの状態を示す識別子である。VDEVの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
プログラム使用状況351300は、LDEVが何れかのプログラムによって処理中である場合に、そのプログラムの識別子が格納される。POOL−ID351301は、LDEVがストレージプールに設定されている場合に、その識別子が格納される。
図6は、アドレス管理テーブルの説明図である。アドレス管理テーブル3511は、ターゲットデバイスとLDEVとVDEVと物理デバイスとのアドレスのマッピング情報を格納する。アドレス管理テーブル3511は、ターゲットデバイス−LDEVマッピング情報35111、LDEV−VDEVマッピング情報35112及びVDEV−PDEVマッピング情報35113を含む。
ターゲットデバイス−LDEVマッピング情報35111は、ターゲットデバイスのアドレスとLDEVのアドレスとの対応が格納される。LDEV−VDEVマッピング情報35112は、LDEVのアドレスとVDEVのアドレスが格納される。
VDEV−PDEVマッピング情報35113は、VDEVのアドレスとそのRAIDグループ番号(又はパリティグループ)とPDEVのアドレスか格納される。
ストレージ装置30は、このアドレス管理テーブルを参照することによって、ターゲットデバイスのアドレスがどのLDEVのどのアドレスに対応するかを知ることができる。また、LDEVのアドレスがどのVDEVのどのアドレスに対応するかを知ることができる。また、VDEVのアドレスがどのRAIDグループに属しており、どのPDEVのどのアドレスに対応するかを知ることができる。
図7は、POOL管理情報の説明図である。POOL管理情報3521は、POOL固有情報35211から構成される。POOL固有情報35211は、POOL−ID35212、属性/用途35213、エミュレーションタイプ35214、容量35215、空き容量35216、閾値35217、状態35218、POOL−VOL数35219、POOL−VOLデバイス番号リスト35220、POOLを利用しているデバイス数35221及びPOOLを利用しているデバイス番号35222で構成される。
POOL−ID35212は、POOLの識別子である。属性/用途35213は、そのストレージプールの属性及び用途を示す識別子である。用途は、例えばスナップショットやSYS領域など、運用形態の用途である。
エミュレーションタイプ35214はストレージプールのエミュレーションタイプの識別子である。容量35215は、ストレージプールの総容量である、空き容量35216はストレージプールの未使用の領域のサイズである。
閾値35217は、ストレージプールが許容する最大のデータ格納容量である。状態35218は、ストレージプールの現在の状態である。例えば、定義中、拡張中、有効等である。POOL−VOL数35219は、ストレージプールとして設定されているLDEVの総数である。
POOL−VOLデバイス番号リスト35220はストレージプールとして設定されているLDEV番号の一覧である。POOLを利用しているデバイス数35221は、ストレージプールのLDEVが関連付けられている第2種LDEVの数である。POOLを利用しているデバイス番号35222は、ストレージプールのLDEVが関連付けられている第2種LDEV番号の一覧である。
図8は、VVOL−DIR3523及びPSCB3524の説明図である。VVOL−DIR3523は、仮想ボリュームの記憶領域である第2種LDEVの構成の情報である。PSCB(POOL Slot Control Brock)3524は、ストレージプールに設定された第1種LDEVの構成の情報である。
前述のように、ストレージ装置30は、PDEV34からRAID構成によって第1種VDEVを構成する。この第1種VDEVを、記憶領域である第1種LDEVに分割する。第1種LDEVがストレージプールに設定される。このストレージプールに設定された第1種LDEVによって構成されるボリュームをPOOL−VOL900とする。
また、ストレージ装置30は、仮想ボリューム(VVOL)を設定し、第2種VDEVを構成する。この第2種VDEVを記憶領域である第2種LDEVに分割する。
ストレージ装置30は、VVOL800の第2種LDEVを、POOL−VOL900の第1種LDEVに割り当てる。これによって、ホスト計算機10がアクセスする仮想ボリュームの記憶領域が、物理デバイスであるPDEV34から構成された第1種LDEVに設定される。
VVOLの構成は、VVOL−DIR3523に格納される。VVOL−DIR3523は、LDEV番号(LDEV#)35231及びエントリ35232によって構成される。
LDEV番号(LDEV#)35231は第2種LDEVの識別子である。エントリ35232は、第2種LDEVの構成情報である。このエントリ35232は、第2種LDEVアドレス35233及びPSCBポインタ35234から構成される。
第2種LDEVアドレス35233は、VVOLの第2種LDEVのアドレスが格納される。
PSCBポインタ35234は、第2種LDEVがPOOL−VOL900の第1種LDEVに割り当てられている場合に、その第1種LDEVの領域のポインタが格納される。なお、初期状態では第2種LDEVは第1種LDEVに割り当てられていないので、PSCBポインタ35234には「NULL」が格納される。
PSCB(POOL Slot Control Brock)3524は、ストレージプールに設定されている第1種LDEVの情報である。このPSCB3524は、ストレージプールに設定されている第1種LDEVのスロット毎に設定される。
PSCB3524は、LDEV番号(LDEV#)35241、POOL−VOLアドレス35242、PSCB前方ポインタ35243及びPSCB後方ポインタ35244から構成される。
LDEV番号(LDEV#)35241は、POOL−VOLでの第1種LDEVの識別子である。POOL−VOLアドレス35242は、POOL−VOL900における第1種LDEVのアドレスである。
PSCB前方ポインタ35243及びPSCB後方ポインタ35244は、POOL−VOL900内の第1種LDEVの前後のスロットの識別子である。
また、POOL−VOL900の領域のうち、未使用の領域は、その先頭がフリーPSCBキュー35240で示される。フリーPSCBキュー35240は、次のスロットを示すPSCB3524へのポインタを含む。
ストレージ装置30は、フリーPSCBキュー35240に示されたポインタを参照して、次のPSCB3524を得る。さらに、次のPSCB3524のPSCB後方ポインタ35245を参照して、段階的にPSCB3524を辿る。そして、その未使用の領域の最終のスロットに対応するPSCB3524を得る。この最後のPSCB3524のPSCB後方ポインタ35244はフリーPSCBキュー35240である。ストレージ装置30は、フリーPSCBキュー35240を辿り、PSCB3524のポインタによって連結された集合によって、ストレージプールのPOOL−VOL900の未使用の領域を知ることができる。
ストレージ装置30は、ストレージプールに設定された第1種LDEVに対応するPSCB3524を設定する。具体的には、ストレージプールに設定された第1種LDEVの各スロットに対応するPSCB3524を設定し、さらにフリーPSCBキュー35240を設定する。初期状態ではストレージプールは全て未使用であるため、フリーPSCBキュー35240によって連結される集合は、ストレージプールに設定された第1種LDEVの全ての領域に対応する。
そして、ストレージ装置30は、このストレージプールの領域を使用する場合に、必要なスロット分のPSCB3524を第2種LDEVであるVVOL−DIR3523に割り当てることで、当該領域が使用可能となる。複数のスロットの集号がページに相当する。ページは複数のPSCBから特定される。ホスト装置からVVOL800へのアクセス、VVOL800のアクセス領域に対するPOOL−VOLからの記憶領域の割り当てはページ単位で実行される。
具体的には、ストレージ装置30は、フリーPSCBキュー35240を参照する。そして、第2種LDEVに割り当てる必要な領域分(ページ)のPSCB3524を取得する。この取得したPSCB3524を、それぞれVVOL−DIR3523のエントリに割り当てる。すなわち、VVOL−DIR3523の各エントリのPSCBポインタ35234に、対応するPSCB3524を示すポインタを格納する。
なお、割り当て済みのPSCB3524は、フリーPSCBキュー35240の連結から外す。
これによって、第2種LDEVの各ページ(スロット)が、VVOL−DIR3523の各エントリのPSCBポインタ35234で示されるPSCB3424に割り当てられる。PSCB3524は第1種LDEVのスロットに対応しているので、結果として、第2種LDEVが第1種LDEVに割り当てられ、ホスト計算機10のアクセス対象である仮想ボリュームが物理デバイスとして使用可能となる。
図9は、計算機システムの第2の形態を示すハードウエアブロック図である。本実施形態の計算機システムも、一つ以上のホスト計算機10、管理サーバ20、第1のストレージ装置125、及び、第2のストレージ装置161を備えている。第1のストレージ装置125は、第1のネットワーク121を介してホスト計算機10に接続される。第2のストレージ装置161は、第2のネットワーク123を介して第1のストレージシステム125に接続されている。一つ以上のホスト計算機10、管理サーバ20、第1のストレージ装置125及び第2のストレージ装置161は、第3のネットワーク108を介して相互に接続される。
第1のネットワーク121、第2のネットワーク123及び第3のネットワーク108は、いかなる種類のネットワークであってもよい。例えば、第1のネットワーク121及び第2のネットワーク123は、いわゆるSANであってもよい。第3のネットワーク108は、いわゆるLANであってもよい。
第1のストレージ装置125は、コントローラと記憶デバイス群34とを備える。コントローラは、例えば、複数のフロントエンドインタフェース127と、複数のバックエンドインタフェース137と、第1の内部ネットワーク156と、一以上のキャッシュメモリ32と、一以上の制御メモリ350と、一以上の制御プロセッサ360とを備える。
フロントエンドインタフェース127は、ストレージ装置125にネットワークを介して接続されたホスト計算機10又は第2のストレージ装置161と通信するためのインタフェース回路である。
従って、ストレージ装置125は、少なくとも二つのフロントエンドインタフェース127を備え、それらのうち一つは第1のネットワーク121に接続され、別の一つは第2のネットワーク123に接続される。
フロントエンドインタフェース127は、例えば、第1のネットワーク121又は第2のネットワーク123に接続されるポート129と、メモリ131と、ローカルルータ(以下、「LR」と略記する)133とを備える。LR133に、ポート129及びメモリ131が接続される。
LR133は、ポート129を介して受けたデータを任意の制御プロセッサ143で処理するために振り分ける。具体的には、例えば、制御プロセッサ143が、或るアドレスを指定するI/Oコマンドをその制御プロセッサ143に実行させるようにLR133を設定する。その設定に従って、LR133が、I/Oコマンド及びデータを振り分ける。
バックエンドインタフェース137は、PDEV34と通信するためのインタフェース回路である。バックエンドインタフェース137は、例えば、PDEV34に接続されるディスクインタフェース141と、メモリ135と、LR139と、を備える。LR139に、ディスクインタフェース141及びメモリ135が接続される。
第1の内部ネットワーク156は、例えば、スイッチ(例えばクロスバスイッチ)或いはバスで構成される。第1の内部ネットワーク156に、複数のフロントエンドインタフェース127、複数のバックエンドインタフェース137、一以上のキャッシュメモリ32、一以上の制御メモリ350及び一以上の制御プロセッサ143が接続されている。これらの要素間の通信は、第1の内部ネットワーク156を介して行われる。
コントローラの構成要素であるフロントエンドインタフェース127、バックエンドインタフェース137、キャッシュメモリ32、制御メモリ350及び制御プロセッサ360に、第2の内部ネットワーク(例えばLAN)155が接続され、その第2の内部ネットワーク155に、保守管理端末153が接続される。
保守管理端末153は、第3のネットワーク108にも接続されており、ストレージシステム125を保守又は管理する計算機である。ストレージシステム125の保守員は、例えば、保守管理端末153(又は、その保守管理端末153と通信可能な管理サーバ111)を操作して、制御メモリ350に記憶される種々の情報を定義することができる。
第2のストレージ装置161は、コントローラ165及びPDEV163を備える。コントローラ165は、例えば、ネットワークアダプタ162と、ホストアダプタ164と、キャッシュメモリ172と、制御メモリ171と、プロセッサ167と、ストレージアダプタ169と、を備える。
ネットワークアダプタ162は、第3のネットワーク108に接続され、管理サーバ111と通信するインタフェースである。
ホストアダプタ164は、第2のネットワーク123に接続され、第1のストレージ装置125と通信するインタフェースである。ホストアダプタ164は、例えば、第1のストレージ装置125のフロントエンドインタフェース127と同様のものであってもよい。
制御メモリ171は、種々のコンピュータプログラム及び情報を記憶するメモリである。キャッシュメモリ172は、第1のストレージ装置125からのI/Oコマンドに従って読み出される又は書き込まれるデータを一時記憶するメモリである。
プロセッサ167は、制御メモリ171に記憶されている種々のコンピュータプログラムを実行する。少なくとも、プロセッサ167は、第1のストレージ装置125からのI/Oコマンドに従って、キャッシュメモリ172及びPDEV163に対するデータの書き込み及び読み出しを制御する。
PDEV163は、物理記憶デバイスであり、例えば、第1のストレージ装置のPDEV34と同様のものであってもよい。あるいは、PDEVは、テープ記憶媒体であってもよい。
本実施形態の第1のストレージ装置125は、いわゆる外部接続機能を備える。第2のストレージ装置161は、この機能によって第1のストレージ装置125に外部接続されている。ここで、外部接続について説明する。
既に説明したように、第1のストレージ装置125は、一つ又は複数の論理ボリュームをホスト計算機10に提供する。各論理ボリュームは、ホスト計算機10によって一つの記憶デバイスと認識される。例えば、第1のストレージ装置125が提供する論理ボリュームが、第1のストレージ装置125内のPDEV34に対応付けられてもよい。その場合、第1のストレージ装置125は、論理ボリュームへのライトコマンドを受信すると、その論理ボリュームに対応付けられたPDEV34にデータを格納する。このような論理ボリュームは、以下の説明において通常ボリュームとも記載される。
あるいは、第1のストレージ装置125が提供する論理ボリュームは、第2のストレージ装置161内のPDEV163に対応付けられてもよい。この場合、第1のストレージ装置125は、論理ボリュームへのライトコマンドを受信すると、その論理ボリュームに対応付けられたPDEV163にデータを書き込むためのライトコマンドを生成し、生成したライトコマンドを第2のストレージ装置161に送信する。第2のストレージ装置161は、第1のストレージ装置125から受信したライトコマンドに従って、データをPDEV163に格納する。このような論理ボリュームは、以下の説明において仮想ボリュームとも記載される。
このように、第1のストレージ装置125が提供する論理ボリュームに格納されるデータを、実際には第1のストレージ装置125の外部に接続された第2のストレージ装置161に格納する機能が、外部接続機能と呼ばれる。
コントローラ125は、ストレージ制御処理を確立するクラスタ1251を複数備える。各クラスタは内部ネットワーク156を有し、複数のクラスタ内部ネットワーク156がクラスタ間のネットワーク1561によって接続される。
したがって、一つのクラスタの制御プロセッサ360は他のクラスタにアクセスすること、例えば、他のクラスタのキャッシュメモリ32のデータをリード・ライトすることができる。複数のクラスタ間のネットワーク1561は、パス、スイッチによって構成される。
図10Aは、ターゲットデバイスとLDEV及びPDEVとの説明図である。ホスト計算機10は、ストレージ装置30に設定されたターゲットデバイス700をアクセスする。ターゲットデバイス700の記憶領域は、第1種LDEV500である。
第1種LDEV500は、物理ボリュームからRAID構成によって構成された第1種VDEV400の領域である。第1種VDEV400が一つ以上の第1種LDEV500に分割されている。
また、ホスト計算機10は、ストレージ装置30に設定された仮想ボリュームをターゲットデバイス701としてアクセスする。このターゲットデバイス701の仮想的な記憶領域は第2種LDEV501である。第2種LDEV501は、ストレージプールとして設定されている第1種LDEV500に関連付けられている。すなわち、第1種LDEVと第2種LDEVとの関連付けは、アドレスのマッピングによって管理されている。
ホスト計算機10が、仮想ボリュームであるターゲットデバイス701にアクセスする。この仮想ボリュームの記憶領域は第2種LDEV501である。ストレージ装置30は、第2種LDEV501へのアクセスを受け付けると、第2種LDEV501に関連付けられている第1種LDEV500をアクセス先に変換する。ホスト計算機からのライトデータは、直接プールボリュームのVDEVに格納される。
図10Bは、図9に示した第2の計算機システムの図10Aに対応するブロック図である。第1種VDEVと第2種VDEV同士はアドレスをマッピングすることによって関係付けられており、ホストからのライトデータは、PDEVに直接格納される。
図11に、1つの仮想ボリューム(第2種LDEV)と複数のプールボリューム(第1種LDEV)との間で、均等に、アクセス対象及び記憶領域の単位としてのページ(1,2,3)が割り当てられている様子を示す。仮想ボリュームにはプールが割り当てられており、プールには複数のボリュームがある。仮想ボリュームのページは、複数のボリュームのページが対応している。
ホスト装置から仮想ボリュームにアクセスがあると、仮想ボリュームのページには、プールボリュームのページが割り当てられる。
図11は、仮想ボリュームに、ホスト装置から(1)、(2)、(3)の順番でアクセスがあると、均等割当て処理プログラム3508(図3)は、ページ(1)をプールボリューム#0に、ページ(2)をプールボリューム#1に、ページ(3)をプールボリューム#2に順番に割り当てる処理を行う。
図11の状態から、プールにボリューム#3を追加して、ページ割り当てをプールボリューム間で均等にしない場合、仮想ボリューム中の未割り当て領域へのライトに対して、空き領域を多く有するプールボリューム#3からの仮想ボリュームに対する割り当てが多くなる。当然、空き領域を多く有するRAIDグループへのアクセスが集中するため、ストレージ装置のホスト装置からのアクセス処理性能が低下する。
そこで、リバランス処理プログラム3509(図3)は、プールにボリュームを追加すると、追加したプールボリュームと既存のプールボリュームとの間で記憶容量の不均衡が生じるとして、追加したプールボリュームを使用する前、各プールボリューム間で記憶容量が均等になるように、既存のプールボリュームから追加したプールボリュームにページを移動することとした。複数のプールボリューム間でページを移動することを、ページの再配置、あるいはページのリバランスということにする。図12は、リバランスの過程を示すブロック図である。
なお、プール管理プログラムがプール情報を管理しており、プールボリュームが追加されると、プール管理プログラムがこの追加を検出する。そして、その契機で、リバランス処理プログラムが起動する。
リバランス処理プログラム3509は、先ず、プールに追加されたプールボリューム#3において割り当てに使用されていない未使用のページを確保する。
そして、割り当て済みページ数が他のプールボリューム#1、#2より大きいプールボリューム#0のページ(4)のデータを、プールボリューム#3の未使用のページにコピーする(S1202)。
リバランス処理プログラムは、プールボリューム#0に割り当てられていたページ(4)の割り当てを解放して、これをフリーキューに接続する。さらに、仮想ボリュームのページ(4)の領域の割り当てを、プールボリューム#0のページからプールボリューム#3のページ(4)に変更する(S1200)。ページ間のデータのコピーをマイグレーションという。この過程が、ページの移動であり、ページの再配置である。ページの移動をページマイグレーションともいうことにする。
これらの処理の結果、複数のプールボリューム全体に対するページの割り当てが均等になるため、複数のプールボリュームそれぞれに対するI/Oのレートが同程度になり、ストレージシステムのホストからのアクセスに対する処理性能がプールボリュームの追加後も良好に維持される。
図12では、複数のプールボリューム間で割り当てられたページ数が、複数のプールボリュームの容量それぞれが同一であることを前提に、同数になるようにした。
複数のプールボリューム間で割り当てページを均等にする上で、プールボリュームの容量を勘案して、複数のプールボリューム間で、全ページ数(プールボリュームにある、割り当て可能な全ページ数)中割り当てに使用されたページの割合(ページ使用率)を均等にすることが重要である。ページ数の代わりに記憶容量で計算しても同じことである。
図13はそのことを示すブロック図である。符号1300は、各ボリュームに割り当てられているページの全容量であり、1302は、ボリューム間でマイグレーションされるページの容量である。プールボリュームの容量比は、プールボリューム#0:#1:#2が1:3:2である。したがって、ページの使用率が同じ割合になるように、プールボリューム#1および#3からプールボリューム#2にそれぞれページが再配置される。
図16Aはプールを管理するテーブルであり、図16Bはプールボリュームを管理するテーブルである。これらのテーブルは、プール情報352(図3)の一部として、メモリ350に記録されている。これらのテーブルは管理情報から作成される。ストレージシステムのリバランス処理プログラム3509は、これらテーブルを参照して、図12及び図13で説明するリバンランス処理系を構築する。
図16Cは、フリーキュー単位を管理するテーブルである。仮想ボリュームのアクセス領域に対する未使用ページ(プールボリューム)の割り当ては、既述のように、フリーキューによって管理される。フリーキューはプールボリューム毎に設定されている。
フリーキューにはプールボリュームの複数の未使用ページがFIFO構造で接続されている。未使用ページが仮想ボリュームへ割り当てられる際は、未使用ページが順番にフリーキューから解放されて、仮想ボリュームからのマッピング、データコピー先として処理される。
このテーブルは、フリーキューの識別番号(#)と、フリーキューが空き領域を管理する対象となるプールボリューム#と、フリーキューに連結するフリー領域の個数と、フリーキューが所属するプール#からなる。このテーブルも、プール情報の一環としてメモリ350に記録されている。
図17は、ホスト装置から仮想ボリュームへのライトアクセスに対して、プールに属するプールボリュームから仮想ボリュームにページを割り当てる順序を示した説明図である。ここでの説明は、記憶容量の比が2:3:2である複数のプールボリュームを持ったプールを前提としている。
仮想ボリュームのページをプールボリュームに均等に割り当てるためには、プールボリュームに追加されたボリュームを含めて、ボリュームに対してページの割り当て順序を定めることが必要である。この割り当て順序は、管理情報としてメモリに登録されている(図18参照)。
割り当て処理プログラム3508は、この管理情報を参照して、複数あるフリーキューの中から目的のフリーキューのアドレスを算出して、フリーキューに繋がる未使用ページのアドレス(ポインタ情報:PSCB)を取得し、ここに仮想アドレスのページに対して送られた、ホスト装置からのライトデータを格納する。
これを可能にするために、フリーキューのアドレスとプールボリュームの識別情報とは1:1に対応している。例えば、フリーキュー#0はプールボリューム#0のフリー領域を管理しており、フリーキュー#1はプールボリューム#1のフリー領域を管理しており、フリーキュー#2はプールボリューム#2のフリー領域を管理している。
図17は、プールボリューム#0に連続して2回ページを割り当て、次いで、プールボリューム#1に連続して3回ページを割り当て、さらに、プールボリューム#2に連続して2回ページを割り当て、以後これを繰り返すことを示している。
図18は、この割り当て順序を管理するテーブルであり、図17に示す割り当ての方式が登録されている。このテーブルもプール情報としてメモリに記録されている。割り当て処理プログラム3508は、この管理テーブルを参照して、プールボリュームに対するページの割り当ての順次制御処理を管理する。
このプログラムは、ソフトウエアカウンタを備え、どのプールボリュームまでページを割り当てたか否かを管理する。カウンタはページの割り当ての都度インクリメントされることから、カウンタの位置によって、現在のページ割当て対象となっているプールボリュームが分かる。図18は、カウンタがプールボリューム#1(フリーキュー#1)のところにあることを示している。
ストレージ装置がページの再配置(図12、図13)を実行することの契機となる事象は、図12及び図13に示すように、プールボリュームをプールに追加することのほか、図14に示すように、プールからプールボリュームの削除(Shrink)、複数のプールボリューム間で使用されているページの全体のページ数に対するバランス、あるいはプールボリュームの容量に対する使用量のバランス、その他、GUIを介してユーザ側からの要求によるものがある。
図14において、リバランス処理プログラム3509は、プールの空き容量を一定時間監視する(S33001,S3302)。プール全体の使用量(割り当てに使用された全ページの容量)が閾値を越えたか否かを判定する(S33003)。
閾値を越えると、管理装置20又は保守端末は、プールに新たにプールボリュームを追加する処理を行う。ストレージ装置は、図5乃至図7に示す管理情報をプールボリュームの追加に合わせて更新する(S33004)。その後、リバランス処理に移行する(S33020)。リバンランス処理を、後に、図15に基づいて説明する。
一方、プールボリュームの削除も、リバランス処理の契機となる。GUIを介して管理ユーザからリバランス指示があると、ストレージシステムはリバランス処理を実行する。GUIは管理サーバ20あるいは保守端末に存在する。
さらにまた、リバランスプログラムの監視機能は、所定タイミングごとに、プールの各プールボリュームについて、使用されているページの全ページ数に対するバランスをチェックして(S33009)、これを閾値と比較する(S3310)。閾値より大きい場合には、バランスが崩れているとして、ストレージ装置はリバランス処理を行う。
図15はリバンラスを示すフローチャートートである。リバランス処理プログラムが、リバランスの対象となったプールについてリバランスの可否を判定する(S7007)。この判定は、例えば、図3のプール情報352を判定して行われる。プールの状態(図7の35218)が閉塞状態にあるときには、リバランスができないと判定される。
リバランスが可能と判定されると、リバランス処理プログラムは前処理を行う(S7010)。たとえば、ページマイグレーション(ページの割り当ての変更あるいは移動)移動元のプールボリュームと移動先のプールボリュームとを決定する、ページマイグレーションの処理が適用されるプールボリュームの選択順序(割り当て順序)を決定する、そして、ページマイグレーション後のプールボリュームの容量をシミュレートするなどである。
プールボリュームがプールに追加されると、プール管理情報によってプールが管理され、ストレージ装置は、プールボリュームの容量比の見直しを行う。
次いで、リバランス処理プログラムは、プール内でマイグレーションすべきページ数を算出する(S7011)。その後、ページのマイグレーション処理を行う(S7012)。このとき、後述するが、マイグレーションの際に、複数のプールボリュームに存在する固定パターン(例えば、ページの全てのデータ“0”のもの)を破棄して、プールボリュームの容量を縮小するための処理を同時に行う。
ページマイグレーションの際、リバランス処理プログラムは、リバランス処理の中断条件の発生の有無を判定する。例えば、リバランスの対象となったページにホスト計算機からI/Oがあった場合には、リバランスを中断する。リバランスの中断の要因がなくなった後リバランス処理を再開してもよい。
次いで、リバランス処理プログラムは、ページマイグレーションの進捗を管理する(S7013)。この管理によって、リバランス処理プログラムは、リバランスの進捗状況を管理ユーザに対して見せることができる。
図19は、図15のマイグレーションするページ数の算出(S7011)の詳細を示すフローチャートである。ここでのページ数の算出の方式は、複数のプールボリューム間でバランスされたページ数を理想のページとし、これと現在使用されているページ数の差を埋めるようにすることである。
リバランス処理プログラムは、HDP VOL(仮想ボリューム)に割り当てられている各プールボリュームでのページの使用量を検索する。
図19の説明において、次のことを前提とする。
HDP VOL#iのプール使用量全体(プールに属する全てのボリュームにおいて割り当てられている(使用されている)ページの総数):A[i]
HDP VOL#iのプールボリューム#j使用量全体(使用するページの総数):B[i][j]
プールボリュームの#jの容量(総ページ数):C[j]
プール全体の容量(総ページ数):D
追加プールVOL全体の容量(総ページ数):E
先ず、リバランス処理プログラムは、プールボリューム追加前に、HDP VOL[i]に割り当てられているプールVOL[j]が使用してページ数を算出し、これをB[i][j]に格納する(S1900)。B[i][j]はメモリ350のワーク領域に設定されている。
次いで、プールボリュームをプールに追加後に、HDP VOL[i]がプールボリューム[j]を使用すべきページ数を次のようにして求める(S1902)。
HDP VOL#iのプール使用量全体×プールボリューム[j]の理想の使用率=A[i]×C[j]/(D+E)
プールボリュームの理想の使用率とは、プールボリュームに格納可能な総ページ数に対する、プールボリュームに割り当てられたページ数の割合であって、複数のプールボリューム間で均等にページが割り当てられていることを前提とした値である。
プールボリュームボリューム[j]について移動が関係するページ数は、プールボリューム追加前と追加後の差であって、次のとおりである(S1904)。
ページ数= B[i][j]−A[i]×C[j]/(D+E)
上記計算値がプラス(+)の値の場合は、プールボリューム[j]は移動元ボリュームとなり、計算値がマイナス(−)の値の場合は、プールボリューム[j]は移動先ボリュームとなる。
リバランス処理プログラムは、移動ページ数を算出したら、プール番号毎に、移動ページ数、プールボリュームが移動元か移動元か移動先かを専用のテーブルに登録する。
図20は、図19の処理によって算出されたページ数とページの移動の様子を示すブロック図である。ページの移動は、一つのストレージプールグループに属する複数のプールボリュームと、これに対応する複数の仮想ボリュームと、において、各仮想ボリュームについてページの移動を算出した結果に基づく。プールボリュームのシンボルの中の数値は、プールボリュームにおいて割り当てに使用されているページ数を示している。
図20に示す様に、仮想ボリューム#0について、複数のプールボリューム間でページの移動はない。仮想ボリューム#1、#2について、図20に示す矢印の方向で、矢印の上に示してある数のページがマイグレーションされる。
リバランス処理プログラムは、プール単位でページの移動を行う。すなわち、図20に示す全てのページ移動を行う。なお、仮想ボリューム単位でページの移動を行ってもよい。たとえば、仮想ボリューム#1について、複数のプールボリューム間でページの移動を行い、仮想ボリューム#2については、ページの移動を実行しないようにしてもよい。
図21は、図20に示すページの移動形態を実現するための管理テーブルである。この管理テーブルはメモリ350の所定領域に格納される。管理テーブルは仮想ボリューム毎に存在し、図19のステップS1906の処理に基づいて作成される。
仮想ボリューム毎で各プールボリュームが移動元となるかあるいは移動先となるかが登録されており、移動元のプールボリュームから移動先のプールボリュームについて移動されるページ数が移動元及び移動先のプールボリュームにそれぞれ登録されている。
リバランス処理プログラムは、S7011(図15)の処理でこのテーブルを作成・登録し、S7012でこのテーブルを参照してマイグレーションを実行する。
図22は、バランス見直し(図14のS33009)を実現するためのページ割り当てバランス管理テーブルである。割り当て管理プログラム3508がページをプールボリュームに割り当てていく過程で、リバランス処理プログラム3509は、この管理テーブルに必要な事項を登録する。このテーブルはメモリの所定領域に格納される。この管理テーブルは仮想ボリューム毎に存在する。
このテーブルにおいて、理想の割り当てページ数とは、プールボリュームについて現在割り当てられているページ数に対して理想となる割り当てページ数であり、複数のプールボリュームの容量比を勘案して決定される。プールボリューム#0:#1:#2:#3(容量比)は、2:3:2:2である。仮想ボリュームに割り当てられているページの総数が18であるので、容量比を勘案すると、理想の割り当てページ数の比は、4:6:4:4になる。
そして、割り当てバランスは、理想の割り当てページ数に対する実際の割り当てページ数の比である。割り当てバランスが1を超えるプールボリュームは、過剰にページが割り当てられていることを示し、逆に、これが1未満であるプールボリュームは、過少にページが割り当てられていることを示している。
均等割当て処理プログラム、又は管理装置は、割り当てページ管理テーブルを定期的に参照して、割り当てバランスの良否を判定する。例えば、1.0から±0.35の範囲が割り当てバランスが良いとすると、プールボリューム#0のバランスが悪く、他のプールボリュームのバランスはよい、ということになる。
バランスが悪いと判断されたプールボリューム数が全体プールボリュームに対して**%(閾値:図14のS33010)を超えたら、プール全体のバランスが悪いと判断し、リバランス処理プログラムがページについてマイグレーション処理を開始する。割り当てページ管理テーブルのチェックは、ストレージ装置の保守端末の管理プログラムが実行してもよい。
一方、割り当てバランスの良否の判断は、プールボリューム個々について行われてもよい。たとえば、割り当て比が、1.0から±0.85の範囲外のプールボリュームが少なくとも一つあったら、ストレージシステムは、プール全体のバランスが悪いと判断し、リバランスを開始する。
図23は、図15のマイグレーション処理(S7012)の詳細を示すフローチャートである。この処理は、複数の仮想ボリュームが存在する場合は、各仮想ボリュームについて行われる。
リバランス処理プログラムは、仮想ボリュームの中から、関連ページを検出する。移動対象となるのはプールボリュームのページであるが、アドレス管理テーブル3511を参照することにより、移動対象となるページに対応する関連ページを仮想ボリュームの全ページの中から特定することができる。
リバランス処理プログラムは、仮想ボリューム中の先頭から全ページのそれぞれについて、関連ページであるか否かの判定を行う。どのページまでチェックしたかを管理するためにソフトウエアカウンタを用いる。ページのチェックが進む都度、カウンタをインクリメントする。そこで、リバランス処理プログラムは、カウンタの初期化を行う(S2300)。
次いで、リバランス処理プログラムは、仮想ボリューム中のページを先頭ページから選択する(S2302)。次いで、選択したページにプールボリュームの移動対象ページが割り当てられているか否かを判定する(S2304)。
リバランス処理プログラムは、この判定を肯定すると、アドレス管理テーブル3511に基づいて移動対象ページが属するプールボリュームの識別情報を検出する(S2306)。
次いで、図21のテーブルを参照して、プールボリュームが移動元か移動先かを判定する(S2308)。リバランス処理プログラムは、プールボリュームが移動先である場合には、移動元プールボリュームからページ移動するための空き領域を移動先プールボリュームに確保する(S2310)。
ページが移動されるプールボリュームとしては、割り当てバランスが低いものが選択されるが、複数のプールボリュームが移動先として競合した場合には、追加されたプールボリューム、次いで、移動先となる上での優先度が高いプールボリュームから順に選択される。移動先優先度テーブルには、各プールボリュームについて移動先となる優先度が登録されている。
リバランス処理プログラムは、移動先プールボリューム、移動元プールボリューム、移動対象ページ数を決めると、ページの移動のスケジュールを決定し、これをメモリ350のマイグレーション実行ジョブに登録する(S2312)。
このスケジュールは、例えば複数のページの移動を伴う場合、どのような順番でページの移動を行うかを決めるためのものである。このスケジュールは、S2302にて順次選択されたページがある都度、新たな移動先ボリュームなどが決定される都度更新登録される。
次いで、リバランス処理プログラムは、カウンタのカウント値をインクリメントし(S2316)、S2302にて選択していないページが未だ存在するか否かを判定する(S2318)。
未検討のページが存在する場合にはステップS2302にリターンし、さらに、ページが存在しない場合にはS2312において順次更新されたスケジュールにしたがって、マイグレーションが実行される(S2320)。なお、マイグレーション処理(S2320)をS2312の後に実行するようにしてもよい。
また、S2320の処理がS2312とS2316の2316の間に入っていてもよい。
図24は、固定データパターンの破棄を伴う、マイグレーション処理の詳細を示すフローチャートである。このフローチャートは移動元ページが複数ある場合には各移動元ページについて適用される。
ストレージアダプタ370は、リバランス処理プログラムにしたがって、移動元プールボリュームから移動元ページの全データをスロット単位で、キャッシュメモリ32にステージジングする(S2400)。
図26にこの様子が示されている。プールボリューム#1は移動元であり、プールボリューム#2は移動先である。S2600は、移動元ページがキャッシュメモリの第1の領域32Aにステージングされる様子を示している。符号2601はスロットである。ステージングはスロット単位で実行される。符号2601Aは移動元ページであり、符号2601Bは移動先ページである。
ストレージアダプタ370内のDRR回路(Data Recover and Reconstruct回路)は、スロット単位で移動元ページ2601Aのデータをチェックし、データが“0”か否かをチェックする(図24:S2402−S2404、図26:S2602)。
この判定は、移動元ページのデータが固定パターンの一つ(全データが“0”)であるか否かを判定するためのものである。データが固定パターンの場合にはページのマイグレーションは行わず仮想ボリュームの移動対象ページに対するマッピングを、固定パターンデータを格納している専用領域に変更する。
DRRが“1”の存在を検出すると、ステップ2414に移行して、キャッシュメモリ内メモリコントローラは、移動元ページデータを、第1領域32Aから第2領域32Bへ、キャッシュメモリ間コピーを行う(図24:S2414、図26:S2604)。そして、ストレージアダプタ370は、移動元キャッシュメモリ32Aをクリアする(図24:S2416)する。
次いで、第2領域32Bのデータを移動先プールボリューム#2の移動先ページ2601Bにデステージ(図26:S2606)、移動元ページ2601Aを未使用ページに変更し、さらに、仮想ボリュームのページに対する割り当てを移動元ページから移動先ページに変更するなどのマイグレーション処理を行う(図24:S2418)。
DRRが判定しているスロットのデータが“0”の場合は、ストレージアダプタ370は、スロット単位の全データのチェックが終了したか否かを判定し(S2406)、これを否定判定する場合には、ステップS2402に戻り、同一スロットの他のデータにつて、“0”か否かをチェックする。
スロットの全部のデータについてチェックが終わると、ステップS2410に移行し、移動元ページに残りのスロットがあるか否かをチェックして、これを肯定判定する場合には、次のスロットについて既述のチェックを行う。
ページに属する全てのスロットについて判定が終わると、ステップS2412に移行して、全データが“0”からなる移動元ページは、マイグレーションが必要でないとして、未使用ページに変更する。
ストレージ装置が図24に示す処理を実行することにより、ページを再配置する際、固定パターンデータを持つページを使用済みの管理から解放して、固定パターンデータが重複して仮想ボリュームに割り当てられることを解消し、ひいては、ホスト装置は、プールボリュームの記憶領域を効率よく利用することができるようになる。
既述の実施形態では、0データの存在のチェックを、ストレージアダプタ370内の回路(DRR)によりパリティ生成時についでに処理するとしたが、専用ソフトウェアで行う、又は、専用回路で行うものであってもよい。
図24で説明するマイグレーションの過程で、移動元のページに対して、ホスト計算機からI/Oまたはストレージ装置内コピーI/Oが発行されると、ストレージ装置は、I/O処理の方を優先させてページマイグレーションを中止する。
すなわち、図25に示す様に、仮想ボリュームにリード又はライトI/Oが供給されると、プロセッサは、移動元ページに対する論理アドレスが含まれているか否かをチェックする(S2500)。
移動元ページに対する論理アドレスが含まれていることは、仮想ボリュームと移動元ページとの間のパスが切断されてなく、ページマイグレーション処理は終了していないことを意味するため、プロセッサは、移動元ページのデータが格納されている、キャッシュメモリの第2の領域(図26の32B)のデータをクリアし、さらに移動先ページに対してクリア処理を行う(S2504)。
ここでのクリア処理とは、仮想ボリュームにマッピングされている場合には、マッピング管理情報を削除することであり、また、移動先ページが使用ページとして管理されているのであれば、その管理情報を削除することである。
次いで、プロセッサは、S2506において、図24のマイグレーション処理をスキップする(終了する)。なお、リードI/Oの場合は、これの処理が終了するまで、マイグレーション処理を一時停止し、その後再開するようにしてもよい。
図26で説明したように、キャッシュメモリ32には、第1領域(移動元用のキャッシュ領域)32Aと、第2領域(移動先用のキャッシュ領域)32Bとがあり、両者の差分が無くなるまで、第2領域から移動元ページのデータが移動先ページ2601Bにコピーされないため、移動元ページにI/Oが入ったタイミングでページの移動処理を中止することができる。
これに対して、図31に示す、キャッシュメモリの構成(図9の形態)では、ローカルルータ(LR)133のDRRが0データの検出を行い、プロセッサは、キャッシュメモリ32の一つのキャッシュ領域32Aにステージングされたデータを他のキャッシュ領域を利用することなく直接移動先ページ2601Bにデステージするため、ページのマイグレーションは、図26のキャッシュメモリの構造のものより高速に進むことができる半面、移動元ページ2601Aにホスト装置からI/Oのアクセスがあっても、ページのマイグレーションを中止できづらくなる。
図31の場合でも、0チェックしたデータをキャッシュメモリにためこみ、結果0でなければプールボリューム#2に格納する。図31の斜め書きの方が高速である。
次に、図24のS2418のページマイグレーション処理をフリーキューに関連して説明する。この説明のために、図32に示すマイグレーションを前提にする。すなわち、プールボリューム#0のページ#1000のデータが、プールボリューム#3のページ#2000にコピーされ、仮想ボリューム(HDP Vol#0)の前者のページ対するマッピングを後者のページのマッピングに変更される過程を、図33を用いて説明する。
リバランス処理プログラム3509は、移動中キューを確保し、これをフリーキュー#3に接続し、次いで、プールボリューム#3に割り当てられているフリーキュー#3に接続するフリー領域の中から、移動先ページとなる対象領域3302を選択し、このポインタ情報(Pool−Vol#3、#2000)3303を移動中キュー(キュー#0)3300の最後に接続する(S3300)。移動先ページとなる領域を、フリーキューとは別キューで管理するのは、移動先ページとなる領域が仮想ボリュームに割り当てられないようにするためである。
コピージョブからページデータのマイグレーションが正常に終了したとの通知をリバランス処理プログラムが受けると、VVOL DIRにあるページ(プールボリューム#0、ページ#1000)へのマッピング3306の情報である、ポインタ情報3304をクリアして、これを、移動先ページのアドレス(Pool−Vol#3、#2000)へのポインタ情報に変更し(S3302)、移動元ページのアドレスをフリーキュー#のキュー構造の適切な位置に挿入する。さらに、移動先ページを移動中キューから解放する。
図34に示す様に、移動元ページから移動先ページへのデータマイグレーションの過程が、ホスト装置からのI/Oなどによって、これが中断(3400)されると、図35に示す様に、リバランス処理プログラムは、移動中キューを確保し、移動先キューに対して設定されたポインタ情報3304をクリアし、変更前の情報に戻す。
さらに、移動先となるページ3303がもともと存在していたプールボリュームのフリーキュー#3を確保し、このふりキューに対して移動先ページ3303がフリー領域として挿入される位置を検索する。
リバランス処理プログラムは、移動中キュー3300をフリーキュー(Queue#3)に接続し、移動先ページ3303を移動中キュー3300から解放し、さらに、移動先ページをフリーキュー(Queue#3)に接続する。
以上のように、ストレージ装置はフリーキューとは別キューである、移動中キューを利用することにより、ページの再配置を可能にするとともに、ページ再配置に競合するホストI/Oなどの要因がストレージ装置に加わっても、I/Oの処理を優先させることができる。
次に、図27A、図27B、図27Cを利用して、仮想ボリュームとプールボリュームについて、固定データパターンに対する割り当て処理の詳細をここで説明しておく。固定データパターンとして、ページ内の全データが“0”のパターンを例とする。
図27Aは、仮想ボリューム(DP VOL)の作成を示すブロック図である。ストレージ装置は、仮想ボリュームの未割り当て領域(未使用ページ)2700の全てを、プールボリュームの0データの専用領域2702に割り当てる。
0データ専用領域は、プール内の少なくとも一つのボリュームに設けてもよいし、キャッシュメモリに設けてもよい。ホスト計算機から仮想ボリュームの未割り当て領域にリード要求がきたら、ストレージ装置は、プールボリュームの0データ専用領域をリードして0データをホスト計算機に返す。
図27Bに示す様に、ストレージ装置が、仮想ボリュームの未割り当て領域にホスト装置からライト要求を受けると、プールボリュームの空きページを選択して、ここにライトデータを格納する。
ストレージ装置は、ライト要求2708を受けた仮想ボリュームのページ2706の割当先を「0データ専用領域」2702から割当て領域2704に変更する。すなわち、ストレージ装置は、割り当て2710を解放して、新たな割り当て2712を管理テーブルに設定する。ライト要求が全“0”データの場合には、プールボリュームの割り当て済み領域2704に全“0”データを上書きする。
次いで、図27Cに示す様に、ストレージ装置は、仮想ボリュームの先頭ページから順番に、割り当てられているプールボリュームのページのデータが全て0であるかどうか検索し(2720)、全データが“0”のページ2722を検出したら、仮想ボリュームのページ2724の割り当て先を現在割当てられているページ2722から「0データ専用領域」としての専用ページ2702に変更する。
全データが“0”である、プールボリュームのページを使用済み領域ではなく空き領域として管理する。この“0データページ破棄処理”は、図24に示す様に、ページのリバランス処理に付帯して実行されたが、ページリバランス処理とは独立して実行されてもよい。
この時、“0データページ破棄処理”に伴って、複数のプールボリューム間でページ割り当て比に不均衡が生じる場合には、図14のS3309、及び、図22で説明したように、リバランス処理が適用される。
図28は、0データ専用領域へのリード処理を示すフローチャートである。プロセッサ360は、仮想ボリュームへのホスト装置からのリード要求が、未割り当て領域に対するものであるか否かを判定する(S35001)。これを否定判定すると、プールボリュームの割り当て領域のアドレスを検索し、リード要求に対して、検索されたページのデータを応答する(S35005)。
一方、リード対象が未割り当て領域の場合には、全0データをホスト装置に対して応答するが、ステップS35002において、仮想ボリュームに割り当てられているプールボリュームの数をチェックする。
この判定は、0データ専用領域の設定方法が複数あることに起因している。1つ目は、0データ専用領域をプールの先頭プールボリュームに1つだけに設ける。2つ目は、プール内の全てのプールボリューム0データ専用領域を設ける。
0データ専用領域を設定したプールボリューム数が少ない(1つ目の方法、2つ目の方法でもプールボリューム数が少ないなど)と、PDEV(記憶デバイス)へのリード負荷が大きくなるため、ストレージ装置が0データを作成してホスト計算機に応答する(S35005)。ストレージ装置は0データを、例えば、メモリ(キャッシュメモリ)上で作り出す。0データ専用領域を設定したプールボリューム数の大小は、規定値との比較による。
一方、0データ専用領域が設定されたプールボリュームが多い場合には、リード負荷が複数のプールボリュームに分散されるため、ストレージ装置はプールボリュームの0データ専用領域に対応する物理領域をリードして0データをホスト装置に返答する(S35003)。
なお、記憶デバイスが高速なリード性能を持つもの(例SSD)であれば、リード負荷を無視することができるので、プールボリュームの数の如何に拘わらず、プロセッサは、記憶デバイスに常時0データを読みに行くようにすればよい。プール毎に、記憶デバイスのリード特性を管理することにより、これは可能である。
また、プールに、高回転速度なHDDと低回転速度なHDDとが混在して割り当てられている場合、高回転速度であるHDDに設定されたプール又はプールボリュームに0データ専用領域を設定し、これに仮想ボリュームの未割当て領域をマッピングすればよい。
図29は、仮想ボリュームの未割当領域にホスト装置からライト要求が発行された場合の処理(図27B)について説明するものである。ストレージ装置は、仮想ボリュームのライト対象が未割り当て領域であるか否かを判定する(S2900)。これを否定判定すると、仮想ボリュームのライト対象ページに割り当てられているページ(プールボリュームの)のアドレスを検索し、ページにライトデータを上書きする(S2902)。
一方、前記判定を肯定すると、プールボリュームの空き領域からページを選択し(S2904)、ここにライトデータを格納する(S2906)。ライト要求を受けた仮想ボリュームのページは、“0データ専用領域”からプールボリュームのページに向けてマッピング管理情報を変更する(S2908)。
既述の実施形態では、移動元プールボリュームに割り当てられているページを移動先プールボリュームにマイグレーションする際に、移動対象ページが固定データパターンである場合には、移動対象ページをマイグレーションすることなく解放し、仮想ボリュームのページを移動先プールボリュームの固定データパターンを格納している領域にマッピングした。
さらに、ストレージ装置は、プールにプールボリュームが追加された際に、複数のプールボリューム間で、ページをマイグレーションする契機で、“0”データ専用領域に関するリバランスを行うようにしてもよい。
すなわち、図30Aに示す様に、追加プールボリューム3000に0データ専用領域3002を設定し、既存のプールボリューム3008の0データ専用領域3006に対して設定されていた、仮想ボリューム3004の未割当領域3005からのマッピング3001が、追加プールボリューム3000の専用領域3002のマッピング3003に変更される。
したがって、仮想ボリュームの未割当領域から0データ専用領域へのマッピングが、追加したプールボリュームを含めた複数のプールボリュームに対して均等に行われる。
また、図30Bに示す様に、プールボリューム3100が削除されると、削除されたプールボリュームの使用済みページが残りのプールボリュームに均等に再配置されるが、この際、削除されたプールボリュームの専用領域3102に対する仮想ボリュームの未割当領域3104,3106からの3108も、残りのプールボリュームの専用領域3102,3114に均等に変更される(3110,3112)。
このように、仮想ボリュームのページに対する0データ専用領域の割り当てを複数のプールボリュームに分散させることによって、仮想ボリュームにライトアクセスがあった際での、仮想ボリュームの未使用領域の割り当てを0データ専用領域から解放し、次いで、未使用領域をプールボリュームの未使用領域に割り当てる処理を、複数のプールボリュームにわたって分散させることができる。
図36は、マイグレーション進捗管理(図15のS7013)のための管理テーブルである。リバランス処理プログラムはこの管理テーブルへ管理情報を登録し、登録した管理情報を更新する。マイグレーションの進捗状況は、画面への表示によって管理ユーザに供給される。管理情報には、プール毎に「マイグレーションを行っているかいないか」の情報があり、具体的には次のものがある。
リバランス中:リバランス処理実行中。
リバランス未:(1)リバランスしていない、(2)リバランス対象外。
リバランス未完了:(1)リバランス処理が中断(障害、ユーザ指示など)され、計画の途中までしか実行していない、(2)リバランス処理の計画は最後まで実行されたが、スキップされたページがあった、(3)電源OFFした、など。
さらに、リバランス処理を失敗した場合は、リバランス中断したことを画面に示し、ユーザが再度リバランス処理を実行できるタイミングを与えるようにすること、マイグレーション対象のプールについて、HDP VOL総数のうち、何個のHDP VOLをマイグレーション完了したかの情報を提供するようにしてもよい。
次に、図14のプールボリュームを削除する処理(Shrink“シュリンク”)を詳細に説明する。図37は、リバランスを考慮したプールボリュームのシュリンク処理を説明するフローチャートである。プールボリュームのシュリンクは、GUIを介してユーザ指示による。
図38は、GUIによってユーザに提供される情報の例であり、プール及びプールボリュームの特性が含まれている。ユーザはこの情報に基づいて、シュリンクするプールボリューム、このプールボリュームが属するプール、シュリンクする容量、プールボリュームがシュリンクされた後での、プールにおけるページの使用率などを指定する。
ページの使用率とはプール内のプールボリュームに割り当て可能な全ページ数に対する仮想ボリュームに実際に割り当てられているページ数の比である。シュリンクはプールボリュームに対して実行される。
ユーザからのシュリンク条件がリバランスプログラムに指示されると(S3700)、シュリンクの対象となるプールがシュリンクできるものであるか、あるいはそうでないかを判定する(S3702)。
プール管理情報、プールボリューム管理情報にアクセスして、これらの状態を参照する。例えば、プールやプールボリュームが閉塞されていたり、あるいはプールに属するプールボリュームにホスト装置からのI/Oやストレージシステム内のコピーI/Oが存在する場合は、管理サーバあるいはストレージシステムの保守端末のGUIがユーザにシュリンク不可を通知する(S3720)。
シュリンクが可能であることを判定すると、リバランス処理プログラムは、ステップ S3704において、ユーザからプールボリュームの指定があったか否かをチェックする。プールボリュームが指定された場合、指定されたプールボリュームがプールから削除されても、プール全体におけるページの使用量あるいは使用率が閾値を超えないと、ステップS3706に移行してシュリンクした後でのプール・プールボリュームの特性を予想して、これをGUIによってユーザに表示する(S3708)。
図39はシュリンクの予想結果の出力例である。シュリンク前のプールの容量、使用量、空き容量と割合は、プール管理情報からデータを採取する。空き容量の割合は、プールの容量と空き容量から算出する。
シュリンク後のプールの容量、使用量、空き容量と割合は、ユーザが指定したシュリンクプールボリューム、又はストレージ側でシュリンク対象と決定したプールボリューム全ての容量、使用量、空き容量をプールボリューム管理テーブルから算出し、プールの情報から減算する。
S3704で、削除すべきプールボリュームがユーザから指定されない、と判定すると、ストレージ装置がユーザから削除する容量を受け取った際、どのプールボリュームを削除するかを決める。
例えば、期待する使用量が入力された場合、現状の使用量から期待する使用量になるために、削除する容量を算出し、ストレージ側でどのプールボリュームを削除するかを決める。ストレージ側でプールボリュームを選択する場合、割り当てページ数の少ないプールボリュームから選択すれば、移動量を少なく抑えることができる。
対象プールボリュームをシュリンクしてもプール使用量が閾値(たとえば、全体容量の80%以上)を超えないかを、ストレージ装置がチェックする。
使用量が閾値を超えることになる削除の要求は却下される。プールボリューム#**をユーザが入力した場合、ユーザ指定のプールボリュームを削除することにより、使用量が閾値を超えることになる場合は、ユーザの削除要求を却下する。
また、シュリンクを実施することで、プールボリューム数が所定値(例:8)以下になると、リバランス機能が十分に発揮されないため、残存するプールボリューム数が所定値異化になる場合は、ユーザへその旨の警告を出す。
図39の値を画面に出力し、ユーザは入力した条件、即ち、指定したプールボリュームをシュリンクしてもよいか確認し、これを許容する場合、「続行」をユーザがGUIに入力する(S3710)。これによりシュリンク計画が決定され、ストレージ装置は、シュリンク処理とリバランス処理を開始する。
ステップS3702において、プールボリュームが指定されない場合は、ストレージ装置がシュリンクするプールボリュームを決定する(S3722)。図40は、それを実現するための処理の詳細を示したフローチャートである。
リバランス処理プログラムは、シュリンクする容量を超えない範囲でシュリンクするプールボリュームを決定する。シュリンクするプールから、割り当てられたページの容量が少ない順にプールボリュームを並べる(S4000)。
次に、割り当てられたページの容量が最も少ないプールボリュームの容量とシュリンクすべき容量(当初の容量又はシュリンク後ではシュリンクの残量)とを比較し、プールボリュームの容量がシュリンクすべき容量を超える場合には、ステップS4008 に移行して他のプールボリュームを選択して、再度ステップS4002を行う。
一方、シュリンクすべき容量よりプールボリュームの容量が少ない場合には、このプールボリュームをシュリンク対象ボリュームとして選択(S4004)し、シュリンクすべき容量から選択したプールボリュームの容量を減じ、シュリンクの残量用を更新し(S4006)、ステップ4008に進み、次にページ使用量が少ないプールボリュームについて、ステップ4002の処理を行う。図40に示す処理はシュリンクの対象となったプールに属する全てのプールボリュームについて行われる。
図37のステップS3710にしたがい、ユーザがシュリンクを許容する入力をストレージ装置に行うと、以後、プールボリュームの削除処理を伴った、ページマイグレーション処理の前処理が行われる。
次いで、ステップS3714に移行し、シュリンクを伴って行うマイグレーションが適用されるページ数を算出する。さらに、ステップS3716において、ページマイグレーションを行い、S3718において、マイグレーションの進歩管理が行われる。S3712−S3718は、図15において説明した処理とほぼ同様である。
図41及び図42は、プールボリュームの削減を伴ったリバランスを説明するためのブロック図である。図41は、プールからプールボリューム#j+1が削除されることを示している。残存するプールボリュームの容量比に応じて、プールボリューム#j+1が有している使用済みページ数(4ページ)を、図41に記載するような割合で既存のプールボリュームに移動させる。
図41に示す様に、第1には、削除するプールボリュームから複数のページが、移動先となるプールボリュームの容量比に応じてプールボリュームに分配される。
この際、ストレージ装置、図42に示すように、複数のプールボリュームについて現実の割り当てページ数が、理想のページ数になるように、プールボリュームのシュリンクによるページの移動4202と、リバランス処理によるページの移動とをバランスさせて行う。
図43は、既述の実施形態の変形例を示すものであり、図9に示すストレージ装置が複数のクラスタを備えていることを示すハードウエアブロック図である。第1のクラスタ1251が、第1の仮想ボリューム(HDP VOL#0)に対するリバランスを制御し、第2のクラスタが第2の仮想ボリューム(HDP VOL#1)に対するリバランスを制御する。
プール#0、プール#1、プール#3は、それぞれのクラスタ内、あるいは複数のクラスタを跨いで形成される。リバランスは、これら複数のプール全体に対して同時に行ってもよいし、個々のプールについて個別に行うようにしてもよい。
例えば、プールVOLグループ#2で使用しているときに、プールVOLグループ#0にプールVOLが追加された場合、プールVOLグループ#2内のプールVOLグループ#1に含まれるプールVOLのデータをプールVOLグループ#0内のプールVOLへ移動し、プールVOLグループ#2をプールVOLグループ#0にする。もしくは、プールVOLグループ#1内のプールVOL数を減らす。
すなわち、図43の実施形態は、プールはクラスタ間にまたがって作成される。そのプールに所属するプールボリュームのうち、仮想ボリュームと同じクラスタにあるプールボリュームにページが極力力割り当てられるようになっている。
つまり、実体が同じクラスタにあれば、クラスタ間をまたがったデータ転送が発生しないためである。それでも、プールボリュームが足りなくなったら、別のクラスタのプールボリュームが使用されるが、極力クラスタからはみでる範囲を減らそうとする。
プールVOLがクラスタにまたがっている状態でプールVOLが追加されたら、クラスタからはみでて格納しているデータをクラスタ内に入るようにリバランスする。
図44はさらに他の実施形態を示すものであり、仮想ボリューム(HDP VOL)の属性に、ホスト装置からのアクセスに対する応答の高速性を示す「性能」を追加した例を示すブロック図である。例えば、「性能」には、「超高速」「高速」「低速」のような識別子を登録する。プールボリュームの属性にも、この「性能」を設定することができる。
管理ユーザは、仮想ボリュームの属性を考慮して、この属性に合うようにプールボリュームを仮想ボリュームに対して設定する。例えば、「超高速」の仮想ボリューム#1には、SSDから作成したプールボリュームを割付ける。「高速」の仮想ボリューム#22には、SASやFCから作成したプールボリュームを割付ける。
「低速」の仮想ボリューム#3には、SATAから作成したプールボリュームを割付ける。その他、外部ストレージのプールボリュームを割り付ける仮想ボリュームがあってもよい。ストレージ装置は、SSDのプールボリュームの範囲でリバランスを行う。SSDのプールボリュームが追加された場合は、SSDのプールVOLを使用する仮想ボリュームがリバランスする。
これは、図43と同様の考え方である。図43ではプールにまたがったかどうかでグルーピングしているが、図44はHDDの種類でグルーピングしている。1つのプールの中にSSDのグループ(プール#1とする)やSASやFCのグループ(プール#2とする)など存在する。プールにSSDのプールボリューム(=HDD)が追加されたら、プールの中のプール#1内でリバランスし、プール#2などの他のところには影響しない動きとなる。
既述の実施形態において、プールボリュームがプールから削除されると、このプールボリュームはページ割当て順序情報管理テーブルから削除されるために、このプールボリュームの仮想ボリュームのアドレスにリンクする新たなページが割当てられることはないが、プールからプールボリュームが完全に削除されるまでは、ホスト装置からのリードアクセスがこのプールボリュームに供給される。
ストレージ装置の制御メモリにリバランスのオン/オフフラグ設定情報を、管理ユーザは管理装置又は保守装置を介して設定可能である。この設定情報をオンにしておくと、契機が発生しても、ストレージ装置はページのリバランス処理を行わない。この設定情報は、プール毎、仮想ボリューム毎に設定することもできる。
既述の実施形態では、ページリバランス契機の判定、リバランス実施の可否をストレージ装置が行ったが、これを管理装置が行うようにしもよい。前者の場合は、ストレージ装置が本発明の計算機システムになり、後者の場合は、管理装置とストレージ装置との組み合わせが計算機システムになる。
Claims (11)
- 記憶媒体を有する記憶デバイスと、
上位装置からのアクセスが許容される仮想ボリュームと、
プールを構成し、それぞれ記憶領域を有する複数の論理ボリュームと、
前記プールの前記複数の論理ボリュームから前記仮想ボリュームに対する前記記憶領域の割り当て単位での割り当てを制御するコントローラと、を備え、
前記コントローラは、
前記上位装置から前記仮想ボリュームの前記記憶領域の割り当て単位の割り当て前の領域にライトアクセスがあった場合に、前記仮想ボリュームの当該領域に対して、前記プールの前記複数の論理ボリュームのいずれかの論理ボリュームから前記仮想ボリュームに割り当てられていない少なくとも1つの前記記憶領域の割り当て単位を割り当て、
前記プールの前記複数の論理ボリュームのそれぞれの容量と、前記複数の論理ボリュームそれぞれが有する前記記憶領域のうち前記仮想ボリュームに対する割り当てに使用されている前記記憶領域の割り当て単位の数による容量と、を含むプール情報を管理し、
前記複数の論理ボリュームのそれぞれについて、当該論理ボリュームの容量のうち、前記仮想ボリュームへの割り当てに使用されている前記記憶領域の割り当て単位の割り当て数による容量の割合である使用率を、前記プール情報に基づいて決定することにより、当該決定した使用率が前記複数の論理ボリューム間で不均衡になる状況を検出し、そして、
前記検出に応じて、前記複数の論理ボリューム間において前記使用率が均等になるように、前記複数の論理ボリュームのうちの少なくとも1つの論理ボリュームの前記記憶領域の割り当て単位の前記仮想ボリュームに対する割り当てを、他の前記論理ボリュームの記憶領域の割り当て単位の当該仮想ボリュームに対する割り当てに変更する割り当て変更処理を実行する、計算機システム。 - 前記コントローラは、前記複数の論理ボリュームに属する第1の論理ボリュームと第2の論理ボリュームについて、前記第1論理ボリュームから前記仮想ボリュームに割り当てられた前記記憶領域の第1の割り当て単位の当該割り当てを、前記第2の論理ボリュームの記憶領域の第2の割り当て単位の前記仮想ボリュームへの割り当てに変更しようとする際、前記仮想ボリュームの前記第1の割り当て単位が割り当てられた領域に、前記上位装置からのアクセスがあった場合には、前記仮想ボリュームに対する当該割り当ての変更を中断し、
前記仮想ボリュームに割り当てられた前記記憶領域の割り当て単位が、固定パターンデータを格納している場合、当該仮想ボリュームに割り当てられていた前記記憶領域の属性が前記割り当ての未実行の属性に変更されるようにするとともに、
当該仮想ボリュームの領域のうち、前記固定パターンデータを格納した前記割り当て単位が割り当てられていた領域に、前記固定パターンデータを格納した専用領域を割り当てるように構成されている、請求項1記載の計算機システム。 - 前記コントローラは、前記プールに新たな論理ボリュームを追加したことを前記不均衡が発生する状況として検出する、請求項1記載の計算機システム。
- 前記コントローラは、前記複数の論理ボリュームのうち、前記使用率が所定値より高い前記論理ボリュームの記憶領域の割り当て単位の前記仮想ボリュームに対する割り当てを解放し、その割り当てを前記使用率が前記所定値より低い前記論理ボリュームの記憶領域の割り当て単位に変更する、請求項1記載の計算機システム。
- 前記コントローラは、前記仮想ボリュームに対する割り当てが解放された前記記憶領域の割り当て単位の属性を割り当て済みから未割り当てに変更する、請求項4記載の計算機システム。
- 前記コントローラは、前記プールから前記複数の論理ボリュームのうちの一部の論理ボリュームの削除を前記不均衡が発生する状況として検出する、請求項1記載の計算機システム。
- 前記コントローラは、前記削除される論理ボリュームの記憶領域の割り当て単位の前記仮想ボリュームに対する割り当てを、前記複数の論理ボリュームのうちの前記プールに削除されることなく維持され、前記削除される論理ボリュームとは別の論理ボリュームの記憶領域の割り当て単位の前記仮想ボリュームへの割り当てに変更する際、前記プールに維持される複数の論理ボリューム間で、前記仮想ボリュームへ割り当てられる前記記憶領域の割り当て単位の割り当てを変更する、請求項6記載の計算機システム。
- 前記コントローラは、前記複数の論理ボリュームに属する第1の論理ボリュームと第2の論理ボリュームについて、前記第1論理ボリュームから前記仮想ボリュームに割り当てられた前記記憶領域の第1の割り当て単位の当該割り当てを、前記第2の論理ボリュームの記憶領域の第2の割り当て単位の前記仮想ボリュームへの割り当てに変更しようとする際、前記仮想ボリュームの前記第1の割り当て単位が割り当てられた領域に、前記上位装置からのアクセスがあった場合には、前記仮想ボリュームに対する当該割り当ての変更を中断する、請求項1記載の計算機システム。
- 前記コントローラは、前記仮想ボリュームに割り当てられた前記記憶領域の割り当て単位が、固定パターンデータを格納している場合、当該仮想ボリュームに割り当てられていた前記記憶領域の属性が前記割り当ての未実行の属性に変更されるようにするとともに、
当該仮想ボリュームの領域のうち、前記固定パターンデータを格納した前記割り当て単位が割り当てられていた領域に、前記固定パターンデータを格納した専用領域を割り当てるように構成されている、請求項1記載の計算機システム。 - 前記固定パターンデータは、全0データからなるものである、請求項9記載の計算機システム。
- 前記コントローラは、
前記複数の論理ボリュームのそれぞれについて、前記仮想ボリュームに割り当てられた記憶領域の割り当て単位の数、及び(前記複数の論理ボリュームのそれぞれの容量/前記複数の論理ボリューム全体の容量)を計算し、
当該計算の結果に基づいて、前記割り当て変更処理を実行する、請求項1記載の計算機システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/058533 WO2010122674A1 (ja) | 2009-04-23 | 2009-04-23 | 計算機システム及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010122674A1 JPWO2010122674A1 (ja) | 2012-10-25 |
JP5781925B2 true JP5781925B2 (ja) | 2015-09-24 |
Family
ID=43010808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011510141A Active JP5781925B2 (ja) | 2009-04-23 | 2009-04-23 | 計算機システム及びその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US8516215B2 (ja) |
JP (1) | JP5781925B2 (ja) |
WO (1) | WO2010122674A1 (ja) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096338B2 (en) * | 2004-08-30 | 2006-08-22 | Hitachi, Ltd. | Storage system and data relocation control device |
JP5379956B2 (ja) * | 2007-03-19 | 2013-12-25 | 株式会社日立製作所 | ストレージ装置及び記憶領域配置方法 |
US8893131B2 (en) * | 2008-04-11 | 2014-11-18 | Yahoo! Inc. | System and/or method for bulk loading of records into an ordered distributed database |
US8225039B2 (en) * | 2009-10-09 | 2012-07-17 | Hitachi, Ltd. | Storage controller and virtual volume control method |
JP5502232B2 (ja) * | 2010-12-28 | 2014-05-28 | 株式会社日立製作所 | ストレージシステム、及びその制御方法 |
WO2012095891A1 (en) * | 2011-01-13 | 2012-07-19 | Hitachi, Ltd. | Storage control apparatus to which thin provisioning is applied |
WO2012172601A1 (en) * | 2011-06-14 | 2012-12-20 | Hitachi, Ltd. | Storage system comprising multiple storage control apparatus |
US8572347B2 (en) * | 2011-10-26 | 2013-10-29 | Hitachi, Ltd. | Storage apparatus and method of controlling storage apparatus |
JP2013122691A (ja) * | 2011-12-12 | 2013-06-20 | Fujitsu Ltd | 割り当て装置およびストレージ装置 |
JP2013125437A (ja) * | 2011-12-15 | 2013-06-24 | Fujitsu Ltd | 制御装置、プログラムおよびストレージ装置 |
US11379354B1 (en) * | 2012-05-07 | 2022-07-05 | Amazon Technologies, Inc. | Data volume placement techniques |
WO2014002213A1 (ja) * | 2012-06-27 | 2014-01-03 | 株式会社日立製作所 | 管理システム及び管理方法 |
JP6094112B2 (ja) * | 2012-09-20 | 2017-03-15 | 富士通株式会社 | ストレージシステム、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム |
WO2014049718A1 (ja) | 2012-09-26 | 2014-04-03 | 株式会社日立製作所 | 管理装置及び管理方法 |
US9176858B2 (en) * | 2012-11-19 | 2015-11-03 | Hitachi, Ltd. | Storage system configured to selectively utilize data compression based on real pool usage rates |
US9606910B2 (en) * | 2013-01-17 | 2017-03-28 | Hitachi, Ltd. | Method and apparatus for data reduction |
US9626110B2 (en) | 2013-02-22 | 2017-04-18 | Hitachi, Ltd. | Method for selecting a page for migration based on access path information and response performance information |
JP6142599B2 (ja) * | 2013-03-18 | 2017-06-07 | 富士通株式会社 | ストレージシステム、ストレージ装置および制御プログラム |
WO2014199493A1 (ja) * | 2013-06-13 | 2014-12-18 | 株式会社日立製作所 | ストレージシステム及びストレージ制御方法 |
US20150032961A1 (en) * | 2013-07-23 | 2015-01-29 | Lexmark International Technologies S.A. | System and Methods of Data Migration Between Storage Devices |
CN103605484B (zh) * | 2013-11-26 | 2016-10-26 | 华为技术有限公司 | 一种数据存储的方法和存储服务器 |
US9495262B2 (en) * | 2014-01-02 | 2016-11-15 | International Business Machines Corporation | Migrating high activity volumes in a mirror copy relationship to lower activity volume groups |
JP5815791B2 (ja) * | 2014-05-08 | 2015-11-17 | 株式会社日立製作所 | ストレージシステム及び記憶領域の割当方法 |
US9785348B2 (en) | 2014-05-28 | 2017-10-10 | International Business Machines Corporation | Balancing usage of real and virtual space to avoid out-of-space conditions in storage controllers |
CN105740165A (zh) * | 2014-12-10 | 2016-07-06 | 国际商业机器公司 | 用于管理统一存储系统的文件系统的方法和装置 |
US10715460B2 (en) | 2015-03-09 | 2020-07-14 | Amazon Technologies, Inc. | Opportunistic resource migration to optimize resource placement |
US9740413B1 (en) * | 2015-03-30 | 2017-08-22 | EMC IP Holding Company LLC | Migrating data using multiple assets |
US9823849B2 (en) * | 2015-06-26 | 2017-11-21 | Intel Corporation | Method and apparatus for dynamically allocating storage resources to compute nodes |
US9753670B2 (en) * | 2015-11-05 | 2017-09-05 | International Business Machines Corporation | Prioritizing memory pages to copy for memory migration |
US9875058B2 (en) | 2015-11-05 | 2018-01-23 | International Business Machines Corporation | Prioritizing pages to transfer for memory sharing |
JP6527961B2 (ja) | 2015-12-25 | 2019-06-12 | 株式会社日立製作所 | 計算機システム |
US20170212705A1 (en) * | 2016-01-26 | 2017-07-27 | Netapp, Inc. | Dynamic Weighting for Distributed Parity Device Layouts |
CN108108120B (zh) * | 2016-11-25 | 2021-03-09 | 上海川源信息科技有限公司 | 数据储存系统及其数据储存方法 |
WO2018109816A1 (ja) * | 2016-12-13 | 2018-06-21 | 株式会社日立製作所 | データリバランスを制御するシステムおよび方法 |
US11029863B2 (en) * | 2017-08-31 | 2021-06-08 | Vmware, Inc. | Using non-volatile random access memory as volatile random access memory |
EP3695319B1 (en) * | 2017-09-27 | 2022-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and reallocation component for managing reallocation of information from source to target memory sled |
US10776173B1 (en) | 2018-04-30 | 2020-09-15 | Amazon Technologies, Inc. | Local placement of resource instances in a distributed system |
US11121981B1 (en) | 2018-06-29 | 2021-09-14 | Amazon Technologies, Inc. | Optimistically granting permission to host computing resources |
JP7054001B2 (ja) * | 2018-06-29 | 2022-04-13 | 富士通株式会社 | 情報処理システム、管理装置および制御方法 |
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 |
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 |
US11520516B1 (en) | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
US11733897B1 (en) | 2021-02-25 | 2023-08-22 | Pure Storage, Inc. | Dynamic volume storage adjustment |
US11726684B1 (en) | 2021-02-26 | 2023-08-15 | Pure Storage, Inc. | Cluster rebalance using user defined rules |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01191221A (ja) * | 1988-01-26 | 1989-08-01 | Nec Corp | 磁気ディスク領域の動的割り当て管理方式 |
JPH06119125A (ja) * | 1992-10-08 | 1994-04-28 | Fujitsu Ltd | ディスクアレイ装置 |
JPH08221326A (ja) * | 1995-02-20 | 1996-08-30 | Hitachi Ltd | 記憶制御装置及びその制御方法 |
JP2003005920A (ja) * | 2001-06-22 | 2003-01-10 | Nec Corp | ストレージシステム、データ再配置方法及びデータ再配置プログラム |
JP2003186712A (ja) * | 2001-12-14 | 2003-07-04 | Ricoh Co Ltd | 画像処理装置 |
JP2003186713A (ja) * | 2001-12-14 | 2003-07-04 | Ricoh Co Ltd | 画像処理装置 |
JP2006338341A (ja) * | 2005-06-02 | 2006-12-14 | Hitachi Ltd | ストレージシステム及び構成変更方法 |
JP2007079885A (ja) * | 2005-09-14 | 2007-03-29 | Hitachi Ltd | データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ |
JP2007179156A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 記憶制御装置及び方法 |
JP2008015768A (ja) * | 2006-07-05 | 2008-01-24 | Hitachi Ltd | 記憶システム並びにこれを用いたデータの管理方法 |
JP2008165620A (ja) * | 2006-12-28 | 2008-07-17 | Hitachi Ltd | ストレージ装置構成管理方法、管理計算機及び計算機システム |
JP2008234158A (ja) * | 2007-03-19 | 2008-10-02 | Hitachi Ltd | ストレージ装置及び記憶領域配置方法 |
JP2009048497A (ja) * | 2007-08-21 | 2009-03-05 | Hitachi Ltd | 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム |
JP2009048514A (ja) * | 2007-08-22 | 2009-03-05 | Hitachi Ltd | 仮想ボリュームのバックアップを行うストレージシステム及び方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0438540A (ja) | 1990-06-05 | 1992-02-07 | Toshiba Corp | メモリ管理方式 |
US5666511A (en) * | 1992-10-08 | 1997-09-09 | Fujitsu Limited | Deadlock suppressing schemes in a raid system |
JPH06187227A (ja) | 1992-12-16 | 1994-07-08 | Hitachi Ltd | 記憶装置とメモリ管理方法 |
US6401182B1 (en) * | 1999-02-10 | 2002-06-04 | International Business Machines Corporation | Method and apparatus for memory management |
US6857059B2 (en) * | 2001-01-11 | 2005-02-15 | Yottayotta, Inc. | Storage virtualization system and methods |
JP4175788B2 (ja) | 2001-07-05 | 2008-11-05 | 株式会社日立製作所 | ボリューム制御装置 |
US20030126394A1 (en) * | 2001-12-27 | 2003-07-03 | Storage Technology Corporation | System and method for remote configuration of data storage space |
US7181578B1 (en) * | 2002-09-12 | 2007-02-20 | Copan Systems, Inc. | Method and apparatus for efficient scalable storage management |
US7395369B2 (en) * | 2004-05-18 | 2008-07-01 | Oracle International Corporation | Distributing data across multiple storage devices |
US7636744B1 (en) * | 2004-11-17 | 2009-12-22 | Netapp, Inc. | System and method for flexible space reservations in a file system supporting persistent consistency point images |
JP4733461B2 (ja) * | 2005-08-05 | 2011-07-27 | 株式会社日立製作所 | 計算機システム、管理計算機及び論理記憶領域の管理方法 |
US7404036B2 (en) * | 2005-11-23 | 2008-07-22 | International Business Machines Corporation | Rebalancing of striped disk data |
US7822921B2 (en) * | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US7949847B2 (en) * | 2006-11-29 | 2011-05-24 | Hitachi, Ltd. | Storage extent allocation method for thin provisioning storage |
US8087027B2 (en) * | 2007-03-29 | 2011-12-27 | International Business Machines Corporation | Computer program product and system for deferring the deletion of control blocks |
JP2009093316A (ja) * | 2007-10-05 | 2009-04-30 | Hitachi Ltd | ストレージシステム及び仮想化方法 |
JP5234342B2 (ja) * | 2008-09-22 | 2013-07-10 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
-
2009
- 2009-04-23 WO PCT/JP2009/058533 patent/WO2010122674A1/ja active Application Filing
- 2009-04-23 US US12/594,648 patent/US8516215B2/en active Active
- 2009-04-23 JP JP2011510141A patent/JP5781925B2/ja active Active
-
2013
- 2013-08-12 US US13/964,185 patent/US8769235B2/en active Active
-
2014
- 2014-05-30 US US14/291,031 patent/US9201607B2/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01191221A (ja) * | 1988-01-26 | 1989-08-01 | Nec Corp | 磁気ディスク領域の動的割り当て管理方式 |
JPH06119125A (ja) * | 1992-10-08 | 1994-04-28 | Fujitsu Ltd | ディスクアレイ装置 |
JPH08221326A (ja) * | 1995-02-20 | 1996-08-30 | Hitachi Ltd | 記憶制御装置及びその制御方法 |
JP2003005920A (ja) * | 2001-06-22 | 2003-01-10 | Nec Corp | ストレージシステム、データ再配置方法及びデータ再配置プログラム |
JP2003186712A (ja) * | 2001-12-14 | 2003-07-04 | Ricoh Co Ltd | 画像処理装置 |
JP2003186713A (ja) * | 2001-12-14 | 2003-07-04 | Ricoh Co Ltd | 画像処理装置 |
JP2006338341A (ja) * | 2005-06-02 | 2006-12-14 | Hitachi Ltd | ストレージシステム及び構成変更方法 |
JP2007079885A (ja) * | 2005-09-14 | 2007-03-29 | Hitachi Ltd | データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ |
JP2007179156A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 記憶制御装置及び方法 |
JP2008015768A (ja) * | 2006-07-05 | 2008-01-24 | Hitachi Ltd | 記憶システム並びにこれを用いたデータの管理方法 |
JP2008165620A (ja) * | 2006-12-28 | 2008-07-17 | Hitachi Ltd | ストレージ装置構成管理方法、管理計算機及び計算機システム |
JP2008234158A (ja) * | 2007-03-19 | 2008-10-02 | Hitachi Ltd | ストレージ装置及び記憶領域配置方法 |
JP2009048497A (ja) * | 2007-08-21 | 2009-03-05 | Hitachi Ltd | 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム |
JP2009048514A (ja) * | 2007-08-22 | 2009-03-05 | Hitachi Ltd | 仮想ボリュームのバックアップを行うストレージシステム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
US8769235B2 (en) | 2014-07-01 |
US20140281339A1 (en) | 2014-09-18 |
US8516215B2 (en) | 2013-08-20 |
US20110060885A1 (en) | 2011-03-10 |
US9201607B2 (en) | 2015-12-01 |
US20130332692A1 (en) | 2013-12-12 |
WO2010122674A1 (ja) | 2010-10-28 |
JPWO2010122674A1 (ja) | 2012-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5781925B2 (ja) | 計算機システム及びその制御方法 | |
CN110955487B (zh) | Hci环境下的vm/容器和卷配置决定方法及存储系统 | |
US9448733B2 (en) | Data management method in storage pool and virtual volume in DKC | |
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
JP5801189B2 (ja) | 計算機システム及びその制御方法 | |
US8984221B2 (en) | Method for assigning storage area and computer system using the same | |
US8850152B2 (en) | Method of data migration and information storage system | |
JP5981563B2 (ja) | 情報記憶システム及び情報記憶システムの制御方法 | |
JP5502232B2 (ja) | ストレージシステム、及びその制御方法 | |
JP5314772B2 (ja) | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 | |
US20110167236A1 (en) | Storage system providing virtual volumes | |
JP5073259B2 (ja) | 仮想化システム及び領域割当て制御方法 | |
US20150234671A1 (en) | Management system and management program | |
US8380925B2 (en) | Storage system comprising plurality of processor units | |
US8572347B2 (en) | Storage apparatus and method of controlling storage apparatus | |
JP5597266B2 (ja) | ストレージシステム | |
WO2016006072A1 (ja) | 管理計算機およびストレージシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130514 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131227 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140425 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140502 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20140801 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150716 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5781925 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |