O TRIM funciona com o FAT32?

4

Eu usei este guia webupd8 para ajudar me Apare meu SSD no Ubuntu 13.10. O guia diz que "você deve se certificar de que a (s) partição (ões) seja EXT4 ou BTRFS". Infelizmente, eu estupidamente presumi que o HD foi formatado para ext4; na verdade é fat32.

O var/log/trim sugere que está funcionando:

*** Sun, 15 Dec 2013 11:30:42 +0000 ***
/: 50567962624 bytes were trimmed

Mas isso está realmente fazendo alguma coisa? Ou terei que reformatar o disco e começar tudo de novo?

Desculpe se isso parece um pouco paranóico. Qualquer garantia muito apreciada.

    
por Smecki 15.12.2013 / 13:41

3 respostas

2

Eu vejo que esta é uma questão antiga ... mas surge cedo nas pesquisas sobre o tópico, então parecia valer a pena dar uma resposta das fontes do kernel.

Existem duas maneiras diferentes pelas quais uma implementação do sistema de arquivos Linux pode "suportar" o TRIM:

  • Ele pode suportar o -o discard mount option , então os blocos que ficam livres são cortados imediatamente

  • Ele pode suportar o FITRIM ioctl , que é o que o comando userland fstrim usa para aparar todos os blocos atualmente livres em massa quando solicitado

Uma implementação do sistema de arquivos pode suportar um ou outro, ou ambos (ou nenhum).

Como se vê, a implementação do FAT foi capaz de fazer discard desde o kernel 2.6.28 . Isso antecede a opção de montagem, que não aparece até 2.6.33. Do 2.6.28 ao 2.6.32, o FAT acabou de ser gravado em discard incondicionalmente. Desde 2.6.33, você pode controlar se isso acontece ou não.

Quanto ao FITRIM ioctl, bem, isso se tornou uma coisa em 2.6.37 , mas eu não vejo nenhum sinal de que o código do sistema de arquivos FAT suporta, mesmo no mais recente, maior (a partir de hoje) 4.13rc5 . Vários outros sistemas de arquivos o implementaram, mas ninguém parece ter se incomodado com o FAT.

Isso é muito ruim, porque há pelo menos um cenário perfeitamente comum em que você gostaria de uma maneira de TRIMar todos os blocos livres existentes de uma só vez: você deu uma ótima atualização para o antigo Banana 6000 por dd -ing a imagem de disco completa da unidade giratória antiga para um novo SSD brilhante, agora, no que se refere ao SSD, todos esses blocos foram gravados, sejam eles importantes para o sistema de arquivos ou não. Então, é claro, você gostaria que os considerados livres pelo sistema de arquivos fossem aparados.

Mas pode haver esperança. Embora ainda não tenha tido a chance de experimentar, acho que isso pode funcionar:

  1. Monte o sistema de arquivos (não se esqueça de usar -o discard ).
  2. Crie alguns arquivos vazios.
  3. Exploda-os até o tamanho máximo possível usando fallocate -n (que aloca os blocos sem escrever nada para eles, por isso não colocará muito desgaste extra no SSD). Para FAT32 , um arquivo é limitado a pouco menos de 4 GiB, e é por isso que você pode precisar de vários arquivos temporários para usar todo o espaço livre. (Para este passo funcionar, você precisa do kernel 4.5 ou posterior, onde O FAT tem fallocate support .)
  4. Depois de preencher todo o espaço livre, livre-se dos arquivos temporários, permitindo que todos os blocos liberados sejam discard ed.

Isso, é claro, deve funcionar como uma alternativa de força bruta fstrim para qualquer implementação de sistema de arquivos que seja capaz de fazer discard mas não FITRIM .

p.s. Eu gosto dos links alternativos oferecidos abaixo no comentário de Tom Yan. Eu estava trabalhando no git repo oficial mais ou menos, mas o que eu gosto no serviço ao qual o Tom está vinculado é que você pode alternar mais facilmente entre diferentes versões de um arquivo para comparar.

    
por Chapman Flack 15.08.2017 / 06:39
0

Os seguintes sistemas de arquivos suportam TRIM: NTFS, HFS +, EXT4, Btrfs.

Muitos sistemas operacionais agora oferecem suporte a TRIM, projetado para melhorar o desempenho de gravação. O TRIM permite que o controlador de um dispositivo flash NAND gerencie o processo de apagamento após os dados serem excluídos de uma célula e antes que ocorra a próxima gravação nessa célula.

O Linux começou a suportar o TRIM no final de 2008, mas nem todos os sistemas de arquivos suportados pelo Linux suportam o TRIM. O Microsoft Windows começou a oferecer suporte ao TRIM no final de 2009 com o Windows Server 2008. O OpenSolaris começou a oferecer suporte ao TRIM em meados de 2010. O Android para dispositivos móveis começou a oferecer suporte ao TRIM em 2013.

Então, neste ponto, muitos, mas não todos os principais sistemas operacionais suportam o TRIM, que atualmente está disponível apenas para interfaces SATA.

TRIM (também soletrado trim) é um comando específico em uma interface serial ATA (SATA) que informa a um dispositivo de armazenamento NAND flash de estado sólido subjacente quais dados ele pode apagar. TRIM, que conceitualmente pode ser comparado a um utilitário de desfragmentação em um disco rígido giratório, melhora o desempenho ao liberar espaço pro-ativamente.

A memória flash NAND organiza os dados em páginas e as páginas são agrupadas em blocos. Os dados podem ser lidos e gravados no nível da página, mas só podem ser apagados no nível do bloco. Quando os dados são excluídos da mídia flash, as páginas associadas na unidade de estado sólido são sinalizadas para exclusão, mas não apagadas, porque somente os blocos podem ser apagados. Quando um novo arquivo é gravado, páginas individuais marcadas para exclusão são agrupadas em um bloco para que possam ser apagadas primeiro, abrindo espaço para a próxima gravação.

O comando TRIM permite que o sistema operacional notifique a unidade de estado sólido (SSD) que dados em um determinado conjunto de páginas podem ser sobrescritos, permitindo que o controlador da unidade de estado sólido gerencie o processo de apagamento entre o momento em que o host inicia uma delete e a próxima gravação. Movendo o apagamento do processo de gravação, as gravações podem ser mais rápidas.

Para que TRIM funcione, o sistema operacional do host (SO) e os drivers de armazenamento devem suportar o comando TRIM. Veja como funciona o relacionamento TRIM SSD. Em um ambiente Windows 7, por exemplo, quando a unidade de estado sólido relata que possui suporte a TRIM, o sistema operacional desabilitará a desfragmentação de disco e habilitará TRIM. Então, quando um arquivo no SSD do host é excluído, o sistema operacional envia um comando TRIM para o controlador flash informando quais blocos podem ser excluídos. O TRIM também pode ser iniciado manualmente pelo usuário ou agendado diariamente.

TRIM, que é um comando e não um acrônimo, está atualmente disponível somente para interfaces SATA. O comitê SAS adicionou o UNMAP, que é semelhante ao TRIM, à especificação SAS / SCSI. Leah Schoeb

EDITAR

Um comando Trim permite que um sistema operacional informe a unidade de estado sólido (SSD) quais blocos de dados não são mais considerados em uso e podem ser apagados internamente.

Um comando TRIM permite que seu sistema operacional encontre as páginas marcadas antes de você precisar delas e limpe-as. Limpar essas páginas de dados antecipadamente economiza tempo quando você precisa escrever nas páginas de dados novamente. É como se você tivesse seu próprio reciclador ao lado da sua mesa, reciclando os pedaços de papel à medida que eles chegam.

Para funcionar corretamente, o TRIM precisa ser suportado pela unidade de estado sólido e pelo sistema operacional que você está usando. Quando o OS e o SSD suportam as páginas TRIM individuais, as páginas individuais podem ser limpas e a unidade de estado sólido será informada de que as páginas estão em branco e podem ser gravadas.

Nem todos os sistemas de arquivos fazem uso do Trim. Entre os sistemas de arquivos que podem emitir solicitações de Trim automaticamente estão Ext4, Btrfs, FAT, GFS2 e XFS. No entanto, isso é desativado por padrão devido a problemas de desempenho,

A Microsoft afirma que o TRIM foi implementado apenas no NTFS no Windows 7.

    
por Mitch 15.12.2013 / 14:01
0

Concordar com este :

  

FAT: faça o descarte de uma opção de montagem

e wikipedia :

  

As solicitações de aparar automaticamente são: Ext4, Btrfs, FAT, GFS2 e XFS.

Então, sim, é suportado. Mas para ter certeza de aplicar o teste da resposta a esta pergunta.

UPDATE :

Smecki fez o teste e confirmou (ver comentários) que o TRIM está trabalhando nos volumes FAT32.

    
por falconer 15.12.2013 / 13:55

Tags