tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems with raidframe under NetBSD-5.1/i386



        hello.  OK.  Still more info.There seem to be two bugs here:

1.  Raid sets with gpt partition tables in the raid set are not able to
reconstruct failed components because, for some reason, the failed
component is still marked open by the system even after the raidframe code
has marked it dead.  Still looking into the fix for that one.

2.  Raid sets with gpt partition tables on them cannot be unconfigured and
reconfigured without rebooting.  This is because dkwedge_delall() is not
called during the raid shutdown process.  I have a patch for this issue
which seems to work fine.  See the following output:

host#raidctl -u raid2
(From dmesg)
dk1 at raid2 (f8b345ca-c74f-11df-806c-001e68041c80) deleted

Then:
host#raidctl -c /etc/raid2.conf raid2
(From dmesg)
Hosed component: /dev/sd10a
raid2: Component /dev/sd8a being configured at col: 0
         Column: 0 Num Columns: 5
         Version: 2 Serial Number: 2009081302 Mod Counter: 383
         Clean: Yes Status: 0
raid2: Component /dev/sd3a being configured at col: 1
         Column: 1 Num Columns: 5
         Version: 2 Serial Number: 2009081302 Mod Counter: 383
         Clean: Yes Status: 0
raid2: Component /dev/sd9a being configured at col: 2
         Column: 2 Num Columns: 5
         Version: 2 Serial Number: 2009081302 Mod Counter: 383
         Clean: Yes Status: 0
raid2: Component /dev/sd4a being configured at col: 3
         Column: 3 Num Columns: 5
         Version: 2 Serial Number: 2009081302 Mod Counter: 383
         Clean: Yes Status: 0
raid2: Ignoring /dev/sd10a
raid2: RAID Level 5
raid2: Components: /dev/sd8a /dev/sd3a /dev/sd9a /dev/sd4a 
/dev/sd10a[**FAILED**]
raid2: Total Sectors: 573495040 (280026 MB)
raid2: GPT GUID: f8b345ac-c74f-11df-806c-001e68041c80
dk1 at raid2: f8b345ca-c74f-11df-806c-001e68041c80

Here's the patch.  Note that this is against NetBSD-5.0 sources, but it
should be clean for 5.1, and, i'm guessing, -current as well.
-Brian

Index: rf_netbsdkintf.c
===================================================================
RCS file: /cvsroot/src/sys/dev/raidframe/rf_netbsdkintf.c,v
retrieving revision 1.250.4.4
diff -u -r1.250.4.4 rf_netbsdkintf.c
--- rf_netbsdkintf.c    4 Apr 2009 17:15:14 -0000       1.250.4.4
+++ rf_netbsdkintf.c    7 Jan 2011 13:31:03 -0000
@@ -849,6 +849,7 @@
                        free(cf, M_RAIDFRAME);
                        
                        /* Detach the disk. */
+                       dkwedge_delall(&rs->sc_dkdev);
                        disk_detach(&rs->sc_dkdev);
                        disk_destroy(&rs->sc_dkdev);
                }
@@ -1195,6 +1196,7 @@
                free(cf, M_RAIDFRAME);
 
                /* Detach the disk. */
+               dkwedge_delall(&rs->sc_dkdev);
                disk_detach(&rs->sc_dkdev);
                disk_destroy(&rs->sc_dkdev);
 


Home | Main Index | Thread Index | Old Index