Hallo!
Wir haben hier folgendes Problem:
Kurzfassung:
Nachdem eine Platte eines RAID-1 Arrays draufgegangen ist, habe ich eine
identische Platte mit der gleichen Partitionierung reingehaengt und mit
raidhotadd in den Array gegeben. Nach ca. der Haelfte der
Synchronisation, gibt's aber einen IO-Error auf der bislang guten
Platte, die Synchronisation wird beendet, und der Array ist nicht zu
gebrauchen. Das Interessante dabei: Nach dem Ausbau der neuen Platte
laeuft der Array im degraded Mode mit der alten (bisher guten und jetzt
angeblich Fehler habenden) Platte klaglos weiter. Und: Das ganze scheint
reproduzierbar (bei einem weiteren Versuch ist das gleiche passiert).
Details:
System: SuSE 7.2 mit Kernel 2.2.19 von SuSE
/etc/raidtab (Ausschnitt):
raiddev /dev/md4
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
device /dev/sdc5
raid-disk 0
device /dev/sdd5
failed-disk 1
Der failed-disk-Eintrag wurde vor raidhotadd auf raid-disk umgestellt;
/dev/md4 musste manuell erzeugt werden, weil SuSE nur md0-md3
ausliefert.
"cat /proc/mdstat" jetzt, wo alles "auf einem Zylinder" laeuft:
Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 sdb2[1] sda2[0] 1028096 blocks [2/2] [UU]
md1 : active raid1 sdb5[1] sda5[0] 6112576 blocks [2/2] [UU]
md2 : active raid1 sdb6[1] sda6[0] 562176 blocks [2/2] [UU]
md3 : active raid1 sdb7[1] sda7[0] 1036096 blocks [2/2] [UU]
md4 : active raid1 sdc5[1] 35840832 blocks [2/1] [_U]
unused devices: <none>
Aus historischen Gruenden ist auf den beiden Platten sdc und sdd jeweils
nur 1 extended Partition mit 1 logischen Partition, die die gesamte
Platte abdeckt (35GB).
Hier die /var/log/messages nach raidhotadd (sdc5 ist die bestehende
Platte, sdd5 ist die neue Platte):
SCSI device sdd: hdwr sector= 512 bytes. Sectors= 71687340 [35003 MB]
[35.0 GB]
sdd: sdd1 < sdd5 >
trying to hot-add sdd5 to md4 ...
bind
RAID1 conf printout:
--- wd:1 rd:2 nd:2
disk 0, s:0, o:0, n:0 rd:0 us:1 dev:[dev 00:00]
disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sdc5
disk 2, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00]
disk 3, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00]
[disk 4-11 ditto]
RAID1 conf printout:
--- wd:1 rd:2 nd:3
disk 0, s:0, o:0, n:0 rd:0 us:1 dev:[dev 00:00]
disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sdc5
disk 2, s:1, o:0, n:2 rd:2 us:1 dev:sdd5
disk 3, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00]
[disk 4-11 ditto]
md: updating md4 RAID superblock on device
sdd5 [events: 00000033](write) sdd5's sb offset: 35840832
sdc5 [events: 00000033](write) sdc5's sb offset: 35840832
.
md: recovery thread got woken up ...
md4: resyncing spare disk sdd5 to replace failed disk
RAID1 conf printout:
--- wd:1 rd:2 nd:3
disk 0, s:0, o:0, n:0 rd:0 us:1 dev:[dev 00:00]
disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sdc5
disk 2, s:1, o:0, n:2 rd:2 us:1 dev:sdd5
disk 3, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00]
[disk 4-11 ditto]
RAID1 conf printout:
--- wd:1 rd:2 nd:3
disk 0, s:0, o:0, n:0 rd:0 us:1 dev:[dev 00:00]
disk 1, s:0, o:1, n:1 rd:1 us:1 dev:sdc5
disk 2, s:1, o:1, n:2 rd:2 us:1 dev:sdd5
disk 3, s:0, o:0, n:0 rd:0 us:0 dev:[dev 00:00]
[disk 4-11 ditto]
md: syncing RAID array md4
md: minimum _guaranteed_ reconstruction speed: 100 KB/sec.
md: using maximum available idle IO bandwith for reconstruction.
md: using 128k window.
[... 13 Minuten spaeter ...]
scsi0:0:2:0: Attempting to queue a TARGET RESET message
scsi0:0:2:0: Command not found
aic7xxx_dev_reset returns 8194
Saw underflow (256 of 256 bytes). Treated as error
scsidisk I/O error: dev 08:25, sector 46398336
interrupting MD-thread pid 6
raid1: only one disk left and IO error.
raid1: md4: rescheduling block 5799792
[... und so 1000fach weiter, manchmal dazwischen auch: ]
dirty sb detected, updating.
md: updating md4 RAID superblock on device
sdd5 [events: 00000034](write) sdd5's sb offset: 35840832
(skipping faulty sdc5 )
.
raid1: md4: unrecoverable I/O read error for block 5799807
raid1: md4: unrecoverable I/O read error for block 5799806
md4: read error while reconstructing, at block 5799776(4096).
nr_blocks changed to 32 (blocksize 4096, j 5799776, max_blocks 8960208)
scsidisk I/O error: dev 08:25, sector 46398336
interrupting MD-thread pid 6
Folgende Besonderheit gibt's noch: Die jetzige sdc war zum Zeitpunkt des
Einrichtens die sdd. Als dann die (urspruengliche) sdc kaputt ging, habe
ich den SCSI id umgestellt, sodass die sdd fuer immer zur sdc mutiert.
Weiters faellt mir auf: Die neue Platte wird als "disk 2" in den Array
gehaengt, und nicht als "disk 0", wie ich erwartet haette.
Kann mir jemand weiterhelfen?
Noch eine Frage dazu: Spiel die /etc/raidtab nach dem mkraid eigentlich
noch eine Rolle, z.B. bei raidhotadd?
Danke,
-- Johannes Sixt
Manager Software Development
eudaptics software gmbh
Ottensheimerstr. 27
A-4040 Linz
Web: http://www.eudaptics.com/
Tel: +43-732-710 450
Fax: +43-732-710 450-21
_____________________________________________________________
t u r n y o u r d a t a i n t o r e a l v a l u e !