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

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

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

lsblk -f

Το σύστημα αρχείων το καθορίζουμε όταν κάνουμε φορμάτ έναν δίσκο.

Πρακτικά είναι τρία κυρίως συστήματα που κανείς πρέπει να έχει υπόψιν του.

  • FAT
  • ext4
  • NTFS

FAT

Το FAT (vfat) είναι το σύστημα αρχείων τής DOS και τών πολύ παλιών windows (πχ windows 95,98).

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

Έχει όμως σημασία ακόμα και σήμερα γιατί

  • Πρακτικά όλα τα στικάκια αλλά και πολλοί δίσκοι έρχονται σε FAT, οπότε είναι χρήσιμο να έχει υπόψιν κανείς αυτούς τούς περιορισμούς καθώς και την ιδέα ότι μπορεί να κάνει φορμάτ σε άλλο για να μην έχει τούς περιορισμούς
  • Έχει ευρύτατη υποστήριξη από λειτουργικά συστήματα.
  • Ο «πρωτογονισμός» σημαίνει ότι κάνει λιγότερα πράγματα και αυτό είναι μερικές φορές καλό. Πολύ παλιά στικάκια και ακόμα πιο αρχαίοι δίσκοι είναι καλύτερα να μείνουν σε FAT.
  • Έχει αποκτήσει έναν νέο ρόλο στο μπουτάρισμα γιατί αναγνωρίζεται από το UEFI.

Το συναντάμε σε τρεις εκδόσεις.

  • FAT12 που είχαν οι αρχαίες δισκέτες
  • FAT16 που χρησιμοποιούσε η αρχαία msdos στούς σκληρούς.
  • FAT32 που είναι η συνηθέστερη «σύγχρονη» έκδοση.

Θα περίμενα τα FAT12 και FAT16 να έχουν πεθάνει εντελώς, με έκπληξη όμως παρατήρησα το Live για το EndeavourOS να έχει κομματάκι FAT16 και το Live για το Sparky να έχει κομματάκι FAT12.

Ο πιο σημαντικός περιορισμός για το FAT32 είναι ότι δεν επιτρέπει αρχεία μεγαλύτερα από 4 GB.

Οι χρήστες λίνουξ επίσης θα πρέπει να έχουν υπόψιν ότι δεν έχει άδειες UNIX, και ότι επιτρέπει μεν εναλλακτική χρήση πεζών/κεφαλαίων (vfat) αλλά δεν κάνει διάκριση πεζών/κεφαλαίων.

ext4

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

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

ext4 σημαίνει προφανώς ότι υπάρχει ext3 το οποίο όμως είναι κατώτερο από κάθε άποψη και είναι λάθος η χρήση του. Περισσότερο ενδιαφέρον έχει το ext2 το οποίο έχει κάποια πλεονεκτήματα «πρωτογονισμού». Δεν υπάρχει ext1 γιατί η αρχική έκδοση ήταν προβληματική και δεν υποστηρίζεται καν.

NTFS

Το ntfs είναι το ιθαγενές στα σύγχρονα windows. Δεν έχει τούς περιορισμούς τού FAT, αλλά οι χρήστες λίνουξ θα πρέπει να έχουν υπόψιν ότι δεν έχει άδειες UNIX και δεν κάνει διάκριση πεζών/κεφαλαίων. Κάπου έχω διαβάσει ότι μπορούν να ενεργοποιηθούν τέτοιες ιδιότητες αλλά πάντως τυπικά δεν τις έχει. Δεν έχει εξίσου ευρεία υποστήριξη όπως το FAT αλλά το λίνουξ υποστηρίζει και ανάγνωση και εγγραφή και φορμάτ και ακόμα και αύξηση και μείωση μεγέθους κατάτμησης.

Μερικά ακόμα συστήματα

  • iso9660
    Συνηθίζεται στούς οπτικούς δίσκους (dvd). Τα Live επίσης το χρησιμοποιούν (υποθέτω για να είναι συμβατά με οπτικούς δίσκους)
  • btrfs
    Είναι το επόμενης γενιάς σύστημα αρχείων για το λίνουξ.
  • exfat
    Είναι σύστημα τής microsoft που επιχειρεί να διατηρήσει κάποια πλεονεκτήματα «πρωτογονισμού» αλλά χωρίς τούς περιορισμούς τού FAT. Η microsoft πρόσφατα το «ελευθέρωσε» μάλλον σαν για να προλάβει την διάδοση τού f2fs.
12 Likes

σε πιο σταδιο αναπτυξης βρισκεται σημερα το Btrfs;
Μπορει να χρησιμοποιηθει σε παραγωγικο συστημα;
η Suse Enterprise το εχει σαν στανταρντ συστημα αρχειων απο αρχες του 17.

Μια δύσκολη ερώτηση. Η SuSE το έχει, αλλά η RedHat έχει μια εντελώς διαφορετική γνώμη. Παλιά που το είχα κοιτάξει το πρόβλημα ήταν σε κάποιο συνδυασμό controller με κάποιο Raid και πολύ κακή τύχη. Αν είσαι ή Redhat και το έχει αυτό ένας σημαντικός πελάτης σου, είναι λογικό να μην θέλεις να το υποστηρίξεις. Παρεμπιπτόντως και η SuSe το υποστηρίζει απο όσο ξέρω μόνο για συγκεκριμένα raid.

Η Synology πάντως το χρησιμοποιεί και αυτό εμένα μετράει περισσότερο. Σύμφωνα όμως με τον δημιουργό του bcachefs το btrfs εχει γραφτεί κάπως βιαστικά και είναι δύσκολη η ανάπτυξη του και αυτός θα το κάνει καλύτερα. Πρέπει να έχει δίκιο, άλλωστε πονάει πάντα η πρώτη φορά, αλλά το bcachefs δεν είναι έτοιμο ακόμα.

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

Αυτό που δεν συμβουλεύω είναι η χρήση του ZFS. Μόνο η σιωπή της Oracle για μένα αρκεί και ο Linus έχει ξεκαθαρίσει πως χωρίς έγκριση από την Oracle δεν θα μπει ποτέ μέσα στον επίσημο kernel. Και κανένας επαγγελματίας δεν θα ήθελε να έχει την παραμικρή σχέση με την Oracle, το λογιστήριο της και το νομικό της τμήμα. θεωρώ λάθος την απόφαση της Cannonical μόνο για αυτό.

Αλλά ακόμα και αν λυθεί αυτό το πρόβλημα θεωρώ το ZFS λάθος, γιατί έχει σχεδιαστεί για τις ανάγκες ενός άλλου λειτουργικού. Το αρχικό για παράδειγμα περιέχει μια υλοποίηση του smb. Αλλά στο linux έχουμε ήδη το samba. Επίσης έχουμε πολύ καλές λύσεις για software raid και volume managment. Είναι κατά την γνώμη μου λάθος να τις επαναλαμβάνει το filesystem και να μην χρησιμοποιεί την υπάρχουσα υποδομή.

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

2 Likes

Επειδή δεν το έχω δοκιμάσει και στο internet οι γνώμες δεν μπορείς να πεις ότι είναι ξεκάθαρες.

  1. Είναι σταθερό ???
  2. Από ταχύτητα έχεις δει διαφορά
  3. Μπορείς να πας από ext4 σε btrfs χωρίς φορματ
  4. Σου έχει τύχη κανένα πρόβλημα ??

Εδώ ισχύει η γνωστή ρήση του Κλιντ Ιστγουντ

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

Όχι

Ναι, αλλά δεν φταίει το ίδιο, φταίει που η διανομή μου :mint: δεν το υποστηρίζει. Αλλά με το timeshift πετάει, έστω και με τα πρωτόγονα snapshoots του.

εννοείς αυτήν;

ή αυτήν;

6 Likes

Θα διαφωνήσω και μαζί σου διαφωνούν και πολλοί γνώστες π.χ. ο Wendell του L1 tech. Το ZFS είναι το NO1 σύστημα για ασφάλεια δεδομένων και ταχύτητα. Το btrfs είναι δεύτερο, αλλά μακρινό δεύτερο και διαφωνώ επίσης που το προτείνεις. Ναι είναι καλό, αλλά εγώ δεν θα το πρότεινα ποτέ, ούτε ZFS θα πρότεινα, τη στιγμή που υπάρχουν διάφοροι παράγοντες και αβεβαιότητα για διάφορους λόγους. Αν το δούμε ΤΕΧΝΙΚΑ και μόνο, το ZFS είναι αρκετά επίπεδα πάνω από το btrfs. Αν το δούμε ΝΟΜΙΚΑ, το ZFS δεν προτείνεται σε οργανισμούς που δεν θέλουν να έχουν σχέση με Oracle. Στον οικιακό χρήστη που θέλει να μπλέξει με RAID, logical volumes κτλ, θεωρώ το ZFS την καλύτερη λύση.

ΥΓ Προσωπικά έχω δοκιμάσει και bench-άρει mdadm vs btrfs vs zfs σε συστοιχία RAID-1 (mirror). Δεν αντιμετώπισα πρόβλημα με κανένα, αλλά το ZFS ήταν πιο γρήγορα με διαφορά στην ανάγνωση ενώ στην εγγραφή ήταν ίδια πάνω κάτω. Σε θέματα ασφάλειας δεδομένων, στα χαρτιά το ZFS είναι ανώτερο, καθώς διαθέτει features που τα άλλα βλέπουν με τα κιάλια.

Κάντε με όποιο σύστημα θέλετε ό,τι κάνουν οι τύποι εδώ με το ZFS και μετά ενημερώστε με…

2 Likes

εγω πλεον σε ολες τις εγκαταστασεις μου τις κανω σε btrfs . δεν εχω δει ως τωρα κανενα προβλημα

Δηλαδή να βραχυκυκλώσω μητρική να δω τι θα κάνει; Ευχαριστώ, αλλά δεν θα πάρω :grinning:

Αλλά επέτρεψε μου να παραμείνω στην συμβουλή μου. Κάθε τεχνολογική απόφαση δεν λαμβάνει υπόψιν της μόνο τεχνολογικούς παράγοντες. Και κάθε απόφαση είναι μέσα στα πλαίσια ενός σεναρίου χρήσης. Πιθανά το zfs να είναι γρηγορότερο. Αυτό είναι ένας παράγοντας σημαντικός για ένα μεγάλο datacenter, αλλά δεν αφορά καθόλου εμένα ή ένα μικρό SOHO. Αρκεί να μην είναι ενοχλητικό και η διαφορές δεν είναι ορατές σε αυτά τα σενάρια. Μάλιστα επειδή περάσαμε σε ssd είναι κατά πολύ ποιο γρηγορότερο :laughing:

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

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

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

Αυτή την στιγμή κανένα filesystem νέας γενιάς δεν έχει ενσωματωθεί πλήρως σε λειτουργικό. Όσο το πως θα στήσω ένα raid με lvm, θα το στήσω με διάβασμα και θα ταλαιπωρηθώ λίγο η πολύ και στις δύο περιπτώσεις. Εάν το έχεις ξανακάνει η δυσκολία θα είναι η ίδια, στην μια περίπτωση ίσως δώσεις 5 εντολές και στην άλλη ίσως δώσεις 8. Μικρή διαφορά. Βρίσκω ποιο λογικό όμως και ποιο UNIX way, να είναι οι διαφορετικές λειτουργίες σε διαφορετικά υποσυστήματα. Όμως αυτό είναι ένα setup που ξεφεύγει από τα συνηθισμένα, οπότε πάλι με βάση την λογική μου θα παραμείνω στην συμβουλή μου.

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

Αν τώρα μιλάμε για κάτι μεγάλο: Κύριε προμηθευτά , για αυτές τις ανάγκες τι υλικό και τι software stack θα μου πουλήσεις και θα έχω την εγγύηση σου (που παίρνεις και τόσα για υποστήριξη) ότι θα έχει τα επιδιωκόμενα χαρακτηριστικά;

1 Like

Το btrfs τι πλεονεκτήματα και μειονεκτήματα έχει από το ext4; Μήπως να βάλω και εγώ στα :ubuntu:;

Πλεονεκτήματα

  • Νέας γενιάς και σχεδιασμένο από το μηδέν. Μπορείς να κάνεις mount ένα ext4 σαν ext3 ή σαν ext2
  • Snapshoots και Copy on Write. Μπορείς να κάνεις ένα αντίγραφό ενός αρχείου ή και ακόμα και όλου του δίσκου χωρίς αυτό να καταλάβει τον παραμικρό χώρο, τουλάχιστον όσο δεν κάνεις αλλαγές. Και αυτό γίνετε στην στιγμή.
  • Καλύτερα αθροίσματα ελέγχου και αυτό ίαση και άρα καλύτερη προστασία των δεδομένων.
  • Ένα partition μπορεί να είναι σε πολλούς δίσκους και άλλα τέτοια κόλπα
  • Αρκετές άλλες δυνατότητες (όπως τεράστια μεγέθη αρχείων και χώρου)

Μειονεκτήματα

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

Για μένα τα snapshoots με το timeshift αρκούν

2 Likes

Η δική μου άποψη είναι αρνητική για την οικιακή χρήση με επόμενης γενιάς συστήματα αρχείων.

Να πω πρώτα ότι όταν έγραψα «επόμενης γενιάς» αυτό δεν σημαίνει καλύτερο ή ασταθές. Είναι απλά στα χαρακτηριστικά σε σχέση με τα «σύγχρονα» όπως το ext4.

Τα χαρακτηριστικά αυτά δεν έρχονται «δωρεάν». Σε αντιστοιχία με το ότι γενικά είναι σαφώς προτιμότερο το FAT και το ext2 σε σχέση με το NTFS και το ext3/4 σε υλικό τού περασμένου αιώνα για χρήση περασμένου αιώνα έτσι υπάρχουν μειονεκτήματα για τα επόμενης γενιάς σε συνήθη οικιακή χρήση. Την ίδια στιγμή το ext4 κάνει καλά την δουλειά του και αυτή είναι η προτίμησή μου γενικά εκτός από τις περιπτώσεις που ανέφερα και πρέπει να χρησιμοποιηθεί FAT ή είναι χρήσιμα τα ntfs και exfat. Η προσωπική μου απορία είναι για την προτίμηση ανάμεσα στα δύο τελευταία.

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

1 Like