Πώς να ορίσετε ποσοστώσεις συστήματος αρχείων (δίσκου) στο Ubuntu


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

Τα συστήματα αρχείων που υποστηρίζουν το σύστημα ποσοστώσεων περιλαμβάνουν τα xfs, ext2, ext4 και ext3 για να αναφέρουμε μερικά. Η εκχώρηση ποσοστώσεων είναι συγκεκριμένη για το σύστημα αρχείων και για κάθε χρήστη. Αυτό το άρθρο περιέχει όλα όσα χρειάζεται να γνωρίζετε σχετικά με την εργασία με το σύστημα αρχείων quota σε περιβάλλον Ubuntu πολλών χρηστών.

Η υπόθεση εδώ είναι ότι χρησιμοποιείτε το σύστημα Ubuntu με έναν χρήστη (tecmint) με δικαιώματα sudo. Οι ιδέες που κοινοποιούνται εδώ μπορούν να λειτουργήσουν σε οποιαδήποτε διανομή Linux, αρκεί να χρησιμοποιήσετε τη σωστή τεχνική υλοποίησης.

Βήμα 1: Εγκατάσταση Quota στο Ubuntu

Για να είναι έτοιμα και χρησιμοποιήσιμα τα quota, εγκαταστήστε το εργαλείο γραμμής εντολών quota χρησιμοποιώντας την εντολή apt, αλλά πριν από αυτό, πρέπει να ενημερώσετε τα πακέτα λογισμικού συστήματος.

sudo apt update

Τώρα χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε το πακέτο quota στο Ubuntu.

sudo apt install quota

Πατήστε Y και μετά ENTER για να ξεκινήσει η διαδικασία εγκατάστασης.

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

quota --version

Βήμα 2: Εγκατάσταση της μονάδας για τον πυρήνα ποσόστωσης

Για όσους εκτελούν εικονικό σύστημα που βασίζεται σε σύννεφο, από την προεπιλεγμένη εγκατάσταση Ubuntu ενδέχεται να λείπουν οι λειτουργικές μονάδες πυρήνα που υποστηρίζουν τη χρήση ορίου. Πρέπει να επιβεβαιώσετε χρησιμοποιώντας το εργαλείο εύρεσης και να βεβαιωθείτε ότι οι δύο λειτουργικές μονάδες, quota_v1 και quota _v2, βρίσκονται μέσα στον κατάλογο /lib/modules.

find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

Αυτό θα πρέπει να είναι το αποτέλεσμα της παραπάνω εντολής.

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

sudo apt install linux-image-extra-virtual

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

Βήμα 3: Ενημέρωση των επιλογών προσάρτησης συστήματος αρχείων

Για να είναι ενεργές οι ποσοστώσεις σε ένα συγκεκριμένο σύστημα, πρέπει να είναι προσαρτημένες με σχετικές επιλογές ορίου. Μπορείτε να το κάνετε αυτό ενημερώνοντας την καταχώρηση συστήματος αρχείων που βρίσκεται στο αρχείο /etc/fstab.

sudo nano /etc/fstab

Θα πρέπει να είστε έτοιμοι να επεξεργαστείτε το αρχείο κατάλληλα. Η διαφορά μεταξύ ενός αρχείου fstab και ενός επιτραπέζιου υπολογιστή είναι η διαφορά στον τρόπο με τον οποίο το / ή το ριζικό σύστημα αρχείων αντιπροσωπεύει ολόκληρο τον χώρο στο δίσκο. Αντικαταστήστε τη γραμμή (/) που δείχνει στο ριζικό σύστημα χρησιμοποιώντας τις παρακάτω γραμμές.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

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

Επανατοποθετήστε το σύστημα αρχείων για να τεθούν σε ισχύ οι αλλαγές.

sudo mount -o remount /

ΣΗΜΕΙΩΣΗ: επιβεβαιώστε ότι δεν υπάρχουν κενά μεταξύ των επιλογών στο /etc/fstab για να αποφύγετε τέτοια σφάλματα.

mount: /etc/fstab: parse error

Η επαλήθευση της χρήσης νέων επιλογών κατά την προσάρτηση του συστήματος αρχείων στο αρχείο /proc/mounts γίνεται μέσω του grep. Η εντολή δείχνει την καταχώρηση του συστήματος ριζικού αρχείου στο αρχείο.

sudo cat /proc/mounts | grep ' / '

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

Βήμα 4: Ενεργοποίηση ορίων δίσκου στο Ubuntu

Αρχικά, πρέπει να εκτελέσετε την εντολή quotacheck.

sudo quotacheck -ugm /

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

Εδώ είναι ένας ορισμός των παραμέτρων:

  • -u: συμβολίζει ότι θα δημιουργηθεί ένα αρχείο ορίου βάσει χρήστη.
  • -g: υποδηλώνει ότι θα δημιουργηθεί ένα αρχείο ορίου που βασίζεται σε ομάδα.
  • -m: απενεργοποιεί την επανατοποθέτηση του συστήματος αρχείων ως μόνο για ανάγνωση, ενώ ταυτόχρονα δίνει ακριβή αποτελέσματα σε ένα περιβάλλον όπου ο χρήστης συνεχίζει να αποθηκεύει αρχεία. Η επιλογή m δεν είναι υποχρεωτική κατά τη ρύθμιση.

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

ls /
Δείγμα εξόδου
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

Εάν δεν συμπεριληφθούν οι παράμετροι u και g στην εντολή quotacheck, τα αντίστοιχα αρχεία θα λείπουν.

Τώρα είμαστε έτοιμοι να ενεργοποιήσουμε το quota στο ριζικό σύστημα αρχείων (/) με την ακόλουθη εντολή.

sudo quotaon -v /

Βήμα 5: Διαμόρφωση ποσοστώσεων για έναν μόνο χρήστη

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

Χρήση edquota

Οι εντολές edquota επεξεργάζονται όρια, για παράδειγμα, μπορούμε να επεξεργαστούμε ένα όριο που ανήκει σε έναν χρήστη tecmint χρησιμοποιώντας:

sudo edquota -u tecmint

Χρησιμοποιώντας την επιλογή -u καθορίζετε ότι το όριο ανήκει σε έναν χρήστη. Χρησιμοποιήστε την επιλογή -g εάν θέλετε να επεξεργαστείτε ένα όριο που ανήκει σε μια ομάδα. Η εντολή θα ανοίξει ένα αρχείο χρησιμοποιώντας τον επεξεργαστή κειμένου της επιλογής σας.

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

ΣΗΜΕΙΩΣΗ: Η χρήση των μπλοκ δεν δείχνει πώς μπορεί να αλλάξει ανάλογα με διαφορετικούς παράγοντες, όπως το εργαλείο γραμμής εντολών που τα αναφέρει. Εντός των ορίων περιβάλλοντος στο Ubuntu, μπορούμε να υποθέσουμε ότι ένα μεμονωμένο μπλοκ είναι το ίδιο με ένα kilobyte χώρου στο δίσκο.

Χρησιμοποιώντας την παραπάνω γραμμή εντολών, ο χρήστης θα χρησιμοποιήσει 2032 μπλοκ, που είναι ίδια με 2032 KB χώρου στο /dev/sda1. Η τιμή 0 απενεργοποιεί τόσο τα μαλακά όσο και τα σκληρά όρια.

Κάθε σύνολο ποσοστώσεων επιτρέπει τον καθορισμό soft και hard limits. Ένας χρήστης που υπερβαίνει το εύχρηστο όριο μπορεί να έχει υπερβεί το όριο του, αλλά να μην απαγορεύεται να χρησιμοποιήσει περισσότερα κενά ή inodes. Σε μια τέτοια περίπτωση, ο χρήστης έχει στη διάθεσή του επτά ημέρες για να εξαργυρώσει το soft όριο του χώρου, αν δεν το κάνει αυτό καθιστά δύσκολη την αποθήκευση ή τη δημιουργία αρχείων.

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

Μπορούμε να ενημερώσουμε το όριο αποκλεισμού της tecmint ώστε να έχει ένα περιορισμένο όριο 100 MB και 110 MB για το σκληρό όριο.

Μετά την επεξεργασία, κλείστε το αρχείο και ελέγξτε τις νέες ρυθμίσεις ορίου ορίου χρήστη χρησιμοποιώντας την εντολή quota.

sudo quota -vs tecmint

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

Χρήση setquota

Το setquota ενημερώνει τις πληροφορίες ορίου χρησιμοποιώντας μία μόνο εντολή χωρίς καμία διαδραστική ρύθμιση. Η εντολή απαιτεί το όνομα χρήστη και τη ρύθμιση τόσο των μαλακών όσο και των σκληρών ορίων που θα χρησιμοποιήσουν το μπλοκ και το inode. Θα χρειαστεί επίσης να δηλώσετε το σύστημα αρχείων που θα χρησιμοποιήσει η ποσόστωση.

sudo setquota -u tecmint 200M 220M 0 0 /

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

Ως συνήθως, χρησιμοποιήστε την εντολή quota για να επαληθεύσετε την πρόοδό σας.

sudo quota -vs tecmint

Βήμα 6: Δημιουργία αναφορών ορίου

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

sudo repquota -s /

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

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

Βήμα 7: Ορίστε τις περιόδους χάριτος διαμόρφωσης

Η περίοδος χάριτος είναι ο χρόνος που ένας χρήστης λαμβάνει άδεια να εργαστεί πέρα από τον προεπιλεγμένο χρονισμό.

sudo setquota -t 864000 864000 /

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

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

sudo repquota -s /

Συνήθη μηνύματα σφαλμάτων

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

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

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Αυτό το σφάλμα λέει στον Διαχειριστή ότι ο πυρήνας δεν τον υποστηρίζει ή ότι μπορεί να έχετε λάθος έκδοση στο μηχάνημα (έχουμε quota_v1 και quota_v2). Για το Ubuntu, τέτοια σφάλματα είναι τυπικά σε έναν εικονικό διακομιστή που βασίζεται σε σύννεφο.

Διορθώστε το σφάλμα εγκαθιστώντας το πακέτο Linux-image-extra-virtual χρησιμοποιώντας την εντολή apt.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

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

συμπέρασμα

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

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