Openstack云主机迁移(云主机创建在服务器本地,使用服务器的disk文件,并且基于镜像创建,云硬盘创建在EqualLogic存储上),需要把云主机迁移到底层采用Ceph存储的Openstack环境。
云主机保存在本地(有数据盘,单网卡,迁移时关闭云主机)迁移的操作步骤分成2步:原有平台进行迁移之前准备工作和在新平台完成迁移2个步骤。
1.1.1 管理节点执行nova list --all-tenants查看需要迁移云主机的ID。
source openrc
nova list --all-tenants
1.1.2 通过nova show uuid 查看云主机的详细信息,确认云主机所在的计算节点,云主机的实例名称instance-XXXX等信息。
1.1.3 登录到云主机的计算节点,执行virsh domblklist instance-XXXX查看云主机的信息:
virsh domblklist instance-00001907
目标 源
------------------------------------------------
vda /var/lib/nova/instances/e6a9dab3-7907-43d0-aeac-759975b60033/disk (云主机本地disk文件)
vdb /dev/disk/by-path/ip-10.10.0.80:3260-iscsi-iqn.2001-05.com.equallogic:0-fe83b6-0368751d4-abfb0d6d545579ac-volume-c36f8a85-d77b-41a4-bcd9-8d5a1e4e9fc0-lun-0 (云主机的数据盘,也就是云硬盘)。
1.1.4 cd 到云主机的disk所在目录,查看云主机磁盘数据:virtual size和disk size大小。
qemu-img info disk
1.1.5 disk与base合并,生成新的文件(基于本地存储的虚拟机,存在base基础镜像文件)
qemu-img convert -p -f qcow2 disk -O qcow2 disk-boot.img(得到合并后的镜像文件)
qemu-img info disk-boot.img(查看信息,其中virtual size与disk的virtual size一样大,disk size大于disk的disk size,新生成的disk-boot.img包含了镜像文件的大小)
1.1.6 转换数据盘格式
ls查看数据盘信息:
ls -l /dev/disk/by-path/ip-10.10.0.80:3260-iscsi-iqn.2001-05.com.equallogic:0-fe83b6-0368751d4-abfb0d6d545579ac-volume-c36f8a85-d77b-41a4-bcd9-8d5a1e4e9fc0-lun-0
根据显示的结果:/dev/disk/by-path/ip-10.10.0.80:3260-iscsi-iqn.2001-05.com.equallogic:0-fe83b6-0368751d4-abfb0d6d545579ac-volume-c36f8a85-d77b-41a4-bcd9-8d5a1e4e9fc0-lun-0 -> ../../sdx
(sdx为equallogic云磁盘的链接文件)。
qemu-img convert -p -f raw /dev/sdx -O qcow2 /var/lib/nova/instances/e6a9dab3-7907-43d0-aeac-759975b60033/disk-data.img(将EqualLogic上存储的数据进行格式转换)
1.1.7 将格式转换成raw格式,并且把disk-boot.raw disk-data.raw 远程拷贝scp到新的平台。
qemu-img convert -f qcow2 -O raw disk-boot.img disk-boot.raw(系统盘进行格式转换)
qemu-img convert -f qcow2 -O raw disk-data.img disk-data.raw(云硬盘盘进行格式转换)
2.1.1 新平台与旧平台创建一样的租户、租户网络,创建与被迁移云主机相同的规格。
2.1.2 新平台上传与旧平台一样的镜像文件,glance 镜像。
2.1.3 登录新平台创建网络接口port-id,为port-id绑定租户网络的IP。
neutron port-create --fixed-ip subnet_id=0b5a856a-b587-42c2-af26-31abe7c6556f,ip_address=10.1.0.21 --name qytest-linxi b36f0981-3ddf-48bc-b91a-10835e3bc3bd
这条命令中subnet_id通过neutron subnet-list查看获得,ip_address参数为云主机在旧平台的内网IP地址,最后面的参数为网络的UUID,通过nova network-list查看获得。
创建网络接口后,会生成一个网络接口的ID,需要记住。端口UUID:35cbce46-98d2-4a12-934e-cb9b5a364842
2.1.4 创建可启动卷,卷的镜像为迁移系统相同的镜像ID。
cinder create --display-name abctest --image-id db554aca-6826-49ac-9b84-4a7adba36fd6 20
(启动卷的大小,这里的20,单位是G,是云主机系统盘的实际大小)
这条命令创建可启动卷后,会生成一个可启动卷的ID,需要记住。可启动卷的UUID:b7a60062-5ede-456d-bdc5-6f326a33024c
2.1.5 启动云主机,基于卷,启动虚拟机的flavor规格必须先创建好。
nova boot qytest-luxu --flavor bb65623e-3c37-446b-b848-09a4c34c6155 --boot-volume b7a60062-5ede-456d-bdc5-6f326a33024c --nic port-id=35cbce46-98d2-4a12-934e-cb9b5a364842
flavor规格要与旧平台的规格保持一致,--boot-volume后面指定可启动卷的UUID,port-id为2.1.3步骤中创建的UUID,这样虚拟机租户网络保持了与原有平台一致。
这条命令会在新的平台生成一个云主机,云主机的ID为:bb378957-d885-41a0-ae3e-310215bf621a
2.1.6 虚拟机启动完成后,为虚拟机创建一块云硬盘,并且挂载到系统,云硬盘与迁移的云硬盘容量一致。
2.1.7 停止启动的云主机。
2.1.8 找到新创建的云主机所在的计算节点compute-XXX,通过virsh domblklist XXX查看云主机的磁盘信息。
nova show bb378957-d885-41a0-ae3e-310215bf621a 查看到云主机在node-XXX计算节点,并且实例名称为instance-00000b19.
2.1.9 查看云主机的磁盘信息:
virsh domblklist instance-00000b19
Target Source
------------------------------------------------
vda volumes/volume-b7a60062-5ede-456d-bdc5-6f326a33024c
vdb volumes/volume-abc7d241-430e-42fb-a4c7-947d24215ceb
2.1.10 新平台基于Ceph存储,因此需要将迁移的系统盘与数据盘导入进Ceph里面新建的虚拟机image_id与数据盘data_id,导入前必须找到新建的虚拟机的image_id,删除image_id(rbd操作在controller与computer上都可以操作,这里在controller上操作,因为拷贝的迁移数据在controller节点)。
在导入前先要通过查询确保ceph存储中存在新建云主机的磁盘信息。
rbd -p volumes ls|grep volume-b7a60062-5ede-456d-bdc5-6f326a33024c
rbd -p volumes rm volume-b7a60062-5ede-456d-bdc5-6f326a33024c(删除新建云主机卷的磁盘)
rbd -p volumes import disk-boot.raw --image volume-b7a60062-5ede-456d-bdc5-6f326a33024c(其中disk-boot.raw为迁移后转换的系统盘,volume-b7a60062-5ede-456d-bdc5-6f326a33024c为新平台创建云主机的image_id信息)。
同理,查询Ceph存储中存在新建云主机的云硬盘信息:
rbd -p volumes ls|grep volume-abc7d241-430e-42fb-a4c7-947d24215ceb
rbd -p volumes rm volume-abc7d241-430e-42fb-a4c7-947d24215ceb(删除数据卷磁盘)
rbd -p volumes import disk-data.raw --image volume-abc7d241-430e-42fb-a4c7-947d24215ceb(导入云硬盘数据,其中disk-data.raw为迁移后转换的系统盘,volume-abc7d241-430e-42fb-a4c7-947d24215ceb为新平台创建云主机的镜像信息)
等待导入完成后,启动新平台创建的云主机。云主机启动完成后,登录云主机查看系统里面的数据以及服务是否正常。