Como evitar a rotação de unidades em standby no desligamento do sistema?

0

Eu tenho um servidor de arquivos com mais de 20 discos rígidos conectados a ele. Como não os acesse com muita frequência, a maioria das unidades são mantidas no modo de "espera". Desta forma, mesmo que o próprio servidor funcione 24x7, as unidades não estão sujeitas a muito desgaste e, na maioria das vezes, estão protegidas contra danos físicos (como sacudir o servidor). No entanto, posso acessar qualquer dado a qualquer momento - basta aguardar alguns segundos para que a unidade necessária aconteça.

O único problema vem com o desligamento do sistema - por exemplo, quando a eletricidade sai e meu no-break é descarregado. Antes do desligamento real, ele começa a girar as unidades uma a uma para desmontar os sistemas de arquivos, o que aumenta o tempo de desligamento de 10 a 20 segundos para vários minutos. E imediatamente depois disso, ele os derruba um por um. Isso tem várias implicações: - Meu no-break deve funcionar por pelo menos dois minutos após o evento "crítico da bateria" - Se isso não acontecer (devido a uma calibração inadequada da bateria, por exemplo), então o no-break morre no meio de um giro de unidade, o que (tanto quanto eu entendo) pode levar a uma morte instantânea (a cabeça volta desajeitadamente no prato e esculpe um arranhão bem na zona de aterrissagem, que por sua vez tritura a cabeça imediatamente.) - Se a energia voltar durante esse período, então UPS-es mais baratos não funcionarão corretamente (e a opção POWEROFF_WAIT na porca é quebrada com o systemd) - Spinup / spindown desnecessários - desgaste nos discos rígidos

Geralmente, isso é inevitável, porque precisamos desmontar os sistemas de arquivos corretamente. No entanto, nesta situação, podemos estar absolutamente certos de que nenhum dado será perdido se não houver, porque se houver algum dado pendente para uma gravação, ele teria sido gravado dentro do tempo limite de suspensão de 3 horas do HDD ou teria acordado a viagem. É muito improvável que eu queira escrever alguns dados críticos na unidade de arquivamento exatamente no momento do desligamento (todos os dados são principalmente de leitura). Por isso, considero seguro o suficiente desligar sem desmontar esses volumes corretamente.

Então, a primeira parte da questão: é possível evitar a desmontagem de certos sistemas de arquivos no desligamento? Talvez faça algum tipo de desmontagem que não acesse as unidades? Talvez até mesmo soltar o link SATA de um script executado antes de desmontar?

Além disso, estou realmente preocupado com uma falha completa no disco, já que tive vários incidentes como esse no passado (as cabeças foram arranhadas por um arranhão na zona de aterrissagem, assim como escrevi anteriormente). Assim, a maioria das unidades são espelhadas com o md RAID1. Além disso, como os dados são principalmente somente leitura, cada matriz possui um volume ativo e um volume principalmente de gravação. Isso significa que, no acesso de leitura, apenas uma das duas unidades será ativada. No entanto, para interromper o RAID, o mdadm ativa as duas unidades para gravar metadados. Isso também não é necessário, porque na próxima inicialização, todos os RAIDs serão reconstruídos imediatamente (estou usando bitmaps internos de intenção de gravação, portanto, no pior dos casos, será necessário adicionar novamente uma unidade).

Portanto, a segunda parte da pergunta: é possível parar um md RAID sem acessar as unidades ou impedir que ele seja interrompido no desligamento?

    
por darkpenguin 11.06.2018 / 16:54

0 respostas