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

Traduções de Artigos Traduções de Artigos
Artigo: 2858695 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário:
  • Tem um computador baseado no Windows que tem a função Hyper-V instalada.
  • Instalar o Linux numa máquina virtual Hyper-V no computador.
  • Configurar kdump sobre a VM Linux. a VM Linux já tem os controladores de serviços de integração Linux, previamente concebidas ou instalado manualmente.
Se a máquina virtual do Linux falhas neste cenário, o ficheiro de informação do núcleo do kernel do Linux não é gerado como esperado.

Causa

Este problema ocorre porque o Hyper-V não é possível hospedar duas ligações simultâneas do controlador sintética mesmo que esteja a executar no interior de uma máquina virtual.

Quando kdump está configurado numa máquina virtual Linux que está a utilizar o controlador de armazenamento sintéticos de serviços de integração Linux (também conhecido como miniporta storvsc), o kernel do kexec está configurado para utilizar o mesmo controlador. Se a máquina virtual do Linux falhar, o controlador de armazenamento sintéticas hospedado no kernel do kexec tenta abrir uma ligação ao fornecedor de armazenamento de Hyper-V. No entanto, Hyper-V não consegue estabelecer nova ligação devido a ligação já existente para o mesmo controlador de armazenamento na máquina de virtual Linux falhou. Por conseguinte, o kernel do kexec não é possível informações de Estado principal para a máquina virtual Linux falhou.

Resolução

Para resolver este problema, configure o kernel kexec utilizando o controlador de armazenamento do Linux padrão. Esta configuração deve ser executada depois de activada a funcionalidade de kdump numa máquina virtual Linux. A ideia básica é desactivar o controlador de armazenamento de serviços de integração Linux e, em seguida, activar o controlador de armazenamento do Linux padrão dentro do kernel kexec utilizando o parâmetro prefer_ms_hyper_v em localizações estratégicas.

O parâmetro prefer_ms_hyper_v pode ser utilizado para controlar o comportamento do controlador de armazenamento do Linux padrão. Quando este parâmetro for definido como 1 e a máquina virtual do Linux está em execução no Hyper-V, o controlador de armazenamento padrão do Linux desactiva propriamente dito e permite ao controlador de armazenamento de serviços de integração Linux controlar os dispositivos de armazenamento. Ao definir o parâmetro prefer_ms_hyper_v para 0, o controlador de armazenamento padrão do Linux é permitido a funcionar. Uma vez que o controlador de armazenamento do Linux padrão não requerem uma ligação para Hyper-V, o kernel kexec poderá copiar core.

Distribuições de Linux diferentes têm mecanismos ligeiramente diferentes para especificar o valor de prefer_ms_hyper_v. A secção seguinte descreve a forma como o parâmetro pode ser definido para diversas distribuições Linux populares.

Vermelho Hat Enterprise Linux (RHEL) 5.9

No RHEL 5.9, tem de passar o parâmetro prefer_ms_hyper_v através de um argumento da linha de comandos de kernel para o módulo de ide_core que está incorporado no kernel do RHEL 5.9. Por predefinição, este parâmetro é inicializado como 1, e isto faz com que a máquina virtual do Linux evitar utilizar o módulo de ide_core , se estiver a ser executado num ambiente de Hyper-V. Os administradores têm que definir o valor do parâmetro prefer_ms_hyper_v para 0 , para que o controlador ide_core torna-se operacional durante o processo de arranque de kernel kexec. Pode fazê-lo alterando o conteúdo do /etc/kdump.conf.

Para alterar o conteúdo de /etc/kdump.conf, siga estes passos:
  1. Execute o seguinte comando para configurar kdump para escrever um directório local:

    Falha de sistema/var/caminho
  2. Blacklist os controladores de serviços de integração Linux em /etc/kdump.conf. Isto impede que os controladores ao embarque para o kernel do kexec. Para tal, execute o seguinte comando:

    lista de suporte 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. Depois das edições necessárias, o ficheiro /etc/kdump.conf este aspecto:
    Falha de sistema/var/caminho
    mensagem core_collector makedumpfile - c--nível 1 - d 31
    lista de suporte hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    disk_timeout 100
  5. Modifica o conteúdo do ficheiro /etc/sysconfig/kdump do seguinte modo:
    • Adicionar ou modificar a seguinte linha para incluir a prefer_ms_hyperv = 0 argumento:

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 reset_devices ide_core.prefer_ms_hyperv=0"
    • Depois das edições necessárias, o ficheiro /etc/sysconfig/kdump este aspecto:
      KDUMP_COMMANDLINE = ""

      # Esta variável permite-na acrescentar argumentos a actual linha de comandos kdump
      # Como tomadas a partir de qualquer um dos KDUMP_COMMANDLINE acima ou a partir de/proc/linhacmd

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

Vermelho Hat Enterprise Linux (RHEL) 6.4

No RHEL 6.4, tem de passar o parâmetro prefer_ms_hyper_v para o módulo de controlador ata_piix . Pode fazê-lo mudando o conteúdo do ficheiro /etc/kdump.conf.

Para alterar o conteúdo de /etc/kdump.conf, siga estes passos:
  1. Configure kdump para escrever um directório local:

    Falha de sistema/var/caminho
  2. Adicione módulos extra ata_piix, sr_mod, sd_mod:

    extra_modules ata_piix sr_mod sd_mod
  3. Lista de suporte dos serviços de integração Linux controladores em etc/kdump.conf. Isto evita que os controladores do carregamento para o kernel do kexec:

    lista de suporte hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  4. Adicione o parâmetro das opções para transmitir 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, não pára a responder (bloquear):

    disk_timeout 100
  6. Depois das edições necessárias, o ficheiro /etc/kdump.conf este aspecto:
    Falha de sistema/var/caminho
    mensagem core_collector makedumpfile - c--nível 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    lista de suporte hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    opções ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

Ubuntu 12.04(.x)

Na Ubuntu 12.04 (.x), tem de transferir o parâmetro prefer_ms_hyper_v para o controlador de ata_piix . Pode fazê-lo mudando o conteúdo do ficheiro /etc/init.d/kdump.

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

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

Distribuições de SP2(x) de 11 de SLES, tem de transferir o parâmetro prefer_ms_hyper_v para o controlador de ata_piix . Pode fazê-lo modificando o conteúdo do ficheiro /etc/sysconfig/kdump do seguinte modo:

Acrescente ata_piix.prefer_ms_hyper_v=0 a KDUMP_COMMANDLINE_APPEND:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Depois das edições necessárias, o ficheiro /etc/sysconfig/kdump este aspecto:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Mais Informação

KDUMP deve ser configurado na forma padrão sugerido pela Linux distribuições.

Os produtos de outros fabricantes que este artigo aborda são fabricados por empresas independentes da Microsoft. Microsoft não oferece nenhuma garantia, expressa ou implícita, relativamente ao desempenho ou fiabilidade destes produtos.

Propriedades

Artigo: 2858695 - Última revisão: 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 por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
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