在 NetScaler VPX 实例上配置全局服务器负载均衡
配置了全局服务器负载平衡 (GSLB) 的 NetScaler 设备通过防止 WAN 中的故障点来提供灾难恢复和应用程序的持续可用性。GSLB 可以通过将客户端请求定向到最近或性能最佳的数据中心,或者在发生中断时定向到幸存的数据中心来平衡数据中心之间的负载。
本节介绍如何通过使用 Windows PowerShell 命令,在 Microsoft Azure 环境中两个站点的 VPX 实例上启用 GSLB。
注意:
有关 GSLB 的更多信息,请参阅 全局服务器负载平衡。
您可以通过两个步骤在 Azure 上的 NetScaler VPX 实例上配置 GSLB:
注意:
有关配置多个 NIC 和 IP 地址的更多信息,请参阅:使用 PowerShell 命令在独立模式下为 NetScaler VPX 实例配置多个 IP 地址
场景
此场景包括两个站点 - 站点 1 和站点 2。每个站点都有一台配置了多个 NIC、多个 IP 地址和 GSLB 的虚拟机(VM1 和 VM2)。
图。 跨两个站点(站点 1 和站点 2)实现的 GSLB 设置。

在此场景中,每个虚拟机有三个 NIC - NIC 0/1、1/1 和 1/2。每个 NIC 可以有多个私有和公共 IP 地址。这些 NIC 配置用于以下目的。
- NIC 0/1:用于管理流量
- NIC 1/1:用于客户端流量
- NIC 1/2:用于与后端服务器通信
有关此场景中每个 NIC 上配置的 IP 地址的信息,请参阅IP 配置详细信息部分。
参数设置
本文档中,针对此场景的示例参数设置如下所示。
$location="West Central US"
$vnetName="NSVPX-vnet"
$RGName="multiIP-RG"
$prmStorageAccountName="multiipstorageaccnt"
$avSetName="MultiIP-avset"
$vmSize="Standard\_DS3\_V2"
<!--NeedCopy-->
注意:
VPX 实例的最低要求是 2 个 vCPU 和 2 GB 内存。
$publisher="citrix"
$offer="netscalervpx111"
$sku="netscalerbyol"
$version="latest"
$vmNamePrefix="MultiIPVPX"
$nicNamePrefix="MultiipVPX"
$osDiskSuffix="osdiskdb"
$numberOfVMs=1
$ipAddressPrefix="10.0.0."
$ipAddressPrefix1="10.0.1."
$ipAddressPrefix2="10.0.2."
$pubIPName1="MultiIP-pip1"
$pubIPName2="MultiIP-pip2"
$IpConfigName1="IPConfig1"
$IPConfigName2="IPConfig-2"
$IPConfigName3="IPConfig-3"
$IPConfigName4="IPConfig-4"
$frontendSubnetName="default"
$backendSubnetName1="subnet\_1"
$backendSubnetName2="subnet\_2"
$suffixNumber=10
<!--NeedCopy-->
创建虚拟机
按照步骤 1-10,使用 PowerShell 命令创建具有多个网卡和多个 IP 地址的 VM1:
-
创建网卡(/zh-cn/vpx/13-1/deploy-vpx-on-azure/configuring-gslb-on-citrix-adc-vpx-appliance.html#create-nics)
-
添加网卡(/zh-cn/vpx/13-1/deploy-vpx-on-azure/configuring-gslb-on-citrix-adc-vpx-appliance.html#add-nics)
完成创建 VM1 的所有步骤和命令后,重复这些步骤以使用特定于 VM2 的参数创建 VM2。
创建一个资源组
New-AzureRMResourceGroup -Name $RGName -Location $location
<!--NeedCopy-->
创建存储帐户
$prmStorageAccount=New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $RGName -Type Standard_LRS -Location $location
<!--NeedCopy-->
创建可用性集
$avSet=New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $RGName -Location $location
<!--NeedCopy-->
创建虚拟网络
-
添加子网。
$subnet1=New-AzureRmVirtualNetworkSubnetConfig -Name $frontendSubnetName -AddressPrefix "10.0.0.0/24" $subnet2=New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName1 -AddressPrefix "10.0.1.0/24" $subnet3=New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName2 -AddressPrefix "10.0.2.0/24" <!--NeedCopy--> -
添加虚拟网络对象。
$vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $RGName -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet1, $subnet2, $subnet3 <!--NeedCopy--> -
检索子网。
$frontendSubnet=$vnet.Subnets|?{$_.Name -eq $frontendSubnetName} $backendSubnet1=$vnet.Subnets|?{$_.Name -eq $backendSubnetName1} $backendSubnet2=$vnet.Subnets|?{$_.Name -eq $backendSubnetName2} <!--NeedCopy-->
创建公共 IP 地址
$pip1=New-AzureRmPublicIpAddress -Name $pubIPName1 -ResourceGroupName $RGName -Location $location -AllocationMethod Dynamic
$pip2=New-AzureRmPublicIpAddress -Name $pubIPName2 -ResourceGroupName $RGName -Location $location -AllocationMethod Dynamic
<!--NeedCopy-->
创建 NIC
创建 NIC 0/1
$nic1Name=$nicNamePrefix + $suffixNumber + "-Mgmnt"
$ipAddress1=$ipAddressPrefix + $suffixNumber
$IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName1 -SubnetId $frontendSubnet.Id -PublicIpAddress $pip1 -PrivateIpAddress $ipAddress1 -Primary
$nic1=New-AzureRMNetworkInterface -Name $nic1Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig1
<!--NeedCopy-->
创建 NIC 1/1
$nic2Name $nicNamePrefix + $suffixNumber + "-frontend"
$ipAddress2=$ipAddressPrefix1 + ($suffixNumber)
$ipAddress3=$ipAddressPrefix1 + ($suffixNumber + 1)
$IPConfig2=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName2 -PublicIpAddress $pip2 -SubnetId $backendSubnet1.Id -PrivateIpAddress $ipAddress2 -Primary
$IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -SubnetId $backendSubnet1.Id -PrivateIpAddress $ipAddress3
nic2=New-AzureRMNetworkInterface -Name $nic2Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig2, $IpConfig3
<!--NeedCopy-->
创建 NIC 1/2
$nic3Name=$nicNamePrefix + $suffixNumber + "-backend"
$ipAddress4=$ipAddressPrefix2 + ($suffixNumber)
$IPConfig4=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 -SubnetId $backendSubnet2.Id -PrivateIpAddress $ipAddress4 -Primary
$nic3=New-AzureRMNetworkInterface -Name $nic3Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig4
<!--NeedCopy-->
创建 VM 配置对象
$vmName=$vmNamePrefix
$vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id
<!--NeedCopy-->
获取凭据并设置操作系统属性
$cred=Get-Credential -Message "Type the name and password for VPX login."
$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred
$vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version
<!--NeedCopy-->
添加 NIC
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic1.Id -Primary
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic2.Id
$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic3.Id
<!--NeedCopy-->
指定操作系统磁盘并创建 VM
$osDiskName=$vmName + "-" + $osDiskSuffix
$osVhdUri=$prmStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" +$osDiskName + ".vhd"
$vmConfig=Set-AzureRMVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImage
Set-AzureRmVMPlan -VM $vmConfig -Publisher $publisher -Product $offer -Name $sku
New-AzureRMVM -VM $vmConfig -ResourceGroupName $RGName -Location $location
<!--NeedCopy-->
注意:
重复“使用 PowerShell 命令创建多 NIC VM”中列出的步骤 1-10,以使用 VM2 特定的参数创建 VM2。
IP 配置详细信息
使用以下 IP 地址。
表 1。VM1 中使用的 IP 地址
| NIC | 私有 IP | 公共 IP (PIP) | 描述 |
|---|---|---|---|
| 0/1 | 10.0.0.10 | PIP1 | 配置为 NSIP(管理 IP) |
| 1/1 | 10.0.1.10 | PIP2 | 配置为 SNIP/GSLB 站点 IP |
| - | 10.0.1.11 | - | 配置为 LB 服务器 IP。公共 IP 不是强制性的 |
| 1/2 | 10.0.2.10 | - | 配置为 SNIP,用于向服务发送监视探测;公共 IP 不是强制性的 |
表 2。VM2 中使用的 IP 地址
| NIC | 内部 IP | 公共 IP (PIP) | 描述 |
|---|---|---|---|
| 0/1 | 20.0.0.10 | PIP4 | 配置为 NSIP(管理 IP) |
| 1/1 | 20.0.1.10 | PIP5 | 配置为 SNIP/GSLB 站点 IP |
| - | 20.0.1.11 | - | 配置为 LB 服务器 IP。公共 IP 不是强制性的 |
| 1/2 | 20.0.2.10 | - | 配置为 SNIP,用于向服务发送监视探测;公共 IP 不是强制性的 |
以下是此场景的示例配置,显示了通过 NetScaler VPX CLI 为 VM1 和 VM2 创建的 IP 地址和初始 LB 配置。
以下是 VM1 上的示例配置。
add ns ip 10.0.1.10 255.255.255.0 -mgmtAccess ENABLED
Add nsip 10.0.2.10 255.255.255.0
add service svc1 10.0.1.10 ADNS 53
add lb vserver v1 HTTP 10.0.1.11 80
add service s1 10.0.2.120 http 80
Add service s2 10.0.2.121 http 80
Bind lb vs v1 s[1-2]
<!--NeedCopy-->
以下是 VM2 上的示例配置。
add ns ip 20.0.1.10 255.255.255.0 -mgmtAccess ENABLED
Add nsip 20.0.2.10 255.255.255.0
add service svc1 20.0.1.10 ADNS 53
add lb vserver v1 HTTP 20.0.1.11 80
Add service s1 20.0.2.90 http 80
Add service s2 20.0.2.91 http 80
Bind lb vs v1 s[1-2]
<!--NeedCopy-->
配置 GSLB 站点及其他设置
执行以下主题中描述的任务,以配置两个 GSLB 站点和其他必要设置:
以下是 VM1 和 VM2 上的 GSLB 示例配置。
enable ns feature LB GSLB
add gslb site site1 10.0.1.10 -publicIP PIP2
add gslb site site2 20.0.1.10 -publicIP PIP5
add gslb service site1_gslb_http_svc1 10.0.1.11 HTTP 80 -publicIP PIP3 -publicPort 80 -siteName site1
add gslb service site2_gslb_http_svc1 20.0.1.11 HTTP 80 -publicIP PIP6 -publicPort 80 -siteName site2
add gslb vserver gslb_http_vip1 HTTP
bind gslb vserver gslb_http_vip1 -serviceName site2_gslb_http_svc1
bind gslb vserver gslb_http_vip1 -serviceName site1_gslb_http_svc1
bind gslb vserver gslb_http_vip1 -domainName www.gslbindia.com -TTL 5
<!--NeedCopy-->
您已在 Azure 上运行的 NetScaler VPX 实例上完成了全局服务器负载平衡 (GSLB) 的配置。
灾难恢复配置
灾难是由自然灾害或人为事件引起的业务功能突然中断。灾难会影响数据中心运营,之后必须完全重建和恢复灾难现场丢失的资源和数据。数据丢失或数据中心停机至关重要,会破坏业务连续性。
当今客户面临的挑战之一是决定将其灾难恢复站点设置在哪里。无论底层基础设施或网络是否存在故障,企业都在寻求一致性和性能。
许多组织决定将其业务和数据迁移到云端,其原因可能包括以下几点:
-
拥有本地数据中心非常昂贵。通过使用云,企业可以腾出时间和资源来扩展自己的系统。
-
许多自动化编排能够实现更快的恢复
-
通过提供持续数据保护或持续快照来复制数据,以防范任何中断或攻击。
-
支持客户需要多种不同类型的合规性和安全控制的用例,这些控制在公共云上已经存在。这使得他们更容易实现所需的合规性,而不是自行构建。
配置了 GSLB 的 NetScaler 会将流量转发到负载最低或性能最佳的数据中心。这种配置被称为主动-主动设置,它不仅可以提高性能,而且在设置中的某个数据中心发生故障时,通过将流量路由到其他数据中心来提供即时灾难恢复。NetScaler 因此为客户节省了宝贵的时间和金钱。
用于灾难恢复的多网卡多 IP(三网卡)部署
如果客户部署到生产环境,并且安全性、冗余、可用性、容量和可伸缩性至关重要,他们可能会使用三网卡部署。在这种部署方法下,复杂性和管理便捷性对用户来说不是关键问题。
用于灾难恢复的单网卡多 IP(一网卡)部署
如果客户正在将系统部署到非生产环境中,他们可能会出于以下原因考虑采用单网卡部署方式:
-
为了进行测试而设置环境,或者在生产部署之前搭建一个新的环境。
-
实现快速高效地直接部署到云端。
-
同时追求单个子网配置所带来的简洁性。