Avec de nombreux nouveaux disques durs, la taille du secteur physique est de 4096. Serait-il possible de faire en sorte que le système utilise une taille de secteur logique de la même taille, plutôt que la taille de secteur logique par défaut de 512?
Cela accélérera-t-il les lectures et les écritures en masse? Où peut-il être configuré?
512 octets n'est pas vraiment la taille de secteur par défaut. Cela dépend de votre matériel.
Vous pouvez afficher les tailles de secteurs physiques/logiques que votre disque signale via le /sys
pseudo système de fichiers, par exemple:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Quelle est la différence entre ces deux valeurs?
physical_block_size
est la taille minimale d'un bloc que le lecteur est capable d'écrire dans une opération atomique.logical_block_size
est la plus petite taille que le lecteur est capable d'écrire (cf. la documentation du noyau linux).Ainsi, si vous avez un lecteur 4k, il est logique que votre pile de stockage (système de fichiers, etc.) utilise quelque chose d'égal ou supérieur à la taille du secteur physique.
Ces valeurs sont également affichées dans les versions récentes de fdisk
, par exemple:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Sur les distributions Linux actuelles, les programmes (qui devraient se soucier de la taille optimale du secteur) comme mkfs.xfs
choisira la taille de secteur optimale par défaut (par exemple 4096 octets).
Mais vous pouvez également le spécifier explicitement via une option, par exemple:
# mkfs.xfs -f -s size=4096 /dev/sda
Ou:
# mkfs.ext4 -F -b 4096 /dev/sda
Dans tous les cas, la plupart des variantes de mkfs
afficheront également la taille de bloc utilisée lors de l'exécution.
Pour un système de fichiers existant, la taille du bloc peut être déterminée avec une commande comme:
# 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
Ou:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
Ou:
# 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
Lors de la création du système de fichiers sur une partition, une autre chose à vérifier est alors si l'adresse de début de la partition est réellement alignée sur la taille du bloc physique. Par exemple, regardez le fdisk -l
sortie, convertissez les adresses de début en octets, divisez-les par la taille du bloc physique - le rappel doit être nul si les partitions sont alignées.
Non, ce n'est pas possible, et cela n'aurait pas d'importance s'il l'était. IO se fait généralement en unités d'au moins 4096 octets de toute façon, et généralement beaucoup plus.
Oui, c'est possible, mais cela entraînerait le remplissage du lecteur beaucoup plus rapidement qu'il ne le devrait. Pour les fichiers de moins de 512 Ko, chaque fichier occuperait alors un total de 4 096 Ko (4 Mo) et remplirait le reste du secteur avec des 0 en raison de l'impossibilité pour la plupart des systèmes de fichiers (NTFS et similaires) de permettre aux fichiers de partager des secteurs. La meilleure option pour un système de fichiers serait d'autoriser des tailles de secteur variables, mais cela augmente la taille du MFT (table de fichiers maîtres) et augmente le risque de corruption de données tout en réduisant la capacité de récupérer facilement des données. En d'autres termes, les limites ne seraient pas entièrement connues du logiciel de récupération. Ainsi, bien qu'une taille de secteur logique de 4096 Ko soit géniale pour les gros fichiers, pour un PC à usage quotidien normal, ce n'est qu'un tas de 0. Maintenant, cela dit, il y a la possibilité de stocker des données dans le MFT lui-même lorsqu'il s'agit de données plus petites que la taille du secteur logique. Cela signifie cependant que votre MFT devient énorme et que les données seront écrites deux fois (il y a deux copies du MFT sur votre disque dur). Vous devrez également spécifier la taille maximale du MFT qui peut causer des problèmes lorsque vous atteignez son maximum ou que l'utilisation du lecteur dépasse ce qui serait gratuit pour le MFT. Tout cela est basé sur l'utilisation d'un système de fichiers NTFS. Du côté positif, NTFS vous permet d'utiliser la compression native pour les fichiers au niveau du bloc pour toute taille de secteur logique de 4 Mo ou moins. Cette limitation est appliquée en raison de la façon dont fonctionne la compression NTFS. Les blocs de 4 Mo sont lus et compressés quelle que soit la taille du secteur logique. Cela, bien sûr, ne peut pas se produire pour une taille de secteur supérieure à 4 Mo, car il franchit alors les frontières et perd des données.
Alors, cela clarifie-t-il un peu les choses pour vous?