Descobrir o que está girando no disco rígido

10

Eu sou o proprietário de um NAS, executando alguma distribuição Linux. Ele vem com um front-end de administração da web, onde eu posso gerenciar vários serviços, direitos de usuário e também quando ele deve dormir. Meu problema é que, por algum motivo, quando o NAS adormece, o disco rígido liga novamente após alguns minutos. Então ele girará por algum tempo e depois dormirá novamente. Isso continua indefinidamente.

Como posso tentar determinar a causa disso? Eu sou muito novo no Linux, mas consegui obter acesso root e agora tenho uma conexão SSH.

Andreas
fonte
Isso é muito antigo, mas ainda pode ter dicas relevantes.
Gilles 'SO- stop be evil'
Você tem algum plug-in de análise / tipo com a interface web / front-end do NAS? quais são os detalhes da caixa NAS? Eu estou querendo saber se algumas ferramentas systemtap podem ser empregadas lá para verificar a atividade do disco. systemtap está disponível apenas para versões posteriores do kernel do Linux.
Nikhil Mulley
O NAS é uma rede Lacie d2 2. Não há opções de plug-ins, mas acho que eu poderia carregar qualquer coisa nele. Ele roda um servidor Web Green Unicorn. O kernel é 2.6.31.14-svn6790.
Andreas

Respostas:

6

O inotify-tools é uma maneira simples de fazer isso. Existem vários exemplos no site deles que poderiam fazer o que você deseja (veja o exemplo inotifywatch para um exemplo realmente básico).

Patrick
fonte
Atualmente, estou olhando para isso. Primeiro, eu preciso compilar a fonte para uma CPU ARMv5TE. Isso pode revelar-se difícil o suficiente :)
Andreas
6

Tente correr, iotoptalvez? Eu achei útil no passado.

Faheem Mitha
fonte
2

Outra dica: use o Systemtap, existem vários scripts de análise no site do systemtap úteis o suficiente para encontrar o culpado.

Em outro caso,

Se você deseja descobrir qual processo causou a rotação do disco, você pode coletar informações definindo o sinalizador /proc/sys/vm/block_dump. Quando esse sinalizador é definido, o Linux relata todas as operações de leitura e gravação de disco que ocorrem e todas as sujeiras de bloco feitas nos arquivos. Isso torna possível depurar por que um disco precisa girar e aumentar ainda mais a vida útil da bateria. A saída do block_dump é gravada na saída do kernel, e pode ser recuperada usando "dmesg" ou consulte o recurso syslog kern para o destino das mensagens de depuração. Geralmente, deveria ser /var/log/debug. Quando você usa o block_dump e seu nível de log do kernel também inclui mensagens de depuração do kernel, você provavelmente deseja desativar o klogd, caso contrário, a saída do block_dump será registrada, causando atividade de disco que normalmente não existe.

Nikhil Mulley
fonte
2

Você precisa dizer ao kernel para informá-lo de todas as leituras / gravações em discos e, em seguida, é necessário examinar essas informações.

Assim:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

synclimpa todas as gravações pendentes em discos, para que você só veja novas leituras ou gravações.
dmesg -cmostra as mensagens do kernel e as limpa (caso contrário, você também vê as antigas, toda vez que você executa o dmesg). grepfiltra a saída do dmesg para a atividade do disco em que você está interessado. Substitua / dev / sda pelo seu dispositivo real.

Normalmente, uso algo assim para girar o disco e verificar quando ele gira novamente:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

O whileloop verifica o status ativo / inativo do disco a cada 10 minutos. Quando você o ligar, execute a dmesglinha acima para ver whodunnit.

Greg Bell
fonte