Não é possível usar o kdump ou kexec para máquinas virtuais de Linux no Hyper-V

Traduções deste artigo Traduções deste artigo
ID do artigo: 2858695 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário:
  • Você tem um computador baseado no Windows que tem a função Hyper-V instalada.
  • Instalar o Linux em uma máquina virtual de Hyper-V no computador.
  • Configurar o kdump na VM Linux. a VM Linux já tem os drivers de Linux Integration Services predefinido ou instalado manualmente.
Se o computador virtual Linux falhar nesse cenário, o arquivo de dump principal do kernel do Linux não é gerado conforme o esperado.

Causa

Esse problema ocorre porque o Hyper-V não é possível hospedar duas conexões simultâneas do mesmo driver sintético que está sendo executado em uma máquina virtual.

Quando kdump é configurado em uma máquina virtual de Linux que está usando o driver de armazenamento sintéticos Linux Integration Services (também conhecido como storvsc), o kernel kexec está configurado para usar o mesmo driver. Se o computador virtual Linux falhar, o driver de armazenamento sintéticos que está hospedado no kernel kexec tenta abrir uma conexão com o provedor de armazenamento do Hyper-V. No entanto, o Hyper-V Falha ao estabelecer a nova conexão devido a conexão já existente com o mesmo driver de armazenamento na falha máquina virtual Linux. Portanto, o kernel kexec não é possível descartar o núcleo para a falha máquina virtual Linux.

Resolução

Para resolver esse problema, configure o kernel kexec usando o driver de armazenamento padrão do Linux. Essa configuração deve ser executada depois que a funcionalidade do kdump está habilitada em um computador virtual Linux. A idéia básica é desativar o driver de armazenamento do Linux Integration Services e, em seguida, ativar o driver de armazenamento padrão do Linux dentro do kernel kexec usando o parâmetro prefer_ms_hyper_v em locais estratégicos.

O parâmetro prefer_ms_hyper_v pode ser usado para controlar o comportamento do driver de armazenamento padrão do Linux. Quando esse parâmetro for definido como 1 e o computador virtual Linux está sendo executado no Hyper-V, o driver de armazenamento padrão do Linux se desativará e permite que o driver de armazenamento de serviços de integração do Linux controlar os dispositivos de armazenamento. Definindo o parâmetro prefer_ms_hyper_v como 0, o driver de armazenamento padrão do Linux é permitido para funcionar. Porque o driver de armazenamento padrão do Linux não exige uma conexão com o Hyper-V, o kernel kexec pode fazer um dump principal.

Várias distribuições de Linux têm mecanismos ligeiramente diferentes para especificar o valor de prefer_ms_hyper_v. A seção a seguir descreve como o parâmetro pode ser definido para diversas distribuições populares do Linux.

Red Hat Enterprise Linux (RHEL) 5.9

5.9 RHEL, você deve passar o parâmetro prefer_ms_hyper_v por meio de um argumento de linha de comando do kernel para o módulo de ide_core que está embutido no kernel do RHEL 5.9. Por padrão, esse parâmetro é inicializado com 1, e isso faz com que a máquina virtual Linux evitar o uso do módulo de ide_core se ele estiver sendo executado em um ambiente do Hyper-V. Os administradores têm que definir o valor do parâmetro prefer_ms_hyper_v como 0 para que o driver ide_core se torne operacional durante o processo de inicialização do kernel kexec. Você pode fazer isso alterando o conteúdo de /etc/kdump.conf.

Para alterar o conteúdo de /etc/kdump.conf, siga estas etapas:
  1. Execute o seguinte comando para configurar o kdump para gravar em um diretório local:

    Falha do caminho/var /
  2. Lista negra os drivers de Linux Integration Services em /etc/kdump.conf. Isso impede que os drivers sejam carregados no kernel kexec. Para fazer isso, execute o seguinte comando:

    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  3. Configure o valor de tempo limite do disco, executando o seguinte comando:

    disk_timeout 100
  4. Após as edições necessárias, o arquivo de /etc/kdump.conf tem esta aparência:
    Falha do caminho/var /
    core_collector makedumpfile - c - nível de mensagem 1 - d 31
    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    disk_timeout 100
  5. Modifica o conteúdo do arquivo /etc/sysconfig/kdump da seguinte maneira:
    • Adicione ou modifique a seguinte linha para incluir o prefer_ms_hyperv = argumento 0:

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 ide_core.prefer_ms_hyperv=0 de reset_devices"
    • Após as edições necessárias, o arquivo de /etc/sysconfig/kdump tem esta aparência:
      KDUMP_COMMANDLINE = ""

      # Esta variável permite acrescentar argumentos de linha de comando atual do kdump
      # Como levado a partir de qualquer um dos KDUMP_COMMANDLINE acima ou proc/cmdline

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 ide_core.prefer_ms_hyperv=0 de reset_devices"

Red Hat Enterprise Linux (RHEL) 6.4

6.4 RHEL, você deve passar o parâmetro prefer_ms_hyper_v para o módulo do driver ata_piix . Você pode fazer isso alterando o conteúdo do arquivo /etc/kdump.conf.

Para alterar o conteúdo de /etc/kdump.conf, siga estas etapas:
  1. Configure kdump para gravar em um diretório local:

    Falha do caminho/var /
  2. Adicione módulos extras ata_piix, sr_mod, sd_mod:

    extra_modules ata_piix sr_mod sd_mod
  3. Lista negra drivers Linux Integration Services em etc/kdump.conf. Isso impede que os drivers carregados no kernel kexec:

    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  4. Adicione parâmetro de opções para passar o parâmetro para o módulo de ata_piix:

    opções ata_piix prefer_ms_hyperv = 0
  5. Configure o valor de tempo limite do disco para que ele não pára de responder (travar):

    disk_timeout 100
  6. Após as edições necessárias, o arquivo de /etc/kdump.conf tem esta aparência:
    Falha do caminho/var /
    core_collector makedumpfile - c - nível de mensagem 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    opções ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

12.04(.X) do Ubuntu

No Ubuntu 12.04 (.x), você precisa passar o parâmetro prefer_ms_hyper_v para o driver ata_piix . Você pode fazer isso alterando o conteúdo do arquivo /etc/init.d/kdump.

Para alterar o conteúdo do arquivo /etc/init.d/kdump, acrescente ata_piix. prefer_ms_hyper_v = 0 para as opções de linha de comando do kdump:
do_start {} {
?.
?.
APPEND = "$APPEND kdump_needed maxcpus = 1 ata_piix.prefer_ms_hyperv=0 de reset_devices de irqpoll"
?
}

SUSE Linux Enterprise Server (SLES) 11 SP2(x)

Nas distribuições do SLES 11 SP2(x), você deve passar o parâmetro prefer_ms_hyper_v para o driver ata_piix . Você pode fazer isso modificando o conteúdo do arquivo /etc/sysconfig/kdump da seguinte maneira:

Acréscimo de ata_piix.prefer_ms_hyper_v=0 para KDUMP_COMMANDLINE_APPEND:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Após as edições necessárias, o arquivo de /etc/sysconfig/kdump tem esta aparência:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Mais Informações

KDUMP deve ser configurado da forma padrão sugerido pelo distribuições do Linux.

Os produtos de terceiros neste artigo são fabricados por empresas independentes da Microsoft. Microsoft não oferece nenhuma garantia, implícita ou não, sobre o desempenho ou confiabilidade desses produtos.

Propriedades

ID do artigo: 2858695 - Última revisão: quarta-feira, 26 de junho de 2013 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Hyper-V Server 2008 R2
  • Microsoft Hyper-V Server 2008 R2 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 for Itanium-Based Systems
  • Windows Server 2008 R2 Service Pack 1
  • Windows Storage Server 2008 R2
  • Windows Storage Server 2008 R2 Essentials
  • Microsoft Hyper-V Server 2012
  • Windows Server 2012 Foundation
  • Windows Server 2012 Release Candidate
  • Windows Server 2012 Standard
  • Windows Storage Server 2012 Standard
  • Windows Storage Server 2012 Workgroup
Palavras-chave: 
kbmt KB2858695 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 2858695

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com