Les processeurs doubles offrent-ils une tolérance aux pannes?

16

Disons que j'ai acheté deux Intel Xeon et les ai installés dans du matériel de classe serveur ... Si un processeur tombe en panne, l'autre fonctionnera-t-il et récupérera-t-il le jeu, offrant ainsi une tolérance aux pannes?

Cela ne semble pas très probable, mais j'ai pensé que je demanderais au lieu de faire des hypothèses.

Soviero
la source

Réponses:

29

Dans un système normal à double socket, non, bien qu'il existe des serveurs qui permettent l'échange à chaud des processeurs et de la RAM. Donc , ces choses ne existent, mais ils sont à la très, très haut de gamme du marché.

Ce n'est pas vraiment un gros problème - de tout ce qui peut échouer dans votre serveur, le processeur est juste en bas de la liste, à côté de ces petites contremarches en laiton qui maintiennent la carte mère hors du châssis.

Mark Henderson
la source
1
Une pâte thermique mal installée peut provoquer une surchauffe d'un CPU pendant la charge de pointe. Je suis sûr qu'il y a beaucoup plus de cas qui se produisent que l'échec spontané de la colonne montante en laiton.
Oddthinking
8
@Oddthinking Je pense que vous l'avez pris trop au sérieux.
Peter
5
Même avec des CPU remplaçables à chaud, le système ne tolérera toujours pas une défaillance brutale de l'un d'entre eux. Supposons que le noyau du système d'exploitation s'exécute actuellement sur le CPU qui meurt, il ne peut pas simplement reprendre l'exécution sur l'autre CPU. Pour les CPU remplaçables à chaud, le noyau doit d'abord fermer ce CPU avec élégance.
Patrick
4
@Patrik: oui, c'est vrai. Vous savez - FAUX;) c'est un comportement standard pour les CPU haut de gamme - d'accord, c'est le mainframe où le CPU coûte 5000+ USD. Pourtant, ils utilisent la mémoire transactionnelle et la transaction serait redémarrée sur un autre processeur.
TomTom
5
@TomTom: Bien sûr, nous parlons alors de choses comme le vénérable TANDEM (et ses successeurs modernes), pas une architecture x86-64 vanille.
Piskvor
9

En parlant de matériel de base x86, si un système fonctionne et qu'un processeur tombe en panne, les choses s'arrêteront normalement. Cependant, le système fonctionnera correctement après un redémarrage, quoique un peu plus lentement.

Plusieurs processeurs sont généralement là pour avoir un traitement parallèle, pas vraiment pour la tolérance aux pannes. Mais c'est bien d'avoir un système qui démarre encore si un CPU (ou plus) tombait en panne.

Je dirais qu'il est un peu plus probable que votre processeur tombe en panne que Mark Henderson ne le suggère, mais c'est encore très peu probable. D'après mon expérience, cela se produit principalement lorsque le système surchauffe fréquemment et s'arrête (c'est assez facile dans une salle de serveurs de bureau mal climatisée). Les processeurs n'ont pas tendance à aimer ça beaucoup.

Bien sûr, si vous aviez un joli mainframe IBM ou similaire, l'échange à chaud d'un CPU (carte) est assez "facile".

aseq
la source
Hmmm, mais même dans le cas d'un redémarrage dur: IIRC si le CPU # 0 échoue, vous êtes toujours foutu - pas de POST, ce qui signifie aucun autre démarrage, car seul le premier CPU est utilisé pour le processus de démarrage précoce.
Piskvor
Je ne sais pas si ce serait le cas. Je devrais le tester sur un serveur. Je pensais que cela n'aurait pas d'importance et tant qu'il y aura 1 CPU présent, le système démarrera correctement.
aseq
5

Si un processeur venait à tomber en panne - ce qui est extrêmement improbable, selon les autres réponses - il n'y a pratiquement rien que le système puisse faire pour récupérer. Selon la façon dont il échoue, il pourrait finir par corrompre la mémoire de manière étrange, ou détruire la table de processus, ou qui sait quoi d'autre. Si vous deviez avoir une sorte de système de surveillance actif qui garde un œil sur le CPU pour s'assurer qu'il fonctionne bien (et capable, par exemple, d'annuler toutes les modifications apportées par le CPU pendant ses affres), ce serait également un autre système qui peut échouer, et déterminer par programme un échec logiciel est assez difficile (fondamentalement, la seule façon de le faire est d'avoir un autre processeur faisant exactement les mêmes choses en même temps et comparant les résultats - ce qui finira par ralentir les choses) vers le bas de telle sorte qu'il '

Cela dit, aussi rare qu'une panne de processeur soit, l'augmentation du nombre de processeurs dans un système fera augmenter votre taux de défaillance, car vous avez maintenant deux fois plus de choses qui peuvent échouer. Vous avez également d'autres sous-systèmes qui peuvent également échouer, tels que ceux qui maintiennent les caches des CPU synchronisés, et l'augmentation de la consommation d'énergie et de la sortie thermique contribuent également aux facteurs à l'origine de la défaillance globale du système (et bien sûr, les ventilateurs de refroidissement actifs sont un autre point de défaillance).

duveteux
la source
1
+1 pour avoir souligné que le doublement des processeurs augmente le potentiel de défaillance de la machine. Plus de «pièces mobiles» signifie plus de possibilités de défaillance.
Evan Anderson
4

Vous devrez définir exactement le type d'échecs que vous souhaitez gérer. Si nous considérons une collection de cœurs / CPU / ordinateurs travaillant ensemble comme un réseau, un type d'échec est qu'un nœud cesse simplement de répondre. Une défaillance beaucoup plus grave survient lorsqu'un nœud commence à corrompre des données et envoie des informations erronées aux autres. C'est ce qu'on appelle un échec byzantin et, dans le pire des cas, il perturbe activement le fonctionnement du réseau par des «mensonges» stratégiques. Il est relativement facile de montrer qu'aucun système ne peut gérer un tiers ou plus de ses nœuds en byzantin.

Ce que vous devez faire, c'est de décider exactement à quel type d'échecs vous vous attendez, et de concevoir votre système dans cet esprit, et d'accepter le fait que le problème de la gestion d'un nombre arbitraire de nœuds malveillants est insoluble. Dans votre cas, vous avez besoin d'au moins quatre processeurs si l'un d'eux est défectueux.

Soit dit en passant: en physique quantique, il n'y a pas d'impossibilité, mais s'il faut attendre plus longtemps que l'âge de l'univers pour avoir statistiquement une chance d'observer un certain comportement, il n'est pas nécessaire de dire que c'est possible. Gardez cela à l'esprit lorsque vous concevez votre système. ;)

Anders Sjöqvist
la source
2

La défaillance du processeur est très rare. Un échec entraînerait probablement d'autres problèmes au niveau du système d'exploitation. Je ne considérerais pas cela comme une forme de tolérance aux fautes.

ewwhite
la source
1

Comme les autres réponses, il est très rare qu'un CPU tombe en panne, et dans les serveurs moyens vous ne pouvez pas faire un échange à chaud, ce que vous pouvez probablement faire est de laisser le serveur avec un CPU jusqu'à ce que celui qui échoue soit remplacé, bien sûr, cela la procédure est totalement hors ligne et vous devez faire un arrêt du serveur

Coeur
la source
1
Et bien je n'appellerais pas ça super rare. Je viens de me produire sur l'un de mes serveurs. Actuellement en cours de dépannage. Le serveur à double processeur vient de perdre l'un des processeurs en raison d'une panne de ventilateur.