quinta-feira, dezembro 06, 2007

Usando quotas de disco

Para que o Quota funcione, é necessário instalar os pacotes "quota" e "quotatool", que contém um conjunto de utilitários usados para configurar e verificar as quotas de disco. No Debian, os dois podem ser instalados via apt-get:

# apt-get install quota
# apt-get install quotatool

No Fedora, você precisa apenas instalar o pacote "quota" usando o Yum:

# yum install quota

Em seguida, é necessário carregar o módulo "quota_v2", que ativa o suporte necessário no Kernel:

# modprobe quota_v2

Para que ele seja carregado automaticamente durante o boot, adicione a linha "quota_v2" no final do arquivo "/etc/modules", ou adicione o próprio comando "modprobe quota_v2" no final do arquivo "/etc/rc.d/rc.local" ou "/etc/init.d/bootmisc.sh" (esse passo não é necessário no Fedora Core 5, onde o suporte a Quota vem compilado no executável principal do Kernel).

Com o módulo carregado, o primeiro passo da configuração é alterar a entrada no fstab que monta a partição, de modo que o suporte a quotas de disco seja ativado. Abra o arquivo "/etc/fstab", localize a linha referente à partição e adicione os parâmetros "usrquota,grpquota" logo após o "defaults". Se você está ativando o Quota para a partição "/home", a linha seria parecida com:

/dev/hda2 /home ext3 defaults 0 2

Depois da alteração, a linha ficaria:

/dev/hda2 /home ext3 defaults,usrquota,grpquota 0 2

Ao usar uma partição formatada em ReiserFs, a linha ficaria:

/dev/hda2 /home reiserfs defaults,usrquota,grpquota 0 2


Se o diretório home (ou qualquer outro diretório onde você deseja aplicar as quotas) faz parte do diretório raiz e você deseja primeiro migrá-lo para uma partição separada, o processo é o seguinte:

a) Instale o novo HD, particione-o e formate a partição de destino.

b) Monte a partição de destino em um diretório temporário usando o comando mount, como em:

# mount /dev/sdb2 /mnt/sdb2

c) Certifique-se de que nenhum usuário ou processo está usando o servidor. Se necessário reinicie a máquina e desconecte-a da rede.

d) Copie todos os arquivos do diretório atual para o raiz da nova partição, usando o comando "cp -a" (que copia recursivamente e mantém as permissões de acesso), como em:

# cp -a /home/* /mnt/sdb2/

e) Desmonte a partição e monte-a novamente no diretório de destino, como em:

# umount /mnt/sdb2
# mount /dev/sdb2 /home

f) Verifique se todos os arquivos e diretórios foram copiados para os locais corretos. Montar a partição sobre o diretório antigo não subscreve os arquivos antigos, que ficam apenas ocultos. Se algo der errado, você pode restaurar o diretório anterior simplesmente desmontando a nova partição.

g) Com tudo verificado, adicione a entrada no "/etc/fstab", especificando a partição, o diretório onde ele ficará montada, o sistema de arquivos e os parâmetros do Quota, como em:

/dev/sdb2 /home ext3 defaults,usrquota,grpquota 0 2

h) Reinicie o micro (ou remonte a partição) e continue com a configuração do Quota, seguindo os passos a seguir. :)

Em seguida você deve criar os arquivos "aquota.user" e "aquota.group" (onde ficam armazenadas as configurações do Quota) no diretório raiz da partição. Se você está ativando o Quota para a partição montada no /home, então os dois arquivos serão "/home/aquota.user" e "/home/aquota.group".

Por enquanto, vamos apenas criar dois arquivos vazios, usando o comando touch. É importante que ambos fiquem com permissão de acesso "600", de modo que apenas o root possa acessá-los ou fazer modificações. Os comandos são executados com a partição montada:

# touch /home/aquota.user
# chmod 600 /home/aquota.user
# touch /home/aquota.group
# chmod 600 /home/aquota.group

Depois da configuração inicial, é recomendável reiniciar o servidor, para que os scripts de inicialização se encarreguem de formatar os dois arquivos, montar a partição usando os parâmetros corretos e outros passos necessários.

Naturalmente, é possível também aplicar as alterações sem reiniciar o servidor. Nesse caso, é necessário fechar todos os programas e serviços que estejam acessando arquivos dentro da partição e remontar a partição (para que sejam aplicados os parâmetros incluídos no fstab) usando o parâmetro "-o remount" do mount, como em:

# mount -o remount /home

Para verificar se a partição foi montada corretamente, usando os parâmetros do quota, execute o comando "mount" (sem parâmetros) e veja se o "usrquota,grpquota" adicionados ao fstab aparecem nas propriedades da partição:

# mount

/dev/hda1 on / type ext3 (rw)
...
/dev/hda2 on /home type ext3 (rw,usrquota,grpquota)

Os arquivos "aquota.user" e "aquota.group" devem ser formatados em um formato especial antes de poderem ser usados pelo quota. Se você reiniciou o sistema depois de criar os arquivos, provavelmente o script de inicialização do quota já deve ter feito isso, caso contrário é necessário rodar o comando "quotacheck" para que ele faça seu trabalho:

# quotacheck -vagum

O quotacheck faz a verificação inicial dos arquivos e usuários, gerando uma tabela oculta que lista os arquivos de posse de cada usuário. Esta tabela é usada pelo Quota para checar o espaço ocupado por cada um e é atualizada em tempo real conforme novos arquivos são gravados.

Da primeira vez que ele é executado, exige uma mensagem de erro avisando que os arquivos "aquota.user" e "aquota.group" estão danificados (afinal, eles são arquivos vazios), mas isso é esperado. A função dele é justamente corrigir o problema:

quotacheck: WARNING - Quotafile /home/aquota.user was probably truncated. Cannot save quota settings...
quotacheck: WARNING - Quotafile /home/aquota.group was probably truncated. Cannot save quota settings...
quotacheck: Scanning /dev/hda2 [/home] done
quotacheck: Checked 36 directories and 331 files

Depois de executá-lo, você perceberá que os arquivos "aquota.user" e "aquota.group" aumentaram de tamanho, indo dos zero bytes iniciais para alguns kbytes, sinal de que o quotacheck fez seu trabalho:

# ls -lh /home

-rw------- 1 root root 7,0K 2008--01-25 08:24 aquota.group
-rw------- 1 root root 7,0K 2008--01-25 08:24 aquota.user
...

Com tudo pronto, ative o uso das quotas usando o comando "quotaon", seguido da pasta onde está montada a partição, como em:

# quotaon /home

Se precisar desativar temporariamente o uso das quotas, use o comando "quotaoff", como em:

# quotaoff /home


1 Comments:

Anonymous Anônimo said...

Para sua informação este blog é simplesmente para eu guardar artigos bons e que eu utilizei e que eu venha a utilizar novamente... Assim ao invés de eu guardar o link em um "Favoritos" eu guardo eles aqui sendo que o Artigo no blog do autor pode ser apagado como já aconteceu e eu fiquei sem saber onde conseguir a documentação para ajuda. Se eu puder posso bloquear acesso a este para que só eu possa acessá-lo.

Obrigado! Há! Este blog é uma copia automática de um outro. (back-up)

4:35 PM  

Postar um comentário

<< Home