VMware 虚拟化产品及虚拟机文件VMware 产品简介VMware 是全球虚拟化解决方案的领导厂商,提供了一套虚拟机解决方案,按产品特点可分为如下四类。 VMware ESX/ESXi:这个产品不需要安装任何操作系统,它本身就是一个用来管理硬件资源的特殊的操作系统,所有的虚拟机都安装在它的上面。ESX Server 带有远程 web 管理和客户端管理功能。VMware Server、Workstation 和 Fusion:与 ESX 相比,这三个产品都是要安装在操作系统上的。Server 和 Workstation 运行在 Windows 和 Linux 上,Fusion 运行在苹果的 Mac OS 上。VMware VMotion:是 VMware 开发出的一项独特技术,它将服务器、存储和网络设备完全虚拟化,使得正在运行的整个虚拟机能够在瞬间从一台服务器移到另一台服务器上。Virtual Center、Importer、Convertor、P2V、Player:这些是为了配合 VMware 虚拟引擎,主要是为了配合 ESX 开发的管理软件和工具,这些工具中很多是免费的。本文主要迁移创建在 VMware ESX/ESXi、VMware Workstation 和 VMware Player 上的虚拟机到 KVM 主机上,迁移后的虚拟机可以被开源的 libvirt 软件管理。VMware 虚拟机文件介绍成功迁移虚拟机的一个重要的验证标准就是文件的正确性和完整性。下图中列出与 VMware 虚拟机相关的文件,但是迁移 VMware 虚拟机到 KVM 并不需要用到所有的文件。图 1. VMware 虚拟机文件VMware 虚拟机的文件主要包括 .nvram 文件,.vmx 文件,vmdk 文件,.vswp 文件,.vmss 文件,.vmsd 文件,.vmsn 文件,.log 文件,.vmxf 文件。与迁移相关的最主要的是 .vmx 文件和 .vmdk 文件。
.vmx 文件:包括虚拟机所有配置信息与硬件设置。不管你对虚拟机的设置做了何种编辑,所有的信息都会以文本形式保存在这个文件里。如特殊硬件配置(例如 RAM 大小,网络接口信息,硬盘驱动信息,串行与并行信息),高级能源与资源配置、VMware 工具选项及能源管理选项。迁移虚拟机时,需要更改这个文件的格式到 KVM 支持的 xml 文件,并且重新确认文件信息的有效性。.vmdk 文件:包含虚拟磁盘的信息。虚拟机的文件系统就建立在 .vmdk 文件上。迁移时需要拷贝这个文件到 KVM 主机,并且转换成能够被 libvirt 识别的文件格式。以下的虚拟机文件有些只在虚拟机处于的某种状态时出现,迁移过程中不会用到。例如当虚拟机开启时出现 .vswp 文件,当虚拟机暂停时出现 .vmss 文件。.nvram 文件:包括虚拟机启动过程一部分的 Phoenix BIOS。它类似于拥有 BIOS 芯片的物理服务器,能够设置硬件配置选项。如果删除的话,在虚拟机启动时会自动地重新创建。.vswp file:这些文件的大小等于分配给虚拟机的内存大小,再减去任何内存预留(默认是 0)。这些文件通常创建在虚拟机里,但是只有当 ESX 主机耗尽所有物理内存时才使用。当虚拟机关闭或暂停时,这些文件将删除。.vmss 文件:这个文件用于虚拟机暂停时,保存虚拟机的存储内容,以便在重新开始时继续运行。.vmsd 文件:这个文件与快照一起使用,用于存储元数据和其他活动在虚拟机里的每个快照的信息。这个文本文件在创建快照之前的初始大小是 0 字节,并在每次创建或删除快照时更新信息。.vmsn 文件:这个文件与快照一起使用,用于存储虚拟机在进行快照时的状态。每在虚拟机上创建一个快照就会生成一个 .vmsn 文件,在删除快照时,文件自动删除。.log 文件:这些文件创建来用于存储虚拟机的日志信息,并常常用于故障检查。在虚拟机目录里,有大量的这样的文件。当前的日志文件通常命名为 vmware.log。
.vmxf 文件:这是一个附加配置文件,不用于 ESX,用于与 Workstation 兼容的目的。这个文件是文本格式,Workstation 用来聚合虚拟机(VM teaming),将多个虚拟机分配成一组,作为一个单一对象开启或关闭、暂停或恢复它们。virt-v2v 迁移 VMware ESX 虚拟机从 RHEL6(Red Hat Enterprise Linux 6)开始,RHEL 发行版中包含了 Red Hat 公司开发的 virt-v2v 工具。它是由 perl 语言编写的脚本,可以自动化的将创建在 Xen,KVM 和 VMware ESX 上的虚拟机拷贝到 virt-v2v 的主机,并且自动的更改配置,使之能够被 libvirt 进行管理。目前,virt-v2v 支持静态迁移下列虚拟机:RHEL4、RHEL5, RHEL6,Windows XP,Windows Vista, Windows 7, Windows Server 2003 和 Windows Server 2008。图 2. virt-v2v 迁移 VMware/Xen/KVM 虚拟机示意图本节中,将分别介绍如何使用 virt-v2v 工具迁移 Vmware ESXi 上的 RHEL 虚拟机和 Windows 7 虚拟机到 KVM 主机。迁移前的环境设置本文的 KVM 主机安装最新的 RHEL6.1 操作系统(发布于 2011 年 5 月 19 日)。这样,最基本的支持 KVM 虚拟机的软件 qemu-kvm、libvirt、virt-manager 和 virt-v2v 工具都在发行版中安装了。清单 1. 支持 KVM 虚拟机的软件包
[root@localhost ~]# rpm -qa qemu-kvmqemu-kvm-0.12.1.2-2.160.el6.x86_64[root@localhost ~]# rpm -qa libvirtlibvirt-0.8.7-18.el6.x86_64[root@localhost ~]# rpm -qa virt-managervirt-manager-0.8.6-4.el6.noarch[root@localhost ~]# rpm -qa virt-v2vvirt-v2v-0.7.1-3.el6.x86_64
为了使 virt-v2v 工具能够自动化的迁移 VMware ESX 虚拟机,尽量减少手动干预,还需要在 KVM 主机上做一些设置。1. 安装支持 Windows 虚拟机迁移的软件。对于 Windows 虚拟机的迁移需要安装 libguestfs-winsupport 包来支持 NTFS 文件系统和 virtio-win 包来支持 Windows para-virtualized 存储和网络设备驱动。清单 2. 安装 Windows 虚拟机迁移的支持包
[root@victory4 v2v]# rpm -ivh libguestfs-winsupport-1.0-7.el6.x86_64.rpm \virtio-win-1.2.0-1.el6.noarch.rpmPreparing...########################################### [100%]1:virtio-win########################################### [ 50%]2:libguestfs-winsupport ########################################### [100%]
2. 创建 KVM 主机存储域virt-v2v 在迁移虚拟机的过程中,需要拷贝被迁移虚拟机到 KVM 主机预先定义的存储池中。存储池可以用 libvirt 工具创建。最简单的方法就是使用 virt-manager 来创建新的存储池。本文中创建了一个文件目录类型的存储池,位置在 KVM 主机系统的 /home/images/migration 目录。图 3. 使用 virt-manager 创建本地存储域3. 创建 KVM 主机网络接口虚拟机在迁移之后将连接 KVM 主机网络, 因此主机必须有一个与之相匹配的网络接口,比如说网桥。Linux 系统上有很多工具可以创建网桥,其中 RHEL6.1 发行版上的 virt-manager 已经支持创建和管理网桥。本文创建了网桥 br0,并且绑定在 eth0 的接口上,具体配置如下图。
图 4. 使用 virt-manager 创建网桥4. 创建配置文件 virt-v2v.conf在 virt-v2v.conf 文件中设置 virt-v2v 迁移的规则,包括网络接口迁移后的映射,迁移的方式,存储的位置,输出的格式等等。这些规则也能以命令行参数的方式输入,如 - - network,-o,-os,-of 等。virt-v2v 迁移 VMware 虚拟机的步骤在 KVM 主机上完成上节的准备工作后,可以正式开始迁移 VMware ESX 上的虚拟机了。下面是迁移的具体步骤:1. 如果虚拟机上安装了 VMware Tools,必须先卸载它。因为 KVM 的虚拟机不支持 VMware Tools 里面的虚拟驱动。2. 在 VMware ESX 上停止等待迁移的虚拟机,因为 virt-v2v 只支持静态迁移。3. 为自动登录 VMware ESX 服务器创建 .netrc 文件。VMware ESX 服务器的连接需要授权,virt-v2v 支持密码方式的授权连接,可以从 $HOME/.netrc 文件中读取密码并自动登录。如果主机系统没有这个文件,就手动创建它。并且 .netrc 文件需要 0600 权限,使 virt-v2v 工具可以正确读取它。清单 3. .netrc 文件的格式
machine esx.example.com login root password xxxxxx
4. 使用 virt-v2v 命令进行迁移。VMware ESX 服务器采用 HTTPS 连接方式,连接时需要配置 SSL 证书。本文通过添加'?no_verify=1'到 VMware 服务器的 URI 连接中,来关闭证书检查。清单 4. virt-v2v 迁移命令及参数
virt-v2v -ic esx://esx.example.com/?no_verify=1 -os pool --bridge brname vm-nameesx.example.com – 是 ESX 服务器主机名或 IP Addresspool – 本地主机存储池,用来保存镜像brname – 本地主机网桥名字,用来连接迁移后的虚拟机网络vm-name – 虚拟机的名字
¥
5
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
vmware迁移到KVM实例
随着虚拟化技术的不断发展,虚拟机的应用也越来越广泛。日常应用中可能出现资源不足,系统管理调整或者系统备份等原因,希望将某一虚拟机从原来物理主机迁移到另一个物理主机上,即 V2V(Virtual-to-Virtual)迁移。虚拟机的迁移需要物理主机上 VMM(Virtual Machine Monitor)的支持。相同类型 VMM 之间,使用相同的 API 接口,通常具有强大的迁移能力。例如本系列第二篇文章介绍的 KVM 虚拟机之间的迁移,它支持三种迁移方式:离线迁移、在线共享存储迁移和在线块迁移。而不同的 VMM 之间,由于虚拟化实现技术的不同、开发厂商的不同、API 接口的不同,使虚拟机迁移困难重重。本文分别介绍如何静态迁移 VMware ESX/ESXi、VMware Workstation 及 VMware Player 上的虚拟机到 KVM 主机。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)