Dimensionar hosts de sessão usando a Automação do Azure e os Aplicativos Lógicos do Azure para Área de Trabalho Virtual do Azure
Você pode reduzir o custo total de implantação da Área de Trabalho Virtual do Azure dimensionando suas máquinas virtuais (VMs). Isso significa desligar e deslocalizar VMs de host de sessão fora do horário de pico, depois ativá-las novamente e realocá-las durante o horário de pico.
Neste artigo, você aprenderá sobre a ferramenta de dimensionamento criada com a conta de Automação do Azure e os Aplicativos Lógicos do Azure que dimensiona automaticamente as VMs de host de sessão em seu ambiente de Área de Trabalho Virtual do Azure. Para saber como usar a ferramenta de dimensionamento, consulte Configurar o dimensionamento de hosts de sessão usando a Automação do Azure e os Aplicativos Lógicos do Azure.
Nota
A solução de Autoscale nativa da Área de Trabalho Virtual do Azure está geralmente disponível para pool(s) e pool(s) de host pessoal e dimensionará automaticamente VMs de host de sessão com base no agendamento de escala. Recomendamos o uso do Autoscale para facilitar a configuração. Para obter mais informações, consulte Planos de dimensionamento automático.
Como funciona a ferramenta de dimensionamento
A ferramenta de dimensionamento fornece uma opção de automação de baixo custo para clientes que desejam otimizar os custos da VM do host de sessão.
Você pode usar a ferramenta de dimensionamento para:
- Agende VMs para iniciar e parar com base no horário comercial de pico e fora do pico.
- Dimensione VMs com base no número de sessões por núcleo de CPU.
- Dimensione VMs fora do horário de pico, deixando o número mínimo de VMs de host de sessão em execução.
A ferramenta de dimensionamento usa uma combinação de uma conta de Automação do Azure, um runbook do PowerShell, um webhook e um Aplicativo Lógico para funcionar. Quando a ferramenta é executada, o Aplicativo Lógico chama um webhook para iniciar o runbook. O runbook então cria um trabalho.
As horas de ponta e fora de ponta são definidas como:
- Pico: o momento em que se espera que a simultaneidade máxima da sessão do usuário seja atingida.
- Fora de pico: o tempo em que se espera que a simultaneidade mínima da sessão do usuário seja atingida.
Durante o horário de pico de uso, o trabalho verifica o número atual de sessões e a capacidade da VM do host de sessão em execução atual para cada pool de hosts. Ele usa essas informações para calcular se as VMs de host de sessão em execução podem oferecer suporte a sessões existentes com base no parâmetro SessionThresholdPerCPU definido para o arquivo CreateOrUpdateAzLogicApp.ps1 . Se as VMs do host de sessão não puderem oferecer suporte a sessões existentes, o trabalho iniciará VMs de host de sessão extras no pool de hosts.
Nota
SessionThresholdPerCPU não restringe o número de sessões na VM. Esse parâmetro determina apenas quando novas VMs precisam ser iniciadas para balancear a carga das conexões. Para restringir o número de sessões, você precisa seguir as instruções para configurar o parâmetro MaxSessionLimit de acordo.
Durante o horário de uso fora do pico, o trabalho determina quantas VMs de host de sessão devem ser desligadas com base no parâmetro MinimumNumberOfRDSH . Se você definir o parâmetro LimitSecondsToForceLogOffUser como um valor positivo diferente de zero, o trabalho definirá as VMs do host da sessão para o modo de drenagem para impedir que novas sessões se conectem aos hosts. O trabalho notificará todos os usuários conectados no momento para salvar seu trabalho, aguardar a quantidade de tempo configurada e, em seguida, forçar os usuários a sair. Depois que todas as sessões de usuário na VM do host da sessão tiverem sido desconectadas, o trabalho encerrará a VM. Depois que a VM for desligada, o trabalho redefinirá o modo de drenagem do host da sessão.
Nota
Se você definir manualmente a VM do host da sessão para o modo de drenagem, o trabalho não gerenciará a VM do host da sessão. Se a VM do host da sessão estiver em execução e definida para o modo de drenagem, ela será tratada como indisponível, o que fará com que o trabalho inicie VMs adicionais para lidar com a carga. Recomendamos que você marque todas as VMs do Azure antes de defini-las manualmente para o modo de drenagem. Você pode nomear a tag com o parâmetro MaintenanceTagName ao criar o Agendador do Aplicativo Lógico do Azure posteriormente. As tags ajudarão você a distinguir essas VMs daquelas gerenciadas pela ferramenta de dimensionamento. Definir a tag de manutenção também impede que a ferramenta de dimensionamento faça alterações na VM até que você remova a tag.
Se você definir o parâmetro LimitSecondsToForceLogOffUser como zero, o trabalho permitirá que a definição de configuração de sessão em políticas de grupo especificadas manipule a aprovação de sessões de usuário. Para ver essas políticas de grupo, vá para Políticas>de Configuração>do Computador Modelos Administrativos>Componentes do Windows Serviços>>de Área de Trabalho Remota Sessão de Área de Trabalho Remota Host>da Sessão Limites de Tempo. Se houver sessões ativas em uma VM de host de sessão, o trabalho deixará a VM de host de sessão em execução. Se não houver sessões ativas, o trabalho encerrará a VM do host da sessão.
A qualquer momento, o trabalho também leva em conta MaxSessionLimit do pool de hosts para determinar se o número atual de sessões é superior a 90% da capacidade máxima. Se for, o trabalho iniciará VMs de host de sessão extras.
O trabalho é executado periodicamente com base em um intervalo de recorrência definido. Você pode alterar esse intervalo com base no tamanho do seu ambiente de Área de Trabalho Virtual do Azure, mas lembre-se de que iniciar e desligar VMs pode levar algum tempo, portanto, lembre-se de levar em conta o atraso. Recomendamos definir o intervalo de recorrência a cada 15 minutos.
No entanto, a ferramenta também tem as seguintes limitações:
- Esta solução aplica-se apenas a VMs de host de sessão múltipla em pool.
- Esta solução gere VMs em qualquer região, mas só pode ser utilizada na mesma subscrição que a sua conta de Automação do Azure e a Aplicação Lógica do Azure.
- O tempo de execução máximo de um trabalho no runbook é de 3 horas. Se iniciar ou parar as VMs no pool de hosts demorar mais do que isso, o trabalho falhará. Para obter mais informações, consulte Recursos compartilhados.
- Pelo menos uma VM ou host de sessão precisa ser ativado para que o algoritmo de dimensionamento funcione corretamente.
- A ferramenta de dimensionamento não suporta dimensionamento com base na CPU ou na memória.
- O dimensionamento só funciona com hosts existentes no pool de hosts. A ferramenta de dimensionamento não suporta o dimensionamento de novos hosts de sessão.
Nota
A ferramenta de dimensionamento controla o modo de balanceamento de carga do pool de hosts que está dimensionando no momento. A ferramenta usa o modo de balanceamento de carga ampliado para horários de pico e fora do pico.
Próximos passos
- Saiba como configurar o dimensionamento de hosts de sessão usando a Automação do Azure e os Aplicativos Lógicos do Azure.