Descobrir porque estou ultrapassando a cota do disco rígido

7

Eu sugo com a administração do sistema, então se eu estou entendendo algo errado, por favor me avise.

Aqui está algo que me deixa louca. No trabalho, temos um grande servidor NFS que atende a todos os funcionários da nossa empresa. Todo mundo tem um certo número de GBs que podem gravar nele. Frequentemente recebo erros de "cota excedida", porque executo alguns programas que geram muitos arquivos temporários e os excluo, mas antes que possam excluí-los, eles atingem a cota.

Depois de conversar com nossos administradores de sistema, descobri que minha cota já foi aumentada para muito além do que eu preciso para esses testes, mas parece que estou gastando essa cota em outros lugares além da minha pasta pessoal. O administrador do sistema me explicou que todos os arquivos no servidor NFS que possuem meu nome de usuário como proprietário contam contra minha cota.

Eu queria obter uma lista desses arquivos para poder excluir muitos arquivos de que não preciso mais. Mas ele me disse que a única maneira é fazer uma busca em todo o sistema de arquivos de toda a empresa, passando pelas pastas domésticas de todos. isto é, um processo demorado. Ele está fazendo essa busca agora.

O que soa estranho para mim é o seguinte: quando o Linux me dá um erro de "cota excedida", parece ser capaz de saber instantaneamente que estou ultrapassando minha cota. Não é um processo demorado. Então, como é que não consigo obter a lista de arquivos que são contados em minha cota, sem fazer uma pesquisa longa?

    
por Ram Rachum 06.11.2016 / 09:05

2 respostas

9

Posso pensar em duas coisas que podem estar causando seus problemas de cota.

Primeiro, você deve saber que as cotas são implementadas criando um pequeno banco de dados no sistema de arquivos, que é atualizado toda vez que um arquivo é criado, modificado ou excluído. (Na verdade, existem dois deles, um para cotas de usuários e um para cotas de grupo.) Quando as cotas foram ativadas pela primeira vez, esse banco de dados era inicializado , verificando o uso de cada arquivo no sistema de arquivos e registrando os resultados por usuário e / ou por grupo nesses arquivos. Como eles são mantidos atualizados pelo driver do sistema de arquivos toda vez que há atividade, consultar o uso atual da cota de um usuário é rápido.

Existe um problema. O banco de dados de cotas pode ser corrompido se o sistema de arquivos não for montado corretamente, por exemplo, se houver um desligamento strong. Quando isso acontece, o administrador deve execute quotacheck para verificar e reconstruir o banco de dados ao reinicializar o sistema, mas isso pode não ter acontecido. Ou raios cósmicos ou falha no disco rígido podem corrompê-los.

A execução de quotacheck , no entanto, exige que o sistema de arquivos seja desmontado ou, no mínimo, montado somente leitura, portanto, ele estará indisponível para uso enquanto o banco de dados de cotas estiver sendo reconstruído. Isso pode levar muito tempo, então é algo que infelizmente raramente é feito. O administrador do servidor NFS deve agendar o tempo de inatividade para verificar as cotas do sistema de arquivos e deve considerar a possibilidade de alterar os procedimentos para que quotacheck seja sempre executado durante a reinicialização após uma falha.

Segundo, com base na sua descrição, é possível que você tenha atingido a cota do inode. Além de restringir a quantidade de espaço em disco, as cotas também podem restringir o número de arquivos que podem ser criados. Se você criar um grande número de arquivos temporários, isso pode ser o que está acontecendo. Você (ou o administrador do servidor NFS) também deve verifique isso . Execute quota -s para ver o que o banco de dados acha que você usou em comparação com seus limites.

    
por 06.11.2016 / 10:05
1

Além da possibilidade de corrupção, que @MichaelHampton sugere, aqui estão alguns princípios básicos:

  • verifique em / tmp. Às vezes, alguns processos são confusos ou são interrompidos ou eliminados - arquivos de sessão, instaladores / descompactadores, trabalhos de impressão e afins. Procure arquivos bloqueados ou ocultos (ponto). Se você encontrar algo, não o exclua, use timestamps para descobrir o que o criou e quando.

  • Além disso, ps -edalf e revise sua lista de processos e todos os seus argumentos de arquivo e veja se algo está criando arquivos grandes indesejados ou em áreas inesperadas.

  • "Parece que estou gastando essa cota em outros lugares além da minha pasta pessoal" Bem, você sabe aproximadamente qual diretório está ocupando o espaço, ou é completamente cego?

  • Descobrir se você tem muitos arquivos / diretórios pequenos ou alguns arquivos grandes ou ambos. Tente fazer uma estimativa rápida com um du -sh ... ou find -size <threshold> ... Para ver se arquivos mais recentes estão sendo criados, touch um arquivo sentinela quando você sair à noite e, no dia seguinte find ... -newer SENTINEL para ver se algo foi criado . Você poderia cron que correr no meio da noite.

  • Eu suponho que um método totalmente à prova de falhas, se tudo mais falhar (o que é impossível conceber), seria fazer com que eles criassem temporariamente um segundo homedir para você e, gradualmente, clonar sua configuração, anote aplicativos que você habilita e, em seguida, ver quando as coisas vão explodir. (Triagem de busca binária, você sabe.)

por 06.11.2016 / 13:43