Citrix ADC

GSLB服务的优先顺序

服务优先级顺序功能使您能够根据负载平衡选择首选项确定服务或服务组的优先顺序。执行以下操作时,可以配置优先级顺序:

  • 将服务绑定到GSLB虚拟服务器。
  • 将服务组绑定到GSLB虚拟服务器。
  • 将服务组成员绑定到GSLB服务组。

目前,您可以使用以下方法配置服务的优先级顺序。但是,这些方法有以下限制: 

  • 配置备份虚拟服务器链:配置行数很多,您必须多次运行显示命令才能知道每个虚拟服务器的所有GSLB服务的状态。

  • 配置首选位置:您必须为所有应用程序终端节点创建位置条目。

服务的优先级顺序功能使用较少的配置命令解决了上述限制,并帮助您完成首选位置配置,而无需使用所有GSLB服务的IP地址的位置表示。

配置GSLB服务的优先级顺序

要配置GSLB服务的优先级顺序,请将订单数量< >参数添加到bind命令中。

注意:

最低订单号的优先级最高。

命令:

绑定GSLB vserver -servicename/servicegroupname  -order

例如,假设一组绑定到GSLB虚拟服务器(gv1)的服务。使用
— 秩序<数字>参数,您可以按如下方式确定服务选择顺序的优先级:

  • 设置1 (s1, s2)绑定到gv1 - order 1 
  • 设置2 (s3, s4)绑定到gv1 - order 2 
  • 设置3 (s5, s6)绑定到gv1 - order 3 

将服务绑定到gv1之后,当gv1收到客户端流量时,服务的选择顺序如下:

  • 虚拟服务器(gv1)选择顺序编号为1的集合1 (s1和s2)中的服务,因为为该集分配了最低的订单号。默认情况下,最低订单号的优先级最高。
  • 如果集合1中的所有服务都已关闭,则gv1选择顺序编号为2的集合2(s3和s4)。
  • 如果集合1和集合2中的所有服务都关闭了,gv1选择顺序号为3的集合3(s5和s6)。

使用cli配置GSLB服务的优先级顺序

要配置GSLB服务的优先级顺序,请在命令提示符下键入以下命令:

  1. 添加GSLB站点。

    添加GSLB站点site1 1.1.1.1

    添加GSLB站点site2 1.1.1.2

  2. 添加GSLB虚拟服务器。

    添加gslb vserver gv1 HTTP

  3. 添加GSLB服务。

    添加GSLB服务gsvc1 1.1.1.3 HTTP 80 -sitename site1

    添加GSLB服务gsvc2 1.1.1.4 HTTP 80 -sitename site2

    添加GSLB服务gsvc3 1.1.1.5 HTTP 80 -sitename site1

    添加GSLB服务gsvc4 1.1.1.6 HTTP 80 -sitename site2

    添加GSLB服务gsvc5 1.1.1.7 HTTP 80 -sitename site1

    添加GSLB服务gsvc6 1.1.1.8 HTTP 80 -sitename site2

  4. 设置订单号并将服务绑定到GSLB虚拟服务器。

    绑定GSLB vserver gv1 gsvc1 -order 1

    绑定GSLB vserver gv1 gsvc2 -order 1

    绑定GSLB vserver gv1 gsvc3 -order 2

    绑定GSLB vserver gv1 gsvc4 -order 2

    绑定GSLB vserver gv1 gsvc5 -order 3

    绑定GSLB vserver gv1 gsvc6 -order 3

使用GUI配置GSLB服务的优先级顺序

必备条件:

  • 您已经创建了GSLB站点。
  • 您已创建GSLB虚拟服务器。
  • 您已经创建了GSLB服务。

要配置GSLB服务的优先级顺序并将其绑定到GSLB虚拟服务器,请执行以下操作:

  1. 导航到流量管理> GSLB >虚拟服务器,然后双击GSLB虚拟服务器。

  2. GSLB虚拟服务器的“GSLB服务和GSLB服务组绑定“部分下,单击”GSLB虚拟服务器到GSLB服务绑定”。

  3. 在“GSLB服务和GSLB服务组绑定“对话框中,单击”添加绑定”。

  4. 在“GSLB服务绑定对话框中,选择一个服务。

  5. 在订单(顺序)字段中键入数字以设置服务的优先级顺序。

    配置优先级顺序并绑定GSLB服务

  6. 单击”绑定”。

  7. 重复步骤 1-6,为不同的服务配置不同的优先级顺序号。

使用lb策略命令配置GSLB服务的优先级顺序

默认情况下,最低订单号的优先级最高。但是,您可以使用新的lb操作和策略命令推迟此默认行为。您可以根据传入的客户端流量或客户端数据配置服务选择顺序。

例如,假设一组绑定到GSLB虚拟服务器(gv1)的服务。使用— 秩序<数字>参数,您已按如下方式配置了服务的优先级顺序:

  • 设置1 (s1, s2)绑定到gv1 -顺序1

  • 设置2 (s3, s4)绑定到gv1 -顺序2

  • 设置3 (s5, s6)绑定到gv1 -顺序3

默认情况下,最低订单号的优先级最高。因此,对于集合1,set2和set3中的服务,默认优先级顺序分别为1,2和3。但是,对于特定的客户端流量,您希望将优先级顺序更改为 3、1 和 2。要实现此目的,您可以添加一个LB策略并将其绑定到gv1。

Lb策略命令由两个元素组成:规则和操作。该规则与操作相关联,如果请求与规则匹配,则执行该操作。

注意:

磅策略命令对于磅和GSLB配置都很常见,适用于Citrix ADC设备处理的请求。

磅操作

**表达式:**

添加lb动作<名称> <类型> <字符串>

**示例:**

add lb action act1 -type SELECTIONORDER -value 3 2 1

参数:

  • 的名字:操作的名称。

  • 类型:操作类型。

  • 字符串:指定操作的值。

磅策略

**表达式:**

添加lb policy

**示例:**

add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1 . add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8

参数:

  • 的名字:策略的名称。

  • 规则:规则由一个或多个表达式组成。该规则与操作相关联,如果请求与规则匹配,则执行该操作。

  • 行动:支持drop, nolbaction和reset。

  • undefaction:当请求与策略不匹配时,Citrix ADC设备将生成未定义的事件(UNDEF事件)。您可以使用设置lb参数-undefAction <动作>命令来设置未定义的操作。您可以将这些操作分配给未定义的事件:drop, nolbaction和复位。

让我们来看一个示例,在该示例中,您可以添加磅操作,磅策略,然后将策略绑定到GSLB虚拟服务器(gv1),如下所示:

add lb action act1 -type SELECTIONORDER -value 3 1

add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1 . add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8

bind gslb vserver gv1 - policyname pol1 -priority 20 - gotoPriorityExpression END -type REQUEST

该规则选择与IP地址8.8.8.8匹配的客户端流量,然后将该流量发送到gv1。Lb操作类型(SELECTIONORDER) 定义了服务选择顺序。将LB策略绑定到gv1后,当gv1收到来自IP地址8.8.8.8的客户端流量时,将按以下顺序选择服务:

  1. 虚拟服务器(gv1)选择集合3 (s5和s6)中的服务,优先级顺序为3。

  2. 如果集合3中的所有服务都已关闭,则gv1选择优先级顺序为2的集合1 (s1和s2)。

  3. 如果集合3和集2中的所有服务都已关闭,则gv1选择顺序为1的集合1 (s1和s2)。

使用cli使用lb策略命令配置GSLB服务的优先级顺序

要使用lb策略命令配置GSLB服务的优先级顺序,请在命令提示符下键入以下命令:

  1. 添加lb操作。

    add lb action act1 -type SELECTIONORDER -value 3 1

  2. 添加lb策略。

    add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1 . add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8

  3. 添加GSLB站点。

    添加GSLB站点site1 1.1.1.1

    添加GSLB站点site2 1.1.1.2

  4. 添加GSLB虚拟服务器。

    添加gslb vserver gv1 HTTP

  5. 将lb策略绑定到GSLB虚拟服务器。

    bind gslb vserver gv1 - policyname pol1 -priority 20 - gotoPriorityExpression END -type REQUEST

  6. 添加GSLB服务。

    添加GSLB服务gsvc1 1.1.1.3 HTTP 80 -sitename site1

    添加GSLB服务gsvc2 1.1.1.4 HTTP 80 -sitename site2

    添加GSLB服务gsvc3 1.1.1.5 HTTP 80 -sitename site1

    添加GSLB服务gsvc4 1.1.1.6 HTTP 80 -sitename site2

    添加GSLB服务gsvc5 1.1.1.7 HTTP 80 -sitename site1

    添加GSLB服务gsvc6 1.1.1.8 HTTP 80 -sitename site2

  7. 设置顺序并将服务绑定到GSLB虚拟服务器。

    绑定GSLB vserver gv1 gsvc1 -order 1

    绑定GSLB vserver gv1 gsvc2 -order 1

    绑定GSLB vserver gv1 gsvc3 -order 2

    绑定GSLB vserver gv1 gsvc4 -order 2

    绑定GSLB vserver gv1 gsvc5 -order 3

    绑定GSLB vserver gv1 gsvc6 -order 3

使用GUI使用lb策略命令配置GSLB服务的优先级顺序

必备条件:

  • 您已经创建了GSLB站点。
  • 您已创建GSLB虚拟服务器。
  • 您已经创建了服务。

步骤1-创建lb操作:

  1. 导航到AppExpert > LB >操作

  2. 磅操作中,单击添加

  3. 在“创建lb操作对话框中,指定以下参数的值:

    • 动作名称: act1
    • 类型:选择顺序
    • :3 1 2

      注意:

      字段中的数字用空格分隔。

    添加lb操作

  4. 单击”创建”。

步骤 2-创建负载平衡策略:

  1. 导航到AppExpert > LB >策略

  2. 磅策略中,单击添加

  3. 在“创建lb策略对话框中,指定以下参数的值:

    • 名称: pol1
    • 行动: act1
    • 未定义结果操作: NOLBACTION
    • 表达式: CLIENT.IP.SRC。EQ (8.8.8.8)

    添加lb策略

  4. 单击”创建”。

步骤3-将lb策略绑定到GSLB虚拟服务器:

  1. 导航到流量管理> gslb >虚拟服务器,然后双击GSLB虚拟服务器。

  2. GSLB虚拟服务器“高级设置”部分下,单击”策略”。

  3. 策略部分中,单击GSLB虚拟服务器lb策略绑定

  4. 在“策略绑定"对话框中,指定以下参数的值:

    • 选择策略:池 1
    • 优先级:10
    • Goto表达式:结束

    绑定lb策略

  5. 单击绑定(绑定)。

步骤4-配置GSLB服务的优先级顺序:

要配置GSLB的优先级顺序,请参阅使用GUI过程配置GSLB服务的优先级顺序。

服务的持久性设置

如果为服务配置了持久性,则默认情况下始终将首选项设置为持久性。

例如,假设配置了持久性且优先级为 1 的服务。如果优先级顺序为0的服务为up,则优先级顺序为1的服务总是被赋予优先级。

但是,您可以使用以下cli命令覆盖此默认行为:

设置gslb param -overridePersistencyforOrder

让我们考虑以下示例:

一组服务按以下优先级顺序绑定到GSLB虚拟服务器(gv1):

  • 设置1 (s1, s2) 绑定gv1 - order 1 

  • 设置2 (s3, s4) 绑定到gv1 - order 2 

在命令提示符下键入以下命令以覆盖持久性:

设置gslb参数-overridePersistencyforOrder YES

如果组1(配置了具有持久性的服务)为,则设置2服务将处理所有请求,直到集合1服务启动。优先级 2 的持久性条目已创建。

假设一段时间后,设置1服务已启动。现在,集合1和集合2服务都已启动以处理请求。在这种情况下,当高阶服务启动时,将做出新的负载平衡决策。持久性条目被新的负载平衡条目覆盖。

优先级切换

使用优先级切换功能,您可以在版本升级期间将优先级较高的服务的所有流量切换到低优先级服务。您可以使用以下命令切换优先级:

  • 设置gslb vserver -toggleorder <升序/降序>

  • 设置GSLB vserver v1 -orderthreshold 80

例如,让我们假设有两个具有以下优先级的服务:

  •  0 服务 1 - 秩序
  • 服务 2 - 顺序 1

默认情况下,服务 1 处理所有流量。如果服务 1 需要升级,则需要将流量重新路由到服务 2。

在命令提示符下,键入以下命令以切换优先级:

设置gslb vserver -toggleorder 下行

默认情况下,0 的优先级更高。但是,切换优先级后,将1视为更高的优先级。如果存在服务的持久性条目,则持久性首选项的行为与服务的持久性设置部分所述相同。