Sdílet prostřednictvím


Vyrovnávání zatížení síťového provozu v prostředcích infrastruktury SDN pomocí nástroje 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 žádné izolované síti virtuálních počítačů nebo k síti virtuálních počítačů s povolenou virtualizací sítě.

  • 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í se provádí prostřednictvím virtuální IP adresy.

    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

Pomocí následujících postupů nakonfigurujte virtuální IP adresy pro vyrovnávání zatížení virtuálních počítačů úloh (DIP).

  1. V konzole VMM vyberte Šablony VIP prostředků infrastruktury>. 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 Síťový adaptér Microsoft z rozevíracího seznamu Model.

  4. Vyberte Další.

    Snímek obrazovky s možnostmi protokolu VIP

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

    Poznámka:

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

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

    Snímek obrazovky Monitorování stavu

    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 Kruhové dotazování.

  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 Šablony VIP prostředků infrastruktury>.

Vytvoření virtuální IP adresy pomocí PowerShellu

Vytvořte virtuální IP adresu pomocí následujících ukázkových skriptů. Vyberte skript na základě typu síťového provozu, který chcete vyrovnávat zatížení:

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

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

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

Následující ukázkový skript vytvoří virtuální IP adresu z veřejné SÍTĚ IP pro vyrovnávání zatížení virtuálních počítačů úloh WGB-001 &WGB-002 na portu 80.

Tento skript lze použít k vytvoření virtuální IP adresy vyrovnávání zatížení předáním IPv6 VIP adresy.

Virtuální počítače úloh je možné připojit k žádné izolované síti nebo 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 pro 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ří virtuální IP adresu ze sítě virtuálních počítačů tenanta pro vyrovnávání zatížení interního nástroje pro vyrovnávání zatížení virtuálních počítačů s interním nástrojem pro vyrovnávání zatížení 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í virtuální IP adresy vyrovnávání zatížení předáním IPv6 VIP adresy.

Poznámka:

  • Ve scénáři interního vyrovnávání zatížení virtuální IP adresa pochází ze sítě virtuálních počítačů tenanta. Proto je $VipNetworkName stejný název sítě virtuálních počítačů tenanta, ve kterém jsou virtuální počítače připojené. Ujistěte se, že fond IP adres sítě virtuálního počítače tenanta má ip adresy rezervované pro virtuální IP adresy. $VipAddress je jednou z IP adres z rezervovaných virtuálních IP 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;