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

退出打印视图

更新时间: 2014 年 9 月
 
 

定义 ILB 中的服务器组和后端服务器

本节介绍如何创建 ILB 服务器组并向服务器组中添加后端服务器。使用 create-servergroupadd-server 子命令添加服务器时,系统将生成服务器 ID。服务器 ID 在服务器组中是唯一的。有关 ilbadm 子命令的信息,请参见 ilbadm(1M) 手册页。

创建 ILB 服务器组

要创建 ILB 服务器组,请首先确定要包含在服务器组中的服务器。可以使用服务器的主机名或 IP 地址及可选端口来指定服务器。然后,以管理员身份运行以下命令:

# ilbadm create-servergroup -s servers=server1,server2,server3 servergroup 

将为添加的每个服务器生成带有前导下划线 (_) 前缀的唯一服务器 ID。


注 -  如果某个服务器属于多个服务器组,则该服务器可以具有多个服务器 ID。

向 ILB 服务器组中添加后端服务器

要向服务器组中添加后端服务器,请以管理员身份运行以下命令:

# ilbadm add-server -s server=server1[,server2...] servergroup

指定的服务器必须包含主机名或 IP 地址,还可以包含可选的端口或端口范围。服务器组中不允许存在 IP 地址相同的服务器项。将为添加的每个服务器生成带有前导下划线 (_) 前缀的唯一服务器 ID。


注 -  IPv6 地址必须括在方括号中。
示例 6-1  创建 ILB 服务器组并添加后端服务器

以下示例将创建一个称为 webgroup 并包含三个后端服务器的服务器组。

# ilbadm create-servergroup -s \
servers=192.168.89.11,192.168.89.12,192.168.89.13 webgroup
# ilbadm show-servergroup
SGNAME         SERVERID            MINPORT MAXPORT IP_ADDRESS
webgroup       _webgroup.0         --      --      192.168.89.11
webgroup       _webgroup.1         --      --      192.168.89.12
webgroup       _webgroup.2         --      --      192.168.89.13

以下示例将创建一个称为 webgroup1 的服务器组,并向该服务器组添加三个后端服务器。

# ilbadm create-servergroup webgroup1
# ilbadm add-server -s server=[2001:0db8:7::feed:6]:8080,\
[2001:0db8:7::feed:7]:8080,[2001:0db8:7::feed:8]:8080 webgroup1

启用或禁用 ILB 服务器组中的后端服务器

首先确定要重新启用或禁用的后端服务器的 IP 地址、主机名或服务器 ID。您必须首先将服务器组与规则关联,然后才能启用或禁用服务器组中的服务器。

如果某个服务器属于多个服务器组,则该服务器可以具有多个服务器 ID。您必须指定服务器 ID 才能针对与该服务器 ID 关联的特定规则重新启用或禁用服务器。

  • 要禁用已启用的服务器,请键入以下命令:

    # ilbadm disable-server server1

    将禁用已启用的选定服务器。内核不会将通信转发到该服务器。

  • 要重新启用已禁用的服务器,请键入以下命令:

    # ilbadm enable-server server1

    将重新启用已禁用的选定服务器。

  • 要显示服务器的状态,请键入以下命令:

    # ilbadm show-server [[-p] -o field[,field...]] [rulename]

    注 -  仅当服务器所属的服务器组与某项规则关联时,服务器才会将状态显示为已启用或已禁用。
示例 6-2  禁用并重新启用 ILB 服务器组中的后端服务器

在以下示例中,将先禁用再重新启用服务器 ID 为 _websg.1 的服务器。

# ilbadm enable-server _websg.1
# ilbadm disable-server _websg.1

从 ILB 服务器组中删除后端服务器

您可以使用 ilbadm remove-server 命令从一个 ILB 服务器组中或从所有服务器组中删除后端服务器。首先,确定要从服务器组中删除的服务器的服务器 ID。

ilbadm show-servergroup -o all

服务器 ID 是将服务器添加到服务器组中时指定给系统的 IP 地址的唯一名称。

然后,删除该服务器。

# ilbadm remove-server -s server=server-ID server-group

如果 NAT 或半 NAT 规则正在使用该服务器,请先通过 disable-server 子命令禁用该服务器,然后再进行删除。有关更多信息,请参见启用或禁用 ILB 服务器组中的后端服务器。当服务器被禁用时,将会进入连接排空状态。使用 ilbadm show-nat 命令定期查看 NAT 表,以了解服务器是否仍处于连接状态。排空所有连接后(服务器不会显示在 show-nat 命令输出中),即可使用 remove-server 命令删除服务器。

如果设置了 conn-drain 超时值,连接排空状态将在超时期限到期后结束。conn-drain 超时的缺省值为 0,这意味着连接排空将持续等待,直到连接正常关闭为止。

示例 6-3  从 ILB 服务器组中删除后端服务器

以下示例将从服务器组 sg1 中删除服务器 ID 为 _sg1.2 的服务器。

# ilbadm remove-server -s server=_sg1.2 sg1

删除 ILB 服务器组

本节介绍如何删除 ILB 服务器组。您无法删除由任何活动规则使用的服务器组。

首先,显示有关服务器组的所有可用信息。

# ilbadm show-servergroup -o all
sgname      serverID       minport     maxport     IP_address
specgroup   _specgroup.0   7001        7001        192.168.68.18
specgroup   _specgroup.1   7001        7001        192.168.68.19
test123     _test123.0     7002        7002        192.168.67.18
test123     _test123.1     7002        7002        192.168.67.19

键入以下命令:

# ilbadm delete-servergroup servergroup

如果服务器组正在由活动规则使用,则删除会失败。

以下示例将删除称为 webgroup 的服务器组。

# ilbadm delete-servergroup webgroup