以下、本発明の実施形態の概要を説明する。
図32は、本発明の一実施形態の概要の説明図である。
本実施形態では、制御装置が、各VVOLにマッピングされている各VOLのVOL状態を監視しVOL状態の変化の有無を判別する。そして、制御装置は、VOL状態の変化があったVVOLへのパス(複数のホスト1及び2に共有されているホストI/Fを経由するパス)の数を変更する。
具体的には、例えば、VOL2が、高階層ストレージ装置群から低階層ストレージ装置群に移動されたとする。この場合、VOL2内のデータの重要度は、移動前に比して低いと考えられる。そのため、図示のように、移動の後、VOL2にマッピングされているVVOL2へのパスの数が、減らされる。これにより、VOL1へのアクセスがそれよりも重要度の低いVOL2へのアクセスによって悪影響を受けることが解消される。
なお、その際、もし、図示のように、複数のホストI/F A乃至Dに、ホスト1及び2に共有されているホストI/Fと共有されていないホストI/Fとが混在している場合には、共有されているホストI/Fがどれであるかを調べ、共有されているホストI/Fを経由するパスを減らすようにする。
また、パスの減少に際しては、最低限確保すべきパス数(以下、最低パス本数)以下には減らさないようにすることができる。最低パス本数は、事前にユーザが設定しておくことができる。最低パス本数は、所定の基準毎(例えば、VOL属性、階層など)に用意されても良いし、基準に関係なく一つであってもよい。
また、パスの増減のやり方としては、種々の方法、例えば、予め定義されたパスの状態(具体的には、有効(Online)と無効(Offline)を変更する方法と、パスそれ自体を増減させる(具体的には、パスを新たに構成・削減する)方法とが考えられる。以下の説明では、説明を分かり易くするため、パスの状態を変更する方法が採用される。なお、この場合、或るVVOLに対して有効パス(有効状態とするパス)の数xを、以下の範囲
(該VVOLに対して予め定義されたパス本数)≧x≧(最低パス本数)、
で、自由に増減可能としてよい。
さて、本実施形態では、上記概要において、幾つかの特徴、例えば3つの特徴がある。以下、各特徴の概要を説明する。
(A)第一の特徴:変更後のパス数の決定方法。
本実施形態では、VOLの属性に着目したVOL評価値が各VOLについて算出される。移動などによってVOL属性が変化した場合、変更後のVOL属性を基に算出されるVOL評価値に基づいて、VOL属性が変化したVOLにマッピングされているVVOLについての変更後のパス数(言い換えれば、増減するパスの数)が決定される。
VOLの属性として、VOLを有する物理的な記憶装置に関する物理的な属性を採用することができる。具体的には、例えば、VOL属性の種類として、該VOLが存在するストレージサブシステムの種類、該VOLが存在するストレージ装置群におけるストレージ装置の種類、該ストレージ装置群のRAIDレベルなど、種々の属性が考えられる。各種VOL属性には、複数のVOL属性値がある。そして、各VOL属性値には、属性評価値が予め設定されており、VOLの評価値は、そのVOLに該当する、各種VOL属性における属性評価値を基に算出される。VOL属性種類、VOL属性値及び属性評価値の関係を、図8A乃至図8Cに例示する。具体的には、図8Aは、VOL属性種類がRAIDレベルである属性テーブル3011Aの構成例を示す。図8Bは、VOL属性種類がストレージサブシステム種類である属性テーブル3011Bの構成例を示す。図8Cは、VOL属性種類がストレージ装置種類である属性テーブル3011Cの構成例を示す。各属性テーブルでは、VOL属性種類に対応するVOL属性値と、該VOL属性値に対応する属性評価値とが記録される。VOL属性種類、VOL属性値及び属性評価値は、ユーザ(例えば後述する管理者)が任意に設定することができる。
VOLの評価値は、例えば、該VOLに対応する複数の属性評価値の和である。具体的には、例えば、VOL評価値は、以下の(1)式、
VOLの評価値=(ストレージサブシステム種別における、該VOLのVOL属性値に対応した属性評価値)+(RAIDレベルにおける、該VOLのVOL属性値に対応した属性評価値)+(ストレージ装置種別における、該VOLのVOL属性値に対応した属性評価値)・・・・・(1)
により算出することができる。
そして、変更後のパス本数は、例えば、以下の(2)式、
変更後のパス本数=(現在のパス本数)×(変化後のVOL評価値÷変化前のVOL評価値)・・・・・(2)
により算出することができる。
例えば、図32の例において、VOL2がマッピングされているVVOL2の現在のパス本数を3本とする。そして、VOL2のVOL評価値が、8から5に変化したとする。この場合、上記(2)式によれば、変更後のパス数=3×(5÷8)=1.875となる。算出された値が整数にならない場合、所定の方法で整数にすることができる。本例では、小数点第一位を四捨五入することで2にする。制御装置は、VVOL2についてのパス数を、3から、算出された値2に減らす。なお、この一連の処理において、制御装置は、四捨五入後のパス数2に、四捨五入前の値1.875を対応付けて記憶する。次回の計算では、四捨五入後の値2ではなく、四捨五入前の値1.875を使用する。
すなわち、例えば、VVOL2に対するパス数を3本から2本に減らした後に、VOL2のVOL評価値が、上記5から8に変化したとする。この場合、上記(2)式によれば、変更後のパス数=変更前のパス数×(8÷5)となるが、変更前のパス数には、四捨五入後の値2ではなく、四捨五入前の値1.875を代入して計算する。これにより、適切に変更後のパス数を算出することができる。
以上のように、この実施形態では、変化前のVOL評価値に対する変化後のVOL評価値の比率と、現在のパス数とに基づいて、変更後のパス数が算出される。すなわち、VOLの属性値に対して属性評価値という値を設定し、該属性評価値を用いることで、VOL評価値という値を算出し、該VOL評価値を基に、VOLに適したパスの本数を適切な値に制御することができる。
(B)第二の特徴:増減するパスの決定方法。
パスの増減の対象の選択には、上述したVOL評価値を、ホストI/Fごとに集計した、ホストI/FごとのVOL評価値を用いる。以下、ホストI/FについてのVOL評価値の集計を、「ホストI/F評価値」と言う。パスの増減対象(どのホストI/Fを経由するパスの状態を変更するか)は、例えば、複数のホストI/F評価値を平均化することで、決定することができる。言い換えれば、VOL評価値を、VOLが要求するデータアクセスの帯域ととらえ、これを平均化することで、複数のホストI/Fでの負荷を分散することができる。この処理では、例えば、パス減少の場合、最も高いホストI/F評価値となったホストI/Fを経由するパスが減少(無効化)され、パス増加の場合、最も低いホストI/F評価値となったホストI/Fを経由するパスが増加(有効化)される。
図33に、増減するパスの決定方法の一例を示す。この例では、ホストI/Fが、後述するCHA(チャネルアダプタ)となっている。
この図によれば、CHA2が、複数のホスト1及び2に共有され、CHA4が、複数のホスト2及び3に共有されている。VOL2が、高階層ストレージ装置群から低階層ストレージ装置群に移動したことにより、VVOL2のVOL評価値(正確には、VVOL2にマッピングされているVOL2のVOL評価値)が、3になったとする。
この場合、共有されているCHA2のホストI/F評価値(以下、CHA評価値)は、13となる。なぜなら、CHA2を経由した2本のパスには、VVOL1及び2が接続されており、VVOL1のVOL評価値は10であり、VVOL2のVOL評価値は前述した通り3となり、それらを合計すると13になるからである。
一方、別の共有されているCHA4のCHA評価値は、6となる。なぜなら、CHA4を経由した2本のパスには、VVOL2及び3が接続されており、VVOL2のVOL評価値は前述した通り3となり、VVOL3のVOL評価値は3であり、それらを合計すると6になるからである。
VOL2の上記移動によりVOL2のVOL評価値は下がったため、VVOL2についてのパス数は減らすことになる。そこで、VVOL2に接続される複数のパスのうち、どのCHAを経由するパスを削除するかであるが、本例では、図示のように、CHA2を経由するパスが削除される。CHA2が、複数のホストに共有されているCHA2及び4のうち最もCHA評価値が高いCHAだからである。
以上の処理により、どのCHAを経由するパスを増やす或いは減らすかの選択を適切にすることができる。
(C)第三の特徴:パス変更のタイミング。
パスの増減のタイミングとして、移動が実行された際と、ホストI/F(例えばCHA)の負荷が変化(上昇或いは下降)した際のいずれかを採用することができる。後者の場合では、例えば、移動時に、増減対象パス候補をリストアップしておき(つまり、この時点では、パスの増減を行わない)、ホストI/Fの負荷変化を検出したタイミングで、負荷変化が検出されたホストI/Fをキーとして、リストアップされている増減対象パス候補を検索し、見つかったパスを増減(有効化或いは無効化)することができる。
以下、本発明の一実施形態について詳細に説明する。また、以下の説明では、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサ(CPU)によって処理が行われるものとする。また、以下の説明では、説明を分かり易くするために、VVOLとVOLが1対1で対応付けられるものとする。このため、或るVOLについて算出されたVOL評価値は、該VOLがマッピングされているVVOLの評価値となる。しかし、1つのVVOLに対して複数のVOLがマッピングされている場合、それら複数のVOLのそれぞれに対応した複数のVOL評価値を基に、該一つのVVOLの評価値(重要度)を算出することができる。例えば、それら複数のVOL評価値の合計を、該一つのVVOLの評価値とすることができる。変更後のパス数では、上記(2)式において、VOL評価値には、VVOLの評価値を代入することができる。
図1は、本発明の一実施形態に係る計算機システムの構成例を示すブロック図である。
第一の通信ネットワーク(具体的には、例えば、第一の通信ネットワークの構成要素である一又は複数のスイッチ75)に、複数のホスト計算機10と、ストレージサブシステム600とが接続される。第一の通信ネットワークとしては、SAN(Storage Area Network)など、種々のネットワークを採用可能である。また、ホスト計算機の数は、図1の例によれば、10Aと10Bの2台であるが、これに限定する必要は無い。以下、10Aを「ホスト1」と言い、10Bを「ホスト2」と言うことがある。
第二の通信ネットワーク104に、ホスト1及び2と、管理サーバ61と、ストレージサブシステム600と、ストレージサブシステム40A及び40Bとが接続される。第二の通信ネットワーク104としては、LAN(Local Area Network)など、種々のネットワークを採用することができる。
ホスト1及び2の構成はほぼ同様なので、ホスト1を代表的に例に採り説明する。ホスト1は、ストレージサブシステム600のVVOLに対して、アクセス要求(書込み要求/読出し要求)を発行する計算機である。ホスト1は、例えば、プロセッサ(CPU)51や、記憶資源や、一又は複数のHBA(ホストバスアダプタ)12を備える。記憶資源としては、メモリやハードディスクなど種々の記憶資源を採用可能であるが、本実施形態では、メモリとする。これは、管理サーバ61についても同様である。HBA12は、SANに接続するために、ホストが持つハードウェアであり、例えば、FC(Fibre Channel)プロトコル、SCSIプロトコルをサポートするインタフェース装置である。メモリ53には、プロセッサ51に読み込まれて実行されるコンピュータプログラムや、プロセッサ51に使用されるデータが記憶される。コンピュータプログラムとしては、例えば、業務アプリケーションプログラム(以下、業務AP)11や、デバイスリンクマネージャ55がある。データとしては、例えば、パス管理テーブル57がある。各種コンピュータプログラム11,55や、パス管理テーブル57については後述する。
管理サーバ61は、複数のホスト1,2やストレージサブシステム600、40A及び40Bを含んだ計算機システムを管理するサーバマシンである。管理サーバ61は、例えば、プロセッサ(CPU)63や、メモリ65を備える。メモリ65には、プロセッサ63に読み込まれて実行されるコンピュータプログラムや、プロセッサ63に使用されるデータが記憶される。コンピュータプログラムとしては、例えば、統合交替パス管理プログラム67や、データ階層管理プログラム69や、性能監視プログラム71がある。データとしては、例えば、複数のテーブルを含んだ管理テーブル群73がある。各種コンピュータプログラム67,69,71や、管理テーブル群73については後述する。
ストレージサブシステム600は、例えば、アレイ状に配列された多数のディスク400を備えるRAID(Redundant Array of Independent (or Inexpensive) Disks)システムとすることができる。但し、これに限らず、ストレージサブシステム600を、通信ネットワークを構成するスイッチ、例えば、高機能化されたインテリジェント型のファイバチャネルスイッチとして構成することもできる。ストレージサブシステム600は、後述のように、ストレージサブシステム40A、40Bの有する記憶資源を自己の論理ボリューム(Logical Unit)としてホスト計算機10に提供するものであるから、自己が直接支配するローカルな記憶デバイスを有していなくても良い。以下、便宜上、ストレージサブシステム600を「ストレージサブシステム1」と言い、ストレージサブシステム40Aを「ストレージサブシステム2」と言い、ストレージサブシステム40Bを「ストレージサブシステム3」と言うことがある。
ストレージサブシステム600は、コントローラ部20と、ディスクユニット30とに大別することができる。コントローラ部20は、例えば、チャネルアダプタ(以下、CHA)21と、ディスクアダプタ(以下、DKA)22と、SVP(Service Processor)23と、キャッシュメモリ24と、共有メモリ25と、接続部26とを備えている。
CHA21は、外部の装置(例えばホスト計算機或いは他のストレージサブシステム)と通信可能に接続される一又は複数の通信ポートを有し、外部の装置との間のデータ通信を行うものである。本実施形態では、一つのCHA21に備えられる通信ポート(外部の装置と通信するためのポート)の数は一つとするが、通信ポートは複数個存在してもよい。CHA21は、例えば、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。CHA21には、そのCHA21を識別するためのネットワークアドレス(例えばWWN(World Wide Name))が割り当てられている。CHA21には、ホスト計算機10に接続されたCHA21Aと、ストレージサブシステム2,3に接続されたCHA21Bとがある。CHA21Aと21Bは、一体になっていてもよい。
DKA22は、ディスクユニット30に備えられたディスク(以下、内部ディスク)400に接続するための通信ポートを有し、その通信ポートを介して、内部ディスク400と通信することができる。本実施形態では、一つのDKA22に備えられる通信ポート(内部ディスクと通信するためのポート)の数は一つとするが、通信ポートは複数個存在しても良い。DKA22は、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。DKA22は、CHA21Aからキャッシュメモリ24に書かれたデータを内部ディスク400に書込んだり、内部ディスク400から読み出したデータをキャッシュメモリ24に書込んだりすることができる。また、DKA22は、内部ディスク400との間でデータ入出力を行う場合、論理的なアドレスを物理的なアドレスに変換することができる。
キャッシュメモリ24は、例えば揮発性又は不揮発性のメモリであり、ホスト計算機10から受信したデータや、内部ディスク400から読出されたデータを一時的に記憶することができる。共有メモリ25は、例えば揮発性又は不揮発性のメモリであり、ストレージサブシステム1での制御に関する情報(以下、制御情報)が格納される。
接続部26は、CHA21、DKA22、キャッシュメモリ24及び共有メモリ25を相互に接続させる。接続部26は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
ディスユニット30には、アレイ状に配列された複数の内部ディスク400が含まれている。本実施形態では、ディスクとは、ハードディスクを意味するが、それに代えて、例えば、フレキシブルディスク、光ディスクなどのディスク型記憶装置とすることができる。勿論、ディスクに代えて、他種の記憶装置、例えば、磁気テープ、半導体メモリ(例えばフラッシュメモリ)が用いられてもよい。一以上の内部ディスク400の記憶領域上には、実体のある論理ボリュームが設けられる。
SVP23は、ストレージサブシステム1の保守又は管理を行うための情報処理端末(例えばノート型のパーソナルコンピュータ)である。SVP23は、例えば、CHA21内のプロセッサ(例えばCPU)や、DKA22内のプロセッサに、図示しないネットワークを介して接続されている。SVP23は、ストレージサブシステム1内の障害発生を監視してディスプレイ画面に表示したり、内部ディスク400の閉塞処理等を指示したりするようになっている。また、SVP23は、遠隔の情報処理端末から操作することもできる。
ストレージサブシステム2,3は、例えば、コントローラ部2001と、ディスクユニット2300とを備える。コントローラ部2001の構成は、ストレージサブシステム1と同じであっても良いし、それとは違う構成(例えば、プロセッサやメモリを備えた回路基盤)であっても良い。ディスクユニット2300には、1又は複数のディスク(以下、外部ディスク)2400があり、一以上の外部ディスク2400の記憶領域上には、実体のある論理ボリュームが備えられる。
以上が、本実施形態に係る計算機システムの構成例である。なお、上記の説明は一例であって、他の構成が採用されてもよい。例えば、共有メモリ25とキャッシュメモリ24は、別々のメモリでなく、一つのメモリに共有メモリ領域とキャッシュメモリ領域とが設けられても良い。また、例えば、コントローラ部20は、CPU、メモリ及び通信ポートを備えた回路基盤であっても良い。この場合、CPUが、複数のCHAやDKAによって行われる処理を実行することができる。
図2は、ホストとストレージサブシステムとの間の論理的な構成の一例を示す。
ホストには、HLU(Host Logical Unit)がある。HLUは、ホストに提供される論理的な記憶領域である。業務AP11は、HLUに対してアクセス要求を発行することができる。HLU1に対して発行されたアクセス要求が、HLU1に対応したLU1に対するアクセス要求として、ホストからストレージサブシステム1に送信される。
LU(Logical Unit)は、CHAのプロセッサによってホストに提供される仮想的な論理ボリュームであり、前述したVVOLに相当するものである。LUは、例えば、LUの識別子、具体的には、例えば、LUN(Logical Unit Number)とすることができる。
LD(Logical Device)は、前述したVOLに相当するものである。LDは、例えば、RAIDグループ(RAIDが組まれた二以上のストレージ装置)の記憶空間を基に生成される論理ボリュームである。
HLUとLUとの間の結線は、各LUまでの論理的なパスであり、且つ、有効状態のパスを示したものである。言い換えれば、例えば、HBA3とCHA2との間にパスが定義されていても、該パスが無効状態であれば、該パスは示されていない。
LUとLDとの間の結線は、LUにLDがマッピングされていることを示す。
図示の例によれば、LU1に対するアクセス要求があった場合は、LU1を有するストレージサブシステム1内のLD11に対してアクセスが発生する。一方、LU2に対するアクセス要求があった場合は、LU2を有するストレージサブシステム1の外部のストレージサブシステム2のLD21に対してアクセスが発生する。
ちなみに、LD21が外部のストレージサブシステム2に存在することは、ホスト1にはわからない。言い換えれば、外部のストレージサブシステム2の記憶資源が、ストレージサブシステム1の記憶資源として利用される。この外部接続技術は、例えば、特開2005−107645号公報(US出願番号10/769805号、US出願番号11/471556号)に開示の技術を援用することができる。
図3乃至図17には、各種テーブルの構成例を示す。図3乃至図15のテーブルは、管理サーバ61の管理テーブル群73に含まれるテーブルである。図16のテーブルは、ホスト1にあるパス管理テーブル57である。図17のテーブルは、ストレージサブシステム1にあるテーブルである。
以下、各種テーブルについて詳細に説明する。
図3は、論理デバイス管理テーブルの構成例を示す。
論理デバイス管理テーブル3001には、各LD毎にLDに関する情報が登録される。具体的には、例えば、このテーブル3001には、各LD毎に、LDのID(論理デバイスID)と、該LDを有するストレージサブシステムの識別子(ストレージサブシステムID)と、該LDが設定された物理的な記憶領域(例えばディスク)の識別子(物理ID)とが記録される。また、各LD毎に、該LDがLUに割り当てられているかどうかを示す割当状況と、該LDの記憶容量(容量)と、該LDが属するRAIDグループのRAIDレベルと、該LDを有するストレージサブシステムの種別と、該LDを有するディスクの種別(ストレージ装置種別)とも記録される。
LDの属性、換言すれば、LDがマッピングされるLUの属性としては、容量、RAIDレベル、ストレージサブシステム種別、ストレージ装置種別がある。これらのうちの少なくとも一つに代えて又は加えて、LDが属するディスクの応答速度、該LDが属するディスクの回転数等も属性として登録されてもよい。
また、本実施形態で言うディスクとはハードディスクであり、故に、ストレージ装置種別としては、ハードディスクドライブの種類(例えば、FC、SATA)となる。しかし、例えば、複数種類のストレージ装置(例えば、ハードディスクドライブとフラッシュメモリデバイス)が混在する場合には、ストレージ装置種類としては、ストレージ装置それ自体の種類が設定されても良い。
図4は、論理ユニット管理テーブルの構成例を示す。
論理ユニット管理テーブル3003は、LUとLDとの対応関係を示したテーブルである。図4では、一つのLUに一つのLDが割当てられる例を示しているが、一つのLUに複数のLDが対応付けられても良い。本テーブル3003には、例えば、ホストの識別子(ホストID)と、該ホストに提供されるLUの識別子(論理ユニットID)と、該LUにマッピングされるLDの識別子(論理デバイスID)とが記録される。
図5は、階層定義テーブルの構成例を示す。
階層定義テーブル3005は、データ階層管理プログラム69により、定義された階層が記録されるテーブルである。階層としては、例えば、高、中、低の三段階とすることができるが、それよりも小段或いは多段でもよい。また、本実施形態の説明では、便宜上、"階層"という表現を使用しているが、これは、LDが存在する物理的な階層の高さを意味するのではなく、VOLの重要性を意味するものである。具体的には、例えば、物理的な階層の高さで言えば、ストレージサブシステム1に存在するLDの方が、ストレージサブシステム2或いは3に存在するLDよりも高いということになるが、本実施形態で言う"階層"が、必ずしもそうなっているわけではない。階層の高さは、どんな階層がどのように定義されているかによって決定される。
具体的には、階層には、例えば、階層名称、複数種類のVOL属性、パス制限及び移動時期で定義することができる。階層名称は、例えば、管理サーバ61のユーザ(管理者)によって設定された名称である。また、各種VOL属性(例えば"RAIDレベル"という項目)、各種VOL属性に対応した値(例えば"RAID0+1")、パス制限の値、移動時期の値も、例えば、管理者によって設定されたものである。パス制限とは、最低必要となるパスの本数である。移動時期とは、移動するタイミングであり、具体的には、例えば、移動元LUが選択された後直ちに実行するというタイミングと、移動元LUが選択されても直ぐには移動を行わず、該移動元LUへのパスが経由するCHAの負荷が下がった時に移動を実行するというタイミングとがある。
階層定義テーブル3005は、ストレージサブシステム1、2、3が持つLDの中から、管理者が必要なLDを検索するための条件を設定したものである。階層名称が選択されると、VOL属性に設定された値を満たすLDが、図3の論理デバイス管理テーブル3001から特定される。
図6は、ボリュームグループ管理テーブルの構成例を示す。
ボリュームグループ管理テーブル3007は、ボリュームグループを管理するためのテーブルである。ボリュームグループとは、複数のLD或いは複数のLUを一つにまとめたものである。データを使用するアプリケーションごとや同種のデータごとにまとめて、ボリュームグループを構成することができる。
本テーブル3007には、例えば、各ボリュームグループ毎に、グループ名称及びボリュームが記述される。グループ名称は、例えば、管理者によって設定された名称である。ボリュームIDは、例えば、管理者によって設定されたLU ID或いはLD IDである。
LDを移動する場合、ボリュームグループ単位で、移動元を指定することができる。これにより、移動元を一つ一つ指定するといった面倒を無くすことができる。なお、ボリュームグループが複数のLUで構成されている場合、各LUにマッピングされている各LDが移動元となる。また、ボリュームグループが複数のLDで構成されている場合、それら複数のLDがそれぞれ移動元となる。
図7は、ボリューム−パステーブルの構成例を示す。
ボリューム−パステーブル3009は、ホストのHBAからLUまでの論理的なアクセス経路(つまりパス)が登録されたものである。つまり、本テーブル3009には、各パス毎に、パスの構成の定義を表す情報が登録される。パスは、どのホストのどのHBAからどのCHAを経由してどのLUに繋がるかで定義される。言い換えれば、パスは、ホストID、HBA ID、CHA ID、LU IDの組み合わせで定義することができる。パス状態は、そのパスが有効(Online)か無効(Offline)かを表す。
各ホスト1,2では、パス管理テーブル57(図16参照)が記憶されるが、本テーブル3009は、複数のホスト1,2にそれぞれ存在する複数のパス管理テーブル57を統合したものである。本テーブル3009に、ホストID、HBA ID、CHA ID、LU IDが設定された場合、管理サーバ16が、該ホストIDに対応したホストに、設定されたHBA ID、CHA ID、LU IDを送信する。これにより、それらの情報を受信したホストが、受信した情報を、そのホストが保持するパス管理テーブル57に設定することができる。
図8A乃至図8Cは、属性テーブルの構成例を示す。これらの属性テーブルについては既に説明してあるので、ここでは説明を省略する。
図9は、ボリュームテーブルの構成例を示す。
ボリュームテーブル3013は、LUと階層の関係を管理するためのテーブルである。本テーブル3013には、例えば、ホストID、LU ID、パス本数、Onlineパス本数、計算パス本数、階層種別が記録される。パス本数は、該パス本数に対応するホストIDを有するホストと、該パス本数に対応するLU IDを有するLUとの間に何本のパスが存在するかを表す値である。Onlineパス本数は、それらのパスのうちの何本が現在Online状態であるかを表す値であり、具体的には、変更後のパス本数の計算式(上記(2)式)で算出された値を四捨五入した後の値である。計算パス本数は、該計算式で算出された値それ自体(つまり四捨五入前の値)である。階層種別は、該階層種別に対応するLU識別子を有するLUにマッピングされたLDが属する階層を表す値である。
図10は、ボリューム評価値テーブルの構成例を示す。
ボリューム評価値テーブル3015は、LU毎のVOL評価値が格納されるテーブルである。本テーブル3015には、例えば、各LU毎に、LUを使用するホストのIDと、該LUのIDと、該LUのVOL評価値と、該LUの評価値最大値とが登録される。VOL評価値は、図8A乃至図8Cに例示した属性テーブル3011A〜3011Cと、図9に例示したボリュームテーブル3013とを基に計算される。評価値最大値とは、VOL評価値の変化履歴のうちの最大値である。
図11は、変更パス本数テーブルの構成例を示す。
変更パス本数テーブル3017は、どのホストからどのCHAを経由してどのLUに繋がるパスを何本増減すべきかを表すテーブルである。例えば、本テーブル3017には、ホストID、LU ID、変更パス本数及びCHA IDが登録される。変更パス本数において、+となっていれば、パスを増やすことを意味し、−となっていれば、パスを減らすことを意味する。
図12は、パス状態変更候補テーブルの構成例を示す。
パス状態変更候補テーブル3019は、移動の実行タイミングでパス状態を変更せず(パスを増減せず)、CHAの負荷変更時にパスを変更する場合に使用されるテーブルである。本テーブル3019には、パス状態の変更の候補とされたパスに関する情報、例えば、ホストID、HBA ID、LU ID、CHA ID、パスID及び操作種別が登録される。操作種別は、変更後のパス状態を表す。
移動の実行の際に、本テーブル3019に、パス状態変更の候補となるパスに関する情報が登録され、CHAの負荷変更検出時に、このテーブル3019に登録されているパスの情報の中から、パス状態が変更されるパスが決定される。
図13は、パス自動変更OFFテーブルの構成例を示す。
パス自動変更OFFテーブル3021には、どのホストとどのLUとを結ぶパス数を自動的に変更してはならないかが登録される。本テーブル3021には、例えば、ホストID及びLU IDが登録される。そのホストIDから識別されるホストと、該ホストIDに対応したLU IDから識別されるLUとを結ぶパスの本数は、自動的に増減されることはない。
図14は、CHA評価値テーブルの構成例を示す。
CHA評価値テーブル3023は、各CHA毎のCHA評価値が登録される。本テーブル3023には、例えば、各CHA毎に、CHA IDとCHA評価値とが登録される。
図15は、パス本数制限テーブルの構成例を示す。
パス本数制限テーブル3025には、最低パス本数が登録される。本テーブル3025は、パス本数を減少させる際に参照される。
図16は、パス管理テーブルの構成例を示す。具体的には、この図16は、ホスト1のパス管理テーブルの構成例を示す。
本テーブル57には、管理サーバ16から送信されて来た、パスに関する情報(HBA ID、CHA ID、LU ID)が登録され、且つ、パスID、HLU ID、及びパス状態が登録される。
デバイスリンクマネージャ55は、業務AP11のアクセス要求を受け付け、該アクセス要求を受けた場合、該アクセス要求に含まれるHLU IDから、ストレージサブシステム1にアクセス要求を送信するのに使用するパスを、本パス管理テーブル57から特定される複数のパスの中から選択する。
具体的には、例えば、LU1がホスト1にマウントされたことにより、HLU1がある場合に、HLU1に対するアクセス要求を受け付けたとする。この場合、デバイスリンクマネージャ55は、パスID0001〜00014にそれぞれ対応した14本のパスの中の一つを選択して、LU1に対するアクセス要求を送信することができる。なお、複数のアクセス要求があった場合、デバイスリンクマネージャ55は、ストレージサブシステム1に送信するのに使用するパスを、n回(nは1以上の整数)使用する都度に別のパスに切り替えていくことで、負荷分散を行うことができる。
図17は、ボリューム対応テーブルの構成例を示す。
ボリューム対応テーブル3029は、例えば、ストレージサブシステム1の共有メモリ25に記憶されるテーブルである。本テーブル3029は、LUとLDとの対応関係が定義されたテーブルである。具体的には、例えば、本テーブル3029には、LUのID、該LUにマッピングされているLDのID、及び該LDを有するストレージサブシステムのIDが記録される。
ストレージサブシステム1におけるCHAのプロセッサは、或るLUに対するアクセス要求があった場合、該LUにマッピングされているLDが、ストレージサブシステム1内にあるか否かをボリューム対応テーブル3029から判別し、ストレージサブシステム2又は3にあると判別した場合には、該LDへのアクセス要求を、ストレージサブシステム2又は3に送信することができる。
図18は、階層定義画面の構成例を示す。
階層定義画面3031は、管理者から階層の定義を受け付けるGUI(Graphical User Interface)であり、例えば、データ階層管理プログラム69によって表示される画面である。この画面3031を介して、管理者は、階層を定義することができる。具体的には、例えば、階層名称、移動元グループ、各種VOL属性などを入力することで、階層を定義することができる。本画面3031を介して入力された情報が、階層定義テーブル3005に登録される。
図19は、パス状態表示画面の構成例を示す。
パス状態表示画面3033は、各LUについてのパスの状態が表示される画面である。本画面3033は、例えば、統合交替パス管理プログラム67によって表示される。
この画面3033では、タブでホストが指定できるようになっている。管理者が、マウス等の入力装置を利用して、所望のホストのタブを指定すると、該ホストがアクセス可能なLUについて、階層名称、HBA ID、CHA ID、現在のパス状態、前のパス状態が表示される。これらの情報は、例えば、ボリューム−パステーブル3009(図7参照)から取得される。
なお、階層名称は、LUが或る階層に属する場合に表示され、どの階層にも属していない場合には、空欄となる。LUが階層に属しているかどうかは、例えば、図9に例示したボリュームテーブル3013で判断することができる。
また、前のパス状態は、階層が指定されて移動した場合には、移動前のパス状態が設定される。LUが移動していない場合は、空欄となってよい。
以下、本実施形態で行われる処理の流れの一例を説明する。なお、以下の説明では、ステップを「S」と略記する。
図29は、階層定義処理の流れの一例を示す。
S211では、データ階層管理プログラム69が、管理者からの指示に応答して、階層定義画面3031(図18参照)を表示する。階層定義画面3031を介して、完了が指示された場合(具体的には、完了ボタンが押下された場合)、階層定義画面3031に登録された種々の情報が入力され、S212でYESとなり、ステップ213にすすむ。
S213では、データ階層管理プログラム69が、入力された情報に、階層名称があるかどうかを判断する。階層名称があれば、S214にすすみ、なければ、S215にすすむ。
S214では、データ階層管理プログラム69が、入力された階層名称と、指定されたVOL属性値及びパス制限等を、階層定義テーブル3005に登録する。
S215では、データ階層管理プログラム69が、入力された情報に、移動元の情報があるかどうか(つまり、移動元の指定があるかどうか)を判別する。移動元の情報があれば、S216にすすみ、なければ、終了となる。
S216では、データ階層管理プログラム69が、移動元の情報から、移動元LDを特定する。移動元の情報が、ボリュームグループであれば、ボリュームグループ管理テーブル3007を参照することにより、該ボリュームグループに属するボリュームを特定する。特定されたボリューム、或いは、上記移動元の情報が、LUであれば、論理ユニット管理テーブル3003を参照することにより、該LUに対応するLDを特定する。
S217では、データ階層管理プログラム69が、論理デバイス管理テーブル3001を参照し、移動元LDに対応する一又は複数のVOL属性値(例えば容量)を取得する。
S218では、データ階層管理プログラム69が、論理デバイス管理テーブル3001を参照し、S217で取得したVOL属性値に一致するLDであって、未割当てのLDがあるかどうかを判別する。なければ、S219にすすみ、あれば、S220にすすむ。
S219では、データ階層管理プログラム69は、移動先が無いことを表した画面を表示する。
S220では、データ階層管理プログラム69は、S217で取得したVOL属性値に一致するLDであって未割当てのLDを選択し、選択したLDについて、割当状況(論理デバイス管理テーブル3001における割当状況)を、割当て済みを意味する"済"に設定する。
S221では、データ階層管理プログラム69が、階層定義画面3031を介して入力された移動時期を表す情報が"直ぐに実行"かどうかを判別する。そうであれば、S222にすすみ、そうでなければ、終了となる。
S222では、データ階層管理プログラム69が、データ移動コマンドをストレージサブシステム1に送信する。該データ移動コマンドには、移動元LDのLD IDと、移動先LDのLD IDとが含まれる。そのデータ移動コマンドの応答として、移動完了を、ストレージサブシステム1から受信した場合に(S223でYES)、S224に進む。
S224では、データ階層管理プログラム69が、所定種類のテーブルを更新する。具体的には、例えば、論理ユニット管理テーブル3003において、移動元LDにマッピングされていたLUのLU IDに対応するLD IDを、移動元LDのLD IDから、移動先LDのLD IDに変更する。また、移動先LDが属する階層が、移動元LDが属する階層と違っていれば、ボリュームテーブル3013において、該移動先LDがマッピングされているLUに対応した階層種別を、移動先LDが属する階層の階層名称に変更する。
S225では、データ階層管理プログラム69が、図20のパス切替処理を実行するための第一の呼び出しと、図24のVOL評価値更新処理を実行するための第二の呼び出しとを行う。第二の呼び出しでは、例えば、移動先LDにマッピングされているLU(以下、便宜上、「対象LU」と言う)のLU IDが入力される。
図30は、移動処理の流れの一例を示す。
S231では、ストレージサブシステム1は、管理サーバ16(データ階層管理プログラム69)からのデータ移動コマンドに応答して、該コマンドで指定された移動元LD内の全データを、該コマンドで指定された移動先LDにコピーする。それが完了したならば(S232でYES)、S233にすすむ。
S233では、ストレージサブシステム1は、LUにマッピングするLDを、移動先のLDに変更する。具体的には、例えば、図2において、LD11内のデータがLD31にコピーされた場合、ボリューム対応テーブル3029において、LU ID"LU1"に対応したLD ID"LD11"を"LD31"に変更し、ストレージシステムIDを"01"から"03"に変更する。
S234では、ストレージサブシステム1は、移動元LD内のデータを消去する。
S235では、ストレージサブシステム1は、管理サーバ16に、移動完了を通知する。
図20は、パス切替処理の流れの一例を示す。
上記第一の呼び出しで、統合交替パス管理プログラム67が起動する。統合交替パス管理プログラム67は、図30での移動先LDにマッピングされているLU(対象LU)について、S102乃至S108を実行する。
S102では、統合交替パス管理プログラム67は、パス数自動変更OFFテーブル3021を参照し、対象LUのIDを検索する。見つかった場合には(S103でYES)、このパス切替処理を終了し、見つからなかった場合には(S103でNO)、S104にすすむ。
S104では、統合交替パス管理プログラム67は、図21のパス変更本数計算処理を実行するための第三の呼び出しを行う。
S105では、統合交替パス管理プログラム67は、パスの変更モードを判定する。変更モードとは、パス変更のタイミングを表し、具体的には、移動時と、CHA負荷変更時とがある。変更モードは、例えば、統合交替パス管理プログラム67に管理者によって設定されるが、VVOL毎に設定されても良い。移動時であれば、S106にすすみ、CHA負荷変更時であれば、S108にすすむ。
S106では、統合交替パス管理プログラム67は、図22のパス本数変更処理を実行するための第四の呼び出しを行う。
S107では、パス本数変更処理の結果を基に、統合交替パス管理プログラム67が、ボリュームテーブル3013(図9参照)、ボリューム−パステーブル(図7参照)及びボリューム評価値テーブル3015(図10)を更新する。
S108では、統合交替パス管理プログラム67は、図26のパス状態変更候補登録処理を実行するための第五の呼び出しを行う。この第五の呼び出しでは、対象LUのLU IDが入力される。
図21は、パス変更本数計算処理の流れの一例を示す。
S111では、統合交替パス管理プログラム67は、対象LUのIDに対応したVOL評価値(CUR_VAL)を、ボリューム評価値テーブル3015から取得する。
S112では、統合交替パス管理プログラム67は、図24のVOL評価値更新処理を実行するための第六の呼び出しを行う。この第六の呼び出しにより実行されたVOL評価値更新処理の結果として得られたVOL評価値を、新規値(NEW_VAL)とする。
S113では、統合交替パス管理プログラム67は、対象LUのIDに対応した計算パス本数(CUR_NUM)を、ボリュームテーブル3013から取得する。Onlineパス本数がCUR_NUMとして取得されても良い。
S114では、統合交替パス管理プログラム67は、上記(2)式、すなわち、変更後のパス本数(NEW_NUM)=(現在のパス本数)(CUR_NUM)×(変化後のVOL評価値(NEW_VAL)÷変化前のVOL評価値(CUR_VAL))を計算する。算出された変更後のパス本数(NEW_NUM)が、図20のS107で、Onlineパス本数として、ボリュームテーブル3013に記録される。また、NEW_NUMの四捨五入前の値が、図20のS107で、計算パス本数として、ボリュームテーブル3013に記録される。
S115では、統合交替パス管理プログラム67は、対象LUのLU IDを、変更パス本数テーブル3017(図11参照)に追加し、且つ、該LU IDに対応した変更パス本数として、NEW_NUMからCUR_NUM(この「CUR_NUM」はOnlineパス本数)を減算した値を、変更パス本数テーブル3017に登録する。
図22は、パス本数変更処理の流れの一例を示す。
これは、上記第四の呼び出しにより、実行される。第四の呼び出しでは、対象LUのLU ID(つまり、パス変更対象のLUのID)が入力される。統合交替パス管理プログラム67は、変更パス本数テーブル3017を参照し、入力されたLU IDについて変更パス本数があれば、S121以降を実行する。
S121では、統合交替パス管理プログラム67は、対象LUに対応した変更パス本数を参照する。その変更パス本数の値が、正の値であれば(S122でYES)、パスを増加するということを意味するので、S123〜S126の処理を行う。一方、その変更パス本数の値が、負の値であれば(S122でNO)、パスを減少するということを意味するので、S133〜S136の処理を行う。
S123では、統合交替パス管理プログラム67は、図23のCHA選択処理を実行するための第七の呼び出しを行う。この第七の呼び出しでは、対象LUのLU IDと、モード値:最小(CHA評価値が最も小さいCHAを選択することを意味する値)とが入力される。このCHA選択処理では、対象LUへのパスが経由する複数のCHAのCHA IDのうちCHA評価値が最も小さいCHA IDが選択され、該選択されたCHA IDが、対象CHAのIDとして、変更パス本数テーブル3017に登録される。
S124では、統合交替パス管理プログラム67は、対象CHAを経由する一以上のOfflineパスをボリューム−パステーブル3009から特定し、特定された一以上のOfflineパスから一つのOfflineパスを選択し、選択したOfflineパスをOnlineパスに変更する。
S125では、統合交替パス管理プログラム67は、対象LUに対応した変更パス本数の値を1減算する。
S126では、統合交替パス管理プログラム67は、図28のCHA評価値テーブル更新処理を実行するための第八の呼び出しを行う。
対象LUに繋がるOfflineパスが未だ存在し、且つ、S125での更新後の変更パス本数の値が0ではない場合に、S123に戻り、そうではない場合に、S137にすすむ。
S133では、統合交替パス管理プログラム67は、図23のCHA選択処理を実行するための第七の呼び出しを行う。この第七の呼び出しでは、対象LUのLU IDと、モード値:最大(CHA評価値が最も大きいCHAを選択することを意味する値)とが入力される。このCHA選択処理では、対象LUへのパスが経由する複数のCHAのCHA IDのうちCHA評価値が最も大きいCHA IDが選択され、該選択されたCHA IDが、対象CHAのIDとして、変更パス本数テーブル3017に登録される。
S134では、統合交替パス管理プログラム67は、対象CHAを経由する一以上のOnlineパスをボリューム−パステーブル3009から特定し、特定された一以上のOnlineパスから一つのOnlineパスを選択し、選択したOnlineパスをOfflineパスに変更する。
S135では、統合交替パス管理プログラム67は、対象LUに対応した変更パス本数の値を1加算する。
S136では、統合交替パス管理プログラム67は、図28のCHA評価値テーブル更新処理を実行するための第八の呼び出しを行う。
対象LUに繋がるOnlineパスが未だ最低パス本数(パス本数制限テーブル3025に記録されている最低パス本数)を超えており、且つ、S135での更新後の変更パス本数の値が0ではない場合に、S133に戻り、そうではない場合に、S137にすすむ。
S137では、統合交替パス管理プログラム67は、対象LUに対応する変更パス本数を変更パス本数テーブル3017から削除する。
別の対象LUに対応する変更パス本数がある場合には、別の対象LUについて、S121以降が行われ、そうではない場合には、終了となる。
図23は、CHA選択処理の流れの一例を示す。
これは、上記第七の呼び出しを契機に行われる。
S141では、統合交替パス管理プログラム67は、ボリューム−パステーブル3009を参照し、対象LUに対応した複数のCHA IDを取得する。
S142では、統合交替パス管理プログラム67は、S141で取得された複数のCHA IDにそれぞれ対応する複数のCHA評価値をCHA評価値テーブル3023から取得する。これにより、どのCHAがどのCHA評価値なのかがわかる。
S143では、統合交替パス管理プログラム67は、上記第七の呼び出しにより入力されたモード値が最小であるか否かを判別する。最小の場合、S144にすすみ、最大の場合、S145にすすむ。
S144では、統合交替パス管理プログラム67は、S141で取得された複数のCHA IDのうち、CHA評価値が最も小さいCHA IDを選択する。
S145では、統合交替パス管理プログラム67は、S141で取得された複数のCHA IDのうち、CHA評価値が最も大きいCHA IDを選択する。
S146では、統合交替パス管理プログラム67は、S144或いはS145で選択されたCHA IDを、上記第七の呼び出しの呼び出し元に返す。
図24は、VOL評価値更新処理の流れの一例を示す。
これは、上記第二の呼び出しを契機に実行される。この第二の呼び出しでは、対象LUのLU IDが入力される。VOL評価値(TOTAL)は、初期値として0が設定され、該LU IDに対応した階層名称が、ボリュームテーブル3013から取得される(S151)。
統合交替パス管理プログラム67は、各種属性テーブル(図8A乃至図8C参照)について、S152及びS153を実行する。
S152では、統合交替パス管理プログラム67は、S151で取得した階層名称に対応するVOL属性値であって、参照する属性テーブルのVOL属性種類(例えば、図8Aの属性テーブル3011Aであれば、RAIDレベル)に対応したVOL属性値(例えば"RAID0+1")を、階層定義テーブル3005から取得する。
S153では、統合交替パス管理プログラム67は、取得したVOL属性値に対応した属性評価値を、属性テーブルから取得し、取得した属性評価値をTOTALに加算する。
S154では、統合交替パス管理プログラム67は、TOTALをVOL評価値として、上記第二の呼び出しの呼び出し元に返す。
図27は、CHA性能監視処理の流れの一例を示す。
この処理は、性能監視プログラム71によって定期的に(又は不定期的に)実行される。
S191では、性能監視プログラム71は、ボリュームテーブル3013に記録されている全ての種類のCHA IDを取得し、CHA IDの一覧を作成する。CHA ID一覧における各CHA IDについて、S192〜S194が行われる。
S192では、性能監視プログラム71は、CHA IDを指定した負荷送信要求をストレージサブシステム1に送信し、それにより、ストレージサブシステム1から、該CHA IDから識別されるCHAの負荷の値を取得する。ストレージサブシステム1は、各CHA毎に、負荷を定期的に取得し、取得された負荷を表す値を、共有メモリ25に記録しておく。ストレージサブシステム1は、負荷送信要求を受信した場合には、該負荷送信要求で指定されるCHA IDに対応した負荷値を、性能監視プログラム71に送信する。
S193では、性能監視プログラム71は、取得された負荷の値が、所定の閾値以上か否かを判別する。該閾値は、例えば性能監視プログラム71に予め設定されている。取得された負荷の値が、所定の閾値以上であれば、S194にすすみ、そうでなければ、S192に戻るか或いは終了となる。
S194では、性能監視プログラム71は、速度低下時パス切替処理を実行するための第九の呼び出しを行う。この第九の呼び出しでは、取得された負荷値が所定の閾値以上となったCHAのCHA IDが入力される。
以上が、CHA性能監視処理の流れの一例である。なお、CHAの負荷値としては、例えば、CHAに搭載されているプロセッサの使用率、CHAが受信する単位時間当たりのアクセス要求の数など、種々の値を用いることができる。また、CHAの負荷値に代えて又は加えて、ホストからLUまでのパスが経由する物理的な要素(例えば、ホスト、スイッチ75など)の負荷値が監視され、性能監視プログラム71は、その要素の負荷値を取得し、該負荷値と閾値との比較を行っても良い。
図25は、速度低下時パス切替処理の流れの一例を示す。
この処理は、上記第九の呼び出しを契機に実行される。その第九の呼び出しでは、統合交替パス管理プログラム67が起動し、CHA IDが入力される。パス状態変更候補テーブル3019に記録されている全てのCHA IDについて、S161〜S165が行われる。
S161では、統合交替パス管理プログラム67が、パス状態変更候補テーブル3019からCHA IDを取得する。
S162では、統合交替パス管理プログラム67が、取得したCHA IDと、上記第九の呼び出しで入力されたCHA IDとを比較する。それらが互いに一致すれば、S163にすすみ、不一致であれば、S161に戻るか或いは終了となる。
S163では、統合交替パス管理プログラム67が、該CHA IDを経由するパス状態変更候補パス(パス状態変更候補テーブル3019にあるパスIDに対応したパス)のパス状態を変更してもOnlineパス数は最低パス本数(図15参照)以上であるか否かを判別する。この判別は、該CHA IDとボリューム−パステーブル3009とを基に行うことができる。Onlineパス数が最低パス本数以上であると判別された場合には、S164にすすみ、そうではない場合には、S161に戻るか或いは終了となる。
S164では、統合交替パス管理プログラム67が、該CHA IDを経由するパス状態変更候補パスのパス状態を、パス状態変更候補パスに対応する操作種別が表すパス状態に変更する。
S165では、統合交替パス管理プログラム67が、ボリュームテーブル3013及びボリューム−パステーブル3009を更新する。具体的には、ボリュームテーブル3013において、パス状態変更候補パスに対応するLU IDに対応したOnlineパス本数の値を更新する。また、ボリューム−パステーブル3009において、パス状態変更候補パスに対応するパスIDに対応したパス状態を更新する。
図26は、パス状態変更候補登録処理の流れの一例を示す。
この処理は、LDの移動後に即座にパス本数を変更するのでなく、後で変更するために、パス状態変更候補テーブル3019に登録しておく処理である。この処理は、上記第五の呼び出しを契機に実行される。その第五の呼び出しでは、対象LUのLU IDが入力される。統合交替パス管理プログラム67は、変更パス本数テーブル3017を参照し、入力されたLU IDについて変更パス本数があれば、S171以降を実行する。
S171では、統合交替パス管理プログラム67は、対象LUに対応した変更パス本数を参照する。その変更パス本数の値が、正の値であれば(S172でYES)、パスを増加するということを意味するので、S173〜S177の処理を行う。一方、その変更パス本数の値が、負の値であれば(S172でNO)、パスを減少するということを意味するので、S183〜S187の処理を行う。
S173では、統合交替パス管理プログラム67は、図23のCHA選択処理を実行するための第七の呼び出しを行う。この第七の呼び出しでは、対象LUのLU IDと、モード値:最小(CHA評価値が最も小さいCHAを選択することを意味する値)とが入力される。このCHA選択処理では、対象LUへのパスが経由する複数のCHAのCHA IDのうちCHA評価値が最も小さいCHA IDが選択され、該選択されたCHA IDが、対象CHAのIDとして、変更パス本数テーブル3017に登録される。
S174では、統合交替パス管理プログラム67は、対象CHAを経由する全てのパスがパス状態変更候補テーブルに登録済みか以下か否かを判別する。ここでは、例えば、対象CHAのCHA IDに対応した一以上のパスを、ボリューム−パステーブル3009から特定し、特定された一以上のパスの全てがOnline状態か否かを判別する。登録済みでなければ、S175にすすみ、登録済みであれば、S188にすすむ。
S175では、統合交替パス管理プログラム67は、対象CHAを経由する一以上のOfflineパスをボリューム−パステーブル3009から特定し、特定された一以上のOfflineパスから一つのOfflineパスを選択し、選択したOfflineパスに関する情報を、パス状態変更候補テーブル3019に登録する。その際、操作種別を、Onlineとする。
S176では、統合交替パス管理プログラム67は、対象LUに対応した変更パス本数の値を1減算する。
S177では、統合交替パス管理プログラム67は、図28のCHA評価値テーブル更新処理を実行するための第八の呼び出しを行う。
対象LUに繋がるOfflineパスが未だ存在し、且つ、S176での更新後の変更パス本数の値が0ではない場合に、S173に戻り、そうではない場合に、S188にすすむ。
S183では、統合交替パス管理プログラム67は、図23のCHA選択処理を実行するための第七の呼び出しを行う。この第七の呼び出しでは、対象LUのLU IDと、モード値:最大(CHA評価値が最も大きいCHAを選択することを意味する値)とが入力される。このCHA選択処理では、対象LUへのパスが経由する複数のCHAのCHA IDのうちCHA評価値が最も大きいCHA IDが選択され、該選択されたCHA IDが、対象CHAのIDとして、変更パス本数テーブル3017に登録される。
S184では、統合交替パス管理プログラム67は、対象CHAを経由する全てのパスがパス状態変更候補テーブルに登録済みか以下か否かを判別する。ここでは、例えば、対象CHAのCHA IDに対応した一以上のパスを、ボリューム−パステーブル3009から特定し、特定された一以上のパスの全てがOffline状態か否かを判別する。登録済みでなければ、S185にすすみ、登録済みであれば、S188にすすむ。
S185では、統合交替パス管理プログラム67は、対象CHAを経由する一以上のOnlineパスをボリューム−パステーブル3009から特定し、特定された一以上のOnlineパスから一つのOnlineパスを選択し、選択したOnlineパスに関する情報を、パス状態変更候補テーブル3019に登録する。その際、操作種別を、Offlineとする。
S186では、統合交替パス管理プログラム67は、対象LUに対応した変更パス本数の値を1減算する。
S187では、統合交替パス管理プログラム67は、図28のCHA評価値テーブル更新処理を実行するための第八の呼び出しを行う。
対象LUに繋がるOnlineパスが未だ最低パス本数(パス本数制限テーブル3025に記録されている最低パス本数)を超えており、且つ、S186での更新後の変更パス本数の値が0ではない場合に、S183に戻り、そうではない場合に、S188にすすむ。
S188では、統合交替パス管理プログラム67は、対象LUに対応する変更パス本数を変更パス本数テーブル3017から削除する。
別の対象LUに対応する変更パス本数がある場合には、別の対象LUについて、S171以降が行われ、そうではない場合には、終了となる。
図28は、CHA評価値テーブル更新処理の流れの一例を示す。
この処理は、上記第八の呼び出しを契機に実行される。
S201では、統合交替パス管理プログラム67は、CHA評価値テーブル3023に記録されている全てのCHA評価値を0にクリアする。そして、ボリューム−パステーブル3009に記録されている各パスについて、S202及びS203が行われる。
S202では、統合交替パス管理プログラム67は、パスに対応したLU IDをキーに、ボリューム評価値テーブル3015から、VOL評価値を取得する。
S203では、統合交替パス管理プログラム67は、そのパスに対応したCHA IDに対応するCHA評価値に、上記取得したVOL評価値を加算する。
以上が、本実施形態についての説明である。以下、上記の実施形態の説明を要約或いは補充すると、例えば以下の通りとなる。以下、(a)マルチパス構成の説明、(b)階層定義の説明といった流れで説明する。
(a)マルチパス構成の説明。
管理サーバ16は、次の情報(i)乃至(iii)を有する。
(i)各ホストのHBAの情報。例えば、ホスト1には、HBA1、HBA2を有しているとの情報。
(ii)ストレージサブシステム1のCHAの情報。例えば、ストレージサブシステム1がCHA1〜CHA6を有しているとの情報。
(iii)図3に示す論理デバイス管理テーブル3001。
これらの情報を利用して、管理サーバ16は、次のようにマルチパス(複数のパス)を構成することができる。以下、その手順の一例の概要を説明する。
(T1)論理ユニットの定義。管理者は、各ホストの業務AP11が必要な容量のLUを作成する。管理者により、図4に示すように、ホストID及びLU IDを定義し、次に、図3に示す論理デバイス管理テーブル3001を参照して、マッピングするLDのIDを、図4の論理ユニット管理テーブル3003に登録する。この場合、一つのLUに対して、一つのLDが登録されても良いし、LDの容量がLUの必要容量未満であれば、該LUに対して、複数のLDが登録されても良い。
(T2)図7のボリューム−パステーブルの生成。ホスト毎に、HBA ID、CHA ID、LU IDが登録される。例えば、ホスト1に対してLU1を生成した場合、ホスト1が有する全てのHBA(HBA1、HBA2)と、ストレージサブシステム1が有する全てのCHA(CHA1〜CHA7)と、LU1との組合せ(論理的なパス)が登録される。単なる組合せなので、自動的に設定することができる。以下、その例を示す。
HBA1−CHA1−LU1
HBA1−CHA2−LU1
…
HBA1−CHA7−LU1
HBA2−CHA1−LU1
HBA2−CHA2−LU1
…
HBA2−CHA7−LU1
なお、セキュリティのためゾーニングがされている場合、例えば、ホスト1はCHA1〜CHA3のみアクセス可能、ホスト2はCHA4〜CHA7のみアクセス可能となっている場合には、この範囲で組合せが登録される。
(T3)管理者は、この組合せから、必要なパス(論理的なパス)についてパス状態をOnlineとする。
(T4)管理サーバ16から各ホスト1,2へ、パスの情報(HBA、CHA、LUの組合せ、パス状態)を送る。
(T5)各ホスト1,2では、送られてきたパスの情報に基づいて、図16に示すパス管理テーブル57を生成する。
(T6)各ホスト1、2のデバイスリンクマネージャ55は、LU毎にHLUを生成する。
(T7)業務AP11から、HLUに対してアクセス要求を受けるとデバイスリンクマネージャ55は、該HLUに対応するLUにつながる複数のOnlineのパスの中から一つのパスを選択し、このパスを利用してストレージサブシステム1にアクセス要求を送る。複数のアクセス要求を受けた場合、1つのアクセス要求毎にパスを選択したり、予め決められたアクセス要求の単位毎にパスを選択して、ストレージサブシステム1にアクセス要求を送ってよい。
以上のようにして、各ホストにパスが設定され、このパスによって、ストレージサブシステム1に対してアクセス要求が行われる。
なお、上記の例では、HBA、CHA、LUの組合せでパスが定義されているが、ストレージサブシステム側は、ポートの識別子でも良い。すなわち、HBA−CHA−LUの組合せに代えて、HBA−ストレージサブシステム1のポート−LUの組合せでパスが定義されてもよい。
また、上記の例では、ホストが利用するLUについて全てのパスが設定される場合を示したが、管理者が必要なパス(例えば、ホスト1がLU1を利用する場合、HBA1、HBA2、CHA1、CHA2の組合せによるパス)を設定するようにしても良い。この場合、図22のS123及びS124を次のようにしてよい。つまり、対象CHAを通るパスが存在するかどうかを判断し、パスが存在する場合には、Onlineに変更し、パスが存在しない場合には、対象CHAを通るパスを、図7のボリューム−パステーブルに新たに登録し、パス状態をOnlineにしてよい。
(b)階層定義の説明
例えば、データの価値(重要性)は、時間とともに変化することがある。例えば、医療機関におけるデータ等は、患者が通院している間、参照される可能性が高く、一旦、通院が終了すると、参照頻度が下がる。しかしながら、このデータは、再び患者が通院する場合もあるので、保存しておく必要があり、再び通院が始まると、参照する頻度が上がる可能性がある。
一方、ストレージサブシステムには、色々な種類があり、例えば、応答速度が速いストレージサブシステムは、高価であり、あまり台数を揃えられない。一方、応答速度が遅いストレージサブシステムは、価格が低く、台数をそろえることができるので、容量増加が見込める。
このように、複数種類のストレージサブシステムを組合せることで、データの価値に応じた管理をすることが可能になる。
しかしながら、一つのストレージサブシステムで数千のLDを管理することは、管理者の負担が大きい。そこで、高性能なLDのグループ、中性能なLDのグループといったように、LDをグループで管理することで、管理者の負担を減らすことが可能となる。
階層制御は、これを実現するもので、所定の条件を満たすLDをグループとして管理するものである。
以下、階層定義及び階層定義に基づいたデータの移動(マイグレーション)について説明する。
図18は、管理者が階層を定義したり、データの移動を指定するための画面である。
「移動元LU」は、移動元のLUを指定するためのインタフェースである。移動元LUを指定すると、図7のボリューム−パステーブルに登録されているLUの識別子の一覧がプルダウンで表示される。パスが定義されているLUは、業務AP11で利用されているために、このように移動元のLUを指定できるようにしている。管理者は、表示されたLU IDを選択することで、移動元LUを指定することができる。
「移動元LD」は、移動元のLDを指定するためのインタフェースである。図7のボリューム−パステーブル3009に登録されているLUから、図4の論理ユニット管理テーブル3003によって、特定されたLDの識別子の一覧がプルダウンで表示される。管理者は、表示されたLD IDを選択することで、移動元LDを指定することができる。
「移動元グループ」は、移動元のボリュームグループを指定するためのインタフェースである。移動元グループを指定すると、管理者によって設定されたグループ名称の一覧がプルダウンで表示され、管理者は、このグループ名称を指定することで、移動元のLU又はLDを指定することができる。例えば、業務AP11で、複数のLU、LDを利用している場合、管理者が一つ一つLU、LDを選択することが大変である。そのため、ユーザが任意に名称を設定し、この名称に対応付けてLU、LDを登録することにより、名称の指定で対象となるLU、LDの指定が可能になる。図6は、ボリュームグループ管理テーブル3007の一例を示したものである。
「移動時期」は、移動元として選択されたLU又はLDのデータを移動するタイミングを設定するためのインタフェースである。このタイミングとしては、複数種類あり、例えば、「直ぐに実行」(画面入力終了後に実行)、「低負荷時実行」(コントローラの負荷が低い時に実行)、「指定実行」(移動する日付を管理者が入力)のいずれかが選択できるようになっている。
「階層名称」は、階層名称を入力するためのインタフェースである。新たな階層を定義する場合には、空欄に名称を入力する。既に設定された階層を利用する場合には、階層名称を指定することで、既に設定された階層の名称がプルダウンで表示される。図5は、既に設定された階層を示しており、プルダウンで高階層、中階層、低階層といった名称が表示される。
「属性」は、属性を入力するためのインタフェースである、新たな階層定義の場合、RAIDレベル、ストレージサブシステム種別、ストレージ装置種別を指定すると、プルダウンで、表示される。プルダウンで表示される内容は、図3の論理デバイス管理テーブル3001に登録されている内容である。例えば、RAIDレベルは、RAID0+1、RAID5、RAID1となる。
なお、階層名称が、既に設定された階層名称から選択された場合、図5に設定された属性が表示される。もし、属性を変更したい場合には、変更したい属性を指定することで、プルダウン表示をさせ、選択する。
「パス制限」は、パス制限を入力するためのインタフェースである。新たな階層定義の場合、最低必要となるアクセスパスの本数を指定する。階層名称において、既に定義された階層が選択された場合、定義された属性を表示する。なお、パス制限は、階層に必要なパスの最低本数であり、そういった意味で、階層に依存しない前述した「最低パス本数」(図15のパス本数制限テーブルに記録される値)とは異なる。ちなみに、パスを減らす際、最低パス本数との比較が行われるが、この場合、例えば、図22や図26の処理において、対象LUにマッピングされているLDが属する階層のパス制限が、最低パス本数より大きければ、最低パス本数に代えてパス制限が比較されてよく、逆に、該パス制限が最低パス本数より小さい場合に、最低パス本数が比較されて良い。
このように、図18に示した画面で、階層の定義、階層の定義の変更、所定の階層へのデータ移動を指定できるようになっている。
図5は、階層定義テーブルを示したものである。これは、図18に示した入力画面により設定されたものである。図5の説明でも記載したように、これは、LDを選択するための、条件を示したものである。
図29は、データ階層管理プログラム69が実行する処理を示したものである。以下、理解しやすいように各ケースに分けて説明する。
(ケース1)管理者が階層定義のみをするケース。
データ階層管理プログラム69を起動すると、図18に示した画面が表示される。階層定義のみの場合、管理者は、階層名称を入力し、条件として指定したい属性を指定する。この属性は、図3に示した論理デバイス管理テーブル3001から選択される。具体的には、管理者が「RAIDレベル」を条件とするために指定すると、図3の論理デバイス管理テーブル3001を検索する。この結果、論理デバイス管理テーブル3001には、RAID0+1、RAID5、RAID1があるので、これがプルダウンで表示される。その他の属性も同じである。次に、管理者は、パス制限を入力する。管理者は、階層名称、属性、パス制限を選択又は入力した後に完了を指示する。これにより、データ階層管理プログラム69は、階層名称の入力がされたと判断し、入力された階層名称及び指定された属性、パス制限を階層定義テーブルに登録する。なお、ここでは階層定義のみなので、移動元LU、LD、グループは指定されていないことを前提としている。従って、移動元の指定なしとして、処理を終了する。
(ケース2)管理者が階層定義と、移動元を指定したケース。
管理者が、階層名称、属性、パス制限を入力又は選択し、更に移動元LU、LD、グループのいずれかを指定する。
管理者が、完了を指示すると、データ階層管理プログラム69は、階層名称の入力がされたと判断し、入力された階層名称及び指定された属性、パス制限を階層定義テーブルに登録する。
次に、移動元が指定されているので、移動元のLDを特定する。移動元LDの特定は次の通りである。
すなわち、移動元としてLUが指定された場合、管理サーバ16では、図4の論理ユニット管理テーブル3003からLDを特定する。
移動元としてLDが指定された場合、特に処理はない。
移動元としてグループが指定された場合、図6のボリュームグループ管理テーブル3007、図4の論理ユニット管理テーブル3003から、LDを特定する。
次に、論理デバイス管理テーブル3001から属性に一致するLDを検索する。これは、定義された属性と一致(RAIDレベル、ストレージサブシステム種類は一致するものであり、例えば応答速度などは条件を満たしていれば良い)し、かつ移動元LD以上の容量のLD(割当状況が「未」のLD)を論理デバイス管理テーブル3001から検索し、一つのLDを特定する。
なお、一つのLDで容量が満足できない場合には、複数のLDの組合せを試みるようにしても良い。この場合は、定義された属性と一致し、移動元LDと容量が近いLDを一つ特定し、特定されたLDで満足できない容量(未割当容量)を求める。次に、定義された属性と一致し、未割当容量に近いLDを一つ特定する。特定されたLDで更に未割当容量を求める。ここで、未割当容量が0以下になれば、一致する移動先LD有りと判断する。未割当容量が0より大きければ、再度、定義された属性と一致し、未割当容量に近いLDを一つ特定する。なお、未割当容量がある状態で、定義された属性と一致するLDがなければ、移動先LD無しと判断する。
このようにして、一致するLDがあれば、移動先LD有りと判断し、論理デバイス管理テーブル3001の当該LDの割当状況に済を登録する。
次に、管理サーバ16内の図示しない時計により、移動時間になったかを判断し、移動時間になったら、移動元LD及び移動先LDを指定したデータ移動コマンドをストレージサブシステム1に送信する。
データ移動の完了通知を受けると、図4の論理ユニット管理テーブル3003のLD IDを移動先LDのLD IDに変更し、図9のボリュームテーブル3013に、ホストID、LU ID、パス本数、Onlineパス本数、階層種別を設定し、図2のパス切替処理を実行する。
以上のケース2では、移動元LDと同一の属性を有するLDが移動先LDとして自動的に選択される。
(ケース3)管理者が既に定義された階層を選択して、データを移動するケース。
このケース3では、ケース2と異なり、移動元LDと異なる属性を有するLDが移動先LDとして選択され得る。管理者は、階層を選択する。その選択された階層に属するVOL属性値を有するLDが、移動先LDとして選択される。以下、詳細に述べる。
管理者は、移動元を指定し、次に階層名称を選択する。階層名称を選択することで、図5に示した階層定義テーブル3005に登録された、階層名称の一覧がプルダウンで表示される。管理者が、この階層名称の中から所望の階層名称を選択することで、対応する属性が画面上に表示される。
管理者が完了を指示すると、この場合は、階層名称を選択しているので、S213「階層名称入力有り?」でNOとなる。この場合、S217では、選択された階層名称の階層に属するVOL属性値を有するLDが検索され、見つかった場合に、S218でYESとなる。
図30は、管理サーバ16からデータ移動コマンドを受領したストレージサブシステム1の処理を示したものである。ストレージサブシステム1は、移動元LDと移動先LDとを特定し、この間でデータのコピーを行う。データコピーが完了すると、コピー先のLDとLUとを対応付ける。これが完了すると移動元LDのデータを消去し、管理サーバに対して、LUと移動先LDの情報とともにデータ移動が完了した旨を通知する。なお、LUとコピー先LDとの対応付けは、移動元LD(コピー元LD)と対応付けされていたLUを、移動先LD(コピー先LD)とを対応付けるものである。
以上が、階層定義の説明である。
この移動契機或いは負荷変更契機でパス本数が変更されるが、その処理については、詳細に説明済みなので、ここでは行わない。
以上、上述した実施形態によれば、LUの属性が変更された場合(すなわち、LUにマッピングされるLDの属性が変更された場合)、この属性に応じて、パスの数が変更される。これにより、例えば、LUに格納されているデータの重要性が高いものから低いものになった場合は、パスの数を減少させ、逆に、該データの重要性が低いものから高いものになった場合には、パスの数を増加させることが可能となる。
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、VOL評価値の算出は、LDの移動時に限らず、定期的に行われても良い。
また、例えば、VOL評価値を基にパス数を決定する方法に変えて、例えば、LDがどのレベルの階層に属するかに基づいてパス数が決定されても良い。例えば、LUにマッピングされているLDが或る階層からそれよりも低い階層に変わった場合、パスの本数が減らされ、或る階層からそれよりも高い階層に変わった場合、パスの本数が増やされても良い。また、増減する本数は、どれだけのレベルの階層分変わったたかに応じて決められても良い。
75…スイッチ 10…ホスト計算機 61…管理サーバ 21…チャネルアダプタ(CHA) 22…ディスクアダプタ(DKA) 23…SVP(Service Processor) 24…キャッシュメモリ 25…共有メモリ 20、2001…コントローラ部 30…ディスクユニット 31、132…内部VOL 40、600…ストレージサブシステム