虚拟机迁移的制作方法

文档序号:6476974阅读:186来源:国知局
专利名称:虚拟机迁移的制作方法
虚拟机迁移
些且 冃豕
在数据中心环境中,可利用虚拟化来合并各自运行单个应用程序的若干、
以其他方式独立的计算机的资源。例如,企业可实现具有各自作为web服务器、 数据库服务器和电子邮件服务器的三个单独计算机的网络。被实现为各自运行
单个应用程序的各单独计算机可能显著地未被充分利用并且是对资源的低效 利用。这三个企业服务器可被合并成一个作为三个虚拟机的虚拟主计算机的物 理设备,并且每一个虚拟机都能够独立运行企业服务器应用程序中的一个。
每一个虚拟机都是看上去具有其自己的处理器、盘驱动器、网络控制器等 的虚拟主计算机的软件组件。然而,虚拟化管理器高效地利用并分配诸如公共 处理器和存储器等虚拟机的共享资源。可虚拟化具有多个独立计算机的数据中 心以合并硬件、资源和系统管理。
在具有各自作为任何数量的虚拟机的虚拟主机的不止一个虚拟主计算机
的虚拟环境中, 一个虚拟机可从一个虚拟主计算机移动或"迁移"到另一个虚 拟主计算机。虚拟机可出于诸如负载平衡等各种原因而从一个虚拟主计算机移 至另一个虚拟主计算机,以便对虚拟主机执行诸如任务共享等维护。虚拟主计 算机的虚拟机的硬盘驱动器往往很大并且通常是千兆字节级的。当虚拟机从一 个虚拟主计算机迁移到另一个虚拟主计算机时,转移对应的大型数据文件可能 花费相当长的时间。此外,正在迁移的虚拟机在从一个虚拟主计算机到另一个 虚拟主计算机的迁移过程期间是关闭且不可用的。
概述
提供本概述以便介绍将在以下详细描述中进一步描述的虚拟机迁移的简 化概念。本概述并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮 助确定所要求保护的主题的范围。
在虚拟机迁移的各实施例中,虚拟机可利用LUN (逻辑单元号)屏蔽来 从一个主计算机迁移到另一个主计算机。可将存储阵列的LUN映射到虚拟机的虚拟驱动器。将LUN与虚拟机的第一主计算机相关联的LUN掩码能够被配 置成去除该LUN的屏蔽(unmask)以将该虚拟机从该第一主计算机迁移到第 二主计算机。
在虚拟机的其他实施例中,虚拟化系统的虚拟管理器可发起在存储阵列上 ,对LUN的创建并且去除该LUN的屏蔽以使该LUN与该虚拟管理器相关联。 该虚拟管理器可发起从虚拟机模板中对虚拟机的创建,其中该虚拟机具有相关 联的虚拟驱动器并被配置成在主计算机上执行。该虚拟管理器然后可对主计算 机上的虚拟机的虚拟驱动器去除来自培虚拟管理器的LUN的屏蔽。
附图简述
参考以下附图描述了虚拟机迁移的各实施例。在各附图中,使用相同的标
号来指示相同的特征和组件


图1示出了其中可以实现虚拟机迁移的各实施例的示例虚拟化系统。
图2进一步示出了图1所示的示例虚拟化系统,并示出了虚拟机迁移的一
实施例。
图3示出了根据一个或多个实施例的用于虚拟机迁移的示例方法。
图4进一步示出了根据一个或多个实施例的用于虚拟机迁移的示例方法。
图5示出了其中可以实现虚拟机迁移的各实施例的示例虚拟化系统。
图6示出了根据一个或多个实施例的用于虚拟机迁移的示例方法。
图7示出了其中可以实现虚拟机迁移的各实施例的示例虚拟化系统。
图8示出了能够实现虚拟机迁移的各实施例的示例计算机设备的各个组件。
详细描述
虚拟机迁移的各实施例提供了利用存储区域网络来将虚拟机从一个虚拟 主计算机迁移到另一个虚拟主计算机的技术。在一实施例中,虚拟机可利用 LUN (逻辑单元号)屏蔽来从一个主计算机迁移到另一个主计算机。LUN是 表示通过存储区域网络而变得可用的数据存储的逻辑单元,并且LUN可映射 到该存储区域网络中的任何数量的物理驱动器。利用LUN屏蔽来迁移虚拟机比必需将虚拟机的所有文件复制到目的地主计算机更快。
虽然所描述的用于虚拟机迁移的系统和方法的特征和概念能够在任何数 量的不同计算系统和环境中实现,但虚拟机迁移的各实施例在以下各示例系统
和环境的上下文中描述。
图1示出了其中可以实现虚拟机迁移的各实施例的示例虚拟化系统100。 在一实施例中,虚拟管理器102管理和控制主计算机104(1-2),这些主计算机 是任何数量的虚拟机的虚拟主计算机。虚拟化系统100是具有虚拟机的企业数 据中心的示例,这些虚拟机作为虚拟化的独立计算机出现以合并硬件、资源和 /或系统管理。尽管只示出了两个主计算机104(1-2),但虚拟化系统100可包括 由虚拟管理器102管理的任何数量的主计算机设备。
主计算机104(l-2)各自可包括任何数量的虚拟机。在该示例中,主计算机 104(1)包括虚拟机106,而主计算机104(2)包括虚拟机108。每一个虚拟机106、 108都被实现为各自主计算机的软件组件并且可被管理以运行以便高效地利用 主计算机的共享资源,诸如公共处理器和存储器等。每一个主计算机104(1-2) 都可被实现为包括一个或多个处理器(例如,微处理器、控制器等中的任一个), 并且可包括为主计算机提供数据存储的任何类型的计算机可读介质。
主计算机104(1-2)的计算机可读介质可维护诸如操作系统和任何数量的
虚拟机等软件应用程序。这些软件应用程序可被实现为计算机可执行指令并由 主计算机的处理器来执行以实现虚拟机迁移的各实施例。另外,主计算机
,、104(l-2)可包括任何数量的不同组件及其组合,如参考图8所示的示例计算机 设备所进一步描述的。
在虚拟化系统100中,主计算机104(1)中的虚拟机106具有两个相关联的 虚拟驱动器110(1-2)(也被称为"虚拟硬盘驱动器")。类似地,主计算机104(2) 中的虚拟机108具有相关联的虚拟驱动器112。尽管虚拟机106被示为只具有 两个相关联的虚拟驱动器,而虚拟机108被示为只具有一个相关联的虚拟驱动 器,但任何数量的虚拟驱动器可以与虚拟机相关联。虚拟驱动器110(1-2)和112 各自可被实现为各自主计算机处的、映射到网络连接的存储阵列上的物理驱动 器的文件。在该虚拟化实现中,由虚拟机对虚拟驱动器发起的"盘访问"事件 作为文件读取或作为文件写入命令来执行。
9虚拟化系统100包括存储阵列114,其可包括维护主计算机104(1-2)和/ 或虚拟机106、 108的计算机可读数据的任何数量的物理驱动器和/或存储介质。 存储阵列114也被称为"存储区域网络",即SAN,并且可经由数据网络118 通过对主计算机104(1-2)的存储接口 116来连接到网络。
通信网络118可被实现为具有任何类型的协议的任何类型的数据或通信 网络,并且可被表示或以其它方式实现为两个或更多网络的组合。例如,数据 网络118可被实现为将存储阵列114的存储接口 116通信地链接到主计算机 104(l-2)的光纤通道或iSCSI (因特网小型计算机系统接口)网络。
存储阵列114包括LUN 120(1-3),其各自是表示通过存储阵列114来展示 或变得可用的存储单元的"逻辑单元号"。LUN可映射到存储阵列114的若 干物理驱动器和/或存储介质并且可被实现为任何类型的LUN,诸如简单、跨 区、带区、带奇偶性的带区等。LUN 120(l-3)中的每一个都分别具有对应的LUN 掩码122(1-3)。 LUN掩码可被实现为标识哪一个主计算机可访问对应的LUN 以控制主计算机对存储阵列114的访问的列表。LUN的无屏蔽列表是网络上 的被授权访问该LUN的计算机和/或通信端口的列表,并且设置该列表的操作 被称为LUN屏蔽。在该示例中,LUN掩码122(1)将LUN 120(1)与主计算机 104(1)相关联,LUN掩码122(2)将LUN 120(2)与主计算机104(2)相关联,而 LUN掩码122(3)将LUN 120(3)与主计算机104(1)相关联。
存储接口 116也被称为"SAN结构"并且可被实现为方便存储阵列114 和数据网络118之间的数据通信的任何数量的互连的SAN (存储区域网络)交 换机。虚拟机106的虚拟驱动器110(1-2)中的每一个以及虚拟机108的虚拟驱 动器112被映射到存储阵列114的LUN。虚拟驱动器110(1-2)和112还经由各 自的主机总线适配器来连接到数据网络118。在该示例中,虚拟机106的虚拟 驱动器110(1)被映射到存储阵列114的LUN 120(1)并且由主机总线适配器 124(1)通过数据网络118来连接。类似地,虚拟机106的虚拟驱动器110(2)被 映射到存储阵列114的LUN 120(3)并且由主机总线适配器124(2)通过数据网络 118来连接。虚拟机108的虚拟驱动器112被映射到存储阵列114的LUN 120(2) 并且由主机总线适配器126通过数据网络118来连接。
在虚拟机迁移的一实施例中,虚拟机可利用LUN屏蔽来从一个主计算机迁移到另一个主计算机。在该示例虚拟化系统100中,虚拟管理器102可发起
并管理虚拟机106从主计算机104(1)到主计算机104(2)的迁移。最初,虚拟机 106的虚拟驱动器110(1-2)中的每一个文件都被放置在LUN上。虚拟驱动器中 的文件全都可被放置在单个LUN上,或者每一个文件都可被放置在单独的 LUN上。在该示例中,存储阵列114的LUN 120(1)引用将虚拟机106的虚拟 驱动器110(1-2)映射到LUN的映射文件128。
虚拟管理器102然后可发起关闭虚拟机106并使其处于主计算机104(1) 上的停止且保存的状态。可取消虚拟机106的虚拟驱动器110(1-2)与主计算机 104(1)的关联,并且可从主计算机104(1)中删除虚拟机106。可改变LUN掩码 122(1)和122(3)以便去除各自的LUN 120(1)和120(3)对主计算机104(1)的屏蔽 并将这些LUN与主计算机104(2)相关联以将虚拟机106从主计算机纟04(1)迁 移到主计算机104(2)。虚拟机106然后可在主计算机104(2)上根据映射文件128 来创建以使得虚拟驱动器H0(l-2)各自从存储阵列上的相应LUN 120(1)和 120(3)映射到主计算机140(2)上的虚拟机。
图2示出了进一步示出图1所示的虚拟化系统100的示例虚拟化系统200。 在该示例虚拟化系统200中,虚拟机106已从主计算机104(1)迁移到主计算机 104(2)(在202) 。 LUN掩码122(1)和122(3)标识主计算机104(2)可在虚拟机 106迁移后访问对应的LUN 120(1)和120(3)。
如果数据网络118被实现为iSCSI网络,则可在LUN登录到该iSCSI网 络时去除该LUN对主计算机的屏蔽。例如,虚拟机106可在对应的LUN 120(1) 和120(3)通过登录到iSCSI网络而展现(surface)在主计算机104(2)上时从主 计算机104(1)迁移到主计算机104(2)。在一实现中,LUN还可进行认证以登录 到iSCSI网络。
在虚拟机迁移的一实施例中,虚拟管理器102可确定一组主计算机中的哪 一个主计算机是利用LUN屏蔽的虚拟机迁移的有效目标。可启动周期性地执 行并确定哪一个主计算机是虚拟机迁移的有效目标的任务或过程。该任务可被 实现为轮询每一个主计算机以确定存储接口 116的哪些通信端口 204可由哪些 主计算机访问。可使用主机总线适配器的应用程序接口 (API)来确定哪些通 信端口 204在存储接口 116上对特定主计算机可见。然后可在存储阵列上的数据库表中维护该相关信息以供参考。
为了确定哪些主计算机是虚拟机迁移的有效目标,虚拟管理器102可标识 附连到每一个不同的主计算机的所有虚拟驱动器。虚拟管理器102然后可将这
些虚拟驱动器中的每一个文件都映射到存储阵列114上的LUN。虚拟管理器 102还可标识用于数据通信的、向其展示每一个LUN的存储接口 116的通信 端口 204。然后在数据库表中维护该相关信息以供参考。
在虚拟机106从主计算机104(1)迁移到主计算机104(2)之前,虚拟管理器 102可确定LUN 120(1)和120(3)通过存储接口 116对于主计算机104(1)和104(2) 两者是否"可见"。虚拟管理器102可标识用于数据通信的、这些LUN所映 射到的存储接口 116的一个或多个通信端口 204。虚拟管理器102然后可确定 第一主计算机104(1)是否能够经由一个或多个所标识的通信端口 204中的任一 个来访问存储阵列114。类似地,虚拟管理器102可确定第二主计算机104(2) 是否能够经由一个或多个所标识的通信端口 204中的任一个来访问存储阵列 114。在主计算机104(1)和104(2)两者都能够经由所标识的通信端口 204中的 至少一个(并且不必是同一通信端口)来访问存储阵列114的情况下,虚拟管 理器102然后可发起并管理虚拟机106的迁移。
一般而言,在此描述的任何功能、方法、和模块都可使用硬件、软件、固 件(例如,固定逻辑电路)、手动处理或其任何组合来实现。功能、方法、或 模块的软件实现表示当在计算机处理器上执行时执行指定任务的程序代码。参 考图3、 4和6所描述的示例方法300、 400和600可在计算机可执行指令的一 般上下文中描述。 一般而言,计算机可执行指令可包括执行特定功能或实现特 定抽象数据类型的应用程序、例程、程序、对象、组件、数据结构、过程、模 块、功能等。这些方法还能在其中功能由通过通信网络链接的远程处理设备完 成的分布式计算环境中实现。在分布式计算环境中,计算机可执行指令可以位 于包括存储器存储设备在内的本地和远程计算机存储介质中。此外,此处所描 述的特征是平台无关的,以便这些技术可在具有各种处理器的各种计算平台上 实现。
图3示出了虚拟机迁移的示例方法300。描述方法的次序并不旨在解释为 限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。
在框302,标识虚拟机的虚拟驱动器,其中虚拟驱动器被映射到存储阵列
的相应LUN。例如,虚拟管理器102 (图l)可标识对应于主计算机104(1)处 的虚拟机106的虚拟驱动器U0(l-2)。虚拟机106的虚拟驱动器110(1)被映射 到存储阵列114的LUN 120(1)并且由主机总线适配器124(1)通过数据网络118 来连接。类似地,虚拟机106的虚拟驱动器110(2)被映射到存储阵列114的LUN 120(3)并且由主机总线适配器124(2)通过数据网络118来连接。
在框304,将虚拟驱动器映射到存储阵列的LUN所引用的映射文件。例 如,存储阵列114的LUN 120(1)引用将虚拟机106的虚拟驱动器110(1-2)映射 到LUN的映射文件128。
在框306,确定每一个LUN都可通过存储阵列的存储接口来访问。例如, 虚拟管理器102可确定LUN 120(1)和120(3)通过存储接口 116对于主计算机 104(1)和104(2)两者是否"可见"。虚拟管理器102可标识用于数据通信的、 这些LUN所映射到的存储接口 116的通信端口 204。虚拟管理器102然后可 确定第一主计算机104(1)和第二主计算机104(2)是否能够经由所标识的通信端 口 204中的任一个来访问存储阵列114。在主计算机104(1)和104(2)两者都能 够经由所标识的通信端口 204中的至少一个(并且不必是同一通信端口)来访 问存储阵列114的情况下,虚拟机106可从第一主计算机104(1)迁移到第二主 计算机104(2)。确定每一个LUN都可通过存储阵列的存储接口来访问将参考 图4所示的方法进一步描述。
在框308,去除每一个LUN的屏蔽以将虚拟机从第一主计算机迁移到第 二主计算机。例如,虚拟管理器102可发起改变LUN掩码122(1)和122(3)以 便去除来自主计算机104(1)的各自的LUN 120(1)和120(3)的屏蔽,并将这些 LUN与主计算机104(2)相关联以将虚拟机106从主计算机104(1)迁移到主计算 机104(2)。如果数据网络118被实现为iSCSI网络,则去除LUN 120(1)和120(3) 中每一个对主计算机104(2)的屏蔽包括将每一个LUN登录到将存储阵列114 的存储接口 116通信地链接到主计算机104(1-2)的iSCSI网络。
在框310,从第一主计算机中删除虚拟机,并且在框312,取消虚拟驱动 器与该第一主计算机的关联。例如,可取消虚拟机106的虚拟驱动器110(1-2)与主计算机104(1)的关联,并且可从主计算机104(1)中删除虚拟机106。
在框314,在第二主计算机上根据映射文件来创建虚拟机,以使得虚拟驱 动器各自从存储阵列的相应LUN映射到第二主计算机上的虚拟机。例如,虚 拟机106可在主计算机104(2)上根据映射文件128来创建以使得虚拟驱动器 110(l-2)各自从存储阵列114上的相应LUN 120(1)和120(3)映射到主计算机 140(2)上的虚拟机106。
参考示例方法300所描述的方法框302-314中的每一个都可被实现为可重 新开始的虚拟机迁移任务以使得如果无法完成任务,则虚拟机迁移可从失败的 任务重新开始。这些可重新开始的任务各自可被实现为首先检查任务是否已经 完成。如果任务被确定为已完成,则可启动下一个任务。如果虚拟机迁移任务 由于例如瞬时错误或网络连接故障而失败,则该任务可重新开始并且虚拟机迁 移将从其失败的地方继续。在一实现中,用于确定是否已执行任务的检查可包 括对维护在方法框已完成时持久存储的任务信息的数据库的检查。另选地或另 外地,可执行查询以确定任务是否已完成,诸如检査虚拟驱动器是否已被标识, 映射到映射文件等。
图4示出了虚拟机迁移的示例方法400,并且在一实施例中,该方法是确 定可通过存储阵列的存储接口来访问的LUN以方便虚拟机迁移的方法框306 的实现。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都 可以按任何次序组合以实现本方法或实现替换方法。
在框402,标识用于数据通信的、每一个LUN所映射到的存储接口的通 信端口。例如,在发起对虚拟机106的迁移之前,虚拟管理器102 (图1)可 标识用于数据通信的、LUN 120(1)和120(3)中的每一个所映射到的存储接口 116的通信端口 204 (图2)。
在框404,确定第一主计算机是否能够经由所标识的通信端口中的任一个 来访问存储阵列。如果第一主计算机无法经由所标识的通信端口中的任一个来 访问存储阵列(即,来自框404的"否"),则在框406,从第一主计算机的 虚拟机迁移不可行。
如果该第一主计算机能够经由所标识的通信端口中的任一个来访问存储 阵列(即,来自框404的"是"),则在框408确定第二主计算机是否能够经由所标识的通信端口中的任一个来访问该存储阵列。如果第二主计算机无法经 由所标识的通信端口中的任一个来访问存储阵列(即,来自框408的"否"), 则在框410,到第二主计算机的虚拟机迁移不可行。
如果第二主计算机能够经由所标识的通信端口中的任一个来访问存储阵
列(即,来自框408的"是"),则该虚拟机可从第一主计算机迁移到第二主 计算机。例如,在主计算机104(1)和104(2)两者都能够经由所标识的通信端口 204.中的至少一个(并且不必是同一通信端口)来访问存储阵列114的情况下, 虚拟管理器102可发起虚拟机106从主计算机104(1)到主计算机104(2)的迁移。 图5示出了其中可以实现虚拟机迁移的各实施例的示例虚拟化系统500。 在一实施例中,虚拟机可从定义虚拟机的模型的模板文件中来创建,并且该虚 拟机然后可迁移到一主计算机。在虚拟化系统500中,虚拟管理器502管理和 控制作为任何数量的虚拟机的虚拟主计算机的任何数量的主计算机,诸如主计 算机504。
虚拟管理器502可发起在可包括任何数量的物理驱动器和/或存储介质的 存储阵列508上对LUN 506的创建。存储阵列508经由数据网络512通过对 虚拟管理器502和主计算机504的存储接口 510来连接到网络。通信网络512 可被实现为具有任何类型的协议的任何类型的数据或通信网络,并且可被表示 或以其它方式实现为两个或更多网络的组合。例如,数据网络512可被实现为 将存储阵列508的存储接口 510通信地链接到虚拟管理器502和主计算机504 的光纤通道或iSCSI网络。
存储阵列508包括LUN 506,该LUN是表示通过存储阵列508来展示或 变得可用的存储单元的"逻辑单元号"。LUN 506可映射到存储阵列508中的 若干物理驱动器和/或存储介质,并且可被实现为任何类型的LUN。 LUN 506 具有标识哪一个设备可访问该LUN的LUN掩码514(A)。
在虚拟管理器502创建LUN 506后,该虚拟管理器502可去除该LUN对 该虚拟管理器的屏蔽以将该LUN与该虚拟管理器相关联。在该示例中,LUN 掩码514(A)最初将LUN506与虚拟管理器502相关联(由关联"A"示出)。 虚拟管理器502可发起从虚拟机模板.518中对虚拟机516的创建以使得该虚拟 机作为主计算机504的软件组件来创建。虚拟机516具有相关联的虚拟驱动器520,其被映射到存储阵列508的LUN 506并且由主机总线适配器522通过数 据网络512来连接。
在主计算机504上创建虚拟机516后,虚拟管理器502然后可去除LUN 506的屏蔽以便将该LUN从该虚拟管理器映射到主计算机504上的虚拟机516 的虚拟驱动器520。在该示例中,LUN掩码514(B)示出将LUN 506与主计算 机504相关联(由关联"B"示出)的己更新的屏蔽。
在虚拟机迁移的一实施例中,虚拟管理器502可在创建LUN 506和虚拟 机516时接收定义存储阵列508的可靠性配置等级的配置输入。例如,管理员 可发起对虚拟机的创建并且从配置用户界面中输入可靠性和配置信息,诸如关 于存储阵列508的特定RAID配置。
图6示出了虚拟机迁移的示例方法600,该方法包括从模板文件中创建虚 拟机,并且然后将该虚拟机迁移到主计算机。描述方法的次序并不旨在解释为 限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现 替换方法。
在框602,在存储阵列上创建LUN。例如,虚拟管理器502 (图5)发起 在存储阵列508上对LUN 506的创建。在框604,去除LUN对虚拟管理器的 屏蔽以将该LUN与该虚拟管理器相关联。例如,LUN 506具有最初标识哪一 个设备可访问该LUN的LUN掩码514(A)。去除LUN 514(A)对虚拟管理器502 的屏蔽以将该LUN与该虚拟管理器相关联。
在框606,从虚拟机模板中创建虚拟机。例如,虚拟机516可从虚拟机模 板518中作为主计算机504的软件组件来创建,并且该虚拟机516具有相关联 的虚拟驱动器520。在框608,在创建虚拟机时接收定义存储阵列的可靠性配 置等级的配置输入。例如,虚拟管理器502可在创建LUN 506和虚拟机516 时接收定义存储阵列508的可靠性配置等级的配置输入。
在框610,去除LUN的屏蔽以将该LUN从虚拟管理器映射到主计算机上 的虚拟机的虚拟驱动器。例如,虚拟管理器502可去除LUN 506的屏蔽以将 LUN 506从该虚拟管理器映射到主计算机504上的虚拟机516的虚拟驱动器 520。LUN掩码514(B)示出将LUN 506与主计算机504相关联的已更新的屏蔽。
图7示出了其中可以实现虚拟机迁移的各实施例的示例虚拟化系统700。在一实施例中,存储阵列上的数据库的关联可从第一主计算机上的虚拟机迁移
到第二主计算机上的虚拟机的实例化。在虚拟化系统700中,虚拟管理器702管理和控制主计算机704(1-2)。存储阵列706经由数据网络710通过对虚拟管理器702和主计算机704(1-2)的存储接口 708来连接到网络。
在该示例中,主计算机704(1)包括虚拟机712,而主计算机704(2)包括虚拟机714的实例化。虚拟化系统700是具有在两个不同的主计算机704(1-2)上运行的数据库应用程序(即,虚拟机712和虚拟机实例化714)的数据库系统的示例。虚拟机712和虚拟机实例化714各自被实现为各自主计算机的软件组件。
在该示例中,主计算机704(1)中的虚拟机712具有两个相关联的虚拟驱动器716(1-2)。类似地,主计算机704(2)中的虚拟机实例化714具有相关联的虚拟驱动器718。尽管虚拟机712被示为只具有两个相关联的虚拟驱动器,而虚拟机实例化714被示为只具有一个相关联的虚拟驱动器,但任何数量的虚拟驱动器可以与虚拟机相关联。虚拟驱动器716(1-2)和718各自可被实现为各自主计算机处的、映射到网络连接的存储阵列706上的物理驱动器的文件。存储阵列706可包括维护数据库应用程序(即,虚拟机712和虚拟机实例化714)的数据库数据的任何数量的物理驱动器和/或存储介质,诸如数据库720。
存储阵列706包括LUN 722,其将虚拟机712的虚拟驱动器716(1)映射到存储阵列706上的物理驱动器。LUN 722具有将主计算机704(1)标识为可访问LUN 722的对应的LUN掩码724。存储阵列706还包括LUN 726,其最初将虚拟机实例化714的虚拟驱动器718映射到存储阵列706上的数据库720 (例如,物理驱动器)。LUN726具有最初将主计算机704(2)标识为可访问该LUN(由关联"A"示出)的对应的LUN掩码728(B)。虚拟机712的虚拟驱动器716(1)被映射到LUN 722并且由主机总线适配器730(1)通过数据网络710来连接。类似地,虚拟机实例化714的虚拟驱动器718最初被映射到LUN 726并且由主机总线适配器732通过数据网络710来连接。
在该虚拟机迁移的实施例中,虚拟管理器702可去除LUN 726的屏蔽以将该LUN从主计算机724(2)映射到主计算机704(1)上的虚拟机712的虚拟驱动器716(2)。在该示例中,LUN掩码728(B)示出将LUN 726与主计算机704(1)相关联(由关联"B"示出)的己更新的屏蔽。在该实施例中,存储阵列706
上的、作为数据库应用程序的数据库的数据库720 (例如,物理驱动器)从主计算机704(2)迁移到主计算机704(1)。虚拟机712的虚拟驱动器716(2)然后被映射到LUN 726并且由主机总线适配器730(2)通过数据网络710来连接。
图8示出了示例计算机设备800的各个组件,该设备可被实现为用于实现虚拟机迁移的各实施例的任何形式的计算机、电子产品和/或基于计算的设备。例如,计算机设备800可被实现为参考图1-2描述的主计算机104(1-2)、参考图5描述的主计算机504或参考图7描述的主计算机704(1-2)中的任一个。
计算机设备800包括用于接收任何类型的数据输入的一个或多个输入接口 802。计算机设备800还包括通信接口 804,其可被实现为串行和/或并行接口、无线接口、任何类型的网络接口、调制解调器、以及用于诸如与联网设备和系统进行外部通信的任何其它类型的通信接口中的任一个或多个。
计算机设备800还包括一个或多个处理器806 (例如,微处理器、控制器等中的任一个)。处理器806处理用于控制计算机设备800的操作、与其他电子和计算设备进行通信以及实现虚拟机迁移的各实施例的各种计算机可执行指令。
计算机设备800可用诸如一个或多个存储器组件等计算机可读介质808来实现,存储器组件的示例包括随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存、EPROM、 EEPROM等中的任一个或多个)、以及盘存储设备。盘存储设备可以包括任何类型的磁性或光学存储设备,如硬盘驱动器、可记录和/或可重写压縮盘(CD) 、 DVD、 DVD+RW等。
计算机可读介质808提供存储诸如软件应用程序和涉及计算机设备800的操作方面的任何其它类型的信息和数据等各种信息和/或数据的数据存储机制。例如,操作系统810和/或其它应用程序812可以作为软件应用程序来用计算机可读介质808维护,并在处理器806上执行以实现虚拟机迁移的各实施例。
作为软件组件,虚拟机814和/或虚拟管理器816可以用计算机可读介质808来维护并在处理器806上执行以实现虚拟机迁移的各实施例。在各实施例中,虚拟管理器816发起并管理从一个主计算机到虚拟化系统中的另一个主计算机的虚拟机迁移。计算机设备800还可包括向音频呈现和/或显示系统提供音频和/或视频数
据的音频和/或视频输出818。音频呈现和/或显示系统可包括处理、显示、和/
或以其它方式呈现音频、视频、和图像数据的任何设备。视频信号和音频信号
可经由RF (射频)链路、S-视频链路、复合视频链路、分量视频链路、模拟音频连接、或其它类似的通信链路来从计算机设备800传送至显示设备。在一实现中,音频呈现和/或显示系统可以是计算机设备800的集成组件。
虽然单独地示出,但计算机设备800的某些组件可以用应用程序专用集成电路(ASIC)来实现。另外,系统总线(未示出)通常连接计算机设备800中的各个组件。系统总线可被实现为任何若干类型的总线结构中的一个或多
个,包括存储器总线或存储器控制器、外围总线、加速图形端口或使用各种总线体系结构中的任一种的局部总线。
尽管已经用结构特征和/或方法专用的语言描述了虚拟机迁移的各实施例,但是应该理解所附权利要求的主题不必限于所述的具体特征或方法。相反,这些具体特征和方法是作为虚拟机迁移的示例实现来公开的。
权利要求
1.一种方法(300),包括标识虚拟机(106)的、各自映射到存储阵列(114)的相应LUN(逻辑单元号)(120)的一个或多个虚拟驱动器(110)(302);将所述一个或多个虚拟驱动器(110)映射到存储在所述存储阵列(114)的LUN(120)上的映射文件(128)(304);去除每一个LUN(120)的屏蔽以将所述虚拟机(106)从第一主计算机(104(1))迁移到第二主计算机(104(2))(308);以及在所述第二主计算机(104(2))上根据所述映射文件(128)来创建所述虚拟机(108)以使得所述一个或多个虚拟驱动器(110)各自从所述存储阵列(114)的相应LUN(120)映射到所述第二主计算机(104(2))上的虚拟机(108)(314)。
2.如权利要求1所述的方法,其特征在于,还包括 从所述第一主计算机中删除所述虚拟机;以及 取消所述一个或多个虚拟驱动器与所述第一主计算机的关联。
3.如权利要求1所述的方法,其特征在于,标识所述一个或多个虚拟驱动 器、映射所述一个或多个虚拟驱动器、去除每一个LUN的屏蔽以及创建所述 虚拟机各自都是可重新开始的虚拟机迁移任务以使得如果任务无法完成,则所 述虚拟机迁移可从失败的任务重新开始。
4. 如权利要求1所述的方法,其特征在于,还包括确定每一个LUN都可 由所述第二主计算机通过所述存储阵列的存储接口来访问。
5. 如权利要求4所述的方法,其特征在于,还包括 标识用于数据通信的、每一个LUN所映射到的存储接口的一个或多个通信端口;确定所述第一主计算机是否能够经由一个或多个所标识的通信端口中的任一个来访问所述存储阵列;确定所述第二主计算机是否能够经由所述一个或多个所标识的通信端口 中的任一个来访问所述存储阵列;以及在所述第一主计算机能够经由所标识的通信端口中的至少一个来访问所 述存储阵列的情况下,并且在所述第二主计算机能够经由所标识的通信端口中 的至少一个来访问所述存储阵列的情况下,将所述虚拟机从所述第一主计算机 迁移到所述第二主计算机。
6. 如权利要求1所述的方法,其特征在于,去除每一个LUN对所述第二 主计算机的屏蔽包括将每一个LUN登录到将所述存储阵列的存储接口通信地 链接到所述第一主计算机和所述第二主计算机的iSCSI (因特网小型计算机系 统接口)网络。
7. 如权利要求1所述的方法,其特征在于,还包括根据定义所述LUN的 可靠性等级的配置可靠性信息来创建所述存储阵列的LUN。
8. —种虚拟化系统(100),包括被配置成在第一主计算机(104(1))上执行的虚拟机(106);存储阵列(114)的LUN (逻辑单元号)(120),所述LUN (120)被映 射到所述虚拟机(106)的虚拟驱动器(110);以及被配置成将所述LUN( 120)与所述虚拟机(106)的第一主计算机(104(1)) 相关联的LUN掩码(122),所述LUN掩码(122)能够被配置成去除所述 LUN (120)的屏蔽以将所述虚拟机(106)从所述第一主计算机(104(1))迁 移到第二主计算机(104(2))。
9. 如权利要求8所述的计算机系统,其特征在于,所述存储阵列的LUN 被配置成引用将所述虚拟机的虚拟驱动器映射到所述LUN的映射文件。
10. 如权利要求8所述的计算机系统,其特征在于,还包括虚拟管理器,其被配置成发起并管理所述虚拟机从所述第一主计算机到所述第二主计算机 的迁移。
11. 如权利要求10所述的计算机系统,其特征在于,所述虚拟管理器 还被配置成发起从所述第一主计算机中对所述虚拟机的删除,并发起对所述虚 拟驱动器与所述第一主计算机的关联取消。
12. 如权利要求10所述的计算机系统,其特征在于,所述虚拟管理器还被配置成确定所述LUN可由所述第二主计算机通过所述存储阵列的存储接 口来访问以方便所述虚拟机从所述第一主计算机到所述第二主计算机的迁移。
13. 如权利要求12所述的计算机系统,其特征在于,所述虚拟管理器还被配置成标识用于数据通信的、所述LUN所映射到的存储接口的一个或多个通信 端口;确定所述第一主计算机是否能够经由一个或多个所标识的通信端口中的 任一个来访问所述存储阵列;确定所述第二主计算机是否能够经由所述一个或多个所标识的通信端口 中的任一个来访问所述存储阵列;以及在所述第一主计算机能够经由所标识的通信端口中的至少一个来访问所述存储阵列的情况下,并且在所述第二主计筹机能够经由所标识的通信端口中 的至少一个来访问所述存储阵列的情况下发起并管理所述虚拟机从所述第一主计算机到所述第二主计算机的迁移。
14. 如权利要求8所述的计算机系统,其特征在于,还包括iSCSI(因 特网小型计算机系统接口)网络,其被配置成将所述存储阵列的存储接口通信 地链接到所述第一主计算机和所述第二主计算机,并且其中所述LUN在所述 LUN从所述第一主计算机中注销并登录到所述第二主计算机时去除对所述第 二主计算机的屏蔽。
15. —种或多种包括计算机可执行指令(816)的计算机可读存储介质(808),所述指令在被执行时指示虚拟管理器(502)发起在存储阵列(508)上对LUN (逻辑单元号)(506)的创建;去除所述LUN(506)对所述虚拟管理器(502)的屏蔽以将所述LUN(506)与所述虚拟管理器(502)相关联;发起从虚拟机模板(518)中对虚拟机(516)的创建,所述虚拟机(516)具有相关联的虚拟驱动器(520)并被配置成在主计算机(504)上执行;以及 去除所述LUN(506)的屏蔽以将所述LUN(506)从所述虚拟管理器(502)映射到所述主计算机(504)上的虚拟机(516)的虚拟驱动器(520)。
16. 如权利要求15所述的一种或多种计算机可读存储介质,其特征在 于,还包括在被执行时指示所述虚拟管理器在创建所述虚拟机时接收定义所述 存储阵列的可靠性配置等级的一个或多个配置输入的计算机可执行指令。
17. 如权利要求15所述的一种或多种计算机可读存储介质,其特征在 于,还包括在被执行时使得所述虚拟管理器执行以下动作的计算机可执行指令将所述虚拟驱动器映射到存储在所述存储阵列的LUN上的映射文件; 对另一主计算机去除来自所述主计算机的LUN的屏蔽以将所述虚拟机从所述主计算机迁移到该另一主计算机;以及发起在所述另一主计算机上根据所述映射文件的对所述虚拟机的创建以使得所述虚拟驱动器从所述存储阵列的LUN映射到所述另一主计算机上的虚拟机。
18. 如权利要求17所述的一种或多种计算机可读存储介质,其特征在 于,还包括在被执行时使得所述虚拟管理器执行以下动作的计算机可执行指令确定所述LUN可由所述另一主计算机通过所述存储阵列的存储接口来访问;标识用于数据通信的、所述LUN所映射到的存储接口的一个或多个通信 端口;确定所述主计算机是否能够经由一个或多个所标识的通信端口中的任一 个来访问所述存储阵列;确定所述另一主计算机是否能够经由所述一个或多个所标识的通信端口 中的任一个来访问所述存储阵列;以及在所述主计算机能够经由所标识的通信端口中的至少一个来访问所述存 储阵列的情况下,并且在所述另一主计算机能够经由所标识的通信端口中的至 少一个来访问所述存储阵列的情况下,发起所述虚拟机从所述主计算机到所述 另一主计算机的迁移。
19. 如权利要求15所述的一种或多种计算机可读存储介质,其特征在 于,还包括在被执行时指示所述虚拟管理器去除所述存储阵列上的另一 LUN 的屏蔽以将所述另一 LUN从另一主计算机迁移到所述主计算机上的虚拟机的 另一虚拟驱动器,所述虚拟驱动器和所述另一虚拟驱动器各自被映射到所述虚 拟机的相应数据库。
20. 如权利要求15所述的一种或多种计算机可读存储介质,其特征在 于,还包括在被执行时使得所述虚拟管理器执行以下动作的计算机可执行指 令发起在另一主计算机上对所述虚拟机的虚拟机实例化的创建,所述虚拟机实例化具有另一虚拟驱动器并被配置成在所述另一主计算机上执行;以及去除所述LUN的屏蔽以将所述LUN从所述主计算机映射到所述另一主计 算机上的所述虚拟机实例化的所述另一虚拟驱动器。
全文摘要
描述了虚拟机迁移。在各实施例中,虚拟机可利用LUN(逻辑单元号)屏蔽来从一个主计算机迁移到另一个主计算机。存储阵列的LUN可被映射到虚拟机的虚拟驱动器。将LUN与虚拟机的第一主计算机相关联的LUN掩码被配置成去除该LUN的屏蔽以将该虚拟机从该第一主计算机迁移到第二主计算机。
文档编号G06F15/16GK101669106SQ200880013414
公开日2010年3月10日 申请日期2008年3月20日 优先权日2007年4月25日
发明者D·兰吉高达, R·弗莱尔斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1