Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Αυτή η σημείωση εξετάζει τα εργαλεία δημιουργίας αντιγράφων ασφαλείας που πραγματοποιούν δημιουργία αντιγράφων ασφαλείας δημιουργώντας αρχεία σε έναν διακομιστή δημιουργίας αντιγράφων ασφαλείας.

Μεταξύ αυτών που πληρούν τις απαιτήσεις είναι το duplicity (το οποίο έχει μια ωραία διεπαφή με τη μορφή deja dup) και το duplicati.

Ένα άλλο πολύ αξιοσημείωτο εργαλείο δημιουργίας αντιγράφων ασφαλείας είναι το dar, αλλά επειδή έχει μια πολύ εκτενή λίστα επιλογών - η μεθοδολογία δοκιμών καλύπτει μόλις το 10% αυτού που μπορεί να κάνει - δεν το δοκιμάζουμε ως μέρος του τρέχοντος κύκλου.

Αναμενόμενα αποτελέσματα

Δεδομένου ότι και οι δύο υποψήφιοι δημιουργούν αρχεία με τον ένα ή τον άλλο τρόπο, η κανονική πίσσα μπορεί να χρησιμοποιηθεί ως οδηγός.

Επιπλέον, θα αξιολογήσουμε πόσο καλά έχει βελτιστοποιηθεί η αποθήκευση δεδομένων στον διακομιστή αποθήκευσης δημιουργώντας αντίγραφα ασφαλείας που περιέχουν μόνο τη διαφορά μεταξύ ενός πλήρους αντιγράφου και της τρέχουσας κατάστασης των αρχείων ή μεταξύ του προηγούμενου και του τρέχοντος αρχείου (αύξηση, φθίνουσα, κ.λπ.) .

Συμπεριφορά κατά τη δημιουργία αντιγράφων ασφαλείας:

  1. Ένας σχετικά μικρός αριθμός αρχείων στον διακομιστή αποθήκευσης αντιγράφων ασφαλείας (συγκρίσιμος με τον αριθμό των αντιγράφων ασφαλείας ή το μέγεθος των δεδομένων σε GB), αλλά το μέγεθός τους είναι αρκετά μεγάλο (δεκάδες έως εκατοντάδες megabyte).
  2. Το μέγεθος του αποθετηρίου θα περιλαμβάνει μόνο αλλαγές - δεν θα αποθηκευτούν διπλότυπα, επομένως το μέγεθος του αποθετηρίου θα είναι μικρότερο από το λογισμικό που βασίζεται σε rsync.
  3. Αναμένετε μεγάλο φορτίο CPU όταν χρησιμοποιείτε συμπίεση ή/και κρυπτογράφηση, και πιθανότατα πολύ υψηλό φορτίο δικτύου και δίσκου, εάν η διαδικασία αρχειοθέτησης ή/και κρυπτογράφησης εκτελείται σε διακομιστή αποθήκευσης αντιγράφων ασφαλείας.

Ας εκτελέσουμε την ακόλουθη εντολή ως τιμή αναφοράς:

cd /src/dir; tar -cf - * | ssh backup_server "cat > /backup/dir/archive.tar"

Τα αποτελέσματα της εκτέλεσης ήταν τα εξής:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Χρόνος εκτέλεσης 3m12s. Μπορεί να φανεί ότι η ταχύτητα περιορίζεται από το υποσύστημα δίσκου του διακομιστή αποθήκευσης αντιγράφων ασφαλείας, όπως στο παράδειγμα με rsync. Μόνο λίγο πιο γρήγορα γιατί... η εγγραφή πηγαίνει σε ένα αρχείο.

Επίσης, για να αξιολογήσουμε τη συμπίεση, ας εκτελέσουμε την ίδια επιλογή, αλλά να ενεργοποιήσουμε τη συμπίεση από την πλευρά του εφεδρικού διακομιστή:

cd /src/dir; tar -cf - * | ssh backup_server "gzip > /backup/dir/archive.tgz"

Τα αποτελέσματα είναι:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Χρόνος εκτέλεσης 10m11s. Πιθανότατα το σημείο συμφόρησης είναι ο συμπιεστής μονής ροής στο άκρο λήψης.

Η ίδια εντολή, αλλά με συμπίεση μεταφέρεται στον διακομιστή με τα αρχικά δεδομένα για να ελεγχθεί η υπόθεση ότι το bottleneck είναι ένας συμπιεστής μονού νήματος.

cd /src/dir; tar -czf - * | ssh backup_server "cat > /backup/dir/archive.tgz"

Αποδείχθηκε έτσι:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Ο χρόνος εκτέλεσης ήταν 9m37s. Το φορτίο σε έναν πυρήνα από τον συμπιεστή είναι καθαρά ορατό, επειδή Η ταχύτητα μεταφοράς δικτύου και το φορτίο στο υποσύστημα του δίσκου προέλευσης είναι παρόμοια.

Για να αξιολογήσετε την κρυπτογράφηση, μπορείτε να χρησιμοποιήσετε το openssl ή το gpg συνδέοντας μια πρόσθετη εντολή openssl ή gpg σε σωλήνα. Για αναφορά θα υπάρχει μια εντολή όπως αυτή:

cd /src/dir; tar -cf - * | ssh backup_server "gzip | openssl enc -e -aes256 -pass pass:somepassword -out /backup/dir/archive.tgz.enc"

Τα αποτελέσματα βγήκαν ως εξής:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Ο χρόνος εκτέλεσης αποδείχθηκε ότι ήταν 10 m30s, καθώς 2 διεργασίες εκτελούνταν στην πλευρά λήψης - το σημείο συμφόρησης είναι και πάλι ένας συμπιεστής μονού νήματος, συν ένα μικρό κόστος κρυπτογράφησης.

UPD: Κατόπιν αιτήματος της bliznezz προσθέτω δοκιμές με pigz. Εάν χρησιμοποιείτε μόνο τον συμπιεστή, θα χρειαστούν 6m30s, αν προσθέσετε και κρυπτογράφηση, θα ήταν περίπου 7m. Η βουτιά στο κάτω γράφημα είναι μια μη ξεπλυμένη κρυφή μνήμη δίσκου:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Διπλό τεστ

Το Duplicity είναι ένα λογισμικό python για δημιουργία αντιγράφων ασφαλείας δημιουργώντας κρυπτογραφημένα αρχεία σε μορφή tar.

Για τα αυξητικά αρχεία, χρησιμοποιείται το librsync, επομένως μπορείτε να περιμένετε τη συμπεριφορά που περιγράφεται στο προηγούμενη ανάρτηση της σειράς.

Τα αντίγραφα ασφαλείας μπορούν να κρυπτογραφηθούν και να υπογραφούν χρησιμοποιώντας το gnupg, το οποίο είναι σημαντικό όταν χρησιμοποιείτε διαφορετικούς παρόχους για την αποθήκευση αντιγράφων ασφαλείας (s3, backblaze, gdrive, κ.λπ.)

Ας δούμε ποια είναι τα αποτελέσματα:

Αυτά είναι τα αποτελέσματα που λάβαμε κατά την εκτέλεση χωρίς κρυπτογράφηση

φθείρων

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Χρόνος εκτέλεσης κάθε δοκιμαστικής λειτουργίας:

Εκκίνηση 1
Εκκίνηση 2
Εκκίνηση 3

16m33s
17m20s
16m30s

8m29s
9m3s
8m45s

5m21s
6m04s
5m53s

Και εδώ είναι τα αποτελέσματα όταν είναι ενεργοποιημένη η κρυπτογράφηση gnupg, με μέγεθος κλειδιού 2048 bit:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Χρόνος λειτουργίας στα ίδια δεδομένα, με κρυπτογράφηση:

Εκκίνηση 1
Εκκίνηση 2
Εκκίνηση 3

17m22s
17m32s
17m28s

8m52s
9m13s
9m3s

5m48s
5m40s
5m30s

Το μέγεθος του μπλοκ υποδείχθηκε - 512 megabyte, το οποίο είναι σαφώς ορατό στα γραφήματα. Το φορτίο του επεξεργαστή παρέμεινε στην πραγματικότητα στο 50%, πράγμα που σημαίνει ότι το πρόγραμμα δεν χρησιμοποιεί περισσότερους από έναν πυρήνα επεξεργαστή.

Η αρχή της λειτουργίας του προγράμματος είναι επίσης σαφώς ορατή: πήραν ένα κομμάτι δεδομένων, το συμπίεσαν και το έστειλαν σε έναν διακομιστή αποθήκευσης αντιγράφων ασφαλείας, ο οποίος μπορεί να είναι αρκετά αργός.
Ένα άλλο χαρακτηριστικό είναι ο προβλέψιμος χρόνος εκτέλεσης του προγράμματος, ο οποίος εξαρτάται μόνο από το μέγεθος των αλλαγμένων δεδομένων.

Η ενεργοποίηση της κρυπτογράφησης δεν αύξησε σημαντικά τον χρόνο εκτέλεσης του προγράμματος, αλλά αύξησε το φορτίο του επεξεργαστή κατά περίπου 10%, το οποίο μπορεί να είναι ένα πολύ ωραίο μπόνους.

Δυστυχώς, αυτό το πρόγραμμα δεν μπόρεσε να ανιχνεύσει σωστά την κατάσταση με τη μετονομασία του καταλόγου και το μέγεθος του αποθετηρίου που προέκυψε αποδείχθηκε ίσο με το μέγεθος των αλλαγών (δηλαδή, όλα τα 18 GB), αλλά η δυνατότητα χρήσης ενός μη αξιόπιστου διακομιστή για δημιουργία αντιγράφων ασφαλείας σαφώς καλύπτει αυτή τη συμπεριφορά.

Διπλό τεστ

Αυτό το λογισμικό είναι γραμμένο σε C# και εκτελείται χρησιμοποιώντας ένα σύνολο βιβλιοθηκών από το Mono. Υπάρχει ένα GUI καθώς και μια έκδοση CLI.

Η κατά προσέγγιση λίστα των κύριων λειτουργιών είναι παρόμοια με τη διπλοτυπία, συμπεριλαμβανομένων των διαφόρων παρόχων αποθήκευσης αντιγράφων ασφαλείας, ωστόσο, σε αντίθεση με τη διπλοτυπία, οι περισσότερες δυνατότητες είναι διαθέσιμες χωρίς εργαλεία τρίτων. Το αν αυτό είναι συν ή μείον εξαρτάται από τη συγκεκριμένη περίπτωση, αλλά για αρχάριους, είναι πολύ πιο εύκολο να έχουν μια λίστα με όλα τα χαρακτηριστικά μπροστά τους ταυτόχρονα, αντί να χρειάζεται να εγκαταστήσουν πρόσθετα πακέτα για python, όπως είναι η περίπτωση με διπροσωπία.

Μια άλλη μικρή απόχρωση - το πρόγραμμα γράφει ενεργά μια τοπική βάση δεδομένων sqlite για λογαριασμό του χρήστη που ξεκινά το αντίγραφο ασφαλείας, επομένως πρέπει επιπλέον να διασφαλίζετε ότι η απαιτούμενη βάση δεδομένων καθορίζεται σωστά κάθε φορά που ξεκινά η διαδικασία χρησιμοποιώντας το cli. Όταν εργάζεστε μέσω GUI ή WEBGUI, οι λεπτομέρειες θα αποκρύπτονται από τον χρήστη.

Ας δούμε τι δείκτες μπορεί να παράγει αυτή η λύση:

Εάν απενεργοποιήσετε την κρυπτογράφηση (και το WEBGUI δεν συνιστά να το κάνετε αυτό), τα αποτελέσματα είναι τα εξής:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Ώρες:

Εκκίνηση 1
Εκκίνηση 2
Εκκίνηση 3

20m43s
20m13s
20m28s

5m21s
5m40s
5m35s

7m36s
7m54s
7m49s

Με την κρυπτογράφηση ενεργοποιημένη, χρησιμοποιώντας το aes, μοιάζει με αυτό:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Ώρες:

Εκκίνηση 1
Εκκίνηση 2
Εκκίνηση 3

29m9s
30m1s
29m54s

5m29s
6m2s
5m54s

8m44s
9m12s
9m1s

Και αν χρησιμοποιήσετε το εξωτερικό πρόγραμμα gnupg, βγαίνουν τα ακόλουθα αποτελέσματα:

Αντίγραφο ασφαλείας Μέρος 3: Ανασκόπηση και δοκιμή διπλοτυπίας, duplicati

Εκκίνηση 1
Εκκίνηση 2
Εκκίνηση 3

26m6s
26m35s
26m17s

5m20s
5m48s
5m40s

8m12s
8m42s
8m15s

Όπως μπορείτε να δείτε, το πρόγραμμα μπορεί να λειτουργήσει σε πολλά νήματα, αλλά αυτό δεν το καθιστά πιο παραγωγική λύση και αν συγκρίνετε την εργασία κρυπτογράφησης, ξεκινά ένα εξωτερικό πρόγραμμα
αποδείχθηκε ότι ήταν πιο γρήγορο από τη χρήση της βιβλιοθήκης από το σετ Mono. Αυτό μπορεί να οφείλεται στο γεγονός ότι το εξωτερικό πρόγραμμα είναι πιο βελτιστοποιημένο.

Ένα άλλο ωραίο πράγμα ήταν το γεγονός ότι το μέγεθος του αποθετηρίου παίρνει ακριβώς όσο τα πραγματικά αλλαγμένα δεδομένα, δηλ. Το duplicati εντόπισε μια μετονομασία καταλόγου και χειρίστηκε σωστά αυτήν την κατάσταση. Αυτό μπορεί να φανεί κατά την εκτέλεση της δεύτερης δοκιμής.

Συνολικά, αρκετά θετικές εντυπώσεις από το πρόγραμμα, συμπεριλαμβανομένου του ότι είναι αρκετά φιλικό προς τους αρχάριους.

Ευρήματα

Και οι δύο υποψήφιοι εργάστηκαν μάλλον αργά, αλλά σε γενικές γραμμές, σε σύγκριση με την κανονική πίσσα, υπάρχει πρόοδος, τουλάχιστον με τα διπλά. Το τίμημα μιας τέτοιας προόδου είναι επίσης σαφές - μια αξιοσημείωτη επιβάρυνση
επεξεργαστή. Γενικά, δεν υπάρχουν ιδιαίτερες αποκλίσεις στην πρόβλεψη των αποτελεσμάτων.

Ευρήματα

Εάν δεν χρειάζεται να βιαστείτε πουθενά, και έχετε επίσης έναν εφεδρικό επεξεργαστή, οποιαδήποτε από τις λύσεις που εξετάζονται θα κάνει, σε κάθε περίπτωση, έχει γίνει αρκετή δουλειά που δεν πρέπει να επαναληφθεί γράφοντας σενάρια περιτυλίγματος πάνω από πίσσα . Η παρουσία κρυπτογράφησης είναι μια πολύ απαραίτητη ιδιότητα εάν ο διακομιστής για την αποθήκευση αντιγράφων ασφαλείας δεν μπορεί να είναι πλήρως αξιόπιστος.

Σε σύγκριση με λύσεις που βασίζονται rsync - η απόδοση μπορεί να είναι αρκετές φορές χειρότερη, παρά το γεγονός ότι στην καθαρή της μορφή η πίσσα λειτούργησε 20-30% πιο γρήγορα από το rsync.
Υπάρχουν οικονομίες στο μέγεθος του αποθετηρίου, αλλά μόνο με διπλότυπα.

ανακοίνωση

Backup, μέρος 1: Γιατί χρειάζεται backup, ανασκόπηση μεθόδων, τεχνολογιών
Δημιουργία αντιγράφων ασφαλείας Μέρος 2: Έλεγχος και δοκιμή εργαλείων δημιουργίας αντιγράφων ασφαλείας που βασίζονται σε rsync
Αντίγραφο ασφαλείας Μέρος 3: Αναθεώρηση και δοκιμή διπλασιότητας, duplicati, deja dup
Backup Μέρος 4: Zbackup, restic, borgbackup έλεγχος και δοκιμή
Αντίγραφο ασφαλείας, μέρος 5: Δοκιμή αντιγράφων ασφαλείας bacula και veeam για linux
Δημιουργία αντιγράφων ασφαλείας Μέρος 6: Σύγκριση εργαλείων δημιουργίας αντιγράφων ασφαλείας
Αντίγραφο ασφαλείας Μέρος 7: Συμπεράσματα

Αναρτήθηκε από: Πάβελ Ντέμκοβιτς

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο