Το αυτόματο backup αρχείων σε εξωτερικό δίσκο και δικτυακό δίσκο και μάλιστα με ταυτόχρονη κρυπτογράφηση, αφαίρεση διπλότυπων αντιγράφων και πολλαπλών αντιγράφων ασφαλείας είναι μερικές μόνο από τις δυνατότητες του Vorta (Borg).

Backup… έλα μωρέ τώρα…

Το Backup στο μυαλό των περισσοτέρων είναι η περιοδική αντιγραφή – επικόλληση αρχείων από έναν υπολογιστή, σε μια εξωτερική μονάδα δίσκου. Ακόμα και αυτό, μπορεί να αυτοματοποιηθεί στο Linux όπως είδαμε στον σχετικό οδηγό «Αυτόματα αντίγραφα ασφαλείας – backup στο Linux«.

Το παραπάνω όμως είναι η κορυφή… της κορυφής του παγόβουνου. Όπως είχαμε γράψει και για την ασφάλεια των υπολογιστικών συστημάτων έτσι και εδώ , το Backup είναι διαδικασίες… όχι ένα προϊόν.

Άρα έχοντας στο μυαλό μας το backup ως διαδικασία, καταλαβαίνουμε ότι το Google Drive, το Nextcloud, ο εξωτερικός ή ένας δεύτερος εσωτερικός δίσκος, το RAID σε έναν server, το USB stick (ναι το έχω ακούσει αυτό) κλπ ΔΕΝ ΕΙΝΑΙ BACKUPS !

Advertisements

Backup σε 3-2-1 … πάμε; Όχι ακριβώς.

Αν και βολεύει να το θυμόμαστε, το 3-2-1 είναι μια δημοφιλής στρατηγική, διαδικασία ή αλλιώς μέθοδο λήψης αντιγράφων ασφαλείας (Backups) την οποία προτείνει και η αντίστοιχη υπηρεσία των ΗΠΑ – United States Computer Emergency Readiness Team.

Η διαδικασία Buckup 3-2-1 αναφέρεται σε :

  • 3 – Δημιουργία 3 backup σημαντικών αρχείων (1 πρωτεύον και άμεσο και 2 δευτερεύοντα)
  • 2 – Διατήρηση αυτών των backup σε 2 διαφορετικά μέσα αποθήκευσης (Εξωτερικοί δίσκοι, δικτυακοί NAS δίσκοι, Tapes, Optical DVD/CD κλπ)
  • 1 – Διατήρηση ενός από τα backup σε διαφορετικό χώρο ( 1 Offsite Backup) από αυτών που βρίσκεστε (π.χ. Cloud Storage, στο Χωριό που πάμε συχνά ;) κλπ )

Αν και δεν συμπεριλαμβάνεται στην παραπάνω διαδικασία, εμείς θα προσθέσουμε

  • Συμπίεση: Τα Backup θα συμπιέζονται αυτόματα με LZ4 για εξοικονόμηση χώρου (Εναλακτικά μπορείτε να επιλέξετε και το Zstandard)
  • Κρυπτογράφηση: Θα γίνεται κρυπτογράφηση των backup διότι δεν θέλουμε, σε περίπτωση απώλειας/κλοπής/προβλήματος, τα backup μας να πέσουν σε λάθος χέρια.
  • Deduplication: Με αυτή την τεχνική δεν γίνονται εκ νέου αντίγραφα αρχείων που δεν έχουν τροποποιηθεί από την τελευταία φορά που έγινε το προηγούμενο backup. Έτσι ελαχιστοποιείται η χρήση χώρου αποθήκευσης αφού δεν γίνεται επανάληψη δεδομένων και αποθήκευση των ίδιων δεδομένων πολλές φορές. Επίσης, το Deduplication μειώνει τον χρόνο που χρειάζεται η λήψη των backup αλλά και το φορτίο στο δικτύου.

Συνοψίζοντας όλα τα παραπάνω:

Στο τέλος του οδηγού θα έχουμε κάνε 1 backup σε εξωτερικό δίσκο, 1 backup σε Raspberry Pi 4 και 1 backup που τρέχει σε κάποιο File/Storage/Cloud Server. Στο παρόν άρθρο, χρησιμοποιήσαμε ένα VPServer από την Digitalocean, που είχαμε φτιάξει και για άλλες χρήσεις. Μπορείτε να δημιουργήστε έναν νέο λογαριασμό από το παρακάτω link και θα λάβετε 100$ credits για να τα χρησιμοποιήσετε μέσα σε 60 ημέρες:

Φυσικά εσείς μπορείτε να κάνετε τις δικές σας παραλλαγές των μέσων αποθήκευσης, όπως π.χ. αντί για Raspberry Pi να χρησιμοποιήσετε ένα έτοιμο NAS, ή και αντί για VPS, να χρησιμοποιήσετε κάποιο Storage Server/ Amazon / Google / MS Azure / BackBlaze κλπ που παρέχει μεγάλους δίσκους για αποθήκευση Backup.

Vorta | Borg Backup

Το Vorta είναι μια εφαρμογή που λειτουργεί ως γραφική διεπαφή στο Borg. Η τεκμηρίωση για αυτά είναι :

Ο λόγος που επιλέξαμε το Vorta και κατ’ επέκταση το Borg Backup είναι επειδή μπορούμε να εφαρμόσουμε τις διαδικασίες backup που περιγράψαμε στην παραπάνω σύνοψη, σε ένα και μοναδικό λογισμικό. Επίσης, το γεγονός ότι μπορούμε να χρησιμοποιούμε το Borg απο το τερματικό ή μέσω του Vorta το κάνει ιδανικό και για πιο περίπλοκα σενάρια (όπως χρήση του σε Shell Scripts ή με Ansible, Salt, Disk images κλπ – Βλέπε επίσημη τεκμηρίωση)

Εγκατάσταση Vorta

Το Vorta είναι διαθέσιμο για Linux, Windows και macOS και μπορείτε να το εγκαταστήσετε είτε απο τα αποθετήρια λογισμικών είτε από το επίσημο site:

Στο παρόν οδηγό υποθέτουμε οτι έχετε εγκαταστήσει το Vorta σε κάποια Linux διανομή.

Πρώτη χρήση του Vorta Backup

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

Ανοίγουμε το Vorta και βλέπουμε ότι το λογισμικό που θα χρησιμοποιήσουμε μας εμφανίζει το τρεχούμενο profile το οποίο διαθέτει καρτέλες ρυθμίσεων με πληροφορίες για τον προορισμό των backup (Αποθετήριο / Repository), την συμπίεση και άλλα.

Πρώτα ξεκινάμε με την δημιουργία του προφίλ που κρατάει τις ρυθμίσεις για την προέλευση, τον προορισμό αλλά και όλα αυτά που θέλουμε να γίνεται όταν ξεκινάει και τελειώνει το Backup.

Άρα για τις ανάγκες του οδηγού θα φτιάξουμε 1 profile, θα το ρυθμίσουμε και έπειτα θα το αντιγράψουμε άλλες 2 φορές για να αλλάξουμε απλά τον προορισμό των backup. Με άλλα λόγια 1 προφίλ για τον εξωτερικό δίσκο, 1 για το RaspberryPi και ένα για τον Off-site backup.

Vorta Backup Rename Profile

Από τα κουμπιά δεξιά του «Current Profile» μπορούμε να αλλάξουμε το όνομα του προφίλ π.χ. «backup-laptop-doulias-eksoterikos-diskos» για να μας δίνει πιο περιγραφική πληροφόρηση.

  1. Πατάμε στο dropdown menu του Repository και επιλέγουμε το +Initialize New Repository
  2. Στο repository URL θέλουμε την διαδρομή προορισμού των backup μας. Για το πρώτο μας backup profile θέλουμε έναν κενό φάκελο σε εξωτερικό δίσκο. Πατάμε λοιπόν το εικονίδιο φακέλου από τα δεξιά και πάμε στον εν λόγο φάκελο
  3. Μόλις το επιλέξουμε, από κάτω γράφουμε ένα συνθηματικό που θα χρησιμοποιείται στην κρυπτογράφηση των αρχείων.Αν χάσουμε το συνθηματικό αυτό, θα χάσουμε την πρόσβαση στα backup οπότε μεριμνήστε να μην το ξεχάσετε.
    Σημαντικό: Κανένας δεν μπορεί να έχει πρόσβαση στα κρυπτογραφημένα αρχεία σας εκτός από εσάς, αρκεί κάποιος να μην αποκτήσει πρόσβαση στον υπολογιστή από το οποίο τρέχει το Vorta διότι όπως θα δείτε παρακάτω υπάρχει τρόπος να εξαχθεί το συνθηματικό μαζί με τις ρυθμίσεις backup.

Τελειώσαμε με τον Προορισμό οπότε θα πρέπει να ρυθμίσουμε την Προέλευση.

Πάμε τώρα στην καρτέλα sources (Προέλευση) όπου βάζουμε τους φακέλους που θέλουμε να γίνονται backup. Για παράδειγμα μπορούμε να βάλουμε όλο το /home/user. Στο «Exclude Patterns» μπορείτε να πείτε στο Vorta ποιους φακέλους/αρχεία που είναι μέσα στην παραπάνω προέλευση, να εξαιρούνται από τα backup. Περισσότερα για τα Pattern που υποστηρίζει μπορείτε να διαβάσετε κάνοντας κλικ στο «more» που σας δίνει.

Τελειώσαμε και με την Προέλευση.

Μένει να αυτοματοποιήσουμε την λήψη των backup στην καρτέλα, Schedule. Σε αυτό θα πρέπει να αποφασίσετε κάθε πότε να γίνεται η λήψη των backup. Φυσικά, για κάθε προφίλ μπορείτε να ορίσετε διαφορετικές ρυθμίσεις. Έτσι, για το backup σε εξωτερικό δίσκο μπορείτε π.χ. να λαμβάνετε ανά 3 ώρες. Επειδή οι πιθανές αλλαγές – προσθήκες αρχείων κλπ. θα είναι μικρές εντός των 3 ωρών, τα backup που θα δημιουργούνται από αυτό το προφίλ θα είναι πολύ μικρά και ανεπαίσθητα από θέμα πόρων. Στην ίδια καρτέλα, μπορείτε να ενεργοποιήσετε την διαγραφή παλιών backup (Prune old Archives after each backup). Μόλις είστε έτοιμοι, πατήστε Apply για να γίνει ο προγραμματισμός των backup.

Vorta Backup Mount

Στην καρτέλα «Archive» θα αρχίσετε να βλέπετε τις αναφορές από τα backup που έχει κάνει το επιλεγμένο profile. Επίσης επιλέγοντας κάποιο από τα archive και πατώντας στο «Selected Archive» μπορείτε να κάνετε διάφορες ενέργειες με το backup όπως π.χ. να το προσαρτήσετε ως φάκελο στον υπολογιστή σας για να περιηγηθείτε στα αρχεία του και να μην χρειάζεται να κάνετε λήψη όλου του backup αλλά να κατεβάσετε ένα μόνο αρχείο που χρειάζεστε από κάποιο backup. Επίσης, με τα κουμπιά δεξιά π.χ. Diff μπορείτε να επιλέξετε δυο archive και να σας εμφανίσει τις διαφορές μεταξύ του ενός backup από το άλλο.

Τέλος, κάτω από αυτά είναι η ενότητα «Prune Options and Archive Naming» όπου μπορείτε να ρυθμίσετε πόσα backup χρονολογικά να διατηρούνται και τι ονόματα να λαμβάνουν (Βλέπε Vorta Prune).

Στην καρτέλα Misc υπάρχουν διάφορες επιλογές που αφορούν το Vorta όπως π.χ. το «Automatically Start Vorta at Login» το οποίο θα πρέπει να είναι ενεργό.

Τελειώσατε. Πατήστε το Start Backup και αν όλα είναι σωστά θα ξεκινήσει το πρώτο backup το οποίο ανάλογα και με το μέγεθος των αρχείων προέλευσης μπορεί να πάρει αρκετή ώρα. Μην ανησυχείτε όμως, οι επόμενες φορές, όπως είπαμε θα είναι πολύ πιο γρήγορες. Σε περίπτωση που κάτι δεν δουλεύει, το vorta θα σας το εμφανίσει δίπλα από το κουμπί «Start Backup» ή στην ενότητα Logs της καρτέλας Schedule, ή μπορείτε να δείτε πιο αναλυτικά στην καρτέλα Misc, κάτω δεξιά στο Log που αναφέρεται και η έκδοση Vorta και του Borg.

Advertisements

Αντίγραφα των Backup Profile

Αφού τελειώσαμε με το πρώτο μας backup profile, πρέπει να φτιάξουμε όπως είπαμε άλλα δύο, ένα για το δικτυακό δίσκο (Raspberry Pi ή NAS κλπ) και ένα για το offsite.

  1. Από το τωρινό προφίλ, δεξιά πατάμε το κουμπί «Export Profile» και στο παραθυράκι που θα εμφανιστεί ενεργοποιούμε την επιλογή «Include Borg Passphrase» και αποθηκεύουμε το αρχείο που θα έχει κατάληξη .json προσωρινά π.χ. στο /tmp
  2. Έπειτα πατάμε το drop-down Import Profile βελάκι δίπλα στο + και επιλέγουμε το αρχείο .json που αποθηκεύσαμε στο /tmp

Αφού το κάνετε import, θα το εμφανίζει με το όνομα του προηγούμενου προφίλ με -1 οπότε του αλλάζουμε το όνομα για να το ξεχωρίζουμε από το πρώτο προφίλ μας π.χ. «backup-se-RaspberryPi».

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

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

Αφού τελειώσετε με τις ρυθμίσεις, οι οποίες προφανώς και θα είναι λιγότερες μιας και είναι ίδιες σε πολλά σημεία με το πρώτο προφίλ που φτιάξαμε, πατάμε Start Backup. Και εδώ το πρώτο Backup όπως καταλαβαίνετε θα αργήσει.

Στην συνέχεια, επαναλάβετε την ίδια διαδικασία και για το 3ο και τελευταίο backup που θα είναι ένα Offsite backup. Επίσης θα πρέπει να του αλλάξετε τον προορισμό και ίσως το schedule του σε περίπτωση π.χ. που είναι ένας εξωτερικός δίσκος που το έχετε π.χ. σε αυτοκίνητο, σε άλλο σπίτι κλπ. Αν όμως είναι σε κάποιο VPS/Cloud Storage, τότε μπορείτε να χρησιμοποιήσετε και τα «Shell Commands» που θα βρείτε στην καρτέλα Schedule για να τρέξετε συγκεκριμένες εντολές πριν και μετά το backup όπως π.χ. μια εντολή που κάνει πρώτα mount έναν sshfs / cloud bucket σε κάποιον τοπικό φάκελο του υπολογιστή που θα τρέξει το Vorta ή ακόμα και κάποιο custom shell script. Επίσης μπορείτε να στήσετε και έναν Borg Server για να χρησιμοποιήσετε την επιλογή SSH authentication που παρέχει το Vorta/Borg για απευθείας σύνδεση με το backup repository. (Βλέπε Vorta Remote Backups)

Επαναφορά backup

Στατιστικά μιλώντας κάποια στιγμή, θα χρειαστεί να κάνετε ολική ή μερική επαναφορά κάποιου backup. Για να το κάνετε αυτό, υπάρχουν δύο απλοί τρόποι. Από την καρτέλα Archive επιλέγετε από πια χρονική στιγμή θέλετε να επαναφέρετε κάποιο backup η τμήμα του:

  • Στην συνέχεια πατάτε το κουμπί «Selected Archive» και επιλέγετε Extract. Ανάλογα και το μέγεθος του backup ίσως πάρει λίγη ώρα η προετοιμασία. Έπειτα θα σας εμφανίσει ένα παράθυρο από όπου μπορείτε να επιλέξετε αν θέλετε όλους τους φακέλους η κάποια μόνο για επαναφορά. Στην συνέχεια πατάτε «Extract» και θα σας ρωτήσει που θέλετε να τα εξάγει.
  • Ο δεύτερος τρόπος είναι να πατήσετε το κουμπί «Selected Archive» και να επιλέξετε το Mount για να προσαρτήσετε το backup σας σε κάποιον κενό φάκελο του υπολογιστή σας ως εξωτερική μονάδα. Έπειτα περιηγηθείτε στα αρχεία αυτού του δίσκου και αντιγράφετε/επικολλάτε όποιοι φάκελοι/αρχεία χρειάζεστε. Μόλις τελειώστε μπορείτε να κάνετε unmount από το ίδιο κουμπί.

Επίλογος

Το Vorta και κατ’επέκταση το Borg είναι enterprise ready λογισμικά ανοιχτού κώδικα που αξίζει να διαβάσετε και να μελετήσετε την τεκμηρίωσή τους. Εμείς παρουσιάσαμε μια γρήγορη και εύκολη εφαρμογή του 3-2-1 backup strategy για απλές ανάγκες που χρειάζεται ένα σπίτι ή και μια μικρή επιχείρηση.

Σε κάθε περίπτωση, πέρα από τα backup θα πρέπει να προγραμματίσετε και μια δοκιμή επαναφοράς ανά τακτά διαστήματα. Παρόλο που το Vorta – Borg backup κάνει αυτόματα μόνο του έλεγχο ακεραιότητας των backup, όπως έχουμε πει :

“Η κατάσταση οποιουδήποτε αντιγράφου ασφαλείας είναι άγνωστη μέχρι να γίνει προσπάθεια επαναφοράς.”

— Erwin Schrodinger