Skip to content

Kvóty na adresář? S pomocí XFS samozřejmost.

Pokud potřebujeme na svém serveru, desktopu či diskovém poli manipulovat s místem, které přidělujeme uživatelům respektive jejich datům, máme několik možností.

LVM – umožňuje flexibilně manipulovat s vytvořenými volumy, které lze zvětšovat i zmenšovat. Vhodné třeba na virtualizaci kdy se lvm oddíl podstrčí virtuálu jako disk a tento lze pak zvětšit, pokud to umožňuje filesystém v daném virtuálu. Hodí se tedy spíše na větší instalace a není vhodné například na kvóty emailových schránek.

Ext3/4 kvóty – po úpravě fstabu – přidáním flagu usrquota,  lze na ext filesystémech zapnout podporu kvót. Tato podpora je ale realizována tak, že je závislá na konkrétních uživatelských účtech. To znamená, že pokud máme například namountovaný oddíl /data s podporou kvót a na tomto oddílu máme adresáře A, B, C a uživatele v systému Jirka, Franta, Pepa a tito uživatelé mohou zapisovat do všech tří adresářů, nelze jim nastavit různou velikost kvóty na různé adresáře. Kvóta se tedy v rámci filesystému počítá vždy celkově a to je nevýhodné například v situaci, kdy takto chceme omezovat emaily nebo databáze, které bývají spravovány pod jedním účtem.

XFS – náš vítěz. Tento filesystém vyvíjí firma SGI. V roce 1994 se dostal do produkce a v roce 2001 ho SGI uvolnila pod licencí GPL, takže se na jeho vývoji může podílet celá GNU/Linuxová komunita. XFS je navržen na práci s objemnými daty, například videa, image disků, ale dobře pracuje i s množstvím menších souborů. XFS umí ještě další typy kvót, mě se ale nejvíce hodí právě tento typ.

Nejprve je nutno nastavit fstab – přidat flag prjquota:

UUID=61247b20-bbca-4b8c-b713-7fc4dce5abd5 /               xfs     defaults,prjquota        0       1

Poté je potřeba v /etc vytvořit dva soubory a to projects a projid.

Příklad souboru projects:

1:/mail/linuxway.cz/honza
2:/mail/linuxway.cz/martin

Soubor se skládá z UID a cesty – rootu – kde začíná platit nastavení kvóty pro dané UID

 

Příklad souboru projid:

honza@linuxway.cz:1
martin@linuxway.cz:2

Tento soubor překládá UID na název či jméno projektu nebo uživatele, aby se pak dalo snáze manipulovat s nastavením a nemuseli jsme si pamatovat, jaké UID komu patří. V tomto případě nám jako název uživatele či projektu slouží emailová adresa.

Nyní vytvoříme kvótu pro uživatele honza:

 

xfs_quota -x -c "project -s 1" /
xfs_quota -x -c "limit -p bhard="209715"K 1"

Zde jsme uživateli 1 (honza) přiřadili 200MB velkou schránku („209715″K říkáme xfs, že chceme nastavit na 209715 kilobytů čili 200M). Také jsme tento limit nastavili jako hard, takže po dosažení dané velikosti bude veškerý další zápis zamítnut.

Přehled všech kvót a projektů získáme takto:

xfs_quota -x -c 'report' /

Všechny zde uvedené příkazy počítají s nastavením pro / tzn. že provozujeme kvóty a xfs přímo na rootu. Pokud jsou kvóty například jen na určité partišně přimountované někde v /mnt/data… je potřeba upravit cesty v daných příkazech.
Pokud je uživatelů více, lze si snadno vyrobit tabulku např. v mysql nebo jiném sql a data z ní pravidelně tahat cronem včetně úprav kvót pro již existující uživatele.

Nutno dodat, že nástroje pro správu xfs byly v debianu squeeze poměrně zabugované, od wheezyho, který je nyní jako stable již není problém. XFS se i nadále vyvíjí, je optimalizováno a vylepšováno. V každém případě je potřeba pro provoz XFS používat ups k pc, protože pády tomuto filesystému příliš nesvědčí.

One thought on “Kvóty na adresář? S pomocí XFS samozřejmost.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Time limit is exhausted. Please reload the CAPTCHA.