CORRUPTION DE STRUCTURE CRITIQUE sur Windows Server 2012 R2

15

J'ai une machine virtuelle Windows Server 2012 R2; oui avec toutes les mises à jour. Les logiciels supplémentaires incluent Microsoft SQL Server 2014 (était 2012 sur une machine virtuelle précédente). La société d'hébergement Web inclut xenpci.sys (pilote EJBPV XenPCI (version vérifiée), James Harper) dans le cadre de leur installation par défaut sur toutes les machines virtuelles et Plesk.

Périodiquement, le système d'exploitation se bloque, des écrans bleus ou redémarre. Je reçois des mini décharges, mais pas tout le temps. Le problème habituel est:

Erreur: CRITICAL_STRUCTURE_CORRUPTION

Le fichier de niveau supérieur spécifique, évidemment pas la cause, varie: win32k.sys, ntoskrnl.exe, xenpci.sys (le pilote Xen, bien qu'il ne soit apparu que quelques fois), et ndis.sys.

L'analyseur OSR (Open System Resources) n'a pas été d'une grande utilité. L'analyseur WhoCrashed était un peu plus utile.

Il a déclaré:

17 décharges accidentelles ont été trouvées et analysées. Seulement 10 sont inclus dans ce rapport. Un pilote tiers a été identifié comme provoquant des pannes système sur votre ordinateur. Il est fortement recommandé de vérifier les mises à jour de ces pilotes sur les sites Web de leur entreprise. Cliquez sur les liens ci-dessous pour rechercher avec Google les mises à jour de ces pilotes:

xenpci.sys (EJBPV XenPCI Driver (Checked Build), James Harper)

J'ai essayé de pousser la société d'hébergement Web à faire des recherches sur le sujet, mais ils peuvent les mains vides. Je ne suis pas convaincu que les pilotes Xen soient en faute. WhoCrashed l'a repris, je présume simplement parce que c'était le dernier conducteur à quelques reprises et que c'est un tiers, ce qui le rend coupable. Je n'ai pas écrit WhoCrashed, donc difficile de commenter davantage.

Ma question est de savoir comment résoudre le problème.

La société d'hébergement Web a déjà essayé de me donner deux nouvelles machines virtuelles au cours des deux dernières années. Le problème migre. J'ai installé SQL Server, mais le système d'exploitation et Plesk sont venus par défaut. D'accord, il y a aussi le logiciel du serveur de messagerie. La société d'hébergement Web m'a également dit qu'elle n'avait pas d'autres clients se plaignant de la même manière. Ils ont exécuté des tests de disque plusieurs fois. La santé du disque est bonne.

Je n'ai pas vérifié l'état du registre, mais le problème traverse les installations et se produit assez régulièrement, donc je devrais en tenir compte. Je suis sur ma troisième ou quatrième machine virtuelle maintenant.

Encore une fois, je mentionne Xen parce que WhoCrashed l'a mentionné, mais je ne suis pas convaincu qu'en tant que cause, d'autres clients l'utilisent vraiment. Le système dispose d'une mémoire et d'un stockage adéquats, ce n'est donc pas un problème.

MISE À JOUR: Voici quelques réponses de la société d'hébergement Web à ma requête.

Dans le scénario habituel, les performances de la machine virtuelle seront dégradées une fois que vous aurez désinstallé les pilotes. Il peut y avoir des problèmes de synchronisation avec le nœud matériel.

Suis-je en utilisant une version vérifiée ou de version?

Vous utilisez une version signée par test, les mêmes que celles du site du développeur.

Comment savoir? La boîte de dialogue des propriétés Xen PCI dans le Gestionnaire de périphériques ne disait pas d'une manière ou d'une autre. L'entrée dans le Gestionnaire de périphériques est-elle le seul emplacement? J'ai vérifié dans Programmes et fonctionnalités et je n'ai rien vu dans la liste.

Vous pouvez vérifier la version sous Ajouter ou supprimer des programmes. Reportez-vous à l'instantané ci-joint.

Comment / où puis-je trouver où se trouve la dernière version sur leur site?

Le site du développeur ne fonctionne pas - http://www.meadowcourt.org/downloads/ Vous pouvez télécharger les dernières versions signées à partir d'ici - http://wiki.univention.de/index.php?title=Installing-signed-GPLPV- Conducteurs

Comment savoir à quel Xen, 0.11.0.373 appartient (Xen 4.6? 3.0? Xy?)

Nous utilisons Xen 3.4.4, vous ne pouvez pas le voir depuis votre machine virtuelle. Il ne peut être consulté qu'à partir du nœud matériel.

Mise à jour 2: la société d'hébergement a installé deux logiciels James Harper.

GPL PV Drivers for Windows
EJB PV Drivers for Windows
Sarah Weinberger
la source
2
Une recherche rapide de Google sur "Xen Windows BSOD" donne de nombreux résultats, en particulier lorsque d'anciens pilotes Xen sont utilisés sur des machines virtuelles Windows récentes; le coupable est probablement là.
Massimo
Le moyen le plus simple de déterminer si le pilote Xen est le coupable serait de le désinstaller.
joeqwerty
J'ai pensé à cette option, malheureusement je ne pense pas que ma société d'hébergement Web ira pour cela. Ils m'ont dit à plusieurs reprises que le système avait besoin de l'hyperviseur pour accéder aux emplacements PCIe et fonctionner correctement. Je devrais chercher dans leur immense archive de messages avec eux pour obtenir le libellé exact, mais fondamentalement, ils n'étaient pas très disposés.
Sarah Weinberger du
1
La désinstallation des pilotes d'hyperviseur d'une machine virtuelle est très susceptible d'obtenir des résultats désagréables, jusqu'à ne plus pouvoir démarrer.
Massimo
3
@SarahWeinberger, lorsque l'hébergeur vous a donné de nouvelles machines virtuelles, étaient-elles sur un matériel différent? Un tas de BSoD montrant différents fichiers de premier niveau qui semblent finalement être causés par le pilote de l'hyperviseur semble bien être quelque chose qui pourrait être causé par une mauvaise mémoire. Si vos "nouvelles" machines virtuelles sont sur le même matériel, il est possible que cela continue de se manifester.
briantist

Réponses:

18

xenpci.sys (EJBPV XenPCI Driver ( Build vérifié ), James Harper)

( Checked Build ) est un énorme drapeau rouge. Vous ne devez absolument pas utiliser de versions "vérifiées" de quoi que ce soit en production. Si votre hébergeur a chargé ce pilote pour vous, alors il a absolument fait une erreur.

Les versions vérifiées incluent des symboles superflus et une vérification supplémentaire des erreurs qui aident les développeurs. Ce ne sont pas des versions de production.

Pour approfondir, ce que cela me dit, c'est que, quelle que soit l'erreur qui provoque l'arrêt de la machine, elle se produit probablement toujours dans la version non contrôlée du pilote, cependant, cela ne fait probablement que provoquer un effet secondaire non fatal, comme une fuite de mémoire dans le release build. Mais dans la version vérifiée, en raison de la vérification d'erreur plus stricte, il arrête l'intégralité du système d'exploitation. C'est le but des versions vérifiées, pour accentuer les erreurs et les pousser dans les visages du développeur, avant d'envoyer le code aux clients.

Pour approfondir, il n'a pas vraiment d'importance si d'autres machines virtuelles ont également le même pilote chargé (la construction vérifiée) et ne semblent pas planter. Un composant spécifique à cette machine virtuelle appelle un certain comportement ou état qui déclenche le bogue dans ce pilote. (Les pilotes et les applications interagissent de toutes sortes de façons, peut-être que deux machines ont le même pilote de bogue chargé, mais un seul des serveurs a installé SQL, et puisque le serveur a installé SQL, il verrouille cette page mémoire unique de manière à ce que le un autre serveur ne le fait pas, ce qui provoque le bug du pilote tiers pour élever sa vilaine tête (juste un exemple).)

Il n'y a vraiment aucun autre endroit où blâmer ici. Vous ne pouvez pas exécuter des versions vérifiées de pilotes en production et vous attendre à passer un bon moment. Ils sont uniquement destinés à des fins de développement et de test.

Enfin, le seul autre endroit où aller serait de collecter le vidage complet et de l'exécuter via WinDBG. Vous pouvez passer six heures de débogage intense, dérouler des piles, tracer des threads, suivre des IRP vers leurs ports d'achèvement ... ou vous pouvez simplement vous débarrasser de ce pilote de build vérifié. :)

Pourrait également essayer d'exécuter le pilote via Driver Verifier . Dans un environnement de test. Où les versions vérifiées doivent rester. ;)

Ryan Ries
la source
1
Je vais demander à la société d'hébergement si j'utilise une version vérifiée ou non. Je viens de vérifier le Gestionnaire de périphériques et tout ce qu'il dit pour "Pilote de périphérique PCI Xen" est "17/09/2014 | 0.11.0.373". Je ne vois ni vérifié ni publié nulle part dans la boîte de dialogue des propriétés, mais la société d'hébergement en saura plus. Restez à l'écoute.
Sarah Weinberger du
2
D'où avez-vous obtenu la "Build vérifiée" dans votre message?
Ryan Ries
J'ai copié et collé le bloc récapitulatif d'analyse WhoCrashed au bas du rapport. Le rapport d'OSR n'a pas été très utile, c'est pourquoi je me suis concentré sur le WhoCrashed, mais le problème peut ne pas être lié à Xen et pourrait être autre chose. À un moment donné, celui des agents de support de la société d'hébergement Web a tenté de rejeter la faute sur Microsoft et IIS, pour lesquels j'ai rejeté cela d'emblée. Je suis d'accord avec WhoCRashed pour soupçonner un tiers agent.
Sarah Weinberger du
@SarahWeinberger Vérifiez la taille du fichier et comparez au moins les serveurs auxquels vous avez accès; Je ne sais pas avec certitude, mais les tailles de fichier devraient être différentes pour les versions vérifiées et non vérifiées (les différences sont suffisamment importantes pour qu'elles apparaissent dans la taille du fichier). Si tout le reste échoue, calculez une somme de contrôle; même MD5 fera très bien ici. Les versions vérifiées et non vérifiées y seront différentes, même si la version du fichier est la même.
un CVn le
@ MichaelKjörling Je dois aller sur le site et comprendre les téléchargements. Jusqu'à la publication de l'hôte, je pensais que le téléchargement provenait d'un autre site, celui que j'avais publié à l'origine. Je suppose que le site a un téléchargement, une version publiée, mais les versions vérifiées peuvent également être signées numériquement. Malheureusement, la désinstallation se fait sur le nœud matériel, qui semble être une ancienne version de Windows, car il parle de "Ajout / Suppression de programmes" et non de "Programmes et fonctionnalités". Dans tous les cas, la désinstallation est terminée. J'ai déjà vérifié P&F et je n'ai pas vu Xen.
Sarah Weinberger
7

Xen 3.4.4 est trop ancien. 13 mars 2013

Windows 2012 R2 est sorti le 18 octobre 2013 .

Pour vous donner une comparaison réelle, XenServer de Citrix a ajouté la prise en charge de Windows Server 2012 R2 dans leur version 6.2SP1, qui a été publiée le 13 décembre 2013 . ( http://support.citrix.com/article/CTX139788 )

Voir cela pour le pilote du GPLPV; vous ne voyez que la référence à la branche Xen 4.4.0 pour 2008R2 ..

Les pilotes signés d'ejbdigital fonctionnent très bien sur Xen 4.4.0. Si vous rencontrez un écran bleu lors de l'installation de ces pilotes, ou après un redémarrage après les avoir installés, veuillez essayer d'ajouter device_model_version = "qemu-xen-traditional". J'avais un système 2008 R2 x64 existant qui a constamment échoué avec un BSOD après l'installation de gpl_pv. Le passage au modèle d'appareil «qemu-xen-traditional» a résolu le problème. Cependant, sur un système 2008 R2 x64 propre, je n'ai pas eu à effectuer cette modification, veuillez donc garder cela à l'esprit si vous rencontrez des problèmes. http://wiki.xen.org/wiki/Xen_Windows_GplPv

Voir cela pour la déclaration officielle du projet xen sur le support de Windows. Je ne veux pas dire qu'il ne peut pas l'exécuter, mais vous voyez le support. Vous allez exécuter un serveur de production sur cette plateforme?

Xen Project prend-il en charge Microsoft Windows?

L'approche paravirtualisée que nous utilisons pour obtenir des performances aussi élevées n'a pas été utilisable directement pour Windows à ce jour . Cependant, Xen 3.0 a ajouté la prise en charge d'Intel VT-x pour permettre l'exécution de systèmes d'exploitation invités non modifiés, y compris Windows XP et 2003 Server, en utilisant la technologie de virtualisation matérielle. Xen 3.0.2 et versions ultérieures prennent également en charge la technologie AMD Pacifica. Vérifiez si votre CPU figure dans la liste des processeurs compatibles HVM et si votre carte mère figure dans la liste des cartes mères compatibles HVM.

(Remarque: cela ne signifie pas nécessairement que presque tous les systèmes d' exploitation s'exécutent en mode HVM! Les rapports varient quant au fonctionnement de * BSD en mode HVM, sur la liste de diffusion, il n'y a qu'un seul succès pour OpenBSD ( http: //www.openbsd- france.org/ml/archives/msg02494.html ), pas de message de réussite pour les autres, mais quelques rapports de problèmes) http://wiki.xenproject.org/wiki/Xen_FAQ_Drivers,_Windows

yagmoth555
la source
1
J'ai marqué la réponse (je suis # 4) et transmis la réponse avec cette URL à mon hébergeur. Je n'ai même jamais entendu parler de Xen avant ce problème, donc je suis nouveau dans le tout. Votre point sur les dates de version est très valable. Comment Xen 3.4.0 pouvait-il prendre en charge Windows 2012R2, alors que ce n'était même pas le cas à l'époque. Je verrai ce que dit la société d'hébergement. Malheureusement, ils ont exclu Microsoft Hyper-V, sans savoir pourquoi.
Sarah Weinberger
1
Cette réponse a fait une différence. La société d'hébergement Web, tristement célèbre pour ne rien changer, vient de m'écrire cet e-mail: "Veuillez noter que nous prévoyons de mettre à jour la version du serveur Xen sur laquelle votre serveur cloud s'exécute, au plus tard car les anciennes versions semblent être vulnérables . " Hou la la!
Sarah Weinberger du
Merci pour les commentaires. Je suis content si ma réponse a aidé :)
yagmoth555