Impedindo que a unidade de backup USB hiberne enquanto estiver montada?

Impedindo que a unidade de backup USB hiberne enquanto estiver montada?

Uma vez a cada poucos dias, aparentemente de forma aleatória, nosso backup em um disco rígido USB externo falha em nosso servidor HP DL380 G5 executando CentOS 6.4 de 64 bits. Se eu cd /mnt/backupe executo lsele reclama ls: reading directory .: Input/output error, mas mount -ldenuncia /dev/sda1 on /mnt/backup type ext4 (rw). Quando levo alguém ao local para verificar, eles invariavelmente relatam que a luz da unidade externa está piscando lentamente, o que aparentemente é normal para um estado de suspensão. Mas eu não peço que ele entre em estado de suspensão até que o rsnapshot seja executado, mas o rsnapshot faz com que meu script falhe antes mesmo que isso tenha a chance de acontecer. Ele está tentando economizar energia? Como posso fazer com que não faça isso?

rsnapshot reclama:

/usr/bin/rsnapshot daily: ERROR: /mnt/backup/.snapshots does not exist.

Claro, se a pessoa no local desconectar e reconectar a unidade, posso remontá-la, e .snapshotscertamente existe e o rsnapshot será executado sem erros. Por um tempo até a próxima ocorrência aleatória, claro. A propósito, esta é uma unidade WD Passport bastante nova.

Então, como posso dizer para ele ficar acordado?

Responder1

Se esse desligamento de hardware fosse uma função normal do kernel do Linux, ele o trataria corretamente. Não, acho que é uma surpresa maravilhosa do hardware HP.

Eu sugiro uma solução alternativa trivial. Coloque no crontab:

* * * * * dd if=/dev/sda of=/dev/null bs=512 count=1

Isso será lido na tabela de partições do pendrive a cada minuto. Isso não diminuirá a vida útil do pendrive, pois realizou apenas operações de leitura dele, mas impedirá que seu modo de espera seja ativado.

Em meus sistemas, nunca lidei com esse problema. Se um pendrive foi montado, ele foi montado, e se eu esqueci e tentei usar sua partição após 2 semanas, ele pôde ser ligado, sem um único aviso do kernel.

Responder2

Talvez a melhor coisa para evitar a suspensão do HD e o cache do firmware seja a leitura de um setor aleatório do seu disco:

* * * * * bash -c 'dd if=/dev/sda of=/dev/null count=1 skip=$RANDOM'

Funcionou muito bem para mim.

informação relacionada