Backup mittels RAID1

Jimini

PCGH-Community-Veteran(in)
Moin,

eins vorweg: ein RAID ist kein Backup, klar. Mir kam aber eben eine Idee, die interessant sein könnte, und bevor ich sie (testweise) umsetze, wollte ich mal schauen, ob jemand sowas vielleicht schon gemacht hat.

Ich habe ein System, welches 24/7 auf einem Software-RAID1 (mdadm) läuft. Bei diesem kann ich im laufenden Betrieb ja quasi beliebig viele Platten hinzufügen, auf die dann ebenfalls gespiegelt wird. Meine Idee ist nun folgende:
- RAID1 aus >2 Laufwerken erstellen
- eine Platte aus dem Array entfernen
- von der Platte in aller Ruhe ein Image ziehen (und dieses dann an einem sicheren Ort ablegen)
- Laufwerk wieder ins Array einbinden und syncen lassen
- danach das selbe mit dem zweiten Laufwerk und so weiter

Natürlich eignet sich sowas nicht für größere Datenmengen, da die Platten durch jeden resync-Vorgang stark beansprucht werden.
Die Metadaten bzw. den Superblock müsste man wohl nochmal separat wegsichern - mit der Thematik habe ich mich seit Jahren nicht mehr wirklich beschäftigt. Ein Knackpunkt könnte sein, dass die Images nicht exakt den selben Datenbestand haben, und man beim Wiederherstellen dann eben aufpassen muss, dass man mit der richtigen Platte (bzw. dem richtigen Image) anfängt, wovon aus dann gesynct wird.

Ansonsten habe ich noch keinen Nachteil finden können - übersehe ich da was?

MfG Jimini
 
Der Aufwand.
Ein Script mit Robocopy wär da einfacher.
Ja klar, für sowas würde ich natürlich ein Skript schreiben. Von Hand würde ich das nicht machen ;)
Mit Robocopy habe ich bislang nicht gearbeitet, laut einer kurzen Google-Suche ist es aber rsync sehr ähnlich.

Mir fiel aber gerade noch was auf - diverse Dateien (Datenbanken beispielsweise) könnten Probleme bereiten, wenn sie während des Zugriffs aus dem Array rausgeholt werden.

MfG Jimini
 
Ein Knackpunkt könnte sein, dass die Images nicht exakt den selben Datenbestand haben, und man beim Wiederherstellen dann eben aufpassen muss, dass man mit der richtigen Platte (bzw. dem richtigen Image) anfängt, wovon aus dann gesynct wird.
Was willst Du da syncen lassen? Willst Du das Backup beim Ausfall einer HDD nutzen, um diese extern (also nicht im laufenden RAID) wieder herzustellen? Oder soll das Backup dazu dienen, das komplette RAID wieder herzustellen.

Wie das RAID darauf reagiert, wenn Du die Platte mit so einem Backup wieder einsetzt, müsste man auch testen. Zwischenzeitlich war ja die Originalplatte (mit deren IDs) wieder aktiv, u.U. merkt sich das jemand.

Ansonsten habe ich noch keinen Nachteil finden können - übersehe ich da was?
Redundante Backups verschiedener Stände, an die Du vermutlich nur im Quellsystem wieder rankommst. Aber vieleicht kann man die Linux-Dinger ja einfach wieder mounten und als Einzelplatte nutzen, um im Schadensfall schnell an einzelne Daten zu gelangen.

Dazu (Nutzung als Backup des gesamten RAID) wird immer das letzte Backup der Master sein. Außer, Du fummelst von Hand irgend etwas daran herum, bist der Programmierer des Raid-Systems und weisst damit zu 10000%, was Du tuts, tun musst und nicht tun darfst, damit es nachher nicht irgendwio Datenfehler gibt, die das RAID nicht erkennt.

Mir fiel aber gerade noch was auf - diverse Dateien (Datenbanken beispielsweise) könnten Probleme bereiten, wenn sie während des Zugriffs aus dem Array rausgeholt werden.
Ja klar, das sollte wohl bekannt sein, wenn man sich mit Online-Backups beschäftigt. Nicht ohne Grund sichert man Datenbenaken nicht auf diese Weise (auch nicht mit System-Snapshots/Shadow Copy). Und "Datenbanken" sind nicht nur echte MySQL/MS-SQL und co. Instanzen, sondern z.B. auch die Daten von lokalen Mail.-Clients und sonst alles, bei dem sich Robocopy mit den Standardoptionen weigert, ein Backup anzulegen.

Von daher nützt Dir ein rsync-Script auf dem Server auch nichts, wenn das nicht mit dem Backup-Job der Datenbank synchronisiert wird.
 
Was willst Du da syncen lassen? Willst Du das Backup beim Ausfall einer HDD nutzen, um diese extern (also nicht im laufenden RAID) wieder herzustellen? Oder soll das Backup dazu dienen, das komplette RAID wieder herzustellen.
Ich würde damit die Daten sichern, welche über dem Array liegen. Bei der Wiederherstellung hätte man dann eine Platte, mit welcher man ein degraded RAID1 startet und so wieder ein RAID1 über mehrere Platten aufbauen kann.
Wie das RAID darauf reagiert, wenn Du die Platte mit so einem Backup wieder einsetzt, müsste man auch testen. Zwischenzeitlich war ja die Originalplatte (mit deren IDs) wieder aktiv, u.U. merkt sich das jemand.
Zumindest mdadm sollte da recht tolerant sein - die Metadaten des Arrays liegen im Superblock jedes Laufwerks, ansonsten wird nirgendwo was abgelegt. Die Laufwerke kann ich dann einfach mit ihrer Gerätedatei einbinden.
Aber vieleicht kann man die Linux-Dinger ja einfach wieder mounten und als Einzelplatte nutzen, um im Schadensfall schnell an einzelne Daten zu gelangen.
Ja, das geht bei einem mirrored Array definitiv. Die Daten liegen ja komplett auf jedem Laufwerk.
Dazu (Nutzung als Backup des gesamten RAID) wird immer das letzte Backup der Master sein. Außer, Du fummelst von Hand irgend etwas daran herum, bist der Programmierer des Raid-Systems und weisst damit zu 10000%, was Du tuts, tun musst und nicht tun darfst, damit es nachher nicht irgendwio Datenfehler gibt, die das RAID nicht erkennt.
Ja, das stimmt natürlich. Wahrscheinlich macht eine solche Rotation dann auch nicht so viel Sinn - ein Image reicht ja völlig aus. Aber vielleicht werde ich dann auch einfach ein RAID1 aus mehr als zwei Laufwerken betreiben, damit sollte ich vor Unterbrechungen eigentlich ziemlich sicher sein. Und im worst case hätte ich immer noch mein Backup auf Dateiebene...

MfG Jimini
 
Zurück