Cotas de Disco no Linux
Autor: Blog de Marcus Burghardt | Publicado: 2012-12-16T23:49:00-02:00


Olá!



Uma funcionalidade do Linux não muito usada, mas bem útil em algumas situações é o controle de cotas em disco.



Um bom exemplo para utilização de cotas em disco é um cenário onde as estações de trabalho usam Linux com uma base de autenticação centralizada e perfil remoto por NFS.&nbsp;



Certa vez administrei um servidor nesse cenário.



Esse servidor possuia o diretório /home compartilhado via NFS com os Desktops. Isso tornava o ambiente bem flexível mas tinha um limite de espaço em disco. Sem o uso de cotas um usuário poderia encher seu diretório home com arquivos pesados e impedir os demais usuários de gravarem nos seus respectivos diretórios. Para evitar isso, as cotas em disco são uma ótima escolha.



Nesse post, colocarei os passos para habilitar e configurar cotas. Explicarei alguns comandos e no final há um 
vídeo demonstrando todo o procedimento na prática. 



O ambiente consiste em uma máquina virtual (VirtualBox) com um disco de sistema operacional e um segundo disco de 5 GB com LVM. Foi criado um LV de 2 GB para ser usado nos testes de Cotas.

Durante os testes serão usados dois usuários e um grupo:



Usuários: mbsec e mbsec2

Grupo: mbsec





Vamos lá!!



Basicamente, os passos serão os seguintes:
1 - Habilitar recurso de cotas na partição.
2 - Configurar cotas para um determinado usuário.
3 - Fazer testes de cópia e gravação na partição com esse usuário.
4 - Repetir os passos 2 e 3, porém com cotas de grupos.



Seguem os comandos de forma abreviada:

1 - Primeiramente precisamos habilitar os recursos de cotas na partição.



Para isso, abra o arquivo /etc/fstab e adicione as opções usrquota e grpquota nas opções da partiação.

Veja o exemplo:

&nbsp;/dev/MBSEC/LV1&nbsp; /mnt/Cotas/LV1 ext4 defaults,usrquota,grpquota&nbsp; 0&nbsp; 0



Após adicionar as opções no /etc/fstab, aplique elas remontando a partição:

# mount -o remount /dev/MBSEC/LV1



Para conferir se as opções foram habilitadas, digite o comando mount e verifique os detalhes da partição.



2 - Como as cotas foram recém habilitadas, precisamos criar os arquivos de configurações de cotas.



São dois arquivos. Um deles armazena configurações de usuários e outro de grupo.&nbsp;

Seus nomes são aquota.user e aquota.group, respectivamente. Eles são arquivos binários e não podemos editá-los em texto claro com o vi, por exemplo.



Para criação desses arquivos, a melhor forma é executar o comando quotacheck.

Esse comando verifica as configurações de cotas das partições com o recurso habilitado e grava as informações nos arquivos mencionados acima. Caso esses arquivos não existam, ele cria. : )



Então, digite o seguinte comando:

# quotachek -augv



-a : diz para ele checar todas as partições com cotas habilitadas.

-u : verifica as configurações de cotas para os usuários.

-g : verifica as configurações de cotas para os grupos.

-v : modo verbose, para mostrar detalhes do que ele está fazendo.



Após executar o comando, verifique o ponto de montagem da partição. Deverão aparecer os dois arquivos mencionados acima.&nbsp;

OBS.: Eles sempre são criados na raíz do ponto de montagem da partição.



3 - Agora vamos habilitar o controle de cotas no sistema:

# quotaon -a



OBS.: Se quiser desabilitar é só digitar quotaoff -f



4 - Agora é só editar as cotas e fazer os testes.



O comando para edição de cotas é o edquota. Os principais parâmetros são descritos abaixo:

-u usuário : edita as configurações de cotas de usuário

-g grupo&nbsp;&nbsp;&nbsp; : edita as configurações de cotas de grupo.

-t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : define as configurações de grace time para os usuários.

-t -g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : define as configurações de grace time para os grupos.

-p usuário1 usuário2 : copia as configurações de cotas de usuário1 para usuário2.



5 - Verificar as cotas de usuários e grupos.



Para ver o status das cotas de usuários e grupos, use o comando repquota. Ele mostra um relatório das configurações de cotas. Abaixo seguem as principais opções:

-a : lista configurações de todas as partições que tenham cotas habilitadas.

-u : lista as configurações de usuários (é a opção default).

-g : lista as configurações de grupos.



OBS.: As cotas são atualizadas de tempos em tempos. Se estiver fazerndo algum teste e precisar forçar a atualização das cotas, execute o comando quotacheck.



Ok. Esses comandos acima são o que precisamos conhecer para gerenciar cotas. Agora temos alguns conceitos de cotas.



Quando editar as cotas de um usuário ou grupo, haverão as seguintes colunas:



Filesystem

Indica a partição onde as cotas serão aplicadas.



blocks

Indica a quantidade de blocos atualmente sendo usada por aquele usuário ou grupo.

Considere 1 bloco = 1 KB



soft

Essa é a cota soft de arquivos, ou seja, os usuários podem usar até esse limite sem problemas. Após esse limite eles terão um tempo (grace time) de tolerância para limpar alguns arquivos e ficar abaixo desse limite. Se eles não limparem nada até o grace time expirar, qualquer cópia será bloqueada até que algo seja apagado.



hard

Esse é o limite absoluto que cada usuário ou grupo tem. Em nenhuma hipótese os usuários conseguirão ocupar mais espaço do que definido aqui.



As próximas 3 colunas (inodes, soft e hard) tem os mesmos conceitos explicados acima, porém para o controle de inodes e não de arquivos.



Ok. Agora já sabemos os comandos e os conceitos. Vamos aos testes práticos para resolver as dúvidas remanescentes: