MDADM Gehversuche - Spiegelplatte 1 Daten weg?

Hobbystern

Hobbystern

Wahl-Debianer
Hallo Zusammen,

ich habe mich nach 4 Jahren Linux Nutzens nunmehr (endlich) mal eine echte mdadm Installation gewagt, das Ziel war eigentlich LVM + RAID1, aber das habe ich trotz guter Anleitung (Buch "100 neue Server Hacks") nicht wirklich gepackt.

Folgendes :

Ich habe 2 160GB Festplatten, habe von den wichtigsten Daten auf Platte 1 eine Sicherung gezogen - die zweite habe ich gänzlich geleert.

Ich habe mit dem Befehl :

Code:
mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb
mdadm gestartet und habe ihm meine Daten-Platte als erste angegeben (sdb).
Meine Blanko-Platte "sda" wurde nie eingebunden.

Nachdem ich nunmehr diese eingebunden hatte, habe ich als ersten Gehversuch meine darauf enthaltenen Daten gesucht und ob diese wunschgemäß zu md0 wurden - leider nicht.

Nun habe ich md0 wieder aufgelöst

Code:
mdadm --stop /dev/md0
Und wollte sdb (die Datenplatte) nochmals suchen.

Jedoch finde ich die damalige Partitionierung "sdb1" nicht mehr.

Habt ihr Rat? Es sind keine kritischen Daten auf ihr - jedoch würde ich gerne das Prozedre verstehen wie ich aus der ersten Platte im laufenden System ein Spiegellaufwerk erstelle.

Liebe Grüsse,

Stefan
 
Was hast du denn genau gemacht? Der create Befehl war wichtig, aber wie bist du danach vorgegangen? Ein Backup hattest du also? Sehr gut!
 
Hi,

wie bist du danach vorgegangen?

Erst wie geschrieben create.
Dann hatte ich geprüft ob (und das war der Teil den ich effektiv nicht wusste) meine Daten nunmehr auf md0 existieren - wie sie es vorher auf sdb1 taten.
Das war nicht der Fall, also habe ich das Raid aufgelöst - und wollte nachsehen ob die Daten bei sdb1 noch existieren - auch dem war nicht mehr so.

Ein Backup der wichtigsten Daten habe ich - jedoch war es mir wichtig das beim Array erstellen die Daten "mitwandern" - das war das Ziel.

Hast Du Rat :

- Wie kann ich (ohne nunmehr die HDD per partimage zurückzuspiegeln) die Daten wieder auf sdb1 legen (existieren werden sie ja noch - nur die partitionstabelle wird fehlen)

- Wie kann mein Szenario oben ablaufen, oder anders gesagt "Wie erstelle ich ein RAIDx aus einer gefüllten Master-HDD - so dass sich die anderen (leeren) Festplatten dieser unterordnen ?"

Ich hatte ehrlich gesagt gemeint das mdadm bemerkt das auf der einen Festplatte etwas ist...?!

LG Stefan
 
Raid

Hallo


Kannst du mal fdisk -l posten. Die Partitonen müßten ja immer noch als dateityp die raidkenung haben, also kein 83, dehlab siehst du sdb auch nicht.

ist md0 irgendwo in / eingehängt ?
wenn ja, unmounten.

mfg
schwedenmann
 
Hi zurück (schon wach :-) ,

mdadm ist nicht gemounted.

Ich habe nunmehr einfach mal die Partition "von gestern" per gpart "raten" und dann neu schreiben lassen.

Aktuell startet der Rechner neu...

Grüsse, Stefan
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

[Doppelpost/manmögemirverzeihen!]

Also - die Partition sdb1 ist nicht mehr mit Daten belegt, so scheints zu sein.

sfdisk -l gibt aus :

Kurzform :

Code:
Disk /dev/sdb: 19929 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdb1          0+  19928-  19929- 160079660   83  Linux
/dev/sdb2          0       -       0          0    0  Empty
/dev/sdb3          0       -       0          0    0  Empty
/dev/sdb4          0       -       0          0    0  Empty
Langform :

Code:
Disk /dev/sda: 19929 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0+  19928   19929- 160079661   83  Linux
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

Disk /dev/sdb: 19929 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdb1          0+  19928-  19929- 160079660   83  Linux
/dev/sdb2          0       -       0          0    0  Empty
/dev/sdb3          0       -       0          0    0  Empty
/dev/sdb4          0       -       0          0    0  Empty

Disk /dev/hda: 9729 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/hda1   *      0+   8509    8510-  68356543+  83  Linux
/dev/hda2       8510    9728    1219    9791617+  82  Linux swap / Solaris
/dev/hda3          0       -       0          0    0  Empty
/dev/hda4          0       -       0          0    0  Empty

Disk /dev/md0: 40021616 cylinders, 2 heads, 4 sectors/track
Warning: The partition table looks like it was made
  for C/H/S=*/255/63 (instead of 40021616/2/4).
For this listing I'll assume that geometry.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/md0p1          0+  19928-  19929- 160079660   83  Linux
/dev/md0p2          0       -       0          0    0  Empty
/dev/md0p3          0       -       0          0    0  Empty
/dev/md0p4          0       -       0          0    0  Empty
Hast Du Rat ?

LG Stefan
 
Zuletzt bearbeitet:
Raid

Hallo


Hast du vor mdadm --create...

per fdisk den Partitionstyp von 0x83 auf 0xfd geändert ?

und Platz für den Raidsuperblock geschaffen, am Ende der Partition ?, vor dem --create Befehl.

was denn jetzt mdadm --detail /dev/md0


mfg
schwedenmann
 
Hallo Schwede!

Nein, habe ich natürlich nicht - habe es gerade nachgeschlagen - Anfängerfehler.

mdadm detail gibt , wie erwartet aus :

Code:
deb-server:~# mdadm --detail /dev/md0
mdadm: md device /dev/md0 does not appear to be active.

Das Problem was ich hier habe - ich möchte gerne erst die sdb1 wiederherstellen - danach nochmals strukturierter von vorne anfangen.

sdb habe ich zurück. die partition kann ich zB per testdisk finden - und daten von dort einsehen - jedoch bekomme ich die partition aktuell nicht wieder zurück zu .. sdb1 sdb2..

Partitionieren unter Linux bedarf immer etwas Übung (und vorallem Zeit für das Vorhaben!)

LG Stefan
 
Raid

Hallo


Wenn du eine Sicherung hast, partitioniere einfacgh neu mit eienr Livecd, dann Daten zurückspielen und nochmal mit mdadm von vorne anfangen.

mfg
schwedenmann


P.S.
in der ct 2/2009 auf S.168ff ist ein super Artikel zu Linux und SW-Raid per mdadm.
 
Hi zurück,

ich denke auch ich lasse die Spielchen und hau das Ding clean auf. Ich habe hier die beiden "Linux Server Hacks" - die Bücher sind eigentlich ideal. Nur leider arbeitet das aktuellste Buch noch mit den raidtools, welche es ja auf etch etc. (debian) nicht mehr gibt :-(

Nun gut.

Wenn ich nunmehr mein Vorgehen richtig verstanden habe dann gehe ich um ein LVM + RAID 1 aufzusetzen wie folgt vor :

1. Partitionstype auf RAID autodetect setzen
2. mdadm create mit einem volume ausführen
3. zweites volume hinzufügen
4. nunmehr aus md0 eine volume gruppe erstellen und md0 als phys. volume anlegen

Bei Bedarf mehr speicher zur Gruppe hinzufügen (nahezu hotplug)

LG Stefan
 
Der Partitionstyp ist egal. Später sollte er auto-detect sein, aber das ist nicht der Grund für deinen Fehler. Auch die Partitionstabelle wird nicht berührt. Der RAID-Superblock wird ans Ende der Platte (Partition) geschrieben, das führt erstmal (!) nicht zu Problemen, auf diesem Wege solltest du es also nicht geschafft haben, deine Daten ins Nirvana zu schicken. Sicher, dass du die Platten nicht vertauscht hast? Der Raid Superblock braucht ein bisschen Platz am Ende der Partition/Platte, das heisst du solltest zuerst die Datenpartition verkleinern, dann das Raid erstellen (so wie du es gemacht hast mit einer Platte als missing) und kontrollieren ob im RAID Device deine Daten sind. Dann erst mit hot-add die andere Platte dazu.
 
Hi Saeckereier,

Du schreibst mir aus der Seele - genau das hatte ich vor - wenn auch nicht ganz so definiert, IMHO sollten die Daten der Partition "alt" ins neue "raid" automatisch erscheinen.

Ich habe es nunmehr so gemacht das ich mdadm einen neuen verbund erstellen habe lassen, erst mit einer missing, dann die daten der sicherung aufs raid und dann per "heissem reinwerfen" die zweite festplatte integriert.

das geht nunmehr.

Nur hat Schritt 1 - Bestehende Daten mitnehmen (autom.) nicht funktioniert.

Das würde mich natürlich sehr interessieren.

LG Stefan
 
Hmm, evtl. habe ich da auch etwas durcheinandergebracht. Was immer klappen sollte: Raid erstellen auf leerer Platte mit der Datenplatte als missing. Datenplatte mounten, Daten ins Raid kopieren. Dann die Datenplatte per hot-add dazutun. Et voilá, die Daten sind auf beiden Platten. Ich meine das das andere auch klappen sollte, aber so wie ich es gerade beschrieben habe sollte es auch gehen.
 
So ist es hier geschehen, kann ich also unterschreiben, leider ging Variante 1 in die Hose :-(

Nun gut, so ist es ja auch machbar, wenn auch nicht ganz so komfortabel.

LG Stefan
 
Du hast aber den Unterschied zwischen deinem und dem gerade beschriebenen Vorgehen verstanden, oder?
 
:think:

Nicht wirklich.

Ich habe in zweiter Instanz folgendes gemacht :

- Auf leerer Datenplatte den Type zu Auto Detect RAID verändert.
- mdadm create ausgeführt, mit der zweiten als missing
- Alle Daten von HDD 1 nach RAIDneu kopiert.
- Die zweite HDD gelöscht und dann ebenfalls heiss eingehangen.

Du hattest dies oben ebenfalls als "sichere" Variante geschrieben.

Meintest Du diesen Unterschied ?

LG Stefan
 
mdadm

Hallo


Es scheint ein Problem mit der befelsoption zu geben.

mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb

müßte es nicht heißen

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda missing
wobei sda die Platte ist auf der das raid1 (ohne 2. Platte) erstellt wird, aber die 2. Platte sdb, die missing ist!

mfg
schwedenmann
 
- Auf leerer Datenplatte den Type zu Auto Detect RAID verändert. auf HDD1
- mdadm create ausgeführt, mit der zweiten als missing HDD1 f. create, HDD2 missing
- Alle Daten von HDD 1 nach RAIDneu kopiert. HDD2 -> RAID
- Die zweite HDD gelöscht und dann ebenfalls heiss eingehangen. einfach nur hot-add HDD2 ohne irgendwas zu löschen oder so, ist aber eigentl. irrelevant

HDD2 ist hierbei die Platte mit den Daten.
 
Mein neue Ausführung hatte keinen direkten Bezug zu dem oben angesprochenen Problemfall, sorry. Das hätte natürlich auch stimmen müssen.

Bei mir (oben) war es so das

sdb - Daten
sda - Leer

war. Dabei hatte ich als Ziel vor sdb und seine Daten "mitzunehmen", also nicht neu zu erstellen.

Nunmehr in Fall 2 - ohne mitnehmen der Daten ist es einfacher :

Leere zu RAID wandeln, Daten von voller auf raid kopieren und auch ins raid führen, fertig (s.o.)

LG Stefan
 
Vor allem sind die Daten dabei nicht in Gefahr. Du hast anscheinend den falschen Weg beschritten, meiner Meinung nach hätten Sie erhalten bleiben sollen. Ohne eine genaue Analyse schwer zu sagen. Der Weg, den man normalerweise einschlägt ist aber der von mir beschriebene, eben weil er 100%ig sicher ist (RAID-Implementierungsfehler, vertippen und spontanen Plattenausfall ausgenommen). Ob dein Weg so funktionieren kann mag ich eben mangels Erfahrung nicht sagen, ich denke ja, müsste das aber in einer VM ausprobieren.. Warum es bei dir jetzt nicht geklappt hat, das kann ich dir wirklich nicht sagen..
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Moment, ich ziehe es zurück: Ich habe RAID und DM-Crypt verwechselt. Der RAID Superblock steht am ANFANG der Partition, dass heisst, der Superblock deines Dateisystems wird überschrieben. Du hättest wahrscheinlich die Daten retten können, wenn du mittels fsck eine der Sicherungskopien de Superblocks gezogen hättest, diese werden je nach Einstellung z.B. alls 32767 Blöcke abgelegt.. Jetzt ist es wohl aber zu spät. Deshalb geht auch nur das von mir beschriebene Verfahren. Leeres Raid ohne Datenplatte, Daten rüberziehen, Datenplatte hinzufügen.
 
Zuletzt bearbeitet:
Ja, die alten Superblöcke konnte man sehr schön mit "testdisk" sehen und auch ansprechen - auf diese Weise hätte ich sogar noch Daten wegkopieren können.

Also ganz klar - Du hast Recht, die Tabellen werden überschrieben, demnach kann eigentlich nichts übrig bleiben.

Wie dem auch sei - Verfahren 2 läuft nunmehr seit fast 24h.

LG Stefan
 

Ähnliche Themen

Raid-1 einrichten

Software RAID 1 verkleinern

Bootloader nach update weg

SATA RAID Controller 3Ware / LSI / Adaptec

MDADM - RAID 1 auf RAID 5 o. 10 umsetzen

Zurück
Oben