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

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

Info

Publication number
WO2010122674A1
WO2010122674A1 PCT/JP2009/058533 JP2009058533W WO2010122674A1 WO 2010122674 A1 WO2010122674 A1 WO 2010122674A1 JP 2009058533 W JP2009058533 W JP 2009058533W WO 2010122674 A1 WO2010122674 A1 WO 2010122674A1
Authority
WO
WIPO (PCT)
Prior art keywords
pool
storage
area
volume
page
Prior art date
Application number
PCT/JP2009/058533
Other languages
English (en)
French (fr)
Inventor
里山愛
江口賢哲
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US12/594,648 priority Critical patent/US8516215B2/en
Priority to JP2011510141A priority patent/JP5781925B2/ja
Priority to PCT/JP2009/058533 priority patent/WO2010122674A1/ja
Publication of WO2010122674A1 publication Critical patent/WO2010122674A1/ja
Priority to US13/964,185 priority patent/US8769235B2/en
Priority to US14/291,031 priority patent/US9201607B2/en

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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the storage apparatus sequentially allocates storage areas to the virtual volume in accordance with the host apparatus performing write access to the virtual volume. Therefore, this technique is effective in that the storage resources can be effectively used as compared with the method of allocating a large capacity storage area to the logical volume from the beginning.
  • This technique is described in Japanese Patent Application No. 2003-15915 and Japanese Patent Application Laid-Open No. 2006-338341.
  • the means for providing the storage area to the virtual volume is configured by grouping a plurality of logical volumes each assigned with an actual storage area into a logical group called a pool. Each of the plurality of logical volumes is called a pool volume. When the virtual volume has a write access from the host device, a storage area corresponding to the pool volume is allocated to the access destination of the virtual volume.
  • FIG. 10A is a block diagram showing a mapping relationship between target devices, LDEVs, and PDEVs in the system shown in FIG. 1, and FIG. 10B is a block diagram of the system shown in FIG.
  • FIG. 11 is a block diagram showing a state in which pages are allocated equally between one virtual volume and a plurality of pool volumes.
  • FIG. 12 is a block diagram of a virtual volume and a pool volume showing a process of page rebalancing among a plurality of pool volumes.
  • FIG. 13 is a block diagram of a virtual volume and a pool volume showing a state where rebalancing is performed in consideration of the capacity ratio of the pool volume among a plurality of pool volumes.
  • FIG. 11 is a block diagram showing a state in which pages are allocated equally between one virtual volume and a plurality of pool volumes.
  • FIG. 12 is a block diagram of a virtual volume and a pool volume showing a process of page rebalancing among a plurality of pool volumes.
  • FIG. 13 is
  • the controller 31 includes a host adapter 310, a network adapter 320, a nonvolatile memory 330, a power supply control unit 340, a memory 350, a processor 360, a storage adapter 370, and a shared memory adapter 380.
  • the host adapter 310 transmits / receives data to / from the host computer 10 via the storage network 50.
  • the network adapter 320 transmits / receives data to / from the host computer 10 or the management apparatus 20 via the management network 40.
  • the non-volatile memory 330 is composed of a hard disk or a flash memory, and stores programs operating on the controller 31, configuration information, and the like.
  • the power control unit 340 controls the power supplied from the power source 36.

Abstract

仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供する。本発明の計算機システムは、上位装置からのアクセスに対して、仮想論理領域に記憶領域を動的に割り当てる運用を実行している過程で、複数の論理領域間で記憶容量のバランスが崩れる契機を検出し、その後記憶領域を複数の論理領域間で移動させて、記憶容量のバランスを維持するようにしたことを特徴とするものである。

Description

計算機システム及びその制御方法
 本発明は、計算機システムに係わり、特に、ホスト装置に対して動的に記憶容量を割り当てる計算機システムに関するものである。
 従来から、ホスト装置に対して大規模なデータストレージサービスを提供する計算機システムが存在する。このシステムは、ホスト装置と、ホスト装置が接続するストレージ装置と、ストレージ装置の管理装置と、を備えたものとして知られている。
 ストレージ装置は、複数のハードディスクをRAID(Redundant Array of Independent/Inexpensive Disks)方式で管理する。そして、多数のハードディスクが有する物理的な記憶領域を論理化し、これを論理ボリュームとしてホスト装置に提供する。ホスト装置は論理ボリュームにアクセスしてデータのリード・ライトを要求する。
 この種の論理化技術の一つにシン・プロビジョニングと称されるものがある。ストレージ装置は、物理的な記憶領域を有さない仮想的なボリュームをホスト装置に対して設定する。ホスト装置が仮想的なボリュームにライトアクセスにすることに合わせて、ストレージ装置は、仮想ボリュームに対して記憶領域を順次割り当てていく。
 したがって、この技術は、論理ボリュームに対して当初から大容量な記憶領域を割り当てる方式に比べて、ストレージ資源を有効に活用できる点で効果的である。この技術は、特願2003−15915号公報、及び、特開2006−338341号公報に記載されている。
 仮想ボリュームに記憶領域を提供するための手段は、それぞれ実の記憶領域が割り当てられた複数の論理ボリュームをプールと呼ばれる論理グループに纏めたものから構成される。複数の論理ボリュームはそれぞれプールボリュームと呼ばれる。仮想ボリュームにホスト装置からライトアクセスがあると、仮想ボリュームのアクセス先に、プールボリュームの対応領域の記憶領域を割り当てる。
 ストレージ装置は、仮想ボリュームに対するホスト装置からのアクセス領域を、プールボリュームに記憶容量が割り当てられた領域に対応させることにより、ホスト装置からのライトデータを保存することができる。
 ストレージ装置は、複数のプールボリュームへの記憶領域の割り当てが均等になるようにするが、長い時間を経過してゆく過程で、この均等が崩れてくる問題がある。そこで、特開2008−234158号は、複数のプールボリューム間で記憶領域を移動させて、記憶領域の容量が複数のプールボリュームについて均等になることを開示している。
 なお、米国特許第6857059号公報には、仮想ボリュームの未割当て領域へリードアクセスが来た場合、ストレージ装置は、プログラムによって全部が“0”からなる固定パターンを作成してホスト装置へ応答すること、仮想ボリュームの未割当て領域へライトが来た場合、記憶領域を割り当てることが記載されている。
特願2003−015915号公報 特開2006−338341号公報 特開2008−234158号公報 米国特許第6857059号公報
 特開2008−234158号は、外部操作によって、記憶領域を移動させることを開示しているものの、複数のプールボリュームについて、記憶容量の均等化が迅速、かつ確実に実行されることまでを提案するものではなかった。例えば、プールボリュームから固定データを破棄すると、それだけで、複数のプールボリュームについての記憶容量の均等化が損なわれることにもなってしまう。
 そこで、この発明は、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することを目的とするものである。
 さらに、本発明は、固定パターンのデータを削除することのように、実論理領域のデータ量に変化が避けられない場合にも、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が維持される計算機システムを提供することを目的とするものである。
 この目的を達成するために、本発明は、上位装置からのアクセスに対して、仮想論理領域に記憶領域を動的に割り当てる運用を実行している過程で、複数の論理領域間で記憶容量のバランスが崩れる契機を検出し、その後記憶領域を複数の論理領域間で移動させて、記憶容量のバランスを維持するようにした計算機システムであることを特徴とするものである。
 本発明は、さらに、論理領域から固定パターンデータの削除を行いながら、複数の記憶領域間で記憶容量のバランスを図るようにした計算機システムであることを特徴とするものである。
 本発明によれば、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することができる。
 さらに、本発明によれば、固定パターンのデータを削除することのように、実論理領域のデータ量に変化が避けられない場合にも、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して記憶容量の均等化が維持される計算機システムを提供することができる。
 図1は、本発明に係わる計算機システムの第1の例を示すハードウエアブロック図である。
 図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は、仮想ボリュームの属性に、ホスト装置からのアクセスに対する応答の高速性を示す「性能」を追加したことを説明する仮想ボリュームとプールボリュームとのブロック図である。
 次に本発明の実施形態について説明する。図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と、を有している。
 割り当て処理プログラムがホスト計算機から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 (13)

  1. 記憶領域を有する記憶デバイスと、
     上位装置からのアクセスが許容され、仮想論理領域と、
     前記記憶領域を有する複数の実論理領域と、
     前記仮想領域に対する前記実論理記憶領域からの前記記憶領域の割り当てを制御するコントローラと、を備え、
     前記コントローラは、
     前記上位装置から前記仮想論理領域にアクセスがあることに合わせて、前記仮想論理領域に、前記複数の実論理領域から、基準となる容量を持った記憶単位を順次割り当てる第1の処理と、
     前記複数の実論理領域間で、前記仮想領域に割り当てられる記憶容量に不均衡が発生する状況を検出する第2処理と、
     前記検出に応じて、前記複数の実論理領域間で、前記記憶容量が均等になるように、前記記憶単位の割り当てを前記複数の実論理領域間で変更する第3の処理と、を実行する計算機システム。
  2. 前記コントローラは、
     複数の実論理領域をグループとして前記仮想領域に割り当て、前記グループに新たな前記実論理領域が追加されることを前記不均衡が発生する状況と判定する第4の処理と、
     前記複数の実論理領域の容量比を勘案し、前記複数の実論理領域の間で、前記記憶単位の割り当て比が均等になるように、前記記憶単位の割り当てを変更する第5の処理と、
     前記記憶単位の割り当ての際、当該記憶単位が割り当てられている、前記仮想ボリュームの領域に、前記上位装置からのアクセスがあった場合、前記複数の実記憶領域間で前記記憶単位の割り当てを中断する第6の処理と、
     前記複数の実論理領域間で前記仮想ボリュームに対する割り当てが変更される前記記憶単位が固定パターンデータを格納するか否かを判定し、前記固定データパターンを格納する記憶単位を未割り当ての属性に変更し、前記固定パターンデータを格納する専用領域を前記仮想ボリュームに割り当てる第7の処理と、を実行する、請求項1記載の計算機システム。
  3. 前記コントローラは、複数の実論理領域をグループとして前記仮想領域に割り当て、前記グループに新たな前記実論理領域が追加されることを前記不均衡が発生する状況と判定する、請求項1記載の計算機システム。
  4. 前記コントローラは、前記複数の実論理領域の容量比を勘案し、前記複数の実論理領域の間で、前記記憶単位の割り当て比が均等になるように、前記記憶単位の割り当てを変更する請求項1記載の計算機システム。
  5. 前記コントローラは、前記複数の実論理記憶領域のうち、前記記憶単位の割り当て比が多い第1の実記憶領域に対して、前記記憶単位の前記仮想ボリュームに対する割り当てを解放し、その割り当てを前記第2の実記憶領域の前記記憶単位に設定する、請求項2記載の計算機システム。
  6. 前記コントローラは、 前記第1の実領域の前記仮想ボリュームに対する割り当てが解放された記憶単位の属性を未割り当てに変更する、請求項5記載の計算機システム。
  7. 前記コントローラは、複数の実論理領域をグループとして前記仮想領域に割り当て、前記グループから前記実論理領域の少なくとも一つが削除されることを前記不均衡が発生する状況と判定する、請求項1記載の計算機システム。
  8. 前記コントローラは、前記削除された実論理領域から、前記グループから削除されることなく残った他の実論路領域に、前記削除された記憶領域の記憶単位の割り当てを変更し、前記残った複数の実論理領域間で前記記憶単位の割り当てを変更する、請求項7記載の計算機システム。
  9. 前記コントローラは、前記記憶単位の割り当ての際、当該記憶単位が割り当てられている、前記仮想ボリュームの領域に、前記上位装置からのアクセスがあった場合、前記複数の実記憶領域間で前記記憶単位の割り当てを中断する、請求項1記載の計算機システム。
  10. 前記コントローラは、前記複数の実論理領域間で前記仮想ボリュームに対する割り当てが変更される前記記憶単位が固定パターンデータを格納するか否かを判定し、前記固定データパターンを格納する記憶単位を未割り当ての属性に変更し、前記固定パターンデータを格納する専用領域を前記仮想ボリュームに割り当てる、請求項1記載の計算機システム。
  11. 前記仮想ボリュームは、直接前記記憶デバイスの記憶領域が割り当てられていない、請求項1記載の計算機システム。
  12. 前記固定パターンデータは、全0データからなるものである、請求項10記載の計算機システム。
  13. 上位装置からのアクセスに対して、仮想論理領域に記憶領域を動的に割り当てる運用を実行している過程で、
     複数の論理領域間で記憶容量のバランスが崩れる契機を検出する処理と、
     その後記憶領域を複数の論理領域間で移動させて、記憶容量のバランスを維持する処理と、
     を備える計算機システムの制御方法。
PCT/JP2009/058533 2009-04-23 2009-04-23 計算機システム及びその制御方法 WO2010122674A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US12/594,648 US8516215B2 (en) 2009-04-23 2009-04-23 Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same
JP2011510141A JP5781925B2 (ja) 2009-04-23 2009-04-23 計算機システム及びその制御方法
PCT/JP2009/058533 WO2010122674A1 (ja) 2009-04-23 2009-04-23 計算機システム及びその制御方法
US13/964,185 US8769235B2 (en) 2009-04-23 2013-08-12 Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same
US14/291,031 US9201607B2 (en) 2009-04-23 2014-05-30 Computer system and method for balancing usage rate of pool volumes

Applications Claiming Priority (1)

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

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US12/594,648 A-371-Of-International US8516215B2 (en) 2009-04-23 2009-04-23 Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same
US13/964,185 Continuation US8769235B2 (en) 2009-04-23 2013-08-12 Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same

Publications (1)

Publication Number Publication Date
WO2010122674A1 true WO2010122674A1 (ja) 2010-10-28

Family

ID=43010808

Family Applications (1)

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

Country Status (3)

Country Link
US (3) US8516215B2 (ja)
JP (1) JP5781925B2 (ja)
WO (1) WO2010122674A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090714A (ja) * 2004-08-30 2011-05-06 Hitachi Ltd ストレージシステム及びデータ再配置制御装置
WO2012090247A1 (en) * 2010-12-28 2012-07-05 Hitachi, Ltd. Storage system, management method of the storage system, and program
WO2014002213A1 (ja) * 2012-06-27 2014-01-03 株式会社日立製作所 管理システム及び管理方法
JP2014179121A (ja) * 2014-05-08 2014-09-25 Hitachi Ltd ストレージシステム及び記憶領域の割当方法
WO2014199493A1 (ja) * 2013-06-13 2014-12-18 株式会社日立製作所 ストレージシステム及びストレージ制御方法
WO2018109816A1 (ja) * 2016-12-13 2018-06-21 株式会社日立製作所 データリバランスを制御するシステムおよび方法

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
JP6094112B2 (ja) * 2012-09-20 2017-03-15 富士通株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
WO2014049718A1 (ja) 2012-09-26 2014-04-03 株式会社日立製作所 管理装置及び管理方法
WO2014076743A1 (en) * 2012-11-19 2014-05-22 Hitachi, Ltd. Storage system
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 富士通株式会社 ストレージシステム、ストレージ装置および制御プログラム
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
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 上海川源信息科技有限公司 数据储存系统及其数据储存方法
US11029863B2 (en) * 2017-08-31 2021-06-08 Vmware, Inc. Using non-volatile random access memory as volatile random access memory
WO2019066689A1 (en) * 2017-09-27 2019-04-04 Telefonaktiebolaget Lm Ericsson (Publ) METHOD AND RE-ASSEMBLY COMPONENT FOR MANAGING THE RESETTING OF INFORMATION FROM TARGET SOURCE MEMORY CIRCUITS
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
JP7054001B2 (ja) * 2018-06-29 2022-04-13 富士通株式会社 情報処理システム、管理装置および制御方法
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
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
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules

Citations (9)

* 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 磁気ディスク領域の動的割り当て管理方式
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 ストレージシステム、データ再配置方法及びデータ再配置プログラム
JP2003186713A (ja) * 2001-12-14 2003-07-04 Ricoh Co Ltd 画像処理装置
JP2003186712A (ja) * 2001-12-14 2003-07-04 Ricoh Co Ltd 画像処理装置
JP2007079885A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ
JP2007179156A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd 記憶制御装置及び方法
JP2008165620A (ja) * 2006-12-28 2008-07-17 Hitachi Ltd ストレージ装置構成管理方法、管理計算機及び計算機システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
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
JP4699808B2 (ja) 2005-06-02 2011-06-15 株式会社日立製作所 ストレージシステム及び構成変更方法
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
JP2008015768A (ja) 2006-07-05 2008-01-24 Hitachi Ltd 記憶システム並びにこれを用いたデータの管理方法
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
JP5379956B2 (ja) * 2007-03-19 2013-12-25 株式会社日立製作所 ストレージ装置及び記憶領域配置方法
US8087027B2 (en) * 2007-03-29 2011-12-27 International Business Machines Corporation Computer program product and system for deferring the deletion of control blocks
JP4990066B2 (ja) 2007-08-21 2012-08-01 株式会社日立製作所 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP5142629B2 (ja) 2007-08-22 2013-02-13 株式会社日立製作所 仮想ボリュームのバックアップを行うストレージシステム及び方法
JP2009093316A (ja) * 2007-10-05 2009-04-30 Hitachi Ltd ストレージシステム及び仮想化方法
JP5234342B2 (ja) * 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法

Patent Citations (9)

* 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 磁気ディスク領域の動的割り当て管理方式
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 ストレージシステム、データ再配置方法及びデータ再配置プログラム
JP2003186713A (ja) * 2001-12-14 2003-07-04 Ricoh Co Ltd 画像処理装置
JP2003186712A (ja) * 2001-12-14 2003-07-04 Ricoh Co Ltd 画像処理装置
JP2007079885A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ
JP2007179156A (ja) * 2005-12-27 2007-07-12 Hitachi Ltd 記憶制御装置及び方法
JP2008165620A (ja) * 2006-12-28 2008-07-17 Hitachi Ltd ストレージ装置構成管理方法、管理計算機及び計算機システム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090714A (ja) * 2004-08-30 2011-05-06 Hitachi Ltd ストレージシステム及びデータ再配置制御装置
JP2013033515A (ja) * 2004-08-30 2013-02-14 Hitachi Ltd ストレージシステム及びデータ再配置制御装置
WO2012090247A1 (en) * 2010-12-28 2012-07-05 Hitachi, Ltd. Storage system, management method of the storage system, and program
WO2014002213A1 (ja) * 2012-06-27 2014-01-03 株式会社日立製作所 管理システム及び管理方法
US9201779B2 (en) 2012-06-27 2015-12-01 Hitachi, Ltd. Management system and management method
WO2014199493A1 (ja) * 2013-06-13 2014-12-18 株式会社日立製作所 ストレージシステム及びストレージ制御方法
JP6017032B2 (ja) * 2013-06-13 2016-10-26 株式会社日立製作所 ストレージシステム及びストレージ制御方法
US9760292B2 (en) 2013-06-13 2017-09-12 Hitachi, Ltd. Storage system and storage control method
JP2014179121A (ja) * 2014-05-08 2014-09-25 Hitachi Ltd ストレージシステム及び記憶領域の割当方法
WO2018109816A1 (ja) * 2016-12-13 2018-06-21 株式会社日立製作所 データリバランスを制御するシステムおよび方法
JPWO2018109816A1 (ja) * 2016-12-13 2019-06-24 株式会社日立製作所 データリバランスを制御するシステムおよび方法
US11029850B2 (en) 2016-12-13 2021-06-08 Hitachi, Ltd. System of controlling data rebalance and its method

Also Published As

Publication number Publication date
US9201607B2 (en) 2015-12-01
US8516215B2 (en) 2013-08-20
JP5781925B2 (ja) 2015-09-24
US8769235B2 (en) 2014-07-01
US20130332692A1 (en) 2013-12-12
JPWO2010122674A1 (ja) 2012-10-25
US20140281339A1 (en) 2014-09-18
US20110060885A1 (en) 2011-03-10

Similar Documents

Publication Publication Date Title
JP5781925B2 (ja) 計算機システム及びその制御方法
JP5801189B2 (ja) 計算機システム及びその制御方法
US9448733B2 (en) Data management method in storage pool and virtual volume in DKC
US8984221B2 (en) Method for assigning storage area and computer system using the same
US8850152B2 (en) Method of data migration and information storage system
US10853139B2 (en) Dynamic workload management based on predictive modeling and recommendation engine for storage systems
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
EP2399190B1 (en) Storage system and method for operating storage system
US8694727B2 (en) First storage control apparatus and storage system management method
US20110167236A1 (en) Storage system providing virtual volumes
US20070288712A1 (en) Storage apparatus and storage apparatus control method
JP2007114874A (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
WWE Wipo information: entry into national phase

Ref document number: 12594648

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09843671

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011510141

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09843671

Country of ref document: EP

Kind code of ref document: A1