我们需要找到关键字段,经过测试,关键字段主要有(id、user_id、project_id、image_ref、vm_state、memory_mb、vcpus、hostname、host、display_name、display_description、launched_on、uuid 、node),其中关键字段id,需要在单独的映射表nova.instance_id_mappings中查询。(如果不对应请查看第七条)
第二、 通过virsh list 查看计算节点在线虚拟机
第三、 通过virsh domuuid 查询在线虚拟机的id
第四、 找到存放虚拟机实例的路径(/var/lib/nova/instances),找到libvirt.xml配置文件
第五、 查看虚拟机实例配置文件(cat libvirt.xml)
第六、user_data字段为base64加密字段
第七、id 号为The virsh domain will be named instance-<id_as_hex>
(文章中讲解https://ask.openstack.org/en/question/26295/how-does-nova-maps-the-display-name-of-vm-or-instance-in-openstack-to-instance-name-in-kvmesx-etc/)
第八、reservation_id 通过查看创建instance源码,为随机生成的id,代码如下。
- # generate_uid:随机生成一个uid值赋值给reservation_id;
- if reservation_id is None:
- reservation_id = utils.generate_uid('r')
第九、 进入mysql, 添加一条instances数据