Capítulo 6. Implementando Quotas de Disco

O espaço em disco pode ser resrito através da implementação de quotas de disco, para que o administrador do sistema seja alertado antes de um usuário consumir muito espaço ou uma partição ficar cheia.

Quotas de disco podem ser configuradas para usuários individuais e também para grupos de usuários. Este tipo de flexibilidade possibilita dar a cada usuário uma pequena quota para armazenar arquivos "pessoais" (como relatórios e e-mails), enquanto permite que os projetos nos quais eles trabalham tenham quotas maiores (assumindo que os projetos sejam dados para seus grupos).

Além disso, as quotas podem ser definidas não só para controlar o número de blocos de disco consumidos, mas também para controlar o número de 'inodes'. Como os 'inodes' são usados para guardar informações relacionadas aos arquivos, isto permite controle sobre o número de arquivos que podem ser criados.

O RPM quota deve estar instalado para implementar quotas de disco. >>>>>> 1.1.2.4 Para mais informações sobre a instalação dos pacotes RPM, consulte a Parte III.

6.1. Configurando Quotas de Disco

Para implementar quotas de disco, use os seguintes passos:

  1. Habilite quotas por sistema de arquivo modificando o /etc/fstab

  2. Remonte o(s) sistema(s) de arquivo

  3. Crie os arquivos de quota e gere a tabela de uso do disco

  4. Atribua quotas

Cada um destes passos é abordado em detalhes nas seções seguintes.

6.1.1. Habilitando Quotas

Em um editor de texto, edite o arquivo /etc/fstab como root e adicione as opções usrquota e/ou grpquota aos sistemas de arquivo que requerem quotas.

LABEL=/           /               ext3    defaults        1 1
LABEL=/boot       /boot           ext3    defaults        1 2
none              /dev/pts        devpts  gid=5,mode=620  0 0
LABEL=/home       /home           ext3    defaults,usrquota,grpquota 1 2
none              /proc           proc    defaults        0 0
none              /dev/shm        tmpfs   defaults        0 0
/dev/hda2         swap            swap    defaults        0 0
/dev/cdrom        /mnt/cdrom      udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0          /mnt/floppy     auto    noauto,owner,kudzu 0 0

Neste exemplo, o sistema de arquivo /home tem ambos, quotas de usuário e de grupo habilitadas.

6.1.2. Remontando os Sistemas de Arquivo

Após adicionar as opções userquota e grpquota, remonte cada sistema de arquivo cuja entrada fstab foi modificada. Se o sistema de arquivo não estiver em uso por nenhum processo, utilize o comando umount seguido pelo mount para remontar o sistema de arquivo. Se o sistema de arquivo estiver em uso, o método mais facil de remontá-lo é reinicializar o sistema.

6.1.3. Criando Arquivos de Quota

Após remontar cada sistema de arquivo habilitado com quotas, o sistema é capaz de trabalhar com quotas de disco. Entretanto, o próprio sistema de arquivo ainda não está pronto para suportar quotas. O próximo passo é executar o comando quotacheck.

O comando quotacheck examina os sistemas de arquivo habilitados com quotas e cria uma tabela do uso corrente do disco por sistema de arquivo. A tabela é então usada para atualizar o uso do disco na cópia do sistema operacional. Além disso, os arquivos de quota de disco do sistema de arquivo são atualizados.

Para criar os arquivos de quota (aquota.user e aquota.group) no sistema de arquivo, use a opção -c do comando quotacheck. Por exemplo: se as quotas de usuário e de grupo são habilitadas para a partição /home, crie os arquivos no diretório /home:

quotacheck -acug /home

A opção -a significa que todos os sistemas de arquivo não-NFS do /etc/mtab são verificados para saber se as quotas estão habilitadas. A opção -c especifica que os arquivos de quota devem ser criados para cada sistema de arquivo que tenha quotas habilitadas; a opção -u pede a verificação de quotas de usuário e a opção -g pede a verificação de quotas de grupo.

Se nenhuma das opções -u ou -g for especificada, somente o arquivo de quota do usuário é criado. Se especificar somente a opção -g, somente o arquivo de quota do grupo é criado.

Após criar os arquivos, execute o seguinte comando para gerar a tabela de uso corrente do disco por sistema de arquivo com quotas habilitadas:

quotacheck -avug

As opções usadas são as seguintes:

  • a — Verifica todos os sistemas de arquivo montados localmente com quotas habilitadas

  • v — Exibe informações verbais de status enquanto a verificação de quotas procede

  • u — Verifica informações de quotas de disco do usuário

  • g — Verifica informações de quotas de disco do grupo

Após o fim da execução do comando quotacheck, os arquivos de quota correspondentes às quotas habilitadas (de usuário e/ou de grupo) são preenchidos com dados de cada sistema de arquivo habilitado com quotas, como /home.

6.1.4. Atribuindo Quotas por Usuário

O último passo é atribuir as quotas de disco com o comando edquota.

Para configurar a quota de um usuário, execute o seguinte comando, como root:

edquota username

Execute este passo para cada usuário que precise de uma quota. Por exemplo: se uma quota é habilitada no /etc/fstab para a partição /home (/dev/hda3) e o comando edquota testuser é executado, o seguinte é exibido no editor configurado como o default do sistema:

Disk quotas for user testuser (uid 501):
  Filesystem          blocks       soft       hard     inodes     soft     hard
  /dev/hda3           440436          0          0      37418        0        0

NotaNota
 

O editor de texto definido pela variável de ambiente EDITOR é usada pelo edquota. Para mudar o editor, configure a variável EDITOR para a localização exata de seu editor predileto.

A primeira coluna é o nome do sistema de arquivo com uma quota habilitada. A segunda coluna mostra quantos blocos o usuário está usando no momento. As próximas duas colunas são usadas para definir limites de blocos suaves e rígidos para o usuário no sistema de arquivo. A coluna inodes mostra quantos 'inodes' o usuário está usando no momento. As duas últimas colunas são usadas para definir limites de 'inodes' suaves e rígidos para o usuário no sistema de arquivo.

Um limte rígido é a quantidade máxima absoluta de espaço em disco que um usuário ou grupo pode usar. Uma vez alcançado este limite, não é possível usar mais espaço em disco.

O limite suave determina a quantidade máxima de espaço em disco que pode ser usada. No entanto, ao contrário do limite rígido, o limite suave pode ser ultrapassado por um determinado período de tempo. Este período é conhecido como período de carência. O período de carência pode ser expressado em segundos, minutos, horas, dias, semanas ou meses.

Se algum dos valores é 0, este limite não está definido. Altere os limites desejados em um editor de texto. Por exemplo:

Disk quotas for user testuser (uid 501):
  Filesystem          blocks       soft       hard     inodes     soft     hard
  /dev/hda3           440436     500000     550000     37418        0        0

Para checar se a quota foi definida para o usuário, use o comando:

quota testuser

6.1.5. Atribuindo Quotas por Grupo

As quotas também podem ser atribuídas por grupo. Por exemplo: para configurar uma quota para o grupo devel, use o comando (o grupo deve existir antes de configurar a quota):

edquota -g devel

Este comando exibe a quota existente para o grupo no editor de texto:

Disk quotas for group devel (gid 505):
  Filesystem          blocks       soft       hard     inodes     soft     hard
  /dev/hda3           440400          0          0      37418        0        0

Modifique os limites, salve o arquivo e então configure a quota.

Para verificar se a quota do grupo foi definida, use o comando:

quota -g devel

6.1.6. Atribuindo Quotas por Sistema de Arquivo

Para atribuir quotas baseando-se em cada sistema de arquivo habilitado com quotas, use o comando:

edquota -t

Como os outros comandos edquota, este abre as quotas correntes do sistema de arquivo no editor de texto:

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/hda3                     7days                  7days

Altere o período de carência do bloco ou do 'inode', salve as alterações do arquivo e saia do editor de texto.