Συστήματα αρχείων: σύγκριση, μυστικά και μοναδικά χαρακτηριστικά. Linux - συστήματα αρχείων ext3 και ext4

Συσκευές 15.06.2019
Συσκευές

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

Η ιστορία του εκτεταμένου συστήματος αρχείων (ext) χρονολογείται από τις πρώτες μέρες του Linux. Κάποτε, αυτό το σύστημα αρχείων κατάργησε το όριο μεγέθους αρχείου των 2 GB, αλλά ήταν εξαιρετικά επιρρεπές σε κατακερματισμό. Επομένως, αμέσως μετά την κυκλοφορία του πρώτου εκτεταμένου συστήματος αρχείων, αναπτύχθηκε η δεύτερη έκδοσή του (ext2), εξαλείφοντας έναν αριθμό πρόσθετους περιορισμούς(Για παράδειγμα, μέγιστο μέγεθοςαρχείο έχει αυξηθεί σε 4 TB). Το σύστημα αρχείων ext2 έγινε γρήγορα το γενικά αποδεκτό πρότυπο Linux, αλλά συνέχισε να εξελίσσεται καθώς εξελισσόταν το λειτουργικό σύστημα. Έτσι, σήμερα έχουμε δύο ακόμη εκδόσεις του εκτεταμένου συστήματος αρχείων - την τρίτη (ext3) και την τέταρτη (ext4).

Λάβετε υπόψη ότι όλες οι εντολές στις καταχωρίσεις σε αυτό το άρθρο ξεκινούν με τους χαρακτήρες $ ή # , οι οποίοι έχουν συγκεκριμένες σημασίες στο κέλυφος του Linux. Το σύμβολο $ στη γραμμή εντολών σημαίνει ότι ο χρήστης εκτελείται με κανονικά δικαιώματα, ενώ το σύμβολο # σημαίνει ότι ο χρήστης έχει δικαιώματα λογαριασμός root (δηλαδή είναι διαχειριστής). Όταν βλέπετε μια εντολή στις λίστες που ξεκινά με το σύμβολο #, για να την εκτελέσετε πρέπει να έχετε πρόσβαση στην εντολή sudo ή έναν λογαριασμό χρήστη root που σας επιτρέπει να εκτελέσετε απευθείας την εντολή.

Ως επί το πλείστον, αυτό το άρθρο εξετάζει την εργασία με την οικογένεια εκτεταμένου συστήματος αρχείων Linux (ext). Ωστόσο, μεταξύ άλλων συστημάτων αρχείων, το Linux υποστηρίζει επίσης πολλά συστήματα αρχείων δίσκου, όπως XFS, ReiserFS, Btrfs (B-tree File System) και JFS (IBM Journaled File System). Ανάλογα με τις εργασίες που εκτελείτε στον υπολογιστή σας και στο περιβάλλον εργασίας σας, ορισμένα από αυτά τα συστήματα αρχείων μπορεί να είναι καταλληλότερα από το εκτεταμένο σύστημα αρχείων. Ωστόσο, η εξοικείωση με το εκτεταμένο σύστημα αρχείων είναι ένα καλό σημείο εκκίνησης, καθώς οι περισσότερες διανομές Linux χρησιμοποιούν το σύστημα αρχείων ext3 ή ext4 από προεπιλογή.

Το σύστημα αρχείων ext3 είναι μια περαιτέρω ανάπτυξη του προηγούμενου συστήματος αρχείων ext2 και χρησιμοποιείται ευρέως σήμερα. Μία από τις σημαντικές θεμελιώδεις διαφορές μεταξύ ext3 και ext2 είναι η παρουσία καταγραφής. Το σύστημα αρχείων ext3 είναι συμβατό προς τα πίσω με το ext2, επομένως η μετάβαση από το ext2 στο ext3 δεν απαιτεί εκ νέου κατάτμηση του δίσκου. Συνήθως, αυτό μπορεί να γίνει εκτελώντας το tune2fs –j με δικαιώματα root. Για παράδειγμα, εάν το σύστημα αρχείων ext2 χρησιμοποιείται στο δεύτερο διαμέρισμα πρώτα σκληράδίσκο και, στη συνέχεια, για να το μετατρέψετε σε ext3, απλώς εκτελέστε την εντολή tune2fs -j /dev/sda2.

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

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

Η τελευταία έκδοση του εκτεταμένου συστήματος αρχείων σήμερα είναι το σύστημα αρχείων ext4, το οποίο είναι συμβατό με τα ext2 και ext3. Σε σύγκριση με το ext3, το ext4 εισάγει μια σειρά από βελτιώσεις, που σχετίζονται κυρίως με την ταχύτητα και την αξιοπιστία. Το σύστημα αρχείων ext4 είναι διαθέσιμο σε Linux με έκδοση πυρήνα 2.6.28 και νεότερη.

Ο Πίνακας 1 δείχνει μερικά βασικά χαρακτηριστικά των πιο κοινών συστημάτων αρχείων Linux για να σας βοηθήσει να σχεδιάσετε διατάξεις διαμερισμάτων ή να μετατρέψετε υπάρχοντα διαμερίσματα.

Εξέλιξη του Εκτεταμένου Συστήματος Αρχείων

Σύστημα αρχείων
Εκτεταμένο σύστημα αρχείων (από το 1991 περίπου) Το παλαιότερο σύστημα αρχείων Linux. Το μειονέκτημα αυτού του συστήματος αρχείων είναι ο υπερβολικός κατακερματισμός.
Ext2 (από το 1993 περίπου) Αυτό το σύστημα αρχείων είναι πολύ ανθεκτικό, αλλά στερείται ημερολογίου. Μετά από μια ξαφνική επανεκκίνηση ή κατάρρευση συστήματος, η εντολή fsck εκτελείται για ολόκληρο το σύστημα αρχείων.
Ext3 (από το 2001 περίπου) Αυτό το σύστημα αρχείων μπορεί να περιέχει 32.000 υποκαταλόγους, υποστηρίζει ημερολόγιο και είναι συμβατό με το σύστημα αρχείων ext2.
Ext4 (από το 2008 περίπου) Αυτό το σύστημα αρχείων μπορεί να χωρέσει 64.000 υποκαταλόγους, επιτρέπει την πλήρη απενεργοποίηση του ημερολογίου (σε αντίθεση με το ext3) και είναι συμβατό με συστήματα αρχείων ext2 και ext3.

Πώς αποθηκεύονται τα δεδομένα στο εκτεταμένο σύστημα αρχείων Linux

Υπάρχουν δύο τύποι δεδομένων που είναι αποθηκευμένα στο σύστημα αρχείων Linux. Ο πρώτος τύπος είναι τα δεδομένα χρήστη (κανονικά αρχεία και κατάλογοι με τους οποίους εργάζονται οι χρήστες). Τα αρχεία μπορούν επίσης να είναι τεσσάρων τύπων: κανονικά αρχεία, σύνδεσμοι, επώνυμοι σωλήνες (FIFO) και πρίζες.

Ίσως έχετε ακούσει την έκφραση «Στο Linux, όλα είναι ένα αρχείο ή μια διαδικασία». Αυτή η έκφραση υπονοεί το γεγονός ότι το Linux δεν έχει την έννοια μητρώο συστήματος. Αντίθετα, όλα τα αντικείμενα αποθηκεύονται ως ένας από τους τέσσερις τύπους αρχείων. Ένας άλλος τύπος δεδομένων που αποθηκεύονται στο σύστημα αρχείων είναι τα μεταδεδομένα, τα οποία είναι ένας κόμβος ευρετηρίου και συνήθως ονομάζεται inode. Τα Inodes είναι ένας τρόπος για την ευρετηρίαση χαρακτηριστικών αρχείων στο Linux. Κάθε αρχείο έχει το δικό του inode, το οποίο συνήθως περιέχει τις ακόλουθες πληροφορίες:

  • Μέγεθος αρχείου.
  • Κάτοχοι του αρχείου (χρήστης και ομάδα).
  • Δικαιώματα αρχείου.
  • Αριθμός σκληρών και μαλακών συνδέσμων.
  • Ο χρόνος τελευταίας πρόσβασης και τροποποίησης του αρχείου.
  • Πληροφορίες λίστας ελέγχου πρόσβασης (ACL).
  • Τυχόν πρόσθετα χαρακτηριστικά που ορίζονται για το αρχείο (για παράδειγμα, αμετάβλητο).

Η λίστα 1 δείχνει ένα παράδειγμα χρήσης της εντολής stat για την ανάκτηση πληροφοριών που είναι αποθηκευμένες σε ένα inode.
Λίστα 1. Χρησιμοποιώντας την εντολή stat

$ stat /etc/services Αρχείο: `/etc/services" Μέγεθος: 362031 Μπλοκ: 728 IO Block: 4096 κανονικό αρχείο Συσκευή: fd00h/64768d Inode: 1638437 Σύνδεσμοι: 1 Πρόσβαση: (0644/-rw-r- -) Uid: (0/ ρίζα) Gid: (0/ root) Πρόσβαση: 2011-12-19 00:01:25.000000000 -0600 Τροποποίηση: 2006-02-23 07:09:23.000000000 -0601-01: 18 17:29:37.000000000 -0500

Στη Λίστα 1, η εντολή εκτελέστηκε στο αρχείο /etc/services. Ως αποτέλεσμα της εκτέλεσής του, λάβαμε σε οπτική μορφή όλες τις πληροφορίες του περιγραφέα ευρετηρίου και χαρακτηριστικά αρχείου.

καταλόγους

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

Όλοι οι κατάλογοι είναι οργανωμένοι σε μια ιεραρχική δομή, ξεκινώντας από τον ριζικό κατάλογο (/). Στην πραγματικότητα, αυτό είναι απλώς μια λογική σειρά, καθώς δεν βρίσκονται όλοι οι κατάλογοι στο ίδιο διαμέρισμα συστήματος αρχείων. Στην πραγματικότητα, εάν προσαρτάτε ένα σύστημα αρχείων δικτύου (όπως το NFS), το σημείο προσάρτησης θα βρίσκεται κάπου σε αυτήν την ιεραρχική δομή κάτω από τον ριζικό κατάλογο. Αυτή είναι μια σημαντική διαφορά από τα Windows, όπου είστε συνηθισμένοι στο γεγονός ότι η μονάδα δίσκου C περιέχει συνήθως το σύστημα αρχείων δίσκου και τα επόμενα συστήματα αρχείων (μονταρισμένο πόρους δικτύου, μονάδες CD-ROM και μονάδες USB) είναι τοποθετημένες ως ξεχωριστές μονάδες δίσκου - D, E, F και ούτω καθεξής.

Superblock

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

Η λίστα 2 δείχνει ένα παράδειγμα στο οποίο λαμβάνουμε πληροφορίες σχετικά με το διαμέρισμα που βρίσκεται στη συσκευή /dev/sda1 (στην περίπτωσή μας, το διαμέρισμα /boot). Στην κατασκευή grep -i superblock, χρησιμοποιούμε την εντολή grep με τρόπο χωρίς διάκριση πεζών-κεφαλαίων για να εξάγουμε πληροφορίες που περιέχουν τη συμβολοσειρά superblock .
Καταχώριση 2. Χρήση dumpe2fs για λήψη πληροφοριών superblock

# dumpe2fs /dev/sda1 | grep -i superblock Πρωτεύον superblock στο 1, περιγραφείς ομάδας στο 2-2 Backup superblock στο 8193, περιγραφείς ομάδας στο 8194-8194 Backup superblock στο 24577, περιγραφείς ομάδας στο 24578-24578 Backup superblock στο 409604, Superblock29604, στο 57345, Group descriptors στο 57346-57346 Backup superblock στο 73729, Group descriptors στο 73730-73730

Προβολή κατάστασης συστήματος αρχείων

Φυσικά, θα θέλετε να διαμορφώσετε τις βασικές ρυθμίσεις του συστήματος αρχείων, όπως η κατανομή χώρου στο δίσκο, τα σημεία ελέγχου ασφαλείας και τα επίπεδα απόδοσης στόχου. Το GNU έχει πολλά εργαλεία για εργασία με το σύστημα αρχείων. Οι πιο συνηθισμένες εντολές είναι οι df, du, fsck και fdisk, καθώς και το iostat και το sar (αυτές οι εντολές δεν είναι τόσο δημοφιλείς, αλλά εξακολουθούν να είναι χρήσιμες).

εντολές du και df

Οι εντολές df και du χρησιμοποιούνται για τη λήψη πληροφοριών σχετικά με τη χρήση του δίσκου και τον ελεύθερο χώρο στο δίσκο. Η εντολή du -csh /var δείχνει το μέγεθος των αρχείων στον κατάλογο /var. Εάν πρέπει να λάβετε πληροφορίες σχετικά με τους ένθετους υποκαταλόγους του καταλόγου /var, πρέπει να εκτελέσετε την εντολή du -h.

εντολή fsck

Η εντολή fsck χρησιμοποιείται για τον έλεγχο του συστήματος αρχείων και την επιδιόρθωση του εάν είναι απαραίτητο. Για παράδειγμα, εάν πρέπει να ελέγξετε το διαμέρισμα που βρίσκεται στη συσκευή /dev/sda2 για σφάλματα, τότε πληκτρολογήστε την εντολή fsck /dev/sda:

# umount /var # fsck /var fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) /dev/sda3: καθαρό, 702/192000 αρχεία, 52661/768000 μπλοκ

Σημείωση.Αυτή η εντολή πρέπει να εκτελείται σε ένα μη προσαρτημένο σύστημα αρχείων.

Στα παραπάνω παραδείγματα, όλες οι εργασίες πραγματοποιήθηκαν σε λειτουργία ενός χρήστη. Το διαμέρισμα /var που βρίσκεται στη συσκευή /dev/sda3 αποπροσαρτήθηκε πρώτα. Η εντολή fsck δεν βρήκε σφάλματα, διαφορετικά θα επιχειρούσε να τα διορθώσει.

εντολή iostat

Η εντολή iostat εμφανίζει στατιστικά στοιχεία εισόδου/εξόδου δίσκου.

$ iostat Linux 2.6.18-164.el5 (DemoServer) 19/12/2011 avg-cpu: %χρήστης %nice %system %iowait %steal %idle 0,25 1,74 1,26 2,89 0,00 93,80 93,80 93,80 tpsslk/device: Blk_wrtn sda 10.69 351.52 227.60 1759192 1139038 sda1 0.06 0.45 0.00 2254 22 sda2 10.62 351.01 217.601 227.601 350,72 227,60 1755178 1139016 dm-1 0,02 0,18 0,00 920 0 hdc 0,00 0,03 0,00 144 0 fd0 0,00 0,010 0.

Αυτό το παράδειγμα δείχνει πώς η εντολή iostat μπορεί να χρησιμοποιηθεί για τη λήψη πληροφοριών σχετικά με λειτουργίες ανάγνωσης/εγγραφής και γενικά στατιστικά στοιχεία. Σημειώστε ότι από προεπιλογή αυτή η εντολή εμφανίζει πληροφορίες ανάγνωσης/εγγραφής για όλες τις συσκευές και εμφανίζει το γενικές στατιστικέςχρήση.

Σαρ

Η εντολή sar εμφανίζει τιμές μετρητή συστήματος, παρόμοιες με το Performance Monitor του λειτουργικού συστήματος Windows. Η εντολή sar μπορεί να χρησιμοποιηθεί για την εμφάνιση ιστορικών τιμών ή για την εμφάνιση μετρητών σε πραγματικό χρόνο:

$ sar 4 5 Linux 2.6.18-164.el5 (DemoServer) 19/12/2011 12:20:20 π.μ. 0,00 100,00 12:20:28 π.μ. όλα 0,00 0,00 1,01 0,00 0,00 98,99 12:20:32 π.μ. όλα 0,00 0,00 0,50 0,00 0,00 1200 9.00 . 00 0,00 0,00 100,00 12:20:40 π.μ. όλα 0,25 0,00 1,01 0,00 0,00 98,74 Μέσος όρος: όλα 0,05 0,00 0,50 0,00 0,00 99,45

Σε αυτό το παράδειγμα, η εντολή sar εκτυπώνει πέντε τιμές μετρητή, οι οποίες ενημερώνονται κάθε 4 δευτερόλεπτα.

Βελτιστοποίηση και μικρορύθμιση του συστήματος αρχείων

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

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

  • Εφαρμόστε το εργαλείο tune2fs.
  • Αλλάξτε τα σημεία προσάρτησης στο /etc/fstab.
  • Αλλαγή παραμέτρων πυρήνα.

Συντονισμός με tune2fs

Χρησιμότητα γραμμή εντολώνΤο tune2fs χρησιμοποιείται για συντονισμό σκληρές παραμέτρουςδίσκος. Για παράδειγμα, εάν έχετε μεγάλους καταλόγους σε ένα διαμέρισμα με το σύστημα αρχείων ext3, μπορείτε να επιταχύνετε την πρόσβαση σε αυτούς χρησιμοποιώντας κατακερματισμένα δέντρα b, για τα οποία χρησιμοποιείτε το διακόπτη tune2fs dir_index:

# tune2fs -O dir_index /dev/sda5

Η εντολή tune2fs πρέπει να εκτελείται ως root. Ο διακόπτης -O καθορίζει μια επιλογή για το καθορισμένο διαμέρισμα.

Τοποθέτηση με χρήση ειδικών επιλογών

Η διαδικασία μετά την οποία το σύστημα αρχείων γίνεται διαθέσιμο για χρήση ονομάζεται βάσησύστημα αρχείων. Στην πράξη, η εντολή mount χρησιμοποιείται για αυτό. Όταν ενεργοποιείτε τον υπολογιστή σας Linux, το σύστημα πρέπει να γνωρίζει πώς να προσαρτά διαθέσιμα συστήματα αρχείων. Το αρχείο /etc/fstab χρησιμοποιείται για αυτούς τους σκοπούς. Όπως κάθε άλλο αρχείο διαμόρφωσης Linux, αυτό το αρχείο μπορεί να επεξεργαστεί χρησιμοποιώντας οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου, όπως το vi ή το vim. Το αρχείο /etc/fstab περιέχει σημεία προσάρτησης για διάφορα συστήματα αρχείων. Κατά τη ρύθμιση των επιλογών προσάρτησης, χρησιμοποιείται η τέταρτη στήλη. Για παράδειγμα, για να απενεργοποιήσετε τον έλεγχο του τελευταίου χρόνου πρόσβασης αρχείων για ένα συγκεκριμένο σύστημα αρχείων (δυνητικά βελτίωση της απόδοσης), μπορείτε να προσθέσετε την επιλογή noatime. Εάν έχετε ένα σύστημα αρχείων στο οποίο δεν θέλετε να γράφουν οι χρήστες (για παράδειγμα, εάν αποθηκεύει αρχεία), μπορείτε να το προσαρτήσετε με την επιλογή ro (μόνο για ανάγνωση).

Για να αλλάξετε τις επιλογές προσάρτησης στο αρχείο /etc/fstab, χρησιμοποιήστε την ακόλουθη γραμμή εντολών:

Εάν το διαμέρισμα μπορεί να αποπροσαρτηθεί στο τρέχον περιβάλλον εργασίας, τότε η εντολή mount -o remount θα αποφύγει την επανεκκίνηση του συστήματος μετά την αλλαγή του αρχείου /etc/fstab.

Ρύθμιση παραμέτρων πυρήνα

Για να δείτε και να αλλάξετε τις παραμέτρους του πυρήνα, χρησιμοποιήστε την εντολή sysctl. Για να αποκτήσετε μια λίστα παραμέτρων που σχετίζονται με το σύστημα αρχείων και τις τρέχουσες τιμές τους, εκτελέστε την εντολή sysclt -a | grep fs όπως φαίνεται στην Λίστα 3.
Λίστα 3. Προβολή παραμέτρων πυρήνα που σχετίζονται με το σύστημα αρχείων

# sysctl -a | grep fs. | λιγότερο .... fs.quota.warnings = 1 fs.quota.syncs = 23 fs.quota.free_dquots = 0 fs.quota.allocated_dquots = 0 fs.quota.cache_hits = 0 fs.quota.writes = 0 fs.quota .reads = 0 fs.quota.drops = 0 fs.quota.lookups = 0 fs.suid_dumpable = 0 fs.inotify.max_queued_events = 16384 fs.inotify.max_user_watches = 8192 fs.suid_dumpable. nr = 65536 fs.aio-nr = 0 fs.lease-break-time = 45 fs.dir-notify-enable = 1 fs.leases-enable = 1 fs.overflowgid = 65534 fs.overflowuid = 65534 fs.dentry-state = 26674 23765 45 0 0 0 fs.file-max = 102263 .........

Η λίστα 3 δείχνει ένα απόσπασμα της λίστας των επιλογών πυρήνα που σχετίζονται με το σύστημα αρχείων που φιλτράρονται χρησιμοποιώντας την εντολή grep. Μπορείτε να αλλάξετε αυτές τις ρυθμίσεις χρησιμοποιώντας την εντολή sysclt -w. Για παράδειγμα, εάν ο διακομιστής σας επεξεργάζεται μεγάλο αριθμό μικρών αρχείων και αντιμετωπίζει συνεχώς σφάλματα με το μήνυμα "εξαντλούνται οι χειρισμοί αρχείων" (δεν υπάρχουν αρκετές λαβές αρχείων), τότε μπορείτε να αυξήσετε τον μέγιστο αριθμό των ανοιχτών χειρισμών αρχείων χρησιμοποιώντας την εντολή sysclt - w file-max=xxxxxx , Πού χχχχχχ- απαραίτητη μέγιστο ποσόχειριστές.

Οποιεσδήποτε αλλαγές γίνονται με το sysctl λειτουργούν μέχρι την πρώτη επανεκκίνηση. Για να ισχύσουν αυτές οι αλλαγές μετά από μια επανεκκίνηση, πρέπει να ανοίξετε το αρχείο /etc/sysconf σε οποιοδήποτε επεξεργαστής κειμένουκαι κάντε αλλαγές σε αυτό. Αυτό το αρχείο δεν περιέχει όλες τις παραμέτρους του πυρήνα, οπότε αν δεν βρείτε την επιθυμητή παράμετρο σε αυτό, τότε απλώς προσθέστε την μαζί με την επιθυμητή τιμή.

Θρυμματισμός

Συνήθως, η ανασυγκρότηση του δίσκου πραγματοποιείται όταν ο κατακερματισμός του είναι μεγαλύτερος από 20%. Κατά τη δημιουργία ενός εκτεταμένου συστήματος αρχείων, περίπου το 5% του χώρου στο δίσκο δεσμεύεται για εργασίες συστήματος για να αποφευχθεί η ανάγκη ανασυγκρότησης. Εν ολίγοις, υπό κανονικές συνθήκες δεν χρειάζεται να ανησυχείτε για την ανασυγκρότηση. Ωστόσο, αυτό δεν σημαίνει ότι η τρέχουσα γενιά εκτεταμένων συστημάτων αρχείων είναι εντελώς απαλλαγμένη από κατακερματισμό. Εάν υποψιάζεστε ότι ένα αρχείο είναι κατακερματισμένο, μπορείτε να ελέγξετε με την εντολή filefrag. Η επιλογή -v σάς επιτρέπει να λαμβάνετε πιο λεπτομερείς πληροφορίες.

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

Εργασίες συστήματος αρχείων

Οι κύριες λειτουργίες οποιουδήποτε συστήματος αρχείων στοχεύουν στην επίλυση των ακόλουθων εργασιών:

Ονομασία αρχείου?

διεπαφή λογισμικού για εργασία με αρχεία για εφαρμογές.

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

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

Ένα σύστημα αρχείων είναι η βασική δομή που χρησιμοποιεί ένας υπολογιστής για να οργανώσει πληροφορίες στον σκληρό δίσκο του. Όταν εγκαθιστάτε έναν νέο σκληρό δίσκο, πρέπει να διαμεριστεί και να μορφοποιηθεί με ένα συγκεκριμένο σύστημα αρχείων, μετά από το οποίο μπορείτε να αποθηκεύσετε δεδομένα και προγράμματα σε αυτόν. Υπάρχουν τρεις πιθανές επιλογές συστήματος αρχείων στα Windows: NTFS, FAT32 και το σπάνια χρησιμοποιούμενο σύστημα παλαιού τύπου FAT (γνωστό και ως FAT16).

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

Η δυνατότητα αυτόματης ανάκτησης από ορισμένα σφάλματα δίσκου (το FAT32 δεν έχει αυτή τη δυνατότητα).
Βελτιωμένη υποστήριξη για μεγάλα σκληροι ΔΙΣΚΟΙ.
Υψηλότερος βαθμός ασφάλειας. Μπορείτε να χρησιμοποιήσετε δικαιώματα και κρυπτογράφηση για να αρνηθείτε την πρόσβαση του χρήστη σε ορισμένα αρχεία.

Το σύστημα αρχείων FAT32 και το σπάνια χρησιμοποιούμενο σύστημα FAT χρησιμοποιήθηκαν στο προηγούμενο εκδόσεις Windows, συμπεριλαμβανομένων των Windows 95, Windows 98 και Windows Millenium Edition. Το σύστημα αρχείων FAT32 δεν παρέχει το επίπεδο ασφάλειας που παρέχεται από το NTFS, επομένως εάν ο υπολογιστής σας διαθέτει διαμέρισμα ή τόμο μορφοποιημένο ως FAT32, τα αρχεία σε αυτό το διαμέρισμα είναι ορατά σε οποιονδήποτε έχει πρόσβαση στον υπολογιστή. Το σύστημα αρχείων FAT32 έχει επίσης περιορισμούς μεγέθους αρχείου. Σε αυτήν την έκδοση των Windows, δεν είναι δυνατή η δημιουργία διαμερίσματος FAT32 μεγαλύτερο από 32 GB. Επιπλέον, ένα διαμέρισμα FAT32 δεν μπορεί να περιέχει αρχείο μεγαλύτερο από 4 GB.

Ο κύριος λόγος για τη χρήση ενός συστήματος FAT32 είναι ότι ο υπολογιστής θα μπορεί να εκτελεί είτε Windows 95, Windows 98 ή Windows Millennium Edition είτε αυτήν την έκδοση των Windows (διαμόρφωση πολλαπλών λειτουργικών συστημάτων). Για να δημιουργήσετε μια τέτοια διαμόρφωση, πρέπει να εγκαταστήσετε την προηγούμενη έκδοση του λειτουργικού συστήματος σε ένα διαμέρισμα μορφοποιημένο ως FAT32 ή FAT, καθιστώντας το κύριο διαμέρισμα (το κύριο διαμέρισμα μπορεί να περιέχει το λειτουργικό σύστημα). Άλλα διαμερίσματα στα οποία έχετε πρόσβαση από προηγούμενες εκδόσεις των Windows πρέπει επίσης να μορφοποιηθούν ως FAT32. Περισσότερο πρώιμες εκδόσειςΤα Windows μπορούν να έχουν πρόσβαση μόνο σε διαμερίσματα ή τόμους NTFS δικτύου. Τα διαμερίσματα NTFS στον τοπικό υπολογιστή δεν θα είναι προσβάσιμα.

FAT – πλεονεκτήματα:

Απαιτεί κάποια μνήμη RAM για να λειτουργήσει αποτελεσματικά.
Γρήγορη δουλειάμε μικρούς και μεσαίους καταλόγους.
Ο δίσκος κάνει, κατά μέσο όρο, λιγότερες κινήσεις κεφαλής (σε σύγκριση με το NTFS).
Εργαστείτε αποτελεσματικά σε αργούς δίσκους.

ΛΙΠΗ – μειονεκτήματα:

Καταστροφική απώλεια απόδοσης με αυξανόμενο κατακερματισμό, ειδικά για μεγάλους δίσκους (μόνο FAT32).
Δυσκολίες με την τυχαία πρόσβαση σε μεγάλα (ας πούμε, 10% ή περισσότερο του μεγέθους του δίσκου) αρχεία.
Πολύ αργή εργασία με καταλόγους που περιέχουν μεγάλο αριθμό αρχείων.

NTFS - πλεονεκτήματα:

Ο κατακερματισμός αρχείων δεν έχει ουσιαστικά καμία συνέπεια για το ίδιο το σύστημα αρχείων - η απόδοση ενός κατακερματισμένου συστήματος υποβαθμίζεται μόνο από την άποψη της πρόσβασης στα ίδια τα δεδομένα του αρχείου.
Η πολυπλοκότητα της δομής του καταλόγου και ο αριθμός των αρχείων σε έναν κατάλογο επίσης δεν θέτει ειδικά εμπόδια στην απόδοση.
Γρήγορη πρόσβαση σε ένα αυθαίρετο τμήμα ενός αρχείου (για παράδειγμα, επεξεργασία μεγάλων αρχείων .wav).
Πολύ γρήγορη πρόσβαση σε μικρά αρχεία (μερικές εκατοντάδες byte) - ολόκληρο το αρχείο βρίσκεται στην ίδια θέση με τα δεδομένα συστήματος (εγγραφή MFT).

NTFS - μειονεκτήματα:

Σημαντικές απαιτήσεις μνήμης συστήματος (64 MB είναι το απόλυτο ελάχιστο, περισσότερα τόσο καλύτερα).
Οι αργοί δίσκοι και οι ελεγκτές χωρίς Mastering διαύλου μειώνουν σημαντικά την απόδοση του NTFS.
Η εργασία με καταλόγους μεσαίου μεγέθους είναι δύσκολη επειδή είναι σχεδόν πάντα κατακερματισμένοι.
Ένας δίσκος που λειτουργεί για μεγάλο χρονικό διάστημα στο 80% - 90% γεμάτο θα δείξει εξαιρετικά χαμηλή απόδοση.

Τα ακόλουθα συστήματα αρχείων θεωρούνται ως «εγγενή» για το Linux (δηλαδή αυτά στα οποία μπορεί να εγκατασταθεί και από τα οποία μπορεί να ξεκινήσει): ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS.Συνήθως προσφέρονται ως επιλογή κατά την εγκατάσταση της συντριπτικής πλειοψηφίας των διανομών. Φυσικά, υπάρχουν επίσης τρόποι εγκατάστασης του Linux σε συστήματα αρχείων FAT/VFAT/FAT32, αλλά αυτό είναι μόνο για εκείνους τους γλυκούς και κύριους που καταλαβαίνουν τις διαστροφές και δεν θα μιλήσω για αυτές.

Τα κύρια κριτήρια κατά την επιλογή ενός συστήματος αρχείων είναι συνήθως η αξιοπιστία και η απόδοση. Σε ορισμένες περιπτώσεις, πρέπει επίσης να λάβετε υπόψη τον παράγοντα συμβατότητας - σε αυτήν την περίπτωση, σημαίνει την ικανότητα άλλων λειτουργικών συστημάτων να έχουν πρόσβαση σε ένα συγκεκριμένο σύστημα αρχείων.
Θα ξεκινήσω την αναθεώρηση με το ReiserFS - επειδή ο λόγος για τη σύνταξη αυτής της σημείωσης ήταν η ερώτηση: τι πρέπει να θεωρούνται μικρά αρχεία; Άλλωστε, είναι γνωστό ότι είναι η αποτελεσματικότητα της εργασίας με μικρά αρχεία δυνατό σημείοαυτό το σύστημα αρχείων.

Έτσι, μικρά αρχεία σημαίνει αρχεία μικρότερα από ένα λογικό μπλοκ του συστήματος αρχείων, το οποίο στο Linux στις περισσότερες περιπτώσεις είναι ίσο με τέσσερα kilobyte, αν και μπορεί να καθοριστεί κατά τη μορφοποίηση εντός ορισμένων ορίων (ανάλογα με το συγκεκριμένο FS). Υπάρχουν αμέτρητα τέτοια μικρά αρχεία σε οποιοδήποτε λειτουργικό σύστημα τύπου Unix. Χαρακτηριστικό παράδειγμα είναι τα αρχεία που αποτελούν το δέντρο των θυρών του FreeBSD, των portages Gentoo και παρόμοιων συστημάτων που μοιάζουν με port.
Στα περισσότερα συστήματα αρχείων, τέτοια μίνι-αρχεία έχουν τόσο το δικό τους inode (έναν κόμβο πληροφοριών που περιέχει μετα-πληροφορίες για το αρχείο) όσο και ένα μπλοκ δεδομένων, το οποίο οδηγεί τόσο σε κατανάλωση χώρου στο δίσκο όσο και σε μείωση της απόδοσης των λειτουργιών αρχείων. Ειδικότερα, αυτός είναι ακριβώς ο λόγος για την καταστροφική στοχαστικότητα του συστήματος αρχείων του FreeBSD (τόσο του παλιού, UFS, όσο και του νέου, UFS2) όταν εργάζεται με το δικό του σύστημα θυρών.

Στο σύστημα αρχείων ReiserFS, σε τέτοιες περιπτώσεις, δεν εκχωρούνται ξεχωριστά μπλοκ για δεδομένα - καταφέρνει να ωθήσει τα δεδομένα αρχείου απευθείας στην περιοχή inode. Λόγω αυτού, εξοικονομείται χώρος στο δίσκο και η απόδοση αυξάνεται - κυριολεκτικά αρκετές φορές σε σύγκριση με όλα τα άλλα FS.
Αυτός ο χειρισμός μικρών αρχείων ReiserFS έχει δημιουργήσει το θρύλο της αναξιοπιστίας του. Πράγματι, όταν το σύστημα αρχείων καταρρέει (δηλαδή, η καταστροφή των περιοχών εξυπηρέτησης), τα δεδομένα που βρίσκονται μαζί με τους ινώδους του εξαφανίζονται μαζί τους - και αμετάκλητα. Ενώ σε εκείνα τα συστήματα αρχείων όπου τα μπλοκ inode και δεδομένων διαχωρίζονται πάντα χωρικά, τα τελευταία μπορούν θεωρητικά να αποκατασταθούν. Έτσι, για το ext2/ext3 υπάρχουν ακόμη και εργαλεία που σας επιτρέπουν να το κάνετε αυτό.

Ωστόσο, όπως κάθε θρύλος, έτσι και αυτός δίνει μόνο την εντύπωση της αυθεντικότητας. Πρώτον, η μόνιμη απώλεια δεδομένων ισχύει μόνο για πολύ μικρά αρχεία. Μεταξύ των χρηστών, πρακτικά δεν υπάρχουν τέτοια, και όλα τα άλλα μπορούν εύκολα να αποκατασταθούν από το κιτ διανομής.
Δεύτερον, όταν μιλούσα για τη δυνατότητα ανάκτησης δεδομένων από μπλοκ που έχουν χάσει τη σύνδεσή τους με τους inode τους, δεν ήταν τυχαίο που χρησιμοποίησα τη λέξη "θεωρητικό". Γιατί στην πράξη αυτή η δραστηριότητα είναι εξαιρετικά κοπιαστική και δεν δίνει εγγυημένο αποτέλεσμα. Όποιος χρειάστηκε να το κάνει αυτό θα συμφωνήσει ότι μπορεί να επιδοθεί σε αυτό μόνο από πλήρη απόγνωση. Και αυτό ισχύει για όλα τα συστήματα αρχείων Linux. Επομένως, αυτή η πτυχή μπορεί να παραμεληθεί κατά την επιλογή ενός συστήματος αρχείων.

Όσον αφορά τη συνολική απόδοση, το ReiserFS είναι σίγουρα ταχύτερο από όλα τα άλλα ημερολογιακά FS και από ορισμένες απόψεις είναι ανώτερο από το ext2. Μπορείτε να βρείτε μια σύγκριση ταχύτητας ορισμένων κοινών λειτουργιών αρχείων εδώ.
Αλλά με το ReiserFS η κατάσταση συμβατότητας είναι κάπως χειρότερη. Πρόσβαση σε αυτό από το λειτουργικό σύστημα Οικογένεια Windows, από όσο ξέρω, είναι αδύνατο. Ορισμένα λειτουργικά συστήματα της οικογένειας BSD (DragonFlyBSD, FreeBSD) υποστηρίζουν αυτό το σύστημα αρχείων, αλλά σε λειτουργία μόνο για ανάγνωση. Ακόμη και η πιθανότητα ένα αυθαίρετο Linux LiveCD από προηγούμενα χρόνια να μην έχει υποστήριξη ReiserFS δεν είναι μηδενική.

Και εδώ ήρθε η ώρα να θυμηθούμε το ext3fs. Το πλεονέκτημά του δεν είναι καθόλου στη μεγαλύτερη αξιοπιστία - αυτός είναι ο ίδιος μύθος με την αστάθεια του ReiserFS. Έχω ακούσει όχι λιγότερο για σφάλματα ext3fs παρά για παρόμοια περιστατικά με το ReiserFS. Εγώ ο ίδιος δεν μπορούσα να καταστρέψω ούτε το ένα ούτε το άλλο. Μόνο που δούλευε με το ext2 - αλλά ακόμα και τότε πριν από πολύ καιρό, κατά τη διάρκεια του πυρήνα 2.2 (ή ακόμα και του 2.0).

Όχι, το κύριο πλεονέκτημα του ext3fs είναι η συμβατότητά του - είναι εγγυημένο ότι θα διαβαστεί από οποιοδήποτε σύστημα Linux. Για παράδειγμα, κατά την επαναφορά από κάποιο αρχαίο LiveCD στο χέρι - μια κατάσταση που πρακτικά δεν είναι τόσο απίστευτη, έπρεπε να μπω σε αυτήν. Και πάλι, τα περισσότερα συστήματα BSD μπορούν εύκολα να κατανοήσουν τα ext3fs (αν και χωρίς καταγραφή). Για τα Windows, απ' όσο γνωρίζω, υπάρχουν επίσης όλα τα είδη προγραμμάτων οδήγησης και προσθηκών για κοινούς διαχειριστές αρχείων (όπως το Total Commander), παρέχοντας πρόσβαση σε κατατμήσεις με ext2fs/ext3fs.

Όσον αφορά την απόδοση, το ext3fs αφήνει ανάμεικτες εντυπώσεις. Πρώτον, η απόδοσή του εξαρτάται πολύ από τον τρόπο καταγραφής, από τους οποίους υπάρχουν τρεις: με πλήρη καταγραφή δεδομένων, μερική καταγραφή και καταγραφή μόνο μεταδεδομένων. Σε κάθε λειτουργία, εμφανίζει διαφορετική απόδοση σε διαφορετικούς τύπους λειτουργιών αρχείων. Ωστόσο, σε καμία περίπτωση η απόδοση δεν σπάει ρεκόρ.

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

Τα ακόλουθα μπορούν να ειπωθούν για το XFS. Από πλευράς συμβατότητας, ισχύουν όλα όσα γράφτηκαν για το ReiserFS - επιπλέον, μέχρι κάποιο διάστημα δεν υποστηριζόταν από τον τυπικό πυρήνα Linux. Από πλευράς απόδοσης, το XFS επίσης δεν λάμπει, αποδίδοντας συνολικά περίπου στο ίδιο επίπεδο με το ext3fs. Και η λειτουργία διαγραφής αρχείου δείχνει γενικά καταθλιπτική βραδύτητα.
Σύμφωνα με τις παρατηρήσεις μου, η χρήση του XFS αποδίδει όταν εργάζεστε όχι μόνο με μεγάλα, αλλά με πολύ μεγάλα αρχεία - που στην πραγματικότητα είναι μόνο εικόνες DVD και αρχεία βίντεο.

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

Νομίζω ότι οι πληροφορίες που παρουσιάζονται παραπάνω είναι αρκετές για μια τεκμηριωμένη επιλογή. Η προσωπική μου επιλογή τα τελευταία χρόνια ήταν το ReiserFS. Περιστασιακά, σε συστήματα όπου είναι δικαιολογημένο να μετακινήσετε οτιδήποτε είναι δυνατό εκτός του ριζικού διαμερίσματος, είναι λογικό να χρησιμοποιείτε ext3fs για το ριζικό σύστημα αρχείων και ReiserFS για όλους τους άλλους.

Εάν παρέχεται ξεχωριστό διαμέρισμα για τον κατάλογο /boot (και αυτό συνιστάται κατά τη χρήση GRUB bootloaderαπό τους προγραμματιστές του) - γι 'αυτό, κανένα άλλο σύστημα αρχείων εκτός από το ext2fs δεν δικαιολογείται, οποιαδήποτε καταγραφή δεν έχει νόημα εδώ. Τέλος, αν δημιουργήσετε ένα ξεχωριστό διαμέρισμα για όλα τα είδη πολυμεσικών υλικών, τότε μπορείτε να σκεφτείτε το XFS.

Αν προσεγγίσουμε την εξήγηση πιο μεθοδικά

ext - στις πρώτες μέρες του Linux, το ext2 (εκτεταμένη έκδοση συστήματος αρχείων 2) ήταν κυρίαρχο. Από το 2002, αντικαταστάθηκε από το σύστημα ext3, το οποίο είναι σε μεγάλο βαθμό συμβατό με το ext2, αλλά υποστηρίζει επίσης λειτουργίες καταγραφής, και όταν εργάζεστε με την έκδοση πυρήνα 2.6 και νεότερη, ACL. Το μέγιστο μέγεθος αρχείου είναι 2 TB, το μέγιστο μέγεθος συστήματος αρχείων είναι 8 TB. Στα τέλη του 2008 ανακοινώθηκε επίσημα η κυκλοφορία του ext4, το οποίο είναι συμβατό με το ext3, αλλά πολλές λειτουργίες υλοποιούνται πιο αποτελεσματικά από πριν. Επιπλέον, το μέγιστο μέγεθος συστήματος αρχείων είναι 1 EB (1.048.576 TB) και μπορείτε να περιμένετε ότι αυτό θα είναι αρκετό για κάποιο χρονικό διάστημα. Σχετικά με το reiser - το σύστημα πήρε το όνομά του από τον ιδρυτή του, Hans Reiser, και ήταν το πρώτο σύστημα με λειτουργίες καταγραφής που είχε πρόσβαση στον πυρήνα του Linux για δεδομένα. Η έκδοση SUSE του Zp θεωρήθηκε ακόμη και τυπική για κάποιο χρονικό διάστημα. Τα κύρια πλεονεκτήματα του reiser σε σύγκριση με το ext3 είναι η υψηλότερη ταχύτητα και η αποτελεσματικότητα τοποθέτησης κατά την εργασία με μικρά αρχεία (και σε ένα σύστημα αρχείων, κατά κανόνα, τα περισσότερα αρχεία είναι μικρά). Με τον καιρό, ωστόσο, η ανάπτυξη των reisefers σταμάτησε. Εδώ και καιρό έχει ανακοινωθεί ότι θα κυκλοφορήσει η έκδοση 4, η οποία δεν είναι ακόμα έτοιμη και η υποστήριξη για την έκδοση 3 έχει σταματήσει. Σχετικά με το xfs - το σύστημα αρχείων xfs αναπτύχθηκε αρχικά για σταθμούς εργασίας SGI που εκτελούνται στο λειτουργικό σύστημα IRIX. Το Xfs είναι ιδιαίτερα καλό για εργασία με μεγάλα αρχεία και είναι ιδιαίτερα ιδανικό για εργασία με ροή βίντεο. Το σύστημα υποστηρίζει ποσοστώσεις και εκτεταμένα χαρακτηριστικά (ACL).
jfs

jfs - a66peBHaTypaJFS σημαίνει "Journaled File System". Αρχικά αναπτύχθηκε για την IBM και στη συνέχεια προσαρμόστηκε για Linux.
brtfs

brtfs - Εάν είναι η θέληση των κορυφαίων προγραμματιστών πυρήνα, το σύστημα αρχείων brtfs στο Linux έχει ένα λαμπρό μέλλον μπροστά του. Αυτό το σύστημα αναπτύχθηκε από την αρχή στην Oracle. Περιλαμβάνει υποστήριξη για χαρτογράφηση συσκευών και RAID. Το Brtfs είναι περισσότερο παρόμοιο με το σύστημα ZFS που αναπτύχθηκε από τη Sun. Τα πιο ενδιαφέροντα χαρακτηριστικά του περιλαμβάνουν τον on-the-fly έλεγχο συστήματος αρχείων, καθώς και υποστήριξη για SSD (οι δίσκοι στερεάς κατάστασης είναι σκληροί δίσκοι που λειτουργούν με μνήμη flash). Δυστυχώς, οι εργασίες στα brtfs δεν θα ολοκληρωθούν στο άμεσο μέλλον. Το Fedora, ξεκινώντας από την έκδοση 11, παρέχει τη δυνατότητα εγκατάστασης brtfs, αλλά συνιστώ να το χρησιμοποιήσετε μόνο για προγραμματιστές συστημάτων αρχείων!
Δεν υπάρχει "γρηγορότερο" ή "καλύτερο" σύστημα αρχείων - η αξιολόγηση εξαρτάται από το για το οποίο σκοπεύετε να χρησιμοποιήσετε το σύστημα. Για αρχάριους χρήστες Linux που εργάζονται με τοπικός υπολογιστής, συνιστάται η εργασία με ext3 και για διαχειριστές διακομιστών - με ext4. Φυσικά, με το ext4 η ταχύτητα εργασίας είναι υψηλότερη από ό,τι με το ext3, αλλά ταυτόχρονα, στο σύστημα ext4 η κατάσταση με την αξιοπιστία δεδομένων είναι πολύ χειρότερη - μπορεί να χάσετε πληροφορίες εάν το σύστημα απενεργοποιηθεί ξαφνικά.

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

sysv - χρησιμοποιείται σε SCO, Xenix και Coherent OS.

ufs - χρησιμοποιείται σε FreeBSD, NetBSD, NextStep και SunOS. Το Linux μπορεί να διαβάσει πληροφορίες μόνο από τέτοια συστήματα αρχείων, αλλά δεν μπορεί να κάνει αλλαγές στα δεδομένα. Για να αποκτήσετε πρόσβαση σε τμήματα από το BSD, θα χρειαστείτε επιπλέον την επέκταση ετικέτας δίσκου BSD. Μια παρόμοια επέκταση υπάρχει για πίνακες διαμερισμάτων SunOS.

Το ZFS είναι ένα σχετικά νέο σύστημα που αναπτύχθηκε από τη Sun για το Solaris. Επειδή ο κώδικας ZFS δεν είναι συμβατός με την GPL, δεν μπορεί να ενσωματωθεί με τον πυρήνα του Linux. Για το λόγο αυτό, το Linux υποστηρίζει αυτό το σύστημα αρχείων μόνο έμμεσα, μέσω FUSE.
Windows, Mac OS X

Τα ακόλουθα συστήματα αρχείων θα είναι χρήσιμα κατά την ανταλλαγή πληροφοριών με MS DOS, Windows, OS/2 και Macintosh.

vfat - χρησιμοποιείται στα Windows 9x/ME. Το Linux μπορεί να διαβάσει πληροφορίες από τέτοια διαμερίσματα και να κάνει αλλαγές σε αυτά. Τα προγράμματα οδήγησης συστήματος vfat σάς επιτρέπουν να εργάζεστε με παλαιότερα συστήματα αρχείων MS DOS (8 + 3 χαρακτήρες).

ntfs - το σύστημα χρησιμοποιείται σε όλες τις σύγχρονες εκδόσεις των Windows: otNT και νεότερες εκδόσεις. Το Linux μπορεί να διαβάσει και να τροποποιήσει τα αρχεία του.

hfs και hfsplus - αυτά τα συστήματα αρχείων χρησιμοποιούνται σε υπολογιστές Apple. Το Linux μπορεί να διαβάσει και να τροποποιήσει τα αρχεία του.

Τα δεδομένα CD και DVD χρησιμοποιούν συνήθως τα δικά τους συστήματα αρχείων.

iso9660 - Το σύστημα αρχείων για CD-ROM περιγράφεται στο πρότυπο ISO-9660, το οποίο επιτρέπει μόνο σύντομα ονόματα αρχείων. Τα μεγάλα ονόματα υποστηρίζονται διαφορετικά σε διαφορετικά λειτουργικά συστήματα, χρησιμοποιώντας μια ποικιλία επεκτάσεων που δεν είναι συμβατές μεταξύ τους. Το Linux μπορεί να τρέξει τόσο την επέκταση Rockridge, η οποία είναι κοινή στο UNIX, όσο και την επέκταση Joliet, που αναπτύχθηκε από τη Microsoft.

udf - αυτή η μορφή (καθολική μορφή δίσκου) εμφανίστηκε και αναπτύχθηκε ως διάδοχος του ISO 9660.

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

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

smbfs/cifs - βοήθεια σύνδεσης δικτύου καταλόγους των Windowsή Samba στο δέντρο καταλόγου.

Το nfs είναι το πιο σημαντικό σύστημα αρχείων δικτύου στο UNIX.

coda - αυτό το σύστημα είναι πολύ παρόμοιο με το NFS. Περιέχει πολλά πρόσθετες λειτουργίες, αλλά δεν είναι πολύ συνηθισμένο.

ncpfs - εκτελείται στο πρωτόκολλο πυρήνα NetWare oH χρησιμοποιείται από το Novell Netware.

Εικονικά συστήματα αρχείων

Το Linux έχει πολλά συστήματα αρχείων που δεν έχουν σχεδιαστεί για την αποθήκευση δεδομένων στον σκληρό δίσκο (ή σε άλλα μέσα αποθήκευσης), αλλά μόνο για την ανταλλαγή πληροφοριών μεταξύ του πυρήνα και των προγραμμάτων χρήστη.
devpts - Αυτό το σύστημα αρχείων παρέχει πρόσβαση σε ψευδοτερματικά (συντομογραφία PTY) μέσω /dev/pts/* σύμφωνα με την προδιαγραφή UNIX-98. (Τα ψευδοτερματικά μιμούνται μια σειριακή διεπαφή. Σε συστήματα UNIX/Linux, τέτοιες διεπαφές χρησιμοποιούνται από εξομοιωτές τερματικού όπως το xterm. Συνήθως, χρησιμοποιούνται συσκευές όπως /dev/ttypn. Αντίθετα, η προδιαγραφή UNIX-98 ορίζει νέες συσκευές. Περισσότερες λεπτομέρειες αναφέρονται στο τερματικό κειμένου H0WT0.)
proc και sysfs - το σύστημα αρχείων proc χρησιμοποιείται για την εμφάνιση πληροφοριών υπηρεσίας που σχετίζονται με τη διαχείριση πυρήνα και διεργασιών. Επιπλέον, το σύστημα αρχείων sysfs δημιουργεί σχέσεις μεταξύ του πυρήνα και του υλικού. Και τα δύο συστήματα αρχείων είναι προσαρτημένα στο /proc και στο /sys.
tmpfs - Αυτό το σύστημα είναι χτισμένο με βάση την κοινή μνήμη σύμφωνα με το System V. Συνήθως τοποθετείται στη θέση /dev/shm και επιτρέπει την αποτελεσματική ανταλλαγή πληροφοριών μεταξύ δύο προγραμμάτων. Σε ορισμένες διανομές (όπως το Ubuntu), οι κατάλογοι /var/run και /var/lock δημιουργούνται επίσης χρησιμοποιώντας το σύστημα αρχείων tmpfs. Τα αρχεία σε αυτούς τους καταλόγους χρησιμοποιούνται από ορισμένους δαίμονες δικτύου για αποθήκευση αριθμούς αναγνώρισηςδιαδικασίες, καθώς και πληροφορίες σχετικά με την πρόσβαση σε αρχεία. Χάρη στο tmpfs, αυτά τα δεδομένα αντικατοπτρίζονται πλέον στη μνήμη RAM. Η μέθοδος εγγυάται υψηλή ταχύτητα, και επίσης ότι μετά την απενεργοποίηση του υπολογιστή, δεν θα υπάρχουν αρχεία στους καταλόγους /var/run ή /var/lock.

usbfs - το σύστημα αρχείων usbfs, ξεκινώντας από την έκδοση πυρήνα 2.6 και νεότερη, παρέχει πληροφορίες σχετικά με τις συνδεδεμένες συσκευές USB. Συνήθως ενσωματώνεται στο σύστημα αρχείων proc. Σχετικά με την υποστήριξη συσκευών USB στο Linux.

Άλλα συστήματα αρχείων

auto - στην πραγματικότητα, δεν υπάρχει σύστημα αρχείων με αυτό το όνομα. Ωστόσο, η λέξη auto μπορεί να χρησιμοποιηθεί στο /etc/fstab ή με την εντολή mount για να καθορίσετε το σύστημα αρχείων. Σε αυτήν την περίπτωση, το Linux θα προσπαθήσει να αναγνωρίσει το σύστημα αρχείων από μόνο του. Αυτή η μέθοδος λειτουργεί με τα περισσότερα μεγάλα συστήματα αρχείων.
autofs, autofs4

Το autofs, το autofs4 δεν είναι επίσης συστήματα αρχείων, αλλά επεκτάσεις πυρήνα που εκτελούν αυτόματα την εντολή προσάρτησης για επιλεγμένα συστήματα αρχείων. Εάν ένα σύστημα αρχείων δεν χρησιμοποιείται για κάποιο χρονικό διάστημα, η εντολή umount εκτελείται αυτόματα σε αυτό. Αυτή η μέθοδος είναι βολική κυρίως σε περιπτώσεις όπου μόνο λίγοι από τους πολλούς καταλόγους NFS χρησιμοποιούνται ενεργά ταυτόχρονα.

Για να εκτελέσετε τέτοιες λειτουργίες, η δέσμη ενεργειών /etc/init.d/ autofs εκτελεί αυτόματα το πρόγραμμα αυτόματης προσάρτησης κατά την εκκίνηση του συστήματος. Ρυθμίζεται χρησιμοποιώντας το αρχείο /etc/auto.master. Τα αντίστοιχα προγράμματα εγκαθίστανται αυτόματα, π.χ. κόκκινο καπέλοκαι το Fedora. Σε κάθε περίπτωση, το autofs ενεργοποιείται μόνο μετά τη διαμόρφωση του /etc/auto.master ή του /etc/auto.misc.
κράμφ και σκουός

cramfs και squashfs - Τα συστήματα αρχείων Cram και Squash είναι μόνο για ανάγνωση. Χρησιμοποιούνται για να «πακετάρουν» όσο το δυνατόν περισσότερα zip αρχεία σε μνήμη flash ή ROM (μνήμη μόνο για ανάγνωση).

Fuse - FUSE σημαίνει Filesystem in Userspace και επιτρέπει την ανάπτυξη και χρήση προγραμμάτων οδήγησης συστήματος αρχείων εκτός του πυρήνα. Επομένως, το FUSE χρησιμοποιείται πάντα με εξωτερικό πρόγραμμα οδήγησηςσύστημα αρχείων. Το FUSE λειτουργεί, συγκεκριμένα, με το πρόγραμμα οδήγησης NTFS ntfs-3g.

gfs και ocfs - Το παγκόσμιο σύστημα αρχείων και το σύστημα αρχείων συμπλέγματος από την Oracle (Oracle Cluster File System) σάς επιτρέπουν να δημιουργήσετε γιγάντια συστήματα αρχείων δικτύου στα οποία μπορείτε να έχετε παράλληλη πρόσβαση από πολλούς υπολογιστές ταυτόχρονα.

jffs και yaffs - Το Journaling Flash File System και το Yet Another Flash File System είναι ειδικά βελτιστοποιημένα για εργασία με μονάδες SSD και μέσα flash. Χρησιμοποιώντας ειδικούς αλγόριθμους, προσπαθούν να χρησιμοποιήσουν όλα τα κύτταρα μνήμης ομοιόμορφα (τεχνολογία ισοπέδωσης φθοράς) για να αποφύγουν την πρόωρη βλάβη του συστήματος.
βρόχος

βρόχος - χρησιμοποιείται για εργασία με ψευδο συσκευές. Μια συσκευή loopback είναι ένας προσαρμογέας που μπορεί να έχει πρόσβαση σε ένα κανονικό αρχείο ως συσκευή μπλοκ. Χάρη σε αυτό, μπορείτε να τοποθετήσετε οποιοδήποτε σύστημα αρχείων σε οποιοδήποτε αρχείο και, στη συνέχεια, να το συνδέσετε στο δέντρο καταλόγου χρησιμοποιώντας το mount. Η συνάρτηση πυρήνα που είναι υπεύθυνη για αυτό - υποστήριξη ψευδο-συσκευής - υλοποιείται στη μονάδα βρόχου.

Υπάρχουν διάφορες χρήσεις για ψευδοσυσκευές. Συγκεκριμένα, μπορούν να χρησιμοποιηθούν κατά τη δημιουργία δίσκων αρχικής μνήμης RAM για GRUB ή LILO, κατά την υλοποίηση κρυπτογραφημένων συστημάτων αρχείων ή τη δοκιμή εικόνων ISO για CD.

Συστήματα αρχείων πολυμέσων αποθήκευσης

Συστήματα αρχείων
ISO 9660
Joliet επέκταση του συστήματος αρχείων ISO 9660.
Rock Ridge (RRIP, IEEE P1282) – μια επέκταση συστήματος αρχείων ISO 9660 που έχει σχεδιαστεί για την αποθήκευση χαρακτηριστικών αρχείων που χρησιμοποιούνται σε λειτουργικά συστήματα POSIX
Επεκτάσεις Amiga Rock Ridge
Ελ Τορίτο
Επεκτάσεις Apple ISO9660
HFS, HFS+
Η Universal Disk Format είναι μια προδιαγραφή μιας μορφής συστήματος αρχείων ανεξάρτητης από το λειτουργικό σύστημα για την αποθήκευση αρχείων οπτικά μέσα. Το UDF είναι μια εφαρμογή του προτύπου ISO/IEC 13346
Όρος Ρενιέ

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

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

1. Συμβατότητα

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

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

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

2. Μεγαλύτερο μέγεθος αρχείου και συστήματος αρχείων

Επί του παρόντος, το μέγιστο μέγεθος ενός συστήματος αρχείων Ext3 είναι 16 terabyte και το μέγεθος αρχείου περιορίζεται στα 2 terabyte. Το Ext4 πρόσθεσε διεύθυνση μπλοκ 48-bit, πράγμα που σημαίνει ότι το μέγιστο μέγεθος αυτού του συστήματος αρχείων είναι ένα exabyte και τα αρχεία μπορούν να είναι έως και 16 terabyte. 1 EB (exabyte) = 1.048.576 TB (terabyte), 1 EB = 1024 PB (petabyte), 1 PB = 1024 TB, 1 TB = 1024 GB. Γιατί 48-bit και όχι 64-bit; Υπήρχαν ορισμένοι περιορισμοί που θα έπρεπε να καταργηθούν για να γίνει το Ext4 πλήρως 64-bit και μια τέτοια εργασία δεν είχε οριστεί για το Ext4. Οι δομές δεδομένων στο Ext4 σχεδιάστηκαν έχοντας κατά νου αυτές τις αλλαγές, έτσι μια μέρα στο μέλλον η υποστήριξη 64-bit θα είναι διαθέσιμη στο Ext4. Προς το παρόν, θα πρέπει να αρκεστείτε σε ένα exabyte.

Σημείωση: ο κώδικας για τη δημιουργία συστημάτων αρχείων μεγαλύτερων από 16 terabyte δεν περιλαμβάνεται σε καμία σταθερή έκδοση του e2fsprogs τη στιγμή που γράφεται αυτό το άρθρο. Θα προστεθεί στο μέλλον.

3. Επεκτασιμότητα υποκαταλόγων

ΣΕ επί του παρόντοςένας κατάλογος Ext3 δεν μπορεί να περιέχει περισσότερους από 32000 υποκαταλόγους. Το Ext4 καταργεί αυτόν τον περιορισμό και σας επιτρέπει να δημιουργήσετε έναν απεριόριστο αριθμό υποκαταλόγων.

4. Εκτάσεις

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

Στη συν προσωρινά αρχείαΣε άλλα συστήματα, χρησιμοποιείται μια διαφορετική προσέγγιση, που βασίζεται στις λεγόμενες εκτάσεις. Μια έκταση είναι βασικά μια συλλογή διαδοχικών φυσικών μπλοκ. Φαίνεται να μας λέει: "Αυτά τα δεδομένα βρίσκονται στα επόμενα n μπλοκ." Για παράδειγμα, ένα αρχείο 100 megabyte μπορεί να αποθηκευτεί σε μία μόνο έκταση αυτού του μεγέθους, αντί να χωριστεί σε μπλοκ 25.600 4 kilobyte που αντιμετωπίζονται με έμμεση αντιστοίχιση. Τα τεράστια αρχεία μπορούν να χωριστούν σε πολλαπλές εκτάσεις.

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

5. Κατανομή πολλαπλών μπλοκ

Εάν το Ext3 χρειάζεται να γράψει νέα δεδομένα στο δίσκο, ένας ειδικός μηχανισμός εκχώρησης μπλοκ καθορίζει ποια ελεύθερα μπλοκ θα χρησιμοποιηθούν για αυτό. Το πρόβλημα είναι ότι στο Ext3 αυτός ο μηχανισμός διανέμει μόνο ένα μπλοκ (4 kilobyte) κάθε φορά. Αυτό σημαίνει ότι αν χρειαστεί να γράψετε, ας πούμε, τα 100 megabyte δεδομένων που αναφέρθηκαν προηγουμένως, θα χρειαστεί να αποκτήσετε πρόσβαση στον μηχανισμό διανομής 25.600 φορές (μιλάμε για περίπου 100 megabyte!). Όχι μόνο είναι αναποτελεσματικό, αλλά δεν επιτρέπει επίσης τη βελτιστοποίηση της πολιτικής κατανομής, αφού ο αντίστοιχος μηχανισμός δεν έχει ιδέα για τον πραγματικό όγκο δεδομένων που πρέπει να γραφτεί, αλλά γνωρίζει μόνο για ένα μόνο μπλοκ.

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

6. Καθυστερημένη διανομή

Η Lazy allocation είναι μια τεχνική απόδοσης που δεν επηρεάζει τη μορφή δεδομένων και εισάγεται σε σύγχρονα συστήματα αρχείων όπως τα XFS, ZFS, btrfs και Reiser 4.

Η ουσία αυτής της μεθόδου είναι να καθυστερήσει την κατανομή των μπλοκ όσο το δυνατόν περισσότερο - σε αντίθεση με την προσέγγιση που ακολουθείται στα παραδοσιακά συστήματα αρχείων (όπως Ext3, reiser3 κ.λπ.): εκχωρήστε μπλοκ αμέσως, με την πρώτη ευκαιρία. Για παράδειγμα, εάν μια διεργασία γράφει καλώντας την write(), το σύστημα αρχείων θα εκχωρήσει μπλοκ για εγγραφή αμέσως - ακόμα κι αν τα δεδομένα δεν έχουν εγγραφεί ακόμη στο δίσκο, αλλά θα παραμείνουν στην κρυφή μνήμη για κάποιο χρονικό διάστημα. Τα μειονεκτήματα αυτής της προσέγγισης, για παράδειγμα, είναι ότι εάν μια διεργασία εγγράφεται συνεχώς σε ένα αναπτυσσόμενο αρχείο, οι διαδοχικές κλήσεις write() εκχωρούν συνεχώς μπλοκ δεδομένων χωρίς να γνωρίζουν εάν το αρχείο θα συνεχίσει να αναπτύσσεται.

Όταν χρησιμοποιείτε lazy κατανομή, τα μπλοκ δεν εκχωρούνται αμέσως όταν καλείται η write(). Αντίθετα, η κατανομή καθυστερεί έως ότου το αρχείο εγγραφεί από την προσωρινή μνήμη στο δίσκο. Χάρη σε αυτό, ο μηχανισμός είναι σε θέση να βελτιστοποιήσει τη διαδικασία διανομής. Το μεγαλύτερο όφελος προέρχεται από τη χρήση των δύο χαρακτηριστικών που αναφέρθηκαν προηγουμένως - επεκτάσεις και εκχώρηση πολλαπλών μπλοκ - δεδομένου ότι συμβαίνει συχνά το τελικό αρχείο να γράφεται στο δίσκο ως εκτάσεις που εκχωρούνται χρησιμοποιώντας το mballoc. Αυτό δίνει σημαντική ώθηση στην απόδοση και μερικές φορές μειώνει σημαντικά τον κατακερματισμό των δεδομένων.

7. Γρήγορο fsck

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

Στο Ext4, μετά τον πίνακα inode κάθε ομάδας, αποθηκεύεται μια λίστα με αχρησιμοποίητα inodes (εξοπλισμένα με άθροισμα ελέγχου για αξιοπιστία), επομένως το fsck δεν θα ελέγχει τέτοιους inodes. Το αποτέλεσμα είναι μια μείωση του χρόνου επαλήθευσης από 2 σε 20 φορές, ανάλογα με τον αριθμό των inodes που χρησιμοποιούνται (δείτε http://kerneltrap.org/Linux/Improving_fsck_Speeds_in_Ext4).

Το γεγονός ότι η λίστα των αχρησιμοποίητων inodes μεταγλωττίζεται από το fsck και όχι από το Ext4 θα είναι ξεκάθαρα ορατό εάν εκτελέσετε το fsck για να δημιουργήσετε μια λίστα με τα αχρησιμοποίητα inodes και την επόμενη φορά που θα εκτελέσετε το fsck θα είναι πιο γρήγορο (η εκτέλεση του fsck είναι ακόμα απαραίτητο κατά τη μετατροπή Ext3 σε Ext4).

Επιπλέον, ένα άλλο χαρακτηριστικό που επηρεάζει την επιτάχυνση του fsck είναι οι "ευέλικτες ομάδες μπλοκ" που επιταχύνουν επίσης άλλες λειτουργίες αρχείων.

8. Καταγραφή αθροισμάτων ελέγχου

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

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

9. Λειτουργία μη καταγραφής

Το journaling διασφαλίζει την ακεραιότητα του συστήματος αρχείων καταγράφοντας όλες τις αλλαγές που συμβαίνουν στο δίσκο. Αλλά εισάγει επίσης επιπλέον επιβάρυνση δίσκου. Σε ορισμένες ειδικές περιπτώσεις, η καταγραφή και τα οφέλη που παρέχει μπορεί να είναι περιττά. Το Ext4 σάς επιτρέπει να απενεργοποιήσετε την καταγραφή, γεγονός που οδηγεί σε μικρό κέρδος απόδοσης.

10. Διαδικτυακή ανασυγκρότηση

Αυτή η δυνατότητα βρίσκεται ακόμη σε εξέλιξη και θα συμπεριληφθεί σε μελλοντική έκδοση.

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

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

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

Υπάρχει επίσης ένα βοηθητικό πρόγραμμα που ονομάζεται e4defrag, το οποίο σας επιτρέπει να ανασυγκροτήσετε τόσο μεμονωμένα αρχεία όσο και ολόκληρο το σύστημα αρχείων.

11. Βελτιώσεις σχετικές με το Inode

Μεγαλύτερα inode, χρονικές σημάνσεις νανοδευτερόλεπτων, γρήγορα εκτεταμένα χαρακτηριστικά, κράτηση inode...
  • Μεγαλύτεροι inode: Το Ext3 υποστηρίζει inodes προσαρμοσμένου μεγέθους (καθορίζοντας την επιλογή mkfs -I), ωστόσο το προεπιλεγμένο μέγεθος inode είναι 128 byte. Στο Ext4 θα είναι 256 byte. Αυτό απαιτήθηκε για να φιλοξενήσει μερικά επιπλέον πεδία (όπως χρονικές σημάνσεις νανοδευτερόλεπτων και εκδόσεις inode) και ο υπόλοιπος χώρος στο inode θα χρησιμοποιηθεί για την αποθήκευση αυτών των εκτεταμένων χαρακτηριστικών που είναι αρκετά μικρά για να χωρέσουν εκεί. Αυτό θα κάνει την πρόσβαση σε τέτοια χαρακτηριστικά πολύ πιο γρήγορη και θα βελτιώσει την απόδοση των εφαρμογών που τα χρησιμοποιούν κατά 3-7 φορές.
  • Η ουσία της κράτησης inode είναι να εκχωρηθούν πολλά inode κατά τη δημιουργία ενός καταλόγου με την αναμονή ότι θα χρησιμοποιηθούν στο μέλλον. Αυτό βελτιώνει την απόδοση επειδή τα αρχεία που δημιουργήθηκαν πρόσφατα σε αυτόν τον κατάλογο θα μπορούν να χρησιμοποιούν τους δεσμευμένους inodes. Επομένως, η δημιουργία και η διαγραφή αρχείων είναι πιο αποτελεσματική.
  • Οι χρονικές σημάνσεις νανοδευτερόλεπτων σημαίνουν ότι τα πεδία inode, όπως ο χρόνος τροποποίησης, έχουν ακρίβεια νανοδευτερόλεπτου (στο Ext3 ήταν ίση με ένα δευτερόλεπτο).

12. Βιώσιμη αναδιανομή

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

Αυτό ακριβώς κάνουν οι εφαρμογές P2P, για παράδειγμα, εκχωρώντας χώρο για δεδομένα που δεν θα εμφανίζονται εκεί παρά μόνο ώρες ή μέρες αργότερα. Ωστόσο, αυτό υλοποιείται πολύ πιο αποτελεσματικά - σε επίπεδο συστήματος αρχείων και με ένα καθολικό API.

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

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

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

Αυτή η δυνατότητα είναι διαθέσιμη μέσω της διεπαφής libc posix_fallocate().

13. Ο μηχανισμός «φραγμού» είναι ενεργοποιημένος από προεπιλογή

Αυτή είναι μια επιλογή που διασφαλίζει την ακεραιότητα του συστήματος αρχείων με κόστος κάποιας απώλειας απόδοσης (μπορεί να απενεργοποιηθεί χρησιμοποιώντας το "mount -o barrier=0", συνιστάται να το κάνετε αυτό κατά τη μέτρηση της απόδοσης).

Απόσπασμα από το άρθρο του LWN: «Ο κώδικας του συστήματος αρχείων πρέπει να είναι απολύτως βέβαιος ότι όλες οι πληροφορίες συναλλαγών βρίσκονται στο αρχείο καταγραφής πριν δημιουργήσετε μια εγγραφή δέσμευσης [καταγραφής]. Η απλή εγγραφή με τη σωστή σειρά δεν αρκεί. Οι σύγχρονες μονάδες δίσκου διαθέτουν μεγάλες κρυφές μνήμες και αλλάζουν τη σειρά εγγραφής για βελτιστοποίηση της απόδοσης. Επομένως, το σύστημα αρχείων πρέπει να λέει ρητά στο δίσκο να γράψει όλα τα δεδομένα καταγραφής στα μέσα πριν δημιουργήσει μια εγγραφή δέσμευσης. Εάν δημιουργηθεί πρώτα μια εγγραφή δέσμευσης, το αρχείο καταγραφής μπορεί να είναι κατεστραμμένο. Το σύστημα αποκλεισμού I/O του πυρήνα παρέχει αυτή τη δυνατότητα μέσω της χρήσης ενός μηχανισμού φραγμού. Με απλά λόγια, το "φράγμα" απαγορεύει την εγγραφή οποιωνδήποτε μπλοκ που αποστέλλονται μετά από αυτό έως ότου μεταφερθεί στα μέσα ό,τι στάλθηκε πριν από το "φράγμα". Χρησιμοποιώντας πύλες, το σύστημα αρχείων μπορεί να διασφαλίσει ότι τα πάντα στο δίσκο είναι συνεπή ανά πάσα στιγμή."

Ετικέτες: Προσθήκη ετικετών

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

Δυστυχώς, δεν υπάρχει υποστήριξη για κατατμήσεις λειτουργικού συστήματος Linux στα Windows. Αλλά μάταια. Μου φαίνεται ότι αυτό θα μπορούσε να είναι μια ωραία χειρονομία από την πλευρά της Microsoft.

Η ουσία του προβλήματος είναι ότι τα Windows χρησιμοποιούν ένα αρχείο που βασίζεται Σύστημα NTFS, και το Linux έχει τον δικό του τρόπο οργάνωσης αρχείων, το εκτεταμένο σύστημα αρχείων, η τελευταία έκδοση του οποίου έχει σειριακό αριθμό 4.

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

Ext2 IFS

Το Ext2 IFS υποστηρίζει τις εκδόσεις Windows NT4.0/2000/XP/2003/Vista/2008 x86 και x64 και σας επιτρέπει να βλέπετε τα περιεχόμενα των κατατμήσεων Linux ext2 και μπορείτε επίσης να γράφετε σε αυτά. Το βοηθητικό πρόγραμμα εγκαθίσταται πρόγραμμα οδήγησης συστήματος ext2fs.sys, το οποίο επεκτείνει τις δυνατότητες των Windows και περιλαμβάνει πλήρη υποστήριξη για το ext2 σε αυτό: στα διαμερίσματα ext2 εκχωρούνται γράμματα μονάδας δίσκου και τα αρχεία και οι φάκελοι σε αυτά εμφανίζονται στα παράθυρα διαλόγου όλων των εφαρμογών, για παράδειγμα, στον Explorer.

Ext2 FSD

Ext2 FSD - δωρεάν πρόγραμμα οδήγησηςγια συστήματα Windows (2K/XP/VISTA/7 εκδόσεις x86 και x64). Όπως το προηγούμενο βοηθητικό πρόγραμμα, το οποίο είναι επίσης ένα πρόγραμμα οδήγησης στην ουσία του, περιλαμβάνει πλήρη υποστήριξη για το σύστημα αρχείων ext2 στα Windows.

Το LTOOLS είναι ένα σύνολο βοηθητικών προγραμμάτων γραμμής εντολών που σας επιτρέπει να διαβάζετε και να γράφετε δεδομένα προς/από κατατμήσεις Linux ext2, ext3 και ReiserFS (τυπικά συστήματα αρχείων Linux) από ένα μηχάνημα που εκτελεί DOS ή Windows.

Υπάρχει μια έκδοση του προγράμματος με γραφικό κέλυφος(γραμμένο σε Java) – LTOOLSgui, καθώς και μια έκδοση με γραφικό κέλυφος γραμμένο σε .

Ext2Read

Το επιδόρπιο είναι, όπως πάντα, το πιο νόστιμο.

Το Ext2Read είναι ένα βοηθητικό πρόγραμμα διαχείρισης αρχείων που σας επιτρέπει να προβάλλετε και να γράφετε σε κατατμήσεις ext2/ext3/ext4. Υποστηρίζει LVM2 και, αυτό που το διακρίνει από άλλα προγράμματα σε αυτήν την ανασκόπηση, το σύστημα αρχείων ext4. Ενσωματωμένη υποστήριξη για αναδρομική αντιγραφή καταλόγου.

Και εδώ είναι το δεύτερο γλυκό. Αρχικά, ειπώθηκε ότι μια καλή χειρονομία από την πλευρά της Microsoft θα ήταν να ενεργοποιήσει την υποστήριξη για κατατμήσεις Linux στα Windows από προεπιλογή.

Ωστόσο, η χειρονομία έγινε στην 20η επέτειο του Linux. Δες το και μονος σου.

Αυτό είναι όλο. Σας ευχαριστώ για την προσοχή σας. Θα πάω να παλέψω με τις κοκοροΐδες. Υπάρχουν τόσα πολλά από αυτά αυτή την άνοιξη. 🙂

Γιατί ένα smartphone δεν μπορεί να εκκινήσει προγράμματα από κάρτα μνήμης; Πώς διαφέρει ουσιαστικά το ext4 από το ext3; Γιατί μια μονάδα flash θα διαρκέσει περισσότερο εάν τη μορφοποιήσετε σε NTFS και όχι σε FAT; Ποιο είναι το κύριο πρόβλημα με το F2FS; Οι απαντήσεις βρίσκονται στα δομικά χαρακτηριστικά των συστημάτων αρχείων. Θα μιλήσουμε για αυτούς.

Εισαγωγή

Τα συστήματα αρχείων καθορίζουν τον τρόπο αποθήκευσης των δεδομένων. Καθορίζουν ποιους περιορισμούς θα συναντήσει ο χρήστης, πόσο γρήγορες θα είναι οι λειτουργίες ανάγνωσης και εγγραφής και πόσο καιρό θα λειτουργεί η μονάδα δίσκου χωρίς αστοχίες. Αυτό ισχύει ιδιαίτερα για τους προϋπολογισμούς SSD και τα μικρότερα αδέρφια τους - μονάδες flash. Γνωρίζοντας αυτές τις δυνατότητες, μπορείτε να αξιοποιήσετε στο έπακρο οποιοδήποτε σύστημα και να βελτιστοποιήσετε τη χρήση του για συγκεκριμένες εργασίες.

Πρέπει να επιλέγετε τον τύπο και τις παραμέτρους του συστήματος αρχείων κάθε φορά που χρειάζεται να κάνετε κάτι μη τετριμμένο. Για παράδειγμα, θέλετε να επιταχύνετε τις πιο συνηθισμένες λειτουργίες αρχείων. Σε επίπεδο συστήματος αρχείων αυτό μπορεί να επιτευχθεί διαφορετικοί τρόποι: η ευρετηρίαση θα παρέχει γρήγορη αναζήτηση, και η προκράτηση δωρεάν μπλοκ θα διευκολύνει την επανεγγραφή αρχείων που αλλάζουν συχνά. Η προ-βελτιστοποίηση των δεδομένων στη μνήμη RAM θα ​​μειώσει τον αριθμό των απαιτούμενων λειτουργιών εισόδου/εξόδου.

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

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

Μαύρο κουτί

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

Για τους οπαδούς των Windows, όλα είναι απλά: NTFS σε όλα τα διαμερίσματα δίσκου και FAT32 (ή το ίδιο NTFS) σε μονάδες flash. Αν υπάρχει NAS και χρησιμοποιεί κάποιο άλλο σύστημα αρχείων, τότε για τους περισσότερους παραμένει πέρα ​​από την αντίληψη. Απλώς συνδέονται σε αυτό μέσω του δικτύου και κατεβάζουν αρχεία, σαν από ένα μαύρο κουτί.

Σε κινητά gadget με Android ext4 βρίσκεται πιο συχνά σε εσωτερική μνήμηκαι FAT32 σε κάρτες microSD. Η Yabloko δεν ενδιαφέρεται καθόλου τι είδους σύστημα αρχείων έχουν: HFS+, HFSX, APFS, WTFS... για αυτούς υπάρχουν μόνο όμορφα εικονίδια φακέλων και αρχείων που σχεδιάστηκαν από τους καλύτερους σχεδιαστές. Οι χρήστες Linux έχουν την πιο πλούσια επιλογή, αλλά μπορείτε να προσθέσετε υποστήριξη για μη εγγενή συστήματα αρχείων τόσο στα Windows όσο και στα macOS - περισσότερα για αυτό αργότερα.

Κοινές ρίζες

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

Όπως κάθε ιεραρχικό σύστημα, ένα δέντρο B ξεκινά με την εγγραφή ρίζας και στη συνέχεια διακλαδίζεται μέχρι πεπερασμένα στοιχεία- μεμονωμένες εγγραφές σχετικά με τα αρχεία και τις ιδιότητες τους, ή «φεύγει». Ο κύριος λόγος για τη δημιουργία μιας τέτοιας λογικής δομής ήταν η επιτάχυνση της αναζήτησης αντικειμένων του συστήματος αρχείων σε μεγάλες δυναμικές συστοιχίες - όπως σκληροί δίσκοι πολλών terabyte ή ακόμα μεγαλύτερες συστοιχίες RAID.

Τα B-trees απαιτούν πολύ λιγότερες προσβάσεις στο δίσκο από άλλους τύπους ισορροπημένων δέντρων για να εκτελέσουν τις ίδιες λειτουργίες. Αυτό επιτυγχάνεται λόγω του γεγονότος ότι τα τελικά αντικείμενα στα Β-δέντρα βρίσκονται ιεραρχικά στο ίδιο ύψος και η ταχύτητα όλων των λειτουργιών είναι ακριβώς ανάλογη με το ύψος του δέντρου.

Όπως και άλλα ισορροπημένα δέντρα, τα Β-δέντρα έχουν ίδιο μήκοςμονοπάτια από τη ρίζα σε οποιοδήποτε φύλλο. Αντί να μεγαλώνουν προς τα πάνω, διακλαδίζονται περισσότερο και μεγαλώνουν: όλα τα σημεία διακλάδωσης σε ένα δέντρο B αποθηκεύουν πολλές αναφορές σε θυγατρικά αντικείμενα, γεγονός που καθιστά εύκολη την εύρεση τους σε λιγότερες κλήσεις. Ένας μεγάλος αριθμός δεικτών μειώνει τον αριθμό των πιο χρονοβόρων λειτουργιών δίσκου - τοποθέτηση κεφαλής κατά την ανάγνωση αυθαίρετων μπλοκ.

Η έννοια των Β-δέντρων διατυπώθηκε στη δεκαετία του εβδομήντα και έκτοτε έχει υποστεί διάφορες βελτιώσεις. Με τη μια ή την άλλη μορφή υλοποιείται σε NTFS, BFS, XFS, JFS, ReiserFS και πολλά DBMS. Είναι όλοι συγγενείς από άποψη βασικές αρχέςοργάνωση δεδομένων. Οι διαφορές αφορούν λεπτομέρειες, συχνά αρκετά σημαντικές. Τα σχετικά συστήματα αρχείων έχουν επίσης ένα κοινό μειονέκτημα: όλα δημιουργήθηκαν για να λειτουργούν ειδικά με δίσκους ακόμη και πριν από την εμφάνιση των SSD.

Η μνήμη flash ως η μηχανή προόδου

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

Αυτός ο περιορισμός οφείλεται στο γεγονός ότι στη μνήμη NAND όλα τα κελιά συνδυάζονται σε μπλοκ, καθένα από τα οποία έχει μόνο μία κοινή σύνδεση με τον δίαυλο ελέγχου. Δεν θα μπούμε σε λεπτομέρειες για την οργάνωση της σελίδας και δεν θα περιγράψουμε την πλήρη ιεραρχία. Η ίδια η αρχή των ομαδικών λειτουργιών με κελιά και το γεγονός ότι τα μεγέθη των μπλοκ μνήμης flash είναι συνήθως μεγαλύτερα από τα μπλοκ που απευθύνονται σε οποιοδήποτε σύστημα αρχείων είναι σημαντικά. Επομένως, όλες οι διευθύνσεις και οι εντολές για μονάδες με NAND flash πρέπει να μεταφραστούν μέσω του επιπέδου αφαίρεσης FTL (Flash Translation Layer).

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

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

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

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

Οι μονάδες με κελιά SLC ενός επιπέδου είχαν δηλωμένο πόρο 100 χιλιάδων κύκλων επανεγγραφής και ακόμη περισσότερους. Πολλά από αυτά εξακολουθούν να λειτουργούν σε παλιές μονάδες flash και κάρτες CF. Στο MLC εταιρική τάξηΟ πόρος (eMLC) δηλώθηκε στην περιοχή από 10 έως 20 χιλιάδες, ενώ για ένα κανονικό MLC σε επίπεδο καταναλωτή υπολογίζεται σε 3-5 χιλιάδες. Η μνήμη αυτού του τύπου συμπιέζεται ενεργά από ακόμη φθηνότερο TLC, του οποίου ο πόρος μόλις φτάνει τους χίλιους κύκλους. Η διατήρηση της διάρκειας ζωής της μνήμης flash σε αποδεκτό επίπεδο απαιτεί κόλπα λογισμικού και τα νέα συστήματα αρχείων γίνονται ένα από αυτά.

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

Σε εταιρικούς SSD, ο ενσωματωμένος ελεγκτής είναι μικρό υπολογιστή. Διαθέτει τεράστιο buffer μνήμης (μισό gigabyte ή περισσότερο) και υποστηρίζει πολλές τεχνικές απόδοσης δεδομένων για την αποφυγή περιττών κύκλων επανεγγραφής. Το τσιπ οργανώνει όλα τα μπλοκ στην κρυφή μνήμη, εκτελεί νωχελικές εγγραφές, εκτελεί on-the-fly deduplication, κρατά μερικά μπλοκ και διαγράφει άλλα στο παρασκήνιο. Όλη αυτή η μαγεία συμβαίνει εντελώς απαρατήρητη από το λειτουργικό σύστημα, τα προγράμματα και τον χρήστη. Με ένα SSD όπως αυτό, πραγματικά δεν έχει σημασία ποιο σύστημα αρχείων χρησιμοποιείται. Εσωτερικές βελτιστοποιήσειςέχουν πολύ μεγαλύτερο αντίκτυπο στην παραγωγικότητα και τους πόρους από τους εξωτερικούς.

Οι οικονομικοί SSD (και ακόμη περισσότερο οι μονάδες flash) είναι εξοπλισμένοι με πολύ λιγότερους έξυπνους ελεγκτές. Η προσωρινή μνήμη σε αυτά είναι περιορισμένη ή απουσιάζει και οι προηγμένες τεχνολογίες διακομιστή δεν χρησιμοποιούνται καθόλου. Οι ελεγκτές στις κάρτες μνήμης είναι τόσο πρωτόγονοι που συχνά υποστηρίζεται ότι δεν υπάρχουν καθόλου. Επομένως, για φθηνές συσκευές με μνήμη flash, οι εξωτερικές μέθοδοι εξισορρόπησης φορτίου παραμένουν σχετικές - κυρίως χρησιμοποιώντας εξειδικευμένα συστήματα αρχείων.

Από JFFS σε F2FS

Μία από τις πρώτες προσπάθειες για τη συγγραφή ενός συστήματος αρχείων που θα λάμβανε υπόψη τις αρχές της οργάνωσης της μνήμης flash ήταν το JFFS - Journaling Flash File System. Αρχικά, αυτή η εξέλιξη από τη σουηδική εταιρεία Axis Communications είχε ως στόχο την αύξηση της απόδοσης μνήμης των συσκευών δικτύου που παρήγαγε η Axis τη δεκαετία του '90. Η πρώτη έκδοση του JFFS υποστήριζε μόνο τη μνήμη NOR, αλλά ήδη στη δεύτερη έκδοση έγινε φίλος με το NAND.

Επί του παρόντος, το JFFS2 έχει περιορισμένη χρήση. Εξακολουθεί να χρησιμοποιείται κυρίως σε διανομές Linux για ενσωματωμένα συστήματα. Μπορεί να βρεθεί σε δρομολογητές, κάμερες IP, NAS και άλλους τακτικούς χρήστες του Internet of Things. Γενικά, όπου απαιτείται μικρή ποσότητα αξιόπιστης μνήμης.

Μια περαιτέρω προσπάθεια ανάπτυξης του JFFS2 ήταν το LogFS, το οποίο αποθήκευε inodes σε ένα ξεχωριστό αρχείο. Οι συντάκτες αυτής της ιδέας είναι ο Jorn Engel, υπάλληλος του γερμανικού τμήματος της IBM, και ο Robert Mertens, δάσκαλος στο Πανεπιστήμιο του Osnabrück. ΠηγήΤο LogFS είναι διαθέσιμο στο GitHub. Κρίνοντας από το γεγονός ότι η τελευταία αλλαγή έγινε πριν από τέσσερα χρόνια, το LogFS δεν έχει κερδίσει δημοτικότητα.

Αλλά αυτές οι προσπάθειες ώθησαν την εμφάνιση ενός άλλου εξειδικευμένου συστήματος αρχείων - F2FS. Αναπτύχθηκε από την Samsung Corporation, η οποία αντιπροσωπεύει σημαντικό μέρος της μνήμης flash που παράγεται στον κόσμο. Η Samsung φτιάχνει τσιπ NAND FlashΓια δικές τους συσκευέςκαι ανατέθηκε από άλλες εταιρείες, και επίσης αναπτύσσουν SSD με ριζικά νέες διεπαφές αντί για παλαιούς δίσκους. Η δημιουργία ενός εξειδικευμένου συστήματος αρχείων βελτιστοποιημένου για μνήμη flash ήταν μια αναγκαιότητα που είχε καθυστερήσει εδώ και πολύ καιρό από την άποψη της Samsung.

Πριν από τέσσερα χρόνια, το 2012, η ​​Samsung δημιούργησε το F2FS (Flash Friendly File System). Η ιδέα της ήταν καλή, αλλά η υλοποίηση αποδείχθηκε ωμή. Το βασικό καθήκον κατά τη δημιουργία του F2FS ήταν απλό: να μειωθεί ο αριθμός των λειτουργιών επανεγγραφής κελιών και να κατανεμηθεί το φορτίο σε αυτά όσο το δυνατόν πιο ομοιόμορφα. Αυτό απαιτεί την εκτέλεση λειτουργιών σε πολλαπλά κελιά εντός του ίδιου μπλοκ την ίδια στιγμή, αντί να τα εξαναγκάζουν ένα κάθε φορά. Αυτό σημαίνει ότι αυτό που χρειάζεται δεν είναι η άμεση επανεγγραφή των υπαρχόντων μπλοκ με το πρώτο αίτημα του λειτουργικού συστήματος, αλλά η προσωρινή αποθήκευση εντολών και δεδομένων, η προσθήκη νέων μπλοκ στον ελεύθερο χώρο και η καθυστερημένη διαγραφή κελιών.

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

Extents και bitmaps

Προς το παρόν, το F2FS θεωρείται εξωτικό για τους geeks. Ακόμη και σε δικά τους smartphonesΗ Samsung χρησιμοποιεί ακόμα το ext4. Πολλοί τη θεωρούν περαιτέρω ανάπτυξη ext3, αλλά αυτό δεν είναι απολύτως αληθές. Είναι περίπουπερισσότερο για την επανάσταση παρά για το σπάσιμο του φραγμού των 2 TB ανά αρχείο και απλή μεγέθυνσηάλλους ποσοτικούς δείκτες.

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

Οι επεκτάσεις μπορούν να θεωρηθούν ως επεκτάσεις των inodes ως διακριτά σύνολα μπλοκ που αντιμετωπίζονται εξ ολοκλήρου ως συνεχόμενες ακολουθίες. Μια έκταση μπορεί να περιέχει ένα ολόκληρο αρχείο μεσαίου μεγέθους, αλλά για μεγάλα αρχεία αρκεί να εκχωρήσετε μια ντουζίνα ή δύο εκτάσεις. Αυτό είναι πολύ πιο αποτελεσματικό από την αντιμετώπιση εκατοντάδων χιλιάδων μικρών μπλοκ τεσσάρων kilobyte.

Ο ίδιος ο μηχανισμός εγγραφής έχει αλλάξει επίσης στο ext4. Τώρα τα μπλοκ διανέμονται αμέσως σε ένα αίτημα. Και όχι εκ των προτέρων, αλλά αμέσως πριν γράψετε δεδομένα στο δίσκο. Η Lazy multi-block allocation σάς επιτρέπει να απαλλαγείτε από περιττές λειτουργίες για τις οποίες έφταιγε το ext3: σε αυτό, τα μπλοκ για ένα νέο αρχείο κατανεμήθηκαν αμέσως, ακόμα κι αν χωρούσε πλήρως στη μνήμη cache και σχεδιαζόταν να διαγραφεί ως προσωρινό.


Δίαιτα περιορισμένης περιεκτικότητας σε λιπαρά

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

Μυστήριο

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

Σωστά, αυτή είναι μια ιστορία για το σύστημα αρχείων FAT. Οι απαιτήσεις συμβατότητας της παρείχαν κακή κληρονομικότητα. Στις δισκέτες ήταν 12-bit, ενεργοποιημένο σκληροι ΔΙΣΚΟΙ- στην αρχή ήταν 16-bit, αλλά έφτασε στις μέρες μας ως 32-bit. Σε κάθε επόμενη έκδοση, ο αριθμός των διευθυνσιοδοτούμενων μπλοκ αυξανόταν, αλλά τίποτα δεν άλλαξε στην ουσία του.

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

Γιατί χρειάζεται το FAT32 αυτές τις μέρες; Όλα εξακολουθούν να είναι αποκλειστικά για τη διασφάλιση της συμβατότητας. Οι κατασκευαστές πιστεύουν δικαίως ότι ένα διαμέρισμα FAT32 μπορεί να διαβαστεί από οποιοδήποτε λειτουργικό σύστημα. Γι' αυτό το δημιουργούν επάνω εξωτερικό σκληρόδίσκοι, USB Flashκαι κάρτες μνήμης.

Πώς να ελευθερώσετε τη μνήμη flash του smartphone σας

Οι κάρτες microSD (HC) που χρησιμοποιούνται σε smartphone διαμορφώνονται σε FAT32 από προεπιλογή. Αυτό είναι το κύριο εμπόδιο για την εγκατάσταση εφαρμογών σε αυτές και τη μεταφορά δεδομένων από την εσωτερική μνήμη. Για να το ξεπεράσετε, πρέπει να δημιουργήσετε ένα διαμέρισμα στην κάρτα με ext3 ή ext4. Όλα τα χαρακτηριστικά του αρχείου (συμπεριλαμβανομένων των δικαιωμάτων κατόχου και πρόσβασης) μπορούν να μεταφερθούν σε αυτό, ώστε οποιαδήποτε εφαρμογή να μπορεί να λειτουργεί σαν να είχε εκκινηθεί από εσωτερική μνήμη.

Τα Windows δεν γνωρίζουν πώς να δημιουργήσουν περισσότερα από ένα διαμερίσματα σε μονάδες flash, αλλά για αυτό μπορείτε να εκτελέσετε Linux (τουλάχιστον σε εικονική μηχανή) ή ένα προηγμένο βοηθητικό πρόγραμμα για εργασία με λογική κατάτμηση - για παράδειγμα, MiniTool Partition Wizard Free. Έχοντας ανακαλύψει ένα επιπλέον πρωτεύον διαμέρισμα με ext3/ext4 στην κάρτα, η εφαρμογή Link2SD και παρόμοια θα προσφέρουν πολλές περισσότερες επιλογές από ό,τι στην περίπτωση ενός μεμονωμένου διαμερίσματος FAT32.


Ένα άλλο επιχείρημα υπέρ της επιλογής του FAT32 αναφέρεται συχνά ως η έλλειψη ημερολογίου, που σημαίνει ταχύτερες λειτουργίες εγγραφής και λιγότερη φθορά κυψέλης Μνήμη NANDΛάμψη. Στην πράξη, η χρήση του FAT32 οδηγεί στο αντίθετο και δημιουργεί πολλά άλλα προβλήματα.

Οι μονάδες flash και οι κάρτες μνήμης πεθαίνουν γρήγορα λόγω του γεγονότος ότι οποιαδήποτε αλλαγή στο FAT32 προκαλεί αντικατάσταση των ίδιων τομέων όπου βρίσκονται δύο αλυσίδες πινάκων αρχείων. Αποθήκευσα ολόκληρη την ιστοσελίδα και αντικαταστάθηκε εκατό φορές - με κάθε προσθήκη ενός άλλου μικρού GIF στη μονάδα flash. Έχετε κυκλοφορήσει φορητό λογισμικό; Δημιουργεί προσωρινά αρχεία και τα αλλάζει συνεχώς κατά την εκτέλεση. Επομένως είναι πολύ καλύτερο να το χρησιμοποιήσετε Μονάδες flash NTFSμε τον ανεκτικό σε σφάλματα πίνακα $MFT. Τα μικρά αρχεία μπορούν να αποθηκευτούν απευθείας στον κύριο πίνακα αρχείων και οι επεκτάσεις και τα αντίγραφά του εγγράφονται σε διαφορετικές περιοχές της μνήμης flash. Επιπλέον, η δημιουργία ευρετηρίου NTFS κάνει την αναζήτηση πιο γρήγορη.

ΠΛΗΡΟΦΟΡΙΕΣ

Για το FAT32 και το NTFS, δεν καθορίζονται θεωρητικοί περιορισμοί στο επίπεδο ένθεσης, αλλά στην πράξη είναι οι ίδιοι: μόνο 7707 υποκατάλογοι μπορούν να δημιουργηθούν σε έναν κατάλογο πρώτου επιπέδου. Όσοι τους αρέσει να παίζουν κούκλες matryoshka θα το εκτιμήσουν.

Ένα άλλο πρόβλημα που αντιμετωπίζουν οι περισσότεροι χρήστες είναι ότι είναι αδύνατο να γράψετε ένα αρχείο μεγαλύτερο από 4 GB σε ένα διαμέρισμα FAT32. Ο λόγος είναι ότι στο FAT32 το μέγεθος του αρχείου περιγράφεται με 32 bit στον πίνακα εκχώρησης αρχείων και 2^32 (μείον ένα, για την ακρίβεια) είναι ακριβώς τέσσερα gig. Αποδεικνύεται ότι ούτε μια ταινία σε κανονική ποιότητα ούτε μια εικόνα DVD μπορούν να εγγραφούν σε μια πρόσφατα αγορασμένη μονάδα flash.

Η αντιγραφή μεγάλων αρχείων δεν είναι τόσο κακό: όταν προσπαθείτε να το κάνετε αυτό, το σφάλμα είναι τουλάχιστον αμέσως ορατό. Σε άλλες περιπτώσεις, το FAT32 λειτουργεί ως ωρολογιακή βόμβα. Για παράδειγμα, αντιγράψατε φορητό λογισμικό σε μια μονάδα flash και στην αρχή το χρησιμοποιείτε χωρίς προβλήματα. Μετά από πολύ καιρό, ένα από τα προγράμματα (για παράδειγμα, λογιστική ή email), η βάση δεδομένων φουσκώνει και... απλά σταματά να ενημερώνεται. Δεν είναι δυνατή η αντικατάσταση του αρχείου επειδή έχει φτάσει το όριο των 4 GB.

Ένα λιγότερο προφανές πρόβλημα είναι ότι στο FAT32 η ημερομηνία δημιουργίας ενός αρχείου ή καταλόγου μπορεί να καθοριστεί εντός δύο δευτερολέπτων. Αυτό δεν είναι αρκετό για πολλές κρυπτογραφικές εφαρμογές που χρησιμοποιούν χρονικές σημάνσεις. Η χαμηλή ακρίβεια του χαρακτηριστικού ημερομηνίας είναι ένας άλλος λόγος για τον οποίο το FAT32 δεν θεωρείται έγκυρο σύστημα αρχείων από την άποψη της ασφάλειας. Ωστόσο, οι αδυναμίες του μπορούν να χρησιμοποιηθούν και για δικούς σας σκοπούς. Για παράδειγμα, εάν αντιγράψετε οποιαδήποτε αρχεία από ένα διαμέρισμα NTFS σε έναν τόμο FAT32, θα διαγραφούν από όλα τα μεταδεδομένα, καθώς και από τα κληρονομικά και ειδικά καθορισμένα δικαιώματα. Το FAT απλά δεν τα υποστηρίζει.

exFAT

Σε αντίθεση με το FAT12/16/32, το exFAT αναπτύχθηκε ειδικά για USB Flash και μεγάλες (≥ 32 GB) κάρτες μνήμης. Το εκτεταμένο FAT εξαλείφει το προαναφερθέν μειονέκτημα του FAT32 - αντικαθιστά τους ίδιους τομείς με οποιαδήποτε αλλαγή. Ως σύστημα 64-bit, δεν έχει πρακτικά σημαντικά όρια στο μέγεθος ενός μεμονωμένου αρχείου. Θεωρητικά, μπορεί να έχει μήκος 2^64 byte (16 EB) και κάρτες αυτού του μεγέθους δεν θα εμφανιστούν σύντομα.

Μια άλλη θεμελιώδης διαφορά μεταξύ του exFAT είναι η υποστήριξή του για λίστες ελέγχου πρόσβασης (ACL). Αυτό δεν είναι πλέον το ίδιο απλό από τη δεκαετία του '90, αλλά η κλειστή φύση της μορφής εμποδίζει την εφαρμογή του exFAT. Η υποστήριξη ExFAT εφαρμόζεται πλήρως και νόμιμα μόνο σε Windows (ξεκινώντας από το XP SP2) και OS X (ξεκινώντας από την 10.6.5). Σε Linux και *BSD υποστηρίζεται είτε με περιορισμούς είτε όχι αρκετά νόμιμα. Η Microsoft απαιτεί άδεια χρήσης για τη χρήση του exFAT και υπάρχει μεγάλη νομική διαμάχη σε αυτόν τον τομέα.

Btrfs

Ένας άλλος εξέχων εκπρόσωπος των συστημάτων αρχείων που βασίζονται σε Β-δέντρα ονομάζεται Btrfs. Αυτό το FS εμφανίστηκε το 2007 και αρχικά δημιουργήθηκε στην Oracle με σκοπό να εργαστεί με SSD και RAID. Για παράδειγμα, μπορεί να κλιμακωθεί δυναμικά: δημιουργία νέων inodes απευθείας στο τρέχον σύστημα ή διαίρεση ενός τόμου σε υποτόμους χωρίς να τους εκχωρηθεί ελεύθερος χώρος.

Ο μηχανισμός αντιγραφής σε εγγραφή που εφαρμόζεται στο Btrfs και η πλήρης ενσωμάτωση με τη μονάδα πυρήνα χαρτογράφησης συσκευής σάς επιτρέπουν να τραβάτε σχεδόν στιγμιαία στιγμιότυπα μέσω εικονικών συσκευών μπλοκ. Η προσυμπίεση (zlib ή lzo) και η αφαίρεση διπλότυπων επιταχύνουν τις βασικές λειτουργίες ενώ παράλληλα παρατείνουν τη διάρκεια ζωής της μνήμης flash. Αυτό είναι ιδιαίτερα αισθητό όταν εργάζεστε με βάσεις δεδομένων (επιτυγχάνεται συμπίεση 2-4 φορές) και μικρά αρχεία (είναι γραμμένα σε τακτοποιημένα μεγάλα μπλοκ και μπορούν να αποθηκευτούν απευθείας σε "φύλλα").

Το Btrfs υποστηρίζει επίσης λειτουργία πλήρους καταγραφής (δεδομένα και μεταδεδομένα), έλεγχο έντασης ήχου χωρίς αποπροσάρτηση και πολλές άλλες σύγχρονες λειτουργίες. Ο κώδικας Btrfs δημοσιεύεται με την άδεια GPL. Αυτό το σύστημα αρχείων υποστηρίζεται ως σταθερό στο Linux από την έκδοση του πυρήνα 4.3.1.

Ημερολόγια

Σχεδόν όλα τα περισσότερο ή λιγότερο σύγχρονα συστήματα αρχείων (ext3/ext4, NTFS, HFSX, Btrfs και άλλα) ανήκουν στη γενική ομάδα των ημερολογιακών, καθώς διατηρούν αρχεία με τις αλλαγές που έγιναν σε ξεχωριστό αρχείο καταγραφής (ημερολόγιο) και ελέγχονται σε σχέση με αυτό σε την περίπτωση αστοχίας κατά τη λειτουργία του δίσκου. Ωστόσο, η ευαισθησία καταγραφής και η ανοχή σφαλμάτων αυτών των συστημάτων αρχείων διαφέρουν.

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

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

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

Η προσέγγιση που εφαρμόζεται στο NTFS είναι κατά κάποιο τρόπο ακόμη καλύτερη από την προεπιλεγμένη στο ext3. Το NTFS επιπλέον δημιουργεί περιοδικά σημεία ελέγχου για να διασφαλίσει ότι έχουν ολοκληρωθεί όλες οι προηγουμένως αναβληθείσες λειτουργίες δίσκου. Τα σημεία ελέγχου δεν έχουν καμία σχέση με τα σημεία ανάκτησης στο \System Volume Information\ . Αυτές είναι απλώς καταχωρήσεις στο αρχείο καταγραφής υπηρεσιών.

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

Σύνδεση αρχείων τρίτων στα Windows

Η χρήση συστημάτων αρχείων περιορίζεται από την υποστήριξή τους σε επίπεδο λειτουργικού συστήματος. Για παράδειγμα, τα Windows δεν κατανοούν ext2/3/4 και HFS+, αλλά μερικές φορές είναι απαραίτητο να τα χρησιμοποιήσετε. Αυτό μπορεί να γίνει με την προσθήκη του κατάλληλου προγράμματος οδήγησης.

ΠΡΟΕΙΔΟΠΟΙΗΣΗ

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

Ένα ανοιχτό πρόγραμμα οδήγησης για ανάγνωση και εγγραφή κατατμήσεων ext2/3 με μερική υποστήριξη για ext4. Η τελευταία έκδοση υποστηρίζει εκτάσεις και κατατμήσεις έως 16 TB. Το LVM, τα ACL και τα εκτεταμένα χαρακτηριστικά δεν υποστηρίζονται.


Υπάρχει ένα δωρεάν πρόσθετο για το Total Commander. Υποστηρίζει την ανάγνωση κατατμήσεων ext2/3/4.


Το coLinux είναι μια ανοιχτή και δωρεάν θύρα Πυρήνες Linux. Μαζί με ένα πρόγραμμα οδήγησης 32-bit, σας επιτρέπει να εκτελείτε Linux σε Windows από το 2000 έως το 7 χωρίς τη χρήση τεχνολογιών εικονικοποίησης. Υποστηρίζει μόνο εκδόσεις 32 bit. Η ανάπτυξη μιας τροποποίησης 64-bit ακυρώθηκε. Το coLinux επιτρέπει, μεταξύ άλλων, την οργάνωση από Πρόσβαση στα Windowsσε κατατμήσεις ext2/3/4. Η υποστήριξη του έργου ανεστάλη το 2014.

Τα Windows 10 μπορεί να έχουν ήδη ενσωματωμένη υποστήριξη για συστήματα αρχείων ειδικά για Linux, απλώς είναι κρυφά. Αυτές οι σκέψεις προτείνονται από το πρόγραμμα οδήγησης σε επίπεδο πυρήνα Lxcore.sys και την υπηρεσία LxssManager, η οποία φορτώνεται ως βιβλιοθήκη από τη διαδικασία Svchost.exe. Για περισσότερες πληροφορίες σχετικά με αυτό, δείτε την αναφορά του Alex Ionescu «The Linux Kernel Hidden Inside Windows 10», την οποία έδωσε στο Black Hat 2016.


Το ExtFS για Windows είναι ένα πρόγραμμα οδήγησης επί πληρωμή που παράγεται από την Paragon. Λειτουργεί σε Windows 7 έως 10 και υποστηρίζει πρόσβαση ανάγνωσης/εγγραφής σε τόμους ext2/3/4. Παρέχει σχεδόν πλήρη υποστήριξη για το ext4 στα Windows.

Το HFS+ για Windows 10 είναι ένα άλλο ιδιόκτητο πρόγραμμα οδήγησης που παράγεται από την Paragon Software. Παρά το όνομα, λειτουργεί σε όλες τις εκδόσεις των Windows ξεκινώντας από τα XP. Παρέχει πλήρης πρόσβασησε συστήματα αρχείων HFS+/HFSX σε δίσκους με οποιαδήποτε διάταξη (MBR/GPT).

Το WinBtrfs είναι μια πρώιμη ανάπτυξη του προγράμματος οδήγησης Btrfs για Windows. Ήδη στην έκδοση 0.6 υποστηρίζει πρόσβαση ανάγνωσης και εγγραφής σε τόμους Btrfs. Μπορεί να χειριστεί σκληρούς και συμβολικούς συνδέσμους, υποστηρίζει εναλλακτικές ροές δεδομένων, ACL, δύο τύπους συμπίεσης και ασύγχρονη λειτουργία ανάγνωσης/εγγραφής. Ενώ το WinBtrfs δεν γνωρίζει πώς να χρησιμοποιεί τα mkfs.btrfs, btrfs-balance και άλλα βοηθητικά προγράμματα για τη διατήρηση αυτού του συστήματος αρχείων.

Δυνατότητες και περιορισμοί συστημάτων αρχείων: συνοπτικός πίνακας

Σύστημα αρχείων Μέγιστο μέγεθος όγκου Περιορίστε το μέγεθος ενός αρχείου Μήκος του κατάλληλου ονόματος αρχείου Μήκος του πλήρους ονόματος αρχείου (συμπεριλαμβανομένης της διαδρομής από τη ρίζα) Περιορίστε τον αριθμό αρχείων ή/και καταλόγων Ακρίβεια ένδειξης ημερομηνίας αρχείου/καταλόγου Δικαιώματα dos-tu-pa Σκληροί σύνδεσμοι Συμβολικοί σύνδεσμοι Στιγμιότυπα Συμπίεση δεδομένων στο παρασκήνιο Κρυπτογράφηση δεδομένων στο παρασκήνιο Παππού-πλε-κα-τιον των δεδομένων
FAT16 2 GB σε τομείς 512 byte ή 4 GB σε συμπλέγματα 64 KB 2 GB 255 byte με LFN
FAT32 8 τομείς TB των 2 KB έκαστος 4 GB (2^32 - 1 byte) 255 byte με LFN έως 32 υποκαταλόγους με CDS 65460 10 ms (δημιουργία) / 2 s (τροποποίηση) Οχι Οχι Οχι Οχι Οχι Οχι Οχι
exFAT ≈ 128 PB (2^32-1 συμπλέγματα 2^25-1 bytes) θεωρητικά / 512 TB λόγω περιορισμών τρίτων 16 EB (2^64 - 1 byte) 2796202 στον κατάλογο 10 ms ACL Οχι Οχι Οχι Οχι Οχι Οχι
NTFS 256 TB σε συμπλέγματα 64 KB ή 16 TB σε συμπλέγματα 4 KB 16 TB (Win 7) / 256 TB (Win 8) 255 Χαρακτήρες Unicode(UTF-16) 32.760 χαρακτήρες Unicode, έως και 255 χαρακτήρες ανά στοιχείο 2^32-1 100 ns ACL Ναί Ναί Ναί Ναί Ναί Ναί
HFS+ 8 EB (2^63 byte) 8 EB 255 χαρακτήρες Unicode (UTF-16) δεν περιορίζεται χωριστά 2^32-1 1 s Unix, ACL Ναί Ναί Οχι Ναί Ναί Οχι
APFS 8 EB (2^63 byte) 8 EB 255 χαρακτήρες Unicode (UTF-16) δεν περιορίζεται χωριστά 2^63 1 ns Unix, ACL Ναί Ναί Ναί Ναί Ναί Ναί
Ext3 32 TB (θεωρητικά) / 16 TB σε συμπλέγματα 4 KB (λόγω περιορισμών των προγραμμάτων e2fs) 2 TB (θεωρητικά) / 16 GB για παλαιότερα προγράμματα 255 χαρακτήρες Unicode (UTF-16) δεν περιορίζεται χωριστά 1 s Unix, ACL Ναί Ναί Οχι Οχι Οχι Οχι
Ext4 1 EB (θεωρητικά) / 16 TB σε συμπλέγματα 4 KB (λόγω περιορισμών των προγραμμάτων e2fs) 16 TB 255 χαρακτήρες Unicode (UTF-16) δεν περιορίζεται χωριστά 4 δις 1 ns POSIX Ναί Ναί Οχι Οχι Ναί Οχι
F2FS 16 TB 3,94 TB 255 byte δεν περιορίζεται χωριστά 1 ns POSIX, ACL Ναί Ναί Οχι Οχι Ναί Οχι
BTRFS 16 EB (2^64 - 1 byte) 16 ΕΒ 255 χαρακτήρες ASCII 2^17 byte 1 ns POSIX, ACL Ναί Ναί Ναί Ναί Ναί Ναί


Συνιστούμε να διαβάσετε

Μπλουζα