Faça um disco rígido dormir e só acorde quando necessário

8

Eu quero conectar outro disco rígido ao meu computador, que eu quero dormir 99% do tempo. Eu só vou usá-lo para algumas coisas, mas eu preciso que ele seja montado o tempo todo.

Para conseguir isso, eu gostaria de saber:

  1. Como faço para registrar quais processos acessam um dispositivo? Eu preciso do log para poder dizer o que está causando o disco rígido para acordar se isso acontecer, então eu posso agir sobre isso.
  2. Há alguma configuração especial do kernel que eu precise fazer para que o dispositivo durma mais?
  3. Como defino os intervalos de sono do disco rígido?
por Deleted 13.12.2009 / 00:17

6 respostas

8

O intervalo de sono é chamado de "APM" (Gerenciamento Automático de Energia) e spindown_time. Isso é controlado com hdparm assim:

hdparm -B 50 -S 36 /dev/disk/by-label/BACKUP-HDD

Isso fará com que seu HDD fique com uma inatividade de ~ 3min.

    
por 13.12.2009 / 16:42
3

link - fuser é um comando do UNIX usado para mostrar quais processos estão usando um arquivo, arquivo sistema ou soquete.

link - obter / definir os parâmetros da unidade ATA / SATA no Linux (procure a opção -S)

link - O pacote sg3_utils contém utilitários que enviam comandos SCSI para os dispositivos. Bem como dispositivos em transportes tradicionalmente associados com SCSI (procure por sg_start)

    
por 13.12.2009 / 00:29
3

btrace ou blktrace (um invólucro de btrace ) rastreia o bloco de E / S do kernel e pode ajudá-lo.

    
por 20.12.2011 / 11:29
3

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 por todas as distribuições a partir de julho de 2014 (ele entrou no teste debian recentemente, então deve ser enviado em 'jessie'), mas é fácil de instalar a partir da origem.

    
por 28.07.2014 / 12:50
2

lsof +D /path/to/mount deve mostrar a você todo processo que tenha qualquer arquivo aberto no caminho indicado.

    
por 13.12.2009 / 15:14
0

Eu tenho problema semelhante. Eu tenho SSD, /dev/sdb , com OS (Linux Mint 18.1 baseado no Ubuntu Xenial) e HDD, /dev/sda , com dados, que eu uso periodicamente. Ambos os discos são criptografados. As partições do disco rígido não estão montadas. E de qualquer maneira, em períodos de vários minutos, o HDD acorda, depois dorme e acorda novamente. Mess.

Aqui está uma pergunta duplicada com resposta útil , que sugere auditd para encontrar o processo de mau comportamento.

apt-get install auditd
auditctl -w /dev/sda -p rwa

Depois, forço o HDD a dormir com hdparm -Y /dev/sda . Então espere até eu ouvir o HDD girar novamente. Em seguida, execute ausearch -f /dev/sda . No meu caso, mostra entradas como as seguintes.

time->Sat Feb 25 12:38:17 2017
type=PROCTITLE msg=audit(1488022697.651:1744): proctitle=2F7573722F6C69622F756469736B73322F756469736B7364002D2D6E6F2D6465627567
type=PATH msg=audit(1488022697.651:1744): item=0 name="/dev/sda" inode=376 dev=00:06 mode=060660 ouid=0 ogid=6 rdev=08:00 nametype=NORMAL
type=CWD msg=audit(1488022697.651:1744):  cwd="/"
type=SYSCALL msg=audit(1488022697.651:1744): arch=c000003e syscall=2 success=yes exit=12 a0=f3fb90 a1=800 a2=7f4745221f64 a3=30 items=1 ppid=1 pid=18520 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="pool" exe="/usr/lib/udisks2/udisksd" key=(null)

A parte relevante é exe="/ usr / lib / udisks2 / udisksd" . Embora eu também tivesse smartmontools , cujo smartd também era o culpado. Desinstalei o smartmontools e parei o udisk2 service com service udisks2 stop . Depois disso, o HDD dorme como esperado.

Note que udisks2 será iniciado automaticamente quando eu, por exemplo, abrir o aplicativo Disks , então eu tenho que pará-lo novamente. Outra desvantagem é que os parâmetros SMART não são monitorados para ambos os discos, o que não é bom, mas como uma solução alternativa.

Além disso, uma coisa que não está clara é que este relatório de erros diz que udisks2 doesn ' t fazer polling disks que agora é feito pelo kernel. Mas a evidência parece indicar o contrário.

    
por 25.02.2017 / 18:26