JP6365280B2 - 情報処理装置、情報処理システム、及びプログラム - Google Patents

情報処理装置、情報処理システム、及びプログラム Download PDF

Info

Publication number
JP6365280B2
JP6365280B2 JP2014249558A JP2014249558A JP6365280B2 JP 6365280 B2 JP6365280 B2 JP 6365280B2 JP 2014249558 A JP2014249558 A JP 2014249558A JP 2014249558 A JP2014249558 A JP 2014249558A JP 6365280 B2 JP6365280 B2 JP 6365280B2
Authority
JP
Japan
Prior art keywords
unit
packet
units
information processing
processing apparatus
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.)
Expired - Fee Related
Application number
JP2014249558A
Other languages
English (en)
Other versions
JP2016110531A (ja
Inventor
伸幸 七野
伸幸 七野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014249558A priority Critical patent/JP6365280B2/ja
Priority to US14/951,958 priority patent/US20160173376A1/en
Publication of JP2016110531A publication Critical patent/JP2016110531A/ja
Application granted granted Critical
Publication of JP6365280B2 publication Critical patent/JP6365280B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
一般に、サーバ装置やストレージ装置を含む情報処理装置では、内部の各種機能を複数のユニットに分割することで、保守性や可用性(冗長性)の向上が図られている。
上述のごとく分割された複数のユニットを連携させるべく複数のユニット間にイーサネット(Ethernet;登録商標)を導入すると、情報処理装置は、イーサネットを利用した様々なアプリケーションソフトウェアを利用することが可能になる。これにより、情報処理装置の生産性の向上を図ることもできる。
しかし、内部ネットワークとしてイーサネットを導入する場合、イーサネットのアドレス体系は、情報処理装置に繋がる外部ネットワークのアドレス体系と矛盾(衝突)しないようにする必要がある。そのために、外部ネットワークでのアドレス設定やアドレス変更に連携して内部ネットワークのアドレス体系を変更させる処理が発生する。このように内部ネットワークのアドレス体系を変更させる処理を行なっている期間中は、ユニット間の連携を行なうことが難しい。
ここで、図17を参照しながら、内部ネットワークのアドレス体系と外部ネットワークのアドレス体系とが衝突する例について説明する。
図17に示す例では、情報処理装置100に、外部ネットワーク200およびゲートウェイ300を介して端末400が通信可能に接続されている。また、情報処理装置100には、例えば5つのユニット101〜105が備えられ、これらのユニット101〜105は、内部ネットワーク106を介して通信可能に接続されている。
ここで、外部ネットワーク200は、情報処理装置100を使用するユーザが管理するイーサネットである。情報処理装置100は、イーサネットサービスを提供するインタフェースである。
また、情報処理装置100の内部ネットワーク106は、情報処理装置100内部のユニット101〜105間を結ぶイーサネットである。ユニット101〜105同士は、内部ネットワーク106を通して連携する。
各ユニット101〜105は、情報処理装置100を構成する部品であり、情報処理装置100の保守性や可用性(冗長性)を向上させるために、ある程度の機能ごとに分割されたものである。各ユニット101〜105には、イーサネットアプリケーションを使用するために汎用OSが載せられている。そして、ユニット101には、外部ネットワーク200に接続され外部の端末400との通信を行なう外部ネットワークインタフェース110が備えられる。また、ユニット101には、内部ネットワーク106に接続され他のユニット102〜105との通信を行なう内部ネットワークインタフェース111が備えられる。同様に、ユニット102〜105には、それぞれ、内部ネットワーク106に接続されユニット101との通信を行なう内部ネットワークインタフェース121〜151が備えられる。なお、ユニット101〜105は、それぞれ、ユニット#1〜#5と表記される場合がある。
このとき、情報処理装置100(外部ネットワークインタフェース110)には、外部ネットワーク200用のIP(Internet Protocol)アドレス192.168.1.1が割り振られている。また、端末400には、IPアドレス172.16.0.10が割り振られている。そして、情報処理装置100内部の各ユニット101〜105(内部ネットワークインタフェース111〜151)には、それぞれ、内部ネットワーク106用のIPアドレス172.16.0.1〜172.16.0.5が割り振られているものとする。
このようにIPアドレスが割り振られている場合、ユニット101と外部の端末400との間で通信を行なうことができなくなる。なぜならば、端末400のIPアドレスが172.16.0.10であり、情報処理装置100の内部ネットワーク106のアドレス体系に含まれているため、ユニット101から端末400への送信を行なおうとしても、端末400宛てのパケットが内部ネットワーク106に流れてしまうからである。
したがって、図17に示すように、情報処理装置100外部のアドレスと情報処理装置100内部のアドレス体系との衝突が発生する場合、上述した通り、外部ネットワークのアドレスに連携して内部ネットワークのアドレス体系を変更させる処理が発生する。
特開2010−49676号公報 特開2009−151744号公報
上述したように、外部ネットワークのアドレスに連携して内部ネットワークのアドレス体系を変更させる処理が発生すると、その処理を行なっている期間中は、ユニット間の連携を行なうことが難しくなるという課題がある。
一つの側面で、本発明は、外部ネットワークに影響されない内部ネットワークを構築可能にすることを目的とする。
本件の情報処理装置は、外部ネットワークに接続可能であって、複数のユニットと、外部ネットワークインタフェースと、内部ネットワークインタフェースと、を有する。前記複数のユニットのそれぞれは、オペレーティングシステム(OS)を有するとともに、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する。前記外部ネットワークインタフェースは、前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される。前記内部ネットワークインタフェースは、前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部ネットワークに接続される。前記内部ネットワークは、前記外部ネットワークの第1アドレス体系とは独立した、前記プロセス間通信の第2アドレス体系で構築される。前記複数のユニットそれぞれの前記内部ネットワークインタフェースは、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なう。さらに、前記ループバックデバイスドライバは、判定部および振分部を有する。前記判定部は、前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する。前記振分部は、前記判定部による判定結果に応じた処理に、前記処理対象パケットを振り分ける。
一実施形態によれば、外部ネットワークに影響されない内部ネットワークを構築することができる。
本実施形態の情報処理装置を含む情報処理システムのハードウェア構成および機能構成を示すブロック図である。 図1に示す情報処理装置を構成する各ユニットのハードウェア構成および機能構成を示すブロック図である。 ループバックデバイスによるプロセス間通信を説明する図である。 ループバックデバイスによるプロセス間通信を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態の対比例におけるユニット間通信動作を説明する図である。 本実施形態による処理の概要を説明する図である。 本実施形態におけるユニット間通信手順(ループバックデバイスドライバの動作)を説明するフローチャートである。 本実施形態におけるユニット間通信動作を説明する図である。 本実施形態におけるユニット間通信動作を説明する図である。 本実施形態におけるユニット間通信動作を説明する図である。 内部ネットワークのアドレス体系と外部ネットワークのアドレス体系とが衝突する例を示す図である。
以下に、図面を参照し、本願の開示する情報処理装置、情報処理システム、及びプログラムの実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕本実施形態の情報処理装置を含む情報処理システムの構成
まず、図1を参照しながら、本実施形態の情報処理装置10を含む情報処理システム1のハードウェア構成および機能構成について説明する。なお、図1は、そのハードウェア構成および機能構成を示すブロック図である。
図1に示す情報処理システム1では、情報処理装置10に、外部ネットワーク20およびゲートウェイ30を介して端末(外部ユニット)40が通信可能に接続されている。また、情報処理装置10には、例えば5つのユニット11−1〜11−5が備えられ、これらのユニット11−1〜11−5は、内部ネットワーク12を介して通信可能に接続されている。なお、ユニットを示す符号としては、複数のユニットのうちの一つを特定する必要があるときには符号11−1〜11−5を用い、任意のユニットを指すときには符号11を用いる。また、情報処理装置10は、例えば、サーバ装置や、統合ストレージ装置(unified storage)などを含むものとする。
本実施形態の情報処理装置10は、外部ネットワーク20に接続可能であり、後述するように、少なくとも、複数のユニット11と外部ネットワークインタフェース20aと内部ネットワークインタフェース12aとを含んでいる。外部ネットワークインタフェース20aは、複数のユニット11のうちの少なくとも一のユニット11−1に設けられ、外部ネットワーク20に接続される。また、内部ネットワークインタフェース12aは、各ユニット11に設けられ、外部ネットワークインタフェース20aに接続された外部ネットワーク20の第1アドレス体系とは独立した第2アドレス体系で構築された内部ネットワーク12に接続される。そして、各ユニット11の内部ネットワークインタフェース12aは、第2アドレス体系を用いて複数のユニット11間の通信を行なう。なお、内部ネットワークインタフェース12aは、後述する汎用OS11A(図2参照)における通信アプリケーションプログラムによって実現されてもよい。
ここで、外部ネットワーク20は、情報処理装置10を使用するユーザが管理するイーサネットである。情報処理装置10は、イーサネットサービスを提供するインタフェースである。
また、情報処理装置10の内部ネットワーク12は、情報処理装置10内部のユニット11間を結ぶイーサネットである。ユニット11同士は、内部ネットワーク12を通して連携する。
各ユニット11は、情報処理装置10を構成する部品であり、情報処理装置10内部の各種機能を分割したもので、このように機能を複数のユニット11に分割することで、保守性や可用性(冗長性)の向上が図られている。各ユニット11には、イーサネットアプリケーションを使用するために汎用OS11Aが載せられている。また、各ユニット11には、OS11A内のプロセス(アプリケーション)間通信を行なうループバックデバイス14(図2参照)が仮想的に備えられている。また、ループバックデバイス14には、当該ループバックデバイス14を制御するループバックデバイスドライバ14A(図2参照)が含まれている。
複数のユニット11のうちの一つであるユニット11−1には、外部ネットワーク20に接続され端末(外部ステップ)40との通信を行なう外部ネットワークインタフェース20aが備えられる。また、ユニット11−1には、内部ネットワーク12に接続され他のユニット11−2〜11−5との通信を行なう内部ネットワークインタフェース12aが備えられる。同様に、ユニット11−2〜11−5には、それぞれ、内部ネットワーク12に接続されユニット11との通信を行なう内部ネットワークインタフェース12aが備えられる。なお、ユニット11−1〜11−5は、それぞれ、ユニット#1〜#5と表記される場合がある。
このとき、本実施形態の情報処理システム1においては、内部ネットワーク12に、外部ネットワーク20の第1アドレス体系(192.168.1.0/24)とは独立した第2アドレス体系が構築される。このため、本実施形態では、ループバックデバイス14によるプロセス間通信のアドレス体系が、前記第2アドレス体系として用いられる。
ループバックデバイス14を流れるパケットは、ループバックデバイス14の特性上、当該パケットを使用するOS11Aの外へ出ない。当該パケットは、例えば図3に示すように、1つのOS11A内において2つのプロセス#1,#2間で連携するために用いられる(図3の矢印A1,A2参照)。図3では、ユニット11−1上でプロセス間通信を行なう例が示され、プロセス#1,#2にそれぞれアドレス127.1.0.1, 127.1.0.2が割り振られている。また、ループバックデバイス14宛のパケットは、図4に示すように、送信先がいなくても送信することが可能である(図4の矢印A3,A4参照)。つまり、送信先がいなくてもエラーを発生させることなくパケットを送信することが可能である。ただし、送信先のいないパケットは、ループバックデバイス14に送信された後、破棄される。なお、図3および図4は、ループバックデバイス14によるプロセス間通信を説明する図である。
このようなループバックデバイス14によるプロセス間通信のアドレス体系は、127.0.0.0/8であり、ホストアドレスに、約1677万個、確保することができる。そこで、本実施形態では、情報処理装置10を構成するユニット11−1〜11−5の内部で、ループバックデバイス14上のIPアドレスが衝突しないように割り振られる。例えば図1では、ユニット11−1〜11−5に、IPアドレスとして、ループバック用のアドレス体系のアドレス127.1.0.1〜127.1.0.5がそれぞれ割り振られている。
これにより、内部ネットワークインタフェース12aは、外部ネットワーク20の第1アドレス体系とは独立した第2アドレス体系である、ループバックデバイス14によるプロセス間通信のアドレス体系を用いてユニット11間の通信を行なう。ただし、上述したように、ループバックデバイス14を流れるパケットは、ループバックデバイス14の特性上、当該パケットを使用するOS11Aの外へ出ない。そこで、本実施形態では、図2を参照しながら後述する、各ユニット11における機能構成を用いることで、図12〜図16を参照しながら後述するように、ループバックデバイス14を利用したIPネットワークが構築される。
なお、第2アドレス体系(各ユニット11のIPアドレス)は、各ユニット11に対して、システム管理者が手作業によって設定してもよいし、OS等のソフトウェアによって自動的に割り振って設定するように構成してもよい。例えば、各ユニット11のファームウェアが、ハードウェアの位置情報(スロット番号)等を基に、自動的に自身のアドレスを生成して設定する。また、他の例としては、ユニット#1のOS11AもしくはCPU11aなどの制御部にDHCP(Dynamic Host Configuration Protocol)機能をもたせ、他のユニット11に設定情報を自動配信して、各ユニット11がその設定情報を受けて設定するようにしてもよい。DHCP機能によれば、ネットワーク設定を手動で行なわなくても直ちに適切な設定で接続を行なうことができ、ネットワークの設定に詳しくないユーザでも簡単に接続することができる。
ユニット11間を通信可能に接続する内部ネットワーク12としては、例えば、IP通信でない汎用通信回線が用いられる。また、汎用通信回線としては、例えば、フレームリレー通信回線(シリアル回線,IPを使用しないイーサネットなど)を用いることができる。図1に示す例では、内部ネットワーク12としてフレームリレー通信回線が用いられている。これに伴い、各ユニット11における内部ネットワークインタフェース12aには、フレームリレー送信部およびフレームリレー受信部としての機能が備えられる。ユニット11内部でのリレーなどを利用することで、任意のユニット11間でフレームリレー可能なネットワーク環境が構築される。
なお、汎用通信回線に代え複数のユニット11間の共有メモリ(図示略)を内部ネットワーク12として備え、共有メモリを介してユニット11間で通信を行なってもよい。
また、図1に示す情報処理システム1では、情報処理装置10(外部ネットワークインタフェース20a)に、外部ネットワーク20用のIPアドレス192.168.1.1が割り振られ、端末40に、IPアドレス172.16.0.10が割り振られている。
さらに、情報処理装置10の各種機能を分割した複数のユニット11は、それぞれ、物理的に独立し、内部ネットワーク12を介して相互に通信可能に構成されていてもよい。また、情報処理装置10の各種機能を分割した複数のユニット11の一部は、各ユニット11のCPU11a(図2参照)によって実行されるハイパバイザ(仮想化OS;図示略)上に構築される複数の仮想マシン(図示略)であってもよい。複数の仮想マシン(ユニット11)上では異なる種類のOS11Aが並列的に稼働される。
このように一つのCPU11aにおけるハイパバイザ上で複数のOS11Aを稼働させる例として、統合ストレージ装置が挙げられる。統合ストレージ装置では、ハイパバイザ上において、例えば、SAN(Storage Area Network)用OSとNAS(Network Attached Storage)用OSとが稼働される。SAN用OSとしては例えばWind River社のVxWorks(登録商標)が用いられ、NAS用OSとしては例えばLinux(登録商標)が用いられる。
このような統合ストレージ装置において、SAN用OSを稼働するユニット(仮想マシン)11は、内部ネットワークインタフェース12aにより内部ネットワーク12経由でCPU11a外部の他ユニット11と通信可能である。しかし、NAS用OSを稼働するユニット(仮想マシン)11は、NAS用OSと同じハイパバイザ上に載るSAN用OSを稼働するユニット11との通信は可能であるが、通常、NAS用OSに直接接続されていないCPU11a外部の他ユニット11との通信はできない。
〔2〕本実施形態の対比例、および、本実施形態の概要について
〔2−1〕本実施形態の対比例
ここで、まず、図5〜図11を参照しながら、上述した情報処理システム1においてユニット間通信を実現するための一具体例を、本実施形態の対比例として説明する。図5〜図11は、本実施形態の対比例におけるユニット間通信動作を説明する図である。図5〜図11では、ユニット#1とユニット#2との間での通信動作が、各ユニット11における要部構成のみを図示しながら説明される。前述した通り、ユニット#1および#2には、それぞれ、ループバックデバイス14によるプロセス間通信のアドレス体系のIPアドレス127.1.0.1および127.1.0.2が割り振られている。なお、図中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
まず、図5〜図7を参照しながら、対比例の基本的なユニット間通信手順について説明する。
ユニット#1とユニット#2との間で通信を行なう場合、送信元ユニット11−1のプロセス(送信元プロセス)#1は、送信先ユニット#2のプロセス(送信先プロセス)#2へのパケットを生成してループバックデバイス14へ出力する(図5の矢印A3,A4参照)。
このとき、OS11Aに元々備えられるキャプチャ(capture)機能を用いることで、ループバックデバイス14にパケットキャプチャが仕掛けられ、送信先プロセス#2宛のパケットP1が取り出される(図5の矢印A5,A6参照)。取り出されたパケットP1は、内部ネットワークインタフェース12aのフレームリレー送信部としての機能によって、送信先プロセス#2のIPアドレスに応じた適切なフレームリレー12へ出力される(図6および図7の矢印A7参照)。これにより、パケットP1は、送信先ユニット#2へ送信される。キャプチャ機能は、ネットワークの状態を監視すべくパケットをキャプチャするものである。内部ネットワークインタフェース12aは、上記キャプチャ機能によって取得されたパケットP1を、内部ネットワーク12に出力し、ループバックデバイス14によるプロセス間通信のアドレス体系に従って送信先ユニット11へ送信する。
フレームリレー12によって送信されたパケットP1は、送信先ユニット#2の内部ネットワークインタフェース12aのフレームリレー受信部としての機能によって受信される(図7の矢印A8参照)。パケットP1を受信した内部ネットワークインタフェース12aは、パケットP1が自ユニット#2宛であるか否かを判断する。
受信したパケットP1が自ユニット#2宛である場合、内部ネットワークインタフェース12aは、パケットP1をセンド(send)機能に受け渡す(図7の矢印A9参照)。そして、センド機能によって、パケットP1は、ループバックデバイス14経由で送信先プロセス#2へ送り込まれる(図7の矢印A10,A11参照)。なお、センド(send)機能は、OS11Aに元々備えられるもので、起動されると、内部ネットワークインタフェース12aによって受信された自ユニット宛のパケット(P1またはP2)を、ループバックデバイス14経由で送信先プロセス(プロセス#2または#1)へ送り込む。
なお、パケットP1が自ユニット#2宛でない場合、内部ネットワークインタフェース12aは、当該パケットP1を、自ユニット#2のOS11Aを構築されたハイパバイザ上の、他OS11A(他ユニット11)に転送する。また、ユニット#2(プロセス#2)からユニット#1(プロセス#1)へのパケットの送信も、上述と同様の手順で実行され、これにより、ユニット#1とユニット#2との間の通信が実現される。
ここまで、本実施形態の対比例の基本的なユニット間通信手順について説明したが、TCP(Transmission Control Protocol)通信を行なう場合、OSの種類によっては、図8や図10に示すようにユニット間通信を行なえなくなることがある。例えば図4では、プロセス#1から送出されたパケットは、ループバックデバイス14を通過した後に消えているように示されている。しかし、OSの種類(例えばLinux)によっては、ループバックデバイス14を通過したパケットをカーネル13が受信することがある(図8の矢印A4参照)。カーネル13は、このようなパケットを受信すると、当該パケットによる通信は存在しないサービス(プロセス#2)に対するTCP通信であると認識し、送信元プロセス#1へ通信終了信号つまりTCPのリセット信号(RST)を返信してしまう(図8の矢印A12,A13参照)。このリセット信号により、TCP通信のコネクションが切断され、送信元プロセス#1からのパケットP1に係る通信が停止する。このため、図5〜図7に示すようにキャプチャされたパケットP1に対し送信先ユニット#2から返信があっても、当該返信に対応することができず、ユニット間通信は確立されないまま終了する。なお、カーネル13は、アプリケーションソフトウェアや周辺機器の監視、ディスクやメモリなどの資源の管理、割りこみ処理、プロセス間通信など、OSとしての基本機能を提供するソフトウェアである。
上述のような状況が送信元ユニット#1で発生するのを抑止すべく、図9に示す対比例では、ループバックデバイス14を通過した送信先ユニット#2宛のパケットP1を、カーネル13に渡る前に、ファイアウォール(firewall)機能によって遮断し破棄する技術(図9の矢印A4参照)が採用されている。これにより、カーネル13はパケットP1を受信しないので、リセット信号がカーネル13から送信元プロセス#1へ返信されることがなく、ユニット間通信が確立されないまま終了するのを抑止することができる。
また、送信元ユニット#1内に既存のサービス(プロセス#2)がある場合、自OS11A内のサービス(プロセス#2)が、他ユニット#2のサービス(プロセス#2)の代わりに応答してしまう。つまり、特別な対応をしなければループバックアドレス範囲内のアドレス宛パケットは、全て送信元ユニット#1内で受信されてしまう。例えば、図7では、パケットP1は、アドレス127.1.0.2宛に送信されているが、このアドレスはループバックアドレス範囲内であるので、当該パケットP1をユニット#1のOS11A内のサービスが受信し、応答してしまう。このような状況も、ファイアウォール機能を、アドレス127.1.0.2宛のパケットを捨てるように設定することで解消される。
なお、図8および図9では、送信元ユニット#1について説明しているが、図10および図11に示すように、送信先ユニット#2においても、カーネル13のリセット信号によって生じる不都合も、ファイアウォール機能を用いて解消される。つまり、図10に示すように、パケットP1を受信した送信先プロセス#2は、送信元プロセス#1への応答パケット(返信パケット)P2を生成してループバックデバイス14へ出力する(図10の矢印A14参照)。ループバックデバイス14を通過する応答パケットP2は、キャプチャ機能によって取り出される(図10の矢印A16,A17参照)。取り出された応答パケットP2は、内部ネットワークインタフェース12aのフレームリレー送信部としての機能によって適切なフレームリレー12へ出力される(図10の矢印A18参照)。これにより、応答パケットP2は、送信元ユニット#1へ送信される。
このとき、ループバックデバイス14を通過した応答パケットP2が、カーネル13によって受信されることがある(図10の矢印A15参照)。カーネル13は、応答パケットP2を受信すると、当該パケットP2による通信は存在しないサービス(プロセス#1)に対するTCP通信であると認識し、プロセス#2に対しTCPのリセット信号を返信してしまう(図10の矢印A19,A20参照)。このリセット信号により、TCP通信のコネクションが切断され、プロセス#2からの応答パケットP2に係る通信が停止する。このため、応答パケットP2に対し送信元ユニット#1から返信があっても、当該返信に対応することができず、ユニット間通信は確立されないまま終了する。
上述のような状況が送信先ユニット#2で発生するのを抑止すべく、図11に示す対比例では、ループバックデバイス14を通過した送信元ユニット#1宛の応答パケットP2を、カーネル13に渡る前に、ファイアウォール機能によって遮断し破棄する技術(図11の矢印A15参照)が採用されている。これにより、カーネル13は応答パケットP2を受信しないので、リセット信号がカーネル13からプロセス#2へ返信されることがなく、ユニット間通信が確立されないまま終了するのを抑止することができる。
さて、図5〜図11を参照ながら上述した対比例のキャプチャ機能を実現するには、当該キャプチャ機能を、OS階層でいうユーザ空間のソフトウェアとして実装することが考えられる。しかし、一般的なOSがサポートするキャプチャ機能は、単にパケット(P1,P2)をコピーする処理を行なうものである。このため、元のパケットは、キャプチャ機能によるキャプチャの実行の有無に関係なく、同じ処理を施される。そのため、対比例では、上述したようにファイアウォール機能が用いられている。また、対比例で用いられるキャプチャ機能は、ユーザ空間のソフトウェアであるため、キャプチャ実行時には、パケットをカーネル空間からユーザ空間へコピーする処理が発生する。
また、キャプチャされたパケットを他ユニットに送る場合、一般にはハードウェア操作が伴う。このため、パケットは、カーネル空間で動作する他ユニット送信デバイスドライバ(図2の符号121参照)を経由する。このとき、キャプチャ時とは逆に、パケットをユーザ空間からカーネル空間へコピーする処理が発生する。
つまり、図5〜図11を参照ながら上述した対比例では、以下のような課題(1)〜(3)が生じることが考えられる。
(1) キャプチャ対象のパケットは、他ユニットで処理されるものであり、自ユニットで処理する必要が無いにもかかわらず、当該パケットに対する処理が実行される。そこで、対比例ではファイアウォール機能を用いて当該パケットを遮断破棄することが行なわれる。しかし、この場合、パケットを破棄するという無駄な処理が生じる(図9,図11の符号(1)で示す領域参照)。
(2) キャプチャ実行時に、パケットをカーネル空間からユーザ空間へコピーする処理が発生する(図9,図11の符号(2)で示す領域参照)。
(3) キャプチャされたパケットを他ユニットに転送する際、パケットをユーザ空間からカーネル空間へコピーする処理が発生する(図9,図11の符号(3)で示す領域参照)。
対比例は、ユーザ空間のアプリケーションプログラム(以下、単にアプリケーションという場合がある)とファイアウォールとの設定を行なうだけで実現可能であり、汎用OSのAPI(Application Programming Interface)だけで実現可能である。したがって、対比例の実装は簡単であるという利点がある。しかしながら、対比例には、上記課題(1)〜(3)がある。つまり、パケットの破棄といった無駄な処理が生じるほか、ユーザ空間とカーネル空間との間で複数回のデータコピーが発生し処理の流れが複雑になる。このため、パケットのスループットが低下する。
〔2−2〕本実施形態の概要
そこで、本実施形態では、以下のような機能を備えることで、上述した対比例で生じうる課題(1)〜(3)が解消される。以下では、図12を参照しながら、本実施形態による処理の概要を説明する。
図12に示すように、ループバックデバイスドライバ14Aは、カーネル空間でOS11Aによる処理対象パケットを受信すると、処理対象パケットが自ユニット宛であるか他ユニット宛であるかの判定を行なう機能(判定部141)を有する。また、ループバックデバイスドライバ14Aは、判定部141による判定結果に応じた処理に、処理対象パケットを振り分ける機能(振分部142)を有する。
このとき、自ユニット(例えばユニット#1)のOS11A内のプロセス#1から処理対象パケット(第1パケット)を受信した場合(矢印A21参照)、判定部141は、第1パケットが自ユニット宛であるか他ユニット宛であるかを判定する。
そして、判定部141によって第1パケットが自ユニット宛であると判定された場合、振分部142は、第1パケットを自ユニット内のOS11Aでの受信処理、つまりカーネル13に振り分ける(矢印A22,A23参照)。
一方、判定部141によって第1パケットが他ユニット宛であると判定された場合、振分部142は、第1パケットを、送信デバイスによって他ユニットに送信すべく、カーネル空間でそのまま、送信デバイスを制御する送信デバイスドライバ121(図2参照)に受け渡す。つまり、振分部142は、第1パケットを送信デバイスドライバ121による転送処理に振り分ける(矢印A22,A24参照)。
また、処理対象パケットが、他ユニット受信デバイスドライバ122によって他ユニットから受信された自ユニット宛の第2パケットである場合、判定部141は、第2パケットについての判定を行なわない。そして、振分部142は、第2パケットを自ユニット内のOS11Aでの受信処理、つまりカーネル13に振り分ける(矢印A25,A23参照)。このとき、第2パケットは、判定部141や振分部142としての機能を経由させることなく、ループバックデバイスドライバ14A経由で直接的にカーネル13に渡されてもよい。
このように、本実施形態では、図12に示すごとく、ループバックデバイスドライバ14Aと送信デバイスドライバ121や受信デバイスドライバ122との間において処理対象パケットが直接的にやり取りされる。このため、処理対象パケット(第1パケットおよび第2パケット)をカーネル空間とユーザ空間との間でコピーすることがなくなる。
また、プロセス#1から処理対象パケット(第1パケット)については、判定部141によって自ユニット宛か他ユニット宛かを判定され、カーネル13と他ユニット送信デバイスドライバ121とのいずれか一方に選択的に振り分けられる。このため、矢印A23で示す経路と矢印A24で示す経路との両方に、同じパケットが流れることがない。したがって、対比例のごときファイアウォール機能を備えることなく、ユニット間通信が確立されないまま終了するのを確実に抑止することができる。ファイアウォール機能を用いないため、パケット破棄処理といった無駄な処理を行なうこともない。
さらに、他ユニットからのパケットについては、判定部141による判定処理は不要であるため、ループバックデバイスドライバ14Aを通してカーネル13に渡される。このため、無駄な判定処理を行なうことが抑止される。
以上のように、本実施形態では、パケットが他ユニットのプロセスに届くまで、パケットに対する処理は、デバイスドライバ14A,121,122が走行するカーネル空間で完了するため、対比例に比べ、パケットの流れが簡潔になる。したがって、パケットのスループットが大幅に向上する。
〔3〕本実施形態の情報処理装置における各ユニットの構成
次に、図2を参照しながら、図1に示す情報処理装置10を構成する各ユニット11のハードウェア構成および機能構成について説明する。なお、図2は、そのハードウェア構成および機能構成を示すブロック図である。
各ユニット11は、少なくともCPU(処理部)11aおよびメモリ(記憶部)11bを含む。なお、ユニット11が仮想マシンである場合、同一ハイパバイザ上の複数の仮想マシン(ユニット11)によってCPU11aおよびメモリ11bは共用される。メモリ11bは、例えば、RAM(Random Access Memory),ROM(Read Only Memory),HDD(Hard Disk Drive),SSD(Solid State Drive)等である。メモリ11bは、各ユニット11での処理に必要な各種情報、例えば、上述したOS11Aやハイパバイザなどに係るソフトウェアや各種機能を実現するためのアプリケーションプログラムを保存する。
図2に示すように、外部ネットワーク20に接続されるユニット11−1のCPU11aは、メモリ11bに保存されたアプリケーションプログラムを実行することで、内部ネットワークインタフェース12a(他ユニット送信デバイスドライバ121,他ユニット受信デバイスドライバ122)としての機能を果たす。同様に、CPU11aは、ループバックデバイスドライバ14A(判定部141,振分部142),変換部18および外部ネットワークインタフェース20aとしての機能も果たす。また、内部ネットワーク12を介してユニット11−1に接続されるユニット11−2〜11−5のCPU11aは、メモリ11bに保存されたアプリケーションプログラムを実行することで、ユニット11−1と同様の機能を果たす。
外部ネットワークインタフェース20aは、図1を参照しながら上述した通り、ユニット11−1において、外部ネットワーク(イーサネット)20の第1アドレス体系(192.168.1.0/24)で外部ネットワーク20に接続され端末40との通信を行なう。
内部ネットワークインタフェース(通信アプリケーション)12aは、図1を参照しながら上述した通り、各ユニット11において、ループバックデバイス14によるプロセス間通信のアドレス体系(127.1.0.1/5)でユニット11間の通信を行なう。内部ネットワークインタフェース12aは、他ユニットへパケットを送信する送信デバイスを制御する他ユニット送信デバイスドライバ121を含む。また、内部ネットワークインタフェース12aは、他ユニットからのパケットを受信する受信デバイスを制御する他ユニット受信デバイスドライバ122を含む。
また、内部ネットワークインタフェース12a(他ユニット受信デバイスドライバ122)は、他ユニットからの自ユニット宛のパケットを選択してループバックデバイスドライバ14A経由でカーネル13に受け渡す機能を有する。また、内部ネットワークインタフェース12a(他ユニット受信デバイスドライバ122)は、自ユニット宛のパケット以外のパケットを他ユニットに転送する機能を有する。この機能は、例えば上述した統合ストレージ装置のごとく複数のユニット11がハイパバイザ上に構築される複数の仮想マシンである場合に有効に用いられる。つまり、SAN用OSを稼働するユニット11でNAS用OSを稼動するユニット11宛のパケットを受信した場合、当該機能によって、当該パケットを、ハイパバイザ経由で、SAN用OSを稼働するユニット11からNAS用OSを稼動するユニット11に転送する。
そして、本実施形態において、ループバックデバイス14を制御するループバックデバイスドライバ14Aは、判定部141および振分部142としての機能を有する。
判定部141は、ループバックデバイスドライバ14Aがカーネル空間でOS11Aによる処理対象パケットを受信すると、処理対象パケットが自ユニット宛であるか他ユニット宛であるかの判定を行なう。また、振分部142は、判定部141による判定結果に応じた処理に、処理対象パケットを振り分ける。
このとき、自ユニットのOS11A内のプロセスから処理対象パケット(第1パケット)を受信した場合、判定部141は、第1パケットが自ユニット宛であるか他ユニット宛であるかを判定する。そして、判定部141によって第1パケットが自ユニット宛であると判定された場合、振分部142は、第1パケットを自ユニット内のOS11Aでの受信処理、つまりカーネル13に振り分ける。
一方、判定部141によって第1パケットが他ユニット宛であると判定された場合、振分部142は、第1パケットを、送信デバイスによって他ユニットに送信すべく、カーネル空間でそのまま、送信デバイスを制御する送信デバイスドライバ121に受け渡す。つまり、振分部142は、第1パケットを送信デバイスドライバ121による転送処理に振り分ける。これにより、内部ネットワークインタフェース12a(送信デバイスドライバ121)は、振り分けられた第1パケットを、内部ネットワーク12に出力し、ループバックデバイス14によるプロセス間通信のアドレス体系に従って送信先ユニット11へ送信する。
また、処理対象パケットが、自ユニットの受信デバイスドライバ122によって他ユニットから受信された自ユニット宛の第2パケットである場合、判定部141は、第2パケットについての判定を行なわない。そして、振分部142は、第2パケットを自ユニット内のOS11Aでの受信処理、つまりカーネル13に振り分ける。このとき、第2パケットは、判定部141や振分部142としての機能を経由させることなく、ループバックデバイスドライバ14A経由で直接的にカーネル13に渡されてもよい。
変換部18は、外部ネットワーク20に接続された一のユニット11−1において、外部ネットワーク20の第1アドレス体系と内部ネットワーク12の第2アドレス体系との間のアドレス変換を行なう。変換部18としての機能は、NAPT (Network Address Port Translation) 機構を用いて実現することができる。変換部18によって、情報処理装置10内部の各ユニット11は、外部ネットワーク20に接続される外部機器(例えば端末40)との通信を行なうことが可能になっている。
〔4〕本実施形態の情報処理装置における各ユニットの動作
次に、図13〜図16を参照しながら、上述のごとく構成された本実施形態の情報処理装置10を含む情報処理システム1の動作、特に各ユニット11の動作について詳細に説明する。図13は本実施形態におけるユニット間通信手順(ループバックデバイスドライバ14Aの動作)を説明するフローチャートであり、図14〜図16は本実施形態におけるユニット間通信動作を説明する図である。図14〜図16では、ユニット11−1とユニット11−2との間での通信動作が、各ユニット11における要部構成のみを図示しながら説明される。前述した通り、ユニット11−1および11−2には、それぞれ、ループバックデバイス14によるプロセス間通信のアドレス体系のIPアドレス127.1.0.1および127.1.0.2が割り振られている。なお、図中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
図14〜図16を参照しながら、図13に示すフローチャート(ステップS1〜S5)に従って、本実施形態のユニット間通信手順について説明する。
ユニット11−1のループバックデバイスドライバ14Aは、OS11Aによる処理対象パケットを受信したか否かを判定し(ステップS1)、処理対象パケットを受信するまで待機する(ステップS1のNOルート)。
ユニット11−1のプロセス#1と自ユニット11−1のプロセス#2との間で通信を行なう場合(図14参照)、送信元ユニット11−1のプロセス(送信元プロセス)#1は、自ユニット11−1のプロセス(送信先プロセス)#2へのパケットを生成する。そして、当該パケットは、OS11Aの処理対象パケット(第1パケット)としてループバックデバイスドライバ14Aへ出力される(図14の矢印A21参照)。
これに伴い、ループバックデバイスドライバ14Aは、処理対象パケットを受信したと判定する(ステップS1のYESルート)。そして、ループバックデバイスドライバ14Aは、当該処理対象パケットを、自ユニットのプロセスから受信したか、他ユニット(つまり他ユニット受信デバイスドライバ122)から受信したかを判定する(ステップS2)。
このとき、当該処理対象パケットは、自ユニットのプロセスから受信したもの(第1パケット)であると判定される(ステップS2の「自ユニット」ルート)。そして、判定部141は、当該処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する(ステップS3)。このとき、判定部141は、処理対象パケットが自ユニット宛であると判定する(ステップS3の「自ユニット宛」ルート)。
そして、振分部142は、判定部141による判定結果(自ユニット宛)を受け(図14の矢印A22参照)、当該処理対象パケットを自ユニット11−1内のOS14A(カーネル13)での受信処理に振り分ける(図14の矢印A23参照)。これにより、当該処理対照パケットについて受信処理が実行され(ステップS4)、ステップS1の処理に戻る。つまり、ループバックデバイスドライバ14Aは、当該処理対象パケットについての処理をそのまま続け、当該処理対象パケットを自ユニット11−1内のプロセス#2に受け渡す。このとき、振分部142から他ユニット送信デバイスドライバ121へのパケット振分処理(図14の二点差線矢印A24′参照)は実行されない。
また、ユニット11−1のプロセス#1と他ユニット11−2のプロセス#2との間で通信を行なう場合(図15参照)、送信元ユニット11−1のプロセス(送信元プロセス)#1は、他ユニット11−2のプロセス(送信先プロセス)#2へのパケットを生成する。そして、当該パケットは、OS11Aの処理対象パケット(第1パケット)としてループバックデバイスドライバ14Aへ出力される(図15の矢印A21参照)。
これに伴い、ループバックデバイスドライバ14Aは、処理対象パケットを受信したと判定する(ステップS1のYESルート)。そして、ループバックデバイスドライバ14Aは、当該処理対象パケットを、自ユニットのプロセスから受信したか、他ユニット(つまり他ユニット受信デバイスドライバ122)から受信したかを判定する(ステップS2)。
このとき、当該処理対象パケットは、自ユニットのプロセスから受信したもの(第1パケット)であると判定される(ステップS2の「自ユニット」ルート)。そして、判定部141は、当該処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する(ステップS3)。このとき、判定部141は、処理対象パケットが他ユニット宛であると判定する(ステップS3の「他ユニット宛」ルート)。
そして、振分部142は、判定部141による判定結果(他ユニット宛)を受け(図15の矢印A22参照)、当該処理対象パケットを、送信デバイスによって他ユニット11−2に送信すべく、他ユニット送信デバイスドライバ121による転送処理に振り分ける(図15の矢印A24参照)。これにより、当該処理対照パケットについて転送処理が実行され(ステップS5)、ステップS1の処理に戻る。つまり、ループバックデバイスドライバ14Aは、他ユニット送信デバイスドライバ121を呼び出し、当該処理対象パケットを上述したフレームリレー(内部ネットワーク)12によって他ユニット11−2に送信する(図15の矢印A26参照)。このとき、振分部142からカーネル13へのパケット振分処理(図15の二点差線矢印A23′参照)は実行されない。このため、対比例のごとくファイアウォール機能を用いたパケット廃棄処理が不要になる。
上述のようにして、図16に示すごとく、パケットが他ユニット11−2に送信されると(図16の矢印A27参照)、当該パケットは、他ユニット受信デバイスドライバ122によって受信される。そして、他ユニット受信デバイスドライバ122は、他ユニット11−1からの自ユニット11−2宛のパケットを選択してループバックデバイスドライバ14A経由でカーネル13に受け渡す。
つまり、他ユニット受信デバイスドライバ122で受信されたパケットが、処理対象パケット(第2パケット)としてループバックデバイス14Aへ出力される(図16の矢印A28参照)。
これに伴い、ユニット11−2のループバックデバイスドライバ14Aは、処理対象パケットを受信したと判定する(ステップS1のYESルート)。そして、ループバックデバイスドライバ14Aは、当該処理対象パケットを、自ユニットのプロセスから受信したか、他ユニット(つまり他ユニット受信デバイスドライバ122)から受信したかを判定する(ステップS2)。
このとき、当該処理対象パケットは、他ユニット11−1のプロセス#1から受信したもの(第2パケット)であると判定される(ステップS2の「他ユニット」ルート)。この場合、ユニット11−2の判定部141(図示略)は、当該処理対象パケットについての判定を行なわない。そして、ユニット11−2のループバックデバイスドライバ14A(振分部142(図示略))は、当該処理対象パケットを自ユニット11−2内のOS14A(カーネル13)での受信処理に振り分ける(図16の矢印A29参照)。これにより、当該処理対照パケットについて受信処理が実行され(ステップS4)、ステップS1の処理に戻る。つまり、ループバックデバイスドライバ14Aは、当該処理対象パケットについての処理をそのまま続け、当該処理対象パケットを自ユニット11−2内のプロセス#2に受け渡す。
以上の説明では、ユニット11−1からユニット11−2へパケットを送信する場合の手順について説明したが、逆に、ユニット11−2からユニット11−1へのパケット送信も、上述した例と同様の手順で行なわれる。例えば、図10や図11に示したような応答パケットP2は、ループバックデバイス14からカーネル13に受け渡されることなくユニット11−1のプロセス#1に送信される。これにより、ユニット11−1とユニット11−2との間での通信が実行される。
なお、送信元ポート番号は、OS11Aによって自動的に採番される。アプリケーションプログラムが自身で送信元ポート番号を指定することも可能であるが、例外的である。ループバックアドレスは、どのOSにも存在するため、ユニット#1のOSが自動で割り当てた送信元ポート番号が、ユニット#2のOSが自動で割り当てたポート番号と同じになることがある。しかし、本実施形態では、送信元ポート番号は、IPアドレス毎に管理されるため、ループバックアドレスを各ユニット11専用のアドレスとして割り振る(例えば127.1.0.2をユニット#2のOS専用とする)ことで、送信元ポート番号が同一になることが抑止される。
〔5〕本実施形態の効果
本実施形態によれば、情報処理装置10内において、当該情報処理装置10を構成するユニット11間の内部ネットワーク12に、外部ネットワーク20の第1アドレス体系とは独立した第2アドレス体系を、ループバックアドレスを用いて構築することができる。これにより、外部ネットワーク20に影響されない内部ネットワーク12を構築することができる。
したがって、外部ネットワーク20の設定が変化しても内部ネットワーク12の設定を変更する必要がなくなる。また、外部ネットワーク20の設定をどのようなものにしても内部ネットワーク12を構築することが可能である。
また、内部ネットワーク12用のアドレスを確保することができない場合であっても、本実施形態によれば、ループバックアドレスを用いて内部ネットワーク12のアドレス体系を構築することができる。内部ネットワーク12用のアドレスを確保できない場合は、例えば、プライベートアドレスを全部抑えられ且つグローバルネットワーク空間に接続されている場合である。
さらに、外部ネットワーク20とつながるユニット11−1がNAPT機構18を備えることで、情報処理装置10内部の各ユニット11は、外部ネットワーク20に接続される外部機器(例えば端末40)との通信を行なうことができる。
また、本実施形態では、ループバックデバイスドライバ14Aと送信デバイスドライバ121や受信デバイスドライバ122との間において処理対象パケットが直接的にやり取りされる。このため、処理対象パケットをカーネル空間とユーザ空間との間でコピーすることがなくなる。
また、プロセス#1から処理対象パケットについては、判定部141によって自ユニット宛か他ユニット宛かを判定され、カーネル13と他ユニット送信デバイスドライバ121とのいずれか一方に選択的に振り分けられる。したがって、対比例のごときファイアウォール機能を備えることなく、ユニット間通信が確立されないまま終了するのを確実に抑止することができる。ファイアウォール機能を用いないため、パケット破棄処理といった無駄な処理を行なうこともない。
さらに、他ユニットからのパケットについては、判定部141による判定処理は不要であるため、ループバックデバイスドライバ14Aを通してカーネル13に渡される。このため、無駄な判定処理を行なうことが抑止される。
以上のように、本実施形態では、パケットが他ユニットのプロセスに届くまで、パケットに対する処理は、デバイスドライバ14A,121,122が走行するカーネル空間(カーネル層)で完了する。これにより、カーネル空間とユーザ空間との間での無駄なコピー処理を行なわずに済み、対比例に比べ、パケットの流れが簡潔になる。結果として、処理時間を短縮することができ、パケットのスループットが大幅に向上する。
さらに、内部ネットワークインタフェース12aは、自ユニット宛のパケットを選択してループバックデバイスドライバ14Aに受け渡す一方、自ユニット宛のパケット以外のパケットを他ユニットに転送する機能を有している。この機能によって、例えば統合ストレージ装置のごとく複数のユニット11がハイパバイザ上に構築される複数の仮想マシンである場合に、他ユニット11に内部ネットワーク12を介して直接接続されていないユニット11間の通信を行なうことが可能になる。
〔6〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
上述した内部ネットワークインタフェース12a(他ユニット送信デバイスドライバ121,他ユニット受信デバイスドライバ122),ループバックデバイスドライバ14A(判定部141,振分部142),変換部18および外部ネットワークインタフェース20aとしての機能の全部もしくは一部は、コンピュータ(MPU(Micro-Processing Unit),CPU,各種端末を含む)が所定のプログラムを実行することによって実現されてもよい。
そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
〔7〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
外部ネットワークに接続可能な情報処理装置であって、
オペレーティングシステム(OS)を有し、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する複数のユニットと、
前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される外部ネットワークインタフェースと、
前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部ネットワークに接続される内部ネットワークインタフェースと、を有し、
前記内部ネットワークは、前記外部ネットワークの第1アドレス体系とは独立した、前記プロセス間通信の第2アドレス体系で構築され、
前記複数のユニットそれぞれの前記内部ネットワークインタフェースは、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なうとともに、
前記ループバックデバイスドライバは、
前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する判定部と、
前記判定部による判定結果に応じた処理に、前記処理対象パケットを振り分ける振分部と、を有する、情報処理装置。
(付記2)
前記処理対象パケットが、自ユニットの前記OS内のプロセスからの第1パケットである場合、前記判定部は、前記第1パケットが自ユニット宛であるか他ユニット宛であるかを判定し、前記振分部は、前記判定部による判定結果に応じた処理に、前記第1パケットを振り分ける、付記1に記載の情報処理装置。
(付記3)
前記判定部によって前記第1パケットが自ユニット宛であると判定された場合、前記振分部は、前記第1パケットを自ユニット内の前記OSでの受信処理に振り分ける、付記2に記載の情報処理装置。
(付記4)
前記判定部によって前記第1パケットが他ユニット宛であると判定された場合、前記振分部(142)は、前記第1パケットを、送信デバイスによって他ユニットに送信すべく、前記送信デバイスを制御する送信デバイスドライバによる転送処理に振り分ける、付記2または付記3に記載の情報処理装置。
(付記5)
前記処理対象パケットが、自ユニットの受信デバイスドライバによって他ユニットから受信された自ユニット宛の第2パケットである場合、前記判定部は、前記第2パケットについての判定を行なうことなく、前記振分部は、前記第2パケットを自ユニット内の前記OSでの受信処理に振り分ける、付記1〜付記4のいずれか一項に記載の情報処理装置。
(付記6)
前記内部ネットワークは、インターネットプロトコル(IP)通信でない汎用通信回線、もしくは、前記複数のユニット間の共有メモリによって構築される、付記1〜付記5のいずれか一項に記載の情報処理装置。
(付記7)
前記外部ネットワークに接続された前記一のユニットは、
前記外部ネットワークの第1アドレス体系と前記内部ネットワークの第2アドレス体系との間のアドレス変換を行ない、前記外部ネットワークを介して前記情報処理装置と通信可能に接続される端末と前記複数のユニットとの間の通信を行なう変換部を有する、付記1〜付記6のいずれか一項に記載の情報処理装置。
(付記8)
前記複数のユニットは、それぞれ、ハイパバイザ上に構築される複数の仮想マシンである、付記1〜付記7のいずれか一項に記載の情報処理装置。
(付記9)
外部ネットワークと、
前記外部ネットワークに接続可能で、前記外部ネットワークを介して端末と通信可能に接続される情報処理装置と、を備え、
前記情報処理装置は、
オペレーティングシステム(OS)を有し、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する複数のユニットと、
前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される外部ネットワークインタフェースと、
前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部ネットワークに接続される内部ネットワークインタフェースと、を有し、
前記内部ネットワークは、前記外部ネットワークの第1アドレス体系とは独立した、前記プロセス間通信の第2アドレス体系で構築され、
前記複数のユニットそれぞれの前記内部ネットワークインタフェースは、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なうとともに、
前記ループバックデバイスドライバは、
前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する判定部と、
前記判定部による判定結果に応じた処理に、前記処理対象パケットを振り分ける振分部と、を有する、情報処理システム。
(付記10)
前記処理対象パケットが、自ユニットの前記OS内のプロセスからの第1パケットである場合、前記判定部は、前記第1パケットが自ユニット宛であるか他ユニット宛であるかを判定し、前記振分部は、前記判定部による判定結果に応じた処理に、前記第1パケットを振り分ける、付記9に記載の情報処理システム。
(付記11)
前記判定部によって前記第1パケットが自ユニット宛であると判定された場合、前記振分部は、前記第1パケットを自ユニット内の前記OSでの受信処理に振り分ける、付記10に記載の情報処理システム。
(付記12)
前記判定部によって前記第1パケットが他ユニット宛であると判定された場合、前記振分部は、前記第1パケットを、送信デバイスによって他ユニットに送信すべく、前記送信デバイスを制御する送信デバイスドライバによる転送処理に振り分ける、付記10または付記11に記載の情報処理システム。
(付記13)
前記処理対象パケットが、自ユニットの受信デバイスドライバによって他ユニットから受信された自ユニット宛の第2パケットである場合、前記判定部は、前記第2パケットについての判定を行なうことなく、前記振分部は、前記第2パケットを自ユニット内の前記OSでの受信処理に振り分ける、付記9〜付記12のいずれか一項に記載の情報処理システム。
(付記14)
前記内部ネットワークは、インターネットプロトコル(IP)通信でない汎用通信回線、もしくは、前記複数のユニット間の共有メモリによって構築される、付記9〜付記13のいずれか一項に記載の情報処理システム。
(付記15)
前記外部ネットワークに接続された前記一のユニットは、
前記外部ネットワークの第1アドレス体系と前記内部ネットワークの第2アドレス体系との間のアドレス変換を行ない、前記外部ネットワークを介して前記情報処理装置と通信可能に接続される端末と前記複数のユニットとの間の通信を行なう変換部を有する、付記9〜付記14のいずれか一項に記載の情報処理システム。
(付記16)
前記複数のユニットは、それぞれ、ハイパバイザ上に構築される複数の仮想マシンである、付記9〜付記15のいずれか一項に記載の情報処理システム。
(付記17)
外部ネットワークに接続可能な情報処理装置であって、
オペレーティングシステム(OS)を有し、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する複数のユニットと、
前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される外部ネットワークインタフェースと、
前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部において前記外部ネットワークの第1アドレス体系とは独立した前記プロセス間通信の第2アドレス体系で構築された内部ネットワークに接続される内部ネットワークインタフェースと、を有する前記情報処理装置における前記OSに、
前記内部ネットワークインタフェースによって、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なうとともに、
前記ループバックデバイスドライバによって、前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかの判定を行ない、
前記ループバックデバイスドライバによって、前記判定の結果に応じた処理に、前記処理対象パケットを振り分ける、
処理を実行させる、プログラム。
(付記18)
前記処理対象パケットが、自ユニットの前記OS内のプロセスからの第1パケットである場合、前記第1パケットが自ユニット宛であるか他ユニット宛であるかの判定を行ない、
前記判定の結果に応じた処理に、前記第1パケットを振り分ける、
処理を、前記OSに実行させる、付記17に記載のプログラム。
(付記19)
前記判定によって前記第1パケットが自ユニット宛であると判定された場合、前記第1パケットを自ユニット内の前記OSでの受信処理に振り分ける、
処理を、前記OSに実行させる、付記18に記載のプログラム。
(付記20)
前記判定によって前記第1パケットが他ユニット宛であると判定された場合、前記第1パケットを、送信デバイスによって他ユニットに送信すべく、前記送信デバイスを制御する送信デバイスドライバによる転送処理に振り分ける、
処理を、前記OSに実行させる、付記18または付記19に記載のプログラム。
1 情報処理システム
10 情報処理装置(サーバ装置,統合ストレージ装置)
11,11−1〜11−5 ユニット
11A OS
11a CPU(処理部)
11b メモリ(記憶部)
12 内部ネットワーク(フレームリレー,汎用通信回線)
12a 内部ネットワークインタフェース(通信アプリケーションプログラム)
121 他ユニット送信デバイスドライバ
122 他ユニット受信デバイスドライバ
13 カーネル
14 ループバックデバイス
14A ループバックデバイスドライバ
141 判定部
142 振分部
18 変換部(NAPT機構)
20 外部ネットワーク(イーサネット)
20a 外部ネットワークインタフェース
30 ゲートウェイ
40 端末(外部ユニット)

Claims (7)

  1. 外部ネットワークに接続可能な情報処理装置であって、
    オペレーティングシステム(OS)を有し、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する複数のユニットと、
    前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される外部ネットワークインタフェースと、
    前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部ネットワークに接続される内部ネットワークインタフェースと、を有し、
    前記内部ネットワークは、前記外部ネットワークの第1アドレス体系とは独立した、前記プロセス間通信の第2アドレス体系で構築され、
    前記複数のユニットそれぞれの前記内部ネットワークインタフェースは、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なうとともに、
    前記ループバックデバイスドライバは、
    前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する判定部と、
    前記判定部による判定結果に応じた処理に、前記処理対象パケットを振り分ける振分部と、を有する、情報処理装置。
  2. 前記処理対象パケットが、自ユニットの前記OS内のプロセスからの第1パケットである場合、前記判定部は、前記第1パケットが自ユニット宛であるか他ユニット宛であるかを判定し、前記振分部は、前記判定部による判定結果に応じた処理に、前記第1パケットを振り分ける、請求項1に記載の情報処理装置。
  3. 前記判定部によって前記第1パケットが自ユニット宛であると判定された場合、前記振分部は、前記第1パケットを自ユニット内の前記OSでの受信処理に振り分ける、請求項2に記載の情報処理装置。
  4. 前記判定部によって前記第1パケットが他ユニット宛であると判定された場合、前記振分部は、前記第1パケットを、送信デバイスによって他ユニットに送信すべく、前記送信デバイスを制御する送信デバイスドライバによる転送処理に振り分ける、請求項2または請求項3に記載の情報処理装置。
  5. 前記処理対象パケットが、自ユニットの受信デバイスドライバによって他ユニットから受信された自ユニット宛の第2パケットである場合、前記判定部は、前記第2パケットについての判定を行なうことなく、前記振分部は、前記第2パケットを自ユニット内の前記OSでの受信処理に振り分ける、請求項1〜請求項4のいずれか一項に記載の情報処理装置。
  6. 外部ネットワークと、
    前記外部ネットワークに接続可能で、前記外部ネットワークを介して端末と通信可能に接続される情報処理装置と、を備え、
    前記情報処理装置は、
    オペレーティングシステム(OS)を有し、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する複数のユニットと、
    前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される外部ネットワークインタフェースと、
    前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部ネットワークに接続される内部ネットワークインタフェースと、を有し、
    前記内部ネットワークは、前記外部ネットワークの第1アドレス体系とは独立した、前記プロセス間通信の第2アドレス体系で構築され、
    前記複数のユニットそれぞれの前記内部ネットワークインタフェースは、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なうとともに、
    前記ループバックデバイスドライバは、
    前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかを判定する判定部と、
    前記判定部による判定結果に応じた処理に、前記処理対象パケットを振り分ける振分部と、を有する、情報処理システム。
  7. 外部ネットワークに接続可能な情報処理装置であって、
    オペレーティングシステム(OS)を有し、当該OS内のプロセス間通信を行なうループバックデバイスを制御するループバックデバイスドライバを有する複数のユニットと、
    前記複数のユニットのうちの少なくとも一のユニットに設けられ、前記外部ネットワークに接続される外部ネットワークインタフェースと、
    前記複数のユニットのそれぞれに設けられ、前記情報処理装置の内部において前記外部ネットワークの第1アドレス体系とは独立した前記プロセス間通信の第2アドレス体系で構築された内部ネットワークに接続される内部ネットワークインタフェースと、を有する前記情報処理装置における前記OSに、
    前記内部ネットワークインタフェースによって、前記第2アドレス体系を用いて前記複数のユニット間の通信を行なうとともに、
    前記ループバックデバイスドライバによって、前記OSの処理対象パケットが自ユニット宛であるか他ユニット宛であるかの判定を行ない、
    前記ループバックデバイスドライバによって、前記判定の結果に応じた処理に、前記処理対象パケットを振り分ける、
    処理を実行させる、プログラム。
JP2014249558A 2014-12-10 2014-12-10 情報処理装置、情報処理システム、及びプログラム Expired - Fee Related JP6365280B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014249558A JP6365280B2 (ja) 2014-12-10 2014-12-10 情報処理装置、情報処理システム、及びプログラム
US14/951,958 US20160173376A1 (en) 2014-12-10 2015-11-25 Information processing apparatus, information processing system, and computer-readable recording medium having stored program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014249558A JP6365280B2 (ja) 2014-12-10 2014-12-10 情報処理装置、情報処理システム、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016110531A JP2016110531A (ja) 2016-06-20
JP6365280B2 true JP6365280B2 (ja) 2018-08-01

Family

ID=56112253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014249558A Expired - Fee Related JP6365280B2 (ja) 2014-12-10 2014-12-10 情報処理装置、情報処理システム、及びプログラム

Country Status (2)

Country Link
US (1) US20160173376A1 (ja)
JP (1) JP6365280B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397109B2 (en) * 2017-04-24 2019-08-27 International Business Machines Corporation Routing packets in overlapping address spaces
CN109828851A (zh) * 2019-01-16 2019-05-31 烽火通信科技股份有限公司 一种基于非管理员权限的进程间通信方法及系统
CN111385620A (zh) * 2020-03-05 2020-07-07 海信视像科技股份有限公司 一种显示设备、有线网口控制方法及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
JP4883979B2 (ja) * 2005-10-11 2012-02-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および通信制御方法
JP4799118B2 (ja) * 2005-10-14 2011-10-26 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理システム、通信中継装置および通信制御方法
US8413172B2 (en) * 2008-08-20 2013-04-02 Sharp Laboratories Of America, Inc. Method and system for socket API call emulation
JP2011248692A (ja) * 2010-05-28 2011-12-08 Fuji Xerox Co Ltd 情報処理装置及びプログラム
JP4802295B1 (ja) * 2010-08-31 2011-10-26 株式会社スプリングソフト ネットワークシステム及び仮想プライベート接続形成方法
WO2013097030A1 (en) * 2011-12-29 2013-07-04 Infinite Technologic Corporation (Itc) Multimedia device configured to provide both client and server aspects of a network service
JP2014123864A (ja) * 2012-12-21 2014-07-03 Sumitomo Electric System Solutions Co Ltd 情報通信機器の管理システム、管理サーバ、情報通信機器、及びコンピュータプログラム
US9832112B2 (en) * 2014-03-31 2017-11-28 Nicira, Inc. Using different TCP/IP stacks for different hypervisor services
US9729679B2 (en) * 2014-03-31 2017-08-08 Nicira, Inc. Using different TCP/IP stacks for different tenants on a multi-tenant host
US9940180B2 (en) * 2014-03-31 2018-04-10 Nicira, Inc. Using loopback interfaces of multiple TCP/IP stacks for communication between processes
US10091125B2 (en) * 2014-03-31 2018-10-02 Nicira, Inc. Using different TCP/IP stacks with separately allocated resources

Also Published As

Publication number Publication date
JP2016110531A (ja) 2016-06-20
US20160173376A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
US11683256B2 (en) Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US10715411B1 (en) Altering networking switch priority responsive to compute node fitness
US11048569B1 (en) Adaptive timeout mechanism
US7969989B2 (en) High performance ethernet networking utilizing existing fibre channel arbitrated loop HBA technology
US20220060355A1 (en) In-band management interface with user space datapath
EP3213470B1 (en) Universal customer premises equipment
JP6091724B2 (ja) リンクのヘルスチェック方法および装置
US10911405B1 (en) Secure environment on a server
CN108139982B (zh) 多信道输入/输出虚拟化
TWI613548B (zh) 遠端平台管理之計算裝置實施方法、保存用於遠端平台管理的電腦可執行指令之非暫時性媒體、以及遠端管理式計算裝置
US20140098822A1 (en) Port Mirroring at a Network Interface Device
JP2014099847A (ja) PCIe構造でのホスト間メッセージをセキュア化し分離する方法及び装置
US10320921B2 (en) Specializing virtual network device processing to bypass forwarding elements for high packet rate applications
US10846163B1 (en) Hybrid hardware and software reporting management
EP2318926A1 (en) Method and system for low-overhead data transfer
JP2017098935A (ja) 仮想ルータクラスタ、データ転送方法および装置
US10521377B1 (en) Reducing read transactions to peripheral devices
US9973574B2 (en) Packet forwarding optimization without an intervening load balancing node
JP6365280B2 (ja) 情報処理装置、情報処理システム、及びプログラム
JP6337437B2 (ja) 情報処理装置、情報処理システム、及びプログラム
JP2022512135A (ja) プロトコルパケットの処理
US10659391B1 (en) Methods and apparatus to preserve packet order in a multi-fabric virtual network
US11271897B2 (en) Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table
JP6573046B1 (ja) 情報処理装置、情報処理システムおよび情報処理プログラム
AU2016201484A1 (en) System and method for resource allocation and configuration in cluster computing network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180529

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: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180618

R150 Certificate of patent or registration of utility model

Ref document number: 6365280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees