CORRUPÇÃO DE ESTRUTURA CRÍTICA no Windows Server 2012 R2

15

Eu tenho uma máquina virtual do Windows Server 2012 R2; sim com todas as atualizações. O software adicional inclui o Microsoft SQL Server 2014 (era 2012 em uma VM anterior). A empresa de hospedagem inclui o xenpci.sys (EJBPV Driver XenPCI (versão verificada), James Harper) como parte de sua instalação padrão em todas as VMs e Plesk.

Periodicamente, o sistema operacional trava, exibe telas azuis ou reinicia. Recebo mini-lixões, embora não o tempo todo. O problema usual é:

Erro: CRITICAL_STRUCTURE_CORRUPTION

O arquivo de nível superior específico, obviamente não a causa, varia: win32k.sys, ntoskrnl.exe, xenpci.sys (o driver Xen, apesar de aparecer apenas algumas vezes) e ndis.sys.

O analisador OSR (Open System Resources) não foi de grande ajuda. O analisador WhoCrashed foi um pouco mais útil.

Afirmou:

17 despejos foram encontrados e analisados. Apenas 10 estão incluídos neste relatório. Um driver de terceiros foi identificado como causando falhas do sistema no seu computador. É altamente recomendável que você verifique se há atualizações para esses drivers nos sites da empresa. Clique nos links abaixo para pesquisar no Google por atualizações para esses drivers:

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

Eu tentei pressionar a empresa de hospedagem na web a pesquisar o tópico, mas eles podem ficar de mãos vazias. Não estou convencido de que os drivers Xen estejam com defeito. WhoCrashed percebeu isso, presumo apenas porque esse foi o último piloto algumas vezes e é um terceiro, o que o torna culpado. Eu não escrevi WhoCrashed, tão difícil de comentar mais.

Minha pergunta é como solucionar o problema.

A empresa de hospedagem já tentou me fornecer duas novas máquinas virtuais nos últimos dois anos. O problema migra. Instalei o SQL Server, mas o sistema operacional e o Plesk vieram por padrão. Ok, também há o software para servidor de correio. A empresa de hospedagem também me disse que eles não têm outros clientes reclamando da mesma forma. Eles executaram testes de disco várias vezes. A integridade do disco é boa.

Não verifiquei a integridade do registro, mas o problema ocorre nas instalações e acontece de maneira bastante rotineira, portanto, eu teria que descontar isso. Estou na minha terceira ou quarta VM agora.

Mais uma vez, mencionei o Xen porque o WhoCrashed o mencionou, mas não estou convencido de que, como causa, e outros clientes realmente o usem. O sistema possui memória e armazenamento adequados, o que não é um problema.

ATUALIZAÇÃO: Aqui estão algumas respostas da empresa de hospedagem para minha consulta.

No cenário habitual, o desempenho da VM será prejudicado após a desinstalação dos drivers. Pode haver alguns problemas de sincronização com o nó de hardware.

Estou usando uma versão marcada ou lançada?

Você está usando uma compilação assinada por teste, as mesmas do site do desenvolvedor.

Como posso eu saber? A caixa de diálogo de propriedades do Xen PCI no Gerenciador de dispositivos não dizia de uma maneira ou de outra. A entrada no Gerenciador de dispositivos é o único local? Eu verifiquei Programas e Recursos e não vi nada listado.

Você pode verificar a versão em Adicionar ou remover programas. Consulte o instantâneo anexado.

Como / onde posso encontrar onde está a versão mais recente no site deles?

O site do desenvolvedor não está funcionando - http://www.meadowcourt.org/downloads/ Você pode baixar as últimas versões assinadas daqui - http://wiki.univention.de/index.php?title=Installing-signed-GPLPV- motoristas

Como posso saber a que Xen, 0.11.0.373 pertence (Xen 4.6? 3.0? Xy?)

Estamos usando o Xen 3.4.4, você não pode vê-lo na sua VM. Só pode ser visualizado no nó do hardware.

Atualização 2: A empresa de hospedagem instalou dois softwares James Harper.

GPL PV Drivers for Windows
EJB PV Drivers for Windows
Sarah Weinberger
fonte
2
Uma rápida pesquisa no Google por "Xen Windows BSOD" gera muitos resultados, especialmente quando drivers Xen antigos são usados ​​em VMs recentes do Windows; é provável que o culpado esteja lá.
Massimo
A maneira mais fácil de determinar se o driver Xen é o culpado seria desinstalá-lo.
Joeqwerty
Pensei nessa opção, infelizmente não acho que minha empresa de hospedagem vá para isso. Eles me disseram em várias ocasiões que o sistema precisa do hipervisor para obter acesso aos slots PCIe e funcionar corretamente. Eu teria que procurar no meu enorme arquivo de mensagens com eles para obter a redação exata, mas basicamente eles não estavam muito dispostos.
Sarah Weinberger
1
É muito provável que a desinstalação dos drivers do hypervisor de uma VM alcance resultados desagradáveis, até não ser mais possível inicializar.
Massimo
3
@SarahWeinberger, quando o host deu a você novas VMs, elas estavam em hardware diferente? Um monte de BSoDs mostrando diferentes arquivos de nível superior que parecem ser causados ​​pelo driver do hipervisor certamente parece algo que pode ser causado por falta de memória. Se suas "novas" VMs estiverem no mesmo hardware, é possível que isso continue se manifestando.
Briantist 9/09/15

Respostas:

18

xenpci.sys (Driver EJBPV XenPCI ( compilação verificada ), James Harper)

( Construção marcada ) é uma enorme bandeira vermelha. Você absolutamente não deve usar compilações "verificadas" de nada na produção. Se a sua empresa de hospedagem carregou esse driver para você, eles cometeram um erro.

As compilações verificadas incluem símbolos estranhos e verificação extra de erros que ajudam os desenvolvedores. Eles não são construções de produção.

Para aprofundar, o que isso me diz é que, independentemente do erro que esteja causando a parada da máquina, provavelmente ainda ocorra na compilação não verificada do driver, no entanto, provavelmente está apenas causando um efeito colateral não fatal, como um vazamento de memória no computador. versão de lançamento. Porém, na versão verificada, devido à verificação de erro mais rigorosa, ele interrompe todo o sistema operacional. Esse é o objetivo das compilações verificadas, para acentuar os erros e colocá-los na cara do desenvolvedor, antes de enviar o código aos clientes.

Para aprofundar, não importa se outras VMs também têm o mesmo driver exato carregado (a compilação verificada) e não parecem estar travando. Algum componente específico dessa VM está invocando algum comportamento ou estado que está acionando o bug nesse driver. (Drivers e aplicativos interagem de todas as formas, talvez duas máquinas tenham o mesmo driver de buggy carregado, mas apenas um dos servidores possui o SQL instalado e, como o servidor possui o SQL instalado, essa página de memória exclusiva é bloqueada de maneira que o outro servidor não funciona, o que faz com que o bug do driver de terceiros retire sua cabeça feia (apenas um exemplo).

Realmente não há outro lugar para colocar a culpa aqui. Você não pode executar compilações verificadas de drivers em produção e espera se divertir. Eles são apenas para fins de desenvolvimento e teste.

Por fim, o único outro lugar a partir daqui seria coletar o despejo completo e executá-lo no WinDBG. Você pode passar seis horas de depuração intensa, desenrolando pilhas, rastreando threads, seguindo os IRPs até suas portas de conclusão ... ou pode simplesmente se livrar desse driver de compilação verificado. :)

Também pode tentar executar o driver através do Driver Verifier . Em um ambiente de teste. Onde as construções verificadas devem permanecer. ;)

Ryan Ries
fonte
1
Vou perguntar sobre a empresa de hospedagem se estou usando uma versão verificada ou não. Acabei de verificar o Gerenciador de dispositivos e tudo o que diz para "Xen PCI Device Driver" é "17/9/2014 | 0.11.0.373". Não vejo marcado ou liberado em nenhum lugar da caixa de diálogo de propriedades, mas a empresa de hospedagem saberá mais. Fique ligado.
Sarah Weinberger
2
Então, de onde você tirou o "Checked Build" da sua postagem?
Ryan Ries
Copio e colei o bloco de resumo da análise WhoCrashed na parte inferior do relatório. O relatório da OSR não foi muito útil, motivo pelo qual me concentrei no WhoCrashed, mas o problema pode não estar relacionado ao Xen e pode ser outra coisa. A certa altura, o agente de suporte da empresa de hospedagem tentou atribuir a culpa à Microsoft e ao IIS, pelo que eu o descartei de imediato. Concordo com o WhoCRashed em suspeitar de um agente de terceiros.
Sarah Weinberger
@SarahWeinberger Verifique o tamanho do arquivo e compare pelo menos os servidores aos quais você tem acesso; Não sei ao certo, mas o tamanho do arquivo deve ser diferente para compilações verificadas e não verificadas (as diferenças são significativas o suficiente para que apareçam no tamanho do arquivo). Se tudo mais falhar, calcule uma soma de verificação; até o MD5 funcionará bem aqui. As compilações verificadas e não verificadas serão diferentes lá, mesmo se a versão do arquivo for a mesma.
um CVn
@ MichaelKjörling Eu tenho que ir ao site e entender os downloads. Até o post do host, achei que o download vinha de um site diferente, o que eu publiquei originalmente. Meu palpite é que o site tenha um download, uma versão lançada, mas as versões verificadas também podem ser assinadas digitalmente. Infelizmente, a desinstalação está no nó do hardware, que parece ser uma versão mais antiga do Windows, enquanto ele fala "Adicionar / Remover Programas" e não "Programas e Recursos". De qualquer forma, a desinstalação está do lado deles. Eu já verifiquei o P&F e não vi o Xen.
Sarah Weinberger
7

O Xen 3.4.4 é muito antigo. 13 de março de 2013

O Windows 2012 R2 foi lançado em 18 de outubro de 2013 .

Para oferecer uma comparação real, o XenServer da Citrix adicionou o suporte do Windows Server 2012 R2 em sua versão 6.2SP1, lançada em 13 de dezembro de 2013 . ( http://support.citrix.com/article/CTX139788 )

Veja isso para o driver da GPLPV; você vê apenas referência à ramificação Xen 4.4.0 para 2008R2 .

Os drivers assinados da ejbdigital funcionam muito bem no Xen 4.4.0. Se houver uma tela azul durante a instalação desses drivers ou após uma reinicialização após a instalação, tente adicionar device_model_version = "qemu-xen-traditional". Eu tinha um sistema 2008 R2 x64 2008 que falhou consitentemente com um BSOD após a instalação do gpl_pv. A mudança para o modelo de dispositivo 'qemu-xen-tradicional' resolveu o problema. No entanto, em um sistema 2008 R2 x64 limpo, não precisei fazer essa alteração; portanto, lembre-se disso se tiver problemas. http://wiki.xen.org/wiki/Xen_Windows_GplPv

Veja isso na declaração oficial do projeto xen no suporte do Windows. Não quero dizer que não possa executá-lo, mas você vê o suporte. Você executará um servidor de produção nessa plataforma?

O Xen Project suporta o Microsoft Windows?

A abordagem paravirtualizada que usamos para obter um desempenho tão alto não foi usada diretamente pelo Windows até o momento . No entanto, o Xen 3.0 adicionou o suporte Intel VT-x para permitir a execução de sistemas operacionais convidados não modificados, incluindo Windows XP e 2003 Server, usando a tecnologia de virtualização de hardware. O Xen 3.0.2 e posterior também suportam a tecnologia AMD Pacifica. Verifique se sua CPU está entre a lista de processadores compatíveis com HVM e se sua placa-mãe está entre a lista de placas-mãe compatíveis com HVM.

(Nota: isso não significa necessariamente que praticamente todos os sistemas operacionais sejam executados no modo HVM! Os relatórios variam sobre como o * BSD funciona no modo HVM, na Lista de discussão há apenas 1 sucesso para o OpenBSD ( http: //www.openbsd- france.org/ml/archives/msg02494.html ), nenhuma mensagem de sucesso para os outros, mas alguns relatórios de problemas) http://wiki.xenproject.org/wiki/Xen_FAQ_Drivers,_Windows

yagmoth555
fonte
1
Marquei a resposta (sou o número 4) e encaminhei a resposta junto com este URL para minha empresa de hospedagem. Eu nunca ouvi falar do Xen antes desse problema, então sou novo em tudo. Seu ponto nas datas da versão é muito válido. Como o Xen 3.4.0 podia oferecer suporte ao Windows 2012R2, quando isso ainda não estava disponível no momento. Vou ver o que a empresa de hospedagem diz. Infelizmente, eles descartaram o Microsoft Hyper-V, sem saber por quê.
Sarah Weinberger
1
Essa resposta fez a diferença. A empresa de hospedagem na web, famosa por não mudar nada, acabou de me escrever este e-mail: "Informamos que estamos planejando atualizar a versão do servidor Xen no qual o servidor em nuvem está executando, para a mais recente, pois as versões mais antigas parecem vulneráveis . " Uau!
Sarah Weinberger
Obrigado pelo feedback. Iam feliz se a minha resposta ajudou :)
yagmoth555