Como particionar corretamente a unidade flash usb e qual sistema de arquivos escolher considerando o nivelamento de desgaste?

13

Dois problemas. Primeiro: como particionar o pen drive?

Eu não preciso fazer isso, mas não tenho mais certeza se minha partição está alinhada corretamente, pois fui forçado a excluir e criar uma nova tabela de partições depois que o gparted reclamou quando tentei formatar a unidade de FAT para ext4.

A resposta ingênua seria dizer "basta usar o padrão e tudo ficará bem". No entanto, se você ler os links a seguir, saberá que as coisas não são tão simples: link e link

Depois, há também a questão dos cilindros, cabeças e setores. Atualmente eu recebo isso:

$sfdisk -l -uM  /dev/sdd
Disk /dev/sdd: 30147 cylinders, 64 heads, 32 sectors/track
Warning: The partition table looks like it was made
   for C/H/S=*/255/63 (instead of 30147/64/32).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start   End    MiB    #blocks   Id  System
/dev/sdd1         1  30146  30146   30869504   83  Linux

$fdisk -l /dev/sdd
Disk /dev/sdd: 31.6 GB, 31611420672 bytes
255 heads, 63 sectors/track, 3843 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00010c28

Então, do meu entendimento atual, devo alinhar as partições em 4 MiB (atualmente é de 1 MiB). Mas ainda não sei como definir as cabeças e os setores corretamente para o meu dispositivo.

Segundo problema: sistema de arquivos.

Dos benchmarks vi ext4 fornece o melhor desempenho, no entanto, há a questão do nivelamento de desgaste. Como posso saber que o microcontrolador do meu Transcend JetFlash 700 oferece um nivelamento de desgaste? Ou eu vou apenas matar meu carro mais rápido?

Eu vi muitas postagens na web dizendo que não se preocupe, as unidades mais novas já cuidam disso. Mas eu nunca vi uma única prova apoiada e, em algum momento, as pessoas começam a misturar SSD com a tecnologia USB flash drives. A opção segura seria ir para ext2, no entanto, um sério dos testes que realizei mostrou um desempenho horrível!

Estes valores são de um cenário real e não de alguns testes sintéticos:

42 files: 3,429,415,284 bytes copied to flash drive
original fat32: 15.1 MiB/s
ext4 after new partition table: 10.2 MiB/s
ext2 after new partition table:  1.9 MiB/s

Por favor, leia os links que eu postei acima antes de responder. Eu também estaria interessado em respostas com algumas referências, porque muito é dito e re-dito, mas então falta fatos.

Obrigado pela ajuda.

    
por random1 16.01.2012 / 18:24

3 respostas

8

Não se preocupe com cilindros, cabeças e setores e apenas trabalhe com setores. A maneira mais fácil de alinhar o sistema de arquivos é simplesmente não ter uma tabela de partição (ou seja, criar o sistema de arquivos em /dev/sdX diretamente). A maioria dos sistemas Linux lidará bem com isso, mas o Windows vai pirar e você também não poderá torná-lo inicializável. Se você precisar de uma tabela de partição, calcule quantos setores de 512 bytes formam um bloco de apagamento. Os blocos de exclusão estão em torno de 128 a 512 KiB, portanto, se você não conseguir descobrir o que o seu pendrive usa, vá para 1024 setores. Certifique-se de que as partições começam em um múltiplo desse número.

Você também pode informar ao ext2 / 3/4 sobre o tamanho do bloco de apagamento, para evitar a modificação desnecessária de blocos. Defina stride e stripe-width como o número de blocos do sistema de arquivos que compõem um bloco de apagamento, portanto, trabalhando em um bloco de 512KiB, use o seguinte:

mkfs.ext4 -b 4096 -E stride=128,stripe-width=128

Em termos de desempenho, não ter um diário deve melhorar o desempenho (mas aumentar a chance de corrupção de dados se a operação for interrompida). No entanto, as extensões do ext4 devem melhorar o desempenho porque menos metadados precisam ser modificados para arquivos grandes. Eu provavelmente usaria ext4 com o diário desativado:

tune2fs -O ^has_journal
    
por 26.03.2012 / 06:08
3

Atualmente, a maioria das ferramentas de criação de partições e de sistema de arquivos Linux padroniza valores que alinham dados em limites de 4K e até usam o tamanho de bloco subjacente se o disco o expuser, então as coisas não são tão ruins quanto no artigo do LWN:

TLDR; Ao usar uma distribuição Linux moderna (digamos 2013 ou posterior) com versões recentes de ferramentas para criar melhor suas partições e sistemas de arquivos (mas não perfeitos), o alinhamento ocorrerá automaticamente. Também tome cuidado - os melhores valores para um cartão SD podem ser diferentes dos de um pendrive (acredito que o seu Transcend JetFlash seja um pendrive e não um cartão SD). Você teria que benchmark para deduzir o verdadeiro bloco de apagamento subjacente tamanho em flash barato ...

    
por 12.01.2014 / 10:33
0

Além disso, no seu fstab, certifique-se de usar a opção de montagem "noatime" para evitar gravações desnecessárias toda vez que um arquivo for acessado.

    
por 03.06.2013 / 15:33