Compartilhar via


VM do Azure Linux em kernel 3.10 entra em pânico após atualização do nó do host

Aplica-se a: ✔️ VMs Linux

Número original do KB: 3212236

Observação

CentOS mencionado neste artigo é uma distribuição Linux e em breve atingirá seu status de fim de suporte (End Of Life - EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, consulte Diretrizes de fim da vida útil do CentOS.

Resumo

Este artigo discute um problema que ocorre quando uma VM Linux do Azure que executa o kernel baseado no 3.10 falha após uma atualização do nó de host no Azure.

Sintomas

Considere o cenário a seguir.

  • Você tem uma VM (máquina virtual) do Linux Microsoft Azure que está executando uma distribuição baseada em RHEL/CentOS com uma versão do kernel do Linux anterior à versão 3.10.0-327.10.1, incluindo aquelas incluídas com:

    • Red Hat Enterprise Linux 7.1 e 7.0
    • CentOS 7.1 e 7.0
    • Oracle Linux 7.1 e 7.0 com kernel compatível com Red Hat
  • Uma operação de atualização com preservação da memória ocorre em um nó de host do Azure.

Nesse cenário, a VM deixa de responder e um pânico de VM semelhante ao seguinte é registrado no log serial do Linux:

[11480839.438577] Call Trace:
[11480839.439615] [<ffffffff816045b6>] dump_stack+0x19/0x1b
[11480839.441556] [<ffffffff8106e29b>] warn_slowpath_common+0x6b/0xb0
[11480839.443818] [<ffffffff8106e33c>] warn_slowpath_fmt+0x5c/0x80
[11480839.445983] [<ffffffff8123e585>] sysfs_add_one+0xa5/0xd0
[11480839.447983] [<ffffffff8123e77c>] create_dir+0x7c/0xe0
[11480839.449876] [<ffffffff8123eb29>] sysfs_create_dir+0xa9/0x130
[11480839.451971] [<ffffffff812d74ab>] kobject_add_internal+0xbb/0x2f0
[11480839.454310] [<ffffffff812d79e5>] kobject_add+0x75/0xd0
[11480839.456236] [<ffffffff813cfa85>] device_add+0x125/0x7a0
[11480839.458167] [<ffffffff813df9fc>] ? __pm_runtime_resume+0x5c/0x80
[11480839.460469] [<ffffffff813fe9cc>] scsi_sysfs_add_sdev+0xac/0x280
[11480839.462628] [<ffffffff813fcfbb>] do_scan_async+0x7b/0x150
[11480839.464632] [<ffffffff8109e849>] async_run_entry_fn+0x39/0x120
[11480839.467170] [<ffffffff8108f0cb>] process_one_work+0x17b/0x470
[11480839.469354] [<ffffffff8108fe9b>] worker_thread+0x11b/0x400
[11480839.472310] [<ffffffff8108fd80>] ? rescuer_thread+0x400/0x400
[11480839.475265] [<ffffffff8109727f>] kthread+0xcf/0xe0
[11480839.477904] [<ffffffff810971b0>] ? kthread_create_on_node+0x140/0x140
[11480839.481074] [<ffffffff81614358>] ret_from_fork+0x58/0x90
[11480839.483873] [<ffffffff810971b0>] ? kthread_create_on_node+0x140/0x140
[11480839.487072] ---[ end trace 1f7736c59e96a8a0 ]---
[11480839.489584] ------------[ cut here ]------------
......
[11480864.118093] Call Trace:
[11480864.118093] [<ffffffff815f2535>] klist_put+0x25/0xa0
[11480864.118093] [<ffffffff815f25be>] klist_del+0xe/0x10
[11480864.118093] [<ffffffff813ce908>] device_del+0x58/0x1f0
[11480864.118093] [<ffffffff813ceabe>] device_unregister+0x1e/0x60
[11480864.118093] [<ffffffff812c36ee>] bsg_unregister_queue+0x5e/0xa0
[11480864.118093] [<ffffffff813fec49>] __scsi_remove_device+0xa9/0xd0
[11480864.118093] [<ffffffff813fcfc7>] do_scan_async+0x87/0x150
[11480864.118093] [<ffffffff8109e849>] async_run_entry_fn+0x39/0x120
[11480864.118093] [<ffffffff8108f0cb>] process_one_work+0x17b/0x470
[11480864.118093] [<ffffffff8108fe9b>] worker_thread+0x11b/0x400
[11480864.118093] [<ffffffff8108fd80>] ? rescuer_thread+0x400/0x400
[11480864.118093] [<ffffffff8109727f>] kthread+0xcf/0xe0
[11480864.118093] [<ffffffff810971b0>] ? kthread_create_on_node+0x140/0x140
[11480864.118093] [<ffffffff81614358>] ret_from_fork+0x58/0x90
[11480864.118093] [<ffffffff810971b0>] ? kthread_create_on_node+0x140/0x140

Motivo

Esse problema pode ser causado por uma lógica de bloqueio com falha no subsistema SCSI que se manifesta quando um disco SCSI é removido de um convidado de VM baseado em RHEL/CentOS em um host Microsoft Hyper-V.

Resolução

Para corrigir esse problema e restaurar a funcionalidade, reinicie manualmente a VM.

Para evitar esse problema no futuro, atualize para a versão do kernel 3.10.0-327.10.1 ou uma versão posterior, incluindo aquelas encontradas em:

  • Red Hat Enterprise Linux 7.2
  • CentOS 7.2
  • Oracle Linux 7.2 com kernel compatível com Red Hat

Mais informações

Para obter mais informações sobre distribuições Linux homologadas e tecnologias de software livre no Azure, consulte o suporte para tecnologias Linux e código aberto no Azure.

Aviso de isenção de responsabilidade para informações de terceiros

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