(57)【特許請求の範囲】
【請求項１】
各々他の装置に接続される複数のポートと、
前記複数のポートの各々について、論理的に統合される複数のスイッチが応答し且つ前記論理的に統合される複数のスイッチ以外の装置が応答しない問い合わせを行い、当該問い合わせに対する応答が得られたか否かを判断する判断部と、
前記判断部による判断結果に基づき、前記複数のポートの各々についてポート種別又はポート使用可否を設定する設定部と、
を有するスイッチ。
【請求項２】
前記設定部が、
前記判断部により前記問い合わせに対する応答が得られたと判断されたポートについて、前記論理的に統合される複数のスイッチに接続されるポートのポート種別を設定する
請求項１記載のスイッチ。
【請求項３】
前記設定部が、
前記判断部により前記問い合わせに対する応答が得られなかったと判断されたポートについて、外部装置又は外部ネットワークに接続されるポートのポート種別を設定する
請求項１又は２記載のスイッチ。
【請求項４】
前記設定部が、
前記判断部により前記問い合わせに対する応答が得られたと判断されたポートについて、予め外部装置又は外部ネットワークに接続されるポートのポート種別が設定されていれば、ポート使用不可を設定する
請求項１記載のスイッチ。
【請求項５】
前記設定部が、
前記判断部により前記問い合わせに対する応答が得られなかったと判断されたポートについて、予め前記論理的に統合される複数のスイッチに接続されるポートのポート種別が設定されていれば、ポート使用不可を設定する
請求項１又は４記載のスイッチ。
【請求項６】
前記設定部が、
前記判断部により前記問い合わせに対する応答が得られたと判断されたポートについて、予め前記論理的に統合される複数のスイッチに接続されるポートのポート種別が設定されていれば、ポート使用可と取り扱い、
前記判断部により前記問い合わせに対する応答が得られなかったと判断されたポートについて、予め外部装置又は外部ネットワークに接続されるポートのポート種別が設定されていれば、ポート使用可として取り扱う
請求項１、４又は５記載のスイッチ。
【請求項７】
各々他の装置に接続される複数のポートを有するスイッチのプロセッサにより実行されるプログラムであって、
前記複数のポートの各々について、論理的に統合される複数のスイッチが応答し且つ前記論理的に統合される複数のスイッチ以外の装置が応答しない問い合わせを行い、当該問い合わせに対する応答が得られたか否かを判断し、
当該判断の結果に基づき、前記複数のポートの各々についてポート種別又はポート使用可否を設定する
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、スイッチの自動設定技術に関する。
【背景技術】
【０００２】
最近のデータセンタ等で実現されるクラウドサービスでは、サーバを多数配置し多数の顧客でサーバ資源を共用する。そのため、多数並べられたサーバに直結するネットワークにおいても、多数のスイッチを並べて広帯域化のためにも複数経路を張って冗長化ネットワークを構築することになる。【０００３】
サーバ前段のスイッチはレイヤ２のネットワークであるため、複数経路を張って冗長化ネットワークをそのまま構築するとループ構成となってしまうため、ＳＴＰ（Spanning Tree Protocol）等を利用することも考えられる。しかしながら、ＳＴＰを使用すると、冗長経路はブロッキングされて通信に使用できなくなるため、広帯域化できないという問題がある。そこで、ファブリック（Fabric）スイッチと称し、複数の同種スイッチを論理的に１つに統合し、内部で状態のやりとりを行うことで複数回線を冗長経路として使用できるようなスイッチが登場してきている。これによって、ＳＴＰを利用しないで広帯域化且つ冗長化ネットワークを構築できるようになる。なお、Fabricは、Fabricスイッチによって構築されたネットワークを指すものとする。【０００４】
このFabricスイッチが論理的に、そして仮想的に複数のスイッチを１つに統合するため、Fabric内のスイッチでは、内部のスイッチ間で繋がるポート（以下、内部ポートと呼ぶ。）と、サーバ、端末や他のネットワーク機器と繋がるポート（以下、外部ポートと呼ぶ。）とをハード的に固定、もしくはポート単位に定義（ポート単位に内部ポートか外部ポートかを定義）し、それに基づいてFabricを構築することが一般的である。【０００５】
例えば、図１に示すように、スイッチ１乃至６は、Fabricスイッチであり、これらによってFabricが構築されている。スイッチ１及び２は、コアネットワークに接続されており、スイッチ３乃至６は、サーバやストレージに接続されている。スイッチ１乃至６は互いに接続されている。そして、各スイッチにおいて丸で示されたポートは、コアネットワークやサーバに接続される外部ポートを表しており、各スイッチにおいて四角で示されたポートは、Fabricスイッチ間を繋ぐ内部ポートを表している。【０００６】
これは、内部ポート間は複数回線を効率的に利用したり、内部での情報のやり取りのために特殊なインタフェースとして見せることになり、逆に、外部ポートは通常のスイッチポートとして見せることになるためである。【０００７】
ところが、内部ポートと外部ポートとをハード的に区別しているFabricスイッチにおいては、内部ポートに外部装置を接続、又は外部ポートに別のFabricスイッチを接続した場合、すなわち誤接続の場合、動作できないばかりかFabricの構築までできなくなる。図２に示した例では、スイッチ６の外部ポートを、他のFabricスイッチであるスイッチ１及び２に接続してしまったため、スイッチ１及びスイッチ２とは通信できず、スイッチ６はFabricに参加できない。スイッチ６において、内部ポートとすべき設定を外部ポートとして設定してしまった場合も同様である。このような接続ミスや設定ミスの調査や対応には時間が掛かる。【０００８】
また、定義によって内部ポートと外部ポートを設定するようなFabricスイッチでは、構成によって内部ポート又は外部ポートの設定を個別に実施することになる。例えば、デフォルトの設定が全て内部ポートである場合、外部装置等を繋げても外部ポートでないため通信できない。例えば図３に示すように、コアネットワークに接続される、スイッチ１及び２のポート群Ａと、サーバに接続される、スイッチ３乃至６のポート群Ｂとは、初期的に内部ポートとして設定されているので、そのままでは通信できない。よって、スイッチ１乃至６のポート設定を変更しなければならず、初回の設定処理が煩雑となる。【０００９】
さらに、内部ポートのつもりで物理的な結線を実施したが、定義を外部ポートとしてしまった場合（すなわち誤設定）、Fabricは論理的に１つのスイッチであるため、同一スイッチ内のポート間を直結することと同義となる。すなわち、レイヤ２のループが発生してしまい、結線を取り除くか定義を修正するまではループを止めることができない。また、図４において太線矢印で示すように、実際に外部ポートに設定して外部装置を接続する予定であったが、結線ミス等により外部ポート間を接続してしまった場合（すなわち誤接続）も同様にループが発生し、Fabric内の通信性能に影響を与えてしまう。【００１０】
Fabricスイッチを大規模システムに適用する場合はスイッチ数が増え、誤接続や定義ミスの可能性は飛躍的に増大する。そして、Fabricをチェックするのも大変であるため、誤接続や定義ミスによってループが発生し、それによる通信不可状態が長期間に続くことはシステム構築を行う上で大きな問題である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１１−２５２１８１号公報
【特許文献２】特開２０００−１９６６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従って、本技術の目的は、一側面によれば、Fabricスイッチの設定を自動化するための技術を提供することである。
【課題を解決するための手段】
【００１３】
本技術に係るスイッチは、（Ａ）各々他の装置に接続される複数のポートと、（Ｂ）複数のポートの各々について、論理的に統合される複数のスイッチのいずれかに接続されているか否かを判断する判断部と、（Ｃ）判断部による判断結果に基づき、複数のポートの各々についてポート種別又はポート使用可否を設定する設定部とを有する。
【発明の効果】
【００１４】
一側面によれば、Fabricスイッチの設定を自動化することができるようになる。
【図面の簡単な説明】
【００１５】
【図１】図１は、Fabricを説明するための図である。
【図２】図２は、従来の問題点を説明するための図である。
【図３】図３は、従来の問題点を説明するための図である。
【図４】図４は、従来の問題点を説明するための図である。
【図５】図５は、本技術の実施の形態の動作を説明するための図である。
【図６】図６は、本技術の実施の形態の動作を説明するための図である。
【図７】図７は、実施の形態に係るFabricスイッチの構成を示す図である。
【図８】図８は、ポート種別設定の一例を示す図である。
【図９】図９は、定義矛盾時の設定ポリシーの一例を示す図である。
【図１０】図１０は、実施の形態に係るFabricスイッチの動作についての処理フローを示す図である。
【図１１】図１１は、実施の形態に係るFabricスイッチの動作についての処理フローを示す図である。
【図１２】図１２は、スイッチをコンピュータで実装する場合の機能ブロック図である。
【発明を実施するための形態】
【００１６】
本技術の実施の形態では、Fabricスイッチであるスイッチ１乃至６を物理的に接続した後又は設定変更した後に、図５の矢印で模式的に示すように、ポート設定に拘わらず、スイッチ１乃至６は、各ポートについて、接続先がFabricスイッチであるか否かを確認する。そうすると、スイッチ１及び２のポート群Ｅと、スイッチ３乃至６のポート群Ｆとは、接続先がFabricスイッチであることが確認できるので、内部ポートとして設定する。もし、元々内部ポートとして設定されている場合には、ポート群Ｅ及びＦについては使用許可状態となる。
【００１７】
一方、コアネットワークに接続される、スイッチ１及び２のポート群Ｃと、サーバ等に接続される、スイッチ３乃至６のポート群Ｄとは、接続先がFabricスイッチではないと確認されるので、外部ポートとして設定する。すなわち、図５の状態から、図６の状態に遷移する。もし、元々外部ポートとして設定されている場合には、ポート群Ｃ及びＤについては使用許可状態となる。
【００１８】
なお、予め各ポートに外部ポート又は内部ポートといった設定がなされている場合には、それと異なるポート種別が特定されると、特定されたままに設定するような場合もあれば、ブロッキング（すなわち使用不可）を設定するようにしても良い。これも、内部ポートと設定されているが外部ポートと特定された場合、外部ポートとして設定されているが内部ポートとして特定された場合とで、異なるポリシーで、特定されたままに設定したり、ブロッキングするようにしても良い。
【００１９】
以下、このような動作を実行するためのFabricスイッチの構成及び動作を具体的に説明する。
【００２０】
図７に本実施の形態に係るFabricスイッチ１００の構成例を示す。Fabricスイッチ１００は、制御部１１０と、メモリ１２０と、スイッチハードウエア１３０と、ポート１乃至ｎとを有する。制御部１１０は、スイッチハードウエア１３０を含むFabricスイッチ１００全体を制御し、ポート種別についての判断処理を実行する判断部１１１と、ポートに対する設定処理をスイッチハードウエア１３０を介して実行する設定部１１２とを有する。なお、制御部１１０は、例えばプロセッサとプログラムの組み合わせにて実現される。この場合、メモリ１２０又は他のＲＯＭ（Read Only Memory）に格納されているプログラムをプロセッサが実行することにより、制御部１１０が実現される。メモリ１２０は、制御部１１０が実行する処理に用いられるデータ等を格納する。
【００２１】
スイッチハードウエア１３０は、独自フォーマットで他のFabricスイッチとの通信を行う機能と、ポート間のフレーム中継を行う半導体装置である。ポート１乃至ｎには、他のFabricスイッチ、外部ネットワーク、サーバ等と接続するためのケーブルが接続される。
【００２２】
次に、本実施の形態に係るFabricスイッチ１００により実行される処理内容について、図８乃至図１１を用いて説明する。
【００２３】
なお、この処理は、例えばFabricスイッチ１００が起動された場合に実行される。但し、特定のポートだけリンクアップさせる場合、特定のポートだけポート種別の定義が変更された場合などは、そのポートについて実行されるものとする。
【００２４】
例えば、図８に示すような設定がなされているものとする。図８の例のように、各ポートに対して、ポート種別が設定されており、例えば各ポート１乃至ｎに直接設定されているだけではなく、メモリ１２０にも同様のデータが格納されている場合もある。さらに、図９に示すように、内部ポートと定義されていた場合に外部ポートとして特定された場合（すなわち定義矛盾時）に実接続を優先するのかブロッキングに設定するのかについての設定、外部ポートとして定義されていた場合に内部ポートとして特定された場合（定義矛盾時）に実接続を優先するのかブロッキングに設定するのかについての設定は、メモリ１２０に格納されているものとする。
【００２５】
そして、制御部１１０は、スイッチハードウエア１３０を介して、自スイッチの各ポートをリンクアップさせ、各ポートにＬＬＤＰ（Link Layer Discovery Protocol）フレームを送信し、各ポートに接続されている隣接装置のアドレスを取得する（図１０：ステップＳ１）。
【００２６】
その後、制御部１１０の判断部１１１は、未処理のポートを１つ特定し（ステップＳ３）、当該ポートについて取得されたアドレス宛に、Fabricスイッチで解釈可能なフォーマットで、Fabricスイッチであるかについての問い合わせを実行する（ステップＳ５）。上で述べたように、スイッチハードウエア１３０は、独自フォーマットで他のFabricスイッチと通信を行う機能を有しているので、判断部１１１は、スイッチハードウエア１３０に指示して問い合わせを行わせる。
【００２７】
問い合わせを行ったポートにFabricスイッチが接続されていれば、その接続先のFabricスイッチは、該当するポート及びスイッチハードウエア１３０を介して、制御部１１０は、問い合わせを受信すると、同じくスイッチハードウエア１３０及び該当するポートを介して、応答を返信する。
【００２８】
このように、問い合わせを行ったポートにFabricスイッチが接続されていれば問い合わせに応答できるが、それ以外の装置は問い合わせを理解できないので応答できない。そこで、判断部１１１は、特定されたポートから、問い合わせに対する応答が得られたか判断する（ステップＳ７）。所定時間内に応答が得られなかった場合には、処理は端子Ａを介して図１１の処理に移行する。応答が得られなかったということは、問い合わせを理解できない外部装置が接続されていることを表す。
【００２９】
一方、応答が得られた場合には、判断部１１１は、問い合わせを行ったポートのポート種別が外部ポートと定義されているか判断する（ステップＳ８）。応答が得られたということは、Fabricスイッチが接続されていることを意味するので、外部ポートとポート種別が定義されていれば定義矛盾が存在することになる。
【００３０】
ポート種別が内部ポートと定義されていれば（ステップＳ８：Ｎｏルート）、設定部１１２は、問い合わせを行ったポートを、そのままの設定で使用可能状態に設定する（ステップＳ１７）。そして処理はステップＳ１５に移行する。すなわち、そのポートを内部ポートとして使用する。これは結線に問題がなかったということであり、そのまま使用できる。
【００３１】
一方、ポート種別が外部ポートとして定義されていれば（ステップＳ８：Ｙｅｓルート）、設定部１１２は、外部ポートの定義矛盾時にブロッキングに設定すると設定されているかを判断する（ステップＳ９）。ブロッキングしないで実接続に応じて設定することになっている場合（ステップＳ９：Ｎｏルート）、設定部１１２は、問い合わせを行ったポートに対してポート種別を内部ポートに変更する（ステップＳ１１）。このように結線と設定とに矛盾があれば、実体に合わせて設定を変更することが好ましいこともある。そして処理はステップＳ１５に移行する。
【００３２】
一方、ブロッキングするという設定がなされている場合には、設定部１１２は、問い合わせを行ったポートをブロッキングポートに設定する（ステップＳ１３）。すなわち、使用不可状態に設定する。結線が誤っている場合には、ループが発生するなど問題が発生する可能性もあるのでブロッキングが好ましいこともある。そして処理はステップＳ１５に移行する。
【００３３】
そして、判断部１１１は、未処理のポートが存在するか判断し（ステップＳ１５）、未処理のポートが存在すれば処理はステップＳ３に戻る。一方、未処理のポートが存在しなければ、処理を終了する。
【００３４】
図１１の処理の説明に移行して、判断部１１１は、問い合わせを行ったポートのポート種別が内部ポートと定義されているか判断する（ステップＳ２１）。所定時間内に応答が得られなかったということは外部装置が接続されていることを意味するので、内部ポートとポート種別が定義されていれば定義矛盾が存在することになる。
【００３５】
ポート種別が外部ポートと定義されていれば（ステップＳ２１：Ｎｏルート）、設定部１１２は、問い合わせを行ったポートを、そのままの設定で使用可能状態に設定する（ステップＳ２３）。そして、処理は端子Ｂを介して図１０のステップＳ１５に戻る。
【００３６】
一方、ポート種別が内部ポートと定義されていれば（ステップＳ２１：Ｙｅｓルート）、設定部１１２は、内部ポートの定義矛盾時にブロッキングに設定すると設定されているかを判断する（ステップＳ２５）。ブロッキングしないで実接続に応じて設定することになっている場合、設定部１１２は、問い合わせを行ったポートに対してポート種別を外部ポートに変更する（ステップＳ２７）。このように結線と設定とに矛盾があれば、実体に合わせて設定を変更することが好ましいこともある。そして処理は端子Ｂを介して図１０のステップＳ１５に移行する。
【００３７】
一方、ブロッキングするという設定がなされている場合には、設定部１１２は、問い合わせを行ったポートをブロッキングポートに設定する（ステップＳ２９）。すなわち、使用不可状態に設定する。結線が誤っている場合には、ループが発生するなど問題が発生する可能性もあるのでブロッキングが好ましいこともある。そして処理は端子Ｂを介して図１０のステップＳ１５に移行する。
【００３８】
以上のような処理を実行することで、初期的な設定に拘わらず、実際の結線をベースにポート種別の設定を自動的に行うことができる。
【００３９】
データセンタに置かれるサーバ周辺のネットワーク及び一般的なサーバシステムのネットワークにおいて、サーバの配置数が増えるとサーバ前段に配置されるスイッチの数も増える。そして、たとえFabricスイッチとして論理的に１台のスイッチに見せて管理を簡単化できても、接続ミスやポート定義ミスを減らすことは難しく、また多少定義ミスがあっても動いてしまう場合もあるため、問題箇所の検知に時間がかかって導入コストの増大につながっていた。しかし、上で述べたような処理を実行すればコスト削減につなげることができるようになる。
【００４０】
但し、定義矛盾時にブロッキングが望ましい場合には、ブロッキングを行うこともできる。さらに、実際の結線のみをベースに設定を行うようにしても良い。さらに、隣接装置がFabricスイッチであるか否かの確認は、上で述べた方法ではなく、他の手法があればそれを用いても良い。
【００４１】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるわけではない。例えば、Fabricスイッチ１００における制御部１１０の機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合もある。
【００４２】
処理フローについても処理結果が変わらない限り、処理順番を入れ替えたり、複数ステップを並列実行するようにしても良い。
【００４３】
また、上で述べたFabricスイッチ１００は、図１２に示すように、メモリ２６０１とＣＰＵ２６０３とハードディスク・ドライブ（ＨＤＤ）２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図１２では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００４４】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００４５】
本実施の形態に係るスイッチは、（Ａ）各々他の装置に接続される複数のポートと、（Ｂ）複数のポートの各々について、論理的に統合される複数のスイッチのいずれかに接続されているか否かを判断する判断部と、（Ｃ）判断部による判断結果に基づき、複数のポートの各々についてポート種別又はポート使用可否を設定する設定部とを有する。このようにすれば、Fabricスイッチの設定を自動化することができるようになる。
【００４６】
また、上で述べた判断部が、複数のポートの各々について、論理的に統合される複数のスイッチで解釈される問い合わせを行い、当該問い合わせに対する応答が得られたか否かを判断するようにしても良い。Fabricスイッチでは、論理的に統合されるFabricスイッチ間で所定のフォーマットで通信するため、そのフォーマットにて問い合わせを行う。そうすると、Fabricスイッチ以外の装置は応答できないため、区別できるようになる。
【００４７】
さらに、上で述べた設定部が、判断部により問い合わせに対する応答が得られたと判断されたポートについて、論理的に統合される複数のスイッチに接続されるポートのポート種別を設定するようにしても良い。また、上で述べた設定部が、判断部により問い合わせに対する応答が得られなかったと判断されたポートについて、外部装置又は外部ネットワークに接続されるポートのポート種別を設定するようにしても良い。実際の結線に応じて設定することが好ましい場合に自動的に対応できるようになる。すなわち、定義ミスや誤接続によるFabricの構築不具合やループの発生を回避できるようになる。
【００４８】
さらに、上で述べた設定部が、判断部により問い合わせに対する応答が得られたと判断されたポートについて、予め外部装置又は外部ネットワークに接続されるポートのポート種別が設定されていれば、ポート使用不可を設定するようにしても良い。また、上で述べた設定部が、判断部により問い合わせに対する応答が得られなかったと判断されたポートについて、予め論理的に統合される複数のスイッチに接続されるポートのポート種別が設定されていれば、ポート使用不可を設定するようにしても良い。誤接続によるFabric構築ミスやループ発生を回避できるようになる。
【００４９】
また、上で述べた設定部が、判断部により問い合わせに対する応答が得られたと判断されたポートについて、予め論理的に統合される複数のスイッチに接続されるポートのポート種別が設定されていれば、ポート使用可と取り扱い、判断部により問い合わせに対する応答が得られなかったと判断されたポートについて、予め外部装置又は外部ネットワークに接続されるポートのポート種別が設定されていれば、ポート使用可として取り扱うようにしても良い。
【００５０】
なお、上で述べたような処理をプロセッサに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【図１】
0006004079.tif 000002
【図２】
0006004079.tif 000003
【図３】
0006004079.tif 000004
【図４】
0006004079.tif 000005
【図５】
0006004079.tif 000006
【図６】
0006004079.tif 000007
【図７】
0006004079.tif 000008
【図８】
0006004079.tif 000009
【図９】
0006004079.tif 000010
【図１０】
0006004079.tif 000011
【図１１】
0006004079.tif 000012
【図１２】
0006004079.tif 000013