Comando TRIM em dispositivos SSD

Publicado: 26/05/2015 em Hardware, Linux
Tags:

1. Introdução
Imagem HD SSDUtilizar o comando fstrim: discarta blocos não utilizados por um sistema de arquivos montado. O que é bastante útil especialmente para drives de estado sólido (SSDs).

Para este post utilizou-se a distribuição Debian, com o disco utilizando partições com sistemas de arquivos ext4, e kernel Linux 3.2.

Basicamente, fstrim busca o lixo deixado para trás pelo sistema de arquivos de modo que quando é hora de escrever novamente para o bloco não tem que tirar o lixo em cada operação. Como a operação de baixo nível de SSDs difere significativamente de unidades de disco rígido de tecnologia magnética, a forma típica em que sistemas operacionais lidam com operações como exclusões e formatações resultam na inesperada degradação progressiva do desempenho de operações de gravação em SSDs. O comando Trim ajuda a manter a unidade de estado sólido (SSD) em sua velocidade máxima, pois ele permite que o SSD possa lidar antecipadamente com o processo de limpeza do lixo, o que, de outra forma, iria abrandar significativamente futuras operações de gravação para os blocos envolvidos.

Para quem não sabe, TRIM é um comando ATA que drives de estado sólido podem tirar vantagem a fim de prolongar o seu desempenho ao longo do seu tempo de uso.

Mas atenção: por padrão, fstrim já vem instalado porém não está automaticamente programado para ser disparado. Outra coisa, o Linux kernel passou a suportar TRIM desde a versão 2.6.33

2. Programas auxiliares úteis
Dois programas poderão ser bastantes úteis para obter informações das unidades de discos instaladas: parted e hdparm.

  • parted: é um programa de manipulação de partições do disco. Ele permite que partições sejam criadas, destruídas, redimensionadas, movidas e cipias (partições ext2, linux-swap, FAT, FAT32, and reiserfs). É útil para criar espaço para novos sistemas operacionais, reorganizando o uso do disco e copiando dados para novos discos rígidos.
  • hdparam: obter/definir paramêtros de dispositivos SATA/IDE.

Instalar os aplicativos:
# apt-get install parted hdparm

3. Verificações iniciais
3.1 Verificar as partições existentes no disco

O comando “parted -l” lista o formato da partição de todos os dispositivos de bloco, como pode ser visto:

# parted -l
  Model: ATA KINGSTON SV300S3 (scsi)
  Disk /dev/sda: 120GB
  Sector size (logical/physical): 512B/512B
  Partition Table: msdos

  Number  Start   End     Size    Type      File system     Flags
   1      1049kB  30,0GB  30,0GB  primary   ext4            boot
   2      30,0GB  33,0GB  2999MB  extended
   5      30,0GB  33,0GB  2999MB  logical   linux-swap(v1)
   3      33,0GB  120GB   87,0GB  primary   ext4

3.2 Verificar se existe um disco SSD instalado
Isto pode ser facilmente verificado de duas maneiras:
a) através comando hdparm

# hdparm -I /dev/sda
  /dev/sda:
  ATA device, with non-removable media
  powers-up in standby; SET FEATURES subcmd spins-up.
	  Model Number:       KINGSTON SV300S37A120G                  
	  Serial Number:      50026B72530B3455    
	  Firmware Revision:  583ABBF0
	  Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
  Configuration:
      .
      .
      .
      Nominal Media Rotation Rate: Solid State Device

Vemos pela resposta do comando acima que existe um HD de estado sólido da marca KINGSTON.

b) Através dos arquivos especiais do Kernel
Se o conteúdo do arquivo /sys/block/sda/queue/rotational for 0, existe um SSD instalado; se for 1, trata-se de um HDD tradicional (magnético). Como se sabe, a pasta /sys armazena informações sobre o hardware (e outras sobre a configuração do sistema).

$ cat /sys/block/sda/queue/rotational
  0

Vemos pela resposta do comando acima que existe um HD de estado sólido instalado, sendo este o primeiro disco SCSI da máquina (arquivo de dispositivo sda).

3.3 Verificar se o drive suporta TRIM
Mesmo existindo um SSD na máquina, nem todos eles suportam o TRIM. Para saber se o SSD suporta TRIM deve-se executar os seguintes comandos (considerando que o drive SSD está em sda):

# hdparm -I /dev/sda | grep -i “TRIM supported”

Se a resposta ao último comando acima for do tipo:

	   *	Data Set Management TRIM supported

então conclui-se que o drive suporta o comando TRIM. Se não houver nenhuma saída, isso significa que o SSD não suporta TRIM.

4. Utilizar comandos TRIM
Exemplos de comandos:
# fstrim -v /
# fstrim -v /home
# fstrim -v -m 4194304 /

O que ocasionará saídas do tipo….
/: 61149098 bytes were trimmed
Neste caso, isto significa que 61.1 MiB foram processados pelo fstrim. Nota: isto não necessariamentoe significa que 61.1 MiB necessitaram ser limpos (liberados). Isso significa que 61.1 MiB foram examinados e todos os blocos que necessitavam ser liberados foram liberados.

Referências:
1- Linux SSD TRIM Setup
2- Using fstrim to “TRIM” your SSD instead of “delete” in fstab

Anúncios

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s