U mnoha nových pevných disků je velikost fyzického sektoru 4096. Bylo by možné přimět systém, aby používal velikost logického sektoru stejné velikosti namísto výchozí velikosti logického sektoru 512?
Urychlí to hromadné čtení a zápis?
Kde to lze nakonfigurovat?
Přijatá odpověď:
512 bajtů není ve skutečnosti výchozí velikost sektoru. Záleží na vašem hardwaru.
Jaké velikosti fyzických/logických sektorů hlásí váš disk, můžete zobrazit pomocí /sys
pseudo souborový systém, například:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Jaký je rozdíl mezi těmito dvěma hodnotami?
physical_block_size
je minimální velikost bloku, který je jednotka schopna zapsat v atomické operaci.logical_block_size
je nejmenší velikost, kterou je disk schopen zapisovat (viz dokumentace linuxového jádra).
Pokud tedy máte 4k disk, dává smysl, že váš zásobník úložiště (souborový systém atd.) používá něco rovného nebo většího, než je velikost fyzického sektoru.
Tyto hodnoty jsou také zobrazeny v nejnovějších verzích fdisk
, například:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Na současných linuxových distribucích jsou programy (které by se měly starat o optimální velikost sektoru) jako mkfs.xfs
ve výchozím nastavení vybere optimální velikost sektoru (např. 4096 bajtů).
Ale můžete to také explicitně specifikovat pomocí volby, například:
# mkfs.xfs -f -s size=4096 /dev/sda
Nebo:
# mkfs.ext4 -F -b 4096 /dev/sda
V každém případě většina mkfs
varianty také zobrazí použitou velikost bloku během provádění.
Pro existující souborový systém lze velikost bloku určit příkazem jako:
# xfs_info /mnt
[..]
meta-data= sectsz=4096
data = bsize=4096
naming =version 2 bsize=4096
log =internal bsize=4096
= sectsz=4096
realtime =none extsz=4096
Nebo:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
Nebo:
# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size 4
sys_array_size 97
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
dev_item.sector_size 4096
Při vytváření souborového systému na oddílu je další věcí, kterou je třeba zkontrolovat, zda je počáteční adresa oddílu skutečně zarovnána s velikostí fyzického bloku. Podívejte se například na fdisk -l
výstup, převést počáteční adresy na bajty, vydělit je velikostí fyzického bloku – připomenutí musí být nulové, pokud jsou oddíly zarovnány.