Temos um sistema que usa um SSD (Samsung 860 Pro de 4 TB) que ligamos por 10 minutos para gravar dados e depois desligamos a cada hora, 24 horas por dia, 7 dias por semana, por cerca de seis meses, por meio de um sistema Linux. Ligamos manualmente a energia do inversor e esperamos que o sistema operacional veja o inversor montado. Isso geralmente leva de 12 a 22 segundos para ser feito. Consideramos uma falha na montagem se a unidade não aparecer após 30 segundos de espera para montagem. A primeira vez que fizemos isso, tudo estava funcionando bem. Fizemos uma segunda rodada com a mesma unidade, mas as unidades pararam de ser montadas em menos de 30 segundos, após cerca de 1 mês a 3 meses entre os 5 sistemas que executamos.
Basicamente, no primeiro turno, o drive teria sido ligado e desligado pelo menos 4.320 vezes. Como a unidade não foi montada de forma consistente durante a segunda rodada de testes, parece haver entre 5.000 e 7.000 ciclos de energia no total. Todas as unidades ainda estarão funcionando se você esperar mais de 30 segundos, mas elas não serão mais consideradas montadas de forma confiável em nosso sistema.
Não consigo encontrar nenhuma especificação de unidade SSD em relação ao ciclo de energia e se há um limite para fazer isso. O drive 860 Pro de 4 TB era muito caro quando o compramos (> US$ 1 mil) e supostamente muito confiável com ciclos de programa/apagamento (P/E) muito altos. No entanto, não há especificações sobre o ciclo de energia.
O ciclo frequente de energia é ruim para a unidade SSD? Eu sei que a maioria das pessoas provavelmente não faz isso e a unidade provavelmente não é desligada e ligada mais de uma vez por dia. basicamente executamos 12 anos de ciclos de energia diários em 6 meses.
Edição 1 (informações adicionais dos comentários): Estamos funcionando com baterias , então o uso de energia é muito limitado.
Edição 2 (informações adicionais dos comentários): A unidade SSD está conectada a um RPi 2B v.1.2 usando um cabo USB 3 para SATA modificado. Temos um controle de alimentação externo para ligar e desligar o cabo. Basicamente, o Pi liga o SSD e monitora se o SSD está conectado a uma porta USB específica e então tenta montar a unidade. Isso é feito por meio de um script bash e executa um loop de montagem com atraso de 1 segundo até que o SSD possa ser acessado. Damos até 30 contagens de loop (atraso de 1 segundo cada após uma falha na montagem).
Edição 3 (informações adicionais dos comentários): O procedimento de desmontagem é desmontar a unidade e desligar a energia. Verificamos que os dados estão completamente gravados antes de desmontar e desligar. O tamanho dos dados é um arquivo compactado, normalmente em torno de 1,2 GB a 1,6 GB. Normalmente é apenas um único arquivo em uma hora e leva cerca de 10 minutos para compactar o arquivo dos dados brutos em um cartão SD e transferi-lo para o SSD. Portanto, o SSD fica ligado por 10 a 12 minutos antes de ser desligado.
Editar 4 Depois de verificar mais unidades, encontrei uma que já possui mais de 13.000 ciclos de energia e ainda está montada da maneira que desejamos. Estou esperando para recuperar as unidades com falha para ver o que está acontecendo com elas. Sabemos que os usamos em pelo menos duas execuções anteriores, então espero ver mais de 10 mil ciclos de energia para cada um deles.
Editar 5 O tipo de arquivo no SSD é Ext4.
Em vez de responder à sua pergunta, sugiro que você reavalie como controlar a energia da(s) unidade(s). Você levou em consideração o custo adicional de hardware e o consumo de energia parasita para obter a capacidade de controlar diretamente a energia?
Os SoCs economizam energia desativando o relógio de um dispositivo, em vez de desativar a energia do dispositivo. Em vez de negar energia, o dispositivo é colocado em hibernação e responde consumindo ( exigindo ) menos energia. Portanto, em vez de desligar a unidade, veja se consegue colocá-la em hibernação. Consulte Suspensão do dispositivo (DevSleep) O uso do(s) modo(s) de baixo consumo de energia da unidade elimina qualquer hardware de comutação de energia externo e transfere a responsabilidade de conservar energia para a própria unidade. Presumivelmente, tal impulso pode sustentar ciclos repetidos de sono-vigília.
Sim , os ciclos de energia são um fator de desgaste para SSDs e são rastreados como "Contagem de ciclos de energia" no monitoramento inteligente interno . Somente o fabricante pode dizer quanto é demais, mas as unidades de nível empresarial são projetadas para funcionar 24 horas por dia, 7 dias por semana, em uma temperatura consistente e com uma fonte de alimentação limpa. Quanto mais longe desses limites você for, menos confiáveis serão suas unidades.
Dito isto, tempos de montagem mais longos não são realmente um sintoma comum de desgaste do SSD, a menos que correspondam a erros de leitura/gravação. Se o SSD estiver funcionando normalmente depois de montado, é muito mais provável que algo no nível do sistema operacional esteja fazendo com que a operação de montagem demore mais - embora as causas possam variar de acordo com o sistema operacional, firmware, sistema de arquivos, etc.
Não, não há um bom motivo para o desgaste do seu SSD após apenas 7.000 ciclos de energia.
Mas, se levar de 12 a 22 segundos para montar quando estiver vazio, pode facilmente levar o dobro do tempo para montar quando estiver cheio (é difícil dizer o que a unidade precisa fazer para se reportar como pronta, mas essa atividade pode ser facilmente dimensionada com o contagem de arquivos, por exemplo). Você não mencionou como está enchendo sua unidade ao longo do tempo, mas pode tentar economizar o tempo de montagem versus a contagem de inicialização de cada unidade. Suponho que você verá um aumento gradual no tempo de montagem a cada inicialização, e mais detalhes devem fornecer pistas para ajudar a explicar isso melhor.
Ligar um dispositivo elétrico equivale a criar uma oscilação de energia à medida que a energia vai de zero a 100 por cento. Ligar é a operação mais perigosa para equipamentos eletrônicos, razão pela qual problemas de hardware são frequentemente detectados ao ligar o computador.
Então, sim, há um impacto negativo, mas para um SSD de boa qualidade seria necessário um grande número de ciclos de energia para ver o efeito.
Os SSDs são protegidos contra quedas de energia por hardware ou firmware PLP (Power Loss Protection). Os PLPs dentro dos SSDs melhoraram ao longo dos anos, portanto, quanto mais nova a unidade, maior a probabilidade de ela ser protegida pela mais recente tecnologia PLP. O Samsung 860 Pro parece ter sido lançado em 2018, portanto não é a tecnologia mais recente.
Não acredito que qualquer empresa de SSD tenha classificações para o número máximo de reciclagens de energia, embora todos os fabricantes testem seus SSD para garantir uma certa resiliência.
Por exemplo, descobri que os SSDs ATP passam por um esquema de teste descrito no artigo Usando testes de quatro cantos, ciclos de temperatura e ciclos de energia para verificar a resistência do SSD a condições operacionais extremas , em que um disco passa se puder suportar 4.000 desses ciclos . Dividido por 365 dias, isso significaria uma vida útil de mais de 10 anos para um computador de consumo típico que é ligado uma vez por dia.
Seu disco passa por muito mais ciclos de energia do que os 4.000 que o ATP considera o limite superior de desempenho desejado, então você está basicamente em terreno desconhecido.
Primeiro, é importante reconhecer as 3 camadas diferentes em que os “danos” podem estar acontecendo aqui:
Acho que seu problema existe no número 3. Existem várias maneiras de testar isso:
Com relação ao número de ciclos de energia aceitáveis: não consigo encontrar dados sobre isso.
Mas duvido que isso importe. Estou inclinado a acreditar que qualquer interrupção repentina de energia está potencialmente prejudicando o dispositivo em algum nível.
SSDs quase nunca fazem nada
O fato de você ter terminado de escrever não significa que o SSD terminou de escrever, pois, como outros já sugeriram, os SSDs tendem a executar todos os tipos de tarefas em segundo plano (coleta de lixo, nivelamento de desgaste, limpeza) em "tempo ocioso". Retirar o plugue pode, portanto, deixar o FTL em um estado inconsistente.
Puxar o plugue causa danos em algum nível
Até agora, parece que você não respondeu à pergunta sobre como desabilitar a energia do SSD ou como 'desligá-lo'. Se você "puxar o plugue" ou "ligar o interruptor", poderá realmente estar danificando o SSD em algum nível. Estas são afirmações que podem ser apoiadas por pesquisas .
Além dos danos no nível FTL, os sistemas de arquivos também não são invulneráveis a interrupções de energia. Suponho que todo usuário de PC saiba disso por experiência própria.
A unidade não montada em x segundos não significa que falhou
Assim como o sistema operacional tenta se recuperar de um desligamento impróprio ou pelo menos verificar o sistema de arquivos “sujo”, podemos assumir que o firmware de um SSD fará algo semelhante. Essas verificações levam tempo. Alguns fabricantes, por exemplo, sugerem dar ao SSD cerca de 5 minutos para fazer isso.
Na indústria de recuperação de dados, é um fato conhecido que um SSD 'emparedado' pode se recuperar sozinho, deixando-o parado por um tempo com a energia conectada e as linhas de dados desconectadas. Conheço casos extremos em que um SSD voltou à vida depois de ficar conectado à energia por 24 horas. Mas também há casos em que o firmware falhou a ponto de o controlador não conseguir nem acessar o NAND. Em algum momento, o controlador precisa ler o firmware da própria NAND e, se estiver muito corrompido, normalmente ganha vida, mas com capacidade reduzida.
Nenhuma informação sobre o modo de falha real
O fato de seu dispositivo não ser montado em x minutos não significa, por definição, que o SSD falhou terminalmente. Seu dispositivo não 'montado' em x minutos também nos diz muito pouco sobre o modo de falha: é um problema no sistema de arquivos, um problema de firmware, um problema de hardware?
Voltar para os cartões SD?
É meio 'engraçado' que os cartões SD que você usou anteriormente lidem melhor com a perda repentina de energia do que os SSDs mais sofisticados (em muitos aspectos). Se você precisar de um sistema onde você possa simplesmente apertar o botão, sua escolha pode ser voltar para os cartões SD ou mudar para SSDs mais caros com proteção física contra perda de energia na forma de um conjunto de 'supercapacitores'.
A corrupção silenciosa de dados é o que talvez você deva se preocupar
No final, toda situação de perda repentina de energia é ruim e pode danificar o SSD sem que nenhum componente de hardware falhe, mas mesmo sem a falha da unidade, ela pode corromper seus dados , o que, se isso passar despercebido, pode ser um problema muito mais sério.
EDITAR por causa de edições na pergunta.
"Estamos funcionando com baterias, então o uso de energia é muito limitado."
Acho que vale a pena investigar se talvez essa seja a origem do problema. Portanto, teste a mesma configuração, mas agora com alimentação de parede. EDIT: Isso foi investigado e não o problema
"O procedimento de desmontagem consiste em desmontar a unidade e depois desligar a energia. Verificamos se os dados estão completamente gravados antes de desmontar e desligar."
Não estou convencido de que esta seja a maneira correta, pois a desmontagem não diz ao SSD para interromper o processamento em segundo plano, portanto, ele ainda pode estar gravando e uma perda repentina de energia pode corromper o FTL. Mas não sou uma pessoa de Pi nem de Linux. Para inspiração, veja esta resposta .
“Encontrei um que já tem mais de 13.000 ciclos de energia e ainda está montado como queremos”
Não é uma informação útil, um pode falhar após n ciclos de energia, o outro após m ciclos de energia, o próximo após a primeira vez. O próximo pode falhar por razões totalmente diferentes. E então temos marcas, modelos, revisões de firmware e outros enfeites para levar em conta.
EDIT em reação ao comentário: "Parece que esta pode ser a resposta para o desligamento inseguro: echo 1 | sudo dd of=/sys/block/sdX/device/delete"
Com base na minha experiência com SSDs em diferentes contextos, estou inclinado a acreditar que isso é o que você deveria explorar: desligamento suave do SSD.
Além de enviar comandos ATA diretos, pode existir alguma ferramenta que possa fazer isso por você. Este foi o propósito do meu 'link inspirador'. A desmontagem graciosa não é suficiente, precisa ser um comando que diga à unidade para desligar, para interromper suas atividades internas de manutenção.
Um obstáculo extra pode ser a conversão USB> SATA: o envio dos comandos adequados não significa, por si só, que a ponte USB passará o comando para a unidade SATA. Novamente, por experiência própria, parece-me que a melhor chance de o adaptador USB> SATA transmitir o comando é se ele for alimentado por um controlador Asmedia (ASM1153, ASM1051).
Isso é totalmente esperado. Os SSDs modernos usam nivelamento, o que significa que movem blocos lógicos fisicamente. Isso geralmente é feito como uma tarefa em segundo plano de baixo prio no firmware, quando o sistema operacional não está gravando. Devido a esse nivelamento de desgaste, os SSDs precisam armazenar um mapeamento de blocos lógico-físicos. Isso também é armazenado em flash.
O Flash também requer 250 ms de energia estável ao gravar uma célula. Isso está oculto pelo firmware e, em uma sequência de gravações, isso significa que você só precisa estar ligado por 250 ms após a última gravação física - mas isso inclui o mapeamento de blocos.
Ao desligar o dispositivo sem avisar, você corre o risco de corromper o mapeamento de blocos. Dependendo do firmware, o SSD pode recuperar parte ou todo esse mapeamento. Mas cada vez que você desliga o SSD enquanto ele está nivelando o desgaste, você corre o risco de uma falha total do disco.
Uma redefinição de fábrica pode permitir que o firmware descarte todo o mapeamento de bloco e gere um novo. Se for esse o caso, tudo o que você perde é um pouco da capacidade dos blocos flash que foram destruídos pelos cortes de energia.
DR
Leia sobre Falha no Ciclo Térmico em Eletrônica e confira esta imagem interessante de fadiga térmica em solda.
Você está apenas desligando e ligando o SSD, certo? Não é todo o sistema?
Manualmente?? Você valoriza seu próprio valor em valores negativos?
Alguma experiência relacionando a questão:
O padrão específico de ciclo de alimentação pode ou não ser ruim, dependendo do projeto do barramento de alimentação. Geralmente não é ruim.
Se algo falhar devido ao próprio ciclo de energia, não falhará de forma gradual ou graciosa. Ele falha, ponto final.
Os SSDs realizam muito trabalho de limpeza quando deixados ligados e ociosos. Isto inclui, mas não está limitado a, apagar os blocos onde os dados não são mais válidos (ou seja, sobrescritos ou cortados) e mover os dados recentemente gravados do buffer SLC para blocos MLC de armazenamento permanente. Também pode haver outras tarefas em segundo plano. Caso contrário, o SSD apresenta desempenho reduzido.
(pode estar relacionado aos tempos de montagem) Observamos SSDs de diferentes marcas respeitáveis reduzindo seu desempenho em 3 a 5 ordens de magnitude para leituras e gravações, após uso prolongado. Não fomos capazes de determinar o padrão de uso específico que leva a essa perda de desempenho, mas com certeza não são grandes gravações sequenciais. No que diz respeito à leitura, o disco desenvolve "pontos lentos" em intervalos específicos do LBA e é difícil recuperar os dados dele. Por outro lado, nenhum dado foi perdido até agora. Por outro lado, o disco recupera pelo menos temporariamente o desempenho após ser "apagado com segurança aprimorada" e depois deixado sozinho (ligado) pelo tempo anunciado para o comando "apagamento de segurança aprimorado".