Bagikan melalui


Menyeimbangkan beban lalu lintas jaringan dalam fabric SDN menggunakan VMM

Penting

Versi Virtual Machine Manager (VMM) ini telah mencapai akhir dukungan. Kami menyarankan Anda untuk meningkatkan ke VMM 2022.

Anda dapat menggunakan Software Load Balancer (SLB) untuk mendistribusikan lalu lintas jaringan secara merata di antara beban kerja dalam Software Define Networking (SDN) yang dikelola oleh Penyedia Layanan Cloud (CSP) dan penyewa. Untuk informasi selengkapnya, lihat Load Balancer Perangkat Lunak (SLB).

System Center Virtual Machine Manager (VMM) mendukung dua skenario penyeimbangan beban berikut:

  • Penyeimbangan beban lalu lintas jaringan eksternal: Skenario ini mencakup penyeimbangan beban lalu lintas jaringan yang berasal dari jaringan eksternal. Penyeimbangan beban dilakukan melalui IP Virtual publik (VIP). VM beban kerja dapat dihubungkan ke jaringan VM tanpa isolasi atau ke jaringan VM yang diaktifkan virtualisasi jaringan .

  • Penyeimbangan beban lalu lintas jaringan internal (Penyeimbangan beban internal): Skenario ini mencakup penyeimbangan beban lalu lintas jaringan beban kerja di jaringan VM yang diaktifkan untuk virtualisasi jaringan. Penyeimbangan beban dilakukan melalui VIP.

    Catatan

    VMM 2016 mendukung konfigurasi penyeimbangan beban dengan menggunakan PowerShell. Konfigurasi melalui templat Layanan saat ini tidak didukung.

Artikel ini menyediakan informasi tentang cara mengonfigurasi penyeimbangan beban beban kerja VM dengan menggunakan PowerShell.

Catatan

  • Dari VMM 2019 UR1, Satu jenis jaringan yang terhubung diubah ke Connected Network
  • VMM 2019 UR2 dan yang lebih baru mendukung IPv6.

Sebelum memulai

Pastikan hal-hal berikut:

Membuat templat VIP

Gunakan prosedur berikut untuk mengonfigurasi VIP untuk menyeimbangkan beban kerja VM (DIP).

  1. Di konsol VMM, pilih Templat FABRIC>VIP. Klik kanan dan pilih Buat Templat VIP.

    Cuplikan layar nama templat VIP.

  2. Di halaman Nama , berikan nama dan deskripsi opsional. Tentukan Port IP Virtual yang akan digunakan sebagai port front-end untuk lalu lintas jaringan. Di port Backend, tentukan port tempat beban kerja back-end dihosting. Pilih Selanjutnya.

    Cuplikan layar jenis templat VIP.

  3. Di Tentukan Jenis templat, pilih Spesifik. Di Produsen, pilih Microsoft. Di Model, pilih Microsoft Network Controller. Pilih Selanjutnya.

    Cuplikan layar opsi protokol VIP.

  4. Di opsi Tentukan Protokol, pilih opsi Kustom dan ketik TCP/UDP di Nama protokol. Pilih Selanjutnya.

    Catatan

    SLB hanya mendukung penyeimbangan beban lapisan 4 lalu lintas TCP/UDP. Protokol HTTP/HTTPS tidak didukung.

  5. Untuk Persistensi dan Load Balancing, gunakan default. Pilih Selanjutnya.

    Cuplikan layar Monitor Kesehatan.

    Catatan

    SLB tidak mendukung persistensi dan metode penyeimbangan beban yang berbeda. Secara default, SLB menggunakan algoritma Round Robin untuk penyeimbangan beban.

  6. Di Monitor Kesehatan, secara opsional, sisipkan nilai yang sesuai. Pilih Selanjutnya.

    Opsi: TCP dan HTTP didukung sebagai protokol pemantauan kesehatan jika SLB digunakan.

  7. Verifikasi pengaturan, dan pilih Selesai.

Setelah templat dibuat, Anda dapat menemukan ini di bawah Templat FABRIC>VIP.

Membuat VIP menggunakan PowerShell

Buat VIP dengan menggunakan contoh skrip berikut. Pilih skrip berdasarkan jenis lalu lintas jaringan yang ingin Anda muat keseimbangannya:

Skrip untuk membuat VIP untuk memuat keseimbangan lalu lintas jaringan eksternal

Skrip untuk membuat VIP untuk menyeimbangkan beban lalu lintas jaringan internal

Skrip untuk membuat VIP untuk menyeimbangkan beban lalu lintas jaringan eksternal

Contoh skrip berikut membuat VIP dari jaringan IP publik untuk menyeimbangkan beban kerja VM WGB-001 & WGB-002 pada port 80.

Skrip ini dapat digunakan untuk membuat VIP penyeimbangan beban dengan meneruskan alamat VIP IPv6 juga.

VM beban kerja dapat dihubungkan ke jaringan tanpa isolasi atau jaringan VM yang diaktifkan virtualisasi jaringan .

Catatan

  • Di bagian parameter skrip, ganti nilai aktual yang cocok dengan lingkungan pengujian Anda untuk sampel yang digunakan dalam skrip ini.
  • Pastikan Anda menjalankan skrip di server VMM atau di komputer yang menjalankan konsol 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;

Skrip untuk membuat VIP untuk memuat keseimbangan lalu lintas jaringan internal

Untuk contoh skrip berikut, kami membuat templat VIP baru dengan nama ILB-VIP-Template untuk menyeimbangkan beban port 443 menggunakan prosedur yang dirinci di bagian sebelumnya. Skrip membuat VIP dari jaringan VM penyewa untuk menyeimbangkan beban VM ILB-001 & ILB-002, yang merupakan bagian dari jaringan VM penyewa yang sama.

Skrip ini dapat digunakan untuk membuat VIP penyeimbangan beban dengan meneruskan alamat VIP IPv6 juga.

Catatan

  • Dalam skenario penyeimbangan beban internal, VIP berasal dari jaringan VM penyewa. Jadi, $VipNetworkName adalah nama jaringan VM penyewa yang sama tempat VM tersambung. Pastikan bahwa kumpulan IP jaringan VM penyewa memiliki IP yang dicadangkan untuk VIP. $VipAddress adalah salah satu alamat IP dari VIP yang dipesan.
  • Di bagian parameter skrip, ganti nilai aktual yang cocok dengan lingkungan pengujian Anda untuk sampel yang digunakan dalam skrip ini.
  • Pastikan Anda menjalankan skrip di server VMM atau di komputer yang menjalankan konsol 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;