This installation uses Quattor for an automated installation of one OpenNebula front-end and one or more OpenNebula nodes. The OpenNebula daemon runs on the front-end and controls the virtual machines running on all of the OpenNebula nodes/hosts.
This configuration assumes that KVM hypervisor is being used.
The front-end acts as an NFS server and shares two areas with the nodes:
/var/lib/one)/home/oneadmin)
The front-end should have a large amount of free disk space available in /var.
The oneadmin unix user will run the daemon on the front-end and controls all of the nodes via ssh. The configuration uses the same uid/gid for the oneadmin user on all of the nodes and permits password-less access between all of the OpenNebula nodes.
The following figure shows the reference deployment that is created with the Quattor configuration.
The installation uses the default database, sqlite. You can also use mysql as database backend.
The StratusLab packages used in this installation are:
These are all available in the releases yum repository.
Some external dependencies are also available in the releases yum repository. These include:
The Quattor configuration for StratusLab can be found in the StratusLab maven repository. Use the latest version of the quattor-cloud-config*.tar.gz.
You will also need to download the configuration files for ncm-libvirtd and ncm-oned.
The other configuration modules used by the Quattor configuration are part of the standard set of modules provided from the QWG distribution.
For the OpenNebula front-end, create a machine profile like the following:
object template profile_onehost-172;
include { 'machine-types/one-frontend' };
#
# software repositories (should be last)
#
include { PKG_REPOSITORY_CONFIG };
Be sure to modify the variables in the one-parameters.tpl template.
For each OpenNebula node, create a machine profile like the following:
object template profile_onehost-173;
include { 'machine-types/one-host' };
#
# software repositories (should be last)
#
include { PKG_REPOSITORY_CONFIG };
Be sure to modify the variables in the one-parameters.tpl template.
The monitoring tools need some manual configuration:
These will need to be done with the root account.
Quattor can configure mysql as OpenNebula backend database. To use it, you must add the following information into frontend template.
variable ONE_SQL_BACKEND ?= 'mysql'; variable MYSQL_PASSWORD ?= 'xxx';
On StratusLab, there are mainly 3 network relative component:
Quattor can manage all this component with 1 variable : ONE_NETWORK
The following example show you how you can define network on quattor to configure StratusLab
variable ONE_NETWORK = nlist(
'domain','lal.in2p3.fr',
'nameserver', list('134.158.91.80'),
'public', nlist(
'interface', 'br0',
'subnet', '134.158.75.0',
'router', '134.158.75.1',
'netmask', '255.255.255.0',
'vms',nlist(
'onevm-32',nlist('mac-address','0a:0a:86:9e:49:20','fixed-address','134.158.75.32','claudia','no'),
'onevm-33',nlist('mac-address','0a:0a:86:9e:49:21','fixed-address','134.158.75.33','claudia','no'),
'onevm-34',nlist('mac-address','0a:0a:86:9e:49:22','fixed-address','134.158.75.34','claudia','no'),
'onevm-35',nlist('mac-address','0a:0a:86:9e:49:23','fixed-address','134.158.75.35','claudia','no'),
'onevm-36',nlist('mac-address','0a:0a:86:9e:49:24','fixed-address','134.158.75.36','claudia','dyn'),
'onevm-37',nlist('mac-address','0a:0a:86:9e:49:25','fixed-address','134.158.75.37','claudia','dyn'),
'onevm-38',nlist('mac-address','0a:0a:86:9e:49:26','fixed-address','134.158.75.38','claudia','dyn'),
'onevm-39',nlist('mac-address','0a:0a:86:9e:49:27','fixed-address','134.158.75.39','claudia','dyn'),
'onevm-40',nlist('mac-address','0a:0a:86:9e:49:28','fixed-address','134.158.75.40','claudia','sta'),
'onevm-41',nlist('mac-address','0a:0a:86:9e:49:29','fixed-address','134.158.75.41','claudia','sta')
),
),
'local',nlist(
'interface', 'br0:privlan',
'subnet', '172.17.16.0',
'router', '172.17.16.1',
'netmask', '255.255.255.0',
'vms',nlist(
'onevmp-32',nlist('mac-address','0a:0b:86:9e:49:20','fixed-address','172.17.16.32','claudia','no'),
'onevmp-33',nlist('mac-address','0a:0b:86:9e:49:21','fixed-address','172.17.16.33','claudia','no'),
'onevmp-34',nlist('mac-address','0a:0b:86:9e:49:22','fixed-address','172.17.16.34','claudia','no'),
'onevmp-35',nlist('mac-address','0a:0b:86:9e:49:23','fixed-address','172.17.16.35','claudia','no'),
'onevmp-36',nlist('mac-address','0a:0b:86:9e:49:24','fixed-address','172.17.16.36','claudia','no'),
'onevmp-37',nlist('mac-address','0a:0b:86:9e:49:25','fixed-address','172.17.16.37','claudia','no'),
'onevmp-38',nlist('mac-address','0a:0b:86:9e:49:26','fixed-address','172.17.16.38','claudia','no'),
'onevmp-39',nlist('mac-address','0a:0b:86:9e:49:27','fixed-address','172.17.16.39','claudia','no'),
'onevmp-40',nlist('mac-address','0a:0b:86:9e:49:28','fixed-address','172.17.16.40','claudia','dyn'),
'onevmp-41',nlist('mac-address','0a:0b:86:9e:49:29','fixed-address','172.17.16.41','claudia','dyn')
),
),
);
The host configuration is defined on frontend template.
This is a example of what can be declared into frontend template to enable a host (here onehost-10.lal.in2p3.fr).
'/software/components/oned/hosts/onehost-10.lal.in2p3.fr/enabled' = true;
For smaller installations, the OpenNebula front end can also function as a node/host.
Account can also be configured by quattor. Both username/password and x509 certificate authentification is supported. The accounts are defined in frontend template.
This is a example of what can be declared into frontend template to add one user.
include { 'components/one_proxy/config' };
prefix '/software/components/one_proxy/config';
'users_by_pswd/xxx/password' = 'CRYPT:yyy';
'users_by_cert/{CN=MyCN, OU=LAL, O=CNRS, C=FR, O=GRID-FR}/groups' = list('cloud-access');
Claudia Quattor component manage 3 files :
The Claudia configuration is mainly merge with network configuration. But you can customize your configuration. The following example show you how you can customize your claudia configuration:
prefix '/software/components/claudia'; 'sm-config/NetworkMac/MacEnabled' = true; 'reportClient-config/MonitorName' = 'cpus.1'; 'reportClient-config/vmMonName' = 'workernode.replicas.1';
The web monitor is not currently configured automatically. As root you need to change the value of one_password in /var/www/cgi-bin/conf/stratuslab.cfg. You can find the password being used by the oneadmin account in the file ~oneadmin/.one/one_auth. The password is the part after the colon.
The web server does not need to be restarted.
Testing the installation consists of the following:
On the OpenNebula front end, you should see that the services oned and mm_sched are running. Use the command service oned status to verify this.
Use the commands onevnet list and onehost list, and onevm list to verify the network and host configurations, respectively. Initially the two networks should exist with no active leases. The defined hosts should be visible and the monitoring information should be available. The cloud should be empty, so onevm list should return an empty list.
At this point, you should be able to run a virtual machine using OpenNebula. Choose an image and try running it. You should be able to ssh into the running node. You can look for errors in the /var/log/one area.
There are two monitors available for the deployment: StratusLab Web Monitor and Ganglia. The StratusLab Web Monitor shows the node and virtual machine characteristics and is available from:
http://frontend/cgi-bin/nodelist.py
replace frontend with the node name of your cloud frontend.
Ganglia is a standard monitoring framework that is setup to monitor the activity on the physical hosts. It is available from:
http://frontend/ganglia
Again, replace frontend with the node name of your cloud frontend.
To start a “helloworld” Virtual Machine with Claudia, you must connect to the frontend and launch
/opt/claudia/bin/ClaudiaC "deploy(hello,world,http://quattorsrv.lal.in2p3.fr/ovf/default.xml)"