本节介绍如何创建 ILB 服务器组并向服务器组中添加后端服务器。使用 create-servergroup 或 add-server 子命令添加服务器时,系统将生成服务器 ID。服务器 ID 在服务器组中是唯一的。有关 ilbadm 子命令的信息,请参见 ilbadm(1M) 手册页。
要创建 ILB 服务器组,请首先确定要包含在服务器组中的服务器。可以使用服务器的主机名或 IP 地址及可选端口来指定服务器。然后,以管理员身份运行以下命令:
# ilbadm create-servergroup -s servers=server1,server2,server3 servergroup
将为添加的每个服务器生成带有前导下划线 (_) 前缀的唯一服务器 ID。
要向服务器组中添加后端服务器,请以管理员身份运行以下命令:
# ilbadm add-server -s server=server1[,server2...] servergroup
指定的服务器必须包含主机名或 IP 地址,还可以包含可选的端口或端口范围。服务器组中不允许存在 IP 地址相同的服务器项。将为添加的每个服务器生成带有前导下划线 (_) 前缀的唯一服务器 ID。
以下示例将创建一个称为 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
首先确定要重新启用或禁用的后端服务器的 IP 地址、主机名或服务器 ID。您必须首先将服务器组与规则关联,然后才能启用或禁用服务器组中的服务器。
如果某个服务器属于多个服务器组,则该服务器可以具有多个服务器 ID。您必须指定服务器 ID 才能针对与该服务器 ID 关联的特定规则重新启用或禁用服务器。
要禁用已启用的服务器,请键入以下命令:
# ilbadm disable-server server1
将禁用已启用的选定服务器。内核不会将通信转发到该服务器。
要重新启用已禁用的服务器,请键入以下命令:
# ilbadm enable-server server1
将重新启用已禁用的选定服务器。
要显示服务器的状态,请键入以下命令:
# ilbadm show-server [[-p] -o field[,field...]] [rulename]
在以下示例中,将先禁用再重新启用服务器 ID 为 _websg.1 的服务器。
# ilbadm enable-server _websg.1 # ilbadm disable-server _websg.1
您可以使用 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 服务器组。您无法删除由任何活动规则使用的服务器组。
首先,显示有关服务器组的所有可用信息。
# 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