GSmartControl e qualquer ferramenta de outra linha de comando (como fdisk
, smartctl
, cat /sys/block/sd*/queue/hw_sector_size
, cat /sys/block/sd*/queue/physical_block_size
) eu tinha usado relatório a mesma para ambos os meus discos:
Sector Size: 512 bytes logical/physical
Esta é uma instalação padrão do Ubuntu 18.10 (posteriormente atualizada para 19.04). No entanto, o stat -f
comando nos dois discos informa:
Block size: 4096 Fundamental block size: 4096
Ambos os meus discos são SSDs e os discos AFAIK SSD exigem um tamanho de setor de 4K . Isso está bom ou estou faltando alguma coisa? As informações retornadas por stat
(= 4K) garantem que o sistema operacional sempre envie E / S para o disco em múltiplos de 4K e esses blocos nunca cruzem os limites de 4K (os blocos de E / S estarão sempre alinhados com 4K)?
Observe a seguinte saída ( sdb2
é minha partição raiz , sda
é meu /home
disco):
# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....
Device Start End Sectors Size Type
/dev/sdb1 2048 1050623 1048576 512M EFI System
/dev/sdb2 1050624 500117503 499066880 238G Linux filesystem
# df / /home
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb2 244568380 17799136 214276188 8% /
/dev/sda 479670976 129685112 325550152 29% /home
fonte
fdisk -l
para verificar problemas de alinhamento. E, aparentemente, o trabalho da SSD é um pouco diferente, por causa de sua construção física, mas não sou especialista nessa área.Respostas:
Antigamente, setores de 512 bytes eram a norma para discos. O sistema costumava ler / gravar setores apenas um setor por vez, e era o melhor que os discos rígidos antigos podiam fazer.
Agora, com as unidades modernas sendo tão densas, rápidas e inteligentes, os setores de leitura / gravação, apenas um setor por vez diminui a produtividade total.
O truque foi ... como você acelera a taxa de transferência total, mas ainda mantém a compatibilidade com os subsistemas de disco antigos / padrão? Você cria um tamanho de bloco 4096 composto por oito setores físicos de 512 bytes. Agora, o 4096 é a transferência mínima de leitura / gravação de / para o disco, mas é entregue em mandris compatíveis de 512 bytes para o sistema operacional.
Isso significa que, mesmo que o sistema precise apenas de um setor de informações de 512 bytes, a unidade lê oito setores de 512 bytes para obtê-lo. Se, no entanto, o sistema precisar dos próximos sete setores, ele já será lido e, portanto, nenhuma E / S de disco precisará ocorrer ... portanto, um aumento de velocidade na taxa de transferência total.
Os sistemas operacionais modernos podem tirar proveito total dos tamanhos de blocos 4K nativos das unidades modernas.
fonte
parted
para mostrar o tamanho do setor lógico e físico.grub
coloca código adicional no primeiro Mibibyte para inicializar no modo BIOS. (Em uma GPT, égrub
necessária uma pequena partição com obios_grub
sinalizador para que esse código seja inicializado no modo BIOS).De acordo com a Wikipedia "Advanced Format (AF) é qualquer formato de setor de disco usado para armazenar dados em unidades de disco que excedam 512, 520 ou 528 bytes por setor, como os setores de 4096 bytes de uma unidade de formato avançado (AFD)". O Advanced Format (AF) é um formato de disco que usa nativamente um tamanho de setor de 4.096 bytes em vez de 512 bytes. Para manter a compatibilidade com sistemas legados, os discos AF emulam um tamanho de setor de 512 bytes.
Obtive os mesmos resultados que você obteve executando
stat -f
esmartctl
em dois SSDs. Os dois SSDs foram reconhecidos automaticamente pelo sistema operacional quando foram instalados e exigiram configuração zero; portanto, os dados que você obteve são as configurações padrão para o tamanho do bloco e do setor.fonte
O hardware e os sistemas operacionais antigos usavam setores de 512 bytes, desde 2011 (quase) todo o hardware de armazenamento possui setores de 4096 (ou mais ) bytes; mas algum hardware suporta a emulação de setores de 512 bytes para sistemas legados. Há exceções, o Samsung 840 EVO SSD possui blocos de tamanho 2048 KB .
Um código de correção de erros (ECC) é calculado para cada bloco de 512 bytes e, como você pode imaginar, os dados do ECC também exigem espaço de armazenamento. Não é necessário dizer que um setor de 4096 bytes requer menos informações do ECC do que oito blocos de 512 bytes se os algoritmos do ECC permanecerem inalterados. No final, a capacidade total de armazenamento de um disco rígido aumenta como resultado de menos sobrecarga de dados do ECC.
O uso de setores 4K faz sentido do ponto de vista arquitetural, pois outros índices (como páginas de memória x86 e muitos clusters de sistemas de arquivos) também empregam o tamanho de 4 KB. O formato avançado permite algoritmos ECC mais robustos, o que é importante à luz das capacidades cada vez maiores. Os controladores empregam técnicas adicionais além da correção de erros, através da compreensão das características de erro da memória flash NAND e do comportamento da carga de trabalho.
Advanced Format (AF) é qualquer formato de setor de disco usado para armazenar dados em discos magnéticos em unidades de disco rígido (HDDs) que excedem 512, 520 ou 528 bytes por setor, como os 4096, 4112, 4160 e 4224 bytes ( 4 KB) de uma unidade de formato avançado (AFD). Setores maiores permitem a integração de algoritmos mais fortes de correção de erros para manter a integridade dos dados em densidades de armazenamento mais altas.
Para discos SCSI (SAS), o tamanho do bloco RAID é maior que o tamanho do bloco JBOD devido aos campos de integridade de dados padronizados SCSI T10 , além da verificação lógica de blocos defeituosos armazenados em cada bloco com os dados. Os adaptadores RAID SAS suportam blocos de disco com base em 512 bytes de dados ou 4K bytes de dados. O tamanho do bloco RAID para os 512 discos é de 528 bytes por setor e o tamanho do bloco RAID para os discos de 4K é de 4224 bytes por setor.
Como você está gravando na memória e não o tamanho de um setor físico de disco giratório tem menos efeito do que garantir que suas partições estejam alinhadas com o tamanho do bloco de apagamento . Mesmo assim, é melhor ter software e hardware atualizados e usar o tamanho do setor em 4K.
O tamanho maior do setor é recomendado pela Intel - " Obtenha ótimo desempenho com alterações no tamanho do setor físico do SSD ".
fonte