Como ativar o TRIM?

185

Eu sei que o kernel Linux suporta TRIM a partir da versão 2.6.33, então deve haver suporte a TRIM no Ubuntu.

O TRIM está ativado por padrão ou eu preciso alterar algumas configurações ou instalar software adicional para que ele funcione? Se sim, como?

    
por Uli 26.12.2010 / 13:44

2 respostas

195

Ubuntu 14.10 em diante

No Ubuntu 14.10 e 15.04, TRIMming acontece automaticamente toda semana em todos os SSDs suportados por fstrim .

$ tail -n1 /etc/cron.weekly/fstrim 
/sbin/fstrim --all || true

Ubuntu 14.04

A partir do Ubuntu 14.04, o TRIM agendado é habilitado por padrão para SSDs Intel, SAMSUNG, OCZ, Patriot e Sandisk. Se você tiver outra marca, poderá desabilitar a verificação do fornecedor executando o seguinte comando :

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim

(ou apenas edite o arquivo /etc/cron.weekly/fstrim e adicione --no-model-check )

Ubuntu 13.10 e Anterior

Existem três formas de executar o TRIM, manual, agendado e automático:

TRIM manual

No Ubuntu isso pode ser feito com fstrim :

sudo fstrim /

no entanto, não é necessário quando o TRIM programado ou automático está ativado, conforme detalhado nas seções abaixo.

Observação: Para sistemas Ubuntu 11.04 e anteriores, o fstrim não está disponível, portanto você deve usar wiper.sh fornecido com hdparm em /usr/share/doc/hdparm/contrib/wiper.sh.gz

TRIM agendado (recomendado)

Este é o método atualmente recomendado, e é planejado para ser ativado por padrão no Ubuntu 14.04 . Veja como ativá-lo manualmente em versões mais antigas do Ubuntu (11.10 a 13.10):

Crie um arquivo de script de tarefa CRON semanal:

gksudo gedit /etc/cron.weekly/fstrim

Cole o seguinte código no arquivo, salve e feche o arquivo:

#! /bin/sh  

# By default we assume only / is on an SSD. 
# You can add more SSD mount points, separated by spaces.
# Make sure all mount points are within the quotes. For example:
# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'  

SSD_MOUNT_POINTS='/'  

for mount_point in $SSD_MOUNT_POINTS
do  
    fstrim $mount_point  
done

Observe que o acima assume que apenas o seu sistema de arquivos raiz / está localizado em um SSD. Se você tiver mais pontos de montagem que residem em um ou mais SSDs, adicione-os a SSD_MOUNT_POINTS conforme explicado no código.

Torne o script executável:

sudo chmod +x /etc/cron.weekly/fstrim

E finalmente teste:

sudo /etc/cron.weekly/fstrim

Se você não encontrar erros, o trabalho do cron deve estar funcionando bem.

TRIM Automático (Reprovado, Lento)

O TRIM automático é suportado desde o Ubuntu 10.10 (kernel 2.6.33) com o sistema de arquivos EXT4. No entanto, o envio de comandos TRIM para o SSD em tempo real - após cada exclusão - foi reconhecido para tornar a exclusão muito mais lenta que o normal em algumas unidades. Portanto, um TRIM semanal agendado através de um cron job (descrito acima) é recomendado.

Para ativar o TRIM automático em uma unidade ou partição, eles precisam ser montados com a opção discard em fstab . Primeiro, faça backup do seu fstab e abra-o para edição:

sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Adicione discard à entrada de opções fstab (separada por vírgula) para a unidade SSD ou para cada partição.

UUID=00000000-0000-0000-0000-000000000000  /  ext4  discard,errors=remount-ro  0  1

Feche e salve fstab, depois reinicialize e o TRIM automático deve estar funcionando agora.

Testando o TRIM automático

Para testar se TRIM está funcionando, solucione os seguintes comandos ( origem ):

cd  / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile

Na saída, copie o número em begin_LBA e verifique o nome do dispositivo do seu SSD: System->Administration->Disk Utility , por exemplo, sda, sdb, sdc ...

Execute o seguinte, mas substitua [ADDRESS] (begin_LBA) e sdX (nome do dispositivo SSD) pelos detalhes obtidos acima.

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

a saída deve ser uma longa sequência de caracteres para esses setores

sudo rm tempfile
sync

Repita o comando hdparm acima:

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

Se você obtiver apenas zeros, o TRIM automático estará funcionando. No entanto, se após remover o arquivo, os setores ainda não estiverem vazios, espere um pouco e execute o comando novamente.

    
por Uli 30.09.2015 / 23:58
26

Observe que, se você estiver usando criptografia, as soluções postadas aqui até o momento não ajudarão, pois também é necessário ativar o suporte a TRIM na camada de criptografia. Isso pode ser feito com as versões de kernel 3.1+ e cryptsetup versões 1.4+, ambas incluídas no Ubuntu 12.04.

Encontre meu guia sobre como configurar TRIM para partições criptografadas LUKS aqui

Como ativar TRIM em partições encriptadas LUKS no Ubuntu & amp; Debian

Este passo-a-passo passo a passo permitirá que você aproveite a tecnologia TRIM para suas partições SSD criptografadas para o cryptsetup 1.4 ou superior e o kernel 3.1 ou superior. Isso leva a uma experiência de SSD sem problemas porque

% bl0ck_qu0te%

Exemplo de configuração

Notebook com SSD como unidade única, Linux instalado em uma única partição raiz LVM ext4 com partição swap LVM, ambas sobre a partição lógica criptografada LUKS.

SSD: / dev / sda

sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # rootpartition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

HowTo

  1. Faça um backup de todos os seus dados. Você está mexendo com o seu sistema de arquivos então ter um backup é simplesmente uma boa ideia.
  2. Certifique-se de ter as versões necessárias do kernel e cryptsetup (3.1 & amp; 1.4, e. no Ubuntu 12.04, tenha cuidado, no momento da escrita 12.04 ainda é beta).
  3. Adicione o parâmetro descarte às opções do sistema de arquivos do arquivo criptografado Volume (s) LVM no seu arquivo / etc / fstab. Isso faz com que o sistema de arquivos de sua partição LVM ciente de que você deseja usar TRIM.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. O último passo não é suficiente. Enquanto LUKS não estiver ciente que você deseja usar TRIM, ele efetivamente bloqueará todos os TRIM operações provenientes do sistema de arquivos da partição LVM, para segurança razões. Adicione o parâmetro discard às opções cryptdevice em / etc / crypttab para fazer com que o LUKS aceite o comportamento de descarte do LVM partição.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Reconstrua seus initramfs. As opções de criptografia são armazenadas lá e usado na inicialização.

    sudo update-initramfs -c -k all
    
  6. Reinicie.

  7. Verifique se o TRIM está ativo agora.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Se o último comando mostrar um resultado como este (1 allow_discards no final), está tudo pronto.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

Resultado

O TRIM está ativado. Aproveite o seu SSD sem complicações!

    
por nem75 14.04.2012 / 17:00