Aracılığıyla paylaş


VMM kullanarak SDN dokusunda ağ trafiğinin yükünü dengeleme

Ağ trafiğini Bulut Hizmeti Sağlayıcıları (CSP' ler) ve kiracılar tarafından yönetilen Yazılım Tanımlama Ağı (SDN) iş yükleri arasında eşit olarak dağıtmak için Yazılım Yük Dengeleyicisi'ni (SLB) kullanabilirsiniz. Daha fazla bilgi için bkz . Yazılım Yük Dengeleyici (SLB).

System Center Virtual Machine Manager (VMM), aşağıdaki iki yük dengeleme senaryolarını destekler:

  • Dış ağ trafiğinin yük dengelemesi: Bu senaryo, dış ağdan gelen ağ trafiğinin yük dengelemesini içerir. Yük dengeleme bir genel Sanal IP (VIP) üzerinden yapılır. İş yükü VM'leri yalıtımsız bir VM ağına veya ağ sanallaştırma özellikli bir VM ağına bağlanabilir.

  • İç ağ trafiğinin yük dengelemesi (İç yük dengeleme): Bu senaryo, ağ sanallaştırma için etkinleştirilen VM ağındaki iş yüklerinin ağ trafiğinin yük dengelemesini içerir. Yük dengeleme bir VIP aracılığıyla yapılır.

    Not

    VMM 2016, PowerShell kullanarak yük dengeleme yapılandırmasını destekler. Hizmet şablonları aracılığıyla yapılandırma şu anda desteklenmiyor.

Bu makalede, PowerShell kullanarak iş yükü VM'lerinin yük dengelemesini yapılandırma hakkında bilgi sağlanır.

Not

  • VMM 2019 UR1'den Tek Bağlı ağ türü Bağlı Ağ olarak değiştirildi
  • VMM 2019 UR2 ve üzeri IPv6'ya destek verir.

Başlamadan önce

Aşağıdakilerden emin olun:

VIP şablonu oluşturma

İŞ yükü VM'lerini (DIP) yük dengelemek üzere VIP'leri yapılandırmak için aşağıdaki yordamları kullanın.

  1. VMM konsolunda Doku>VIP Şablonları'nı seçin. Sağ tıklayın ve VIP Şablonu Oluştur'u seçin.

    VIP şablonu adının ekran görüntüsü.

  2. Ad sayfasında, adı ve isteğe bağlı açıklamayı belirtin. Ağ trafiği için ön uç bağlantı noktası olarak kullanılacak Sanal IP Bağlantı Noktasını belirtin. Arka uç bağlantı noktasında, arka uç iş yüklerinin barındırıldığı bağlantı noktasını belirtin. İleri'yi seçin.

    VIP şablon türünün ekran görüntüsü.

  3. Tür'de, Şablon türü belirtin'in altında Belirli'yi seçin. Üretici açılan listesinden Microsoft'u ve Model açılan listesinden Microsoft Ağ Denetleyicisi'ni seçin.

  4. İleri'yi seçin.

    VIP protokolü seçeneklerinin ekran görüntüsü.

  5. Protokol seçeneklerini belirtin bölümünde Özel seçeneğini ve Protokol adında TCP/UDP'yi seçin. İleri'yi seçin.

    Not

    SLB, TCP/UDP trafiğinin yalnızca katman 4 yük dengelemesini destekler. HTTP/HTTPS protokolleri desteklenmez.

  6. Kalıcılık ve Yük Dengeleme için varsayılan değerleri kullanın. İleri'yi seçin.

    Sistem Durumu İzleyicisi ekran görüntüsü.

    Not

    SLB kalıcılığı ve farklı yük dengeleme yöntemlerini desteklemez. Varsayılan olarak, SLB yük dengeleme için Hepsini Bir Kez Deneme algoritmasını kullanır.

  7. Sistem Durumu İzleyicisi'lerde, isteğe bağlı olarak uygun değerleri ekleyin. İleri'yi seçin.

    Seçenekler: SLB kullanılıyorsa TCP ve HTTP, sistem durumu izleme protokolleri olarak desteklenir.

  8. Ayarları doğrulayın ve Son'u seçin.

Şablon oluşturulduktan sonra bunu Doku>VIP Şablonları altında bulabilirsiniz.

PowerShell kullanarak VIP oluşturma

Aşağıdaki örnek betikleri kullanarak bir VIP oluşturun. Yük dengelemek istediğiniz ağ trafiğinin türüne göre betiği seçin:

Dış ağ trafiğini yük dengelemek için VIP oluşturmaya yönelik betik

İç ağ trafiğini yük dengelemek için VIP oluşturmaya yönelik betik

Dış ağ trafiğinin yükünü dengelemek için VIP oluşturmaya yönelik betik

Aşağıdaki örnek betik, 80 numaralı bağlantı noktasındaki WGB-001 ve WGB-002 iş yükü VM'lerinin yükünü dengelemek için bir genel IP ağından VIP oluşturur.

Bu betik, IPv6 VIP adresini geçirerek yük dengeleme VIP'sini oluşturmak için de kullanılabilir.

İş yükü VM'leri yalıtımsız bir ağa veya ağ sanallaştırma özellikli VM ağlarına bağlanabilir.

Not

  • Betik parametreleri bölümünde, test ortamınızla eşleşen gerçek değerleri bu betikte kullanılan örneklerle değiştirin.
  • Betiği bir VMM sunucusunda veya VMM konsolunu çalıştıran bir bilgisayarda çalıştırdığınızdan emin olun.
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;

İç ağ trafiğini yük dengelemek için VIP oluşturmaya yönelik betik

Aşağıdaki örnek betik için, önceki bölümde ayrıntılarıyla belirtilen yordamı kullanarak 443 numaralı bağlantı noktasının yük dengelemesi için ILB-VIP-Template adına göre yeni bir VIP şablonu oluşturduk. Betik, aynı kiracı VM ağının parçası olan ILB-001 ve ILB-002 VM'lerinin yükünü dengelemek için kiracı VM ağından bir VIP oluşturur.

Bu betik, IPv6 VIP adresini geçirerek yük dengeleme VIP'sini oluşturmak için de kullanılabilir.

Not

  • İç yük dengeleme senaryosunda VIP, kiracı VM ağından gelir. Bu nedenle $VipNetworkName, VM'lerin bağlı olduğu kiracı VM ağ adıyla aynıdır. Kiracı VM ağ IP havuzunda IP'lerin VIP'ler için ayrıldığından emin olun. $VipAddress, ayrılmış VIP'lerin IP adreslerinden biridir.
  • Betik parametreleri bölümünde, test ortamınızla eşleşen gerçek değerleri bu betikte kullanılan örneklerle değiştirin.
  • Betiği bir VMM sunucusunda veya VMM konsolunu çalıştıran bir bilgisayarda çalıştırdığınızdan emin olun.
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;