JP2014530413A - 分離された仮想空間を提供するための方法および装置 - Google Patents

分離された仮想空間を提供するための方法および装置 Download PDF

Info

Publication number
JP2014530413A
JP2014530413A JP2014530676A JP2014530676A JP2014530413A JP 2014530413 A JP2014530413 A JP 2014530413A JP 2014530676 A JP2014530676 A JP 2014530676A JP 2014530676 A JP2014530676 A JP 2014530676A JP 2014530413 A JP2014530413 A JP 2014530413A
Authority
JP
Japan
Prior art keywords
application
digital data
data storage
virtual space
system call
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.)
Granted
Application number
JP2014530676A
Other languages
English (en)
Other versions
JP5837206B2 (ja
Inventor
シャミリアン,ジョン,エイチ.
ウッド,トーマス,エル.
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2014530413A publication Critical patent/JP2014530413A/ja
Application granted granted Critical
Publication of JP5837206B2 publication Critical patent/JP5837206B2/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

様々な実施形態は、複数のOSを実行する必要なく、アプリケーション分離仮想空間を作成する方法および装置を提供する。アプリケーション分離仮想空間は、リソース・マネージャを利用するオペレーティングシステム(OS)によって作成される。リソース・マネージャは、従来のOSカーネルのネットワーク・スタックおよびI/Oサブシステムを、OSによって管理される物理リソースの複数の分離されたネットワーク・スタック/仮想I/Oビューを有するように書き換えることによって、アプリケーションを互いに分離する。分離されたネットワーク・スタックおよび仮想I/Oビューは、アプリケーションの分離仮想空間に割り当てられたリソースを識別し、分離識別子を介してアプリケーションにマッピングされる。

Description

概して本発明は、分離された仮想プライベート・サーバを作成するための方法および装置に関する。
このセクションは、本発明のよりよい理解を促進するのに役立ち得る態様を紹介する。したがって、このセクションの記述は、この観点から読まれるべきであり、なにが従来技術であるか、または、なにが従来技術でないかについての承認として理解されるべきではない。
ホスト環境が物理サーバのリソースを動的に割り当てることを可能にし、仮想プライベート・サーバを生み出す多数の技術が存在する。いくつかの既知のシステムでは、物理サーバは、「ゲスト」オペレーティングシステム(OS)または仮想マシンのリソースを作成、解放、および管理する仕事を課された、仮想マシン・マネージャを実行する。
様々な実施形態は、複数のOSを実行する必要なく、アプリケーション分離仮想空間を作成する方法および装置を提供する。アプリケーション分離仮想空間は、リソース・マネージャを利用するオペレーティングシステム(OS)によって作成される。リソース・マネージャは、従来のOSカーネルのネットワーク・スタックおよびI/Oサブシステムを、OSによって管理される物理リソースの複数の分離されたネットワーク・スタック/仮想I/Oビューを有するように書き換えることによって、アプリケーションを互いに分離する。分離されたネットワーク・スタックおよび仮想I/Oビューは、アプリケーションの分離仮想空間に割り当てられたリソースを識別し、分離識別子を介してアプリケーションにマッピングされる。複数のOSを実行する必要なしに、分離された動作環境をアプリケーションに提供する方法および装置が作成されることが有利である。
一実施形態では、リソース・マネージャを作成するための方法が提供される。方法は、デジタル・データ・ストレージ内に管理レベルOSを作成する工程と、アプリケーション分離仮想空間に対するアプリケーション要求を監視する工程と、アプリケーション分離仮想空間に対するいくつかのアプリケーション要求を許可する工程と、を含む。アプリケーション要求を許可する工程は、アプリケーション分離仮想空間の分離識別子を決定する工程と、分離識別子に基づいて管理レベルOSを更新する工程と、デジタル・データ・ストレージ内にアプリケーション・ネットワーク・スタックを作成する工程と、を含む。
いくつかの実施形態では、管理レベルOSを更新する工程は、少なくとも1つの共通リソース・スケジューラを更新する工程を含む。
いくつかの実施形態では、管理レベルOSを更新する工程は、少なくとも1つのメモリ共通リソース・アロケータを更新する工程を含む。
いくつかの実施形態では、管理レベルOSを更新する工程は、少なくとも1つのリソース・テーブルを更新する工程を含む。
別の実施形態では、アプリケーション分離仮想空間内のシステム・コール要求に対応する方法が提供される。方法は、システム・コール要求を受信する工程と、分離識別子を取得する工程と、分離識別子に基づいてシステム・コール要求を満たすために、アプリケーション・リソースを利用する工程と、を含む。
いくつかの実施形態では、システム・コール要求は、修正されたシステム・コールを呼び出す。
いくつかの実施形態では、当該方法は、システム・コールから修正されたシステム・コールを作成する工程を含む。
いくつかの実施形態では、修正されたシステム・コールは、仮想ディスクI/Oビューにアクセスする。
いくつかの実施形態では、修正されたシステム・コールは、共有メモリにアクセスする。
別の実施形態では、システム・リソースを管理するための装置が提供される。当該装置は、デジタル・データ・ストレージを含み、デジタル・データ・ストレージは、少なくとも1つの記憶デバイスおよび少なくとも1つのメモリ・デバイスを含む。当該装置は、少なくとも1つのネットワーク・インタフェースおよび少なくとも1つのプロセッサも含む。プロセッサ(複数可)は、デジタル・データ・ストレージ内に管理レベルOSを作成し、アプリケーション分離仮想空間に対するアプリケーション要求を監視し、アプリケーション分離仮想空間に対する複数のアプリケーション要求を許可するようにプログラムされる。要求の許可は、アプリケーション分離仮想空間の分離識別子の判定と、分離識別子に基づく管理レベルOSの更新と、デジタル・データ・ストレージ内のアプリケーション・ネットワーク・スタックの作成と、を含む。
いくつかの実施形態では、管理レベルOSの更新は、少なくとも1つの共通リソース・スケジューラの更新も含む。
いくつかの実施形態では、1つの共通リソース・スケジューラは、分離識別子に基づいて、少なくとも1つのプロセッサへのアクセスを制御する。
いくつかの実施形態では、管理レベルOSの更新は、少なくとも1つのメモリ共通リソース・アロケータの更新を含む。
いくつかの実施形態では、管理レベルOSの更新は、少なくとも1つのリソース・テーブルの更新を含む。
別の実施形態では、システム・コールに対応するための装置が提供される。装置は、デジタル・データ・ストレージを含み、デジタル・データ・ストレージは、少なくとも1つの記憶デバイスおよび少なくとも1つのメモリ・デバイス、少なくとも1つのネットワーク・インタフェース、ならびに少なくとも1つのプロセッサを含む。プロセッサは、システム・コール要求を受信し、分離識別子を取得し、分離識別子に基づいてシステム・コール要求を満たすために、アプリケーション・リソースを利用するようにプログラムされる。
いくつかの実施形態では、システム・コール要求は、修正されたシステム・コールを呼び出す。
いくつかの実施形態では、少なくとも1つのプロセッサは、システム・コールから修正されたシステム・コールを作成するようにプログラムされる。
いくつかの実施形態では、修正されたシステム・コールは、仮想ディスクI/Oビューにアクセスする。
いくつかの実施形態では、修正されたシステム・コールは、共有メモリにアクセスする。
別の実施形態では、リソース・マネージャを作成するためのデジタルデータ記憶媒体が提供される。媒体は、デジタル・データ・ストレージ内に管理レベルOSを作成し、アプリケーション分離仮想空間に対するアプリケーション要求を監視し、アプリケーション分離仮想空間に対するいくつかのアプリケーション要求を許可するためのプログラムを含む。アプリケーション要求の許可は、アプリケーション分離仮想空間の分離識別子を判定することと、分離識別子に基づいて管理レベルOSを更新することと、デジタル・データ・ストレージ内にアプリケーション・ネットワーク・スタックを作成することとを含む。
様々な実施形態が、添付図面に示される。
リソース管理システムの一実施形態を概略的に示すブロック図を示す。 図1のリソース・マネージャの一実施形態を概略的に示すブロック図を示す。 例示的なシステム・コールを示す。 例示的なシステム・コールを示す。 例示的なシステム・コールを示す。 図2乃至5の機能ブロックを参照し、図2のリソース・マネージャを作成するための方法の一実施形態を示すフローチャートを示す。 図2乃至5の機能ブロックを参照し、図2のリソース・マネージャによるシステム・コールを処理するための方法の一実施形態を示すフローチャートを示す。 図1のエンド・リソース・マネージャ110の一実施形態のブロックを概略的に示す。
理解を容易にするために、同一の参照番号は、実質的に同じもしくは同様の構造および/または実質的に同じもしくは同様の機能を有する要素を示すために使用されている。
アプリケーション分離仮想空間は、リソース・マネージャを利用するオペレーティングシステム(OS)によって作成される。リソース・マネージャは、従来のOSカーネルのネットワーク・スタックおよびI/Oサブシステムを、OSによって管理される物理リソースの複数の分離されたネットワーク・スタック・ビューおよび/または仮想I/Oビューを有するように書き換えることによって、アプリケーションを互いに分離する。分離されたネットワーク・スタックおよび仮想I/Oビューは、アプリケーションの分離仮想空間に割り当てられたリソースを識別し、分離識別子を介してアプリケーションにマッピングされる。
図1は、リソース管理システム100の一実施形態を概略的に示すブロック図を示す。リソース管理システム100は、リソース管理システム100のリソース・クラスタ120内のリソースの割り当てを制御する、リソース・マネージャ110を含む。
以下でさらに詳細に説明するリソース・マネージャ110は、リソース・クラスタ120内のリソースの、アプリケーションへの割り当てを制御する。
リソース・クラスタ120は、リソース・マネージャ110によって割り当てられた物理システム・リソースを含むことができる。リソースは、例えば、1つまたは複数のプロセッサ130、1つまたは複数のネットワーク・インタフェース140、およびデジタル・データ・ストレージ150を含むことができる。
デジタル・データ・ストレージ150は、1つまたは複数の記憶デバイス154および1つまたは複数のメモリ・デバイス158を含むことができる。記憶デバイス154は、不揮発性データを格納するのに適した任意の装置を含むことができる。メモリ・デバイス158は、CPUによって主記憶デバイスとしてアクセスされるのに適した任意の装置を含むことができる。
いくつかの実施形態では、リソース・マネージャ110は、デジタル・データ・ストレージ150内に配置され、1つまたは複数のプロセッサ130によって実行される1つまたは複数の実体的なプログラム内で具体化されてよい。
いくつかの実施形態では、リソース・マネージャ110は、リソース・クラスタ120内のリソースの、個々のアプリケーションへの割り当てを決定するために、リソース・テンプレートを含む。リソース・テンプレートは、アプリケーションのクラスに基づいて、アプリケーション毎にカスタマイズされてよく、および/または、それらは、課金および/またはサービスレベル・アグリーメントに基づくことができる。リソース・テンプレートは、CPUサイクル(すなわち、プロセッサ)要件、ネットワーク・インタフェース要件、ストレージ使用要件、および/またはメモリ使用要件のような、様々なタイプのアプリケーション・リソース要件のいずれかに関連するパラメータ値を含むことができる。
CPU要件は、専用プロセッサ(複数可)および/またはコア(複数可)に関する要件、タイム・スライス(アプリケーションに利用可能なコアのティック数)、優先順位、最大待ち時間など、任意の適切なパラメータまたはパラメータの組み合わせを含むことができる。ネットワーク・インタフェース要件は、IPアドレス、最大待ち時間、最小帯域幅など、任意の適切なパラメータまたはパラメータの組み合わせを含むことができる。ストレージ使用要件は、ストレージ・サイズ、アクセス速度など、任意の適切なパラメータまたはパラメータの組み合わせを含むことができる。メモリ使用要件は、アクセス速度、利用可能な最小の物理メモリおよび弾性的拡張など、任意の適切なパラメータまたはパラメータの組み合わせを含むことができる。
いくつかの実施形態では、リソース・クラスタ120内のリソースは、サーバのような単一の物理的エンティティから供給されてよい。他の実施形態では、リソース・クラスタ120内のリソースは、物理的に分離されたエンティティから供給されてよい。
一実施形態では、プロセッサ130は、機器の1つまたは複数のラック(rack)内のいくつかのブレード(blade)であってよく、ネットワーク・インタフェース140は、いくつかのネットワーク・インタフェース・カード(NIC)であってよく、記憶デバイス154は、いくつかの外部記憶デバイスを含んでよく、メモリ・デバイス158は、機器の1つまたは複数のラック内のいくつかのブレードであってよい。いくつかの実施形態では、リソースの一部は、(例えば、クラウド・ネットワーク内に)遠隔配置された装置によって提供されてよいことを理解されたい。
いくつかの実施形態では、記憶デバイス154は、ハードディスク・ドライブ、光ディスク・ドライブ、フラッシュメモリ、などであってよい。
いくつかの実施形態では、メモリ・デバイス158は、ランダム・アクセス・メモリ(RAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、などであってよい。
図2は、図1のリソース・マネージャ110の一実施形態を概略的に示すブロック図を示す。リソース・マネージャ110は、オペレーティングシステムおよび個々のアプリケーションへの、図1のリソース・クラスタ120内のリソースの割り当てを制御する管理レベルOS210を含む。本明細書で言及するように、所与のアプリケーションに割り当てられた集合的リソースは、上述したアプリケーションが内部で動作している「アプリケーション分離仮想空間」である。アプリケーションに割り当てられた集合的リソースは、割り当てられた専用リソースおよび共有リソース(すなわち、アプリケーション専用ではないリソース)の両方を含む。共有リソースは、管理レベルOS210内に存在してよく、一方、別々のネットワーク・スタックおよびI/O設備は、仮想ネットワーク・スタック220内に保持されることになる。有利には、各アプリケーション分離仮想空間は、各仮想空間インスタンス専用のハードウェア・リソースを必要とすることなく、独立したエンティティとして外部ネットワークに対して現れる。本明細書で使用される「アプリケーション」という用語は、サービスも含むものとして、広く解釈されるべきである。
リソース・マネージャ管理レベルOS210は、リソースの割り当てを制御するための構造を含み、オプションで、共有リソースのためのコントローラも含む。アプリケーション・プロセスは、リソースへの直接のアクセスを制限される。代わりに、管理レベルOS210は、I/Oデバイス、ファイル・システム、およびネットワーク通信設備のようなリソースにアクセスするための抽象化層を提供する。
割り当て制御構造は、制御プログラム(図示せず)およびリソース・テーブル218を含むことができる。リソース・テーブルは、分離識別子をアプリケーションの分離された仮想空間にマッピングするために、制御プログラムによって使用される。共有リソース・コントローラは、スケジューラ212、メモリ・アロケータ・プログラム214、および共通ドライバ216を含むことができる。有利には、管理レベルの1つのOSのみが必要とされるが、必要に応じて、より多くの管理レベルのOSが使用されてよい。
仮想ネットワーク・スタック220は、管理ネットワーク・スタック230、および、1つまたは複数のアプリケーション・ネットワーク・スタック240−1〜240−Nを含む。管理ネットワーク・スタック230は、インフラストラクチャ・オペレータのために提供されるOSの管理ビューである。各アプリケーション・ネットワーク・スタック240−1〜240−N、集合的にアプリケーション・ネットワーク・スタック240は、一意的なネットワーク・スタック(IP層)および一意的な仮想I/O層である。管理レベルOS210は、アプリケーション・ネットワーク・スタック240へのアプリケーションのアクセスを制御するために、分離識別子およびリソース・テーブル218を使用する。
各ネットワーク・スタック・インスタンスは、他のすべてのものから完全に独立しており、そのため、各インスタンスは、固有のプライベート・ルーティング・テーブル、通信ソケットのセット、および、関連するプロトコル制御ブロックを保持する。その個々のアプリケーション分離仮想空間内で動作するアプリケーション・プロセスのみがアクセスを有するように、ネットワーク・スタックへのアクセスを制御するために、分離識別子を使用することができる。このような構成は、パフォーマンスを向上させ、同時に、アプリケーション・ネットワーク・スタック240を互いに分離するため、有利である。アプリケーション・ネットワーク・スタック240には、一意的なリソースを割り当てることもでき、例えば、各アプリケーションは、固有のIPアドレスおよびポートを保持することを許可されてよいことを理解されたい。
単一の一意的なリソースの使用を、リソースへのアクセスを争うアプリケーション間で共有する(例えば、MUX/DEMUXする)ために、スケジューラ212を管理レベルOS210によって作成することができる。スケジューラ212は、要求しているアプリケーション間で供給リソースを割り当てるために管理レベルOS210によって利用されるスケジューリング・アルゴリズムを含むことができる。
利用可能なメモリ(例えば、図1のメモリ・デバイス158)をアプリケーションに割り当てるために、メモリ・アロケータ214を、管理レベルOS210によって利用することができる。
重複ドライバに関連するオーバヘッドを低減するために、共通ドライバ216を、管理レベルOS210によって利用することができる。例えば、共通ドライバ216中の単一のイーサネット(登録商標)層ドライバは、MAC(媒体アクセス制御)および管理レベルOS210間の通信を提供することができ、その上のネットワーク層プロトコルおよびアプリケーション層へのアクセスを提供することもできる。
分離識別子を使用してアプリケーションの分離仮想空間にリソースをマッピングするために、リソース・テーブル218を、管理レベルOS210によって利用することができる。
いくつかの実施形態では、管理レベルOS210は、OSの起動中に、従来のネットワーク・スタックおよびI/O機能、例えば、管理ネットワーク・スタック230を作成する。アプリケーション分離仮想空間を必要とするこの環境で起動する各後続の可視アプリケーションのために、管理レベルOS210は、アプリケーション・ネットワーク・スタック240−Xを作成し、ここで、「X」は、アプリケーション・ネットワーク・スタック240の1つを示す。
いくつかの実施形態では、管理レベルOS210は、アプリケーションを他のアプリケーションから分離するために、分離識別子を使用することによって、カーネルへのシステム・コールの動作を修正する。例えば、システム上のすべてのネットワーク・デバイスに戻るシステム・コールを実行するアプリケーション・プロセスは、それ自体のアプリケーション分離仮想空間内のデバイス(実または擬似)のみに応答する。したがって、他のネットワーク・デバイスは、アプリケーションのプロセスによって使用されず、または見られさえしないことになる。
いくつかの実施形態では、Unix(登録商標)/Linux(登録商標)/POSIX(登録商標)グループID(GID)が、分離識別子である。GIDは、従来、学生のグループまたは従業員の部署のようなユーザのグループを作成するために使用される。ユーザおよびグループの概念は、通常、サーバで使用されないため、アプリケーションを作成するプロセスのグループを編成するために、管理レベルOS210によってGIDを利用することができる。このように、管理レベルOS210は、アプリケーションのプロセスによる使用に利用可能なアプリケーション分離仮想空間内のリソースを識別する。いくつかの実施形態では、修正されたシステム・コールは、他のアプリケーションによって使用されるリソースのハンドルおよび/または名前の閲覧およびアクセスを抑制する。
有利には、分離識別子を使用するアプリケーション・ネットワーク・スタック240の管理は、アプリケーションから物理ネットワーク・インタフェースへのデータ・パス上の著しく少ないオーバヘッドを可能にする。それは、また、アプリケーション・ネットワーク・スタックを分離しない従来のOS環境と比較して、他のシステム・リソース、具体的にはCPUおよびRAMのよりよい利用をもたらす。
いくつかの実施形態では、スケジューラ212は、アプリケーション間でCPU処理サイクル(例えば、図1のプロセッサ130)を共有するようにプログラムされたスケジューリング・アルゴリズムを含む。プロセッサ130は、1つまたは複数のコアをそれぞれが含み得る1つまたは複数のプロセッサを含んでよいことを理解されたい。スケジューラ212は、コア(複数可)および/またはプロセッサ(複数可)の全部または一部をアプリケーションに割り当てるために、リソース・テンプレートを使用することができる。スケジューリング・アルゴリズムは、従来の公平(fairness)アルゴリズムおよび/または従来の優先アルゴリズムのような、任意の適切なアルゴリズムであってよい。コア(複数可)および/またはプロセッサ(複数可)は、アプリケーション間で共有されてもよく、または、アプリケーション専用であってもよいことを理解されたい。例えば、実時間決定性アプリケーションは、専用のコア(複数可)および/またはプロセッサ(複数可)を必要とする可能性がある。
いくつかの実施形態では、スケジューラ212は、割り当てられていないおよび/または活用されていないリソースを、リソースを要求するアプリケーション・プロセス間に分配することができる。活用されていないリソースは、アプリケーション専用であるが、その割り当てられた部分の全ての範囲まではアプリケーションによって使用されていないリソースである。
いくつかの実施形態では、スケジューラ212は、第2のアプリケーション分離仮想空間内のリソースの使用をスケジュールするために使用されるのとは異なるスケジューリング・アルゴリズムを使用して、第1のアプリケーション分離仮想空間内のリソースの使用をスケジュールすることができる。
いくつかの実施形態では、メモリ・アロケータ214は、アプリケーションに割り当てられるメモリの量およびタイプを決定するために、リソース・テーブル218を利用することができる。さらに、メモリ・アロケータ214、または、オプションでリソース・テーブル218は、アプリケーションのプロセスにすでに割り当てられたメモリの量、およびオプションでタイプを決定するために、メモリ・テーブルを含むことができる。このように、メモリ・アロケータ214は、次に、メモリに対するアプリケーションのプロセスからの要求が、許可されるべきかどうかを判定することができる。
いくつかの実施形態では、メモリ・アロケータ214は、図3に示すmalloc()コマンドのような従来のメモリ割り当て技術を修正する。メモリ・アロケータ214は、要求するプロセスのアプリケーションに利用可能なリソースを分離するようにmalloc()コマンドをカスタマイズするために、分離識別子(例えば、GID)を利用することによって、従来のmalloc()システム・コールを修正する。
例えば、図3および4、ならびに、以下に示す擬似コード・ライン(1)〜(15)を参照すると、アプリケーションのプロセスは、サイズ・パラメータ・セットを有するmalloc()システム・コールを、コード・ライン(1)で要求されるメモリのブロックに使用することによって、メモリブロックを要求する。修正されたmalloc()要求は、次に、アプリケーションに割り当てられたメモリの量(例えば、ResouceTable[GID][AllocatedMemory])、および、すでにアプリケーションによって使用中のメモリの量(例えば、MemoryTable[GID][UsedMemory])を決定する。
コード・ライン(2)では、メモリ・アロケータ214は、プロセス分離識別子(例えば、GID)を取得する。
コード・ライン(3)では、メモリ・アロケータ214は、アプリケーションによって使用中のメモリ、および要求されたメモリブロックのサイズの合計と、アプリケーションに割り当てられたメモリとを比較することによって、メモリがアプリケーションに利用可能かどうかを判定する。
コード・ライン(3)の比較が、真である場合、コード・ライン(5)で、割り当てられた空間へのポインタを返すことによって、メモリが割り当てられる。コード・ライン(6)では、メモリ・アロケータ214は、従来のmalloc()が、要求されたメモリブロックを割り当てることに成功したかどうかを判定する。従来のmalloc()が成功した場合、メモリ・アロケータ214は、コード・ライン(7)で、割り当てられたメモリの更新された量を反映するように、メモリ・テーブルを更新する。そして、成功したかどうかに関わらず、malloc()は、コード・ライン(8)で、割り当てられたメモリへのポインタを返す。
コード・ライン(3)の比較が、偽である場合、メモリ・アロケータ214は、コード・ライン(12)で、要求を満たすために十分なストレージがないことを示すために、malloc()errnoをセットし、コード・ライン(13)で、ヌル・ポインタまたは他の指標ポインタを返す。
(1)modified_malloc(size_t size){
(2)GID=getgid();
(3)if((MemoryTable[GID][UsedMemory]+size)≦ResourceTable[GID][AllocatedMemory])
(4) {
(5) char*buffer=malloc(size);
(6) if(*buffer!=NULL&&errno==0)
(7) MemoryTable[GID][UsedMemory]+=size;
(8) return*buffer;
(9) }
(10)else
(11) {
(12) set errno=ENOMEM;
(13) return NULL POINTER;
(14) }
(15)}
いくつかの実施形態では、分離識別子を、仮想ディスクI/Oビュー246の1つにマッピングするために、管理レベルOS210によってリソース・テーブル218を利用することができる。このようなマッピングは、OSシステム・コール・レベルでのアプリケーション・ビューを、アプリケーションのI/O環境に制限する。例えば、分離識別子は、同じマシン上で動作する他のアプリケーションおよび/またはサービスが、同じポートで異なるIPアドレスを開くときでさえ、アプリケーションが、一意的な特定のIPアドレス/ポートでソケットを開くことを可能にする。
別の例では、「経路」が、実際のiノードにマッピングされるが、経路は、アプリケーションの仮想ディスクI/Oビュー246−X内へのこの分離識別子のカスタム・ビューである。ここで、「X」は、アプリケーションの仮想ディスクI/Oビューの1つを示す。従来、I/Oデバイス、ドライバ、および他のシステム・リソースにアクセスするために、アプリケーションのプロセスによって、/devファイル・システムを使用することができる。例えば、/devファイル・システムは、/dev/sdaのようなディスク・ドライバへのアクセスを提供する。従来のOSは、典型的には、Linuxシステム上のハードディスクのためのドライバを提供することになる。分離識別子によって変更される同様の要求では、/dev/sdaは、アプリケーション分離仮想空間の知識を有するドライバ内への入口となる。要求応答は、分離識別子によって識別されるアプリケーション分離仮想空間に割り当てられたディスクの(または、仮想ディスクの)シリンダのサブセットのみを含むように許可されることになる。
例えば、図4および5、ならびに擬似コード・ライン(16)〜(20)を参照すると、修正されたgetcwd()要求は、アプリケーションの仮想ディスクI/Oビュー246−X内の現在の作業ディレクトリを取得するために、分離識別子を利用する。
コード・ライン(16)では、アプリケーションのプロセスは、getcwd()システム・コールを、文字配列へのポインタ、および配列のサイズと共に使用することによって、現在の作業ディレクトリを要求する。コード・ライン(16)では、現在の作業ディレクトリは、従来のgetcwd()要求を使用して取得される。このような要求は、現在の作業ディレクトリを、「/machines/machine1/application1/dir1」のような文字列で返すことができる。返される文字列は、システムI/Oビュー内のディレクトリの場所のシステム・ビューである。
コード・ライン(17)では、装置214は、プロセッサの分離識別子(例えば、GID)を取得する。
コード・ライン(18)では、システムI/Oビューを、仮想ディスクI/Oビュー246に変換するために、カスタマイズされたコールが作成されてよい。trim_gidbase()ルーチンは、要求を行うGIDアプリケーションのベース文字列を検索するために、分離識別子(例えば、GID)を利用し、次に、返された現在の作業ディレクトリ文字列からそのベース文字列をトリミングする。例えば、GIDによって参照されるアプリケーションのベースが、"/machines/machine1"であった場合、trim_gidbase()コールは、アプリケーション分離仮想空間の仮想ディスクI/Oビューに「/application1/dir1」を返すように、検索された作業ディレクトリ文字列からこのベースを取り除くことになる。
(16)modified_getcwd(char*buf,size_t size){
(17)getcwd(buf);
(18)GID=getgid();
(19)trim_gidbase(buf,GID);
(20)}
同様に、いくつかの実施形態では、仮想ファイル・システム「/proc」によって識別されるリソースは、アプリケーション分離仮想空間にマッピングされてよい。「/proc」は、「実際の」ファイルを含まず、代わりに、実行時システム情報(例えば、システム・メモリ、取り付けられたデバイス、ハードウェア構成、など)を含むことに注意されたい。このように、「/proc」を、管理レベルOS210のための制御および情報センタとみなすことができる。さらに、いくつかのシステム・ユーティリティは、単に「/proc」内のファイルへの呼び出しであるため、「/proc」ディレクトリ内に位置するファイルを変更することによって、分離識別子を利用するようにシステム・ユーティリティを修正することができる。例えば、「lsmod」は、「cat/proc/modules」と同じであり、一方、「lspci」は、「cat/proc/pci」の同義語である。修正されたgetcwd()ルーチンと同様に、これらのシステム・ユーティリティは、アプリケーション分離仮想空間ビューに基づいて情報を返すために、分離識別子を使用するように修正されてよい。
図6は、図1および2の機能ブロックを参照して、図2のリソース・マネージャ110を形成するための方法の一実施形態を示すフローチャートを示す。方法600は、管理レベルOSを作成する工程(例えば、ステップ610)、および管理ネットワーク・スタックを作成する工程(例えば、ステップ620)を含む。方法600は、アプリケーション分離仮想空間が、新しいアプリケーションのために作成されるべきかどうかを監視する工程(例えば、ステップ630)も含む。アプリケーション分離仮想空間が作成されるべき場合、装置は、アプリケーション分離仮想空間のための分離識別子を決定する(例えば、ステップ640)。装置は、次に、管理レベルOSを更新し(例えば、ステップ660)、分離識別子に基づいてアプリケーション・ネットワーク・スタックを作成する(例えば、ステップ650)。管理レベルOS、管理ネットワーク・スタック、およびアプリケーション・ネットワーク・スタックのデータ構造およびプログラムの一部または全部は、図1のデジタル・データ・ストレージ150に格納されてよいことを理解されたい。
方法600では、ステップ610は、図2乃至5に記載の管理レベルOS210のような管理レベルOSを作成する工程を含む。
方法600では、ステップ620は、図2乃至5に記載の管理ネットワーク・スタック230のような管理ネットワーク・スタックを作成する工程を含む。
方法600では、ステップ630は、アプリケーション分離仮想空間が、新しいアプリケーションのために作成されるべきであるかどうかを監視する工程を含む。管理レベルOSは、例えば、システム・ハイパーバイザからの、アプリケーション仮想空間を確立するための要求を監視することができる。要求が受信され、管理レベルOSが、要求を許可するべきであると判定すると、方法は、ステップ640に進む。管理レベルOSは、単に、アプリケーション分離仮想空間を確立する要求のすべてを受け入れることができ、または、リソースがアプリケーションに割り当てられるために利用可能であるかどうかを判定することができる。
方法600では、ステップ640は、新しいアプリケーションのための分離識別子を決定する工程を含む。分離識別子は、図2乃至5に関連して説明したように、リソースをアプリケーション分離仮想空間にマッピングする。
方法600では、ステップ650は、分離識別子に基づいて管理レベルOSを更新する工程を含む。管理レベルOSは、図2乃至5に関連して説明したように、アプリケーション分離仮想空間に割り当てられたリソースをマッピングするために、分離識別子を使用する。
方法600では、ステップ660は、分離識別子に基づいてアプリケーション層ネットワーク・スタックを作成する工程を含む。アプリケーション層ネットワーク・スタックは、図2乃至5に関連して説明したように、分離識別子を使用して、管理レベルOSのリソース制御をマッピングする。
方法600のいくつかの実施形態では、管理レベルOSは、図2乃至5に記載のような割り当て制御構造を含む。例えば、管理レベルOSは、制御プログラム、リソース・テーブル(例えば、図2のリソース・テーブル218)、スケジューラ(例えば、図2のスケジューラ212)、メモリ・アロケータ(例えば、図2のメモリ・アロケータ214)、および共通ドライバ(例えば、図2の共通ドライバ216)を含むことができる。
これらの実施形態では、ステップ660は、分離識別子をリソース・ベース名にマッピングするために、リソース・テーブル218を更新する工程を含むことができる。更新する工程は、スケジューラ・アルゴリズム内のCPUサイクルのスケジューリングを変更するために、スケジューラ212を更新する工程を含むこともできる。更新する工程は、メモリ・アロケータ214を更新する工程を含むこともできる。メモリ・アロケータは、リソース・テンプレートからメモリ割り当てパラメータを取得し、要求されたメモリがメモリ・デバイス(例えば、図1のメモリ・デバイス158)内で利用可能であることを確認し、次に、要求しているアプリケーションによって使用される現在のメモリを反映するために、そのメモリ使用パラメータをリセットすることができる。
いくつかの実施形態では、ステップ630は、受信した要求に、または、リソース・マネージャによるアプリケーションの解析に基づいて、アプリケーションの新しいインスタンスを実行するように決定する工程を含むことができる。アプリケーション解析は、アプリケーションが低速で動作しているかどうかの決定であってよい。リソース・マネージャは、そのアプリケーションに設定された性能しきい値に対するアプリケーションの応答時間を監視することによって、アプリケーションが低速で動作していると判定することができる。
同様に、リソース・マネージャは、アプリケーションの活用されていないインスタンスを停止することができることを理解されたい。
図7は、図1および2の機能ブロックを参照し、図2のリソース・マネージャ110によるシステム・コールを処理するための方法の一実施形態を示すフローチャートを示す。方法700は、修正されたシステム・コールを作成する工程(ステップ710)を含む。管理レベルOSは、次に、アプリケーション要求を監視することになり(ステップ720)、要求が受信されると、要求を、修正されたシステム・コールに向けることになる(ステップ730)。修正されたシステム・コールは、次に、分離識別子を取得し(ステップ740)、分離識別子によってアプリケーションにマッピングされたアプリケーション分離仮想空間のリソースに基づいて、アプリケーションの要求に応答するために、分離識別子を使用することができる。
方法700では、ステップ710は、修正されたシステム・コールを作成する工程を含む。従来のシステム・コールは、図2乃至5に関連して説明したように修正される。修正されたシステム・コールは、アプリケーションが、そのアプリケーション分離仮想空間内のシステム・コールを利用することを可能にする。
方法700では、ステップ720は、いつシステム・コールに応対するかを決定するために、アプリケーション要求を監視する工程を含む。管理レベルOSが、アプリケーション要求を満たすべきであると判定した場合、方法は、ステップ730に進む。
方法700では、ステップ730は、修正されたシステム・コールを呼び出す工程を含む。修正されたシステム・コールは、図2乃至5に関連して説明したように呼び出される。
方法700では、ステップ740は、修正されたシステム・コールで使用されるべき分離識別子を取得する工程を含む。分離識別子は、図2乃至5に関連して説明したように取得される。いくつかの実施形態では、分離識別子は、システム・コールの一部であってよく、または、修正されたシステム・コールで(例えば、getgid()を使用して)検索されてよい。他の実施形態では、分離識別子は、システム・コール内の情報に基づいて取得されてよい。例えば、要求が属するアプリケーション分離仮想空間を識別するために、IPアドレス/ポート・タプルが使用されてよい。この識別は、タプルを分離識別子と一致させるためのリソース・テーブル(例えば、図2の218)を検索するために、受信した要求からの一意的なIPアドレス/ポート・タプルを使用することができる。
方法700では、ステップ750は、図2乃至5に関連して説明したように、分離識別子に基づいてアプリケーション・リソースを利用する工程を含む。上述したように、装置は、プロセスにシステム・リソースの分離ビューを与えるために、分離識別子を使用する。システム・リソースの分離ビューは、アプリケーションのビューを、そのアプリケーション分離仮想空間内のこれらのリソースのみに制限する。いくつかの実施形態においては、アプリケーションが、割り当てられていないリソースへのアクセスを有することになる場合、ビューは、これらのリソースを含むこともできる。
方法700のいくつかの実施形態では、ステップ710は、オプションであってよい。例えば、装置は、以前に作成された修正されたシステム・コールを使用することができる。このような以前に作成された修正されたシステム・コールは、デジタル・データ・ストレージ内に格納されてよく、または、後述するプログラム記憶デバイス内に設けられてよい。
特定の順序で主に示され、説明されているが、方法600および700に示すステップは、任意の適切な順序で実行されてよいことを理解されたい。さらに、1つのボックスで示すステップは、シーケンス内の複数の場所で実行されてもよい。
様々な上述した方法のステップは、プログラムされたコンピュータによって実行されてよいことを理解されたい。ここで、いくつかの実施形態は、プログラム記憶デバイス、例えば、デジタルデータ記憶媒体をカバーすることも意図され、デジタルデータ記憶媒体は、機械またはコンピュータ可読であり、命令の機械実行可能またはコンピュータ実行可能プログラムを符号化し、前記命令は、上述した方法のステップの一部または全部を実行する。プログラム記憶デバイスは、例えば、デジタル・メモリ、磁気ディスクおよび磁気テープのような磁気記憶媒体、ハード・ドライブ、または、光学的に読み取り可能なデジタルデータ記憶媒体であってよい。実施形態は、上述した方法の前記ステップを実行するようにプログラムされたコンピュータをカバーすることも意図される。
図8は、図1のエンド・リソース・マネージャ110の一実施形態の機能ブロックを概略的に示す。リソース・マネージャ110は、例えば、方法600および/または700を使用して、アプリケーション分離仮想空間を管理することができる。リソース・マネージャ110は、プロセッサ810およびデジタル・データ・ストレージ811を含む。
プロセッサ810は、リソース・マネージャ110の動作を制御する。プロセッサ810は、デジタル・データ・ストレージ811と協働する。
デジタル・データ・ストレージ811は、共通ドライバ(例えば、図2の共通ドライバ216)およびリソース・テーブル(例えば、図2のリソース・テーブル218)を格納する。デジタル・データ・ストレージ811は、プロセッサ810によって実行可能なプログラム820も格納する。
プロセッサ実行可能なプログラム820は、スケジューラ・プログラム821、メモリ・アロケータ・プログラム823、および割り当て制御プログラム827を含むことができる。プロセッサ810は、図1〜7に記載の機能を実装するために、および/または、方法600および/または700のステップを実行するために、プロセッサ実行可能なプログラム820と協働する。
プロセッサ実行可能なプログラム820がプロセッサ810上で実施されると、プログラム・コード・セグメントは、特定の論理回路に類似した動作をする独自のデバイスを提供するために、プロセッサと結合する。
例えば、プログラムおよびロジックが、デジタル・データ・ストレージ内に格納され、メモリが、プロセッサに通信可能に接続される実施例に関して本明細書に示し、説明しているが、このような情報は、デバイスの任意の適切な構成に通信可能に結合されたメモリ、ストレージ、またはデータベースの任意の適切な構成を使用して、メモリ(複数可)、ストレージ(複数可)、および/または内部もしくは外部データベース(複数可)の任意の適切な組み合わせに情報を格納して、または、任意の適切な数のアクセス可能な外部メモリ、ストレージ、またはデータベースを使用して(例えば、任意の適切な数のメモリ、ストレージ、またはデータベースを使用する)、任意の他の適切な方法で格納されてよいことを理解されたい。このように、本明細書で参照されるデジタル・データ・ストレージという用語は、メモリ(複数可)、ストレージ(複数可)、およびデータベース(複数可)のすべての適切な組み合わせを包含するためのものである。
説明および図面は、単に、本発明の原理を例示する。したがって、当業者は、本明細書に明示的に説明または図示されていないが、本発明の原理を具体化し、その要旨および範囲内に含まれる様々な構成を考案することができることになることが理解されるであろう。さらに、本明細書に記載のすべての例は、主として、本発明の原理、および、技術を促進することに対して発明者(複数可)によって寄与される概念を理解する上で読者を助けるための、教育学的目的のためのみのものであることが明確に意図されており、このような具体的に記載された例および条件に限定されないものとして解釈されるべきである。さらに、本発明の原理、態様、および実施形態を列挙する本明細書のすべての文は、その等価物を包含することが意図される。
「プロセッサ」とラベル付けされた任意の機能ブロックを含む、図に示す様々な要素の機能は、専用ハードウェア、ならびに、適切なソフトウェアと関連してソフトウェアを実行することができるハードウェアの使用を介して提供されてよい。プロセッサによって提供される場合、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、または、そのいくつかが共有されてよい複数の個別のプロセッサによって提供されてよい。さらに、「プロセッサ」または「コントローラ」という用語の明示的な使用は、ソフトウェアを実行することができるハードウェアのみを指すものと解釈されるべきではなく、限定なしに、デジタル信号プロセッサ(DSP)ハードウェア、ネットワーク・プロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)、ソフトウェアを格納する読み取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、および不揮発性ストレージを暗黙的に含むことができる。従来のおよび/またはカスタムの他のハードウェアが含まれてもよい。同様に、図1に示すあらゆるスイッチは、単に概念的なものである。それらの機能は、プログラム・ロジックの動作を介して、専用ロジックを介して、プログラム制御および専用ロジックの相互作用を介して、または、手動でさえ実行されてよく、具体的な技術は、文脈からより具体的に理解されるように、実施者により選択可能である。
本明細書中のあらゆるブロック図は、本発明の原理を具体化する例示的な回路網の概念的図を表すことを理解されたい。同様に、あらゆるフローチャート、流れ図、状態遷移図、擬似コード、などは、コンピュータ可読媒体内に実質的に表現されてよく、コンピュータまたはプロセッサが明示的に示されているか否かにかかわらず、このようなコンピュータまたはプロセッサによって実行されてよい、様々なプロセスを表すことを理解されたい。

Claims (10)

  1. リソース・マネージャを作成するための方法であって、
    デジタル・データ・ストレージに通信可能に結合されたプロセッサで、前記デジタル・データ・ストレージ内に管理レベルOSを作成するステップと、
    前記デジタル・データ・ストレージと協働する前記プロセッサによって、アプリケーション分離仮想空間に対するアプリケーション要求を監視するステップと、
    前記デジタル・データ・ストレージと協働する前記プロセッサによって、アプリケーション分離仮想空間に対する複数のアプリケーション要求を許可するステップと、
    を含み、
    前記アプリケーション要求を許可するステップは、
    前記アプリケーション分離仮想空間の分離識別子を決定するステップと、
    前記分離識別子に基づいて前記管理レベルOSを更新するステップと、
    前記デジタル・データ・ストレージ内にアプリケーション・ネットワーク・スタックを作成するステップと、
    を含む、方法。
  2. 前記管理レベルOSを更新するステップは、
    少なくとも1つの共通リソース・スケジューラを更新するステップと、
    少なくとも1つのメモリ共通リソース・アロケータを更新するステップと、
    少なくとも1つのリソース・テーブルを更新するステップと、
    のうちの少なくとも1つをさらに含む、請求項1に記載の方法。
  3. 前記デジタル・データ・ストレージと協働する前記プロセッサによって、システム・コール要求を受信するステップと、
    前記デジタル・データ・ストレージと協働する前記プロセッサによって、分離識別子を取得するステップと、
    前記デジタル・データ・ストレージと協働する前記プロセッサによって、前記分離識別子に基づいて前記システム・コール要求を満たすために、アプリケーション・リソースを利用するステップと、
    をさらに含む、請求項1に記載の方法。
  4. リソース管理装置であって、
    デジタル・データ・ストレージを備え、前記デジタル・データ・ストレージが、少なくとも1つの記憶デバイスおよび少なくとも1つのメモリ・デバイスを含み、前記リソース管理装置が、さらに、
    少なくとも1つのネットワーク・インタフェースと、
    少なくとも1つのプロセッサと、
    を備え、前記少なくとも1つのプロセッサが、
    前記デジタル・データ・ストレージ内に管理レベルOSを作成し、
    アプリケーション分離仮想空間に対するアプリケーション要求を監視し、
    アプリケーション分離仮想空間に対する複数のアプリケーション要求を許可するように構成され、
    要求の前記許可が、
    前記アプリケーション分離仮想空間の分離識別子の決定と、
    前記分離識別子に基づく前記管理レベルOSの更新と、
    前記デジタル・データ・ストレージ内のアプリケーション・ネットワーク・スタックの作成と、
    を含む、リソース管理装置。
  5. 前記管理レベルOSの更新が、少なくとも1つの共通リソース・スケジューラの更新をさらに含み、該1つの共通リソース・スケジューラは、前記分離識別子に基づいて、前記少なくとも1つのプロセッサへのアクセスを制御する、請求項4に記載の装置。
  6. 前記少なくとも1つのプロセッサが、さらに、
    システム・コール要求を受信し、
    分離識別子を取得し、
    前記分離識別子に基づいて前記システム・コール要求を満たすために、アプリケーション・リソースを利用するように構成される、請求項4に記載の装置。
  7. 前記システム・コール要求が、修正されたシステム・コールを呼び出す、請求項6に記載の装置。
  8. 前記少なくとも1つのプロセッサが、さらに、システム・コールから前記修正されたシステム・コールを作成するように構成される、請求項6に記載の装置。
  9. 前記修正されたシステム・コールが、仮想ディスクI/Oビューにアクセスする、請求項7に記載の装置。
  10. 前記修正されたシステム・コールが、共有メモリにアクセスする、請求項7に記載の装置。
JP2014530676A 2011-09-14 2012-08-23 分離された仮想空間を提供するための方法および装置 Expired - Fee Related JP5837206B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/232,006 2011-09-14
US13/232,006 US8898672B2 (en) 2011-09-14 2011-09-14 Method and apparatus for providing isolated virtual space
PCT/US2012/051966 WO2013039662A1 (en) 2011-09-14 2012-08-23 Method and apparatus for providing isolated virtual space

Publications (2)

Publication Number Publication Date
JP2014530413A true JP2014530413A (ja) 2014-11-17
JP5837206B2 JP5837206B2 (ja) 2015-12-24

Family

ID=46826901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014530676A Expired - Fee Related JP5837206B2 (ja) 2011-09-14 2012-08-23 分離された仮想空間を提供するための方法および装置

Country Status (7)

Country Link
US (2) US8898672B2 (ja)
EP (1) EP2756397A1 (ja)
JP (1) JP5837206B2 (ja)
KR (1) KR20140049064A (ja)
CN (1) CN103797465B (ja)
TW (1) TW201331763A (ja)
WO (1) WO2013039662A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898672B2 (en) 2011-09-14 2014-11-25 Alcatel Lucent Method and apparatus for providing isolated virtual space
KR101403783B1 (ko) * 2013-06-20 2014-06-03 박종하 어플리케이션 실행의 개별단계를 위한 가상 공간 제공 시스템
KR101535792B1 (ko) * 2013-07-18 2015-07-10 포항공과대학교 산학협력단 운영체제 구성 장치 및 방법
US9405568B2 (en) 2013-09-13 2016-08-02 Microsoft Technology Licensing, Llc Multi-tenant network stack
CN104572147A (zh) * 2013-10-18 2015-04-29 宇宙互联有限公司 云启动系统、具有云启动系统的虚拟机及其启动方法
RU2571380C2 (ru) * 2013-12-27 2015-12-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для изоляции ресурсов посредством использования ресурсных менеджеров
US9396009B2 (en) 2014-01-30 2016-07-19 International Business Machines Corporation Optimized global capacity management in a virtualized computing environment
US9940180B2 (en) 2014-03-31 2018-04-10 Nicira, Inc. Using loopback interfaces of multiple TCP/IP stacks for communication between processes
US9729679B2 (en) 2014-03-31 2017-08-08 Nicira, Inc. Using different TCP/IP stacks for different tenants on a multi-tenant host
US10091125B2 (en) * 2014-03-31 2018-10-02 Nicira, Inc. Using different TCP/IP stacks with separately allocated resources
CN105224886B (zh) * 2014-06-26 2018-12-07 中国移动通信集团甘肃有限公司 一种移动终端安全隔离方法、装置及移动终端
US9405578B2 (en) 2014-07-11 2016-08-02 Accenture Global Services Limited Intelligent application back stack management
CN104216821B (zh) * 2014-08-26 2018-04-27 联想(北京)有限公司 信息处理方法、信息处理装置及电子设备
CN104331659A (zh) * 2014-10-30 2015-02-04 浪潮电子信息产业股份有限公司 一种关键应用主机系统资源应用隔离的设计方法
US10382343B2 (en) * 2017-04-04 2019-08-13 Netapp, Inc. Intelligent thread management across isolated network stacks
CN108235094B (zh) * 2018-01-09 2021-07-23 武汉斗鱼网络科技有限公司 歌词显示方法、装置、可读存储介质及设备
CN110750469A (zh) * 2018-07-23 2020-02-04 大唐移动通信设备有限公司 一种应用数据的处理方法及装置
US11487590B2 (en) * 2018-10-09 2022-11-01 Kyndryl, Inc. Orchestration engine resources and blueprint definitions for hybrid cloud composition
CN109521966A (zh) * 2018-11-15 2019-03-26 郑州云海信息技术有限公司 存储设备虚拟化方法、装置、终端及计算机可读存储介质
CN111666110B (zh) * 2019-03-08 2022-11-18 厦门网宿有限公司 基于用户态协议栈批量处理网络隔离空间的方法和装置
CN110430132B (zh) * 2019-07-05 2021-04-27 杭州迪普信息技术有限公司 绑定Socket与VRF的方法和装置
CN113672411B (zh) * 2021-08-25 2023-08-11 烽火通信科技股份有限公司 一种网络设备虚拟化驱动适配层的实现方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6065019A (en) * 1997-10-20 2000-05-16 International Business Machines Corporation Method and apparatus for allocating and freeing storage utilizing multiple tiers of storage organization
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7467158B2 (en) * 2005-06-10 2008-12-16 Microsoft Corporation Object virtualization
US20070106986A1 (en) * 2005-10-25 2007-05-10 Worley William S Jr Secure virtual-machine monitor
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7882227B2 (en) 2006-02-23 2011-02-01 Oracle America, Inc. Mechanism for implementing file access control across a network using labeled containers
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
WO2008077628A2 (en) * 2006-12-22 2008-07-03 Virtuallogix Sa System for enabling multiple execution environments to share a device
US9059965B2 (en) 2009-06-30 2015-06-16 Oracle America, Inc. Method and system for enforcing security policies on network traffic
US8448169B2 (en) * 2010-07-12 2013-05-21 International Business Machines Corporation Managing unique electronic identification for kernel extensions in isolated virtual space
US8230122B2 (en) * 2010-07-12 2012-07-24 International Business Machines Corporation Direct provisioning of storage devices to virtual OS partitions
US8527989B2 (en) * 2010-07-12 2013-09-03 International Business Machines Corporation Tracking loading and unloading of kernel extensions in isolated virtual space
CN102103518B (zh) * 2011-02-23 2013-11-13 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
US20150025348A1 (en) 2011-08-22 2015-01-22 Eric Grabowski Assessing Coagulation
US8898672B2 (en) 2011-09-14 2014-11-25 Alcatel Lucent Method and apparatus for providing isolated virtual space

Also Published As

Publication number Publication date
EP2756397A1 (en) 2014-07-23
TW201331763A (zh) 2013-08-01
US20160085589A1 (en) 2016-03-24
US8898672B2 (en) 2014-11-25
CN103797465A (zh) 2014-05-14
CN103797465B (zh) 2017-03-22
WO2013039662A1 (en) 2013-03-21
US9304824B1 (en) 2016-04-05
KR20140049064A (ko) 2014-04-24
US20130067485A1 (en) 2013-03-14
JP5837206B2 (ja) 2015-12-24

Similar Documents

Publication Publication Date Title
JP5837206B2 (ja) 分離された仮想空間を提供するための方法および装置
US11218364B2 (en) Network-accessible computing service for micro virtual machines
US10193963B2 (en) Container virtual machines for hadoop
JP6488296B2 (ja) スケーラブル分散ストレージアーキテクチャ
US10228737B2 (en) Affinity-aware parallel zeroing of memory for initialization of large pages in non-uniform memory access (NUMA) servers
US20170090971A1 (en) Managing virtual machine instances utilizing an offload device
US11487591B1 (en) Automatically configuring execution of a containerized application
CA2734069A1 (en) Provisioning virtual resources using name resolution
JP2016531349A (ja) 仮想化ストレージエリアネットワークのための仮想ディスクブループリント
US20210263677A1 (en) Nvme queue management multi-tier storage systems
US20130067464A1 (en) Virtual machine mobility using resource pools
CN113939803B (zh) 用于专用主机的管理计算资源放置即服务
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
US10706005B2 (en) File system interface for remote direct memory access
US11573719B2 (en) PMEM cache RDMA security

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151104

R150 Certificate of patent or registration of utility model

Ref document number: 5837206

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees