Por que o tamanho do bloco de uma partição é menor que o do disco subjacente?

3

Meu entendimento é que o bloco (na frase "tamanho de bloco") é como um buffer de E / S ou tamanho mínimo de E / S para um dispositivo. Como as partições são construídas em cima de dispositivos físicos, como podem ter blocos de tamanho ainda menor? Por exemplo, em minha máquina, recebi 1024 para xvda1 , mas 4096 para xvda . Veja o código abaixo:

λ> sudo blockdev --getbsz /dev/xvda
4096
λ> sudo blockdev --getbsz /dev/xvda1
1024
λ> sudo fdisk -l /dev/xvda
Disk /dev/xvda: 50 GiB, 53687091200 bytes, 104857600 sectors
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: dos
Disk identifier: 0x8be88ed1

Device     Boot    Start       End  Sectors  Size Id Type
/dev/xvda1 *        2048    409599   407552  199M 83 Linux
/dev/xvda2        409600  41943039 41533440 19.8G 83 Linux
/dev/xvda3      41943040  58720255 16777216    8G 82 Linux swap / Solaris
/dev/xvda4      58720256 104857599 46137344   22G 83 Linux

EDITAR:

Acho que "tamanho de bloco" de um dispositivo de bloco (por exemplo, uma partição) e "tamanho de bloco" de um sistema de arquivos são duas coisas diferentes. Por exemplo:

λ> sudo dumpe2fs -h /dev/xvda3 | grep -i 'block size'
dumpe2fs 1.42.13 (17-May-2015)
dumpe2fs: Bad magic number in super-block while trying to open /dev/xvda3
λ> sudo blockdev --getbsz /dev/xvda3
4096
    
por wlnirvana 07.04.2016 / 17:00

1 resposta

0

fdisk informa tamanhos de setor físico "falsos". Uma espécie de "compatibilidade histórica".

O sistema ou o hardware de disco é capaz de emular setores de 512 bytes se o alinhamento de suas partições exigir isso, mas é mais lento (e provavelmente desaparece dos SSDs mais rapidamente). É por isso que é amplamente recomendado alinhar partições em limites maiores, assim como o seu (eles estão alinhados em 2048 * 512 = 1 MB).

    
por 07.04.2016 / 22:05