1 Domain - 2 Server

projektcloud

New Member
Guten Tag,

ich möchte gerne meine Nextcloud verfügbarer machen, indem ich einen 2. Server (Raspberry) an einem anderem Ort mit einer anderen Internetleitung aufstelle. Das ganze abzugleichen ist eine andere Baustelle. Hier soll es mir darum gehen, ob DynDNS-Service grundsätzlich die Möglichkeit anbieten kann im Falle eines Ausfalls von einem Server die Anfrage auf eine andere IP (der. des 2. Servers) umzuleiten?

Wie würde sich dieses Feature nennen? Bzw. welches wäre so ein Server?

Viele Grüße
 

marce

Well-Known Member
auf was läuft die NextCloud denn jetzt gerade?

Was Du suchst nennt sich FailoverIP - die "technische Umsetzung" davon kann man auf viele Arten anstellen, kommt halt jeweils auf die vorhandene Infrastruktur an...
 

projektcloud

New Member
Zur Zeit läuft die Cloud nur auf einem Raspberry 3B ein 2. soll hinzu kommen. Die Server haben keine feste IP sondern ich nutze einen DynDNS Service.

Dieses Failover sollte dann schon automatisch passieren
 
Last edited by a moderator:

danton

Debian User
Wenn du das ganze per DNS abbilden willst, dann wirst du mit einer kurzen Ausfallzeit (ein paar Minuten) leben müssen. Erschwerend kommt hinzu, dass bei DynDNS mehrere IPs für den gleichen Eintrag i.d.R. nicht machbar sind, so dass DNS-Roundrobin als Methode ausfällt (wäre auch nicht zwingen die zuverlässigste gewesen).
Eine Möglichkeit wäre, mit zwei verschiedenen DynDNS-Adressen zu arbeiten, die den jeweiligen RasPi eindeutig identifizieren. Dazu dann einen CNAME, der auf einen der beiden DynDNS-Enträge zeigt. Dann brauchst du noch eine Logik, die überprüft, ob dein Nextcloud unter dieser DynDNS-Adresse noch erreichbar ist und falls nicht, den CNAME auf die andere DynDNS-Adresse umbiegt. Da kommt es dann drauf an, wie weit du das automatisieren willst oder ob es evtl. ausreicht, wenn du den Eintrag manuell umbiegst, wenn du merkst, dass ein Server nicht erreichbar ist.
Eine andere Möglichkeit wäre, das ganze nicht rein per DNS zu realisieren, sondern z.B. über einen kleinen vServer im Internet, der die Weiterleitung auf die jeweils aktive Nextcloud übernimmt - auch hier gibt es mehr und weniger aufwendige Möglichkeiten, z.B. eine einfache HTTP-Weiterleitung auf die gerade aktive DynDNS-Adresse ober über eine Load-Balancer-Software (und diverse Lösungen, die dazwischen liegen).
 

greystone

Member
Ich würde sagen, dass das ein Feature ist, was Du ohne wenigstens etwas Geld in die Hand zu nehmen nicht wirklich toll hinbekommst.

Aber irgendwie ein automatisches Failover via DNS kann man sich schon skripten, wie die Übernahmezeit da dann ist, kann ich Dir auch nicht sagen(1 Sekunde? 1 Minute? 1 Stunde? 1 Tag?) :D (Google sagt, dass es Erfahrungsberichte darüber gibt, dass man das mit niedrigen Ansprüchen durchaus brauchbar verwenden kann.)

Skripten könnte so gehen:

  1. Beide PIs haben jeweils einen eigenen DynDNS-Hostname
  2. Beide PIs prüfen regelmässig den anderen DynDNS-Hostnamen(d. h. den Dienst auf dem anderen PI und die Internetverbindung(ping 8.8.8.8))
  3. Hat ein Pi keine Verbindung zum anderen, aber zum Internet konfiguriert er den produktiven DynDNS-Eintrag auf seine Public IP.

Ist halt die Gefahr da, dass wenn irgendwas nicht passt(z. B. weil eine Netzwerkstörung verhindert, dass sich beide Pis gegenseitig sehen), dass dann beide Server PingPong spielen und sich endlos gegenseitig die DynDNS-Einträge umbiegen.

Mit der von Danton erwähnten Methode mit zusätzlichem VServer und Nginx ReverseProxy drauf hättest Du damit ein recht simples Failover(passiver Failover: Request schlägt fehl -> Nächster request geht auf reserveserver).
 
Last edited by a moderator:

projektcloud

New Member
also mit ein paar minuten Ausfallzeit könnte ich gut leben. Greystone, könntest du bitte noch genauer beschreiben wie so ein Script aussehen würde?

Ich bin zur Zeit bei Spdyn und den Dienst habe ich in der Fritzbox eingerichtet.
 

marce

Well-Known Member
Beide Raspis liegen bei Dir zu Hause rum? Und falls einer stirbt soll der andere übernehmen?

... klingt entweder nach einem Job für Heartbeat - oder setz einfach mit einem kleinen Monitor-Script auf dem Failover-PI das Portforwarding in der Fritzbox um. Google findet einiges zum Thema "FritzBox API", z.B. auch https://github.com/franciscogouveia/node-fritzbox
 

greystone

Member
Beide Raspis liegen bei Dir zu Hause rum? Und falls einer stirbt soll der andere übernehmen?
Wenn das so wäre, dann wäre es wirklich einfach. Einfach UCARP nehmen. Das ist ein sehr simples IP-Failover.

Aber es sollen ja verschiedene Internetzugänge sein. s. o.

projektcloud said:
Greystone, könntest du bitte noch genauer beschreiben wie so ein Script aussehen würde?
Könnte ich. Tue ich aber nicht. Das ist mir definitiv zu viel Arbeit, da jetzt tief mit Dir ins Skripting einzusteigen. Es ist auch vermutlich wesentlich komplexer, als Du es Dir vorstellst. Alleine wie Du die Frage stellst, sagt mir, dass Du da noch wenig bis gar nichts gemacht zu haben scheinst. Aber falls es Dich wirklich interessiert und Du da z. B. in Shellskripting einsteigst, wird Dir hier sicher der ein oder andere - inkl. mir - helfen. Dich da aber durch jede Zeile von vielleicht 20-200 Zeilen Shell-Code zu führen, das ist mir zu viel. Da habe ich das in einem Bruchteil der Zeit selbst geschrieben, aber ich will ja so etwas nicht haben, sondern Du.

Aber vielleicht findet sich ja noch eine einfachere Lösung.
 
Last edited by a moderator:

marce

Well-Known Member
Aber vielleicht findet sich ja noch eine einfachere Lösung.
Auslagern des NextCould-Services auf einen vernünftigen Server in einem RZ - Dank der gigantischen Netzwerk- und USB-Performance eines RaspPi dürfte das bei einer vernünftigen Internetanbindung sogar "von zu Hause aus" im Zugriff schneller sein...

(und für den Kaufpreis der beiden PIs samt Festplatten u.s.w. kann man einen günstigen VServer > 1 Jahr betreiben - und selbst ein Dampbetriebener Zuse-Linux-Server mit aber echter Serverhardware drunter (und wenn's nur 1 V-Kern und 1 GB wäre) mit ein bisserl Storage dürfte die Gesamtperformance eines PI mehrfach überbieten)
 
Last edited by a moderator:

projektcloud

New Member
ja das ist richtig mit skripting habe ich mich bisher noch nicht wirklich beschäftigt.

(und für den Kaufpreis der beiden PIs samt Festplatten u.s.w. kann man einen günstigen VServer > 1 Jahr betreiben - und selbst ein Dampbetriebener Zuse-Linux-Server mit aber echter Serverhardware drunter (und wenn's nur 1 V-Kern und 1 GB wäre) mit ein bisserl Storage dürfte die Gesamtperformance eines PI mehrfach überbieten)
auch das ist richtig aber mit der Lösung fühle ich mich nicht wohl.

was ich mir vorstellen könnte, aber da bin ich hier wohl in der falschen Rubrik. Wäre es ein Vserver anzumieten der das Routing übernimmt und Raspberrys anpingt und sobald der aktive Raspberry nicht mehr erreichbar ist, auf den anderen umstellt. Wäre das wohl einfacher zu realisieren?
 

marce

Well-Known Member
Wäre das wohl einfacher zu realisieren?
Nein.

So wirklich beide PIs bei Dir zu Hause liegen ist eine lokale Failover-Lösung (egal wie, heartbeat, UCARP, ping a.b.c.d.e || ip up, FritzBox-Scripting, ...) am einfachsten umzusetzen.
 

projektcloud

New Member
also, wie gesagt die beiden PIs sind nicht im selben Netzwerk da es ja auch darum geht einen Ausfall seitens des ISP aufzufangen. Daher ist dann ein VPN ja wohl auch nutzlos!?
 

user09

New Member
Einfach auf beiden Geräten ein Cronjob-Programm laufen lassen, der die Hauptdomain (z.B. nextcloud.spdyn.de) immer entsprechend anpasst.
Ein erster Ansatz für ein Programm wäre:

Code:
<?php
//quick and dirty,untested,no error handling 
$thisdevice = "server1.spdyn.de";
$otherdevice =  "server2.spdyn.de";
$fp = @fsockopen($otherdevice, 443);
if (!$fp) {
	$ip = gethostbyname($thisdevice);
	file_get_contents('https://update.spdyn.de/nic/update?hostname=nextcloud.spdyn.de&myip='.$ip.'&user=<username>&pass=<password>');
}
Natürlich kann man dies noch deutlich besser gestalten, aber vielleicht hilft es dir weiter.
 
Last edited by a moderator:
Top