# RAID1-Backup im laufenden Betrieb?

## Stevie77

Hallo Leute,

ich habe mal eine Frage zu einer Konfiguration:

Server ist ein server4you Rechner mit Raid1 /dev/md0 ist /, setzt sich zusammen aus /dev/sda1 und /dev/sdb1, /dev/md1 ist swap, aus sda2 und sdb2...

Nun hab ich das Problem, dass ich für einen Kunden ein Update diverser Pakete machen soll und vorher auf Nummer Sicher gehen möchte und das ganze System sichern will. 

Kann ich eine Platte (sdb) aus dem Raid entfernen (im laufenden Betrieb), die Partition dann per dd und netcat auf einen anderen Server sichern und die Platte später wieder reinhängen und syncen? Und wenn ja, wie?

Bin für Tipps mehr als dankbar!

Schöne Grüße,

Stevie

----------

## Max Steel

also swap in ein Raid zu packen ist nicht sehr klug, denn eigentlich macht das der Kernel von alleine, also Swappraid auflösen und normal per swapon/swapoff ein oder aushängen wie du es brauchst.

----------

## Stevie77

Ja, danke.   :Smile:  Ist leider nicht mein Server (oder zum Glück)... 

Irgendwelche Tipps wie ich mein Problem mit mdadm lösen kann?

Gruß,

Stevie

----------

## schmutzfinger

Man kann eine Platte failed setzen und aus dem Verbund nehmen. Die lässt sich später ohne Probleme wieder mit einbinden. Ich kann dir aber nicht sagen wie sauber der Zustand ist, in dem sie sich dann befindet. Ich gehe davon aus, dass der Zustand nicht 100% sauber sein muss. Aber ich kann mir auch vorstellen, dass der Schaden am Dateisystem mit einem Stromausfall zu vergleichen wäre und von den meisten fs ohne Probleme repariert werden kann.

Ich habe jetzt mal spasshalber durchprobiert:

```

mdadm --fail /dev/md0 /dev/hdb5

mdadm --remove /dev/md0 /dev/hdb5

mdadm --readd /dev/md0 /dev/hdb5

```

Da lag jetzt vielleicht eine Minute zwischen dem Entfernen und Verbinden mit dem raid. Und das --re-add kommt mir genauso langsam vor, wie wenn ich ein --add gemacht hätte. (40GB/20+ min)

Ich habe nicht probiert hdb5 mal zu mounten und anzugucken, hätte wahrscheinlich geklappt aber ich glaube es ist nicht garantiert. Aber du kannst es ja mit dd kopieren und dann die Kopie mal fscken und mounten.

Wie viele Platten sind in dem raid1? Wenn es nur 2 sind dann wäre ich damit trotzdem sehr vorsichtig. Bei nem Plattenausfall in der Stunde kann auf einmal alles weg sein. Ein Bedienfehler von mdadm könnte ebenfalls faltal sein.

----------

## schmutzfinger

Wenn es nur 2 Platten sind dann würde ich drüber nachdenken das RAID1 auf 3 Platten auszuweiten. Wenn die 3 fertig gesynched ist kannst du sie failed setzen und wieder rauswerfen. Dann hast du dein Backup auf der 3.Platte. Wobei die 3 Platte vielleicht eine Datei im nfs sein kann falls die Kiste kein Hotplug kann oder kein Platz mehr ist.

Aber Vorsicht. Ich würde alle Varianten vorher an unwichtigen Rechnern üben.

----------

## schmutzfinger

Ich habe es gerade mal ausprobiert weil es mich auch interessiert hat. Ich werde das nicht im Detail erklären aber vielleicht hilfts ja:

```

## virtuelle block devices anlegen

dd if=/dev/zero of=/tmp/hd0 bs=1024 count=102400

dd if=/dev/zero of=/tmp/hd1 bs=1024 count=102400

dd if=/dev/zero of=/tmp/hd2 bs=1024 count=102400

losetup /dev/loop0 /tmp/hd0

losetup /dev/loop1 /tmp/hd1

losetup /dev/loop2 /tmp/hd2

## raid1 anlegen, mounten und füllen

mdadm --create /dev/md5 --level=1 --raid-devices=2 /dev/loop0 /dev/loop1

mkfs.ext3 /dev/md5

mount /dev/md5 /mnt/bla/

cp /lib/modules/`uname -r`/ /mnt/bla/ -r

## raid1 grösser machen, platte hinzufügen, platte failen lassen, kleiner machen, platte entfernen

mdadm --grow /dev/md5 --raid-devices=3

mdadm --add /dev/md5 /dev/loop2

mdadm --fail /dev/md5 /dev/loop2

mdadm --grow /dev/md5 --raid-devices=2

mdadm --remove /dev/md5 /dev/loop2

## 3. platte angucken

fsck.ext3 /dev/loop2

mount -t ext3 /dev/loop2 /mnt/bla2

## aufräumen

umount /mnt/bla

umount /mnt/bla2

mdadm --stop /dev/md5

losetup -d /dev/loop0

losetup -d /dev/loop1

losetup -d /dev/loop2

rm /tmp/hd*

```

Also soweit hat das alles ganz ordentlich funktioniert. Die 3. platte (/tmp/hd2 bzw. /dev/loop2) war nach der Aktion in Ordung und ließ sich mounten, allerdings wurde das fs nicht mehr automatisch erkannt. Aber auf dem raid war auch nix los als ich sie rausgenommen habe. Die Idee funktioniert aber anscheinend. Man kann eine Datei als 3. Platte in das raid einbauen und nach dem synch wieder abbauen. Und man kann das raid1 nach der Aktion auch negativ "growen" lassen. (von 3 wieder auf 2 devices) Ach ja zwischen den Schritten natürlich immer /proc/mdstat angucken und erstmal fertig synchen lassen.

----------

## tamiko

Ich verstehe nicht ganz, was das Problem ist, das RAID einfach so zu sichern.

Warum unbedingt mit Gewalt einen Spiegel 'rausschmeißen?

Wieso nicht einfach alle Daten via rsync (oder sicheren Verbindungen) sichern?

Ich mache das zwar nicht mit einem Server, aber mit meiner Root-Partition im laufenden Betrieb.

Das einzig Hässliche, was passieren könnte, wäre dass Datenbanken nicht konsistent gesichert werden.

Aber dagegen könnte man sich behelfen, indem man die Dienste einfach vorübergehend abschaltet...

----------

## hitachi

 *Max Steel wrote:*   

> also swap in ein Raid zu packen ist nicht sehr klug, denn eigentlich macht das der Kernel von alleine, also Swappraid auflösen und normal per swapon/swapoff ein oder aushängen wie du es brauchst.

 

Ich habe meinen SWAP auch im RAID. Ich sehe nicht, warum dass eine schlechte Idee sein soll? Es sollte eben nur kein Raid 0 sein für den SWAP. Steht übrigens auch so in den meisten WIKI einträgen. Beschleunigt den Swap und bei einem Verlust von einer Festplatte läuft der PC dennoch weiter. Sonst kanne er auch abstürzen, wenn er gerade auf diesen Teil vom Swap zugreifen will.

Ich würde die Platte auch nicht aus dem RAID entfernen weil es eben nicht das selbe ist, wie wenn es eine einzelne Platte wäre. Es ist wirklich Sinnvoller eine Lösung zu suchen, wie sie von "tamiko" vorgeschlagen wird. Man könnte zB eine Stage 4 Sicherung machen.

Siehe auch den zweiten roten Kasten hier in der WIKI:

http://gentoo-wiki.com/HOWTO_Install_on_Software_RAID

----------

## schmutzfinger

Ja ein normales tar oder cpio tut es auch aber das kann ja jeder  :Wink: . Ihr habt schon recht, man sollte das so machen egal ob raid oder nicht. Die Idee finde ich trotzdem irgendwie cool. Und wenn man ein raid1 mit 3 Platten hat dann kann man eine kurz rausnehmen bevor man was kritisches am System macht. Das finde ich schon irgendwie ganz spannend, weil man das Backup nicht erst anfertigen muss.

Achja und Backups von Datenbanken macht man mit den mitgelieferten tools. (dump) Bei automatischen Backups einfach einen cronjob so einstellen, dass der dump fertig ist, bevor das Backup kommt.

----------

