Quando o HDD acorda?

1

Estou à procura de algum script ou aplicativo pequeno que possa registrar a hora em que um disco sem sistema é ativado.

Não consigo identificar qual aplicativo ou script ativa minha unidade que não é do sistema (que deve estar em suspensão até que eu trabalhe com ela). Eu já configurei o sinalizador noatime, tentei usar o powertop e o iotop para determinar qual aplicativo poderia impedir que ele adormecesse - mas sem resultado.

Então, meu plano é colocar essa unidade no modo sleep (hdparm -Y) e ver a que horas ela é regularmente acordada.

Obrigado por qualquer conselho.

    
por NumberFour 20.11.2010 / 14:41

5 respostas

1

Para descobrir quais arquivos estão sendo acessados (o que pode ajudar a restringir o processo), você pode tentar usar inotifywatch , que pode ser configurado para assistir de forma recursiva aos diretórios abaixo do diretório escolhido. Certifique-se de ler os avisos na página man sobre o uso de --recursive em uma árvore grande.

Quando um evento do sistema de arquivos ocorre em um diretório dessa árvore, ele é gravado e gerado em uma tabela. Você pode usar --timeout para limitar a quantidade de tempo em que o relógio está ativo.

Se os resultados forem consistentes, você poderá executar uma observação não recursiva nos arquivos desse diretório para restringir o arquivo específico.

    
por 20.11.2010 / 17:06
1

Você pode usar hdparm -C para obter o status do modo de energia do disco a qualquer momento. Aqui está um script que lhe daria os horários:

while true; do 
  state='hdparm -C /dev/sda|grep "^ drive"|cut -c 19-'
  echo 'date' $state
  sleep 1
done

Execute o script com sudo , pois hdparm precisa de privilégios de root. Você pode redirecionar o eco para algum arquivo, por exemplo:

echo 'date' $state >> /tmp/sda_state

e, claro, alterar o disco que você está monitorando (usei /dev/sda ) para o que você deseja e o sleep interval, como sleep 120 para consultar a cada dois minutos.

Isso não lhe dá o processo que acorda o disco, no entanto.

Você pode ter problemas com os itens acima devido a alguns bugs:

Se você estiver com problemas com hdparm -C ao ativar sua unidade, tente o seguinte:

smartctl -i -n standby /dev/sda|grep "^Power mode"

Como por man smartctl , quando executado com -n standby , smartctl não deve ativar a unidade. Note também que existem erros com isto:

então tente ver se funciona.

    
por 20.11.2010 / 15:07
1

Veja este relatório de erros do Ubuntu sobre como rastrear isso (e um possível causa).

Respostas curtas: auditctl -w /dev/sdX -p rwa e udisks

    
por 05.02.2011 / 10:17
0

Eu não posso responder a sua pergunta, mas quero apontar em um detalhe que pode ser interessante: vários sata hdd têm um jumper para configurá-los dormindo por padrão (o controlador tem que enviar um comando sata para acordar o disco. [nem todos os controladores podem fazer isso]).

O jumper já está definido?

Barragem

    
por 20.11.2010 / 14:50
0

Como você está no Linux, você pode usar o novo utilitário fatrace , que registra todos os acessos a arquivos e informa qual processo é responsável:

link

Mais informações aqui:

link

Ele faz uso da API de fanotify do linux ( mais detalhes ) disponível desde o kernel linux 2.6.37.

fatrace não é empacotado pela maioria das distribuições a partir de julho de 2014 (ele entrou no teste debian recentemente, portanto deve ser enviado em 'jessie'), mas é fácil de instalar a partir da origem.

    
por 28.07.2014 / 12:52