HowTo: Nextcloud auf Virtuellem Server (QEMU) installieren

Nextcloud-Logo [1]

Dieses HowTo beschreibt Installation und Konfiguration eines virtuellen Nextcloud-Servers.

Vorüberlegungen / Vorarbeiten

Die Installation auf einem Host hat den Vorteil, dass die Festplatten als (zwar große) Dateien zur Verfügung stehen und somit relativ einfach auf eine externe Festplatte gesichert werden können. So kann nach einem Crash das Gastsystem relativ schnell neu aufgesetzt werden. Die Programminstallation kann einfach von einer Datensicherung aus zurückgespielt werden. Mehr dazu unter “Nach dem Crash“.

Diese Beschreibung verwendet QEMU mit KVM als Virtualisierungslösung. QEMU ist schnell und zuverlässig.

Damit bei erhöhtem Speicherbedarf schnell und einfach zusätzliche Festplattenkapazität zur Verfügung gestellt werden kann, wird auch auf dem Host und auf den darauf installierten Servern LVM eingesetzt.

Für den Nextcloud-Server werden mehrere virtuelle Festplatten angelegt:

  • die erste HD nimmt das Betriebssystem, die Dienste (Apache, PHP, MariaDB) und die Cloud selbst auf (Datei: ncserver.qcow2). Diese Datei wird einmal pro Woche auf eine externe HD gesichert.
  • Die Clouddaten werden auf einem Cluster von virtuellen Festplatten (ncserver-1.qcow2, ncserver-2.qcow2, ….) installiert; diese sollten max. 450 GB groß sein, so dass sie bei Bedarf auch auf mehrere kleinere externe Festplatten zwischengelagert werden können. Für die Grundinstallation gehe ich von 3 virtuellen Festplatten aus.

Die Datensicherung erfolgt auf externe Festplatten:

  • (—MISSING-INFO—)

Domainname und DynDNS einrichten

  • Beantragen Sie bei einem Provider einen Domainnamen
  • Falls Sie keine feste IP erhalten, müssen Sie zusätzlich DynDNS beantragen: DynDNS sorgt dafür, dass die Domainserver des Internets automatisch informiert werden, wenn Ihr Provider Ihre IP ändert.

Sie müssen auf Ihrem Router DynDNS konfigurieren:

Virtualisierung

Soll der Server als Virtueller Server betrieben werden, so müssen Sie zuerst einen Host einrichten. Eine Beschreibung wie man dies macht finden Sie hier.

Ubuntu-Server installieren

Aktuell wird für die Nextcloud Ubuntu-22-04 (LTS) als Betriebssystem empfohlen.

Installation unter QEMU

Laden Sie die ISO-Datei für den UBUNTU 22.04 Server herunter (Bittorrent verwenden).

Diese wird mittels scp auf den Host kopiert:

> ssh <Benutzer>@vhost 
> mkdir Downloads
> exit
> scp ubuntu-22.04-live-server-amd64.iso <Benutzer>@vhost:~/Downloads

Wechseln Sie nun auf den Host (evt. Bildschirm und Tastatur anschließen) und öffnen Sie den virt-manager (Virtuelle Maschinenverwaltung):

Neue virtuelle Maschine anlegen; dabei das hochgeladene Installationsfile angeben. Die Installation startet nach dem Anlegen der virtuellen HDs automatisch. Achten Sie darauf, dass die Netzwerkbrücke vewendet wird (ist der Host korrekt eingerichtet, sollte diese Einstellung automatisch geschehen).

Bitte beachten Sie:

  • LVM einrichten (das ist bei der Serverinstallation Standard)
  • Ethernet kann über DHCP verwaltet werden, wenn am Router eine feste IP eingestellt wird. Ansonsten kann man dem Rechner bei der Installation auch intern eine feste IP zuweisen.
  • SSH-Server einrichten
  • zweiten User mit Adminrechten anlegen (als Notfallzugang, falls das Passwort vergessen wurde)
  • Updates durchführen

Feste IP und Portfreigaben

Da es sich um einen Server handelt muss eine feste IP vergeben werden. Dies kann im Gerät selbst oder auch im DHCP-Server eingestellt werden:

Enstellungen im Router für eine feste IP

Soll die Cloud von außen (also vom Internet aus) zugänglich sein, müssen auch noch Portfreigaben für die Postes 80 (hhtp) und 443 (https) im Router eingerichtet werden :

Abspecken

  • unattended-upgrades entfernen

Virtuelle Datenlaufwerke anlegen

Für die Nextcloud-Daten werden mehrere virtuelle Festplatten angelegt und diese mittels LVM zu einer großen HD verbunden. Ich habe mich für 3 zusätzliche HD mit je 450 GB Kapazität entschieden. Die Idee dabei war, dass mehrere “kleinere” Dateien bei Bedarf einfacher zu kopieren sind, wie eine große.

Auf dem Host werden diesen mit “Gerät hinzufügen” erzeugt (3x).

Auf dem Nextcloud-Server stehen diese nun unformatiert unter /dev/vdb, /dev/vdc und /dev/vdd zur Verfügung. Mit den folgenden Schritten erzeugt man dann ein “Logisches Volume”, welches mittels “mount” ins Dateisystem eingebunden werden kann:

> sudo pgcreate /dev/vdb /dev/vdc /dev/vdd
> sudo vgcreate ncdata-vg /dev/vdb /dev/vdc /dev/vdd
> sudo lvcreate -Ldate-lv 2G -n ncdata-lv ncdata-vg
> sudo mkfs.ext4 /dev/ncdata-vg/ncdata-lv
> sudo lvextend --resizefs -l +100%FREE /dev/ncdate-vg/ncdata-lv

Mit pvcreate erzeugt man einen für LVM ppassenden Bootsektor, mit vgcreate werden die einzelnen Festplatten zu einer Gruppe zusammengefasst und mit lvcreate wird ein zunächst kleines (2G) “Logisches Volume” (einer Partition entsprechend) erzeugt. mkfs.ext4 formatiert dieses und mit lvextend wird es so erweitert, dass es den gesamten Speicherplatz (+100%FREE) belegt.

Nun wird das Volume probehalber gemounted:

> sudo mkdir /mnt/NCDATA
> sudo mount /dev/ncdata-vg/ncdata-lv /mnt/NCDATA

Erfolgreich ? Dann können Sie diesen Eintrag in /etc/fstab hinzufügen:

/dev/ncdata-vg/ncdata-lv /mnt/NCDATA ext4 defaults 0 1

Die Nextcloud einrichten

Um mit der Installation fortzufahren, bitte auf den Button unten klicken. Es folgen noch Tipps und Vorgehensweisen für besondere Situationen

Tipps und Tricks

Datenbereich vergrößern

Achten Sie darauf, dass auf dem Host genügend freier Speicher zur Verfügung steht. Ist der Speicherbedarf des Hosts fast erschöpft , sollte eine zweite Festplatte eingebaut und dem LVM-Cluster hinzugefügt werden.

Hinzufügen einer weiteren HD auf dem Host

Der aktuelle Ausbau auf dem Host kann mit lsblk festgestellt werden:

Es gibt eine HD / SSD /dev/sda; diese ist in drei Partitionen unterteilt, wobei /dev/sdb3 als einziges Physisches Laufwerk zur LVM-Gruppe ubuntu-vg gehört. Letztere enthält das Logische Volume (entspricht einer Partition) ubuntu-lv, welches auf / gemountet ist (Wurzeldateisystem).

Wird eine weitere (interne) HD eingebaut, erscheint sie in dieser Liste als zusätzliche Zeile mit der Bezeichnung /dev/sdb (kontrollieren !). Diese HD muss nun initialisiert und zur Gruppe ubuntu-vg hinzugefügt werden. Anschließend kann das Logische Volume ubuntu-lv erweitert werden:

> sudo pvcreate /dev/sdb
> sudo vgextend ubuntu-vg /dev/sdb
> sudo lvextend --resizefs -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

Hinzufügen weiterer virtueller Festplatten:

Soll später die Festplattenkapazität nicht mehr ausreichen, kann diese folgendermaßen erweitert werden:

  • Hinzufügen einer weiteren virtuellen Festplatte mit virsh oder dem virt-manager auf dem Host, wie oben beschrieben.
  • Mit lsblk auf den Nextcloud-Server die Laufwerksbezeichnung kontrollieren (im Beispiel unten ist die neue HD /dev/vde):
> sudo pgcreate /dev/vde
> sudo vgextend ncdata-vg /dev/vde
> sudo lvextend --resizefs -l +100%FREE /dev/ncdate-vg/ncdata-lv

Nach dem Crash

Host neu aufsetzen

Nach einem Systemcrash muss zuerst der Host neu aufgesetzt werden.

Datensicherung des Nextcloud-Servers zurückkopieren.

Einzelnachweise

[1]Von https://nextcloud.com/ – https://nextcloud.com/wp-content/themes/next/assets/img/common/logo_nextcloud.svg, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=50141243