Σύστημα αρχείων XFS για αρχάριους. XFS - το σύστημα αρχείων του μέλλοντος

XFS- σύστημα αρχείων ημερολογίου που αναπτύχθηκε από τη Silicon Graphics, αλλά τώρα κυκλοφόρησε ανοιχτού κώδικα(ανοιχτού κώδικα).

Επίσημες πληροφορίεςεπί http://oss.sgi.com/projects/xfs/

Το XFS δημιουργήθηκε στις αρχές της δεκαετίας του '90 (1992-1993) από τη Silicon Grapgics (τώρα SGI) για υπολογιστές πολυμέσων με Irix OS. Σύστημα αρχείωναπευθυνόταν σε πολύ μεγάλα αρχεία και συστήματα αρχείων. Ένα χαρακτηριστικό αυτού του συστήματος αρχείων είναι η συσκευή ημερολογίου - μέρος των μεταδεδομένων του ίδιου του συστήματος αρχείων εγγράφεται στο περιοδικό με τέτοιο τρόπο ώστε ολόκληρη η διαδικασία ανάκτησης περιορίζεται στην αντιγραφή αυτών των δεδομένων από το περιοδικό στο σύστημα αρχείων. Το μέγεθος του αρχείου καταγραφής ορίζεται κατά τη δημιουργία του συστήματος πρέπει να είναι τουλάχιστον 32 megabyte. και δεν χρειάζεστε περισσότερα - είναι δύσκολο να λάβετε έναν τέτοιο αριθμό μη κλειστών συναλλαγών.

Μερικά χαρακτηριστικά:

    Λειτουργεί πιο αποτελεσματικά με μεγάλα αρχεία.

    Έχει τη δυνατότητα να μετακινήσει το αρχείο καταγραφής σε άλλο δίσκο για να βελτιώσει την απόδοση.

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

    Καταγράφονται μόνο μεταδεδομένα.

    Χρησιμοποιούνται δέντρα B+.

    Χρησιμοποιεί λογική καταγραφή

Σύστημα αρχείων 11.6.4 rfs

RFS (RaiserFS)- σύστημα αρχείων ημερολογίου που αναπτύχθηκε από την Namesys.

Επίσημες πληροφορίες για RaiserFS

Μερικά χαρακτηριστικά:

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

    Χρησιμοποιεί ειδικά βελτιστοποιημένο δέντρο b* balanced (μια βελτιωμένη έκδοση του δέντρου B+)

    Εκχωρεί δυναμικά τους i-nodes αντί για ένα στατικό σύνολο αυτών που δημιουργήθηκε κατά τη δημιουργία ενός "παραδοσιακού" συστήματος αρχείων.

    Δυναμικά μεγέθη μπλοκ.

11.6.4 σύστημα αρχείων jfs

JFS (Journaled File System) -Ένα σύστημα αρχείων ημερολογίου που αναπτύχθηκε από την IBM για το λειτουργικό σύστημα AIX, αλλά τώρα κυκλοφορεί ως ανοιχτού κώδικα.

Επίσημες πληροφορίες για Journaled File System Technology για Linux

Μερικά χαρακτηριστικά:

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

    Καταγράφονται μόνο μεταδεδομένα

    Το μέγεθος του αρχείου καταγραφής δεν υπερβαίνει τα 32 megabyte.

    Λειτουργία ασύγχρονης καταγραφής - εκτελείται όταν μειώνεται η κίνηση εισόδου/εξόδου

    Χρησιμοποιείται λογική καταγραφή.

11.7 Συγκριτικός πίνακας ορισμένων σύγχρονων συστημάτων αρχείων

Αποθήκευση πληροφοριών αρχείου

Μέγιστο μέγεθοςτμήμα

16 EB (2 60)

4 gigablocks (αφού τα μπλοκ είναι δυναμικά)

Μεγέθη μπλοκ

από 512 byte έως 64 KB

1 KB - 4 KB

Έως 64 KB (επί του παρόντος σταθερό 4 KB)

από 512 byte έως 64 KB

512/1024/2048/4096 byte

Μέγιστος αριθμός μπλοκ

Μέγιστο μέγεθος αρχείου

16 TB (για μπλοκ 4 KB)

4 PB (2 50)

Μέγιστο μήκος ονόματος αρχείου

Ξύλευση

Δωρεάν διαχείριση μπλοκ

Βασισμένο σε bitmap

Β-δέντρα ευρετηριασμένα με μετατόπιση και μέγεθος

Tree+ Binary Buddy

Εκτάσεις για ελεύθερο χώρο

Β-δέντρα για στοιχεία καταλόγου

Ως υποδέντρο του κύριου δέντρου συστήματος αρχείων

B-δέντρα για τη διευθυνσιοδότηση μπλοκ αρχείων

Μέσα στο κύριο δέντρο συστήματος αρχείων

Επεκτάσεις για τη διευθυνσιοδότηση μπλοκ αρχείων

Ναι (από την έκδοση 4)

Δεδομένα μέσα στο inode (μικρά αρχεία)

Δεδομένα συμβολικής σύνδεσης εντός inode

Εγγραφές καταλόγου μέσα σε inodes (μικροί κατάλογοι)

Δυναμική εκχώρηση inode/MFT

Δομές για τη διαχείριση δυναμικά κατανεμημένων ινωδών

Γενικό Β*δέντρο

Β+δέντρο με συνεχόμενες ινωδικές περιοχές

Υποστήριξη αραιών αρχείων

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

Ένα από τα πλεονεκτήματα του XFS είναι η παρουσία ενός τυπικού ανασυγκροτητή (ό,τι κι αν λένε, αλλά όταν αντιγράφετε μεγάλα και τεράστια αρχεία, η ανασυγκρότηση μπορεί να μειώσει σημαντικά την ταχύτητα).

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

Προβολή πληροφοριών τοποθεσίας αρχείου

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

Ανάλογα με τη χρήση, τα αρχεία στο XFS μπορεί να κατακερματιστούν αρκετά.

Για να προβάλετε έναν χάρτη με τις εκτάσεις στις οποίες είναι αποθηκευμένο ένα αρχείο, χρησιμοποιήστε την ακόλουθη εντολή:

Xfs_bmap -v /media/video/football_cup_1993.avi

Βγάζει περίπου τις ακόλουθες πληροφορίες:

/media/video/football_cup_1993.avi: EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL 0: : 18748384..19010399 0 (18748384..19010396 ..19010399) 2031 487 2 (253665088.. 253927231 ) 262144 2: : 767587184..768111471 2 (249482928..250007215) 524288 3: 738171682..2216.. 2216 07 104857) 6 4: : 880928368..882928575 3 (103771984..105772191) 2000208

Όπως μπορείτε να δείτε, το αρχείο /media/video/football_cup_1993.avi βρίσκεται σε πέντε εκτάσεις.

Ανασυγκρότηση XFS

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

Για να ανασυγκροτήσετε ολόκληρο το διαμέρισμα, χρησιμοποιήστε την εντολή:

Xfs_fsr -v /dev/<раздел>

Η ανασυγκρότηση ενός μεμονωμένου αρχείου εκτελείται με την εντολή:

Xfs_fsr -v<имя файла>

η επιλογή -v εκτυπώνει πρόσθετες πληροφορίες.

Έλεγχος της έκτασης του κατακερματισμού XFS

Πληροφορίες σχετικά με τον κατακερματισμό των διαμερισμάτων μπορούν να ληφθούν με την εντολή:

Xfs_db -r -c frag /dev/<раздел>

Η επιλογή -r απαιτείται για να ελέγξετε το διαμέρισμα στο οποίο είναι τοποθετημένο και χρησιμοποιείται αυτή τη στιγμή. Η επιλογή -c frag απαιτείται απευθείας για την εμφάνιση πληροφοριών σχετικά με τον κατακερματισμό ενός διαμερίσματος.

Υποστηρίζει λειτουργικό σύστημα Linux τεράστιο ποσόδιάφορα είδη συστημάτων αρχείων. Από την άποψη Αρχείο LinuxΤα συστήματα μπορούν να χωριστούν σε τέσσερις ομάδες:

  • "Εγγενή" συστήματα αρχείων.Αυτό σημαίνει ότι το σύστημα αρχείων υποστηρίζει όλα τα χαρακτηριστικά γνωρίσματα του Linux: δικαιώματα πρόσβασης, χρονικές σημάνσεις, πληροφορίες κατόχου αρχείων κ.λπ.
  • "Μη εγγενή" συστήματα αρχείων.Δηλαδή, συστήματα αρχείων που δεν υποστηρίζουν χαρακτηριστικά Linux.
  • Πραγματικός.Αυτά είναι συστήματα αρχείων που δεν έχουν φυσικά μέσα.
  • Συστήματα αρχείων δικτύου.

Τα "εγγενή" συστήματα αρχείων περιλαμβάνουν:

  • reiserfs

σύστημα αρχείων ext2

Το Ext2 είναι ένα από τα πρώτα συστήματα αρχείων που χρησιμοποιήθηκαν στο Linux ( Για να είμαστε πιο ακριβείς, το πρώτο σύστημα αρχείων Linux είναι το minix. Αλλά οι δυνατότητες αυτού του fs είναι πολύ περιορισμένες και χρησιμοποιήθηκε μόνο σε αρχικό στάδιοΑνάπτυξη Linux.). Δημιουργήθηκε το 1993. Αυτό το σύστημα αρχείων θεωρείται πολύ αξιόπιστο και δοκιμασμένο στο χρόνο. Όμως, αφού το ext2 αναπτύχθηκε σε μια εποχή που σκληρό δίσκοΤο μέγεθος των 300 MB θεωρήθηκε πολύ μεγάλο, έχει κάποιους περιορισμούς. Δεν έχει νόημα να χρησιμοποιήσετε αυτό το fs για μεγάλα διαμερίσματα, θα αρχίσει να επιβραδύνεται όταν υπάρχει μεγάλος αριθμός αρχείων στο διαμέρισμα. Δηλαδή, το ext2 θεωρείται αργό ( Ο όρος «αργή» είναι πολύ σχετικός. Το Ext2 θεωρείται αργό στο Linux. Αλλά αν το συγκρίνετε με ένα τυπικό αρχείο Σύστημα FreeBSD, αποδεικνύεται ότι το ext2 είναι πολύ γρήγορο.). Φυσικά, με την αύξηση των μεγεθών των δίσκων και την εμφάνιση νέων τάσεων, έγιναν αλλαγές στο σύστημα αρχείων για τη βελτίωση της απόδοσης και της λειτουργικότητάς του. Για παράδειγμα, υποστήριξη POSIX ACL. Ωστόσο, δεν επηρεάστηκε από παγκόσμιες αλλαγές που μας επιτρέπουν να πούμε:

Ναι, αυτό είναι το μόνο σύστημα αρχείων που μου ταιριάζει απόλυτα.

Επιπλέον, το ext2 έχει σοβαρούς περιορισμούς:

  • Το μέγιστο μέγεθος αρχείου είναι 2048 GB.
  • Το μέγιστο μέγεθος συστήματος αρχείων είναι 32768 GB.
  • Ο μέγιστος αριθμός υποκαταλόγων σε έναν κατάλογο είναι 32768.

Συστήματα αρχείων με περιοδικό

Σήμερα το σύστημα αρχείων ext2 ουσιαστικά δεν χρησιμοποιείται πλέον. Και δεν πρόκειται καν για τους περιορισμούς του, το ext2 είναι ένα αρκετά αξιόπιστο σύστημα αρχείων. Είναι όλα σχετικά με την ταχύτητα φόρτωσης των διακομιστών Linux. Ο διακομιστής πρέπει να λειτουργεί συνεχώς. Αλλά τα θαύματα δεν γίνονται. Ο στόχος σας είναι να βεβαιωθείτε ότι μετά τη συντριβή του συστήματος θα επανεκκινήσουν όσο το δυνατόν γρηγορότερα. Όταν ο διακομιστής είναι ενεργοποιημένος, οι δίσκοι ελέγχονται. Η διαδικασία για τον έλεγχο των συστημάτων αρχείων, ειδικά των μεγάλων, είναι μια αρκετά χρονοβόρα διαδικασία. Εάν υπάρχουν πολλά τέτοια συστήματα αρχείων, τότε ο έλεγχος τους μπορεί να διαρκέσει πολύ. Και ο διακομιστής πρέπει να λειτουργεί!

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

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

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

σύστημα αρχείων ext3

Όταν προέκυψε η ανάγκη εφαρμογής συστημάτων αρχείων ημερολογίου στο Linux, η RedHat ανέπτυξε το σύστημα αρχείων ext3. Η RedHat πήρε το μονοπάτι της ελάχιστης αντίστασης - πήραν ως βάση το γνωστό ext2 και πρόσθεσαν την υποστήριξη περιοδικών.

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

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

Το Ext3 υποστηρίζει τρεις τρόπους λειτουργίας:

  • Εγγραφή - σε αυτήν τη λειτουργία, τα δεδομένα δεν καταγράφονται. Τα λεγόμενα μεταδεδομένα (αρχείο inode, σύνδεσμοι σε μπλοκ) τοποθετούνται πρώτα στο αρχείο καταγραφής. Μόνο αφού καταγραφούν εγγράφονται τα δεδομένα στο σύστημα αρχείων.
  • Παραγγελία (προεπιλεγμένη λειτουργία) - αυτή η λειτουργία είναι παρόμοια με αυτήν που περιγράφεται παραπάνω. Η μόνη διαφορά είναι ότι στη λειτουργία εγγραφής, όλα τα μεταδεδομένα πρώτα εγγράφονται στο περιοδικό και μόνο μετά από αυτό γίνονται αλλαγές στο σύστημα αρχείων. Και στη λειτουργία παραγγελίας, όταν τοποθετούνται πληροφορίες για ένα μπλοκ στο περιοδικό, αυτό το μπλοκ αλλάζει αμέσως στο σύστημα αρχείων. Στη συνέχεια, οι πληροφορίες για το επόμενο μπλοκ τοποθετούνται στο αρχείο καταγραφής και το μπλοκ γράφεται και ούτω καθεξής. Δηλαδή, τα δεδομένα αλλάζουν παράλληλα με την αλλαγή στο αρχείο καταγραφής.
  • Ημερολόγιο - λειτουργία πλήρους καταγραφής. Το αρχείο καταγραφής περιέχει μεταδεδομένα και δεδομένα. Και μόνο μετά από αυτό συμβαίνει μια αλλαγή στο σύστημα αρχείων.

Σύστημα αρχείων ReiserFS

Το ReiserFS αναπτύσσεται από τον Hans Reiser και την εταιρεία του Namesys (http://www.namesys.com). Είναι ένα πολύ γρήγορο σύστημα αρχείων κατάλληλο για αποθήκευση μεγάλη ποσότηταμικρά αρχεία.

Κατάφερε να λύσει το πρόβλημα της τοποθέτησης μικρών αρχείων στο δίσκο. Για παράδειγμα, στο ext2/3, η τοποθέτηση ενός αρχείου που περιέχει έναν μόνο χαρακτήρα θα απαιτήσει ένα ολόκληρο μπλοκ στο δίσκο. Ένα μπλοκ ext2/3 μπορεί να κυμαίνεται σε μέγεθος από 1 έως 8 KB ( Το μέγεθος εξαρτάται από το μέγεθος του συστήματος αρχείων). Και στο ReiserFS, τα δεδομένα από πολλά αρχεία μπορούν να τοποθετηθούν σε ένα μπλοκ. Επιπλέον, εάν το μέγεθος του αρχείου είναι πολύ μικρό, τα δεδομένα μπορούν να τοποθετηθούν στο inode, δηλαδή απευθείας στα μεταδεδομένα.

Το σύστημα αρχείων βασίζεται σε βελτιστοποιημένα δέντρα (B δέντρο). Αυτό αυξάνει την ταχύτητα αναζήτησης στο σύστημα αρχείων και καταργεί το ζήτημα του περιορισμού του αριθμού των αρχείων και των καταλόγων σε έναν κατάλογο.

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

Το σύστημα αρχείων ReiserFS έκδοση 3.6 έχει τους ακόλουθους περιορισμούς:

  • Μέγιστο μέγεθος αρχείου - 8 TB (για υπολογιστές 32 bit).
  • Το μέγιστο μέγεθος συστήματος αρχείων είναι 16 TB.

Επί του παρόντος αναπτύσσεται επόμενη έκδοσηΤο ReiserFS είναι τέταρτο. Αναμένεται να είναι ενεργοποιημένο στους πυρήνες 2.6.17 ή 2.6.18.

Σύστημα αρχείων JFS

Αυτό το σύστημα αρχείων έχει αναπτυχθεί από την IBM και διανέμεται με την άδεια GNU GPL. Μια περιγραφή του JFS μπορεί να βρεθεί στο διαδίκτυο στη διεύθυνση . Το JFS χρησιμοποιείται όχι μόνο στο Linux, αλλά και σε άλλα λειτουργικά συστήματα, όπως το AIX και το OS/2.

Το JFS είναι ένα σύστημα αρχείων ημερολογίου. Το κύριο πλεονέκτημά του είναι η χρήση του σε συνδυασμό με το LVM (Logical Volume Manager). Το LVM σάς επιτρέπει να συνδυάσετε πολλαπλά φυσικά διαμερίσματα σκληρούς δίσκουςσε ένα λογικό, το οποίο στη συνέχεια μπορεί να χωριστεί όπως ένας συνηθισμένος σκληρός δίσκος. Ωστόσο, ορισμένοι τύποι LVM σάς επιτρέπουν να συνδέετε νέο χώρο στο δίσκο εν κινήσει. Και αν χρησιμοποιείτε το σύστημα αρχείων ext3 σε αναπτυσσόμενες κατατμήσεις, κάποια στιγμή θα λάβετε ένα μήνυμα σχετικά με την αδυναμία δημιουργίας ενός νέου αρχείου. Το γεγονός είναι ότι κατά τη μορφοποίηση ενός διαμερίσματος στο ext3, ένας πεπερασμένος αριθμός inode δεσμεύεται εκ των προτέρων, ανάλογα με το μέγεθος. Δηλαδή είναι εκ των προτέρων γνωστό μέγιστη ποσότητααρχεία. Εάν το μέγεθος του συστήματος αρχείων δεν αυξηθεί, τότε αυτός ο αριθμός inodes είναι αρκετός για κανονική λειτουργία. Το JFS έχει τη δυνατότητα να αυξάνει δυναμικά το σύστημα αρχείων και τον αριθμό των inodes. Χάρη σε αυτήν την ιδιότητα, όταν το μέγεθος του συστήματος αρχείων αυξάνεται, δεν υπάρχει όριο στον αριθμό των αρχείων που δημιουργούνται.

Το σύστημα αρχείων JFS έχει τους ακόλουθους περιορισμούς:

  • Το μέγιστο μέγεθος αρχείου περιορίζεται από το βάθος bit λειτουργικό σύστημα.
  • Το μέγιστο μέγεθος συστήματος αρχείων είναι 512 TB.

Σύστημα αρχείων XFS

Το σύστημα αρχείων XFS αναπτύχθηκε από την SGI (πρώην Silicon Graphics, Inc.). Το XFS γεννήθηκε το 1994 και αρχικά είχε αποσταλεί με το λειτουργικό σύστημα IRIX. Η SGI είναι διάσημη για τους σταθμούς εργασίας παραγωγής βίντεο και τους διακομιστές αποθήκευσης. Επομένως, το σύστημα αρχείων είναι βελτιστοποιημένο για να εξυπηρετεί μεγάλο αριθμό τεράστιων αρχείων και να υποστηρίζει μεγάλους καταλόγους. Χάρη στη δομή του, υποστηρίζει επίσης μεγάλο αριθμό μικρών αρχείων. Όσον αφορά την ταχύτητα, είναι συγκρίσιμο με το σύστημα αρχείων ReiserFS και σε αξιοπιστία είναι ανώτερο από το σύστημα αρχείων Hans ( Πόσα δεδομένα έχω χάσει στο σύστημα αρχείων ReiserFS κενός χώρος. Μόνο σώθηκε εφεδρικός. Γι' αυτό δεν χρησιμοποιώ το ReiserFS σε διακομιστές τώρα.).

Η υποστήριξη μεγάλων αρχείων είναι δυνατή επειδή το XFS είναι ένα σύστημα αρχείων 64-bit. Και η ταχύτητα του συστήματος αρχείων επιτυγχάνεται μέσω της χρήσης δέντρων B+ για αναζήτηση και περιγραφή εσωτερικών δομών.

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

Συστήματα αρχείων της Microsoft

Αν μιλάμε για συστήματα αρχείων της Microsoft, το Linux υποστηρίζει FAT και NTFS. Με το FAT όλα είναι πολύ απλά, η δομή του συστήματος αρχείων είναι γνωστή, επομένως υποστηρίζεται πλήρως στο Linux. Το μόνο πράγμα που πρέπει να ληφθεί υπόψη κατά τη χρήση του FAT είναι ότι υπάρχουν δύο τύποι αυτού στο Linux:

  • msdos - FAT12/16.
  • vfat - FAT32.

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

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

Συστήματα αρχείων iso9660 και udf

Αυτά τα συστήματα αρχείων χρησιμοποιούνται για την αποθήκευση πληροφοριών σε CD και DVD.

Αρχικά, το iso9660 ήταν ένα πολύ απλό σύστημα αρχείων με ένας μεγάλος αριθμόςπεριορισμούς. Για παράδειγμα, τα ονόματα αρχείων είναι όπως στο MS DOS, ένα όριο στον αριθμό των ένθετων καταλόγων. Επομένως, γράφτηκαν αρκετά πρόσθετα για το iso9660 για να επεκτείνουν τις δυνατότητές του. Συμπεριλαμβανομένων των προσθηκών που σας επιτρέπουν να αποθηκεύσετε χαρακτηριστικά αρχείου UNIX. Όλα τα πρόσθετα υποστηρίζονται από το πρόγραμμα οδήγησης συστήματος αρχείων και δεν θα πρέπει να υπάρχουν προβλήματα με τη λειτουργία. Επιπλέον, το πρόγραμμα οδήγησης iso9660 υποστηρίζει, όσο περίεργο κι αν ακούγεται, λειτουργία εγγραφής. Χρησιμοποιείται κατά τη δημιουργία εικόνων CD-ROM.

Δεν παρατηρήθηκε ούτε με udf ειδικά προβλήματα. Έτσι, η εργασία με CD και DVD υποστηρίζεται στο Linux χωρίς κανέναν περιορισμό.

proc σύστημα αρχείων

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

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

/proc/cmdline

Περιέχει γραμμή εντολών, πέρασε στον πυρήνα όταν ξεκίνησε.

# cat cmdline BOOT_IMAGE=Linux-2613 ro root=303 #

/proc/cpuinfo

Πληροφορίες σχετικά με τον επεξεργαστή ή τους επεξεργαστές.

# cat επεξεργαστής cpuinfo: 0 vendor_id: GenuineIntel οικογένεια cpu: 6 μοντέλο: 9 όνομα μοντέλου: Intel(R) Pentium(R) M Επεξεργαστής 1400MHz stepping: 5 cpu MHz: 1399.050 Μέγεθος cache: 1024 KB fdiv_bug:bug no.bug: όχι coma_bug: όχι fpu: ναι fpu_exception: ναι επίπεδο cpuid: 2 wp: ναι σημαίες: fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm2 tm.

/proc/συσκευές

Λίστα συσκευών.

# cat συσκευές Συσκευές χαρακτήρων: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 14 sound 21 sg 116 alsa 128 ptm 136 pts 171 ieee1394 180 usb 226 drm 254 pcmcia Συσκευές μπλοκ: 3 ide0 7 loop 8 sd 11 sr 65 sd #

/proc/dma

Χρήση καναλιών DMA.

# cat dma 4: cascade #

/proc/Filesystems

Λίστα υποστηριζόμενων συστημάτων αρχείων.

# cat filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev pipefs nodev futexfs nodev tmpfs nodev inotifyfs nodev eventpollfs nodev devpts ext3 ext2 nodev ramfs msdos vfat iso9660 ndevfs nodev

/proc/interrupts

Διακοπή διανομής.

# cat interrupts CPU0 0: 850627 XT-PIC χρονόμετρο 1: 9691 XT-PIC i8042 2: 0 XT-PIC cascade 7: 2 XT-PIC parport0 8: 1 XT-PIC rtc 9: 6620 XT-PIC i8042 -PIC Intel 82801DB-ICH4, yenta, yenta, eth0, eth1, ohci1394, ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, radeon@pci:100 8042 14 : 11538 XT-PIC ide0 NMI: 0 LOC: 0 ERR: 0 MIS: 0 #

/proc/modules

Λίστα φορτωμένων μονάδων.

# cat modules irtty_sir 5248 0 - Live 0xf8a09000 sir_dev 13548 1 irtty_sir, Live 0xf8a1d000 irda 107768 1 sir_dev, Live 0xf8a3f000 000 cc 0 par port_pc 24324 0 - Live 0xf8a16000 parport 30920 1 parport_pc, Live 0xf8a0d000 uhci_hcd 30416 0 - Live 0xf89e7000 ehci_hcd 27656 0 - Live 0xf897a000 usbcore 103740 3 uhci_hcd,ehci_hcd, Live 0xf8990000 ohci1394 31092 0 - Live 0xf895e300 ve 0xf891e000 ipw2100 78204 0 - Ζωντανά 0xf8936000 ieee80211 18948 1 ipw2100, Live 0xf8918000 ieee80211_crypt 41800f 41800f 00 26512 0 - Ζωντανά 0xf8909000 pcmcia 30568 4 - Ζωντανά 0xf8900000 firmware_class 7680 2 ipw2100,pcmcia, Live 0xf88f2000 yenta_socket 20748 0xf089 yenta_socket, 0xf8875000 pcmcia_core 34640 3 pcmcia,yenta_socket,rsrc_nonstatic, Live 0xf88e2000 #

/proc/mounts

Περιέχει μια λίστα με προσαρτημένα συστήματα αρχείων.

# cat προσαρτά rootfs / rootfs rw 0 0 /dev/root / ext3 rw 0 0 proc /proc proc rw,nodiratime 0 0 sysfs /sys sysfs rw 0 0 κανένα /dev ramfs rw 0 0 /dev/hda5 /usr ext3 rw 0 /dev/hda6 /home ext3 rw 0 0 /dev/hda1 /mnt/win ntfs ro,noatime,nodiratime,uid=0,gid=0,fmask=0177,dmask=077,nls=iso8859-1, σφάλματα= συνέχεια,mft_zone_multiplier=1 0 0 devpts /dev/pts devpts rw 0 0 usbfs /proc/bus/usb usbfs rw 0 0 #

/proc/partitions

Περιέχει μια λίστα με διαμερίσματα όλων των συνδεδεμένων μονάδων δίσκου.

# cat partitions major minor #blocks name 3 0 58605120 hda 3 1 10485688 hda1 3 2 506520 hda2 3 3 9775080 hda3 3 4 1 hda4 3 5 4 968020

/proc/pci

Λίστα συσκευών που εντοπίστηκαν στο δίαυλο PCI.

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

Βρέθηκαν # cat pci συσκευές PCI: Bus 0, device 0, function 0: Host bridge: Intel Corporation 82855PM Processor to I/O Controller (αναθ. 3).

Προανάκτηση μνήμη 32 bit στα 0xd0000000.

Δίαυλος 0, συσκευή 1, λειτουργία 0: Γέφυρα PCI: Επεξεργαστής Intel Corporation 82855PM στον ελεγκτή AGP (αναθ. 3).

Master Capable. Latency=96. Ελάχ. Gnt=12.

Bus 0, συσκευή 29, λειτουργία 0: USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 1).

IRQ 11. I/O σε 0x1800 . # /proc/swaps.

Περιέχει μια λίστα συνδεδεμένων αρχείων ανταλλαγής και κατατμήσεων.

# cat swaps Όνομα αρχείου Τύπος Μέγεθος που χρησιμοποιείται Προτεραιότητα /dev/hda2 διαμέρισμα 506512 0 -1 #

/proc/version

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

Πυρήνες Linux

# cat version Linux έκδοση 2.6.13-rc3-my (root@master) (gcc έκδοση 3.3.6) #3 Τρίτη 19 Ιουλίου 22:25:23 GMT+3 2005 #

Πληροφορίες διαδικασίας

Εκτός από τα αρχεία, το /proc περιέχει καταλόγους με έναν αριθμό ως όνομα. Κάθε κατάλογος περιγράφει μια διαδικασία της οποίας το PID αντιστοιχεί στο όνομα του καταλόγου. Τα αρχεία σε αυτόν τον κατάλογο περιγράφουν τις παραμέτρους της διαδικασίας. Τα περιεχόμενα ενός από τους καταλόγους φαίνονται παρακάτω.

# ls /proc/4624 auxv cwd@ exe@ χάρτες προσαρτήσεις oom_score seccomp statm task/ cmdline environ fd/ mem oom_adj root@ κατάσταση κατάσταση wchan #

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

# cat environ HZ=100TERM=xtermPATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/binHOME=/rootSHELL=/bin/bashUSER=rootLOGNAME=rootMAIL =/var/spool/mail/root #

κατάσταση

Περιέχει πληροφορίες σχετικά με την κατάσταση της διαδικασίας σε μορφή κατανοητή από τον άνθρωπο.

# κατάσταση γάτας Όνομα: bash Κατάσταση: S (sleeping) SleepAVG: 98% Tgid: 4510 Pid: 4510 PPid: 4498 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Ομάδες: 23 0 6 10 11 VmΜέγεθος: 2832 kB VmLck: 0 kB VmRSS: 1724 kB VmData: 388 kB VmStk: 88 kB VmExe: 628 kB VmLib: 1628 kB VmPTE : 18 PTE : 18001 Thuh 00 00000000000 ShdPnd: 000000000000000000 SigBlk #

Άλλοι κατάλογοι

Εκτός από τους καταλόγους που περιγράφουν διεργασίες συστήματος, το /proc μπορεί επίσης να περιέχει άλλους καταλόγους. Παρακάτω είναι οι σκοποί ορισμένων από αυτούς:

  • ιδέα- πληροφορίες σχετικά με συσκευές που είναι συνδεδεμένες στη διεπαφή ide.
  • irq- πληροφορίες σχετικά με τη διανομή διακοπών.
  • καθαρά- πληροφορίες για το δίκτυο. Περιεχόμενα του πίνακα arp και του πίνακα δρομολόγησης. Στατιστικά στοιχεία διεπαφές δικτύουκαι πρωτόκολλο. Και ούτω καθεξής.
  • scsi- πληροφορίες για συσκευές SCSI.
  • sys- περιέχει μεταβλητές παραμέτρουςσυστήματα.

/proc/sys

Το σύστημα αρχείων /proc/sys είναι ένα ξεχωριστό μεγάλο θέμα. Χρησιμοποιώντας τα αρχεία που βρίσκονται σε αυτόν τον κατάλογο, μπορείτε να αλλάξετε τις παραμέτρους του συστήματος αμέσως. Αρκεί να γράψετε την επιθυμητή τιμή συγκεκριμένο αρχείο. Δεν θα περιγράψω το /proc/sys, υπάρχουν πάρα πολλές πληροφορίες και πάρα πολλά πρέπει να γνωρίζετε για να καταλάβετε σε τι χρησιμοποιούνται τα αρχεία. Επομένως, θα σας πω πού μπορείτε να βρείτε τεκμηρίωση και περιγραφές για αυτό το σύστημα αρχείων:

  • Πρώτα απ 'όλα, αυτή είναι η τεκμηρίωση για τον πυρήνα. Έρχεται με πηγές πυρήνα. Μια περιγραφή του /proc/sys μπορεί να βρεθεί στο αρχείο Documentation/filesystems/proc.txt. Ένα ξεχωριστό (και όχι μικρό) κεφάλαιο είναι αφιερωμένο σε αυτό.

Σύστημα αρχείων EXT3

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

Αναπτύχθηκε σε Κόκκινο καπέλο

Αυτή τη στιγμή το κύριο για το LINUX.

Το πρόγραμμα οδήγησης Ext3 αποθηκεύεται πλήρως ακριβή αντίγραφατροποποιήσιμα μπλοκ (1KB, 2KB ή 4KB) στη μνήμη μέχρι να ολοκληρωθεί η λειτουργία. Αυτό μπορεί να φαίνεται σπάταλο. Τα πλήρη μπλοκ περιέχουν όχι μόνο αλλαγμένα δεδομένα, αλλά και μη τροποποιημένα δεδομένα.

Αυτή η προσέγγιση ονομάζεται " φυσική υλοτομία", το οποίο αντικατοπτρίζει τη χρήση των "φυσικών μπλοκ" ως βασικής μονάδας καταγραφής. Η προσέγγιση της αποθήκευσης μόνο μεταβλητών byte αντί ολόκληρων μπλοκ ονομάζεται " λογική καταγραφή" (χρησιμοποιείται το XFS). Επειδή το ext3 χρησιμοποιεί "φυσική καταγραφή", το ημερολόγιο στο ext3 είναι μεγαλύτερο από το XFS. Λόγω της χρήσης πλήρων μπλοκ στο ext3, τόσο το πρόγραμμα οδήγησης όσο και το υποσύστημα καταγραφής αποφεύγουν τις πολυπλοκότητες που προκύπτουν με το "λογικό υλοτομία».

Τύποι καταγραφής που υποστηρίζονται από το Ext3, οι οποίοι μπορούν να ενεργοποιηθούν από το αρχείο /etc/fstab:

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

· data=παραγγελία- οι αλλαγές μόνο στα μεταδεδομένα του συστήματος αρχείων καταγράφονται, αλλά λογικά τα μεταδεδομένα και τα μπλοκ δεδομένων ομαδοποιούνται σε μια ενιαία ενότητα που ονομάζεται συναλλαγή. Πριν εγγραφούν νέα μεταδεδομένα στο δίσκο, πρώτα εγγράφονται τα συσχετισμένα μπλοκ δεδομένων. Αυτή η λειτουργία καταγραφής ext3 είναι εγκατεστημένη από προεπιλογή.
Κατά την προσάρτηση δεδομένων στο τέλος ενός αρχείου, η λειτουργία data=ordered είναι εγγυημένη για να διασφαλιστεί η ακεραιότητα (όπως με τη λειτουργία πλήρους καταγραφής δεδομένων). Ωστόσο, εάν τα δεδομένα εγγράφονται σε ένα αρχείο πάνω από υπάρχοντα, τότε υπάρχει η δυνατότητα ανάμειξης «πρωτότυπων» μπλοκ με τροποποιημένα. Αυτό είναι αποτέλεσμα του data=ordered not tracking records where νέο μπλοκβρίσκεται πάνω από το υπάρχον και δεν προκαλεί τροποποίηση μεταδεδομένων.

· data=writeback(μόνο μεταδεδομένα) - μόνο οι αλλαγές στα μεταδεδομένα του συστήματος αρχείων καταγράφονται. Πλέον γρήγορη μέθοδοςξύλευση. Αυτός είναι ο τύπος ημερολογίου που βλέπετε με τα συστήματα αρχείων XFS, JFS και ReiserFS.

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

Επίσημες πληροφορίες στο http://oss.sgi.com/projects/xfs/



Το XFS δημιουργήθηκε στις αρχές της δεκαετίας του '90 (1992-1993) από τη Silicon Graphics (τώρα SGI) για υπολογιστές πολυμέσωνμε Irix OS. Το σύστημα αρχείων απευθυνόταν σε πολύ μεγάλα αρχεία και συστήματα αρχείων. Ένα χαρακτηριστικό αυτού του συστήματος αρχείων είναι η συσκευή ημερολογίου - μέρος των μεταδεδομένων του ίδιου του συστήματος αρχείων εγγράφεται στο περιοδικό με τέτοιο τρόπο ώστε ολόκληρη η διαδικασία ανάκτησης περιορίζεται στην αντιγραφή αυτών των δεδομένων από το περιοδικό στο σύστημα αρχείων. Το μέγεθος του αρχείου καταγραφής ορίζεται κατά τη δημιουργία του συστήματος πρέπει να είναι τουλάχιστον 32 megabyte. και δεν χρειάζεστε περισσότερα - είναι δύσκολο να λάβετε έναν τέτοιο αριθμό μη κλειστών συναλλαγών.

Μερικά χαρακτηριστικά:

· Λειτουργεί πιο αποτελεσματικά με μεγάλα αρχεία.

· Έχει τη δυνατότητα μεταφοράς του αρχείου καταγραφής σε άλλο δίσκο για βελτίωση της απόδοσης.

· Αποθηκεύει δεδομένα κρυφής μνήμης μόνο όταν η μνήμη είναι πλήρης και όχι περιοδικά όπως τα άλλα.

· Καταγράφονται μόνο μεταδεδομένα.

· Χρησιμοποιούνται δέντρα B+.

Χρησιμοποιείται λογική καταγραφή

Πρόσφατα, στο συνέδριο linux.conf.au 2012, ο προγραμματιστής του XFS, Dave Chinner, σημείωσε ότι πιστεύει XFSθα προσελκύσει περισσότερους χρήστες στο μέλλον. Η έκθεσή του αφορούσε την επίλυση προβλημάτων με την κλιμάκωση, καθώς και περαιτέρω εργασίαγια τη βελτίωση του συστήματος αρχείων. Εάν τα λόγια του γίνονται πιστευτά, πιθανότατα θα ακούσουμε πολλά περισσότερα για αυτό τα επόμενα χρόνια. XFS.
XFSθεωρείται συχνά ως σύστημα αρχείων για όσους εργάζονται με αρχεία μεγάλα μεγέθη. Σύμφωνα με τον Dave, αντιμετωπίζει τέλεια αυτό το έργο, επιπλέον, XFSπαραδοσιακά λειτουργεί καλά κάτω από βαριά φορτία. Αλλά η κατάσταση χειροτερεύει όταν γράφετε μεταδεδομένα. Η υποστήριξη της εγγραφής μεγάλων ποσοτήτων μεταδεδομένων με την πάροδο του χρόνου είναι ένα αδύναμο σημείο για αυτό το σύστημα αρχείων. Εν ολίγοις, τα μεταδεδομένα γράφονται πολύ αργά και πρακτικά δεν κλιμακώνονται, ακόμη και όταν εκτελούνται σε μία μόνο CPU.
Πόσο αργά; Ο Dave παρείχε αρκετές διαφάνειες που δείχνουν τα αποτελέσματα του δείκτη αναφοράς fs-mark σε σύγκριση με το ext4. Αποτελέσματα XFSπολύ χειρότερα (σχεδόν δύο φορές) ακόμη και σε μία CPU. Καθώς ο αριθμός των νημάτων αυξάνεται σε οκτώ, η κατάσταση επιδεινώνεται περαιτέρω, μετά την οποία η απόδοση του ext4 πέφτει επίσης απότομα. Για εργασίες που περιλαμβάνουν υψηλό φορτίο στο σύστημα I/O, όπου είναι απαραίτητο να αλλάξει μεγάλος αριθμός μεταδεδομένων (δόθηκε ως παράδειγμα η αποσυσκευασία tarball), το ext4 έδειξε απόδοση 20 - 50 φορές μεγαλύτερη από XFS. Αυτή η καθυστέρηση είναι ένα πραγματικά σοβαρό πρόβλημα.

Τεμπέλης υλοτομία

Το πρόβλημα βρίσκεται στο αρχείο καταγραφής εισόδου/εξόδου: XFSδημιούργησε πολύ μεγάλο όγκο επισκεψιμότητας για την αλλαγή των μεταδεδομένων. Στις χειρότερες περιπτώσεις, σχεδόν όλη η κίνηση εισόδου/εξόδου ήταν δεδομένα καταγραφής και όχι δεδομένα που ο χρήστης προσπαθούσε να γράψει στο δίσκο. Οι προσπάθειες επίλυσης αυτού του προβλήματος με την πάροδο των ετών περιλαμβάνουν μια σημαντική αλλαγή στον αλγόριθμο εγγραφής και πολλές άλλες. σημαντικές βελτιστοποιήσειςκαι ρυθμίσεις. Το μόνο πράγμα που δεν απαιτήθηκε ήταν οποιαδήποτε αλλαγή στη μορφή δεδομένων στο δίσκο, αν και αυτό μπορεί να απαιτηθεί στο μέλλον.
Το άγχος της αλλαγής μεγάλων ποσοτήτων μεταδεδομένων μπορεί τελικά να έχει ως αποτέλεσμα την τροποποίηση του ίδιου μπλοκ καταλόγου πολλές φορές σε σύντομο χρονικό διάστημα, με κάθε μία από αυτές τις αλλαγές να δημιουργεί μια καταχώρηση που πρέπει να αποθηκευτεί στο αρχείο καταγραφής. Αυτή είναι η πηγή της τεράστιας κυκλοφορίας περιοδικών. Η ιδέα για την επίλυση αυτού του προβλήματος είναι πολύ απλή: αναβάλετε την ενημέρωση του αρχείου καταγραφής και συγχωνεύστε τις αλλαγές στο ίδιο μπλοκ σε μία μόνο καταχώρηση. Στην πραγματικότητα, χρειάστηκαν αρκετά χρόνια σκληρής δουλειάς για να φέρει αυτή την ιδέα σε μια επεκτάσιμη εφαρμογή, αλλά τώρα λειτουργεί. Τεμπέλικο ημερολόγιο για το σύστημα αρχείων XFSυποστηρίζεται στην έκδοση 3.3 του πυρήνα.
Στην πραγματικότητα, η τεχνολογία lazy journaling δανείστηκε από το σύστημα αρχείων ext3, επομένως ο αλγόριθμος λειτουργίας του είναι γνωστός και χρειάζεται πολύ λιγότερος χρόνος για την εφαρμογή του σε XFSπαρά αν είχε αναπτυχθεί από την αρχή. Μαζί με τα πλεονεκτήματα της ταχύτητας, αυτό σημαίνει επίσης σημαντική μείωση του όγκου του κωδικού. Εάν θέλετε να ρίξετε μια πιο προσεκτική ματιά στον τρόπο λειτουργίας αυτής της τεχνολογίας, μπορείτε να βρείτε λεπτομέρειες στο αρχείο filesystems/xfs-delayed-logging.txtστο δέντρο τεκμηρίωσης του πυρήνα.
Lazy υλοτομία είναι μεγάλη αλλαγή, αλλά όχι το μοναδικό. Γρήγορος τρόποςΗ κράτηση χώρου περιοδικών παραμένει ένα καυτό θέμα XFS. Σήμερα δεν απαιτεί αποκλεισμό, ενώ η αργή μέθοδος εξακολουθεί να απαιτεί σφαιρικό μπλοκάρισμα αυτού του σημείου. Ο ασύγχρονος κώδικας εγγραφής μεταδεδομένων είχε ως αποτέλεσμα σοβαρό κατακερματισμό I/O, μειώνοντας σημαντικά την απόδοση. Τώρα η εγγραφή των μεταδεδομένων έχει καθυστερήσει και ταξινομείται πριν από την εγγραφή. Αυτό σημαίνει ότι, σύμφωνα με τον Dave, το σύστημα αρχείων λειτουργεί ως προγραμματιστής I/O. Αλλά ο προγραμματιστής εισόδου/εξόδου λειτουργεί σε μια ουρά αιτήματος, η οποία συνήθως περιορίζεται σε 128 καταχωρήσεις, ενώ η αναβαλλόμενη ουρά μεταδεδομένων XFSμπορεί να περιέχει πολλές χιλιάδες εγγραφές, επομένως είναι λογικό να γίνεται ταξινόμηση στο σύστημα αρχείων πριν διαβιβαστούν τα μεταδεδομένα στο σύστημα I/O. " Ενεργά στοιχείαΤα "Ενεργά στοιχεία καταγραφής" είναι ένας μηχανισμός που βελτιώνει την απόδοση κατά την εργασία με μεγάλες ταξινομημένες λίστες στοιχείων καταγραφής συγκεντρώνοντας αλλαγές και εφαρμόζοντάς τες σε παρτίδες. σελίδες σε ακατάλληλους χρόνους.

Σύγκριση συστημάτων αρχείων

Πως XFSκλιμακώνεται μετά από όλες τις αλλαγές; Όταν τρέχει με ένα ή δύο νήματα εξακολουθεί να είναι ελαφρώς πιο αργό από το ext4, αλλά καθώς ο αριθμός των νημάτων αυξάνεται σε οκτώ η απόδοσή του αυξάνεται γραμμικά, ενώ το ext4 υποβαθμίζεται και το btrfs υποβαθμίζεται ακόμη περισσότερο. Η σημερινή επεκτασιμότητα XFSπεριορίζεται στον αποκλεισμό του επιπέδου πυρήνα που ασχολείται με εικονικά συστήματα αρχείων, όχι κώδικα που ασχολείται απευθείας με το σύστημα αρχείων. Η διέλευση καταλόγου είναι πλέον ταχύτερη ακόμη και με ένα μόνο νήμα και ακόμη πιο γρήγορη με οκτώ νήματα.
Η επεκτασιμότητα εκχώρησης δίσκου είναι επί του παρόντος τάξεις μεγέθους ταχύτερη από το ext4. Αυτή η κατάσταση θα αλλάξει ελαφρώς με την εισαγωγή της συνάρτησης "bigalloc" στην έκδοση 3.2, η οποία αυξάνει την επεκτασιμότητα της κατανομής χώρου στο δίσκο ext4 κατά δύο τάξεις μεγέθους εάν χρησιμοποιείται ένα αρκετά μεγάλο μέγεθος μπλοκ. Δυστυχώς, αυτό αυξάνει αναλογικά τον χώρο που καταλαμβάνουν στο δίσκο μικρά αρχεία. Για παράδειγμα, για να τοποθετήσετε πηγαίος κώδικαςπυρήνες LinuxΣε αυτήν την περίπτωση, θα απαιτηθούν 160 GB χώρου στο δίσκο. Το Bigalloc δεν είναι πολύ συμβατό με κάποιες άλλες δυνατότητες ext4 και απαιτεί σύνθετες ρυθμίσεις. Σύμφωνα με τον Dave, το ext4 πάσχει από αρχιτεκτονικά ελαττώματα - πράγματα όπως η χρήση bitmaps για την παρακολούθηση του χώρου στο δίσκο ήταν χαρακτηριστικά της δεκαετίας του '80. Απλώς δεν μπορεί να κλιμακωθεί σε πραγματικά μεγάλα συστήματα αρχείων.
Η κατανομή χώρου στο δίσκο σε Btrfs είναι ακόμη πιο αργή από ό,τι στο ext4. Σύμφωνα με τον Dave, το πρόβλημα είναι κυρίως θέμα μεταφοράς της προσωρινής μνήμης στον ελεύθερο χώρο στο δίσκο, ο οποίος καταναλώνει υπερβολική ισχύ της CPU. Ωστόσο, αυτό δεν είναι αρχιτεκτονικό σφάλμα, επομένως μπορεί να διορθωθεί αρκετά εύκολα.

Το μέλλον των συστημάτων αρχείων Linux

Σήμερα, τα προβλήματα με την απόδοση και την επεκτασιμότητα μπορούν να θεωρηθούν επιλυμένα. Τώρα κώλυμαείναι το επίπεδο VFS, επομένως περαιτέρω προσπάθειες θα πρέπει να κατευθυνθούν σε αυτόν τον τομέα εργασίας. Αλλά η μεγαλύτερη πρόκληση στο μέλλον θα είναι η αξιοπιστία της αποθήκευσης δεδομένων και αυτό μπορεί να απαιτήσει σημαντικές αλλαγές στο σύστημα αρχείων XFS.
Η αξιοπιστία δεν είναι μόνο η μη απώλεια δεδομένων - το ελπίζουμε XFSείναι ήδη αρκετά αξιόπιστο, το πρόβλημα σχετίζεται επίσης με την επεκτασιμότητα. Απλώς δεν είναι πρακτικό να αποπροσαρτήσετε ένα σύστημα αρχείων petabyte για να εκτελέσετε μια σάρωση ή ένα βοηθητικό πρόγραμμα ανάκτησης δεδομένων. Στο μέλλον, είναι απλώς απαραίτητο να καταστεί δυνατή η εκτέλεση τέτοιων λειτουργιών σε ένα τρέχον σύστημα αρχείων. Αυτό θα απαιτήσει ένα ισχυρό εργαλείο ανίχνευσης σύγκρουσης ενσωματωμένο στο σύστημα αρχείων για τον έλεγχο των μεταδεδομένων αμέσως. Ορισμένα άλλα συστήματα αρχείων έχουν παρόμοιους μηχανισμούς, αλλά σύμφωνα με τον Dave, για XFSΘα ήταν καλύτερο να εφαρμοστεί ένα τέτοιο σύστημα σε επίπεδο συστοιχιών συσκευών αποθήκευσης δεδομένων ή σε επίπεδο εφαρμογής.
Ως "επικύρωση μεταδεδομένων" νοείται η ανάπτυξη μεταδεδομένων που προστατεύονται από εσφαλμένα αιτήματα εγγραφής σε επίπεδο συσκευής αποθήκευσης. Η επαλήθευση του αθροίσματος ελέγχου δεν είναι αρκετή - δείχνει μόνο ότι τα δεδομένα γράφτηκαν σωστά. Τα μεταδεδομένα με τέτοια προστασία θα μπορούσαν να αναγνωρίσουν μπλοκ που γράφτηκαν σε λάθος τοποθεσία και να βοηθήσουν στην αποκατάσταση της ακεραιότητας του συστήματος αρχείων σε περίπτωση σοβαρών αποτυχιών. Αυτό μπορεί επίσης να βοηθήσει στην επίλυση γνωστό θέμα reiserfs, το οποίο είναι ότι το βοηθητικό πρόγραμμα επιδιόρθωσης συστήματος αρχείων συγχέεται με παλαιωμένα μεταδεδομένα ή μεταδεδομένα που βρίσκονται σε εικόνες συστήματος αρχείων.
Η ανάπτυξη τέτοιων μεταδεδομένων θα απαιτήσει πολλές αλλαγές. Κάθε μπλοκ μεταδεδομένων θα περιλαμβάνει το UUID του συστήματος αρχείων στο οποίο ανήκει, καθώς και τους αριθμούς μπλοκ και inodeέτσι ώστε το σύστημα αρχείων να μπορεί να προσδιορίσει ότι τα μεταδεδομένα μεταβιβάζονται από τη σωστή πηγή. Θα υπάρχει επίσης αθροίσματα ελέγχουγια τον εντοπισμό κατεστραμμένων μπλοκ μεταδεδομένων και ένα προσαρμοσμένο αναγνωριστικό για τη συσχέτιση των μεταδεδομένων με το δικό του inode ή κατάλογο. Η αντιστροφή του δέντρου εκχώρησης θα επιτρέψει στο σύστημα αρχείων να προσδιορίσει γρήγορα σε ποιο αρχείο ανήκει οποιοδήποτε μπλοκ.
Φυσικά, η τρέχουσα μορφή XFSδεν αποθηκεύει όλα αυτά τα πρόσθετα δεδομένα, επομένως θα πρέπει να αλλάξει. Ωστόσο, σύμφωνα με τον Dave, δεν υπάρχουν σχέδια για διατήρηση οποιασδήποτε συμβατότητας με την τρέχουσα μορφή συστήματος αρχείων. Αυτό γίνεται για να δοθεί στους προγραμματιστές πλήρης ελευθερία να δημιουργήσουν μια νέα μορφή συστήματος αρχείων που θα χρησιμοποιείται για πολλά χρόνια ακόμα. Εκτός από την προσθήκη των δυνατοτήτων που περιγράφονται παραπάνω, οι προγραμματιστές σχεδιάζουν επίσης να προσθέσουν χώρο για d_type στη δομή του καταλόγου, μετρητές εκδόσεων NFSv4, χρόνο δημιουργίας inode και πιθανώς περισσότερα. Το μέγιστο μέγεθος καταλόγου, το οποίο αυτή τη στιγμή είναι μόνο 32 GB, θα αυξηθεί επίσης.
Με την εφαρμογή όλων αυτών των χαρακτηριστικών, θα προκύψουν νέες δυνατότητες: προληπτικός εντοπισμός φθοράς του συστήματος αρχείων, εντοπισμός και αντικατάσταση απενεργοποιημένων μπλοκ, καθώς και βελτιωμένη διόρθωση σφαλμάτων συστήματος αρχείων on-the-fly. Αυτό σημαίνει, όπως είπε ο Ντέιβ, ότι XFSθα παραμείνει το καλύτερο σύστημα αρχείων για εργασία με μεγάλες ποσότητες δεδομένων στο Linux για μεγάλο χρονικό διάστημα.
Ποιες είναι οι επιπτώσεις όλων αυτών από την σκοπιά του btrfs; Σύμφωνα με τον Dave, το btrfs σαφώς δεν είναι βελτιστοποιημένο για εργασία με μεγάλες ποσότητες μεταδεδομένων - υπάρχουν σοβαρά προβλήματαμε επεκτασιμότητα. Αυτό είναι αναμενόμενο από ένα σύστημα αρχείων στα πρώτα στάδια ανάπτυξής του. Θα απαιτηθεί ορισμένη ώραγια την επίλυση αυτών των προβλημάτων, και μερικά από αυτά μπορεί να αποδειχθούν δυσεπίλυτα. Από την άλλη πλευρά, η αξιοπιστία της αποθήκευσης δεδομένων σε btrfs είναι εξαιρετική και τα επόμενα χρόνια μπορεί να χρησιμοποιηθεί με αυτή τη χωρητικότητα.
Το Ext4, από την άλλη πλευρά, υποφέρει από προβλήματα επεκτασιμότητας λόγω σφαλμάτων στην υποδομή. Σε κάθε περίπτωση, σύμφωνα με τα αποτελέσματα των δοκιμών που έδωσε ο Dave, δεν είναι και το πιο γρήγορο. Η αξιοσέβαστη εποχή της αρχιτεκτονικής του είναι ενδεικτική, αν και υπάρχουν σχέδια για βελτίωση της αξιοπιστίας του. Το Ext4 θα παλέψει για να παραμείνει στο ίδιο επίπεδο με τους ανταγωνιστές του στο εγγύς μέλλον.
Στο τέλος της ομιλίας του, ο Ντέιβ έθεσε μερικές ακόμη ερωτήσεις. Σύμφωνα με τον ίδιο, το btrfs, λόγω των πλεονεκτημάτων του, θα αντικαταστήσει σύντομα το ext4 ως το προεπιλεγμένο σύστημα αρχείων σε πολλές διανομές. Ταυτόχρονα το ext4 είναι κατώτερο XFSστις περισσότερες εργασίες, συμπεριλαμβανομένων εκείνων όπου ήταν παραδοσιακά ισχυρή. Το πρόβλημα επεκτασιμότητας εμφανίζεται ήδη στο μικρούς διακομιστές. Επιπλέον, δεν είναι τόσο σταθερό όσο νομίζουν οι χρήστες. Στο τέλος ρώτησε: "Γιατί χρησιμοποιούμε ακόμα το ext4;"
Θα μπορούσε κανείς να υποθέσει ότι οι προγραμματιστές του ext4 έχουν μια καλή απάντηση σε αυτήν την ερώτηση, αλλά δυστυχώς κανένας από αυτούς δεν ήταν παρών στο δωμάτιο. Φαίνεται λοιπόν ότι αυτή η συζήτηση πρέπει να συνεχιστεί αλλού. Θα είναι ενδιαφέρον να τον ακούσουμε.