Em uma configuração pequena / média em que clustering / HA não é uma preocupação primordial (especialmente devido a complexidades e custos envolvidos em várias licenças, necessidade de versões / enterprise superiores etc.), a virtualização pode não parecer uma opção atraente; Dito isso, tudo depende do número de usuários e da importância das operações. Desde que você mencionou que "Esta configuração é para organização de tamanho pequeno a médio, então o desempenho não é um problema", eu tomo alguma liberdade para supor que esse clustering / HA, etc., não são necessários. No final, tudo depende do tempo de inatividade aceitável.
Eu usaria dois servidores físicos executando quatro VMs (cada licença do Windows Server 2008 pode ser executada em um servidor físico ou em dois servidores virtuais):
Server 1:
VM1:
PDC
Network Services
File Server (Use DFS replication)
VM2:
SQL Server
Server 2:
VM3:
Secondary Domain Controller (global catalog; backup dhcp etc)
File Server (Use DFS replication)
VM4:
Exchange
Você pode ter outros serviços em execução na VM1 ou VM3. Liquidar ISA e ir para um terceiro servidor físico (low-end); instale o pfSense nele e torne-o seu TMG / UMG completo com firewall, antivírus, caching, VPN etc. Vá para os serviços de retransmissão / backup de email fornecidos pelo cos como dnsexit.com; pode ser a forma menos dispendiosa de obter failover do Exchange (depende das expectativas).
Dessa forma, você terá um domínio com failover para alguns dos serviços mais importantes. Por exemplo, se o seu PDC estiver indisponível por alguns motivos, sua VM3 assumirá e seus clientes ainda poderão acessar arquivos e usar a Internet e os correios eletrônicos.
Com uma estratégia de backup adequada, você poderá minimizar o tempo de inatividade para limites aceitáveis de outros serviços, como SQL Server, Exchange, etc. O uso de RAID 10, SSD etc. pode proporcionar liberdade de configuração e melhorar a confiabilidade sem adicionando custos ou complexidades consideráveis.
Espero que ajude.
EDITAR:
Eu não sou muito no Exchange, mas é um servidor que você deseja manter na DMZ e, portanto, pode fazer sentido mantê-lo em sua própria VM. O mesmo vale para o IIS - na mesma VM que o Exchange. Eu posso ver que você está totalmente no ecossistema MS e no Azure. Existe algum motivo específico para ter o Exchange interno em vez de hospedado?
DFS - Funciona e funciona bem. Na minha opinião, é má solução de HA do administrador para o servidor de arquivos. Se você não precisa fazer arquivos off-line, experimente o DFS.
O TFS pode ser usado com o VM2. Eu não usei isso, mas eu entendo que é um aplicativo com fome de recursos. Se você for com o Exchange hospedado, use o VM4 para TFS.
Executar o Exchange, o SQL Server e o TFS na mesma máquina física / mesma VM está tudo bem, se você me perguntar. Mas quando você as executa em VMs diferentes, não tem nenhuma desvantagem em comparação a executá-las em uma única máquina física / virtual. Para mim, a maior vantagem é a flexibilidade e alguma tranquilidade. Por exemplo, se o seu administrador do SQL Server bagunçar algo ruim e você tiver que recriar essa máquina, o restante dos seus serviços ainda funcionará ininterruptamente enquanto você restaura a VM do SQL Server a partir do backup ou a partir do zero.