
Warum sind Backups notwendig? Die Hardware ist doch ziemlich zuverlĂ€ssig, und es gibt zudem die "Cloud", die in Bezug auf ZuverlĂ€ssigkeit besser ist als physische Server: Bei richtiger Konfiguration kann ein "Cloud"-Server ganz einfach den Ausfall eines physischen Infrastrukturservers ĂŒberstehen, und aus Sicht der Nutzer der Dienste gibt es nur einen kleinen, kaum merklichen Anstieg der Wartungszeit. AuĂerdem erfordert die Duplizierung von Informationen oft, dass man "ĂŒberflĂŒssige" CPU-Zeit, Festplattenlast und Netzwerktraffic bezahlt.
Ein ideales Programm funktioniert schnell, lÀuft nicht im RAM aus, hat keine Löcher und existiert nicht.
âUnbekannter
Da Programme noch von menschlichen Entwicklern geschrieben werden und der Testprozess oft fehlt, plus die Bereitstellung von Software extrem selten unter Verwendung von "Best Practices" erfolgt (die selbst auch Programme sind und daher nicht perfekt), mĂŒssen Systemadministratoren meist Aufgaben lösen, die kurz und prĂ€gnant klingen: "Wiederherstellen, wie es war", "Datenbank in den Normalbetrieb versetzen", "Arbeitet langsam â zurĂŒcksetzen", sowie mein Lieblingssatz "Ich weiĂ nicht, was, aber repariere es".
Neben logischen Fehlern, die durch nachlĂ€ssige Arbeit der Entwickler oder ZufĂ€lle entstehen, sowie unvollstĂ€ndigem Wissen oder VerstĂ€ndnis kleiner Eigenschaften des Programmaufbaus â darunter Bindungen und systemische Komponenten, einschlieĂlich Betriebssysteme, Treiber und Firmware â gibt es noch viele andere Fehler. Viele Entwickler verlassen sich beispielsweise auf die Laufzeit und vergessen dabei völlig die physikalischen Gesetze, die man mit Programmen immer noch nicht umgehen kann. Dazu gehören die unendliche ZuverlĂ€ssigkeit von Speichersubsystemen und insgesamt jeder Art von Datenspeicherung (einschlieĂlich RAM und CPU-Cache!), sowie null Verarbeitungszeit auf der CPU, keinerlei Fehler bei der Ăbertragung im Netzwerk und bei der Verarbeitung auf der CPU und eine Netzwerklatenz, die gleich 0 ist. Man sollte auch die berĂŒchtigten Deadlines nicht vernachlĂ€ssigen, denn wenn man sie nicht einhĂ€lt â treten Probleme auf, die komplizierter sind als die Feinheiten der Netz- und Festplattenarbeit.

Wie steht es um Probleme, die sich unĂŒbersehbar aufdrĂ€ngen und ĂŒber wertvolle Daten schweben? Echte Entwickler sind nicht zu ersetzen, und es ist ungewiss, ob dies in naher Zukunft möglich sein wird. Auf der anderen Seite konnte bislang nur bei wenigen Projekten vollstĂ€ndig bewiesen werden, dass ein Programm wie geplant funktioniert, und es ist keineswegs garantiert, dass diese Beweise auf andere, Ă€hnliche Projekte ĂŒbertragen werden können. Zudem erfordern solche Beweise enorm viel Zeit und spezielle FĂ€higkeiten und Kenntnisse, was die Möglichkeit ihrer Anwendung unter BerĂŒcksichtigung der Fristen praktisch auf ein Minimum reduziert. DarĂŒber hinaus beherrschen wir noch nicht die extrem schnellen, kostengĂŒnstigen und unendlich zuverlĂ€ssigen Technologien zur Speicherung, Verarbeitung und Ăbertragung von Informationen. Solche Technologien existieren, wenn ĂŒberhaupt, meist nur als Konzepte oder â hĂ€ufiger â lediglich in fantastischen BĂŒchern und Filmen.
Gute KĂŒnstler kopieren, groĂe KĂŒnstler stehlen.
âPablo Picasso.
Die erfolgreichsten Lösungen und erstaunlich einfachen Dinge entstehen oft dort, wo absolut inkompatible Konzepte, Technologien, Wissen und Fachgebiete aufeinander treffen.
Zum Beispiel haben Vögel und Flugzeuge FlĂŒgel, aber trotz der funktionalen Ăhnlichkeit â das Prinzip des Handelns stimmt in einigen Modi ĂŒberein, und technische Probleme werden Ă€hnlich gelöst: hohle Knochen, Verwendung von starken und leichten Materialien usw. â sind die Ergebnisse grundverschieden, auch wenn sie sehr Ă€hnlich sind. Die besten Beispiele, die wir in unserer Technik beobachten, sind auch gröĂtenteils der Natur entliehen: dichte Abteile in Schiffen und U-Boote â eine direkte Analogie zu ringelwĂŒrfeln; die Konstruktion von RAID-Arrays und die ĂberprĂŒfung der IntegritĂ€t von Daten â die Verdopplung der DNA-Kette; sowie paarige Organe, die UnabhĂ€ngigkeit der Funktionsweise verschiedener Organe vom zentralen Nervensystem (Automatisierung der Herzarbeit) und Reflexe â autonome Systeme im Internet. NatĂŒrlich kann es problematisch sein, fertige Lösungen direkt zu ĂŒbernehmen, aber wer weiĂ, vielleicht gibt es keine anderen Lösungen.
WĂŒsste man, wo man fallen wird, hĂ€tte man sich mit Stroh ausgelegt!
âWeisheit des belarussischen Volkes
Das bedeutet, dass Backups fĂŒr diejenigen, die wĂŒnschen, unbedingt notwendig sind:
- Die Möglichkeit, die Arbeit ihrer Systeme mit minimalen Ausfallzeiten oder sogar ohne sie wiederherzustellen.
- Handeln Sie mutig, denn im Falle eines Fehlers gibt es immer die Möglichkeit, zurĂŒckzukehren.
- Minimieren Sie die Folgen von gezielter DatenbeschÀdigung.
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 nach Daten, die wir ebenfalls willkĂŒrlich auswĂ€hlen.
âJean BrĂŒller
UnabhĂ€ngig von der physikalischen Speicherform kann die logische Datenspeicherung grob in zwei Zugriffsarten auf diese Daten unterteilt werden: blockweise und dateibasiert. Diese Unterteilung ist in letzter Zeit ziemlich verschwommen, denn rein blockbasierte und rein dateibasierte logische Speicher existieren nicht. FĂŒr die Einfachheit nehmen wir jedoch an, dass sie existieren.
Die blockweise Datenspeicherung bedeutet, dass es ein physikalisches GerĂ€t gibt, auf dem Daten in festen Portionen, Blöcken, gespeichert werden. Der Zugriff auf die Blöcke erfolgt ĂŒber eine bestimmte Adresse, wobei jeder Block eine eigene Adresse innerhalb des GerĂ€ts hat.
Ein Backup erfolgt in der Regel durch das Kopieren von Datenblöcken. Um die IntegritĂ€t der Daten zum Zeitpunkt des Kopierens zu gewĂ€hrleisten, wird die Aufzeichnung neuer Blöcke gestoppt, ebenso wie Ănderungen an bestehenden. Ein passendes Analogon aus der realen Welt wĂ€re ein Schrank mit gleich nummerierten FĂ€chern.

Die dateibasierte Datenspeicherung funktioniert Ă€hnlich wie die blockweise Speicherung und wird oft darĂŒber organisiert. Wichtige Unterschiede sind das Vorhandensein einer Speicherhierarchie und menschenlesbare Namen. Es wird eine Abstraktion in Form von Dateien â benannten Datenbereichen â sowie von Verzeichnissen â speziellen Dateien, die Beschreibungen und Zugriffe auf andere Dateien speichern â geschaffen. Dateien können mit zusĂ€tzlichen Metadaten versehen werden: Erstellungszeit, Zugriffsflags usw. In der Regel wird so gesichert: Es werden Ănderungen an Dateien gesucht, die dann in einen anderen, strukturell Ă€hnlichen Datenspeicher kopiert werden. Die IntegritĂ€t der Daten wird normalerweise durch das Fehlen von Dateien gewĂ€hrleistet, in die geschrieben wird. Die Metadaten der Dateien werden Ă€hnlich gesichert. Das nĂ€chste Analogon ist eine Bibliothek mit Abteilungen fĂŒr verschiedene BĂŒcher sowie einem Katalog mit menschenlesbaren Buchtiteln.

In letzter Zeit wird manchmal eine weitere Variante beschrieben, mit der im Grunde das dateibasierte Speichern von Daten begann und die die gleichen archaischen Merkmale aufweist: das objektbasierte Speichern von Daten.
Es unterscheidet sich vom dateibasierten Speichern dadurch, dass es keine mehr als eine Ebene von Verschachtelung hat (flache Struktur), und die Dateinamen sind zwar leserlich, jedoch eher fĂŒr die Verarbeitung durch Maschinen ausgelegt. Bei der Sicherung werden Objekt-Speicher hĂ€ufig Ă€hnlich wie dateibasierte Speicher behandelt, es gibt aber gelegentlich auch andere Varianten.
â Es gibt zwei Arten von Systemadministratoren: Diejenigen, die keine Backups erstellen, und diejenigen, die es SCHON tun.
â TatsĂ€chlich gibt es drei Arten: Es gibt auch jene, die ĂŒberprĂŒfen, ob die Backups wiederhergestellt werden können.âUnbekannter
Es ist auch wichtig zu verstehen, dass der Prozess des Datensicherungs durch Programme durchgefĂŒhrt wird. Daher hat er die gleichen Nachteile wie andere Programme. Um die AbhĂ€ngigkeit vom menschlichen Faktor sowie von Merkmalen, die einzeln nicht stark ins Gewicht fallen, aber zusammen einen spĂŒrbaren Effekt haben können, zu reduzieren (nicht auszuschlieĂen!), wird die sogenannte 3-2-1-Regel angewandt. Es gibt viele Möglichkeiten, sie zu interpretieren, aber mir gefĂ€llt folgende Auslegung am besten: Man sollte 3 SĂ€tze derselben Daten speichern, 2 SĂ€tze sollten in unterschiedlichen Formaten gespeichert werden, und 1 Satz sollte in einem geografisch entfernten Speicher vorhanden sein.
Unter dem Speicherformat ist Folgendes zu verstehen:
- Wenn es eine AbhÀngigkeit von der physischen Speicherweise gibt, Àndern wir die physische Speicherweise.
- Wenn es eine AbhÀngigkeit von der logischen Speicherweise gibt, Àndern wir die logische Speicherweise.
Um den maximalen Effekt der 3-2-1-Regel zu erzielen, wird empfohlen, das Speicherformat auf beide Arten zu Àndern.
BezĂŒglich der Bereitstellung des Backups fĂŒr den vorgesehenen Zweck â der Wiederherstellung der FunktionsfĂ€higkeit â unterscheidet man zwischen âheiĂenâ und âkaltenâ Backups. HeiĂe Backups unterscheiden sich von kalten nur darin, dass sie sofort einsatzbereit sind, wĂ€hrend kalte Backups fĂŒr die Wiederherstellung einige zusĂ€tzliche Aktionen erfordern: EntschlĂŒsselung, Extraktion aus dem Archiv usw.
Es ist wichtig, heiĂe und kalte Kopien nicht mit Online- und Offline-Kopien zu verwechseln, die eine physische Isolation der Daten implizieren und im Grunde eine andere Klassifizierungsmethode fĂŒr Backup-Strategien darstellen. So kann eine Offline-Kopie, die nicht direkt mit dem System verbunden ist, von dem aus sie wiederhergestellt werden soll, sowohl heiĂ als auch kalt sein (in Bezug auf die Wiederherstellungsbereitschaft). Eine Online-Kopie kann direkt dort verfĂŒgbar sein, wo sie wiederhergestellt werden muss, und ist meistens heiĂ, es gibt aber auch kalte Kopien.
Zudem sollte man nicht vergessen, dass der Prozess der Erstellung von Backups normalerweise nicht mit der Erstellung einer einzelnen Sicherung endet und es durchaus eine groĂe Anzahl von Kopien geben kann. Folglich ist es wichtig, zwischen vollstĂ€ndigen Sicherungen zu unterscheiden, d.h. solchen, die unabhĂ€ngig von anderen Sicherungen wiederhergestellt werden können, sowie zwischen differentiellen (inkrementellen, differenziellen, dekrementalen usw.) Kopien - solchen, die nicht eigenstĂ€ndig wiederhergestellt werden können und die vorherige Wiederherstellung einer oder mehrerer anderer Sicherungen erfordern.
Differenzielle inkrementelle Kopien sind ein Versuch, den Speicherplatz fĂŒr Sicherungen zu sparen. So werden in das Backup nur die seit der letzten Sicherung geĂ€nderten Daten geschrieben.
Differenzielle dekrementale Kopien werden aus demselben Grund erstellt, aber auf etwas andere Weise: Es wird ein vollstÀndiges Backup erstellt, aber tatsÀchlich wird nur die Differenz zwischen der neuen Kopie und der vorherigen gespeichert.
Der Prozess des Backups ĂŒber einem Speicher, der keine Duplikate speichert, sollte besonders betrachtet werden. Wenn dort vollstĂ€ndige Sicherungen geschrieben werden, wird tatsĂ€chlich nur die Differenz zwischen den Sicherungen aufgezeichnet, der Wiederherstellungsprozess wird jedoch Ă€hnlich der Wiederherstellung von einer vollstĂ€ndigen Sicherung durchgefĂŒhrt und ist vollstĂ€ndig transparent.
Quis custodiet ipsos custodes?
(Wer bewacht die WĂ€chter selbst? â lat.)
Es ist Ă€uĂerst unangenehm, wenn keine Sicherungen vorhanden sind, aber es ist viel schlimmer, wenn eine Sicherung zwar erstellt wurde, sich bei der Wiederherstellung jedoch herausstellt, dass sie nicht wiederhergestellt werden kann, weil:
- Die IntegritĂ€t der ursprĂŒnglichen Daten wurde verletzt.
- Der Speicher mit den Sicherungen ist beschÀdigt.
- Die Wiederherstellung funktioniert sehr langsam, es ist nicht möglich, auf teilweise wiederhergestellte Daten zuzugreifen.
Ein richtig gestalteter Backup-Prozess muss solche Anmerkungen berĂŒcksichtigen, insbesondere die ersten beiden.
Die IntegritĂ€t der Originaldaten kann durch verschiedene Methoden garantiert werden. Am hĂ€ufigsten werden folgende Methoden verwendet: a) Erstellung von Snapshots des Dateisystems auf Blockebene, b) "Einfrieren" des Zustands des Dateisystems, c) spezielles BlockgerĂ€t mit Versionsspeicherung, d) sequenzielle Aufzeichnung von Dateien oder Blöcken. Auch PrĂŒfziffern werden verwendet, um die Daten wĂ€hrend der Wiederherstellung zu ĂŒberprĂŒfen.
SpeicherschĂ€den können ebenfalls mithilfe von PrĂŒfziffern erkannt werden. Eine zusĂ€tzliche Methode ist der Einsatz spezialisierter GerĂ€te oder Dateisysteme, in denen bereits aufgezeichnete Daten nicht mehr geĂ€ndert werden können, aber neue hinzugefĂŒgt werden können.
Um die Wiederherstellung zu beschleunigen, wird die Datenwiederherstellung mit mehreren Prozessen durchgefĂŒhrt, vorausgesetzt, dass es kein "Engpass" in Form eines langsamen Netzwerks oder eines nicht schnellen Speichersystems gibt. Um das Problem mit teilweise wiederhergestellten Daten zu umgehen, kann der Backup-Prozess in relativ kleine Teilaufgaben unterteilt werden, von denen jede separat ausgefĂŒhrt wird. So wird die Möglichkeit geschaffen, die FunktionalitĂ€t sequenziell wiederherzustellen und die Wiederherstellungszeit vorherzusagen. Dieses Problem liegt hĂ€ufig im organisatorischen Bereich (SLA), daher werden wir nicht nĂ€her darauf eingehen.
Es versteht sich von selbst, dass es nicht derjenige ist, der GewĂŒrze zu jedem Gericht hinzufĂŒgt, der sich damit auskennt, sondern derjenige, der niemals etwas ĂberflĂŒssiges hinzufĂŒgt.
âW. Sinjawski
Die Erfahrung im verwendeten Softwarebereich kann bei Systemadministratoren variieren, aber die allgemeinen Prinzipien bleiben dennoch die gleichen, insbesondere:
- Es wird dringend empfohlen, fertige Lösungen zu verwenden.
- Programme sollten vorhersehbar arbeiten, d.h. es sollten keine undocumented features oder EngpÀsse vorhanden sein.
- Die Konfiguration jedes Programms sollte so einfach sein, dass man nicht jedes Mal das Handbuch oder ein Spickzettel lesen muss.
- Die Lösung sollte möglichst universell sein, da sich die Hardwaremerkmale der Server erheblich unterscheiden können.
Zum Erstellen von Sicherungskopien von BlockgerÀten gibt es folgende verbreitete Programme:
- dd, bekannt bei erfahrenen Systemadministratoren, sowie Àhnliche Programme (zum Beispiel dd_rescue).
- In einige Dateisysteme integrierte Dienstprogramme (Utilities), die ein Abbild (Dump) des Dateisystems erstellen.
- Alleskönner-Utilities; zum Beispiel, partclone.
- Eigene, oft proprietÀre Lösungen; zum Beispiel, NortonGhost und spÀtere Versionen.
FĂŒr Dateisysteme wird die Aufgabe der Sicherung teilweise mit Methoden gelöst, die fĂŒr BlockgerĂ€te anwendbar sind; das Problem kann jedoch auch effektiver gelöst werden, indem man beispielsweise Folgendes verwendet:
- Rsync, ein universelles Programm und Protokoll zur Synchronisation des Zustands von Dateisystemen.
- Integrierte Archive-Tools (ZFS).
- Drittanbieter-Tools zum Archivieren; das bekannteste Beispiel ist tar. Es gibt auch andere, beispielsweise dar â ein Ersatz fĂŒr tar, der auf moderne Systeme ausgerichtet ist.
Besonders erwÀhnenswert sind Softwarelösungen zur GewÀhrleistung der Konsistenz von Daten beim Erstellen von Sicherungskopien. Die hÀufigsten Optionen sind:
- Das EinhĂ€ngen des Dateisystems im Nur-Lese-Modus (ReadOnly) oder das Einfrieren des Dateisystems (Freeze) â diese Methode ist nur eingeschrĂ€nkt anwendbar.
- Das Erstellen von Abbilden des Zustands von Dateisystemen oder BlockgerÀten (LVM, ZFS).
- Die Verwendung von Drittanbieter-Tools zur Organisation von Abbilden, selbst in den FĂ€llen, in denen die vorherigen Punkte aus bestimmten GrĂŒnden nicht umsetzbar sind (Programme wie hotcopy).
- Die Technik des Kopierens bei Ănderungen (CopyOnWrite), die jedoch meistens an das verwendete Dateisystem (BTRFS, ZFS) gebunden ist.
FĂŒr einen kleinen Server muss also ein Sicherungsschema eingerichtet werden, das folgenden Anforderungen entspricht:
- Einfach in der Handhabung â es sind keine besonderen zusĂ€tzlichen MaĂnahmen erforderlich; es sind minimale MaĂnahmen zum Erstellen und Wiederherstellen von Kopien erforderlich.
- Universell â funktioniert sowohl auf groĂen als auch auf kleinen Servern; dies ist wichtig beim Anstieg der Anzahl Server oder beim Scaling.
- Wird ĂŒber den Paketmanager installiert oder in ein bis zwei Befehlen wie "Herunterladen und Entpacken".
- Stabil â es wird ein standardmĂ€Ăiges oder bereits lange etabliertes Format fĂŒr die Speicherung verwendet.
- Schnell in der Anwendung.
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 (auf Basis von XenServer) mit den folgenden Eigenschaften verwendet:
- 4 Kerne 2,5 GHz,
- 16 GB RAM,
- 50 GB Hybrid-Speicher (SAN mit 20 % SSD-Caching des virtuellen FestplattengröĂe) als separate virtuelle Festplatte ohne Partitionierung,
- 200 Mbit/s Internetanschluss.
Als Server fĂŒr den Empfang der Sicherungskopien wird nahezu dieselbe Maschine verwendet, jedoch mit einer Festplatte mit 500 GB.
Betriebssystem â Centos 7 x64: Standardpartitionierung, ein zusĂ€tzlicher Teil wird als Datenquelle verwendet.
Als Ausgangsdaten nehmen wir eine WordPress-Website mit Mediendateien von 40 GB und einer MySQL-Datenbank. Da virtuelle Server die Anforderungen stark variieren und um eine bessere Reproduzierbarkeit zu erreichen, sind hier
Ergebnisse der Server-Testung mit Hilfe von sysbench.sysbench âthreads=4 âtime=30 âcpu-max-prime=20000 cpu run
sysbench 1.1.0-18a9f86 (unter Verwendung von gebĂŒndeltem LuaJIT 2.1.0-beta3)
Den Test mit den folgenden Optionen ausfĂŒhren:
Anzahl der Threads: 4
Zufallszahlengenerator von der aktuellen Zeit initialisieren
Grenze der Primzahlen: 20000
Arbeiterthreads werden initialisiert âŠ
Threads gestartet!
CPU-Geschwindigkeit:
Ereignisse pro Sekunde: 836,69
Durchsatz:
Ereignisse/s (eps): 836,6908
vergangene Zeit: 30,0039 s
Gesamtanzahl der Ereignisse: 25104
Latenz (ms):
min: 2,38
avg: 4,78
max: 22,39
95. Perzentil: 10,46
Summe: 119923,64
Threads Fairness:
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 memory run
sysbench 1.1.0-18a9f86 (unter Verwendung von gebĂŒndeltem LuaJIT 2.1.0-beta3)
Den Test mit den folgenden Optionen ausfĂŒhren:
Anzahl der Threads: 4
Zufallszahlengenerator von der aktuellen Zeit initialisieren
DurchfĂŒhrung des Speichertests mit den folgenden Optionen:
BlockgröĂe: 1 KiB
GesamtgröĂe: 102400 MiB
Operation: lesen
Bereich: global
Arbeiterthreads werden initialisiert âŠ
Threads gestartet!
Gesamtoperationen: 50900446 (1696677,10 pro Sekunde)
49707,47 MiB ĂŒbertragen (1656,91 MiB/s)
Durchsatz:
Ereignisse/s (eps): 1696677,1017
vergangene Zeit: 30,0001 s
Gesamtanzahl der Ereignisse: 50900446
Latenz (ms):
min: 0,00
avg: 0,00
max: 24,01
95. Perzentil: 0,00
Summe: 39106,74
Threads Fairness:
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 memory run
sysbench 1.1.0-18a9f86 (unter Verwendung von gebĂŒndeltem LuaJIT 2.1.0-beta3)
Den Test mit den folgenden Optionen ausfĂŒhren:
Anzahl der Threads: 4
Zufallszahlengenerator von der aktuellen Zeit initialisieren
DurchfĂŒhrung des Speichertests mit den folgenden Optionen:
BlockgröĂe: 1 KiB
GesamtgröĂe: 102400 MiB
Operation: schreiben
Bereich: global
Arbeiterthreads werden initialisiert âŠ
Threads gestartet!
Gesamtoperationen: 35910413 (1197008,62 pro Sekunde)
35068,76 MiB ĂŒbertragen (1168,95 MiB/s)
Durchsatz:
Ereignisse/s (eps): 1197008,6179
vergangene Zeit: 30,0001 s
Gesamtanzahl der Ereignisse: 35910413
Latenz (ms):
min: 0,00
avg: 0,00
max: 16,90
95. Perzentil: 0,00
Summe: 43604,83
Threads Fairness:
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 gebĂŒndeltem LuaJIT 2.1.0-beta3)
Den Test mit den folgenden Optionen ausfĂŒhren:
Anzahl der Threads: 4
Zufallszahlengenerator von der aktuellen Zeit initialisieren
ZusÀtzliche Dateiflags: (keine)
128 Dateien, jeweils 8 MiB
1 GiB GesamtdateigröĂe
BlockgröĂe 4 KiB
Anzahl der IO-Anfragen: 0
Lese-/SchreibverhĂ€ltnis fĂŒr kombinierten Zufalls-I/O-Test: 1,50
Periodisches FSYNC aktiviert, fsync() wird alle 100 Anfragen aufgerufen.
fsync() am Ende des Tests aufgerufen, aktiviert.
Verwendung des synchronen I/O-Modus
DurchfĂŒhrung des zufĂ€lligen r/w-Tests
Arbeiterthreads werden initialisiert âŠ
Threads gestartet!
Durchsatz:
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
durchschnittlich: 0.27
max: 18.01
95. Perzentile: 1.08
summe: 238469.45
Mit dieser Notiz beginnt eine groĂe
Artikelreihe ĂŒber Backups
- Sicherung, Teil 1: Warum Backups nötig sind, Ăberblick ĂŒber Methoden und Technologien
- Sicherung, Teil 2: Ăberblick und Test von rsync-basierten Sicherungswerkzeugen
- Datensicherung, Teil 3: Ăberblick und Tests von duplicity, duplicaty, deja dup
- Sicherung, Teil 4: Ăberblick und Test von zbackup, restic, borgbackup
- Backup, Teil 5: Tests von Bacula und Veeam Backup fĂŒr Linux
- Backup, Teil 6: Vergleich von Backup-Tools
- Backup, Teil 7: Zusammenfassungen
Quelle: habr.com
