您的位置:首页 > 运维架构

OpenStack E版虚机跨平台版本迁移

2017-06-04 19:54 591 查看
前言:在Ice版本中使用lvm作为后端存储的情况下,给虚机的迁移造成了很大的麻烦。本博文适用于lvm作为后端存储且虚机存是以磁盘映像文件+磁盘文件存储的跨平台迁移。以博主实际操作为例希望能让大家在遇到类似情况的时候有好的解决方法,但并不具有普遍性。本文以新的openstack平台存储依旧为lvm存储为例,如果是ceph等共享存储则需要将文件导入ceph集群,不属于本文讨论范围。

迁移思路:因为这里的迁移实际上是在新的计算节点上创建一个只有操作系统的空壳虚机然后将原先虚机的数据信息拷贝到这台新的空壳虚机中,这样openstack就会认为这台新的虚机和原来的虚机是一样的。这样做要保证创建新的虚机IP地址,所在VLAN,虚机CPU和内存与原先的一样,之后需要将原来虚机的数据盘拷贝到这台新的虚机中。虚机迁移需要收集的信息为例,有以下几类:

虚机的VLAN号

虚机所使用的操作系统

虚机的IP地址

虚机flavor的vcpu和内存大小

虚机的MAC地址

虚机文件夹下面的disk文件

disk对应的母盘系统文件

本例中novan29所在云环境为openstack E版本,DVM04_NC64为openstack的I版本

迁移前期准备

收集虚机vlan号

关于虚机的VLAN号与虚机的MAC地址我们可以通过nova show来查看,nova show 虚机名称/虚机的UUID

#nova show DC01-WEB01




获取虚机flavor规格信息

#nova flavor-show flavorNAME




在新的平台上创建的虚机规格至少需要报保证虚机的ram和vcpus是一样的。

收集计算接点上该虚机xml文件信息

我们需要知道虚机是在哪个计算节点生成的,和虚机的instanceID。以便我们登陆到计算节点上查看虚机文件夹。在这里我们知道虚机是在novan29计算节点上。我们通过ssh登陆到对应的计算节点。



进入到对应的文件夹下,在openstack默认的环境中,nova生成的实例信息存放在/var/lib/nova/instances/的文件夹下面。使用ls指令查看一下,应该能看到有这台虚机instaceID为名字的文件夹。

#cd /var/lib/nova/instances/




进入到这个文件夹,instace-000001ef。ls看一眼,这里我们需要的是原来这虚机的disk文件(disk文件可以理解存放的是这台虚机特有的一些数据信息) 注意:之后的所有操作之前需要将虚机关机。

disk文件备份同时收集虚机mac地址信息

#cp disk disk.backup


进入到libvirt.xml文件(libvirt文件中记录着这台虚机的物理信息)

#vi libvirt.xml


找到小节,可以看到虚机mac地址:



之后我们需要拿到母盘信息(这里母盘的意思指的是虚机系统文件,虚机被创建的时候系统信息生成了一个文件,然后虚机上任何特有操作生成的文件会被记录在disk文件中,母盘+disk文件就是我们看到的一个真正的系统盘。)

在当前虚机目录下执行如下指令拿到母盘信息。



这里拿到的就是我们母盘的信息,之后需要将这个拷贝到新虚机的计算节点上。

新平台中创建虚机

这里需要注意的是要明确知道原来虚机使用的是何种操作系统,让后制作上传镜像的时候需要注意系统设置尽量与原操作系统一致。在新平台中创建虚机选择flavor的时候请一定要抱着flavor的规格与原来虚机相匹配。创建的网段,vlan号,虚机的mac地址,防火墙也必须与原虚机一致。当新的虚机创建好之后关闭虚机。

迁移操作

条件检查

检查之前创建的虚机是否按照待迁移虚机的规格创建完成。检查虚机创建是否正确,mac地址有无问题。





拷贝disk盘

登录到对应的计算节点上。本例子中,虚机生成在了DVM04_NC64计算节点上。

#ssh root@DVM04_NC64
#cd /var/lib/nova/instances/




# cd 40875cf2-54ec-4d91-bba0-7c5c9b764b28/


将新虚机的disk文件重命名。

#mv disk disk.backup


登录到原来要迁移虚机所在的计算节点,本例中是novan29。

#scp /var/lib/nova/instances/instace-000001ef/ disk root@DVM04_NV64:/var/lib/nova/instances/40875cf2-54ec-4d91-bba0-7c5c9b764b28/
#scp /var/lib/nova/instances/_base/b55c73376d7c5d82e977c281f827683405de4a23_50 root@DVM04_NV64:/var/lib/nova/instances/_base/


测试迁移是否成功

进入到虚机系统,首先测试是否能够ping通vlan网关。

#ping 192.168.45.254




测试旧虚机的卷是否与新的规格一样



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  openstack 跨平台 迁移