22.4. Empiler les paramètres d'E/S

Toutes les couches de la pile d'E/S Linux ont été conçues pour propager les divers paramètres d'E/S à travers la pile. Lorsqu'une couche consomme un attribut ou aggrège plusieurs périphériques, celle-ci doit exposer les paramètres d'E/S appropriés de manière à ce que les périphériques ou outils de la couche supérieure puissent avoir une vision précise du stockage tel qu'il s'est transformé. Voici quelques exemples pratiques :
  • Seule une couche de la pile d'E/S doit s'ajuster pour un décalage alignment_offset qui n'est pas égal à zéro ; une fois que la couche s'ajuste de manière correspondante, un périphérique avec un décalage alignment_offset de zéro sera exporté.
  • Un périphérique DM (« Device Mapper ») entrelacé créé avec LVM doit exporter des valeurs minimum_io_size et optimal_io_size relatives au compte des entrelacements (nombre de disques) et à la taille de bloc fournie par l'utilisateur.
Dans Red Hat Enterprise Linux 7, les pilotes de périphériques (MD) Device Mapper et Software Raid peuvent être utilisés pour combiner arbitrairement des périphériques avec différents paramètres d'E/S. La couche du bloc du noyau tentera raisonnablement de combiner les paramètres d'E/S des périphériques individuels. Le noyau n'empêchera pas la combinaison de périphériques hétérogènes. Cependant, prenez soin de connaître les risques associés à ces actions.
Par exemple, un périphérique de 512 octets et un périphérique 4K peuvent être combinés en un seul périphérique logique DM, qui posséderait une taille logical_block_size de 4K. Les systèmes de fichiers en couche sur de tels périphériques hybrides supposent que l'écriture sur 4K sera atomique, mais en réalité, cela s'étendra sur 8 adresses de blocs logiques lors de l'exécution sur le périphérique de 512 octets. L'utilisation de la valeur logical_block_size 4K pour un périphérique de 512 octets de haut niveau augmente le potentiel d'écriture partielle sur le périphérique de 512 octets en cas de panne du système.
Si la combinaison des paramètres d'E/S de multiples périphériques résulte en un conflit, la couche du bloc peut envoyer un avertissement que le périphérique est susceptible d'effectuer des écritures partielles ou qu'il n'est pas aligné correctement.