Nextcloud bauen mit Jet #10

      4 Kommentare zu Nextcloud bauen mit Jet #10
https://www.youtube.com/watch?v=AdqKp13g9Vs

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.

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 uns mit sudo -s Adminrechte veschaffen und die Cloud mit systemctl stop apache2 außer Betrieb nehmen.
Nun bringen wir erst mal den Pi auf den neusten Stand und installieren das Programm fĂŒr unser Software RAID

apt update
apt upgrade
apt install mdadm

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. 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.

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

In dem Zuge sollten wir nun noch unseren Startvorgang anpassen und Raspbian mitteilen, dass es zukĂŒnftig nicht mehr die Partition sda1 fĂŒr die Cloud mounten soll, sondern md0p1. Daher bearbeiten wir die /etc/fstab Datei und passen den vorhandenen Eintrag wie folgt an:

/dev/sda1	/media/festplatte	ext4	defaults	0	0
zu
/dev/md0p1	/media/festplatte	ext4	defaults	0	0

Nun können wir testen und die Cloud mit systemctl start apache2 wieder starten. Sollte der Zugriff auf die Cloud klappen, so steht dem Finale nichts mehr entgegen.
Wir können daher nun endlich auch unseren ersten DatentrĂ€ger 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.
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.

4 thoughts on “Nextcloud bauen mit Jet #10

  1. seeks

    Hallo,

    ich habe eine kleine frage, im betrieb wurde ein stick abgezogen. nun steht bei mdadm details der status removed. bekomme ich den stick wieder in den raid?

    danke, gruß seeks.

  2. Harald

    Hallo Jet ich schon wieder ;-),
    habe mich nun endlich aan deine Anleitung gewagt und gleich mal eine Frage besser gesagt hÀnge ich hier:
    Ich bin deine Anleitung Schritt fĂŒr Schritt durch und komme jetzt nicht mehr weiter.
    Was habe ich falsch gemacht?
    Kannst du mir hier raushelfen möchte nichts zerstören Danke

    root@Nextcloud:/media# mdadm –detail /dev/md0
    /dev/md0:
    Version : 1.2
    Creation Time : Thu Nov 19 15:57:22 2020
    Raid Level : raid1
    Array Size : 976630464 (931.39 GiB 1000.07 GB)
    Used Dev Size : 976630464 (931.39 GiB 1000.07 GB)
    Raid Devices : 2
    Total Devices : 1
    Persistence : Superblock is persistent

    Intent Bitmap : Internal

    Update Time : Thu Nov 19 18:27:10 2020
    State : clean, degraded
    Active Devices : 1
    Working Devices : 1
    Failed Devices : 0
    Spare Devices : 0

    Consistency Policy : bitmap

    Name : Nextcloud:0 (local to host Nextcloud)
    UUID : 5c303a71:92578752:d0150389:a20e77b5
    Events : 9863

    Number Major Minor RaidDevice State
    0 8 16 0 active sync /dev/sdb
    – 0 0 1 removed
    root@Nextcloud:/media# mdadm –manage /dev/md0 –add /dev/sda
    mdadm: /dev/sda not large enough to join array

    1. jet0jlh Post author

      Der letzte Satz sagt eigentlich schon alles aus. Der DatentrĂ€ger sda ist nicht groß genug. Eine Spiegelung ist nur möglich wenn der zweite DatentrĂ€ger gleichgroß oder grĂ¶ĂŸer ist. Ich vermute das ist bereits der Fehler

Schreibe einen Kommentar