• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[erledigt]Probleme mit Raid5

pepperman

Newbie
Hallo,

ich habe ein kleines Problem mit meinem RAID. Seit gestern Abend will
mein RAID nicht mehr starten. Ursache Stromausfall durch Gewitter.

dmesg meldet:

raid5: measuring checksumming speed
8regs : 455.000 MB/sec
8regs_prefetch: 366.000 MB/sec
32regs : 292.000 MB/sec
32regs_prefetch: 267.000 MB/sec
pII_mmx : 870.000 MB/sec
p5_mmx : 827.000 MB/sec
raid5: using function: pII_mmx (870.000 MB/sec)
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
md: md0 stopped.
md: bind<hdc1>
md: bind<hdg1>
md: bind<hda1>
md: kicking non-fresh hdg1 from array!
md: unbind<hdg1>
md: export_rdev(hdg1)
md: md0: raid array is not clean -- starting background
reconstruction
raid5: device hda1 operational as raid disk 0
raid5: device hdc1 operational as raid disk 1
raid5: cannot start dirty degraded array for md0
RAID5 conf printout:
--- rd:3 wd:2 fd:1
disk 0, o:1, dev:hda1
disk 1, o:1, dev:hdc1
raid5: failed to run raid set md0
md: pers->run() failed ...
Attempting manual resume
md: md0 stopped.
md: unbind<hda1>
md: export_rdev(hda1)
md: unbind<hdc1>
md: export_rdev(hdc1)
md: md0 stopped.
md: bind<hdc1>
md: bind<hdg1>
md: bind<hda1>
md: kicking non-fresh hdg1 from array!
md: unbind<hdg1>
md: export_rdev(hdg1)
md: md0: raid array is not clean -- starting background
reconstruction
raid5: device hda1 operational as raid disk 0
raid5: device hdc1 operational as raid disk 1
raid5: cannot start dirty degraded array for md0
RAID5 conf printout:
--- rd:3 wd:2 fd:1
disk 0, o:1, dev:hda1
disk 1, o:1, dev:hdc1
raid5: failed to run raid set md0
md: pers->run() failed ...

und

cat /proc/mdstat

Personalities : [raid5] [raid4]
md0 : inactive hda1[0] hdc1[1]
160649728 blocks

unused devices: <none>

kann mir jemand weiterhelfen ?

Danke
 

spoensche

Moderator
Teammitglied
Code:
md: md0: raid array is not clean -- starting background
reconstruction
raid5: device hda1 operational as raid disk 0
raid5: device hdc1 operational as raid disk 1
raid5: cannot start dirty degraded array for md0

Ein RAID 5 brauch min. 3 Platten bzw. Partitionen. Bist du sicher, das da nicht eine fehlt? Du musst dem RAID die Zeit für die Reconstruction geben und es ggf. manuell reparieren.
 
A

Anonymous

Gast
Analog hier wie bei diesem RAID1 verfahren.

zuerst von alle möglichen Superblöcke der Raiddevices mittels "mdadm --examine DEVICE" untersuchen und vergleichen. Wenn alles soweit passt und vorhanden ist gehts weiter.
igendwas scheint mit "/dev/hdg1" nicht zu stimmen. Wenn dieses der einzige Raid5 Bestandteil ist, das defekt ist, und alle anderen da sind, dann beibt dir nichts anderes übrig als die anderen alle ONLINE zu setzen, und wenn dann das Raid5 mit einer Platte weniger läuft und überprüft ist, erst dann das defekte oder fehlende wieder dazu zufügen.

Wichtig: Immer mit "Assemble" arbeiten und nicht mit "Create" siehe auch Manpage von mdadm.

robi
 
OP
P

pepperman

Newbie
Ich habe hier die Ergebnisse von mdadm --examine /dev/hda1...

Da ich kein Expert bin, kann mir einer von Euch weilerhelfen?

Danke


mdadm --examine /dev/hda1
/dev/hda1:
Magic : a92b4efc
Version : 00.90.00
UUID : 2a7d565f:9df7d2b5:3075e22d:35dcc649
Creation Time : Tue Jun 6 12:31:54 2006
Raid Level : raid5
Device Size : 80324864 (76.60 GiB 82.25 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 0

Update Time : Thu May 19 21:20:42 2011
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Checksum : 6f3c039e - correct
Events : 0.2257479

Layout : left-symmetric
Chunk Size : 128K

Number Major Minor RaidDevice State
this 0 3 1 0 active sync /dev/hda1

0 0 3 1 0 active sync /dev/hda1
1 1 22 1 1 active sync /dev/hdc1
2 2 0 0 2 faulty removed

mdadm --examine /dev/hdc1
/dev/hdc1:
Magic : a92b4efc
Version : 00.90.00
UUID : 2a7d565f:9df7d2b5:3075e22d:35dcc649
Creation Time : Tue Jun 6 12:31:54 2006
Raid Level : raid5
Device Size : 80324864 (76.60 GiB 82.25 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 0

Update Time : Thu May 19 21:20:42 2011
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Checksum : 6f3c03b3 - correct
Events : 0.2257479

Layout : left-symmetric
Chunk Size : 128K

Number Major Minor RaidDevice State
this 1 22 1 1 active sync /dev/hdc1

0 0 3 1 0 active sync /dev/hda1
1 1 22 1 1 active sync /dev/hdc1
2 2 0 0 2 faulty removed


Zeus:~ # mdadm --examine /dev/hdg1
/dev/hdg1:
Magic : a92b4efc
Version : 00.90.00
UUID : 2a7d565f:9df7d2b5:3075e22d:35dcc649
Creation Time : Tue Jun 6 12:31:54 2006
Raid Level : raid5
Device Size : 80324864 (76.60 GiB 82.25 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0

Update Time : Fri Jul 4 14:42:29 2008
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Checksum : 69eccc84 - correct
Events : 0.1918686

Layout : left-symmetric
Chunk Size : 128K

Number Major Minor RaidDevice State
this 2 34 1 2 active sync /dev/hdg1

0 0 3 1 0 active sync /dev/hda1
1 1 22 1 1 active sync /dev/hdc1
2 2 34 1 2 active sync /dev/hdg1
 
A

Anonymous

Gast
1. Gewöhne dir mal an solche Ausgaben in

[ code]
deine ganzen
gesammelten
Konsol-Ausgaben
[ /code]

zu schreiben, das kommt dann so hier rüber.
Code:
deine ganzen
 gesammelten
 Konsol-Ausgaben
sonst lässt sich das fürchterbar schwer lesen, und man verliert schneller die Lust irgendwas hier mit dem Beitrag zu machen, als du glaubst.



2. Deine /dev/hdg1 ist schon länger tot, oder du hattest eine andere Platte dort im Raid aktiv gehabt und dev/hdg hast du mittlerweile für was anderes in Benutzung, hast aber vergessen den Raidsuperblock darauf zu entwerten.
"Update Time : Fri Jul 4 14:42:29 2008" auf dieser Platte ist schon ne ganze Weile her ;) , der Superblock auf dieser Platte ist aber der Meinung er ist "active sync" die anderen beiden Platten wissen das diese Platte offline war.


Wenn du soweit hier bist, das /proc/mdstat folgendes sagt:
Code:
cat /proc/mdstat

Personalities : [raid5] [raid4]
md0 : inactive hda1[0] hdc1[1]
160649728 blocks

unused devices: <none>
Dann kannst du das Raid mit diesen beiden Platten starten,
Code:
mdadm -R /dev/md0
Dann kannst du das Filesystem darauf schon mal read-only mounten
Code:
mount -o ro  /dev/md0
und nachschauen, wahrscheinlich wirst du aber einen Filesystemcheck machen müssen und dürfen. Was der jetzt alles zu Tage bringt, kommt darauf an was du die letzten 3 Jahre mit diesem Raid veranstalltet hast.

Dann eine Platte genau so partitionieren die die beiden anderen, (noch einmal die /dev/hdg zu nehmen :???: Dazu müsstest du erst mal prüfen ob diese Platte überhaupt auch noch ok ist. ) und dann die so vorbereitete Platte zum Raid dazu fügen.
Code:
mdadm /dev/md0 -a /dev/hdg1
und dann unter /proc/mdstat kontrollieren ob der Rebuild durchläuft.

Scheint wohl ein asbach-ur-ur-alt System zu sein.

robi
 
OP
P

pepperman

Newbie
Hallo robi,

Danke für den Support.

Leider will irgendetwas nicht

Code:
Zeus:~ # mdadm -R /dev/md0
mdadm: failed to run array /dev/md0: Input/output error

was kann ich tun???

Grüße
JR
 
OP
P

pepperman

Newbie
ich habe noch etwas gegoogelt und noch etwas merkwürdiges entdeckt:

Code:
Zeus:/ # echo "clean" > /sys/block/md0/md/array_state
-bash: /sys/block/md0/md/array_state: Permission denied

hilft das weiter ?
 
A

Anonymous

Gast
pepperman schrieb:
Code:
Zeus:/ # echo "clean" > /sys/block/md0/md/array_state
-bash: /sys/block/md0/md/array_state: Permission denied
hilft das weiter ?
das kann nicht gehen, 2/3 eines Raid5 können nicht "clean" sein, sondern maximal "activ". Aber da hat sich sowieso einiges am Statusverhalten und Handling geändert seit der Zeit aus der deine md-Version stammt . Solche Befehle direkt in die Kerneltreiber sind bei einigen Treibern riskant und man handelt sich schnell mal einen Kernel-Oops ein.

Dann mal die komplette Konsolausgabe der folgenden Befehle.
Code:
madam -S /dev/md0
mdadm /dev/md0 -Af /dev/hda1 /dev/hdc1
cat /proc/mdstat
dmesg | tail -20


robi
PS: apropos Oops, da ist er schon. ;)
Code:
Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.627374] Oops: 0000 [#1] PREEMPT SMP   

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.627394] last sysfs file: /sys/module/raid456/initstate

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.627758] Process bash (pid: 9739, ti=ec108000 task=ec11ad20 task.ti=ec108000)

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.627778] Stack:

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.627906] Call Trace:

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.628020] Code: 57 89 c7 56 53 83 ec 38 c7 04 24 e2 7e 69 f8 65 a1 14 00 00 00 89 45 f0 31 c0 e8 76 85 00 c8 85 ff 74 62 8b 47 1c 8b 57 04 89 c1 <2b> 8a 88 01 00 00 89 44 24 04 c7 04 24 06 7f 69 f8 89 4c 24 08

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.628020] EIP: [<f868b7ee>] print_raid5_conf+0x2e/0xe0 [raid456] SS:ESP 0068:ec109db4

Message from syslogd@rob-linux at May 23 00:46:06 ...
 kernel:[49488.628020] CR2: 0000000000000188
Fazit: Finger weg von solchen Hintertüren bei diesem Treiber
 
OP
P

pepperman

Newbie
Hallo robi

hier ist der log ...
Code:
Zeus:~ # mdadm -S /dev/md0
Zeus:~ # mdadm /dev/md0 -Af /dev/hda1 /dev/hdc1
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
Zeus:~ # cat /proc/mdstat
Personalities : [raid5] [raid4]
md0 : inactive hda1[0] hdc1[1]
      160649728 blocks

unused devices: <none>
Zeus:~ # dmesg | tail -20
raid5: failed to run raid set md0
md: pers->run() failed ...
md: md0 stopped.
md: unbind<hda1>
md: export_rdev(hda1)
md: unbind<hdc1>
md: export_rdev(hdc1)
md: md0 stopped.
md: bind<hdc1>.  gemacht habe.

Falls es wirklich nichts wird mit der Wiederbelebung des Raids wird, ich habe noch das Backup vom letzten Sonntag. Ich hätte nur ca. 20 Dateien verloren.

Trotzdem Danke für die Mühen.

Grüße
JR
 
A

Anonymous

Gast
Das "tail -20" ist ein bisschen kurz und von der Ursache vom io-error ist nichts zu sehen.

Wenn du ein Backup hast, dann nimm die Daten vor dort.

robi
 
OP
P

pepperman

Newbie
Letzter Versuch ....


Code:
Zeus:~ # mdadm -S /dev/md0
Zeus:~ # mdadm /dev/md0 -Af /dev/hda1 /dev/hdc1
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
Zeus:~ # dmesg | tail -40
ReiserFS: md0: warning: sh-2021: reiserfs_fill_super: can not find reiserfs on md0
AppArmor: AppArmor (version 2.0-19.43r6320) initialized
audit(1306113273.237:2): AppArmor (version 2.0-19.43r6320) initialized

ACPI: Power Button (FF) [PWRF]
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
IPv6 over IPv4 tunneling driver
powernow-k8: Processor cpuid 580 not supported
powernow: This module only works with AMD K7 CPUs
BIOS EDD facility v0.16 2004-Jun-25, 4 devices found
hde: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hde: drive_cmd: error=0x04 { DriveStatusError }
ide: failed opcode was: 0xef
hde: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hde: task_no_data_intr: error=0x04 { DriveStatusError }
ide: failed opcode was: 0xef
hdg: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdg: drive_cmd: error=0x04 { DriveStatusError }
ide: failed opcode was: 0xef
eth0: no IPv6 routers present
md: md0 stopped.
md: unbind<hda1>
md: export_rdev(hda1)
md: unbind<hdc1>
md: export_rdev(hdc1)
md: md0 stopped.
md: bind<hdc1>
md: bind<hda1>
md: md0: raid array is not clean -- starting background reconstruction
raid5: device hda1 operational as raid disk 0
raid5: device hdc1 operational as raid disk 1
raid5: cannot start dirty degraded array for md0
RAID5 conf printout:
 --- rd:3 wd:2 fd:1
 disk 0, o:1, dev:hda1
 disk 1, o:1, dev:hdc1
raid5: failed to run raid set md0
md: pers->run() failed ...


Ich habe ein Backup, aber es fehlen halt ein paar wichtige Dateien.

Trotzdem schon mal Danke

JR
 

spoensche

Moderator
Teammitglied
Hast du auf deinem RAID ein ReiserFS verwendet? hde und hdg machen keinen "gesunden" Eindruck. Wenn möglich klemme beide mal ab.
 
Oben