Η Cisco προτείνει σύστημα αρχείων PuzzleFS για πυρήνα Linux

Η Cisco έχει προτείνει ένα νέο σύστημα αρχείων, το PuzzleFS, που υλοποιείται ως λειτουργική μονάδα για τον πυρήνα του Linux, γραμμένο σε Rust. Το σύστημα αρχείων έχει σχεδιαστεί για να χρησιμοποιείται για να φιλοξενεί απομονωμένα κοντέινερ και συνεχίζει να αναπτύσσει τις ιδέες που προτείνονται στο σύστημα αρχείων Atomfs. Η υλοποίηση βρίσκεται ακόμα στο στάδιο του πρωτοτύπου, υποστηρίζει τη δημιουργία με τον κλάδο του πυρήνα του Rust-next Linux και είναι ανοιχτή με τις άδειες Apache 2.0 και MIT.

Το έργο στοχεύει να παρακάμψει τους περιορισμούς που προκύπτουν κατά τη χρήση εικόνων κοντέινερ σε μορφή OCI (Open Container Initiative). Το PuzzleFS επιλύει προβλήματα όπως η αποτελεσματική αποθήκευση διπλών δεδομένων, η δυνατότητα άμεσης τοποθέτησης, η δημιουργία επαναλαμβανόμενων εικόνων και η ασφάλεια της μνήμης.

Για την κατάργηση διπλότυπων δεδομένων που επαναλαμβάνονται σε διαφορετικά κοντέινερ, χρησιμοποιείται ο αλγόριθμος FastCDC (Fast Content-Defined Chunking), ο οποίος λειτουργεί διαιρώντας τα δεδομένα σε τμήματα αυθαίρετου μεγέθους και διατηρώντας ένα ευρετήριο με κατακερματισμούς των επεξεργασμένων τμημάτων. Τα επαναλαμβανόμενα τμήματα αποθηκεύονται μία φορά και ευρετηριάζονται από κοινού για όλα τα επίπεδα του συστήματος αρχείων, π.χ. Το deduplication μπορεί να καλύψει διαφορετικά σημεία προσάρτησης (ένα νέο επίπεδο FS μπορεί να ξεκινήσει με βάση ένα υπάρχον και να χρησιμοποιήσει τα θραύσματα δεδομένων που περιέχονται σε αυτό κατά τη διάρκεια της αποδιπλασιασμού).

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

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

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

Πηγή: opennet.ru

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