虚拟机迁移技术漫谈,第 2 部分

虚拟机迁移技术漫谈,第 2 部分
虚拟机迁移技术漫谈,第 2 部分

KVM 虚拟机在物理主机之间迁移的实现

如何从一台物理主机上迁移 KVM 虚拟机到另一台物理主机

郭晋兵, 软件工程师, IBM

丛彬彬, 软件工程师, IBM

简介:虚拟机的迁移使资源配置更加灵活,尤其是在线迁移技术,提高了虚拟服务器的可用性和可靠性。本文是虚拟机迁移技术漫谈系列的第二部分,详细介绍 KVM 虚拟机在物理主机之间的静态迁移和在线迁移特性,而且包括基于数据块的在线迁移实现。

发布日期: 2010 年 11 月 04 日

级别:初级

访问情况: 15504 次浏览

评论: 3 (查看 | 添加评论 - 登录)

平均分 (37个评分)

为本文评分

前言

虚拟机的迁移技术为服务器的虚拟化提供简便的方法。目前流行的虚拟化产品VMware,Xen,Hyper-V,KVM 都提供各自的迁移工具。其中 Linux 平台上开源的虚拟化工具 KVM 发展迅速,基于 KVM 的虚拟机的迁移特性也日趋完善。本文全面介绍 KVM 虚拟机在不同的应用环境下的静态迁移(离线迁移)和动态迁移(在线迁移),并且在最新发布的 Suse Linux Enterprise Edition 11 SP1 上分别演示如何应用 libvirt/virt-manager 图形化工具和基于命令行的 qemu-kvm 工具进行迁移操作。

V2V 虚拟机迁移的介绍

V2V 虚拟机的迁移是指在 VMM(Virtual Machine Monitor)上运行的虚拟机系统,能够被转移到其他物理主机上的 VMM 上运行。VMM 对硬件资源进行抽象和隔离,屏蔽了底层硬件细节。而迁移技术的出现,使得操作系统能在不同的主机之间动态的转移,进一步解除软,硬件资源之间的相关性。本系列的第一篇文章“虚拟机迁移技术漫谈”中,介绍了 V2V 迁移的三种方式,本文将更加详细的说明三种方式的不同和实现方法。

V2V 迁移方式的分类

静态迁移

静态迁移:也叫做常规迁移、离线迁移(Offline Migration)。就是在虚拟机关机或暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最

后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。

共享存储的动态迁移

动态迁移(Live Migration):也叫在线迁移(Online Migration)。就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理服务器进行离线维修或者升级。与静态迁移不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机的虚拟机上运行,当迁移进行到一定阶段,目的主机已经具备了运行虚拟机系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,虚拟机系统在目的主机上继续运行。对于虚拟机服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。动态迁移适用于对虚拟机服务可用性要求很高的场合。

目前主流的动态迁移工具,VMware 的 VMotion,Citrix 的XenMotion,他们都依赖于物理机之间采用 SAN (storage area network)或 NAS(network-attached storage)之类的集中式共享外存设备,因而在迁移时只需要进行虚拟机系统内存执行状态的迁移,从而获得较好的迁移性能。

图 1. 共享存储的动态迁移示意图

如图 1 中所示的动态迁移,为了缩短迁移时间和服务中断时间,源主机和目的主机共享了 SAN 存储。这样,动态迁移只需要考虑虚拟机系统内存执行状态的迁移,从而获得较好的性能。

本地存储的动态迁移

动态迁移基于共享存储设备,为的是加速迁移的过程,尽量减少宕机时间。但是在某些情况下需要进行基于本地存储的虚拟机的动态迁移,这就需要存储块动态迁移技术,简称块迁移。

?

比如某些服务器没有使用 SAN 存储,而且迁移的频率很小,虚拟机上的服务对迁移时间的要求不严格,则可以使用存储块动态迁移技术;另一方面,SAN 存储的价格比较高,尽管 SAN 存储能够提高迁移性能和系统的稳定性,对于中小企业仅仅为了加快迁移速度而配置昂贵的 SAN 存储,性价比不高。

?

在集中式共享外部存储的环境下,基于共享存储的动态迁移技术无疑能够工作得很好。但是,考虑到目前一些计算机集群并没有采用共享式外存,而是各自独立拥有本地外存的物理主机构成。基于共享存储的迁移技术在这种场合下受到限制,虚拟机迁移到目的主机后,不能访问其原有的外存设备,或者需要源主机为其外存访问提供支持。

为了拓宽动态迁移技术的应用范围,有必要实现一个包括虚拟机外存迁移在内的全系统动态迁移方案。使得在采用分散式本地存储的计算机集群环境下,仍然能够利用迁移技术转移虚拟机环境,并且保证迁移过程中虚拟机系统服务的可用性。

图 2. 本地存储的动态迁移示意图

相比较基于共享存储的动态迁移,数据块动态迁移的需要同时迁移虚拟机磁盘镜像和虚拟机系统内存状态,延长了迁移时间,在迁移性能上打了折扣。

KVM 虚拟机的管理工具

准确来说,KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。

?

QEMU-KVM:在 Linux 系统中,首先我们可以用 modprobe 系统工具去加载 KVM 模块,如果用 RPM 安装KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM 的开发者选择了已经成型的开源虚拟化软件 QEMU。QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 的 CPU 上虚拟一个 Power 的 CPU,并利用它编译出可运行在 Power 上的程序。KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的

用户空间工具 QEMU-KVM。所以 Linux 发行版中分为kernel 部分的KVM 内核模块和 QEMU-KVM 工具。

这就是 KVM 和 QEMU 的关系。

Libvirt、virsh、virt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat 为 KVM 开发了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令—— virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-

manager。他是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt 的 API 实现的。

?

以上这些就是 Linux 系统上 KVM 虚拟化技术的大致架构了。本文正是演示了如何使用这些工具实现了 KVM 虚

拟机的迁移操作。

本文的实验环境介绍

本文中的 KVM 虚拟机软件基于 Novell 公司的Suse Linux Enterprise Server 11 Service Pack 1 发行版。SLES11 SP1 发布于 2010 年 5 月 19 日,基于 Linux 内核 2.6.32.12,包含了 kvm-0.12.3,libvirt-0.7.6,virt-manager-0.8.4,全面支持 KVM 虚拟机。本文中的物理服务器和外部共享存储配置如下表:

表 1. 硬件配置

物理主机硬件配置Host OS Host Name IP Address

源主机Source Host Xeon(R) E5506 x 4 core

MEM: 10GB

SLES11 SP1 vicorty3 192.168.0.73

目的主机Destination Host Xeon(R) E5506 x 8 core

MEM: 18GB

SLES11 SP1 victory4 192.168.0.74

NFS Server Pentium(R) D x 2 core

MEM: 2G

SLES11 SP1 server17 192.168.0.17

创建 KVM 虚拟机

迁移虚拟机之前,我们需要创建虚拟机。创建虚拟机可以使用 QEMU-KVM 命令或者通过 virt-manager 图形化管理工具。

QEMU-KVM 创建虚拟机镜像文件:见本文的参考资源“KVM 虚拟机在IBM System x 上应用”。

?

virt-manager 创建虚拟机:参考 virt-manager 帮助手册。

?

KVM 虚拟机静态迁移

静态迁移由于允许中断虚拟机的运行,所以相对简单。首先在源主机上关闭虚拟机,然后移动虚拟机的存储镜像和配置文件到目的主机,最后在目的主机上启动虚拟机,恢复服务。根据虚拟机镜像存储方式的不同,静态迁移的实现方法稍有不同。

虚拟机之间使用共享存储

如果源主机和目的主机都能够访问虚拟机的镜像,则只需要迁移虚拟机配置文件。比如在本例中的 SLES11 SP1 系统,virt-manager 管理的虚拟机配置文件在 /etc/libvirt/qemu/”your vm name.xml”。拷贝 XML 配置文件到目的主机的相同目录后,进行适当的修改,比如:与源主机相关的文件或路径等。无论你何时在 /etc/libvirt/qemu/ 中修改了虚拟机的 XML 文件,必须重新运行 define 命令,以激活新的虚拟机配置文件。

清单 1. 激活虚拟机配置文件

# virsh define /etc/libvirt/qemu/”your vm name.xml”

虚拟机镜像使用本地存储

本地存储是指虚拟机的文件系统建立在本地硬盘上,可以是文件或者磁盘分区。

本地文件存储:如果虚拟机是基于镜像文件,直接从源主机拷贝镜像文件和XML 配置文件到目的主机中,然后对 XML 进行适当的修改并激活。

?

?

本地磁盘分区:如果虚拟机使用了磁盘分区(物理分区或者逻辑分区)为存储设备,首先用 dump 工具把磁盘分区转换成镜像文件再拷贝到目的主机。在目的主机恢复虚拟机时,把镜像文件恢复到目的主机的磁盘分区中去。对于虚拟机系统使用了多个磁盘分区的,需要每个分区单独 dump 成镜像文件。例如使用

“/dev/VolGroup00/lv001” LVM 逻辑卷作为存储设备,可以使用下面的命令输出成镜像文件:

清单 2. 转换逻辑卷为镜像文件

dd if=/dev/VolGroup00/lv001 of=lv001.img bs=1M

保存虚拟机的运行状态

静态迁移虚拟的过程中,虚拟机系统处于关机状态,这样虚拟机关机前的运行状态不会保留。如果希望保留迁移前的系统状态,并且在迁移后能够恢复,需要对虚拟机做快照备份或者以休眠的方式关闭系统,详细内容和实现方法将在本系列文章的第五部分介绍。

基于共享存储的动态迁移

本文前面“V2V 迁移方式的分类”小节中介绍过,跟据虚拟机连接存储方式的不同,动态迁移分为基于共享存储的动态迁移和基于本地存储的存储块迁移。本小节实现了目前使用最广泛的基于共享存储的动态迁移。实现这种实时迁移的条件之一就是把虚拟机存储文件存放在公共的存储空间。因此需要设定一个共享存储空间,让源主机和目的主机都能够连接到共享存储空间上的虚拟媒体文件,包括虚拟磁盘、虚拟光盘和虚拟软盘。否则,即使迁移完成以后,也会因为无法连接虚拟设备,导致无法启动迁移后的虚拟机。

设置实验环境

动态迁移实际上是把虚拟机的配置封装在一个文件中,然后通过高速网络,把虚拟机配置和内存运行状态从一台物理机迅速传送到另外一台物理机上,期间虚拟机一直保持运行状态。现有技术条件下,大多虚拟机软件如VMware、Hyper-V、Xen 进行动态迁移都需要共享存储的支持。典型的共享存储包括 NFS 和 SMB/CIFS 协议的网络文件系统,或者通过 iSCSI 连接到 SAN 网络。选用哪一种网络文件系统,需要根据具体情况而定。本文的实验采用了 NFS 文件系统作为源主机和目的主机之间的共享存储。

图 3. 共享存储的动态迁移实验配置图

确保网络连接正确,源主机、目的主机和 NFS 服务器之间可以互相访问。

a.

b.

确保源主机和目的主机上的 VMM 运行正常。

c.

设置 NFS 服务器的共享目录。本文的 NFS 服务器也安装了 SLES11 SP1 操作系统。

清单 3. 配置 NFS 服务

修改 /etc/exports 文件,添加

/home/image *(rw,sync,no_root_squash)

rw:可读写的权限;

ro:只读的权限;

no_root_squash:登入到 NFS 主机的用户如果是 ROOT 用户,他就拥有 ROOT 权限,此参数很不安全,建议不要使用。

sync:资料同步写入存储器中。

async:资料会先暂时存放在内存中,不会直接写入硬盘。

重新启动 nfsserver 服务

# service nfsserver restart

使用 virt-manager 进行动态迁移

virt-manager 是基于 libvirt 的图像化虚拟机管理软件,请注意不同的发行版上virt-manager 的版本可能不同,图形界面和操作方法也可能不同。本文使用了 SLES11 SP1 发行版上的 virt-manager-0.8.4。

首先在源主机和目的主机上添加共享存储。这里以源主机为例,目的主机做相同的配置。

添加 NFS 存储池到源主机和目的主机的vit-manager 中。点击Edit menu->Host Details->Storage tab 。 图 4. 存储池配置图

?

添加一个新的存储池。点击左下角的“+”号,弹出一个新的窗口。输入以下参数:

?Name :存储池的名字。

?Type :选择 netfs :Network Exported Directory 。因为本文使用了NFS 作为共享存储协议。

图 5. 添加共享存储池

?

点击“Forward”后,输入以下参数:

?Target Path :共享存储在本地的映射目录。本文中这个目录在源主机和目的主机上必须一致。?

Format :选择存储类型。这里必须是nfs 。?

Host Name :输入共享存储服务器,也就是NFS 服务器的IP 地址或hostname 。?

Source Path :NFS 服务器上输出的共享目录。

图 6. 存储池设置 ?

点击”Finish”后,共享存储添加成功。此时在物理机上查看 Linux 系统的文件系统列表,可以看到共享存储映射的目录。

?源主机上创建基于共享存储的 KVM 虚拟机。

选择共享存储池,点击”New Volume”创建新的存储卷。

?输入存储卷参数。本例为虚拟机创建了大小为 10G ,格式为 qcow2 的存储卷。

图 7. 添加存储卷

?

在这个共享存储卷上创建虚拟机。本文创建了一个基于 Window 2008 R2 系统的虚拟机。创建虚拟机的具体步骤见本文前面“创建 KVM 虚拟机“小节。

?连接远程物理主机上的 VMM 。这里以源主机为例,目的主机做相同的配置。

在源主机上打开 virt-manager 应用程序,连接 localhost 本机虚拟机列表。点击 File->Add Connection ,弹出添加连接窗口,输入以下各项:

?Hypervisor :选择 QEMU 。

?Connection :选择连接方式 。本文选择 SSH 连接。

?Hostname :输入将要连接的主机名或 IP 地址,这里填写目的主机名 victory4。

图 8. 添加远程 VMM 连接

?

点击 Connect ,输入 SSH 连接的密码后,将显示源主机和目的主机上的虚拟机列表。

?

图 9. 管理远程 VMM

从源主机动态迁移 KVM 虚拟机到目的主机。

在源主机上启动虚拟机 Windwos 2008 R2。?在虚拟机中,开启实时网络服务(用来验证迁移过程中服务的可用性)。

?开启远程连接服务remote access ,在其他主机上远程连接此虚拟机。

?开启网络实时服务。例如打开浏览器并且播放一个实时网络视频。

?准备动态迁移,确保所有的虚拟存储设备此时是共享的,包括 ISO 和 CDROM 。

?在源主机的 virt-manager 窗口中,右键点击等待迁移的虚拟机,选择“Migrate ”。

?New host :选择目的主机的 hostname 。

?Address :填入目的主机的 IP 地址。

?Port and Bandwith :指定连接目的主机的端口和传输带宽,本文中没有设定,使用默认设置。

? 图 10. 虚拟机迁移设置

点击“Migrate”和“Yes”开始动态迁移虚拟机。

图 11. 虚拟机迁移进度

?

动态迁移的时间与网络带宽、物理主机的性能和虚拟机的配置相关。本实验中的网络连接基于 100Mbps 的以太网,整个迁移过程大约耗时 150 秒。使用 RDC (Remote Desktop Connection )远程连接虚拟机在迁移过程中没有中断;虚拟机中播放的实时网络视频基本流畅,停顿的时间很短,只有 1 秒左右。如果采用

1000Mbps 的以太网或者光纤网络,迁移时间将会大大减少,而虚拟机服务停顿的时间几乎可以忽略不计。?

?

迁移完成后,目的主机的 VMM 中自动创建了一个同名的 Windows 2008 R2 虚拟机,并且继续提供远程连接服务和播放在线视频。源主机上的虚拟机变为暂停状态,不再提供服务。至此,动态迁移胜利完成。

基于数据块的动态迁移

从 qemu-kvm-0.12.2 版本,引入了 Block Migration (块迁移)的特性。上一小节“基于共享存储的动态迁移”中,为了实现动态迁移,源主机和目的主机需要连接共享存储服务。有了块迁移技术以后,可以在动态迁移过程中,把虚拟磁盘文件从源主机迁移至目的主机。QEMU-KVM 有了这个特性以后,共享存储不再是动态迁移的必要条件,从而降低了动态迁移的难度,扩大了动态迁移的应用范围。SLES11 SP1 集成了 kvm-0.12.3,支持块迁移特性。但是 SLES11 SP1 上的 libvirt-0.7.6、virt-manager-0.8.4 暂时没有引入块迁移的功能。所以本文下面的块迁移实验仅基于 QEMU-KVM 的命令行模式。

设置实验环境

块迁移过程中,虚拟机只使用本地存储,因此物理环境非常简单。只需要源主机和目的主机通过以太网连接,如”图 2. 本地存储的动态迁移示意图”所示。

QEMU 的控制终端和迁移命令

QEMU 控制终端的开启,可以在 QEMQ-KVM 的命令中加参数“-monitor”。

?

-monitor stdio:输出到文本控制台。

?

-monitor vc:输出到图形控制台。

?

图形控制台和虚拟机 VNC 窗口的切换命令是:

?

Ctrl+Alt+1: VNC window

?

Ctrl+Alt+2: monitor console

?

Ctrl+Alt+3: serial0 console

?

Ctrl+Alt+4: parallel0 console

QEMU-KVM 提供了的“-incoming”参数在指定的端口监听迁移数据。目的主机上需要此参数接收来自源主机的迁移数据。

清单 4. 迁移相关的 QEMU 命令

(qemu) help migrate

migrate [-d] [-b] [-i] uri -- migrate to URI (using -d to not wait for completion)

-b for migration without shared storage with full copy of disk

-i for migration without shared storage with incremental copy of disk

(base image shared between src and destination)

使用 QEMU-KVM 进行数据块动态迁移

在源主机上创建和启动虚拟机。

?

在本地磁盘上创建虚拟机镜像文件。本文创建了大小为 10G,qcow2 格式的本地镜像文件。

清单 5. 源主机上创建虚拟机

victory3:~ # qemu-img create -f qcow2 /var/lib/kvm/images/sles11.1ga/disk0.qcow2 10G

?

在镜像文件上安装虚拟机。本文在虚拟机中安装了 SLES11SP1 系统。

清单 6. 源主机上安装虚拟机

victory3:~ # /usr/bin/qemu-kvm -enable-kvm -m 512 -smp 4 -name sles11.1ga

-monitor stdio -boot c -drive file=/var/lib/kvm/images/sles11.1ga/disk0.qcow2,

if=none,id=drive-virtio-disk0,boot=on -device virtio-blk-pci,bus=pci.0,

addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive

file=/media/83/software/Distro/SLES-11-SP1-DVD-x86_64-GM-DVD1.iso,

if=none,media=cdrom,id=drive-ide0-1-0 -device ide-drive,bus=ide.1,

unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device virtio-net-pci,vlan=0,

id=net0,mac=52:54:00:13:08:96 -net tap -vnc 127.0.0.1:3

?

虚拟机安装完毕后,以下列命令启动虚拟机。添加了“-monitor stdio”是为了开启文本控制台;去掉了虚拟光驱中的 ISO 文件是为了保证迁移时,源主机和目的主机上虚拟设备的一致性。如果你在目的主机的相同路径下存在相同名字的 ISO 文件,则可以在迁移时保留 ISO 文件参数。

清单 7. 源主机上启动虚拟机

victory3:~ # /usr/bin/qemu-kvm -enable-kvm -m 512 -smp 4 -name sles11.1ga

-monitor stdio -boot c -drive file=/var/lib/kvm/images/sles11.1ga/disk0.qcow2,

if=none,id=drive-virtio-disk0,boot=on -device virtio-blk-pci,bus=pci.0,addr=0x4,

drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,

id=drive-ide0-1-0 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,

id=ide0-1-0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:13:08:96

-net tap -vnc 127.0.0.1:3

在目的主机上创建和启动虚拟机。

?

在目的主机上为迁移后的系统创建镜像文件,文件的大小必须大于或等于源主机的镜像文件大小。

清单 8. 目的主机上创建虚拟机

victory4:~ # qemu-img create -f qcow2 dest.img 20G

Formatting 'dest.img', fmt=qcow2 size=21474836480 encryption=off cluster_size=0

?

使用与源主机上相同的 qemu-kvm 参数,更改镜像文件为目的主机上创建的镜像文件,加上 -incoming 参数指定动态迁移所使用的协议、IP 地址和端口号。因为 -incoming 参数的作用是监听端口,所以目的主机上的虚拟机一启动就处于 paused 状态,等待源主机上虚拟机开始迁移。本例中块迁移使用 TCP 协议,目的主机上的监听端口是 8888 端口。

清单 9. 目的主机上的迁移命令

victory4:~ # /usr/bin/qemu-kvm -enable-kvm -m 512 -smp 4 -name sles11.1ga

-monitor stdio -boot c -drive file=/root/dest.img,if=none,id=drive-virtio-disk0,

boot=on -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,

id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-1-0 -device ide-drive,

bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -device virtio-net-pci,vlan=0,

id=net0,mac=52:54:00:13:08:96 -net tap -vnc 127.0.0.1:8 -incoming tcp:0:8888

QEMU 0.12.3 monitor - type 'help' for more information

(qemu) info status

VM status: paused

迁移源主机上的虚拟机到目的主机。

?

回到源主机上,在等待迁移的虚拟机中开启一些实时服务以验证动态迁移不会中断服务的运行。本例中在虚拟机的终端窗口中用“top -d 1“命令开启 TOP 服务,每秒刷新一次系统进程的信息。

图 12. 等待迁移的虚拟机中开启 TOP 服务

?

在源主机的 QEMU 控制台中输入以下迁移命令,迁移开始。

清单 10. 源主机迁移命令

(qemu) migrate -d -b tcp:victory4:8888

-d 可以在迁移的过程中查询迁移状态,否则只能在迁移结束后查询。

-b 迁移虚拟机存储文件

tcp:ivctory4:8888 数据迁移的协议、目的主机和端口。协议和端口必须和目的主机上虚拟机的 -incoming 参数一致。

?

动态迁移期间,源主机的虚拟机继续运行,TOP服务没有中断。同时可以在源主机的 QEMU 控制台查询迁移的状态。目的主机的虚拟机处于 paused 状态,从目的主机的 QEMU 控制台可以看到迁移进度的百分比。

清单 11. 监视虚拟机迁移过程

源主机 QEMU 控制台显示正在迁移的数据

(qemu) info migrate

Migration status: active

transferred ram: 52 kbytes

remaining ram: 541004 kbytes

total ram: 541056 kbytes

transferred disk: 2600960 kbytes

remaining disk: 5787648 kbytes

total disk: 8388608 kbytes

目的主机 QEMU 控制台显示迁移完成的百分比

(qemu) Receiving block device images

Completed 28 %

?

直到动态迁移完成,源主机的虚拟机变成 paused 状态而目的主机上的虚拟机由 paused 状态变成运行状态,TOP 服务继续运行且没有中断。

?

关闭源主机的虚拟机,所有服务已经迁移到了目的主机,至此迁移完成。

小结

本文实现了在 Suse Linux Enterprise Server 11 SP1 发行版上KVM 虚拟机的静态迁移和动态迁移,特别是基于数据块的动态迁移,使虚拟机的资源配置更加灵活。在其他支持 KVM 的 Linux 发行版上如 Ubuntu、Fedora 也可以完

成类似的迁移操作。KVM 虚拟机在不断的增强和完善中,开源社区和 Linux 的系统集成商也在开发各种各样的基于 KVM 的管理工具,将来的 KVM 迁移工具会在性能,功能,可操作性和自动化程度上大大增强。

参考资料

学习

?

参考 developerWorks 上的文章“Libvirt 虚拟化库剖析“,了解关于 Libvirt 的用途和构架。

?

参考 developerWorks 上的文章“KVM 虚拟机在 IBM System x 上应用”,了解如何在 Linux 上使用 QEMU-KVM 安装配置 KVM 虚拟机。

?

参考 developerWorks 上的文章“探索 Linux 内核虚拟机”,学习 KVM 架构及其优点。

?

在developerWorks Linux 专区寻找为 Linux 开发人员(包括Linux 新手入门)准备的更多参考资料,查阅我们最受欢迎的文章和教程。

?

在 developerWorks 上查阅所有Linux 技巧和Linux 教程。

?

随时关注 developerWorks 技术活动和网络广播。

讨论

?

欢迎加入My developerWorks 中文社区。

作者简介

郭晋兵,软件工程师,目前在 IBM 中国软件开发中心从事 KVM 相关软件的开发测试工作。

丛彬彬,软件工程师,目前在 IBM 中国软件开发中心从事 KVM 相关软件的开发测试工作。

关闭 [x]

developerWorks:登录

如果您还没有注册到 IBM 注册系统,我们为给您带来的不便表示道歉,并请您马上注册。现在注册。

IBM ID :

忘记 IBM ID?

密码:

忘记密码?

更改您的密码

登录之后:

留在当前页面

保持登录。

单击提交则表示您同意developerWorks 的条款和条件。查看条款和条件

提交取消

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

关闭 [x]

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。您的昵称在developerWorks社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

昵称:(长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。查看条款和条件.

提交取消

所有提交的信息确保安全。

平均分 (37个评分)

1 星 1 星

2 星

2 星

3 星

3 星

4 星

4 星

5 星

5 星

提交

添加评论:

请登录或注册后发表评论。

注意:评论中不支持 HTML 语法

有新评论时提醒我剩余 1000 字符

发布

共有评论 (3)

本文中说明了“使用 QEMU-KVM 进行数据块动态迁移”。virsh基于QEMU的API封装,只是参数的不同。我没有具体实施实施过virsh的块迁移命令,即提供一些资料给你吧:

https://https://www.360docs.net/doc/0713785646.html,/archives/libvirt-users/2011-February/msg00026.html

https://www.360docs.net/doc/0713785646.html,/page/FAQ

请注意:

1. 在线的块迁移需要在源和目的端设置好网络和虚拟化环境,配合进行。

2. 尽量在最新的libvirt库上进行试验,RHEL6.1或Fedora16。应为libvir和QEMU开发很快,新功能得不到充分测试,潜在问题较多。

由JinBingGuo于 26 10 2011

报告滥用

virsh支持p2p是从RHEL5.6才开始支持的。

由platformer于 24 10 2011

报告滥用

请问您有没有用virsh试过块迁移呢,能否提供点资料或者例子。

主要是这个命令的用法 ,网上的资料不是很多。由platformer于 24 10 2011

报告滥用

虚拟机迁移技术漫谈,第 2 部分

KVM 虚拟机在物理主机之间迁移的实现 如何从一台物理主机上迁移 KVM 虚拟机到另一台物理主机 郭晋兵, 软件工程师, IBM 丛彬彬, 软件工程师, IBM 简介:虚拟机的迁移使资源配置更加灵活,尤其是在线迁移技术,提高了虚拟服务器的可用性和可靠性。本文是虚拟机迁移技术漫谈系列的第二部分,详细介绍 KVM 虚拟机在物理主机之间的静态迁移和在线迁移特性,而且包括基于数据块的在线迁移实现。 发布日期: 2010 年 11 月 04 日 级别:初级 访问情况: 15504 次浏览 评论: 3 (查看 | 添加评论 - 登录) 平均分 (37个评分) 为本文评分 前言 虚拟机的迁移技术为服务器的虚拟化提供简便的方法。目前流行的虚拟化产品VMware,Xen,Hyper-V,KVM 都提供各自的迁移工具。其中 Linux 平台上开源的虚拟化工具 KVM 发展迅速,基于 KVM 的虚拟机的迁移特性也日趋完善。本文全面介绍 KVM 虚拟机在不同的应用环境下的静态迁移(离线迁移)和动态迁移(在线迁移),并且在最新发布的 Suse Linux Enterprise Edition 11 SP1 上分别演示如何应用 libvirt/virt-manager 图形化工具和基于命令行的 qemu-kvm 工具进行迁移操作。 V2V 虚拟机迁移的介绍 V2V 虚拟机的迁移是指在 VMM(Virtual Machine Monitor)上运行的虚拟机系统,能够被转移到其他物理主机上的 VMM 上运行。VMM 对硬件资源进行抽象和隔离,屏蔽了底层硬件细节。而迁移技术的出现,使得操作系统能在不同的主机之间动态的转移,进一步解除软,硬件资源之间的相关性。本系列的第一篇文章“虚拟机迁移技术漫谈”中,介绍了 V2V 迁移的三种方式,本文将更加详细的说明三种方式的不同和实现方法。 V2V 迁移方式的分类 静态迁移 静态迁移:也叫做常规迁移、离线迁移(Offline Migration)。就是在虚拟机关机或暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最 后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。 共享存储的动态迁移 动态迁移(Live Migration):也叫在线迁移(Online Migration)。就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理服务器进行离线维修或者升级。与静态迁移不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机的虚拟机上运行,当迁移进行到一定阶段,目的主机已经具备了运行虚拟机系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,虚拟机系统在目的主机上继续运行。对于虚拟机服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。动态迁移适用于对虚拟机服务可用性要求很高的场合。 目前主流的动态迁移工具,VMware 的 VMotion,Citrix 的XenMotion,他们都依赖于物理机之间采用 SAN (storage area network)或 NAS(network-attached storage)之类的集中式共享外存设备,因而在迁移时只需要进行虚拟机系统内存执行状态的迁移,从而获得较好的迁移性能。

将实体机迁移到VMware虚拟机

将实体机迁移到VMware虚拟机原来如此容易分类:摆电脑的聊斋 | 标签:虚拟机vmware ghost converter 驱动 2013-07-28 22:57阅读(3970)评论(0)在虚拟化大行其道并有一统天下趋势的今天,相信很多企业都准备运用虚拟化这一综合解决方案,可摆在技术人员面前的却有这样一个问题:如何将现有的服务器系统原封不动的迁移到虚拟机中去? 前几天我在windows2003环境下做了这方面的尝试,试用过很多 方法,最终发现一个最简单的方法可实现,虚拟机已运行几日,一切 正常。现记录下来分享,避免大家再像我一样走那么多不必要的弯路。 首先,做好充分的准备工作: 1、在承载虚拟机的物理宿主机上安装VMware workstation虚 拟机系统(我安装的是9.0中文版),设置好常规参数(也可以什么参 数都不设置)、准备好虚拟机存放文件夹并将其设置为隐藏式共享、 权限设置为everyone和guests(避免未启用本地安全策略中的“将 everyone权限应用于匿名用户”)可读取和写入,以备存放转换好的 虚拟机文件。 利用网络地址存放转换后的文件至少有两个好处:转换和存放一 次完成、完成后即可使用,不需要再复制以节省时间;速度更快,1000M 网络传输的速度远大于硬盘内的数据交换速度。 2、在即将被虚拟的实体机上安装 VMware vCenter Converter Standalone软件,选择本地安装(我 安装的是5.0中文版)。

3、退出实体机上的杀毒软件、关闭正在下载的更新、清理系统垃圾和不需运行的进程(正在运行的服务不用停止、也不需要整理磁盘)。 接着,执行实体机到虚拟机的转换工作: 1、打开Converter软件,登录到本机,执行“转换计算机”进入转换向导;源系统为已打开电源的计算机、此本地计算机;若数据不是很多建议选择本地所有分区,否则不能保留原有的硬盘分区结构,以后变更会稍显麻烦;设置转换目的地址为刚才共享的路径,形式为“\\192.168.x.x\sharename$”;其他选项使用默认值即可,尤其是勾选所运行的服务环节。我20多G的内容转换及存储仅10分多钟就完成了,速度确实很快。 在转换完成后,实体机的界面可能会变得比较吓人(因为在转换时去除了一些驱动及有可能不兼容的内容,以便于系统封装),此时不要惊慌,直接重启实体机它会自行恢复。 2、修改计算机名和IP地址,避免虚拟机启动后出现“网络上有重名”和“IP地址冲突”。 最后,运行该虚拟机: 1、在承载虚拟机的宿主机上打开VMware workstation,选择打开虚拟机,路径为刚设置共享的文件夹,这里要注意一点:若实体机仍在运行且未改名,须将虚拟机的网络适配器属性设置为NAT方式(待设置完成、无冲突后再改为桥接方式),避免首次开机提示“网络上有重名”而无法登录,然后再打开虚拟机电源。

(完整版)虚拟机迁移原理详解

虚拟机到虚拟机的迁移(Virtual-to-Virtual) V2V 迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件。虚拟机从一个物理机上的VMM 迁移到另一个物理机的VMM,这两个VMM 的类型可以相同,也可以不同。如VMware 迁移到KVM,KVM 迁移到KVM。可以通过多种方式将虚拟机从一个VM Host 系统移动到另一个VM Host 系统。 V2V 离线迁移 离线迁移(offline migration):也叫做常规迁移、静态迁移。在迁移之前将虚拟机暂停,如果共享存储,则只拷贝系统状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。如果使用本地存储,则需要同时拷贝虚拟机镜像和状态到目的主机。到这种方式的迁移过程需要显示的停止虚拟机的运行。从用户角度看,有明确的一段服务不可用的时间。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。 V2V 在线迁移 在线迁移(online migration):又称为实时迁移(live migration)。是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移,其逻辑步骤与离线迁移几乎完全一致。不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机运行,当迁移进行到一定阶段,目的主机已经具备了运行系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,服务在目的主机上继续运行。对于服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。在线迁移适用于对服务可用性要求很高的场景。 目前主流的在线迁移工具,都要求物理机之间采用SAN(storage area network),NAS(network-attached storage)之类的集中式共享外存设备,因而在迁移时只需要考虑操作系统内存执行状态的迁移,从而获得较好的迁移性能。

11虚拟机迁移

虚拟机迁移 静态迁移是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上。这种方式需要显式的停止虚拟机运行,对服务可用性要求高的需求不合适。 动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件,可以通过多种方式实现,本例采用基于共享存储动态迁移,通过NFS(Network File System网络文件系统)来实现。 源宿主机:Ubuntu16.04操作系统,下文中以“节点1”表示,NFS挂载目录/home/kvm。 目标宿主机:Ubuntu16.04操作系统,下文中以“节点2”表示,NFS挂载目录/home/kvm。 基于QEMU的动态迁移虚拟机镜像文件为ubuntu14.04.img。 NFS服务器:Ubuntu16.04操作系统,服务目录为/mnt/nfs/。 1、NFS服务器配置 (1)KVM虚拟机动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的 主机之间有相同的目录结构放置虚拟机磁盘文件(本例为“/home/kvm”目录),这里的动态迁移是基于共享存储动态迁移,通过NFS来实现,需要QEMU 0.12.2以上版本支持。可以使用“qemu-img --help|grep version”来查看 安装的QEMU的版本号。 (2)在VMware中将宿主机克隆,“管理”----“克隆”。源宿主机为节点1,克 隆的机器作为目标宿主机,为节点2。克隆步骤如下:

(3)修改节点2中的IP地址(修改为和你的节点1同一网段的IP)。只需修改 IP即可,其他不用改动,命令如下: root@ubuntu:~# vim /etc/network/interfaces 修改完毕后,重启网络 root@ubuntu:~# /etc/init.d/networking restart [ ok ] Restarting networking (via systemctl): networking.service. (4)在节点2上安装NFS服务器。使用命令“sudo apt-get install nfs-kernel-server nfs-common”下载安装NFS,kernel-server相当于server端,common是client端,如图所示:

云计算中虚拟机实时迁移技术的鲁棒性研究

云计算中虚拟机实时迁移技术的鲁棒性研究 云计算中采用虚拟机实时迁移技术实现数据中心资源的动态调度和管理。作为虚拟机实时迁移技术的核心,实时迁移算法目前虽然在运行性能方面表现良好,但在抗主机故障、网络故障、恶意攻击等鲁棒性方面仍存在不足,进而在这些异常或危险情况下无法保证实时迁移过程顺利完成,甚至干扰虚拟机内业务正常运行。本文对虚拟机实时迁移技术中关键算法的鲁棒性进行分析研究,指出其中所存在的问题,并提出相应的解决思路。 【关键词】虚拟机实时迁移云计算鲁棒性 1 引言 云计算将IT 软硬件资源通过网络以服务的模式提供给最终用户,使得用户能够按需使用、计量付费。基于laaS(基础设施即服务)云计算平台的应用较为普遍,其主要采用虚拟化技术将CPU存储、硬盘、网络等资源以虚拟机的访问进行封装、分配、调度及管理。用户在云平台提供的虚拟机上能够快速、高效、廉价地搭建自己的lT 基础设施平台。 虚拟机实时迁移是laaS云计算平台的一项关键核心技术, 其基于实时迁移算法将某台物理主机上正在运行的虚拟机在线地移动到另一台物理主机上,期间虚拟机正常提供对外服务。当前主流的实时迁移算法虽然在运行性能方面较为良好,但是在抗主机故

障、网络抖动、恶意攻击等鲁棒性方面还存在一些问题。本文分析了实时迁移算法所存在的鲁棒性问题并提出了相应的几个对策。 2 实时迁移算法由于目前数据中心多采用共享存储架构,因此实时迁移的主要对象是虚拟机的内存镜像、vCPU及I/O寄存器状态数 据。主流的实时迁移算法根据迁移对象先后次序的不同划分为预拷贝Pre-copy和后拷贝Post-copy两种。 Pre-copy 是最先出现的实时迁移算法,其主要运行流程如下: (1)实时迁移过程开始,源宿主机与目标宿主机建立连接,目标宿主机上预留虚拟机资源; (2)首先将虚拟机的整个内存镜像,即所有内存页面传输过去; (3)进入一个迭代拷贝阶段,每个迭代轮传输上一轮中产生的内存脏页; (4)循环步骤3,直到剩余脏页足够小或者达到最大迭代次数,退出迭代过程; (5)进入停机拷贝阶段,将vCPU寄存器及I/O设备状 态数据连同剩余脏页一齐传输到目标宿主机; 6)在宿主机上恢复虚拟机运行,实时迁移结束 Post-copy 算法出现较晚,其主要运行流程如下: (1)实时迁移过程开始,源宿主机与目标宿主机建立连

数据的迁移服务V200R100C00----VMware虚拟机数据的迁移方案设计

数据迁移服务V200R100C00交付材料VMware虚拟机数据迁移方案 华为技术有限公司 版权所有侵权必究

修订记录

目录 第1章数据迁移前必读 (1) 1.1概述 (1) 1.2读者对象 (1) 1.3适用场景 (1) 1.4注意事项 (2) 第2章数据迁移流程 (3) 第3章数据迁移前准备 (4) 3.1迁移环境准备 (4) 3.1.1 准备参考文档 (4) 3.1.2 查询系统信息 (4) 3.1.3 获取所需的软件和工具 (5) 3.1.4 检查系统及设备运行状态 (5) 3.2 配置目标存储 (5) 3.2.1 配置热备盘 (6) 3.2.2 创建RAID组及划分LUN (6) 3.3 数据备份 (6) 第4章数据迁移方案 (8) 4.1添加目标存储映射 .................................................................................. 错误!未定义书签。 4.1.1 更改设备物理连接 ........................................................................ 错误!未定义书签。 4.1.2 映射目标存储LUN给主机 (10) 4.1.3 在服务器上配置虚拟磁盘.............................................................. 错误!未定义书签。 4.2迁移数据................................................................................................. 错误!未定义书签。 4.3迁移完成后移除源存储 (16) 4.4同步备机................................................................................................. 错误!未定义书签。 4.5添加目标存储多路径 (22) 4.6 调测业务系统 (32) 第5章回退方案 (33) 5.1 回退场景 (33) 5.1.1 数据备份与恢复; (33) 5.1.2 割接失败导回方案 (33) 5.2 回退步骤 (33)

利用虚拟机动态迁移技术整合虚拟和模拟环境

小型微型计算机系统JournalofChineseComputerSystems2010年3月第3期饧f31No.32010 利用虚拟机动态迁移技术整合虚拟和模拟环境 杨子夜,周逸勋,陈海波,臧斌宇 (复旦大学并行处理研究所,上海200433) E-mail:ziyeyang@fudan.edu.cn 摘要:系统虚拟化和模拟技术对当今计算机科学研究和相关产业有着重要的影响.整合虚拟和模拟环境,让运行在虚拟机中的操作系统获得更多重要的服务是一项具有挑战性和有意义的工作.由系统虚拟化提供的虚拟机动态迁移技术作进一步扩展后,可整合这两个计算环境.提出Roam,一个支持在虚拟和模拟环境之间进行虚拟机动态迁移的框架.开发的Roam原型系统实现了Linux虚拟机在Xen和纯Qemu环境之间的动态迁移.相关性能测试表明Roam是一个可行的虚拟机动态迁移方案,并且虚拟机的停机时间和整体迁移时间都在一个可接受的范围内. 关键词:虚拟;模拟;动态迁移;操作系统 中图分类号:TP316文献标识码:A文章编号:1000—1220(2010)03-0423-07 Roam:aVMLiveMigrationSystemforIntegratingVirtualizedandEmulatedEnvironment YANGZi?ye。ZHOUYi-xun。CHENHal-bo。ZANGBin—yu 《ParallelProcessingInstitute。FudanUniversity.Shanghai200433。China) Abstract:TodaysystemvirtuaUzafionand emulationtechnologyhaveasignificantimpactonbothcomputerscienceresearchandin-dustry.Integratingvirtualizedandemulated environmenttomaketheguestoperatingsysteminthevirtualmachine(VM)obtainvari— OUScrucialservicesisachallengeand importantwork.Livemigrationofvirtualmachines。apracticalandnoveltechniqueprovided by thesystemvirtualization。canbeextendedtointegratethetwocomputingenvironments.ThispaperproposesRoam.alivemigra-tionframeworkwhichcanrelocateVMsbetweenvirtualizedandemulatedenvironment.TheproposedapproachsupportsliveVMmi-grationbetweenXen VMMandpurelyQemu.PerformancemeasurementsshowthatRoamisafeasibleschemawhichachievesac-ceptableVMdowntimeandtotalmigrationtime. Keywords:virtualization;emulation;livemigration;operatingsystem l引言本文主要关注虚拟环境和模拟环境的整合.整合的目的 随着实际需求的变化和功能日益强大的硬件资源的出现,操作系统的运行环境也在不断的变化.我们把操作系统的运行环境划分为以下三种:原生环境,模拟环境和虚拟环境.完全由硬件提供的环境称为原生环境.过去的几十年中,大多数操作系统(以下简称os)都直接运行在原生环境下,它们直接控制底层的硬件资源,诸如CPU,内存和外部输入输出设备(以下简称t/o).完全系统模拟技术的出现改变了这种单一情况,纯软件模拟技术不仅给上层OS提供了成熟的模拟环境,而且提供了细粒度的执行控制策略,给代码调试和分析以及错误数据追踪提供了极大的方便.具有代表性的模拟软件(以下简称Emulator)包括Simicsu引和Qemupl.近几年随着硬件资源的进一步增强,虚拟化技术再次成为研究的热点.系统虚拟化技术利用软件和硬件创建了一个和底层硬件同体系架构的虚拟环境.在虚拟环境下执行的OS,其性能损失可基本忽略.著名的系统虚拟化软件产品包括Xen口。和KvMf9J。VmwareeSXserver[培3等.是利用两者各自的优势,给上层OS提供更多的重要服务.一方面,运行在虚拟环境下的OS性能较高,接近于同等原生环境下的OS.然而此环境下进行系统级的错误调试和错误数据追踪是比较困难的,因为虚拟环境不能提供细粒度的指令跟踪和控制.另外一方面,OS在模拟环境下,性能比较差.例如,在Qemu"o环境下,OS的性能只相当于同等原生环境下的十分之一.但是此环境提供了细粒度的指令控制,给代码的调试和分析提供了极大的方便.为此我们提供了一个通用的虚拟机(以下简称VM)动态迁移框架,Roam,来整合两种环境,以获得优势,避免劣势.Roam可适用于以下的云计算场景中:后台的计算机服务集群为不同客户提供了定制的VM,以满足用户的需求.一旦检测到某个VM发生异常,总控制系统把VM迁移到模拟环境下,检测错误发生的原因.问题被定位和解决后,可把VM重新动态迁移回服务器继续提供服务. 作为系统虚拟化提供的一个重要特性,在不同计算节点之间动态迁移VMH声J0’¨脚’的技术被广泛的应用于网络系 收稿日期:2008.11.14收修改稿日期:2009.10-23基金项日:国家“八六三”高技术研究发展计划项目(2008AAOIZl38)资助.作者简介:杨子夜.男,1984年牛,硕七研究生,研究方向为系统软件;周逸勋.男。1985年生,硕士研究生,研究方向为系统软件;陈海波。男,1982年生,博士,研究方向为系统软件;臧斌字,男,1965年生,博士生导师,研究方向为系统软件,并行处理与编译. 万方数据

Vmware vSphere常见问题汇总

Vmware vSphere常见问题汇总 1、启用客户机操作系统和远程控制台之间的复制和粘贴操作 解决方法:要在客户机操作系统和远程控制台之间进行复制和粘贴,必须使用vSphere Client 启用复制和粘贴操作。 步骤 a、使用vSphere Client 登录到vCenter Server 系统并选择虚拟机。 b、在摘要选项卡中,单击编辑设置。 c、选择选项> 高级> 常规,然后单击配置参数。 d、单击添加行,并在“名称”和“值”列中键入以下值。 名称值 isolation.tools.copy.disable false isolation.tools.paste.disable false 注意这些选项将替代在客户机操作系统的VMware Tools 控制面板中做出的任何设置。 e、单击确定以关闭“配置参数”对话框,然后再次单击确定以关闭“虚拟机属性”对话框。 f、重新启动虚拟机。 2、sco系统迁移过去之后找不到启动列表 解决方法:目前解决方法:使用软驱制作应急盘,通过应急盘来找到启动列表,如果不行的话,只能使用,现成的虚拟镜像导入vmware中,但是这种方法,要自己设置与自己相关的应用。 3、linux做迁移时手动添加的逻辑分区(LVM卷),迁移过去之后找不到这些分区 解决方法::给虚拟机额外添加硬盘后融合,然后将数据重新拷入加入的硬盘中。 4、安装esxi的时候找不到万兆网卡 解决方法:解决方法:安装各个厂商OEM的esxi版本。 5、迁移时提示vss原卷不能克隆 解决方法:解决方法:查看是否有额外的设备插在服务器上,如usb设备。 6、Windows迁移之后,配置网卡的时候,会提示“IP已经被分配给其他的适配器” 解决方法:打开命令行窗口(运行cmd),输入: (1)、set DEVMGR_SHOW_NONPRESENT_DEVICES=1 (2)、devmgmt.msc 在弹出的“设备管理器”窗口。选择“查看(V)”—“显示隐藏的设备(W)”,然后展开“网络适配器”子项,可以看到一些透明图标显示的网卡信息,这些信息是源服务器的物理网卡信息。然后选择透明的设备卸载,RAS同步适配器为系统正常设备,不需要将其卸载。 7、Asianux3.0迁移之后不能显示图形化界面 解决方法:解决方法:cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak vi /etc/X11/xorg.conf 将xorg.conf文件中的selection “Devices”字段中Driver对应的值修改为“vmware”即可,修改完成后通过startx启动图形化界面。

虚拟机迁移技术漫谈

虚拟机迁移技术漫谈 如何在虚拟机和物理机以及虚拟机和虚拟机之间的迁移系统 前言 系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化。 本系列文章全面介绍了虚拟机迁移的三种方式 P2V、V2V 和 V2P,及他们在内核虚拟机 KVM 上的实现方法,分成五个部分。第一部分,介绍虚拟机迁移的各种方法和相应的迁移工具,并且着重分析 Linux 平台上开源的虚拟化工具 KVM 和XEN 实时迁移中的的内存预拷贝技术; 第二部分介绍 KVM 虚拟机之间的 V2V 迁移技术,包括离线迁移和在线迁移;第三部分介绍基于 VMware 或 XEN 的虚拟机如何迁移到基于 KVM 的虚拟机;第四部分介绍物理机到虚拟机迁移 P2V 和虚拟机到物理机迁移 V2P 在 KVM 虚拟机上的实现;第五部分介绍和虚拟机迁移密切相关的虚拟机克隆、快照和备份技术。 回页首 虚拟机迁移简介 为什么要迁移服务器 迁移服务器可以为用户节省管理资金、维护费用和升级费用。以前的 x86 服务器,体积比较“庞大”;而现在的服务器,体积已经比以前小了许多,迁移技术使得用户可以用一台服务器来同时替代以前的许多台服务器,这样就节省了用户大量的机房空间。另外,虚拟机中的服务器有着统一的“虚拟硬件资源”,不像以前的服务器有着许多不同的硬件资源(如主板芯片组不同,网卡不同,硬盘,RAID 卡,显卡不同)。迁移后的服务器,不仅可以在一个统一的界面中进行管理,而且通过某些虚拟机软件,如 VMware 提供的高可用性工具,在这些服务器因为各种故障停机时,可以自动切换到网络中另外相同的虚拟服务器中,从而达到不中断业务的目的。总之,迁移的优势在于简化系统维护管理,提高系统负载均衡,增强系统错误容忍度和优化系统电源管理。 虚拟机迁移的性能指标

将操作系统从物理机迁移到虚拟机

十个步骤将操作系统从物理机迁移到虚拟机 老板让你在很短的时间里执行一项操作系统迁移的任务,此时,如果你有一个功能完整的且经过测试的物理机到虚拟机迁移的解决方案,那么你将是一个真正的英雄!P2V的解决方案可以使你在不影响生产网络或不重新在生产网络中进行配置的前提下执行服务器迁移。在这里,我将向大家解释一些Microsoft Virtual Server Migration Toolkit(VSMT)的内部工作机制,并且演示一下为了实现迁移,应如何使用ADS来配置一台可移动的服务器。 在2006年12月份的“突破ADS障碍”一文中,我给大家展示了在Windows操作系统迁移时,如何构建一个基础的移动ADS解决方案。接着,在2007年5月份的文章“提升移动ADS解决方案”中,我展示了如何通过安装VSMT来扩展移动ADS解决方案,进而执行物理机到虚拟机的迁移。接下来我将给大家演示如何使用VSMT来执行一个P2V的迁移。 开始之前 通过本系列的文章,你已经知道如何在一个移动的小车上组合必要的硬件和安装基本的软件来创建一个移动的ADS解决方案:Windows Server 2003企业版,动态主机配置协议(DHCP)服务器、ADS1.1、Virtual Server 2005 R2 SP1和VSMT1.1。我们把资源服务器称为Testserver,并假想运行着Windows Server 2003企业版。为了执行一个P2V的迁移,你需要执行下面的十个步骤。 开始之前,我建议你花一些时间来看看你的服务器是否适合执行P2V转换。有时候,在一个不太稳定的生产服务器上执行一次P2V的迁移是不值得的。这是因为可能在迁移的过程中,那些不稳定的因素会出现。如果恰好出现这种情况,那么我建议你首先重建虚拟机,然后将数据从旧的物理服务器迁移到虚拟服务器中,这样做可能会更好一些。此外,对于那些带有OEM应用程序的服务器,在执行P2V迁移前,应该首先卸载或禁用这些应用程序,这样可以保证虚拟机在首次启动时,这些应用程序不会和虚拟机进行交互。 读到这里,先看看你的服务器适合进行P2V的转换吗?如果适合的话就让我们开始吧。 第一步:准备源系统 尽管VSMT不会修改源系统,我还是推荐你遵循一些最佳实践,在开始P2V迁移之前,首先对源操作系统进行备份。此外,禁用与物理服务器相关的所有驱动和应用程序,这些驱动和应用程序在虚拟机环境中将不再可用。 第二步:准备MobileP2V服务器 VSMT包括一个名为GatherHW.exe的工具,该工具能够在源服务器上收集物理硬件的信息,然后创建一个XML配置文件,你可以使用该配置文件来分析源系统中任何已知的硬件兼容性问题(动态磁盘、高于3.5GB的内存以及不支持的设备等等)。为了运行GatherHW.exe,你必须首先将它复制到源系统中。我推荐你首先在MobileP2V服务器上的VSMT安装目录(缺省为C:\Program Files\Microsoft VSMT)下创建一个名为VSMT的共享目录。当然,你还

迁移VBOX虚拟机方法

迁移VBOX虚拟机方法 VBOX虚拟机拷贝到其他计算机后需要经过配置才能正常使用,即使使用的目录与原目录完全一致。(示例中为linux上的oracle11gRAC+DG,为64位版本,服务器要求也要为64位)具体操作步骤如下: 一、将虚拟机配置文件和虚拟机文件拷贝到目标服务器。 1、虚拟机配置文件必须拷贝到C:\Documents and Settings\Administrator\VirtualBox VMs目录下,如图所示。 2、虚拟机文件较大,磁盘需要有60G剩余磁盘空间。这里我们拷贝到:F:\11g RAC+DG目录下。 二、修改配置文件 1、用写字板打开C:\Documents and Settings\Administrator\VirtualBox VMs\new11gnode1\new11gnode1.vbox文件,找到location部分,修改 H:/newRAC+DG为F:/11g RAC+DG,既虚拟机文件存放实际路径,如图所示。

2、 三、启动虚拟机 1、双击C:\Documents and Settings\Administrator\VirtualBox VMs\new11gnode1\new11gnode1.vbox文件,将虚拟机添加到VBOX中, 如图所示。 2、修改内存大小 该虚拟机默认内存大小为2000M,如果服务器没有足够内存可以减少虚 拟机使用内存数量。选中需要修改的虚拟机,点击“设置”,选择“系 统”,将内存改为1500M,如图所示。同时需要调小数据库有关内存的 参数,将sga_max_target和sga_target参数都调整为400M。

虚拟机迁移方法简介

虚拟机迁移技术简介 虚拟机迁移技术为服务器虚拟化提供了便捷的方法。目前流行的虚拟化工具如 VMware,Xen,HyperV,KVM都提供了各自的迁移组件。尽管商业的虚拟软件功能比较强大,但是开源虚拟机如 Linux 内核虚拟机 KVM 和 XEN 发展迅速,迁移技术日趋完善。本系列文章介绍了虚拟机迁移的三种方式 P2V、V2V 和 V2P,及他们在内核虚拟机 KVM 上的实现方法,分成五个部分。本文是第一部分,全面介绍了虚拟机迁移的各种方法和相应的迁移工具 , 并且着重分析了 Linux 平台上开源的虚拟化工具 KVM 和 XEN 实时迁移中的的内存预拷贝技术。 1.前言 系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化。 2.虚拟机迁移简介 2.1为什么要迁移服务器 迁移服务器可以为用户节省管理资金、维护费用和升级费用。以前的 x86 服务器,体积比较“庞大”;而现在的服务器,体积已经比以前小了许多,迁移技术使得用户可以用一台服务器来同时替代以前的许多台服务器,这样就节省了用户大量的机房空间。另外,虚拟机中的服务器有着统一的“虚拟硬件资源”,不像以前的服务器有着许多不同的硬件资源(如主板芯片组不同,网卡不同,硬盘,RAID 卡,显卡不同)。迁移后的服务器,不仅可以在一个统一的界面中进行管理,而且通过某些虚拟机软件,如 VMware 提供的高可用性工具,在这些服务器因为各种故障停机时,可以自动切换到网络中另外相同的虚拟服务器中,从而达到不中断业务的目的。总之,迁移的优势在于简化系统维护管理,提高系统负载均衡,增强系统错误容忍度和优化系统电源管理。 2.2虚拟机迁移的性能指标 一个优秀的迁移工具,目标是最小化整体迁移的时间和停机时间,并且将迁移对于被迁移主机上运行服务的性能造成的影响降至最低。当然,这几个因素互

虚拟机实时迁移

实时迁移(live migration)是指在保证虚拟机上服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移,其逻辑步骤与离线迁移几乎完全一致。不同的是,为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。迁移的前面阶段,服务在源主机运行,当迁移进行到一定阶段,目的主机已经具备了运行系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,服务在目的主机上继续运行。对于服务本身而言,由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。在线迁移适用于对服务可用性要求很高的场景。 01 live migration的概念 虚拟机实时迁移/动态迁移(Live Migration),作为系统虚拟化的一项关键技术,是将物理服务器上正在运行的一台或多台VM在线迁移到另一台物理服务器上。迁移过程中VM对外正常提供服务,整个迁移过程对VM用户透明。 02 live migration的概念 实时迁移的内容包括:虚拟机运行状态(CPU状态、内存镜像、设备状态、网络连接)及外存数据。 03 live migration的作用 负载均衡:将高负载物理服务器上的虚拟机动态迁移到低负载的物理服务器上,保证数据中心资源合理分配。 在线维护:在对物理服务器进行维护前,实时将上面运行的虚拟机迁移到其他服务器上,不会因设备维护导致服务中断。 能源管理:将多个利用率不高的物理服务器上的虚拟机在线整合到少量几台物理服务器上,降低能耗。 04 live migration的分类 按照虚拟机存储的迁移需求可划分为基于共享存储的实时迁移和全系统实时迁移。 ●基于共享存储的实时迁移:物理服务器之间采用SAN或NAS之类的集中式共享外存 设备,因而在迁移时只需要进行虚拟机运行状态的迁移。 ●全系统迁移:物理服务器之间没有采用共享外存设备,外存数据保存在物理服务器本地; 或者需要将虚拟机迁移到另一个数据中心。实时迁移中既要迁移运行状态,又要迁移存储数据。 按照虚拟机迁移的网络环境可划分为基于LAN的实时迁移和基于WAN的实时迁移。 ●基于LAN的实时迁移:迁移范围在一个数据中心的二层网络内,能够保证数据传输速 率。 ●基于WAN的实时迁移:迁移范围在两个数据中心间的WAN链路上,网络传输带宽受 限。 按照虚拟机迁移的规模可划分为单虚拟机实时迁移和虚拟机集实时迁移。 ●单虚拟机实时迁移:一个迁移过程中只迁移独立的一个虚拟机。 ●虚拟机集实时迁移:一个迁移过程中同时迁移多台虚拟机,且这些虚拟机可能是完成同 一任务的一个集群。 05 live migration算法 三种基本算法:Pre-copy(主流、学术、商用);Post-copy(学术);基于日志系统的迁移(学术) Pre-copy核心机制:迁移开始之后,源主机VM仍在运行,目的主机VM尚未启动。迁移通过一个循环,将源主机VM的内存数据发送至目的主机VM。循环第一轮发送所有的内存页数据,接下来的每一轮循环发送上一轮预拷贝过程中被VM写过的脏页内存dirty pages。

vmware常见问题

vmware 常见问题 Vmware vSphere常见问题及解决办法 Advertisement 故障状态: 启动虚拟机时95%,停顿并且进程中断,提示:ubable to access files since it is locked。 祸根:HA 解决方法: (1)首先将cluster中的HA功能关闭。如果该功能不关闭,容易造成死锁,,VM不断跳动,,不断再不同的ESX内循环被锁,徒劳而无功。

(2)磁盘文件被锁,要解决,必须要知道到底是哪台ESX把他给锁住了,这是关键。 方法:看/var/log/vmkernel但是,在做这些前, 再准备些别的工作。 (3)在VC中,把被锁的VM从Inventory中remove掉。原因很简单,这是一个unregister的过程。 (4)根据/var/log/vmkernel,搜索owner,可以找到类似以下的语句: Oct 19 04:23:33 esx-hostname vmkernel: 3:06:29:47.992 cpu6:1656)FS3: 1975: Checking if lock holders are live for lock [type 10c00001 offset 52008960 v 380, hb offset 3554304 Oct 19 04:23:33 esx-hostname vmkernel: gen 17, mode 1, owner 48f5f637-462688bc-fd28-0e1a6434b6f8 mtime 38112] OK,owner后面的48f5f637-462688bc-fd28-0e1a6434b6f8就是你的target了。因为他就是锁住VM 的宿主.。

十个步骤将操作系统从物理机迁移到虚拟机

老板让你在很短的时间里执行一项操作系统迁移的任务,此时,如果你有一个功能完整的且经过测试的物理机到虚拟机迁移的解决方案,那么你将是一个真正的英雄!P2V的解决方案可以使你在不影响生产网络或不重新在生产网络中进行配置的前提下执行服务器迁移。在这里,我将向大家解释一些Microsoft Virtual Server Migration Toolkit(VSMT)的内部工作机制,并且演示一下为了实现迁移,应如何使用ADS来配置一台可移动的服务器。 在2006年12月份的“突破ADS障碍”一文中,我给大家展示了在Windows操作系统迁移时,如何构建一个基础的移动ADS解决方案。接着,在2007年5月份的文章“提升移动ADS解决方案”中,我展示了如何通过安装VSMT来扩展移动ADS解决方案,进而执行物理机到虚拟机的迁移。接下来我将给大家演示如何使用VSMT来执行一个P2V的迁移。 开始之前 通过本系列的文章,你已经知道如何在一个移动的小车上组合必要的硬件和安装基本的软件来创建一个移动的ADS解决方案:Windows Server 2003企业版,动态主机配置协议(DHCP)服务器、ADS1.1、Virtual Server 2005 R2 SP1和VSMT1.1。我们把资源服务器称为Testserver,并假想运行着Windows Server 2003企业版。为了执行一个P2V的迁移,你需要执行下面的十个步骤。 开始之前,我建议你花一些时间来看看你的服务器是否适合执行P2V转换。有时候,在一个不太稳定的生产服务器上执行一次P2V的迁移是不值得的。这是因为可能在迁移的过程中,那些不稳定的因素会出现。如果恰好出现这种情况,那么我建议你首先重建虚拟机,然后将数据从旧的物理服务器迁移到虚拟服务器中,这样做可能会更好一些。此外,对于那些带有OEM应用程序的服务器,在执行P2V迁移前,应该首先卸载或禁用这些应用程序,这样可以保证虚拟机在首次启动时,这些应用程序不会和虚拟机进行交互。 读到这里,先看看你的服务器适合进行P2V的转换吗?如果适合的话就让我们开始吧。 第一步:准备源系统

基于KVM虚拟机动态迁移的研究与实现

目录 摘要……………………………………………………..1ABSTIiACT………一………………………………………….3符号说明……………………………………………………5第1章绪论…………………………………………………71.1选题背景及意义….}…………..:….!………..….....{..….71.2国内外研究现状….{…….…:……..:……………….……81.2.1云计算研究现状……………叫……………….……8 1.2.2虚拟化及动态迁移研究现状…….。……………….….’.101.3本文主要工作及创新点…………………………………..11:1.3.1主要工作….:……………….1……………….!……11 1.3.2创新点………………………………….………111.4论文结构安排..………………….……….……………121.5本章小节.………………….……………………….…13第2章系统相关技术………………………………..………。142.1云计算简介……………………………………………142.1.1云计算分类………………………………………142.1.2云计算的服务模式……………………..:……。.…..142.1.3云计算的特点…………………………………….162.2虚拟化相关技术…….….……………………………...162.2.1VMM模型.………….…………………………….17 2.2.2常见虚拟化解决方案及其相关技术…………………….18 2.2.3KVM基本工作原理…….….……….…….…….…..23 f。 2.3虚拟机的动态迁移………...….:………………l………242.3.1动态迁移策略………………………………….…242.3.2动态迁移的评价指标………….……...……………25 2.3.4动态迁移分类……………………….….…..:……25

VMware ESXi虚拟机克隆及迁移

VMware ESXi虚拟机克隆及迁移 免费的VMWare ESXi非常强大,于是在vSphere5.0平台中ESXi取代了ESX,不过貌似不再是免费使用了,因为我在VMware官网只能下载到免费评估版的ESXi,具体怎么个评估我还没体会,哪位朋友知道请告知我。 使用ESXi经常会遇到这样的问题,我需要建立多个虚拟机,都是windows2003操作系统,难道必须一个一个安装吗? VMware ESXi、VMware vCenter Server 和vSphere Client,它们分别是vSphere 的虚拟化层、管理层和接口层。作为接口层的vSphere Client客户端并不提供克隆虚拟机的功能,需要安装vCenter管理ESXi才有这一功能。 虽然如此,但是我们可以以手动的方式完成这项工作。 下面是克隆“win2003”这台虚拟机的操作过程: 1、进入vSphere client,关闭需要克隆的虚拟机win2003 2、选中ESXi服务器主机,在右侧点击“配置”选项卡,选择存储器,右侧的存储器名称上点右键,选择“浏览数据存储”

3、新建文件夹kelong,进入win2003文件夹,把win2003.vmx和win2003.vmdk 这两个文件复制到文件夹kelong下,复制过程非常快,不到一分钟。 4、在win2003.vmx文件上点右键,选择“添加到清单”,弹出提示,询问这个虚拟机是移动的还是复制的,选择“I coyied it”,确定。

5、开始建立虚拟机的向导,最后弹出提示“无法打开磁盘或其所依赖的快照磁盘之一”,这是因为虚拟机之前做过快照,所以需要把win2003-000003.vmdk 文件也复制过来。 6、把win2003-000003.vmdk文件复制过来再执行“添加到清单”,克隆完成。克隆出来的虚拟机与源虚拟机环境配置完全相同,包括IP地址、用户名口令等,需要手动更改。 这是在同一台ESXi服务器下做的克隆操作,如果是不同的ESXi服务器之间做克隆操作呢?那么就需要把文件复制到不同的ESXi服务器。在网上搜了一下,复制的方法有说用移动存储设备,有说用FTP,但是我觉得用SCP命令最

相关文档
最新文档