説明

決定論的SASディスカバリ及びコンフィギュレーションの方法

【課題】決定論的なシリアル接続スモールコンピュータシステムインターフェース(SAS)ディスカバリ及び環境設定の方法を提供する。
【解決手段】SASドメインのノードからシリアルマネジメントプロトコル(SMP)ディスカバリ要求をSASドメインの各エキスパンダに送信し(402)、ノードによってSASドメインの各エキスパンダからSMPディスカバリ応答を受信し(404)、受信した各SMPディスカバリ応答に含まれるブロードキャスト(チェンジ)レシーブド(BCR)カウントと、SMPディスカバリ要求の送信前にノードによって記録された格納BCRカウントを比較し(406)、受信したBCRカウントに基づき、格納BCRカウントを更新する(408)。ノードから第2のSMPディスカバリ要求をSASドメインの少なくとも1つのエキスパンダ(但し、全てのエキスパンダではない。)に選択的に送信(414)しても良い。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ格納システムを用いたデータ管理の分野に関するものであり、より詳細には、決定論的シリアル接続型スモールコンピュータシステムインターフェース(SAS)ディスカバリ及びコンフィギュレーションの方法に関する。
【背景技術】
【0002】
SASドメインにおいて現在用いられているSASディスカバリを行う方法は、希望する水準に達する処理を実行できないことがある。
従って、前述の現在用いられている方法の問題点に対処するために、SASドメインにおけるSASディスカバリの方法を提供することは望ましいことである。
【発明の概要】
【0003】
上記に鑑み、本開示の実施形態は、SASドメインにおいてSASディスカバリを実行する方法に関するものであり、該方法においては、SASドメインのノードからSMPディスカバリ要求を、SASドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、ノードが、SASドメインの複数のエキスパンダを構成する各エキスパンダからの、前記SMPディスカバリ要求に応答するSMPディスカバリ応答を受信するステップと、受信した各SMPディスカバリ応答に含まれるBCRカウントと、前記SMPディスカバリ要求の送信前にノードによって記録及び格納される格納BCRカウントを比較するステップと、前記受信したBCRカウントに基づき、格納BCRカウントを更新するステップと、前記比較に基づき、ノードのSASディスカバリアルゴリズムを最適化するステップと、前記比較に基づき、複数のエキスパンダに含まれる第1のエキスパンダをバイパスするステップと、前記比較に基づき、ノードから第2のSMPディスカバリ要求を、複数のエキスパンダに含まれる第2のエキスパンダに送信するステップとを含んでいる。上記した方法において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであり、受信したSMPディスカバリ応答に含まれるBCRカウントは、エキスパンダの各物理層によって受信されたブロードキャスト(チェンジ)プリミティブの数を示し、各エキスパンダは、SASドメインのリモートデバイスからブロードキャスト(チェンジ)プリミティブを受信すると、そのBCRカウントを増加させる。
【0004】
本開示のさらなる実施形態は、SASドメインにおけるSASディスカバリの方法を実行するための、コンピュータ実行可能な命令を備える、一時的記憶媒体ではない、コンピュータ読取可能な記憶媒体に関するものであり、前記方法は、SASドメインのノードからSMPディスカバリ要求を、SASドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、ノードが、SASドメインの複数のエキスパンダを構成する各エキスパンダからの、前記SMPディスカバリ要求に応答するSMPディスカバリ応答を受信するステップと、受信した各SMPディスカバリ応答に含まれるBCRカウントと、前記SMPディスカバリ要求の送信前にノードによって記録及び格納される格納BCRカウントを比較するステップと、前記受信したBCRカウントに基づき、格納BCRカウントを更新するステップと、前記比較に基づき、ノードのSASディスカバリアルゴリズムを最適化するステップと、前記比較に基づき、複数のエキスパンダに含まれる第1のエキスパンダをバイパスするステップと、前記比較に基づき、ノードから第2のSMPディスカバリ要求を、複数のエキスパンダに含まれる第2のエキスパンダに送信するステップと、を含んでいる。該方法において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであり、受信したSMPディスカバリ応答に含まれるBCRカウントは、エキスパンダの各物理層によって受信されたブロードキャスト(チェンジ)プリミティブの数を示し、各エキスパンダは、SASドメインのリモートデバイスからブロードキャスト(チェンジ)プリミティブを受信すると、そのBCRカウントを増加させる。
【0005】
本開示のさらなる実施形態は、SASドメインのノードを開始するSASディスカバリに関するものであり、前記ノードには、インターフェース、メモリ及びマイクロプロセッサが含まれる。前記インターフェースは、ノードをSASドメインの複数のエキスパンダに、コミュニカティブに接続するように構成される。前記メモリは、複数のBCRカウントを格納するように構成される。前記マイクロプロセッサは、メモリ及びインターフェースに接続される。また、前記マイクロプロセッサは、ノードがSASドメインの複数のエキスパンダに含まれる1つのエキスパンダからブロードキャスト(チェンジ)プリミティブを受信した際に、前記ノードがSASドメインの複数のエキスパンダを構成する各エキスパンダに第1のSMPディスカバリ要求を送信するように構成される。前記ノードは、さらに、インターフェースを通じて、複数のSMPディスカバリ応答を受信するように構成される。前記複数のSMPディスカバリ応答は、SASドメインの複数のエキスパンダから送信される。前記SMPディスカバリ応答は、前記第1のSMPディスカバリ要求に応答する。前記ノードは、さらに、受信した各SMPディスカバリ応答に含まれるBCRカウントと、前記第1のSMPディスカバリ要求の送信前にノードによって記録及び格納される格納BCRカウントを比較するように構成される。この場合、前記ノードは、前記受信したBCRカウントに基づき、格納BCRカウントを更新する。また、前記ノードは、受信したBCRカウントと前回記録されたBCRカウントの比較に基づき、ノードのSASディスカバリアルゴリズムを最適化すること、前記比較に基づき、複数のエキスパンダに含まれる第1のエキスパンダをバイパスすること、及び、前記比較に基づき、第2のSMPディスカバリ要求を、複数のエキスパンダに含まれる第2のエキスパンダに送信すること、を実行するように構成される。また、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであり、受信したSMPディスカバリ応答に含まれるBCRカウントは、エキスパンダの各物理層によって受信されたブロードキャスト(チェンジ)プリミティブの数を示し、各エキスパンダは、SASドメインのリモートデバイスからブロードキャスト(チェンジ)プリミティブを受信すると、そのBCRカウントを増加させる。
【0006】
本開示のさらなる実施形態は、SASエキスパンダに関係するものであり、該SASエキスパンダには、インターフェース、メモリ及びマイクロプロセッサが含まれる。前記インターフェースは、SASドメインの複数のSASデバイスにエキスパンダを接続するように構成される。また、前記インターフェースは、複数のSAS物理層を含む。前記メモリは、SASエキスパンダの複数のBCRカウンタを格納するように構成される。複数のBCRカウンタを構成する各BCRカウンタは、複数のSAS物理層に含まれる1つのSAS物理層に対応し、また、その対応するSAS物理層が受信するブロードキャスト(チェンジ)プリミティブの数を示す。前記マイクロプロセッサは、メモリ及びインターフェースに接続される。また、前記マイクロプロセッサは、SASエキスパンダの複数のSAS物理層に含まれる1つのSAS物理層によりブロードキャスト(チェンジ)プリミティブが受信される際に監視を行い、複数のBCRカウンタに、SASエキスパンダの対応する各SAS物理層により受信されるブロードキャスト(チェンジ)プリミティブの数を記録し、その対応する物理層により受信される各ブロードキャスト(チェンジ)プリミティブに関し、前記カウンタを1増やし、インターフェースを通じて、SASドメインの複数のSASデバイスに含まれるSASディスカバリ開始ノードからSMPディスカバリ要求を受信し、インターフェースを通じて、SASエキスパンダがSASディスカバリ開始ノードに、SASエキスパンダの各BCRカウンタのBCRカウントが含まれる、前記SMPディスカバリ要求に応答するSMPディスカバリ応答を送信すること、を実行するように構成される。
【0007】
以上の概要及び以下の詳細な説明は、いずれも例示及び説明を意図したものであり、必ずしも本発明を限定するものではない。本明細書に組み込まれるとともに本明細書の一部を構成する添付の図面は、本発明の実施形態を図示したものであり、概要とあわせて本発明の原理を説明するためのものである。
【図面の簡単な説明】
【0008】
【図1】本発明の実施形態による、SASディスカバリの方法が実施されるSASドメインのブロック図である。
【図2】図1に示すSASドメインのブロック図であり、本発明の実施形態に従って、SASドメインのSASディスカバリ開始ノードから第1のSMPディスカバリ要求が、SASドメインの複数の回路のそれぞれを通って、SASドメインの各エキスパンダに送信される状態を示している。
【図3】図1に示すSASドメインのブロック図であり、SASディスカバリ開始ノードから次の(第2の)SMPディスカバリ要求が、複数の回路のうちの1つの回路のみを通って送信される状態を示している。なお、第2のSMPディスカバリ要求は、SASディスカバリ開始ノードによる、格納BCRカウントと、第1のSMPディスカバリ要求に応答するSMPディスカバリ応答においてノードが受信するBCRカウント(例:BCRカウント情報、BCRカウントデータ)の比較に基づき、選択的に送信される。
【図4】本発明の実施形態による、SASドメイン(例えば、図1に示すSASドメイン)においてSASディスカバリを実行するための方法を示すフローチャートである。
【図5】本発明の実施形態による、SASドメイン(例えば、図1に示すSASドメイン)においてSASディスカバリを実行するように構成されるSASエキスパンダのブロック図である。
【図6】本発明の実施形態による、SASドメイン(例えば、図1に示すSASドメイン)においてSASディスカバリを実行するように構成されるSASディスカバリ開始ノードのブロック図である。
【発明を実施するための形態】
【0009】
次に、添付の図面を参照して、本発明の好適な実施形態を詳細に説明する。
シリアル接続型スモールコンピュータシステムインターフェース(SAS)ディスカバリは、エキスパンダのSAS物理層又はSASリンクの状態が変更されるごとに、エキスパンダにより送信されるブロードキャスト(チェンジ)プリミティブに基づき実行される。こうしたSAS物理層及び/又はSASリンクの状態変更は、エンドデバイス又はエキスパンダの電源が入っているとき、エンドデバイス又はエキスパンダが追加/除去されたとき、及び/又はリンク速度が変更されたときに生じる。SASドメインのエキスパンダに関して、SAS物理層の状態又はSASリンクの状態に変更があった場合、エキスパンダによりブロードキャスト(チェンジ)プリミティブがSASドメイン内の各イニシエータ及びその他の各エキスパンダに送信される。SASドメインのイニシエータ及び/又は自己環境設定エキスパンダがブロードキャスト(チェンジ)プリミティブを受信すると、SASドメイン内に、状態変更があった物理層を配置するために、ディスカバリプロセス(例:SASディスカバリプロセス)が開始される。ディスカバリプロセスの結果に基づき、イニシエータ及び自己環境設定エキスパンダは、適宜そのコンフィギュレーションを調整する。例えば、自己環境設定エキスパンダは、そのルーティングテーブルを更新し、同時に、イニシエータは、オペレーティングシステムカウンタ又はRAIDスタックホストカウンタパートに状態変更を伝える。
【0010】
現状では、イニシエータ又は自己環境設定エキスパンダがブロードキャスト(チェンジ)プリミティブを受信した場合、SASディスカバリは、生じた可能性のある全ての変更(例:状態変更、物理層の変更、リンクの変更)に関して、各イニシエータ及び自己環境設定エキスパンダがSASドメイン内の全てのエキスパンダ(自己環境設定エキスパンダの場合は、その他の全てのエキスパンダ)をチェックすることを要求する。例えば、イニシエータ及び自己環境設定エキスパンダは、シリアルマネジメントプロトコル(SMP)ディスカバリ要求をエキスパンダに送信することによって、SASドメイン内のエキスパンダをチェックする。現在用いられているSASディスカバリの方法(及び現在用いられているSASディスカバリアルゴリズム)では、SASドメインの全ての回路について状態変更をチェックしている。しかし、SASドメインは多数の回路を有しており、変更によって実際に影響を受ける回路は一部であることから、これは非効率である。より大規模のSASドメインでは、前述の現在用いられているSASディスカバリの方法における非効率性及びSASディスカバリの不要なオーバーヘッドが拡大し、システム上の問題や待ち時間の増加の原因になる。本発明の実施形態では、1つ以上のブロードキャスト(チェンジ)プリミティブを受信し、ブロードキャスト(チェンジ)プリミティブの特定の回路及び原点を決定するのに用いることができる、SASドメイン内の全てのエキスパンダの物理層を特定するディスカバリオペレーション中に、(1)SASドメイン内のイニシエータ及びエキスパンダの間、及び/又は(2)SASドメイン内の自己環境設定エキスパンダ及びその他のエキスパンダ(例:ターゲットエキスパンダ)の間で情報(例:SMP要求及び/又はSMP応答)を交換することができるSASディスカバリの方法が開示される。その結果、不要な回路においてディスカバリオペレーションを行うことを回避することができる(例:状態変更による影響を受けない回路に関して、ディスカバリオペレーションを行うことを回避することができる。)。
【0011】
図1を参照すると、本発明の実施形態に基づくSASシステム(例:SASドメイン、SASトポロジ)が示されている。本発明の実施形態では、SASシステム100には、1つ以上のSASディスカバリ開始ノード102が含まれる。例えば、SASディスカバリ開始ノード102は、イニシエータ102又は自己環境設定エキスパンダ102である。本発明のさらなる実施形態では、SASシステム100は、複数のエキスパンダ104を含み、複数のエキスパンダ104は、ノード102に接続される(例:コミュニカティブに接続される)。本発明のさらなる実施形態では、SASシステム100は、複数のターゲットデバイス106(例:SASターゲットデバイス106)を含み、複数のターゲットデバイス106は、複数のエキスパンダ104に接続され(例:コミュニカティブに接続される)、また、複数のエキスパンダ104を通じて、ノード102(例:イニシエータ102)に接続される(例:コミュニカティブに接続される)。
【0012】
本発明のさらなる実施形態では、複数のリンク108(例:図1に示すL1、L2、L3、L4、L5、L6、L7、L8、L9及びL10)を通じて、ノード102、複数のエキスパンダ104及びターゲットデバイス106を通信可能に接続する。例えば、複数のリンク108(例:レーン)は、SASケーブルにより2地点間で直列に接続される。本発明のさらなる実施形態では、複数のターゲットデバイス106を構成する各ターゲットデバイス106、複数のエキスパンダ104を構成する各エキスパンダ104及び各ノード102は、1つ以上の物理層110(例:1つ以上のSAS物理層110)を有する。本発明の実施形態例では、各物理層110は、トランスミッタデバイス及びリシーバデバイスを含み、リンク108による2地点間接続のエンドポイントとしての機能を果たす。例えば、各物理層110は、リンク108に電気的に接続されるように構成され、これは、リンク108の反対側において、もう1つの物理層110と連絡をするためである。本発明のさらなる実施形態では、各リンク108は、それぞれが別の方向にある2対の差動信号を有する。前述のように、各ターゲットデバイス106、各エキスパンダ104及び各ディスカバリ開始ノード102は、1つ以上の物理層110を有する。本発明のさらなる実施形態は、各SASデバイス(例:ターゲットデバイス106、エキスパンダ104及び/又はディスカバリ開始ノード102)は、1つ以上のポートを有し、各ポートは、SASデバイスの物理層110(例:SAS物理層110)を1つ以上有する。
【0013】
本発明の実施形態では、ターゲットデバイス106は、ディスカバリ開始ノード102からのコマンドを受信するように構成されるディスクドライブ等のストレージデバイスである。本発明のさらなる実施形態では、ディスカバリ開始ノード102は、ホストコンピュータ内のSASホストバスアダプタ又はRAIDコントローラのSASインプット/アウトプット(I/O)コントローラである。本発明のさらなる実施形態では、エキスパンダ104(例:SASエキスパンダ104)は、(図1に示すように)複数のターゲットデバイス106を単一のディスカバリ開始ノード102に接続することを簡易化するように構成される。例えば、SASエキスパンダ104は、SAS2地点間接続(例:SASリンク108)を通じてSASイニシエータ102とターゲットデバイス106との間で連絡が行われることを可能にするために、ルーティング等のスイッチ機能を実行するように構成される。本発明のさらなる実施形態では、1つ以上のエキスパンダ104は、自己環境設定エキスパンダ104である。
【0014】
本発明の実施形態例では、各エキスパンダ104は、各エキスパンダ104のSAS物理層110及び/又はSASリンク108に変更(例:状態変更)があった場合に、その変更を検知するように構成される。例えば、これらのSAS物理層の状態変更及び/又はSASリンクの状態変更は、SASドメイン100のエンドデバイス(例:ターゲットデバイス106)又はSASドメイン100のエキスパンダ104の電源が入っているとき、エンドデバイス又はエキスパンダ104がSASドメインに追加又はSASドメインから除去されたとき、及び/又はリンク速度が変更されたときに生じる。本発明の実施形態では、複数のエキスパンダ104に含まれる第1のエキスパンダ104が、そのSAS物理層110又はSASリンク108の1つに前記の状態変更があったことを検知した場合、第1のエキスパンダ104は、複数のエキスパンダ104を構成するその他の各エキスパンダ104及びSASディスカバリ開始ノード102にブロードキャスト(チェンジ)プリミティブを送信するように構成される。イニシエータ102又は自己環境設定エキスパンダ102等のSASディスカバリ開始ノード102がブロードキャスト(チェンジ)プリミティブを受信すると、SASディスカバリ開始ノード102は、SASドメイン100内に、状態変更があったSAS物理層110及び/又はSASリンク108を配置するために、ディスカバリプロセス(例:SASディスカバリプロセス)を開始する。ディスカバリプロセスの結果に基づき、SASディスカバリ開始ノード102(例:イニシエータ102、自己環境設定エキスパンダ102)は、適宜そのコンフィギュレーションを調整するように構成される。例えば、自己環境設定エキスパンダ102は、そのルーティングテーブルを更新し、同時に、イニシエータ102は、オペレーティングシステムカウンタ又はRAIDスタックホストカウンタパートに状態変更を伝える。
【0015】
図4は、本発明の実施形態に基づき、図1に示すSASシステム100(例:SASドメイン100)を通じてSASディスカバリを実行する方法を示したフローチャートである。方法400は、SMPディスカバリ要求をSASドメインのノードから、SASドメイン402の複数のエキスパンダを構成する各エキスパンダに送信するステップが含まれる。前述のように、複数のエキスパンダ104に含まれる第1のエキスパンダ104は、そのSAS物理層110又はSASリンク108の1つ以上における状態変更を検知した後、ブロードキャスト(チェンジ)プリミティブを、複数のエキスパンダ104を構成するその他の各エキスパンダ104及びSASディスカバリ開始ノード102に送信するように構成される。図1〜図3に示す実施形態例では、第1のエキスパンダ104(図1−図3において「エキスパンダ3」と示されている。)は、そのSAS物理層及び/又はSASリンクの1つ以上に状態変更があったことを検知し、ブロードキャスト(チェンジ)プリミティブを、複数のエキスパンダ104を構成するその他の各エキスパンダ104及びSASディスカバリ開始ノード102(図1−図3において「イニシエータ」と示されている。)に送信する。前述のように、SASディスカバリ開始ノード102は、ブロードキャスト(チェンジ)プリミティブを受信した後、状態変更があったSAS物理層110及び/又はSASリンク108を配置するために、SASディスカバリプロセスを開始する。SASディスカバリ開始ノード102は、SASドメイン100の複数のエキスパンダ104を構成する各エキスパンダ104にSMPディスカバリ要求を送信することにより、これを行う。
【0016】
本発明のさらなる実施形態では、方法400はさらに、ノードによりSASドメインの複数のエキスパンダを構成する各エキスパンダからのSMPディスカバリ応答を受信するステップが含まれる。SMPディスカバリ応答は、SMPディスカバリ要求404に応答する。例えば、複数のエキスパンダ104を構成する各エキスパンダ104は、SASディスカバリ開始ノード102からSMPディスカバリ要求を受信した後、そのユニークなSMPディスカバリ応答をSASディスカバリ開始ノード102に送信する。SASディスカバリ開始ノード102は、SMPディスカバリ応答を受信するように構成され、ディスカバリ応答は、SMPディスカバリ要求に応答する。前述のように、複数のエキスパンダ104に含まれる第1のエキスパンダ104は、そのSAS物理層110又はSASリンク108の1つ以上における状態変更を検知した後、ブロードキャスト(チェンジ)プリミティブを、複数のエキスパンダ104を構成するその他の各エキスパンダ104及びSASディスカバリ開始ノード102に送信するように構成される。前述のように、図1〜図3に示す実施形態では、第1のエキスパンダ104(図1〜図3において「エキスパンダ3」と示されている)は、そのSAS物理層及び/又はSASリンクの1つ以上に状態変更があったことを検知し、ブロードキャスト(チェンジ)プリミティブを、複数のエキスパンダ104を構成するその他の各エキスパンダ104及びSASディスカバリ開始ノード102(図1〜図3において「イニシエータ」と示されている)に送信する。複数のエキスパンダ104を構成する各エキスパンダ104は、(a)SASドメインのリモートデバイス/その他のデバイス(例:その他のエキスパンダ104)からブロードキャスト(チェンジ)プリミティブを受信したときに、(b)リモートデバイスから受信したブロードキャスト(チェンジ)プリミティブの数、及び(c)リモートデバイスからブロードキャスト(チェンジ)プリミティブを受信した各エキスパンダ104の物理層110を、トラッキング及び記録する。さらなる実施形態では、各エキスパンダ104は、ブロードキャスト(チェンジ)プリミティブに関する前記の情報を1層毎に記録及びトラッキングする、ブロードキャスト(チェンジ)レシーブド(BCR)カウンタと呼ばれるカウンタ(例:ラッピングカウンタ)を1つ以上備える。例えば、各エキスパンダ104は、ブロードキャスト(チェンジ)プリミティブに関する前記の情報を追跡するために、その各物理層110に別個のカウンタを備える。さらなる実施形態では、各エキスパンダ104は、各エキスパンダ104の物理層110の1層がSASドメイン100のリモートデバイス(例:その他のエキスパンダ104)からブロードキャスト(チェンジ)プリミティブを受信した際に、そのBCRカウンタを増加させるが(例:受信したブロードキャスト(チェンジ)プリミティブ毎に1増加させる)、前記各エキスパンダの物理層110の第2層から転送されたブロードキャスト(チェンジ)プリミティブを、各エキスパンダの物理層110の第1層が受信したときは、そのBCRカウンタを増加させない。図示されている実施形態では、「エキスパンダ3」は、ドメイン100のその他の全てのエキスパンダ104に送信されるブロードキャスト(チェンジ)プリミティブのソース(例:オリジネータ)であり、ブロードキャスト(チェンジ)プリミティブを受信しなかったため、この場合、そのカウンタを増加させない。しかし、ドメイン100のその他の各エキスパンダ104は、そのカウンタを増加させる。本開示のさらなる実施形態では、カウンタは16ビット又は32ビットのカウンタである。
【0017】
前述のように、複数のエキスパンダ104を構成する各エキスパンダ104は、SASディスカバリ開始ノード102からSMPディスカバリ要求を受信した後、そのユニークなSMPディスカバリ応答をSASディスカバリ開始ノード102に送信する。ディスカバリ応答は、SMPディスカバリ要求に応答する。本発明の実施形態では、各エキスパンダ104は、各エキスパンダのユニークなSMPディスカバリ応答の範囲に、そのBCRカウンタ、BCRカウンタの情報及び/又はBCRカウントの情報(例:BCRカウント)を含む。BCRカウントの情報(例:BCRカウント)は、ブロードキャスト(チェンジ)プリミティブを受信したエキスパンダ104の各物理層110、及び/又は、エキスパンダ104の各物理層110が受信したブロードキャスト(チェンジ)プリミティブの数を示す。さらに、前述のように、前記SASディスカバリ開始ノード102は、ドメイン100の各エキスパンダ104のBCRカウントを含むSMPディスカバリ応答を受信するように構成される。本発明のさらなる実施形態では、各SASディスカバリ開始ノード102は、SASドメイン100の各物理層110のBCRカウントを記録、トラッキング及び/又は監視するように構成される。
【0018】
本発明の実施形態では、方法400はさらに、受信した各SMPディスカバリ応答に含まれるBCRカウントと格納BCRカウントを比較するステップが含まれる。格納BCRカウントは、SMPディスカバリ要求406の送信前に、ノードにより記録及び格納されている。例えば、SASディスカバリ開始ノード102がドメイン100の各エキスパンダ104からのSMPディスカバリ応答を受信すると、SASディスカバリノード102は、(SMPディスカバリ応答によって受信された)エキスパンダ104のBCRカウントと前回記録されたエキスパンダ104のBCRカウント(SASディスカバリ開始ノード102により前回記録及び/又は格納されたエキスパンダ104のBCRカウント)を比較する。この比較に基づき、SASディスカバリ開始ノード102は、送信されたブロードキャスト(チェンジ)プリミティブを受信したエキスパンダ104の物理層を即座に確定するように構成される。例えば、図示された実施形態では、「エキスパンダ3」は、ドメイン100のその他の全てのエキスパンダ104に送信されるブロードキャスト(チェンジ)プリミティブのソース(例:オリジネータ)であり、ブロードキャスト(チェンジ)プリミティブを受信しなかったため、SASディスカバリ開始ノード102は、前記比較に基づき、前記ディスカバリ開始ノード102によって記録された「エキスパンダ3」の前回のBCRカウントから、「エキスパンダ3」のBCRカウントに変更がなかったことを判断することができる。従って、ディスカバリ開始ノード102は、送信された最新のブロードキャスト(チェンジ)プリミティブを「エキスパンダ3」が受信していないと判断することができる。このような情報を用いて、ディスカバリ開始ノード102は、最新の状態変更によって影響を受ける物理層110、エキスパンダ104及び/又は回路をより効率的に判断するために、ドメイン内の選択された回路(例:選択されたリンク108に沿った、選択されたエキスパンダ104への回路)を通じて、確定的に(例:選択的に)追加の又は次のSASディスカバリトラフィックを送信又は移動させることができる。これにより、SASディスカバリトラフィックを減少させることができ、SASディスカバリ開始ノード102は、ドメイン100の各エキスパンダ104及び/又は全ての回路(112、114、116)に追加の、又は次のSASディスカバリ要求を送信することなく、ドメイン100の選択されたエキスパンダ104に前記トラフィックを送信する。その結果、現在のSASドメインに関係する待ち時間の問題を緩和及び/又は回避する。図2に示す実施形態は、ドメインの全てのエキスパンダ104に最初のSMPディスカバリ要求が送信されるところ(例:3つの別個の回路に沿って)を示している。前述のように、SASディスカバリ開始ノード102(例:イニシエータ102、自己環境設定エキスパンダ102)は、前記のBCRカウントの比較により得た情報を用いて、状態変更が「エキスパンダ3」に影響を与えたと判断する。その結果、SASディスカバリ開始ノード102は、次のSMPディスカバリ要求を「エキスパンダ3」に送信する(図3に示す)単一の(例:第1の)回路112を通じて、次のSASディスカバリトラフィック(例:次のSMPディスカバリ要求)を集め、制限し、及び/又は選択的に送信する。例えば、次のSASディスカバリトラフィックは、リンクL1、リンクL2及びリンクL3に沿って、「エキスパンダ1」及び「エキスパンダ2」を通じて、「エキスパンダ3」に提供される(例:送信される)。
【0019】
本発明のさらなる実施形態では、方法400はさらに、受信したBCRカウント408に基づき、格納BCRカウントを更新するステップを含んでいる。前述のように、各SASディスカバリ開始ノード102は、SASドメイン100の各物理層110のBCRカウントをトラッキング及び/又は記録するように構成される。SASディスカバリ開始ノード102は、新しく受信されたBCRカウントと、SASドメイン100の物理層110に関して前回記録されたBCRカウントの比較を行った後、こうした新しく受信したBCRカウントとの比較に基づき、その格納BCRカウント(例:格納BCRカウントテーブル)を更新するように構成される。
【0020】
本発明の実施形態では、方法400にはさらに、比較410に基づきノードのSASディスカバリアルゴリズムを最適化するステップが含まれる。さらなる実施形態では、方法400には、前記の比較に基づき、複数のエキスパンダ412に含まれる第1のエキスパンダをバイパスするステップが含まれる。実施形態では、SASディスカバリ開始ノード102は、新しく受信したBCRカウントと前回格納されたBCRカウントを比較した後、ドメイン100の1つ以上のエキスパンダ104を非選択状態にし、又はバイパスするように構成される。前述のように、図示した実施形態では、SASディスカバリ開始ノード102は、前記した比較に基づき、最新の状態変更により「エキスパンダ3」に影響があったが、ドメイン100のその他のエキスパンダ104には影響がないこと、及び、次のSMPディスカバリ要求を、ドメイン100の第2及び第3の回路(114、116)に沿ってではなく、ドメイン100の第1の回路112にのみ沿って、「エキスパンダ3」に送信すること、を判断するように構成される。SASディスカバリ開始ノード102は、次に、SASディスカバリアルゴリズムを適宜最適化する。SASディスカバリ開始ノード102は、次のSMPディスカバリ要求を第2及び第3の回路(114、116)に沿って送信しないことを判断することによって、これらの回路(114、116)に沿って配置されているドメイン100のエキスパンダ104を効率的にバイパスする。
【0021】
本発明のさらなる実施形態では、方法400にはさらに、前記の比較に基づきノードから第2のSMPディスカバリ要求を、複数のエキスパンダ414に含まれる第2のエキスパンダに送信するステップが含まれる。前述のように、SASディスカバリ開始ノード102は、前記比較に基づき、最新の状態変更に関する情報をより多く得るために、複数のエキスパンダ104に含まれる1つ以上の選択されたエキスパンダ104に、次の(例:追加の)SMPディスカバリ要求を送信することを判断するように構成される。例えば、図3に示すように、前記比較に基づき、最新の状態変更により「エキスパンダ3」に影響があったが、ドメイン100のその他のエキスパンダ104には影響がないことが判断された後、次のSMPディスカバリ要求は、ドメイン100の第1の回路112にのみ沿って、「エキスパンダ3」に送信される(SASディスカバリ開始ノード102によって送信される)。
【0022】
図5は、本発明の実施形態に基づいたSASエキスパンダ104を示している。SASエキスパンダ104は、インターフェース125を含む。インターフェース125は、SASドメインの複数のSASデバイスにエキスパンダを接続するように構成される。インターフェース125には、複数のSAS物理層110が含まれている。SASエキスパンダ104はさらに、メモリ118を含む。メモリ118は、SASエキスパンダ104の複数のBCRカウンタ120を格納するように構成される。複数のBCRカウンタ120を構成する各BCRカウンタ120は、複数のSAS物理層110に含まれる1つのSAS物理層110に対応し、その対応するSAS物理層110により受信されたブロードキャスト(チェンジ)プリミティブの数を示すように構成される。SASエキスパンダ104はさらに、マイクロプロセッサ122を含む。マイクロプロセッサ122は、メモリ118及びインターフェース125に接続される。マイクロプロセッサ122は、SASエキスパンダ104の複数のSAS物理層110に含まれる1つのSAS物理層110によりブロードキャスト(チェンジ)プリミティブが受信されたときに監視を行い、さらに、SASエキスパンダ104の対応する各SAS物理層110により受信されたブロードキャスト(チェンジ)プリミティブの数を複数のBCRカウンタ120に記録するように構成される。本発明のさらなる実施形態では、マイクロプロセッサ122は、カウンタ120に対応する物理層110により受信された各ブロードキャスト(チェンジ)プリミティブに関して、カウンタ120を1増加させる。さらなる実施形態では、マイクロプロセッサ122は、インターフェース125を通じて、SASドメイン100のSASディスカバリ開始ノードからのSMPディスカバリ要求を受信するように構成される。さらなる実施形態では、マイクロプロセッサ122は、インターフェース125を通じて、SASエキスパンダ104がSMPディスカバリ応答をSASディスカバリ開始ノード102に送信するように構成される。前記SMPディスカバリ応答は、SMPディスカバリ要求に応答し、また、SASエキスパンダの各BCRカウンタのBCRカウントを含む。
【0023】
図6は、本発明の実施形態に基づき、SASディスカバリ開始ノード102(例:イニシエータ102、自己環境設定エキスパンダ102)を示している。SASディスカバリ開始ノード102は、インターフェース130を含む。インターフェース130は、ノード102をSASドメイン100の複数のエキスパンダ104に、コミュニカティブに接続するように構成される。SASディスカバリ開始ノード102は、さらに、メモリ132を含む。メモリ132は、SASドメイン100の各エキスパンダ104の各物理層110に含まれる複数のBCRカウントを格納するように構成される。SASディスカバリ開始ノード102はさらに、マイクロプロセッサ134を含む。マイクロプロセッサ134は、メモリ132及びインターフェース130に接続される。マイクロプロセッサ134は、ノード102がSASドメイン100の複数のエキスパンダ104に含まれる1つのエキスパンダ104からブロードキャスト(チェンジ)プリミティブを受信した際に、ノード102により、SASドメイン100の複数のエキスパンダ104を構成する各エキスパンダ104に第1のSMPディスカバリ要求が送信されるように構成される。ノード102はさらに、インターフェース130を通じて、複数のSMPディスカバリ応答を受信するように構成される。複数のSMPディスカバリ応答は、SASドメイン100の各エキスパンダ104から送信される。複数のSMPディスカバリ応答は、第1のSMPディスカバリ要求に応答する。ノード102は、さらに、受信した各SMPディスカバリ応答に含まれるBCRカウントと格納BCRカウントを比較するように構成される。格納BCRカウントは、第1のSMPディスカバリ要求の送信前にノード102により記録及び格納される。また、ノード102は、前記受信したBCRカウントに基づき、格納BCRカウントを更新するように構成される。さらなる実施形態では、ノード102は、受信したBCRカウントと前回記録されたBCRカウントの比較に基づき、ノード102のSASディスカバリアルゴリズムを最適化するように構成される。さらに、比較に基づき、ノード102は、複数のエキスパンダ104に含まれる第1のエキスパンダ104をバイパスするように構成される。そして、比較に基づき、ノード102は、第2のSMPディスカバリ要求を、選択的に、複数のエキスパンダ104に含まれる第2のエキスパンダ104に送信するように構成される。
【0024】
ここで開示された方法は、経路予測を可能にし、SASドメインが非常に大きなものになった場合でも、信頼性及び性能が改善されている。これは、SASエンドデバイスが追加及び/又は除去され、エラーが起こった際に、その他のシステムに通知する上で重要である。また、ここで開示された方法は、サービス妨害攻撃におけるその他のシステムのデバイスの不良(例:欠陥)による影響を最小限にすることができる。
【0025】
本発明による前述された実施形態は、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータを用いて、簡便に実現できることは、コンピュータ技術の当業者には明らかであろう。適切なソフトウェアコーディングが、本開示の教示に基づいて熟練のプログラマによって容易に準備されることも、ソフトウェア技術の当業者には明らかであろう。
【0026】
本発明は、ソフトウェアパッケージの形態で簡便に実現可能である。ソフトウェアパッケージは、開示された本発明の機能及びプロセスをコンピュータが実行するようプログラムするために用いられる、記憶されたコンピュータコードを備えたコンピュータ可読ストレージ媒体を採用している、コンピュータプログラム製品である。コンピュータ可読媒体/コンピュータ可読ストレージ媒体は、任意のタイプの従来型フロッピディスク、光ディスク、CD−ROM、磁気ディスク、ハードディスクドライブ、光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気又は光カード、あるいは電子指示を記憶するための任意の別の適宜の媒体であるが、これらに限定するものではない。
【0027】
前述の開示された方法のステップの具体的順序又は階層構造は、代表的なアプローチ例である。前述の方法のステップの具体的順序又は階層構造は、本発明の範囲内において、設計の優先順位に基づき、再構築することができる。特許請求の範囲においては、前述の方法の各種ステップの内容を例示的順序で提示しているが、必ずしも提示された具体的順序又は階層構造に限定するものではない。
【0028】
本発明及びそれに付随する多数の利点は、前述の記載によって理解されるであろう。また、本発明の精神及び範囲を逸脱しない限りは、又はマテリアルアドバンテージの全てを犠牲にすることなしに、これに関する部品の形態、構造、及び配置において、多くの変更が可能である。前述された形式は、本発明の実施形態例にすぎない。このような変更に関しては、以下に記載の特許請求の範囲に包含されるものである。

【特許請求の範囲】
【請求項1】
SASドメイン内でシリアル接続スモールコンピュータシステムインターフェース(SAS)ディスカバリを実行する方法であって、
前記SASドメインのノードからシリアルマネジメントプロトコル(SMP)ディスカバリ要求を前記SASドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、
前記ノードによって前記SMPディスカバリ要求に応答するSMPディスカバリ応答を前記SASドメインの前記複数のエキスパンダを構成する各エキスパンダから受信するステップと、
前記受信した各SMPディスカバリ応答に含まれるブロードキャスト(チェンジ)レシーブド(BCR)カウントと、前記SMPディスカバリ要求の送信前に前記ノードによって記録及び格納される格納BCRカウントを比較するステップと、
前記受信したBCRカウントに基づき、前記格納BCRカウントを更新するステップと
を備えることを特徴とする方法。
【請求項2】
請求項1に記載のSASディスカバリを実行する方法において、該方法はさらに、
前記比較に基づき、前記ノードのSASディスカバリアルゴリズムを最適化するステップ
を備えることを特徴とする方法。
【請求項3】
請求項1に記載のSASディスカバリを実行する方法において、該方法はさらに、
前記比較に基づき、前記複数のエキスパンダに含まれる第1のエキスパンダをバイパスするステップ
を備えることを特徴とする方法。
【請求項4】
請求項3に記載のSASディスカバリを実行する方法において、該方法はさらに、
前記比較に基づき、前記ノードから第2のSMPディスカバリ要求を前記複数のエキスパンダに含まれる第2のエキスパンダに送信するステップ
を備えることを特徴とする方法。
【請求項5】
請求項1に記載のSASディスカバリを実行する方法において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであることを特徴とする方法。
【請求項6】
請求項1に記載のSASディスカバリを実行する方法において、前記受信したSMPディスカバリ応答に含まれるBCRカウントは、前記エキスパンダの各物理層によって受信されるブロードキャスト(チェンジ)プリミティブの数を示していることを特徴とする方法。
【請求項7】
請求項1に記載のSASディスカバリを実行する方法において、各エキスパンダは、前記SASドメインのリモートデバイスからブロードキャスト(チェンジ)プリミティブを受信した際に、そのBCRカウントを増加させるよう構成されていることを特徴とする方法。
【請求項8】
コンピュータ実行可能な命令を有する、コンピュータ可読媒体が実行する、SASドメイン内でのシリアル接続スモールコンピュータシステムインターフェース(SAS)ディスカバリの方法を実行するためのコンピュータ実行可能な命令を記憶したコンピュータ読取読可能な記憶媒体であって、前記方法は、
前記SASドメインのノードからシリアルマネジメントプロトコル(SMP)ディスカバリ要求を前記SASドメインの複数のエキスパンダを構成する各エキスパンダに送信するステップと、
前記ノードによって前記SMPディスカバリ要求に応答するSMPディスカバリ応答を前記SASドメインの前記複数のエキスパンダを構成する各エキスパンダから受信するステップと、
前記受信した各SMPディスカバリ応答に含まれるブロードキャスト(チェンジ)レシーブド(BCR)カウントと、前記SMPディスカバリ要求の送信前に前記ノードによって記録及び格納される格納BCRカウントを比較するステップと、
前記受信したBCRカウントに基づき、前記格納BCRカウントを更新するステップと
を備えている、ことを特徴とするコンピュータ読取可能記憶媒体。
【請求項9】
請求項8に記載のコンピュータ読取可能記憶媒体において、前記方法はさらに、
前記比較に基づき、前記ノードのSASディスカバリアルゴリズムを最適化するステップ
を含んでいることを特徴とするコンピュータ読取可能記憶媒体。
【請求項10】
請求項9に記載のコンピュータ読取可能記憶媒体において、前記方法はさらに、
前記比較に基づき、前記複数のエキスパンダに含まれる第1のエキスパンダをバイパスするステップ
を含んでいることを特徴とするコンピュータ読取可能記憶媒体。
【請求項11】
請求項10に記載のコンピュータ読取可能記憶媒体において、前記方法はさらに、
前記比較に基づき、前記ノードから第2のSMPディスカバリ要求を前記複数のエキスパンダに含まれる第2のエキスパンダに送信するステップ
を含んでいることを特徴とするコンピュータ読取可能記憶媒体。
【請求項12】
請求項8に記載のコンピュータ読取可能記憶媒体において、前記ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであることを特徴とするコンピュータ読取可能記憶媒体。
【請求項13】
請求項8に記載のコンピュータ読取可能記憶媒体において、前記受信したSMPディスカバリ応答に含まれるBCRカウントは、前記エキスパンダの各物理層によって受信されるブロードキャスト(チェンジ)プリミティブの数を示していることを特徴とするコンピュータ読取可能記憶媒体。
【請求項14】
請求項8に記載のコンピュータ読取可能記憶媒体において、各エキスパンダは、前記SASドメインのリモートデバイスからブロードキャスト(チェンジ)プリミティブを受信した際に、そのBCRカウントを増加させるよう構成されていることを特徴とするコンピュータ読取可能記憶媒体。
【請求項15】
SASドメインのシリアル接続スモールコンピュータシステムインターフェース(SAS)ディスカバリ開始ノードであって、
前記ノードを前記SASドメインの複数のエキスパンダに、通信可能に接続するためのインターフェースと、
複数のブロードキャスト(チェンジ)レシーブド(BCR)カウントを格納するよう構成されるメモリと、
前記メモリ及び前記インターフェースに接続されたマイクロプロセッサであって、前記ノードが前記SASドメインの複数のエキスパンダに含まれる1つのエキスパンダからブロードキャスト(チェンジ)プリミティブを受信したときに、前記ノードが前記SASドメインの前記複数のエキスパンダを構成する各エキスパンダに第1のシリアルマネジメントプロトコル(SMP)ディスカバリ要求を送信するように構成されるマイクロプロセッサと
を含み、
前記ノードは、インターフェースを通じて、前記SASドメインの前記複数のエキスパンダから送信される、前記第1のSMPディスカバリ要求に応答する、複数のSMPディスカバリ応答を受信するように構成され、かつ、前記受信した各SMPディスカバリ応答に含まれるBCRカウントと、前記第1のSMPディスカバリ要求の送信前に前記ノードによって記録及び格納される格納BCRカウントを比較するように構成され、そのときに、前記受信したBCRカウントに基づき、前記格納BCRカウントを更新するよう構成されていることを特徴とするSASディスカバリ開始ノード。
【請求項16】
請求項15に記載のSASディスカバリ開始ノードにおいて、該ノードは、前記受信したBCRカウントと前回記録されたBCRカウントの比較に基づき、前記ノードのSASディスカバリアルゴリズムを最適化するように構成されていることを特徴とするSASディスカバリ開始ノード。
【請求項17】
請求項16に記載のSASディスカバリ開始ノードにおいて、該ノードは、前記比較に基づき、前記複数のエキスパンダに含まれる第1のエキスパンダをバイパスするように構成されていることを特徴とするSASディスカバリ開始ノード。
【請求項18】
請求項17に記載のSASディスカバリ開始ノードにおいて、該ノードは、前記比較に基づき、前記複数のエキスパンダに含まれる第2のエキスパンダに第2のSMPディスカバリ要求を送信するように構成されていることを特徴とするSASディスカバリ開始ノード。
【請求項19】
請求項15に記載のSASドメインのSASディスカバリ開始ノードにおいて、該ノードは、イニシエータ又は自己環境設定エキスパンダのいずれかであることを特徴とするSASディスカバリ開始ノード。
【請求項20】
請求項15に記載のSASドメインのSASディスカバリ開始ノードにおいて、前記受信したSMPディスカバリ応答に含まれるBCRカウントは、前記エキスパンダの各物理層によって受信されるブロードキャスト(チェンジ)プリミティブの数を示すことを特徴とするSASディスカバリ開始ノード。
【請求項21】
請求項15に記載のSASドメインのSASディスカバリ開始ノードにおいて、各エキスパンダは、前記SASドメインのリモートデバイスからブロードキャスト(チェンジ)プリミティブを受信した際に、そのBCRカウントを増加させることを特徴とするSASディスカバリ開始ノード。
【請求項22】
シリアル接続小型コンピュータシステムインターフェース(SAS)エキスパンダであって、
複数のSAS物理層を含み、SASドメインの複数のSASデバイスにエキスパンダを接続するように構成されるインターフェースと、
前記SASエキスパンダの複数のブロードキャスト(チェンジ)レシーブド(BCR)カウンタを格納するように構成され、また、前記複数のBCRカウンタを構成する各BCRカウンタは、前記複数のSAS物理層に含まれる1つのSAS物理層に対応し、その対応するSAS物理層が受信するブロードキャスト(チェンジ)プリミティブの数を示す、メモリと、
前記メモリ及び前記インターフェースに接続されたマイクロプロセッサであって、前記SASエキスパンダの前記複数のSAS物理層に含まれる1つのSAS物理層によりブロードキャスト(チェンジ)プリミティブが受信される際に監視を行い、前記複数のBCRカウンタに、前記SASエキスパンダの対応する各SAS物理層により受信されるブロードキャスト(チェンジ)プリミティブの数を記録し、前記各BCRカウンタに対応する物理層により受信される各ブロードキャスト(チェンジ)プリミティブに関し、前記カウンタを1増分し、前記インターフェースを通じて、前記SASドメインの前記複数のSASデバイスに含まれるSASディスカバリ開始ノードからシリアルマネジメントプロトコル(SMP)ディスカバリ要求を受信し、及び、前記インターフェースを通じて、前記SASエキスパンダが前記SASディスカバリ開始ノードに、前記SMPディスカバリ要求に応答する、前記SASエキスパンダの前記各BCRカウンタのBCRカウントが含まれるSMPディスカバリ応答を送信することを実行するように構成されるマイクロプロセッサと
を含んでいることを特徴とするエキスパンダ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−108905(P2012−108905A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2011−243592(P2011−243592)
【出願日】平成23年11月7日(2011.11.7)
【出願人】(591007686)エルエスアイ コーポレーション (93)
【Fターム(参考)】