Bom dia pessoal,
Implementei com sucesso um Windows Deployment Server em meu ambiente, criei imagens de inicialização x86 e x64 para oferecer suporte a UEFI e BIOS legado usando o Microsoft Deployment Toolkit (v8450) e consegui inicializar com PXE em uma máquina física ( HP Z4 ) e uma máquina virtual ( VM versão 13 em execução no host ESXi 6.5 ). Além disso, criei as classes e políticas do fornecedor DHCP relevantes para garantir que o arquivo de inicialização correto esteja sendo servido para o PXEClient apropriado (ou seja, UEFI vs BIOS).
Dito isto, ao inicializar usando UEFI ( com Secure Boot ativado ), observei duas coisas ( a segunda sendo preocupante, por isso postei esta pergunta ):
Durante o processo de inicialização, a máquina física contata com sucesso o Servidor WDS e baixa a imagem de inicialização em cerca de 6 segundos, depois conclui a instalação do SO em cerca de 6 a 8 minutos.
Durante o processo de inicialização, a máquina virtual também contata com êxito o Servidor WDS e baixa a imagem de inicialização. No entanto, leva mais de 45 minutos a 1 hora para capturar a imagem de inicialização. Depois disso, a instalação do sistema operacional é concluída aproximadamente no mesmo tempo que a caixa física (apenas cerca de 8 minutos).
Para solucionar o problema, confirmei que o servidor WDS não estava enfrentando nenhum problema técnico que pudesse afetar o desempenho da NIC. Verifiquei a configuração da NIC da VM e descobri que ela estava usando o tipo de adaptador E1000E - então alterei para usar o tipo de adaptador VMXNET 3 . Isso fez uma ligeira melhoria.
Então, decidi fazer uma captura de pacotes do Wireshark para ver se conseguia ver algo diferente na forma como a máquina física e a VM estavam se comunicando com o WDS Server. Bem, a única coisa que me chamou a atenção é o seguinte:
- A Máquina Física usou o protocolo TFTP
- A máquina virtual usou o protocolo UDP
Como tal, alguém sabe se há uma configuração em algum lugar que instrui a máquina virtual a preferir o protocolo UDP ao TFTP? Não encontrei nada definitivo na documentação do VMware além de uma declaração de que a inicialização por PXE de uma VM era possível e suportada.
Qualquer ajuda é definitivamente apreciada, obrigado e minhas desculpas pela longa narrativa.
Portanto, para quem está enfrentando esse problema, a solução para mim foi ajustar as configurações "ramdisktftpblocksize" e "ramdisktftpwindowsize" no arquivo de dados de configuração de inicialização (BCD) para a respectiva arquitetura ( ou seja, x86 ou x64 ) na pasta de inicialização do WDS RemoteInstall . Depois disso, reiniciei o serviço WDS. Agora estou vendo cerca de 10 a 15 segundos de tempo de carregamento da imagem de inicialização em máquinas virtuais e cerca de 6 a 10 segundos em máquinas físicas usando uma imagem de inicialização de aproximadamente 400 MB.
A única coisa que notei é que isso cria pacotes IP fragmentados, mas eles são remontados de qualquer maneira, então não me incomoda muito, pois haverá muito pouco impacto para meus usuários finais ou rede de qualquer maneira, com base na frequência e nos horários em que eu serão sistemas de inicialização PXE para geração de imagens. No entanto, se isso for um problema para você, procure outra solução, por favor.
No meu ambiente, os caminhos eram os seguintes (o seu pode ser diferente, é claro, então ajuste de acordo ):
CUIDADO: Faça um backup do arquivo default.bcd antes de fazer alterações, por motivos óbvios (espero).
Aqui está o que eu fiz para implementar esta solução:
bcdedit /enum all /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd
bcdedit /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd /set {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisktftpwindowsize 8
bcdedit /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd /set {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisktftpblocksize 16384
bcdedit /enum all /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd
Sinalize o Servidor WDS para reconstruir os arquivos de inicialização com suas alterações usando o seguinte comando:**
E é isso. Com essas alterações, consegui iniciar o Wireshark no servidor PXE, inicializei com pxe minha máquina virtual. Conforme assisti no Wireshark, vi as conversas iniciais começarem com "TFTPWindowSize = 4" e "TFTPBlockSize = 1456" mas logo depois quando o próprio boot loader começou a baixar vi uma renegociação onde os valores que eu configurei entraram em vigor - e foi aí que Eu vi a VM carregar a imagem de inicialização em 10 a 15 segundos.
Como mencionei anteriormente, vi cerca de 8 ou mais pacotes "Protocolo IP fragmentado" , mas todos foram remontados e, além disso, o objetivo final foi alcançado - a máquina virtual e a máquina física inicializaram rapidamente e instalaram o sistema operacional com sucesso.
Espero que esta informação seja útil para alguém - desculpe por escrever um livro...lol.
Créditos ao seguinte post: https://blog.uvm.edu/jgm/2010/11/04/tuning-microsoft-pxe-tftp/