1 |
xmerlin 08/03/29 15:42:28 |
2 |
|
3 |
Modified: clvmd.rc |
4 |
Added: cluster-locking-built-in.patch |
5 |
Log: |
6 |
Added locking patch and fixed patching. |
7 |
(Portage version: 2.1.4.4) |
8 |
|
9 |
Revision Changes Path |
10 |
1.4 sys-fs/clvm/files/clvmd.rc |
11 |
|
12 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/clvm/files/clvmd.rc?rev=1.4&view=markup |
13 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/clvm/files/clvmd.rc?rev=1.4&content-type=text/plain |
14 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/clvm/files/clvmd.rc?r1=1.3&r2=1.4 |
15 |
|
16 |
Index: clvmd.rc |
17 |
=================================================================== |
18 |
RCS file: /var/cvsroot/gentoo-x86/sys-fs/clvm/files/clvmd.rc,v |
19 |
retrieving revision 1.3 |
20 |
retrieving revision 1.4 |
21 |
diff -u -r1.3 -r1.4 |
22 |
--- clvmd.rc 17 May 2006 18:19:05 -0000 1.3 |
23 |
+++ clvmd.rc 29 Mar 2008 15:42:28 -0000 1.4 |
24 |
@@ -1,16 +1,20 @@ |
25 |
#!/sbin/runscript |
26 |
# Copyright 1999-2005 Gentoo Foundation |
27 |
# Distributed under the terms of the GNU General Public License v2 |
28 |
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/clvm/files/clvmd.rc,v 1.3 2006/05/17 18:19:05 xmerlin Exp $ |
29 |
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/clvm/files/clvmd.rc,v 1.4 2008/03/29 15:42:28 xmerlin Exp $ |
30 |
+ |
31 |
+CLVM_BIN="/sbin/clvmd" |
32 |
+VGCHANGE="/sbin/vgchange" |
33 |
+VGSCAN="/sbin/vgscan" |
34 |
+VGDISPLAY="/sbin/vgdisplay" |
35 |
|
36 |
depend() { |
37 |
use dns logger |
38 |
use net |
39 |
- need cluster-manager cluster-locking-manager fenced |
40 |
+ need cman |
41 |
+ before gfs |
42 |
} |
43 |
|
44 |
-exefile=/sbin/clvmd |
45 |
- |
46 |
load_modules() { |
47 |
local module modules |
48 |
modules=$1 |
49 |
@@ -63,84 +67,75 @@ |
50 |
fi |
51 |
} |
52 |
|
53 |
- |
54 |
- |
55 |
start() { |
56 |
|
57 |
- local module=$(awk '$1 == "dm_mod" { print $1 }' /proc/modules) |
58 |
+ local module=$(awk '$1 == "dm_mod" { print $1 }' /proc/{modules,devices}) |
59 |
+ |
60 |
if [ -z "${module}" ]; then |
61 |
- load_modules dm-mod |
62 |
+ load_modules "dm-mod" |
63 |
sleep 1s |
64 |
fi |
65 |
|
66 |
ebegin "Starting clvmd" |
67 |
- start-stop-daemon --start --quiet --exec ${exefile} |
68 |
+ start-stop-daemon --start --quiet --exec ${CLVM_BIN} |
69 |
eend $? |
70 |
|
71 |
ebegin "Scanning LVM volumes" |
72 |
- /sbin/vgscan &>/dev/null |
73 |
+ ${VGSCAN} &>/dev/null |
74 |
eend $? |
75 |
|
76 |
- if [ "$?" -eq 0 ] && [ -x /sbin/vgchange ] && [ -f /etc/lvmtab -o -d /etc/lvm ] |
77 |
+ #if [ "$?" -eq 0 ] && [ -x /sbin/vgchange ] && [ -f /etc/lvmtab -o -d /etc/lvm ] |
78 |
+ #then |
79 |
+ # ebegin "Setting up the Logical Volume Manager" |
80 |
+ # /sbin/vgchange -aly >/dev/null |
81 |
+ # eend $? "Failed to setup the LVM" |
82 |
+ #fi |
83 |
+ |
84 |
+ if [ -n "$LVM_VGS" ] |
85 |
then |
86 |
- ebegin "Setting up the Logical Volume Manager" |
87 |
- /sbin/vgchange -aly >/dev/null |
88 |
- eend $? "Failed to setup the LVM" |
89 |
+ for vg in $LVM_VGS |
90 |
+ do |
91 |
+ ebegin " Activating VG: ${vg} " |
92 |
+ $VGCHANGE -ayl ${vg} >/dev/null |
93 |
+ eend $? |
94 |
+ done |
95 |
+ else |
96 |
+ clustervgs=`$VGDISPLAY 2> /dev/null | awk 'BEGIN {RS="VG Name"} {if (/Clustered/) print $1;}'` |
97 |
+ for vg in $clustervgs; do |
98 |
+ ebegin " Activating Clustered VG: ${vg} " |
99 |
+ $VGCHANGE -ayl ${vg} >/dev/null |
100 |
+ eend $? |
101 |
+ done |
102 |
fi |
103 |
- |
104 |
} |
105 |
|
106 |
stop() { |
107 |
- |
108 |
# umount GFS filesystems |
109 |
umount_gfs_filesystems |
110 |
- |
111 |
- einfo "Shutting down the Logical Volume Manager" |
112 |
|
113 |
- LOGICAL_VOLUMES=`lvdisplay |grep "LV Name"|awk '{print $3}'|sort|xargs echo` |
114 |
- VOLUME_GROUPS=`vgdisplay |grep "VG Name"|awk '{print $3}'|sort|xargs echo` |
115 |
- for x in ${LOGICAL_VOLUMES} |
116 |
- do |
117 |
- LV_IS_ACTIVE=`lvdisplay ${x}|grep "# open"|awk '{print $3}'` |
118 |
- if [ "${LV_IS_ACTIVE}" = 0 ] |
119 |
- then |
120 |
- ebegin " Shutting Down logical volume: ${x} " |
121 |
- lvchange -an --ignorelockingfailure -P ${x} >/dev/null |
122 |
- eend $? |
123 |
- fi |
124 |
- done |
125 |
+ sleep 2 |
126 |
|
127 |
- for x in ${VOLUME_GROUPS} |
128 |
- do |
129 |
- VG_HAS_ACTIVE_LV=`vgdisplay ${x}|grep "Open LV"|awk '{print $3}'|xargs echo` |
130 |
- if [ "${VG_HAS_ACTIVE_LV}" = 0 ] |
131 |
- then |
132 |
- ebegin " Shutting Down volume group: ${x} " |
133 |
- vgchange -an --ignorelockingfailure -P ${x} >/dev/null |
134 |
- eend |
135 |
- fi |
136 |
- done |
137 |
- |
138 |
- for x in ${LOGICAL_VOLUMES} |
139 |
- do |
140 |
- LV_IS_ACTIVE=`lvdisplay ${x}|grep "# open"|awk '{print $3}'` |
141 |
- if [ "${LV_IS_ACTIVE}" = 1 ] |
142 |
- then |
143 |
- |
144 |
- ROOT_DEVICE=`mount|grep " / "|awk '{print $1}'` |
145 |
- if [ ! ${ROOT_DEVICE} = ${x} ] |
146 |
- then |
147 |
- ewarn " Unable to shutdown: ${x} " |
148 |
- fi |
149 |
- fi |
150 |
- done |
151 |
- einfo "Finished Shutting down the Logical Volume Manager" |
152 |
+ if [ -n "$LVM_VGS" ] |
153 |
+ then |
154 |
+ for vg in $LVM_VGS |
155 |
+ do |
156 |
+ ebegin " Shutting Down VG: ${vg} " |
157 |
+ $VGCHANGE -anl ${vg} >/dev/null |
158 |
+ eend $? |
159 |
+ done |
160 |
+ else |
161 |
+ # Deactivate only clustered volumes |
162 |
+ clustervgs=`$VGDISPLAY 2> /dev/null | awk 'BEGIN {RS="VG Name"} {if (/Clustered/) print $1;}'` |
163 |
+ for vg in $clustervgs; do |
164 |
+ ebegin " Shutting Down Clustered VG: ${vg} " |
165 |
+ $VGCHANGE -anl ${vg} >/dev/null |
166 |
+ eend $? |
167 |
+ done |
168 |
+ fi |
169 |
|
170 |
ebegin "Stopping clvmd" |
171 |
- start-stop-daemon --stop --quiet --exec ${exefile} |
172 |
+ #start-stop-daemon --stop -s 9 --quiet --exec ${CLVM_BIN} --name clvmd |
173 |
+ killall -TERM ${CLVM_BIN} >/dev/null |
174 |
eend $? |
175 |
- |
176 |
- if [ "$?" -eq 0 ]; then |
177 |
- unload_modules dm-mod |
178 |
- fi |
179 |
+ |
180 |
} |
181 |
|
182 |
|
183 |
|
184 |
1.1 sys-fs/clvm/files/cluster-locking-built-in.patch |
185 |
|
186 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/clvm/files/cluster-locking-built-in.patch?rev=1.1&view=markup |
187 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/clvm/files/cluster-locking-built-in.patch?rev=1.1&content-type=text/plain |
188 |
|
189 |
Index: cluster-locking-built-in.patch |
190 |
=================================================================== |
191 |
--- LVM2.2.02.12-old/scripts/lvmconf.sh 2006-09-20 18:36:47.000000000 +0100 |
192 |
+++ LVM2.2.02.12/scripts/lvmconf.sh 2006-10-20 19:20:26.000000000 +0100 |
193 |
@@ -36,7 +36,7 @@ function parse_args |
194 |
while [ -n "$1" ]; do |
195 |
case $1 in |
196 |
--enable-cluster) |
197 |
- LOCKING_TYPE=2 |
198 |
+ LOCKING_TYPE=3 |
199 |
shift |
200 |
;; |
201 |
--disable-cluster) |
202 |
@@ -94,15 +94,13 @@ function validate_args |
203 |
|
204 |
if [ -n "$LOCKINGLIBDIR" ]; then |
205 |
|
206 |
- [ -z "$LOCKINGLIB" ] && LOCKINGLIB="liblvm2clusterlock.so" |
207 |
- |
208 |
if [ "${LOCKINGLIBDIR:0:1}" != "/" ] |
209 |
then |
210 |
echo "Prefix must be an absolute path name (starting with a /)" |
211 |
exit 12 |
212 |
fi |
213 |
|
214 |
- if [ ! -f "$LOCKINGLIBDIR/$LOCKINGLIB" ] |
215 |
+ if [ -n "$LOCKINGLIB" ] && [ ! -f "$LOCKINGLIBDIR/$LOCKINGLIB" ] |
216 |
then |
217 |
echo "$LOCKINGLIBDIR/$LOCKINGLIB does not exist, did you do a \"make install\" ?" |
218 |
exit 11 |
219 |
@@ -170,13 +168,29 @@ then |
220 |
if [ -z "$LOCKING_TYPE" ]; then |
221 |
LOCKING_TYPE=1 |
222 |
fi |
223 |
- if [ "$LOCKING_TYPE" = "2" ]; then |
224 |
+ if [ "$LOCKING_TYPE" = "3" ] || [ "$LOCKING_TYPE" = "2" ]; then |
225 |
cat $CONFIGFILE - <<EOF > $TMPFILE |
226 |
global { |
227 |
# Enable locking for cluster LVM |
228 |
locking_type = $LOCKING_TYPE |
229 |
library_dir = "$LOCKINGLIBDIR" |
230 |
+EOF |
231 |
+ if [ $? != 0 ] |
232 |
+ then |
233 |
+ echo "failed to create temporary config file, $CONFIGFILE not updated" |
234 |
+ exit 14 |
235 |
+ fi |
236 |
+ if [ -n "$LOCKINGLIB" ]; then |
237 |
+ cat - <<EOF >> $TMPFILE |
238 |
locking_library = "$LOCKINGLIB" |
239 |
+EOF |
240 |
+ if [ $? != 0 ] |
241 |
+ then |
242 |
+ echo "failed to create temporary config file, $CONFIGFILE not updated" |
243 |
+ exit 16 |
244 |
+ fi |
245 |
+ fi |
246 |
+ cat - <<EOF >> $TMPFILE |
247 |
} |
248 |
EOF |
249 |
fi # if we aren't setting cluster locking, we don't need to create a global section |
250 |
@@ -184,7 +198,7 @@ EOF |
251 |
if [ $? != 0 ] |
252 |
then |
253 |
echo "failed to create temporary config file, $CONFIGFILE not updated" |
254 |
- exit 14 |
255 |
+ exit 17 |
256 |
fi |
257 |
else |
258 |
# |
259 |
@@ -208,8 +222,10 @@ else |
260 |
else |
261 |
SEDCMD="${SEDCMD}\n/global[[:blank:]]*{/a\ \ \ \ library_dir = \"$LOCKINGLIBDIR\"" |
262 |
fi |
263 |
+ fi |
264 |
|
265 |
- if [ "$have_library" = "0" ] |
266 |
+ if [ -n "$LOCKINGLIB" ]; then |
267 |
+ if [ "$have_library" = "0" ] |
268 |
then |
269 |
SEDCMD="${SEDCMD}\ns/^[[:blank:]]*locking_library[[:blank:]]*=.*/\ \ \ \ locking_library = \"$LOCKINGLIB\"/g" |
270 |
else |
271 |
@@ -217,19 +233,6 @@ else |
272 |
fi |
273 |
fi |
274 |
|
275 |
- if [ "$LOCKING_TYPE" = "1" ]; then |
276 |
- # if we're not using cluster locking, remove the library dir and locking library name |
277 |
- if [ "$have_dir" = "0" ] |
278 |
- then |
279 |
- SEDCMD="${SEDCMD}\n/^[[:blank:]]*library_dir[[:blank:]]*=.*/d" |
280 |
- fi |
281 |
- |
282 |
- if [ "$have_library" = "0" ] |
283 |
- then |
284 |
- SEDCMD="${SEDCMD}\n/^[[:blank:]]*locking_library[[:blank:]]*=.*/d" |
285 |
- fi |
286 |
- fi |
287 |
- |
288 |
echo -e $SEDCMD > $SCRIPTFILE |
289 |
sed <$CONFIGFILE >$TMPFILE -f $SCRIPTFILE |
290 |
if [ $? != 0 ] |
291 |
|
292 |
|
293 |
|
294 |
-- |
295 |
gentoo-commits@l.g.o mailing list |