CN102200921A - 智能引导设备选择和恢复 - Google Patents

智能引导设备选择和恢复 Download PDF

Info

Publication number
CN102200921A
CN102200921A CN2011100813732A CN201110081373A CN102200921A CN 102200921 A CN102200921 A CN 102200921A CN 2011100813732 A CN2011100813732 A CN 2011100813732A CN 201110081373 A CN201110081373 A CN 201110081373A CN 102200921 A CN102200921 A CN 102200921A
Authority
CN
China
Prior art keywords
boot
virtual machine
path
stored
operating system
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
CN2011100813732A
Other languages
English (en)
Other versions
CN102200921B (zh
Inventor
A·沃肯汀
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN102200921A publication Critical patent/CN102200921A/zh
Application granted granted Critical
Publication of CN102200921B publication Critical patent/CN102200921B/zh
Active 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/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
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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]

Abstract

公开了智能引导设备选择和恢复的技术。描述了用于恢复虚拟机状态以及引导信息的技术,引导信息用于在信息已经丢失或不存在的场合下在各系统上引导已安装的客操作系统。

Description

智能引导设备选择和恢复
技术领域
本发明涉及虚拟机,尤其涉及引导设备选择和恢复。
背景技术
虚拟机系统存储虚拟机的整个状态,包括配置信息、快照、包括它们所连接到的网络在内的网络适配器的数量以及各虚拟盘的内容,例如,以各种虚拟盘文件形式呈现给各虚拟机的数据表示。通常,虚拟盘文件的数据部分被存储在与虚拟机配置信息分离的文件中。由于大多数最终用户通常仅对该数据感兴趣,且不对例如虚拟机的状态信息感兴趣,管理员定期丢弃配置信息文件且仅保留存储虚拟盘数据的文件。
当丢失了状态信息时,管理员不得不再次创建状态信息;如今这是可重新创建的,但正变得日益令人沮丧,这是因为虚拟机从不是虚拟硬盘(VHD)文件的设备开始引导,且虚拟固件越来越多地存储更多的状态信息。因此,期望用于确保不丢失用于虚拟机的配置信息的技术。
机器(虚拟的和物理的)正向使用符合统一可扩展固件接口(UEFI)规范的固件发展。遵循UEFI的固件包括用于引导在非易失性随机存取存储器(NVRAM)中的操作系统的附加信息(例如到引导加载器的路径)。如果引导盘被移动到另一机器,则在可以引导操作系统之前需要重新填充此信息。例如,在物理环境中,当物理机从存储区域网(SAN)引导且在另一物理机上克隆和引导SAN上的操作系统时,此信息缺失。类似地,此问题在虚拟机环境中会加剧,这是因为管理员通常将操作系统的公共镜像部署到多个虚拟机,并将各虚拟机从一个物理主机移动到另一物理主机。因此,期望使用存储在引导过程中所使用的信息的固件来增强可迁移的操作系统的引导过程的技术。
发明内容
本公开内容的一个示例实施例描述一种方法。在此示例中,该方法包括但不限于,在引导客操作系统之前检测被存储在固件中的到引导加载器的路径,其中引导加载器被配置成加载被存储在引导盘上的作系统,其中客操作系统被配置成在虚拟机中执行;以及在引导客操作系统之前将到引导加载器的路径存储在引导盘上。除了前述之外,权利要求、附图和文本中所描述的其他方面也形成本公开内容的部分。
本公开内容的一个示例实施例描述一种方法。在此示例中,该方法包括但不限于,在虚拟机中引导客操作系统之前检测被存储在用于客操作系统的引导盘上的虚拟机配置信息;根据所检测的虚拟机配置信息的至少部分实现虚拟机;以及在虚拟机中引导客操作系统。除了前述之外,权利要求、附图和文本中所描述的其他方面也形成本公开内容的部分。
本公开内容的一个示例实施例描述一种方法。在此示例中,该方法包括但不限于,在引导操作系统之前检测被存储在用于该操作系统的引导盘上的配置信息,其中配置信息描述实现该操作系统的物理机;根据配置信息的至少部分实现虚拟机;以及在虚拟机中作为客操作系统而引导该操作系统。除了前述之外,权利要求、附图和文本中所描述的其他方面也形成本公开内容的部分。
本领域中的技术人员应明白,本公开内容的一个或多个各种方面可以包括但不限于用于实现本公开内容的在此所引用的各方面的电路和/或编程;取决于系统设计者的设计选择,该电路和/或编程可以实际上是被配置成实现在此所引用的各方面的硬件、软件和/或固件的任何组合。
前述是概述,且因而根据需要含有简化、泛化和细节的省略。本领域的技术人员应明白,该概述仅是说明性的,且不旨在以任何方式是限制性的。
附图说明
图1叙述其中可以实现本公开内容的各方面的示例计算机系统。
图2叙述用于实践本公开内容的各方面的操作环境。
图3叙述用于实践本公开内容的各方面的操作环境。
图4阐释示例引导盘。
图5叙述用于实践本公开内容的各方面的操作环境。
图6叙述用于实践本公开内容的各方面的操作环境。
图7叙述用于实践本公开内容的各方面的操作过程。
图8叙述图7的操作过程的替代实施例。
图9叙述用于实践本公开内容的各方面的操作过程。
图10叙述图9的操作过程的替代实施例。
图11叙述用于实践本公开内容的各方面的操作过程。
图12叙述图11的操作过程的替代实施例。
具体实施方式
各实施例可以在一个或多个计算机系统上执行。图1和下列讨论旨在提供其中可以实现本公开内容的合适的计算环境的简要而一般的描述。
贯穿本公开内容使用的术语电路可以包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器和用于操作这样的硬件的固件等的硬件组件。术语电路还可以包括微处理器、专用集成电路和/或一个或多个逻辑处理器,例如由固件和/或软件配置的多核心通用处理单元的一个或多个核心。可以由实现可操作为执行从存储器加载的(诸)功能的逻辑的指令配置(诸)逻辑处理器,存储器例如RAM、ROM、固件和/或大容量存储。在其中电路包括硬件和软件的组合的示例实施例中,实施者可以编写实现逻辑的源代码,源代码随后被编译成可由逻辑处理器执行的机器可读代码。由于本领域中的技术人员可以明白,现有技术已经发展到其中硬件实现的功能或软件实现的功能之间存在很少差异的程度,选择硬件还是软件来实施在此所描述的功能仅仅是设计选择。换一种说法,由于本领域中的技术人员可以明白,软件过程可以被变换成等效的硬件结构,且硬件结构本身可以被变换成等效的软件过程,所以选择硬件实现还是软件实现就留给实现者。
现在参见图1,叙述示例性计算系统100。计算机系统100可以包括逻辑处理器102,例如执行核心。尽管阐释一个逻辑处理器102,但在其他实施例中,计算机系统100可以具有多个逻辑处理器,例如每个处理器基板多个执行核心和/或各自具有多个执行核心的多个处理器基板。如该图所示出,可以由将各种系统组件耦合到逻辑处理器102的一个或多个系统总线将各种计算机可读存储介质110互连起来。各系统总线可以是若干类型的总线结构中的任何总线结构,包括使用各种总线体系结构中的任何总线体系结构的存储器总线或存储器控制器、外围总线和局部总线。在各示例实施例中,计算机可读存储介质110可以包括例如随机存取存储器(RAM)104、存储设备106、固件108和可移动存储设备118,存储设备106例如机电硬盘驱动器、固态硬盘驱动器等等,固件108例如闪速RAM或ROM,可移动存储设备118诸如例如CD-ROM、软盘、DVD、闪速驱动器、外部存储设备等等。本领域的技术人员应明白,可以使用其他类型的计算机可读存储介质,例如磁带盒、闪存卡、数字视频盘和贝努利盒式磁带。
计算机可读存储介质110可以提供诸如实施下列各图中描述的管理器250的可执行指令等的用于计算机100的处理器可执行指令122、数据结构、程序模块和其他数据的非易失性和易失性存储。含有例如在引导期间帮助在计算机系统100内的各元件之间传递信息的基本例程的基本输入/输出系统(BIOS)120可以被存储在固件108中。大量程序可以被存储在固件108、存储设备106、RAM 104和/或可移动存储设备118上,且可由逻辑处理器102执行,包括操作系统和/或应用程序程序。
可以由计算机100通过输入设备116接收命令和信息,输入设备116可以包括但不限于键盘和定位设备。其他输入设备可以包括话筒、操纵杆、游戏手柄、扫描仪等等。这些和其他输入设备常常通过被耦合到系统总线的串行端口接口而被连接到逻辑处理器102,但是可以由诸如并行端口、游戏端口或通用串行总线(USB)等的其他接口连接。显示器或其他类型的显示设备也可以经由诸如视频适配器等的接口而被连接到系统总线,视频适配器可以是图形处理器112的部分或被连接到图形处理器112。除了显示器之外,计算机通常包括诸如扬声器和打印机等的其他外围输出设备(未示出)。图1的示例性系统还可以包括主机适配器、小型计算机系统接口(SCSI)总线和被连接到SCSI总线的外部存储设备。
计算机系统100可以在使用到诸如远程计算机等的一个或多个远程计算机的逻辑连接的网络化环境中操作。远程计算机可以是另一计算机、服务器、路由器、网络PC、对等设备或其他普通网络节点,且通常可以包括以上相对于计算机系统100描述的元件的许多或全部。
当在LAN或WAN连网环境中使用时,计算机系统100可以通过网络接口卡114而被连接到LAN或WAN。可以内置或外置的NIC 114可以被连接到系统总线。在网络化环境中,相对于计算机系统100或其部分叙述的程序模块可以被存储在远程存储器存储设备中。应明白,在这里描述的各网络连接是示例性的,且可以使用在各计算机之间建立通信链路的其他手段。此外,尽管预想本公开内容的众多实施例尤其适用于计算机化系统,但此文档中不存在旨在将本公开内容限制在这样的实施例的内容。
现在参见图2和图3,它们描绘被配置成实现虚拟机的计算机系统200和300的高级框图。在本公开内容的各实施例中,计算机系统200和300可以包括在图1和下列中描述的元件。如由各图所示出的,可以存在不同的体系结构;然而,它们一般地具有相似的组件。例如,图2阐释其中在本领域中也可以被称为虚拟机监视器的管理程序被分成微内核202和父分区204的操作环境,而图3将管理程序304阐释成包括图2的父分区204中出现的元件。
转到图2,管理程序微内核202可以被配置成控制和仲裁对计算机系统200的硬件的访问。宽泛地,管理程序微内核202可以生成被称为诸如子分区1到子分区N(其中N是大于1的整数)等的分区的执行环境。在各实施例中,子分区是受管理程序微内核202支持的基本隔离单位。即,每一子分区可以被映射到受管理程序微内核202控制的一组硬件资源,例如存储器、设备、逻辑处理器周期等等,且管理程序微内核202可以隔离一个分区中的各进程,使之不能访问另一分区的资源,例如,在一个分区中的客操作系统可以与另一分区中的存储器隔离开来,且因而不能够检测在其分区之外的存储器地址。在各实施例中,管理程序微内核202可以是单机软件产品、操作系统的部分、被嵌入在主板的固件内、专用集成电路或其组合。
在所叙述的示例中,父分区组件204也可以被认为是类似于Xen开源管理程序的0域。通过使用在开源社区中通常被称为后端驱动程序的虚拟化服务提供器228(VSP),在此操作环境中的父分区204可以被配置成将资源提供给在子分区1-N中执行的各客操作系统。宽泛地,VSP 228可以被用于通过虚拟化服务客户端(VSC)(在开源社区中通常被称为前端驱动器)将对各硬件资源的接口复用并且经由通信协议与各虚拟化服务客户端通信。如各图所示出的,各虚拟化服务客户端可以在各客操作系统的上下文内执行。这些驱动程序与客机中的剩余的驱动程序不同之处在于,它们可以配备有管理程序,而客机则没有。还阐释了设备仿真器234,仅当硬件实际上对虚拟机来说不可用时,设备仿真器234被用于支持被设计为与硬件交互的设备驱动程序。在此示例中,体系结构父分区204可以门控(gate)对底层硬件的访问。
微内核202可以通过限制客操作系统的系统存储器的视图来实施分区。客存储器是由管理程序控制的存储器的分区视图。客物理地址可以由系统物理地址(SPA)即物理计算机系统的存储器支持,这由管理程序管理。如该图所示出的,在一实施例中,GPA(客物理地址)和SPA可以被安排在存储器块即一个或多个存储器页面中。当客机使用其页表写入块时,根据由管理程序使用的系统范围的页表实际上将数据存储在具有不同的系统地址的块中。
每一子分区可以包括一个或多个虚拟处理器(230和232),各客操作系统(220和222)可以管理和调度线程以便在其上执行。一般地,各虚拟处理器是提供具有特定体系结构的物理处理器的表示的可执行指令和关联的状态信息。例如,一个虚拟机可以具有拥有英特尔x86处理器的特性的虚拟处理器,而另一虚拟处理器可以具有PowerPC处理器的特性。在此示例中,各虚拟处理器可以被映射到计算机系统的各逻辑处理器,以使得实现各虚拟处理器的各指令将受各逻辑处理器支持。因而,在包括多个逻辑处理器的实施例中,各虚拟处理器可以由各逻辑处理器同时执行,尽管例如其他逻辑处理器执行管理程序指令。分区中虚拟处理器和存储器的组合可以被认为是虚拟机。
各客户操作系统可以包括任何操作系统,诸如例如来自
Figure BSA00000464571800061
开源社区等等的操作系统。各客操作系统可以包括用户/内核的操作模式,且可以具有可以包括调度程序、存储器管理器等等在内的内核。一般而言,内核模式可以包括准许对至少特许的处理器指令的访问的逻辑处理器中的执行模式。每一客操作系统可以具有关联文件系统,关联文件系统上存储有诸如终端服务器、电子商务服务器、电子邮件服务器等等的应用程序以及各客操作系统本身。各客操作系统可以调度各线程以便在各虚拟处理器上执行,且这样的应用程序的实例可以实现。
现在参见图3,其阐释以上在图2中所描述的体系结构的替代体系结构。图3叙述与图2的那些组件类似的组件;然而,在此示例实施例中,管理程序304可以包括微内核组件和来自图2的父分区204的诸如虚拟化服务提供器228和设备驱动程序224等的各组件,同时管理操作系统302可以含有例如用于配置管理程序304的配置实用程序。在此体系结构中,管理程序304可以执行与图2的管理程序微内核202相同的或相似的功能;然而,在此体系结构中,管理程序304可以被配置成将资源提供给在各子分区中执行的各客操作系统。图3的管理程序304可以是单机软件产品、操作系统的部分、被嵌入在主板的固件内,或者管理程序304的部分可由专用集成电路实现。
在本公开内容的各实施例中,各引导盘可以被配置成包括到用于加载操作系统的到引导加载器的路径和用于主存其的虚拟机/物理机的配置信息。以此方式,当移动引导盘时可以发现引导加载器,且主存操作系统的执行环境例如硬件或虚拟化硬件可以被配置成反映操作系统所期望的操作环境。
现在转到图4,其阐释操作系统被存储在其上的示例引导盘400。在虚拟化实施例中可以是客OS的操作系统可以被存储在该盘上的操作系统分区408中。当操作系统402被安装在引导盘400上时,其可以创建引导分区410并将用于加载操作系统402的引导加载器程序存储在某一目录中,例如IDE adaptor\Disk0\...\EFI\bootloader.efi中,并将标识到引导加载器412的此路径的信息写入到引导固件404中。由于这些程序由各操作系统创建,每一类型的操作系统可以将引导加载器置于其分区408内的不同位置中。
操作系统402可以将到引导加载器412的路径存储在引导存储416例如非易失性RAM(NVRAM)中,且配置引导次序列表。引导次序列表可以包括到可以引导的各设备的设备路径的经排序的列表,可以引导的各设备例如盘、CD-ROM、网络化DISK0、DISK0、DISK1等等。在本公开内容的各实施例中,引导管理器406可以被重新配置成使得该路径被分解成两个变量:设备变量例如IDE adaptor\Disk0\以及目录变量例如...\EFI\bootloader.efi。
在操作系统402重启之后,可以执行指示引导管理器406的指令。引导固件404可以被集成到计算机系统的主板,或者在虚拟化实施例中,通常被存储在引导固件404中的各指令可以作为虚拟固件而被注入到虚拟机的客物理地址中。在一实施例中,引导管理器406指令可以被加载到存储器,且这些指令可以被配置成使用该路径来查找引导加载器412并运行它。
在本公开内容的一个实施例中,引导管理器406可以将到引导加载器412的路径存储在引导分区410中。例如,引导管理器406可以被配置成将到引导加载器412的路径写入到诸如配置信息存储414等的引导分区410上的已知位置中。当引导管理器406运行时,它可以检查此已知位置并判断其是否包括路径。然后,引导管理器406可以将存储在配置信息存储414中的路径与存储在引导存储416中的路径进行比较,并判断哪一个具有最新的时间戳。在本公开内容的各实施例中,引导管理器406可以被配置成使用较新的路径来试图查找引导加载器412。
除了查找路径之外,在一实施例中,引导管理器406可以被配置成将存储在配置信息存储414中的信息与存储在引导存储416中的信息同步起来。例如,在配置信息存储414中的到引导加载器412的路径是较新的情况中,引导加载器406可以将该路径复制到引导存储416。在相反的情况中,当在引导存储416上的路径具有较新的时间戳时,引导加载器406可以将该路径复制到配置信息存储414。
路径可以出于各种原因而改变。例如,管理员可以在物理上将引导盘从一个主板移动到另一主板。在数据中心中,例如,管理员可以创建web服务器并多次克隆引导盘,并将每一引导盘置于虚拟机中。在这两种情况中,引导固件404可以不包括引导盘的引导变量,且操作系统将不加载。在另一示例实施例中,引导管理器406可以在引导分区410中检测因为路径的设备部分错误而稍微错误的路径。在此示例实施例中,引导管理器406可以为该路径生成新的设备部分并将其存储在引导存储416中。然后,引导管理器406可以将此新近创建的引导路径复制到配置信息存储414。
除了同步到引导加载器412的路径之外,引导管理器406还可以被配置成检测用于操作系统被配置成在其上运行的物理机或虚拟机的配置信息和/或最后运行OS的机器的特性。例如,在物理机实施例中,配置信息可以包括以太网卡的MAC地址、物理机所连接到的网络、该计算机系统中的RAM的量、该系统中的处理器的量等等。在此示例实施例中,引导管理器406可以在逻辑处理器上执行并检测配置信息存储414。然后,例如,引导管理器406可以接收物理机的状态信息,并将以太网卡设置成与具体的MAC地址通信,并加载操作系统402。
在虚拟化示例实施例中,配置信息存储414可以包括诸如虚拟机中的虚拟处理器的数量和类型、与虚拟机相关联的RAM的量、各种仿真器例如IDE仿真器的状态等等的信息。引导管理器406可以在配置信息存储414中检测该信息,并使用它来设置具有操作系统502(在此示例中是客操作系统)所预期的配置的虚拟机。在此示例实施例中,管理程序可以使用策略来判断是否实例化符合配置信息存储414中的信息的虚拟机。例如,管理程序可以被配置成给予虚拟机最大量的RAM或虚拟处理器。以此方式,不会给予虚拟机不合理的量的资源。
正如该图所阐释的,在各示例实施例中,配置信息存储414可以被存储在引导盘400上的各种位置中。例如,在其中父分区是虚拟化存储的虚拟化实施例中,配置信息存储414可以位于封装引导盘400的虚拟硬盘驱动器(VHD)文件420中或引导盘400上的任何其他位置。在此情况中,引导盘400将包括与VHD文件420相关联的基础设施。例如,VHD文件420指定可以被封装在物理存储中的单个文件内的虚拟机硬盘。在此示例中,引导盘400将是被存储在存储上的文件,且虚拟机存储服务例如图2或图3的VSP可以解析该文件并实现可以作为物理存储而被暴露给引导管理器406的盘。由虚拟机存储服务生成的各虚拟硬盘可以按照看上去像是它被本地附连的方式而被附连到引导管理器406可访问的总线。
在另一虚拟化实施例中,操作系统402可以将iSCSI目标用作引导盘400。在此示例实施例中,配置信息存储414可以位于引导分区410中、位于OS分区408和引导分区410两者外的存储区域中和/或位于操作系统402的文件系统外。引导分区410提供最灵活的存储选项,这是因为在使用引导分区410来存储OS加载器412的实施例中,可以一起布置配置信息存储414。当配置信息存储414位于各分区外时,该信息可能被意外地盖写,这是因为文件管理工具不预期数据被存储在各分区外。当配置信息存储414位于文件系统418内时,盘管理工具不会意外地破坏该信息,然而,引导管理器406将需要被配置成解释文件系统418并且知道配置信息被存储在文件系统418内的何处。
现在转到图5,其阐释用于实践本公开内容的各方面的虚拟化环境。简要地,图5示出管理程序500,管理程序500可以具有与图2或图3中所描述的体系结构相似的体系结构,即,管理程序可以包括分离的父分区204和微内核202。管理程序500可以被配置成实现虚拟机502并将引导固件516置于客物理地址510。虚拟处理器508可以运行引导管理器代码406。然后,引导管理器指令可以执行贯穿本公开内容描述的功能。
图6阐释用于实践本公开内容的各方面的另一操作环境。图6示出与图5中描述的虚拟化环境相似的虚拟化环境。另外,图6示出物理计算机系统600,包括诸如NIC 114、图形处理单元112、一个或多个逻辑处理器102、RAM 104和持久性存储106等的硬件。在此示例实施例中,操作系统602可以从物理环境迁移到虚拟环境。在此示例中,描述物理机600的状态的信息可以由操作系统602创建并与操作系统602一起被存储在存储设备106中。另外,物理机600的固件还可以被配置成将到OS 602的引导加载器的路径存储在存储设备106上与上面类似的预先确定的位置中。管理员可以复制存储设备106上的该镜像,并将其存储在例如VHD文件420中,且虚拟机502可以被配置成反映物理机600的物理环境。在此示例中,当首先迁移操作系统602时,引导管理器406可以检测配置信息存储414中的信息,并将例如到引导加载器412的路径复制到引导存储416,且将物理机600的配置信息发送给管理程序500。
下列是描述各操作过程的一系列流程图。为便于理解,各流程图被组织成使得初始流程图经由总体“大图片”视点呈现各实现,且随后的流程图提供进一步附加物和/或细节。此外,本领域中的技术人员可以明白,由虚线叙述的操作过程被认为是可选的。
现在转到图7,其阐释用于实践本公开内容的各方面的操作过程,包括操作700、702和704。操作700开始该操作过程,且操作702示出在引导客操作系统之前检测被存储在固件中的到引导加载器的路径,其中引导加载器被配置成加载被存储在引导盘上的客操作系统,其中该客操作系统被配置成在虚拟机中执行。例如,且转到图5,引导管理器406可以由虚拟处理器508执行,且可以检测被存储在固件516中的描述到引导加载器412的路径的信息。例如,在本公开内容的一实施例中,客操作系统504近来已经被安装在引导盘400上,且已经将描述引导盘400上的用于引导加载器412的路径的对引导加载器412的引导变量存储在引导存储416中,使得可以找到该引导加载器。一旦重启,引导管理器406可以运行和查找该引导变量。
转到操作704,其阐释在引导客操作系统之前将到引导加载器的路径存储在引导盘上。例如,且继续图7的描述,在一实施例中,引导管理器406可以将引导盘上的到引导加载器412的路径写在引导盘400上的预先确定的位置中,使得其可以稍后被例如管理程序500和/或引导管理器406找到。例如,引导管理器406可以在加载客操作系统504之前将该路径存储在引导盘400上,这是因为在该点处引导管理器406可以对引导盘400写入。在客操作系统504加载之后,它将具有引导盘400的控制权。
在此示例实施例中,如果引导盘400被迁移到另一虚拟机或物理机,可以伴随它而发送到引导加载器412的路径。如果管理程序500被配置成生成虚拟机502并在其上下文内加载客操作系统504,则引导管理器406和/或管理程序500可以被配置成检测配置信息存储414并获取存储在引导盘400上的所存储的到引导加载器412的路径。引导管理器406和/或管理程序500可以执行和生成描述到引导加载器412的路径的设备变量和目录变量。然后,引导管理器406可以运行和使用新近创建的变量来查找引导加载器412。
现在转到图8,其阐释图7的操作过程的替代实施例,包括另外的操作806-818。转到操作806,其示出用存储在引导固件中的不同路径来更新引导盘上到引导加载器的路径。例如,在本公开内容的一实施例中,用于存储到引导加载器412的路径的电路可以包括用于用存储在引导固件516中的信息来更新该路径的电路。例如,且转到图5,当引导客OS 504并检测到被存储在配置信息存储414中的到引导加载器412的路径是错误的时候,管理程序500可以将虚拟固件516代码加载到客物理地址510。例如,配置信息存储414中的路径可能存储了路径的错误的设备部分。在此示例中,引导管理器406可以被配置成确定指向引导加载器412的路径的目录部分并更新该路径的设备部分且将其存储在引导存储416。然后,引导管理器406可以将新近创建的路径复制到配置信息存储414。
继续图8的描述,操作808示出用存储在引导盘上的不同路径来更新固件上到引导加载器的路径。例如,在本公开内容的一实施例中,用于存储到引导加载器412的路径的电路可以包括用于更新存储在引导固件516中的路径的电路。例如,在一实施例中,引导盘400可以被放置在虚拟机502中,且引导固件516可以不具有可以加载客操作系统504的任何引导变量。在此示例中,引导固件406可以运行和检查以便了解是否有任何所连接的存储设备包括配置信息存储414。在所连接的存储设备包括配置信息存储414的情况下,引导管理器406可以检索其中存储的路径并为引导存储416中的路径创建引导变量。然后,引导管理器406可以使用该信息来查找引导加载器412并加载客操作系统504。
在另一示例实施例中,引导固件516可以包括过期的引导变量。例如,引导盘400可以作为设备例如iSCSI目标1而被连接,且引导固件516中的路径的设备部分可以指示它是另一设备例如iSCSI目标0。在此示例实施例中,引导管理器406可以检查在iSCSI目标1上的配置信息存储414,并判断它具有示出引导加载器412被存储在iSCSI目标1上的路径。在此示例中,引导管理器406可以判断存储在配置信息存储414中的路径的时间戳比被存储在引导存储416中的路径的时间戳新。在此示例实施例中,引导管理器406可以将较新的路径复制到引导存储416,并使用它来加载引导加载器412。
继续图8的描述,操作810示出根据被存储在引导盘上的配置信息实现虚拟机。例如,且转到图5,在本公开内容的一实施例中,引导固件代码516可以被加载到客物理地址510中且由虚拟处理器508执行。由引导管理器406配置的虚拟处理器508可以检测存储在配置信息存储414中的虚拟机配置信息,并将此信息传递给管理程序500。管理程序500可以处理配置信息并确定客操作系统504预期的虚拟机的特性。例如,客操作系统504可以被配置成运行在具有8个虚拟处理器和10千兆字节的RAM的虚拟机上。管理程序500可以判断虚拟机502可以实现这些特性(通过检查一策略);实现虚拟机502;并且将信号发送给引导管理器406。然后,引导管理器406可以使用引导变量来标识到引导加载器412的路径。然后,引导管理器412可以加载客OS 504。
继续图8的描述,操作812示出将到引导加载器的路径存储在引导盘的隐藏分区内。例如,且转到图4,在本公开内容的一实施例中,到引导加载器412的路径可以被存储在配置信息存储414中,配置信息存储414可以位于隐藏的或者客操作系统不可访问的任何分区。例如,引导管理器406可以在操作系统的首次安装之前在引导盘400上创建隐藏分区,并将配置信息存储414存储在其上。
继续图8的描述,操作814示出将到引导加载器的路径存储在引导盘的未分区部分中。例如,且转到图4,在本公开内容的一实施例中,到引导加载器412的路径可以被存储在配置信息存储414中,配置信息存储414可以被存储在引导盘400的未分区部分中。或者换一种说法,配置信息存储414可以位于引导分区410外和OS分区408外。然而,此实施例是脆弱的,这是因为操作系统402可能意外地破坏配置信息414,除非它被配置成不触及其分区408外的引导盘的部分。
继续图8的描述,操作816示出将到引导加载器的路径存储在用于客操作系统的文件系统内。例如,且转到图4,在本公开内容的一实施例中,配置信息存储414可以被存储在操作系统402的文件系统418中。在此实施例中,引导管理器406可以被配置成读取文件系统418并将包括引导加载器412的文件存储在其中。在此示例实施例中,操作系统402可以将该文件标记成系统资源,使得它不会被用户无意中删除。
继续图8的描述,操作818示出将到引导加载器的路径存储在用于虚拟硬盘驱动器的元数据内。例如,且转到图4,在本公开内容的一实施例中,到引导加载器412的路径可以被存储在与VHD文件420相关联的元数据中。如上面所说明,VHD文件420指定可以被封装在物理存储中的单个文件内的虚拟机硬盘。在此示例中,引导盘400将是被存储在存储中的文件,且虚拟机存储服务例如图2或图3的VSP可以解析该文件并实现可以作为物理存储而被暴露给虚拟机的盘。在此示例实施例中,引导管理器406可以被配置成将访问配置信息存储414的请求发送给管理程序。然后,该管理程序可以安装VHD文件420的元数据,且引导管理器406可以访问该文件并将到引导加载器412的路径存储在元数据中。
现在转到图9,其阐释用于实践本公开内容的各方面的操作过程,包括操作900、902、904和906。操作900开始该操作过程,且操作902示出在虚拟机中引导客操作系统之前检测被存储在客户操作系统的引导盘上的虚拟机配置信息。例如,且转到图5,虚拟机配置信息,例如描述什么虚拟设备被附连到虚拟机、这些虚拟设备的状态、该虚拟机中有多少虚拟处理器、该虚拟机的非均匀存储器访问(“NUMA’)拓扑、该虚拟机中有多少RAM等等的信息,可以被存储在引导盘400上的配置信息存储414中。管理程序500可以被配置成引导客操作系统504并将引导固件516指令加载到客物理地址510。引导管理器406可以在虚拟处理器508上运行,且可以检测配置信息存储414。引导管理器406可以从配置信息存储414获取虚拟机配置信息并将该信息发送给管理程序500。
继续图9的描述,操作904示出根据所检测的虚拟机配置信息的至少部分实现虚拟机。在一示例实施例中,管理程序500可以接收虚拟机配置信息,且可以确定根据虚拟机配置信息中的至少一些来实例化虚拟机。例如,基于例如一策略中的信息,管理程序500可以给予虚拟机502在配置信息414中标识的RAM的量,而不是虚拟处理器的期望的量。
现在转到图9的操作906,其示出在虚拟机中引导客操作系统。例如,在本公开内容的一实施例中,在虚拟机502由管理程序500配置之后,控制权可以被传送回到引导管理器406。引导管理器406可以在虚拟处理器508上运行,且引导加载器412可以被加载。然后,引导加载器412可以运行和加载客户操作系统504。
现在转到图10,其阐释图9的操作过程的替代实施例,包括另外的操作1008-1018。转到操作1008,其示出根据与虚拟机相关联的策略信息实现虚拟机。例如,在本公开内容的一实施例中,管理程序500可以基于与虚拟机502相关联的策略信息判断给予虚拟机什么资源。例如,管理程序500可以访问描述要使用的策略的信息表。在一示例实施例中,该策略可以指示与其主存的虚拟机相关联的优先级水平。在此示例中,管理程序500可以基于从配置信息存储414和策略信息检索的信息确定虚拟机502的特性。例如,与虚拟机502相关联的优先级可以是高的,且在一实施例中,管理程序500可以重新分配来自其他虚拟机的资源,以便兑现存储在引导盘400上的虚拟机配置信息。
在另一示例实施例中,可以使用该策略信息来确定给予虚拟机502什么资源。例如,一策略可以规定可用虚拟机的多少RAM或虚拟处理器来实例化虚拟机502。在此示例实施例中,管理程序500可以接收描述配置信息存储414中有多少虚拟处理器的信息,并将该值与被存储在策略中的最大值进行比较。在此示例中,如果配置信息存储414中的数量少于或等于该最大值,则管理程序500可以用配置信息存储414中的数量来构建虚拟机。
继续图10的描述,操作1010示出在停止客操作系统之前将经更新的配置信息存储在引导盘上。例如,在本公开内容的一实施例中,客操作系统504可以在虚拟机502中执行,并且,例如,管理程序500可能已经添加/移除资源,或者虚拟机502的状态可能已经被改变。例如,由虚拟机502使用的MAC地址可能已经被改变。在此情况中,在停止虚拟机502之前,例如,为了实时迁移或存储虚拟机502,客操作系统504可以被配置成将虚拟机502的当前状态的配置信息存储在配置信息存储412中。以此方式,可以随虚拟机502的引导盘400发送虚拟机502的最新的配置信息。
继续图10的描述,操作1012示出在引导客操作系统之前将经更新的配置信息存储在引导盘上。例如,在本公开内容的一实施例中,在引导OS之前,引导管理器406可以改变存储在配置信息存储414中的虚拟机配置信息,以便反映管理程序500给予客操作系统504的资源。例如,管理程序500可以通过给予虚拟机502不同的RAM的量等等来改变虚拟机502的状态,且引导管理器504可以将此信息的副本存储在配置信息存储414中。在此示例中,引导盘400可以包括关于主存客操作系统504的当前环境的信息。在一示例实施例中,此信息可以被紧接该虚拟机配置信息存储,或者它可以盖写原始的虚拟机配置信息。
继续图10的描述,操作1014示出存储到引导加载器的路径,其中该路径被存储在引导盘上。例如,在一实施例中,引导管理器406可以将到引导加载器412的路径写到引导盘400上的一位置中,使得例如管理程序500和/或引导管理器406可以稍后找到该路径。
在此示例实施例中,引导盘400可能已经被迁移到虚拟机502,且到引导加载器412的路径现在是错误的。在此示例中,当引导管理器406搜索配置信息存储414时,它可以发现虚拟机配置信息和到引导加载器412的错误的路径。该虚拟机配置信息可以被发送给管理程序500,且引导管理器406可以通过改变该路径的设备相关的部分并将其保存到引导存储516和配置信息存储414来修复到引导加载器412的路径。
继续图10的描述,操作1016示出用存储在引导盘上的不同的路径来更新被存储在固件上的到引导加载器的路径。例如,在本公开内容的一实施例中,用于存储到引导加载器412的路径的电路可以包括用于更新被存储在引导固件516中的路径的电路。例如,在一实施例中,引导盘400可以被放置到虚拟机502中,且引导固件516可以不具有可以加载操作系统504的任何引导变量。在此示例中,引导管理器406可以运行和检查以便了解是否有任何所连接的存储设备包括配置信息存储414。在所连接的存储设备包括配置信息存储414的情况中,引导管理器406可以检索被存储在其中的路径,并为引导存储416中的路径创建引导变量。然后,引导管理器414可以使用该信息来查找引导加载器412并引导客操作系统504。
现在转到图11,其示出用于实践本公开内容的各方面的操作过程,包括操作1100、1102、1104和1106。操作1100开始该操作过程,且操作1102示出在引导一操作系统之前检测存储在该操作系统的引导盘上的配置信息,其中该配置信息描述实现该操作系统的物理机。例如,且转到图6,在本公开内容的一实施例中,引导管理器406可以检测引导盘400上的配置信息存储414,例如,在虚拟硬盘520的元数据内、在引导分区或任何其他分区内等等。如该图所阐释的,在一实施例中,配置信息存储414可以包括描述实现操作系统602的物理机的至少部分的信息。例如,操作系统602可能已经在物理机600上执行,且管理员可能已经确定将其从物理机600移动到虚拟机502。在此示例实施例中,可以获取诸如它被附连到的网络、它包括的处理器数量等等的物理机600中的物理硬件的特性。例如,可以运行一工具,且可以获取信息并将其存储在引导盘例如存储设备106中。
然后,管理员可以采用存储设备106的副本并一次或多次克隆该副本。然后,该管理员可以将其部署到运行管理程序500的计算机系统,并指示管理程序500作为客操作系统504而加载操作系统602。此示例通常被称为物理到虚拟迁移。管理程序500可以被配置成运行虚拟机502并将引导固件516加载到客存储器510。引导管理器406可以执行配置信息存储414,并且在配置信息存储414中搜索描述物理机600的特性的配置信息。引导管理器406可以定位该信息并将其传递给管理程序500。
继续图11的描述,操作1104示出根据配置信息的至少部分实现虚拟机。例如,引导管理器406可以将标识物理机600的特性的配置信息发送给管理程序500。管理程序500可以确定虚拟机600可以实现这些特性的至少部分;并且实现虚拟机502。
现在转到操作1106,其示出在虚拟机中作为客操作系统而引导操作系统。例如,在本公开内容的一实施例中,在由管理程序500配置虚拟机502之后,控制权可以被传送回到引导管理器406。引导管理器406可以在虚拟处理器508上运行,且引导加载器412可以被加载。然后,引导加载器412可以运行和加载客操作系统504。
转到图12,其阐释图11的操作过程的替代实施例,包括另外的操作1208、1210、1212、1214和1216。操作1208示出更新到引导加载器的路径,其中该路径被存储在引导盘上。例如,在本公开内容的一实施例中,引导管理器406可以将到引导加载器412的即时路径存储在引导盘400上。管理程序500可以被配置成运行虚拟机502并将引导固件516加载到客存储器510中。引导管理器406可以执行并试图为客操作系统504定位引导加载器412。在此示例实施例中,引导管理器406可以检测到它不包括引导设备的引导变量,并且搜索配置信息存储414以得到路径。引导管理器406可以发现例如配置信息存储414中的错误路径,且可以确定正确的路径。例如,该路径的设备相关的部分可以是错误的,这是因为在虚拟机502中引导盘400被表示成与其原本类型不同的类型的盘。在此情况中,引导管理器406可以将经更新的路径存储在引导存储416中,并更新配置信息存储414中的路径。
操作1210示出通过固件过程存储到引导加载器的路径,其中该路径被存储在引导固件中。例如,在本公开内容的一实施例中,可以在配置信息存储414中检测该路径并将其存储在引导存储416中。例如,在物理到虚拟的迁移之后,管理程序500可以被配置成运行虚拟机502,并将引导固件516加载到客存储器510。引导管理器406可以执行并试图为客操作系统504定位引导加载器412。在此示例实施例中,引导管理器406可以检测到它不包括引导设备的引导变量,并搜索配置信息存储414以得到路径。引导管理器406可以发现该路径,并将描述该路径的引导变量存储在引导存储416中。
操作1212示出根据与该虚拟机相关联的策略信息实现该虚拟机。例如,在本公开内容的一实施例中,管理程序500可以基于与虚拟机502相关联的策略信息确定给予虚拟机什么资源。例如,管理程序500可以访问描述要使用的策略的信息表。在一示例实施例中,该策略可以指示与其正在主存的虚拟机相关联的优先级水平。在此示例中,管理程序500可以基于从配置信息存储414和策略信息检索的信息确定虚拟机502的特性。例如,与虚拟机502相关联的优先级可以是高的,且在一实施例中,管理程序500可以将来自其他虚拟机资源重新分配,以便兑现被存储在引导盘400上的虚拟机配置信息。
操作1214示出在停止客操作系统之前将经更新的配置信息存储在引导盘上。例如,在本公开内容的一实施例中,客操作系统504可以在虚拟机502中执行,并且,例如,管理程序500可能已经添加/移除资源,或者虚拟机502的状态可能已经被改变。例如,由虚拟机502使用的MAC地址可能已经被改变。在此情况中,在停止虚拟机502之前,例如,为了实时迁移或存储虚拟机502,客操作系统504可以被配置成将虚拟机502的当前状态的配置信息存储在配置信息存储412中。以此方式,可以随虚拟机502的引导盘400发送虚拟机502的最新的配置信息。
操作1216示出存储到引导加载器的路径,其中该路径被存储在该盘上的引导分区内。例如,且转到图4,在本公开内容的一实施例中,到引导加载器412的路径可以被存储在配置信息存储414中,配置信息存储414可以位于引导盘400的引导分区410中。例如,在安装过程期间,引导管理器406或另一引导过程可以创建引导分区410并预留足够的存储器来存储配置信息存储414。
前述的详细描述已经经由示例和/或操作图阐明了各系统和/或各进程的各实施例。就这些框图和/或示例含有一个或多个功能和/或操作而言,本领域技术人员将理解,可以单独地和/或共同地通过各种各样的硬件、软件、固件或几乎其任何组合来实现在这些框图或示例内的每一功能和/或操作。
尽管已经示出和描述了在此描述的本主题的特定方面,但对于本领域的技术人员来说明显的是,基于在此的教导,可以在不偏离在此描述的主题及其宽泛方面的前提下进行改变和修改,因此,所附权利要求将在本文描述的主题的真正精神和范围内的所有这样的改变和修改包括在它们的范围内。

Claims (10)

1.一个计算机系统,包括:
用于在引导客操作系统之前检测(406)被存储在固件(516)中的到引导加载器(412)的路径的电路,其中所述引导加载器(412)被配置成加载被存储在引导盘(400)上的客操作系统(504),其中所述客操作系统(504)被配置成在虚拟机(502)中执行;以及
用于在引导所述客操作系统(504)之前将到所述引导加载器(412)的所述路径存储在所述引导盘(400)上的电路。
2.如权利要求1所述的计算机系统,其特征在于,所述用于存储到所述引导加载器的所述路径的电路还包括:
用于用存储在引导固件中的不同路径来更新所述引导盘上的到所述引导加载器的所述路径的电路。
3.如权利要求1所述的计算机系统,其特征在于,所述用于存储到所述引导加载器的所述路径的电路还包括:
用于用存储在所述引导盘上的不同路径来更新固件上的到所述引导加载器的所述路径的电路。
4.如权利要求1所述的计算机系统,其特征在于,所述用于存储到所述引导加载器的所述路径的电路还包括:
用于将到所述引导加载器的所述路径存储在用于所述用于客操作系统的文件系统内的电路。
5.如权利要求1所述的计算机系统,其特征在于,所述用于存储到所述引导加载器的所述路径的电路还包括:
用于将到所述引导加载器的所述路径存储在用于虚拟硬盘驱动器的元数据内的电路。
6.一种包括可执行指令的计算机可读存储介质,所述计算机可读存储介质包括:
用于在虚拟机(520)中引导客操作系统(504)之前检测(406)被存储在所述客操作系统(504)的引导盘(400)上的虚拟机配置信息的指令;
用于根据所述所检测的虚拟机配置信息的至少部分实现(500)所述虚拟机(502)的指令;以及
用于在所述虚拟机(502)中引导(412)所述客操作系统(504)的指令。
7.如权利要求6所述的计算机可读存储介质,其特征在于,用于实现所述虚拟机的所述指令还包括:
用于根据与所述虚拟机相关联的策略信息实现所述虚拟机的指令。
8.如权利要求6所述的计算机可读存储介质,还包括:
用于在停止所述客操作系统之前将经更新的虚拟机配置信息存储在所述引导盘上的指令。
9.如权利要求6所述的计算机可读存储介质,还包括:
用于在引导所述客操作系统之前将经更新的配置信息存储在所述引导盘上的指令。
10.如权利要求6所述的计算机可读存储介质,还包括:
用于存储到所述引导加载器的路径的指令,其中所述路径被存储在所述引导盘上。
CN201110081373.2A 2010-03-25 2011-03-24 智能引导设备选择和恢复 Active CN102200921B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/732,021 2010-03-25
US12/732,021 US8775781B2 (en) 2010-03-25 2010-03-25 Intelligent boot device selection and recovery

Publications (2)

Publication Number Publication Date
CN102200921A true CN102200921A (zh) 2011-09-28
CN102200921B CN102200921B (zh) 2018-01-09

Family

ID=44657689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110081373.2A Active CN102200921B (zh) 2010-03-25 2011-03-24 智能引导设备选择和恢复

Country Status (2)

Country Link
US (3) US8775781B2 (zh)
CN (1) CN102200921B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293708A (zh) * 2016-07-29 2017-01-04 联想(北京)有限公司 信息处理方法及存储设备
CN107665129A (zh) * 2016-07-29 2018-02-06 联想(北京)有限公司 信息处理方法及存储设备

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US20130080909A1 (en) * 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop docking behaviour for an auxillary monitor
US8560825B2 (en) * 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
US8775590B2 (en) * 2010-09-02 2014-07-08 International Business Machines Corporation Reactive monitoring of guests in a hypervisor environment
WO2012127522A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US9176744B2 (en) * 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US8806186B2 (en) * 2011-08-31 2014-08-12 Red Hat Israel, Ltd. User-controllable boot order through a hypervisor
US9495012B2 (en) 2011-09-27 2016-11-15 Z124 Secondary single screen mode activation through user interface activation
US9390294B2 (en) * 2011-09-30 2016-07-12 Hewlett-Packard Development Company, L.P. Virtualized device control in computer systems
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
US9069598B2 (en) * 2012-01-06 2015-06-30 International Business Machines Corporation Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
US8914785B2 (en) * 2012-07-30 2014-12-16 International Business Machines Corporation Providing virtual appliance system firmware images
US9417886B2 (en) * 2013-01-21 2016-08-16 Dell Products, Lp System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US9529612B2 (en) * 2013-03-18 2016-12-27 International Business Machines Corporation Scalable policy assignment in an edge virtual bridging (EVB) environment
US9535728B2 (en) * 2013-03-18 2017-01-03 International Business Machines Corporation Scalable policy management in an edge virtual bridging (EVB) environment
CN104216726B (zh) * 2013-06-04 2016-08-10 腾讯科技(深圳)有限公司 Android虚拟机加载方法及装置
US9678769B1 (en) 2013-06-12 2017-06-13 Amazon Technologies, Inc. Offline volume modifications
SG11201510304TA (en) 2013-06-18 2016-01-28 Ciambella Ltd Method and apparatus for code virtualization and remote process call generation
EP3019956A4 (en) * 2013-07-12 2017-03-15 Ciambella Ltd. Method and apparatus for firmware virtualization
US10372463B1 (en) * 2013-11-27 2019-08-06 EMC IP Holding Company LLC Provisioning a computerized device with an operating system
US9655378B2 (en) 2014-04-25 2017-05-23 National Presto Industries, Inc. Apparatus for preparing popcorn
US10158530B2 (en) 2014-08-18 2018-12-18 Advanced Micro Devices, Inc. Configuration of a cluster server using cellular automata
US9087001B1 (en) * 2015-01-16 2015-07-21 Storagecraft Technology Corporation Virtualizing multiple networked machines using a predetermined network recovery policy
US9734311B1 (en) * 2015-03-17 2017-08-15 American Megatrends, Inc. Secure authentication of firmware configuration updates
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
US9740520B1 (en) * 2015-09-30 2017-08-22 Veritas Technologies Systems and methods for virtual machine boot disk restoration
US9898325B2 (en) * 2015-10-20 2018-02-20 Vmware, Inc. Configuration settings for configurable virtual components
SG11201805215UA (en) 2015-12-21 2018-07-30 Ciambella Ltd Method and apparatus for creating and managing controller based remote solutions
US10133593B1 (en) 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
US11157461B2 (en) 2016-05-24 2021-10-26 Microsoft Technology Licensing, Llc Systems and methods for accessing remote files
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
US9894080B1 (en) * 2016-10-04 2018-02-13 The Florida International University Board Of Trustees Sequence hopping algorithm for securing goose messages
CN106796531A (zh) * 2016-12-27 2017-05-31 深圳前海达闼云端智能科技有限公司 内核配置信息的管理方法、装置和电子设备
US20180184161A1 (en) * 2016-12-28 2018-06-28 Arris Enterprises Llc Method and system for set-top box platform transitions
CN110419024A (zh) 2017-03-14 2019-11-05 西安姆贝拉有限公司 用于在开发环境中自动生成和合并代码的方法和设备
US10430206B1 (en) * 2017-03-14 2019-10-01 American Megatrends International, Llc Multi-user hidden feature enablement in firmware
US11036422B2 (en) * 2017-08-07 2021-06-15 Datto, Inc. Prioritization and source-nonspecific based virtual machine recovery apparatuses, methods and systems
US11157299B2 (en) * 2017-08-15 2021-10-26 Citrix Systems, Inc. Thin provisioning virtual desktop infrastructure virtual machines in cloud environments without thin clone support
CN109426547B (zh) 2017-09-04 2022-05-17 华为技术有限公司 一种虚拟机的热迁移方法、装置和系统
CN109726039B (zh) * 2017-10-27 2023-05-05 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法和设备
CN108572830A (zh) * 2017-12-22 2018-09-25 深圳市鼎阳科技有限公司 一种嵌入式系统及其引导程序的升级方法、系统
US10698716B2 (en) * 2018-03-15 2020-06-30 Nutanix, Inc. Virtual machine state recorder
CN109445847B (zh) * 2018-07-09 2021-09-17 北京东土科技股份有限公司 工业服务器微内核架构实现方法
US10877771B2 (en) 2018-11-26 2020-12-29 Red Hat, Inc. Virtual machine booting using disk metadata
US11467882B2 (en) * 2018-12-21 2022-10-11 Target Brands, Inc. Methods and systems for rapid deployment of configurable computing resources
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
US11237837B2 (en) * 2020-01-27 2022-02-01 Dell Products L.P. System and method for managing devices during reboot
US11314521B2 (en) 2020-01-27 2022-04-26 Dell Products L.P. System and method for managing component updates
RU2755771C1 (ru) * 2020-08-03 2021-09-21 Общество С Ограниченной Ответственностью "Кировский Региональный Центр Деловой Информации" Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера с внешнего аппаратного устройства
US11269729B1 (en) 2020-12-21 2022-03-08 Microsoft Technology Licensing, Llc Overloading a boot error signaling mechanism to enable error mitigation actions to be performed
US20220283817A1 (en) * 2021-03-08 2022-09-08 Unisys Corporation System and method for the creation and provision of execution virtual context information
US20230305854A1 (en) * 2022-03-25 2023-09-28 Sap Se Reducing downtime during operating system patching

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050081212A1 (en) * 2003-09-30 2005-04-14 Goud Gundrala D. Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
CN101443748A (zh) * 2006-05-08 2009-05-27 微软公司 将机器转换为虚拟机
US20090271600A1 (en) * 2008-04-24 2009-10-29 Dell Products, Lp Method of using an information handling system having a boot file, and an information handling system and machine-executable code for carrying out the method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820214B1 (en) 1999-07-26 2004-11-16 Microsoft Corporation Automated system recovery via backup and restoration of system state
US7069431B2 (en) 2001-07-31 2006-06-27 Lenovo ( Singapore) Pte Ltd. Recovery of a BIOS image
US7574709B2 (en) 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
JP4778247B2 (ja) * 2005-03-17 2011-09-21 富士通株式会社 リモートブート方法、機構及びプログラム
US8069341B2 (en) 2007-06-29 2011-11-29 Microsoft Corporation Unified provisioning of physical and virtual images
US8949585B2 (en) 2007-10-09 2015-02-03 Vmware, Inc. In-place conversion of virtual machine state
US8555048B2 (en) 2008-05-17 2013-10-08 Hewlett-Packard Development Company, L.P. Computer system for booting a system image by associating incomplete identifiers to complete identifiers via querying storage locations according to priority level where the querying is self adjusting

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050081212A1 (en) * 2003-09-30 2005-04-14 Goud Gundrala D. Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
CN101443748A (zh) * 2006-05-08 2009-05-27 微软公司 将机器转换为虚拟机
US20090271600A1 (en) * 2008-04-24 2009-10-29 Dell Products, Lp Method of using an information handling system having a boot file, and an information handling system and machine-executable code for carrying out the method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293708A (zh) * 2016-07-29 2017-01-04 联想(北京)有限公司 信息处理方法及存储设备
CN107665129A (zh) * 2016-07-29 2018-02-06 联想(北京)有限公司 信息处理方法及存储设备
CN106293708B (zh) * 2016-07-29 2021-08-13 联想(北京)有限公司 信息处理方法及存储设备

Also Published As

Publication number Publication date
US20110238969A1 (en) 2011-09-29
US8775781B2 (en) 2014-07-08
US20170293491A1 (en) 2017-10-12
US10261800B2 (en) 2019-04-16
CN102200921B (zh) 2018-01-09
US20140325202A1 (en) 2014-10-30
US9665378B2 (en) 2017-05-30

Similar Documents

Publication Publication Date Title
CN102200921A (zh) 智能引导设备选择和恢复
US9671967B2 (en) Method and system for implementing a distributed operations log
CN101650660B (zh) 从中央存储装置引导计算机系统
CN100547551C (zh) 不同类型操作系统中使用通用预安装环境的方法和系统
CN101206581B (zh) 用于使用外部存储设备引导的系统和方法
US8533304B2 (en) Remotely deploying and automatically customizing workstation images
CN102193824B (zh) 虚拟机均质化以实现跨异构型计算机的迁移
CN102193817B (zh) 简化物理和虚拟部署的管理
US9317275B2 (en) Computer system and program restoring method thereof
US9952782B1 (en) Method and system for accessing data between different virtual disk formats in a virtualization environment
CN102207896A (zh) 虚拟机崩溃文件生成技术
US10303458B2 (en) Multi-platform installer
CN102387197A (zh) 从服务器到主机的流虚拟机技术
US20110078293A1 (en) Systems and methods for extension of server management functions
CN104040525B (zh) 通过网络连接访问覆盖介质
JP2010102479A (ja) 計算機システム、ストレージ装置及びデータ更新方法
US11709692B2 (en) Hot growing a cloud hosted block device
US20200150950A1 (en) Upgrade managers for differential upgrade of distributed computing systems
US10990373B2 (en) Service managers and firmware version selections in distributed computing systems
US20110060884A1 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US10175886B1 (en) Systems and methods for handling missing storage image layers while provisioning containers in computer clusters
EP2639698A1 (en) Backup control program, backup control method, and information processing device
US9612776B2 (en) Dynamically updated user data cache for persistent productivity
US20220067065A1 (en) Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs
US20230273799A1 (en) Storage system with boot volume rollback points

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant