在虚拟服务器平台上启动可启动虚拟存储设备的系统和方法

文档序号:6594547阅读:212来源:国知局
专利名称:在虚拟服务器平台上启动可启动虚拟存储设备的系统和方法
技术领域
本发明总体上涉及计算机数据存储,并且更具体地涉及服务器平台上的虚拟存储 设备和虚拟机监控器(VMM)环境。
背景技术
用于商业环境中的计算机网络持续需要更多的存储。这类企业通常使用集中式数 据存储系统,并且计算机网络包括通过网络与数据存储系统进行通信的各种个人计算机、 笔记本电脑等。数据存储系统通常包括控制诸如硬盘驱动器、磁盘或光盘和/或存储区域 网络(SAN)的专用数据存储资源上的信息存储和信息获取的服务器平台。服务器平台通常 包括管理物理盘驱动器并且将它们作为逻辑单元呈现给服务器平台的存储控制器。在一种解决方案中,存储控制器包含独立盘冗余阵列(RAID)标准的硬件实现。 RAID是通过将存储设备布置成用于冗余的阵列的技术而由廉价组件来提供存储可靠性的 存储解决方案。一般而言,硬件RAID实现使用在多个存储设备之间分割和复制数据的专用 硬件,但服务器平台将该阵列视为一个单独盘。尽管该实现提供廉价选择,但该解决方案在 某些情况下仍需要使用可能不合期望地较贵的专用硬件。随着处理能力的增加,以软件而不是专用硬件实现存储控制器变得更加普遍。例 如,当前存在许多软件RAID实现,其中RAID逻辑是服务器平台的操作系统的一部分。这 些解决方案可以极大地减少总成本以及对特定硬件平台的依赖性。然而,在服务器平台通 过虚拟化还支持多个执行环境(例如,多个仿真操作系统)的情况下,软件实现具有重大缺 陷。软件RAID实现的另一个重大限制是需要针对所支持的每一种操作系统来配置它 们,这可能增加开发、调试和部署的成本并且带来不便。在某些情况下,诸如Linux的衍生 物,可能有与基于开源许可(例如,GNU通用公共许可以及其它)的条款的源过程代码的公 开相关的其它复杂性。这些开源符合问题可能进一步地增加为这类操作系统实现软件RAID 的成本和不便。虚拟化技术使得单台主机可以运行虚拟机监控器(VMM)来呈现主机的多个抽象 或视图,从而底层主机硬件看起来像一个或更多个独立运行的虚拟机(VM)。VMM包含允许 主机支持多种执行环境的主机程序。每个VM可以用作运行其自身的固件、操作系统和/或 软件应用程序的自包含平台。VMM管理主机资源对VM的分配和虚拟化。当组合软件RAID或其它软件存储控制器作为VMM环境中的虚拟存储设备时,存在意义重大的配置挑战。例如,在VMM环境中安装和/或启动虚拟存储设备涉及多种复杂的 情况。为了启动,虚拟存储设备需要被呈现在平台上。尽管相互不同,但存在很多可用的 VMM环境。现有的解决方案必须针对每一种VMM环境来单独设计,并且需要针对将要使用 的具体VMM环境来预先配置平台,这产生了意义重大的逻辑挑战。例如,启动标准的操作系 统,在无需任何虚拟化的情况下是非常简单的,仅仅需要系统(例如,BIOS、EFI)载入少量 模块。在此情形下,通常可以在0/S加载程序接管和控制处理之前加载启动加载程序和驱 动器。然而,在VMM环境中,由于系统需要从加载VMM环境、主机操作系统和虚拟存储设备 (以及伴随的存储控制逻辑)的全部的启动程序中进行加载,所以该处理会更加复杂。加 载所有的这些组件可能需要10-100MB或更多的镜像。而且,启动设备通常为RAID卷,并且 因此如果RAID弓丨擎位于操作系统中时,RAID功能需要加载它,这可能涉及繁琐的递归自引 用。试图解决上述问题的已有解决方案包括使用启动代码中的RAID加载程序。然而, 这产生了需要创建另一个RAID栈的成本,具有其自身的复杂性。尽管较大的制造商可能能 够在EFI/BI0S中认证和维护RAID栈,但很多客户将或者不能或者不愿意这么做。试图解 决上述问题的另一种解决方案包括在服务器平台的非易失性存储器中提供整个VMM环境。 这也引入了另一系列的挑战。例如,VMM环境的代码大小可能是成问题的。而且,当在服务 器平台的非易失性存储器中提供整个VMM环境时具有与VMM环境的发行和/或维护相关联 的较大商业挑战。除了在VMM环境中组合虚拟存储设备的众多优点之外,本领域中还需要在标准服 务器平台中安装和/或启动虚拟存储设备的更成本有效的解决方案和系统及方法,其不依 赖于具体的VMM环境并且其可以消除对平台进行预先配置的需求。

发明内容
公开了在虚拟服务器平台上安装和/或启动虚拟存储设备的系统、方法、计算机 系统和计算机程序的各种实施例。一个实施例是在虚拟服务器平台上启动可启动虚拟存储 设备的方法。这样的一种方法包括在服务器平台上提供虚拟存储设备,虚拟存储设备被 配置成管理包含多个盘的盘阵列,并且其中至少一个盘包含具有启动控制台的隐藏启动分 区;给服务器平台上电;在服务器平台上加载启动代码;从隐藏启动分区加载启动控制台; 以及启动控制台加载用于虚拟化环境的启动组件。


图1是对其上可以安装虚拟存储设备的服务器平台的实施例进行例示的框图。图2是对可以用来在图1的服务器平台上安装虚拟存储设备的IOVM安装包的实 施例进行例示的框图。图3是对通过图2的IOVM安装包在图1的服务器平台上安装虚拟存储设备的方 法的实施例进行例示的流程图。图4-图11例示了虚拟存储设备的安装期间服务器平台的操作。图12是其上已经安装了虚拟存储设备的服务器平台的实施例的框图。图13是对启动图12的虚拟存储设备的方法的实施例进行例示的流程图。
图14和图15例示了图12的启动过程期间服务器平台的操作。
具体实施例方式公开了在服务器平台上安装和/或启动虚拟存储设备的系统、方法和计算机程序 的各种实施例。作为介绍以及对虚拟存储设备和服务器平台所运行的工作环境的例示,图 1例示了示例性计算机系统100。计算机系统100包含其上可以安装和/或启动虚拟存储 设备的服务器平台102。在实施例中,服务器平台102包含具有硬件104的标准的、现成的 服务器平台,硬件104包括一个或更多个处理器106、存储器108和包含启动代码112的非 易失性存储器110。应当认识到,(多个)处理器106、存储器108、非易失性存储器110和 启动代码112可以被预先配置在服务器平台102上并且被用来执行下述的安装和启动处 理。因此,应当进一步认识到,图1中的其它所示组件表示由服务器平台102根据下面参照 图2-15所述的安装和启动处理而加载的组件。启动代码112包含由服务器平台102用来配置硬件104并且开始操作系统启动程 序的代码。在实施例中,例如,启动代码112可以被配置成加载BIOS环境、EFI环境或其它 启动环境。虚拟机监控器114包含用来将硬件104与虚拟机环境进行隔离的管理程序或薄软 件层。VMM 114控制与独立操作系统(例如,OS 116a、116b、116c)相关联的一个或更多个 服务虚拟机和专用客户虚拟机(即,I/O虚拟机118)的执行。如下面所详细描述的那样, IOVM 118包括被配置成处理与包含多个物理盘124的盘阵列122相关联的I/O的专用虚 拟机。IOVM 118包括被配置成向盘阵列122存储数据并且从盘阵列122获取数据的存储 控制器120。(多个)处理器106执行与服务器平台102相关联的处理操作,包括支持VMM 114、IOVM 118、0/S 116a_c以及任何其它软件和/固件的处理。已经描述了服务器平台102和IOVM 118的通用操作环境,将参照图3_11来描述 在服务器平台102上安装IOVM 118的系统和方法的各种实施例。图3例示了在服务器平 台102上安装IOVM 118的方法300的实施例。图4_11参照计算机系统100的组件例示了 作为预启动处理的安装处理。应当认识到,与方法300相关联的处理或方法描述中的一个 或更多个可以表示代码的模块、段、逻辑或部分,其包括实现处理中的逻辑功能或步骤的一 条或更多条可执行指令。应当进一步认识到,可以以软件、硬件、固件或它们的任何组合来 实现逻辑功能。在特定实施例中,可以由存储器108或非易失性存储器110中存储的并且 由硬件104或(多个)任何其它处理器或与服务器平台102相关联的适当指令执行系统执 行的软件或固件来实现参照图3的流程图所述的逻辑功能和图4-11的系统框图。而且,可 以在由指令执行系统、装置或设备使用或者与指令执行系统、装置、设备相关的任何计算机 可读介质中嵌入逻辑功能,所述指令执行系统、装置或设备例如是基于计算机的系统、包含 处理器的系统或者与能够从指令执行系统、装置或设备获取指令并且执行指令的服务器平 台102相关联的其它系统。参考图3,提供服务器平台102(块30 和IOVM安装包200 (块304)。在实施例中, 服务器平台102可以包含没有与VMM或IOVM 118相关联的任何专用组件的标准服务器(例 如,OEM服务器)。如图2所示,在实施例中,IOVM安装包200包含与安装IOVM 118相关联 的各种组件,诸如,例如,安装脚本202、IOVM启动控制台204、IOVM管理模块206和VMM208。可以在由服务器平台102可访问的光盘、数字视频盘或闪存设备上提供安装包200。在其它 实施例中,可以将安装包200作为内部组件提供给服务器平台102(例如,在存储器108、非 易失性存储器110中等)。应当认识到,根据期望的安装实现,可以在一个或更多个包中提 供安装包200的组件。例如,可以在一个安装包中提供安装脚本202、I0VM启动控制台204 和IOVM管理模块206,并且将VMM 208作为标准、现成的VMM安装包来提供。就这一点而言,应当进一步认识到,安装包200和安装方法300可以提供具有各种 优点的安装方案。该安装方案可以被设计成与任何期望的当前或未来虚拟化环境和/或 VMM 208共同工作。可以删除0/S专用安装程序。而且,安装方案可以适合于标准的服务器
D ο在块306,给服务器平台102上电。如图4所示并且在块308,在上电之后,从非易 失性存储器110加载启动代码112。例如,启动代码112可以被配置成加载BIOS环境、EFI 环境或其它启动环境。启动环境可以包括与服务器平台102上的存储控制器120相兼容的 标准存储驱动器210。在实施例中,存储驱动器210可以包含SAS驱动器,并且存储控制器 120可以包含SAS控制器。然而,本领域的普通技术人员将认识到,可以用其它控制器和驱 动器来实现其它数据传输技术、标准和/或接口。在块310(图5),加载IOVM安装包200以在启动代码112的顶部运行。如图6所 示,在块312和314,执行安装脚本202,并且在启动盘上创建启动分区。在图6的实施例 中,启动盘包含盘阵列122中物理盘124中的一个(S卩,物理盘IMa)。可以从系统隐藏启 动分区。例如,在RAID实现中,启动分区可以隐藏在RAID标准所定义的盘数据格式(DDF) 空间或任何其它私密分区中。在块316(图7),安装脚本202还可以从IOVM安装包200将 IOVM启动控制台204和IOVM管理模块206复制至启动分区116。可以使启动分区116可 启动。在块318,重启服务器平台102,并且如图8所示,从非易失性存储器110加载启动 代码112(块320)。在块322(图9),可以从启动分区116将IOVM启动控制台204和IOVM 管理模块206加载至服务器平台102。如上所述,IOVM 118可以包含专用的基于OS的客户 虚拟机。因而,OS加载程序可以从启动环境获得控制并且从启动分区116加载IOVM启动 控制台204和IOVM管理模块206。在实施例中,IOVM启动控制台204可以包含标准的操作 系统。因此,IOVM启动控制台204可以使用标准程序来启动操作系统。然而,应当认识到, 在计算机系统100中,IOVM启动控制台204被配置成管理存储虚拟化(例如,管理RAID逻 辑)。在块324,用户可以与IOVM管理模块206进行接口连接以配置盘阵列122。例如, IOVM管理模块206可以被配置成使得用户能够创建期望的盘组、虚拟盘、卷等。在块326(图 10),IOVM启动控制台204在盘阵列122中的所有盘(在该情况下,物理盘124b和124c)上 创建隐藏启动分区116。IOVM启动控制台还可以复制其它启动分区116中的启动盘(S卩,物 理盘124a)的内容。应当认识到,该处理使能了在物理盘IM故障而无需例如RAID方案的 情况下允许计算机系统100工作的冗余方案。通过复制所有物理盘IM上启动盘的内容, 标准的服务器启动处理将从第一盘(即,物理盘124a)进行启动。如果该盘出现故障,则启 动处理将尝试从第二盘(即,物理盘1Mb)进行启动,从而提供N路冗余方案。在已经安装IOVM启动控制台204和配置盘阵列122之后,在块328(图11),服务器平台102使用IOVM启动控制台204作为存储驱动器来安装虚拟环境(例如,VMM 208)。 如上所述,服务器平台102可以支持任何期望的虚拟环境。可以直接从IOVM安装包200或 者从标准的OEM发行安装包来安装虚拟环境。可以按照传统方式来继续虚拟环境的安装。在安装IOVM 118和虚拟环境之后(按照以上所述或者否则服务器平台102上提 供的方式),服务器平台102可以起动启动方法的开始。图12-15例示了启动方法的实施 例。图12是例示启动方法的操作的流程图,而图13-15结合服务器平台102和盘阵列122 的组件例示了该启动方法。参考图12,在块1202,在服务器平台102上提供虚拟存储设备以管理盘阵列。应 当认识到,可以按照以上关于IOVM 118所述的方式或其它方式在计算机系统100上配置和 安装虚拟存储设备。在块1204(图13),加载启动代码112。启动代码112可以被配置成加 载例如BIOS环境、EFI环境或其它启动环境。启动环境可以包括与服务器平台102上的存 储控制器120相兼容的标准存储驱动器210。启动环境加载并且可以调用启动加载程序。 在块1206(图14),从盘阵列122中的一个物理盘上的隐藏分区加载IOVM启动控制台204 和IOVM管理模块206。如判决块1208和1210所示,IOVM管理模块206可以用来使得计 算机系统100的用户能够配置和/或管理盘阵列122和/或IOVM 118的各个方面。在块 1212(图15),IOVM启动控制台204加载虚拟环境的启动组件。IOVM启动控制台204开始 启动处理。IOVM启动控制台204访问启动盘(例如,物理盘中的一个)并且可 以定位已安装的VMM启动控制台。在实施例中,VMM启动加载程序可以包含与已安装的虚 拟化环境集成的组件。VMM启动加载程序可以是作为盘阵列122的一部分的启动卷上0/S 安装的一部分。IOVM启动控制台204启动VMM 208,如图15所示,并且接着按照典型方式 将控制传递至VMM启动加载程序,如本领域技术人员将认识到的那样。应当注意到,出于说明本发明的原理和概念的目的,结合一个或更多个示例性或 所描述的实施例来展示了本公开。本发明不限于这些实施例。本领域技术人员将会理解, 考虑在此所提供的描述,可以对在此所述的实施例做出很多变形并且所有的这类变形落入 在本发明的范围内。
权利要求
1.一种在虚拟服务器平台上启动可启动虚拟存储设备的方法,该方法包括在服务器平台上提供虚拟存储设备,所述虚拟存储设备被配置成管理包含多个盘的盘 阵列,并且其中所述盘中的至少一个包含具有启动控制台的隐藏启动分区; 给所述服务器平台上电; 在所述服务器平台上加载启动代码; 从所述隐藏启动分区加载所述启动控制台;以及 所述启动控制台加载用于虚拟化环境的启动组件。
2.如权利要求1所述的方法,其中所述虚拟存储设备包含与所述服务器平台相关联的 客户操作系统。
3.如权利要求1所述的方法,其中所述虚拟存储设备包含RAID控制器。
4.如权利要求1所述的方法,其中所述虚拟化环境包含支持所述虚拟存储设备和执行 不同操作系统的多个虚拟机的虚拟机监控器。
5.如权利要求1所述的方法,其中所述启动代码加载BIOS环境或EFI环境中的一个。
6.如权利要求1所述的方法,其中所述盘阵列包含硬盘驱动阵列。
7.如权利要求1所述的方法,其中所述盘阵列包含存储区域网络。
8.如权利要求1所述的方法,其中所述盘阵列包含RAID阵列。
9.如权利要求1所述的方法,进一步包括管理所述虚拟存储设备。
10.如权利要求1所述的方法,其中提供虚拟存储设备包括通过以下步骤在服务器平 台上安装所述虚拟存储设备提供所述服务器平台可访问的安装包,所述安装包包含用于安装所述虚拟存储设备、 启动控制台和管理模块的安装脚本;给所述服务器平台上电并且加载所述启动代码; 加载所述安装包以在所述启动代码的顶部运行;运行所述安装脚本以在所述盘上创建所述隐藏启动分区并且将所述启动控制台和所 述管理模块复制至所述隐藏启动分区;重启所述服务器平台并且加载所述启动代码;从所述隐藏启动分区加载所述启动控制台和所述管理模块;通过所述管理模块配置所述盘阵列;在所述盘阵列中的每一盘上,创建隐藏启动分区,并且复制所述启动控制台和所述管 理模块;以及使用所述启动控制台作为存储驱动器来安装所述虚拟化环境。
11.如权利要求10所述的方法,其中通过光盘、数字视频盘和闪存设备中的至少一个 向所述服务器平台提供所述安装包。
12.如权利要求10所述的方法,其中在所述服务器平台上安装虚拟存储设备进一步包 括重启所述服务器平台。
13.如权利要求12所述的方法,其中重启所述主机服务器平台包括从所述盘中的一个上的所述隐藏启动分区加载所述启动控制台和所述管理模块;以及 所述启动控制台加载所述虚拟化环境。
全文摘要
一个实施例是在虚拟服务器平台上启动可启动虚拟存储设备的方法。这样的一种方法包括在服务器平台上提供虚拟存储设备,虚拟存储设备被配置成管理包含多个盘的盘阵列,并且其中至少一个盘包含具有启动控制台的隐藏启动分区;给服务器平台上电;在服务器平台上加载启动代码;从隐藏启动分区加载启动控制台;以及启动控制台加载用于虚拟化环境的启动组件。
文档编号G06F9/455GK102132251SQ200980132959
公开日2011年7月20日 申请日期2009年6月9日 优先权日2008年7月17日
发明者L·伯特 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1