Sdílet prostřednictvím


Vyvažování zátěže síťového provozu v rámci SDN sítě pomocí VMM

Software Load Balancer (SLB) můžete použít k rovnoměrné distribuci síťového provozu mezi úlohy v softwarově definovaných sítích (SDN) spravovaných poskytovateli cloudových služeb (CSP) a tenanty. Další informace naleznete v tématu Software Load Balancer (SLB).

System Center Virtual Machine Manager (VMM) podporuje následující dva scénáře vyrovnávání zatížení:

  • Vyrovnávání zatížení externího síťového provozu: Tento scénář zahrnuje vyrovnávání zatížení síťového provozu přicházejícího z externí sítě. Vyrovnávání zatížení se provádí prostřednictvím veřejné virtuální IP adresy (VIP). Virtuální počítače úloh se dají připojit k neizolované síti virtuálních počítačů nebo k síti virtuálních počítačů s povolenou virtualizací.

  • Vyrovnávání zatížení interního síťového provozu (interní vyrovnávání zatížení): Tento scénář zahrnuje vyrovnávání zatížení síťového provozu úloh v síti virtuálních počítačů, která je povolená pro virtualizaci sítě. Vyrovnávání zatížení probíhá prostřednictvím VIP.

    Poznámka:

    Nástroj VMM podporuje konfiguraci vyrovnávání zatížení pomocí PowerShellu. Konfigurace prostřednictvím šablon služeb se v současné době nepodporuje.

Tento článek obsahuje informace o tom, jak nakonfigurovat vyrovnávání zatížení virtuálních počítačů úloh pomocí PowerShellu.

Poznámka:

  • Z VMM 2019 UR1 se typ jedné připojené sítě změní na Připojenou síť.
  • VMM 2019 UR2 a novější podporuje protokol IPv6.

Než začnete

Zajistěte, aby:

  • Síťový adaptér SDN a nástroj pro vyrovnávání zatížení softwaru SDN se nasazují.

  • Požadované virtuální počítače se vytvářejí v příslušných sítích a jsou identifikovány pro vyrovnávání zatížení.

Vytvoření šablony VIP

Použijte následující postupy k nakonfigurování virtuálních IP adres pro vyrovnávání zátěže pracovních virtuálních počítačů (DIP).

  1. V konzole VMM vyberte Infrastruktura>Šablony VIP. Klikněte pravým tlačítkem myši a vyberte Vytvořit šablonu VIP.

    Snímek obrazovky s názvem šablony VIP

  2. Na stránce Název zadejte název a volitelný popis. Zadejte port virtuální IP adresy, který se použije jako front-endový port pro síťový provoz. Na back-endovém portu zadejte port, na kterém jsou hostované úlohy back-endu. Vyberte Další.

    Snímek obrazovky typu šablony VIP

  3. V části Typ v části Zadat typ šablony vyberte Konkrétní. V rozevíracím seznamu Výrobce vyberte Microsoft a z rozevíracího seznamu Model vyberte Microsoft Network Controller.

  4. Vyberte Další.

    Snímek obrazovky s možnostmi protokolu VIP

  5. V možnosti protokolu vyberte Vlastní a TCP/UDP v názvu protokolu. Vyberte Další.

    Poznámka:

    SLB podporuje vyrovnávání zatížení provozu TCP/UDP pouze na vrstvě 4. Protokoly HTTP/HTTPS se nepodporují.

  6. Pro trvalost a vyrovnávání zatížení použijte výchozí hodnoty. Vyberte Další.

    Snímek obrazovky Zdravotního monitoru

    Poznámka:

    SLB nepodporuje trvalost a různé metody vyrovnávání zatížení. SLB ve výchozím nastavení používá k vyrovnávání zatížení algoritmus Round Robin.

  7. Do Monitorování stavu volitelně vložte příslušné hodnoty. Vyberte Další.

    Možnosti: Protokoly TCP a HTTP jsou podporovány jako protokoly monitorování stavu, pokud se používá SLB.

  8. Ověřte nastavení a vyberte Dokončit.

Po vytvoření šablony ji najdete v části Fabric>Šablony VIP.

Vytvoření VIP pomocí PowerShellu

Vytvořte VIP pomocí následujících ukázkových skriptů. Vyberte skript podle typu síťového provozu, který chcete pro vyrovnávání zatížení.

Skript pro vytvoření VIP pro vyrovnávání zatížení externího síťového provozu

Skript pro vytvoření VIP (virtuální IP adresy) pro vyrovnávání zatížení interního síťového provozu

Skript pro vytvoření VIP pro vyrovnávání zatížení externího síťového provozu

Následující ukázkový skript vytvoří VIP adresu z veřejné IP sítě pro vyrovnávání zatížení pracovních virtuálních počítačů WGB-001 a WGB-002 na portu 80.

Tento skript lze použít k vytvoření VIP pro vyrovnávání zatížení, a to i zadáním IPv6 VIP adresy.

Virtuální počítače úloh je možné připojit k síti bez izolace nebo k sítím s povolenou virtualizací sítě.

Poznámka:

  • V části parametry skriptu nahraďte skutečné hodnoty odpovídající vašemu testovacímu prostředí pro ukázky použité v tomto skriptu.
  • Ujistěte se, že skript spustíte na serveru VMM nebo v počítači, na kterém běží konzola VMM.
param(

[Parameter(Mandatory=$false)]
# Name of the Network Controller Network Service
# This value should be the name you gave the Network Controller service
# when you on-boarded the Network Controller to VMM
$LBServiceName = "NC",

[Parameter(Mandatory=$false)]
# Name of the workload VMs you want to load balance.
$VipMemberVMNames =  @("WGB-001","WGB-002"),

[Parameter(Mandatory=$false)]
# Name of the VIP VM Network
$VipNetworkName = "PublicVIP",


[Parameter(Mandatory=$false)]
# VIP address you want to assign from the VIP VM Network IP pool.
# Pick any VIP that falls within your VIP IP Pool range.
$VipAddress = "44.15.10.253",


[Parameter(Mandatory=$false)]
# The name of the VIP template you created via the VMM Console.
$VipTemplateName = "WebsiteHTTP",

[Parameter(Mandatory=$false)]
# Arbitrary but good to match the VIP you're using.
$VipName = "scvmm_44_15_10_253_80"

)

Import-Module virtualmachinemanager

$lb = Get-scLoadBalancer | where { $_.Service.Name -like $LBServiceName};
$vipNetwork = get-scvmnetwork -Name $VipNetworkName;

$vipMemberNics = @();
foreach ($vmName in $VipMemberVMNames)
{
$vm = get-scvirtualmachine -Name $vmName;
#    if ($vm.VirtualNetworkAdapters[0].VMNetwork.ID -ne $vipNetwork.ID)
#    {
#        $vm.VirtualNetworkAdapters[0] | set-scvirtualnetworkadapter -VMNetwork $vipNetwork;
#    }

$vipMemberNics += $vm.VirtualNetworkAdapters[0];
}

$existingVip = get-scloadbalancervip -Name $VipName
    if ($existingVip -ne $null)
{
#    foreach ($mem in $existingVip.VipMembers)
#    {
#        $mem | remove-scloadbalancervipmember;
#    }

    $existingVip | remove-scloadbalancervip;
}

$vipt = get-scloadbalancerviptemplate -Name $VipTemplateName;

$vip = New-SCLoadBalancerVIP -Name $VipName -LoadBalancer $lb
-IPAddress $VipAddress -LoadBalancerVIPTemplate $vipt
-FrontEndVMNetwork $vipNetwork
-BackEndVirtualNetworkAdapters $vipMemberNics;
Write-Output "Created VIP " $vip;

$vip = get-scloadbalancervip -Name $VipName;
Write-Output "VIP created successfully " $vip;

Skript pro vytvoření virtuální IP adresy (VIP) k vyrovnávání zatížení interního síťového provozu

Pro následující ukázkový skript jsme vytvořili novou šablonu VIP s názvem ILB-VIP-Template pro vyrovnávání zatížení portu 443 pomocí postupu popsaného v předchozí části. Skript vytvoří VIP ze sítě virtuálních počítačů tenanta pro vyrovnávání zátěže na virtuální počítače ILB-001 a ILB-002, které jsou součástí stejné sítě virtuálních počítačů tenanta.

Tento skript lze použít k vytvoření VIP pro vyrovnávání zatížení, a to i zadáním IPv6 VIP adresy.

Poznámka:

  • Ve scénáři interního vyrovnávání zatížení pochází VIP adresa ze sítě virtuálních počítačů nájemce. $VipNetworkName je stejný název sítě VM tenanta, kde jsou virtuální počítače připojené. Ujistěte se, že fond IP sítě tenanta VM má IP rezervované pro VIP. $VipAddress je jednou z IP adres z rezervovaných VIP adres.
  • V části parametry skriptu nahraďte skutečné hodnoty odpovídající vašemu testovacímu prostředí pro ukázky použité v tomto skriptu.
  • Ujistěte se, že skript spustíte na serveru VMM nebo v počítači, na kterém běží konzola VMM.
param(

[Parameter(Mandatory=$false)]
# Name of the Network Controller Network Service
# This value should be the name you gave the Network Controller service
# when you on-boarded the Network Controller to VMM
$LBServiceName = "NC",

[Parameter(Mandatory=$false)]
# Name of the workload VMs you want to load balance.
$VipMemberVMNames =  @("ILB-001","ILB-002"),

[Parameter(Mandatory=$false)]
# Name of the VIP VM Network
$VipNetworkName = "TenantNetwork",

[Parameter(Mandatory=$false)]
# VIP address you want to assign from the VIP VM Network IP pool.
# Pick any VIP that falls within your VIP IP Pool range.
$VipAddress = "192.168.100.75",

[Parameter(Mandatory=$false)]
# The name of the VIP template you created via the VMM Console.
$VipTemplateName = "ILB-VIP-Template",

[Parameter(Mandatory=$false)]
# Arbitrary but good to match the VIP you're using.
$VipName = "scvmm_192_168_100_75_443"

)

Import-Module virtualmachinemanager

$lb = Get-scLoadBalancer | where { $_.Service.Name -like $LBServiceName};
$vipNetwork = get-scvmnetwork -Name $VipNetworkName;

$vipMemberNics = @();
foreach ($vmName in $VipMemberVMNames)
{
$vm = get-scvirtualmachine -Name $vmName;
#    if ($vm.VirtualNetworkAdapters[0].VMNetwork.ID -ne $vipNetwork.ID)
#    {
#        $vm.VirtualNetworkAdapters[0] | set-scvirtualnetworkadapter -VMNetwork $vipNetwork;
#    }

$vipMemberNics += $vm.VirtualNetworkAdapters[0];
}

$existingVip = get-scloadbalancervip -Name $VipName
if ($existingVip -ne $null)
{
#    foreach ($mem in $existingVip.VipMembers)
#    {
#        $mem | remove-scloadbalancervipmember;
#    }

$existingVip | remove-scloadbalancervip;
}

$vipt = get-scloadbalancerviptemplate -Name $VipTemplateName;

$vip = New-SCLoadBalancerVIP -Name $VipName -LoadBalancer $lb
-IPAddress $VipAddress -LoadBalancerVIPTemplate $vipt
-FrontEndVMNetwork $vipNetwork
-BackEndVirtualNetworkAdapters $vipMemberNics;
Write-Output "Created VIP " $vip;

$vip = get-scloadbalancervip -Name $VipName;
Write-Output " VIP created successfully " $vip;