(57)【要約】【課題】  通信アダプタを、アドレス体系が異なるネットワーク用のネットワーク管理プログラムから利用できるようにするための、ネットワーク管理プログラムに対する設定内容に依らず、通信アダプタのアドレス変更等に高速に対応することが可能なアドレス変換プログラムを提供する。【解決手段】  アドレス変換プログラム１０を、ネットワーク管理プログラム２２の第１種通信管理パケットの送信依頼周期が長い場合には、自発的に第２種通信管理パケットの送信依頼をアダプタドライバ２４に対して出力するプログラムとしておく。【選択図】  図２
2006005719.tif 000002
【特許請求の範囲】
【請求項１】
第１種アドレスに基づいた通信を行うための，自身に関する第１種アドレスが変更されることがある通信アダプタ、前記通信アダプタを制御するためのアダプタドライバ、他のコンピュータ内の資源を利用可能なアプリケーションプログラム、及び、前記アプリケーションプログラムによって指定された内容の通信を，第２種アドレスに基づいた形で行うためのプログラムであり、かつ、通信可能なコンピュータを特定するために、ブロードキャストパケットであることを意味する第２種アドレスが送信先アドレスとして設定された所定内容の第２種通信管理パケットの送信依頼を周期的に出力するプログラムであるネットワーク管理プログラムが、導入されているコンピュータ上で実行されるアドレス変換プログラムであって、
前記コンピュータを、
自コンピュータ内の前記通信アダプタ及び他の何台かのコンピュータ内の通信アダプタのそれぞれについて，その通信アダプタに割り当てられている第１種アドレスと第２種アドレスとを含む情報であるアドレス対を記憶しておくためのアドレス対記憶手段と、
前記アドレス対記憶手段に記憶されている情報を利用することにより、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力された場合には、ブロードキャストパケットであることを意味する第１種アドレスを送信先アドレスとして設定し、自コンピュータ内の前記通信アダプタに関するアドレス対を含めたパケットである第１種通信管理パケットの送信を前記アダプタドライバに依頼し、前記ネットワーク管理プログラムによって前記第２種通信管理パケットとは異なるパケットの送信依頼が出力された場合には、そのパケット内の各第２種アドレスを，同一の通信アダプタに関する第１種アドレスに変換したパケットの送信を前記アダプタドライバに依頼する送信パケット処理手段と、
前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力されることなく指定時間が経過した時に、前記第１種通信管理パケットの送信依頼を前記アダプタドライバに対して出力する通信管理パケット送信頻度調整手段と、
前記アドレス記憶手段に記憶されている情報を利用することにより、前記通信アダプタによって受信された，前記第１種通信管理パケットとは異なるパケットが前記アダプタドライバから供給された場合には、そのパケット内の各第１種アドレスを，同一の通信アダプタに関する第２種アドレスに変換したパケットを生成して、前記ネットワーク管理プログラムに供給し、前記通信アダプタによって受信された前記第１種通信管理パケットが前記アダプタドライバから供給された場合には、前記アドレス記憶手段の状態を、当該第１種通信管理パケットに含まれるアドレス対を記憶しており、かつ、当該アドレス対と第１種アドレス，第２種アドレスのいずれか一方のみが一致しているアドレス対を記憶していない状態とする処理と、当該第１種通信管理パケットに相当する内容の前記第２種通信管理パケットを前記ネットワーク管理プログラムに供給する処理とを、行う受信パケット処理手段と
を備える装置として動作させることを特徴とするアドレス変換プログラム。
【請求項２】
前記通信管理パケット送信頻度調整手段が、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力されることなく指定時間が経過した時と、前記通信アダプタの第１種アドレスが変更された時とに、前記第２種通信管理パケットの送信依頼を前記アダプタドライバに対して出力する手段である
ことを特徴とする請求項１記載のアドレス変換プログラム。
【請求項３】
第１種アドレスに基づいた通信を行うための，自身に関する第１種アドレスが変更されることがある通信アダプタを制御するためのアダプタドライバを、アプリケーションプログラムによって指定された内容の通信を，第２種アドレスに基づいた形で行うためのプログラムであり、かつ、通信可能なコンピュータを特定するために、ブロードキャストパケットであることを意味する第２種アドレスが送信先アドレスとして設定された所定内容の第２種通信管理パケットの送信依頼を周期的に出力するプログラムであるネットワーク管理プログラムから利用するためのプログラム利用方法であって、
前記アダプタドライバ及び前記ネットワーク管理プログラムが導入されているコンピュータに、
自コンピュータ内の前記通信アダプタ及び他の何台かのコンピュータ内の通信アダプタのそれぞれについて，その通信アダプタに割り当てられている第１種アドレスと第２種アドレスとを含む情報であるアドレス対を管理する管理ステップと、
前記管理ステップにより管理されているアドレス対を利用することにより、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力された場合には、ブロードキャストパケットであることを意味する第１種アドレスを送信先アドレスとして設定し、自コンピュータ内の前記通信アダプタに関するアドレス対を含めたパケットである第１種通信管理パケットの送信を前記アダプタドライバに依頼し、前記ネットワーク管理プログラムによって前記第２種通信管理パケットとは異なるパケットの送信依頼が出力された場合には、そのパケット内の各第２種アドレスを，同一の通信アダプタに関する第１種アドレスに変換したパケットの送信を前記アダプタドライバに依頼する送信パケット処理ステップと、
前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力されることなく指定時間が経過した時に、前記第１種通信管理パケットの送信依頼を前記アダプタドライバに対して出力する通信管理パケット送信頻度調整ステップと、
前記管理ステップにより管理されている情報を利用することにより、前記通信アダプタによって受信された，前記第１種通信管理パケットとは異なるパケットが前記アダプタドライバから供給された場合には、そのパケット内の各第１種アドレスを，同一の通信アダプタに関する第２種アドレスに変換したパケットを生成して、前記ネットワーク管理プログラムに供給し、前記通信アダプタによって受信された前記第１種通信管理パケットが前記アダプタドライバから供給された場合には、前記管理ステップにより、当該第１種通信管理パケットに含まれるアドレス対が管理されており、かつ、当該アドレス対と第１種アドレス，第２種アドレスのいずれか一方のみが一致しているアドレス対が管理されていない状態とする処理と、当該第１種通信管理パケットに相当する内容の前記第２種通信管理パケットを前記ネットワーク管理プログラムに供給する処理とを、行う受信パケット処理ステップとを、実行させる
ことを特徴とするプログラム利用方法。
【請求項４】
第１種アドレスに基づいた通信を行うための，自身に関する第１種アドレスが変更されることがある通信アダプタを備えていると共に、前記通信アダプタを制御するためのアダプタドライバと、他のコンピュータ内の資源を利用可能なアプリケーションプログラムと、前記アプリケーションプログラムによって指定された内容の通信を，第２種アドレスに基づいた形で行うためのプログラムであり、かつ、通信可能なコンピュータを特定するために、ブロードキャストパケットであることを意味する第２種アドレスが送信先アドレスとして設定された所定内容の第２種通信管理パケットの送信依頼を周期的に出力するプログラムであるネットワーク管理プログラムとが導入されている情報処理装置であって、
前記通信アダプタ及び他の何台かのコンピュータ内の通信アダプタのそれぞれについて，その通信アダプタに割り当てられている第１種アドレスと第２種アドレスとを含む情報であるアドレス対を記憶しておくためのアドレス対記憶手段と、
前記アドレス対記憶手段に記憶されている情報を利用することにより、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力された場合には、ブロードキャストパケットであることを意味する第１種アドレスを送信先アドレスとして設定し、自コンピュータ内の前記通信アダプタに関するアドレス対を含めたパケットである第１種通信管理パケットの送信を前記アダプタドライバに依頼し、前記ネットワーク管理プログラムによって前記第２種通信管理パケットとは異なるパケットの送信依頼が出力された場合には、そのパケット内の各第２種アドレスを，同一の通信アダプタに関する第１種アドレスに変換したパケットの送信を前記アダプタドライバに依頼する送信パケット処理手段と、
前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力されることなく指定時間が経過した時に、前記第１種通信管理パケットの送信依頼を前記アダプタドライバに対して出力する通信管理パケット送信頻度調整処理手段と、
前記アドレス記憶手段に記憶されている情報を利用することにより、前記通信アダプタによって受信された，前記第１種通信管理パケットとは異なるパケットが前記アダプタドライバから供給された場合には、そのパケット内の各第１種アドレスを，同一の通信アダプタに関する第２種アドレスに変換したパケットを生成して、前記ネットワーク管理プログラムに供給し、前記通信アダプタによって受信された前記第１種通信管理パケットが前記アダプタドライバから供給された場合には、前記アドレス記憶手段の状態を、当該第１種通信管理パケットに含まれるアドレス対を記憶しており、かつ、当該アドレス対と第１種アドレス，第２種アドレスのいずれか一方のみが一致しているアドレス対を記憶していない状態とする処理と、当該第１種通信管理パケットに相当する内容の前記第２種通信管理パケットを前記ネットワーク管理プログラムに供給する処理とを、行う受信パケット処理手段と
を備えることを特徴とする情報処理装置。
【請求項５】
請求項１又は請求項２に記載のアドレス変換プログラムが記録されている
ことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス変換プログラムとプログラム利用方法と情報処理装置とコンピュータ可読媒体とに、関する。
【背景技術】
【０００２】
現在、企業等で使用されているコンピュータの中には、図１０(ａ)，(ｂ)に模式的に示してあるように、１個或いは２個のInfiniBandアダプタ２５（InfiniBandは、InfiniBand Trade Associationの商標）を備え、アプリケーションプログラム２１，ネットワーク管理プログラム２２，アドレス変換プログラム２３，InfiniBandドライバ２４等がインストールされたコンピュータ３０が、存在している。
【０００３】
このコンピュータ３０が備えるInfiniBandアダプタ２５は、サーバ・サーバ間やサーバ・ストレージ間を高速に接続するために開発されたＩ／Ｏ規格であるInfiniBand（非特許文献１参照）による通信を行うためのハードウェアである。また、コンピュータ３０にインストールされているInfiniBandドライバ２４は、InfiniBandアダプタ２５を制御するためのプログラムである。
【０００４】
アプリケーションプログラム２１は、自身がインストールされているコンピュータ３０とネットワーク接続されている他のコンピュータ（InfiniBandアダプタ２５を備えたコンピュータ）内のファイルやデータベースを、ネットワーク管理プログラム２２を介して利用することが可能なプログラムである。
【０００５】
ネットワーク管理プログラム２２は、アプリケーションプログラム２１から送信が依頼された情報を、送信先の仮想アドレスを含む幾つかのパケットに変換し、変換した各パケットの送信をアドレス変換プログラム２３に依頼する処理や、アドレス変換プログラム２３から渡されたパケットを元の形の情報に戻してアプリケーションプログラム２１に渡す処理を行うプログラムである。なお、仮想アドレスとは、各InfiniBandアダプタ２５に仮想的に割り当てられている６バイトアドレス（Ethernetアドレス相当のアドレス；Ethernetは、米国Xerox Corp.の商標）のことである。
【０００６】
このネットワーク管理プログラム２２は、パケットの送信に問題が生じた場合（自コンピュータ内のInfiniBandアダプタ２５、パケット送信先のコンピュータ内のInfiniBandアダプタ２５等に問題が生じた場合）、パケットの送信に用いるInfiniBandアダプタ２５を自動的に切り替えさせる処理等を行えるプログラム（ネットワークを２重化する／冗長構成とするためのプログラム）となっている。
【０００７】
ただし、ネットワーク管理プログラム２２は、Ethernetネットワーク用のもの（２個のEthernetアダプタを備えたコンピュータにインストールされるべきもの）として開発されたプログラムとなっている。そして、２個のEthernetアダプタを備えたコンピュータにインストールされている状態にあるネットワーク管理プログラム２２は、各Ethernetアダプタを利用して実際に通信が可能なコンピュータ（ネットワーク管理プログラム２２がインストールされているコンピュータ）を把握するために、各Ethernetアダプタに周期的に所定内容の通信管理パケット（詳細は後述）をブロードキャストさせる処理や、自コンピュータ内の通信管理パケットを受信したEthernetアダプタに、当該通信管理パケットの送信元に対して所定内容のパケット（以下、応答パケットと表記する）を返送させる処理を行う。
【０００８】
アドレス変換プログラム２３は、Ethernetネットワーク用のプログラムであるネットワーク管理プログラム２２を、InfiniBandネットワークの管理に使用できるようにするためのプログラムである。
【０００９】
このアドレス変換プログラム２３は、基本的には、ネットワーク管理プログラム２２から送信が依頼されたパケット内の２個の仮想アドレス（６バイトの送信元アドレスと送信先アドレス）のそれぞれをInfiniBandネットワーク用の２０バイトアドレス（以下、実アドレスと表記する）に変換してアドレス変換後のパケットの送信をInfiniBandドライバ２４に依頼する処理と、InfiniBandドライバ２４から渡されたパケット内の各実アドレス（２０バイトアドレス）を仮想アドレス（６バイトアドレス）に変換してアドレス変換後のパケットをネットワーク管理プログラム２２に渡す処理とを行うプログラムである。なお、ここで説明を行っているアドレス変換プログラム２３とネットワーク管理プログラム２２との間で授受される通常のパケットは、図１１(ａ)に模式的に示してあるように、アドレス長，６バイトの送信先アドレス（送信先の仮想アドレス），６バイトの送信元アドレス（送信元の仮想アドレス），自パケットが通常のパケットであることを示す識別子（0x21），後続するデータの長さを示すデータ長，及び，データを含むものとなっている。また、アドレス変換プログラム２３とInfiniBandドライバ２４との間で授受されるパケットは、図１１(ｂ)に模式的に示してあるように、アドレス長，２０バイトの送信先アドレス（送信先の実アドレス），２０バイトの送信元アドレス（送信元の実アドレス），自パケットが通常のパケットであることを示す識別子，データ長，及び，データを含むものとなっている。
【００１０】
そして、InfiniBandアドレスは、運用中にその値が変更されることがあるアドレスであるため、アドレス変換プログラム２３は、仮想アドレスと実アドレスとの対応関係を管理する処理を行いながら、上記した処理を行うプログラムとなっている。
【００１１】
具体的には、ネットワーク管理プログラム２２がアドレス変換プログラム２３（正確には、特定のInfiniBandアダプタ２５用に生成された，アドレス変換プログラム２３のインスタンス）に送信を依頼する通信管理パケット（以下、第２種通信管理パケットと表記する）は、図１２(ａ)に模式的に示したように、仮想アドレス形式の（Ethenetネットワーク用の）ブロードキャストアドレスが送信先アドレスとして設定され、パケットを送信させるInfiniBandアダプタ２５の仮想アドレスが送信元アドレスとして設定され、自パケットが通信管理パケットであることを示す"0x20"が識別子として設定されたパケットとなっている。
【００１２】
この第２種通信管理パケットの送信が依頼された場合、アドレス変換プログラム２３は、図１２(ｂ)に示したような構成の第１種通信管理パケットの送信をInfiniBandドライバ２４（正確には、特定のInfiniBandアダプタ２５用に生成された，InfiniBandドライバ２４のインスタンス）に依頼する。すなわち、アドレス変換プログラム２３は、第２種通信管理パケットに対して、各仮想アドレスを対応する実アドレスに変換する処理（仮想アドレス形式のブロードキャストアドレスを実アドレス形式のブロードキャストアドレスに変換し、仮想アドレス形式の送信元アドレスを実アドレス形式の送信元アドレスに変換する処理）、パケットを送信させるInfiniBandアダプタ２５に割り当てられている仮想アドレスと実アドレスとからなる情報（以下、アドレス対と表記する）を追加する処理等を施したパケットである第１種通信管理パケットの送信を、InfiniBandドライバ２４に依頼する。
【００１３】
そして、第１種通信管理パケットの送信が依頼されたInfiniBandドライバ２４がInfiniBandアダプタ２５に送信させたパケット（以下、このパケットのことも、第１種通信管理パケットと表記する）をInfiniBandアダプタ２５及びInfiniBandドライバ２４を介して受け取った他の各コンピュータ３０内のアドレス変換プログラム２３は、その第１種通信管理パケットに含まれるアドレス対に基づき，仮想アドレスと実アドレスとの対応関係を記憶しておくために管理しているアドレス変換テーブルの内容を更新する処理と、パケットの形式を再び図１２（ａ）の形式に戻してネットワーク管理プログラム２２に渡す処理とを、行う。
【００１４】
以上の説明から明らかなように、コンピュータ３０に用いられているアドレス変換プログラム２３は、Ethernetによる通信をネットワーク管理プログラム２２を用いて行っていたコンピュータを、ネットワーク管理プログラム２２をそのまま用いた形でInfiniBandにより通信を行うコンピュータにグレードアップできるプログラムとなっている。ただし、このアドレス変換プログラム２３は、ネットワーク管理プログラム２２の設定を誤ると、問題が生ずるものとなっていた。
【００１５】
具体的には、ネットワーク管理プログラム２２は、第２種通信管理パケットの送信依頼周期を指定することが可能なプログラムとなっている。そして、InfiniBandアドレスの変更は１００ミリ秒程度で終了する処理となっているのであるが、アドレス変換プログラム２３は、送信元のコンピュータ３０のネットワーク管理プログラム２２が送信した第２種通信管理パケット（アドレス変換ドライバ２３が第１種通信管理パケットに変更）が既に受信されていて、アドレス変換テーブルに送信先のアドレス対が存在するときだけに、InfiniBandドライバ２４にInfiniBand用通信パケットの送信を依頼するプログラムとなっている。このため、複数台のコンピュータ３０からなるネットワークシステムは、或るコンピュータ３０内の或るInfiniBandアダプタ２５に関するInfiniBandアドレスが変更された際、InfiniBandアドレスを変更する処理自体は１００ミリ秒程度で完了しているにも拘わらず、InfiniBandアドレスの変更完了後、ネットワーク管理プログラム２２に対して設定されている第２種通信管理パケットの送信依頼周期相当の時間が経過しないと、InfiniBandアドレスが変更されたInfiniBandアダプタ２５を利用できる状態とならないシステムとなっていた。
【００１６】
また、複数台のコンピュータ３０からなるネットワークシステムは、或るコンピュータ３０内のネットワーク管理プログラム２２を起動した後、そのコンピュータ３０内のネットワーク管理プログラム２２に対して設定されている第２種通信管理パケットの送信依頼周期相当の時間が経過しないと、当該コンピュータ３０が他のコンピュータ３０と通信を行える状態とならないシステムともなっていた。
【非特許文献１】「InfiniBand Architecture Specification Volume 1 Release 1.0」、InfiniBand Trade Association（IBTA）、2000年10月
【発明の開示】
【発明が解決しようとする課題】
【００１７】
そこで、本発明の課題は、上記したアドレス変換プログラム２３のような形で使用されるアドレス変換プログラムであって、自プログラムが実行されたコンピュータを、ネットワーク管理プログラム２２相当のプログラムの設定内容に依らず、通信アダプタのアドレス変更等に高速に対応することが可能な装置として動作させることが出来るアドレス変換プログラム、そのようなアドレス変換プログラムが記録されたコンピュータ可読媒体を、提供することにある。
【００１８】
また、本発明の他の課題は、InfiniBandドライバ２４のようなアダプタドライバを、ネットワーク管理プログラム２２のようなネットワーク管理プログラムから、上記したような問題が生じない形で利用できるプログラム利用方法を、提供することにある。
【００１９】
さらに、本発明の他の課題は、InfiniBandドライバ２４のようなアダプタドライバと、ネットワーク管理プログラム２２のようなネットワーク管理プログラムとが導入されている情報処理装置であって、上記のような問題が生じない形で動作する情報処理装置を、提供することにある。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、本発明では、第１種アドレスに基づいた通信を行うための，自身に関する第１種アドレスが変更されることがある通信アダプタ、前記通信アダプタを制御するためのアダプタドライバ、他のコンピュータ内の資源を利用可能なアプリケーションプログラム、及び、前記アプリケーションプログラムによって指定された内容の通信を，第２種アドレスに基づいた形で行うためのプログラムであり、かつ、通信可能なコンピュータを特定するために、ブロードキャストパケットであることを意味する第２種アドレスが送信先アドレスとして設定された所定内容の第２種通信管理パケットの送信依頼を周期的に出力するプログラムであるネットワーク管理プログラムが、導入されているコンピュータ上で実行されるアドレス変換プログラムを、自身が実行されたコンピュータを、自コンピュータ内の前記通信アダプタ及び他の何台かのコンピュータ内の通信アダプタのそれぞれについて，その通信アダプタに割り当てられている第１種アドレスと第２種アドレスとを含む情報であるアドレス対を記憶しておくためのアドレス対記憶手段と、前記アドレス対記憶手段に記憶されている情報を利用することにより、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力された場合には、ブロードキャストパケットであることを意味する第１種アドレスを送信先アドレスとして設定し、自コンピュータ内の前記通信アダプタに関するアドレス対を含めたパケットである第１種通信管理パケットの送信を前記アダプタドライバに依頼し、前記ネットワーク管理プログラムによって前記第２種通信管理パケットとは異なるパケットの送信依頼が出力された場合には、そのパケット内の各第２種アドレスを，同一の通信アダプタに関する第１種アドレスに変換したパケットの送信を前記アダプタドライバに依頼する送信パケット処理手段と、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力されることなく指定時間が経過した時に、前記第１種通信管理パケットの送信依頼を前記アダプタドライバに対して出力する通信管理パケット送信頻度調整手段と、前記アドレス記憶手段に記憶されている情報を利用することにより、前記通信アダプタによって受信された，前記第１種通信管理パケットとは異なるパケットが前記アダプタドライバから供給された場合には、そのパケット内の各第１種アドレスを，同一の通信アダプタに関する第２種アドレスに変換したパケットを生成して、前記ネットワーク管理プログラムに供給し、前記通信アダプタによって受信された前記第１種通信管理パケットが前記アダプタドライバから供給された場合には、前記アドレス記憶手段の状態を、当該第１種通信管理パケットに含まれるアドレス対を記憶しており、かつ、当該アドレス対と第１種アドレス，第２種アドレスのいずれか一方のみが一致しているアドレス対を記憶していない状態とする処理と、当該第１種通信管理パケットに相当する内容の前記第２種通信管理パケットを前記ネットワーク管理プログラムに供給する処理とを、行う受信パケット処理手段とを備える装置として動作させるプログラムとして作成しておく。
【００２１】
要するに、本発明のアドレス変換プログラムは、ネットワーク管理プログラムによる第１種通信管理パケットの送信依頼周期が長い場合（或いは、ネットワーク管理プログラムが第１種通信管理パケットの送信依頼を全く出力しない場合）には、自発的に第２種通信管理パケットの送信依頼をアダプタドライバに対して出力する機能（アダプタドライバに第１種通信管理パケットを送信させる機能）を有する。従って、このアドレス変換プログラムを用いれば、コンピュータを、ネットワーク管理プログラムの設定内容に依らず、通信アダプタのアドレス変更等に高速に対応することが可能な装置として動作させることが出来ることになる。
【００２２】
なお、本発明のアドレス変換プログラムを実現するに際しては、通信アダプタのアドレス変更に、より高速に対応することが出来るようにするために、通信管理パケット送信頻度調整手段が、前記ネットワーク管理プログラムによって前記第２種通信管理パケットの送信依頼が出力されることなく指定時間が経過した時と、前記通信アダプタの第１種アドレスが変更された時とに、前記第１種通信管理パケットの送信依頼を前記アダプタドライバに対して出力する手段となるようにしておくことが望ましい。
【００２３】
そして、本発明のプログラム利用方法は、本発明のアドレス変換プログラムにより行われる制御と同手順の制御により、アダプタドライバとネットワーク管理プログラムとが利用されるものとなっている。従って、本発明のプログラム利用方法を用いれば、ネットワーク管理プログラムの設定内容に依らず、通信アダプタのアドレス変更等に高速に対応することが可能な形で、アダプタドライバ及びネットワーク管理プログラムを利用出来ることになる。また、本発明の情報処理装置は、本発明のアドレス変換プログラムが実行されているコンピュータ相当の装置となっている。従って、本発明の情報処理装置は、ネットワーク管理プログラムの設定内容に依らず、通信アダプタのアドレス変更等に高速に対応することが可能な装置として機能することになる。
【発明の効果】
【００２４】
本発明によれば、ネットワーク管理プログラムの設定内容に依らず、通信アダプタのアドレス変更等に高速に対応することが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００２６】
図１(ａ)，(ｂ)に模式的に示したように、本発明の一実施形態に係るアドレス変換プログラム１０は、２個或いは１個のInfiniBandアダプタ２５を備え、アプリケーションプログラム２１，ネットワーク管理プログラム２２，InfiniBandドライバ２４等がインストールされたコンピュータ２０上で実行されるプログラムである。
【００２７】
このコンピュータ２０に用いられているアプリケーションプログラム２１，ネットワーク管理プログラム２２，InfiniBandドライバ２４，InfiniBandアダプタ２５は、いずれも、コンピュータ３０（図１０）に用いられているものと同じものである。このため、以下では、アドレス変換プログラム１０の機能のみを説明することにする。
【００２８】
本実施形態に係るアドレス変換プログラム１０も、アドレス変換プログラム２３と同様に、ネットワーク管理プログラム２２から送信が依頼されたパケット（図１１(ａ)参照）内の２個の仮想アドレス（本発明の第２種アドレスに相当）のそれぞれを実アドレス（InfiniBandネットワーク用の２０バイトアドレス；本発明の第１種アドレスに相当）に変換してアドレス変換後のパケットの送信をInfiniBandドライバ２４に依頼する処理と、InfiniBandドライバ２４から渡されたパケット（図１１(ｂ)参照）内の各実アドレスを仮想アドレスに変換してアドレス変換後のパケットをネットワーク管理プログラム２２に渡す処理とを行うプログラムである。
【００２９】
ただし、アドレス変換プログラム１０は、InfiniBandアダプタ２５に対して第１種通信管理パケット（図１２(ｂ)参照）の送信依頼を出力する条件が、アドレス変換プログラム２３とは異なったプログラムとなっている。
【００３０】
具体的には、図２に模式的に示したように、アドレス変換プログラム１０は、(１)ネットワーク管理プログラム２２から，第２種通信管理パケット（図１１(ａ)参照）の送信依頼が入力された時と、(２)第２種通信管理パケットの送信依頼が入力されない状態が、予め設定されている指定時間（通常、２００ミリ秒程度の時間）以上継続した時と、(３)InfiniBandドライバ２４から，InfiniBandアダプタ２５のアドレスの変更が完了したことを表すアドレス完了通知が入力された時とに、InfiniBandアダプタ２５に対して第１種通信管理パケットの送信依頼を出力するプログラムとして作成されている。
【００３１】
より具体的には、アドレス変換プログラム１０は、以下のように機能するプログラムとなっている。
【００３２】
アドレス変換プログラム１０は、ネットワーク管理プログラム２２から，第２種通信管理パケットの送信依頼が入力された時には、図３に示した手順の送信依頼処理を行う。なお、この送信依頼処理は、各InfiniBandアダプタ２５について実行される処理（InfiniBandアダプタ２５毎に生成されたアドレス変換プログラム１０のインスタンスが実行する処理）となっている。
【００３３】
すなわち、第２種通信管理パケットの送信依頼が入力された結果として送信依頼処理を開始したアドレス変換プログラム１０は、まず、第１種通信管理パケット（図１２参照）の送信依頼をInfiniBandドライバ２４に対して出力する(ステップＳ１０１)。そして、アドレス変換プログラム１０は、メモリ上の数値情報であるブロードキャストカウンタに“１”を加算（ステップＳ１０２）してから、送信依頼処理を終了する。
【００３４】
また、アドレス変換プログラム１０は、図４に示した手順の通信管理パケット送信頻度調整処理を、予め設定されている指定時間（通常、２００ミリ秒程度の時間）が経過する度に行う。なお、この通信管理パケット送信頻度調整も、各InfiniBandアダプタ２５について実行される処理となっている。
【００３５】
すなわち、指定時間の経過により通信管理パケット送信頻度調整処理を開始したアドレス変換プログラム１０は、まず、ブロードキャストカウンタの値が“０”であるか否かを判断する(ステップＳ２０１)。そして、ブロードキャストカウンタの値が“０”ではなかった場合(ステップＳ２０１；ＮＯ)、すなわち、通信管理パケット送信頻度調整処理が前回実行されてから今回実行されるまでの間に送信依頼処理（図３）が実行されていた場合、アドレス変換プログラム１０は、ブロードキャストカウンタに“０”を設定(ステップＳ２０３)してから、この通信管理パケット送信頻度調整を終了する（指定時間が経過するのを監視する状態となる）。一方、ブロードキャストカウンタの値が“０”であった場合(ステップＳ２０１；ＹＥＳ)、すなわち、通信管理パケット送信頻度調整処理が前回実行されてから今回実行されるまでの間に送信依頼処理が実行されていなかった場合、アドレス変換プログラム１０は、データが含まれていない第１種通信管理パケットの送信依頼をInfiniBandドライバ２４に対して出力する(ステップＳ３０２)。すなわち、アドレス変換プログラム１０は、図５に示した構成の第１種通信管理パケットの送信依頼をInfiniBandドライバ２４に対して出力する。そして、アドレス変換プログラム１０は、通信管理パケット送信頻度調整を終了する。
【００３６】
また、アドレス変換プログラム１０は、InfiniBandドライバ２４から，或るInfiniBandアダプタ２５についてのアドレス変更完了通知が入力された場合には、当該InfiniBandアダプタ２５に関するものとして管理しているアドレス対（実アドレスと仮想アドレスとからなる情報）内の実アドレスを最新のものに更新する処理（詳細は後述）と、第１種通信管理パケットを，InfiniBandアドレスが変更されたInfiniBandアダプタ２５に送信させるための処理とを、行う。
【００３７】
また、アドレス変換プログラム１０は、或るInfiniBandアダプタ２５により受信された第１種通信管理パケットがInfiniBandドライバ２４から入力された場合には、その第１種通信管理パケットに相当する第２種通信管理パケットをネットワーク管理プログラム２２に供給する処理を行うと共に、図６に示した手順のアドレス変換テーブル更新処理を行う。なお、このアドレス変換テーブル更新処理も、各InfiniBandアダプタ２５について実行される処理となっている。
【００３８】
すなわち、第１種通信管理パケットの入力によりアドレス変換テーブル更新処理を開始したアドレス変換プログラム１０は、まず、入力された第１種通信管理パケット（図１２(ｂ)参照）に含まれているアドレス対（以下、注目アドレス対と表記する）と仮想アドレス，実アドレスの少なくとも一方が一致するメンバがアドレス変換テーブル内に存在しているか否かを判断する(ステップＳ３０１)。
【００３９】
ここで、アドレス変換テーブルとは、InfiniBandドライバ２４から渡されたパケット内に含まれる各実アドレスを仮想アドレスに変換する際や、ネットワーク管理プログラム２２から渡されたパケット内に含まれる各仮想アドレスを実アドレスに変換する際に、アドレス変換プログラム１０が参照する情報のことである。このアドレス変換テーブルは、図７に模式的に示したように、アドレス対（実アドレスと仮想アドレスとからなる情報）と未使用カウンタと次メンバへのポインタとを含むメンバの集合となっている。なお、コンピュータ２０の起動時には、アドレス変換プログラム１０によって、コンピュータ３０内のＨＤＤから、InfiniBandアダプタ２５に割り当てられている仮想アドレスが読み出されると共に、InfiniBandドライバ２４からInfiniBandアダプタ２５の実アドレスが取得され、それらのアドレスからなるアドレス対を含むメンバが、このアドレス管理テーブルに追加される。そして、上記したアドレス変更完了通知の入力時には、このアドレス管理テーブル内に記憶されている，自コンピュータに関する（アドレスが変更されたInfiniBandアダプタ２５に関する）アドレス対の内容が変更される。
【００４０】
注目アドレス対と仮想アドレス，実アドレスの少なくとも一方が一致するメンバがアドレス変換テーブル内に存在していなかった場合(ステップＳ３０１；ＮＯ)、アドレス変換プログラム１０は、注目アドレス対と同じ内容のアドレス対を設定し、未使用カウンタを“０”としたメンバをアドレス変換テーブルに追加する(ステップＳ３０５)。なお、このステップＳ３０５の処理は、図８に模式的に示したように、追加したメンバが、アドレス変換テーブル内の先頭のメンバとなる形で行われる処理となっている。
【００４１】
そして、ステップＳ３０５の処理を終えたアドレス変換プログラム１０は、このアドレス変換テーブル更新処理を終了する。
【００４２】
また、注目アドレス対と仮想アドレス，実アドレスの少なくとも一方が一致するメンバがアドレス変換テーブル内に存在していた場合(ステップＳ３０１；ＹＥＳ)、アドレス変換プログラム１０は、注目アドレス対と同じアドレス対を含むメンバがアドレス変換テーブル内に存在しているか否かを判断する(ステップＳ３０２)。そして、アドレス変換プログラム１０は、そのようなメンバがアドレス変換テーブル内に存在していた場合(ステップＳ３０２；ＹＥＳ)には、当該メンバの未使用カウンタの値を“０”とする処理(ステップＳ３０３)を行ってから、このアドレス変換テーブル更新処理を終了する。
【００４３】
一方、注目アドレス対と同じアドレス対を含むメンバがアドレス変換テーブル内に存在していなかった場合(ステップＳ３０２；ＮＯ)、アドレス変換プログラム１０は、仮想アドレス，実アドレスの一方のみが注目アドレス対と一致しているアドレス対を含むメンバをアドレス変換テーブルから削除する処理(ステップＳ３０４)と、注目アドレス対と同じアドレス対を設定し、未使用カウンタを“０”としたメンバをアドレス変換テーブルに追加する処理(ステップＳ３０５)とを行ってから、アドレス変換テーブル更新処理を終了する。なお、ステップＳ３０２でＮＯ側への分岐が行われた場合、仮想アドレス，実アドレスの一方のみが注目アドレス対と一致しているアドレス対を含むメンバがアドレス変換テーブルから削除されるようにしているのは、この場合（ステップＳ３０１でＹＥＳ側への分岐が行われ、ステップＳ３０２で“ＮＯ”側への分岐が行われた場合）、注目アドレス対と共存が不可能な内容のアドレス対（仮想アドレス，実アドレスの一方のみが注目アドレス対と一致しているアドレス対）を含むメンバがアドレス変換テーブル内に存在していることになるためである。
【００４４】
最後に、未使用カウンタの用途を説明しておく。
【００４５】
アドレス変換プログラム１０は、アドレス変換テーブル内の或るメンバに含まれるアドレス対を利用してアドレスの変換を行った際には、当該メンバの未使用カウンタを“０”とするプログラムであると共に、予め指定された時間（５秒程度の時間；以下所定時間と表記する）が経過する度に、図９に示した手順の不要メンバ削除処理を実行するプログラムとなっている。
【００４６】
すなわち、不要メンバ削除処理を開始したアドレス変換プログラム１０は、まず、アドレス変換テーブルから、現処理で未処理のメンバの特定を試みる(ステップＳ４０１)。そして、アドレス変換プログラム１０は、未処理のメンバが特定できた場合(ステップＳ４０１；ＹＥＳ)には、特定したメンバの未使用カウンタに“１”を加算(ステップＳ４０２)した後、未使用カウンタの値が“６０”であるか否かを判断(ステップＳ４０３)し、未使用カウンタの値が“６０”ではなかった場合(ステップＳ４０４；ＮＯ)には、ステップＳ４０１以降の処理を再び開始する。一方、未使用カウンタの値が“６０”であった場合(ステップＳ４０４；ＹＥＳ)、アドレス変換プログラム１０は、当該メンバをアドレス変換テーブルから削除する処理（ステップＳ４０５）を行ってから、ステップＳ４０１以降の処理を再び開始する。
【００４７】
そして、アドレス変換プログラム１０は、アドレス変換テーブル内に未処理のメンバが存在しなくなったときに(ステップＳ４０２；ＹＥＳ)、この不要メンバ削除処理を終了する。
【００４８】
要するに、未使用カウンタは、一定時間（所定時間×６０；所定時間が５秒の場合には、５分）以上、利用されていないメンバを特定してアドレス変換テーブル内から削除できるようにするために、アドレス変換テーブル内の各メンバに含められている情報となっている。
【００４９】
以上、説明したように、本実施形態に係るアドレス変換プログラム１０は、ネットワーク管理プログラム２２から第２種通信管理パケットの送信依頼が入力されない状態が指定時間以上継続した場合、自発的に第１種通信管理パケットの送信依頼をInfiniBandドライバ２４に対して出力する機能（通信管理パケット送信処理を周期的に実行する機能）を有するプログラムとなっている。また、InfiniBandアダプタ２５のアドレスが変更された場合、即座に、第２種通信管理パケットの送信依頼をInfiniBandドライバ２４に対して出力する機能を有するプログラムともなっている。
【００５０】
従って、アドレス変換プログラム１０が用いられているコンピュータ２０は、ネットワーク管理プログラム２２の第２種通信管理パケットの送信依頼周期に関する設定内容に依らず、InfiniBandアダプタ２５のアドレスが変更された場合、そのことを即座に他のコンピュータ２０に通知できる装置として機能することになる。
【００５１】
＜変形形態＞
上記したアドレス変換プログラム１０は、各種の変形を行うことが出来る。例えば、アドレス変換プログラム１０から、InfiniBandアダプタ２５のアドレスが変更された時に、第１種通信管理パケットの送信依頼をInfiniBandドライバ２４に対して出力する機能を取り除いておいても良い。ただし、そのようにアドレス変換プログラム１０を変形しておいた場合、アドレスの変更完了後、指定時間（例えば、２００ミリ秒）が経過したときに、アドレスの変更が他のコンピュータ２０に通知される場合があることになるので、通信が行えない時間を可能な限り短くしたい場合には、上記したアドレス変換プログラム１０の構成を採用すべきである。
【００５２】
また、アドレス変換プログラム１０に、InfiniBandドライバ２４としての機能を持たせてしまっても良く、InfiniBandとは異なる通信規格用のものにアドレス変換プログラム１０を変形しても良い。また、アドレス変換テーブルの具体的な構成やパケットの具体的な構成を上記したものと異なるものにしておいても良い。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係るアドレス変換プログラムの使用形態を説明するための図である。
【図２】実施形態に係るアドレス変換プログラムの機能を説明するための図である。
【図３】実施形態に係るアドレス変換プログラムが、第２種通信管理パケット送信依頼入力時に実行する送信依頼処理の流れ図である。
【図４】実施形態に係るアドレス変換プログラムが周期的に実行する通信管理パケット送信頻度調整処理の流れ図である。
【図５】通信管理パケット送信頻度調整処理時に送信が依頼される第１種通信管理パケットの説明図である。
【図６】実施形態に係るアドレス変換プログラムが第１種通信管理パケット入力時に実行するアドレス変換テーブル更新処理の流れ図である。
【図７】実施形態に係るアドレス変換プログラムが管理するアドレス変換テーブルの説明図である。
【図８】実施形態に係るアドレス変換プログラムによるアドレス変換テーブルへのメンバの追加方法を説明するための図である。
【図９】実施形態に係るアドレス変換プログラムが周期的に実行する不要メンバ削除処理の流れ図である。
【図１０】アドレス変換プログラムが用いられた既存のコンピュータの構成図である。
【図１１】既存のアドレス変換プログラム，ネットワーク管理プログラム間で授受される通常のパケットの説明図である。
【図１２】既存のアドレス変換プログラム，ネットワーク管理プログラム間で授受される通信管理パケットの説明図である。
【符号の説明】
【００５４】
１０、２３  アドレス変換プログラム
２０，３０  コンピュータ
２１  アプリケーションプログラム
２２  ネットワーク管理プログラム
２４  InfiniBandドライバ
２５  InfiniBandアダプタ
【図１】
2006005719.tif 000003
【図２】
2006005719.tif 000004
【図３】
2006005719.tif 000005
【図４】
2006005719.tif 000006
【図５】
2006005719.tif 000007
【図６】
2006005719.tif 000008
【図７】
2006005719.tif 000009
【図８】
2006005719.tif 000010
【図９】
2006005719.tif 000011
【図１０】
2006005719.tif 000012
【図１１】
2006005719.tif 000013
【図１２】
2006005719.tif 000014