JP5457916B2 - メモリ共有装置 - Google Patents

メモリ共有装置 Download PDF

Info

Publication number
JP5457916B2
JP5457916B2 JP2010085341A JP2010085341A JP5457916B2 JP 5457916 B2 JP5457916 B2 JP 5457916B2 JP 2010085341 A JP2010085341 A JP 2010085341A JP 2010085341 A JP2010085341 A JP 2010085341A JP 5457916 B2 JP5457916 B2 JP 5457916B2
Authority
JP
Japan
Prior art keywords
memory
page
sharing
shared
setting
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
JP2010085341A
Other languages
English (en)
Other versions
JP2011216017A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010085341A priority Critical patent/JP5457916B2/ja
Priority to US13/077,021 priority patent/US20110246600A1/en
Publication of JP2011216017A publication Critical patent/JP2011216017A/ja
Application granted granted Critical
Publication of JP5457916B2 publication Critical patent/JP5457916B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、メモリ共有装置に関する。
2台のマシン間を共有メモリHWで接続し、IPネットワークを物理的に遮断することで、通したくないIPパケットを遮断するための装置(IPパケット遮断装置と呼ぶ)があるが、より安価かつ高速にデータの送受信を行いたいというニーズがある。このニーズに応えるため、IPパケット遮断装置に必要な2台のマシン上で動作するOSを仮想化し、物理的には1台のマシン上で2つの仮想化したOSを動作させ、その間でデータの送受信を行えるようにしたIPパケット遮断装置が提案されている。
このような従来の技術の一つとして、資源割り当てシステム、資源割り当て方法およびプログラムが提案されている(例えば、特許文献1)。この技術の概要は以下のとおりである。VMM(Virtual Machine Monitor)にメモリなどの資源割り当ての調停プログラムを組み込んでおく。ゲストOS上のサービスから資源割り当て要求がきたときに、VMMの負荷(その資源の使用量・使用率)にあわせて割り当てる資源の量を決定する。
また、仮想化したOS間で高速にデータの送受信を行う別の技術として、ホスト間通信のためのシステムおよび方法が提案されている(例えば、特許文献2)。この技術は、1つのシステム内で動作している複数のOS間の通信を行わせるための技術であって、複数のOS間の通信を行わせるためにホスト間通信用ゲートウェイというものを組み込む必要がある。
特開2009−169672号公開公報 特開2007−193812号公開公報
上記のようなIPパケット遮断装置を実現するためには、仮想化環境Xen(Xen:仮想マシン環境を実現するためのソフトウエア)上でのOS仮想化及びメモリ共有を行う。仮想化したOS(ゲストOS)間はネットワーク接続が存在しないことが前提となる。これは、セキュリティ維持のためであり、要求の待ち受け部分を作ることができない。
かかる従来の方式では、共有させたいページ領域の管理が煩雑であるという問題があった。図10は、従来の、ネットワーク接続ができないゲストOS間でのページ領域の管理の処理を示す図である。
従来の一般的な方式では、ハイパーバイザ(VMM)上に、仮想化ホストOS、仮想化ゲストOS(サーバ)、仮想化ゲストOS(クライアント)が提供されている。仮想化ゲストOS(サーバ)はゲストOS間で共有したい実メモリ領域、グラントテーブル、サーバアプリケーションを有している。また、仮想化ゲストOS(クライアント)はマップ領域、グラントテーブル、クライアントアプリケーションを有している。なお、上記「グラントテーブル」、「ホストOS」、「ゲストOS」、「サーバ」、「クライアント」の意味については後述する。
図10に示した従来の一般的な方式において、1ページの実メモリ領域をゲストOS間で共有するためには以下の処理を踏む必要があった。
(1)サーバアプリケーションは、共有したい実メモリ領域のページのフレーム番号を取得する。
(2)サーバアプリケーションは取得したフレーム番号をグラントテーブルに登録し、そのフレーム番号に対応するインデックス値を取得する。
(3)サーバアプリケーションは、仮想化ホストOSが管理するデータベースに取得したインデックス値を登録させる。
(4)ページを共有する相手先であるゲストOS(クライアント)のクライアントアプリケーションは、データベースよりインデックス値を取得する。
(5)上記(4)に続いて、クライアントアプリケーションはハイパーバイザにマップ要求を出す。
(6)ハイパーバイザは上記マップ要求に応じて、仮想化ゲストOS(サーバ)側のグラントテーブルに対してマップ処理を行う。以上で共有するための処理が終了する。
上記処理において、データベースは共有するページごとに、マッピング許可するゲストOS、グラントテーブルのインデックス値を管理する必要があり、そのため共有に要する処理が煩雑で処理速度が遅くなるという問題があった。
また、従来の方式では、グラントテーブルへのページ領域の登録時に共有先のOSを決めうちしなくてはならず、柔軟でないという問題もあった。より詳しく述べると、サーバ側では、自身で管理しているグラントテーブルにクライアントのID値・提供するメモリのページフレーム番号を事前に登録する。一方、クライアント側では、サーバのID値とグラントテーブルのインデックス値を使ってメモリマップを要求する。ところが、サーバが確保した実メモリを、複数のクライアントに任意長に分割して提供する容易な手段がない。そのため、共有先のOSを決めうちしなくてはならず、柔軟でないという問題があった。
なお、前述の特許文献1に開示された技術は、ゲストOS間のメモリ割り当ての手法ではなく、ホストOS(VMM)とゲストOS間のリソース割り当て方法であり、高負荷のサービスがゲストOS上で動作したときにもシステム全体をサービス不能に陥らせないことが主目的である。このため、本提案の課題を解決することはできない。
また、前述の特許文献2に開示された技術は、直接ホスト同士でメモリを共有してしまうのではなく、ホスト間通信用ゲートウェイを通して仮想デバイスが管理しているメモリ内容のアクセス許可を得るというものであって、仮想化したOS(ゲストOS)間はネットワーク接続が存在しないという本発明の課題の前提条件を満たしていない。
本発明の目的は、仮想化環境にて共有メモリを用いたメモリ共有装置の作成をおこなうことにある。
上記課題を解決する手段として、本発明は以下の特徴を有する。
本発明は、メモリ共有装置として提案される。
このメモリ共有装置は、共有メモリの実体である共有ページと、各共有ページのインデックス値を集めたデータである共有設定ページと、各共有設定ページのページフレーム番号とインデックス値を対応付けて記憶するグラントテーブルとを有するサーバと、グラントテーブルのインデックス値を管理するデータベースを有するホストと、前記共有ページ及び共有設定ページがマップされる共有ページ領域、及び共有設定ページ領域を有するクライアントとを有することを特徴とする。
[本明細書における用語の定義]
1.グラントテーブル
「グラントテーブル」とは、仮想化環境(VMM)上で提供されている機能で、共有させたい実メモリ領域のページフレーム番号および共有先のOS(Operating System,以下「OS」)を示すID値を宣言するためのテーブルをいう。共有先のOSからは、このテーブルのどの場所に上記宣言が書かれているかを事前に知っておかなくてはならない。
2.ホストOS
「ホストOS」とは、仮想化環境上で動作するOSであって、動作中のゲストOSの管理・デバイスの管理等を行うOSをいう。
3.ゲストOS
「ゲストOS」とは、仮想化環境上で動作するOSであって、一般的なアプリケーションを動作させるためのOSをいう。
4.サーバ
「サーバ」とは、共有したい実メモリ領域を確保するゲストOSをいう。
5.クライアント
「クライアント」とは、共有したいメモリ領域を自身の仮想アドレス空間にマップするゲストOSをいう。
本発明によれば、共有させたいページの管理を最小限度にすることができる。
共有設定ページのデータ構成例の一つを示した図 クライアントを限定した場合の共有設定ページの作成手順の例を示す図 クライアントを任意にしてもよい場合の共有設定ページの作成手順の例を示す図 個別設定メモリ領域のデータ構成例を示す図 メモリ共有装置の構成例を示したブロック図 図5に示したメモリ共有装置の、クライアントを限定した場合動作例を示すフローチャート 図5に示したメモリ共有装置の、クライアントを限定した場合動作例を示すフローチャート 図5に示したメモリ共有装置の、クライアントを限定した場合動作例を示すフローチャート IP分離装置の構成例を示したブロック図 従来の、ネットワーク接続ができないゲストOS間でのページ領域の管理の処理を示す図
[1.本発明の主な構成要素]
まず、本発明の一実施形態であるメモリ共有装置の主な構成要素について説明する。
[1.1.共有設定ページ]
本発明は、共有設定ページを有することを特徴の一つとしている。「共有設定ページ」とは、確保した実メモリ(ページ)に関する情報を共有するための機構(情報)である。共有設定ページを用いることにより、共有させたいページ領域のホストOS上での管理を最小限にすることが可能となる。
図1は、共有設定ページのデータ構成例の一つを示した図である。この例では、共有設定ページ10は、1ページ(4096バイト長)のデータで構成される。先頭4バイトには、確保ページ数が格納される。以降の4バイトごとに、該当実ページのグラントテーブルのインデックス値が格納される。ゲストOSからまだマップされていない場合には初期値が格納される。次共有設定ページが存在する場合には、当該ページ最終の4バイトには次共有設定ページのインデックス値が格納される。
共有設定ページ10は、サーバによって作成され、保持される。この共有設定ページ10の作成手順については後述する。共有設定ページ10は、メモリを共有するクライアント-サーバ間ごとに別々に作成され、クライアントごとに違う内容が見えることになる。共有設定ページ10の先頭ページに対するグラントテーブルのインデックス値のみホストOS上のデータベースにて管理される。
クライアントからマップ要求があれば、共有設定ページ10のインデックス値部分が更新される。なお、共有設定ページ10への書き込みは実メモリを確保したゲストOSしか行わないようにする。
[1.2.共有設定ページの作成手順]
次に、上記共有設定ページ10の作成手順について説明する。なお、クライアントを限定した場合と、クライアントを任意に設定してよい場合とに分けて説明する。
[1.2.1.クライアントを限定した場合の作成手順]
まず、クライアントを限定した場合の作成手順について説明する。図2は、クライアントを限定した場合の共有設定ページ10の作成手順の例を示す図である。
前述の通り、共有設定ページ10は、サーバ100によって作成される。サーバ100は共有設定記録部110と、共有メモリ用ページ120と、それぞれのゲストOSに対応する複数の共有設定ページ10と、グラントテーブル130とを有している。なお、共有設定記録部110は、サーバ100外にあるデータベース200に書き込みを行うことが可能なように接続されている。
サーバは、クライアント(ゲストOS)用の共有設定ページ10を事前に用意しておく。次に、共有設定記録部110は、各共有設定ページ10のページフレーム番号を取得し、取得したページフレーム番号をグラントテーブル130に登録する。グラントテーブル130には、それぞれのページフレーム番号とOSの識別情報(ID)のペアとインデックス値が対応付けされて記憶される。次に、共有設定記録部110は、グラントテーブル130からインデックス値を取得し、このインデックス値をホストOS上のデータベース200に登録する。以上で、共有設定ページの作成が終了する。
[1.2.2.クライアントを任意にしてもよい場合の作成手順]
次に、クライアントを任意にしてもよい場合の作成手順について説明する。図3は、クライアントを任意にしてもよい場合の共有設定ページ10の作成手順の例を示す図である。
前述と同様に、共有設定ページ10は、サーバ100によって作成される。サーバ100は共有設定記録部110と、共有メモリ用ページ120と、それぞれのゲストOS(クライアント)に対応する複数の共有設定ページ10と、グラントテーブル130と、共有設定取得部140を有している。なお、共有設定記録部110は、サーバ100外にあるデータベース200に書き込みを行うことが可能なように接続されている。また、クライアントとして設定されるゲストOS160があり、ゲストOS160は、共通設定記録部150を有している。共通設定記録部150はデータベース200に書き込みを行うことが可能なように接続されている。
クライアントであるゲストOS160の共通設定記録部150はメモリ共有要求をデータベース上に登録させる。
サーバ100では、共有設定取得部140にて、ホストOS上データベース200を定期的に監視する。サーバ100の共有設定取得部140は、共有要求があったことをホストOS上データベース200から読み取ったら、そのゲスト160に対応する共有設定ページ10を動的に作成する。
次に、サーバ100の共有設定記録部110は、作成された共有設定ページ10のページフレーム番号を取得し、取得したページフレーム番号をグラントテーブル130に登録する。グラントテーブル130には、それぞれのページフレーム番号とOSの識別情報(ID)のペアとインデックス値が対応付けされて記憶される。次に、サーバ100の共有設定記録部110は、グラントテーブル130からインデックス値を取得し、このインデックス値をホストOS上のデータベース200に登録する。以上で、共有設定ページの作成が終了する。
[1.2.個別設定メモリ領域]
本発明は、上記共有設定ページ10の利用に加えて、個別設定メモリ領域を特徴としてさらに備えていてもよい。
個別設定メモリ領域とは、各クライアントが管理する、マップしたメモリ(ページ)を管理するための情報である。図4に、個別設定メモリ領域のデータ構成例を示す。図4に示すように、個別設定メモリ領域400は、共通設定ページ10と一対一対応の関係となるように構成される。個別設定メモリ領域400は、1ページ(4096バイト長)のデータで構成される。先頭4バイトには、確保ページ数が格納される。以降の4バイトごとに、マップ管理用ハンドル値(仮想化環境への要求があるときに使用する)及びマップ先頭仮想アドレス(マップ解除時に使用する)が格納される。これにより、同一ゲストOSから複数個共有メモリを要求しても実現可能となり、メモリ共有先OSを柔軟に決められるように管理できることとなる。
[2.メモリ共有装置の構成例]
次に、本発明の一実施形態である、メモリ共有装置の構成例について説明する。図5は、本発明の一実施形態である、メモリ共有装置の構成例を示したブロック図である。
メモリ共有装置は、例えばコンピュータ、ワークステーションなどの情報処理装置によって実現される装置である。この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。メモリ共有装置500は、第1通信装置1と、第2通信装置2と、管理装置3とを有している。第1通信装置1はゲストOS(サーバ100)に相当する。第2通信装置2はゲストOS(クライアント160)に相当し、管理装置3は、ホストOSに相当する。
第1通信装置1並びに第2通信装置2は、ともに共有メモリを用いたデータ送受信を行う装置として機能する。第1通信装置1並びに第2通信装置2はそれぞれ複数台あってよい。第1通信装置1並びに第2通信装置2は、管理装置3上で動作するように仮想化されている。管理装置3は、第1通信装置1並びに第2通信装置2が使用するリソース管理を行う装置である。
第1通信装置1並びに第2通信装置2、及び管理装置3は、一台の情報処理装置(コンピュータ、ワークステーション、移動体通信装置など)上に実現されるものであってよい。
[2.1.第1通信装置]
次に、第1通信装置1の構成について説明する。第1通信装置1は、共有ページ11、共有設定ページ12、メモリ取得部13、メモリ共有状態更新部14、メモリ共有許可表15、共有設定取得部16、共有設定記録部17を有している。なお、上記の各構成要素は、CPU,プログラム、メモリなどの記憶装置によって実現される機能に相当するものであって、実際にこれら各構成要素に相当する回路、機器が情報処理装置内に装備されていることを要求するものではない(第2通信装置2、管理装置3においても同様)。
メモリ取得部13は、共有ページ11及び共有設定ページ12を読み取り可能に接続されている。メモリ共有状態更新部14は、共有設定ページ12、メモリ取得部13、メモリ共有許可表15、共有設定取得部16、及び共有設定記録部17に接続されている。なお、ここで「接続」とは、データや命令等をやりとりできる関係にあることをいい、物理的に接続されていることに限定されることはない(第2通信装置2、管理装置3の説明においても同様)。
また、共有設定取得部16、共有設定記録部17は後述する共有設定蓄積部31に接続されている。メモリ共有許可表15は後述するメモリマッピング実施部32に接続されている。
上記各構成要素は、以下の機能をそれぞれ有する。
共有ページ11は、第1通信装置1及び第2通信装置2間でのデータ送受信に利用する共有メモリの実体であって、前述の共有メモリ用ページ120に相当する。
共有設定ページ12は、第1通信装置1及び第2通信装置2間で共有ページ11を共有しあうために必要である、メモリ共有許可表のインデックス値を集めたデータであり、前述の共有設定ページ10に相当する。
メモリ取得部13は、実メモリを取得する側の通信装置にて動作し、共有ページ11、共有設定ページ12を確保し、そのページフレーム番号を取得する。
メモリ共有状態更新部14は、メモリ取得部13で取得した共有ページ11および共有設定ページ12のページフレーム番号と、共有を許可する第2通信装置2のID値をメモリ共有許可表15に登録する。
メモリ共有許可表15は、第1通信装置1内のページのうち、どのページをどの通信装置へ向けて共有可能にするかを管理した表(データ)であって、前述のグラントテーブル13に相当する。なお、メモリ共有許可表15は、管理装置3によって用意されたものが使用される。
共有設定取得部16は、後述する共有設定蓄積部31に登録された、第2通信装置2に関する情報を定期的に取得する機能を有する。共有設定取得部16は、前述の共有設定取得部160に相当する。
共有設定記録部17は、共有設定ページ12に対するメモリ共有許可表15のインデックス値を共有設定蓄積部31に書き込む機能を有する。
[2.2.第2通信装置2]
次に、第2通信装置2の構成要素について説明する。第2通信装置2は、共有ページ領域21、共有設定ページ領域22、メモリマップ領域取得部23、メモリマッピング要求部24、個別設定メモリ領域25、共有設定取得部26、及び共有設定記録部27を有している。メモリマップ領域取得部23は、共有ページ領域21及び共有設定ページ領域22に読み取り可能に接続されている。メモリマッピング要求部24は、メモリマップ領域取得部23、個別設定メモリ領域25、及び共有設定取得部26に接続されている。
また、メモリマッピング要求部24、共有設定取得部26、及び共有設定記録部27は後述する共有設定蓄積部31に接続されている。また、共有ページ領域21、共有設定ページ領域22は、後述するメモリマッピング実施部32に接続されている。
以下に、上記各構成要素の機能を述べる。
共有ページ領域21、共有設定ページ領域22はそれぞれ、第1通信装置1の共有ページ11、共有設定ページ12を第2通信装置2のメモリ空間にマップするための領域である。共有処理が終わると、第2通信装置2において共有ページ11、共有設定ページ12と同じ内容を読み書きできるようになる。
メモリマップ領域取得部23は、共有ページ領域21、共有設定ページ領域22をマップするためのメモリ空間を取得し、その仮想アドレスを取得する。
メモリマッピング要求部24は、メモリマッピング実施部32メモリマッピングの実行要求を出す機能を有する。
個別設定メモリ領域25は、先の[1.2.個別設定メモリ領域]の項で述べた、各クライアントが管理する、マップしたメモリ(ページ)を管理するための情報(データ)である。個別設定メモリ領域25は、メモリマッピング要求部24により共有ページ11を共有ページ領域21にマップできた際、その仮想アドレス等を記録する。
共有設定取得部26(本発明の第2の共有設定取得部に相当する)は、共有設定蓄積部31のデータを読み出す機能を有する。
共有設定記録部27(本発明の第2の共有設定記録部に相当する)は、第2通信装置2に関する情報を共有設定蓄積部31に書き込む機能を有する。
[2.3.管理装置3]
次に、管理装置3の構成要素について説明する。管理装置3は、共有設定蓄積部31と、メモリマッピング実施部32とを有している。
共有設定蓄積部31は、共有設定ページ12に対するメモリ共有許可表15のインデックス値などを蓄積する機能を有し、前述のデータベース200に相当する。
メモリマッピング実施部32は、第1通信装置1、第2通信装置2間のメモリマッピングを実際に行う機能を有する。管理装置3の仮想化環境によって提供される。
[3.メモリ共有装置の動作例]
次に、上記の構成を有するメモリ共有装置の動作例について説明する。
[3.1.クライアントを限定した場合の作成手順]
図6は、図5に示したメモリ共有装置の、クライアントを限定した場合動作例を示すフローチャートである。以下、図5のブロック図及び図6を参照しながら、クライアントを限定した場合のメモリ共有装置の動作例を説明する。
まず初めに、第1通信装置1のメモリ取得部13は、メモリ(図略)上に共有ページ11及び共有設定ページ12のページを確保する(ステップS1)。ページが確保されると、メモリ共有状態更新部14は、メモリ共有許可表15へ共有設定ページの登録を行う(ステップS2)。メモリ共有許可表15への登録が終了すると、共有設定記録部17は、管理装置3の共有設定蓄積部31に、メモリ共有する通信装置(この例では、第1通信装置1)の情報、及び共有設定ページの情報(インデックス値)を書き込みさせる(S3)。
次に、第2通信装置2の共有設定記録部27は、管理装置3の共有設定蓄積部31に、その通信装置の情報を書き込む(S4)。次に、第2通信装置2の共有設定取得部26は、共有設定蓄積部31からステップS3にて書き込まれた共有設定ページの情報を取得する(S5)。次に、メモリマップ領域取得部23は、共有設定ページ領域22の領域を確保する(S6)。領域を確保した後、メモリマップ領域取得部23はメモリマッピング要求部24にメモリマップ要求を出す(S7)。メモリマップ要求を受けたメモリマッピング要求部24は、メモリマッピング実施部32にメモリマップ要求を送る(S8)。
メモリマップ要求を受けたメモリマッピング実施部32は、メモリ共有許可表15を参照し(S9)、メモリ共有許可表15の内容に応じて、共有ページ領域21、共有設定ページ領域22へのメモリマッピングを行う(S10)。以上で、第1通信装置1、第2通信装置2間のメモリ共有処理が終了する。
[3.2.クライアントを任意にしてもよい場合の動作例]
図7、図8は、図5に示したメモリ共有装置の、クライアントを限定した場合動作例を示すフローチャートである。以下、図5のブロック図及び図7、図8を参照しながら、クライアントを任意にしてもよい場合のメモリ共有装置の動作例を説明する。
まず、第2通信装置2のメモリマップ領域取得部23は、共有設定ページ領域22から設定情報を読み込む(S11)。次に、メモリマップ領域取得部23は、共有設定ページ領域22の設定情報に応じて、共有ページ領域21の領域を確保する(S12)。次に、メモリマップ領域取得部23は、メモリマッピング要求部24にメモリマップ要求を出す(S13)。メモリマップ要求を受けたメモリマッピング要求部24は、管理装置3の共有設定蓄積部31にメモリマップ要求を送る(S14)。メモリマップ要求は共有設定蓄積部31に登録される。
第1通信装置1の共有設定取得部16は、定期的に共有設定蓄積部31を監視して、自分に対するマップ要求が登録されていないかどうかを調べる。自分に対するマップ要求が登録されている場合は、共有設定取得部16は共有設定蓄積部31はこのマップ要求にかかる共有設定を読み込む(S15)。共有設定を読み込んだ共有設定取得部16は、メモリ共有状態更新部14に通知する。通知を受けたメモリ共有状態更新部14は、共有設定ページ12を更新する(対応する共有設定ページの追加;S16)。また、メモリ共有状態更新部14は、更新された共有設定ページの内容に応じてメモリ共有許可表15の更新を行う(ページフレーム番号、インデックス値の追加;S17)。
次に、第2通信装置2のメモリマップ領域取得部23は、共有設定ページ領域22から設定情報を読み込む(S18)。この時点では共有ページ領域21、共有設定ページ領域のマッピングは完了していない。次に、メモリマップ領域取得部23は、メモリマッピング要求部24にメモリマップ要求を出す(S19)。メモリマップ要求を受けたメモリマッピング要求部24は、管理装置3のメモリマッピング実施部32にメモリマップ要求を送る(S20)。
メモリマップ要求を受けたメモリマッピング実施部32は、メモリ共有許可表15を参照し(S21)、メモリ共有許可表15の内容に応じて、共有ページ領域21、共有設定ページ領域22へのメモリマッピングを行う(S22)。さらに、メモリマッピング実施部32は、メモリ許可表15の内容に応じて、個別設定メモリ領域に格納させる情報(個別設定と呼ぶ)を生成し、これをメモリマッピング要求部24に返却する(S23)。個別設定を受けたメモリマッピング要求部24は、個別設定の内容に応じて個別設定メモリ領域25を更新する(S24)。これにより、個別設定メモリ領域25には共有設定ページ12と一対一対応となる個別設定メモリ領域が作成される。以上で、クライアントを任意にしてもよい場合の第1通信装置1、第2通信装置2間のメモリ共有処理は終了する。
[4.IP分離装置]
本実施形態にかかるメモリ共有装置は、仮想化環境にて共有メモリを用いたIP分離装置(IP(Internet Protocol)ネットワークを切断し、通したくないIPパケットを遮断するための装置)としても使用可能である。
本実施形態にかかるIP分離装置は、共有メモリを使用させることにより、2つのゲストOS間を安全な方法でIP接続する。いったんゲストOS間でIP以外のデータパケットに変換&フィルタリングすることが可能となる。また、2つのゲストOS間の通信を監視・不正アクセスを検知するゲストOSをもう一つ作成するようにしてもよい。
図9は、本実施形態にかかるIP分離装置の構成例を示したブロック図である。なお、基本的な構成は図3に示す装置と同様であり、同一の構成要素については同一の参照符号を付した。ゲストOS(サーバ)100はサーバ側IP分離装置アプリケーション320と、共有メモリ用ページ120と、それぞれのゲストOSに対応する複数の共有設定ページ10と、グラントテーブル130とを有している。サーバ100外にあるデータベース200に書き込みを行うことが可能なように接続されている。また、クライアントとして設定されるゲストOS160があり、ゲストOS160は、クライアント側IP分離装置アプリケーション310と、共有メモリ用ページ120と、共有設定ページ10を有している。ゲストOS100、160を管理するOSであるホストOS170は、データベース200を有している。
サーバ側IP分離装置アプリケーション320は、図5に示したメモリ取得部13、メモリ共有状態更新部14、共有設定取得部16、共有設定記録部17に相当する構成要素である。サーバ側IP分離装置アプリケーション320は内部セキュアLANと通信可能に接続されている。クライアント側IP分離装置アプリケーション310は、メモリマップ領域取得部23、メモリマッピング要求部24、メモリマッピング要求部24、個別設定メモリ領域25、共有設定取得部26、及び共有設定記録部27に相当する構成要素である。クライアント側IP分離装置アプリケーション310は、外部インターネットに通信可能に接続されている。
サーバ側IP分離装置アプリケーション320は、例えばIPパケットのIPヘッダを除いたものを共有メモリ用ページに書き込むことができる機能をさらに有しており、クライアント側IP分離装置アプリケーション310は本実施形態のメモリ共有装置としての機能により、共有メモリの内容を参照することによって、IPヘッダを有さない通信パケットとして取得できる。これにより、本発明の一形態であるIP分離装置900は、内部セキュアLANのようなネットワークと、外部インターネットのような別のネットワークを、特定のプロトコルに基づく通信パケットを直接通信させることなく、ネットワーク間接続を行うことを可能とする。
[5.まとめ]
本実施態様によれば、共有させたいページの管理を最小限度にすることができる。管理装置3の共有設定蓄積部31に、前もって登録すべきページは「共有設定ページ12の先頭」のみで足りるからである。
また、本実施態様によれば、メモリ共有先のOSが2つ以上ある場合でも、事前の取り決めを最小限にしてそれぞれに共有させることが可能となる。
一方、従来の手法では、メモリ共有先のOSを示すID値を事前にグラントテーブルに登録しなければならす、共有するメモリ量が常に決めうちとなり、柔軟性がなかった。
上述した実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の趣旨を逸脱しない範囲であれば、適宜組合わせ及び変更することができることはいうまでもない。
1…第1通信装置; 2…第2通信装置; 3…管理装置
11…共有ページ; 12…共有設定ページ; 13…メモリ取得部; 14…メモリ共有状態更新部; 15…メモリ共有許可表; 16…共有設定取得部; 17…共有設定記録部; 21…共有ページ領域; 22…共有設定ページ領域; 23…メモリマップ領域取得部; 24…メモリマッピング要求部;; 25…個別設定メモリ領域; 26…共有設定取得部; 27…共有設定記録部

Claims (4)

  1. 共有メモリの実体である共有ページと、各共有ページのインデックス値を集めたデータである共有設定ページと、各共有設定ページのページフレーム番号とインデックス値を対応付けて記憶するグラントテーブルとを有するサーバと、
    グラントテーブルのインデックス値を管理するデータベースを有するホストと、
    前記共有ページ及び共有設定ページがマップされる共有ページ領域、及び共有設定ページ領域を有するクライアントと
    を有することを特徴とするメモリ共有装置。
  2. 前記クライアントは、共有設定ページごとに、マップ管理用ハンドル値及びマップ先頭仮想アドレスを記憶する個別設定メモリ領域をさらに有することを特徴とする、請求項1に記載のメモリ共有装置。
  3. 共有メモリの実体である共有ページと、
    各共有ページのインデックス値を集めたデータである共有設定ページと、
    各共有設定ページのページフレーム番号とインデックス値を対応付けて記憶するメモリ共有許可表と
    共有ページ及び共有設定ページを確保し、そのページフレーム番号を取得するメモリ取得部と、
    メモリ取得部で取得した共有ページおよび共有設定ページのページフレーム番号と、共有を許可する第2通信装置のID値をメモリ共有許可表に登録するメモリ共有状態更新部と、
    共有設定蓄積部に登録された、第2通信装置に関する情報を定期的に取得する共有設定取得部と
    を有する第1通信装置と、
    第1通信装置の共有ページを第2通信装置のメモリ空間にマップするための領域である共有ページ領域と、
    第1通信装置の共有設定ページを第2通信装置のメモリ空間にマップするための領域である共有設定ページ領域と、
    共有ページ領域、共有設定ページ領域をマップするためのメモリ空間を取得し、その仮想アドレスを取得するメモリマップ領域取得部と、
    メモリマッピングの実行要求を出すメモリマッピング要求部と、
    共有設定蓄積部のデータを読み出す第2の共有設定取得部と
    第2通信装置に関する情報を共有設定蓄積部に書き込む共有設定記録部と
    を有する第2通信装置と
    共有設定ページに対するメモリ共有許可表のインデックス値を蓄積する共有設定蓄積部と、
    第1通信装置、第2通信装置間のメモリマッピングを行うメモリマッピング実施部と
    を有する管理装置と
    を具備することを特徴とするメモリ共有装置。
  4. 前記第2通信装置は、共有設定ページごとに、マップ管理用ハンドル値及びマップ先頭仮想アドレスを記憶する個別設定メモリ領域をさらに有することを特徴とする、請求項3に記載のメモリ共有装置。
JP2010085341A 2010-04-01 2010-04-01 メモリ共有装置 Expired - Fee Related JP5457916B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010085341A JP5457916B2 (ja) 2010-04-01 2010-04-01 メモリ共有装置
US13/077,021 US20110246600A1 (en) 2010-04-01 2011-03-31 Memory sharing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010085341A JP5457916B2 (ja) 2010-04-01 2010-04-01 メモリ共有装置

Publications (2)

Publication Number Publication Date
JP2011216017A JP2011216017A (ja) 2011-10-27
JP5457916B2 true JP5457916B2 (ja) 2014-04-02

Family

ID=44710919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010085341A Expired - Fee Related JP5457916B2 (ja) 2010-04-01 2010-04-01 メモリ共有装置

Country Status (2)

Country Link
US (1) US20110246600A1 (ja)
JP (1) JP5457916B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013052078A1 (en) * 2011-10-07 2013-04-11 Intel Corporation Methods and arrangements for extension frames in wireless networks
US20140136508A1 (en) * 2012-11-09 2014-05-15 Palo Alto Research Center Incorporated Computer-Implemented System And Method For Providing Website Navigation Recommendations
JP6376935B2 (ja) * 2013-12-26 2018-08-22 キヤノン株式会社 ネットワークデバイス、ネットワークデバイスの制御方法およびそのプログラム
US20170003997A1 (en) * 2015-07-01 2017-01-05 Dell Products, Lp Compute Cluster Load Balancing Based on Memory Page Contents
US10581989B2 (en) 2015-07-30 2020-03-03 Nasdaq, Inc. Application logging framework
JP6636964B2 (ja) * 2017-01-17 2020-01-29 株式会社インタフェース ゲートウエイ装置およびゲートウエイシステム
KR102199509B1 (ko) * 2019-10-16 2021-01-06 숭실대학교산학협력단 가상화 시스템에서 메모리를 공유하기 위한 메모리 공유 시스템, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11126173A (ja) * 1997-10-22 1999-05-11 Nec Corp メモリアクセス制御装置およびその記憶媒体
JP3874603B2 (ja) * 2000-11-21 2007-01-31 株式会社日立製作所 計算機システムの共有メモリ構築方法
CN101819564B (zh) * 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置

Also Published As

Publication number Publication date
US20110246600A1 (en) 2011-10-06
JP2011216017A (ja) 2011-10-27

Similar Documents

Publication Publication Date Title
US11934341B2 (en) Virtual RDMA switching for containerized
JP5457916B2 (ja) メモリ共有装置
CN107690622B (zh) 实现硬件加速处理的方法、设备和***
JP7085565B2 (ja) 分離されたネットワークスタックにわたるインテリジェントなスレッド管理
US8462632B1 (en) Network traffic control
WO2018095138A1 (zh) 容器的部署方法、服务间的通信方法及相关装置
US9003411B2 (en) Automated provisioning and configuration of virtual and physical servers
US10635474B2 (en) Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration
US9086907B2 (en) Apparatus and method for managing virtual machine addresses
JP2019528005A (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
US20100020818A1 (en) Sharing buffer space in link aggregation configurations
CN112910685B (zh) 实现对容器网络统一管理的方法及装置
US11223519B2 (en) Storage system for network information
JP2021517695A (ja) クラウドサービスのデータキャッシング
US9292466B1 (en) Traffic control for prioritized virtual machines
Abbasi et al. A performance comparison of container networking alternatives
US10706005B2 (en) File system interface for remote direct memory access
CN114510321A (zh) 资源调度方法、相关装置和介质
JP2016019270A (ja) 通信方法及び通信プログラム
EP3605346A1 (en) Control device, control system, control method and program
WO2016172862A1 (zh) 一种内存管理方法、设备和***
US11451643B2 (en) Managed traffic processing for applications with multiple constituent services
US20190171584A1 (en) Access control device, access control method, and recording medium containing access control program
US20120166606A1 (en) Distributed file operation apparatus, distributed file operation method, and non-transitory computer-readable medium storing distributed file operation program
US11722368B2 (en) Setting change method and recording medium recording setting change program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20130221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140110

R151 Written notification of patent or utility model registration

Ref document number: 5457916

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees