本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態に係る計算機システムの構成図である。
計算機システムは、図示しないホスト計算機と、ストレージシステム10と、管理コンソール20とを有する。ストレージシステム10は、データのリード(読み出し)やライト(書込み)を行う1以上のホスト計算機とケーブルやネットワークを介して接続される。ホスト計算機と接続するためのネットワークとしては、SAN(Storage Area Network)、LAN(Local Area Network)、インターネット、専用回線、公衆回線等であってもよく、データ通信を行うことのできるネットワークであればよい。また、ネットワークやケーブルにおけるプロトコルとしては、ファイバチャネルプロトコルや、TCP/IPプロトコルであってもよく、ホスト計算機とストレージシステム10との間でデータのやりとりが可能なプロトコルであれば、任意のプロトコルであってよい。ホスト計算機から送信されるリード要求には、例えば、リード対象のデータが管理されているLUN(Logical Unit Number)及びLBA(Logical Block Address)が含まれる。また、ホスト計算機から送信されるライト要求には、例えば、ライト対象のデータを書き込むLUN及びLBAと、ライト対象のデータとが含まれる。
ストレージシステム10は、複数のホストI/F部(I/FPK:I/Fpackage)100と、複数の制御部(MPPK:Micro processor package)120と、複数の共有メモリ部(メモリPK)130と、複数のディスクI/F部140と、複数の記憶装置の一例としてのHDD(ハードディスクドライブ)170と、内部ネットワーク150とを有する。内部ネットワーク150は、I/FPK100と、MPPK120と、共有メモリ部130と、ディスクI/F部140とのそれぞれを接続する。内部ネットワーク150によると、MPPK120の各MP121は、I/FPK100、共有メモリ部130、ディスクI/F部140のいずれに対しても通信可能となっている。
I/FPK100は、複数のホストI/F101を有する。ホストI/F101は、ホスト計算機との間での入出力処理に関する情報のやりとりを仲介する。ホストI/F101は、図示しない内部のローカルメモリに、管理テーブル102(図2A)を格納する。
図2Aは、本発明の一実施形態に係る管理テーブルの構成の一例を示す図である。
管理テーブル102は、パス名フィールド102aと、MPPK番号(MPPK#)フィールド102bとを含むエントリを有する。本実施形態では、ホストI/F101に対して指定可能なパス名の数分のエントリを有する。
パス名フィールド102aには、LDEV(論理記憶装置)をホスト計算機から参照するためのパス名(識別情報)が格納される。ここで。LDEVとは、ホスト計算機から参照できる論理的な記憶装置であり、当該LDEVの記憶領域は、例えば、複数のHDD170の記憶領域の少なくとも一部が割り当てられる。パス名フィールド102aには、例えば、ホスト計算機との間の通信でSCSI規格を用いている場合には、LUN(Logical Unit Number)が格納される。ここで、同じLDEVに対して複数のパス名を定義することもできる。なお、ホスト計算機は、例えば、LDEVを参照するためのポートの指定と、LDEVのパス名とを指定して入出力要求を送信するが、ホストI/F101は、入出力要求に含まれるWWNやポート番号によって自己のポート宛であるか否かを識別することができる。
MPPK#フィールド102bには、同じエントリのパス名フィールド102aにおけるパス名が示すLDEVの入出力処理を担当するMPPK120を識別情報(例えば、MPPK番号)を格納する。なお、MPPK#フィールド102bが空の状態(例えば、−1が格納されている)の場合には、同じエントリのパス名が示すLDEVに対する入出力処理が不可能であることを意味している。同じLDEVに対して複数のパス名を定義している場合には、各エントリのMPPK#は、同じ数となる。ここで、LDEVの入出力処理を担当することのできるMPPKの権利をLDEVのオーナ権と呼ぶこととする。
図1に戻り、ホストI/F部101は、管理テーブル102によって、或るLDEVに対する入出力処理を、オーナ権を持つ1つのMPPK120にのみ引き渡すことができる。すなわち、ホストI/F部101は、ホスト計算機から自分のポート宛の入出力要求を受信し、管理テーブル102から入出力要求に含まれているパス名に対応するMPPK#を取得し、当該MPPK#のMPPK120に入出力要求を渡すことができる。本実施形態では、ホストI/F101からMPPK120に渡される入出力要求には、ホストI/F101の番号が付加される。また、本実施形態では、ホストI/F101は、入出力要求を、MPPK120のLM122に格納されているキューに追加する。
ストレージシステム10においては、複数のHDD170の記憶領域を利用して、1又は複数のLDEVを提供することができる。また、ストレージシステム10においては、複数のHDD170の内の2以上のHDD170でRAID(Redundant Array of Independent Disks)グループを構成して、RAIDグループの記憶領域をLDEVの記憶領域として提供することもできる。
ディスクI/F部140は、複数のディスクI/F141を有する。ディスクI/F141は、例えば、ケーブルを介してHDD170と接続されるとともに、内部ネットワーク150と接続されており、内部ネットワーク150側とHDD170との間におけるリード又はライト対象のデータの受け渡し処理を仲介する。
共有メモリ部130は、共有メモリ131を有する。共有メモリ131は、揮発メモリ、例えば、DRAM(Dynamic Random Access Memory)であってもよい。共有メモリ131は、HDD170にライトするデータを一時的に格納(キャッシュ)し、或いはHDD170からリードしたデータを一時的に格納(キャッシュ)する。また、共有メモリ131は、処理に必要な情報、例えば、LDEVの制御情報、LDEV番号対応テーブル、HDD構成情報等を格納する。なお、これら各情報については後述する。例えば、複数のLDEVの中の或るLDEV160は、当該LDEVの記憶領域に格納されるデータが共有メモリ131又は複数のHDD170の少なくとも一方に格納され、LDEV160にキャッシュされているデータの共有メモリ131におけるアドレスや、HDD170における格納位置については、共有メモリ131のLDEVの制御情報により特定することができる。本実施形態では、後述するように、LDEVの制御情報は、オーナ権を有するMPPK120のLM122にも格納される。
MPPK120は、複数のMP(Micro processor)121と、ローカルメモリ(LM)122と、これらを接続するバス123とを有する。
LM122は、ホストI/F121から送信される入出力要求のキュー(待ち行列)を格納する領域として利用される。
図3は、一実施形態に係るMPPKのLMにおけるキューを説明する図である。
MPPK120のLM122には、各ホストI/F101から受信した入出力要求がキュー125として格納される。本実施形態では、LM122には、パスが定義されているホストI/F101のそれぞれに対応するキュー125が格納される。
図1に戻り、LM122は、MP121により実行される処理のプログラムやデータを記憶する領域として、或いは、MP121による処理に使用されているデータを格納する作業領域として利用される。本実施形態では、LM122は、自己がオーナ権を有するLDEVの制御情報、LDEV番号対応テーブルの一部、HDD構成情報等を格納する。これら各情報については後述する。なお、LM122は共有メモリ131と比較して、MP121から高速にアクセスすることができる。これは、MP121から共有メモリ131へのアクセスでは、読み書きするデータの転送、及び共有メモリ131を共有する複数のMP121間での排他制御に、内部ネットワーク151を経由するための通信オーバヘッドがかかるためである。
各MP121は、LM122に格納されたプログラムを実行することにより、LDEVに対する入出力処理を実行する。例えば、各MP121は、入出力処理の実行が可能になった場合に、LM122に格納されたいずれかのキュー125から1つの入出力要求を取得(デキュー)し、当該入出力要求に従ってLDEVへの入出力処理を実行する。なお、他の処理については後述する。ここで、本実施形態では、変更判定部、設定部、変更受信部、負荷検出部、制御情報取得部、終了要求部、担当終了部、終了通知送信部、識別情報取得部、識別情報削除部、削除通知部、識別情報格納部、増設受付部、担当決定部、担当登録部、減設受付部、担当検出部、担当終了部、制御情報削除部、減設要求送信部等は、主にMP121がLM122に格納されたプログラムを実行することにより構成される。なお、MP121がプログラムを実行することにより各部を構成するようにしていたが、例えば、少なくとも一部の機能部をハードウエアにより実現してもよい。
図2Bは、LDEV番号対応テーブルの構造の一例を示す図である。
LDEV番号対応テーブル132には、I/F番号(I/F#)フィールド132aと、パス名フィールド132bと、LDEV番号(LDEV#)フィールド132cとを含むエントリが格納される。I/F#フィールド132aには、ホストI/F101の番号が格納される。パス名フィールド132bには、LDEVをホスト計算機から参照するためのパス名が格納される。LDEV#フィールド132cには、同じエントリのI/F番号のホストI/F101が受信した、同じエントリのパス名のLDEVに対応するLDEVの識別情報(LDEV番号)が格納される。
このLDEV番号対応テーブル132によると、MP121は、ホストI/F101から受け取った入出力要求中のパス名と、入出力要求とともに受け取ったホストI/F101の番号とに基づいて、LDEV番号を特定することができる。
本実施形態では、LDEV番号対応テーブル132は、共有メモリ131と、LM122に格納される。共有メモリ131に格納されるLDEV番号対応テーブル132は、ストレージシステム10の全てのLDEVに対応するエントリを有している。一方、LM122に格納されるLDEV番号対応テーブル132は、LM122の属するMPPK120がオーナ権を有しているLDEVに対応するエントリのみを有している。
本実施形態では、MP121は、自己の属するMPPK120のLM122のLDEV番号対応テーブル132を参照することにより、オーナ権を有しているLDEV番号を特定することができるので、共有メモリ131を参照する場合に比して迅速に入出力要求の対象となるLDEV番号を特定することができる。
図4は、本発明の一実施形態に係るLM及び共有メモリで管理される情報の構成の一例を示す図である。
共有メモリ131は、全てのLDEVに関する制御情報(全体制御情報)133を格納している。全体制御情報133は、それぞれのLDEVに関する情報(個別情報)134を複数有している。個別情報134は、1つのLDEVに関する制御情報(個別制御情報)134bと、当該LDEVのオーナ権を有しているMPPK120を特定するロックワード134aとを有する。ロックワード134aには、例えば、いずれか1つのMPPK120の識別子(例えば、MPPK番号)が格納される。本実施形態では、基本的には、ロックワード134aに自己の属するMPPK番号が格納されていないMPPK120のMP121は、対応するLDEVの個別制御情報134bのコピー、編集、削除等の処理や、ホストI/F101の管理テーブルにおける対応するLDEVのエントリに対する更新等の処理を行うことができないように管理されている。
LM122には、各LDEVに対するロック有無124aと、ポインタ124bとが格納されている。各LDEVのロック有無124aは、LDEV番号に基づいて、対応するLDEVについてのロック有無124aにMP121がアクセスできるように管理されている。ロック有無124aには、対応するLDEVに対するオーナ権の有無が格納される。ここで、オーナ権を有していることをロック有ともいう。ポインタ124bには、対応するLDEVのオーナ権を有している場合には、LM122に格納されている対応するLDEVの個別制御情報124cへのポインタが格納される。個別制御情報124cには、共有メモリ131に格納されている対応するLDEVの個別制御情報134bと同じ内容の情報が格納される。また、個別制御情報124cには、LDEV負荷情報124dが対応付けられている。LDEV負荷情報124dには、当該LDEVに対する単位時間当たりの入出力処理回数、単位時間当たりのデータ転送量等の負荷情報が格納される。また、LM122には、MPPK負荷情報124eが格納される。MPPK負荷情報124eには、LM122が属するMPPK120におけるMP121の稼働率等の負荷情報が格納される。
次に、LDEVの個別制御情報134bについて詳細に説明する。なお、個別制御情報124cも、個別制御情報134bと同様な構成となっている。
個別制御情報134bは、アドレス対応情報135と、RAID構成情報136とを含む。
図5Aは、本発明の一実施形態に係るアドレス対応情報の構成の一例を示す図である。
アドレス対応情報135は、LDEVアドレスフィールド135aと、キャッシュアドレスフィールド135bとを含むエントリを有する。LDEVアドレスフィールド135aには、LDEVの記憶領域における各位置(アドレス)が格納される。キャッシュアドレスフィールド135bには、同じエントリのLDEVのアドレスに対応するデータが共有メモリ131に格納されている場合、すなわち、キャッシュされている場合に、当該共有メモリ131における位置(アドレス)が格納される。
アドレス対応情報135によると、MP121は、入出力要求に含まれているLDEVのアドレスに対応するデータが共有メモリ131に格納されていれば、当該データが格納されている共有メモリ131のアドレスを取得することができる。
図5Bは、本発明の一実施形態に係るRAID構成情報の構成の一例を示す図である。
RAID構成情報136は、RAID番号(RAID#)136aと、サイズ136bと、オフセット136cとを有する。RAID番号136aは、対応するLDEVが格納されるRAIDグループをストレージシステム10内で識別するための識別子(例えば、番号)である。サイズ136bは、対応するLDEVの記憶領域のサイズ、すなわち記憶容量である。オフセット136cは、RAIDグループの先頭位置と、対応するLDEVが格納されているRAIDグループの位置とのオフセット値である。
RAID構成情報136によると、MP121は、LDEVの所定のアドレスが格納されているRAIDグループ及びRAIDグループにおける格納位置(アドレス)を特定することができる。すなわち、RAID番号により、RAIDグループを特定でき、オフセットにより、RAIDグループにおけるLDEVの先頭の位置を特定できる。このため、入出力要求に含まれているLDEVのアドレスに基づいて、RAIDグループにおける対応するアドレスを特定することができる。
共有メモリ131には、更に、HDD構成情報137が格納される。なお、HDD構成情報137をMPPK120のLM122にも格納するようにしてもよい。
図5Cは、本発明の1実施形態に係るHDD構成情報の構成の一例を示す図である。
HDD構成情報137は、RAIDレベルフィールド137aと、複数のHDD番号(HDD#)フィールド137bとを含むエントリを複数有する。HDD構成情報137は、MP121がRAID番号に基づいて対応するRAIDグループについてのエントリにアクセスできるようになっている。
RAIDレベルフィールド137aには、対応するRAIDグループにおけるRAIDレベルが格納される。例えば、RAIDレベルフィールド137aには、RAID1又はRAID5が格納されている。HDD番号フィールド137bには、対応するRAIDグループを構成するHDD170の識別子(例えば、HDD番号)が格納される。
このHDD構成情報137によると、MPPK120のMP121は、RAIDグループ及びRAIDグループにおけるアドレスから、実際に入出力を行うHDD170及びHDD170内の位置(アドレス)を把握できる。すなわち、入出力処理の対象のLDEVが管理されているRAIDグループの番号から、RAIDグループのRAIDレベルが把握できる。そして、入出力対象となるLDEVの位置に対応するRAIDグループにおける位置と、把握したRAIDレベル及びRAIDグループを構成するHDD170の番号から、実際に入出力を行うHDD170及びHDD170内のアドレスが把握できる。
次に、管理コンソール20について説明する。
図6は、本発明の一実施形態に係る管理コンソールの構成図である。
管理コンソール20においては、通信I/F21と、入力I/F22と、表示I/F23と、メモリ24と、HDD25と、CPU26(Central Processing Unit)とがバス27を介して接続されている。
メモリ24は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)を有し、ブートプログラムや、各種処理を実行するプログラムを記憶する。また、メモリ24は、プログラムやデータを記憶する領域として、或いは、CPU26による処理に使用されるデータを格納する作業領域として利用される。HDD25は、電源が入っていない場合でも記憶しておく必要があるプログラムや、各種情報を記憶する。
入力I/F22には、例えば、マウスやキーボード等の管理コンソール20のユーザ(管理者)による操作を受け付ける入力部28が接続されている。入力I/F22は、入力部28からの信号をデータとして、CPU26に出力する。表示I/F23は、例えば、液晶ディスプレイ、CRT等の表示部29が接続されている。表示I/F23は、例えば、VRAM(Video Random Access Memory)を有し、CPU26の制御により、表示させる画像に応じた画像データを生成し、表示部29に各種画面を表示出力させる。通信I/F21は、ストレージシステム10の内部ネットワーク150に接続されており、CPU26と、内部ネットワーク150に接続されたストレージシステム10の各部(例えば、MPPK120のMP121)とのデータ交換の仲介を行う。
CPU26は、各部21〜25の動作を制御する。また、CPU26は、メモリ24又は/及びHDD25に格納されているプログラムをメモリ24のRAMに読み出して実行する。ここで、本実施形態では、増設指示受付部、制御部決定部、増設指示送信部、収集部、変更指定受付部、変更指示送信部等は、主にCPU26がメモリ24又は/及びHDD25に格納されたプログラムを実行することにより構成される。
CPU26は、各種画像を表示I/F23を介して表示部29に表示させる。例えば、CPU26は、共有メモリ131に格納されたLDEVの識別情報とLDEVの属するRAIDグループ番号との情報を取得し、当該情報に基づいて、表示I/F23を介して表示部29の表示画面29aにLDEV管理画面を表示させる。
図7は、本発明の一実施形態に係るLDEV管理画面を示す図である。
LDEV管理画面51には、RAIDグループ表示領域52と、LDEV表示領域53とが表示される。また、LDEV管理画面51には、ユーザによる入力部28に対する操作により画面内を移動可能なカーソル54が表示される。
RAIDグループ表示領域52には、ストレージシステム10が有する各RAIDグループを示す画像(RAIDグループ画像)52aが表示される。LDEV表示領域53には、指定されたRAIDグループに割り当てられているLDEVを示す画像(LDEV画像)53aが表示される。
RAIDグループ表示領域52において、ユーザが入力部28によりカーソル54をRAIDグループ画像52a上に移動させて、入力部28のマウスの左ボタンを連続して2度押下(ダブルクリック)すると、CPU26によって、当該カーソル54が位置するRAIDグループ画像52aに対応するRAIDグループに割り当てられているLDEVのLDEV画像53aがLDEV表示領域53に表示される。
LDEV表示領域53内に、カーソル54を位置させた状態で、ユーザが入力部28のマウスの右ボタンをクリック(右クリック)すると、CPU26により、LDEV処理ウインドウ55が表示させる。LDEV処理ウインドウ55には、例えば、当該RAIDグループに新たなLDEVを増設する処理を開始するためのLDEV増設ボタン55a、LDEV表示領域53において選択されているLDEV画像53aに対応するLDEVを削除する処理を開始するためのLDEV減設ボタン55b、LDEV表示領域53において選択されているLDEV画像53aに対応するLDEVのパスを設定する処理を開始するためのパス設定ボタン55c等が表示される。LDEV増設ボタン55aに対してカーソル54による指示があった場合には、LDEV増設に必要な情報を入力する画面が表示され、LDEV増設処理を行うことができる。なお、LDEV増設処理においては、ユーザは、例えば、増設するLDEVの番号、サイズを入力すればよい。このため、管理者は、LDEVの入出力処理を担当させるMPPK120を意識して、設定を行う必要がない。また、LDEV減設ボタン55bに対してカーソル54による指示があった場合には、CPU26により選択されているLDEVを減設する処理が開始される。また、パス設定ボタン55cに対してカーソル54による指示があった場合には、パス設定に必要な情報を入力する画面が表示され、パス設定処理を行うことができる。なお、パス設定処理においては、ユーザは、例えば、パスを設定するホストI/F101の番号と、パス名とを入力すればよい。このため、管理者がLDEVの入出力処理を担当しているMPPK120を意識して、指定する必要はない。
また、CPU26は、各MPPK120からMP121の負荷情報と、各MPPK120がオーナ権を持つLDEVの負荷情報を取得し、表示I/F23を介して表示部29の表示画面29aにチューニング画面を表示させる。
図8は、本発明の一実施形態に係るチューニング画面を示す図である。
チューニング画面60には、各MPPK120についての状態を示す個別状態表示領域61が複数表示される。また、チューニング画面60には、ユーザによる入力部28に対する操作により画面内を移動可能なカーソル65が表示される。なお、ストレージシステム10の全てのMPPK120に対応する個別状態表示領域61を一画面として用意して表示させるようにしてもよく、複数の画面として用意し、表示させる画面を切り替えるようにしてもよい。
各個別状態表示領域61には、対応するMPPK120におけるMP121の負荷情報を表示するMP負荷表示領域62と、対応するMPPK120がオーナ権を有するLDEVの負荷情報を表示するLDEV負荷表示領域63とが表示される。
本実施形態では、MP負荷表示領域62には、縦軸がMP121の稼働率を示すグラフが表示される。また、本実施形態では、LDEV負荷表示領域63には、横軸がLDEVの負荷を示すグラフ63aが、負荷の高いLDEVから順に上から配置されて表示される。
チューニング画面60によると、管理コンソール20のユーザ(管理者)が、各MPPK120のMP121の負荷について視覚的に容易に把握することができるとともに、各MPPK120がオーナ権を有しているLDEVの負荷についても視覚的に容易に把握することができる。
チューニング画面60では、入出力処理を担当するMPPK120を変更したいLDEVがあれば容易に変更させる指示を行うことができる。すなわち、チューニング画面60において、ユーザがカーソル65を担当変更させたいLDEVを示すグラフ63aに位置させて、入力部28のマウスの右ボタンの押下を維持しつつ、入力部28のマウスを移動操作させてグラフ63aを新たに担当させるMPPK120の個別状態表示領域61に移動させた後に、マウスの右ボタンの押下を終了させる、すなわち、LDEVのグラフ63aをドラッグアンドドロップすると、CPU26は、当該グラフ63aに対応するLDEVを、当該個別状態表示領域61のMPPK120を新たな担当とする指示として受け付ける。例えば、第1MPPKが担当していたLDEVを、第2MPPKに担当させる場合には、図8の破線に示すように、第1MPPKに対応する個別状態表示領域61(図中左上)のLDEVを示すグラフ63aを第2MPPKに対応する個別状態表示領域61(図中右上)にドラッグアンドドロップすることにより指示を行えばよい。
次に、一実施形態に係るストレージシステムにおける各処理について説明する。まず、ストレージシステム10において、新たなLDEVを増設する際のLDEV増設処理について説明する。このLDEV増設処理は、例えば、ストレージシステム10に全くLDEVを設定していない初期状態の場合や、既にLDEVを設定している際に、更にLDEVを追加する場合に実行される。また、複数台のストレージシステムを、ストレージシステム10に統合するコンソリ(consolidation)時においても、同様な処理が実行される。
図9は、本発明の一実施形態に係るLDEV増設処理のフローチャートである。
LDEV増設処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、LDEVの増設要求を受け付ける。本実施形態では、CPU26は、ユーザによる入力部28に対する操作により、増設するLDEVの番号、LDEVのサイズ、RAIDグループ番号を受け付ける。なお、コンソリ時においては、ユーザは、統合前のストレージシステムにおける各LDEVの設定情報に従ってこれらを指定する必要がある。
次いで、CPU26は、複数のMPPK120の中から当該LDEVの入出力処理の担当とするMPPK120を選択する(ステップS11)。ここで、CPU26は、例えば、ラウンドロビンによってMPPK120を選択してもよく、ランダムに選択するようにしてもよい。このように、LDEVの増設時においては、CPU26がLDEVの担当のMPPK120を選択するので、ユーザが設定する必要がない。
次いで、CPU26は、受け付けたLDEV番号、LDEVのサイズ、及びRAIDグループ番号を含むLDEV増設指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS12)。なお、以下の説明においては、情報の仲介を行う通信I/F21や内部ネットワーク150については、省略する場合もある。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、LDEV増設指示を受信する。次いで、MP121は、LM122及び共有メモリ131における、LDEV増設指示中のLDEV番号に対応するLDEVのRAID構成情報136に、受信したRAIDグループ番号及びサイズを格納する。また、該当するRAIDグループにおいて割り当て可能な位置を特定し、当該位置のオフセットをRAID構成情報136に格納する。更に、MP121は、当該LDEVの個別制御情報にロックをかける。すなわち、MP121は、共有メモリ131において、対応するLDEVのロックワード134aに自身の属するMPPK120の識別子を格納する。また、MP121は、LM122における対応するLDEVのロック有無フィールド124aにロック有を設定し、ポインタ124bに個別制御情報124cへのポインタを設定する(ステップS13)。
その後、MP121は、管理コンソール120に、LDEV増設が完了したことを示すLDEV増設完了通知を送信する(ステップS14)。
管理コンソール20において、CPU26がLDEV増設完了通知を受信すると、CPU26は、LDEVの増設が完了したことを示す結果を表示部29により表示させる(ステップS15)。
なお、複数のLDEVを増設する場合には、上記同様な処理を繰り返して実行すればよい。また、コンソリ時には、ストレージシステム10に、統合前のストレージシステムのLDEVと同様なLDEVを上記処理により増設した後に、統合前のストレージシステムのLDEVに格納されていたデータをストレージシステム10に増設したLDEVに格納する処理を行うこととなる。
次に、増設したLDEVに対してホスト計算機からアクセスできるようにするためのパス設定処理について説明する。
図10は、本発明の一実施形態に係るパス設定処理のフローチャートである。
パス設定処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、パス設定要求を受け付ける。本実施形態では、CPU26は、ユーザによる入力部28に対する操作により、ホスト計算機からの入力を受け付けるホストI/F101の番号(I/F番号)と、LDEVを示すパス名と、パスを設定するLDEVの番号(LDEV番号)とを受け付ける。
次いで、CPU26は、複数のMPPK120の中からパス設定指示の送信先とするMPPK120を選択する(ステップS21)。ここで、CPU26は、例えば、ラウンドロビンによってMPPK120を選択してもよく、ランダムに選択するようにしてもよい。このように、パス設定時においては、CPU26が指示送信先のMPPK120を選択するので、ユーザが選択する必要がない。このため、表示部28により送信先のMPPK番号を表示させる必要がなく、また、表示させたとしても送信先のMPPK120をユーザに選択させる必要がない。
次いで、CPU26は、受け付けたI/F番号、パス名、及びLDEV番号を含むパス設定指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS22)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、パス設定指示を受信する。次いで、MP121は、パス設定指示に含まれているLDEV番号のLDEVのオーナ権を有するMPPK120のMPPK番号を共有メモリ131から取得する(ステップS23)。オーナ権を有するMPPK120のMPPK番号は、共有メモリ131中の対応するLDEVのロックワード134aから取得することができる。
次いで、MP121は、自己の属するMPPK120がパス設定の対象のLDEVのオーナ権を有しているか否かを、取得したMPPK番号が自己の属するMPPK120のMPPK番号であるか否かによって判定する(ステップS24)。
この結果、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致し、パス設定対象のLDEVのオーナ権を有している場合(ステップS24のYes)には、MP121は、LM122及び共有メモリ131におけるLDEV番号対応テーブル132に、パス設定指示中のI/F番号、パス名、及びLDEV番号を含むエントリを登録する。また、MP121は、RAID構成情報136に、受信したRAIDグループ番号及びサイズを格納する。更に、MP121は、パス設定指示中のI/F番号が示すホストI/F101の管理テーブル102に、パス設定指示中のパス名と、自身が属するMPPK120MPPK番号とを含むエントリを設定し(ステップS25)、その後、MP121は、パス設定完了通知を管理コンソール20に通知する(ステップS26)。
一方、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致せず、パス設定対象のLDEVのオーナ権を有していない場合(ステップS24のNo)には、当該LDEVに関する情報の更新等をすることはできない。このため、MP121は、取得したオーナ権を有するMPPK120のMPPK番号をパス設定失敗通知に含めて管理コンソール20に送信する(ステップS27)。
管理コンソール20のCPU26は、パス設定が完了したか否か、すなわち、パス設定完了通知を受信したか否かを判定し(ステップS28)、パス設定完了通知を受け取っている場合には、パス設定が完了したことを示す結果を表示部29に表示させる(ステップS33)。
一方、パス設定が終了していない場合、すなわち、パス設定失敗通知を受け取った場合には、CPU26は、パス設定失敗通知に含まれているMPPK番号のMPPK120を送信先として選択し(ステップS29)、当該MPPK120に対して、I/F番号、パス名、及びLDEV番号を含むパス設定指示を送信する(ステップS30)。
パス設定指示を受け取ったMPPK120のMP121では、ステップS23〜ステップS25の処理を実行する(ステップS31)。ここで、当該MPPK120はオーナ権を有するので、ステップS31中において、ステップS25に対応する処理が実行される。
次いで、MP121は、パス設定完了通知を管理コンソール20に通知する(ステップS32)。その後、パス設定完了通知を受け取った管理コンソール20のCPU26は、パス設定が完了したことを示す結果を表示部29に表示させる(ステップS33)。
上記したパス設定処理によると、最初にパス設定指示を送信する先として選択したMPPK120が対応するLDEVのオーナ権をもっていない場合であっても、その後に、対応するLDEVのオーナ権を有するMPPK120にパス設定指示を送信して、パス設定を行わせることができる。このため、管理コンソール20では、LDEVのオーナ権を有しているMPPKを逐次把握しておく必要がない。このため、ストレージシステム10が管理コンソール20の関与なしで、独自にLDEVのオーナ権を移している場合であっても、支障なくパス設定を行うことができる。
次に、増設したLDEVを減設するためのLDEV減設処理について説明する。
図11は、本発明の一実施形態に係るLDEV減設処理のフローチャートである。
LDEV減設処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、LDEVの減設要求を受け付ける。本実施形態では、CPU26は、例えば、LDEV管理画面51を表示させている際におけるユーザによる入力部28に対する操作により、減設するLDEVの指定を受け付ける。次いで、CPU26は、複数のMPPK120の中から当該LDEVの減設を実行させるMPPK120を選択する(ステップS41)。ここで、CPU26は、例えば、ラウンドロビンによってMPPK120を選択してもよく、ランダムに選択するようにしてもよい。このように、LDEVの減設時においては、CPU26が減設させるMPPK120を選択するので、ユーザが指定する必要がない。
次いで、CPU26は、受け付けたLDEVに対応するLDEV番号を含むLDEV減設指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS42)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、LDEV減設指示を受信する。次いで、MP121は、後述するオーナ権確保処理(ステップS43)を実行することにより、減設対象のLDEVのオーナ権を確保する。
次いで、MP121は、LM122に格納されたLDEV番号対応テーブル132から減設対象のLDEVのLDEV番号に対応するI/F番号とパス名とを取得し、当該I/F番号に対応するホストI/F101の管理テーブル102から、当該パス名を含むエントリを削除する。更に、MP121は、LM122から減設対象のLDEVについての個別制御情報124c及びLDEV負荷情報124dを削除するとともに、当該LDEVに対応するロック有無124aをロック無しに設定し、ポインタ124bを空にする。また、MP121は、共有メモリ131から対応するLDEVの個別制御情報134bを削除し、共有メモリ131におけるLDEVの制御情報へのロックを外す、すなわち、対応するLDEVのロックワード134aに空の値(例えば、−1)を格納する(ステップS44)。
その後、MP121は、LDEV減設完了通知を管理コンソール20に通知する(ステップS45)。LDEV減設完了通知を受け取った管理コンソール20のCPU26は、LDEVの減設が完了したことを示す結果を表示部29に表示させる(ステップS46)。
上記したLDEV減設処理によると、最初にLDEV減設指示を送信する先として選択したMPPK120が対応するLDEVのオーナ権をもっていない場合であっても、LDEVの減設を行わせることができる。このため、管理コンソール20では、LDEVのオーナ権を有しているMPPKを逐次把握しておく必要がない。
次に、オーナ権確保処理を説明する。
図12は、本発明の一実施形態に係るオーナ権確保処理のフローチャートである。
このオーナ権確保処理を行うにあたっては、MP121は、オーナ権を確保する対象のLDEVのLDEV番号を既に取得している。オーナ権確保処理において、オーナ権を確保する側のMPPK120のMP121は、共有メモリ131のオーナ権を確保する対象のLDEVのロックを参照する。すなわち、MP121は、オーナ権を確保する対象のLDEVのオーナ権を有するMPPK120のMPPK番号を共有メモリ131から取得する(ステップS51)。
次いで、MP121は、自己の属するMPPK120がオーナ権確保対象のLDEVのオーナ権を有しているか否かを、取得したMPPK番号が自己の属するMPPK120のMPPK番号であるか否かによって判定する(ステップS52)。
この結果、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致する場合(ステップS52のYes)には、当該LDEVのオーナ権を有していることを意味するので、オーナ権確保処理を終了する。
一方、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致しない場合(ステップS52のNo)には、当該LDEVのオーナ権を有していないことを意味するので、MP121は、オーナ権確保対象のLDEVのLDEV番号を含むオーナ権解放要求を、通信I/F21、内部ネットワーク150を介して、取得したMPPK番号が示すMPPK120、すなわち、対象のLDEVのオーナ権を有するMPPK120に送信する(ステップS53)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、オーナ権解放要求を受信する。オーナ権解放要求を受信すると、MP121は、LM122に格納されたLDEV番号対応テーブル132からオーナ権解放要求に含まれるLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102から、当該パス名を含むエントリにおけるMPPK番号を空(例えば、−1)にする。これによって、ホストI/F101から対象のLDEVに対する新たな入出力要求が、当該MPPK120に渡されることを防止することができる。
更に、MP121は、当該LDEVに対する入出力処理が完了するまで待つ。ここで、LDEVに対する入出力処理が完了したことは、例えば、当該MPPK120のLM122に格納されたキューに、対象のLDEVの入出力要求がないことにより把握することができる。これによって、既に受け付けたLDEVへの入出力処理が実行されないといった事態を適切に防止できる。
その後、MP121は、共有メモリ131から対応するLDEVの個別制御情報134bを削除し、共有メモリ131におけるLDEVの制御情報へのロックを外す、すなわち、対応するLDEVのロックワード134aに空の値(例えば、−1)を格納する。また、MP121は、LM122から対象のLDEVについての個別制御情報124c及びLDEV負荷情報124dを削除するとともに、当該LDEVに対応するロック有無124aをロック無しに設定し、ポインタ124bを空にする(ステップS54)。
次いで、MP121は、オーナ権解放を行ったことを示す、オーナ権解放応答を要求元のMPPK121に送信する(ステップS55)。
オーナ権を確保する側のMPPK120のMP121は、所定時間内にオーナ権解放応答を受信したか否かを判定する(ステップS56)。この結果、所定時間内にオーナ権解放応答を受信していない場合(ステップS56のNo)には、オーナ権解放要求を送信したMPPK120に障害が発生していると考えられるので、当該MPPK120を閉塞する処理を実行する。ここで、MPPK120を閉塞する処理としては、例えば、MPPK120をリセットする処理や、MPPK120への電力の供給を停止する処理等がある。次いで、MP121は、共有メモリ131に格納されたLDEV番号対応テーブル132から対象のLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102において、当該パス名を含むエントリのMPPK番号を空の値(例えば、−1)にする。また、MP121は、共有メモリ131におけるLDEVの制御情報へのロックを外す、すなわち、対応するLDEVのロックワード134aに空の値(例えば、−1)を格納する(ステップS57)。
そして、ステップS57を行った場合、又は、所定時間内にオーナ権解放応答を受信した場合(ステップS56のYes)には、MP121は、共有メモリ131における対象のLDEVの制御情報へロックをかける、すなわち、対応するLDEVのロックワード134aに自身のMPPK番号を格納する。次いで、MP121は、共有メモリ131から対象のLDEVの個別制御情報134を取得し、LM122にコピーする。これにより、LM122には、対応するLDEVの個別制御情報124cが存在することとなる。また、MP121は、共有メモリ131のLDEV番号対応テーブル132から、対象のLDEVのLDEV番号を有するエントリを取得して、LM122に格納する。また、MP121は、LM122の対象のLDEVに対応するロック有無124aをロック有に設定し、ポインタ124bにLM122の個別制御情報124cの先頭へのポインタを設定する。更に、MP121は、LM122のLDEV番号管理テーブル132から対象のLDEVのLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102において、当該パス名を含むエントリのMPPK番号に自身のMPPK番号を格納する(ステップS58)。これによって、MPPK120は、対象のLDEVのオーナ権を確保することができ、対象のLDEVに対する入出力処理を実行できることとなる。
次に、チューニング画面を表示させるチューニング画面表示処理を説明する。
図13は、本発明の一実施形態に係るチューニング画面表示処理のフローチャートである。
チューニング画面表示処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、負荷状況表示指示を受け付ける(ステップS61)。負荷状況表示指示を受け付けると、ストレージシステム10のすべてのMPPK120に対して以下の処理ステップ(ステップS62〜S65)を実行する。
まず、CPU26は、ストレージシステム10の複数のMPPK120の中からラウンドロビンに従って1つのMPPK120を選択する(ステップS62)。
次いで、CPU26は、選択したMPPK120に対して負荷情報要求を送信する(ステップS63)。
負荷情報要求を受信したMPPK120のMP121は、LM122のMPPK負荷情報124eからMPPKの負荷情報を取り出して、管理コンソール20に送信し(ステップS64)、LM122の各LDEVのLDEV負荷情報124dから各LDEVの負荷情報を取り出して、当該各負荷情報を各LDEV番号とともに、管理コンソール20に送信する(ステップS65)。一方、管理コンソール20では、MPPK120から送信されるMPPKの負荷情報と、LDEVの負荷情報及びLDEV番号とを受信する。
そして、管理コンソール20のCPU26は、全てのMPPK120からMPPKの負荷情報と、LDEVの負荷情報を受信した場合には、受信した各情報に基づいて、図8に示すようなチューニング画面60を表示部29に表示させる(ステップS66)。
次に、LDEVを担当するMPPK120を他のMPPK120に移行させるチューニング処理について説明する。
図14は、本発明の一実施形態に係るチューニング処理のフローチャートである。
チューニング処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、担当を変更するLDEVの指定と、新たな担当となるMPPKの指定とを受け付ける(ステップS71)。本実施形態では、CPU26は、例えば、チューニング画面60を表示させている際におけるユーザによる入力部28に対する操作により、担当を変更するLDEVの指定と、新たな担当となるMPPK120の指定とを受け付ける。
次いで、CPU26は、ユーザによって指定されたMPPK120を送信先のMPPK120として選択する(ステップS72)。次いで、CPU26は、指定されたLDEVに対応するLDEV番号を含むオーナ権移行指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS73)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、オーナ権移行指示を受信する。次いで、MP121は、オーナ権確保処理(ステップS43)を実行することにより、移行対象のLDEVのオーナ権を確保する。これによって、当該MPPK120のMP121が当該LDEVに対する入出力処理を実行することができるようになる。
その後、MP121は、オーナ権移行完了通知を管理コンソール20に通知する(ステップS74)。オーナ権移行完了通知を受け取った管理コンソール20のCPU26は、該当するLDEVのオーナ権の移行が完了したことを示す結果を表示部29に表示させる(ステップS75)。
以上のチューニング処理によると、既に使用されているLDEVのオーナ権を他のMPPK120に容易に移行させることができる。このため、ストレージシステム10におけるMPPK120の負荷を容易且つ適切に分散することができる。
ストレージシステム10においては、ホストI/F部100、MPPK120、共有メモリ部130、ディスクI/F部140、HDD170のいずれかによって障害等が発生した場合には、障害が発生した部位を取り外し、新しい部位又は修理した部位を取り付けるというリプレース(交換)が行われる。このようなリプレースが発生する場合におけるストレージシステム10の処理について以下説明する。
まず、MPPK120をリプレースする際におけるMPPKリプレース処理について説明する。
図15は、本発明の一実施形態に係るMPPKリプレース処理のフローチャートである。
MPPKリプレース処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、リプレースするMPPK番号の入力を受け付ける。次いで、CPU26は、MPPK番号に対応するMPPK120を送信先のMPPK120として選択する(ステップS81)。
次いで、CPU26は、MPPK閉塞指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS82)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、MPPK閉塞指示を受信する。次いで、MP121は、LM122に格納されたロック有無124aを参照することにより、自身の属するMPPK120がオーナ権を有するLDEVのLDEV番号を特定する。MP121は、各LDEV番号のLDEVのそれぞれを処理対象として以下の処理ステップ(ステップS83)を実行する。
MP121は、LM122から処理対象のLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102から、当該パス名を含むエントリにおけるMPPK番号を空(例えば、−1)にする。これによって、ホストI/F101から対象のLDEVに対する新たな入出力要求が、当該MPPK120に渡されることを防止することができる。
更に、MP121は、当該LDEVに対する入出力処理が完了するまで待つ。ここで、LDEVに対する入出力処理が完了したことは、例えば、当該MPPK120のLM122に格納されたキューに、対象のLDEVの入出力要求がないことにより把握することができる。これによって、既に受け付けられたLDEVへの入出力処理が実行されない事態を適切に防止できる。
その後、MP121は、共有メモリ131における当該LDEVの制御情報へのロックを外す、すなわち、対応するLDEVのロックワード134aに空の値(例えば、−1)を格納する(ステップS83)。
そして、オーナ権を有する全てのLDEVに対する処理を終了した場合には、MP121は、MPPKの閉塞が完了し、入れ替えが可能であることを示すMPPK閉塞完了通知に、ロックを外したLDEV(オーナ権を有していたLDEV)のLDEV番号のリスト(アンロックLDEVリスト)を含めて管理コンソール20に送信する(ステップS84)。
MPPK閉塞完了通知を受け取った管理コンソール20のCPU26は、MPPK120の入れ替えを要求する内容を表示部29に表示させ、MPPK120の入れ替えが完了したか否かを確認する処理を行う(ステップS85)。MPPK120が入れ替えられたか否かは、CPU26がMPPK120に対する通信を行うことにより把握することができる。
管理コンソール20のCPU26が、MPPK120の入れ替えを確認できた場合には、CPU26は、入れ替えられたMPPK120に対して、アンロックLDEVリストに含まれたLDEV番号を含むMPPK再開指示を送信する(ステップS86)。
MPPK再開指示を受け取ったMPPK120のMP121は、MPPK再開指示に含まれるLDEV番号のLDEVのすべてを処理対象として以下の処理ステップ(ステップS87)を実行する。すなわち、MP121は共有メモリ131における、処理対象のLDEVに対する制御情報へロックをかける、すなわち、対象のLDEVのロックワード134aに自身のMPPK番号を格納する。次いで、MP121は、共有メモリ131から対象のLDEVの個別制御情報134を取得し、LM122にコピーする。また、MP121は、共有メモリ131のLDEV番号対応テーブル132から、対象のLDEVのLDEV番号を有するエントリを取得して、LM122に格納する。また、MP121は、LM122の対象のLDEVに対応するロック有無124aをロック有に設定し、ポインタ124bにLM122の個別制御情報124cの先頭へのポインタを設定する。更に、MP121は、LM122のLDEV番号管理テーブル132から対象のLDEVのLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102において、当該パス名を含むエントリのMPPK番号に自身のMPPK番号を格納する(ステップS87)。
そして、処理対象の全てのLDEVに対する処理を終了した場合には、MP121は、MPPKが再開したことを示すMPPK再開完了通知を管理コンソール20に送信する(ステップS88)。
MPPK再開完了通知を受け取った管理コンソール20のCPU26は、MPPKの再開が完了したことを示す結果を表示部29に表示させる(ステップS89)
このMPPKリプレース処理によると、入れ替え後のMPPK120に対して、入れ替え前のMPPK120の有していたLDEVのオーナ権を所有させることができ、入れ替え前のMPPK120と同様に、オーナ権を有するLDEVに対する入出力処理を実行させることができる。
次に、ホストI/F部をリプレースする際におけるI/FPKリプレース処理について説明する。
図16は、本発明の一実施形態に係るI/FPKリプレース処理のフローチャートである。
I/FPKリプレース処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、リプレースするホストI/F部100のI/FPK番号の入力を受け付ける。次いで、CPU26は、複数のMPPK120の中から任意のMPPK120を選択する(ステップS91)。
次いで、CPU26は、受け付けたI/FPK番号を含むLDEVリスト送付指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS92)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、LDEVリスト送付指示を受信する。次いで、MP121は、共有メモリ131に格納されたLDEV番号対応テーブル132から、LDEVリスト送付指示に含まれているI/FPK番号に対応するホストI/F部100に属するホストI/F101のI/F番号が格納されているエントリを抽出し、抽出したエントリを含むLDEVリストを作成する(ステップS93)。ここで、I/FPK番号に対応するホストI/F部100に属するホストI/F101のI/F番号は、例えば、I/F番号中にI/FPK番号を含めておくように管理している場合には、I/FPK番号が含まれていることにより特定することができる。また、I/FPK番号と、所属するホストI/FのI/F番号とを対応付けたテーブルを共有メモリ130に予め用意しておき、当該テーブルを使ってI/FPK番号からI/F番号を特定するようにしてもよい。
次いで、MP121は、作成したLDEVリストを管理コンソール20に送信する(ステップS94)。
LDEVリストを受け取った管理コンソール20のCPU26は、LDEVリストの全てのLDEVを対象として、後述するパス定義削除処理(ステップS95)の実行を開始する。これにより、リプレース対象のホストI/F部100のホストI/F101を介した全てのLDEVへのパスが削除される。
パスの削除が終了した後、管理コンソール20のCPU26は、ホストI/F部100の入れ替えを要求する内容を表示部29に表示させ、ホストI/F部100の入れ替えが完了したか否かを確認する処理を行う(ステップS96)。ホストI/F部100が入れ替えられたか否かは、CPU26がホストI/F部100に対する通信を行うことにより把握することができる。
管理コンソール20のCPU26が、ホストI/F部100の入れ替えを確認できた場合には、CPU26は、LDEVリストの全てのLDEVを対象として、図10に示すパス設定処理(ステップS97)の実行を開始する。これにより、交換前のホストI/F部100と同様なパスが設定され、入れ替えられたホストI/F部100を利用して交換前と同様な状態が再現できる。パスの設定が終了した後、管理コンソール20のCPU26は、ホストI/F部100の再開が完了したことを示す結果を表示部29に表示させる(ステップS98)。
次に、パス定義削除処理(ステップS95)について説明する。
図17は、本発明の一実施形態に係るパス定義削除処理のフローチャートである。
パス定義削除処理において、管理コンソール20のCPU26は、パス定義削除要求を受け付ける。本実施形態では、CPU26は、MPPK120から送信されるLDEVリストのエントリ(I/F番号、パス名、及びLDEV番号)をパス定義削除要求として受け付けている。次いで、CPU26は、複数のMPPK120の中からパス定義削除指示の送信先とするMPPK120を選択する(ステップS101)。ここで、CPU26は、例えば、ラウンドロビンによってMPPK120を選択してもよく、ランダムに選択するようにしてもよい。
次いで、CPU26は、I/F番号、パス名、及びLDEV番号を含むパス定義削除指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS102)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、パス定義削除指示を受信する。次いで、MP121は、パス定義削除指示に含まれているLDEV番号のLDEVのオーナ権を有するMPPK120のMPPK番号を共有メモリ131から取得する(ステップS103)。オーナ権を有するMPPK120のMPPK番号は、共有メモリ131中の対応するLDEVのロックワード134aから取得することができる。
次いで、MP121は、自己の属するMPPK120がパス定義削除の対象のLDEVのオーナ権を有しているか否かを、取得したMPPK番号が自己の属するMPPK120のMPPK番号であるか否かによって判定する(ステップS104)。
この結果、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致し、パス定義削除対象のLDEVのオーナ権を有している場合(ステップS104のYes)には、MP121は、LM122に格納されたLDEV番号対応テーブル132からパス定義削除指示に含まれるLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102から、当該パス名を含むエントリを削除する。更に、MP121は、当該LDEVに対する入出力処理が完了するまで待つ。ここで、LDEVに対する入出力処理が完了したことは、例えば、当該MPPK120のLM122に格納されたキューに、対象のLDEVの入出力要求がないことにより把握することができる。これによって、既に受け付けられたLDEVへの入出力処理が実行されない事態を適切に防止できる。その後、MP121は、LM122及び共有メモリ131のLDEV番号対応テーブル132から当該LDEV番号に対応するエントリを削除する(ステップS105)。次いで、MP121は、パス定義削除完了通知を管理コンソール20に通知する(ステップS106)。
一方、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致せず、パス定義削除対象のLDEVのオーナ権を有していない場合(ステップS104のNo)には、当該LDEVに関する情報の更新等をすることはできないので、パス定義削除失敗通知に、取得したオーナ権を有するMPPK120のMPPK番号を含めて管理コンソール20に送信する(ステップS107)。
管理コンソール20のCPU26は、パス定義削除が完了したか否か、すなわち、パス定義削除完了通知を受信したか否かを判定し(ステップS108)、パス定義削除完了通知を受け取っている場合には、パス定義削除が完了したことを示す結果を表示部29に表示させる(ステップS113)。
一方、パス定義削除が終了していない場合、すなわち、パス定義削除失敗通知を受け取った場合(ステップS108のNo)には、CPU26は、パス定義削除失敗通知に含まれているMPPK番号のMPPK120を送信先として選択し(ステップS109)、当該MPPK120に対して、I/F番号、パス名、及びLDEV番号を含むパス定義削除指示を送信する(ステップS110)。
パス定義削除指示を受け取ったMPPK120のMP121では、ステップS103〜ステップS105の処理を実行する(ステップS111)。ここで、当該MPPK120はオーナ権を有するので、ステップS111中において、ステップS105に対応する処理が実行される。次いで、MP121は、パス定義削除完了通知を管理コンソール20に通知する(ステップS112)。その後、パス定義削除完了通知を受け取った管理コンソール20のCPU26は、パス定義削除が完了したことを示す結果を表示部29に表示させる(ステップS113)。
上記したパス定義削除処理によると、最初にパス定義削除指示を送信する先として選択したMPPK120が対応するLDEVのオーナ権をもっていない場合であっても、その後に、対応するLDEVのオーナ権を有するMPPK120にパス定義削除指示を送信して、パス定義削除を行わせることができる。このため、管理コンソール20では、LDEVのオーナ権を有しているMPPKを逐次把握しておく必要がない。このため、ストレージシステム10が管理コンソール20の関与なしで、独自にLDEVのオーナ権を移している場合であっても、支障なくパス定義削除を行うことができる。
次に、いずれかのMPPK120がリプレース中である、或いは、いずれかのMPPK120に障害が発生した場合に、当該MPPK120がオーナ権を持っているLDEVに対する入出力処理を可能にするためのアクセス確保処理を説明する。
図18は、本発明の一実施形態に係るアクセス確保処理のフローチャートである。
本実施形態では、複数のMPPK120において、対となるMPPK120が予め決められており、一方のMPPK120が対となる他方のMPPK120の担当しているLDEVに対する入出力処理をリプレース中等において実行するようにしている。
アクセス確保処理において、一のMPPK120(交替MPPKという)が対となる他のMPPK120(対象MPPKという)に対して、動作しているか否かを確認するための生死確認を行う(ステップS112)。これに対して、対象MPPK120は、動作している場合には、生存応答を送信する(ステップS113a)一方、対象MPPK120がリプレース中や、障害が発生している場合には、生存応答を送信することができない(ステップS113b)。
交替MPPK120では、MP121が生死確認に対する対象MPPK120からの生存応答があったか否かを判定し(ステップS114)、生存応答があった場合(ステップS114のYes)には、対象MPPK120による処理を交替して行う必要がないので、所定時間経過後に、上記ステップS112からの処理を実行する。
一方、生存応答がない場合(ステップS114のNo)には、対象MPPK120が担当していたLDEVへの入出力処理ができないことを意味しているので、交替MPPK120のMP121は、共有メモリ131の対象MPPK120がロックしているLDEVを参照する。すなわち、MP121は、対象MPPK120がオーナ権を有するすべてのLDEVを特定する(ステップS115)。
次いで、MP121は、特定した全てのLDEVを対象にして以下の処理を実行する。まず、MP121は、共有メモリ131における対象のLDEVの制御情報へロックをかける、すなわち、対応するLDEVのロックワード134aに自身のMPPK番号を格納する。次いで、MP121は、共有メモリ131から対象のLDEVの個別制御情報134を取得し、LM122にコピーする。これにより、LM122には、対応するLDEVの個別制御情報124cが存在することとなる。また、MP121は、共有メモリ131のLDEV番号対応テーブル132から、対象のLDEVのLDEV番号を有するエントリを取得して、LM122に格納する。また、MP121は、LM122の対象のLDEVに対応するロック有無124aをロック有に設定し、ポインタ124bにLM122の個別制御情報124cの先頭へのポインタを設定する。更に、MP121は、LM122のLDEV番号管理テーブル132から対象のLDEVのLDEV番号に対応するI/F番号とパス名とを取得する。次いで、MP121は、当該I/F番号に対応するホストI/F101の管理テーブル102において、当該パス名を含むエントリのMPPK番号に自身のMPPK番号を格納する(ステップS116)。これによって、交替MPPK120が対象のLDEVのオーナ権を確保することができ、対象のLDEVに対する入出力処理を対象MPPK120に代わって実行できることとなる。
次に、本発明の一実施形態における第1の変形例を説明する。
上記実施形態において、図11に示したLDEV減設処理に変えて、次に示すLDEV減設処理を実行するようにしてもよい。
図19は、本発明の一実施形態における第1の変形例に係るLDEV減設処理のフローチャートである。
変形例に係るLDEV減設処理において、管理コンソール20のCPU26は、ユーザによる入力部28に対する操作により、LDEV減設要求を受け付ける。本実施形態では、CPU26は、例えば、LDEV管理画面51を表示させている際におけるユーザによる入力部28に対する操作により、減設するLDEVの指定を受け付け、対応するLDEVのLDEV番号を把握する。次いで、CPU26は、複数のMPPK120の中からLDEV減設指示の送信先とするMPPK120を選択する(ステップS121)。ここで、CPU26は、例えば、ラウンドロビンによってMPPK120を選択してもよく、ランダムに選択するようにしてもよい。
次いで、CPU26は、受け付けたLDEV番号を含むLDEV減設指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS122)。
送信先のMPPK120のMP121は、内部ネットワーク150を介して、LDEV減設指示を受信する。次いで、MP121は、LDEV減設指示に含まれているLDEV番号のLDEVのオーナ権を有するMPPK120のMPPK番号を共有メモリ131から取得する(ステップS123)。オーナ権を有するMPPK120のMPPK番号は、共有メモリ131中の対応するLDEVのロックワード134aから取得することができる。
次いで、MP121は、自己の属するMPPK120が減設対象のLDEVのオーナ権を有しているか否かを、取得したMPPK番号が自己の属するMPPK120のMPPK番号であるか否かによって判定する(ステップS124)。
この結果、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致し、減設対象のLDEVのオーナ権を有している場合(ステップS124のYes)には、MP121は、LM122に格納されたLDEV番号対応テーブル132から減設対象のLDEVのLDEV番号に対応するI/F番号とパス名とを取得し、当該I/F番号に対応するホストI/F101の管理テーブル102から、当該パス名を含むエントリを削除する。更に、MP121は、LM122から減設対象のLDEVについての個別制御情報124c及びLDEV負荷情報124dを削除するとともに、当該LDEVに対応するロック有無124aをロック無に設定し、ポインタ124bを空にする。また、MP121は、共有メモリ131から対応するLDEVの個別制御情報134bを削除し、共有メモリ131におけるLDEVの制御情報へのロックを外す、すなわち、対応するLDEVのロックワード134aに空の値(例えば、−1)を格納し(ステップS125)、その後、MP121は、LDEV減設完了通知を管理コンソール20に通知する(ステップS126)。
一方、取得したMPPK番号が自己の属するMPPK120のMPPK番号と一致せず、減設対象のLDEVのオーナ権を有していない場合(ステップS124のNo)には、当該LDEVに関する情報の更新等をすることはできない。このため、MP121は、取得したオーナ権を有するMPPK120のMPPK番号をLDEV減設失敗通知に含めて管理コンソール20に送信する(ステップS127)。
管理コンソール20のCPU26は、LDEVの減設が完了したか否か、すなわち、LDEV減設完了通知を受信したか否かを判定し(ステップS128)、LDEV減設完了通知を受け取っている場合には、LDEVの減設が完了したことを示す結果を表示部29に表示させる(ステップS133)。
一方、LDEVの減設が終了していない場合、すなわち、LDEV減設失敗通知を受け取った場合には、CPU26は、LDEV減設失敗通知に含まれているMPPK番号のMPPK120を送信先として選択し(ステップS129)、当該MPPK120に対して、LDEV番号を含むLDEV減設指示を送信する(ステップS130)。
LDEV減設指示を受け取ったMPPK120のMP121では、ステップS123〜ステップS125の処理を実行する(ステップS131)。ここで、当該MPPK120はオーナ権を有するので、ステップS131中において、ステップS125に対応する処理が実行される。次いで、MP121は、LDEV減設完了通知を管理コンソール20に通知する(ステップS132)。その後、LDEV減設完了通知を受け取った管理コンソール20のCPU26は、LDEVの減設が完了したことを示す結果を表示部29に表示させる(ステップS133)。
上記したLDEV減設処理によると、最初にLDEV減設指示を送信する先として選択したMPPK120が対応するLDEVのオーナ権をもっていない場合であっても、その後に、対応するLDEVのオーナ権を有するMPPK120にLDEV減設指示を送信して、LDEVの減設を行わせることができる。このため、管理コンソール20では、LDEVのオーナ権を有しているMPPKを逐次把握しておく必要がない。このため、ストレージシステム10が管理コンソール20の関与なしで、独自にLDEVのオーナ権を移している場合であっても、支障なくLDEVの減設を行うことができる。また、LDEVの減設指示を受けたMP121が、図11に示すような他のMPPK120からオーナ権を確保するオーナ権確保処理を行わないで済むので、MP121に係る負荷を低減することができる。
次に本発明の第2の変形例について説明する。
図20は、本発明の一実施形態における第2の変形例に係るチューニング処理のフローチャートである。
第2の変形例は、上記実施形態では、図14に示すようにチューニング処理において管理者が担当を変更するLDEV及び担当するMPPKを設定するようにしていたものを、管理コンソール20が各MPPK120の負荷及びLDEVの負荷に基づいて、担当を変更するLDEVと、当該LDEVを担当するMPPK120とを自動的に決定するようにしたものである。なお、図14と同様の処理ステップには、同様な番号を付し、重複する説明を省略する。
第2の変形例に係るチューニング処理において、管理コンソール20のCPU26は、既に収集してある各MPPK120の負荷及び各LDEVの負荷に基づいて、最も負荷が高いLDEVを、担当を変更するLDEVとして選択し(ステップS141)、更に、最も負荷が低いMPPK120を新たな担当として選択する(ステップS142)。次いで、管理コンソール20のCPU26は、選択したLDEVに対応するLDEV番号を含むオーナ権移行指示を、通信I/F21、内部ネットワーク150を介して、選択したMPPK120に送信する(ステップS73)。
その後、管理コンソール20のCPU26は、オーナ権移行完了通知を受け取ると、HDD25のログ領域に、実行したLDEVのオーナ権の移行に関する内容を記録する(ステップS143)。
上記チューニング処理によると、最も負荷が高いLDEVのオーナ権を最も負荷の低いMPPK120に移行することができ、管理者の手を介することなくMPPK120の負荷の分散を行うことができる。
次に本発明の第3の変形例について説明する。
図21は、本発明の一実施形態における第3の変形例に係るチューニング処理のフローチャートである。
第3の変形例は、上記第2の変形例において、担当を変更するLDEVの選択方法を変えたものである。なお、図14及び図20と同様の処理ステップには、同様な番号を付し、重複する説明を省略する。
第3の変形例に係るチューニング処理において、管理コンソール20のCPU26は、既に収集してあるLDEVの負荷に基づいて、一定の閾値以下であって、最も負荷が高いLDEVを、担当を変更するLDEVとして選択し(ステップS151)、以降の処理を行う。これによって、一定の閾値以下であっても、最も負荷が高いLDEVの担当のMPPK120を変更することができる。
上記チューニング処理によると、担当を変更するLDEVとして、所定の閾値以下の負荷であるLDEVの中で、最も負荷の高いLDEVを選択するようにしているので、安定性を維持しつつ、MPPK120の負荷の分散を行うことができる。
次に本発明の第4の変形例について説明する。
図22は、本発明の一実施形態における第4の変形例に係る負荷分散自動調整処理のフローチャートである。
第4の変形例は、上記実施形態では、図13に示すように管理コンソール20のCPU26がMPPK120に負荷情報を要求して付加情報をMPPK120から収集していたものを、MPPK120が自発的に管理コンソール20にMPPK負荷情報とLDEV負荷情報とを送信するようにし、更に、管理コンソール20がMPPK120から送信されたLDEV負荷情報及びMPPK負荷情報に基づいて、上記した図21と同様な処理を行うようにしたものである。なお、図13及び図21と同様の処理ステップには、同様な番号を付し、重複する説明を省略する。
MPPK120のMP121は、任意の時点で、MPPK負荷情報を管理コンソール20に送信し(ステップS161)、更に、LDEV負荷情報を管理コンソール120に送信する(ステップS162)。なお、各MPPK120のMP121が管理コンソール120に自身のMPPK負荷情報及びLDEV負荷情報を送信するようにしてもよく、いずれか1つのMPPK120が他のMPPK120からMPPK負荷情報及びLDEV負荷情報を収集しておき、それらをまとめて管理コンソール120に送信するようにしてもよい。
次いで、管理コンソール20のCPU26は、MPPK120から送信されたMPPK負荷情報及びLDEV負荷情報に基づいて、以降の処理を開始する。
この処理によると、MPPK120の負荷の分散を管理者の手を介することなく行うことができる。
以上、本発明を一実施形態に基づいて説明したが、本発明は上述した実施形態に限られず、他の様々な態様に適用可能である。
例えば、上記各実施形態おいて、記憶装置の一例としてHDDを例に説明していたが、本発明はこれに限られず、例えば、HDDの少なくとも一部、又は全部を、DVDドライブ、磁気テープドライブ、フラッシュメモリデバイス等のデータを記憶可能な他の記憶装置に置き換えるようにしてもよい。
また、上記実施形態では、LDEV増設の設定と、パス設定とを異なるタイミングで実行するようにしていたが、本発明はこれに限られず、LDEV増設の設定と、パスの設定とを同時に行うようにしてもよい。例えば、LDEV増設要求受付時(ステップS11)に、パス設定に必要な情報(I/F#、パス名)を受け付けるようし、LDEV増設指示に、パス設定に必要な情報をあわせて、LDEVを担当するMPPK120のMP121に送信するようにし(ステップS12)、MP121が、RAIDグループ構成情報とLDEV番号対応テーブルの格納処理(ステップS13、ステップS25)を行うようにすればよい。このようにパス設定を同時に行うようにすれば、パス設定に必要な情報を、LDEVの担当のMPPK120に直接送ることができるので、担当以外のMPPK120に送信した場合を考慮した処理(例えば、S29〜S31)を行う必要がない。このため、パス設定における処理負荷を低減することができるとともに、パス設定に係る時間を短縮することができる。
また、上記実施形態では、管理コンソール20のCPU26が、負荷分散の処理を行うようにしていたが、本発明はこれに限られず、例えば、管理コンソール20のCPU26が実行していた処理をいずれかのMPPK120のMP121が実行するようにしてもよい。また、上記実施形態では、すべてのMPPK120から最も負荷が低いMPPK120を選択するようにしていたが、本発明はこれに限られず、例えば、管理者が予め指定した複数のMPPK120の中から選択するようにしてもよい。
また、上記実施形態では、MPPK120に複数のMP121が備えられていたが、本発明はこれに限られず、例えば、1つのMP121を備えるようにしてもよい。
また、上記実施形態では、対となるMPPK120の一方が、他方が担当しているLDEVに対するアクセス権を、他方が動作できない場合に確保するようにしていたが、本発明はこれに限られず、複数のMPPK120のそれぞれが、他のいずれかのMPPK120が動作できない場合に、当該MPPK120の担当するLDEVに対するアクセス権を確保するようにしてもよく、任意のMPPK120によって、任意のMPPK120が動作できない場合に、当該MPPK120の担当するLDEVに対するアクセス権を確保するようにしてもよい。