Linux 7.2-rc6 embarque deux correctifs libata qui désactivent le Link Power Management SATA sur trois disques Western Digital, parce que sur ces modèles la fonction d'économie d'énergie met le lien hors ligne au lieu de le mettre au repos. Les disques concernés sont les WDC WD100EFGX-68CPLN0 et WDC WD102KFBX-68M95N0, deux disques NAS de 10 To de la gamme Red, plus un SSD WD Green 2,5 pouces de 480 Go. Niklas Cassel a écrit les correctifs et Damien Le Moal les a appliqués le vingt neuf juillet. Le noyau stable 7.2 arrive plus tard en août. Sur un noyau plus ancien, démarrez avec libata.force=nolpm.
The short answer
Deux correctifs de Niklas Cassel, appliqués par le mainteneur ATA Damien Le Moal le vingt neuf juillet et intégrés à Linux 7.2-rc6, ajoutent des correctifs NOLPM pour trois disques Western Digital. Sur les WDC WD100EFGX-68CPLN0 et WDC WD102KFBX-68M95N0, deux disques NAS de 10 To de la gamme Red, ainsi que sur un SSD WD Green 2,5 pouces de 480 Go, le Link Power Management SATA met le lien hors ligne au lieu de le mettre au repos. Le noyau refuse désormais d'activer le LPM par défaut sur ces chaînes de modèle. Le noyau stable 7.2 est attendu plus tard en août. Sur tout ce qui est plus ancien, libata.force=nolpm est le paramètre de démarrage qui donne le même comportement dès aujourd'hui.
Un disque qui disparaît par intermittence est l'une des pannes les plus pénibles à posséder. Cela ressemble à un câble, puis à un fond de panier, puis à un contrôleur, et vous remplacez les trois avant que quelqu'un pense à soupçonner une fonction d'économie d'énergie qui fait exactement ce qu'on lui a demandé.
Ce qui a été intégré
Deux commits sont entrés dans l'arbre ATA le vingt neuf juillet, écrits par Niklas Cassel et appliqués par le mainteneur du sous système Damien Le Moal, et ils ont rejoint la branche principale dans la remontée de correctifs pour Linux 7.2-rc6.
Le premier ajoute un correctif NOLPM pour deux disques : WDC WD100EFGX-68CPLN0 et WDC WD102KFBX-68M95N0, deux disques 3,5 pouces de 10 To de la gamme Red vendus pour le service en NAS. Le second couvre un SSD WD Green 2,5 pouces de 480 Go. Sur les trois, l'activation du Link Power Management fait passer le lien SATA hors ligne au lieu de le mettre au repos, et le périphérique disparaît du point de vue du système d'exploitation.
Le mécanisme des correctifs par modèle est ancien et sans gloire. libata tient une table indexée sur la chaîne de modèle que le disque déclare à l'identification, et NOLPM est un des drapeaux qu'elle peut porter. Quand la chaîne correspond, le noyau n'active tout simplement jamais le LPM pour ce périphérique. Rien d'autre n'est traité différemment sur le disque.
Pourquoi le LPM produit régulièrement ce genre de correctif
Le LPM existe pour économiser de l'énergie sur un lien SATA au repos, entre un demi watt et un watt et demi par disque. Le lien passe en état basse consommation quand il n'y a pas de trafic et doit revenir à la commande suivante.
Le mode de défaillance est toujours le même : le disque annonce la prise en charge, l'hôte le croit, et le chemin de réveil ne marche pas sur ce micrologiciel. Le noyau n'a aucun moyen de le savoir à l'avance, puisque le seul signal dont il dispose est la déclaration du disque lui même. Le sous système fait donc la seule chose possible, accumuler une liste de périphériques dont les déclarations se sont révélées optimistes. Cette liste grandit chez tous les fabricants depuis plus de dix ans, et l'ajout de cette semaine tient en trois entrées de plus, rien de structurel.
À garder en proportion : trois chaînes de modèle dans un catalogue énorme. Si vos disques Western Digital allaient bien, ils vont toujours bien.
Ce qu'il faut en faire
Si vous exploitez un des trois modèles et que vous êtes en 7.2 ou plus récent, rien. Le correctif s'applique à la détection du périphérique.
Si vous êtes sur un noyau plus ancien et que vous vous battez avec un disque qui s'évanouit, relevez la chaîne de modèle que votre disque déclare réellement plutôt que le nom commercial imprimé sur l'étiquette, puisque la correspondance porte sur cette chaîne. Démarrez ensuite avec libata.force=nolpm pour couper le LPM sur toute la machine, ou ciblez un seul port avec le préfixe de numéro de port si vous préférez conserver l'économie sur le reste de la grappe. Ajoutez le paramètre à la configuration du chargeur de démarrage pour qu'il survive au prochain redémarrage, et retirez le une fois passé sur un noyau qui porte le correctif.
L'arbitrage est explicite et modeste. Vous abandonnez l'économie par disque et vous obtenez un disque qui reste sur le bus. Sur un NAS, la décision n'a rien de difficile.
Il y a une seconde leçon dans ces correctifs, facile à survoler. Si vous rencontrez ce type de panne et que votre disque n'est pas dans la table, la correction commence par un courriel à la liste ATA avec l'identifiant exact relevé sur votre machine. C'est comme cela que les trois entrées y sont arrivées.
Sources et pour aller plus loin
- Phoronix : Linux 7.2-rc6 contourne plusieurs disques SATA Western Digital défaillants
- Historique du noyau Linux pour drivers/ata/libata-core.c
- Documentation du noyau : paramètres de la ligne de commande, dont libata.force
- Documentation du noyau : le guide développeur libata
Questions fréquentes
Qu'est ce que le Link Power Management et pourquoi un disque casserait dessus ?
Le LPM permet au lien SATA entre le contrôleur et le disque de passer en état basse consommation quand il n'y a pas de trafic, ce qui économise environ un demi watt à un watt et demi par disque. Le lien est censé se réveiller à la commande suivante. Sur des disques dont le micrologiciel gère mal la transition, le réveil ne se fait pas proprement et le noyau voit le périphérique tomber du bus. La fonction se négocie par périphérique, donc elle marche très bien sur le disque voisin dans le même boîtier. C'est exactement pour cela que le noyau tient une liste de correctifs par modèle plutôt qu'un interrupteur global.
Quels disques sont couverts par ces deux correctifs ?
Trois, identifiés par la chaîne exacte que les disques déclarent. Les WDC WD100EFGX-68CPLN0 et WDC WD102KFBX-68M95N0 sont deux disques 3,5 pouces de 10 To de la gamme Red destinés aux NAS et sont traités par un premier correctif. Le second couvre un SSD WD Green 2,5 pouces de 480 Go. La correspondance porte sur la chaîne de modèle, donc une autre révision de micrologiciel ou une autre capacité de la même gamme n'est pas incluse automatiquement. Si votre disque se comporte mal et que son identifiant n'est pas dans la liste, la démarche est de le signaler avec la chaîne relevée sur votre propre machine, pas de supposer que le correctif s'applique.
Je suis sur un noyau plus ancien. Que faire tout de suite ?
Démarrez avec libata.force=nolpm, ce qui coupe le LPM pour tous les périphériques ATA de la machine : brutal, mais fiable. Vous pouvez aussi cibler un seul port avec le préfixe de numéro de port, par exemple libata.force=1.00:nolpm, si vous préférez laisser l'économie d'énergie active sur les autres disques. Ajoutez le paramètre à la configuration de votre chargeur de démarrage pour qu'il survive à un redémarrage. Une fois passé en 7.2, ou sur un noyau stable qui a récupéré la rétroportation, le correctif s'applique tout seul pour ces trois modèles et vous pouvez retirer le paramètre.
Combien cela coûte en consommation ?
Entre environ un demi watt et un watt et demi par disque, c'est à dire l'économie que le LPM apportait. Sur un poste isolé c'est du bruit de fond. Sur un NAS bien rempli cela s'additionne, et autant dire clairement qu'il s'agit d'un vrai arbitrage et pas d'un correctif gratuit. L'alternative, c'est un disque qui disparaît par intermittence du bus, ce qui sur une grappe signifie des reconstructions dégradées et beaucoup de soirées perdues, donc le noyau tranche dans le sens évident. Si la consommation compte plus que la stabilité à vos yeux, le correctif reste un réglage par défaut du noyau et pas une loi.
Dois-je m'inquiéter pour mes autres disques Western Digital ?
Non, et cela mérite d'être dit franchement. Il s'agit de trois chaînes de modèle précises dans un catalogue très large, et le noyau collecte des correctifs LPM par périphérique depuis plus de dix ans chez de nombreux fabricants. L'arrivée d'un correctif, c'est le système qui fonctionne comme prévu : quelqu'un a rencontré une panne reproductible, a identifié le modèle, et la correction part vers tout le monde avant que la plupart des gens ne voient le symptôme. Si vos disques sont stables, rien ne change pour vous. Ceux qui y gagnent sont ceux qui courent après un disque intermittent depuis des mois.