Windows HPC Server 2008 provides the option to automatically deploy OS images to new cluster node, using Windows Deployment Services. However, this requires the HPC cluster to be set up with a "private network" network topology.
From HPC Cluster Manager Help: "Network Topology 'All nodes only on an enterprise network': Because all nodes are connected only to the enterprise network, you cannot use Windows Deployment Services to deploy compute node images using the new deployment tools in Windows HPC Server 2008."
When selecting "Compute nodes isolated on a private network" as network topology, HPC network configuration wizard calls out that "2 online network adapters are needed for this topology". No problem for a cluster of physical machines.
My question is: if the compute cluster consists of virtual machines (running on multiple host machines), how can I set up a "virtual network" for all VMs? And, is there a way to set up some kind of virtual network switch on the head node which HPC accepts as a second NIC?
Btw. this is for a test environment, the production cluster consists of physical machines.
This really depends on your hypervisor. In both VMWare and Hyper-V, you can create private networks that although the VM's are physically seperated, they are all connected to the same logical switch.
The other way of doing it is adding a 2nd virtual network adapter to each VM and then assigning it to a VLAN. This way they stay attached to the same physical lan, but are isolated inside that LAN.
As a very brief example, this is the sort of set up you might want:
If you look, you'll see that all those VM's are connected to a private network that has no physical adapters attached to it, which means that it's completely isolated from the rest of the world.
Setting up a virtual NIC on the head node is relatively easy: you can use the Microsoft Loopback Adapter to create a dummy interface. I recommend using this as your Enterprise network; given that this is a test environment, you don't care about keeping your compute nodes isolated.
The exact configuration of your VMs depends on how you're doing the virtualization, but the short answer is that you want to configure a shared network bridge on all your host machines. What you want is for all of your VMs on each host to be able to access the physical NIC (as long as they have different IPs they shouldn't conflict), and wire the hosts so that they are all on the same network as the head node's Private network.
Configuring a bridge is different depending on your vitualization solution. If you're running KVM on Ubuntu, for example, here's a good resource. If you're running Hyper-V VMs, you can look here.