Solucionar problemas de inicialização da máquina virtual Linux do Azure devido ao disco completo do sistema operacional
Aplica-se a: ✔️ VMs linux
Em determinadas circunstâncias e configurações, um disco completo do sistema operacional (SO) pode levar a problemas de inicialização da VM (máquina virtual) Linux do Azure. Este artigo fornece algumas causas e soluções para os problemas de inicialização.
Sintomas
Durante as operações normais do sistema, se o disco do sistema operacional ou as partições críticas do sistema ficarem cheias, os seguintes problemas poderão ocorrer:
- Uma VM é desligada inesperadamente.
- Uma VM não é inicializada com êxito.
Pré-requisitos
Para solucionar os problemas de inicialização e concluir os reparos do sistema, os seguintes requisitos devem ser atendidos:
Permissões para criar um instantâneo de disco ou operar algumas ferramentas de backup e restauração.
Neste artigo, os dados ou discos são alterados, portanto, ter a capacidade de reverter a VM para um estado anterior é um componente crítico da administração segura do sistema.
Diagnóstico de inicialização habilitado e configurado.
Ter essa configuração em vigor permite a revisão futura do armazenamento do log do console e a interação com a interface do console serial da VM.
Permissões para criar uma VM caso uma VM de resgate seja necessária a qualquer momento.
Permissões para criar, desanexar e anexar discos caso seja necessária a troca de discos.
Observação
Nem todos os requisitos se aplicam aos cenários a seguir.
Cenário 1: a VM é desligada inesperadamente e falha ao inicializar
Muitas práticas de proteção de segurança podem levar a dificuldades na manutenção dos sistemas. Se ocorrer um erro ao gravar no log de auditoria, uma configuração comum exigirá que o sistema seja desligado imediatamente. Para verificar se esse cenário é o motivo de um desligamento do sistema, execute as seguintes ações:
Verifique as mensagens de desligamento do sistema no log do console serial.
Se o sistema for inicializado, um erro "Iniciando o serviço de auditoria de segurança..." é exibida. Essa mensagem não indica que o serviço foi iniciado. Em vez disso, a VM faz a transição imediatamente para desligar e uma mensagem "Desligar" é exibida. Se o sistema estiver em execução e desligar inesperadamente, o console serial poderá mostrar um processo de desligamento ordenado que termina com uma mensagem de "Desligamento". Veja as capturas de tela a seguir como exemplo:
Monte o disco do sistema operacional usando comandos az vm repair, uma VM de recuperação manual ou o modo de usuário único. Em seguida, examine a utilização do disco usando a
df
ferramenta de linha de comando e verifique se o disco que contém o diretório /var/log/audit está próximo de 100% de utilização.Acesse o sistema de arquivos do sistema operacional usando comandos az vm repair, uma VM de recuperação manual ou modo de usuário único e verifique se o arquivo /etc/audit/auditd.conf contém as seguintes configurações:
[root@linux /]# grep action /etc/audit/auditd.conf admin_space_left_action = HALT disk_full_action = HALT disk_error_action = HALT
Resolução: desative a configuração HALT temporariamente
Observação
Se essa resolução não funcionar ou não for apropriada para seu ambiente, vá para a seção Resolução .
Se a configuração auditd causar o desligamento do sistema em caso de falhas no log de auditoria, desabilitar temporariamente a HALT
configuração permitirá que a VM inicialize no sistema operacional completo para correção.
Para corrigir esse problema comum de auditoria e vários outros problemas comuns, execute a az vm repair
extensão automaticamente na CLI do Azure usando a ação auditd na ferramenta ALAR (Reparo Automático do Linux no Azure). Para fazer o mesmo procedimento manualmente, siga estas etapas:
Faça um instantâneo do disco do sistema operacional para fornecer um estado de recuperação.
Obtenha acesso ao arquivo de configuração usando comandos az vm repair, uma VM de recuperação manual ou o modo de usuário único.
Anote a configuração atual, pois pode não haver espaço disponível para fazer backup do arquivo na VM.
Altere as configurações anteriores no arquivo /etc/audit/auditd.conf de
HALT
para qualquer outro valor válido, excetoSINGLE
. Nesse cenário, os valores podem serIGNORE
,SUSPEND
ou quaisquer outros valores listados na página do Linuxman
para o arquivo auditd.conf , que fornece os parâmetros apropriados para as versões de software usadas na VM.[root@linux /]# grep action /etc/audit/auditd.conf admin_space_left_action = SUSPEND disk_full_action = SUSPEND disk_error_action = SUSPEND
Se você estiver usando uma VM de recuperação, siga as instruções em Desmontar e desanexar o disco rígido virtual original para trocar o disco do sistema operacional de volta para a VM problemática e tente inicializar a VM normalmente. Se você estiver usando o modo de usuário único, saia e a VM será reinicializada.
Depois que a VM estiver totalmente inicializada, navegue pelo sistema de arquivos e libere algum espaço usando ferramentas de linha de comando, como
df
edu
. Cerca de 10% do sistema de arquivos contendo o diretório /var/log/audit deve ser um bom destino inicial.
Depois que o problema for resolvido, reverta o conteúdo do arquivo /etc/audit/auditd.conf para seus valores originais e reinicialize a VM.
Cenário 2: o disco da VM é redimensionado no Azure, mas o sistema operacional não pode ser redimensionado e a VM não é totalmente inicializada
Depois que um disco completo é identificado e a VM é desligada para redimensionar o disco do sistema operacional, a VM pode não ser inicializada com êxito. Esse cenário pode ser confuso em algumas distribuições em que o sistema operacional tenta redimensionar automaticamente o sistema de arquivos raiz (/
) na reinicialização. Se o disco estiver cheio, a operação de redimensionamento poderá falhar porque o processo requer algum espaço livre para expandir o sistema de arquivos. Não ter espaço livre pode fazer com que o cloud-init falhe e, em seguida, a VM não conclua a inicialização.
Para identificar esse problema, revise os logs de inicialização no console serial e verifique se as linhas que se assemelham ao seguinte texto estão presentes:
[ 15.384699] cloud-init[1142]: OSError: [Errno 28] No space left on device
[ 15.384742] cloud-init[1142]: Original exception was:
[ 15.384784] cloud-init[1142]: OSError: [Errno 28] No space left on device
Como as mensagens específicas de cloud-init podem não ser a mensagem mais visível retornada, procure outras linhas que contenham o texto "[Errno 28] No space left on device" ou mensagens semelhantes "no space".
Para resolver esse problema, limpe os dados desnecessários para liberar uma pequena quantidade de espaço em disco e expanda o sistema de arquivos.
Cenário 3: a VM é inicializada, mas fica inacessível devido a falhas de serviço
Uma VM que parece inicializar completamente pode ter os seguintes problemas:
- Problemas de serviço ocorrem durante a inicialização.
- O Agente do Azure pode não aparecer disponível.
- As conexões com a VM podem falhar.
- A VM pode parecer estar offline de acordo com os aplicativos.
Durante a inicialização, várias mensagens como "[Errno 28] Não há mais espaço no dispositivo" ou outros tipos de mensagens indicam que o sistema de arquivos raiz está cheio.
Se uma VM for inicializada, mas parecer indisponível, verifique o log serial no diagnóstico de inicialização para exibir as mensagens de inicialização ou use o console serial para interagir com a VM. Se o espaço for insuficiente, limpe os dados desnecessários para liberar espaço ou expandir os discos.
Se o log do console contiver muitas mensagens informando "ERROR ExtHandler /proc/net/route não contém rotas", um disco completo do sistema operacional também poderá ser a causa, pois os serviços de rede não podem ser iniciados completamente.
Resolução
As resoluções a seguir se aplicam a qualquer um dos cenários anteriores.
Resolução 1: Limpar dados desnecessários
Obtenha acesso ao disco e às partições do sistema operacional usando comandos az vm repair, uma VM de recuperação manual ou o modo de usuário único, pois o sistema não inicializa normalmente.
Identifique arquivos e diretórios grandes usando ferramentas e comandos padrão do Linux:
du -ks /* | sort -n
- Localize os arquivos ou diretórios que consomem mais espaço em um local. Repita no maior diretório relatado até que alguns dados grandes sejam descobertos.ls -altSr /var/log
- Liste o conteúdo de um diretório, ordenado por tamanho, em ordem crescente.find / -size +500M -exec ls -alFh {} \;
- Encontre arquivos individuais grandes. Ajuste o500M
valor para vários megabytes ou gigabytes conforme necessário para localizar os arquivos mais eficazes para remoção.
Remova todos os arquivos que possam ser identificados como desnecessários, como logs antigos, backups esquecidos e arquivos semelhantes.
Depois que uma quantidade adequada de espaço for liberada, direcione cerca de 10% de disco livre e reinicie o sistema.
Resolução 2: expanda o sistema de arquivos do sistema operacional
Se nenhum dado puder ser limpo do sistema de arquivos do sistema operacional, recomendamos expandir o disco que contém os volumes críticos do sistema operacional. Para obter mais informações, consulte Expandir discos rígidos virtuais em uma VM do Linux.
Próximas etapas
Caso o erro de inicialização específico não seja um problema de inicialização do Linux devido a um disco completo do sistema operacional, consulte Solucionar problemas de erros de inicialização da máquina virtual Linux do Azure para obter mais soluções de problemas.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.