説明

ネットワークスイッチ及びサーバのVLANIDによる接続の発見方法及び装置

【課題】スイッチに接続するためのサーバの構成を管理する管理コンピュータを提供する。
【解決手段】ターゲットサーバの仮想スイッチに、物理NICと関連する仮想アダプタを作成するために、スイッチのターゲットスイッチポートに接続することを、ターゲットサーバに指示し、すべてのスイッチポートのVLAN IDのリストを取得し、プリセットポリシーに基づいて、リストから1つ以上のVLAN IDを選択し、1つの当該VLAN IDを仮想アダプタに設定し、ターゲットスイッチポートに、VLAN IDが設定されたパケットが送信されるように仮想アダプタを操作することを、ターゲットサーバに指示し、ターゲットスイッチポートに送信されたパケットを、スイッチが認識したら、発見されたVLAN IDを持つターゲットスイッチポートに、仮想アダプタと関連する物理NICをマップする。

【発明の詳細な説明】
【技術分野】
【0001】
0001 本発明は、概してクラウドデータセンタにおいて、スイッチ及びサーバをVLAN(Virtual Local Area Network)で動的に構成する方法及び装置に関する。
【背景技術】
【0002】
0002 クラウドデータセンタには、異なるベンダの数千のサーバ及びスイッチが存在するため、ネットワーク構成が複雑である。ネットワーク、サーバ、またはストレージの管理を担うDCA(Data Center Administrator)が、ネットワークケーブリング及びネットワークスイッチ及びサーバの設定を実施すると、ユーザの要求に従って設計を変更したり、新たな設計を実装したりすることは困難である。ネットワークにはいくつかのVLANが存在する。VLANはイーサネット(登録商標)スイッチに実装され、IEEE802.1Qに準拠する。管理者がイーサネット(登録商標)スイッチにサーバノードを追加する時、管理者はVLANを構成する必要がある。
【0003】
0003 先行技術の特開2007−243740A号公報では、スイッチポートがVLANを端末から発見する方法が開示されている。本発明は、VLAN ID(Virtual network identifier)によって確認されたVLANの使用が可能であるかどうかを、事前に登録してあるVLAN IDを使って確認する。
【0004】
0004 特開2007−243740A号公報では、スイッチポートのVLAN IDを発見する方法が開示されている。本発明は、VLAN ID(Virtual network identifier)によって確認されたVLANの使用が可能であるかどうかを、事前に登録してあるVLAN IDを使って確認する。最悪の場合、例えば0から4,091までのすべてのVLAN IDを、端末が使用しなければならないことがある。したがって、発見されるまで、その管理者は長時間待つことになる。クラウドデータセンタのネットワークにサーバを追加する時に、手作業によるネットワーク構成及びテストを必要としない、効率的な手法をDCAは求めている。
【0005】
0005 米国特許第7,796,613号明細書では、デバイスのポートにおける不整合なVLAN IDを検出する方法が開示されている。その発明では、別のデバイスのターゲットポートから、ある特定のVLAN IDにアクセスすることができるかどうかを確認する。別のデバイスがVLAN IDを付加しないでパケットを送信した場合や、意図していたVLANとは異なるVLANのデバイスに誤って送信した場合、デバイスはユーザにエラーメッセージを送信する。しかし、米国特許第7,796,613号明細書には、スイッチにおける、ホスト及びポートのネットワークアダプタを発見してマッピングし、新たなVLANを設定することについて記載されていない。
【発明の概要】
【0006】
0006 本発明の例示的な実施形態は、ホストのネットワークアダプタが、スイッチに接続されているかどうかを判定するための方法及びシステムを提供する。システムは、サーバホスト、スイッチに接続されたホスト、及びサーバ及びスイッチ用の管理サーバを備える。各スイッチは、スイッチのスイッチポートと、スイッチに接続されているホストのネットワークアダプタのMACアドレスとの間のマッピングを含む、スイッチのMAC(Machine Address Control)アドレステーブルを定期的に更新する。トラフィックがスイッチポートを通過してもよい場合にだけ、スイッチはポートのために関係を更新する。スイッチポートのVLAN番号の1つがトラフィックにタグ付けされている場合を除いて、IEEE802.1Qに準拠するVLAN番号(VLAN ID)がスイッチポートにタグ付けされている時は、トラフィックの通過は許可されない。結果として、スイッチポートと、ホストのネットワークアダプタとの間のマッピングを判定することはできない。
【0007】
0007 特定の実施形態では、スイッチポートと、MACアドレスとの間の欠落したマッピングを判定する方法が開示されている。VLANのリストから選択されたVLANを使用して、各ネットワークアダプタからトラフィックフローを強制的に出し、管理サーバのIEEE802.1Qに準拠するスイッチからMACアドレステーブルに問い合わせる。さらに、この方法は、VLANにおけるホスト/サーバのグループのMACアドレス間で通信を行えるよう、発見されたマッピングのために、発見されたあとに、VLAN IDを設定するという概念を紹介している。本発明では、スイッチ及びサーバと通信を行える管理サーバを使用し、サーバのNIC(Network Interface Card)と、スイッチポートとの間のマッピングを発見し、サーバグループと通信を行えるよう新たなVLANを設定することができる。また、大きいデータセンタのDCAは、管理サーバのNICと、スイッチポートとの間のマッピングの発見を、効率良く自動化することができる。
【0008】
0008 本発明の一態様は、スイッチに接続するための複数のサーバの構成を管理する管理コンピュータであって、前記管理コンピュータは、プロセッサ、メモリ、及びポートディスカバリモジュールを含むものである。前記ポートディスカバリモジュールは、(i)ターゲットサーバの仮想スイッチに、物理NIC(Network Interface Card)と関連する仮想アダプタを作成するために、前記スイッチのターゲットスイッチポートに接続することを、前記複数のサーバの前記ターゲットサーバに指示し、(ii)前記スイッチの、すべてのスイッチポートのVLAN ID(Virtual Local Area Network Identifier)のリストを取得し、(iii)プリセットポリシーに基づいて、前記リストから1つ以上のVLAN IDを選択し、(iv)前記選択された1つ以上のVLAN IDのうち、1つのVLAN IDを前記仮想アダプタに設定し、(v)前記ターゲットサーバから、前記スイッチの前記ターゲットスイッチポートに、前記VLAN IDが設定されたパケットが送信されるように前記仮想アダプタを操作することを、前記ターゲットサーバに指示し、(vi)前記スイッチの、前記すべてのスイッチポートのサーバMAC(Machine Address Control)アドレステーブルを取得し、前記サーバMACアドレステーブルは、前記スイッチに接続された各サーバの、前記物理NIC及び対応するMACアドレスについての情報を提供し、(vii)前記ターゲットスイッチポートに前記設定されたVLAN ID、及び前記スイッチのポート構成テーブルの前記ターゲットスイッチポートのために更新された前記MACアドレスに基づいて、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識したら、前記ポート構成テーブルは、前記MACアドレスのMACアドレスリスト、及び前記スイッチの各スイッチポートのための対応するVLAN IDを含み、前記更新されたMACアドレスは、前記MACアドレスリストのうちの前記ターゲットスイッチポートのための1つの前記MACアドレスであり、次に、発見されたVLAN IDを持つ前記ターゲットスイッチポートに、前記ターゲットサーバの前記仮想アダプタと関連する前記物理NICをマップするために、前記更新されたMACアドレス及び前記ターゲットスイッチポートを使用し、スイッチポートマッピングを更新し、(viii)前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識せず、前記スイッチの前記ポート構成テーブルに、前記ターゲットサーバのNICの前記パケットの前記MACアドレスがあれば、次に、前記仮想アダプタに次のVLAN IDを設定し、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記設定された次のVLAN IDを持つ前記パケットを送信するために前記仮想アダプタを操作することを、前記ターゲットサーバに指示し、(ix)前記発見されたVLAN IDに基づいて、前記ターゲットサーバの前記NICの前記パケットの前記MACアドレスが前記スイッチによって認識されるまで、または前記リストに、前記次のVLAN IDがない場合、(vi)から(viii)までを繰り返す管理コンピュータ。
【0009】
0009 ある実施形態では、スイッチポートマッピングを更新することは、前記スイッチに接続された前記各サーバのサーバ名、前記スイッチに接続された前記サーバの、各物理NICの物理NIC名、前記物理NICに接続された前記スイッチポートのスイッチポート番号、及び前記物理NICに接続された前記スイッチポートのスイッチVLAN IDを含むスイッチポートマッピングテーブルを更新することを含む。前記1つ以上のVLAN IDは、以下の前記プリセットポリシーの1つに基づいて、前記リストから選択される:(1)前記スイッチのすべての前記VLAN IDを選択する、(2)前記サーバに接続された前記スイッチの、アクティブポートだけにあるVLAN IDを選択する、(3)前記サーバに接続された前記スイッチの、任意の前記アクティブポートにあるVLAN IDを1つ選択する。前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識せず、前記リストに前記次のVLAN IDがない場合、次に、前記発見されたVLAN IDがないことを示すエラーメッセージを送信する。
【0010】
0010 特定の実施形態では、前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識したら、前記サーバの接続グループに前記ターゲットサーバを追加するために、前記発見されたVLAN IDを生成し、前記接続グループのために前記1つ以上のVLAN IDを選択し、前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに、前記選択されたVLAN IDを割り当てる。前記ポートディスカバリモジュールは、前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに前記割り当てられたVLAN ID、及び前記対応するMACアドレスを使用して、接続グループテーブルを更新し、前記接続グループテーブルは、各接続グループの前記接続グループの前記サーバ、前記物理NICの対応するサーバMACアドレス、前記割り当てられたVLAN ID、及び前記接続グループが外部ネットワークへ接続するためのものであるか、を含む。前記接続グループのために前記1つ以上のVLAN IDを選択することは、前記接続グループが前記外部ネットワークへ接続するためのものであれば、次に、前記接続グループのために、1つ以上の外部VLAN IDを前記接続グループテーブルから選択することを、管理者に要求し、前記接続グループが前記外部ネットワークへ接続するためのものではなく、選択が自動でない場合、次に、前記接続グループのために、1つ以上の内部VLAN IDを前記接続グループテーブルから選択することを、前記管理者に要求し、前記接続グループが前記外部ネットワークへ接続するためのものではなく、前記選択が自動である場合、次に、前記接続グループのために、前記1つ以上の内部VLAN IDを前記接続グループテーブルから自動的に選択することを含む。
【0011】
0011 本発明の他の態様は、スイッチ、複数のサーバ、及び前記複数のサーバが前記スイッチへ接続する構成を管理する管理コンピュータを含み、前記管理コンピュータは、プロセッサ、メモリ、及びポートディスカバリモジュールを含む。前記スイッチのターゲットスイッチポートに接続される、前記複数のサーバのターゲットサーバは、前記ターゲットサーバの物理NIC(Network Interface Card)と関連する仮想スイッチに仮想アダプタを作成するよう構成される。前記ポートディスカバリモジュールは、前記スイッチのすべてのスイッチポートのVLAN ID(Virtual Local Area Network Identifier)のリストを取得し、プリセットポリシーに基づいて、1つ以上のVLAN IDを前記リストから選択し、前記選択された1つ以上のVLAN IDのうち、1つのVLAN IDを前記仮想アダプタに設定するよう構成される。前記ターゲットサーバは、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記VLAN IDが設定されたパケットが送信されるように前記仮想アダプタを操作するよう構成される。前記ポートディスカバリモジュールは、(a)前記スイッチの、前記すべてのスイッチポートのサーバMAC(Machine Address Control)アドレステーブルを取得し、前記サーバMACアドレステーブルは、前記スイッチに接続された各サーバの、前記物理NIC及び対応するMACアドレスについての情報を提供し、(b)前記ターゲットスイッチポートに前記設定されたVLAN ID、及び前記スイッチのポート構成テーブルの前記ターゲットスイッチポートのために更新されたMACアドレスに基づいて、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識したら、前記ポート構成テーブルは、前記MACアドレスのMACアドレスリスト、及び前記スイッチの各スイッチポートのための対応するVLAN IDを含み、前記更新されたMACアドレスは、前記MACアドレスリストのうちの前記ターゲットスイッチポートのための1つの前記MACアドレスであり、次に、発見されたVLAN IDを持つ前記ターゲットスイッチポートに、前記ターゲットサーバの前記仮想アダプタと関連する前記物理NICをマップするために、前記更新されたMACアドレス及び前記ターゲットスイッチポートを使用し、スイッチポートマッピングを更新し、(c)前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識せず、前記スイッチの前記ポート構成テーブルに、前記ターゲットサーバのNICの前記パケットの前記MACアドレスがあれば、次に、前記仮想アダプタに次のVLAN IDを設定し、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記設定された次のVLAN IDを持つ前記パケットを送信するために前記仮想アダプタを操作することを、前記ターゲットサーバに指示し、(d)前記発見されたVLAN IDに基づいて、前記ターゲットサーバの前記NICの前記パケットの前記MACアドレスが前記スイッチによって認識されるまで、または前記リストに、前記次のVLAN IDがない場合、(a)から(c)までを繰り返すように構成される、情報システム。
【0012】
0012 本発明の他の態様は、(i)ターゲットサーバの仮想スイッチに、物理NIC(Network Interface Card)と関連する仮想アダプタを作成するために、スイッチのターゲットスイッチポートに接続することを、複数のサーバの前記ターゲットサーバに指示することと、(ii)前記スイッチの、すべてのスイッチポートのVLAN ID(Virtual Local Area Network Identifier)のリストを取得することと、(iii)プリセットポリシーに基づいて、前記リストから1つ以上のVLAN IDを選択することと、(iv)前記選択された1つ以上のVLAN IDのうち、1つのVLAN IDを前記仮想アダプタに設定することと、(v)前記ターゲットサーバから、前記スイッチの前記ターゲットスイッチポートに、前記VLAN IDが設定されたパケットが送信されるように前記仮想アダプタを操作することを、前記ターゲットサーバに指示することと、(vi)前記スイッチの、前記すべてのスイッチポートのサーバMAC(Machine Address Control)アドレステーブルを取得し、前記サーバMACアドレステーブルは、前記スイッチに接続された各サーバの、前記物理NIC及び対応するMACアドレスについての情報を提供することと、(vii)前記ターゲットスイッチポートに前記設定されたVLAN ID、及び前記スイッチのポート構成テーブルの前記ターゲットスイッチポートのために更新された前記MACアドレスに基づいて、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識したら、前記ポート構成テーブルは、前記MACアドレスのMACアドレスリスト、及び前記スイッチの各スイッチポートのための対応するVLAN IDを含み、前記更新されたMACアドレスは、前記MACアドレスリストのうちのターゲットスイッチポートのための1つの前記MACアドレスであり、次に、発見されたVLAN IDを持つ前記ターゲットスイッチポートに、前記ターゲットサーバの前記仮想アダプタと関連する前記物理NICをマップするために、前記更新されたMACアドレス及び前記ターゲットスイッチポートを使用し、スイッチポートマッピングを更新することと、(viii)前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識せず、前記スイッチの前記ポート構成テーブルに、前記ターゲットサーバのNICの前記パケットの前記MACアドレスがあれば、次に、前記仮想アダプタに次のVLAN IDを設定し、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記設定された次のVLAN IDを持つ前記パケットを送信するために前記仮想アダプタを操作することを、前記ターゲットサーバに指示することと、(ix)前記発見されたVLAN IDに基づいて、前記ターゲットサーバの前記NICの前記パケットの前記MACアドレスが前記スイッチによって認識されるまで、または前記リストに、前記次のVLAN IDがない場合、(vi)から(viii)までを繰り返すこととを含む、前記スイッチに接続するための前記複数のサーバの構成を管理する方法。
【0013】
0013 本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【0014】
【図1】0014 図1は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。
【図2】0015 図2は、図1のアーキテクチャに、本発明の論理構成を適用したアーキテクチャの一例を示す。
【図3】0016 図3は、スイッチのポート構成のためのポート構成テーブルの一例を示す。
【図4】0017 図4は、管理サーバのNIC MACアドレスのサーバMACアドレステーブルの一例を示す。
【図5】0018 図5は、スイッチの各ポートにおいて発見されたMAC及びVLAN IDの、発見されたサーバ接続テーブルの一例を示す。
【図6】0019 図6は、サーバ、ポート、VLAN間のスイッチポートマッピングテーブルの一例を示す。
【図7】0020 図7は、VLAN IDプールテーブルの一例を示す。
【図8】0021 図8は、サーバにおけるスイッチのポートの、接続グループの接続グループテーブルの一例を示す。
【図9】0022 図9は、ソートされたVLAN IDテーブルの一例を示す。
【図10】0023 図10は、VLANネットワークにアクセスするための、イーサネット(登録商標)のフレーム形式の一例を示す。
【図11】0024 図11は、サーバ追加処理のフローチャートの一例を示す。
【図12】0025 図12は、ポートディスカバリが必要であるかを確認するためのプレステップのフローチャートの一例を示す。
【図13】0026 図13は、管理サーバのポートディスカバリモジュールにおいてポートのディスカバリが実行されるメインポートディスカバリ処理のフローチャートの一例を示す。
【図14】0027 図14は、管理サーバのポートディスカバリモジュールを実行することによって発見されたスイッチのポートに、VLAN IDを割り当てる処理のフローチャートの一例を示す。
【図15】0028 図15は、図14のステップ1402において、VLAN IDを選択する処理のフローチャートの一例を示す。
【図16】0029 図16は、スイッチポートにVLAN IDを割り当てる処理の一例を示す。
【図17】0030 図17は、パケットの送信に失敗した場合に行われる、サーバのMACと、スイッチポートとの間のマッピングのリディスカバリの論理構成を示す。
【図18】0031 図18は、図14のステップ1505において、VLAN IDが自動的に設定されるように、接続グループでVLAN IDを選択する処理のフローチャートの一例を示す。
【図19】0032 図19は、VM(Virtual Machine)を作成する場合に、各VMにVLAN IDを設定する処理の、フローチャートの一例を示す。
【図20】0033 図20は、接続グループにサーバを追加した場合、各VMにVLAN IDを割り当てるシステム構成の一例を示す。
【発明を実施するための形態】
【0015】
0034 以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として(但し限定ではない)示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する(以下に説明し、かつ図面で示される通り)が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示している場合もある。
【0016】
0035 さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は(必ずしもそうではないが)、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【0017】
0036 本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置(ROM)、ランダムアクセスメモリ(RAM)、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等(但し、これらに限定されない)のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
【0018】
0037 以下により詳細に示す本発明の例示的実施形態は、クラウドデータセンタにおいて動的にスイッチ及びサーバをVLANで構成するための装置、方法及びコンピュータプログラムを提供する。
【0019】
0038 例示的な実施形態によると、管理サーバ100は、VLAN IDがタグ付けされているイーサネット(登録商標)パケットが、スイッチに対して発行する、サーバのNICと、IEEE802.1Qに準拠するイーサネット(登録商標)スイッチ200のポートとの間のマッピングを探索する。スイッチには、既知のスイッチトランクタグ、つまり許容されたVLANタグが存在する。本発明のメリットは、サーバに接続グル―プを作成するために、VLANタグを効率的に発見することができることと、スイッチの発見されたポートでは使用されていない、ユーザが指定したVLAN IDを設定することができることである。以下、システム構成の構成要素、構成要素の挙動を示すフローチャート、及び全体的なシステムの働きについて説明する。
【0020】
0039 図1は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。システムは、管理サーバ100、特定の実施形態ではIEEE802.1Qに準拠するイーサネット(登録商標)スイッチである、少なくとも一つのスイッチ200、及びサーバ300(「ホスト」とも呼ぶ)。管理サーバ100及びサーバ300は、パソコンのサーバであってよい。パソコンの各サーバは、CPU、メモリ、ディスク、NIC(Network Interface Card)101を備える。NICは、ポートとしてアクセスすることができる、固有のMAC(Media Access Control)アドレスを持っている。イーサネット(登録商標)スイッチ200は、ポケットプロセッサ、ポート210、及びメモリを備える。イーサネット(登録商標)スイッチ200は、IEEE802.1Qに準拠するVLAN IDを使用して、ポート210間に接続を提供す。ポート210の1つのVLAN IDがトラフィックにタグ付けされている場合を除いて、トラフィックの通過は許可されない。スイッチ200は、各ポートのMACアドレステーブルを定期的に更新する。どのサーバのMACアドレスがアクセスされたかを探索するときに、MACアドレステーブルが使用されてもよい。管理サーバ100及びスイッチ200は管理ラック500に位置している。サーバ300は、計算ラック600に位置している。DCAは、複数の計算ラック600を使用して、計算機能力を向上させることができる。接続に関連すると、管理サーバ100及びサーバ300は、IEEE802.3ab、IEEE802.3z、またはその他のイーサネット(登録商標)フレーム転送可能な規格に準拠するイーサネット(登録商標)銅ケーブルまたはファイバを介して、イーサネット(登録商標)スイッチ200に接続する。また、イーサネット(登録商標)は、インターネットなどの外部ネットワーク810、またはイントラネットなどの企業内ネットワークに、イーサネット(登録商標)を介して接続されてよい。イーサネット(登録商標)スイッチ200は、データセンタ配線ネットワーク820を介してサーバ300に接続する。データセンタ配線ネットワーク820は、VLAN IDのイーサネット(登録商標)パケットが通過することができるケーブルを備える。ケーブルはブリッジケーブルとして、スイッチまたはハブなどを接続することができる。このネットワークは、ポート及びNICを直接接続する、ポイントツーポイントネットワークである。
【0021】
0040 図2は、図1のアーキテクチャに、本発明の論理構成を適用したアーキテクチャの一例を示す。主要な構成要素は、管理サーバ100のポートディスカバリモジュール110である。ポートディスカバリモジュール110は、管理サーバ100のNIC101、スイッチポートマッピングテーブル120、MACアドレステーブル130、図3のポート構成テーブル900に基づく発見されたサーバ接続テーブル140、VLAN IDプールテーブル150、接続グループテーブル160、及びソートされたVLAN IDテーブル170を使用して、本発明を可能にする。以下に、テーブルの詳細を説明する。
【0022】
0041 イーサネット(登録商標)スイッチ200は、ポート番号、ポートのVLAN、及びポートで発見されたMACアドレスの列を含む、図5に図示されているような発見されたサーバ接続テーブル140を備える。DCAは、スイッチの各ポート210に、モードを設定してもよい。モードについては、3種類のモードがある。1種類目はデフォルトモードである。このモードでは、どのようなパケットがどのようなポートを通過することもできる。ほとんどのベンダが、デフォルトモードをデフォルトとして設定している。2種類目はアクセスモードである。このモードでは、ネットワークIDを使用して、DCAが指定したスイッチのポートを、どのようなパケットが通過することができる。例えば、ポート100はスイッチにネットワークIDを1つ持ち、ポート101はネットワークIDを1つ持っている。このような場合、パケットをポート1が受信した場合、VLAN IDにかかわらず、スイッチはパケットをポート101に転送する。ほとんどの場合、DCAはエンドノードを接続するために、アクセスモードを使用する。3種類目は、トランクモードである。トランクモードは802.1QVLAN規格において定義されている。トランクモードでは、イーサネット(登録商標)パケットのVLAN IDに基づいて、VLAN IDを持っているパケットをイーサネット(登録商標)パケットをほかのポート210に送るために、複数のVLAN IDがポートに設定されている。例えば、サーバはVLAN ID1を使用して、パケットをポート100に送信する。VLAN ID1は、ポートのVLAN IDを使用して、パケットを送るためにVLAN ID10によって設定される。スイッチは、ポートのVLAN IDに基づいてパケットを受信する。スイッチはパケットを転送するために、スイッチのほかのポートの同じVLAN IDを探索する。サーバ300またはイーサネット(登録商標)スイッチにおける仮想マシンサーバの仮想スイッチなどのスイッチに接続するトランクリンクのために、トランクモードを使用する。本発明の実施形態は、サーバを仮想マシン走行可能サーバ300として構成する。そのため、サーバに接続されているポートには、トランクモードを設定する必要がある。アクセスポートはVLANパケットをほかのポートに送ることができないため、結果として、アクセスモードのかわりにトランクモードを設定する。設定モードの例として、ポート1(211)に、20、30、40をVLAN IDとして設定する場合、20をVLAN IDとしてポート5(215)に、トランクモードで30をVLAN IDとしてスイッチのポート6(216)に、スイッチ200はポート1のパケットをVLAN ID20と共にポート5に送る。ポート1のパケットを、VLAN ID30と共にポート6に送信する。
【0023】
0042 サーバ300には、いくつかのNICが存在する。図2の実施形態では、4つの異なるNICがある。初めのNIC310は、管理(MGMT:Management)ネットワーク用である。2番目のNIC311は、仮想マシン(VM:Virtual Machine)ネットワーク用である。3番目のNIC312は、移動(ライブ)用である。4番目のNIC313は、クラスタ(Cluster:CLUS)管理ネットワーク用である。スイッチのほかのNICまたはポートと通信することができるよう、各NICはMACアドレスを備えている。NICは仮想スイッチ314(「仮想SW」と表記)に接続されている。仮想スイッチ314は、1台またはそれ以上の各仮想マシン315(「VM」と表記)の仮想アダプタ316及び仮想NIC317に接続されている。仮想アダプタ316は、アダプタを有効にすることによって、VLAN IDを付けたパケットを送信することができる。この実施形態では、仮想アダプタ316を使用して、スイッチのポートとサーバのMACアドレスとの間のマッピングを発見する。仮想NICは、ほかの仮想マシンと通信するための仮想マシンのネットワークインタフェースである。
【0024】
0043 論理接続に関すると、3つの主な接続がある。初めの接続830は、ポート構成を取得し、SSH(Secure Shell)またはtelnetを使用して、スイッチから発見されたポートのMACアドレス管理サーバ100とイーサネット(登録商標)スイッチ200との間の接続である。2つ目の接続831は、アクセスすることができるVLAN IDを発見するために、NICのMACアドレスを取得し、VLANが付加されているパケットを発行することを、サーバに要求する、管理サーバ100と、サーバ300との間の接続である。3つ目のネットワーク832は、スイッチ200とサーバ300との間の接続である。
【0025】
0044 図3は、スイッチ200のポート構成のためのポート構成テーブルの一例を示す。ポート構成テーブル900には、スイッチ200のポート番号901、アクセスまたはトランクとして選択することができるポートモード902、ポートのVLAN ID903、及びMACリスト904の列がある。MACリスト904は、VLAN ID903によって確認された、アクセスすることができるVLANを持つパケットをスイッチが受信したときに構成することができる、MACアドレスのリストである。スイッチ200は、VLAN IDに基づいて、ポート構成テーブル900に設定されている情報を使用して、パケットを送る。
【0026】
0045 図4は、管理サーバ100のNIC MACアドレスのサーバMACアドレステーブル130の一例を示す。MACアドレステーブル130は、サーバノード131、物理NIC名132、及びNIC133のMACアドレスの列を持っている。NIC101の役割を識別するために、ユーザは物理NIC名を設定してもよい。上記で説明している通り、スイッチ200は定期的に各ポートのMACアドレステーブル130を更新し、サーバ300からテーブル情報が収集される。
【0027】
0046 図5は、スイッチ200の各ポートにおいて発見されたMAC及びVLAN IDの、発見されたサーバ接続テーブル140の一例を示す。発見されたサーバ接続テーブル140は、スイッチ200のポート番号141、サーバ300からのディスカバリにおいて使用されるMACアドレス142、及びVLAN ID143の列を含む。VLAN ID143が付加されているイーサネット(登録商標)パケットが到着すると、スイッチ200は各ポートでMACアドレス142を更新し、格納する。管理サーバ100のポートディスカバリモジュール110は、スイッチ200が図3のポート構成テーブル900における、ポート901のMACアドレス904を持っていることを確かめると、発見されたサーバ接続テーブル140を構成する。スイッチ200は、ポート901のMACアドレス列904によって定義される、アクセスすることができるVLANを持つパケットを受信する。以下、詳細を説明する。発見されたサーバ接続テーブル140はスイッチ200及び管理サーバ100に格納されてよい。
【0028】
0047 図6は、サーバ、ポート、VLAN間のスイッチポートマッピングテーブル120の一例を示す。スイッチポートマッピングテーブル120は、サーバ名121、物理NIC名122(図4における「NIC名132」と同等)、スイッチポート番号123、及びスイッチVLAN ID124の列を含む。管理サーバ100のポートディスカバリモジュール110は、図4のサーバMACアドレステーブル130、及び図5の発見されたサーバ接続テーブル140の結果に基づいて、テーブル120を構成する。詳細は、図12及び13のフローチャートに関連して説明されている。
【0029】
0048 図7は、VLAN IDプールテーブル150の一例を示す。管理サーバ100のポートディスカバリモジュール110が、VLAN IDで接続グループを作成するために、管理サーバ100のNIC101と、サーバ300のポートとの間のマッピングを発見すると、VLANプールは新たなVLAN IDを割り当てるために使用される。プールに関連すると、2種類のVLANプールが存在する。1種類は内部VLAN151用であり、もう1種類は外部VLAN152用である。内部VLANは、管理サーバ100を含むサーバ(100、300)間で通信するために存在する。外部VLANは、イントラネットまたはインターネットなどの外部ネットワーク810と通信するために存在する。内部VLAN IDに関連すると、DCAは、スイッチ200において使用されていない、空きVLAN IDのプールを用意しなければならない。ポートディスカバリモジュール110が自動モードで、VLAN IDを生成してもよい(図15のステップ1502及びその説明を参照)。外部VLAN IDに関連すると、DCAは外部ネットワークを、外部VLAN IDがタグ付けされているポートに接続してもよい。またDCAは、GUI(Graphical User Interface)またはCLI(Command Line Interface)から、使用することができるVLAN IDを設定する。
【0030】
0049 図8は、サーバ300におけるスイッチのポート210の、接続グループの接続グループテーブル160の一例を示す。接続グループテーブル160は、接続グループの中で固有の識別子としての接続グループ161、接続グループのサーバ名162、サーバのNICのMACアドレス163、接続グループの外部属性164、VMで走行している接続グループの、接続グループのVMに割り当てるVLAN ID165の数、及び割り当てられたVLAN ID166(VLAN IDを割り当てる処理の説明については、図14を参照)の列を含む。外部属性、ポートディスカバリモジュール110が、外部ネットワークと通信することができる、図7の外部VLAN IDプール152で定義されているVLAN IDを選択したら、サーバのNICは、接続グループの中でほかのサーバと通信する。
【0031】
0050 図9は、ソートされたVLAN IDテーブル170の一例を示す。ソートされたVLAN IDテーブル170は、スイッチ200から収集されたVLAN ID(171)を含む。
【0032】
0051 図10は、VLANネットワークにアクセスするための、イーサネット(登録商標)のフレーム形式の一例を示す。パケットは、イーサネット(登録商標)IまたはIIフレームに基づく。パケットは、サーバのNIC MACアドレスのターゲットを特定する宛先アドレス1010、送信側のソースを特定するソースアドレス1012、及びVLAN IDセグメント1011を含む。主な違いは、VLAN IDフィールド1011があるという点である。スイッチがポートでVLAN IDのパケットを受信すると、スイッチはほかのポートに同じVLAN IDがあるかを探索し、そのポートに受信したパケットを送信する。
【0033】
0052 本発明の特定の実施形態では、DCAが接続グループを外部ネットワーク(例えばインターネット)と接続したい場合、DCAは図7のVLAN IDプールテーブル150によると外部ネットワークアクセスを持つポートに、VLAN IDプール152を外部ネットワークアクセス用に設定する。またDCAは、図8の接続グループテーブル160のサーバに、接続グループを設定する。図8に図示する通り、接続グループの設定はサーバ162、グループのNIC MACアドレス163、求められているネットワークの種類を示す外部ネットワーク164の属性、VLAN ID165の数、及び割り当てられたVLAN ID166である。
【0034】
0053 上記のシステムの構成要素、テーブル、及びパケットフレームは、以下の処理の流れを実行するために、システムによって使用される。
【0035】
0054 図11は、サーバ追加処理のフローチャートの一例を示す。ステップ1101では、DCAはサーバのNICからのイーサネット(登録商標)ケーブルをスイッチ200のターゲットポートに接続する。ステップ1102では、DCAはサーバ及びNICを接続グループに追加する。接続グループがない場合、DCAはサーバ名、NIC MACアドレス、外部接続164の属性、必要なVLAN IDの数を追加し、新たな接続グループを作成する。このステップに関連すると、以下に説明がある図15のステップ1505で説明されている自動モードで使用される。DCAがステップ1504またはステップ1505を使用して、手動モードを実行したい場合、DCAはこの接続グループを設定する必要はない。
【0036】
0055 サーバ追加処理を設定したあと、DCAは管理サーバ100のポートディスカバリモジュール110に、ポートディスカバリフロー、及びVLAN ID#設定フローの実行を開始する。ポートディスカバリモジュール110の処理には、2つの部分がある:プレステップ(図12)及びメインステップ(図13)。ポートディスカバリモジュール110は、図12及び13の通りにNIC及びポートマッピングを探索するため、すべてのNICに対してこの処理を実行する。
【0037】
0056 図12は、ポートディスカバリ110が必要であるかを確認するためのプレステップのフローチャートの一例を示す。ステップ1201では、ポートディスカバリモジュール110のプログラムがサーバノードからMACアドレスを取得する。ステップ1202では、プログラムはすべてのポートに対してMACアドレステーブル130をスイッチ200から取得し、サーバ300及び図4のMACアドレステーブル130を構成する。ステップ1203では、プログラムはターゲットNICのMACアドレスが、収集されたMACアドレステーブル130にあるか確認する。なければ、処理はステップ1204に進む。あれば、アクセスモードにおいて、接続サーバ300とスイッチ200との間に接続があるという根拠、または仮定のもと、処理は終了する。ステップ1204では、プログラムが図13のメインポートディスカバリフローを実行する。
【0038】
0057 図13は、管理サーバ100のポートディスカバリモジュール110においてポートのディスカバリが実行されるメインポートディスカバリ処理のフローチャートの一例を示す。処理は、スイッチ200に接続されるようサーバを追加することを含む(例:図16(a)のサーバ3)。ステップ1301では、ポートディスカバリモジュール110のプログラムが、システムに追加されるよう、仮想アダプタ316(図2を参照)をサーバ/ホストの仮想スイッチに作成し、仮想アダプタを有効にする。以下に説明する通り、スイッチのポート及びサーバのMACアドレスを発見するために、仮想アダプタ316はVLAN IDが付加されたパケットを送信するように処理する。ステップ1302では、プログラムはスイッチ200からすべてのポートのVLAN IDを取得する。リストは、図3のポート構成テーブルにおけるポート901のVLAN ID903に基づく。ステップ1303では、以下のポリシーに基づいてプログラムはVLAN IDを選択し、以下の方法に基づいてVLAN IDをソートする。DCAは、メリット及びデメリットを考慮し、管理サーバのGUIまたはCLIを介して、ディスカバリポリシーを選択するする必要があるかもしれない。ソートされたVLAN ID171は、図9のソートされたVLAN IDテーブル170に格納されている。
【0039】
0058 ポリシー1は、スイッチのすべてのVLAN IDを選択し、ソートする(すべての範囲のVLANではなく、スイッチによって管理されているVLAN ID)。ポリシー1のメリットは、スイッチが特定のVLAN IDに対して適切な処理があったとしても、VLANが見逃されないことである。デメリットは、3つのポリシーの中で、処理時間が最も長いことである。ポリシー2は、サーバにすでに接続されていて、スイッチがアクティブポートとして接続を探索することができる、スイッチにおいてアクティブポートのVLAN IDを選択し、重複を除外することによりVLAN IDを集める。ポリシー2のメリットは、アクティブポートだけが確認されることである。デメリットは、スイッチに適切な処理がある場合、VLAN IDを見逃すことがあることである。ポリシー3では、1つのVLAN IDをスイッチのアクティブポートで選択する。ポリシー3のメリットは、サーバのNICと、スイッチのポートとの間の接続を確認するために、VLAN IDがただ1つだけ使用されるため、ポリシー2よりも速いことである。一方ポリシー3では、見逃されたVLAN IDが存在する可能性がより高くなる。
【0040】
0059 ステップ1304では、リストにVLAN IDがあるか、プログラムが確認する。ある場合、処理はステップ1306に進む。ない場合、処理はステップ1305に進む。ステップ1305では、プログラムはDCAにエラーメッセージを送信する。エラーメッセージは、VLAN IDがない、またはすべてのポートがトランクモードで使用されていないことを示している。ステップ1306では、プログラムは、図9のソートされたVLAN IDテーブル170のソートされたリスト171からVLAN IDを取得し、サーバの追加される仮想アダプタに設定する。ステップ1307では、プログラムは仮想アダプタに割り当てられた物理NICと関連する、ステップ1306のVLAN IDをブロードキャストするために作成された仮想アダプタを、無効にしたり有効にしたりする。つまり、管理サーバによってターゲットスイッチポートを探索する試み、すなわちVLAN IDが付加されたパケットを、スイッチのポートに送信することである(VLAN IDをブロードキャストするために仮想アダプタを無効にしたり/有効にしたりするこのステップの操作は、実装固有である)。図10には、イーサネット(登録商標)パケットフレームの一例が図示している。VLAN IDは、VLAN IDセグメント1011に格納されている。またプログラムは、送信側のソースを、ソースアドレス1012の下に設定する。トランクモードにおいて、スイッチのサーバに接続されたポートに設定された適切なVLAN IDを持つパケットをスイッチが受信したら、スイッチは、パケットを受信したポート143で、受信したMACアドレス142を格納するために、ポート構成テーブル900を更新する(図3を参照)。スイッチの、サーバに接続されていないポートに設定されていない、誤ったVLAN IDを持つパケットをスイッチが受信したら、スイッチはパケットを受信しない。ステップ1308では、すべてのポート用のポート構成テーブル900を、プログラムがスイッチから取得する。ステップ1309では、NICのMACアドレスが、追加されたサーバによってスイッチのサーバ接続テーブル140(図5を参照)に送信されているかを、プログラムが確認する。つまりステップ1307の管理サーバ100によって、スイッチ200から取得したか、すなわちスイッチ200が、追加されるサーバのNICからパケットを認識したかを確認する。認識していれば、処理はステップ1310に進む。この時、スイッチの、発見されたサーバ接続テーブル140に基づく送信側におけるNICのMACアドレスのエントリがあるポートを、ポートディスカバリモジュール110は探索する。認識していなければ、処理はステップ1304に戻る。ステップ1310では、プログラムは仮想アダプタを削除する。ステップ1311では、発見されたVLAN IDに基づいて、スイッチによって認識された、送信されたMACアドレスに基づいて、プログラムは発見されたスイッチポート123を、サーバのターゲットNIC(121、122)用に、図6のスイッチポートマッピングテーブル120に保存する。
【0041】
0060 管理サーバ100のポートディスカバリモジュール110は、追加されるサーバ(例:図16(a)のサーバ3)に、ステップ1301、1307、及び1310を実行することを、また図13のほかのステップを実行することを、命令または指示する。
【0042】
0061 マッピングを発見したら、ポートディスカバリモジュール110は、ターゲットサーバのNICに接続されている発見されたポートに、VLAN IDを設定する必要がある。
【0043】
0062 図14は、管理サーバ100のポートディスカバリモジュール110を実行することによって発見されたスイッチのポートに、VLAN IDを割り当てる処理のフローチャートの一例を示す。処理は、接続グループにターゲットサーバを追加することを含む。ステップ1401では、ポートディスカバリモジュール110のプログラムが、接続グループのターゲットポート用のVLAN IDを選択する(以下に説明されている図15を参照)。ステップ1402では、図6のスイッチポートマッピングテーブル120(ステップ1311で更新された)に基づいて、サーバの接続されたポートをプログラムは選択する。ステップ1403では、スイッチの選択されたポートに、サーバ用に選択されたVLAN IDをプログラムは割り当てる。ステップ1404ではプログラムは、図6におけるスイッチポートマッピングテーブル120のスイッチVLAN ID124に、ステップ1401で選択されたVLAN IDを追加し、図8における接続グループの割り当てられたVLAN ID166を追加する。
【0044】
0063 図15は、図14のステップ1402において、VLAN IDを選択する処理のフローチャートの一例を示す。管理サーバ100のポートディスカバリモジュール110への実行によって、処理は実行される。ステップ1501では、図8における接続グループテーブル160の外部属性164に基づいて、ターゲットサーバが外部ネットワークへの接続を求めているかを、プログラムが確認する。「はい」であれば、処理はステップ1503に進む。「いいえ」であれば、処理はステップ1502に進む。ステップ1503では、図7におけるVLAN IDプールテーブル150の、外部VLAN152のリストまたはプールから、図8における接続グループテーブル160で必要とされるVLAN IDの数165のVLAN IDを選択することを、プログラムはDCAに要求する。処理は終了する。ステップ1502では、VLAN ID選択モードが自動になっているかを、プログラムが確認する。「いいえ」であれば、処理はステップ1504に進む。「はい」であれば、処理はステップ1505に進む。
【0045】
0064 ステップ1505(自動モード)では、プログラムは接続グループのVLAN IDを選択する。処理は終了する。ステップ1504(手動モード)では、(例:図7の内部VLANプール151で提供されている)ターゲット接続グループの内部VLAN IDのリストから、内部VLAN IDを選択することを、プログラムはDCAに要求する。選択するVLAN IDの数は、図8における接続グループテーブル160のVLAN IDの数165によって、定義されている。
【0046】
0065 図18は、図15のステップ1505において、VLAN IDが自動的に設定されるように、接続グループでVLAN IDを選択する処理のフローチャートの一例を示す。ポートディスカバリモジュール110で処理は実行される。ステップ1801では、追加されたターゲットサーバが、接続グループの中で第1のサーバであるか、プログラムが確認する。追加されたサーバが第1であった場合、処理はステップ1802に進む。追加されたサーバが第1ではなかった場合、処理はステップ1803に進む。ステップ1802では、プログラムは、図7の内部VLAN IDプール151からVLAN IDを選択する。VLAN IDの数は、図8における接続グループテーブル160のVLANの数165で定義されている。ステップ1803では、図8における接続グループテーブル160から、追加されたサーバが属する接続グループを、プログラムが選択する。ステップ1804では、接続グループのVLANのリストから、プログラムはVLAN IDを読み出す。処理は終了する。
【0047】
0066 図19は、VMを作成する場合に、各VMにVLAN IDを設定する処理の、フローチャートの一例を示す。ステップ1901では、DCAは、図8の接続グループリストを使用して、ターゲット接続グループに割り当てられたVLAN IDからVLAN IDを選択する。ステップ1902では、DCAは、ターゲットVM用にVLAN IDを設定する。
【0048】
0067 図16に図示する構成を実現するために、上記の実施形態を利用して、上記の処理を実行してもよい。図16は、各スイッチポートにVLAN IDを割り当てる処理の一例を示す。具体的には、図16(a)は、スイッチポートに接続するためのサーバを追加したあとであり、新たなVLAN IDを設定する前のシステム構成を示す。図16(b)は、接続グループに、追加されたサーバを加えるために、新たなVLAN IDを設定したあとのシステム構成を示す。システムは、スイッチ、管理サーバ、及び2台のサーバを備える。サーバは、スイッチのポートに接続し、各ポートは連動するVLAN IDを持っている。
【0049】
0068 例えば、サーバ1は、スイッチのポート2に接続し、そのスイッチポートは、VLAN ID20及び30を設定する。サーバ2は、スイッチのポート5に接続し、そのスイッチポートはVLAN ID20及び30を設定する。サーバ1及びサーバ2は、同じ接続グループの中にある。DCAはポート7に、設定されたVLAN ID71及び72を有する。DCAがポート7にサーバ3を追加すると、管理サーバはVLANグループの単位で、各ポートのVLAN IDのリストを収集し、ポートのVLAN IDを発見するために、第1のVLAN ID(ポート1の20、ポート2の20、ポート7の71)を選択し、上記で説明している通り、ポリシー3の下、20、71のようなVLAN IDの重複を除去する。VLAN ID20、71を付けてパケットを送信することを、管理サーバはサーバ3に命令し、サーバ3によって送信されたパケットが、スイッチのどのポートによって受信されたかを確認する。図20に図示し、以下に説明している通り、図6のスイッチポートマッピングテーブル120の形式で示されているように、管理サーバはスイッチポート及びサーバのNICマッピングを構成する。スイッチVLAN ID124に関連すると、ポートディスカバリモジュール110は接続グループのVLAN IDに基づいてVLAN IDを設定/割り当てる。この例では、接続グループはVLAN ID20、30を持ち、ポートディスカバリモジュールはVLAN ID20、30を、発見されたポート7に設定する。
【0050】
0069 この実施形態では、VLAN IDを設定してから接続グループを確認する処理について説明していない。しかし、接続を確認するために、接続グループのサーバ間でパケットを送信してもよい。
【0051】
0070 図20は、接続グループにサーバを追加した場合、各VMにVLAN IDを割り当てるシステム構成の一例を示す。この例では、接続グループはVLAN ID20、30を持っている。DCAは、追加されたサーバ3のVMに、1つのVLAN IDを割り当てる。そのVMは、VMのローカルサーバの物理NICを介してほかのVMと通信するために、仮想NICを持っている。例えば、サーバ3におけるVM3の仮想NICに、DCAはVLAN ID20を割り当てる。そのあと、VLAN ID20を持つサーバ1のVM1は、VLAN ID20を使用して、サーバ3のVM3と通信することができる。
【0052】
0071 VLANのリディスカバリのもう1つのタイミングとして、パケットに失敗する事態の場合がある。図17は、パケットの送信に失敗した場合に行われる、サーバのMACと、スイッチポートとの間のマッピングのリディスカバリの論理構成を示す。ポートのスイッチVLAN設定を20から30に変更し、20VLAN IDを持つパケットをサーバが送信したら、誤ったVLAN IDであるため、パケットを送信することをスイッチは禁止し、パケットは落とされる。メール、SNMP(Simple Network Management Protocol)、SNMPのトラップ、システムイベントログ、またはその他の通知方法を使用して、管理サーバは、サーバによって送信されたエラーメッセージを受信し、パケットの送信に失敗したサーバのリディスカバリを実行する。処理は、図13に図示している。
【0053】
0072 発明の実施形態によると、DCAがVLAN IDの設定に失敗したり、イーサネット(登録商標)ケーブリングに失敗しても、サーバのNICとサーバのスイッチポート間の接続を一定に保つことができる。
【0054】
0073 当然のことながら、図1に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置(例えば、CD及びDVDドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等)も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、無線ネットワーク、ストレージエリアネットワーク等を含む。
【0055】
0074 説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【0056】
0075 当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置(ハードウェア)を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体(ソフトウェア)上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び/又は暗号化形式で命令を媒体に記憶することができる。
【0057】
0076 上記により、本発明が、クラウドデータセンタにおいて動的にスイッチ及びサーバをVLANで構成するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。


【特許請求の範囲】
【請求項1】
スイッチに接続するための複数のサーバの構成を管理する管理コンピュータであって、前記管理コンピュータは、プロセッサ、メモリ、及びポートディスカバリモジュールを含み、前記ポートディスカバリモジュールは、
(i)ターゲットサーバの仮想スイッチに、物理NIC(Network Interface Card)と関連する仮想アダプタを作成するために、前記スイッチのターゲットスイッチポートに接続することを、前記複数のサーバの前記ターゲットサーバに指示し、
(ii)前記スイッチの、すべてのスイッチポートのVLAN ID(Virtual Local Area Network Identifier)のリストを取得し、
(iii)プリセットポリシーに基づいて、前記リストから1つ以上のVLAN IDを選択し、
(iv)前記選択された1つ以上のVLAN IDのうち、1つのVLAN IDを前記仮想アダプタに設定し、
(v)前記ターゲットサーバから、前記スイッチの前記ターゲットスイッチポートに、前記VLAN IDが設定されたパケットが送信されるように前記仮想アダプタを操作することを、前記ターゲットサーバに指示し、
(vi)前記スイッチの、前記すべてのスイッチポートのサーバMAC(Machine Address Control)アドレステーブルを取得し、前記サーバMACアドレステーブルは、前記スイッチに接続された各サーバの、前記物理NIC及び対応するMACアドレスについての情報を提供し、
(vii)前記ターゲットスイッチポートに前記設定されたVLAN ID、及び前記スイッチのポート構成テーブルの前記ターゲットスイッチポートのために更新された前記MACアドレスに基づいて、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識したら、前記ポート構成テーブルは、前記MACアドレスのMACアドレスリスト、及び前記スイッチの各スイッチポートのための対応するVLAN IDを含み、前記更新されたMACアドレスは、前記MACアドレスリストのうちの前記ターゲットスイッチポートのための1つの前記MACアドレスであり、次に、発見されたVLAN IDを持つ前記ターゲットスイッチポートに、前記ターゲットサーバの前記仮想アダプタと関連する前記物理NICをマップするために、前記更新されたMACアドレス及び前記ターゲットスイッチポートを使用し、スイッチポートマッピングを更新し、
(viii)前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識せず、前記スイッチの前記ポート構成テーブルに、前記ターゲットサーバのNICの前記パケットの前記MACアドレスがあれば、次に、前記仮想アダプタに次のVLAN IDを設定し、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記設定された次のVLAN IDを持つ前記パケットを送信するために前記仮想アダプタを操作することを、前記ターゲットサーバに指示し、
(ix)前記発見されたVLAN IDに基づいて、前記ターゲットサーバの前記NICの前記パケットの前記MACアドレスが前記スイッチによって認識されるまで、または前記リストに、前記次のVLAN IDがない場合、(vi)から(viii)までを繰り返す、管理コンピュータ。
【請求項2】
前記スイッチポートマッピングを更新することは、前記スイッチに接続された前記各サーバのサーバ名、前記スイッチに接続された前記サーバの、各物理NICの物理NIC名、前記物理NICに接続された前記スイッチポートのスイッチポート番号、及び前記物理NICに接続された前記スイッチポートのスイッチVLAN IDを含むスイッチポートマッピングテーブルを更新することを含む、請求項1に記載の管理コンピュータ。
【請求項3】
前記1つ以上のVLAN IDは、以下の前記プリセットポリシーの1つに基づいて、前記リストから選択される:
(1)前記スイッチのすべての前記VLAN IDを選択する、
(2)前記サーバに接続された前記スイッチの、アクティブポートだけにあるVLAN IDを選択する、
(3)前記サーバに接続された前記スイッチの、任意の前記アクティブポートにあるVLAN IDを1つ選択する、請求項1に記載の管理コンピュータ。
【請求項4】
前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識せず、前記リストに前記次のVLAN IDがない場合、次に、前記発見されたVLAN IDがないことを示すエラーメッセージを送信する、請求項1に記載の管理コンピュータ。
【請求項5】
前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識したら、前記サーバの接続グループに前記ターゲットサーバを追加するために、前記発見されたVLAN IDを生成し、
前記接続グループのために前記1つ以上のVLAN IDを選択し、
前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに、前記選択されたVLAN IDを割り当てる、請求項1に記載の管理コンピュータ。
【請求項6】
前記ポートディスカバリモジュールは、前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに前記割り当てられたVLAN ID、及び前記対応するMACアドレスを使用して、接続グループテーブルを更新し、前記接続グループテーブルは、各接続グループの前記接続グループの前記サーバ、前記物理NICの対応するサーバMACアドレス、前記割り当てられたVLAN ID、及び前記接続グループが外部ネットワークへ接続するためのものであるか、を含む、請求項5に記載の管理コンピュータ。
【請求項7】
前記接続グループのために前記1つ以上のVLAN IDを選択することは、
前記接続グループが前記外部ネットワークへ接続するためのものであれば、次に、前記接続グループのために、1つ以上の外部VLAN IDを前記接続グループテーブルから選択することを、管理者に要求し、
前記接続グループが前記外部ネットワークへ接続するためのものではなく、選択が自動でない場合、次に、前記接続グループのために、1つ以上の内部VLAN IDを前記接続グループテーブルから選択することを、前記管理者に要求し、
前記接続グループが前記外部ネットワークへ接続するためのものではなく、前記選択が自動である場合、次に、前記接続グループのために、前記1つ以上の内部VLAN IDを前記接続グループテーブルから自動的に選択することを含む、請求項6に記載の管理コンピュータ。
【請求項8】
スイッチ、
複数のサーバ、及び
前記複数のサーバが前記スイッチへ接続する構成を管理する管理コンピュータを含み、
前記管理コンピュータは、プロセッサ、メモリ、及びポートディスカバリモジュールを含み、
前記スイッチのターゲットスイッチポートに接続される、前記複数のサーバのターゲットサーバは、前記ターゲットサーバの物理NIC(Network Interface Card)と関連する仮想スイッチに仮想アダプタを作成するよう構成され、
前記ポートディスカバリモジュールは、前記スイッチのすべてのスイッチポートのVLAN ID(Virtual Local Area Network Identifier)のリストを取得し、プリセットポリシーに基づいて、1つ以上のVLAN IDを前記リストから選択し、前記選択された1つ以上のVLAN IDのうち、1つのVLAN IDを前記仮想アダプタに設定するよう構成され、
前記ターゲットサーバは、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記VLAN IDが設定されたパケットが送信されるように前記仮想アダプタを操作するよう構成され、
前記ポートディスカバリモジュールは、
(a)前記スイッチの、前記すべてのスイッチポートのサーバMAC(Machine Address Control)アドレステーブルを取得し、前記サーバMACアドレステーブルは、前記スイッチに接続された各サーバの、前記物理NIC及び対応するMACアドレスについての情報を提供し、
(b)前記ターゲットスイッチポートに前記設定されたVLAN ID、及び前記スイッチのポート構成テーブルの前記ターゲットスイッチポートのために更新されたMACアドレスに基づいて、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識したら、前記ポート構成テーブルは、前記MACアドレスのMACアドレスリスト、及び前記スイッチの各スイッチポートのための対応するVLAN IDを含み、前記更新されたMACアドレスは、前記MACアドレスリストのうちの前記ターゲットスイッチポートのための1つの前記MACアドレスであり、次に、発見されたVLAN IDを持つ前記ターゲットスイッチポートに、前記ターゲットサーバの前記仮想アダプタと関連する前記物理NICをマップするために、前記更新されたMACアドレス及び前記ターゲットスイッチポートを使用し、スイッチポートマッピングを更新し、
(c)前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識せず、前記スイッチの前記ポート構成テーブルに、前記ターゲットサーバのNICの前記パケットの前記MACアドレスがあれば、次に、前記仮想アダプタに次のVLAN IDを設定し、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記設定された次のVLAN IDを持つ前記パケットを送信するために前記仮想アダプタを操作することを、前記ターゲットサーバに指示し、
(d)前記発見されたVLAN IDに基づいて、前記ターゲットサーバの前記NICの前記パケットの前記MACアドレスが前記スイッチによって認識されるまで、または前記リストに、前記次のVLAN IDがない場合、(a)から(c)までを繰り返すように構成される、情報システム。
【請求項9】
前記1つ以上の前記VLAN IDは、以下の前記プリセットポリシーの1つに基づいて、前記リストから選択される:
(1)前記スイッチのすべての前記VLAN IDを選択する、
(2)前記サーバに接続された前記スイッチの、アクティブポートだけにあるVLAN IDを選択する、
(3)前記サーバに接続された前記スイッチの、任意の前記アクティブポートにあるVLAN IDを1つ選択する、請求項8に記載の情報システム。
【請求項10】
前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識せず、前記リストに前記次のVLAN IDがない場合、次に、前記発見されたVLAN IDがないことを示すエラーメッセージを送信する、請求項8に記載の情報システム。
【請求項11】
前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識したら、前記サーバの接続グループに前記ターゲットサーバを追加するために、前記発見されたVLAN IDを生成し、
前記接続グループのために前記1つ以上のVLAN IDを選択し、
前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに、前記選択されたVLAN IDを割り当てることを含む、請求項8に記載の情報システム。
【請求項12】
前記ポートディスカバリモジュールは、前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに前記割り当てられたVLAN ID、及び前記対応するMACアドレスを使用して、接続グループテーブルを更新し、前記接続グループテーブルは、各接続グループの前記接続グループの前記サーバ、前記物理NICの対応するサーバMACアドレス、前記割り当てられたVLAN ID、及び前記接続グループが外部ネットワークへ接続するためのものであるか、を含む、請求項11に記載の情報システム。
【請求項13】
前記接続グループのために前記1つ以上のVLAN IDを選択することは、
前記接続グループが前記外部ネットワークへ接続するためのものであれば、次に、前記接続グループのために、1つ以上の外部VLAN IDを前記接続グループテーブルから選択することを、管理者に要求し、
前記接続グループが前記外部ネットワークへ接続するためのものではなく、選択が自動でない場合、次に、前記接続グループのために、1つ以上の内部VLAN IDを前記接続グループテーブルから選択することを、前記管理者に要求し、
前記接続グループが前記外部ネットワークへ接続するためのものではなく、前記選択が自動である場合、次に、前記接続グループのために、前記1つ以上の内部VLAN IDを前記接続グループテーブルから自動的に選択することを含む、請求項12に記載の情報システム。
【請求項14】
(i)ターゲットサーバの仮想スイッチに、物理NIC(Network Interface Card)と関連する仮想アダプタを作成するために、スイッチのターゲットスイッチポートに接続することを、複数のサーバの前記ターゲットサーバに指示すること、
(ii)前記スイッチの、すべてのスイッチポートのVLAN ID(Virtual Local Area Network Identifier)のリストを取得すること、
(iii)プリセットポリシーに基づいて、前記リストから1つ以上のVLAN IDを選択すること、
(iv)前記選択された1つ以上のVLAN IDのうち、1つのVLAN IDを前記仮想アダプタに設定すること、
(v)前記ターゲットサーバから、前記スイッチの前記ターゲットスイッチポートに、前記VLAN IDが設定されたパケットが送信されるように前記仮想アダプタを操作することを、前記ターゲットサーバに指示すること、
(vi)前記スイッチの、前記すべてのスイッチポートのサーバMAC(Machine Address Control)アドレステーブルを取得し、前記サーバMACアドレステーブルは、前記スイッチに接続された各サーバの、前記物理NIC及び対応するMACアドレスについての情報を提供すること、
(vii)前記ターゲットスイッチポートに前記設定されたVLAN ID、及び前記スイッチのポート構成テーブルの前記ターゲットスイッチポートのために更新された前記MACアドレスに基づいて、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識したら、前記ポート構成テーブルは、前記MACアドレスのMACアドレスリスト、及び前記スイッチの各スイッチポートのための対応するVLAN IDを含み、前記更新されたMACアドレスは、前記MACアドレスリストのうちのターゲットスイッチポートのための1つの前記MACアドレスであり、次に、発見されたVLAN IDを持つ前記ターゲットスイッチポートに、前記ターゲットサーバの前記仮想アダプタと関連する前記物理NICをマップするために、前記更新されたMACアドレス及び前記ターゲットスイッチポートを使用し、スイッチポートマッピングを更新すること、
(viii)前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識せず、前記スイッチの前記ポート構成テーブルに、前記ターゲットサーバのNICの前記パケットの前記MACアドレスがあれば、次に、前記仮想アダプタに次のVLAN IDを設定し、前記ターゲットサーバから前記スイッチの前記ターゲットスイッチポートに、前記設定された次のVLAN IDを持つ前記パケットを送信するために前記仮想アダプタを操作することを、前記ターゲットサーバに指示すること、
(ix)前記発見されたVLAN IDに基づいて、前記ターゲットサーバの前記NICの前記パケットの前記MACアドレスが前記スイッチによって認識されるまで、または前記リストに、前記次のVLAN IDがない場合、(vi)から(viii)までを繰り返すことを含む、前記スイッチに接続するための前記複数のサーバの構成を管理する方法。
【請求項15】
前記スイッチポートマッピングを更新することは、前記スイッチに接続された前記各サーバのサーバ名、前記スイッチに接続された前記サーバの、各物理NICの物理NIC名、前記物理NICに接続された前記スイッチポートのスイッチポート番号、及び前記物理NICに接続された前記スイッチポートのスイッチVLAN IDを含むスイッチポートマッピングテーブルを更新することを含む、請求項14に記載の方法。
【請求項16】
前記1つ以上のVLAN IDは、以下の前記プリセットポリシーの1つに基づいて、前記リストから選択される:
(1)前記スイッチのすべての前記VLAN IDを選択すること、
(2)前記サーバに接続された前記スイッチの、アクティブポートだけにあるVLAN IDを選択すること、
(3)前記サーバに接続された前記スイッチの、任意の前記アクティブポートにあるVLAN IDを1つ選択することを含む、請求項14に記載の方法。
【請求項17】
前記ポートディスカバリモジュールは、前記ターゲットスイッチポートに送信された前記パケットを、前記スイッチが認識せず、前記リストに前記次のVLAN IDがない場合、次に、前記発見されたVLAN IDがないことを示すエラーメッセージを送信することをさらに含む、請求項14に記載の方法。
【請求項18】
前記ターゲットスイッチポートに送信された前記パケットを前記スイッチが認識したら、前記サーバの接続グループに前記ターゲットサーバを追加するために、前記発見されたVLAN IDを生成すること、
前記接続グループのために前記1つ以上のVLAN IDを選択すること、
前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに、前記選択されたVLAN IDを割り当てることをさらに含む、請求項14に記載の方法。
【請求項19】
前記ターゲットサーバの前記物理NICに接続されている前記ターゲットスイッチポートに前記割り当てられたVLAN ID、及び前記対応するMACアドレスを使用して、接続グループテーブルを更新し、前記接続グループテーブルは、各接続グループの前記接続グループの前記サーバ、前記物理NICの対応するサーバMACアドレス、前記割り当てられたVLAN ID、及び前記接続グループが外部ネットワークへ接続するためのものであるか、をさらに含む、請求項18に記載の方法。
【請求項20】
前記接続グループのために前記1つ以上のVLAN IDを選択することは、
前記接続グループが前記外部ネットワークへ接続するためのものであれば、次に、前記接続グループのために、1つ以上の外部VLAN IDを前記接続グループテーブルから選択することを、管理者に要求すること、
前記接続グループが前記外部ネットワークへ接続するためのものではなく、選択が自動でない場合、次に、前記接続グループのために、1つ以上の内部VLAN IDを前記接続グループテーブルから選択することを、前記管理者に要求すること、
前記接続グループが前記外部ネットワークへ接続するためのものではなく、前記選択が自動である場合、次に、前記接続グループのために、前記1つ以上の内部VLAN IDを前記接続グループテーブルから自動的に選択することを含む、請求項19に記載の方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−244621(P2012−244621A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−275457(P2011−275457)
【出願日】平成23年12月16日(2011.12.16)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】