OpenNebula Daemon Configuration 1.4
The OpenNebula daemon oned
manages the cluster nodes, virtual networks, virtual machines and users. The configuration file for the daemon is called oned.conf
and it is placed inside the $ONE_LOCATION/etc
directory. In this reference document we describe all the format and options that can be specified in oned.conf
.
Note: If OpenNebula was installed in system wide mode this directory becomes /etc/one/
. The rest of this guide refers to the $ONE_LOCATION
paths (corresponding to self contained mode) and omits the equivalent system wide locations. More information on installation modes can be found here.
HOST_MONITORING_INTERVAL
: Time in seconds between host monitorization VM_POLLING_INTERVAL
: Time in seconds between virtual machine monitorizationVM_DIR
: Remote path to store the VM images, it should be shared between all the cluster nodes to perform live migrations. This path will be used for all the cluster nodes.MAC_PREFIX
: Default MAC prefix to generate virtual network MAC addressesNETWORK_SIZE
: Default size for virtual networks PORT
: Port where oned will listen for xml-rpc callsDEBUG_LEVEL
: Sets the level of verbosity of $ONE_LOCATION/var/oned.log
log file. Possible values are:
DEBUG_LEVEL | Meaning |
---|---|
0 | ERROR |
1 | WARNING |
2 | INFO |
3 | DEBUG |
Example of this section:
#------------------------------------------------------------------------------- # Daemon configuration attributes #------------------------------------------------------------------------------- HOST_MONITORING_INTERVAL = 10 VM_POLLING_INTERVAL = 10 VM_DIR = /local/images MAC_PREFIX = "00:01" NETWORK_SIZE = 254 PORT = 2633 DEBUG_LEVEL = 3
The information drivers are used to gather information from the cluster nodes, and they depend on the virtualizer you are using. You can define more than one information manager but make sure it has different names. To define it, the following needs to be set:
$ONE_LOCATION/lib/mads
(or /usr/lib/one/mads/
in a system wide installation)$ONE_LOCATION/etc
(or /etc/one/
in a system wide installation).$ONE_LOCATION/etc
(or /etc/one/
in a system wide installation).For more information on configuring the information and monitoring system and hints to extend it please check the information driver configuration guide.
Sample configuration:
#------------------------------------------------------------------------------- # Information Driver Configuration #------------------------------------------------------------------------------- IM_MAD = [ name = "im_kvm", executable = "bin/one_im_ssh", arguments = "im_kvm/im_kvm.conf", default = "im_kvm/im_kvm.conf" ]
The transfer drivers are used to transfer, clone, remove and create VM images. You will be using one transfer driver or another depending on the storage layout of your cluster. You can define more than one transfer manager (e.g. you have different configurations for several cluster nodes) but make sure it has different names. To define it, there needs to be set:
$ONE_LOCATION/lib/mads
(or /usr/lib/one/mads/
in a system wide installation)$ONE_LOCATION/etc
(or /etc/one/
in a system wide installation)for the driver executable
$ONE_LOCATION/etc
(or /etc/one/
in a system wide installation)For more information on configuring different storage alternatives please check the storage configuration guide.
Sample configuration:
#------------------------------------------------------------------------------- # Transfer Driver Configuration #------------------------------------------------------------------------------- TM_MAD = [ name = "tm_ssh", executable = "one_tm", arguments = "tm_ssh/tm_ssh.conf", default = "tm_ssh/tm_ssh.conf" ]
The virtualization drivers are used create, control and monitor VMs on the cluster nodes. You can define more than one virtualization driver (e.g. you have different virtualizers in several cluster nodes) but make sure it has different names. To define it, the following needs to be set:
$ONE_LOCATION/lib/mads
(or /usr/lib/one/mads/
in a system wide installation)$ONE_LOCATION/etc
(or /etc/one/
in a system guide installation)For more information on configuring and setting up the virtualizer please check the guide that suits you:
Sample configuration:
#------------------------------------------------------------------------------- # Virtualization Driver Configuration #------------------------------------------------------------------------------- VM_MAD = [ name = "vmm_kvm", executable = "one_vmm_kvm", default = "vmm_kvm/vmm_kvm.conf", type = "kvm" ]
Hooks in OpenNebula are programs (usually scripts) which execution is triggered by a change in state in Virtual Machines. The hooks can be executed either locally or remotely in the node where the VM is running. To configure the Hook System the following needs to be set in the OpenNebula configuration file:
Sample configuration:
HM_MAD = [ executable = "one_hm" ]
Then each hook has to be configured, and for each one the following needs to be set:
Sample configuration:
VM_HOOK = [ name = "dhcp", on = "create", command = "/bin/echo", arguments = "$NAME > /tmp/test.$VMID" ]
HOST_MONITORING_INTERVAL = 10 VM_POLLING_INTERVAL = 10 VM_DIR=/local/one_images PORT=2633 DEBUG_LEVEL=3 NETWORK_SIZE = 254 MAC_PREFIX = "00:50" IM_MAD = [ name = "im_kvm", executable = "one_im_ssh", arguments = "im_kvm/im_kvm.conf" ] VM_MAD = [ name = "vmm_kvm", executable = "one_vmm_kvm", default = "vmm_kvm/vmm_kvm.conf", type = "kvm" ] TM_MAD = [ name = "tm_nfs", executable = "one_tm", arguments = "tm_nfs/tm_nfs.conf" ] HM_MAD = [ executable = "one_hm" ] VM_HOOK = [ name = "mail", on = "running", command = "/usr/local/one/bin/send_mail", arguments = "$VMID $NAME", remote = "no" ]