O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas.
Veja o material atualizado diariamente do BR-Linux em http://br-linux.org
Gerenciamento de quotas de disco no Linux
Publicado em 15 de fevereiro de 2004
Excelente howto de João Alexandre Lobo Marques (alex_lobo@terra.com.br) ensinando configurar e habilitar o "Gerenciamento de quotas de discos no Linux". Se você tem problemas com usuários usando desgovernadamente os espaços em disco do seus servidores, não deixe de ler este artigo. Gerenciamento de quotas de disco no Linux Por: João Alexandre Lobo Marques alex_lobo@terra.com.br Baseado no capítulo referente a quotas de disco
Com o sistema de QUOTAS de disco nativo do Linux, você poderá gerar restrições por partição para cada usuário do seu sistema ou mesmo para grupos de usuários. Com este tutorial iremos apresentar um exemplo de configuração para mostrar como é simples sua utilização. O sistema utilizado foi o Red Hat 9.
Imagine que seu servidor de arquivos possua duas partições, sendo uma padrão para os arquivos de inicialização do Linux (/boot), a segunda para o sistema e aplicativos ( / ) e uma terceira para os arquivos dos usuários, tendo como raiz o diretório /home. Teríamos, então, a seguinte tabela de particionamento:
Neste momento não nos interessa o tamanho de cada partição. O problema é que alguns usuários estão utilizando abusivamente o servidor, salvando toneladas de vídeos e músicas que não tem nada a ver com sua empresa. E este problema, certamente tenderá a crescer a ponto de faltar espaço no seu servidor para arquivos úteis ao trabalho da empresa. Para não ter que ficar monitorando o tamanho das pastas dos usuários como uma câmera do Big Brother, a solução será oferecer uma fatia do disco com tamanho limitado para cada usuário. Esta divisão deverá ser individual, afinal, sem favorecer ninguém, mas o pessoal da informática normalmente precisa de mais espaço que os demais colegas. ;-) Assim, você deverá, antes de tudo, fazer um projeto dos tamanhos das fatias que cada usuário deverá receber no disco.
O suporte ao sistema de QUOTAS é nativo do kernel do próprio LINUX. Se você visualizar nas opções de FILESYSTEM do CÓDIGO FONTE do Kernel, Obs: Para visualizar esta opção no Kernel, certifique-se que você possui os fontes do kernel instalados e então utilize os comandos: 1 - Modo caractere: 2- Modo gráfico: Em ambas as opções procure pela seção FILESYSTEM e confira a opção de suporte a QUOTA. Se sua distribuição não possui esta característica você pode aplicar um patch no kernel, ativar a opção, recompilar, etc, etc, etc, mas este artigo não visa cobrir esta trabalheira toda... Uma sugestão bem pessoal: para servidor de arquivo em produção, coloque uma distribuição que já tenha todas as opções já compiladas no kernel.
Voltando ao nosso problema das quotas do disco. Temos três partições, porém, a princípio iremos configurar o controle de quotas apenas para a partição dos usuários: /home. Importante: Um ponto fundamental para o entendimento do sistema de quotas é que ele é configurado POR PARTIÇÃO. Não se esqueça disso. Para que o sistema de quotas seja suportado por uma partição é necessário que esteja integrado com o momento da montagem desta partição. Ou seja, devemos informar no momento da montagem da partição que ela suportará um sistema de quotas. A forma mais adequada de utilizarmos as quotas sempre no sistema é ativarmos as quotas sempre que montarmos a partição. O arquivo que mantém a tabela de partições que são montadas durante a inicialização do sistema chama-se: /etc/fstab. Abaixo está um exemplo de fstab para o nosso problema:
Para ativar a quota na partição, deve ser inserida a opção "usrquota", resultando num arquivo fstab conforme mostrado a seguir:
Com esta alteração você deve remontar a partição reconfigurada. Você pode reiniciar seu computador ou apenas usar o comando: # mount -o remount /home 3.2 - PARA CONTROLE POR GRUPOS DE USUÁRIOS Para ativar a quota na partição, deve ser inserida a opção "grpquota", resultando num arquivo fstab conforme mostrado a seguir:
Com esta alteração você deve remontar a partição reconfigurada. Você pode reiniciar seu computador ou apenas usar o comando: # mount -o remount /home
Dentro da pasta raiz da partição configurada deve ser criado um arquivo chamado: aquota.user com permissões de leitura e escrita somente para o root. Use os comandos a seguir: # touch /home/aquota.user Obs: Caso você queira utilizar o controle de quotas de disco por grupos de usuários, deverá ser criado um arquivo adicional: # touch /home/aquota.group Após criar o arquivo, você deverá utilizar um programinha do sistema da seguinte forma: # quotacheck -vagum Da primeira vez que você executar o quotacheck deverá aparecer um aviso (veja abaixo) de arquivo truncado, mas não se preocupe, daí em diante não haverá mais problemas. quotacheck: WARNING - Quotafile /home/aquota.user was probably truncated. Can't save quota settings...
Suponha que o nosso sistema possua um usuário chamado: "tux". Para manipular o sistema de quotas dos usuários, é utilizado o comando: edquota com a seguinte sintaxe: # edquota -u tux Este comando irá abrir o editor vi com uma lista de campos, conforme mostrado a seguir: Disk quotas for user tux (uid 501):
Filesystem é a partição que está sendo monitorada pelo sistema de quotas. No nosso exemplo, o /home está na partição /dev/hda2; Blocks mostra o número de blocos (simplificando, o número de KiloBytes) atualmente utilizados pelo usuários; Inodes Pulando para o quinto campo, o sistema de arquivos do Linux possui uma tabela que possui todas as informações de todos os arquivos lá existentes. Cada arquivo é referenciado por um inode e o sistema de quotas permite que você limite o número de inodes que o usuário pode utilizar. Obs: Para simplificação, nos preocuparemos apenas com o gerenciamento de quotas por uso em Kbytes. Normalmente, estaremos preocupados em colocar 5Mbytes ou 2 Mbytes para cada usuário e não com os inodes que eles utilizarão. Outros campos: 1 - SOFT LIMIT é um limite básico que cada usuário pode utilizar. Caso você utilize o item 2 (GRACE PERIOD), o usuário terá um prazo para limpar seus arquivos, caso contrário, não serão permitidas novas gravações na sua área de disco. 2- GRACE PERIOD é um período de tolerância básico, dentro do qual o usuário recebe avisos que ultrapassou seu SOFT LIMIT e que deve tomar alguma providência. 3 - HARD LIMIT é o limite final de tamanho para o usuário. Normalmente é um valor maior que o SOFT LIMIT, mas não muito. Ao ser atingido o HARD LIMIT, o sistema não mais permitirá gravação de arquivos, independente do valor do GRACE PERIOD. Com isso em mente, voltamos às colunas do comando edquota: soft a terceira coluna do arquivo representa a quantidade, em KBytes, do SOFT LIMIT. hard a quarta coluna representa a quantidade em KBytes, do HARD LIMIT. A sexta e a sétima colunas, denominadas também como soft e hard dizem respeito aos limites, em inodes, para o usuário. Como não utilizaremos este parâmetro, podemos deixar os valores padrões (0). No nosso exemplo, projetamos que o usuário tux terá direito a 3 MegaBytes de dados (SOFT LIMIT), com uma tolerância máxima de 4 MegaBytes (HARD LIMIT). Com isso, editamos os campos soft e hard, resultando no seguinte: Disk quotas for user tux (uid 501):
Salve o arquivo no vi.
Para ajustar este parâmetro, entre com o comando: # edquota -t Também será aberta um editor vi com o arquivo no seguinte formato: Grace period before enforcing soft limits for users:
Fique atento que a unidade do período pode ser: dias (days), horas (hours), minutos (minutes) ou segundos (seconds) e deve ser configurado sem espaços entre o número e a unidade do período. Isto é: deve ser colocado 7days e não 7 days. Salve o arquivo e pronto.
Existem duas verificações interessantes para as quotas criadas. 1 - A primeira é com o comando: # quota Este comando irá responder com a situação atual do uso de disco do usuário atualmente logado no sistema. Se quiser verificar a situação de outro usuário (por exemplo, do usuário tux): # quota tux
# repquota /home que irá listar um relatório geral dos usuários com o seguinte formato: Report for user quotas on device /dev/hda2
O sistema operacional não faz uma checagem de quotas em todas as vezes que um usuário cria um novo arquivo. É necessário que o sistema seja atualizado freqüentemente (na verdade, a freqüência depende da sua necessidade de monitoramento do espaço utilizado no disco). Para processar os arquivos aquota.user e, se for o caso aquota.group deve ser usado o comando: # quotacheck -vagu O ideal é que você crie um agendamento através do cron com este comando.
O sistema de quotas é muito útil para os administradores de redes que possuem muitos usuários. É papel básico do sistema servidor de redes oferecer esta funcionalidade. Sistemas como Netware ou Windows implementam estas características com muita simplicidade em seus serviços de diretórios. O Linux também não fica atrás, principalmente se você utilizar um software como o WEBMIN que oferece uma interface simples e funcional para a manutenção no dia a dia. Com este tutorial, espero ter aproximado um pouco mais dos administradores de sistemas Linux esta excelente funcionalidade. Autor: João Alexandre Lobo Marques Comentários para "Gerenciamento de quotas de disco no Linux"
» Postado por: Tarcísio C. Espínola em fevereiro 24, 2004 07:45 PM, 200.217.87.:
» Postado por: Luciano em fevereiro 25, 2004 01:54 PM, 200.141.250:
» Postado por: Jean em fevereiro 26, 2004 09:44 AM, 200.194.106:
» Postado por: Eduardo em fevereiro 27, 2004 02:47 PM, 200.217.40.:
» Postado por: Wellerson em fevereiro 29, 2004 08:12 PM, 200.150.55.:
» Postado por: Beto em maio 14, 2004 08:27 PM, 201.8.109.1:
» Postado por: Tiago Presoto em maio 19, 2004 10:30 AM, 200.206.72.:
Antes de comentar...
- Preserve a qualidade desta discussão - Leia os Termos de Uso. - Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum. - Mantenha o foco nos argumentos e no assunto - Não faça ataques pessoais. - Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro - Não seja um e-mala ;-) ![]() Envie seu comentário
|