もう一度ライブマイグレーションについて:Hyper-V仮想マシンをより高速にマイグレーションする方法

     「Hyper-Vを愛するなら-愛とPowerShell」テレグラムのHyper-Vコミュニティ

     の最初のルール「そしてVMwareESXiを愛するなら、ESXiCLIとRESTAPIと一緒にPowerShellを愛する」      私が追加 ライブマイグレーションはHyperの人気のある機能です-V。これにより、目に見えるダウンタイムなしで実行中の仮想マシンを移行できます。ネット上でVMを転送するための多くの指示がありますが、それらの多くは時代遅れです。さらに、すべての人が詳細設定を調べて、ライブマイグレーション機能をうまく利用しているわけではありません。  クラスタ内およびクラスタ間でVMをすばやく転送するための微妙な違いと非自明なパラメータを収集しました。同時に、セットアップと設計の秘密を少し共有します。この記事が初心者の管理者に役立つことを願っています。   



     













免責事項:Hyper-Vサーバーをprodに入力する前に、説明されているすべての手順を実行することをお勧めします。Hyper-Vは設計ミスを決して許さず、最初の機会にあなたを失望させます。つまり、まさに翌日です。


材料を覚えておいてください



いつものように、Hyper-Vクラスター内のあるノードから別のノードへのVMの移行は次のように行われます。



  1. VM構成は、あるクラスターノードから別のクラスターノードにコピーされます。 
  2. 仮想マシンのメモリページは、ターゲットホストにコピーするようにマークされ、それらをオンラインに移動するプロセスが開始されます。
  3. , . Hyper-V . , .





    .
  4. , , . . , .


これはライブマイグレーションと呼ばれます。このスキームは、すべてのハイパーバイザーに有効です



VMに搭載されているRAMが多く、変更が集中的に行われるほど、移動に時間がかかります。したがって、ライブマイグレーショントラフィックには、適切なチャネルと注意深い構成が必要です。

これは、従来のライブマイグレーションがフェイルオーバークラスター内でどのように機能するかを示しています。クラスター内のすべてのホストに提供される共有CSVボリュームが必要です。

 

さらに、ライブマイグレーションの2番目のタイプである「nothing」(Shared-for Nothingライブマイグレーション)でのライブマイグレーションがあります。このシナリオは通常、クラスター間のダウンタイムなしでVMを移行するために使用されます。あるHyper-Vホストから別のHyper-Vホストへのメモリページに加えて、VHD(X)ディスクは、それに書き込まれたデータデルタの転送と同期とともにコピーされます。 


インターフェイスの構成の主なニュアンスを分析してみましょう。



プロトコル設定の設定



  1. まず、Hyper-Vマネージャーに移動し、Hyper-V設定を右クリックします。ライブマイグレーション設定で、ハイパーバイザーがアクセスするネットワークインターフェイスのアドレスを指定します。 





  2. 高度な機能を見てみましょう。私たちは、認証プロトコルとVMが使用するトランスポートの両方の点に関心があります。

    • 認証プロトコル:CredSSP-資格情報セキュリティサポートプロバイダープロトコルがデフォルトでインストールされます。使い方は簡単ですが、インフラストラクチャに複数のクラスターがある場合、クラスター間でVMを転送することはできません。 



      より安全で、異なるクラスター間でVMを移動するのに適したKerberosを選択します。

    • Performance options: . Switch Embedded Team SMB (Server Message Block). 



      Windows Server 2016. SMB (SMB Multi-channel). RDMA – . . 







  3. Kerberos , (Kerberos Constrained Delegation) Computer Active Directory. 



    Windows Server 2016, NETWORK SERVICE, AD. (Unconstrained Delegation), , :







    System Center Virtual Machine Manager (SC VMM), . SC VMM Shared-Nothing Live Migration.
  4. SMB . , Live Migration SMB:



    Set-SmbServerConfiguration -EncryptData $false -RejectUnencryptedAccess $false


    . . 



    Windows Admin Center:







Hyper-Vネットワークの最適化は、コミュニティで非常に物議を醸すトピックであり、実験のための無限の分野です(定義上、完全性に制限はありません)。したがって、ネットワークを段階的に設定する前に、テクノロジーが最近どのように変化し、どのように使用できるかを理解しましょう。  



以前のように。古いHyper-VVM移行マニュアルでは、ロードバランシング/フェイルオーバー(LBFO)タイミングテクノロジーを使用するシナリオについて説明しています。 LBFOにより、物理ネットワークアダプターをグループ化し、それらの上にインターフェイスを作成することが可能になりました。ただし、欠点もありました。たとえば、RDMAがサポートされていなかったため、トラフィックがどのTimポートを経由するかを見つけることができませんでした。また、ライブマイグレーショントラフィックにはかなり太いチャネルが必要なため、すべてのネットワークワークロードが1つの物理ポートにバーストすると、これが問題になりました。 



今のような..。 Windows Server 2019では、LBFOチームの上に仮想スイッチを作成することさえできません。 Hyper-VでサポートされているNICポートトランキングの唯一のソリューションは、Switch Embedded Team(SET)です。  



SETは、ESXi vSwitchと同様に、アダプターを集約します。物理ネットワークポートは、さまざまなタイプのトラフィック(VMを含む)のパッチコードになり、仮想インターフェイスはそれらの上にカットされます。 



, . , 2 , 3 ( ). - ESX (1+). Red Hat c . VMware vSphere 4.1 1 (bare-metal). 



Microsoft VMware Switch Embedded Team Windows Server 2016. .


新しいバージョンでは、SETを使用すると、物理インターフェイスのグループの上に、さまざまなワークロード用にさまざまな仮想インターフェイスを作成できます。実際、これらはルートパーティションの仮想ネットワークアダプターであり、VMの仮想アダプターのように管理できます。 



これがセットアッププロセスにどのように影響するか。 Hyper-Vでは、管理インターフェイスに加えて、通常、ライブマイグレーション用のインターフェイスとクラスターCSVトラフィック用のインターフェイスを作成します。これを行うには、SETに含まれるネットワークポートの数を知る必要があります。これは、作成する必要のある仮想インターフェイスの数です。また、PCIバス上のネットワークポートの位置、NUMAノードへのインターフェイスの後続のマッピング用のソケットの数、および各プロセッサ上の物理コアの数も考慮に入れます。



プロセスを段階的に見ていきましょう



  1. , . , on-board .









    VLAN ID



    Management



    192.168.1.0/24

    192.168.1.1

    0 (Native)

    1

    LiveMigration



    192.168.2.0/24

    2

    2

    CSV

    CSV-

    192.168.3.0/24

    3

    2

  2. SET Virtual Switch VMM (Virtual Machine Manager). VMM ,   PowerShell Hyper-V: 



    New-VMSwitch -Name "SET" –NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $True -AllowManagementOS $true -MinimumBandwidthMode Weight


    -. MinimumBandwidthMode weight, SET . . Network QoS Policies ( ). 



    SET RDMA-, MinimumBandwidthMode . , Network QoS Policies RDMA .

  3. Dynamic Hyper-V Port ( Windows Server 2019). Dynamic Address Hash Hyper-V Port , : 



    Set-VMSwitchTeam "SET" -LoadBalancingAlgorithm Dynamic


    , SET SC VM Host Default. Windows Server 2016 Dynamic. Windows Server 2019 Hyper-V Port, .

  4. , IP- . 



    «» CSV- : 



    #     Live Migration
    Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration01" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration02" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    
    #  VLAN
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "LiveMigration*" -VlanId 2 -Access
    
    # IP-  
    New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration01)" -IPAddress 192.168.2.2 -PrefixLength 24 -Confirm:$false
    New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration02)" -IPAddress 192.168.2.3 -PrefixLength 24 -Confirm:$false
    
    #     CSV-
    Add-VMNetworkAdapter –ManagementOS –Name "CSV01" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    Add-VMNetworkAdapter –ManagementOS –Name "CSV02" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    
    #  VLAN
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "CSV*" -VlanId 3 -Access
    
    #  IP-  
    New-NetIPAddress –InterfaceAlias "vEthernet (CSV01)" -IPAddress 192.168.3.2 -PrefixLength 24 -Confirm:$false
    New-NetIPAddress –InterfaceAlias "vEthernet (CSV02)" -IPAddress 192.168.3.3 -PrefixLength 24 -Confirm:$false
  5. . , Jumbo Frames 9K , Management. 



    : .  



    Set-NetAdapterAdvancedProperty -Name "NIC1" -DisplayName "Jumbo Packet" -DisplayValue 9014
    Set-NetAdapterAdvancedProperty -Name "NIC2" -DisplayName "Jumbo Packet" -DisplayValue 9014
    Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"


    , Windows Server, . , Windows. SET Management’. Get-NetAdapterAdvancedProperties.

  6. , :







    CSV-. :



    Set-NetIPInterface -InterfaceIndex 16 -InterfaceMetric 10000
    Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 10000
    Set-NetIPInterface -InterfaceIndex 9 -InterfaceMetric 10500
    Set-NetIPInterface -InterfaceIndex 6 -InterfaceMetric 10500
    


    , .
  7. RDMA, . RDMA CPU. RDMA Get-NetAdapterRdma.





    : . statemigration.com.



    RDMA (, , ).
  8. PCI-. Virtual Machine Queues (VMQ). 



    , , .  



    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "LiveMigration01"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "LiveMigration02"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "CSV01"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "CSV02"
  9. VMQ PCI-. , . : -, , -, 3 . . (SMB)! , RSS. 



    Windows Server 2019 VMQ , dVMMQ. , 90%. Windows Server 2019 VMQ . 



    :



    Set-NetAdapterRss -Name "NIC1" -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessors 8 -MaxProcessorNumber 16
    Set-NetAdapterRss -Name "NIC2" -BaseProcessorGroup 0 -BaseProcessorNumber 16 -MaxProcessors 8 -MaxProcessorNumber 30


    , . , 2 16 . 32 . Excel 0 31:







    Base Processor Number 2. . 16 – MaxProcessorNumber.



    BaseProcessor 16 ( ). . , Live Migration. 



    同じコマンドレットを使用して、RSSキューの数を設定することもできます。それらの数はネットワークカードの特定のモデルによって異なるため、RSSキューを設定する前に、ネットワークカードのドキュメントを調べる必要があります。


クラスター化されたシナリオの移行のセットアップ 



フェイルオーバークラスター側では、クラスタータイムアウト設定のネジをさらに緩めます。



(Get-Cluster).SameSubnetDelay = 2000
(Get-Cluster).SameSubnetThreshold = 30


  • SameSubnetDelayは、ハートビットを送信する回数を示します。デフォルトでは、1秒に設定されています。 



    クラスタノードが同じネットワーク上にある場合は、これで十分です。それらが異なるネットワーク上にある場合は、同じ値でCrossSubnetDelayを構成する必要があります。
  • SameSubnetThresholdは、可能な限りスキップできるハートビットの数を示します。デフォルトでは、これは5ハートビットで、最大は120です。最適値(30ハートビット)を設定します。



高負荷のマシンの場合、両方のパラメーターを緩めることが重要です。私たちが会わなければ、そのような機械はひっくり返らない可能性が高いです。 



ライブマイグレーショントラフィックが特定のネットワークでのみ使用されるように、フェイルオーバークラスター設定に別のネットワークを残します。











実際、これは、Hyper-Vでライブマイグレーションが正しく機能するための最低限の紳士の設定セットです。 



All Articles