CN115885261A - 部分特权的轻量级虚拟化环境 - Google Patents

部分特权的轻量级虚拟化环境 Download PDF

Info

Publication number
CN115885261A
CN115885261A CN202180040280.7A CN202180040280A CN115885261A CN 115885261 A CN115885261 A CN 115885261A CN 202180040280 A CN202180040280 A CN 202180040280A CN 115885261 A CN115885261 A CN 115885261A
Authority
CN
China
Prior art keywords
computing environment
container
host
action
container virtual
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.)
Pending
Application number
CN202180040280.7A
Other languages
English (en)
Inventor
A·T·郭
F·J·史密斯四世
J·斯塔克斯
L·罗伊特
D·托马斯
H·R·普拉帕卡
B·M·舒尔茨
J·J·刘
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN115885261A publication Critical patent/CN115885261A/zh
Pending legal-status Critical Current

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/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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

细粒度可选择的部分特权容器虚拟计算环境提供了载体,通过该载体可以将涉及修改主机计算环境的特定方面的进程传递给主机计算环境并在其上执行,同时维持在主机计算环境的其余方面和部分特权的容器计算环境之间有利的和期望的保护和隔离。这样的部分特权是基于直接或间接描述的如下动作来提供的:允许由在部分特权容器虚拟计算环境中执行的进程在主机计算环境上进行的动作和不允许的动作。主机计算环境操作系统的各方面(诸如,内核)被扩展为对接到以容器为中心的机制以接收如下的信息,该信息关于内核可以允许或拒绝哪些动作,即使尝试这样的动作的进程本来具有足够的特权。

Description

部分特权的轻量级虚拟化环境
背景技术
传统的虚拟计算环境,通常被称为“虚拟机”,虚拟化了计算环境的大部分或所有方面,并从而可以呈现与主机计算设备硬件和操作系统非常不同的计算环境。这样的虚拟机计算环境可以虚拟化计算硬件本身。然而,由于对主机计算环境的硬件的大部分或所有方面进行虚拟化的需要,传统的虚拟计算环境可能消耗大量存储器,需要大量的处理资源,否则可能效率低下。在一些实例中,轻量级虚拟计算环境,通常被称为“容器”,可以以更高效的方式提供传统虚拟计算环境的许多隔离益处,例如通过利用主机计算设备硬件和操作系统的方面,而不是虚拟化计算环境的那些方面。这样的容器虚拟计算环境可以仅虚拟化计算环境的部分,例如仅虚拟化文件系统,从而呈现文件数据的不同的、隔离的视图。因此,容器可被利用于提供隔离的计算环境,诸如限制潜在恶意指令的影响,提供原始计算环境,诸如用于测试或故障排除目的,以及其他类似的益处。
在某些实例中,可能期望允许在容器虚拟计算环境内执行的进程直接将更改持久化到主机计算环境上。例如,容器虚拟计算环境可以利用主机计算环境的操作系统的方面,诸如其打印机驱动器。在一个容器虚拟计算环境内执行的进程可以在这样的容器虚拟计算环境内安装新的打印机驱动器,但由于传统上,这样的更改只会在容器虚拟计算设备本身内,而不会影响主机计算环境,在其他虚拟计算环境内或者在主机计算环境本身中执行的进程将无法访问这样新的打印机驱动器。特权容器可以被提供对底层主机计算环境的访问。
不幸的是,特权容器可以访问整个主机计算环境,从而击败非特权传统容器的许多保护和隔离优势。
发明内容
细粒度可选择的部分特权容器虚拟计算环境提供了载体,通过该载体可以将涉及修改主机计算环境的特定方面的进程传递给主机计算环境并在其上执行,同时维持在主机计算环境的其余方面和部分特权的容器计算环境之间有利的和期望的保护和隔离。这样的部分特权(privilege)是基于直接或间接描述的如下动作来提供的:允许由在部分特权容器虚拟计算环境中执行的进程在主机计算环境上进行的动作和不允许的动作。主机计算环境操作系统的各方面,诸如内核,被扩展为对接到以容器为中心的机制以接收如下的信息,该信息关于内核可以允许或拒绝哪些动作,即使尝试这样的动作的进程本来具有足够的特权。相反,被阻止的动作是在容器虚拟计算环境的上下文中以覆盖(overlay)的形式被执行的,这些覆盖可以根据传统的容器虚拟计算环境方法论被记录在主机计算环境的沙盒中。
提供该发明内容部分被是为了以简化的形式介绍以下在具体实施方式部分中进一步描述的概念的选择。该发明内容无意标识所要求保护的主题的关键特征或基本特征,也无意用于限制所要求保护主题的范围。
从参照附图进行的下面详细描述中,额外特征和优点将变得明显。
附图说明
下文具体实施方式部分结合附图可以更好地被理解,其中:
图1是示例性非特权容器虚拟计算环境的系统图;
图2是示例性特权容器虚拟计算环境的系统图;
图3是示例性部分特权容器虚拟计算环境的系统图;
图4是另一个示例性部分特权容器虚拟计算环境的系统图;
图5是示例性嵌套虚拟计算环境的系统图;
图6是用于在容器虚拟计算环境上实施部分特权的示例性机制的系统图;
图7是示例性基于容器的节点维持传递机制的系统图;
图8是对容器虚拟计算环境部分特权的示例性实施流程图;
图9是示例性容器实例化的流程图;以及
图10是示例性计算设备的框图。
具体实施方式
以下描述涉及细粒度可选择的部分特权容器虚拟计算环境,其启用了如下的机制,通过这些机制可以将涉及修改主机计算环境的特定方面的进程传递给主机计算环境并在其上执行,同时维持主机计算环境的其余方面与部分特权容器计算环境之间有利的和期望的保护和隔离。这样的部分特权是基于直接或间接描述的如下动作来提供的:被允许由在部分特权容器虚拟计算环境中执行的进程在主机计算环境上进行的动作和不允许的动作。主机计算环境操作系统的方面,例如内核,被扩展为对接到以容器为中心的机制以接收如下的信息,该信息关于内核可以允许或拒绝哪些动作,即使尝试这样的动作的进程本来具有足够的特权。相反,被阻止的动作是在容器虚拟计算环境的上下文中以覆盖的形式被执行的,这些覆盖可以根据传统的容器虚拟计算环境方法论被记录在主机计算环境的沙盒中。
尽管不要求,但下面的描述将在由计算设备执行的计算机可执行指令(诸如例如程序模块)的一般上下文中。更具体地,除非另有指示,否则描述将参考由一个或多个计算设备或外围设备执行的操作的动作和符号表示。因此,应当理解,这样有时被称为计算机执行的动作和操作包括由电信号的处理单元的操纵,电信号以结构化形式来表示数据。这样的操纵将数据进行转化或者将其维持在存储器的位置中,其以本领域技术人员熟知的方式重新配置或以其他方式更改计算设备或外围设备的操作。维持数据的数据结构是具有由数据格式定义的特定属性的物理位置。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将理解,计算设备不必局限于常规个人计算机,而是包括其他计算配置,包括服务器、手持设备、多处理器系统、基于微处理器或可编程消耗电子产品、网络PC、小型计算机、大型计算机等。类似地,计算设备不必局限于独立的计算设备,因为这些机制也可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
为了为对下面另外的描述提供相关上下文,非特权和特权虚拟化计算环境被描述。虽然本文的描述主要参考文件系统虚拟化做出,但虚拟化计算环境实现可以扩展到计算环境的许多其他方面,例如对计算环境设置的访问、注册表数据库、执行进程的控制和其他类似方面。下面的描述详细描述了部分特权容器虚拟计算环境。根据一个方面,这样的部分特权被实现在数据库中,诸如在注册表中,在这样的数据块中只有主机计算环境的某些注册表项或其他类似的数据库条目可能会受到在虚拟计算环境内执行的进程的影响,这些进程使用如下面将详述的相同的方法。根据另一方面,这样的部分特权被实现为网络防火墙策略,以仅提供从虚拟计算环境内对主机计算环境的某些网络端点的特权和/或访问。除了下面详述的读/写操作之外,网络虚拟化还可以包括诸如发送、接收、修改、转发等操作。根据另一个方面,虚拟计算环境中的应用可能要求对主机计算环境进行许可证检查,并且可能仅被授予对主机计算机环境上的许可存储和/或数据库的部分访问,这样的部分访问取决于部分特权。
参考图1,示例性系统100被示出,为以下描述提供了上下文。示例性系统100包括示例性主机计算环境110,为了为以下描述提供上下文,该主机计算环境以示例性容器150的形式托管虚拟化计算环境。如本文所利用的,术语“虚拟化计算环境”指的是这样的虚拟化计算环境,该虚拟化计算环境不虚拟化底层主机计算硬件或设备,而是虚拟化文件系统和/或其他操作系统属性、设置、扩展、注册表等,从而提供主机计算环境与虚拟化计算环境之间的隔离,使得在虚拟化计算系统内做出的更改不会类似地更改主机计算环境。
例如,如图1的示例性系统100所示,示例性主机计算环境110具有在其上执行的主机操作系统,诸如是以示例性主机操作系统120的形式。作为主机操作系统120的部分,一个或多个文件系统驱动器、过滤器、微型过滤器和其他类似的文件系统组件通常在图1中被示出为主机文件系统驱动器130,从一个或多个文件系统驱动器获取结构化形式的数据或更多的存储介质,诸如示例性存储介质111,并将这些数据解析到文件结构中,这些文件结构可以被呈现给在主机操作系统120上执行的应用和其他进程。例如,在主机计算环境110上执行的应用151可以被呈现有多个文件,诸如示例性文件141、142和143,作为主机文件系统131的一部分。类似地,容器操作系统,诸如示例性容器操作系统160,在示例性容器150内被执行。然而,为了提供文件系统虚拟化,示例性容器操作系统160可以呈现与主机文件系统131不同的文件。
根据一个方面,示例性容器操作系统160的文件系统是分层文件系统,其能够使在容器环境150内执行的应用,例如示例性应用152,能够访问主机文件系统131的相同文件中的一些或所有文件,例如示例性文件141、142和143,除了对这些文件的任何更改或修改仅保留在容器环境150内。例如,如图1的示例性系统100所示,示例性容器操作系统160包括容器文件系统171形式的分层文件系统,其充当主要层或“覆盖(overlay)”,该分层文件系统与主机文件系统181相结合,充当辅助层或“底层(underlay)”。
本文引用的文件系统可以是任何已知的已有文件系统,例如NT文件系统(NTFS)、Apple文件系统(APFS)、UNIX文件系统(UFS)等,或者其他文件系统。类似地,文件系统驱动器可以是相应的驱动器、过滤器、迷你过滤器和其他可以实现此类文件系统的类似驱动器。因此,例如,如果主机文件系统131是NTFS,则主机文件系统驱动器130是相关的NTFS驱动器。然而,在示例性容器环境150内,主机文件系统181以稍微不同的方式被实现,以便从虚拟化计算环境内提供对主机文件系统的访问。更具体地,根据一个方面,从容器环境150内访问主机计算环境110是通过容器主机连接,诸如示例性容器主机连接190。根据一个方面,示例性容器主机连接190是以虚拟化网络连接的形式,其模拟容器环境150是与主机计算环境110分离的计算设备,并且两个计算设备经由网络通信耦合。其他容器主机连接可以基于其他通信协议,例如外围互连协议等。根据一个方面,容器主机连接190在容器环境150内显示为块数据设备。相应地,从容器环境150内的主机文件系统181被实现为例如网络文件系统,并且相应地,驱动器180可以包括驱动器、过滤器、迷你过滤器和其他类似结构,驱动器180通过容器主机连接190与主机计算环境110通信来实现这样的网络文件系统。主机计算环境110还包括与主机文件系统131具有相同类型的文件系统。例如,如果主机文件系统131是NTFS,则容器文件系统171也是NTFS。在这样的情况下,容器文件系统驱动器170包括与主机文件系统驱动器130类似的驱动器、过滤器、迷你过滤器和其他类似结构。事实上,相同的代码库,甚至相同的编译二进制文件可以被利用来实现容器文件系统驱动器170和主机文件系统驱动器130。
根据一个方面,对容器150所呈现的文件系统虚拟化环境内的文件的更改与其他文件系统虚拟环境和主机计算环境110本身隔离。例如,如果在容器环境150内执行的示例性应用152要编辑示例性文件141,如编辑动作155所示,这样的修改可以导致文件144(表示文件141的编辑版本)成为容器文件系统171的一部分。原始文件141将保持不变。然而,从容器环境150内,分层文件系统将呈现经编辑的文件144,而不是来自主机文件系统的原始文件141。通俗地说,经编辑的文件144将“阻止”或“掩蔽”原始文件141的呈现。如果示例性应用152没有编辑文件142或143,则这些文件仍将“穿过”覆盖文件系统,并被呈现给在容器150内执行的应用或进程,诸如示例性应用152。
表示经编辑的文件144的数字数据可以被存储在沙盒中,例如示例性沙盒149,其可以由容器文件系统驱动器170访问,如前所述,以便生成容器文件系统171。如本文所用,术语“沙盒”意指一个或多个文件、数据库、结构化存储或其他类似的数字数据存储库,其存储仅可从隔离的容器虚拟计算环境150内访问的相关数据。例如,沙盒149可以是主机文件系统131内的文件或包。以这样的方式,主机计算环境110与在容器环境150内执行的编辑保持隔离。因此,例如,如果编辑155是恶意动作,则主机计算环境110中的文件141将保持与容器环境150内的这样的动作隔离并且不受其影响。
以类似的方式,由应用152安装或创建的文件也被存储或安装为容器文件系统171的一部分。因此,例如,如果应用152要安装首选项文件(preferences file),则这样的首选项文件将被存储为容器文件系统171的一部分,并且由此可由在容器虚拟计算环境150中执行的应用152访问。然而,这样的首选项文件的数据对于主机计算环境110来说只会增加沙盒149的大小,并且对于在主机计算环境150的上下文中执行的应用151来说将是不可见的。因此,应用152的配置将被限制在容器虚拟计算环境150。
如所指示的,在一些情况下,可能期望允许在容器环境150内执行的进程修改底层主机计算环境110的方面,包括修改已有的文件、安装新文件、更改设置(诸如当前时间)、安装或移除驱动器、迷你过滤器、固件或底层主机计算环境110的其他类似方面的能力。在这样的情况下,特权容器虚拟计算环境可以被利用。
转到图2,其中所示的示例性系统200以示例性特权容器虚拟计算环境250的形式图示了已知的特权容器。可以看出,在特权容器内执行的进程,例如示例性应用152,可以直接访问、修改、删除和以其他方式影响底层主机计算环境110的各个方面。更具体地,在示例性系统200中,容器主机连接是以示例性容器主机连接290的形式,其可以是比先前描述的容器主机连接190更简单的连接。例如,示例性容器主机连接290不模拟特权容器计算环境250与主机计算环境110之间的远程联网关系。相反,在特权容器250内执行的进程被提供对主机文件系统131的访问,例如通过利用相同的主机文件系统驱动器130。以此方式,应用152做出的修改,例如文件141的编辑以创建新版本241,也会影响主机计算环境110,因为在主机计算环境110内执行的应用151和在特权容器计算环境250内执行的程序152都可以访问相同的底层主机文件系统131。因此,修改文件141以创建新文件241导致应用151也不再能够访问先前版本141,而是仅被允许访问新版本241。
虽然在图2中所示的示例性系统200图示了由在特权容器虚拟计算环境250内执行的进程对文件的修改,但在特权容器250中执行的进程可以以类似的方式修改主机操作系统120的其他方面,例如包括安装、更新或删除驱动器、迷你过滤器以及主机操作系统120的其他类似方面。此外,在特权容器250内执行的进程可以更改系统时间、各种操作系统偏好以及主机操作系统120的其他类似方面。虽然这些动作中的个别动作可能是期望允许由在容器虚拟计算环境中执行的进程执行的,但现有的技术迫使霍布森(Hobson)选择,要么不能执行任何此类特权动作,或者允许在特权容器虚拟计算环境中执行的进程能够执行所有这样的特权动作。
转到图3,以示例性部分特权容器虚拟计算环境350的形式示出了一个示例性的部分特权容器虚拟计算环境。部分特权容器可以具有更细粒度的特权,允许在这样的部分特权容器内执行的进程能够执行某些特权动作,同时继续将底层主机计算环境与其他类型的特权动作进行保护和隔离。如下面将详细描述的,这样的细粒度可以包含允许在部分特权容器内执行的进程修改文件,但阻止主机操作系统的各个方面的修改,或者允许主机操作的特定部分的修改、但阻止主机操作系统的其他方面的修改,或者允许仅主机文件系统的特定部分的特权访问,或其他类似的更精细粒度的区分。如果进程在部分特权容器内尝试的动作不被允许,则这样的动作仍然可以在由部分特权容器创建的虚拟计算环境的上下文内被完成,从而允许进程在由部分特权容器创建的虚拟计算环境内自由操作,同时仍然保护底层主机计算环境并且维持主机计算环境的某些方面与由部分特权容器创建的虚拟计算环境之间的隔离。
作为说明性示例,图3所示的示例性系统300图示了示例性部分特权容器350形式的部分特权容器,该部分特权容器已被供应为允许对主机文件系统131的一部分的读和写311,同时被供应为仅允许对主机文件系统131的其余部分进行读取312。此外,主机文件系统131可以具有额外的文件、目录或其他部分,这些部分即使是以只读能力也不会暴露给部分特权容器350。文件344,如图3所示,表示主机文件系统131的一个这样的部分。这可以通过容器主机连接190或一些其他组件的方面被实现为主机操作系统120的一部分。与在主机计算环境110上执行的容器进程350相关联的特权,或容器进程350可以在主机计算系统110上执行的动作,由主机操作系统120(包括例如由主机操作系统120的内核)结合容器定义文件(或其他类似的数据结构)来实施,其他数据结构标识容器进程350能够或不能在主机计算环境110中执行的功能或动作,诸如示例性功能311和312。为了允许进程在部分特权容器虚拟计算环境350内执行,容器350不被允许执行的动作,不能由在部分特权容器虚拟计算环境350内执行的任何进程在主机计算环境110上执行,这样的动作取而代之在部分特权容器350的隔离环境内被执行,从而维持与主机计算环境110的隔离并维持对主机计算环境110的保护。
如示例性系统300所示,应用152的执行可以导致对文件(诸如举例而言,文件141和143)的修改。例如,文件141可以是可以由应用152创建和编辑的文档,而文件143可以是可以被应用152以及其他应用程序联合使用的组件。在这样的示例中,期望阻止对主机计算环境110上的文件143的修改。例如,应用151的继续操作可能基于保持在未修改状态的文件143。因此,在这样的示例中,如果应用152要修改文件143,则应用151可能停止正确地执行或停止以期望的方式执行。然而,应用152可能需要修改文件143作为其自身执行的先决条件。为了阻止修改主机文件系统131中的文件143,主机操作系统120可以指定主机文件系统131的某些部分,例如存储文件143的那部分,以要求更高级别的特权来访问和/或修改主机文件系统131的那些部分内的文件。例如,操作系统通常要求提升的特权级别,例如“管理员”特权级别或“超级用户”特权级别,以访问对操作系统和/或特定应用的操作来说是必需的或重要的特定文件、文件夹或目录。
结合起来,主机操作系统120可以主动阻止容器进程350编辑、删除或以其他方式修改主机文件系统131的那些部分。如将在下面进一步详细描述的,这样的阻止基于被枚举为允许或不允许的动作的列表,这些动作可以被直接引用,或基于以下而被引用:与此类动作相关联的元数据(诸如执行此类动作所需的特权级别)或此类动作的具体来源或目标的标识。通过这样的方式,可以对容器内执行的进程实施更精细的特权或限制。
更具体地,如图3的示例性系统300所示,当在部分特权容器虚拟计算环境350(例如示例性应用152)内执行的进程试图执行动作时,多个特权确定被做出。初始地,在部分特权容器虚拟计算环境350的上下文内,容器操作系统160检查应用152的执行是否与具有足够特权的用户相关联,例如与具有足够特权来编辑文件141和143的用户相关联。如前指示的,在本示例中,应用152可能需要编辑文件,诸如文件143,其可能需要管理员、超级用户或其他类似的提升特权。因此,在这样的示例中,寻求有效地执行应用152的用户,包括在部分特权容器计算环境350内,将需要以管理员或超级用户特权来执行应用152。然而,如果用户要在传统特权容器(例如先前详述的特权容器250)的上下文内以这样的提升的特权执行应用152,则应用152将可以访问主机文件系统131的全部,因为除由主机操作系统120执行的特权检查之外不存在任何阻止这样的访问的机制,并且该特权检查将确定应用152以足够高的特权级别执行以访问主机文件系统131的全部。
相比之下,示例性的部分特权容器350提供了更细粒度的特权控制。特别地,虽然由容器操作系统160执行的特权检查可以确定应用152正在以足够的特权级别被执行以执行编辑动作355和356两者,但由主机操作系统120执行的后续检查(其在下面进一步详细描述)确定动作356不被允许。如前所指示,这样的确定可以参考允许和/或禁止动作的隐式或显式描绘来做出。
例如,如果主机操作系统120确定编辑动作355被允许,则编辑动作355继续编辑文件141,将其替换为编辑文件341。这样的动作直接在主机文件系统131上执行,例如以类似于上文参考图2的示例性特权容器250所述的方式。相比之下,如果主机操作系统120确定例如针对文件143的编辑动作356不被允许,则由容器主机连接190提供拒绝,容器主机连接190可以与虚拟文件系统驱动器180对接,允许编辑动作356以与上文详细描述的传统非特权容器150相同的方式在部分特权容器计算环境350的上下文中进行。更具体地,主机文件系统381可以包括由主机文件系统驱动器130提供的第一子部分,诸如以图2的系统200所示并且在上文详细描述的方式提供,并且主机文件系统381可以进一步包括由虚拟文件系统驱动器180提供的第二子部分,诸如以图1的系统100所示并且在上文详细描述的方式提供。由虚拟文件系统驱动器180提供的子部分充当底层(诸如关于文件143),并且编辑动作356在容器文件系统371中创建新的文件343,该文件343充当覆盖,而相比之下,由主机文件系统驱动器130提供的子部分充当主机文件系统131(诸如关于文件341)。因此,如前所述,从部分特权容器计算环境350内,应用152看到文件341的编辑版本和文件343的编辑版本,而从主机计算环境110内,应用151看到文件341的编辑版本但只能看到文件143的原始版本。由相同的容器文件系统驱动器170或其类似版本(与上面详细描述的那些类似)实现的文件系统371可以为主机文件系统381的那些部分提供文件系统覆盖,那些部分是主机操作系统120不允许在部分特权容器350内执行的进程对其做出动作的部分。如前所述,与提供容器文件系统371相关的信息,诸如与编辑文件343相关联的信息,被存储在沙盒中,诸如上面详细描述的示例性沙盒149,并且仍然被示出为图3示例性系统300中的主机文件系统131的一部分。
以这样的方式,部分特权容器350提供了这样的机制,通过该机制,可以允许在其中执行的进程执行影响主机计算环境110的某些功能,同时对于其他类型的功能维持容器计算环境350与主机计算环境110之间的隔离。
根据一个方面,主机计算环境110使用文件的最新版本可能是有益的,同时,诸如出于兼容性目的,确保一个或多个较早版本与最新版本共存。例如,一些较新的文件版本可能具有更好的安全性和功能性,其将有利于主机操作系统120和/或应用151。在这样的实例中,文件341和文件141都可供主机计算环境110使用。文件341可以被选择为默认值,然而,例如,如果应用151试图使用文件341,但以某种方式失败,则它可以后退并继续使用文件141。此外,多个部分特权容器(例如示例性部分特权容器350)可以更新文件341超过一次。如果存在不止一个版本,则主机计算环境110可以实现回滚机制和/或并排文件存储,以管理对这些多个文件版本的访问并确保最佳兼容性。
虽然在文件系统访问的上下文中进行了图示,但这样的部分特权可以包括其他功能,诸如修改系统时间或其他类似计算环境参数的能力,以及安装、删除和/或修改驱动器、迷你过滤器、固件、注册表项等。例如,图4所示的示例性系统400以示例性部分特权容器450的形式图示了另一示例性部分特权容器。与上面详述的示例性部分特权容器350一样,示例性系统400的示例性部分特权容器450可以具有主机操作系统120将允许在这样的部分特权容器450内执行的进程执行的某些动作,主机操作系统120将不允许的某些动作,或前述的组合。例如,主机操作系统120可以允许示例性部分特权容器450具有对主机文件系统131的读/写访问411,但不修改任何主机操作系统扩展420,如只读访问412所示。操作系统扩展420包括驱动器(包括纯软件驱动器,诸如驱动器扩展、虚拟设备驱动器等),迷你过滤器、固件更新、注册表更改、操作系统设置(诸如当前时间)、操作系统服务、守护进程(deamon)、后台进程和其他类似的操作系统扩展。这样的部分特权容器450可以被用于支持与例如可以是主机计算环境110的一部分的旧有硬件(诸如示例性旧有硬件430)的交互,而不会潜在地对主机操作系统420造成负面影响,诸如通过在主机操作系统420上安装操作系统扩展,诸如示例性操作系统扩展431。例如,如果被允许作为主机计算环境110的一部分继续执行,则示例性操作系统扩展431可能会引入漏洞、不稳定性或其他类似的不期望的行为。然而,示例性扩展431可能是必需的,以实现与例如旧有硬件430的通信。
更具体地,与前面详细描述类似,在部分特权容器计算环境450内执行的应用,例如应用152,首先安装扩展431,如安装动作451所示。和先前一样,这样的安装动作451要求应用152以高特权执行,例如由具有管理员或超级用户特权的用户执行。因此,容器操作系统160确定应用152以足够的特权级别执行以安装扩展431。然而,当从部分特权容器450内执行的应用152试图访问主机操作系统扩展420以继续在其上对扩展431的安装451时,主机操作系统120确定这样的动作不被允许。和先前一样,该动作随后在容器本身的计算环境中完成,并与主机计算环境110隔离。在当前示例中,扩展431的安装反而指向容器操作系统扩展421,容器操作系统扩展421以与文件系统141覆盖容器150内的主机文件系统181(详见上文,如图1所示)类似的方式,成为在部分特权容器计算环境450的上下文内是主机操作系统扩展上的覆盖。为了避免视觉过度拥挤,与先前详细描述的组件和方面类似的某些组件和方面未在图4中直观表示。然而,容器操作系统160的方面和组件包括这样的机制,通过这些机制容器操作系统扩展421被覆盖在主机操作系统扩展420上,这些机制对于在部分特权容器计算环境450内执行的应用(例如示例性应用152)也是可见的和可访问的。因此,从部分特权容器计算环境450内执行的进程(例如示例性应用152)的角度来看,扩展431的安装451已成功完成,扩展431是对这些进程可用的操作系统扩展的一部分。
为了继续说明性示例,在成功地(从应用152的角度)安装了扩展431之后,应用152接着利用扩展431访问旧有硬件430,并利用旧有硬件430创建、编辑或以其他方式修改文件441,如动作452所示。例如,旧有硬件430可以是旧的数码相机,并且可能要求扩展431来建立与这样的数码相机的通信连接。文件441可以是应用152利用扩展431从旧有硬件430复制出来并复制到主机文件系统131上的照片,这样的复制由编辑动作452图示。以这样的方式,部分特权容器450可以在无需修改主机操作系统120的情况下支持对旧有硬件的利用或其他类似动作,例如通过安装可能导致不稳定或可能与主机操作系统120的各方面不兼容的旧扩展。
本文描述的部分特权容器提供的细粒度特权访问可以用于增量地更新主机计算环境110的各个方面。例如,如果扩展431和主机操作系统120之间的兼容性未知或有问题,则上述示例性系统400可以有助于将扩展431安装到主机操作系统上。在部分特权容器计算环境450的上下文内的扩展431的有效和恰当安装以及随后使用,例如通过应用152,充当了扩展431被恰当和完整安装的验证,没有造成任何不兼容或不稳定性,而是在底层主机计算环境110的上下文内正常运行,具有额外的重叠方面,诸如容器操作系统扩展421。通过这样的验证,可能期望将扩展431直接安装到主机操作系统扩展420中,以便扩展431的安装可以在部分特权容器进程450终止后继续存在。
根据一个方面,在部分特权容器进程450内做出的更改,例如将扩展431安装到容器操作系统扩展覆盖层421中,被持久化到主机计算环境110上,例如在上述验证的情况下或者备选地或另外,在部分特权容器进程450终止时。更具体地,沙盒149可以包括描绘覆盖部分的信息,诸如示例性容器操作系统扩展覆盖421,该覆盖部分对于部分特权容器计算环境450是唯一的,并且以其他方式与主机计算环境110隔离。这样的信息可以是枚举事务的形式,如果这些事务被应用于主机计算环境110,将会重新创建部分特权容器450的计算环境。例如,对NTFS文件的更改被记录或以其他方式被存储在NTFS文件系统中,作为离散事务。这样的离散事务可以被重放或重新执行,以在主机计算环境110中重新创建部分特权容器450的计算环境。
虽然在主机物理计算环境上执行的单个容器虚拟计算环境的上下文中进行了描述,但上述被描述的机制同样适用于在其他容器虚拟计算环境内执行的容器虚拟计算环境。例如,如图5所示的示例性系统500以示例性容器计算环境510的形式图示了部分特权容器450,除了现在由容器计算环境托管之外。更具体地,容器主机连接590,类似于之前描述的容器主机连接190,在通信上和功能上将部分特权容器450耦合到容器计算环境510。与先前描述的主机计算环境110一样,容器计算环境510包括操作系统,诸如以主机容器操作系统520形式,其包括文件系统驱动器,诸如主机容器文件系统驱动器530,类似于先前描述的主机文件系统驱动器130。主机文件系统驱动器530支持主机容器文件系统531的呈现,类似于主机文件系统131,并且主机容器操作系统520还包括主机容器操作系统扩展540,类似于先前描述的主机操作系统扩展440。
容器计算环境510以类似于图1至图4所示和上文详细描述的其他容器的执行的方式被执行在主机计算环境110上。根据一个方面,容器计算环境510虚拟化主机计算环境110的计算硬件的方面,例如示例性存储介质111,其被虚拟化为容器存储介质511。以这样的方式,容器计算环境510比图1至图4中所示和上面详细描述的容器虚拟化更多的计算环境,包括例如虚拟化操作系统内核。更通俗地说,容器计算环境510可以更接近完整的虚拟机计算环境,而不是更轻量级的容器虚拟计算环境。
通常,虚拟化更大范围的计算环境的容器计算环境(诸如示例性容器计算环境510)被用于在服务器集群计算环境中提供硬件独立性和容错性。例如,多个容器计算环境,诸如示例性容器计算环境510,可以在预期来自远程客户端的需求增加的情况下被实例化。这样的远程客户端利用容器计算环境作为任何其他计算环境,并且当这样的计算环境不再被需要时,容器进程可以被终止。此外,如果任何硬件计算设备发生故障,则可以在其他硬件计算设备上实例化容器进程,并且客户端对容器进程的利用可以继续不减弱。以这样的方式,一组固定的硬件计算设备可以容纳不同数量的远程客户端,同时保持容错性和位置独立性。在这样的环境中,容器计算环境(诸如,示例性容器计算环境510)托管部分特权容器(诸如,示例性部分特权容器450)的能力提供了与上面详细描述的相同的益处,包含例如允许客户端增量更新其计算环境的方面,即由容器计算环境510提供的计算环境。
多个嵌套容器计算环境(如图5所示的示例性系统500中所示的环境)的另一个利用是测试或以其他方式验证外部来源的进程不会违反或超过由操作系统供应商、信息技术部门或其他类似标准设置实体建立的特权阈值或限制。例如,容器计算环境,诸如示例性容器计算环境510,可以被建立以模拟可能需要利用来源于容器的更新来进行更新的标准计算环境,如上文参考图4所描述。如果由这样的示例性容器计算环境510托管的部分特权容器450操作失败,则该更新超过了容器计算环境510已被提供的阈值特权级别,例如指示更新不符合相关规范。其他类似的测试或验证也可以利用嵌套容器计算环境来执行。
转到图6,参考其中所示的示例性系统600,对特权容器实施更细粒度限制的上述操作被更详细地描述了。具体地,在主机计算环境110内,当应用(诸如示例性应用151)执行动作(诸如示例性动作651)时,通过主机操作系统120的内核620结合其他操作系统组件,确定621是允许还是拒绝这样的动作651。通常,这样的确定包含查询可以实施限制的多个源,包括将动作651所需的特权级别与正在执行应用151的特权级别(诸如将由触发应用151的执行的用户的用户令牌所标识的特权级别)相比较,以及将执行应用151的用户的标识与被允许访问相关数据的用户(诸如将在访问控制列表或其他类似数据库中描绘的用户)进行比较。
根据一个方面,内核620可以被修改以查询或以其他方式从其他源获取信息,以确定是否允许或拒绝来自容器内执行的进程的动作,该容器将更改主机计算环境的方面。如本文所利用的,术语“主机计算环境的方面”不包括对沙盒的专门更改或更新,因为此类数据旨在仅从容器计算环境内访问,并且与主机计算环境隔离,但存储在主机计算环境上的沙盒除外。更具体地,当内核620接收到在容器进程内执行的进程(诸如示例性应用152)在示例性部分特权容器进程650内执行的请求以执行动作(诸如示例性动作652)时,除了上面详述的一个或多个其他检查之外,内核620还基于部分特权容器650的设置来获得关于是否允许动作652的信息。例如,如通信632所示,内核620与面向容器的服务通信,诸如示例性容器创建服务610,其例如创建和/或维护先前描述的容器主机连接190。反过来,如通信642所示,容器创建服务610引用容器定义文件,诸如示例性容器定义文件615,或者允许或不允许在部分特权容器650内执行的进程的其他动作的枚举或标识。如前所述,动作的这样的枚举或标识可以是显式的或隐式的,并且可以根据任何标识机制来标识动作,该标识机制包含例如动作标识符、所要求的动作特权、动作的源、文件、对象、库或其他被操作的数据以及其他类似的标识机制。容器创建服务610然后通知内核620,并且内核做出允许或拒绝动作652的确定622。
作为例如容器创建服务610和内核620之类的组件的操作的一部分,额外步骤可以被执行来验证部分特权容器650、应用152和相关组件的身份。这包含检查证书、哈希和/或数字签名、执行软件许可证检查、扫描病毒签名、通过网络与远程服务进行检查、检查用户身份等等。从这样的检查中获得的信息可以进一步确定是否允许或拒绝动作,例如示例性动作652。这样的检查可以发生在容器生命周期中的任何点,例如包括在容器被构建、打包、分发、下载、初始化、暂停、恢复、终止等的时候。根据一个方面,内核620基于从容器创建服务610或其他类似容器信息源接收到的信息进行的允许或拒绝与内核620根据传统参考信息(例如特权级别)进行的允许或者拒绝相同或类似。如前所述,根据一个方面,对动作652的拒绝可以导致该动作至少是初始地在容器计算环境650内而不是在主机计算环境110内被执行。
转到图7,其中所示的示例性系统700图示了部分特权容器的示例性使用,以在主机计算环境110上执行维持、更新、安装或其他类似服务功能,该主机计算环境110通常也被称为集群计算环境内的“节点”。节点110可以具有在任何一个时间存储的多个容器包,以备后续实例化,例如通过容器创建服务610。容器包的队列720被图示为存储在节点110上。每个容器包,例如示例性容器包730,包括容器有效载荷(诸如,示例容器有效载荷732),其包括要在容器虚拟计算环境中执行的计算机可执行指令,要从容器虚拟计算环境中使用或安装的数据、以及其他类似的代码和/或数据。容器包(诸如,示例性容器包730)以及容器定义文件(诸如,示例容器定义文件733),如前所述,可以描述对在部分特权容器内执行的进程可执行的功能的限制。可选地,容器包(诸如示例性容器包730)可以与容器标识符731相关联,该容器标识符可以是标识符、序列号或其他类似的容器标识信息。
在一些实例中,容器管理系统可以利用部分特权的容器在多个计算设备(包括例如节点110)上执行增量维持、更新、安装或其他类似的服务功能。这样的增量服务可以是确定性的,因为后续服务需要作为先决条件,先前的服务已经被正确地执行和完成。例如,已有应用的更新的安装可能需要已安装更新的驱动器。这样的先决条件是指定的,例如通过与容器、容器定义文件或其他类似元数据相关联的策略。将容器包(例如示例性容器包730)提供给容器创建服务610,以供容器创建服务601实例化容器,其确认在将容器包提供给容器创建服务610以实例化容器之前满足必要的和/或指定的先决条件。
除了指定先决条件(诸如由在多个顺序实例化的部分特权容器计算环境内执行的进程要执行的增量更新或其他类似的维持)之外,容器管理系统还可以提供容器策略,进一步描述哪些容器被实例化,容器的实例化顺序、可能影响容器实例化的相关节点计算条件以及其他类似的容器策略。如示例性系统700所示,单个节点(诸如示例性节点110)可以从多个容器管理系统(诸如示例容器管理系统780和790)接收容器包。更具体地,容器管理系统780的容器部署管理器(诸如示例性容器部署管理器782)和容器管理系统790的示例性容器部署管理器792独立地向节点110提供容器包,如前所述,其被保留在容器包队列(诸如示例性容器包队列720)中。此外,容器管理系统包括策略管理器(诸如示例性策略管理器781和791),其提供经更新的策略,经更新的策略可以影响单个容器或多个容器,在节点110中将这样的策略保留在策略存储(诸如示例性策略存储740)中。
策略的接收有时会导致对策略存储740中保留的先前接收的策略的弃用、停用或其他类似影响。例如,随后接收的策略可以指示先前接收的策略不再有效。在这样的实例中,除了将新接收的策略保留在策略存储740中之外,本地容器管理器710或其他类似进程还移除不再有效的策略,或以其他方式更新存储在策略存储710中的策略。
根据一个方面,利用由接收到的策略、容器定义文件或其他容器元数据指定的信息,优先化矩阵(诸如示例性优先化矩阵750)被创建(诸如被本地容器管理器710创建)。优先化矩阵750包括不同的优先级,通过不同的优先级队列720中包含的容器将根据不同的先决条件或其他类似的输入被实例化。例如,如果节点110上的可用系统资源超过阈值,则优先化矩阵750可以指示一个容器将在另一个容器之前被实例化,但是如果可用系统资源低于阈值,则第二容器将在第一容器之前被实例化。
本地容器管理器710向容器创建服务提供容器,以基于优先级检查(诸如,示例性优先级检查761)、幂等性(idempotency)检查(诸如,示例性幂等性校验762和763)或前述的组合来实例化,如动作770所示。优先级检查(诸如示例性优先级检查761)确认容器的实例化的必要或枚举的先决条件被满足。优先级检查可以参考优先化矩阵750,以及独立地确认相关先决条件的存在。幂等性检查确认在部分特权容器虚拟计算环境内执行的进程相对于后计算环境110是幂等的。特别地,一些进程可以执行这样的动作,如果这些动作再次被执行,则不会对主机计算环境110做出额外的更改。例如,如果在开始安装之前检查扩展的存在,则安装扩展的进程可以是幂等的。如果这样的进程要被多次执行,则不会安装额外扩展或相同扩展的副本。相反,使计数器递增的进程不是幂等的,因为这样的进程的每次后续执行都将继续递增计数器。根据一个方面,容器可以被认证为幂等的(诸如通过密码安全的第三方认证或其他类似认证)。备选地,幂等性可以由本地容器管理器710实施(诸如通过幂等性检查762和763),其可以引用容器标识符731、序列号、容器有效载荷732的哈希或容器包730的其他类似的唯一标识,从而避免在随后的时间实例化这样的容器包。满足这样的幂等性检查和优先级检查的容器包被提供给容器创建服务610以被实例化,并且进程在其中执行,如前所述,这些进程可以在节点110上执行维持。
根据一个方面,容器使用元数据,如序列号、确认号、时间戳或其他定序数据,以确保它们被按顺序接收和处理。容器可以单独地、成批地、以特殊顺序的组被发送,或者以其他方式被分发到诸如主机计算环境110之类的目的地。在如此分发时,排序指令被提供,排序指令诸如是编码信息、单独传输的消息、处理指令、基于位置的排序、基于环境的排序、基于身份的排序等。与优先化矩阵750相关联的生成和处理处理这些数据并检查额外因素,以确定这些容器被实例化的顺序和时间,并将其指示给本地容器管理器710或主机计算环境110上的其他相关组件。
在许多事务性序列中,当出现故障时,回滚是必要的。优先化矩阵750还具有支持从故障中恢复的回滚机制的能力。这样的回滚可以从外部源(诸如容器管理系统、另一特权容器、作为策略文件的一部分等)被发起,也可以从本地确定被发起,本地确定可以基于策略、配置、元数据分析等。如所指示的,优先化矩阵可以取决于事务管理系统,并且这样的事务管理系统可以在主机计算环境110上本地运行或者在某个其他节点上远程运行。优先化矩阵750可以取决于诸如内核事务管理器、事务启用的文件系统、事务启用的数据库等组件。这些组件可以使优先化矩阵750能够实现用于跨越多个容器的有序和/或实时处理的某些事务操作。这些事务操作可以是原子操作、一致操作、隔离操作或持久操作。例如,当使用部分特权容器发送用于处理与给定主机计算环境110的金融交易的成批指令时,优先化矩阵750可以确定要求按顺序执行这些指令,以确保金融交易产生客户和银行运营商期望的结果。作为执行和记录这些金融交易的一部分,优先化矩阵750监测交易日志并确保其完整。当事务完成时,优先化矩阵750可以用信号通知主机计算环境110或相关远程节点(例如包括容器管理系统780或容器管理系统790)上的相关组件。可以通过优先化矩阵750、本地容器管理器710、容器创建服务610或前述的任何组合来实现确定执行、回滚和其他事务处理活动的操作顺序。
转到图8,其中所示的示例性流程图800图示了一系列示例性步骤,通过这些步骤部分特权容器执行能够选择性地影响底层主机计算环境的进程。初始地,在步骤810处,在部分特权容器内执行的进程发起动作,诸如文件的修改、组件的安装、系统属性的更改(诸如时钟的设置)或其他类似动作。随后,在步骤815处,在容器虚拟计算环境内执行的操作系统组件将进程以之正被执行的特权级别(诸如,通过引用执行进程的用户的用户令牌)与在步骤810处执行由进程发起的动作所要求的特权级别相比较。如果在步骤820处,该进程没有以执行该动作的足够的特权级别来执行该动作,该进程被在容器的上下文内执行的操作系统组件阻止执行这样的动作,如步骤825所示,并且相关处理在步骤875处结束。相反,如果在步骤820处,该进程以足够的特权级别被执行,处理进行到步骤830,此时确定在步骤810发起的动作是否会影响底层主机计算设备,诸如以上文定义的方式。如果在步骤830确定在步骤810发起的动作仅在容器计算环境的上下文内被执行,则处理进行到步骤855,并且该动作在容器计算环境的上下文内执行,从而导致一个或多个修改被记录在沙盒中,并且如上所述,这些修改仅可从容器内访问并且不影响主机计算环境。相反,如果在步骤830处,确定动作正在主机计算设备上被执行,则处理进行到步骤835,在步骤835处主机操作系统内核能够确定该动作是否应该被允许。如前所述,这样的确定包含在步骤835处查询以容器为中心的服务(诸如容器创建服务)以确定该动作是否被允许。这样的查询是作为已经存在的内核机制的一部分来执行的,通过该内核机制,内核基于特权、访问控制列表等来允许或拒绝动作,包含已经的存在的内核机制。在步骤840处,响应于在步骤835处操作系统内核查询,容器创建服务引用容器定义文件或所允许和/或拒绝的动作的其他描述。
基于容器创建服务获得的这样的信息,在步骤845处,内核决定是允许还是拒绝主机上的动作。如果在步骤845处,内核允许该动作,则在步骤850处该动作在主机上被执行,并且相关处理在步骤875处结束。相反,如果在步骤845处,内核不允许该动作,则该动作在容器计算环境的上下文内利用相关覆盖来被执行,并且在步骤855处被存储在沙盒中。
在随后的点处,容器被终止,如步骤860所示。根据一个方面,在步骤865处,确定在容器的上下文内所做的更改中的任何更改是否要被持久化到主机上。如前所述,这样的确定可以基于对以下的验证:容器内的更改没有引入不稳定性、或者被正确执行或以其他方式是有效的。如果在步骤865处,更改不被持久化到主机上,则相关处理在步骤875结束。相反,如果在步骤865处,更改要被持久化在主机上,处理进行到步骤870处,并且在主机上执行来自沙盒的事务(诸如,NTFS事务和其他类似事务),以将更改持久化在主机上,并且然后相关处理在步骤875处结束。
转到图9,其中所示的示例性流程图900图示了可以作为容器(诸如从远程容器管理服务接收到的容器)的实例化的一部分执行的一系列示例性步骤,该远程容器管理服务利用部分特权容器将更改分发给主机节点,诸如更新、补丁、可执行指令的安装和其他类似更改。初始地,在步骤910处,从远程容器管理服务接收容器包和/或容器策略。随后,在步骤915处,如果在步骤910处容器策略被接收,则这样的容器策略被保留在策略存储中。接收到的容器策略可以更改、取代或以其他方式影响先前接收到的并且已经在策略存储中的容器策略,并且在这样的实例中,在步骤920处,可以根据接收到的容器策略来更新或移除这样的其他容器策略。在步骤925处,如果在步骤910处容器包被接收,则可以将这样的容器包保留在容器队列中或在接收到的容器的其他类似集合中。
如前所述,优先级矩阵可以表示先决条件与已经在队列中的容器和容器本身相关的策略之间的交互,例如在给定多个不同的先决条件场景的情况下,描述容器实例化的优先级。在步骤930处,基于在步骤920处更新的策略存储和在步骤925处更新的容器队列来更新这样的优先级矩阵。然后,相关处理可以在步骤970处结束。
备选地,处理进行到步骤935处,或者从步骤935处开始,因为步骤935不需要要求在步骤910处对容器包和/或容器策略的接收来被触发。在步骤935处,容器包被选择用于实例化。作为容器的选择或实例化的一部分,优先级检查被执行,诸如在步骤940处。更具体地,在步骤940处,对容器的实例化所枚举的任何先决条件(诸如可以由相应的容器策略已指定的先决条件)或者容器元数据(诸如容器定义文件)被评估,并且如果这些先决条件不满足,或者如果在步骤945处确定存在具有更高优先级的其他容器,则此时当前选择的容器包不被实例化,并且处理返回到步骤935处。相反,如果在步945处确定满足先决条件,或者没有具有更高优先权的其它容器,则所选择的容器被实例化。
根据一个方面,除了执行优先级检查或作为其替代,一个或多个幂等性检查也可以被执行。在图9所示的示例性流程图900中,在步骤950处确定要实例化的容器是否是幂等的。如前所述,这样的确定是基于如下的证明或其他类似的可验证指示:容器是幂等的并且在这样的容器内执行的进程将仅以在容器无意被实例化并且其进程被多次执行时主机计算环境不被影响的方式来影响主机计算环境。如果在步骤950处没有验证容器是幂等的,则在步骤955处幂等性检查被执行。这样的幂等性检查包括以下中的一项或多项:执行容器有效负载的哈希、检查容器标识符或其他类似操作,通过这些操作容器可以唯一地被标识,以便与先前已被实例化并正确执行的容器进行比较。如果在步骤960处,基于步骤955的幂等性检查,确定所选择的容器先前已被实例化,并且这样的容器内的进程已被完全执行,则处理返回到步骤935,并且不同的容器包被选择。相反,如果在步骤960处,确定容器先前尚未被实例化,或者容器的先前实例化尚未完成,诸如容器崩溃、退出或以其他方式不正确地被终止,则处理进行到步骤965,在此处,在步骤935处选择的容器被实例化。然后,相关处理在步骤970处结束。
转到图10,示例性计算设备1000被图示,其可以执行上面描述的一些或所有机制和动作。示例性计算设备1000可以包括但不限于一个或多个中央处理单元(CPU)1020、系统存储器1030和系统总线1021,系统总线1021将包括系统存储器在内的各种系统组件耦合到处理单元1020。系统总线1021可以是几种类型的总线结构中的任何一种,包含存储器总线或存储器控制器、外设总线以及使用各种总线架构中的任何一种的本地总线。计算设备1000可以可选地包括图形硬件,包括但不限于图形硬件接口1060和显示设备1061,其可以包括能够接收基于触摸的用户输入的显示设备,诸如触敏或支持多点触摸的显示设备。取决于具体的物理实现,CPU1020、系统存储器1030和计算设备1000的其他组件中的一个或多个可以物理上位于同一位置,例如在单个芯片上。在这样的情况下,系统总线1021中的一些或全部可以仅仅是单个芯片结构内的硅通路,而图10中的图示可以仅仅是为了便于说明的符号。
计算设备1000还通常包括计算机可读介质,其可以包括可由计算设备1000访问的任何可用介质,并且包括易失性介质和非易失性介质以及可移除介质和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储计算机可读指令、数据结构、程序模块或其他数据等内容的介质。计算机存储介质包含但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光盘存储,盒式磁带、磁带、磁盘存储或其他磁存储设备,或可用于存储所需内容并可由计算设备1000访问的任何其他介质。然而,计算机存储介质不包括通信介质。通信介质通常体现计算机可读指令、数据结构、程序模块或调制数据信号(例如载波或其他传输机制)中的其他数据,并包括任何内容传送介质。作为示例而非限制,通信介质包括有线介质(例如有线网络或直接有线连接)以及无线介质(例如声学、RF、红外和其他无线介质)。上述任何一种的组合也应包括在计算机可读介质的范围内。
系统存储器1030包含易失性和/或非易失性存储器形式的计算机存储介质(例如只读存储器(ROM)1031和随机存取存储器(RAM)1032)。基本输入/输出系统1033(BIOS),包含有助于在计算设备1000内的元件之间传输内容的基本例程,诸如在启动期间,通常被存储在ROM 1031中。RAM 1032通常包含处理单元1020可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图10图示了操作系统1034、其他程序模块1035和程序数据1036。
计算设备1000还可以包括其他可移除/不可移除、易失性/非易失性计算机存储介质。仅作为示例,图10图示了从不可移除、非易失性磁介质读取或写入的硬盘驱动器1041。可与示例性计算设备一起使用的其他可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能盘、数字视频磁带、固态RAM、固态ROM以及上文定义和描述的其他计算机存储介质。硬盘驱动器1041通常通过诸如接口1040的非易失性存储器接口连接到系统总线1021。
上面讨论并在图10中图示的驱动器及其相关联的计算机存储介质为计算设备1000提供计算机可读指令、数据结构、程序模块和其他数据的存储。例如在图10中,硬盘驱动器1041被图示为存储操作系统1044,其他程序模块1045和程序数据1046。注意,这些组件可以与操作系统1034、其他程序模块1035和程序数据1036相同或不同。操作系统1044、其他软件模块1045和程序数据1046被赋予不同的编号,这说明它们至少是不同的副本。
计算设备1000可以使用与一个或多个远程计算机的逻辑连接来在联网环境中操作。计算设备1000被图示为通过网络接口或适配器1050连接到通用网络连接1051(到网络1070),网络接口或适配器1050又转而连接到系统总线1021。在联网环境中,相对于计算设备1000描绘的程序模块或其部分或其外围设备可以被存储在通过通用网络连接1061通信耦合到计算设备1000的一个或多个其他计算设备的存储器中。应当理解,所示的网络连接是示例性的,并且可以使用在计算设备之间建立通信链路的其他手段。
尽管被描述为单个物理设备,但是示例性计算设备1000可以是虚拟计算设备,在这样的情况下中上述物理组件(例如CPU 1020、系统存储器1030、网络接口1040和其他类似组件)的功能可以由计算机可执行指令提供。这样的计算机可执行指令可以在单个物理计算设备上执行,或者可以跨多个物理计算设备分布,包括以动态方式跨多个物理计算设备分布,使得托管此类计算机可执行指令的特定物理计算设备可以取决于需要和可用性而随时间动态更改。在示例性计算设备1000是虚拟化设备的情况下,托管这样的虚拟化计算设备的底层物理计算设备本身可以包括类似于上面描述的那些并且以类似方式操作的物理组件。此外,可以在多个层中利用虚拟计算设备,其中一个虚拟计算设备在另一虚拟计算设备的构造内执行。因此,如本文所用,术语“计算设备”是指物理计算设备或虚拟化计算环境,包括虚拟计算设备,在其内的计算机可执行指令可以以与物理计算设备执行指令一致的方式被执行。类似地,如本文所使用的,涉及计算设备的物理组件的术语是指执行相同或等效功能的那些物理组件或其虚拟化。
作为第一示例,以上描述包括一种计算设备,该计算设备包括:一个或多个处理单元;以及一个或多个计算机存储介质,一个或多个计算机存储介质包括计算机可执行指令,计算机可执行指令当由处理单元执行时使计算设备:实例化与主机计算环境分离的容器虚拟计算环境,该容器虚拟计算环境被实例化在主机计算环境上;以第一特权级别在容器虚拟计算环境内执行进程,作为执行的一部分,该进程执行修改第一计算环境方面的第一动作,该第一动作可由以第一特权级别执行的进程执行;由主机计算环境的操作系统阻止第一动作修改主机计算机环境的第一计算环境方面;以及在容器虚拟计算环境中执行第一动作,从而修改容器虚拟计算环境的第一计算环境方面,使得在容器虚拟计算环境内执行的进程感知第一动作已经被完成,而在主机计算环境内执行的进程感知第一动作尚未被完成;其中所述阻止基于与容器虚拟计算环境相关联的元数据,该元数据指示第二动作可允许被执行以修改所述主机计算环境的第二计算环境方面,所述第二动作由在容器虚拟计算环境内执行并且修改第二计算环境方面的进程执行;并且其中在容器虚拟计算环境中执行第一动作是基于阻止第一动作修改主机计算环境的第一计算环境方面。
第二示例是第一示例的计算设备,其中阻止第一动作修改主机计算环境的第一计算环境方面是由主机计算机环境的操作系统以如下方式来执行的,该方式如同在主机环境的操作系统已确定第一动作不可由以第一特权级别执行的进程执行的情况下的方式。
第三示例是第一示例的计算设备,其中在容器虚拟计算环境中执行第一动作包括:在覆盖层中修改第一计算环境方面,以及将所修改的第一计算环境方面存储在主机计算环境上的沙盒中。
第四示例是第一示例的计算设备,其中将修改的第一计算环境方面存储在沙盒中包括:将一个或多个事务记录在沙盒中。
第五示例是第一示例的计算设备,其中一个或多个计算机存储介质包括另外的计算机可执行指令,另外的计算机可执行指令当由处理单元执行时使计算设备:在容器虚拟计算环境终止的情况下,在主机计算环境中执行第一动作,从而修改主机计算机环境的第一计算环境方面。
第六示例是第一示例的计算设备,其中具有容器虚拟计算环境的进程执行包括多步骤事务的至少一个步骤,多步骤事务包括其他步骤,其他步骤由在一个或多个其他容器虚拟计算环境内执行的一个或更多个进程执行;并且其中容器虚拟计算环境的另外的实例化进一步由事务管理器基于一个或多个其他容器虚拟计算环境中的先前一个其他容器虚拟计算环境的成功来触发。
第七示例是第一示例的计算设备,其中与容器虚拟计算环境相关联的元数据指定:对文件系统的第一部分内的文件的修改被允许由在容器虚拟计算环境内执行的进程在主机计算环境上执行。
第八示例是第一示例的计算设备,其中仅在确定与容器虚拟计算环境相关联的所枚举的先决条件已经被主机计算环境满足之后,实例化容器虚拟计算设备才被执行。
第九示例是第八示例的计算设备,其中由计算设备从远程容器管理系统接收的容器包包括:所枚举的先决条件和与容器虚拟计算环境相关联的元数据。
第十示例是第一示例的计算设备,其中基于由计算设备从远程容器管理系统接收的策略信息,容器虚拟计算环境被选择用于实例化。
第十一示例是第一示例的计算设备,其中仅在执行与容器虚拟计算环境相关联的幂等性检查之后,实例化容器虚拟计算设备被执行。
第十二示例是第十一示例的计算设备,其中幂等性检查包括:验证与容器虚拟计算环境相关联的幂等性的证明。
第十三示例是第十一示例的计算设备,其中幂等性检查包括:确定容器虚拟计算环境先前尚未被实例化到完成,并且该进程先前尚未在容器虚拟计算环境内被执行到完成。
第十四示例是一种对特权容器虚拟计算环境提供增加的限制的方法,该方法包括:实例化与主机计算环境分离的特权容器虚拟计算机环境,特权容器虚拟计算环境被实例化在所述主机计算环境上;以第一特权级别在特权容器虚拟计算环境内执行进程,作为执行的一部分,该进程执行修改第一计算环境方面的第一动作,第一动作可由以第一特权级别执行的进程执行;由主机计算环境的操作系统阻止第一动作修改主机计算机环境的第一计算环境方面;以及在容器虚拟计算环境中执行第一动作,从而修改容器虚拟计算环境的第一计算环境方面,使得在容器虚拟计算环境内执行的进程感知第一动作已经被完成,而在主机计算环境内执行的进程感知第一动作尚未被完成;其中阻止基于与容器虚拟计算环境相关联的元数据,该元数据指示第二动作可允许被执行以修改所述主机计算环境的第二计算环境方面,所述第二动作由在容器虚拟计算环境内执行并且修改第二计算环境方面的进程执行;并且其中在容器虚拟计算环境中执行第一动作是基于阻止第一动作修改主机计算环境的第一计算环境方面。
第十五示例是一种系统,包括:第一计算设备,该第一计算设备执行实现第一容器管理系统的计算机可执行指令;以及第二计算设备,该第二计算设备执行实现本地容器管理器的计算机可执行指令,本地容器管理器执行包括以下的步骤:从第一计算设备接收第一容器包,该第一容器包包括第一容器定义文件;以及从第一计算设备接收第一策略,第一策略影响第二计算设备何时基于第一容器包来实例化容器虚拟计算环境;其中第二计算设备参考第一容器定义文件以确定在容器虚拟计算环境内执行的进程是否被允许执行修改主机计算环境中的第一计算环境方面的第一动作,容器虚拟计算环境被实例化在该主机计算环境上。
第十六示例是第十五示例的系统,其中第一策略定义由第二计算设备基于第一容器包实例化容器虚拟计算环境的先决条件;并且其中位置容器管理器还执行另外的步骤,另外的步骤包括:在确定先决条件已被满足时,向在第二计算设备上执行的容器创建服务提供第一容器包,以实例化容器虚拟计算环境。
第十七示例是第十五示例的系统,其中位置容器管理器执行另外的步骤,另外的步骤包括:执行与容器虚拟计算环境相关联的幂等性检查。
第十八示例是第十七示例的系统,其中幂等性检查包括验证幂等性的证明,第一容器包包括幂等性的证明。
第十九示例是第十七示例的系统,其中幂等性检查包括:确定容器虚拟计算环境先前尚未被实例化到完成。
第二十示例是第十五示例的系统,其中第二计算设备执行进一步的计算机可执行指令,这些指令执行包括以下的步骤:实例化容器虚拟计算环境;以第一特权级别在容器虚拟计算环境内执行进程,作为执行的一部分,进程执行第一动作,其中第一动作可由以第一特权级别执行的进程执行;由主机计算环境的操作系统阻止第一动作修改主机计算机环境的第一计算环境方面;以及在容器虚拟计算环境中执行第一动作,从而修改容器虚拟计算环境的第一计算环境方面,使得在容器虚拟计算环境内执行的进程感知第一动作已经被完成,而主机计算环境内执行的进程感知第一动作尚未被完成;其中在容器虚拟计算环境中执行第一动作是基于阻止第一动作修改主机计算环境的第一计算环境方面。
从以上描述可以看出,用于提供细粒度可选择的部分特权容器虚拟计算环境的机制已经被提出。鉴于本文描述的主题的许多可能的变型,我们要求所有可能落入以下权利要求及其等效物范围内的实施例作为本发明。

Claims (15)

1.一种计算设备,包括:
一个或多个处理单元;以及
一个或多个计算机存储介质,所述一个或多个计算机存储介质包括计算机可执行指令,所述计算机可执行指令当由所述处理单元执行时使所述计算设备:
实例化与主机计算环境分离的容器虚拟计算环境,所述容器虚拟计算环境被实例化在所述主机计算环境上;
以第一特权级别在所述容器虚拟计算环境内执行进程,作为所述执行的一部分,所述进程执行修改第一计算环境方面的第一动作,所述第一动作可由以所述第一特权级别执行的进程执行;
由所述主机计算环境的操作系统阻止所述第一动作修改所述主机计算机环境的所述第一计算环境方面;以及
在所述容器虚拟计算环境中执行所述第一动作,从而修改所述容器计算环境的所述第一计算环境方面,使得在所述容器虚拟计算环境内执行的进程感知所述第一动作已经被完成,而在所述主机计算环境内执行的进程感知所述第一动作尚未被完成;
其中所述阻止基于与所述容器虚拟计算环境相关联的元数据,所述元数据指示第二动作可允许被执行以修改所述主机计算环境的第二计算环境方面,所述第二动作由在所述容器虚拟计算环境内执行并且修改所述第二计算环境方面的进程执行;并且
其中在所述容器虚拟计算环境中执行所述第一动作是基于所述阻止所述第一动作修改所述主机计算环境的所述第一计算环境方面。
2.根据权利要求1所述的计算设备,其中在所述容器虚拟计算环境中执行所述第一动作包括:在覆盖层中修改所述第一计算环境方面,以及将所修改的第一计算环境方面存储在所述主机计算环境上的沙盒中。
3.根据权利要求1所述的计算设备,其中所述一个或多个计算机存储介质包括另外的计算机可执行指令,所述另外的计算机可执行指令当由所述处理单元执行时使所述计算设备:
在所述容器虚拟计算环境终止的情况下,在所述主机计算环境中执行所述第一动作,从而修改所述主机计算环境的所述第一计算环境方面。
4.根据权利要求1所述的计算设备,其中具有所述容器虚拟计算环境的所述进程执行多步骤事务的至少一个步骤,所述多步骤事务包括其他步骤,所述其他步骤由在一个或多个其他容器虚拟计算环境内执行的一个或多个进程执行;并且
其中所述容器虚拟计算环境的另外的所述实例化由事务管理器基于所述一个或多个其他容器虚拟计算环境中的先前一个其他容器虚拟计算环境的成功来触发。
5.根据权利要求1所述的计算设备,其中仅在确定与所述容器虚拟计算环境相关联的所枚举的先决条件已经被所述主机计算环境满足之后,实例化所述容器虚拟计算环境才被执行。
6.根据权利要求1所述的计算设备,其中仅在执行与所述容器虚拟计算环境相关联的幂等性检查之后,实例化所述容器虚拟计算环境被执行。
7.根据权利要求6所述的计算设备,其中所述幂等性检查包括:验证与所述容器虚拟计算环境相关联的幂等性的证明。
8.根据权利要求6所述的计算设备,其中所述幂等性检查包括:确定所述容器虚拟计算环境先前尚未被实例化到完成,并且所述进程先前尚未在所述容器虚拟计算环境内被执行到完成。
9.一种对特权容器虚拟计算环境提供增加的限制的方法,所述方法包括:
实例化与主机计算环境分离的特权容器虚拟计算环境,所述特权容器虚拟计算环境被实例化在所述主机计算环境上;
以第一特权级别在所述特权容器虚拟计算环境内执行进程,作为所述执行的一部分,所述进程执行修改第一计算环境方面的第一动作,所述第一动作可由以所述第一特权级别执行的进程执行;
由所述主机计算环境的操作系统阻止所述第一动作修改所述主机计算机环境的所述第一计算环境方面;以及
在所述容器虚拟计算环境中执行所述第一动作,从而修改所述容器计算环境的所述第一计算环境方面,使得在所述容器虚拟计算环境内执行的进程感知所述第一动作已经被完成,而在所述主机计算环境内执行的进程感知所述第一动作尚未被完成;
其中所述阻止基于与所述容器虚拟计算环境相关联的元数据,所述元数据指示第二动作可允许被执行以修改所述主机计算环境的第二计算环境方面,所述第二动作由在所述容器虚拟计算环境内执行并且修改所述第二计算环境方面的进程执行;并且
其中在所述容器虚拟计算环境中执行所述第一动作是基于阻止所述第一动作修改所述主机计算环境中的所述第一计算环境方面。
10.一种系统,包括:
第一计算设备,所述第一计算设备执行实现第一容器管理系统的计算机可执行指令;以及
第二计算设备,所述第二计算设备执行实现本地容器管理器的计算机可执行指令,所述本地容器管理器执行包括以下的步骤:
从所述第一计算设备接收第一容器包,所述第一容器包包括第一容器定义文件;以及
从所述第一计算设备接收第一策略,所述第一策略影响所述第二计算设备何时基于所述第一容器包来实例化容器虚拟计算环境;
其中所述第二计算设备参考所述第一容器定义文件以确定在所述容器虚拟计算环境内执行的进程是否被允许执行修改主机计算环境的第一计算环境方面的第一动作,所述容器虚拟计算环境被实例化在所述主机计算环境上。
11.根据权利要求1所述的计算设备,其中阻止所述第一动作修改所述主机计算环境的所述第一计算环境方面是由所述主机计算机环境的所述操作系统以如下方式来执行的,该方式如同在所述主机计算环境的所述操作系统已确定所述第一动作不可由以所述第一特权级别执行的进程执行的情况下的方式。
12.根据权利要求1所述的计算设备,其中将所修改的第一计算环境方面存储在所述主机计算环境上的沙盒中包括:将一个或多个事务记录在所述沙盒中。
13.根据权利要求1所述的计算设备,其中与所述容器虚拟计算环境相关联的所述元数据指定:对文件系统的第一部分内的文件的修改被允许由在所述容器虚拟计算环境内执行的进程在所述主机计算环境上执行。
14.根据权利要求1所述的计算设备,其中基于由所述计算设备从远程容器管理系统接收的策略信息,所述容器虚拟计算环境被选择用于实例化。
15.根据权利要求10所述的系统,其中所述第二计算设备执行另外的计算机可执行指令,所述计算机可执行指令执行包括以下的步骤:
实例化所述容器虚拟计算环境;
以第一特权级别在所述容器虚拟计算环境内执行所述进程,作为所述执行的一部分,所述进程执行所述第一动作,其中所述第一动作可由以所述第一特权级别执行的进程执行;
由所述主机计算环境的操作系统阻止所述第一动作修改所述主机计算机环境的所述第一计算环境方面;以及
在所述容器虚拟计算环境中执行所述第一动作,从而修改所述容器计算环境的所述第一计算环境方面,使得在所述容器虚拟计算环境内执行的进程感知所述第一动作已经被完成,而在所述主机计算环境内执行的进程感知所述第一动作尚未被完成;
其中在所述容器虚拟计算环境中执行所述第一动作是基于阻止所述第一动作修改所述主机计算环境的所述第一计算环境方面。
CN202180040280.7A 2020-06-04 2021-04-06 部分特权的轻量级虚拟化环境 Pending CN115885261A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/893,288 US20210382739A1 (en) 2020-06-04 2020-06-04 Partially Privileged Lightweight Virtualization Environments
US16/893,288 2020-06-04
PCT/US2021/025841 WO2021247138A1 (en) 2020-06-04 2021-04-06 Partially privileged lightweight virtualization environments

Publications (1)

Publication Number Publication Date
CN115885261A true CN115885261A (zh) 2023-03-31

Family

ID=75747038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180040280.7A Pending CN115885261A (zh) 2020-06-04 2021-04-06 部分特权的轻量级虚拟化环境

Country Status (4)

Country Link
US (1) US20210382739A1 (zh)
EP (1) EP4162361A1 (zh)
CN (1) CN115885261A (zh)
WO (1) WO2021247138A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11334364B2 (en) 2019-12-16 2022-05-17 Microsoft Technology Licensing, Llc Layered composite boot device and file system for operating system booting in file system virtualization environments
US20210406079A1 (en) * 2020-06-29 2021-12-30 Robin Systems, Inc. Persistent Non-Homogeneous Worker Pools
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735766B1 (en) * 1999-03-03 2004-05-11 Microsoft Corporation Method and computer-readable medium for installing an upgrade to an application program
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US8407696B2 (en) * 2007-06-04 2013-03-26 International Business Machines Corporation Method for delivering, testing, and applying software patches or other changes to a conventionally installed application in virtual application containers
CN101551756B (zh) * 2009-03-31 2012-02-15 成都市华为赛门铁克科技有限公司 基于操作系统层的虚拟方法及虚拟装置
US9135140B2 (en) * 2012-11-30 2015-09-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Identifying software responsible for a change in system stability
KR101517895B1 (ko) * 2013-04-05 2015-05-08 주식회사 팬택 어플리케이션 관련 데이터를 제공하는 단말기 및 방법
US9729579B1 (en) * 2015-04-27 2017-08-08 Symantec Corporation Systems and methods for increasing security on computing systems that launch application containers
US10503532B2 (en) * 2015-06-26 2019-12-10 Vmware, Inc. Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter
US10997119B2 (en) * 2015-10-23 2021-05-04 Nutanix, Inc. Reduced size extent identification
US10061613B1 (en) * 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US20190332230A1 (en) * 2016-12-15 2019-10-31 Nutanix, Inc. User interface view generation
KR101954623B1 (ko) * 2017-02-27 2019-03-06 한국전자통신연구원 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법
US10341198B2 (en) * 2017-03-17 2019-07-02 Verizon Patent And Licensing Inc. Configuring a back-end container and a corresponding front-end proxy container on a network device
US11074323B2 (en) * 2017-12-07 2021-07-27 Microsoft Technology Licensing, Llc Method and system for persisting files
US11222123B2 (en) * 2019-04-22 2022-01-11 Cyberark Software Ltd. Securing privileged virtualized execution instances from penetrating a virtual host environment
CN110427248B (zh) * 2019-07-12 2021-10-01 中国人民解放军国防科技大学 一种基于容器的轻量级用户环境构建方法、系统及介质
CN111078367A (zh) * 2019-12-23 2020-04-28 北京云联万维技术有限公司 一种请求处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
US20210382739A1 (en) 2021-12-09
EP4162361A1 (en) 2023-04-12
WO2021247138A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
US20210382739A1 (en) Partially Privileged Lightweight Virtualization Environments
US7793101B2 (en) Verifiable virtualized storage port assignments for virtual machines
US7257707B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US8056119B2 (en) Method and system for controlling inter-zone communication
US20050091192A1 (en) Dynamically identifying dependent files of an application program or an operating system
EP1526429A2 (en) Operating system resource protection
US20030097558A1 (en) Transferring application secrets in a trusted operating system environment
US20080250493A1 (en) Method, System and Computer Program for Automating Configuration of Software Applications
US20030097578A1 (en) Operating system upgrades in a trusted operating system environment
US7882202B2 (en) System to delegate virtual storage access method related file operations to a storage server using an in-band RPC mechanism
US9311475B2 (en) Trusted execution of binaries and modules
JP2011526387A (ja) コンピューティングプロセスのための最小特権アクセスの付与
EP4052155B1 (en) Virtual environment type validation for policy enforcement
US7650501B1 (en) System and methods for construction, fusion, prosecution, and maintenance of minimized operating environments
US11301228B2 (en) Managing removal and modification of installed programs on a computer device
US20230359741A1 (en) Trusted boot method and apparatus, electronic device, and readable storage medium
US20200401492A1 (en) Container-level monitoring
CN115836278A (zh) 基于热补丁和冷补丁的混合的系统合规
JP7486368B2 (ja) 情報処理装置、情報処理装置の制御方法、情報処理システム及びプログラム
EP4089555B1 (en) Systems and methods for verifying the integrity of a software installation image
US20240220602A1 (en) Virtual Environment Type Validation For Policy Enforcement
CN117909027A (zh) 层级式容器编排系统及容器编排方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination