Booting from a gmirror always leads to a broken gmirror

Paul Schenkeveld fb-geom at psconsult.nl
Thu Nov 18 20:22:05 UTC 2010


Hi Guido,

On Thu, Nov 18, 2010 at 05:33:23PM +0100, Guido van Rooij wrote:
> Hi,
> 
> I am running 8.1-RELEASE with the folloing mirror setup:
> Geom name: gm0
> State: DEGRADED
> Components: 2
> Balance: round-robin
> Slice: 4096
> Flags: NONE
> GenID: 3
> SyncID: 2
> ID: 2610005691
> Providers:
> 1. Name: mirror/gm0
>    Mediasize: 500107861504 (466G)
>    Sectorsize: 512
>    Mode: r3w2e5
> Consumers:
> 1. Name: da1
>    Mediasize: 500107862016 (466G)
>    Sectorsize: 512
>    Mode: r1w1e1
>    State: ACTIVE
>    Priority: 0
>    Flags: DIRTY
>    GenID: 3
>    SyncID: 2
>    ID: 3263791510
> 2. Name: da0
>    Mediasize: 500107862016 (466G)
>    Sectorsize: 512
>    Mode: r1w1e1
>    State: SYNCHRONIZING
>    Priority: 0
>    Flags: DIRTY, SYNCHRONIZING
>    GenID: 3
>    SyncID: 2
>    Synchronized: 15%
>    ID: 4162979509
> 
> I have a dedicated slice to boot from and one GELI slice, both on the mirror.
> Now when I reboot this system (at a time when the mirror is 100% fine, unlike above), the following happens:
> Nov 18 15:36:01 gvr kernel: Root mount waiting for: usbus4
> Nov 18 15:36:01 gvr kernel: ugen4.2: <Western Digital> at usbus4
> Nov 18 15:36:01 gvr kernel: umass0: <Western Digital External HDD, class 0/0, re
> v 2.00/1.75, addr 2> on usbus4
> Nov 18 15:36:01 gvr kernel: ugen1.2: <vendor 0x0b97> at usbus1
> Nov 18 15:36:01 gvr kernel: uhub6: <vendor 0x0b97 product 0x7761, class 9/0, rev
>  1.10/1.10, addr 2> on usbus1
> Nov 18 15:36:01 gvr kernel: uhub5: 4 ports with 1 removable, self powered
> Nov 18 15:36:01 gvr kernel: Root mount waiting for: usbus4
> Nov 18 15:36:01 gvr kernel: uhub6: 3 ports with 2 removable, bus powered
> Nov 18 15:36:01 gvr kernel: da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
> Nov 18 15:36:01 gvr kernel: da0: <WD 5000BEV External 1.75> Fixed Direct Access 
> SCSI-4 device 
> Nov 18 15:36:01 gvr kernel: da0: 40.000MB/s transfers
> Nov 18 15:36:01 gvr kernel: da0: 476940MB (976773168 512 byte sectors: 255H 63S/
> T 60801C)
> Nov 18 15:36:01 gvr kernel: ugen1.3: <O2> at usbus1
> Nov 18 15:36:01 gvr kernel: ugen4.3: <Western Digital> at usbus4
> Nov 18 15:36:01 gvr kernel: umass1: <Western Digital External HDD, class 0/0, re
> v 2.00/1.75, addr 3> on usbus4
> Nov 18 15:36:01 gvr kernel: da1 at umass-sim1 bus 1 scbus1 target 0 lun 0
> Nov 18 15:36:01 gvr kernel: da1: <WD 5000BEV External 1.75> Fixed Direct Access 
> SCSI-4 device 
> Nov 18 15:36:01 gvr kernel: da1: 40.000MB/s transfers
> Nov 18 15:36:01 gvr kernel: da1: 476940MB (976773168 512 byte sectors: 255H 63S/
> T 60801C)
> Nov 18 15:36:01 gvr kernel: GEOM_MIRROR: Component da0 (device gm0) broken, skipping.
> Nov 18 15:36:01 gvr kernel: GEOM_MIRROR: Device mirror/gm0 launched (1/2).
> Nov 18 15:36:01 gvr kernel: Enter passphrase for da0s2: 

Your mirror covers the whole drives da0 amd da1.  Geli discovers a
encrypted provider on da0s2, which sounds odd.  Is geli supposed to find
gm0s2 instead?

GEOM_MIRROR reports component da0 as broken, could it be that its metadata
is not updated correctly at shutdown?  Your disks are connected thru USB,
which is a bit tricky.  I've some experience with a machine that once had
a three disk graid3 connected through USB.  After a normal shutdown (or
reboot) graid3 came up fine but I remember that at some occasions graid3
found one of its providers broken and atarted a rebuild.

Could you try the following:

 1 Shutdown the computer, watch carefully for any errors regarding gm0
   or the physical disks.
 2 Boot a kernel without geom_mirror and geom_eli classes compiled in
   (e.g. a GENERIC kernel) from CDROM or USB stick.
 3 Look at the gmirror metadata with gmirror dump da0 and gmirror dump
   da1 to see if they are in sync.  Did differs, priority for one disk
   should be 0 the other 1, the md5 hash differs but all other fields
   should be equal for both disks.

> Now, the passphrase the geli asks, is for the so-called broken disk. But it is not broken.
> I can always rebuild it fine when I rebooted and re-insert da0. 
> My question: why does gmirror mark da0 as broken?
> 
> -Guido
> 
> _______________________________________________
> freebsd-geom at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-geom
> To unsubscribe, send any mail to "freebsd-geom-unsubscribe at freebsd.org"


More information about the freebsd-geom mailing list