ti-enxame.com

O Ubuntu tem suporte para o comando TRIM para uso com SSD?

As unidades SSD precisam ser "limpas/redefinidas" depois que a unidade for preenchida para manter o desempenho. Isso é feito através do comando TRIM para novas unidades SSD. O Ubuntu suporta o comando TRIM (através do hdparm etc) para limpar/redefinir essas unidades?

34
ssanj

Parece que há suporte para a funcionalidade TRIM na versão 10.10 e versões mais recentes:

Além disso, o material TRIM acontece automaticamente - os blocos vazios são liberados automaticamente quando não são mais necessários (por exemplo, você exclui um arquivo), se o disco relatar que ele suporta TRIM. Você não precisa emitir manualmente um comando hdparm para que isso funcione.

24
Jeremy Kerr

A resposta de Jeremy não é totalmente exata AFAIK. Eu tenho executado os últimos kernels estáveis ​​no Lucid já há algum tempo e tenho seguido o status de TRIM muito bem, já que tenho um OCZ Agility como meu disco principal.

Aqui está o que (eu acho) eu sei:

  • O kernel tem suporte TRIM a partir de 2.6.33 (Maverick é 2.6.35).

  • EXT4 tem suporte a TRIM, mas somente quando registro no diário está desativado.

  • A maneira que o TRIM trabalha no kernel é muito básica e bastante lenta. Os discos que seguem as especificações podem aceitar vários intervalos, mas o kernel atualmente só pode fazer um intervalo de cada vez. Isso vem de algo que li há um mês. Eu gostaria de ter a fonte, pois isso pode não ser verdade ou pode não se aplicar mais.

Journalling é o que mata para mim. A corrupção de dados é uma PITA.

No entanto, as versões mais recentes do hdparm (v9.25 - Maverick está na v9.27) vêm com um script chamado wiper.sh que executa uma análise rápida de uma unidade e, em seguida, apara todo o espaço vazio. Em vez de perder recursos, acho muito mais fácil executar o cron wiper.sh uma vez por semana (ou uma vez por dia/mês/qualquer outro). A degradação de SSDs para uma unidade do SO não é tão rápida, a menos que você esteja constantemente destruindo as coisas. Você não precisa precisar TRIMming em tempo real.

Há também um frontend GUI chamado DiskTRIM que não parece estar nos repositórios. Usuários menos experientes podem achar isso mais fácil de usar do que configurar trabalhos agendados.

Existem PPAs para hdparm e disktrim e todos podem ser executados no Lucid (e mais atrás) sem necessidade de kernels 2.6.33+.

20
Oli

O Linux tem suporte para o sistema de arquivos TRIM automático com ETX4 desde o kernel 2.6.33.

O primeiro lançamento do Ubuntu com suporte TRIM automático é 10.10 (Maveric), mas ele deve ser ativado no fstab (como descrito aqui ).

8
Uli

Em geral, sim, porque há várias maneiras de obter novos kernels. Se esclarecermos sua pergunta para ler, "O 10.04 LTS tem suporte pronto para o comando?" então a resposta é não. No entanto, tanto os kernels de Maverick e Natty (-genérico, -genérico-pae, -servidor e -virtual) foram backportados para 10.04 LTS e estão disponíveis a partir de $ release-updates nos repositórios do Ubuntu, por exemplo, linux-image-generic-lts-backport-maverick é Backport de Maverick para Lucid .

4
Daniel T Chen

Estou correndo 11.04 e não parece TRIM está funcionando de acordo com a caixa.

Eu testei sando as instruções aqui para criar um arquivo, excluí-lo e ver se os setores são zerados/excluídos .

Tentei ativar o TRIM sando as instruções aqui, mas sem dados

Eu corro wiper.sh, eu recebo

/sbin/wiper.sh --verbose --commit /dev/sda1
wiper.sh: Utilitário Linux SATA SSD TRIM, versão 3.3, por Mark Lord. 
 rootdev = /dev/sda1
fsmode2: fsmode = leitura-gravação 
 /: fstype = ext4 
 freesize = 13785252 KB, reservado = 137852 KB 
 Preparando para o TRIM on-line de espaço livre em/dev/sda1 (leitura/gravação montada em ext4 em /).

This operação poderia silenciosamente destruir seus dados. Você tem certeza (y/N)? y 
 Criando arquivo temporário (13647400 KB) .. 
 Sincronizando discos .. 
 Iniciando operações TRIM .. 
 get_trimlist =/sbin/hdparm --fibmap WIPER_TMPFILE. 9689 
 
/Dev/sda: 
 Aparando 27294800 setores de 462 intervalos 
 Teve êxito 
 Removendo arquivo temporário .. 
 Sincronizando discos ..
Feito.

No entanto, se eu executá-lo novamente, ele mostra que o mesmo número de setores/intervalos precisa ser aparado e relata o sucesso novamente. Eu fico exatamente a mesma coisa toda vez. Não parece que os setores sejam excluídos/liberados. Lê-los ainda mostra os mesmos dados.

Curioso se alguém mais tem que trabalhar.

2
user10292