(57)【要約】【課題】データへのアクセス環境を迅速に回復できるようにする。【解決手段】許可手段１ｂは、記憶装置１−３内のデータへのアクセスが許可されている第１のデータアクセス装置２−３に障害が発生すると、第２のデータアクセス装置２−４から記憶装置１−３内のデータへのアクセスを許可する。変更手段１ｃは、データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報３を、記憶装置１−３内のデータに対するアクセス要求の転送先が第２のデータアクセス装置２−４となるように変更する。【選択図】図１
2014026321.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、
前記記憶装置内のデータへのアクセスが許可されている第１のデータアクセス装置に障害が発生すると、第２のデータアクセス装置から前記記憶装置内のデータへのアクセスを許可する許可手段と、
データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報を、前記記憶装置内のデータに対するアクセス要求の転送先が前記第２のデータアクセス装置となるように変更する変更手段と、
を有するストレージ装置。
【請求項２】
前記許可手段は、複数のデータアクセス装置を複数のグループに分けて管理しており、前記第１のデータアクセス装置と同じグループに属するデータアクセス装置を、前記第２のデータアクセス装置に決定する、
ことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記許可手段は、前記記憶装置との間の通信経路の長さが最も短いデータアクセス装置を、前記第２のデータアクセス装置に決定する、
ことを特徴とする請求項１または２記載のストレージ装置。
【請求項４】
前記許可手段は、データのアクセスが許可されている記憶装置の数が最も少ないデータアクセス装置を、前記第２のデータアクセス装置に決定する、
ことを特徴とする請求項１乃至３のいずれかに記載のストレージ装置。
【請求項５】
前記許可手段は、複数のデータアクセス装置それぞれが、サービスを提供している運用系か、サービスを提供していない待機系かを管理しており、待機系のデータアクセス装置を、前記第２のデータアクセス装置に決定する、
ことを特徴とする請求項１乃至４のいずれかに記載のストレージ装置。
【請求項６】
前記許可手段は、前記第２のデータアクセス装置に対して、前記記憶装置へのアクセス環境の構築を指示することを特徴とする請求項１乃至５のいずれかに記載のストレージ装置。
【請求項７】
記憶装置と、
複数のデータアクセス装置と、
前記記憶装置内のデータへのアクセスが許可されている第１のデータアクセス装置に障害が発生すると、第２のデータアクセス装置から前記記憶装置内のデータへのアクセスを許可する許可手段と、
データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報を、前記記憶装置内のデータに対するアクセス要求の転送先が前記第２のデータアクセス装置となるように変更する変更手段と、
前記対応情報に基づいて、前記記憶装置内のデータへのアクセス要求を前記第２のデータアクセス装置に転送する転送手段と、
を有する情報処理装置。
【請求項８】
複数の記憶装置と、
複数のデータアクセス装置と、
通信が許可された記憶装置とデータアクセス装置との間の通信を中継する複数の中継装置と、
第１のデータアクセス装置に障害が発生すると、前記第１のデータアクセス装置からのデータのアクセスが許可されている記憶装置に対する、第２のデータアクセス装置からのデータのアクセスの許可を、該記憶装置または第２のデータアクセス装置に接続された中継装置に指示し、データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報を、該記憶装置内のデータに対するアクセス要求の送信先が前記第２のデータアクセス装置となるように変更し、該対応情報に基づいて、該記憶装置内のデータへのアクセス要求を前記第２のデータアクセス装置に転送する情報処理装置と、
を有する情報処理システム。
【請求項９】
情報処理装置が、
記憶装置内のデータへのアクセスが許可されている第１のデータアクセス装置に障害が発生すると、第２のデータアクセス装置から前記記憶装置内のデータへのアクセスを許可し、
データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報を、前記記憶装置内のデータに対するアクセス要求の転送先が前記第２のデータアクセス装置となるように変更する、
アクセス制御方法。
【請求項１０】
情報処理装置に、
記憶装置内のデータへのアクセスが許可されている第１のデータアクセス装置に障害が発生すると、第２のデータアクセス装置から前記記憶装置内のデータへのアクセスを許可し、
データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報を、前記記憶装置内のデータに対するアクセス要求の転送先が前記第２のデータアクセス装置となるように変更する、
処理を実行させるアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データへのアクセスの可否を制御するストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラムに関する。
【背景技術】
【０００２】
コンピュータシステムでは、様々なデータを、サーバに接続されたストレージ装置内に保持している。多くの場合、サーバが故障すると、そのサーバに接続されたストレージ装置内のデータにアクセスできなくなる。このように、ストレージ装置に対するデータアクセス環境が劣化する場合がある。
【０００３】
そこで、サーバが故障してもストレージ装置内のデータにアクセスできるようにするため、例えば、同じデータが、複数のサーバそれぞれに接続されたストレージ装置で多重化して保持される。これにより、あるサーバが故障しても、そのサーバが管理しているデータと同じデータを、他のサーバから取得し、サービスを継続することができる。サーバ単位でデータを多重化する技術としては、例えばＲＡＩＮ（Redundant Array of Independent Nodes）と呼ばれる技術がある。
【０００４】
データを多重化する技術としては、例えば、ミラーリング技術がある。ミラーリング技術では、あるサーバが管理するハードディスクドライブ（ＨＤＤ：Hard Disk Drive）内のデータのコピー（冗長データ）を、別のサーバ（ミラーサーバ）のＨＤＤに格納する。また、データを多重化する技術として、レプリケーションと呼ばれる技術もある。レプリケーションでは、あるサーバが管理するデータの複製（レプリカ）を、別のサーバで管理させ、もとのデータとレプリカとの内容を同期させる。レプリケーションでは、例えば、オブジェクトと呼ばれるデータ単位でレプリカを作成し、複数のサーバに分散して管理させることができる。
【０００５】
このように、データを多重化することで、１つのサーバに障害が発生してもサービスを継続することができる。ただし、サーバの障害の発生によりデータの冗長度が低下し、データの信頼性も低下する。そこで、冗長度を回復させるリカバリ処理が行われる。リカバリ処理では、例えば、障害が発生したサーバが管理していたデータの冗長データのコピーを、他の正常に機能しているサーバに転送する。そして冗長データのコピーを受信したサーバが、以後、受信したデータを管理する。
【０００６】
なおサーバの障害発生時に適用される技術として、現用のサーバの障害を検出した場合、代替となる他のサーバと現用のサーバとのネットワーク接続形態を変更する技術がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１６４３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、データ転送によるリカバリ処理では、リカバリに時間がかかる。すなわち、リカバリに要する時間は、リカバリ対象のデータ量が多いほど長期化する。特に、近年はクラウドコンピューティングを用いたサービスの普及により、１つのサーバで管理するデータ量が大容量化している。そのため、サーバに障害が発生した際のリカバリ時間も長期化している。リカバリ処理が長期化すると、データの冗長度が低下している期間が長くなり、信頼性が低下してしまう。
【０００９】
１つの側面では、本発明は、データへのアクセス環境を迅速に回復できるストレージ装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、記憶装置と、記憶装置内のデータへのアクセスが許可されている第１のデータアクセス装置に障害が発生すると、第２のデータアクセス装置から記憶装置内のデータへのアクセスを許可する許可手段と、データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報を、記憶装置内のデータに対するアクセス要求の転送先が第２のデータアクセス装置となるように変更する変更手段と、を有するストレージ装置が提供される。
【発明の効果】
【００１１】
１態様によれば、データへのアクセス環境を迅速に回復できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る装置の機能構成例を示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】コントロールサーバのハードウェアの一構成例を示す図である。
【図４】ＳＡＳエクスパンダのハードウェアの一例を示す図である。
【図５】コントロールサーバとフロントエンドサーバとの機能の一例を示すブロック図である。
【図６】サーバノードのゾーニングとレプリケーションとの関係の一例を示す図である。
【図７】対応情報のデータ構造の一例を示す図である。
【図８】資源管理情報のデータ構造の一例を示す図である。
【図９】接続切替処理の手順を示すフローチャートである。
【図１０】ディスク接続解除処理の手順を示すフローチャートである。
【図１１】サーバノード選択・ディスク接続処理の手順を示すフローチャートである。
【図１２】対応情報更新処理の手順の一例を示すフローチャートである。
【図１３】第３の実施の形態におけるサーバノード選択・ディスク接続処理の手順の一例を示す図である。
【図１４】ＳＡＳエクスパンダの接続形態の他の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。第１の実施の形態は、記憶装置にアクセスするデータアクセス装置に障害が発生した場合、他のデータアクセス装置にその記憶装置へのアクセスを許可し、その記憶装置内のデータ内へのアクセス要求を、他のデータアクセス装置に転送するようにしたものである。
【００１４】
図１は、第１の実施の形態に係る装置の機能構成例を示す図である。情報処理装置Ｘはストレージ装置１、複数のデータアクセス装置２−１，２−２，２−３，２−４，・・・、対応情報３、および転送手段４を有する。情報処理装置Ｘは、端末装置ＹあるいはアプリケーションサーバＺからのデータアクセス要求に応じて、ストレージ装置１へのデータの格納、またはストレージ装置１からのデータの読み出しを行う。
【００１５】
ストレージ装置１は、複数の記憶装置１−１，１−２，１−３，・・・、中継装置１ａ、許可手段１ｂ、および変更手段１ｃを有している。記憶装置１−１，１−２，１−３，・・・は、例えばＨＤＤ、またはＳＳＤ（Solid State Drive）である。記憶装置１−１にはデータ群５−１が格納され、記憶装置１−２にはデータ群５−２が格納され、記憶装置１−３には、データ群５−３が格納されている。
【００１６】
中継装置１ａは、複数のデータアクセス装置２−１，２−２，２−３，２−４，・・・と複数の記憶装置１−１，１−２，１−３，・・・とに接続されている。そして中継装置１ａは、データアクセス装置と、そのデータアクセス装置からのデータのアクセスが許可されている記憶装置との間の通信を中継する。図１の例では、データアクセス装置に対して、そのデータアクセス装置からのデータのアクセスが許可されている記憶装置が、実線で接続されている。データアクセス装置と記憶装置を接続する破線は、以前はデータのアクセスが許可されていたが、その後、禁止されたことを示している。中継装置１ａは、例えばＳＡＳ（Serial Attached SCSI（Small Computer System Interface））エクスパンダ、ＳＡＳスイッチなどである。ＳＡＳエクスパンダやＳＡＳスイッチであれば、ゾーニング技術により、特定のデータアクセス装置と特定の記憶装置との間に限定して、通信を中継することができる。
【００１７】
許可手段１ｂは、記憶装置内のデータへのアクセスが許可されているデータアクセス装置に障害が発生すると、他のデータアクセス装置からその記憶装置内のデータへのアクセスを許可する。例えば許可手段１ｂは、データアクセス装置２−４から記憶装置１−３へのデータのアクセスを許可する場合、中継装置１ａに対し、データアクセス装置２−４と記憶装置１−３との間の通信を中継するように指示する。
【００１８】
変更手段１ｃは、データアクセス装置から記憶装置内のデータへのアクセスが新たに許可されると、データと該データへのアクセス要求の転送先となるデータアクセス装置との対応関係を示す対応情報３を変更する。例えば変更手段１ｃは、記憶装置内のデータに対するアクセス要求の転送先が、新たに許可されたデータアクセス装置となるように、アクセス要求の転送先を示す対応情報３を変更する。例えば、変更手段１ｃは、データアクセス装置２−４から記憶装置１−３内のデータへのアクセスが許可されると、記憶装置１−３内のデータへのアクセス要求がデータアクセス装置２−４に転送されるように、対応情報３を更新する。例えば変更手段１ｃは、記憶装置１−３の識別情報、または記憶装置１−３を格納先とするデータの識別情報に対応付けて、データアクセス装置２−４の識別情報を、対応情報３に設定する。
【００１９】
データアクセス装置２−１，２−２，２−３，２−４，・・・は、転送手段４経由でデータのアクセス要求を受信する。そして、データアクセス装置２−１，２−２，２−３，２−４，・・・は、中継装置１ａにおいて通信が許容されている記憶装置内の、受信したアクセス要求に示されるデータにアクセスする。例えばアクセス要求が、データの書き込み要求であれば、データアクス装置は、記憶装置にデータを書き込む。またアクセス要求がデータの読み出し要求であれば、データアクセス装置は、記憶装置からデータを読み出し、アクセス要求の送信元の端末装置ＹあるいはアプリケーションサーバＺへ、読み出したデータを送信する。
【００２０】
対応情報３は、データに対するアクセス要求の転送先を示す情報である。対応情報３は、例えば情報処理装置Ｘの主記憶装置や補助記憶装置に格納される。対応情報３には、各記憶装置に格納されるデータ群の共通属性と、その記憶装置内のデータへのアクセス要求の転送先となるデータアクセス装置が設定されている。データ群の共通属性は、同じ記憶装置に格納されているデータ群に共通の属性である。例えばデータまたはそのデータの管理情報に基づいて生成したハッシュ値を、共通属性として使用することができる。
【００２１】
転送手段４は、対応情報３に基づいて、記憶装置１−３内のデータへのアクセス要求を第２のデータアクセス装置２−４に転送する。例えば転送手段４は、アクセス要求で指定されたデータの共通属性を求める。次に、転送手段４は、対応情報３を参照し、求めた共通属性に対応付けられたデータアクセス装置を特定する。そして転送手段４は、特定したデータアクセス装置に、アクセス要求を転送する。
【００２２】
このような情報処理装置Ｘにおいて、いずれかのデータアクセス装置で障害が発生すると、そのデータアクセス装置からデータのアクセスが許可されていた記憶装置に対して、他のデータアクセス装置からのアクセスが許可される。例えば、データアクセス装置２−３から記憶装置１−３内のデータへのアクセスが許可されており、データアクセス装置２−４から記憶装置１−３内のデータへのアクセスが許可されていない状況で、データアクセス装置２−３に障害が発生したものとする。この場合、許可手段１ｂは、正常に動作しているデータアクセス装置の中から、データアクセス装置２−３の代わりに記憶装置１−３へのアクセスを行わせるデータアクセス装置を選択する。例えばデータアクセス装置２−４が選択されたものとする。すると許可手段１ｂは、選択したデータアクセス装置２−４から記憶装置１−３内のデータへのアクセスを許可する。例えば許可手段１ｂは、データアクセス装置２−４と記憶装置１−３との間の通信を中継するように、中継装置１ａに指示する。
【００２３】
次に変更手段１ｃは、記憶装置１−３に格納されているデータへのアクセス要求の転送先がデータアクセス装置２−４となるように、対応情報３を更新する。例えば、対応情報３内の記憶装置１−３に対応付けられたデータアクセス装置の識別番号を、障害が発生したデータアクセス装置の２−３の識別番号から、新たにアクセスを許可したデータアクセス装置２−４の識別番号に変更する。
【００２４】
その後、端末装置ＹあるいはアプリケーションサーバＺから情報処理装置Ｘに、記憶装置１−３内のデータに対するアクセス要求が入力されると、そのアクセス要求を転送手段４が受信する。転送手段４は、対応情報３を参照して、受信したアクセス要求の転送先が、データアクセス装置２−４であると判断する。そして転送手段４は、受信したデータアクセス要求を、データアクセス装置２−４に転送する。データアクセス装置２−４は、受信したアクセス要求に従って、記憶装置１−３内のデータにアクセスする。
【００２５】
このように、第１の実施の形態では、データアクセス装置が故障した場合、そのデータアクセス装置からデータのアクセスが許可されていた記憶装置に対して、他のデータアクセス装置からアクセスできるようにした。これにより、データアクセス装置が故障しても、データ転送をせずに、そのデータアクセス装置を介してアクセスしていた記憶装置へのアクセス環境を回復させることができる。すなわち、データが多重化されていた場合であれば、情報処理装置Ｘで提供されるデータの多重度を回復させることができる。またデータが多重化されていない場合であれば、データアクセス装置の故障によってアクセス不能となったデータへのアクセスが可能となるように、アクセス環境を回復させることができる。
【００２６】
そして第１の実施の形態では、データ転送をせずにアクセス環境を回復できるため、アクセス環境の迅速な回復が可能である。しかも記憶装置の記憶容量が膨大となっても、データのアクセス環境の回復に要する時間が長期化せずにすむ。このようなアクセス環境の迅速な回復により、システムの信頼性が向上する。
【００２７】
さらに、データ転送が行われないことにより、データ転送時に発生する、データ転送処理とユーザのサービス利用との競合も抑止される。すなわち、データのアクセス環境の回復のために記憶装置内のデータを転送しようとすると、複数のデータアクセス装置を介したデータ転送を行うこととなる。するとデータアクセス装置の処理能力が、情報処理装置Ｘ内でのデータ転送処理に費やされてしまい、ユーザに対するサービス提供に割り当てることができる処理能力が低下してしまう。第１の実施の形態では、データ転送をせずにデータのアクセス環境の回復が可能であるため、回復処理時のユーザに提供するサービスの処理能力の低下が抑止される。しかも、データ転送が不要となったことで、ネットワークの帯域を、ユーザサービスに有効利用でき、サービス品質が向上する。
【００２８】
なお、許可手段１ｂ、変更手段１ｃは、例えば情報処理装置Ｘまたはストレージ装置１が有するプロセッサにより実現することができる。また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００２９】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、データを冗長化して管理するクラウドストレージシステムにおいて、サーバの障害発生時に、冗長度を迅速に回復できるようにしたものである。また第２の実施の形態のストレージシステムは、オブジェクトストレージとして機能するものとする。オブジェクトストレージとは、オブジェクトと呼ばれるデータ単位でデータを管理するシステムである。オブジェクトストレージでは、階層型のディレクトリ構造におけるディレクトリを指定せずに、オブジェクト固有の情報に基づいて、そのオブジェクトにアクセスすることができる。
【００３０】
図２は、第２の実施の形態のシステム構成例を示す図である。第２の実施の形態に係るストレージシステムＡは、ネットワーク２０を介して接続された端末装置２３ａ，２３ｂ，・・・あるいはストレージシステムＡに格納されているデータを利用するアプリケーションサーバ２４ａ，２４ｂ，・・・が接続されている。ストレージシステムＡは、端末装置２３ａ，２３ｂ，・・・を使用するユーザあるいはアプリケーションサーバ２４ａ，２４ｂ，・・・の要求に対して、ストレージの使用環境を提供する。
【００３１】
ストレージシステムＡは、コントロールサーバ１００、フロントエンドサーバ２００、複数のサーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・、ネットワークスイッチ２１，２２、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・、およびディスクエンクロージャ５０，５０ａ，５０ｂ，・・・を有する。ディスクエンクロージャ５０，５０ａ，５０ｂ，・・・それぞれには、複数のＨＤＤ５１，５２，・・・が内蔵されている。
【００３２】
ネットワークスイッチ２１は、フロントエンドサーバ２００、および複数のサーバノード３１，３２，３３，３４，３５，・・・との間の通信に使用される。例えばフロントエンドサーバ２００で振り分けられたアクセス要求は、ネットワークスイッチ２１を介してサーバノードに転送される。またサーバノードからのアクセス要求に対応する応答が、ネットワークスイッチ２１を介してフロントエンドサーバ２００に転送される。
【００３３】
ネットワークスイッチ２２は、コントロールサーバ１００とＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・との間の通信に使用される。例えば、コントロールサーバ１００とＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・に対する、サーバノードとＨＤＤとの接続・切断の指示が、ネットワークスイッチ２２で転送される。
【００３４】
コントロールサーバ１００は、ネットワークスイッチ２１，２２に接続されている。コントロールサーバ１００は、ネットワークスイッチ２２を介してＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・と通信し、任意のサーバノードとＨＤＤとの間の通信の接続・切断を制御する。例えば、コントロールサーバ１００は、ＳＡＳエクスパンダ内のゾーニングの設定により、任意のサーバノードと任意のＨＤＤとの通信を可能とすることができる。ゾーニングの設定は、例えばコントロールサーバ１００からＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・に、ＳＭＰ（Serial Management Protocol）コマンドを送信することで実施可能である。コントロールサーバ１００は、ゾーニングの設定を指示するＳＭＰコマンドを、ＩＰ（Internet Protocol）などの他のプロトコルのパケットでカプセル化して、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・に送信することができる。
【００３５】
またコントロールサーバ１００は、ネットワークスイッチ２１を介して、フロントエンドサーバ２００やサーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・と通信することができる。例えばコントロールサーバ１００は、サーバノードとＨＤＤとの間の接続関係を変更した場合、変更後のサーバノードとＨＤＤとの対応関係を示す情報を、フロントエンドサーバ２００に通知する。またコントロールサーバ１００は、サーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・それぞれと定期的に通信を行い、各サーバノードの死活状態を監視する。死活状態の監視とは、サーバノードが正常に動作しているか、サーバノードに異常があるかを定期的に判断する処理である。
【００３６】
フロントエンドサーバ２００は、端末装置２３ａ，２３ｂ，・・・あるいはアプリケーションサーバ２４ａ，２４ｂ，・・・からのデータのアクセス要求を、アクセス対象のデータを管理しているサーバノードに振り分ける。例えばフロントエンドサーバ２００は、ユーザからのオブジェクトのＰＵＴ／ＧＥＴ要求を、そのオブジェクトを管理しているサーバノードに振り分ける。ＰＵＴ要求はオブジェクトの書き込み要求であり、ＧＥＴ要求は、オブジェクトの読み出し要求である。
【００３７】
フロントエンドサーバ２００は、例えば、アクセス対象のオブジェクトの固有情報に基づいて、アクセス要求の振り分け先となるサーバノードを決定する。例えばフロントエンドサーバ２００は、アクセス対象のオブジェクトを使用するユーザのアカウント名や、そのオブジェクトのオブジェクト名などを含むオブジェクトのパスをハッシュ関数に入力し、ハッシュ値を求める。ハッシュ関数としては、例えばＭＤ５（Message Digest Algorithm 5）などの一方向ハッシュ関数が用いられる。ハッシュ関数の演算の結果、ハッシュ値として、一定幅のビット列が得られる。フロントエンドサーバ２００は、オブジェクトの固有情報から得られたハッシュ値の上位ｎビット（ｎは１以上の整数）の値に応じて、そのオブジェクトのアクセス要求の振り分け先となるサーバノードを判定する。例えばフロントエンドサーバ２００には、ハッシュ値の上位ｎビットの値と、その値に対応するフロントエンドサーバとの対応関係を示す対応情報が予め設定されている。そしてフロントエンドサーバ２００は、対応情報を参照して、オブジェクトのアクセス要求の振り分け先となるサーバノードを判定する。
【００３８】
サーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・は、ＣＰＵやメモリを有するコンピュータである。サーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・は、ネットワークスイッチ２１とＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・とに接続されている。サーバノード３１，３２，３３，３４，３５，・・・は、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・を介してＨＤＤに接続される。そしてサーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・は、ネットワークスイッチ２１を介してオブジェクトへのアクセス要求を受け取り、そのアクセス要求に応じて、接続されたＨＤＤにアクセスする。
【００３９】
ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・は、コントロールサーバ１００からの指示に従って、サーバノードとＨＤＤとの間の通信を可能にする。コントロールサーバ１００からの指示は、例えばＳＭＰコマンドによって与えられる。サーバノードとＨＤＤとの接続とは、サーバノードとＨＤＤとの間で通信が可能な状態にすることである。例えばＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・は、サーバノードから送信された信号は、そのサーバノードに接続されたＨＤＤに対してのみ送信する。
【００４０】
なお図２の例では、複数のＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・が、並列にカスケード接続されている。ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・を並列にカスケード接続することで、サーバノードやＨＤＤに局所性が生まれる。サーバノードやＨＤＤに局所性があることで、障害発生の影響が、できるだけ局所的な範囲に留まるように制御にすることができる。例えば障害が発生したサーバノードに接続されていたＨＤＤを他のサーバノードに接続する場合、障害が発生したサーバノードと同じＳＡＳエクスパンダに接続されているサーバノードに、そのＨＤＤを接続するようにする。これにより、障害発生時のリカバリ処理の影響範囲が、ＳＡＳエクスパンダを共有するサーバノード内に抑止される。
【００４１】
またストレージシステムＡでは、複数のＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・が使用されているが、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・は、ストレージ装置のようなディスクコントローラを有しておらず、安価に製造可能である。さらにストレージシステムＡでは、サーバノード間でのレプリケーションによりデータが多重化されるため、ＲＡＩＤ（Redundant Array of Inexpensive Disks）装置を用いずにデータの多重化が可能である。
【００４２】
なお、図２の例では、コントロールサーバ１００とフロントエンドサーバ２００とを別の装置としているが、コントロールサーバ１００とフロントエンドサーバ２００との機能を１つの装置にまとめてもよい。またディスクエンクロージャ５０，５０ａ，５０ｂ，・・・には、少なくとも一部のＨＤＤに代えて、ＳＳＤを実装することもできる。
【００４３】
図２に示したＨＤＤ５１，５２，・・・は、図１に示した第１の実施の形態における記憶装置１−１，１−２，１−３，・・・の一例である。図２に示したＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・は、図１に示した第１の実施の形態における中継装置１ａの一例である。また図２に示したサーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・は、図１に示した第１の実施の形態におけるデータアクセス装置２−１，２−２，２−３，２−４，・・・の一例である。
【００４４】
次に、各装置のハードウェア構成について説明する。
図３は、コントロールサーバのハードウェアの一構成例を示す図である。コントロールサーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１００ａを介してＲＡＭ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４５】
ＲＡＭ１０２は、コントロールサーバ１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００４６】
バス１００ａに接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７、複数の通信インタフェース１０８，１０９がある。
【００４７】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、コントロールサーバ１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００４８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４９】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５０】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５１】
機器接続インタフェース１０７は、コントロールサーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置１５やメモリリーダライタ１６を接続することができる。メモリ装置１５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ１６は、メモリカード１７へのデータの書き込み、またはメモリカード１７からのデータの読み出しを行う装置である。メモリカード１７は、カード型の記録媒体である。
【００５２】
通信インタフェース１０８は、ネットワークスイッチ２１に接続されている。通信インタフェース１０８は、ネットワークスイッチ２１を介してサーバノードと通信する。
通信インタフェース１０９は、ネットワークスイッチ２２に接続されている。通信インタフェース１０９は、ネットワークスイッチ２２を介して、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・と通信する。
【００５３】
以上のようなハードウェア構成によって、コントロールサーバ１００の処理機能を実現することができる。またフロントエンドサーバ２００やサーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・も、コントロールサーバ１００と同様のハードウェアにより実現できる。また、第１の実施の形態に示した情報処理装置Ｘも、図３に示したコントロールサーバ１００と同様のハードウェアにより実現することができる。
【００５４】
コントロールサーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コントロールサーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コントロールサーバ１００に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。またコントロールサーバ１００に実行させるプログラムを、光ディスク１４、メモリ装置１５、メモリカード１７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５５】
図４は、ＳＡＳエクスパンダのハードウェアの一例を示す図である。第２の実施の形態では、ＳＡＳエクスパンダ４０がＳＡＳエクスパンダであり、ＳＡＳエクスパンダが有するゾーニング機能により、サーバノードとＨＤＤとの間の通信の許可・不許可の制御を行うものとする。ゾーニングでは、物理リンクポートが複数のゾーンに分類され、同一ゾーンに属する物理リンクポート間の通信が、ＳＡＳエクスパンダ４０内で許可される。ＳＡＳエクスパンダ４０内のゾーニング設定は、外部からのＳＭＰコマンドの入力により、変更可能である。なお、後述するサーバノードのゾーニングと区別するため、ＳＡＳエクスパンダにおけるゾーンを、ＳＡＳゾーンと呼ぶこととする。
【００５６】
以下、ＳＡＳエクスパンダ内で物理リンクポート間の通信を許可し、通信の中継を可能とすることを、各物理リンクポートに接続されたサーバノードと記憶装置とを接続すると呼ぶこととする。逆に、ＳＡＳエクスパンダ内で物理リンクポート間の通信を不許可にし、通信を中継できなくすることを、各物理リンクポートに接続されたサーバノードと記憶装置とを切断すると呼ぶこととする。
【００５７】
ＳＡＳエクスパンダ４０は、制御部４１、通信インタフェース４２、および複数の物理リンクポート（ＰＨＹ）４４ａ，４４ｂ，４４ｃ，４４ｄ，４４ｅ，４４ｆ，４４ｇ，・・・，４４ｚを有している。
【００５８】
制御部４１は、ＣＰＵやメモリを内蔵しており、ＳＡＳエクスパンダ４０全体を制御する。例えば制御部４１は、通信インタフェース４２を介してコントロールサーバ１００からの指示を取得し、指示に従って、物理リンクポート間の通信の許可または不許可の制御を行う。例えば、制御部４１は、ゾーン情報４１ａを有している。ゾーン情報４１ａには、ゾーンＩＤに対応付けて、そのＳＡＳゾーンＩＤで示されるＳＡＳゾーンに属する物理リンクポートのＩＤ（物理リンクポートＩＤ）が設定されている。制御部４１は、コントロールサーバ１００からの指示に従って、各ＳＡＳゾーンに属する物理リンクポートを示すゾーン情報４１ａを変更し、ゾーン情報４１ａに従って物理リンクポート間の通信を許可する。
【００５９】
通信インタフェース４２は、コントロールサーバ１００との間で通信を行う。通信インタフェース４２は、例えばシリアル通信によりコントロールサーバ１００と通信する。
物理リンクポート（ＰＨＹ）４４ａ，４４ｂ，４４ｃ，４４ｄ，４４ｅ，４４ｆ，４４ｇ，・・・，４４ｚは、サーバノード３１，３２，３３，・・・、ＨＤＤ５１，５２，５３，５４，・・・、他のＳＡＳエクスパンダ４０ａなどを接続する通信ポートである。サーバノード３１，３２，３３，・・・に接続されている物理リンクポートと、ＨＤＤ５１，５２，５３，５４，・・・に接続されている物理リンクポートとの間は、制御部４１によって通信の許可・不許可の制御が行われる。
【００６０】
サーバノード３１，３２，３３，・・・は、それぞれＨＢＡ（Host Bus Adapter）３１−１，３２−１，３３−１，・・・を有している。ＨＢＡ３１−１，３２−１，３３−１，・・・は、ＨＤＤと通信するためのインタフェースである。そしてＨＢＡ３１−１，３２−１，３３−１，・・・が、ＳＡＳエクスパンダ４０の物理リンクポートに接続される。
【００６１】
このようなＳＡＳエクスパンダ４０を用いて、コントロールサーバ１００からの指示に応じて、サーバノードとＨＤＤとの間の接続・切断の制御が行われる。例えば制御部４１は、コントロールサーバ１００から、サーバノードとＨＤＤとの間の接続指示を受け取ると、指定されたサーバノードとＨＤＤとの物理リンクポートが同一ゾーンとなるように、指示に従ってゾーン情報４３ａを更新する。そして制御部４１は、ゾーン情報４３ａに従って、同一ＳＡＳゾーンに属する物理リンクポート間の通信を中継する。
【００６２】
また、制御部４１は、コントロールサーバ１００から、接続されているサーバノードとＨＤＤとを切断する指示を受け取ると、例えば、そのＨＤＤに接続された物理リンクポートを、接続解除用のＳＡＳゾーンに含める。接続解除用のゾーンは、サーバノードに接続された物理リンクポートが属していないＳＡＳゾーンである。図４の例では、接続解除用のＳＡＳゾーンのＳＡＳゾーンＩＤが「９９」である。ＨＤＤを接続解除用のＳＡＳゾーンに含め、制御部４１がＳＡＳエクスパンダ４０内での物理リンクポート間の接続を変更することで、接続解除用のＳＡＳゾーンに加えられたＨＤＤは、すべてのサーバノードから切断される。
【００６３】
このように、サーバノード３１，３２，３３，・・・は、ＳＡＳエクスパンダ４０を介して、特定のＨＤＤに接続される。図４の例では、サーバノード３１はＨＤＤ５１に接続され、サーバノード３２は、ＨＤＤ５２に接続され、サーバノード３３は、ＨＤＤ５３，５４に接続されている。そしてサーバノード３１，３２，３３，・・・は、接続されたＨＤＤに対してアクセスすることができる。
【００６４】
なお図４の例では、物理リンクポート４４ｚにＳＡＳエクスパンダ４０ａが接続されている。図２に示したように、ＳＡＳエクスパンダ４０ａの先には、さらに別のＳＡＳエクスパンダ４０ｂ，・・・が接続されている。このとき、ＳＡＳエクスパンダ４０の物理リンクポートとＳＡＳエクスパンダ４０ａの物理リンクポートとを、同じＳＡＳゾーンに含めることも可能である。例えばＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・が、互いに相手のデバイスアドレスなどの情報を取得し、他のＳＡＳエクスパンダの物理リンクポートを含めて、各物理リンクポートにシステム内で一意の物理リンクポートＩＤを付与する。そして、例えばＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・が通信する際に、どのＳＡＳゾーンの通信かを明示する。これにより、複数のＳＡＳエクスパンダを跨ったＳＡＳゾーンであっても、そのＳＡＳゾーン内での通信のみを許可することができる。
【００６５】
次に、コントロールサーバ１００とフロントエンドサーバ２００とのそれぞれが有する機能について説明する。
図５は、コントロールサーバとフロントエンドサーバとの機能の一例を示すブロック図である。コントロールサーバ１００は、資源管理情報記憶部１１０、サーバノード監視部１２０、許否指示部１３０、および対応関係変更部１４０を有する。
【００６６】
資源管理情報記憶部１１０は、サーバ資源とディスク資源との管理情報（資源管理情報）を記憶する。例えば、コントロールサーバ１００のＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、資源管理情報記憶部１１０として使用される。資源管理情報におけるサーバ資源の情報には、例えばサーバノードが使用されているか否かの情報や、サーバノードが使用するＨＤＤの情報が含まれる。また資源管理情報におけるディスク資源の情報には、例えば、ＨＤＤが接続されている、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・の物理リンクポートのＩＤが含まれる。
【００６７】
サーバノード監視部１２０は、サーバノード３１，３２，３３，・・・の死活監視を行う。例えばサーバノード監視部１２０は、各サーバノード３１，３２，３３，・・・に対して定期的に制御コマンドを送信し、制御コマンドに対する応答の有無により、サーバノードが正常に動作しているか否かを判断する。なお各サーバノード３１，３２，３３，・・・が定期的にハートビートを送信するようにし、サーバノード監視部１２０は、ハートビートの受信の有無により死活監視を行うこともできる。サーバノード監視部１２０は、障害が発生したサーバノードを検出した場合、そのサーバノードの識別情報（例えばＩＰアドレス）を、許否指示部１３０に通知する。
【００６８】
許否指示部１３０は、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・に対して、サーバノードとＨＤＤとの接続・切断を指示する。サーバノードとＨＤＤとの接続の指示とは、サーバノードからＨＤＤへのアクセスを許可する場合に、そのサーバノードとそのＨＤＤ間で通信されるデータを中継するように、ＳＡＳエクスパンダに指示することである。サーバノードとＨＤＤとの切断の指示とは、サーバノードからＨＤＤへのアクセスを不許可にする場合に、そのサーバノードとそのＨＤＤ間で通信されるデータを中継しないようにＳＡＳエクスパンダに指示することである。例えば許否指示部１３０は、障害が発生したサーバノードに接続されているＨＤＤの、他のサーバノードへの接続指示を、ＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・に対して送信する。なお許否指示部１３０は、資源管理情報記憶部１１０を参照して、障害が発生したサーバノードに接続されているＨＤＤの新たな接続先となるサーバノードを選択する。また許否指示部１３０は、サーバノードとＨＤＤとの接続または切断をＳＡＳエクスパンダ４０，４０ａ，４０ｂ，・・・に指示した後、変更後の接続関係に従って資源管理情報記憶部１１０内の資源管理情報を更新する。
【００６９】
対応関係変更部１４０は、許否指示部１３０により、サーバノードとＨＤＤとの接続状態が変更されると、フロントエンドサーバ２００が保持する対応情報を変更する。対応情報は、ＨＤＤ内のオブジェクト単位の各データと、そのデータにアクセスが可能なサーバノードとの対応関係を示す情報である。例えば対応関係変更部１４０は、フロントエンドサーバ２００で対応情報を記憶する対応情報記憶部２１０に、リモートアクセスを行い、対応情報を更新する。
【００７０】
フロントエンドサーバ２００は、対応情報記憶部２１０とリクエスト制御部２２０とを有する。
対応情報記憶部２１０は、オブジェクト単位の各データを格納するＨＤＤが、どのサーバノードに接続されているのかを示す対応情報を記憶する。例えば、フロントエンドサーバ２００内のＲＡＭまたはＨＤＤの記憶領域の一部が、対応情報記憶部２１０として使用される。
【００７１】
リクエスト制御部２２０は、端末装置２３ａ，２３ｂ，・・・あるいはアプリケーションサーバ２４ａ，２４ｂ，・・・からデータのアクセス要求を受け取る。次に、リクエスト制御部２２０は、対応情報記憶部２１０内の対応情報に基づいて、アクセス対象のデータを管理しているサーバノードを特定する。そしてリクエスト制御部２２０は、特定したサーバノードへ、アクセス要求を転送する。
【００７２】
なお、図５に示した許否指示部１３０は、図１に示した第１の実施の形態における許可手段１ｂの一例である。また図５に示した対応関係変更部１４０は、図１に示した第１の実施の形態における変更手段１ｃの一例である。また図５に示したリクエスト制御部２２０は、図１に示した第１の実施の形態における転送手段４の一例である。また、図５に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００７３】
次に、コントロールサーバ１００における資源の管理方法について説明する。第２の実施の形態では、コントロールサーバ１００は、図４に示したＳＡＳエクスパンダのゾーニングとは別に、サーバノードを複数のゾーンに分類する。そしてコントロールサーバ１００は、同一ゾーンに属するサーバノードとＨＤＤとを接続する。
【００７４】
またフロントエンドサーバ２００がレプリケーション技術を用いてデータを多重化して格納する場合がある。この場合、コントロールサーバ１００は、同一内容のデータ（レプリカ）が異なるゾーンのサーバノードが管理するＨＤＤに分散して格納されるように、サーバノードとＨＤＤとの接続を行う。
【００７５】
図６は、サーバノードのゾーニングとレプリケーションとの関係の一例を示す図である。図６に示すようにサーバノード３１，３２，３３，３４，３５，・・・は、複数のゾーン６１〜６５のいずれかに属している。そしてサーバノード３１，３２，３３，３４，３５，・・・には、ＨＤＤ５１，５２，５３，５４，５５，・・・が接続されている。サーバノードのゾーン分けは、電源系統やラック別などの物理的配置に基づいて行われる。例えば電源系統でゾーン分けをした場合、電源を共有するサーバノード同士が、同じゾーンにまとめられる。
【００７６】
またレプリケーションにより、同一内容の複数のデータが、異なるＨＤＤに分散して格納されている。図６の例では、データ７１〜７３が同じ内容であり、データ７４〜７６が同じ内容である。ここで、レプリケーションにおける複製元のデータ７１，７４を「レプリカ＃０」とする。また「レプリカ＃０」のデータ７１，７４から２つずつの複製が作成され、複製されたデータ７２，７３，７５，７６を「レプリカ＃１」、「レプリカ＃２」とする。
【００７７】
第２の実施の形態では、同じ内容のデータを有する複数のＨＤＤは、互いに異なるゾーンのサーバノードに接続される。例えば同じ内容のデータ７１〜７３を格納するＨＤＤ５１，５３，５５のうち、データ７１を格納するＨＤＤ５１はゾーン６１に属するサーバノード３１に接続されている。そのため、データ７２を格納するＨＤＤ５３は、ゾーン６１とは別のゾーン６３に属するサーバノード３３に接続されている。さらに、データ７３を格納するＨＤＤ５５は、ゾーン６１，６３とのいずれとも異なるゾーン６５に属するサーバノード３５に接続されている。
【００７８】
このように、電源を共有するサーバノードを同じゾーンにし、同じ内容のデータ同士を異なるゾーンのサーバノードで管理させる。これにより、電源の故障のように、１つのゾーンの全てのサーバノードの動作が停止した場合でも、データを失うことを抑止できる。
【００７９】
そして第２の実施の形態では、障害が発生したサーバノードに接続されているＨＤＤを別のサーバノードにつなぎ替える場合でも、障害が発生したサーバノードと同じゾーンに属するサーバノードが、接続先として優先的に選択される。そして、選択したサーバノードにＨＤＤが接続される。ここで、１つのデータに対する複数のレプリカは、原則として異なるゾーンのサーバで管理されている。そのためＨＤＤへのサーバノードのつなぎ替えの前後で、ＨＤＤにアクセス可能なサーバノードが属するゾーンを一定に保つことで、同じ内容の複数のデータが、同じサーバで管理されることを抑止することができる。
【００８０】
次に、対応情報記憶部２１０内の対応情報について詳細に説明する。
図７は、対応情報のデータ構造の一例を示す図である。フロントエンドサーバ２００内の対応情報記憶部２１０は、対応情報として、デバイス管理テーブル２１１と、データの多重度分のハッシュ対応テーブル２１２，２１３，２１４を有している。
【００８１】
デバイス管理テーブル２１１は、ＨＤＤの接続先に関する情報が登録されたデータテーブルである。デバイス管理テーブル２１１には、ディスクＩＤ、サーバＩＰアドレス、マウントポイント、およびゾーンの欄が設けられている。ディスクＩＤの欄には、ＨＤＤのシステム内での識別番号（ディスクＩＤ）が設定される。サーバＩＰアドレスの欄には、ディスクＩＤで示されるＨＤＤがマウントされたサーバノードの、ＩＰアドレスが設定される。マウントポイントの欄には、サーバノードにマウントされたＨＤＤのマウントポイントが設定される。マウントポイントは、ＨＤＤにアクセスするための定義情報などが記載されたファイルを示している。マウントポイントで示されたファイルに基づいて、マウントされたＨＤＤにアクセスすることができる。ゾーンの欄には、ディスクＩＤで示されるＨＤＤが接続されたサーバノードが属するゾーンの識別番号（ゾーンＩＤ）が設定される。
【００８２】
ハッシュ対応テーブル２１２，２１３，２１４は、アクセス対象のデータ（オブジェクト）の格納先であるＨＤＤを管理するデータテーブルである。ハッシュ対応テーブル２１２は「レプリカ＃０」に相当するデータの格納先を示す。ハッシュ対応テーブル２１３は「レプリカ＃１」に相当するデータの格納先を示す。また、ハッシュ対応テーブル２１４は「レプリカ＃２」に相当するデータの格納先を示す。ハッシュ対応テーブル２１２，２１３，２１４には、ハッシュ値の上位ｎビット値（Hash n bits）とディスクＩＤとの欄が設けられている。ハッシュ値の上位ｎビット値の欄には、アクセス対象のデータに固有の情報に基づいて算出されたハッシュ値の上位ｎビットの値が設定される。ディスクＩＤの欄には、ハッシュ値の上位ｎビット値に対応するデータの格納先となるＨＤＤのディスクＩＤが設定される。
【００８３】
ハッシュ値の上位ｎビットとデバイスＩＤとの対応関係は、例えば、システムの運用開始前に予め決定し、ハッシュ対応テーブル２１２，２１３，２１４に設定される。例えばハッシュ値の上位ｎビットに対応付けるデバイスＩＤを、システム内のＨＤＤのデバイスＩＤからランダムに決定することができる。またＨＤＤの記憶容量などで、各ＨＤＤに重み付けを行うこともできる。例えば、記憶容量が大きいＨＤＤほど、大きな重みが設定される。そして重みが大きなＨＤＤほど高い確率で、ハッシュ値の上位ｎビットに対応付けられるようにする。なおハッシュ値の上位ｎビットとデバイスＩＤとの対応関係の決定方法としてどのような方法を採用しても、同一ハッシュ値の複数のレプリカは、それぞれ別のゾーンのサーバノードに接続されたＨＤＤに対応付けるものとする。
【００８４】
なお、図７に示したデバイス管理テーブル２１１とデータの多重度分のハッシュ対応テーブル２１２，２１３，２１４とを含む対応情報は、図１に示した第１の実施の形態の対応情報３の一例である。
【００８５】
次に、資源管理情報記憶部１１０内の資源管理情報について詳細に説明する。
図８は、資源管理情報のデータ構造の一例を示す図である。コントロールサーバ１００内の資源管理情報記憶部１１０は、資源管理情報として、サーバ管理テーブル１１１とディスク管理テーブル１１２とを有している。
【００８６】
サーバ管理テーブル１１１は、サーバノードの状態を管理するデータテーブルである。サーバ管理テーブル１１１には、ＩＰアドレス（IP Addr）、待機系、ゾーン番号（Zone#）、ディスクＩＤ、直近エンクロージャ番号（直近Encl#）、およびＳＡＳゾーンＩＤ（SAS Phy Zone ID）の欄が設けられている。ＩＰアドレスの欄には、サーバノードのＩＰアドレスが設定される。待機系の欄には、サーバノードが待機系か現用系かを示す情報が設定される。待機系とは、サーバノードがユーザへのサービス提供に使用されていない状態である。現用系とは、サーバノードがユーザへのサービス提供に使用されている状態である。図８の例では、待機系のサーバノードであれば、待機系の欄に「no」と設定される。また現用系のサーバノードであれば、待機系の欄に「yes」と設定される。ゾーン番号の欄には、サーバノードが属するゾーンのゾーン番号が設定される。ディスクＩＤの欄には、サーバノードに接続されたＨＤＤのディスクＩＤが設定される。直近エンクロージャ番号の欄には、ＨＤＤが格納されたディスクエンクロージャ５０，５０ａ，５０ｂ，・・・のうち、サーバノードに通信経路上、直近のエンクロージャの識別番号が設定される。直近のエンクロージャとは、サーバノードからエンクロージャ内のＨＤＤまでの通信経路上で、通信を中継するＳＡＳエクスパンダの数が最も少なくなるエンクロージャである。例えば図２の例では、サーバノード３１に直近のエンクロージャは、ディスクエンクロージャ５０である。ＳＡＳゾーンＩＤの欄には、サーバノードが接続された物理リンクポートが属するＳＡＳゾーンのＳＡＳゾーンＩＤが設定される。
【００８７】
ディスク管理テーブル１１２は、ディスクの状態を管理するデータテーブルである。ディスク管理テーブル１１２には、ディスクＩＤ、エンクロージャＩＤ（Encl ID）、ディスクＳＡＳアドレス（Disk SAS Addr）、エクスパンダＳＡＳアドレス（Exp SAS Addr）、およびエクスパンダ物理リンクポートＩＤ（Exp Phy ID）の欄が設けられている。
【００８８】
ディスクＩＤの欄には、ＨＤＤのディスクＩＤが設定される。ディスクＩＤは、任意の数値または文字列である。例えばＨＤＤのＳＡＳアドレスをディスクＩＤとすることもできる。
【００８９】
エンクロージャＩＤの欄には、ＨＤＤが実装されたエンクロージャの識別子（エンクロージャＩＤ）である。
ディスクＳＡＳアドレスの欄には、ＨＤＤのＳＡＳアドレス（機器固有のアドレス）が設定される。ＨＤＤのＳＡＳアドレスは、サーバノードのＯＳ上でＨＤＤを特定するために利用される。
【００９０】
エクスパンダＳＡＳアドレスは、ＳＡＳエクスパンダとして機能するＳＡＳエクスパンダのＳＡＳアドレスである。ＳＡＳエクスパンダのＳＡＳアドレスは、ＳＭＰ通信の際にＳＡＳエクスパンダを特定するために使用される。
【００９１】
エクスパンダ物理リンクポートＩＤの欄には、ＨＤＤが接続された、ＳＡＳエクスパンダの物理リンクポートの物理リンクポートＩＤが設定される。この物理リンクポートＩＤは、ＳＡＳのゾーニングの設定を指示する際における、ＳＡＳゾーンに属する物理リンクポートの指定に使用される。
【００９２】
以上のような構成のシステムにより、障害が発生したサーバノードに接続されていたＨＤＤを、他のサーバノードにつなぎ替えることができる。そしてＨＤＤを他のサーバノードに接続した後のサーバノードとＨＤＤとの対応関係に従って、フロントエンドサーバ２００の対応情報を更新することで、障害が発生したサーバノードに接続されていたＨＤＤへのアクセスが可能となる。
【００９３】
障害が発生したサーバノードに接続されていたＨＤＤを他のサーバノードに接続する場合における、他のサーバノードの選択基準としては、例えば以下の選択基準がある。
（選択基準１）待機系のサーバノードであること。
（選択基準２）障害が発生したサーバノードと同一ゾーンのサーバノードであること。
（選択基準３）接続されているＨＤＤ数が他より少ないサーバノードであること。
（選択基準４）障害が発生したサーバノードに接続されていたＨＤＤが実装されているエンクロージャに、通信経路上の距離が近いサーバノードであること。なお、第２の実施の形態では、正常に運用している間は、各ＨＤＤは、通信経路上の距離が近いサーバノードに接続されているものとする。この場合、（選択基準４）は、直近のエンクロージャが、障害が発生したサーバノードと同一のサーバノードであること、と言い換えることができる。
【００９４】
（選択基準１）が適用されると、ＨＤＤの接続が許容されるサーバノードに、待機系のサーバノードと現用系のサーバノードとがある場合、待機系のサーバノードが選択される。これは、サーバノード資源を有効に活用し、個々のサーバノードの負荷を少なくするのに有効な選択基準である。
【００９５】
（選択基準２）が適用されると、ＨＤＤの接続が許容されるサーバノードに、障害が発生したサーバノードと同じゾーンに属するサーバノードと、別のゾーンに属するサーバノードとがあれば、同じゾーンに属するサーバノードが選択される。これは、同じデータのレプリカ同士が、同じゾーンのサーバノードの管理下になるのを抑止するのに有効な選択基準である。
【００９６】
（選択基準３）が適用されると、ＨＤＤの接続が許容されるサーバノードのうち、接続されているＨＤＤ数が少ないサーバノードが選択される。これは、各サーバノードが扱うデータ量の均等化を図るのに有効な選択基準である。
【００９７】
（選択基準４）が適用されると、ＨＤＤの接続が許容されるサーバノードのうち、ＨＤＤとの通信経路上の距離が近いサーバノードが選択される。これは、サーバノードからＨＤＤにアクセスする際のアクセス速度の低下を抑止するのに有効な選択基準である。すなわち、サーバノードとＨＤＤとの間の通信経路上のＳＡＳエクスパンダの数が多いほど、サーバノードからＨＤＤに対するディスクＩＯの性能は低下する。従って、サーバノードとＨＤＤとの間の通信経路上のＳＡＳエクスパンダの数をできるだけ少なくすることで、アクセス速度の低下が抑止される。
【００９８】
これらの選択基準のうち、１以上の選択基準を用いて、ＨＤＤの接続先のサーバノードを選択することができる。選定基準の組み合わせ例としては、（選択基準２）と（選択基準３）との組み合わせや、（選択基準３）と（選択基準４）との組み合わせが考えられる。（選択基準２）と（選択基準３）とを組み合わせた場合、同一ゾーン内のサーバノード間でディスク数が均等になるように、ＨＤＤの接続先を変更できる。また（選択基準３）と（選択基準４）とを組み合わせた場合、直近のエンクロージャが同一のサーバノード間でディスク数が均等になるように、ＨＤＤの接続先を変更できる。
【００９９】
コントロールサーバ１００においてどの選択基準を適用するのかは、ユーザのポリシで任意に設定可能である。例えば、ユーザは、コントロールサーバ１００に対して、以下の設定を行うことができる。
・ＨＤＤの接続先のサーバノードとして、特定のサーバノードをＩＰアドレスで指定
・単一の選択基準、または複数の選択基準の組み合わせの指定
・複数の選択基準を組み合わせる場合、適用する選択基準間の優先順位の指定
・選択基準に合致するサーバノードが無かった場合における、ＨＤＤの接続先の選択方法の指定
選択基準に合致するサーバノードがなかった場合における、ＨＤＤの接続先の選択方法としては、例えば、すべてのサーバノードに均等にＨＤＤが接続されるように接続先を選択する方法がある。また、ランダムに接続先のサーバノードを選択するようにしてもよい。さらに、ラウンドロビンで接続先のサーバノードを選択してもよい。
【０１００】
複数の選択基準を用いる場合、許否指示部１３０は、例えば、サーバノードが各選択基準に適合するか否かを順次判断し、適合するサーバノードを、ＨＤＤの接続を許容するサーバノード（接続候補）として残す。そして、適用するすべての選択基準に適合するサーバノードがあれば、許否指示部１３０は、適合するサーバノードの中からＨＤＤの接続先とするサーバノードを選択する。
【０１０１】
以下、障害が発生したサーバノードに接続されていたＨＤＤを、他のサーバノードにつなぎ替える接続切替処理について詳細に説明する。
図９は、接続切替処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
【０１０２】
［ステップＳ１０１］コントロールサーバ１００のサーバノード監視部１２０は、各サーバノードに対して状態の問い合わせを行う。
［ステップＳ１０２］サーバノード監視部１２０は、サーバノードに送信した状態の問い合わせに対する応答待ちが、タイムアウトしたか否かを判断する。例えばサーバノード監視部１２０は、サーバノードに状態の問い合わせを送信してから所定期間以内に応答がなければ、タイムアウトしたと判断する。サーバノード監視部１２０は、タイムアウトした場合、処理をステップＳ１０３に進める。またサーバノード監視部１２０は、タイムアウトせずに応答を受信した場合、処理をステップＳ１０１に進め、所定時間待った後、サーバノードに対する状態の問い合わせを行う。
【０１０３】
［ステップＳ１０３］許否指示部１３０は、サーバノード監視部１２０がサーバノードに対する状態問い合わせがタイムアウトした場合、そのサーバノードに障害が発生したと認識する。そして許否指示部１３０は、障害が発生したサーバノードに関するディスク接続解除処理を実行する。なお、ディスク接続解除処理の詳細は後述する（図１０参照）。
【０１０４】
［ステップＳ１０４］許否指示部１３０は、ディスク接続解除処理の後、対応関係変更部１４０と連携して、サーバノードの選択、およびディスク接続処理を実行する。なお、サーバノード選択・ディスク接続処理の詳細は後述する（図１１参照）。その後、接続切替処理が終了する。
【０１０５】
次に、ディスク接続解除処理について詳細に説明する。
図１０は、ディスク接続解除処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
【０１０６】
［ステップＳ１１１］許否指示部１３０は、障害が発生したサーバノードの識別子（例えばＩＰアドレス）を、サーバノード監視部１２０から取得する。
［ステップＳ１１２］許否指示部１３０は、障害が発生したサーバノードに接続されているＨＤＤを１つ選択する。例えば許否指示部１３０は、サーバ管理テーブル１１１を参照し、障害が発生したサーバノードのＩＰアドレスに対応付けられたディスクＩＤにより、そのサーバノードに接続されているＨＤＤを認識する。そして許否指示部１３０は、障害が発生したサーバノードに接続されているＨＤＤのうち、未選択のＨＤＤを１つ選択する。
【０１０７】
［ステップＳ１１３］許否指示部１３０は、選択したＨＤＤが接続されたＳＡＳエクスパンダに対して、サーバノードとの接続の切断を指示する。例えば許否指示部１３０は、ディスク管理テーブル１１２を参照し、選択したＨＤＤが接続されたＳＡＳエクスパンダのＳＡＳアドレスと、選択したＨＤＤが接続された物理リンクポートの物理リンクポートＩＤとを取得する。そして許否指示部１３０は、取得したＳＡＳアドレスを有するＳＡＳエクスパンダに対して、取得した物理リンクポートＩＤで示された物理リンクポートが属するＳＡＳゾーンを、未接続用のＳＡＳゾーンに変更する指示を送信する。指示を受信したＳＡＳエクスパンダでは、指定された物理リンクポートが未接続用のＳＡＳゾーンに属するように、ゾーニングの変更が行われる。その結果、障害が発生したサーバノードと、選択したＨＤＤとの接続が切断される。
【０１０８】
［ステップＳ１１４］許否指示部１３０は、障害が発生したサーバノードに接続されており、切断されていないＨＤＤが残っているか否かを判断する。許否指示部１３０は、未切断のＨＤＤがあれば、処理をステップＳ１１２に進める。また許否指示部１３０は、障害が発生したサーバノードに接続されていたすべてのＨＤＤの切断が完了した場合、ディスク接続解除処理を終了する。
【０１０９】
このようにして、障害が発生したサーバノードに接続されていたすべてのＨＤＤについて、そのサーバノードと接続が解除される。その後、サーバノード選択・ディスク接続処理が行われる。
【０１１０】
図１１は、サーバノード選択・ディスク接続処理の手順を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。図１１の例では、（選択基準１）待機系のサーバノード、（選択基準２）同一ゾーンのサーバノード、（選択基準４）直近のエンクロージャが同一のサーバノード、（選択基準３）接続されるＨＤＤ数が他より少ないサーバノードという順で、各選択基準を適用する。
【０１１１】
［ステップＳ１２１］許否指示部１３０は、システム内のすべてのサーバノードの中に、待機系のサーバノードがあるか否かを判断する。例えば許否指示部１３０は、サーバ管理テーブル１１１を参照し、待機系の欄に「yes」と設定されているサーバノードが少なくとも１つでもあれば、待機系のサーバノードがあると判断する。許否指示部１３０は、待機系のサーバノードがあれば、処理をステップＳ１２２に進める。また許否指示部１３０は、待機系のサーバノードがなければ、処理をステップＳ１２３に進める。
【０１１２】
［ステップＳ１２２］許否指示部１３０は、待機系のサーバノードが存在する場合、すべての待機系のサーバノードを選択候補とする。例えば許否指示部１３０は、選択候補のサーバノードの識別子（例えばＩＰアドレス）を、選択候補リストに登録する。選択候補リストは、例えばＲＡＭ１０２に格納される。許否指示部１３０は、その後、処理をステップＳ１２４に進める。
【０１１３】
［ステップＳ１２３］許否指示部１３０は、待機系のサーバノードが存在しない場合、システム内のすべてのサーバノードを選択候補とする。例えば許否指示部１３０は、選択候補のサーバノードの識別子を、選択候補リストに登録する。
【０１１４】
［ステップＳ１２４］許否指示部１３０は、選択候補の中に、障害が発生したサーバノードと同一のゾーンに属するサーバノードがあるか否かを判断する。例えば許否指示部１３０は、サーバ管理テーブル１１１のゾーン番号の欄を参照し、障害が発生したサーバノードが属するゾーンと、選択候補に含まれる各サーバノードが属するゾーンを判断する。そして許否指示部１３０は、選択候補に含まれる各サーバノードのうち、障害が発生したサーバノードと同じゾーンに属するサーバノードが少なくとも１台あれば、障害が発生したサーバノードと同一のゾーンに属するサーバノードがあると判断する。許否指示部１３０は、障害が発生したサーバノードと同一のゾーンに属するサーバノードがあれば、処理をステップＳ１２５に進める。また許否指示部１３０は、該当するサーバノードがなければ、処理をステップＳ１２６に進める。
【０１１５】
［ステップＳ１２５］許否指示部１３０は、選択候補となっているサーバノードのうち、障害が発生したサーバノードと同一のゾーンに属するサーバノードに、選択候補を限定する。例えば許否指示部１３０は、選択候補リストから、障害が発生したサーバノードと異なるゾーンに属するサーバノードの識別子を削除する。許否指示部１３０は、その後、処理をステップＳ１２７に進める。
【０１１６】
［ステップＳ１２６］許否指示部１３０は、障害が発生したサーバノードと同一のゾーンに属するサーバノードがない場合、選択候補を変更せずに、処理をステップＳ１２７に進める。
【０１１７】
［ステップＳ１２７］許否指示部１３０は、選択候補の中に、障害が発生したサーバノードと、直近のエンクロージャが同一のサーバノードがあるか否かを判断する。例えば許否指示部１３０は、サーバ管理テーブル１１１を参照し、障害が発生したサーバノードの直近のエンクロージャと、選択候補の各サーバノードの直近のエンクロージャとを判断する。そして許否指示部１３０は、障害が発生したサーバノードと、直近のエンクロージャが同一のサーバノードが少なくとも１つあれば、該当するサーバノードありと判断する。許否指示部１３０は、該当するサーバノードがあれば、処理をステップＳ１２８に進める。また許否指示部１３０は、該当するサーバノードがなければ、処理をステップＳ１２９に進める。
【０１１８】
［ステップＳ１２８］許否指示部１３０は、選択候補となっているサーバノードのうち、直近のエンクロージャが、障害が発生したサーバノードと同一のサーバノードに、選択候補を限定する。例えば許否指示部１３０は、選択候補リストから、直近のエンクロージャが、障害が発生したサーバノードと異なるサーバノードの識別子を削除する。許否指示部１３０は、その後、処理をステップＳ１３０に進める。
【０１１９】
［ステップＳ１２９］許否指示部１３０は、直近のエンクロージャが、障害が発生したサーバノードと同一のサーバノードがない場合、選択候補を変更せずに、処理をステップＳ１３０に進める。
【０１２０】
［ステップＳ１３０］許否指示部１３０は、接続対象のＨＤＤのうち、他のサーバノードに未接続のＨＤＤを１つ選択する。接続対象のＨＤＤとは、障害が発生したサーバノードに、障害発生前まで接続されていたＨＤＤである。
【０１２１】
［ステップＳ１３１］許否指示部１３０は、選択対象のサーバノードのうち、接続されているＨＤＤの数が最も少ないサーバノードに、ステップＳ１３０で選択したＨＤＤを接続する制御を行う。例えば許否指示部１３０は、サーバ管理テーブル１１１を参照し、選択対象のサーバノードそれぞれに設定されているディスクＩＤの数を数える。次に、許否指示部１３０は、ディスクＩＤの数が最も少ないサーバノードを選択し、ＨＤＤの接続先に決定する。そして許否指示部１３０は、選択したＨＤＤと接続先のサーバノードの通信経路上のＳＡＳエクスパンダに対して、選択したＨＤＤと接続先のサーバノードとの接続を指示する。例えば許否指示部１３０は、選択したＨＤＤが接続された物理リンクポートと接続先のサーバノードが接続された物理リンクポートとを、同じＳＡＳゾーンに含めるように、ＳＡＳエクスパンダに指示する。許否指示部１３０からの指示により、ＳＡＳエクスパンダが、選択したＨＤＤと接続先のサーバノードとの通信経路を接続する。
【０１２２】
［ステップＳ１３２］許否指示部１３０と対応関係変更部１４０が連携し、フロントエンドサーバ２００が有する対応情報の更新処理を行う。対応情報の更新処理の詳細は後述する（図１２参照）。
【０１２３】
［ステップＳ１３３］許否指示部１３０は、接続対象のＨＤＤのうち、他のサーバノードに未接続のＨＤＤがあるか否かを判断する。許否指示部１３０は、未接続のＨＤＤがあれば、処理をステップＳ１３０に進める。また許否指示部１３０は、接続対象のすべてのＨＤＤを、障害が発生したサーバノード以外のサーバノードに接続した場合、サーバノード選択・ディスク接続処理を終了する。
【０１２４】
このようにして、障害が発生したサーバノードに接続されていたＨＤＤの再接続先が適切に選択され、選択されたサーバノードに、ＳＡＳエクスパンダを介してＨＤＤが接続される。
【０１２５】
次に、対応情報更新処理の手順について詳細に説明する。
図１２は、対応情報更新処理の手順の一例を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【０１２６】
［ステップＳ１４１］コントロールサーバ１００の許否指示部１３０は、接続先のサーバノードにおけるデバイスマウント用のディレクトリのパスに、接続対象のＨＤＤのディスクＩＤ名を追加し、マウントポイントとする。
【０１２７】
［ステップＳ１４２］許否指示部１３０は、接続先のサーバノードに対して、マウントポイントの作成を指示する。
［ステップＳ１４３］接続先のサーバノードは、マウントポイントの作成指示に応じて、指定されたマウントポイントに相当するディレクトリを作成する。
【０１２８】
［ステップＳ１４４］接続先のサーバノードは、ディレクトリ作成後、正常終了のリプライをコントロールサーバ１００に送信する。
［ステップＳ１４５］コントロールサーバ１００の許否指示部１３０は、接続先のサーバノードに対して、接続対処のＨＤＤのマウント指示を送信する。
【０１２９】
［ステップＳ１４６］接続先のサーバノードは、マウント指示に応じて、接続対象のＨＤＤを、マウントポイントにマウントする。
［ステップＳ１４７］接続先のサーバノードは、ＨＤＤをマウント後、正常終了のリプライをコントロールサーバ１００に送信する。
【０１３０】
［ステップＳ１４８］対応関係変更部１４０は、フロントエンドサーバ２００の対応情報記憶部２１０にアクセスし、デバイス管理テーブル２１１から、ステップＳ１４９，Ｓ１５０の処理が未処理のエントリを、１行を抽出する。
【０１３１】
［ステップＳ１４９］対応関係変更部１４０は、抽出したレコードのサーバＩＰアドレスとして、障害が発生したサーバノードのＩＰアドレスが設定されているか否かを判断する。対応関係変更部１４０は、障害が発生したサーバノードのＩＰアドレスが設定されている場合、処理をステップＳ１５０に進める。また対応関係変更部１４０は、障害が発生したサーバノードのＩＰアドレスが設定されてない場合、処理をステップＳ１５１に進める。
【０１３２】
［ステップＳ１５０］対応関係変更部１４０は、フロントエンドサーバ２００内のデバイス管理テーブル２１１にアクセスし、抽出したエントリを更新する。すなわち対応関係変更部１４０は、抽出したエントリのサーバＩＰアドレスを、接続先のサーバノードのＩＰアドレスに変更する。また対応関係変更部１４０は、抽出したエントリのマウントポイントを、ステップＳ１４１で決定したマウントポイントに変更する。
【０１３３】
［ステップＳ１５１］対応関係変更部１４０は、フロントエンドサーバ２００内のデバイス管理テーブル２１１に、未処理のエントリがあるか否かを判断する。対応関係変更部１４０は、未処理のエントリがあれば、処理をステップＳ１４８に進める。また対応関係変更部１４０は、未処理のエントリがなければ、対応情報更新処理を終了する。
【０１３４】
このように、第２の実施の形態では、サーバノードに障害が発生すると、そのサーバノードに接続されていたＨＤＤが他のサーバノードに接続される。これにより、ＨＤＤ内のデータのコピーを行わずにすみ、ＨＤＤへのアクセス環境を短時間で復旧することができる。リカバリ時間の短縮により、冗長度が低下している時間が短縮され、システムの信頼性が向上する。
【０１３５】
さらに、データ転送を行わないため、復旧時間がＨＤＤのデータ量に依存しない。そのため、ＨＤＤの記憶容量が向上し、サーバノードがより大量のデータを扱うようになった場合でも、高速に障害を復旧できる。例えば、１秒程度で障害の復旧ができる。
【０１３６】
しかも、データ転送が不要なため、リカバリ処理のためのＨＤＤへの大量の書き込みも発生せず、ＨＤＤへのアクセス競合により性能が低下することが抑止される。また、リカバリ処理のためにネットワークスイッチ２１を介した大量のデータ転送が発生することもなく、ネットワーク帯域を、ユーザへのサービスに有効に利用できる。
【０１３７】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、サーバノードの選択の際に、性能維持を優先した選択を行うものである。例えば第３の実施の形態では、（選択基準４）ＨＤＤが実装されたエンクロージャに通信経路上の距離が近いサーバノードであること、（選択基準３）接続されるＨＤＤ数が他より少ない順で選択基準が適用される。これにより、障害が発生したサーバノードに接続されていたＨＤＤが、そのサーバノードと直近のエンクロージャが共通の別のサーバノードに接続される。これにより、接続の切替前後において、サーバノードとＨＤＤとの距離が同じとなり、アクセス性能の劣化が抑止される。
【０１３８】
なお第３の実施の形態を実現するためのシステム構成は、図２〜図５に示した第２の実施の形態のシステム構成と同様である。また第３の実施の形態は、サーバノード選択・ディスク接続処理が、第２の実施の形態と異なる。そこで以下に、第３の実施の形態におけるサーバノード選択・ディスク接続処理を、図２〜図５に示した第２の実施の形態の各要素を用いて説明する。
【０１３９】
図１３は、第３の実施の形態におけるサーバノード選択・ディスク接続処理の手順の一例を示す図である。なお図１３のステップＳ２０４〜Ｓ２０７の処理は、図１１に示した第２の実施の形態のステップＳ１３０〜Ｓ１３３の処理と同様である。そこで第２の実施の形態と異なるステップＳ２０１〜Ｓ２０３について、ステップ番号に沿って説明する。
【０１４０】
［ステップＳ２０１］許否指示部１３０は、障害が発生したサーバノードと、直近のエンクロージャが同一のサーバノードがあるか否かを判断する。許否指示部１３０は、該当するサーバノードがあれば、処理をステップＳ２０２に進める。また許否指示部１３０は、該当するサーバノードがなければ、処理をステップＳ２０３に進める。
【０１４１】
［ステップＳ２０２］許否指示部１３０は、システム内のすべてのサーバノードのうち、直近のエンクロージャが、障害が発生したサーバノードと同一のサーバノードを、選択候補とする。例えば許否指示部１３０は、選択候補のサーバノードの識別子（例えばＩＰアドレス）を、選択候補リストに登録する。選択候補リストは、例えばＲＡＭ１０２に格納される。許否指示部１３０は、その後、処理をステップＳ２０４に進める。
【０１４２】
［ステップＳ２０３］許否指示部１３０は、直近のエンクロージャが、障害が発生したサーバノードと同一のサーバノードがない場合、システム内のすべてのサーバノードを選択候補とする。例えば許否指示部１３０は、選択候補のサーバノードの識別子を、選択候補リストに登録する。その後、許否指示部１３０は処理をステップＳ２０４に進める。
【０１４３】
このようにして、性能維持を優先したサーバノードの選択が可能となる。
〔その他の実施の形態〕
第２の実施の形態では、図２に示したように複数のＳＡＳエクスパンダをカスケード接続しているが、ＳＡＳエクスパンダをツリー状に接続することもできる。
【０１４４】
図１４は、ＳＡＳエクスパンダの接続形態の他の例を示す図である。図１４において、第２の実施の形態と同じ要素には、第２の実施の形態と同じ符号を付し、説明を省略する。また図１４では、コントロールサーバやフロントエンドサーバは省略されている。
【０１４５】
図１４に示すストレージシステムＢは、複数のＳＡＳエクスパンダ８１，８２，８３，８４，・・・がツリー構造で接続されている。具体的には、全てのサーバノード３１，３２，３１ａ，３２ａ，３１ｂ，３２ｂ，・・・が、ＳＡＳエクスパンダ８１に接続されている。そしてツリー構造におけるＳＡＳエクスパンダ８１の下位に、複数のＳＡＳエクスパンダ８２，８３，８４，・・・が接続されている。このように複数のＳＡＳエクスパンダ８１，８２，８３，８４，・・・を多段階のツリー状に接続することで、ＨＤＤ数の拡大などのシステムの拡張が容易となる。
【０１４６】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１４７】
１  ストレージ装置
１−１，１−２，１−３，・・・  記憶装置
１ａ  中継装置
１ｂ  許可手段
１ｃ  変更手段
２−１，２−２，２−３，２−４，・・・  データアクセス装置
３  対応情報
４  転送手段
Ｘ  情報処理装置
Ｙ  端末装置
【図１】
2014026321.tif 000003
【図２】
2014026321.tif 000004
【図３】
2014026321.tif 000005
【図４】
2014026321.tif 000006
【図５】
2014026321.tif 000007
【図６】
2014026321.tif 000008
【図７】
2014026321.tif 000009
【図８】
2014026321.tif 000010
【図９】
2014026321.tif 000011
【図１０】
2014026321.tif 000012
【図１１】
2014026321.tif 000013
【図１２】
2014026321.tif 000014
【図１３】
2014026321.tif 000015
【図１４】
2014026321.tif 000016