(57)【要約】      （修正有）【課題】従来のＮＡＳは、ＴＣＰ／ＩＰ通信機能やファイルシステム機能を持たないストレージシステムに情報処理システムを接続することで実現していたため、設置スペースや通信制御機器が余計に必要であった。【解決手段】情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置であって、前記チャネル制御部が、あるファイルに対する前記データ入出力要求を前記情報処理装置から受信した場合に、そのファイルに対する排他制御を実行する排他制御手段を備える。【選択図】      図１
2004227097.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置であって、
前記チャネル制御部が、あるファイルに対する前記データ入出力要求を前記情報処理装置から受信した場合に、そのファイルに対する排他制御を実行する排他制御手段
を備えることを特徴とする記憶デバイス制御装置。
【請求項２】
前記データ入出力要求は少なくとも２種以上のネットワークファイルシステムプロトコルに従って送信され、あるネットワークファイルシステムプロトコルに従って送信されてくる前記データ入出力要求を受け付けて前記排他制御を実行中に、他のネットワークファイルシステムプロトコルに従って送信されてくる前記データ入出力要求を受け付けた場合に、当該データ入出力要求についても前記排他制御の効果を反映させることを特徴とする請求項１に記載の記憶デバイス制御装置。
【請求項３】
前記記憶デバイスの記憶領域は、この記憶領域上に論理的に設定された論理ボリュームを単位として管理され、
前記Ｉ／Ｏプロセッサは、前記ファイルに対する排他制御に対応して前記論理ボリュームに対する排他制御を実行することを特徴とする請求項１に記載の記憶デバイス制御装置。
【請求項４】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置であって、
前記情報処理装置から、あるファイルについての前記記憶デバイスの記憶領域上の記憶位置を特定する情報のリクエストを受信して、前記情報を前記情報処理装置に送信する手段と、
前記情報処理装置から前記情報に基づいて生成されたブロック単位でのデータ読み出し要求を受信して、これに対応するＩ／Ｏ要求を前記記憶デバイスに対して出力する手段と、
前記記憶デバイスから読み出したデータを前記情報処理装置に送信する手段とを備えることを特徴とする記憶デバイス制御装置。
【請求項５】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置であって、
前記情報処理装置から、あるファイルについての前記記憶デバイスの記憶領域上の記憶位置を特定する情報のリクエストを受信して、前記情報を前記情報処理装置に送信する手段と、
前記情報処理装置から前記情報に基づいて生成されたブロック単位でのデータ書き込み要求及び書き込みデータを受信して、これに対応するＩ／Ｏ要求及び前記書き込みデータを前記記憶デバイスに対して出力する手段と
を備えることを特徴とする記憶デバイス制御装置。
【請求項６】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有する複数のチャネル制御部を備える記憶デバイス制御装置であって、
前記記憶デバイスの記憶領域上に論理的に設定された論理ボリュームのうち１以上の論理ボリュームを、前記各チャネル制御部からアクセス可能な共有の論理ボリュームに設定する手段と、
前記共有の論理ボリュームに記憶された、ある前記チャネル制御部の処理を他の前記チャネル制御部にフェイルオーバさせるための前記各チャネル制御部の引き継ぎ情報に基づいて前記フェイルオーバを実行する手段と
を備えることを特徴とする記憶デバイス制御装置。
【請求項７】
前記フェイルオーバの実行は、
前記情報処理装置から前記フェイルオーバの実行要求を受信した場合、又は前記あるチャネル制御部に障害が発生した場合
に行われることを特徴とする請求項６に記載の記憶デバイス制御装置。
【請求項８】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置であって、
前記ファイルアクセス処理部はアクセス可能な前記情報処理装置の識別情報を記憶し、前記データ入出力要求が、前記識別情報が記憶されている前記情報処理装置から送信されたものである場合にのみそのデータ入出力要求を受け付ける
ことを特徴とする記憶デバイス制御装置。
【請求項９】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置の制御方法であって、
前記チャネル制御部が、あるファイルに対する前記データ入出力要求を前記情報処理装置から受信するステップと、
前記ファイルに対する排他制御を実行するステップと
を備えることを特徴とする記憶デバイス制御装置の制御方法。
【請求項１０】
前記データ入出力要求は少なくとも２種以上のネットワークファイルシステムプロトコルに従って送信され、あるネットワークファイルシステムプロトコルに従って送信されてくる前記データ入出力要求を受け付けて前記排他制御を実行中に、他のネットワークファイルシステムプロトコルに従って送信されてくる前記データ入出力要求を受け付けた場合に、当該データ入出力要求についても前記排他制御の効果を反映させることを特徴とする請求項９に記載の記憶デバイス制御装置の制御方法。
【請求項１１】
前記記憶デバイスの記憶領域は、この記憶領域上に論理的に設定された論理ボリュームを単位として管理され、
前記Ｉ／Ｏプロセッサは、前記ファイルに対する排他制御に対応して前記論理ボリュームに対する排他制御を実行することを特徴とする請求項９に記載の記憶デバイス制御装置の制御方法。
【請求項１２】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部と、
前記情報処理装置から送信されるブロック単位でのデータ読み出し要求を受信して、これに対応するＩ／Ｏ要求を前記記憶デバイスに対して出力する手段と
を備える記憶デバイス制御装置の制御方法であって、
前記情報処理装置から、あるファイルについての前記記憶デバイスの記憶領域上の記憶位置を特定する情報のリクエストを受信して、前記情報を前記情報処理装置に送信するステップと、
前記情報処理装置から前記情報に基づいて生成されたブロック単位でのデータ読み出し要求を受信するステップと、
前記データ読み出し要求に対応するＩ／Ｏ要求を前記記憶デバイスに対して出力するステップと、
前記記憶デバイスから読み出したデータを前記情報処理装置に送信するステップと
を備えることを特徴とする記憶デバイス制御装置の制御方法。
【請求項１３】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部と、
前記情報処理装置から送信されるブロック単位でのデータ書き込み要求を受信して、これに対応するＩ／Ｏ要求を前記記憶デバイスに対して出力する手段と
を備える記憶デバイス制御装置の制御方法であって、
前記情報処理装置から、あるファイルについての前記記憶デバイスの記憶領域上の記憶位置を特定する情報のリクエストを受信して、前記情報を前記情報処理装置に送信するステップと、
前記情報処理装置から前記情報に基づいて生成されたブロック単位でのデータ書き込み要求及び書き込みデータを受信するステップと、
前記データ書き込み要求に対応するＩ／Ｏ要求及び前記書き込みデータを前記記憶デバイスに対して出力するステップと
を備えることを特徴とする記憶デバイス制御装置の制御方法。
【請求項１４】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有する複数のチャネル制御部を備える記憶デバイス制御装置の制御方法であって、
前記記憶デバイスの記憶領域上に論理的に設定された論理ボリュームのうち１以上の論理ボリュームを、前記各チャネル制御部からアクセス可能な共有の論理ボリュームに設定するステップと、
前記共有の論理ボリュームに記憶された、ある前記チャネル制御部の処理を他の前記チャネル制御部にフェイルオーバさせるための前記各チャネル制御部の引き継ぎ情報に基づいて前記フェイルオーバを実行するステップと
を備えることを特徴とする記憶デバイス制御装置の制御方法。
【請求項１５】
前記フェイルオーバの実行は、
前記情報処理装置から前記フェイルオーバの実行要求を受信した場合、又は前記あるチャネル制御部に障害が発生した場合
に行われることを特徴とする請求項１４に記載の記憶デバイス制御装置の制御方法。
【請求項１６】
情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置の制御方法であって、
前記ファイルアクセス処理部が、アクセス可能な前記情報処理装置の識別情報を記憶するステップと、
前記データ入出力要求が、前記識別情報が記憶されている前記情報処理装置から送信されたものである場合にのみそのデータ入出力要求を受け付けるステップと
を備えることを特徴とする記憶デバイス制御装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶デバイス制御装置、及びデバイス制御装置の制御方法に関する。
【０００２】
【従来の技術】
近年コンピュータシステムで取り扱われるデータ量が急激に増加している。このようなデータを管理するためのストレージシステムとして、最近ではミッドレンジクラスやエンタープライズクラスと呼ばれるような、巨大な記憶資源を提供するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）方式で管理された大規模なストレージシステムが注目されている。また、かかる膨大なデータを効率よく利用し管理するために、ディスクアレイ装置等のストレージシステムと情報処理装置とを専用のネットワーク（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、以下ＳＡＮと記す）で接続し、ストレージシステムへの高速かつ大量なアクセスを実現する技術が開発されている。
一方、ストレージシステムと情報処理装置とをＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコル等を用いたネットワークで相互に接続し、情報処理装置からのファイルレベルでのアクセスを実現するＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）と呼ばれるストレージシステムが開発されている。
【０００３】
【特許文献１】
特開２００２−３５１７０３号公報
【０００４】
【発明が解決しようとする課題】
しかしながら従来のＮＡＳは、ＴＣＰ／ＩＰ通信機能及びファイルシステム機能を持たないストレージシステムに、ＴＣＰ／ＩＰ通信機能及びファイルシステム機能を持った情報処理装置を接続させることにより実現されていた。そのため、上記接続される情報処理装置の設置スペースが必要であった。また上記情報処理装置とストレージシステムとの間は、高速に通信を行う必要性からＳＡＮで接続されていることが多く、そのための通信制御機器や通信制御機能を備える必要もあった。
本発明は上記課題を鑑みてなされたものであり、記憶デバイス制御装置、及びデバイス制御装置の制御方法を提供することを主たる目的とする。
【０００５】
【課題を解決するための手段】
上記課題を解決するために、本発明に係る記憶デバイス制御装置は、情報処理装置から送信されるファイル単位でのデータ入出力要求をネットワークを通じて受信するファイルアクセス処理部と、記憶デバイスに対する前記データ入出力要求に対応するＩ／Ｏ要求を出力するＩ／Ｏプロセッサとが形成された回路基板を有するチャネル制御部を備える記憶デバイス制御装置であって、前記チャネル制御部が、あるファイルに対する前記データ入出力要求を前記情報処理装置から受信した場合に、そのファイルに対する排他制御を実行する排他制御手段を備える。
【０００６】
なお、前記情報処理装置とは、前記構成の前記記憶デバイス制御装置を備えて構成されるストレージシステムにＬＡＮやＳＡＮを介してアクセスする、例えば、パーソナルコンピュータやメインフレームコンピュータである。ファイルアクセス処理部の機能はＣＰＵ上で実行されるオペレーティングシステムおよびこのオペレーティングシステム上で動作する例えばＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等のソフトウエアによって提供される。記憶デバイスは例えばハードディスク装置などのディスクドライブである。Ｉ／Ｏプロセッサは例えばファイルアクセス処理部のハードウエア要素である前記ＣＰＵとは独立したＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）をハードウエア要素とし、ファイルアクセス処理部とディスク制御部との間の通信を制御する。ディスク制御部は、記憶デバイスに対してデータの書き込みや読み出しを行う。
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
まず、本実施の形態に係るストレージシステム６００の全体構成を示すブロック図を図１に示す。
【０００８】
＝＝＝全体構成例＝＝＝
ストレージシステム６００は、記憶デバイス制御装置１００と記憶デバイス３００とを備えている。記憶デバイス制御装置１００は、情報処理装置２００から受信したコマンドに従って記憶デバイス３００に対する制御を行う。例えば情報処理装置２００からデータの入出力要求を受信して、記憶デバイス３００に記憶されているデータの入出力のための処理を行う。データは、記憶デバイス３００が備えるディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）（以下、ＬＵと記す）に記憶されている。また記憶デバイス制御装置１００は、情報処理装置２００との間で、ストレージシステム６００を管理するための各種コマンドの授受も行う。情報処理装置２００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリを備えたコンピュータである。情報処理装置２００が備えるＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。情報処理装置２００は、例えばパーソナルコンピュータやワークステーションであることもあるし、メインフレームコンピュータであることもある。
【０００９】
図１において、情報処理装置１乃至３（２００）は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）４００を介して記憶デバイス制御装置１００と接続されている。ＬＡＮ４００は、インターネットとすることもできるし、専用のネットワークとすることもできる。ＬＡＮ４００を介して行われる情報処理装置１乃至３（２００）と記憶デバイス制御装置１００との間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。情報処理装置１乃至３（２００）からは、ストレージシステム６００に対して、ファイル名指定によるデータアクセス要求（ファイル単位でのデータ入出力要求。以下、ファイルアクセス要求と記す）が送信される。
【００１０】
ＬＡＮ４００にはバックアップデバイス９１０が接続されている。バックアップデバイス９１０は具体的にはＭＯやＣＤ−Ｒ、ＤＶＤ−ＲＡＭなどのディスク系デバイス、ＤＡＴテープ、カセットテープ、オープンテープ、カートリッジテープなどのテープ系デバイスである。バックアップデバイス９１０は、ＬＡＮ４００を介して記憶デバイス制御装置１００との間で通信を行うことにより、記憶デバイス３００に記憶されているデータのバックアップデータを記憶する。またバックアップデバイス９１０は情報処理装置１（２００）と接続されるようにすることもできる。この場合は情報処理装置１（２００）を介して記憶デバイス３００に記憶されているデータのバックアップデータを取得するようにする。
【００１１】
記憶デバイス制御装置１００は、チャネル制御部１乃至４（１１０）を備える。記憶デバイス制御装置１００は、チャネル制御部１乃至４（１１０）によりＬＡＮ４００を介して情報処理装置１乃至３（２００）やバックアップデバイス９１０との間で通信を行う。チャネル制御部１乃至４（１１０）は、情報処理装置１乃至３（２００）からのファイルアクセス要求を個々に受け付ける。すなわち、チャネル制御部１乃至４（１１０）には、個々にＬＡＮ４００上のネットワークアドレス（例えば、ＩＰアドレス）が割り当てられていてそれぞれが個別にＮＡＳとして振る舞い、個々のＮＡＳがあたかも独立したＮＡＳが存在するかのようにＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供することができる。以下、チャネル制御部１乃至４（１１０）をＣＨＮと記す。このように１台のストレージシステム６００に個別にＮＡＳとしてのサービスを提供するチャネル制御部１乃至４（１１０）を備えるように構成したことで、従来、独立したコンピュータで個々に運用されていたＮＡＳサーバが一台のストレージシステム６００に集約される。そして、これによりストレージシステム６００の統括的な管理が可能となり、各種設定・制御や障害管理、バージョン管理といった保守業務の効率化が図られる。
【００１２】
なお、本実施の形態に係る記憶デバイス制御装置１００のチャネル制御部１乃至４（１１０）は、後述するように、一体的にユニット化された回路基板上に形成されたハードウエア及びこのハードウエアにより実行されるオペレーティングシステム（以下、ＯＳと記す）やこのＯＳ上で動作するアプリケーションプログラムなどのソフトウエアにより実現される。このように本実施例のストレージシステム６００では、従来ハードウエアの一部として実装されてきた機能がソフトウエアにより実現されている。このため、本実施例のストレージシステム６００では柔軟性に富んだシステム運用が可能となり、多様で変化の激しいユーザニーズによりきめ細かなサービスを提供することが可能となる。
【００１３】
情報処理装置３乃至４（２００）はＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５００を介して記憶デバイス制御装置１００と接続されている。ＳＡＮ５００は、記憶デバイス３００が提供する記憶領域におけるデータの管理単位であるブロックを単位として情報処理装置３乃至４（２００）との間でデータの授受を行うためのネットワークである。ＳＡＮ５００を介して行われる情報処理装置３乃至４（２００）と記憶デバイス制御装置１００との間の通信は、一般にファイバチャネルプロトコルに従って行われる。情報処理装置３乃至４（２００）からは、ストレージシステム６００に対して、ファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求（以下、ブロックアクセス要求と記す）が送信される。
ＳＡＮ５００にはＳＡＮ対応のバックアップデバイス９００が接続されている。ＳＡＮ対応バックアップデバイス９００は、ＳＡＮ５００を介して記憶デバイス制御装置１００との間で通信を行うことにより、記憶デバイス３００に記憶されているデータのバックアップデータを記憶する。
【００１４】
記憶デバイス制御装置１００は、チャネル制御部５乃至６（１１０）を備える。記憶デバイス制御装置１００は、チャネル制御部５乃至６（１１０）によりＳＡＮ５００を介して情報処理装置３乃至４（２００）及びＳＡＮ対応バックアップデバイス９００との間の通信を行う。以下、チャネル制御部５乃至６（１１０）をＣＨＦと記す。
また情報処理装置５（２００）は、ＬＡＮ４００やＳＡＮ５００等のネットワークを介さずに記憶デバイス制御装置１００と接続されている。情報処理装置５（２００）としては例えばメインフレームコンピュータとすることができる。情報処理装置５（２００）と記憶デバイス制御装置１００との間の通信は、例えばＦＩＣＯＮ（Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｏｎ）（登録商標）やＥＳＣＯＮ（Ｅｎｔｅｒｐｒｉｓｅ  ＳｙｓｔｅｍＣｏｎｎｅｃｔｉｏｎ）  （登録商標）、ＡＣＯＮＡＲＣ（Ａｄｖａｎｃｅｄ  Ｃｏｎｎｅｃｔｉｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（登録商標）、ＦＩＢＡＲＣ（Ｆｉｂｒｅ  Ｃｏｎｎｅｃｔｉｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（登録商標）などの通信プロトコルに従って行われる。情報処理装置５（２００）からは、ストレージシステム６００に対して、これらの通信プロトコルに従ってブロックアクセス要求が送信される。
記憶デバイス制御装置１００は、チャネル制御部７乃至８（１１０）により情報処理装置５（２００）との間で通信を行う。以下、チャネル制御部７乃至８（１１０）をＣＨＡと記す。
【００１５】
ＳＡＮ５００にはストレージシステム６００の設置場所（プライマリサイト）とは遠隔した場所（セカンダリサイト）に設置される他のストレージシステム６１０が接続している。ストレージシステム６１０は、後述するレプリケーション又はリモートコピーの機能におけるデータの複製先の装置として利用される。なお、ストレージシステム６１０はＳＡＮ５００以外にもＡＴＭなどの通信回線によりストレージシステム６００に接続していることもある。この場合には例えばチャネル制御部１１０として上記通信回線を利用するためのインタフェース（チャネルエクステンダ）を備えるチャネル制御部１１０が採用される。
【００１６】
本実施例によれば、ストレージシステム６００内にＣＨＮ１１０、ＣＨＦ１１０、ＣＨＡ１１０を混在させて装着させることにより、異種ネットワークに接続されるストレージシステムを実現できる。具体的には、ストレージシステム６００は、ＣＨＮ１１０を用いてＬＡＮ１４０に接続し、かつＣＨＦ１１０を用いてＳＡＮ５００に接続するという、ＳＡＮ−ＮＡＳ統合ストレージシステムである。
【００１７】
＝＝＝記憶デバイス＝＝＝
記憶デバイス３００は多数のディスクドライブ（物理ディスク）を備えており、情報処理装置２００に対して記憶領域を提供する。データは、ディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域であるＬＵに記憶されている。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。なお、記憶デバイス３００は例えば複数のディスクドライブによりディスクアレイを構成するようにすることもできる。この場合、情報処理装置２００に対して提供される記憶領域は、ＲＡＩＤにより管理された複数のディスクドライブにより提供されるようにすることもできる。記憶デバイス制御装置１００と記憶デバイス３００との間は図１のように直接に接続される形態とすることもできるし、ネットワークを介して接続するようにすることもできる。さらに記憶デバイス３００は記憶デバイス制御装置１００と一体として構成されることもできる。
【００１８】
記憶デバイス３００に設定されるＬＵには、情報処理装置２００からアクセス可能なユーザＬＵや、チャネル制御部１１０の制御のために使用されるシステムＬＵ等がある。システムＬＵにはＣＨＮ１１０で実行されるオペレーティングシステムも格納される。また各ＬＵにはチャネル制御部１１０が対応付けられている。これによりチャネル制御部１１０毎にアクセス可能なＬＵが割り当てられている。また上記対応付けは、複数のチャネル制御部１１０で一つのＬＵを共有するようにすることもできる。なお以下において、ユーザＬＵやシステムＬＵをユーザディスク、システムディスク等とも記す。また、複数のチャネル制御部１１０で共有されるＬＵを共有ＬＵあるいは共有ディスクと記す。
【００１９】
＝＝＝記憶デバイス制御装置＝＝＝
記憶デバイス制御装置１００はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０、管理端末１６０、接続部１５０を備える。
【００２０】
チャネル制御部１１０は情報処理装置２００との間で通信を行うための通信インタフェースを備え、情報処理装置２００との間でデータ入出力コマンド等を授受する機能を備える。例えばＣＨＮ１１０は情報処理装置１乃至３（２００）からのファイルアクセス要求を受け付ける。これによりストレージシステム６００はＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供することができる。またＣＨＦ１１０は情報処理装置３乃至４（２００）からのファイバチャネルプロトコルに従ったブロックアクセス要求を受け付ける。これによりストレージシステム６００は高速アクセス可能なデータ記憶サービスを情報処理装置３乃至４（２００）に対して提供することができる。またＣＨＡ１１０は情報処理装置５（２００）からのＦＩＣＯＮやＥＳＣＯＮ、ＡＣＯＮＡＲＣ、ＦＩＢＡＲＣ等のプロトコルに従ったブロックアクセス要求を受け付ける。これによりストレージシステム６００は情報処理装置５（２００）のようなメインフレームコンピュータに対してもデータ記憶サービスを提供することができる。
【００２１】
各チャネル制御部１１０は管理端末１６０と共に内部ＬＡＮ１５１で接続されている。これによりチャネル制御部１１０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。チャネル制御部１１０の構成については後述する。
【００２２】
接続部１５０はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０を相互に接続する。チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０間でのデータやコマンドの授受は接続部１５０を介することにより行われる。接続部１５０は例えば高速スイッチングによりデータ伝送を行う超高速クロスバスイッチなどの高速バスで構成される。チャネル制御部１１０同士が高速バスで接続されていることで、個々のコンピュータ上で動作するＮＡＳサーバがＬＡＮを通じて接続する従来の構成に比べてチャネル制御部１１０間の通信パフォーマンスが大幅に向上している。またこれにより高速なファイル共有機能や高速フェイルオーバなどが可能となる。
【００２３】
共有メモリ１２０及びキャッシュメモリ１３０は、チャネル制御部１１０、ディスク制御部１４０により共有される記憶メモリである。共有メモリ１２０は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ１３０は主にデータを記憶するために利用される。
例えば、あるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが書き込みコマンドであった場合には、当該チャネル制御部１１０は書き込みコマンドを共有メモリ１２０に書き込むと共に、情報処理装置２００から受信した書き込みデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は共有メモリ１２０を監視しており、共有メモリ１２０に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ１３０から書き込みデータを読み出して記憶デバイス３００に書き込む。
【００２４】
またあるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが読み出しコマンドであった場合には、当該チャネル制御部１１０は読み出しコマンドを共有メモリ１２０に書き込むと共に、読み出し対象となるデータがキャッシュメモリ１３０に存在するかどうかを調べる。ここでキャッシュメモリ１３０に存在すれば、チャネル制御部１１０はそのデータを情報処理装置２００に送信する。一方、読みだし対象となるデータがキャッシュメモリ１３０に存在しない場合には、共有メモリ１２０を監視することにより読み出しコマンドが共有メモリ１２０に書き込まれたことを検出したディスク制御部１４０が、記憶デバイス３００から読みだし対象となるデータを読み出してこれをキャッシュメモリ１３０に書き込むと共に、その旨を共有メモリ１２０に書き込む。そして、チャネル制御部１１０は共有メモリ１２０を監視することにより読みだし対象となるデータがキャッシュメモリ１３０に書き込まれたことを検出すると、そのデータを情報処理装置２００に送信する。
【００２５】
なお、このようにチャネル制御部１１０からディスク制御部１４０に対するデータの書き込みや読み出しの指示を共有メモリ１２０を介在させて間接に行う構成の他、例えばチャネル制御部１１０からディスク制御部１４０に対してデータの書き込みや読み出しの指示を共有メモリ１２０を介さずに直接に行う構成とすることもできる。
【００２６】
ディスク制御部１４０は記憶デバイス３００の制御を行う。例えば上述のように、チャネル制御部１１０が情報処理装置２００から受信したデータ書き込みコマンドに従って記憶デバイス３００へデータの書き込みを行う。また、チャネル制御部１１０により送信された論理アドレス指定によるＬＵへのデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する。記憶デバイス３００における物理ディスクがＲＡＩＤにより管理されている場合には、ＲＡＩＤ構成に従ったデータのアクセスを行う。またディスク制御部１４０は、記憶デバイス３００に記憶されたデータの複製管理の制御やバックアップ制御を行う。さらにディスク制御部１４０は、災害発生時のデータ消失防止（ディザスタリカバリ）などを目的としてプライマリサイトのストレージシステム６００のデータの複製をセカンダリサイトに設置された他のストレージシステム６１０にも記憶する制御（レプリケーション機能、又はリモートコピー機能）なども行う。
【００２７】
各ディスク制御部１４０は管理端末１６０と共に内部ＬＡＮ１５１で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部１４０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。ディスク制御部１４０の構成については後述する。
【００２８】
本実施例においては、共有メモリ１２０及びキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０に対して独立に設けられていることについて記載したが、本実施例はこの場合に限られるものでなく、共有メモリ１２０又はキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０の各々に分散されて設けられることも好ましい。この場合、接続部１５０は、分散された共有メモリ又はキャッシュメモリを有するチャネル制御部１１０及びディスク制御部１４０を相互に接続させることになる。
【００２９】
＝＝＝管理端末＝＝＝
管理端末１６０はストレージシステム６００を保守・管理するためのコンピュータである。管理端末１６０を操作することにより、例えば記憶デバイス３００内の物理ディスク構成の設定や、ＬＵの設定、チャネル制御部１１０において実行されるマイクロプログラムのインストール等を行うことができる。ここで、記憶デバイス３００内の物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、ＲＡＩＤ構成の変更（ＲＡＩＤ１からＲＡＩＤ５への変更等）等を行うことができる。さらに管理端末１６０からは、ストレージシステム６００の動作状態の確認や故障部位の特定、チャネル制御部１１０で実行されるオペレーティングシステムのインストール等の作業を行うこともできる。また管理端末１６０はＬＡＮや電話回線等で外部保守センタと接続されており、管理端末１６０を利用してストレージシステム６００の障害監視を行ったり、障害が発生した場合に迅速に対応することも可能である。障害の発生は例えばＯＳやアプリケーションプログラム、ドライバソフトウエアなどから通知される。この通知はＨＴＴＰプロトコルやＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）、電子メールなどにより行われる。これらの設定や制御は、管理端末１６０で動作するＷｅｂサーバが提供するＷｅｂページをユーザインタフェースとしてオペレータなどにより行われる。オペレータ等は、管理端末１６０を操作して障害監視する対象や内容の設定、障害通知先の設定などを行うこともできる。
【００３０】
管理端末１６０は記憶デバイス制御装置１００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末１６０は、記憶デバイス制御装置１００及び記憶デバイス３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００３１】
管理端末１６０の構成を示すブロック図を図２に示す。
管理端末１６０は、ＣＰＵ１６１、メモリ１６２、ポート１６３、記録媒体読取装置１６４、入力装置１６５、出力装置１６６、記憶装置１６８を備える。
ＣＰＵ１６１は管理端末１６０の全体の制御を司るもので、メモリ１６２に格納されたプログラム１６２ｃを実行することにより上記Ｗｅｂサーバとしての機能等を実現する。メモリ１６２には、物理ディスク管理テーブル１６２ａとＬＵ管理テーブル１６２ｂとプログラム１６２ｃとが記憶されている。
【００３２】
物理ディスク管理テーブル１６２ａは、記憶デバイス３００に備えられる物理ディスク（ディスクドライブ）を管理するためのテーブルである。物理ディスク管理テーブル１６２ａを図３に示す。図３においては、記憶デバイス３００が備える多数の物理ディスクのうち、ディスク番号＃００１乃至＃００６までが示されている。それぞれの物理ディスクに対して、容量、ＲＡＩＤ構成、使用状況が示されている。
ＬＵ管理テーブル１６２ｂは、上記物理ディスク上に論理的に設定されるＬＵを管理するためのテーブルである。ＬＵ管理テーブル１６２ｂを図４に示す。図４においては、記憶デバイス３００上に設定される多数のＬＵのうち、ＬＵ番号＃１乃至＃３までが示されている。それぞれのＬＵに対して、物理ディスク番号、容量、ＲＡＩＤ構成が示されている。
【００３３】
記録媒体読取装置１６４は、記録媒体１６７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ１６２や記憶装置１６８に格納される。従って、例えば記録媒体１６７に記録されたプログラム１６２ｃを、記録媒体読取装置１６４を用いて上記記録媒体１６７から読み取って、メモリ１６２や記憶装置１６８に格納するようにすることができる。記録媒体１６７としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置１６４は管理端末１６０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置１６８は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置１６５はオペレータ等による管理端末１６０へのデータ入力等のために用いられる。入力装置１６５としては例えばキーボードやマウス等が用いられる。出力装置１６６は情報を外部に出力するための装置である。出力装置１６６としては例えばディスプレイやプリンタ等が用いられる。ポート１６３は内部ＬＡＮ１５１に接続されており、これにより管理端末１６０はチャネル制御部１１０やディスク制御部１４０等と通信を行うことができる。またポート１６３は、ＬＡＮ４００に接続するようにすることもできるし、電話回線に接続するようにすることもできる。
【００３４】
＝＝＝外観図＝＝＝
次に、本実施の形態に係るストレージシステム６００の外観構成を図５に示す。また、記憶デバイス制御装置１００の外観構成を図６に示す。
図５に示すように、本実施の形態に係るストレージシステム６００は記憶デバイス制御装置１００及び記憶デバイス３００がそれぞれの筐体に納められた形態をしている。記憶デバイス制御装置１００の筐体の両側に記憶デバイス３００の筐体が配置されている。
記憶デバイス制御装置１００は、正面中央部に管理端末１６０が備えられている。管理端末１６０はカバーで覆われており、図６に示すようにカバーを開けることにより管理端末１６０を使用することができる。なお図６に示した管理端末１６０はいわゆるノート型パーソナルコンピュータの形態をしているが、どのような形態とすることも可能である。
【００３５】
管理端末１６０の下部には、チャネル制御部１１０を装着するためのスロットが設けられている。各スロットにはチャネル制御部１１０のボードが装着される。本実施の形態に係るストレージシステム６００においては、スロットは８つあり、図５及び図６には８つのスロットにチャネル制御部１１０が装着された状態が示されている。各スロットにはチャネル制御部１１０を装着するためのガイドレールが設けられている。ガイドレールに沿ってチャネル制御部１１０をスロットに挿入することにより、チャネル制御部１１０を記憶デバイス制御装置１００に装着することができる。また各スロットに装着されたチャネル制御部１１０は、ガイドレールに沿って手前方向に引き抜くことにより取り外すことができる。また各スロットの奥手方向正面部には、各チャネル制御部１１０を記憶デバイス制御装置１００と電気的に接続するためのコネクタが設けられている。チャネル制御部１１０には、ＣＨＮ、ＣＨＦ、ＣＨＡがあるが、いずれのチャネル制御部１１０もサイズやコネクタの位置、コネクタのピン配列等に互換性をもたせているため、８つのスロットにはいずれのチャネル制御部１１０も装着することが可能である。従って、例えば８つのスロット全てにＣＨＮ１１０を装着するようにすることもできる。また図１に示したように、４枚のＣＨＮ１１０と、２枚のＣＨＦ１１０と、２枚のＣＨＡ１１０とを装着するようにすることもできる。チャネル制御部１１０を装着しないスロットを設けるようにすることもできる。
【００３６】
各スロットに装着されたチャネル制御部１１０は、同種の複数のチャネル制御部１１０でクラスタを構成する。例えば２枚のＣＨＮ１１０をペアとしてクラスタを構成することができる。クラスタを構成することにより、クラスタ内のあるチャネル制御部１１０に障害が発生した場合でも、障害が発生したチャネル制御部１１０がそれまで行っていた処理をクラスタ内の他のチャネル制御部１１０に引き継ぐようにすることができる（フェイルオーバ制御）。２枚のＣＨＮ１１０でクラスタを構成している様子を示す図を図１２に示すが、詳細は後述する。
【００３７】
なお、記憶デバイス制御装置１００は信頼性向上のため電源供給が２系統化されており、チャネル制御部１１０が装着される上記８つのスロットは電源系統毎に４つずつに分けられている。そこでクラスタを構成する場合には、両方の電源系統のチャネル制御部１１０を含むようにする。これにより、片方の電源系統に障害が発生し電力の供給が停止しても、同一クラスタを構成する他方の電源系統に属するチャネル制御部１１０への電源供給は継続されるため、当該チャネル制御部１１０に処理を引き継ぐ（フェイルオーバ）ことができる。
【００３８】
なお、上述したように、チャネル制御部１１０は上記各スロットに装着可能なボード、すなわち同一のユニットに形成された一つのユニットとして提供されるが、上記同一のユニットは複数枚数の基板から構成されているようにすることもできる。つまり、複数枚数の基板から構成されていても、各基板が相互に接続されて一つのユニットとして構成され、記憶デバイス制御装置１００のスロットに対して一体的に装着できる場合は、同一の回路基板の概念に含まれる。
【００３９】
ディスク制御部１４０や共有メモリ１２０等の、記憶デバイス制御装置１００を構成する他の装置については図５及び図６には示されていないが、記憶デバイス制御装置１００の背面側等に装着されている。
また記憶デバイス制御装置１００には、チャネル制御部１１０等から発生する熱を放出するためのファン１７０が設けられている。ファン１７０は記憶デバイス制御装置１００の上面部に設けられる他、チャネル制御部１１０用スロットの上部にも設けられている。
ところで、筐体に収容されて構成される記憶デバイス制御装置１００および記憶デバイス３００としては、例えばＳＡＮ対応として製品化されている従来構成の装置を利用することができる。特に上記のようにＣＨＮのコネクタ形状を従来構成の筐体に設けられているスロットにそのまま装着できる形状とすることで従来構成の装置をより簡単に利用することができる。つまり本実施例のストレージシステム６００は、既存の製品を利用することで容易に構築することができる。
【００４０】
＝＝＝チャネル制御部＝＝＝
本実施の形態に係るストレージシステム６００は、上述の通りＣＨＮ１１０により情報処理装置１乃至３（２００）からのファイルアクセス要求を受け付け、ＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供する。
ＣＨＮ１１０のハードウエア構成を図７に示す。この図に示すようにＣＨＮ１１０のハードウエアは一つのユニットで構成される。以下、このユニットのことをＮＡＳボードと記す。ＮＡＳボードは一枚もしくは複数枚の回路基板を含んで構成される。より具体的には、ＮＡＳボードは、ネットワークインタフェース部１１１、ＣＰＵ１１２、メモリ１１３、入出力制御部１１４、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）プロセッサ１１９、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）１１５、ボード接続用コネクタ１１６、通信コネクタ１１７を備え、これらが同一のユニットに形成されて構成されている。
【００４１】
ネットワークインタフェース部１１１は、情報処理装置２００との間で通信を行うための通信インタフェースを備えている。ＣＨＮ１１０の場合は、例えばＴＣＰ／ＩＰプロトコルに従って情報処理装置２００から送信されたファイルアクセス要求を受信する。通信コネクタ１１７は情報処理装置２００と通信を行うためのコネクタである。ＣＨＮ１１０の場合はＬＡＮ４００に接続可能なコネクタであり、例えばイーサネット（登録商標）に対応している。
ＣＰＵ１１２は、ＣＨＮ１１０をＮＡＳボードとして機能させるための制御を司る。
【００４２】
メモリ１１３には様々なプログラムやデータが記憶される。例えば図９に示すメタデータ７３０やロックテーブル７２０、また図１１に示すＮＡＳマネージャ７０６等の各種プログラムが記憶される。メタデータ７３０はファイルシステムが管理しているファイルに対応させて生成される情報である。メタデータ７３０には例えばファイルのデータが記憶されているＬＵ上のアドレスやデータサイズなど、ファイルの保管場所を特定するための情報が含まれる。メタデータ７３０にはファイルの容量、所有者、更新時刻等の情報が含まれることもある。また、メタデータ７３０はファイルだけでなくディレクトリに対応させて生成されることもある。メタデータ７３０の例を図１３に示す。メタデータ７３０は記憶デバイス３００上の各ＬＵにも記憶されている。
【００４３】
ロックテーブル７２０は、情報処理装置１乃至３（２００）からのファイルアクセスに対して排他制御を行うためのテーブルである。排他制御を行うことにより情報処理装置１乃至３（２００）でファイルを共用することができる。ロックテーブル７２０を図１４に示す。図１４に示すようにロックテーブル７２０にはファイルロックテーブル７２１とＬＵロックテーブル７２２とがある。ファイルロックテーブル７２１は、ファイル毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００によりあるファイルがオープンされている場合に当該ファイルにロックが掛けられる。ロックが掛けられたファイルに対する他の情報処理装置２００によるアクセスは禁止される。ＬＵロックテーブル７２２は、ＬＵ毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００により、あるＬＵに対するアクセスが行われている場合に当該ＬＵにロックが掛けられる。ロックが掛けられたＬＵに対する他の情報処理装置２００によるアクセスは禁止される。
【００４４】
入出力制御部１１４は、ディスク制御部１４０やキャッシュメモリ１３０、共有メモリ１２０、管理端末１６０との間でデータやコマンドの授受を行う。入出力制御部１１４はＩ／Ｏプロセッサ１１９やＮＶＲＡＭ１１５を備えている。Ｉ／Ｏプロセッサ１１９は例えば１チップのマイコンで構成される。Ｉ／Ｏプロセッサ１１９は上記データやコマンドの授受を制御し、ＣＰＵ１１２とディスク制御部１４０との間の通信を中継する。ＮＶＲＡＭ１１５はＩ／Ｏプロセッサ１１９の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１１５に記憶されるプログラムの内容は、管理端末１６０や、後述するＮＡＳマネージャ７０６からの指示により書き込みや書き換えを行うことができる。
【００４５】
次にＣＨＦ１１０及びＣＨＡ１１０の構成を示す図を図８に示す。ＣＨＦ１１０及びＣＨＡ１１０も、ＣＨＮ１１０と同様に一つのユニットとして形成されている。ＣＨＮ１１０と同様、上記ユニットは複数枚数の回路基板から構成されているようにすることもできる。またＣＨＦ１１０及びＣＨＡ１１０は、ＣＨＮ１１０とサイズやボード接続用コネクタ１１６の位置、ボード接続用コネクタ１１６のピン配列等に互換性をもたせている。
ＣＨＦ１１０及びＣＨＡ１１０は、ネットワークインタフェース部１１１、メモリ１１３、入出力制御部１１４、Ｉ／Ｏプロセッサ１１９、ＮＶＲＡＭ１１５、ボード接続用コネクタ１１６、通信コネクタ１１７を備える。
【００４６】
ネットワークインタフェース部１１１は、情報処理装置２００との間で通信を行うための通信インタフェースを備えている。ＣＨＦ１１０の場合は、例えばファイバチャネルプロトコルに従って情報処理装置２００から送信されたブロックアクセス要求を受信する。ＣＨＡ１１０の場合は、例えばＦＩＣＯＮ（登録商標）やＥＳＣＯＮ（登録商標）、ＡＣＯＮＡＲＣ（登録商標）、ＦＩＢＡＲＣ（登録商標）のプロトコルに従って情報処理装置２００から送信されたブロックアクセス要求を受信する。通信コネクタ１１７は情報処理装置２００と通信を行うためのコネクタである。ＣＨＦ１１０の場合はＳＡＮ５００に接続可能なコネクタであり、例えばファイバチャネルに対応している。ＣＨＡ１１０の場合は情報処理装置５と接続可能なコネクタであり、ＦＩＣＯＮ（登録商標）やＥＳＣＯＮ（登録商標）、ＡＣＯＮＡＲＣ（登録商標）、ＦＩＢＡＲＣ（登録商標）に対応している。
【００４７】
入出力制御部１１４は、それぞれＣＨＦ１１０、ＣＨＡ１１０の全体の制御を司ると共に、ディスク制御部１４０やキャッシュメモリ１３０、共有メモリ１２０、管理端末１６０との間でデータやコマンドの授受を行う。メモリ１１３に格納された各種プログラムを実行することにより本実施の形態に係るＣＨＦ１１０及びＣＨＡ１１０の機能が実現される。入出力制御部１１４はＩ／Ｏプロセッサ１１９やＮＶＲＡＭ１１５を備えている。Ｉ／Ｏプロセッサ１１９は上記データやコマンドの授受を制御する。ＮＶＲＡＭ１１５はＩ／Ｏプロセッサ１１９の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１１５に記憶されるプログラムの内容は、管理端末１６０や、後述するＮＡＳマネージャ７０６からの指示により書き込みや書き換えを行うことができる。
【００４８】
次にディスク制御部１４０の構成を示す図を図１０に示す。
ディスク制御部１４０は、インタフェース部１４１、メモリ１４３、ＣＰＵ１４２、ＮＶＲＡＭ１４４、ボード接続用コネクタ１４５を備え、これらが一体的なユニットとして形成されている。
インタフェース部１４１は、接続部１５０を介してチャネル制御部１１０等との間で通信を行うための通信インタフェースや、記憶デバイス３００との間で通信を行うための通信インタフェースを備えている。
ＣＰＵ１４２は、ディスク制御部１４０全体の制御を司ると共に、チャネル制御部１４０や記憶デバイス３００、管理端末１６０との間の通信を行う。メモリ１４３やＮＶＲＡＭ１４４に格納された各種プログラムを実行することにより本実施の形態に係るディスク制御部１４０の機能が実現される。ディスク制御部１４０により実現される機能としては、記憶デバイス３００の制御やＲＡＩＤ制御、記憶デバイス３００に記憶されたデータの複製管理やバックアップ制御、リモートコピー制御等である。
ＮＶＲＡＭ１４４はＣＰＵ１４２の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１４４に記憶されるプログラムの内容は、管理端末１６０や、ＮＡＳマネージャ７０６からの指示により書き込みや書き換えを行うことができる。
またディスク制御部１４０はボード接続用コネクタ１４５を備えている。ボード接続用コネクタ１４５が記憶デバイス制御装置１００側のコネクタと嵌合することにより、ディスク制御部１４０は記憶デバイス制御装置１００と電気的に接続される。
【００４９】
次に、本実施の形態に係るストレージシステム６００におけるソフトウエア構成図を図１１に示す。
オペレーティングシステム７０１上では、ＲＡＩＤマネージャ７０８、ボリュームマネージャ７０７、ＳＶＰマネージャ７０９、ファイルシステムプログラム７０３、ネットワーク制御部７０２、バックアップ管理プログラム７１０、障害管理プログラム７０５、ＮＡＳマネージャ７０６などのソフトウエアが動作する。
【００５０】
オペレーティングシステム７０１上で動作するＲＡＩＤマネージャ７０８は、ＲＡＩＤ制御部７４０に対するパラメータの設定やＲＡＩＤ制御部７４０を制御する機能を提供する。ＲＡＩＤマネージャ７０８はオペレーティングシステム７０１やオペレーティングシステム７０１上で動作する他のアプリケーション、もしくはＳＶＰからパラメータや制御指示情報を受け付けて、受け付けたパラメータのＲＡＩＤ制御部７４０への設定や、ＲＡＩＤ制御部指示情報に対応する制御コマンドの送信を行う。
【００５１】
ここで設定されるパラメータとしては、例えば、ＲＡＩＤグループを構成する記憶デバイス（物理ディスク）を定義（ＲＡＩＤグループの構成情報、ストライプサイズの指定など）するためのパラメータ、ＲＡＩＤレベル（例えば０，１，５）を設定するためのパラメータなどがある。また、ＲＡＩＤマネージャ７０８がＲＡＩＤ制御部７４０に送信する制御コマンドとしてはＲＡＩＤの構成・削除・容量変更を指示するコマンド、各ＲＡＩＤグループの構成情報を要求するコマンドなどがある。
【００５２】
ボリュームマネージャ７０７は、ＲＡＩＤ制御部７４０によって提供されるＬＵをさらに仮想化した仮想化論理ボリュームをファイルシステムプログラム７０３に提供する。１つの仮想化論理ボリュームは１以上の論理ボリュームによって構成される。
【００５３】
ファイルシステムプログラム７０３の主な機能は、ネットワーク制御部７０２が受信したファイルアクセス要求に指定されているファイル名とそのファイル名が格納されている仮想化論理ボリューム上のアドレスとの対応づけを管理することである。例えば、ファイルシステムプログラム７０３はファイルアクセス要求に指定されているファイル名に対応する仮想化論理ボリューム上のアドレスを特定する。
【００５４】
ネットワーク制御部７０２は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）７１１とＳａｍｂａ７１２の２つのファイルシステムプロトコルを含んで構成される。ＮＦＳ７１１は、ＮＦＳ７１１が動作するＵＮＩＸ（登録商標）系の情報処理装置２００からのファイルアクセス要求を受け付ける。一方、Ｓａｍｂａ７１２はＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｆａｃｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）７１３が動作するＷｉｎｄｏｗｓ（登録商標）系の情報処理装置２００からのファイルアクセス要求を受け付ける。
【００５５】
ＮＡＳマネージャ７０６は、ストレージシステム６００について、その動作状態の確認、設定や制御などを行うためのプログラムである。ＮＡＳマネージャ７０６はＷｅｂサーバとしての機能も有し、情報処理装置２００からストレージシステム６００の設定や制御を行うための設定Ｗｅｂページを情報処理装置２００に提供する。ＮＡＳマネージャ７０６は、情報処理装置１乃至３（２００）からのＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）リクエストに応じて、設定Ｗｅｂページのデータを情報処理装置１乃至３（２００）に送信する。情報処理装置１乃至３（２００）に表示された設定Ｗｅｂページを利用してシステムアドミニストレータなどによりストレージシステム６００の設定や制御の指示が行われる。設定Ｗｅｂページを利用して行うことができる内容としては、例えば、ＬＵの管理や設定（容量管理や容量拡張・縮小、ユーザ割り当て等）、上述の複製管理やリモートコピー（レプリケーション）等の機能に関する設定や制御（複製元のＬＵと複製先のＬＵの設定など）、後述のバックアップ管理プログラム７１０についての設定や制御、冗長構成されたＣＨＮやＣＨＦ、ＣＨＡ間でのクラスタの管理（フェイルオーバさせる相手の対応関係の設定、フェイルオーバ方法など）、ＯＳやＯＳ上で動作するアプリケーションプログラムのバージョン管理、ウイルス検知プログラムやウイルス駆除などのデータの安全性に関する機能を提供するセキュリティ管理プログラム７１６の動作状態の管理や設定および更新管理（バージョン管理）などがある。ＮＡＳマネージャ７０６は、設定Ｗｅｂページに対する操作に起因して情報処理装置２００から送信される設定や制御に関するデータを受信してそのデータに対応する設定や制御を実行する。これにより、情報処理装置１乃至３（２００）からストレージシステム６００の様々な設定や制御を行うことができる。
【００５６】
バックアップ管理プログラム７１０は、記憶デバイス３００に記憶されているデータをＬＡＮ経由またはＳＡＮ経由でバックアップするためのプログラムである。バックアップ管理プログラム７１０はＮＤＭＰ（Ｎｅｔｗｏｒｋ  Ｄａｔａ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）の機能を提供し、情報処理装置２００で動作するＮＤＭＰ対応のバックアップソフトウエアとＬＡＮ４００を通じてＮＤＭＰに従った通信を行う。バックアップデバイス９１０が情報処理装置２００にＳＣＳＩ経由などで接続されている場合、バックアップされるデータは情報処理装置２００に一旦取り込まれてからバックアップデバイス９１０に送られる。バックアップデバイス９１０がＬＡＮに２００接続されている場合には、バックアップされるデータを、情報処理装置２００を経由せずにストレージシステム６００から直接バックアップデバイス９１０に転送することもできる。
【００５７】
障害管理プログラム７０５は、クラスタを構成するチャネル制御部１１０間でのフェイルオーバ制御を行うためのプログラムである。
ＳＶＰマネージャ７０９は、管理端末１６０からの要求に応じて各種のサービスを管理端末１６０に提供する。例えば、ＬＵの設定内容やＲＡＩＤの設定内容等のストレージシステム６００に関する各種設定内容の管理端末１６０への提供や、管理端末１６０から入力されたストレージシステム６００に関する各種設定の反映等を行う。
セキュリティ管理プログラム７１６は、コンピュータウイルスの検知、侵入監視、コンピュータウイルス検知プログラムの更新管理、感染したコンピュータウイルスの駆除、ファイアウォール機能などを実現する。
【００５８】
次に、２枚のＣＨＮ１１０でクラスタ１８０が構成されている様子を示す図を図１２に示す。図１２では、ＣＨＮ１（チャネル制御部１）１１０とＣＨＮ２（チャネル制御部２）１１０とでクラスタ１８０が構成されている場合を示す。
上述したように、フェイルオーバ処理はクラスタ１８０を構成するチャネル制御部１１０間で行われる。つまり、例えばＣＨＮ１（１１０）に何らかの障害が発生し処理を継続することができなくなった場合には、ＣＨＮ１（１１０）がそれまで行っていた処理はＣＨＮ２（１１０）に引き継がれる。フェイルオーバ処理は、ＣＨＮ１（１１０）とＣＨＮ２（１１０）により実行される障害管理プログラム７０５により実行される。
【００５９】
ＣＨＮ１（１１０）及びＣＨＮ２（１１０）は共に障害管理プログラム７０５を実行し、共有メモリ１２０に対して自己の処理が正常に行われていることを書き込むようにする。そして、相手側の上記書き込みの有無を相互に確認するようにする。相手側による書き込みが検出できない場合には、相手側に何らかの障害が発生したと判断し、フェイルオーバ処理を実行する。フェイルオーバ実行時の処理の引き継ぎは、共有ＬＵ３１０を介して行われる。
【００６０】
また、クラスタ１８０を構成する各ＣＨＮ１１０のファイルアクセス処理部は、アクセス可能な情報処理装置１乃至３（２００）を管理することができる。これにより、アクセス可能な情報処理装置１乃至３（２００）からファイルアクセス要求が送信されてきた場合にのみ、そのファイルアクセス要求を受け付けるようにすることができる。アクセス可能な情報処理装置１乃至３（２００）の管理は、各ＣＨＮ１１０のメモリ１１３に予めアクセスを許可する情報処理装置１乃至３（２００）のＩＰアドレスのドメイン名（識別情報）を記憶させることにより行う。
【００６１】
これにより、情報処理装置１乃至３（２００）が共通のＬＡＮ４００を介してストレージシステム６００に接続されていても、情報処理装置１乃至３（２００）のそれぞれに対して排他的にＬＵを割り当てることができる。例えば情報処理装置１乃至３（２００）がそれぞれ別の企業のコンピュータである場合に、情報処理装置１乃至３（２００）のそれぞれに対して相互にデータの秘匿性を保った記憶サービスを提供することができる。
【００６２】
各ＣＨＮ１１０に対する上記設定は、管理端末１６０や情報処理装置１乃至３（２００）から行うことができる。情報処理装置１乃至３（２００）から行う場合には、ＣＨＮ１１０上で動作するＮＡＳマネージャ７０６により情報処理装置１乃至３（２００）に表示される設定Ｗｅｂページを利用して行う。
【００６３】
＝＝＝ファイルデータの排他制御＝＝＝
次に本実施の形態に係るファイルデータの排他制御について説明する。前述したように排他制御にはファイル単位での排他制御とＬＵ単位での排他制御とがある。これらの排他制御を行うことによりファイル更新の順序性を確保することができるので、情報処理装置１乃至３（２００）間でファイルを共有させるようにすることができるようになる。本実施の形態に係る排他制御は、各種の動作を行うためのコードから構成されるネットワークファイルシステムプログラムを、ＣＨＮ１１０が備えるＣＰＵ１１２やＩ／Ｏプロセッサ１１９が実行することにより実現される。ここでネットワークファイルシステムプログラムはＮＦＳ７１１やＳａｍｂａ７１２等のファイルシステムプロトコルを制御するためのプログラムである。
【００６４】
まず本実施の形態に係るファイル単位での排他制御を説明するためのフローチャートを図１５に示す。
ＣＨＮ１１０のネットワークインタフェース部１１１は、情報処理装置１乃至３（２００）からファイルアクセス要求（データアクセスコマンド）を受信する（Ｓ２０００）。ファイルアクセス要求には、ファイル名や、読み出し又は書き込み等のファイルアクセスの種別、書き込みの場合には書き込みデータ、ＬＡＮ４００の通信プロトコルのヘッダ情報等が含まれている。その後ＣＰＵ１１２はネットワークインタフェース部１１１で受信したファイルアクセス要求からファイル名を抽出する（Ｓ２００１）。そしてＣＰＵ１１２はメモリ１１３に記憶されているファイルロックテーブル７２１を参照し、ファイルアクセス要求から抽出されたファイル名に基づいて、当該ファイルのロック状態をチェックする（Ｓ２００２）。
【００６５】
ロック中である場合には（Ｓ２００３）、他の情報処理装置２００により当該ファイルにアクセスが行われているので、そのファイルに対するアクセスは行えない。そこで、その旨のメッセージをファイルアクセス要求を送信してきた情報処理装置２００に対して送信する（Ｓ２００７）。なお、ファイルアクセス要求のあったファイルがロック中であった場合に、当該ファイルへのアクセスを一律に禁止するのではなく、アクセスの種別に応じて、例えば書き込みの場合にのみ禁止するようにすることもできる。またＣＨＮ１１０は情報処理装置２００にファイルアクセス禁止のメッセージを送信するだけでなく、その後当該ファイルのロックが解除された際にはその旨のメッセージを情報処理装置２００に送信するようにすることもできる。ファイルアクセス禁止のメッセージを受信した情報処理装置２００は、当該ファイルに対するアクセスを取りやめるようにすることもできるし、所定の時間が経過した後に当該ファイルへのアクセスを再度行うようにすることもできる。さらにはＣＨＮ１１０からのロック解除のメッセージを受けてから再度ファイルアクセスを行うようにすることもできる。
【００６６】
情報処理装置２００からアクセス要求のあったファイルがロック中でなかった場合には（Ｓ２００３）、ＣＰＵ１１２はファイルロックテーブル７２１の当該ファイルをロック中にする（Ｓ２００４）。これにより当該ファイルに対する他の情報処理装置２００によるアクセスは禁止される。そしてＣＰＵ１１２はメモリ１１３に記憶されているメタデータ７３０を参照し、当該ファイルのデータの先頭記憶位置とデータ長（容量）を取得する（Ｓ２００５）。そして入出力制御部１１４に対してディスクアクセスを指示する（Ｓ２００６）。入出力制御部１１４は当該ファイルの記憶位置とデータ長に基づき、ファイルアクセス要求に対するＩ／Ｏ要求を生成し、ディスク制御部１４０に出力する。これによりデータアクセスすなわちデータの読み出しや書き込み等が行われる。データアクセスが完了したら当該ファイルに対するロックを解除する。
なおＳ２００２においてファイルロックテーブル７２１をチェックした結果、情報処理装置２００からアクセス要求のあったファイルがファイルロックテーブル７２１に登録されていなかった場合には、当該ファイルをファイルロックテーブル７２１に追加しＳ２００４以降の処理を行う。
【００６７】
入出力制御部１１４のＩ／Ｏプロセッサ１１９は、ＣＰＵ１１２から受けたディスクアクセス指示に従ってＩ／Ｏ要求をディスク制御部１４０に出力する。その際、ＬＵ単位での排他制御が行われる。ＬＵ単位での排他制御を説明するためのフローチャートを図１６に示す。
まずＩ／Ｏプロセッサ１１９は、ＣＰＵ１１２からディスクアクセス指示を受け付ける（Ｓ１０００）。次にＩ／Ｏプロセッサ１１９はメモリ１１３に記憶されているＬＵロックテーブル７２２を参照し、これからアクセスしようとしているＬＵ３１０のロック状態をチェックする（Ｓ１００１）。ロック中である場合にはロックが解除されるまで待つ（Ｓ１００２）。ロックが解除されたらＬＵロックテーブル７２２の当該ＬＵをロック中にする（Ｓ１００３）。これにより当該ＬＵに対する他のアクセスは禁止される。そしてＩ／Ｏプロセッサ１１９はＩ／Ｏ要求を生成し、ディスク制御部１４０に出力する（Ｓ１００４）。Ｉ／Ｏ要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別、書き込みの場合には書き込みデータ等が含まれている。データアクセスが完了したら当該ＬＵのロックを解除する。
【００６８】
また、ファイルロックテーブル７２１やＬＵロックテーブル７２２を用いてファイルの排他制御を行うことにより、情報処理装置１乃至３（２００）から送信されるファイルアクセス要求が、異なるネットワークファイルシステムプロトコルに従っている場合でも、排他制御の効果を各ネットワークファイルシステムプロトコルに従ったファイルアクセス要求に反映させることができる。
【００６９】
以上の排他制御がＣＨＮ１１０において行われる。本実施の形態に係るストレージシステム６００における記憶デバイス制御装置１００にはＣＨＮ１１０、ＣＨＦ１１０、ＣＨＡ１１０を混在させて装着することが可能であるが、このような構成の下において、本実施の形態に係るストレージシステム６００に接続される情報処理装置１乃至３（２００）間でのファイルデータの共有を実現することができる。
【００７０】
＝＝＝フェイルオーバ制御＝＝＝
次に本実施の形態に係るフェイルオーバ制御について説明する。フェイルオーバ制御は、各種の動作を行うためのコードから構成される障害管理プログラム７０５を、ＣＨＮ１１０が備えるＣＰＵ１１２やＩ／Ｏプロセッサ１１９が実行することにより実現される。
図１２で示したようにフェイルオーバ制御はクラスタ１８０を構成するＣＨＮ１１０間で行われる。クラスタ１８０の設定はＮＡＳマネージャ７０６により行うことができる。フェイルオーバ制御は、ＣＨＮ１１０に障害が発生した場合の他、ＮＡＳマネージャ７０６からの指示（フェイルオーバの実行要求）によっても行われる。
【００７１】
本実施の形態に係るフェイルオーバ制御を説明するためのフローチャートを図１７に示す。
ＣＰＵ１１２はＮＡＳマネージャ７０６からフェイルオーバの指示（実行要求）を受信するとフェイルオーバ処理を開始する（Ｓ３０００）。
ＮＡＳマネージャ７０６からフェイルオーバ指示があったかどうかのチェックは、図１７に示す様に障害管理プログラム７０５の処理ルーチン内で行うようにすることもできるし、ＮＡＳマネージャ７０６からフェイルオーバ指示があった場合に割り込み信号を発生させることにより行うようにすることもできる。
ＮＡＳマネージャ７０６からのフェイルオーバ指示がない場合には、ＣＰＵ１１２は、自己のＣＨＮ１１０に障害が発生していないかどうかを検査する（Ｓ３００１）。
【００７２】
障害が検出されない場合には（Ｓ３００２）、ＣＰＵ１１２は共有メモリ１２０のハートビートマークを更新する（Ｓ３００３）。ハートビートマークは、クラスタ１８０内の各ＣＨＮ１１０が相互に動作状態を確認し合うための情報である。すなわち各ＣＨＮ１１０は、定期的に共有メモリ１２０の所定の領域にハートビートマークを書き込むことにより自己の処理が正常に行われていることを他のＣＨＮ１１０に示すと共に、他のＣＨＮ１１０のハートビートマークを確認する。これにより、クラスタ１８０内のＣＨＮ１１０の異常を相互に監視することができる。
【００７３】
ハートビートマークには、ＣＨＮ１１０の識別子や、ＣＨＮ１１０が正常であるか異常であるかを示す符号、更新時刻等の情報が含まれる。続いてＣＰＵ１１２は、クラスタ内の他のＣＨＮ１１０のハートビートマークを共有メモリ１２０から読み出して、正常にハートビートマークが更新されているかどうかを確認する（Ｓ３００４）。クラスタ内の他の全てのＣＨＮ１１０のハートビートマークが正常に更新されている場合には障害が発生していないと判断して（Ｓ３００５）、Ｓ３０００からの処理を繰り返す。
【００７４】
一方、Ｓ３００４で他のＣＨＮ１１０のハートビートマークを確認した結果、一定時間を経過しているにも拘わらず未更新であるものや、障害発生を示す符号が記載されているものを発見した場合には、ＣＰＵ１１２はフェイルオーバ処理を開始する。まずＣＰＵ１１２はＩ／Ｏプロセッサ１１９に、障害が発生したＣＨＮ１１０に対してリセット要求を送信させる（Ｓ３００６）。障害が発生したＣＨＮ１１０から上記リセット信号を受領した旨のメッセージを受信したら、ＣＰＵ１１２は、障害が発生したＣＨＮ１１０に関する引継情報を共有ＬＵ３１０から取得する（Ｓ３００７）。
【００７５】
共有ＬＵ３１０に格納される引継情報は図１８に示す通り、ロック情報８０１、Ｓａｍｂａ７１２の構成情報８０２、マウント情報８０３である。ロック情報８０１は、障害が発生したＣＨＮ１１０が管理していたファイルロックテーブル７２１とＬＵロックテーブル７２２とを含む。マウント情報８０３は、障害が発生したＣＨＮ１１０が管理していたＬＵに構築されているファイルシステムのマウントに関する情報である。引継情報は上記以外にもネットワークインタフェース部１１１のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスやＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ネットワークファイルシステムのエクスポート情報等があるが、これらは共有メモリ１２０から取得する。
【００７６】
上記情報を取得したＣＰＵ１１２は、引継処理を行う（Ｓ３００８）。まず障害が発生したＣＨＮ１１０のＭＡＣアドレスやＩＰアドレスを自己のネットワークインタフェース部１１１に設定する。これにより処理を引き継いだＣＨＮ１１０は、障害が発生したＣＨＮ１１０への情報処理装置１乃至３（２００）からのアクセスに応答することができるようになる。また障害が発生したＣＨＮ１１０のマウント情報に基づいて、障害が発生したＣＨＮ１１０のファイルシステムを自己のファイルシステムにマウントする。これにより処理を引き継いだＣＨＮ１１０は、それまで障害が発生したＣＨＮ１１０が管理していたＬＵ３１０に対してアクセスすることができるようになる。この時、障害が発生したＣＨＮ１１０で管理されていたメタデータに異常がないかがチェックされる。メタデータの更新中に障害が発生する場合もあるからである。このチェックはメタデータを引き継いだＣＨＮ１１０のＣＰＵ１１２がメタデータチェックプログラムを実行することにより行われる。チェックの結果メタデータに異常が発見された場合には、メタデータの修復が行われる。メタデータの修正は、例えばＵＮＩＸ（登録商標）系オペレーティングシステムの場合には、ｉノードの管理情報が修正されることにより行われる。またＣＰＵ１１２は、ネットワークファイルシステムのエクスポート情報に基づいてファイルシステムをＬＡＮ４００に接続された情報処理装置１乃至３（２００）に公開する。さらに、障害が発生したＣＨＮ１１０で実行中だった処理（チャネル制御部の処理）を引き継いで実行する。以上で引き継ぎ処理が終了する。
【００７７】
一方、Ｓ３００１で自己のＣＨＮ１１０に障害が発生していないかどうかを検査した結果、障害が発見された場合、あるいはＳ３０００においてＮＡＳマネージャ７０６からフェイルオーバ指示があった場合には、ＣＰＵ１１２は共有メモリ１２０のハートビートマークの更新を停止する（Ｓ３００９）。なお障害の発生はＳ３００１で行われる検査により検出されるのみならず、ハードウエア割り込みによっても検出される。その場合もＣＰＵ１１２は共有メモリ１２０のハートビートマークの更新を停止する。そうすると、クラスタ１８０内の他のＣＨＮ１１０によりハートビートマークの更新停止が検出され、フェイルオーバ処理が開始される。
【００７８】
ハートビートマークの更新を停止したＣＨＮ１１０には、処理を引き継ぐＣＨＮ１１０のＩ／Ｏプロセッサ１１９からリセット要求が送信される（Ｓ３０１０）。このリセット要求は、処理を引き継ぐＣＨＮ１１０において実行される障害管理プログラム７０５処理ルーチンのＳ３００６において送信されるものである。そうするとハートビートマークの更新を停止したＣＨＮ１１０は、上記リセット信号を受領した旨のメッセージを返信し、閉塞処理を開始する（Ｓ３０１１）。
閉塞処理はメモリ１１３のダンプを取得することにより行われる。メモリ１１３のダンプを取得するとは、メモリ１１３に記憶されているデータをＬＵ３１０に記録することをいう。
【００７９】
なお、３枚以上のＣＨＮ１１０でクラスタを構成するようにすることもできる。この場合は多段のフェイルオーバ処理を行うことが可能である。すなわち、フェイルオーバにより処理を引き継いだＣＨＮ１１０に障害が発生した場合には、さらに他のＣＨＮ１１０に処理を引き継がせるようにすることができる。この場合、最終的に処理を引き継ぐＣＨＮ１１０は、過去のフェイルオーバ処理において引き継がれてきた全ての処理を引き継ぐことになる。
【００８０】
以上のフェイルオーバ制御がクラスタ１８０内のＣＨＮ１１０において行われる。本実施の形態に係るストレージシステム６００においては、記憶デバイス制御装置１００のスロット内にＣＨＮ１１０、ＣＨＦ１１０、ＣＨＡ１１０を混在させて装着することが可能であるが、このような構成の下においてクラスタ１８０を構成することができ、クラスタ１８０内ではＣＨＮ１１０に障害が発生しても、他のＣＨＮ１１０に処理を引き継がせるようにすることができる。
【００８１】
＝＝＝ファイルの高速アクセス＝＝＝
次に本実施の形態に係るファイルの高速アクセス制御について説明する。本実施の形態に係るファイルの高速アクセス制御は、情報処理装置２００から、記憶デバイス３００に記憶されているファイルデータに対して、ＳＡＮ５００を介したブロック単位の高速なデータアクセスを行うための制御である。ファイルの高速アクセスを行うためには、情報処理装置２００は、ＣＨＮ１１０及びＣＨＦ１１０の両方と通信可能に接続されていることが必要である。図１においては情報処理装置３（２００）が該当する。ファイルの高速アクセス制御を説明するためのブロック図を図１９に示す。
【００８２】
情報処理装置３（２００）は、ＬＡＮ４００を介してＣＨＮ１１０と接続されている。また情報処理装置３（２００）は、ＳＡＮ５００を介してＣＨＦ１１０とも接続されている。これにより情報処理装置３（２００）は、ＣＨＮ１１０を通じてＬＵ３１０に記憶されているファイルデータをアクセスすることもできるし、ＣＨＦ１１０を通じて上記同一データをアクセスすることもできる。ただし、ＣＨＮ１１０を介してアクセスする場合はファイル単位でのアクセスとなるのに対し、ＣＨＦ１１０を介してアクセスする場合はブロック単位でのアクセスとなる。
【００８３】
通常、情報処理装置３（２００）がＣＨＮ１１０を介してＬＵ３１０に記憶されているデータをアクセスする場合には、ＣＨＮ１１０に対してファイル名を指定したファイルアクセス要求を行うが、本実施の形態に係るファイルの高速アクセス制御によりＬＵ３１０に記憶されているデータをアクセスする場合には、まずＣＨＮ１１０に対してファイル名を指定してメタデータ７３０（ファイルについての記憶装置の記憶領域上の記憶位置を特定する情報）の要求（リクエスト）を行う。メタデータ７３０の要求を受け付けたＣＨＮ１１０は、メモリ１１３またはキャッシュメモリ１３０に記憶されている当該ファイル名に対応するメタデータ７３０を読み出す。そして読み出したメタデータ７３０をＬＡＮ４００を介して情報処理装置３（２００）に送信する。なお、図２０に示すようにメタデータ７３０はＬＵ３１０にも記憶されているので、ＣＨＮ１１０はＬＵ３１０からメタデータ７３０を読み出すようにすることもできる。またＣＨＮ１１０は、情報処理装置３（２００）からメタデータ７３０の要求を受信した際に、ファイルロックテーブル７２１のロック状態を確認することにより、当該ファイルデータについての排他制御を行うようにすることもできる。
【００８４】
情報処理装置３（２００）はメタデータ７３０を取得することにより、当該ファイルの記憶位置やデータサイズを知ることができる。情報処理装置３（２００）はこれらの情報に基づいてファイルデータに対するブロックアクセス要求を生成できる。そして当該ブロックアクセス要求をＳＡＮ５００を介してＣＨＦ１１０に対して送信する。
ＣＨＦ１１０は、ネットワークインタフェース部１１１により上記ブロックアクセス要求を受け付ける。そしてＩ／Ｏプロセッサ１１９は当該データの記憶位置とデータ長等を抽出し、上記ブロックアクセス要求に対応するＩ／Ｏ要求を生成してディスク制御部１４０に出力する。このようにしてデータの読み出しや書き込み等が行われる。
ＳＡＮ５００はＬＡＮ４００と比較して高速なデータ転送が可能なネットワークであるので、記憶デバイス３００に記憶されているファイルデータに高速にアクセスすることができる。
【００８５】
情報処理装置３（２００）は、記憶デバイス３００からファイルデータを読み出す場合には、ＣＨＦ１１０に対して当該ファイルデータのアドレスとサイズを指定してブロック単位でのデータ読み出し要求を送信する。ＣＨＦ１１０は記憶デバイス３００から読み出したデータをＳＡＮ５００を介して情報処理装置３（２００）に送信する。情報処理装置３（２００）は、データをＣＨＦ１１０から取得したら読み出し処理を終了する。なお、ＣＨＮ１１０からメタデータ７３０を取得する際に当該ファイルに対してロックを掛けていた場合には、ＣＨＮ１１０に対してロック解除要求を送信する。
【００８６】
一方、記憶デバイス３００にファイルデータを書き込む場合には、情報処理装置３（２００）は、当該書き込みデータと共に書き込みデータのアドレスとサイズを指定してブロック単位のデータ書き込み要求をＣＨＦ１１０に対して送信する。ＣＨＦ１１０は当該書き込みデータを記憶デバイス３００に書き込み、書き込み完了メッセージを情報処理装置３（２００）に送信する。情報処理装置３（２００）はＣＨＦ１１０から書き込み完了のメッセージを受信したら、ＣＨＮ１１０に対してメタデータ７３０の更新を要求する。なお、ＣＨＮ１１０からメタデータ７３０を取得する際に当該ファイルに対してロックを掛けていた場合には、ＣＨＮ１１０に対してロック解除要求も送信する。
【００８７】
本実施の形態に係るファイルの高速アクセス制御は、データサイズの大きなファイルにアクセスする場合に効果が大きい。データサイズの大きなファイルへのアクセスを高速なＳＡＮ５００を介して行うことにより、ファイルデータに対する読み出し、書き込みの時間を短縮できる。これは、本実施の形態に係るストレージシステム６００においては、記憶デバイス制御装置１００のスロット内にＣＨＮ１１０、ＣＨＦ１１０、ＣＨＡ１１０を混在させて装着することが可能であり、ＣＨＮ１１０を介したデータアクセスとＣＨＦ１１０を介したデータアクセスのそれぞれの特長をうまく利用することができることにより、実現できるのである。
【００８８】
以上本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００８９】
【発明の効果】
記憶デバイス制御装置、及びデバイス制御装置の制御方法を提供することができる。
【図面の簡単な説明】
【図１】本実施の形態に係るストレージシステムの全体構成を示すブロック図である。
【図２】本実施の形態に係る管理端末の構成を示すブロック図である。
【図３】本実施の形態に係る物理ディスク管理テーブルを示す図である。
【図４】本実施の形態に係るＬＵ管理テーブルを示す図である。
【図５】本実施の形態に係るストレージシステムの外観構成を示す図である。
【図６】本実施の形態に係る記憶デバイス制御装置の外観構成を示す図である。
【図７】本実施の形態に係るＣＨＮを示す図である。
【図８】本実施の形態に係るＣＨＦ、ＣＨＡを示す図である。
【図９】本実施の形態に係るメモリに記憶されるデータの内容を説明するための図である。
【図１０】本実施の形態に係るディスク制御部を示す図である。
【図１１】本実施の形態に係るソフトウエア構成図である。
【図１２】本実施の形態に係るチャネル制御部においてクラスタが構成されている様子を示す図である。
【図１３】本実施の形態に係るメタデータを示す図である。
【図１４】本実施の形態に係るロックテーブルを示す図である。
【図１５】本実施の形態に係るファイル単位での排他制御を説明するためのフローチャートである。
【図１６】本実施の形態に係るＬＵ単位での排他制御を説明するためのフローチャートである。
【図１７】本実施の形態に係るフェイルオーバ制御を説明するためのフローチャートである。
【図１８】本実施の形態に係るフェイルオーバ制御を行うために共有ＬＵに記憶されるデータの内容を説明するための図である。
【図１９】本実施の形態に係る高速ファイルアクセス制御を説明するためのブロック図である。
【図２０】本実施の形態に係る高速ファイルアクセス制御を行うためにＬＵに記憶されるデータの内容を説明するための図である。
【符号の説明】
１００  記憶デバイス制御装置          １１０  チャネル制御部
１１１  ネットワークインタフェース部  １１２  ＣＰＵ
１１３  メモリ                        １１４  入出力制御部
１１５  ＮＶＲＡＭ                    １１６  ボード接続用コネクタ
１１７  通信コネクタ                  １１８  回路基板
１１９  Ｉ／Ｏプロセッサ              １２０  共有メモリ
１３０  キャッシュメモリ              １４０  ディスク制御部
１５０  接続部                        １５１  内部ＬＡＮ
１６０  管理端末                      １７０  ファン
１８０  クラスタ                      ２００  情報処理装置
３００  記憶デバイス                  ４００  ＬＡＮ
５００  ＳＡＮ                        ６００  ストレージシステム
７３０  メタデータ                    ７２１  ファイルロックテーブル
７２２  ＬＵロックテーブル
９００  ＳＡＮ対応バックアップデバイス
９１０  バックアップデバイス
【図１】
2004227097.tif 000003
【図２】
2004227097.tif 000004
【図３】
2004227097.tif 000005
【図４】
2004227097.tif 000006
【図５】
2004227097.tif 000007
【図６】
2004227097.tif 000008
【図７】
2004227097.tif 000009
【図８】
2004227097.tif 000010
【図９】
2004227097.tif 000011
【図１０】
2004227097.tif 000012
【図１１】
2004227097.tif 000013
【図１２】
2004227097.tif 000014
【図１３】
2004227097.tif 000015
【図１４】
2004227097.tif 000016
【図１５】
2004227097.tif 000017
【図１６】
2004227097.tif 000018
【図１７】
2004227097.tif 000019
【図１８】
2004227097.tif 000020
【図１９】
2004227097.tif 000021
【図２０】
2004227097.tif 000022