How To Make Vinum Keep Config Across Reboots?

From: Drew Tomlinson (drew_at_mykitchentable.net)
Date: 01/02/05

  • Next message: Chris: "gdbm to text"
    Date: Sat, 01 Jan 2005 17:05:52 -0800
    To: FreeBSD Questions <freebsd-questions@freebsd.org>
    
    

    Since an upgrade from 4.9 to 4.10, I've had problems with vinum. The basic
    problem is that upon reboot, two of my vinum drives show up as
    "referenced" and
    thus create the associated chaos. I've tried many things and fiddled
    around
    quite a bit so I can't say exactly what I've done. I can include all of
    the
    entries in the history file since Oct. 31 if that's a help but it would
    be a
    long list.

    So prior to digging that deep, I will describe where I stand currently and
    where I want to finish. Currently, I have one vinum volume that I use for
    /usr. Fortunately this volume is up and running or I would really be in a
    mess. Here's the 'vinum list' output in this state:

    blacklamb# vinum
    vinum -> list
    2 drives:
    D disk1 State: up Device /dev/da0s1h Avail:
    0/8383 MB (0%)
    D disk2 State: up Device /dev/da1s1h Avail:
    0/8383 MB (0%)

    1 volumes:
    V usr State: up Plexes: 1 Size: 16 GB

    1 plexes:
    P usr.p0 S State: up Subdisks: 2 Size: 16 GB

    2 subdisks:
    S usr.p0.s0 State: up PO: 0 B Size: 8383 MB
    S usr.p0.s1 State: up PO: 256 kB Size: 8383 MB

    I want to add another volume and mount it on /ftp. After creating the
    volume,
    vinum sees it and it appears OK as indicated in this output:

    vinum -> list
    5 drives:
    D disk1 State: up Device /dev/da0s1h Avail:
    0/8383 MB (0%)
    D disk2 State: up Device /dev/da1s1h Avail:
    0/8383 MB (0%)
    D ftp1 State: up Device /dev/ad0s1h Avail:
    0/76319 MB (0%)
    D ftp2 State: up Device /dev/ad1s1h Avail:
    0/76319 MB (0%)
    D ftp3 State: up Device /dev/da3s1h Avail:
    0/114473 MB (0%)

    2 volumes:
    V usr State: up Plexes: 1 Size: 16 GB
    V ftp State: up Plexes: 1 Size: 260 GB

    2 plexes:
    P usr.p0 S State: up Subdisks: 2 Size: 16 GB
    P ftp.p0 C State: up Subdisks: 3 Size: 260 GB

    5 subdisks:
    S usr.p0.s0 State: up PO: 0 B Size: 8383 MB
    S usr.p0.s1 State: up PO: 256 kB Size: 8383 MB
    S ftp.p0.s0 State: up PO: 0 B Size: 74 GB
    S ftp.p0.s1 State: up PO: 74 GB Size: 74 GB
    S ftp.p0.s2 State: up PO: 149 GB Size: 111 GB

    Next I 'quit' the vinum command line and fsck my newly created volume. It
    finishes successfully and I mount it:

    blacklamb# df
    Filesystem 1K-blocks Used Avail Capacity Mounted on
    /dev/da0s1a 302350 102088 176074 37% /
    /dev/vinum/usr 16639674 5433762 9874739 35% /usr
    procfs 4 4 0 100% /proc
    /dev/vinum/ftp 265119539 119729707 132133856 48% /ftp

    I recheck with the 'vinum list' command and the output is the same as
    above.
    Now I cross my fingers and reboot to see if the volume comes up properly on
    startup. However ftp3 (/dev/da3s1h) comes up 'referenced' and causes
    problems.

    Mounting root from ufs:/dev/da0s1a
    dumpon: crash dumps to /dev/da1s1b (13, 131081)
    vinum: loaded
    vinum: reading configuration from /dev/ad1s1h
    vinum: ftp.p0.s2 is crashed
    vinum: ftp.p0 is corrupt
    vinum: updating configuration from /dev/ad0s1h
    vinum: updating configuration from /dev/da1s1h
    vinum: updating configuration from /dev/da0s1h
    vinum: /dev is mounted read-only, not rebuilding /dev/vinum
    Warning: defective objects

    D ftp3 State: referenced Device Avail: 0/0 MB
    P ftp.p0 C State: corrupt Subdisks: 3 Size: 260 GB
    S ftp.p0.s2 State: crashed PO: 149 GB Size: 111 GB
    swapon: adding /dev/da1s1b as swap device
    Automatic boot in progress...
    /dev/da0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS
    /dev/da0s1a: clean, 100130 free (938 frags, 12399 blocks, 0.6%
    fragmentation)
    /dev/vinum/ftp: CANNOT READ: BLK 546979872
    /dev/vinum/ftp: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    /dev/vinum/ftp: CANNOT WRITE: BLK 2800
    /dev/vinum/ftp: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    /dev/vinum/usr: FILESYSTEM CLEAN; SKIPPING CHECKS
    /dev/vinum/usr: clean, 11205903 free (152463 frags, 1381680 blocks, 0.9%
    fragmentation)
    THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
          /dev/vinum/ftp (/ftp)
    File system preen failed, trying fsck -y . . .
    ** /dev/da0s1a
    ** Last Mounted on /
    ** Root file system
    ** Phase 1 - Check Blocks and Sizes
    ** Phase 2 - Check Pathnames
    ** Phase 3 - Check Connectivity
    ** Phase 4 - Check Reference Counts
    ** Phase 5 - Check Cyl groups
    2053 files, 51045 used, 100130 free (938 frags, 12399 blocks, 0.6%
    fragmentation)
    ** /dev/vinum/usr
    ** Last Mounted on /usr
    ** Phase 1 - Check Blocks and Sizes
    ** Phase 2 - Check Pathnames
    ** Phase 3 - Check Connectivity
    ** Phase 4 - Check Reference Counts
    ** Phase 5 - Check Cyl groups
    401072 files, 5433771 used, 11205903 free (152463 frags, 1381680 blocks,
    0.9% fragmentation)
    ** /dev/vinum/ftp

    CANNOT READ: BLK 546979872
    UNEXPECTED SOFT UPDATE INCONSISTENCY

    CONTINUE? yes

    THE FOLLOWING DISK SECTORS COULD NOT BE READ: 546979872, 546979873,
    546979874, 546979875,
    /dev/vinum/ftp: CANNOT FIGURE OUT FILE SYSTEM PARTITION

    UNEXPECTED SOFT UPDATE INCONSISTENCY
    WARNING: R/W mount of /ftp denied. Filesystem is not clean - run fsck
    mount: /dev/vinum/ftp: Operation not permitted
    Mounting /etc/fstab filesystems failed, startup aborted
    Enter full pathname of shell or RETURN for /bin/sh:

    I enter the shell and run 'vinum list':

    vinum -> list
    4 drives:
    D ftp1 State: up Device /dev/ad0s1h Avail:
    0/76319 MB (0%)
    D ftp2 State: up Device /dev/ad1s1h Avail:
    0/76319 MB (0%)
    D disk1 State: up Device /dev/da0s1h Avail:
    0/8383 MB (0%)
    D disk2 State: up Device /dev/da1s1h Avail:
    0/8383 MB (0%)
    D ftp3 State: referenced Device Avail: 0/0 MB

    2 volumes:
    V usr State: up Plexes: 1 Size: 16 GB
    V ftp State: up Plexes: 1 Size: 260 GB

    2 plexes:
    P usr.p0 S State: up Subdisks: 2 Size: 16 GB
    P ftp.p0 C State: corrupt Subdisks: 3 Size: 260 GB

    5 subdisks:
    S usr.p0.s0 State: up PO: 0 B Size: 8383 MB
    S usr.p0.s1 State: up PO: 256 kB Size: 8383 MB
    S ftp.p0.s0 State: up PO: 0 B Size: 74 GB
    S ftp.p0.s1 State: up PO: 74 GB Size: 74 GB
    S ftp.p0.s2 State: crashed PO: 149 GB Size: 111 GB

    Now I delete all references to the ftp volume by running these commands:

    vinum -> rm -f ftp.p0.s2
    vinum: removing ftp.p0.s2
    Correcting length of ftp.p0: was 547043829, is 312602446
    vinum: ftp.p0 is up
    vinum -> rm -f ftp.p0.s1
    vinum: removing ftp.p0.s1
    Correcting length of ftp.p0: was 312602446, is 156301223
    vinum -> rm -f ftp.p0.s0
    vinum: removing ftp.p0.s0
    vinum -> rm -f ftp.p0 vinum: removing ftp.p0
    vinum: ftp is down
    vinum -> rm -f ftp vinum: removing ftp
    vinum -> rm -f ftp3
    vinum -> rm -f ftp2
    vinum -> rm -f ftp1

    Yet the 'reference to ftp3 remains.

    vinum -> list
    1 drives:
    D disk1 State: up Device /dev/da0s1h Avail:
    0/8383 MB (0%)
    D disk2 State: up Device /dev/da1s1h Avail:
    0/8383 MB (0%)
    D ftp3 State: referenced Device Avail: 0/0 MB

    1 volumes:
    V usr State: up Plexes: 1 Size: 16 GB

    1 plexes:
    P usr.p0 S State: up Subdisks: 2 Size: 16 GB

    2 subdisks:
    S usr.p0.s0 State: up PO: 0 B Size: 8383 MB
    S usr.p0.s1 State: up PO: 256 kB Size: 8383 MB

    Why does the list output show "1 drives:" when there are three listed
    and two
    working? Anyway, I've been here before and I quit vinum. Then I issue
    these
    commands:

    # df
    Filesystem 512-blocks Used Avail Capacity Mounted on
    /dev/da0s1a 604700 204180 352144 37% /
    /dev/vinum/usr 33279348 10867544 19749458 35% /usr
    procfs 8 8 0 100% /proc
    # umount /usr
    # vinum stop
    vinum: unloaded
    vinum unloaded
    # vinum start
    vinum: loaded
    vinum: reading configuration from /dev/da1s1h
    vinum: updating configuration from /dev/da0s1h

    Then I issue a 'vinum list' and all seems well.

    # vinum
    vinum -> list
    2 drives:
    D disk1 State: up Device /dev/da0s1h Avail:
    0/8383 MB (0%)
    D disk2 State: up Device /dev/da1s1h Avail:
    0/8383 MB (0%)

    1 volumes:
    V usr State: up Plexes: 1 Size: 16 GB

    1 plexes:
    P usr.p0 S State: up Subdisks: 2 Size: 16 GB

    2 subdisks:
    S usr.p0.s0 State: up PO: 0 B Size: 8383 MB
    S usr.p0.s1 State: up PO: 256 kB Size: 8383 MB
    vinum ->

    Since everything appears correct, this seems like a good place to do 'vinum
    saveconfig'. Next I edit /etc/fstab so only /ftp is not mounted and
    reboot.
    The system reboots fine and the 'vinum list' is as it is immediately above.

    Running in full production mode, I create the ftp volume again:

    vinum -> create -f vinum_ftp.conf
    Dec 24 16:37:45 blacklamb /kernel: vinum: drive ftp1 is up
    Dec 24 16:37:45 blacklamb /kernel: vinum: drive ftp2 is up
    Dec 24 16:37:45 blacklamb /kernel: vinum: drive ftp3 is up
    5 drives:
    D disk1 State: up Device /dev/da0s1h Avail:
    0/8383 MB (0%)
    D disk2 State: up Device /dev/da1s1h Avail:
    0/8383 MB (0%)
    D ftp1 State: up Device /dev/ad0s1h Avail:
    0/76319 MB (0%)
    D ftp2 State: up Device /dev/ad1s1h Avail:
    0/76319 MB (0%)
    D ftp3 State: up Device /dev/da3s1h Avail:
    0/114473 MB (0%)

    2 volumes:
    V usr State: up Plexes: 1 Size: 16 GB
    V ftp State: up Plexes: 1 Size: 260 GB

    2 plexes:
    P usr.p0 S State: up Subdisks: 2 Size: 16 GB
    P ftp.p0 C State: up Subdisks: 3 Size: 260 GB

    5 subdisks:
    S usr.p0.s0 State: up PO: 0 B Size: 8383 MB
    S usr.p0.s1 State: up PO: 256 kB Size: 8383 MB
    S ftp.p0.s0 State: up PO: 0 B Size: 74 GB
    S ftp.p0.s1 State: up PO: 74 GB Size: 74 GB
    S ftp.p0.s2 State: up PO: 149 GB Size: 111 GB
    Dec 24 16:37:45 blacklamb /kernel: vinum: ftp.p0.s0 is up
    Dec 24 16:37:45 blacklamb /kernel: vinum: ftp.p0.s1 is up
    Dec 24 16:37:45 blacklamb /kernel: vinum: ftp.p0.s2 is up
    Dec 24 16:37:45 blacklamb /kernel: vinum: ftp.p0 is up
    Dec 24 16:37:45 blacklamb /kernel: vinum: ftp is up

    After running fsck, I can mount and access the volume. The system
    continues to
    run fine until the next reboot where the same problems start all over
    again. I
    also have the same problem with another volume I wish to run called
    "backup".
    How can I fix my vinum volumes so they survive reboots?

    Thanks for your help and Happy Holidays!

    Drew

    -- 
    Visit The Alchemist's Warehouse
    Magic Tricks, DVDs, Videos, Books, & More!
    http://www.alchemistswarehouse.com
    _______________________________________________
    freebsd-questions@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-questions
    To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
    

  • Next message: Chris: "gdbm to text"

    Relevant Pages

    • vinum limits disk size to 255MB
      ... I'm trying to set up vinum on a freshly installed FreeBSD 5.3-BETA7 ... drives to create a vinum volume. ... BIOS sector numbering starts with sector 1 ... The data for partition 1 is: ...
      (freebsd-questions)
    • RE: FreeBSD5.1 Vinum Mirror root
      ... Machine will run one copy of FreeBSD5.1 and has three hard drives: ... The 200GB drives are mirrored root vinum ... - Web server configuration & website version control ... - Keeps FreeBSD 5.1 up-to-date using cvsup nightly. ...
      (freebsd-questions)
    • Re: vinum setup
      ... thanx Greg, you're right as always. ... I booted into single user from start up and sure enough everything was ... I set up 2 disks for vinum and want to allocate exisiting partitions to ... config, everything's peachy, drives rebuild, fsck sees no errors, I edit ...
      (freebsd-questions)
    • Re: Vinum Subdisk Crashed - How To Repair?
      ... >> as I don't have a backup. ... > This should go away if you stop and restart Vinum. ... Disabling configuration updates ...
      (freebsd-questions)
    • vinum on atapi raid
      ... i'm trying to set up a concatenated vinum volume. ... sectors/track: 63 ... something similar happens when i'm using the concat command to vinum: ...
      (freebsd-questions)