RAID 1 auflösen?

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
mairo
Hacker
Hacker
Beiträge: 295
Registriert: 29. Mai 2005, 09:21
Wohnort: Dortmund

RAID 1 auflösen?

Beitrag von mairo » 16. Dez 2013, 20:46

Hallöchen,
ich habe unter Opensuse 12.2 zwei Festplatten in einem Raid 1 - Verbund (Software-Raid!!). Diesen möchte ich nun auflösen. Aber wie ohne Datenverlust? Eigentlich müsste ja auf beiden Platten der selbe Inhalt gespeichert sein.
Wie bekomme ich es also hin, eine Festplatte wieder als "normale Datenfestplatte" zu nutzen?
Übrigens: Der Raid - Verbund ist NICHT die Systemplatte, sondern nur eine "Daten-Platte"!

Danke für eure Hilfen

mairo

Werbung:
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3141
Registriert: 25. Aug 2004, 02:13

Re: RAID 1 auflösen?

Beitrag von robi » 17. Dez 2013, 00:31

zuerst einen Überblick verschaffen und folgende Ausgaben mal sicherheitshalber alle in einer Datei sammeln.

Code: Alles auswählen

cat /proc/mdstat
cat /etc/fstab
cat /etc/mdadm.conf
fdisk -l
lsblk
dann eine von beiden Platten aussuchen die du zuerst raus nimmst
Beispielkonfiguration die hier im weiteren Vorgehen angenommen wird.: (/dev/sda1 und /dev/sdb1 sind zu /dev/md0 gespiegelt)

Code: Alles auswählen

mdadm /dev/md0  -r  -f  /dev/sdb1
setzt /dev/sdb1 vom Raid1 md0 auf failed und entfernt es aus dem aktuellem Raid,, das Raid läuft nur mit /dev/sda1 weiter.

Je nach verwendeten Metadaten des Raid muss der RaidSuperblock auf /dev/sdb1 gelöscht werden. bei V0.9 und V1.0 liegt er am Ende , bei V1.1 und V1.2 liegt er am Anfang
entweder löschen mit (Befehl sollte den Superblock automatisch an der richtigen Position finden und löschen)

Code: Alles auswählen

mdadm --zero-superblock /dev/sdb1 
oder komplette /dev/sdb1 mit dd überschreiben

Code: Alles auswählen

dd if=/dev/zero of=/dev/sdb1 bs=4K
Anschließend kannst du die Platte neu partitionieren wenn notwendig, zumindestens solltest du die Parittions Kennung von sdb1 von derzeit "fd" auf "83" setzen
dann neues Dateisystem darauf anlegen und temporär mounten zB:

Code: Alles auswählen

mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /mnt
Jetzt kannst du die Daten vom Raid rüber kopieren auf das Dateisystem unterhalb von /mnt zB mir rync /src/foo ist der derzeitige Mountpoint des Raid1

Code: Alles auswählen

rsync -av /src/foo/ /mnt/
eventuell wenn dort ACLs drauf sind (zB bei Samba Freigaben) besser folgende, das erschlägt wahrscheinlich Alles.

Code: Alles auswählen

rsync -AHPSXavx  /src/foo/ /mnt/
wenn fertig prüfen ob alles ok ist auf /mnt, erst dann gehts weiter.

Code: Alles auswählen

umount /mnt
Als nächstes dein Raid1 umounten, sollte möglich sein, wenn du alle Programme schließt und alle User abmeldest die derzeit darauf zugreifen, Notfalls vorher in Runleve1 fahren.

Code: Alles auswählen

umount /dev/md0 
wenn der umount erfolgreich Raid anhalten.

Code: Alles auswählen

mdadm -S /dev/md0
mit dieser Platte jetzt genauso verfahren, Raidsuperblock löschen oder Partition überschreiben, und Partitionstabelle das "fd" Flag in "83" oder was immer für die Weiterverwendung benötigt wird,ändern, wenn du die Platte anderweitig verwenden möchtes. Wenn nicht, kannst du diese Platte noch eine Zeit aufheben (nur das fd Flag muss weg wenn die Platte im System bleiben soll,, sonst versucht Linux jedes mal beim Start das Raid aufzusetzen.), wenn du sonst nichts an der Platte änderst, ist das Raid jederzeit wieder aufsetzbar.

die Konfigurationsdatei /dev/mdadm.conf , entweder alle Spuren von md0 dort rausnehmen, oder wenn es das einzige Raid war dann die ganze Datei löschen.
die /etc/fstab ändern, die Zeile mit /dev/md0 löschen oder auskommentieren und eine neue Zeile mit dem selben Optionen und Mountpoint für /dev/sdb1

Code: Alles auswählen

mount -a 
sollte jetzt automatisch dein /dev/sdb1 richtig mounten.

jetzt noch eine neue initrd erstellen, damit die alte Raid Konfiguration auch aus der initrd entfernt ist.
bei den meisten Distributionen reicht

Code: Alles auswählen

mkinitrd
Danach Rechner runterfahren und wenn die ID "fd" noch nicht von der 2. Platte entfernt ist, dann diese aus dem System jetzt ausbauen.
booten fertig.

Sache von 5 Minuten ;) (Späßle gemacht) dauert natürlich seine Zeit, da du sicherlich auch jeden Befehl noch ein wenig auf deine Gegebenheiten auf dem Rechner anpassen musst. Devicenamen können und werden wahrscheinlich bei dir komplizierter aussehen, also mal innerhalb von /dev suchen und den Softlinks dort folgen wo sie genau hinzeigen. ZB

Code: Alles auswählen

find /dev/disk -ls
lsblk
könnte eine Hilfe sein um den Überblick zu behalten.

Die Befehle sind Hirndump, also ohne Gewähr, aber das kann man so schnell auch auf keinem Rechner ausprobieren.

robi

mairo
Hacker
Hacker
Beiträge: 295
Registriert: 29. Mai 2005, 09:21
Wohnort: Dortmund

Re: RAID 1 auflösen?

Beitrag von mairo » 17. Dez 2013, 09:52

Wow.. doch so kompliziert...
Vielleicht sollte ich alle Daten auf einer Externen Festplatte sichern und dann "Raid löschen" und die Festplatte neu formatieren... ist sicher einfacher.. oder?

Mal eine Zusatzfrage: Wenn ich dieses Raid-Array in einen neuen PC einbauen würde, könnte ich dieses dort auch einbinden? (Also, beide Festplatten ausbauen, in einen neuen PC einbauen...) Ginge das?

Gruß
mairo

josef-wien
Guru
Guru
Beiträge: 4913
Registriert: 23. Sep 2008, 17:09

Re: RAID 1 auflösen?

Beitrag von josef-wien » 17. Dez 2013, 10:49

mairo hat geschrieben:doch so kompliziert
robi hat einen Weg des schrittweisen Auflösens dargelegt, das kannst Du auch abkürzen. Aber Du solltest einmal das Ergebnis von

Code: Alles auswählen

cat /proc/mdstat
zeigen, damit wir wissen, wie es bei Dir aussieht.
mairo hat geschrieben:ist sicher einfacher
Das sehe ich nicht so. Außerdem kostet es ein Vielfaches an Zeit.
mairo hat geschrieben:Ginge das?
Ja. Aber was ist eigentlich Dein Ziel?

mairo
Hacker
Hacker
Beiträge: 295
Registriert: 29. Mai 2005, 09:21
Wohnort: Dortmund

Re: RAID 1 auflösen?

Beitrag von mairo » 17. Dez 2013, 20:20

Also, hier wie gewünscht die Ausgabe:

Code: Alles auswählen

linuxserver:~ # cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdc1[1] sdb1[0]
      976759864 blocks super 1.0 [2/2] [UU]
      bitmap: 5/466 pages [20KB], 1024KB chunk

unused devices: <none>
Hilft das?

josef-wien
Guru
Guru
Beiträge: 4913
Registriert: 23. Sep 2008, 17:09

Re: RAID 1 auflösen?

Beitrag von josef-wien » 17. Dez 2013, 22:48

Wenn Du /dev/md0 rückstandsfrei entfernen willst (die Daten auf /dev/sdb1 und /dev/sdc1 bleiben erhalten):

Code: Alles auswählen

umount /dev/md0
mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
sfdisk --change-id /dev/sdb 1 83
sfdisk --change-id /dev/sdc 1 83
tune2fs -U random /dev/sdc1
==> fstab anpassen
==> Zeile aus /etc/mdadm.conf oder ganze Datei entfernen
Einen systemd-Service für den Überwachungs-Dämon mdadmd scheint es nicht zu geben, vermutlich funktioniert insserv -r mdadmd noch, falls der Dienst bisher aktiviert war.

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3141
Registriert: 25. Aug 2004, 02:13

Re: RAID 1 auflösen?

Beitrag von robi » 17. Dez 2013, 23:18

Achtung: für alle die das nachmachen wollen,
Diese Abkürzung die hier josef-wien aufzeigt, geht nur wenn Raid-Superblock-Version nicht 1.1 oder 1.2 ist..

1.2 ist der Defaultwert von mdadm, also wenn ihr Raid per Hand angelegt habt. Der Yast Installer nimmt bis jetzt immer nur 1.0
hier ist es 1.0 da geht das so einfach, auch bei 0.9 würde es gehen, ersichtlich die Version zB. hier:
linuxserver:~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
976759864 blocks super 1.0 [2/2] [UU]
bitmap: 5/466 pages [20KB], 1024KB chunk

unused devices: <none>
zB. bei 1.2 , dem default von mdadm werdet ihr hinterher so schnell die Dateien nicht in den Partitionen finden können, da das Dateisystem hier weiter hinten in der Partition anfängt als normal und sich das Dateisystem nicht ohne zusätzliche Offsetparameter mounten lässt.

robi

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste