ADC

在 NetScaler VPX 实例上配置 GSLB

针对全局服务器负载平衡 (GSLB) 配置的 NetScaler 设备通过保护 WAN 中的故障点,提供应用程序的灾难恢复和持续可用性。GSLB 可以通过将客户端请求导向到最近或性能最佳的数据中心,或者在出现中断时导向到无故障的数据中心,在数据中心之间平衡负载。

本节介绍如何使用 Windows PowerShell 命令在 Microsoft Azure 环境中两个站点上的 VPX 实例上启用 GSLB。

注意

有关 GSLB 的更多信息,请参阅 全局服务器负载平衡

您可以执行两个步骤在 Azure 上的 NetScaler VPX 实例上配置 GSLB:

  1. 在每个站点上创建一个包含多个 NIC 和多个 IP 地址的 VPX 实例
  2. VPX 实例上启用 GSLB

注意

有关配置多个 NIC 和 IP 地址的更多信息,请参阅:使用 PowerShell 命令 在独立模式下为 NetScaler VPX 实例配置多个 IP 地址

场景

此场景包括两个站点 - 站点 1 和站点 2。每个站点都有一个配置了多个 NIC、多个 IP 地址和 GSLB 的 VM(VM1 和 VM2)。

图. 两个站点(站点 1 和站点 2)之间实现了 GSLB 设置。

VPX Azure GSLB 拓扑

在此场景中,每个 VM 都有三个 NIC - NIC 0/1、1/1 和 1/2。每个 NIC 都可以有多个专用 IP 地址和公用 IP 地址。这些 NIC 配置为用于以下用途。

  • NIC 0/1:服务管理流量
  • NIC 1/1:服务客户端流量
  • NIC 1/2:与后端服务器通信

有关在此场景中每个网卡上配置的 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 RAM。

$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-->

创建 VM

按照步骤 1-10 使用 PowerShell 命令创建具有多个 NIC 和多个 IP 地址的 VM1:

  1. 创建资源组

  2. 创建存储帐户

  3. 创建可用性集

  4. 创建虚拟网络

  5. 创建公用 IP 地址

  6. 创建 NIC

  7. 创建 VM 配置对象

  8. 获取凭据并为 VM 设置操作系统属性

  9. 添加 NIC

  10. 指定操作系统磁盘并创建 VM

完成创建 VM1 的所有步骤和命令后,重复执行这些步骤来创建 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-->

创建虚拟网络

  1. 添加子网。

    $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-->
    
  2. 添加虚拟网络对象。

    $vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $RGName -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet1, $subnet2, $subnet3
    <!--NeedCopy-->
    
  3. 检索子网。

    $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 并为其设置特定参数。

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 站点和其他必要设置:

全局服务器负载平衡

有关详细信息,请参阅此支持文章:https://support.citrix.com/article/CTX110348

下面是 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 为客户节省了宝贵的时间和金钱。

用于灾难恢复的多 NIC 多 IP(三 NIC)部署

如果客户要部署到安全性、冗余、可用性、容量和可扩展性至关重要的生产环境中,他们可能会使用三个 NIC 部署进行部署。使用这种部署方法,复杂性和易管理性并不是用户最关心的问题。

用于灾难恢复的单网卡多 IP(一个 NIC)部署

如果客户出于以下原因部署到非生产环境中,他们可能会使用单网卡部署进行部署:

  • 设置环境进行测试,或者他们在生产部署之前暂存新环境。

  • 快速高效地直接部署到云端。

  • 在寻求单一子网配置的简单性的同时。

在 NetScaler VPX 实例上配置 GSLB