説明

情報処理装置、情報処理システム、通信中継装置および通信制御方法

【課題】一つの計算機においてLPAR間通信を効率良く行うことは難しい。
【解決手段】同一計算機内の2つのLPAR1、LPAR2が互いに内部的な通信を行う。LPAR1のプロトコルスタック20aは、ドライバ40内に設けられたLPAR1により参照されるメモリ空間にフレーム52aを生成する。ドライバ40は、LPAR1のメモリ空間50aに生成されたフレーム52aをレイヤ2スイッチ200の通信ポートにDMA転送する。レイヤ2スイッチ200の通信ポートは、ドライバ40から入力されたフレームをドライバ40にループバックする。このとき、ドライバ40に対して割り込みがかかり、レイヤ2スイッチ200の通信ポートからドライバ40に当該フレームがDMA転送され、LPAR2から参照可能なメモリ空間50bにフレーム52bが受信される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数の論理区画の間でデータをやりとりするための情報処理装置、情報処理システム、通信中継装置および通信制御方法に関する。
【背景技術】
【0002】
一つの計算機システムのCPU、メモリ、I/Oデバイスなどの計算資源を複数の論理区画(ロジカルパーティション)に分割し、各論理区画上にオペレーティングシステムを独立に動作させる技術が知られている。このように論理区画化された計算機システムでは、通常、論理区画の制御を行うハイパーバイザと呼ばれる基本プログラムが動作する。ハイパーバイザは、各論理区画に計算資源の割り当て制御を行い、各論理区画を一つの仮想的な計算機として動作させる。
【0003】
この論理区画化(ロジカルパーティショニング)技術は、一台の計算機で複数の異なるオペレーティングシステムを動作させるマルチオペレーティングシステムを実現する目的や、一台の計算機を仮想的な並列計算機に見立て、並列処理のアプリケーションを実行する目的などに利用される。
【発明の開示】
【発明が解決しようとする課題】
【0004】
このような複数の論理区画を有するシステムにおいて、論理区画間でデータのやりとりをするためには、論理区画間の通信機能を独自に設計し、実装する必要があり、開発コストがかかる。また、独自に設計された通信機能を用いてオペレーティングシステムやドライバなどの基本ソフトウエアや並列処理アプリケーションを開発することになるため、ソフトウエア開発者の負担も増える。
【0005】
また、論理区画間でデータをやりとりするためには、ある論理区画が参照するメモリ空間から他の論理区画が参照するメモリ空間へデータをコピーする必要があるため、コピーによるオーバーヘッドが大きいという問題もある。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、複数の論理区画間で効率良くデータをやりとりすることのできる論理区画間の通信技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様の情報処理装置は、計算資源が論理的に分割されて割り当てられた複数の論理区画を有し、各論理区画においてオペレーティングシステムが独立に動作可能に構成された情報処理装置であって、それぞれ個別の物理アドレスを割り当てられた各論理区画から通信要求を受け取り、データの送受信制御を行うネットワークドライバを含む。前記ネットワークドライバは、一の論理区画から入力されるフレームを宛先アドレスを参照することなく通信中継装置に送信し、前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画に渡す。
【0008】
ここで、前記一の論理区画から前記ネットワークドライバに入力されるフレームは、他の論理区画に渡されるべきデータであってもよく、当該情報装置以外の外部装置に送信されるべきデータであってもよく、前記ネットワークドライバは、両者のデータを区別することなく、通信中継装置に送出する。これによれば、前記一の論理区画から前記ネットワークドライバに入力されるフレームが、他の論理区画に渡されるべきデータである場合、前記ネットワークドライバは、前記通信中継装置からループバックされる当該データを受信フレームとして受信することにより、当該データを前記他の論理区画に渡すことができ、また、前記一の論理区画から前記ネットワークドライバに入力されるフレームが、当該情報装置以外の外部装置に送信されるべきデータである場合、前記ネットワークドライバは、前記通信中継装置を介して当該データを前記外部装置に送信することができる。
【0009】
本発明の別の態様は、情報処理システムである。この情報処理システムは、計算資源が論理的に分割されて割り当てられた複数の論理区画を有し、各論理区画においてオペレーティングシステムが独立に動作可能に構成された情報処理装置と、前記情報処理装置が接続された通信中継装置とを含む情報処理システムである。前記情報処理装置は、それぞれ個別の物理アドレスを割り当てられた各論理区画から通信要求を受け取り、データの送受信制御を行うネットワークドライバを含む。前記通信中継装置は、前記情報処理装置から通信ポートに入力されるフレームを前記情報処理装置にループバックするポート制御部を含む。前記ネットワークドライバは、一の論理区画から受け取るフレームを宛先アドレスを参照することなく通信中継装置に送信し、前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画に渡す。
【0010】
本発明のさらに別の態様は、通信中継装置である。この装置は、通信ポートに情報処理装置が接続された通信中継装置であって、前記通信ポートに対応づけてループバックの対象となる物理アドレスをあらかじめ記憶したアドレステーブルと、前記情報処理装置から前記通信ポートに入力されたフレームの宛先物理アドレスが前記アドレステーブルに格納されたループバックの対象となる物理アドレスに一致する場合に、その入力フレームを前記情報処理装置にループバックするポート制御部とを含む。
【0011】
本発明のさらに別の態様は、通信制御方法である。この方法は、計算資源が論理的に分割されて割り当てられ、それぞれ個別の物理アドレスが割り当てられた複数の論理区画の間の通信制御方法であって、一の論理区画から受け取るフレームを宛先アドレスを参照することなく前記一の論理区画のメモリ空間から通信中継装置に転送するステップと、前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画のメモリ空間に転送するステップとを含む。
【0012】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0013】
本発明によれば、複数の論理区画間の通信を高速に行うことができる。
【発明を実施するための最良の形態】
【0014】
図1は、実施の形態に係る情報処理システムの構成図である。情報処理システムは、情報処理装置100と、情報処理装置100が接続されたレイヤ2スイッチ200とを含む。
【0015】
情報処理装置100は、プロセッサ、メモリ、I/Oデバイスなどの計算資源を有する一台の計算機である。情報処理装置100は、複数の論理区画(以下、「LPAR(logical partition)」という)10a、10b、…、10nに分割され、各LPAR10a〜10nに計算資源が割り当てられる。各LPAR上では割り当てられた計算資源を利用してオペレーティングシステムが互いに独立に動作する。
【0016】
各LPAR10a〜10nには、ネットワークを介した通信に必要なMAC(Media Access Control)アドレス、IP(Internet Protocol)アドレスなど、各LPAR10a〜10nを一意に識別するためのアドレス情報が個別に割り当てられている。
【0017】
各LPAR10a〜10nはネットワークプロトコルスタックをもち、ネットワークプロトコルにしたがってMACアドレスやIPアドレスを宛先アドレスに指定したフレームを生成し、ネットワークドライバ(以下、単に「ドライバ」と呼ぶ)40に渡す。
【0018】
ここでは、IPアドレスからイーサネット(登録商標)の物理アドレスであるMACアドレスを求めるためのARP(Address Resolution Protocol)などの手順は省略し、簡単のため、ネットワークプロトコルスタックによってMACアドレス宛のイーサネットフレームが生成されるとして説明する。
【0019】
ドライバ40は、複数のLPAR10a〜10nからの通信要求を調停し、各LPAR10a〜10nから渡されたフレームをレイヤ2スイッチ200にDMA(Direct Memory Access)転送により送信する。レイヤ2スイッチ200は、ドライバ40から入力されたフレームを宛先アドレスにしたがって転送する。また、ドライバ40は、レイヤ2スイッチ200から割り込みを受けて、各LPAR10a〜10n宛のフレームをレイヤ2スイッチ200からDMA転送により受信し、受信フレームを宛先のLPARのネットワークプロトコルスタックに渡す。
【0020】
ドライバ40は、複数のLPAR10a〜10nに計算資源を割り当てる制御を行うハイパーバイザと呼ばれる基本システム内に設けられ、常時動作するものであってもよく、あるいは、ドライバ40は、1つのLPARとして計算資源を割り当てられてもよい。後者の場合、ドライバ40は、他のLPAR10a〜10nにおけるオペレーティングシステムと同様に、時分割で動作する1つのプロセスとなる。
【0021】
レイヤ2スイッチ200は、通信中継装置の一例であり、OSI参照モデルの第2レイヤであるデータリンク層において、データの送受信単位であるフレームの宛先アドレスを判定してフレームを転送する。データリンク層のプロトコルとしてMAC(メディアアクセス制御)があり、MACアドレスによりフレームの宛先アドレスを判定する通信中継装置は、一般にスイッチングハブと呼ばれている。スイッチングハブは、ブリッジとして動作し、端末から通信ポートに入力されたフレームのヘッダを解析して宛先アドレスを検出し、宛先の端末が接続された通信ポートにフレームを転送し、その転送先の通信ポートからフレームを出力する。スイッチングハブには、フレームの宛先アドレスを解析するために入力されたフレームを一時的に蓄積するバッファが設けられる。
【0022】
レイヤ2スイッチ200には、複数の情報処理装置が接続され、それらの情報処理装置は、レイヤ2スイッチ200を介して互いに通信することができる。レイヤ2スイッチ200に接続される各情報処理装置は、上述のように論理区画化されていてもよく、論理区画化されていない通常の計算機であってもよい。また、レイヤ2スイッチ200は、さらに他のレイヤ2スイッチとカスケード接続され、他のレイヤ2スイッチに接続された情報処理装置との通信を中継することができる。
【0023】
本実施の形態の情報処理システムでは、情報処理装置100内の各LPAR10a〜10nが外部の他の情報処理装置との間でデータのやりとりをする場合に、レイヤ2スイッチ200を介して通信することはもちろんのこと、情報処理装置100内の複数のLPAR10a〜10nの間で内部的にデータをやりとりする場合でも、レイヤ2スイッチ200を介して通信する。その目的のために、本実施の形態のレイヤ2スイッチ200には、通常のスイッチング機能と併用されるループバック機能が備えられる。
【0024】
まず、比較のために、図2(a)を参照して、レイヤ2スイッチ200を介さずに、情報処理装置100の複数のLPAR10a〜10nが互いに通信する方法を説明する。ここでは、2つのLPAR10a、10b(「LPAR1」、「LPAR2」と呼ぶ)の間で内部的な通信を行う場合を説明する。
【0025】
LPAR1のネットワークプロトコルスタック(以下、単に「プロトコルスタック」と呼ぶ)20aは、ドライバ40内に設けられたLPAR1により参照されるメモリ空間にフレーム52aを生成する。ドライバ40は、LPAR1により生成されたフレーム52aをLPAR2のプロトコルスタック20bに渡すために、LPAR2から参照することのできるメモリ空間50bに当該フレーム52aをコピーする。コピーされたフレームを符号54bで示す。
【0026】
LPAR2のプロトコルスタック20bは、ドライバ40からの通知を受けて、LPAR2が参照可能なメモリ空間50bから、コピーされたフレーム54bを読み出し、プロトコル処理する。
【0027】
このように、2つのLPAR1、LPAR2の間でデータをやりとりする際、ドライバ40は、送信元のLPAR1が参照するメモリ空間50aから送信先のLPAR2が参照するメモリ空間50bへのメモリ間コピーを行う必要があり、コピー処理のオーバーヘッドが大きい。
【0028】
また、送信元のLPAR1は、当該情報処理装置100以外の外部の装置と通信する場合もあるため、ドライバ40は、LPAR1のプロトコルスタック20aが生成するフレームの宛先MACアドレスを調べて、当該情報処理装置100内の他のLPAR宛のフレームであるか、当該情報処理装置100以外の外部の装置宛のフレームであるかを判別する必要がある。ドライバ40は、宛先MACアドレスの判別結果に応じて、内部のLPAR宛のフレームであれば、メモリ間コピーを行い、外部の装置宛のフレームであれば、レイヤ2スイッチ200にDMA転送することになる。
【0029】
このように、ドライバ40は、情報処理装置100内の各LPARから受け取ったフレームの宛先MACアドレスを逐一調べ、内部の通信であるか、外部の通信であるかを判別することになるため、処理コストが非常に大きく、情報処理装置100のプロセッサ資源がこの判別処理のために消費されてしまう。
【0030】
そこで、本実施の形態では、メモリ間コピーを使用せずに、レイヤ2スイッチ200のループバック機能を利用して、LPAR1のフレームをLPAR2にDMA転送により受信させる。
【0031】
図2(b)は、レイヤ2スイッチ200のループバック機能を利用して、2つのLPAR1、LPAR2間でデータのやりとりをする方法を説明する図である。
【0032】
ドライバ40は、LPAR1のプロトコルスタック20aがメモリ空間50aに生成したフレーム52aをレイヤ2スイッチ200の通信ポートに宛先MACアドレスを参照することなくDMA転送する。レイヤ2スイッチ200の通信ポートは、ドライバ40から入力されたフレームをドライバ40にループバックする。このとき、ドライバ40に対して割り込みがかかり、レイヤ2スイッチ200の通信ポートからドライバ40に当該フレームがDMA転送され、LPAR2から参照可能なメモリ空間50bにフレーム54bが受信される。
【0033】
本実施の形態のレイヤ2スイッチ200は、情報処理装置100内の各LPAR10a〜10nのMACアドレスをループバック対象のアドレスとしてあらかじめテーブルに記憶しており、情報処理装置100が接続される通信ポートにフレームが入力されると、その入力フレームの宛先MACアドレスがループバック対象のアドレスであるかどうかを判定し、ループバック対象のアドレスである場合に、入力されたフレームをそのまま情報処理装置100にループバックする。
【0034】
なお、ここでいうループバックとは、入力されたすべてのフレームを反射させることではなく、宛先MACアドレスがあらかじめ登録されたアドレスである場合に限り、入力フレームを反射させることを意味しており、通常のループバックとは異なる意味で用いられていることに留意する。
【0035】
レイヤ2スイッチ200のループバック機能を利用すれば、メモリ間コピーが発生せず、ハードウエアのDMA転送によって、入力されたフレームが送信元のLPAR1のメモリ空間50aから送信先のLPAR2のメモリ空間50bに転送されるため、情報処理装置100のプロセッサ資源を消費することがない。
【0036】
また、ドライバ40は、情報処理装置100内の複数のLPAR間で内部的に送信されるフレームであるか、あるLPARから当該情報処理装置100以外の外部装置に送信されるフレームであるかを区別することなく、すべての生成されたフレームを単にレイヤ2スイッチ200に送信し、レイヤ2スイッチ200から割り込みがかかった場合に情報処理装置100内のいずれかのLPAR宛のフレームを受信すればよい。このように、ドライバ40は、内部通信か、外部通信かを区別することなく、レイヤ2スイッチ200に対してフレームの送受信を行うだけでよく、ドライバ40においてフレームの宛先MACアドレスを判定する処理は一切必要とされない。
【0037】
図2(b)で説明したLPAR間通信を実現するために、本実施の形態のレイヤ2スイッチ200には、通常のスイッチング機能にループバック機能が追加されて、スイッチング機能が拡張されている。
【0038】
図3は、ドライバ40の構成を示す図である。ドライバ40内には、複数のLPAR10a〜10nのそれぞれに対応するメモリ空間50a〜50nが設けられる。各メモリ空間50a〜50nには、各LPAR10a〜10nのプロトコルスタック20a〜20nにより送信フレーム52a〜52nが生成される。
【0039】
情報処理装置100とレイヤ2スイッチ200との間に物理的には1つの通信ポートしか存在しないため、ドライバ40に設けられた調停部60は、複数のLPAR10a〜10nからの通信要求を調停する。具体的には、調停部60は、各メモリ空間50a〜50nに生成された送信フレーム52a〜52nの送出要求を調停し、いずれか1つの送信フレームを物理層インタフェース70に与える。たとえば、調停部60は、送信フレーム52a〜52nを到着順もしくは優先度順に物理層インタフェース70に与える。
【0040】
物理層インタフェース70は、レイヤ2スイッチ200の通信ポートに対してフレームを入出力するためのインタフェースである。物理層インタフェース70は、調停部60から与えられたフレームをレイヤ2スイッチ200の通信ポートに対して送出する。また、物理層インタフェース70は、レイヤ2スイッチ200の通信ポートから入力されるフレームを宛先MACアドレスにもとづいて対応するメモリ空間(符号50a〜50nのいずれか)にDMA転送する。受信時のDMA転送により、各メモリ空間50a〜50nに受信フレーム54a〜54nが形成され、対応するLPAR10a〜10nのプロトコルスタック20a〜20nに渡される。
【0041】
ここで、調停部60は、LPAR10a〜10nから入力されるフレームが、情報処理装置100内の他のLPAR宛のフレームであるか、情報処理装置100以外の外部装置宛に送信されるフレームであるかを区別することなく、入力されたフレームをすべて物理層インタフェース70に与え、物理層インタフェース70からレイヤ2スイッチ200に送出させる。言い換えれば、調停部60は、LPAR10a〜10nから入力される送信フレームの宛先MACアドレスを調べることなく、送信フレームを物理層インタフェース70に与える。また、フレームをレイヤ2スイッチ200から受信した際は、物理層インタフェース70が宛先MACアドレスによってDMA転送先を決め、宛先MACアドレスに対応するメモリ空間に受信フレームを直接DMA転送するため、ドライバ40がソフトウエア処理によって宛先MACアドレスを調べる必要はない。
【0042】
次に、レイヤ2スイッチ200の機能構成を説明する。まず、図4を参照して、レイヤ2スイッチ200の通常のスイッチング機能を説明し、次に、図5を参照して、レイヤ2スイッチ200のスイッチング機能にループバック機能が追加されて機能拡張されることを説明する。
【0043】
図4は、比較のために、レイヤ2スイッチをカスケード接続した通常の構成を示す。第1のレイヤ2スイッチ201のポートA(符号211)には、第2のレイヤ2スイッチ202がカスケード接続されている。第2のレイヤ2スイッチ202のポートA、ポートB、ポートCには、それぞれ計算機101、102、103(以下、それぞれ「PC1」、「PC2」、「PC3」と呼ぶ)が接続されている。PC1、PC2、PC3のMACアドレスは、それぞれMAC1、MAC2、MAC3であるとする。
【0044】
第1のレイヤ2スイッチ201のポートB(符号212)には、計算機104(「PC4」)が接続され、ポートC(符号213)には、計算機105(「PC5」)が接続されている。PC4、PC5のMACアドレスは、それぞれMAC4、MAC5であるとする。
【0045】
第1のレイヤ2スイッチ201は、ポート毎にそのポートに接続されている計算機のMACアドレスをMACアドレステーブルに記憶している。第1のレイヤ2スイッチ201のポートAには、第2のレイヤ2スイッチ202を経由してPC1、PC2およびPC3が接続されているため、MACアドレステーブルには、ポートAに対応づけてMAC1、MAC2およびMAC3が格納される(符号221)。
【0046】
第1のレイヤ2スイッチ201のポートBにはPC4が接続されているため、MACアドレステーブルには、ポートBに対応づけてMAC4が格納される(符号222)。また、ポートCにはPC5が接続されているため、MACアドレステーブルには、ポートCに対応づけてMAC5が格納される(符号223)。
【0047】
MACアドレステーブルは、各ポートに計算機が接続されたときに自動的に生成される。計算機が最初にポートに接続されたときにフレームをポートに送信することにより、計算機のMACアドレスが取得される。異なる計算機が新たにポートに接続されたときは、その計算機のMACアドレスが取得され、MACアドレステーブルが更新される。ポートに他のレイヤ2スイッチがカスケード接続されているときは、そのカスケード接続されたレイヤ2スイッチの各ポートに接続された計算機のMACアドレスがすべて取得されて、MACアドレステーブルに格納される。
【0048】
第1のレイヤ2スイッチ201は、あるポートにフレームが入力されると、入力フレームの宛先MACアドレスを検出し、MACアドレステーブルを参照して、宛先MACアドレスに対応するポートにフレームを転送し、転送先の出力ポートからフレームを出力する。
【0049】
たとえば、第1のレイヤ2スイッチ201は、入力フレームの宛先MACアドレスがMAC1〜MAC3のいずれかであるときは、ポートAに入力フレームを転送してポートAから出力し、入力フレームの宛先MACアドレスがMAC4またはMAC5であれば、ポートBまたはポートCにフレームを転送し出力する。
【0050】
図5は、本実施の形態のレイヤ2スイッチ200に情報処理装置100を接続した構成を示す。
【0051】
図4と異なる点は、レイヤ2スイッチ200のポートAには、複数のLPARを内部に含む情報処理装置100が接続されていることである。ここでは、情報処理装置100は、3つのLPAR10a〜10c(「LPAR1」、「LPAR2」、「LPAR3」)を含み、それぞれのMACアドレスはMAC1〜MAC3であるとする。
【0052】
レイヤ2スイッチ200のMACアドレステーブルには、ポートAに対応づけてLPAR1〜LPAR3のMACアドレスであるMAC1〜MAC3があらかじめ登録される(符号221)。これは、情報処理装置100のドライバ40からレイヤ2スイッチ200を操作することにより、ユーザが手動で登録してもよい。あるいは、LPAR1〜LPAR3がフレームをポートAに送信することにより、各LPARのMACアドレスがポートAにおいて取得され、MACアドレステーブルに自動登録されてもよい。
【0053】
レイヤ2スイッチ200のポートAに設けられるポート制御部は、情報処理装置100からポートAにフレームが入力されると、入力フレームの宛先MACアドレスを取得し、MACアドレステーブルを参照して、その宛先MACアドレスが対応づけられたポート番号(「宛先ポート」という)を取得する。ポートAにはLPAR1〜LPAR3が接続されているため、入力フレームの宛先MACアドレスがポートAに対応づけられたMAC1〜MAC3のいずれかに一致する場合があり、そのときは、ポートAのポート制御部は、入力フレームをそのまま情報処理装置100にループバックする。MACアドレステーブルにおいて入力フレームの宛先MACアドレスが、ポートA以外のポートに対応づけられている場合、ポートAのポート制御部は、入力フレームをその宛先ポートに転送する。
【0054】
また、ポートAに設けられたポート制御部は、他のポートから当該ポートAに転送されたフレームについても、その転送フレームの宛先アドレスはMAC1〜MAC3のいずれかであることから、情報処理装置100に送信する。
【0055】
通常の計算機が接続されているポートBおよびポートCに入力されるフレームの宛先MACアドレスは、自ポートを指さしていることはないので、ポートBおよびポートCにそれぞれ設けられるポート制御部は、通常のスイッチング機能にしたがって、MACアドレステーブルを参照して、入力フレームの宛先MACアドレスに対応するポート番号、すなわち宛先ポートを取得し、入力フレームをその宛先ポートに転送する。
【0056】
各ポートに設けられるポート制御部の詳しい構成と動作については後述する。
【0057】
これにより、情報処理装置100の各LPAR1〜3が当該情報処理装置100内の他のLPARと内部的に通信するために、レイヤ2スイッチ200のポートAに入力したフレームは、レイヤ2スイッチ200のポートAにおいてそのままループバックされ、情報処理装置100の宛先のLPARにDMA転送により受信される。また、外部装置から当該情報処理装置100内のいずれかのLPARに送信されたフレームについても、通常通り、ポートAから情報処理装置100の宛先のLPARにDMA転送により受信される。
【0058】
また、情報処理装置100の各LPAR1〜3が外部装置に送信するフレームは、ポートAに入力され、レイヤ2スイッチ200において宛先MACアドレスに対応するポートに転送され、転送先のポートから出力される。これにより、情報処理装置100の各LPAR1〜3は、通常通り、外部装置とも通信を行うことができる。
【0059】
図4の通常のレイヤ2スイッチ201と、図5の本実施の形態のレイヤ2スイッチ200の構成を比較すれば、どちらも各ポートに対応づけてMACアドレスを登録するためのMACアドレステーブルを有するから、通常のレイヤ2スイッチのMACアドレステーブルの構成をそのまま利用して、図5のループバック機能を実現することができる。
【0060】
図5のレイヤ2スイッチ200は、図4で説明した通常のスイッチング機能の他に、ループバック機能をもつように機能拡張されており、ループバック機能がオンに設定されたポートにおいては、そのポートに入力されたフレームの宛先MACアドレスが、MACアドレステーブルにおいて当該ポートに対応づけられている場合に、そのフレームをループバックする機能を有する。
【0061】
通常のレイヤ2スイッチでは、MACアドレステーブルは転送先を決めるために参照されるだけであり、入力ポートに自ポート宛のフレームが入力されることは想定されていない。MACアドレステーブルにおいて各ポートに対応づけて登録されているのは、各ポートに接続されている端末のMACアドレスであり、その端末は自身を宛先とするフレームをポートに入力することは、テスト目的以外ではありえないからである。
【0062】
それに対して、本実施の形態のレイヤ2スイッチ200では、ポートには、複数のLPARを有する情報処理装置100が接続されることがあり、MACアドレステーブルにおいてそのポートに対応づけて複数のLPARのMACアドレスが登録される。情報処理装置100が接続されたポートには、いずれかのLPARのMACアドレスを宛先MACアドレスとするフレームが入力されることが想定され、その場合は、入力フレームを単にループバックすればよい。したがって、本実施の形態のレイヤ2スイッチ200は、通常のレイヤ2スイッチのスイッチング機能にループバック機能を付加することで容易に実装することができる。
【0063】
なお、通常のネットワークデバイスで構成される物理層(PHY)には、テスト目的でループバック機能を有するものが存在するが、これはあくまでもテスト目的で提供されており、ループバックモードに設定すると、外部と通信することができず、本実施の形態のレイヤ2スイッチ200のように外部との通信も行い、かつ、LPAR間の内部通信の場合にはループバックを行うという機能は提供されていない。
【0064】
次に、情報処理装置100の各LPARから送信されるフレームがブロードキャストまたはマルチキャストである場合について説明する。情報処理装置100のいずれかのLPARがブロードキャストまたはマルチキャストのフレームを送信する場合、そのフレームは、ブロードキャストまたはマルチキャストの定義からすれば、レイヤ2スイッチ200に接続された他の外部装置に送信されるのは当然のこと、当該情報処理装置100内の他のLPARにも送信されるべきである。ブロードキャストのフレームは、ネットワーク内のすべての端末に送信され、マルチキャストのフレームも、一定の範囲に制限されるものの、ネットワーク内の指定されたすべての端末に送信されるからである。
【0065】
そこで、レイヤ2スイッチ200の各ポートに設けられたポート制御部は、ループバック機能がオンに設定されたポートについては、ポートに入力されたフレームがブロードキャストまたはマルチキャストである場合には、入力フレームを外部に送信するとともにループバックも行うように制御する。なお、ループバック機能がオフに設定されたポートについては、ポート制御部は、通常通り、入力フレームを外部に送信するだけでよく、ループバックは不要である。
【0066】
図6は、図5のレイヤ2スイッチ200の各ポートに設けられるポート制御部300の構成を示す。ポート制御部300は、MACアドレステーブル220、入出力部230、宛先判定部240、中継部250、およびループバック部260を有し、当該ポートにおいてループバック機能がオンに設定されている場合は、ループバック部260が動作するが、ループバック機能がオンに設定されている場合は、ループバック部260は動作しない。
【0067】
入出力部230は、自ポートに入力されるフレームおよび自ポートから出力されるフレームをバッファリングし、自ポートに対するフレームの入出力を制御する。
【0068】
宛先判定部240は、入力されたフレームのヘッダから宛先MACアドレスを取得し、MACアドレステーブル220を参照して、その宛先MACアドレスに対応するポート番号、すなわち宛先ポートを取得する。
【0069】
MACアドレステーブル220は、各ポートに対応づけられたMACアドレスを記憶したテーブルであり、各ポートのポート制御部300により参照される。図6では、機能説明の便宜上、MACアドレステーブル220をポート制御部300の内部に描いているが、MACアドレステーブル220は、実装上は、レイヤ2スイッチ200内に1つ設けられ、各ポートのポート制御部300により共有されて参照される。
【0070】
MACアドレステーブル220の例を図7に示す。各ポートのポート制御部300は、自ポートに入力されるフレームのヘッダから送信元のMACアドレスを取得し、自ポートに接続された端末のMACアドレスを自ポートに対応づけてMACアドレステーブル220に登録していく。ここでは、図5の構成例にしたがって、ポートAに対応づけてMAC1、MAC2およびMAC3が、ポートBに対応づけてMAC4が、ポートCに対応づけてMAC5が記憶される。
【0071】
また、このMACアドレステーブル220には、各ポートのループバック機能をオンまたはオフに設定するための情報が各ポートに対応づけて記憶される。この例では、ポートAのループバック機能はオン、ポートBおよびポートCのループバック機能はオフに設定されている。ポートのループバック機能は、そのポートに接続された情報処理装置100のドライバ40からレイヤ2スイッチ200を操作することにより、ユーザが手動でオンに設定することができる。レイヤ2スイッチ200は、MACアドレステーブル220においてループバック機能がオンに設定されているポートについてのみ、ループバック部260によるループバック機能を動作させる。
【0072】
宛先判定部240により、入力フレームの宛先MACアドレスがMACアドレステーブル220に登録されていないことが判定された場合、MACアドレステーブル220が未設定もしくは未学習であることが考えられるため、中継部250が、入力フレームを他のすべてのポートに転送し、さらに、当該ポートのループバック機能がオンの場合は、ループバック部260が、入力フレームを自ポートからループバックさせる。
【0073】
入力フレームの宛先MACアドレスがMACアドレステーブル220に登録されている場合、宛先判定部240は、宛先MACアドレスが対応づけられたポート番号、すなわち宛先ポートを取得する。宛先ポートが自ポート以外のポートである場合、宛先判定部240は、宛先ポートを中継部250に通知し、中継部250は、宛先判定部240から通知された宛先ポートに入力フレームを転送する。
【0074】
また、中継部250は、他ポートから自ポート宛に転送されたフレームを入出力部230に与え、入出力部230は、他ポートから転送されたフレームを自ポートから出力する。
【0075】
当該ポートのループバック機能がオンの場合は、MACアドレステーブル220において、入力フレームの宛先MACアドレスが自ポートに対応づけられていることがある。その場合、宛先MACアドレスはループバックすべきMACアドレスであるから、宛先判定部240は、ループバック部260に入力フレームのループバックを指示する信号を与える。ループバック部260は、入出力部230を制御して、自ポートに入力されてバッファリングされているフレームを自ポートから出力させる。
【0076】
入力フレームがマルチキャストまたはブロードキャストの場合は、次のように動作する。宛先判定部240により、入力フレームの宛先MACアドレスがマルチキャストまたはブロードキャストであることを示していると判定されると、当該ポートのループバック機能がオフの場合は、中継部250により入力フレームが他のすべてのポートに転送され、当該ポートのループバック機能がオンの場合は、中継部250により入力フレームが他のすべてのポートに転送されるとともに、ループバック部260により入力フレームが自ポートからループバックされて出力される。
【0077】
図8は、レイヤ2スイッチ200の各ポートのポート制御部300によるフレームの転送制御手順を示すフローチャートである。
【0078】
レイヤ2スイッチ200の各ポートのポート制御部300において、宛先判定部240は、自ポートに入力されたフレームの宛先アドレスを調べることにより、ブロードキャストまたはマルチキャストであるかどうかを判定する(S10)。ブロードキャストまたはマルチキャストの通信を行う場合、MACアドレスとして特定のアドレスを指定するため、フレームのヘッダに格納された宛先アドレスからブロードキャストまたはマルチキャストであるかどうかを判定することができる。
【0079】
入力フレームがブロードキャストまたはマルチキャストである場合(S10のY)、中継部250が入力フレームを他のすべてのポートに転送することにより、そのフレームを外部に送信するとともに、ループバック部260が当該ポートにおいてそのフレームをループバックさせる(S12)。ただし、このループバックは、当該ポートのループバック機能がオンに設定されている場合に限って行われる。ループバック機能がオンに設定されたポートにおいては、MACアドレステーブル220においてそのポートに対応づけて登録されたすべてのMACアドレスと、ブロードキャストアドレスまたはマルチキャストアドレスとがフレームの転送先となる。
【0080】
入力フレームがブロードキャストでもマルチキャストでもない場合(S10のN)、宛先判定部240は、MACアドレステーブル220を参照して、入力フレームの宛先MACアドレスが対応づけられたポート番号、すなわち宛先ポートを取得し、宛先ポートが自ポートであるかどうかにより、宛先MACアドレスがループバック対象のアドレスであるかどうかを判定する(S14)。
【0081】
宛先MACアドレスがループバック対象のアドレスである場合(S14のY)、ループバック部260が、入力フレームをそのままループバックする(S16)。宛先MACアドレスがループバック対象のアドレスでない場合(S14のN)、中継部250が、宛先ポートに入力フレームを送信する(S18)。なお、レイヤ2スイッチ200の初期化時のように、対象となるMACアドレスがMACアドレステーブル220に登録されていないときは、入力フレームをどのポートに送信すべきか判別できないため、S12の処理のごとく、入力フレームを他のすべてのポートに転送するとともに、ループバック機能がオンであれば、さらに当該ポートにおいてループバックさせる。
【0082】
以上述べたように、本実施の形態の情報処理システムによれば、既存のネットワーク機能を利用して、情報処理装置100内のLPAR間通信を行うため、LPAR間通信のために独自の通信機能を設計する必要がなく、実装面で有利である。また、LPAR間通信のためにネットワークドライバにおいてメモリ間コピーが発生せず、DMA転送によりデータの送受信がなされるため、情報処理装置100のプロセッサ資源を消費することなく、しかも、ハードウエアにより高速に通信を行うことができる。
【0083】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
【0084】
上記の実施の形態では、一つの計算機システムを複数の論理区画に分割して、各論理区画においてオペレーティングシステムを独立に動作させたが、この論理区画化技術は、マルチプロセッサシステムにおいても適用可能である。いずれかのプロセッサにおいて動作するハイパーバイザがマルチプロセッサシステムのプロセッサ、メモリ、I/Oデバイスなどの計算資源を各論理区画に割り当て制御することで、同様に複数の論理区画を仮想的な計算機に見立てることができる。この場合、マルチプロセッサシステムにおける各プロセッサを各論理区画に1対1に割り当ててもよく、一つのプロセッサの資源を時分割で切り替えながら複数の論理区画に割り当ててもよい。後者の場合、マルチプロセッサシステムの物理的なプロセッサ数よりも多い論理区画を生成して実行することができる。また、複数のプロセッサユニットを一つのチップ内に集積してパッケージ化したマルチコアプロセッサを搭載した情報処理装置において、この論理区画化技術を適用してもよい。
【0085】
上記の実施の形態では、情報処理装置100内の各LPARが外部と通信することができる場合を説明したが、情報処理装置100内のいずれか1つのLPARが代表して外部と通信し、代表LPAR以外のLPARが外部と通信する場合は、代表LPARがデータを中継して外部との間で送受信するように構成してもよい。このような構成の場合、代表LPARと他のLPARの間で通信データのフォワーディングが行われるが、この通信データのフォワーディングのために、レイヤ2スイッチ200のループバック機能を利用して、上記の実施の形態と同様の通信制御を行ってもよい。
【0086】
また、上記の説明では、通常のスイッチング機能の他にループバック機能を併用することのできるレイヤ2スイッチ200を前提として、情報処理装置100内のLPAR間の内部通信をレイヤ2スイッチ200を経由して行う通信制御方法を説明したが、イーサネットMACにループバック機能を付加したり、ネットワークの物理層にループバック機能を付加すれば、同様の通信制御がイーサネットMACや物理層において可能となる。イーサネットMACや物理層にもテスト目的ではループバック機能があるが、あくまでもテストモードとしてループバック機能が用意されているだけであり、ループバックを行いつつ、通常の外部との通信ができるようには構成されていない。そのため、本発明を実施するためには、イーサネットMACや物理層の仕様の変更が必要であり、現状では、あまり現実的な手段ではない。したがって、実施の形態のように、レイヤ2スイッチ200の通常のスイッチング機能を拡張して、ループバックも可能とする構成が、実装上は現実的であり、より好適である。
【0087】
上記の説明では、レイヤ2スイッチ200のポート制御部300は、ポートに入力されたフレームの宛先MACアドレスを検出して、ループバックさせるかどうかを判定したが、用途によっては、入力されたフレームの送信元MACアドレスを検出して、ループバックさせるかどうかを判定するように構成してもよい。
【図面の簡単な説明】
【0088】
【図1】実施の形態に係る情報処理システムの構成図である。
【図2】図2(a)は、レイヤ2スイッチを介さずに、情報処理装置の複数の論理区画が互いに通信する方法を説明する図であり、図2(b)は、レイヤ2スイッチのループバック機能を利用して、情報処理装置の複数の論理区画が互いに通信する方法を説明する図である。
【図3】図1のドライバの構成を示す図である。
【図4】レイヤ2スイッチをカスケード接続した通常の構成を示す図である。
【図5】本実施の形態のレイヤ2スイッチに情報処理装置を接続した構成を示す図である。
【図6】図5のレイヤ2スイッチの各ポートに設けられるポート制御部の構成を示す図である。
【図7】図6のMACアドレステーブルの例を示す図である。
【図8】レイヤ2スイッチのポート制御部によるフレームの転送制御手順を示すフローチャートである。
【符号の説明】
【0089】
10 LPAR、 20 プロトコルスタック、 40 ドライバ、 50 メモリ空間、 52 フレーム、 60 調停部、 70 物理層インタフェース、 100 情報処理装置、 200 レイヤ2スイッチ、 210 ポート、 220 MACアドレステーブル、 230 入出力部、 240 宛先判定部、 250 中継部、 260 ループバック部、 300 ポート制御部。

【特許請求の範囲】
【請求項1】
計算資源が論理的に分割されて割り当てられた複数の論理区画を有し、各論理区画においてオペレーティングシステムが独立に動作可能に構成された情報処理装置であって、
それぞれ個別の物理アドレスを割り当てられた各論理区画から通信要求を受け取り、データの送受信制御を行うネットワークドライバを含み、
前記ネットワークドライバは、一の論理区画から受け取るフレームを宛先アドレスを参照することなく通信中継装置に送信し、前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画に渡すことを特徴とする情報処理装置。
【請求項2】
前記ネットワークドライバは、一の論理区画から他の論理区画に渡されるべきデータを、前記他の論理区画の物理アドレスを宛先とする送信フレームとして前記一の論理区画から受け取って前記通信中継装置に送信し、前記通信中継装置からループバックされる当該データを受信フレームとして受信することにより、当該データを前記他の論理区画に渡すことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記ネットワークドライバは、前記一の論理区画から受け取る前記フレームを前記一の論理区画により参照されるメモリ空間から前記通信中継装置にDMA転送し、前記通信中継装置からループバックされる前記フレームを前記他の論理区画により参照されるメモリ空間にDMA転送することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
計算資源が論理的に分割されて割り当てられた複数の論理区画を有し、各論理区画においてオペレーティングシステムが独立に動作可能に構成された情報処理装置におけるネットワークドライバのプログラムであって、
それぞれ個別の物理アドレスを割り当てられた各論理区画から通信要求を受け取り、データの送受信制御を行う機能と、
一の論理区画から受け取るフレームを宛先アドレスを参照することなく通信中継装置に送信し、前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画に渡す機能とを前記情報処理装置に実現させることを特徴とするプログラム。
【請求項5】
計算資源が論理的に分割されて割り当てられた複数の論理区画を有し、各論理区画においてオペレーティングシステムが独立に動作可能に構成された情報処理装置と、前記情報処理装置が接続された通信中継装置とを含む情報処理システムであって、
前記情報処理装置は、それぞれ個別の物理アドレスを割り当てられた各論理区画から通信要求を受け取り、データの送受信制御を行うネットワークドライバを含み、
前記通信中継装置は、前記情報処理装置から通信ポートに入力されるフレームを前記情報処理装置にループバックするポート制御部を含み、
前記ネットワークドライバは、一の論理区画から受け取るフレームを宛先アドレスを参照することなく通信中継装置に送信し、前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画に渡すことを特徴とする情報処理システム。
【請求項6】
通信ポートに情報処理装置が接続された通信中継装置であって、
前記通信ポートに対応づけてループバックの対象となる物理アドレスをあらかじめ記憶したアドレステーブルと、
前記情報処理装置から前記通信ポートに入力されたフレームの宛先物理アドレスが前記アドレステーブルに格納されたループバックの対象となる物理アドレスに一致する場合に、その入力フレームを前記情報処理装置にループバックするポート制御部とを含むことを特徴とする通信中継装置。
【請求項7】
前記情報処理装置は、計算資源が論理的に分割されて割り当てられ、それぞれ個別の物理アドレスが割り当てられた複数の論理区画を有し、
前記アドレステーブルは、前記情報処理装置内の各論理区画の物理アドレスを前記ループバックの対象となる物理アドレスとして格納し、
前記ポート制御部は、前記通信ポートに、一の論理区画から他の論理区画の物理アドレスを宛先とするフレームパケットが入力された場合に、その入力フレームの宛先アドレスが前記アドレステーブルに格納されたループバックの対象となる物理アドレスに一致することから、その入力フレームを前記他の論理区画にループバックすることを特徴とする請求項6に記載の通信中継装置。
【請求項8】
前記ポート制御部は、前記情報処理装置から前記通信ポートに入力されたフレームがブロードキャストまたはマルチキャストされるべきフレームである場合には、その入力フレームを当該通信ポート以外のポートに出力するとともに、当該通信ポートに接続された前記情報処理装置にループバックすることを特徴とする請求項7に記載の通信中継装置。
【請求項9】
計算資源が論理的に分割されて割り当てられ、それぞれ個別の物理アドレスが割り当てられた複数の論理区画の間の通信制御方法であって、
一の論理区画から受け取るフレームを宛先アドレスを参照することなく前記一の論理区画のメモリ空間から通信中継装置に転送するステップと、
前記通信中継装置からループバックにより受け取るフレームを当該フレームの宛先アドレスに応じて他の論理区画のメモリ空間に転送するステップとを含むことを特徴とする通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−109040(P2007−109040A)
【公開日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願番号】特願2005−299732(P2005−299732)
【出願日】平成17年10月14日(2005.10.14)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】