Date: Tue, 31 Oct 2006 13:54:42 -0600 From: "Rick C. Petty" <rick@kiwi-computer.com> To: freebsd-geom@freebsd.org Subject: burnt again by gmirror Message-ID: <20061031195442.GA55478@keira.kiwi-computer.com>
next in thread | raw e-mail | index | archive | help
A few days ago, one of my machines rebooted (6.2-PRERELEASE). It's using gmirror, two SATA disks of equal model/size: ad4 & ad8. Today I noticed ad4 was loaded and ad8 said 0% (using systat). I tried: # gmirror status Name Status Components mirror/gm0 DEGRADED ad4 # gmirror list Geom name: gm0 State: DEGRADED Components: 2 Balance: round-robin Slice: 4096 Flags: NONE GenID: 1 SyncID: 4 ID: 793566958 Providers: 1. Name: mirror/gm0 Mediasize: 320072932864 (298G) Sectorsize: 512 Mode: r7w6e8 Consumers: 1. Name: ad4 Mediasize: 320072933376 (298G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: DIRTY GenID: 1 SyncID: 4 ID: 3554825454 and noticed ad8 is not listed. Wonderful. A quick check that ad8 is indeed present: # atacontrol list ATA channel 0: Master: no device present Slave: no device present ATA channel 1: Master: acd0 <16X8 DVD DUAL/A070> ATA/ATAPI revision 5 Slave: no device present ATA channel 2: Master: ad4 <WDC WD3200KS-00PFB0/21.00M21> Serial ATA II Slave: no device present ATA channel 3: Master: no device present Slave: no device present ATA channel 4: Master: ad8 <WDC WD3200KS-00PFB0/21.00M21> Serial ATA II Slave: no device present ATA channel 5: Master: no device present Slave: no device present # atacontrol reinit ata4 Master: ad8 <WDC WD3200KS-00PFB0/21.00M21> Serial ATA II Slave: no device present As expected, but reiniting the channel doesn't attach ad8 to the mirror, because the disk is already there. So I tried detach/attach of ata4 and noticed this in dmesg: kernel: subdisk8: detached kernel: ad8: detached kernel: ad8: 305245MB <WDC WD3200KS-00PFB0 21.00M21> at ata4-master SATA300 GEOM_MIRROR: Component ad8 (device gm0) broken, skipping. GEOM_MIRROR: Cannot add disk ad8 to gm0 (error=22). I tried a few more things: # gmirror rebuild gm0 ad8 No such provider: ad8. # gmirror insert gm0 ad8 Not all disks connected. # gmirror activate gm0 ad8 (in dmesg, the same GEOM_MIRROR errors showed up). What is going on here? This was working just fine until my last reboot. /var/run/dmesg.boot was empty, presumably because the msg buffer overran itself. The error messages are misleading (assuming they are even remotely correct) and quite unhelpful. Why didn't gmirror pick up the ad8 provider on startup? Why does it think there's another, unconnected disk (which makes sense) but doesn't allow it to be re-attached? Is there any way to have gmirror consume the ad8 provider? -- Rick C. Petty
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061031195442.GA55478>