Hallo,
ich habe ein Software-Raid gebastelt, um meine wichtigen Daten vor dem Untergang zu bewahren und um sofort weiterarbeiten zu können, wenn mal eine Festplatte ausfällt. Der Normalbetrieb funktioniert soweit auch.
Wenn ich aber eine Platte (/dev/hdd) ausbaue, dann funktioniert die Sache nicht mehr:
# mount /safe mount: wrong fs type, bad option, bad superblock on /dev/md0, or too many mounted file systems (could this be the IDE device where you in fact use ide-scsi so that sr0 or sda or so is needed?)
# raidstart -a /dev/md0: Invalid argument
(fs (ext3) stimmt, gemountet sind 10 Partitionen) Wenn ich die Platte wieder einbaue und das Raid starte, dann beginnt er auf der Platte rumzuwühlen, was mich vermuten lässt, das er ein Rebuild durchführt.
Warum arbeitet er aber nicht einfach weiter, wenn eine Platte fehlt? Sieht jemand den Fehler? Oder ist das normal, das bei Raid 1 immer alle Partitionen da sein müssen?
meine /etc/raidtab: raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/hdd1 raid-disk 0 device /dev/hde6 raid-disk 1
/proc/mdstat im Normalbetrieb (mit beiden Festplatten): Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
unused devices: <none>
/proc/mdstat mit nur einer Platte Personalities : [raid1] read_ahead not set unused devices: <none>
Kernel: 2.4.20 (+ Patch für Powerkeys)
Danke, Fabian
Fabian Hänsel (fabtagon@gmx.de) schrieb auf LUG-DD am Fre, 23 Mai, 2003; 22:54 +0200:
Hi,
Wenn ich aber eine Platte (/dev/hdd) ausbaue, dann funktioniert die Sache nicht mehr:
(fs (ext3) stimmt, gemountet sind 10 Partitionen) Wenn ich die Platte wieder einbaue und das Raid starte, dann beginnt er auf der Platte rumzuwühlen, was mich vermuten lässt, das er ein Rebuild durchführt.
Warum arbeitet er aber nicht einfach weiter, wenn eine Platte fehlt? Sieht jemand den Fehler? Oder ist das normal, das bei Raid 1 immer alle Partitionen da sein müssen?
Eigentlich nicht.
Ich habe nur ein RAID5 laufen mit drei Platten. Bis e bin ich nie gekommen.
/proc/mdstat im Normalbetrieb (mit beiden Festplatten): Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
^ Hier sollten im Normalbetrieb 2 Us stehen, also 529088 blocks [2/1] [UU] Bei Dir fehlt eine Platte.
So sieht das bei mir aus: md3 : active raid1 ide/host0/bus1/target0/lun0/part2[1] ide/host0/bus0/target1/lun0/part2[0] 3903680 blocks [2/2] [UU] Ich habe devfs.
Leider habe ich momentan nicht die Zeit mal eine Platte rauszuziehen. Falls Dich das dann immer noch interessiert, frag mich in 2 Wochen nochmal.
Gruß,
Frank
Frank Becker fb@alien8.de wrote:
Ich habe nur ein RAID5 laufen mit drei Platten. Bis e bin ich nie gekommen.
/proc/mdstat im Normalbetrieb (mit beiden Festplatten): Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
^
Hier sollten im Normalbetrieb 2 Us stehen, also 529088 blocks [2/1] [UU] Bei Dir fehlt eine Platte.
Die Platte war da ruhig, aber es war nach dem Rebuild. Kann sein, das die zweite da noch nicht fertig war. Gibts für "Rebuild" ein weiteres Zeichen, oder heißt "_" immer fehlt?
Ich habe devfs.
Jo, ich auch.
Leider habe ich momentan nicht die Zeit mal eine Platte rauszuziehen. Falls Dich das dann immer noch interessiert, frag mich in 2 Wochen nochmal.
Wenn mir bis dahin keine Lösung/Aufklärung begegnet ist mach ichs. Immerhin weiß ich jetzt, dass ich mit dem, was ich für Raid 1 halte nicht daneben liege. Danke.
mfg, Fabian
On Sat, May 24, 2003 at 02:22:58AM +0200, Fabian Hänsel wrote:
Die Platte war da ruhig, aber es war nach dem Rebuild. Kann sein, das die zweite da noch nicht fertig war. Gibts für "Rebuild" ein weiteres Zeichen, oder heißt "_" immer fehlt?
Ja, es ist deutlich in mdstat zu lesen.
Heiko
On Fri, May 23, 2003 at 10:54:30PM +0200, Fabian Hänsel wrote:
/proc/mdstat im Normalbetrieb (mit beiden Festplatten): Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
Kann es sein, daß im Normalbetrieb schon eine Platte fehlt, dund daß Du gerade die ausbaust, die noch funktionierte?
Vielleicht hilft mal im "Normalbetrieb" ein
raidhotadd
?
[Und natürlich würde ich überlegen, warum die Platte fehlte, vielleicht war sie schon kaputt und ist "rausgefallen"?]
Heiko
Hallo,
mir ist jetzt soweit insgesamt klar (oder zumindest glaub ich das), was los war.
Raidstart startet nicht, wenn es eine der Partitionen nicht ansprechen kann. Stattdessen muss die kaputte Platte zumindest noch vorhanden sein und auf Steuerebene funktionieren. Dann macht raidstart auch los. Anschließend muss man mittels raidhotremove die kaputte Platte abmelden, eine neue einbauen und mittels raidhotadd wieder anmelden.
Ein Problem bleibt allerdings: Warum muss die kaputte Platte noch ansprechbar sein? Hilft das Raid überhaupt, wenn eine Platte vollständig ausfällt (kommt sicher nur selten vor)?
Dankeschön an alle; für die Interessierten hier noch mal alles detailiert.
Heiko Schlittermann heiko@schlittermann.de wrote:
Kann es sein, daß im Normalbetrieb schon eine Platte fehlt, dund daß Du gerade die ausbaust, die noch funktionierte?
Ich hab jetzt beide Platten drin, arbeiten funktioniert:
# raidhotremove /dev/md0 /dev/hde6 /dev/md0: can not hot-remove disk: disk busy! # raidhotremove /dev/md0 /dev/hdd1 /dev/md0: can not hot-remove disk: disk not in array! # cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
Der Unterstrich bezieht sich auf die in der /etc/raidtab erste (/dev/hdd1) vermute ich mal, was mit dem "disk not in array!" übereinstimmt. /dev/hdd1 hat also irgendein Problem.
Vielleicht hilft mal im "Normalbetrieb" ein
raidhotadd
?
# raidhotadd /dev/md0 /dev/hdd1 # cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host0/bus1/target1/lun0/part1[2] ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U] [===>.................] recovery = 15.6% (83456/529088) finish=3.2min speed=2270K/sec unused devices: <none>
Geht bis 99.8 %, dann wird das Rebuild immer langsamer (340KB/s, 300 KB/s und immmer weiter). Schließlich:
# cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host0/bus1/target1/lun0/part1[2](F) ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
unused devices: <none>
Sieht so aus, als ob /dev/hdd irgendwie kaputt ist (Was heißt das (F) genau?).
# raidhotremove /dev/md0 /dev/hdd1 # cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
Arbeiten funktioniert weiter.
Ich ziehe das Kabel zu /dev/hdd heraus
Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
Jetzt neu booten, oder mit hdparm den IDE-Bus neu scannen (hab ich nicht probiert) und dann wieder raidstart, raidhotadd (möglichst mit einer funktionierenden neuen Platte).
Auslöser meiner Konfusion war nicht die kaputte Platte (von der ich am Anfang nicht wusste, das sie kaputt war), sondern die Tatsache, dass das Raid mit nur einer Platte nicht arbeiten wollte.
Nochmal Danke an alle, Fabian
On Fri, May 23, 2003 at 10:54:30PM +0200, Fabian Hänsel wrote:
Hallo,
ich habe ein Software-Raid gebastelt, um meine wichtigen Daten vor dem Untergang zu bewahren und um sofort weiterarbeiten zu können, wenn mal eine Festplatte ausfällt. Der Normalbetrieb funktioniert soweit auch.
Ich hab auch so eine Kombination am laufen.
Wenn ich aber eine Platte (/dev/hdd) ausbaue, dann funktioniert die Sache nicht mehr:
Das hab ich mir noch nicht getraut zu probieren. <Vermutung> Um weiterarbeiten zu können muß man wahrscheinlich dem Raid-Treiber begreiflich machen, das jetzt nur noch eine Platte da ist. (raidhotremove?) </Vermutung>
Oder Du baust eine neue Platte ein. [...]
Wenn ich die Platte wieder einbaue und das Raid starte, dann beginnt er auf der Platte rumzuwühlen, was mich vermuten lässt, das er ein Rebuild durchführt.
Und dann fängt er an zu syncronisieren...
Warum arbeitet er aber nicht einfach weiter, wenn eine Platte fehlt?
Naja, wenn nur noch eine Platte geht, ist es ja kein Raid mehr.
Sieht jemand den Fehler? Oder ist das normal, das bei Raid 1 immer alle Partitionen da sein müssen?
Vermutlich schon. Ich bilde mir ein sowas auch in der Dokumentation gelesen zu haben. Ist aber schon eine ganze Weile her.
/proc/mdstat im Normalbetrieb (mit beiden Festplatten): Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 ide/host2/bus0/target0/lun0/part6[1] 529088 blocks [2/1] [_U]
unused devices: <none>
Hier mal meine /proc/mdstat zum Vergleich: --- Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdg1[1] hde1[0] 39082560 blocks [2/2] [UU]
unused devices: <none> ---
Bert
Bert Lange bert.lange@web.de wrote:
On Fri, May 23, 2003 at 10:54:30PM +0200, Fabian Hänsel wrote:
Wenn ich aber eine Platte (/dev/hdd) ausbaue, dann funktioniert die Sache nicht mehr:
Das hab ich mir noch nicht getraut zu probieren.
<Vermutung> Um weiterarbeiten zu können muß man wahrscheinlich dem Raid-Treiber begreiflich machen, das jetzt nur noch eine Platte da ist. (raidhotremove?) </Vermutung>
raidhotremove funktioniert nicht, da das Raid gar nicht erst gestartet wird, und raidhotremove ein laufendes Raid ansprechen will.
mfg, Fabian
lug-dd@mailman.schlittermann.de