(57)【特許請求の範囲】
【請求項１】
記憶装置と、
第１の計算機からブロックＩ／Ｏインターフェイスを通じてなされる前記記憶装置に対するアクセスを制御する記憶装置コントローラと、
第２の計算機からファイルＩ／Ｏインターフェイスを通じてなされる前記記憶装置に対するアクセスを制御するファイルサーバと、
複数の前記記憶装置の集合により構成される記憶領域をストレージプールとして管理する管理装置と、
前記記憶装置コントローラ及びファイルサーバをそれぞれ前記ストレージプールに接続する接続装置と、
を備え、
前記管理装置は、
前記ストレージプールに属する複数の記憶装置のそれぞれを、前記記憶装置コントローラに割り当てるか、前記ファイルサーバに割り当てるか、又は未割り当てとするか、を管理するストレージプール管理情報を備え、
前記記憶装置コントローラから問い合わせを受けると、前記ストレージプール管理情報に基づいて、前記記憶装置コントローラに割り当てられた前記記憶装置を特定し、当該特定された記憶装置の情報を前記記憶装置コントローラに通知し、
前記ファイルサーバから問い合わせを受けると、前記ストレージプール管理情報に基づいて、前記ファイルサーバに割り当てられた前記記憶装置を特定し、当該特定された記憶装置の情報を前記ファイルサーバに通知し、
前記記憶装置コントローラ及び前記ファイルサーバは、前記管理装置から取得した前記記憶装置の情報を記録するメモリを備え、当該情報に基づいて前記割り当てられた記憶装置にアクセスし、
当該アクセスを受けた前記記憶装置は、前記記憶装置コントローラ又は前記ファイルサーバに接続されてなる、
記憶装置システム。
【請求項２】
前記複数の記憶装置のそれぞれは、当該記憶装置を使用する前記記憶装置コントローラ又は前記ファイルサーバに関するコントローラ情報を含む個別情報を記憶する記憶領域を
備え、
前記管理装置は、前記記憶装置のそれぞれから前記個別情報を取得して前記ストレージプールの構成を認識する処理を行い、この処理の際に、前記管理装置は前記個別情報の前記コントローラ情報を前記複数の記憶装置のそれぞれについて前記ストレージプール管理情報の管理テーブルに登録する請求項１記載の記憶装置システム。
【請求項３】
前記管理装置は、
前記記憶装置コントローラ及び前記ファイルサーバのそのそれぞれの情報が登録されたコントローラ管理テーブルを備え、
前記記憶装置コントローラ又は前記ファイルサーバから前記管理装置に送信された認証の要求に基づいて、前記コントローラ管理テーブルを確認し、当該コントローラ管理テーブルに前記認証の要求を送信した前記記憶装置コントローラ又は前記ファイルサーバの情報が登録されているか否かによって前記認証の要求の可否を決定し、前記コントローラ管理テーブルに登録があった前記記憶装置コントローラ又は前記ファイルサーバの認証を行い、
前記管理装置は、前記認証した前記記憶装置コントローラ又は前記ファイルサーバに対してそれぞれ割り当てられる前記記憶装置を特定する情報を送信する請求項１又は２記載の記憶装置システム。
【請求項４】
前記管理装置は、前記ストレージプールに追加されたか又は前記未割り当ての記憶装置に対して、当該記憶装置を使用する前記記憶装置コントローラ又は前記ファイルサーバを登録し、当該登録された記憶装置の前記記憶領域に、前記コントローラ情報を書き込む請求項２記載の記憶装置システム。
【請求項５】
前記管理装置は、前記コントローラ情報によって特定された前記記憶装置コントローラ又は前記ファイルサーバに、前記記憶装置が割り当てられたことを通知する請求項４記載の記憶装置システム。
【請求項６】
前記通知を受けた前記記憶装置コントローラ又はファイルサーバは、前記管理装置に前記割り当てられた記憶装置を特定する情報を要求する請求項５記載の記憶装置システム。
【請求項７】
記憶装置と、
第１の計算機からブロックＩ／Ｏインターフェイスを通じてなされる前記記憶装置に対するアクセスを制御する記憶装置コントローラと、
第２の計算機からファイルＩ／Ｏインターフェイスを通じてなされる前記記憶装置に対するアクセスを制御するファイルサーバと、
複数の前記記憶装置の集合により構成される記憶領域をストレージプールとして管理する管理装置と、
前記記憶装置コントローラ及びファイルサーバをそれぞれ前記ストレージプールに接続する接続装置と、
を備え、
前記ストレージプールは論理的に複数のプールに分割され、分割された複数のプールのそれぞれは前記記憶装置コントローラ又はファイルサーバに割り当てられ、
前記管理装置は、前記ストレージプールに属する前記複数の記憶装置のそれぞれの情報と、当該複数の記憶装置のそれぞれを、前記記憶装置コントローラに割り当てられた前記分割されたプール又は前記ファイルサーバに割り当てられた前記分割されたプールに割り当てる情報とが記録された管理テーブルを備え、
さらに、前記管理装置は、前記記憶装置コントローラ又は前記ファイルサーバから送信された要求に基づいて、前記管理テーブルを確認し、前記記憶装置コントローラに割り当てられた前記記憶装置又は前記ファイルサーバに割り当てられた前記記憶装置とを、前記管理テーブルに登録された前記複数の記憶装置の中から特定して、当該特定した前記記憶装置の情報を前記記憶装置コントローラ又は前記ファイルサーバに送信し、
前記管理装置は、前記記憶装置コントローラに対して、当該記憶装置コントローラに割り当てられた前記記憶装置を排他的に使用させ、当該記憶装置コントローラは前記割り当てられた前記記憶装置に対するアクセスを占有し、
前記管理装置は、前記ファイルサーバに対して、当該ファイルサーバに割り当てられた前記記憶装置を排他的に使用させ、当該ファイルサーバは前記割当てら得た前記記憶装置に対するアクセスを占有する、
記憶装置システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システムで用いられる記憶装置システムに係り、特に、複数種のＩ／Ｏインタフェースを有する記憶装置システムに関する。
【０００２】
【従来の技術】
計算機システムにおいて記憶装置と計算機とを接続するためのインタフェース（以下、Ｉ／Ｆと記す）には、大きく分けて二つのタイプが存在する。第一のタイプは、記憶装置におけるデータの管理単位であるブロックを単位として入出力（以下、Ｉ／Ｏと記す）のアクセスが行われる「ブロックＩ／Ｏインタフェース」である。ブロックＩ／Ｏインタフェースには、ファイバチャネル（Fibre Channel）、ＳＣＳＩ（Small Computer Systems Interface）などのインタフェースが含まれる。第二のタイプは、ファイル単位にＩ／Ｏのアクセスが行われる「ファイルＩ／Ｏインタフェース」である。ファイルＩ／Ｏインタフェースは、例えば、ネットワークを介して接続された計算機（ファイルサーバ）により管理される記憶装置のデータを利用する、Network File System（ＮＦＳ）やCommon Internet File System（ＣＩＦＳ）などのネットワークファイルシステムで用いられる。
【０００３】
一方、ネットワークを介して複数の記憶装置を相互に接続する技術も、上述したようなＩ／Ｆの違いによって、２つのタイプに分類される。一つは、ファイバチャネルを用いて計算機と記憶装置とを接続し、記憶装置への接続のためのネットワークが構築されたストレージエリアネットワーク（ＳＡＮ）である。第二は、ローカルエリアネットワーク（ＬＡＮ）などのネットワークに記憶装置を接続し、ファイルＩ／Ｏインタフェースで記憶装置をアクセスするネットワークアタッチドストレージ（ＮＡＳ）である。
【０００４】
ＳＡＮでは、計算機間でのメッセージ交換が行われるネットワークとは別に設けられたストレージ専用の高速ネットワークが用いられる。このため、記憶装置との接続にＬＡＮが用いられるＮＡＳに比べ、より高速なデータの授受が可能である。ＳＡＮでは、また、インタフェースとしてブロックＩ／Ｏインタフェースが用いられるため、プロトコルオーバヘッドが小さく、高速なレスポンスを得ることができる。この反面、専用のネットワークが必要とされるので、導入の際のコストが大きい。したがって、ＳＡＮは、主に企業の基幹システムで使用されており、データベースの構築を目的として利用されることが多い。
【０００５】
ＮＡＳでは、ＬＡＮに記憶装置システムが直接接続される。ＮＡＳは、既存のＬＡＮをそのまま使用できるので、導入の際のコストが小さく、導入が容易である。インタフェースとしては、標準化されたＮＦＳ、ＣＩＦＳ等のネットワークファイルシステムを用いられ、ファイル単位でデータを管理できる。このため、データの管理が容易で、かつ複数の計算機で容易にファイルを共有することができる。この反面、ＮＡＳでは、計算機間の通信が行われるＬＡＮを介して記憶装置のアクセスが行われるため、ＬＡＮの負荷を増大させるおそれがある。また、ネットワークファイルシステムの処理のオーバヘッドが大きく、レスポンスの性能はブロックＩ／Ｏより低速となる。このようなことから、ＮＡＳは、企業のファイル管理システムに主に使用されており、Webコンテンツの管理や、ＣＡＤのデータファイル管理等のアプリケーションに利用されることが多い。
【０００６】
上述のように、ＮＡＳとＳＡＮはお互いに補完しあう関係にあり、また適用分野も異なる。したがって、一般に、両方は、適所に使い分けられている。
【０００７】
ＳＡＮとＮＡＳとの統合に関する技術として、従来、以下に述べる技術が知られている。
【０００８】
計算機は、ＬＡＮにより接続されたファイルサーバを介して記憶装置システムと接続され、あるいは、ファイルサーバと共に、ＳＡＮを介して記憶装置システムと直接的に接続される。ファイルサーバは、ファイバチャネルなどのインタフェースにより記憶装置システムと接続される。ここで使用される記憶装置システムとしては、複数のディスク装置と、これら複数の記憶装置と計算機との間に介在し、ディスク装置へのデータのアクセスを制御するディスク制御装置とを有するいわゆるディスクアレイシステムがある。
【０００９】
記憶装置システムに保持されたデータをアクセスする際、ファイルサーバとのみ接続された計算機は、ＮＦＳ、ＣＩＦＳなどのプロトコルを用い、ファイルサーバを介して記憶装置システムのファイルをアクセスする。一方、ファイルサーバとＳＡＮの双方に接続された計算機は、記憶装置システムをアクセスする際、ファイルサーバに対してリクエストを発行する。しかし、記憶装置システムから計算機へのデータの転送は、ＳＡＮを介して直接的に行われる。
【００１０】
この従来技術では、ファイバチャネルにより接続されたファイルサーバと記憶装置システムとでＮＡＳが実現される。つまり、この技術では、ＳＡＮの上位システムとしてＮＡＳが構成される。
【００１１】
【発明が解決しようとする課題】
上述した従来技術によれば、ＳＡＮとＮＡＳとを併用することができる。しかし、ＮＡＳが記憶装置システムの上位装置となっているので、ＮＡＳにおけるファイルサーバの処理のオーバヘッドに、記憶装置システムの処理のオーバヘッドが重畳される。したがって、ＮＡＳ単体で用いるよりもオーバヘッドが大きくなってしまう。
【００１２】
また、ファイルの論理的な格納位置は、ファイルサーバにより決定されるが、記憶装置システム内でのファイルの物理的な格納位置は、記憶装置システムにより決定される。したがって、ファイルサーバは、記憶装置システム内でのファイルの物理的な格納位置を最適化するようなデータ配置することができず、システムの性能が制限されてしまう。
【００１３】
さらに、上述した従来技術によれば、ＮＡＳのみを利用する場合であっても記憶装置システムの他、ファイルサーバとなる計算機が必要であり、初期投資が大きくなってしまう。システムの拡張に関しても、用いられる記憶装置システムの構成により制限されてしまうという問題がある。
【００１４】
本発明の目的は、ＮＡＳとＳＡＮを混在させることができ、システム構成に自由度を有する記憶装置システムを提供することである。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の記憶装置システムは、複数のディスク装置と、計算機からブロックＩ／Ｏインタフェースによるアクセスを受けるディスク制御装置と、計算機からファイルＩ／Ｏインタフェースによるアクセスを受けるファイルサーバと、ディスク制御装置及びファイルサーバと複数のディスク装置との間に接続され、ディスク制御装置及びファイルサーバと複数のディスク装置とを接続するための接続装置とを有する。本発明の好ましい一つの態様において、ディスク制御装置及びファイルサーバは、複数のディスク装置のうち、自身に割り当てられたディスク装置をアクセスするための情報を保持する。
【００１６】
本発明の他の観点によれば、本発明の記憶装置システムは、計算機とファイバチャネルを介して接続するためのファイバチャネルコントローラを備えたディスク制御装置と、計算機とＬＡＮを介して接続するためのネットワークコントローラを備えたファイルサーバと、これらディスク制御装置及びファイルサーバにより使用され、計算機が利用するデータを格納する複数のディスク装置とを有する。記憶装置システムは、好ましくは、複数のディスク装置のディスク制御装置及びファイルサーバへの割り当てを管理する管理装置を含む。管理装置は、ディスク装置の各々について、ディスク装置をそのディスク装置が割り当てられたディスク制御装置あるいはファイルサーバと対応づける情報を保持している。管理装置は、この情報を各ディスク制御装置及びファイルサーバに通知する。各ディスク制御装置及びファイルサーバは、通知された情報に基づき自身が使用するディスク装置を認識し、これに従ってディスク装置を使用する。
【００１７】
【発明の実施の形態】
図１は、本発明の一実施形態における計算機システムの構成を示す簡略なブロック図である。
【００１８】
本実施形態において、記憶装置システム１（以下、ストレージと呼ぶ）は、ファイバチャネルにより構成されたストレージエリアネットワーク（ＳＡＮ）８を介して複数のＳＡＮクライアント１００に、また、ローカルエリアネットワーク（ＬＡＮ）９を介して複数のＮＡＳクライアント１１０に接続される。ここで、ＳＡＮクライアント１００は、パーソナルコンピュータ、あるいは一般にサーバと呼ばれるような計算機であり、ブロックＩ／Ｏインタフェースでストレージ１をアクセスする。一方、ＮＡＳクライアント１１０は、ＳＡＮクライアント１００と同様に、パーソナルコンピュータ、あるいは、サーバなどの計算機であるが、ファイルＩ／Ｏインタフェースでストレージ１をアクセスする。
【００１９】
ストレージ１は、また、管理用ＬＡＮ１３を介して管理端末１２に接続される。管理端末１２は、ユーザがストレージ１を監視し、あるいは、ストレージ１に対する各種の設定を行うために使用される。
【００２０】
ストレージ１は、複数のディスクアレイコントローラ２０、複数のファイルサーバ３０、複数のディスク装置４１、ディスクプール管理装置５、ディスクプール接続装置６１を含んで構成される。ディスクプール管理装置５は、複数のディスク装置４１の集合により構成される記憶領域を、１つの大きな記憶領域であるディスクプール４として管理する。ストレージプール４を構成するディスク装置４１は、ＪＢＯＤ（Just Bunch Of Disks）とも称される。
【００２１】
ディスクアレイコントローラ２０、ファイルサーバ３０、及びディスクプール管理装置５は、管理ネットワーク７を介して接続され、相互に通信を行うことができる。また、ディスクアレイコントローラ２０とファイルサーバ３０は、ディスクプール接続装置６１を介してディスクプール４を構成するディスク装置４１に接続される。本実施形態では、ディスクアレイコントローラ２０とディスクプール接続装置６１との間、及びファイルサーバ３０とディスクプール接続装置６１との間は、ファイバチャネルにより接続される。ファイバチャネル接続装置６１、ディスクプール管理装置５、及びディスクプール４を構成する核ディスク装置４１との間は、ファイバチャネルによるディスクプール接続ネットワークを介して接続される。
【００２２】
図２は、ストレージ１の装置構成を示す簡略化された構造図である。
【００２３】
ストレージ１は、ラック１５にディスクアレイコントローラ２０、ファイルサーバ３０、ディスクプール管理装置５、ディスクプール接続装置６１、及びＪＢＯＤ筐体１４０の各コンポーネントを収納して構成される。ラック１５は、例えば、１９インチの横幅を有しており、各コンポーネントを収納するためのスロットを有する。各スロットは、コンポーネントの厚さの単位の整数倍に相当する高さを有することが望ましい。ＪＢＯＤ筐体１４０の各々は、複数のスロットを有しており、ディスクプール４を構成するディスク装置４１を複数収納することができる。なお、すべてのコンポーネントを１台のラック１５に収納する必要はなく、複数のラック１５にコンポーネントを分散させて収納してもかまわない。
【００２４】
図３は、ディスクアレイコントローラ２０の構造を示す模式図である。
【００２５】
ディスクアレイコントローラ２０は、ディスクアレイコントローラ全体の制御を行うプロセッサ２０１、プロセッサ２０１により実行される制御プログラム、制御データなどが格納されるメモリ２０２、ディスクアレイコントローラ２０をＳＡＮ８に接続するためのファイバチャネルコントローラ２０３、ディスクプール４に接続するためのファイバチャネルコントローラ２０４、ファイバチャネルコントローラ２０３と２０４との間でデータの転送を制御するデータ転送制御コントローラ２０５、管理ネットワーク７に接続するための管理ネットワークコントローラ２０６、及び、計算機とディスク装置との間のデータ転送速度の調整、及びデータをキャッシュするために用いられるデータバッファ２０７を有する。
【００２６】
メモリ２０２には、制御プログラムとして、ディスクアレイ制御プログラム２０２０、ディスクアレイコントローラ２０が使用するディスク装置を特定するためのディスク情報をディスクプール管理装置５から取得するディスク情報取得プログラム２０２１が保持される。また、メモリ２０２には、取得したディスク情報が格納されるディスク情報管理テーブル２０２２が格納されている。
【００２７】
図４は、ファイルサーバ３０の構成を示す簡略なブロック図である。
【００２８】
ファイルサーバ３０は、ファイルサーバ３０全体の制御を行うプロセッサ３０１、プロセッサ３０１で実行される制御プログラム及び制御データが格納されるメモリ３０２、ＬＡＮ９に接続するための通信コントローラ３０３、ディスクプール４に接続するためのファイバチャネルコントローラ３０４、通信コントローラ３０３とファイバチャネルコントローラ３０４の間でデータ転送を制御するデータ転送コントローラ３０５、及び、管理ネットワーク７に接続するための管理ネットワークコントローラ３０６を備える。
【００２９】
メモリ３０２には、制御プログラムとして、ファイルサーバ制御プログラム３０２０、ディスクプール管理装置５からファイルサーバ３０が使用するディスク装置４１を特定するための情報を取得するディスク情報取得プログラム３０２１を保持している。メモリ３０２はまた、取得した使用ディスク装置の情報が格納されるディスク情報管理テーブル３０２２を保持する。さらに、メモリ３０２は、計算機とディスク装置４１との間のデータ転送速度の調整、及びファイルデータをキャッシュするためのデータバッファ３０２３を有する。
【００３０】
図５は、ディスクプール４及びディスクプール接続装置６１の構成を示す簡略なブロック図である。
【００３１】
ディスクプール４は、複数のＪＢＯＤ筐体１４０に収納された複数のディスク装置４１を有して構成される。ディスク装置４１の数は任意であり、必要に応じて、増加、減少させることができる。また、図では、ＪＢＯＤ筐体１４０が４つ示されているが、この数も任意とすることができる。ディスク装置４１は、ＪＢＯＤ筐体１４０内でループ状に接続される。
【００３２】
ディスクプール接続装置６１は、複数の接続ポート６１０、及び複数の拡張ポート６１１を有する。各接続ポート６１０には、ディスクアレイコントローラ２０、ファイルサーバ３０、及びＪＢＯＤ筐体１４０を任意の台数接続することができる。本実施形態では、必要に応じて、拡張ポート６１１に他のディスクプール接続装置を接続することで、複数台のディスクプール装置６１をカスケード形態で接続することができる。
【００３３】
ディスクプール接続装置６１を複数台カスケードに接続することで、自由にポート数を増やすことができる。これにより、ディスクアレイコントローラ２０、ファイルサーバ３０、及びＪＢＯＤ筐体１４０の接続台数や接続構成を自由に変更することが可能となる。したがって、システム構成のスケーラビリティや、システム構成の自由度が著しく向上する。
【００３４】
ディスクプール４とディスクプール接続装置６１との接続インタフェースにファイバチャネルを適用した場合、ディスクプール接続装置６１として、任意の２つの接続ポート間を接続したスターネット構成を有するスイッチ、あるいは、全ての接続ポートがループ状に接続されたハブの双方を用いることができる。ユーザは、ハブ及びスイッチを、必要とされるデータ転送帯域やコストに合わせて選択することができる。本実施形態では、ディスクプール接続装置６１がハブであるかスイッチであるかを特定せずに説明する。
【００３５】
図６は、ディスクプール管理装置５の構成を示す簡略なブロック図である。
【００３６】
ディスクプール管理装置５は、装置全体の制御を行うプロセッサ５１、プロセッサ５が実行する制御プログラム、及びプロセッサ５１により利用される制御データを格納するメモリ５２、管理ネットワーク７と接続するための管理ネットワークコントローラ５４、ファイバチャネルによりディスクプール４と接続するためのファイバチャネルコントローラ５４、及び、管理ＬＡＮ１３に接続するための通信コントローラ５５を有している。
【００３７】
メモリ５２は、制御プログラムとして、ディスクプール４を管理するためのディスクプール管理プログラム５２１、ディスクアレイコントローラ２０並びにファイルサーバ３０（以下、これらを総じて単にコントローラとも言う）を認識し、それを認証するためのコントローラ認識・認証管理プログラム５２３、及びストレージ１の管理を行うためのストレージ管理プログラム５２５を格納している。ディスクプール管理プログラム５２１は、具体的には、ディスクプール４を構成するディスク装置４１を検出し、コントローラに割り当てたディスク装置４１の排他制御を行う。
【００３８】
メモリ５２には、制御データとして、各コントローラへのディスク装置４１の割り当て状況を管理するための情報を保持するディスクプール管理テーブル５２２、コントローラ認識・認証管理プログラム５２３により検出されコントローラの管理情報を保持するコントローラ管理テーブル５２４が格納される。
【００３９】
管理ＬＡＮ１３を介してディスクプール管理装置５に接続される管理端末１２は、ユーザに対し各種情報を提示するためのディスプレイ、及びユーザからの情報の入力を受け付けるためのキーボード、マウスなどの入出力装置を備える。管理端末１２上では、ブラウザプログラムが動作している。ブラウザプログラムを介して、ディスクプール管理装置５上で動作するストレージ管理プログラム５２５によりユーザに提供される各種情報の表示、及びストレージ管理プログラム５２５への各種情報の入力が行われる。
【００４０】
図７は、ディスクプール管理プログラム５２１により実現されるディスクプールの構成認識処理の流れを示すフローチャートである。ディスクプール管理プログラム５２１は、ユーザによりストレージ１の電源が投入され、あるいは、ストレージ１がリセットされると、プロセッサ５１によりその実行が開始される。
【００４１】
プロセッサ５１は、ディスクプール管理プログラム５２１の実行を開始すると、全てのディスク装置４１がレディ状態になるまで、適当な時間ウェイトする（ステップ６０００）。
【００４２】
適当な時間ウェイトした後、プロセッサ５１は、検索する「パスＩＤ」を示す変数ｎに値“０”をセットして初期化する。パスＩＤとは、ディスク４１が接続される１つのループ又はＪＢＯＤ筐体１４０を識別するための識別子である。ここでは、パスＩＤとして、ループ又はＪＢＯＤ筐体１４０に割り当てられた番号、もしくはスイッチに接続されたループを代表するＷＷＮ（World Wide Name）を用いるものとする（ステップ６００２）。続いてプロセッサ５１は、パス上の「アドレス」を示す変数ｋに値“０”をセットして初期化する。パス上のアドレスは、各ループ、あるいはＪＢＯＤ筐体１４０内で、個々のディスク装置４１を特定するため、各ディスク装置４１に割り当てられる番号である。パスがループの場合、アドレスは、ループＩＤに相当する（ステップ６００４）。
【００４３】
次に、プロセッサ５１は、パスＩＤ＝ｎ、アドレス＝ｋの位置にディスク装置４１があると想定してディスクプール４にInquiryコマンドを発行する（ステップ６００６）。プロセッサ５１は、発行したInquiryコマンドに対してディスクプール４からの応答の有無を判別する。ディスクプール４からの応答がなければ、プロセッサ５１は、パスＩＤ＝ｎ、アドレス＝ｋの位置に該当するディスク装置が存在しないと判断し、ステップ６０１６の処理に移り、次のディスク装置４１を検索する（ステップ６００８）。
【００４４】
ディスクプール４からの応答があった場合、プロセッサ５１は、パスＩＤ＝ｎ、アドレス＝ｋの位置にあるディスク装置４１から、その容量等の情報を取得する（ステップ６０１０）。続いて、プロセッサ５１は、ステップ６０１０で容量等の情報を得たディスク装置４１に対してリードコマンドを発行する。ここで発行されるリードコマンドは、ディスク装置４１の特定の領域を読み出すためのコマンドである。特定の領域には、このディスク装置４１を使用しているコントローラに関する情報（以下、コントローラ情報と呼ぶ）が格納されている。コントローラ情報としては、例えば、システム内でコントローラに割り当てられるコントローラ番号、コントローラの製造時にコントローラに付与されるコントローラ識別番号、コントローラ種などの情報が用いられる。プロセッサ５１は、リードコマンドに対する応答として、ディスク装置４１を使用しているコントローラ情報を取得することができる。この特定の領域にコントローラ情報が記録されていなかった場合、プロセッサ５１は、ディスク装置４１が未使用であると判定する（ステップ６０１２）。
【００４５】
プロセッサ５１は、ディスク装置の容量、コントローラ情報（未使用である場合、それを示す情報）等を取得すると、それらの情報をパスＩＤ、アドレスと共にディスクプール管理テーブル５２２に登録する（ステップ６０１４）。
【００４６】
ステップ６０１６で、プロセッサ５１は、変数ｋに１を加算する。続いて、ｋの値が１パス内の最大のアドレス値を越えたか調べる。ｋが、最大アドレス値内であれば、ステップ６００６以降の処理を繰り返し、当該パスに接続された他のディスク装置４１の検査を行う（ステップ６０１８）。
【００４７】
ｋの値が１パス内の最大アドレス値を越え、パス内のすべてのアドレスについてディスク装置４１の検査を終えると、プロセッサ５１は、次のパスについて検査を続けるために、変数ｎに１を加算する（ステップ６０２０）。続いて、ｎの値が接続可能なパスのパスＩＤの最大値を越えていないか判別する。パスＩＤの最大値を超えていない場合には、ステップ６００４以降の処理が繰り返され、新たなパスＩＤのパスについてディスク装置４１の検査が行われる（ステップ６０２２）。
【００４８】
ステップ６０２２において、ｎの値がパスＩＤの最大値を超えていれば、すべてのパスについて検査を終えたことになり、プロセッサ５１は、初期設定処理を終了する。
【００４９】
本実施形態では、パスＩＤとアドレスが一定の範囲の番号であるものとし、変数ｎ、ｋを“０”から昇順に加算していき、全てのパスＩＤ、及び全てのアドレスを検査している。しかし、ディスク装置４１が存在すると予想される位置をすべて過不足なく検索することができれば、別の方法で検査を実施してもよい。
【００５０】
図８は、ディスクプール管理テーブル５２２の構成を概念的に示すテーブル構成図である。
【００５１】
ディスクプール管理テーブル５２２には、初期設定処理で検出されたディスク装置ごとに、そのパスＩＤ５２０１、アドレス５２０２、ディスク容量５２０３、使用コントローラ識別番号５２０４、及びディスク装置の状態５２０５等の情報が格納される。
【００５２】
使用コントローラ識別番号５２０４は、パスＩＤ５２０１及びアドレス５２０２で特定されるディスク装置４１が割り当てられたコントローラの識別番号である。ディスク装置４１がいずれのコントローラにも割り当てられていない未使用の状態にあるときは、ブランク、あるいは未使用を示す情報が設定される。
【００５３】
図９は、コントローラ認識・認証プログラム５２３により実現されるコントローラの認識処理の流れを示すフローチャートである。コントローラの認識処理は、ディスクプールの構成認識処理に続けて行われる。また、コントローラの認識処理は、新たにコントローラが増設されたような場合にも実施されてもよい。各コントローラには、あらかじめ管理のためにアドレスが割り当てられている。このアドレスとしては、たとえば、管理ネットワークが一般的なＬＡＮの場合、ＭＡＣアドレスやＩＰアドレスを用いることができる。
【００５４】
プロセッサ５１は、コントローラ認識・認証プログラム５２３による処理を開始すると、全てのコントローラがレディ状態になるまでの適当な時間ウェイトする（ステップ６１００）。適当な時間ウェイトした後、プロセッサ５１は、アドレスを指定してコントローラに問い合わせを発行する。この問い合わせは、管理ネットワーク７を介して行われる（ステップ６１０２）。
【００５５】
プロセッサ５１は、問い合わせに対する応答の有無を判別する（ステップ６１０４）。問い合わせに対し、コントローラから応答があると、プロセッサ５１は、そのコントローラについて、コントローラ番号、コントローラ種類、及びその状態の各情報を取得する。ここで取得されるコントローラ種類の情報は、そのコントローラがディスクアレイコントローラ２０であるかファイルサーバ３０であるかを示す情報である。また、状態に関する情報は、そのコントローラが正常状態であるのか、あるいは、障害や異常が発生しているのかといった装置の状態を表す情報である（ステップ６１０６）。続いて、プロセッサ５１は、取得した情報をコントローラ管理テーブル５２４に登録する（ステップ６１０８）。
【００５６】
最後に、プロセッサ５１は、すべてのコントローラの検索を終えたかどうか判別する。この判別は、例えば、予め設定されたアドレスの範囲について、その範囲内のすべてのアドレスを用いて上述した処理を行ったか否かを判断することにより実現できる。コントローラの検索が未完了であれば、ステップ６１０２以降の処理を繰り返し、次のコントローラを検索する。一方、すべてのコントローラの検索を完了すると、プロセッサ５１は、コントローラの認識処理を終了する（ステップ６１１０）。
【００５７】
ステップ６１０４においてコントローラから応答がなかった場合、プロセッサ５１は、問い合わせを行ったアドレスを持つコントローラが存在しないと判断し、ステップ６１０６、６１０８の処理をスキップし、ステップ６１１０の処理に移る。
【００５８】
なお、コントローラのアドレスは、ラック１５のスロット位置にコントローラを搭載することによって自動的に付与されるようにすることもできる。また、コントローラ番号は、システム内で唯一である必要がある。具体的には、コントローラの製造番号などのように、その装置に唯一無二な番号をコントローラ番号として用いることが好ましい。
【００５９】
図１０は、コントローラ管理テーブル５２４の構成を概念的に示すテーブル構成図である。
【００６０】
コントローラ管理テーブル５２４には、検出されたコントローラの管理ネットワーク７におけるアドレス５２４１、及びステップ６１０６で取得されたコントローラ番号５２４２、コントローラ種類５２４３、並びに状態５２４４等の情報が格納される。
【００６１】
ストレージ１の電源の投入を契機に、各コントローラ（ディスクアレイコントローラ２０、ファイルサーバ３０）は、制御プログラム（ディスクアレイ制御プログラム２０２０、ファイルサーバ制御プログラム３０２０）の実行を開始し、自身の初期設定を行う。
【００６２】
初期設定を終了した後、各コントローラは、ディスク情報取得プログラム２０２１、３０２１を起動し、自身が使用するディスク装置に関する情報の取得を行う。図１１は、このとき行われるディスク認識処理の大まかな流れを示すフローチャートである。なお、図１１では、コントローラ側での処理のフローを左側に、ディスクプール管理装置側での処理のフローを右側に示している。以下では、ディスクコントローラ２０での処理を例に説明するが、ファイルサーバ３０においても同様の処理が行われる。
【００６３】
プロセッサ２０１は、自コントローラの識別番号を取得する（ステップ６２００）。プロセッサ２０１は、取得した識別番号を用いて、ディスクプール管理装置５に対し認証の問い合わせを行う。この問い合わせは、管理ネットワーク７を経由して実施される（ステップ６２０２）。プロセッサ２０１は、問い合わせ後、ディスクプール管理装置５において認証が完了するまで処理をウェイトさせる（ステップ６２０４）。
【００６４】
問い合わせを受けたディスクプール管理装置５のプロセッサ５１は、コントローラ認識・認証プログラム５２０１を起動し、認証処理を実行する。認証処理においてプロセッサ５１は、問い合わせのあったディスクアレイコントローラ２０の情報がコントローラ管理テーブル５２４に登録されているかどうか確認し、その認証を行う（ステップ６２５１）。プロセッサ５１が他のコントローラの認識処理を実施中である場合、全てのコントローラについての処理が終了するまでこの問い合わせの処理は待たされる。問い合わせのあったディスクアレイコントローラ２０の情報がコントローラ管理テーブル５２４に登録されていることが確認できると、プロセッサ５１は、認証済みであることを示す情報を問い合わせもとのディスクアレイコントローラ２０に返送する（ステップ６２５３）。
【００６５】
認証済みであることを示す情報を受け取ったディスクアレイコントローラ２０のプロセッサ２０１は、自コントローラで使用するディスク装置４１を特定するため、自身の識別番号を含む使用ディスクの問い合わせをディスクプール管理装置５に対して送信する。この問い合わせは、管理ネットワーク７を経由して行われる（ステップ６２０６）。プロセッサ２０１は、使用ディスクの問い合わせが完了するまで処理の実行をウェイトさせる（ステップ６２０８）。
【００６６】
問い合わせを受けたプロセッサ５１は、ディスクプール管理プログラム５２１を実行し、この問い合わせを処理する。具体的にプロセッサ５１は、問い合わせに含まれる識別番号をキーとしてディスクプール管理テーブル５２２を検索し、問い合わせ元のコントローラが使用するディスク装置４１を特定する。その後、プロセッサ５１は、特定したディスク装置４１のパスＩＤ、アドレス、ディスク容量、及び状態の各情報を含む一覧リストを作成する（ステップ６２５５）。一覧リストを作成すると、プロセッサ５１は、その一覧リストを問い合わせもとのコントローラに返送する（ステップ６２５７）。
【００６７】
プロセッサ２０１は、ディスクプール管理装置５から使用ディスクの情報を一覧リストの形態で受信する（ステップ６２１０）。プロセッサ２０１は、受信した一覧リストに登録されている情報に基づいて、ディスク情報管理テーブル２０２２に使用するディスク装置４１に関する情報を登録し、処理を終了する（ステップ６２１２）。
【００６８】
使用ディスク情報を取得したディスクアレイコントローラ２０、及びファイルサーバ３０は、ディスク情報管理テーブル２０２２、３０２２に登録されたディスク装置４１が自コントローラで使用するすべてのディスク装置であると認識して、それらのディスク装置４１を使用する。このようにすることで、１つのディスクプール４を構成するディスク装置４１を各コントローラが排他的に使用することができる。
【００６９】
なお、上述した各処理のうち、ディスクプール管理装置によるディスクプールの構成認識処理と、各コントローラにおける初期化処理は、互いに同時、並行して実施することができる。一方、これらの処理の後行われるディスクプール管理装置によるコントローラの認識処理と、各コントローラによるディスク情報の取得処理とは、タイミングを合わせながら実行する必要がある。つまり、ディスクプール管理装置によるコントローラの認識処理の次に各コントローラによるディスク情報の取得処理が実施されるよう、ディスクプール装置と各コントローラは、互いに処理を待ち合わせしながら動作する。
【００７０】
図１２は、ディスクプール４を構成するディスク装置４１のコントローラへの割り当ての一例を示す模式図、図１３は、図１２に示した割り当ての様子を、コントローラ毎に論理的に整理した構成を示した図である。ここで示した例では、４０台のディスク装置４１が、それぞれ排他的に各コントローラに割り当てられている。
【００７１】
図１２において、ディスク装置４１を表すシンボル中にある“Array#”は、そのディスク装置４１が＃番目のディスクアレイコントローラ２０に割り当てられていることを示している。同様に、“FSVR#”のディスク装置４１は、＃番目のファイルサーバ３０に割り当てられていることを示している。
【００７２】
一方、図１３において、ディスク装置４１を表すシンボル中の“ｎ−ｋ”は、そのディスク装置が、パスＩＤ“ｎ”に接続されたアドレス“ｋ”のディスク装置であることを表している。
【００７３】
新しいディスク装置４１をコントローラに割り当てる場合、ユーザは、管理端末１２を用い、ディスクプール管理装置５上のストレージ管理プログラム５２５を動作させる。ストレージ管理プログラム５２５は、例えば、図１３に示すような、ディスクプール４の論理的な構成を管理端末１２のディスプレイに表示する。
【００７４】
このような画面上でユーザは、マウスを使用し、未使用を示す領域にあるディスク装置を示すアイコンをドラッグする。そして、ディスク装置４１を追加したいコントローラを示す領域にそのアイコンを移動させる。
【００７５】
管理端末１２でのユーザの操作によりディスク装置４１の割り当てについての情報を受け取ったディスクプール管理装置５は、ディスクプール管理プログラム５２１を実行して以下の処理を行う。
【００７６】
すなわち、ディスクプール管理装置５は、管理端末１２のディスプレイ上で操作の対象とされたアイコンに対応するディスク装置４１の定められた記憶領域に、そのアイコンが移動された領域に対応するコントローラの識別番号を書き込む。さらに、ディスクプール管理装置５は、そのディスク装置４１にInquiryコマンドを発行し、応答として取得した情報をディスクプール管理テーブル５２２に登録する。この後、ディスクプール管理装置５は、管理ネットワーク７を介しコントローラにディスク装置４１が追加されたことを通知する。
【００７７】
ディスクプール管理装置５からディスク装置４１の追加を知らせる通知を受信すると、コントローラは、先に説明したディスク情報取得処理を実行し、追加されたディスク装置４１を特定し、それを使用することができるようになる。
【００７８】
以上説明したようにストレージを構成することで、１台のストレージに複数のディスクアレイコントローラ及び複数のファイルサーバを混在させ、ＳＡＮとＮＡＳとが混在したシステムを構築することができる。ストレージの管理は、管理端末から集中的に行うことが可能であり、管理の容易性が向上して管理コストを低減することができる。
【００７９】
ＳＡＮやＮＡＳを使用する場合、ＳＡＮに接続された記憶装置を論理的にまとめて１台の大容量の記憶装置として扱うよりも、複数の容量の小さな記憶装置の集合体と考えた方が使いやすいことも多い。たとえば、会社の各部門ごとに、１台のファイルサーバを使用する場合、各計算機（サーバ）毎にディスクアレイを独立に割り当てたい場合などがある。また、インターネットデータセンタ（ＩＤＣ）におけるレンタルサーバやホスティングサービスと呼ばれる形態を構築する場合、及びストレージサービスプロバイダ（ＳＳＰ）と呼ばれるディスク容量をレンタルするサービスのような形態を構築する場合など、様々な場面でユーザ又は計算機毎にストレージシステムを排他的に割り当てて使用したい場合がある。以下に、このように１つのストレージシステムを論理的に分割して、それぞれの部分を排他的にユーザに割り当てる運用形態の一例について説明する。
【００８０】
図１４は、ストレージプール４を論理的に分割して運用する際の運用形態の一例を示す模式図である。
【００８１】
１６０〜１６３は、ストレージプール４を論理的に分割して得られる１つのディスクアレイをディスクアレイコントローラ２０で制御する仮想ディスクアレイ、１７０〜１７２は、ストレージプール４を論理的に分割して得られる１つのディスクアレイをファイルサーバ３０で制御する仮想ファイルサーバである。
【００８２】
ディスク装置４１の割り当て、及び排他管理はディスクプール管理装置５で行われる。しかし、ひとたびディスク装置４１がコントローラに割り当てられると、コントローラは、従来のディスクアレイ装置及びファイルサーバ装置と同様に、割り当てられたディスク装置４１を占有することができる。
【００８３】
上述した実施形態によれば、ＳＡＮすなわちブロックＩ／Ｏインタフェースを備えるディスクアレイ、及びＮＡＳすなわちファイルＩ／Ｏインタフェースを備えるファイルサーバとの混在を実現する記憶装置システムを構築することが可能になる。
【００８４】
ファイルサーバに直接ディスクが接続されるため、ファイルサーバ利用時においても余分なオーバヘッドが発生せず、高速なファイルのアクセスが実現できる。また、ファイルサーバが直接ディスクを操作するので、ファイルの最適配置も可能となり、さらに高速なファイルアクセスを実現することが可能である。
【００８５】
また、上述した実施形態によれば、ディスクアレイコントローラ、ファイルサーバ、ディスク装置などを必要に応じ必要な台数づつ追加することが容易にできる。このため、必要な部位を逐次導入していくことが可能となり、低価格なシステムを提供でき、スケーラビリティや構成自由度に優れたストレージシステムを構築できる。
【００８６】
さらに、ＳＡＮとＮＡＳとで同一のディスクプールをシェアしながら各々が使用するディスクの排他制御を行うことができ、分散システムでありながら、集中管理を実現できるので、容易な使用を実現するとともに管理コストの低減を実現できる。
【００８７】
またさらに、複数台のＳＡＮ、ＮＡＳが各々仮想的に独立しているように見せかけることができるので、ユーザや計算機毎に独立した分散環境を集中管理の下実現できる。
【００８８】
上述した実施形態では、ストレージにディスクプール管理装置を設け、各コントローラが利用できるディスク装置の割り当て、排他利用をディスクプール管理装置で集中管理している。このような集中管理の形態に代えて、各コントローラでディスクプールの管理を分散して行うことも可能である。
【００８９】
ディスクプールの管理を分散して行う場合も第一実施形態と同様、ディスク装置の特定の領域に、そのディスク装置を使用するコントローラの識別番号が格納される。分散管理を行う場合、ディスクプール管理装置が各コントローラへのディスク装置の割り当てに先立ちこれらの情報を事前に読み出すことに代えて、すべてのコントローラがすべてのディスク装置の上述した特定の領域を検索する。各コントローラは、自身の識別番号を検出すると、そのディスク装置を自身が使用可能なディスクとし判断する。
【００９０】
新しいディスク装置を搭載する際には、各コントローラに用意したストレージ管理プログラムで、ユーザの指示の下、この識別情報を格納するようにすればよい。
【００９１】
以上のような構成とすることで、ディスクプール管理装置が不要となり、さらなる小型化、低価格化を実現することができる。
【００９２】
【発明の効果】
本発明のによれば、ＮＡＳとＳＡＮを混在させたストレージシステムを構築し、ＳＡＮとＮＡＳの統合的な管理を容易に実現することができる。
【図面の簡単な説明】
【図１】一実施形態における計算機システムの構成を示す簡略なブロック図である。
【図２】ストレージの装置構造を示す模式図である。
【図３】ディスクアレイコントローラの構成を示す簡略なブロック図である。
【図４】ファイルサーバの構成を示す簡略なブロック図である。
【図５】ディスクプール及びディスクプール接続装置の構成を示す簡略なブロック図である。
【図６】ディスクプール管理装置の構成を示す簡略なブロック図である。
【図７】ディスクプール管理プログラムにより実現されるディスクプールの構成認識処理の流れを示すフローチャートである。
【図８】ディスクプール管理テーブルの構成を概念的に示すテーブル構成図である。
【図９】コントローラ認識・認証プログラムにより実現されるコントローラの認識処理の流れを示すフローチャートである。
【図１０】コントローラ管理テーブルの構成を概念的に示すテーブル構成図である。
【図１１】ディスク認識処理の流れを示すフローチャートである。
【図１２】ディスクプールを構成するディスク装置のコントローラへの割り当ての一例を示す模式図である。
【図１３】図１２に示した割り当ての様子を、コントローラ毎に論理的に整理した構成を示した模式図である。
【図１４】ストレージプールを論理的に分割して運用する際の運用形態の一例を示す模式図である。
【符号の説明】
１…ストレージ、２０…ディスクアレイコントローラ、３０…ファイルサーバ、４…ディスクプール、４１…ディスク装置、５…ディスクプール管理装置、６１…ディスクプール接続装置、７…管理ネットワーク、８…ファイバチャネル、９…イーサネット、１００…ＳＡＮクライアント、１１０…ＮＡＳクライアント、１２…管理端末、１３…管理用ＬＡＮ、１４０…ＪＢＯＤ筐体、１５…ラック、２０２０…ディスクアレイ制御プログラム、２０２１…ディスク情報取得プログラム、２０２２…ディスク情報管理テーブル、３０２０…ファイルサーバ制御プログラム、３０２１…ディスク情報取得プログラム、３０２２…ディスク情報管理テーブル、５２１…ディスクプール管理プログラム、５２２…ディスクプール管理テーブル、５２３…コントローラ認識・認証プログラム、５２４…コントローラ管理テーブル、５２５…ストレージ管理プログラム。
【図１】
0004156817.tif 000002
【図２】
0004156817.tif 000003
【図３】
0004156817.tif 000004
【図４】
0004156817.tif 000005
【図５】
0004156817.tif 000006
【図６】
0004156817.tif 000007
【図７】
0004156817.tif 000008
【図８】
0004156817.tif 000009
【図９】
0004156817.tif 000010
【図１０】
0004156817.tif 000011
【図１１】
0004156817.tif 000012
【図１２】
0004156817.tif 000013
【図１３】
0004156817.tif 000014
【図１４】
0004156817.tif 000015