VMware 虚拟机文件介绍
成功迁移虚拟机的一个重要的验证标准就是文件的正确性和完整性。下图中列出与 VMware 虚拟机相关的文件,但是迁移 VMware 虚拟机到 KVM 并不需要用到所有的文件。
图 1. VMware 虚拟机文件
VMware 虚拟机的文件主要包括 .nvram 文件,.vmx 文件,vmdk 文件,.vswp 文件,.vmss 文件,.vmsd 文件,.vmsn 文件,.log 文件,.vmxf 文件。与迁移相关的最主要的是 .vmx 文件和 .vmdk 文件。
- .vmdk 文件:包含虚拟磁盘的信息。虚拟机的文件系统就建立在 .vmdk 文件上。迁移时需要拷贝这个文件到 KVM 主机,并且转换成能够被 libvirt 识别的文件格式。
以下的虚拟机文件有些只在虚拟机处于的某种状态时出现,迁移过程中不会用到。例如当虚拟机开启时出现 .vswp 文件,当虚拟机暂停时出现 .vmss 文件。
- .nvram 文件:包括虚拟机启动过程一部分的 Phoenix BIOS。它类似于拥有 BIOS 芯片的物理服务器,能够设置硬件配置选项。如果删除的话,在虚拟机启动时会自动地重新创建。
- .vswp file:这些文件的大小等于分配给虚拟机的内存大小,再减去任何内存预留(默认是 0)。这些文件通常创建在虚拟机里,但是只有当 ESX 主机耗尽所有物理内存时才使用。当虚拟机关闭或暂停时,这些文件将删除。
- .vmss 文件:这个文件用于虚拟机暂停时,保存虚拟机的存储内容,以便在重新开始时继续运行。
- .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 主机。
迁移前的环境设置
清单 1. 支持 KVM 虚拟机的软件包
[root@localhost ~]# rpm -qa qemu-kvm qemu-kvm-0.12.1.2-2.160.el6.x86_64 [root@localhost ~]# rpm -qa libvirt libvirt-0.8.7-18.el6.x86_64 [root@localhost ~]# rpm -qa virt-manager virt-manager-0.8.6-4.el6.noarch [root@localhost ~]# rpm -qa virt-v2v virt-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.rpm Preparing… ########################################### [100%] 1:virtio-win ########################################### [ 50%] 2:libguestfs-winsupport ########################################### [100%] |
2. 创建 KVM 主机存储域
图 3. 使用 virt-manager 创建本地存储域
3. 创建 KVM 主机 络接口
图 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 迁移命令及参数
virt-v2v -ic esx://esx.example.com/o_verify=1 -os pool –bridge brname vm-name
esx.example.com – 是 ESX 服务器主机名或 IP Address pool – 本地主机存储池,用来保存镜像 brname – 本地主机 桥名字,用来连接迁移后的虚拟机 络 vm-name – 虚拟机的名字 |
5. 迁移成功后,虚拟机出现在 virt-manager 管理的虚拟机列表中。通过 virt-manager 工具启动虚拟机。
6. 检查迁移后的虚拟机的设备驱动。如果需要,重新安装虚拟设备驱动。
7. 验证迁移后的虚拟机的配置和系统是否和迁移之前一致。
virt-v2v 迁移实例:Linux 虚拟机 RHEL5.5
本例将迁移创建在 VMWare ESXi 服务器上的 RHEL5.5 虚拟机到 KVM 主机上,并使迁移后的虚拟机被 libvirt 管理。本例的环境中,VMware ESXi 服务器和 KVM 主机通过 络连接,虚
拟机镜像被各自的存储管理。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!