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
|
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