Deadwood-ai / deadwood-api

Main FastAPI application for the deadwood backend
GNU General Public License v3.0
0 stars 0 forks source link

Storage Server Backup #55

Open JesJehle opened 2 months ago

JesJehle commented 2 months ago

Der momentane Server hat Ausfalltoleranz bis zu 2 Festplatten; Keine Server Spiegelung.

D.h. Was mal auf dem server landet wird nicht wieder verschwinden. ABER: durch die produktive nutzung können wir natürlich mal was kaputt machen oder löschen etc. (z.b. wenn wir den swap kaputt machen und das OS neu installieren müssen). Dann gibt es keinen Spiegel. Dafür braucht man dann ein Backup der Daten.

Der hoster bietet das für server dieser größe nicht standardmäßig an. Wir brauchen ja auch keinen Spiegel des servers, sondern der daten. Da ist evtl. cold storage, oder sogar ne externe festplatte am ende wesentlich günstiger. Die strategie wäre dann den server neu aufzusetzen. nginx konfiguieren, docker installieren, images ziehen und dann das datenbackup einspielen.

Also wäre im extremfall, dass wirklich der gesamte server nicht mehr reagiert eine offtime von wenigen Tagen der trade-off. Wobei ein magnetstreifen-backup beim hoster (Wenn die das machen), i.d.R auch ca 1-2 Wochen braucht, bis es wieder aufgespielt ist. Überliocherweise sind die Kosten dafür halt sehr hoch

Eine eigene backup lösung, entweder in leipzig oder Freiburg wäre also am besten. @cmosig was meinst du?

mmaelicke commented 2 months ago

Es gibt auch noch backup-as-a-service lösungen. Die rücken oft nicht mit den Kosten raus und Pläne gehen oft nur bis 100GB oder 1TB. Mehr Speicherplatz dann nur auf Anfrage. Was ich bisher finden konnte, ist dass die Spannweite recht groß ist. Zwischen 0.07$ und 0.35$ / GB. Bei z.b. 2TB macht das dann zwischen 130$ - 700$. Dazu kommt dass wir für eine gescheite backup-strategie 3 backups brauchen (z.b Täglich, monatlich, jährlich oder so), was die Preise dann verdreifacht.

Der hauptvorteil von BaaS ist, dass wir uns um nichts kümmern müssen und die backups über Raid und geolocation sicher sind. (auch physische Festplatten können kaputt gehen). Außerdem bieten viele Widerherstellung von 60min etc an. Hauptnachteil, ist, dass wir wenn wir diese Art von Resilienz nicht brauchen, recht viel Geld für einen service zahlen den wir eig. nicht brauchen.

JesJehle commented 2 months ago

Wir sollten mittelfristig in freiburg einen extra server für das deadwood project haben. Dort können wir sowhol die processe laufen lassen als auch die backups des storage servers machen.

mmaelicke commented 2 months ago

Eine Strategie wäre hier, dass wir die Daten-mountpoints, also alle Datasets (ortho, tumbnail, cogs), in Freiburg spiegeln und im täglichen backup nur die Dateien runterladen, die sich geändert haben. Da gibt es auch software für. Dann können die mittel und langfristigen backups in freiburg an diesem server durchgeführt werden, zb. auf externe festplatten.

mmaelicke commented 2 months ago

als letzte Addition: Only back-of-the-envelope rechnungen. Zahlen stimmen evtl. nicht ganz genau:

2TB als archive storage bei google kosten 5$ pro Monat. Allerdings kosten die Aufrufe auch nochmal Geld. D.h. wenn wir die Daten nicht lesen (müssen) ist das nur das schreiben (das ist sehr überschaubar, paar cent / monat bei ca 100 neuen bildern pro monat zu speichern).

Problematischer ist hier die Netzwerknutzung zu schätzen: 2TB hochladen kostet einmalig ca 40$, bei 100GB neue backups pro monat sind das nochmal 2$ (also 7,5$).

Das ist sehr günstig, sogar wenn wir 3 backups anlegen (bzw. nichts löschen, dann brauchen wir nur 1 backup). Haupthürde wird hierbei sein zu wissen welche bilder gespeichert werden müssen OHNE im archive nachzuschauen (sonst kostet das ca 40$ pro VORGANG, also Tag). dh. wir müssten die checksums auf dem server, bzw lokal oder in supabase anlegen, sodass wir herausfinden was nochmal in den backup speicher muss.

cmosig commented 2 months ago

Denke wir müssen mit deutlich mehr als 2TB schon rechnen.

Ich denke das einfachste wäre ein täglicher rsync Prozess irgendwohin. Downtime bei einem recover ein paar Tagen fänd ich nicht so schlimm imo.

Nach Leipzig können wir spiegeln, so lange das ganze nicht zu groß wird. Denke da wird sowieso immer eine Kopie sein. Ist sicherlich auch keine schlechte Idee in Freiburg eine Kopie zu haben. Auch fürs processing.