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

34

As unidades SSD precisam ser "limpas / redefinidas" após o preenchimento 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?

ssanj
fonte
Boa pergunta, embora observe que o grau em que o TRIM melhora o desempenho varia entre os SSDs, para alguns, não faz tanta diferença quanto você imagina (embora, na maioria das vezes, pareçam os mais lentos).
Nicholas Knight
11
Eu acho que o desempenho seria restaurado para o mesmo (se não próximo) dos padrões de fábrica. Dê uma olhada aqui para obter uma explicação -> anandtech.com/show/2738/10
ssanj

Respostas:

24

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

Além disso, o material TRIM acontece automaticamente - 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 o TRIM. Você não precisa emitir manualmente um comando hdparm para que isso funcione.

Jeremy Kerr
fonte
Eu pensei que você ainda tinha que usar ferramentas que "enviaram" o comando TRIM para o SDD. É bom se funcionar como você especificar. :) Este artigo da Anandtech -> ( anandtech.com/show/2738/10 ) especifica que, para o TRIM funcionar, o sistema operacional e o SSD precisam de suporte do TRIM. Acho que minha pergunta é sobre o suporte do OS / Linux para TRIM quando usado com unidades SSD compatíveis com TRIM.
ssanj
3
O comando TRIM precisa saber quais blocos liberar, portanto, seria perigoso emitir isso sem saber exatamente quais blocos no disco não são usados. Sim, o sistema operacional e o disco precisam ter suporte para aparar. No Linux, isso foi adicionado na versão 2.6.33 do kernel, portanto será incluído no Maverick. Tanto o driver de disco quanto o sistema de arquivos que você está usando precisam oferecer suporte para que isso funcione corretamente. Se você estiver usando o ext4 como seu sistema de arquivos no Maverick, tudo bem.
Jerry Kerr
Gostaria de saber então se será possível que os SSDs existentes sejam submetidos a um "TRIM adaptado" para limpar o cruft existente acumulado antes do sistema operacional que suporta o TRIM. Ou seria necessária uma reinstalação?
Kent Boogaart
20

A resposta de Jeremy não é totalmente exata, AFAIK. Eu tenho rodado os kernels estáveis ​​mais recentes no Lucid há algum tempo e tenho acompanhado o status do TRIM bastante, pois tenho o OCZ Agility como meu disco principal.

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

  • O kernel possui suporte TRIM a partir do 2.6.33 (o Maverick é 2.6.35).

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

  • A maneira como o TRIM funciona no kernel é muito básica e bastante lenta. Os discos que seguem as especificações podem aceitar vários intervalos, mas o kernel atualmente pode executar apenas um intervalo por vez. Isso vem de algo que li talvez um mês atrás. Eu gostaria de ter a fonte, pois isso pode não ser verdade ou pode não ser mais aplicável.

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.shque executa uma análise rápida de uma unidade e apara todo o espaço vazio. Em vez de perder recursos, acho muito mais fácil wiper.shexecutar o cron uma vez por semana (ou uma vez por dia / mês / qualquer coisa). A degradação do SSD para uma unidade do SO não acontece tão rápido, a menos que você esteja constantemente rasgando as coisas. Você não precisa de TRIMming em tempo real.

Há também um front-end da 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 tarefas cron.

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

Oli
fonte
Você pode vincular esses CAE por favor?
Jorge Castro
Então, ativar a discardopção de montagem para ext4 desativa o diário? Acabei de pesquisar por referências, mas não consigo encontrar uma que não seja a resposta - você pode fornecer uma fonte?
Hamish Downer
2
no Ubuntu 12.04 a wiper.sh foi substituído por fstrim
Tomodachi
11
@Oli: Eu li mais algumas e agora tenho certeza de que a opção de descarte não desativa o diário. Originalmente, a opção de descarte funcionava com o diário (eu encontrei esse patch que permite o descarte sem o diário). A página ext4 do kernel documenta a opção de descarte, mas não menciona que o diário é incompatível.
Hamish Downer
8

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

A primeira versão do Ubuntu com suporte automático a TRIM é a 10.10 (Maveric), mas precisa ser ativada no fstab (como descrito aqui ).

Uli
fonte
4

Em geral, sim, porque existem várias maneiras de obter kernels mais recentes. Se esclarecermos sua pergunta para ler, "10.04 LTS tem suporte imediato para o comando?" então a resposta é não. No entanto, os kernels de Maverick e Natty (sabores -generic, -generic-pae, -server e -virtual) foram portados para o 10.04 LTS e estão disponíveis em $ release-updates nos repositórios do Ubuntu, por exemplo, linux-image-generic-lts-backport-maverické o backport do Maverick para o Lucid .

Daniel T Chen
fonte
2

Estou executando o 11.04 e não parece que o TRIM esteja funcionando de acordo com a caixa.

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

Tentei ativar o TRIM usando as instruções aqui, mas não há dados

Eu corro o wiper.sh, recebo

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

Esta operação pode destruir silenciosamente seus dados. Você tem certeza (s / N)? y
Criando arquivo temporário (13647400 KB) ..
Sincronizando discos ..
Iniciando operações TRIM ..
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / sda:
aparar 27294800 setores de 462 faixas
conseguiu
Removendo arquivo temporário ..
Sincronizando discos ..
Feito.

No entanto, se eu executá-lo novamente, mostra que o mesmo número de setores / intervalos precisa ser aparado e reporta o sucesso novamente. Eu sempre recebo exatamente a mesma coisa. Parece que os setores nunca foram excluídos / liberados. A leitura deles ainda mostra os mesmos dados.

Curioso se alguém mais conseguiu fazê-lo funcionar.


fonte
Se você adicionou a opção de descarte ao fstab e ele ainda não está funcionando, provavelmente é um bug no alfa. Você deve registrar um relatório de bug.
223 Uli
Acabei de testar isso no natty (seguindo estas instruções: askubuntu.com/questions/18903/how-to-enable-trim ) e seu funcionamento ainda melhor no natty, o TRIM é quase instantâneo.
27411 Uli
É possível que você tenha um SSD que não suporte o TRIM - alguns dos SSDs anteriores não eram compatíveis com o TRIM.
Hamish Downer