About Hyper-V Failover Cluster and “Refresh Virtual Machine Configuration”

SYMPTOM
=================
將 Virtual Machine "ABC" 從 Node1 Live Migrate 至 Node2,進度到 90% 的時候失敗

CAUSE
=================
從 Cluster Log 中發現失敗的原因是 'ABC' Microsoft Synthetic Ethernet Port (Instance ID {346984E3-8736-441E-9806-03F726E6B109}): Failed to restore with Error 'The system cannot find the path specified.' (0x80070003).

Microsoft Synthetic Ethernet Port 跟 Virtual Switch/Network 有關,錯誤是 'The system cannot find the path specified.'

經檢查 Node1& Node2 的 Hyper-V Virtual Network 設定,兩邊的 Virtual Switch 命名一致,比較可能的原因是 Failover Clustering 裡面的 VM Configuration 資訊跟 Hyper-V 不一致所導致。

RESOLUTION
=================
Refresh the Virtual Machine configuration.

To do this, follow these steps:
    a) Expand Services and Applications
    b) Select a Virtual Machine.
    c) Right click the Virtual Machine or click Actions, point to More Actions and select "Refresh Virtual Machine Configuration"

以下BLOG說明 "Refresh virtual machine configuration" 這個功能的重要性

BLOGS
Cluster Resource Type options for Hyper-V - Ask the Core Team - Site Home - TechNet Blogs
https://blogs.technet.com/b/askcore/archive/2008/08/27/cluster-resource-type-options-for-hyper-v.aspx

Windows Server 2008 R2 Live Migration – “The devil may be in the networking details.” - Ask the Core Team - Site Home - TechNet Blogs
https://blogs.technet.com/b/askcore/archive/2009/12/10/windows-server-2008-r2-live-migration-the-devil-may-be-in-the-networking-details.aspx

Help 檔裡也有這個 "Refresh virtual machine configuration" 功能的說明

Refresh the Configuration of a Virtual Machine

Important 

  • If you cluster your virtual machines and then use Hyper-V Manager to change the configuration of one of those virtual machines, be sure to follow the procedure described in this topic. Otherwise, the settings of the virtual machine might not be up-to-date in the failover cluster, which could cause problems during the next move, migration, or failover of that clustered virtual machine.
  • We recommend that you use Failover Cluster Manager instead of Hyper-V Manager when you change the settings of a clustered virtual machine. For more information, see Modify the Virtual Machine Settings for a Clustered Virtual Machine.

To refresh the configuration of a virtual machine

  1. In the Failover Cluster Manager snap-in, if the cluster that you want to configure is not displayed, in the console tree, right-click Failover Cluster Manager, click Manage a Cluster, and then select or specify the cluster that you want.
  2. If the console tree is collapsed, expand the tree under the cluster that you want to configure.
  3. Expand Services and Applications, and then click the virtual machine for which you want to refresh the configuration.
  4. In the Actions pane, scroll down, click More Actions, and then click Refresh virtual machine configuration.
  5. Click Yes to view the details of this action.

Additional considerations

You can also perform the task described in this procedure by using Windows PowerShell. For more information about using Windows PowerShell for failover clusters, see https://go.microsoft.com/fwlink/?LinkId=135119 and https://go.microsoft.com/fwlink/?LinkId=135120.

clip_image002

參考知識文件:

以下連結包含如何 Troubleshoot Live Migration 問題

Hyper-V: Using Live Migration with Cluster Shared Volumes in Windows Server 2008 R2 - Flowcharts for troubleshooting a live migration
https://technet.microsoft.com/en-us/library/dd446679(WS.10).aspx

以下連結包含如何設定 Network for Live Migration

System Center Data Protection Manager 2010 Hyper-V protection: Configuring cluster networks for CSV redirected access
https://support.microsoft.com/kb/2473194

這篇 KB 2473194 重點如下:

1. Hyper-V Failover Cluster 應該要 Dedicate 網卡給 CSV & LM 兩個資料流

2. 所以使用 iSCSI 的 2008 R2 Hyper-V Failover Cluster應該每個 Node 至少具備五張網卡 (若是使用光纖則是四張)

If you added two networks (one for CSV and one for Live Migration), you run these two commands:

PS C:\Windows\system32> Get-ClusterNetwork "CSV Cluster" | %{$_.Metric=800}
PS C:\Windows\system32> Get-ClusterNetwork "LM Cluster" | %{$_.Metric=900}

You should manually set it to lower than 1000 so that it does not have a chance to conflict with anything else new that might come in later.  Now when you run the command to see what it configured, you see this:

PS C:\Windows\system32> Get-ClusterNetwork | FT Name, Metric, Role

Name                            Metric     Role
---------------------------------------------
iSCSI Storage Network    10100      0
Heartbeat Cluster             1000      1
Host Access Cluster        10000      3
CSV Cluster                      800      1
LM Cluster                        900      1

So based off of the Metric, the CSV Traffic will now be set for the CSV Cluster network because it is the lowest matric.

以下連結包含如何設定 ISO 檔案分享

How to Enable Shared ISO Images for Hyper-V Virtual Machines in VMM
https://technet.microsoft.com/en-us/library/ee340124.aspx