Persistência do TRIM entre reinicializações

1

Digamos que temos uma imagem do sistema de arquivos ext4 que despejamos em um SSD (com dd ). Depois de algumas montagens, aprendemos que devemos usar o sinalizador discard para emitir TRIM para o drive. Como não está claro se o ext4 irá aparar todos os blocos livres na primeira vez que é montado com discard , fazemos um aparamento on-line manual:

fstrim /mount/point

Espero que isso não interaja com a opção discard . Se executarmos fstrim uma segunda vez seguidas, ele informará que nenhum bloco foi cortado. O curioso é que, após a reinicialização do sistema, uma execução adicional de fstrim relatará novamente que muitos blocos foram cortados (dependendo do espaço livre).

Portanto, embora pareça óbvio que o kernel do Linux não controla os blocos aparados em um armazenamento persistente, a pergunta é: a unidade SSD se lembra permanentemente dos blocos que foram aparados?

No caso de ser útil, a intenção de tudo isso é alcançar um estado similar ao do sistema de arquivos recém-criado e montado com discard habilitado desde o início. Então eu queria saber se uma única execução de fstrim foi suficiente.

    
por C2H5OH 19.03.2013 / 15:08

1 resposta

2

O SSD lembra quais blocos são aparados nas reinicializações. Caso contrário, o SSD ficaria muito lento após cada reinicialização até que o sistema operacional conseguisse verificar a unidade inteira em busca de blocos aparáveis.

O SO, no entanto, não rastreia quais blocos ele já disse ao SSD para TRIM durante as reinicializações.

Uma única chamada de fstrim deve ser suficiente.

    
por 19.03.2013 / 15:17