JP2015115630A - 計算機システム、アドレス管理装置およびエッジノード - Google Patents

計算機システム、アドレス管理装置およびエッジノード Download PDF

Info

Publication number
JP2015115630A
JP2015115630A JP2013253953A JP2013253953A JP2015115630A JP 2015115630 A JP2015115630 A JP 2015115630A JP 2013253953 A JP2013253953 A JP 2013253953A JP 2013253953 A JP2013253953 A JP 2013253953A JP 2015115630 A JP2015115630 A JP 2015115630A
Authority
JP
Japan
Prior art keywords
storage
edge node
node
network address
port
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.)
Granted
Application number
JP2013253953A
Other languages
English (en)
Other versions
JP6250378B2 (ja
Inventor
功人 佐藤
Katsuto Sato
功人 佐藤
淳二 山本
Junji Yamamoto
淳二 山本
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 JP2013253953A priority Critical patent/JP6250378B2/ja
Priority to US14/562,139 priority patent/US9461962B2/en
Publication of JP2015115630A publication Critical patent/JP2015115630A/ja
Application granted granted Critical
Publication of JP6250378B2 publication Critical patent/JP6250378B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/645Fibre channel identifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】エッジノードのフォワーディングの負担を軽減する。【解決手段】ネットワークアドレス管理部(210)は、第1エッジノード(100a)の物理的構成が反映された第1ネットワークアドレス(500)を第1エッジノードに割り当てる。また、ネットワークアドレス管理部は、第2エッジノード(100b)が第1エッジノードに接続された場合、第2のエッジノードについて第1エッジノードの物理的構成が反映された第2ネットワークアドレス(510)を、第1エッジノードに割り当てる。第1エッジノードは、宛先ネットワークアドレスとして第1または第2ネットワークアドレスが指定されたパケットを受信した場合、受信したパケットで指定されている宛先ネットワークアドレスから、受信したパケットを第2エッジノードに転送するか否か、および、第1エッジノード内の転送先経路を判別する。【選択図】図1

Description

本発明は、概して、ノード間のフォワーディングに関する。
一般に、計算機システムは、複数のノードで構成されたネットワークシステムを有し、複数のノードは、複数のエッジノードと、1以上の中間ノードとを含む。「中間ノード」は、ノード間の橋渡しを行うノードであり、一般に、ネットワークスイッチのようなスイッチ装置である。本明細書において、ノード間の橋渡しを「フォワーディング」(またはルーティング)と呼ぶことにする。フォワーディングは、例えば、フォワーディング先のノード(エッジノードまたは別の中間ノード)を検索する処理と、検索処理により見つかったノードにパケット(データまたはコマンド)を転送する処理とを含む。「エッジノード」は、中間ノード以外のノードである。
サーバ装置(以下、サーバ)およびストレージ装置(以下、ストレージ)をそれぞれエッジノードとしたネットワークシステムが知られている。一般に、サーバの演算性能の向上に対し、ストレージの入出力性能(例えばアクセス遅延時間またはバンド幅)の向上の度合は大きくない。そのため、入出力性能がネットワークシステム全体の性能ボトルネックになってきている。特に、ストレージとサーバがネットワークを介して接続されている場合には、ネットワークの速度が入出力性能の上限となり、これが、ボトルネックとなる。
入出力性能を向上させることを目的とし、サーバとストレージを密に結合した閉じたネットワーク(例えばSAN(Storage Area Network)を構成することが考えられる。
しかし、閉じたネットワークは、追加ノードをネットワークに直接参加させることができない。なぜなら、「閉じたネットワーク」とは、いずれの中間ノードにも追加ノードを接続することができないネットワークだからである。「いずれの中間ノードにも追加ノードを接続することができない」ことの例としては、全ての中間ノードの全てのポートが使用されている(いずれの中間ノードも空きポートを有しない)、または、中間ノードが拡張不可能に構成されている(例えば、中間ノードがチップ化されていて予め配線が決められている)を挙げることができる。
そこで、追加ノードを閉じたネットワークに参加させるためには、追加ノードを間接的にネットワークに参加させることになる。具体的には、閉じたネットワークに参加しているエッジノードに追加ノードを接続し(例えば追加ノードがストレージであれば、閉じたネットワークに参加しているストレージに追加のストレージを接続し)、追加ノードが接続されたエッジノードが、フォワーディングをする必要がある。エッジノードが行うフォワーディングの負荷は、可能な限り低いことが望ましい。なぜなら、フォワーディングは、エッジノードが本来行うべき処理ではなく、フォワーディングの負荷が重いと、エッジノードが本来行うべき処理(例えばエッジノードがストレージであれば、本来行うべき処理は入出力処理)の性能が低下してしまうからである。
同様の課題は、大規模なネットワークについてもあり得る。ネットワークに参加するノードが多くなると、フォワーディングのために、ノードの接続位置について大量の情報を管理したりその大量の情報から転送先を特定したりする必要がある。これらの処理の負荷を軽減するために、特許文献1および非特許文献1は、ネットワークの構成を、ノードに関連付けるアドレスに反映することを開示している。
特許第5214007号
"PortLand: AScalable Fault-Tolerant Layer 2 Data Center Network Fabric", Radhika NiranjanMysore et al, SIGCOMM’09, 2009.
特許文献1および非特許文献1のいずれも、フォワーディングを行うのはスイッチ装置(例えばルータ装置)のような中間ノードである。このため、フォワーディングの負荷が重くなっても、エッジノードが直接的に影響を受けることは少ない。追加のノードは、中間ノードに接続すればよい。
しかし、閉じたネットワークでは、追加のノードはいずれかのエッジノードに接続する必要があるため、フォワーディングの負荷が、追加ノードが接続されたエッジノードの性能に影響を与えることになる。フォワーディングの負荷は、受信したパケットが転送すべきパケットであるか否かを判定する処理と、転送が必要な場合には転送先を特定する処理が主である。これらの処理のためには、一般に、宛先として指定されたネットワークアドレスと転送先との対応関係を表した転送管理表(「ルーティングテーブル」と呼ばれることがある)が必要である。転送管理表のために、転送管理表を記憶する領域を確保しなければならず、また、フォワーディングを行うエッジノードは、パケットを受信する度に、転送管理表を参照して処理を決定しなければならない。
転送管理表無しにエッジノードがフォワーディングする。具体的には、ネットワークアドレス管理部が備えられる。ネットワークアドレス管理部は、第1エッジノードの物理的構成が反映された第1ネットワークアドレスを第1エッジノードに割り当てる。また、ネットワークアドレス管理部は、第2エッジノードが第1エッジノードに接続された場合、第2のエッジノードについて第1エッジノードの物理的構成が反映された第2ネットワークアドレスを、第1エッジノードに割り当てる。第1エッジノードは、第3エッジノードから、宛先ネットワークアドレスとして第1または第2ネットワークアドレスが指定されたパケットを受信した場合、受信したパケットで指定されている宛先ネットワークアドレスから、受信したパケットを第2エッジノードに転送するか否か、および、第1エッジノード内の転送先経路を判別できる。
ネットワークアドレス管理部は、例えば、ネットワークシステムにおける中間ノードが有してもよいし、各エッジノードを管理する管理装置が有してもよい。この場合、中間ノードまたは管理装置のような、ネットワークアドレス管理部を有する装置を、アドレス管理装置と呼ぶことができる。
第1エッジノードにおいて、転送管理表のための領域が不要になり、且つ、パケットを受信する度に転送管理表を参照することも不要になるので、第1エッジノードが本来行うべき処理の性能の低下を軽減することができる。
複数の実施例の共通概念を示す。 実施例1に係る計算機システムの構成を示す。 実施例1に係る計算機システムの一変形例の構成を示す。 初期状態を示す。 閉じたSAN内の各サーバ及びストレージに通常ポートIDが割り当てられたシステムを示す。 追加ストレージが接続されたストレージにプロキシポートIDが割り当てられる前のシステムを示す。 追加ストレージが接続されたストレージにプロキシポートIDが割り当てられた後のシステムを示す。 パケットの構成を示す。 サーバから追加ストレージへのパケット(コマンド)の流れを示す。 追加ストレージからサーバへのパケット(レスポンス)の流れを示す。 サーバからストレージへのパケット(コマンド)の流れを示す。 ストレージからサーバへのパケット(レスポンス)の流れを示す。 実施例1に係るシステムの詳細な構成例を示す。 電源投入時からのストレージの動作フローを示す。 ストレージに追加ストレージが接続されたときのストレージの動作フローを示す。 ストレージに追加ストレージが接続されたときの追加ストレージの動作フローを示す。 スイッチの詳細な構成例を示す。 電源投入時からのスイッチの動作フローを示す。 電源投入時からのサーバの動作フローを示す。 実施例2に係る計算機システムの構成を示す。 追加ストレージがストレージに接続される前の状態を示す画面を示す。 追加ストレージがストレージに接続された後の状態を示す画面の第1の例を示す。 追加ストレージがストレージに接続された後の状態を示す画面の第2の例を示す。 追加ストレージがストレージに接続された後の状態を示す画面の第3の例を示す。 実施例3に係る計算機システムの詳細な構成例を示す。 実施例3に係る計算機システムの構成例を示す。
以下、図面を参照して、幾つかの実施例を説明する。
なお、以下の実施例では、閉じたネットワークは、閉じたSANであり、ネットワークアドレスを、「ポートID」と呼ぶことにする。ポートID(後述の通常ポートIDおよびプロキシポートID)は、Fibre ChannelネットワークのポートIDでよい。また、閉じたSANに、エッジノードとしてサーバ装置(以下、サーバ)およびストレージ装置(以下、ストレージ)が混在し、追加ノードはストレージであり、追加ストレージがいずれかのストレージに接続され、追加ストレージが接続されたストレージがフォワーディングを行うこととする。しかし、いずれかのサーバに追加のサーバが接続され、追加サーバが接続されたサーバが、ストレージのフォワーディングと同様の手順でフォワーディングを行ってもよい。
また、以下の説明では、同種の要素に割り振られた参照番号は共通の親番号と異なる子符号とを含む。同種の要素を区別して説明する場合には、参照番号の全てを使用し(例えばサーバ(300a)、サーバ(300b))、同種の要素を区別しないで説明する場合には、参照番号のうちの共通の親番号のみを使用する(例えばサーバ(300))ことがある。
また、以下の説明では、要素(ストレージ、経路等)の識別情報(ID)として番号が使用されるが、番号に代えてまたは加えて他種の情報がIDとして使用されてもよい。また、以下の説明では、閉じたSANを単に「SAN」と言うこともある。
また、以下の説明において、経路番号が表す「経路」は、バスであってもよいし、バスに代えてまたは加えてバス上のデバイスであってもよい。
図1は、複数の実施例の共通概念を示す。
エッジノードとして、サーバ(300a)およびストレージ(100)があり、中継ノードとして、スイッチ装置(以下、スイッチ)(200)がある。閉じたSAN(201a)が、サーバ(300aおよび300b)と、ストレージ(100a)と、それらが接続されたスイッチ(200a)で構成されている。閉じたSAN(201b)が、サーバ(300cおよび300d)と、ストレージ(100a)と、それらが接続されたスイッチ(200b)で構成されている。
また、ポートID割当て部(210)とフォワーディング部(110)がある。ポートID割当て部(210)は、各スイッチ(200a、200b)に設けられてもよいし(210a、210b)、各サーバ(300)および各ストレージ(100)と通信可能に接続された管理装置(410)に設けられてもよい(210c)。フォワーディング部(110)は、少なくとも、追加ストレージ(100b)が接続されるストレージ(100a)に設けられる。ポートID割当て部(210)およびフォワーディング部(110)のうちの少なくとも一方は、プログラムがプロセッサにより実行されることで実現される機能であってもよいし、そのようなプロセッサと専用ハードウェアとの両方により実現されてもよいし、専用ハードウェアのみで実現されてもよい。
ポートIDとして、通常のポートID(500)の他に、プロキシポートID(510)が設けられる。通常のポートID(500)は、閉じたSAN(210)に参加しているエッジノード、例えばストレージ(100a)を宛先としたポートIDであり、プロキシポートID(510)は、追加ノードを宛先としたポートID、例えば追加ストレージ(100b)を宛先としたポートIDである。
ポートID(500、510)のいずれも、少なくとも3つの要素、すなわち、ストレージ番号(501、511)、経路番号(502、512)およびユニーク番号(503、513)を含む。すなわち、ポートID(500、510)は、ストレージ番号(501、511)が設定されるフィールドと、経路番号(502、512)が設定されるフィールドと、ユニーク番号(503、513)が設定されるフィールドとを有する。ストレージ番号(501、511)は、ストレージ(100)の識別番号であり、経路番号(502、512)は、ストレージ(100)内部の経路の識別番号であり、ユニーク番号(503、513)は、スイッチ(200)が接続されている閉じたSAN(201)内でユニークな番号(重複しない番号)である(例えば、ユニーク番号は、ポートIDが生成される都度に更新(例えばインクリメント)される番号である)。ユニーク番号をポートIDが含んでいるので、閉じたSAN(210)において重複したポートIDが存在することがない。なお、追加ノードおよび追加ノードが接続されるエッジノードがそれぞれストレージでなくてもよい場合、ストレージ番号はノード番号でよい。ポートIDは、ノード種別を表す識別番号を含んでもよい。また、ポートID(500)における番号(501)〜(503)の並び順と、プロキシポートID(510)における番号(511)〜(513)の並び順は、同じであっても異なっていてもよい。後者の場合、各ポートID(500、510)は、ポートIDの種別を表す識別番号を含んでもよい。以下の実施例では、ポートID(500)における番号(501)〜(503)の並び順と、プロキシポートID(510)における番号(511)〜(513)の並び順は、同じであり、ストレージ(100a)のストレージ番号が“0”であり、ストレージ(100b)のストレージ番号“1”であり、それらの番号の違いから、フォワーディング部(110)が、受信したパケット(600)(図8参照)をストレージ(100b)に転送するか否かを判別できる。なお、パケット(600)は、宛先領域(601)、発信元領域(602)およびデータ領域(603)を含む。宛先領域(601)には、宛先としてのポートID(500または510)が設定され、発信元領域(602)には、パケット(600)を送信した装置に割り当てられているポートID(500)が設定され、データ領域(603)には、データまたはコマンドが設定される。
ポートID割当て部(210)は、ポートID(500)を以下のように生成する。すなわち、ポートID割当て部(210)は、SAN(201)に接続されているストレージ(100a)のストレージ番号と、そのストレージ(100a)の内部でSAN(201)とつながっている経路の経路番号とを取得する。取得されたストレージ番号および経路番号は、通常のポートID割当て操作によって割り当てられるポートID(500)の中に、ストレージ番号(501)および経路番号(502)として組み込まれる。このほかに、ポートID割当て部(210)は、スイッチ(200)が接続されているSAN(201)内で一意となる番号を生成し、その番号をユニーク番号(503)としてポートID(500)の中に含める。通常のポートID(500)は、サーバ(300a〜300d)にそれぞれ割り当てられ(500a〜500d)、また、ストレージ(100a)に割り当てられる(500eおよび500f)。なお、通常のポートID(500)の割当ては、通常ポートIDの割当て要求に応答して行われてよい。割当て要求は、第1割当て要求の一例である。
ポートID割当て部(210)は、プロキシポートID(510)を以下のように生成する。すなわち、ポートID割当て部(210)は、ストレージ(100a)から、転送先ストレージ番号と転送先ストレージ(100b)が接続されている経路の経路識号とが指定された(関連付けられた)ポートID割当て要求(以下、特殊割当て要求)を受け、特殊割当て要求に応答して、転送先ストレージ番号(511)と転送先ストレージ(100b)が接続されている経路の経路番号(512)とを含んだプロキシポートID(510)を、特殊割当て要求の送信元ストレージ(100a)に割り当てる。なお、特殊割当て要求は、第2割当て要求の一例である。
ストレージ(100a)は、閉じたSAN(201)に接続されていない別のストレージ(100b)にフォワーディングを行う設定を受けたとき、ポート割当て部(210)を含んだ装置、すなわち、ストレージ(100a)が属する全てのSAN(201a、201b)のスイッチ(200a、200b)、または、管理装置(410)に対して、上述の特殊割当て要求を送信する。ポート割当て部(210)は、特殊割当て要求で指定されている転送先ストレージ番号(511)および経路番号(512)と、SAN(210)内で一意となる番号(513)とを含んだプロキシポートID(510)を生成し、そのプロキシポートID(510)を、特殊割当て要求の送信元ストレージ(100a)に割り当てる。
フォワーディング部(110)は、パケット(600)をストレージ(100a)が受信した場合、そのパケット(600)の宛先ポートID(宛先領域(601)におけるポートID)が通常のポートID(500)であるかプロキシポートID(510)であるかを、そのポートID中のストレージ番号から判別する。この判別を容易とするために、通常ポートID(500)のストレージ番号(501)の位置(ポートID(500)の先頭からのオフセット)とプロキシポートID(510)の転送先ストレージ番号(511)の位置(プロキシポートID(510)の先頭からのオフセット)が一致していてもよい。
フォワーディング部(110)は、受信したパケット(600)の宛先ポートIDが通常ポートID(500)であると判断し、且つ、宛先ポートIDが自ストレージ(100a)に割り当てられている通常ポートID(500eまたは500f)と一致した場合、受信したパケット(600)が自ストレージ(100a)に対する要求であると判断する。
フォワーディング部(110)は、受信したパケット(600)の宛先ポートIDが通常ポートID(500)であると判断し、且つ、宛先ポートIDが自ストレージ(100a)に割り当てられているいずれの通常ポートID(500e、500f)とも不一致の場合、そのパケット(600)は別のSAN(201b)内のサーバ(300cまたは300d)宛てに送られたものと判断し、宛先ポートID(通常ポートID(500))から経路番号(502)を取得し、その経路番号(502)に接続されている経路経由でパケット(600)を転送する。
フォワーディング部(110)は、受信したパケット(600)の宛先ポートIDがプロキシポートID(510)であると判断した場合、宛先ポートID(プロキシポートID(510))から経路番号(512)を取得し、その経路番号(512)が表す経路に接続されている装置(つまりストレージ(100b))にパケット(600)を転送する。
以上の処理によれば、ストレージ(100a)は、受信したパケットが有する宛先ポートID中のストレージ番号から、そのパケットを自ストレージ(100a)で処理するのか別ストレージに転送するのかを判別し、その宛先ポートID中の経路番号から転送先を判別することができる。つまり、ストレージ(100a)は転送管理表無しにフォワーディングを行うことができる。このため、フォワーディングの負荷は軽く、故に、ストレージ(100a)の入出力性能の低下を軽減することができる。また、ストレージ(100a)に、転送管理表を記憶するための領域を確保する必要が無い。
なお、閉じたSAN(201a)において、プロキシポートIDがストレージ(100a)に割り当てられた場合、所定の通知(ポートID状態変更の通知)が、閉じたSAN(201a)内の他の全てのエッジノードに送信される。その通知を受けたエッジノード(ここでサーバ(300aおよび300b))が、ポートID一覧をスイッチ(200a)(又は管理装置(410))に要求することで、上記割り当てられたプロキシポートIDを認識することができる。その後、サーバ(300aおよび300b)は、そのプロキシポートIDを宛先ポートIDとしたパケットを送信することができる。
また、ポートIDの構成は、閉じたSAN(201)において一意であり(重複せず)、且つ、ストレージ(100a)の物理的構成が反映された構成となっている。一例として、前述したように、ポートIDは、ストレージ番号及び経路番号と、ユニーク番号とを含んでいる。ユニーク番号が閉じたSAN(201)において一意であるので、ポートIDが閉じたSAN(201)において一意であることが担保される。また、経路番号から、パケット(またはパケット内のコマンド)の転送先経路(デバイス)が一意に特定される。また、ストレージ番号から、パケット内のコマンドを取り出し自ストレージが処理するか、或いは、パケットを他ストレージに転送するかの判断が可能である。
以上が、複数の実施例の共通概念である。以下、各実施例を詳細に説明する。
図2は、実施例1に係る計算機システムの構成を示す。
1台のサーバストレージシステム筐体(400)内の中でストレージ(100a)と2台以上のサーバ(300a〜300d)が1以上の閉じたSAN(201aおよび201b)によって接続されている。筐体(400)外にSAN(201)を引き出すことはできず、筐体(400)内において設計上定められたサーバ台数以上はSAN(201)に接続できない。
サーバ(300)は、物理的なサーバであってもよいし、図3に示すように、物理的なサーバ(300a)内の仮想的なサーバ(300e、300f)であってもよい。なお、図3では、SANを1つしか示しておらず、ほかのSANおよびそのSANに接続されているスイッチとサーバは省略されている。また、SAN内のスイッチ(200)は、仮想的なスイッチでもよい。仮想的なスイッチは、サーバ内で仮想的に実現されてもよいし、サーバ外で物理的に存在する別の装置上で仮想的に実現されてもよい。また、サーバ(300)に代えてまたは加えて、ストレージ(100)も、物理的なストレージに限らず、仮想的なストレージ(例えば、物理的なストレージを論理的に区切ることで生成された仮想ストレージ)であってもよい。
ポートID割当て部(210)は、スイッチ(200a、200b)に設けられている(210a、210b)。
図2の構成例を用いて、実施例1で行われる動作を説明する。なお、本動作は、ストレージ(100a)に接続されているSAN(201a、201b)すべてに対して等しく実行されるため、図3以降では1つのSAN(201a)を示し、他のSAN(201b)を省略する。
<動作例1>基本構成における通常ポートIDの割り当て
図4は、初期状態、すなわち、追加ストレージ(100b)がまだストレージ(100a)に接続されておらず、閉じたSAN(201a)においてサーバ(300a、300b)およびストレージ(100a)にポートIDが割り当てられていない状態を示す。この状態から、通常ポートID(500)がサーバ(300)およびストレージ(100)に割り当てられる動作を説明する。
(1.1)スイッチ(200a)に搭載されているポートID割当て部(210a)は、ポートIDを割り当てる動作を開始する前に、スイッチ(200a)に接続されているストレージ(100a)のストレージ番号と、ストレージ内部でSAN(201a)への入出力経路を識別する経路番号とを取得する。例えば、ストレージ(100a)が、ストレージ番号と経路番号とをスイッチ(200a)に通知する。ストレージ番号は、後からフォワーディング先となるストレージ(100b)が接続された際に、2台以上になったストレージ(100a、100b)を判別可能な一意の番号である必要がある。ストレージ(100a)に対してポートIDを割り当てる動作の前に、ポートID割当て部(210a)が、ストレージ(100a)(または前述の管理装置(410))から、ストレージ(100a)のストレージ番号とストレージ(100a)内の経路(スイッチ(200a)に接続されている経路)の経路番号を受信する。本例では、ストレージ(100a)のストレージ番号を“0”とし、スイッチ(200a)に接続されている経路の経路番号を“0”とする。
(1.2)ポートID割当て部(210a)は、通常ポートID(500)に、ストレージ番号“0”をストレージ番号(501)として設定し、経路番号“0”を経路番号(502)として設定する。設定完了後、スイッチ(200a)(ポートID割当て部(210a))は、ポートID割り当てを受け付ける動作(例えば、ポートIDの割当て要求の受付)を開始する。
(1.3)SAN(201a)に接続されているサーバ(300a、300b)およびストレージ(100a)は、それぞれ、スイッチ(200a)に対してポートIDの割当て要求を送信する。
(1.4)スイッチ(200a)は、割当て要求を受信する都度に、ポートID割当て部(210a)に、ポートIDの割り当てを指示する。ポートID割当て部(210a)は、SAN(201a)において一意に識別可能な番号を、ユニーク番号(503)として、先に設定されたストレージ番号(501)および経路番号(502)を有する通常ポートID(500)に設定し、図5に示すように、番号(501)〜(503)を含んだポートID(500)を、割当て要求の送信元装置(サーバ(300)またはストレージ(100a))に割り当てる。
以上の(1.1)〜(1.4)により、図5に示すように、SAN(201a)において重複しない通常ポートID(500a、500b、500e)が割り当てられ、閉じたSAN(201a)内では、一般的な通信手順に基づいて通信可能となる。
<動作例2>追加ストレージ(100b)のストレージ(100a)への接続時動作
動作例1が完了後、ストレージ(100b)を接続してストレージ(100a)がフォワーディング準備完了となるまでの動作例を、図6及び図7を参照して説明する。
(2.1)図6に示すように、追加ストレージ(100b)がストレージ(100a)に接続される。そして、双方にフォワーディングを行う準備動作が指示される。本指示は、ストレージ(100aおよび(100b)が電気的物理接続および論理接続を検出したことであってもよいし、前述した管理装置(401)(またはストレージ(100aおよび100b)がそれぞれ有する入力部)から出されてもよい。ストレージ(100a)および追加ストレージ(100b)は、相互のストレージ番号およびフォワーディングに必要な情報の交換を行う。追加ストレージ(100b)のストレージ番号は、ストレージ(100a)に接続した時に、ストレージ(100a)のストレージ番号に重複しない番号をストレージ(100a)が割り当ててよい。または、追加ストレージ(100b)をストレージ(100a)に接続する前に管理装置(410)から追加ストレージ(100b)のストレージ番号が割り当てられてもよい。管理装置(410)は、SAN内のストレージのストレージ番号を管理していて、追加ストレージが生じた場合には、管理しているストレージ番号と重複しない番号(例えば通し番号)を生成しその番号を追加ストレージに割り当てることができる。本例では、追加ストレージ(100b)のストレージ番号を“1”とする。
(2.2)ストレージ(100a)は、スイッチ(200a)に対して、転送先ストレージ番号(511)と転送先ストレージ(100b)が接続されている経路(ストレージ(100a)内の経路)の経路番号(512)とを指定した特殊割当て要求を送信する。本例では、転送先ストレージ番号(511)は“1”であり、経路番号(512)は“1”であるとする。
(2.3)スイッチ(200a)は、特殊割当て要求を受信し、ポートID割当て部(210a)にプロキシポートIDの割り当てを指示する。ポートID割当て部(210a)は、プロキシポートID(510)に、転送先ストレージ番号(511)として番号“1”を設定し、経路番号(512)として番号“1”を設定し、閉じたSAN(201a)内で一意な番号をユニーク番号(513)として設定し、それにより、プロキシポートID(510)が完成する。ポートID割当て部(210a)は、特殊割当て要求の送信元ストレージ(100a)に、生成したプロキシポートID(510)を割り当てる。図6の例によれば、ユニーク番号(513)として番号“0”〜“2”が発行済のため、プロキシポートID(510)のユニーク番号(513)として、一意な番号“3”が設定される(図7参照)。
(2.4)ストレージ(100a)は、スイッチ(200a)のポートID割当て部(210a)からプロキシポートID(510)の割り当てを受けた後、フォワーディング部(110)に対して、パケット(600)を受信した場合にはそのパケット(600)が通常ポートID(500)宛てかプロキシポートID(510)宛てかを判別させるように設定する。
(2.5)追加ストレージ(100b)は、ストレージ(100a)からフォワーディングされるパケット(600)の受信に備えて内部の設定を行う。
以上の動作により、図7に示すように、プロキシポートID(510)がストレージ(100a)に割り当てられ、閉じたSAN(201a)内のサーバ(300a、300b)から、追加ストレージ(100b)へパケット(600)が到達する経路が確立される。以上の動作を、ストレージ(100a)に接続されている他の閉じたSAN(201b)に対しても行う。なお、サーバ(300aおよび300b)は、ストレージ(200a)に割り当てられている通常ポートID(500)を認識しているが、この動作例2が完了した場合に、プロキシポートID(510)を認識する。
<動作例3>フォワーディング時(往路)
動作例2が完了した状態では、閉じたSAN(201)に接続されているサーバ(300)は、プロキシポートID(510)を宛先として指定することで、追加ストレージ(100b)にアクセス可能な状態である。この状態でサーバ(300)から追加ストレージ(100b)にコマンドを送る場合の動作例を、図9を参照して説明する。
(3.1)サーバ(300b)は、追加ストレージ(100b)にコマンドを送信するために、パケット(600a)の宛先領域(601)にプロキシポートID(510)を設定し、パケット(600a)の発信元領域(602)にサーバ(300b)の通常ポートID(500b)を設定し、パケット(600a)のデータ領域(603)にコマンドを設定する。サーバ(300b)は、生成したパケット(600a)をスイッチ(200a)に送る。
(3.2)スイッチ(200a)は、パケット(600a)を受信し、通常のルーティング動作により、宛先領域(601)中のポートIDに基づいてパケット(600a)の転送先ストレージ(100a)を特定し、ストレージ(100a)にパケット(600a)を転送する。
(3.3)ストレージ(100a)は、パケット(600a)を受信し、受信したパケット(600a)をフォワーディング部(110)に渡す。フォワーディング部(110)は、パケット(600a)の宛先領域(601)中のポートIDがプロキシポートID(510)であることを特定する。例えば、フォワーディング部(110)が、宛先のポートID中のストレージ番号(501または511)が、自ストレージ(100a)のストレージ番号と一致する場合、宛先ポートIDが通常ポートID(500)と判断し、それらのストレージ番号が不一致の場合、宛先ポートIDがプロキシポートID(510)と判断する。
(3.4)フォワーディング部(110)は、プロキシポートID(510)から経路番号(512)を取得し、取得した経路番号が表す経路へパケット(600a)を転送する。これにより、パケット(600a)が追加ストレージ(100b)へ転送される。
(3.5)追加ストレージ(100b)は、ストレージ(100a)からパケット(600a)を受信する。追加ストレージ(100b)は、受信したパケット(600a)中のデータ領域(603)に含まれるコマンドを取り出しそのコマンドに従う処理を行う。
以上の課程を経て、サーバ(300b)から追加ストレージ(100b)にコマンドが格納されたパケット(600a)が到着する。
<動作例4>フォワーディング時(復路)
動作例3の後、追加ストレージ(100b)は、コマンドの処理結果をサーバ(300b)に返すために、結果が含まれたパケット(600)を送信する。コマンドに対する結果を返す動作例を、図10を参照して説明する。本動作例では、結果が含まれるパケット(600b)を追加ストレージ(100b)からサーバ(300b)に送る動作を説明する。
(4.1)追加ストレージ(100b)は、コマンドの処理結果をパケット(600b)のデータ領域(603)に設定し、コマンドが格納されていたパケット(600a)中の宛先ポートIDをパケット(600b)の発信元領域(602)に設定し、パケット(600a)中の発信元ポートIDをパケット(600)の宛先領域(601)に設定する。それにより、新たなパケット(600b)が生成される。追加ストレージ(100b)は、パケット(600b)をストレージ(100a)に送信する。
(4.2)ストレージ(600a)は、パケット(600b)を受信し、受信したパケット(600b)をフォワーディング部(110)に渡す。フォワーディング部(110)は、パケット(600b)の宛先が通常ポートID(500)であることを識別し、ストレージ(100a)に割り当てられた通常ポートID(500e、
500f)と比較する。ここではそれらのポートIDは一致しないので、フォワーディング部(110)は、宛先としての通常ポートID(500)から経路番号(502)を取得し、取得した経路番号が表す経路へパケット(600b)を転送する。これにより、パケット(600b)がスイッチ(200a)へ転送される。
(4.3)スイッチ(200a)は、パケット(600b)を受信し、通常のルーティング動作により、サーバ(300b)にパケット(600b)を転送する。
(4.4)サーバ(300b)は、パケット(600b)を受信し、送信したコマンドの実行結果に対して適切な処理を実行する。
<動作例5>通常時
ストレージ(100a)とストレージ(100a)にSAN(201a)経由で接続されているサーバ(300a)の往路時の通信手順を、図11を参照して説明する。
(5.1)サーバ(300a)は、ストレージ(100a)が持つ通常ポートID(500e)を宛先ポートIDとしたパケット(600c)を、スイッチ(200a)に送信する。
(5.2)スイッチ(200a)は、宛先ポートIDが割り当てられているストレージ(100a)に、パケット(600c)を転送する。
(5.3)ストレージ(100a)は、受信したパケット(600c)をフォワーディング部(110)に送る。フォワーディング部(110)は、パケット(600c)の宛先ポートIDが通常ポートID(500)であることを識別し、ストレージ(100a)に割り当てられているポートID(500e)と比較する。両者のポートID(500)が一致するので、フォワーディング部(110)は、パケット(600c)は自ストレージ(100a)宛てであると判断し、ストレージ(100a)に対してコマンドを転送する。具体的には、例えば、フォワーディング部(110)は、宛先ポートIDから経路番号(502)を取得し、取得した経路番号が表す経路にパケット(600c)中のコマンドを転送する。
(5.4)ストレージ(100a)は、コマンドを処理する。
次に、コマンドに対する結果を含んだパケットの復路時の通信手順を、図12を参照して説明する。
(5.5)ストレージ(100a)は、コマンドに対する結果を含むパケット(600d)を生成する。パケット(600d)は、宛先ポートIDとしてサーバ(300a)の通常ポートID(500a)を含み、発信元ポートIDとしてストレージ(100a)の通常ポートID(500e)を含む。ストレージ(100a)は、生成したパケット(600d)を、宛先ポートID中の経路番号(502)が表す経路に送信する。これにより、パケット(600d)がスイッチ(200a)に送信される。
(5.6)スイッチ(200a)は、パケット(600d)を受信し、パケット(600d)の宛先ポートID(500a)に基づいて、サーバ(300a)にパケット(600d)を転送する。
(5.7)サーバ(300a)は、パケット(600d)を受信し、パケット(600d)中のコマンド実行結果に対して適切な処理を実行する。
図13は、実施例1に係るシステムの詳細な構成例を示す。
ストレージ(100)同士を接続するデバイスは、バス直結デバイスであり、バス直結デバイスの一例として、NTB(NON-Transparent Bridge)(322)が採用されている。すなわち、ストレージ(100a)と追加ストレージ(100b)の間の接続媒体として、PCI expressバスとNTB(322)とが用いられる。ストレージ(100)は、外部装置が接続可能なインターフェイス(例えばポート)(3120)を有していて、ストレージ(100aおよび100b)のインターフェイス(3120aおよび3120b)間を、NTB(322)を介して接続できる。NTB(322)を介して、PCI expressのRC(Root Complex)(312aおよび312b)を接続した場合、双方のCPU(Central Processing Unit)(310a及び310b)から相手側へ一対一の通信路を作ることができる。NTB(322)のようなバス直結デバイスを採用した1つの理由は次の通りである。すなわち、バス直結デバイスではなくネットワーク経由でストレージ(100a)に追加ストレージ(100b)を接続すると、ストレージ(100a)が、IPアドレスのようなネットワークアドレスを取得する等のネットワーク管理を行う必要、つまり、ネットワークルータの役割をする必要が生じる。経路番号(512)を使用するだけでフォワーディングを実現することが望ましい。そこで、バス直結デバイスを使用することで、経路番号(512)(例えばバス番号)を使用するだけで、パケットの転送が可能となっている。なお、RC(312)もバス直結デバイスの一種であるが、RC(312a)およびRC(312b)同士を直接接続すると両者がイニシエータとなってしまうので、イニシエータ/ターゲットの関係を構築するためにNTB(322)が介在する。
ストレージ(100a)のCPU(310a)は、RC(312a)に接続されているTBA(Target Bus Adaptor)(321aおよび321b)、NTB(322)およびディスクコントローラ(313a)のようなデバイスを、ストレージ(100a)内で一意に割り当てられるデバイス番号で識別できる。RC(312a)であれば、デバイス番号を経路番号として用いることが可能である。経路番号は、例えば、ストレージ(100)のPCI expressバスのスロットIDでよい(PCI expressは、登録商標)。フォワーディング部(110)は、本例では、プログラムをストレージ(100)のCPU(310)で実行されることにより実現される。そのため、フォワーディング部(110)の実体であるプログラムはストレージ(100)のメインメモリ(311)上にあるとする。また、ディスクコントローラ(313a)は、ストレージコントローラの一例であり、不揮発性記憶デバイスの一例としてのディスク(314)に対するデータの入出力を制御する。ディスク(314)は、例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)である。TBA(321)は、ストレージが有するインターフェイスデバイスの一例である。
ちなみに、サーバ(300)も、RC(312)を有する。RC(312)に、CPU(310)およびHBA(Host Bus adaptor)(320)が接続されている。CPU(310)がメインメモリ(311)を使用する。HBA(320)は、サーバが有するインターフェイスデバイスの一例である。また、スイッチ(200)は、例えば、FC(Fibre Channel)スイッチである。また、図示しないが、ストレージ(100)および各サーバ(300)が、NIC(Network Interface Card)のようなインターフェイスを有していて、そのインターフェイスを介して、管理装置(410)に接続可能である。
図17は、スイッチ(200)の詳細な構成例を示す。
スイッチ(200)は、複数のポート(物理ポート)(213)と、ポート(213)間のルーティングを行うスイッチ部(214)と、転送管理表であるルーティングテーブル(212)を記憶した記憶領域と、ルーティングテーブル(212)を基にスイッチ部(214)の動作を制御するコントローラ(211)とを有しており、このようなスイッチ(200)に、更に、ポートID割当て部(210)が組み込まれている。スイッチ部(214)が、コントローラ(211)による制御の下で、ポート(213)から入ってきたパケット(600)に含まれる宛先ポートIDと、ルーティングテーブル(212)とに基づいて、転送先ポート(213)を特定し、特定したポート(213)にパケット(600)を転送する。ポートID割当て部(110)は、物理的な機構(ハードウェア)として実装されていてもよいし、コントローラ(211)によりプログラムが実行されることで実現されてもよい。
ストレージ(100)、スイッチ(200)およびサーバ(300)の動作を、図14〜図19を参照して説明する。
<ストレージの動作例>
図14は、電源投入時からのストレージ(100)の動作フローを示す。ストレージ(100)の電源投入により、本フローが開始される。また、以下の説明では、CPU(310)が1以上のプログラムを実行することにより、制御部(図示せず)と、フォワーディング部(110)が実現されるとする。
制御部が、ストレージ(100)のストレージ番号(501)とスイッチ(200a)に接続する経路の経路番号(502)とを、その経路の先につながっているスイッチ(200)に対して通知する(ステップ1001)。本通知方法はスイッチ(200)との間の通信の一部として行われる。制御部が、スイッチ(200)に対して、ポートID(500)の割当て要求を送信し、通常ポートID(500)の割り当てを受ける(ステップ1002)。このステップ1001および1002は、初期化処理において行われてよい。
制御部は、パケット(600)を受信したか否かを判断する(ステップ1020)。その判断結果が偽の場合(ステップ1020:No)、再度ステップ1020が行われる。
パケット(600)を受信した場合(ステップ1020:Yes)、制御部が、フォワーディング部(110)を呼び出し、フォワーディング部(110)が、パケット(600)の宛先ポートIDがプロキシポートID(510)であるか否かを判断する(ステップ1021)。
ステップ1021の判断結果が偽の場合(ステップ1021:No)、フォワーディング部110が、パケット(600)中の宛先ポートIDがステップ1002で割り当てられたポートID(500)と一致するか否かを判断する(ステップ1022)。
ステップ1022の判断結果が真の場合(ステップ1022:Yes)、制御部が、パケット(600)からコマンドを取得し、そのコマンドに従う処理(例えばディスク(314)に対するI/O(Input/Output)処理)を実行する(ステップ1003)。制御部は、処理したコマンドを含んでいたパケット(600)中の発行元ポートIDを宛先ポートIDとして含み且つステップ1003の処理結果を含んだパケット(600)を生成する(ステップ1004)。制御部は、そのパケット(600)中の宛先ポートIDから経路番号(502)を取得し、その経路番号が表す経路(デバイス)にそのパケット(600)を送る(ステップ1005)。これにより、パケット(600)が、コマンドを含んでいたパケット(600)の発行元装置に送られる。
ステップ1022の判断結果が偽の場合(ステップ1022:No)、制御部が、パケット(600)中の宛先ポートIDから経路番号(502)を取得し、その経路番号が表す経路(デバイス)にそのパケット(600)を送る(ステップ1005)。
ステップ1021の判断結果が真の場合(ステップ1021:Yes)、フォワーディング部110が、パケット(600)中のプロキシポートID(510)における転送先ストレージ番号(510)が自ストレージ(200)のストレージ番号と一致するか否かを判断する(ステップ1023)。
ステップ1023の判断結果が真の場合(ステップ1023:Yes)、それは、このストレージが追加ストレージ(100b)であることを意味する。この場合、制御部が、パケット(600)からコマンドを取得し、そのコマンドに従う処理を行う(ステップ1006)。制御部が、処理したコマンドを含んでいたパケット(600)中の発行元ポートIDを宛先ポートIDとして含み且つステップ1006の処理結果を含んだパケット(600)を生成する(ステップ1007)。制御部が、そのパケット(600)を、コマンドを含んでいたパケット(600)が転送されてきた経路(デバイス)に対して送り返す。つまり、そのパケット(600)が、追加ストレージ(100b)へパケット(600)を転送してきたストレージ(100a)に返される。
ステップ1023の判断結果が偽の場合(ステップ1023:No)、それは、このストレージが、追加ストレージ(100b)が接続されたストレージ(100a)であることを意味する。この場合、フォワーディング部(110)が、パケット(600)中のプロキシポートID(510)から経路番号(512)を取得し、その経路番号が表す経路(デバイス)にそのパケット(600)を送る。これにより、パケット(600)が追加ストレージに転送される。
図15は、ストレージ(100a)に追加ストレージ(100b)が接続されたときのストレージ(100a)の動作フローを示す。本フローは、追加ストレージ(100b)が接続されたことがストレージ(100a)により検出された場合(追加ストレージ(100b)又は別の外部装置から何らかの信号が与えられた場合)に開始される。
CPU(310a)が、追加ストレージ(100b)のストレージ番号を取得し(ステップ1101)、追加ストレージ(100b)への経路(デバイス)を識別する経路番号を取得する(ステップ1102)。CPU(310a)が、ステップ1101で取得したストレージ番号とステップ1102で取得した経路番号をそれぞれ転送先ストレージ番号(511)と転送先経路番号(512)として指定された特殊割当て要求を、未だその要求の送信先となっていないスイッチ(200)に対して送信する(ステップ1103)。その要求に応答して、CPU(310a)が、追加ストレージ(100b)のプロキシポートID(510)の割当てを受ける(ステップ1103)。
CPU(310a)は、ストレージ(100a)に接続されているすべてのスイッチ(200)についてステップ1103が行われた場合(ステップ1120:Yes)、本フローを終了し、未だステップ1103が行われていないスイッチ(200)がある場合、そのスイッチ(200)についてステップ(1103)を行う。
図16は、ストレージ(100a)に追加ストレージ(100b)が接続されたときの追加ストレージ(100b)の動作フローを示す。本フローは、追加ストレージ(100b)がストレージ(100a)に接続されたことが追加ストレージ(100b)により検出された場合(ストレージ(100a)又は別の外部装置から何らかの信号が与えられた場合)に開始される。
CPU(310b)が、ストレージ(100a)へ自ストレージ番号を通知し(ステップ1201)、ストレージ(100a)へ接続している経路(デバイス)から受信したパケットに対する返答は、その経路(デバイス)に送るような設定を行う(ステップ1202)。
<スイッチの動作例>
図18は、電源投入時からのスイッチ(200)の動作フローを示す。スイッチ(200)の電源投入により、本フローが開始される。
スイッチ(200)のコントローラ(211)が、ストレージ(100a)のストレージ番号(501)とストレージ(100a)内でこのスイッチ(200)につながる経路(デバイス)を識別する経路番号(502)とを、ストレージ(100a)との通信によって取得する(ステップ2001)。ステップ2001は、初期化処理において行われてよい。なお、コントローラ(211)は、メモリを有し、受信したストレージ番号(501)および経路番号(502)をメモリに格納する。その後、通常のポートIDの割当て要求を受信した場合、コントローラ(211)は、そのメモリ内のストレージ番号および経路番号と、生成したユニーク番号とを含んだポートIDを、割当て要求の送信元に送信することができる。
コントローラ(211)が、パケット(600)を受信したか否かを判断する(ステップ2020)。この判断結果が偽の場合(ステップ2020:No)、再度ステップ2020が行われる。
ステップ2020の判断結果が真の場合(ステップ2020:Yes)、コントローラ(211)が、パケット(600)の宛先ポートIDがスイッチ(200)宛てのポートIDであるか否かを判断する(ステップ2021)。
ステップ2021の判断結果が偽の場合(ステップ2021:No)、コントローラ(211)が、ルーティングテーブル(212)を参照し、転送先ポート(213)を特定し、受信したパケット(600)を転送先ポート(213)へ転送する(ステップ2002)。
ステップ2021の判断結果が真の場合(ステップ2021:Yes)、コントローラ(211)が、受信したパケット(600)に含まれるコマンドが通常のポートIDの割当て要求であるか否かを判断する(ステップ2022)。
ステップ2022の判断結果が真の場合(ステップ2022:Yes)、コントローラ(211)が、ステップ2001で取得したストレージ番号(501)と経路番号(502)を含む通常ポートID(500)を生成する(ステップ2006)。コントローラ(211)は、その通常ポートID(500)の割り当て返答を含むパケット(600)を生成し(ステップ2007)、そのパケット(600)を、割当て要求元に接続されているポート(213)に送る。コントローラ(211)は、このスイッチ(200)に接続されている装置に、ポートID状態変更があったことを示す通知を含んだパケットを送信する(ステップ2009)。
ステップ2022の判断結果が偽の場合(ステップ2022:No)、コントローラ(211)が、受信したパケット(600)に含まれるコマンドが特殊割当て要求であるか否かを判断する(ステップ2023)。
ステップ2023の判断結果が真の場合(ステップ2023:Yes)、コントローラ(211)が、特殊割当て要求に含まれている転送先ストレージ番号(511)と経路番号(512)を取得し、これら2つの番号を含んだプロキシポートID(510)を生成する。コントローラ(211)は、そのプロキシポートID(510)の割り当て返答を含むパケット(600)を生成し(ステップ2007)、その後、ステップ2008及び2009を行う。
ステップ2023の判断結果が偽の場合(ステップ2023:No)、コントローラ(211)が、パケット(600)中のコマンド(スイッチ(200)へのコマンド)を処理し、返答を作成し(ステップ2003)、その返答を含んだパケット(600)を、受信したパケット(600)の送信元が接続されているポート(213)に送る(ステップ2004)。
<サーバの動作例>
図19は、電源投入時からのサーバ(300)の動作フローを示す。サーバ(300)の電源投入により、本フローが開始される。
CPU(310c)が、スイッチ(200)に通常ポートID(500)の割当て要求を含んだパケットを送信し、それに応答して通常ポートID(500)を取得する(ステップ3002)。
CPU(310c)が、スイッチ(200)からポート変更通知を含むパケットを受信した場合(ステップ3001)、スイッチ(200)に接続されている装置のポートID一覧の要求を含んだパケットをスイッチ(200)に送信し、それに応答して、スイッチ(200)に接続されている装置のポートID一覧を取得する(ステップ3003)。
CPU(310c)が、アクセス可能なLU(Logical Unit)のLUNの一覧を取得する(ステップ3004)。例えば、CPU(310c)が、ストレージの通常ポートIDを宛先ポートIDとして含み且つLU一覧要求を含んだパケットを生成し送信するか、或いは、LU探索処理(例えばInquiryコマンドを含んだパケットのブロードキャスト送信)を実行する。
CPU(310c)が、CPU(310c)が実行するアプリケーションによるI/O要求があるか否かを判断する(ステップ3020)。この判断結果が偽の場合(ステップ3020:No)、再度ステップ3020が行われる。
ステップ3020の判断結果が真の場合(ステップ3020:Yes)、CPU(310c)が、ストレージのポートIDを宛先ポートIDとして含み且つI/O要求を含んだパケットを送信する(ステップ3005)。
CPU(310c)が、I/O要求を含んだパケットの応答としてのパケットが返ってきたか否かを判断する(ステップ3021)。この判断結果が偽の場合(ステップ3021:No)、再度ステップ3021が行われる。
ステップ3021の判断結果が真の場合(ステップ3021:Yes)、CPU(310c)が、返ってきたパケット中の結果(I/O要求に対する応答)に従う処理を行い、その処理結果を、I/O要求送信元のアプリケーションに返す(ステップ3006)。
複数のSANの管理を容易とするために、管理装置と管理経路が用いられる。本実施例では、管理装置と管理経理を含んだシステムによりストレージ番号と経路番号をスイッチに伝える方法を、図20を参照して説明する。
図20は、実施例2に係る計算機システムの構成を示す。
管理装置(410)は、計算機(例えばサーバと同等の計算機)であるか、または専用構成を持つ装置でもよい。管理装置(410)は、サーバ(300)、スイッチ(200)およびストレージ(100)に、SAN(201)とは独立した管理経路(411)を介して接続され、それらの装置を管理する。
実施例1では、ストレージ(100)のストレージ番号(501)と経路番号(502)が、ストレージ(100)とスイッチ(200)の間の通信によって伝達していたが、本実施例では、ストレージ(100)のストレージ番号(501)および経路番号(502)を管理装置(410)が管理しており、管理装置(410)が、それらの番号を、管理経路(411)を介して配布する。
以下、実施例1と異なる点を主に説明する。
<ストレージの動作例>
図14の動作フローとの相違点をあげる。ステップ1001では、スイッチ(200)が、ストレージ(100)のストレージ番号(501)を、管理経路(411)を通じて管理装置(410)より受ける。その他は、実施例1と同様である。
図15の動作フローとの相違点をあげる。CPU(310a)が、ストレージ(100a)に追加ストレージ(100b)が接続されたこと示す通知を、管理装置(410)から受ける。ステップ1101では、CPU(310a)が、追加ストレージのストレージ番号を管理装置(410)より受ける。その他は、実施例1と同様である。
図16の動作フローとの相違点をあげる。CPU(310b)が、追加ストレージ(100b)がストレージ(100a)に接続されたことを示す通知を、管理経路(411)を通じて管理装置(410)より受ける。ステップ1201が無い。その他は、実施例1と同様である。
<スイッチの動作例>
図18の動作フローとの相違点を挙げる。ステップ2001で、コントローラ(211)が、ストレージ(100a)のストレージ番号(501)と経路番号(502)を、管理経路(411)を通じて管理装置(410)から受ける。その他は、実施例1と同様である。
さて、管理装置(410)は、管理者に対してSAN(201)の接続状態を表す情報(例えば画面)を表示する。ここで言う「表示する」とは、管理装置(410)が有する表示デバイスに情報を表示することであってもよいし、管理装置(410)に接続されている遠隔の表示用計算機に表示用の情報を送信することであってもよい。管理装置(410)が表示する画面の変化を、図21〜図24を参照して説明する。
図21は、追加ストレージ(100b)がストレージ(100a)に接続される前の状態(図5の状態)を示す画面を示し、図22は、追加ストレージ(100b)がストレージ(100a)に接続された後の状態(図7の状態)を示す画面を示す。
図21と図22を比べればわかるように、追加ストレージ(100b)の接続が完了した場合に、画面上では、ストレージ(100a)にプロキシポートID(510)に対応する新しい接続経路が追加されたように見える。
なお、追加ストレージ(100b)のポートはSAN(201)内に無いため、管理装置(410)は、画面上に追加ストレージ(100b)を表示しないが、図23に示すように、SAN内にポートを持たない追加ストレージ(100b)を表すオブジェクトを表示してもよい。または、管理装置(410)は、図24に示すように、プロキシポートIDが追加ストレージへの経路として見えるように表示してもよい。
実施例3は、閉じたSAN(201)が1つのLSI(Large Scale Integration)によって論理的に実施された例である。通常のSAN(201)では、サーバ(300)に搭載されるHBA(320)およびストレージ(100)に搭載されるTBA(321)が別々の装置に存在する。本実施例では、HBA(320)とTBA(321)の両方の機能を持つような装置(330)が存在し、サーバ(300)とストレージ(100)を接続している、
図25は、実施例3に係る計算機システムの詳細な構成例を示す。
HBA(320)とTBA(321)の両方の機能を持つ装置として、SAN
LSI(330)が採用される。SAN LSI(330)は、中継ノードの一例である。なお、本例において、サーバ(300)は仮想サーバでもよく、その場合には、SAN
LSI(330)が、仮想的な複数のハードウェアインターフェイスを1台の物理サーバ(300)に提供し、物理サーバ(300)内の仮想化管理ソフト(例えばハイパバイザ)が、物理サーバ(300)内の仮想サーバ(300)に仮想的なハードウェアインターフェイスを割り当てる。サーバ(300)とストレージ(100a)が、PCI-Expressで通信可能に接続されていてもよい。
本例において、SAN
LSI(330)は、サーバ(300)にHBA(320)と同様のハードウェアインターフェイスを提供し、ストレージ(100)にはTBA(321)と同様のハードウェアインターフェイスを提供しているため、動作フローにおいて変更はない。SANのスイッチは、LSI(330)の内部で仮想的に実現される。ポートID割当て部(210)は、SAN
LSI(330)の一機構としてハードウェア的またはSAN LSI内部のプロセッサによるプログラムによって当該機能が実現されてよい。
実施例2において、スイッチ(200)に対して管理装置(410)により管理経路(411)経由でストレージ(100a)のストレージ番号および経路番号が与えられるが、本実施例では、図26に示すように、SAN
LSI(330)に直接接続されている管理経路(411)が存在しない。そのため、実施例3では、管理装置(410)からサーバ(300)経由でストレージ番号および経路番号がSAN
LSI(330)に与えられる。
以下、スイッチ(SAN
LSI(330))の動作フローについて、実施例2のスイッチ(200)の動作フローとの相違点をあげる。ステップ2001で、LSI(330)が、ストレージ(100a)のストレージ番号(501)と経路番号(502)を、サーバ(300)との間のインターフェイス初期化処理において、管理装置(410)から受ける。その他は、実施例2と同様である。
実施例3におけるSAN
LSI(330)に代えて、SAN以外のネットワークのLSI(サーバのインターフェイスとストレージのインターフェイスとの両方を持つ装置)が採用されてよい。
以上、幾つかの実施例を説明したが、本発明はそれらの実施例に限られない。
例えば、ネットワークシステムにエッジノードとしてサーバおよびストレージが混在することに代えて、ネットワークシステムに含まれる全てのエッジノードがサーバであってもよいしストレージであってもよい。
また、例えば、ストレージ(100a)に、第1追加ストレージ(100b)に加えて第2追加ストレージが接続されてもよい。その場合、ストレージ(100a)に、第1追加ストレージ(100b)用の第1プロキシポートIDに加えて、第2追加ストレージ用の第2プロキシポートIDが割り当てられる。
また、例えば、第2追加ストレージ(100b)は、ストレージ(100a)ではなく第1追加ストレージ(100b)に接続されてもよい(フォワーディング部は各ストレージ(100)が有していてよい)。つまり、ストレージ(100a)、第1追加ストレージ(100b)及び第2追加ストレージが直列に接続されてもよい。この場合、第2追加ストレージ用の第2プロキシポートIDは、第2追加ストレージよりも上流側の全てのストレージ(100aおよび100b)に割り当てられてよい。
また、例えば、追加ノードの種類と同じ種類のエッジノードに追加ノードが接続されてもよいし、追加ノードの種類と異なる種類のエッジノードに追加ノードが接続されてもよい。前者のケースでは、例えば、追加ノードがストレージであれば、ストレージに追加のストレージが接続され、後者のケースでは、例えば、追加ノードがストレージであれば、サーバに追加のストレージが接続される。
また、例えば、追加ノードは、中間ノードでもよい。すなわち、閉じたネットワークのエッジノードに、間接的にエッジノードが接続されてもよい。具体的には、閉じたネットワークのエッジノードに中間ノードが接続され、その中間ノードに、1以上のエッジノードが接続されてもよい。
100:ストレージ装置、110:フォワーディング部、200:スイッチ装置、201:閉じたSAN、210:ポートID割当て部、300:サーバ装置、500:通常ポートID、510:プロキシポートID

Claims (14)

  1. 複数のエッジノードとエッジノード間の通信を中継する中間ノードとで構成されたネットワークシステムと、
    前記複数のエッジノードのうちのいずれかのエッジノードである第1エッジノードの物理的構成が反映された第1ネットワークアドレスを前記第1エッジノードに割り当てるネットワークアドレス管理部と
    を有し、
    前記ネットワークアドレス管理部が、追加のエッジノードである第2エッジノードが前記第1エッジノードに接続された場合、前記第2のエッジノードについて前記第1エッジノードの物理的構成が反映された第2ネットワークアドレスを、前記第1エッジノードに割り当てる、
    計算機システム。
  2. 前記ネットワークアドレス管理部が、前記第1エッジノード内の前記中間ノードに接続された第1経路のIDである第1経路IDを受信し、
    前記ネットワークアドレス管理部が、第1割当て要求を受信し、前記第1経路IDを含んだ前記第1ネットワークアドレスを生成し、
    前記ネットワークアドレス管理部が、前記第1エッジノード内の前記第2ストレージに接続された第2経路のIDである第2経路IDが指定された第2割当て要求を受信し、前記第2経路IDを含んだ前記第2ネットワークアドレスを生成する、
    請求項1記載の計算機システム。
  3. 前記ネットワークアドレス管理部が、前記第1エッジノードのIDである第1ノードIDを受信し、
    前記ネットワークアドレス管理部が、前記第1経路IDの他に前記第1ノードIDを含んだ前記第1ネットワークアドレスを生成し、
    前記第2割当て要求は、前記第2経路IDの他に前記第2ノードのIDである第2ノードIDが指定されており、
    前記ネットワークアドレス管理部が、前記第2経路IDの他に前記第2ノードIDを含んだ前記第2ネットワークアドレスを生成する、
    請求項2記載の計算機システム。
  4. 前記ネットワークアドレス管理部が、前記複数のエッジノードにそれぞれ複数の第1ネットワークアドレスを割り当て、
    前記複数の第1ネットワークアドレスおよび前記第2ネットアークアドレスの各々が、前記複数の第1ネットワークアドレスおよび前記第2ネットアークアドレスにおいてユニークな情報であるユニーク情報を含む、
    請求項3記載の計算機システム。
  5. 前記第1エッジノードが、前記複数のエッジノードのうちの前記第1エッジノード以外のいずれかのエッジノードである第3エッジノードから、宛先ネットワークアドレスとして前記第1または第2ネットワークアドレスが指定されたパケットを、前記中間ノードを介して受信し、前記受信したパケットで指定されている宛先ネットワークアドレス中のノードIDが前記第2ノードIDであるか前記第1ノードIDであるかに応じて、前記受信したパケットを前記第2エッジノードに転送するか否かを判断し、且つ、前記受信したパケットで指定されている宛先ネットワークアドレス中の経路IDから前記第1エッジノード内の転送先経路を判別する、
    請求項3記載の計算機システム。
  6. 前記第1及び第2経路IDは、いずれも、前記第1エッジノード内部のPCI expressバスのスロットIDである、
    請求項2記載の計算機システム。
  7. 前記第1及び第2ネットワークアドレスの各々は、Fibre ChannelネットワークのポートIDである、
    請求項1記載の計算機システム。
  8. 前記第1エッジノードと前記第2エッジノードの接続に、PCI expressバスとバス直結デバイスが用いられる、
    請求項1記載の計算機システム。
  9. 前記バス直結デバイスは、NTB(NON-Transparent Bridge)である、
    請求項8記載の計算機システム。
  10. 前記中間ノードが前記ネットワークアドレス管理部を有する、
    請求項1記載の計算機システム。
  11. 前記複数のエッジノードの各々を管理する管理装置を有し、
    前記管理装置が前記ネットワークアドレス管理部を有する、
    請求項1記載の計算機システム。
  12. 前記第1及び第2エッジノードは、ストレージであり、
    前記複数のエッジノードのうちの前記第1エッジノード以外の2以上のエッジノードが、入出力要求を送信するサーバである、
    請求項1記載の計算機システム。
  13. ネットワークシステムが有する複数のエッジノードの各々に接続されたインターフェイス部と、
    前記インターフェイス部に接続された制御部と
    を有し、
    前記制御部が、
    前記複数のエッジノードのうちのいずれかのエッジノードである第1エッジノードの物理的構成が反映された第1ネットワークアドレスを前記第1エッジノードに割り当て、
    追加のエッジノードである第2エッジノードが前記第1エッジノードに接続された場合、前記第2のエッジノードについて前記第1エッジノードの物理的構成が反映された第2ネットワークアドレスを、前記第1エッジノードに割り当てる、
    アドレス管理装置。
  14. ネットワークシステムが有する複数のエッジノードのうちのいずれかのエッジノードであって、
    前記ネットワークシステムが有する中間ノードまたは前記複数のエッジノードの各々を管理する管理装置であるアドレス管理装置に接続される第1のインターフェイス部と、
    前記ネットワークシステム外の追加のエッジノードが接続される第2のインターフェイス部と、
    前記第1および第2のインターフェイス部に接続された制御部と
    を有し、
    前記制御部が、
    エッジノードの物理的構成を表す情報を前記アドレス管理装置に送信し、
    第1の割当て要求を前記アドレス管理装置に送信し、前記第1の割当て要求に応答して、前記情報が表す物理的構成が反映された第1ネットワークアドレスの割当てを受け、
    前記追加のエッジノードが前記第2のインターフェイス部に接続された場合、前記追加のエッジノードについてエッジノードの物理的構成を表す情報を関連付けた第2の割当て要求を前記アドレス管理装置に送信し、前記第2の割当て要求に応答して、前記第2の割当て要求に関連付けられた情報が表す物理的構成が反映された第2ネットワークアドレスの割当てを受け、
    前記複数のエッジノードのいずれかから、宛先ネットワークアドレスとして第1または第2ネットワークアドレスが指定されたパケットを受信した場合、受信したパケットで指定されている宛先ネットワークアドレスから、受信したパケットを前記追加のエッジノードに転送するか否か、および、エッジノード内の転送先経路を判別する、
    エッジノード。
JP2013253953A 2013-12-09 2013-12-09 計算機システム、アドレス管理装置およびエッジノード Expired - Fee Related JP6250378B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013253953A JP6250378B2 (ja) 2013-12-09 2013-12-09 計算機システム、アドレス管理装置およびエッジノード
US14/562,139 US9461962B2 (en) 2013-12-09 2014-12-05 Computer system, address management apparatus, and edge node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013253953A JP6250378B2 (ja) 2013-12-09 2013-12-09 計算機システム、アドレス管理装置およびエッジノード

Publications (2)

Publication Number Publication Date
JP2015115630A true JP2015115630A (ja) 2015-06-22
JP6250378B2 JP6250378B2 (ja) 2017-12-20

Family

ID=53272314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013253953A Expired - Fee Related JP6250378B2 (ja) 2013-12-09 2013-12-09 計算機システム、アドレス管理装置およびエッジノード

Country Status (2)

Country Link
US (1) US9461962B2 (ja)
JP (1) JP6250378B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6390929A (ja) * 1986-10-03 1988-04-21 Omron Tateisi Electronics Co 多重伝送装置
US20090287898A1 (en) * 2008-05-15 2009-11-19 Junichi Hara Method and apparatus for I/O priority control in storage systems
JP2012205300A (ja) * 2011-03-24 2012-10-22 Nec (China) Co Ltd アドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006025121A (ja) * 2004-07-07 2006-01-26 Fujitsu Ltd フレーム転送方法及びその装置
US7633859B2 (en) * 2005-01-26 2009-12-15 Cisco Technology, Inc. Loop prevention technique for MPLS using two labels
US8681695B1 (en) * 2009-10-14 2014-03-25 Juniper Networks, Inc. Single address prefix allocation within computer networks
CN102882699B (zh) * 2011-07-14 2015-07-29 华为技术有限公司 边缘节点的分配方法和装置及边缘节点控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6390929A (ja) * 1986-10-03 1988-04-21 Omron Tateisi Electronics Co 多重伝送装置
US20090287898A1 (en) * 2008-05-15 2009-11-19 Junichi Hara Method and apparatus for I/O priority control in storage systems
JP2009277211A (ja) * 2008-05-15 2009-11-26 Hitachi Ltd ストレージシステムでi/oプライオリティを制御する方法及び装置
JP2012205300A (ja) * 2011-03-24 2012-10-22 Nec (China) Co Ltd アドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法

Also Published As

Publication number Publication date
US9461962B2 (en) 2016-10-04
JP6250378B2 (ja) 2017-12-20
US20150163195A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
JP5159475B2 (ja) ストレージシステムおよびストレージシステムの動作方法
CN110177059B (zh) 用于存储数据的系统和方法
JP4620776B2 (ja) ネットワークに付属する物理的なポートの仮想インスタンスを管理するための方法およびシステム
US8032730B2 (en) Method and apparatus for I/O priority control in storage systems
KR101498413B1 (ko) 파이버 채널 포워더 패브릭 로그인 시퀀스
US8429446B2 (en) Method and apparatus for managing virtual ports on storage systems
JP6037016B2 (ja) 仮想マシン・マイグレーションを決定するための方法および装置
US20150071123A1 (en) Integrating software defined storage and software defined networking
US10389550B1 (en) Priority tagging based solutions in FC SANs independent of target priority tagging capability
US10503442B2 (en) Method and apparatus for registering and storing virtual machine unique information capabilities
US9087162B2 (en) Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US20120284435A1 (en) Zone group manager virtual phy
US9292462B2 (en) Broadcast for a distributed switch network
US9875059B2 (en) Storage system
JP4253224B2 (ja) アドレス管理方法および装置
US10437770B2 (en) Method and apparatus for providing virtual machine information to a network interface
US11765037B2 (en) Method and system for facilitating high availability in a multi-fabric system
KR20210152365A (ko) 데이터 저장 장치, 및 패브릭-부착 저장 장치를 가상화를 위한 시스템 및 방법
WO2014124557A1 (zh) 光纤通道中实现节点端口虚拟化的方法,装置和系统
US9582310B2 (en) Method and apparatus for determining the identity of a virtual machine
JP6250378B2 (ja) 計算機システム、アドレス管理装置およびエッジノード
US10348519B2 (en) Virtual target port aggregation
JP5758519B2 (ja) 計算機システム及びその管理方法
WO2017020572A1 (zh) 一种中断处理方法、ioapic及计算机系统
US20190104195A1 (en) Computer system and method for controlling communication path

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171122

R150 Certificate of patent or registration of utility model

Ref document number: 6250378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees