Biztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése

Biztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése
Ez a megjegyzés folytatódik

a biztonsági mentések ciklusában

  1. Biztonsági mentés, 1. rész: Miért van szükség biztonsági mentésre, a módszerek és technológiák áttekintése
  2. Biztonsági mentés, 2. rész: Az rsync-alapú biztonsági mentő eszközök áttekintése és tesztelése
  3. Biztonsági mentés, 3. rész: A duplicity, duplicaty, deja dup áttekintése és tesztelése
  4. Biztonsági mentés, 4. rész: A zbackup, restic, borgbackup áttekintése és tesztelése
  5. Biztonsági mentés, 5. rész: A bacula és a veeam backup for linux tesztelése
  6. Biztonsági mentés, 6. rész: A biztonsági mentési eszközök összehasonlítása
  7. Biztonsági mentés, 7. rész: Következtetések

Ahogyan azt már az első cikkben írtuk, számos rsync alapú biztonsági mentőprogram létezik.

A legjobban a követelményeknek megfelelő programok közül hármat fogok megvizsgálni: rdiff-backup, rsnapshot és burp.

Tesztfájl készletek

A teszteléshez használt fájlhalmazok az összes jelölt számára azonosak lesznek, beleértve a jövőbeli cikkeket is.

Első készlet: 10 GB médiafájl, és körülbelül 50 MB — a php webhely forráskódja, a fájlok mérete néhány kilobyte-tól, a médiafájloké pedig tucatnyi megabájtig terjed. Cél — statikus webhely szimulálása.

Második készlet: az elsőből származik a médiafájlokat tartalmazó alkönyvtár átnevezésével, 5 GB méretben. Cél — a biztonsági mentési rendszer viselkedésének tanulmányozása az alkönyvtár átnevezésekor.

Harmadik készlet: az elsőből származik, 3 GB médiafájl törlésével és újabb 3 GB médiafájl hozzáadásával. Cél — a biztonsági mentési rendszer viselkedésének tanulmányozása a weboldal frissítésekor.

Eredmények megszerzése

Bármely biztonsági mentést minimum 3 alkalommal hajtanak végre, és a fájlrendszer gyorsítótárazásának törlését kísérik a következő parancsokkal: sync és echo 3 > /proc/sys/vm/drop_caches mind a tesztszerveren, mind a biztonsági másolatok tároló szerverén.

A biztonsági mentési forrást biztosító szerveren monitoring szoftver van telepítve — netdata, amellyel a szerver terhelését fogják értékelni a másolás során, ez szükséges a biztonsági mentés során fellépő terhelés becsléséhez.

Azt is tartom, hogy a biztonsági másolatok tároló szerverének processzora lassabb, mint a főszerveré, de nagyobb kapacitású diszkjei vannak, viszonylag alacsony véletlenszerű írási sebességgel — ez a leggyakoribb helyzet a biztonsági mentés során, és mivel a biztonsági másolatot készítő szervernek valójában nem kell más feladatokat végeznie, csak biztonsági mentéseket, a terhelését netdata segítségével nem fogom nyomon követni.

A szervereim is megváltoztak, amelyekkel különböző biztonsági mentési rendszereket fogok ellenőrizni.

Jelenleg a következő jellemzőkkel rendelkeznekProcesszor

sysbench --threads=2 --time=30 --cpu-max-prime=20000 cpu futtatás
sysbench 1.0.17 (system LuaJIT 2.0.4 előfizetéssel)

A teszt futtatása a következő lehetőségekkel:
Szálak száma: 2
A véletlenszám-generátor inicializálása az aktuális időből


Prímtényezők határértéke: 20000

A munkafolyamatok inicializálása...

Szálak elindultak!

CPU sebessége:
    események másodpercenként:  1081.62

Általános statisztikák:
    összes idő:                          30.0013s
    események összes száma:              32453

Késleltetés (ms):
         min:                                    1.48
         avg:                                    1.85
         max:                                    9.84
         95. percentilis:                        2.07
         összeg:                                59973.40

Szálak igazságossága:
    események (avg/stddev):           16226.5000/57.50
    végrehajtási idő (avg/stddev):   29.9867/0.00

RAM, olvasás…

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=read memory futtatás
sysbench 1.0.17 (system LuaJIT 2.0.4 előfizetéssel)

A teszt futtatása a következő lehetőségekkel:
Szálak száma: 4
A véletlenszám-generátor inicializálása az aktuális időből


Memóriaspeed teszt futtatása a következő lehetőségekkel:
  blokk mérete: 1KiB
  összes méret: 102400MiB
  működés: olvasás
  hatókör: globális

A munkafolyamatok inicializálása...

Szálak elindultak!

Összes műveletek: 104857600 (5837637.63 másodpercenként)

102400.00 MiB átvitel (5700.82 MiB/sec)


Általános statisztikák:
    összes idő:                          17.9540s
    események összes száma:              104857600

Késleltetés (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                   66.08
         95. percentilis:                        0.00
         összeg:                                18544.64

Szálak igazságossága:
    események (avg/stddev):           26214400.0000/0.00
    végrehajtási idő (avg/stddev):   4.6362/0.12

… és írás

sysbench --threads=4 --time=30 --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=write memory futtatás
sysbench 1.0.17 (system LuaJIT 2.0.4 előfizetéssel)

A teszt futtatása a következő lehetőségekkel:
Szálak száma: 4
A véletlenszám-generátor inicializálása az aktuális időből


Memóriaspeed teszt futtatása a következő lehetőségekkel:
  blokk mérete: 1KiB
  összes méret: 102400MiB
  működés: írás
  hatókör: globális

A munkafolyamatok inicializálása...

Szálak elindultak!

Összes műveletek: 91414596 (3046752.56 másodpercenként)

89272.07 MiB átvitel (2975.34 MiB/sec)


Általános statisztikák:
    összes idő:                          30.0019s
    események összes száma:              91414596

Késleltetés (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                 1022.90
         95. percentilis:                        0.00
         összeg:                                66430.91

Szálak igazságossága:
    események (avg/stddev):           22853649.0000/945488.53
    végrehajtási idő (avg/stddev):   16.6077/1.76

Adatok forrás szerver

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)

A teszt futtatása a következő opciókkal:
Szálak száma: 4
A véletlenszám-generátor inicializálása a jelenlegi időből


További fájlok megnyitási zászlói: (nincs)
128 fájl, egyenként 8MiB
1GiB összes fájlméret
Blokk méret 4KiB
IO kérelmek száma: 0
Olvasási/írási arány a kombinált véletlenszerű IO teszt számára: 1.50
Időszakos FSYNC engedélyezve, a fsync() hívása 100 kérésenként.
A teszt végén a fsync() hívása, Engedélyezve.
Szinkron I/O mód használata
Véletlenszerű r/w teszt végrehajtása
A munkaszálak inicializálása...

Szálak elindítva!


Fájlműveletek:
    olvasás/s:                     4587.95
    írás/s:                       3058.66
    fsyncs/s:                     9795.73

Átviteli sebesség:
    olvasás, MiB/s:                17.92
    írt, MiB/s:                    11.95

Általános statisztikák:
    összes idő:                      60.0241s
    események összes száma:          1046492

Késleltetés (ms):
         min:                                   0.00
         avg:                                   0.23
         max:                                  14.45
         95. percentilis:                        0.94
         összeg:                             238629.34

Szálak igazságossága:
    események (átlag/szórás):       261623.0000/1849.14
    végrehajtási idő (átlag/szórás): 59.6573/0.00

A biztonsági mentések tárolására szolgáló szerver lemeze

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)

A teszt futtatása a következő opciókkal:
Szálak száma: 4
A véletlenszám-generátor inicializálása a jelenlegi időből


További fájlok megnyitási zászlói: (nincs)
128 fájl, egyenként 8MiB
1GiB összes fájlméret
Blokk méret 4KiB
IO kérelmek száma: 0
Olvasási/írási arány a kombinált véletlenszerű IO teszt számára: 1.50
Időszakos FSYNC engedélyezve, a fsync() hívása 100 kérésenként.
A teszt végén a fsync() hívása, Engedélyezve.
Szinkron I/O mód használata
Véletlenszerű r/w teszt végrehajtása
A munkaszálak inicializálása...

Szálak elindítva!


Fájlműveletek:
    olvasás/s:                       11.37
    írás/s:                         7.58
    fsyncs/s:                       29.99

Átviteli sebesség:
    olvasás, MiB/s:                  0.04
    írt, MiB/s:                       0.03

Általános statisztikák:
    összes idő:                       73.8868s
    események összes száma:           3104

Késleltetés (ms):
         min:                                   0.00
         avg:                                 78.57
         max:                               3840.90
         95. percentilis:                   297.92
         összeg:                           243886.02

Szálak igazságossága:
    események (átlag/szórás):       776.0000/133.26
    végrehajtási idő (átlag/szórás): 60.9715/1.59

A hálózati sebesség a szerverek között

iperf3 -c backup
Csatlakozás a backup hoszthoz, 5201-es porton
[  4] helyi x.x.x.x 59402-es port csatlakozva y.y.y.y 5201-es porthoz
[ ID] Időtartam           Átvitel     Sávszélesség       Retr  Cwnd
[  4]   0.00-1.00   sec   419 MByte  3.52 Gbit/s  810    182 KByte
[  4]   1.00-2.00   sec   393 MByte  3.30 Gbit/s  810    228 KByte
[  4]   2.00-3.00   sec   378 MByte  3.17 Gbit/s  810    197 KByte
[  4]   3.00-4.00   sec   380 MByte  3.19 Gbit/s  855    198 KByte
[  4]   4.00-5.00   sec   375 MByte  3.15 Gbit/s  810    182 KByte
[  4]   5.00-6.00   sec   379 MByte  3.17 Gbit/s  765    228 KByte
[  4]   6.00-7.00   sec   376 MByte  3.15 Gbit/s  810    180 KByte
[  4]   7.00-8.00   sec   379 MByte  3.18 Gbit/s  765    253 KByte
[  4]   8.00-9.00   sec   380 MByte  3.19 Gbit/s  810    239 KByte
[  4]   9.00-10.00  sec   411 MByte  3.44 Gbit/s  855    184 KByte
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Időtartam           Átvitel     Sávszélesség       Retr
[  4]   0.00-10.00  sec  3.78 GByte  3.25 Gbit/s  8100             küldő
[  4]   0.00-10.00  sec  3.78 GByte  3.25 Gbit/s                  fogadó

A teszt módszertana

  1. A tesztszerveren a fájlrendszer előkészítése az első tesztsorozathoz zajlik, a biztonsági mentés tárolásáért felelős szerveren szükség esetén inicializálódik a tároló.
    Megkezdődik a biztonsági mentési folyamat, és mérik az időt.
  2. A tesztszerveren a fájlok migrációja történik a második tesztsorozatra. Megkezdődik a biztonsági mentési folyamat, és mérik az időt.
  3. A tesztszerveren a migráció a harmadik tesztsorozatra történik. Megkezdődik a biztonsági mentési folyamat, és mérik az időt.
  4. A kapott harmadik tesztsorozat új elsőként kerül elfogadásra; az 1-3. pontot még 2 alkalommal megismétlik.
  5. Az adatok összegző táblázatba kerülnek, grafikonok kerülnek hozzáadásra a netdata-val.
  6. Jelentés készül az egyes biztonsági mentési módszerről.

Várt eredmények

Mivel mind a 3 jelölt ugyanazon a technológián (rsync) alapul, várható, hogy az eredmények közel állnak a megszokott rsync eredményekhez, beleértve annak minden előnyét, nevezetesen:

  1. A tárolóban lévő fájlok "ahogy vannak" tárolódnak.
  2. A tároló mérete csak a biztonsági mentések közötti eltéréseket tartalmazza.
  3. Viszonylag nagy terhelés lesz a hálózaton az adatok átadása során, valamint kis mértékű terhelés a processzornál.

A szokásos rsync próba a referenciaértékeként fog szolgálni, eredményei

ilyenekBiztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése

A szűk keresztmetszet a biztonsági mentési adatok tárolására szolgáló HDD-bázisú lemezen volt, amit a grafikákon fűrészfogszerűen világosan látható.

Az adatok másolása 4 perc 15 másodpercet vett igénybe.

rdiff-backup tesztelése

Az első jelölt a rdiff-backup, egy Python alapú skript, amely egy könyvtár biztonsági másolatának készítésére szolgál egy másikban. A jelenlegi biztonsági másolat 'felcímkézve' tárolódik, míg a korábbi biztonsági másolatok egy speciális almappába incrementálisan kerülnek, így helyet takarítunk meg.

Ellenőrizzük a tipikus működési módot, azaz a biztonsági mentési folyamat elindítása a kliens által történik, míg a szerveren egy olyan folyamat indul el a biztonsági mentéshez, amely az adatokat fogadja.

Nézzük meg, mire képes a mi körülményeink között..

Biztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése

Minden tesztindítás futási ideje:

Első indítás
Második indítás
Harmadik indítás

Első készlet
16p32m
16p26mp
16p19m

Második készlet
2ó5p
2ó10p
2ó8p

Harmadik készlet
2ó9p
2ó10p
2ó10p

A rdiff-backup nagyon érzékenyen reagál bármilyen nagyobb adatváltozásra, és nem használja ki teljesen a hálózatot.

A rsnapshot tesztelése

A második jelölt a rsnapshot, egy Perl alapú skript, amelynek fő követelménye a hatékony működéshez a kemény hivatkozások támogatása. Így a lemezen helyet takarítunk meg. Azok a fájlok, amelyek nem változtak meg az előző biztonsági másolat óta, a kemény hivatkozások segítségével az eredeti fájlra mutatnak.

A biztonsági mentési folyamat logikája is meg lett fordítva: a szerver aktívan 'jár' a klienseknél, és begyűjti az adatokat.

Tesztelési eredmények

az alábbiak születtekBiztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése

Első indítás
Második indítás
Harmadik indítás

Első készlet
4p22m
4p19mp
4p16m

Második készlet
2p6m
2p10m
2p6m

Harmadik készlet
1p18m
1p10m
1p10m

Nagyon gyorsan teljesített, sokkal gyorsabban, mint a rdiff-backup, és nagyon közel a tiszta rsync-hez.

A burp tesztelése

Egy másik lehetőség a C nyelvű, a librsync fölötti megvalósítás — a burp, amely ügyfél-szerver architektúrával rendelkezik, beleértve az ügyfelek hitelesítését, valamint webes felületet tartalmaz (nem része az alapcsomagnak). Egy másik érdekes jellemző — a biztonsági másolatok készítése a kliensek helyreállítási jogainak nélkül.

Nézzük megteljesítmény.

Biztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése

Első indítás
Második indítás
Harmadik indítás

Első készlet
11p21m
11p10m
10p56m

Második készlet
5p37m
5m40s
5m35s

Harmadik készlet
3p33m
3p24m
3p40m

Kétszer olyan lassan működött, mint a rsnapshot, de még mindig elég gyors, és biztosan gyorsabb, mint a rdiff-backup. A grafikonok kissé hullámosak — a teljesítmény ismét a biztonsági mentések tárolására szolgáló lemezkörnyezettől függ, bár ez nem annyira kifejezett, mint a rsnapshot esetében.

Eredmények

A jelöltek tárolóinak mérete körülbelül azonos volt, vagyis először 10 GB-ra, majd 15 GB-ra, végül 18 GB-ra nőtt, ami a rsync működésével kapcsolatos. Érdemes megjegyezni, hogy minden jelölt egyszálú feldolgozást használt (a CPU kihasználtság körülbelül 50% egy kétmagos gépen). Mindhárom jelölt lehetőséget biztosított az utolsó biztonsági mentés visszaállítására "olyan formában", ami azt jelenti, hogy fájlokat lehetett visszaállítani bármilyen külső program alkalmazása nélkül, beleértve azokat is, amelyeket a tárolók létrehozásához használtak. Ez is a rsync "öröksége".

Következtetések

Minél bonyolultabb egy biztonsági mentési rendszer, és minél több funkcióval rendelkezik – annál lassabban fog működni, de a nem túl igényes projektek számára bármelyik megfelel, kivéve talán az rdiff-backup-ot.

Bejelentés

Ez a jegyzet folytatja a biztonsági mentéssel foglalkozó ciklust

Biztonsági mentés, 1. rész: Miért van szükség biztonsági mentésre, a módszerek és technológiák áttekintése
Biztonsági mentés, 2. rész: A rsync-alapú biztonsági mentési eszközök áttekintése és tesztelése
Biztonsági mentés, 3. rész: A duplicity, duplicaty, deja dup áttekintése és tesztelése
Biztonsági mentés, 4. rész: A zbackup, restic, borgbackup áttekintése és tesztelése
Biztonsági mentés, 5. rész: A bacula és a veeam backup for linux tesztelése
Biztonsági mentés, 6. rész: A biztonsági mentési eszközök összehasonlítása
Biztonsági mentés, 7. rész: Következtetések

A publikáció szerzője: Pavel Demkovich

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster