Este artigo responde perguntas frequentes (perguntas frequentes) sobre reinicializações de instância de função causadas por atualizações para o sistema operacional Windows (sistema operacional) em uma VM (máquina virtual PaaS) da plataforma Microsoft Azure como serviço (PaaS).
Como posso optar por não fazer atualizações do sistema operacional?
Você não pode optar por não receber atualizações do sistema operacional host. A Microsoft deve manter sistemas operacionais host atualizados no datacenter. Você pode optar por sair da atualização do sistema operacional convidado especificando uma versão do sistema operacional convidado. No entanto, se você fizer isso, seu serviço não receberá mais atualizações de segurança e poderá ficar vulnerável. Para obter mais informações, consulte Gerenciar uma versão do sistema operacional convidado.
Como fazer forçar que as atualizações e reinicializações sejam feitas somente durante o horário não comercial?
Você não pode controlar quando uma única instância ou serviço é atualizado para o sistema operacional host. A atualização é iniciada em todos os datacenters do Azure em todo o mundo ao mesmo tempo. O tecido funciona continuamente na atualização de cada datacenter. Devido à complexidade de garantir que as regras de domínio de atualização sejam seguidas para todos os serviços de nuvem, esse processo leva vários dias. Não há como controlar ou determinar quando uma instância específica será afetada. Para controlar a atualização do sistema operacional convidado, você pode especificar uma versão fixa do sistema operacional convidado e atualizá-la sempre que estiver pronto.
Instalei algo na VM. Mas agora, a VM foi reiniciada e o software que instalei desapareceu! Por que o software desapareceu?
Não há suporte para se conectar a uma VM do Azure PaaS por meio do RDP (Protocolo de Área de Trabalho Remota) e fazer alterações ou instalar software. A qualquer momento, a VM pode ser reconstruída e todas as alterações feitas serão perdidas. Esse cenário pode ocorrer se o hardware falhar e tivermos que iniciar uma nova VM em um novo hardware. Também ocorrerá durante a atualização do sistema operacional convidado, quando a partição do Windows for reconstruída. Se você precisar instalar o software ou fazer alterações na VM, crie uma tarefa de inicialização e faça o trabalho a partir daí. Esse processo garante que, quando a VM for recriada, sua configuração será executada novamente.
Uma das atualizações na nova versão do sistema operacional convidado pode interromper meu serviço?
As atualizações instaladas na nova versão do sistema operacional convidado estão disponíveis publicamente e são testadas completamente. Esses hotfixes também estão sendo implantados em servidores em todo o mundo por meio de Windows Update e a chance de efeitos adversos em seu serviço é pequena. Quanto aos seus serviços locais, você deve gerenciar patches do sistema operacional em VMs do Azure usando um ambiente de preparo no qual você testa as atualizações primeiro.
Se você quiser configurar um ambiente de preparo para testar as atualizações antes da produção, configure seu serviço de produção para usar uma cadeia de caracteres de sistema operacional de versão fixa no arquivo .cscfg. Em seguida, quando um novo sistema operacional convidado estiver disponível, você poderá implantar seu serviço no slot de preparo usando a versão mais recente do sistema operacional convidado. Depois de verificar se o serviço funciona corretamente no sistema operacional convidado mais recente, você pode fazer uma troca VIP. Ou você pode fazer uma atualização in loco do serviço de produção para usar o sistema operacional mais recente.
Quanto tempo a atualização levará? Quanto tempo minha VM ficará para baixo?
Um equívoco comum é que quanto mais atualizações estiverem sendo aplicadas, mais tempo o processo levará. Essa suposição baseia-se na crença de que a atualização funciona de forma semelhante à forma como uma atualização Windows Update ocorre no computador da área de trabalho local. Em uma atualização do Windows, muitas atualizações são copiadas para o Windows e instaladas incluindo reinicializações subsequentes. No entanto, esse processo não é como a atualização funciona no Azure.
Quando uma nova versão do sistema operacional está sendo lançada no Azure, a equipe do sistema operacional usa a imagem mais recente, aplica atualizações e cria um VHD (disco rígido virtual) que contém essa nova imagem base. Essa imagem base é copiada para um repositório no Azure. Quando o tecido é instruído a fazer uma atualização do sistema operacional, ele primeiro fará uma cópia passar. No datacenter que será atualizado, o tecido copia essa nova imagem base VHD para o disco rígido em cada servidor. Depois que esse processo é concluído, o tecido inicia o processo de atualização, seguindo as regras de domínio de atualização usuais.
Quando um convidado será atualizado, o tecido faz um desligamento gracioso do sistema operacional e inicia uma nova VM usando a nova imagem base. O tempo necessário para atualizar uma determinada VM para um sistema operacional convidado é aproximadamente o mesmo tempo necessário para fazer um desligamento e reinicialização graciosos do Windows.
O tempo para uma atualização do sistema operacional host é diferente. Quando um host está sendo atualizado, a sequência a seguir ocorre:
O host envia a mensagem de desligamento para cada sistema operacional convidado em execução nesse host.
Cada sistema operacional convidado recebe o evento padrão
OnStop
e o tempo de desligamento do Windows para concluir o desligamento.Depois que cada sistema operacional convidado é desligado, o sistema operacional host faz um desligamento gracioso e passa por seu procedimento de desligamento normal.
Depois que o sistema operacional host é desligado, o host é reiniciado usando a nova imagem do sistema operacional.
Depois que o host estiver em execução, ele iniciará cada sistema operacional convidado.
Normalmente, esse processo de atualização do sistema operacional host leva de 15 a 20 minutos. O tempo pode variar dependendo de quantos outros convidados estão nesse host e quanto tempo é necessário para processá-los. Mas sempre haverá exceções se ocorrer uma falha em um nó específico e o tecido do Azure determinar que os convidados nesse nó devem ser movidos para outro nó.
Como fazer lidar com o desligamento do sistema operacional?
Quando o sistema operacional está sendo atualizado, o Azure Fabric faz um desligamento gracioso de sua instância de função. Essa prática significa que seu código ASP.NET receberá o Application_End
evento e o runtime do serviço do Azure aumentará os Stopping
eventos e OnStop
. Seu código terá cinco minutos para concluir o trabalho de OnStop
limpeza antes que o processo seja encerrado. Depois que o processo de host do Azure for encerrado, o Windows passará por um desligamento normal, o que inclui o aumento dos eventos padrão OnStop
e relacionados para os Serviços Windows.
Para obter mais informações sobre como lidar com um desligamento de sua instância, confira A maneira correta de lidar com eventos do Azure OnStop, Personalizar o ciclo de vida de uma função Web ou Trabalho no .NET e Método RoleEntryPoint.OnStop().
Mais informações
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.