CN109983434A - 用于在操作系统的初始机器配置期间消除重启的系统和方法 - Google Patents

用于在操作系统的初始机器配置期间消除重启的系统和方法 Download PDF

Info

Publication number
CN109983434A
CN109983434A CN201780071225.8A CN201780071225A CN109983434A CN 109983434 A CN109983434 A CN 109983434A CN 201780071225 A CN201780071225 A CN 201780071225A CN 109983434 A CN109983434 A CN 109983434A
Authority
CN
China
Prior art keywords
image
virtual machine
starting
file
during
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.)
Withdrawn
Application number
CN201780071225.8A
Other languages
English (en)
Inventor
N·戈文达拉朱
D·H·豪拉德
S·P·雷瓦斯卡尔
C·W·麦克龙
S·查克拉博蒂
李江天
M·M·H·乔德胡里
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 CN109983434A publication Critical patent/CN109983434A/zh
Withdrawn legal-status Critical Current

Links

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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/4401Bootstrapping
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Quality & Reliability (AREA)

Abstract

一种系统,该系统被配置为:启动操作系统的用于创建虚拟机映像以运行操作系统,以及在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除重启的发生。

Description

用于在操作系统的初始机器配置期间消除重启的系统和方法
技术领域
本公开涉及用于在操作系统的初始机器配置期间消除重启以在从一般映像进行部署时来专门化部署实例的系统和方法。
背景技术
本文所提供的背景描述是出于总体上呈现本公开的上下文的目的。当前署名发明人的工作,到在该背景技术部分中描述的工作范围,以及在专利申请递交时没有另外地符合作为现有技术的说明的方面,既没有明示地也没有暗示地被承认是相对于本公开的现有技术。
操作系统(OS)的映像通常被用于在一台或多台计算机上安装操作系统。在计算机上的安装期间,当映像第一次在计算机上启动时,会向映像提供许多特定于机器的配置设置(例如,计算机名称、页面文件位置等)。在可操作系统的在计算机上的安装可以被完成之前,映像重启以应用这些特定于机器的配置设置。附加地,当映像第一次在计算机上启动时,映像捕获关于被安装在计算机上的硬件设备(例如,磁盘驱动器、网络接口卡等)的信息。之后,映像与设备驱动程序对应地进行加载并且在操作系统在计算机上的安装可以完成之前进行重启。映像还可在安装过程期间重启以加载任何非白名单服务(白名单服务是在初始启动正在进行中时不必须重启操作服务的服务)。相应地,由于配置改变和/或非白名单服务开始,操作系统在安装过程完成之前、以及在操作系统准备好在计算机上使用之前的安装过程期间重启。
发明内容
一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。机器可读指令在由该处理器执行时,机器可读指令被配置为(即,该机器可读指令配置系统来):启动操作系统的用于创建虚拟机的映像以运行操作系统;以及,在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,避免重启的发生。
在其它特征中,配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件;以及,将该文件注入到虚拟机中。机器可读指令被配置为:在映像的启动期间,为映像提供来自文件的配置设置。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件;以及,将该文件存储在磁盘上,并且将该磁盘附接到虚拟机。机器可读指令被配置为:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件的配置设置。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件;在虚拟机上创建基本输入/输出设备;以及,将该文件存储在虚拟机上的基本输入/输出设备上。机器可读指令被配置为:在映像的启动期间,为映像提供来自被存储在虚拟机上的基本输入/输出设备上的文件的配置设置。
在其它特征中,机器可读指令被配置为:接收利用与虚拟机相关联的设备信息准备的映像。设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。利用设备信息准备的映像在映像的启动期间消除设备发现和随后的重启的发生。
在其它特征中,机器可读指令被配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,机器可读指令被配置为:接收利用与虚拟机相关联的设备信息准备的映像以在映像的启动期间消除设备发现和之后的重启的发生。机器可读指令被配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,一种方法包括:启动操作系统的用于创建虚拟机的映像以运行操作系统;以及,在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,避免重启的发生。
在其它特征中,配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,以及将该文件注入到虚拟机中。该方法还包括:在映像的启动期间,为映像提供来自该文件的配置设置。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,将该文件存储在磁盘上并且将该磁盘附接到虚拟机。该方法还包括:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件的配置设置。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,在虚拟机上创建基本输入/输出设备并且将该文件存储在虚拟机上的基本输入/输出设备上。该方法还包括:在映像的启动期间,为映像提供来自被存储在虚拟机上的基本输入/输出设备上的文件的配置设置。
在其它特征中,该方法还包括:接收利用与虚拟机相关联的设备信息准备的映像。设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。利用设备信息准备的映像在映像的启动期间消除设备发现和之后的重启的发生。
在其它特征中,该方法还包括:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,该方法还包括:接收利用与虚拟机相关联的设备信息准备的映像以在映像的启动期间消除设备发现和之后的重启的发生。该方法还包括:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。机器可读指令在由处理器执行时,机器可读指令被配置为(即,机器可读指令配置系统来):在启动用于创建虚拟机的操作系统的映像以运行操作系统之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入到虚拟机中。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令还被进一步配置为:在映像的启动期间,为映像提供来自文件的配置设置以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除重启的发生。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,将文件存储在磁盘上并且将该磁盘附接到虚拟机。机器可读指令还被进一步配置为:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件的配置设置。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,在虚拟机上创建基本输入/输出设备,并且将文件存储在虚拟机上的基本输入/输出设备上。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自被存储在虚拟机上的基本输入/输出设备上的文件的配置设置。
在其它特征中,机器可读指令被配置来:接收利用与虚拟机相关联的设备信息准备的映像以在映像的启动期间消除设备发现和之后的重启的发生。机器可读指令被进一步配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。机器可读指令在由处理器执行时,机器可读指令被配置为(即,机器可读指令配置系统来):接收用于创建虚拟机的操作系统的映像以运行操作系统。该映像利用与虚拟机相关联的设备信息而被准备。机器可读指令被进一步配置为:启动映像以创建虚拟机。利用与虚拟机相关联的设备信息准备的映像在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除重启的发生。
在其它特征中,设备信息包括关于与虚拟机相关联的硬盘和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。
在其它特征中,机器可读指令被配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入虚拟机中。配置设置包括虚拟机的名称、与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置来:在映像的启动期间,为映像提供来自文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前避免发生额外的重启。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,将该文件存储在磁盘上,以及将该磁盘附接到虚拟机。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件的配置设置以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,在虚拟机上创建基本输入/输出设备,并且将该文件存储在虚拟机上的基本输入/输出设备上。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自被存储在虚拟机上的基本输入/输出设备上的文件的配置设置,以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,机器可读指令被配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,机器可读指令被配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发另外的重启。
在其它特征中,一种方法包括:接收操作系统的用于创建虚拟机的映像以运行操作系统。映像利用与虚拟机相关联的设备信息而被准备。该方法还包括:启动映像以创建虚拟机。利用与虚拟机相关联的设备信息准备的映像在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除重启的发生。
在其它特征中,设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。
在其它特征中,该方法还包括:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入到虚拟机中。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:在映像的启动期间为映像提供来自文件的配置设置以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,将该文件存储在磁盘中,并且将该磁盘附接到虚拟机。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:在映像的启动期间,为映像提供来自内容被存储在被附接到虚拟机的磁盘上的文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,在虚拟机上创建基本输入/输出设备,并且将该文件存储在虚拟机上的基本输入/输出设备上。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:在映像的启动期间,为映像提供来自被存储在虚拟机上基本输入/输出设备上的文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,该方法还包括:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,该方法还包括:在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,避免发生额外的重启。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发另外的重启。
在其它特征中,一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。机器可读指令在由处理器执行时,机器可读指令被配置为(即,机器可读指令配置系统来):接收操作系统的用于创建虚拟机的映像以运行操作系统。映像利用与虚拟机相关联的设备信息而被准备。映像包括根据设备信息的设备驱动程序。机器可读指令被进一步配置为:启动映像以创建虚拟机。利用与虚拟机相关联的设备信息准备的映像在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除重启的发生。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入虚拟机中。配置设置包括虚拟机的名称、与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置来:在映像的启动期间,为映像提供来自文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启。
在其它特征中,机器可读指令被配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发额外的重启。
在其它特征中,机器可读指令被配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。机器可读指令被进一步配置为:防止除预定服务之外的服务在映像的启动期间开启,以防止服务在映像的启动期间触发另外的重启。
在其它特征中,一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。机器可读指令在由处理器执行时,机器可读指令被配置为(即,机器可读指令配置系统来):接收操作系统的用于创建虚拟机映像以运行操作系统,启动映像以创建虚拟机,并且在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过防止除预定服务之外的服务在映像的启动期间开启,消除重启的发生。
在其它特征中,机器可读指令被配置为:通过在映像完成启动之后并且在所创建的虚拟机开始运行操作系统之后延迟服务的开始来防止除预定服务之外的服务在映像的启动期间开启。
在其它特征中,机器可读指令被配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入到虚拟机中。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自文件的配置设置以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,将该文件存储在磁盘上,并且将该磁盘附接到虚拟机。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,在虚拟机上创建基本输入/输出设备,并且将该文件存储在该基本输入/输出设备上。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自被存储在虚拟机上基本输入/输出设备上的文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,机器可读指令被配置为:接收利用与虚拟机相关联的设备信息准备的映像。设备信息包括:针对关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。利用设备信息准备的映像在映像的启动期间消除设备发现和之后的重启的发生。
在其它特征中,机器可读指令被配置为:接收利用与虚拟机相关联的设备信息准备的映像以在映像的启动期间消除设备发现和之后的重启的发生。设备信息包括:关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。机器可读指令被进一步配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,一种方法包括:接收操作系统的用于建立虚拟机的映像以运行操作系统,启动映像以创建虚拟机,并且在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过防止除预定服务之外的服务在映像的启动期间开始来消除重启的发生。
在其它特征中,该方法还包括:通过在映像完成启动之后并且在所创建的虚拟机开始运行操作系统之后延迟服务的开始来防止除预定服务之外的服务在映像的启动期间开启。
在其它特征中,该方法还包括:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入到虚拟机中。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:在映像的启动期间,为映像提供来自文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,将该文件存储在磁盘上,并且将该磁盘附接到虚拟机。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件的配置设置以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,该方法还包括:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,在虚拟机上创建基本输入/输出设备,并且将该文件存储在虚拟机上的基本输入/输出设备上。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。该方法还包括:在映像的启动期间,为映像提供来自被存储在虚拟机上的基本输入/输出设备上的文件的配置设置以在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,该方法还包括:接收利用与虚拟机相关联的设备信息准备的映像。设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。利用设备信息准备的映像在映像的启动期间消除设备发现和之后的重启的发生。
在其它特征中,该方法还包括:接收利用与虚拟机相关联的设备信息准备的映像以在映像的启动期间消除设备发现和之后的重启的发生。设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。该方法还包括:在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
在其它特征中,一种系统包括处理器和存储器、以及被存储在存储器中的机器可读指令。机器可读指令在由处理器执行时,机器可读指令被配置为(即,机器可读指令配置系统来):接收操作系统的用于创建虚拟机的映像以运行操作系统,以及启动映像以创建虚拟机。机器可读指令被进一步配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过以下中的一个或多个:在映像的启动期间不启用(enable)除预定服务之外的服务以及在映像完成启动之后并且在所创建的虚拟机开始运行操作系统之后延迟除预定服务之外的服务的开启;来消除重启的发生。
在其它特征中,机器可读指令被配置为:在启动操作系统的映像之前,基于与虚拟机相关联的配置设置生成文件,并且将该文件注入到虚拟机中。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。机器可读指令被进一步配置为:在映像的启动期间,为映像提供来自文件的配置设置以在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前消除额外的重启的发生。
在其它特征中,机器可读指令被配置为:接收利用与虚拟机相关联的设备信息准备的映像。设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。映像包括根据设备信息的设备驱动程序。利用设备信息准备的映像在映像的启动期间消除设备发现和之后的重启的发生。
在其它特征中,机器可读指令被配置为:接收利用与虚拟机相关联的设备信息准备的映像以在映像的启动期间消除设备发现和之后的重启的发生。设备信息包括关于硬盘驱动器和与虚拟机相关联的网络接口卡的信息。映像包括根据设备信息的设备驱动程序。机器可读指令被进一步配置为:在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,消除额外的重启的发生。配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略。
本公开的进一步适用领域将从具体实现、权利要求书和附图中显见。具体实现和特定示例仅用于说明的目的,并不旨在限制本公开的范围。
附图说明
图1是云计算系统的示例的功能框图,该云计算系统使用映像来执行虚拟机部署,而不重启该映像。
图2是由图1的云计算系统执行的虚拟机部署的顺序图的示例。
图3是分布式网络系统的简化示例的功能框图。
图4是在图3的分布式网络系统中使用的客户端设备的简化示例的功能框图。
图5是在图3的分布式网络系统中使用的服务器的简化示例的功能框图。
图6是用于在虚拟机部署期间消除映像的重启的方法的流程图。
在附图中,附图标记可以被重复使用以标识类似的和/或相同的元件。
具体实施方式
本公开涉及用于在操作系统的初始机器配置期间消除重启的系统和方法。虽然在本公开中仅参照例如云计算环境来描述该系统和方法,但本公开的教导同样适用于独立和预置型计算机系统。
本公开提出以下方法以在虚拟机第一次被部署来在计算机系统上安装OS时消除操作系统(OS)映像的重启。可通过使用以下方法中的任何一种或这些方法的任何组合来消除重启。以下是对这些方法的简要描述。下面详细描述每个方法。
第一方法涉及采用初始机器配置(IMC)技术并且在主机(例如,在云计算环境中的服务器)上开启虚拟机(VM)之前注入配置设置,如下面详细解释的。在被用于创建VM的操作系统(OS)映像的第一次启动期间,配置设置被应用。配置设可以使用以下两个方法中的一个而被注入到映像中:在第一个方法中,在操作系统中可用的应用程序接口(API)被用于创建基本输入/输出系统(BIOS)设备,并且配置数据被存储在该BIOS设备中。备选地,在第二个方法中,通过具有适当的IMC设备和文件名称信息的启动配置数据(BCD)(即,用于启动时间配置数据的固件独立式数据库)来配置OS映像,并且IMC储巢文件(hive file)被存储在被附接到VM的磁盘中。在每个方法中,在OS映像的初始启动(即,第一次启动)期间,来自合适设备(例如,被附接到VM或BIOS设备的磁盘)的IMC储巢数据(以及因此,用于计算机名称、页面文件等的设置)被应用于注册表,并且消除了重启。相应地,OS映像在无需一次重启的情况下在虚拟机上完成了安装OS,并且虚拟机在无需一次重启的情况下就准备好使用。
第二个方法涉及通过保留硬件信息(例如,使用下文详细解释的系统准备(sysprep)VM模式)来准备OS映像,以避免当OS映像第一次启动时由于设备驱动程序安装而引起的重启。由于保留了硬件信息,所以已经安装了硬件设备和相应的设备驱动程序,并且在VM部署期间消除了重启。相应地,OS映像在无需一次重启的情况下在虚拟机上完成了安装OS,并且虚拟机在无需一次重启的情况下准备好使用。
第三个方法涉及调谐初始启动过程,以不开始可能会触发重启的任何非白名单的(即,非开箱体验(非OOBE))服务。例如,可能不启用非OOBE服务,也可延迟非OOBE服务或配置成在OS安装完成之后完成非OOBE服务,以避免重启。因此,OS映像无需一次重启就在虚拟机上完成了安装操作系统,并且虚拟机无需一次重启就可以使用。
通常,本公开的系统和方法被配置为:启动操作系统(OS)的用于创建虚拟机(VM)映像以运行操作系统,并且在映像完成启动之前并且在所创建的虚拟机开始运行操作系统之前,通过使用以下方法的一个或多个来消除重启的发生:在映像的启动期间,为映像提供与虚拟机相关联的配置设置,接收利用与虚拟机相关联的设备信息准备的映像,以及防止除预定服务之外的服务在映像的启动期间开启。现在详细描述这些方法。
贯穿本公开,针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的存储区域网络策略仅被用作配置设置的示例。本公开的系统和方法可以被用于更新任何和所有注册表设置。此外,贯穿本公开,关于与虚拟机相关联的硬盘驱动器和网络接口以及根据设备信息的对应设备驱动程序的信息仅被用作设备信息的示例。设备信息可包括其它设备和驱动程序。
通常,为了将操作系统(OS)的映像部署到不同的计算机,首先准备映像。为了准备映像,可使用系统准备工具(例如,sysprep)。备选地,可以指定在应答文件中的设置,以将映像准备为无人处理安装的一部分。当准备映像时,从映像中移除任何特定于计算机的信息(例如,关于硬件设备和对应设备驱动程序的信息),以便映像可以被重新使用来在许多不同的计算机上安装操作系统。这个过程被称为将映像通用化。
当在云计算环境中部署通用虚拟机(VM)映像时,该映像经过设置专用化,该设置专用化包括由云结构(cloud fabric)和租户(客户)提供的特定于机器的设置。这些配置设置中的一些配置设置使得映像重启,这影响了用以部署VM的时间。由于针对云计算环境的安全和隐私考虑,不能在主机中离线修改租户提供的VM映像。
以下是在设置专用化期间发生的配置改变的示例,配置改变中的每个配置改变使得映像重启。1)配置设置(诸如,计算机名称、页面文件位置、以及存储区域网络(SAN)策略)被应用于映像。SAN允许服务器从其它计算机自动挂载磁盘和其它存储设备,并且SAN策略控制是否自动挂载磁盘、可以挂载哪些磁盘等。2)在映像的初始启动期间发现设备,并且安装对应的设备驱动程序。3)在映像的设置专用化期间的一些动作触发一些OS服务开启,这些服务是不被允许以开箱体验(OOBE)传递方式来运行的。为了从专用化转换成OOBE传递,需要重启。
本公开的系统和方法解决了这些问题,并且如下地在映像安装和VM部署期间消除了重启。初始机器配置(IMC)技术允许OS实例在映像的初始启动期间并入特定于机器的配置值。IMC技术允许包括特定于机器的配置设置的小型注册表储巢文件在初始启动期间由通用OS映像使用,导致特定于机器的OS实例运行,这不要求额外的配置或重启。这避免了在云计算环境中针对映像进行任何离线处理的需要。
更具体地,通常被应用于启动OS映像(可能必须重启)的配置数据经由注册表储巢文件通过合成BIOS或通过预操作系统组件被传递至OS映像的启动(startup)部分中。在配置数据中的设置在OS映像进入运行状态之前被应用于OS映像,使得OS映像在启动时第一次进入运行状态时使这些设置生效。由于设置已经被应用,因此OS映像不需要重启来使那些设置生效。
除IMC工具之外,可以准备映像以便保留特定于计算机的信息(例如,关于硬件设备和对应的设备驱动程序的信息)。例如,可以使用sysprepVM模式来准备映像。这允许将VM映像部署回其中准备VM映像的相同虚拟化环境中。这对保留映像和避免设置期间的额外步骤是有用的。
更具体地,当通常使用sysprep创建映像而不使用VM模式时,sysprep从映像中消除特定于机器的硬件配置,使得映像不包含硬件简档并且可以被用于在任何机器上安装OS。当映像第一次在任何其它计算机上被启动时,映像发现在初始启动过程期间被安装在该计算机上的硬件(例如,硬盘、网络接口卡等),并且加载对应的驱动程序,从而使得映像重启。
相反,根据本公开的系统和方法,使用VM模式在VM上创建的映像保留在创建映像的VM上的硬件信息。因为VM通常具有相似的硬件配置(例如,相同的磁盘驱动器和相同的网络接口卡),当使用VM模式在VM上创建的映像在具有相似硬件配置的另一VM上被重复使用时,硬件(例如,磁盘驱动器、网络接口卡等)和对应的驱动程序的发现(这通常会导致重启)是不必要的,因为使用VM模式创建的映像已经保留了该信息。因此,跳过硬件发现并且避免重启。
相应地,sysprepVM模式被用于通用化将被部署在相同虚拟机或管理程序上的虚拟硬盘(VHD)映像。VM模式支持虚拟机的快速部署。只有从虚拟机内部运行时才支持VM模式。VM模式不能被用于针对到任何其它计算机的部署准备VHD。
通常,IMC技术避免由于配置改变而引起的重启。此外,利用所保留的硬件信息准备(例如,使用VM模式)的映像避免由于硬件改变而引起的重启。
另外,可如下所示避免由于非OOBE或非白名单的服务而引起的映像的重启。白名单服务是在初始启动正在进行中时不需要重启映像的服务。专用化期望某些OS服务将被运行。如果专用化仅以那些服务运行而结束,则专用化假设OS服务方面没有发生任何改变。如果专用化注意到任何其它服务在运行,则映像重启。这种情况可通过以下方式来解决。可以将启用非白名单服务的动作配置为使用备选方式(例如,延迟一些初始化动作、延迟错误消息传递等)来执行(即,调谐),使得这些服务不被启用,并且避免重启。
下文现在参照图1和图2进一步详细说明本公开的系统和方法(包括上面解释的三个方法)。图1和图2只示出了本公开的系统和方法的示例实现。例如,云计算系统仅用作示例。本公开不限于云计算环境,并且不限于图1和图2的以下描述。相反,图1和图2的以下描述提供了本公开的系统和方法在云计算环境的上下文中的示例实现,并且该教导同样适用于独立和预置型计算机系统。在描述图1和图2之前,下文首先描述在图1和图2中示出的并且在图1和图2的描述中使用的一些术语。
云计算系统(CCS)是用于通过管理的数据中心的全球网络构建、部署和管理应用和服务的基础设施。CCS提供包括软件即服务(SaaS)、平台即服务(PaaS)、和基础设施即服务(IaaS)的服务,并且支持许多不同的编程语言、工具、和框架,包括第三方软件和系统。SaaS是软件授权和传送模型,在该软件授权和传送模型中,软件基于订阅而被授权,并且软件被集中托管。PaaS允许开发人员简易地发布和管理Web站点。IaaS允许用户针对流行的软件包来运行通用的基于多个OS的虚拟机(VM)和预先配置的机器映像。Hyper-V是其上可以运行多个虚拟机的管理程序的示例,其中管理程序控制硬件并且将资源分配到每个VM的操作系统。
ISO映像是光盘的档案文件,是由来自在光盘上的每个写入扇区的数据组成的磁盘映像类型,包括光盘文件系统。ISO映像文件通常具有文件扩展名.iso。名称ISO取自与CD-ROM媒体一起使用的ISO9660文件系统。ISO映像还可以包含通用磁盘格式(UDF)(ISO/IEC13346)文件系统(通常由DVD和蓝光盘使用)。ISO映像可以由磁盘映像软件从光盘创建,或由光盘编写软件从文件汇总中创建,或者通过使用转换从不同的磁盘映像文件创建。如本文所使用的,映像是ISO映像。
启动配置数据(BCD)存储是包含启动配置数据的固件独立式数据存储。BCD存储定义如何配置启动菜单。BCD存储是针对BCD对象和元素的名称空间容器,这些BCD对象和元素保持加载OS或运行其它启动应用所需要的信息。物理上,BCD存储是具有注册表储巢格式的二进制文件。这些BCD存储存在于包含启动映像的文件夹中。
注册表是针对存储操作系统(OS)以及针对选择使用注册表的应用的低层设置的分层数据库。OS内核、设备驱动程序、服务、和用户界面都可以使用注册表。简单地说,注册表包含被安装在所有版本的操作系统上的程序和硬件的信息、设置、选项、和其它值。例如,当安装程序时,包含设置(比如,程序的位置、其版本以及如何开始程序)的新子密钥都被添加到注册表中。
注册表包括两个基本元素:密钥和值。注册表密钥是类似于文件夹的容器对象。注册表值是类似于文件的非容器对象。密钥可包含值或其它密钥。注册表密钥的层次仅可以从已知的根密钥句柄来访问,该根密钥句柄被映射到由内核从存储的储巢预先装载的注册表密钥的内容,或被映射到在另一根密钥内的子密钥的内容,或被映射到对其包含的子密钥和值提供访问的注册服务或DLL。储巢或注册表储巢是在注册表中的密钥、子密钥、和值的逻辑组,该逻辑组具有包含其数据的备份的支持文件的集合。
现在详细描述图1和图2。图1示出了根据本公开的云计算系统(CCS)10的示例。云计算系统10包括云控制器12和主机(host machine)14。云计算系统10在主机14上如下创建虚拟机16。
图2示出了由图1的云计算系统10执行的基础设施即服务的虚拟机部署的顺序图的示例。在图1和图2中,云基础设施仅被示出作为云计算系统的示例。本公开的教导可以被应用于任何云基础设施或云计算系统。
云控制器12接收用于创建虚拟机16的操作系统(OS)映像。云控制器12将客户的设置和云计算系统的设置与操作系统映像集成在一起,并且将操作系统映像传送到主机14。图2仅示出了将客户的设置和云计算系统的设置与操作系统映像集成在一起并且将操作系统映像传送到主机14的一个示例。还预见了集成设置并且传送操作系统映像的其它方法。
操作系统映像18利用syeprepVM模式而被准备。还可以利用BCD中的IMC设备定义来预先配置映像。使用云门户20和SDK 22,客户发送客户选择(例如,针对虚拟机16的名称)。云计算系统10确定其它设置,诸如页面文件位置和SAN策略。云资源管理器24将客户选择转发给前端28的计算资源提供器26。然后,资源提供器26或前端28生成名为unattend.xml的安装应答文件,该文件具有计算机名称、页面文件、SAN策略;利用安装应答文件生成ISO;并且将ISO添加到在云存储30中的拥有CCS的存储账户中。
结构控制器32与资源提供器26和前端28一起提供、存储、传送、监测、和命令虚拟机(例如,在主机14上创建的虚拟机16)。结构控制器32具有两个主要目的:满足客户请求和策略,并且优化和简化部署。
主机14如下创建虚拟机16。主机代理(host agent)34从云存储30下载ISO映像。主机代理34挂载ISO映像并且通过调用部署IMC(DIMC)工具36生成IMC储巢注册表。DIMC工具36将到ISO映像中的应答文件的挂载路径作为输入,并且产生注册表储巢文件。注册表储巢文件包含针对客户的设置和云计算系统的设置的输入。然后,使用如下两个方法中的一个方法将注册表储巢文件注入到虚拟机16中。
如果操作系统映像是平台OS映像(即,由OS制造商准备和发布),则该映像与IMC设备的BCD条目和IMC储巢文件名称一起发布。主机代理34将IMC储巢文件复制到资源磁盘38上。将IMC储巢文件添加到资源磁盘38。将资源磁盘38附接到虚拟机16。
备选地,针对平台映像和客户映像(即,由客户准备的映像),通过使用虚拟化管理接口40将IMC储巢文件注入到虚拟机16中。该虚拟化管理接口40使用API来创建IMC合成设备(即,合成BIOS)42。该API还将来自IMC储巢文件的数据置于该合成设备上。
主机14包括硬件44和在硬件44上运行的管理程序46。主机14还具有主机代理34,主机代理34管理虚拟机16的生命周期(例如,创建和开启)。
一旦虚拟机16由主机代理34开启,在启动过程期间,操作系统启动加载程序读取IMC源磁盘38或包含IMC储巢数据(针对计算机名称、页面文件、和SAN空间策略的设置)的IMC合成设备42(统称为IMC设备),并且通过配置管理驱动程序49和对象管理器54将它们应用于虚拟机16的注册表。虚拟机16继续启动过程的其余部分。在初始启动之后,设置代理50运行。设置代理50使用在ISO映像上的应答文件来专用化正在被安装的操作系统。
设置代理50跳过硬件设备检测和安装,因为OS映像使用VM模式而被创建,这消除了重启。设置代理50发现,计算机名称已经被应用于注册表,并且因此避免了由于计算机名称引起的重启。设置代理50运行供应代理52,供应代理52尝试配置页面文件和SAN策略设置。供应代理52通过对象管理器54查询针对这些设置的注册表,并且发现这些设置已经注册表中被应用。因此,不会再次设置这些设置,并且避免重启。
设置代理50跟踪可以在配置过程期间运行的白名单服务列表。如果设置代理50检测到不在白名单中的新服务正在运行,它在设置过程的当前传递(即,专用化传递)结束时触发重启。供应代理52不会在提供虚拟机时触发任何额外服务的开启。因此,避免了重启。
此时,虚拟机16是在线的并且已经准备好由客户使用,而不需要在映像的第一次启动期间发生任何重启。相应地,通常,可以如下执行由于配置改变、硬件改变、和非OOBE服务引起的重启的消除。
1)消除由于计算机名称、页面文件、和SAN策略而引起的重启:客户在VM部署期间输入计算机名称。云计算系统确定配置设置(诸如页面文件位置和SAN策略)。在由云计算系统组件对计算机名称进行验证时,将计算机名称、页面文件位置、和SAN策略放入应答文件(例如,unattend.xml)中,该应答文件被放在ISO映像中,并且该ISO映像被存储在拥有CCS的账户中。在云计算系统主机节点上的VM创建期间,云计算系统组件下载ISO映像,挂载ISO映像,并且运行工具(例如,由OS提供的工具,诸如部署IMC(DIMC)),以针对这些配置设置生成对应的注册表输入。DIMC工具将到ISO映像中的应答文件(例如,unattend文件)的挂载路径作为输入,并且产生注册表储巢文件。然后,通过使用两个方法中的一个方法将注册表储巢文件注入到VM中。
a)如果OS映像是平台OS映像(即,由OS制造商准备和发布的OS映像),则该OS映像与IMC设备的BCD条目和IMC储巢文件名称一起被发布。将注册表储巢文件复制到硬盘(例如,IDE磁盘(也称为云资源磁盘))上,并且将该硬盘附接到VM。
b)针对平台映像和客户映像(即,由客户准备的映像),通过使用Hyper-VAPI将IMC注册表储巢文件注入到VM中。该API在VM上创建合成BIOS设备并且将IMC注册表储巢文件的内容置于在这个设备上。在每个方法中,在OS的启动期间,来自合适设备的IMC注册表储巢文件数据(以及因此的计算机名称、页面文件、和SAN策略的设置)被应用于注册表,并且消除了重启。
2)消除由于设备驱动程序安装而引起的重启:客户使用sysprepVM模式准备OS映像。VM模式允许硬件设备信息在sysprep通用化期间存留,这消除了在VM部署期间进行重启的需要,因为已经安装了硬件设备和设备驱动程序。
3)消除由于非OOBE服务而引起的重启:在OS设置专用化传递期间可能运行的专用化动作(例如,云供应代理)可以触发额外的服务来开启,以便完成这些动作。OS可能不会将这些服务列为可以在OOBE传递中运行的服务白名单。作为结果,在映像的启动期间从专用化传递转移至OOBE传递之前,OS通常要求重启映像。在本公开的系统和方法中,通过配置或调谐这些动作使得非OOBE服务不被要求来完成那些动作,非OOBE服务不再开启,并且重启被消除。
按照这种方式,本公开的系统和方法在初始机器配置期间消除OS的重启。利用在虚拟机中的IMC的应用,以及利用用于虚拟机的sysprepVM模式技术,消除重启结果是将VM更快地部署到云环境中,这使VM快速地在线以及被提供给客户。这改进了云计算系统的操作和性能,并且也增加了客户的满意度。
下面是其中本公开的系统和方法可以被实现的分布式计算环境的简单示例。贯穿整个描述,对诸如服务器、客户端设备、应用等术语的引用仅出于说明的目的。术语“服务器”和“客户端设备”应该被广泛地理解为表示包括一个或多个处理器和存储器的计算机设备,这些处理器和存储器被配置为执行机器可读指令。术语“应用”和“计算机程序”应该被广泛理解为表示由计算设备可执行的机器可读指令。
图3示出了分布式网络系统100的简化示例。该分布式网络系统100包括:网络110、一个或多个客户端设备120-1、120-2、…和120-M(统称为客户端设备120)(其中,M是大于或等于1的整数)、以及一个或多个服务器130-1、130-2、…和130-N(统称为服务器130)(其中,M是大于或等于1的整数)。网络110可以包括局域网(LAN)、广域网(WAN)(诸如互联网)、或包括基于云的网络的其它类型的网络(统一示出为网络110)。
服务器130中的一个或多个服务器可以操作来提供云计算系统,诸如上文参考图1和图2描述的云计算系统10。服务器130中的一个或多个服务器可执行代码或应用(例如,在图6中示出的方法200),以消除贯穿本公开所描述的OS映像的初始安装期间的重启。服务器130的一个或多个服务器还可以位于企业的不同部门和不同地理位置中。
客户端设备120经由网络110与服务器130中的一个或多个服务器通信。客户端设备120和服务器130中的一个或多个服务器可以使用到网络110的无线和/或有线连接来连接到网络110。例如,客户端设备120可包括智能手机、个人数字助理(PDA)、笔记本计算机、个人计算机(PC)等。
服务器130可以向客户端设备120提供多种服务。例如,服务器130可以执行由一个或多个供应商开发的多个软件应用。服务器130可以托管多个数据库,这些数据库由多个软件应用利用并且由客户端设备120的用户使用。
图4示出了客户端设备120的简化示例。客户端设备120通常可以包括中央处理器(CPU)或处理器150、一个或多个输入设备152(例如,键盘、触模板、鼠标等)、显示子系统154(包括显示器156)、网络接口158、存储器160、和大容量存储装置162。
网络接口158经由网络110将客户端设备120连接到分布式网络系统100。例如,网络接口158可以包括有线接口(例如,以太网接口)和/或无线接口(例如,Wi-Fi、蓝牙、近场通信(NFC)、或其它无线接口)。存储器160可以包括易失性或非易失性存储器、缓存、或其它类型的存储器。大容量存储装置162可以包括闪存、硬盘驱动器(HDD)、或其它大容量存储设备。
客户端设备120的处理器150执行操作系统(OS)164以及一个或多个客户端应用166。客户端应用166包括经由网络110将客户端设备120连接到服务器130的应用。客户端设备120经由网络110访问由服务器130执行的一个或多个应用。
图5示出了服务器130的简化示例。服务器130通常包括一个或多个CPU或处理器170、一个或多个输入设备172(例如,键盘、触摸板、鼠标等)、显示子系统174(包括显示器176)、网络接口178、存储器180、和大容量存储装置182。
网络接口178经由网络110将客户端设备130连接到分布式网络系统100。例如,网络接口178可以包括有线接口(例如,以太网接口)和/或无线接口(例如,Wi-Fi、蓝牙、近场通信(NFC)、或其它无线接口)。存储器180可以包括易失性或非易失性存储器、缓存、或其它类型的存储器。大容量存储装置182可包括闪存、一个或多个硬盘驱动器(HDD)、或者其它大容量存储设备。
服务器130的处理器170执行操作系统(OS)184和一个或多个服务器应用186,该服务器应用186包括用以消除贯穿本公开描述的OS映像的初始安装期间的重启的应用(例如,在图6中示出的方法200)。大容量存储装置182可以存储一个或多个数据库188,该数据库188存储由服务器应用186执行相应功能所使用的数据结构。
图6示出了用于消除由于配置改变、硬件改变、和非OOBE服务而引起的重启的方法200。如本文使用的,控件是指由在图3和图5中示出的服务器130中的一个或多个服务器执行的应用,其被配置为启动OS的用于创建虚拟机的映像以运行OS,并且在映像完成启动之前并且在所创建的VM开始运行OS之前,通过使用以下方法中的一个或多个来消除重启的发生:在映像的启动期间,为映像提供与VM相关联的配置设置,接收利用与虚拟机相关联的设备信息准备的映像,并且防止除预定服务之外的服务在映像的启动期间开启。
在202中,控件接收操作系统映像(OS映像或ISO映像),以用于在云计算系统(例如,在图1中示出的云计算系统10)中创建虚拟机。操作系统映像可以是平台OS映像(即,由OS制造商准备和发布的映像)或客户映像(即,由客户(优选地,通过使用VM模式)准备的映像)。在204中,控件接收包括将被指派给虚拟机的计算机名称的输入。在206中,控件确定包括页面文件位置和SAN策略的OS的配置设置。在208中,控件验证计算机名称。在210中,控件将计算机名称和配置设置放在应答文件(例如,unattend.xml)中。在212中,控件将应答文件放在ISO映像中。在214中,控件将ISO映像存储在云计算系统中(例如,在制造商的账户中)。
在216中,控件使用OS映像在云计算系统的主机节点上开始创建虚拟机。在218中,控件下载并且挂载ISO映像以创建虚拟机。在220中,控件生成注册表储巢文件(例如,通过运行工具,诸如DIMC)。在222中,通过将注册表储巢文件复制在云资源磁盘(例如,IDE磁盘)上,以及将磁盘附接到虚拟机(如果OS映像是平台映像),或者通过将注册表储巢文件复制在使用API(例如,Hyper-VWMI API)创建的合成BIOS上(如果OS映像是平台映像或客户映像),控件将注册表储巢文件注入到虚拟机中。
在224中,在OS映像的启动期间,控件将来自磁盘或BIOS的IMC注册表储巢文件数据应用于注册表,以消除通常由于配置改变而引起的重启。在226中,控件消除通常由于设备驱动程序安装而引起的重启,因为在映像准备期间保留了设备信息(例如,通过使用VM模式准备映像)。在228中,控件通过在启动期间调谐动作来消除由于非OOBE服务而引起的重启,使得非OOBE服务不被要求来完成那些动作。相应地,非OOBE服务不开启,并且重启被消除。在230中,OS映像完成启动,创建了虚拟机,并且被安装在虚拟机上的操作系统是在线的并且准备好在OS映像的单次启动中使用(即,无需ISO映像的任何重启)。
相应地,本公开的系统和方法被配置为:启动用于创建虚拟机的OS映像以运行OS,并且在映像完成启动之前并且在创建的虚拟机开始运行操作系统之前,通过在映像的启动期间为映像提供与虚拟机相关联的配置设置,来消除重启的发生。例如,配置设置包括:针对虚拟机的名称、针对与虚拟机相关联的页面文件的位置、以及与虚拟机相关联的SAN策略。
在启动映像之前,本公开的系统和方法被配置为:基于与虚拟机相关联的配置设置生成文件,并且将该文件注入到虚拟机中。系统和方法被配置为:在磁盘上存储文件并且将该磁盘附接到虚拟机,或者在虚拟机上创建BIOS设备并且将该文件存储在该BIOS设备上。系统和方法被配置来:在映像的启动期间,为映像提供来自被存储在被附接到虚拟机的磁盘上的文件或来自被存储在BIOS设备上的文件的配置设置。
优选地,利用保留的与虚拟机相关联的设备信息来准备映像。例如,设备信息包括关于与虚拟机相关联的硬盘驱动器和网络接口卡的信息。因此,映像已经包括根据设备信息的设备驱动程序,并且利用保留的设备信息准备的映像消除了在映像的启动期间设备发现和随后的重启的发生。
系统和映像被进一步配置为:在启动过程期间,调谐动作以防止除预定服务之外的服务(即,白名单或OOBE服务之外的服务)在映像的启动期间开始,以防止服务在映像的启动期间触发额外的重启(例如,通过不启用OOBE服务或通过延迟OOBE服务的完成,或通过在映像完成启动、创建了VM并且OS在VM上运行之后调度非OOBE服务的完成)。
上述描述在本质上仅仅是说明性的,不旨在以任何方式限制本公开、其应用、或者用途。本发明的广泛教导可以以各种不同的形式实施。因此,虽然本公开包括具体的示例,但本公开的真正范围不应该受到如此限制,这是因为在研究了附图、说明书、以及以下权利要求书之后,其它修改会变得显见。应当理解,方法中的一个或多个步骤可以以不同的顺序(或同时)被执行,而不会改变本公开的原理。进一步地,尽管实施例中的每个实施例在上面被描述为具有某些特征,但针对本公开的任何实施例描述的那些特征中的任何一个或多个特征都可以被实现在其它实施例中的任何实施例中和/或与其它实施例中的任何实施例的特征相组合,即使没有明确地描述该组合。换言之,所描述的实施例并不相互排斥,并且一个或多个实施例与另一实施例的置换仍然在本公开的范围内。
元件之间(例如,模块、电路元件、半导体层等之间)的空间和功能关系使用不同的术语来描述,包括“连接”、“啮合”、“耦合”、“相邻”、“紧挨着…”、“在…顶部”、“上方”、“下方”和“设置”。除非明确地被描述为“直接”,否则当在上述公开中描述第一元件和第二元件之间的关系时,该关系可以是在第一元件和第二元件之间不存在其它中间元件的直接关系,但也可以是在第一元件和第二元件之间存在(空间上或者功能上)一个或多个中间元件的间接关系。本文使用的短语“A、B和C中的至少一个”应该被解释为表示使用非排他性逻辑或的逻辑(A或B或C),并且不应该被解释为表示“A中的至少一个、B中的至少一个、和C中的至少一个”。
在图中,箭头的方向,如由箭头头部所指示,通常表示该图示所关注的信息流(诸如数据或指令)。例如,当元件A和元件B交换各种信息但从元件A传输至元件B的信息与图示有关时,箭头可从元件A指向元件B。该单向箭头并不意味着没有其它信息从元件B传输至元件A。进一步地,针对从元件A发送至元件B的信息,元件B可以向元件A发送针对该信息的请求或接收对该信息的确认。
术语“存储器”是术语“计算机可读介质”或“机器可读介质”的子集。如本文使用的术语“计算机可读介质”或“机器可读介质”不涵盖通过介质(诸如在载波上)传播的暂时的电信号或者电磁信号;术语“计算机可读介质”或“机器可读介质”由此可被认为是有形并且非暂时性的。非暂时性有形的计算机可读介质或机器可读介质的非限制性的示例是非易失性存储器电路(诸如,闪存电路、可擦除可编程只读存储器电路、或者掩膜式只读存储器电路)、易失性存储器电路(诸如,静态随机存取存储器电路或者动态随机存取存储器电路)、磁性存储媒体(诸如,模拟或者数码磁带或者硬盘驱动器)、以及光学存储媒体(诸如,CD、DVD、或者蓝光碟)。
在本申请中,被描述为具有特定属性或执行特定操作的装置元件被专门配置来具有那些特定属性和执行那些特定操作。具体地说,执行动作的元件的描述意味着该元件被配置为执行该动作。元件的配置可以包括对元件进行编程,诸如通过将指令编码在与该元件相关联的非暂时性的有形的计算机可读介质上。
在本申请中所描述的装置和方法可以部分或者完全地由专用计算机来实现,通过配置通用计算机以执行被体现在计算机程序中的特定的功能来创建专用计算机。以上描述的功能块、流程图组件、和其它元件用作软件规范,该软件规范可以由技师或者程序员的常规作业译为计算机程序。
计算机程序包括被储存在至少一个非暂时性的有形的计算机可读介质上的处理器可执行指令。计算机程序也可以包括或者依赖于所存储的数据。计算机程序可以涵盖与专用计算机的硬件相互作用的基本输入/输出系统(BIOS)、与专用计算机的特定设备相互作用的设备驱动程序、一个或者多个操作系统、用户应用、后台服务、后台应用等。
计算机程序可以包括:(i)将被解析的描述性文本,诸如HTML(超文本标记语言)、XML(可扩展标记语言)、或JSON(JavaScript对象表示法);(ii)汇编代码;(iii)由编译器从源代码生成的对象代码;(iv)用于由解释器执行的源代码;(v)用于由即时编译器编译和执行的源代码,等。仅作为示例,源代码可以使用来自语言的语法而被编写,语言包括C、C++、C#、Objective C、Swift、Haskell、Go、SQL、R、Lisp、Fortran、Perl、Pascal、Curl、OCaml、HTML5(第五版本超文本标记语言)、Ada、ASP(动态服务器页面)、PHP(PHP:超文本预处理器)、Scala、Eiffel、Smalltalk、Erlang、Ruby、VisualLua、MATLAB、SIMULINK、以及
根据35U.S.C.§112(f)的含义,在权利要求书中记载的任何元件都不旨在成为部件加功能元件,除非使用短语“用于...的部件”,或在方法权利要求中使用短语“用于…的操作”或“用于…的步骤”来明确记载元件。

Claims (15)

1.一种系统,包括:
处理器和存储器;以及
机器可读指令,所述机器可读指令被存储在所述存储器中,所述机器可读指令在由所述处理器执行时,被配置为:
启动操作系统的用于创建虚拟机的映像以运行所述操作系统;以及
在所述映像完成启动之前并且在所创建的所述虚拟机开始运行所述操作系统之前,通过在所述映像的所述启动期间为所述映像提供与所述虚拟机相关联的配置设置,消除重启的发生。
2.根据权利要求1所述的系统,其中所述配置设置包括针对所述虚拟机的名称、针对与所述虚拟机相关联的页面文件的位置、以及与所述虚拟机相关联的存储区域网络策略。
3.根据权利要求1所述的系统,其中所述机器可读指令被配置为:
在启动所述操作系统的所述映像之前:
基于与所述虚拟机相关联的所述配置设置生成文件;以及
将所述文件注入到所述虚拟机中;以及
在所述映像的所述启动期间,为所述映像提供来自所述文件的所述配置设置。
4.根据权利要求1所述的系统,其中所述机器可读指令被配置为:
在启动所述操作系统的所述映像之前:
基于与所述虚拟机相关联的所述配置设置生成文件;
将所述文件存储在磁盘上;以及
将所述磁盘附接到所述虚拟机;以及
在所述映像的所述启动期间,为所述映像提供来自被存储在被附接到所述虚拟机的所述磁盘上的所述文件的所述配置设置。
5.根据权利要求1所述的系统,其中所述机器可读指令被配置为:
在启动所述操作系统的所述映像之前:
基于与所述虚拟机相关联的所述配置设置生成文件;
在所述虚拟机上创建基本输入/输出设备;以及
将所述文件存储在所述虚拟机上的所述基本输入/输出设备上;以及
在所述映像的所述启动期间,为所述映像提供来自被存储在所述虚拟机上的所述基本输入/输出设备上的所述文件的所述配置设置。
6.根据权利要求1所述的系统,其中所述机器可读指令被配置为:
接收利用与所述虚拟机相关联的设备信息而被准备的所述映像,
其中所述设备信息包括关于与所述虚拟机相关联的硬盘驱动器和网络接口卡的信息,
其中所述映像包括根据所述设备信息的设备驱动程序,以及
其中利用设备而被信息准备的所述映像在所述映像的所述启动期间消除设备发现和之后的重启的发生。
7.根据权利要求1所述的系统,其中所述机器可读指令被配置为:防止除预定服务之外的服务在所述映像的所述启动期间开启,以防止所述服务在所述映像的所述启动期间触发额外的重启。
8.一种方法,包括:
启动操作系统的用于创建虚拟机的映像以运行所述操作系统;以及
在所述映像完成启动之前并且在所创建的所述虚拟机开始运行所述操作系统之前,通过在所述映像的所述启动期间为所述映像提供与所述虚拟机相关联的配置设置,消除重启的发生。
9.根据权利要求8所述的方法,还包括:
在启动所述操作系统的所述映像之前:
基于与所述虚拟机相关联的所述配置设置生成文件;以及
将所述文件注入到所述虚拟机中;以及
在所述映像的所述启动期间,为所述映像提供来自所述文件的所述配置设置。
10.根据权利要求8所述的方法,还包括:
在启动所述操作系统的所述映像之前:
基于与所述虚拟机相关联的所述配置设置生成文件;
将所述文件存储在磁盘上;以及
将所述磁盘附接到所述虚拟机;以及
在所述映像的所述启动期间,为所述映像提供来自被存储在被附接到所述虚拟机的所述磁盘上的所述文件的所述配置设置。
11.根据权利要求8所述的方法,还包括:
在启动所述操作系统的所述映像之前:
基于与所述虚拟机相关联的所述配置设置生成文件;
在所述虚拟机上创建基本输入/输出设备;以及
将所述文件存储在所述虚拟机上的所述基本输入/输出设备上;以及
在所述映像的所述启动期间,为所述映像提供来自被存储在所述虚拟机上的所述基本输入/输出设备上的所述文件的所述配置设置。
12.根据权利要求8所述的方法,还包括:
接收利用与所述虚拟机相关联的设备信息而被准备的所述映像,
其中所述设备信息包括关于与所述虚拟机相关联的硬盘驱动器和网络接口卡的信息,
其中所述映像包括根据所述设备信息的设备驱动程序,以及
其中利用设备信息而被准备的所述映像在所述映像的所述启动期间消除设备发现和之后的重启的发生。
13.根据权利要求8所述的方法,还包括:防止除预定服务之外的服务在所述映像的所述启动期间开启,以防止所述服务在所述映像的所述启动期间触发额外的重启。
14.一种系统,包括:
处理器和存储器;以及
机器可读指令,所述机器可读指令被存储在所述存储器中,所述机器可读指令在由所述处理器执行时,被配置为:
在启动操作系统的用于创建虚拟机的映像以运行所述操作系统之前:
基于与所述虚拟机相关联的配置设置生成文件,其中所述配置设置包括针对所述虚拟机的名称、针对与所述虚拟机相关联的页面文件的位置、以及与所述虚拟机相关联的存储区域网络策略;以及
将所述文件注入到所述虚拟机中;以及
在所述映像的所述启动期间为所述映像提供来自所述文件的所述配置设置,以在所述映像完成启动之前并且在所创建的所述虚拟机开始运行所述操作系统之前消除重启的发生。
15.根据权利要求14所述的系统,其中所述机器可读指令被配置为:
接收利用与所述虚拟机相关联的设备信息而被准备的所述映像以在所述映像的所述启动期间消除设备发现和之后的重启的发生;以及
防止除预定的服务之外的服务在所述映像的所述启动期间开启,以防止所述服务在所述映像的所述启动期间触发额外的重启。
CN201780071225.8A 2016-11-29 2017-11-22 用于在操作系统的初始机器配置期间消除重启的系统和方法 Withdrawn CN109983434A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662427527P 2016-11-29 2016-11-29
US62/427,527 2016-11-29
US15/598,889 US20180150306A1 (en) 2016-11-29 2017-05-18 Systems and methods for eliminating reboot during initial machine configuration of operating systems
US15/598,889 2017-05-18
PCT/US2017/062917 WO2018102206A1 (en) 2016-11-29 2017-11-22 Systems and methods for eliminating reboot during initial machine configuration of operating systems

Publications (1)

Publication Number Publication Date
CN109983434A true CN109983434A (zh) 2019-07-05

Family

ID=62190849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780071225.8A Withdrawn CN109983434A (zh) 2016-11-29 2017-11-22 用于在操作系统的初始机器配置期间消除重启的系统和方法

Country Status (4)

Country Link
US (1) US20180150306A1 (zh)
EP (1) EP3549014A1 (zh)
CN (1) CN109983434A (zh)
WO (1) WO2018102206A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024065531A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Server, end client, methods and program code

Families Citing this family (23)

* 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
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US10877771B2 (en) 2018-11-26 2020-12-29 Red Hat, Inc. Virtual machine booting using disk metadata
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
US11797329B2 (en) 2019-11-07 2023-10-24 Microsoft Technology Licensing, Llc Pausing deployment of a virtual machine prior to a machine name dependency
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
CN113810209B (zh) * 2020-06-12 2024-03-22 戴尔产品有限公司 通过带外信道进行的服务器初始配置
US11528186B2 (en) * 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
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
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2511012B (en) * 2011-12-08 2014-12-10 Ibm Method and system for patching a virtual image
US9639384B2 (en) * 2013-08-20 2017-05-02 Vmware, Inc. Method and system for fast provisioning of virtual desktop
US9477507B2 (en) * 2013-12-20 2016-10-25 Vmware, Inc. State customization of forked virtual machines
US9323565B2 (en) * 2013-12-20 2016-04-26 Vmware, Inc. Provisioning customized virtual machines without rebooting

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024065531A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Server, end client, methods and program code

Also Published As

Publication number Publication date
WO2018102206A1 (en) 2018-06-07
US20180150306A1 (en) 2018-05-31
EP3549014A1 (en) 2019-10-09

Similar Documents

Publication Publication Date Title
CN109983434A (zh) 用于在操作系统的初始机器配置期间消除重启的系统和方法
US11861375B2 (en) Configuration for application using microservices
CN101378400B (zh) 实现桌面应用和Web应用聚合的方法、服务器和系统
US8413139B2 (en) Programming model for application and data access and synchronization within virtual environments
KR101963912B1 (ko) 라이브러리 운영체제들과의 애플리케이션 호환성을 가능하게 하는 기법
US10242023B2 (en) Programming model for synchronizing browser caches across devices and web services
JP6192534B2 (ja) 仮想アプリケーション拡張ポイント
CN102413167B (zh) 虚拟和物理企业系统映像
US8429639B2 (en) Image-based software update
EP3777086A1 (en) Method for managing application configuration state with cloud based application management techniques
CN111984269B (zh) 提供应用构建服务的方法及应用构建平台
US20080066063A1 (en) System and method for preparing runtime checks
WO2019060228A1 (en) SYSTEMS AND METHODS FOR SERVICE INSTANCATION ON SERVICES
WO2022037612A1 (zh) 提供应用构建服务的方法及应用构建平台、应用部署方法和系统
US10817319B1 (en) Compatibility-based configuration of hardware with virtualization software
CN111984270A (zh) 应用部署方法和系统
US20200150950A1 (en) Upgrade managers for differential upgrade of distributed computing systems
CN105144085A (zh) 针对存储设备的软件框架
US9350596B2 (en) On-demand tethered greedy virtual application appliance
US20210141657A1 (en) Pausing deployment of a virtual machine prior to a machine name dependency
JP2019133509A (ja) コンテナ収容装置、システム、コンテナ収容方法及びプログラム
CN117762524A (zh) 一种在Windows系统上共享GPU作为边缘计算AI推理节点的方法
CN113032094A (zh) 一种cad容器化方法、装置及电子设备
CN117149350A (zh) k8s集群的部署方法、集群快照的生成方法及设备
CN115756510A (zh) 基于docker的系统升级方法、装置、电子设备和存储介质

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20190705