[Openstack] How does Nova determine parameters to kvm?

tudor tudor at tudorholton.com
Thu Sep 5 02:59:52 UTC 2013


 

Hi, 

I broke my test OpenStack Grizzly environment some time ago
and, rather than start again, I'm trying to understand why it's broken.
I'm trying to make sure I understand each component and how it works.


Basically, the symptom is that kvm is being called without a -netdev
argument, which results in no ethernet device in the instance, and the
tap not being created and no patch to br-int. I listed this question on
OpenStack but didn't get very far. The only suggestion was that my
libvirt_type should be kvm and not qemu, but this didn't make any
difference. 

So, earlier instance calls looked like: 

LC_ALL=C
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
QEMU_AUDIO_DRV=none /usr/bin/kvm -name instance-00000005 -S -M pc-1.0
-cpu ... -NETDEV TAP,FD=25,ID=HOSTNET0 -DEVICE
VIRTIO-NET-PCI,NETDEV=HOSTNET0,ID=NET0,MAC=FA:16:3E:C5:F1:6B,BUS=PCI.0,ADDR=0X3
.... -chardev
file,id=charserial0,path=/var/lib/nova/instances/instance-00000005/console.log
-device isa-serial,chardev=charserial0,id=serial0 -chardev
pty,id=charserial1 .... -vnc 0.0.0.0:0 -k en-us -vga cirrus -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

whereas now my
instance calls look like:

LC_ALL=C
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
QEMU_AUDIO_DRV=none /usr/bin/kvm -name instance-00000011 -S -M pc-1.0
-cpu
core2duo,+erms,+smep,+fsgsbase,+lahf_lm,+rdtscp,+rdrand,+f16c,+avx,+osxsave,+xsave,+aes,+tsc-deadline,+popcnt,+x2apic,+sse4.2,+sse4.1,+pcid,+pdcm,+xtpr,+cx16,+tm2,+est,+smx,+vmx,+ds_cpl,+dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds
-enable-kvm -m 2048 -smp 1,sockets=1,cores=1,threads=1 -uuid
e366f347-9f47-4bf9-a4eb-4567d4f9deb8 -smbios
type=1,manufacturer=OpenStack Foundation,product=OpenStack
Nova,version=2013.1.2,serial=a1378421-8208-e211-a941-0010185aae5d,uuid=e366f347-9f47-4bf9-a4eb-4567d4f9deb8
-nodefconfig -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/instance-00000011.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc
base=utc,driftfix=slew -no-kvm-pit-reinjection -no-shutdown -device
piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
file=/var/lib/nova/instances/e366f347-9f47-4bf9-a4eb-4567d4f9deb8/disk,if=none,id=drive-virtio-disk0,format=qcow2,cache=none
-device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-chardev
file,id=charserial0,path=/var/lib/nova/instances/e366f347-9f47-4bf9-a4eb-4567d4f9deb8/console.log
-device isa-serial,chardev=charserial0,id=serial0 -chardev
pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1
-device usb-tablet,id=input0 -vnc 0.0.0.0:0 -k en-us -vga cirrus -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4

(In other words, no
-netdev argument)

My nova.conf looks
like:

[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
rootwrap_config=/etc/nova/rootwrap.conf
verbose=True


#dhcpbridge_flagfile=/etc/nova/nova.conf
#dhcpbridge=/usr/bin/nova-dhcpbridge
#fixed_range=10.0.0.0/8
#flat_network_bridge=br-eth1
#flat_interface=eth1
#flat_injected=False
#public_interface=eth0


# MySQL Connection
#
sql_connection=mysql://nova:password@10.0.0.1/nova 

# nova-scheduler
#
rabbit_host=10.0.0.1
rabbit_password=password
scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler


# nova-api
#
cc_host=10.0.0.1
auth_strategy=keystone
s3_host=10.0.0.1
ec2_host=10.0.0.1
nova_url=http://10.0.0.1:8774/v1.1/
ec2_url=http://10.0.0.1:8773/services/Cloud
keystone_ec2_url=http://10.0.0.1:5000/v2.0/ec2tokens
api_paste_config=/etc/nova/api-paste.ini
allow_admin_api=true
use_deprecated_auth=false
ec2_private_dns_show_ip=True
dmz_cidr=192.168.50.250/32
#dmz_cidr=169.254.169.254/32
ec2_dmz_host=10.0.0.1
metadata_host=10.0.0.1
metadata_listen=0.0.0.0
enabled_apis=ec2,osapi_compute,metadata


# Networking
#
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://10.0.0.1:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=password
quantum_admin_auth_url=http://10.0.0.1:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver


#Testing
values
linuxnet_ovs_integration_bridge=br-int
dns_server=['192.168.50.240']
forward_bridge_interface=['eth1']
gateway=192.168.50.240
public_interface=eth1
routing_source_ip=192.168.50.250


# Compute
#
compute_driver=libvirt.LibvirtDriver
connection_type=libvirt
libvirt_type=kvm


# Cinder #
volume_api_class=nova.volume.cinder.API 

# Glance
#
glance_api_servers=10.0.0.1:9292
image_service=nova.image.glance.GlanceImageService


# novnc
#
novnc_enable=true
novncproxy_base_url=http://192.168.50.250:6080/vnc_auto.html
vncserver_proxyclient_address=10.1.0.2
vncserver_listen=0.0.0.0


How does Nova determine what parameters to enable when calling the
instance?

Cheers,
Tudor. 

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20130905/a565bf8d/attachment.html>


More information about the Openstack mailing list