
Warum ist es notwendig, Backups zu erstellen? Die Hardware ist Ă€uĂerst zuverlĂ€ssig, auĂerdem gibt es Clouds, die in puncto ZuverlĂ€ssigkeit physischen Servern ĂŒberlegen sind: Bei richtiger Konfiguration ĂŒbersteht ein Cloud-Server problemlos den Ausfall eines physischen Infrastrukturservers. Aus der Perspektive der Benutzer der Dienste wird es lediglich einen kleinen, kaum spĂŒrbaren Anstieg der Servicezeit geben. Zudem erfordert die Duplizierung von Informationen oft die Zahlung fĂŒr âĂŒberflĂŒssigeâ CPU-Zeit, Speicherbelastung und Netzwerktraffic.
Das perfekte Programm lĂ€uft schnell, belagert den Arbeitsspeicher nicht, hat keine LĂŒcken und existiert nicht.
âUnbekannt
Da Programme noch immer von menschlichen Entwicklern geschrieben werden und der Testprozess oft fehlt, und zudem die Bereitstellung von Software höchst selten unter Verwendung von Best Practices erfolgt (die selbst auch Programme sind und folglich nicht perfekt), mĂŒssen Systemadministratoren oft Aufgaben lösen, die kurz und prĂ€gnant lauten: âWiederherstellen, wie es warâ, âDatenbank zur normalen Funktion zurĂŒckbringenâ, âlĂ€uft langsam â zurĂŒcksetzenâ und mein persönlicher Favorit âIch weiĂ nicht, was, aber repariere es.â
Neben logischen Fehlern, die aus nachlĂ€ssiger Arbeit von Entwicklern, durch ZufĂ€lle oder durch unvollstĂ€ndiges Wissen bzw. VerstĂ€ndnis kleiner Details beim Programmieren entstehen â einschlieĂlich der Bindungen und Systeme wie Betriebssysteme, Treiber und Firmware â gibt es noch weitere Fehler. Zum Beispiel verlassen sich die meisten Entwickler auf die Runtime und vergessen dabei völlig die physikalischen Gesetze, die man mit Programmen weiterhin nicht umgehen kann. Dazu gehören die angebliche unendliche ZuverlĂ€ssigkeit von Datenspeichersystemen und ĂŒberhaupt jeder Speicherkomponente (einschlieĂlich RAM und CPU-Cache!), die Nullverzögerung bei der Verarbeitung auf dem Prozessor und das Fehlen von Fehlern bei der Ăbertragung ĂŒber Netzwerke sowie bei der Verarbeitung auf dem Prozessor, und Netzwerkverzögerungen, die gleich 0 sind. Auch den berĂŒchtigten Deadline sollte man nicht vernachlĂ€ssigen; wenn man es nicht rechtzeitig schafft, ergeben sich Probleme, die komplizierter sind als die Feinheiten der Netzwerk- und Festplattenverarbeitung.

Wie gehen wir mit Problemen um, die drohen, unsere wertvollen Daten zu gefĂ€hrden? Erfahrene Entwickler sind schwer zu ersetzen, und es ist ungewiss, ob man in naher Zukunft welche finden kann. Andererseits ist es bislang nur wenigen Projekten gelungen zu beweisen, dass ihre Software tatsĂ€chlich wie geplant funktioniert. Zudem ist es keineswegs garantiert, dass solche Beweise auf andere, Ă€hnliche Projekte anwendbar sind. Solche Nachweise benötigen zudem viel Zeit und spezielle FĂ€higkeiten, was die Anwendung unter BerĂŒcksichtigung von Deadlines nahezu unmöglich macht. AuĂerdem haben wir gegenwĂ€rtig noch nicht die FĂ€higkeit, superschnelle, kostengĂŒnstige und Ă€uĂerst zuverlĂ€ssige Technologien zur Speicherung, Verarbeitung und Ăbertragung von Informationen zu entwickeln. Solche Technologien existieren vielleicht nur als Konzepte oder sind â normalerweise â nur in fantastischen BĂŒchern und Filmen zu finden.
Gute KĂŒnstler kopieren, groĂe KĂŒnstler stehlen.
âPablo Picasso.
Die besten Lösungen und ĂŒberraschend einfachen Dinge entstehen oft an den Schnittstellen zwischen scheinbar inkompatiblen Begriffen, Technologien, Wissen und Wissenschaftsbereichen.
Zum Beispiel haben Vögel und Flugzeuge FlĂŒgel, doch trotz der funktionalen Ăhnlichkeit â in bestimmten Betriebsmodi Ă€hneln sich die Funktionsweisen, und technische Probleme werden Ă€hnlich gelöst: hohle Knochen, die Verwendung langlebiger und leichter Materialien usw. â sind die Ergebnisse vollkommen unterschiedlich, obwohl sie sehr Ă€hnlich sind. Die besten Beispiele, die wir in unserer Technik beobachten, sind auch gröĂtenteils von der Natur inspiriert: luftdichte FĂ€cher bei Schiffen und U-Booten â eine direkte Analogie zu ringelwĂŒrmern; der Aufbau von RAID-Arrays und die ĂberprĂŒfung der DatenintegritĂ€t â die Duplizierung der DNA-Kette; sowie paarige Organe, die UnabhĂ€ngigkeit der Funktionsweise verschiedener Organe vom zentralen Nervensystem (automatische HerztĂ€tigkeit) und Reflexe â autonome Systeme im Internet. NatĂŒrlich kann es problematisch sein, fertige Lösungen âeins zu einsâ zu ĂŒbernehmen, aber wer weiĂ, vielleicht gibt es auch keine anderen Lösungen.
Wenn man wĂŒsste, wo man fĂ€llt â hĂ€tte man sich ein wenig Polster ausgelegt!
âBelarussisches Sprichwort
Das bedeutet, dass Backups lebenswichtig sind fĂŒr diejenigen, die:
- Die Möglichkeit haben möchten, ihre Systeme mit minimalen Ausfallzeiten oder sogar ohne sie wiederherzustellen.
- Handeln Sie mutig, denn im Falle eines Fehlers gibt es immer die Möglichkeit zur RĂŒckkehr.
- Die Folgen absichtlicher DatenbeschÀdigung minimieren.
Hier ist ein wenig Theorie.
Jede Klassifizierung ist willkĂŒrlich. Die Natur klassifiziert nicht. Wir klassifizieren, weil es fĂŒr uns praktischer ist. Und wir klassifizieren basierend auf Daten, die wir ebenfalls willkĂŒrlich wĂ€hlen.
âJean BruyĂšre
UnabhĂ€ngig von der physikalischen Art der Speicherung kann die logische Datenablage grob in zwei Arten des Zugriffs unterteilt werden: blockbasiert und dateibasiert. Diese Unterteilung ist in letzter Zeit recht verschwommen, da es keine rein blockbasierten oder rein dateibasierten logischen Speicher gibt. FĂŒr die Einfachheit nehmen wir jedoch an, dass sie existieren.
Die blockbasierte Datenablage bedeutet, dass es ein physisches GerĂ€t gibt, auf das Daten in festen Portionen, Blöcken, geschrieben werden. Der Zugriff auf die Blöcke erfolgt ĂŒber eine bestimmte Adresse, und jedem Block ist eine eigene Adresse innerhalb des GerĂ€ts zugeordnet.
Ein Backup wird in der Regel durch das Kopieren von Datenblöcken erstellt. Um die DatenintegritĂ€t zum Zeitpunkt der Sicherung zu gewĂ€hrleisten, wird das Schreiben neuer Blöcke sowie die Ănderung bestehender Blöcke pausiert. Eine passende Analogie aus der realen Welt wĂ€re ein Schrank mit gleichförmig durchnummerierten FĂ€chern.

Datenspeicherung auf der Basis logischer GerĂ€te steht dem Blockspeicher nahe und wird oft ĂŒber diesen organisiert. Wichtige Unterschiede sind die Hierarchie der Speicherung und benutzerfreundliche Namen. Hierbei wird eine Abstraktion in Form einer Datei â einem benannten Datenbereich â und eines Verzeichnisses â einer speziellen Datei, die Beschreibungen und Zugriffe auf andere Dateien speichert â hervorgehoben. Dateien können mit zusĂ€tzlichen Metadaten versehen werden: Erstellungszeit, Zugriffflags usw. In der Regel wird wie folgt reserviert: Ănderungen an Dateien werden gesucht, dann werden diese in einen anderen, strukturell gleichartigen Speicher kopiert. Die IntegritĂ€t der Daten wird normalerweise durch das Fehlen von Dateien realisiert, in die gerade geschrieben wird. Die Metadaten der Dateien werden Ă€hnlich reserviert. Eine passende Analogie wĂ€re eine Bibliothek mit verschiedenen Abteilungen fĂŒr BĂŒcher, sowie ein Katalog mit benutzerfreundlichen Buchnamen.

In letzter Zeit wird manchmal eine weitere Variante beschrieben, mit der das Dateispeichern von Daten ursprĂŒnglich begann und die dieselben archaischen Merkmale aufweist: objektbasiertes Datenspeichern.
Object Storage unterscheidet sich von Dateispeicherungen dadurch, dass es keine höhere Verschachtelung als eine (flaches Schema) aufweist. Die Dateinamen sind zwar menschenlesbar, aber mehr fĂŒr die maschinelle Verarbeitung geeignet. Bei der Datensicherung werden Objektspeicher oft Ă€hnlich wie Dateispeicher behandelt, aber gelegentlich gibt es auch andere Optionen.
â Es gibt zwei Arten von Systemadministratoren: diejenigen, die keine Backups erstellen, und diejenigen, die es bereits tun.
â TatsĂ€chlich gibt es drei Arten: Es gibt auch diejenigen, die ĂŒberprĂŒfen, ob die Backups wiederherstellbar sind.âUnbekannt
Es ist auch wichtig zu verstehen, dass der Prozess der Datensicherung durch Software erfolgt, und somit die gleichen Nachteile wie bei anderen Programmen aufweist. Um (nicht auszuschlieĂen!) die AbhĂ€ngigkeit vom menschlichen Faktor sowie spezifische Merkmale zu minimieren â die einzeln nicht stark ins Gewicht fallen, aber zusammen einen spĂŒrbaren Effekt haben können â wird die sogenannte 3-2-1-Regel angewendet. Es gibt viele Möglichkeiten, diese Regel zu interpretieren, aber mir gefĂ€llt folgende Auffassung am besten: Man sollte 3 Kopien der gleichen Daten in 2 verschiedenen Formaten speichern und 1 Kopie in einem geografisch getrennten Speicherort aufbewahren.
Mit dem Speicherformat ist Folgendes gemeint:
- Wenn eine AbhÀngigkeit vom physischen Speicherweg besteht, Àndern wir den physischen Speicherweg.
- Wenn eine AbhÀngigkeit vom logischen Speicherweg besteht, Àndern wir den logischen Speicherweg.
Um den maximalen Effekt der 3-2-1-Regel zu erreichen, wird empfohlen, das Speicherformat auf beiden Wegen zu Àndern.
In Bezug auf die Einsatzbereitschaft von Backups zur Wiederherstellung der FunktionalitĂ€t unterscheidet man zwischen "hot" und "cold" Backups. Der einzige Unterschied besteht darin, dass heiĂe Backups sofort einsatzbereit sind, wĂ€hrend kalte Backups fĂŒr die Wiederherstellung zusĂ€tzliche Schritte wie EntschlĂŒsselung oder Wiederherstellung aus einem Archiv erfordern.
Verwechseln Sie heiĂe und kalte Backups nicht mit Online- und Offline-Backups, die eine physische Isolation der Daten implizieren und im Wesentlichen ein anderes Klassifikationsmerkmal von Backup-Methoden darstellen. So kann ein Offline-Backup, das nicht direkt mit dem System verbunden ist, in dem es wiederhergestellt werden muss, sowohl heiĂ als auch kalt (hinsichtlich der Wiederherstellungsbereitschaft) sein. Ein Online-Backup kann direkt dort verfĂŒgbar sein, wo es wiederhergestellt werden muss, und ist meist heiĂ, es gibt jedoch auch kalte Backups.
AuĂerdem sollte man nicht vergessen, dass der Prozess der Datensicherung normalerweise nicht mit der Erstellung eines einzelnen Backups endet. Es können durchaus zahlreiche Kopien erforderlich sein. Daher ist es wichtig, zwischen vollstĂ€ndigen Backups, das heiĂt, solchen, die unabhĂ€ngig von anderen Backups wiederhergestellt werden können, und differenziellen (inkrementellen, dekrementalen usw.) Kopien zu unterscheiden â letztere können nicht unabhĂ€ngig wiederhergestellt werden und erfordern die Wiederherstellung einer oder mehrerer anderer Backups im Voraus.
Differenzielle inkrementelle Backups â ein Versuch, Speicherplatz fĂŒr Backups zu sparen. Dabei werden nur die seit dem letzten Backup geĂ€nderten Daten gesichert.
Differenzielle dekrementale Backups werden mit demselben Ziel erstellt, jedoch auf etwas andere Weise: Es wird ein vollstÀndiges Backup gemacht, tatsÀchlich gespeichert wird jedoch nur der Unterschied zwischen der neuen Kopie und der vorherigen.
Es ist wichtig, den Backup-Prozess ĂŒber einen Speicher zu betrachten, der keine Duplikatspeicherung unterstĂŒtzt. So werden, wenn vollstĂ€ndige Backups darĂŒber geschrieben werden, tatsĂ€chlich nur die Unterschiede zwischen den Backups gespeichert. Der Wiederherstellungsprozess wird jedoch wie bei einer vollstĂ€ndigen Kopie ablaufen und völlig transparent sein.
Quis custodiet ipsos custodes?
(Wer bewacht die WĂ€chter selbst? â lateinisch)
Es ist Ă€uĂerst ungĂŒnstig, wenn es keine Backups gibt. Doch es ist noch schlimmer, wenn ein Backup scheinbar erstellt wurde, sich aber bei der Wiederherstellung herausstellt, dass es nicht wiederhergestellt werden kann, weil:
- Die IntegritÀt der Originaldaten wurde verletzt.
- Der Backup-Speicher ist beschÀdigt.
- Die Wiederherstellung erfolgt sehr langsam, und die teilweise wiederhergestellten Daten können nicht verwendet werden.
Ein ordnungsgemÀà gestalteter Backup-Prozess muss solche Hinweise berĂŒcksichtigen, insbesondere die ersten beiden.
Die IntegritĂ€t der Quelldaten kann auf verschiedene Weise gewĂ€hrleistet werden. Am hĂ€ufigsten kommen folgende Methoden zur Anwendung: a) Erstellen von Snapshots des Dateisystems auf Blockebene, b) âEinfrierenâ des Zustands des Dateisystems, c) spezielle BlockgerĂ€te mit Versionsspeicherung, d) sequentielles Schreiben von Dateien oder Blöcken. Zudem werden PrĂŒfziffern verwendet, um die Daten wĂ€hrend der Wiederherstellung zu ĂŒberprĂŒfen.
SchĂ€den am Speicher können ebenfalls durch PrĂŒfziffern erkannt werden. Eine zusĂ€tzliche Methode ist der Einsatz spezialisierter GerĂ€te oder von Dateisystemen, in denen bereits geschriebene Daten nicht mehr verĂ€ndert werden können, aber neue hinzugefĂŒgt werden dĂŒrfen.
Um die Wiederherstellung zu beschleunigen, wird eine Wiederherstellung mit mehreren Prozessen verwendet, vorausgesetzt, es gibt keinen Engpass durch ein langsames Netzwerk oder ein ineffizientes Speichersystem. Um das Problem teilweise wiederhergestellter Daten zu umgehen, kann der Backup-Prozess in relativ kleine Unteraufgaben aufgeteilt werden, die jeweils separat ausgefĂŒhrt werden. So wird die Möglichkeit geschaffen, die BetriebsfĂ€higkeit schrittweise mit einer Prognose der Wiederherstellungszeit wiederherzustellen. Dieses Problem liegt hĂ€ufig im organisatorischen Bereich (SLA), weshalb wir nicht nĂ€her darauf eingehen werden.
Ein echter Kenner von GewĂŒrzen ist nicht der, der sie in jedes Gericht gibt, sondern der, der niemals etwas ĂberflĂŒssiges hinzufĂŒgt.
âW. Sinjawski
Die Praxis bei der verwendeten Software kann bei Systemadministratoren variieren, aber die allgemeinen Prinzipien bleiben dennoch gleich, insbesondere:
- Es wird dringend empfohlen, fertige Lösungen zu verwenden.
- Programme mĂŒssen vorhersehbar arbeiten, d.h. es sollten keine undocumented Besonderheiten oder EngpĂ€sse auftreten.
- Die Konfiguration jedes Programms sollte so einfach sein, dass man nicht stÀndig das Handbuch oder Spickzettel lesen muss.
- Die Lösung sollte, wenn möglich, universell sein, da die Server in ihren Hardwaremerkmalen stark variieren können.
FĂŒr die Sicherung von BlockgerĂ€ten gibt es folgende gĂ€ngige Programme:
- dd, bekannt bei Veteranen der Systemadministration; dazu gehören Àhnliche Programme (wie zum Beispiel dd_rescue).
- In einige Dateisysteme integrierte Dienstprogramme (Utilities), die einen Dump des Dateisystems erstellen.
- Universelle Dienstprogramme; beispielsweise partclone.
- Eigene, oft proprietÀre Lösungen; wie NortonGhost und spÀtere Versionen.
FĂŒr Dateisysteme wird die Backup-Aufgabe teilweise mit Methoden gelöst, die fĂŒr BlockgerĂ€te anwendbar sind, jedoch kann die Aufgabe auch effizienter gelöst werden, etwa mit:
- Rsync, einem universellen Programm und Protokoll zur Synchronisierung des Zustands von Dateisystemen.
- Integrierte Backup-Lösungen (ZFS).
- Drittanbieter-Backup-Tools; der bekannteste Vertreter ist tar. Es gibt auch andere wie dar â eine modernisierte Alternative zu tar.
Besonders erwÀhnenswert sind Softwarelösungen zur GewÀhrleistung der Datenkonsistenz beim Erstellen von Backups. Zu den hÀufigsten Optionen gehören:
- Das EinhĂ€ngen des Dateisystems im Nur-Lese-Modus (ReadOnly) oder das Einfrieren des Dateisystems (freeze) â diese Methode ist nur eingeschrĂ€nkt anwendbar.
- Erstellung von Snapshots des Zustands von Dateisystemen oder BlockgerÀten (LVM, ZFS).
- Einsatz von Drittanbieter-Tools zur Erstellung von Snapshots, selbst in FĂ€llen, in denen die vorherigen Punkte aus bestimmten GrĂŒnden nicht umgesetzt werden können (Programme wie hotcopy).
- Copy-on-Write-Technik, die jedoch meist an das verwendete Dateisystem gebunden ist (BTRFS, ZFS).
FĂŒr einen kleinen Server sollte ein Backup-Schema entwickelt werden, das die folgenden Anforderungen erfĂŒllt:
- Einfache Handhabung â es sind keine besonderen zusĂ€tzlichen MaĂnahmen erforderlich, minimaler Aufwand bei der Erstellung und Wiederherstellung von Kopien.
- Universal â funktioniert sowohl auf groĂen als auch auf kleinen Servern; das ist wichtig beim Anstieg der Nutzerzahlen Server oder bei der Skalierung.
- Es wird mit einem Paketmanager installiert oder in ein bis zwei Befehlen wie âherunterladen und entpackenâ.
- Stabil â verwendet ein standardmĂ€Ăiges oder seit langem etabliertes Speicherformat.
- Schnell in der AusfĂŒhrung.
Kandidaten, die mehr oder weniger den Anforderungen entsprechen:
- rdiff-backup
- rsnapshot
- burp
- duplicati
- Duplicity
- deja dup
- dar
- zbackup
- restic
- borgbackup

Als Testumgebung wird eine virtuelle Maschine (basierend auf XenServer) mit den folgenden Eigenschaften verwendet:
- 4 Kerne, 2,5 GHz,
- 16 GB RAM,
- 50 GB Hybrid-Speicher (Storage mit 20 % SSD-Cache im VerhĂ€ltnis zur GröĂe der virtuellen Festplatte) als separate virtuelle Festplatte ohne Partitionierung,
- 200 Mbit/s Internetverbindung.
Als Server zur Annahme von Sicherungskopien wird praktisch dieselbe Maschine verwendet, jedoch mit einer Festplatte von 500 GB.
Betriebssystem â Centos 7 x64: Standardaufteilung, zusĂ€tzliche Partition wird als Datenquelle genutzt.
Als Ausgangsdaten nehmen wir eine WordPress-Website mit Mediendateien von 40 GB und einer MySQL-Datenbank. Da virtuellen Server unterscheiden sich erheblich in ihren Eigenschaften, und zur besseren Reproduzierbarkeit gibt es hier
Testergebnisse des Servers mit sysbench.sysbench âthreads=4 âtime=30 âcpu-max-prime=20000 cpu ausfĂŒhren
sysbench 1.1.0-18a9f86 (unter Verwendung von LuaJIT 2.1.0-beta3)
Der Test wird mit den folgenden Optionen ausgefĂŒhrt:
Anzahl der Threads: 4
Zufallszahlengenerator wird mit der aktuellen Zeit initialisiert
Grenze der Primzahlen: 20000
Arbeiter-Threads werden initialisiertâŠ
Threads gestartet!
CPU-Geschwindigkeit:
Ereignisse pro Sekunde: 836,69
Throughput:
Ereignisse/s (eps): 836,6908
Verstrichene Zeit: 30,0039s
Gesamtanzahl der Ereignisse: 25104
Latenz (ms):
min: 2,38
avg: 4,78
max: 22,39
95. Perzentil: 10,46
Summe: 119923,64
Fairness der Threads:
Ereignisse (avg/stddev): 6276,0000/13,91
AusfĂŒhrungszeit (avg/stddev): 29,9809/0,01
sysbench âthreads=4 âtime=30 âmemory-block-size=1K âmemory-scope=global âmemory-total-size=100G âmemory-oper=read speichert testen
sysbench 1.1.0-18a9f86 (unter Verwendung von LuaJIT 2.1.0-beta3)
Der Test wird mit den folgenden Optionen ausgefĂŒhrt:
Anzahl der Threads: 4
Zufallszahlengenerator wird mit der aktuellen Zeit initialisiert
Speichergeschwindigkeitstest mit den folgenden Optionen wird ausgefĂŒhrt:
BlockgröĂe: 1KiB
GesamtgröĂe: 102400MiB
Operation: lesen
Bereich: global
Arbeiter-Threads werden initialisiertâŠ
Threads gestartet!
Gesamtoperationen: 50900446 (1696677,10 pro Sekunde)
49707,47 MiB ĂŒbertragen (1656,91 MiB/s)
Throughput:
Ereignisse/s (eps): 1696677,1017
Verstrichene Zeit: 30,0001s
Gesamtanzahl der Ereignisse: 50900446
Latenz (ms):
min: 0,00
avg: 0,00
max: 24,01
95. Perzentil: 0,00
Summe: 39106,74
Fairness der Threads:
Ereignisse (avg/stddev): 12725111,5000/137775,15
AusfĂŒhrungszeit (avg/stddev): 9,7767/0,10
sysbench âthreads=4 âtime=30 âmemory-block-size=1K âmemory-scope=global âmemory-total-size=100G âmemory-oper=write speichert testen
sysbench 1.1.0-18a9f86 (unter Verwendung von LuaJIT 2.1.0-beta3)
Der Test wird mit den folgenden Optionen ausgefĂŒhrt:
Anzahl der Threads: 4
Zufallszahlengenerator wird mit der aktuellen Zeit initialisiert
Speichergeschwindigkeitstest mit den folgenden Optionen wird ausgefĂŒhrt:
BlockgröĂe: 1KiB
GesamtgröĂe: 102400MiB
Operation: schreiben
Bereich: global
Arbeiter-Threads werden initialisiertâŠ
Threads gestartet!
Gesamtoperationen: 35910413 (1197008,62 pro Sekunde)
35068,76 MiB ĂŒbertragen (1168,95 MiB/s)
Throughput:
Ereignisse/s (eps): 1197008,6179
Verstrichene Zeit: 30,0001s
Gesamtanzahl der Ereignisse: 35910413
Latenz (ms):
min: 0,00
avg: 0,00
max: 16,90
95. Perzentil: 0,00
Summe: 43604,83
Fairness der Threads:
Ereignisse (avg/stddev): 8977603,2500/233905,84
AusfĂŒhrungszeit (avg/stddev): 10,9012/0,41
sysbench âthreads=4 âfile-test-mode=rndrw âtime=60 âfile-block-size=4K âfile-total-size=1G fileio run
sysbench 1.1.0-18a9f86 (unter Verwendung von LuaJIT 2.1.0-beta3)
Der Test wird mit den folgenden Optionen ausgefĂŒhrt:
Anzahl der Threads: 4
Zufallszahlengenerator wird mit der aktuellen Zeit initialisiert
ZusÀtzliche Dateifenster-Flags: (keine)
128 Dateien, jeweils 8MiB
1GiB GesamtdatengröĂe
BlockgröĂe 4KiB
Anzahl der IO-Anforderungen: 0
Lese-/SchreibverhĂ€ltnis fĂŒr den kombinierten zufĂ€lligen IO-Test: 1,50
Periodisches FSYNC aktiviert, fsync() wird alle 100 Anforderungen aufgerufen.
fsync() wird am Ende des Tests aufgerufen, aktiviert.
Synchroner I/O-Modus wird verwendet
DurchfĂŒhrung des zufĂ€lligen r/w-Tests
Arbeiter-Threads werden initialisiertâŠ
Threads gestartet!
Throughput:
lesen: IOPS=3868,21 15,11 MiB/s (15,84 MB/s)
schreiben: IOPS=2578,83 10,07 MiB/s (10,56 MB/s)
fsync: IOPS=8226,98
Latenz (ms):
min: 0,00
avg: 0,27
max: 18,01
95. Perzentil: 1,08
Summe: 238469,45
Mit diesem Artikel beginnt eine groĂe
Serie von Artikeln ĂŒber Backups
- Backup, Teil 1: Warum Backup notwendig ist, Ăberblick ĂŒber Methoden und Technologien
- Backup, Teil 2: Ăberblick und Test von rsync-basierten Backup-Tools
- Backup, Teil 3: Ăberblick und Test von duplicity, duplicaty, deja dup
- Backup, Teil 4: Ăberblick und Test von zbackup, restic, borgbackup
- Backup, Teil 5: Test von Bacula und Veeam Backup fĂŒr Linux
- Backup, Teil 6: Vergleich von Backup-Tools.
- Backup, Teil 7: Fazit
Quelle: habr.com
