23.2. Accès à l'espace utilisateur
Veuillez toujours prendre soin d'utiliser des E/S de taille et d'alignement corrects. Ceci est particulièrement important pour l'accès aux E/S directes. Les E/S directes doivent être alignées sur une limite
logical_block_size, et sur des multiples de logical_block_size.
Avec les périphériques 4K natifs (par exemple,
logical_block_size font 4K) il est désormais critique que les applications effectuent des E/S directes multiples de logical_block_size. Ceci signifie que les applications échoueront avec les périphériques 4k qui effectuent des E/S alignées sur 512 octets plutôt que sur des E/S alignées 4k.
Pour éviter ceci, une application doit consulter les paramètres d'E/S d'un périphérique afin de s'assurer qu'il utilise l'alignement et la taille des E/S corrects. Comme mentionné ultérieurement, les paramètres d'E/S sont exposés via les interfaces
sysfs et ioctl de périphérique bloc.
Pour obtenir plus de détails, veuillez consulter
man libblkid. Cette page man est fournie par le paquet libblkid-devel.
Interface sysfs Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
- /sys/block/
disk/alignment_offset - /sys/block/
disk/partition/alignment_offset - /sys/block/
disk/queue/physical_block_size - /sys/block/
disk/queue/logical_block_size - /sys/block/
disk/queue/minimum_io_size - /sys/block/
disk/queue/optimal_io_size
Le noyau exportera toujours ces attributs
sysfs pour les périphériques « hérités » qui ne fournissent pas d'informations sur les paramètres d'E/S, par exemple :
Exemple 23.1. Interface sysfs
alignment_offset: 0 physical_block_size: 512 logical_block_size: 512 minimum_io_size: 512 optimal_io_size: 0
alignment_offset: 0
physical_block_size: 512
logical_block_size: 512
minimum_io_size: 512
optimal_io_size: 0
ioctls du périphérique bloc Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
BLKALIGNOFF:alignment_offsetBLKPBSZGET:physical_block_sizeBLKSSZGET:logical_block_sizeBLKIOMIN:minimum_io_sizeBLKIOOPT:optimal_io_size