Diskové kvóty s XFS HOWTO
Z Gentoo Linux Wiki
Obsah |
[editovat] Úvod
Diskové kvóty jsou šikovný mechanismus, který brání nenasytným uživatelům, aby vám sežrali úplně celý disk. V Linuxu je pro ně podpora v jádře už od verze 2.2 a souborový systém XFS je umí ukládat přímo v metadatech.
[editovat] Konfigurace jádra
Podporu pro diskové kvóty je potřeba povolit v jádře. Verze 1 je pro kernel 2.2, verze 2 pro kernely 2.4 a 2.6:
File systems --->
[*] Quota support
[*] Quota format v2 support
Stejně tak musí kvóty podporovat souborvý systém. Pro XFS vyberte:
File systems --->
[*] XFS filesystem support
[*] XFS Quota support
Velká poznámka: Kvóty na XFS fungují jinak než na ext2/3 nebo reiserfs. Více informací například na LinuxSoftu a ještě lépe v manuálové stránce xfs_quota.
[editovat] Další programy
Ještě budeme potřebovat odpovídající utilitky. Všechno je v Portage:
# emerge -av quotatool These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] sys-fs/quota-3.12 USE="tcpd -nls" 0 kB [ebuild N ] sys-fs/quotatool-1.4.6 0 kB Total size of downloads: 0 kB Would you like to merge these packages? [Yes/No] y
Také bychom se bez nich obešli - xfs_quota, dokáže zařídit vše potřebné. První pokus jsem ale dělal podle dvou HowTo, kde se o rozdílech s XFS vůbec nezmiňují. Do budoucna zkusím přidat i verzi pouze pro xfs_quota.
[editovat] Připojování souborového systému
neboli soubor /etc/fstab. Ukážu příklad na /home, takže doplníme usrquota do options pro /home
/dev/md6 /home xfs noatime,noexec,nosuid,usrquota 0 0
Partition je na RAIDu, proto to /dev/md6.
V tuto chvíli u mě musel tak jako tak následovat reboot kvůli rekompilaci jádra, takže jsem nemusel řešit znovupřipojení disků. Aby se kvóty projevily bez rebootu, tak spusťe:
# mount -o remount /home
[editovat] Použití kvót
[editovat] Nastavení
Nastavení kvót se podobá editaci crontabu - soubor se otevře ve vašem oblíbeném editoru a po skončení editace se převede do potřebného formátu. Takže po spuštění:
# edquota user
uvidíme něco jako
Disk quotas for user user (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/md/6 16 0 0 5 0 0
Trochu vysvětlivek
- blocks je počet použitých bloků v mém případě 1 blok = 1 kB
- soft je limit, při který je možné překročit, ale očekává se to a uživatel na to bude upozorněn
- hard je limit, který překročit nelze (možná nějakou extrémně silnou modlitbou k Velkému Penguinovi, ale spíš ani to ne)
a inodes je to samé, s tím, že jednotkou jsou inody. Takže nastavte třeba 10 a 12MB (soft a hard), uložte a můžeme vyzkoušet
[editovat] Testování
# su user $ cd ~ $ dd if=/dev/zero of=./testfile bs=1000 count=9500 9500+0 records in 9500+0 records out 9500000 bytes (9.5 MB) copied, 0.032188 seconds, 295 MB/s
Všechno proběhlo v pořádku, nedostali jsme se ještě ani na soft limit. Takže zkusíme dál:
$ dd if=/dev/zero of=./testfile bs=1000 count=11000 11000+0 records in 11000+0 records out 11000000 bytes (11 MB) copied, 0.036485 seconds, 301 MB/s
Opět všechno v pořádku a opět bez varování. Takže je tu někde chybka, kterou budu muset opravit. Ale soft limit je pořád překročitelný, takže je vlastně všechno v pořádku, chybějící varování se dá přežít.
Jelikož jsem prozatím neinstaloval žádný server, kam by měli uživatelé přístup přes shell, tak stejně není kde varování zobrazovat.
Důležitý je poslední pokus:
$ dd if=/dev/zero of=./testfile bs=1000 count=13000 dd: writing `./testfile': Disk quota exceeded 12256+0 records in 12255+0 records out 12255232 bytes (12 MB) copied, 0.040606 seconds, 302 MB/s
Všechno je správně, dd neproběhlo a výsledný soubor má velikost zhruba 12MB. Ještě se na to podíváme příkazem **quota -v**:
$ quota -v
Disk quotas for user user (uid 1000):
Filesystem blocks quota limit grace files quota limit grace
/dev/md/6 11988* 10000 12000 6days 7 0 0
[editovat] Kvóta démon
Kvóta démon aktualizuje informace o využitých kvótach. Na XFS je opět hezké, že fungují i bez něho, ani není potřeba žádný quotacheck (který má v manuálové stránce napsány děsivé věci, jak je nebezpečné ho spouštět na "živých" souborových sytémech atd.). Takže ho můžeme s klidem ignorovat.
[editovat] Závěr
Kvóty na XFS fungují skvěle. Je možné, že na ostatních souborových systémech taky, ale to jsem nezkoušel a zatím to vypadá, že k tomu nebudu mít ani důvod (možná až dorazí Reiser4, což asi jen tak nebude). Další unikátní funkcí XFS jsou tree quotas - kvóty pro adresářový strom, založené na tom, jestli se soubor nachází v určitém umístění na disku. Jsou výborné, pokud například nahráváte soubory přes PHP a vlastníkem je potom apache - tyto soubory se potom nezapočtou do normální uživatelské kvóty. Jejich popis zkusím někdy doplnit.
