JP2010092243A - 複数のストレージモジュールで構成されたストレージシステム - Google Patents

複数のストレージモジュールで構成されたストレージシステム Download PDF

Info

Publication number
JP2010092243A
JP2010092243A JP2008261074A JP2008261074A JP2010092243A JP 2010092243 A JP2010092243 A JP 2010092243A JP 2008261074 A JP2008261074 A JP 2008261074A JP 2008261074 A JP2008261074 A JP 2008261074A JP 2010092243 A JP2010092243 A JP 2010092243A
Authority
JP
Japan
Prior art keywords
circuit
switch
port
packet
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
JP2008261074A
Other languages
English (en)
Inventor
Naomi Okada
尚規 岡田
Toshio Asai
俊男 淺井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008261074A priority Critical patent/JP2010092243A/ja
Priority to US12/314,770 priority patent/US8010732B2/en
Publication of JP2010092243A publication Critical patent/JP2010092243A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling

Abstract

【課題】ストレージモジュール間のアクセスを高速に行う。
【解決手段】第一及び第二のストレージモジュールを含んだ複数のストレージモジュールを有するストレージシステムにおいて、第一のストレージモジュールが、複数のポートを有した第一のスイッチ回路と、第一のスイッチ回路が有する複数のポートのいずれかのポートに内部パスを介して接続されている第一回路とを備える。第二のストレージモジュールが、第二回路を備える。第一のスイッチ回路が有する複数のポートのいずれかのポートに、第一のスイッチ回路と第二の回路とを結ぶためのパスであるダイレクトパスが繋がる。第一の回路が、第二の回路宛のパケットを発行し、第一のスイッチ回路が、第一の回路から第二回路宛のパケットを受信し、そのパケットを、第二の回路へのダイレクトパスに繋がっているポートから出力する。
【選択図】図1

Description

本発明は、複数のストレージモジュールで構成されたストレージシステムに関する。
複数のストレージモジュールで構成されたストレージシステムとして、例えば特許文献1に開示のシステムが知られている。このシステムによれば、ストレージモジュールが有するスイッチ部と、別のストレージモジュールが有するスイッチ部とを互いに結合することで、モジュール間の通信が可能となっている。
特開2005−227807号公報
例えば、第一のストレージモジュール内の回路(以下、第一回路、例えばマイクロプロセッサ)が、第二のストレージモジュール内の回路(以下、第二回路、例えばキャッシュメモリ)にアクセスする場合、第一回路から第二回路に対するパケットが、第一のストレージモジュール内のスイッチ(以下、第一SW)と第二のストレージモジュール内のスイッチ(以下、第二SW)の両方を経由することになる。このため、ストレージモジュール間のアクセスを高速に行うことが困難になり得る。
従って、本発明の目的は、ストレージモジュール間のアクセスを高速に行うことにある。
第一及び第二のストレージモジュールを含んだ複数のストレージモジュールを有するストレージシステムにおいて、第一のストレージモジュールが、複数のポートを有した第一のスイッチ回路と、第一のスイッチ回路が有する複数のポートのいずれかのポートに内部パスを介して接続されている第一回路とを備える。第二のストレージモジュールが、第二回路を備える。第一のスイッチ回路が有する複数のポートのいずれかのポートに、第一のスイッチ回路と第二の回路とを結ぶためのパスであるダイレクトパスが繋がる。第一の回路が、第二の回路宛のパケットを発行し、第一のスイッチ回路が、第一の回路から第二回路宛のパケットを受信し、そのパケットを、第二の回路へのダイレクトパスに繋がっているポートから出力する。
以下、図面を参照して、本発明の幾つかの実施形態を説明する。
図1は、本発明の第一実施形態に係るストレージシステムの構成例を示す。
ストレージシステムは、複数のストレージモジュール(以下、モジュール)101で構成されている。本実施形態で言う「モジュール」とは、増設及び減設の一単位であり、単独でもストレージシステムとして機能する。
モジュール101は、複数のパッケージ(以下、PK)と、複数のHDD(Hard Disk Drive)112で構成されている。HDDに代えて、フラッシュメモリなど、他種の物理記憶装置が採用されても良い。
PKは、モジュール101に対する増設及び減設の一単位である。PKは、例えば回路基板である。PKとしては、例えば、CHA(Channel Adaptor)111、DKA(Disk Adaptor)113、SW(Switch)115、CM(Cache Memory)117及びMP(Micro Processor)119がある。CHA111は、ホスト計算機(他種の外部装置でもよい)100に対するインタフェースとして機能する回路である。DKA113は、HDD112に対するインタフェースとして機能する回路である。SW115は、或るPKから他のPKへのデータ転送を制御する。CM117は、ホスト100とHDD112との間で送受信されるデータを一時的に記憶するメモリを有した回路である。MP119は、他のPKの動作を制御する。各種PKは、1又は複数存在する。
モジュール101は、例えば図2に示すような筺体201を有し、筺体201内に、前述した各種のPKや、HDD112を有する。PKは、複数のスロット150のいずれかに挿し込まれて、筺体201内部のバックボード(回路基板)1701が有するコネクタ(図示せず)に接続される。
以下、モジュールを、モジュールnとして説明し、nは、通し番号0、1、…の整数であるとする。そして、モジュール内の各PKも、そのモジュールの通し番号と同じ番号を付与して説明する。そうすることで、どのPKがどのモジュールに存在するかが明確になる。また、以下、モジュールの数は2であるとし、それらのモジュールは、モジュール0及びモジュール1であるとする。
モジュール0,1間の接続は、図1に示すように、SW0とSW1の接続に加えて、SW0とモジュール1内のSW1以外のPKとの接続、及び、SW1とモジュール0内のSW0以外のPKとの接続により、実現されている。具体的には、例えば、SW0は、SW1以外に、CM1及びMP1に接続され、SW1は、SW0以外に、CM0及びMP0に接続されている。このため、SW0とCM0及びMP0とを結ぶパス(SW1とCM0及びMP0とを結ぶパス)として、SW1(SW0)を経由するパスと、SW1(SW0)を非経由のパスとの2種類のパスが存在する。以下、SW1(SW0)を経由するパスを、「SW接続パス」と言い、SW1(SW0)を非経由のパスを、「ダイレクトパス」と言うことがある。
SW0とCM1及びMP1との接続、及び、SW1とCM0及びMP0との接続は、種々の方法、例えば、図3乃至図5に示すいずれかの方法により実現される。図3に示す方法によれば、一方のPK(例えばSW0)が有するコネクタと、他方のPK(例えばCM1又はMP1)が有するコネクタに、ケーブルが接続される。図4に示す方法によれば、ケーブルの一端が、それぞれ、SW0、MP0及びCM0のコネクタに接続され、ケーブルの他端が、バックボード1が有するコネクタに接続される。図5に示す方法によれば、ケーブルが、バックボード0が有するコネクタ及びバックボード1が有するコネクタに接続される。図4及び図5に示す方法では、バックボード1(及びバックボード0)のプリント配線に従って、SW接続パス及びダイレクトパスが実現される。
再び図1を参照する。以下、モジュール0及び1のうちモジュール0を代表的に例に採り説明する。
SW0は、複数のポート(以下、SWポート)、例えば8個のSWポート#1〜#8を有する(SW1については、ポートの図示が省略されている)。それら8個のSWポート#1〜#8のうち、SWポート#1及び#2が、SW接続パスに繋がるSWポートであり、SWポート#3及び#4が、ダイレクトパスに繋がるSWポートであり、その他のSWポート#7、#8、#6及び#5が、SW0と他のPK0とを結ぶ内部パスに接続されているSWポートである。すなわち、SW0が有する8個のSWポートには、SW1、CM1、MP1、及び、モジュール0内のPKが接続される。なお、8個のSWポートのうちのいずれに、SW1、CM1、MP1、及び、PK0のいずれが接続されても良い。つまり、例えば、SWポート#1及び#2が、SW接続パスに繋がる専用のSWポートであるわけではなく、他のSWポートにSW接続パスが接続されても良いし、同様に、SWポート#3及び#4は、ダイレクトパスに繋がる専用のSWポートであるわけではなく、他のSWポートにダイレクトパスが接続されても良い。
SW0は、図6に示す処理、すなわち、
S601:SWポート#1〜#8を通じて、モジュールID、スロットID及びPKIDを取得する;
S602:PKAD(PKアドレス)を生成する;
S603:ルーティングテーブルを作成する;
を実行する。以下、各処理を説明する。
<S601:モジュールID、スロットID及びPK−IDの取得>。
モジュールIDとは、モジュール101の識別子である。
スロットIDとは、PKが挿されたスロット150(図2参照)の識別子である。スロットIDは、PKの種別に関わらずに非重複のコードであっても良いし、PKの種別についてのみ非重複のコードであっても良い。図1及び図10の例によれば、例えば、DKAについての或るスロットと、CHAについての或るスロットには、同じ識別子“0000”が割り当てられている。
PKIDとは、PKの種別の識別子である(各PK種別とPKIDの一例を図7に示す)。従って、各PKのPK種別が同じであれば、各PKのPKIDは同じとなる。
各PK0(CHA0、DKA0など)は、バックボード0に接続されたときに、モジュールID及びスロットIDを、バックボード0から取得する。具体的には、例えば、PK0は、スロット150を介してバックボード0のコネクタに接続されたときに検出される抵抗値から、モジュールID及びスロットIDを識別する。また、PK0には、予め、PKIDが設定されている。識別されたモジュールID及びスロットIDや、予め設定されているPKIDは、PK0が有する記憶資源(例えばメモリ)に記憶される。
SW0は、各SWポート#1〜#8を通じて、各PK(SW0以外のPK0、SW1、MP1、CM1)からモジュールID、スロットID及びPKIDを取得する。SWポート#1及び#2から取得されたモジュールID、スロットID及びPKIDとしては、SW1のモジュールID、スロットID及びPKIDの他に、SW1に接続されている各PK1のモジュールID、スロットID及びPKIDがある。取得されたモジュールID、スロットID及びPKIDと、それらのIDが経由したSWポートの識別子との組が、例えば、SW0が有する記憶資源(例えばメモリ)に記憶される。
<S602:PKADの生成>
SW0は、各SWポート#1〜#8について、PKADを生成する。PKADは、図8に示すように、モジュールID、スロットID及びPKIDで構成されたデータである。
<S603:ルーティングテーブルの作成>
SW0は、SWポート#1〜#8の各々についてのPKADを基に、ルーティングテーブルを作成する。
図10は、SW0が有するルーティングテーブルを示す。
ルーティングテーブルは、SW0が受け取ったパケットの宛先がどこの場合にどのSWポートからそのパケットを転送するかを表すテーブルである。具体的には、例えば、ルーティングテーブルには、SWポート毎に、SWポート番号、接続先PKAD、ルーティング先PKAD及びダイレクトパスフラグが記録される。以下、一つのSWポート(以下、図10の説明において「対象SWポート」と言う)を例に採り、各情報要素について説明する。
SWポート番号は、対象SWポートの識別番号である。
接続先PKADは、対象SWポートに接続されているPKのPKADである。すなわち、接続先PKADは、対象SWポートを経由して取得されたモジュールID、スロットID及びPKIDを基に作成されたPKADである。
ルーティング先PKADは、対象SWポートから転送可能な全てのPKのPKADである。ルーティング先PKADは、DKA、CHA、CM及びMPのそれぞれのPKについて記録される。対象SWポートに接続されているPKがSW1以外の場合には(対象SWポートに対応した接続先PKADにおけるPKIDがPK種別“SW”以外のPK種別に対応している場合に)、対象SWポートについて、一つのルーティング先PKAD、つまり接続先PKADと同じPKADが、そのPKAD内のPKIDが表すPK種別に対応した欄に設定される。一方、対象SWポートに接続されているPKがSW1の場合には(対象SWポートに対応した接続先PKADにおけるPKIDがPK種別“SW”に対応している場合に)、対象SWポートについて、複数のルーティング先PKADが設定される(図10において、SWポート#1及び#2についてのレコードを参照)。なぜなら、接続先PKのSW1の場合、SW1からは、SW1のモジュールID、スロットID及びPKIDに加えて、SW1に接続されている各PK1(DKA1、CHA1、CM1、及びMP1)のモジュールID、スロットID及びPKIDが取得されるためである。
ダイレクトパスフラグは、対象SWポートに繋がっているパスがダイレクトパスか否かを表すフラグである。図10においてダイレクトパスフラグが○印(つまり立っている(値“1”))になっているSWポートに、ダイレクトパスが繋がっている。SW0は、対象SWポートに対応したルーティング先PKADが一つだけであり、且つ、そのルーティング先PKADが対象SWポートに対応している接続先PKADと同じであれば、対象SWポートに接続されているパスをダイレクトパスと判断し、対象SWポートに対応したダイレクトパスフラグを立てる。具体的には、図10によれば、SWポート#3及び#4について、ルーティング先PKADは一つだけであり、それは接続先PKADと同じであるため、SW0は、SWポート#3及び#4はダイレクトパスに繋がっていると判断する。
SW0は、いずれかのSWポートを介してパケットを受信し、このルーティングテーブルを参照して、受信したパケットに指定されている宛先に対応したSWポートを特定し、そのSWポートから、そのパケットを転送する。
図9は、パケットのフォーマットの一例を示す。
パケットには、PKAD、コマンド種別情報、アクセス速度ビット、及び転送対象のデータが含まれる。PKADは、宛先PKのPKADである。コマンド種別情報は、パケットが意味する命令の種別(例えば、ライト或いはリード)を表す情報である。アクセス速度ビットは、パケットの転送速度を高速(“1”)とするか低速(“0”)とするかを表すビットである。
SW0は、パケットを受信した場合に、パケット内のPKADと同じルーティング先PKADに対応したSWポートを特定し、特定したSWポートから、そのパケットを転送する。
もし、特定された複数のSWポートが特定された場合(例えば、SW0がCM1のPKADを含んだパケットを受信し、それにより、SWポート#1、#2及び#4が特定された場合)、そのうちの一つのSWポート(例えばSWポート#4)が、ダイレクトパスに繋がっているSWポートであり、それ以外のSWポート(例えばSWポート#1及び#2)が、SW接続パスに繋がっているSWポートである。この場合、SW0は、受信したパケット内のアクセス速度ビットが高速を表していれば、ダイレクトパスに繋がっているSWポート(例えばSWポート#4)からそのパケットを転送し、一方、受信したパケット内のアクセス速度ビットが低速を表していれば、SW接続パスに繋がっている一以上のSWポート(例えばSWポート#1又は#2)のうちのいずれかから、そのパケットを転送する。それら一以上のSWポートの選択されるSWポートは、例えば、負荷が低いSWポートである。
SW0が作成したルーティングテーブルの情報が、SW0から、SW0に繋がっている各MP(MP0及びMP1)に送信され、各MPに共用される。各MPは、複数のポート(以下、MPポート)を有しており、その情報を基に、MPは自分のどのMPポートがダイレクトパスに繋がっているかを知ることができる。このため、MPは、パケットを送信するとき、ダイレクトパスを経由して他モジュール(そのMPを有するモジュールとは異なるモジュール)内のSWに送信するか、或いは、自モジュール(そのMPを有するモジュール)内のSWに送信するかを、ルーティングテーブルの情報を基に判断することができる。
図11は、CHA0がホストからライトコマンドを受領した場合に実行される処理のフローを示す。
CHA0は、ライトコマンドを受領すると、ライト受信報告処理が行われる。すなわち、CHA0は、そのライトコマンドを基に、MP1を宛先としたパケット(以下、パケットW1)を生成して、SW0に送信する(S1)。パケットW1では、パケット種別情報は、ライトを表す情報である。SW0は、CHA0からパケットW1を受信し(S2)、パケットW1の宛先がダイレクトパスに繋がっているMP1であるため、アクセスが高速アクセスか否かを判断する(S3)。SW0は、アクセスが高速アクセスと判断した場合(S3:YES)、SWポート#3からダイレクトパスを通じてMP1にパケットW1を転送する(S4)。一方、SW0は、アクセスが低速アクセスと判断した場合(S3:NO)、SWポート#1又は#2からSW接続パスを通じてMP1にパケットW1を転送する(S6、S7)。
次に、CMライトDMA(Direct Memory Access)起動処理が行われる。すなわち、MP1が、CHA0からのパケットW1に応答して、SW0を通じて、CHA0を宛先としたパケット(以下、パケットW2)を送信する(S5、S8、S9、S10)。パケットW2では、コマンド種別情報は、例えばライトを表す情報である。
次に、CMライト処理が行われる。すなわち、CHA0が、MP1からのパケットW2に応答して、CM1を宛先としたパケット(以下、パケットW3)を送信する(S11)。パケットW3には、コマンド種別情報としてライトを表す情報が含まれ、また、ホストからのライトコマンドに従うライト対象のデータが含まれる。SW0は、CHA0からパケットW3を受信し(S12)、パケットW3の宛先がダイレクトパスに繋がっているCM1であるため、アクセスが高速アクセスか否かを判断する(S13)。SW0は、アクセスが高速アクセスと判断した場合(S13:YES)、SWポート#4からダイレクトパスを通じてCM1にパケットW3を転送する(S14)。一方、SW0は、アクセスが低速アクセスと判断した場合(S13:NO)、SWポート#1又は#2からSW接続パスを通じてCM1にパケットW3を転送する(S17、S18)。CM1が、CHA0からのパケットW3に応答して、パケットW3内のデータをCM1に書く(S15、S19)。
次に、CMライト完了報告が行われる。すなわち、CM1が、MP1を宛先としたパケット(以下、パケットW4)を送信する(S16、S20)。パケットW4は、ライト完了の報告としてのパケットであり、例えば、パケットW3と同じ経路を通って、MP1に届く。
次に、CMリードDMA起動処理が行われる。すなわち、MP1は、パケットW4に応答して、DKA0を宛先としたパケット(以下、パケットW5)を生成する(S21)。MP1は、アクセスが高速アクセスの場合は(S22:YES)、パケットW5内のアクセス速度ビットを、高速を表すビットとし、パケットW5をMPポート#1(ダイレクトパスに繋がっているMPポート)を通じて送信する(S23)。一方、MP1は、アクセスが低速アクセスの場合は(S22:NO)、パケットW5内のアクセス速度ビットを、低速を表すビットとし、パケットW5をMPポート#2(SW1に繋がるMPポート)を通じて送信する(S24)。SW0が、パケットW5を受信し、パケットW5を、パケットW5の宛先であるDKA0に送信する(S25、S26)。
次に、CMリード処理が行われる。すなわち、DKA0は、パケットW5に応答して、CM1を宛先とするパケット(以下、パケットW6)を生成して、SW0に送信する(S27)。パケットW6では、パケット種別情報は、リードを表す情報である。SW0は、CHA0からパケットW6を受信し(S28)、パケットW6の宛先がダイレクトパスに繋がっているCM1であるため、アクセスが高速アクセスか否かを判断する(S29)。SW0は、アクセスが高速アクセスと判断した場合(S29:YES)、SWポート#4からダイレクトパスを通じてCM1にパケットW6を転送する(S30)。一方、SW0は、アクセスが低速アクセスと判断した場合(S29:NO)、SWポート#1又は#2からSW接続パスを通じてCM1にパケットW6を転送する(S32、S33)。CM1が、DKA0からのパケットW6に応答して、CM1からデータをリードし(S31、S34)、DKA0を宛先としたパケット(以下、パケットW7)を送信する(S35、S36)。パケットW7には、CM1からリードされたデータが含まれている。
最後に、ライト完了報告処理が行われる。すなわち、DKA0は、パケットW7に応答して、パケットW7内のデータを、HDD112に書き(S37)、MP1を宛先としたパケット(以下、パケットW8)を生成して、SW0に送信する(S38)。SW0は、DKA0からパケットW8を受信し、パケットW8の宛先がダイレクトパスに繋がっているMP1であるため、アクセスが高速アクセスか否かを判断する(S39)。SW0は、アクセスが高速アクセスと判断した場合(S39:YES)、SWポート#3からダイレクトパスを通じてMP1にパケットW8を転送する(S40)。一方、SW0は、アクセスが低速アクセスと判断した場合(S39:NO)、SWポート#1又は#2からSW接続パスを通じてMP1にパケットW8を転送する(S41、S42)。MP1が、パケットW8を受信する(S43)。
以上が、CHA0がホストからライトコマンドを受領した場合に実行される処理のフローである。なお、このフローにおいて、CMライト処理の後、HDD112へのライト動作を早くする必要がない場合は、DKA0は、SW接続パスを通じてCM1からデータをリードすることができる。具体的には、例えば、パケットのシーケンス番号1〜kのうち、シーケンス番号1からm(1<m<k)のパケットについては、高速アクセスを有効にしておき(つまりダイレクトパスを使用してCM1からデータをリードすることがあり)、シーケンス番号(m+1)からkのパケットについては、高速アクセスを無効にしておく。これにより、ダイレクトパスを専有しないでHDD112にアクセスすることができる。
図12は、CHA0がホストからリードコマンドを受領した場合に実行される処理のフローを示す。
CHA0は、リードコマンドを受領すると、リード受信報告処理が行われる。すなわち、CHA0は、そのリードコマンドを基に、MP1を宛先としたパケット(以下、パケットR1)を生成して、SW0に送信する(S101)。そのパケットでは、パケット種別情報は、リードを表す情報である。SW0は、CHA0からパケットR1を受信し(S102)、アクセスが高速アクセスか否かを判断する(S103)。SW0は、アクセスが高速アクセスと判断した場合(S103:YES)、SWポート#3からダイレクトパスを通じてMP1にパケットを送信する(S104)。一方、SW0は、アクセスが低速アクセスと判断した場合(S103:NO)、SWポート#1又は#2からSW接続パスを通じてMP1にパケットを送信する(S106、S107)。ホストからのリードコマンドに従うリード対象のデータがCM1に存在すれば、リード起動処理、CMライト処理及びCMライト完了報告がスキップされ、S122が行われる。
次に、リード起動処理が行われる。すなわち、MP1が、CHA0からのパケットR1に応答して、SW0を通じて、DKA0を宛先としたパケット(以下、パケットR2)を送信する(S105、S108、S109、S110)。DKA0が、パケットR2に応答して、HDD112から、リード対象のデータを読み出す。
次に、CMライト処理が行われる。すなわち、DKA0が、CM1を宛先としたパケット(以下、パケットR3)を送信する(S112)。パケットR3には、コマンド種別情報としてライトを表す情報が含まれ、また、HDD112から読み出されたリード対象のデータが含まれる。SW0は、DKA0からパケットR3を受信し(S112)、アクセスが高速アクセスか否かを判断する(S113)。SW0は、アクセスが高速アクセスと判断した場合(S113:YES)、SWポート#4からダイレクトパスを通じてCM1にパケットR3を転送する(S114)。一方、SW0は、アクセスが低速アクセスと判断した場合(S113:NO)、SWポート#1又は#2からSW接続パスを通じてCM1にパケットW3を転送する(S117、S118)。CM1が、DKA0からのパケットR3に応答して、パケットR3内のデータをCM1に書く(S115、S119)。
次に、CMライト完了報告が行われる。すなわち、CM1が、MP1を宛先としたパケット(以下、パケットR4)を送信する(S116、S120)。
次に、CMリードDMA起動処理が行われる。すなわち、MP1は、パケットR4に応答して、CHA0を宛先としたパケット(以下、パケットR5)を生成する(S121)。MP1は、アクセスが高速アクセスの場合は(S122:YES)、パケットR5内のアクセス速度ビットを、高速を表すビットとし、パケットR5をMPポート#1を通じて送信する(S123)。一方、MP1は、アクセスが低速アクセスの場合は(S122:NO)、パケットR5内のアクセス速度ビットを、低速を表すビットとし、パケットR5をMPポート#2を通じて送信する(S124)。SW0が、パケットR5を受信し、パケットR5を、パケットR5の宛先であるCHA0に送信する(S125、S126)。
次に、CMリード処理が行われる。すなわち、CHA0は、パケットR5に応答して、CM1を宛先とするパケット(以下、パケットR6)を生成して、SW0に送信する(S127)。パケットR6には、コマンド種別情報として、リードを表す情報が含まれる。SW0は、DKA0からパケットR6を受信し(S128)、アクセスが高速アクセスか否かを判断する(S129)。SW0は、アクセスが高速アクセスと判断した場合(S129:YES)、SWポート#4からダイレクトパスを通じてCM1にパケットR6を転送する(S130)。一方、SW0は、アクセスが低速アクセスと判断した場合(S129:NO)、SWポート#1又は#2からSW接続パスを通じてCM1にパケットR6を転送する(S132、S133)。CM1が、CHA0からのパケットR6に応答して、CM1からデータをリードし(S131、S134)、CHA0を宛先としたパケット(以下、パケットR7)を送信する(S135、S136)。パケットR7には、CM1からリードされたデータが含まれている。
最後に、リード完了報告処理が行われる。すなわち、CHA0は、パケットR7に応答して、パケットR7内のデータをホストに送信し(S137)、MP1を宛先としたパケット(以下、パケットR8)を生成して、SW0に送信する(S138)。SW0は、CHA0からパケットR8を受信し、アクセスが高速アクセスか否かを判断する(S139)。SW0は、アクセスが高速アクセスと判断した場合(S139:YES)、SWポート#3からダイレクトパスを通じてMP1にパケットR8を転送する(S140)。一方、SW0は、アクセスが低速アクセスと判断した場合(S139:NO)、SWポート#1又は#2からSW接続パスを通じてMP1にパケットR8を転送する(S141、S142)。MP1が、パケットR8を受信する(S143)。
以上が、CHA0がホストからリードコマンドを受領した場合に実行される処理のフローである。
図11及び図12を参照して説明した処理フローにおいて、アクセスが高速アクセスであることが必要なケースとしては、下記3つのケースA〜C、
(ケースA)高速処理が必要なデータをリード又はライトするケース;
(ケースB)いずれかのモジュールが正常に動作していないケース;
(ケースC)モジュールの稼働状況から高速アクセスが好ましいと判断されたケース;
のうちの少なくとも一つがある。
ケースAでは、ホスト100が、CHA0に、高速アクセスか低速アクセスかを設定する。その設定は、ホスト100がI/Oコマンド(ライトコマンド或いはリードコマンド)を送信する度にホスト100により行われる。具体的には、例えば、ホスト100からのI/Oコマンドに、アクセス速度を表す情報として、高速又は低速を表す情報が含まれている。CHA0は、高速アクセスが設定されている場合は、送信するパケット内のアクセス速度ビットを“1”(高速)に設定する。
ケースBでは、モジュールが正常に動作していないことがいずれかのPK(例えばMP)で検出された時点(例えば、二重化されているPKのうちの一つに障害が発生したことが検出された時点)から後にパケットが送信される場合、そのパケットの送信元のPK(CHA、DKA、MP、或いはSW)が、そのパケット内のアクセス速度ビットを“1”(高速)に設定する。もし、受信したパケット内にアクセス速度ビット“0”(低速)が設定されていても(CHA0に低速アクセスが設定されていても)、送信対象のパケット内のアクセス速度ビットは“1”に設定されて良い。
ケースCの一例として、低速アクセスが設定されたパケットを頻繁に受信したことによりSW接続パスが高負荷になっているケースが考えられる。このケースでは、受信したパケットに低速アクセスが設定されていても、送信されるパケットには高速アクセスが設定され、そのパケットがダイレクトパスを通じて送信されて良い。
以下、図11及び図12を参照して説明した処理フローにおける下記4つのケース、
(ケース1)CHA0からSW0を通じてのCM1又はMP1へのアクセス;
(ケース2)DKA0からSW0を通じてのCM1又はMP1へのアクセス;
(ケース3)MP0からSW0を通じてのCM1又はMP1(DKA1又はCHA1についても同様)へのアクセス;
(ケース4)CM1からの応答(CMライト完了報告処理);
を詳細に説明する。
<ケース1及びケース2について>。
図13は、ケース1でのアクセスの流れの概要を示す。図14は、ケース2でのアクセスの流れの概要を示す。図15は、ケース1及びケース2での処理のフローを示す。以下、図13〜図15を参照して、ケース1及びケース2について説明する。
S801では、MP0が、CHA0に、高速アクセス又は低速アクセスを設定する。
S801´では、ホスト100が、CHA0に、高速アクセス又は低速アクセスを設定する。
S901では、MP0が、DKA0に、高速アクセス又は低速アクセスを設定する。
S802(S902)では、CHA0(DKA0)が、自分に設定されているアクセス速度情報(高速アクセス又は低速アクセス)に従うアクセス速度ビットを、パケットに設定し、そのパケットを送信する。
S803(S903)では、SW0が、アクセスが高速アクセスか低速アクセスかを判断する。
S804(S904)では、SW0が、送信対象のパケットに高速アクセスが設定されていれば、ダイレクトパスを通じてそのパケットを送信し、一方、送信対象のパケットに低速アクセスが設定されていれば、SW接続パスをそのパケットを通じて送信する。
図16は、図15のS803(S903)の処理の詳細を示す。
S1101では、SW0が、CHA0(又はDKA0)からパケットを受信する。
S1102では、SW0は、SW0が有するルーティングテーブルを参照し、S1101で受信したパケット内のPKADをルーティング先PKADとするSWポートを特定する。
S1102で特定されたSWポートに、ダイレクトパスに接続されているSWポートが無ければ(S1103:NO)、SW0は、S1104で、送信対象のパケットに低速アクセス(アクセス速度ビット“0”)を設定する。
S1102で特定されたSWポートに、ダイレクトパスに接続されているSWポートがあれば(S1103:YES)、SW0は、S1105で、S1101で受信したパケット内のアクセス速度ビットが“1”(高速)か否かを判断する。
S1101で受信したパケット内のアクセス速度ビットが“1”(高速)であれば(S1105:YES)、SW0は、S1106で、送信対象のパケットに高速アクセス(アクセス速度ビット“1”)を設定する。
一方、S1101で受信したパケット内のアクセス速度ビットが“0”(低速)であれば(S1105:NO)、SW0は、S1107で、送信対象のパケットに低速アクセス(アクセス速度ビット“0”)を設定する。
<ケース3について>。
図17は、ケース3でのアクセスの流れの概要を示す。図18は、ケース3での処理のフローを示す。以下、図17及び図18を参照して、ケース3について説明する。
S1201では、MP0が、モジュール1へのアクセスは高速アクセスが必要か否かを判断し、その判断の結果に従うアクセス速度ビットを送信対象のパケットに設定し、そのパケットを送信する。
S1202では、SW0が、MP0から受信したパケット内のアクセス速度ビットを基に、アクセスが高速アクセスか低速アクセスかを判断する。S1202では、図13〜15のS803(S903)と同様の処理が行われる。
S1203では、SW0が、送信対象のパケットに高速アクセスが設定されていれば、ダイレクトパスを通じてそのパケットを送信し、一方、送信対象のパケットに低速アクセスが設定されていれば、SW接続パスを通じてそのパケットを送信する。
図19は、図18のS1201の処理の詳細を示す。
S1401では、MP0が、SW0が保持するルーティングテーブルの情報をSW0から取得する。S1402では、MP0は、ルーティングテーブルの情報を基に、自分が有するどのMPポートがダイレクトパスに接続されているかを判断する。これらS1401及びS1402は、予め行われていても良い。
S1403では、MP0は、パケットの宛先のPKが、ダイレクトパスに接続されているPKか否かを判断する。
S1403の判断の結果が否定的であれば(S1403:NO)、MP0は、S1404で、送信対象のパケットに低速アクセスを設定し、そのパケットを、SW0に接続されているMPポート(ダイレクトパスに非接続のMPポート)から送信する。
S1403の判断の結果が肯定的であれば(S1403:YES)、MP0は、S1405で、送信対象のパケットに高速アクセスを設定すべきか否かを判断する。高速アクセスを設定すべきと判断されるケースとしては、例えば、前述したケースB又はケースCがある。
S1405の判断の結果が肯定的であれば(S1405:YES)、MP0は、S1406で、送信対象のパケットに高速アクセスを設定し、そのパケットを、MP0に繋がっているダイレクトパスを通じて送信する(SW1に繋がっているMPポートから送信する)。
S1405の判断の結果が肯定的であれば(S1405:NO)、MP0は、S1407で、送信対象のパケットに低速アクセスを設定し、そのパケットを、MP0に繋がっているダイレクトパスを通じて送信する(SW0に繋がっているMPポートから送信する)。
<ケース4について>。
図20は、ケース4での応答の流れの概要を示す。図21は、ケース4での処理のフローを示す。
S1501では、CM1が、リードが設定されたパケット(以下、図20及び図21の説明において「リードパケット」と言う)に応答して、CM1から読み出したデータを含んだパケットを送信する。その際、CM1は、送信対象のパケットに、リードパケット内のアクセス速度ビットと同じ値のアクセス速度ビットを設定する。つまり、リードパケットに、アクセス速度ビット”1”が設定されていれば、送信対象のパケットにアクセス速度ビット”1”が設定される。送信対象のパケットは、リードパケットを受信したCMポート(CMが有するポート)と同じCMポートから送信される。
CM1からダイレクトパス経由でパケットが送信された場合、SW0を経由して、リードパケットの送信元のPK0に、そのパケットが送信される。
一方、CM1からSW1へとパケットが送信された場合、以下のS1502及びS1503が行われる。
S1502では、SW1が、CM1から受信したパケット内のアクセス速度ビットを基に、アクセスが高速アクセスか低速アクセスかを判断する。S1502では、図13〜図15のS803(S903)と同様の処理が行われる。
S1503では、SW1が、送信対象のパケットに高速アクセスが設定されていれば、ダイレクトパスを通じてそのパケットを送信し、一方、送信対象のパケットに低速アクセスが設定されていればSW接続パスを通じてそのパケットを送信する。
以上が、第一実施形態の説明である。なお、第一実施形態の変形例として、図22に示すように、モジュール1には、SW1がなくても良い。この場合、SW0からCM1及びMP1へのアクセスは、必ずダイレクトパスを通じて行われる。
本発明の第二の実施形態を説明する。その際、第一の実施形態との相違点を主に説明し、第一の実施形態との共通点については説明を省略或いは簡略する。
図23は、本発明の第二の実施形態に係るストレージシステムの構成例を示す。
各モジュール901に、パススイッチが設けられる。パススイッチは、ダイレクトパス経由のアクセスとするか、SW接続パス経由のアクセスとするかを切り替えるための装置である。
図23の例によれば、モジュール0が、パススイッチ2001A及び2001Bを備え、モジュール1が、パススイッチ2001C及び2001Dを備える。パススイッチ2001Aと、パススイッチ2001Aに繋がるパススイッチ2001Cとで第一のスイッチセットが構成され、パススイッチ2001Bと、パススイッチ2001Bに繋がるパススイッチ2001Dとで第二のスイッチセットが構成される。第一のスイッチセット(第二のスイッチセット)がオン状態であると(具体的には、第一のスイッチセット(第二のスイッチセット)を構成する全てのパススイッチ2001A及び2001C(2001B及び2001D)がオン状態であると)、SW0は、SW0のSWポート#1(#2)からダイレクトパスを通じてMP1(CM1)にパケットを送信することができる。一方、第一のスイッチセット(第二のスイッチセット)がオフ状態であると(具体的には、第一のスイッチセット(第二のスイッチセット)を構成する全てのパススイッチ2001A及び2001C(2001B及び2001D)がオフ状態であると)、SW0は、SW0のSWポート#1(#2)からSW接続パスを通じてMP1(CM1)にパケットを送信することができる。
パススイッチのオン状態/オフ状態は、人間(例えば管理者)によって手動で切り替えられても良いし、いずれかのPK(例えばMP或いはSW)からの信号に応じて自動で切り替えられても良い。以下、MP0及び1がパス切替えを行うこととする。
パススイッチのオン状態/オフ状態の切り替えは、種々のタイミングで行うことが可能であるが、本実施形態では、特に、下記(A)及び(B)のいずれかのタイミング、
(A)モジュールが増設又は減設された、
(B)ストレージシステムの稼働状況が特定の状況に変化した(例えば、ダイレクトパスの負荷が高くなった)、
で行われる。
MP0又はMP1は、上記(A)又は(B)が検出されたときに、図24に示すパス切替え処理を行う。このとき、切替え対象のスイッチセットが既にオン状態であれば、パス切替え処理によってオフ状態に切り替えられ、逆に、既にオフ状態であれば、オン状態に切り替えられる。
MP0を例に採り、図24を参照して、パス切替え処理を説明する。その際、切替え対象のスイッチセットが、第一のスイッチセットであるとする。
S3001で、MP0は、パススイッチ2001Aに繋がっているSWポート#1を閉塞する。SWポート#1の閉塞が行われることにより、例えば、MP0が管理するポート管理テーブル(図25参照)において、SWポート#1に対応した状態情報が、”閉塞”に更新される。ポート管理テーブルは、SWポート毎にポート番号及び状態情報を有し、例えば、CM0、又は、MP1が保持するメモリに記憶される。
S3002で、MP0は、パススイッチ2001Aのオン/オフ状態を切り替える。
S3003で、MP0は、SWポート#1を開放する。SWポート#1の開放が行われることにより、例えば、前述のポート管理テーブル(図25参照)において、SWポート#1に対応した状態情報が、”開放”に更新される。
S3004で、MP0が、SW0にルーティングテーブルを更新させる。
以上の一連の処理が終了すると、SW0が切替え後のパスを介してパケットを送信することができる。
以上の構成により、一つのSWポート、MPポート及びCMポートを、ダイレクトパスとSW接続パスのどちらを経由するアクセスにも利用することができる。このため、SWポート、MPポート及びCMポートの数を削減することが期待できる、及び/又は、I/Oコマンドのより高速な処理が期待できる。例えば、CM1或いはMP1へのアクセスの頻度が少ない場合には、SWポート#1及び#2の少なくとも一方をSW接続パスに繋がるようなパス切替え処理が行われることで、SW接続パスが増えるため、SW0を経由するDKA1及び/又はCHA1へのアクセスをより高速に行うことが期待できる。
以下、パス切替え処理が行われる流れの一例を説明する。
まず、ストレージシステムがモジュール0のみで構成されているとする。このときに、モジュール1が増設されたとする。
このとき、図26に示すように、MP0(及びMP1)が、モジュール1の増設を検出し(S2601:YES)、ダイレクトパスを増やすためのパス切替え処理を行う(S2604)。
その後、MP0は、第一種の稼働状況に稼働状況が変化したことを検出した場合(S2602:YES、S2603:NO)、SW接続パスを増やすためのパス切替え処理を行う(S2605)。第一種の稼働状況としては、例えば、モジュール0からMP1及びCM1へのアクセス頻度が第一の閾値未満になった状況が考えられる。
また、その後、MPは、第二種の稼働状況に稼働状況が変化したことを検出した場合(S2602:YES、S2603:NO)、ダイレクトパスを増やすためのパス切替え処理を行う(S2604)。第二種の稼働状況としては、例えば、モジュール0からMP1及びCM1へのアクセス頻度が第二の閾値以上(第二の閾値≧第一の閾値)になった状況が考えられる。
以下、上記の流れにおける各ケースについて詳細に説明する。
<モジュール1の増設前>。
モジュール1の増設前は、SW0のSWポート#1〜#4にはいずれのPKが接続されていない。このため、図27に示すように、SWポート#1〜#4の状態は、×印で示すように、閉塞になっている。SW0のルーティングテーブル(以下、ルーティングテーブル0)は、図28に示すようになっている。すなわち、ルーティングテーブル0には、SWポート#1〜#4について、接続先PKAD及びルーティング先PKADが記録されていない。
同様に、増設前のモジュール1について、SW1のSWポート#1〜#6の状態、CM1のCMポートの状態、及びMP1のMPポートの状態が、閉塞になっている。SW1のルーティングテーブル(以下、ルーティングテーブル1)は、図29に示すようになっている。すなわち、ルーティングテーブル1には、SWポート#1〜#6について、接続先PKAD及びルーティング先PKADが記録されていない。
<モジュール1の増設>。
図27に示すように、モジュール1が増設された場合、MP0が、パススイッチ2001A及び2001Bをオン状態に切り替え、MP1が、パススイッチ2001C及び2001Dをオン状態に切り替える。その後、MP0が、SW0のSWポート#1〜#4の状態を、閉塞から開放に切り替え、同様に、MP1が、SW1のSWポート#1〜#6の状態を、閉塞から開放に切り替える。
その後、SW0が、ルーティングテーブル0を、図30に示すルーティングテーブル0に更新する。すなわち、SW0が、SWポート#1〜#4を通じて、SWポート#1〜#4に接続されているPKから、モジュールID、スロットID及びPKIDを取得し、PKADを生成し、生成されたPKADを、接続先PKAD(更にルーティング先PKAD)としてルーティングテーブル0に登録する。その際、SW0は、接続先PKADとルーティング先PKADが同じSWポート#1及び#2について、ダイレクトパスフラグ“1”(図30において○印)を設定する。また、接続先がSW1であれば、SW0は、SW1に接続されているPK1のモジュールID、スロットID及びPKIDを受けるので、SW0は、それらのモジュールID、スロットID及びPKIDを基に生成したPKADを、ルーティング先PKADとして、ルーティングテーブル0に登録する。
SW1は、同様に、ルーティングテーブル1を、図31に示すルーティングテーブル1に更新する。
ルーティングテーブル0及び1が更新された後、SW0からダイレクトパスを通じたCM1或いはMP1へのアクセスと、SW0からSW接続パスを通じたCM1或いはMP1へのアクセスのいずれも可能となる。
<第一種の稼働状況の検出時>。
例えばモジュール1の増設後、第一種の稼働状況が検出された場合、図32に示すように、SW接続パスを増やすためのパス切替え処理が行われる。すなわち、ダイレクトパスに代えてSW接続パスが採用される。
具体的には、例えば、MP0が、第一種の稼働状況を検出した場合、ルーティングテーブル0を参照し、ダイレクトパスに繋がっているSWポート#3及び#4を特定する。そして、MP0は、パススイッチ2001A及び2001Bに繋がっているSWポート#1及び#2の状態、及び、特定されたSWポート#3及び#4の状態を、開放から閉塞に切り替える。MP0は、SWポート#1〜#4の状態が閉塞になっている間、ホスト100からI/Oコマンドの受付を保留にしても良いし(例えば所定の応答(例えばビジー)をホスト100に返しても良いし)、ホスト100からI/Oコマンドを受け付けても良い。ホスト100からI/Oコマンドを受信した場合、MP0は、そのI/Oコマンドの処理においてモジュール1へパケットを送信する必要が無ければ、そのI/Oコマンドを処理し、モジュール1へパケットを送信する必要があれば、ホスト100に所定の応答(例えばビジー)を返しても良い。
MP1が、SW1のSWポート#1〜#6の状態を開放から閉塞に切り替える。MP1は、この処理を、例えば、SW0のSWポート#1〜#4の状態が閉塞にされる前にMP0から所定の指令を受けたことに応答して、或いは、SW0のSWポート#1等の特定のSWポートを介してアクセスできなくなったことを検出したことに応答して、行うことができる。
MP0が、パススイッチ2001A及び2001Bの状態を、オン状態からオフ状態に切り替える。同様に、MP1が、パススイッチ2001C及び2001Dの状態を、オン状態からオフ状態に切り替える。
次に、MP0が、SW0のSWポート#1〜#4の状態を閉塞から開放に切り替え、同様に、MP1が、SW1のSWポート#1〜#6の状態を閉塞から開放に切り替える。
次に、SW0が、SW0のSWポート#1〜#4を通じて、SW1から、SW1のモジュールID、スロットID及びPKIDや、SW1に接続されているPKのモジュールID、スロットID及びPKIDを取得し、ルーティングテーブル0を、図33に示すルーティングテーブル0に更新する。すなわち、SWポート#1及び#2について、ダイレクトパスフラグが“1”から“0”に更新される(図33において、図30に示した○印が無くなる)。また、SWポート#1及び#2について、接続先PKAD及びルーティング先PKADが、始めからSW1に接続されていたSWポート#3及び#4についての接続先PKAD及びルーティング先PKADと同じになる。SWポート#1及び#2は、SWポート#3及び#4と同様にSW接続パスに繋がるからである。
同様に、SW1が、SW1のSWポート#1〜#4を通じて、SW0から、SW0のモジュールID、スロットID及びPKIDや、SW0に接続されているPKのモジュールID、スロットID及びPKIDを取得する。また、SW1が、SW1のSWポート#5及び#6を通じて、CM1及びMP1から、CM1及びMP1のモジュールID、スロットID及びPKIDを取得する。そして、SW1は、それらの取得されたモジュールID、スロットID及びPKIDを基に、ルーティングテーブル1を、図34に示すルーティングテーブル1に更新する。
その後、SW0を通じてCM1及びMP1へのアクセスが再開される。
<第二種の稼働状況の検出時>。
例えば、SW接続パスを増やすためのパス切替え処理が行われた後、第二種の稼働状況が検出された場合、図35に示すように、ダイレクトパスを増やすためのパス切替え処理が行われる。すなわち、SW接続パスに代えてダイレクトパスが採用される。
具体的には、例えば、MP0が、第二種の稼働状況を検出した場合、ルーティングテーブル0を参照し、SW接続パスに繋がっているSWポート#3及び#4を特定する。そして、MP0は、パススイッチ2001A及び2001Bに繋がっているSWポート#1及び#2の状態、及び、特定されたSWポート#3及び#4の状態を、開放から閉塞に切り替える。また、MP1が、SW1のSWポート#1〜#6の状態を開放から閉塞に切り替える。
MP0が、パススイッチ2001A及び2001Bの状態を、オフ状態からオン状態に切り替える。同様に、MP1が、パススイッチ2001C及び2001Dの状態を、オフ状態からオン状態に切り替える。
次に、MP0が、SW0のSWポート#1〜#4の状態を閉塞から開放に切り替え、同様に、MP1が、SW1のSWポート#1〜#6の状態を閉塞から開放に切り替える。
次に、SW0が、SW0のSWポート#1及び#2を通じて、CM1及びMP1から、CM1及びMP1のそれぞれのモジュールID、スロットID及びPKIDを取得する。また、SW0は、SW0のSWポート#3及び#4を通じて、SW1から、SW1のモジュールID、スロットID及びPKIDや、SW1に接続されているPKのモジュールID、スロットID及びPKIDを取得する。そして、SW0は、それらの取得されたモジュールID、スロットID及びPKIDを基に、ルーティングテーブル0を、図36に示すルーティングテーブル0に更新する(ここでは、特にPKの増設などが行われていないため、結果として、ルーティングテーブル0の内容が、図30に示したルーティングテーブル0の内容に戻る)。
同様に、SW1が、SW1のSWポート#1〜#4を通じて、SW0から、SW0のモジュールID、スロットID及びPKIDや、SW0に接続されているPKのモジュールID、スロットID及びPKIDを取得する。また、SW1が、SW1のSWポート#5及び#6を通じて、CM1及びMP1から、CM1及びMP1のモジュールID、スロットID及びPKIDを取得する。そして、SW1は、ルーティングテーブル1を、図37に示すルーティングテーブル1に更新する(ここでは、特にPKの増設などが行われていないため、結果として、ルーティングテーブル1の内容が、図31に示したルーティングテーブル1の内容に戻る)。
その後、SW0を通じてCM1及びMP1へのアクセスが再開される。
以上が、第二の実施形態の説明である。なお、上述の説明によれば、第一スイッチセット(パススイッチ2001A及び2001Cのセット)の状態と第二スイッチセット(パススイッチ2001B及び2001Dのセット)の状態が共に切り替えられるが、第一スイッチセットの状態及び第二スイッチセットの状態の一方が切り替えられ他方は切り替えられないままであっても良い。
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、HDD112は、モジュール毎に存在することに代えて、モジュールには非存在であり、複数のモジュールに共通であっても良い。この場合、例えば、DKA0を通じてもDKA1を通じてもHDD112にアクセスが行われても良い。
本発明の第一の実施形態に係るストレージシステムの構成例を示す。 モジュールの外観の一例の概要を示す。 モジュール間接続の第一の例を示す。 モジュール間接続の第二の例を示す。 モジュール間接続の第三の例を示す。 SWのルーティングテーブルの作成処理のフローを示す。 PK種別とPKIDとの関係の一例を示す。 PKADのフォーマットの一例を示す。 パケットのフォーマットの一例を示す。 SW0が有するルーティングテーブルを示す。 CHA0がホストからライトコマンドを受領した場合に実行される処理のフローを示す。 CHA0がホストからリードコマンドを受領した場合に実行される処理のフローを示す。 ケース1でのアクセスの流れの概要を示す。 ケース2でのアクセスの流れの概要を示す。 ケース1及びケース2での処理のフローを示す。 図15のS803(S903)の処理の詳細を示す。 ケース3でのアクセスの流れの概要を示す。 ケース3での処理のフローを示す。 図18のS1201の処理の詳細を示す。 ケース4でのアクセスの流れの概要を示す。 ケース4での処理のフローを示す。 モジュール間接続の変形例を示す。 本発明の第二の実施形態に係るストレージシステムの構成例を示す。 パス切替え処理のフローを示す。 ポート管理テーブルの構成例を示す。 パス切替え処理のフローを示す。 モジュール1の増設時のパス切替えの概要を示す。 モジュール1の増設前のルーティングテーブル0を示す。 モジュール1の増設前のルーティングテーブル1を示す。 モジュール1の増設後のルーティングテーブル0を示す。 モジュール1の増設後のルーティングテーブル1を示す。 第一種の稼働状況の検出時のパス切替えの概要を示す。 第一種の稼働状況の検出後のルーティングテーブル0を示す。 第一種の稼働状況の検出後のルーティングテーブル1を示す。 第二種の稼働状況の検出時のパス切替えの概要を示す。 第二種の稼働状況の検出後のルーティングテーブル0を示す。 第二種の稼働状況の検出後のルーティングテーブル1を示す。
符号の説明
101…ストレージモジュール

Claims (17)

  1. 第一及び第二のストレージモジュールを含んだ複数のストレージモジュールを有するストレージシステムであって、
    前記第一のストレージモジュールが、
    複数のポートを有した第一のスイッチ回路と、
    前記第一のスイッチ回路が有する前記複数のポートのいずれかのポートに接続されている第一回路と
    を備え、
    前記第二のストレージモジュールが、第二回路を備え、
    前記第一のスイッチ回路が有する前記複数のポートのいずれかのポートに、前記第一のスイッチ回路と前記第二の回路とを結ぶためのパスであるダイレクトパスが繋がっており、
    前記第一の回路が、前記第二の回路宛のパケットを発行し、
    前記第一のスイッチ回路が、前記第一の回路から前記第二回路宛のパケットを受信し、そのパケットを、前記第二の回路への前記ダイレクトパスに繋がっているポートから出力する、
    ストレージシステム。
  2. 前記第一のストレージモジュールが、前記第一の回路として、
    ライトコマンド又はリードコマンドであるI/O(Input/Output)コマンドを外部装置から受け付ける回路である第一の外部I/F回路と、
    物理記憶装置と通信するためのインタフェース回路である第一のストレージI/F回路と、
    前記外部装置からのライトコマンドに従って前記物理記憶装置に書き込まれるライト対象データ、及び、前記外部装置からのリードコマンドに従って前記物理記憶装置から読み出され前記外部装置に送信されるリード対象データが書き込まれる回路である第一のキャッシュメモリ回路と、
    前記外部I/F回路で受けたI/Oコマンドを処理する回路である第一のプロセッサ回路と
    を備え、
    前記第二のストレージモジュールが、複数のポートを備えた第二のスイッチ回路を有し、前記第二の回路として、
    ライトコマンド又はリードコマンドであるI/Oコマンドを外部装置から受け付ける回路である第二の外部I/F回路と、
    物理記憶装置と通信するためのインタフェース回路である第二のストレージI/F回路と、
    前記物理記憶装置に書き込まれるライト対象データ、及び、前記物理記憶装置から読み出されたリード対象データが書き込まれる回路である第二のキャッシュメモリ回路と、
    前記外部装置からのI/Oコマンドを処理する回路である第二のプロセッサ回路と
    のうちの少なくとも前記第二のキャッシュメモリ回路及び前記第二のプロセッサを有しており、
    前記第一のスイッチ回路が有する複数のポートには、
    前記第一の外部I/F回路が接続されているポート(11)と、
    前記第一のストレージI/F回路が接続されているポート(12)と、
    前記第一のキャッシュメモリ回路が接続されているポート(13)と、
    前記第一のプロセッサ回路が接続されているポート(14)と
    の他に、
    前記第一のスイッチ回路と前記第二のキャッシュメモリ回路とを結ぶためのダイレクトパスに繋がっているポート(15)と、
    前記第一のスイッチ回路と前記第二のプロセッサ回路とを結ぶためのダイレクトパスに繋がっているポート(16)と、
    前記第一のスイッチ回路と前記第二のスイッチ回路とを結ぶためのスイッチ接続パスに繋がっているポート(17)と
    があり、
    前記第二のスイッチ回路が有する複数のポートには、
    前記第二の外部I/F回路が接続されているポート(21)と、
    前記第二のストレージI/F回路が接続されているポート(22)と、
    前記第二のキャッシュメモリ回路が接続されているポート(23)と、
    前記第二のプロセッサ回路が接続されているポート(24)と
    前記第二のスイッチ回路と前記第一のスイッチ回路とを結ぶためのスイッチ接続パスに繋がっているポート(25)と
    があり、
    前記第一のスイッチ回路が、
    (2−1)前記第一の外部I/F回路、前記第一のストレージI/F回路、前記第一のキャッシュメモリ回路及び前記第一のプロセッサ回路のいずれかから発行されたパケットを前記ポート(11)乃至(14)のいずれかを介して受信し、
    (2−2)受信したパケットの宛先が、前記第二のキャッシュメモリ回路又は前記第二のプロセッサ回路である場合には、ダイレクトパスとスイッチ接続パスのどちらのパスに接続されているポートから送信対象のパケットを送信するかを判別し、
    (2−3)判別したポートから、送信対象のパケットを送信し、
    前記ポート(15)又は(16)から送信されたパケットは、前記第二のスイッチ回路を経由せずに、ダイレクトパスを介して前記第二のキャッシュメモリ回路又は前記第二のプロセッサ回路に届き、
    前記ポート(17)から送信されたパケットは、スイッチ接続パス及び前記第二のスイッチ回路を経由して、前記第二のキャッシュメモリ回路又は前記第二のプロセッサ回路に届く、
    請求項1記載のストレージシステム。
  3. 前記第一のスイッチ回路が、
    前記(2−1)で、アクセス速度情報を含んだパケットを受信し、
    前記(2−2)で、前記受信したパケット内のアクセス速度情報が高速を表していれば、送信対象のパケットを前記ポート(15)又は(16)から転送すると判別し、一方、前記受信したパケット内のアクセス速度情報が低速を表していれば、送信対象のパケットを前記ポート(17)から転送すると判別する、
    請求項2記載のストレージシステム。
  4. 前記第一の外部I/Fが、アクセス速度として高速又は低速の設定を、前記外部装置から受け付け、設定されているアクセス速度を表すアクセス速度情報を含んだパケットを送信する、
    請求項3記載のストレージシステム。
  5. 前記第一の外部I/F回路、前記第一のストレージI/F回路、前記第一のスイッチ回路及び前記第一のプロセッサ回路のうちの少なくとも一つが、ストレージシステム内の稼働状況に応じて、送信するパケット内に、高速と低速のどちらかを表すアクセス速度情報を含める、
    請求項3記載のストレージシステム。
  6. 前記稼動状況が、ストレージシステム内に障害が発生している状況であれば、送信するパケット内に含まれるアクセス速度情報は、高速を表すアクセス速度情報である、
    請求項3記載のストレージシステム。
  7. 前記第一のプロセッサ回路が、前記第二又は第一のキャッシュメモリ回路にライト対象のデータが書かれたことの報告としてのパケットである報告パケットを前記第二又は第一のキャッシュメモリ回路から受信し、
    前記報告パケット内のアクセス速度情報が高速を表す情報であっても、リードパケット内のアクセス速度情報、及び、取得パケット内のアクセス速度情報のうちの少なくとも一方が、低速を表す情報とされ、
    前記リードパケットは、前記第一又は第二のプロセッサ回路が前記第一又は第二のストレージI/F回路を宛先として送信するパケットであって、前記第一又は第二のストレージI/F回路に前記第二又は第一のキャッシュメモリ回路からライト対象データを取得させるためのパケットであり、
    前記取得パケットは、前記リードパケットに応答して前記第一又は第二のストレージI/F回路から前記第二又は第一のキャッシュメモリ回路を宛先として送信されるパケットであって、前記ライト対象データを取得するためのパケットである、
    請求項3記載のストレージシステム。
  8. 前記第一のスイッチ回路から前記第二のキャッシュメモリ回路へのパスとしてダイレクトパスとスイッチ接続パスとを切替えるための第一のスイッチ部と、
    前記第一のスイッチ回路から前記第二のプロセッサ回路へのパスとしてダイレクトパスとスイッチ接続パスとを切替えるための第二のスイッチ部と
    を備え、
    前記第一のスイッチ部は、前記ポート(15)と前記ポート(26)との間に設けられたパススイッチ(1A)と、前記パススイッチ(1A)と前記第二のキャッシュメモリ回路との間に設けられたパススイッチ(1B)とで構成されており、
    前記第一のスイッチ部は、前記ポート(16)と前記ポート(27)との間に設けられたパススイッチ(2A)と、前記パススイッチ(2A)と前記第二のプロセッサ回路との間に設けられたパススイッチ(2B)とで構成されており、
    前記パススイッチ(1A)及び前記パススイッチ(1B)の両方が第一の状態になったときに、前記ポート(15)がダイレクトパスに繋がるポートとなり、前記パススイッチ(1A)及び前記パススイッチ(1B)の両方が第二の状態になったときに、前記ポート(15)がスイッチ接続パスに繋がるポートとなり、
    前記パススイッチ(2A)及び前記パススイッチ(2B)の両方が第一の状態になったときに、前記ポート(16)がダイレクトパスに繋がるポートとなり、前記パススイッチ(2A)及び前記パススイッチ(2B)の両方が第二の状態になったときに、前記ポート(16)がスイッチ接続パスに繋がるポートとなる、
    請求項2記載のストレージシステム。
  9. 前記第二のストレージモジュールが増設されたときに、前記パススイッチ(1A)及び前記パススイッチ(1B)の両方が第一の状態にされ、且つ、前記パススイッチ(2A)及び前記パススイッチ(2B)の両方が第一の状態にされる、
    請求項8記載のストレージシステム。
  10. 前記第一のスイッチ回路は、前記第一のスイッチ回路が有する各ポートを通じて、各回路が有する各種のIDを取得し、取得したIDを基に、各回路のアドレス情報を生成して、ルーティングテーブルを作成し、
    取得されるIDの種類として、ストレージモジュールの識別子であるモジュールIDがあり、
    前記アドレス情報には、モジュールIDが含まれ、
    前記ルーティングテーブルには、前記第一のスイッチ回路が有する各ポートの接続先の回路のアドレス情報である接続先アドレス情報と、前記第一のスイッチ回路が有する各ポートを通じてアクセス可能な全ての回路のアドレス情報であるルーティング先アドレス情報とが登録され、
    前記第一のスイッチ回路は、接続先アドレス情報とルーティング先アドレス情報が同じであって、それらの情報に第二のストレージモジュールを表すモジュールIDが含まれている場合に、それらの情報に対応するポートが、ダイレクトパスに接続されているポートであることを特定する、
    請求項2記載のストレージシステム。
  11. 前記第二のストレージモジュールが、複数のポートを備えた第二のスイッチ回路を有し、
    前記第一のスイッチ回路が有する複数のポートには、前記第一の回路に接続されているポート(11)と、前記第二の回路への前記ダイレクトパスに繋がっているポート(12)との他に、前記第一のスイッチ回路と前記第二のスイッチ回路とを結ぶためのスイッチ接続パスに繋がっているポート(13)が含まれており、
    前記第二のスイッチ回路が有する複数のポートには、前記第二の回路に接続されているポート(21)と、前記スイッチ接続パスに繋がっているポート(22)とが含まれており、
    前記第一のスイッチ回路が、
    (11−1)前記第二の回路を宛先とするパケットを前記第一の回路から受信し、
    (11−2)前記ダイレクトパスと前記スイッチ接続パスのどちらのパスに接続されているポートから送信対象のパケットを送信するかを判別し、
    (11−3)判別したポートから、送信対象のパケットを送信し、
    前記ポート(12)から送信されたパケットは、前記第二のスイッチ回路を経由せずに、前記ダイレクトパスを介して前記第二の回路に届き、
    前記ポート(13)から送信されたパケットは、前記スイッチ接続パス及び前記第二のスイッチ回路を経由して、前記第二の回路に届く、
    請求項1記載のストレージシステム。
  12. 前記第一のスイッチ回路が、
    前記(11−1)で、アクセス速度情報を含んだパケットを受信し、
    前記(12−2)で、前記受信したパケット内のアクセス速度情報が高速を表していれば、送信対象のパケットを前記ポート(12)から転送すると判別し、一方、前記受信したパケット内のアクセス速度情報が低速を表していれば、送信対象のパケットを前記ポート(13)から転送すると判別する、
    請求項11記載のストレージシステム。
  13. 前記第一の回路が、ストレージシステム内の稼働状況に応じて、送信するパケット内に、高速と低速のどちらかを表すアクセス速度情報を含める、
    請求項12記載のストレージシステム。
  14. 前記稼動状況が、ストレージシステム内に障害が発生している状況であれば、送信するパケット内に含まれるアクセス速度情報は、高速を表すアクセス速度情報である、
    請求項13記載のストレージシステム。
  15. 前記第一のスイッチ回路から前記第二の回路へのパスとしてダイレクトパスとスイッチ接続パスとを切替えるためのスイッチ部を備え、
    前記第二のスイッチ回路が有する複数のポートには、ポート(23)が含まれており、
    前記スイッチ部は、前記ポート(11)と前記ポート(23)との間に設けられたパススイッチ(1A)と、前記パススイッチ(1A)と前記第二の回路との間に設けられたパススイッチ(1B)とで構成されており、
    前記パススイッチ(1A)及び前記パススイッチ(1B)の両方が第一の状態になったときに、前記ポート(11)がダイレクトパスに繋がるポートとなり、前記パススイッチ(1A)及び前記パススイッチ(1B)の両方が第二の状態になったときに、前記ポート(11)がスイッチ接続パスに繋がるポートとなる、
    請求項11乃至14のうちのいずれかに記載のストレージシステム。
  16. 前記第二のストレージモジュールが増設されたときに、前記パススイッチ(1A)及び前記パススイッチ(1B)の両方が第一の状態にされ、且つ、前記パススイッチ(2A)及び前記パススイッチ(2B)の両方が第一の状態にされる、
    請求項11記載のストレージシステム。
  17. 前記第一のスイッチ回路は、前記第一のスイッチ回路が有する各ポートを通じて、各回路が有する各種のIDを取得し、取得したIDを基に、各回路のアドレス情報を生成して、ルーティングテーブルを作成し、
    取得されるIDの種類として、ストレージモジュールの識別子であるモジュールIDがあり、
    前記アドレス情報には、モジュールIDが含まれ、
    前記ルーティングテーブルには、前記第一のスイッチ回路が有する各ポートの接続先の回路のアドレス情報である接続先アドレス情報と、前記第一のスイッチ回路が有する各ポートを通じてアクセス可能な全ての回路のアドレス情報であるルーティング先アドレス情報とが登録され、
    前記第一のスイッチ回路は、接続先アドレス情報とルーティング先アドレス情報が同じであって、それらの情報に第二のストレージモジュールを表すモジュールIDが含まれている場合に、それらの情報に対応するポートが、ダイレクトパスに接続されているポートであることを特定する、
    請求項11記載のストレージシステム。
JP2008261074A 2008-10-07 2008-10-07 複数のストレージモジュールで構成されたストレージシステム Pending JP2010092243A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008261074A JP2010092243A (ja) 2008-10-07 2008-10-07 複数のストレージモジュールで構成されたストレージシステム
US12/314,770 US8010732B2 (en) 2008-10-07 2008-12-16 Storage system provided with a plurality of storage modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008261074A JP2010092243A (ja) 2008-10-07 2008-10-07 複数のストレージモジュールで構成されたストレージシステム

Publications (1)

Publication Number Publication Date
JP2010092243A true JP2010092243A (ja) 2010-04-22

Family

ID=42076697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008261074A Pending JP2010092243A (ja) 2008-10-07 2008-10-07 複数のストレージモジュールで構成されたストレージシステム

Country Status (2)

Country Link
US (1) US8010732B2 (ja)
JP (1) JP2010092243A (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301303A (en) * 1990-04-23 1994-04-05 Chipcom Corporation Communication system concentrator configurable to different access methods
US5559883A (en) * 1993-08-19 1996-09-24 Chipcom Corporation Method and apparatus for secure data packet bus communication
US6370605B1 (en) * 1999-03-04 2002-04-09 Sun Microsystems, Inc. Switch based scalable performance storage architecture
US7450578B2 (en) * 2001-06-01 2008-11-11 Fujitsu Limited Method of addressing and routing data
JP2005123362A (ja) * 2003-10-16 2005-05-12 Hitachi Ltd 接続用取付基板及びディスクアレイ制御装置の接続用取付基板
JP4441286B2 (ja) 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4688514B2 (ja) * 2005-02-14 2011-05-25 株式会社日立製作所 ストレージ制御装置
JP4793491B2 (ja) * 2007-03-20 2011-10-12 富士通株式会社 パケット中継装置、パケット中継装置における廃棄パケットの転送方法、およびそのプログラム
JP4639223B2 (ja) * 2007-12-27 2011-02-23 株式会社日立製作所 ストレージサブシステム
JP5147586B2 (ja) * 2008-07-30 2013-02-20 株式会社日立製作所 ストレージ装置及びその制御方法

Also Published As

Publication number Publication date
US20100088455A1 (en) 2010-04-08
US8010732B2 (en) 2011-08-30

Similar Documents

Publication Publication Date Title
TWI269172B (en) Method, system and machine-accessible medium having stored thereon instructions for processing a transmission from a first device to a second device, and repeater coupled to a first device and a second device
KR100394423B1 (ko) 통신장치및그처리방법
US9087162B2 (en) Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
CN103828332A (zh) 数据处理方法、装置、存储控制器和机柜
CN106844120B (zh) 一种绑定多路adb设备和usb端口的方法和装置
US20140136648A1 (en) Storage apparatus, network interface apparatus, and storage control method
US20070183316A1 (en) Method and Apparatus for Detection of Port Name in a Loop Network
US6697884B1 (en) Communication protocol for serial peripheral devices
KR101833464B1 (ko) 디스크 장치와 외부 저장 매체 사이의 데이터 전송 방법 및 그 방법을 이용하는 시스템
JP2010092243A (ja) 複数のストレージモジュールで構成されたストレージシステム
US7177959B2 (en) Information signal processing apparatus and method
US20030140099A1 (en) Method and apparatus for hard address conflict resolution for enclosures in a loop network
JPWO2002056547A1 (ja) 切替え中継装置、及び切替え中継システム
TWI388989B (zh) 耦接多個非光纖通道器件至一光纖通道仲裁迴路之橋接器件及方法
JP2007213411A (ja) バスブリッジ装置
JP2007004707A (ja) インタフェース装置、記憶装置、制御方法、及びシステム
JP4901915B2 (ja) 映像処理装置、処理ユニット及びipアドレス管理方法
CN103365811A (zh) 电子装置和主机确定方法
US8307145B2 (en) Method and system for connecting multiple IDE devices to a USB apparatus using a single USB-to-IDE adapter
JP6927811B2 (ja) 設定装置、デバイス、および設定方法
JP3495878B2 (ja) データ処理方法、データ処理装置及びプリンタ
EP1182573A2 (en) Data processing apparatus, data processing method and data recording medium on which a data processing program that can be read by a computer is recorded
JP2007034791A (ja) Fc−alシステム及びfc−alシステムのデータ転送方法
JP4546960B2 (ja) 分散された複数の局のネットワークのためのネットワーク加入者局及び該ネットワーク加入者局を操作するための方法
JPH10283136A (ja) データ処理方法、データ処理装置、プリンタ及び記憶媒体