Weboldal keresés

Fájlrendszer (lemez) kvóták beállítása Ubuntuban


A fájlrendszer-kvóta egy szabványos beépített szolgáltatás, amely a Linux Kernelben található. A kvóták határozzák meg, hogy egy fájlnak mekkora területet kell biztosítania a felhasználói tevékenységek támogatásához. A lemezkvóták korlátozzák a felhasználók által a rendszeren létrehozható fájlok számát is.

A kvótarendszert támogató fájlrendszerek közé tartozik az xfs, ext2, ext4 és ext3, hogy néhányat említsünk. A kvóták hozzárendelése a fájlrendszerhez és minden felhasználóhoz specifikus. Ez a cikk mindent tartalmaz, amit a kvóta fájlrendszerrel való munkáról tudnia kell egy többfelhasználós Ubuntu környezetben.

A feltételezés itt az, hogy az Ubuntu rendszert egy olyan felhasználóval (tecmint) használja, amely sudo jogokkal rendelkezik. Az itt megosztott ötletek bármely Linux disztribúción működhetnek, ha a megfelelő megvalósítási technikát használod.

1. lépés: A kvóta telepítése az Ubuntuban

A kvóták készenlétéhez és használhatóságához telepítse a quota parancssori eszközt az apt paranccsal, de előtte frissítenie kell a rendszerszoftver-csomagokat.

sudo apt update

Most használja a következő parancsot a quota csomag telepítéséhez az Ubuntu rendszeren.

sudo apt install quota

Nyomja meg az Y, majd az ENTER billentyűt a telepítési folyamat elindításához.

Erősítse meg a telepítési verziót az alábbi parancs futtatásával. Verziószáma eltérhet az alább láthatótól.

quota --version

2. lépés: A Kvóta Kernel moduljának telepítése

Azok számára, akik felhőalapú virtuális rendszert futtatnak, az alapértelmezett Ubuntu telepítésből hiányozhatnak a kvóta használatát támogató kernelmodulok. Erősítse meg a keresőeszközzel, és győződjön meg arról, hogy a két modul, a quota_v1 és a quota _v2, a /lib/modules könyvtárban található.

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

Ez legyen a fenti parancs eredménye.

Ne aggódjon a kernelverziók miatt, amíg a két modul jelen van. Ha nem található, használja a következő parancsot a kvóta kernelmodulok telepítéséhez az ábra szerint.

sudo apt install linux-image-extra-virtual

Meg fogja kapni a megfelelő modulokat, amelyekre szüksége van a kvóta megvalósításához.

3. lépés: Frissítse a fájlrendszer csatlakoztatási opcióit

Ahhoz, hogy a kvóták egy adott rendszeren aktívak legyenek, fel kell szerelni a kapcsolódó kvótaopciókkal. Ezt az /etc/fstab fájlban található fájlrendszer-bejegyzés frissítésével teheti meg.

sudo nano /etc/fstab

Készen kell állnia a fájl megfelelő szerkesztésére. Az fstab fájl és az asztali fájl között az a különbség, hogy a / vagy gyökér fájlrendszer hogyan képviseli a teljes lemezterületet. Cserélje ki a gyökérrendszerre mutató (/) sort az alábbi sorokkal.

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

A sorok megváltoznak, hogy elérhetővé váljanak a userquota és a grpquota. Meghagyhat olyat, amely nem része a végső konfigurációnak. Ha az fstab rendelkezik néhány lehetőséggel, adja hozzá az új beállításokat a sor végéhez. A hozzáfűzés során válassza el az új elemeket vesszővel, de ne hagyjon szóközt közöttük.

Csatlakoztassa újra a fájlrendszert, hogy a változtatások érvénybe lépjenek.

sudo mount -o remount /

MEGJEGYZÉS: az ilyen hibák elkerülése érdekében győződjön meg arról, hogy az /etc/fstab beállításai között nincs szóköz.

mount: /etc/fstab: parse error

A /proc/mounts fájlban lévő fájlrendszer felcsatolásakor az új beállítások használatának ellenőrzése a grep segítségével történik. A parancs megjeleníti a gyökér fájlrendszer bejegyzését a fájlban.

sudo cat /proc/mounts | grep ' / '

A kimeneten láthatja az általunk beállított két lehetőséget. Ideje bekapcsolni a kvótarendszert.

4. lépés: Lemezkvóták engedélyezése Ubuntuban

Először futtassa a quotacheck parancsot.

sudo quotacheck -ugm /

A parancs két fájlt hoz létre, egy kvóta felhasználót és egy kvótacsoportot, amelyek a fájlrendszer korlátairól és használatáról tartalmaznak információkat. Ezeknek a fájloknak jelen kell lenniük a kvóta használatának megkezdése előtt.

Íme a paraméterek meghatározása:

  • -u: azt jelzi, hogy egy felhasználó alapú kvótafájl jön létre.
  • -g: azt jelzi, hogy csoportalapú kvótafájl jön létre.
  • -m: letiltja a fájlrendszer csak olvashatóként történő újracsatlakoztatását, ugyanakkor pontos eredményeket ad olyan környezetben, ahol a felhasználó folyamatosan menti a fájlokat. Az m opció nem kötelező a beállítás során.

Ha nem szükséges engedélyezni a kvóták használatát felhasználón vagy csoportonként, akkor nem kell futtatni a quotacheck opciót. Erősítse meg ezt a gyökérkönyvtár felsorolásával az ls paranccsal.

ls /
Minta kimenet
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

Ha nem adja meg az u és g paramétert a quotacheck parancsban, a megfelelő fájlok hiányoznak.

Most már készen állunk a kvóta bekapcsolására a gyökér (/) fájlrendszeren a következő paranccsal.

sudo quotaon -v /

5. lépés: Konfigurálja a kvótákat egy felhasználó számára

Az edquota és a setquota parancsokkal beállíthatjuk azokat a felhasználókhoz vagy csoportokhoz.

Az edquota használata

Az edquota parancsok szerkesztik a kvótákat, például szerkeszthetünk egy tecmint felhasználóhoz tartozó kvótát a következő használatával:

sudo edquota -u tecmint

A -u kapcsoló használata megadja, hogy a kvóta egy felhasználóhoz tartozik. Használja a -g opciót, ha egy csoporthoz tartozó kvótát kell szerkesztenie. A parancs megnyit egy fájlt a választott szövegszerkesztővel.

A kimenet felsorolja a felhasználónevet, az uid-t, az aktív kvótákkal rendelkező fájlrendszert, valamint a blokkok és inode-ok használatát. Az inode-okon alapuló kvóta korlátozza a felhasználók által létrehozható fájlok és könyvtárak számát, függetlenül attól, hogy mekkora méretet használnak a lemezen. A legtöbb rendszergazda a blokkalapú kvótát részesíti előnyben, amely szabályozza a lemezterületet.

MEGJEGYZÉS: A blokkok használata nem mutatja meg, hogyan változhat a különböző tényezőktől függően, például az ezeket jelentő parancssori eszköztől. Az Ubuntu környezetkvótáin belül feltételezhetjük, hogy egyetlen blokk megegyezik egy kilobájt lemezterülettel.

A fenti parancssor használatával a felhasználó 2032 blokkot fog használni, ami megegyezik a /dev/sda1 2032 KB területével. A 0 érték letiltja mind a lágy, mind a kemény határértékeket.

Minden kvótakészlet lehetővé teszi lágy és kemény határok beállítását. Előfordulhat, hogy az a felhasználó, aki túllépi a lágy korlátot, túllépi a kvótáját, de nincs megtiltva több szóköz vagy inode használatától. A felhasználónak ebben az esetben hét napja van arra, hogy beváltsa soft limitjét, ennek elmulasztása megnehezíti a fájlok mentését vagy létrehozását.

A kemény limit azt jelenti, hogy az új blokkok vagy inódák létrehozása leáll abban a pillanatban, amikor eléri a határt. A felhasználók jelenteni fogják, ha rendszeres feladatok végrehajtása közben figyelmeztetéseket vagy hibákat látnak.

Frissíthetjük a tecmint blokkkvótáját, hogy 100 MB és 110 MB korlát legyen a kemény korlátnál.

A szerkesztés után zárja be a fájlt, és ellenőrizze az új felhasználói kvótakorlát beállításait a kvóta paranccsal.

sudo quota -vs tecmint

MEGJEGYZÉS: Ha lehetőséget ad a felhasználóknak kvótáik elemzésére a sudo parancs meghívása nélkül, hozzáférést kell biztosítani számukra a kvótafájlok olvasásához a folyamat során. létrehozási fázis a negyedik lépésben. Ennek egyik egyszerű módja, ha létrehoz egy felhasználói csoportot, és hozzáférést ad a csoportnak, így felhasználókat adhat hozzá.

Setquota használata

A setquota egyetlen paranccsal frissíti a kvótaadatokat, interaktív beállítások nélkül. A parancs megköveteli a felhasználónevet és a lágy és kemény határértékek beállítását, amelyeket a blokk és az inode fog használni. A kvóta által használt fájlrendszert is deklarálnia kell.

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

A parancs megduplázza a blokkalapú kvótakorlátokat 200 megabájtra és 220 megabájtra. A két 0 0 azt jelzi, hogy a kemény és a lágy határ nincs beállítva, ez akkor is követelmény, ha nincs szükség inode alapú kvóták beállítására.

Szokás szerint használja a quota parancsot az előrehaladás ellenőrzéséhez.

sudo quota -vs tecmint

6. lépés: Kvótajelentések generálása

A kvótajelentés generálásakor az összes felhasználó felhasználását jeleznie kell. A rendszer a repquota parancsot használja.

sudo repquota -s /

A fenti kimenet egy jelentés a / gyökérfájlrendszerről. A -s arra utasítja a repqotát, hogy az eredményeket ember által olvasható formátumban adja meg.

Az alapértelmezett blokkolási türelmi idő 7 nap. A türelmi oszlop figyelmezteti a felhasználót az erőforráslemezhez való hozzáférés megtagadása előtti napok számáról.

7. lépés: Állítsa be a konfigurációs türelmi időszakokat

A türelmi időszak az az idő, amikor a felhasználó engedélyt kap az alapértelmezett időzítésen túli munkavégzésre.

sudo setquota -t 864000 864000 /

A parancs arra utasítja a blokkot és az inode-ot, hogy 864000 másodperces türelmi idővel rendelkezzenek, ami 10 napnak felel meg. A beállítás minden felhasználóra hatással lesz, ezért értékeket akkor is be kell állítani, ha nem használunk blokkokat és inode-okat. Az időértéknek másodpercben kell lennie.

Erősítse meg a változtatásokat, és ellenőrizze, hogy életbe léptek-e a következő paranccsal:

sudo repquota -s /

Gyakori hibaüzenetek

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

A fenti hiba gyakori, ha megpróbálja bekapcsolni a kvótákat a qoutaon paranccsal, mielőtt megpróbálná ellenőrizni a kvóta állapotát a quotacheck paranccsal.

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.

Ez a hiba azt jelzi az adminisztrátornak, hogy a kernel nem támogatja, vagy esetleg rossz verzió van a gépen (van a quota_v1 és a quota_v2). Az Ubuntu esetében az ilyen hibák jellemzőek a felhő alapú virtuális szervereken.

Javítsa ki a hibát a Linux-image-extra-virtual csomag telepítésével az apt paranccsal.

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

A hiba akkor figyelhető meg, ha az aktuális felhasználónak nincs engedélye kvótafájlok olvasására. Rendszergazdaként csak akkor kell végrehajtania a megfelelő engedélymódosításokat, vagy a sudo-t kell használnia, ha kvótarendszerben vagy fájlban kell hozzáférnie a fájlokhoz.

Következtetés

A cikk tetején a quota parancssori eszközökkel és a kernelverzió ellenőrzésével kezdtük, és tovább mentünk annak elmagyarázásával, hogyan állíthatunk be blokkalapú kvótát egyetlen felhasználó számára, és hogyan jelentést készíteni a fájlrendszer kvótahasználatáról.

A cikk ismerteti a gyakori hibákat és azt is, hogyan lehet elkerülni őket egy extra csomag használatával vagy a rendszermag verziójának ellenőrzésével.