-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
157 lines (107 loc) · 6.04 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
CLUES ONE Connector - OpenNebula for Cluster Energy Saving System
0. DESCRIPTION
This is the connector that enables CLUES to integrate with Open Nebula
Cloud Management System.
Complete documentation can be found at
http://www.grycap.upv.es/clues
CLUES ONE Connector is distributed under the GPL version 3 license
CLUES ONE Connector - ONE Connector for Cluster Energy Saving System
Copyright (C) 2011 - GRyCAP - Universitat Politecnica de Valencia
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
1. INSTALLATION
If you are following this guide, you are advised to read the whole guide prior to
start installing CLUES. In fact, this guide is very straightforward.
1.1 REQUISITES
Both CLUES and this ONE connector are based on python, so Python 2.4 or higher
runtime and standard library must be installed in the system.
1.2 INSTALLING
The path in which CLUES system is installed will be called CLUES_PATH
$ cd $CLUES_PATH/plugins
$ tar xvfz clues-one3-0.88.tar.gz
$ ln -s clues-one3-0.88 one
Configure CLUES to use this plug-in by including it in the configuration file, and
adjust the config.py configuration file inside the ONE.
Locate the ONE configuration file (e.g. /srv/cloud/one/etc/oned.cfg) and append the
next hook statement
VM_HOOK = [
name = "hold_vm",
on = "CREATE",
command = "/opt/clues/plugins/one/one.wrapper.py",
arguments = "$VMID" ]
Please make sure to adjust the "one.wrapper.py" path to the real path according to
your CLUES installation. Also check that the user that runs the CLUES daemon has
permissions to read an execute both the "one.wrapper.py" and "one.nodeinfo"
executables.
Restart the OpenNebula daemon to make it to take into account the changes.
1.3 CONFIGURATION
Please, adjust the variables in config.py to fit your CLUES installation, but also
the ONE configuration.
1.3.1 ONE CREDENTIALS
CLUES needs a user to interacts with ONE to be able to hold and to release virtual
machines.
Please create a user and place the ONE credentials (ONE_AUTH file) in the plugin
directory as /opt/clues/plugins/one/one_auth with the proper file permissions.
$ chmod 400 /opt/clues/plugins/one/one_auth
Make sure that the one_auth file is readable by both the user that runs CLUES and
the user that runs OpenNebula. Otherwise you can create one file for each subsystem
with different permissions, in case that such configuration is more suitable for you.
The most general solution would be to create a group called "clues" in which they are
included both the "oneadmin" user (the user that runs the ONE daemon) and the "clues" user
(the user that runs the CLUES daemon) and adjust the permissions for the one_auth file
$ addgroup clues
$ usermod -aG clues oneadmin
$ usermod -aG clues root
$ chown :clues /opt/clues/plugins/one/one_auth
$ chmod 440 /opt/clues/plugins/one/one_auth
1.3.2 PLUGIN CONFIGURATION
Please adjust the next variable to provide administrative rights for the connector
in the /opt/clues/plugins/one/config.py file
ONE_AUTH_FILENAME="/opt/clues/plugins/one/one_auth"
1.3.3 NEEDED INTEGRATION
In order to avoid ONE errors, two scripts are provided to disable (in the ONE
environment) the hosts that powered off, and later enable them when they are powered
on. They are placed in the /opt/clues/plugins/one/power.d
Please adjust the next variable to point to the plugin folder in both 50one.poweron
and 50one.poweroff files:
PLUGIN_PATH=/opt/clues/plugins/one
Then please link both files to be properly called by the CLUES power on and power
off mechanisms:
$ ln -s /opt/clues/plugins/one/power.d/50one.poweroff /opt/clues/bin/power.d
$ ln -s /opt/clues/plugins/one/power.d/50one.poweron /opt/clues/bin/power.d
1.3.4 CLUES CONFIGURATION
CLUES needs to check the available resources once the ONE scheduler has deployed
the virtual machine. To ensure that the virtual machine has already allocated the
resources that ONE has assigned to it, CLUES needs to synchronize with the ONE
scheduler.
The synchronization is made by altering the variable MAX_TIME_LAUNCH in the CLUES
main config.py file (probably located in /opt/clues). You must set the MAX_TIME_LAUNCH
to the period that the ONE scheduler deploys virtual machines (by default it is set
to 30 seconds).
MAX_TIME_LAUNCH=30
CLUES also relies on the ONE monitoring system to check whether a node has been
properly started or not. Please adjust the ONE host monitoring time to a time that
will not interfer in your work. Take into account that the default configuration
of ONE monitor the hosts each 10 minutes. That would mean that a VM that needs to
power on a node will wait up to 10 minutes even if the host has been properly
powered on. Please adjust the HOST_MONITORING_INTERVAL variable in the oned.conf
file.
HOST_MONITORING_INTERVAL = 60
1.3.5 CHECKING THE INSTALLATION
In order to check that your system is properly configured you can execute the
one.nodeinfo command in the commandline. The output should be somehow like the next
example:
$ ./one.nodeinfo
dellblade15;free;free_slots=7;total_slots=16;NAME="dellblade15";TOTALCPU=1600;TOTALMEMORY=16419876;FREEMEMORY=15158736;FREECPU=1497.6;USEDMEMORY=1261140;USEDCPU=102.4;HYPERVISOR="kvm";RUNNING_VMS=2
(...)
dellblade01;free;free_slots=2;total_slots=8;NAME="dellblade01";TOTALCPU=800;TOTALMEMORY=16434168;FREEMEMORY=16178460;FREECPU=800;USEDMEMORY=255708;USEDCPU=0;HYPERVISOR="kvm";RUNNING_VMS=0
This check will tell you if there are problems in the credentials of the user, the
permissions to execute the command, etc.