Sdílet prostřednictvím


Vyrovnávání zatížení síťového provozu v prostředcích infrastruktury SDN pomocí nástroje VMM

Důležité

Tato verze nástroje Virtual Machine Manager (VMM) dosáhla konce podpory. Doporučujeme upgradovat na VMM 2022.

Pomocí softwarového Load Balancer (SLB) můžete rovnoměrně distribuovat síťový provoz mezi úlohy v softwarově definovaných sítích (SDN) spravovaných poskytovateli cloudových služeb (CSP) a tenanty. Další informace najdete 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 pochá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 je možné 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ých přenosů úloh v síti virtuálních počítačů s povolenou virtualizací sítě. Vyrovnávání zatížení se provádí prostřednictvím virtuální IP adresy.

    Poznámka

    VMM 2016 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 konfiguraci vyrovnávání zatížení virtuálních počítačů úloh pomocí PowerShellu.

Poznámka

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

Než začnete

Zajistěte, aby:

Vytvoření šablony virtuální IP adresy

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

  1. V konzole VMM vyberteŠablony VIPprostředků infrastruktury>. Klikněte pravým tlačítkem 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. V back-endovém portu zadejte port, na kterém jsou hostovány back-endové úlohy. Vyberte Další.

    Snímek obrazovky s typem šablony VIP

  3. V části Zadat typ šablony vyberte Konkrétní. V části Výrobce vyberte Microsoft. V části Model vyberte Síťový adaptér Microsoft. Vyberte Další.

    Snímek obrazovky s možnostmi protokolu VIP

  4. V části Zadat možnosti protokolu vyberte možnost Vlastní a do pole Název protokolu zadejte TCP/UDP. Vyberte Další.

    Poznámka

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

  5. 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í. Ve výchozím nastavení používá nástroj SLB pro vyrovnávání zatížení algoritmus kruhového dotazování.

  6. V monitorování stavu volitelně vložte příslušné hodnoty. Vyberte Další.

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

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

Po vytvoření šablony ji najdete v částiŠablony VIPprostř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 podle typu síťového provozu, u kterého 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é IP sítě za účelem vyrovnávání zatížení virtuálních počítačů WGB-001 & WGB-002 na portu 80.

Tento skript se dá použít k vytvoření virtuální ip adresy pro 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 virtuálních počítačů s povolenou virtualizací sítě .

Poznámka

  • Do části parametrů skriptu dosaďte skutečné hodnoty, které odpovídají vašemu testovacímu prostředí pro ukázky použité v tomto skriptu.
  • Ujistěte se, že skript spouštíte na serveru VMM nebo v počítači s konzolou 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 pomocí postupu popsaného v předchozí části vytvořili novou šablonu VIP s názvem ILB-VIP-Template pro vyrovnávání zatížení portu 443. Skript vytvoří virtuální IP adresu ze sítě virtuálních počítačů tenanta za účelem vyrovnávání zatížení virtuálních počítačů SLB-001 & ILB-002, které jsou součástí stejné sítě virtuálních počítačů tenanta.

Tento skript se dá použít k vytvoření virtuální ip adresy pro 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í pochází virtuální IP adresa ze sítě virtuálních počítačů tenanta. $VipNetworkName je tedy stejný název sítě virtuálních počítačů tenanta, kde jsou virtuální počítače připojené. Ujistěte se, že fond IP adres sítě virtuálních počítačů tenanta má ip adresy vyhrazené pro virtuální IP adresy. $VipAddress je jedna z IP adres rezervovaných virtuálních ip adres.
  • Do části parametrů skriptu dosaďte skutečné hodnoty, které odpovídají vašemu testovacímu prostředí pro ukázky použité v tomto skriptu.
  • Ujistěte se, že skript spouštíte na serveru VMM nebo v počítači s konzolou 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;