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:
Nasadí se síťový adaptér SDN a nástroj pro vyrovnávání zatížení softwaru SDN.
Požadované virtuální počítače se vytvářejí ve vhodných sítích a identifikují se pro vyrovnávání zatížení.
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).
V konzole VMM vyberteŠablony VIPprostředků infrastruktury>. Klikněte pravým tlačítkem a vyberte Vytvořit šablonu VIP.
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ší.
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ší.
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í.
Pro trvalost a vyrovnávání zatížení použijte výchozí hodnoty. Vyberte Další.
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í.
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.
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;
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro