domingo, 16 de dezembro de 2012

Cotas de Disco no Linux

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. 

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:
 /dev/MBSEC/LV1  /mnt/Cotas/LV1 ext4 defaults,usrquota,grpquota  0  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. 
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. 
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    : edita as configurações de cotas de grupo.
-t               : define as configurações de grace time para os usuários.
-t -g           : 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:



Nenhum comentário:

Postar um comentário