Hi everyone!
I am setting up a simple cloud infrastructure consisting of one front-end (x86) and one host (ARM). I could successfully setup the OpenNebula packages in both computers and add the host to OpenNebula, using KVM.
This is the information I get when I enter the command onehost list:
ID : 3
NAME : node
CLUSTER : -
STATE : MONITORED
IM_MAD : kvm
VM_MAD : kvm
VN_MAD : dummy
LAST MONITORING TIME : 06/05 11:40:51
HOST SHARES
TOTAL MEM : 2G
USED MEM (REAL) : 60M
USED MEM (ALLOCATED) : 512M
TOTAL CPU : 200
USED CPU (REAL) : 20
USED CPU (ALLOCATED) : 100
RUNNING VMS : 1
MONITORING INFORMATION
ARCH="armv7l"
CPUSPEED="48"
HOSTNAME="cubietruck"
HYPERVISOR="kvm"
IM_MAD="kvm"
MODELNAME="ARMv7 Processor rev 4 (v7l)"
NETRX="1182302639"
NETTX="1210836522"
RESERVED_CPU=""
RESERVED_MEM=""
VERSION="4.14.2"
VM_MAD="kvm"
VN_MAD="dummy"
The problem is that I can’t instantiate Virtual Machines in the host. The command I use to instantiate my virtual machine directly in the node is the following:
sudo qemu-system-arm -enable-kvm -m 512M -M vexpress-a15 -cpu host -kernel zImage -dtb vexpress-v2p-ca15-tc1.dtb -append "root=/dev/vda console=ttyAMA0 rootwait" -drive if=none,file=opensuse-factory.img,id=factory -device virtio-blk-device,drive=factory -net nic -net user -monitor null -serial stdio -nographic
The files I have are:
- zImage, the kernel
- vexpress-v2p-ca15-tc1.dtb, the DTB file
- opensuse-factory.img, the disk image
Since I am using ARM in the host and I need to set all these options, I am quite confused on how to do that. I’ve uploaded the 3 files to the datastore, the disk image using the oneimage command, the kernel as a kernel file in the file datastore, and the DTB file as a context file in the file datastore.
Then, I’ve created the following template:
TEMPLATE 1 INFORMATION
ID : 1
NAME : OpenSuse
USER : oneadmin
GROUP : oneadmin
REGISTER TIME : 06/05 11:21:27
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
TEMPLATE CONTENTS
CONTEXT=[
NETWORK="YES",
SSH_PUBLIC_KEY="$USER[SSH_PUBLIC_KEY]" ]
CPU="1"
DISK=[
IMAGE="opensuse-factory",
IMAGE_UNAME="oneadmin" ]
HYPERVISOR="kvm"
LOGO="images/logos/linux.png"
MEMORY="512"
NIC=[
NETWORK="private",
NETWORK_UNAME="oneadmin" ]
OS=[
KERNEL_CMD="root=/dev/vda console=ttyAMA0 rootwait",
KERNEL_DS="$FILE[IMAGE_ID=4]" ]
Note that there is no reference to the DTB file, because I don’t know how to set it using OpenNebula.
When I try to instantiate a VM using this template, I am getting the following error:
Sun Jun 5 11:22:11 2016 [Z0][VM][I]: New state is ACTIVE
Sun Jun 5 11:22:11 2016 [Z0][VM][I]: New LCM state is PROLOG
Sun Jun 5 11:26:10 2016 [Z0][VM][I]: New LCM state is BOOT
Sun Jun 5 11:26:10 2016 [Z0][VMM][I]: Generating deployment file: /var/lib/one/vms/4/deployment.0
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: ExitCode: 0
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: Successfully execute network driver operation: pre.
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: Command execution fail: cat << EOT | /var/tmp/one/vmm/kvm/deploy ‘/var/lib/one//datastores/0/4/deployment.0’ ‘node’ 4 node
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: setlocale: No such file or directory
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: error: Failed to create domain from /var/lib/one//datastores/0/4/deployment.0
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: error: internal error: No guest options available for arch 'x86_64’
Sun Jun 5 11:26:11 2016 [Z0][VMM][E]: Could not create domain from /var/lib/one//datastores/0/4/deployment.0
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: ExitCode: 255
Sun Jun 5 11:26:11 2016 [Z0][VMM][I]: Failed to execute virtualization driver operation: deploy.
Sun Jun 5 11:26:11 2016 [Z0][VMM][E]: Error deploying virtual machine: Could not create domain from /var/lib/one//datastores/0/4/deployment.0
Sun Jun 5 11:26:11 2016 [Z0][VM][I]: New LCM state is BOOT_FAILURE
I don’t really know what is going on, but my first task would be to make my template replicate the command I use to instantiate VM’s directly in the host.
Any ideas?
Thanks!