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.