Προτεινόμενος μηχανισμός blksnap για τη δημιουργία στιγμιότυπων μπλοκ συσκευών στο Linux

Η εταιρεία Veeam, η οποία παράγει λογισμικό για backup και αποκατάσταση από καταστροφές, πρότεινε τη μονάδα blksnap για ένταξη στον πυρήνα Linux με την εφαρμογή του μηχανισμού δημιουργίας στιγμιότυπων συσκευών μπλοκ και παρακολούθησης αλλαγών σε συσκευές μπλοκ. Για να εργαστείτε με στιγμιότυπα, έχουν προετοιμαστεί το βοηθητικό πρόγραμμα γραμμής εντολών blksnap και η βιβλιοθήκη blksnap.so, που σας επιτρέπουν να αλληλεπιδράτε με τη λειτουργική μονάδα πυρήνα μέσω κλήσεων ioctl από το χώρο χρήστη.

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

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

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

Το Blksnap βασίζεται στον κώδικα της μονάδας veeamsnap, η οποία αποτελεί μέρος του προϊόντος Veeam Agent για Linux, αλλά έχει επανασχεδιαστεί για τις ιδιαιτερότητες της παράδοσης στο κύριο μέρος του πυρήνα του Linux. Η εννοιολογική διαφορά μεταξύ του blksnap και του veeamsnap είναι η χρήση ενός συστήματος φίλτρων που είναι συνδεδεμένα σε μια συσκευή μπλοκ, αντί για ένα ξεχωριστό στοιχείο bdevfilter που παρεμποδίζει τις εισόδους/εξόδους.

Πηγή: opennet.ru

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