简单说明一下,openstack创建虚拟机内幕!
实例的实际创建过程是通过调用libvirt函数来完成,在virt/Libvirt/driver.py中spawn方法来完成真正的虚拟机创建过程。
1 def spawn(self, context, instance, image_meta, injected_files,
2 admin_password, network_info=None, block_device_info=None):
3 disk_info = blockinfo.get_disk_info(CONF.libvirt_type,
4 instance,
5 block_device_info,
6 image_meta)
7 xml = self.to_xml(instance, network_info,
8 disk_info, image_meta,
9 block_device_info=block_device_info)
10
11 self._create_image(context, instance, xml,
12 disk_info['mapping'],
13 network_info=network_info,
14 block_device_info=block_device_info,
15 files=injected_files,
16 admin_pass=admin_password)
17
18 self._create_domain_and_network(xml, instance, network_info,
19 block_device_info)
20 LOG.debug(_("Instance is running"), instance=instance)
21
22 def _wait_for_boot():
23 """Called at an interval until the VM is running."""
24 state = self.get_info(instance)['state']
25
26 if