Introduce support for kvm acceleration
This change introduces kvm acceleration support. The default settings still use qemu as the domain type and kvm needs to be explicitly set in order to enable it. Change-Id: I59af1b7a844b927cac45722f7ea7ea4abeef7c8f Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
This commit is contained in:
parent
c6fc3b01c2
commit
6fa28b1fb7
@ -24,6 +24,10 @@ test_vm_memory_size: Tunable setting to allow a user to define a specific
|
|||||||
between test runs, you may need to undefine the test
|
between test runs, you may need to undefine the test
|
||||||
virtual machine(s) that were previously created.
|
virtual machine(s) that were previously created.
|
||||||
|
|
||||||
|
test_vm_domain_type: Tunable setting to allow a user to chosee the domain
|
||||||
|
type of the created VMs. The default is "qemu" and can
|
||||||
|
be set to kvm to enable kvm acceleration.
|
||||||
|
|
||||||
test_vm_num_nodes: Tunable setting to allow a user to define the number of
|
test_vm_num_nodes: Tunable setting to allow a user to define the number of
|
||||||
test VMs that will be created. They will all be created
|
test VMs that will be created. They will all be created
|
||||||
with same settings.
|
with same settings.
|
||||||
|
@ -3,3 +3,4 @@
|
|||||||
baremetal_csv_file: "/tmp/baremetal.csv"
|
baremetal_csv_file: "/tmp/baremetal.csv"
|
||||||
test_vm_memory_size: "3072"
|
test_vm_memory_size: "3072"
|
||||||
test_vm_num_nodes: "1"
|
test_vm_num_nodes: "1"
|
||||||
|
test_vm_domain_type: "qemu"
|
||||||
|
@ -17,6 +17,9 @@
|
|||||||
# # Create 3 nodes with base name of 'junk'
|
# # Create 3 nodes with base name of 'junk'
|
||||||
# sudo NODEBASE=junk NODECOUNT=3 create_nodes.sh
|
# sudo NODEBASE=junk NODECOUNT=3 create_nodes.sh
|
||||||
#
|
#
|
||||||
|
# # Create 2 nodes that use KVM acceleration
|
||||||
|
# sudo VM_DOMAIN_TYPE=kvm NODECOUNT=2 create_nodes.sh
|
||||||
|
#
|
||||||
# THANKS
|
# THANKS
|
||||||
# Thanks to the author(s) of the ironic-supporting code within devstack,
|
# Thanks to the author(s) of the ironic-supporting code within devstack,
|
||||||
# from which all of this is derived.
|
# from which all of this is derived.
|
||||||
@ -34,6 +37,7 @@ LIBVIRT_CONNECT_URI=${LIBVIRT_CONNECT_URI:-"qemu:///system"}
|
|||||||
export VIRSH_DEFAULT_CONNECT_URI="$LIBVIRT_CONNECT_URI"
|
export VIRSH_DEFAULT_CONNECT_URI="$LIBVIRT_CONNECT_URI"
|
||||||
|
|
||||||
# VM specs
|
# VM specs
|
||||||
|
VM_DOMAIN_TYPE=${VM_DOMAIN_TYPE:-qemu}
|
||||||
VM_EMULATOR=${VM_EMULATOR:-/usr/bin/qemu-system-x86_64}
|
VM_EMULATOR=${VM_EMULATOR:-/usr/bin/qemu-system-x86_64}
|
||||||
VM_CPU=${VM_CPU:-1}
|
VM_CPU=${VM_CPU:-1}
|
||||||
VM_RAM=${VM_RAM:-3072}
|
VM_RAM=${VM_RAM:-3072}
|
||||||
@ -67,6 +71,7 @@ VM_LOGDIR=/var/log/libvirt/baremetal_logs
|
|||||||
# $6: Network bridge for the VMs
|
# $6: Network bridge for the VMs
|
||||||
# $7: Path to VM emulator
|
# $7: Path to VM emulator
|
||||||
# $8: Logging directory for the VMs
|
# $8: Logging directory for the VMs
|
||||||
|
# $9: Domain type of the VM
|
||||||
#############################################################################
|
#############################################################################
|
||||||
function create_node {
|
function create_node {
|
||||||
NAME=$1
|
NAME=$1
|
||||||
@ -85,6 +90,7 @@ function create_node {
|
|||||||
BRIDGE=$6
|
BRIDGE=$6
|
||||||
EMULATOR=$7
|
EMULATOR=$7
|
||||||
LOGDIR=$8
|
LOGDIR=$8
|
||||||
|
DOMAIN_TYPE=$9
|
||||||
|
|
||||||
LIBVIRT_NIC_DRIVER=${LIBVIRT_NIC_DRIVER:-"e1000"}
|
LIBVIRT_NIC_DRIVER=${LIBVIRT_NIC_DRIVER:-"e1000"}
|
||||||
LIBVIRT_STORAGE_POOL=${LIBVIRT_STORAGE_POOL:-"default"}
|
LIBVIRT_STORAGE_POOL=${LIBVIRT_STORAGE_POOL:-"default"}
|
||||||
@ -135,7 +141,7 @@ function create_node {
|
|||||||
chattr +C "$volume_path" || true
|
chattr +C "$volume_path" || true
|
||||||
fi
|
fi
|
||||||
vm_xml="
|
vm_xml="
|
||||||
<domain type='qemu'>
|
<domain type='${DOMAIN_TYPE}'>
|
||||||
<name>${NAME}</name>
|
<name>${NAME}</name>
|
||||||
<memory unit='KiB'>${MEM}</memory>
|
<memory unit='KiB'>${MEM}</memory>
|
||||||
<vcpu>${CPU}</vcpu>
|
<vcpu>${CPU}</vcpu>
|
||||||
@ -238,7 +244,7 @@ fi
|
|||||||
for (( i=1; i<=${NODECOUNT}; i++ ))
|
for (( i=1; i<=${NODECOUNT}; i++ ))
|
||||||
do
|
do
|
||||||
name=${NODEBASE}${i}
|
name=${NODEBASE}${i}
|
||||||
mac=$(create_node $name $VM_CPU $VM_RAM $VM_DISK amd64 $VM_NET_BRIDGE $VM_EMULATOR $VM_LOGDIR)
|
mac=$(create_node $name $VM_CPU $VM_RAM $VM_DISK amd64 $VM_NET_BRIDGE $VM_EMULATOR $VM_LOGDIR $VM_DOMAIN_TYPE)
|
||||||
|
|
||||||
printf "$mac,root,undefined,192.168.122.1,$VM_CPU,$VM_RAM,$VM_DISK,flavor,type,a8cb6624-0d9f-c882-affc-046ebb96ec0${i},$name,192.168.122.$((i+1))\n" >>$TEMPFILE
|
printf "$mac,root,undefined,192.168.122.1,$VM_CPU,$VM_RAM,$VM_DISK,flavor,type,a8cb6624-0d9f-c882-affc-046ebb96ec0${i},$name,192.168.122.$((i+1))\n" >>$TEMPFILE
|
||||||
done
|
done
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
environment:
|
environment:
|
||||||
NODEOUTPUT: "{{baremetal_csv_file}}"
|
NODEOUTPUT: "{{baremetal_csv_file}}"
|
||||||
VM_RAM: "{{ test_vm_memory_size }}"
|
VM_RAM: "{{ test_vm_memory_size }}"
|
||||||
|
VM_DOMAIN_TYPE: "{{ test_vm_domain_type }}"
|
||||||
NODECOUNT: "{{ test_vm_num_nodes }}"
|
NODECOUNT: "{{ test_vm_num_nodes }}"
|
||||||
register: task_create_vm_nodes
|
register: task_create_vm_nodes
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Add support for kvm acceleration for the VMs created
|
||||||
|
by bifrost-create-vm-nodes. The default domain type
|
||||||
|
for the created VMs is qemu which uses tcg acceleration.
|
||||||
|
In order to use kvm acceleration, users need to set
|
||||||
|
VM_DOMAIN_TYPE to kvm.
|
@ -23,6 +23,7 @@ BUILD_IMAGE="false"
|
|||||||
# use cirros.
|
# use cirros.
|
||||||
|
|
||||||
VM_MEMORY_SIZE="3072"
|
VM_MEMORY_SIZE="3072"
|
||||||
|
VM_DOMAIN_TYPE=qemu
|
||||||
TEST_VM_NUM_NODES=1
|
TEST_VM_NUM_NODES=1
|
||||||
USE_CIRROS=true
|
USE_CIRROS=true
|
||||||
TESTING_USER=cirros
|
TESTING_USER=cirros
|
||||||
@ -106,6 +107,7 @@ ${ANSIBLE} -vvvv \
|
|||||||
test-bifrost-create-vm.yaml \
|
test-bifrost-create-vm.yaml \
|
||||||
-e test_vm_num_nodes=${TEST_VM_NUM_NODES} \
|
-e test_vm_num_nodes=${TEST_VM_NUM_NODES} \
|
||||||
-e test_vm_memory_size=${VM_MEMORY_SIZE} \
|
-e test_vm_memory_size=${VM_MEMORY_SIZE} \
|
||||||
|
-e test_vm_domain_type=${VM_DOMAIN_TYPE} \
|
||||||
-e enable_venv=${ENABLE_VENV}
|
-e enable_venv=${ENABLE_VENV}
|
||||||
|
|
||||||
if [ ${USE_DHCP} = "true" ]; then
|
if [ ${USE_DHCP} = "true" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user