Linux Admin - Kontingentverwaltung

CentOS-Festplattenkontingente können beide aktiviert werden. Benachrichtigen des Systemadministrators und Verweigern des weiteren Zugriffs auf den Festplattenspeicher für einen Benutzer, bevor die Festplattenkapazität überschritten wird. Wenn eine Festplatte voll ist, kann ein gesamtes System, je nachdem, was sich auf der Festplatte befindet, bis zur Wiederherstellung zum Stillstand kommen.

Das Aktivieren der Kontingentverwaltung unter CentOS Linux erfolgt im Wesentlichen in vier Schritten.

  • Step 1 - Aktivieren Sie die Kontingentverwaltung für Gruppen und Benutzer in / etc / fstab.

  • Step 2 - Montieren Sie das Dateisystem erneut.

  • Step 3 - Erstellen Sie eine Kontingentdatenbank und generieren Sie eine Datenträgerverwendungstabelle.

  • Step 4 - Kontingentrichtlinien zuweisen.

Aktivieren Sie die Kontingentverwaltung in / etc / fstab

Zuerst möchten wir unsere Datei / etc / fstab sichern -

[root@centosLocal centos]# cp -r /etc/fstab ./

Wir haben jetzt eine Kopie unserer bekannten Arbeitsdatei / etc / fstab im aktuellen Arbeitsverzeichnis.

# 
# /etc/fstab 
# Created by anaconda on Sat Dec 17 02:44:51 2016 
# 
# Accessible filesystems, by reference, are maintained under '/dev/disk' 
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# 
/dev/mapper/cl-root        /         xfs     defaults                      0 0
UUID = 4b9a40bc-9480-4     /boot     xfs     defaults                      0 0

/dev/mapper/cl-home        /home     xfs     defaults,usrquota,grpquota    0 0

/dev/mapper/cl-swap        swap      swap    defaults                      0 0

Wir haben die folgenden Änderungen im Optionsbereich von / etc / fstab für das Volume oder die Bezeichnung vorgenommen, auf die Kontingente für Benutzer und Gruppen angewendet werden sollen.

  • usrquota
  • grpquota

Wie Sie sehen können, verwenden wir die xfsDateisystem. Bei der Verwendung von xfs sind zusätzliche manuelle Schritte erforderlich./homebefindet sich auf derselben Festplatte wie /. Weitere Untersuchungen zeigen, dass / für noquota festgelegt ist , bei dem es sich um eine Mounting-Option auf Kernel-Ebene handelt. Wir müssen unsere Kernel-Boot-Optionen neu konfigurieren.

root@localhost rdc]# mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

[root@localhost rdc]#

Neukonfigurieren der Kernel-Startoptionen für XFS-Dateisysteme

Dieser Schritt ist nur unter zwei Bedingungen erforderlich -

  • Wenn die Festplatte / Partition, für die wir Kontingente aktivieren, das xfs-Dateisystem verwendet
  • Wenn der Kernel beim Booten den Parameter noquota an / etc / fstab übergibt

Step 1 - Erstellen Sie ein Backup von / etc / default / grub.

cp /etc/default/grub ~/

Step 2- Ändern Sie / etc / default / grub .

Hier ist die Standarddatei.

GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" 
GRUB_DISABLE_RECOVERY="true"

Wir wollen die folgende Zeile ändern -

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"

zu

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv 
=cl/swap rhgb quiet rootflags=usrquota,grpquota"

Note- Es ist wichtig, dass wir diese Änderungen wörtlich kopieren. Nachdem wir grub.cfg neu konfiguriert haben, kann unser System nicht gestartet werden, wenn Fehler in der Konfiguration aufgetreten sind. Bitte versuchen Sie diesen Teil des Tutorials auf einem Nicht-Produktionssystem.

Step 3 - Sichern Sie Ihre funktionierende grub.cfg

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

Erstelle eine neue grub.cfg

[root@localhost rdc]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ... 
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img 
Found linux image: /boot/vmlinuz-0-rescue-dbba7fa47f73457b96628ba8f3959bfd 
Found initrd image: /boot/initramfs-0-rescuedbba7fa47f73457b96628ba8f3959bfd.img 
done

[root@localhost rdc]#

Starten Sie neu

[root@localhost rdc]#reboot

Wenn alle Änderungen präzise waren, sollten wir nicht die Möglichkeit haben, dem xfs- Dateisystem Kontingente hinzuzufügen .

[rdc@localhost ~]$ mount | grep ' / ' 
/dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
 
[rdc@localhost ~]$

Wir haben die Parameter usrquota und grpquota über grub übergeben.

Bearbeiten Sie nun erneut / etc / fstab , um / Since / home auf derselben physischen Festplatte einzuschließen .

/dev/mapper/cl-root/xfs
defaults,usrquota,grpquota        0 0

Aktivieren wir nun die Kontingentdatenbanken.

[root@localhost rdc]# quotacheck -acfvugM

Stellen Sie sicher, dass Kontingente aktiviert sind.

[root@localhost rdc]# quotaon -ap 
group quota on / (/dev/mapper/cl-root) is on 
user quota on / (/dev/mapper/cl-root) is on 
group quota on /home (/dev/mapper/cl-home) is on 
user quota on /home (/dev/mapper/cl-home) is on 
[root@localhost rdc]#

Montieren Sie das Dateisystem erneut

Wenn die Partition oder der Datenträger von der aktiv gestarteten Partition getrennt ist, können wir die Bereitstellung ohne Neustart erneut durchführen. Wenn das Kontingent auf einer Festplatte / Partition konfiguriert wurde, die im Stammverzeichnis / gestartet wurde, müssen wir möglicherweise das Betriebssystem neu starten. Wenn Sie die erneute Bereitstellung erzwingen und Änderungen anwenden, kann die Notwendigkeit einer erneuten Bereitstellung des Dateisystems variieren.

[rdc@localhost ~]$ df 
Filesystem              1K-blocks     Used      Available      Use%     Mounted on
/dev/mapper/cl-root     22447404      4081860   18365544       19%         /
devtmpfs                903448        0         903448         0%          /dev
tmpfs                   919308        100       919208         1%          /dev/shm
tmpfs                   919308        9180      910128         1%          /run
tmpfs                   919308        0         919308         0%          /sys/fs/cgroup
/dev/sda2               1268736       176612    1092124        14%         /boot
/dev/mapper/cl-var      4872192       158024    4714168        4%          /var
/dev/mapper/cl-home     18475008      37284     18437724       1%          /home
tmpfs                   183864        8         183856         1%          /run/user/1000

[rdc@localhost ~]$

Wie wir sehen können, werden LVM-Volumes verwendet. Es ist also einfach, einfach neu zu starten. Dadurch wird / home erneut bereitgestellt und die Konfigurationsänderungen / etc / fstab werden in die aktive Konfiguration geladen .

Erstellen Sie Kontingentdatenbankdateien

CentOS kann jetzt mit Festplattenkontingenten auf / home arbeiten. Um die vollständige Kontingentunterstützung zu aktivieren, müssen wir das ausführenquotacheck Befehl.

quotacheck erstellt zwei Dateien -

  • aquota.user
  • aquota.group

Diese werden zum Speichern von Kontingentinformationen für die kontingentfähigen Datenträger / Partitionen verwendet.

Im Folgenden sind die gängigen Quotacheck-Schalter aufgeführt.

Schalter Aktion
-u Überprüft auf Benutzerkontingente
-G Überprüft auf Gruppenquoten
-c Kontingente sollten für jedes Dateisystem mit aktivierten Kontingenten aktiviert werden
-v Zeigt eine ausführliche Ausgabe an

Kontingentlimits pro Benutzer hinzufügen

Dazu verwenden wir den Befehl edquota, gefolgt vom Benutzernamen -

[root@localhost rdc]# edquota centos

Disk quotas for user centos (uid 1000):  
Filesystem                   blocks       soft       hard     inodes     soft     hard 
/dev/mapper/cl-root              12          0          0         13        0        0  
/dev/mapper/cl-home            4084          0          0        140        0        0

Schauen wir uns jede Spalte an.

  • Filesystem - Dies sind die Dateisystemkontingente für den Benutzer, auf die angewendet wird

  • blocks - Wie viele Blöcke verwendet der Benutzer derzeit in jedem Dateisystem?

  • soft- Setzen Sie Blöcke für ein weiches Limit. Mit Soft Limit kann der Benutzer ein Kontingent für einen bestimmten Zeitraum übertragen

  • hard- Setzen Sie Blöcke für ein hartes Limit. Das harte Limit ist die zulässige Gesamtquote

  • inodes - Wie viele Inodes verwendet der Benutzer derzeit?

  • soft - Soft Inode Limit

  • hard - Harte Inode-Grenze

So überprüfen Sie unser aktuelles Kontingent als Benutzer:

[centos@localhost ~]$ quota 
Disk quotas for user centos (uid 1000):  
Filesystem             blocks     quota      limit grace    files   quota   limit   grace 
/dev/mapper/cl-home    6052604    56123456   61234568       475     0       0       [centos@localhost ~]$

Es folgt ein Fehler, der einem Benutzer gegeben wird, wenn das Limit für harte Kontingente überschritten wurde.

[centos@localhost Downloads]$ cp CentOS-7-x86_64-LiveKDE-1611.iso.part ../Desktop/

cp: cannot create regular file ‘../Desktop/CentOS-7-x86_64-LiveKDE-
1611.iso.part’: Disk quota exceeded

[centos@localhost Downloads]$

Wie wir sehen können, befinden wir uns eng innerhalb des Festplattenkontingents dieses Benutzers. Lassen Sie uns eine Soft-Limit-Warnung festlegen. Auf diese Weise wird der Benutzer vor Ablauf der Kontingentlimits im Voraus benachrichtigt. Erfahrungsgemäß erhalten Sie Beschwerden von Endbenutzern, wenn diese zur Arbeit kommen, und müssen 45 Minuten damit verbringen, Dateien zu löschen, um tatsächlich zur Arbeit zu kommen.

Als Administrator können wir die Kontingentnutzung mit dem überprüfen repquota Befehl.

[root@localhost Downloads]# repquota  /home  
                    Block limits                            File limits  
User            used     soft     hard     grace       used     soft     hard     grace 
----------------------------------------------------------------------------------------
root      --       0         0        0                   3        0        0        
centos    -+ 6189824  56123456 61234568                 541      520      540      6days 

[root@localhost Downloads]#

Wie wir sehen können, haben die Benutzer-Centos ihr Hardblock-Kontingent überschritten und können auf / home keinen Speicherplatz mehr verwenden .

- + bedeutet, dass ein festes Kontingent im Dateisystem überschritten wurde.

Bei der Planung von Quoten ist es notwendig, ein wenig zu rechnen. Ein Administrator muss Folgendes wissen: Wie viele Benutzer befinden sich im System? Wie viel freier Speicherplatz kann Benutzern / Gruppen zugewiesen werden? Wie viele Bytes bilden einen Block im Dateisystem?

Definieren Sie Kontingente in Form von Blöcken in Bezug auf freien Speicherplatz. Es wird empfohlen, einen "sicheren" Puffer für freien Speicherplatz im Dateisystem zu belassen, der im schlimmsten Fall erhalten bleibt: Alle Kontingente werden gleichzeitig überschritten. Dies gilt insbesondere für eine Partition, die vom System zum Schreiben von Protokollen verwendet wird.