Pular para o conteúdo

Utilizando quota em XFS

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.
João Paulo de Lima Barbosa joaocdc
Hits: 52.647 Categoria: Linux Subcategoria: Sistema de Arquivos
  • Indicar
  • Impressora
  • Denunciar

Parte 3: Formatando as partições e ativando quotas para usuários e grupos

Todo o restante do artigo é igual para todas as distribuições (Debian, CentOS, Slackware).

Formatando a partição:

# mkfs -t xfs /dev/hda2
ou
# mkfs.xfs -f /dev/hda2

Criação do ponto de montagem:

# mkdir /mnt/hda2

Montando a partição:

Observe os parâmetros pós o "-o" (uquota e gquota), estes habilitam a quota por usuário e por grupo, caso alguém não queria utilizar quota por grupo ou por usuário, simplesmente não coloque o parâmetro que o ativa, ou coloque, mas não defina quota futuramente (observação, caso não vá utilizar, é preferível não colocar, pois evita que o sistema tenha que checar a quota, pois quotas não especificadas ficam sem limites).

# mount -t xfs /dev/hda2 /mnt/hda2/ -o uquota,gquota

Para verificar se a partição está montada e com o devido suporte a quota, pode-se utilizar o comando mount:

# mount
...
/dev/hda1 on / type ext3 (rw,errors=remount-ro)
...
/dev/hda2 on /mnt/hda2 type xfs (rw,uquota,gquota)
...

Obs.: Pode-se ainda (e é recomendado) fazer a montagem através da tabela de partição do sistema /etc/fstab, para que esta não se perca quando o sistema for reinicializado.

Apesar do sistema estar montado com suporte a quota (Accounting: ON), pode ser que esta não esteja ativa, isso mesmo, o xfs permite que a quota seja ativa e desativada em tempo de execução do sistema, porém no caso do Debian, se desativá-la (Enforcement: OFF), para que esta se reative foi necessário reiniciar o sistema, portanto se você estiver tentando ativar a quota em uma partição XFS já existente (que você não tenha formatado agora), você deverá reiniciar o sistema após ter alterado o fstab. Para os outros sistemas (CentOS e Slackware) não houve esse inconveniente.

Para checarmos se a partição está com suporte a quota (Accounting: ON), e se esta está ativa no momento (Enforcement: ON/OFF), utilizamos o programa xfs_quota.

# xfs_quota -x -c 'state'
User quota state on /mnt/hda2 (/dev/hda2)
  Accounting: ON
  Enforcement: ON
  Inode: #131 (1 blocks, 1 extents)
Group quota state on /mnt/hda2 (/dev/hda2)
  Accounting: ON
  Enforcement: ON
  Inode: #132 (1 blocks, 1 extents)
Project quota state on /mnt/hda2 (/dev/hda2)
  Accounting: OFF
  Enforcement: OFF
  Inode: #132 (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]

O programa xfs_quota é, na verdade, uma aplicação de "prompt interativo". O uso do parâmetro "-c" fez com que a instrução "state" fosse executada nesse prompt automaticamente, sem essa opção seríamos remetidos a um prompt, se quiséssemos isso poderíamos ter executado apenas "xfs_quota -x" e cairíamos no prompt e lá digitaríamos "state" ou qualquer outro comando necessário. O parâmetro "-x" indica que desejamos utilizar um prompt avançado (com mais comandos), se nós o omitíssemos, alguns comandos do prompt xfs_quota não estariam disponíveis.

   1. Migrando para XFS, cadê a Quota?
   2. Instalando os pacotes necessários
   3. Formatando as partições e ativando quotas para usuários e grupos
   4. Definindo quota para usuários e grupos
   5. Definindo quota por projeto (diretório)
   6. Desativando e reativando a quota (Enforcement)
Nenhum artigo encontrado.

Instalação dual boot UEFI Linux Mint/Ubuntu com Windows 8.1/10

Removendo vírus de Windows com LiveCD GNU/Linux

Montando Volumes no Docker

USB-ZIP - Emulando Zip Drive em Pendrive

Inserindo o recurso de lixeira no Samba

#1 Comentário enviado por celioishikawa em 18/08/2008 - 13:52h
muito bom o artigo!
#2 Comentário enviado por educanario em 18/08/2008 - 14:46h
Excelente artigo.
#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!


#4 Comentário enviado por joaocdc em 20/08/2008 - 11:55h
Obrigado a todos!
Concordo plenamente com o colega acima (SMarcell), o XFS é um dos melhores filesystem da atualidade.
Abraços
#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?

Obrigado.

Att
Vitor
#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.

Att. João
#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.

Att.
Rogerio
#9 Comentário enviado por raickonen em 03/11/2010 - 13:04h
Preciso definir quota para vários diretorios, cada um com sua quota individual. Isso é possivel?
#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.
#11 Comentário enviado por rlimao em 28/08/2013 - 14:37h
Cara....Parabéns pelo artigo, muito esclarecedor.

Fiquei com uma duvida: Se eu criei uma cota de 100 mb para o usuário e ele precisar aumentar esse limite, posso utilizar o mesmo comando de criação?


att.

ricardo lima
#12 Comentário enviado por joaocdc em 29/08/2013 - 16:34h
Oi Ricardo,

Exatamente, você utiliza o mesmo comando para alterar a quota do usuário, exemplo:

# xfs_quota -x -c 'limit -u bsoft=100M bhard=100M joao' /mnt/hda2

Att.
#13 Comentário enviado por charlesbrownrj em 18/04/2018 - 21:10h
Parabéns!!!
O melhor artigo que encontrei sobre xfs_quota, muito bom!!!

Contribuir com comentário

Entre na sua conta para comentar.