Backup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync

Backup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync
Din in-nota tkompli

ċiklu tal-backup

  1. Backup, parti 1: Għaliex hija meħtieġa backup, ħarsa ġenerali lejn metodi, teknoloġiji
  2. Backup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync
  3. Backup Parti 3: Reviżjoni u ttestjar ta' dupliċità, dupliċità, deja dup
  4. Backup Parti 4: Reviżjoni u ttestjar ta' zbackup, restic, borgbackup
  5. Backup Parti 5: Ittestjar ta 'bacula u veeam backup għal linux
  6. Backup Parti 6: Tqabbil tal-Għodod tal-Backup
  7. Backup Parti 7: Konklużjonijiet

Kif diġà ktibna fl-ewwel artiklu, hemm numru pjuttost kbir ta 'programmi ta' backup bbażati fuq rsync.

Minn dawk li huma l-aktar adattati għall-kundizzjonijiet tagħna, se nikkunsidra 3: rdiff-backup, rsnapshot u burp.

Test suite files

Is-settijiet tal-fajls tal-ittestjar se jkunu l-istess għall-kandidati kollha, inklużi l-karti futuri.

L-ewwel sett: 10 GB ta 'fajls tal-midja, u madwar 50 MB - il-kodiċi tas-sors tas-sit f'php, daqsijiet tal-fajl minn ftit kilobytes għall-kodiċi tas-sors, għal għexieren ta' megabytes għal fajls tal-midja. L-għan huwa li timita sit b'kontenut statiku.

It-tieni sett: miksub mill-ewwel wieħed meta tibdel l-isem ta 'sottodirettorju b'fajls tal-midja ta' 5 GB. L-għan huwa li tistudja l-imġieba tas-sistema tal-backup meta tibdel l-isem tad-direttorju.

It-tielet set: miksub mill-ewwel wieħed billi tneħħi 3GB ta 'fajls tal-midja u żżid 3GB ġodda ta' fajls tal-midja. L-għan huwa li tistudja l-imġieba tas-sistema ta 'backup waqt operazzjoni tipika ta' aġġornament tas-sit.

Jakkwistaw Riżultati

Kwalunkwe backup titwettaq mill-inqas 3 darbiet u huwa akkumpanjat minn fwawar il-caches tas-sistema tal-fajls bil-kmandi sync и echo 3 > /proc/sys/vm/drop_caches kemm fuq in-naħa tas-server tat-test kif ukoll is-server tal-ħażna tal-backup.

Fuq is-server li se jkun is-sors ta 'backups, huwa installat softwer ta' monitoraġġ - netdata, li se jintuża biex jevalwa t-tagħbija fuq is-server waqt l-ikkupjar, dan huwa meħtieġ biex tiġi vvalutata t-tagħbija fuq is-server bil-proċess ta 'backup.

Naħseb ukoll li s-server tal-ħażna tal-backup huwa aktar bil-mod f'termini ta 'proċessur mis-server prinċipali, iżda għandu diski aktar capacious b'veloċità tal-kitba każwali relattivament baxxa - l-aktar sitwazzjoni komuni meta tagħmel backup, iżda minħabba l-fatt li s-server tal-backup f' mod tajjeb m'għandux jagħmel kompiti oħra, ħlief għall-backup, jien mhux se jsegwu t-tagħbija tiegħu bl-użu ta 'netdata.

Ukoll, is-servers tiegħi nbidlu, li fuqhom ser niċċekkja diversi sistemi għall-backup.

Issa għandhom il-karatteristiċi li ġejjinProcessor

sysbench --threads=2 --time=30 --cpu-max-prime=20000 cpu run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1081.62

General statistics:
    total time:                          30.0013s
    total number of events:              32453

Latency (ms):
         min:                                    1.48
         avg:                                    1.85
         max:                                    9.84
         95th percentile:                        2.07
         sum:                                59973.40

Threads fairness:
    events (avg/stddev):           16226.5000/57.50
    execution time (avg/stddev):   29.9867/0.00

Memorja ta' ħidma, qari...

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=read memory run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Running memory speed test with the following options:
  block size: 1KiB
  total size: 102400MiB
  operation: read
  scope: global

Initializing worker threads...

Threads started!

Total operations: 104857600 (5837637.63 per second)

102400.00 MiB transferred (5700.82 MiB/sec)


General statistics:
    total time:                          17.9540s
    total number of events:              104857600

Latency (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                   66.08
         95th percentile:                        0.00
         sum:                                18544.64

Threads fairness:
    events (avg/stddev):           26214400.0000/0.00
    execution time (avg/stddev):   4.6362/0.12

... u rrekordja

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=write memory run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Running memory speed test with the following options:
  block size: 1KiB
  total size: 102400MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 91414596 (3046752.56 per second)

89272.07 MiB transferred (2975.34 MiB/sec)


General statistics:
    total time:                          30.0019s
    total number of events:              91414596

Latency (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                 1022.90
         95th percentile:                        0.00
         sum:                                66430.91

Threads fairness:
    events (avg/stddev):           22853649.0000/945488.53
    execution time (avg/stddev):   16.6077/1.76

Diska fuq is-server tas-sors tad-dejta

sysbench --threads=4 --file-test-mode=rndrw --time=60 --file-block-size=4K --file-total-size=1G fileio run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Extra file open flags: (none)
128 files, 8MiB each
1GiB total file size
Block size 4KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!


File operations:
    reads/s:                      4587.95
    writes/s:                     3058.66
    fsyncs/s:                     9795.73

Throughput:
    read, MiB/s:                  17.92
    written, MiB/s:               11.95

General statistics:
    total time:                          60.0241s
    total number of events:              1046492

Latency (ms):
         min:                                    0.00
         avg:                                    0.23
         max:                                   14.45
         95th percentile:                        0.94
         sum:                               238629.34

Threads fairness:
    events (avg/stddev):           261623.0000/1849.14
    execution time (avg/stddev):   59.6573/0.00

Diska fuq is-server tal-ħażna tal-backup

sysbench --threads=4 --file-test-mode=rndrw --time=60 --file-block-size=4K --file-total-size=1G fileio run
sysbench 1.0.17 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Extra file open flags: (none)
128 files, 8MiB each
1GiB total file size
Block size 4KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!


File operations:
    reads/s:                      11.37
    writes/s:                     7.58
    fsyncs/s:                     29.99

Throughput:
    read, MiB/s:                  0.04
    written, MiB/s:               0.03

General statistics:
    total time:                          73.8868s
    total number of events:              3104

Latency (ms):
         min:                                    0.00
         avg:                                   78.57
         max:                                 3840.90
         95th percentile:                      297.92
         sum:                               243886.02

Threads fairness:
    events (avg/stddev):           776.0000/133.26
    execution time (avg/stddev):   60.9715/1.59

Veloċità tan-netwerk bejn is-servers

iperf3 -c backup
Connecting to host backup, port 5201
[  4] local x.x.x.x port 59402 connected to y.y.y.y port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   419 MBytes  3.52 Gbits/sec  810    182 KBytes
[  4]   1.00-2.00   sec   393 MBytes  3.30 Gbits/sec  810    228 KBytes
[  4]   2.00-3.00   sec   378 MBytes  3.17 Gbits/sec  810    197 KBytes
[  4]   3.00-4.00   sec   380 MBytes  3.19 Gbits/sec  855    198 KBytes
[  4]   4.00-5.00   sec   375 MBytes  3.15 Gbits/sec  810    182 KBytes
[  4]   5.00-6.00   sec   379 MBytes  3.17 Gbits/sec  765    228 KBytes
[  4]   6.00-7.00   sec   376 MBytes  3.15 Gbits/sec  810    180 KBytes
[  4]   7.00-8.00   sec   379 MBytes  3.18 Gbits/sec  765    253 KBytes
[  4]   8.00-9.00   sec   380 MBytes  3.19 Gbits/sec  810    239 KBytes
[  4]   9.00-10.00  sec   411 MBytes  3.44 Gbits/sec  855    184 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  3.78 GBytes  3.25 Gbits/sec  8100             sender
[  4]   0.00-10.00  sec  3.78 GBytes  3.25 Gbits/sec                  receiver

Metodoloġija tat-Test

  1. Is-sistema tal-fajls bl-ewwel suite tat-test hija ppreparata fuq is-server tat-test, u r-repożitorju huwa inizjalizzat fuq is-server tal-ħażna tal-backup, jekk meħtieġ.
    Il-proċess tal-backup jibda u l-ħin tiegħu jitkejjel.
  2. Il-fajls jiġu emigrati għat-tieni sett tat-test fuq is-server tat-test. Il-proċess tal-backup jibda u l-ħin tiegħu jitkejjel.
  3. Is-server tat-test qed jiġi migrat għat-tielet suite tat-test. Il-proċess tal-backup jibda u l-ħin tiegħu jitkejjel.
  4. It-tielet każ tat-test riċevut huwa aċċettat bħala l-ewwel ġdid; il-passi 1-3 huma ripetuti 2 darbiet oħra.
  5. Id-dejta tiddaħħal f'tabella pivot, il-graffs huma miżjuda minn netdata.
  6. Jiġi ġġenerat rapport għal metodu ta' backup partikolari.

Riżultati mistennija

Peress li t-3 kandidati kollha huma bbażati fuq l-istess teknoloġija (rsync), ir-riżultati huma mistennija li jkunu qrib ir-rsync regolari, inklużi l-benefiċċji kollha tagħha, jiġifieri:

  1. Il-fajls fir-repożitorju se jinżammu "kif inhuma".
  2. Id-daqs tar-repożitorju jikber biss inkluża d-differenza bejn il-backups.
  3. Se jkun hemm tagħbija relattivament kbira fuq in-netwerk waqt it-trasferiment tad-dejta, kif ukoll tagħbija żgħira fuq il-proċessur.

Test run ta 'rsync normali se jintuża bħala punt ta' referenza, ir-riżultati tiegħu

dawn humaBackup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync

Il-konġestjoni kienet fis-server tal-ħażna tal-backup fil-forma ta 'diska bbażata fuq HDD, li tista' tidher b'mod pjuttost ċar fil-grafiċi f'forma ta 'serrieq.

Id-dejta ġiet ikkupjata f'4 minuti u 15-il sekonda.

Ittestjar rdiff-backup

L-ewwel kandidat huwa rdiff-backup, script python li jsostni direttorju għal ieħor. F'dan il-każ, il-backup attwali jinħażen "kif inhi", u l-backups magħmula qabel huma miżjuda b'mod inkrementali ma 'subdirectory speċjali, u għalhekk l-ispazju jiġi ffrankat.

Aħna se niċċekkja l-mod tipiku ta 'operazzjoni, i.e. il-bidu tal-proċess tal-backup jinbeda mill-klijent waħdu, u fuq in-naħa tas-server għall-backup, jiġi mniedi proċess li jirċievi data.

Ejja nagħtu ħarsa, x’inhu kapaċi fil-kundizzjonijiet tagħna.

Backup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync

Ħin ta' ġirja ta' kull prova:

L-ewwel tibda
It-tieni ġirja
It-tielet tnedija

L-ewwel sett
16m32s
16m26s
16m19s

It-tieni sett
2:5 p.m.
2:10 p.m.
2:8 p.m.

It-tielet set
2:9 p.m.
2:10 p.m.
2:10 p.m.

Rdiff-backup jirreaġixxi bi tbatija ħafna għal kwalunkwe bidla kbira fid-dejta, u wkoll ma jutilizzax bis-sħiħ in-netwerk.

rsnapshot ittestjar

It-tieni kandidat, rsnapshot, huwa skript perl li r-rekwiżit ewlieni tiegħu għal tħaddim effiċjenti huwa l-appoġġ għal hard links. Dan jiffranka spazju fuq id-diska. F'dan il-każ, fajls li ma nbidlux mill-backup preċedenti se jirreferu għall-fajl oriġinali bl-użu ta 'hard links.

Il-loġika tal-proċess ta 'backup hija wkoll maqluba: is-server "jimxi" b'mod attiv madwar il-klijenti tiegħu u jiġbor data.

Ir-riżultati tat-test

ltqajna dan li ġejBackup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync

L-ewwel tibda
It-tieni ġirja
It-tielet tnedija

L-ewwel sett
4m22s
4m19s
4m16s

It-tieni sett
2m6s
2m10s
2m6s

It-tielet set
1m18s
1m10s
1m10s

Ħadem ħafna, malajr ħafna, ħafna aktar mgħaġġel minn rdiff-backup u qrib ħafna ta 'rsync pur.

Ittestjar tal-burp

Għażla oħra hija implimentazzjoni C fuq librsync - burp, għandha arkitettura klijent-server inkluża awtorizzazzjoni tal-klijent, kif ukoll interface tal-web (mhux inkluż fil-pakkett bażiku). Karatteristika oħra interessanti hija backup mhux ta 'rkupru għall-klijenti.

Ejja nagħtu ħarsa lejnprestazzjoni.

Backup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync

L-ewwel tibda
It-tieni ġirja
It-tielet tnedija

L-ewwel sett
11m21s
11m10s
10m56s

It-tieni sett
5m37s
5m40s
5m35s

It-tielet set
3m33s
3m24s
3m40s

Ħadem 2 darbiet aktar bil-mod minn rsnapshot, iżda wkoll malajr biżżejjed, u ċertament aktar mgħaġġel minn rdiff-backup. Il-graffs huma ftit sawtooth - il-prestazzjoni għal darb'oħra tistrieħ fuq is-subsistema tad-disk tas-server tal-ħażna tal-backup, għalkemm dan mhux daqshekk evidenti bħal ma 'rsnapshot.

Sejbiet

Id-daqs tar-repożitorji għall-kandidati kollha kien bejn wieħed u ieħor l-istess, jiġifieri l-ewwel tkabbir għal 10 GB, imbagħad tkabbir għal 15 GB, imbagħad tkabbir għal 18 GB, eċċ., Li huwa dovut għall-partikolarità ta 'rsync. Ta 'min jinnota wkoll li l-kandidati kollha huma b'ħajt wieħed (it-tagħbija tal-proċessur hija madwar 50% fuq magna dual-core). It-3 kandidati kollha pprovdew l-abbiltà li jirrestawraw l-aħħar backup "kif inhi", jiġifieri, kien possibbli li jiġu restawrati fajls mingħajr ma tuża xi programmi ta 'parti terza, inklużi dawk użati biex jinħolqu repożitorji. Dan huwa wkoll il-"wirt antenati" ta 'rsync.

Sejbiet

Iktar ma tkun kumplessa s-sistema tal-backup u aktar għażliet differenti għandha, iktar se taħdem bil-mod, iżda għal proġetti mhux impenjattivi ħafna, kwalunkwe wieħed minnhom, ħlief forsi rdiff-backup, se jagħmel.

Avviż

Din in-nota tkompli ċ-ċiklu dwar il-backup

Backup, parti 1: Għaliex hija meħtieġa backup, ħarsa ġenerali lejn metodi, teknoloġiji
Backup Parti 2: Reviżjoni u ttestjar ta' għodod ta' backup bbażati fuq rsync
Backup Parti 3: Reviżjoni u ttestjar ta' dupliċità, dupliċità, deja dup
Backup Parti 4: Reviżjoni u ttestjar ta' zbackup, restic, borgbackup
Backup Parti 5: Ittestjar ta 'bacula u veeam backup għal linux
Backup Parti 6: Tqabbil tal-Għodod tal-Backup
Backup Parti 7: Konklużjonijiet

Awtur tal-pubblikazzjoni: Pavel Demkovich

Sors: www.habr.com

Żid kumment