Merge "Introduce support for kvm acceleration"
This commit is contained in:
commit
04dfe02578
@ -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
|
||||
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 VMs that will be created. They will all be created
|
||||
with same settings.
|
||||
|
@ -3,3 +3,4 @@
|
||||
baremetal_csv_file: "/tmp/baremetal.csv"
|
||||
test_vm_memory_size: "3072"
|
||||
test_vm_num_nodes: "1"
|
||||
test_vm_domain_type: "qemu"
|
||||
|
@ -17,6 +17,9 @@
|
||||
# # Create 3 nodes with base name of 'junk'
|
||||
# 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 to the author(s) of the ironic-supporting code within devstack,
|
||||
# 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"
|
||||
|
||||
# VM specs
|
||||
VM_DOMAIN_TYPE=${VM_DOMAIN_TYPE:-qemu}
|
||||
VM_EMULATOR=${VM_EMULATOR:-/usr/bin/qemu-system-x86_64}
|
||||
VM_CPU=${VM_CPU:-1}
|
||||
VM_RAM=${VM_RAM:-3072}
|
||||
@ -67,6 +71,7 @@ VM_LOGDIR=/var/log/libvirt/baremetal_logs
|
||||
# $6: Network bridge for the VMs
|
||||
# $7: Path to VM emulator
|
||||
# $8: Logging directory for the VMs
|
||||
# $9: Domain type of the VM
|
||||
#############################################################################
|
||||
function create_node {
|
||||
NAME=$1
|
||||
@ -85,6 +90,7 @@ function create_node {
|
||||
BRIDGE=$6
|
||||
EMULATOR=$7
|
||||
LOGDIR=$8
|
||||
DOMAIN_TYPE=$9
|
||||
|
||||
LIBVIRT_NIC_DRIVER=${LIBVIRT_NIC_DRIVER:-"e1000"}
|
||||
LIBVIRT_STORAGE_POOL=${LIBVIRT_STORAGE_POOL:-"default"}
|
||||
@ -135,7 +141,7 @@ function create_node {
|
||||
chattr +C "$volume_path" || true
|
||||
fi
|
||||
vm_xml="
|
||||
<domain type='qemu'>
|
||||
<domain type='${DOMAIN_TYPE}'>
|
||||
<name>${NAME}</name>
|
||||
<memory unit='KiB'>${MEM}</memory>
|
||||
<vcpu>${CPU}</vcpu>
|
||||
@ -238,7 +244,7 @@ fi
|
||||
for (( i=1; i<=${NODECOUNT}; i++ ))
|
||||
do
|
||||
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
|
||||
done
|
||||
|
@ -56,6 +56,7 @@
|
||||
environment:
|
||||
NODEOUTPUT: "{{baremetal_csv_file}}"
|
||||
VM_RAM: "{{ test_vm_memory_size }}"
|
||||
VM_DOMAIN_TYPE: "{{ test_vm_domain_type }}"
|
||||
NODECOUNT: "{{ test_vm_num_nodes }}"
|
||||
register: task_create_vm_nodes
|
||||
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.
|
||||
|
||||
VM_MEMORY_SIZE="3072"
|
||||
VM_DOMAIN_TYPE=qemu
|
||||
TEST_VM_NUM_NODES=1
|
||||
USE_CIRROS=true
|
||||
TESTING_USER=cirros
|
||||
@ -106,6 +107,7 @@ ${ANSIBLE} -vvvv \
|
||||
test-bifrost-create-vm.yaml \
|
||||
-e test_vm_num_nodes=${TEST_VM_NUM_NODES} \
|
||||
-e test_vm_memory_size=${VM_MEMORY_SIZE} \
|
||||
-e test_vm_domain_type=${VM_DOMAIN_TYPE} \
|
||||
-e enable_venv=${ENABLE_VENV}
|
||||
|
||||
if [ ${USE_DHCP} = "true" ]; then
|
||||
|
Loading…
Reference in New Issue
Block a user