JP5801189B2 - 計算機システム及びその制御方法 - Google Patents

計算機システム及びその制御方法 Download PDF

Info

Publication number
JP5801189B2
JP5801189B2 JP2011510144A JP2011510144A JP5801189B2 JP 5801189 B2 JP5801189 B2 JP 5801189B2 JP 2011510144 A JP2011510144 A JP 2011510144A JP 2011510144 A JP2011510144 A JP 2011510144A JP 5801189 B2 JP5801189 B2 JP 5801189B2
Authority
JP
Japan
Prior art keywords
pool
volume
storage area
storage
virtual volume
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
JP2011510144A
Other languages
English (en)
Other versions
JPWO2010122679A1 (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 JPWO2010122679A1 publication Critical patent/JPWO2010122679A1/ja
Application granted granted Critical
Publication of JP5801189B2 publication Critical patent/JP5801189B2/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space 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/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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Description

本発明は、計算機システムに係わり、特に、ホスト装置に対して動的に記憶容量を割り当てる計算機システムに関するものである。
従来から、ホスト装置に対して大規模なデータストレージサービスを提供する計算機システムが存在する。このシステムは、ホスト装置と、ホスト装置が接続するストレージ装置と、ストレージ装置の管理装置と、を備えたものとして知られている。
ストレージ装置は、複数のハードディスクをRAID(Redundant Array of Independent/Inexpensive Disks)方式で管理する。そして、多数のハードディスクが有する物理的な記憶領域を論理化し、これを論理ボリュームとしてホスト装置に提供する。ホスト装置は論理ボリュームにアクセスしてデータのリード・ライトを要求する。
この種の論理化技術の一つにシン・プロビジョニングと称されるものがある。ストレージ装置は、物理的な記憶領域を有さない仮想的なボリュームをホスト装置に対して設定する。ホスト装置が仮想的なボリュームにライトアクセスにすることに合わせて、ストレージ装置は、仮想ボリュームに対して記憶領域を順次割り当てていく。
したがって、この技術は、論理ボリュームに対して当初から大容量な記憶領域を割り当てる方式に比べて、ストレージ資源を有効に活用できる点で効果的である。この技術は、特願2003−15915号公報、及び、特開2006−338341号公報に記載されている。
仮想ボリュームに記憶領域を提供するための手段は、それぞれ実の記憶領域が割り当てられた複数の論理ボリュームをプールと呼ばれる論理グループに纏めたものから構成される。複数の論理ボリュームはそれぞれプールボリュームと呼ばれる。仮想ボリュームにホスト装置からライトアクセスがあると、仮想ボリュームのアクセス先に、プールボリュームの対応領域の記憶領域を割り当てる。
ストレージ装置は、仮想ボリュームに対するホスト装置からのアクセス領域を、プールボリュームに記憶容量が割り当てられた領域に対応させることにより、ホスト装置からのライトデータを保存することができる。
ストレージ装置は、複数のプールボリュームへの記憶領域の割り当てが均等になるようにするが、長い時間を経過してゆく過程で、この均等が崩れてくる問題がある。そこで、特開2008−234158号は、複数のプールボリューム間で記憶領域を移動させて、記憶領域の容量が複数のプールボリュームについて均等になることを開示している。
特願2003−015915号公報 特開2006−338341号公報 特開2008−234158号公報
特開2008−234158号は、外部操作によって、記憶領域を移動させることを開示しているものの、複数のプールボリュームについて、記憶容量の均等化が迅速、かつ確実に実行されることまでを提案するものではなかった。
そこで、発明は、仮想ボリュームに記憶領域を割り当てる複数のプールボリュームに対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することを目的とするものである。
この目的を達成するために、本発明は、上位装置からのアクセスに対して、仮想ボリュームに記憶領域を動的に割り当てる運用を実行している過程で、プールに新しいプールボリュームを追加した場合に、記憶領域の一部におけるデータを新しいプールボリュームにおける新しい記憶領域に移動させて、記憶容量のバランスを維持するようにした計算機システムであることを特徴とするものである。
本発明によれば、仮想ボリュームに記憶領域を動的に割り当てる複数のプールボリュームに対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することができる。
図1は、本発明に係わる計算機システムの実施形態を示すハードウエアブロック図である。
図2は、図1に示した計算機ステムにおいて、ストレージ装置が行う記憶領域の動的割り当ての動作を示す機能ブロック図である。
図3は、ストレージ装置のメモリブロック図である。
図4は、VDEV管理情報を説明するブロック図である。
図5は、LDEV管理情報を説明するブロック図である。
図6は、アドレス管理テーブルを説明するブロック図である。
図7は、POOL管理情報のブロック図である。
図8は、VVOL−DIR及びPSCBのブロック図である。
図9は、ターゲットデバイスと、LDEVと、PDEVとのマッピングの関係を示すブロック図である。
図10に、仮想ボリュームとプールボリュームとの間で、均等に、ページが割り当てられている様子を示すブロック図である。
図11は、その時のフリーキューの構造を示すブロック図である。
図12は、プール追加されたプールボリュームにページの割り当てが集中している様子を示すブロック図である。
図13、その時のフリーキューの構造を示すブロック図である。
図14は、ページリバランス前での仮想ボリューム及びプールボリュームのブロック図である。
図15は、ページリバランス後での仮想ボリューム及びプールボリュームのブロック図である。
図16は、複数のプールボリューム間で、プールボリュームの容量比を勘案してリバランスを行う様子を示す、仮想ボリューム及びプールボリュームのブロック図である。
図17Aはプールを管理するテーブルであり、図17Bはプールボリュームを管理するテーブルであり、図17Cは、フリーキュー単位を管理するテーブルである。
図18は、ホスト装置から仮想ボリュームへのライトアクセスに対して、プールに属するプールボリュームから仮想ボリュームにページを割り当てる順序を示したブロック図である
図19は、この割り当て順序を管理するテーブルである。
図20は、ストレージ装置がプールボリュームをプールに追加する際にリバランの処理を行うことを説明するフローチャートである。
図21はリバンラスを示すフローチャートートである。
図22は、複数のプールボリューム間でマイグレーションされるページ数の算出の処理を示すフローチャートである。
図23は、算出されたページ数とページの移動の様子を示す、仮想ボリュームとプールボリュームとのブロック図である。
図24は、図23に示すページの移動形態を実現するための管理テーブルである。
図25は、マイグレーション処理の詳細を示すフローチャートである。
図26は、マイグレーション処理のさらに詳細な内容を示すフローチャートである。
図27はマイグレーション処理を行うキャッシュメモリのブロック図である。
図28は、ページマイグレーションに対してホスト装置からI/O処理を優先させることを説明するフローチャートである。
図29は、キュー構造の再設定の過程を示すブロック図である。
図31は、キュー構造の再設定を説明する第1のフローチャートである。
図32は、キュー構造の再設定を説明する第2のフローチャートである。
図33は、複数のプールボリューム間でページマイグレーションが行われている様子を説明するブロック図であり、図34の前提となるものである。
図34はページのマイグレーションを実現するフリーキュー処理を説明するブロック図である。
図35は、図36の前提となるブロック図である。
図36は、マイグレーションの中断が発生した場合でのフリーキュー処理を説明するブロック図である。
図37A〜図37Fはマイグレーションの進捗管理画面であって、ページの使用状況をプールボリューム毎に集計した画面である。
図38A〜図38Bはページ数を仮想ボリューム単位で集計した画面である。
次に本発明の実施形態について説明する。図1は、本発明に係わる計算機システムの第1の例を示すハードウエアブロック図である。計算機システムは、ホスト計算機10と、管理装置20と、これらが接続するストレージ装置30と、を備えている。ストレージ装置は、ストレージシステム、あるいはストレージサブシステムとも呼ばれている。
ホスト計算機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と、を有している。
さらに、メモリ350は、リバランスを実行するか否かをプール毎、あるいは仮想ボリューム毎に設定できるフラグ情報を備えている。
図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は、ターゲットデバイスと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に関連付けられている。
ホスト計算機10が、仮想ボリュームであるターゲットデバイス701にアクセスする。この仮想ボリュームの記憶領域は第2種LDEV501である。ストレージ装置30は、第2種LDEV501へのアクセスを受け付けると、第2種LDEV501に関連付けられている第1種LDEV500をアクセス先に変換する。
図10に、仮想ボリューム(第2種LDEV)と複数のプールボリューム(第1種LDEV)との間で、均等に、アクセス対象及び記憶領域の単位としてのページが割り当てられている様子を示す。
図10において、仮想ボリューム(HDP−Vol)#0と仮想ボリューム#1とに対するホスト計算機からのアクセスに対しては、プロセッサ(MP)#0がプールボリューム(Pool−Vol)#0〜#2からページを仮想ボリューム#0、#1へ割り当てる。
仮想ボリューム#2と仮想ボリューム#3とに対するホスト計算機からのアクセスに対しては、プロセッサ#1がプールボリューム#0〜#2からページを仮想ボリューム#2、#3へ割り当てる。
ホスト計算機からのアクセスは、仮想ボリューム#0〜#3に対して、WR1〜WR5のように、順番に実行される。MP#0は、仮想ボリューム#0のホスト計算機からアクセスされたページ(WR1)に、プールボリューム#0のページ(WR1)を割り当て、仮想ボリューム#1のホスト計算機からアクセスされたページ(WR2)に、プールボリューム#1のページ(WR2)を割り当てる。
次いで、MP#1は、仮想ボリューム#2のホスト計算機からアクセスされたページ(WR3)に、プールボリューム#0のページ(WR3)を割り当て、仮想ボリューム#3のホスト計算機からアクセスされたページ(WR4)に、プールボリューム#1のページ(WR4)を割り当てる。
次いで、MP#0は、仮想ボリューム#0のホスト計算機からアクセスされたページ(WR5)に、プールボリューム#0のページ(WR5)を割り当てる。
この割り当ては、既述の図8のキュー構造によって実現される。図11は、従来のフリーキュー構造の一例である。各プールボリュームの未割り当てページのアドレス(freeM−N:Mはプールボリューム♯Mに属すること示す。NはプールボリュームMのN番目の未割り当てページであることを示す。)はフリーキューに(0)〜(1)に順番に接続されている。各MPはフリーキュー(0)〜(1)に順番にアクセスして、プールボリュームの未割り当て領域を仮想ボリュームに割り当てていく。
MP#0は、フリーキュー(0)にアクセスする。フリーキュー(0)には、先ず、free0−1が接続されているので、プールボリューム#0の未割り当てページの1番目のものを仮想ボリューム#0のページWR1に割り当てる。この未割り当てページは割り当て済み(使用済み)のページ(WR1)となる。
次いで、MP#0は、フリーキュー(1)にアクセスする。フリーキュー(1)には、最初に、free1−2が接続されているので、プールボリューム#1の未割り当てページの2番目のものを仮想ボリューム#1のページWR2に割り当てる。この未割り当てページは割り当て済み(使用済み)のページ(WR2)となる。
次いで、MP#1は、フリーキュー(0)にアクセスする。フリーキュー(0)のfree0−1は割り当てに使用されたので、次のfree0−4を選択し、これを仮想ボリュームのページWR3に割り当てる。割り当てに使用されたページはフリーキューからリリースされる。
次いで、MP#1は、フリーキュー(1)にアクセスする。フリーキュー(1)のfree1−2は割り当てに使用されたので、次のfree1−5を選択し、これを仮想ボリュームのページWR4に割り当てる。
次いで、MP#0は、フリーキュー(2)にアクセスする。フリーキュー(2)は最初にfree2−3に接続されているので、プールボリューム#2の3番目の未割り当てページを仮想ボリューム#0のページWR5に割り当てる。
図11に示すように、複数のプールボリュームに対して割り当てページが均等に存在するように、フリーキューに繋がるフリー領域が属するプールボリュームが、フリーキュー毎に一つずつずれる様になっている。また、ホスト計算機からのアクセスに対するページの割り当て順序、
フリーキュー#0→#1→#2→#0→#1・・・・・・・
は、ページ割り当て順序管理テーブルとして、メモリ350に格納されている。プロセッサはこの順序テーブルを常時参照して、ページの割り当てを行う。プロセッサは、仮想ボリュームに割り当てられたページに、ホスト装置からのライトデータを格納する。
図12は、プールに属するプールボリューム#0から#2の未割り当てページが減少した際に、プールボリューム#3を追加した様子を示している。図13は、追加したプールボリュームの空き領域を管理するキュー構造を示している。プールボリューム#3が新たにプールに追加されたため、各フリーキューにはプールボリューム#3の空き領域が数多く接続している。
図10の形態では、複数のプロセッサを設けて、ホスト計算機からのアクセス処理の負荷を分散させるため、各プロセッサには異なる仮想ボリュームを割り当てている。仮想ボリュームに対するホスト計算機からのアクセスは複数の仮想ボリューム間で均等にはならないため、長期間経過すると、複数のプールボリュームにおける使用済みページの割合のバランスが崩れてくる。
また、図13の形態では、フリー領域が多く存在するプールボリューム#3にプロセッサからのアクセスが集中するため、ホスト計算機からのI/Oに対する処理性能が低下するおそれがある。
そこで、図14〜図15に示すように、プロセッサは、プールに追加したプールボリュームに、既存のプールボリュームから、割り当て済みページを移動(マイグレーション)させて、割り当てページの割合が既存のプールボリュームと追加したプールボリュームとの間で均等になるようにしている。
図14は、この処理の状態を示し、図15はこの処理の後の状態を示している。図14において、1400はページの割り当てが実行された使用済み領域であり、1402は未使用領域である。図15に示すように、プールボリューム#0の使用済みページの一部のページのデータが、追加されたプールボリューム#2の未使用ページにコピーされ(S1404)、さらに、プールボリューム♯1の使用済みページの一部のページのデータが、プールボリューム#2の未使用ページにコピーされる(S1406)。
そして、プロセッサは、仮想ボリューム#0からプールボリューム#1への割り当て(S100)をプールボリューム#2に変更し(S104)、仮想ボリューム#2からプールボリューム#0への割り当て(S102)をプールボリューム#2に変更する(S106)。この一連の過程をページの移動(マイグレーション)という。
図14から図15の過程は、使用済みの複数のページが複数のプールボリューム間で再配置されて均等にされたこと、すなわち、ページのリバランスが達成されたことを示している。ページをプール内の複数のボリュームで均等に行うのは、均等割り当てプログラム3508を実施するプロセッサである。プロセッサはリバランスプログラム3509を実施してリバラン処理を行う。
これらの処理の結果、複数のプールボリューム全体に対するページの割り当てが均等になるため、複数のプールボリュームそれぞれに対するI/Oのレートが同程度になり、ホスト装置からのアクセスに対するストレージ装置の処理性能がプールボリュームの追加後も良好に維持される。
なお、移動元ページのデータの更新日時に応じて、更新日時が最近のものであるほど、移動先ページにマイグレーションする際には、ハードディスクのより外周部に移動元ページのデータがコピーされる。
複数のプールボリューム間で割り当てページを均等にする上で、プールボリュームの容量を勘案することは重要である。すなわち、複数のプールボリューム間で、全ページ数(割り当て可能な全ページ数:プールボリュームの容量に相当する。)中割り当てに使用されたページの割合(ページ使用率)を均等にすることが重要である。ページ数の代わりに記憶容量で計算しても同じことである。
図16はそのことを示すブロック図である。符号1300は、各ボリュームに割り当てられているページの全容量であり、1302は、ボリューム間でマイグレーションされるページの容量である。プールボリュームの容量比は、プールボリューム#0:#1:#2が1:3:2である。
したがって、ページの使用率が同じ割合になるように、プールボリューム#1および#3からプールボリューム#2にそれぞれページがマイグレーションされる。
図17Aはプールを管理するテーブルであり、図17Bはプールボリュームを管理するテーブルである。これらのテーブルは、プール情報352(図3)の一部として、メモリ350に記録されている。これらのテーブルは管理情報から作成される。ストレージシステムのリバランス処理プログラム3509は、これらテーブルを参照して、図15で説明したリバンランス処理系を構築する。
図17Cは、フリーキュー単位を管理するテーブルである。仮想ボリュームのアクセス領域に対する未使用ページの割り当ては、既述のように、フリーキューによって管理される。フリーキューはプールボリューム毎に設定されている。フリーキューにはプールボリュームの複数の未使用ページがFIFO構造で接続されている。未使用ページが仮想ボリュームへ割り当てられる際は、未使用ページが順番にフリーキューから解放されて、仮想ボリュームからのマッピング、データコピー先として処理される。
このテーブルは、フリーキューの識別番号(#)と、フリーキューが空き領域を管理する対象となるプールボリューム#と、フリーキューに連結するフリー領域の個数と、フリーキューが所属するプール#からなる。このテーブルも、プール情報の一環としてメモリ350に記録されている。
図18は、ホスト装置から仮想ボリュームへのライトアクセスに対して、プールに属するプールボリュームから仮想ボリュームにページを割り当てる順序を示した説明図である。ここでの説明は、記憶容量の比が2:3:2である複数のプールボリュームを持ったプールを前提としている。
仮想ボリュームのページをプールボリュームに均等に割り当てるためには、プールボリュームに追加されたボリュームを含めて、ボリュームに対してページの割り当て順序を定めることが必要である。この割り当て順序は、管理情報としてメモリに登録されている(図19参照)。
割り当て処理プログラム3508は、この管理情報を参照して、複数あるフリーキューの中から目的のフリーキューのアドレスを算出して、フリーキューに繋がる未使用ページのアドレス(ポインタ情報:PSCB)を取得し、ここに仮想アドレスのページに対して送られた、ホスト装置からのライトデータを格納する。
これを可能にするために、フリーキューのアドレスとプールボリュームの識別情報とは1:1に対応している。例えば、フリーキュー#0はプールボリューム#0のフリー領域を管理しており、フリーキュー#1はプールボリューム#1のフリー領域を管理しており、フリーキュー#2はプールボリューム#2のフリー領域を管理している。
図18は、プールボリューム#0に連続して2回ページを割り当て、次いで、プールボリューム#1に連続して3回ページを割り当て、さらに、プールボリューム#2に連続して2回ページを割り当て、以後これを繰り返すことを示している。
図19は、この割り当て順序を管理するテーブルであり、図18に示す割り当ての方式が登録されている。このテーブルもプール情報としてメモリに記録されている。割り当て処理プログラム3508は、この管理テーブルを参照して、プールボリュームに対するページの割り当ての順次制御処理を管理する。
このプログラムは、ソフトウエアカウンタを備え、どのプールボリュームまでページを割り当てたか否かを管理する。カウンタはページの割り当ての都度インクリメントされることから、カウンタの位置によって、現在のページ割当て対象となっているプールボリュームが分かる。図19は、カウンタがプールボリューム#1(フリーキュー#1)のところにあることを示している。
ストレージ装置のリバランス処理プログラム3509は、図20に示す様に、ページの再配置を実行することの契機として、プールボリュームをプールに追加することを検出する。
図20において、ストレージ装置装置のリバランス処理プログラム3509は、プールの空き容量を一定時間監視する(S33001,S33002)。プール全体の使用量(割り当てに使用された全ページの容量)が閾値を越えたか否かを判定する(S33003)。
閾値を越えると、管理装置20又は保守端末は、プールに新たにプールボリュームを追加する処理を行う。ストレージ装置は、図5乃至図7に示す管理情報をプールボリュームの追加に合わせて更新する(S33004)。その後、リバランス処理に移行する(S33020)。
リバンランス処理の詳細を、図21に基づいて説明する。リバランス処理プログラムが、リバランスの対象となったプールについてリバランスの可否を判定する(S7007)。この判定は、図3のプール情報352を参照して行われる。
リバアンスの対象となったプールがリバランスできないと判定されるのは、例えば、次の場合である。
プール状態:プールが閉塞
プール内のボリューム数が所定(8)以上
プールボリューム状態:フォーマット中
縮退中
閉塞
仮想ボリューム:閉塞
その他、ストレージ装置のハードウエア資源(プロセッサ、共有メモリ、キャッシュメモリ、PDEV)の障害時にも、障害の程度に応じて、リバランスができないと判定される。
また、プロセッサが、リバランスの対象となったプールにリバランスOFFフラグが設定されている場合には、リバランスができないと判定する。リバランスON/OFF設定情報はプール毎、仮想ボリューム毎に設定できる。
リバランスが可能と判定されると、リバランス処理プログラムは前処理を行う(S7010)。たとえば、ページマイグレーション(ページの割り当ての変更あるいは移動)移動元のプールボリュームと移動先のプールボリュームとを決定する、ページマイグレーションの処理が適用されるプールボリュームの選択順序を決定する、ページマイグレーション後のプールボリュームの容量をシミュレートするなどである。
次いで、リバランス処理プログラムは、プール内でマイグレーションすべきページ数を算出する(S7011)。その後、ページのマイグレーション処理を行う(S7012)。このとき、後述するが、マイグレーションの際に、複数のプールボリュームに存在する固定パターン(例えば、ページの全てのデータ“0”のもの)を破棄して、プールボリュームの容量を縮小するための処理を同時に行う。
ページマイグレーションの際、リバランス処理プログラムは、リバランス処理の中断条件の発生の有無を判定する。例えば、リバランスの対象となったページにホスト計算機からI/Oがあった場合には、リバランスを中断する。リバランスの中断の要因がなくなった後リバランス処理を再開してもよい。
次いで、リバランス処理プログラムは、ページマイグレーションの進捗を管理する(S7013)。この管理によって、リバランス処理プログラムは、リバランスの進捗状況を管理ユーザに対して見せることができる。
図22は、図21のマイグレーションするページ数の算出(S7011)の詳細を示すフローチャートである。ここでのページ数の算出の方式は、複数のプールボリューム間でバランスされたページ数を理想のページとし、これと現在使用されているページ数の差を埋めるようにすることである。リバランス処理プログラムは、HDP VOL(仮想ボリューム)に割り当てられている各プールボリュームでのページの使用量を検索する。
図22の説明において、次のことを前提とする。
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]は移動先ボリュームとなる。
リバランス処理プログラムは、移動ページ数を算出したら、プール番号毎に、移動ページ数、プールボリュームが移動元か移動元か移動先かを専用のテーブルに登録する。
図23は、図22の処理によって算出されたページ数とページの移動の様子を示すブロック図である。ページの移動は、一つのストレージプールグループに属する複数のプールボリュームと、これに対応する複数の仮想ボリュームと、において、各仮想ボリュームについてページの移動を算出した結果に基づく。プールボリュームのシンボルの中の数値は、プールボリュームにおいて割り当てに使用されているページ数を示している。
図23に示す様に、仮想ボリューム#0について、複数のプールボリューム間でページの移動はない。仮想ボリューム#1、#2について、図23に示す矢印の方向で、矢印の上に示してある数のページがマイグレーションされる。リバランス処理プログラムは、プール単位でページの移動を行う。すなわち、図23に示す全てのページ移動を行う。なお、仮想ボリューム単位でページの移動を行ってもよい。たとえば、仮想ボリューム#1について、複数のプールボリューム間でページの移動を行い、仮想ボリューム#2については、ページの移動を実行しないようにしてもよい。
図24は、図23に示すページの移動形態を実現するための管理テーブルである。この管理テーブルはメモリ350の所定領域に格納される。管理テーブルは仮想ボリューム毎に存在し、図22のステップS1906の処理に基づいて作成される。仮想ボリューム毎で各プールボリュームが移動元となるかあるいは移動先となるかが登録されており、移動元のプールボリュームから移動先のプールボリュームについて移動されるページ数が移動元及び移動先のプールボリュームにそれぞれ登録されている。
リバランス処理プログラムは、S7011(図21)の処理でこのテーブルを作成・登録し、S7012でこのテーブルを参照してマイグレーションを実行する。
図25は、図21のマイグレーション処理(S7012)の詳細を示すフローチャートである。この処理は、複数の仮想ボリュームが存在する場合は、各仮想ボリュームについて行われる。
リバランス処理プログラムは、仮想ボリュームの中から、関連ページを検出する。移動対象となるのはプールボリュームのページであるが、アドレス管理テーブル3511を参照することにより、移動対象となるページに対応する関連ページを仮想ボリュームの全ページの中から特定することができる。
リバランス処理プログラムは、仮想ボリューム中の先頭から全ページのそれぞれについて、関連ページであるか否かの判定を行う。どのページまでチェックしたかを管理するためにソフトウエアカウンタを用いる。ページのチェックが進む都度、カウンタをインクリメントする。そこで、リバランス処理プログラムは、カウンタの初期化を行う(S2300)。
次いで、リバランス処理プログラムは、仮想ボリューム中のページを先頭ページから選択する(S2302)。次いで、選択したページにプールボリュームの移動対象ページが割り当てられているか否かを判定する(S2304)。
リバランス処理プログラムは、この判定を肯定すると、アドレス管理テーブル3511に基づいて移動対象ページが属するプールボリュームの識別情報を検出する(S2306)。
次いで、図24のテーブルを参照して、プールボリュームが移動元か移動先かを判定する(S2306)。リバランス処理プログラムは、プールボリュームが移動先である場合には、移動元プールボリュームからページ移動するための空き領域を移動先プールボリュームに確保する(S2310)。
ページが移動されるプールボリュームとしては、割り当てバランスが低いものが選択されるが、複数のプールボリュームが移動先として競合した場合には、追加されたプールボリューム、次いで、移動先となる上での優先度が高いプールボリュームから順に選択される。移動先優先度テーブルには、各プールボリュームについて移動先となる優先度が登録されている。
リバランス処理プログラムは、移動先プールボリューム、移動元プールボリューム、移動対象ページ数を決めると、ページの移動のスケジュールを決定し、これをメモリ350のマイグレーション実行ジョブに登録する(S212)。このスケジュールは、例えば複数のページの移動を伴う場合、どのような順番でページの移動を行うかを決めるためのものである。このスケジュールは、S2302にて順次選択されたページがある都度、新たな移動先ボリュームなどが決定される都度更新登録される。
次いで、リバランス処理プログラムは、カウンタのカウント値をインクリメントし(S2316)、S2302にて選択していないページが未だ存在するか否かを判定する(S2318)。未検討のページが存在する場合にはステップS2302にリターンし、さらに、ページが存在しない場合にはS2312において順次更新されたスケジュールにしたがって、マイグレーションが実行される(S2320)。なお、マイグレーション処理(S2320)をS2312の後に実行するようにしてもよい。
図26は、図25のマイグレーション処理(S2320)を示すものである。ストレージアダプタ370は、リバランス処理プログラムにしたがって、移動元プールボリュームから移動元ページの全データをスロット単位で、キャッシュメモリ32にステージジングする(S2400)。
図27にこの様子が示されている。プールボリューム#1は移動元であり、プールボリューム#2は移動先である。S2600は、移動元ページがキャッシュメモリの第1の領域32Aにステージングされる様子を示している。符号2601はスロットである。ステージングはスロット単位で実行される。符号2601Aは移動元ページであり、符号2601Bは移動先ページである。
ストレージアダプタ370内のDRR回路(Data Recover and Reconstruct回路)は、スロット単位で移動元ページ2601Aのデータをチェックし、データが“0”か否かをチェックする(図26:S2402−S2404、図27:S2602)。
この判定は、移動元ページのデータが固定パターンの一つ(全データが“0”)であるか否かを判定するためのものである。データが固定パターンの場合にはページのマイグレーションは行わず仮想ボリュームの移動対象ページに対するマッピングを、固定パターンデータを格納している専用領域に変更する。
DRRが“1”の存在を検出すると、ステップ2414に移行して、キャッシュメモリ内メモリコントローラは、移動元ページデータを、第1領域32Aから第2領域32Bへ、キャッシュメモリ間コピーを行う(図26:S2414、図27:S2604)。そして、ストレージアダプタ370は、移動元キャッシュメモリ32Aをクリアする(図27:S2416)する。
次いで、第2領域32Bのデータを移動先プールボリューム#2の移動先ページ2601Bにデステージ(図27:S2606)、移動元ページ2601Aを未使用ページに変更し、さらに、仮想ボリュームのページに対する割り当てを移動元ページから移動先ページに変更するなどのマイグレーション処理を行う(図26:S2418)。
DRRが判定しているスロットのデータが“0”の場合は、ストレージアダプタ370は、スロット単位の全データのチェックが終了したか否かを判定し(S2406)、これを否定判定する場合には、ステップS2402に戻り、同一スロットの他のデータにつて、“0”か否かをチェックする。スロットの全部のデータについてチェックが終わると、ステップS2410に移行し、移動元ページに残りのスロットがあるか否かをチェックして、これを肯定判定する場合には、次のスロットについて既述のチェックを行う。
ページに属する全てのスロットについて判定が終わると、ステップS2412に移行して、全データが“0”からなる移動元ページは、マイグレーションが必要でないとして、未使用ページに変更する。
ストレージ装置が図26に示す処理を実行することにより、ページを再配置する際、固定パターンデータを持つページを使用済みの管理から解放して、固定パターンデータが重複して仮想ボリュームに割り当てられることを解消し、ひいては、ホスト装置は、プールボリュームの記憶領域を効率よく利用することができるようになる。
図26で説明するマイグレーションの過程で、移動元のページに対して、ホスト計算機からI/Oまたはストレージ装置内コピーI/Oが発行されると、ストレージ装置は、I/O処理の方を優先させてページマイグレーションを中止する。
すなわち、図28に示す様に、仮想ボリュームにリード又はライトI/Oが供給されると、プロセッサは、移動元ページに対する論理アドレスが含まれているか否かをチェックする(S2500)。
移動元ページに対する論理アドレスが含まれていることは、仮想ボリュームと移動元ページとの間のパスが切断されてなく、ページマイグレーション処理は終了していないことを意味するため、プロセッサは、移動元ページのデータが格納されている、キャッシュメモリの第2の領域(図27の32B)のデータをクリアし、さらに移動先ページに対してクリア処理を行う(S2504)。
ここでのクリア処理とは、仮想ボリュームにマッピングされている場合には、マッピング管理情報を削除することであり、また、移動先ページが使用ページとして管理されているのであれば、その管理情報を削除することである。
次いで、プロセッサは、S2506において、図26のマイグレーション処理をスキップする(終了する)。なお、リードI/Oの場合は、これの処理が終了するまで、マイグレーション処理を一時停止し、その後再開するようにしてもよい。
図27で説明したように、キャッシュメモリ32は、第1領域(移動元用のキャッシュ領域)32Aと、第2領域(移動先用のキャッシュ領域)32Bとがあり、両者の差分が無くなるまで、第2領域から移動元ページのデータが移動先ページ2601Bにコピーされないため、移動元ページにI/Oが入ったタイミングでページの移動処理を中止することができる。
フリーキューの構造が、図11に示す方式のものでは、1つのフリーキューに複数のプールボリュームの空きページ情報(PSCB)が接続されていた。これでは仮想ボリュームにページを割り当てる際に、プロセッサは、仮想ボリュームにどのプールボリュームの空きページが割り当たるか区別がつかなかった。
リバランス処理では、割り当て済みのページの割合が多いプールボリュームからこれが少ないプールボリュームに割り当て済みページを移動するものであるから、移動先のページがどのプールボリュームに属するかを区別する必要がある。そこで、プロセッサは、フリーキューの構造をフリーキュー一つに対して一つのプールボリュームが割り当たった構造に変更する必要がある。
図29はキュー構造が変更される過程を示すブロック図である。プロセッサは、フリーキュー#0に繋がる未使用領域の情報をフリーキュー#0から開放して、ワークキュー2700の#1に繋げる((1)→(2))。フリーキュー#0をプールボリューム#1に対応するように、フリーキューを構築する((3))。プールボリューム#1に属するフリー領域(1−1,1−2)の情報をワークキュー#1から開放してフリーキュー#0に接続する((3))。
図30に、ワークキューの構造を示す。フリーキューにつながる空きページの情報のリンクをフリーキューから解放して、ワークキューに接続することにより、キュー構造の組み換えの最中に、フリーキューにホスト計算機からのI/Oが提供されないようにしている。
次いで、プロセッサは、未使用ページの情報をフリーキュー#1から開放してワークキュー#2に接続する((4))。フリーキュー#1をプールボリューム#2に対応させる。次いで、プールボリューム#1に属する未使用の領域(1−3,1−4)をワークキュー#2から開放してフリーキュー#0に接続する((4)→(5))。
次いで、プロセッサは、未使用ページの情報をフリーキュー#2から開放してワークキュー#3に接続する。フリーキュー#2をプールボリューム#3に対応させる。次いで、ワークキュー#2からプールボリューム#1に属する未使用の領域(1−5,1−6)をワークキュー#3から開放してフリーキュー#0に接続する。
以上の結果、プールボリューム#1にフリーキュー#0が割り当てられ、プールボリューム#1には、全てプールボリューム1の空きページ情報(1−1〜1−6)が接続されることなる。
また、ワークキュー#1の最初に接続された、プールボリューム#2の空きページ情報をワークキュー#1から開放し、プールボリューム#2に接続する。同様な処理を、ワークキュー#2、次いでワークキュー#3について実行する。この結果、プールボリューム#2に割り当てられたフリーキュー#1にプールボリューム#2の空きページ情報が接続される。
さらに、ワークキュー#1の最初に接続されたプールボリューム#3の空きページ情報をワークキュー#1から開放し、プールボリューム#3に接続する。同様な処理を、ワークキュー#2、次いでワークキュー#3について実行する。この結果、プールボリューム#3に割り当てられたフリーキュー#2にプールボリューム#3の空きページ情報が接続される。
図31はフリーキュー構造を変換するためのフローチャートである。プロセッサは、キュー構造を変換するに際して、フリーキューにホストI/Oが要求されるとフリーキューをロックして、キュー構造の変換をI/O処理が終わるまで待機させる。
プロセッサは,I/O対象のフリーキューがロック中か否かをチェックする(2900)。ロック中であることを判定すると、I/O対象となる次のフリーキューがあるか否かを判定し(2902)、これを肯定する場合には、次のフリーキューを参照し(2904)、ステップ2900に戻る。
選択したフリーキューがロック中でない場合には、これをロックしてフリーキューを確保し(2906,2908)、フリーキューから未使用ページをI/Oに割り当てる。この後、フリーキューのロックを解放する(2910)。
ステップ2902において、次のフリーキューがない場合には、ロックビジーをホストI/Oに通知する(2912)。
図32キュー構造の変換を実施するためのフローチャートである。プロセッサはワークキューへ移動させる対象のフリーキューがロック中であるか否かをチェックし、ロック中である場合には、フリーキューに対するI/O処理を終了するまで(3002)、ステップ3000の処理を繰り返す。
ロックがない場合には、対象フリーキューをロックして(3004)、これをワークキューに接続する(3006)。次いで、ワークキューから空きページ情報を他のフリーキューに接続し直す際には、接続先フリーキューがロック中であるか否かをチェックする(3008)。ロック中である場合には接続先フリーキューに対するI/O処理が終了するまで待機する(3010)。
ロックない場合には、接続先フリーキューをロックし(3012)、これにワークキューから開放された空ページ情報(PSCB)を接続し(3014)、対象キュー及び接続先キューのロックを解放する(3016)。
次いで、ワークキューから他のフリーキューへ接続し直す次の接続先キューがあるか否か判定し(3018)、これを肯定するとステップ3008に戻り、これを肯定すると、キュー構造の変換処理を終了する。
次に、図26のS2418のページマイグレーション処理をフリーキューに関連して説明する。この説明のために、図33に示すマイグレーションを前提にする。すなわち、プールボリューム#0のページ#1000のデータが、プールボリューム#3のページ#2000にコピーされ、仮想ボリューム(HDP Vol#0)の前者のページ対するマッピングを後者のページのマッピングに変更される過程を、図34を用いて説明する。
リバランス処理プログラム3509は、移動中キューを確保し、これをフリーキュー#3に接続し、次いで、プールボリューム#3に割り当てられているフリーキュー#3に接続するフリー領域の中から、移動先ページとなる対象領域3302を選択し、このポインタ情報(Pool−Vol#3、#2000)3303を移動中キュー(キュー#0)3300の最後に接続する(S3300)。移動先ページとなる領域を、フリーキューとは別キューで管理するのは、移動先ページとなる領域が仮想ボリュームに割り当てられないようにするためである。
コピージョブからページデータのマイグレーションが正常に終了したとの通知をリバランス処理プログラムが受けると、VVOL DIRにあるページ(プールボリューム#0、ページ#1000)へのマッピング3306の情報である、ポインタ情報3304をクリアして、これを、移動先ページのアドレス(Pool−Vol#3、#2000)へのポインタ情報に変更し(S3302)、移動元ページのアドレスをフリーキュー#のキュー構造の適切な位置に挿入する。さらに、移動先ページを移動中キューから解放する。
図35に示す様に、移動元ページから移動先ページへのデータマイグレーションの過程が、ホスト装置からのI/Oなどによって、これが中断(3400)されると、図36に示す様に、リバランス処理プログラムは、移動中キューを確保し、移動先キューに対して設定されたポインタ情報3304をクリアし、変更前の情報に戻す。
さらに、移動先となるページ3303がもともと存在していたプールボリュームのフリーキュー#3を確保し、このふりキューに対して移動先ページ3303がフリー領域として挿入される位置を検索する。
リバランス処理プログラムは、移動中キュー3300をフリーキュー(Queue#3)に接続し、移動先ページ3303を移動中キュー3300から解放し、さらに、移動先ページをフリーキュー(Queue#3)に接続する。
以上のように、ストレージ装置はフリーキューとは別キューである、移動中キューを利用することにより、ページの再配置を可能にするとともに、ページ再配置に競合するホストI/Oなどの要因がストレージ装置に加わっても、I/Oの処理を優先させることができる。
図37A〜図37Fはマイグレーションの進捗管理画面であって、管理ユーザに提供されるものである。既述の移動ページの計算に結果に基づいてページの移動の進捗を示したものである。図37A〜図37Fは移動前でのページの使用状況をプールボリューム毎に集計した画面である。図37Aはページの移動前、図37Fはページの移動後である。画面の中の数字はページ数を示す。
図38Aはページ移動前のページ数を仮想ボリューム単位で集計した画面である。図38Bはページ移動後のページ数を仮想ボリューム単位で集計した画面である。
したがって、管理ユーザには、管理画面を通して、マイグレーションの進捗状況が提示される。
既述の実施形態では、ページリバランス契機の判定、リバランス実施の可否をストレージ装置が行ったが、これを管理装置が行うようにしもよい。前者の場合は、ストレージ装置が本発明の計算機システムになり、後者の場合は、管理装置とストレージ装置との組み合わせが計算機システムになる。
また、既述の実施形態では、ページマイグレーションの際に移動ページ数を計算することとして説明したが、管理ユーザが移動ページ数を都度入力するようにしてもよい。

Claims (7)

  1. 複数の記憶デバイスと、
    複数の仮想論理領域を有する仮想ボリュームを上位装置に提供し、前記複数の記憶デバイスの記憶領域に基づく複数の論理ボリュームからなるプールを構成し、前記複数の論理ボリュームのそれぞれをプールボリュームとし、当該プールボリュームの記憶領域を前記仮想ボリュームに提供するコントローラと、を備え、
    前記コントローラは、
    前記プールを前記仮想ボリュームに対応づけて管理し、
    前記上位装置から、前記仮想ボリュームに対する書込みリクエストを受け取った場合に、前記プールの前記複数のプールボリュームのうちの何れかのプールボリュームの記憶領域を前記リクエスト先の前記仮想ボリュームに当該記憶領域の割り当て単位で割り当てる際、前記複数のプールボリュームそれぞれの記憶領域の記憶容量比に基づいて、前記プールボリュームの記憶領域を前記仮想ボリュームに割り当てる順序を決定し、
    前記複数のプールボリュームから構成されるプールに新しくプールボリュームが追加される場合、当該プールの前記複数のプールボリュームのそれぞれの記憶容量と前記複数のプールボリュームのそれぞれにおける前記仮想ボリュームに割り当てられた前記記憶領域の割り当て単位の記憶容量とから求められる前記プールボリュームの使用率基づき、前記仮想ボリュームに割り当て済みの少なくとも1つの移動元記憶領域の割り当て単位のデータを、前記プールに追加された追加プールボリュームの移動先記憶領域の割り当て単位に移動し、前記移動元記憶領域の割り当て単位の前記仮想ボリュームへの割り当てを解放するとともに、前記移動先記憶領域の割り当て単位を前記仮想ボリュームに割り当てるように構成された、
    計算機システム。
  2. 前記コントローラは、前記プールを構成する複数のプールボリュームの各々の前記使用率が、前記複数のプールボリューム間で均等になるように、前記複数のプールボリューム間で前記記憶領域の割り当て単位の前記仮想ボリュームへの割り当てを変更するように構成された、請求項1記載の計算機システム。
  3. 前記コントローラは、前記複数のプールボリュームのうち、前記使用率が所定値以上のプールボリュームの第1の記憶領域の割り当て単位の、前記仮想ボリュームに対する割り当てを解放し、前記複数のプールボリュームのうち、前記使用率が所定値以下のプールボリュームの第2の記憶領域の割り当て単位を、前第1の記憶領域の割り当て単位に替えて、前記仮想ボリュームに対して割り当てるように構成された、請求項2記載の計算機システム。
  4. 前記コントローラは、更に、前記複数のプールボリュームに属する第1のプールボリュームと第2のプールボリュームについて、前記第1のプールボリュームから前記仮想ボリュームに割り当てられた第1の記憶領域の割り当て単位の当該割り当てを、前記第2のプールボリュームの第2の記憶領域の割り当て単位の前記仮想ボリュームへの割り当てに変更する割り当て変更処理を実行しようとする際、前記仮想ボリュームに割り当てられた前記第1の記憶領域の割り当て単位に前記上位装置からのアクセスがあった場合には、前記割り当て変更処理を中断するように構成された、請求項1記載の計算機システム。
  5. 前記コントローラは、
    前記複数のプールボリュームの何れかから前記仮想ボリュームに割り当てられた第1の記憶領域の割り当て単位のデータを他のプールボリュームの第2の記憶領域の割り当て単位に移動し、前記第1の記憶領域の割り当て単位の前記仮想ボリュームに対する割り当てを解放して、前記第2の記憶領域の割り当て単位を当該仮想ボリュームに割り当てる際、
    前記データの移動先となる記憶領域の割り当て単位を管理するための第1キューに、前記他のプールボリュームの前記仮想ボリュームに割り当てられていない記憶領域の割り当て単位を前記第2の記憶領域の割り当て単位としてその識別情報を接続して、当該第2の記憶領域の割り当て単位を前記第1の記憶領域の割り当て単位からのデータ移動先として確保し、
    前記第1の記憶領域の割り当て単位のデータを前記第2の記憶領域の割り当て単位に移動した後、当該第2の記憶領域の割り当て単位の識別情報を前記第1キューから解放して前記仮想ボリュームに割り当てることを管理する第2キューに接続し、
    前記第1記憶領域の割り当て単位の前記仮想ボリュームに対する割り当てを解放して、前記第2キューの前記第2の記憶領域の割り当て単位の識別領域に基づいて前記仮想ボリュームに当該第2記憶領域の割り当て単位を割り当てる請求項1記載の計算機システム。
  6. 前記コントローラは、更に、前記記憶デバイスが故障している場合に、前記割り当て変更処理を行わないように構成された、請求項2記載の計算機システム。
  7. 前記コントローラは、更に、前記プールの前記複数のプールボリュームのそれぞれについて、前記仮想ボリュームに割り当てられた前記複数の記憶領域の割り当て単位の現在の記憶容量を表示することにより、前記プールボリュームそれぞれでその記憶容量のうち記憶領域の前記仮想ボリューム対する割り当て単位が当該仮想ボリュームへの割り当てに使用されている割合いを管理画面に提示するように構成された、請求項1記載の計算機システム。
JP2011510144A 2009-04-23 2009-04-23 計算機システム及びその制御方法 Active JP5801189B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/058593 WO2010122679A1 (ja) 2009-04-23 2009-04-23 計算機システム及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2010122679A1 JPWO2010122679A1 (ja) 2012-10-25
JP5801189B2 true JP5801189B2 (ja) 2015-10-28

Family

ID=43010811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011510144A Active JP5801189B2 (ja) 2009-04-23 2009-04-23 計算機システム及びその制御方法

Country Status (5)

Country Link
US (1) US8751767B2 (ja)
EP (1) EP2302498B1 (ja)
JP (1) JP5801189B2 (ja)
CN (1) CN102511030B (ja)
WO (1) WO2010122679A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672150B2 (en) * 2010-05-26 2017-06-06 Hewlett Packard Enterprise Development Lp Migrating write information in a write cache of a storage system
JP5416860B2 (ja) * 2011-03-02 2014-02-12 株式会社日立製作所 計算機システムおよびその制御方法
JP2013122691A (ja) * 2011-12-12 2013-06-20 Fujitsu Ltd 割り当て装置およびストレージ装置
US8868876B2 (en) * 2011-12-28 2014-10-21 International Business Machines Corporation Dedicated large page memory pools
WO2013103003A1 (ja) * 2012-01-05 2013-07-11 株式会社日立製作所 計算機システムの管理装置及び管理方法
WO2014045391A1 (ja) * 2012-09-21 2014-03-27 株式会社 東芝 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
US20150331615A1 (en) * 2012-11-20 2015-11-19 Empire Technology Development Llc Multi-element solid-state storage device management
JP6142599B2 (ja) * 2013-03-18 2017-06-07 富士通株式会社 ストレージシステム、ストレージ装置および制御プログラム
WO2014162550A1 (ja) * 2013-04-04 2014-10-09 株式会社 日立製作所 ストレージシステム
US20150032961A1 (en) * 2013-07-23 2015-01-29 Lexmark International Technologies S.A. System and Methods of Data Migration Between Storage Devices
CN103914264B (zh) * 2014-03-12 2017-09-12 汉柏科技有限公司 一种矩阵硬盘的数据存储方法及系统
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
US10324662B2 (en) 2017-08-28 2019-06-18 International Business Machines Corporation Rebalancing of the first extents of logical volumes among a plurality of ranks
US11216203B2 (en) * 2017-09-27 2022-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and reallocation component for managing reallocation of information from source to target memory sled
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
US11163476B2 (en) * 2019-10-04 2021-11-02 International Business Machines Corporation Dynamic rebalancing of free space between storage pools
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
JP7429214B2 (ja) * 2021-10-07 2024-02-07 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ複製方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01191221A (ja) * 1988-01-26 1989-08-01 Nec Corp 磁気ディスク領域の動的割り当て管理方式
JPH0438540A (ja) * 1990-06-05 1992-02-07 Toshiba Corp メモリ管理方式
JPH06187227A (ja) * 1992-12-16 1994-07-08 Hitachi Ltd 記憶装置とメモリ管理方法
JPH08221326A (ja) * 1995-02-20 1996-08-30 Hitachi Ltd 記憶制御装置及びその制御方法
JP2004228404A (ja) * 2003-01-24 2004-08-12 Fujitsu Ltd 偏波モード分散補償機能を有する光増幅器
JP2006338341A (ja) * 2005-06-02 2006-12-14 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 ストレージ装置及び記憶領域配置方法
JP2009048514A (ja) * 2007-08-22 2009-03-05 Hitachi Ltd 仮想ボリュームのバックアップを行うストレージシステム及び方法
JP2009048497A (ja) * 2007-08-21 2009-03-05 Hitachi Ltd 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6491221A (en) 1987-09-30 1989-04-10 Sharp Kk Connecting circuit for precharging bus
JP3155836B2 (ja) 1992-10-08 2001-04-16 富士通株式会社 ディスクアレイ装置
JP2003005920A (ja) 2001-06-22 2003-01-10 Nec Corp ストレージシステム、データ再配置方法及びデータ再配置プログラム
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
US7162600B2 (en) * 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
JP2003186713A (ja) 2001-12-14 2003-07-04 Ricoh Co Ltd 画像処理装置
JP2003186712A (ja) 2001-12-14 2003-07-04 Ricoh Co Ltd 画像処理装置
JP4418286B2 (ja) * 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム
US7395369B2 (en) 2004-05-18 2008-07-01 Oracle International Corporation Distributing data across multiple storage devices
US20060020691A1 (en) * 2004-07-20 2006-01-26 Hewlett-Packard Development Company, L.P. Load balancing based on front-end utilization
US7296115B2 (en) * 2004-09-17 2007-11-13 Hitachi, Ltd. Method of and system for controlling attributes of a plurality of storage devices
JP2006293850A (ja) 2005-04-13 2006-10-26 Hitachi Ltd リモートコピーシステムおよびリモートコピー方法
JP2007072519A (ja) 2005-09-02 2007-03-22 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法
JP2007079885A (ja) 2005-09-14 2007-03-29 Hitachi Ltd データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ
US7404036B2 (en) 2005-11-23 2008-07-22 International Business Machines Corporation Rebalancing of striped disk data
CN100428131C (zh) * 2006-10-13 2008-10-22 清华大学 海量存储系统中的资源分配方法
JP2009037304A (ja) 2007-07-31 2009-02-19 Hitachi Ltd Raidレベルを変更する機能を有したストレージシステム
JP4961319B2 (ja) * 2007-10-11 2012-06-27 株式会社日立製作所 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
JP4808747B2 (ja) 2008-06-03 2011-11-02 株式会社日立製作所 ストレージサブシステム

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01191221A (ja) * 1988-01-26 1989-08-01 Nec Corp 磁気ディスク領域の動的割り当て管理方式
JPH0438540A (ja) * 1990-06-05 1992-02-07 Toshiba Corp メモリ管理方式
JPH06187227A (ja) * 1992-12-16 1994-07-08 Hitachi Ltd 記憶装置とメモリ管理方法
JPH08221326A (ja) * 1995-02-20 1996-08-30 Hitachi Ltd 記憶制御装置及びその制御方法
JP2004228404A (ja) * 2003-01-24 2004-08-12 Fujitsu Ltd 偏波モード分散補償機能を有する光増幅器
JP2006338341A (ja) * 2005-06-02 2006-12-14 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
JPWO2010122679A1 (ja) 2012-10-25
US8751767B2 (en) 2014-06-10
CN102511030A (zh) 2012-06-20
EP2302498A4 (en) 2011-08-17
EP2302498B1 (en) 2014-11-12
US20110185139A1 (en) 2011-07-28
CN102511030B (zh) 2015-05-20
WO2010122679A1 (ja) 2010-10-28
EP2302498A1 (en) 2011-03-30

Similar Documents

Publication Publication Date Title
JP5801189B2 (ja) 計算機システム及びその制御方法
JP5781925B2 (ja) 計算機システム及びその制御方法
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP5595530B2 (ja) データ移行システム及びデータ移行方法
US8943270B2 (en) Storage system, storage control method and storage control program
JP5363595B2 (ja) 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
JP5668151B2 (ja) 計算機システムの管理装置及び管理方法
US20140108759A1 (en) Storage apparatus and data management method
WO2013160958A1 (en) Information storage system and method of controlling information storage system
WO2013046331A1 (ja) 計算機システム、及び情報管理方法
WO2014155555A1 (ja) 管理システム及び管理プログラム
WO2012081074A1 (ja) 計算機システム、及びその管理方法、並びに、プログラム
US9760292B2 (en) Storage system and storage control method
JP5396339B2 (ja) リソース制御方法及びリソース制御システム
JP2014514622A (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
EP3889785B1 (en) Stripe reconstruction method in storage system and striping server
JP5183363B2 (ja) 論理ボリュームのデータ移動方法とストレージシステムおよび管理計算機
JP5597266B2 (ja) ストレージシステム
JP6035363B2 (ja) 管理計算機、計算機システム、及び管理方法
JP5987104B2 (ja) 計算機システム、ストレージシステムの管理システム及び管理方法
JP5362751B2 (ja) 計算機システム、管理計算機およびストレージ管理方法
JP7113698B2 (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 Written amendment

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 Written amendment

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 Written amendment

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150826

R150 Certificate of patent or registration of utility model

Ref document number: 5801189

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150