跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:IP 服务 Oracle Solaris 11 Information Library (简体中文) |
本节介绍了 ILB 的主要功能。
ILB 以单路拓扑和双路拓扑形式支持 IPv4 与 IPv6 的无状态 DSR 及 NAT 操作模式。
无状态 DSR 模式-在 DSR 模式下,ILB 会平衡后端服务器的传入请求,而使从服务器返回到客户机的通信流量绕过它。但是,您也可以将 LIB 设置为后端服务器的路由器。在这种情况下,后端服务器对客户机的响应将通过正在运行 ILB 的计算机进行路由。使用无状态 DSR,ILB 不会保存已处理包的任何状态信息,但基本统计信息除外。由于 ILB 在此模式下不保存任何状态,因此性能与正常的 IP 转发性能相当。此模式最适合无连接协议。
NAT 模式(全 NAT 和半 NAT)-ILB 将单机模式的 NAT 完全用于负载平衡功能。在此模式下,ILB 会重新写入头信息并处理传入与传出通信流量。NAT 模式可提供附加安全性,最适合 HTTP(或 SSL)通信流量。
注 - ILB 中实现的 NAT 代码路径不同于 Oracle Solaris 的 IP 过滤器功能中实现的代码路径。请勿同时使用这两种代码路径。
ILB 算法用于控制通信流量分布,并为负载分布和服务器选择提供各种特征。ILB 为两种操作模式提供了以下算法:
循环-在循环算法中,负载平衡器将请求轮流指定给一列服务器。在为某服务器指定请求后,该服务器将会移至列表末尾。
源 IP 散列-在源 IP 散列方法中,负载平衡器根据传入请求的源 IP 地址的散列值选择服务器。
源 IP、端口散列-在源 IP、端口散列方法中,负载平衡器根据传入请求的源 IP 地址和源端口的散列值选择服务器。
源 IP、VIP 散列-在源 IP、VIP 散列方法中,负载平衡器根据传入请求的源 IP 地址和目标 IP 地址的散列值选择服务器。
CLI 位于 /usr/sbin/ilbadm 目录中。它包含用于配置负载平衡规则、服务器组和运行状况检查的子命令。此外,还包含用于显示统计信息以及查看配置详细信息的子命令。子命令可以分为两类:
配置子命令-这些子命令用于执行以下任务:
创建和删除负载平衡规则
启用和禁用负载平衡规则
创建和删除服务器组
在服务器组中添加和删除服务器
启用和禁用后端服务器
为负载平衡规则中的服务器组创建和删除服务器运行状况检查
注 - 要管理配置子命令,您需要拥有特权。这些特权是通过基于角色的访问控制 (Role Based Access Control, RBAC) 获取的。要创建相应的角色并将其指定给用户,请参见《Oracle Solaris 管理:安全服务》中的"初次配置 RBAC(任务列表)"。
查看子命令-这些子命令用于执行以下任务:
查看已配置的负载平衡规则、服务器组和运行状况检查
查看包转发统计信息
查看 NAT 连接表
查看运行状况检查结果
查看会话持久性映射表
注 - 管理查看子命令不需要拥有特权。
有关 ilbadm 子命令列表,请参见ILB 命令和子命令。有关 ilbadm 子命令的更多详细信息,请参阅 ilbadm(1M) 手册页。
ILB 提供了可选的服务器监视功能,可为服务器运行状况检查提供以下能力:
内置的 ping 探测器
内置的 TCP 探测器
内置的 UDP 探测器
用户提供的可作为服务器运行状况检查运行的测试
缺省情况下,ILB 不会执行任何运行状况检查。您可以在创建负载平衡规则时为每个服务器组指定运行状况检查。对于每个负载平衡规则,可以仅配置一个运行状况检查。只要启用了虚拟服务,与启用的虚拟服务关联的服务器组的运行状况检查就会自动启动并定期重复执行。禁用虚拟服务后,运行状况检查将立即停止。如果重新启用虚拟服务,先前的运行状况检查状态将不会保留。
如果您指定 TCP、UDP 或定制测试探测器来执行运行状况检查,则 ILB 缺省情况下会先发送 ping 探测器以确定是否可以访问服务器,然后再向服务器发送指定的 TCP、UDP 或定制测试探测器。ping 探测器是一种监视服务器运行状况的方法。如果 ping 探测器失败,则会禁用对应的服务器,并且运行状况检查状态为 unreachable。如果 ping 探测器成功,但 TCP、UDP 或定制测试探测器失败,则会禁用服务器,并且运行状况检查状态为 dead。
注 -
可以禁用缺省的 ping 探测器。
不能禁用 UDP 探测器的缺省 ping 探测器。因此,对于 UDP 运行状况检查,ping 探测器始终是缺省探测器。
您可以针对下表中显示的参数配置运行状况检查。
表 22-1 配置运行状况检查参数
|
本节介绍了 ILB 的其他功能。
允许客户机对虚拟 IP (virtual IP, VIP) 地址执行 ping 操作-ILB 可响应客户机对 VIP 的 Internet 控制消息协议 (Internet Control Message Protocol, ICMP) 回显请求。ILB 为 DSR 和 NAT 操作模式提供此功能。
允许您在不中断服务的情况下在服务器组中添加和删除服务器-您可以在服务器组中动态添加和删除服务器,而无需中断与后端服务器建立的现有连接。ILB 为 NAT 操作模式提供此功能。
允许您配置会话持久性(粘性)-对于许多应用程序,务必将同一客户机的一系列连接、包或这两者发送到同一后端服务器。您可以通过在子命令 create-rule{{-m persist=<netmask>]] 中指定子网掩码,为虚拟服务配置会话持久性。在创建持久性映射后,对具有匹配的客户机源 IP 地址的虚拟服务的连接、包或这两者的后续请求将转发到同一后端服务器。DSR 和 NAT 操作模式均支持会话持久性机制。
允许您执行连接排空-ILB 仅为基于 NAT 的虚拟服务的服务器提供对此功能的支持。此功能可阻止将新连接发送到已禁用的服务器。到服务器的现有连接将继续正常运行。终止该服务器的所有连接后,便可以将其关闭以进行维护。当服务器准备好处理请求后,请启用该服务器,以便负载平衡器能够向其转发新连接。通过此功能,可在不中断活动连接或会话的情况下将服务器关闭以进行维护。
支持对 TCP 和 UDP 端口进行负载平衡-ILB 可在不同服务器集中对给定 IP 地址的所有端口进行负载平衡,而不会要求您为每个端口设置显式规则。ILB 为 DSR 和 NAT 操作模式提供此功能。
允许您为同一服务器组中的虚拟服务指定独立端口-通过此功能,ILB 使您能够针对 NAT 操作模式为同一服务器组中的各个服务器指定不同的目标端口。
允许您对简单端口范围进行负载平衡-ILB 可以将 VIP 的端口范围负载平衡到给定的服务器组。为方便起见,您可以通过将同一 VIP 的各个端口范围负载平衡到不同的后端服务器集来节省 IP 地址。此外,在为 NAT 模式启用会话持久性后,ILB 还会将同一客户机 IP 地址对范围中的各个端口的请求发送到同一后端服务器。
支持端口范围移位和折叠-端口范围移位和折叠取决于负载平衡规则中服务器的端口范围。因此,如果服务器端口范围与 VIP 端口范围不同,将自动实现端口移位。如果服务器端口范围为单个端口,则实现端口折叠。这些功能是为 NAT 操作模式提供的。