(57)【特許請求の範囲】
【請求項１】
複数のホスト計算機と、管理計算機と、複数のストレージ装置と、を有するシステムであって、
前記複数のホスト計算機と、前記複数のストレージ装置とはデータ転送用の第一ネットワークを介して接続され、
前記複数のホスト計算機と、前記複数のストレージ装置と、前記管理計算機とは、前記第一ネットワークとは異なる第二ネットワークを介して接続され、
前記管理計算機は、プロセッサと、記憶手段と、を有し、
前記記憶手段は、
前記複数のストレージ装置の各々と対応し、当該対応するストレージ装置を制御するための各々のプログラムと、前記複数のストレージ装置の各々と前記各々のプログラムとの対応関係を示す情報を含むデータベースと、を記憶し、
前記プロセッサは、
前記複数のストレージ装置の一つを選択し、
前記データベースに含まれる前記対応関係を示す情報に基づいて、前記選択されたストレージ装置に対応するプログラムを前記各々のプログラムから選択し、前記選択されたプログラムを実行し、前記選択されたストレージシステムに対して、前記第二ネットワークを介して論理的記憶領域を作成する指示を送信し、
前記選択されたストレージシステムは、前記第二ネットワークを介して前記管理計算機から受領した指示に基づいて、論理的記憶領域を作成し、
前記管理計算機は、前記第二ネットワークを介して前記作成した論理的記憶領域を認識するように前記ホスト計算機に通知し、
前記ホスト計算機は、前記第一ネットワークを介して前記作成された論理的記憶領域にアクセスすることを特徴とするシステム。
【請求項２】
前記複数のストレージ装置は、それぞれ
ディスク装置とコントローラとを有し、
前記コントローラは、
前記ディスク装置が有する記憶領域から論理的記憶領域を作成し、
前記プロセッサは、
前記コントローラの論理的記憶領域の作成を制御することを特徴とする請求項１記載のシステム。
【請求項３】
前記管理計算機は、
前記論理的記憶領域に関する情報が登録されるテーブルを前記記憶手段に有し、
前記テーブルに登録されている情報を前記ホスト計算機に送信することを特徴とする請求項２記載のシステム。
【請求項４】
前記ホスト計算機は、
前記送信された前記論理的記憶領域に関する情報に基づいて、仮想的な記憶領域を作成することを特徴とする請求項３記載のシステム。
【請求項５】
複数のホスト計算機と、前記複数のホスト計算機とデータ送信用の第一ネットワークを介して接続される複数のストレージ装置と、に前記第一ネットワークと異なる第二ネットワークを介して接続される管理計算機であって、
プロセッサと、
前記第二ネットワークに接続されるインタフェースと、
前記複数のストレージ装置の各々と対応し、当該対応するストレージ装置を制御するための各々のプログラムと、前記複数のストレージ装置の各々と前記各々のプログラムとの対応関係を示す情報を含むデータベースと、が記憶された記憶手段とを有し、
前記プロセッサは、
前記複数のストレージ装置の一つを選択し、
前記データベースに含まれる前記対応関係を示す情報に基づいて、前記選択されたストレージ装置に対応するプログラムを前記各々のプログラムから選択し、前記選択されたプログラムを実行し、前記選択されたストレージシステムに対して、前記第二ネットワークを介して論理的記憶領域を作成する指示を送信し、
前記第二ネットワークを介して前記作成した論理的記憶領域を認識するように前記ホスト計算機に通知することを特徴とする管理計算機。
【請求項６】
前記プロセッサは、
前記複数のストレージ装置における論理的記憶領域の生成を制御することを特徴とする請求項５記載の管理計算機。
【請求項７】
前記プロセッサは、
前記記憶装置の種別に対応して、前記論理的記憶領域の削除を前記ストレージ装置に指示することを特徴とする請求項１記載のシステム。
【請求項８】
前記コントローラは、
前記プロセッサの指示に従って、前記論理的記憶領域を削除することを特徴とする請求項７記載のシステム。
【請求項９】
前記プロセッサは、
前記ストレージ装置における前記論理的記憶領域と前記ディスク装置の対応関係を示す情報を、前記ストレージ装置から前記第二ネットワークを介して取得し、
前記対応関係を示す情報を前記記憶手段に記録することを特徴とする請求項２記載のシステム。
【請求項１０】
前記プロセッサは、
前記ストレージ装置の種別を、前記第二ネットワークを介して取得した前記記憶装置の種別に固有な識別子に基づいて判別し、前記判別した種別に対応するプログラムを前記各々のプログラムから選択することを特徴とする請求項１記載のシステム
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークで接続された記憶装置、ホストコンピュータ、および管理サーバを含む計算機システムに関する。
【０００２】
【従来の技術】
近年、計算機システムにおいては、計算機（以下「コンピュータ」）に記憶装置を直接接続するDirect Attached Storage (DAS)という形態から、コンピュータと記憶装置とをFibre channel等のネットワークで接続するStorage Area Network (ＳＡＮ) という形態が一般的になりつつある。
【０００３】
ＳＡＮでは、ネットワークに接続された大容量の記憶装置を、同じネットワークに接続された複数のコンピュータで共有することができる。また、ＳＡＮでは、ネットワークに接続される記憶装置の記憶容量や性能をデータ量の増加に応じて徐々に増やすことにより、記憶装置の導入コストを低減することができる。
【０００４】
ＳＡＮの普及にともない、ＳＡＮに接続された記憶装置が有する記憶領域を一括して管理し、必要に応じてＳＡＮに接続されたコンピュータに割り当てることが一般的となってきた。
【０００５】
特開2001-142648号公報には、あらかじめ記憶装置内に定義された記憶領域である論理ユニット(ＬＵ)や、新たに作成されたＬＵが、管理用の計算機（以下「管理サーバ」）で一元的に管理され、計算機からの要求に応じてＬＵが割り当てられる技術が記載されている。
【０００６】
【発明が解決しようとする課題】
従来技術においては、ＳＡＮに接続された複数の記憶装置が有する記憶領域は、１つの記憶領域（以下「ストレージプール」）として管理される。しかし、従来技術では、ＳＡＮに接続される記憶装置を同一の方法で制御することを想定している。したがって、制御方法の異なる複数の記憶装置がＳＡＮに接続された場合、従来技術では、想定されている制御方法と異なる制御方法である記憶装置が有する記憶領域をストレージプールに組み込んで管理することができない。
【０００７】
また、従来技術においては、個々の記憶装置内に一度作成されたＬＵは、個々の記憶装置に付属する管理ツールでしか削除することが出来ない。したがって、ユーザにとっては、記憶装置内でのＬＵ構成の変更が困難であり、コンピュータからの要求や使用状況の変化に応じて、ストレージプールに含まれるＬＵの構成を変更することが困難である。
【０００８】
本発明の目的は、制御方法の異なる複数の記憶装置が有する記憶領域を一括して管理し、必要に応じてコンピュータに記憶領域を割り当てるコンピュータシステムを提供することである。
【０００９】
【課題を解決するための手段】
本発明では、ネットワークに接続された管理サーバで、ネットワークに接続された各記憶装置が提供する記憶領域を一元的に管理する構成とする。管理サーバは、さまざまな記憶装置を制御するための制御プログラムが格納された装置制御ライブラリと、各記憶装置に割り振られた識別子と記憶装置を制御するための制御プログラムとを対応付けた装置情報データベースを備える。管理サーバは、これらの情報を用いて、異なる制御方法をもつ複数の記憶装置を管理する。
【００１０】
また、本発明の好ましい態様としては、記憶装置を使用する計算機（以下「ホストコンピュータ」）が不要な記憶領域を解放する際に、いずれのホストコンピュータからも使用されなくなった論理的記憶領域を記憶装置内で削除するよう、管理サーバが記憶装置を制御し、削除された記憶領域を未使用領域として管理するという構成が考えられる。さらに、管理サーバは、ホストコンピュータに新たに領域を割り当てる際に、既存のLUに適当なものがない場合、要求される条件に合致するLUを未使用領域から新たに作成する。
【００１１】
【発明の実施の形態】
本実施形態は、複数の記憶装置、具体的には、複数のディスクアレイシステムが提供する記憶領域が、管理サーバに一元的に管理され、ファイバチャネルネットワークで接続される複数のホストコンピュータに仮想ボリュームとして割り当てられる例である。本実施形態では、ホストコンピュータから記憶領域へのアクセスにはファイバチャネルを介したSCSIプロトコルが使用される。
【００１２】
尚、以下の実施形態においては、記憶装置をディスクアレイシステム、すなわち、複数のディスク装置とそれを制御する制御部とを有する記憶装置として説明するが、記憶装置はそれに限らず、単純なディスク装置単体、又はその集合体でも良い。
【００１３】
図１は、本発明を適用したコンピュータシステムの第一の実施形態の構成を示す図である。以下、特に図示はしないが、各計算機は、プロセッサ及びメモリを有し、各計算機が有するプログラムはメモリに格納され、プロセッサによって実行される。
本実施形態におけるコンピュータシステムは、２台のホストコンピュータ４００および２台のディスクアレイシステム１００、２００が、ファイバチャネルスイッチ３００およびファイバチャネルケーブル３０１を介して接続される構成を有している。また、ホストコンピュータ４００、ディスクアレイシステム１００、２００及び管理サーバ６００はLocal Area Network (LAN)７００で互いに接続されている。
【００１４】
ディスクアレイシステム１００は、コントローラ１１０、複数のファイバチャネル（「ＦＣ」）ポート１０１、ローカルエリアネットワークインターフェース及び複数のディスクドライブ１３１を有する。
【００１５】
コントローラ１１０は、コントローラ１１０が有するメモリに、制御プログラム１１１、装置識別子１１２、及び構成管理情報１１３を有する。コントローラ１１０は、自身が有するプロセッサ（ＣＰＵ）で制御プログラム１１１を実行することで、ディスクアレイシステム１００を制御する。また、コントローラ１１０は、ディスクドライブ１３１が有する記憶領域から構成される論理ユニット(ＬＵ)をホストコンピュータ４００に提供する。尚、ＬＵは、一つのディスクドライブ１３１内に構成されていても、複数のディスクドライブ１３１間にまたがって構成されていても良い。また、コントローラ１１０は、障害が起きた場合に備えて二重化されている。
【００１６】
ＬＵには、1つまたは複数のＦＣポート１０１に対応するＬＵ番号(ＬＵＮ)が与えられる。又、ＦＣポート１０１には、世界中で固有の識別子であるWorld Wide Name(ＷＷＮ)が与えられる。ホストコンピュータ４００は、ＷＷＮ及びＬＵＮを指定することで、アクセス先となるＬＵを特定する。また、コントローラ１１０は、各ＬＵへアクセスできるホストコンピュータ４００を、ＷＷＮ及びＬＵＮを用いて制限する機能（以下、「ＬＵＮセキュリティ」）を有する。
【００１７】
構成管理情報１１３には、ＬＵとディスクドライブ１３１が有する記憶領域との対応関係を示す情報や、ＬＵとＬＵＮの対応関係を示す情報が登録される。又、ディスクアレイシステム１００は、装置の種別(機種)に固有な装置識別子１１２を有する。ディスクアレイシステム１００のコントローラ１１０が二重化されている場合、各々のコントローラ１１０には、同一の装置識別子１１２が付与される。
【００１８】
コントローラ１１０は、制御プログラム１１１を実行することで、Simple Network Management Protocol (SNMP)のようなネットワークに接続された装置に共通なプロトコルを用いて、装置識別子１１２を管理サーバ６００に通知する。例えば、装置識別子１１２は、オブジェクトID1.3.6.1.2.1.1で指定される標準Management Information Base (MIB)のsystemオブジェクトとして提供される。SNMPおよびMIBについての詳細は、RFC1157やRFC1213で説明されている。
【００１９】
ディスクアレイシステム２００とディスクアレイシステム１００とは、コントローラ１１０が二重化されているか否かだけが異なるので、ディスクアレイシステム２００の説明は省略する。以下、ディスクアレイシステム１００及び２００を含めて、ディスクアレイシステム１００と称する。
【００２０】
ホストコンピュータ４００は、自身が有するメモリに、エージェントプログラム４０１及びボリュームマネージャ４０２を有し、また、ファイバチャネルインターフェース４０３、及びローカルエリアネットワークインターフェース４０４を有する。ホストコンピュータ４００は、ＦＣインタフェース４０３を介してディスクアレイシステム１００等に接続される。ホストコンピュータ４００は、ＦＣインターフェース４０３を介して、ディスクアレイシステム１００が提供するＬＵにデータの入出力を行う。
【００２１】
ホストコンピュータ４００は、自身が有するプロセッサでボリュームマネージャ４０２を実行することで、ディスクアレイシステム１００が提供する1つまたは複数のＬＵから、論理的に単一である仮想ボリュームを構成し、ホストコンピュータ４００のユーザに提供する。
仮想ボリュームは、ホストコンピュータ４００で実行されるアプリケーションプログラムからは単一の記憶領域（ディスクボリューム）として認識される。そして、ホストコンピュータ４００は、仮想ボリューム上にファイルシステムを構築する。
【００２２】
ホストコンピュータ４００は、プロセッサでエージェントプログラム４０１を実行することで、LAN700を介して管理サーバ６００と通信する。ホストコンピュータ４００で実行されるエージェントプログラム４０１は、管理サーバ６００の指示に従い、ホストコンピュータ４００で実行されるオペレーティングシステム(ＯＳ)を制御する。具体的には、エージェントプログラム４０１は、ＯＳを制御して、ディスクアレイシステム１００等が提供するＬＵをＯＳに認識させる。又、ホストコンピュータ４００は、エージェントプログラム４０１を実行することで、ボリュームマネージャ４０２を制御して、仮想ボリュームの作成、拡張、削除の指示を行う。
【００２３】
管理サーバ６００は、自身が有するメモリに、ストレージ管理プログラム６０１、装置情報データベース６０２、装置制御ライブラリ６０３、装置管理表６０４及び仮想ボリューム管理表６０５を有する。又、管理サーバ６００は、ローカルエリアネットワークインターフェース６０６を有する。
【００２４】
管理サーバ６００は、プロセッサでストレージ管理プログラム６０１を実行することで、ローカルエリアネットワークインターフェース６０６を介してディスクアレイシステム１００及びホストコンピュータ４００と通信する。装置制御ライブラリ６０３には、管理サーバ６００が、さまざまなディスクアレイシステム１００を制御するためのアプリケーションプログラムインタフェース(API)が登録されている。装置制御ライブラリ６０３は、例えば、ストレージ管理プログラム６０１の実行時に、管理サーバ６００のＯＳによって、ストレージ管理プログラム６０１と動的に結び付けられる関数ライブラリと、関数呼び出しで受け渡すデータ構造の定義として実現される。
【００２５】
装置情報データベース６０２には、さまざまなディスクアレイシステム１００に関して、装置制御ライブラリ６０３に格納されたAPIのうち、どのAPIを使用すればよいかを定義する情報が格納される。
【００２６】
図２は、装置情報データベース６０２の構成を示す図である。装置識別子エントリ１００１には、ディスクアレイシステム１００の種別に固有の装置識別子１１２が記録される。エントリ１００２から１００６には、ディスクアレイシステム１００を制御するためのAPIを示す情報が記録される。各エントリには、具体的には、ディスクアレイシステム１００が有する構成管理情報１１３の取得、ＬＵ作成、ＬＵのＦＣポート１０１への割り当て及びＬＵＮの定義、ＬＵ削除、並びにＬＵＮセキュリティの設定を行うAPIが設定される。
【００２７】
管理サーバ６００の管理者は、サポートするディスクアレイシステム１００の情報と、そのディスクアレイシステム１００を制御するAPI(関数名)を列挙した定義ファイルと、実際の関数を提供するダイナミックライブラリ(動的にリンク可能なライブラリ)を、CD-ROM等の外部記録媒体から管理サーバ６００にインストールする。
【００２８】
装置管理表６０４には、管理サーバ６００が管理する全てのディスクアレイシステム１００が有する構成管理情報１１３が記録される。
図３は、装置管理表６０４の構成を示す図である。エントリ２００１には、管理対象のディスクアレイシステム１００に割り当てられた固有の装置番号が登録される。装置番号は、ディスクアレイシステム１００を一意に識別するための値であり、重複しないように各ディスクアレイシステム１００に割り当てられる。
【００２９】
エントリ２００２には、ディスクアレイシステム１００に割り当てられた装置識別子１１２が格納される。エントリ２００３には、ディスクアレイシステム１００が有する記憶領域のうち、ＬＵに使用されていない空領域の容量を示す情報が格納される。
【００３０】
エントリ２００４には、ディスクアレイシステム１００の空領域の構成を示す情報が登録される。
図４は、エントリ２００４の具体的構成を示した図である。
エントリ２００４には、ディスクアレイシステム１００が有する各ディスクドライブ毎に、空領域の開始および終了Logical Block Address (LBA)を示す情報が登録される。具体的には、エントリ３００１には、ドライブを示す番号が登録される。エントリ３００２には、空領域の開始LBAが登録される。エントリ３００３には、空領域の終了LBAが登録される。1つのディスクドライブに複数の空領域が存在する場合は、空領域の個数分のエントリが作成される。
【００３１】
図３の説明に戻る。エントリ２００５には、各ディスクアレイシステム１００が提供するＬＵに関する情報が登録される。
図５は、エントリ２００５の具体的構成を示した図である。ＬＵ番号エントリ４００１には、ディスクアレイシステム１００内のＬＵに割り振られる重複しない通し番号が登録される。この番号により、ディスクアレイシステム１００内のＬＵが一意に特定される。
【００３２】
容量エントリ４００２には、各ＬＵの記憶容量を示す情報が登録される。ポートWWNエントリ４００３とホストLUNエントリ４００４には、対応するＬＵへのアクセス経路（以下「アクセスパス」）に含まれるポート１０１に付与されたWWNと、ポート１０１に対応するLUに割り当てられたLUNが登録される。RAIDレベルエントリ４００５には、ＬＵの冗長化構成に関する情報が登録される。本実施形態ではＲＡＩＤ１またはＲＡＩＤ５を示す情報が登録される。
【００３３】
ＲＡＩＤレベル１は、２つの記憶領域に同一のデータが格納される冗長構成であり、ＲＡＩＤレベル５は、複数のディスクドライブ１３１のうち、１台分の領域には、他のディスクに記録されるデータのパリティが記録されるという冗長構成である。尚、本発明においては、ＲＡＩＤ１、５以外のＲＡＩＤレベルを用いる実施形態も可能である。ＲＡＩＤレベルについての詳細は、例えばPatterson他による論文A Case for Redundant Array of Inexpensive Disks (RAID), ACM SIGMOD Conf., Jun. 1988に詳しい。
【００３４】
領域情報エントリ４００６には、ＬＵを構成する記憶領域の情報が登録される。エントリ４００６の具体的構成は、エントリ２００４と同様である。割り当てホストWWNエントリ４００７には、ＬＵが割り当てられたホストコンピュータ４００のFCインタフェース４０３に付与されているWWNが登録される。
【００３５】
空容量エントリ４００８には、エントリ４００２で示されるＬＵの記憶容量のうち、仮想ボリュームの構成に使用されていない空領域の容量が登録される。空領域情報エントリ４００９には、ＬＵの空領域を構成するLBAの範囲が登録される。エントリ４００９の具体的構成は、図４に示されるエントリのうち、エントリ３００２及び３００３を有する構成である。
【００３６】
図３の説明に戻る。ポートWWNエントリ２００６には、各ディスクアレイシステム１００が備えるFCポート１０１に付与されたWWNが登録される。IPアドレスエントリ２００７には、各装置が有するLANインタフェースに付与されたIPアドレスが登録される。
【００３７】
図６は、仮想ボリューム管理表６０５の具体的構成を示す図である。仮想ボリューム管理表６０５には、ユーザに提供される仮想ボリュームと、各ディスクアレイシステム１００が有するＬＵとの間の対応関係を示す情報が登録される。
仮想ボリューム管理表６０５は、仮想ボリュームを構成するＬＵ内の記憶領域１つについて、１つのエントリを有する。仮想ボリューム番号エントリ５００１には、各仮想ボリュームに対して割り振られた重複しない通し番号が登録される。仮想ボリューム番号は、仮想ボリュームを一意に特定するために使用される。
【００３８】
装置番号エントリ５００２には、対応する仮想ボリュームを構成するＬＵを提供するディスクアレイシステム１００の装置番号が登録される。ＬＵ番号エントリ５００３、開始LBAエントリ５００４、終了LBAエントリ５００５には、各々仮想ボリュームを構成するＬＵのＬＵ番号、仮想ボリュームの構成に使用されるＬＵ内の記憶領域の開始LBAと終了LBAが登録される。
【００３９】
本実施形態において、管理サーバ６００がストレージ管理プログラム６０１を実行して各ディスクアレイシステムが提供する記憶領域の一元管理を行うためには、まず管理対象となるディスクアレイシステム１００が装置管理表６０４に登録されなければならない。本処理は、特に、ネットワークに新たなディスクアレイシステム１００が追加される際に行われる。
図７は、管理サーバ６００が、ディスクアレイシステム１００を装置管理表６０４に登録する手順を示したフローチャートである。これらの手順は、実際には、管理サーバ６００でストレージ管理プログラム６０１が実行されることにより行われる。
【００４０】
最初に、管理者は、登録したいディスクアレイシステム１００のＩＰアドレスを指定する。具体的には、管理者は、管理サーバ６００に、登録したいディスクアレイシステム１００のＩＰアドレスを入力する。尚、ＩＰアドレスは、管理サーバ６００に直接キーボード等を用いて入力されても良いし、ネットワークを介して別の計算機等で入力された情報が管理サーバ６００に転送されても良い(ステップ６００１)。管理サーバ６００は、指定されたＩＰアドレスが、装置管理表６０４に登録されたＩＰアドレスと重複しないかどうか調べる(ステップ６００２)。
【００４１】
ＩＰアドレスが重複していれば、管理サーバ６００は、エラーをユーザに報告して登録処理を終了する(ステップ６００８)。ＩＰアドレスが重複していなければ、管理サーバ６００は、装置管理表６０４に新たなエントリを作成し、既存の装置番号と重複しない装置番号および指定されたＩＰアドレスを記録する(ステップ６００３)。
【００４２】
次に、管理サーバ６００は、指定されたＩＰアドレスを有するディスクアレイシステム１００とローカルエリアネットワークインターフェース６０６を介して、SNMPプロトコルを用いて通信し、そのディスクアレイシステム１００に割り振られている装置識別子１１２を取得する。その後、管理サーバ６００は、対応する装置管理表６０４のエントリに取得した装置識別子１１２を記録する。
【００４３】
本実施形態においては、装置識別子は、SNMPの標準MIBで提供される。したがって、ディスクアレイシステム１００がSNMPエージェント機能を備えていれば、管理サーバ６００は、ディスクアレイシステム１００の種別にかかわらず、SNMPに準拠した共通の処理で、ディスクアレイシステム１００から装置識別子１１２を取得することができる(ステップ６００５)。
【００４４】
管理サーバ６００は、取得した装置識別子１１２を装置情報データベース６０２で検索し(ステップ６００５)、該当する装置識別子１１２が定義、すなわち装置情報データベース６０２に登録されているか調べる(ステップ６００６)。識別子が登録されていない場合は、管理サーバ６００は、その装置識別子１１２を有するディスクアレイシステム１００を制御できない。そのため、管理サーバ６００は、以前のステップで装置管理表６０４に作成したエントリを削除し(ステップ６００７)、管理者にエラーを報告して処理を終了する(ステップ６００８)。
【００４５】
装置識別子１１２が装置情報データベース６０２に登録されている場合、管理サーバ６００は、装置情報データベース６０２から、装置識別子１１２に対応する情報取得関数のAPIを検索する。その後、管理サーバ６００は、検索された情報取得関数のAPIを装置制御ライブラリから呼び出して実行することで、登録対象のディスクアレイシステム１００の構成管理情報１１３を取得する。
【００４６】
具体的には、管理サーバ６００は、呼び出されたAPIを実行することで、LAN経由でディスクアレイシステム１００に構成管理情報の提供を指示する。指示を受けたディスクアレイシステム１００は、要求された情報を管理サーバ６００に送信する。ディスクアレイ１００と管理サーバ６００との間の通信は、これらの装置のベンダが規定する特定のコマンドで行われる。この処理内容は、構成管理情報の取得以外の操作(LU作成、LU削除、パス作成、LUNセキュリティ設定)についても同様である(ステップ６００９)。
【００４７】
管理サーバ６００は、ディスクアレイシステム１００から取得した構成管理情報１１３に含まれる、ディスクアレイシステム１００が有する全てのＬＵの構成およびアクセスパスに関する情報および空領域の構成に関する情報を装置管理表６０４に記録する。
【００４８】
管理サーバ６００は、取得された構成管理情報１１３を参照することで、装置管理表６０４の各エントリのうち、割り当てホストWWNエントリ４００７、空容量エントリ４００８、及び空領域情報エントリ４００９以外の項目について情報を取得する。
【００４９】
尚、ディスクアレイシステム１００の登録時点ではいずれのＬＵもホストコンピュータ４００に割り当てられていないため、割当ホストWWNエントリ４００７には「なし」が登録される。
【００５０】
又、最初はディスクアレイシステム１００の記憶容量は、すべて未使用なので、空容量エントリ４００８には、容量エントリ４００２と同じ値が登録される。また、同じ理由から、LUの空領域情報エントリ４００９には、ＬＵの先頭LBAおよび最終LBAが登録される(ステップ６０１０)。
【００５１】
以上の処理により、管理サーバ６００は、新たなディスクアレイシステム１００を装置管理表６０４に登録する。
尚、本実施形態では、ステップ６００４において、管理サーバ６００は、SNMPを用いてディスクアレイシステム１００から装置識別子１１２を取得したが、SNMPエージェント機能を備えていないディスクアレイシステム１００が装置管理表６０４に追加される場合は、管理者がIPアドレスとともに手動で装置識別子１１２を管理サーバ６００に指定しても良い。
【００５２】
図８は、本実施形態における、仮想ボリュームの作成、及び作成された仮想ボリュームのホストコンピュータ４００への割り当て処理の流れを示す図である。以下の処理は、主に、管理サーバ６００においてストレージ管理プログラム６０１が実行されることで行われる。
【００５３】
最初に、計算機システムの管理者が、作成したい仮想ボリュームの記憶容量と、作成したい仮想ボリュームが割り当てられるホストコンピュータ４００のＦＣインタフェース４０３のWWNを、管理サーバ６００に入力する。これらの値は、本計算機システムの管理者が、管理サーバ６００のストレージ管理プログラムに手動で入力する。あるいは、ユーザが、割り当て先となるホストコンピュータ４００上で動作するエージェントプログラム４０１を用いて、LAN７００経由で、管理サーバ６００に値、具体的には、ホストコンピュータのＷＷＮ等を指定してもよい(ステップ７００１)。
【００５４】
管理サーバ６００は、要求された記憶容量をホストコンピュータ４００に提供可能であるか、装置管理表６０４を参照して調べる。あるホストコンピュータ４００に提供可能な記憶容量の最大値は、各ディスクアレイシステム１００が有する空容量の合計容量と、仮想ボリュームの割当を要求するホストコンピュータ４００に割り当てられているＬＵのうちの、未使用領域との和である。
【００５５】
ここで、ＬＵの未使用領域とは、ホストコンピュータ４００に割り当てられているＬＵであるが、仮想ボリュームに割り当てられていない領域のことを言う。あるＬＵがホストコンピュータ４００に割り当てられているか否かは、図５の割当ホストWWNエントリ４００７に登録されたWWNと、仮想ボリュームの要求に含まれる割り当て先ホストコンピュータ４００のＦＣインタフェース４０３のWWNを照合することで判断できる。具体的には、照合されるWWN同士が同一であれば、そのホストコンピュータ４００に割り当てられたＬＵであると判別できる。その後、管理サーバ６００は、ホストコンピュータ４００に割り当てられたＬＵの未使用領域の記憶容量を、空容量エントリ４００８を検索することで得る(ステップ７００２)。
【００５６】
要求された記憶容量が、前述の最大値を上回る場合は、管理サーバ６００は、エラーをホストコンピュータ４００に送信し、処理を終了する(ステップ７０１９)。
要求された記憶容量が、前述の最大値を下回る場合、管理サーバ６００は、ホストコンピュータ４００から要求された記憶容量をホストコンピュータ４００に提供可能であると判断し、既存の仮想ボリューム番号と重複しない仮想ボリューム番号を、新たに作成する仮想ボリュームのために定める（ステップ７００３）。
【００５７】
仮想ボリューム番号を決定した管理サーバ６００は、次に、決定した仮想ボリューム番号に対応する仮想ボリュームを構成する記憶領域と記憶容量を選択する。基本的には、以下の処理を行う。すなわち、仮想ボリュームに割当可能な記憶領域を選択して仮想ボリュームを作成し、作成された仮想ボリュームの記憶容量が要求された記憶容量に満たなければ、さらに他の記憶領域を選択して仮想ボリュームに追加するという処理を繰り返し、最終的に要求された容量の仮想ボリュームを実現する。
【００５８】
以下に、具体的手順を説明する。
管理サーバ６００は、ホストコンピュータ４００に割り当て済みのＬＵのうち、未使用領域を有するＬＵが存在するかどうかを確認する(ステップ７００４)。未使用領域を有するＬＵがある場合、管理サーバ６００は、そのうちの1つの未使用領域を選択し(ステップ７０１４)、ステップ７０１３に対応する処理を実行する。
【００５９】
未使用領域を有するＬＵがない場合は、管理サーバ６００は、ホストコンピュータ４００に割り当てられていないＬＵ（以下、「未割当LU」と称する）が存在するかを装置管理表６０４を検索して確認する。具体的には、未割当LUは、装置管理表６０４のLU情報の割当ホストWWNエントリ４００７が「なし」であるものである(ステップ７００５)。未割当ＬＵが存在する場合は、管理サーバ６００は、未割当ＬＵのうちの1つのＬＵを選択し(ステップ７００６)、ステップ７００９に対応する処理を行う。
【００６０】
未割当ＬＵが存在しない場合、管理サーバ６００は、ディスクアレイシステム１００に新たにＬＵを作成する(ステップ７００７)。
図９は、管理サーバ６００及びディスクアレイシステム１００による、ＬＵ作成の処理の流れを示すフローチャートである。本図を用いて、管理サーバ６００によるＬＵ作成の処理手順を説明する。尚、本処理も、管理サーバ６００がストレージ管理プログラム６０１を実行することで行われる。
【００６１】
まず、管理サーバ６００は、装置管理表６０４に登録されたディスクアレイシステム１００毎の空容量エントリ２００３を参照し、最も空容量が大きいディスクアレイシステム１００を選択する。これにより、本実施形態では、各ディスクアレイシステム１００で使用される記憶容量を均等化することができる。
【００６２】
ディスクアレイシステム１００の選択の別の形態としては、ラウンドロビンでディスクアレイシステム１００を選択したり、管理者が特定のディスクアレイシステム１００を選択することも考えられる(ステップ８００１)。
【００６３】
次に管理サーバ６００は、作成しようとするＬＵに用いる空領域を選択する。具体的には、空領域は、装置管理表６０４の空領域情報（図４）に基づいて、装置制御ライブラリ６０３が提供するLU作成用のAPIが有する、ディスクアレイ１００におけるLU作成機能の仕様にあわせて選択される。
【００６４】
例えば、管理サーバ６００が、装置制御ライブラリ６０３に登録されているＡＰＩを用いて、空領域を有するディスクアレイシステム１００にRAIDレベル１のＬＵの構築を指示できる場合、管理サーバ６００は、当該ディスクアレイシステム１００の空領域の集合から、２つの同サイズの空領域を選択する。
【００６５】
また、管理サーバ６００が、装置制御ライブラリ６０３に登録されているＡＰＩを用いて、空領域を有するディスクアレイシステム１００にRAIDレベル５のＬＵの構築を指示できる場合、管理サーバ６００は、当該ディスクアレイシステム１００の空領域の集合から、３つ以上の同サイズの空領域を選択する。どちらも可能な場合、１つのRAIDレベル、例えばRAIDレベル５を優先レベルとして定義しておき、RAIDレベル５でLUが構成できない(すなわち、空領域が２つしかない)場合にのみ、RAIDレベル１でLUを構成するように、空領域が選択される(ステップ８００２)。
【００６６】
次に、管理サーバ６００は、選択した空領域で構成できるLUの記憶容量が、要求された記憶容量以上であるか判別する(ステップ８００３)。要求された記憶容量以上である場合には、管理サーバ６００は、要求された記憶容量のＬＵを作成する(ステップ８００４)。
【００６７】
構成可能な記憶容量が要求された記憶容量よりも小さい場合は、管理サーバ６００は、構成可能な最大容量のLUを作成する。
LUの作成は、具体的には、管理サーバ６００が、装置管理表６０４に記録されたディスクアレイシステム１００の装置識別子１１２を用いて、装置情報データベース６０２からLU作成に使用するAPIを検索し、装置制御ライブラリ６０３が提供する当該APIを呼び出して実行することで実現する。APIの呼び出しの際は、管理サーバ６００は、例えば使用する領域とRAIDレベルをパラメータとして指定する(ステップ８００５)。
【００６８】
一方、構成されたＬＵに関する情報は、当該ＡＰＩの実行に際し、ディスクアレイシステム１００へ送信される。構成されたＬＵに関する情報を受信したディスクアレイシステム１００は、制御プログラム１１１を実行して、構成管理情報１１３を更新する。具体的には、ディスクアレイシステム１００は、作成されたLUと、実際のディスクドライブの記憶領域との対応を構成管理情報１１３に追加する。
【００６９】
図７の処理の説明に戻る。
LU作成後、管理サーバ６００は、装置管理表６０４を更新する。具体的には、管理サーバ６００は、作成されたLUに対応する記憶領域を装置管理表６０４に登録する。また、管理サーバ６００は、LUを作成したディスクアレイシステム１００の空容量から、LUの作成に用いられた記憶領域の容量を減じ、それらの領域に関する情報を空領域情報から削除する(ステップ７００８)。
【００７０】
次に、管理サーバ６００は、作成したLUもしくはステップ７００６で選択したＬＵについて、ポートの割り当ておよびホストLUNの設定を行い、ホストコンピュータ４００からアクセスするためのパスを設定する。この処理は、ＬＵの作成と同様に、管理サーバ６００が装置制御ライブラリ６０３が提供するAPIを実行することで実現される。
【００７１】
一方、ポートの割当情報等は、該当するＡＰＩが実行された際に、ディスクアレイシステム１００に送信される。ポートの割当情報等を受取ったディスクアレイシステム１００は、制御プログラム１１１を実行して、構成管理情報１１３を更新する。具体的には、ディスクアレイシステム１００は、作成されたLUと、そのLUに割り当てられるLUNおよびポートの対応を構成管理情報１１３に追加する。
【００７２】
又、管理サーバ６００は、該当するLUについて、LUNセキュリティの設定も行う。具体的には、管理サーバ６００は、該当するLUへのアクセスが許可されるホストコンピュータ４００を指定するために、ステップ７００１で指定されたホストコンピュータ４００のＦＣインタフェースのWWNを該当するLUに対応付けて設定する。（ステップ７００９、７０１０）。
【００７３】
管理サーバ６００は、以上のＬＵ関連情報、すなわちアクセスパス情報やLUNセキュリティの情報を装置管理表６０４に登録する。尚、この時点で登録されるLUは、仮想ボリュームを構成する領域としてまだ使用されていないため、図５のLU情報の項目で、空容量エントリ４００７には、LUの容量エントリ４００２と同じ値、空領域情報エントリ４００９には、当該LUの先頭LBAおよび最終LBAが記録される。この時点で、作成されたLUは、ホストコンピュータ４００から認識可能な状態となる（ステップ７０１１）。
【００７４】
管理サーバ６００は、ホストコンピュータ４００上で実行されるエージェントプログラム４０１と通信を行い、ホストコンピュータ４００が作成されたLUを認識するよう、指示する。指示を受けたホストコンピュータ４００は、エージェントプログラム４０１を実行することで、例えば、ＯＳが標準で提供するAPIやコマンド等を呼び出してＦＣネットワーク上で認識可能なＬＵを走査し、ボリュームマネージャ４０２からアクセス可能なように、デバイスファイルの作成などを行う。この処理は、ホストコンピュータ４００にディスクドライブを増設したときの処理と同様である(ステップ７０１２)。
【００７５】
次に、ホストコンピュータ４００は、ボリュームマネージャ４０２を実行することで、管理サーバ６００と連携して、仮想ボリュームの作成を行う。具体的には、ＬＵの作成等を終えた管理サーバ６００は、ステップ7007またはステップ7014で得られたLUについて、空領域情報エントリ4009を参照し、仮想ボリュームの作成に使用するＬＵ内の記憶領域を選択する。次に管理サーバ６００は、選択した記憶領域のパラメータ(例えば、ポートWWN、LUN、使用する領域の開始LBA、終了LBA)をホストコンピュータ１００にLAN７００経由で送信する。
【００７６】
尚、既存の仮想ボリュームの拡張処理の場合は、管理サーバ６００は、拡張対象である仮想ボリュームに含まれるLUの情報も送信する。これは、ホストコンピュータ１００が、拡張対象のボリュームを特定するためである。
【００７７】
仮想ボリューム作成に使用されるＬＵの記憶領域の情報をローカルエリアネットワークインターフェース４０４を介して受信したホストコンピュータ１００は、エージェントプログラム４０１を実行することで、送られてきたパラメータで指示されたLUの記憶領域を用いて仮想ボリュームを作成する。
【００７８】
ユーザから要求された記憶容量よりも空領域が大きい場合は、要求された容量分、ユーザから要求された記憶容量よりも空領域が小さい場合は空領域の容量分の領域を使用して、ホストコンピュータ４００は、仮想ボリュームを作成または拡張する。尚、仮想ボリュームの作成の場合は、処理はステップ７０００から実行されるが、一回の作成処理でユーザに要求される記憶容量に満たない場合は、ステップ７００４からの処理が繰り返され、必要な容量の仮想ボリュームが作成される(ステップ７０１５)。
【００７９】
その後、ホストコンピュータ４００及び管理サーバ６００は、仮想ボリュームの作成、拡張に使用した領域を仮想ボリューム管理表６０５に反映する。具体的には、ホストコンピュータ４００は、仮想ボリュームに割り当てたＬＵに関する情報を管理サーバ６００にLAN７００を介して送信する。仮想ボリュームに割り当てられたＬＵに関する情報を受信した管理サーバ６００は、仮想ボリューム管理表６０５に、割り当てられたＬＵに対応する仮想ボリューム番号、装置番号、LU番号、開始および終了LBAを記録する（ステップ７０１６）。
【００８０】
管理サーバ６００は、この時点で作成された仮想ボリュームの容量と、ユーザに要求された容量を比較し(ステップ７０１６)、要求される記憶容量に達していれば処理を終了する(ステップ７０１７)。作成された仮想ボリュームの記憶容量がユーザから要求された記憶容量に達していなければ、不足分を新たな要求容量としてステップ７００４に戻り、要求された容量の仮想ボリュームが作成されるまでステップ７００４からステップ７０１５の処理を繰り返す。
【００８１】
以上の処理により、本発明の計算機システムは、ユーザから要求された記憶容量の仮想ボリュームを作成し、計算機システム内のホストコンピュータ４００に作成した仮想ボリュームを割り当てることができる。また、本発明の計算機システムは、仮想ボリュームの作成と同様の処理を用いて、既存の仮想ボリュームの記憶容量を拡張することができる。この際、仮想ボリュームの作成の際必要となる、ホストコンピュータ４００での新たな仮想ボリュームの作成、及び仮想ボリューム管理表６０５の更新時の既存の仮想ボリューム番号の記録の処理は不要である。
【００８２】
次に、本発明の計算機システムにおいて、仮想ボリュームを削除する場合について説明する。仮想ボリュームを削除する場合、まず、ホストコンピュータ４００は、ボリュームマネージャ４０２を実行することで、仮想ボリュームを削除、例えば、仮想ボリュームに対応するデバイスファイルを削除することにより、アプリケーションプログラムからアクセスできないようにする。その後、ホストコンピュータ４００は、削除した仮想ボリュームの情報を、LAN７００を介して、管理サーバ６００に送付する。
【００８３】
削除した仮想ボリュームの情報を受信した管理サーバ６００は、ストレージ管理プログラム６０１を実行することで、領域管理の情報を更新、具体的には、仮想ボリューム管理表６０５に登録されていた仮想ボリュームに関する情報を削除する。
図１０は、仮想ボリュームを削除するときの管理サーバ６００の処理の手順を示したフローチャートである。尚、以下の処理は、管理サーバ６００が、ストレージ管理プログラム６０１を実行することで行われる。
【００８４】
管理サーバ６００は、ホストコンピュータ４００から受信した情報を用いて、仮想ボリューム管理表６０５から、削除する仮想ボリュームの仮想ボリューム番号を選択する(ステップ９００１)。削除されるべき仮想ボリュームが発見されない場合は(ステップ９００２)、削除の処理を終了する(ステップ９００３)。
【００８５】
削除される仮想ボリュームの仮想ボリューム番号を選択したら、管理サーバ６００は、選択した仮想ボリューム番号に対応するエントリの領域を未使用領域とするように、装置管理表６０４のLU情報を変更する(ステップ９００４)。この処理は、具体的には、仮想ボリュームに割り当てられていたＬＵの記憶領域を空領域情報エントリ４００９に追加し、そのＬＵの記憶領域の記憶容量を空容量エントリ４００８に加算することで実現される。
【００８６】
次に、管理サーバ６００は、仮想ボリュームに割り当てられていたＬＵの記憶領域を未使用領域としたことにより、そのＬＵ全体が未使用領域となったか調べる（ステップ９００５）。ＬＵ全体が未使用領域となっていない場合は、ステップ９００１の処理に戻る。ＬＵの記憶領域全てが未使用領域となった場合は、管理サーバ６００は、全体が未使用領域となっているLUをディスクアレイシステム１００から削除する。
【００８７】
この処理は、具体的には、LUの作成、アクセスパスの作成、LUNセキュリティの設定と同様に、管理サーバ６００が、装置制御ライブラリ６０３が提供するAPIを呼び出して実行することにより実現される。
【００８８】
ＬＵを削除後、管理サーバ６００は、装置管理表６０４の空容量エントリ２００３、空領域情報エントリ２００４、及びＬＵ情報エントリ２００５を更新する。空容量エントリ２００３には、削除したLUを構成していた記憶領域の記憶容量が加算される。空領域情報エントリ２００４には、削除したLUを構成していた記憶領域の情報が追加される。LU情報エントリ２００５からは、削除したLUのエントリが削除される（ステップ９００６）。
【００８９】
管理サーバ６００で実行されるＡＰＩによって、ディスクアレイシステム１００は、削除されたＬＵに関する情報を受取る。前記の情報を受取ったディスクアレイシステム１００は、制御プログラム１１１を実行することで、構成管理情報１１３を更新する。具体的には、ディスクアレイシステム１００は、削除されたLUに関する記憶領域との対応情報、LUNの割り当て情報を構成管理情報１１３から削除する。
以上の処理により、本発明の計算機システムは、仮想ボリュームの削除と、削除した仮想ボリュームを構成していたLUの削除を実現する。
【００９０】
尚、本実施形態では、ホストコンピュータ４００に仮想ボリュームを割り当てたが、ホストコンピュータ４００が、さらにネットワーク経由で他のコンピュータに、当該ホストコンピュータ４００に割り当てられた仮想ボリュームを提供することも可能である。また、本実施形態では管理サーバ６００とホストコンピュータ４００を分けて説明したが、ホストコンピュータ４００の1つと管理サーバ６００とを共用することも可能である。
【００９１】
本発明により、複数の記憶装置がそれぞれ異なる方法で制御される場合でも、記憶装置毎に用意した制御APIを使い分けることにより、各装置が提供する記憶領域を一元的に管理することができる。
【００９２】
また、不要なLUを記憶装置内で削除し未使用領域として管理することにより、ホストコンピュータに新たに領域を割り当てる際に、要求される条件に合致するLUを未使用領域から新たに作成し、柔軟な領域割り当てを可能にする。
【００９３】
【発明の効果】
本発明によれば、記憶装置の種別にとらわれないシステム構成を実現することができる。
【００９４】
また、ホストコンピュータに新たに記憶領域を割り当てる際に、既存のLUに適当なものがない場合でも、要求される条件に合致するLUをホストコンピュータに割り当てることができる。
【図面の簡単な説明】
【図１】本発明の実施形態の全体構成を示す図である。
【図２】装置情報データベースの構成を示す図である。
【図３】装置管理表の構成を示す図である。
【図４】装置管理表の空領域情報の構成を示す図である。
【図５】装置管理表のLU情報の構成を示す図である。
【図６】仮想ボリューム管理表の構成を示す図である。
【図７】装置管理表登録のフローチャートである。
【図８】仮想ボリューム作成のフローチャートである。
【図９】  LU作成のフローチャートである。
【図１０】仮想ボリューム削除のフローチャートである。
【符号の説明】
１００…ディスクアレイシステム、１３１…ディスクドライブ、３００…ファイバチャネルスイッチ、４００…ホストコンピュータ、６００…管理サーバ。
【図１】
0004061960.tif 000002
【図２】
0004061960.tif 000003
【図３】
0004061960.tif 000004
【図４】
0004061960.tif 000005
【図５】
0004061960.tif 000006
【図６】
0004061960.tif 000007
【図７】
0004061960.tif 000008
【図８】
0004061960.tif 000009
【図９】
0004061960.tif 000010
【図１０】
0004061960.tif 000011