Gentoo Archives: gentoo-commits

From: "Christian Zoffoli (xmerlin)" <xmerlin@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/clvm/files: clvmd.rc cluster-locking-built-in.patch
Date: Sat, 29 Mar 2008 15:42:40
Message-Id: E1JfdCO-0004fU-T7@stork.gentoo.org
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