ργίας και της χρήσης του

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

Τι είναι το inode;

Το «inode» είναι συντομογραφία του «index node» (κόμβος ευρετηρίου). Χρησιμοποιείται ως μορφή διαχείρισης αρχείων που έχει διαδραματίσει σημαντικό ρόλο από την εμφάνιση των λειτουργικών συστημάτων Unix και εκείνων που βασίζονται σε αυτά, όπως το Linux ή το macOS. Η κύρια λειτουργία που επιτελούν τα inodes στα συστήματα αρχείων είναι η αναφορά, η διαχείριση και ο εντοπισμός συγκεκριμένων αρχείων στο σύστημα, μέσω της χρήσης μοναδικών και αμετάβλητων αριθμών inode. Ως καθορισμένη δομή δεδομένων, τα inodes περιγράφουν και διαχειρίζονται συγκεκριμένα αρχεία χρησιμοποιώντας μεταδεδομένα. Ο τύπος του συστήματος αρχείων καθορίζει ποια μεταδεδομένα χρησιμοποιούνται.

Παρόλο που δεν περιέχουν πληροφορίες σχετικά με το ίδιο το όνομα του αρχείου, οι inodes περιλαμβάνουν γενικά τις ακόλουθες πληροφορίες για τα αρχεία και τα μπλοκ αρχείων:

  • Τύπος και δικαιώματα πρόσβασης
  • Αριθμός σκληρών συνδέσμων
  • Αναγνωριστικό χρήστη (UID)
  • Αναγνωριστικό ομάδας (GID) ή GUI
  • Μέγεθος του αρχείου σε byte
  • Ημερομηνία της τελευταίας αλλαγής (mtime)
  • Ημερομηνία της τελευταίας αλλαγής κατάστασης (ctime)
  • Ημερομηνία τελευταίας πρόσβασης (atime)
  • Διεύθυνση των μπλοκ δεδομένων
  • Διεύθυνση του μπλοκ έμμεσης αναφοράς
  • Αριθμός συνδέσμων
  • Αριθμός έκδοσης

Πώς λειτουργούν τα inodes;

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

Τα inode εξασφαλίζουν ότι τα δεδομένα που αποθηκεύονται στο σύστημα μπορούν να εντοπιστούν χρησιμοποιώντας δεδομένα αναφοράς και καταλόγου, καθώς και τα ίδια τα inode και τον μοναδικό αριθμό inode. Ένα μεγάλο πλεονέκτημα εδώ είναι ότι δεν βασίζονται στο όνομα του αρχείου. Εάν ένα αρχείο αντιγραφεί και μετονομαστεί, μπορεί ακόμα να βρεθεί ξανά χρησιμοποιώντας τον ίδιο αριθμό inode με το αρχικό αρχείο. Αυτό συμβαίνει με τα hardlinks, τα οποία δημιουργούνται από χρήστες με την εντολή in του Linux. Αυτή η μορφή εσωτερικής καταγραφής έχει το πλεονέκτημα ότι επιτρέπει στα inodes να οδηγούν τόσο στα αρχικά αρχεία όσο και στα αντίγραφα ασφαλείας χωρίς να καταλαμβάνουν περισσότερη μνήμη.

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

Note

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

Πότε χρησιμοποιείτε inodes;

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

Ποια συστήματα αρχείων υποστηρίζουν inodes;

Όλα τα λειτουργικά συστήματα τύπου Unix, όπως το Linux ή το macOS, χρησιμοποιούν inodes. Ωστόσο, ανάλογα με το υποστηριζόμενο σύστημα αρχείων, η δομή και η σύνθεση των inodes μπορεί να διαφέρουν. Σε αυτή την περίπτωση, τα συστήματα ext2/ext3/ext4 χρησιμοποιούν λίστες ή πίνακες inodes ως κεφαλίδες περιγραφικών δεδομένων. Η λίστα inode δημιουργείται κατά τη ρύθμιση του συστήματος και δεν μπορεί να τροποποιηθεί στη συνέχεια. Επιπλέον, τα inodes ext4 με 256 byte καταλαμβάνουν χώρο στον σκληρό δίσκο και δεν μπορούν να χρησιμοποιηθούν με κανέναν άλλο τρόπο. Σε αυτό το σύστημα δεδομένων, ένα inode περιγράφει, σε κάθε περίπτωση, ένα αρχείο ή έναν κατάλογο στο σύστημα χρησιμοποιώντας τα μεταδεδομένα που τους ανήκουν.

Παράλληλα, υπάρχουν πιο σύνθετα συστήματα αρχείων, όπως τα xfs ή τα btrfs, στα οποία οι inodes δημιουργούνται για πρώτη φορά όταν χρειάζονται για την εύρεση αρχείων. Σε αυτή την περίπτωση, δεν δημιουργούνται λίστες ή πίνακες που περιέχουν inodes. Μια άλλη διαφορά στον τρόπο λειτουργίας τους παρατηρείται μεταξύ των inodes του δίσκου και των inodes που χρησιμοποιούνται για την επεξεργασία της μνήμης του Linux (in-core inodes).

Επισκόπηση σημαντικών εντολών για τα inode

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

Εντολή για την εμφάνιση των χρησιμοποιημένων χώρων στο σύστημα αρχείων

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

~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20
shell

Εντολή για την προβολή της τρέχουσας χρήσης των inode

Για να δείτε τα inode που χρησιμοποιούνται αυτή τη στιγμή στο σύστημα, χρησιμοποιήστε την παρακάτω εντολή:

df -ih
shell

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

df -i
shell

Εντολή για την εμφάνιση συγκεκριμένων αριθμών inode

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

ls -i
shell

Εντολή για την εμφάνιση όλων των αρχείων ενός inode

Αν θέλετε να μάθετε ποια αρχεία (συμπεριλαμβανομένων των πρωτότυπων, των αντιγράφων ή των αντιγράφων ασφαλείας) αναφέρονται από έναν inode, χρησιμοποιήστε την ακόλουθη εντολή:

-inum
shell

Συμβουλές σε περίπτωση υπερφόρτωσης των inodes

Ένα υψηλό φορτίο στους inodes δεν σημαίνει πάντα ότι εξαντλείται η μνήμη σας. Μερικές φορές, η αυξημένη χρήση των inodes μπορεί να οφείλεται σε υπερβολικά μικρά αρχεία δεδομένων, όπως προσωρινά αρχεία TMP, cache ή συνεδρίες. Το πρόβλημα μπορεί συνήθως να επιλυθεί με την αυτόματη διαγραφή όλων των αρχείων που έχουν ηλικία μεγαλύτερη των 14 ημερών. Για να το κάνετε αυτό, μπορείτε να εκτελέσετε μια εργασία cron με την ακόλουθη εντολή:

03 *** /usr/bin/find /path/to/files/* -type f – mtime +14 -delete > /dev/null 2>&1
shell

Τι θα συμβεί αν έχω πολύ λίγα inodes;

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

  • Οι εφαρμογές διακόπτονται
  • Χάνονται δεδομένα
  • Μη προγραμματισμένες επανεκκινήσεις
  • Οι διεργασίες διακόπτονται και δεν επανεκκινούν
  • Οι προγραμματισμένες διεργασίες δεν ξεκινούν αυτόματα

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

Go to Main Menu