ONED Configuration 3.0
The OpenNebula daemon oned
manages the cluster nodes, virtual networks, virtual machines, users, groups and image repository. The configuration file for the daemon is called oned.conf
and it is placed inside the /etc/one
directory. In this reference document we describe all the format and options that can be specified in oned.conf
.
MANAGER_TIMER
: Time in seconds the core uses to evaluate periodical functions. HOST_MONITORING_INTERVAL and VM_POLLING_INTERVAL can not have smaller values than MANAGER_TIMER.HOST_MONITORING_INTERVAL
: Time in seconds between host monitorization.HOST_PER_INTERVAL
: Number of hosts monitored in each interval.VM_POLLING_INTERVAL
: Time in seconds between virtual machine monitorization (set to 0 to disable VM monitoring).VM_PER_INTERVAL
: Number of VMs monitored in each interval.VM_DIR
: Remote path to store the VM images, it should be shared between all the cluster nodes to perform live migrations. This variable is the default for all the hosts in the cluster. VM_DIR IS ONLY FOR THE NODES AND *NOT* THE FRONT-ENDSCRIPTS_REMOTE_DIR
: Remote path to store the monitoring and VM management script.PORT
: Port where oned will listen for xml-rpc calls.DB
: Vector of configuration attributes for the database backend.server
(MySQL only): Host name or an IP address for the MySQL server.user
(MySQL only): MySQL user's login ID.passwd
(MySQL only): MySQL user's password.db_name
(MySQL only): MySQL database name.VNC_BASE_PORT
: VNC ports for VMs can be automatically set to VNC_BASE_PORT
+ VMID
. Refer to the VM template reference for further information.DEBUG_LEVEL
: Sets the level of verbosity of /var/log/one/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 = 20 HOST_PER_INTERVAL = 15 VM_POLLING_INTERVAL = 10 VM_PER_INTERVAL = 5 VM_DIR=/local/images SCRIPTS_REMOTE_DIR=/tmp/one PORT=2633 # Use this line for sqlite # DB = [ backend = "sqlite" ] DB = [ backend = "mysql", server = "localhost", user = "oneadmin", passwd = "one_13.0", db_name = "opennebula" ] VNC_BASE_PORT = 5000 DEBUG_LEVEL=3
NETWORK_SIZE
: Default size for virtual networks MAC_PREFIX
: Default MAC prefix to generate virtual network MAC addressesSample configuration:
#******************************************************************************* # Physical Networks configuration #******************************************************************************* NETWORK_SIZE = 3.0 MAC_PREFIX = "02:00"
The Image Repository system allows users to set up images, which can be operative systems or data, to be used in Virtual Machines easily. These images can be used by several Virtual Machiness simultaneously, and also shared with other users.
Here you can configure the default values for the image repository templates. You have more information about the templates syntax here.
DEFAULT_IMAGE_TYPE
: Default value for TYPE field when it is omitted in a template. Values accepted are OS
, CDROM
, DATABLOCK
.DEFAULT_DEVICE_PREFIX
: Default value for DEV_PREFIX field when it is omitted in a template. The missing DEV_PREFIX attribute is filled when Images are created, so changing this prefix won't affect existing Images. It can be set to:
Prefix | Device type |
---|---|
hd | IDE |
sd | SCSI |
xvd | XEN Virtual Disk |
vd | KVM virtual disk |
More information on the image repository can be found in the Managing Virtual Machine Images guide.
Sample configuration:
#******************************************************************************* # Image Repository Configuration #******************************************************************************* DEFAULT_IMAGE_TYPE = "OS" DEFAULT_DEVICE_PREFIX = "hd"
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:
/usr/lib/one/mads/
/etc/one/
./etc/one/
.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:
/usr/lib/one/mads/
/etc/one/
for the driver executable
/etc/one/
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:
/usr/lib/one/mads/
/etc/one/
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_ssh", arguments = "-t 15 -r 0 kvm", default = "vmm_ssh/vmm_ssh_kvm.conf", type = "kvm" ]
The Image Manager Driver defines a set of scripts to manage the Image Repository storage backend.
/usr/lib/one/mads/
Sample configuration:
IMAGE_MAD = [ executable = "one_image", arguments = "fs -t 15" ]
For more information on this Driver and how to customize it, please visit its reference guide.
Hooks in OpenNebula are programs (usually scripts) which execution is triggered by a change in state in Virtual Machines or Hosts. The hooks can be executed either locally or remotely in the node where the VM or Host is running. To configure the Hook System the following needs to be set in the OpenNebula configuration file:
/usr/lib/one/mads/
/etc/one/
Sample configuration:
HM_MAD = [ executable = "one_hm" ]
Sample configuration:
VM_HOOK = [ name = "on_failure_resubmit", on = "FAILED", command = "/usr/bin/env onevm resubmit", arguments = "$VMID" ]
The Driver AUTH_MAD that will be used to authenticate and authorize OpenNebula requests. If not defined OpenNebula will use the built-in auth policies
–authn
: list of authentication modules separated by commas, if not defined all the modules available will be enabled–authz
: authorization moduleSample configuration:
AUTH_MAD = [ executable = "one_auth_mad", arguments = "--authz quota --authn plain,ssh,x509" ]