Des problèmes d’hyperscaler de nos jours ? Les serveurs Linux prennent trop de temps à redémarrer en raison d’un trop grand nombre de lecteurs NVMe. Heureusement, Google travaille sur une amélioration pour résoudre ce problème où certains de leurs serveurs à plusieurs lecteurs peuvent prendre plus d’une minute pour que le noyau Linux exécute ses tâches d’arrêt, tandis que ce travail peut également profiter à d’autres utilisateurs, bien que moins notablement.
Les ingénieurs de Google proposent une interface d’arrêt asynchrone pour le noyau Linux. Actuellement, les API d’arrêt du noyau Linux au niveau du bus sont synchrones, ce qui peut causer des problèmes comme Google signale qu’il y a trop de disques de stockage NVMe sur un seul serveur. En raison de la nature synchrone lors de la gestion de l’arrêt, chaque lecteur NVMe peut prendre environ 4,5 secondes pour s’arrêter. Les serveurs Google ayant désormais plus de 16 périphériques NVMe, cela peut signifier une minute supplémentaire pour s’arrêter et passer par la phase de redémarrage… Avec l’interface d’arrêt asynchrone et l’adaptation du pilote NVMe pour l’utiliser, leurs redémarrages-et finalement la quantité de temps d’arrêt du serveur-peut être facilement réduit d’une minute.
Les correctifs proposés par Google permettent une interface d’arrêt asynchrone facultative au niveau du bus. La nouvelle interface maintient la rétrocompatibilité avec l’implémentation synchrone. Dans le cadre des correctifs, tous les périphériques basés sur PCI Express sont déplacés pour utiliser l’interface asynchrone, implémentent les modifications au niveau PCIe, puis les modifications apportées au pilote NVMe pour exploiter l’interface d’arrêt asynchrone.
Cette interface d’arrêt asynchrone proposée dans sa forme actuelle ne représente qu’une centaine de lignes de nouveau code, d’accord, un seul pilote l’utilisant pour le moment. Mais avec les serveurs Linux modernes à hautes performances qui continuent d’ajouter plus de disques NVMe et d’autres périphériques PCIe où l’interface d’arrêt synchrone du noyau Linux peut signifier des temps d’arrêt supplémentaires, espérons-le ces correctifs parviendront à progresser et à se généraliser rapidement tout en adaptant davantage de pilotes pour en faire usage.