Bug 55460

Summary: rc.sysinit doesn't work right with LVM + RAID
Product: [Retired] Red Hat Linux Reporter: Daniel Wittenberg <daniel-wittenberg>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED CURRENTRELEASE QA Contact: Brock Organ <borgan>
Severity: high Docs Contact:
Priority: high    
Version: 7.2CC: rvokal, shishz, tjarls, zmousm
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-09-10 11:25:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
initscripts-casts.patch
none
initscripts-halt-lvm.patch
none
initscripts-rc.sysinit-lvm.patch none

Description Daniel Wittenberg 2001-10-31 17:12:04 UTC
Description of Problem:
If you have an LVM configuration on top of software RAID, the 
rc.sysinit script will fail because it tries to setup LVM before 
RAID, which will obviously fail.  The worst part is that if 
vgscan doesn't find the vgda, it will wipe your LVM config info 
(/etc/lvmtab and /etc/lvmtab.d/*).  

Version-Release number of selected component (if 
applicable):
Red Hat 7.2 init scripts, rc.sysinit specifically

How Reproducible:
Setup LVM on top of a software RAID device

Steps to Reproduce:
1. 
2. 
3. 

Actual Results:


Expected Results:
LVM should be configured _after_ RAID configuration in the 
rc.sysinit.

Additional Information:

Comment 1 Charles Lopes 2001-12-03 16:52:34 UTC
Further both should be moved much earlier in the file before turning on the swap.
That way a RAID array or LVM volume can be used for swap.

Comment 2 Andreas Piesk 2002-03-01 23:12:37 UTC
lvm initialization fails if lvm was built as module, because /proc/lvm does
not exist if module isn't loaded. another (dangerous) thing is calling vgscan 
at every bootup. vgscan will first remove /etc/{lvmtab,lvmtab.d} and create new 
files afterwards. the files are containing the volume group layout. if vgscans 
fails for whatever reason, your setup is lost. see file initscripts-rc.sysinit-
lvm.patch.

the volume groups should be deacticated in /etc/rc.d/init.d/halt. see file 
initscripts-halt-lvm.patch.

last but not least i fixed some compilerwarning (type cast). see file 
initscripts-casts.patch.


Comment 3 Andreas Piesk 2002-03-01 23:13:55 UTC
Created attachment 47164 [details]
initscripts-casts.patch

Comment 4 Andreas Piesk 2002-03-01 23:14:34 UTC
Created attachment 47165 [details]
initscripts-halt-lvm.patch

Comment 5 Andreas Piesk 2002-03-01 23:15:20 UTC
Created attachment 47166 [details]
initscripts-rc.sysinit-lvm.patch

Comment 6 Need Real Name 2002-09-10 11:25:11 UTC
I think that the attached rc.sysinit (id=47166) is not correct:
-if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
-        action $"Setting up Logical Volume Management:" /sbin/vgscan 
&& /sbin/vgchange -a y
+if [ -f /lib/modules/$(uname -r)/kernel/drivers/md/lvm-mod.o -o -e /proc/lvm ] 
&& \
+   [ -x /sbin/vgchange -a -f /etc/lvmtab ]; then
+        action $"Setting up Logical Volume Management:" /sbin/vgchange -a y
 fi

I think the right is:
-if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
-        action $"Setting up Logical Volume Management:" /sbin/vgscan 
&& /sbin/vgchange -a y
-fi
+if [ -f /lib/modules/$(uname -r)/kernel/drivers/md/lvm-mod.o -o -e /proc/lvm ] 
&& \
+   [ -x /sbin/vgchange -a -f /etc/lvmtab ]; then
+        action $"Setting up Logical Volume Management:" /sbin/vgchange -a y
+ fi


Comment 7 Bill Nottingham 2002-10-21 16:54:16 UTC
All the LVM code should be OK in current initscripts. Talking to the LVM gurus
here; they state that the shutdown isn't really necessary.