Hallo,
ich habe hier ein Ubuntu 8.04 welches von einer Single HDD bootet.
Desweiteren habe ich ein Software Raid 5 mit mdadm eingerichtet. 4x1TB von WD.
Voraus gingen so ein paar Sachen die ich hier kurz aufführen möchte.
Zuerst bestand das Raid aus 2 HDD's. Ein Raid 1 mit 2x1TB WD.
Ich habe 2 neue WD HDD's geholt und wollte nun ein Raid5 machen ohne meine Daten zu verlieren.
Wie hab ich das gemacht?
Ich habe das Raid1 degraded, sprich eine HDD entfernt.
Danach habe ich ein Raid5 aufgebaut. Mit 4 HDD's. Obwohl nur 3 verfügbar. Dies ging über den missing Eintrag. Sah dann etwa so aus.
mdadm --create level=5 --num-devices=4 /dev/sda1 missing /dev/sdc1 /dev/sdd1
Das hat auch alles geklappt, ich habe dann die Daten aus dem degraded Raid1 auf das Raid5 übertragen.
Danach die einzelne HDD erstmal formatiert Partition gelöscht, neu angelegt.
Soweit so gut.
Nun möchte ich die HDD in das Raid 5 hinzufügen. So das es nicht mehr degraded ist. Habe ich versucht mit
mdadm --add /dev/md1 /dev/sdb1
Dies startet einen Rebuild. Der eine Weile macht. Das Ende vom Lied ist das mein Raid nicht mehr ansprechbar ist. sdb1 und sda1 fliegen aus dem Array.
Mittels assemble kann ich mein bestehendes Raid5 mit 3 HDD's wieder zusammenführen und habe Zugriff auf die Daten.
Den Rebuild bzw. recovery Prozess habe ich bereits 3 mal ausprobiert.
Dachte dann an einen defekt einer HDD. Habe sda und sdb mit badblocks geprüft. Kein Fehler.
Hat jemand von euch Tipps? Wo liegt das Problem? Was mache ich falsch?
Etwas was mir aufgefallen ist und was mich stört, bzw. was ich komisch finde....
sdb1 erhält die Nummer 4? Sollte ja eigentlich die 1 sein. sda1=0, sdc1=2, sdd1=3
Weiterhin sehr komisch ist....
Warum wird sdb1 als Spare eingebunden?
Anfangs dachte ich naja wenn es beim Rebuild Spare ist und danach eine normale Array HDD ist mir das ja egal. Nur wird der Rebuild ja leider nicht beendet.
meine Config
syslog hat folgendes:
Hoffe mal eine von euch hat da einen Tip was ich machen muss?
Es geht hier ja auch um die Zukunft wenn mal wirklich eine HDD einen defekt hat.
Kann ja nicht sein das durch add der das nicht richtig rebuilded.
Danke für eure Antworten.
mfg
ich habe hier ein Ubuntu 8.04 welches von einer Single HDD bootet.
Desweiteren habe ich ein Software Raid 5 mit mdadm eingerichtet. 4x1TB von WD.
Voraus gingen so ein paar Sachen die ich hier kurz aufführen möchte.
Zuerst bestand das Raid aus 2 HDD's. Ein Raid 1 mit 2x1TB WD.
Ich habe 2 neue WD HDD's geholt und wollte nun ein Raid5 machen ohne meine Daten zu verlieren.
Wie hab ich das gemacht?
Ich habe das Raid1 degraded, sprich eine HDD entfernt.
Danach habe ich ein Raid5 aufgebaut. Mit 4 HDD's. Obwohl nur 3 verfügbar. Dies ging über den missing Eintrag. Sah dann etwa so aus.
mdadm --create level=5 --num-devices=4 /dev/sda1 missing /dev/sdc1 /dev/sdd1
Das hat auch alles geklappt, ich habe dann die Daten aus dem degraded Raid1 auf das Raid5 übertragen.
Danach die einzelne HDD erstmal formatiert Partition gelöscht, neu angelegt.
Soweit so gut.
Nun möchte ich die HDD in das Raid 5 hinzufügen. So das es nicht mehr degraded ist. Habe ich versucht mit
mdadm --add /dev/md1 /dev/sdb1
Dies startet einen Rebuild. Der eine Weile macht. Das Ende vom Lied ist das mein Raid nicht mehr ansprechbar ist. sdb1 und sda1 fliegen aus dem Array.
Mittels assemble kann ich mein bestehendes Raid5 mit 3 HDD's wieder zusammenführen und habe Zugriff auf die Daten.
Den Rebuild bzw. recovery Prozess habe ich bereits 3 mal ausprobiert.
Dachte dann an einen defekt einer HDD. Habe sda und sdb mit badblocks geprüft. Kein Fehler.
Hat jemand von euch Tipps? Wo liegt das Problem? Was mache ich falsch?
Etwas was mir aufgefallen ist und was mich stört, bzw. was ich komisch finde....
Code:
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdb1[4] sda1[0] sdd1[3] sdc1[2]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]
[>....................] recovery = 2.0% (20379520/976759936) finish=243.1min speed=65540K/sec
Weiterhin sehr komisch ist....
Code:
mdadm --detail /dev/md1
/dev/md1:
Version : 00.90.03
Creation Time : Fri May 29 19:59:21 2009
Raid Level : raid5
Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Tue Jun 2 23:04:35 2009
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 6% complete
UUID : 42576807:3e3b7c9d:e368bf24:bd0fce41
Events : 0.3274
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
4 8 17 1 spare rebuilding /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 3 active sync /dev/sdd1
Anfangs dachte ich naja wenn es beim Rebuild Spare ist und danach eine normale Array HDD ist mir das ja egal. Nur wird der Rebuild ja leider nicht beendet.
meine Config
cat /etc/mdadm/mdadm.conf
ARRAY /dev/md1 level=raid5 num-devices=4 UUID=42576807:3e3b7c9d:e368bf24:bd0fce41
syslog hat folgendes:
Code:
Jun 2 22:55:13 ubuntu kernel: [ 37.614613] md: md1 stopped.
Jun 2 22:55:13 ubuntu kernel: [ 37.617768] md: bind<sda1>
Jun 2 22:55:13 ubuntu kernel: [ 37.628969] md: md1 stopped.
Jun 2 22:55:13 ubuntu kernel: [ 37.628979] md: unbind<sda1>
Jun 2 22:55:13 ubuntu kernel: [ 37.628983] md: export_rdev(sda1)
Jun 2 22:55:13 ubuntu kernel: [ 37.631607] md: bind<sdc1>
Jun 2 22:55:13 ubuntu kernel: [ 37.631757] md: bind<sda1>
Jun 2 22:55:13 ubuntu kernel: [ 37.634601] md: md1 stopped.
Jun 2 22:55:13 ubuntu kernel: [ 37.634611] md: unbind<sda1>
Jun 2 22:55:13 ubuntu kernel: [ 37.634615] md: export_rdev(sda1)
Jun 2 22:55:13 ubuntu kernel: [ 37.634623] md: unbind<sdc1>
Jun 2 22:55:13 ubuntu kernel: [ 37.634625] md: export_rdev(sdc1)
Jun 2 22:55:13 ubuntu kernel: [ 37.637413] md: bind<sdc1>
Jun 2 22:55:13 ubuntu kernel: [ 37.637566] md: bind<sdd1>
Jun 2 22:55:13 ubuntu kernel: [ 37.637700] md: bind<sda1>
Jun 2 22:55:13 ubuntu kernel: [ 37.642451] raid5: allocated 4274kB for md1
Jun 2 22:55:13 ubuntu kernel: [ 37.642453] raid5: raid level 5 set md1 active with 3 out of 4 devices, algorithm 2
Jun 2 22:57:25 ubuntu kernel: [ 182.120310] EXT3 FS on md1, internal journal
Jun 2 22:57:39 ubuntu kernel: [ 196.818404] EXT3 FS on md1, internal journal
Jun 2 22:59:49 ubuntu kernel: [ 325.906571] md: bind<sdb1>
Jun 2 22:59:49 ubuntu kernel: [ 326.376674] md: recovery of RAID array md1
Jun 2 22:59:49 ubuntu kernel: [ 326.376677] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
Jun 2 22:59:49 ubuntu kernel: [ 326.376678] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
Jun 2 22:59:49 ubuntu kernel: [ 326.376681] md: using 128k window, over a total of 976759936 blocks.
Jun 2 23:00:21 ubuntu kernel: [ 358.002375] md: md1: recovery done.
Jun 2 23:00:52 ubuntu kernel: [ 388.845651] md: md1 stopped.
Jun 2 23:00:52 ubuntu kernel: [ 388.845666] md: unbind<sdb1>
Jun 2 23:00:52 ubuntu kernel: [ 388.845671] md: export_rdev(sdb1)
Jun 2 23:00:52 ubuntu kernel: [ 388.845679] md: unbind<sda1>
Jun 2 23:00:52 ubuntu kernel: [ 388.845682] md: export_rdev(sda1)
Jun 2 23:00:52 ubuntu kernel: [ 388.845720] md: unbind<sdd1>
Jun 2 23:00:52 ubuntu kernel: [ 388.845723] md: export_rdev(sdd1)
Jun 2 23:00:52 ubuntu kernel: [ 388.845799] md: unbind<sdc1>
Jun 2 23:00:52 ubuntu kernel: [ 388.845802] md: export_rdev(sdc1)
Jun 2 23:02:26 ubuntu kernel: [ 483.633568] md: md1 stopped.
Jun 2 23:02:28 ubuntu kernel: [ 485.513600] md: bind<sdc1>
Jun 2 23:02:28 ubuntu kernel: [ 485.513764] md: bind<sdd1>
Jun 2 23:02:28 ubuntu kernel: [ 485.513884] md: bind<sdb1>
Jun 2 23:02:28 ubuntu kernel: [ 485.514003] md: bind<sda1>
Jun 2 23:02:28 ubuntu kernel: [ 485.514032] md: kicking non-fresh sdb1 from array!
Jun 2 23:02:28 ubuntu kernel: [ 485.514038] md: unbind<sdb1>
Jun 2 23:02:28 ubuntu kernel: [ 485.514042] md: export_rdev(sdb1)
Jun 2 23:02:28 ubuntu kernel: [ 485.571613] raid5: allocated 4274kB for md1
Jun 2 23:02:28 ubuntu kernel: [ 485.571615] raid5: raid level 5 set md1 active with 3 out of 4 devices, algorithm 2
Jun 2 23:04:00 ubuntu kernel: [ 577.515301] md: bind<sdb1>
Jun 2 23:04:01 ubuntu kernel: [ 577.993832] md: recovery of RAID array md1
Jun 2 23:04:01 ubuntu kernel: [ 577.993835] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
Jun 2 23:04:01 ubuntu kernel: [ 577.993837] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
Jun 2 23:04:01 ubuntu kernel: [ 577.993840] md: using 128k window, over a total of 976759936 blocks.
Hoffe mal eine von euch hat da einen Tip was ich machen muss?
Es geht hier ja auch um die Zukunft wenn mal wirklich eine HDD einen defekt hat.
Kann ja nicht sein das durch add der das nicht richtig rebuilded.
Danke für eure Antworten.
mfg