用于提供隔离的虚拟空间的方法与设备的利记博彩app

文档序号:6496461阅读:222来源:国知局
用于提供隔离的虚拟空间的方法与设备的利记博彩app【专利摘要】多个实施例提供了创建应用隔离的虚拟空间而不需要运行多个操作系统的方法与设备。应用隔离的虚拟空间由操作系统利用资源管理器创建。资源管理器通过重写网络栈与传统操作系统内核的I/O子系统将多个应用彼此隔离,以使得物理资源的多个隔离的网络栈/虚拟I/O视图由该操作系统管理。隔离的网络栈及虚拟I/O视图识别分配给应用的隔离的虚拟空间的资源,且通过隔离标识符被映射到应用。【专利说明】用于提供隔离的虚拟空间的方法与设备【
技术领域
】[0001]本发明一般涉及用于创建隔离的虚拟专用服务器的方法与设备。【
背景技术
】[0002]本节介绍的内容可能有助于帮助更好的理解本发明。因此,本节的声明是应从这个角度理解而不应被理解为承认其在现有技术中或承认其不在现有技术中。[0003]存在多种允许主机环境动态地分配物理服务器资源以创建虚拟专用服务器的技术。在一些已知系统中,物理服务器上运行有负责创建、释放及管理“客户”操作系统(guestoperatingsystems,guestOSs)资源的虚拟机管理器,或者运行有虚拟机。【
发明内容】[0004]多个实施例提供了创建应用隔离的虚拟空间而不需要运行多个操作系统的方法与设备。应用隔离的虚拟空间由操作系统(OperatingSystem,OS)利用资源管理器创建。资源管理器通过重写网络栈与传统操作系统内核的I/O子系统将多个应用彼此隔离,以使得物理资源的多个隔离的网络栈/虚拟I/O视图(virtualI/Oview)由该操作系统管理。隔离的网络栈及虚拟I/O视图识别分配给应用的隔离的虚拟空间的资源,且通过隔离标识符被映射到应用。有利的是,创建了提供具有隔离的操作环境的应用而无需运行多个操作系统的方法与设备。[0005]在一个实施例中,提供一种用于创建资源管理器的方法。该方法包括:在数字数据存储器中创建管理级别操作系统,监测用于应用隔离的虚拟空间的应用请求,以及准许用于应用隔离的虚拟空间的多个应用请求。所述应用请求的准许包括为所述应用隔离的虚拟空间确定隔离标识符,基于所述隔离标识符更新所述管理级别操作系统,以及在所述数字数据存储器中创建应用网络栈。[0006]在一些实施例中,更新所述管理级别操作系统包括更新至少一个公共资源调度器。[0007]在一些实施例中,更新所述管理级别操作系统包括更新至少一个内存公共资源分配器。[0008]在一些实施例中,更新所述管理级别操作系统包括更新至少一个资源表。[0009]在另一实施例中,提供一种用于服务在应用隔离的虚拟空间中的系统调用请求的方法。该方法包括:接收系统调用请求,获取隔离标识符,以及利用应用资源以满足基于所述隔离标识符的所述系统调用请求。[0010]在一些实施例中,所述系统调用请求调用经修改的系统调用。[0011]在一些实施例中,该方法包括从系统调用创建所述经修改的系统调用。[0012]在一些实施例中,所述经修改的系统调用访问虚拟磁盘I/O视图。[0013]在一些实施例中,所述经修改的系统调用访问共享内存。[0014]在另一实施例中,提供一种用于管理系统资源的装置。该装置包括数字数据存储器,所述数字数据存储器包括至少一个存储设备以及至少一个内存设备。该装置还包括至少一个网络接口以及至少一个处理器。所述(一个或多个)处理器被配置以:在所述数字数据存储器中创建管理级别操作系统;监测用于应用隔离的虚拟空间的应用请求;以及准许用于应用隔离的虚拟空间的多个应用请求。所述应用请求的准许包括:为所述应用隔离的虚拟空间确定隔离标识符;基于所述隔离标识符更新所述管理级别操作系统;以及在所述数字数据存储器中创建应用网络栈。[0015]在一些实施例中,更新所述管理级别操作系统还包括更新至少一个公共资源调度器。[0016]在一些实施例中,所述一个公共资源调度器基于所述隔离标识符控制对所述至少一个处理器的访问。[0017]在一些实施例中,更新所述管理级别操作系统包括更新至少一个内存公共资源分配器。[0018]在一些实施例中,更新所述管理级别操作系统包括更新至少一个资源表。[0019]在另一实施例中,提供一种用于服务系统调用的装置。该装置包括数字存储器,所述数字数据存储器包括至少一个存储设备以及至少一个内存设备,至少一个网络接口以及至少一个处理器。所述处理器被编程以接收系统调用请求,获取隔离标识符,以及利用应用资源以满足基于所述隔离标识符的所述系统调用请求。[0020]在一些实施例中,所述系统调用请求调用经修改的系统调用。[0021]在一些实施例中,所述至少一个处理器被编程以从系统调用中创建所述经修改的系统调用。[0022]在一些实施例中,所述经修改的系统调用访问虚拟磁盘I/O视图。[0023]在一些实施例中,所述经修改的系统调用访问共享内存。[0024]在另一实施例中,提供一种用于创建资源管理器的数字数据存储器介质。该介质包括程序,该程序用于在数字数据存储器中创建管理级别操作系统、监测用于应用隔离的虚拟空间的应用请求,以及准许用于应用隔离的虚拟空间的多个应用请求。所述应用请求的准许包括:为所述应用隔离的虚拟空间确定隔离标识符;基于所述隔离标识符更新所述管理级别操作系统;以及在所述数字数据存储器中创建应用网络栈。【专利附图】【附图说明】[0025]各实施例在附图中被示出,其中:[0026]图1描述示意性地示出资源管理系统实施例的框图;[0027]图2描述示意性地示出图1的资源管理器的实施例的框图;[0028]图3描述示例性的系统调用;[0029]图4描述示例性的系统调用;[0030]图5描述示例性的系统调用;[0031]图6描述示出参考图2-5的功能框创建图2的资源管理器的方法的实施例的流程图;[0032]图7描述示出参考图2-5的功能框由图2的资源管理器处理系统调用的方法的实施例的流程图;以及[0033]图8示意性地示出图1中资源管理器110的一个实施例的框图。[0034]为便于理解,相同的参考数字用于指定具有基本相同或相似结构和/或基本相同或相似功能的部件。【具体实施方式】[0035]应用隔离的虚拟空间由操作系统(OS)利用资源管理器创建。资源管理器通过重写网络栈与传统操作系统内核的I/o子系统将多个应用彼此隔离,以使得物理资源的多个隔离的网络栈接口和/或虚拟I/o视图由该操作系统管理。隔离的网络栈及虚拟I/O视图识别分配给应用的隔离的虚拟空间的资源,且通过隔离标识符被映射到应用。[0036]图1描述示意性地示出资源管理系统100的实施例的框图。资源管理系统100包括资源管理器110,所述资源管理器110控制资源管理系统100的资源集群120内的资源分配。[0037]资源管理器110,其进一步细节将在以下描述,控制将资源集群120中的资源分配给应用。[0038]资源集群120可包含由资源管理器110分配的物理系统资源。资源可包括,例如,一个或多个处理器130,一个或多个网络接口140,及数字数据存储器150。[0039]数字数据存储器150可包括一个或多个存储设备154以及一个或多个内存设备158。存储设备154可包括任何适合用于存储非易失性数据的设备。内存设备158可包括任何适合用于被CPU访问作为主存储器的设备。[0040]在一些实施例中,资源管理器110可体现在位于数字数据存数器150中的一个或多个有形程序中,并由一个或多个处理器130执行。[0041]在一些实施例中,资源管理器110包括资源模板以确定将资源集群120中的资源分配给单独的应用。可基于应用的类别,和/或基于账单和/或服务级别协议,为每个应用定制资源模板。资源模板可包括关于各种类型的应用资源需求的参数值,应用资源需求诸如CPU周期(即处理器)需求、网络接口需求、存储器使用需求和/或内存使用需求。[0042]CPU需求可包括任何合适的诸如(一个或多个)专用处理器和/或(一个或多个)内核的需求、时间片(应用可用的内核滴答数(tick))、优先级、最大等待时间和/或类似的参数或参数的组合。网络接口需求可包括任何合适的诸如IP地址、最大时延、最小带宽和/或类似的参数或参数的组合。存储使用需求可包括任何合适的诸如存储大小、访问速度和/或类似的参数或参数的组合。内存使用需求可包括任何合适的诸如访问速度、可用最小物理内存及弹性增长和/或类似的参数或参数的组合。[0043]在一些实施例中,资源集群120内的资源可由单个物理实体内提供,物理实体诸如服务器。在其他实施例中,资源集群120内的资源可由物理分离的多个实体提供。[0044]在一个实施例中,处理器130可以是一个或多个设备机架中的若干刀片服务器,网络接口140可以是若干网络接口卡(networkinterfacecards,NICs),存储设备154可包括若干外部存储设备,以及内存设备158可以是一个或多个设备机架中的若干刀片服务器。应注意的是,在一些实施例中,部分资源可由位于远程(例如,在云网络中)的设备提供。[0045]在一些实施例中,存储设备154可以是硬盘驱动器、光盘驱动器、闪存和/或类似的。[0046]在一些实施例中,内存设备158可以是随机存取存储器(random-accessmemory,RAM)、动态RAM、闪存和/或类似的。[0047]图2描述示意性地示出图1的资源管理器110的实施例的框图。资源管理器110包括控制将图1中资源集群120中的资源分配给操作系统和单个应用的管理级别操作系统210。如在此所述,分配给给定应用的集体资源是上述应用正在其中执行的“应用隔离的虚拟空间”。分配给应用的集体资源包括已分配的专用资源与共享资源(即对于应用不是专用的资源)。共享资源可存在于管理级别操作系统210中,然而单独网络栈和I/O设备将保持在虚拟网络栈220中。有利的是,每一应用隔离的虚拟空间看起来像外部网络,如同独立的实体一样,不需要每一虚拟空间实例的专用硬件资源。在此所用术语“应用”应被广义地理解,也包括服务。[0048]资源管理器管理级别操作系统210包括控制资源分配的结构,优选地也包括用于共享资源的控制器。应用进程受访问资源的直接限制。而管理级别操作系统210提供用于访问资源诸如I/O设备、文件系统和网络通信设备的抽象层。[0049]分配控制结构可包括控制程序(未示出)和资源表218。资源表由控制程序使用以将隔离标识符映射至应用的隔离的虚拟空间。共享资源控制器可包括:调度器212、内存分配器程序214以及公共驱动器216。有利的是,仅需一个管理级别的操作系统,但是若需要可使用多个管理级别的操作系统。[0050]虚拟网络栈220包括管理网络栈230以及一个或多个应用网络栈240-1至240-N。管理网络栈230是为基础设施运营商提供的操作系统的管理视角。每一应用网络栈240-1至240-N,在集合意义上(collectively)应用网络栈240,是独特网络栈(IP层)和独特虚拟I/O层。管理级别操作系统210运用隔离标识符和资源表218控制应用对应用网络栈240的访问。[0051]每一网络栈实例完全独立于所有其他网络栈实例,因此,每一实例保持其自身的私有路由表、通信套接字组以及所关联的协议控制块。隔离标识符可被用于限制对网络栈的访问,从而使得仅一个运行在对应的应用隔离的虚拟空间的应用进程将具有权限。这样部署是有利的,因为其允许性能提升且同时将应用网络栈240彼此相隔离。应注意的是,应用网络栈240也可被分配唯一资源,例如,每一应用可被允许保持其自身的IP地址和端口。[0052]调度器212可由管理级别操作系统210创建以在争夺对资源的访问的多个应用之间共享使用(例如,复用/解复用(MUX/DEMUX))—个独特的资源。调度器212可包括由管理级别操作系统210使用的调度算法以在多个请求应用之间分配共享资源。[0053]内存分配器214可由管理级别操作系统210使用以将可用内存(例如,图1的内存设备158)分配给应用。[0054]公共驱动器216可由管理级别操作系统210使用以降低与复用驱动器相关联的开销。例如,公共驱动器216中的单个以太网层驱动器可提供介质访问控制(MAC,MediumAccessControl)与管理级别操作系统210之间的通信,并且还可提供对整个网络层协议与应用层的访问。[0055]资源表218可由管理级别操作系统210使用以使用隔离标识符将资源映射至应用的隔离的虚拟空间。[0056]在一些实施例中,管理级别操作系统210在操作系统启动期间创建传统网络栈和I/O设备,例如,管理网络栈230。对于在需要应用隔离的虚拟空间的该环境中启动的每一随后可见的应用,管理级别操作系统210创建应用网络栈240-X,其中,“X”表示应用网络栈240中的一个。[0057]在一些实施例中,管理级别操作系统210通过使用隔离标识符修改对内核的系统调用的特性,以将该应用与其他应用相隔离。例如,只有设备(真的或伪的)在其自身的应用隔离的虚拟空间,执行系统调用以返回所有在系统上的网络设备的应用进程才响应。因此,没有其他网络设备将被使用或甚至被应用的进程发现。[0058]在一些实施例中,Unix/Linux/POSIXGID(可移植操作系统接口群体身份,PortableOperatingSystemInterfaceGroupID)为隔离标识符。GID通常被用于创建用户组,诸如学生组或部门员工组。因为用户和群组的概念通常不被用在服务器上。GID可由管理级别操作系统210使用以组织组成应用的进程组。以这种方式,管理级别操作系统210识别应用隔离的虚拟空间中由应用的进程使用的可用资源。在一些实施例中,经修改的系统调用抑制处理的查看和访问和/或由其他应用所使用的资源名称。[0059]有利的是,使用隔离标识符的应用网络栈240的管理允许显著地降低从应用至物理网络接口的数据路径开销。与没有隔离应用网络栈的传统操作系统环境相比,这也导致更好地利用其他系统资源,尤其是CPU和RAM。[0060]在一些实施例中,调度器212包括被编程以在多个应用之间共享CPU处理周期(例如,图1的处理器130)的调度算法。应注意的是,处理器130可包括一个或多个处理器,其中每一个可包含一个或多个内核。调度器212可使用资源模板以将所有或部分(一个或多个)内核和/或(一个或多个)处理器分配给应用。调度算法可以是任何合适的算法,诸如:传统公平算法和/或传统优先级算法。应理解的是,(一个或多个)内核和/(一个或多个)或处理器可在多个应用之间共享或被专用至某一应用。例如,实时确定的应用可需要专用的(一个或多个)内核和/或(一个或多个)处理器。[0061]在一些实施例中,调度器212可在请求资源的多个应用进程之间共享未分配的和/或未充分利用的资源。未充分利用的资源是专用至某一应用但未被该应用最大程度使用其分配部分的资源。[0062]在一些实施例中,调度器212可运用不同调度算法调度在第一应用隔离的虚拟空间中资源的使用,而不是被用于调度在第二应用隔离的虚拟空间中的资源。[0063]在一些实施例中,内存分配器214可使用资源表218确定分配给应用的内存数量和类型。此外,内存分配器214或可选地资源表218可包括内存表以确定已经分配给应用的进程的数量与类型,其中,类型是可选地。如此,内存分配器214然后可确定来自应用的进程的关于内存的请求是否应当被准许。[0064]在一些实施例中,内存分配器214修改传统内存分配技术诸如在图3中所示的mallocO命令。内存分配器214通过使用隔离标识符(例如,GID)修改传统mallocO系统调用以定制mallocO命令来隔离请求进程的应用的可用资源。[0065]例如,参考图3和图4,以及显示如下的伪代码行(1)-(15),应用的进程通过使用具有在代码行(I)请求的为内存块设置的大小参数的mallocO系统调用来请求内存块。经修改的mallocO请求然后确定分配给应用的内存数量(例如,ResouceTable[GID][AllocatedMemory](资源表[GID][已分配资源]))以及已经被该应用使用的内存数量(例如,MemoryTable[GID][UsedMemory](内存表[GID][已使用的内存]))。[0066]在代码行(2),内存分配器214获取进程隔离标识符(例如,GID)。[0067]在代码行(3),内存分配器214通过将应用使用的内存总和以及所请求的内存块的大小与分配给该应用的内存相比较,确定内存对应用是否是可用的。[0068]若在代码行(3)中的比较结果为真,则通过返回指向分配空间的指针,在代码行(5)分配内存。在代码行(6),内存分配器214确定是否常规mallocO已成功分配所请求的内存块。若常规mallocO是成功的,内存分配器214更新内存表以反映在代码行(7)中分配的已更新内存数量。然后,成功与否,在代码行(8),mallocO返回指向所分配内存的指针。[0069]若在代码行(3)中的比较结果为假,则内存分配器214在代码行(12)将mallocO设置为错误以指示没有足够存储来服务请求,并在代码行(13)返回空指针或某些其他指示指针。[0070]【权利要求】1.一种用于创建资源管理器的方法,包括:在以通信方式耦合至数字数据存储器的处理器处,在所述数字数据存储器中创建管理级别操作系统;由与所述数字数据存储器合作的所述处理器,监测用于应用隔离的虚拟空间的应用请求;以及由与所述数字数据存储器合作的所述处理器,准许用于应用隔离的虚拟空间的多个应用请求;其中,所述应用请求的准许包括:为所述应用隔离的虚拟空间确定隔离标识符;基于所述隔离标识符更新所述管理级别操作系统;以及在所述数字数据存储器中创建应用网络栈。2.根据权利要求1所述的方法,其中,所述管理级别操作系统的更新还包括以下至少任一项:更新至少一个公共资源调度器;更新至少一个内存公共资源分配器;以及更新至少一个资源表。3.根据权利要求1所述的方法,还包括:由与所述数字数据存储器合作的所述处理器,接收系统调用请求;`由与所述数字数据存储器合作的所述处理器,获取隔离标识符;以及由与所述数字数据存储器合作的所述处理器,利用应用资源以满足基于所述隔离标识符的所述系统调用请求。4.一种资源管理装置,包括:数字数据存储器,所述数字数据存储器包括至少一个存储设备及至少一个内存设备;至少一个网络接口;以及至少一个处理器,被配置以:在所述数字数据存储器中创建管理级别操作系统;监测用于应用隔离的虚拟空间的应用请求;以及准许用于应用隔离的虚拟空间的多个应用请求;其中,所述应用请求的准许包括:为所述应用隔离的虚拟空间确定隔离标识符;基于所述隔离标识符更新所述管理级别操作系统;以及在所述数字数据存储器中创建应用网络栈。5.根据权利要求4所述的装置,其中,更新所述管理级别操作系统还包括更新至少一个公共资源调度器;其中,所述一个公共资源调度器基于所述隔离标识符控制对所述至少一个处理器的访问。6.根据权利要求4所述的装置,其中,所述至少一个处理器还被配置以:接收系统调用请求;获取隔离标识符;以及利用应用资源以满足基于所述隔离标识符的所述系统调用请求。7.根据权利要求6所述的装置,其中,所述系统调用请求调用经修改的系统调用。8.根据权利要求6所述的装置,其中,所述至少一个处理器还被配置以从系统调用中创建所述经修改的系统调用。9.根据权利要求7所述的装置,其中,所述经修改的系统调用访问虚拟磁盘I/O视图。10.根据权利要求7所述的装置,其中,所述经修改的系统调用访问共享内存。【文档编号】G06F9/50GK103797465SQ201280044461【公开日】2014年5月14日申请日期:2012年8月23日优先权日:2011年9月14日【发明者】约翰.H.萨米廉,托马斯.L.伍德申请人:阿尔卡特朗讯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1