Kaip nustatyti failų sistemos (disko) kvotas Ubuntu


Failų sistemos kvota yra standartinė integruota „Linux branduolio“ funkcija. Kvotos nustato, kiek vietos faile turi būti, kad būtų galima palaikyti vartotojo veiklą. Disko kvotos taip pat riboja failų, kuriuos vartotojas gali sukurti sistemoje, skaičių.

Failų sistemos, palaikančios kvotų sistemą, apima xfs, ext2, ext4 ir ext3. Kvotų priskyrimas priklauso nuo failų sistemos ir kiekvienam vartotojui. Šiame straipsnyje pateikiama viskas, ką reikia žinoti apie darbą su kvotos failų sistema kelių vartotojų Ubuntu aplinkoje.

Daroma prielaida, kad naudojate Ubuntu sistemą su vartotoju (tecmint), kuriam suteikta sudo teisė. Čia bendrinamos idėjos gali veikti bet kuriame „Linux“ platinimo tinkle, jei naudojate tinkamą įgyvendinimo techniką.

1 veiksmas: Kvotos diegimas Ubuntu

Kad kvotos būtų paruoštos ir jas būtų galima naudoti, įdiekite kvota komandų eilutės įrankį naudodami komandą apt, tačiau prieš tai turite atnaujinti sistemos programinės įrangos paketus.

sudo apt update

Dabar naudokite šią komandą, kad įdiegtumėte kvota paketą Ubuntu.

sudo apt install quota

Paspauskite Y, tada ENTER, kad prasidėtų diegimo procesas.

Patvirtinkite diegimo versiją vykdydami toliau pateiktą komandą. Jūsų versijos numeris gali skirtis nuo to, ką matote toliau.

quota --version

2 veiksmas: Kvotos branduolio modulio įdiegimas

Tiems, kurie naudoja debesimis pagrįstą virtualią sistemą, numatytame Ubuntu diegime gali trūkti branduolio modulių, palaikančių kvotos naudojimą. Turite patvirtinti naudodami paieškos įrankį ir įsitikinkite, kad du moduliai quota_v1 ir quota _v2 yra kataloge /lib/modules.

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

Tai turėtų būti aukščiau pateiktos komandos rezultatas.

Nesijaudinkite dėl branduolio versijų, kol yra du moduliai. Jei nerasta, naudokite šią komandą, kad įdiegtumėte kvotos branduolio modulius, kaip parodyta.

sudo apt install linux-image-extra-virtual

Gausite tinkamus modulius, kurių jums reikia kvotai įgyvendinti.

3 veiksmas: failų sistemos prijungimo parinkčių atnaujinimas

Kad kvotos būtų aktyvios konkrečioje sistemoje, ji turi būti prijungta su susijusiomis kvotos parinktimis. Tai galite padaryti atnaujindami failų sistemos įrašą, esantį faile /etc/fstab.

sudo nano /etc/fstab

Turėtumėte būti pasirengę tinkamai redaguoti failą. Skirtumas tarp fstab failo ir darbalaukio yra tuo, kaip / arba šakninė failų sistema vaizduoja visą disko vietą. Pakeiskite eilutę (/), kuri nurodo šaknų sistemą, naudodami toliau pateiktas eilutes.

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

Eilutės pasikeis, kad būtų galima pasiekti userquota ir grpquota. Galite palikti tokį, kuris nėra galutinės konfigūracijos dalis. Jei fstab turėjo keletą parinkčių, eilutės pabaigoje pridėkite naujas parinktis. Pridėdami naujus elementus atskirkite kableliais, bet be tarpų tarp jų.

Iš naujo įdiekite failų sistemą, kad pakeitimai įsigaliotų.

sudo mount -o remount /

PASTABA: įsitikinkite, kad tarp parinkčių /etc/fstab nėra tarpų, kad išvengtumėte tokių klaidų.

mount: /etc/fstab: parse error

Naujų parinkčių naudojimas montuojant failų sistemą faile /proc/mounts patikrinamas naudojant grep. Komanda rodo šakninės failų sistemos įrašą faile.

sudo cat /proc/mounts | grep ' / '

Iš išvesties galite matyti dvi mūsų nustatytas parinktis. Atėjo laikas įjungti kvotų sistemą.

4 veiksmas: Ubuntu disko kvotų įgalinimas

Pirmiausia turite paleisti komandą quotacheck.

sudo quotacheck -ugm /

Komanda sukuria du failus, kvotos vartotoją ir kvotų grupę, turinčius informacijos apie failų sistemos apribojimą ir naudojimą. Šie failai turi būti pateikti prieš pradedant naudoti kvotą.

Čia yra parametrų apibrėžimas:

  • -u: simbolizuoja, kad bus sukurtas naudotojo kvotos failas.
  • -g: rodo, kad bus sukurtas grupinis kvotos failas.
  • -m: išjungiamas tik skaitomos failų sistemos diegimas iš naujo ir tuo pačiu metu pateikiami tikslūs rezultatai aplinkoje, kurioje vartotojas nuolat išsaugo failus. Parinktis m nėra privaloma sąrankos metu.

Kai nereikia įjungti kvotų, pagrįstų vartotoju ar grupe, nereikia vykdyti parinkties quotacheck. Patvirtinkite tai įtraukdami šakninį katalogą naudodami komandą ls.

ls /
Pavyzdžio išvestis
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

Jei į komandą quotacheck neįtrauksite parametrų u ir g, trūks atitinkamų failų.

Dabar esame pasirengę įjungti kvotą šakninėje (/) failų sistemoje naudodami šią komandą.

sudo quotaon -v /

5 veiksmas: konfigūruokite kvotas vienam vartotojui

Galime naudoti komandas edquota ir setquota, kad nustatytume jas naudotojams ar grupėms.

Naudojant edkvotą

Naudodami edquota komandas redaguojame kvotas, pavyzdžiui, galime redaguoti tecmint vartotojui priklausančią kvotą naudodami:

sudo edquota -u tecmint

Naudojant -u parinktį nurodoma, kad kvota priklauso vartotojui. Jei reikia redaguoti grupei priklausančią kvotą, naudokite parinktį -g. Komanda atidarys failą naudojant pasirinktą teksto rengyklę.

Išvestyje pateikiamas vartotojo vardas, uid, failų sistema su aktyviomis kvotomis ir blokų bei inodų naudojimas. Kvota, pagrįsta inodes, riboja failų ir katalogų, kuriuos vartotojai gali sukurti, skaičių, nepaisant jų naudojamo disko dydžio. Dauguma administratorių teikia pirmenybę blokavimo kvotai, kuri valdo vietą diske.

PASTABA: blokų naudojimas neparodo, kaip jis gali keistis priklausomai nuo įvairių veiksnių, pvz., apie juos pranešančio komandų eilutės įrankio. Atsižvelgiant į Ubuntu kontekstines kvotas, galime daryti prielaidą, kad vienas blokas yra toks pat kaip vienas kilobaitas vietos diske.

Naudodamas aukščiau esančią komandų eilutę, naudotojas naudos 2032 blokus, o tai yra 2032 KB vietos /dev/sda1. Vertė 0 išjungia ir minkštąsias, ir griežtąsias ribas.

Kiekvienas kvotos rinkinys leidžia nustatyti minkštąsias ir griežtąsias ribas. Naudotojas, kuris viršija minkštą ribą, gali viršyti savo kvotą, tačiau jam nebus uždrausta naudoti daugiau tarpų ar inodų. Tokiu atveju vartotojas turi septynias dienas išpirkti savo minkštąją limito erdvę, o to nepadarius sunku išsaugoti ar kurti failus.

Griežtas limitas reiškia, kad naujų blokų ar inodų kūrimas sustoja, kai pasieksite ribą. Naudotojai praneš, kad atlikdami įprastas užduotis mato įspėjimus ar klaidas.

Galime atnaujinti tecmint blokavimo kvotą, kad būtų nustatyta 100 MB ir 110 MB griežta riba.

Redaguodami uždarykite failą ir patikrinkite naujus naudotojo kvotos apribojimo nustatymus naudodami kvotos komandą.

sudo quota -vs tecmint

PASTABA: suteikiant vartotojams galimybę analizuoti savo kvotas neiškviečiant sudo komandos, jiems turi būti suteikta prieiga skaityti kvotos failus. kūrimo etapas ketvirtame žingsnyje. Vienas paprastas būdas tai padaryti – sukurti vartotojų grupę ir suteikti jai prieigą, kad galėtumėte prie jos pridėti vartotojų.

Naudojant setquot

setquota atnaujina kvotos informaciją naudodama vieną komandą be jokios interaktyvios sąrankos. Komandai reikalingas vartotojo vardas ir minkštųjų ir griežtųjų apribojimų nustatymas, kurį naudos blokas ir inode. Taip pat turėsite deklaruoti failų sistemą, kurią kvota naudos.

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

Komanda padvigubina blokais pagrįstą kvotą iki 200 megabaitų ir 220 megabaitų. Du 0 0 rodo, kad ir kietosios, ir minkštosios ribos nėra nustatytos, tai yra būtina net tada, kai nereikia nustatyti inode pagrįstų kvotų.

Kaip įprasta, naudokite komandą quota, kad patikrintumėte savo pažangą.

sudo quota -vs tecmint

6 veiksmas: kvotų ataskaitų generavimas

Generuojant kvotos ataskaitą turi būti nurodytas visų naudotojų naudojimas. Naudojama komanda repquota.

sudo repquota -s /

Aukščiau pateikta išvestis yra / šakninės failų sistemos ataskaita. -s nurodo repquota pateikti rezultatus žmonėms suprantamu formatu.

Numatytasis blokavimo atidėjimo laikas yra 7 dienos. Atidėjimo stulpelis įspėja vartotoją apie dienų skaičių iki prieigos prie išteklių disko atsisakymo.

7 veiksmas: nustatykite konfigūracijos atidėjimo laikotarpius

Atidėjimo laikotarpis yra laikas, kai vartotojas gauna leidimą dirbti ilgiau nei numatytasis laikas.

sudo setquota -t 864000 864000 /

Komanda nurodo blokui ir inode turėti 864 000 sekundžių atidėjimo laikotarpį, atitinkantį 10 dienų. Nustatymas turės įtakos visiems vartotojams, todėl reikšmes reikia nustatyti net tada, kai nebus naudojami blokai ir inodai. Laiko reikšmė turi būti sekundėmis.

Patvirtinkite pakeitimus ir patikrinkite, ar jie įsigaliojo naudodami komandą:

sudo repquota -s /

Dažni klaidų pranešimai

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

Aukščiau pateikta klaida dažnai pasitaiko, jei bandote įjungti kvotas naudodami komandą qoutaon prieš bandydami patikrinti kvotos būseną naudodami komandą 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.

Ši klaida praneša administratoriui, kad branduolys jo nepalaiko arba gali būti, kad kompiuteryje yra netinkama versija (turime quota_v1 ir quota_v2). Naudojant Ubuntu, tokios klaidos būdingos debesies pagrindu veikiančiam virtualiajam serveriui.

Ištaisykite klaidą įdiegę Linux-image-extra-virtual paketą naudodami komandą 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

Klaida pastebima, kai dabartinis vartotojas neturi leidimo skaityti kvotų failų. Kaip administratoriui, jums tereikia atlikti teisingus leidimo pakeitimus arba naudoti sudo, kai reikia pasiekti failus kvotų sistemoje arba faile.

Išvada

Straipsnio viršuje pradėjome nuo kvota komandinės eilutės įrankių ir branduolio versijos patikrinimo, o toliau paaiškinome, kaip nustatyti blokų kvotą vienam vartotojui ir kaip sugeneruoti failų sistemos kvotos naudojimo ataskaitą.

Straipsnyje taip pat aptariamos dažniausios klaidos ir kaip jų išvengti naudojant papildomą paketą arba tikrinant branduolio versiją savo sistemoje.