O que exatamente os parâmetros Linux 'allow-discards' e 'root_trim' fazem?

10

Muitas das instruções on-line relacionadas à SSD dizem que você deve adicionar allow-discards e root_trim = yes ao seu GRUB_CMDLINE_LINUX. Eu ainda tenho que encontrar um que diga por que você deveria fazer isso, ou seja, o que exatamente (se qualquer coisa!) Esses parâmetros fazem. Onde está a documentação sobre isso e o que ele diz sobre a finalidade desses dois parâmetros?

De acordo com Notas de versão do Cryptsetup 1.4.0 ,

  

Desde o kernel 3.1, os dispositivos dm-crypt suportam opcionalmente (não por padrão)   Comandos de descartes de bloco (TRIM). Se você quiser ativar essa operação,   você tem que ativá-lo manualmente em cada ativação usando   --allow-discards

cryptsetup luksOpen --allow-discards /dev/sdb test_disk 

mas é o mesmo quando passado para o kernel (via GRUB_CMDLINE_LINUX)?

Editar: lista de parâmetros do kernel do Kernel.org 't (atualmente, janeiro de 2013, pelo menos) tem uma dessas opções.

    
por Jani Uusitalo 15.01.2013 / 18:24

1 resposta

6

Pelo que entendi, o parâmetro de inicialização root_trim=yes é específico do Gentoo. Dentro de genkernel existe um script que procura pelo parâmetro e define a opção --allow-discards com cryptsetup (veja seu repositório git ). Além disso, encontrei muitos relatórios de usuários do Ubuntu ou Debian que diziam que funcionava sem o parâmetro root_trim . Eu também não encontrei nenhuma linha no script update-initramfs do Ubuntus.

Portanto, é um parâmetro de inicialização no , mas mais um parâmetro para cryptsetup . A documentação do --allow-discards pode ser encontrada na manpage do cryptsetup (8) :

  

- allow-discards
   Permitir o uso de solicitações de descartes (TRIM) para o dispositivo. Esta opção só é relevante para criar , luksOpen ou loopaesOpen .

     

AVISO : avalie cuidadosamente os riscos de segurança específicos antes                 permitindo esta opção. Por exemplo, permitindo descartes em                 dispositivos criptografados podem levar ao vazamento de informações sobre                 dispositivo de texto cifrado (tipo de sistema de arquivos, espaço usado etc.)                 os blocos descartados podem ser localizados facilmente no dispositivo mais tarde.

     

A versão do kernel 3.1 ou mais recente é necessária. Para mais velhos                 versões é a opção ignorada.

Baseado neste blog em TRIM & amp; dm-crypt , TRIM é uma operação em que camada superior (ex. sistema de arquivos) informa ao dispositivo quais setores não são mais usados (não contém mais dados válidos) e que o dispositivo não precisa manter esse conteúdo de dados.

Na terminologia do Linux, essa operação é chamada de descarte. No mundo SCSI, ele é chamado de comando UNMAP.

A operação de descarte pode ser usada para duas finalidades: Provisionamento fino (informa que a área de dados pode ser retornada ao pool de alocação) e para otimização da operação de SSD.

Os descartes são mais úteis para a otimização de SSD, já que a arquitetura interna usa blocos maiores que os setores e que os blocos devem ser apagados antes que uma operação de gravação possa ser executada. Informações sobre setores que não precisam manter dados são muito úteis, já que o sistema de arquivos seria capaz de organizar blocos de maneira mais eficaz, de forma que a fragmentação de dados fosse minimizada e a vida útil do disco aumentasse.

    
por qbi 15.01.2013 / 18:50

Tags