以下、本発明の一実施形態を説明する。
(第1の実施形態)
図1は、本発明の一実施形態に係る仮想ストレージシステムの物理的な構成を示す。
グループ101は、管理サーバ102及び、1台または複数のホスト103を含む。グループ101は、SAN(Storage Area Network)におけるホストグループに相当する。
ホスト103はポート104を含む。ポート104は、例えばFC(Fiber Channel)やSATA(Serial Advanced Technology Attachment)等のインターフェイスで実装される。ホスト103は、ポート104から、ネットワーク119を介して、仮想ストレージ装置106のポート108と通信する。ホスト103が発行するread/write命令(I/Oリクエスト)は、ポート104、ネットワーク119、ポート108を介して物理ストレージ装置120に伝えられる。物理ストレージ装置120は結果のデータ等をポート122、ネットワーク119、ポート104を介してホスト103に送信する。
ホスト103は情報を記憶する部品であるメモリ1003やHDD(Hard Disk Drive)1004を持ち、メモリ1003やHDD1004に格納したプログラムを、メモリ1003やHDD1004に格納したデータに基づいて実行するプロセッサ1002を持ち、他の計算機やストレージ装置と通信するためのLAN(Local Area Network)やiSCSI(Internet Small Computer System Interface)等のI/F1005を持つ。
管理サーバ102も、上記で説明したホスト103と同等のハードウェア構成を持つ装置である。
管理サーバ102はI/F1005からネットワーク105を介して、物理ストレージ装置120の管理I/F121と通信する。管理I/F121及びネットワーク105はLAN等によって実装する。管理サーバ102は、ネットワーク105を介して、物理ストレージ装置120にプログラムの操作の指示等を送信する。プログラムとは、ストレージ装置の機能(リモートコピーやローカルコピー機能等)を表す。管理サーバ102はグループ101毎に存在してもよい。
物理ストレージ装置120は管理I/F121を持つ。管理I/F121は、例えばLAN等のI/Fとして実装する。
物理ストレージ装置120はポート122を1個以上持つ。ポート122は、例えばFC等のインターフェイスで実装される。
物理ストレージ装置120は制御部123を持つ。制御部123は、制御プロセッサ124と制御メモリ125を持つ。制御プロセッサ124は、制御メモリ125に格納した各種プログラムやデータを参照してさまざまな処理を実行する。例えば、制御プロセッサ124は、ホスト103から受けたread/write命令や、後述する仮想ストレージ装置106と物理ストレージ装置120の対応関係を求める処理等を実行する。
物理ストレージ装置120は物理ドライブ127を持つ。物理ドライブ127は例えば、HDDや、SSD(Solid State Drive)等の、一般に電源をOFFにしてもデータが消えない、不揮発性の記憶装置で実装される。 物理ストレージ装置120はキャッシュメモリ126を持つ。キャッシュメモリ126は、一般に物理ドライブ127よりも高速アクセスが可能なRAM(Random Access Memory)等で実装する。また、キャッシュメモリ126は、複数のメモリスロット130を持っている。制御プロセッサ124で実行されるプログラム等が物理ドライブ127に格納するデータを一時的にキャッシュメモリ126に格納することにより、ホスト103へのデータの送信を高速化する効果がある。
物理ストレージ装置120は外部接続ポート128を持つ。物理ストレージ装置120は、外部接続ポート128により、外部ストレージ装置と通信する。外部接続ポート128は、例えばFC等のインターフェイスで実装する。ただし、ポート122はSCSIにおけるターゲットの機能を有しているのに対して、外部接続ポート128はSCSIにおけるイニシエータの機能を有している。イニシエータの機能によって、物理ストレージ装置120は外部ストレージ装置129と互いに通信し、外部ストレージ装置129の記憶領域すなわち外部ボリュームを、物理ストレージ装置120が備える記憶領域すなわち物理ドライブ127の代わりに用いることができる。
また、上述の構成において、管理サーバ102は、ネットワーク119を介して物理ストレージ装置120と通信し、操作の指示等を送信してもよい。具体的には、物理ストレージ装置120が管理のための専用のボリューム、(コマンドデバイスと呼ぶ)を用意し、管理サーバ102からアクセスすることにより通信する。
本明細書の仮想ストレージシステムでは、3つの階層で仮想ストレージ装置106を構成する機能部品を定義している。3つの階層とは、物理レイヤと、資源プールと、仮想レイヤである。
物理レイヤとは物理ドライブ等の物理的なデバイスを指す階層である。本明細書では、“物理資源”と説明する場合はこの物理レイヤに属するデバイス一般を指す。
資源プールは、資源ボリュームの集合である。資源ボリュームは、仮想ストレージ装置106に割り当てて使用する。本明細書では、“資源”と説明する場合はこの資源プールに属する論理的なデバイス一般を指す。資源は、物理ストレージ装置120の範囲で番号を振り、この番号を資源番号と呼ぶ。
仮想レイヤとは、仮想ストレージ装置106に割り当てた資源を指す階層である。本明細書では、“仮想資源”と説明する場合はこの仮想レイヤに属するデバイス一般を指す。仮想レイヤでは、仮想ストレージ装置106の範囲で番号を振り、この番号を仮想資源番号と呼ぶ。
詳細については、図3にボリューム、キャッシュメモリ、制御部における物理レイヤと資源プールの階層の関係と資源プールと仮想レイヤの階層の関係を示す。
図2は、本発明の第1の実施形態に係る仮想ストレージシステムの物理的な構成と仮想ストレージ装置106の対応関係を示す。
本発明の仮想ストレージシステムでは、1台の物理的なストレージ装置を複数台の仮想ストレージ装置106として使用することができる。よって、グループ101毎に仮想的ストレージ装置106を使用できる。また、管理サーバ102によって、グループ101毎に管理することができる。1台の物理的なストレージ装置を複数台の仮想ストレージ装置106として提供する方法については、後ほど図3で詳細を述べる。また、一般的に、仮想ストレージシステムでは、複数のグループ101が存在している。
仮想ストレージ装置106は管理I/F107を持つ。管理サーバ102はネットワーク105を介して、仮想ストレージ装置106の管理I/F107と通信する。管理I/F107の実体は、物理ストレージ装置120の管理I/F121である。管理I/F107A及び107Bは物理的に一つの管理I/F121に対応する。図2では管理サーバ102A、102Bがそれぞれ、管理I/F107A及び107Bにアクセスしている。この場合、管理I/F121は、イーサネット(登録商標)の同一IPアドレスのポート番号で管理サーバ102Aと102Bを区別する。または、管理I/F121に1個の管理I/FでIPアドレスを複数持つ方法等を実装することで管理サーバ102Aと102Bを区別しても良い。
管理サーバ102はグループ101毎に存在しているため、グループ101毎の管理者がそれぞれで仮想ストレージ装置106を管理することができる。
仮想ストレージ装置106はポート108を持つ。物理ストレージ装置120のポート122は仮想ストレージ装置106におけるポート108に対応している。ポート122はポート108と1対1に対応させて実装される。
仮想ストレージ装置106は仮想制御部109を持つ。仮想制御部109はポート108がホストから受けたread/writereadre命令等を実行する。物理ストレージ装置120の制御部123が、仮想ストレージ装置106における仮想制御部109に対応する。物理ストレージ装置120は、制御部123の制御プロセッサ124が持つ計算資源を仮想制御部109に割り当てる。割り当て方法等の詳細については、後ほど図3で説明する。
仮想ストレージ装置106は仮想ボリューム111を持つ。仮想ボリューム111はホスト103から受信したデータを保存する記憶領域である。仮想ボリューム111と物理ストレージ装置120のボリュームとの対応関係の詳細については後ほど図3で述べる。
仮想ストレージ装置106は仮想キャッシュメモリ110を持つ。仮想キャッシュメモリ110は仮想ボリューム111に格納するデータを一時的に保存する。一般に仮想キャッシュメモリ110は仮想ボリューム111よりも高速アクセス可能な記憶領域である。物理ストレージ装置120のキャッシュメモリ126は、仮想キャッシュメモリ110に対応する。仮想ストレージシステムでは、仮想ストレージ101ごとに、キャッシュメモリ126の記憶領域の一部が、仮想キャッシュメモリ110として割り当てられる。割り当て方法等の詳細については、後ほど図3で述べる。
図3は、ボリューム、キャッシュメモリ、制御部における物理レイヤと資源プールの階層の関係と、各資源と仮想ストレージ装置106の関係を示している。
まず、物理資源と資源の関係について説明する。
物理ドライブ127を複数台使用し、1つの仮想的なボリュームにするRAID技術が一般的に知られている。RAID技術を使い、物理ドライブ127を複数使用し、資源ボリューム1202が作成される。例えば、物理ストレージ装置120の制御部は、物理ドライブ127A〜Dを4つ使用して、パリティグループ1203Aを作成し、パリティグループの一部を資源ボリューム1202Aとして割り当てる。
物理ストレージ装置120に存在する資源ボリューム1202の集合が、資源ボリュームプール2701である。
資源ボリューム1202とパリティグループの対応関係を示したテーブルが、後に図10で説明する資源ボリューム制御情報3201である。
物理ストレージ装置120は、複数のメモリスロット130を持つ。複数のメモリスロット130が一様な記憶領域のアドレス空間に資源キャッシュメモリ1302として割り当てられる。
資源キャッシュメモリ1302は、資源キャッシュメモリアドレスによって仮想ストレージ装置への割り当て時に識別される。例えば、資源キャッシュメモリアドレスは“(メモリスロット番号×メモリスロットの記憶容量)+メモリスロット上のアドレス”という計算式によって、定義される。メモリスロット番号とは、物理ストレージ装置120が搭載している各メモリスロット130と対応させた、0から始まる番号である。例えば、メモリスロットの記憶容量が256MBで、メモリスロット3番の、メモリスロット上のアドレスが“0x1000000“である場合は、資源キャッシュメモリアドレスは”0x31000000“となる。
物理ストレージ装置120に存在する資源キャッシュメモリ1302の集合が、資源キャッシュメモリプール302である。
また、資源キャッシュメモリアドレスとメモリスロットの対応関係を示したテーブルが、後に図13で説明する資源キャッシュメモリ制御情報902である。
制御プロセッサ上には、I/O処理等のプログラムを実行する主体であるタスク304が存在する。タスク304は、一般的なOSにおける、スレッドやプロセス等と同等である。制御プロセッサ124は、あらかじめ一定数のタスクを起動しておく。各タスクは資源タスクに対応する。
物理ストレージ装置120に存在する資源タスク305の集合が、資源タスクプール303である。
また、資源タスク番号とタスク番号の対応関係を示したテーブルが、後に図14で説明する資源タスク制御情報903である。
次に、資源と仮想ストレージ装置106の関係について説明する。
仮想ボリューム111は、資源ボリューム1202が仮想ストレージ装置1201に、割り当てられた仮想資源である。仮想ボリューム番号は、仮想ストレージ装置毎にユニークに割り振られる。例えば、仮想ストレージ1201Aの仮想ボリューム1202Aの仮想ボリューム番号が1である場合で且つ、仮想ストレージ1201Bの仮想ボリューム1202Bの仮想ボリューム番号が1であってもよい。
資源ボリュームと仮想ボリュームの対応関係を示したテーブルが、仮想ストレージ資源管理情報821である。ホストからのI/Oリクエストの処理(I/O処理)は、これらのテーブルを使う。I/O処理の詳細は後に図26で説明する。
仮想キャッシュメモリは、資源キャッシュメモリ1302が仮想ストレージ装置1201に割り当てられた仮想資源である。仮想キャッシュメモリアドレスは、仮想ストレージ装置毎にユニークに割り振られる。例えば、仮想キャッシュメモリアドレスは、0から始まる連続した記憶領域の空間で表される。この仮想キャッシュメモリアドレスと資源キャッシュメモリアドレスの対応関係を示したテーブルが仮想ストレージ資源管理情報411である。
ホストからのI/O処理は、仮想ストレージ資源管理情報411と物理ストレージ制御情報410を参照して、仮想キャッシュメモリアドレスから、資源キャッシュメモリアドレスを求める。
仮想制御部は、資源タスクプール303から資源タスク305が仮想ストレージ装置1201に割り当てられた仮想資源である。仮想制御部には求められるI/O処理の性能等に基づいて複数の仮想制御部に複数のタスクを割り当ててもよい。
本実施例では、一定数のタスクを起動しておき、資源タスクプールから必要な性能に応じて複数のタスクが仮想ストレージ装置106に割り当てられている。しかし、一般的なOSではタスクに優先度を指定することができる。このため、資源タスクプールの提供方法として、1つの仮想ストレージ装置106に1タスクを割り当て、必要な性能に応じてタスクの優先度を設定する方法もある。
図4は、物理ストレージ装置120の制御部123における、制御プロセッサ124によって実行される、制御メモリ125内にあるプログラム及びデータ構造を表している。
制御メモリ125内には、仮想ストレージ制御情報401が0個以上格納される。仮想ストレージ制御情報401は、物理ストレージ上で実装する個々の仮想ストレージ装置106を制御するための情報を含んでいる。仮想ストレージ制御情報401は、プログラム制御情報402、LUNセキュリティ情報403、LUNマッピング情報404、仮想ストレージ構成情報405を含む。それぞれの情報の詳細については、図5〜8で説明する。また、仮想ストレージ制御情報401は、物理ストレージ装置上にある仮想ストレージ装置106の数だけ存在する。
制御メモリ125内には、物理ストレージ制御情報410が格納されている。物理ストレージ制御情報410は、資源と物理資源の対応関係等を表すテーブルの集合である。詳細については、図10〜14で説明する。
制御メモリ125内には、仮想ストレージ資源管理情報411が格納されている。仮想ストレージ資源管理情報411は、資源と仮想ストレージ装置106の対応関係を表すテーブルである。詳細については、図15で説明する。
制御メモリ125内には、WWN変更通知情報412が格納されている。WWN変更通知情報412は、ホスト側のポートの構成変更時のポートのWWN(World Wide Name)に関する情報を格納している。WWNは、通常ポートの製造時に一意に割り当てられるポートの識別子である。ホスト側の変更通知の詳細については、図25で説明する。
制御メモリ125内には、サスペンド処理421というプログラムが格納されている。サスペンド処理421は、対象の仮想ストレージ装置106をサスペンドして資源を解放する処理であり、管理サーバ102等の指示によって起動する処理である。仮想ストレージ装置106のサスペンドとは、対象の仮想ストレージ装置106に関連する部品の電源を切る等の処理とそのための準備を行うことである。詳細については、フローチャートを用いて後ほど図27で説明する。
制御メモリ125内には、リジューム処理422というプログラムが格納されている。リジューム処理422は、対象の仮想ストレージ装置106がサスペンドしているときに、関連する資源の電源を入れる等の処理とその準備のための処理を実行する処理である。また、リジューム処理422は、資源を仮想ストレージ装置106に割り当てる処理である。詳細については、フローチャートを用いて後ほど図29で説明する。
制御メモリ125内には、ホストコマンド処理423というプログラムが格納されている。ホストコマンド処理423は、制御プロセッサ124が実行ずる。ホストコマンド処理423は、ホストからのread/writeコマンドをポート122が受領したとき、対応するデータを物理ディスク127やキャッシュメモリ126からポートに対して転送する処理等である。具体的には、物理ストレージ装置120は、制御部123に含む、DMA(Direct Memory Access)回路等によって転送を実行する。詳細については、フローチャートを用いて後ほど図28で説明する。
制御メモリ125内には、WWN変更通知受信処理424というプログラムが格納されている。WWN変更通知受信処理424は、ホスト側のポートの構成変更時にポートのWWN情報等をホストから受信する処理を実行するプログラムである。詳細については、フローチャートを用いて後ほど図24で説明する。
次に、仮想ストレージ制御情報401に含まれる、各情報ついて説明する。(図5〜8)
図5は、LUNセキュリティ情報403のデータ構造を表している。
LUNセキュリティ情報403は、LUN511と、アクセス可能WWN512の組の集合である。LUNセキュリティは、SAN環境等において他のホストグループのポートから自分のホストグループのLUNにアクセスされることを防ぐための手段である。
例えば図5だと、LUN511が“3”のボリュームに対してホストがアクセスするには、ホストのポートのWWNは“WWN1”か、“WWN2” か、“WWN3”でなければならない。
図6は、LUNマッピング情報404のデータ構造を表している。
LUNマッピング情報404は、ホストからアクセスするボリュームのLUN611と仮想ボリュームとの対応関係を示す情報である。LUNマッピング情報404は、LUN611と、仮想ストレージボリューム番号612と、LUSE(Logical Unit Size Expansion)情報613の組の集合である。
例えば図6だと、LUN611が“3”のボリュームに対して、ホストがアクセスする場合、ホストは仮想ボリューム番号612が“1”,“2”,“3”,“4”の仮想ボリュームにアクセスすることになる。ここでホストがアクセスする仮想ボリュームが複数あるのは、LUSE情報613が“有り”であるためである。LUSEとは複数のボリュームを1つの大きなボリュームとしてホストに見せる機能である。ホストが、LUN611が“3”のボリュームにアクセスすると、ホストにはボリューム容量が“1”,“2”,“3”,“4”のボリュームの合計のサイズに見えることになる。
図7は、プログラム制御情報402のデータ構造を表している。
プログラム制御情報402は、物理ストレージ装置120において使用されるプログラムの制御のための情報の一例を示す。図7では、プログラム制御情報402は、一般的なボリュームコピー機能におけるペア状態のテーブルを表している。
プログラム制御情報402は、P−VOL番号711と、S−VOL番号712と、ペア状態713と、プログラム種別714を要素に含む。P−VOL番号611はコピー元のボリュームを表す番号である。このP−VOL番号711は、LUNである。S−VOL番号712はコピー先のボリュームを表す番号である。このS−VOL712番号は、LUNである。ペア状態713は、ペアのボリュームの状態を表している。ペア状態713が“コピー中”とは、コピー元のボリュームからコピー先のボリュームにデータのコピーを実行中であることを表している。プログラム種別714は、“リモートコピー”や“ローカルコピー”等、プログラムの種別を表している。その他、ローカルコピー機能やリモートコピー機能等のプログラムに関する、他の制御情報をプログラム制御情報202として、制御メモリ125に格納してもよい。
図8は、仮想ストレージ構成情報405のデータ構造を表している。
仮想ストレージ構成情報801及び802は、仮想ストレージ装置106の保有している資源のサイズ等の仕様を保持している。例えば仮想ストレージ構成情報801は、仮想ストレージ装置106にある仮想ボリューム番号811とそのサイズ812の対応関係を示している。また、仮想ストレージ構成情報802は、仮想ストレージ装置106が保有する、ポート数831、キャッシュサイズ832、タスク数833を示している。
仮想ストレージ構成情報801及び802は、仮想ストレージ装置106がリジュームされる際に参照し、リジューム時に必要な資源を決める際等に使用する。
次に、物理ストレージ制御情報410について説明する。(図9〜14)
図9は、物理ストレージ制御情報410の内部構造を表している。
物理ストレージ制御情報410は、資源と物理ストレージ装置120の対応関係、及び電源の状態等を保持している。
物理ストレージ制御情報410は、資源ボリューム制御情報901、資源キャッシュメモリ制御情報902、資源タスク制御情報903、パリティグループ制御情報904、物理ディスク制御情報905を含む。それぞれの情報の内容は以下の図10〜14で説明する。
図10は、資源ボリューム制御情報901のデータ構造を表している。
資源ボリューム制御情報901は、資源ボリューム番号1021の資源ボリューム毎に、使用状態1024、サイズ1025、パリティグループ番号1026、開始位置1027、外部接続情報1028を含む。
資源ボリューム番号1021は、物理ストレージ装置内でユニークな番号である。
使用状態1024は、資源ボリューム1202が仮想ストレージ装置106に割り当てられているかどうかを示す情報である。使用状態1024は、資源ボリューム1202が仮想ストレージ装置106に割り当て済みであれば、“使用中”であり、未割り当てであれば、“未使用”である。
サイズ1025は、資源ボリュームのサイズを表す。例えば、図10では、資源ボリューム番号が1の資源ボリュームのサイズは“300GB”である。
パリティグループ番号1026は、資源ボリュームの属するパリティグループの番号を表す。
開始位置1027は、資源ボリュームがパリティグループ番号1026のどの位置から割り当てているかを表す。開始位置1027は、パリティグループの先頭アドレスからのオフセットで表される。
外部接続情報1028は、物理ストレージ装置120が資源ボリューム1202に外部ストレージ装置1210の外部ボリュームを割り当てる場合に使用される。また、外部接続情報1028は、物理ストレージ装置120がポート128経由で外部ストレージ装置129と通信するときに、資源ボリューム1202に割り当てられ外部ボリュームを一意に特定するための識別子を格納する。なお、物理ストレージ装置120が資源ボリューム1202にパリティグループ1203上を割り当てる場合には、資源ボリューム1202は外部ボリュームと対応づかない。このとき、物理ストレージ装置120は外部接続情報1028には無効な値としてNULLが格納される。
図11は、パリティグループ制御情報904のデータ構造を表している。
パリティグループ制御情報904は、物理ストレージ装置で保持しているパリティグループ毎に、パリティグループ番号1111、物理ディスク番号リスト1112、RAIDレベル1113を含む。
パリティグループ番号1111は、物理ストレージ装置が保持しているパリティグループを表す識別子である。
物理ディスク番号リスト1112は、パリティグループが使用している物理ディスクを表す物理ディスク番号のリストである。
RAIDレベル1113は、パリティグループのRAIDレベルを表す。例えば、図11では、パリティグループ番号が“1”のパリティグループは、物理ディスク番号が“1”,“2”,“3”,“4”の4つの物理ディスクを使用し、RAIDレベルは“RAID5”である。
図12は、物理ディスク制御情報905のデータ構造を表している。
物理ディスク制御情報905は、物理ストレージ装置が保持している物理ディスク毎に、物理ディスク番号1211、電源状態1212、電源カウンタ1213を含む。
物理ディスク番号1211は、物理ストレージ装置が保持している物理ディスクを表す識別子である。
電源状態1212は、物理ディスクの電源の状態を表している。物理ディスクの電源がONの状態であれば、“ON”を、電源がOFFの状態であれば、“OFF”を制御プロセッサ124が電源状態1212に入力する。
電源カウンタ1213は、物理ディスクが仮想ストレージ装置106に割り当てられている場合に、その割り当てられている仮想ストレージ装置106の数を表す。
ただし、物理ストレージ装置120がパリティグループ単位で電源を管理する場合は、物理ディスク制御情報905に含まれる電源状態1212と電源カウンタ1213が、パリティグループ制御情報904に含まれてもよい。
図13は、資源キャッシュメモリ制御情報902のデータ構造を表している。
資源キャッシュメモリ制御情報902は、物理ストレージ装置で保持している資源キャッシュメモリ1302毎に、資源キャッシュメモリアドレス1341、電源状態1342、使用状態1344、メモリスロット番号1345を保持している。
資源キャッシュメモリアドレス1341は、資源キャッシュメモリ1302毎の資源キャッシュメモリアドレスの範囲を表している。資源キャッシュメモリアドレス1341は、物理ストレージ装置内でユニークなアドレスである。
電源状態1342は、資源キャッシュメモリ1302の電源状態を表している。資源キャッシュメモリ1302の電源がONの状態であれば、“ON”を、電源がOFFの状態であれば、“OFF”を制御プロセッサ124が電源状態1342に入力する。
使用状態1344は、資源キャッシュメモリ1302が仮想ストレージ装置106に割り当てられているかどうかを示す情報である。資源キャッシュメモリ1302が仮想ストレージ装置106に割り当て済みであれば、“使用中”を、未割り当てであれば、“未使用”を制御プロセッサ124が使用状態1344に入力する。
メモリスロット番号1345は、資源キャッシュメモリ1302に対応するメモリスロットを表すスロット番号である。
図14は、資源タスク制御情報903のデータ構造を表した図である。
資源タスク制御情報903は、物理ストレージ装置で保持している資源タスク305毎に、資源タスク番号1461、電源状態1462、使用状態1464、制御プロセッサ番号1465、タスク番号1466を保持している。
資源タスク番号1461は、物理ストレージ装置が保持している資源タスク2705を表す識別子である。資源タスク番号1461は、物理ストレージ装置内でユニークな番号である。
電源状態1462は、資源タスク305の電源状態を表している。資源タスク305の電源がONの状態であれば、“ON”を、電源がOFFの状態であれば、“OFF”を制御プロセッサ124が電源状態1462に入力する。電源状態は、制御プロセッサ124毎に存在する。
使用状態1464は、資源タスク305が仮想ストレージ装置106に割り当てられているかどうかを示す情報である。資源タスク305が仮想ストレージ装置106に割り当て済みであれば、“使用中”を、未割り当てであれば、“未使用”を制御プロセッサ124が使用状態1464に入力する。
制御プロセッサ番号1465は、資源タスク305が動作する制御プロセッサの識別子である制御プロセッサ番号を表す。
タスク番号1466は、資源タスクと対応するタスクの番号である。タスク番号1466は、制御プロセッサ124毎にユニークな番号である。ただし、物理ストレージ装置120内の各制御プロセッサ124で動作するOSが、複数の制御プロセッサ124間で並列に動作する一般的なSMP型OSの場合は、タスク番号1466が複数プロセッサ間でユニークになる場合もある。
図15は、仮想ストレージ資源管理情報411のデータ構造を表している。
仮想ストレージ資源管理情報1501、1521、1541、1561は、資源と仮想ストレージ装置106の対応関係を保持している。例えば仮想ストレージ資源管理情報1501は、仮想ストレージ装置番号1511とキャッシュエリア1512の対応関係を保持している。また、仮想ストレージ資源管理情報1521は、仮想ストレージ装置番号1531と仮想ボリューム番号1532と、資源ボリューム番号1533の対応関係を保持している。また、仮想ストレージ資源管理情報1541は、ポート番号1552が、どの仮想ストレージ装置番号1551に属しているか、対応関係を保持している。また、仮想ストレージ資源管理情報1561は、仮想ストレージ装置番号1571の仮想ストレージ装置106がどのタスク番号のタスクを保持しているかを示している。
図16は、仮想ストレージ装置106の全状態をデータとして保存する際のデータ構造である、ストレージイメージデータ1601を表している。
ストレージイメージデータ1601は、仮想ストレージ装置106のサスペンド時に外部ストレージ装置129等に保存される。また、ストレージイメージデータ1601は、仮想ストレージ装置106毎に作成される。
ストレージイメージデータ1601は、仮想ストレージ制御情報401と、ボリュームデータ1603を含む。仮想ストレージ制御情報401はサスペンドした仮想ストレージ装置106に対応する制御情報である。ボリュームデータ1603は、サスペンドした仮想ストレージ装置106に存在する仮想ボリューム111毎に保存されるデータである。
図17は、ホスト103及び管理サーバ102の、プロセッサ1002が実行する、メモリ1003内にあるプログラム及びデータ構造を表している。
ホスト103及び管理サーバ102のメモリ1003は、OS(オペレーションシステム)1703と、ストレージ管理プログラム1704、WWN変更通知プログラム1705、鍵情報1701、WWN情報1702を含む。
ストレージ管理プログラム1704は、仮想ストレージ装置106を管理するためのプログラムである。ストレージ管理プログラム1704は、仮想ストレージ装置106の管理者が、ボリュームコピー機能のペア操作等を実行するためのプログラムである。
OS1703は、ポート104を制御して、後述する仮想ストレージ装置106の仮想ボリューム111を認識して、ボリューム1109とする。そして、OS1703はボリューム1109をアプリケーション1706が使用する記憶領域として提供する。
アプリケーション1706は、ボリューム1109に対してアクセスをするプログラムである。アプリケーション1706は、例えばデータベースソフトウェア等でもよい。
鍵情報1701及びWWN情報1702は、管理サーバ102が物理ストレージ装置120のWWNを変更する際に使用される。
図18は、WWN情報1702のデータ構造を示した図である。
管理サーバ102は、WWN情報1702をメモリ1003上に保持し、仮想ストレージ装置106のリジューム時にWWN情報1702を参照し、WWN変更通知プログラム1705を起動して、物理ストレージ装置120にWWNの変更を伝える。
WWN情報1702は、ホストグループ番号1811、ホスト番号1812、ホストポート番号1813、ホストWWN1814、変更有無1815を項目に含む。
ホストグループ番号1811は、仮想ストレージシステムがホストグループ101を識別するための番号である。ホスト番号1812は、ホストグループ101内のホスト103を識別するための番号である。ホストポート番号1813は、ホスト103が内蔵するポート104を識別するための番号である。ホストWWN1814は、ホスト103のポート104のWWNを表す。管理サーバ102は、変更有無1815に、ホスト103のポート104のWWNが変更された場合に、“有”と入力し、変更されていない場合に“無”と入力する。
図19は、ホスト側の構成変更の動作を示した図である。
旧ホスト1902Aと管理サーバ102を含むグループにおいて、仮想ストレージシステムをしばらく使用しない状態になり、システム全体を一時的に停止させる場合を想定する。その場合、管理者はホストの動作を停止するため、OSによってサスペンドや、電源OFFを実行する。また、仮想ストレージ装置106もサスペンドするため、管理者は管理サーバ102のストレージ管理プログラム1704からサスペンド指示を出して、仮想ストレージ装置106のサスペンドを実施する。仮想ストレージ装置106のサスペンドの方法の詳細については図27で説明する。
次に、仮想ストレージシステムを再び使用する際に、仮想ストレージ装置106をリジュームする場合を想定する。そのときに、従来動作していた旧ホスト1902Aは既に廃棄されており、新ホスト1902Bが使用されるとする。旧ホストのポート1906AのWWNが、新ホストのポート1906BのWWNへ変更されたとする。
管理サーバ102はWWN通知プログラム1705により、このようなWWNの変更を、新ホストを起動する前に、物理ストレージ装置120に送信する。WWN通知プログラム1705は、変更前のWWNと変更後のWWNを、仮想ストレージ装置106に通知する。WWNの変更は、I/F1904からネットワーク105を経由して管理I/F1919に通知される。また、WWNの変更は、ポート1906からネットワーク119を通じて、ポート1910に通知してもよい。具体的には、仮想ストレージ装置が管理のための専用の仮想ボリューム(コマンドデバイスと呼ぶ)を用意し、管理サーバ102からアクセスする。WWN通知プログラム1705の動作の詳細は、後ほど図22で説明する。
図20は、仮想ストレージシステム全体における業務再開の動作を示したラダーチャートである。
まず、仮想ストレージ装置106の管理者は、管理サーバ102のGUI画面3102からストレージ装置のリジュームを指示する(2002)。GUI画面3102の詳細は後説する。
次に、管理サーバ102は、WWN情報1702を参照する。ホストのWWNが変更されている場合は、管理サーバ102は、ストレージ管理プログラムからWWN通知プログラムを呼び出す(2003)。
管理サーバ102は、WWN通知プログラムにより、WWNの変更通知を物理ストレージ装置120に送信する(2004)。送信内容については後に図23に示す。
物理ストレージ装置120は、WWNの変更通知を受信する。WWN変更通知受信処理が完了したら(2005、2006)、管理サーバ102は、ストレージ管理プログラムで、物理ストレージ装置120に仮想ストレージ装置106のリジューム指示を送信する(2007)。
リジューム指示(2007)を受信したら、仮想ストレージ装置106はリジューム処理を実行し、結果(正常又は異常、異常の場合はその理由)をストレージ管理プログラムに返す。ストレージ管理プログラム1702によって、管理サーバ102は、リジューム処理の結果と異常ならその理由を管理サーバ102のGUI画面3102にメッセージとして表示する。リジューム処理が正常終了した場合(2008)、ホストの管理者は、ホストを起動する(2010)。
図21は、ホスト側の起動時の動作を示したフローチャートである。
仮想ストレージ装置106の管理者等が、ホスト103の電源をON又はリジュームすると、ホスト103は、まずOS1103を起動する(ステップ2101)。一般的にホスト103は、OS1703をホスト1902の内部のHDD1004等に格納している。ホストは起動時に、OS1703を内部のHDD1004からメモリ1003上にコピーし、プロセッサ1002がメモリ1003上のOS1703を実行する。一般に、ホスト103は、OS1703の起動により、ハードウェアの初期設定等を実行する。
次に、ホストは物理ストレージ装置120のポート122に対して、デバイスリストを要求する(ステップ2102)。デバイスリストはホストがアクセス可能なLUを示す一覧表である。デバイスリストの要求の際に、ホスト103は、ポート104のWWNを物理ストレージ装置120に通知する。WWNは物理ストレージ装置120がポート104を一意に特定するために使用する識別子である。
次に、ホスト103はデバイスリストを物理ストレージ装置120から受信する(ステップ2103)。
次に、ホスト103は、受信したデバイスリストのLUをボリュームとして認識する(ステップ2104)。認識とは、例えば、一般的なOSにおけるボリュームのマウント機能に相当する。認識後は、LUは、ホスト103で動作するアプリケーションからボリュームへの読み書きが可能な状態になる。
次に、ホスト103でアプリケーションを実行する(ステップ2105)。
図22は、WWN変更通知プログラムの動作を示したフローチャートである。
管理サーバ102は、ストレージ管理プログラム1704により、GUI画面3102でレジュームを指示する際にWWN変更通知プログラム1705を呼び出す。その際に、管理サーバ102は、レジューム対象の仮想ストレージ装置番号と、GUI画面3102より入力した、変更後のWWN、変更前のWWNを指定する。
ストレージ管理プログラム1102がWWN変更通知プログラム1705を実行すると、管理サーバ102は、WWN変更通知パケット2301を作成する(ステップ2201)。WWN変更通知パケット2301の詳細は後ほど説明する。
管理サーバ102は、作成したWWN変更通知パケット2301とともにWWN変更通知を送信する(ステップ2202)。
図23は、WWN変更通知パケット2301のデータ構造を表した図である。
WWN変更通知パケット2301は、仮想ストレージ装置番号2311、変更後のWWN2312、変更前のWWN2313、鍵情報2314を含む。
管理サーバ102はWWN変更通知プログラム1107により、WWN変更通知パケット2301を作成する。
管理サーバ102は、WWN変更通知プログラムが、ストレージ管理プログラムから受け取った、レジューム対象の仮想ストレージ装置番号2311、変更後のWWN2312、変更前のWWN2313をWWN変更通知パケット2301に入力する。また、管理サーバ102は、前記仮想ストレージ装置番号2311に対応するメモリ1003上に保持している鍵情報1701をWWN変更通知パケット2301に入力して、WWN変更通知パケット2301を作成する。
図24は、物理ストレージ装置120が実行する、WWN変更通知受信処理424を示したフローチャートである。
物理ストレージ装置124は、ホスト103側で実行するWWN変更通知プログラム1705の通知を受信するため、WWN変更通知受信処理を実行する。
物理ストレージ装置124は、WWN変更通知プログラム1705によって、WWN変更通知を受信すると(ステップ2401)、認証処理を実行する(ステップ2402)。物理ストレージ装置120は、認証処理を実行することによって、WWNの変更をセキュアに行う。つまり、物理ストレージ装置120が、認証処理を実行する目的は、認証処理で正しいと認識できる、限られたホストだけがWWNの設定を変更できるようにすることである。物理ストレージ装置120は、WWN変更通知プログラム1705がホスト側で保持している鍵情報をステップ2401で受信し、ストレージ側で保持している鍵情報と照合し、鍵情報が正しいかを認証する。鍵情報の認証は、ハッシュ関数等を使用する方式等、一般的に知られている認証方式で実装してもよい。また、管理サーバ102のGUI画面3101へのログイン時に、仮想ストレージ装置の管理者を認証し、管理I/F1111へのアクセスを管理サーバに限定する方式を採用してもよい。その場合は、既に管理サーバのGUI画面で認証が済んでいるため、WWN通知プログラム1705の実行時に、前記の鍵情報で認証しなくてもよい。
ステップ2402の認証処理の結果、認証に成功したら(ステップ2403のY)、WWN変更通知情報212を書き換える。具体的には、制御プロセッサ124が、WWN変更通知受信処理がステップ2401で受信した、LUNと変更後のWWNの内容を、対象の仮想ストレージ装置番号と受信したポートのポート番号とともに、WWN変更通知情報252に追加する。管理サーバ102が、WWN変更通知受信処理が認証に失敗したら(ステップ2403のN)、終了する。
このようにして、ステップ2402の認証処理により、鍵を持っている管理サーバ102のみがWWNの変更ができるようになり、WWNの変更をセキュアに実行できる。
図25は、WWN変更通知情報212を示した図である。
物理ストレージ装置120は、WWN変更通知情報252に、ホスト側が通知したWWN変更通知を、つまりWWN変更通知受信処理424が受信した結果を保存する。WWN変更通知情報252は、仮想ストレージ装置番号2511、ポート番号2512、LUN2513、変更通知有無情報2514、変更後のWWN情報2515、変更前のWWN情報2516を含む。仮想ストレージ装置番号2511は、WWNの変更対象となるボリュームが属している仮想ストレージ装置番号を示している。ポート番号2512はWWNの変更対象となるボリュームが属しているポートを示している。LUN番号2513は、WWNの変更対象となるボリュームを示している。変更通知有無情報2514は、ホストから変更通知を受信している場合に“Y”、受信していない場合に“N”を入れられる。変更後のWWN情報2515は、ホストから変更通知を受信した場合に、変更後のWWNが入力される。物理ストレージ装置120は、ホストから変更通知を受信した場合に、変更前のWWN情報2516に、変更前のWWNを入力する。
図26は、ホストコマンド処理223の動作を示したフローチャートである。
物理ストレージ装置120は、ホストからホストコマンド命令を受信したときに、ホストコマンド処理423が実行される(ステップ2601)。具体的には、制御プロセッサ124やポート122に内蔵したプロトコル制御回路等が、ポート122の状態をチェックすることにより、ホストコマンド命令の受信を認識し、ホストコマンド処理423の実行を開始する。物理ストレージ装置120は、仮想ストレージ資源管理情報1541を参照し、ポートに対応する仮想ストレージ装置番号を算出する(ステップ2602)。次に、物理ストレージ装置120は、仮想ストレージ資源管理情報1561を参照し、仮想ストレージ装置106に対応する仮想制御部からタスクを算出する(ステップ2603)。
以降のステップは、各仮想ストレージ装置106に割り当てた計算資源であるタスクが実行する。各仮想ストレージ装置106がホストコマンド処理を行う計算資源を仮想ストレージ装置ごとに独立に保有することで、他の仮想ストレージ装置への性能影響を極力排除するためである。一方、ステップ2603でタスクを算出するまでは、特定の制御プロセッサ124上で動作するタスクが、計算する。
次に、物理ストレージ装置120は、ホストから受信したホストコマンド命令を解析する(ステップ2604)。具体的には、ホストコマンド命令は、ホストコマンドの種別や、どのLUNに対するコマンドであるか等である。
ホストコマンドの種別がデバイスリストの要求であった場合(ステップ2609のY)、物理ストレージ装置は、デバイスリスト通知処理を実行する(ステップ2610)。デバイスリスト通知処理を以下説明する。ホスト103がログイン要求を送信する。そして、物理ストレージ装置120はホスト103が送信したポートのWWNを受信する。そして、物理ストレージ装置120は、受信したポート122に対応する仮想ストレージ装置106のLUNセキュリティ情報403を参照し、ポート番号及びホストから受信したWWNからアクセス可能なLUの識別子、すなわちLUNのリストであるデバイスリストをホストに送信する。以上がデバイスリスト通知処理の処理内容である。
ステップ2604の解析の結果、ホストコマンドの種別がデバイスリストの要求ではなく(ステップ2609のN)、ホストコマンドの種別がI/O要求であった場合(ステップ2605のY)、I/O処理を実行する。I/O処理を以下説明する。制御部123では、I/O処理の性能向上を目的とし、頻繁にアクセスされるデータがキャッシュメモリに配置される。また、制御部123は、どの記憶領域のデータがキャッシュメモリ上に配置されているかを管理している。データがキャッシュメモリ上にない(キャッシュミス)場合は、制御部123は、ステップ2604で解析したLUNから、LUNマッピング情報404を参照し、対象の仮想ボリューム番号612を調べ、仮想ストレージ資源管理情報1521を参照して資源ボリューム番号1533を調べる。また、物理ストレージ制御情報410を参照し、資源ボリューム番号1533から調べ、資源ボリュームの属する物理位置を、パリティグループ情報1026から調べる。また、データがキャッシュメモリ上にある(キャッシュヒット)の場合、仮想ストレージ資源管理情報1501を参照し、対応するキャッシュエリア1512を求め、資源キャッシュメモリ制御情報902を参照し、キャッシュエリアに対応する物理位置のメモリスロット番号1345とオフセットを求める(ステップ2606)。次に、writeコマンドの場合、制御部123は、ホスト側からステップ2606で特定した物理位置にデータ転送を実行する。また、readコマンドの場合、制御部123は、ステップ2606で特定した物理位置から、ホスト側にデータ転送を実行する(ステップ2607)。転送が完了したら、物理ストレージ装置120は、ホストに完了メッセージを通知する(ステップ2608)。以上がI/O処理の説明である。
以上説明したホストコマンド処理のうち、ステップ2601から2603の部分は、制御部123の制御プロセッサ124で処理してもよいし、ポート122に内蔵したプロトコル制御回路で実行してもよい。
図27は、仮想ストレージ装置106のサスペンド処理421の動作を示したフローチャートである。
仮想ストレージ装置106の管理者が、管理サーバ102のGUIからサスペンドを指示しする。そして、管理サーバ102がネットワーク105及び管理I/F107を経由して、仮想ストレージ装置106にサスペンドの指示を送信する。そして、仮想ストレージ装置106のサスペンド処理421が実行される。
物理ストレージ装置120は、サスペンド処理221が実行されると、コマンド処理を動作不可に、つまり、ホスト103からのコマンド命令を無視するようにする(ステップ2701)。
次に、物理ストレージ装置120は、キャッシュメモリ上にあるwriteデータをボリュームに退避する(ステップ2702)。これは、キャッシュメモリがRAM等の揮発メモリで実装されているためである。キャッシュメモリ上のwriteデータがディスクに反映されていない場合、キャッシュメモリの電源がOFFになると、キャッシュメモリ上のwriteデータが揮発し、復元できなくなる。
次に、物理ストレージ装置120は、仮想ストレージ制御情報201を、ストレージイメージデータ1601の保存先である物理ストレージ装置129に保存する(ステップ2703)。
次に、物理ストレージ装置120は、ボリュームデータをストレージイメージデータ1601の保存先である物理ストレージ装置129に保存する(ステップ2704)。
ステップ2704は、サスペンド対象の仮想ストレージ装置106に含まれる仮想ボリュームすべてに対して実行される(ステップ2705)。
サスペンド対象の仮想ストレージ装置106に含まれる仮想ボリュームすべてに対して実行が終わったら、資源の解放処理を実行する(ステップ2706)。
仮想ストレージ装置106のサスペンド後、物理ストレージ装置129の電源をOFFにしてもよい。
図28は、仮想ストレージ装置106のサスペンド処理における資源解放処理の動作を示したフローチャートである。
物理ストレージ装置120は、資源解放処理が実行されると、まず解放する資源を決定する(ステップ2801)。具体的には、制御プロセッサ124が、仮想ストレージ資源管理情報411を参照する。そして、制御プロセッサ124は、サスペンド対象となる仮想ストレージ装置番号に割り当てた資源を、解放解放する資源として決定する。
次に、制御プロセッサ124は、解放する資源に対応する仮想ストレージ資源管理情報411と物理ストレージ制御情報を更新する(ステップ2802)。具体的には、以下の3点を実施する。
(1)制御プロセッサ124は、解放解放の対象の資源の制御情報(資源ボリューム制御情報3201、資源キャッシュメモリ制御情報902、資源タスク制御情報903)の使用状態を“未使用”にする。
(2)制御プロセッサ124は、仮想ストレージ資源管理情報411のうち、サスペンド対象の仮想ストレージ装置番号の項目で、解放する資源に対応する項目を削除する。
(3)解放の対象の資源が資源ボリュームの場合、制御プロセッサ124は、まず資源ボリューム制御情報901を参照し、資源に対応するパリティグループ番号1026を求める。その後、制御プロセッサ124は、パリティグループ制御情報904を参照し、パリティグループに対応する物理ディスク番号リスト1112を求める。その後、制御プロセッサ124は、物理ディスク番号リスト1112に含む物理ディスク番号について、物理ディスク制御情報905を参照し、電源カウンタ1213を1引いた値に変更する。
次に、物理ストレージ装置120は、解放する各資源について、電源がOFFにできるかどうかをチェックする(ステップ2803)。
具体的には、制御プロセッサ124が、まず解放する資源に対応する物理資源を求める。
解放される資源が資源キャッシュメモリの場合、制御プロセッサ124は、資源キャッシュメモリ制御情報902を参照し、資源に対応する物理資源のメモリスロット番号1345を求める。その後、制御プロセッサ124は、メモリスロット番号に対応する使用状態1344がすべて未使用であるかどうかをチェックする。使用状態1344がすべて未使用であった場合のみ、その物理資源は電源のOFFの対象となる。
解放される資源が資源タスクの場合、制御プロセッサ124は、資源タスク制御情報903を参照し、資源に対応する物理資源のタスク番号1466を求める。その後、制御プロセッサ124は、タスク番号に対応する制御プロセッサ番号1465を求め、制御プロセッサ番号1465に対応する使用状態1464がすべて未使用であるかどうかをチェックする。使用状態1464がすべて未使用であった場合のみ、その物理資源は電源のOFFの対象となる。
解放される資源が資源ボリュームの場合、まず制御プロセッサ124は、資源ボリューム制御情報901を参照し、資源に対応するパリティグループ番号1026を求める。その後、制御プロセッサ124は、パリティグループ制御情報904を参照し、パリティグループに対応する物理ディスク番号リスト1112を求める。その後、制御プロセッサ124は、物理ディスク番号リスト1112に含む物理ディスク番号について、物理ディスク制御情報905をチェックする。制御プロセッサ124は、電源カウンタ1213の値が0になっている物理ドライブのみを電源のOFFの対象とする。
補足すると、対象の物理資源を起動するとき、制御プロセッサ124は、電源カウンタ1213の値に1を足す。この電源カウンタが0のときは、その物理資源はどの仮想ストレージ装置106にも割り当てられていない状態であることを表す。詳細は、図26の資源準備処理のフローチャートにて説明する。また、後説する資源解放処理のステップ2805及び資源準備処理のステップ3007で、物理ストレージ装置120は、電源カウンタ又は使用状態を、その資源を使っている仮想ストレージ装置106の有無を表すように更新する。
次に、物理資源が電源OFFの対象であった場合(ステップ2803のY)、電源をOFFにする(ステップ2804)。具体的には、ハードディスクの場合、電源OFFの処理は、スピンダウン処理や、完全に電源を停止する処理でもよい。
また、物理資源が電源OFFの対象でなかった場合(ステップ2803のN)、制御プロセッサ124は、ステップ2806へ処理を進める。
次に、制御プロセッサ124は、電源をOFFにする物理資源に対応する物理ストレージ制御情報を更新する(ステップ2805)。
具体的には、電源をOFFにする物理資源がメモリスロットの場合、制御プロセッサ124が、資源キャッシュメモリ制御情報902の、対象のメモリスロット番号1345に対応する電源状態1342をOFFにする。
電源をOFFにする物理資源が物理ドライブの場合、制御プロセッサ124が、物理ディスク制御情報905の、対象の物理ディスク番号に対応する電源状態1212をOFFにする。
電源をOFFにする物理資源が制御プロセッサ124の場合、制御プロセッサ124が、資源タスク制御情報903の、対象の制御プロセッサ番号1465に対応する電源状態1462をOFFにする。
すべての資源を処理していない場合(ステップ2806のN)、次の資源について、ステップ2802から処理を進める。すべての資源を処理したら(ステップ2806のY)、終了する。
制御部123は、制御プロセッサ124の電源をONすることができる制御回路が搭載される。ストレージ装置のリジューム時、管理サーバは制御回路と通信し、まず制御プロセッサ124の電源をONにする。次に、制御プロセッサ124は、関連する物理ドライブ等の資源について、電源をONにする。ストレージ装置のサスペンド時は、制御プロセッサ124が関連する物理ドライブ等の資源の電源をOFFにした後、制御プロセッサ124自身が制御プロセッサ124の電源をOFFにする。
また、あらかじめ予約された制御プロセッサを一個以上用意し、予約された制御プロセッサは、電源OFFの対象からはずすようにすることにより、リジュームを実行可能にしてもよい。
図29は、仮想ストレージ装置106のリジューム処理422の動作を示したフローチャートである。
仮想ストレージ装置106の管理者が、管理サーバ102のGUIからリジュームを指示する。そして、管理サーバ102が、ネットワーク105及び管理I/F107を経由して、仮想ストレージ装置106にリジュームの指示を送信する。そして、仮想ストレージ装置106のリジューム処理422が実行される。
物理ストレージ装置120は、リジューム処理が実行されると、まず物理ストレージ装置129等に保存したストレージイメージデータ1601から仮想ストレージ制御情報を制御メモリ125上に読み込む(ステップ2901)。サスペンドの際に、物理ストレージ装置129の電源をOFFにした場合、仮想ストレージ制御情報401を制御メモリ125上に読み込むために、物理ストレージ装置120は物理ストレージ装置129の電源をONにする。
次に、物理ストレージ装置120は、資源を準備する(ステップ2902)。資源の準備処理については、後ほど別のフローチャートを用いて説明する。資源の準備処理が終了すると、仮想ストレージ装置106の資源の電源がONになる等により、仮想ボリューム等が使用可能になる。
次に、物理ストレージ装置120は、ストレージイメージデータ1601から、ボリュームデータを仮想ボリュームに回復する(ステップ2903)。
次に、物理ストレージ装置120は、ストレージイメージデータ301から、仮想ストレージ制御情報を制御メモリ125に回復する(ステップ2904)。
次に、物理ストレージ装置120は、WWN変更通知情報412をチェックする(ステップ2905)。WWN変更通知情報412はホスト103のポート104のWWNの変更を検出した際に、物理ストレージ装置120に通知される情報である。
次に、LUNセキュリティ情報403の変更が必要な場合に(ステップ2906のY)、LUNセキュリティ情報403のWWNが変更される(ステップ2907)。具体的には、物理ストレージ装置120はWWN変更通知情報412の、対象の仮想ストレージ装置番号の項目で、変更通知有無2514を参照する。変更通知有無2514がYの項目について、変更後のWWN2515が、LUNセキュリティ情報403のWWNに変更される。
次に、物理ストレージ装置120は、ホストコマンド処理を動作可能にする(ステップ2908)。具体的には、物理ストレージ装置120は、制御プロセッサ124やポート122に内蔵したプロトコル制御回路等がポートの状態のチェックを開始することにより、ホストコマンド命令の受信を認識できるようにする。ホストからのコマンド要求、また、LUNセキュリティ情報403の変更が不要な場合は(ステップ2906のN)、ステップ2908に進む。
以上のように、第1の実施形態においては、WWN変更通知プログラム1705によって、ホスト1902が、物理ストレージ装置120に新しいWWNを通知する。そして、ステップ2907において物理ストレージ装置120はLUNセキュリティ情報403における古いポートのWWNを新しいポートのWWNに更新する。この結果、物理ストレージ装置120はデバイスリスト通知処理(ステップ2610)において、新しいWWNに対しても、仮想ストレージ装置106のサスペンドの前にホスト1902に送信していたデバイスリストと同じ内容のデバイスリストをホスト1902に送信することができる。このため、ホスト1902は仮想ストレージ装置106のサスペンドの後にWWNを変更した場合においても、サスペンドの前にアクセスしていたボリュームにアクセスできる。
図30は、仮想ストレージ装置106のリジューム処理における資源準備処理を示したフローチャートである。
まず、物理ストレージ装置120は、資源準備処理を実行すると、仮想ストレージ構成情報205から必要な資源要件を求める(ステップ3001)。仮想ストレージ構成情報405は、仮想ストレージ装置106のスペックを表している。例えば、キャッシュサイズが“256MB”であった場合、当該仮想ストレージ装置106をレジュームさせるには、制御プロセッサ124は、256MBのキャッシュメモリを確保する必要がある。
次に、物理ストレージ装置120は、空き資源の探索を行う(ステップ3002)。具体的には、制御プロセッサ124は、確保の対象の資源の制御情報(資源ボリューム制御情報901、資源キャッシュメモリ制御情報902、資源タスク制御情報903)の使用状態1024、1344、1464を参照し、“未使用”の資源を探索する。
ステップ3002の探索の結果、空き資源がなかった場合(ステップ3003のN)、管理サーバ102の管理画面で警告メッセージを表示し、仮想ストレージ装置106の管理者に空き資源がないためにリジュームできないことを知らせる(ステップ3008)。管理サーバ102の管理画面についての詳細は図31で説明する。
ステップ3002の探索の結果、空き資源があった場合(ステップ3003のN)、確保する資源に対応する仮想ストレージ資源管理情報411と物理ストレージ制御情報が更新される(ステップ3004)。
具体的には、以下の3点を実施する。
(1)制御プロセッサ124は、確保の対象の資源の制御情報(資源ボリューム制御情報901、資源キャッシュメモリ制御情報902、資源タスク制御情報903)の使用状態を“使用中”にする。
(2)制御プロセッサ124は、仮想ストレージ資源管理情報411に、リジューム対象の仮想ストレージ装置番号の項目を追加する。
(3)確保の対象の資源が資源ボリュームの場合、制御プロセッサ124は、まず資源ボリューム制御情報901を参照し、資源に対応するパリティグループ番号1026を求める。その後、制御プロセッサ124は、パリティグループ制御情報904を参照し、パリティグループに対応する物理ディスク番号リスト1112を求める。その後、制御プロセッサ124は、物理ディスク番号リスト1112に含まれる物理ディスク番号について、物理ディスク制御情報905を参照し、電源カウンタ1213を1足した値に変更する。
その後、物理ストレージ装置120は、既に電源がONになっているかチェックを行う(ステップ3005)。
具体的には、制御プロセッサ124は、まず確保する資源に対応する物理資源を求める。確保する資源が資源キャッシュメモリの場合、制御プロセッサ124は、資源キャッシュメモリ制御情報902を参照し、資源に対応する物理資源のメモリスロット番号1345を求める。その後、制御プロセッサ124は、メモリスロット番号に対応する電源状態がONであるかどうかをチェックする。電源状態がOFFであった場合のみ、その物理資源は電源のONの対象となる。
確保する資源が資源タスクの場合、制御プロセッサ124は、資源タスク制御情報903を参照し、資源に対応する物理資源のタスク番号1466を求める。その後、制御プロセッサ124は、タスク番号に対応する制御プロセッサ番号1465を求め、制御プロセッサ番号1465に対応する電源状態がONであるかどうかをチェックする。電源状態がOFFであった場合のみ、その物理資源は電源のONの対象となる。
確保する資源が資源ボリュームの場合、制御プロセッサ124は、まず資源ボリューム制御情報901を参照し、資源に対応するパリティグループ番号1026を求める。その後、制御プロセッサ124は、パリティグループ制御情報904を参照し、パリティグループに対応する物理ディスク番号リスト1112を求める。その後、制御プロセッサ124は、物理ディスク番号リスト1112に含む物理ディスク番号について物理ディスク制御情報905をチェックし、電源状態がONであるかどうかをチェックする。電源状態がOFFであった場合のみ、その物理資源は電源のONの対象となる。
各物理資源について電源状態が“ON”の場合(ステップ3005のY)は、ステップ3009に進み、“OFF”の場合(ステップ3005のN)は資源の電源をONにする(ステップ3006)。
具体的には、ハードディスクの場合、電源ONの処理は、スピンアップ処理や、完全に電源を停止した状態から電源をONにする処理でもよい。
次に、物理ストレージ装置120は、電源をONにする物理資源に対応する物理ストレージ制御情報を更新する(ステップ3007)。
具体的には、電源をONにする物理資源がメモリスロットの場合、制御プロセッサ124は、資源キャッシュメモリ制御情報902の、対象のメモリスロット番号1345に対応する電源状態1342をONにする。
電源をONにする物理資源が制御プロセッサ124の場合、制御プロセッサ124は、資源タスク制御情報903の、対象の制御プロセッサ番号1465に対応する電源状態1462をONにする。
電源をONにする資源が物理ドライブの場合、制御プロセッサ124は、物理ディスク制御情報905の、対象の物理ディスク番号1211に対応する電源状態1212をONにする。
ステップ3007の後、ステップ3001で求めたすべての必要な資源について一連の処理(ステップ3003からステップ3007まで)を実施していない場合は(ステップ3009のN)、次の必要な資源について空き資源の探索(ステップ3002)を行う。一連の処理を実施した場合(ステップ3009のY)は、終了する。
このようにして、物理ストレージ装置120が、仮想ストレージ資源管理情報411や、物理ストレージ制御情報410をステップ2802、ステップ3004で更新することで、その時点で仮想ストレージ装置106が確保している資源の情報を制御メモリに保持する。これにより、物理ストレージ装置120は、ステップ2801で仮想ストレージ装置106の単位でサスペンドする際に解放する資源や、ステップ3001でリジュームする際の確保する資源を決定することが可能になる。
また、仮想ストレージ装置106のサスペンド時に、物理ストレージ装置120は、ステップ2803で、電源カウンタまたは使用状態を参照する。このため、その物理資源を使用している仮想ストレージ装置106がまだ残っているときに、仮想ストレージ装置106の管理者が、誤って電源を止めてしまうことを防ぐことができる。
さらに、図27のステップ2703において、物理ストレージ装置120が、ストレージイメージデータ1601を外部ボリュームに退避させる。そして、物理ストレージ装置は仮想ストレージ装置106の仮想ボリュームを含めた各資源を解放する。そして、他の仮想ストレージ装置106をリジュームするときに、図30のステップ3002から3006において、物理ストレージ装置が空き資源の探索処理を行う。そして、この仮想ストレージ装置106が解放した資源を使用することができる。これによって、仮想ストレージシステム全体として、物理ストレージ装置120の資源が有効に活用される。例えば仮想ストレージ装置106が高性能のビットコストの高いオンライン系のストレージで、物理ストレージ装置129が低性能でビットコストの低いテープストレージであるとする。仮想ストレージ装置106の管理者は、今後しばらく使用しない仮想ストレージ装置106のボリュームデータと制御情報をテープストレージに保管する。このようにして、管理者は、他の使用したい仮想ストレージ装置106を高性能な物理ストレージ装置120上で使用できるようになる。
図31は、仮想ストレージ装置106の管理サーバ102の画面3101を示した図である。
管理サーバ102は、画面3101を持つ。画面3101上にストレージ管理プログラム1102のGUI画面3102が表示される。
GUI画面3102は、メニュー部3103と設定部3104を持つ。メニュー部3103には、各設定項目がツリー型に表示されている。メニュー部には、仮想ストレージ装置106を識別する情報3121が表示される。例えば図31だと、“仮想ストレージ装置A”という仮想ストレージ装置106の名称が表示されている。
メニュー部には、仮想ストレージ装置106を識別する情報3121の下位に、仮想資源一覧3122及び電源管理3121の設定項目が表示されている。
仮想資源一覧3122は、管理の対象の仮想ストレージ装置106が保持している仮想資源の状態を表示し、仮想資源を設定するための設定項目である。
電源管理3123は、管理の対象の仮想ストレージ装置106をサスペンド、レジュームするための設定や状態を設定部に表示するための設定項目である。
仮想ストレージ装置106の管理者が電源管理3121を選択すると、設定部3104にサスペンド、レジュームに関する設定項目を表示する。
サスペンド設定画面3111では、仮想ストレージ装置106をサスペンドするための設定事項が表示される。サスペンド先指定3112では、仮想ストレージ装置106の管理者がサスペンド時にボリュームデータと制御情報を移行するための仮想ボリューム番号を指定する。例えば、仮想ストレージ装置106の管理者は外接ボリュームの仮想ボリューム番号を指定する。
リジューム設定画面3113では、仮想ストレージ装置106をリジュームするための設定事項が表示される。リジューム元指定3114では、仮想ストレージ装置106の管理者がリジューム元の仮想ボリューム番号を指定する。例えば、仮想ストレージ装置106の管理者は外接ボリュームの仮想ボリューム番号を指定する。
実行ボタン3116を押すと、設定部3104で設定した内容で、管理サーバ102は、ストレージ管理プログラム1704によって物理ストレージ装置120にサスペンド又はリジューム指示を送信する。また、リジューム時には、管理サーバ102は、ストレージ管理プログラム1704によってWWN変更通知プログラム1705を実行する。
管理サーバ102が仮想ストレージ装置106のリジューム指示を送信し、物理ストレージ装置120の資源が不足している場合は、GUI画面3102に「資源不足のためリジュームできません」というメッセージ3105が表示される。これによって、仮想ストレージ装置106の管理者にリジューム不可であることが伝えられる。
(第2の実施形態)
本実施例では、パッケージ(PK)と呼ぶ単位でストレージ装置の物理資源の電源管理を実施する例を示す。
以下、第2の実施形態について、第1の実施形態との差異を説明する。
図32は、本発明の第2の実施形態に係る仮想ストレージシステムにおけるストレージ装置の物理的な構成を示す。
バックエンドパッケージ3211は、物理ディスクを含むディスクパッケージ3216と、物理ディスクや外部ストレージ装置129と通信するポートを含むバックエンドポートパッケージ3217を含む。
フロントエンドパッケージ3212は、ポートを含むパッケージである。
データバス3213は、パッケージ間のデータ転送等の通信処理を実行する装置である。 プロセッサパッケージ3215は、制御プロセッサ124や制御メモリ125等、制御部を含んだパッケージである。 プロセッサパッケージ3215内には複数の制御部があってもよく、かつプロセッサパッケージ3215が複数あってもよいため、物理的に制御プロセッサ124が複数存在してもよい。各制御プロセッサ124は、データバス3213を通じてキャッシュメモリパッケージ3214内のキャッシュメモリにアクセスし、制御メモリ上の各種制御情報を、キャッシュメモリ上に配置することができる。そして、各制御プロセッサ124は、キャッシュメモリ上の各種制御情報を、別の制御部の制御プロセッサ124と共有することができる。なお、本実施例以降では、特に補足説明がない場合、各種制御情報を制御メモリ125上に配置すると説明した場合、各種制御情報をキャッシュメモリ上に配置し、物理ストレージ装置120内で共有する前提で説明する。
キャッシュメモリパッケージ3214は、キャッシュメモリを含むパッケージである。
なお、制御メモリ125として使用するキャッシュメモリを含むキャッシュメモリパッケージ3214は、共有している各種制御情報にアクセスする制御プロセッサ124が存在する限り電源をOFFにすることができない。
そこで、物理ストレージ装置120の各制御プロセッサ124は、固定のキャッシュメモリパッケージ3214のキャッシュメモリを制御メモリの代替として使用する場合、キャッシュメモリパッケージ3214の電源カウンタ3314の値にあらかじめ1加算しておき、電源を落とさないように制御する。電源カウンタ3314の詳細については、後説する。
図33はパッケージ資源対応情報3301のデータ構造を表す。
パッケージ資源対応情報3301は、パッケージ番号3311、パッケージ種別3312、資源リスト3313、電源カウンタ3314、電源状態3315を含む。パッケージ情報は、物理ストレージ装置120の制御メモリ125に格納される。
パッケージ番号3311は、パッケージを識別する番号である。
パッケージ種別3312は、パッケージの種別を表す。パッケージの種別には、制御部を1つ以上含む“プロセッサパッケージ”、キャッシュメモリを1つ以上含む“キャッシュメモリパッケージ”、物理ディスクを1つ以上含む“ディスクパッケージ”、ホストと通信するポートを一つ以上含む“フロントエンドパッケージ”、物理ディスクや外部ストレージ装置129と通信するポートを一つ以上含む“バックエンドポートパッケージ”の種類が存在する。
資源リスト3313は、各パッケージが含む資源のリストである。電源カウンタ3314の値は、パッケージを使用している仮想ストレージ装置106の個数を表している。電源カウンタ3314の値の更新方法については、図34及び図35で説明する。電源状態3315は、各パッケージの電源がONであるか、OFFであるかを表している。
図34は、本実施例における資源解放処理を表すフローチャートである。
図34は、図28と、ステップ3401〜3404が異なっている。
物理ストレージ装置120は、資源開放処理で、解放する資源に対応する仮想ストレージ資源管理情報411とパッケージ資源対応情報3301を更新する(ステップ3401)。具体的には、以下の3点を実施する。
(1)制御プロセッサ124は、解放する対象の資源の制御情報(資源ボリューム制御情報901、資源キャッシュメモリ制御情報902、資源タスク制御情報903)の使用状態を“未使用”にする。
(2)制御プロセッサ124は、仮想ストレージ資源管理情報411のうち、サスペンド対象の仮想ストレージ装置番号の項目で、解放する資源に対応する項目を削除する。
(3)制御プロセッサ124は、パッケージ資源対応情報3301の、解放の対象の資源に対応する電源カウンタ3314の値に1減算する。ただし、本フローチャートの開始から終了の間に、同一のパッケージ番号3311の電源カウンタ3314の値に、別の資源を処理した際に、既に1減算されていた場合、値は減算されない。
次に、物理ストレージ装置120は、解放する各資源について、電源がOFFにできるかどうかをチェックする(ステップ3402)。
具体的には、パッケージ資源対応情報3301の電源カウンタ3314の値が0になっているパッケージのみが電源のOFFの対象となる。
次に、物理資源が電源OFFの対象であった場合(ステップ3402のY)、物理ストレージ装置120は、パッケージの電源をOFFにする(ステップ3403)。物理資源が電源OFFの対象でなかった場合(ステップ3402のN)、処理はステップ2806へ進む。
次に、電源をOFFにするパッケージに対応するパッケージ資源対応情報3301を更新する(ステップ3403)。
具体的には、制御プロセッサ124は、パッケージ資源対応情報3301の電源状態3315をOFFにする。
その他の資源解放処理の動作については、図28で説明した動作と同等であるため、説明を割愛する。
図35は、本実施例における資源準備処理を表すフローチャートである。
図35は、図30と、ステップ3501〜3504が異なっている。
物理ストレージ装置120は、ステップ3002で見つけた空き資源に対応する仮想ストレージ資源管理情報411とパッケージ資源対応情報を更新する(ステップ3501)。具体的には、以下の3点を実施する。
(1)制御プロセッサ124は、確保の対象の資源の制御情報(資源ボリューム制御情報901、資源キャッシュメモリ制御情報902、資源タスク制御情報903)の使用状態を“使用中”にする。
(2)制御プロセッサ124は、仮想ストレージ資源管理情報411に、リジューム対象の仮想ストレージ装置番号の項目を追加する。
(3)パッケージ資源対応情報3301の、確保の対象の資源に対応する電源カウンタ3314の値を1加算する。ただし、本フローチャートの開始から終了の間に、同一のパッケージ番号3311の電源カウンタ3314の値に対して、別の資源を処理した際に、既に1加算されていた場合、値は加算されない。
次に、制御プロセッサ124は、既に資源の電源がONになっているかチェックを行う(ステップ3502)。
具体的には、パッケージ資源対応情報3301の電源状態3315の値が“OFF”になっているパッケージのみが電源のONの対象となる。
次に、既に物理資源の電源がONであった場合(ステップ3502のY)、処理はステップ3009に進み、物理資源が電源ONの対象であった場合(ステップ3502のN)、物理ストレージ装置120は、パッケージの電源をONにする(ステップ3503)。
次に、物理ストレージ装置120は、電源をONにするパッケージに対応するパッケージ資源対応情報3301を更新する(ステップ3504)。
具体的には、制御プロセッサ124は、パッケージ資源対応情報3301の電源状態3315を“ON”に変更する。
その他の資源準備処理の動作については、図30で説明した動作と同等であるため、説明を割愛する。
以上のようにして、仮想ストレージ装置106のサスペンド及びリジューム時に、パッケージ資源対応情報3301の電源カウンタ3314が更新される。ステップ3401及びステップ3501において、電源カウンタ3314は、使用している仮想ストレージ装置106の数を表すように更新される。
仮想ストレージ装置106のサスペンド時に、ステップ3402において、パッケージ資源対応情報3301の電源カウンタ3314が参照される。そして、使用中の仮想ストレージ装置106の有無が判断される。このため、仮想ストレージ装置間で同一パッケージ内の資源をシェアしている場合でも、仮想ストレージ装置106の管理者は、他の仮想ストレージ装置106に影響を与えることなく、電源をOFFにすることができる。
(第3の実施形態)
本実施例では、複数のモジュールを結合して1台のストレージ装置として提供するストレージであるモジュール型ストレージにおける仮想ストレージ装置のサスペンド、リジューム方法について述べる。
以下、第3の実施形態について、第1、2の実施形態との差異を説明する。
図36は、本発明の第3の実施形態に係る仮想ストレージシステムの物理的な構成を示す。
モジュール3602はプロセッサパッケージ3215とキャッシュメモリパッケージ3214とフロントエンドパッケージとバックエンドパッケージとデータバスを含む。
プロセッサパッケージは制御部を有し、キャッシュメモリパッケージは複数のキャッシュメモリを有し、フロントエンドパッケージは複数のポートを有し、バックエンドパッケージは複数のディスクを含むディスクパッケージと複数のポートを含むポートパッケージを有する。
モジュール型ストレージ3601は、複数のモジュール3602を結合して1台のストレージ装置として提供するストレージである。モジュール3602の内部は、実施形態2で説明したハードウェアと同等であるため、説明は割愛する。
モジュール型ストレージ3601で仮想ストレージ装置106のリジューム処理を実行する場合、複数の異なるモジュール3602から資源を確保する場合がある。この時、性能影響が発生する。
例えば、仮想ストレージ装置3604Aをサスペンドし、リジュームした結果が、仮想ストレージ装置3604Bであるとする。リジューム後の仮想ストレージ装置3604Bは、物理ディスクとポートが存在するモジュールが異なっている。このため、制御部が物理ディスクから読み出したデータを、ポートに転送する際に、モジュール間の経路3603でデータ通信を行う必要が発生する。モジュール型ストレージでは、モジュール内のデータバスを使ったデータ通信は高速に処理できるが、モジュール間のデータ通信は、モジュール内のデータバスを使ったデータ通信と比較して低速である。したがって、複数の異なるモジュールに存在する資源で、仮想ストレージ装置106がリジュームされると、性能影響が発生する。
そこで、本実施形態では、物理ストレージ装置120は、仮想ストレージ装置106のリジューム時に性能影響ができるだけ発生しないよう、リジューム時にできるだけ同一モジュール内の資源を選ぶようにする。以下にその方法を具体的に説明する。
図37は、モジュール情報3701のデータ構造を表す図である。
モジュール情報3701は、モジュール番号3711と、そのモジュールに属する資源の集合を表す資源リスト3712との対応を示した表である。
モジュール番号3711は、ストレージ装置に存在するモジュールを表す番号である。
資源リスト3712は、モジュールに存在している、資源の集合を表す。制御プロセッサ124は、資源リスト3712に、資源タスク、資源キャッシュメモリ、資源ボリューム等の番号を入力する。
図38は、リジューム処理における資源準備処理を示したフローチャートである。
図38は、図30と、ステップ3801〜3811が異なっている。
ステップ3001で求めた必要な資源要件について、制御プロセッサ124は、モジュール内要件チェック処理を実行する(ステップ3801)。制御プロセッサ124は、モジュール内要件チェック処理を実行し、指定したモジュール内の資源のみで、前記資源要件を満たすかどうかをチェックする。前記資源要件を満たす場合、制御プロセッサ124は、満たす資源の組を、資源準備リストに入力する。また、前記資源要件を満たさない場合、制御プロセッサ124は、資源準備リストを空にする。モジュール内要件チェック処理の詳細は図39で説明する。
資源準備リストが空の場合(ステップ3802のY)、制御プロセッサ124は、物理ストレージ装置120に存在する他のモジュールについて処理を実行する(ステップ3803のN)。制御プロセッサ124は、物理ストレージ装置120に存在するすべてのモジュールについて探索した場合(ステップ3803のY)、物理ストレージ装置内要件チェック処理を実行する(ステップ3804)。制御プロセッサ124は、物理ストレージ装置内要件チェック処理を実行し、物理ストレージ装置120内の資源について、前記資源要件を満たすかどうかをチェックする。前記資源要件を満たす場合、制御プロセッサ124は、満たす資源の組を、資源準備リストに入力する。前記資源要件を満たさない場合、制御プロセッサ124は、資源準備リストを空にする。物理ストレージ装置内要件チェック処理の詳細は図38で説明する。
物理ストレージ装置内要件チェック処理の実行の結果、資源準備リストが空の場合(ステップ3805のY)、物理ストレージ装置120に空き資源が無いため、管理サーバ102は警告メッセージを表示する(ステップ3008)。
資源準備リストが空ではない場合(ステップ3805のN)、管理サーバ102は性能影響メッセージを表示する(ステップ3806)。性能影響メッセージは、複数の異なるモジュールに存在する資源を使って仮想ストレージ装置106をリジュームする際に、性能影響が出ることを、仮想ストレージ装置106の管理者に伝える。
性能影響メッセージを表示する方法を具体的に説明する。物理ストレージ装置120の制御プロセッサ124が管理サーバ102に性能影響メッセージを表示する命令を送信し、管理サーバ102がその命令を受信し、性能影響メッセージが表示される。今後の説明で、メッセージを管理サーバ102に表示する場合、特に説明がないときは、同様の方法で表示させる。
性能影響メッセージには、“自動設定”と“マニュアル設定”と“キャンセル”が表示される。仮想ストレージ装置106の管理者は、その何れかを選択することができる。
仮想ストレージ装置106の管理者が、“自動設定”を選択すると(ステップ3807のN、ステップ3810のN)、制御プロセッサ124は、資源確保処理を実行する(ステップ3811)。資源確保処理は、ステップ3804で実行された物理ストレージ装置内要件チェック処理の結果である資源準備リストに入力された資源について行われる。資源確保処理が実行されたの後、資源準備処理が終了する。資源確保処理については、図41で説明する。
また、仮想ストレージ装置106の管理者が、 “マニュアル設定”を選択すると(ステップ3807のY)、管理サーバ102はマニュアル設定画面(ステップ3808)を表示する。
仮想ストレージ装置106の管理者が、マニュアル設定画面で入力した結果を、物理ストレージ装置120が受信したら、マニュアル設定画面の内容から資源準備リストを作成する(ステップ3809)。その後、制御プロセッサ124が、前記資源準備リストに入力した資源について、資源確保処理を実行し(ステップ3811)、資源準備処理を終了する。
仮想ストレージ装置106の管理者が、 “キャンセル”を選択すると(ステップ3807のN、ステップ3810のY)、資源準備処理が終了して、リジューム処理が中断される。
資源準備リストが空ではない場合(ステップ3802のN)、同一モジュール内の資源で仮想ストレージ装置106のリジュームが可能である。その場合、ステップ3801でモジュール内要件チェック処理の結果として資源準備リストに入力した資源について、資源確保処理3810を実行し、資源準備処理を終了する。
図39は、モジュール内要件チェック処理を示したフローチャートである。
制御プロセッサ124は、モジュール内要件チェック処理として、指定したモジュール内の資源のみで、前記資源要件を満たすかどうかをチェックする。制御プロセッサ124は、前記資源要件を満たす場合、満たす資源の組を、資源準備リストに入力し、満たさない場合、資源準備リストを空にする。以下、モジュール内要件チェック処理をステップごとに説明する。
制御プロセッサ124が、モジュール内要件チェック処理を開始すると、対象のモジュール内で必要な資源に対応する空き資源を探索する(ステップ3901)。制御プロセッサ124は、資源がどのモジュールに存在しているかを、モジュール情報3901を参照することで把握できる。
ステップ3901の探索の結果、空き資源がない場合(ステップ3902のN)、制御プロセッサ124は、準備資源リストをクリアして(ステップ3905)、モジュール内要件チェック処理を終了する。
ステップ3901の探索の結果、空き資源がある場合、(ステップ3902のY)、制御プロセッサ124は、見つかった空き資源を準備資源リストに追加する(ステップ3903)。探索がすべての必要な資源について実施されていない場合(ステップ3904のN)、制御プロセッサ124は、次の必要な資源について、ステップ3901に戻って繰り返し探索する。探索がすべての必要な資源について実施されたら(ステップ3904のY)、制御プロセッサ124は、モジュール内要件チェック処理を終了する。
図40は、物理ストレージ装置内要件チェック処理を示したフローチャートである。
物理ストレージ装置120は、物理ストレージ装置内要件チェック処理により、物理ストレージ装置120の各資源が、前記資源要件を満たすかどうかをチェックする。物理ストレージ装置120は、前記資源要件を満たす場合、満たす資源の組を、資源準備リストに入力し、満たさない場合、資源準備リストを空にする処理である。
制御プロセッサ124が、物理ストレージ装置内要件チェック処理を開始すると、物理ストレージ装置120内で必要な資源に対応する空き資源が探索される。以降は、図39で説明したモジュール内要件チェック処理と同様に処理を進める。
図41は、資源準備処理における資源確保処理を示したフローチャートである。
図41は、図35と、ステップ4101、4102が異なっている。
制御プロセッサ124は、準備資源リスト4401の各要素について電源をONにし、関連する仮想ストレージ資源管理情報411やパッケージ資源対応情報を更新する。以下に資源確保処理の各ステップを説明する。
制御プロセッサ124は、準備資源リスト4401の各要素について、電源ON処理を開始する(ステップ4101)。以降は実施例3の図35の資源解放処理で説明したステップ3501からステップ3503までと同様に処理を進める。次に、制御プロセッサ124は、準備資源リスト4401のすべての資源について処理を実施していない場合(4102のN)、準備資源リスト4401中の次の資源を処理する。制御プロセッサ124が、準備資源リスト4401のすべての資源について処理を実施した場合(4102のY)、処理を終了する。
図42は、管理サーバ102のGUI画面3101を示した図である。
図42は、図31と、4201〜4204が異なっている。
管理サーバ102は、物理ストレージ装置120からステップ3806で性能影響メッセージを表示する指示を受ける。そして、管理サーバ102は、管理サーバ102で動作するストレージ管理プログラム1704のGUI画面3102上に性能影響メッセージ4201を表示する。
性能影響メッセージ4201は、“複数モジュールにまたがった資源を使用するため、性能影響が発生する可能性があります。”というメッセージと、自動設定ボタン4202と、マニュアル設定ボタン4203と、キャンセルボタン4204を含む。
仮想ストレージ装置106の管理者が、自動設定ボタン4202を押すと、物理ストレージ装置120に、仮想ストレージ装置106の管理者が自動設定を選択したことが伝えられる。物理ストレージ装置120は、それを受けた結果ステップ3811を実行する。
仮想ストレージ装置106の管理者が、マニュアル設定ボタン4203を押すと、物理ストレージ装置120に、仮想ストレージ装置106の管理者がマニュアル設定を選択したことが伝えられる。物理ストレージ装置120は、それを受けた結果ステップ3809を実行する。
仮想ストレージ装置106の管理者が、キャンセルボタン4204を押すと、物理ストレージ装置120に、仮想ストレージ装置106の管理者が自動設定を選択したことが伝えられる。物理ストレージ装置120は、それを受けて資源準備処理を終了して、レジューム処理を中断する。
図43は、管理サーバ102のGUI画面2202のマニュアル設定画面を示した図である。
マニュアル設定画面4301は、メニュー4311、空き資源リスト4312、確保資源リスト4313、追加ボタン4314、削除ボタン4315を含んでいる。
仮想ストレージ装置106の管理者が、メニュー4311で各モジュールについて“制御部”、“キャッシュ”等の資源の分類を選択すると、管理サーバ102は、前記モジュールに存在する空き資源の一覧を空き資源リスト4312に表示する。仮想ストレージ装置106の管理者が、空き資源リスト4312から資源を選択して、追加ボタン4314を押すと、管理サーバ102は、確保資源リスト4313に選択した前記資源を追加して表示する。仮想ストレージ装置106の管理者が、確保資源リスト4313から資源を選択して、削除ボタン4315を押すと、管理サーバ102は、確保資源リストから前記選択した資源を削除して表示する。仮想ストレージ装置106の管理者が実行ボタン4316を押すと、管理サーバ102は物理ストレージ装置120に確保資源リストの内容を送信する。
図44は、資源準備リストのデータ構造を示した図である。
資源準備リスト4401は、資源種別4411と資源番号4412の組を要素として含む。また、資源準備リスト4401は、1つ以上のモジュールの資源(モジュール1の資源4402Aとモジュール2の資源4402B)を含んでもよい。
このようにして、物理ストレージ装置120は、仮想ストレージ装置106のリジューム時に、最初にステップ3801でモジュール情報3701を参照する。物理ストレージ装置120は、各モジュールについて、同一モジュールの資源でリジューム可能かを調べ、同一モジュール内の資源を仮想ストレージ装置106に割り当てることを優先する。これより、オーバヘッドの原因となるモジュールをまたがった資源割り当てが防止され、性能への影響が抑えられる。
さらに、性能影響メッセージ4201及びマニュアル設定画面4301によって、単一モジュールのみで仮想ストレージ装置への資源の割り当てができない場合でも管理者が適切な割り当て指示を行い、モジュールをまたがった資源割り当てを抑えることができる。
(第4の実施形態)
本実施例では、物理ストレージ装置で動作していた仮想ストレージ装置をサスペンドし、別の物理ストレージ装置で前記仮想ストレージ装置をリジュームする方法について述べる。
以下、第4の実施形態について、第1の実施形態との差異を説明する。
図45は、本発明の第4の実施形態に係る仮想ストレージシステムの物理的な構成を示す。
外部ストレージ装置129がSAN等のネットワーク119Bによって共有されている。物理ストレージ装置120Aは、仮想ストレージ装置4502Aのサスペンド時にストレージイメージデータ1601を外部ストレージ装置129に書き出す。物理ストレージ装置120Bは、仮想ストレージ装置4502Bのリジューム時に、外部ストレージ装置129に書き出したストレージイメージデータ1601を読み込む。
図46は、第4の実施形態におけるリジューム時のラダーチャートである。
図46は、図20と、4601、4602が異なっている。
業務再開時、仮想ストレージ装置106の管理者、又はホスト103の管理者は、リジューム先の物理ストレージ装置120Bのポート128Bに外部ストレージ装置129を接続する(4601)。前記接続は、ネットワーク119Bを介してもよいし、ポート128Aから接続をはずしてポート128Bに直接接続してもよい。また、物理ストレージ装置129が、既にネットワーク119Bを介して物理ストレージ120Bに接続されている場合は、4601は省略できる。
次に、仮想ストレージ装置106の管理者は、管理サーバ102のGUI画面2202から、リジューム先の物理ストレージ装置120を指定する。(4602)。具体的には、仮想ストレージ装置106の管理者は、物理ストレージ装置120毎に割り当てた番号やIDを指定する。
以降の処理は実施例1と同様であるため、説明を割愛する。
図47は、管理サーバ102のGUI画面3102を示す図である。
図46は、図31と、4701が異なっている。
リジューム設定画面3113は、リジューム先の物理ストレージ装置指定項目4701を含む。仮想ストレージ装置106の管理者は、物理ストレージ装置指定項目4701で、物理ストレージ装置120毎に割り当てた番号やIDを指定する。仮想ストレージ装置106の管理者が実行ボタン3116を押すと、管理サーバ102はストレージ管理プログラム及びWWN変更プログラムにより物理ストレージ装置指定項目4701で指定した物理ストレージ装置と通信し、実施例1で説明した各種処理を実行する。
その他の管理サーバ102のGUI画面3102の設定項目は実施例1と同様であるため、説明を割愛する。
以上のようにして、ストレージイメージデータ1601を保存している外部ストレージ装置129が複数台の物理ストレージ装置(120A、120B)間でネットワーク119Bを介して共有される。そして、リジューム先の別の物理ストレージ装置がストレージイメージデータ1601を参照してリジューム処理を実行する。これより、仮想ストレージ装置106をサスペンドした物理ストレージ装置120Aと異なる物理ストレージ装置120Bで仮想ストレージ装置106をリジュームすることができる。
(第5の実施形態)
本実施例では、仮想ストレージ装置106の管理者が指定する性能要件に応じてパリティグループを再構成する方法について述べる。
以下、第5の実施形態について、第1、2、3の実施形態との差異を説明する。
図48は、仮想ストレージ構成情報205の一部のデータ構造を示す図である。
図48は、図8の仮想ストレージ構成情報801と、4813、4814が異なっている。
実施例1で説明した仮想ストレージ構成情報701に、物理ディスク性能要件4813とRAIDレベル性能要件4814の項目が追加される。
仮想ストレージ装置106の管理者が管理サーバ102のGUI画面3102から性能要件を入力する。そして、管理サーバ102は、前記性能要件を物理ストレージ装置120に送信する。そして、物理ストレージ装置120の制御プロセッサ124が仮想ストレージ構成情報701に物理ディスク性能要件4813とRAIDレベル性能要件4814を入力する。
制御プロセッサ124は、物理ディスク性能要件4813に、例えば“1.5krpm“等、ハードディスクの回転数を入力する。また、制御プロセッサ124は、物理ディスク性能要件4813に、“60MB/s“や“30 IOPS“等のハードディスクのアクセススピードを入力してもよい。
制御プロセッサ124は、RAIDレベル性能要件4814に、“RAID1”、“RAID5”、“RAID6”等のRAIDレベルを入力する。
図49は、物理ディスク制御情報905のデータ構造を示す図である。
図49は、図12と、4913が異なっている。
制御プロセッサ124は、物理ディスク性能4913に、例えば“1krpm”等、ハードディスクの回転数を入力する。また、制御プロセッサ124は、物理ディスク性能4913に“60MB/s“や“30 IOPS“等のハードディスクのアクセススピードを入力してもよい。
制御プロセッサ124が物理ディスクの型番から物理ディスク性能4913を入力してもよいし、管理者が管理サーバ102から各物理ディスクの物理ディスク性能4913を入力してもよい。
図50(図50(a)と図50(b))は、資源準備処理を示すフローチャートである。
図50は、図38と、5001〜5006、5008〜5013が異なっている。
資源準備処理に関わる他の処理で、実施例1、実施例2及び実施例3の説明と同等の部分については説明を割愛する。
ステップ1101で求めた資源要件のうちの、1つの必要な資源について、空き資源を探索し、空き資源一覧を作成する(ステップ5001)。具体的には、制御プロセッサ124が、資源ボリューム制御情報901、資源キャッシュメモリ制御情報902、資源タスク制御情報903のなかで、必要な資源に対応する情報の使用状態を参照する。そして、制御プロセッサ124は、“未使用”の資源について、空き資源一覧を作成する。例えば、必要な資源がボリュームであった場合、制御プロセッサ124は、資源ボリューム制御情報901の使用状態1024を参照し、“未使用”の資源のリストを作成する。
次に制御プロセッサ124は、ステップ5001で作成した空き資源一覧から、空き資源がないかを調べる。空き資源がない場合(ステップ5002のN)、警告メッセージが表示される(ステップ1108)。空き資源がある場合(ステップ5002のY)、制御プロセッサ124は、空き資源一覧から性能要件が充足する資源を探す(ステップ5003)。
以下、具体的に、ステップ5003の処理を説明する。仮想ストレージ構成情報4801の物理ディスク性能要件4813の値と、空き資源一覧の各要素の資源に対応する物理ディスクの物理ディスク制御情報4901における物理ディスク性能4913の値と比較する。仮想ストレージ構成情報4801の物理ディスク性能要件4813の値が前記物理ディスク性能4913の値と同じか、上回っている場合、その資源の物理ディスク性能要件4813は満たされている。
また、仮想ストレージ構成情報4801のRAIDレベル性能要件4814の内容と、空き資源一覧の各要素の資源に対応するパリティグループのパリティグループ制御情報904におけるRAIDレベル1113の内容と比較する。RAIDレベル性能要件4814と空き資源一覧に対応するRAIDレベル1113の内容が同一である場合、その資源のRAIDレベル性能要件4814は満たされている。また、同一の内容の資源が空き資源一覧になかった場合は、以下のようにしてRAIDレベル性能要件4814が満たされる。他の仮想ストレージ装置106が使用していないパリティグループに属している資源が空き資源一覧にある場合のみ、前記資源の属するパリティグループのRAIDレベルを変更する。 このように、ステップ5003では、制御プロセッサ124は、ステップ5001で作成した空き資源の一覧から、物理ディスク性能要件4813、RAIDレベル性能要件4814の2つの要件について満たす資源が存在するかどうかをチェックする。
以上がステップ5003の処理の説明である。
次に、制御プロセッサ124は、要件を充足する資源があるかどうかをチェックする(ステップ5004)。制御プロセッサ124が、ステップ5003で物理ディスク性能要件4813、RAIDレベル性能要件4814の2つの要件が両方とも満たされないと判断した場合(ステップ5004のN)、性能警告メッセージが管理サーバ102のGUI画面3102に表示される(ステップ5008)。性能警告メッセージの詳細については図51で説明する。
制御プロセッサ124が、ステップ5003で物理ディスク性能要件4813を満たす資源が存在すると判断した場合(ステップ5004のY)、制御プロセッサ124は構成変更が必要かどうかをチェックする(ステップ5005)。制御プロセッサ124が、ステップ5003で、パリティグループ制御情報904のRAIDレベル1113の内容と比較する。同一の内容の資源が存在しなかった場合、制御プロセッサ124はステップ5005で構成変更が必要と判断し(ステップ5005のY)、パリティグループが変更可能かどうかをチェックする(ステップ5011)。
ステップ5003で、他の仮想ストレージ装置106が使用していないパリティグループに属している資源が空き資源一覧になかった場合、制御プロセッサ124はパリティグループが変更不可(ステップ5011のN)と判断する。この場合、管理サーバ102のGUI画面3102に構成変更不可メッセージが表示される(ステップ5012)。
ステップ5012で構成変更不可メッセージが表示された後、仮想ストレージ装置106の管理者が管理サーバ102のGUI画面3102から“リジューム要”または“キャンセル”を指定する(ステップ5013)。仮想ストレージ装置106の管理者が、“リジューム要”を指定した場合(ステップ5013のY)、ステップ5004で制御プロセッサ124が、性能を満たす資源があると判断した場合はその資源を、性能を満たす資源がないと判断した場合は、空き資源一覧の任意の資源を準備資源リストに追加する(ステップ5010)。仮想ストレージ装置106の管理者が “キャンセル”を指定した場合(ステップ5013のN)、制御プロセッサ124は、資源準備処理を終了し、リジューム処理を中断する。
ステップ5003で、他の仮想ストレージ装置106によって使用していないパリティグループに属している資源が空き資源一覧にあった場合、パリティグループが変更可(ステップ5011のN)と判断し、前記資源について、パリティグループ変更処理5006を実行する。
パリティグループ変更処理5006は、資源の属するパリティグループをRAIDレベル性能要件4814のRAIDレベルに構成を変更する処理である。ステップ5003で、そのパリティグループを使っている仮想ストレージ装置106がないことが確認されているので、構成を変更しても他の仮想ストレージ装置106に影響を与えない。制御プロセッサ124は、パリティグループ変更処理5006で、前記パリティグループのRAIDレベルを変更した後、パリティグループを使用した新しい資源ボリュームを生成する。その際に、制御プロセッサ124は、パリティグループ制御情報904のRAIDレベル1113を更新する。また、制御プロセッサ124は、RAIDレベルを変更した後、パリティグループのサイズが変わる場合は、資源ボリューム制御情報901を変更する。
また、パリティグループ変更処理5006が終了したら、前記資源ボリュームを、資源準備リストに追加する(ステップ5010)。
また、制御プロセッサ124が、ステップ5003で、物理ディスク性能要件を満たす空き資源があると判断した場合、ステップ5005から処理を実行する。
ステップ5008で性能警告メッセージを表示した後、仮想ストレージ装置106の管理者が管理サーバ102のGUI画面3102から“リジューム要”と指定した場合(ステップ5009のY)、ステップ5005から処理が進められる。仮想ストレージ装置の管理者が管理サーバ102のGUI画面3102から“キャンセル”と指定した場合(ステップ5009のN)、制御プロセッサ124は、資源準備処理を終了し、リジューム処理を中断する。
ステップ5010で準備資源リストに資源が追加されたら、ステップ1101で求めたすべての必要な資源について一連の処理(ステップ5001から5010まで)を実施していない場合は(ステップ1109のN)、次の必要な資源について空き資源の探索(ステップ5001)が行われる。また、すべての必要な資源について一連の処理が実施された場合(ステップ1109のY)、制御プロセッサ124は資源確保処理を実行し(ステップ3811)、終了する。
図51は、管理サーバ102のGUI画面3102を表す図である。
図51は、図31と、5101〜5103、5111〜5116が異なっている。
管理サーバ102のGUI画面3102は、要求性能指定画面5101を含む。仮想ストレージ装置106の管理者は、要求性能指定画面5101で、物理ディスク性能5102、及びRAIDレベル5103を指定する。
仮想ストレージ装置106の管理者は、物理ディスク性能5102に、例えば“1.5krpm“等、ハードディスクの回転数を指定する。また、物理ディスク性能5102に、“60MB/s“や“30 IOPS“等のハードディスクのアクセススピードを入力してもよい。
仮想ストレージ装置106の管理者は、RAIDレベル5103に、“RAID1”、“RAID5”、“RAID6”等のRAIDレベルを指定する。
仮想ストレージ装置106の管理者が、要求性能指定画面5101に入力し、実行ボタン3116を押すと、管理サーバ102は物理ストレージ装置120に要求性能指定画面5101で設定した物理ディスク性能5102、及びRAIDレベル5103の設定内容を送信する。
物理ストレージ装置120は、ステップ5008で、仮想ストレージ装置106の管理者が指定した物理ディスク性能5102の設定内容を満たすことができない場合に、性能警告メッセージ5111を管理サーバ102に表示するよう指示を送信する。
継続ボタン5113を押すと、管理サーバ102は物理ストレージ装置120にリジュームを継続することを伝えるメッセージを送信する。そして、物理ストレージ装置120は、ステップ5009でリジュームが必要と判断する(ステップ5009のY)。キャンセルボタン5114を押すと、管理サーバ102は物理ストレージ装置120にリジュームをキャンセルすることを伝えるメッセージを送信する。そして、物理ストレージ装置120は、ステップ5009でリジュームが不要と判断する(ステップ5009のN)。
物理ストレージ装置120は、ステップ5012で、仮想ストレージ装置106の管理者が指定したRAIDレベル5103の設定内容を満たすことができない場合に、構成変更不可メッセージ5112を管理サーバ102に表示するよう指示を送信する。
継続ボタン5115を押すと、管理サーバ102は物理ストレージ装置120にリジュームを継続することを伝えるメッセージを送信する。そして、物理ストレージ装置120は、ステップ5013でリジュームが必要と判断する(ステップ5013のY)。キャンセルボタン5116を押すと、管理サーバ102は物理ストレージ装置120にリジュームをキャンセルすることを伝えるメッセージを送信する。そして、物理ストレージ装置120は、ステップ5013でリジュームが不要と判断する(ステップ5013のN)。
以上のようにして、物理ストレージ120が仮想ストレージ装置106Aへサスペンド前に割り当てていた物理資源を、他の仮想ストレージ装置106Bで使用中である等の理由で仮想ストレージ装置106Aのリジューム時に割り当てられない場合においても、リジューム時にステップ5003で、前記性能要件を満たす空き資源を探すこと、及びステップ5006のパリティグループ変更処理により、要求性能を満たす資源を生成して当該資源を使用してリジュームすることにより、性能低下を回避することができる。また性能要件を満たす資源をステップ5006において生成できない場合でも、管理サーバが、性能警告メッセージ5111や構成変更不可メッセージ5112を表示することで、仮想ストレージ装置106の管理者に伝えることができ、高性能な物理ディスクを追加する等の対策を促すことができる。
(第6の実施形態)
本実施例では、仮想ストレージ装置106のサスペンド時に資源を予約しておくことで、リジューム時に資源が足りずにリジュームできないことを防ぐ方法について述べる。本実施例は、第1〜第4の実施例に適用できる。
以下、第6の実施形態について、第1の実施形態との差異を説明する。
図56は、管理サーバ102のGUI画面2202を示した図である。
図52は、図31と、5201〜5204が異なっている。
仮想ストレージ装置106の管理者は、資源を予約する場合、サスペンド設定画面3111にある、資源予約5201を“有”に設定する。仮想ストレージ装置106の管理者は、資源を予約しない場合、資源予約5201を“無”に設定する。
管理サーバ102のGUI画面3102は、仮想ストレージ装置106のリジューム時に、資源不足でリジュームできない場合、警告メッセージ5202を表示する。警告メッセージ5202の、予約解除ボタン5203を押すと、予約指定した資源を解放する。予約指定した資源を解放する目的は、仮想ストレージ装置106が、空き資源がないためにリジュームできない場合、資源の予約を解除することで、緊急的に前記仮想ストレージ装置106をリジュームすることを可能にすることである。物理ストレージ装置側の詳細の動作については、後ほど図55で説明する。
図53は、資源予約情報のデータ構造を示した図である。
資源予約情報5301は、資源種別5311、資源番号5312、予約の有無5313、仮想ストレージ装置番号5314、仮想資源番号5315を項目として含む。資源予約情報5301は、制御メモリ125に格納される。
制御プロセッサ124は、資源種別5311に、“資源タスク”、“資源ボリューム”等の資源の種類を入力する。
制御プロセッサ124は資源番号5312に、資源番号を入力する。制御プロセッサ124は、予約の有無5313に、資源番号5312の資源について予約している場合は“有”、予約していない場合は“無”を入力する。
制御プロセッサ124は、予約の有無5313が“有”の場合、仮想ストレージ装置番号5314に、その予約している仮想ストレージ装置106の番号を入力する。
制御プロセッサ124は、予約の有無5313が“有”の場合、仮想資源番号5315に、その予約している仮想ストレージ装置106の、資源番号5312の資源と、サスペンド前に対応していた仮想資源番号を入力する。
図54は、資源予約指定時のサスペンド処理を示したフローチャートである。
仮想ストレージ装置106の管理者が、管理サーバ102のGUI画面3102で、資源予約5201を“有”に設定して、サスペンドを指示した場合、物理ストレージ装置120は、まず資源予約情報を更新する(ステップ5401)。具体的には、サスペンド対象の仮想ストレージ装置106が使用している各資源について、制御プロセッサ124は、仮想ストレージ資源管理情報211を参照し、資源予約情報5301に、資源種別5311、資源番号5312、仮想ストレージ装置番号5314、仮想資源番号5315にそれぞれ対応する番号を入力し、予約の有無5313に“有”を入力する。
その後、サスペンド処理311を実行する(ステップ5402)。
図55は、リジューム時の資源準備処理を示したフローチャートである。
図55は、図30と、5501〜5504が異なっている。ステップ3001で求めた必要な資源要件について、制御プロセッサ124は、リジューム対象の仮想ストレージ装置で、予約済みの資源が存在しているかどうかを調べる(ステップ5501)。具体的には、制御プロセッサ124は、資源予約情報5301を参照し、レジューム対象の仮想ストレージ装置106の番号で、かつ予約の有無5313が“有”の資源があるかどうかを調べる。
予約済みの資源が存在している場合(ステップ5501のY)、制御プロセッサ124は、その資源について、資源予約情報5301の予約の有無5313に“無”を入力する。そして、制御プロセッサ124は、前記資源を確保対象として、確保する資源に対応する仮想ストレージ資源管理情報211と物理ストレージ制御情報210を更新する(ステップ3004)。以降の処理で実施例1と同等の部分は、説明を割愛する。
また、ステップ5501で予約済みの資源が存在しない場合(ステップ5501のN)、空き資源を探索し(ステップ3002)、ステップ3003に進む。
ステップ3003で、空き資源がないと判定した場合(3003のN)、警告メッセージを表示する(ステップ3008)。ステップ3008は具体的には、物理ストレージ装置120が、管理サーバ102に対して警告メッセージを表示するように命令を送信する。そして、管理サーバ102はストレージ管理プログラムによりこれを受信して、警告メッセージ5202を表示する。
仮想ストレージ装置106の管理者が警告メッセージ5202の、予約解除ボタン5203を押すと、管理サーバ102から物理ストレージ装置120に予約解除の命令が送信される。そして、物理ストレージ装置120は、予約解除を実行すると判断し(ステップ5503のY)、予約解除を実行する(ステップ5504)。具体的には、制御プロセッサ124は、ステップ5504で、資源予約情報5301の予約の有無5313をすべて“無”にする。その後、ステップ3002に戻り、再度、初めから空き資源を探索する。
仮想ストレージ装置106の管理者が警告メッセージ5202の、OKボタン5204を押すと、管理サーバ102から物理ストレージ装置120に予約解除を実行しないという命令が送信される。そして、物理ストレージ装置120は予約解除を実行しないと判断し(ステップ5505のN)、資源準備処理を終了し、リジューム処理を中断する。
ステップ3003で、空き資源があると判定された場合(3003のN)、空き資源について、物理ストレージ装置120は、資源が予約済みかどうかをチェックする(ステップ5502)。具体的には、制御プロセッサ124は、空き資源の番号に対応する資源予約情報5301を参照し、予約の有無5313が“有”の場合は、資源が予約済みと判断する(ステップ5502のY)。そして、制御プロセッサ124は、他の空き資源を探索するため、ステップ3002に進む。また、前記の予約の有無5313が“無”の場合は、制御プロセッサ124は、資源が予約されていないと判断し(ステップ5502のN)、ステップ3004に進む。以降の処理で実施例1と同等の部分は、説明を割愛する。
以上の処理をまとめる。仮想ストレージ装置1201Aの管理者が、管理サーバ102のGUI画面3102から資源予約の指定をする。そして、物理ストレージ装置120が、仮想ストレージ装置1201Aのサスペンド時に、ステップ5401で資源予約情報5301を更新する。そして、物理ストレージ装置120は、他の仮想ストレージ装置1201C(開示していない)のリジューム時に資源準備処理のステップ5502で予約の有無をチェックする。そして、物理ストレージ装置120が、予約されていない資源のみを確保する。このようにして、仮想ストレージ装置1201Aが、資源が足りずにリジューム不可になることを防げる。
(第7の実施形態)
本実施例では、仮想ストレージ装置106の管理者が、仮想ストレージ装置106のサスペンド時にボリュームデータの退避の有無を選択できるようにして、サスペンド及びリジューム処理の実行時間を短縮する方法について述べる。
本実施例は、第1〜第4の実施例に適用できる。
以下、第7の実施形態について、第1、6の実施形態との差異を説明する。
図56は、管理サーバ102の画面3101を示す図である。
図56は、図31と、5601が異なっている。
仮想ストレージ装置106の管理者は、ボリュームデータ退避5601に、ボリュームデータを退避する場合は“有”を、退避しない場合は、“無”を入力する。
物理ストレージ装置120は、ボリュームデータを退避する場合、ボリュームデータを現在とは異なるボリューム(外部ストレージ装置129等)にコピーする。このため、ボリュームデータを退避する場合は、処理に長時間かかる。ボリュームデータを退避しない場合は、実行時間を短縮することができる。ただし、退避しない場合には、資源ボリュームにデータが残り、解放できない。このため、他の仮想ストレージ装置がその資源ボリュームを使うことができない。よって、システムの再開時間の制約等から管理者がどちらを選択するかを決める。
図57は、ボリューム退避指定処理を示すフローチャートである。
物理ストレージ装置120の制御プロセッサ124が、ボリューム退避指定処理を実行する。
仮想ストレージ装置106の管理者が管理サーバ102のGUI画面3102でボリュームデータ退避5601に“有”を設定した場合のみ、ボリューム退避指定処理が実行される。この際、管理サーバ102は、ストレージ管理プログラム1704によって、物理ストレージ装置120と通信し、ストレージ装置120にボリューム退避指定処理を実行するように指示する。
制御プロセッサ124は、ボリューム退避指定処理を開始すると、ボリューム退避情報5802を変更し、仮想ボリュームを退避無しに指定する(ステップ5701)。具体的には、制御プロセッサ124はボリューム退避情報5802のサスペンド対象の仮想ストレージ装置106が使用している仮想ボリューム番号に対応する退避の有無6212に“無”を入力する。
次に、制御プロセッサ124は、資源予約情報5301(実施例6に関連)を変更し、仮想ボリュームを予約する(ステップ5702)。具体的には、制御プロセッサ124は、仮想ストレージ資源管理情報1521を参照し、資源予約情報5301に、資源種別5311、資源番号5312、仮想ストレージ装置番号5314、仮想資源番号5315を入力し、予約の有無5313に“有”を入力する。
この予約について、実施例6の説明では、ステップ5505で予約解除を実行することができると説明した。しかし、本実施例の場合、ボリュームデータは別のボリュームに退避していない。このため、別の仮想ストレージ装置106のリジューム時に予約解除を実行し、資源ボリュームを使用すると、データが破壊される可能性がある。データが破壊された場合は復元ができなくなる。そこで、ステップ5702実行中に、制御プロセッサ124は、予約解除可否情報6001にサスペンド対象の仮想ストレージ装置106の仮想ボリュームについて“否”と設定する。それによって、制御プロセッサ124は、後に説明する資源準備処理のステップ6301で予約解除可否情報6001をチェックし、前記仮想ボリュームの予約解除の実行を防ぐ。
次に、サスペンド対象の仮想ストレージ装置106が使用しているすべての仮想ボリュームについて、処理が実行済みかどうかを判断する。(ステップ5703)処理が実行済みでなければ(ステップ5703のN)、次の仮想ボリュームについてステップ5701から処理を進め、実行済みであれば(ステップ5703のY)、終了する。
図58は、仮想ストレージ制御情報の保持する情報を表す図である。
図58は、図4の仮想ストレージ制御情報201の部分と、5802、6001が異なっている。
実施例1で説明した仮想ストレージ制御情報401に、仮想ストレージ構成情報5801とボリューム退避情報5802と予約解除可否情報6001を追加する。ボリューム退避情報5802と予約解除可否情報6001については、後説する。
図59は、ボリューム退避情報のデータ構造を示した図である。
ボリューム退避情報5802は、仮想ボリューム番号5911と退避の有無5912を項目に含む。
仮想ボリューム番号5911に対応する仮想ボリュームが、前記仮想ボリュームの属する仮想ストレージ装置106のサスペンド時に退避を実行するかどうかを、退避の有無5912が示している。制御プロセッサ124は、ボリューム退避情報5802の退避の有無5912に、退避を実行する場合は、“有”を、実行しない場合は、“無”を入力する。
図60は、予約解除可否情報のデータ構造を示した図である。
ボリューム退避情報6001は、仮想ボリューム番号6011と予約解除可否6012を項目に含む。
仮想ボリューム番号6011に対応する仮想ボリュームが、仮想ストレージ装置106のリジューム時に予約解除が実行されるかどうかを、予約解除可否6012が示している。制御プロセッサ124は、ボリューム退避情報6001の予約解除可否6012に、予約解除を実行する場合は、“可”を、実行しない場合は、“否”を入力する。
図61は、サスペンド処理の動作を示すフローチャートである。
図61は、図27と、6101、6102が異なっている。
ステップ2703の後、ボリュームの退避有りかを判断する(ステップ6101)。具体的には、制御プロセッサ124は、対象の資源が資源ボリュームの場合は、仮想ストレージ資源管理情報1521及びボリューム退避情報5802を参照する。そして、制御プロセッサ124は、対象の資源ボリュームに対応する仮想ボリューム番号と、仮想ボリューム番号に対応するボリューム退避情報5802の退避の有無5912が“有”かどうかを判定する。“有”の場合は(ステップ6101のY)、物理ストレージ装置120は、ボリュームデータをストレージイメージデータ保存先ボリュームに退避する(ステップ6102)。ステップ6102の終了後、ステップ2705に進む。
また、前記退避の有無6212が“無”の場合は(ステップ6101のN)、ステップ2705に進む。
図62は、仮想ストレージ装置106のレジューム処理の動作を示すフローチャートである。
図62は、図29と、6201〜6203が異なっている。
ステップ2902の後、制御プロセッサ124は、ボリュームの退避有りかを判断する(ステップ6201)。具体的には、制御プロセッサ124は、対象の資源が資源ボリュームの場合は、仮想ストレージ資源管理情報1521及びボリューム退避情報5802を参照する。そして、制御プロセッサ124は、対象の資源ボリュームに対応する仮想ボリューム番号と、仮想ボリューム番号に対応するボリューム退避情報5802の退避の有無5912が“有”かどうかを判定する。退避の有無5912が“有”の場合は(ステップ6201のY)、ストレージイメージデータ1601からボリュームデータを回復する(ステップ6202)。そして、ステップ6202の終了後、ステップ6203に進む。
また、前記退避の有無5912が“無”の場合は(ステップ6201のN)、ステップ6203に進む。
制御プロセッサ124は、すべての資源ボリュームについて実行済みかどうかを判断し(ステップ6203)、実行済みの場合(ステップ6203のY)、ステップ2904に進む。実行済みではない場合(ステップ6203のN)、制御プロセッサ124は、次の資源ボリュームについてステップ6201から処理を進める。
図63は、資源準備処理の動作を示すフローチャートである。
図63は、図55と、ステップ6301を追加している点で異なる。
ステップ5504で、物理ストレージ装置120の制御プロセッサ124は、警告メッセージを表示させた後、対象の仮想ボリュームは予約解除が可能かどうかを判断する(ステップ6301)。具体的には、制御プロセッサ124は対象の仮想ボリュームに対応する予約解除可否情報6001が“否”かどうかチェックし、“否”の場合は予約解除を実行せずに終了する(ステップ6301のN)。予約解除可否情報6001が“可”の場合(ステップ6301のY)、ステップ5505に進む。
実施例7の処理をまとめる。仮想ストレージ装置106のサスペンド時に、ステップ5701でボリューム退避情報5802を変更する。仮想ストレージ装置106が使用している資源ボリュームについて、データの退避の対象外であることを指定する。ステップ6101及びステップ6201で、ボリュームデータをストレージイメージデータ1601として、別ボリュームに退避させる処理を実行するかどうかを判定する。このようにして、データの退避の対象外である場合にはデータの退避を実行しないことにより、高速にサスペンド処理及びレジューム処理を実行することができる。
また、予約解除可否情報6001を変更して、ステップ5702で仮想ボリュームの予約解除を無効化することができる。この場合、他の仮想ストレージ装置106のリジューム時にステップ6301により、資源ボリュームを上書きしデータを破壊することを防ぐことができる。
(第8の実施形態)
本実施例では、仮想ストレージ装置106がサスペンドした物理ストレージ装置と、リジュームする物理ストレージ装置120が異なっていた場合に、プログラムのライセンスをチェックする処理について述べる。
本実施例は、第4の実施例に適用される。
以下、第8の実施形態について、第1、4の実施形態との差異を説明する。
図64は、リジューム時にプログラムのライセンスがインストールされていないことを示す警告メッセージである。この警告メッセージは、仮想ストレージ装置106をサスペンドした物理ストレージ装置120でインストールされていたプログラムのライセンスが、リジューム先の別の物理ストレージ装置120でインストールされていない場合に、仮想ストレージ装置106の管理者に対して表示される。
前記メッセージは、例えば、“リジューム先のストレージで以下のプログラムのライセンスがありません。プログラムをインストールしてください。”というメッセージと、インストールしていないプログラムの種別(例えば“リモートコピー”等)を表示する。
図65は、物理ストレージ制御情報の保持する情報を表す図である。
図65は、図9と、6601を追加している点で異なる。
本実施例では、実施例1で説明した物理ストレージ制御情報に、プログラムライセンス情報6601を追加する。
図66は、プログラムライセンス情報6601のデータ構造を示した図である。
制御プロセッサ124は、プログラムライセンス情報6601に、プログラム種別6611に “ローカルコピー”や“リモートコピー”等のプログラム種別を入力し、ライセンス情報6612に、プログラム種別に対応するライセンスが有効か無効かを入力する。
管理サーバ102のGUI画面3102から、ライセンスのインストールを実行されると、管理サーバ102が物理ストレージと通信する。そして、制御プロセッサ124がプログラムライセンス情報の対応するプログラム種別6611のライセンス情報6612を“有効”にする。また、管理サーバ102のGUI画面3102から、ライセンスのアンインストールが実行されると、管理サーバ102が物理ストレージと通信する。そして、制御プロセッサ124がプログラムライセンス情報の対応するプログラム種別6611のライセンス情報6612を“無効”にする。
図67は、レジューム処理の動作を示したフローチャートである。
図67は、図29と、6701、6702を追加している点で異なる。
ステップ2901の後、制御プロセッサ124は、プログラムライセンスが有効かをチェックする(ステップ6701)。具体的には、ステップ2901の後、制御プロセッサ124が、ストレージイメージデータ1601の保存先のボリュームから制御メモリに読み込んだプログラム制御情報402について、プログラム種別714を確認する。そして、制御プロセッサ124は、プログラム種別714に存在する各プログラム種別について、プログラムライセンス情報6601の、プログラム種別6611に対応するライセンス情報6612が“有効”かどうかをチェックする。もし1つでも無効のプログラム種別があった場合(ステップ6701のN)、物理ストレージ装置120は無効のプログラム種別を管理サーバ102に送信する。そして、管理サーバ102のGUI画面3102で前記無効のプログラム種別とともに警告メッセージが表示表示され(ステップ6702)、処理が終了する。ステップ6701で無効のプログラム種別がなかった場合(ステップ6701のY)、ステップ2902に進む。
以上をまとめる。制御プロセッサ124がステップ6701でプログラムのライセンスが有効かどうかをチェックすることで、プログラムをインストールしているかどうかを判断する。プログラムがインストールされていない場合、管理サーバ102のGUI画面3102によって仮想ストレージ装置106の管理者にインストールされていないプログラムが通知される。このようにして、管理者はリジューム不可の原因を迅速に知ることができる。
(第9の実施形態)
本実施例では、一定時間ホストからのホストコマンド命令が無い場合に、自動的に仮想ストレージ装置106のサスペンドを行う方法について述べる。
本実施例は第1〜4の実施例に適用される。
以下、第9の実施例について、第1の実施形態との差異を説明する。
図68は、自動サスペンド情報6801のデータ構造を表わしている。
自動サスペンド情報6801は、仮想ボリューム番号6811、最終コマンド受信時刻6812、閾値6813を含む。
仮想ボリューム番号6811は、仮想ストレージ装置106毎にユニークに割り振られる番号である。
最終コマンド受信時刻6812は、最後に仮想ボリュームがホストコマンドを受信した時刻である。制御プロセッサ124が入力する。
閾値6813は、最後にホストコマンドを受信してから、自動的にサスペンドが行われるまでの時間である。仮想ストレージ装置106の管理者が管理サーバ102のGUI画面3101で入力する。
図69は、ホストコマンド処理423の動作を示したフローチャートである。
図69は、図26とステップ6901〜6903が異なる。
ステップ2602において、物理ストレージ装置120が、ポートに対応する仮想ストレージ装置番号を算出する。
次に、物理ストレージ装置は、仮想ストレージ装置106がサスペンド状態かを判定する(ステップ6901)。仮想ストレージ装置106がサスペンド状態の場合(ステップ6901のY)、物理ストレージ装置120は仮想ストレージ装置106のリジューム処理を行う(ステップ6902)。そして、処理はステップ2603へ進む。また、仮想ストレージ装置106がサスペンド状態で無い場合(ステップ6901のN)、処理はステップ2603へ進む。
次に、物理ストレージ装置120は、仮想ストレージ装置106に対応する仮想制御部からタスクを算出する(ステップ2603)。
次に、物理ストレージ装置は最終コマンド受信時刻を更新する。具体的には、制御プロセッサ124が、自動サスペンド情報6801を参照する。そして、制御プロセッサ124は、ホストコマンドを受信した仮想ボリュームの仮想ボリューム番号6811に対応する、最終コマンド受信時刻6812にホストコマンドを受信した時刻を入力する。
以下の処理は図26における処理と同様のため、説明は割愛する。
図70は、一定時間ホストからのホストコマンド命令が無い場合に、自動的に仮想ストレージ装置106のサスペンドを行う場合の、フローチャートである。
ステップ7002〜7005は周期的に実行される(ステップ7001)。一定時間経過するとステップ7002の処理が開始される。
次に、物理ストレージ装置120は、最終コマンド受信時刻6812をチェックする(ステップ7002)。具体的には、制御プロセッサ124が、自動サスペンド情報6801を参照し、最終コマンド受信時刻6812をチェックする。
次に、制御プロセッサ124は、自動サスペンド情報6801を参照し、閾値6813以上時間が経過しているかを判断する(ステップ7003)。
閾値6813以上時間が経過している場合(ステップ7003のY)、仮想ストレージ装置106のサスペンド処理が実行される。また、閾値6813以上時間が経過していない場合(ステップ7003のN)、処理はステップ7005へ進む。
すべての仮想ストレージ装置106について処理が実行された場合(ステップ7005のY)、再びステップ7001の処理が実行される。すべての仮想ストレージ装置106について処理が実行されていない場合(ステップ7005のN)、他の仮想ストレージ装置106について、ステップ7002の処理が実行される。
図71は、管理サーバ102のGUI画面3101である。
図71は、図31と自動サスペンドの有無入力画面7101とサスペンド閾値入力画面7102が異なっている。
仮想ストレージ装置106の管理者は、自動的にサスペンド処理を行う場合は“有”を、行わない場合は“無”を入力する。
また、仮想ストレージ装置106の管理者は、サスペンド閾値を入力する。
101…ホストグループ、102…管理サーバ、103…ホスト、104…ポート、105…ネットワーク、119…ネットワーク、120…物理ストレージ装置、121…管理I/F、122…ポート、123…制御部、124…制御プロセッサ、125…制御メモリ、126…キャッシュメモリ、127…物理ドライブ、128…ポート、129…物理ストレージ装置(外部接続)、130…スロット