blob: a1da2e630447cbb90dba57fbfb8fd639b6dc74cf (
plain) (
blame)
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
|
# Copyright (c) 2008..2010 - RZ Uni Freiburg
# Copyright (c) 2008..2010 - OpenSLX GmbH
#
# This program/file is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your feedback to feedback@openslx.org
#
# General information about OpenSLX can be found at http://openslx.org
#
# script is included from init via the "." load function - thus it has all
# variables and functions available
# virtual virtualization plugin
# make sure that this file is the same in vmgrid and vmchooser plugin!
# include default directories
. /etc/openslx.conf
CONFFILEVMCHOOSER="/initramfs/plugin-conf/vmchooser.conf"
CONFFILEVMGRID="/initramfs/plugin-conf/vmgrid.conf"
PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualization
# check if plugins available
active=0
[ -f ${CONFFILEVMCHOOSER} ] && . ${CONFFILEVMCHOOSER}
[ ${vmchooser_active} -ne 0 ] && active=1
[ -f ${CONFFILEVMGRID} ] && . ${CONFFILEVMGRID}
[ ${vmgrid_active} -ne 0 ] && active=1
[ $DEBUGLEVEL -gt 0 ] \
&& echo -e "Executing the 'virtualization' plugin ... \c"
if [ ${active} -ne 0 ] ; then
# load general configuration
. /etc/initramfs-setup
# include functions
. /etc/functions
testmkd ${PLUGINCONFDIR}
# check if vmgrid active and change free mem
totalmem=$(expr $(grep -i "memtotal" /proc/meminfo \
| awk '{print $2}') / 1024)
echo "totalmem=${totalmem}" >> ${PLUGINCONFDIR}/virtualization.conf
if [ ${vmgrid_active} -ne 0 ]; then
totalmemtest=$(expr $(echo ${vmgrid_memratio} \
| awk -F ',' '{print $1" + "$2" + "$3" + "$4" + "$5" + "$6}'))
# not more than 100% memory assigned
if [ ${totalmemtest} -le 100 2>/dev/null ]; then
# host mem
hostratio=$(echo ${vmgrid_memratio} | awk -F ',' '{print $6}')
hostmem=$(expr ${totalmem} \* ${hostratio} / 100 2>/dev/null)
if [ ${hostmem} -lt 256 2>/dev/null ]; then
# min. 256 MB for host
hostmem=256
fi
# main vm mem (vmchooser)
if [ ${vmchooser_active} -ne 0 ]; then
mainvirtratio=$(echo ${vmgrid_memratio} | awk -F ',' '{print $5}')
mainvirtmem=$(expr ${totalmem} \* ${mainvirtratio} / 100 2>/dev/null)
if [ ${mainvirtmem} -lt 512 2>/dev/null ]; then
# min. 512 for vmchooser
mainvirtmem=512
fi
else
mainvirtratio=0
mainvirtmem=0
fi
cat << EOF >> ${PLUGINCONFDIR}/virtualization.conf
hostratio=${hostratio}
hostmem=${hostmem}
mainvirtratio=${mainvirtratio}
mainvirtmem=${mainvirtmem}
EOF
fi
fi
# cpu cores
CPU_CORES=$(grep 'processor.*:' /proc/cpuinfo | wc -l)
if [ "${CPU_CORES}" -gt "1" 2>/dev/null ]; then
echo "cpu_cores=${CPU_CORES}" \
>> ${PLUGINCONFDIR}/virtualization.conf
else
echo 'cpu_cores=1' >> ${PLUGINCONFDIR}/virtualization.conf
fi
# arch
echo "host_arch=$(uname -m)" >> ${PLUGINCONFDIR}/virtualization.conf
# VT enabled cpu?
if grep -q ^flags.*\\\<vmx\\\> /proc/cpuinfo; then
echo "vtflag=1" >> ${PLUGINCONFDIR}/virtualization.conf
echo 'kvm_module="kvm_intel"' >> ${PLUGINCONFDIR}/virtualization.conf
elif grep -q ^flags.*\\\<svm\\\> /proc/cpuinfo; then
echo "vtflag=1" >> ${PLUGINCONFDIR}/virtualization.conf
echo 'kvm_module="kvm_amd"' >> ${PLUGINCONFDIR}/virtualization.conf
else
echo "vtflag=0" >> ${PLUGINCONFDIR}/virtualization.conf
fi
# write mac
echo "machostaddr=${macaddr}" >> ${PLUGINCONFDIR}/virtualization.conf
# get further hw information
waitfor /etc/hwinfo.cdrom
j=0
for i in $(cat /etc/hwinfo.cdrom); do
echo "cdrom_$j=$i" >> ${PLUGINCONFDIR}/virtualization.conf
j=$(expr $j + 1)
done
waitfor /etc/hwinfo.floppy
j=0
for i in $(cat /etc/hwinfo.floppy); do
echo "floppy_$j=$i" >> ${PLUGINCONFDIR}/virtualization.conf
j=$(expr $j + 1)
done
# finished ...
[ $DEBUGLEVEL -gt 0 ] \
&& echo "ok"
else
[ $DEBUGLEVEL -gt 0 ] \
&& echo "failed"
fi
|