(57)【要約】【課題】  １つの物理サーバのメモリ上のデータを２つ以上の物理サーバのメモリにコピーしなければならない場合に，マルチキャストデータ転送に対応していない汎用Ｉ／Ｏインタフェースを用いると，データ書き込み命令を複数の物理サーバ毎に発行しなければならい。その場合，サーバ間通信機構とＩ／Ｏスイッチ間のトラフィックが増加してしまい，転送性能が低下してしまう課題があった。【解決手段】  サーバ間通信機構の制御レジスタに複数の宛先情報を保持できるレジスタを持ち，データを複数の宛先に送信する際は，前記レジスタの複数の宛先情報を前記データに付加する機構を備え，複数の宛先に対するデータ転送を1回のデータ書き込み命令で行い，Ｉ／Ｏスイッチでは，サーバ間通信機構が発行した前記データ書き込み命令を複数の宛先毎のデータ書き込み命令に整形し，複数の宛先に同時にデータ書き込み命令を発行する。【選択図】  図１
2011180933.tif 000002
【特許請求の範囲】
【請求項１】
複数のアップストリームポートと１つ以上のダウンストリームポートを持つＩ／Ｏスイッチにおいて，複数の宛先情報を保持できる制御レジスタを持ち，データを複数の宛先に送信する際は，前記レジスタの複数の宛先情報を前記データに付加する機構を備え，複数の宛先へのマルチキャスト送信を行うことができるサーバ間通信機構が内蔵されたことを特徴とする，Ｉ／Ｏスイッチ。
【請求項２】
請求項１記載のＩ／Ｏスイッチにおいて，前記Ｉ／Ｏスイッチ内のスイッチ部には，請求項１に記載のサーバ間通信機構から発行された命令がマルチキャストかユニキャストかを判定する機構と，前記判定機構でマルチキャスト書き込み命令と判定された場合に，マルチキャスト命令内の複数の宛先情報それぞれと前記マルチキャスト命令内の一つのデータを用いてマルチキャスト命令を宛先数分のユニキャスト命令に整形する機構を備え，発行可能なポートに複数のユニキャスト命令を同時に発行することを特徴とする，Ｉ／Ｏスイッチ。
【請求項３】
それぞれに１つ以上のＣＰＵとメモリを有する複数の物理サーバと，複数のアップストリームポートと１つ以上のダウンストリームポートを持つ請求項１または請求項２記載のＩ／Ｏスイッチからなり，前記各物理サーバが前記Ｉ／Ｏスイッチのアップストリームポートを経由して接続されたコンピュータシステムにおいて，前記Ｉ／Ｏスイッチ内のサーバ間通信機構に対する物理サーバからの要求により，データ送信元の物理サーバのメモリ上にあるデータを複数の送信先の物理サーバのメモリ上にマルチキャスト送信することを特徴とする，コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，３台以上の物理サーバが，Ｉ／Ｏスイッチを介して接続されたコンピュータシステムにおいて，物理サーバ間の通信を行うためのサーバ間通信機構に関する。
【背景技術】
【０００２】
近年のコンピュータシステムにおいては，ＣＰＵ単体の高性能化およびＣＰＵのマルチコア化などの処理性能向上にともなって，１台の物理サーバ上で複数の仮想サーバを稼働させる，サーバ統合やのニーズが高まってきている。サーバ統合を行うことにより，１台の物理サーバで稼働するＯＳやアプリケーションの数が増加する。その結果，１台の物理サーバに接続しなければならないＩ／Ｏデバイスの増加が見込まれる。より多くのＩ／Ｏデバイスを搭載するため，サーバとＩ／Ｏデバイスとの間をＰＣＩ−Ｅｘｐｒｅｓｓ（Ｒ）スイッチなどのＩ／Ｏスイッチを介して接続する必要性が高まっている。
【０００３】
Ｉ／Ｏスイッチを用いて，サーバに接続する物理的なＩ／Ｏデバイスの数を増やすアプローチの一方で，物理サーバもしくは仮想サーバ間でＩ／Ｏデバイスを共有する，Ｉ／Ｏ仮想化の普及も見込まれている。Ｉ／Ｏ仮想化とは，物理的なＩ／Ｏデバイスの上に複数の仮想Ｉ／Ｏデバイスを設け，各物理サーバもしくは仮想サーバにそれぞれ仮想Ｉ／Ｏデバイスを割り当てることにより，Ｉ／Ｏデバイスを物理サーバもしくは仮想サーバ間で共有するという手法である。Ｉ／Ｏデバイスを複数の物理サーバで共有する場合には，複数のアップストリームポートを有するＩ／Ｏスイッチを用意し，このＩ／Ｏスイッチの各アップストリームポートにそれぞれ物理サーバを接続し，ダウンストリームポートにはＩ／Ｏデバイスを接続する構成とし，Ｉ／Ｏデバイスを各物理サーバ間で共有する。このようなＩ／Ｏ仮想化を用いることにより，Ｉ／Ｏデバイスの物理的な数を増やすことなく，統合されたサーバ上で稼働するＯＳやアプリケーションのそれぞれから多くのＩ／Ｏデバイスを使用することが可能になる。
【０００４】
また，メモリ上にデータベースを構築して従来のディスク上に構築したデータベースよりも高速にデータ通信を行うことができるインメモリＤＢにおいて，現用系の物理サーバのメモリ上のデータを２つ以上の待機系の物理サーバのメモリに高速にコピーして，多重化した物理サーバのメモリデータを同期させる要求がある。この場合，メモリ上の大量のデータを高速に転送することが必要であり，物理サーバ間の高速通信手段が必要となっている。
【０００５】
例えば，特許文献１では，２つ以上のサーバとＩ／Ｏデバイスがスイッチで接続されたコンピュータシステムにおいて，サーバ間通信にＩ／Ｏスイッチ内に内蔵されたサーバ間高速通信機構を用いて，サーバ間通信機構がデータ転送のための転送コマンドを解釈して，汎用Ｉ／Ｏインタフェースの制御を行い，サーバ間のデータ転送を行う，高速通信手段が示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２８２９１７
【特許文献２】特開２０００−４９２２
【特許文献３】特開平９−８３５２２
【発明の概要】
【発明が解決しようとする課題】
【０００７】
インメモリＤＢに適用できるメモリデータの同期処理では，現用系の１つの物理サーバのメモリ上のデータを２つ以上の待機系の物理サーバのメモリにコピーしなければならないため，複数のメモリに同時に書き込みを行わなければならない。データのマルチキャスト送信に対応していない汎用Ｉ／Ｏインタフェースを用いる場合，データ書き込み命令を複数の物理サーバ毎に発行しなければならい。その場合，宛先の物理サーバが増えるほど，サーバ間通信機構とＩ／Ｏスイッチ間のトラフィックが増加してしまい，データ転送時間が長くなることから，同期処理性能が低下してしまう課題があった。
【課題を解決するための手段】
【０００８】
前述の課題を解決するため，本発明のマルチキャスト送信機能を備えたサーバ間通信機構は，サーバ間通信機構の制御レジスタに複数の宛先情報を保持できるレジスタを持ち，データを複数の宛先に送信する際は，前記レジスタの複数の宛先情報を前記データに付加する機構を備え，複数の宛先に対するデータ転送を1回のデータ書き込み命令で行うことができる。さらに，Ｉ／Ｏスイッチでは，サーバ間通信機構が発行した前記データ書き込み命令を複数の宛先毎のデータ書き込み命令に整形し，複数の宛先に同時にデータ書き込み命令を発行することを特徴とする。
【発明の効果】
【０００９】
本発明のサーバ間通信機構およびＩ／Ｏスイッチでは，データのマルチキャスト送信処理は，サーバ間通信機構が内蔵されたＩ／Ｏスイッチ内で行われ，スイッチ外ではＩ／Ｏリンクのプロトコルに準じた命令として各物理サーバに送信されるため，マルチキャスト送信に対応していない汎用Ｉ／Ｏインタフェースでも高速にマルチキャストデータ送信を行いたい場合に効果がある。さらに，本発明のサーバ間通信機構およびＩ／Ｏスイッチでは，物理サーバ間のデータ転送に，マルチキャスト送信機能をサポートする通信プロトコルに対応したるＩ／Ｏデバイスを利用する必要がなく，汎用Ｉ／Ｏインタフェースのみを使用したサーバ間通信機構の内部で行われるため，プロトコル変換のオーバヘッドが生じない。従って通信スループットやレイテンシの面で有利となる。例えば，マルチキャスト送信に対応していない汎用Ｉ／Ｏインタフェースを用いて，複数の待機系の物理サーバのメモリに現用系の物理サーバのメモリデータを同期させる場合に，メモリデータを複数の待機系サーバのメモリに同時転送することができ，メモリデータの転送時間が短縮するため，同期処理性能を向上させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施例に係るサーバ間通信機構内蔵I／Ｏスイッチを有するコンピュータシステムの構成を表すブロック図である。
【図２】本実施例に係るサーバ間通信機構内蔵I／Ｏスイッチの内部構成を説明するためのブロック図である。
【図３】本実施例に係るサーバ間通信機構の動作を説明するためのタイムチャートである。
【図４】本実施例に係るサーバ間通信機構内蔵Ｉ／Ｏスイッチ内で処理される命令のデータ構造を示す図である。
【発明を実施するための形態】
【００１１】
以下，本発明の実施例を，図面を用いて詳細に説明する。
【実施例】
【００１２】
（構成の説明）
図１に，本発明によるコンピュータシステムの構成図を示す。物理サーバ１１１はＣＰＵ１３１およびメモリ１２１およびＣＰＵ−Ｉ／Ｏインタフェース１４１を有しており，物理サーバ１１１の上では，ＯＳ１０１が稼働している。物理サーバ１１２についても同様で，ＣＰＵ１３２およびメモリ１２２よびＣＰＵ−Ｉ／Ｏインタフェース１４２を有しており，物理サーバ１１２上ではＯＳ１０２が稼働している。物理サーバ１１３についても同様で，ＣＰＵ１３３およびメモリ１２３よびＣＰＵ−Ｉ／Ｏインタフェース１４３を有しており，物理サーバ１１３上ではＯＳ１０３が稼働している。
【００１３】
物理サーバ１１１，１１２，１１３は，ＣＰＵ−Ｉ／Ｏインタフェース１４１，１４２，１４３を介して，通信機構内蔵Ｉ／Ｏスイッチ１５１のアップストリームポートに接続されている。通信機構内蔵Ｉ／Ｏスイッチ１５１のダウンストリームポートにはＩ／Ｏデバイス１８１および１８２，１８３，１８４が接続されており，通信機構内蔵Ｉ／Ｏスイッチ１５１を経由して物理サーバ１１１，１１２，１１３と，Ｉ／Ｏデバイス１８１，１８２，１８３，１８４とが接続される構成となっている。ここで，Ｉ／Ｏデバイス１８１，１８２，１８３，１８４のそれぞれは，物理サーバ１１１と１１２と１１３で共有して使用されるＩ／Ｏデバイスであっても，物理サーバ１１１または１１２または１１３のどちらか一台で占有して使用されるＩ／Ｏデバイスであってもよい。また，通信機構内蔵Ｉ／Ｏスイッチ１５１のダウンストリームポートにはサーバ間通信機構１７１が接続されており，通信機構内蔵Ｉ／Ｏスイッチ１５１を経由して物理サーバ１１１および１１２，１１３と接続されている。なお，サーバ間通信機構１７１は，通信機構内蔵Ｉ／Ｏスイッチ１５１に内蔵されている。
【００１４】
図２は，通信機構内蔵Ｉ／Ｏスイッチ１５１内のスイッチ部１６１およびサーバ間通信機構１７１の内部構造について示した図である。サーバ間通信機構１７１は，Ｉ／Ｏスイッチ内リンク２０１によってスイッチ部１６１と接続されている。Ｉ／Ｏスイッチ内リンク２０１とサーバ間通信機構１７１の内部は，サーバ間通信機構スイッチ部間インタフェース２０２で接続されている。サーバ間通信機構１７１は，メモリデータを取り込むためのメモリ読み出し命令生成部２０３と，メモリデータを送り出すためのメモリ書き込み命令生成部２０４，割り込みを発生させるための割り込み命令生成部２０５を有している。メモリ読み出し命令生成部２０３，メモリ書き込み命令生成部２０４，割り込み命令生成部２０５の先には，命令を正しい宛先サーバに送出するための宛先情報付加部２０６を備えている。メモリ読み出し命令生成部２０３およびメモリ書き込み命令生成部２０４，割り込み命令生成部２０５の動作を制御するために命令発行用シーケンサ２０８を備えている。また，サーバ間通信機構１７１は，メモリ読み出し命令により読み出されたデータを取り込むためのメモリデータ返却命令受信部２０９を備えており，ここで受信したメモリデータを格納するためのメモリデータバッファ２１０がある。最後に，ソフトウェアからサーバ間通信機構１７１を制御するための機構として，サーバ間通信機構レジスタ２１１を備えている。このサーバ間通信機構レジスタ２１１には，宛先情報２１２，送信メモリアドレス２１３，受信１メモリアドレス２１４，受信２メモリアドレス２１５，送信メモリ領域長２１６，起動レジスタ２１７が含まれている。なお，受信メモリアドレスレジスタは，宛先となる物理サーバ分のレジスタを持つ必要があり，実施例のように２つ固定である必要はない。
【００１５】
スイッチ部１６１は，Ｉ／Ｏリンク２２１によって，通信機構内蔵Ｉ／Ｏスイッチ１５１のアップストリームポートおよびダウンストリームポートに接続されている。Ｉ／Ｏリンク２２１とスイッチ部１６１の内部は，Ｉ／Ｏインタフェース２２２で接続されている。Ｉ／Ｏスイッチ内リンク２０１とスイッチ部１６１の内部は，サーバ間通信機構スイッチ間インタフェース２２４で接続されている。スイッチ部１６１は，サーバ間通機構から送信された命令がユニキャストかマルチキャストかどうかを判定し，マルチキャストだった場合には宛先毎のユニキャスト命令に整形する機構としてマルチキャスト命令判定／命令整形部２２６を備えている。サーバ間通信機構１７１から送信されたユニキャスト命令またはマルチキャスト命令判定／命令整形部２２６にて整形された複数宛先へのユニキャスト命令および，Ｉ／Ｏリンク２２１を経由して受信したＩ／Ｏデバイス１８１，１８２，１８３，１８４または物理サーバ１０１，１０２，１０３からの全ユニキャスト命令の全ての宛先を判定し，宛先毎に送信可能な命令を決定する機構として，宛先判定／命令調停部２２５を備えている。宛先判定／命令調停部２２５にて決定された各宛先へのユニキャスト命令を，Ｉ／Ｏリンク２２１またはＩ／Ｏスイッチ内リンク２０１に送信するための，クロスバスイッチ２２３を有している。
【００１６】
（動作の説明）
図３は，サーバ間通信機構の動作を表すタイムチャートである。このタイムチャートでは，図１の構成のシステムにおいて，物理サーバ１１１内のメモリ１２１に存在するデータを，物理サーバ１１２内のメモリ１２２および物理サーバ１１３内のメモリ１２３にマルチキャスト転送する場合の例として動作を示す。
【００１７】
まず，データ送信側の物理サーバ１１１上で稼働しているＯＳ１０１が，送信する物理サーバ１１１のメモリ領域の先頭アドレスを設定する。この設定は，データ送信側の物理サーバ１１１からサーバ間通信機構１７１の送信メモリアドレスレジスタ２１４に対する書き込み命令の送信にて行われる（３０１）。このとき，宛先情報レジスタ２１２に物理サーバ１１１の宛先情報および送信側であることを示す情報を登録する。データ受信側の物理サーバ１１２から，受信メモリアドレス１レジスタ２１４に対して書き込みを行い，受信する物理サーバ１１２のメモリ領域の先頭アドレスを設定する（３０２）。このとき，宛先情報レジスタ２１２に物理サーバ１１２の宛先情報および受信側であることを示す情報を登録する。同様に，データ受信側の物理サーバ１１３から，受信メモリアドレス２レジスタ２１５対して書き込みを行い，受信する物理サーバ１１３のメモリ領域の先頭アドレスを設定する（３０３）。このとき，宛先情報レジスタ２１２に物理サーバ１１３の宛先情報および受信側であることを示す情報を登録する。送信メモリ領域長レジスタ２１６に対して書き込みを行い，送信するメモリ領域の大きさを設定する（３０４）。以上でサーバ間通信を行うための初期設定処理が完了する。
【００１８】
次に，サーバ間通信機構１７１の起動レジスタ２１７に書き込みを行うことにより，サーバ間通信機構１７１を起動する（３０５）。起動されると，命令発行用シーケンサ２０８が動作を開始し，メモリ読み出し命令生成部２０３から宛先情報付加部２０６を経由してデータ送信側の物理サーバ１１１の宛先情報が付加され，メモリ読み出し命令が発行される（３０６ａ）。このメモリ読み出し命令は，スイッチ部１６１の宛先判定／命令調停部２２５にて前記の送信側サーバ宛先情報を用いて宛先が判定され，データ送信側の物理サーバ１１１へと正しく送信される。メモリ読み出し命令を受け取ったデータ送信側の物理サーバ１１１は，サーバ間通信機構１７１に対してデータ返却命令を送信することにより，メモリ読み出し命令３０６ａに対するメモリデータ返却を行う（３０７ａ）。サーバ間通信機構１７１ではデータ返却命令をメモリデータ返却命令受信部２０９で受信し，メモリデータ部分をメモリデータバッファ２１０に格納する。メモリデータを受け取ると，メモリ書き込み命令生成部２０４がメモリデータバッファ２１０からメモリデータを取り出し，宛先情報付加部２０６を経由してデータ受信側の物理サーバ１１２および物理サーバ１１３の宛先情報が付加され，マルチキャストメモリ書き込み命令が発行される（３０８ａ）。図４は，マルチキャスト命令およびユニキャスト命令のデータ構造である。マルチキャストメモリ書き込み命令３０８ａのデータ構造はマルチキャスト命令データ構造４０１である。ヘッダ４１１は受信側の物理サーバ１１２の宛先情報であり，ヘッダ４１２は受信側の物理サーバ１１３の宛先情報である。データ４１３は宛先メモリに書き込まれるデータである。このマルチキャストメモリ書き込み命令３０８ａは，スイッチ部１６１のマルチキャスト命令判定／命令整形部２２６にて，マルチキャスト命令と判定され，物理サーバ１１２宛のメモリ書き込み命令と物理サーバ１１３宛のメモリ書き込み命令に整形される。整形されたメモリ書き込み命令のデータ構造は，ユニキャスト命令データ構造４２１および４２２である。ユニキャスト命令データ構造４２１は，マルチキャスト命令データ構造４０１のヘッダ４１１およびデータ４１３で整形されメモリ書き込み命令のデータ構造である。同様に，ユニキャスト命令データ構造４２２は，マルチキャスト命令データ構造４０１のヘッダ４１２およびデータ４１３で整形されメモリ書き込み命令のデータ構造である。整形された２つのメモリ書き込み命令は，宛先判定／命令調停部２２５にて受信側サーバ宛先情報であるヘッダ４３１およびヘッダ４３２を用いて宛先が判定され，データ受信側の物理サーバ１１２および物理サーバ１１３へと正しく送信される（３０９ａ，３１０ａ）。命令発行用シーケンサ２０８は，以上のメモリ読み出し命令の送信（３０６ａ），メモリ返却命令の受信（３０７ａ），マルチキャストメモリ書き込み命令の送信（３０８ａ）の一連の動作を，送信メモリ領域長レジスタ２１６で指定されたデータ長を転送し終えるまで繰り返すことにより，データ送信側の物理サーバ１１１からデータ受信側の物理サーバ１１２および物理サーバ１１３へとデータをマルチキャスト転送する。
【００１９】
最後に，データ転送を終えると，命令発行用シーケンサ２０８は割り込み命令生成部２０５を起動する。割り込み命令生成部はデータ送信側の物理サーバ１１１およびデータ受信側の物理サーバ１１２，物理サーバ１１３に対してそれぞれ割り込み命令を発行する。割り込み命令生成部２０５で生成された割り込み命令は，宛先情報付加部２０６を経由して，データ送信側の物理サーバ１１１，データ受信側の物理サーバ１１２および１１３の宛先情報が付加され，マルチキャスト送信完了割り込み通知が発行される（３１１）。発行されたマルチキャスト送信完了割り込み通知３１１は，マルチキャストメモリ書き込み命令と同様に，スイッチ部１６１において，物理サーバ１１１および１１２，１１３に対するユニキャスト命令データ構造の送信完了割り込み通知に整形され，送信される（３１２，３１３，３１４）。以上をもって，サーバ間でのデータ転送処理が全て完了する。
【００２０】
本実施例では，サーバ間通信機構に設定指示をしたり，サーバ間通信機構を起動したりする動作主体をＯＳであるとして説明したが，動作主体はサーバ間通信機構用のデバイスドライバであっても，アプリケーションプログラム等であっても，仮想サーバを管理するハイパバイザ等であってもよい。
【符号の説明】
【００２１】
１１１，１１２，１１３  物理サーバ、１５１  通信機構内蔵Ｉ／Ｏスイッチ、１６１  スイッチ部、１７１  サーバ間通信機構
【図１】
2011180933.tif 000003
【図２】
2011180933.tif 000004
【図３】
2011180933.tif 000005
【図４】
2011180933.tif 000006