{"id":86904,"date":"2020-07-01T07:42:30","date_gmt":"2020-07-01T05:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud"},"modified":"2020-07-01T07:42:30","modified_gmt":"2020-07-01T05:42:30","slug":"kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","title":{"rendered":"Wie GitLab bei der Sicherung gro\u00dfer NextCloud-Speicher hilft","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo, Habr!<\/p>\n<p><\/p>\n<p>Heute m\u00f6chte ich \u00fcber unsere Erfahrungen mit der Automatisierung der Datensicherung gro\u00dfer Nextcloud-Speicher in verschiedenen Konfigurationen berichten. Ich bin CTO bei \u201eMolniya AK\u201c, wo wir uns mit dem Konfigurationsmanagement von IT-Systemen besch\u00e4ftigen, f\u00fcr die Datenspeicherung nutzen wir Nextcloud, einschlie\u00dflich verteilter Struktur mit Sicherung.<\/p>\n<p><\/p>\n<p>Die Probleme ergeben sich aus den Besonderheiten der Installationen, da es eine gro\u00dfe Datenmenge gibt. Die Versionierung, die Nextcloud bietet, sowie die Sicherung, subjektive Gr\u00fcnde und mehr f\u00fchren zu vielen Duplikaten.<\/p>\n<p><\/p>\n<h2 id=\"predystoriya\">Hintergrund<\/h2>\n<p><\/p>\n<p>Bei der Administration von Nextcloud wird das Problem einer effektiven Sicherung besonders wichtig, die unbedingt verschl\u00fcsselt werden muss, da die Daten wertvoll sind.<\/p>\n<p><\/p>\n<p>Wir bieten Optionen zur Speicherung von Backups bei uns oder beim Kunden auf separaten Maschinen, die nicht mit Nextcloud verbunden sind, was einen flexiblen, automatisierten Ansatz f\u00fcr das Management erfordert.<\/p>\n<p><\/p>\n<p>Es gibt viele Kunden mit unterschiedlichen Konfigurationen, jeder auf seinen eigenen Plattformen mit seinen eigenen Besonderheiten. Hier passt die Standardmethode, wenn die gesamte Plattform dir geh\u00f6rt und Backups aus dem Cronjob erstellt werden, schlecht.<\/p>\n<p><\/p>\n<p>Lassen Sie uns zun\u00e4chst die Eingangsdaten anschauen. Wir ben\u00f6tigen:<\/p>\n<p><\/p>\n<ul>\n<li>Skalierbarkeit, entweder eine oder mehrere Knoten. F\u00fcr gr\u00f6\u00dfere Installationen verwenden wir MinIO als Speichersystem.<\/li>\n<li>\u00dcber Probleme beim Backup-Management informiert zu werden.<\/li>\n<li>Backups m\u00fcssen bei den Kunden und\/oder bei uns gespeichert werden.<\/li>\n<li>Probleme schnell und einfach beheben k\u00f6nnen.<\/li>\n<li>Kunden und Installationen unterscheiden sich stark voneinander \u2013 eine Einheitlichkeit ist nicht zu erreichen.<\/li>\n<li>Die Wiederherstellungsgeschwindigkeit muss in zwei Szenarien minimal sein: vollst\u00e4ndige Wiederherstellung (Disaster Recovery), und eine Datei wurde versehentlich gel\u00f6scht.<\/li>\n<li>Die Funktion zur Deduplizierung ist unabdingbar.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Wie GitLab bei der Sicherung gro\u00dfer NextCloud-Speicher hilft\" src=\"\/wp-content\/uploads\/2020\/07\/1a0048e3295fef94ddca28e50612e3cb.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>F\u00fcr die Verwaltung der Backups haben wir GitLab integriert. Weitere Informationen dazu im Untertitel. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Zweifellos sind wir nicht die Ersten, die dieses Problem angehen, aber wir glauben, dass unser praktischer, hart erarbeiteter Erfahrungsschatz von Interesse sein kann, und wir sind bereit, ihn zu teilen.<\/p>\n<p><\/p>\n<p>Da in unserem Unternehmen eine Open-Source-Politik gilt, suchten wir eine L\u00f6sung mit offenem Quellcode. Im Gegenzug teilen wir unsere Entwicklungen und stellen sie zur Verf\u00fcgung. Beispielsweise gibt es auf GitHub <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/molnia-com\/nextcloud-safe-trash\">unser Plugin f\u00fcr Nextcloud.<\/a><\/noindex>, den wir unseren Kunden bereitstellen, um die Datensicherung im Falle von versehentlichem oder absichtlichem L\u00f6schen zu verst\u00e4rken.<\/p>\n<p><\/p>\n<h2 id=\"sredstva-bekapirovaniya\">Backup-L\u00f6sungen<\/h2>\n<p><\/p>\n<p>Wir haben mit der Auswahl einer Backup-L\u00f6sung begonnen, um Methoden zur Probleml\u00f6sung zu finden.<\/p>\n<p><\/p>\n<p>Das klassische tar + gzip funktioniert schlecht \u2013 die Daten werden dupliziert. Inkrementelle Backups enthalten oft nur sehr wenige tats\u00e4chliche \u00c4nderungen, und ein gro\u00dfer Teil der Daten innerhalb einer Datei wiederholt sich.<br \/>\nEs gibt ein weiteres Problem \u2013 die Redundanz des verteilten Datenspeichers. Wir verwenden MinIO, und dessen Daten sind im Prinzip redundat. Entweder sollten wir Backups direkt \u00fcber MinIO erstellen \u2013 was es belastet und die gesamte Infrastruktur zwischen dem Dateisystem beansprucht, oder was nicht weniger wichtig ist: Es besteht das Risiko, Teile von Buckets und Metainformationen zu vergessen. Alternativ k\u00f6nnte deduplizierte Sicherung zum Einsatz kommen.<\/p>\n<p><\/p>\n<p>Es gibt Open-Source-Backup-L\u00f6sungen mit Deduplizierung (es gab Artikel dar\u00fcber auf Habr\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449282\/\">einem Artikel<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/420055\/\">) und unsere Finalisten sind<\/a><\/noindex>Borg <noindex><a rel=\"nofollow\" href=\"https:\/\/borgbackup.readthedocs.io\/en\/stable\/\">. Unten erl\u00e4utern wir den Vergleich der beiden Anwendungen, aber zun\u00e4chst m\u00f6chten wir erkl\u00e4ren, wie wir das gesamte Schema organisert haben.<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/restic.net\/\">Restic<\/a><\/noindex>Verwaltung der Backup-Erstellung<\/p>\n<p><\/p>\n<h2 id=\"upravlenie-sozdaniem-rezervnyh-kopiy\">Verwaltung der Erstellung von Sicherungen<\/h2>\n<p><\/p>\n<p>Borg und Restic sind gut, aber keines der beiden Produkte verf\u00fcgt \u00fcber einen zentralen Verwaltungsmangel. F\u00fcr das Management und die Kontrolle haben wir ein Tool ausgew\u00e4hlt, das bereits bei uns integriert ist und ohne das wir unsere Arbeit, einschlie\u00dflich der Automatisierung, nicht denken k\u00f6nnen \u2013 das bekannte CI\/CD-Tool GitLab.<\/p>\n<p><\/p>\n<p>Die Idee ist wie folgt: Auf jedem Node, der Nextcloud-Daten speichert, wird ein gitlab-runner installiert. Der Runner f\u00fchrt nach einem Zeitplan ein Skript aus, das den Backup-Prozess \u00fcberwacht, und dieses Skript startet Borg oder Restic.<\/p>\n<p><\/p>\n<p>Was haben wir erreicht? Feedback zu den Ausf\u00fchrungen, eine einfache Kontrolle der \u00c4nderungen und detailierte Informationen im Falle eines Fehlers.<\/p>\n<p><\/p>\n<p>Hier <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/molnia-com\/backup-by-runner\">hier auf GitHub<\/a><\/noindex> wir haben Beispiel-Skripte f\u00fcr verschiedene Aufgaben bereitgestellt, und letztendlich haben wir es nicht nur f\u00fcr das Backup von Nextcloud, sondern auch f\u00fcr viele andere Dienste integriert. Dort befindet sich auch der Scheduler, falls man ihn nicht manuell einstellen m\u00f6chte (und wir m\u00f6chten das nicht) sowie die .gitlab-ci.yml.<\/p>\n<p><\/p>\n<p>In der GitLab-API gibt es bisher keine M\u00f6glichkeit, das CI\/CD-Timeout zu \u00e4ndern, und das ist ziemlich kurz. Es muss auf zum Beispiel erh\u00f6ht werden auf <code>1 Tag<\/code>.<\/p>\n<p><\/p>\n<p>Zum Gl\u00fcck kann GitLab nicht nur bei einem Commit, sondern auch nach Zeitplan gestartet werden, genau das, was wir brauchen.<\/p>\n<p><\/p>\n<p>Jetzt zum Wrapper-Skript.<\/p>\n<p><\/p>\n<p>Wir haben folgende Anforderungen an dieses Skript gestellt:<\/p>\n<p><\/p>\n<ul>\n<li>Soll sowohl als Runner als auch manuell \u00fcber die Konsole mit gleicher Funktionalit\u00e4t laufen.<\/li>\n<li>Fehlerbehandler sind zwingend erforderlich:<\/li>\n<li>R\u00fcckgabecode.<\/li>\n<li>Suche nach einer Zeichenfolge im Log. Zum Beispiel k\u00f6nnte f\u00fcr uns eine Fehlermeldung vorliegen, die das Programm als nicht fatal betrachtet.<\/li>\n<li>Timeout-Verarbeitung. Die Ausf\u00fchrungszeit sollte angemessen sein.<\/li>\n<li>Wir ben\u00f6tigen ein detailliertes Log. Dies jedoch nur im Fehlerfall.<\/li>\n<li>Es werden auch eine Reihe von Tests vor dem Start durchgef\u00fchrt.<\/li>\n<li>Einige n\u00fctzliche Funktionen, die wir im Support-Prozess als hilfreich empfunden haben:<\/li>\n<li>Start und Ende werden im Syslog der lokalen Maschine protokolliert. Dies hilft, systembedingte Fehler und die Backup-Aktivit\u00e4ten zu verkn\u00fcpfen.<\/li>\n<li>Ein Teil des Fehlerlogs, sofern vorhanden, wird in stdout ausgegeben, das gesamte Log wird in einer separaten Datei festgehalten. So kann man direkt im CI schauen und triviale Fehler bewerten.<\/li>\n<li>Debugging-Modi.<\/li>\n<\/ul>\n<p><\/p>\n<p>Das vollst\u00e4ndige Log wird als Artefakt in GitLab gespeichert; im Falle eines Fehlers wird das Log gel\u00f6scht. Das Skript wird in Bash geschrieben.<\/p>\n<p><\/p>\n<p>Wir freuen uns auf Vorschl\u00e4ge und Anmerkungen zur Open-Source-Nutzung \u2013 willkommen.<\/p>\n<p><\/p>\n<h2 id=\"kak-eto-rabotaet\">Wie es funktioniert<\/h2>\n<p><\/p>\n<p>Auf dem gesicherten Knoten wird ein Runner mit einem Bash-Executor gestartet. \u00dcber den Scheduler wird in einem speziellen Repository ein CI\/CD-Job gestartet. Der Runner f\u00fchrt ein Skript aus, das als universelle H\u00fclle f\u00fcr solche Aufgaben dient; es werden Validit\u00e4tspr\u00fcfungen des Backup-Repositories, der Einh\u00e4ngepunkte und aller gew\u00fcnschten Elemente durchgef\u00fchrt. Anschlie\u00dfend erfolgt die Sicherung und die Bereinigung alter Daten. Das fertige Backup wird auf S3 abgelegt.<\/p>\n<p><\/p>\n<p>Wir arbeiten nach diesem Schema \u2013 entweder mit einem externen Anbieter wie AWS oder einem russischen Pendant (das ist schneller und die Daten bleiben in Russland). Alternativ richten wir einen separaten MinIO-Cluster beim Kunden f\u00fcr diese Zwecke ein. Dies geschieht in der Regel aus Sicherheitsgr\u00fcnden, wenn der Kunde absolut nicht m\u00f6chte, dass die Daten seinen Bereich verlassen.<\/p>\n<p><\/p>\n<p>Wir haben uns entschieden, die Funktion zur Sicherung \u00fcber SSH nicht zu nutzen. Das erh\u00f6ht die Sicherheit nicht und die Netzwerkf\u00e4higkeiten des S3-Anbieters sind erheblich h\u00f6her als die einer einzigen SSH-Maschine.<\/p>\n<p><\/p>\n<p>Um sich vor Hackern auf der lokalen Maschine zu sch\u00fctzen \u2013 denn sie k\u00f6nnten Daten auf S3 l\u00f6schen \u2013 ist es unbedingt erforderlich, die Versionierung zu aktivieren.<br \/>\nDer Backup-Dienst verschl\u00fcsselt das Backup stets.<\/p>\n<p><\/p>\n<p>Borg verf\u00fcgt \u00fcber einen Modus ohne Verschl\u00fcsselung. <code>keine<\/code>, aber wir raten dringend davon ab, ihn zu aktivieren. In diesem Modus erfolgt nicht nur keine Verschl\u00fcsselung, sondern es wird auch keine Pr\u00fcfziffer f\u00fcr die geschriebenen Daten berechnet, was bedeutet, dass die Integrit\u00e4t nur indirekt anhand der Indizes \u00fcberpr\u00fcft werden kann.<\/p>\n<p><\/p>\n<p>Die Integrit\u00e4t der Backups und deren Inhalte wird von einem separaten Scheduler \u00fcberpr\u00fcft. Diese \u00dcberpr\u00fcfung erfolgt langsam und langwierig, weshalb wir sie einmal im Monat separat starten. Sie kann mehrere Tage in Anspruch nehmen.<\/p>\n<p><\/p>\n<h2 id=\"ridmi-na-russkom\">README auf Russisch<\/h2>\n<p><\/p>\n<h3 id=\"osnovnye-funkcii\">Hauptfunktionen<\/h3>\n<p><\/p>\n<ul>\n<li><code>prepare<\/code> Vorbereitung<\/li>\n<li><code>testcheck<\/code> \u00dcberpr\u00fcfung der Bereitschaft<\/li>\n<li><code>maincommand<\/code> Hauptbefehl<\/li>\n<li><code>forcepostscript<\/code> Funktion, die am Ende oder bei einem Fehler ausgef\u00fchrt wird. Wird verwendet, um die Partition auszuh\u00e4ngen.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"service-functions\">Servicefunktionen<\/h3>\n<p><\/p>\n<ul>\n<li><code>cleanup<\/code> Schreiben von Fehlern oder L\u00f6schen der Protokolldatei.<\/li>\n<li><code>checklog<\/code> Analysiert das Protokoll auf das Auftreten von Fehlerzeilen.<\/li>\n<li><code>ret<\/code> Exit-Handler.<\/li>\n<li><code>checktimeout<\/code> \u00dcberpr\u00fcfung auf Timeout.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"environment\">Umgebung<\/h3>\n<p><\/p>\n<ul>\n<li><code>VERBOSE=1<\/code> Fehler werden sofort auf dem Bildschirm (stdout) ausgegeben.<\/li>\n<li><code>SAVELOGSONSUCCESS=1<\/code> Protokoll bei Erfolg speichern.<\/li>\n<li><code>INIT_REPO_IF_NOT_EXIST=1<\/code> Repository erstellen, falls es nicht existiert. Standardm\u00e4\u00dfig deaktiviert.<\/li>\n<li><code>TIMEOUT<\/code> maximale Zeit f\u00fcr die Hauptoperation. Sie k\u00f6nnen es am Ende als &#8216;m&#8217;, &#8216;h&#8217; oder &#8216;d&#8217; festlegen.<\/li>\n<\/ul>\n<p><\/p>\n<p>Modus zur Aufbewahrung alter Kopien. Standardm\u00e4\u00dfig:<\/p>\n<p><\/p>\n<ul>\n<li><code>KEEP_DAILY=7<\/code><\/li>\n<li><code>KEEP_WEEKLY=4<\/code><\/li>\n<li><code>KEEP_MONTHLY=6<\/code><\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"peremennye-vnutri-skripta\">Variablen im Skript<\/h2>\n<p><\/p>\n<ul>\n<li><code>ERROR_STRING<\/code> \u2014 Zeichenfolge f\u00fcr die Protokollpr\u00fcfung bei Fehlern.<\/li>\n<li><code>EXTRACT_ERROR_STRING<\/code> \u2014 Ausdruck zur Anzeige der Zeichenfolge im Fehlerfall.<\/li>\n<li><code>KILL_TIMEOUT_SIGNAL<\/code> \u2014 Signal zum Abbrechen bei Zeit\u00fcberschreitung.<\/li>\n<li><code>TAIL<\/code> \u2014 Anzahl der fehlerhaften Zeichenfolgen auf dem Bildschirm.<\/li>\n<li><code>COLORMSG<\/code> \u2014 Farbe der Nachricht (Standard gelb).<\/li>\n<\/ul>\n<p><\/p>\n<p>Das Skript, das als Wordpress bezeichnet wird, tr\u00e4gt diesen Namen aufgrund seiner Funktionalit\u00e4t; es macht gleichzeitig auch ein Backup der MySQL-Datenbank. Daher kann es f\u00fcr Einmalinstallationen von Nextcloud verwendet werden, wo man auch die Datenbank sichern kann. Der Vorteil liegt nicht nur darin, dass alles an einem Ort ist, sondern auch darin, dass der Inhalt der Datenbank nah am Inhalt der Dateien ist, da der Zeitunterschied minimal ist.<\/p>\n<p><\/p>\n<h2 id=\"restic-vs-borg\">Restic vs Borg<\/h2>\n<p><\/p>\n<p>Vergleiche zwischen Borg und Restic sind unter anderem <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454734\/\">hier auf Habr\u00e9<\/a><\/noindex>, und wir hatten nicht die Aufgabe, einfach noch einen weiteren zu erstellen, sondern unseren eigenen. Uns war wichtig, wie es mit unseren Daten und unserer Spezifik er aussehen wird. Wir pr\u00e4sentieren sie.<\/p>\n<p><\/p>\n<p>Unsere Auswahlkriterien, neben den bereits erw\u00e4hnten (Deduplicierung, schnelle Wiederherstellung usw.):<\/p>\n<p><\/p>\n<ul>\n<li>Widerstandsf\u00e4higkeit gegen unvollendete Arbeiten. \u00dcberpr\u00fcfung mit kill -9.<\/li>\n<li>Gr\u00f6\u00dfe auf der Festplatte.<\/li>\n<li>Ressourcenerfordernisse (CPU, RAM).<\/li>\n<li>Gr\u00f6\u00dfe der gespeicherten Blobs.<\/li>\n<li>Arbeit mit S3.<\/li>\n<li>Integrit\u00e4tspr\u00fcfung.<\/li>\n<\/ul>\n<p><\/p>\n<p>F\u00fcr die Tests haben wir einen Kunden mit echten Daten und einer Gesamtgr\u00f6\u00dfe von 1,6 TB genommen.<br \/>\nBedingungen.<\/p>\n<p><\/p>\n<p>Borg kann nicht direkt mit S3 arbeiten, daher haben wir es als Fuse-Disk \u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kahing\/goofys\">goofys<\/a><\/noindex>. Restic hat die Daten selbst zu S3 geschickt.<\/p>\n<p><\/p>\n<p>Goofys arbeitet sehr schnell und gut, und es gibt ein <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kahing\/catfs\">Cache-Modul<\/a><\/noindex>, das die Leistung weiter beschleunigt. Es befindet sich in der Beta-Phase und, um ehrlich zu sein, hatten wir w\u00e4hrend der Tests (andere) Datenverluste. Der Vorteil ist jedoch, dass der Backup-Prozess nicht viel Lesevorgang erfordert, sondern haupts\u00e4chlich Schreibvorg\u00e4nge, sodass wir den Cache nur w\u00e4hrend der Integrit\u00e4tspr\u00fcfung verwenden.<\/p>\n<p><\/p>\n<p>Um die Netzwerkwirkung zu verringern, haben wir einen lokalen Anbieter - Yandex Cloud - genutzt.<\/p>\n<p><\/p>\n<p>Ergebnisse der Vergleichstests.<\/p>\n<p><\/p>\n<ul>\n<li>Kill -9 mit anschlie\u00dfendem Neustart beider verlief erfolgreich.<\/li>\n<li>Gr\u00f6\u00dfe auf der Festplatte. Borg kann komprimieren, daher sind die Ergebnisse erwartungsgem\u00e4\u00df.<\/li>\n<\/ul>\n<p><\/p>\n<p>Backuper<br \/>\nGr\u00f6\u00dfe<\/p>\n<p>. Unten erl\u00e4utern wir den Vergleich der beiden Anwendungen, aber zun\u00e4chst m\u00f6chten wir erkl\u00e4ren, wie wir das gesamte Schema organisert haben.<br \/>\n562 Gb<\/p>\n<p>Restic<br \/>\n628 Gb<\/p>\n<p><\/p>\n<ul>\n<li>CPU-Verbrauch<br \/>\nAn sich verbraucht Borg wenig mit der Standardkomprimierung, aber die Bewertung sollte im Zusammenhang mit dem Prozess von goofys erfolgen. Insgesamt sind sie vergleichbar und nutzen etwa 1,2 Kerne auf derselben Test-VM.<\/li>\n<li>Speicher. Restic ben\u00f6tigt etwa 0,5 Gb, Borg etwa 200 Mb. Aber das ist alles unbedeutend im Vergleich zum Dateicache des Systems. Daher sollte man mehr Speicher zuweisen.<\/li>\n<li>Der Gr\u00f6\u00dfenunterschied der Blobs war auff\u00e4llig.<\/li>\n<\/ul>\n<p><\/p>\n<p>Backuper<br \/>\nGr\u00f6\u00dfe<\/p>\n<p>. Unten erl\u00e4utern wir den Vergleich der beiden Anwendungen, aber zun\u00e4chst m\u00f6chten wir erkl\u00e4ren, wie wir das gesamte Schema organisert haben.<br \/>\netwa 500 Mb<\/p>\n<p>Restic<br \/>\nca. 5 MB<\/p>\n<p><\/p>\n<ul>\n<li>Die Zusammenarbeit mit S3 von Restic ist hervorragend. Borg funktioniert problemlos \u00fcber goofys, jedoch ist es ratsam, nach Abschluss des Backups ein umount durchzuf\u00fchren, um den Cache vollst\u00e4ndig zur\u00fcckzusetzen. Eine Besonderheit von S3 ist, dass unvollst\u00e4ndige Chunks niemals in den Bucket gesendet werden, was bedeutet, dass nicht vollst\u00e4ndig hochgeladene Daten zu erheblichen Sch\u00e4den f\u00fchren k\u00f6nnen.<\/li>\n<li>Die Integrit\u00e4tspr\u00fcfung funktioniert in beiden F\u00e4llen gut, jedoch variiert die Geschwindigkeit erheblich.<br \/>\nRestic \u2013 <strong>3,5 Stunden<\/strong>.<br \/>\nBorg, mit 100 GB SSD-Datei-Cache \u2013 <strong>5 Stunden<\/strong>. Ein etwa gleiches Ergebnis hinsichtlich der Geschwindigkeit ergibt sich, wenn die Daten auf einer lokalen Festplatte liegen.<br \/>\nBorg liest direkt von S3 ohne Cache <strong>33 Stunden<\/strong>. Furchtbar lange.<\/li>\n<\/ul>\n<p><\/p>\n<p>Zusammenfassend l\u00e4sst sich sagen, dass Borg komprimieren kann und gr\u00f6\u00dfere Blobs hat \u2013 was die Speicherung und die GET\/PUT-Operationen in S3 kosteng\u00fcnstiger macht. Daf\u00fcr muss man jedoch f\u00fcr eine kompliziertere und langsamere \u00dcberpr\u00fcfung bezahlen. Was die Wiederherstellungsgeschwindigkeit betrifft, haben wir keinen Unterschied festgestellt. Die nachfolgenden Backups (nach dem ersten) erstellt Restic etwas langsamer, aber nicht erheblich.<\/p>\n<p><\/p>\n<p>Die Gr\u00f6\u00dfe der Community war nicht unwichtig bei der Auswahl.<\/p>\n<p><\/p>\n<p>Und wir haben Borg gew\u00e4hlt.<\/p>\n<p><\/p>\n<h2 id=\"paru-slov-o-szhatii\">Ein paar Worte zur Kompression<\/h2>\n<p><\/p>\n<p>Borg bietet einen hervorragenden neuen Komprimierungsalgorithmus \u2013 zstd. In Bezug auf die Komprimierungsqualit\u00e4t ist er nicht schlechter als gzip, aber deutlich schneller. Zudem ist er in der Geschwindigkeit mit dem standardm\u00e4\u00dfigen lz4 vergleichbar.<\/p>\n<p><\/p>\n<p>Zum Beispiel wird ein MySQL-Dump etwa doppelt so gut komprimiert wie lz4 bei gleicher Geschwindigkeit. Die Erfahrung mit realen Daten zeigt jedoch, dass bei Nextcloud-Knoten der Unterschied in der Komprimierungsrate sehr gering ist.<\/p>\n<p><\/p>\n<p>Borg bietet einen zus\u00e4tzlichen Bonuskomprimierungsmodus \u2013 wenn eine Datei eine hohe Entropie hat, wird \u00fcberhaupt keine Komprimierung angewendet, was die Verarbeitungsgeschwindigkeit erh\u00f6ht. Dies kann beim Erstellen aktiviert werden.<br \/>\n<code>-C auto,zstd<\/code><br \/>\nf\u00fcr den Algorithmus zstd.<br \/>\nMit dieser Option haben wir im Vergleich zur Standardkomprimierung erhalten:<br \/>\n560 Gb und 562 Gb jeweils. Die Daten aus dem obigen Beispiel, zur Erinnerung: ohne Komprimierung betr\u00e4gt das Ergebnis 628 Gb. Das Ergebnis von 2 Gb Unterschied hat uns etwas \u00fcberrascht, aber wir haben beschlossen, dass wir doch <code>auto,zstd<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"metodika-proverki-bekapa\">\u00dcberpr\u00fcfungsmethode des Backups<\/h2>\n<p><\/p>\n<p>Die virtuelle Maschine wird \u00fcber den Scheduler direkt beim Anbieter oder beim Kunden gestartet, was die Netzwerkbelastung erheblich reduziert. Mindestens ist das g\u00fcnstiger, als es intern zu hosten und den Traffic zu leiten.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">goofys --cache \"--free:5%:\/mnt\/cache\" -o allow_other --endpoint https:\/\/storage.yandexcloud.net --file-mode=0666 --dir-mode=0777 xxxxxxx.com \/mnt\/goofys\nexport BORG_PASSCOMMAND=\"cat \/home\/borg\/.borg-passphrase\"\nborg list \/mnt\/goofys\/borg1\/\nborg check --debug -p --verify-data \/mnt\/goofys\/borg1\/<\/code><\/pre>\n<p><\/p>\n<p>Nach demselben Schema \u00fcberpr\u00fcfen wir die Dateien nach dem Hochladen mit einem Antivirusprogramm. Denn die Nutzer laden unterschiedliche Inhalte in Nextcloud hoch, und nicht alle haben einen Antivirus. Eine \u00dcberpr\u00fcfung w\u00e4hrend des Hochladens w\u00fcrde viel Zeit kosten und den Gesch\u00e4ftsablauf st\u00f6ren.<\/p>\n<p><\/p>\n<p>Die Skalierbarkeit wird erreicht, indem Runner auf verschiedenen Knoten mit unterschiedlichen Tags gestartet werden.<br \/>\nIn unserem Monitoring werden die Status der Backups \u00fcber die GitLab API in einem Dashboard gesammelt. Im Falle von Problemen sind diese leicht zu erkennen und ebenfalls einfach zu lokalisieren.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Fazit<\/h2>\n<p><\/p>\n<p>Das Ergebnis ist, dass wir genau wissen, dass wir Backups erstellen, dass unsere Backups valide sind und dass die Probleme, die dabei auftreten, wenig Zeit in Anspruch nehmen und auf Ebene des verantwortlichen Administrators gel\u00f6st werden. Backups ben\u00f6tigen im Vergleich zu tar.gz oder Bacula tats\u00e4chlich sehr wenig Speicherplatz.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508758\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0421\u0422\u041e \u0432 \u00ab\u041c\u043e\u043b\u043d\u0438\u044f \u0410\u041a\u00bb, \u0433\u0434\u0435 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c IT \u0441\u0438\u0441\u0442\u0435\u043c, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Nextcloud. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0435 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86905,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86904","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0421\u0422\u041e \u0432 \u00ab\u041c\u043e\u043b\u043d\u0438\u044f \u0410\u041a\u00bb, \u0433\u0434\u0435 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c IT \u0441\u0438\u0441\u0442\u0435\u043c, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Nextcloud. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0435 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a GitLab \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 NextCloud | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0421\u0422\u041e \u0432 \u00ab\u041c\u043e\u043b\u043d\u0438\u044f \u0410\u041a\u00bb, \u0433\u0434\u0435 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c IT \u0441\u0438\u0441\u0442\u0435\u043c, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Nextcloud. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0435 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-01T05:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-01T05:42:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wie GitLab bei der Erstellung von Backups gro\u00dfer NextCloud-Speicherl\u00f6sungen hilft | ProHoster","description":"Hallo, Habr! Heute m\u00f6chte ich \u00fcber unsere Erfahrungen mit der Automatisierung von Backup-L\u00f6sungen f\u00fcr gro\u00dfe Nextcloud-Datenspeicher in verschiedenen Konfigurationen berichten. Ich bin CTO bei \u201eMolniya AK\u201c, wo wir uns mit dem Konfigurationsmanagement von IT-Systemen besch\u00e4ftigen, wobei Nextcloud zur Datenspeicherung verwendet wird. Insbesondere arbeiten wir mit einer verteilten Struktur, die auch redundante Sicherungen umfasst. Die Herausforderungen ergeben sich aus den spezifischen Anforderungen an die Installationen, da es sich um gro\u00dfe Datenmengen handelt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a GitLab \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 NextCloud | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043d\u0430\u0448\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 Nextcloud \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0421\u0422\u041e \u0432 \u00ab\u041c\u043e\u043b\u043d\u0438\u044f \u0410\u041a\u00bb, \u0433\u0434\u0435 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c IT \u0441\u0438\u0441\u0442\u0435\u043c, \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Nextcloud. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439, \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u0435 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-gitlab-pomogaet-delat-bekapy-bolshih-hranilishh-nextcloud","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-01T05:42:30+00:00","article:modified_time":"2020-07-01T05:42:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86904","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:03:54","updated":"2022-10-06 09:05:46"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/86904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=86904"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/86904\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/86905"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=86904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=86904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=86904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}