JP2019075032A - ストレージシステム、ストレージ制御装置およびプログラム - Google Patents

ストレージシステム、ストレージ制御装置およびプログラム Download PDF

Info

Publication number
JP2019075032A
JP2019075032A JP2017202515A JP2017202515A JP2019075032A JP 2019075032 A JP2019075032 A JP 2019075032A JP 2017202515 A JP2017202515 A JP 2017202515A JP 2017202515 A JP2017202515 A JP 2017202515A JP 2019075032 A JP2019075032 A JP 2019075032A
Authority
JP
Japan
Prior art keywords
communication
information
node
bypass
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017202515A
Other languages
English (en)
Inventor
直生 小林
Naoki Kobayashi
直生 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017202515A priority Critical patent/JP2019075032A/ja
Priority to US16/142,056 priority patent/US20190121573A1/en
Publication of JP2019075032A publication Critical patent/JP2019075032A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】迂回通信の効率化を図る。【解決手段】ストレージシステム1は、ストレージ装置1aと、通信経路r1、・・・、r6で接続され、装置間で通信を行ってストレージ装置1aの制御を行うストレージ制御装置10−1、・・・、10−4を備える。ストレージ制御装置10−1、・・・、10−4はそれぞれ、制御部10a−1、・・・、10a−4および記憶部m1、・・・、m4を含む。制御部10a−1、・・・、10a−4は、通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、経路閉塞情報にもとづいて通信先となるストレージ制御装置毎に設定した迂回経路情報を生成する。そして、制御部10a−1、・・・、10a−4は、経路閉塞情報と迂回経路情報とを記憶部m1、・・・、m4に格納し、他ストレージ制御装置への通信を行うとき迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う。【選択図】図1

Description

本発明は、ストレージシステム、ストレージ制御装置およびプログラムに関する。
ストレージシステムは、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置と、記憶装置を制御するためのサーバとを有して、情報処理で扱う大量のデータを記録管理する。また、サーバは、通常、2台以上のノードを含む装置で冗長構成が組まれている。
一方、システム性能を向上させる場合、近年では、ハードウェアを高性能にするスケールアップよりも、ハードウェアの数を増やして処理能力を上げるスケールアウトが主流になっている。このため、スケールアウトによるシステム拡張に伴い、システムの冗長構成が増加している。
多ノード構成でスケールアウト設計されたサーバでは、障害等の発生によりノード間の通信経路が閉塞した場合、迂回経路を介して迂回通信が行われることで、システム運用を継続することができる。
特開平09−252331号公報 特開平05−003475号公報 特開2006−333486号公報
迂回通信が行われる場合、通信経路の閉塞を検出したノードが、他ノードに対してノード間のルーティング情報を参照しに行き、ルーティング情報にもとづいて迂回経路の探索を起動する。しかし、このような制御では、迂回経路の設定までに時間を要し、また処理負荷も増えるため、効率のよい迂回通信を行うことが難しい。
1つの側面では、本発明は、迂回通信の効率化を図ったストレージシステム、ストレージ制御装置およびプログラムを提供することを目的とする。
上記課題を解決するために、ストレージシステムが提供される。ストレージシステムは、ストレージ装置と、ストレージ装置を制御対象とする複数のストレージ制御装置と、複数のストレージ制御装置間を接続する通信経路とを含む。ストレージ制御装置は、制御部を有する。制御部は、通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、経路閉塞情報にもとづいて通信先となるストレージ制御装置毎に設定した迂回経路情報を生成して、経路閉塞情報と迂回経路情報とを記憶部に格納し、他ストレージ制御装置への通信を行うとき迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う。
また、上記課題を解決するために、上記ストレージシステムに含まれるストレージ制御装置が提供される。
さらに、上記課題を解決するために、コンピュータに上記ストレージ制御装置と同様の制御を実行させるプログラムが提供される。
1側面によれば、迂回通信の効率化を図ることが可能になる。
ストレージシステムの構成の一例を示す図である。 ストレージシステムの構成の一例を示す図である。 ストレージシステムの構成の一例を示す図である。 ノードの内部構成の一例を示す図である。 DMA転送の一例を示す図である。 迂回通信によるDMA転送の一例を示す図である。 迂回通信の実行が不可となる状態の一例を示す図である。 迂回通信時に特定ノードに負荷が集中する状態の一例を示す図である。 ノードのハードウェア構成の一例を示す図である。 ノードの機能ブロックの一例を示す図である。 閉塞経路の発生から迂回通信が実行されるまでの動作を示すフローチャートである。 監視情報のテーブル構成の一例を示す図である。 各ノードにおける閉塞経路の管理の一例を示す図である。 各ノードにおけるHBA故障情報の管理の一例を示す図である。 迂回リストの一例を示す図である。 監視情報の検出および他ノードへの監視情報の送信の一例を説明するための図である。 監視情報の受信処理の動作を示すフローチャートである。 迂回リストの更新処理の動作を示すフローチャートである。 迂回通信処理の動作を示すフローチャートである。 迂回通信の動作の一例を説明するための図である。 迂回通信の動作の一例を説明するための図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態について図1を用いて説明する。図1はストレージシステムの構成の一例を示す図である。ストレージシステム1は、ストレージ装置1aと、サーバ装置1bを備える。
ストレージ装置1aは、HDD、SSD等の記憶媒体1a−1、・・・、1a−nを含む。サーバ装置1bは、サーバ1b−1、1b−2を含む。サーバ1b−1は、ストレージ制御装置10−1、10−2を含み、サーバ1b−2は、ストレージ制御装置10−3、10−4を含む。
ストレージ制御装置10−1、・・・、10−4は、通信経路r1、・・・、r6で接続され、通信経路r1、・・・、r6を介して装置間で通信を行い、ストレージ装置1aに対するIO制御等を行う。
なお、ストレージ制御装置10−1、10−3は通信経路r1で接続され、ストレージ制御装置10−1、10−4は通信経路r2で接続される。また、ストレージ制御装置10−2、10−3は通信経路r3で接続され、ストレージ制御装置10−2、10−4は通信経路r4で接続される。
さらに、ストレージ制御装置10−1、10−2は通信経路r5で接続され、ストレージ制御装置10−3、10−4は通信経路r6で接続される。ストレージ制御装置10−1、・・・、10−4は、ストレージ装置1aを制御対象とし、制御部10a−1、・・・、10a−4および記憶部m1、・・・、m4をそれぞれ含む。
制御部10a−1、・・・、10a−4は、通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、経路閉塞情報にもとづいて通信先となるストレージ制御装置毎に設定した迂回経路情報を生成する。そして、制御部10a−1、・・・、10a−4は、経路閉塞情報と迂回経路情報とを記憶部m1、・・・、m4に格納し、他ストレージ制御装置への通信を行うとき迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う。
図1に示す例を用いて動作について説明する。
〔ステップS1〕通信経路r1が閉塞したとする。ストレージ制御装置10−1内の制御部10a−1は、通信経路r1の閉塞状態を検出する。
〔ステップS2〕制御部10a−1は、通信経路r1が閉塞状態である旨の経路閉塞情報k1を生成する。なお、経路閉塞情報k1は、開通している通信経路を介して、ストレージ制御装置10−2、10−3、10−4へ伝搬されて、各装置で共有化される。
〔ステップS3〕制御部10a−1は、経路閉塞情報k1にもとづいて、宛先毎に迂回先を設定した迂回リストk2(迂回経路情報)を生成する。迂回リストk2は、「宛先」と「迂回先」の項目を有し、例えば、「宛先」がストレージ制御装置10−3の場合、「迂回先」にストレージ制御装置10−2、10−4が設定される。
〔ステップS4〕制御部10a−1は、迂回リストk2を用いて迂回先を選択して迂回通信を行う。なお、「迂回先」には優先度が設定され、この例では、「迂回先(優先)」がストレージ制御装置10−4になっており、「迂回先(予備)」がストレージ制御装置10−2になっている。
したがって、制御部10a−1は、迂回先としてストレージ制御装置10−4を優先的に選択し、通信経路r2を介して、ストレージ制御装置10−4に向けて所定データを迂回通信する。ストレージ制御装置10−4は、ストレージ制御装置10−1から送信された所定データを受信すると、通信経路r6を介して、ストレージ制御装置10−3へ所定データを送信する。
このように、ストレージシステム1は、ストレージ制御装置間の通信経路の閉塞状態を検出して経路閉塞情報を生成し、経路閉塞情報にもとづいて、宛先毎に迂回先を設定した迂回リストを生成し、迂回リストを用いて迂回先を選択して迂回通信を行う。
これにより、ストレージシステム1は、通信経路の閉塞時、他装置に対して装置間のルーティング情報を参照しに行き、ルーティング情報にもとづき迂回経路の探索を起動するといった流れの制御が不要になる。このため、ストレージシステム1は、迂回経路の設定時間の短縮や処理負荷を軽減でき、迂回通信の効率化を図ることが可能になる。
[第2の実施の形態]
次に第2の実施の形態について説明する。まず、システム構成について説明する。なお、以降の説明ではストレージ制御装置をノードとも表記する。
図2、図3はストレージシステムの構成の一例を示す図である。図2において、ストレージシステム1−1は、ストレージ装置2a、サーバ2a−1、2a−2を備える。サーバ2a−1は、ノードn1、n2を含み、サーバ2a−2は、ノードn3、n4を含む。
ノードn1は、通信経路r1を介してノードn3と接続し、通信経路r2を介してノードn4と接続する。そして、ノードn1、n3間およびノードn1、n4間でInfiniBandによる通信が行われる。
また、ノードn2は、通信経路r3を介してノードn3と接続し、通信経路r4を介してノードn4と接続する。そして、ノードn2、n3間およびノードn2、n4間でInfiniBandによる通信が行われる。
さらに、ノードn1は、通信経路r5を介してノードn2と接続し、ノードn1、n2間でPCI(Peripheral Component Interconnect)による通信が行われる。さらにまた、ノードn3は、通信経路r6を介してノードn4と接続し、ノードn3、n4間でPCIによる通信が行われる。
図3において、ストレージシステム1−2は、ストレージ装置2a、サーバ2a−1、2a−2、スイッチsw1、sw2を備える。ノードn1、・・・、n4の各ノードは、スケールアウト用のスイッチsw1、sw2に接続し、ノードn1、・・・、n4の各ノードとスイッチsw1、sw2間でInfiniBandによる通信が行われる。その他の基本構成は図2と同じである。なお、図2、図3では、サーバを2台としているが3台以上のスケールアウトでシステム設計されていてもよい。また、1サーバ内のノードを3台以上にしてもよい。
上記のように、同じサーバ内のノード同士ではPCIによる通信が行われ、サーバをまたいだノード間ではInfiniBandによる通信が行われることにより、ノードの連携動作を可能としている。
また、上記のように、ノードn1、・・・、n4には、1ノードにつき、PCIの1つのポートと、InfiniBandの2つのポートとが設けられている。InfiniBandの2つのポートが対向ノードやスイッチに接続されることにより、InfiniBandの通信経路の冗長化が図られている。
一方、ノードの通信としては、例えば、軽量なデータを送受信するメッセージ通信、および指定されたメモリ領域に格納されるデータの転送を行うDMA(Direct Memory Access)転送が行われる。
<ノードの内部構成>
図4はノードの内部構成の一例を示す図である。サーバ2a−1内のノードn1は、プロセッサ21、メモリ22およびHBA(Host Bus Adapter)23を備える。HBA23は、InfiniBand用の2つのポートを有しており、対向ノードやスイッチに接続する。なお、ノードn2およびサーバ2a−2内のノードn3、n4も同様の構成を有する。
<DMA転送>
次にDMA転送について、図5、図6を用いて説明する。図5はDMA転送の一例を示す図である。ノードn1は、通信経路r1を介したInfiniBandにより、ノードn3へDMA転送を行うものとする。この場合、ノードn1内のメモリ22−1に格納されるデータが、ノードn3内のメモリ22−3へ転送される。
図6は迂回通信によるDMA転送の一例を示す図である。ノードn1、n3間の通信経路r1が閉塞したとする。通信経路r1が閉塞すると、ノードn1は、もう一方のInfiniBandの通信経路r2を介した迂回通信により、ノードn4へDMA転送を行うことができる。
この場合、ノードn1は、迂回ノードとなるノードn4にあらかじめ確保されているバッファ(例えば、ノードn4のメモリ内の一部の領域がバッファとして使用される)にDMA転送を行い、その後、ノードn4が目的のノードn3にDMA転送を行う。
すなわち、ノードn1内のメモリ22−1に格納されるデータが、ノードn4内のバッファ22a−4へ転送され、バッファ22a−4にバッファリングされたデータがノードn4内のメモリ22−3へ転送される。
<迂回通信の実行不可状態>
ここで、迂回通信の実行が不可となる状態について、図7を用いて説明する。図7は迂回通信の実行が不可となる状態の一例を示す図である。ストレージシステム200は、サーバ201、202を備える(ストレージ装置は図示せず)。サーバ201は、ノードN1、N2を含み、サーバ202は、ノードN3、N4を含む。なお、接続関係は図2と同じである。
ストレージシステム200では、InfiniBandの一方の通信経路が閉塞した場合、他方のInfiniBandの通信経路が、迂回経路に設定される構成になっている。
ストレージシステム200は、迂回経路の冗長性はInfiniBandのみであり、ノードN1、ノードN2、ノードN3の順に流れる経路や、ノードN1、ノードN2、ノードn4、ノードN3の順に流れる経路が迂回経路として選択される機能は有していないとする。
このような構成において、ノードN1からノードN3へ通信経路r1経由のInfiniBand通信でDMA転送を行う場合、図7に示すように、通信経路r1、r2に障害が発生すると、他の迂回経路の選択ができないため通信が途絶えてしまう。
このように、図7に示すような、1つのネットワークインタフェース部(HBA)に繋がる通信経路に多重障害が発生すると、迂回通信の実行が不可となり、ノード間通信を行うことができなくなる。
<迂回通信時の負荷集中状態>
次に迂回通信時に特定ノードに負荷が集中する状態について、図8を用いて説明する。図8は迂回通信時に特定ノードに負荷が集中する状態の一例を示す図である。ストレージシステム200において、ノードN1がノードN3へDMA転送を行い、ノードN2がノードN3へDMA転送を行う場合、ノードN1、N3間の通信経路r1と、ノードN2、N3間の通信経路r3に閉塞が発生したとする。
この場合、ノードN1は、通信経路r2経由のInfiniBandにより、ノードN4へDMA転送を行う。すなわち、ノードN1は、迂回ノードとなるノードN4にあらかじめ確保されているバッファにDMA転送を行い、その後、ノードN4が目的のノードN3にDMA転送を行う。
例えば、ノードN1内のメモリ22−1に格納されるデータが、ノードN4内のバッファ22a−4へ転送され、バッファ22a−4にバッファリングされたデータがノードN3内のメモリ22−3へ転送される。
一方、ノードN2は、通信経路r4経由のInfiniBandにより、ノードN4へDMA転送を行う。この場合、ノードN2は、迂回ノードとなるノードN4のバッファにDMA転送を行い、その後、ノードN4が目的のノードN3にDMA転送を行う。
例えば、ノードN2内のメモリ22−2に格納されるデータが、ノードN4内のバッファ22a−4へ転送され、バッファ22a−4にバッファリングされたデータがノードN3内のメモリ22−3へ転送される。
しかし、上記のような迂回通信では、ノードN1、N2がノードN4のバッファ22a−4を利用するため、バッファ22a−4の容量不足(枯渇)が生じる可能性があり、容量が不足した場合、DMA転送待ち状態が発生するおそれがある(図8の例では、ノードN1に対してDMA転送の待ちが生じている)。このように、迂回通信の実行時、迂回経路上のノードに対して負荷が集中する可能性がある。
本発明はこのような点に鑑みてなされたものであり、複数の通信経路の障害発生時でも迂回経路を選択可能とし、また、迂回経路の設定時間の短縮、および処理負荷の軽減等を可能にして、迂回通信の効率化を図るものである。
<ハードウェア構成>
以降、第2の実施の形態の技術について詳しく説明する。図9はノードのハードウェア構成の一例を示す図である。ストレージ制御装置であるノードn1、・・・、n4(以下、総称する場合はノードn0と表記)は、プロセッサ100によって装置全体が制御されている(プロセッサ100は、図4のプロセッサ21に該当)。すなわち、プロセッサ100は、ノードn0の制御部として機能する。
プロセッサ100には、バス103を介してメモリ101と複数の周辺機器が接続されている(メモリ101は、図4のメモリ22に該当)。プロセッサ100は、マルチプロセッサであってもよい。プロセッサ100は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ100は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
メモリ101は、ノードn0の主記憶装置として使用される。メモリ101には、プロセッサ100に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101には、プロセッサ100による処理に要する各種データが格納される。
また、メモリ101は、ノードn0の補助記憶装置としても使用され、OSのプログラム、アプリケーションプログラム、および各種メッセージが格納される。メモリ101は、補助記憶装置として、フラッシュメモリやSSD等の半導体記憶装置やHDD等の磁気記録媒体を含んでもよい。
バス103に接続されている周辺機器としては、入出力インタフェース102およびネットワークインタフェース104がある。入出力インタフェース102は、プロセッサ100からの命令にしたがってノードn0の状態を表示する表示装置として機能するモニタ(例えば、LED(Light Emitting Diode)やLCD(Liquid Crystal Display)等)が接続されている。
また、入出力インタフェース102は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ100に送信する。
入出力インタフェース102は、周辺機器を接続するための通信インタフェースとして機能する。例えば、入出力インタフェース102は、レーザ光等を利用して、光ディスクに記録されたメッセージの読み取りを行う光学ドライブ装置を接続することができる。光ディスクは、光の反射によって読み取り可能なようにメッセージが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)等がある。
また、入出力インタフェース102は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース102との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのメッセージの書き込み、またはメモリカードからのメッセージの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
ネットワークインタフェース104は、HBAやPCIの通信プロトコルのインタフェース処理を実現する。また、ネットワークインタフェース104は、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等の機能を有してもよい。ネットワークインタフェース104で受信された信号やメッセージ等は、プロセッサ100に出力される。
以上のようなハードウェア構成によって、ノードn0の処理機能を実現することができる。例えば、ノードn0は、プロセッサ100がそれぞれ所定のプログラムを実行することで、本発明の制御を行うことができる。
ノードn0は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。ノードn0に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
例えば、ノードn0に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ100は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ100からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ100が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
<機能ブロック>
図10はノードの機能ブロックの一例を示す図である。ノードn0は、通信制御部10を備え、通信制御部10は、送受信処理部11、監視処理部12、監視情報管理部13および迂回リスト管理部14を備える。
送受信処理部11は、他ノードと情報の共有をするために、他ノードへ所定情報を送信し、また他ノードからの所定情報を受信する処理を行う。監視処理部12は、経路状態監視部12a、通信コスト監視部12bおよびHBA状態監視部12cを含む。経路状態監視部12aは、通信経路の閉塞および開通を監視する。
通信コスト監視部12bは、通信コスト(通信制約に該当)として例えば、ノードのメモリ容量の枯渇状態、またはプロセッサ処理負荷状態(通信負荷状態)の少なくとも1つを監視する。なお、以降では主に、ノードのバッファの格納状態(例えば、枯渇状態であるか等)を監視するものとして説明する。HBA状態監視部12cは、HBAの故障および復旧を監視する。
監視情報管理部13は、閉塞情報管理部13a、バッファ枯渇情報管理部13bおよびHBA故障情報管理部13cを含む。監視情報管理部13は、自ノードの監視処理部12で監視された監視情報を保持し、また他ノードから送信された監視情報を保持して、監視情報の変化に応じて更新する。
閉塞情報管理部13aは、閉塞状態になっている通信経路を記憶管理する。バッファ枯渇情報管理部13bは、バッファが枯渇しているノードを記憶管理する。HBA故障情報管理部13cは、ノード内のどのHBAが故障しているかを記憶管理する。
なお、監視情報管理部13で記憶管理される監視情報は、送受信処理部11によって他ノードへ送信される。また、他ノードから送信された監視情報は、送受信処理部11で受信され、監視情報管理部13は、受信した監視情報にもとづいて、監視情報を更新する。このような処理が行われることで、全ノードで最新の監視情報が共有される。
迂回リスト管理部14は、監視情報管理部13で管理される監視情報を、定期的にまたは監視情報が更新される度に参照し、監視情報の変化に伴って現在記憶している迂回経路に変化が生じる場合、迂回経路の更新を行う。
なお、迂回リスト管理部14で管理される迂回経路のリスト(迂回リスト)は、送受信処理部11によって他ノードへ送信される。また、他ノードから送信された迂回リスト情報は、送受信処理部11で受信され、受信された迂回リスト情報にもとづいて、迂回リストが更新される。このような処理が行われることで、全ノードで最新の迂回リストが共有される。
なお、送受信処理部11は、図9に示したネットワークインタフェース104で実現される。監視処理部12は、図9に示したプロセッサ100で実現される。監視情報管理部13および迂回リスト管理部14の記憶機能は、図9に示したメモリ101で実現される。
<閉塞経路の発生から迂回通信までの流れ>
図11は閉塞経路の発生から迂回通信が実行されるまでの動作を示すフローチャートである。
〔ステップS11〕通信制御部10は、監視情報(閉塞情報、バッファ枯渇情報およびHBA故障情報)の更新を行う。
〔ステップS12〕通信制御部10は、更新した監視情報を他ノードへ転送する。この場合、転送先ノードが重複しないように転送される。ステップS11、S12の動作により、監視情報が全ノードに伝搬される。
〔ステップS13〕通信制御部10は、迂回を要する宛先ノードに対して、自ノードからどの隣接ノード(迂回先)にデータを転送するかを迂回リストに記録する。
〔ステップS14〕通信制御部10は、迂回リストにもとづき迂回経路を設定する。なお、通信制御部10は、バッファ枯渇等を見越して、例えば、2つの迂回経路(優先迂回経路、予備迂回経路)を設定することができる。
〔ステップS15〕通信制御部10は、監視情報が更新される度に迂回リストを更新する。ステップS13、S14、S15の動作により、迂回リストの生成および更新が行われる。
〔ステップS16〕通信制御部10は、迂回通信を行う場合、迂回リストを参照し、ステップS14で記録された迂回ノードにデータを転送する。ステップS16の動作により、迂回通信が実施される。
<監視情報のテーブル構成>
図12は監視情報のテーブル構成の一例を示す図である。閉塞情報テーブルT1は、閉塞情報管理部13aで生成され、項目として閉塞ノード#1および閉塞ノード#2を有する。
図12の例において、閉塞ノード#1=n1、閉塞ノード#2=n3となっており、これはノードn1、n3間の通信経路が閉塞状態になっていることを示す。同様に、閉塞ノード#1=n2、閉塞ノード#2=n7は、ノードn2、n7間の通信経路が閉塞状態になっていることを示す。
バッファ枯渇情報テーブルT2は、バッファ枯渇情報管理部13bで生成され、項目としてバッファ枯渇ノードを有する。図12の例において、バッファ枯渇ノード=n4となっており、これはノードn4のバッファ(DMA転送で使用されるときのバッファ)の容量が枯渇していることを示す。
HBA故障情報テーブルT3は、HBA故障情報管理部13cで生成され、項目としてHBA故障ノードを有する。図12の例において、HBA故障ノード=n5となっており、これはノードn5のHBAが故障していることを示す。
なお、ノードのプロセッサの処理負荷が高い状態を監視情報として検出して、検出したプロセッサ処理負荷をテーブル管理してもよい。
<各ノードにおける閉塞情報の管理>
図13は各ノードにおける閉塞経路の管理の一例を示す図である。ノードn1、・・・、n4は各自で、閉塞情報を記憶管理する。なお、図中の[n1]−[n3]は、ノードn1とノードn3間の通信経路が閉塞していることを示し、[n1]−[n4]は、ノードn1とノードn4間の通信経路が閉塞していることを示す。
通信経路r1、r2が閉塞しているとする。この場合、ノードn1、・・・、n4は各自で、閉塞情報として、[n1]−[n3]と[n1]−[n4]を記憶管理する。
このように、各ノードが同じ閉塞経路を共有して管理するので、通信の度に他ノードへルーティング情報を参照することが不要となる。また、閉塞経路の情報のみを保持するので全体のルーティングテーブルを記憶することが不要となり、メモリ容量を削減でき、さらにテーブル探索コストの削減にも繋がる。
<各ノードにおけるHBA故障情報の管理>
図14は各ノードにおけるHBA故障情報の管理の一例を示す図である。図14に示すシステム構成において、ノードn3内のHBAが故障しているものとする。なお、図中のHBA[n3]は、ノードn3のHBAが故障していることを示す。
この場合、図13で上述したような閉塞情報の管理方法では、例えば、ノードn1は、[n1]−[n3]、[n2]−[n3]、[n5]−[n3]、[n6]−[n3]、[n7]−[n3]、・・・というような情報を記憶することになる(ノードn2、n3、n4等も同様)。
しかし、実際は図12で示したように、各ノードは、HBA故障情報テーブルT3を有して、HBA故障に関しては閉塞情報とは別管理を行っている。このため、各ノードは、HBA[n3]というHBA故障情報を記憶管理するので、ノードn3と繋がらない閉塞経路の情報を集約して記憶管理することができ、メモリ容量を削減することができる。
<迂回リスト>
図15は迂回リストの一例を示す図である。迂回リストL1は、迂回リスト管理部14で生成され、項目として宛先、優先、優先迂回種別、予備および予備迂回種別を有する。
例えば、欄a1では、(宛先、優先、優先迂回種別、予備、予備迂回種別)=(n3、n2、[PCI][IB]、−、−)となっている。これは、目的の転送先ノードがノードn3、自ノードに隣接する優先迂回先ノードがノードn2であることが示されている。また、自ノードからノードn2を経由してノードn3への迂回通信では、PCI、IB(InfiniBand)の順にデータ乗換え処理が行われることが示されている。
欄a2では、(宛先、優先、優先迂回種別、予備、予備迂回種別)=(n4、n3、[IB][PCI]、−、−)となっている。これは、目的の転送先ノードがノードn4、自ノードに隣接する優先迂回先ノードがノードn3であることが示されている。また、自ノードからノードn3を経由してノードn4への迂回通信では、InfiniBand、PCIの順にデータ乗換え処理が行われることが示されている。
欄a3では、(宛先、優先、優先迂回種別、予備、予備迂回種別)=(n7、n8、[IB][PCI]、n2、[PCI][IB][PCI])となっている。これは、目的の転送先ノードがノードn7、自ノードに隣接する優先迂回先ノードがノードn8であることが示されている。優先迂回先ノードがノードn8の場合、自ノードからノードn8を経由してノードn7への迂回通信では、InfiniBand、PCIの順にデータ乗換え処理が行われることが示されている。
さらに欄a3では、自ノードに隣接する予備迂回先ノードがノードn2であることが示されている。また、予備迂回先ノードがノードn2の場合、自ノードからノードn2を経由してノードn7への迂回通信では、PCI、InfiniBand、PCIの順にデータ乗換え処理が行われることが示されている。
ここで、異なる通信プロトコル間によるデータ転送では、ソフトウェア上でデータの乗換え処理が行われる。データ乗換え処理が行われると、その分、データ転送の時間や通信コストが増大する。
このため、迂回通信を実施する場合、データ乗換え処理の回数が少ない経路を優先的に選択するように優先度を設定する。したがって、上記では欄a3のように、通信プロトコルのデータ乗換え回数が少ない迂回先(ノードn8)の方が、迂回先(ノードn2)よりも優先度が高く設定されている。なお、データ乗換え処理の回数以外にも、通信コストが小さい迂回先の優先度を高く設定してもよい。
<監視情報の検出および他ノードへの監視情報の送信>
図16は監視情報の検出および他ノードへの監視情報の送信の一例を説明するための図である。なお、通信経路の閉塞として、ノードn1、n3間の通信経路が閉塞したものとする。また、バッファ枯渇としてノードn1のバッファが枯渇したものとする。さらに、HBA故障として、ノードn1のHBAが故障したものとする。
〔ステップS21a〕ノードn1の通信制御部10は、ノードn1、n3間の通信経路r1の閉塞を検出する。
〔ステップS22a〕ノードn1の通信制御部10は、検出した閉塞情報として、(閉塞ノード#1、閉塞ノード#2)=(n1、n3)を閉塞情報テーブルT1に記録する。
〔ステップS21b〕ノードn1の通信制御部10は、ノードn1内のバッファの容量枯渇を検出する。
〔ステップS22b〕ノードn1の通信制御部10は、バッファ枯渇情報テーブルT2にノードn1を記録する。
〔ステップS21c〕ノードn1の通信制御部10は、ノードn1のHBAの故障を検出する。
〔ステップS22c〕ノードn1の通信制御部10は、HBA故障情報テーブルT3にノードn1を記録する。
〔ステップS23〕ノードn1の通信制御部10は、閉塞情報テーブルT1、バッファ枯渇情報テーブルT2およびHBA故障情報テーブルT3に記録された各監視情報を、開通済みの通信経路を経由して通知する。なお、各監視情報を受信したノードは、開通済みの通信経路を経由して、受信した監視情報を他ノードへ送信して伝搬する。
閉塞情報(経路閉塞情報に該当)の伝搬において、ノードn1の通信制御部10は、閉塞情報[(閉塞ノード#1、閉塞ノード#2)=(n1、n3)]を、通信経路r5を介して同一サーバ内のノードn2へ送信する。
また、ノードn3の通信制御部10は、閉塞情報[(閉塞ノード#1、閉塞ノード#2)=(n1、n3)]を、通信経路r6を介して同一サーバ内のノードn4へ送信する。
バッファ枯渇情報(通信コスト情報に該当)の伝搬において、ノードn1の通信制御部10は、バッファ枯渇情報[n1]を、通信経路r1を介して対向サーバ内のノードn3へ送信し、通信経路r5を介して同一サーバ内のノードn2へ送信する。
ノードn3の通信制御部10は、受信したバッファ枯渇情報[n1]を、通信経路r6を介して同一サーバ内のノードn4へ送信する。
HBA故障情報(経路閉塞情報に該当)の伝搬において、ノードn1の通信制御部10は、HBA故障情報[n1]を、通信経路r5を介して同一サーバ内のノードn2へ送信する。ノードn2の通信制御部10は、受信したHBA故障情報[n1]を、通信経路r3を介して対向するサーバ内のノードn3へ送信する。
ノードn3の通信制御部10は、受信したHBA故障情報[n1]を、通信経路r6を介して同一サーバ内のノードn4へ送信する。
なお、通信経路の復旧時、バッファ枯渇状態の解消時およびHBA故障の普及時では、テーブル内で削除すべき情報が上記と同じような流れで伝搬され、テーブルから所定の情報が削除される。
ここで、閉塞経路、バッファ枯渇またはHBA故障を検出した経路閉塞検出ノードが、これら監視情報を送信する際の対象ノード選択論理としては例えば、以下のようなものがある。
(1)経路閉塞検出ノードは、同一サーバ内で自身に接続するノードへ監視情報を送信する(PCI経由)。なお、InfiniBand経由の通信経路が全閉塞している場合、送信すべき監視情報にその旨を示すフラグを付与して送信する。これにより、該フラグを受信したノードは、監視情報を中継送信するための対向ノードの探索処理を停止するので処理負荷を軽減することができる。
(2)経路閉塞検出ノードは、自身のノードIDを境界にして、送信対象ノード数の少ない方向に位置するノードに監視情報を送信する。例えば、全ノードがノードn1、・・・、n8の8台あり、自身がノードn5の場合、ノードn5を境界にして、送信対象ノード数の少ないノードn6、n7、n8のうちのいずれかのノードに対して監視情報を送信する。
上記のような論理によって監視情報が他ノードへ送信されることで、同じノードに対して重複した監視情報が送信されることを抑制することができる。
<監視情報の受信処理>
図17は監視情報の受信処理の動作を示すフローチャートである。
〔ステップS31〕通信制御部10は、他ノードから送信された監視情報を受信する。
〔ステップS32〕通信制御部10は、受信した監視情報がテーブルに記録済みか否かを判定する。受信した監視情報がテーブルに記録済みの場合は該情報を破棄し、記録済みでない場合はステップS33へ処理が進む。
〔ステップS33〕通信制御部10は、受信した監視情報をテーブルに記録する(例えば、受信した監視情報が閉塞経路を示すものならば閉塞情報テーブルT1に記録する)。
〔ステップS34〕閉塞情報テーブルT1、バッファ枯渇情報テーブルT2およびHBA故障情報テーブルT3に記録された各監視情報は、開通済みの通信経路を経由して通知・伝搬される。
ここで、通知された監視情報を受信したノードが、他ノードに対して該監視情報を送信して伝搬する際の対象ノード選択論理としては例えば、InfiniBand経由で受信した監視情報は、同一サーバ内の隣接ノードへ送信する。また、PCI経由で受信した監視情報の場合は他ノードへの送信を停止する(ただし、隣接ノードのInfiniBand用の経路が全閉塞していれば、上記の経路閉塞検出ノードと同等の選択論理で送信する)。
<迂回リストの更新処理>
図18は迂回リストの更新処理の動作を示すフローチャートである。
〔ステップS41〕通信制御部10は、更新されたテーブル情報(図12に示した各テーブルの情報)に自ノードが含まれているか否かを判定する。自ノードが含まれている場合、ステップS42へ処理が進み、自ノードが含まれていない場合、ステップS44へ処理が進む。
〔ステップS42〕通信制御部10は、閉塞情報テーブルT1、バッファ枯渇情報テーブルT2およびHBA故障情報テーブルT3の中から、迂回通信に関係のある監視情報を抽出する。
〔ステップS43〕通信制御部10は、抽出した監視情報から、優先度の高い2つの迂回経路を生成して、迂回リストL1の登録内容を更新する。
〔ステップS44〕通信制御部10は、迂回リストL1から既存の迂回経路を検出する。
〔ステップS45〕通信制御部10は、更新した監視情報に含まれるノードIDが、検出した迂回経路の中に含まれるか否かを判定する。
すなわち、通信制御部10は、既存の迂回経路を構築しているノードのうち、新たに生じた閉塞経路に接続しているノードや、バッファが枯渇となったノード、またはHBAが故障したノードが含まれるか否かをノードIDにもとづいて判定する。
当該ノードIDが既存の迂回経路の中に含まれる場合は、ステップS46へ処理が進む。当該ノードIDが既存の迂回経路の中に含まれない場合は、既存の迂回経路に影響はないため、迂回リストL1の更新は行われない。
〔ステップS46〕通信制御部10は、閉塞情報テーブルT1、バッファ枯渇情報テーブルT2およびHBA故障情報テーブルT3の中から、迂回通信に関係のある監視情報を抽出する。
〔ステップS47〕抽出した監視情報から、優先度の高い2つの迂回経路を生成して、迂回リストL1の登録内容を更新する。
なお、優先度の設定としては、例えば、優先度の高い順に[IB][PCI]>[PCI][IB]>[IB][PCI][バッファ枯渇ノード経由]>[PCI][IB][バッファ枯渇ノード経由]>[PCI][IB][PCI]>(完全閉塞)となる。
<迂回通信処理>
図19は迂回通信処理の動作を示すフローチャートである。
〔ステップS51〕通信制御部10は、メッセージやデータを目的ノードに送信する場合、迂回リストL1を参照する。
〔ステップS52〕通信制御部10は、迂回リストL1の中の「宛先」に目的ノードが含まれているか否かを判定する。「宛先」に目的ノードが含まれる場合、ステップS53へ処理が進み、「宛先」に目的ノードが含まれない場合、目的ノードに向けてメッセージやデータを直接送信する。
〔ステップS53〕通信制御部10は、迂回リストL1の中の「優先」に記載されているノードに対して、メッセージやデータを迂回通信する。例えば、図15において、目的ノードがノードn7の場合、迂回リストL1にもとづき、ノードn8へ迂回通信が行われる。
なお、迂回リストL1において、「宛先」に目的ノードが含まれ、「優先」と「予備」の2つの候補がある場合、原則は「優先」に記載されるノードへの迂回通信が行われるが、通信コスト(バッファ枯渇状態、プロセッサ処理負荷等)から判断して、「予備」に記載されるノードへ迂回通信を行うこともできる。
例えば、図15の迂回リストL1において、目的ノードがノードn7の場合、迂回リストL1の「優先」はノードn8と記載されているので、原則はノードn8への迂回通信が行われる。
ただし、ノードn8のバッファが枯渇状態である場合や、ノードn8のプロセッサ処理負荷が高い場合等では、迂回リストL1の予備に記載されているノードn2が選択され、ノードn2に対して迂回通信を行うことも可能である。
<迂回通信の動作例>
次に迂回通信の動作例についてさらに図20、図21を用いて説明する。図20、図21は迂回通信の動作の一例を説明するための図である。図20において、ノードn1からノードn3へのデータ転送時、通信経路r1に閉塞が発生したとする。ノードn1内の通信制御部10は、迂回リストL1aを生成管理する。
迂回リストL1aは、項目として宛先、優先および予備を有する(優先迂回種別、予備迂回種別は省略)。迂回リストL1aには、(宛先、優先、予備)=(n3、n4、n2)と設定されている。
ノードn1からノードn3への迂回通信時、ノードn4を経由する場合は、データ乗換えの順番は[IB][PCI]であり、ノードn2を経由する場合は、データ乗換えの順番は[PCI][IB]である。
図18で上述したように、優先度の高さは[IB][PCI]>[PCI][IB]である。すなわち、ノードn1にとってデータ乗換え処理を不要とする迂回先(ノードn4)の方が、データ乗換え処理を要する迂回先(ノードn2)よりも優先度は高い。よって、迂回リストL1aでは、ノードn4の方がノードn2よりも優先度が高く設定される。したがって、ノードn1、ノードn4、ノードn3の順に迂回通信が行われる。
図21において、ノードn3の通信コストがノードn2の通信コストよりも高いとする。例えば、ノードn3のバッファが枯渇状態になっている、またはノードn3のプロセッサ処理負荷が閾値を超えているとする。
このような場合、ノードn1の通信制御部10は、迂回リストL1aに設定されている予備のノードn2を迂回先として選択する。したがって、ノードn1、ノードn2、ノードn3の順に迂回通信が行われる。
以上説明したように、本発明によれば、通信経路の多重故障時の別迂回経路の探索を容易に実施することが可能になり、ノード間通信の信頼性の向上を図ることが可能になる。また、DMA転送時に使用されるバッファが枯渇しやすい状況では、別迂回経路を選択して通ることができるので、効率よく負荷分散を行うことが可能になる。さらに、プロセッサ処理性能を重視するノードへの迂回を実施することも可能である。
上記で説明した本発明のストレージシステムおよびノード(ストレージ制御装置)の処理機能は、コンピュータによって実現することができる。この場合、ストレージシステムおよびノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD−ROM/RW等がある。
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
(付記1) ストレージ装置と、
前記ストレージ装置を制御対象とする複数のストレージ制御装置と、
前記複数のストレージ制御装置間を接続する通信経路と、
を含むストレージシステムであって、
前記ストレージ制御装置は、
前記通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部、
を有するストレージシステム。
(付記2) 前記制御部は、記憶している前記経路閉塞情報を更新した場合、開通している前記通信経路を経由して更新後の前記経路閉塞情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記経路閉塞情報を受信して、前記他ストレージ制御装置が記憶している前記経路閉塞情報を更新する付記1記載のストレージシステム。
(付記3) 前記制御部は、前記経路閉塞情報の更新に応じて前記迂回経路情報を更新し、前記迂回経路情報に複数の迂回先が存在する場合、優先度を前記迂回先に設定する付記2記載のストレージシステム。
(付記4) 前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理を不要とする前記迂回先には、前記データ乗換え処理を要する前記迂回先よりも前記優先度を高く設定する付記3記載のストレージシステム。
(付記5) 前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理の回数が少ない前記迂回先ほど前記優先度を高く設定する付記3記載のストレージシステム。
(付記6) 前記制御部は、通信制約が小さい前記迂回先ほど前記優先度を高く設定する付記3記載のストレージシステム。
(付記7) 前記制御部は、迂回経路上に位置する前記ストレージ制御装置内のメモリ容量の枯渇状態、または通信負荷状態の少なくとも1つを前記通信制約として検出する付記6記載のストレージシステム。
(付記8) 前記制御部は、前記通信制約を検出して通信制約情報を生成し、記憶している前記通信制約情報を更新した場合、開通している前記通信経路を経由して更新後の前記通信制約情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記通信制約情報を受信して、前記他ストレージ制御装置が記憶している前記通信制約情報を更新する付記6記載のストレージシステム。
(付記9) 前記複数のストレージ制御装置として、第1から第4のストレージ制御装置を有し、
前記第1のストレージ制御装置と、前記第2のストレージ制御装置とが第1のサーバに含まれ、前記第3のストレージ制御装置と、前記第4のストレージ制御装置とが第2のサーバに含まれ、
前記第1のサーバと前記第2のサーバ間の装置接続は、第1の通信プロトコルを持つ第1から第4の通信経路で接続され、前記第1のサーバ内の装置接続は、前記第1の通信プロトコルとは異なる第2の通信プロトコルを持つ第5の通信経路で接続され、前記第2のサーバ内の装置接続は、前記第2の通信プロトコルを持つ第6の通信経路で接続され、
前記第1のストレージ制御装置は、前記第1の通信経路を介して前記第3のストレージ制御装置と接続し、前記第2の通信経路を介して前記第4のストレージ制御装置と接続し、
前記第2のストレージ制御装置は、前記第3の通信経路を介して前記第3のストレージ制御装置と接続し、前記第4の通信経路を介して前記第4のストレージ制御装置と接続し、
前記第1のストレージ制御装置と前記第2のストレージ制御装置は、前記第5の通信経路で接続し、
前記第3のストレージ制御装置と前記第4のストレージ制御装置は、前記第6の通信経路で接続し、
前記第1のストレージ制御装置内の前記制御部は、前記第1の通信経路の閉塞を検出した場合、前記第3のストレージ制御装置を宛先とする前記第1の通信プロトコルのデータ送信の迂回先として、前記第4のストレージ制御装置を第1の迂回先、前記第2のストレージ制御装置を第2の迂回先に設定した迂回経路情報を生成する、
付記1記載のストレージシステム。
(付記10) 前記第1のストレージ制御装置内の前記制御部は、前記第1の通信プロトコルのデータを前記第2の通信プロトコルに変換して前記第2のストレージ制御装置に送信する前記第2の迂回先よりも、前記第1の通信プロトコルのままでデータを前記第4のストレージ制御装置に送信する前記第1の迂回先を選択して迂回通信を行う付記9記載のストレージシステム。
(付記11) 前記第1の通信プロトコルはInfiniBandであり、前記第2の通信プロトコルはPCIである付記9記載のストレージシステム。
(付記12) 前記第1のストレージ制御装置内の前記制御部は、前記第4のストレージ制御装置のメモリの枯渇状態、または前記第4のストレージ制御装置のプロセッサ処理負荷が閾値を超えることを検出した場合、前記第1の通信プロトコルのままでデータを送信可能な前記第4のストレージ制御装置に送信する前記第1の迂回先よりも、前記第1の通信プロトコルのデータを前記第2の通信プロトコルに変換して前記第2のストレージ制御装置に送信する前記第2の迂回先を選択して迂回通信を行う付記9記載のストレージシステム。
(付記13) ストレージ装置を制御対象とするストレージ制御装置において、
記憶部と、
通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを前記記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部と、
を有するストレージ制御装置。
(付記14) コンピュータに、
通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、
前記経路閉塞情報にもとづいて通信先となる装置毎に設定した迂回経路情報を生成し、
前記経路閉塞情報と前記迂回経路情報とをメモリに格納し、
他装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う、
処理を実行させるプログラム。
1 ストレージシステム
1a ストレージ装置
1a−1、・・・、1a−n 記憶媒体
1b サーバ装置
1b−1、1b−2 サーバ
k1 経路閉塞情報
k2 迂回リスト
10−1、・・・、10−4 ストレージ制御装置
10a−1、・・・、10a−4 制御部
m1、・・・、m4 記憶部
r1、・・・、r6 通信経路

Claims (8)

  1. ストレージ装置と、
    前記ストレージ装置を制御対象とする複数のストレージ制御装置と、
    前記複数のストレージ制御装置間を接続する通信経路と、
    を含むストレージシステムであって、
    前記ストレージ制御装置は、
    前記通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部、
    を有するストレージシステム。
  2. 前記制御部は、記憶している前記経路閉塞情報を更新した場合、開通している前記通信経路を経由して更新後の前記経路閉塞情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記経路閉塞情報を受信して、前記他ストレージ制御装置が記憶している前記経路閉塞情報を更新する請求項1記載のストレージシステム。
  3. 前記制御部は、前記経路閉塞情報の更新に応じて前記迂回経路情報を更新し、前記迂回経路情報に複数の迂回先が存在する場合、優先度を前記迂回先に設定する請求項2記載のストレージシステム。
  4. 前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理を不要とする前記迂回先には、前記データ乗換え処理を要する前記迂回先よりも前記優先度を高く設定する請求項3記載のストレージシステム。
  5. 前記制御部は、前記迂回通信を実行する際に、通信プロトコルのデータ乗換え処理の回数が少ない前記迂回先ほど前記優先度を高く設定する請求項3記載のストレージシステム。
  6. 前記制御部は、通信制約を検出して通信制約情報を生成し、記憶している前記通信制約情報を更新した場合、開通している前記通信経路を経由して更新後の前記通信制約情報を他ストレージ制御装置へ送信し、前記他ストレージ制御装置は、送信された前記通信制約情報を受信して、前記他ストレージ制御装置が記憶している前記通信制約情報を更新する請求項1記載のストレージシステム。
  7. ストレージ装置を制御対象とするストレージ制御装置において、
    記憶部と、
    通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、前記経路閉塞情報にもとづいて通信先となる前記ストレージ制御装置毎に設定した迂回経路情報を生成して、前記経路閉塞情報と前記迂回経路情報とを前記記憶部に格納し、他ストレージ制御装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う制御部と、
    を有するストレージ制御装置。
  8. コンピュータに、
    通信経路の閉塞状態の検出にもとづいて経路閉塞情報を生成し、
    前記経路閉塞情報にもとづいて通信先となる装置毎に設定した迂回経路情報を生成し、
    前記経路閉塞情報と前記迂回経路情報とをメモリに格納し、
    他装置への通信を行うとき前記迂回経路情報にもとづいて選択した迂回経路で迂回通信を行う、
    処理を実行させるプログラム。
JP2017202515A 2017-10-19 2017-10-19 ストレージシステム、ストレージ制御装置およびプログラム Pending JP2019075032A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017202515A JP2019075032A (ja) 2017-10-19 2017-10-19 ストレージシステム、ストレージ制御装置およびプログラム
US16/142,056 US20190121573A1 (en) 2017-10-19 2018-09-26 Storage system and storage control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017202515A JP2019075032A (ja) 2017-10-19 2017-10-19 ストレージシステム、ストレージ制御装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2019075032A true JP2019075032A (ja) 2019-05-16

Family

ID=66170661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017202515A Pending JP2019075032A (ja) 2017-10-19 2017-10-19 ストレージシステム、ストレージ制御装置およびプログラム

Country Status (2)

Country Link
US (1) US20190121573A1 (ja)
JP (1) JP2019075032A (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3987241B2 (ja) * 1999-07-29 2007-10-03 株式会社東芝 系間情報通信システム
JP4486921B2 (ja) * 2005-12-09 2010-06-23 富士通株式会社 ストレージ仮想化装置およびそれを用いたコンピュータシステム
JP4661892B2 (ja) * 2008-03-25 2011-03-30 日本電気株式会社 通信ネットワークシステム、通信装置、経路設計装置及び障害回復方法
JP5232602B2 (ja) * 2008-10-30 2013-07-10 株式会社日立製作所 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
US8402189B2 (en) * 2010-05-13 2013-03-19 Hitachi, Ltd. Information processing apparatus and data transfer method
US8732410B2 (en) * 2010-12-07 2014-05-20 Advanced Micro Devices, Inc. Method and apparatus for accelerated shared data migration
WO2016117040A1 (ja) * 2015-01-21 2016-07-28 株式会社日立製作所 計算機システム、計算機システムにおけるデータの移行方法
US9659006B2 (en) * 2015-06-16 2017-05-23 Cantor Colburn Llp Disambiguation in concept identification
US9804789B2 (en) * 2015-06-24 2017-10-31 Vmware, Inc. Methods and apparatus to apply a modularized virtualization topology using virtual hard disks
US9842016B2 (en) * 2015-11-12 2017-12-12 International Business Machines Corporation Multiple path error data collection in a storage management system
US10261693B1 (en) * 2018-01-31 2019-04-16 EMC IP Holding Company LLC Storage system with decoupling and reordering of logical and physical capacity removal
US10769042B2 (en) * 2018-06-25 2020-09-08 Seagate Technology Llc Single port data storage device with multi-port virtualization

Also Published As

Publication number Publication date
US20190121573A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
US7921316B2 (en) Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
JP4520802B2 (ja) ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
US7779148B2 (en) Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US8077602B2 (en) Performing dynamic request routing based on broadcast queue depths
JP5779254B2 (ja) 計算機システムを管理する管理システム、計算機システムの管理方法及び記憶媒体
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
US20090063886A1 (en) System for Providing a Cluster-Wide System Clock in a Multi-Tiered Full-Graph Interconnect Architecture
US8340087B2 (en) Storage subsystem
US10007629B2 (en) Inter-processor bus link and switch chip failure recovery
TW201211895A (en) Migrating virtual machines among networked servers upon detection of degrading network link operation
RU2658884C1 (ru) Способ управления процессором и многопроцессорной системой
EP2430544A1 (en) Altering access to a fibre channel fabric
JP2008299481A (ja) ストレージシステム及び複数拠点間でのデータコピー方法
US20120284435A1 (en) Zone group manager virtual phy
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
JP2010231723A (ja) マルチプロセッサシステム、ノードコントローラ、障害回復方式
US9032118B2 (en) Administration device, information processing device, and data transfer method
US20190220375A1 (en) Storage system and storage method
JP2007080012A (ja) 再起動方法、システム及びプログラム
JP2019075032A (ja) ストレージシステム、ストレージ制御装置およびプログラム
US9746986B2 (en) Storage system and information processing method with storage devices assigning representative addresses to reduce cable requirements
JP2018097435A (ja) 並列処理装置及びノード間通信プログラム
JP6070848B2 (ja) 情報処理装置,データ転送装置,データ転送方法,および制御装置
JP5365747B2 (ja) 処理システム,通信装置および処理装置
JP2005208972A (ja) コンピュータ装置及びシステム