Schlagwort-Archive: Nextcloud

Erste Schritte mit ZFS auf Linux Ubuntu 20.04 LTS

Ich habe schon länger mit ZFS (an der Oberfläche) zu tun, da ich Privat ein FreeNAS einsetze. Jetzt wollte ich ZFS mal auf Linux einsetzen und testen und was soll ich sagen: Ich bin begeistert!

Dieser Blogeintrag soll einen ersten Einstieg bieten und für mich als Dokumentation dienen ;).

Warum ZFS? Ich habe mir in der Hetzner-Serverbörse einen kleinen Storage-Server für eine Nextcloud geklickt:

  • 2x SSD 512GB (Für Betriebssystem, Webserver und die Nextcloud-Daten)
  • 2x HDD 3TB (Für die abgelegten Daten der Nextcloud)

Installation Grundsystem

Das Grundsystem ist ein Standard Ubuntu 20.04 LTS, welches auf den SSDs (in einer RAID0 Konfiguration) installiert wurde.

Installation und Konfiguration ZFS

Erst mal ZFS installieren:

apt install zfsutils-linux

Nun möchte ich die zwei HDDs (/dev/sda und /dev/sdb) als zfs-mirror installieren:

zpool create storage mirror /dev/sda /dev/sdb

Fertig :). Ab jetzt kann man den Mirror unter /storage/ verwenden.

Da ich den Server zusammen mit ein paar Freunden verwende, möchte ich jedem sein eigenes Dataset. Dataset ist der generische Begriff für ein ZFS-Dateisystem, Volume, Snapshots oder Klone. Jedes Dataset besitzt einen eindeutigen Namen in der Form poolname/path@snapshot. Die Wurzel des Pools ist technisch gesehen auch ein Dataset (Weitere Infos: https://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/zfs-term.html)

zfs create storage/[name]

Anstelle von [name] einfach den jeweiligen Namen des Datasets angeben. Jetzt kann optional noch die Kompression aktiviert werden:

zfs set compression=lz4 storage/[name]

lz4 Compression kann ohne größere Geschwindigkeitsverluste für Lesen/Schreiben (bei modernen CPUs) eingesetzt werden. Die Anzeige der Compression-Ratio kann über folgenden Befehl erreicht werden:

zfs get compression,compressratio storage/[name]

Jeders Dataset soll eine quota bekommen:

zfs set quota=1G storage/[name]

Fertig ist die Config. Weitere Informationen könnt ihr hier finden: https://www.42u.ca/2016/11/23/zfs-cheat-sheet/#:~:text=Dataset%20%E2%80%93%20This%20is%20the%20file,on%20top%20of%20the%20zpool.&text=If%20you%20were%20to%20think,you%20would%20use%20a%20zvol.

Automatischen Scrub aktivieren

Bei einem ZFS scrub werden die Festplatten auf Fehler geprüft und eventuelle defekte Dateien repariert. Man sollte den Scrub regelmäßig (etwa einmal im Monat durchführen). Dazu einfach einen einen Eintrag in die Crontab (crontab -e) schreiben:

0 2 1 * * /sbin/zpool scrub files

Der Status des letzten Scrub ist über den Befehl

zpool status

zu erhalten.

Threema Safe Backup mit Nextcloud WebDAV Funktion

Threema ist schon ein sehr toller Messenger, aber leider gibt es in Sachen Backup noch viel zu tun. Ein Schritt in die richtige Richtung ist der Threema Safe. Damit lassen sich grundlegende Einstellungen sichern. Unter anderem:

  • Threema-ID
  • Profildaten
  • Kontakte
  • Einstellungen

Was allerdings nicht gespeichert wird:

  • Chatverläufe
  • Mediendaten

Threema bietet für Threema Safe verschiedene Optionen. So kann man die Daten in der Cloud von Threema speichern, oder in einem eigenen Webdav-Verzeichnis. Da viele die Threema nutzen ausreichend paranoid sind um fremden Cloud-Speichern nicht zu verwenden und auch eine eigene Nextcloud betreiben ist die zweite Option das Mittel der Wahl.

Threema Safe in der eigenen Nextcloud

Die Nextcloud bietet alles, was Threema Safe benötigt. Eine Anleitung wie man dies einrichtet ist im Folgenden zu finden.

Serviceaccount Anlegen

Zunächst einmal sollte ein Service-Account für Threema angelegt werden. Die Threema-App benötigt Login-Daten für das Speichern des Backups. Hierfür sollte man wenn möglich nicht die Daten seinen Haupt-Accounts verwenden.

Neuen Account anlegen: Als Administrator einfach oben rechts auf den Benutzer klicken -> Benutzer -> Neuer Benutzer

Hier einfach einen Benutzernamen (z.B. „threema“ mit einem sicheren Passwort erzeugen. Passwort und Benutzername werden später benötigt.

Ordner-Sturktur anlegen

Threema verlangt eine spezielle Ordner-Sturktur auf dem Server. Legt einen beliebigen Ordner für die Backups an (möglichst ohne Leerzeichen). Innerhalb dieses Ordners MUSS ein Ordner namens „backups“ vorhanden sein. Außerdem muss eine Datei namens „config“ angelegt werden, mit folgendem bzw. ähnlichem Inhalt:

{
   "maxBackupBytes": 52428800,
   "retentionDays": 180
}

maxBackupBytes legt dabei die maximale Backup-Größe fest, retentionDays wie lange dieses Backup aufgehoben werden soll. Die Ordnerstruktur sollte danach etwa so aussehen:

Threema Safe Ordnerstruktur in der Nextcloud (Web-Ansicht)

Threema Safe Konfiguration in der App einstellen

Das schlimmste ist erledigt. Nun nur noch die Einstellungen in die Threema-App übernehmen:

Burger-Menü (oben Links) -> Meine Backups -> Threema Safe

Webdav-Verzeichnis: Das Nextcloud-Verzeichnis kann mit WebDAV über folgenden Link erreicht werden:

https://cloud.website.de/remote.php/dav/files/username/subfolder

Dabei müssen natürlich die URL zur Cloud, der Benutzername und der Subfolder angepasst werden. Als Beispiel meine Konfiguration:

https://cloud.timoswebsite.de/remote.php/dav/files/threema/threema-safe

Username und Passwort wie von euch im ersten Schritt gewählt. Werden die Einstellungen gespeichert fragt Threema noch nach einem Passwort mit dem das Backup auf dem Server verschlüsselt werden soll.

Nun sollte in der Threema-App folgende Ansicht sichtbar sein:

Threema Safe Einstellungen auf dem Handy mit der Nextcloud

Abschließende Hinweise

Threema speichert ab jetzt selbstständig die oben genannten Daten etwa alle 24 Stunden. Aber vorsicht: Dies ist kein vollständiges Backup!

Nach wie vor werden keine Gesprächsverläufe bzw. Mediendateien gesichert. Diese müssen weiterhin über „Meine Backups -> Daten-Backup“ erstellt und vom Handy gesichert werden. Hier muss Threema definitiv noch nacharbeiten.