Αψήφησε τους κανόνες της αναδυόμενης τάξης της Πληροφορίας

Αξιόπιστα αντίγραφα ασφαλείας με το Borg

Διαπλατφορμικό εργαλείο backup με deduplication, συμπίεση, κρυπτογράφηση, έλεγχο των αντιγράφων και ένα σωρό άλλα χαρακτηριστικά. Απλά εξαιρετικό.

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

Στο σημείο αυτό θα τονίσουμε τους βασικούς κανόνες που θα πρέπει να θυμόμαστε όλοι σε τέτοιες περιπτώσεις, οι οποίοι φυσικά προέκυψαν από «τρομακτικές» εμπειρίες πραγματικής χρήσης:

  1. Ό,τι δεν έχει αποθηκευτεί σε αντίγραφο ασφαλείας, δε μπορεί να ανακτηθεί αν χαθεί
  2. Ένα μόνο αντίγραφο ισούται με κανένα
  3. Αντίγραφο ασφαλείας που αποθηκεύεται στον ίδιο δίσκο με το βασικό μας σύστημα, είναι σαν να μην υπάρχει
  4. Μη απομακρυσμένα αντίγραφα ασφαλείας δε θα επιβιώσουν σε ενδεχόμενο σενάριο καταστροφής
  5. Κανένα αντίγραφο ασφαλείας δεν είναι αξιόπιστο μέχρι να επιβεβαιωθεί αυτό με επαναφορά

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

Έτσι, στο παρόν άρθρο θα αναφερθούμε σε ένα πραγματικά αξιόλογο και αποδεδειγμένα αξιόπιστο εργαλείο λήψης αντιγράφων ασφαλείας. «Εργαλείο» και όχι «εφαρμογή» γιατί είναι πρόγραμμα τερματικού και δε διαθέτει γραφική διεπαφή. Μη σας ξενίσει όμως αυτό· προσφέρει αρκετά περισσότερα από άλλα, αντίστοιχα προγράμματα και εφαρμογές.

Το Borg που σώζει

Ξεκίνησε να δημιουργείται πριν από αρκετά χρόνια, με την έκδοση 1.0 να βλέπει το φως της ζωής στις 5 Μαρτίου 2016, και ονομάζεται BorgBackup (πιο γνωστό απλά ως Borg). Η βασική ομάδα ανάπτυξής του αποτελείται από έντεκα προγραμματιστές που αποκαλούνται «The Borg Collective» (σ.σ. πιθανή αναφορά στο Star Trek, αν και δε μπόρεσα να το επιβεβαιώσω), γύρω τους όμως έχει δημιουργηθεί ολόκληρη κοινότητα και οι συνεισφέροντες πλέον είναι 144 άτομα.

Η κεντρική ιδέα για την υλοποίησή του βασίζεται στο γνωστό (για τους αρκετά έμπειρους χρήστες τουλάχιστον) Attic, του οποίου και αποτελεί fork, και είναι γραμμένο σε C και Python.

Ο κώδικάς του διατίθεται ελεύθερα υπό άδεια BSD 3-Clause.

Σημείωση
Ο δημιουργός του Attic ονομάζεται Jonas Borgström, άρα η ονομασία του Borg είναι και λεκτικό παιχνίδι με το επώνυμό του.

Είναι πολυδύναμο

Το Borg διαθέτει αρκετά χαρακτηριστικά, με πιο σημαντικά τα παρακάτω:

  • Deduplication1: αυτό επιτυγχάνεται με το «σπάσιμο» των δεδομένων σε μικρότερα τμήματα (chunks), με το καθένα να έχει το δικό του hash ID. Έτσι, αν τα IDs δύο διαφορετικών κομματιών είναι όμοια, το ένα από αυτά θεωρείται διπλότυπο και δεν αποθηκεύεται, εξοικονομώντας χώρο στο δίσκο. Η μέθοδος αυτή είναι ιδιαίτερα αποτελεσματική, γιατί δεν εξαρτάται από σταθερές ονομασίες αρχείων/φακέλων ή τα timestamps τους, ούτε χρειάζεται τα δεδομένα να παραμείνουν σε συγκεκριμένη θέση μέσα σε κάποιο αρχείο.
  • Ταχύτητα: Εδώ το Borg αξιοποιεί την ταχύτητα της C, με τα κρίσιμα για την απόδοση κομμάτια του κώδικα να είναι γραμμένα σε αυτή αλλά και σε Cython (επέκταση της -πιο αργής σε εκτέλεση- Python που παράγει κώδικα με απόδοση παρόμοια με τη C). Δημιουργείται επίσης ένα τοπικό caching ευρετήριο για τα δεδομένα που αποθηκεύονται και τα chunks τους, ενώ είναι πολύ γρήγορος και ο εντοπισμός των αρχείων που δεν έχουν υποστεί αλλαγές και άρα δε χρειάζεται να αποθηκευτούν ξανά.
  • Κρυπτογράφηση: τα αντίγραφα ασφαλείας μπορούν προαιρετικά να κρυπτογραφηθούν με AES-256, με την κρυπτογράφηση να λαμβάνει χώρα στο τοπικό μας μηχάνημα, και ο έλεγχος της εγκυρότητάς τους γίνεται με HMAC-SHA256
  • Συμπίεση: Για ακόμα μεγαλύτερη εξοικονόμηση χώρου, υπάρχει η δυνατότητα συμπίεσης των δεδομένων με lz4 (προεπιλογή), zstd, zlib ή lzma.
  • Απομακρυσμένη αποθήκευση αντιγράφων ασφαλείας: Όπως είπαμε παραπάνω, αντίγραφο που βρίσκεται στον ίδιο χώρο με το κύριο σύστημα δε θα επιβιώσει σε ακραίο σενάριο. Για το λόγο αυτόν, το Borg μπορεί να αποθηκεύει δεδομένα σε οποιονδήποτε απομακρυσμένο host, αρκεί απλά να υπάρχει πρόσβαση μέσω SSH.
Σημείωση
Ο τρόπος αυτός δεν είναι ταυτόσημος με τη μεταφορά ενός αντιγράφου στο «cloud», η οποία είναι λιγότερο αποτελεσματική και ασφαλής για τα δεδομένα μας.
  • Προσαρτήσιμα αντίγραφα ασφαλείας: είδαμε ότι το Borg δεν αποθηκεύει ένα απλό αντίγραφο των αρχείων μας, όπως κάνουν άλλες λύσεις. Ως εκ τούτου, δε μπορούμε να περιηγηθούμε άμεσα στο φάκελο των αντιγράφων και να επιλέξουμε τι θα επαναφέρουμε, γιατί δεν υπάρχει τέτοιος. Μπορούμε όμως να προσαρτήσουμε τα αντίγραφα στο σύστημα αρχείων μας και έτσι να έχουμε πρόσβαση σε αυτα.
  • Διαπλατφορμικότητα: το Borg διαθέτει εκδόσεις για Linux, FreeBSD/OpenBSD/NetBSD και macOS, όπως επίσης και -πειραματικές επί του παρόντος- για Cygwin και WSL.

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

Απλούστατο στη χρήση

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

Αρχικά, χρειάζεται να δημιουργήσουμε το αποθετήριο των αντιγράφων (μη σας μπερδέψει ο όρος, αναφέρεται στο φάκελο όπου θα αποθηκεύονται τα αντίγραφα). Στο παράδειγμά μας θα χρησιμοποιήσουμε την τοποθεσία /run/media/soulrain/Backup/Test (ο φάκελος Test δεν υπάρχει ακόμα) και έτσι θα δώσουμε την εντολή

borg init --e none --info /run/media/soulrain/Backup/Test

Εκκίνηση αποθετηρίου του BorgΛέμε στο Borg ότι δε θέλουμε να κρυπτογραφηθεί τίποτα, ζητάμε να μας εμφανίσει πληροφορίες στο output με την παράμετρο --info και ορίζουμε τη διαδρομή του αποθετηρίου.

Στη συνέχεια θα πάρουμε το αντίγραφό μας (εδώ ο φάκελος ~/Desktop/Folder) πολύ εύκολα:

borg create --stats /run/media/soulrain/Backup/Test::Backup1 ~/Desktop/Folder

Λήψη αντιγράφου ασφαλείας με το BorgΤο ονομάσαμε «Backup1» και με την παράμετρο --stats είδαμε κάποια σημαντικά στοιχεία.

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

borg list /run/media/soulrain/Backup/Test

Λίστα αντιγράφων ασφαλείας του BorgΘα παρατηρήσετε ότι μας δείχνει επίσης την ημερομηνία και την ώρα λήψης του αντιγράφου, όπως και το hash του. Με τον ίδιο τρόπο μπορούμε να δούμε και τα περιεχόμενά του, ως πρώτη επιβεβαίωση ότι όλα βαίνουν καλώς:

borg list /run/media/soulrain/Backup/Test::Backup1

Περιεχόμενα αντιγράφου ασφαλείας του BorgΑφού λοιπόν επιβεβαιώσαμε ότι το αντίγραφο εμπεριέχει όλα τα αρχεία που θέλαμε, πάμε τώρα να ελέγξουμε τη συνοχή του αποθετηρίου:

borg check --info /run/media/soulrain/Backup/Test

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

Αν θέλουμε να αποκλείσουμε ορισμένα αρχεία από τα αντίγραφα ασφαλείας, προσθέτουμε κατά τη δημιουργία τους (δηλαδή στην εντολή borg create) όποια από τις δύο παραμέτρους επιθυμούμε:

--exclude /diadromi/arxeioy

ή

--exclude-from /diadromi/arxeioy

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

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

Έστω λοιπόν ότι θέλουμε να δούμε τα περιεχόμενα των αντιγράφων στο φάκελο ~/Desktop/Contents. Αφού τον φτιάξουμε, θα προσαρτήσουμε σε αυτόν το αποθετήριο του Borg (ή ένα από τα αντίγραφα που υπάρχουν μέσα σε αυτό):

mkdir ~/Desktop/Contents
borg mount --info /run/media/soulrain/Backup/Test ~/Desktop/Contents

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

Πληροφορία
Η προσάρτηση των αντιγράφων γίνεται με τη βοήθεια του εικονικού συστήματος αρχείων FUSE.

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

borg umount ~/Desktop/Contents
rm -r ~/Desktop/Contents

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

Το Borg μας δίνει και αυτήν τη δυνατότητα, και μάλιστα με επιμερισμό. Χρησιμοποιώντας (ενδεικτικά) την εντολή

borg prune --info --stats --list --keep-daily=1 --keep-weekly=1 --keep-monthly=1 /run/media/soulrain/Backup/Test

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

Μείωση αντιγράφων ασφαλείας του BorgΓια επαναφορά των αρχείων μας δίνουμε απλά την εντολή

borg extract --list /run/media/soulrain/Backup/Test::Backup1

Προσοχή εδώ γιατί η εγγραφή θα γίνει στο φάκελο που βρισκόμαστε, άρα θα πρέπει πριν να μεταφερθούμε στο κατάλληλο σημείο (για το παράδειγμά μας είναι ο ριζικός φάκελος / του συστήματός μας, εφόσον το αντίγραφο περιέχει την πλήρη διαδρομή ~/Desktop/Folder).

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

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

Για τους πιο έμπειρους αλλά και για όσους δε φοβούνται να αποκτήσουν εμπειρία, είναι ευνόητο ότι μπορούν να συνδυαστούν οι επιμέρους εντολές και να δημιουργηθούν scripts αυτοματοποίησης, με τον παραδοσιακό *nix τρόπο. Υπάρχουν μάλιστα ήδη αρκετά έτοιμα τέτοια scripts από την κοινότητά του, τα οποία μπορείτε να χρησιμοποιήσετε ή έστω να πάρετε ιδέες για να φτιάξετε τα δικά σας.

Θα το βρείτε παντού

Η τρέχουσα έκδοση του Borg είναι η 1.1.7, όπως όμως συμβαίνει συνήθως στον κόσμο του Linux, δεν είναι διαθέσιμη σε αρκετές διανομές. Εντούτοις, θα βρείτε σίγουρα παλιότερες, εξίσου λειτουργικές εκδόσεις στα αποθετήρια2. Ανάλογα με τη διανομή, ενδέχεται να χρειαστεί και η εγκατάσταση του πακέτου python-llfuse3 το οποίο παρέχει τη λειτουργία προσάρτησης των αντιγράφων ασφαλείας στο σύστημα αρχείων.

Υπάρχουν επίσης και binary αρχεία για Linux (32bits/64bits), FreeBSD και macOS, όπως και ο πηγαίος κώδικάς του.

Κατεβάστε το Borg

Σημείωση
Είναι δυνατή και η εγκατάσταση μέσω του pip της Python, ειδικά σε Linux όμως συνιστάται να αποφεύγεται αυτός ο τρόπος και να προτιμώνται τα αποθετήρια των διανομών.

Δοκιμάστε το

Από την προσωπική μου εμπειρία, μπορώ να πω ότι είμαι απόλυτα ευχαριστημένος. Το Borg κάνει ακριβώς όσα υπόσχεται, με τον τρόπο που τα υπόσχεται, είναι γρήγορο και αξιόπιστο. Όσο καιρό το χρησιμοποιώ (μέσω custom script) δεν έχω χάσει το παραμικρό αρχείο, ούτε έχω παρατηρήσει κάποια δυσλειτουργία.

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

Η ιστοσελίδα του Borg

Μοιραστείτε μαζί μας τις σκέψεις σας

avatar
  Εγγραφή  
Ειδοποίηση για

Σας ενημερώνουμε ότι η ιστοσελίδα μας ακολουθεί ειδικό πρόγραμμα διατροφής και μασουλάει φρεσκοψημένα cookies Καλά μωρέΘέλω να μάθω περισσότερα