JP2009282800A - ストレージ装置及びその制御方法 - Google Patents
ストレージ装置及びその制御方法 Download PDFInfo
- Publication number
- JP2009282800A JP2009282800A JP2008134939A JP2008134939A JP2009282800A JP 2009282800 A JP2009282800 A JP 2009282800A JP 2008134939 A JP2008134939 A JP 2008134939A JP 2008134939 A JP2008134939 A JP 2008134939A JP 2009282800 A JP2009282800 A JP 2009282800A
- Authority
- JP
- Japan
- Prior art keywords
- virtual volume
- volume
- chunk
- storage
- allocated
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2087—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
【課題】重要なデータの保全性を向上させ得るストレージ装置及びその制御方法を提案する。
【解決手段】仮想的なボリュームである仮想ボリュームをホスト装置に提示し、仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置及びその制御方法において、仮想ボリュームにそれぞれ設定された重要度を管理し、仮想ボリュームに記憶領域を動的に割り当て、仮想ボリュームに記憶領域を動的に割り当てる際には、重要度に基づいて、重要度が低い仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の仮想ボリュームに対しては、1つの記憶装置グループが提供する記憶領域を割り当てるようにした。
【選択図】図13
【解決手段】仮想的なボリュームである仮想ボリュームをホスト装置に提示し、仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置及びその制御方法において、仮想ボリュームにそれぞれ設定された重要度を管理し、仮想ボリュームに記憶領域を動的に割り当て、仮想ボリュームに記憶領域を動的に割り当てる際には、重要度に基づいて、重要度が低い仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の仮想ボリュームに対しては、1つの記憶装置グループが提供する記憶領域を割り当てるようにした。
【選択図】図13
Description
本発明は、ストレージ装置及びその制御方法に関し、例えばAOU(Allocation On Use)機能が搭載されたストレージ装置に適用して好適なものである。
近年、SAN(Storage Area Network)を利用して、1又は複数のホスト計算機に対して複数台のストレージ装置を接続するSAN環境が実用化されている。さらに、該SAN環境下において、複数台のストレージ装置を仮想的に一元管理することで、1又は複数のホスト計算機が利用可能な複数台のストレージをあたかも1つの共用ストレージ装置として管理する技術がある。
特許文献1には、複数のストレージ装置が接続されたSAN環境において、各ストレージ装置が供する記憶領域に付与された性能や信頼性の情報及び位置情報に基づき、ユーザが設定するデータの用途に応じて、適切な記憶領域をホスト計算機に割当てるストレージ領域割当方法が開示されている。
また特許文献2には、データを読み書きするためのボリュームとして仮想的なボリューム(以下、これを仮想ボリュームと呼ぶ)をホスト装置に提示し、当該仮想ボリュームの使用状況に応じて実際にデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるAOUと呼ばれる仮想化技術が開示されている。
ところで、従来のAOU技術では、記憶装置内の一つのパリティグループに障害が発生すると、該パリティグループ内の記憶領域に格納されたデータが失われる。
この場合において、従来のAOU技術では、1つの仮想ボリュームに対して複数のパリティグループが提供する記憶領域が割り当てられるため、一つのパリティグループにおける障害は、複数の仮想ボリュームにおいてデータ欠損を惹起する。即ち“歯抜け”状態の仮想ボリュームが多数発生することになる。
本発明は以上の点を考慮してなされたもので、重要なデータの保全性を向上させ得るストレージ装置及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置において、前記仮想ボリュームにそれぞれ設定された重要度を管理する管理部と、前記仮想ボリュームに記憶領域を動的に割り当てる記憶領域割当て部とを備え、前記記憶領域割当て部は、前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域を割り当てることを特徴とする。
この結果、本発明によるストレージ装置では、重要度が低い仮想ボリューム以外の仮想ボリュームが記憶装置グループの障害発生の影響を受け難く、これら要度が低い仮想ボリューム以外の仮想ボリュームに格納されたデータが損失するという事態の発生確率を低減させることができる。
また本発明においては、仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置の制御方法において、前記仮想ボリュームにそれぞれ設定された重要度を管理する第1のステップと、前記仮想ボリュームに記憶領域を動的に割り当てる第2のステップとを備え、前記第2のステップでは、前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域を割り当てることを特徴とする。
この結果、本発明によるストレージ装置の制御方法によれば、重要度が低い仮想ボリューム以外の仮想ボリュームが記憶装置グループの障害発生の影響を受け難く、これら要度が低い仮想ボリューム以外の仮想ボリュームに格納された重要なデータが損失するという事態の発生確率を低減させることができる。
本発明によれば、要度が低い仮想ボリューム以外の仮想ボリュームに格納されたデータが損失するという事態の発生確率を低減させることができるため、データの保全性を向上させ得るストレージ装置及びその制御方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態による計算機システムの構成
図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、ホスト計算機2が例えばSAN(Storage Area Network)等からなるネットワーク3を介してストレージ装置4に接続されると共に、当該ストレージ装置4に管理計算機5が接続されることにより構成されている。
(1−1)本実施の形態による計算機システムの構成
図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、ホスト計算機2が例えばSAN(Storage Area Network)等からなるネットワーク3を介してストレージ装置4に接続されると共に、当該ストレージ装置4に管理計算機5が接続されることにより構成されている。
ホスト計算機2は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータやワークステーション、メインフレームなどから構成される。
ストレージ装置4は、複数のハードディスク装置(HDD:Hard Disk Drive)から構成される記憶部10と、記憶部10に対するデータの入出力を制御するコントローラ11とから構成される。
記憶部の各ハードディスク装置は、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスク、又はSATA(Serial AT Attachment)ディスク等の安価なディスクから構成される。これらハードディスク装置が提供する記憶領域に対して1又は複数の論理的な記憶領域であるボリュームが対応付けられる。各ボリュームには、それぞれ固有の識別子(ボリュームIDと呼ぶ)が付与され、このボリュームIDを用いて各ボリュームが管理される。
なお、ストレージ装置4内に作成されるボリュームの属性としては、実ボリュームRVOL、仮想ボリュームVVOL及びプールボリュームPLVOLがある。実ボリュームRVOLは、実体を有するボリュームであり、予め容量分の記憶領域が割り当てられる。また仮想ボリュームVVOLは、作成当初は実体を有さない仮想的なボリュームであり、使用状況に応じて記憶領域が動的に割り当てられる。さらにプールボリュームPLVOLは、仮想ボリュームVVOLに割り当てる記憶領域の集合体である。
コントローラ11は、CPU12及びメモリ13等の情報処理資源と、ボリュームに読み書きするデータを一時的に記憶するキャッシュメモリとなどを備えて構成される。コントローラ11は、ホスト計算機2からのアクセス要求(リード要求及びライト要求)に応じて、指定されたボリュームに対するデータの読み書きを制御する。
管理計算機5は、例えばCPU20及びメモリ21などの情報処理資源のほか、キーボードやマウスなどからなる入力装置22と、CRT(Cathode-Ray Tube)又は液晶パネルなどからなる出力装置23とを備えて構成される。CPU20は、管理計算機5全体の動作制御を司るプロセッサであり、メモリ21に格納された各種制御プログラムに基づいて必要な処理を実行する。メモリ21は、主として制御プログラムや制御パラメータを記憶するために用いられる。後述の仮想ボリューム作成用入出力プログラム24もこのメモリ21に格納される。
(1−2)チャンク割当て処理
(1−2−1)計算機システムにおける記憶領域の管理方式
次に、計算機システム1におけるストレージ装置4内の記憶領域の管理方式を、図2を参照して説明する。
(1−2−1)計算機システムにおける記憶領域の管理方式
次に、計算機システム1におけるストレージ装置4内の記憶領域の管理方式を、図2を参照して説明する。
図2に示すように、ホスト計算機2は、そのストレージ装置4が提供する記憶領域を論理ユニットLUと呼ばれる論理的な記憶領域単位で認識している。そしてホスト計算機2は、所望する論理ユニットLUにアクセスする際には、その論理ユニットLUと対応付けられたI/OポートのポートID(以下、これをPID(Port Identification)と呼ぶ)と、その論理ユニットLUの識別子(以下、これをLUN(Logical Unit Number)と、その論理ユニットLU内のアクセス先のアドレスとを指定したアクセス要求をストレージ装置4に送信する。
一方、ストレージ装置4では、記憶部10内のハードディスク装置30を、複数(例えば4台)台を1つのパリティグループ31として、このパリティグループ単位でRAID(Redundant Array of Inexpensive Disks)方式で運用している。システム管理者は、このパリティグループ31ごとに所望のRAIDレベル(「RAID0」、「RAID1」、「RAID1+0」、「RAID2」〜「RAID6」)を設定することができる。
そしてストレージ装置4内に定義されたパリティグループ31のうち、実ボリューム用のパリティグループ31が提供する記憶領域上に実ボリュームRVOLが定義され、この実ボリュームRVOLが、上述の論理ユニットLUと対応付けられる。
かくしてストレージ装置4は、実ボリュームRVOLに対応付けられた論理ユニットLUに対するアクセス要求を受信した場合には、そのアクセス要求に基づいて、対応する実ボリュームRVOL内の対応するアドレス位置(正確には、対応するパリティグループ31が提供する記憶領域上の対応するアドレス位置)にデータを読み書きする。
またストレージ装置4内に定義されたパリティグループ31のうち、仮想ボリューム用の各パリティグループ31が提供する記憶領域は、それぞれ1つのプールボリュームPLVOLとして管理される。またストレージ装置4では、1又は複数のプールボリュームPLVOLをまとめて1つのプール32として管理している。
ここで、図3に示すように、プールボリュームPLVOL内の記憶領域はチャンク33と呼ばれる固定長の小領域に分割されて管理される。また仮想ボリュームVVOL内の記憶領域は、かかるチャンク33と同じ容量を有するデータブロック34と呼ばれる管理単位に分割して管理される。このデータブロック34は、仮想ボリュームVVOLにデータを読み書きする際の最小単位である。これらデータブロック34には、それぞれLBA(Logical Block Address)と呼ばれる識別子が付与される。
そしてストレージ装置4においては、仮想ボリュームVVOLに対応付けられた論理ユニットLUに対するアクセス要求を受信した場合、そのアクセス要求を仮想ボリュームVVOLに対するアクセス要求に変換し、変換後のアクセス要求に基づいて、対応する仮想ボリュームVVOL内の対応するデータブロック34に割り当てられたチャンク33にデータを読み書きする。
この場合において、ストレージ装置4は、かかるアクセス要求が、チャンク33が未割当ての仮想ボリュームVVOL内のデータブロック34に対するライト要求であった場合には、そのデータブロック34に対していずれかのパリティグループ31により構成されるプールボリュームPLVOL内のチャンク33を割り当て、かかるデータブロック34に対するライト対象のデータをこのチャンク33に書き込む。
このようにして、このストレージ装置4では、仮想ボリュームVVOLに対して記憶領域(チャンク33)を動的に割り当てることにより、ストレージ装置4に搭載されたハードディスク装置30が提供する記憶領域を有効に活用することができるようになされている。
(1−2−2)本実施の形態におけるチャンク割当て機能
次に、ストレージ装置4に搭載された本実施の形態によるチャンク割当て機能について説明する。
次に、ストレージ装置4に搭載された本実施の形態によるチャンク割当て機能について説明する。
本実施の形態による計算機システム1は、システム管理者が各仮想ボリュームVVOLに対して重要度をそれぞれ設定することができ、ストレージ装置4が仮想ボリュームVVOLにチャンク33を割り当てる際に、その仮想ボリュームVVOLの重要度に応じたルールでチャンク33を割り当てることを特徴の1つとしている。
計算機システム1は、ストレージ装置4が、各パリティグループ31が提供する記憶領域(チャンク33)の品質レベルを管理し、重要度が相対的に高い仮想ボリュームVVOLに対しては、品質レベルが相対的に高いパリティグループ31のチャンク33を割り当て、重要度が相対的に低い仮想ボリュームVVOLに対しては、品質レベルが相対的に低いパリティグループ31のチャンク33を割り当てることをもう1つの特徴としている。
ストレージ装置4が以上のような処理を実行するための手段として、ストレージ装置4のメモリ13には、図4に示すように、仮想ボリューム制御プログラム40、チャンク割当てプログラム41、重要度高ボリューム割当てプログラム42、重要度中ボリューム割当てプログラム43、重要度低ボリューム割当てプログラム44、仮想ボリューム移行プログラム45、プール残容量監視プログラム46、チャンク再配置プログラム47及び障害ボリューム復旧プログラム48を含むマイクロプログラムと、実ボリューム管理テーブル50、仮想ボリューム管理テーブル51、割当てチャンク管理テーブル52、プール管理テーブル53、パリティグループ管理テーブル54及びプール残容量監視テーブル55とが格納されている。
仮想ボリューム制御プログラム40、チャンク割当てプログラム41、重要度高ボリューム割当てプログラム42、重要度中ボリューム割当てプログラム43、重要度低ボリューム割当てプログラム44、仮想ボリューム移行プログラム45、プール残容量監視プログラム46、チャンク再配置プログラム47及び障害ボリューム復旧プログラム48は、後述のような各種処理を実行するためのプログラムであり、その詳細については後述する。
実ボリューム管理テーブル50は、ストレージ装置4のコントローラ11が当該ストレージ装置4内に定義された実ボリュームRVOL(図1)を管理するためのテーブルであり、図5に示すように、実ボリュームID欄50A、ホスト割当て状態欄50B及び容量欄50Cから構成される。
そして実ボリュームID欄50Aには、ストレージ装置4内に設定された各実ボリュームRVOLにそれぞれ付与されたボリュームIDが格納され、ホスト割当て状態欄50Bには、対応する実ボリュームRVOLがホスト計算機2に割り当てられているか否かを表すホスト割当て情報(割り当てられているときには「allocated」、割り当てられていないときには「Unallocated」)が格納される。また容量欄50Cには、対応する実ボリュームRVOLの容量が格納される。
従って図5の例では、例えば「v001」というボリュームIDが付与された実ボリュームRVOLは、未だホスト計算機2には割り当てられておらず(「Unallocated」)、容量が「10GB」であることが示されている。
また仮想ボリューム管理テーブル51は、ストレージ装置4のコントローラ11が当該ストレージ装置4内に定義された仮想ボリュームVVOLを管理するためのテーブルであり、図6に示すように、仮想ボリュームID欄51A、ホスト割当て状態欄51B、仮想容量欄51C、閾値欄51D、割当て済容量欄51E及び重要度欄51Fから構成される。
そして仮想ボリュームID欄51Aには、そのストレージ装置4内に設定された各仮想ボリュームVVOLのボリュームIDが格納され、ホスト割当て状態欄51Bには、対応する仮想ボリュームVVOLが論理ユニットLU(図2)を介してホスト計算機2に割り当てられているか否かを表すホスト割当て情報と、その仮想ボリュームVVOLと対応付けられた論理ユニットLUのLUNと、その論理ユニットLUにアクセスするためのPIDとがそれぞれ格納される。
また仮想容量欄51Cには、対応する仮想ボリュームVVOLの容量が格納され、閾値欄51Dには、仮想ボリュームVVOLに格納されたデータを実ボリュームRVOLに移行させる際の閾値が格納される。さらに割当て済容量欄51Eには、その仮想ボリュームVVOLに既に割り当てられているチャンク33の合計容量が格納され、重要度欄51Fには、その仮想ボリュームVVOLに対してシステム管理者が設定した重要度が格納される。本実施の形態の場合、この重要度は、「高」、「中」及び「低」の3段階で設定される。
従って、図6の例では、「v101」というボリュームIDが付与された仮想ボリュームVVOLは、容量「10GB」のうち「6GB」分のチャンク33が割り当てられており(「allocated」)、その閾値は「6GB」で重要度が「高」に設定されていることが示されている。
割当てチャンク管理テーブル52は、各仮想ボリュームVVOLにおけるチャンク33の割当て状況を管理するためのテーブルであり、図7に示すように、ボリュームID欄52A、プールID欄52B、割当て済LBA欄52C、割当て済チャンク欄52D及びパリティグループID欄52Eから構成される。
そしてボリュームID欄52Aには、各仮想ボリュームVVOLのボリュームIDがそれぞれ格納され、プールID欄52Bには、対応する仮想ボリュームVVOLがチャンク33の提供を受けるプール31(図3)の識別子(以下、これをプールIDと呼ぶ)が格納される。また割当て済LBA欄52Cには、対応する仮想ボリュームVVOL内の既にチャンク33が割り当てられているデータブロック34のボリューム先頭からの範囲が格納される。
さらに割当て済チャンク欄52Dは、その仮想ボリュームVVOL内の対応するデータブロック34に割り当てられたチャンク33の識別子(以下、これをチャンクIDと呼ぶ)が格納され、パリティグループID欄52Eには、そのチャンク33を提供するパリティグループ31に付与された識別子(以下、これをパリティグループIDと呼ぶ)が格納される。
従って、図7の例では、「v101」というボリュームIDが付与された仮想ボリュームVVOLは、「p1」というプールIDが付与されたプール32からチャンク33の割り当てを受けることになっており、当該仮想ボリュームVVOLのボリューム先頭から「[0GB]-[2GB]」、「[2GB]-[4GB]」及び「[4GB]-[6GB]」の各範囲には、それぞれ「ch01」、「ch02」又は「ch03」というチャンクIDが付与されたチャンク33がそれぞれ割り当てられており、これらチャンク33はすべて「PG01」というパリティグループIDが付与されたパリティグループ31が提供するプールボリュームPLVOLに属することが示されている。
さらにプール管理テーブル53は、プール32(図3)を管理するためのテーブルであり、図8に示すように、プールID欄53A、パリティグループID欄53B、チャンク欄53C、プールボリューム欄53D、LBA欄53E、仮想ボリューム割当て状態欄53F及び品質レベル欄53Gから構成される。
そしてプールID欄53Aには、自ストレージ装置内に設けられた各プール32にそれぞれ付与された識別子(以下、これをプールIDと呼ぶ)が格納され、パリティグループID欄53Bには、対応するプール32に属する各パリティグループ31(図3)のパリティグループIDが格納される。
またチャンク欄53Cには、対応するパリティグループ31が提供する各チャンク33にそれぞれ付与されたチャンクIDが格納され、プールボリュームID欄53Dには、対応するパリティグループ31により構成されるプールボリュームPLVOLに付与されたボリュームID及びその容量が格納される。
さらにLBA欄53Eには、そのプールボリュームPLVOL内に定義された各チャンク33(図3)のボリューム先頭からの範囲が格納され、仮想ボリューム割当て状態欄53Fには、対応するチャンク33の仮想ボリュームVVOLへの割当て状態を表すボリューム割当て状態情報と、そのチャンク33が割り当てられた仮想ボリュームVVOLのボリュームIDとが格納される。
なお、ボリューム割当て状態情報の種類としては、そのチャンク33が既にいずれかの仮想ボリュームVVOLのいずれかのデータブロック34(図3)に割り当てられている状態を表す「Allocated」と、そのチャンク33が未だいずれの仮想ボリュームVVOLにも割り当てられていない状態を表す「Unallocated」と、そのチャンク33が二重化のために他のチャンク33と共にいずれかの仮想ボリュームVVOLのいずれかのデータブロック34に割り当てられている状態を表す「Duplicated」となどがある。
さらに品質レベル欄53Gには、対応するパリティグループ31が構成するプールボリュームPLVOLが提供する記憶領域(チャンク33)の品質レベルが格納される。本実施の形態の場合、この品質レベルは、「高」、「中」及び「低」の3段階で設定される。
従って、図8の例では、「p1」というプールIDが付与されたプールは、「PG01」、「PG02」及び「PG03」というパリティグループIDがそれぞれ付与された3つのパリティグループ31から構成されており、これら3つのパリティグループ31がそれぞれ構成するプールボリュームPLVOLには、それぞれ「v201」、「v202」又は「v203」というボリュームIDがそれぞれ付与され、これらプールボリュームPLVOLの容量はいずれも「10GB」であることが示されている。また図8の例の場合、「PG01」というパリティグループIDが付与されたパリティグループ31が提供する「v201」というボリュームIDが付与されたプールボリュームPLVOLは、品質レベルが「高」であり、それぞれ容量が2〔GB〕([0GB]〜[2GB]、……、[8GB]〜[10GB])の5つのチャンク33(「ch01」〜「ch05」)から構成され、これらすべてのチャンク33が既に「v101」〜「v103」というボリュームIDがそれぞれ付与された仮想ボリュームVOLに割り当てられている(「Allocated」)ことが示されている。
なお、かかるプール管理テーブル53の品質レベル欄53Gに格納される品質レベルは、例えば対応するパリティグループ31を構成するハードディスク装置30(図3)の種別や、当該パリティグループ31に設定されたRAIDレベルなどからストレージ装置4のコントローラ11が自動的に設定するようしても良く、またプールボリュームPLVOLをストレージ装置4に登録する際にそのプールボリュームPLVOLを構成するハードディスク装置30の種別や、そのプールボリューム31の用途などに基づいてシステム管理者が設定するようにしても良い。
具体的には、例えばSCSIディスクなどの信頼性が高いハードディスク装置30とSATAディスクなどの信頼性が低いハードディスク装置30とが混在する構成では、相対的に信頼性が高いハードディスク装置30から構成されるパリティグループ31が提供するプールボリュームPLVOLの品質レベルを「高」、これ以外のハードディスク装置30から構成されるパリティグループ31が提供するプールボリュームPLVOLの品質レベルを「中」と設定することができる。
またストレージ装置4に搭載されたハードディスク装置30が信頼性の低いハードディスク装置30であるときには、すべてのプールボリュームPLVOLの品質レベルを「低」に設定するようにしても良い。さらに将来的により信頼性の高いハードディスク装置30を増設する予定であるときには、そのハードディスク装置30により構成されるパリティグループ31が提供するプールボリュームPLVOLの品質レベルを「中」に設定しておき、信頼性の高いハードディスク装置30を増設した段階で、そのハードディスク装置30により構成されるパリティグループ31が提供するプールボリュームPLVOLの品質レベルを「高」に設定するようにしても良い。さらにハードディスク装置30を増設する際に、すべてのプールボリュームPLVOLの品質レベルを再設定するようにしても良い。
さらに相対的に耐障害性の高いRAIDレベルのプールボリュームPLVOLの品質レベルを「高」又は「中」に設定し、相対的に耐障害性の低いRAIDレベルのプールボリュームPLVOLの品質レベルを「中」又は「低」に設定するようにしても良い。例えばRAIDレベルが「1」のプールボリュームPLVOLと、RAIDレベルが「0」のプールボリュームPLVOLとが混在する場合、RAIDレベルが「1」のプールボリュームPLVOLの品質レベルを「中」、RAIDレベルが「0」のプールボリュームPLVOLの品質レベルを「低」に設定するようにしても良い。
パリティグループ管理テーブル54は、ストレージ装置4内に定義されたパリティグループ31をコントローラ11が管理するためのテーブルであり、図9に示すように、パリティグループID欄54A、対応ハードディスク装置欄54B、属性欄54C、ボリュームID欄54D及び稼動状態欄54Eから構成される。
このうちパリティグループID欄54Aには、そのストレージ装置4内に定義された各パリティグループ31のパリティグループIDが格納され、対応ハードディスク装置欄54Bには、対応するパリティグループ31を構成する各ハードディスク装置4にそれぞれ付与された識別子(以下、これをハードディスク装置IDと呼ぶ)が格納される。
また属性欄54Cには、そのパリティグループ31が提供するボリュームの属性(「実ボリューム」又は「プールボリューム」)が格納され、ボリュームID欄54Dには、当該ボリュームに付与されたボリュームIDが格納される。さらに稼動状態欄54Eには、そのボリュームの稼動状態を表す稼動状態情報(稼動しているときには「正常」、稼動していないときには「停止」)が格納される。
従って、図9の例では、「PG01」というパリティグループIDが付与されたパリティグループ31は、それぞれ「a0」〜「a3」というハードディスク装置IDが付与された4台のハードディスク装置30から構成され、そのパリティグループ31が提供するボリュームは、「v001」というボリュームIDが付与された「実ボリューム」であり、現在稼動中(「正常」)であることが示されている。
なお、プール残容量監視テーブル55の詳細については、後述する。
(1−3)仮想ボリューム作成画面
図10は、ストレージ装置4内に仮想ボリュームVVOLを作成するための仮想ボリューム作成画面60を示す。この仮想ボリューム作成画面60は、管理計算機5(図1)に実装された仮想ボリューム作成用入出力プログラム24(図1)を起動することにより、当該管理計算機5に表示させることができる。
図10は、ストレージ装置4内に仮想ボリュームVVOLを作成するための仮想ボリューム作成画面60を示す。この仮想ボリューム作成画面60は、管理計算機5(図1)に実装された仮想ボリューム作成用入出力プログラム24(図1)を起動することにより、当該管理計算機5に表示させることができる。
この仮想ボリューム作成画面60は、ストレージ装置名入力フィールド61、割当先PID入力フィールド62、割当先LUN入力フィールド63、容量入力フィールド64、データ移行閾値入力フィールド65及び重要度入力フィールド66を備えて構成される。
このうちストレージ装置名入力フィールド61は、そのとき作成しようとする仮想ボリュームVVOLの作成先となるストレージ装置4のストレージ装置名を入力するためのフィールドであり、割当先PID入力フィールド62は、そのストレージ装置4に設けられたI/Oポートのうち、その仮想ボリュームVVOLと対応付けられた論理ユニットLU(図2)にホスト計算機2がアクセスする際のアクセス先となるI/OポートのPIDを入力するためのフィールドである。
また割当先LUN入力フィールド63は、その仮想ボリュームVVOLと対応付ける論理ユニットLUのLUNを入力するためのフィールドであり、容量入力フィールド64は、その仮想ボリュームVVOLの容量を入力するためのフィールドである。さらにデータ移行閾値入力フィールド65は、後述するデータ移行閾値を入力するためのフィールドであり、重要度入力フィールド66は、その仮想ボリュームVVOLの重要度を入力するためのフィールドである。
そしてシステム管理者は、この仮想ボリューム作成画面60のストレージ装置名入力フィールド61、割当先PID入力フィールド62、割当先LUN入力フィールド63、容量入力フィールド64、データ移行閾値入力フィールド65及び重要度入力フィールド66にそれぞれ必要な情報を入力した後、作成ボタン67をクリックすることによって、この仮想ボリューム作成画面60上で指定した各種情報を含む仮想ボリューム作成要求を、管理計算機5からその仮想ボリュームVVOLの作成先のストレージ装置4に送信させることができる。
そしてこの仮想ボリューム作成要求を受信したストレージ装置4のコントローラ11は、当該仮想ボリューム作成要求に含まれる上述の各種情報に基づいて、システム管理者により指定された仮想ボリュームVVOLを当該ストレージ装置4内に作成する。
具体的には、かかる仮想ボリューム作成要求を受信したコントローラ11は、仮想ボリューム管理テーブル51にその仮想ボリュームVVOL用のエントリ(仮想ボリューム管理テーブル51の1行)を確保し、そのエントリの仮想ボリュームID欄51Aに当該仮想ボリュームVVOLに対してそのとき付与したボリュームIDを格納する。
またコントローラ11は、そのエントリのホスト割当て状態欄51Bに、対応する仮想ボリュームVVOLが未だホスト計算機2に割り当てられていないことを表す「Unallocated」というホスト割当て状態情報と、仮想ボリューム作成要求において指定されたその仮想ボリュームVVOLにアクセスするためのI/OポートのPID及び当該仮想ボリュームVVOLと対応付ける論理ユニットLUのLUNとを格納する。例えば図10の例では、I/OポートのPIDとして「p1」、論理ユニットLUのLUNとして「1」がホスト割当て状態欄51Bに格納される。
さらにコントローラ11は、そのエントリの仮想容量欄51C及び重要度欄51Fにそれぞれかかる仮想ボリューム作成要求に含まれる対応する情報をそれぞれ格納する。例えば図10の例では、仮想容量欄51Cには「10GB」、重要度欄には「高」を格納する。
またコントローラ11は、そのエントリの閾値欄51Dに、かかる仮想ボリューム作成要求に含まれる容量及び閾値の各情報に応じた数値を格納する。例えば図10の例では、そのとき作成しようとする仮想ボリュームVVOLの容量として「10GB」が指定され、閾値として「60%」が指定されているため、コントローラ11は、「10GB」の「60%」である「6GB」という数値をかかる閾値欄51Dに格納することになる。
さらにコントローラ11は、そのエントリの割当て済容量欄51Eに「0GB」という数値を格納する。以上の処理により、そのストレージ装置4内に、システム管理者により指定された仮想ボリュームVVOLが作成される。
(1−4)ホスト計算機からのアクセス要求に対するコントローラ11の処理
次に、ホスト計算機2から仮想ボリュームVVOLに対するアクセス要求が与えられた場合におけるストレージ装置4のコントローラ11の処理内容について説明する。
次に、ホスト計算機2から仮想ボリュームVVOLに対するアクセス要求が与えられた場合におけるストレージ装置4のコントローラ11の処理内容について説明する。
(1−4−1)アクセス要求受付け処理
図11は、ホスト計算機2から仮想ボリュームVVOLに対するアクセス要求(リード要求又はライト要求)を受けたストレージ装置4のコントローラ11により実行されるアクセス要求受付け処理の流れを示す。かかるアクセス要求を受信したコントローラ11は、メモリ13(図1)に格納された仮想ボリューム制御プログラム40(図4)に従ってこの図11に示すアクセス要求受付け処理を実行する。
図11は、ホスト計算機2から仮想ボリュームVVOLに対するアクセス要求(リード要求又はライト要求)を受けたストレージ装置4のコントローラ11により実行されるアクセス要求受付け処理の流れを示す。かかるアクセス要求を受信したコントローラ11は、メモリ13(図1)に格納された仮想ボリューム制御プログラム40(図4)に従ってこの図11に示すアクセス要求受付け処理を実行する。
すなわちコントローラ11は、ホスト計算機2からかかるアクセス要求が送信されると、このアクセス要求受付け処理を開始し、まず、そのアクセス要求において指定されたアクセス先と対応付けられた対応する仮想ボリュームVVOL内のデータブロック34(図3)にチャンク33(図3)が既に割り当てられているか否かを判断する(SP1)。なお、この際コントローラ11は、かかるアクセス要求がリード要求である場合には、かかるアクセス先のデータブロック34にチャンク33が既に割り当てられているものと判断する。
コントローラ11は、この判断において肯定結果を得るとステップSP3に進み、これに対して否定結果を得ると、メモリ13に格納されているチャンク割当てプログラム41(図4)を起動し、当該チャンク割当てプログラム41に基づいて、後述するチャンク割当て処理を実行することにより、そのデータブロック34にチャンク33を割り当てる(SP2)。
次いでコントローラ11は、かかるアクセス要求に応じた処理を実行し、その処理結果を当該アクセス要求を送信してきたホスト計算機2に送信する(SP3)。
具体的にコントローラ11は、例えばかかるアクセス要求がリード要求であった場合には、そのリード要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOL内の当該リード要求において指定されたアクセス先と対応付けられたデータブロック34に割り当てられているチャンク33からデータを読み出し、これをかかるアクセス要求の送信元のホスト計算機2に送信する。
またコントローラ11は、かかるアクセス要求がライト要求であった場合には、そのライト要求と共にホスト計算機2から与えられるライト対象のデータを、当該ライト要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOL内の当該ライト要求において指定されたアクセス先と対応付けられたデータブロック34に割り当てたチャンク33に書き込み、ライト処理が完了した旨の通知をそのホスト計算機2に送信する。
そしてコントローラ11は、この後、このアクセス要求受付け処理を終了する。
(1−4−2)チャンク割当て処理
(1−4−2−1)チャンク割当て処理の処理手順
図12は、かかるアクセス受付け処理のステップSP2においてコントローラ11により実行されるチャンク割当て処理の具体的な処理内容を示している。
(1−4−2−1)チャンク割当て処理の処理手順
図12は、かかるアクセス受付け処理のステップSP2においてコントローラ11により実行されるチャンク割当て処理の具体的な処理内容を示している。
コントローラ11は、アクセス要求受付け処理のステップSP2に進むと、チャンク割当てプログラム41に基づいて、まず、割当てチャンク管理テーブル52を参照して、アクセス要求(ここではライト要求)において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOLの重要度を確認する(SP10)。
そしてコントローラ11は、かかる仮想ボリュームの重要度が「高」であったときには、重要度高ボリューム割当てプログラム42(図4)を起動し、この後、この重要度高ボリューム割当てプログラム42に基づいて、当該仮想ボリュームVVOL内のアクセス要求において指定されたアクセス先と対応付けられたデータブロック34にチャンク33を割り当てる(SP11)。そしてコントローラ11は、この後チャンク割当て処理を終了し、アクセス要求受付け処理に戻る。
またコントローラ11は、かかる仮想ボリュームVVOLの重要度が「中」であったときには、重要度中ボリューム割当てプログラム43(図4)を起動し、この後、この重要度中ボリューム割当てプログラム43に基づいて、当該仮想ボリュームVVOL内のアクセス要求において指定されたアクセス先と対応付けられたデータブロック34にチャンク33を割り当てる(SP12)。そしてコントローラ11は、この後チャンク割当て処理を終了し、アクセス要求受付け処理に戻る。
さらにコントローラ11は、かかる仮想ボリュームVVOLの重要度が「低」であったときには、重要度低ボリューム割当てプログラム44(図4)を起動し、この後、この重要度低ボリューム割当てプログラム44に基づいて、当該仮想ボリュームVVOL内のアクセス要求において指定されたアクセス先と対応付けられたデータブロック34にチャンク33を割り当てる(SP13)。そしてコントローラ11は、この後チャンク割当て処理を終了し、アクセス要求受付け処理に戻る。
(1−4−2−2)重要度高ボリューム割当て処理
図13は、かかるチャンク割当て処理(図12)のステップSP11におけるコントローラ11の具体的な処理内容を示している。なお、以下の説明においては、初期時における実ボリューム管理テーブル50、仮想ボリューム管理テーブル51、割当てチャンク管理テーブル52、プール管理テーブル53及びパリティグループ管理テーブル54の状態は、それぞれ図5、図14、図15、図16及び図9の状態であるものとする。
図13は、かかるチャンク割当て処理(図12)のステップSP11におけるコントローラ11の具体的な処理内容を示している。なお、以下の説明においては、初期時における実ボリューム管理テーブル50、仮想ボリューム管理テーブル51、割当てチャンク管理テーブル52、プール管理テーブル53及びパリティグループ管理テーブル54の状態は、それぞれ図5、図14、図15、図16及び図9の状態であるものとする。
コントローラ11は、チャンク割当て処理のステップSP11に進むと、この重要度高ボリューム割当て処理を開始し、まず、仮想ボリューム管理テーブル51を参照して、アクセス要求において指定されたアクセス先の論理ユニットLUと対応付けられた仮想ボリュームVVOLに対して既に割り当てられているチャンク33があるか否かを判断する(SP20)。
コントローラ11は、この判断において否定結果を得ると、プール管理テーブル53を参照して、いずれも品質レベルが「高」又は「中」の異なる少なくとも2つのパリティグループ31がそれぞれ提供する、いずれも仮想ボリュームVVOLにも割り当てられていない2つのチャンク33が存在するか否かを判断する(SP21)。
例えば図16の例では、品質レベルが「高」のパリティグループ31が提供するチャンク33は、チャンクIDが「ch01」〜「ch10」のチャンク33であり、このうちチャンクIDが「ch01」〜「ch05」の各チャンク33と、チャンクIDが「ch06」〜「ch10」の各チャンク33は、それぞれ品質レベルが「高」の異なるパリティグループ31(「PG01」及び「PG02」)が提供するチャンク33である。また「PG01」というパリティグループ31が提供する「ch01」〜「ch03」という各チャンク33と、「PG02」というパリティグループ31が提供する「ch06」〜「ch10」という各チャンク33はいずれも仮想ボリュームVVOLに未割当てであるため、かかるステップSP21の条件を満たす2つのチャンク33が存在することになる。
なお、かかる2つのチャンク33のうち、一方のチャンク33はホスト計算機2からのデータの読書き用に用いるチャンク33であり、もう一方のチャンク33はデータのバックアップ用に用いるチャンク33である。
そしてコントローラ11は、ステップSP21の判断において否定結果を得ると、ホスト計算機2に対してかかるアクセス要求に対するエラーを通知する(SP22)。そしてコントローラ11は、この後、この重要度高ボリューム割当て処理を終了して、チャンク割当て処理(図12)に戻る。
これに対してコントローラ11は、ステップSP21の判断において肯定結果を得ると、上述したデータの読書き用に用いるチャンク33と、データのバックアップ用に用いられるチャンク33とを選択する。
例えばコントローラ11は、図16の例の場合、「PG01」というパリティグループIDのパリティグループ31が提供する「ch01」〜「ch03」というチャンクIDがそれぞれ付与された3つのチャンク33の中から1つのチャンク33を選択すると共に、「PG02」というパリティグループIDのパリティグループ31が提供する「ch06」〜「ch10」というチャンクIDがそれぞれ付与された5つのチャンク33の中から1つのチャンク33を選択することになる。
候補のチャンク33が複数あるときには、どのような方法によりチャンク33を選択しても良い。以下においては、候補のチャンク33のうち最もチャンクIDが小さいチャンク33を選択するものとする。従って、図16の例では、「PG01」というパリティグループ31が提供する「ch01」〜「ch03」という3つのチャンク33の中からは「ch01」というチャンク33が選択され、「PG02」というパリティグループ31が提供する「ch06」〜「ch10」という5つのチャンク33の中からは「ch06」というチャンク33が選択されることになる。
そしてコントローラ11は、このようにして選択した2つのチャンク33を、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOL内の、当該アクセス要求において指定されたアクセス先に対応するデータブロック34に割り当てる(SP26)。
具体的にコントローラ11は、プール管理テーブル53(図16)の各エントリのうち、上述のようにして選択した2つのチャンク33にそれぞれ対応する各エントリの仮想ボリューム割当て状態欄53Fに格納された仮想ボリューム割当て状態情報を、「Unallocated」から「Duplicated」に変更し、さらに割当て先の仮想ボリュームVVOLのボリュームIDをそれら仮想ボリューム割当て状態欄53Fに格納する。
またコントローラ11は、割当てチャンク管理テーブル52(図15)に対してそれらのチャンク33に関する情報を追加登録する。具体的に、コントローラ11は、割当てチャンク管理テーブル52上に新たなエントリを2つの確保し、これら2つのエントリの割当て済チャンク欄52Dに、かかる仮想ボリュームVVOLに割り当てた各チャンク33のチャンクIDをそれぞれ格納する。またコントローラ11は、かかる2つのエントリのパリティグループID欄52E及びプール欄52Bに、対応するチャンク33を提供するパリティグループ31のパリティグループID及びそのパリティグループ31が属するプール32(図3)のプールIDをそれぞれ格納する。さらにコントローラ11は、かかる2つのエントリのボリュームID欄52A及び割当て済LBA欄52Cに、かかる仮想ボリュームVVOLのボリュームID及び当該仮想ボリュームVVOL内のかかるチャンク33を割り当てたデータブロック34のボリューム先頭からの範囲(LBA)をそれぞれ格納する。
さらにコントローラ11は、仮想ボリューム管理テーブル51(図14)のかかる仮想ボリュームVVOLと対応するエントリの割当て済容量欄51Eに格納された数値を、そのときその仮想ボリュームVVOLに割り当てたチャンク33の容量に変更する。
以上の処理により仮想ボリューム管理テーブル51、割当てチャンク管理テーブル52及びプール管理テーブル53は、それぞれ図14、図15及び図16の状態から図17、図18及び図19にそれぞれ示す状態に変化する。そしてコントローラ11は、この後、この重要度高ボリューム割当て処理を終了してチャンク割当て処理(図12)に戻る。
これに対してコントローラ11は、ステップSP20の判断において肯定結果を得ると、割当てチャンク管理テーブル52を参照して、アクセス要求において指定されたアクセス先の論理ユニットLUと対応付けられた仮想ボリュームVVOLに対してチャンク33を提供しているパリティグループ31のパリティグループIDを取得する(SP23)。
なお、重要度が「高」の仮想ボリュームVVOLには、上述のようにデータの読書き用に用いられるチャンク33と、バックアップ用に用いられるチャンク33とが割り当てられるため、このステップSP23において、コントローラ11は、これら2つのチャンク33をそれぞれ提供する各パリティグループ31のパリティグループIDをそれぞれ取得することになる。
例えば割当てチャンク管理テーブル52が図18のような状態にあり、そのとき対象としている仮想ボリュームVVOLのボリュームIDが「v101」である場合、コントローラ11は、この割当てチャンク管理テーブル52を参照して、当該仮想ボリュームVVOLに割り当てられた「ch01」というチャンクIDのチャンク33を提供するパリティグループ31のパリティグループID(「PG01」)と、同じくその仮想ボリュームVVOLに割り当てられた「ch06」というチャンクIDのチャンク33を提供するパリティグループ31のパリティグループID(「PG02」)とを取得する。
そしてコントローラ11は、この後、プール管理テーブル53を参照して、ステップSP23においてパリティグループIDを取得した2つのパリティグループ31の双方にそれぞれいずれの仮想ボリュームVVOLにも割り当てられていない未割当てのチャンク33があるか否かを判断する(SP24)。
例えば図19の例の場合、ステップSP23において取得した「PG01」というパリティグループIDのパリテルグループ31には、仮想ボリュームVVOLに未割当てのチャンク33として、「ch02」及び「ch03」というチャンクIDの2つのチャンク33が存在し、「PG02」というパリティグループIDのパリテルグループ31には、仮想ボリュームVVOLに未割当てのチャンク33として、「ch07」〜「ch010」というチャンクIDがそれぞれ付与された4つのチャンク33が存在するため、この判断において肯定結果を得ることになる。
そしてコントローラ11は、ステップSP24の判断において肯定結果を得ると、ステップSP23において検出した2つのパリティグループ31の双方がそれぞれ提供する2つの未割当てのチャンク33を、そのとき対象としている仮想ボリュームVVOLに割り当て(SP26)、この後、この重要度高ボリューム割当て処理を終了してチャンク割当て処理(図12)に戻る。
これに対してコントローラ11は、ステップSP24の判断において否定結果を得ると、仮想ボリューム移行プログラム45(図4)を起動して、この仮想ボリューム移行プログラムに基づいて、そのとき対象としている仮想ボリュームVVOLに格納されているデータを実ボリュームRVOLに移行する仮想ボリューム移行処理を実行する(SP25)。これはパリティグループIDを取得した2つのパリティグループ31の双方にそれぞれいずれの仮想ボリュームVVOLにも割り当てられていない未割当てのチャンク33がない以上、重要度が「高」の仮想ボリュームVVOLのデータを同一のパリティグループ31に格納するためには実ボリュームRVOLを利用するしかないという理由による。
そしてコントローラ11は、この後、この重要度高ボリューム割当て処理を終了してチャンク割当て処理に戻る。
なお、上述のようにアクセス要求において指定された仮想ボリュームVVOL内の当該アクセス要求により指定されたデータブロック34に2つのチャンク33を割り当てた場合、図11について上述したアクセス要求受付け処理のステップSP3において、これら2つのチャンク33にライト対象のデータがライトされる。これにより、重要度が「高」の仮想ボリュームVVOLに書き込まれたデータが二重化されて保持される。
ここで、上述した重要度高ボリューム割当て処理のステップSP25におけるコントローラ11の具体的な処理内容を図20に示す。
コントローラ11は、重要度高ボリューム割当て処理のステップSP25に進むと、この仮想ボリューム移行処理を開始し、まず、実ボリューム管理テーブル50(図5)を参照して、そのとき対象としている重要度が「高」の仮想ボリュームVVOL(以下、これを移行元仮想ボリュームと呼ぶ)に格納されたデータを移行する移行先の実ボリューム(以下、これを移行先実ボリュームと呼ぶ)RVOLを検索する(SP30)。
続いてコントローラ11は、移行元仮想ボリュームVVOLと移行先実ボリュームRVOLの状態を移行状態に遷移させ(SP31)、この後、移行元仮想ボリュームVVOLに格納されていたデータを当該移行元仮想ボリュームVVOLから移行先実ボリュームRVOLに移行させる(SP32)。
次いでコントローラ11は、仮想ボリューム管理テーブル51上の移行元仮想ボリュームVVOLに対応するエントリを消去することにより、移行元仮想ボリュームVVOLを削除する(SP33)。そしてコントローラ11は、この後この仮想ボリューム移行処理を終了して重要度高ボリューム割当て処理(図13)に戻る。
(1−4−2−3)重要度中ボリューム割当て処理
一方、図21は、図12について上述したチャンク割当て処理のステップSP12におけるコントローラ11の具体的な処理内容を示している。以下においては、初期時における実ボリューム管理テーブル50、仮想ボリューム管理テーブル51、割当てチャンク管理テーブル52、プール管理テーブル53及びパリティグループ管理テーブル54の状態は、それぞれ図5、図6、図7、図8及び図9の状態であるものとする。
一方、図21は、図12について上述したチャンク割当て処理のステップSP12におけるコントローラ11の具体的な処理内容を示している。以下においては、初期時における実ボリューム管理テーブル50、仮想ボリューム管理テーブル51、割当てチャンク管理テーブル52、プール管理テーブル53及びパリティグループ管理テーブル54の状態は、それぞれ図5、図6、図7、図8及び図9の状態であるものとする。
この重要度中ボリューム割当て処理は、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOL内の、当該アクセス要求により指定されたアクセス先と対応するデータブロック34に対して1つのチャンク33のみを割り当てる点が図11について上述した重要度高ボリューム割当て処理と相違し、これ以外は重要度高ボリューム割当て処理と同様である。
すなわちコントローラ11は、チャンク割当て処理のステップSP12に進むと、この重要度中ボリューム割当て処理を開始し、まず、仮想ボリューム管理テーブル51を参照して、アクセス要求において指定されたアクセス先の仮想ボリュームVVOLに対して既に割り当てられているチャンク33があるか否かを判断する(SP40)。
コントローラ11は、この判断において否定結果を得ると、プール管理テーブル53を参照して、品質レベルが「高」又は「中」のパリティグループ31が提供するチャンク33であって、いずれの仮想ボリュームVVOLにも割り当てられていないチャンク33が存在するか否かを判断する(SP41)。
コントローラ11は、ステップSP41の判断において否定結果を得ると、ホスト計算機2に対してかかるアクセス要求に対するエラーを通知する(SP42)。そしてコントローラ11は、この後、この重要度中ボリューム割当て処理を終了して、チャンク割当て処理(図12)に戻る。
これに対してコントローラ11は、かかるステップSP41の判断において肯定結果を得ると、ステップSP41の条件を満たすチャンク33を1つ選択する。例えば図8の例の場合、「ch11」〜「ch15」というチャンクIDがそれぞれ付与されたチャンク33は、品質レベルが「中」のパリティグループ31が提供するチャンク33であり、このうち「ch13」〜「ch15」という各チャンク33はいずれも仮想ボリュームVVOLに割り当てられていない。従って、コントローラ11は、これらのチャンク33の中から1つのチャンク33を選択することができる。
そしてコントローラ11は、このようにして選択したチャンク33を、アクセス要求において指定された仮想ボリュームVVOL内の当該アクセス要求において指定されたデータブロック34に割り当てる(SP46)。
具体的にコントローラ11は、プール管理テーブル53の各エントリのうち、上述のようにして選択したチャンク33に対応するエントリの仮想ボリューム割当て状態欄53Fに格納された仮想ボリューム割当て状態情報を、「Unallocated」から「Allocated」に変更し、さらに割当て先の仮想ボリュームVVOLのボリュームIDをその仮想ボリューム割当て状態欄53Fに格納する。
またコントローラ11は、割当てチャンク管理テーブル52に対してそのチャンク33に関する情報を追加登録する。具体的に、コントローラ11は、割当てチャンク管理テーブル52上に新たなエントリを1つ確保し、そのエントリの割当て済チャンク欄52Dにかかる仮想ボリュームVVOLに割り当てたチャンク33のチャンクIDを格納する。またコントローラ11は、かかるエントリのパリティグループID欄52E及びプール欄52Bに、対応するチャンク33を提供するパリティグループ31のパリティグループID及びそのパリティグループ31が属するプールのプールIDをそれぞれ格納する。さらにコントローラ11は、かかるエントリのボリュームID欄52A及び割当て済LBA欄52Cに、かかる仮想ボリュームVVOLのボリュームID及び当該仮想ボリュームVVOL内のかかるチャンク33を割り当てたデータブロック34のボリューム先頭からの範囲(LBA)を格納する。
さらにコントローラ11は、仮想ボリューム管理テーブル51上のかかる仮想ボリュームVVOLと対応するエントリの割当て済容量欄51Eに格納された数値を、そのときその仮想ボリュームに割り当てたチャンク33の容量に変更する。
そしてコントローラ11は、この後、この重要度中ボリューム割当て処理を終了してチャンク割当て処理に戻る。
これに対してコントローラ11は、ステップSP40の判断において肯定結果を得ると、割当てチャンク管理テーブル52を参照して、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOLに対して既に割り当てられているチャンク33を提供するパリティグループ31のパリティグループIDを取得する(SP43)。
例えば割当てチャンク管理テーブル52が図7のような状態にあり、かかる仮想ボリュームVVOLのボリュームIDが「v104」である場合、コントローラ11は、この割当てチャンク管理テーブル52を参照して、当該仮想ボリュームVVOLに割り当てられた「ch11」というチャンクIDのチャンク33を提供するパリティグループ31のパリティグループID(「PG03」)を取得する。
そしてコントローラ11は、この後、プール管理テーブル53を参照して、ステップSP44においてパリティグループIDを取得したパリティグループ31に、いずれの仮想ボリュームVVOLにも割り当てられていない未割当てのチャンク33があるか否かを判断する(SP44)。
例えば図8の例の場合、ステップSP43において取得した「PG03」というパリティグループIDのパリテルグループ31には、仮想ボリュームVVOLに未割当てのチャンク33として、「ch13」〜「ch15」というチャンクIDがそれぞれ付与された3つのチャンク33が存在するため、この判断において肯定結果を得ることになる。
そしてコントローラ11は、ステップSP44の判断において肯定結果を得ると、ステップSP43において検出したパリティグループ31が提供するチャンク33を、そのとき対象としている仮想ボリュームVVOLに割り当て(SP46)、この後、この重要度中ボリューム割当て処理を終了してチャンク割当て処理(図12)に戻る。
これに対してコントローラ11は、ステップSP44の判断において否定結果を得ると、仮想ボリューム移行プログラム45(図4)を起動して、当該仮想ボリューム移行プログラム45に基づいて図20について上述した仮想ボリューム移行処理を実行する(SP45)。そしてコントローラ11は、この後、この重要度中ボリューム割当て処理を終了してチャンク割当て処理に戻る。
(1−4−2−4)重要度低ボリューム割当て処理
他方、図22は、図12について上述したチャンク割当て処理のステップSP13におけるコントローラ11の具体的な処理内容を示している。この重要度低ボリューム割当て書は、通常のAOU処理と同様である。
他方、図22は、図12について上述したチャンク割当て処理のステップSP13におけるコントローラ11の具体的な処理内容を示している。この重要度低ボリューム割当て書は、通常のAOU処理と同様である。
すなわちコントローラ11は、チャンク割当て処理のステップSP13に進むと、この重要度低ボリューム割当て処理を開始し、まず、仮想ボリューム管理テーブル51を参照して、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOLに対して既に割り当てられているチャンク33があるか否かを判断する(SP50)。
そしてコントローラ11は、この判断において否定結果を得ると、プール管理テーブル53を参照して、品質レベルが「中」又は「低」のパリティグループ31が提供するチャンク33であって、いずれの仮想ボリュームVVOLにも割り当てられていないチャンク33が存在するか否かを判断する(SP51)。
コントローラ11は、ステップSP51の判断において否定結果を得ると、ホスト計算機2に対してかかるアクセス要求に対するエラーを通知する(SP52)。そしてコントローラ11は、この後、この重要度低ボリューム割当て処理を終了して、チャンク割当て処理(図12)に戻る。
これに対してコントローラ11は、ステップSP51の判断において肯定結果を得ると、ステップSP51の条件を満たすチャンク33を1つ選択し、選択したチャンク33を、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOL内の、当該アクセス要求において指定されたアクセス先と対応するデータブロック34に割り当てる(SP57)。なお、このステップSP57における処理内容は、図21について上述した重要度中ボリューム割当て処理のステップSP47と同様であるため、ここでの説明は省略する。そしてコントローラ11は、この後、この重要度低ボリューム割当て処理を終了してチャンク割当て処理に戻る。
これに対してコントローラ11は、ステップSP50の判断において肯定結果を得ると、割当てチャンク管理テーブル52を参照して、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOLに既に割り当てられているチャンク33を提供するパリティグループ31のパリティグループIDを取得する(SP53)。
続いてコントローラ11は、プール管理テーブル53を参照して、品質レベルが「中」又は「低」のパリティグループ31が提供するチャンク33であって、いずれの仮想ボリュームVVOLにも割り当てられていないチャンク33が存在するか否かを判断する(SP54)。
コントローラ11は、この判断において否定結果を得るとステップSP52に進み、これに対して肯定結果を得ると、プール管理テーブル53を参照して、いずれの仮想ボリュームVVOLにも割り当てられていないチャンク33であって、ステップSP53において取得したパリティグループIDが付与されたパリティグループ31と異なるパリティグループ31が提供するチャンク33が存在するか否かを判断する(SP55)。
コントローラ11は、この判断において肯定結果を得るとステップSP57に進み、これに対して否定結果を得ると、アクセス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOLに割り当てられているチャンク33を既に提供しているパリティグループ31と同一のパリティグループ31が提供する他のチャンク33を当該仮想ボリュームVVOLに割り当てることを許可する設定がなされているか否かを判断する(SP56)。なお、この設定は、システム管理者により事前に行われる。
そしてコントローラ11は、この判断において否定結果を得るとステップSP52に進み、これに対して肯定結果を得ると、ステップSP53において検出したパリティグループIDのパリティグループ31と異なるパリティグループ31が提供するチャンク33のうちのいずれの仮想ボリュームVVOLにも割り当てられていないチャンク33を選択し、当該チャンク33をアドレス要求において指定された論理ユニットLUと対応付けられた仮想ボリュームVVOLの、当該アドレス要求に応じて指定されたアクセス先と対応するデータブロック34に割り当てる(SP57)。そしてコントローラ11は、この後、この重要度低ボリューム割当て処理を終了してチャンク割当て処理に戻る。
(1−4−3)プール残容量監視処理
ところで、上述のようなチャンク割当て処理により順次仮想ボリュームVVOLにチャンク33が動的に割り当てられていくと、やがて同一のパリティグループ31が提供するチャンク33を割り当てることが規定されている重要度が「高」及び「中」の仮想ボリュームVVOLに対して、チャンク33を割り当てられなくなるおそれがある。
ところで、上述のようなチャンク割当て処理により順次仮想ボリュームVVOLにチャンク33が動的に割り当てられていくと、やがて同一のパリティグループ31が提供するチャンク33を割り当てることが規定されている重要度が「高」及び「中」の仮想ボリュームVVOLに対して、チャンク33を割り当てられなくなるおそれがある。
そこで、本実施の形態によるストレージ装置4には、各パリティグループ31によりそれぞれ構成されるプールボリュームPLVOLの残容量を監視し、例えば品質レベルが「高」又は「中」のプールボリュームPLVOLの残容量(仮想ボリュームVVOLに未割当てのチャンク数)が予め定められた閾値よりも小さくなった段階で、重要度が「低」の仮想ボリュームVVOLに割り当てられている品質レベルが「中」のパリティグループ31が提供するチャンク33を、品質レベルが「低」のパリティグループ31が提供するチャンク33に交換するプール残容量監視機能が搭載されている。
そして、かかるプール残容量監視機能を実現するための手段として、ストレージ装置4のメモリ13には、図4に示すように、プール残容量監視プログラム46及びプール残容量監視テーブル55と、チャンク再配置プログラム47とが格納されている。
このうちプール残容量監視テーブル55は、コントローラ11が各プールボリュームPLVOLの残容量を管理するためのテーブルであり、図23に示すように、プールID欄55A、仮想容量欄55B、割当て済容量欄55C、パリティグループID欄55D、品質レベル欄55E、仮想容量欄55F、割当て済容量欄55G、残容量欄55H及び割当て先仮想ボリューム欄55Iから構成される。
そしてプールID欄55Aには、ストレージ装置4内に設定された各プール32(図3)のプールIDがそれぞれ格納され、仮想容量欄55Bには、そのプール32全体の容量が格納される。また割当て済容量欄55Cには、対応するプール32の容量のうち、既にいずれかの仮想ボリュームVVOLに割り当てられているチャンク33の合計容量が格納される。
一方、パリティグループID欄55Dには、そのプール32に属するプールボリュームPLVOLをそれぞれ構成する各パリティグループ31のパリティグループIDがそれぞれ格納され、品質レベル欄55Eには、対応するパリティグループ31に設定された品質レベルが格納される。
また仮想容量欄55Fには、対応するパリティグループ31が構成するプールボリュームPLVOLの容量が格納され、割当て済容量欄55G及び残容量欄55Hには、それぞれそのプールボリュームPLVOLの容量のうちの既にいずれかの仮想ボリュームVVOLに割り当てられているチャンク33の合計容量と、そのプールボリュームPLVOLの残容量とがそれぞれ格納される。
さらに割当先仮想ボリューム欄55Iには、対応するパリティグループ31が構成するプールボリュームPLVOLが提供するチャンク33が既にいずれかの仮想ボリュームVVOLに割り当てられているときに、その仮想ボリュームVVOLのボリュームIDと、当該仮想ボリュームVVOLの重要度とが格納される。
従って図23の例では、プールIDが「p1」のプール32には、それぞれ「PG01」、「PG02」及び「PG03」というパリティグループIDが付与された3つのパリティグループ31がそれぞれ構成するプールボリュームPLVOLが属しており、これら3つのプールボリュームPLVOLの容量はいずれも「10GB」であることが示されている。また図23には、これら3つのプールボリュームPLVOLうち、品質レベルが共に「高」の「PG01」及び「PG02」というパリティグループ31が構成するプールボリュームPLVOLの残容量はそれぞれ「4GB」及び「8GB」であり、「PG03」というパリティグループ31が構成するプールボリュームPLVOLの残容量が「6GB」であることが示されている。
図24は、上述のようなプール残容量監視機能に関するコントローラ11の具体的な処理内容を示している。コントローラ11は、プール残容量監視プログラム46(図4)に基づいて、この図24に示すプール残容量監視処理を定期的に実行する。
すなわちコントローラ11は、このプール残容量監視処理を開始すると、まず、仮想ボリューム管理テーブル51及びプール管理テーブル53に基づいて、図23について上述したプール残容量監視テーブル55を作成する(SP60)。
続いてコントローラ11は、プール残容量監視テーブル55のいずれか1つの割当て先仮想ボリューム欄55Iを1つ選択し(SP61)、その割当て先仮想ボリューム欄55Iに格納された重要度に基づいて、その割当て先仮想ボリューム欄55Iと対応付けられた仮想ボリュームVVOLの重要度が「高」及び「中」のいずれかであるか否かを判断する(SP62)。
そしてコントローラ11は、この判断において否定結果を得るとステップSP66に進み、これに対して肯定結果を得ると、その仮想ボリュームVVOLに未割当てのチャンク33の容量(つまりその仮想ボリュームVVOLの残容量。以下、これを未割当て容量と呼ぶ。)を、仮想ボリューム管理テーブル51の対応するエントリの仮想容量欄51C及び割当て済容量欄51Eをそれぞれ参照して計算する。
例えば図6及び図23の例の場合、ステップSP61において選択した割当て先仮想ボリューム欄55Iが「v102」というボリュームIDが付与された仮想ボリュームVVOLに対応するものとすると、仮想ボリューム管理テーブル51の対応するエントリを参照すれば、その仮想ボリュームの未割当て容量が8GB(=10GB−2GB)であることが計算できる。
続いてコントローラ11は、プール残容量監視テーブル55における、ステップSP61において選択した割当て先仮想ボリューム欄55Iと対応する未割当て容量欄55Hを参照して、ステップSP63において算出したその仮想ボリュームVVOLの残容量よりも、その仮想ボリュームVVOLにチャンク33を提供しているパリティグループ31の残容量のほうが少ないか否かを判断する(SP64)。
例えば上述の例では、ステップSP63において算出したその仮想ボリュームVVOLの未割当て容量は8GBであり、その仮想ボリュームVVOLにチャンク33を提供しているパリティグループ31の残容量は「4GB」であるため、ステップSP63において算出したその仮想ボリュームVVOLの未割当て容量のほうが、その仮想ボリュームVVOLにチャンク33を提供しているパリティグループ31の残容量よりも大きいということになる。
そしてコントローラ11は、この判断において否定結果を得るとステップSP66に進み、これに対して肯定結果を得ると、図28について後述するチャンク再配置処理を実行する(SP65)。なお、このステップSP65において、コントローラ11が後述するチャンク再配置処理に代えて、管理計算機5に警告を通知したり、図20について上述した仮想ボリューム移行処理を実行するようにしても良い。
続いてコントローラ11は、プール残容量監視テーブル55のすべての割当て先仮想ボリューム欄55Iについて同様の処理を終えたか否かを判断する(SP66)。そしてコントローラ11は、この判断において否定結果を得るとステップSP61に戻り、この後、同様の処理を繰り返す(SP61〜SP66−SP61)。
またコントローラ11は、やがてプール残容量監視テーブル55のすべての割当て先仮想ボリューム欄55Iについて同様の処理を終えることによりステップSP66において肯定結果を得ると、このプール残容量監視処理を終了する。
次に、かかるプール残容量監視処理のステップSP65において行なわれるチャンク再配置処理に関するコントローラ11の具体的な処理内容について図25〜図27を用いて説明する。
図25に示すように、本実施の形態のストレージ装置4では、重要度が「低」の仮想ボリュームVVOLに対しては複数のパリティグループ31が提供するチャンク33を分散して割り当て、重要度が「中」の仮想ボリュームVVOLに対しては同一のパリティグループ31が提供するチャンク33を割り当て、重要度が「高」の仮想ボリュームVVOLに対しては同一のパリティグループ31が提供するチャンク33を割り当てた上でデータを二重化する。
ところで、重要度が「低」の仮想ボリュームVVOLに品質レベルが「中」のパリティグループ31が提供するチャンク33が割り当てられている場合、図26に示すように、例えばその仮想ボリュームVVOLに対して、品質レベルが「中」のパリティグループ31(図26において上から2番目のパリティグループ31)が提供するチャンク33に代えて、品質レベルが「低」のパリティグループ31(図26において一番上のパリティグループ31)が提供するチャンク33を再割当てすることによって、品質レベルが「中」のパリティグループ31の残容量を増やすことができる。
また、この後図27に示すように、残容量が少ないパリティグループ31のチャンク33が割り当てられている重要度が「高」の仮想ボリュームVVOLがあるときには、上述のようにして残容量が増えた品質レベルが「中」のパリティグループ31(図26において上から2番目のパリティグループ31)のチャンク33をその仮想ボリュームVVOLに再割当てすることによって、その仮想ボリュームVVOLに対して品質レベルが「中」の同一のパリティグループ31が提供するチャンク33を割り当てることができるようになる。
そこで、本実施の形態においては、以上のような処理(以下、これをチャンク再配置処理と呼ぶ)を行うための手段として、ストレージ装置4のメモリ13には、チャンク再配置プログラム47(図4)が格納されている。そしてコントローラ11は、図24について上述したプール残容量監視処理のステップSP65に進むと、このチャンク再配置プログラム47を起動し、このチャンク再配置プログラム47に従って、上述のようなチャンク再配置処理を実行する。
図28は、このようなチャンク再配置処理に関するコントローラ11の具体的な処理内容を示している。コントローラ11は、プール残容量監視処理のステップSP65に進むと、まず、プール管理テーブル53(図8)を参照して、そのとき対象としている重要度が「高」の仮想ボリュームVVOLにチャンク33を再割り当て可能なプールボリュームPLVOLを検索する(SP70)。検索対象は、かかる重要度が「高」の仮想ボリュームVVOLの容量以上の残容量を有し、品質レベルが「高」又は「中」のパリティグループ31により構成されるプールボリュームPLVOLである。
そしてコントローラ11は、このようなプールボリュームPLVOLが存在したときには、かかる重要度が「高」又は「中」の仮想ボリュームVVOLに対して当該プールボリュームPLVOLのチャンク33を再割り当てすると共に、再割り当て前に当該仮想ボリュームVVOLに割り当てられていた各チャンク33にそれぞれ格納されていたデータを、再割り当て後の新たな各チャンク33にそれぞれ移行させる(SP71)。そしてコントローラ11は、この後、このチャンク再配置処理を終了してプール残容量監視処理に戻る。
これに対してコントローラ11は、ステップSP70において、かかる条件を満たすプールボリュームPLVOLを検出できなかったときには、割当てチャンク管理テーブル52(図7)及びプール管理テーブル53(図8)を参照して、重要度が「低」の各仮想ボリュームVVOLに対して、品質レベルが「低」のパリティグループ31が提供するチャンク33を再割り当てする。この際コントローラ11は、再割り当てするチャンク33を提供するパリティグループ31の数がなるべく少なくなるように、新たに割り当てるチャンク33を選択する(SP72)。
続いてコントローラ11は、プール管理テーブル53を参照して、そのとき対象としている重要度が「高」の仮想ボリュームVVOLに対してチャンク33を再割り当て可能なチャンク33を有するプールボリュームPLVOLを検索する(SP73)。検索対象は、かかる重要度が「高」の仮想ボリュームVVOLの容量以上の残容量を有し、品質レベルが「高」又は「中」のパリティグループ31により構成されるプールボリュームPLVOLである。
そしてコントローラ11は、この検索によりかかる条件を満たすプールボリュームPLVOLを検出すると、上述したチャンク33の再割り当て処理を行い(SP71)、この後このチャンク再配置処理を終了してプール残容量監視処理に戻る。
これに対してコントローラ11は、ステップSP73においてかかる条件を満たすプールボリュームPLVOLを検出できなかったときには、管理計算機5に対して警告を通知することにより、対応する警告メッセージを管理計算機5に表示させる(SP74)。そしてコントローラ11は、この後、このチャンク再配置処理を終了してプール残容量監視処理に戻る。
なお、ステップSP74では、管理計算機5に警告を通知することに代えて、図20について上述した仮想ボリューム移行処理を実行しても良い。その際はデータを二重化するようにする。
(1−4−4)障害ボリューム復旧処理
次に、障害ボリューム復旧処理ついて説明する。本実施の形態の計算機システム1では、上述のように重要度が「高」の仮想ボリュームVVOLについては、当該仮想ボリュームVVOLに格納されたデータを二重化して保持するため、その仮想ボリュームVVOLが障害により回復不可能な状態になったとしても、二重化されたデータを用いてその仮想ボリュームVVOLを復旧することができる。
次に、障害ボリューム復旧処理ついて説明する。本実施の形態の計算機システム1では、上述のように重要度が「高」の仮想ボリュームVVOLについては、当該仮想ボリュームVVOLに格納されたデータを二重化して保持するため、その仮想ボリュームVVOLが障害により回復不可能な状態になったとしても、二重化されたデータを用いてその仮想ボリュームVVOLを復旧することができる。
図29は、障害により回復不可能な状態となった、重要度が「高」の仮想ボリュームVVOLを復旧する際のコントローラ11の具体的な処理内容を示している。コントローラ11は、障害によりいずれかのボリュームが回復不可能な状態となると、メモリ13(図4)に格納された障害ボリューム復旧プログラム48を起動し、この障害ボリューム復旧プログラム48に基づいて、この図29に示す障害ボリューム復旧処理を実行する。
すなわちコントローラ11は、障害によりいずれかのボリュームが回復不可能な状態となると、まず、障害発生時に当該障害が発生したハードディスク装置30(図3)からコントローラ11に通知される障害情報に基づいて、かかる障害により回復不可能となったボリューム(以下、これを障害ボリュームと呼ぶ)に対してチャンク33を提供しているパリティグループ(つまり障害が発生したパリティグループ。以下、これを障害パリティグループと呼ぶ)31を特定する(SP80)。
続いてコントローラ11は、パリティグループ管理テーブル54を参照して、その障害パリティグループ31が提供するボリュームの属性が実ボリュームRVOLであるか否かを判断する(SP81)。このステップSP81において肯定結果を得た場合、その障害ボリュームの復旧は不可能であるため、コントローラ11は、この障害ボリューム復旧処理を終了する。
これに対してコントローラ11は、かかるステップSP81において否定結果を得た場合、プール管理テーブル53(図8)を参照して、かかる障害パリティグループ31が提供するチャンク33の障害ボリュームへの割り当て状態を調査する(SP82)。具体的には、コントローラ11は、プール管理テーブル53の対応する仮想ボリューム割当て状態欄53Fを参照して、その障害パリティグループ31が提供する各チャンク33の障害ボリュームへの割当て状態が「Allocated」及び「Duplicated」のいずれであるかを調査することになる。
そしてコントローラ11は、ステップSP82の調査結果に基づいて、障害ボリュームが重要度が「高」の仮想ボリュームVVOLであり、その障害パリティグループ31が提供するチャンク33に格納されていたデータと同じデータが格納されているチャンク33が存在するか否かを判断する(SP83)。具体的には、コントローラ11は、その障害パリティグループ31が提供する各チャンク33の障害ボリュームへの割当て状態が「Duplicated」であるか否かを判断することになる。
このステップSP83において否定結果を得た場合、かかる障害ボリュームを復旧することは不可能である。かくして、このときコントローラ11は、この障害ボリューム復旧処理を終了する。
これに対してステップSP83において肯定結果を得た場合、障害が発生していないもう一方のチャンク33に格納されているデータを利用して障害ボリュームを復旧することができる。かくして、このときコントローラ11は、かかる障害ボリュームを復旧させる復旧処理(以下、これを重要度高ボリューム復旧処理と呼ぶ)を実行し(SP84)、この後、この障害ボリューム復旧処理を終了する。
図30は、かかる重要度高ボリューム復旧処理に関するコントローラ11の具体的な処理内容を示している。コントローラ11は、かかる障害ボリューム復旧処理のステップSP84に進むと、この重要度高ボリューム復旧処理を開始し、まず、割当てチャンク管理テーブル52(図7)を参照して、障害ボリュームに2つずつ割り当てられたチャンク33を提供する2つのパリティグループ31のパリティグループIDをそれぞれ取得する(SP90)。
続いてコントローラ11は、仮想ボリューム管理テーブル51(図6)を参照して、障害ボリュームに割り当てられている各チャンク33の容量を、対応するエントリの割当て済容量欄51Eから読み出す(SP91)。そしてコントローラ11は、プール管理テーブル53を参照して、障害パリティグループ31に代えて障害ボリュームにチャンク33を提供可能なパリティグループ31を検索する(SP92)。このときの検索対象は、障害ボリュームに割り当て済の容量を上回る未割当てのチャンク33を有するパリティグループ31である。
そしてコントローラ11は、そのようなパリティグループ31を検出できなかったときには、図20について上述した仮想ボリューム移行処理を実施する。この際コントローラ11は、その障害ボリュームに格納されていたデータを実ボリュームRVOLにおいて二重化する(SP93)。そしてコントローラ11は、この後この重要度高ボリューム復旧処理を終了して障害ボリューム復旧処理(図29)に戻る。
これに対してコントローラ11は、上述のようなパリティグループ31を検出できたときには、そのパリティグループ31の未割当てのチャンク33を障害ボリュームに再割り当てし、再割り当て前に割り当てられていたチャンク33に格納されていたデータを、再割り当てしたチャンク33にコピーする(SP94)。
具体的に、コントローラ11は、障害ボリュームに割り当てられている各チャンク33にそれぞれ対応するプール管理テーブル53(図8)の仮想ボリューム割り当て状態欄53Fに格納された割当て状態情報を「Allocated」から使用不可能を意味する「Unavailable」に変更する。またコントローラ11は、かかる障害ボリュームに対して再割り当てする各チャンク33にそれぞれ対応するプール管理テーブル53の各仮想ボリューム割当て状態欄53Fに格納されている割当て状態情報を「Unallocated」から「Duplicated」に変更する。
さらにコントローラ1は、再割り当て前のチャンク33に格納されていたデータを、そのチャンク33と同じデータが格納されたバックアップ用のチャンク33から読み出し、これを再割り当て後のチャンク33に格納する。
そしてコントローラ11は、この後この重要度高ボリューム復旧処理を終了して障害ボリューム復旧処理に戻る。
(1−5)本実施の形態の効果
以上のように本実施の形態による計算機システム1では、重要度が「高」又は「中」の仮想ボリュームVVOLに対しては同一のパリティグループ31が提供するチャンク33を割り当て、重要度が「低」の仮想ボリュームVVOLに対しては複数のパリティグループ31が提供するチャンク33を割り当てるようにしているため、パリティグループ31において発生した障害の影響を確率的に低くすることができる。かくするにつき、AOU機能が搭載されたストレージ装置における重要なデータの保全性を向上させることができる。
以上のように本実施の形態による計算機システム1では、重要度が「高」又は「中」の仮想ボリュームVVOLに対しては同一のパリティグループ31が提供するチャンク33を割り当て、重要度が「低」の仮想ボリュームVVOLに対しては複数のパリティグループ31が提供するチャンク33を割り当てるようにしているため、パリティグループ31において発生した障害の影響を確率的に低くすることができる。かくするにつき、AOU機能が搭載されたストレージ装置における重要なデータの保全性を向上させることができる。
また本実施の形態による計算機システム1では、重要度が「高」又は「中」の仮想ボリュームVVOLに対しては、障害が発生し難い品質レベルが「高」又は「中」のパリティグループ31が提供するチャンク33を割り当てるようにしているため、かかるストレージ装置における重要なデータの保全性をより一層と向上させることができる。
(2)第2の実施の形態
図1において、100は全体として第2の実施の形態による計算機システムを示す。この計算機システム100は、システム管理者が、仮想ボリュームVVOLに要求する重要度だけでなく、仮想ボリュームVVOLに要求する性能や信頼性をも指定することができる点が第1の実施の形態による計算機システム1と異なる。
図1において、100は全体として第2の実施の形態による計算機システムを示す。この計算機システム100は、システム管理者が、仮想ボリュームVVOLに要求する重要度だけでなく、仮想ボリュームVVOLに要求する性能や信頼性をも指定することができる点が第1の実施の形態による計算機システム1と異なる。
すなわち本実施の形態による計算機システム100の場合、システム管理者は、仮想ボリュームVVOLを作成する際、その仮想ボリュームVVOLの重要度に加えて、その仮想ボリュームVVOLに要求する性能(以下、これを仮想ボリュームVVOLの性能要件と呼ぶ)と、その仮想ボリュームVVOLにチャンク33を提供するパリティグループ3に要求するRAIDレベル(以下、これを仮想ボリュームVVOLの信頼性要件)とを指定することができる。
そしてストレージ装置101(図1)のコントローラ102(図1)は、これら重要度と、仮想ボリュームVVOLの性能要件及び信頼性要件とのうち、特に重要度及び仮想ボリュームVVOLの性能要件に基づいて、図31に示すように、その仮想ボリュームVVOLに対するチャンク33の割当て方法を切り換える。
具体的にコントローラ102は、例えば重要度が「高」に設定された仮想ボリュームVVOLに対しては、第1の実施の形態と同様に、同一パリティグループ31のチャンク33を割り当て、さらにデータを二重化する。またコントローラ11は、重要度が「中」に設定された仮想ボリュームVVOLに対しては、同一パリティグループ31のチャンク33を割り当てる。さらにコントローラ102は、重要度が「低」に設定された仮想ボリュームVVOLに対しては、データが複数のパリティグループ31に分散するように、複数のパリティグループ31のチャンク33を割り当てる。
この際、コントローラ102は、仮想ボリュームVVOLに割り当てるチャンク33として、仮想ボリュームVVOLに要求される性能が「高」のときには、高性能のハードディスク装置30(図3)から構成されるパリティグループ31のチャンク33を選択し、仮想ボリュームVVOLに要求される性能が「中」のときには、中性能のハードディスク装置30から構成されるパリティグループ31のチャンク33を選択し、仮想ボリュームVVOLに要求される性能が「低」のときには、かかるチャンク33として低性能のハードディスク装置30から構成されるパリティグループ31のチャンク33を選択する。
このような制御を行うための手段として、本実施の形態の場合、図4のようにストレージ装置4のメモリ13に格納された各種テーブルのうち、仮想ボリューム管理テーブル103及びプール管理テーブル104の構成が第1の実施の形態と異なる。
すなわち本実施の形態による仮想ボリューム管理テーブル103は、図32に示すように、図6について上述した第1の実施の形態による仮想ボリューム管理テーブル51に対して性能要件欄103G及び信頼性要件欄103Hを追加した構成を有する。そして性能要件欄103Gには、対応する仮想ボリュームVVOLについてシステム管理者により指定された性能要件が格納され、信頼性要件欄103Hには、その仮想ボリュームVVOLについてシステム管理者により指定された信頼性要件が格納される。
従って、図32の例の場合、「v101」という仮想ボリュームVVOLについては、重要度及びその性能要件がともに「高」に設定され、その仮想ボリュームVVOLの信頼性要件として「RAID 6」が設定されていることが示されている。また図32の例の場合、「v102」という仮想ボリュームVVOLについては、重要度が「高」、その性能要件が「中」に設定され、信頼性要件については指定されていないことが示されている。
また仮想プールテーブル104は、図33に示すように図8について上述した第1の実施の形態による仮想プールテーブル53に対してRAIDレベル欄104Hを追加した構成を有する。そしてこのRAIDレベル欄104Hには、対応するパリティグループ31についてシステム管理者により設定されたそのパリティグループ31のRAIDレベルが格納される。
図10との対応部分に同一符号を付した図34は、第2の実施の形態による計算機システム100において、管理計算機110(図1)を操作して当該管理計算機110に実装された仮想ボリューム作成用入出力プログラム111(図1)を起動したときに、当該管理計算機10に表示される仮想ボリューム作成画面112を示す。
この仮想ボリューム作成画面112は、ストレージ装置名入力フィールド61、割当先PID入力フィールド62、割当先LUN入力フィールド63、容量入力フィールド64、データ移行閾値入力フィールド65及び重要度入力フィールド66に加えて、そのとき作成しようとする仮想ボリュームVVOLの要求性能を入力するための性能要件フィールド113と、その仮想ボリュームVVOLの信頼性要件を入力するための信頼性要件フィールド114とを備える。
システム管理者は、この仮想ボリューム作成画面112のトレージ装置名入力フィールド61、割当先PID入力フィールド62、割当先LUN入力フィールド63、容量入力フィールド64、データ移行閾値入力フィールド65、重要度入力フィールド66、性能要件フィールド113及び信頼性要件フィールド114にそれぞれ必要な情報を入力した後、作成ボタン67をクリックすることによって、この仮想ボリューム作成画面112上で設定した各種情報を仮想ボリューム作成要求として、管理計算機110からかかる仮想ボリュームVVOLの作成先となるストレージ装置101に送信させることができる。
そしてこの仮想ボリューム作成要求を受信したストレージ装置101のコントローラ102は、第1の実施の形態と同様に、当該仮想ボリューム作成要求に含まれる各種情報に基づいて、システム管理者により指定された仮想ボリュームVVOLを当該ストレージ装置101内に作成する。この際コントローラ102は、そのとき作成した仮想ボリュームVVOLの性能要件及び信頼性要件を仮想ボリューム管理テーブル103(図32)の性能要件欄103G及び信頼性要件欄104Gに格納する。
図35は、図12について上述したチャンク割当て処理のステップSP11において行われる第2の実施の形態による重要度高ボリューム割当て処理の処理手順を示している。コントローラ102は、この重要度高ボリューム割当て処理をメモリ13(図4)に格納された重要度高ボリューム割当てプログラム120に基づいて実行する。
この場合において、この重要度高ボリューム割当て処理のステップSP100、ステップSP101及びステップSP104〜ステップSP108の処理内容は、図13について上述した第1の実施の形態による重要度高ボリューム割当て処理のステップSP20〜ステップSP26と同様である。
ただし、本重要度高ボリューム割当て処理の場合、コントローラ11は、ステップSP101において肯定結果を得ると、いずれの仮想ボリュームVVOLにも割り当てられていない未割当てのチャンク33を有する各パリティグループ31のうちの少なくとも2つのパリティグループ31が、仮想ボリューム管理テーブル103(図32)の対応するエントリ(そのときチャンク33を割り当てようとしている仮想ボリュームVVOLに対応するエントリ)の性能要件欄103Gに格納された性能要件を満たすか否かを判断する(SP102)。
コントローラ102は、この判断において否定結果を得るとホスト計算機2にエラーを通知する(SP104)。これに対してコントローラ102は、この判断において肯定結果を得ると、かかる性能要件を満たすパリティグループ31のうち、少なくとも2つのパリティグループ31が、仮想ボリューム管理テーブル103の対応するエントリ(そのときチャンク33を割り当てようとしている仮想ボリュームVVOLに対応するエントリ)の信頼性要件欄103Hに格納された信頼性要件を満たすか否かを判断する(SP103)。
そしてコントローラ102は、この判断において否定結果を得るとホスト計算機2にエラーを通知する(SP104)。これに対してコントローラ102は、この判断において肯定結果を得ると、かかる性能要件及び信頼性要件を満たす2つのパリティグループ31がそれぞれ提供する未割当てのチャンク33を1つずつアクセス要求において指定された仮想ボリュームVVOL内の当該アクセス要求において指定されたデータブロック34(図3)に割り当てる(SP108)。
一方、図36は、図12について上述したチャンク割当て処理のステップSP12において行われる第2の実施の形態による重要度中ボリューム割当て処理の処理手順を示している。コントローラ102は、この重要度中ボリューム割当て処理をメモリ13(図4)に格納された重要度中ボリューム割当てプログラム121に基づいて実行する。
この場合において、この重要度中ボリューム割当て処理のステップSP110、ステップSP111及びステップSP114〜ステップSP118は、図21について上述した第1の実施の形態による重要度中ボリューム割当て処理のステップSP40〜ステップSP46と同様である。
ただし、本重要度中ボリューム割当て処理の場合、コントローラ102は、ステップSP111において肯定結果を得ると、いずれの仮想ボリュームVVOLにも割り当てられていない未割当てのチャンク33を有するパリティグループ31が、仮想ボリューム管理テーブル103(図23)の対応するエントリ(そのときチャンク33を割り当てようとしている仮想ボリュームVVOLに対応するエントリ)の性能要件欄103Gに格納された性能要件を満たすか否かを判断する(SP112)。
コントローラ102は、この判断において否定結果を得るとホスト計算機2にエラーを通知する(SP114)。これに対してコントローラ102は、この判断において肯定結果を得ると、かかる性能要件を満たすパリティグループ31のうち、さらに仮想ボリューム管理テーブル103の対応するエントリ(そのときチャンク33を割り当てようとしている仮想ボリュームVVOLに対応するエントリ)の信頼性要件欄103Hに格納された信頼性要件を満たすパリティグループ31が存在するか否かを判断する(SP113)。
そしてコントローラ102は、この判断において否定結果を得るとホスト計算機2にエラーを通知する(SP114)。これに対してコントローラ102は、この判断において肯定結果を得ると、かかる性能要件及び信頼性要件を満たすパリティグループ31が提供する未割当てのチャンク33をその仮想ボリュームVVOLに割り当てる(SP118)。
他方、図37は、図12について上述したチャンク割当て処理のステップSP13において行われる第2の実施の形態による重要度低ボリューム割当て処理の処理手順を示している。コントローラ102は、この重要度低ボリューム割当て処理をメモリ13(図4)に格納された重要度低ボリューム割当てプログラム122(図4)に従って実行する。
この場合において、この重要度低ボリューム割当て処理のステップSP120、ステップSP121及びステップSP124〜ステップSP129は、図22について上述した第1の実施の形態による重要度低ボリューム割当て処理のステップSP50〜ステップSP57と同様である。
ただし、本重要度低ボリューム割当て処理の場合、コントローラ102は、ステップSP121において肯定結果を得ると、いずれの仮想ボリュームVVOLにも割り当てられていない未割当てのチャンク33を有するパリティグループ31が、仮想ボリューム管理テーブル103(図32)の対応するエントリ(そのときチャンク33を割り当てようとしている仮想ボリュームVVOLに対応するエントリ)の性能要件欄103Gに格納された性能要件を満たすか否かを判断する(SP122)。
コントローラ102は、この判断において否定結果を得るとホスト計算機2にエラーを通知する(SP124)。これに対してコントローラ102は、この判断において肯定結果を得ると、かかる性能要件を満たすパリティグループ31のうち、さらに仮想ボリューム管理テーブル103の対応するエントリ(そのときチャンク33を割り当てようとしている仮想ボリュームVVOLに対応するエントリ)の信頼性要件欄103Hに格納された信頼性要件を満たすパリティグループ31が存在するか否かを判断する(SP123)。
そしてコントローラ102は、この判断において否定結果を得るとホスト計算機2にエラーを通知する(SP124)。これに対してコントローラ102は、この判断において肯定結果を得ると、かかる性能要件及び信頼性要件を満たすパリティグループ31が提供する未割当てのチャンク33をその仮想ボリュームVVOLに割り当てる(SP129)。
以上の処理により、コントローラ102は仮想ボリュームVVOLに対してシステム管理者により指定された性能要件及び信頼性要件を満たすチャンク33を割り当てることができる。
以上のように本実施の形態による計算機システム100では、仮想ボリュームVVOLに要求する性能や信頼性をも指定することができるため、第1の実施の形態により得られる効果に加えて、より一層と使用者のニーズに応じた細かい設定を行い得るAOU機能を提供することができ、かくして計算機システム100の使い勝手をより一層と向上させることができる。
(3)第3の実施の形態
図1において、200は第3の実施の形態による計算機システムを示す。この計算機システム200は、重要度が「高」又は「中」の仮想ボリュームVVOLを作成した段階で、ストレージ装置201のコントローラ202が、その仮想ボリュームVVOLの各データブロック34(図3)に対してそれぞれ事前にチャンク33を割り当てる点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
図1において、200は第3の実施の形態による計算機システムを示す。この計算機システム200は、重要度が「高」又は「中」の仮想ボリュームVVOLを作成した段階で、ストレージ装置201のコントローラ202が、その仮想ボリュームVVOLの各データブロック34(図3)に対してそれぞれ事前にチャンク33を割り当てる点を除いて第1の実施の形態による計算機システム1と同様に構成されている。
すなわち本実施の形態による計算機システム200では、例えば管理計算機5からストレージ装置201に対して重要度が「高」又は「中」の仮想ボリュームVVOLの作成要求が与えられた場合、ストレージ装置201のコントローラ202は、いずれも当該仮想ボリュームVVOLの容量よりも多い残容量を有する2つのパリティグループ31からそれぞれ当該仮想ボリュームVVOLの容量と同じ容量分のチャンク33を予め確保する。
そしてコントローラ202は、このようにして確保した各チャンク33を予めかかる仮想ボリュームVVOLの各データブロック34にそれぞれ関連付けておき、この後、ホスト計算機2からその仮想ボリュームVVOLにライト要求があったときに、上述のように関連付けたチャンク33を当該仮想ボリュームVVOLに割り当てる。
図38は、このような第3の実施の形態による計算機システム200において、管理計算機5からのボリューム作成要求に応じてストレージ装置201のコントローラ202が、指定された仮想ボリュームVVOLを作成した直後に実行するチャンク事前割当て処理の処理手順を示す。コントローラ202は、図39のようにメモリ13に格納されたチャンク事前割当てプログラム203に基づいて、この図38に示すチャンク事前割当て処理を実行する。
すなわちコントローラ202は、管理計算機5からのボリューム作成要求に応じて要求された仮想ボリュームVVOLを作成すると、このチャンク事前割当て処理を開始し、まず、そのとき作成した仮想ボリュームVVOLの重要度を、管理計算機5から事前に受けたその仮想ボリュームVVOLのボリューム作成要求に基づいて判断する(SP130)。
そしてコントローラ202は、かかる仮想ボリュームVVOLの重要度が「高」であった場合には、そのとき作成した仮想ボリュームVVOLの容量以上の残容量を有する品質レベルが「高」のパリティグループ31が少なくとも2つ存在するか否かを判断する(SP131)。
そしてコントローラ202は、この判断において否定結果を得ると、そのとき作成した仮想ボリュームVVOLのボリューム作成要求に対するエラー通知を管理計算機5に送信する(SP132)。この結果、管理計算機5では、かかるエラー通知に応じて、『指定された容量・重要度の仮想ボリュームは作成できません』といった警告を表示する。なお、かかる警告に代えて、『重要度低の仮想ボリュームとして、別パリティグループに分散してもよろしければ、仮想ボリュームを作成できます』といったメッセージを管理計算機5に表示させるようにしても良い。そして、コントローラ202は、この後、このチャンク事前割当て処理を終了する。
これに対してコントローラ202は、ステップSP131の判断において肯定結果を得ると、そのとき作成した仮想ボリュームVVOLの全データブロック34に対して、異なる2つのパリティグループ31のチャンク33をそれぞれ当該パリティグループ31ごとに1チャンクずつ割り当てる(SP133)。そして、コントローラ202は、この後、このチャンク事前割当て処理を終了する。
一方、コントローラ202は、そのとき作成した仮想ボリュームVVOLの重要度が「中」であった場合には、そのとき作成した仮想ボリュームVVOLの容量以上の残容量を有する品質レベルが「高」又は「中」のパリティグループ31が存在するか否かを判断する(SP134)。
そしてコントローラ202は、この判断において否定結果を得るとステップSP132に進み、これに対して肯定結果を得ると、そのとき作成した仮想ボリュームVVOLの全データブロック34に対して、ステップSP134において検出したパリティグループ31のチャンク33を1チャンク分ずつ割り当てる(SP135)。そして、コントローラ202は、この後、このチャンク事前割当て処理を終了する。
以上のように本実施の形態による計算機システム200では、重要度が「高」又は「中」の仮想ボリュームVVOLを作成した段階で、その仮想ボリュームVVOLの各データブロック34(図3)に対してそれぞれ事前にチャンク33を割り当てるため、例えばコントローラ202が上述したプール残容量監視処理のような煩雑な処理を行う必要がなく、その分コントローラ202の負荷を低減することができる。従って、例えば性能が低いストレージ装置において、プール残容量監視処理に起因するデータ入出力処理の性能の低下を未然にかつ有効に防止することができる。
(4)他の実施の形態
なお上述の第1〜第3の実施の形態においては、本発明を図1のように構成された計算機システム1,100,200に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の計算機システムに広く適用することができる。
なお上述の第1〜第3の実施の形態においては、本発明を図1のように構成された計算機システム1,100,200に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の計算機システムに広く適用することができる。
また上述の第1〜第3の実施の形態においては、仮想ボリュームVVOLの重要度を「高」、「中」及び「低」の3段階に分けるようにした場合について述べたが、本発明はこれに限らず、2段階又は4段階以上に分けるようにしても良い。
同様に、上述の第1〜第3の実施の形態においては、パリティグループの品質レベルを「高」、「中」及び「低」の3段階に分けるようにした場合について述べたが、本発明はこれに限らず、2段階又は4段階以上に分けるようにしても良い。
さらに上述の実施の形態においては、仮想ボリュームVVOLにそれぞれ設定された重要度を管理する管理部を、ストレージ装置4のコントローラ11,102,202と、仮想ボリューム制御プログラム40とにより構成し、仮想ボリュームVVOLに記憶領域(チャンク33)を動的に割り当てる記憶領域割当て部を、かかるコントローラ11,102,202と、チャンク割当てプログラム41、重要度高ボリューム割当てプログラム42,120、重要度中ボリューム割当てプログラム43,121及び重要度低ボリューム割当てプログラム43,122により構成し、仮想ボリュームVVOLに割り当てられた記憶領域(チャンク33)に対するホスト装置(ホスト計算機2)からのデータの読み書きを制御する制御部を、コントローラ11,102,202により構成するようにした場合について述べたが、本発明はこれに限らず、これら管理部、記憶領域割当て部及び制御部の構成としては、この他種々の構成を広く適用することができる。
本発明は、AOU機能が搭載されたストレージ装置に広く適用することができる。
1,100,200……計算機システム、2……ホスト計算機、4,101,201……ストレージ装置、5,110……管理計算機、11,102,202……コントローラ、12,20……CPU、13,21……メモリ、24,111……仮想ボリューム作成用入出力プログラム、30……ハードディスク、31……パリティグループ、32……プール、33……チャンク、34……データブロック、40……仮想ボリューム制御プログラム、41……チャンク割当てプログラム、42,120……重要度高ボリューム割当てプログラム、43,121……重要度中ボリューム割当てプログラム、44,122……重要度低ボリューム割当てプログラム、45……仮想ボリューム移行プログラム、46……プール残容量監視プログラム、47……チャンク再配置プログラム、48……障害ボリューム復旧プログラム、50……実ボリューム管理テーブル、51,103……仮想ボリューム管理テーブル、52……割当てチャンク管理テーブル、53,104……プール管理テーブル、54……パリティグループテーブル、55……プール残容量監視テーブル、60,112……仮想ボリューム作成画面、203……チャンク事前割当てプログラム、RVOL……実ボリューム、VVOL……仮想ボリューム、PLVOL……プールボリューム。
Claims (10)
- 仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置において、
前記仮想ボリュームにそれぞれ設定された重要度を管理する管理部と、
前記仮想ボリュームに記憶領域を動的に割り当てる記憶領域割当て部と
を備え、
前記記憶領域割当て部は、
前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とするストレージ装置。 - 前記記憶装置グループは、
複数の前記記憶装置から構成されるRAID(Redundant Array of Inexpensive Disks)方式で運用されるパリティグループである
ことを特徴とする請求項1に記載のストレージ装置。 - 前記仮想ボリュームに割り当てられた前記記憶領域に対する前記ホスト装置からの前記データの読み書きを制御する制御部を備え、
前記記憶領域割当て部は、
前記重要度が高い前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域と、当該パリティグループと異なる他の1つの前記記憶装置グループが提供する記憶領域とをそれぞれ割り当て、
前記制御部は、
前記重要度が高い前記仮想ボリュームについては、前記ホスト装置からの前記データを、前記仮想ボリュームに割り当てられた2つの前記記憶領域の双方に書き込む
ことを特徴とする請求項1に記載のストレージ装置。 - 前記記憶領域割当て部は、
前記重要度が中の前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とする請求項3に記載のストレージ装置。 - 前記管理部は、
前記記憶領域の品質レベルを管理し、
前記記憶領域割当て部は、
前記重要度が相対的に高い前記仮想ボリュームに対しては前記品質レベルが相対的に高い前記記憶領域を割り当て、前記重要度が相対的に低い前記仮想ボリュームに対しては前記品質レベルが相対的に低い前記記憶領域を割り当てる
ことを特徴とする請求項1に記載のストレージ装置。 - 仮想的なボリュームである仮想ボリュームをホスト装置に提示し、前記仮想ボリュームの使用状況に応じてデータを格納するための物理的な記憶領域を当該仮想ボリュームに動的に割り当てるストレージ装置の制御方法において、
前記仮想ボリュームにそれぞれ設定された重要度を管理する第1のステップと、
前記仮想ボリュームに記憶領域を動的に割り当てる第2のステップと
を備え、
前記第2のステップでは、
前記重要度に基づいて、重要度が低い前記仮想ボリュームに対しては、それぞれ複数の記憶装置から構成される複数の記憶装置グループが提供する記憶領域を割り当て、他の前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とするストレージ装置の制御方法。 - 前記記憶装置グループは、
複数の記憶装置から構成されるRAID(Redundant Array of Inexpensive Disks)方式で運用されるパリティグループである
ことを特徴とする請求項6に記載のストレージ装置の制御方法。 - 前記仮想ボリュームに割り当てられた前記記憶領域に対する前記ホスト装置からの前記データの読み書きを制御する第3のステップを備え、
前記第2のステップでは、
前記重要度が高い前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域と、当該パリティグループと異なる他の1つの前記記憶装置グループが提供する記憶領域とをそれぞれ割り当て、
前記第3のステップでは、
前記重要度が高い前記仮想ボリュームについては、前記ホスト装置からの前記データを、前記仮想ボリュームに割り当てられた2つの前記記憶領域の双方に書き込む
ことを特徴とする請求項6に記載のストレージ装置の制御方法。 - 前記第2のステップでは、
前記重要度が中の前記仮想ボリュームに対しては、1つの前記記憶装置グループが提供する記憶領域を割り当てる
ことを特徴とする請求項8に記載のストレージ装置の制御方法。 - 前記第1のステップでは、
前記記憶領域の品質レベルを管理し、
前記第2のステップでは、
前記重要度が相対的に高い前記仮想ボリュームに対しては前記品質レベルが相対的に高い前記記憶領域を割り当て、前記重要度が相対的に低い前記仮想ボリュームに対しては前記品質レベルが相対的に低い前記記憶領域を割り当てる
ことを特徴とする請求項6に記載のストレージ装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008134939A JP2009282800A (ja) | 2008-05-23 | 2008-05-23 | ストレージ装置及びその制御方法 |
US12/169,792 US20090292870A1 (en) | 2008-05-23 | 2008-07-09 | Storage apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008134939A JP2009282800A (ja) | 2008-05-23 | 2008-05-23 | ストレージ装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009282800A true JP2009282800A (ja) | 2009-12-03 |
Family
ID=41342924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008134939A Pending JP2009282800A (ja) | 2008-05-23 | 2008-05-23 | ストレージ装置及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090292870A1 (ja) |
JP (1) | JP2009282800A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011133944A (ja) * | 2009-12-22 | 2011-07-07 | Nec Corp | ストレージ装置及びそのストレージ装置の記憶容量拡張方法 |
WO2011108027A1 (ja) * | 2010-03-04 | 2011-09-09 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
WO2012081089A1 (ja) * | 2010-12-15 | 2012-06-21 | 株式会社日立製作所 | 計算機システムの管理装置及び管理方法 |
WO2014104399A1 (ja) * | 2012-12-27 | 2014-07-03 | 日本電気株式会社 | 情報記録再生装置及び記録再生方法 |
WO2014115320A1 (ja) * | 2013-01-25 | 2014-07-31 | 株式会社日立製作所 | ストレージシステム及びデータ管理方法 |
KR20200074610A (ko) * | 2018-12-17 | 2020-06-25 | 한국전자통신연구원 | 토러스 네트워크 기반 분산 파일 시스템 볼륨 성능 최적화 장치 및 방법 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886909B1 (en) | 2008-03-31 | 2014-11-11 | Emc Corporation | Methods, systems, and computer readable medium for allocating portions of physical storage in a storage array based on current or anticipated utilization of storage array resources |
JP5277991B2 (ja) * | 2009-01-27 | 2013-08-28 | 富士通株式会社 | 割当制御プログラム、割当制御装置及び割当制御方法 |
EP2450785A1 (en) * | 2009-10-09 | 2012-05-09 | Hitachi Ltd. | Data storage controller and virtual volume control method |
US8924681B1 (en) * | 2010-03-31 | 2014-12-30 | Emc Corporation | Systems, methods, and computer readable media for an adaptative block allocation mechanism |
US9330105B1 (en) | 2010-05-07 | 2016-05-03 | Emc Corporation | Systems, methods, and computer readable media for lazy compression of data incoming to a data storage entity |
US9311002B1 (en) | 2010-06-29 | 2016-04-12 | Emc Corporation | Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity |
US8578108B2 (en) | 2010-08-03 | 2013-11-05 | International Business Machines Corporation | Dynamic look-ahead extent migration for tiered storage architectures |
US9052825B2 (en) * | 2010-08-30 | 2015-06-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US9411517B2 (en) | 2010-08-30 | 2016-08-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US9348515B2 (en) * | 2011-01-17 | 2016-05-24 | Hitachi, Ltd. | Computer system, management computer and storage management method for managing data configuration based on statistical information |
US9195393B1 (en) * | 2014-05-30 | 2015-11-24 | Vmware, Inc. | Customizable virtual disk allocation for big data workload |
US20150370816A1 (en) * | 2014-06-18 | 2015-12-24 | Netapp, Inc. | Load-balancing techniques for auditing file accesses in a storage system |
CN113867642B (zh) * | 2021-09-29 | 2023-08-04 | 杭州海康存储科技有限公司 | 数据处理方法、装置及存储设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651133A (en) * | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
KR100388498B1 (ko) * | 2000-12-30 | 2003-06-25 | 한국전자통신연구원 | 복수 개의 레이드를 구비한 계층적 레이드 시스템 |
JP4568502B2 (ja) * | 2004-01-09 | 2010-10-27 | 株式会社日立製作所 | 情報処理システムおよび管理装置 |
JP4485230B2 (ja) * | 2004-03-23 | 2010-06-16 | 株式会社日立製作所 | マイグレーション実行方法 |
US20070079068A1 (en) * | 2005-09-30 | 2007-04-05 | Intel Corporation | Storing data with different specified levels of data redundancy |
JP4940738B2 (ja) * | 2006-04-12 | 2012-05-30 | 株式会社日立製作所 | 記憶領域動的割当方法 |
-
2008
- 2008-05-23 JP JP2008134939A patent/JP2009282800A/ja active Pending
- 2008-07-09 US US12/169,792 patent/US20090292870A1/en not_active Abandoned
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011133944A (ja) * | 2009-12-22 | 2011-07-07 | Nec Corp | ストレージ装置及びそのストレージ装置の記憶容量拡張方法 |
WO2011108027A1 (ja) * | 2010-03-04 | 2011-09-09 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
US8645750B2 (en) | 2010-03-04 | 2014-02-04 | Hitachi, Ltd. | Computer system and control method for allocation of logical resources to virtual storage areas |
WO2012081089A1 (ja) * | 2010-12-15 | 2012-06-21 | 株式会社日立製作所 | 計算機システムの管理装置及び管理方法 |
WO2014104399A1 (ja) * | 2012-12-27 | 2014-07-03 | 日本電気株式会社 | 情報記録再生装置及び記録再生方法 |
JP2014127076A (ja) * | 2012-12-27 | 2014-07-07 | Nec Corp | 情報記録再生装置及び記録再生方法 |
US10198181B2 (en) | 2012-12-27 | 2019-02-05 | Nec Corporation | Information record/reproduction apparatus and record/reproduction method |
JPWO2014115320A1 (ja) * | 2013-01-25 | 2017-01-26 | 株式会社日立製作所 | ストレージシステム |
CN104956309A (zh) * | 2013-01-25 | 2015-09-30 | 株式会社日立制作所 | 存储系统及数据管理方法 |
JP5971354B2 (ja) * | 2013-01-25 | 2016-08-17 | 株式会社日立製作所 | ストレージシステム |
GB2524433A (en) * | 2013-01-25 | 2015-09-23 | Hitachi Ltd | Storage system and data management method |
CN104956309B (zh) * | 2013-01-25 | 2017-12-12 | 株式会社日立制作所 | 存储系统及数据管理方法 |
US10168919B2 (en) | 2013-01-25 | 2019-01-01 | Hitachi, Ltd. | System and data management method |
WO2014115320A1 (ja) * | 2013-01-25 | 2014-07-31 | 株式会社日立製作所 | ストレージシステム及びデータ管理方法 |
US10528274B2 (en) | 2013-01-25 | 2020-01-07 | Hitachi, Ltd. | Storage system and data management method |
GB2524433B (en) * | 2013-01-25 | 2020-11-25 | Hitachi Ltd | Storage system and data management method |
US11327661B2 (en) | 2013-01-25 | 2022-05-10 | Hitachi, Ltd. | Storage system and data management method |
US11941255B2 (en) | 2013-01-25 | 2024-03-26 | Hitachi, Ltd. | Storage system and data management method |
KR20200074610A (ko) * | 2018-12-17 | 2020-06-25 | 한국전자통신연구원 | 토러스 네트워크 기반 분산 파일 시스템 볼륨 성능 최적화 장치 및 방법 |
KR102252199B1 (ko) * | 2018-12-17 | 2021-05-14 | 한국전자통신연구원 | 토러스 네트워크 기반 분산 파일 시스템 볼륨 성능 최적화 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20090292870A1 (en) | 2009-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009282800A (ja) | ストレージ装置及びその制御方法 | |
US10452299B2 (en) | Storage system having a thin provisioning function | |
JP5603941B2 (ja) | 計算機システム及びデータ移行方法 | |
US8886906B2 (en) | System for data migration using a migration policy involving access frequency and virtual logical volumes | |
JP5608016B2 (ja) | オブジェクト単位階層の管理方法及び装置 | |
EP2375329B1 (en) | Methods and apparatus for managing error codes for storage systems coupled with external storage systems | |
US7480780B2 (en) | Highly available external storage system | |
EP1818795A2 (en) | Storage system, data processing method and storage apparatus | |
WO2010097961A1 (en) | Storage apparatus and its control method | |
JP5250482B2 (ja) | 省電力制御装置及び方法 | |
US8578121B2 (en) | Computer system and control method of the same | |
WO2010106574A1 (ja) | 記憶制御装置及び仮想ボリュームの制御方法 | |
EP1837767B1 (en) | Storage system and data management method | |
JP2009217379A (ja) | ストレージシステム及びその管理方法 | |
JP2008181416A (ja) | 記憶システム及びデータ管理方法 | |
WO2010106694A1 (en) | Data backup system and data backup method | |
US8151048B1 (en) | Managing storage pool provisioning | |
JP5890268B2 (ja) | ストレージサブシステムのシンプロビジョニングプールにおけるボリュームコピー管理方法 | |
JP5715297B2 (ja) | ストレージ装置及びその制御方法 | |
JP2007286806A (ja) | 記憶システム及びデータ保存方法 | |
JP2011028520A (ja) | ディスクアレイ装置及び物理ディスクの復元方法 | |
WO2011027388A1 (en) | Storage system and control method | |
JP5549249B2 (ja) | ストレージ装置、ストレージ装置のデータ復元方法及びストレージコントローラ | |
WO2013076779A1 (en) | Storage apparatus and its method for selecting a location where storing differential data based on detection of snapshot deletion behaviour | |
JP2008059089A (ja) | 記憶システム及びデータ管理移行方法 |