Você está offline; aguardando reconexão

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

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
Sintomas
Antes do Windows Server 2012 R2
Considere o seguinte cenário:
  • Você tem um computador baseado em servidor 2012 R2 antes do Windows que tem a função Hyper-V instalada.
  • Instalar o Linux em uma máquina virtual de Hyper-V no computador.
  • Configurar kdump na VM Linux.

    Observação: A VM Linux já tem os drivers de Linux Integration Services. Os drivers podem ser predefinidos ou instalado manualmente.
Nesse cenário, se o computador virtual Linux falhar, o arquivo de dump principal do kernel do Linux não é gerado conforme o esperado.
Windows Server 2012 R2
Considere o seguinte cenário:
  • Você tem Linux VM no host do Windows Server 2012 R2 Hyper-V.
  • vCPUs de 15 ou mais são anexadas para a VM do Linux.
  • Configurar kdump na VM Linux.
Nesse cenário, kdump não funciona e o despejo não foi criado porque o processo pára de responder (trava).
Causa
Esse problema ocorre porque o Hyper-V não pode hospedar duas conexões simultâneas do mesmo driver sintético que está sendo executado em uma máquina virtual.

Quando kdump estiver configurado em uma máquina virtual Linux está usando o driver de armazenamento sintéticos de serviços de integração do Linux (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 de Hyper-V. No entanto, não conseguir estabelecer a nova conexão devido a conexão já existente com o mesmo driver de armazenamento na falha máquina virtual Linux Hyper-V. Portanto, o kernel kexec não é possível descartar o núcleo da 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 de 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, habilitar o driver de armazenamento padrão do Linux dentro do kernel do kexec usando o parâmetro prefer_ms_hyper_v no arquivo de configuração apropriado.

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 do Linux Integration Services controle 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 do 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 várias distribuições populares do Linux.

Red Hat Enterprise Linux (RHEL) 5.9

RHEL 5.9, você precisa 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 incorporado ao 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 ide_core se ele estiver sendo executado em um ambiente do Hyper-V. Os administradores precisam 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, execute as seguintes etapas:
  1. Execute o seguinte comando para configurar kdump para gravar em um diretório local:

    Falha/var/caminho
  2. Lista negra os drivers 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-Hyper-v
  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 /etc/kdump.conf tem esta aparência:
    Falha/var/caminho
    core_collector makedumpfile - c - mensagem-nível 1 - d 31
    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid-Hyper-v
    disk_timeout 100
  5. Modifica o conteúdo do arquivo /etc/sysconfig/kdump da seguinte forma:
    • Adicione ou modifique a seguinte linha para incluir o prefer_ms_hyperv = 0 argumento:

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

      # Esta variável permite anexar argumentos de linha de comando kdump atual
      # Como obtidos de qualquer KDUMP_COMMANDLINE acima ou de proc/cmdline

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

Red Hat Enterprise Linux (RHEL) 6.4

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

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

    Falha/var/caminho
  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 sejam carregados no kernel kexec:

    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid-Hyper-v
  4. Adicione parâmetro de opções para passar o parâmetro para o módulo 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 /etc/kdump.conf tem esta aparência:
    Falha/var/caminho
    core_collector makedumpfile - c - mensagem-nível 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    lista de bloqueio hv_vmbus hv_storvsc hv_utils hv_netvsc hid-Hyper-v
    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 irqpoll reset_devices ata_piix.prefer_ms_hyperv=0"

}

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

Nas distribuições do SLES 11 SP2(x), é necessário 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 forma:

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 /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 descritos neste artigo são fabricados por empresas que são independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses produtos.

Propriedades

ID do Artigo: 2858695 - Última Revisão: 06/04/2015 00:47:00 - Revisão: 4.0

Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Essentials, Microsoft Hyper-V Server 2012 R2, Windows Storage Server 2012 R2 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Microsoft Hyper-V Server 2012, Windows Storage Server 2012 Standard, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Server 2008 R2 Service Pack 1, Microsoft Hyper-V Server 2008 R2 Service Pack 1, Microsoft Hyper-V Server 2008 R2

  • kbmt KB2858695 KbMtpt
Comentários