将 Oracle® Solaris 11.2 系统配置为路由器或负载平衡器

退出打印视图

更新时间: 2014 年 9 月
 
 

配置 ILB 规则

本节介绍如何使用 ilbadm 命令创建、删除和列出负载平衡规则。

ILB 算法

ILB 算法用于控制通信流量分布,并为负载分布和服务器选择提供各种特征。

    ILB 为两种操作模式提供了以下算法:

  • 循环-在循环算法中,负载平衡器将请求轮流指定给服务器组。在为某服务器指定请求后,该服务器将会移至列表末尾。

  • src-IP 散列-在源 IP 散列方法中,负载平衡器根据传入请求的源 IP 地址的散列值选择服务器。

  • src-IP, port 散列-在源 IP、端口散列方法中,负载平衡器根据传入请求的源 IP 地址和源端口的散列值选择服务器。

  • src-IP, VIP 散列-在源 IP、VIP 散列方法中,负载平衡器根据传入请求的源 IP 地址和目标 IP 地址的散列值选择服务器。

创建 ILB 规则

    在 ILB 中,虚拟服务通过负载平衡规则表示,并通过以下参数进行定义:

  • 虚拟 IP 地址

  • 传输协议:TCP 或 UDP

  • 端口号(或端口范围)

  • 负载平衡算法

  • 负载平衡模式(DSR、全 NAT 或半 NAT)

  • 包含一组后端服务器的服务器组

  • 可对服务器组中的每个服务器执行的可选服务器运行状况检查

  • 用于运行状况检查的可选端口


    注 -  您可以对特定端口指定运行状况检查,也可以对 ilbd 守护进程从服务器端口范围中随机选择的任意端口指定运行状况检查。
  • 用于表示虚拟服务的规则名称

必须先执行以下操作,然后才能创建规则:

  • 创建一个包含相应的后端服务器的服务器组。有关信息,请参见定义 ILB 中的服务器组和后端服务器

  • 创建运行状况检查以将服务器运行状况检查与规则关联。有关信息,请参见创建运行状况检查

  • 确定要与规则关联的 VIP、端口和可选协议。

  • 确定要使用的操作(DSR、半 NAT 或全 NAT)。

  • 确定要使用的负载平衡算法。有关更多信息,请参见ILB 算法

您可以使用 ilbadm create-rule 命令创建 ILB 规则。有关使用 ilbadm create-rule 命令的更多信息,请参见 ilbadm(1M) 手册页。

其语法如下所示:

# ilbadm create-rule -e -i vip=IPaddr,port=port,protocol=protocol \
-m lbalg=lb-algorithm,type=topology-type,proxy-src=IPaddr1-IPaddr2,\
pmask=value -h hc-name=hc1-o servergroup=sg rule1

注 -  -e 选项可启用正在创建的规则,该规则在缺省情况下处于禁用状态。
示例 6-4  创建具有运行状况检查会话持久性的全 NAT 规则

此示例创建一个名为 hc1 的运行状况检查,以及一个名为 sg1 的服务器组。该服务器组包含两个服务器,每个服务器具有一系列端口。最后一个命令创建并启用一个名为 rule1 的规则,并将该规则与服务器组和运行状况检查进行关联。此规则实施全 NAT 操作模式。请注意,创建该规则之前,必须先创建服务器组和运行状况检查。

# ilbadm create-healthcheck -h hc-test=tcp,hc-timeout=2,\
hc-count=3,hc-interval=10 hc1
# ilbadm create-servergroup -s server=192.168.0.10:6000-6009,192.168.0.11:7000-7009 sg1
# ilbadm create-rule -e -p -i vip=10.0.0.10,port=5000-5009,\
protocol=tcp -m lbalg=rr,type=NAT,proxy-src=192.168.0.101-192.168.0.104,pmask=24 \
-h hc-name=hc1 -o servergroup=sg1 rule1

创建持久性映射时,对具有匹配的客户机源 IP 地址的虚拟服务的连接、包或这两者的后续请求将转发到同一后端服务器。对于 IPv4,无类域间路由 (Classless Inter-Domain Routing, CIDR) 表示法中的前缀长度是一个介于 0-32 之间的值;对于 IPv6,该前缀长度是一个介于 0-128 之间的值。

创建半 NAT 或全 NAT 规则时,请指定 connection-drain 超时的值。conn-drain 超时的缺省值为 0,这意味着连接排空将持续等待,直到连接正常关闭为止。

列出 ILB 规则

要列出规则的配置详细信息,请发出以下命令。如果未指定规则名称,将提供所有规则的信息。

# ilbadm show-rule
RULENAME        STATUS   LBALG           TYPE    PROTOCOL VIP           PORT
rule-http       E        hash-ip-port    NAT     TCP      10.0.0.1      80
rule-dns        D        hash-ip         NAT     UDP      10.0.0.1      53
rule-abc        D        roundrobin      NAT     TCP      2001:db8::1   1024
rule-xyz        E        ip-vip          NAT     TCP      2001:db8::1   2048-2050

删除 ILB 规则

您可以使用 ilbadm delete-rule 命令删除规则。添加 -a 选项可删除所有规则。以下示例将删除名为 rule1 的规则。

# ilbadm delete-rule rule1