Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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

  • /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

ioctls du périphérique bloc

  • BLKALIGNOFF: alignment_offset
  • BLKPBSZGET : physical_block_size
  • BLKSSZGET : logical_block_size
  • BLKIOMIN : minimum_io_size
  • BLKIOOPT : optimal_io_size