Nextcloud bauen mit Jet – 64 Bit Edition #08 – RAID

Alle Befehle in diesem Tutorial werden mit Administratorenrechten ausgeführt.
Daher bitte einmal den Befehl sudo -s ausführen, um Rootrechte zu erhalten.

Um nun unsere Cloud auch noch gegen Hardwareausfälle zu schützen ist es sinnvoll wie bei unserer NAS Serie ein RAID zu verwenden. Sprich: Wir halten die Daten auf mehreren Datenträger vor. Die Vorraussetzung ist das wir mindestens über zwei gleich große und gleich schnelle Datenträger verfügen. In dieser Anleitung erzeugen wir exemplarisch ein RAID 1, es sind aber natürlich auch andere RAID Level möglich.

Dieser Artikel geht davon aus, dass die Cloud bereits mit einem Datenträger (Wie in Teil 2 gezeigt) eingerichtet wurde. Sollte der dazukommende Datenträger nicht gleich groß sein, so muss er zumindest kleiner sein, als der, der bereits im Einsatz ist. Sollte das nicht der Fall sein, so müssen alle Daten zuerst auf den neuen (größeren) Datenträger kopiert werden und das RAID wird dann mit dem kleineren begonnen. (Hintergrund ist der, dass das kleinste Gerät in einem RAID die Größe vorgibt. Sollten aber zu beginn des RAIDs nicht alle Datenträger verfügbar sein (So wie bei uns weil wir noch Daten vorhalten müssen) so muss der hinzugefügte Datenträger mindestens gleichgroß oder größer sein!)

Wir beginnen indem wir erst einmal den Raspberry Pi auf den aktuellsten Stand bringen, ggf. neustarten (Wenn das letzte Upgrade lange her war) und das Software RAID Programm MDADM installieren. Danach halten wir den Apache Webserver an, damit keine Änderungen mehr an der Cloud gemacht werden können, solange wir an den Clouddaten arbeiten und einen sauberen Stand beibehalten.

apt update
apt upgrade
apt install mdadm
systemctl stop apache2

Nun können wir unser Level 1 RAID erstellen. Ich gehe hier davon aus, dass /dev/sda euer bisheriger Datenträger ist und /dev/sdb der neu hinzugekommene (bitte mit dem Befehl lsblk ggf. nachprüfen). Da momentan daher auf /dev/sda unsere Cloud Daten sind, werden wir diesen Datenträger erst mal nicht ins RAID einbinden und dieses nur mit /dev/sdb wie folgt erstellen:

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

Jetzt sollten wir wenn wir lsblk eingeben einen neuen Datenträger /dev/md0 entdecken welcher sich unterhalb von /dev/sdb befindet.
Wenn das geklappt hat werden wir nun das RAID mit einer Partitionstabelle versehen und eine neue Partition erzeugen.

fdisk /dev/md0
#fdisk lässt sich über Buchstaben steuern. Daher diese wie unten angeben und eventuell auftretende Meldungen mit <return> bestätigen
g
n
w

Nun sollte wenn wir lsblk eingeben spätestens jetzt auch eine Partition md0p1 auftauchen. Dieser verpassen wir nun ein Filesystem, erstellen einen Ordner wo wir das RAID mounten können und tun dies auch gleich.

mkfs.ext4 /dev/md0p1
mkdir /media/temp
mount /dev/md0p1 /media/temp

Nun können wir beginnen und unsere Clouddaten vom ersten Datenträger in das RAID zu kopieren. (Pfade gehen vom Tutorial aus und müssen ggf. angepasst werden)

cp -R /media/festplatte/. /media/temp

Nun sollten all unsere Clouddaten im RAID vorhanden sein. Um zu testen ob wir alles richtig gemacht haben, hängen wir nun den ersten Datenträger und das RAID aus und hängen das RAID an der richtigen Stelle ein und setzen die Zugriffsrechte. Ebenso starten wir danach den Webserver und schauen ob unsere Cloud wieder lebt.

umount /media/temp
umount /media/festplatte
mount /dev/md0p1 /media/festplatte
chown -R www-data:www-data /media/festplatte
systemctl start apache2

In dem Zuge sollten wir nun noch unseren Startvorgang anpassen und dem Betriebssystem mitteilen, dass es zukünftig nicht mehr die Partition sda1 für die Cloud mounten soll, sondern md0p1. Ab jetzt werden wir aber die Datenträger nicht mehr per Namen sondern per UUID ansprechen. Hierzu müssen wir wie in Part 2 die ID der RAID Partition herrausfinden. Das geschiet genauso per Befehl blkid. Nun bearbeiten wir die /etc/fstab Datei und passen den vorhandenen Eintrag mit der neuen UUID an. Der Aufbau bleibt wie gehabt:

/dev/disk/by-uuid/<PARTUUID>       /media/festplatte    ext4    nofail        0       2

Sollte der Zugriff auf die Cloud klappen, so steht dem Finale nichts mehr entgegen.
Wir können daher nun endlich auch unseren ursprünglichen Datenträger (/dev/sda) dem RAID hinzufügen.

mdadm --manage /dev/md0 --add /dev/sda

Nun sollte der Datenträger zum RAID gehören. Dies lässt sich über lsblk einsehen. Allerdings werden beide Datenträger erst noch synchronisiert. Noch genauer sehen wir es über mdadm --detail /dev/md0. Oder auch mit cat /proc/mdstat.
Hier sehen wir auch den Fortschritt des synchronisierens der beiden Datenträger. Der Pi sollte nun solange durchlaufen bis beide Datenträger als synchron angezeigt werden.

Schreibe einen Kommentar