CN103797465A - 用于提供隔离的虚拟空间的方法与设备 - Google Patents

用于提供隔离的虚拟空间的方法与设备 Download PDF

Info

Publication number
CN103797465A
CN103797465A CN201280044461.8A CN201280044461A CN103797465A CN 103797465 A CN103797465 A CN 103797465A CN 201280044461 A CN201280044461 A CN 201280044461A CN 103797465 A CN103797465 A CN 103797465A
Authority
CN
China
Prior art keywords
application
isolation
resource
digital data
processor
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
CN201280044461.8A
Other languages
English (en)
Other versions
CN103797465B (zh
Inventor
约翰.H.萨米廉
托马斯.L.伍德
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.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
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 Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of CN103797465A publication Critical patent/CN103797465A/zh
Application granted granted Critical
Publication of CN103797465B publication Critical patent/CN103797465B/zh
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

多个实施例提供了创建应用隔离的虚拟空间而不需要运行多个操作系统的方法与设备。应用隔离的虚拟空间由操作系统利用资源管理器创建。资源管理器通过重写网络栈与传统操作系统内核的I/O子系统将多个应用彼此隔离,以使得物理资源的多个隔离的网络栈/虚拟I/O视图由该操作系统管理。隔离的网络栈及虚拟I/O视图识别分配给应用的隔离的虚拟空间的资源,且通过隔离标识符被映射到应用。

Description

用于提供隔离的虚拟空间的方法与设备
技术领域
本发明一般涉及用于创建隔离的虚拟专用服务器的方法与设备。
背景技术
本节介绍的内容可能有助于帮助更好的理解本发明。因此,本节的声明是应从这个角度理解而不应被理解为承认其在现有技术中或承认其不在现有技术中。
存在多种允许主机环境动态地分配物理服务器资源以创建虚拟专用服务器的技术。在一些已知系统中,物理服务器上运行有负责创建、释放及管理“客户”操作系统(guest operating systems,guest OSs)资源的虚拟机管理器,或者运行有虚拟机。
发明内容
多个实施例提供了创建应用隔离的虚拟空间而不需要运行多个操作系统的方法与设备。应用隔离的虚拟空间由操作系统(OperatingSystem,OS)利用资源管理器创建。资源管理器通过重写网络栈与传统操作系统内核的I/O子系统将多个应用彼此隔离,以使得物理资源的多个隔离的网络栈/虚拟I/O视图(virtual I/O view)由该操作系统管理。隔离的网络栈及虚拟I/O视图识别分配给应用的隔离的虚拟空间的资源,且通过隔离标识符被映射到应用。有利的是,创建了提供具有隔离的操作环境的应用而无需运行多个操作系统的方法与设备。
在一个实施例中,提供一种用于创建资源管理器的方法。该方法包括:在数字数据存储器中创建管理级别操作系统,监测用于应用隔离的虚拟空间的应用请求,以及准许用于应用隔离的虚拟空间的多个应用请求。所述应用请求的准许包括为所述应用隔离的虚拟空间确定隔离标识符,基于所述隔离标识符更新所述管理级别操作系统,以及在所述数字数据存储器中创建应用网络栈。
在一些实施例中,更新所述管理级别操作系统包括更新至少一个公共资源调度器。
在一些实施例中,更新所述管理级别操作系统包括更新至少一个内存公共资源分配器。
在一些实施例中,更新所述管理级别操作系统包括更新至少一个资源表。
在另一实施例中,提供一种用于服务在应用隔离的虚拟空间中的系统调用请求的方法。该方法包括:接收系统调用请求,获取隔离标识符,以及利用应用资源以满足基于所述隔离标识符的所述系统调用请求。
在一些实施例中,所述系统调用请求调用经修改的系统调用。
在一些实施例中,该方法包括从系统调用创建所述经修改的系统调用。
在一些实施例中,所述经修改的系统调用访问虚拟磁盘I/O视图。
在一些实施例中,所述经修改的系统调用访问共享内存。
在另一实施例中,提供一种用于管理系统资源的装置。该装置包括数字数据存储器,所述数字数据存储器包括至少一个存储设备以及至少一个内存设备。该装置还包括至少一个网络接口以及至少一个处理器。所述(一个或多个)处理器被配置以:在所述数字数据存储器中创建管理级别操作系统;监测用于应用隔离的虚拟空间的应用请求;以及准许用于应用隔离的虚拟空间的多个应用请求。所述应用请求的准许包括:为所述应用隔离的虚拟空间确定隔离标识符;基于所述隔离标识符更新所述管理级别操作系统;以及在所述数字数据存储器中创建应用网络栈。
在一些实施例中,更新所述管理级别操作系统还包括更新至少一个公共资源调度器。
在一些实施例中,所述一个公共资源调度器基于所述隔离标识符控制对所述至少一个处理器的访问。
在一些实施例中,更新所述管理级别操作系统包括更新至少一个内存公共资源分配器。
在一些实施例中,更新所述管理级别操作系统包括更新至少一个资源表。
在另一实施例中,提供一种用于服务系统调用的装置。该装置包括数字存储器,所述数字数据存储器包括至少一个存储设备以及至少一个内存设备,至少一个网络接口以及至少一个处理器。所述处理器被编程以接收系统调用请求,获取隔离标识符,以及利用应用资源以满足基于所述隔离标识符的所述系统调用请求。
在一些实施例中,所述系统调用请求调用经修改的系统调用。
在一些实施例中,所述至少一个处理器被编程以从系统调用中创建所述经修改的系统调用。
在一些实施例中,所述经修改的系统调用访问虚拟磁盘I/O视图。
在一些实施例中,所述经修改的系统调用访问共享内存。
在另一实施例中,提供一种用于创建资源管理器的数字数据存储器介质。该介质包括程序,该程序用于在数字数据存储器中创建管理级别操作系统、监测用于应用隔离的虚拟空间的应用请求,以及准许用于应用隔离的虚拟空间的多个应用请求。所述应用请求的准许包括:为所述应用隔离的虚拟空间确定隔离标识符;基于所述隔离标识符更新所述管理级别操作系统;以及在所述数字数据存储器中创建应用网络栈。
附图说明
各实施例在附图中被示出,其中:
图1描述示意性地示出资源管理系统实施例的框图;
图2描述示意性地示出图1的资源管理器的实施例的框图;
图3描述示例性的系统调用;
图4描述示例性的系统调用;
图5描述示例性的系统调用;
图6描述示出参考图2-5的功能框创建图2的资源管理器的方法的实施例的流程图;
图7描述示出参考图2-5的功能框由图2的资源管理器处理系统调用的方法的实施例的流程图;以及
图8示意性地示出图1中资源管理器110的一个实施例的框图。
为便于理解,相同的参考数字用于指定具有基本相同或相似结构和/或基本相同或相似功能的部件。
具体实施方式
应用隔离的虚拟空间由操作系统(OS)利用资源管理器创建。资源管理器通过重写网络栈与传统操作系统内核的I/O子系统将多个应用彼此隔离,以使得物理资源的多个隔离的网络栈接口和/或虚拟I/O视图由该操作系统管理。隔离的网络栈及虚拟I/O视图识别分配给应用的隔离的虚拟空间的资源,且通过隔离标识符被映射到应用。
图1描述示意性地示出资源管理系统100的实施例的框图。资源管理系统100包括资源管理器110,所述资源管理器110控制资源管理系统100的资源集群120内的资源分配。
资源管理器110,其进一步细节将在以下描述,控制将资源集群120中的资源分配给应用。
资源集群120可包含由资源管理器110分配的物理系统资源。资源可包括,例如,一个或多个处理器130,一个或多个网络接口140,及数字数据存储器150。
数字数据存储器150可包括一个或多个存储设备154以及一个或多个内存设备158。存储设备154可包括任何适合用于存储非易失性数据的设备。内存设备158可包括任何适合用于被CPU访问作为主存储器的设备。
在一些实施例中,资源管理器110可体现在位于数字数据存数器150中的一个或多个有形程序中,并由一个或多个处理器130执行。
在一些实施例中,资源管理器110包括资源模板以确定将资源集群120中的资源分配给单独的应用。可基于应用的类别,和/或基于账单和/或服务级别协议,为每个应用定制资源模板。资源模板可包括关于各种类型的应用资源需求的参数值,应用资源需求诸如CPU周期(即处理器)需求、网络接口需求、存储器使用需求和/或内存使用需求。
CPU需求可包括任何合适的诸如(一个或多个)专用处理器和/或(一个或多个)内核的需求、时间片(应用可用的内核滴答数(tick))、优先级、最大等待时间和/或类似的参数或参数的组合。网络接口需求可包括任何合适的诸如IP地址、最大时延、最小带宽和/或类似的参数或参数的组合。存储使用需求可包括任何合适的诸如存储大小、访问速度和/或类似的参数或参数的组合。内存使用需求可包括任何合适的诸如访问速度、可用最小物理内存及弹性增长和/或类似的参数或参数的组合。
在一些实施例中,资源集群120内的资源可由单个物理实体内提供,物理实体诸如服务器。在其他实施例中,资源集群120内的资源可由物理分离的多个实体提供。
在一个实施例中,处理器130可以是一个或多个设备机架中的若干刀片服务器,网络接口140可以是若干网络接口卡(network interfacecards,NICs),存储设备154可包括若干外部存储设备,以及内存设备158可以是一个或多个设备机架中的若干刀片服务器。应注意的是,在一些实施例中,部分资源可由位于远程(例如,在云网络中)的设备提供。
在一些实施例中,存储设备154可以是硬盘驱动器、光盘驱动器、闪存和/或类似的。
在一些实施例中,内存设备158可以是随机存取存储器(random-access memory,RAM)、动态RAM、闪存和/或类似的。
图2描述示意性地示出图1的资源管理器110的实施例的框图。资源管理器110包括控制将图1中资源集群120中的资源分配给操作系统和单个应用的管理级别操作系统210。如在此所述,分配给给定应用的集体资源是上述应用正在其中执行的“应用隔离的虚拟空间”。分配给应用的集体资源包括已分配的专用资源与共享资源(即对于应用不是专用的资源)。共享资源可存在于管理级别操作系统210中,然而单独网络栈和I/O设备将保持在虚拟网络栈220中。有利的是,每一应用隔离的虚拟空间看起来像外部网络,如同独立的实体一样,不需要每一虚拟空间实例的专用硬件资源。在此所用术语“应用”应被广义地理解,也包括服务。
资源管理器管理级别操作系统210包括控制资源分配的结构,优选地也包括用于共享资源的控制器。应用进程受访问资源的直接限制。而管理级别操作系统210提供用于访问资源诸如I/O设备、文件系统和网络通信设备的抽象层。
分配控制结构可包括控制程序(未示出)和资源表218。资源表由控制程序使用以将隔离标识符映射至应用的隔离的虚拟空间。共享资源控制器可包括:调度器212、内存分配器程序214以及公共驱动器216。有利的是,仅需一个管理级别的操作系统,但是若需要可使用多个管理级别的操作系统。
虚拟网络栈220包括管理网络栈230以及一个或多个应用网络栈240-1至240-N。管理网络栈230是为基础设施运营商提供的操作系统的管理视角。每一应用网络栈240-1至240-N,在集合意义上(collectively)应用网络栈240,是独特网络栈(IP层)和独特虚拟I/O层。管理级别操作系统210运用隔离标识符和资源表218控制应用对应用网络栈240的访问。
每一网络栈实例完全独立于所有其他网络栈实例,因此,每一实例保持其自身的私有路由表、通信套接字组以及所关联的协议控制块。隔离标识符可被用于限制对网络栈的访问,从而使得仅一个运行在对应的应用隔离的虚拟空间的应用进程将具有权限。这样部署是有利的,因为其允许性能提升且同时将应用网络栈240彼此相隔离。应注意的是,应用网络栈240也可被分配唯一资源,例如,每一应用可被允许保持其自身的IP地址和端口。
调度器212可由管理级别操作系统210创建以在争夺对资源的访问的多个应用之间共享使用(例如,复用/解复用(MUX/DEMUX))一个独特的资源。调度器212可包括由管理级别操作系统210使用的调度算法以在多个请求应用之间分配共享资源。
内存分配器214可由管理级别操作系统210使用以将可用内存(例如,图1的内存设备158)分配给应用。
公共驱动器216可由管理级别操作系统210使用以降低与复用驱动器相关联的开销。例如,公共驱动器216中的单个以太网层驱动器可提供介质访问控制(MAC,Medium Access Control)与管理级别操作系统210之间的通信,并且还可提供对整个网络层协议与应用层的访问。
资源表218可由管理级别操作系统210使用以使用隔离标识符将资源映射至应用的隔离的虚拟空间。
在一些实施例中,管理级别操作系统210在操作系统启动期间创建传统网络栈和I/O设备,例如,管理网络栈230。对于在需要应用隔离的虚拟空间的该环境中启动的每一随后可见的应用,管理级别操作系统210创建应用网络栈240-X,其中,“X”表示应用网络栈240中的一个。
在一些实施例中,管理级别操作系统210通过使用隔离标识符修改对内核的系统调用的特性,以将该应用与其他应用相隔离。例如,只有设备(真的或伪的)在其自身的应用隔离的虚拟空间,执行系统调用以返回所有在系统上的网络设备的应用进程才响应。因此,没有其他网络设备将被使用或甚至被应用的进程发现。
在一些实施例中,Unix/Linux/POSIX GID(可移植操作系统接口群体身份,Portable Operating System Interface GroupID)为隔离标识符。GID通常被用于创建用户组,诸如学生组或部门员工组。因为用户和群组的概念通常不被用在服务器上。GID可由管理级别操作系统210使用以组织组成应用的进程组。以这种方式,管理级别操作系统210识别应用隔离的虚拟空间中由应用的进程使用的可用资源。在一些实施例中,经修改的系统调用抑制处理的查看和访问和/或由其他应用所使用的资源名称。
有利的是,使用隔离标识符的应用网络栈240的管理允许显著地降低从应用至物理网络接口的数据路径开销。与没有隔离应用网络栈的传统操作系统环境相比,这也导致更好地利用其他系统资源,尤其是CPU和RAM。
在一些实施例中,调度器212包括被编程以在多个应用之间共享CPU处理周期(例如,图1的处理器130)的调度算法。应注意的是,处理器130可包括一个或多个处理器,其中每一个可包含一个或多个内核。调度器212可使用资源模板以将所有或部分(一个或多个)内核和/或(一个或多个)处理器分配给应用。调度算法可以是任何合适的算法,诸如:传统公平算法和/或传统优先级算法。应理解的是,(一个或多个)内核和/(一个或多个)或处理器可在多个应用之间共享或被专用至某一应用。例如,实时确定的应用可需要专用的(一个或多个)内核和/或(一个或多个)处理器。
在一些实施例中,调度器212可在请求资源的多个应用进程之间共享未分配的和/或未充分利用的资源。未充分利用的资源是专用至某一应用但未被该应用最大程度使用其分配部分的资源。
在一些实施例中,调度器212可运用不同调度算法调度在第一应用隔离的虚拟空间中资源的使用,而不是被用于调度在第二应用隔离的虚拟空间中的资源。
在一些实施例中,内存分配器214可使用资源表218确定分配给应用的内存数量和类型。此外,内存分配器214或可选地资源表218可包括内存表以确定已经分配给应用的进程的数量与类型,其中,类型是可选地。如此,内存分配器214然后可确定来自应用的进程的关于内存的请求是否应当被准许。
在一些实施例中,内存分配器214修改传统内存分配技术诸如在图3中所示的malloc()命令。内存分配器214通过使用隔离标识符(例如,GID)修改传统malloc()系统调用以定制malloc()命令来隔离请求进程的应用的可用资源。
例如,参考图3和图4,以及显示如下的伪代码行(1)-(15),应用的进程通过使用具有在代码行(1)请求的为内存块设置的大小参数的malloc()系统调用来请求内存块。经修改的malloc()请求然后确定分配给应用的内存数量(例如,ResouceTable[GID][AllocatedMemory](资源表[GID][已分配资源]))以及已经被该应用使用的内存数量(例如,MemoryTable[GID][UsedMemory](内存表[GID][已使用的内存]))。
在代码行(2),内存分配器214获取进程隔离标识符(例如,GID)。
在代码行(3),内存分配器214通过将应用使用的内存总和以及所请求的内存块的大小与分配给该应用的内存相比较,确定内存对应用是否是可用的。
若在代码行(3)中的比较结果为真,则通过返回指向分配空间的指针,在代码行(5)分配内存。在代码行(6),内存分配器214确定是否常规malloc()已成功分配所请求的内存块。若常规malloc()是成功的,内存分配器214更新内存表以反映在代码行(7)中分配的已更新内存数量。然后,成功与否,在代码行(8),malloc()返回指向所分配内存的指针。
若在代码行(3)中的比较结果为假,则内存分配器214在代码行(12)将malloc()设置为错误以指示没有足够存储来服务请求,并在代码行(13)返回空指针或某些其他指示指针。
Figure BDA0000476230880000091
在一些实施例中,资源表218被管理级别操作系统210使用以将隔离标识符映射至多个虚拟磁盘I/O视图246中的一个。该映射将在操作系统系统调用级别的应用视图限制到应用的I/O环境。例如,隔离标识符允许应用在特定IP地址/端口开启套接字,该特定IP地址/端口是唯一的,即使当运行在相同机器上的其他应用和/或服务在相同的端口上开启了不同的IP地址。
在另一示例中,“路径”被映射至真实的i节点,但是该路径是用于在应用的虚拟磁盘I/O视图246-X中的该隔离标识符的自定义视图。在此,“X”表示多个应用的虚拟磁盘I/O视图中的一个。通常,/dev文件系统可由应用的进程使用以访问I/O设备、驱动器及其他系统资源。例如,/dev文件系统通过诸如/dev/sda提供至磁盘驱动器的访问。传统的操作系统通常会提供用于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”。
Figure BDA0000476230880000111
类似地,在一些实施例中,由虚拟文件系统“/proc”识别的资源可被映射到应用隔离的虚拟空间。注意“/proc”未包含‘真实’文件而是包含运行时间的系统信息(例如,系统内存、设备安装、硬件配置,等等)。如此,“/proc”可被认为是用于管理级别操作系统210的控制与信息中心。此外,由于多个系统工具是对“/proc”中的文件的简单调用,系统工具可被修改以通过改变位于“/proc”目录中的文件来使用隔离标识符。例如,‘Ismod’与‘cat/proc/modules’一样,而‘Ispci’与‘cat/proc/modules’是同义词。与经修改的getcwd()程序类似,这些系统工具可被修改以使用隔离标识符返回基于应用隔离的虚拟空间视图的信息。
图6描述示出参考图1和图2的功能框而创建图2的资源管理器110的方法的实施例的流程图。方法600包括创建管理级别操作系统(例如,步骤610)和创建管理网络栈(例如,步骤620)。方法600还包括监测是否应为新应用创建应用隔离的虚拟空间(例如,步骤630)。若应用隔离的虚拟空间应被创建,装置为该应用隔离的虚拟空间确定隔离标识符(例如,步骤640)。然后,装置更新管理级别操作系统(例如,步骤660)并基于隔离标识符创建应用网络栈(例如,步骤650)。应注意的是,管理级别操作系统、管理网络栈,以及应用网络栈的部分或全部数据结构和程序可被存储在图1的数字数据存储器150中。
在方法600中,步骤610包括创建管理级别操作系统诸如在图2-5中描述的管理级别操作系统210。
在方法600中,步骤620包括创建管理网络栈诸如在图2-5中描述的管理网络栈230。
在方法600中,步骤630包括监测是否应为新应用创建应用隔离的虚拟空间。装置管理级别操作系统可例如从系统管理程序监测用于建立应用虚拟空间的请求。若请求已被接收且管理级别操作系统确定应准许该请求,则该方法进入步骤640。管理级别操作系统可仅接受用于建立应用隔离的虚拟空间的所有请求或者其可确定待被分配给应用的资源是否可用。
在方法600中,步骤640包括确定用于新应用的隔离标识符。如结合图2-5的描述,隔离标识符将资源映射至应用隔离的虚拟空间。
在方法600中,步骤650包括基于隔离标识符更新管理级别操作系统。如结合图2-5的描述,管理级别操作系统使用隔离标识符将所分配的资源映射至应用隔离的虚拟空间。
在方法600中,步骤660包括基于隔离标识符创建应用层网络栈。结合图2-5的描述,应用层网络栈被映射至使用隔离标识符的管理级别操作系统的资源控制。
在方法600的一些实施例中,诸如在图2-5中的描述,管理级别操作系统包括分配控制结构。例如,管理级别操作系统可包括:控制程序、资源表(例如,图2中的资源表218)、调度器(例如,图2中的调度器212)、内存分配器(例如,图2中的内存分配器214)以及公共设备(例如,图2中的公共设备216)。
在这些实施例中,步骤660可包括更新资源表218以将隔离标识符映射至资源库名称。更新也可包括更新调度器212以修改调度器算法中的CPU周期的调度。更新也可包括更新内存分配器214。内存分配器可从内存模板获取内存分配参数,确定在内存设备(例如,图1中的内存设备158)中的所需内存是可用的,然后,重设其内存使用参数以反映由请求应用所使用的当前内存。
在一些实施例中,步骤630可包括根据所接收的请求或根据资源管理器对应用的分析确定运行应用的新示例。应用分析可确定是否应用正缓慢运行。资源管理器可通过监测应用对为该应用设置的性能阈值的响应时间确定应用正缓慢运行。
应注意的是,资源管理器可按照相同方式,停止应用的未充分利用的示例。
图7描述示出参考图1与2的功能框由图2的资源管理器110处理系统调用的方法的实施例的流程图。方法700包括创建经修改的系统调用(步骤710)。然后,管理级别操作系统将监测应用请求(步骤720),以及当请求被接收到时,将该请求直接发送给经修改的系统调用(步骤730)。然后,经修改的系统调用获取隔离标识符(步骤740)并基于由隔离标识符映射至应用的应用隔离的虚拟资源,使用该隔离标识符响应应用请求。
在方法700中,步骤710包括创建经修改的系统调用。如同结合图2-5的描述,传统系统调用被修改。经修改的系统调用使得应用能够使用在其应用隔离的虚拟空间中的系统调用。
在方法700中,步骤720包括监测应用请求以确定何时服务系统调用。若管理级别操作系统确定其应服务应用请求,该方法进入步骤730。
在方法700中,步骤730包括调用经修改的系统调用。如同结合图2-5的描述,经修改的系统调用被调用。
在方法700中,步骤740包括获取将被用于在经修改的系统调用中的隔离标识符。如同结合图2-5的描述,隔离标识符被获取。在一些实施例中,隔离标识符可以是系统调用的一部分,或者可在经修改的系统调用(例如,使用getgid())中被获取。在其他实施例中,隔离标识符可基于系统调用中的信息被获取。例如,IP地址/端口元组(port tuple)可被用于识别请求所属的应用隔离的虚拟空间。该识别可使用来自所接收请求的唯一IP地址/端口元组来查询资源表(例如,图2中的218)以匹配具有隔离标识符的元组。
在方法700中,如同结合图2-5的描述,步骤750包括基于隔离标识符,使用应用资源。如前所述,装置使用隔离标识符提供系统资源的隔离视图的处理。系统资源的隔离视图将应用的视图仅限制于在其应用隔离的虚拟空间中的那些资源。在一些实施例中,若应用会访问这些资源,该视图可还包括未分配的资源。
在方法700的一些实施例中,步骤710可以是可选的。例如,装置可使用先前创建的经修改的系统调用。该先前创建的经修改的系统调用可被存储在数字数据存储器中或在以下描述的程序存储设备中被提供。
尽管以特定顺序进行了主要描述和阐述,应注意的是,在方法600和700中所示出的步骤可按任何合适顺序被执行。而且,由一个盒子所识别的步骤也可按顺序在多个地方被执行。
应注意的是,各种上述方法的步骤可由可编程计算机执行。在此,部分实施例还旨在覆盖程序存储设备,例如,数字数据存储介质,其是机器或计算机可读的且编码了机器可执行的或计算机可执行的程序指令,在此,所述指令执行所述上述方法的部分或全部步骤。程序存储设备可以是,例如,数字内存、磁存储介质诸如磁盘或磁带、硬盘、或光可读数字数据存储介质。该等实施例还旨在覆盖可被编程以执行上述方法的所述步骤的计算机。
图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与处理器可执行的程序820合作以实现在图1-7中描述的功能性和/或执行方法600和/或700的步骤。
当处理器可执行的程序820在处理器810上执行时,程序代码段与处理器结合以提供与特定逻辑电路类似运行的唯一设备。
尽管在此描述和阐述的是关于实施例,其中,例如,程序和逻辑存储在数字数据存储器中,且内存以通信方式连接至处理器,应注意的是,该信息可以任何其他合适方式存储(例如,使用任何合适数量的内存,存储器或数据库);使用任何合适布置的内存、存储器或以通信方式耦合至任何合适布置的设备的数据库;在任何合适组合的(一个或多个)内存、(一个或多个)存储器和/或(一个或多个)内部或外部数据库中存储信息;或使用任何合适数量的可访问外部内存、存储器或数据库。如此,在此所提及的术语“数字数据存储器”指的是包含所有合适的(一个或多个)内存、(一个或多个)存储器与(一个或多个)数据库的组合。
描述和附图仅示出本发明的原理。因此,应注意的是,尽管在此未明确描述或示出,本领域技术人员将能够设计出实现本发明原理并被包含在本发明的精神实质和范围之内的各种装置。而且,在此所叙述的所有举例主要意在清楚地仅用于教学目的,以帮助读者理解本发明的原理及由发明人所提出的概念从而促进本领域,且应被理解为不限制于该特定所叙述的举例与条件。此外,在此叙述本发明的原理、方面及实施例的所有声明,以及其中的特定举例,均旨在包含其中的等价物。
附图中所示的包括标记为“处理器”的任何功能块的各元件的功能,可通过使用专用硬件以及与适当软件相结合能够执行软件的硬件来提供。当由处理器提供时,功能可由单一专用处理器、单一共享处理器或其中部分可共享的多个单个处理器提供。而且,明确使用术语“处理器”或“控制器”不应被解释为专门指能够执行软件的硬件,而可隐式地包括但不限于数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、存储软件的只读存储器(ROM)、随机存储器(RAM)以及非易失性存储器。也可包括其它传统的和/或定制的硬件。类似地,附图中所示的任何转换仅是概念上的。它们的功能可通过程序逻辑的运算、通过专用逻辑、通过程序控制与专用逻辑的交互或者甚至以人工方式实现,或者通过实施者由于对本文的更具体的理解而能够选择的特定技术来实现。
应注意的是,在此,任何框图代表实现本发明原理的说明性电路的概念视图。类似地,应注意的是,任何流程图,流程图表、状态转换图、伪代码以及类似的,表示各种进程,该进程可以是实质上以计算机可读介质被示出并因此被计算机或处理器执行,无论该计算机或处理器是否被明确示出。

Claims (10)

1.一种用于创建资源管理器的方法,包括:
在以通信方式耦合至数字数据存储器的处理器处,在所述数字数据存储器中创建管理级别操作系统;
由与所述数字数据存储器合作的所述处理器,监测用于应用隔离的虚拟空间的应用请求;以及
由与所述数字数据存储器合作的所述处理器,准许用于应用隔离的虚拟空间的多个应用请求;
其中,所述应用请求的准许包括:
为所述应用隔离的虚拟空间确定隔离标识符;
基于所述隔离标识符更新所述管理级别操作系统;以及
在所述数字数据存储器中创建应用网络栈。
2.根据权利要求1所述的方法,其中,所述管理级别操作系统的更新还包括以下至少任一项:
更新至少一个公共资源调度器;
更新至少一个内存公共资源分配器;以及
更新至少一个资源表。
3.根据权利要求1所述的方法,还包括:
由与所述数字数据存储器合作的所述处理器,接收系统调用请求;
由与所述数字数据存储器合作的所述处理器,获取隔离标识符;以及
由与所述数字数据存储器合作的所述处理器,利用应用资源以满足基于所述隔离标识符的所述系统调用请求。
4.一种资源管理装置,包括:
数字数据存储器,所述数字数据存储器包括至少一个存储设备及至少一个内存设备;
至少一个网络接口;以及
至少一个处理器,被配置以:
在所述数字数据存储器中创建管理级别操作系统;
监测用于应用隔离的虚拟空间的应用请求;以及
准许用于应用隔离的虚拟空间的多个应用请求;
其中,所述应用请求的准许包括:
为所述应用隔离的虚拟空间确定隔离标识符;
基于所述隔离标识符更新所述管理级别操作系统;以及
在所述数字数据存储器中创建应用网络栈。
5.根据权利要求4所述的装置,其中,更新所述管理级别操作系统还包括更新至少一个公共资源调度器;其中,所述一个公共资源调度器基于所述隔离标识符控制对所述至少一个处理器的访问。
6.根据权利要求4所述的装置,其中,所述至少一个处理器还被配置以:
接收系统调用请求;
获取隔离标识符;以及
利用应用资源以满足基于所述隔离标识符的所述系统调用请求。
7.根据权利要求6所述的装置,其中,所述系统调用请求调用经修改的系统调用。
8.根据权利要求6所述的装置,其中,所述至少一个处理器还被配置以从系统调用中创建所述经修改的系统调用。
9.根据权利要求7所述的装置,其中,所述经修改的系统调用访问虚拟磁盘I/O视图。
10.根据权利要求7所述的装置,其中,所述经修改的系统调用访问共享内存。
CN201280044461.8A 2011-09-14 2012-08-23 用于提供隔离的虚拟空间的方法与设备 Expired - Fee Related CN103797465B (zh)

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
CN103797465A true CN103797465A (zh) 2014-05-14
CN103797465B CN103797465B (zh) 2017-03-22

Family

ID=46826901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280044461.8A Expired - Fee Related CN103797465B (zh) 2011-09-14 2012-08-23 用于提供隔离的虚拟空间的方法与设备

Country Status (7)

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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331659A (zh) * 2014-10-30 2015-02-04 浪潮电子信息产业股份有限公司 一种关键应用主机系统资源应用隔离的设计方法
CN105224886A (zh) * 2014-06-26 2016-01-06 中国移动通信集团甘肃有限公司 一种移动终端安全隔离方法、装置及移动终端
CN109521966A (zh) * 2018-11-15 2019-03-26 郑州云海信息技术有限公司 存储设备虚拟化方法、装置、终端及计算机可读存储介质
CN110430132A (zh) * 2019-07-05 2019-11-08 杭州迪普信息技术有限公司 绑定Socket与VRF的方法和装置
CN110750469A (zh) * 2018-07-23 2020-02-04 大唐移动通信设备有限公司 一种应用数据的处理方法及装置
CN111666110A (zh) * 2019-03-08 2020-09-15 厦门网宿有限公司 基于用户态协议栈批量处理网络隔离空间的方法和装置
CN113672411A (zh) * 2021-08-25 2021-11-19 烽火通信科技股份有限公司 一种网络设备虚拟化驱动适配层的实现方法和装置

Families Citing this family (15)

* 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
US10091125B2 (en) * 2014-03-31 2018-10-02 Nicira, Inc. Using different TCP/IP stacks with separately allocated resources
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
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 联想(北京)有限公司 信息处理方法、信息处理装置及电子设备
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 武汉斗鱼网络科技有限公司 歌词显示方法、装置、可读存储介质及设备
US11487590B2 (en) * 2018-10-09 2022-11-01 Kyndryl, Inc. Orchestration engine resources and blueprint definitions for hybrid cloud composition

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
EP2126694A2 (en) * 2006-12-22 2009-12-02 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
US8527989B2 (en) * 2010-07-12 2013-09-03 International Business Machines Corporation Tracking loading and unloading of 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
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

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224886A (zh) * 2014-06-26 2016-01-06 中国移动通信集团甘肃有限公司 一种移动终端安全隔离方法、装置及移动终端
CN105224886B (zh) * 2014-06-26 2018-12-07 中国移动通信集团甘肃有限公司 一种移动终端安全隔离方法、装置及移动终端
CN104331659A (zh) * 2014-10-30 2015-02-04 浪潮电子信息产业股份有限公司 一种关键应用主机系统资源应用隔离的设计方法
CN110750469A (zh) * 2018-07-23 2020-02-04 大唐移动通信设备有限公司 一种应用数据的处理方法及装置
CN109521966A (zh) * 2018-11-15 2019-03-26 郑州云海信息技术有限公司 存储设备虚拟化方法、装置、终端及计算机可读存储介质
CN111666110A (zh) * 2019-03-08 2020-09-15 厦门网宿有限公司 基于用户态协议栈批量处理网络隔离空间的方法和装置
CN111666110B (zh) * 2019-03-08 2022-11-18 厦门网宿有限公司 基于用户态协议栈批量处理网络隔离空间的方法和装置
CN110430132A (zh) * 2019-07-05 2019-11-08 杭州迪普信息技术有限公司 绑定Socket与VRF的方法和装置
CN110430132B (zh) * 2019-07-05 2021-04-27 杭州迪普信息技术有限公司 绑定Socket与VRF的方法和装置
CN113672411A (zh) * 2021-08-25 2021-11-19 烽火通信科技股份有限公司 一种网络设备虚拟化驱动适配层的实现方法和装置
CN113672411B (zh) * 2021-08-25 2023-08-11 烽火通信科技股份有限公司 一种网络设备虚拟化驱动适配层的实现方法和装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN103797465A (zh) 用于提供隔离的虚拟空间的方法与设备
EP3432549B1 (en) Method and apparatus for processing user requests
CN109783229B (zh) 线程资源分配的方法及装置
US10768972B2 (en) Managing virtual machine instances utilizing a virtual offload device
US9424067B2 (en) Managing virtual machine instances utilizing an offload device
CN107153565B (zh) 配置资源的方法及其网络设备
EP3040860A1 (en) Resource management in cloud systems
JP2020536312A5 (zh)
US20180287951A1 (en) Intelligent thread management across isolated network stacks
CN103139159B (zh) 云计算架构中的虚拟机之间的安全通信
EP3376399A1 (en) Data processing method, apparatus and system
WO2016074130A1 (zh) 一种系统调用命令的批处理方法及装置
CN106131244A (zh) 一种报文传送方法及装置
CN112035244A (zh) 在多租户环境中虚拟节点集群的部署
CN113835897A (zh) 一种在分布式计算集群Kubernetes上对GPU资源进行分配使用的方法
CN116436968A (zh) 一种服务网格通信方法、系统、装置以及存储介质
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
CN108958878B (zh) 基于容器的网络设备运行控制方法和装置
CN112241307A (zh) 一种虚拟机创建方法、装置及相关设备
CN116112306B (zh) 一种去中心化的网络交互方法、装置、设备及存储介质
KR102382884B1 (ko) 엣지 단말의 클러스터 구성 및 운용 시스템 및 방법
CN117811799A (zh) 网络资产的隔离方法及装置、电子设备及存储介质
CN117407170A (zh) 一种基于云服务的动态分配资源多租户系统
KR20160132581A (ko) 분산 컴퓨팅 환경을 위한 고유 식별자 생성 방법 및 그 장치
CN116170444A (zh) 基于人工智能的边缘节点资源分配方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170322

Termination date: 20200823

CF01 Termination of patent right due to non-payment of annual fee