Dieser Artikel wurde von Thomas als Gastartikel eingereicht! Da ich bereits sehr viele Daten auf eine externe 2TB-USB-Platte gespielt hatte, wollte ich mir nicht extra noch einmal 2x2TB-Platten kaufen, um das RAID1-System von null an einzurichten. Vielmehr sollte die vorhandene Platte und eine neue Platten zum Einsatz kommen. Standardmäßig ist das nicht vorgesehen, beim erstmaligen Erstellen eines RAID1-Systems werden vom NAS immer beide Platten neu formatiert.

Benötigte Hard- und Software

  • PC mit SSH- und/oder Telnet-client
  • fun_plug-Software (Download und Installation siehe hier)
  • 1 uralte Festplatte, auf der fun_plug übergangsweise installiert werden kann (“Hilfsplatte”)
  • 1 alte Platte –> Platte 1 für RAID1-System
  • 1 neue Platte –> Platte 2 für RAID1-System (absolut identisch zur oberen)

HINWEIS: Diese Anleitung wird auf eigene Gefahr durchgeführt. Dieser Artikel kann sehr leicht zum vollständigen Datenverlust führen! Ich übernehme keinerlei Verantwortung! Bitte versucht das zu umgehen und kauft euch lieber eine Festplatte auf der ihr die Daten zwischenspeichert!

Im folgenden “~#” bezeichnet Konsoleneingaben, dabei ist jedoch “~#” wegzulassen.

Hardware einbauen

  • NAS ausschalten
  • Alte Platte ausbauen
  • “Hilfsplatte” für fun_plug einbauen (siehe Problembeschreibung unten wegen umount-Problem mit fun_plug), muss vermutlich im oberen bzw. linken Slot sein, damit fun_plug beim booten erkannt wird
  • neue, leere Platte in NAS einbauen (muss dann anderer Slot “sdb” sein)

Formatierung und fun_plug

  • NAS starten
  • Neue Platte und “Hilfsplatte” durch NAS formatieren lassen (s. Manual, getrennte Platten, kein JBOD oder RAID)
  • Auf Hilfsplatte fun_plug mit ftp aufspielen

Ergebnis der Formatierung betrachten,RAID1-Array erstellen und fun_plug kopieren

~# df

so ungefähr könnte es aussehen:

Filesystem 1k-blocks Used Available Use% Mounted on rootfs 13879 11374 1789 86% / /dev/root 13879 11374 1789 86% / /dev/loop0 6784 6784 0 100% /sys/crfs /dev/sda2 75346560 221464 75125096 0% /mnt/HD_a2 –> Hilfsplatte mit fun_plug /dev/sda4 497861 10539 487322 2% /mnt/HD_a4 –> Teil der 80GB-Platte mit System- und Printserver-Daten /dev/sdb2 1921830604 616736652 1207470564 0% /mnt/HD_b2 –> neue Platte - Daten /dev/sdb4 497861 10537 487324 2% /mnt/HD_b4 –> neue Platte - Systemdaten

Alle Laufwerke der neuen Platte umounten

~# umount /mnt/HD_b2 ~# umount /mnt/HD_b4

RAID1-Array erstellen (fehlende Platte wird mit “missing” gesetzt)

~# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb2

Mounten und mit “df” ansehen

~# mount /dev/md0 /mnt/HD_b2

fun_plug auf neue Platte spielen

~# cp -R /mnt/HD_a2/ffp /mnt/HD_b2 ~# cp /mnt/HD_a2/fun_plug /mnt/HD_b2

Platten umbauen und Daten auf neue Platte spielen

  • Ausschalten

  • Hilfsplatte ausbauen

  • Neue Platte an Stelle der Hilfsplatte einbauen, wegen fun_plug (jetzt sda)

  • Alte Platte mit Daten im zweiten Slot einbauen (sdb) –> ACHTUNG: nicht über das Webtool formatieren, es würden alle Daten verloren gehen!

  • Einschalten und Verbindungsaufbau zum NAS

  • Gemountete Platten mit “df” ansehen, folgende Partitionen sollten unter anderem existieren:

/dev/sda2 1921830604 616736652 1207470564 0% /mnt/HD_a2 –> neue Platte - Daten (Zielplatte) /dev/sda4 497861 10537 487324 2% /mnt/HD_a4 –> neue Platte - Systemdaten

–> zusätzlich einige Partitionen der Quellplatte (als sdb1…sdbn)

  • Daten kopieren (geht sicher auch mit “rsync -aqxP /quelle /ziel” (vorher mounten)):

Beispiel für alle Verzeichnisse und Dateien ohne Endung:

~# cd /mnt/HD_b2/ ~# cp -aR * /mnt/HD_a2/Part1Verz1

Beispiel für einzelne Verzeichnisse:

~# cd /mnt/HD_b3/ ~# cp -aR Verz1 /mnt/HD_a2/Part2Verz1 ~# cp -aR Verz2 /mnt/HD_a2/Part2Verz2

Beispiel für einzelne Dateien:

~# cd /mnt/HD_b4/ ~# cp -a File1 /mnt/HD_a2/Part2Verz1/

Achtung ab hier kann man sehr leicht die Platten verwechseln! Sda ist oben/links und jetzt die Platte mit den Daten, sdb ist unten/rechts und wird gelöscht. Alle benötigten Daten müssen jetzt auf der oberen/linken Platte (sda) sein.

Alte Platte als zweite RAID1-Platte vorbereiten

Alte Platte (unten im Beispiel “sdb”) per fdisk löschen

~# cat|fdisk /dev/sdb d,4,d,3,d,2,d,w

Alte Platte (unten sdb) neu mit fdisk einrichten (die Partitionstabellen der RAID1-Partition müssen absolut identisch sein!) –> erste Partition (sdb1) ist SWAP (Typ 82), zweite Partition (sdb2) ist Datenbereich, sdb3 nicht benutzt, sdb4 ist Systembereich

~# cat|fdisk /dev/sdb n, p, 1, 1, 66, t, 82 n, p, 2, 131,enter n, p, 4,enter(67),enter (130) w

Platte (unten im Beispiel “sdb”) von Hand formatieren (ext3: mke2fs -j, ext2: “-j” entfällt)

~# mke2fs -j /dev/sdb2

Das gleiche mit Partition sdb4

~# mke2fs -j /dev/sdb4

Swap aktivieren

~# mkswap /dev/sdb1 ~# swapon /dev/sdb1

Neustart per Knopfdruck (reboot bzw. poweroff habe ich nicht getestet)

Aktuellen RAID1-Status ansehen und verändern

Nach reboot gemountete Platten kontrollieren:

~# df Filesystem 1k-blocks Used Available Use% Mounted on rootfs 13879 11374 1789 86% / /dev/root 13879 11374 1789 86% / /dev/loop0 6784 6784 0 100% /sys/crfs /dev/md0 1921830604 616736680 1207470536 34% /mnt/HD_a2 --> mit etwas Glück bereits erkannt (/dev/md0), kann auch noch als /dev/sda2 sein /dev/sda4 497861 10539 487322 2% /mnt/HD_a4 /dev/sdb2 1921830604 616736680 1207470536 0% /mnt/HD_b2 --> sehr wahrscheinlich noch separat /dev/sdb4 497861 10536 461621 2% /mnt/HD_b4

…und den RAID-Status ansehen (liefert nur was zurück, wenn /dev/md0 existiert):

~# cat /proc/mdstat Personalities : [linear] [raid0] [raid1] md0 : active raid1 sda2[0] 1952467712 blocks [2/1] [U_] unused devices:

–> von 2 Platten ist eine vorhanden, steht ein (F) ist diese fehlerhaft, ein (S) steht für spare-disk –> steht nur [1/1] da, muss die Anzahl der Platten erhöht werden:

1
mdadm -G /dev/md0 --raid-devices=2

Andere Platte zum RAID-Verbund dazubringen

1
mdadm --add /dev/md0 /dev/sdb2

Wenn alles passt, beginnt das System sofort mit dem Kopieren der Daten auf die neue Platte:

1
watch cat /proc/mdstat
1
2
3
4
5
6
Every 2s: cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sdb2[2] sda2[0]
1952467712 blocks [2/1] [U_]
[>....................] recovery = 0.8% (16835008/1952467712) finish=322.5min speed=100027K/sec
unused devices

Warte bis die Recovery abgeschlossen ist!. Anschließend Neustart per Knopfdruck (reboot bzw. poweroff habe ich nicht getestet)

Atuellen RAID1-Status ansehen und wenn nötig RAID1-Konfigurationsdateien kopieren

So sieht es aus, wenn alles passt:

1
cat /proc/mdstat
1
2
3
4
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sda2[0] sdb2[1]
1952467712 blocks [2/2] [UU]
unused devices:

Um nach dem Reboot das RAID-System wieder zur Verfügung zu haben, kann es nötig sein die Konfigurationsdaten zu kopieren. Wurde die obere Platte bereits als /dev/md0 gemountet, ist dieser Schritt evtl. nicht nötig. Die Dateien in den “.systemfile”-Ordnern kann man sich mal ansehen. Nur kopieren, wenn nötig! Kopieren der Dateien aus dem “/etc/tmp_raid_table” - Verzeichnis nach /mnt/HD_a4/.systemfile

~# cp /etc/tmp_raid_table/* /mnt/HD_a4/.systemfile/

Kopieren der Dateien aus dem “/etc/tmp_raid_table” - Verzeichnis nach /mnt/HD_b4/.systemfile

~# cp /etc/tmp_raid_table/* /mnt/HD_a4/.systemfile/

Ändern von EXT2 auf EXT3 (wenn mit “-j” formatiert) in web-Datei, sowie Anzahl Disks auf 2!

Probleme und Lösungen

Ein umount der Partitionen schlägt fehl, wenn fun_plug läuft

Workaround:

  • Hilfsplatte einsetzen und vom Gerät formatieren lassen (z.B. 80GB)
  • fun_plug auf dieser Platte installieren
  • fun_plug auf anderer Platte deaktivieren (Datei und ffp-Verzeichnis umbenennen) oder löschen
  • Ausschalten
  • Festplatten vertauschen
  • Einschalten