Há algum tempo precisei implementar quota em um filesystem XFS, ao procurar documentação encontrei pouquíssimas coisas, e o pouco que achei foi em inglês. Depois de uns 3 dias pesquisando consegui implementar a quota sobre o XFS e descobri algumas coisas bem interessantes, como por exemplo a utilização de quotas por projeto.
# xfs_quota -x -c 'state -p' /mnt/hda2
Project quota state on /mnt/hda2 (/dev/hda2)
Accounting: ON
Enforcement: OFF
Inode: #131 (1 blocks, 1 extents)
Blocks grace time: [7 days 00:00:30]
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]
Observe que "Accounting: ON" significa que a partição ainda possui suporte a quota, mas esta não está habilitada "Enforcement: OFF". O parâmetro "-p" indica projeto, este poderia ser "-u" ou "-g" para usuários e grupos respectivamente.
Reativando a quota:
# xfs_quota -x -c 'enable -p' /mnt/hda2
# xfs_quota -x -c 'state -p' /mnt/hda2
Project quota state on /mnt/hda2 (/dev/hda2)
Accounting: ON
Enforcement: ON
Inode: #131 (1 blocks, 1 extents)
Blocks grace time: [7 days 00:00:30]
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]
Observe que "Enforcement: ON" indica que a quota está ativa novamente.
Mais opções de utilização podem ser obtidas através do comando:
# xfs_quota -x -c 'help'
Ou através da documentação do xfs_quota.
Curiosidade:
Ao contrário do EXT3, o XFS não guarda as informações de quota na raiz da partição (no caso do EXT3 existem os arquivos aquota.user e aquota.group na raiz das partições com suporte a quota), ele armazena estas informações juntamente o journal do filesystem.
Bom, isso foi apenas uma breve introdução das possibilidades de utilização de quota no XFS. Não foi explanado nesse artigo, porém ele aceita também quotas baseadas em inode (quantidade de arquivos), aceita exportar e importar as informações de quota para arquivos etc. Mas isso é assunto para outro pra outro artigo.
No mais espero que esse artigo possa auxiliar outras pessoas a utilizarem quota com esse poderoso FileSystem. Para quem tiver sugestões ou críticas (construtivas), fiquem a vontade, enfim ninguém é o dono da verdade.
[3] Comentário enviado por SMarcell em 20/08/2008 - 08:32h
Na minha opinião, o XFS hoje é o melhor "file system" disponível para o Linux! É super veloz na leitura e gravação de dados, conta com excelentes ferramentas administrativas e muito mais. Também é um dos poucos FS que contam com ferramenta de desfragmentação (sim DESFRAGMENTAÇÃO! muitos usuários ainda acreditam no mito de que os sistemas de arquivos disponíveis para Linux não fragmentam). Parábens pelo artigo cara!
[6] Comentário enviado por linux.vitor em 18/12/2008 - 17:52h
Otimo Artigo!
So uma duvida...
Se eu colocar uma quota de 100MB e o usuario exeder essa quota, o servidor vai para de gravar? ou vai dar uma msg de alerta para o usuario ou administrador?
[7] Comentário enviado por joaocdc em 21/12/2008 - 18:31h
Obrigado!
por exemplo se o usuário tem uma quota de 100MB ele vai "enxergar" apenas 100MB disponível nesse diretório, e quando seu espaço acabar, o sistema vai informar que o espaço em disco é insuficiente para gravação, da mesma forma que acontece quando um HD ou Pendrive enche, o administrador pode ver isto utilizando o xfs_quota report, como foi descrito no artigo.
[8] Comentário enviado por rogerio.carvalho em 27/08/2009 - 16:43h
O artigo está muito bom, mas gostaria de complementá-lo com algo que presenciei na distro Opensuse, não sei se mais alguem passou por isso com outra, mas assim que estabeleci as opções no fstab de uquota e gquota para a raiz do sistema ao reiniciar o computador as opções de quota eram consideradas inválidas, após algumas pesquisas na internet notei que a opção rooflags=quota no boot do sistema era necessária para que as quotas fossem de fato aplicadas no sistema para a raiz do sistema.
[10] Comentário enviado por joaocdc em 03/11/2010 - 18:29h
Sim, isso é possível. Utilizando o conceito de quota por projeto (descrito na página 5 do artigo), para isso cada diretório deverá ser tratado como um projeto. Cada diretório com quota controlada, terá uma entrada em "/etc/projid" e "/etc/projects". Como explicado, a quota irá agir independente do usuário que esta fazendo a gravação, nem mesmo o root poderá exceder a quota do diretório, observe que o usuário precisa ter permissão de escrita do diretório, a quota por projeto não afeta em nada o permissionamento de usuários e grupos.