
Bu qeydlə davam olunur
eşit olaraq rezerv nüsxələmə siklində
- Rezerv nüsxələmə, hissə 2: rsync əsaslı rezerv nüsxələmə vasitələrinin icmalı və sınağı
- Rezerv nüsxələmə, hissə 3: duplicity, duplicaty, deja dup icmalı və sınağı
- Ehtiyat nüsxə, hissə 4: zbackup, restic, borgbackup-ın icmalı və test edilməsi
- Ehtiyat nüsxə, hissə 5: bacula və linux üçün veeam backup-ın test edilməsi
- Ehtiyat nüsxəsi, hissə 6: Ehtiyat nüsxəsi vasitələrinin müqayisəsi
- Ehtiyat nüsxə, hissə 7: Nəticələr
Birinci məqalədə qeyd etdiyimiz kimi, rsync əsaslı bir çox rezerv nüsxələmə proqramı mövcuddur.
Müxtəlif şərtlərə uyğun olanlardan 3-ü üzərində dayanacağam: rdiff-backup, rsnapshot və burp.
Sınaq fayl dəstləri
Sınaq üçün fayl dəstləri bütün namizəd bilər hər kəs üçün eynidir, eyni zamanda gələcək məqalələr üçün də.
Birinci dəst: 10 GB media faylı, və təxminən 50 mb - saytın php source kodu, fayl ölçüləri bir neçə kilobytdan media faylları üçün onlarla megabayta qədərdir. Məqsəd - statik bir saytın imitasiya edilməsi.
İkinci dəst: birinci dəstdən 5 GB ölçüsündə media faylları olan alt kataloqun adı dəyişdirilərək alınır. Məqsəd - kataloqun adı dəyişməsi zamanı rezerv nüsxələmə sisteminin davranışını öyrənmək.
Üçüncü dəst: birinci dəstdən 3 GB media faylını silərək və yeni 3 GB media faylı əlavə edərək əldə edilir. Məqsəd - saytın güncəllənməsi üçün tipik bir əməliyyatda rezerv nüsxələmə sisteminin davranışını öyrənmək.
Nəticələrin əldə edilməsi
Hər hansı rezerv nüsxələmə minimum 3 dəfə yerinə yetirilir və fayl sisteminin önbelleklerini boşaltmaq üçün aşağıdakı əmrlərlə müşayiət olunur sync və echo 3 > /proc/sys/vm/drop_caches həm test serverində, həm də rezerv nüsxələrin saxlanıldığı serverdə.
Rezerv nüsxələri mənbə olan serverdə yük altında olanı qiymətləndirmək üçün netdata monitorinq proqramı quraşdırılmışdır - bu, rezerv nüsxələmə prosesində server yükünü qiymətləndirmək üçün lazımdır.
Həmçinin, rezerv nüsxələri saxlayan serverin prosessor açısından əsas serverdən daha yavaş olduğunu düşünürəm, amma nisbətən kiçik təsadüfi yazma sürətinə malik geniş disklara sahibdir - rezerv nüsxələmə zamanı ən tez-tez qarşılaşılan bir vəziyyətdir, çünki rezerv nüsxələmə serveri, həqiqətən, rezerv nüsxələmə xaricində başqa vəzifələri yerinə yetirməməlidir, bu səbəbdən onun yükünü netdata ilə izləməyəcəyəm.
Həmçinin, rezerv nüsxələmə üçün müxtəlif sistemləri sınayacağım serverlərdə değişikliklər olmuşdur.
İndi onların aşağıdakı xüsusiyyətləri varProsessor
sysbench --threads=2 --time=30 --cpu-max-prime=20000 cpu run
sysbench 1.0.17 (using system LuaJIT 2.0.4)
Test aşağıdakı variantlarla icra edilir:
İplərin sayı: 2
Təsadüfi ədədlərin generatoru hazırda vaxtdan başlanır
Baş sayının məhdudiyyəti: 20000
İşçi ipliklərin yaradılması...
İplər başlanıb!
CPU sürəti:
hadisələr saniyədə: 1081.62
Ümumi statistikalar:
cəmi vaxt: 30.0013s
cəmi hadisələr sayı: 32453
Gecikmə (ms):
minimum: 1.48
ortalama: 1.85
maksimum: 9.84
95-ci faiz: 2.07
cəm: 59973.40
İplərin ədaləti:
hadisələr (ortalama/stdev): 16226.5000/57.50
icra vaxtı (ortalama/stdev): 29.9867/0.00
Yaddaş, oxuma…
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)
Test aşağıdakı variantlarla icra edilir:
İplərin sayı: 4
Təsadüfi ədədlərin generatoru hazırda vaxtdan başlanır
Yaddaş sürət testini aşağıdakı variantlarla icra edir:
blok ölçüsü: 1KiB
cəmi ölçü: 102400MiB
əməliyyat: oxumaq
məhdudiyyət: qlobal
İşçi ipliklərin yaradılması...
İplər başlanıb!
Cəmi əməliyyatlar: 104857600 (5837637.63 saniyədə)
102400.00 MiB köçürüldü (5700.82 MiB/saniyə)
Ümumi statistikalar:
cəmi vaxt: 17.9540s
cəmi hadisələr sayı: 104857600
Gecikmə (ms):
minimum: 0.00
ortalama: 0.00
maksimum: 66.08
95-ci faiz: 0.00
cəm: 18544.64
İplərin ədaləti:
hadisələr (ortalama/stdev): 26214400.0000/0.00
icra vaxtı (ortalama/stdev): 4.6362/0.12
… və yazma
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)
Test aşağıdakı variantlarla icra edilir:
İplərin sayı: 4
Təsadüfi ədədlərin generatoru hazırda vaxtdan başlanır
Yaddaş sürət testini aşağıdakı variantlarla icra edir:
blok ölçüsü: 1KiB
cəmi ölçü: 102400MiB
əməliyyat: yazmaq
məhdudiyyət: qlobal
İşçi ipliklərin yaradılması...
İplər başlanıb!
Cəmi əməliyyatlar: 91414596 (3046752.56 saniyədə)
89272.07 MiB köçürüldü (2975.34 MiB/saniyə)
Ümumi statistikalar:
cəmi vaxt: 30.0019s
cəmi hadisələr sayı: 91414596
Gecikmə (ms):
minimum: 0.00
ortalama: 0.00
maksimum: 1022.90
95-ci faiz: 0.00
cəm: 66430.91
İplərin ədaləti:
hadisələr (ortalama/stdev): 22853649.0000/945488.53
icra vaxtı (ortalama/stdev): 16.6077/1.76
Məlumatların server diskində
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)
Test aşağıdakı seçimlərlə yerinə yetirilir:
İplərin sayı: 4
Hal-hazırki vaxtdan təsadüfi ədədlər generatörünü başlatmaq
Əlavə fayl açma bayraqları: (yoxdur)
128 fayl, hər biri 8MiB
1GiB cəmi fayl ölçüsü
Blok ölçüsü 4KiB
IO sorğularının sayı: 0
Birgə təsadüfi IO testi üçün oxu/Yazma nisbəti: 1.50
Müntəzəm FSYNC aktivdir, hər 100 sorğudan sonra fsync() çağırılır.
Testin sonunda fsync() çağırılması, Aktivdir.
Synchronous I/O rejimi istifadə olunur
Təsadüfi r/w testi aparılır
İşçi iplərini başlatmaq...
İplər başladıldı!
Fayl əməliyyatları:
oxuma/s: 4587.95
yazma/s: 3058.66
fsyncs/s: 9795.73
Yük:
oxu, MiB/s: 17.92
yazılmış, MiB/s: 11.95
Ümumi statistika:
cəmi vaxt: 60.0241s
cəmi hadisə sayı: 1046492
Gecikmə (ms):
minimum: 0.00
ortalama: 0.23
maksimum: 14.45
95-ci yüzdəlik: 0.94
cəmi: 238629.34
İplərin ədaləti:
hadisələr (ortalama/standart deviasiya): 261623.0000/1849.14
icra müddəti (ortalama/standart deviasiya): 59.6573/0.00
Saxlanma serverindəki disk
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)
Test aşağıdakı seçimlərlə yerinə yetirilir:
İplərin sayı: 4
Hal-hazırki vaxtdan təsadüfi ədədlər generatörünü başlatmaq
Əlavə fayl açma bayraqları: (yoxdur)
128 fayl, hər biri 8MiB
1GiB cəmi fayl ölçüsü
Blok ölçüsü 4KiB
IO sorğularının sayı: 0
Birgə təsadüfi IO testi üçün oxu/Yazma nisbəti: 1.50
Müntəzəm FSYNC aktivdir, hər 100 sorğudan sonra fsync() çağırılır.
Testin sonunda fsync() çağırılması, Aktivdir.
Synchronous I/O rejimi istifadə olunur
Təsadüfi r/w testi aparılır
İşçi iplərini başlatmaq...
İplər başladıldı!
Fayl əməliyyatları:
oxuma/s: 11.37
yazma/s: 7.58
fsyncs/s: 29.99
Yük:
oxu, MiB/s: 0.04
yazılmış, MiB/s: 0.03
Ümumi statistika:
cəmi vaxt: 73.8868s
cəmi hadisə sayı: 3104
Gecikmə (ms):
minimum: 0.00
ortalama: 78.57
maksimum: 3840.90
95-ci yüzdəlik: 297.92
cəmi: 243886.02
İplərin ədaləti:
hadisələr (ortalama/standart deviasiya): 776.0000/133.26
icra müddəti (ortalama/standart deviasiya): 60.9715/1.59
Serverlər arasında şəbəkə sürəti
iperf3 -c backup
Backup hostuna qoşulma, port 5201
[ 4] yerli x.x.x.x port 59402 y.y.y.y port 5201-ə qoşuldu
[ ID] Aralıq Transfers Bant genişliyi Retr Cwnd
[ 4] 0.00-1.00 saniyə 419 MBytes 3.52 Gbits/s 810 182 KBytes
[ 4] 1.00-2.00 saniyə 393 MBytes 3.30 Gbits/s 810 228 KBytes
[ 4] 2.00-3.00 saniyə 378 MBytes 3.17 Gbits/s 810 197 KBytes
[ 4] 3.00-4.00 saniyə 380 MBytes 3.19 Gbits/s 855 198 KBytes
[ 4] 4.00-5.00 saniyə 375 MBytes 3.15 Gbits/s 810 182 KBytes
[ 4] 5.00-6.00 saniyə 379 MBytes 3.17 Gbits/s 765 228 KBytes
[ 4] 6.00-7.00 saniyə 376 MBytes 3.15 Gbits/s 810 180 KBytes
[ 4] 7.00-8.00 saniyə 379 MBytes 3.18 Gbits/s 765 253 KBytes
[ 4] 8.00-9.00 saniyə 380 MBytes 3.19 Gbits/s 810 239 KBytes
[ 4] 9.00-10.00 saniyə 411 MBytes 3.44 Gbits/s 855 184 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Aralıq Transfers Bant genişliyi Retr
[ 4] 0.00-10.00 saniyə 3.78 GBytes 3.25 Gbits/s 8100 göndərən
[ 4] 0.00-10.00 saniyə 3.78 GBytes 3.25 Gbits/s qəbul edən
Test Metodologiyası
- Test serverində birinci test dəstinə görə fayl sistemi hazırlanır, ehtiyat nüsxə saxlama serverində lazımi hallarda depozit təşkil edilir.
Ehtiyat nüsxə prosesi işə salınır və onun vaxtı ölçülür. - Test serverində fayllar ikinci test dəstinə köçürülür. Ehtiyat nüsxə prosesi işə salınır və onun vaxtı ölçülür.
- Test serverində üçüncü test dəstinə köçürülmə prosesi həyata keçirilir. Ehtiyat nüsxə prosesi işə salınır və onun vaxtı ölçülür.
- Alınan üçüncü test dəsti yeni birinci kimi qəbul edilir; 1-3-cü punktlar 2 dəfə daha təkrarlanır.
- Məlumatlar cədvəl üzrə qeydə alınır, netdata ilə qrafiklər əlavə edilir.
- Müxtəlif ehtiyat nüsxə metodlarına dair hesabat hazırlanır.
Gözlənilən nəticələr
Bütün 3 namizəd eyni texnologiyaya (rsync) əsaslandığı üçün, nəticələrin adi rsync-ə yaxın olması gözlənilir, bununla birlikdə onun bütün üstünlükləri, yəni:
- Depozitdə fayllar "olduğu kimi" saxlanılacaq.
- Depozitin ölçüsü yalnız ehtiyat nüsxələr arasındakı fərqləri daxil etməklə böyüyəcək.
- Məlumatların ötürülməsi zamanı nisbətən böyük şəbəkə yükü və az bir CPU yükü olacaq.
Adi rsync-in test işləməsi etalon kimi tətbiq ediləcək, onun nəticələri
belədir
Dar nöqtə, HDD əsaslı diskdən ibarət olan ehtiyat nüsxə saxlama serverində baş verdi, bu, qrafiklərdə açıq şəkildə görünür.
Məlumatlar 4 dəqiqə 15 saniyə ərzində köçürüldü.
rdiff-backup testi
İlk namizəd — rdiff-backup, bir katalogu digərinə yedəkləyən python skripti. Burada cari yedəkləmə "olduğu kimi" saxlanılır, daha əvvəl edilən yedəkləmələr isə xüsusi bir alt kataloqa inkremental şəkildə yığılır və bu yolla yer saxlanılır.
Standart iş rejimini yoxlayacağıq, yəni yedəkləmə prosesi müştəri tərəfindən özbaşına işə salınır, server tərəfində isə məlumatları qəbul edən bir proses başlayır.
Gəlin baxaq, nələr edə bilir bizim şəraitimizdə.

Hər test başlatma zamanı:
İlk başlatma
İkinci başlatma
Üçüncü başlatma
Birinci dəst
16m32s
16d26s
16m19s
İkinci dəst
2h5m
2h10m
2h8m
Üçüncü dəst
2h9m
2h10m
2h10m
Rdiff-backup hər hansı böyük məlumat dəyişikliyinə çox həssasdır, həmçinin şəbəkədən tam istifadə etmir.
Rsnapshot testləri
İkinci namizəd — rsnapshot, əsas tələbi sərt bağlantıları dəstəkləyən perl skriptidir. Bu şəkildə diskdə yer saxlanılır. Beləliklə, əvvəlki yedəkləmə tarixindən sonra dəyişməyən fayllar sərt bağlantılar vasitəsilə orijinal fayla istinad edəcək.
Eyni zamanda, yedəkləmə prosesinin məntiqi dəyişdirilmişdir: server müştərilərinə aktiv şəkildə "yürüyür" və məlumatları götürür.
Test nəticələri
nəticə aşağıdakı kimi oldu
İlk başlatma
İkinci başlatma
Üçüncü başlatma
Birinci dəst
4m22s
4d19s
4m16s
İkinci dəst
2m6s
2m10s
2m6s
Üçüncü dəst
1m18s
1m10s
1m10s
Çox sürətli işləyib, rdiff-backup-dan kifayət qədər sürətlidir və tam rsync-a çox yaxındır.
Burp testləri
Başqa bir variant — C dilində librsync üstündə burp, müştəri-server arxitekturasına malikdir. Müştərilərin autentifikasiyası ilə yanaşı, veb interfeysinin olması (əsas paketə daxil deyil). Bir başqa maraqlı xüsusiyyət — müştərilər üzərində bərpa hüququ olmadan yedəkləmə.
Gəlin baxaqBu, belə modellərdə qəbul edilən performansa nail olmağın qeyri-mümkün olduğunu demək deyil. Çox vaxt, lazım olan metriklərə nail olmaq üçün sadəcə daha çox səy və diqqət tələb oluna bilər..

İlk başlatma
İkinci başlatma
Üçüncü başlatma
Birinci dəst
11m21s
11m10s
10m56s
İkinci dəst
5m37s
5m40s
5m35s
Üçüncü dəst
3m33s
3m24s
3m40s
Rsnapshot-dan 2 dəfə daha yavaş işləyib, lakin hələ də kifayət qədər sürətlidir və rdiff-backup-dan daha sürətlidir. Qrafiklər bir az dişli forma alır — performans yenə də yedəkləmə serverinin disk sistemində dayanır, lakin rsnapshot-dan daha az nəzərə çarpır.
Nəticələr
Bütün namizədlerin repozitoriyalarının həcmi təxminən eyni idi, yəni əvvəlcə 10 GB-a, sonra 15 GB-a, sonra 18 GB-a qədər artım oldu və s., bu isə rsync-in xüsusiyyətləri ilə əlaqədardır. Həmçinin, bütün namizədlərin tək iplikli olması (iki nüvəli maşın üzərində prosessor yükü təxminən 50%) qeyd edilməlidir. Bütün 3 namizəd ən son ehtiyat nüsxənin "olduğu kimi" bərpasını təmin edirdi, yəni faylları repozitoriyaların yaradılmasında istifadə olunan üçüncü tərəf proqramlardan istifadə etmədən bərpa etmək mümkün idi. Bu, eyni zamanda, rsync-in "vəqf irsi"dir.
Sonuçlar
Saxlama sisteminin nə qədər mürəkkəb olması və onun müxtəlif imkanlarının sayının artması ilə, o qədər də yavaş işləyəcək, lakin tələbkar olmayan layihələr üçün onlardan hər hansı biri, bəlkə də, rdiff-backup istisna olmaqla, uyğundur.
Elan
Bu qeydlər ehtiyat nüsxələmə ilə bağlı məqalələr silsiləsini davam etdirir
Ehtiyat nüsxələmə, hissə 2: rsync əsaslı ehtiyat nüsxələmə vasitələrinin icmalı və testi
Rezerv nüsxələmə, hissə 3: duplicity, duplicaty, deja dup icmalı və sınağı
Ehtiyat nüsxə, hissə 4: zbackup, restic, borgbackup-ın icmalı və test edilməsi
Ehtiyat nüsxə, hissə 5: bacula və linux üçün veeam backup-ın test edilməsi
Ehtiyat nüsxəsi, hissə 6: Ehtiyat nüsxəsi vasitələrinin müqayisəsi
Ehtiyat nüsxə, hissə 7: Nəticələr
Məqalənin müəllifi: Pavel Demkovich
Mənbə: habr.com
