Kā iestatīt failu sistēmas (diska) kvotas Ubuntu


Failu sistēmas kvota ir standarta iebūvēta funkcija, kas atrodama Linux kodolā. Kvotas nosaka, cik daudz vietas failam vajadzētu būt lietotāju darbību atbalstam. Diska kvotas arī ierobežo failu skaitu, ko lietotājs var izveidot sistēmā.

Kvotu sistēmu atbalstošās failu sistēmas ietver xfs, ext2, ext4 un ext3, lai pieminētu dažus. Kvotu piešķiršana ir raksturīga failu sistēmai un katram lietotājam. Šajā rakstā ir viss, kas jums jāzina par darbu ar kvotas failu sistēmu daudzu lietotāju Ubuntu 18.04 vidē.

Šeit tiek pieņemts, ka jūs izmantojat Ubuntu 18.04 sistēmu ar lietotāju (tecmint), kuram piešķirtas sudo tiesības. Šeit dalītās idejas var darboties jebkuros Linux Distros, ja vien jūs izmantojat pareizo ieviešanas tehniku.

1. solis: Kvotas instalēšana Ubuntu

Lai kvotas būtu gatavas un izmantojamas, instalējiet kvotas komandrindas rīku, izmantojot komandu apt, taču pirms tam jāatjaunina sistēmas programmatūras pakotnes.

$ sudo apt update

Tagad izmantojiet šo komandu, lai instalētu kvotu pakotni Ubuntu.

$ sudo apt install quota

Nospiediet Y un pēc tam ENTER, lai sāktu instalēšanas procesu.

Apstipriniet instalēšanas versiju, palaižot zemāk esošo komandu. Jūsu versijas numurs var atšķirties no tā, ko redzat zemāk.

$ quota --version

2. solis: Kvotas kodola moduļa instalēšana

Tiem, kas darbojas uz mākoņa bāzes veidotu virtuālo sistēmu, noklusējuma Ubuntu instalācijā, iespējams, trūkst kodola moduļu, kas atbalsta kvotas izmantošanu. Jums ir jāapstiprina, izmantojot meklēšanas rīku, un jāpārliecinās, ka abi moduļi, quota_v1 un quota _v2, atrodas direktorijā/lib/modules.

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

Tam vajadzētu būt iepriekš minētās komandas iznākumam.

Neuztraucieties par kodola versijām, kamēr ir divi moduļi. Ja tas nav atrasts, izmantojiet šo komandu, lai instalētu kvotas kodola moduļus, kā parādīts.

$ sudo apt install linux-image-extra-virtual

Jūs iegūsiet pareizos moduļus, kas nepieciešami kvotas ieviešanai.

3. darbība: atjauniniet failu sistēmas stiprināšanas opcijas

Lai kvotas būtu aktīvas noteiktā sistēmā, tām jābūt pievienotām ar attiecīgajām kvotu opcijām. To var izdarīt, atjauninot failu sistēmas ierakstu, kas atrodams failā/etc/fstab.

$ sudo nano /etc/fstab

Jums jābūt gatavam atbilstoši rediģēt failu. Atšķirība starp fstab failu un darbvirsmu ir atšķirība no tā, kā / vai saknes failu sistēma atspoguļo visu vietu diskā. Izmantojot zemāk esošās līnijas, aizstājiet līniju (/) , kas norāda uz sakņu sistēmu.

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

Rindas mainīsies, lai ļautu piekļūt userquota un grpquota. Jūs varat atstāt tādu, kas nav daļa no galīgās konfigurācijas. Ja fstab bija dažas opcijas, pievienojiet jaunās opcijas rindas beigās. Veicot pievienošanu, atdaliet jaunos vienumus ar komatu, bet bez atstarpēm.

Pārinstalējiet failu sistēmu, lai izmaiņas stātos spēkā.

$ sudo mount -o remount /

PIEZĪME. Lai izvairītos no šādām kļūdām, pārbaudiet, vai starp opcijām mapē/etc/fstab nav atstarpju.

mount: /etc/fstab: parse error

Jaunu opciju izmantošanas pārbaude, instalējot failu sistēmu failā/proc/mounts, tiek veikta, izmantojot grep. Komanda parāda saknes failu sistēmas ierakstu failā.

$ sudo cat /proc/mounts | grep ' / '

No izejas jūs varat redzēt divas mūsu iestatītās iespējas. Ir pienācis laiks ieslēgt kvotu sistēmu.

4. solis: Diska kvotu iespējošana Ubuntu

Pirmkārt, jums jāpalaiž quotacheck komanda.

$ sudo quotacheck -ugm /

Komanda izveido divus failus kvotas lietotājam un kvotu grupai, kurā ir informācija par failu sistēmas ierobežojumu un lietojumu. Šiem failiem ir jābūt klāt, pirms sākat izmantot kvotu.

Šeit ir parametru definīcija:

  • -u : simbolizē, ka tiks izveidots uz lietotāju balstīts kvotas fails.
  • -g : norāda, ka tiks izveidots uz grupu balstīts kvotas fails.
  • -m: atspējo failu sistēmas atkārtotu uzstādīšanu kā tikai lasāmu un vienlaikus sniedz precīzus rezultātus vidē, kurā lietotājs turpina saglabāt failus. Iestatīšanas laikā opcija m nav obligāta.

Ja nav nepieciešams iespējot kvotu izmantošanu, pamatojoties uz lietotāju vai grupu, nav nepieciešams palaist opciju quotacheck. Apstipriniet to, uzskaitot saknes direktoriju, izmantojot komandu 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

Ja neievietos parametrus u un g quotacheck komandā, trūks atbilstošo failu.

Tagad mēs esam gatavi ieslēgt kvotu saknes (/) failu sistēmā ar šādu komandu.

$ sudo quotaon -v /

5. darbība: konfigurējiet kvotas vienam lietotājam

Mēs varam izmantot komandas edquota un setquota, lai tās iestatītu lietotājiem vai grupām.

Edquota komandas rediģē kvotas, piemēram, mēs varam rediģēt tecmint lietotājam piederošo kvotu, izmantojot:

$ sudo edquota -u tecmint

Izmantojot opciju -u , tiek norādīts, ka kvota pieder lietotājam. Izmantojiet opciju -g , ja nepieciešams rediģēt kvotu, kas pieder grupai. Komanda atvērs failu, izmantojot jūsu izvēlēto teksta redaktoru.

Izejā ir norādīts lietotājvārds, uid, failu sistēma ar aktīvām kvotām, kā arī bloku un inodu izmantošana. Kvota, kuras pamatā ir inodes, ierobežo to failu un direktoriju skaitu, kurus lietotāji var izveidot neatkarīgi no diska izmantotā lieluma. Lielākā daļa administratoru dod priekšroku uz blokiem balstītai kvotai, kas kontrolē vietu diskā.

PIEZĪME. Bloku izmantošana neuzrāda, kā tā var mainīties atkarībā no dažādiem faktoriem, piemēram, komandrindas rīka, kas par tiem ziņo. Kontekstu kvotu ietvaros Ubuntu mēs varam pieņemt, ka viens bloks ir tāds pats kā viens kilobaits diska vietas.

Izmantojot iepriekš norādīto komandrindu, lietotājs izmantos 2032 blokus, kas ir tāds pats kā 2032 KB vietas uz/dev/sda1. Vērtība 0 atspējo gan mīkstās, gan cietās robežas.

Katra iestatītā kvota ļauj iestatīt mīksto un stingro robežu. Lietotājam, kurš pārsniedz atļauto robežu, var pārsniegt kvotu, taču viņam nav liegts izmantot vairāk atstarpju vai inodu. Lietotājam šādā gadījumā ir septiņas dienas laika, lai izpirktu savu mīksto ierobežoto vietu, ja tas netiek izdarīts, ir grūti saglabāt vai izveidot failus.

Cietā robeža nozīmē jaunu bloku vai inodu izveidi, kas apstājas brīdī, kad sasniedzat ierobežojumu. Lietotāji ziņos par brīdinājumu vai kļūdu redzēšanu, veicot regulārus uzdevumus.

Mēs varam atjaunināt tecmint bloķēšanas kvotu, lai stingrās robežas ierobežojums būtu 100 MB un 110 MB.

Pēc rediģēšanas aizveriet failu un, izmantojot komandu quota, pārbaudiet jaunos lietotāja kvotu ierobežojuma iestatījumus.

$ sudo quota -vs tecmint

PIEZĪME: dodot lietotājiem iespēju analizēt savas kvotas, neizmantojot komandu sudo, viņiem ir jāpiešķir piekļuve kvotu failu lasīšanai ceturtās darbības izveides posmā. Viens vienkāršs veids, kā to izdarīt, ir izveidot lietotāja grupu un piešķirt tai piekļuvi, lai jūs varētu tai pievienot lietotājus.

setquota atjaunina informāciju par kvotu, izmantojot vienu komandu bez jebkādas interaktīvas iestatīšanas. Komandai ir nepieciešams lietotājvārds, un, nosakot gan mīksto, gan cieto robežu, izmantos bloks un inode. Jums būs jādeklarē arī failu sistēma, kuru kvota izmantos.

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

Komanda divkāršo uz blokiem balstītas kvotas ierobežojumus līdz 200 megabaitiem un 220 megabaitiem. Divi 0 0 norāda, ka gan stingrās, gan mīkstās robežas nav noteiktas, tā ir prasība pat tad, ja nav nepieciešams noteikt uz kvotām balstītas kvotas.

Kā parasti, izmantojiet komandu quota, lai pārbaudītu progresu.

$ sudo quota -vs tecmint

6. solis: Kvotu pārskatu ģenerēšana

Ģenerējot kvotas pārskatu, tajā jānorāda visu lietotāju izmantošana. Tiek izmantota komandas repquota.

$ sudo repquota -s /

Iepriekš izvadīts ziņojums par saknes failu sistēmu /. -s uzdod atkārtotai kvotai sniegt rezultātus cilvēkiem lasāmā formātā.

Noklusējuma bloķēšanas labvēlības laiks ir 7 dienas. Labvēlības sleja brīdina lietotāju par dienu skaitu pirms piekļuves liegšanas resursu diskam.

7. solis: iestatiet konfigurācijas labvēlības periodus

Papildu periods ir laiks, kad lietotājs saņem atļauju strādāt ārpus noklusējuma laika.

$ sudo setquota -t 864000 864000 /

Komanda uzdod blokam un inodam piešķirt labvēlības periodu 864000 sekundes, kas ir līdzvērtīgas 10 dienām. Šis iestatījums ietekmēs visus lietotājus, tāpēc vērtības ir jāiestata pat tad, ja bloki un inodi netiks izmantoti. Laika vērtībai ir jābūt sekundēs.

Apstipriniet izmaiņas un pārbaudiet, vai tās stājās spēkā, izmantojot komandu:

$ sudo repquota -s /

Bieži sastopamo kļūdu ziņojumi

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

Iepriekš minētā kļūda ir izplatīta, ja mēģināt ieslēgt kvotas, izmantojot komandu qoutaon, pirms mēģināt pārbaudīt kvotas statusu, izmantojot komandu 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.

Šī kļūda norāda administratoram, ka kodols neatbalsta vai datorā var būt nepareiza versija (mums ir quota_v1 un quota_v2). Attiecībā uz Ubuntu šādas kļūdas ir izplatītas mākoņa bāzes virtuālajā serverī.

Novērsiet kļūdu, instalējot paketi Linux-image-extra-virtual, izmantojot komandu 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

Kļūda ir ievērojama, ja pašreizējam lietotājam nav atļaujas lasīt kvotas failus. Kā administratoram jums ir jāveic pareizās atļaujas izmaiņas vai jāizmanto sudo tikai tad, kad jums ir jāpiekļūst failiem kvotu sistēmā vai failā.

Raksta augšpusē mēs sākām ar kvotas komandrindas rīkiem un kodola versijas pārbaudi un turpinājām paskaidrot, kā iestatīt uz bloku balstītu kvotu vienam lietotājam un kā izveidot ziņojumu par failu sistēmas kvotu izmantošana.

Rakstā ir aplūkotas arī izplatītākās kļūdas un to novēršana, izmantojot papildu pakotni vai pārbaudot kodola versiju jūsu sistēmā.