LVM cannot detect the swap or ‘/’ volume group but why is the swap still present

lvmrhel5swap

i have a server (hp x86 blade running OEL/RHEL5) that has a faulty lvm filter configured in lvm.conf

filter = ["a|^/dev/emcpower.*|", "r/.*/"]

we also use cciss devices so there should have been an accept statement in there for them at /dev/cciss. This oversight has not caused a problem so far. the 'system' partitions (e.g. /var, /home, etc.) are not in volume groups but just on disk.

But both the '/' mount and the swap space is configured on an LVM volume group with physical volumes on the cciss device which is being rejected by the lvm filter.

The server seems to be working fine but how is this possible?

mount output

/dev/mapper/VolGroup01-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/cciss/c0d0p8 on /home type ext3 (rw)
/dev/cciss/c0d0p7 on /opt type ext3 (rw)
/dev/cciss/c0d0p6 on /var type ext3 (rw)
/dev/cciss/c0d0p5 on /tmp type ext3 (rw)
/dev/cciss/c0d0p3 on /usr type ext3 (rw)
/dev/cciss/c0d0p2 on /temp type ext3 (rw)
/dev/cciss/c0d0p1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)

from /etc/fstab

/dev/VolGroup01/LogVol00 /                       ext3    defaults        1 1
LABEL=/home             /home                   ext3    defaults        1 2
LABEL=/opt              /opt                    ext3    defaults        1 2
LABEL=/var              /var                    ext3    defaults        1 2
LABEL=/tmp              /tmp                    ext3    defaults        1 2
LABEL=/usr              /usr                    ext3    defaults        1 2
LABEL=/temp             /temp                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup01/LogVol01 swap                    swap    defaults        0 0
/dev/VolGroup01/LogVol02 swap                    swap    defaults        0 0
...

disks by label

[user@host~]$ ls -al /dev/disk/by-label/
total 0
drwxr-xr-x 2 root root 180 Apr 12 19:23 .
drwxr-xr-x 6 root root 120 Apr 12 19:23 ..
lrwxrwxrwx 1 root root  18 Apr 12 19:23 boot -> ../../cciss/c0d0p1
lrwxrwxrwx 1 root root  18 Apr 12 19:23 home -> ../../cciss/c0d0p8
lrwxrwxrwx 1 root root  18 Apr 12 19:23 opt -> ../../cciss/c0d0p7
lrwxrwxrwx 1 root root  18 Apr 12 19:23 temp -> ../../cciss/c0d0p2
lrwxrwxrwx 1 root root  18 Apr 12 19:23 tmp -> ../../cciss/c0d0p5
lrwxrwxrwx 1 root root  18 Apr 12 19:23 usr -> ../../cciss/c0d0p3
lrwxrwxrwx 1 root root  18 Apr 12 19:23 var -> ../../cciss/c0d0p6

vgdisplay

[user@host ~]$ sudo vgdisplay -v VolGroup01
Using volume group(s) on command line
Finding volume group "VolGroup01"
Wiping cache of LVM-capable devices
Volume group "VolGroup01" not found

dev mapper

[user@host ~]$ ls -al /dev/mapper/VolGroup0*
brw------- 1 root root 253, 0 Apr 12 19:23 /dev/mapper/VolGroup01-LogVol00
brw------- 1 root root 253, 1 Apr 12 19:23 /dev/mapper/VolGroup01-LogVol01
brw------- 1 root root 253, 2 Apr 12 19:23 /dev/mapper/VolGroup01-LogVol02

swapon

[user@host ~]$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/VolGroup01-LogVol01         partition       18481144        1860804-1
/dev/mapper/VolGroup01-LogVol02         partition       18874360        0      -2

/etc/lvm/backup/VolGroup01

VolGroup01 {
        id = "KtRbKi-wZ8l-rsgg-LyoT-edcO-2Nzo-qsDmaK"
        seqno = 4
        status = ["RESIZEABLE", "READ", "WRITE"]
        flags = []
        extent_size = 65536             # 32 Megabytes
        max_lv = 0
        max_pv = 0

        physical_volumes {

                pv0 {
                        id = "H9ludV-lTJK-ivK1-HcUf-G8KR-krD9-TsNJrp"
                        device = "/dev/cciss/c0d0p9"    # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 93964122     # 44.8056 Gigabytes
                        pe_start = 384
                        pe_count = 1433 # 44.7812 Gigabytes
                }
        }

        logical_volumes {

                LogVol00 {
                        id = "1P5pnt-jFXu-ec4f-NfWC-q9jx-CRGc-33lyPd"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 125      # 3.90625 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 0
                                ]
                        }
                }

                LogVol01 {
                        id = "dvqggw-JflJ-KC9Y-QEhw-pejq-GgIv-taDNzj"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 564      # 17.625 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 125
                                ]
                        }
                }

                LogVol02 {
                        id = "ZDTUSD-ItMw-xxBK-l1Le-DYX7-J4i3-UYKN4Q"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 576      # 18 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 689
                                ]
                        }
                }
        }
}

Best Answer

The LVs were still mounted on startup because the initrd has an older lvm.conf without the faulty filter. The new filter will prevent LVM commands from working, but it won't break LVs that have already been mounted.

The initrd will be updated with your current lvm.conf when you update your kernel, so make sure you fix the filter before then.