Wednesday, August 18, 2010
If you are deploying any Linux VMs on a Windows Server 2008 R2 Hyper-V Failover Cluster (and I assume a Hyper-V R2 failover cluster) there is a problem I have identified with them and their networking. I have replicated this on Debian Lenny and Red Hat so far.
If in your failover cluster, you have the node hosting the VMs fail, when they failover to another node in your cluster, you will lose networking on them. I believe that this is caused by the MAC address changing when they move over to the other node. Networking is not actually "lost" but the ethernet interface will have incremented, so eth0 will become eth1 assuming that you do not have an eth1 already, in this case I haven't tested what happens yet. To solve this (on debian) you need to edit /etc/network/interfaces and change any references to the broken interface to be set to the new interface, identifiable by running ifconfig -a
Then execute ifup eth<new>, where <new> is the new number you found from ifconfig -a and set in /etc/network/interfaces.
I believe this problem is preventable by setting the MAC address(es) to be static in either SCVMM or in Hyper-V manager. If you are using Failover Clustering and especially if you are using Cluster Shared Volumes, I *strongly* recommend that you use SCVMM or the version of SCVMM found in System Centre Essentials 2010 Plus. It makes managing them a lot easier than using Failover Cluster Manager, and a lot safer than using Hyper-V Manager.
I am carrying out further tests on this configuration to see if only static MAC addressing is required or if MAC spoofing is also needed. Multiple interfaces will also be tested.
Hope this helps someone