Dois problemas Primeiro: como particionar a unidade flash?
Não preciso fazer isso, mas não tenho mais certeza se minha partição está alinhada corretamente, pois fui forçada a excluir e criar uma nova tabela de partições depois que o gparted reclamou quando tentei formatar a unidade do FAT para o ext4.
A resposta ingênua seria dizer "apenas use o padrão e tudo ficará bem". No entanto, se você ler os seguintes links, saberá que as coisas não são tão simples: https://lwn.net/Articles/428584/ e http://linux-howto-guide.blogspot.com/2009/10/increase- usb-flash-drive-write-speed.html
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 partições em 4 MiB (atualmente é em 1 MiB). Mas ainda não sei como definir os cabeçotes e os setores corretamente para o meu dispositivo.
Segundo problema: sistema de arquivos.
A partir dos benchmarks que vi, o ext4 oferece o melhor desempenho, porém existe a questão do nivelamento do desgaste. Como posso saber que o microcontrolador do Transcend JetFlash 700 fornece nivelamento de desgaste? Ou apenas matarei minha unidade mais rápido?
Eu já vi muitas postagens na web dizendo: não se preocupe, as unidades mais recentes já cuidam disso. Mas nunca vi uma única evidência disso e, em algum momento, as pessoas começaram a misturar SSD com a tecnologia de drives flash USB. A opção segura seria ir para o ext2, no entanto, uma série de testes que eu executei mostrou um desempenho horrível !!!
Esses valores são de um cenário real e não de algum teste sintético:
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 falta fatos.
Obrigado pela ajuda.
Respostas:
Não se preocupe com cilindros, cabeçotes e setores e só trabalhe com setores. A maneira mais fácil de alinhar o sistema de arquivos é simplesmente não ter uma tabela de partição (por exemplo, criar o sistema de arquivos
/dev/sdX
diretamente). A maioria dos sistemas Linux lida com isso muito bem, 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 compõem um bloco de apagamento. Os blocos de apagamento estão em torno de 128-512KiB; portanto, se você não conseguir descobrir o que a sua unidade flash usa, use 1024 setores. Verifique se as partições começam com um múltiplo desse número.Você também deseja informar ao ext2 / 3/4 sobre o tamanho do bloco de apagamento para evitar modificações desnecessárias. Defina ambos
stride
estripe-width
o número de blocos do sistema de arquivos que compõem um bloco de apagamento. Para trabalhar em um bloco de apagamento de 512KiB, use o seguinte: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, pois menos metadados precisam ser modificados para arquivos grandes. Eu provavelmente usaria ext4 com o diário desativado:
fonte
cat /proc/mtd
para descobrir o tamanho dos blocos apagados dos dispositivos flash conectados.Atualmente, a maioria das ferramentas de particionamento e criação de sistemas de arquivos do Linux padroniza valores que alinham dados nos limites de 4K e até usarão o tamanho do bloco subjacente se o disco o expor, para que as coisas não sejam tão ruins quanto no artigo LWN:
TLDR; Ao usar uma distribuição Linux moderna (por exemplo, 2013 ou posterior) com versões recentes de ferramentas para criar suas partições e sistemas de arquivos, o alinhamento melhor (mas não perfeito) ocorrerá automaticamente. Também tome cuidado - os melhores valores para um cartão SD podem ser diferentes dos de um pendrive (acredito que o Transcend JetFlash é um pendrive e não um cartão SD). Você precisaria fazer benchmark para deduzir o verdadeiro tamanho do bloco de apagamento subjacente em flash barato ...
fonte
Além disso, no seu fstab, certifique-se de usar a opção de montagem "noatime" para evitar gravações desnecessárias sempre que um arquivo for acessado.
fonte