版本 5.1
文档号 G152-0387-01
注意 |
---|
在使用本资料及其支持的产品之前,请务必阅读附录 E, 声明中的一般信息。 |
第二版(2003 年 11 月)
(C) Copyright International Business Machines Corporation 2003. All rights reserved.
U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
本书解释了如何规划、安装、配置、使用和故障诊断 IBM(R)(R) WebSphere(R)(R) Application Server Load Balancer for AIX(R)、HP-UX、Linux、Solaris 和 Windows(R) 操作系统。本产品以前称为 Edge Server Network Dispatcher、SecureWay(R) Network Dispatcher、eNetwork Dispatcher 和 Interactive Network Dispatcher。
《Load Balancer 管理指南》是为熟悉操作系统和提供因特网服务的有经验的网络和系统管理员所编写的。用户不需要事先了解 Load Balancer。
本书并不支持 Load Balancer 的前发行版。
请访问 Edge Components 信息中心(ecinfocenter)Web 站点,以获取有关如何使用 Edge Components 的 Load Balancer 来最大化您服务器性能的最新详细信息。其中包括配置示例和方案。
Edge Components 信息中心 Web 站点将链接到本书的当前版本(HTML 和 PDF 格式)。
要获取有关 Load Balancer 的最新更新和用法提示,访问 Web 站点支持页面并单击 Search for Load Balancer hints and tips。您可从 Edge Components 信息中心链接到此 Web 站点。
要访问这些及其相关的 Web 页面,请转至 相关文档和 Web 站点 中列出的各个 URL。
辅助选项功能部件帮助有生理缺陷的用户(如行动不便或有视力障碍的用户)顺利地使用软件产品。以下这些是 Load Balancer 的主要辅助选项功能部件:
您的反馈十分重要,它有助于我们提供最准确而高质量的信息。如果您对本书或其它任何 Edge components 文档有任何意见:
此部分提供 Load Balancer 及其组件的概述,可用配置功能部件的高级描述,硬件和软件要求的列表,以及安装说明。它包含以下几章:
本章提供 Load Balancer 的概述,包含以下各节:
要获取有关每个 Load Balancer 组件提供的配置功能的高级列表,以辅助您计划哪些功能用于管理您的网络,请参阅管理您的网络:确定要使用哪些 Load Balancer 功能。
Load Balancer 是分发跨服务器的进入客户机请求的软件解决方案。它将 TCP/IP 会话请求引导到一组服务器内的不同服务器上,从而显著提高了服务器的性能;通过这种方法平衡了所有服务器的请求。这种负载均衡对用户与其它应用程序都是透明的。Load Balancer 对于诸如电子邮件服务器、万维网服务器、分布式并行数据库查询及其它 TCP/IP 应用程序都很有用。
与 Web 服务器一起使用时,Load Balancer 通过提供一个解决请求高峰问题的强大、灵活且可伸缩的解决方案,从而帮助站点发挥最大潜力。如果您站点的访问者在请求高峰时刻不能畅通运行,使用 Load Balancer 自动查找最理想的服务器以处理到达请求,因而能使您的客户更为满意也提高了您的效益。
Load Balancer 包含以下五个组件,其可以单独使用也可以联合工作,都能提供很好的负载均衡效果:
对于 HTTP 协议,也可以使用分派器的基于内容路由(CBR)功能,基于客户机请求内容进行负载均衡。选择的服务器是将 URL 与指定的规则匹配的结果。
要获取分派器、CBR、站点选择器、Cisco CSS 控制器和 Nortel Alteon 控制器组件的更多信息,请参阅Load Balancer 的组件是什么?。
连接至全球因特网的用户与网络数正在呈指数型增长。这种增长正在引起规模上的问题,限制用户访问受欢迎站点。
当前,网络管理员使用多种方法试图扩大访问能力。其中的某些方法允许 用户在以前选择的服务器较慢或无响应时随机选择不同的服务器。这种方法比较麻烦、枯燥乏味且效率不高。另一种方法是标准的循环方法,在这种方法中,域名服务器依次选择服务器来处理请求。此方法较好些,但由于它只是盲目地转发流量而不考虑服务器的工作负载,因此效率也不高。另外,即使服务器出现故障,仍继续有请求发送给它。
对更有效的解决方案的需求导致了 Load Balancer 的产生。它与早期具有同样用途的解决方案相比存在许多优点:
随着客户机请求次数的增加,可动态添加服务器,提供在几十台甚至几百台服务器上响应每天数千万次请求的支持。
负载均衡通过尽量减少标准循环方法经常发生的热点,确保每组服务器的硬件得到最佳的利用。
Load Balancer 使用标准 TCP/IP 协议。可将其添加至现有的网络中而无需作任何物理更改。安装与配置都很简单。
使用简单 mac 级别转发方法,分派器组件仅查看入站的客户机到服务器的消息流。它无需查看出站的服务器到客户机的信息流。这一特点相对于其它方法而言大大降低了应用程序的影响,从而提高了网络的性能。
分派器、Cisco CSS 控制器和 Nortel Alteon 控制器组件提供内置高可用性,它利用一台始终保持就绪状态的备份机器,在主服务器发生故障时接管负载均衡。当其中一台服务器失败时,请求将继续由其它服务器服务。这将作为单点故障消去任何服务器,并使站点高度可用。
要获取更多的信息,请参阅高可用性如何实现?。
通过与高速缓存代理配合运行,CBR 组件具有有根据请求的内容将 HTTP 和 HTTPS(SSL)请求发送到特定服务器的能力。例如,如果请求的 URL 目录部分包含字符串“/cgi-bin/”,并且服务器名称是本地服务器,CBR 可以直接将请求发送到一组特别分配以处理 cgi 请求的服务器中的最佳服务器中。
分派器组件也提供基于内容路由,但它不需要安装高速缓存代理。因为当接收信息包时,分派器组件的基于内容路由在内核中执行,它可以提供比 CBR 组件更快的基于内容路由。分派器组件为 HTTP(使用“内容”类型规则),以及为 HTTPS(使用 SSL 会话标识亲缘性)执行基于内容路由。
分派器 组件提供内置高可用性功能,把分派器作为单点故障从网络消去。 该功能与第二台监视主要的或主分派器机器的使用有关,并作为备用机器在任何主机器出现故障的时候接管负载均衡的任务。分派器组件还提供相互高可用性,其允许两台机器互为主和次(备份)机器。请参阅配置高可用性。
当 2 层配置和分派器机器负载均衡流量一起用于多台具有 CBR 或站点选择器的服务器时,您可以达到 Load Balancer 的这些组件的高可用性级别。
这些控制器具有作为单点故障消去控制器的高可用性功能。在某台机器上的控制器可配置为主控制器,而在另一台机器上的控制器可配置为备份控制器。备份控制器监视主控制器,并在主控制器失败时,支持接管为控制器提供服务器权值的任务。请参阅高可用性,以获取更多信息。
IBM WebSphere Application Server 版本 5.1 的 Load Balancer 包含许多新功能。它还包括 V5.0.1 和 V5.0.2 的所有新功能和纠正的更新。此处列出了最重要的新功能。
此功能应用于所有 Load Balancer 组件。
Load Balancer 现在在 HP-UX 操作系统上运行。请参阅HP-UX 的要求以获取更多信息。
此功能应用于所有 Load Balancer 组件。
除支持在 Linux for Intel(TM)(32 位方式)上运行 Load Balancer 外,Load Balancer 现在还在 Linux for S/390(31 为方式)和 Linux for Power PC(64 位方式)上运行。请参阅Linux 的要求,以获取更多信息。
此功能应用于所有 Load Balancer 组件。
除 AIX 5.1 外,现在还在 AIX 5.2(32 位或 64 位方式)上运行 Load Balancer。请参阅AIX 的要求以获取更多信息。
此功能应用于所有 Load Balancer 组件。
除 Solaris 8 外,现在还在 Solaris 9(32 位或 64 位方式)上运行 Load Balancer。请参阅Solaris 版要求以获取更多信息。
此功能应用于所有 Load Balancer 组件。
除 Windows 2000 外,现在还在 Windows Server 2003 上运行 Load Balancer。请参阅Windows 2000 和 Windows Server 2003 的要求以获取更多信息。
此功能应用于分派器组件。
用此增强,现在支持在同一个群集上同时配置 FTP 端口和通配符端口。请参阅使用通配符端口定向到未配置的端口流量和处理 FTP 通信量的通配符端口以获取更多的信息。
IBM WebSphere Application Server V5.0 的 Load Balancer 包含许多新功能。最重要的列在此处。
Cisco CSS 控制器(先前称为 Cisco 咨询器)是为由 Cisco CSS 交换机负载均衡的服务器计算权值的 Load Balancer 组件。Cisco CSS 交换机是基于硬件的 load balancer,其支持 SNMP。此控制器使用更大的应用程序及系统认识来增强 Cisco CSS 交换机的服务器负载均衡功能。
请参阅快速入门配置、计划 Cisco CSS 控制器组件和配置 Cisco CSS 控制器组件,以获取更多的信息。
此功能部件是 Load Balancer 的新组件。
Nortel Alteon 控制器为正在由 Nortel Alteon Web 交换机负载均衡的服务器计算权值。Nortel Alteon Web 交换机是基于硬件的 load balancer,其 SNMP 接口用于获取连接信息和设置权值。Nortel Alteon 控制器是一个新的 Load Balancer 组件,其监视正在由 Alteon 交换机负载均衡的服务器,并提供适当的权值以确保准确的负载均衡。此控制器使用更大的应用程序及系统认识来增强 Nortel Alteon 交换机的服务器负载均衡功能。
请参阅快速入门配置、计划 Nortel Alteon 控制器组件和配置 Nortel Alteon 控制器组件,以获取更多的信息。
此功能应用于 Cisco CSS 控制器和 Nortel Alteon 控制器组件。
现在,Load Balancer 支持 Cisco CSS 控制器组件和 Nortel Alteon 控制器组件的高可用性。如果主控制器发生故障,客户现在可以在备份服务器上安装控制器以便接管主控制器。
有关 Cisco CSS 控制器,请参阅高可用性以获取更多信息。
有关 Nortel Alteon 控制器,请参阅高可用性以获取更多信息。
此功能应用于 CBR 组件。
CBR 现在支持使用 WAS 亲缘性格式,对到 WAS(V5)服务器的 Web 应用程序请求进行负载均衡。CBR 能自动将 WAS HTTP 插件配置文件映射到 CBR 配置,以便对 WAS 配置执行负载均衡。
请参阅负载均衡 WebSphere Application Server(WAS),以获取更多信息。
此功能应用于分派器和 CBR 组件。
对每秒规则的连接数增强允许客户指定“upserversonrule”选项。通过指定此选项,您可以确保如果服务器集中的一台或多台服务器当机,其余服务器将不过载。
请参阅使用基于每秒连接数的规则,以获取更多信息。
此功能应用于 CBR 组件。
先前实现基于 CBR 活动 cookie 亲缘性的客户机与请求的群集和端口上的服务器之间的连接。这可能成为配置中的问题,其中有多个带有不同服务器集的规则。此增强将在单个群集和端口内允许多个亲缘性,使客户机能基于请求的上下文潜在地与许多不同服务器保持亲缘性。
请参阅活动 cookie 亲缘性,以获取更多信息。
此功能应用于分派器组件。
现在,Load Balancer 在 Linux 平台上提供 SNMP 支持。请参阅SNMP 命令与协议,以获取更多信息。
此功能应用于 Load Balancer 的所有组件。
现在,Load Balancer 除了支持通过 RMI(远程方法调用)远程管理以外,还支持基于 Web 的远程管理。即使存在防火墙,基于 Web 的管理也提供 Load Balancer 的安全、已认证的远程管理。请参阅基于 Web 的管理,以获取更多信息。
此功能应用于 Load Balancer 的所有组件。
现在,可以从 GUI 树中的“主机”节点访问命令行(“发送命令”)。请参阅第 *** 页,以获取更多信息。
此功能应用于分派器组件。
为 Load Balancer 问题确定提供了一个工具(lbpd),该工具将快速和简便地收集客户可发送到 IBM 服务的重要信息。请参阅收集故障诊断信息,以获取更多信息。
此功能应用于分派器、CBR 和站点选择器组件。
除了“轻量级”SSL 顾问程序外,Load Balancer 现在还提供了“重量级”HTTPS 顾问程序。HTTPS 顾问程序打开全部 SSL 连接,其与服务器建立完整的 SSL 套接字。(相反,lightweight SSL 顾问程序不与服务器建立完整的 SSL 套接字。)
请参阅顾问程序列表,以获取有关 HTTPS 顾问程序的更多信息。
此功能部件适用于所有 Load Balancer 组件。
Load Balancer 现在提供了监视 LDAP 服务器健康的 LDAP 顾问程序。
请参阅顾问程序列表,以获取更多信息。
此功能部件适用于所有 Load Balancer 组件。
顾问程序现在有在标记服务器当机之前重试连接的能力。
此功能应用于分派器组件。
分派器现在有发送 TCP 复位到当机服务器的能力。TCP 复位将导致立即关闭连接。
请参阅发送 TCP 复位到当机服务器(仅分派器组件),以获取更多信息。
以下功能已从 Load Balancer 中除去
本章提供 Load Balancer 组件的概述,包含以下各节:
要获取有关每个 Load Balancer 组件提供的配置功能的高级列表,以辅助您计划哪些功能用于管理您的网络,请参阅管理您的网络:确定要使用哪些 Load Balancer 功能。
Load Balancer 的五个组件是:分派器、基于内容路由(CBR)、站点选择器、Cisco CSS 控制器和 Nortel Alteon 控制器。Load Balancer 让您根据站点的配置灵活地单独使用或一起使用这些组件。 本节提供了这些组件的概述。
分派器 组件通过负载均衡的独特组合和管理软件平衡您的服务器之间的流量。分派器 也可以检测故障的服务器并转发流量绕过它。分派器支持 HTTP、FTP、SSL、SMTP、NNTP、IMAP、POP3、Telnet 及任何其它基于 TCP 或无状态 UDP 的应用程序。
发送到分派器机器的所有客户机请求按照某些动态设置的权值直接被引导到“最佳”服务器上。可使用这些权值的缺省值或在配置过程中更改它们。
分派器 组件是对大型可伸缩服务器网络进行稳定、有效管理的关键。使用分派器,可将很多单独服务器链接为如同单一的虚拟服务器。这样,站点对外可作为一个 IP 地址。分派器 不依赖域名服务器运行;所有请求都被发送至分派器机器的 IP 地址。
分派器 通过平衡流量负载到群集的服务器而带来显著的效益,从而稳定、有效管理您的站点。
图 1 展示了使用以太网配置的站点的物理表示法。安装分派器机器时无需对网络进行任何物理更改。使用 MAC 转发方法时,分派器 将客户机请求引导到最佳服务器后,响应将直接从服务器发送到客户机,而无需 分派器 的任何干涉。
图 2 描述其所有服务器都在本地网络上的站点。分派器 组件用于转发请求,而度量服务器用于为分派器机器提供系统负载信息。
在此示例中,每台后端服务器上都安装度量服务器守护程序。您可以将度量服务器与分派器组件或任何其它 Load Balancer 组件一起使用。
分派器 中的广域支持允许使用本地和远程服务器(不同子网上的服务器)。图 3 显示了用一个本地分派器(分派器 1)作为所有请求入口点处的配置。它将这些请求分配到自已的本地服务器(服务器 A、服务器 B、服务器 C)和远程 分派器(分派器 2),其将负载均衡到它的本地服务器(服务器 G、服务器 H、服务器 I)。
当使用分派器的 NAT 转发方法或 GRE 支持时,分派器的广域支持也可以完成而无需使用远程站点(服务器 D、服务器 E 和 服务器 F 所在的地方)上的分派器。请参阅分派器的 NAT/NAPT(nat 转发方法)和GRE(一般路由封装)支持,以获取更多信息。
CBR 与高速缓存代理一起使用,以代理客户机请求到指定的 HTTP 或 HTTPS(SSL)服务器。为了在低网络带宽要求的情况下快速检索 Web 文档,它允许您处理高速缓存详细信息。 CBR 与高速缓存代理一起测试使用指定规则类型的 HTTP 请求。
CBR 使您可以指定一组能根据请求内容的正则表达式匹配法来处理请求的服务器。因为 CBR 允许您为每种请求指定多台服务器,所以可为最佳客户机响应对请求进行负载均衡。CBR 还检测服务器组中的某台服务器何时发生了故障,并停止将请求路由到该服务器。 CBR 组件使用的负载均衡算法与分派器组件使用的已验证的算法相同。
当高速缓存代理接收请求时,将基于已在 CBR 组件中定义的规则来检查它。如果找到了匹配,则选择一个与此规则相关的服务器来处理此请求。然后高速缓存代理执行它的常规处理,将请求代理到所选服务器。
CBR 与分派器功能相同(除了高可用性、SNMP 子代理程序、广域和几个其它配置命令之外)。
高速缓存代理必须正在运行,CBR 才可以开始对客户机请求进行负载均衡。
图 4 展示了一个站点的逻辑表示法,其中 CBR 用于代理本地服务器的一些内容。CBR 组件使用高速缓存代理基于 URL 的内容,转发客户机请求(HTTP 或 HTTPS)到服务器。
站点选择器作为与域名系统中其它名称服务器一起工作的名称服务器,以使用集中的测量和权值对一组服务器进行负载均衡。您可创建站点配置,以使您能根据用于客户机请求的域名对服务器组中的流量进行负载均衡。
客户机将解析域名的请求提交到网络内的名称服务器。名称服务器将请求转发到站点选择器机器。然后站点选择器将域名解析为已在此站点名下配置的服务器中的其中一台服务器的 IP 地址。站点选择器将所选服务器的 IP 地址返回给名称服务器。名称服务器将 IP 地址返回给客户机。
度量服务器是 Load Balancer 的系统监视组件,其必须安装在您配置内的每台负载均衡的服务器中。使用度量服务器,站点选择器可以监视服务器上的活动级别,检测何时服务器的负载最轻,以及检测发生故障的服务器。负载是服务器工作强度的度量标准。通过定制系统度量脚本文件,您可以控制用于测量负载的测量法类型。可配置站点选择器以适应您的环境,配置时应考虑诸如访问频率、用户总数及访问类型(例如,短时间查询、长时间运行的查询或大量使用 CPU 的负载)等因素。
图 5. 使用站点选择器和度量服务器管理本地和远程服务器的站点示例
图 5 描述站点选择器组件用于回答请求中的站点。服务器 1、服务器 2 和服务器 3 是本地的。服务器 4、服务器 5 和服务器 6 是远程的。
客户机将解析域名的请求提交到客户机名称服务器。客户机名称服务器通过 DNS 将请求转发到站点选择器机器(路径 1)。然后,站点选择器解析域名为若干服务器中的一个的 IP 地址。站点选择器返回所选服务器的 IP 地址到客户机名称服务器。名称服务器返回 IP 地址到客户机。
客户机接收到服务器的 IP 地址后,它将应用程序请求直接路由到所选的服务器(路径 2)。
Cisco CSS 控制器连同 Cisco 的 CSS 11000 系列交换机构成了补充的解决方案。组合的解决方案将 CSS 11000 系列的健全信息包转发和内容路由能力与 Load Balancer 完善的认识算法混合起来,以确定负载信息和服务(后端服务器应用程序或数据库)的可用性。Cisco CSS 控制器 功能利用 Load Balancer 的权值算法、标准和定制顾问程序以及度量服务器来确定度量、健全状态和服务的负载。用此信息,Cisco CSS 控制器生成发送到 Cisco CSS 交换机的服务权值,以进行最佳服务选择、负载优化和缺省容错。
Cisco CSS 控制器跟踪许多标准,包含:
当 Cisco CSS 交换机(而没有 Cisco CSS 控制器)确定提供内容提供服务的健全状态时,它将响应时间用于内容请求或其它网络措施上。当 Cisco CSS 控制器就位时,这些活动从 Cisco CSS 交换机卸到 Cisco CSS 控制器。Cisco CSS 控制器影响服务的权值或服务内容的能力,并在服务恢复或失去可用性的适当时候激活或暂挂服务。
Cisco CSS 控制器:
图 6. 使用 Cisco CSS 控制器和度量服务器管理本地服务的站点示例
Cisco CSS 控制器连同 Cisco CSS 交换机发送“两个领域中的最佳”解决方案,其将电报速度内容转换与完善的应用程序认识、缺省容错和服务负载优化组合起来。Cisco CSS 控制器是 Cisco CSS 交换机和 IBM WebSphere Application Server 之间的全面补充解决方案的一部分。
Nortel Alteon 控制器连同 Web 交换机的 Nortel Alteon 系列提供补充解决方案,它将交换机的信息包转发和 Load Balancer 的完善认识算法能力组合起来,以确定服务器权值。
Nortel Alteon 控制器允许您开发能执行更多应用程序认识的可用性智能评估以及用于部署服务的应用程序负载的定制顾问程序。
度量服务器提供系统负载信息(如,CPU 和内存使用率信息),以及您用于开发定制系统负载测量的框架。
Nortel Alteon 控制器收集多种度量数据,以确定正在由多个 Nortel Alteon Web 交换机负载均衡的服务器权值,包含:
Nortel Alteon 控制器使用 SNMP 与交换机通信。配置,从交换机检索状态和连接信息。一旦控制器计算服务器权值,这些权值将设置在交换机上。交换机使用控制器设置的权值来选择最佳的服务器,以处理服务的客户机请求。
图 7. 使用 Nortel Alteon 控制器管理本地服务器的站点示例
您可以使用浏览器、远程 GUI 或远程命令行界面来管理控制器。
与 Web 交换机的 Nortel Alteon 系列组合的 Nortel Alteon 控制器发送“两个领域中的最佳”解决方案,其将电报速度信息包转换与完善的应用程序认识、缺省容错和服务器负载优化组合起来。Nortel Alteon 控制器是 Web 交换机的 Nortel Alteon 系列与 IBM 的 WebSphere 之间的补充解决方案的一部分。
本章列出 Load Balancer 组件的配置功能,因此您可以确定哪些功能用于管理您的网络:
要获取有关每个 Load Balancer 组件提供的配置功能的高级列表,以辅助您计划哪些功能用于管理您的网络,请参阅管理您的网络:确定要使用哪些 Load Balancer 功能。
要优化跨服务器的负载均衡并确保选择“正确的”服务器,请参阅:
分派器支持跨服务器对 HTTP、FTP、SSL、SMTP、NNTP、IMAP、POP3、Telnet 和任何其它基于 TCP 或无状态 UDP 的应用程序进行负载均衡。
_ 要从 Load Balancer 所在的单独机器运行 Load Balancer 配置,请参阅Load Balancer 的远程管理。
_ 要在与您进行负载均衡的 Web 服务器的同一台机器上运行分派器,请参阅使用并列配置的服务器。
当负载均衡 SSL(HTTPS)流量时:
_ 要确保客户机将同一台 SSL 服务器用于多个连接,请参阅Load Balancer 的亲缘性功能如何工作。
_ 要确保客户机将同一台服务器用于 HTTP 和 SSL 流量,请参阅交叉端口亲缘性。
_ 要确保客户机将同一台服务器用于多个连接,请参阅Load Balancer 的亲缘性功能如何工作。
_ 要确保一组客户机将同一台服务器用于多个连接,请参阅亲缘性地址掩码(stickymask)。
_ 要从您的配置中除去服务器(例如,为了维护的目的),而不毁坏客户机流量,请参阅停顿服务器连接句柄。
为了将客户机导向同一 Web 地址的不同服务器组,您可以将“规则”添加到分派器配置。要获取更多的信息,请参阅配置基于规则的负载均衡。
_ 要基于客户机源 IP 地址,将客户机导向不同服务器组,请参阅使用基于客户机 IP 地址的规则。
_ 要基于客户机端口,将客户机导向不同服务器组,请参阅使用基于客户机端口的规则。
_ 要基于时间,将客户机导向不同服务器组,请参阅使用基于时间的规则。
_ 要基于网络信息包中的服务类型(TOS)位,将客户机导向服务器,请参阅使用基于服务类型(TOS)的规则。
_ 要基于站点流量,将客户机导向不同服务器组:
_ 使用每秒连接数,请参阅使用基于每秒连接数的规则。
_ 使用总计活动连接数,请参阅使用基于总活动连接数的规则。
_ 保存和共享不同 Web 地址的带宽,请参阅使用基于保留带宽和共享带宽的规则。
_ 确保为您的每个服务器组正确地测量流量,请参阅服务器评估规则选项。
_ 要将溢出流量导向一组缺省服务器(例如,将响应“站点忙”的服务器),请参阅使用总是为真规则。
_ 要覆盖客户机亲缘性,以确保客户机不“粘”住溢出服务器,请参阅端口亲缘性覆盖。
要确保 SSL 返回到相同的 SSL 服务器,基于客户机请求中的 SSL 标识
_ 请参阅第 *** 页。
要基于匹配客户机请求的 URL 内容使用规则,以将 HTTP 客户机导向不同服务器组,请参阅分派器的基于内容路由(cbr 转发方法)和使用基于请求内容的规则获取更多信息。
_ 要区别特殊 URL 与其服务应用程序,请参阅服务器分区:配置到一个物理服务器(IP 地址)的逻辑服务器。
_ 要确保客户机在使用 Web 服务器创建的 cookie 请求多个连接中类似的内容时,返回到同一台服务器,请参阅被动 cookie 亲缘性。
_ 要将 Web 流量负载均衡到允许在每台服务器上高速缓存唯一内容的高速缓存代理服务器(从而通过消去多台机器上内容的冗余高速缓存,增加了站点高速缓存大小),请参阅URI 亲缘性。
使用分派器的 cbr 转发方法的优点是它对客户机请求提供响应的速度比 CBR 组件更快。另外,分派器的 cbr 转发不要求安装和使用高速缓存代理。
如果您的网络包含完全安全的 SSL(客户机到服务器)流量,则使用 CBR 组件(连同高速缓存代理)的优点是它可以处理必需的加密/解密,以便执行基于内容路由。对于完全安全的连接,分派器的 cbr 转发只能使用 SSL 标识亲缘性进行配置,因为它无法处理加密/解密以在客户机请求的 URL 上执行实际的基于内容路由。
_ 要使用分派器的广域功能负载均衡到远程服务器,请参阅:配置广域分派器支持和GRE(一般路由封装)支持。
_ 要使用分派器的 nat 转发方法负载均衡到远程服务器,请参阅分派器的 NAT/NAPT(nat 转发方法)。
_ 要将某个 Web 地址负载均衡到同一台机器上的多个服务器守护程序,其中每个守护程序在唯一的端口上侦听,请参阅分派器的 NAT/NAPT(nat 转发方法)。
_ 要将分派器流量放置在不同于客户机流量的网络上(以通过减少外部网络的争用来改进性能),请参阅使用专用网配置。
_ 要将多个 Web 地址组合到单个配置中,请参阅使用通配符群集来组合服务器配置。
_ 要负载均衡防火墙,请参阅使用通配符群集为防火墙负载均衡。
_ 要将流量导向所有目的地端口,请参阅使用通配符端口定向到未配置的端口流量。
_ 要检测可能的“拒绝服务”攻击,请参阅拒绝服务攻击检测。
_ 要分析服务器流量,请参阅使用二进制日志记录分析服务器统计信息。
_ 要在服务器标记为运行或当机时生成警告,请参阅使用脚本以生成警告或记录服务器故障。
CBR 将负载均衡与 WebSphere Application Server 的高速缓存代理集成在一起,以代理客户机请求到指定的 HTTP 或 HTTPS(SSL)服务器。要使用 CBR,必须在同一台机器上安装和配置高速缓存代理。 要获取有关如何配置高速缓存代理以便使用 CBR 的信息,请参阅步骤 1. 配置高速缓存代理以使用 CBR。
使用 CBR 组件(或分派器组件的 cbr 转发方法),您可以向您的客户机提供以下优点:
_ 将不同内容类型的客户机请求负载均衡到服务器集。(请参阅不同种内容的负载均衡请求)。
_ 通过在 Web 服务器间最佳地划分您的站点,以改进响应时间。(请参阅为更好的响应时间划分您的站点内容)。
_ 通过允许为每种类型的内容指定多台服务器,以确保在服务器发生故障时客户机流量不中断。(请参阅提供 Web 服务器内容的备份)。
如果您的网络需要完全安全的 SSL(客户机到服务器)流量,则使用 CBR 组件(连同高速缓存代理)的优点是它可以处理 SSL 加密/解密,以便执行基于内容路由。
对于完全安全的 SSL 连接,分派器的 cbr 转发只能使用 SSL 标识亲缘性进行配置,因为它无法处理加密/解密以在客户机请求的 URL 上执行实际的基于内容路由。
对于 HTTP 流量,使用分派器的 cbr 转发方法的优点是它对客户机请求提供响应的速度比 CBR 组件更快。另外,分派器的 cbr 转发不要求安装和使用高速缓存代理。
_ 要从 Load Balancer 所在的单独机器运行 Load Balancer 配置,请参阅Load Balancer 的远程管理。
_ CBR 可以在与您进行负载均衡的服务器的同一台机器上运行。 请参阅使用并列配置的服务器,以获取更多信息。
_ 要通过使用多个高速缓存代理进程来改进 CPU 使用率,请参阅使用多个高速缓存代理进程来改进 CPU 使用率。
要允许 SSL 流量的基于内容路由:
_ 在两端(客户机到代理和代理到服务器)都使用安全连接,请参阅跨完全安全的(SSL)连接的负载均衡。
_ 仅在客户机到代理端使用安全连接,请参阅负载均衡 SSL 中的客户机到代理和 HTTP 中的代理到服务器。
_ 要区别特殊 URL 与其服务应用程序,请参阅服务器分区:配置到一个物理服务器(IP 地址)的逻辑服务器。
为了将客户机导向同一 Web 地址的不同服务器组,您可以将“规则”添加到 CBR 配置。要获取更多的信息,请参阅配置基于规则的负载均衡。
_ 要基于请求的 URL 内容,将客户机导向不同服务器组,请参阅使用基于请求内容的规则。
_ 要基于客户机源 IP 地址,将客户机导向不同服务器组,请参阅使用基于客户机 IP 地址的规则。
_ 要基于时间,将客户机导向不同服务器组,请参阅使用基于时间的规则。
_ 要基于站点流量,将客户机导向不同服务器组:
使用每秒连接数,请参阅使用基于每秒连接数的规则。
使用总计活动连接数,请参阅使用基于总活动连接数的规则。
_ 要将溢出流量导向一组缺省服务器(例如,将响应“站点忙”的一台或多台服务器),请参阅使用总是为真规则。
_ 要覆盖客户机亲缘性,以确保客户机不“粘”住溢出服务器,请参阅端口亲缘性覆盖。
_ 要确保客户机返回到用于多个连接的同一台服务器,请参阅Load Balancer 的亲缘性功能如何工作。
_ 要从您的配置中除去服务器(例如,为了维护的目的),而不毁坏客户机流量,请参阅停顿服务器连接句柄。
_ 要确保客户机在不依赖 Web 服务器创建的 cookie 请求多个连接中类似的内容时,返回到同一台服务器,请参阅活动 cookie 亲缘性。
_ 要确保客户机在使用 Web 服务器创建的 cookie 请求多个连接中类似的内容时,返回到同一台服务器,请参阅被动 cookie 亲缘性。
_ 要将 Web 流量负载均衡到允许在每台服务器上高速缓存唯一内容的高速缓存代理服务器(从而通过消去多台机器上内容的冗余高速缓存,增加了站点高速缓存大小),请参阅URI 亲缘性。
_ 要使用带有 DBR 的 2 层配置中的分派器除去您网络中的单点故障限制,请参阅高可用性如何实现?。
_ 要分析服务器流量,请参阅使用二进制日志记录分析服务器统计信息。
_ 要在服务器标记为运行或当机时生成警告,请参阅使用脚本以生成警告或记录服务器故障。
站点选择器跨越一组服务器对名称服务请求进行负载均衡。
_ 要从 Load Balancer 所在的单独机器运行 Load Balancer 配置,请参阅Load Balancer 的远程管理。
_ 站点选择器可以在与您进行负载均衡(无需其它配置步骤)的服务器的同一台机器上运行。
_ 通过使用多个冗余站点选择器,并假设正确的父名服务器配置和正常的 DNS 恢复方法在适当的位置,本质上可以从域名系统(DNS)方法获取高可用性。正常 DNS 恢复方法的示例是:重新传输查询和重试区转移。
_ 要使用带有站点选择器的 2 层配置中的分派器除去您网络中的单点故障限制,请参阅高可用性如何实现?。
_ 要确保客户机将同一台服务器用于多个名称服务器请求,请参阅Load Balancer 的亲缘性功能如何工作。
_ 要确保使用设置使用期限(TTL)的标准 DNS 方法的客户机到服务器的亲缘性,请参阅TTL 注意事项。
为了将客户机请求导向域名称解析的不同服务器组,您可以将“规则”添加到您的站点选择器配置中。 要获取更多的信息,请参阅配置基于规则的负载均衡。
_ 要基于客户机源 IP 地址,将客户机导向不同服务器组,请参阅使用基于客户机 IP 地址的规则。
_ 要基于时间,将客户机导向不同服务器组,请参阅使用基于时间的规则。
_ 要基于服务器集的度量负载值,将客户机导向不同服务器组,请参阅:
_ 要将溢出流量导向一组缺省服务器(例如,将响应“站点忙”的一台或多台服务器),请参阅使用总是为真规则。
站点选择器可以在局域网(LAN)或广域网(WAN)中运行。
在 WAN 环境中:
_ 要使用权值循环选择方法对客户机名称服务器请求进行负载均衡,不需要其它配置步骤。
_ 要考虑客户机名称服务器到提供所请求应用程序的服务器(目的地服务器)的网络接近,请参阅使用网络接近功能。
_ 要在服务器标记为运行或当机时生成警告,请参阅使用脚本以生成警告或记录服务器故障。
Cisco CSS 控制器增强 Cisco 交换机的服务器负载均衡能力,使其具有更大的应用程序和系统认识。控制器使用更多敏感应用程序和系统敏感度量来自动计算服务器权值。使用 SNMP,将权值提供给交换机。此交换机在处理客户机请求时使用权值,这导致服务器负载优化和改进故障容错。
要优化跨服务器的负载均衡并确保选择“正确的”服务器,请参阅:
_ 要从 Load Balancer 所在的单独机器运行 Load Balancer 配置,请参阅Load Balancer 的远程管理。
_ Cisco CSS 控制器可以在与您进行负载均衡(无需其它配置步骤)的服务器的同一台机器上运行。
_ 要除去您网络中的单点故障限制,Cisco CSS 交换机和 Cisco CSS 控制器都具有高可用性能力。对于此交换机,高可用性能力可能使用 CSS 冗余协议。对于 Cisco CSS 控制器,使用专用协议,其允许两个控制器的热备用配置。
要获取有关配置高可用性的更多信息,请参阅高可用性。
_ 要分析服务器流量,请参阅使用二进制日志记录分析服务器统计信息。
_ 要在服务器标记为运行或当机时生成警告,请参阅使用脚本以生成警告或记录服务器故障。
Nortel Alteon 控制器增强 Nortel Alteon 交换机的服务器负载均衡能力,使其具有更大的应用程序和系统认识。控制器使用更多敏感应用程序和系统敏感度量来自动计算服务器权值。使用 SNMP,将权值提供给交换机。此交换机在处理客户机请求时使用权值,这导致服务器负载优化和改进故障容错。
要优化跨服务器的负载均衡并确保选择“正确的”服务器,请参阅:
_ 要从 Load Balancer 所在的单独机器运行 Load Balancer 配置,请参阅Load Balancer 的远程管理。
_ Nortel Alteon 控制器可以在与您进行负载均衡(无需其它配置步骤)的服务器的同一台机器上运行。
_ 要除去您网络中的单点故障限制,Nortel Alteon Web 交换机和 Nortel Alteon 控制器具有高可用性能力。对于此交换机,高可用性可能使用冗余协议,以用于服务器的连接和服务。Nortel Alteon 控制器使用专用协议(其允许两个控制器的热备用配置)提供高可用性。
要获取有关配置高可用性的更多信息,请参阅高可用性。
_ 要分析服务器流量,请参阅使用二进制日志记录分析服务器统计信息。
_ 要在服务器标记为运行或当机时生成警告,请参阅使用脚本以生成警告或记录服务器故障。
本章向您说明在 AIX、HP-UX、Linux、Solaris 和 Windows 2000 上 Load Balancer 硬件和软件的需求和安装(使用系统软件包工具)。
重要信息:要获取有关硬件和软件需求的最新信息,请链接到以下 Web 页面:http://www.ibm.com/software/webservers/appserv/doc/latest/prereq.html。
有关使用产品安装程序的安装说明,请参阅《Edge Components 的概念、规划和安装》文档。
记录:
因为某些位于 Load Balancer 机器上的应用程序可能需要 Java 的其它版本,所以当您升级时必需在服务器上安装正确的 Java 版本。安装多个 Java 版本时,要确保 Load Balancer 组件使用正确的版本,执行以下操作:
为您正在升级的 Load Balancer 的每个组件编辑脚本文件。每个组件的脚本文件是:
例如:在 Windows 操作系统上,如果 Java 1.4 安装在 C:\Program Files\IBM\Java14\jre\bin 中,则在脚本文件中更改以下内容,
表 1 表出 Load Balancer 的 installp 映象。
管理(含有消息) | ibmlb.admin.rte ibmlb.msg.language.admin |
基本 | ibmlb.base.rte |
设备驱动程序 | ibmlb.lb.driver |
许可证 | ibmlb.lb.license |
Load Balancer 组件(含有消息) | ibmlb.component.rte ibmlb.msg.language.lb |
文档(含有消息) | ibmlb.doc.rte ibmlb.msg.language.doc |
度量服务器 | ibmlb.ms.rte |
其中 component 可以是:disp(分派器)、cbr(CBR)、ss(站点选择器)、cco(Cisco CSS 控制器)或 nal(Nortel Alteon 控制器)。可选地,选择您要安装的一个或多个组件。
其中 language 可以是:
如果安装了较早版本,则在您安装当前版本之前应该卸载 该副本。首先,确保所有执行程序和服务器停止。然后,要卸载整个产品,请输入 installp -u ibmlb(或以前的名称,如“ibmnd”)。 要卸载特定的文件集,明确地列出它们而不是指定软件包的名称。
安装本产品时,可选择安装下列任何选项(或全部):
遵循这些步骤安装 Load Balancer for AIX:
使用 SMIT:
命令完成时,按完成然后从“退出”菜单中选择退出 Smit 或按 F12。 如果使用 SMITTY,则按 F10 以退出该程序。
使用命令行:
如果从光盘安装,则必须输入下列命令以安装光盘:
mkdir /cdrom mount -v cdrfs -p -r /dev/cd0 /cdrom
请参阅下表以确定输入哪些命令来安装期望的 Load Balancer package for AIX:
管理(含有消息) | installp -acXgd device ibmlb.admin.rte ibmlb.msg.language.admin |
基本 | installp -acXgd device ibmlb.base.rte |
设备驱动程序 | installp -acXgd device ibmlb.lb.driver |
许可证 | installp -acXgd device ibmlb.lb.license |
Load Balancer 组件(带 msgs)。 包含:分派器、CBR、站点选择器、Cisco CSS 控制器和 Nortel Alteon 控制器 | installp -acXgd device ibmlb.component.rte ibmlb.msg.language.lb |
文档(含有消息) | installp -acXgd device ibmlb.doc.rte ibmlb.msg.language.lb |
度量服务器 | installp -acXgd device ibmlb.ms.rte |
其中 device 是:
确保摘要的结果栏中每个正在安装(应用)的 Load Balancer 部件都包含“成功”。当您要安装的所有部件都已成功应用后再继续。
installp -ld device
其中 device 是:
要卸下光盘,输入:
unmount /cdrom
lslpp -h | grep ibmlb
如果您已安装全部产品,此命令返回下列信息:
ibmlb.admin.rte ibmlb.base.rte ibmlb.doc.rte ibmlb.ms.rte ibmlb.msg.language.admin.rte ibmlb.msg.language.doc ibmlb.msg.language.lb.rte ibmlb.lb.driver ibmlb.lb.license ibmlb.<component>.rte
Load Balancer 安装路径包含以下内容:
有关使用远程方法调用(RMI)的 Load Balancer 远程管理, 您需要在客户机上安装管理、基本、组件和许可证软件包。 有关 RMI 的信息,请参阅远程方法调用(RMI)。
需要修订包的最新可用版本 HP-UX 11i Quality Pack(GOLDQPK11i)。可以在 HP Support Plus Web 站点 http://www.software.hp.com/SUPPORT_PLUS/qpk.html 处找到获取最新 Quality Pack 的更多信息和下载说明。
本节说明如何使用产品光盘在 HP-UX 上安装 Load Balancer。
开始安装过程前,确保您具有安装该软件的 root 用户权限。
如果安装了较早版本,则安装当前版本前必需卸载旧版本。首先要确保执行程序和服务器都已停止。然后,要卸载 Load Balancer,请参阅卸载软件包的说明。
表 3 列出了 Load Balancer 的安装软件包的名称以及使用系统的软件包安装工具安装软件包的必需顺序。
表 3. Load Balancer 的 HP-UX 软件包安装的详细信息
软件包描述 | HP-UX 软件包名称 |
基本 | ibmlb.base |
管理 | ibmlb.admin |
Load Balancer 许可证 | ibmlb.lic |
Load Balancer 组件 | ibmlb.component |
文档 | ibmlb.lang |
度量服务器 | ibmlb.ms |
记录:
|
以下过程详细描述了完成此任务必须的步骤。
su - root 密码:password
发出安装命令
swinstall -s /source package_name
其中 source 是软件包的位置的目录,而 package_name 是软件包的名称。
例如,如果您正从 CD 的 root 安装,以下命令安装 Load Balancer(ibmlb.base)的基本软件包
swinstall -s /lb ibmlb.base
发出 swlist 命令列出所有您已经安装的软件包。例如,
swlist -l fileset ibmlb
使用 swremove 命令卸载软件包。应该用与安装时相反的顺序除去软件包。例如,发出以下命令:
swremove ibmlb
要卸载个别的软件包(例如,Cisco CSS 控制器)
swremove ibmlb.cco
下表列出了支持的 Linux 系统。要获取有关硬件和软件先决条件更新信息和其它信息,请参阅以下 Web 页面 http://www.ibm.com/software/webservers/appserv/doc/latest/prereq.html。
操作系统 | Linux for Intel(32 位方式) | Linux for S/390(31 位方式) | Linux for PowerPC(64 位方式) |
---|---|---|---|
Red Hat Enterprise Linux Advanced Server 2.1(2.4 内核) | x |
|
|
SuSE Linux Enterprise Server 8.0(2.4 内核) |
| x | x |
SuSE Linux Enterprise Server 8.0 SP2a(2.4 内核) | x |
|
|
UnitedLinux 1.0 | x | x | x |
UnitedLinux 1.0 SP2a | x |
|
|
本节说明如何使用产品光盘在 Linux 上安装 Load Balancer。
开始安装过程前,确保您具有安装该软件的 root 用户权限。
如果安装了较早版本,则在您安装当前版本之前应该卸载 该副本。首先,确保所有执行程序和服务器停止。然后,输入 rpm -e pkgname 卸载整个产品。卸载时按照软件包安装的逆向顺序进行,以确保最后卸载管理软件包。
要安装 Load Balancer:
安装映象是 eLBLX-version:tar.z 格式的文件。
下列是 RPM 可安装软件包列表。
其中 -
安装软件包的命令应该从与 RPM 文件驻留的相同目录下发出。 发出以下命令安装每个软件包:rpm -i package.rpm。
rpm -i --nodeps package.rpm
rpm -qa | grep ibmlb
安装所有产品后应得到类似以下的列表:
有关使用远程方法调用(RMI)的 Load Balancer 远程管理, 您需要在客户机上安装管理、基本、组件和许可证软件包。 有关 RMI 的信息,请参阅远程方法调用(RMI)。
对于 Solaris 8,如果使用 Edge Components 安装向导,那么链接程序的级别必需是 109147-16 或更高,C++ 共享库级别必须是 108434-8 或更高。
为了最大限度地保持一致性,请从 Sun Microsystems 下载并应用最新的 Solaris 补丁,其网址为 http://sunsolve.sun.com。
本节说明如何使用产品光盘在 Solaris 上安装 Load Balancer。
开始安装过程前,确保您具有安装该软件的 root 用户权限。
如果安装了较早版本,则安装当前版本前必需卸载旧版本。首先,确保您已经停止了所有的执行程序和服务器。然后,要卸载 Load Balancer,输入 pkgrm pkgname。
要安装 Load Balancer:
在命令提示符下,输入 pkgadd -dpathname,其中 pathname 是该软件包所在的光盘驱动器的设备名或硬盘驱动器上的目录名;例如:pkgadd -d /cdrom/cdrom0/。
将给出要安装软件包的列表。它们是:
其中,变量 lang 指以下语言特定的代码之一的替代:deDE、esES、frFR、itIT、jaJP、koKR、ptBR、zhCN、zhTW。对于英语,变量 lang 指 doc 的替代。
如果您要安装所有软件包,简单地输入“all”并按返回。如果要安装部分组件,输入相应的要安装组件的名称,用空格或逗号分隔,然后按返回。系统可能会提示您更改现有目录或文件的许可权。仅按返回,或回答“是”。您需要安装先决条件软件包(因为它按字母次序安装而非先决条件顺序)。如果您回答“全部”,对于所有提示都只回答“是”,安装将成功完成。
所有软件包取决于公共软件包 ibmlbadm。此公用软件包必须与其它软件包一起安装。
例如,如果您仅要安装分派器组件以及文档和度量服务器,则必须安装:ibmlbadm、ibmlbbase、ibmlblic、ibmdisp、ibmlbms 和 ibmlbdoc。
有关使用远程方法调用(RMI)的 Load Balancer 远程管理, 您需要在客户机上安装管理、基本、组件和许可证软件包。 有关 RMI 的信息,请参阅远程方法调用(RMI)。
Load Balancer 组件驻留在 /opt/ibm/edge/lb/servers 安装目录中。
您必须在运行 InstallShield 程序之前,下载 Developer Kit 可安装软件包和运行时环境可安装软件包。(要获取有关运行多个 Java 版本的信息,请参阅注释号 3。)
本节说明如何使用产品光盘在 Windows 2000 或 Windows Server 2003 上安装 Load Balancer。
将给予您要安装软件包的选项。
它们是:
有关使用远程方法调用(RMI)的 Load Balancer 远程管理, 您需要在客户机上安装管理、基本、组件和许可证软件包。 有关 RMI 的信息,请参阅远程方法调用(RMI)。
限制:Load Balancer 的 Windows 版本,无法安装在具有 IBM 防火墙的同一台机器上。
开始安装过程之前,确保您以管理员身份登录,或以拥有管理权限的用户身份登录。
如果安装了较早版本,则在您安装当前版本之前应该卸载 该副本。要使用添加/删除程序卸载,执行下列操作:
要安装 Load Balancer:
E:\setup
Load Balancer 安装路径包含以下内容:
此部分提供有关快速启动配置的信息,计划注意事项,并描述配置 Load Balancer 的分派器组件的方法。它包含以下几章:
此快速入门示例显示如何使用分派器组件的 mac 转发方法来配置三个本地连接的工作站,以负载均衡两台 Web 服务器之间的 Web 流量。 该配置对平衡任何其它 TCP 或无状态的 UDP 应用程序流量本质上是一样的。
mac 转发方法是缺省转发方法,通过此方法,分派器把进入请求负载均衡到服务器,而服务器将这些响应直接返回到客户机。要获取有关分派器的 MAC 转发方法的更多信息,请参阅分派器的 MAC 级别路由(mac 转发方法)。
在快速入门示例中,您需要三个工作站和四个 IP 地址。一个工作站将用作分派器;其它两个工作站将用作 Web 服务器。每个 Web 服务器需要一个 IP 地址。分派器工作站需要两个地址:非转发地址(NFA)和群集地址(将进行负载均衡的地址),您将这些地址提供给客户机以访问您的 Web 站点。
工作站 | 名称 | IP 地址 |
---|---|---|
1 | server1.intersplash.com | 9.47.47.101 |
2 | server2.intersplash.com | 9.47.47.102 |
3 | server3.intersplash.com | 9.47.47.103 |
网络掩码 = 255.255.255.0 |
每个工作站仅包含一个 标准的以太网网络接口卡。
Name= www.Intersplash.com IP=9.47.47.104
添加一个 www.Intersplash.com 别名到 server2.intersplash.com 和 server3.intersplash.com 上的回送接口。
ifconfig lo0 alias www.Intersplash.com netmask 255.255.255.0
ifconfig lo0:1 plumb www.Intersplash.com netmask 255.255.255.0 up
您现在已完成了两个 Web 服务器工作站所要求的全部配置步骤。
有了分派器,您可以使用命令行、配置向导或图形用户界面(GUI)创建配置。
如果您使用命令行,则遵循这些步骤:
dscontrol executor start
dscontrol cluster add www.Intersplash.com
dscontrol port add www.Intersplash.com:80
dscontrol server add www.Intersplash.com:80:server2.intersplash.com
dscontrol server add www.Intersplash.com:80:server3.intersplash.com
dscontrol executor configure www.Intersplash.com
dscontrol manager start
现在分派器将根据服务器性能执行负载均衡。
dscontrol advisor start http 80
现在分派器将确保客户机请求不发送到出故障的 Web 服务器。
现在您具有本地连接的服务器的基本配置已完成。
测试配置是否在工作。
要获取有关使用分派器GUI 的信息,请参阅GUI和附录 A, GUI:一般说明。
要获取有关使用配置向导的信息,请参阅使用配置向导配置。
有许多可配置 Load Balancer 以支持您的站点的方法。如果您的所有客户都与之连接 的站点只有一个主机名,您可以定义服务器的单一群集。对于这些服务器中的每一台,配置 Load Balancer 通信所用的端口。请参阅图 9。
在此分派器组件示例中,一个群集在 www.productworks.com 定义。此群集有两个端口:端 口 80 用于 HTTP,端口 443 用于 SSL。对 http://www.productworks.com(端口 80)请求的客户机转至一台与请求 https://www.productworks.com(端口 443)的客户机不同的服务器。
如果您具有一个很大的站点,此站点具有为所支持的每种协议指定的许多服务器,则另一种配置 Load Balancer 的方法可能比较合适。在这种情况下,您可能希望为每种协议定义具有一个端口但具有许多服务器的群集,如图 10 中所示。
在此分派器组件的示例中,两个群集定义为:www.productworks.com 用于端口 80(HTTP)而 www.testworks.com 用于端口 443(SSL)。
如果您的站点可为多个公司或部门提供内容主机管理,并且每一个主机都用不同的 URL 连接至您的站点,则可能需要第三种方法来配置 Load Balancer。在这种情况下,您可能希望为每个公司或部门定义一个群集,然后定义在此 URL 接收连接的任何端口,如图 11 中所示。
图 11. 配置有 2 个群集,每个群集有 2 个端口的分派器示例
在此分派器组件的示例中,为位于 www.productworks.com 和 www.testworks.com 的每个站点,定义了两个群集,端口 80 用于 HTTP 而端口 23 用于 Telnet。
本章说明安装和配置分派器组件之前网络计划人员应考虑的问题。
本章包含以下几节:
平台要求:
使用管理器是可选的。但是,如果不使用管理器,则根据当前服务器权值,使用加权的循环调度执行负载均衡,并且顾问程序不可用。
分派器还提供不交换协议特定的信息的顾问程序,如报告关于 DB2(R) 服务器的运行状况的 DB2 顾问程序和报告服务器是否响应 ping 的 ping 顾问程序。要获取顾问程序 的完整列表,请参阅顾问程序列表。
您还有写您自己的顾问程序的选项(请参阅创建定制(可定制的)顾问程序)。
使用这些顾问程序是可选的,但建议您使用。
分派器 的三个关键功能部件(执行程序、管理 器和顾问程序)相互作用以平衡和调度服务器间的进入请求。除负载均衡请求外,执行程序还监视新连接、活动连接和处于已完成状态的连接数。执行程序还对已完成连接或复位连接进行垃圾收集,并将此信息提供给管理器。
管理器从执行程序、顾问程序和系统监视程序(如度量服务器)收集信息。根据管理器 接收的信息,它调整如何在每一个端口对服务器进行加权,并将用于它平衡新连接的 新权值发送给予执行程序。
顾问程序监视指定端口上的每个服务器,以确定服务器的响应时间和可用性,然后将此信息发送给管理器。顾问程序还监视服务器是处于运行状态还是已当机。如果不使用管理器和顾问程序,执行程序将根据当前服务器的权值进行 循环调度。
使用分派器,您可以选择在端口级别指定的三种转发方法的其中一种:MAC 转发、NAT/NAPT 转发或 CBR(基于内容路由)转发。
使用分派器的 MAC 转发方法(缺省转发方法),分派器将进入请求负载均衡到所选的服务器,而服务器将响应直接返回到客户机而不涉及分派器。使用此转发方法,分派器仅关注入站客户机到服务器信息流。它无需查看出站的服务器到客户机的信息流。 这一功能显著地减轻了对应用程序的影响并且可提高网络性能。
当使用 dscontrol port add cluster:port method value 命令添加端口时,可以选择此转发方法。缺省转发方法值为 mac。仅当添加端口时您才可指定方法参数。一旦添加端口,您就无法更改转发方法的设置。请参阅dscontrol port - 配置端口,以获取更多信息。
使用分派器的网络地址转换(NAT)或网络地址端口转换(NAPT)能力,除去了用于负载均衡的服务器位于本地连接的网络上的限制。当您希望服务器位于远程位置时,您可使用 NAT 转发方法技术而不是使用 GRE/WAN 封装技术。您还可使用 NAPT 功能访问驻留在每台负载均衡的服务器上 的多个服务器守护程序,其中每个守护程序在唯一的端口上侦听。
您可以按两种不同的方法,使用多个守护程序来配置一台服务器:
此应用程序可很好地与级别较高的应用程序协议(如 HTTP、SSL、IMAP、POP3、NNTP、SMTP、Telnet 等)一起使用。
限制:
您将需要三个 IP 地址用于分派器机器 - nfa、cluster 和 return address。要实现 NAT/NAPT,执行下列操作(另见配置分派器的 nat 或 cbr 转发方法的样本步骤):
dscontrol server add cluster:port:server mapport value returnaddress rtrnaddress router rtraddress
这将把客户机请求的目的地端口号(用于分派器)映射到服务器的端口号(分派器使用它对客户机的请求进行负载均衡)。Mapport 允许 Load Balancer 在一个端口接收客户机的请求,而将它发送到服务器上的不同端口。使用 mapport,您可将客户机的请求负载均衡到可能运行着多个服务器守护程序的服务器。mapport 的缺省值是客户机请求的目的地端口号。
返回地址是您在分派器机器上配置的唯一地址或主机名。当分派器负载均衡客户机的请求到服务器时,它使用返回地址作为它的源地址。这确保了服务器将把信息包返回到分派器机器,而不是直接发送信息包到客户机。(分派器然后将把 IP 信息包转发到客户机。)当添加服务器时您必须指定返回地址值。您无法修改返回地址,除非您除去服务器然后再添加它。返回地址不能与群集、服务器或 NFA 地址相同。
到远程服务器的路由器地址。如果这是本地连接的服务器,则输入服务器地址。
分派器组件允许您为 HTTP(使用“内容”类型规则)和 HTTPS(使用 SSL 会话标识亲缘性)执行基于内容路由,而无需使用高速缓存代理。对于 HTTP 和 HTTPS 流量,分派器组件的 cbr 转发方法可以比需要高速缓存代理的 CBR 组件提供更快速的基于内容路由。
对于 HTTP:分派器的基于内容路由的服务器选择基于 URL 的内容或 HTTP 头。它是使用“内容”类型规则配置的。当配置内容规则时,将搜索字符串“pattern”和服务器集指定给规则。当处理新的进入请求时,此规则将指定的字符串与客户机的 URL 或客户机请求中指定的 HTTP 头进行比较。
如果分派器在客户机请求中发现字符串,分派器将请求转发到规则中一个服务器。然后分派器将响应数据从服务器中继到客户机(“cbr”转发方法)。
如果分派器在客户机请求中未发现字符串,则分派器不从规则中的服务器集选择服务器。
对于 HTTPS(SSL):分派器基于内容的路由根据客户机请求的 SSL 标识会话字段进行负载均衡。使用 SSL,客户机请求包含先前会话的 SSL 会话标识,而服务器维持它们先前 SSL 连接的高速缓存。分派器的 SSL 标识会话亲缘性允许客户机和服务器 使用与服务器的先前连接的安全性参数,建立新连接。通过消除 SSL 安全性参数的重新谈判(如共享密钥和加密算法),服务器节约 CPU 周期并且客户机将获取更快速的响应。为了启用 SSL 会话标识亲缘性:为端口指定的协议类型必须是 SSL,且端口粘性时间 必须设置未非零值。当超过了 stickytime 时,客户机可能会从先前的服务器发送到不同的服务器。
您将需要三个 IP 地址用于分派器机器 - nfa、cluster 和 return address。要实现分派器的基于内容路由(另见配置分派器的 nat 或 cbr 转发方法的样本步骤):
dscontrol server add cluster:port:server mapport value returnaddress rtrnaddress router rtraddress
dscontrol rule 125.22.22.03:80:contentRule1 type content pattern pattern
其中 pattern 指定用于内容类型规则的模式。要获取更多关于内容规则类型的信息,请参阅使用基于请求内容的规则。要获取更多关于 pattern 的有效表达式的信息,请参阅附录 B, 内容规则(模式)语法。
图 12. 使用分派器的 nat 或 cbr 转发方法的示例
您将需要至少三个 IP 地址用于分派器机器。对于图 12,以下是最低限度地配置分派器的 nat 或 cbr 转发方法的必需步骤:
1. 启动执行程序 dscontrol executor start 2. 定义客户机网关 dscontrol executor set clientgateway 1.2.3.5 注:如果您的子网没有本地路由器,则您必须配置一个机器 以执行 IP 转发,并使用它作为客户机网关。查看您的 操作系统文档,以确定如何启用 IP 转发。 3. 定义群集地址 dscontrol cluster add 1.2.3.44 4. 配置群集地址 dscontrol executor configure 1.2.3.44 5. 使用 nat 或 cbr 方法定义端口 dscontrol port add 1.2.3.44:80 method nat 或 dscontrol port add 1.2.3.44:80 method cbr protocol http 6. 在 Load Balancer 上配置别名返回地址(使用以太网卡 0) dscontrol executor configure 10.10.10.99 或使用 ifconfig/dsconfig 命令: AIX:ifconfig en0 alias 10.10.10.99 netmask 255.255.255.0 HP-UX:ifconfig lan0:1 10.10.10.99 netmask 255.255.255.0 up Linux:ifconfig eth0:1 10.10.10.99 netmask 255.255.255.0 up Solaris 8:ifconfig hme0 addif 10.10.10.99 netmask 255.255.255.0 up Windows:dsconfig en0 alias 10.10.10.99 netmask 255.255.255.0 7. 定义后端服务器 dscontrol server add 1.2.3.4:80:192.10.10.10 router 10.10.10.6 returnaddress 10.10.10.99
客户机网关(1.2.3.5)是 Load Balancer 和客户机之间的路由器 1 地址。路由器(10.10.10.6)是 Load Balancer 和后端服务器之间的路由器 2 地址。如果您不确定 clientgateway 或路由器 2 地址,您可以使用带有客户机(或服务器)地址的 traceroute 程序,以确定路由器地址。此程序的实际语法将基于您所使用的操作系统而区别。您应查询您的操作系统文档,以获取有关此程序的更多信息。
如果服务器与 Load Balancer 位于同一子网上(即,使用 traceroute 未返回路由器),则输入服务器的地址作为路由器地址。 路由器地址是步骤 7 中在 Load Balancer 机器上的“server add”命令中使用的地址。
用服务器分区,您可进一步分辨特殊 URL 和它们的特定应用程序。例如,一台 Web 服务器可以服务 JSP 页面、HTML 页面、GIF 文件、数据库请求等。Load Balancer 现在提供将一个群集和端口特定的服务器划分为几个逻辑服务器的能力。这允许您在机器上建议特殊服务以检测 servlet 引擎或数据库请求是更快运行还是根本没有运行。
服务器分区允许 Load Balancer 检测,例如,HTML 服务快速服务页面,但是数据库连接丧失。这允许您分布基于更多小特定服务工作负载的负载,而不是只是广泛的服务器权值。
服务器分区在与 HTTP 和 HTTPS 顾问程序一起使用时可用。例如,当您具有处理 HTML、GIF 和 JSP 页面的 HTML 服务器时,如果您在端口 80 下定义(通同添加)服务器一次,则对于整个 HTTP 服务器,您仅接收到一个负载值。 这可能会使人产生误解,因为 GIF 服务可能在服务器上不起作用。分派器仍将 GIF 页面转发至服务器,但客户机发现一个超时或故障。
如果您在此端口下对服务器定义了三次(例如,ServerHTML、ServerGIF 和 ServerJSP)并对每台逻辑服务器使用不同的字符串定义服务器 advisorrequest 参数,那么您可以查询服务器上特殊服务的运行状况。ServerHTML、ServerGIF 和 ServerJSP 代表已从一台物理服务器分区的三台逻辑服务器。对于 ServerJSP,您可以定义 advisorrequest 字符串,以查询处理 JSP 页面的机器上的服务。对于 ServerGIF,您可以定义 advisorrequest 字符串,以查询 GIF 服务。且对于 ServerHTML,您可以定义 advisorrequest 以查询 HTML 服务。因此,如果客户机没有从 advisorrequest 获取响应,以查询 GIF 服务,则分派器将该逻辑服务器(ServerGIF)标记为当机,而其它两台逻辑服务器可能处于健康状况。分派器不把任何更多的 GIF 转发给物理服务器,但它可仍然将 JSP 和 HTML 请求发送给服务器。
要获取有关 advisorrequest 参数的更多信息,请参阅使用请求/响应(URL)选项配置 HTTP 顾问程序。
在分派器配置中,您可使用 cluster:port:server 层次结构表示物理服务器或逻辑服务器。服务器可以是以符号名或点分十进制为格式的机器(物理服务器)的唯一 IP 地址。或者,如果您定义服务器以代表分区的服务器,那么您必须为物理服务器在 dscontrol server add 命令的 address 参数中提供可解析的服务器地址。请参阅dscontrol server - 配置服务器以获取更多信息。
以下是将物理服务器划分为逻辑服务器以解决不同类型的请求的示例。
Cluster: 1.1.1.1 Port: 80 Server: A (IP address 1.1.1.2) HTML server Server: B (IP address 1.1.1.2) GIF server Server: C (IP address 1.1.1.3) HTML server Server: D (IP address 1.1.1.3) JSP server Server: E (IP address 1.1.1.4) GIF server Server: F (IP address 1.1.1.4) JSP server Rule1: /*.htm Server: A Server: C Rule2: /*.jsp Server: D Server: F Rule3: /*.gif Server: B Server: E
在此示例中,服务器 1.1.1.2 划分成 2 台逻辑服务器:“A”(处理 HTML 请求)和“B”(处理 GIF 请求)。服务器 1.1.1.3 划分成 2 台逻辑服务器:“C”(处理 HTML 请求)和“D”(处理 JSP 请求)。服务器 1.1.1.4 划分成 2 台逻辑服务器:“E”(处理 GIF 请求)和“F”(处理 JSP 请求)。
高可用性功能涉及使用第二台分派器机器。第一台分派器机器如它在单个分派器配置中所做的一样,执行对所有客户机流量的负载均衡。 第二台分派器机器监视第一台分派器机器的“健康状况”,如果它检测到第一台分派器机器失败,则将接管负载均衡任务。
这两台机器都指定了特定的角色,主机器或备份机器。主机器把连接数据不断地发送到备份机器。 当主机器活动(进行负载均衡)时,处于备用状态的备份机器持续进行更新,随时准备在必要时接管。
这两台机器之间的通信会话称为工作频率。工作频率允许每台机器监视另一台机器的健康状况。
如果备份机器检测到活动机器已出现故障,它将接管主机器并开始进行 负载均衡。此时两台机器的状态是相反的:备份机器成为活动的而主机器成为备用的。
在高可用性配置中,主和备份机器必须在同一个子网中,并带有等同的配置。
有关配置高可用性的信息,请参阅高可用性。
相互高可用性功能涉及使用两台分派器机器。 两台机器都活动地执行客户机流量的负载均衡,并两台机器相互提供备份。 在简单高可用性配置中,只有一台机器执行负载均衡任务。 在相互高可用性配置中,两台机器都执行部分客户机流量的负载均衡。
对于相互高可用性,根据群集地址将客户机流量指定到每台分派器机器。 每个群集都可配置它的主分派器机器的 NFA(非转发地址)。 主分派器机器通常执行此群集的负载均衡任务。 如果发生故障,另一台机器将为它自己的群集和发生故障的分派器群集执行负载均衡。
有关具有共享“群集设置 A”和共享“群集设置 B”的相互高可用性配置的说明,请参阅图 14。每个分派器都可活动地路由它的主群集的信息包。 如果任一分派器出了故障,并且无法再活动地路由它的主群集的信息包,则其它分派器会接管它的备份群集的信息包路由。
要获取关于配置高可用性和相互高可用性的信息,请参阅高可用性。
执行本章所述步骤之前,请参阅计划分派器组件。本章阐述了如何为 Load Balancer 的 分派器 组件创建基本配置。
任务 | 描述 | 相关信息 |
---|---|---|
设置分派器机器。 |
设置负载均衡配置。
| 设置分派器机器 |
设置要负载均衡的机器。 | 为回送设备建立别名,检查额外路由,并删除任何额外的路由。 | 为负载均衡设置服务器 |
有四种配置分派器的基本方法:
这是配置分派器最直接的方法。命令参数值必须以英文字符输入。唯一的例外是主机名(用于群集、服务器和高可用性命令)和文件名(用于文件命令)。
要从命令行启动分派器:
您可以通过输入参数的唯一字母使用 dscontrol 命令参数的最小化版本。例如,要获取有关文件保存命令的帮助,您可以输入 dscontrol he f 来替代 dscontrol help file。
要启动命令行界面:发出 dscontrol 以接收 dscontrol 命令提示符。
配置分派器的命令可输入到一个配置脚本文件中,从而使这些命令一起执行。请参阅样本 Load Balancer 配置文件。
dscontrol file appendload myscript
dscontrol file newload myscript
要将当前配置保存到脚本文件(例如,savescript),运行以下命令:
dscontrol file save savescript
此命令将保存配置脚本文件至 ...ibm/edge/lb/servers/configurations/dispatcher 目录。
有关一般说明和图形用户界面(GUI)的示例,请参阅图 42。
要启动 GUI,遵循这些步骤
dsserver
要从 GUI 配置分派器组件,必须先在树结构中选择 分派器。一 旦连接到主机,即可启动执行程序和管理器。您还可以创建包含端口和服务器的群集,并启动该管理器的顾问程序。
GUI 可用于完成 dscontrol 命令将实现的任何任务。例如,要用命令行定义群集,可以输入 dscontrol cluster add cluster 命令。要从 GUI 定义一个群集,右键单击执行程序,然后在弹出菜单左键单击添加群集。在 弹出窗口中输入群集地址,然后单击确定。
已有的分派器配置文件可用主机的弹出菜单中显示的装入新配置(用于完全替代当前配置)和附加到当前(R)配置(用于更新当前配置)选项进行装入。您应当通过主机弹出菜单中显示的将配置文件另存为选项定期将分派器配置保存到文件。文件菜单位于 GUI 的 顶部,使用它可以将当前的主机连接保存到文件,或恢复现有文件中所有 Load Balancer 组件的连接。
配置命令还可以远程运行。要获取更多的信息,请参阅远程方法调用(RMI)。
为了从 GUI 执行命令:从 GUI 树突出显示“主机”节点,并从“主机”弹出菜单中选择发送命令....。.在命令输入字段中,输入您要执行的命令,例如:executor report。当前会话中运行命令的结果和历史记录在提供的窗口中显示。
单击 Load Balancer 窗口右上角的问号图标可访问帮助信息。
要获取有关使用 GUI 的更多信息,请参阅附录 A, GUI:一般说明。
如果您使用配置向导,遵循这些步骤:
dsserver
此向导将指导您逐步创建分派器组件的基本配置。将会向您提问一些有关您的网络的问题。还将指导您设置分派器的群集以负载均衡一组服务器之间的流量。
在设置分派器机器前,您必须是 root 用户(对于 AIX、HP-UX、Linux 或 Solaris)或管理员(Windows)。
仅对于 AIX、HP-UX、Linux 和 Solaris,Load Balancer 可以有并列配置 的服务器。这仅表明,Load Balancer 可以物理驻留在一个负载均衡的服务器上。
对于分派器机器,当使用 mac 转发方法时,您将至少需要两个有效的 IP 地址。对于 cbr 或 nat 转发方法,您将至少需要三个有效的 IP 地址:
该 IP 地址是分派器机器的 主 IP 地址,被称为非转发地址(NFA)。它的缺省值和 hostname 命 令返回的地址相同。用该地址连接至机器用于管理目的,例如,通过 Telnet 进行远程配置或访问 SNMP 子代理程序。如果 分派器 机器已经能对网络中其它机器 进行 ping 操作,则完全不必为设置非转发地址执行更进一步的操作。
群集地址是与主机名关联的 地址(如 www.yourcompany.com)。客户机使用该 IP 地址以连接到群集中的服务器。分派器 对此地址进行负载均衡。
当分派器负载均衡客户机的请求到服务器时,它使用返回地址作为它的源地址。这确保了服务器将把信息包返回到分派器机器,而不是直接将信息包发送到客户机。(分派器然后将把 IP 信息包转发到客户机。)当添加服务器时您必须指定返回地址值。您无法修改返回地址,除非您除去服务器然后再添加它。
仅 Solaris:
例如,如果计划使用两个 100Mbps 以太网适配器,则 ibmnd.conf 文件应包含单 独一行指定 hme 设备。如果您计划使用一个 10Mbps 以太网 适配器和一个 100Mbps 以太网适配器,则在 ibmnd.conf 文件中应有两行:一行 指定 le 设备,一行指定 hme 设备。
ibmnd.conf 文件为 Solaris autopush 命令提供输入并且必须与此命令兼容。
例如,如果群集 X 和 Y 配置为供 ibmnd.conf 中列出的任何适配器上的 CBR 组件使用,当发出 dscontrol executor start 或 dscontrol executor stop 命令时,取消配置群集 X 和 Y。这可能不是期望的结果。 当在 goAliases 脚本中配置群集 X 和群集 Y 时,分派器执行程序启动或停止之后自动配置群集。
仅 Windows:确保没有为 TCP/IP 协议启用 IP 转发。(请参阅 Windows TCP/IP 配置。)
图 15 显示用单个群集、两个端口和三台服务器设置的分派器示例。
要获取该过程中使用的命令的帮助信息,请参阅分派器 和 CBR 的命令参考。
要获取样本配置文件,请参阅样本 Load Balancer 配置文件。
AIX、HP-UX、Linux 或 Solaris:要启动服务器功能,输入 dsserver。
Windows:服务器功能作为服务自动启动。
要启动执行程序功能,输入 dscontrol executor start 命令。此时也可以更改不同的执行程序设置。请参阅分派器 和 CBR 的命令参考。
非转发地址用于连接机器以实现管理目的,如对该机器使用 Telnet 或 SMTP。缺省地址为主机名。
要定义非转发地址,输入 dscontrol executor set nfa IP_address 命令或编辑样本配置文件。IP_address 是符号名或点分十进制地址。
分派器将发送到群集地址的请求平衡至该群集的端口上配置的服务器。
群集可以是符号名、点分十进制地址或定义通配符群集的专用地址 0.0.0.0。 要定义群集,发出命令 dscontrol cluster add。要设置群集选项,发出命令 ndcontrol cluster set,或使用 GUI 来发出命令。通配符群集可用于匹配多个 IP 地址,以便对进入的信息包进行平衡负载。请参阅使用通配符群集来组合服务器配置、使用通配符群集为防火墙负载均衡和将高速缓存代理和通配符群集一起用于透明代理,以获取更多的信息。
一旦定义了群集,通常您必须在分派器机器的一个网络接口卡上 配置群集地址。要这样做,发出命令 dscontrol executor configure cluster_address。它将 查找与群集地址属于相同子网的现有地址的适配器。然后,使用找到的适配器以及该适配器上找到的现有地址的网 络掩码,它将发出该群集地址的操作系统适配器配置命令。例如:
dscontrol executor configure 204.67.172.72
不希望配置群集地址的情况是,以高可用性方式添加到备用服务器的 群集,或添加到充当远程服务器的广域分派器群集。如果以独立方式使用样本 goIdle 脚本,则同样不需要运行 executor configure 命令。 有关 goIdle 脚本的信息,请参阅使用脚本。
极少情况下会有与现有地址子网不匹配的群集地址。在这种情况下,请使用 executor 配置命令的第二种格式并明确提供接口名称和网络掩码。使用 dscontrol executor configure cluster_address interface_name netmask。
以下是几个示例:
dscontrol executor configure 204.67.172.72 en0 255.255.0.0 (AIX) dscontrol executor configure 204.67.172.72 eth0:1 255.255.0.0 (Linux) dscontrol executor configure 204.67.172.72 le0 255.255.0.0 (Solaris 8) dscontrol executor configure 204.67.172.72 en1 255.255.0.0 (Windows)
为了在 Windows 上使用 executor configure 命令的第二种格式,您必须确定要使用的接口名称。
如果机器上只有一个以太网络卡,则接口名称将是 en1。同样地,如果您只有一个令牌环卡,则接口名称将是 tr1。如果您有任一类型的多个卡,则需要确定卡的映射。 使用以下步骤:
在“Network Cards”下面列出了网络接口适配器。单击每个网络接口适配器以 确定它是以太网接口还是令牌环网接口。在描述栏中列出了接口类型。dsconfig 指定的名称映射到接口类型。例如,dsconfig 命令将该列表中的第一个以太网接口指定为 en1 第二个指定为 en2 依次类推;此命令将第一个令牌环接口指定为 tr1,第二个指定为 tr2,依次类推。
获取该映射信息后,可以在网络接口上创建别名指向群集地址。
执行程序配置命令只运行 ifconfig(在 Windows 上是 dsconfig)命令,因此如果愿意仍可使用 ifconfig(dsconfig)命令。
分派器组件提供 dsconfig 命令,供您用命令行方式配置群集别名。dsconfig 命令与 UNIX(R) ifconfig 命令的语法相同。
dsconfig en0 alias 204.67.172.72 netmask 255.255.0.0
要确定接口名称,请使用与执行程序配置命令第二种格式使用的相同技术。
使用绑定特定服务器应用程序 绑定不包含服务器 IP 的 IP 地址列表时,使用 arp publish 命令取代 ifconfig,在 Load Balancer 机器上动态设置 IP 地址。例如:
arp -s <cluster> <Load Balancer MAC address> pub
要定义一个端口,请输入 dscontrol port add cluster: port 命令,编辑样本配置文件或使用 GUI。Cluster 是符号名或点分十进制地址。port 是 用于该协议的端口号。此时还可以更改不同的端口设置。您必须为一个 端口定义和配置所有服务器。请参阅分派器 和 CBR 的命令参考。
端口号 0(零)用于指定通配符端口。 此端口将接受不特定于任何群集上定义端口的端口流量。通配符端口将用于配置任何端口的规则和服务器。如果多个端口有相同的服务器/规则配置,则 可使用此功能。这样,一个端口的流量会影响其它端口上流量的负载均衡决策。有关何时使用通配符端口的更多信息,请参阅使用通配符端口定向到未配置的端口流量。
要定义负载均衡的服务器,请输入 dscontrol server add cluster:port:server 命令,然后编辑样本配置文件或使用 GUI。Cluster 和 server 是符号名或点分十进制地址。port 是 用于该协议的端口号。要执行负载均衡,必须为群集上的端口定义多个服务器。
绑定特殊服务器: 如果分派器组件负载均衡到绑定特定服务器,则必须配置服务器以绑定到群集地址。因为分派器不更改目的地 IP 地址转发信息包,当信 息包到达服务器时,信息包仍将包含作为目的地的群集地址。如果服务器已配置为绑定到 IP 地址而不是群集地址,那么服务器将无法接受到群集的信息包/请求。
在并列配置配置中,并列配置的服务器地址不必与非转发地址(NFA)相同。如果机器定义有多个 IP 地址,则可以使用另一地址。对于分派器组件,必须使用 dscontrol server 命令将布置的服务器定义为 collocated。有关布置服务器的更多信息,请参阅使用并列配置的服务器。
有关 dscontrol server 命令语法的更多信息,请参阅dscontrol server - 配置服务器。
管理器功能改进负载均衡。要启动管理器,输入 dscontrol manager start 命令、编辑样本配置文件或使用 GUI。
顾问程序为管理器提供有关负载均衡的服务器响应请求能力的更多信息。顾问程序特定于一个协议。例如,要启动 HTTP 顾问程序,发出以下命令:
dscontrol advisor start http port要获取顾问程序及其缺省端口的列表,请参阅分派器 和 CBR 的命令参考。要获取每个顾问程序的描述,请参阅顾问程序列表。
如果您启动顾问程序,您可修改给定的重要性比例到负载均衡判定中包含的顾问程序信息。要设置群集比例,发出 dscontrol cluster set cluster proportions 命令。要获取更多的信息,请参阅状态信息的重要性比例。
如果并列配置的服务器(分派器驻留在它负载均衡的同一台机器上)或如果使用 nat 或 cbr 转发方法,请不要执行以下步骤。
使用 MAC 转发方法时,分派器仅和后端服务器一起工作,这些后端服务器允许用附加的 IP 地址配置回送适配器,对于此 IP 地址,后端服务器从不响应 ARP(地址解析协议)请求。遵循此节中的步骤设置负载均衡的服务器。
对于要使用的负载均衡服务器,必须将回送设备(通常称为 lo0)设置(或最好建立别名)到群集地址。使用 MAC 转发方法时,在将 TCP/IP 信息包转发至 TCP 服务器前,分派器 组件不改变信息包内的目的地 IP 地址。通过将回送设备设置到群集地址或建立回送设备到群集地址别名,负载均衡服务器将接收地址为到群集地址的信息包。
如果具有支持网络接口别名的操作系统(例如,AIX、HP-UX、Linux、Solaris 或 Windows),则应该将回送设备的别名设为群集地址。使用支持别名的操作系统的优点是,可以配置负载均衡服务器为多个群集地址服务。
记录:
echo 1 > /proc/sys/net/ipv4/conf/lo/hidden echo 1 > /proc/sys/net/ipv4/conf/all/hidden
如果服务器操作系统不支持别名,必须将回送设备设置到群集地址。
使用表 6 所示的操作系统命令来设置回送设备或为回送设备建立别名。
在某些操作系统上,可能已创建了缺省路由,并且需要除去此路由。
Windows 示例:
Active Routes: Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 9.67.128.1 9.67.133.67 1 9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1 9.67.128.0 255.255.248.0 9.67.133.67 9.67.133.67 1 9.67.133.67 255.255.255.255 127.0.0.1 127.0.0.1 1 9.67.133.158 255.255.255.255 127.0.0.1 127.0.0.1 1 9.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 224.0.0.0 9.67.133.158 9.67.133.158 1 224.0.0.0 224.0.0.0 9.67.133.67 9.67.133.67 1 255.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1
9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1
必须删除额外路由。使用在表 7 显示的不同操作系统的命令 删除额外路由。
示例:按照步骤 2 中“活动路由”示例表所示,删除额外路由,输入:
route delete 9.0.0.0 9.67.133.158
HP-UX
| route delete cluster_address cluster_address |
Windows | route delete network_address
cluster_address(在 MS-DOS 提示符)
|
使用 图 15 中显示的示例,并设置运行 AIX 的服务器,命令为:
route delete -net 204.0.0.0 204.67.172.72
要验证后端服务器是否正确配置,当 Load Balancer 没有运行且未配置群集时,从相同子网的不同机器执行以下步骤:
arp -d cluster
ping cluster
应该没有响应。如果对 ping 有响应,确保您没有 ifconfig 群集地址到接口。确保无机器具有发布到群集地址的 arp 条目。
对于 Linux 内核 V2.2.14 或更高版本,确保 /proc/sys/net/ipv4/conf/lo/hidden 和 /proc/sys/net/ipv4/conf/all/hidden 中有“1”。
arp -a
在命令输出中,您应该看到您的服务器的 MAC 地址。发出命令:
arp -s cluster server_mac_address
arp -d cluster
仅对于 Linux,可能需要特定的补丁(基于 Linux 内核版本)以为回送设备建立别名。
补丁确保仅从具有 ARP 请求中需要的 IP 地址的网络适配器端口发送 ARP 响应。没有此补丁,Linux 将为回送别名发出网络上的 ARP 响应。 当具有不同 IP 地址的多个网络适配器端口在相同的物理网络上时,补丁也校正 ARP 竞争条件。
重要信息:对于 UnitedLinux,您可能不需要安装补丁,因为可能已经提供了补丁。在 UnitedLinux for Intel 上,从 SP2(R) 开始包含补丁。在 UnitedLinux for S390 和 UnitedLinux for PowerPC64 上,UnitedLinux 1.0 SP2 当前没有补丁可用,但可能在以后的 service pack 中提供。
您必须在以下条件下安装补丁:
有关编译和补丁 Linux 内核的说明可从 http://www.tldp.org/HOWTO/Kernel-HOWTO.html 上获取。
要应用 2.4.4 内核补丁(或更高版本),从 www.linuxvirtualserver.org/~julian#hidden 或 http://www.ssi.bg/~ja/ 获取回送补丁。从回送补丁 Web 页面,链接到 "hidden" device flag for Linux 表,该表列出了可用的补丁,并选择对应内核版本的补丁。
当编译内核时,使用缺省配置文件,该文件位于 /usr/src/linux/arch/xxxx/defconfig,其中 xxxx 表示系统体系结构(例如,i386、ia64、ppc64)。缺省配置文件(包装在内核源代码下)可能不适用于系统。执行以下描述的操作来使用安装的内核配置文件:
# cd /usr/src/linux # zcat /proc/config.gz .config # make oldconfig
对于稍后的 2.4.18 内核,当前 Linux 虚拟服务器没有完全的补丁。在修补内核源代码前,对现有的 hidden-2.4.5-1.diff 补丁进行以下修改:
- NET_IPV_CONF_ARPFILTER=13 + NET_IPV_CONF_ARPFILTER=13,+ NET_IPV4_CONF_HIDDEN=14,
更改为
NET_IPV4_CONF_ARPFILTER=13, - NET_IPV4_CONF_MEDIUM_ID=14, + NET_IPV4_CONF_MEDIUM_ID=14, + NET_IPV4_CONF_HIDDEN=15,
- ctl_table devinet_vars [14]; + ctl_table devinet_vars [15];
更改为
- ctl_table devinet_vars [15]; + ctl_table devinet_vars [16];
此部分提供有关快速启动配置的信息,计划注意事项,并描述配置 Load Balancer 的 CBR 组件的方法。它包含以下几章:
此快速入门示例显示如何使用 CBR 和高速缓存代理来配置三个本地连接的工作站,以负载均衡两台 Web 服务器之间的 Web 流量。(为简单起见,此示例描述同一 LAN 段上的服务器,但使用 CBR 对于在同一 LAN 上使用服务器无限制。)
在快速入门示例中,您需要三个工作站和四个 IP 地址。一个工作站将用作 CBR;其它两个工作站将用作 Web 服务器。每个 Web 服务器需要一个 IP 地址。CBR 工作站需要一个实际地址和一个用于负载均衡的地址。
要使用 CBR,高速缓存代理必须安装在同一台服务器上。要为 CBR 配置高速缓存代理,请参阅步骤 1. 配置高速缓存代理以使用 CBR。
工作站 | 名称 | IP 地址 |
---|---|---|
1 | server1.mywebsite.com | 9.27.27.101 |
2 | server2.mywebsite.com | 9.27.27.102 |
3 | server3.mywebsite.com | 9.27.27.103 |
网络掩码 = 255.255.255.0 |
每个工作站仅包含一个 标准的以太网网络接口卡。
Name= www.mywebsite.com IP=9.27.27.104
有了 CBR,您可以使用命令行、配置向导或图形用户界面(GUI)创建配置。对于此快速入门示例,使用命令行演示配置步骤。
从命令提示符,遵循这些步骤:
cbrcontrol executor start
ibmproxy
cbrcontrol cluster add www.mywebsite.com
cbrcontrol port add www.mywebsite.com:80
cbrcontrol server add www.mywebsite.com:80:server2.mywebsite.com
cbrcontrol server add www.mywebsite.com:80:server3.mywebsite.com
cbrcontrol rule add www.mywebsite.com:80:memberRule type content pattern uri=*/member/*
cbrcontrol rule add www.mywebsite.com:80:guestRule type content pattern uri=*/guest/*
在此示例中,使用内容规则,对 Web 站点 www.mywebsite.com 的客户机请求基于其 URI 请求路径中的目录发送到一个不同的服务器。请参阅附录 B, 内容规则(模式)语法,以获取更多信息。
cbrcontrol rule useserver www.mywebsite:80:memberRule server2.mywebsite.com
cbrcontrol rule useserver www.mywebsite:80:guestRule server3.mywebsite.com
现在 CBR 将根据基于内容的规则执行负载均衡。具有其 URL 请求包含 /member/ 的客户机将导向 server2.mywebsite.com。具有其 URL 请求包含 /guest/ 的客户机将导向 server3.mywebsite.com。
cbrcontrol manager start
cbrcontrol advisor start http 80
现在 CBR 将确保客户机请求不发送到发生故障的 Web 服务器。
现在您具有本地连接的服务器的基本配置已完成。
测试配置是否在工作。
cbrcontrol server report www.mywebsite.com:80:两个服务器的“总连接数”列合计应该为“2”。
要获取有关使用 CBR GUI 的信息,请参阅GUI和附录 A, GUI:一般说明。
要获取有关使用 CBR 向导的信息,请参阅配置向导。
有许多可配置 CBR 以支持您的站点的方法。如果您的所有客户都与之连接 的站点只有一个主机名,您可以定义服务器的单一群集。对于这些服务器中的每一台,配置 CBR 通信所用的端口。请参阅图 9。
在此 CBR 组件示例中,一个群集在 www.productworks.com 定义。此群集有两个端口:端 口 80 用于 HTTP,端口 443 用于 SSL。因此,请求至 http://www.productworks.com(端口 80)的客户机与请求至 https://www.productworks.com(端口 443)的客户机将转向不同的服务器。
如果您具有一个很大的站点,此站点具有为所支持的每种协议指定的许多服务器,则另一种配置 CBR 的方法将比较合适。在这种情况下,您可能希望为每种协议定义具有一个端口但具有许多服务器的群集,如图 10 中所示。
图 18. 配置有两个群集(每个群集有一个端口)的 CBR 示例
在此 CBR 组件的示例中,两个群集定义为:www.productworks.com 用于端口 80(HTTP)和 www.testworks.com 用于端口 443(SSL)。
如果您的站点可为多个公司或部门提供内容主机管理,并且每一个主机都用不同的 URL 连接至您的站点,则需要第三种方法来配置 CBR。在这种情况下,您可能希望为每个公司或部门定义一个群集,然后定义在此 URL 接收连接的任何端口,如图 11 中所示。
图 19. 配置有 2 个群集(每个群集有 2 个端口)的 CBR 示例
在此 CBR 组件的示例中,为位于 www.productworks.com 和 www.testworks.comtwo 的每个站点定义两个群集,其端口为 80(HTTP)和 443(SSL)。
本章说明在与高速缓存代理一起安装和配置 CBR 组件之前,网络计划人员应考虑的问题。
本章包含以下几节:
CBR 组件允许您使用高速缓存代理来代理请求,以负载均衡 HTTP 和 SSL 流量。
有了 CBR,您可以对(使用 cbrcontrol 命令)从 CBR 配置文件配置的服务器进行负载均衡,或可以从 WAS 配置文件负载均衡服务器。请参阅负载均衡 WebSphere Application Server(WAS),以获取有关从 WAS 配置文件负载均衡服务器的更多信息。
CBR 的组件结构与分派器很相似。CBR 包括下列功能:
使用管理器是可选的。但是,如果不使用管理器,则根据当前服务器权值,使用加权的循环调度执行负载均衡,并且顾问程序不可用。
CBR 的三个关键功能部件(执行程序、管理器和顾问程序)相互作用以平衡和分派服务器间的进入请求。 连同对请求进行负载均衡,执行程序还监视新连接和活动连接数,并将此信息提供给管理器。
CBR 组件使您能指定一个服务器组,这些服务器将根据与客户机请求内容匹配的正则表达式来处理请求。CBR 组件允许您划分您的站点,以便由不同服务器组处理不同内容或应用程序服务。对于访问站点的客户机,此划分是透明的。
一种划分站点的方法是指定某些服务器只处理 CGI 请求,另一服务器组处理所有其它请求。这将 停止计算密集的 CGI 脚本以免进行处理正常 HTML 信息量的服务器速度放慢,以允许客户机获得更好的整体响应时间。使用此方案,还可为正常请求分配更多功效强大的工作站。客户机响应时间将更加短,且不需要昂贵的服务器升级费用。还可为 CGI 请求分配更多功效强大的工作站。
划分您的站点的另一种可能的方法是,将访问需要注册的页面的客户机指向一个服务器组,而将所有其它请求指向第二个服务器组。这将避免您站点的任一浏览器将可能由已提交注册的客户机所使用的资源滞留。它还允许您使用更多功效强大的工作站为已注册的客户机提供服务。
当然,您还可以组合使用上述两种方法,以获得更大的灵活性并改进服务。
因为 CBR 允许您为每种请求指定多台服务器,所以可为最佳客户机响应对请求进行负载均衡。通过允许为每种内容类型指定多个服务器,您可在工作站或服 务器停机时受到保护。CBR 将识别该故障,并继续将客户机请求负载均衡到集合中的其它服务器。
高速缓存代理 通过其插件接口,与 CBR 进程通信。CBR 必须在本地机器上运行,以使其工作。因为这些是两个单独的进程,多个高速缓存代理的实例可以运行并与单个 CBR 实例一起工作。可以配置此设置,以便分离高速缓存代理间的地址或功能,或通过使一些高速缓存代理处理客户机流量来改进机器的资源使用率。这些代理实例可以在不同端口上侦听,或绑定到同一端口上的唯一 IP 地址,这取决于什么最适合流量要求。
CBR 与高速缓存代理一起测试 HTTP 请求使用指定的规则类型。当高速缓存代理运行时,它接受客户机请求并查询 CBR 组件以获取最佳服务器。根据此查询,CBR 将请求与具有优先次序的规则集进行匹配。当规则匹配时,会从预配置服务器集中选择适当的服务器。最后,CBR 通知 高速缓存代理选择了哪个服务器,并且在那里请求获得代理。
一旦您定义一个群集进行负载均衡,就必须确保所有到该群集的 请求都有一条选择服务器的规则。如果未找到与特定请求匹配的规则,则客户机将从高速缓存代理接收到错误页面。确保所有请求都会与一些规则匹配的最容易的方法是,创建一个优先级号非常高的“总是为真”规则。确保此规则使用的服务器可处理不是明确地由具有优先级编号较低的规则处理的所有请求。(注:首先评估优先级编号较低的规则。)
要获 取更多的信息,请参阅配置基于规则的负载均衡。
具有高速缓存代理的 CBR 可接收从客户机到代理(客户机到代理端)的 SSL 传输,并且支持从代理到 SSL 服务器(代理到服务器端)的传输。通过在 CBR 配置中定义服务器上的 SSL 端口以接收来自客户机的 SSL 请求,使用 CBR 跨安全的(SSL)服务器进行负载均衡,您具有了维护完全安全的站点的能力。
除了为 CBR 进行的其它 ibmproxy.conf 文件更改,另一个配置语句需要添加到 IBM 高速缓存代理的 ibmproxy.conf 以在代理到服务器端启用 SSL 加密。其格式必须为:
proxy uri_pattern url_pattern address
其中,uri_pattern 是一个要匹配的模式(例如:/secure/*),url_pattern 是替换 URL(例如:https://clusterA/secure/*),address 是群集地址(例如:clusterA)。
具有高速缓存代理的 CBR 还可接收来自客户机的 SSL 传输,然后在将 SSL 请求代理到 HTTP 服务器之前,对此请求进行解密。 为了 CBR 支持 SSL 中的客户机到代理和 HTTP 中的代理到服务器,有一个可选关键字 mapport (在 cbrcontrol 服务器命令中)。当您需要表明服务器上的端口不同于客户机的进入端口时,使用此关键字。以下是使用 mapport 关键字添加端口的示例,其中客户机的端口是 443(SSL)而服务器的端口是 80(HTTP):
cbrcontrol server add cluster:443 mapport 80
mapport 的端口号可以是任何正整数值。缺省为客户机进入端口的端口号值。
因为 CBR 必须能够对服务器(在端口 443(SSL)上配置)的 HTTP 请求提出建议,所以一个特殊的顾问程序 ssl2http 将会提供。此顾问程序在端口 443(客户机的进入端口)上启动,并在为此端口配置的服务器上提出建议。如果有两个已配置的群集,并且每个群集都具有端口 443 和配置了不同 mapport 的服务器,则顾问程序的单个实例因此可打开相应 的端口。以下为此配置的一个示例:
Executor Cluster1 Port:443 Server1 mapport 80 Server2 mapport 8080 Cluster2 Port:443 Server3 mapport 80 Server4 mapport 8080 Manager Advisor ssl2http 443
有了 CBR,您可以负载均衡在群集的 WAS(V5)服务器上托管的 Web 应用程序请求。图 20 演示配置设置,期间高可用性分派器机器跨越第一层的 CBR(使用高速缓存代理)和第二层的 WebSphere Application Server(以及到 Web HTTP 服务器)进行负载均衡。
CBR 允许有状态及无状态的请求使用 WAS 亲缘性格式路由到正确的 WAS 服务器。通过将 WAS HTTP 插件配置文件(具有缺省文件名 plugin-cfg.xml)自动映射到 CBR 配置来处理配置。您可以使用 cbrcontrol file newload 命令装入 WAS HTTP 插件配置文件。此命令将 WAS 配置文件映射到 CBR 配置。要保存此配置文件,请使用 cbrcontrol file save 命令。
一旦 Load Balancer 装入插件配置文件,并映射到 CBR 配置,建议如果您需要更改 WAS 群集配置,则应重新装入更新的 WAS HTTP 插件配置文件。使用 newload 命令重新装入是更新 WAS 群集配置的首选方法,此方法胜于使用命令行或 GUI 将服务器添加到 WAS 规则来更新配置。
作为将 WAS 群集配置映射到 CBR 配置的一部分,与从 WAS 插件配置文件创建的规则关联的所有规则和服务器由以下信息来标识其源:
位于后端 WAS 机器的 WLMServlet 将执行当机服务器检测,并将服务器权值信息提供给 Load Balancer 的 WLMServlet 顾问程序。 只有 WLMServlet 顾问程序可以建议服务器配置为属于 WAS 群集。WLMServlet 不必驻留于 WAS 机器。如果 WLMServlet 不存在,则服务器权值缺省为 WAS 插件配置文件中指定的权值。
执行本章所述步骤之前,请参阅计划基于内容路由组件。本章阐述了如何为 Load Balancer 的 CBR 组件创建一个基本配置。
任务 | 描述 | 相关信息 |
---|---|---|
设置 CBR 机器。 | 查找要求。 | 设置 CBR 机器 |
设置要负载均衡的机器。 | 设置负载均衡配置。 | 步骤 7. 定义负载均衡服务器 |
要创建 Load Balancer 的 CBR 组件的基本配置,有四种基本方法:
要使用 CBR,必须已安装高速缓存代理。
这是配置 CBR 最直接的方法。命令参数值必须以英文字符输入。只有主机名(例如,在群集和服务器命令中使用的)和文件名例外。
要从命令行启动 CBR:
您可输入 cbrcontrol 命令参数的缩写版本。仅需输入参数特有的字母。例如,要获得关于文件保存命令的帮助,可以输入 cbrcontrol he f 来替代 cbrcontrol help file。
启动命令行界面:发出 cbrcontrol 以接收 cbrcontrol 命令提示符。
要结束命令行界面:发出 exit 或 quit。
记录:
( ) 左、右括号
& & 号
| 竖线
! 感叹号
* 星号
操作系统的 shell 可以将这些解释为特殊字符,并在 cbrcontrol 评估它们之前,将其转换为备用文本。
以上列出的特殊字符是 cbrcontrol rule add 命令上的可选字符,为内容规则指定模式时使用它们。例如,仅当使用 cbrcontrol>> 提示符时以下命令可能有效。
rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern client=181.0.153.222&uri=/nipoek/*
对于在操作系统提示符下工作的这个相同的命令,模式必须加上双引号(""),按如下所示:
cbrcontrol rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern "client=181.0.153.222&uri=/nipoek/*"
如果不使用双引号,当规则保存到 CBR 时某些模式可能被截断。注意当使用 cbrcontrol>> 命令提示符时不支持双引号。
可将配置 CBR 的命令输入一个配置脚本文件,并一起执行。
cbrcontrol file appendload myscript
cbrcontrol file newload myscript
要将当前配置保存到脚本文件(例如,savescript),运行以下命令:
cbrcontrol file save savescript
此命令将保存配置脚本文件至 ...ibm/edge/lb/servers/configurations/cbr 目录。
有关一般说明和图形用户界面(GUI)的示例,请参阅图 42。
要启动 GUI,遵循这些步骤
要从 GUI 配置 CBR 组件,必须先在树结构中选择基于内容路由。一旦连接到主机,即可启动管理器。您还可以创建包含端口和服务器的群集,并启动该管理器的顾问程序。
使用 GUI 可以完成 cbrcontrol 命令能完成的任何操作。例如,要用命令行定义群集,可以输入 cbrcontrol cluster add cluster 命令。要从 GUI 定义一个群集,右键单击执行程序,然后在弹出菜单左键单击添加群集。在弹出窗口中输入群集地址,然后单击确定。
已有的 CBR 配置文件可用主机弹出菜单中显示的装入新配置(用于完全替代当前配置)和附加到当前配置(用于更新当前配置)选项进行装入。您应该使用同样在主机弹出菜单中显示的将配置文件另存为选项,定期将 CBR 配置保存到文件。文件菜单位于 GUI 的顶部,使用它可以将当前的主机连接保存到文件,或恢复现有文件中所有 Load Balancer 组件的连接。
单击 Load Balancer 窗口右上角的问号图标可访问帮助信息。
为了从 GUI 执行命令:从 GUI 树突出显示“主机”节点,并从“主机”弹出菜单中选择发送命令...。在命令输入字段中,输入您要执行的命令,例如:executor report。在当前会话中运行的命令的结果和历史出现在提供的窗口中。
要获取有关使用 GUI 的更多信息,请参阅附录 A, GUI:一般说明。
如果您使用配置向导,遵循这些步骤:
通过发出 cbrwizard,从命令提示符启动向导。或者从 GUI 上的 CBR 组件菜单中选择“配置向导”。
对于 AIX、HP-UX、Linux 或 Solaris:要启动高速缓存代理,输入 ibmproxy
对于 Windows:要启动高速缓存代理,转至“服务”面板:开始 > 设置(对于 Windows 2000)> 控制面板 > 管理工具 > 服务
CBR 向导将逐步引导您创建 CBR 组件的基本配置。它将询问关于网络的问题,并指导设置一个群集,使 CBR 能在一组服务器间负载均衡流量。
在设置 CBR 机器前,您必须是 root 用户(对于 AIX、HP-UX、Linux 或 Solaris)或管理员(Windows)。
对于要设置的每个服务器群集,都需要一个 IP 地址。群集地址是与主 机名关联的地址(如 www.yourcompany.com)。客户机使用该 IP 地址以连接到群集中的服务器。要特别注意的是,该地址可以在客户机的 URL 请求中 找到。到同一群集地址的所有请求都由 CBR 进行负载均衡。
仅对于 Solaris:使用 CBR 之前,必须为 IPC(进程间通信)修改系统缺省值。共享内存段的最大大小和信号量标识数需要增加。要调整您的系统以支持 CBR,在您的系统上编辑 /etc/system 文件,来添加下列语句然后重新引导:
set shmsys:shminfo_shmmax=0x02000000 set semsys:seminfo_semmap=750 set semsys:seminfo_semmni=30 set semsys:seminfo_semmns=750 set semsys:seminfo_semmnu=30 set semsys:seminfo_semume=30
如果您不把共享内存段增加至上述所示的值,cbrcontrol executor start 命令将失败。
要使用 CBR,必须已安装高速缓存代理。
您必须对高速缓存代理配置文件(ibmproxy.conf)作以下修改:
确保进入 URL 伪指令 CacheByIncomingUrl 是“off”(缺省)。
在配置文件的映射规则节中,对每个群集添加一个类似于下列的映射规则:
Proxy /* http://cluster.domain.com/* cluster.domain.com
必须为 CBR 插件编辑四个条目:
以下为每个操作系统列出具体的配置文件附加部分。
图 21. AIX、Linux 和 Solaris 的 CBR 配置文件
ServerInit /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndServerInit PostAuth /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndPostAuth PostExit /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndPostExit ServerTerm /opt/ibm/edge/lb/servers/lib/libndcbr.so:ndServerTerm
ServerInit /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndServerInit PostAuth /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndPostAuth PostExit /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndPostExit ServerTerm /opt/ibm/edge/lb/servers/lib/libndcbr.sl:ndServerTerm
ServerInit C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndServerInit PostAuth C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndPostAuth PostExit C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndPostExit ServerTerm C:\Program Files\IBM\edge\lb\servers\lib\libndcbr.dll:ndServerTerm
要启动 CBR 服务器功能,在命令行上输入 cbrserver。
缺省配置文件(default.cfg) 在启动 cbrserver 时自动装入。如果您决定在 default.cfg 中保存 CBR 配置,那么下次 cbrserver 启动时将自动装入此文件中保存过的所有信息。
要启动执行程序功能,输入 cbrcontrol executor start 命令。此时也可以更改不同的执行程序设置。请参阅dscontrol executor - 控制执行程序。
CBR 将发往群集的请求平衡至该群集端口上配置的相应服务器。
群集是位于 URL 主机部分的符号名,且应匹配在 ibmproxy.conf 文件的代理语句中使用的名称。
要定义群集,发出以下命令:
cbrcontrol cluster add cluster
要设置群集选项,发出以下命令:
cbrcontrol cluster set cluster option value
要获取更多的信息,请参阅分派器 和 CBR 的命令参考。
如果您正在运行作为逆向代理配置的高速缓存,当为多个 Web 站点负载均衡时,您必须将每个 Web 站点的群集地址添加到 Load Balancer 框的网络接口卡的至少一个卡中。 否则,可以省略此步骤。
对于 AIX、HP-UX、Linux 或 Solaris:要将群集地址添加到网络接口,请使用 ifconfig 命令。为您的操作系统使用命令,如表 9 中所示。
AIX | ifconfig interface_name alias cluster_address netmask netmask |
HP-UX | ifconfig lan0:1 cluster_address netmask netmask up |
Linux | ifconfig interface_name cluster_address netmask netmask up |
Solaris 8 和 Solaris 9 | ifconfig addif interface_name cluster_address netmask netmask up |
对于 Windows 2000:要将群集地址添加到网络接口中,执行下列操作:
对于 Windows 2003:要将群集地址添加到网络接口中,执行下列操作:
端口号指服务器应用程序正在侦听所在的端口。对于使用运行 HTTP 流量的高速缓存代理的 CBR,通常是端口 80。
要为先前步骤中定义的群集定义端口,发出下列命令:
cbrcontrol port add cluster:port
要设置端口选项,发出以下命令:
cbrcontrol port set cluster:port option value
要获取更多的信息,请参阅分派器 和 CBR 的命令参考。
服务器是运行希望负载均衡的应用程序的机器。server 是服务器的符号名称或者点分十进制地址。要定义群集和端口的服务器,发出以下命令:
cbrcontrol server add cluster:port:server
在群集上,必须为每个端口定义多个服务器,以便执行负载均衡。
这是配置 CBR 和高速缓存代理的关键步骤。规则定义如何区分 URL 请求并将其发送到相应的服务器组中的一台服务器。CBR 使用的特殊规则称为内容规则。要定义内容规则,发出以下命令:
cbrcontrol rule add cluster:port:rule type content pattern pattern
值 pattern 是将用于比较每个客户机请求中的 URL 的正则表达式。有关配置模式的更多信息,请参阅附录 B, 内容规则(模式)语法。
其它一些分派器中定义的规则类型也可以用于 CBR。要获取更多的信息,请参阅配置基于规则的负载均衡。
当客户机请求与一条规则匹配时,系统查询服务器规则集并 确定最佳服务器。此规则的服务器集合是该端口中定义的服务器的子 集。要将服务器添加到规则的服务器集合,发出以下命令:
cbrcontrol rule useserver cluster:port:rule server
管理器功能改进负载均衡。要启动管理器,发出以下命令:
cbrcontrol manager start
顾问程序为管理器提供有关负载均衡服务器响应请求能力的更多信息。顾问程序特定于一个协议。例如,要启动 HTTP 顾问程序,发出以下命令:
cbrcontrol advisor start http port
如果您启动顾问程序,您可修改给定的重要性比例到负载均衡判定中包含的顾问程序信息。要设置群集比例,发出 cbrcontrol cluster set cluster proportions 命令。要获取更多的信息,请参阅状态信息的重要性比例。
/opt/ibm/edge/lb/servers/lib
/opt/ibm/edge/lb/servers/lib
C:\Program Files\IBM\edge\lb\servers\lib
在新环境中,启动高速缓存代理:从命令提示符,发出 ibmproxy
此部分提供有关快速启动配置的信息,计划注意事项,并描述配置 Load Balancer 的站点选择器组件的方法。它包含以下几章:
此快速入门示例显示如何使用站点选择器创建站点名配置,以基于用于客户机请求的域名对一组服务器间的流量进行负载均衡。
对于此快速入门配置示例,您将需要以下内容:
对于此快速入门示例,公司的站点域是 mywebshop.com。 由于站点选择器将被负载均衡到此域内的多个 URL 或站点,您需要定义子域(apps.mywebshop.com)。站点选择器授权给 apps.mywebservice.com 子域。子域 apps.mywebshop.com 将包含以下站点名:marketing.apps.mywebshop.com 和 developer.apps.mywebshop.com。
apps.mywebshop.com. IN NS siteselector.mywebshop.com
有了站点选择器,您可以使用命令行、配置向导或图形用户界面(GUI)创建配置。 对于此快速入门示例,使用命令行演示配置步骤。
从命令提示符,遵循这些步骤:
sscontrol sitename add marketing.apps.mywebshop.com
sscontrol sitename add developer.apps.mywebshop.com
sscontrol server add marketing.apps.mywebshop.com:server1+server2
sscontrol server add developer.apps.mywebshop.com:server3+server4
sscontrol manager start
sscontrol advisor start http marketing.apps.mywebshop.com:80
sscontrol advisor start ftp developer.apps.mywebshop.com:21
现在,站点选择器将确保客户机请求不发送到发生故障的服务器。
sscontrol nameserver start
现在,您的基本站点选择器配置完成。
测试配置是否在工作。
sscontrol server status marketing.apps.mywebshop.com:
sscontrol server status developer.apps.mywebshop.com:
每台服务器的总命中条目应添加到 ping 和应用程序请求中。
要获取有关使用站点选择器 GUI 的信息,请参阅GUI和附录 A, GUI:一般说明。
要获取有关使用站点选择器向导的信息,请参阅配置向导。
本章说明安装和配置站点选择器组件之前网络计划人员应考虑的问题。
本章包含以下几节:
站点选择器与域名服务器一起使用集中的测量和权值在服务器组中进行负载均衡。您可创建站点配置,以使您能根据用于客户机请求的域名对服务器组中的流量进行负载均衡。
当在您的 DNS 环境中设置站点选择器的子域时,站点选择器应当在其自己的子域中具有权限。例如(请参阅图 25),已为您的公司分配了 company.com 域上的权限。 而且在这个公司中还有几个子域。那么当 DNS 服务器仍具有 atlanta.company.com 和 boston.company.com 的权限时,站点选择器具有 siteload.company.com 的权限。
为了公司的名称服务器可识别具有 siteload 子域权限的站点选择器,需要将该名称服务器条目添加到其命名的数据文件中。例如,在 AIX 上,名称服务器条目看上去类似于下列内容:
siteload.company.com. IN NS siteselector.company.com.
其中,siteselector.company.com 是站点选择器机器的主机名。等价条目需要在其它任何命名服务器文件中产生,以供 DNS 服务器使用。
客户机将解析域名的请求提交到网络内的名称服务器。名称服务器将请求转发到站点选择器机器。然后站点选择器将域名解析为已在此站点名下配置的服务器中的其中一台服务器的 IP 地址。站点选择器将所选服务器的 IP 地址返回给名称服务器。名称服务器返回 IP 地址给客户机。(站点选择器担当非递归(叶节点)名称服务器,并且如果它未解析域名请求,则将返回一个错误。)
请参阅图 5,此图说明了在一个站点中,站点选择器用于与 DNS 系统一起跨本地和远程服务器进行负载均衡。
站点选择器包含下列功能:
使用管理器是可选的。但是,如果不使用管理器,则根据当前服务器权值,使用加权的循环调度执行负载均衡,并且顾问程序不可用。
使用度量服务器,站点选择器可监视服务器上的活动级别,检测服务器的负载何时最小并检测出故障的服务器。 负载是服务器工作强度的度量标准。系统站点选择器管理员可控制用于测量负载的测量类型。可配置站点选择器以适应您的环境,配置时应考虑诸如访问频率、用户总数及访问类型(例如,短时间查询、长时间运行的查询或大量使用 CPU 的负载)等因素。
负载均衡基于服务器权值。对于站点选择器,有四个管理器用于确定权值的比例:
CPU 和内存值都是由度量服务器提供的。因此,建议与站点选择器一起使用度量服务器。
请参阅度量服务器,以获取更多信息。
站点选择器的四个关键功能(名称服务器、管理器、度量服务器和顾问程序)相互作用以平衡和解析服务器之间的进入请求。
使用基于 DNS 的负载均衡要求启用名称解析的高速缓存。TTL(使用期限)值确定了基于 DNS 的负载均衡的有效性。 TTL 确定另一个名称服务器多久将高速缓存解析的响应。小 TTL 值允许更快地了解服务器或网络负载中的细微更改。 然而,禁用高速缓存要求客户机与每个名称解析请求的授权名称服务器联系,这样就可能增加客户机地等待时间。 选择 TTL 值时,仔细考虑禁用高速缓存对环境产生的影响。同时知道基于 DNS 的负载均衡可能是由名称解析的客户机端高速缓存限制的。
TTL 可使用 sscontrol sitename [add | set] 命令进行配置。要获取更多的信息,请参阅sscontrol sitename - 配置站点名。
网络接近是对于请求客户机的每个服务器接近性的计算。要确定网络接近,度量服务器代理程序(必须驻留在每个负载均衡的服务器上)发送 ping 到客户机 IP 地址,并将响应时间返回给站点选择器。站点选择器将接近响应用于负载均衡决定中。 站点选择器将网络接近响应值与来自管理器的权值组合,以创建服务器的最终组合权值。
与站点选择器一起使用网络接近功能是可选的。
站点选择器提供每一站点名可设置的下列网络接近选项:
如果设置为是,则度量服务器 ping 客户机以获取接近响应时间。名称服务器等待所有度量服务器响应或发生超时。然后,对于每个服务器,名称服务器将接近 响应时间与管理器计算的权值组合,以创建每个服务器的“组合权值”值。站点选择器将向客户机提供具有最佳组合权值的服务器 IP 地址。(预期多数客户机名称服务器具有 5 秒超时。在超出超时之前,站点选择器尝试响应。)
如果设置为否,则将根据当前管理器权值向客户机提供名称解析。然后,度量服务器 ping 客户机以获取接近响应 时间。名称服务器高速缓存它从度量服务器接收的响应时间。当客户机返回第二个请求时,名称服务器将当前管理器权值与每个服务器的高速缓存 ping 响应值组合,以便获得具有最佳“组合权值”的服务器。站点选择器将此服务器的 IP 地址返回给客户机,以用于客户机的第二个请求。
网络接近选项可在 sscontrol sitename [add | set] 命令上设置。请参阅站点选择器的命令参考,以获取更多信息。
执行本章所述步骤之前,请参阅计划站点选择器组件。本章阐述了如何为 Load Balancer 的站点选择器组件创建基本配置。
任务 | 描述 | 相关信息 |
---|---|---|
设置站点选择器机器。 | 查找要求。 | 设置站点选择器机器 |
设置要负载均衡的机器。 | 设置负载均衡配置。 | 步骤 4. 定义负载均衡服务器 |
要创建 Load Balancer 的站点选择器组件的基本配置,有四种基本方法可以配置站点选择器组件:
这是配置站点选择器的最直接方法。命令参数值必须以英文字符输入。唯一的例外是主机名(例如,用于站点名称和服务器命令中)和文件名。
要从命令行启动站点选择器:
您可以输入 sscontrol 命令参数的最小化版本。仅需输入参数特有的字母。例如,要获取文件保存命令的帮助,可以输入 sscontrol he f 而不是 sscontrol help file。
要启动命令行界面:发出 sscontrol 以接收 sscontrol 命令提示符。
要结束命令行界面:发出 exit 或 quit。
配置站点选择器的命令可以输入到一个配置脚本文件中并一起执行。
sscontrol file appendload myscript
sscontrol file newload myscript
要将当前配置保存到脚本文件(例如,savescript),运行以下命令:
sscontrol file save savescript
此命令将保存配置脚本文件至 ...ibm/edge/lb/servers/configurations/ss 目录。
有关一般说明和 GUI 的示例,请参阅图 42。
要启动 GUI,遵循这些步骤
要从 GUI 配置站点选择器组件,必须首先在树结构中选择站点选择器。一旦连接到主机,即可启动管理器。您也可以创建包含端口和服务器的站点名称,并启动该管理器的顾问程序。
GUI 可用于完成 sscontrol 命令将实现的任何任务。例如,要使用命令行定义站点名称,您可以输入 sscontrol sitename add sitename 命令。要从 GUI 定义站点名,右键单击名称服务器,然后在弹出菜单中,左键单击添加站点名。在弹出窗口中输入站点名称,然后单击确定。
已有站点选择器配置文件可以使用主机弹出菜单中的装入新配置(完全替换当前配置)和附加到当前配置(更新当前配置)选项来装入。您应该定期地将站点选择器配置保存到文件,使用主机弹出菜单中的保存配置文件为选项。文件菜单位于 GUI 的顶部,使用它可以将当前的主机连接保存到文件,或恢复现有文件中所有 Load Balancer 组件的连接。
为了从 GUI 执行命令:从 GUI 树突出显示“主机”节点,并从“主机”弹出菜单中选择发送命令....。.在命令输入字段中,输入您要执行的命令,例如:nameserver status。在当前会话中运行的命令的结果和历史出现在提供的窗口中。
单击 Load Balancer 窗口右上角的问号图标可访问帮助信息。
要获取有关使用 GUI 的更多信息,请参阅附录 A, GUI:一般说明。
如果您使用配置向导,遵循这些步骤:
ssserver
您可以通过在命令提示符下发出 sswizard 来启动向导。或,从 GUI 中的站点选择器组件菜单中选择“配置向导”。
站点选择器向导将逐步引导您创建站点选择器组件的基本配置的过程。当您设置使站点选择器能在一组服务器间负载均衡流量的站点名称时,它将询问关于您网络的问题并指导您。
在设置站点选择器机器前,您必须是 root 用户(对于 AIX、HP-UX、Linux 或 Solaris)或管理员(对于 Windows)。
您将需要一个不可解析的 DNS 主机名,以用作您设置的一组服务器的站点名称。站点名称是客户机用于访问您的站点(例如,www.yourcompany.com)的名称。站点选择器将使用 DNS 为此站点名称在一组服务器之间负载均衡流量。
要启动站点选择器服务器功能,在命令行上输入 ssserver。
要启动名称服务器,输入 sscontrol nameserver start 命令。
可选地,使用 bindaddress 关键字仅绑定到指定的地址来启动名称服务器。
站点选择器将发送到站点名的请求平衡到其配置的相应服务器。
站点名是客户机将请求的不可解析的主机名。站点名必须是全限定域名(例如,www.dnsdownload.com)。当客户机请求此站点名时,将返回与站点名关联的一个服务器 IP 地址。
要定义站点名,发出下列命令:
sscontrol sitename add sitename
要设置站点名选项,发出下列命令:
sscontrol sitename set sitename option value
要获取更多的信息,请参阅站点选择器的命令参考。
服务器是运行希望负载均衡的应用程序的机器。server 是服务器的符号名称或者点分十进制地址。要从步骤 3 定义站点名上的服务器,发出下列命令:
sscontrol server add sitename:server
您必须在站点名称下定义多个服务器,以执行负载均衡。
管理器功能改进负载均衡。在启动管理器功能之前,确保度量服务器已安装在所有的负载均衡机器上。
要启动管理器,发出以下命令:
sscontrol manager start
顾问程序为管理器提供有关负载均衡服务器响应请求能力的更多信息。顾问程序特定于一个协议。Load Balancer 提供许多顾问程序。例如,要启动特定站点名称的 HTTP 顾问程序,发出以下命令:
sscontrol advisor start http sitename:port
请参阅度量服务器,以获取使用系统度量和度量服务器的信息。
如果您启动顾问程序,您可以修改包含在负载均衡决策中的给予顾问程序(端口)信息的重要比例。 要设置站点名比例,发出 sscontrol sitename set sitename proportions 命令。要获取更多的信息,请参阅状态信息的重要性比例。
建议使用带有站点选择器组件的度量服务器。 请参阅度量服务器,以获取在站点选择器负载均衡的所有服务器上设置度量服务器的信息。
此部分提供有关快速启动配置的信息,计划注意事项,并描述配置 Load Balancer 的 Cisco CSS 控制器组件的方法。它包含以下几章:
此快速入门示例显示如何使用 Cisco CSS 控制器组件创建配置。Cisco CSS 控制器提供服务器权值信息,其辅助 Cisco CSS 交换机确定用于负载均衡决策的最佳服务器选择。
对于此快速入门配置示例,您将需要以下内容:
确保在开始配置此示例之前完成以下步骤:
有了 Cisco CSS 控制器,您可以使用命令行或图形用户界面(GUI)创建配置。对于此快速入门示例,使用命令行演示配置步骤。
从命令提示符,遵循这些步骤:
ccocontrol consultant add SwConsultant-1 address 9.17.32.50 community public
这将检查与 Cisco CSS 交换机的连接性,并验证 SNMP 读-写共用名是否在正常工作。
ccocontrol ownercontent add SwConsultant-1:OwnerContent-1 ownername OwnerName-1 contentrule ContentRule-1
这些值必须匹配 Cisco CSS 交换机上的相应属性。
现在,Cisco CSS 控制器可以在 SNMP 上与交换机通信,并从此交换机获取必需的配置信息。此步骤后,您应查看 Cisco CSS 控制器中有关在 Cisco CSS 交换机上为指定的 ownercontent 配置哪些服务的信息。
ccocontrol ownercontent metrics SwConsultant-1:OwnerContent-1 activeconn 45 connrate 45 http 10
此命令将配置您要从服务收集的度量信息和比例,以用于权值计算。所有度量的总比例必须等于 100。
ccocontrol consultant start SwConsultant-1
使用此命令,所有度量收集器将启动,并且服务权值计算将开始。Cisco CSS 控制器通过 SNMP,使其服务权值计算结果与 Cisco CSS 交换机通信。
现在,您的基本 Cisco CSS 控制器配置完成。
测试配置是否在工作。
要获取有关使用 Cisco CCS 控制器 GUI 的信息,请参阅GUI和附录 A, GUI:一般说明。
本章描述安装和配置 Cisco CSS 控制器组件之前网络计划人员应考虑的问题。
本章包含:
Cisco CSS 控制器管理一组交换机咨询器。每个咨询器确定由单个交换机负载均衡的服务的权值。 配置咨询器提供权值的交换机,以用于内容负载均衡。 咨询器使用 SNMP 协议,以将计算后的权值发送到交换机。当负载均衡算法是加权循环法时,此交换机使用这些权值,为其正在进行负载均衡的内容规则选择一台服务器。 要确定权值,咨询器使用以下一条或多条信息:
请参阅 Cisco Content Services Switch Getting Started Guide,以获取有关内容负载均衡的描述以及配置交换机的详细信息。
要使咨询器获取有关它确定服务权值所需的信息,您必须具有:
如图 27 中所述,我们建议咨询器在其提供权值的一个或多个交换机之后连接到网络。某些参数必须在交换机上配置,而某些必须在控制器上配置,以在控制器、交换机和服务之间启用连接性。
在图 27 中:
请参阅 Cisco Content Services Switch Getting Started Guide,以获取有关配置 VLAN 以及交换机上的 IP 路由的详细信息。
您可以使用以下任何界面管理 Cisco CSS 控制器:
对于远程管理,在图 28 中:
请参阅 Cisco Content Services Switch Getting Started Guide,以获取详细信息。
图 28. 用户界面在交换机之前,在交换机之后配置的咨询器(使用可选高可用性伙伴)的示例
控制器高可用性增强 Load Balancer 的容错能力。设计时注意信息包转发高可用性,控制器高可用性包含两个同步运行的控制器,一个具有主角色,另一个具有次角色。
以等同的交换机信息配置每个控制器,并且在同一时刻只有一个控制器活动。这意味着,由高可用性逻辑所决定,只有活动控制器用新权值计算和更新交换机。
控制器高可用性在您配置的地址和端口上使用简单用户数据报协议(UDP)信息包,以与其伙伴进行通信。这些信息包用于在两个控制器间交换信息,这些信息属于高可用性(到达信息),并用于确定伙伴控制器可用性(工作频率)。如果备用控制器确定活动控制器由于任何原因已导致失败,则备用控制器从失败的活动控制器接管。然后,备用控制器成为活动控制器,并开始使用新权值计算和更新交换机。
除了伙伴可用性以外,到达目标还可以配置为高可用性。控制器高可用性使用到达信息确定哪个控制器是活动的以及哪个控制器是备用的。活动控制器是可以 ping 更多目标并可从其伙伴到达的控制器。
请参阅高可用性,以获取更多信息。
如果咨询器确定服务不可用,它将暂挂交换机上的服务,以避免交换机在负载均衡请求时考虑到此服务器。当服务再次可用时,控制器激活交换机上的服务,以便考虑对请求进行负载均衡。
Cisco CSS 控制器将条目公布到以下日志中:
这些日志位于以下目录:
在每个日志中,您可以设置日志大小和日志记录级别。请参阅使用 Load Balancer 日志,以获取更多信息。
执行本章所述步骤之前,请参阅计划 Cisco CSS 控制器组件。本章阐述了如何为 Load Balancer 的 Cisco CSS 控制器组件创建基本配置。
在您开始本章的任何配置方法前:
任务 | 描述 | 相关信息 |
---|---|---|
设置 Cisco CSS 控制器机器 | 查找要求 | 设置 Cisco CSS 交换机的控制器机器 |
测试您的配置 | 确认配置正在工作 | 测试您的配置 |
要为 Load Balancer 的 Cisco CSS 控制器组件创建基本配置,有三种方法:
这是配置 Cisco CSS 控制器的最直接方法。此手册中的过程假设使用命令行。命令参数值必须以英文字符输入。唯一的例外是主机名(例如,用于 consultant add 命令中)和文件名。
要从命令行启动 Cisco CSS 控制器:
记录:
您可输入 ccocontrol 命令参数的缩写版本。仅需输入参数特有的字母。例如,要获取有关文件保存命令的帮助,您可以输入 ccocontrol he f 来替代 ccocontrol help file。
要启动命令行界面:发出 ccocontrol 以接收 ccocontrol 命令提示符。
要结束命令行界面:发出 exit 或 quit。
当前定义的配置可保存到 XML 文件。 这允许在稍后您想快速重新创建配置时装入此配置。
要执行 XML 文件(例如,myscript.xml)的内容,使用以下任何命令:
ccocontrol file save XMLFilename
ccocontrol file load XMLFileName
只有当您先前已执行 file save 后,才使用装入命令。
XML 文件保存在 ...ibm/edge/lb/servers/configurations/cco/ 目录中。
有关一般说明和图形用户界面(GUI)的示例,请参阅图 42。
要启动 GUI,遵循这些步骤
ccoserver.
要从 GUI 配置 Cisco CSS 控制器组件:
您可以使用 GUI 来执行任何您要用 ccocontrol 命令完成的任务。例如:
要从 GUI 运行命令:
您在当前会话中运行的命令的结果和历史出现在“结果”框中。
要访问帮助,单击 Load Balancer 窗口右上角的问号图标。
要获取有关使用 GUI 的更多信息,请参阅附录 A, GUI:一般说明。
在设置Cisco CSS 控制器机器前,您必须是 root 用户(对于 AIX、HP-UX、Linux 或 Solaris)或管理员(对于 Windows)。
咨询器必须能作为 Cisco CSS 交换机管理员连接到 Cisco CSS 交换机。
当配置咨询器时,您必须配置地址和 SNMP 共用名,以匹配 Cisco CSS 交换机上相应的属性。
要获取该过程中使用的命令的帮助信息,请参阅Cisco CSS 控制器的命令参考。
如果 ccoserver 尚未运行,现在作为 root 用户输入 ccoserver 来启动它。
输入 ccocontrol 以启动命令行界面。
您必须配置交换机地址和 SNMP 共用名。这些值必须匹配 Cisco CSS 交换机上的相应属性。
要添加咨询器,输入:
consultant add switchConsultantID address switchIPAddress community communityName
所有者内容是在 Cisco CSS 交换机上定义的所有者的内容规则表示法。所有者名称和内容规则名称必须与在交换机上定义的方式相匹配。
要定义所有者内容,输入:
ownercontent add switchConsultantID:ownercontentID ownername ownerName contentrule contentRuleName
当定义所有者内容时,咨询器通过检索在交换机上配置的服务来完成配置。将交换机上的配置与咨询器的配置相比较,以确保服务匹配。
度量是用于确定服务权值及关联比例的测量(一个度量与另一个度量比较的重要性),并且可以是连接数据度量、应用程序顾问程序度量和度量服务器度量的任何组合。这些比例必须始终总计为 100。
当配置所有者内容时,缺省度量定义为 activeconn 和 connrate。如果您需要其它度量,或需要完全不同于缺省的度量,输入:
ownercontent metrics switchConsultantID:ownercontentID metric1 proportion1 metric2 proportion2...metricN proportionN
要启动咨询器,输入:
consultant start switchConsultantID
这将启动度量收集器,并且权值计算将开始。
如果在步骤 5 中定义系统度量,则必须在服务机器上启动度量服务器。请参阅度量服务器以获取有关使用度量服务器的信息。
要配置高可用性,输入:
highavailability add address IPaddress partneraddress IPaddress port 80 role primary
在高可用性环境中,您可以配置多个交换机。 要确保在一个交换机接管另一个交换机时权值信息总是可用,必须配置 Cisco CSS 控制器以为所有交换机及其备份提供权值。
请参阅Cisco CSS 控制器和 Nortel Alteon 控制器的高级功能以获取有关如何使用及配置控制器高可用性的详细信息。
测试配置是否在工作。
此部分提供有关快速启动配置的信息,计划注意事项,并描述配置 Load Balancer 的 Nortel Alteon 控制器组件的方法。它包含以下几章:
此快速入门示例显示如何使用 Nortel Alteon 控制器组件创建配置。Nortel Alteon 控制器将服务器权值提供给 Nortel Alteon Web 交换机。这些权值用于为交换机进行负载均衡的服务选择服务器。
对于此快速入门配置示例,您将需要以下内容:
确保在开始配置此示例之前完成以下步骤:
有了 Nortel Alteon 控制器,您可以使用命令行或图形用户界面(GUI)创建配置。对于此快速入门示例,使用命令行演示配置步骤。
从命令提示符,遵循这些步骤:
nalcontrol consultant add Consultant-1 address 9.87.32.50
这将检查与 Nortel Alteon Web 交换机的连接性,并验证 SNMP 共用名是否在正常工作。
nalcontrol service add Consultant-1:Service-1 vsid 1 vport 80
Nortel Alteon 控制器将在 SNMP 上与交换机通信,并从此交换机获取必需的配置信息。此步骤后,您应查看 Nortel Alteon 控制器中有关在 Nortel Alteon Web 交换机上为服务配置什么服务器的信息。
nalcontrol service metrics Consultant-1:Service-1 http 40 activeconn 30 connrate 30
此命令将配置您要从服务器收集哪些度量信息,以及权值计算期间这些度量的相对重要性。
nalcontrol consultant start Consultant-1
使用此命令,所有度量收集器将启动,并且服务器权值计算将开始。Nortel Alteon 控制器通过 SNMP,使其服务器权值计算结果与 Nortel Alteon Web 交换机通信。
现在,您的基本 Nortel Alteon 控制器配置完成。
测试配置是否在工作。
要获取有关使用 Nortel Alteon 控制器 GUI 的信息,请参阅GUI和附录 A, GUI:一般说明。
本章描述安装和配置 Nortel Alteon 控制器组件之前网络计划人员应考虑的问题。
本章包含:
Nortel Alteon 控制器管理一组交换机咨询器。每个咨询器确定由单个交换机负载平衡的服务器的权值。 咨询器为其提供权值的交换机是为服务器负载平衡配置的。咨询器使用 SNMP 协议,以将计算后的权值发送到交换机。此交换机使用这些权值,以为其正在进行负载均衡的服务选择一台服务器。要确定权值,咨询器使用以下一条或多条信息:
请参阅您的 Nortel Alteon Web OS Application Guide,以获取有关服务器负载均衡的描述以及配置交换机的详细信息。
要使咨询器获取有关它确定服务器权值所需的信息,您必须具有:
咨询器可以在其提供权值的一个或多个交换机之前或之后连接到网络。某些参数必须在交换机上配置,而某些必须在控制器上配置,以在控制器、交换机和服务器之间启用连接性。
在图 30 中:
请参阅您的 Nortel Alteon Web OS Application Guide 或 Command Reference,以获取有关配置 VLAN 以及交换机上的 IP 路由的详细信息。
在图 31 中:
您可以使用以下任何界面管理 Nortel Alteon 控制器:
在图 32 中:
当咨询器计算提供服务(由交换机负载均衡)的服务器的权值时,此咨询器禁用交换机的正常服务器健康状况检查,以减少到服务器的不必要流量。 此咨询器在停止为服务提供权值时重新启用健康状况检查。服务器健康状况检查间隔符合 MIB 变量 slbNewCgRealServerPingInterval。
如果咨询器确定服务器不可用,则它将服务器的最大连接数设置为零,以避免交换机在负载均衡请求时考虑到此服务器。当服务器再次可用时,最大连接数恢复到其原始值。服务器最大连接数值符合 MIB 变量 slbNewCfgRealServerMaxCons。
当为实服务器计算某一权值时,为此服务器设置此权值。服务器权值符合 MIB 变量 slbNewCfgRealServerWeight。
此交换机允许某些服务器配置为其它服务器的备份。如果此交换机确定具有备份的服务器不可用,则它可能会开始将请求发送到备份。当咨询器计算具有备份的服务的权值时,它计算备份服务器及主服务器的权值,随后在需要备份服务器时将权值用于服务器选择。
备份服务器的权值可能比主服务器的权值高。这是因为无请求转发至备份服务器,因此它具有低负载,除非交换机确定要使用它。
要避免使服务器资源空闲,一般惯例是指定给某一服务的服务器用作指定给另一不同服务的服务器的备份。当实现这样的配置时,避免将相同的实服务器指定给多个并行活动的服务。 如果发生这种情况,则用于每个服务的服务器(服务器是每个服务的一部分)的权值由咨询器覆盖。
每台实服务器由一个整数标识,并具有权值和 IP 地址属性。两台实服务器可能具有同一 IP 地址。在这种情况下,两台实服务器与同一物理服务器关联。标识为备份的实服务器应仅配置为单个服务的备份。如果相同的物理服务器备份指定给多个服务的服务器,则必须为每个服务配置一次这些相同的服务器,并为它们给定一个对每个服务唯一的服务器标识。这允许备份对它们正在备份的每个服务具有指定给它们的唯一权值。
交换机上的服务器可配置为多个组的一部分,并且可在交换机上配置组,以提供多个服务。
因为可能会对多个服务配置同一服务,所以将为服务器作为其一部分的每个服务计算权值。因此,权值有可能不正确,因为在任何时候权值意指哪个服务是未知的。
另外,如果咨询器确定一个服务而非另一个服务的权值,咨询器不为其计算权值的服务有可能禁用服务器健康状况检查。在这种情况下,此交换机可能不正确负载均衡该服务。
由于这些可能性,您必须确保实服务器不指定给进行负载均衡的多个服务。这并不意味着同一服务器无法提供多个服务的请求。这意味着必须在交换机上为服务器将为其处理请求的每个服务配置具有唯一标识的实服务器。
Nortel Alteon 控制器和 Nortel Alteon Web 交换机都具有高可用性能力。
您可以两个控制器,以在热备用配置中的不同系统上运行。
当您配置两个或多个交换机以充当一个虚拟 IP 接口路由器(VIR)或一个虚拟 IP 服务器路由器( VSR)时,这些交换机可以彼此备份。
一个咨询器(由控制器管理)仅为一个交换机提供权值。由于任何时候备份交换机都可能接管主交换机,所以您必须对有可能成为主交换机的每个交换机使用咨询器配置控制器。这样,当某个交换机成为主交换机时,就确保了其拥有权值。
另外,当控制器连接到 VIR 时,确保在 VIR 与其中一个交换机失去连接性时,控制器与服务器、交换机和备份控制器通信。
请参阅您的 Nortel Alteon Web OS Application Guide,以获取有关交换机上的高可用性的信息。
控制器高可用性增强 Load Balancer 的容错能力。设计时注意经典信息包转发高可用性,控制器高可用性包含两个同步运行的控制器,一个具有主角色,另一个具有次角色。
每个控制器使用等同交换机信息配置。 类似于经典高可用性,在同一时刻只有一个控制器活动。 这意味着,由高可用性逻辑所决定,只有活动控制器用新权值计算和更新交换机。
控制器高可用性在您配置的地址和端口上使用简单用户数据报协议(UDP)信息包,以与其伙伴进行通信。这些信息包用于在两个控制器间交换信息,这些信息属于高可用性(到达信息),并用于确定伙伴控制器可用性(工作频率)。如果备用控制器确定活动控制器由于任何原因已导致失败,则备用控制器从失败的活动控制器接管。然后,备用控制器成为活动控制器,并开始使用新权值计算和更新交换机。
除了伙伴可用性以外,到达目标还可以配置为高可用性。如同经典高可用性一样,控制器高可用性使用到达信息确定哪个控制器是活动的以及哪个控制器是备用的。活动控制器是可以 ping 更多目标并可从其伙伴到达的控制器。
请参阅高可用性,以获取更多信息。
在图 34 中:
图 34. Nortel Alteon 控制器和 Nortel Alteon Web 交换机高可用性的示例
要避免权值更改太频繁,您可以使用灵敏度阈值配置咨询器。灵敏度阈值指定在权值可更改前必须在旧权值和新权值间发生的更改量。请参阅灵敏度阈值,以获取更多信息。
如果交换机过度忙于更新权值,您可以增加咨询器休眠时间,以减少控制器、服务器和交换机之间的流量。休眠时间设置两个权值设置周期间的休眠秒数。
如果服务器处理太多来自咨询器的监视请求,您可以修改度量收集器的休眠时间。请参阅权值计算休眠时间,以获取详细描述。
Cisco CSS 控制器将条目公布到以下日志中:
这些日志位于以下目录:
在每个日志中,您可以设置日志大小和日志记录级别。请参阅使用 Load Balancer 日志,以获取更多信息。
执行本章所述步骤之前,请参阅计划 Nortel Alteon 控制器组件。本章阐述了如何为 Load Balancer 的 Nortel Alteon 控制器组件创建基本配置。
在您开始本章中的任何配置方法前,确保正确地配置您的 Nortel Alteon Web 交换机和所有服务器。
表 12. Nortel Alteon 控制器组件的配置任务
任务 | 描述 | 相关信息 |
---|---|---|
配置 Nortel Alteon Web 交换机和服务器 | 配置交换机。 | 配置交换机,位于第 (SETSWITCH) 页 |
设置 Nortel Alteon 控制器机器 | 配置控制器。 | 步骤 1. 启动服务器功能 |
测试您的配置 | 确认配置正在工作 | 测试您的配置 |
要为 Load Balancer 的 Nortel Alteon 控制器组件创建基本配置,有三种基本方法:
这是配置 Nortel Alteon 控制器的最直接方法。此手册中的过程假设使用命令行。
要从命令行启动 Nortel Alteon 控制器:
记录:
您可以通过输入参数特有的字母,以使用 nalcontrol 命令参数的缩写版本。例如,要获取有关文件保存命令的帮助,您可以输入 nalcontrol he f,而不是 nalcontrol help file。
要结束命令行界面:输入 exit 或 quit。
记录:
当前定义的配置可保存到 XML 文件。 这允许在稍后您想快速重新创建配置时装入此配置。
要执行 XML 文件(例如,myscript.xml)的内容,使用以下命令:
nalcontrol file save XMLFilename
只有当您先前已执行 file save 后,才使用装入命令。
nalcontrol file load XMLFileName
只有当您先前已执行 file save 后,才使用装入命令。
XML 文件保存在 ...ibm/edge/lb/servers/configurations/nal/ 目录中。
对于图形用户界面(GUI)的示例,请参阅图 42。
要启动 GUI:
要从 GUI 配置 Nortel Alteon 控制器组件:
您可使用 GUI 来执行任何您要用 nalcontrol 命令完成的任务。例如:
要从 GUI 运行命令:
您在当前会话中运行的命令的结果和历史出现在“结果”框中。
要访问“帮助”,单击 Load Balancer 窗口右上角的问号图标。
要获取有关使用 GUI 的更多信息,请参阅附录 A, GUI:一般说明。
要获取该过程中使用的命令的帮助信息,请参阅Nortel Alteon 控制器的命令参考。
在设置 Nortel Alteon 控制器机器之前:
如果 nalserver 尚未运行,现在作为 root 用户输入 nalserver 来启动它。
要添加交换机咨询器,输入:
consultant add switchconsultantID address switchIPAddress
要添加服务,输入:
service add switchConsultantID:serviceID vsid virtualServerID vport virtualPortNumber
服务由虚拟服务器标识(VSID)和虚拟端口(VPORT)号标识,两者都与先前在交换机上配置的虚拟服务器关联。
度量是用于确定服务器权值的信息。 为每个度量指定一个比例来表明其相对于其它度量的重要性。可配置任何度量组合:连接数据度量、应用程序顾问程序度量和度量服务器度量。这些比例必须始终总计为 100。
当配置服务时,缺省度量定义为 activeconn 和 connrate。如果您需要其它度量,或需要完全不同于缺省的度量,输入:
service metrics switchConsultantID:serviceID metricName 50 metricName2 50
要启动咨询器,输入:
consultant start switchConsultantID
要配置高可用性,输入:
highavailability add address IPaddress partneraddress IPaddress port 80 role primary
请参阅Cisco CSS 控制器和 Nortel Alteon 控制器的高级功能以获取有关如何使用及配置控制器高可用性的详细信息。
如果在步骤 5 中定义系统度量,则必须在服务机器上启动度量服务器。请参阅度量服务器以获取有关使用度量服务器的信息。
如果您修改 Nortel Alteon Web 交换机上的配置,则您可以刷新控制器配置。输入:
service refresh
建议您在刷新配置之前,停止咨询器。刷新命令更新此配置后,重新启动咨询器。
测试配置是否在工作。
本部分提供有关 Load Balancer 可用的功能和高级配置功能部件的信息。它包含以下几章:
本章说明如何配置负载均衡参数以及如何设置 Load Balancer 的管理器、顾问程序和度量服务器功能。
任务 | 描述 | 相关信息 |
---|---|---|
可选,更改负载均衡设置 |
可更改以下负载均衡设置:
| 优化 Load Balancer 提供的负载均衡 |
当管理器标记一台或多台服务器当机/运行时,使用脚本生成警告或记录服务器故障 | Load Balancer 提供触发脚本(当管理器标记一台或多台服务器当机/运行时,您可定制此脚本)的用户出口 | 使用脚本以生成警告或记录服务器故障 |
使用顾问程序 | 描述和列出报告有关服务器特定状态的顾问程序。 | 顾问程序 |
使用 HTTP 顾问程序请求/响应(URL)选项 | 定义唯一的客户机 HTTP URL 字符串,特定给您要在机器上查询的服务 | 使用请求/响应(URL)选项配置 HTTP 顾问程序 |
使用自顾问程序 | 在 Load Balancer 2 层 WAN 配置中提供后端服务器负载状态。 | 在 2 层 WAN 配置中使用自顾问程序 |
创建定制顾问程序 | 描述如何写您自己的定制顾问程序 | 创建定制(可定制的)顾问程序 |
使用度量服务器代理程序 | 度量服务器向 Load Balancer 提供系统负载信息 | 度量服务器 |
使用工作负载管理器顾问程序(WLM) | WLM 顾问程序向 Load Balancer 提供系统负载信息 | 工作负载管理器顾问程序 |
Load Balancer 的管理器功能基于以下设置执行负载均衡:
可以更改这些设置以优化网络负载均衡。
管理器可在其权值确定中使用一些或所有以下外部因素:
或 -
Cpu:每一负载均衡服务器上使用的 CPU 百分率(度量服务器代理程序的输入)。仅对于站点选择器,此比例出现在活动连接比例列的位置。
或 -
内存:每一负载均衡服务器上使用的内存百分率(度量服务器代理程序的输入)。仅对于站点选择器,此比例出现在新连接比例列的位置。
除每个服务器的当前权值和计算其权值所需要的一些其它信息外,管理器将从执行程序得到前两个值(活动和新建的连接)。这些值是根据执行程序内部生成和存储的信息得出的。
您可更改每个群集(或站点名称)基础上的四个值的相对重要性比例。将比例看作百分比;相对比例之和必须等于 100%。缺省比率 50/50/0/0 将忽略顾问程序和系统信息。在您的环境中,您可能需要试用不同的比例来查找能提供最佳性能的组合。
添加 WLM 顾问程序,如果系统度量比例是零,那么管理器增加此值至 1。因为相对比例和数必须总计 100,最高值就减少 1。
活动连接的数目不仅取决于客户机的数目,还取决于使用负载均衡服务器提供的 服务所必需的时间长度。如果客户机连接较快(如使用 HTTP GET 服务的小 Web 页面),则活动连接数就会相当小。如果客户机连接较慢(如数据库查询),则活动连接的数目就会较大。
您应该避免设置活动和新建连接比例值太低。您将禁用负载均衡和平滑功能,除非您将最前面的两个值设置为 20 以上。
要设置重要值比例,使用 dscontrol cluster set cluster proportions 命令。请参阅dscontrol cluster - 配置群集以获取更多信息。
管理器功能根据执行程序的内部计数器、来自顾问程序的反馈和来自系统监视程序(如度量服务器)的反馈设置权值。运行管理器时如果您要手工设置权值,在 dscontrol server 命令上指定 fixedweight 选项。对于 fixedweight 选项的描述,请参阅管理器固定权值。
权值应用于一个端口上的所有服务器。对于任何特定端口,根据两台服务器之间的相对权值在它们之间分配请求。例如,如果一台服务器的权值设置为 10,而另一台的设置为 5,则权值设置为 10 的服务器获得的请求数应是权值设置为 5 的服务器的两倍。
要指定任何服务器能够具有的最大权值,使用 dscontrol port set port weightbound weight 命令。此命令将影响 每台服务器将获得的请求的数量差异大小。如果将最大权重设置为 1,则所有服务器的权值都可以为 1;如果停顿,则为 0;如果标记当机,则为 -1。 增大此数值,则服务器之间的权值差异也相应增大。当最大权值为 2 时,一台服务器获取的请求数量可能是另一台服务器的两倍。当最大权值为 10 时,一台服务器获取的请求数量可能是另一台服务器的 10 倍。 缺省最大权值是 20。
如果顾问程序发现服务器已经当机,将通知管理器,后者则将该服务器权值设置为零。这样,只要权值仍为零,执行程序就不发送任何其它连接给该服务器。在权值改变之前,如果还有任何活动的连接,则 将保留它们正常完成。
没有管理器,顾问程序将无法运行并不能检测服务器是否当机。如果选择运行顾问程序,但是不希望管理器更新已经为特定服务器设定的权值,在 dscontrol server 命令中使用 fixedweight 选项。例如:
dscontrol server set cluster:port:server fixedweight yes
fixedweight 设置为 yes 以后,使用 dscontrol server set weight 命令将权值设置为您希望的值。当管理器运行时服务器权值将保持固定,直至您发出另一个 dscontrol server 命令并将 fixedweight 设置为 no。要获取更多信息,请参阅dscontrol server - 配置服务器。
如果已激活 TCP 复位,那么在客户机有到权值为 0 的服务器的连接时,分派器将发送 TCP 复位到客户机。当服务器的权值配置为 0 或当顾问程序将它标记为当机时,其权值可能为 0。 TCP 复位将导致立即关闭连接。此功能部件对使用期限长的连接有用,它能加快客户机重新协商已失败连接的能力。 要激活 TCP 复位,使用 dscontrol port add|set port reset yes 命令。复位的缺省值为 no。
要配置与 TCP 复位联合的有用功能部件是顾问程序重试。 在此功能部件中,顾问程序在标记服务器当机之前有能力重试连接。这有助于避免顾问程序过早地将服务器标记为当机,而这将导致连接复位问题。 即,仅因为顾问程序第一次尝试失败并不意味着现有连接还将失败。请参阅顾问程序重试,以获取更多信息。
为了优化整体性能,需要限制管理器与执行程序相互作用的频率。可以通过输入 dscontrol manager interval 与 dscontrol manager refresh 命令更改此间隔。
管理器时间间隔指定了管理器更新执行程序在路由连接中使用的服务器权值的频率。如果管理器时间间隔太短,就会由于管理器经常中断执行程序从而导致性能差。如果管理器时间间隔太长,则可能意味着执行程序请求路由将不是根据精确的和最新的信息得出的。
例如,要将管理器时间间隔设置为 1 秒,需要输入以下命令:
dscontrol manager interval 1
管理器刷新周期指定管理器询问执行程序状态信息的频率。刷新周期根据间隔时间来确定。
例如,要将管理器刷新周期设置为 3,则输入以下命令:
dscontrol manager refresh 3
这导致管理器在向执行程序询问状态信息之前,要等待 3 个时间间隔。
其它方法可用于优化您服务器的负载均衡。为了以最快速度工 作,仅当权值更改很大时,才更新服务器权值。当服务器状态只有微小更改或无更改时,频繁更新权值将会导致不 必要的开销。当一个端口上的所有服务器总权值的百分率权值更改大于灵敏度阈值时,管理器将更新执行程序使用的权值以分配连接。例如,假设,总权值从 100 更改为 105。改 变为 5%。使用缺省灵敏度阈值 5,管理器将不更新执行程序所使用的权值,因 为百分比改变没有超过阈值。然而,如果 总权值从 100 改为 106,管理器就会更新权值。要将管理器的灵敏度阈值设置为不同于缺省(例如 6)时,请输入以下命令:
dscontrol manager sensitivity 6
大多数情况下,您不需要更改这个值。
管理器动态地计算服务器权值。因此,更新过的权值有可能相对以前的权值有很 大的不同。这在大多数情况下不会出现问题。但偶尔也会对负载均衡请求的方法产生一个振荡效应。例如,一个服务器由于权值很大可能会最终接收大部分请求。管理器 将会看到服务器具有大量活动连接而响应很慢。然后管理器将把权值转移到空闲服务器,但那里会出现同样情况,导致不能有效利用资源。
要减轻这种问题,管理器使用了平滑指数。平滑 指数限制对服务器权值的更改量,有效地平滑请求分配中的更改。较大的平滑指数将使服务器权值的变动幅度较小。 较小的平滑指数将使服务器权值的变动幅度很大。平滑指数的缺省值为 1.5。在 1.5 时,服务器权值可以适当的变化。 指数为 4 或 5 将使权值更稳定。例如,要将平滑指数设置为 4,请输入如下命令:
dscontrol manager smoothing 4
大多数情况下,您不需要更改这个值。
Load Balancer 提供触发可定制脚本的用户出口。您可创建脚本以执行自动操作,如当管理器标记服务器当机或仅记录故障事件时,提醒管理员。可定制的样本脚本位于 ...ibm/edge/lb/servers/samples 安装目录。为了运行这些文件,您必须将它们移动到 ...ibm/edge/lb/servers/bin 目录,并除去“sample”文件扩展名。提供下列样本脚本:
使用 serverUp 和 serverDown 脚本时的注意事项:
顾问程序是 Load Balancer 中的代理程序。它们的目的是访问服务器运行状况和负载。它们通过与服务器进行预设客户机式交换来操作。顾问程序可以当作应用程序服务器的轻量级客户机。
对于大部分流行的协议,此产品提供几个特定协议的顾问程序。然而,不需要将提供的所有顾问程序与 Load Balancer 的每个组件一起使用。(例如,不会将 CBR 组件和 Telnet 顾问程序一起使用。)Load Balancer 也支持“定制顾问程序”概念,它允许用户编写自己的顾问程序。
对于 Linux,使用绑定特定的服务器应用程序的限制是: 将具有绑定特定的服务器应用程序(包含其它 Load Balancer 组件,如 CBR 或站点选择器)的负载均衡服务器绑定到群集 IP 地址时,Load Balancer 不支持使用顾问程序。
对于 HP-UX 和 Solaris,使用绑定特定的服务器应用程序的限制是: 如果使用 arp publish 替代 ifconfig alias 命令,则将具有绑定特定的服务器应用程序(包含其它 Load Balancer 组件,如 CBR 或站点选择器)的负载均衡服务器绑定到群集 IP 地址时,Load Balancer 将支持使用顾问程序。然而,在使用顾问程序而不是绑定特定的服务器应用程序时,不要在此服务器应用程序所在的同一台机器上并列配置 Load Balancer。
-DND_ADV_SRC_ADDR=dotted-decimal_IP_address
顾问程序定期打开与每个服务器的 TCP 连接并将请求消息发送到该服务器。消息内容特定于运行在服务器上的协议。例如,HTTP 顾问程序发送 HTTP“HEAD”请求给服务器。
然后顾问程序侦听服务器的响应。获取响应后,顾问程序评估此服务器。要计算此“负载”值,大部分顾问程序测量服务器的响应时间,然后用此值(以毫秒为单位)来作为负载值。
然后顾问程序将负载值报告给管理器功能部件,结果将出现在管理器报告的“端口”列中。然后管理器计算所有源的聚集权值,每个源的比例,并将这些权值设置到执行程序功能中。然后执行程序使用这些权值对新进入的客户机连接进行负载均衡。
如果顾问程序确定服务器是活动的并且工作正常,它将向管理器报告一个正的、非零负载值。如果顾问程序确定服务器不是活动的,它将返回一个特殊的负载值(-1)。管理器和执行程序直至服务器已恢复运行后才把任何进一步的连接转发至此服务器。
您可跨越所有群集(组顾问程序)为特殊端口启动顾问程序。或,您可选择在相同端口,但在不同的群集(群集/站点特定顾问程序)上运行不同顾问程序。例如,如果有三个群集(clusterA、clusterB、clusterC)定义的 Load Balancer,每个有端口 80,您可执行下列操作:
dscontrol advisor start http clusterA:80此命令将为 clusterA 启动端口 80 上的 http 顾问程序。http 顾问程序将为 clusteA 在所有连接到端口 80 的服务器上提供建议。
dscontrol advisor start ADV_custom 80此命令将为 clusterB 和 clusterC 启动端口 80 上的 ADV_custom 顾问程序。您的定制顾问程序将为 clusterB 和 clusterC 在所有连接到端口 80 的服务器上建议。(要获取更多关于定制顾问程序的信息,请参阅创建定制(可定制的)顾问程序。)
为组顾问程序使用上面的配置示例,您可选择为一个群集上端口 80 或两个群集(clusterB 和 clusterC)停止定制顾问程序 ADV_custom。
dscontrol advisor stop ADV_custom clusterB:80
dscontrol advisor stop ADV_custom 80
顾问程序时间间隔指定了顾问程序向其正监视的端口上的服务器询问状态然后向管理器 报告结果的频率。如果顾问程序时间间隔太短,就会由于管理器经常中断服务器从而导致性能差。如果顾问程序时间间隔太长,则可能意味着 管理器关于权值的判定不是基于准确、最新的信息。
例如,要将端口 80 的 HTTP 顾问程序时间间隔设置为 3 秒,请输入以下命令:
dscontrol advisor interval http 80 3
指定顾问程序时间间隔时间比管理器时间间隔短没有意义。缺省顾问程序间隔是 7 秒。
要确保管理器在其负载均衡判定中没有使用过时信息,管理器将不使用来自时间戳记比顾问程序报告超时中设置的时间还早的顾问程序的信息。顾问程序报告超时应比顾问程序轮询间隔长。如果超时值比间隔更小,则管理器将忽略逻辑上应使用的报告。缺省情况下,顾问程序报告不超时 - 缺省值是 unlimited。
例如,要将端口 80 的 HTTP 顾问程序设置顾问程序报告超时为 30 秒,请输入以下命令:
dscontrol advisor timeout http 80 30
要获取更多关于设置顾问程序报告超时的信息,请参阅dscontrol advisor - 控制顾问程序。
对于 Load Balancer,您可以设置顾问程序的超时值,在该值它检测到服务器(服务)上的特定端口发生故障。故障服务器超时值(connecttimeout 和 receivetimeout)确定在报告连接或接收故障之前,顾问程序可等待的时间。
要获取最快故障服务器 检测,设置顾问程序连接和接收超时为最小值(一秒),并设置顾问程序和管理器间隔时间为最小值(一秒)。
例如,要为端口 80 的 HTTP 顾问程序设置 connecttimeout 和 receivetimeout 为 9 秒,请输入以下命令:
dscontrol advisor connecttimeout http 80 9 dscontrol advisor receivetimeout http 80 9
连接和接收超时缺省值是为顾问程序间隔时间指定值的 3 倍。
在标记服务器当机之前,顾问程序将重试连接的能力。在服务器查询失败次数达到重试数加 1 之后,顾问程序将标记服务器当机。建议重试值不要大于 3。以下命令将为端口 389 上的 LDAP 顾问程序设置重试值 2。
dscontrol advisor retry ldap 389 2
HTTP 顾问程序的 URL 选项可用于分派器和 CBR 组件。
您启动 HTTP 顾问程序后,您可定义唯一的客户机 HTTP URL 字符串,特定给您要在服务器上查询的服务。这允许 HTTP 顾问程序访问服务器中的个别的服务状况。您可用唯一的服务器名(有相同的物理的 IP 地址)定义逻辑服务器来完成。请参阅服务器分区:配置到一个物理服务器(IP 地址)的逻辑服务器以获取更多信息。
对于 HTTP 端口下的每一定义的逻辑服务器,您可指定唯一的客户机 HTTP URL 字符串,特定给您要在服务器上查询的服务。 HTTP 顾问程序使用 advisorrequest 字符串查询服务器的运行状况。缺省值为 HEAD / HTTP/1.0。advisorresponse 字符串是 HTTP 顾问程序在 HTTP 响应中扫描的顾问程序响应。HTTP 顾问程序使用 advisorresponse 字符串比较从服务器接收的实响应。缺省值是空。
重要:如果 HTTP URL 字符串中包含空格:
server set cluster:port:server advisorrequest "head / http/2.0" server set cluster:port:server advisorresponse "HTTP 200 OK"
dscontrol server set cluster:port:server advisorrequest "\"head / http/2.0\"" dscontrol server set cluster:port:server advisorresponse "\"HTTP 200 OK\""
当您创建 HTTP 顾问程序发送到后端服务器以查看它们是否在运行的请求时,输入 HTTP 请求的开始部分,并且 Load Balancer 使用以下命令完成请求的结束部分。
\r\nAccept: */*\r\nUser-Agent:IBM_Network_Dispatcher_HTTP_Advisor\r\n\r\n
如果您要在 Load Balancer 将此字符串添加到请求的结束部分之前添加其它 HTTP 头字段,您可以通过在请求中包含自己的 \r\n 字符串来执行。以下是您将 HTTP 主机头字段添加到您的请求时可输入的命令示例:
GET /pub/WWW/TheProject.html HTTP/1.0 \r\nHost: www.w3.org
请参阅dscontrol server - 配置服务器以获取更多信息。
自顾问程序可用于分派器组件。
对于 2 层 WAN(广域网)中的 Load Balancer,分派器提供后端服务器上收集负载状态信息的自顾问程序。
在此示例中,自顾问程序和度量服务器驻留在顶层 Load Balancer 负载均衡的两个分派器机器上。自顾问程序明确地测量在执行程序级别分派器的后端服务器上每秒速率的连接数。
自顾问程序将结果写入 dsloadstat 文件。Load Balancer 还提供称为 dsload 的外部度量。每个分派器机器上的度量服务器代理程序运行其调用外部度量 dsload 的配置。dsload 脚本从 dsloadstat 文件抽取字符串,并将它返回度量服务器代理程序。然后,每个度量服务器代理程序(来自于每个分派器)将负载状态值返回顶层 Load Balancer,用于确定由哪个分派器转发客户机请求。
dsload 可执行文件驻留在 Load Balancer 的 ...ibm/edge/lb/ms/script 目录中。
请参阅配置广域分派器支持,以获取有关在 WAN 配置中使用分派器的更多信息。请参阅度量服务器,以获取有关度量服务器的更多信息。
定制(可定制的)顾问程序是一小段 Java 代码(以一个类文件提供),可使用基本代码调用。基本代码提供所有管理的服务,如启动 和停止定制顾问程序实例,提供状态和报告,并将历史信息记录到日志文件中。它还将结果报告给管理器组件。基本代码将定期执行顾问程序循环,它独立地评估配置中的所有服务器。它通过打开与服务器的连接启动。如果打开了套接字,基本代码将调用定制顾问程序中的“getLoad”方法(函数)。然后定制顾问程序执行评估服务器运行状况的必要步骤。在典型情况下,它将发送一条用户定义的消息至服务器,然后等待响应。(提供给定制顾问程序对打开套接字的访问权。)然后基本代码关闭与服务器的套接字,并向管理器报告负载信息。
基本代码和定制顾问程序可以正常方式或置换方式操作。操作方式选项在定制顾问程序文件中指定为构造函数方法中的参数。
在正常方式下,定制顾问程序与服务器交换数据,基本顾问程序代码计算交换时间并计算负载值。然后基本代码将负载值报告给管理器。定制顾问程序只需要返回 0(成功)或 -1(出错)。要指定正常方式,请将构造函数中的替换标志设置为假(false)。
在置换方式中,基本代码不执行计时。定制顾问程序代码执行唯一要求的任何操作,然后返回实际负载数。基本代码将接受该数并将该它报告给管理器。要获得最好的结果,请将您的负载数规格化为 10 到 1000,10 代表快速服务 器,1000 代表慢速服务器。要指定置换方式,请将构造函数中的标志设置为真(true)。
使用这种功能,用户可以写自己的顾问程序,它将提供所需的有关服务器的精确信息。样本定制顾问程序 ADV_sample.java 与 Load Balancer 产品一起提供。 安装 Load Balancer 后,您可以在 ...<install directory>/servers/samples/CustomAdvisors 安装目录中查找样本代码。
缺省安装目录是:
Load Balancer 安装目录中特地提供了 WebSphere Application Server(WAS)顾问程序的样本定制顾问程序文件。
WebSphere Application Server 顾问程序样本文件驻留在与 ADV_sample.java 文件相同的样本目录中。
您的定制顾问程序文件名必须是“ADV_myadvisor.java”的格式。它必须以大写“ADV_”为前缀。所有后继字符都必须是小写字母。
按 Java 约定,文件中定义的类名必须与文件名匹配。如果您复制样本代码,一定要将文件中的所有“ADV_sample”实例更改为新的类名。
定制顾问程序是以 Java 语言编写的。您必须获取 Java 1.4 编译器,并安装在机器上。在编译期间引用这些文件:
在编译期间,您的类路径必须指向定制顾问程序文件和基类文件。
对于 Windows,样本编译命令为:
javac -classpath install_dir\lb\servers\lib\ibmnd.jar:install_dir \lb\admin\lib\j2ee.jar ADV_fred.java
其中:
例如,编译的输出是类文件
ADV_fred.class
启动顾问程序之前,将类文件复制到 ...ibm/edge/lb/servers/lib/CustomAdvisors 安装目录。
对于 AIX、HP-UX、Linux 和 Solaris,语法是类似的。
要运行定制顾问程序,必须先将类文件复制到适当的安装目录:
...ibm/edge/lb/servers/lib/CustomAdvisors/ADV_fred.class
配置此组件启动它的管理器功能,并发出命令以启动 定制顾问程序:
dscontrol advisor start fred 123
其中:
与所有顾问程序一样,定制顾问程序扩大了顾问程序基础部分(称为 ADV_Base)的功能。实 际上是顾问程序基础部分执行大多数顾问程序的功能,例如报告负载给管理器以在管理器的权值算法中使用。顾问程序基础部分还执行套接字连接和关闭操作,并提供顾问程序使用的发送和接收方法。顾问程序本身仅用于在正被咨询的服务器与端口之间发送和接收数据。顾问程序基础部分中的 TCP 方法 定时计算负载。如果需要,ADV_base 中构造函数内的标记用顾问程序返回的新负载值覆盖现有负载值。
这些是基类方法:
Load Balancer 首先查看它本身提供的本机顾问程序列表。如果从中找不到给定的顾问程序,则 Load Balancer 查看定制顾问程序的客户列表。
/opt/ibm/edge/lb/servers/lib/CustomAdvisors/
C:\Program Files\IBM\edge\lb\servers\lib\CustomAdvisors
样本顾问程序中包含了一个样本顾问程序的程序清单。安装后,此样本顾问程序可在 ...ibm/edge/lb/servers/samples/CustomAdvisors 目录中找到。
此功能可用于所有 Load Balancer 组件。
度量服务器以系统特定度量(报告服务器运行状况)格式向 Load Balancer 提供服务器负载信息。Load Balancer 管理器查询驻留在每台服务器上的度量服务器代理程序,使用从代理程序获得的度量给负载均衡进程指定权值。结果也放在管理器报告中。
关于配置的示例,请参阅图 5。
如同 WLM 顾问程序,度量服务器在服务器系统上作为一个整体报告,而不是在个别的特定协议服务器守护程序。WLM 和度量服务器都将它们的结果放至管理器报告的系统列。结果,不支持 WLM 顾问程序和度量服务器同时运行。
度量服务器代理程序必须安装且运行在被负载均衡的所有服务器上。
下面是配置分派器的度量服务器的步骤。 可以使用类似于配置 Load Balancer 的其它组件的步骤来配置度量服务器。
port 是为所有度量服务器代理程序运行所选择的 RMI 端口。缺省 RMI 端口(设置在 metricserver.cmd 文件中)是 10004。
systemMetric 是脚本的名称(驻留在后端服务器),此脚本应该运行在指定群集(或站点名称)下配置中的每个服务器上。为客户提供了两个脚本 - cpuload 和 memload。或,您可创建定制系统度量脚本。脚本包含了一个命令,此命令将返回一个在 0 到 100 之间的数值。此数值应该表示一个负载测量值,而不是可用性值。
限制:对于 Windows 平台,如果您的系统度量脚本名的扩展名不是“.exe”,则必须指定文件全名(例如,“mysystemscript.bat”)。这是因为 Java 限制。
可选地,客户可以写他们自己的定制度量脚本文件,这些文件定义度量服务器在服务器上发出的命令。确保任何定制脚本是可执行的,并位于 ...ibm/edge/lb/ms/script 目录。定制脚本必须返回一个 0 到 100 之间的数字负载值。
要在本地主机以外的地址上运行度量服务器,您需要编辑负载均衡服务器机器上的 metricserver 文件。 在 metricserver 文件中出现“java”的后面插入下列行:
-Djava.rmi.server.hostname=OTHER_ADDRESS
另外,在 metricserver 文件中的“if”语句之前,添加下列行:hostname OTHER_ADDRESS。
当跨越不同的域收集度量值时,您必须在服务器脚本(dsserver、cbrserver 等)中显式地将 java.rmi.server.hostname 设置为正在请求度量值的机器的全限定域名(FQDN)。这是必需的,因为这取决于您的设置和操作系统,InetAddress.getLocalHost.getHostName() 可能不会返回 FQDN。
WLM 是在 MVS 大型机上运行的代码。可以查询它来询问 MVS 机器上的负载。
在 OS/390 系统上已经配置 MVS 工作负载管理时,分派器可接受来自 WLM 的容量信息并在负载均衡过程中使用它。使用 WLM 顾问程序,分派器将定期地打开通过分派器主机表中每个服务器上 WLM 端口的连接,并接受返回的容量整数。由于这些整数代表仍然可用的容量,分派器需要代表每台机器上的负载的值,顾问程序可将容量数转换成负载值(例如较大的容量数,较小的负载值代表较健康的服务器)。负载结果被放至管理器报告的系统列。
WLM 顾问程序与其它分派器顾问程序之间有几个重要的区别:
如同度量服务器代理程序,WLM 代理程序在服务器系统上是作为一个整体进行报告,而不是对独立的特定于协议的服务器守护程序进行报告。度量服务器而且 WLM 把它们的结果放入管理器报告的系统列中。结果,不支持 WLM 顾问程序和度量服务器同时运行。
本章说明如何配置负载均衡参数以及如何设置 Load Balancer 高级功能。
任务 | 描述 | 相关信息 |
---|---|---|
在负载均衡的机器上并列配置 Load Balancer | 设置已并列配置的 Load Balancer 机器。 | 使用并列配置的服务器 |
配置高可用性或者相互高可用性 | 设置第二个分派器机器以提供备份。 | 高可用性 |
配置基于规则的负载均衡 | 定义使用服务器子集的条件。 | 配置基于规则的负载均衡 |
使用端口亲缘性覆盖提供一个机制以便服务器覆盖端口粘性特性 | 允许服务器覆盖其端口上的粘性时间设置。 | 端口亲缘性覆盖 |
使用粘性亲缘性特性将一个群集的端口配置为粘性 | 允许将客户机请求导向到相同的服务器。 | Load Balancer 的亲缘性功能如何工作 |
使用交叉端口亲缘性通过端口扩展粘性(亲缘性)特性 | 允许将不同端口接收到的客户机请求导向到相同的服务器。 | 交叉端口亲缘性 |
使用亲缘性地址掩码指定一个公共 IP 子网地址 | 允许将相同的子网接收到的客户机请求导向到相同的服务器。 | 亲缘性地址掩码(stickymask) |
使用活动 cookie 亲缘性以负载均衡 CBR 的服务器 | 规则选项允许会话维持特定服务器的亲缘性。 | 活动 cookie 亲缘性 |
使用被动 cookie 亲缘性以为分派器基于内容路由和 CBR 组件负载均衡服务器 | 规则选项允许会话维持基于 cookie 名/cookie 值的特定服务器的亲缘性。 | 被动 cookie 亲缘性 |
使用 URI 亲缘性负载均衡高速缓存代理服务器和在每个个别服务器上高速缓存的唯一的内容。 | 规则选项允许会话维持基于 URI 的特定服务器的亲缘性。 | URI 亲缘性 |
配置广域分派器支持 | 设置远程分派器通过广域网络进行负载均衡。或,使用支持 GRE 的服务器平台通过广域网络(没有远程分派器)进行负载均衡。 | 配置广域分派器支持 |
使用显式链接 | 避免在链接中绕过分派器。 | 使用显式链接 |
使用专用网 | 配置分派器对专用网上的服务器进行负载均衡。 | 使用专用网配置 |
使用通配符群集来组合公共服务器配置 | 没有明确配置的地址将使用通配符群集作为负载均衡流量的方法。 | 使用通配符群集来组合服务器配置 |
使用通配符群集为防火墙进行负载均衡 | 所有流量都将负载均衡到防火墙。 | 使用通配符群集为防火墙负载均衡 |
将高速缓存代理和通配符群集一起用于透明代理 | 允许使用分派器启用透明代理。 | 将高速缓存代理和通配符群集一起用于透明代理 |
使用通配符端口来定向未配置的端口流量 | 处理没有为任何特定端口配置过的流量。 | 使用通配符端口定向到未配置的端口流量 |
使用“拒绝服务攻击”检测向管理员通知(通过警告)潜在的攻击 | 分派器分析服务器上的大量半开 TCP 连接进入请求。 | 拒绝服务攻击检测 |
使用二进制日志记录分析服务器统计信息 | 允许在二进制文件中存储和从中检索服务器信息。 | 使用二进制日志记录分析服务器统计信息 |
Load Balancer 可驻留在负载均衡请求的服务器相同的机器。这通常称为并列配置服务器。并列配置应用于分派器和站点选择器组件。CBR 也支持并列配置,但仅在使用特定绑定 Web 服务器和特定绑定高速缓存代理的时候。
Linux:要同时配置并列配置和高可用性,使用 mac 转发方法运行分派器组件时,您必须安装 Linux 内核补丁。要获取有关安装此补丁的更多信息,请参阅安装 Linux 内核补丁(以抑制 arp 回送接口上的响应)。然 而,当遵循这些指示进行操作时,可跳过对回送适配器设置别名的步骤。您应在 goStandby 高可用性脚本文件中添加 ifconfig 指令,以对回送适 配器设置别名,该脚本文件会在分派器进入备用状态时执行。
Solaris:并列配置入口点分派器时,存在无法配置 WAN 顾问程序的限制。请参阅使用带分派器广域支持的远程顾问程序。
在早期发行版中,必须指定的并列配置的服务器地址与此配置中的非转发地址(NFA)相同。此限制现在已被撤消。
要配置并列配置的服务器,dscontrol server 命令提供称为并列配置 的选项,其可以设置为是或否。缺省值是“否”。服务器的地址必须是机器上网络接口卡的有效 IP 地址。
您可用下列方法之一配置并列配置的服务器:
有关 dscontrol server 命令语法的更多信息,请参阅dscontrol server - 配置服务器。
如果在分派器机器上执行以下步骤,则现在可以在所有操作系统上执行配置分派器的 nat 转发方法时的并列配置支持:
route add return_addr gw router
其中 router 是本地子网路由器。
arp -s hostname ether_addr pub
。这使本地应用程序能将流量发送到内核中的返回地址。
CBR 支持所有所有平台上的并列配置而没有其它配置要求。然而,您使用的 Web 服务器和高速缓存代理必须是特定绑定的。
高可用性功能(使用 dscontrol highavailability 命令配置)可用于分派器组件(但不可用于 CBR 或站点选择器组件)。
为提高分派器的可用性,分派器高可用性功能使用了下列机制:
如果可能,建议至少一个工作频率对应该跨越单独的子网而不是常规群集流量。使工作频率流量保持不同,将帮助在网络负载很重的时候防止错误的接管,并且也可在故障恢复之后改进完整的恢复次数。
dscontrol highavailability - 控制高可用性中给出了 dscontrol highavailability 的完整语法。
要获取关于下列任务的更全面的讨论,请参阅设置分派器机器。
仅适用于 Windows 平台:此外,使用 dsconfig 命令配置每个非转发的地址。例如:
dsconfig en0 nfa_addr netmask netmask
dscontrol cluster set clusterA primaryhost NFAdispatcher1 dscontrol cluster set clusterB primaryhost NFAdispatcher2
dscontrol cluster set clusterB primaryhost NFAdispatcher2 dscontrol cluster set clusterA primaryhost NFAdispatcher1
dscontrol highavailability heartbeat add sourceaddress destinationaddress
Primary - highavailability heartbeat add 9.67.111.3 9.67.186.8 Backup - highavailability heartbeat add 9.67.186.8 9.67.111.3至少一个工作频率对必须具有成对的 NFA 作为源和目的地地址。
如果可能,建议至少一个工作频率对应该跨越单独的子网而不是常规群集流量。使工作频率流量保持不同,将帮助在网络负载很重的时候防止错误的接管,并且也可在故障恢复之后改进完整的恢复次数。
设置执行程序用于高可用性心跳检测信号超时的秒数。示例:
dscontrol executor hatimeout 3
缺省值为 2 秒。
dscontrol highavailability reach add 9.67.125.18建议有到达目标,但是这并不是必要的。请参阅使用工作频率和到达目标的故障检测能力,以获取更多信息。
dscontrol highavailability backup add primary [auto | manual] port
dscontrol highavailability backup add backup [auto | manual] port
dscontrol highavailability backup add both [auto | manual] port
dscontrol highavailability status每台机器应该具有正确的角色(备份机器、主机器或者两者)、状态及子状态。主机器应是活动和同步的;备份机器应处于备用模式并且应在短时间内被同步化。策略必须相同。
记录:
除故障检测的基本标准(通过工作频率消息检测活动与备用的分派器之间的连接是否丢失)外,还有另一个名为可达性标准的故障检测机制。配置分派器时,要提供主机列表,每个分派器应该能够到达这些主机以正确工作。这两个高可用性伙伴通过心跳继续相互进行联系,并且根据它们中任一个可以 ping 到的目标数相互更新。如果备用 ping 所达到的目标数超过活动的 ping,则发生故障转移。
心跳由活动的分派器发送,并且预期每半秒由备用分派器接收。如果备用分派器在 2 秒内未能接收心跳,则开始故障转移。所有心跳检测信号必须中断,以发生备用分派器接管。换句话说,当配置两个心跳对时,必须同时中断这两个心跳对。要使高可用性环境稳定并避免故障转移,建议您添加多个心跳对。
对于到达的目标,您应该至少为分派器机器使用的每个子网选择一个主机。 主机可能是路由器、IP 服务器或其它类型的主机。主机可达性由 ping 主机的到达顾问程序获取。当心跳消息无法贯通时,或当备用分派器比主分派器更符合可达性标准时,发生故障转移。为能根据全部可用的消息做出决定,活动的分派器定期向备用分派器发送其可达性能力信息。 然后备用分派器将此能力与自己的情况进行比较,决定是否需要切换。
配置两台分派器机器:主机器与另一个称为备份的机器。在启动时,主机器将全部连接数据发送到备份机器,直至两台机器同步。主机器变为活动状态,即:它开始进行负载均衡。这期间备份机器监视主机器的状态,被称为处于备用状态。
如果任何时候备份机器检测到主机器已经发生故障,它就立即接管主机器的负载均衡功能并成为活动的机器。当主机器再次恢复运行后,机器将根据用户配置的恢复策略作出响应。有两种策略:
对两台机器必须设置相同的策略参数。
手工恢复策略允许您使用 takeover 命令强制将信息包路由到特定的机器。当在其它机器上执行维护时,手工恢复有用。自动恢复策略是为通常的无人照管操作而设计的。
对于相互高可用性 配置,没有每群集故障。如果有一个机器发生问题,即使仅仅影响一个群集,另一台机器也将接管所有的群集。
为了使分派器路由信息包,每个群集地址必须是网络接口设备的别名。
这是因为当检测到故障时分派器机器将更改状态,所以必须自动发出以上命令。分派器将执行用户创建的脚本以完成上 述操作。样本脚本可在 ...ibm/edge/lb/servers/samples 目录中查找到,且为了运行这些脚本,必须将其移动到 ...ibm/edge/lb/servers/bin 目录。
可以使用下列样本脚本:
在 Windows 系统上:在配置设置中,如果您使用站点选择器 负载均衡两个在高可用性环境中运行的分派器机器,那么您需要为度量服务器在 Microsoft 堆栈上添加别名。 此别名将被添加到 goActive 脚本中。例如:
call netsh interface ip add address "Local Area Connection" addr=9.37.51.28 mask=255.255.240.0
在 goStandby 和 GoInOp 中,需要除去别名。例如:
call netsh interface ip delete address "Local Area Connection" addr=9.37.51.28
如果机器上有多个 NIC,那么通过在命令提示符下发出以下命令以首先检查您将使用哪个接口:netsh interface ip show address。 此命令会返回一个当前已配置接口的列表,并编号“本地区域连接”(例如,“本地区域连接 2”),以此您可确定要使用哪个接口。
重要信息:当在 Linux for S/390 上运行分派器时 -
分派器发出无端的 ARP 将 IP 地址从一个分派器移动到另一个分派器。因此,此机制取决于底层的网络类型。在 Linux for S/390 上运行时,仅在能发出无端 ARP 并在本地接口上配置地址的那些接口上,分派器才能进行本机高可用性接管(通过移动 IP 地址完成)。此机制在点到点接口(例如,IUCB 和 CTC)上不会正常工作,并且在 QETH/QDIO 的某些配置中也不会正常工作。
对于分派器的本机 IP 接管功能不会正常工作的接口和配置,客户可以将适当的命令放置在 go 脚本中来手工移动这些地址。这会确保那些网络拓扑也可以受益于高可用性。
什么时候将什么信息包发送给哪些服务器,这些可以使用基于规则的负载均衡来很好地调节。Load Balancer 复查您按照优先级从高到低的顺序添加的任何规则,并在找到第一条符合条件的规则时停止,然后在与此规则关联的任何服务器之间对内容进行负载均衡处理。它虽然已根据目的地和端口来平衡负载,但是使用规则能扩展分发连接的能力。
配置规则时的大多数情况下,您应该配置缺省总是为真规则以捕捉通过其余更高优先级规则的请求。当所有其它服务器没能捕捉到客户机请求时,响应可能是“对不起,站点当前当机,请稍后再试”。
由于某种原因您要使用您的服务器子集,您应该使用分派器和站点选择器中基于规则的负载均衡。您必须总是对 CBR 组件使用规则。
建议在开始向配置添加规则前,制定一个希望规则遵循的逻辑计划。
所有的规则都具有名称、类型、优先级,并可能具有开始范围和结束范围和一个服务器组。另外,CBR 组件的内容类型规则具有与其关联的匹配正则表达式。(如何使用内容规则和内容规则的有效模式语法的示例和方案,请参阅附录 B, 内容规则(模式)语法)。
按照优先级次序评估规则。也就是说,优先级 1(较低数)的规则在优先级 2(较高数)的规则前评估。将使用第一个符合的规则。一旦满足了某个规则,就不再对更多的规则进行评估。
要满足一个规则,必须符合下面两个条件:
如果规则没有与其关联的服务器,规则只需符合条件一即为满足。在这种情况下,分派器将删除连接请求,站点选择器将返回一个有错误的名称服务器请求,CBR 将导致高速缓存代理返回一个错误页面。
如果没有满足任何规则,分派器将从该端口上全部可用服务器集中选择一个服务器,站点选择器将从站点名称可用的全部服务器集中选择一个服务器,CBR 将导致高速缓存代理返回错误页面。
此规则类型在分派器、CBR 或站点选择器组件中可用。
如果想根据客户来源筛选客户并分配资源,就可能要使用基于客户机 IP 地址的规则。
例如,您可能已经注意到,您的网络会收到许多未付费而且也不需要的流量,这些流量来自一组特定 IP 地址的客户机。可以使用 dscontrol rule 命令创建一条规则,例如:
dscontrol rule add 9.67.131.153:80:ni type ip beginrange 9.0.0.0 endrange 9.255.255.255
此“ni”规则将筛选出任何来自 IBM 客户机的连接。然后您向此规则添加期望对于 IBM 用户可访问的服务器,或者如果您不向此规则添加任何服务器,您的任何服务器将不对来自 9.x.x.x 地址的请求提供服务。
此规则类型仅可用于分派器组件。
执行请求过程中,如果客户机使用某种需要 TCP/IP 的特定端口的软件,则可 能要使用基于客户机端口的规则。
例如,可以创建一条规则,即客户机端口 10002 的任何请求将使用一组特殊的快速服务器,因为知道该端口的任何客户机请求都发自客户中的一组主要用户。
此规则类型在分派器、CBR 或站点选择器组件中可用。
出于容量计划的原因,用户可能要使用基于时间的规则。例如,如果您的 Web 站点每天主要在相同的几个时间段有大量访问,您可能希望指定五台服务器全天执行 HTTP,然后在高峰期间另外增加五台。
另一个可能使用这类规则的原因是,在每晚午夜要使几个服务器当机进行维修,因此必须设置一条规则以在需要的维修期间不使用那些服务器。
此规则类型仅可用于分派器组件。
可能希望基于 IP 头中“服务类型”(TOS)字段的内容使用规则。例如,如果一个客户机请求带有一个表明普通服务的 TOS 值,可以将它路由到一个服务器组。如果另一个客户机请求带有一个不同的 TOS 值,该值表明了更高的服务优先级,可以将它路由到一个不同的服务器集合。
TOS 规则允许您使用 dscontrol rule 命令完全配置 TOS 字节中的每一位。对于重要的希望在 TOS 字节中匹配的位,使用 0 或 1。否则,使用值 x。以下是添加 TOS 规则的示例:
dscontrol rule add 9.67.131.153:80:tsr type service tos 0xx1010x
此规则类型在分派器和 CBR 组件中可用。
如果需要与其它应用程序共享您的某些服务器,则可能要使用基于每秒连接数的规则。例如,您可设置两个规则:
或者可能使用 Telnet 并想保留五个服务器中的两个用于 Telnet,除非当每秒连接数增长超过一定级别。通过该方法,分派器将在高峰时间平衡所有五台服务器上的负载。
设置规则评估选项“upserversonrule”和“连接”类型规则:当使用连接类型规则和设置 upserversonrule 选项时,如果服务器集中的某些服务器当机,则您可以确保剩余的服务器不会过载。请参阅服务器评估规则选项以获取更多信息。
此规则在分派器或 CBR 组件中可用。
如果服务器过载并开始将信息包丢弃,则可能要使用基于端口活动连接总数的规则。特定 Web 服务器将继续接收连接,即使没有足够的线程来响应请求。结果,客户机请求超时,访问 Web 站点的客户未得到服务。可使用基于活动连接数的规则来平衡服务器池的容量。
例如,从经验中得知服务器接受 250 个连接之后将停止服务。可以使用 dscontrol rule 或 cbrcontrol rule 命令创建一条规则,例如:
dscontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500 或 cbrcontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500
然后向规则添加当前服务器及一些附加服务器,否则这些服务器将被用于其它进程。
保留带宽和共享带宽规则仅可用于分派器组件。
对于带宽规则,分派器将带宽计算为一组特定的服务器发送到客户机的数据率。分派器在服务器、规则、端口、群集和执行程序级别跟踪容量。对于这些级别中的每个级别,都有一个字节计数器字段:每秒转移的千字节数。分派器在 60 秒间隔以上计算这些比率。您可从 GUI 或命令行报告输出查看这些比率值。
保留带宽规则允许您控制一个服务器组发送的每秒千字节数。通过为整个配置中的每个服务器集设置阈值(分配指定的带宽范围),您可控制并保证每个群集端口组合使用的带宽量。
以下是添加 reservedbandwidth 规则的示例:
dscontrol rule add 9.67.131.153:80:rbw type reservedbandwidth beginrange 0 endrange 300
以千字节/秒指定开始范围和结束范围。
在配置共享带宽规则之前,您必须使用带有 sharedbandwidth 选项的 dscontrol executor 或 dscontrol cluster 命令,指定可在执行程序或群集级别共享的最大带宽量(每秒千字节数)。sharebandwidth 值应不超过可用的总带宽量(总网络容量)。 使用 dscontrol 命令设置共享带宽仅提供规则的上限。
以下是命令语法的示例:
dscontrol executor set sharedbandwidth size dscontrol cluster [add | set] 9.12.32.9 sharedbandwidth size
sharedbandwidth 大小是整数值(千字节/秒)。缺省值为零。如果值为零,则不能共享带宽。
群集级别的共享带宽允许此群集使用的指定最大带宽量。只要此群集所使用的带宽低于指定的量,则此规则将评估为“真”。如果使用的总带宽大于指定的量,则此规则将评估为“假”。
在执行程序级别共享带宽允许整个分派器配置共享最大带宽量。只要在执行程序级别使用的带宽低于指定的量,则此规则将评估为“真”。如果使用的总带宽大于所定义的量,则此规则将评估为“假”。
下列是共享宽带规则的添加或设置示例:
dscontrol rule add 9.20.30.4:80:shbw type sharedbandwidth sharelevel value dscontrol rule set 9.20.34.11:80:shrule sharelevel value
sharelevel 的 value 是执行程序或群集。Sharelevel 是 sharebandwidth 规则上的必需参数。
分派器允许您使用保留带宽规则,把指定的带宽分配给配置中的服务器集。通过指定开始和结束范围,您可以控制一个服务器组发送到客户机的千字节数范围。一旦此规则不再评估为“真”(超出结束范围),将评估下一个较低优先级的规则。 如果下一个较低优先级的规则是“总是为真”规则,则可以选择某个服务器以响应具有“站点忙”响应的客户机。
例如:考虑端口 2222 上的一组三台服务器。如果保留带宽设置为 300,则超过 60 秒的时间段每秒最大字节数将为 300。当超出此比率时,规则不再评估为“真”。如果这是唯一的规则,则分派器将选择三台服务器中的其中一台来处理此请求。如果有较低优先级的“总是为真”规则,则可以将此请求重定向到另一台服务器,并且回答为“站点忙”。
共享带宽规则可以将附加服务器访问权提供给客户机。 明确地,当用作遵循保留带宽规则的较低优先级规则时,客户机仍可访问服务器,即使已超出保留带宽。
例如:通过使用遵循保留带宽规则的共享带宽规则,您可以允许客户机在受控的方式下获取到三台服务器的访问权。只要存在可用的共享带宽,规则将评估为“真”,并且授予其访问权。如果不存在可用的共享带宽,则此规则不为“真”,并评估下一个规则。如果接着是一个“总是为真”规则,则可按所需重定向此请求。
通过按先前的示例所述使用保留和共享带宽,较大的灵活性和控制可练习授予(或拒绝)对服务器的访问权。在带宽使用中可限制特定端口上的服务器,而其它服务器可使用其它带宽(只要它是可用的)。
此规则类型仅可用于站点选择器组件。
对于度量所有规则,您可选择系统度量(cpuload、memload 或您自己定制的系统度量脚本),站点选择器对系统度量值(由驻留在每个负载均衡服务器上的度量服务器代理程序返回)和您在规则中指定的开始范围和结束范围进行比较。服务器集中的所有服务器的当前系统度量值必 须在规则激发范围内。
下列是添加度量所有规则到您的配置的示例:
sscontrol rule add dnsload.com:allrule1 type metricall metricname cpuload beginrange 0 endrange 100
此规则类型仅可用于站点选择器组件。
对于度量平均规则,您可选择系统度量(cpuload、memload 或您自己定制的系统度量脚本),站点选择器对系统度量值(由驻留在每个负载均衡服务器上的度量服务器代理程序返回)和您在规则中指定的开始范围和结束范围进行比较。服务器集中的所有服务器的当前系统度量值 的平均必须在规则激发范围内。
下列是添加度量平均规则至您的配置的示例:
sscontrol rule add dnsload.com:avgrule1 type metricavg metricname cpuload beginrange 0 endrange 100
可以创建“总是为真”规则。这样的规则将总被选中,除非所有与其关联的服务器都当机。因此它一般应具有比其它规则更低的优先级。
甚至可以有多个“总是为真”规则,每个有一个服务器组与之关联。带有可用服务器的第一条为“真”的规则被选中。例如,假定有六台服务器。想要其中的两台在所有情况下处理流量,除非这两台服务器都当机。如果前两台服务器当机,需要第二个服务器组处理流量。如果这四台服务器都当机,则使用最后的两台服务器来处理流量。可以设置三 个“总是为真”规则。只要第一个服务器组中至少有一台在运行,则总是选择该服务器组。如果第一组都当机了,则将选择第二组中的一个,依次类推。
又如,可能需要一条“总是为真”规则,来确保如果进入客户机与设置的任何一条规则均不匹配,则得不到服务。您可使用 dscontrol rule 命令创建一条规则,如:
dscontrol rule add 130.40.52.153:80:jamais type true priority 100
然后不要将任何服务器添加到规则中,以此导致客户机信息包无响应丢失。
可以定义多个“总是为真”规则,此后通过更改其优先级级别来调整执行哪一个。
此规则类型可用于 CBR 组件或分派器组件(当使用分派器的 cbr 转发方法时)。
您将希望使用内容类型规则将请求发送至服务器组(设置该服务 器组处理您的站点流量的某些子集)。例如,您可能希望用一服务器组来处理所有 cgi-bin 请求,另一服务器组处理所有流式音频请求,第三组处理所有其它请求。您可添加三种规则,一种的模式与到 cgi-bin 目录的路径相匹配,另一种的模式与流式音频文件的文件类型相匹配,第三种总是为真规则用于处理其它流量。然后将适当的服务器添加到每个规则。
重要:如何使用内容规则和内容规则的有效模式语法的示例和方案,请参阅附录 B, 内容规则(模式)语法。
使用端口亲缘性覆盖,您可以覆盖指定服务器的端口粘性。例如,您使用规则限制连接到每个应用程序服务器的数目,并且有带总是为真规则的溢出服务器,此规则经常对该应用程序返回“请稍后重试”。 端口的 stickytime 值为 25 分钟,因此您不希望客户机粘着到那个服务器。使用端口亲缘性覆盖,您可以更改溢出服务器以覆盖通常与该端口关联的亲缘性。当下一次客户机请求该群集时,将对最有效的应用程序服务器进行负载均衡,而不是溢出服务器。
请参阅dscontrol server - 配置服务器,以获取关于使用服务器粘性 选项的端口亲缘性覆盖的命令语法的详细信息。
您可使用 dscontrol rule add 命令,通过编辑样本配置文件或使用图形用户界面(GUI)来添加规则。您可以向已定义的每个端口添加一个或多个规则。
这是一个两步过程:添加规则,然后定义如果规则为真,由哪些服务器提供服务。例如,系统管理员要跟踪代理服务器对站点上每部分的使用量。她知道每个部分获得哪个 IP 地址。她将基于客户机 IP 地址创建第一组规则,以分隔每部分的负载:
dscontrol rule add 130.40.52.153:80:div1 type ip b 9.1.0.0 e 9.1.255.255 dscontrol rule add 130.40.52.153:80:div2 type ip b 9.2.0.0 e 9.2.255.255 dscontrol rule add 130.40.52.153:80:div3 type ip b 9.3.0.0 e 9.3.255.255
然后,给每条规则添加一台不同的服务器,测量每台服务器上的负载,为每部分正确列出其使用的服务的数量。例如:
dscontrol rule useserver 130.40.52.153:80:div1 207.72.33.45 dscontrol rule useserver 130.40.52.153:80:div2 207.72.33.63 dscontrol rule useserver 130.40.52.153:80:div3 207.72.33.47
服务器评估选项仅可用于分派器组件。
在 dscontrol rule 命令上,有规则的服务器评估选项。使用评估选项选择在端口中的所有服务器上评估规则条件,或只在规则中的各服务器上评估规则条件。(在 Load Balancer 的早期版本中,您只能跨越端口上的所有服务器测量每个规则条件。)
记录:
下列是在保留带宽规则上添加或设置评估选项的示例:
dscontrol rule add 9.22.21.3:80:rbweval type reservedbandwidth evaluate level dscontrol rule set 9.22.21.3:80:rbweval evaluate level
评估 level 可设置为 port、rule 或 upserversonrule。缺省值是 port。
用于在规则中的各服务器上测量规则条件的选项,允许您配置具有下列特征的两个规则:
结果是,当流量超过第一个规则中服务器的阈值时,流量将发送到第二个规则中的“站点忙”服务器。当流量降至低于第一个规则中服务器的阈值时,新的流量将再继续发送到第一个规则中的服务器。
使用前个示例描述的两个规则,如果您把第一个规则的评估选项设置为 port(评估跨端口中所有服务器的规则条件),当流量超过那个规则的阈值时,流量发送到与第二个规则关联的“站点忙”服务器。
第一个规则测量端口中所有服务器的流量(包括“站点忙”服务器),以确定流量是否超过阈值。当拥塞减少和第一个规则关联的服务器的流量时,由于端口上的流量仍超过第一个规则的阈值,就可能发生意外的结果(此处流量继续发送至“站点忙”服务器)。
对于分派器和 CBR 组件:在您将群集端口配置为粘性时,启用亲缘性功能。将群集的端口配置为粘性允许后继的客户机请求定向到相同的服务器。 这是通过将执行程序、群集或端口级别的粘性时间设置为一定的秒数来完成的。可通过将粘性时间设为零来禁用此功能。
对于站点选择器组件:在您将站点名配置为粘性时,启用亲缘性功能。将站点名配置为粘性允许用户对多个名称服务请求使用同一服务器。这是通过将站点名称上的粘性时间设置为一定的秒数来完成的。可通过将粘性时间设为零来禁用此功能。
在禁用亲缘性功能的情况下,当从客户机接收到新的 TCP 连接时,Load Balancer 将及时选择正确的服务器并将信息包转发给它。如果从同一客户机处传来了后继的连接,Load Balancer 将把它作为一个无关的新连接并再次及时选择正确的服务器。
在启用亲缘性功能的情况下,如果从同一客户机接收到一个后续请求,此请求将定向到同一服务器。
在超时情况下,客户机将结束发送事务并且将丢失亲缘性记录。因此粘性“时间”的含义。每个亲缘性记录(以秒为单位)“粘性时间”的生命。当在粘性时间内接收到 后继的连接时,亲缘性记录将依然有效并且请求将转至相同的服务器。如果后继的连接不是在粘性时间内接收到的,则清除此记录;在此时间之后接收到的连接将转至一个新选中的服务器。
交叉端口亲缘性仅适用于分派器组件的 MAC 和 NAT/NATP 转发方法。
交叉端口亲缘性端口是扩展的粘性功能,可以涉及多个端口。例如,如果首先在一个端口上接收到客户机请求然后在另一个端口上接收到另一个请求,交叉端口亲缘性允许分派器将客户机请求发送到同一服务器。如果使用此功能,端口必须:
可以将一个以上的端口连接到相同的交叉端口。当后继的连接都来自同一端口的或共享端口上的相同客户机时,将访问同一台服务器。以下是一个使用到端口 10 的交叉端口亲缘性配置多个端口的示例:
dscontrol port set cluster:20 crossport 10 dscontrol port set cluster:30 crossport 10 dscontrol port set cluster:40 crossport 10
在建立交叉端口亲缘性后,将可以灵活的为端口修改粘性时间值。但是,建议将所有共享的端口的粘性时间值更改为相同的值,否则可能导致不可预期的后果。
要除去交叉端口亲缘性,将交叉端口值设置回它自己的端口号。请参阅dscontrol port - 配置端口,以获取关于 crossport 选项命令语法的详细信息。
亲缘性地址掩码仅应用于分派器组件。
亲缘性地址掩码是一种增强的粘性功能,它可根据公共子网地址对客户机进行分组。指定 stickymask 在 dscontrol port 命令上允许您屏蔽 32 位 IP 地址的公共高位。如果配置了此功能,当客户机请求首次与此端口建立连接时,具有相同子网地址(由将要进行屏蔽的地址部分表示)的客户机发出的所有后续请求将定向到同一服务器。
例如,如果您希望所有进入的具有相同的 A 类地址的客户机请求定向到相同的服务器,可以将 stickymask 值设置为对应端口的 8 位。要将具有相同的 B 类地址的客户机请求分组,将 stickymask 值设置为 16(位)。要将具有相同的 C 类地址的客户机请求分组,将 stickymask 值设置为 24(位)。
要获得最佳的效果,在第一次启动 Load Balancer 时设置 stickymask 值。如果动态的更改 stickymask 值,结果可能不可预测。
共享端口的 stickymask 值必须相同。有关更多的信息,请参阅交叉端口亲缘性。
要启用亲缘性地址掩码,发出类似于以下命令的 dscontrol port 命令:
dscontrol port set cluster:port stickytime 10 stickymask 8
可能的 stickymask 值是 8、16、24 和 32。值为 8 表明将屏蔽 IP 地址的第一个高 8 位(A 类地址)。值为 16 表明将屏蔽 IP 地址的第一个高 16 位(B 类地址)。值为 24 表明将屏蔽 IP 地址的第一个高 24 位(C 类地址)。如果指定值为 32,将屏蔽整个 IP 地址,其有效地禁用亲缘性地址掩码功能。stickymask 的缺省值是 32。
请参阅dscontrol port - 配置端口,以获取 stickymask(亲缘性地址掩码功能)命令语法的详细信息。
停顿处理应用于分派器和 CBR 组件。
由于任何原因(更新、升级和服务等)要从 Load Balancer 配置中除去服务器,您可使用 dscontrol manager quiesce 命令。quiesce 子命令允许现有连接完成(不被切断),如果将连接指定为粘性且粘性时间未到期,则此子命令仅将后继新连接从客户机转发至停顿的服务器。quiesce 子命令禁止任何其它新连接到服务器。
如果您设置了粘性时间,并且要在粘性时间到期之前把新连接发送到另一台服务器(以代替停顿的服务器),则使用停顿的“now”选项。下列是向停顿服务器 9.40.25.67 使用“now”选项的示例:
dscontrol manager quiesce 9.40.25.67 now
“now”选项决定如何处理粘性连接,如下所示:
这是较温和不生硬地停顿服务器的方法。例如,您可以温和地停顿服务器,然后等到流量最小的时候(可能是一清早),从配置中完全除去此服务器。
您可在 dscontrol rule 命令上指定以下亲缘性类型:
亲缘性选项的缺省值为“无”。端口命令的粘性时间选项必须为零(不启用),以将规则命令的亲缘性选项设置为活动 cookie、被动 cookie 或 URI。 一旦为规则设置了亲缘性,您就无法启用端口的粘性时间。
活动 cookie 亲缘性功能仅应用于 CBR 组件。
它提供了一种使客户机“粘”到特殊服务器的方法。此功能通过设置规则的粘性时间为正数来启用,并且设置亲缘性为“activecookie”。当添加规则或使用规则设置命令时,可以执行它。 请参阅dscontrol rule - 配置规则,以获取命令语法上的详细信息。
一旦已为活动 cookie 亲缘性启用规则,将使用标准 CBR 算法负载均衡新的客户机请求,当从相同的客户机继承将发送到最初选择的服务器的请求时。选择的服务器作为 cookie 存储在响应客户机中。只要客户机将来的请求包含 cookie,并且每个请求在粘性时间间隔内到达,客户机 将用初始服务器维护亲缘性。
活动 cookie 亲缘性用于确保在某段时间内继续将客户机负载均衡到相同的服务器。这通过发送 cookie 以被客户机浏览器存储来完成。cookie 包含用于做出决定的 cluster:port:rule、负载均衡所至的服务器和亲缘性不再有效时的超时时间戳记。cookie 具有以下格式:IBMCBR=cluster:port:rule+server-time! 为了不泄露 CBR 配置,编码 cluster:port:rule 和 server 信息。
只要规则激发打开了 cookie 亲缘性,就会检测客户机发送的 cookie。
然后新的 cookie 插入到回到客户机的头中,并且如果客户机的浏览器配置为接受 cookie,它将回送后继请求。
cookie 中的每个亲缘性实例长度将为 65 个字节,并且以惊叹号结束。因此,4096 个字节的 cookie 每个域可容纳大约 60 个单独的活动 cookie 规则。如果 cookie 完全填满,则将清除所有到期的亲缘性实例。如果所有实例仍有效,则将删除最旧的一个,并添加当前规则的新实例。
如果端口粘性时间为零(不启用),规则命令的活动 cookie 亲缘性选项仅可以设置为 activecookie。 一旦规则的活动 cookie 亲缘性是活动的,那么您将无法启用端口的粘性时间。
要启用特定规则的活动 cookie 亲缘性,使用规则设置命令:
rule set cluster:port:rule stickytime 60 rule set cluster:port:rule affinity activecookie
使规则具有粘性通常用于存储服务器上的客户机状态的 CGI 或 servlet。状态由 cookie 标识来标识(这些是服务器 cookie)。客户机状态仅在所选的服务器上,所以服务器需要来自该服务器的 cookie 以维护请求之间的状态。
活动 cookie 亲缘性具有一个缺省到期,它等于当前服务器时间加粘性时间间隔再加 24 小时。 如果您的客户机(将请求发送到 CBR 机器的那些客户机)的系统时间不正确(例如,它们比服务器时间至少早一天),那么那些客户机的系统将忽略来自 CBR 的 cookie,因为系统假设 cookie 已经到期。要设置较长的到期时间,修改 cbrserver 脚本。在该脚本文件中,编辑 javaw 行,在 LB_SERVER_KEYS 之后添加下列参数:-DCOOKIEEXPIREINTERVAL=X,其中 X 是要添加到到期时间的天数。
在 AIX、Solaris 和 Linux 上,cbrserver 文件位于 /usr/bin 目录。
在 Windows 上,cbrserver 文件位于 \winnt\system32 目录中。
被动 cookie 亲缘性应用到分派器组件的基于内容路由(cbr)转发方法和 CBR 组件。 请参阅分派器的基于内容路由(cbr 转发方法),以获取如何配置分派器的 cbr 转发方法的信息。
被动 cookie 亲缘性提供了一个使客户机粘着到特定服务器的方法。当您对“passivecookie”启用规则的亲缘性时,被动 cookie 亲缘性允许您用亲缘性平衡负载 Web 流量到相同的服务器(基于服务器生成的自标识 cookie)。在规则级别配置被动 cookie 亲缘性。
规则激发时,如果启用 被动 cookie 亲缘性,Load Balancer 将根据客户机请求的 HTTP 头中的 cookie 名称选择服务器。Load Balancer 开始将来自客户机的 HTTP 头与为每个服务器配置的 cookie 值进行比较。
Load Balancer 首次发现服务器的 cookie 值包含客户机的 cookie 名时,Load Balancer 为请求选择该服务器。
如果客户机请求中未找到 cookie 名,或找到了但与服务器 cookie 值的任何内容都不匹配,则使用现有的服务器选择或加权循环法技术选择服务器。
要配置被动 cookie 亲缘性:
如果端口粘性时间是零(不启用的),规则命令的被动 cookie 亲缘性选项仅可以设置为 passivecookie。一旦被动 cookie 亲缘性在规则上是活动的,那么您无法在端口上启用粘性时间。
URI 亲缘性应用于分派器的 cbr 转发方法和 CBR 组件。请参阅分派器的基于内容路由(cbr 转发方法)如何配置 cbr 转发方法。
URI 亲缘性允许您负载均衡 Web 流量到高速缓存代理服务器,此代理服务器仅允许唯一内容在每个单独的服务器上高速缓存。结果,您将通过在多个机器上消去冗余内容高速缓存以有效地增加您站点的高速缓存容量。在规则级别配置 URI 亲缘性。规则一旦激发,如果启用 URI 亲缘性,且同一服务器组激活并响应,则 Load Balancer 将把具有相同 URI 的新进入的客户机请求转发到同一服务器。
通常,Load Balancer 可将请求分发到多个服务同样内容的服务器。与一组高速缓存服务器一起使用 Load Balancer 时,通常访问的内容最后变成在所有服务器上高速缓存。通过在多个机器上复制同样的高速缓存的内容支持非常高的客户机负载。这对于高容量 Web 站点是相当有用的。
但是,如果您的 Web 站点支持中等容量的客户机流量到不同的内容,您最好使更大高速缓存跨越多个服务器,如果每个高速缓存服务器包含唯一的内容且 Load Balancer 只将请求分发到具有该内容的高速缓存服务器,那么您的站点将执行得更好。
有了 URI 亲缘性,Load Balancer 允许您将高速缓存的内容分发到个别服务器,在多个机器上消除内容的冗余高速缓存。使用高速缓存代理服务器,不同内容的服务器站点的性能将因为此增强而改进。它将发送同样的请求到同一服务器,从而仅在单个服务器上高速缓存内容。并且高速缓存的有效大小将因为每个新服务器添加到池而变得更大。
要配置 URI 亲缘性:
如果端口粘性时间是零(不启用的),规则命令的 URI 亲缘性选项仅可以设置为 URI。如果 URI 亲缘性在规则上是活动的,那么您无法在端口上启用粘性时间。
此功能只用于分派器组件。
如果您没有使用分派器广域支持,也没使用分派器的 nat 转发方法,分派器配置要求分派器机器和它的服务器都连接到相同的 LAN 段(请参阅图 36)。客户机的请求进入分派器机器并发送到服务器。从服务器,响应直接发送回客户机。
Wide Area 分派器增强添加了对非现场服务器(称为远程服务器)的支持(请参阅图 37)。 如果远程站点不支持 GRE 且您未使用分派器的 nat 转发方法,那么远程站点必须由远程分派器机器(分派器 2)组成
及其本地连接的服务器(ServerG、ServerH 和 ServerI)。所有分派器机器必须使用相同的操作系统。 客户机信息包现在可以从因特网上发出,到达分派器机器,从那里再到达地理上远程的分派器机器,再到达一台其本地连接的服务器。
这允许一个群集地址在分发负载给世界范围的服务器的同时,支持世界范围内所有客户机请求。
最初接收信息包的分派器机器仍有本地服务器与它相连,它可以在本地服务器和远程服务器之间分发负载。
广域命令不复杂。要配置广域支持:
dscontrol server add cluster:port:server router address
要获取更多路由器关键字的信息,请参阅dscontrol server - 配置服务器。
在入口点分派器s 上:顾问程序将正确工作,而无需大多数平台的任何特殊配置。
Linux
Solaris
arp -s <my_cluster_address> <my_mac_address> pub
在远程分派器s 上:为每个远程群集地址执行下列配置步骤。对于远程 Load Balancer 位置上的高可用性配置,您必须在两台机器上都执行这些步骤。
AIX
ifconfig lo0 alias 9.67.34.123 netmask 255.255.255.255
Linux
ifconfig lo:1 9.67.34.123 netmask 255.255.255.255 up
Solaris
Windows
dscontrol 执行程序配置 9.55.30.45
图 38. 使用远程 Load Balancer 的广域示例配置
该示例适用于图 38 中所描述的配置。
这里讲述如何配置分派器机器以支持端口 80 上的群集地址 xebec。LB1 定义为『入口点』 Load Balancer。假设以太网连接。注意,LB1 定义了五台服务器:三台本地(服务器 A、服务器 B 和服务器 C)和两台远程(LB2 和 LB3)。 远程 LB2 和 LB3 各定义了三台本地服务器。
在第一个分派器(LB1)的控制台上,执行下列操作:
dscontrol executor start
dscontrol executor set nfa LB1
dscontrol cluster add xebec
dscontrol port add xebec:80
dscontrol executor configure LB1 还将 xebec 配置为 clusteraddr。
dscontrol executor configure xebec
在第二个分派器(LB2)的控制台:
dscontrol executor start
dscontrol executor set nfa LB2
dscontrol cluster add xebec
dscontrol port add xebec:80
dscontrol executor configure LB2
在第三个分派器(LB3)的控制台:
dscontrol executor start
dscontrol executor set nfa LB3
dscontrol cluster add xebec
dscontrol port add xebec:80
dscontrol executor configure LB3
一般路由封装(GRE)是 RFC 1701 和 RFC 1702 中指定的因特网协议。使用 GRE,Load Balancer 可以在 IP/GRE 信息包中封装客户机 IP 信息包,并把它们转发到服务器平台,例如 OS/390 。GRE 支持允许分派器组件将信息包负载均衡到与一个 MAC 地址关联的多个服务器地址。
Load Balancer 作为其 WAN 功能的一部分实现 GRE。这使得 Load Balancer 向任何可解开 GRE 信息包的服务器系统直接提供广域负载均衡。如果远程服务器支持封装的 GRE 信息包,则不需要在远程站点安装 Load Balancer。Load Balancer 用其 GRE 键字段设置为十进制值 3735928559 来封装 WAN 信息包。
对于此示例(图 39),要添加支持 GRE 的远程 ServerD,在您的 Load Balancer 配置中定义它,如同在 cluster:port:server 层次结构中定义 WAN 服务器一样:
dscontrol server add cluster:port:ServerD router Router1
Linux 具有封装 GRE 的能力,这里的 GRE 允许 Load Balancer 负载均衡 Linux/390 服务器映象,其中许多服务器映象共享一个 MAC 地址。 这允许入口点 Load Balancer 直接负载均衡 Linux WAN 服务器,而无需通过远程站点上的 Load Balancer。 这也允许入口点 Load Balancer 的顾问程序直接操作每个远程服务器。
在入口点 Load Balancer 上,按 WAN 的期望值配置。
要配置每个 Linux 后端服务器,以 root 用户身份发出下列命令。 (这些命令可以被添加到系统的启动设施中,以通过重新引导来保存更改。)
# modprobe ip_gre # ip tunnel add gre-nd mode gre ikey 3735928559 # ip link set gre-nd up # ip addr add cluster address dev gre-nd
一般情况下,分派器的负载均衡功能与使用该产品的站点的内容无关。但是,存在某一区域,其站点内容很重要,且与站点内容相关的决策对分派器的效率有重大影响。这就是链接寻址区域。
如果页面指定指向站点中个别服务器的链接,则实际上正在迫使客户机转向特定的机器,因此会导致忽略可能有效的所有负载均衡功能。因此,建议在页面包含的所有链接中总是使用分派器地址。注意,如果站点使用动态创建 HTML 的自动编程,则使用的寻址类型并非总是显式的。要最大程度地实现负载均衡,应了解所有显式地址并尽可能避免使用。
可以设置使用专用网的分派器和 TCP 服务器。 该配置可以减少影响网络性能的公用网络或外部网络上的竞争。
对于 AIX,如果在 SP(TM) 框架的节点上运行分派器和 TCP 服务器,则该配置还可以利用 SP High Performance Switch 的快速优势。
要创建专用网,每台机器必须至少具有两个 LAN 卡,其中一个卡连接到专用网。还必须配置在另一个子网上的第二个 LAN 卡。分派器机器然后通过专用网将客户机请求发送到 TCP 服务器。
Windows:执行下列命令:
dsconfig en1 10.0.0.x netmask 255.255.255.0
其中 en1 是分派器机器中第二个接口卡的名称、10.0.0.x 是第二个接口卡的网络地址,且 255.255.255.0 是专用网的网络掩码。
必须使用专用网地址来添加使用 dscontrol server add 命令添加的服务器;例如,请参阅图 40 中的 Apple 服务器示例,命令应编码为:
dscontrol server add cluster_address:80:10.0.0.1
而不是
dscontrol server add cluster_address:80:9.67.131.18
如果正使用站点选择器对分派器提供负载信息,则必须配置站点选择器以报告 专用地址上的负载。
使用仅适用于分派器组件的专用网配置。
使用通配符群集来组合服务器配置仅适用于分派器组件。
“通配符”指的是群集与多个 IP 地址相匹配的能力(例如,作为通配符)。群集地址 0.0.0.0 用于指定通配符群集。
如果有许多群集地址需要负载均衡,且所有群集的端口/服务器配置是 相同的,则可将所有群集组合到一个星号配置中。
您还必须在分派器工作站的网络适配器上明确地配置每个群集 地址。然而,您不能用 dscontrol cluster add 命令将群集地址添加到分派器配置中。
只添加通配符群集(地址 0.0.0.0),并根据需要为负载均衡配置端口和服务器。到已配置地址的适配器上的任何流量都将使用通配符群集配置进行负载均衡。
该方法的优点是确定要转至的最佳服务器时将考虑到所有群集地址的流量。如果一个群集获取许多流量,并已在其中一个服务器上创建许多活动连接,则到其它群集地址的流量将使用此信息进行负载均衡。
如果您有一些具有唯一的端口/服务器配置和具有公共配置的群集地址,还可以将通配符群集与实际群集组合起来。必须为每个实际的群集地址指定唯一的配置。所有公共配置都可以指定到通配符群集中。
使用通配符群集对防火墙负载均衡仅适用于分派器组件。群集地址 0.0.0.0 用于指定通配符群集。
可以使用通配符群集将流量负载均衡到分派器工作站的任何网络适配器上没有明确配置的地址。为了运行此功能,分派器至少需要看到所有要负载均衡的流量。没有在网络适配器上明确配置过的地址上的流量,分派器工作站是看不到的,除非该工作站配置为某一流量集的缺省路由。
一旦分派器已配置为缺省路由,任何通过分派器机器的 TCP 或 UDP 流量都可用通配符群集配置进行负载均衡。
一个此方面的应用程序是负载均衡防火墙。由于防火墙可处理任何目的地地址以及任何目的地端口上的信息包,所以您要能够不依赖目的地地址和端口来对流量进行负载均衡。
防火墙用于处理从非安全客户机到安全服务器的流量、来自 安全服务器的响应以及从安全客户机端到非安全服务器端的流量和响应。
您必须设置两个分派器机器,一个对到 非安全防火墙地址的非安全流量进行负载均衡,另一个对到安全防火墙地址的安全流量进行负载均衡。由于这两个分派器s 都必须使用通配符群集和具有不同服务器地址集的通配符端口,两个分派器必须在两个不同的工作站上。
将高速缓存代理和通配符群集一起用于透明代理仅适用于分派器组件。群集地址 0.0.0.0 用于指定通配符群集。
通配符群集功能还允许用分派器来启用高速缓存代理服务器的透明代理功能,该服务器与分派器驻留在同一处。仅 AIX 具有此功能,因为必须具有从分派器组件到操作系统的 TCP 组件的通信。
要启用此功能,必须在端口 80 上启动客户机请求的高速缓存代理侦听。然后配置一个通配符群集(0.0.0.0)。在通配符群集中,配置端口 80。在端口 80 中,将分派器机器的 NFA 配置为唯一的服务器。现在到端口 80 上任何地址的 客户机流量都将被传递到在分派器工作站上运行的高速缓存代理服务器。通常,客户机请求将被代理,响应消息将从高速缓存代理发送回该客户机。在此方式中,分派器组件不执行负载均衡。
通配符端口可用于处理没有明确配置端口的流量。它的一种用途是进行防火墙的负载均衡。另一种用途是确保适当处理未配置端口的流量。通过定义没有服务器的通配符端口,您将保证废弃到一个未配置的端口的任何请求,而不是将其回送到操作系统。 端口号 0(零)用于指定通配符端口,例如:
dscontrol port add cluster:0
当配置群集来处理被动的 FTP 和通配符端口时,缺省情况下,被动 FTP 利用整个没有特权的 TCP 端口范围进行数据连接。这表示附带通过负载均衡群集到 FTP 控制端口的现有连接的客户机将对由 Load Balancer 自动路由到与 FTP 控制连接相同的服务器的同一个群集具有后继控制连接和高端口连接(端口 > 1023)。
如果同一个群集的通配符端口和 FTP 端口没有相同的服务器集,则当客户机具有现有的 FTP 控制连接时,高端口应用程序(端口 > 1023)可能失败。因此,建议不要在同一个群集上为 FTP 和通配符端口配置不同的服务器集。如果需要此方案,则必须在 Load Balancer 配置中配置 FTP 守护进程被动端口范围。
此功能只用于分派器组件。
分派器提供检测潜在“拒绝服务”攻击和通过警告通知管理员的能力。分派器通过分析服务器上大量半开 TCP 连接的进入请求,简单拒绝服务攻击的公共特点,完成此工作。在拒绝服务攻击中,站点从大量源 IP 地址和源端口号接受大量伪 SYN 信息包,但是站点不接受 这些 TCP 连接的后继信息包。这将导致服务器上有大量半开的 TCP 连接,随着时间的进行,服务器可能变得很慢,不接受新到达连接。
Load Balancer 向用户提供可以定制的触发脚本的出口 来提醒管理员可能的服务拒绝攻击。分派器在 ...ibm/edge/lb/servers/samples 目录中提供以下样本脚本文件:
要运行文件,您必须移动它们至 ...ibm/edge/lb/servers/bin 目录并除去“.sample”文件扩展名。
要实现 DoS 攻击检测,在 dscontrol port 命令上设置 maxhalfopen 参数,按如下所示:
dscontrol port set 127.40.56.1:80 maxhalfopen 1000
在上述示例中,分派器将当前半开连接(驻留在端口 80 上的群集 127.40.56.1 的所有服务器)总数与阈值 1000(由 maxhalfopen 参数指定)进行比较。如果当前半开连接超出阈值,则调用警告脚本(halfOpenAlert)。当半开连接的数量下降到低于阈值,调用另一个警告脚本(halfOpenAlertDone)表明攻击结束。
确定如何设置 maxhalfopen 值:当站点正从正常到大流量时,周期性地(可能每隔 10 秒)运行半开连接报告(dscontrol port halfopenaddressreport cluster:port)。半开连接报告将返回当前状态“接收到所有半开连接”。您应该将 maxhalfopen 设置为大于您的站点有过的半开连接的最大数的 50% 到 200% 的值。
除报告的统计数据外,halfopenaddressreport 还将为所有访问过服务器而导致半开连接的客户机地址(多达将近 8000 对地址对)在日志(..ibm/edge/lb/servers/logs/dispatcher/halfOpen.log)中生成条目。
要为后端服务器提供其它拒绝服务攻击保护,您可以配置通配群集和端口。特别地,在每个配置的群集下添加无服务器的通配端口。同样,添加有一个通配端口且无服务器的通配群集。这会有废弃所有不寻址非通配群集和端口的信息包的结果。要获取通配群集和通配端口的信息,请参阅使用通配符群集来组合服务器配置和使用通配符端口定向到未配置的端口流量。
二进制日志记录 功能允许服务器信息存储在二进制文件中。然后可以处理这些文件,以分析在某一时间段内收集到的服务器信息。
对于每个在配置中定义的服务器,以下信息存储在二进制日志中。
从执行程序检索此信息中的某些信息作为管理器循环的一部分。因此,管理器必须运行以将信息记录到二进制日志中。
使用 dscontrol binlog 命令集配置二进制日志记录。
start 选项开始将服务器信息记录到位于日志目录中的二进制日志中。将在每小时的开始使用日期和时间作为文件名创建一个日志。
stop 选项停止将服务器信息记录到二进制日志。缺省情况下日志服务是停止的。
set interval 选项控制了信息写入日志的频繁程度。在每个管理器时间间隔,管理器都把服务器信息发送到日志服务器。只有在自上次写记录到日志以来,经过指定的日志间隔秒数后,这些信息才被写到日志中。缺省情况下,日志间隔设置为 60 秒。在管理器间隔和日志间隔的设置之间有一些交互作用。由于向日志服务器提供信息的时间间隔不会比管理器间隔秒数少,因此,如果日志间隔设置为小于管理器间隔,则将其设置为和管理器间隔相同将较为有效。此记录技术允许以任何间隔获取服务器信息。为了计算服务器权值,可以获取所有由管理器查看到的对服务器信息的更改。然而,可能不需要如此大量的信息分析服务器使用率和趋势。每 60 秒记录服务器信息将给予您在某一时间段内服务器信息的快照。将日志间隔设置过低会产生大量的数据。
set retention 选项控制日志文件的保留时间。比指定的保留时间更旧的日志文件 将被日志服务器删除。只有当日志服务器是由管理器调用的情况下才可能发生上述 情况,因此,如果停止管理器,就不能删除旧的日志文件。
status 选项返回日志服务的当前设置。这些设置是:服务是否启动、间隔是什么、保留小时是多少。
在 ...ibm/edge/lb/servers/samples/BinaryLog 目录中提供了样本 Java 程序和命令文件。此样本显示如何从日志文件检索所有信息并将其打印到屏幕。还可以定制它对数据进行任何类型的分析。一个使用提供的用于分派器的脚本和程序的示例:
dslogreport 2001/05/01 8:00 2001/05/01 17:00
要获取 2001 年 5 月 1 日上午 8:00 到下午 5:00 期间的分派器组件的服务器信息。(对于 CBR,使用 cbrlogreport。)
本章包含以下几节:
Cisco CSS 控制器或 Nortel Alteon 控制器可驻留在您负载均衡请求的服务器的同一机器上。这通常称为并列配置服务器。不需要附加配置步骤。
高可用性功能现在可用于 Cisco CSS 控制器和 Nortel Alteon 控制器。
要改进控制器容错,高可用性功能包含这些功能:
请参阅ccocontrol highavailability - 控制可用性和nalcontrol highavailability - 控制高可用性,以获取有关 xxxcontrol highavailability 的完整语法。
要配置控制器高可用性:
xxxcontrol highavailability add address 10.10.10.10 partneraddress 10.10.10.20 port 143 role primary
xxxcontrol highavailability add address 10.10.10.20 partneraddress 10.10.10.10 port 143 role secondary
address 和 partneraddress 参数在主和次机器上逆向。
xxxcontrol highavailability set beatinterval 1000
xxxcontrol highavailability usereach 10.20.20.20
必须在本地和伙伴控制器上配置相同数量的到达目标。
xxxcontrol highavailability start auto
xxxcontrol highavailability report
xxxcontrol highavailability takeover
这仅为维护所需。
记录:
除了通过工作频率消息检测到的活动与备用控制器之间的连接丢失以外,可达性是另一个故障检测机制。
当您配置控制器高可用性时,您可以提供每个控制器必须到达的主机列表,以正确工作。您的控制器机器使用的每个子网必须至少有一个主机。 这些主机可以是路由器、IP 服务器或其它主机类型。
主机可达性由 ping 主机的到达顾问程序获取。如果工作频率消息不能通过,或备用控制器较活动控制更符合可达性标准,则发生切换。要基于所有可用信息做出决定,活动控制器定期向备用控制器发送其可达性能力,反之亦然。然后,这些控制器将其可达性信息与其伙伴信息相比较,并确定谁应该是活动的。
两个控制器机器的角色配置为主和次。启动时,控制器交换信息,直至每台机器同步化。此时,主控制器移至活动状态,并开始计算权值和更新交换机,而次机器移至备用状态并监视主机器的可用性。
如果任何时候备用机器检测到活动机器已发生故障,则备用机器接管活动(已发生故障的)机器的负载均衡功能并成为活动机器。当主机器再次可运行时,这两台机器根据如何配置恢复策略来确定哪一台控制器将活动。
有两种恢复策略:
一旦主控制器再次可运行,它便移至活动状态,计算并更新权值。次机器在主机器活动后移至备用状态。
即使在主控制器可运行后,活动次控制器仍保持活动状态。
主控制器移至备用状态,并要求手工介入移至活动状态。
对两台计算机必须设置相同的策略参数。
有关 Cisco CSS 控制器高可用性配置的示例,请参阅示例。
有关 Nortel Alteon 控制器高可用性配置的示例,请参阅示例。
Load Balancer 的控制器功能基于以下设置执行负载均衡:
可以更改这些设置以优化网络负载均衡。
控制器可在其权值确定中使用一些或所有以下度量收集器:
您可以更改度量值重要性的相对比例。将比例看作百分比;相对比例之和必须等于 100%。缺省情况下,使用活动连接数和新连接数度量,并将其比例设置为 50/50。在您的环境中,您可能要尝试不同的度量比例组合以查找提供最佳性能的组合。
要设置比例值:
根据应用程序响应时间和可用性、来自顾问程序的反馈和来自系统监视程序(如,度量服务器)的反馈设置权值。如果您要手工设置权值,为服务器指定 fixedweight 选项。有关 fixedweight 选项的描述,请参阅控制器固定权值。
权值适用于提供服务的所有服务器。对于任何特定服务,根据两台服务器之间的相对权值在它们之间分配请求。例如,如果一台服务器的权值设置为 10,而另一台的设置为 5,则权值设置为 10 的服务器获得的请求数应是权值设置为 5 的服务器的两倍。
如果顾问程序发现服务器已当机,则服务器的权值设置为 -1。对于 Cisco CSS 控制器和 Nortel Alteon 控制器,通知交换机此服务器不可用,并且此交换机停止将连接分配给服务器。
没有控制器,顾问程序无法运行,且无法检测服务器是否当机。如果您选择运行顾问程序,但不希望控制器更新您已为特定服务器设置的权值,在用于 Cisco CSS 控制器的 ccocontrol service 命令或用于 Nortel Alteon 控制器的 nalcontrol server 命令中使用 fixedweight 选项。
使用 fixedweight 命令将权值设置为您期望的值。当控制器运行时,服务器权值保持固定,直至您发出另一个 fixedweight 设置为 no 的命令。
要优化整个性能,您可以限制收集度量的频率。
咨询器休眠时间指定咨询器更新服务器权值的频率。如果咨询器休眠时间太短,这可能意味着由于咨询器经常中断交换机而导致性能差。如果咨询器休眠时间太长,则可能意味着交换机的负载不是基于准确、最新的信息。
例如,要将咨询器休眠时间设置为 1 秒:
xxxcontrol consultant set consultantID sleeptime interval
其它方法可用于优化您服务器的负载均衡。为了以最快速度工 作,仅当权值更改很大时,才更新服务器权值。当服务器状态只有微小更改或无更改时,频繁更新权值将会导致不 必要的开销。当提供某个服务的所有服务器总权值的百分率权值更改大于灵敏度阈值时,更新 load balancer 用于分配连接的权值。例如,假设,总权值从 100 更改为 105。改 变为 5%。使用缺省灵敏度阈值 5,不更新 load balancer 使用的权值,因为百分率更改不超出阈值。然而,如果总权值从 100 更改为 106,将更新权值。要将咨询器的灵敏度阈值设置为不同于缺省的值,请输入以下命令:
xxxcontrol consultant set consultantID sensitivity percentageChange
大多数情况下,您不需要更改这个值。
顾问程序是 Load Balancer 中的代理程序。它们的目的是访问服务器的运行状况和负载。它们通过与服务器进行预设客户机式交换来操作。将顾问程序作为应用程序服务器的轻量级客户机。
顾问程序定期打开与每个服务器的 TCP 连接并将请求消息发送到该服务器。消息内容特定于运行在服务器上的协议。例如,HTTP 顾问程序将 HTTP“HEAD”请求发送给服务器。
然后顾问程序侦听服务器的响应。获取响应后,顾问程序评估此服务器。要计算此负载值,大部分顾问程序测量服务器的响应时间,然后使用此值(以毫秒为单位)作为负载。
然后顾问程序将负载值报告给咨询器功能,结果将出现在咨询器报告中。然后咨询器计算所有源的聚集权值(基于每个咨询器比例),并将这些权值发送到交换机。此交换机使用这些权值对新进入的客户机连接进行负载均衡。
如果顾问程序确定服务器是活动的并且工作正常,它将向咨询器报告一个正的、非零负载数。如果顾问程序确定服务器不是活动的,它将返回一个特殊的负载值(-1),以通知此交换机服务器当机。接着,直至服务器交换机已恢复运行后,交换机才把任何进一步的连接转发到该服务器。
顾问程序休眠时间设置顾问程序向其监视的端口上的服务器询问状态然后向咨询器报告结果的频率。如果顾问程序休眠时间太短,可能会由于顾问程序经常中断服务器而导致性能差。如果顾问程序休眠时间太长,这可能意味着咨询器的权值判定不是基于准确、最新的信息。
例如,要将 HTTP 顾问程序的间隔设置为 3 秒,请输入以下命令:
xxxcontrol metriccollector set consultantID:HTTP sleeptime 3
您可以设置顾问程序用于检测服务器上特定端口或服务发生故障所花的时间量。故障服务器超时值(connecttimeout 和 receivetimeout)确定在报告连接或接收已失败之前,顾问程序可等待的时间。
要获取最快故障服务器 检测,将顾问程序连接和接收超时设置为最小值(一秒),并将顾问程序和咨询器休眠时间设置为最小值(一秒)。
要将 HTTP 顾问程序的 timeoutconnect 设置为 9 秒,请输入以下命令:
xxxcontrol metriccollector set consultantID:HTTP timeoutconnect 9
连接和接收超时的缺省值是为顾问程序休眠时间指定值的 3 倍。
在标记服务器当机之前,顾问程序将重试连接的能力。在服务器查询失败次数达到重试数加 1 之后,顾问程序将标记服务器当机。
对于 Cisco CSS 控制器,使用 ccocontrol ownercontent set 命令来设置重试值。 要获得更多信息,请参阅ccocontrol ownercontent - 控制所有者名称和内容规则。
对于 Nortel Alteon 控制器,使用 nalcontrol service set 命令来设置重试值。要获得更多信息,请参阅nalcontrol service - 配置服务。
定制(可定制的)顾问程序是一小段 Java 代码(您以类文件提供),并由基本代码调用。基本代码提供所有管理服务,如:
它还将结果报告给咨询器。基本代码定期执行顾问程序循环,它独立地评估配置中的所有服务器。它通过打开与服务器的连接启动。如果打开了套接字,基本代码将调用定制顾问程序中的 getLoad 方法(函数)。然后定制顾问程序执行一些必要步骤以评估服务器的运行状况。通常,它发送一条用户定义的消息至服务器,然后等待响应。(提供给定制顾问程序对打开套接字的访问权。)然后基本代码关闭与服务器的套接字,并向咨询器报告负载信息。
基本代码和定制顾问程序可以正常方式或置换方式操作。操作方式选项在定制顾问程序文件中指定为构造函数方法中的参数。
在正常方式下,定制顾问程序与服务器交换数据,基本顾问程序代码计算交换时间并计算负载值。然后基本代码将负载值报告给咨询器。定制顾问程序只需要返回 0(成功)或 -1(出错)。要指定正常方式,请将构造函数中的替换标志设置为假(false)。
在置换方式中,基本代码不执行计时。定制顾问程序代码执行唯一要求的任何操作,然后返回实际负载数。基本代码将接受该数并将其报告给咨询器。要获得最好的结果,请将您的负载数规格化为 10 到 1000,10 代表快速服务 器,1000 代表慢速服务器。要指定置换方式,请将构造函数中的标志设置为真(true)。
使用这种功能,用户可以写自己的顾问程序,它将提供所需的有关服务器的精确信息。样本定制顾问程序 ADV_ctlrsample.java 为控制器提供。安装 Load Balancer 后,您可以在 ...ibm/edge/lb/servers/samples/CustomAdvisors 安装目录中找到此样本代码。
缺省安装目录是:
您的定制顾问程序文件名必须是 ADV_myadvisor.java 格式。它必须以大写 ADV_ 作为前缀。所有后继字符都必须是小写字母。
按 Java 约定,文件中定义的类名必须与文件名匹配。如果您复制样本代码,一定要将文件中的所有 ADV_sample 实例更改为新的类名。
定制顾问程序是以 Java 语言编写的。您必须获取 Java 1.4 编译器,并安装在机器上。在编译期间引用以下文件:
在编译期间,您的类路径必须指向定制顾问程序文件和基类文件。
对于 Windows 平台,一条编译命令可能是这样的:
javac -classpath install_dir\lb\servers\lib\ibmnd.jar ADV_pam.java
其中:
编译的输出是类文件;例如:
ADV_pam.class
启动顾问程序之前,将类文件复制到 ...ibm/edge/lb/servers/lib/CustomAdvisors 安装目录。
对于 AIX、HP-UX、Linux
要运行定制顾问程序,必须先将类文件复制到适当的安装目录:
...ibm/edge/lb/servers/lib/CustomAdvisors/ADV_pam.class
启动咨询器,然后发出此命令以启动您的定制顾问程序:
其中:
与所有顾问程序一样,定制顾问程序扩大了顾问程序基础部分(称为 ADV_Base)的功能。实际上是顾问程序基础部分执行大多数顾问程序的功能,例如报告负载给咨询器以在咨询器的权值算法中使用。顾问程序基础部分还执行套接字连接和关闭操作,并提供顾问程序使用的发送和接收方法。顾问程序本身仅用于在正被咨询的服务器与端口之间发送和接收数据。顾问程序基础部分中的 TCP 方法 定时计算负载。如果需要,ADV_base 中构造函数内的标记用顾问程序返回的新负载值覆盖现有负载值。
这些是基类方法:
控制器首先参看提供的本机顾问程序列表;如果它们在此找不到给定的顾问程序,则查看定制顾问程序的列表。
/opt/ibm/edge/lb/servers/lib/CustomAdvisors/
C:\Program Files\IBM\edge\lb\servers\lib\CustomAdvisors
样本顾问程序中包含了一个控制器样本顾问程序的程序清单。安装后,此样本顾问程序可在 ...ibm/edge/lb/servers/samples/CustomAdvisors 目录中找到。
度量服务器以系统特定度量(报告服务器运行状况)格式向 Load Balancer 提供服务器负载信息。Load Balancer 咨询器查询驻留在每台服务器上的度量服务器代理程序,使用从代理程序获得的度量给负载均衡进程指定权值。结果也放在 Cisco CSS 控制器的服务报告或 Nortel Alteon 控制器的服务器报告中。
度量服务器代理程序必须安装且运行在被负载均衡的所有服务器上。
下面是配置控制器的度量服务器的步骤。
对于 Nortel Alteon 控制器,添加一个交换机咨询器,然后添加一个服务。
其中 metricName 是度量服务器脚本的名称。
系统度量脚本驻留在后端服务器上,且在特定所有者内容或服务下的配置中的每个服务器上运行。提供 cpuload 和 memload 两个脚本,或者您可以创建定制系统度量脚本。此脚本包含一个必须返回数值的命令。此数值表示一个负载测量值,而不是可用性值。
限制:对于 Windows,如果您的系统度量脚本名的扩展名不是 .exe,则您必须指定文件全名;例如,mySystemScript.bat。这是因为 Java 限制。
可选地,您可以写您自己的定制度量脚本文件,这些文件定义度量服务器将在服务器上发出的命令。确保任何定制脚本是可执行的,并位于 ...ibm/edge/lb/ms/script 目录。定制脚本必须返回数字负载值。
要使度量服务器在本地主机以外的地址上运行,请编辑负载均衡服务器上的 metricserver 文件。在 metricserver 文件中出现 java 的后面插入以下内容:
-Djava.rmi.server.hostname=OTHER_ADDRESS
另外,在 metricserver 文件中的“if”语句之前,添加下列行:hostname OTHER_ADDRESS。
对于 Windows:为: Microsoft 堆栈上的 OTHER_ADDRESS 取别名。要在 Microsoft 堆栈上建立地址的别名,请参阅页面 ***。
WLM 是在 MVS 大型机上运行的代码。可以查询它来询问 MVS 机器上的负载。
当在 OS/390 系统上配置 MVS 工作负载管理时,控制器可接受来自 WLM 的容量信息并在负载均衡过程中使用它。使用 WLM 顾问程序,控制器定期地打开通过咨询器主机表中每个服务器上 WLM 端口的连接,并接受返回的容量整数。由于这些整数代表仍然可用的容量,并且咨询器需要代表每台机器上负载的值,所以容量整数由顾问程序转换并规范化成负载值(例如,大容量整数和小负载值同时代表较健康的服务器)。WLM 顾问程序和其它控制器顾问程序之间有一些重要区别:
二进制日志记录 功能允许服务器信息存储在二进制文件中。然后可以处理这些文件,以分析在某一时间段内收集到的服务器信息。
对于每个在配置中定义的服务器,以下信息存储在二进制日志中。
必须运行咨询器,以将信息记录到二进制日志。
使用 xxxcontrol consultant binarylog 命令集配置二进制日志记录。
start 选项开始将服务器信息记录到位于日志目录中的二进制日志中。将在每小时的开始使用日期和时间作为文件名创建一个日志。
stop 选项停止将服务器信息记录到二进制日志。缺省情况下日志服务是停止的。
set interval 选项控制了信息写入日志的频繁程度。在每个咨询器时间间隔,咨询器都将服务器信息发送到日志服务器。只有自上一个记录写到日志以来,经过了指定的日志间隔秒数后,此信息才被写入日志中。缺省情况下,日志间隔设置为 60 秒。
在咨询器间隔和日志间隔的设置之间有一些交互作用。由于向日志服务器提供信息的时间间隔不会比咨询器间隔秒数少,因此,如果日志间隔设置为小于咨询器间隔,则将其设置为和咨询器间隔相同较为有效。
此日志记录技术允许以任何间隔捕捉服务器信息。为了计算服务器权值,您可以捕捉所有由咨询器查看到的对服务器信息的更改;然而,可能不需要如此大量的信息分析服务器使用率和趋势。每 60 秒记录服务器信息将给予您在某一时间段内服务器信息的快照。将日志间隔设置过低会产生大量的数据。
set retention 选项控制日志文件的保留时间。日志服务器删除比指定的保留时间更旧的日志文件。只有当日志服务器被咨询器调用时才会发生这种情况,因此如果您停止咨询器,则旧的日志文件不被删除。
...ibm/edge/lb/servers/samples/BinaryLog 目录中提供样本 Java 程序和命令文件。此样本显示如何从日志文件检索所有信息并将其打印到屏幕。还可以定制它对数据进行任何类型的分析。
以下是一个使用提供的脚本和程序的示例:
xxxlogreport 2002/05/01 8:00 2002/05/01 17:00
这产生从 2002 年 5 月 1 日上午 8:00 到下午 5:00 期间的控制器的服务器信息报告。
Load Balancer 提供触发可定制脚本的用户出口。您可创建脚本以执行自动操作,如当服务器标记为当机或仅记录故障事件时,提醒管理员。可定制的样本脚本位于 ...ibm/edge/lb/servers/samples 安装目录。要运行这些文件,将其复制到 ...ibm/edge/lb/servers/bin 目录,然后根据脚本中包含的说明重命名每个文件。
提供以下样本脚本,其中 xxx 是 Cisco CSS 控制器的 cco,以及 Nortel Alteon 控制器的 nal:
此部分提供有关管理和故障诊断 Load Balancer 的信息。 它包含以下几章:
本章说明如何操作和管理 Load Balancer 并包括下列部分:
Load Balancer 提供在不同于 Load Balancer 所在的单独机器上运行其配置程序的两种不同方法。 配置程序(dscontrol、cbrcontrol、sscontrol、ccocontrol 和 nalcontrol)和服务器(dsserver、cbrserver 等)之间的通信可通过使用以下方法之一来执行:
使用 RMI 的远程管理的优点是性能比基于 Web 的管理更快速。
使用基于 Web 的管理的优点是它提供已认证的安全远程管理,并且即使当存在防火墙时也可与 Load Balancer 机器通信。同样,此管理方法不需要在与 Load Balancer 机器通信的远程客户机上安装和使用认证密钥(lbkeys)。
对于 RMI,用于连接到 Load Balancer 机器以进行远程管理的命令是 dscontrol host:remote_host。
如果 RMI 调用来自不是本地机器的机器, 接受配置命令之前,必会发生公用密钥/专用密钥认证序列。
与组件服务器在同一机器上运行的控制程序间的通信不被认证。
使用以下命令生成用于远程认证的公用和专用密钥:
此命令仅在与 Load Balancer 的同一台机器上运行。
使用 create 选项,在服务器密钥目录(...ibm/edge/lb/servers/key/)中创建一个专用密钥,并且在管理密钥目录(...ibm/edge/lb/admin/keys/)中为每个 Load Balancer 组件创建专用密钥。公用密钥的文件名为:component-ServerAddress-RMIport。必须将这些公用密钥传送到远程客户机,并放置在管理密钥目录中。
对于每个组件使用缺省 RMI 端口的主机名地址为 10.0.0.25 的 Load Balancer 机器,lbkeys create 命令生成以下文件:
管理文件集已安装在另一台机器上。公用密钥必须放置在远程客户机上的 ...ibm/edge/lb/admin/keys 目录。
现在,将授权远程客户机在 10.0.0.25 上配置 Load Balancer。
这些相同的密钥必须用于您要授权配置 10.0.0.25 上的 Load Balancer 的所有远程客户机。
如果希望再次运行 lbkeys create 命令,则将生成一组新的公用/专用密钥。这意味着不会对所有尝试使用先前的密钥进行连接的远程客户机授权。新的密钥必须放在您要重新授权的那些客户机的正确目录中。
lbkeys delete 命令删除服务器上的专用和公用密钥。如果删除了这些密钥,则将不会有远程客户机被授权连接到服务器。
对于 lbkeys create 和 lbkeys delete,都有一个 force 选项。force 选项会抑制命令提示符询问您是否要覆盖或删除现有密钥。
您一旦建立 RMI 连接,就可以从命令提示符使用 dscontrol、cbrcontrol、sscontrol、ccocontrol、nalcontrol、dswizard、cbrwizard 和 sswizard 命令在配置程序间通信。 您还可以通过从命令提示符输入 lbadmin,以通过 GUI 配置 Load Balancer。
要使用基于 Web 的管理,执行远程管理的客户机上需要以下内容:
在您访问的主机上需要以下内容,以便执行远程基于 Web 的管理:
对于 Windows 系统 -
Protect /lb-admin/lbwebaccess PROT-ADMIN Exec /lb-admin/lbwebaccess C:\PROGRA~1\IBM\edge\lb\admin\lbwebaccess.pl Pass /lb-admin/help/* C:\PROGRA~1\IBM\edge\lb\admin\help\* Pass /lb-admin/*.jar C:\PROGRA~1\IBM\edge\lb\admin\lib\*.jar Pass /lb-admin/* C:\PROGRA~1\IBM\edge\lb\admin\* Pass /documentation/lang/* C:\PROGRA~1\IBM\edge\lb\documentation\lang\*其中 lang 是您的语言子目录(例如,en_US)
对于基于 UNIX 的操作系统 -
Protect /lb-admin/lbwebaccess PROT-ADMIN Exec /lb-admin/lbwebaccess /opt/ibm/edge/lb/admin/lbwebaccess.pl Pass /lb-admin/help/* /opt/ibm/edge/lb/admin/help/* Pass /lb-admin/*.jar /opt/ibm/edge/lb/admin/lib/*.jar Pass /lb-admin/* /opt/ibm/edge/lb/admin/* Pass /documentation/lang/* /opt/ibm/edge/lb/documentation/lang/*
ln -s /opt/perl/bin/perl /usr/bin/perl
为了运行基于 Web 的管理,必须在 Load Balancer 主机上启动它:从主机的命令提示符发出 lbwebaccess。
还需要您远程访问主机的用户标识和密码。此用户标识和密码与高速缓存代理管理用户标识和密码相同。
要调出 Load Balancer 的基于 Web 的管理,在 Web 浏览器上从远程位置访问以下 URL:
http://host_name/lb-admin/lbadmin.html
其中 host_name 是您访问以便与 Load Balancer 通信的机器名。
一旦装入 Web 页面,Load Balancer GUI 将出现在浏览器窗口中,以便您执行远程基于 Web 的管理。
从 Load Balancer GUI,您还可以发出配置控制命令。 为了从 GUI 发出命令:
使用远程基于 Web 的管理,如果有多个管理员从其它位置更新 Load Balancer 配置,则您将需要刷新此配置以便查看(例如)由另一个管理员添加(或删除)的群集、端口或服务器。远程基于 Web 的管理 GUI 提供刷新配置和刷新所有配置功能。
从基于 Web 的 GUI,刷新此配置
Load Balancer 将条目公布到服务器日志、管理器日志、度量监视器日志(记录与度量服务器代理程序的通信)和您使用的每个顾问程序的日志。
您可以设置记录级别以定义写到日志的消息范围。级别为 0 时,会记录错误,并且 Load Balancer 还记录仅发生一次的事件的头和记录(例如,关于开始写入管理器日志的顾问程序的消息)。级别 1 包括正在进行中的信息等;而级别 5 包括必要时产生的帮助解决问题的每 条消息。管理器、顾问程序、服务器或子代理程序日志的缺省为 1。
您还可以设置最大日志大小。当设置日志文件的最大大小后,文件将回绕;当文件达到指定的大小时,后继条目将从文件顶部开始写入,同时覆盖先前的日志条目。不能将日志大小的值设置为小于当前值。日志条目带有时间戳记,以便识别写入日 志的顺序。
设置的日志级别越高,则选择日志大小时越要小心。在级别 0,将日志大小保留为缺省的 1MB 可能是安全的;然而,当记录级别为 3 以及更高时,您应该限制大小,但不要设置得太小而无法使用。
缺省情况下,Load Balancer 生成的日志将存储在 Load Balancer 安装的日志目录中。要更改此路径,在 dsserver 脚本中设置 lb_logdir 变量。
AIX、HP-UX、Linux 和 Solaris:dsserver 脚本可在 /usr/bin 目录中找到。在此脚本中,变量 lb_logdir 设置为缺省目录。您可 以修改此变量来指定您的日志目录。示例:
LB_LOGDIR=/path/to/my/logs/
Windows:dsserver 文件可在 Windows 系统目录(通常为 C:\WINNT\SYSTEM32)中找到。在 dsserver 文件中,变量 lb_logdir 设置为缺省目录。您可 以修改此变量来指定您的日志目录。示例:
set LB_LOGDIR=c:\path\to\my\logs\
对于所有操作系统,确保等号两端没有空格且路径以斜杠结束(适合的“/”或“\”)。
Load Balancer 的二进制日志记录功能使用与其它日志文件相同的日志目录。请参阅使用二进制日志记录分析服务器统计信息。
您可以设置记录级别以定义写到日志的消息范围。级别为 0 时,会记录错误,并且 Load Balancer 还记录仅发生一次的事件的头和记录(例如,关于开始写入咨询器日志的顾问程序的消息)。级别 1 包括正在进行中的信息等;而级别 5 包括必要时产生的帮助解决问题的每 条消息。这些日志的缺省为 1。
您还可以设置最大日志大小。当设置日志文件的最大大小后,文件将回绕;当文件达到指定的大小时,后继条目将从文件顶部开始写入,同时覆盖先前的日志条目。不能将日志大小的值设置为小于当前值。日志条目带有时间戳记,以便识别写入日 志的顺序。
设置的日志级别越高,则选择日志大小时越要小心。在级别 0,将日志大小保留为缺省的 1MB 可能是安全的;然而,当记录级别为 3 以及更高时,您应该限制大小,但不要设置得太小而无法使用。
Cisco CSS 控制器和 Nortel Alteon 控制器具有如下所示的日志:
以下是配置记录与度量服务器代理程序通信的度量监视器日志的日志记录级别和最大日志大小的示例:
xxxcontrol metriccollector set consultantID:serviceID:metricName loglevel x logsize y
缺省情况下,控制器生成的日志存储在控制器安装的日志目录中。要更改此路径,在 xxxserver 脚本中设置 xxx_logdir 变量。
AIX、HP-UX、Linux 和 Solaris:xxxserver 脚本可在 /usr/bin 目录中找到。在此脚本中,变量 xxx_logdir 设置为缺省目录。您可 以修改此变量来指定您的日志目录。示例:
xxx_LOGDIR=/path/to/my/logs/
Windows:xxxserver 文件可在 Windows 系统目录(通常为 C:\WINNT\SYSTEM32)中找到。在 xxxserver 文件中,变量 xxx_logdir 设置为缺省目录。您可 以修改此变量来指定您的日志目录。示例:
set xxx_LOGDIR=c:\path\to\my\logs\
对于所有操作系统,确保等号两端没有空格且路径以斜杠结束(适合的“/”或“\”)。
Load Balancer 的二进制日志记录功能使用与其它日志文件相同的日志目录。请参阅使用二进制日志记录分析服务器统计信息。
本节说明如何操作和管理分派器组件。
对于 Load Balancer,当在失效超时中指定的秒数内连接上没有活动时,则认为连接已失效。当已超过此秒数并且没有活动时,Load Balancer 将从它的表中除去此连接记录,并且将废弃此连接的后继流量。
例如,在端口级别,您可在 dscontrol port set staletimeout 命令上指定失效超时值。
可在执行程序、群集和端口级别设置失效超时。在执行程序和群集级别,缺省为 300 秒并且它会向下过滤至端口。在端口级别,缺省值取决于端口。一些较好定义的端口具有不同的缺省失效超时值。 例如,telnet 端口 23 的缺省值为 259,200 秒。
一些服务可能还具有它们自己的失效超时值。例如,LDAP(轻量级目录访问协议)具有称为空闲超时的配置参数。当超过了空闲超时秒时,将强制关闭空闲客户机连接。空闲超时还可能设置为 0,这意味着永远不会强制关闭连接。
当 Load Balancer 的失效超时值小于服务的超时值时,可能会发生连接性问题。如果为 LDAP,则 Load Balancer 失效超时值缺省为 300 秒。如果在 300 秒内连接上没有活动,则 Load Balancer 将从它的表中除去连接记录。如果空闲超时值大于 300 秒(或设 置为 0),则客户机可能仍然认为它具有到服务器的连接。当客户机发送信息包时,这些信息包将会被 Load Balancer 废弃。这将导致当向服务器发出请求时 LDAP 挂起。要避免此问题,将 LDAP 空闲超时设置为一个等于或小于 Load Balancer 失效超时值的非零值。
当客户机发送了它的全部信息包后,它会发送 FIN 信息包,以使服务器知道事务已完成。当分派器收到 FIN 信息包时,它 将事务从活动状态标记为 FIN 状态。当事务标记为 FIN 时,为此连接保留的内存就可由执行程序内置的垃圾收集器清除。
您可以使用 FIN 超时和计数设置执行程序执行垃圾收集的频率和数量。执 行程序周期性地检查已经分配的连接列表。当处于 FIN 状态的连接数大于或等 于 FIN 计数时,执行程序将尝试释放用于保存此连接信息的内存。通过输入 dscontrol executor set fincount 命令可更改 FIN 计数。
垃圾收集器为处于 FIN 状态以及大于 FIN 超时中指定秒数的任何连接释放内存。通过输入 dscontrol executor set fintimeout 命令可以更改 FIN 超时。
失效超时值是在除去不活动的连接之前,此连接上无活动可持续的秒数。有关更多的信息,请参阅使用失效超时值。FIN 计数还影响除去“失效”连接的频率。如果分派器机器的内存很小,则应将 FIN 计数设置得小些。如果 Web 站点较忙,则应将 FIN 计数 设置得大些。
根据来自执行程序和转送到管理器的信息,可以显示各种图表。(“GUI 监视器”菜单选项要求管理器功能在运行):
网络管理系统是连续运行的程序,它用于监视网络、反映网络状态并控制网络。 简单网络管理协议(SNMP),一种用于与网络中设备通信的广泛应用的协议,是当前 网络管理标准。网络设备通常有一个 SNMP 代理程序和一个或多个 子代理程序。SNMP 代理程序与网络管理站通信或响 应命令行 SNMP 请求。SNMP 子代理程序检索并更新数据,并将该数据传给 SNMP 代理程序,以便传回到请求者。
分派器 提供了一个 SNMP 管理信息库(ibmNetDispatcherMIB)和一个 SNMP 子代理程序。这允许您使用任何网络管理系统,如 -- Tivoli(R) NetView(R)、Tivoli Distributed Monitoring 或 HP OpenView --,以监视分派器的运行状况、吞吐量和活动。 MIB 数据描述了正被管理的分派器并反映了当前分派器状态。MIB 安装在 ..lb/admin/MIB 子目录中。
网络管理系统使用 SNMP GET 命令来查看其它机器上的 MIB 值。然后通知您是否超过指定的阈值。然后您可以通过修改 分派器 的配置数据来影响分派器性能,以便在分派器问题导致分派器或 Web 服务器运行中断前,预先调整或修正这些问题。
系统通常为每个网络管理站提供一个 SNMP 代理程序。用户将 GET 命令发送到 SNMP 代理程序。而 SNMP 代理程序轮流发送 GET 命令,以从负责这些 MIB 变量的 子代理程序检索指定的 MIB 变量值。
分派器 提供用于更新和检索 MIB 数据的子代理程序。当 SNMP 代理程序发送 GET 命令时,子代理程序 以适当的 MIB 数据响应。SNMP 代理程序将数据传送到网络管理站。网络管理站可通知您是否超过指定的阈值。
分派器 SNMP 支持包括使用分布式程序接口(DPI(R))功能的 SNMP 子代理程序。DPI 是 SNMP 代理程序和其子代理程序之间的接口。Windows 操作系统使用 Windows 扩展代理程序作为 SNMP 代理程序及其子代理程序之间的接口。
AIX 提供使用 SNMP 多路复用器协议(SMUX)的 SNMP 代理程序,并提供 DPID2,它是用作 DPI 和 SMUX 间转换程序的附加的可执行文件。
对于 HP-UX,您必须获取启用 SMUX 的 SNMP 代理程序,因为 HP-UX 不提供此代理程序。Load Balancer 提供 DPID2 for HP-UX。
Linux 提供使用 SMUX 的 SNMP 代理程序。大部分 Linux 版本(例如,Red Hat)附带 UCD SNMP 软件包。UCD SNMP V4.1 或更高版本具有启用 SMUX 的代理程序。Load Balancer 为 Linux 提供 DPID2。
对于 Solaris,您必须获取启用 SMUX 的 SNMP 代理程序,因为 Solaris 不提供此代理程序。Load Balancer 为 Solaris 提供的 DPID2 位于 the /opt/ibm/edge/lb/servers/samples/SNMP 目录中。
DPI 代理程序必须作为 root 用户运行。在执行 DPID2 守护程序之前,请按如下操作更新 /etc/snmpd.peers 文件和 /etc/snmpd.conf 文件:
对于 AIX 和 Solaris:
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smux 1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password #dpid
对于 Linux:
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smuxpeer .1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password
同样,您必须注释 snmpd.conf 文件中的所有行,该文件以以下字开始:com2sec、group、view 或 access。
要安装 HP-UX SNMP 支持:
为了与 SuSE Linux 一起使用 Load Balancer SNMP,您必须执行以下操作:
刷新 snmpd (如果它已在运行),以便它重读 snmpd.conf 文件:
refresh -s snmpd
启动 DPID SMUX 对等:
dpid2
必须按下列顺序启动守护程序:
要安装 Solaris SNMP 支持:
/etc/rc3.d/S76snmpdx 到 /etc/rc3.d/K76snmpdx
/etc/rc3.d/S77dmi 到 /etc/rc3.d/K77dmi
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/lib:/usr/local/ssl/lib:/usr/lib
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
export SNMPCONFPATH =/etc/snmp
export MIBDIRS=/usr/local/share/snmp/mibs
cp /opt/ibm/edge/lb/servers/samples/SNMP/dpid2 /usr/local/sbin/dpid2
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smuxpeer 1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password
记录:
在 http://sunfreeware.com/ Web 站点上,名称具有扩展名 .gz,因此请不要尝试 gunzip/untar 它们。而是使用 pkgadd packageName。
要安装 Windows SNMP 支持:
当执行程序运行时,使用 dscontrol subagent start [communityname] 命令定义 Windows OS 扩展代理程序和 SNMP 代理程序之间使用的共用名。
重要事项:On Windows 2003,缺省情况下,SNMP 不响应存在的任何群体名。在这种情况下,SNMP 子代理程序将不响应任何 SNMP 请求。要确保 SNMP 子代理程序将响应群体名,您必须使用相应的群体名和目标主机设置 SNMP 服务属性。按如下所示配置 SNMP 安全性属性:
SNMP 通过发送和接收陷阱通信,陷阱是由受管设备发送的消息,用来报告异常情况或重大 事件的发生,如已到达阈值。
子代理程序使用以下陷阱:
indHighAvailStatus 陷阱宣告高可用性状态的 state 变量(hasState)的值已经更改。hasState 可能的值为:
indSrvrGoneDown 陷阱宣告由对象标识的 csID(群集标识)、psNum(端口号)和 ssID(服务器标识)部分指定的服务器权值已变为 0。此服务器最终 已知的活动连接数在陷阱中发送。此陷阱表示据分派器所确定,指 定的服务器已当机。
indDOSAttack 陷阱表明 numhalfopen(仅由 SYN 信息包组成的半开连接数)已超出由对象标识的 csID(群集标识)和 psNum(端口号)部分指定的端口的 maxhhalfopen 阈值。端口上配置的服务器数在陷阱中发送。此陷阱表明 Load Balancer 可能遇到拒绝服务攻击。
indDOSAttackDone 陷阱表明 numhalfopen(仅由 SYN 信息包组成的半开连接数)已低于由对象标识的 csID 和 psNum 部分指定的端口的 maxhalfopen 阈值。端口上配置的服务器数在陷阱中发送。当 Load Balancer 确定可能的拒绝服务攻击已结束,发送 indDOSAttack 陷阱后将发送此陷阱。
对于基于 UNIX 的系统,由于 SMUX API 中的限制,来自 ibmNetDispatcher 子代理的陷阱中报告的企业标识可能为 dpid2 的企业标识,而不是 ibmNetDispatcher 的企业标识 1.3.6.1.4.1.2.6.144。但是,SNMP 管理实用程序将能够确定陷阱的源,因为数据将包含来自 ibmNetDispathcer MIB 中的对象标识。
dscontrol subagent start 命令打开 SNMP 支持。dscontrol subagent stop 命令关闭 SNMP 支持。
要获取有关 dscontrol 命令的更多信息,请参阅dscontrol subagent - 配置 SNMP 子代理程序。
构建到 Linux 内核中的是称为 ipchains 的防火墙设施。当 Load Balancer 和 ipchains 并行运行时,Load Balancer 首先会看到信息包,然后再看到 ipchains。这允许使用 ipchains 来加固 Linux Load Balancer 框,例如可以是用于负载均衡防火墙 Load Balancer 框。
当 ipchains 或 iptables 配置为完全限制(不允许 inbound 或 outbound 流量),Load Balancer 的转发信息包部分能继续正常工作。
注意,在负载均衡之前,不能使用 ipchains 和 iptables 来过滤入网流量。
要使 Load Balancer 的所有功能正常工作,必须允许一些附加流量。此通信的一些示例为:
通常,Load Balancer 框的适当 ipchains 策略是不接受除到后端服务器或来自后端服务器外的所有流量、伙伴高可用性 Load Balancer、所有到达目标或所有配置主机。
当在 Linux 内核 V2.4.10.x 上运行 Load Balancer 时,建议不要激活 iptables。在此 Linux 内核版本上的激活可导致性能降低而引起超时。
要释放 iptables,列出模块(lsmod)以查看哪个模块正在使用 ip_tables 和 ip_conntrack,然后通过发出 rmmod ip_tables 和 rmmod ip_conntrack 来除去它们。 当您重新引导机器时将再次添加这些模块,所以每次重新引导后需要重复这些步骤。
要获取支持的 Linux 内核版本的信息,请参阅Linux 的要求。
本节说明了如何操作和管理 Load Balancer 的 CBR 组件。
CBR 和高速缓存代理通过高速缓存代理插件 API 来协作处理 HTTP 和 HTTPS(SSL)请求。高速缓存代理必须运行在同一台机器上,以使 CBR 开始负载均衡服务器。如CBR 配置示例中描述的设置 CBR 和高速缓存代理。
在启动 CBR 之后,您可使用下列方法之一控制它:
用于 CBR 的日志与用于 分派器的日志类似。要获取更多的信息,请参阅使用 Load Balancer 日志。
在启动站点选择器之后,您可使用下列方法之一控制它:
站点选择器使用的日志与分派器中使用的那些类似。 要获取更多描述信息,请参阅使用 Load Balancer 日志。
在启动 Cisco CSS 控制器之后,您可使用下列方法之一控制它:
Cisco CSS 控制器使用的日志与分派器中使用的那些日志类似。要获取更多描述信息,请参阅使用 Load Balancer 日志。
在启动 Nortel Alteon 控制器之后,您可使用下列方法之一控制它:
Nortel Alteon 控制器使用的日志与分派器中使用的那些日志类似。要获取更多描述信息,请参阅使用 Load Balancer 日志。
度量服务器为 Load Balancer 提供服务器负载信息。度量服务器驻留在被负载均衡的每个服务器上。
更改度量服务器启动脚本中的日志级别。您可以指定日志级别范围为 0 到 5,类似于 Load Balancer 日志中的日志级别范围。这将在 ...ms/logs 目录中生成代理程序日志。
本章帮助您检测和解决与 Load Balancer 相关的问题。
使用本节中的信息收集 IBM 服务所需的数据。 该信息分为以下主题。
有一种仅适用于分派器组件的问题确定工具,该工具自动收集操作系统特定的数据和组件特定的配置文件。要运行此工具,从相应的目录输入 lbpd。
对于基于 UNIX 的平台:/opt/ibm/edge/lb/servers/bin/
对于 Windows 平台:C:\Program Files\IBM\edge\lb\servers\bin
此问题确定工具将数据封装到如下所示的文件:
对于基于 UNIX 的平台:/opt/ibm/edge/lb/lbpmr.tar.Z
对于 Windows 平台:C:\Program Files\IBM\edge\lb\lbpmr.zip
在您调用 IBM 服务前,了解下列信息。
dscontrol file save primary.cfg
此命令将配置文件放入 .../ibm/edge/lb/servers/configuration/component/ 目录中。
java -fullversion
在 AIX、HP-UX、Linux 和 Solaris 上:netstat -ni
在 Windows 上:ipconfig /all
这是所有服务器和 Load Balancer 必需的。
在 AIX、HP-UX、Linux 和 Solaris 上:netstat -nr
在 Windows 上:route print
这是所有服务器和 Load Balancer 必需的。
为 HA 环境中的问题收集以下必需信息。
AIX、HP-UX、Linux 和 Solaris 平台:/opt/ibm/edge/lb/servers/bin
Windows:C:\Program Files\ibm\edge\lb\servers\bin
脚本名称是:
goActive
goStandby
goIdle(如果存在)
goInOp(如果存在)
还包含配置文件。请参阅一般信息(始终是必需的)。
为顾问程序问题收集以下必需信息;例如,当顾问程序错误地将服务器标记为当机时。
dscontrol advisor loglevel http 80 5
或
dscontrol advisor loglevel advisorName port loglevel
或
dscontrol advisor loglevel advisorName cluster:port loglevel
或
nalcontrol metriccollector set consultantID:serviceID:metricName loglevel value
这创建名为 ADV_advisorName 的日志;例如,ADV_http.log。此日志位于下列位置:
AIX、HP-UX、Linux 和 Solaris 平台:/opt/ibm/edge/lb/servers/logs/component
Windows 平台:C:\Program Files\ibm\edge\lb\servers\logs\component
其中 component 是:
dispatcher = 分派器
cbr = 基于内容路由
cco = Cisco CSS 控制器
nal = Nortel Alteon 控制器
ss = 站点选择器
当级别小于与顾问程序相关联的记录级别时,ADVLOG 调用会打印语句到顾问程序日志文件。记录级别 0 将导致总是写语句。您无法从构造函数使用 ADVLOG。直到完成定制顾问程序的构造函数后才立即创建日志文件,因为日志文件名取决于设置在构造函数中的信息。
有另一种方法调试您的定制顾问程序,它可以避免这种限制。您可以使用 System.out.println(message) 语句将消息打印到窗口。编辑 dsserver 脚本并更改 javaw 为 java 以使打印语句出现在窗口中。用来启动 dsserver 的窗口必须保持打开以显示打印。如果您正在使用 Windows 平台,则您必须停止作为服务运行的分派器,并从窗口手工启动它以查看消息。
请参阅 Programming Guide for Edge Components 获取更多关于 ADVLOG 的信息。
为基于内容路由问题收集以下必需信息。
基于 UNIX 的平台:/etc/
Windows 平台:C:\Program Files\IBM\edge\cp\etc\en_US\
基于 UNIX 的平台:/opt/ibm/edge/lb/servers/configurations/cbr
Windows 平台:C:\Program Files\IBM\edge\lb\servers\configurations\cbr
如果您无法命中群集,则有可能对这两台 Load Balancer 机器都建立或都不建立别名。要确定哪个框拥有群集:
ping cluster arp -a
在 AIX 和 HP-UX 上:netstat -ni
在 Linux 和 Solaris 上:ifconfig -a
在 Windows 上:ipconfig /all
如果您没有从 ping 获取响应,有可能两台机器都没有为群集 IP 地址建立到其接口的别名;例如,en0 和 tr0 等。
如果您无法解决路由问题,并且还有其它故障,则发出以下命令以在网络流量上运行跟踪:
iptrace -a -s failingClientIPAddress -d clusterIPAddress -b iptrace.trc
运行跟踪、重新创建问题,然后杀死此进程。
tcpdump -i lan0 host cluster and host client
您可能需要从 HP-UX GNU 软件归档站点之一下载 tcpdump。
tcpdump -i eth0 host cluster and host client
运行跟踪、重新创建问题,然后杀死此进程。
snoop -v clientIPAddress destinationIPAddress > snooptrace.out
您还可以增加不同的日志级别(例如,管理器日志、顾问程序日志等。)并审查其输出。
要标识已修正的问题,请检查升级:
ftp://ftp.software.ibm.com/ps/products/networkdispatcher/servicereleases
要升级 Load Balancer 的 Java 版本,请参阅页面 3。
请参阅参考信息,以获取有关支持、技术注意事项(提示和技巧)和库 Web 页面的 Web 站点信息。
请参阅以下内容:
症状 | 可能原因 | 转至... |
---|---|---|
分派器未正确运行 | 端口号冲突 | 检查分派器端口号 |
配置了并列配置的服务器而它不响应负载均衡请求 | 地址错误或冲突 | 问题:分派器和服务器不响应 |
没有为来自客户机的连接提供服务或连接超时 |
| 问题:未平衡分派器请求 |
客户机没有得到服务或超时 | 高可用性不工作 | 问题:分派器 高可用性功能不工作 |
无法添加心跳检测信号(Windows 平台) | 没有在适配器上配置源地址 | 问题:无法添加心跳检测信号(Windows 平台) |
服务器不向请求提供服务(Windows 平台) | 在路由表中已创建了一个额外路由 | 问题:额外路由(Windows 平台) |
顾问程序在广域网中不能正确工作 | 顾问程序没在远程机器上运行 | 问题:顾问程序未正确地工作 |
Dispatcher、Microsoft IIS 和 SSL 不工作或不继续工作 | 无法跨协议发送加密数据 | 问题:分派器、Microsoft IIS 和 SSL 不工作(Windows 平台) |
拒绝到远程机器的连接 | 仍然使用旧版本密钥 | 问题:到远程机器的分派器连接 |
dscontrol 或 lbadmin 命令失败,并发出‘服务器没有响应’或‘无法访问 RMI 服务器’消息 |
| 问题:dscontrol 或 lbadmin 命令失败 |
“未找到文件...”错误消息,当运行 Netscape 作为缺省浏览器来查看联机帮助(Windows 平台)时 | HTML 文件关联设置错误 | 问题:当尝试查看联机帮助(Windows 平台)时出现“无法找到文件...”错误消息 |
当在 Solaris 2.7 上启动 dsserver 时,出现“stty::无这种设备或地址”错误消息。 | 请忽略此错误消息。这不是一个问题。dsserver 将正确运行 | 问题:在 Solaris 2.7 上启动 dsserver 时出现虚假的错误消息 |
图形用户界面未正确启动 | 调页空间不足 | 问题:图形用户界面(GUI)未正确地启动 |
运行安装了高速缓存代理的分派器时出错 | 高速缓存代理文件相关性 | 问题:运行安装了高速缓存代理的分派器时出错 |
图形用户界面未正确地显示。 | 分辨率不正确。 | 问题:图形用户界面(GUI)未正确地显示 |
“帮助”面板有时消失在其它窗口后面 | Java 限制 | 问题:在 Windows 平台上,帮助窗口有时会消失在其它打开的窗口后面 |
Load Balancer 无法处理和转发帧。 | 每个 NIC 需要唯一的 MAC 地址 | 问题:Load Balancer 无法处理和转发帧 |
出现蓝屏 | 未安装和配置网络卡 | 问题:当您启动 Load Balancer 执行程序时显示蓝屏 |
到 Discovery 的路径妨碍返回流量 | 在回送上建立群集的别名 | 问题:到 Discovery 的路径妨碍了 Load Balancer 返回流量 |
顾问程序显示所有服务器当机 | TCP 校验和未正确计算 | 问题:顾问程序显示所有服务器都当机(Windows 平台) |
Load Balancer 的广域方式中的高可用性不工作。 | 远程分派器必须定义为本地分派器上的群集中的服务器 | 问题:Load Balancer 的广域方式中的高可用性不工作 |
尝试装入大型配置文件时 GUI 挂起(或意外行为)。 | Java 无权访问足够的内存,以处理对 GUI 如此大的更改 | 问题:尝试装入大型配置文件时 GUI 挂起(或意外行为) |
在 Windows 上:偶尔的蓝屏或 Load Balancer 顾问程序错误地报告“-1”负载 | 使用 3Com 985B 千兆位以太网适配器 | 问题:在 Windows 平台上,出现蓝屏或顾问程序错误地报告“-1”负载 |
在 Solaris 本地语言版本上,GUI 的“是”和“否”按钮可能显示为英文。 | 这是一个正在由 Sun Microsystems 处理的已知问题 | 问题:在 Solaris NLV 上,“是”和“否”按钮以英文显示 |
Load Balancer 管理(lbadmin)在更新配置后从服务器断开连接 | lbadmin 或 dscontrol 可能是一个不同于 dsserver 的版本 | 问题:lbadmin 在更新配置后从服务器断开连接 |
在远程连接上未正确解析的 IP 地址 | 在安全 socks 实现上使用远程客户机时,全限定域名或主机名可能未解析为正确的点分十进制 IP 地址 | 问题:在远程连接上未正确解析的 IP 地址 |
韩国语 Load Balancer 界面在 AIX 和 Linux 上显示重叠或不是期望的字体 | 必须更改缺省字体 | 问题:韩国语 Load Balancer 界面在 AIX 和 Linux 上显示重叠或非期望的字体 |
在 Windows 上,设置 MS Loopback 适配器的别名后,当发出某些命令(如 hostname)时,操作系统将不正确地以别名地址响应 | 在网络连接列表中,新添加的别名不得列在本地地址的上面 | 问题:在 Windows 上,在发出命令(如 hostname)时返回别名地址,而非本地地址 |
在使用配有 Matrox AGP 视频卡的 Windows 平台时,发生意外 GUI 行为 | 在运行 Load Balancer GUI 时使用 Matrox AGP 视频卡时发生问题 | 问题:在 Windows 平台上,使用 Matrox AGP 视频卡时发生意外 GUI 行为 |
在 Linux 上执行“rmmod ibmnd”时的意外行为,如系统挂起 | 在手工除去 Load Balancer 内核模块(ibmnd)时发生问题。 | 问题:在执行“rmmod ibmnd”(Linux)时的意外行为 |
在分派器机器上运行命令时的慢响应时间 | 慢响应时间可能是由于机器因大量客户机流量而重载 | 问题:在分派器机器上运行命令时的慢响应时间 |
对于分派器的 mac 转发方法,SSL 或 HTTPS 顾问程序不注册服务器负载 | 由于未用群集 IP 地址配置 SSL 服务器应用程序而发生问题 | 问题:(使用 mac 转发时)SSL 或 HTTPS 顾问程序不注册服务器负载 |
在使用 lbwebaccess(Web 管理)或 lbadmin 装入大配置时发生问题 | 可能会发生问题,因为需要增加最大 Java 堆 | 问题:(使用 lbadmin、Web 管理)装入大配置时的困难 |
在通过 Netscape 使用远程 Web 管理时从主机断开连接 | 在调整浏览器窗口的大小时将从主机断开连接 | 问题:在使用 Web 管理时,调整 Netscape 浏览器窗口的大小,会从主机断开连接 |
启用套接字合用并且 Web 服务器正绑定到 0.0.0.0 | 将 Microsoft IIS 服务器配置为绑定特定的 | 问题:启用套接字合用,并且 Web 服务器绑定至 0.0.0.0 |
在 Windows 平台上,在命令提示符中出现乱码的 Latin-1 本地字符 | 更改命令提示符窗口的字体属性 | 问题:在 Windows 上,在命令提示符窗口中出现乱码的 Latin-1 本地字符 |
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本将以小字体显示 | 通过编辑 Netscape 浏览器的首选项选项可增加字体大小 | 问题:在基于 UNIX 的平台上使用信息中心时,Netscape 浏览器会以小字体显示联机帮助文本 |
在 HP-UX 平台上,出现以下消息:java.lang.OutOfMemoryError 无法创建新的本机线程 | 一些 HP-UX 安装在缺省情况下每个进程允许 64 个线程。这是不够的。 | 问题:在 On HP-UX 上,发生 Java 内存/线程不够错误 |
在 Windows 平台上,顾问程序和到达目标将所有服务器标记为当机 | 未禁用任务卸载或可能需要启用 ICMP。 | 问题:在 Windows 上,顾问程序和到达目标将所有服务器标记为当机 |
在 Windows 平台上,当配置了多个地址到适配器时将 IP 地址解析为主机名时出现问题 | 您要作为主机名的 IP 地址必须首先出现在注册表中。 | 问题:在 Windows 上,当配置了多个地址到适配器时将 IP 地址解析为主机名 |
在 Windows 平台上,网络中断后顾问程序没有以高可用性设置状态运行 | 当系统检测到网络中断,它会清除其地址解析协议(ARP)高速缓存 | 问题:在 Windows 上,在网络中断后,顾问程序在高可用性设置中不工作 |
在 Linux 上,“IP address add”命令和多个群集回送别名是不兼容的 | 当别名判别回送设备上的多个地址时应该使用 ifconfig 命令而不是 ip address add | 问题:在 Linux 上,当在回送设备上别名判别多个群集时不要使用“IP address add”命令 |
症状 | 可能原因 | 转至... |
CBR 未正确运行 | 端口号冲突 | 检查 CBR 端口号 |
cbrcontrol 或 lbadmin 命令失败,并发出‘服务器没有响应’或‘无法访问 RMI 服务器’消息 | 由于 socksified 堆栈,命令执行失败。或者由于未启动 cbrserver 而命令失败 | 问题:cbrcontrol 或 lbadmin 命令失败 |
请求未被负载均衡 | 启动执行程序之前启动高速缓存代理 | 问题:未负载均衡请求 |
在 Solaris 上,cbrcontrol executor start 命令失败,并发出‘错误:执行程序未启动’消息 | 因为系统 IPC 缺省值可能需要修改,所以命令失败 | 问题:在 Solaris 上,cbrcontrol executor start 命令失败 |
URL 规则不工作 | 语法或配置错误 | 问题:语法或配置错误 |
在 Windows 上:偶尔的蓝屏或 Load Balancer 顾问程序错误地报告“-1”负载 | 使用 3Com 985B 千兆位以太网适配器 | 问题:在 Windows 平台上,出现蓝屏或顾问程序错误地报告“-1”负载 |
在 Solaris 本地语言版本上,GUI 的“是”和“否”按钮可能显示为英文。 | 这是一个正在由 Sun Microsystems 处理的已知问题 | 问题:在 Solaris NLV 上,“是”和“否”按钮以英文显示 |
在使用配有 Matrox AGP 视频卡的 Windows 系统时发生意外 GUI 行为 | 在运行 Load Balancer GUI 时使用 Matrox AGP 视频卡时发生问题 | 问题:在 Windows 平台上,使用 Matrox AGP 视频卡时有意外 GUI 行为 |
在使用 lbwebaccess(Web 管理)或 lbadmin 装入大配置时发生问题 | 可能会发生问题,因为需要增加最大 Java 堆 | 问题:(使用 lbadmin、Web 管理)装入大配置时的困难 |
在通过 Netscape 使用远程 Web 管理时从主机断开连接 | 在调整浏览器窗口的大小时将从主机断开连接 | 问题:在使用 Web 管理时,调整 Netscape 浏览器窗口的大小,会从主机断开连接 |
在 Windows 平台上,在命令提示符中出现乱码的 Latin-1 本地字符 | 更改命令提示符窗口的字体属性 | 问题:在 Windows 平台上,在命令提示符窗口中出现乱码的 Latin-1 本地字符 |
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本将以小字体显示 | 通过编辑 Netscape 浏览器的首选项选项可增加字体大小 | 问题:在基于 UNIX 的平台上使用信息中心时,Netscape 浏览器会以小字体显示联机帮助文本 |
在 HP-UX 平台上,出现以下消息:java.lang.OutOfMemoryError 无法创建新的本机线程 | 一些 HP-UX 安装在缺省情况下每个进程允许 64 个线程。这是不够的。 | 问题:在 On HP-UX 上,发生 Java 内存/线程不够错误 |
在 Windows 平台上,顾问程序和到达目标将所有服务器标记为当机 | 未禁用任务卸载或可能需要启用 icmp。 | 问题:在 Windows 上,顾问程序和到达目标将所有服务器标记为当机 |
在 Windows 平台上,当配置了多个地址到适配器时将 IP 地址解析为主机名时出现问题 | 您要作为主机名的 IP 地址必须首先出现在注册表中。 | 问题:在 Windows 上,当配置了多个地址到适配器时将 IP 地址解析为主机名 |
症状 | 可能原因 | 转至... |
---|---|---|
站点选择器未正确地运行 | 端口号冲突 | 检查站点选择器端口号 |
站点选择器不循环来自 Solaris 客户机的进入请求。 | Solaris 系统运行“名称服务高速缓存守护程序” | 问题:站点选择器不循环来自 Solaris 客户机的流量 |
sscontrol 或 lbadmin 命令失败,并发出‘服务器没有响应’或‘无法访问 RMI 服务器’消息 | 由于 socksified 堆栈,命令执行失败。或由于未启动 ssserver,命令执行失败。 | 问题:sscontrol 或 lbadmin 命令失败 |
在 Windows 平台上 ssserver 启动失败 | Windows 不要求主机名在 DNS 中。 | 问题:ssserver 在 Windows 平台上启动失败 |
具有重复路由的机器未正确地负载均衡 -- 名称解析失败 | 站点选择器机器具有多个连接到同一子网的适配器 | 问题:具有重复路由的站点选择器未正确地进行负载均衡 |
在 Windows 上:偶尔的蓝屏或 Load Balancer 顾问程序错误地报告“-1”负载 | 使用 3Com 985B 千兆位以太网适配器 | 问题:在 Windows 上,出现蓝屏或顾问程序错误地报告“-1”负载 |
在 Solaris 本地语言版本上,GUI 的“是”和“否”按钮可能显示为英文。 | 这是一个正在由 Sun Microsystems 处理的已知问题 | 问题:在 Solaris NLV 上,“是”和“否”按钮以英文显示 |
在使用配有 Matrox AGP 视频卡的 Windows 平台时发生意外 GUI 行为 | 在运行 Load Balancer GUI 时使用 Matrox AGP 视频卡时发生问题 | 问题:在 Windows 平台上,使用 Matrox AGP 视频卡时有意外 GUI 行为 |
在使用 lbwebaccess(Web 管理)或 lbadmin 装入大配置时发生问题 | 可能会发生问题,因为需要增加最大 Java 堆 | 问题:(使用 lbadmin、Web 管理)装入大配置时的困难 |
在通过 Netscape 使用远程 Web 管理时从主机断开连接 | 在调整浏览器窗口的大小时将从主机断开连接 | 问题:在使用 Web 管理时,调整 Netscape 浏览器窗口的大小,会从主机断开连接 |
在 Windows 平台上,在命令提示符中出现乱码的 Latin-1 本地字符 | 更改命令提示符窗口的字体属性 | 问题:在 Windows 平台上,在命令提示符窗口中出现乱码的 Latin-1 本地字符 |
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本将以小字体显示 | 通过编辑 Netscape 浏览器的首选项选项可增加字体大小 | 问题:在基于 UNIX 的平台上使用信息中心时,Netscape 浏览器会以小字体显示联机帮助文本 |
在 HP-UX 平台上,出现以下消息:java.lang.OutOfMemoryError 无法创建新的本机线程 | 一些 HP-UX 安装在缺省情况下每个进程允许 64 个线程。这是不够的。 | 问题:在 On HP-UX 上,发生 Java 内存/线程不够错误 |
在 Windows 平台上,顾问程序和到达目标将所有服务器标记为当机 | 未禁用任务卸载或可能需要启用 icmp。 | 问题:在 Windows 上,顾问程序和到达目标将所有服务器标记为当机 |
症状 | 可能原因 | 转至... |
---|---|---|
ccoserver 将不启动 | 端口号冲突 | 检查 Cisco CSS 控制器端口号 |
ccocontrol 或 lbadmin 命令失败,并发出‘服务器没有响应’或‘无法访问 RMI 服务器’消息 | 由于 socksified 堆栈,命令执行失败。或由于未启动 ccoserver,命令失败。 | 问题:ccocontrol 或 lbadmin 命令失败 |
接收错误:无法在端口 13099 上创建注册表 | 到期的产品许可证 | 问题:无法在端口 13099 上创建注册表 |
在 Solaris 本地语言版本上,GUI 的“是”和“否”按钮可能显示为英文。 | 这是一个正在由 Sun Microsystems 处理的已知问题 | 问题:在 Solaris NLV 上,“是”和“否”按钮以英文显示 |
在使用配有 Matrox AGP 视频卡的 Windows 平台时发生意外 GUI 行为 | 在运行 Load Balancer GUI 时使用 Matrox AGP 视频卡时发生问题 | 问题:在 Windows 平台上,使用 Matrox AGP 视频卡时有意外 GUI 行为 |
在添加咨询器时接收到一个连接错误 | 交换机和控制器上配置设置不正确 | 问题:在添加咨询器时接收到一个连接错误 |
交换机上权值不更新 | 控制器或交换机之间的通信不可用或中断 | 问题:交换机上权值不更新 |
刷新命令不更新咨询器配置 | 交换机和控制器之间的通信不可用或中断 | 问题:刷新命令不更新咨询器配置 |
在使用 lbwebaccess(Web 管理)或 lbadmin 装入大配置时发生问题 | 可能会发生问题,因为需要增加最大 Java 堆 | 问题:(使用 lbadmin、Web 管理)装入大配置时的困难 |
在通过 Netscape 使用远程 Web 管理时从主机断开连接 | 在调整浏览器窗口的大小时将从主机断开连接 | 问题:在使用 Web 管理时,调整 Netscape 浏览器窗口的大小,会从主机断开连接 |
在 Windows 平台上,在命令提示符中出现乱码的 Latin-1 本地字符 | 更改命令提示符窗口的字体属性 | 问题:在 Windows 平台上,在命令提示符窗口中出现乱码的 Latin-1 本地字符 |
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本将以小字体显示 | 通过编辑 Netscape 浏览器的首选项选项可增加字体大小 | 问题:在基于 UNIX 的平台上使用信息中心时,Netscape 浏览器会以小字体显示联机帮助文本 |
在 HP-UX 平台上,出现以下消息:java.lang.OutOfMemoryError 无法创建新的本机线程 | 一些 HP-UX 安装在缺省情况下每个进程允许 64 个线程。这是不够的。 | 问题:在 On HP-UX 上,发生 Java 内存/线程不够错误 |
症状 | 可能原因 | 转至... |
---|---|---|
nalserver 将不启动 | 端口号冲突 | 检查 Nortel Alteon 控制器端口号 |
nalcontrol 或 lbadmin 命令失败,并发出‘服务器没有响应’或‘无法访问 RMI 服务器’消息 | 由于 socksified 堆栈,命令执行失败。或由于未启动 nalserver 而导致命令失败。 | 问题:nalcontrol 或 lbadmin 命令失败 |
接收错误:无法在端口 14099 上创建注册表 | 到期的产品许可证 | 问题:无法在端口 14099 上创建注册表 |
在使用配有 Matrox AGP 视频卡的 Windows 平台时发生意外 GUI 行为 | 在运行 Load Balancer GUI 时使用 Matrox AGP 视频卡时发生问题 | 问题:在 Windows 平台上,使用 Matrox AGP 视频卡时有意外 GUI 行为 |
在使用 lbwebaccess(Web 管理)或 lbadmin 装入大配置时发生问题 | 可能会发生问题,因为需要增加最大 Java 堆 | 问题:(使用 lbadmin、Web 管理)装入大配置时的困难 |
在通过 Netscape 使用远程 Web 管理时从主机断开连接 | 在调整浏览器窗口的大小时将从主机断开连接 | 问题:在使用 Web 管理时,调整 Netscape 浏览器窗口的大小,会从主机断开连接 |
在添加咨询器时接收到一个连接错误 | 交换机和控制器上配置设置不正确 | 问题:在添加咨询器时接收到一个连接错误 |
交换机上权值不更新 | 控制器或交换机之间的通信不可用或中断 | 问题:交换机上权值不更新 |
刷新命令不更新咨询器配置 | 交换机和控制器之间的通信不可用或中断 | 问题:刷新命令不更新咨询器配置 |
在 Windows 平台上,在命令提示符中出现乱码的 Latin-1 本地字符 | 更改命令提示符窗口的字体属性 | 问题:在 Windows 上,在命令提示符窗口中出现乱码的 Latin-1 本地字符 |
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本将以小字体显示 | 通过编辑 Netscape 浏览器的首选项选项可增加字体大小 | 问题:在基于 UNIX 的平台上使用信息中心时,Netscape 浏览器会以小字体显示联机帮助文本 |
在 HP-UX 平台上,出现以下消息:java.lang.OutOfMemoryError 无法创建新的本机线程 | 一些 HP-UX 安装在缺省情况下每个进程允许 64 个线程。这是不够的。 | 问题:在 On HP-UX 上,发生 Java 内存/线程不够错误 |
症状 | 可能原因 | 转至... |
---|---|---|
运行 .bat 或 .cmd 用户度量文件时在 Windows 平台上发生度量服务器 IOException | 必需完整的度量名称 | 问题:在 Windows 平台上运行 .bat 或 .cmd 用户度量文件时发生度量服务器 IOException |
度量服务器不会将负载信息报告给 Load Balancer 机器 | 可能的原因包括:
| 问题:度量服务器未向 Load Balancer 机器报告负载 |
当密钥文件传送到服务器时,度量服务器日志报告“签名是访问代理程序所必需的” | 密钥文件授权失败,因为它已被破坏。 | 问题:度量服务器日志报告“签名是访问代理程序所必需的” |
在 AIX 上,当多处理器系统(4.3.3、32-bit 5.1 或 64-bit 5.1)在重负载情况下运行度量服务器时,ps -vg 命令输出可能会损坏 | APAR IY33804 改正此已知 AIX 问题 | 问题:在 AIX 上,当在重负载情况下运行度量服务器时,ps -vg 命令输出可能会损坏 |
使用站点选择器负载均衡跨高可用性分派器在两层配置中配置度量服务器 | 未配置度量服务器(驻留在第二层中)在新的 IP 地址上侦听。 | 问题:在使用站点选择器跨高可用性分派器负载均衡的两层配置中配置度量服务器 |
在运行分派器时如果遇到问题,可能是由于某个应用程序正在使用分派器通常使用的端口号。请注意分派器服务器使用下列端口号:
如果另一个应用程序正在使用分派器的某个端口号,则您可更改分派器的端口号或更改应用程序的端口号。
要更改分派器的端口号,执行下列步骤:
要更改应用程序的 RMI 端口号,执行下列步骤:
当运行 CBR 时如果遇到问题,可能是您的某个应用程序正在使用 CBR 通常使用的端口号。请注意 CBR 使用以下端口号:
如果另一个应用程序正在使用某个 CBR 的端口号,则您可以更改 CBR 的端口号或更改应用程序的端口号。
要更改 CBR 的端口号,执行下列步骤:
要更改应用程序的 RMI 端口号,执行下列步骤:
在运行站点选择器组件时如果遇到问题,可能是由于某个应用程序正在使用站点选择器通常使用的端口号。请注意站点选择器使用下列端口号:
如果另一个应用程序正在使用站点选择器的某个端口号,则您可更改站点选择器的端口号或更改应用程序的端口号。
要更改站点选择器的端口号,执行下列步骤:
要更改应用程序的 RMI 端口号,执行下列步骤:
在运行 Cisco CSS 控制器组件时,如果遇到问题,可能是另一个应用程序在使用 Cisco CSS 控制器的 ccoserver 所使用的某个端口号。请注意 Cisco CSS 控制器使用下列端口号:
13099 用于接收来自 ccocontrol 的命令
10004 用于将度量查询发送给度量服务器
13199 用于 RMI 服务器端口
如果另一个应用程序正在使用 Cisco CSS 控制器的某个端口号,则您可以更改 Cisco CSS 控制器的端口号或更改应用程序的端口号。
要更改 Cisco CSS 控制器的端口号,执行下列步骤:
要更改应用程序的 RMI 端口号,执行下列步骤:
在运行 Nortel Alteon 控制器组件时,如果遇到问题,可能是另一个应用程序在使用 Nortel Alteon 控制器的 nalserver 所使用的某个端口号。请注意Nortel Alteon 控制器使用下列端口号:
14099 用于从 nalcontrol 接收命令
10004 用于将度量查询发送给度量服务器
14199 用于 RMI 服务器端口
如果另一个应用程序正在使用 Nortel Alteon 控制器的某个端口号,则您可以更改 Nortel Alteon 控制器的端口号或更改应用程序的端口号。
要更改 Nortel Alteon 控制器的端口号,执行下列步骤:
要更改应用程序的 RMI 端口号,执行下列步骤:
当另一个应用程序正在使用由分派器使用的端口时,会发生这种问题。要获取更多信息,请转至检查分派器端口号。
当使用不同于指定地址的另一个地址时,会发生此问题。 当并列配置分派器和服务器时,确保配置中使用的服务器地址是 NFA 地址或配置为已并列配置。
此问题的症状为没有提供与客户机的连接或连接超时。检查以下内容以诊断此问题:
对于 Windows 和其它平台,另见为负载均衡设置服务器。
当配置了分派器高可用性环境并且未为来自客户机的连接提供服务或连接超时时,则会出现此问题。检查下列情况以改正或诊断问题:
当适配器上未配置源地址时,会发生此 Windows 平台错误。检查下列情况以改正或诊断问题。
dsconfig tr0 <ip address> netmask <netmask> 或 dscontrol executor configure <ip address>
设置服务器后,您可能会发现无意中创建了一个或多个额外路由。如果不除去,这些额外路由将阻止分派器运行。要检查并删除它们,请参阅为负载均衡设置服务器。
如果使用广域支持且顾问程序看来不正确地工作,确保它们在本地和远程分派器上都已启动。请参阅使用带分派器广域支持的远程顾问程序。
使用分派器、Microsoft IIS 和 SSL 时,如果它们不一起工作,则启用 SSL 安全性可能有问题。要获取更多关于生成密钥对、获取证书、安装具有密钥对的证书和配置需要 SSL 的目录的信息,请参阅 Microsoft Information and Peer Web Services Information and Planning Guide 文档。
分派器使用密钥允许您连接到远程机器并对它进行配置。密钥指定一个用于连接的 RMI 端口。为安全性原因或冲突问题可以更改 RMI 端口。更改 RMI 端口时,密钥文件名是不同的。对于同一台远程机器,如果 密钥目录中有多个密钥,且它们指定不同的 RMI 端口,命令行只尝试它找到的第一个密钥。如果密钥不正确,则连接会被拒绝。连接将不会成功,除非您删除不正确的密钥。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
当其中一个管理控制台运行在与防火墙相同的机器上或在通过防火墙的机器上,那么这会导致问题。例如,当 Load Balancer 在与防火墙所在的同一台机器上运行并且您发出 dscontrol 命令时,您可能会看到一些错误,如错误:服务器未响应。
要避免此问题,编辑 dsserver 脚本文件以设置防火墙(或其它应用程序)的 RMI 使用的端口。将行 LB_RMISERVERPORT=10199 更改为 LB_RMISERVERPORT= yourPort。其中 yourPort 是另一个端口。
一旦完成,重新启动 dsserver,并打开端口 10099、10004、10199 和 10100 或将要运行管理控制台的主机地址中所选端口的流量。
对于 Windows,当使用 Netscape 作为您的缺省浏览器时,以下错误消息可能导致:“无法找到文件‘<filename>.html’(或它的一个组件)。请确保路径和文件名正确并且所有必需的库可用。”
发生此问题的原因是 HTML 文件关联设置错误。 解决方案如下:
在 Solaris 2.7 平台上启动 dsserver 时,出现以下虚假的错误消息:“stty::无这种设备或地址。”请忽略此错误消息。dsserver 将正确运行。
图形用户界面(GUI)lbadmin 需要足够的调页空间量才能正确运行。如果可用的调页空间不足,GUI 可能无法完全启动。如果发生此问题,请检查您的调页空间,如有必要,增大调页空间。
当您尝试启动分派器组件时,如果您卸载 Load Balancer 以重新安装另一个版本并获得一个错误,则检查是否安装了高速缓存代理。高速缓存代理与分派器的一个文件有相关性;仅当卸载高速缓存代理时才会卸载此文件。
要避免此问题:
如果您遇到 Load Balancer GUI 外观的问题,检查操作系统的桌面分辨率的设置。分辨率为 1024x768 像素时查看 GUI 的效果最佳。
当您在 Windows 平台上首次打开帮助窗口时,它们有时消失在现有窗口后面的背景中。如果发生此问题,单击此窗口使它再次回到前面。
在 Solaris 上,缺省情况下每个网络适配器都具有同一 MAC 地址。当适配器在不同的 IP 子网上时,会正确地工作;然而,在交换式环境中,当具有同一 MAC 和同一 IP 子网地址的多个 NIC 与同一交换机通信时,此交换机将为单个 MAC(以及二个 IP)绑定的所有流量沿着同一传输线发送。 仅最后将帧放在传输线上的适配器能看到为两个适配器绑定的 IP 信息包。Solaris 可能会废弃到达“错误”接口的有效 IP 地址的信息包。
如果所有网络接口未按 ibmnd.conf 中配置的指定给 Load Balancer,并且如果在 ibmnd.conf 中未定义的 NIC 接收到一个帧,Load Balancer 则不能处理和转发帧。
要避免此问题,您必须覆盖缺省值并设置每个接口的唯一 MAC 地址。使用此命令:
ifconfig interface ether macAddr
例如:
ifconfig hme0 ether 01:02:03:04:05:06
在 Windows 平台上,在启动执行程序之前您必须已安装和配置网卡。
AIX 操作系统包含称为路径 MTU 发现的联网参数。处理客户机事务期间,如果操作系统确定它必须将较小的最大传输单元(MTU)用于出网信息包,则路径 MTU 发现使 AIX 创建路由以记住该数据。 新的路由适用于该特定客户机 IP 并且记录到达它的必需 MTU。
当创建路由时,在回送上建立别名的群集中的服务器可能会发生问题。如果路由的网关地址落在群集/网络掩码的子网中,则 AIX 在回送上创建路由。这会发生是因为这是用该子网建立别名的最后接口。
例如,如果群集是 9.37.54.69 并且使用 255.255.255.0 网码掩码,而打算使用的网关为 9.37.54.1,则 AIX 为路由使用回送。这将导致服务器响应从不脱离框,以及客户机超时等待。通常,客户机看到一个来自群集的响应,然后创建路由,客户机再也接收不到任何东西。
对于此问题有两个解决方案。
记录:
Windows 平台具有称为任务卸载的功能,它允许适配卡而不是操作系统计算 TCP 校验和。 这改进系统上的性能。如果启用任务卸载,Load Balancer 顾问程序在服务器未当机时报告其当机。
问题是未为来自群集地址的信息包正确计算 TCP 校验和,其是顾问程序流量发生的情况。
要避免此问题,转至适配卡设置并禁用任务卸载。
此问题是在 Adaptec 的 ANA62044 QuadPort 适配器中首先发现的。此适配卡称此特征为发送校验和卸载。禁用发送校验和卸载以避免该问题。
当您设置广域 Load Balancer 时,您必须定义远程分派器作为您本地分派器上的群集中的服务器。通常,您将远程分派器的非转发地址(NFA)用作远程服务器的目的地地址。如果您这样做,然后在远程分派器上设置高可用性,则它将失败。会发生这种情况是因为当您使用它的 NFA 访问它时,本地分派器总是指向远程端的主机器。
要避免此问题:
当使用远程主分派器时,它将在其适配器上建立此地址的别名,允许它接受流量。如果发生故障,地址移动到备份机器并且备份机器继续为该地址接受流量。
尝试装入大型配置文件(大致有 200 或更多条 add 命令)时,GUI 可能挂起或显示意外行为,如屏幕更改时响应速率极慢。
发生此情况是因为 Java 无权访问足够的内存以处理如此大的配置。
可指定一个运行时环境上的选项,来增加 Java 可用的内存分配池。
此选项是 -Xmxn,其中 n 是最大大小(以字节为单位)。n 必须是 1024 的倍数且必须大于 2MB。值 n 可能后跟 k 或 K 以表明千字节,或后跟 m 或 M 以表明兆字节。例如,-Xmx128M 和 -Xmx81920k 都有效。缺省值是 64M。Solaris 8 具有最大值 4000M。
例如,要添加此选项,编辑 lbadmin 脚本文件,按如下所示将“javaw”修改为“javaw -Xmxn”。(对于 AIX,将“java”修改为“java -Xmxn”):
javaw -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
javaw -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
java -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
START javaw -Xmx256m -cp %LB_CLASSPATH% %LB_INSTALL_PATH% %LB_CLIENT_KEYS% com.ibm.internet.nd.framework.FWK_Main
对于 n 没有建议使用的值,但它应大于缺省选项。最好以该缺省值的两倍开始。
在 Windows 平台上使用 3Com 985B 吉位以太网适配器时,您可能会遇到以下问题:
要避免这些问题,使用另一个公司出品的千兆位以太网适配器。
在 Solaris 本地语言版本上,Load Balancer GUI 的“是”和“否”按钮可能显示为英文。这是一个正在由 Sun Microsystems 处理的已知问题。
如果 Load Balancer 管理(lbadmin)在您更新配置后从服务器断开连接,检查您正在尝试配置的服务器上的 dsserver 版本,并确保它与您的 lbadmin 或 dscontrol 版本相同。
在安全 socks 实现上使用远程客户机时,全限定域名或主机名可能不解析为以点分十进制记数法的正确 IP 地址。socks 实现可能将与 socks 相关的特定数据添加到 DNS 分辨率。
如果在远程连接上 IP 地址未正确解析,我们建议您指定点分十进制记数法格式的 IP 地址。
要改正韩国语 Load Balancer 界面中重叠或非期望的字体:
在 AIX 上
-Monotype-TimesNewRomanWT-medium-r-normal --*-%d-75-75-*-*-ksc5601.1987-0
-Monotype-SansMonoWT-medium-r-normal --*-%d-75-75-*-*-ksc5601.1987-0
在 Linux 上
-monotype- timesnewromanwt-medium-r-normal--*-%d-75-75-p-*-microsoft-symbol
-monotype-sansmonowt-medium-r-normal--*-%d-75-75-p-*-microsoft-symbol
在 Windows 上,设置 MS 回送适配器的别名后,当发出某些命令(如 hostname)时,操作系统将不正确地以别名地址而非本地地址进行响应。要改正此问题,在网络连接列表中,新添加的别名必须列在本地地址的下面。 这将确保在回送别名之前访问本地地址。
要检查网络连接列表:
在 Windows 平台上,当使用 Matrox AGP 卡时,在 Load Balancer GUI 中会发生意外行为。当单击鼠标时,比鼠标指针稍大的块会被损坏,从而引起突出显示反向或使图像移出屏幕。较旧的 Matrox 卡未显示此行为。在使用 Matrox AGP 卡时,没有已知修正。
在 Linux 上,如果 dsserver 在手工除去 Load Balancer 内核模块期间仍在运行,则可能会发生意外行为(如系统挂起或 javacores)。当手工除去 Load Balancer 内核模块时,您必须首先停止 dsserver。如果“dsserver stop”不工作,则使用 SRV_KNDConfigServer 停止 java 进程。例如:
ps-ef | grep SRV_KNDConfigServer
java 进程完成后,您可以安全地运行“rmmod ibmnd”命令,以从内核中除去 Load Balancer 模块。
如果您运行分派器组件以用于负载均衡,可能会由于客户机流量而使计算机过载。Load Balancer 内核模块具有最高优先级,如果它经常处理客户机信息包,则系统的其余部分可能会成为无响应。在用户空间中运行命令可能要花很长的时间完成,或者可能从不完成。
如果发生这种情况,您应开始重新构建设置以避免因流量而使 Load Balancer 机器过载。其他方法有:在多个 Load Balancer 机器上分散负载,或将机器替换为更强、更快的计算机。
当尝试确定机器上的慢响应时间是否归因于高客户机流量时,请考虑这是否在客户机高峰流量时间发生。引起路由循环的错误配置的系统也会引起同样的症状。但在更改 Load Balancer 设置之前,确定症状是否可能由高客户机负载引起。
当使用基于 mac 的转发方法时,Load Balancer 将使用在回送上建立别名的群集地址,发送信息包至服务器。 某些服务器应用程序(如 SSL)要求配置信息(如证书)基于 IP 地址。IP 地址必须是在回送上配置的群集地址,以便匹配进入信息包的内容。如果在配置服务器应用程序时不使用群集的 IP 地址,则客户机请求将不会正确转发至服务器。
如果您在装入一个大配置时,使用 lbadmin 或远程 Web 管理遇到了问题,则您可能需要增加最大 Java 堆大小。缺省情况下,Java 将虚拟机堆限制为 64 MB。某些 Load Balancer 配置程序(lbadmin 和 lbwebaccess)在用于管理很大的配置时,可能需要大于此 64 MB 的限制。 为了解决此问题,最大 Java 堆大小可增加至一个大于 64 MB 的值。要增加此最大堆大小,使用“-Xmx”Java 选项。例如,在 lbadmin 脚本中,修改“javaw”为“javaw -Xmx256m”,以便将最大 Java 堆大小更改为 256 MB。如果您在使用 Web 管理时遇到此问题,按描述修改 lbwebaccess 脚本。
如果您在使用远程 Web 管理配置 Load Balancer,则不要调整(最小化、最大化及还原等)Load Balancr GUI 所在的 Netscape 浏览器窗口大小。因为 Netscape 在每次调整浏览器窗口大小时重新装入一个页面,所以这将导致从主机断开连接。在每次调整窗口大小时,需要重新连接至主机。 如果在 Windows 平台上执行远程 Web 管理,请使用 Internet Explorer。
在 Windows 后端服务器上运行 Microsoft IIS 服务器 V5.0 时,您必须将 Microsoft IIS 服务器配置为绑定特定的。 否则,作为缺省启用套接字合用,并且 Web 服务器绑定至 0.0.0.0 并侦听所有流量,而不是绑定至配置为站点的多个身份的虚拟 IP 地址。 如果本地主机上的应用程序在启用套接字合用时当机,则 AIX 或 Windows ND 服务器顾问程序检测此故障;但如果虚拟主机上的应用程序在本地主机保持运行时当机,则顾问程序不检测此故障,并且 Microsoft IIS 继续响应所有通信,包括当机的应用程序的通信。
要确定是否启用套接字合用,以及 Web 服务器是否绑定至 0.0.0.0,请发出以下命令:
netstat -an
有关如何将 Microsoft IIS 服务器配置为绑定特定(禁用套接字合用)的说明位于 Microsoft 产品支持服务 Web 站点。您还可以转至这些 URL 中的一个来获取此信息:
在 Windows 操作系统上的命令提示符窗口中,某些 Latin-1 系列的本地字符可能显示为乱码。例如,可能将有颚化符号的“a”字母显示为 pi 符号。要修正此问题,您必须更改命令提示符窗口的字体属性。要更改字体,执行下列步骤:
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本以小字体显示。通过编辑 Netscape 浏览器的首选项选项可增加字体大小。
有些 HP-UX 11i 安装被预配置为仅允许每个进程有 64 个线程。但是,有些 Load Balancer 配置要求多于此数量。我们建议对于 HP-UX 把每个进程的线程数至少设置为 256。要增加此值,使用“sam”实用程序设置 max_thread_proc 内核参数。如果预期有大量使用,可能需要把 max_thread_proc 增加到 256 以上。
要增加 max_thread_proc,执行以下操作:
当在网络分派器机器上配置您的适配器时,为了让顾问程序工作,您必须确保以下两个设置正确:
在 Windows 平台上,当对一个适配器配置了多个 IP 地址时,请在注册表中配置您希望首先与主机名关联的 IP 地址。
因为 Load Balancer 在许多实例(例如 lbkeys create)中从属于 InetAddress.getLocalHost(),所以一个适配器对应多个 IP 地址可能导致问题。为避免此问题,请在注册表中列出您希望主机名首先解析为的 IP 地址。例如:
缺省情况下,当 Windows 操作系统检测到网络中断,它会清除其地址解析协议(ARP)高速缓存,包括所有静态条目。在网络可用后,ARP 高速缓存由在网络上发送的 ARP 请求重新填充。
在高可用性配置下,当网络连接的丢失影响到两个服务器或其中一个时,这两个服务器都会接管主操作。当发送 ARP 请求以重新填充 ARP 高速缓存时,两个服务器都会响应,从而导致 ARP 高速缓存把条目标记为无效。因此,顾问程序无法创建到备份服务器的套接字。
阻止 Windows 操作系统在连接丢失时清除 ARP 高速缓存可解决此问题。Microsoft 已发布一篇文章来说明如何完成此任务。此文章在 Microsoft Web 站点上,位于 Microsoft 知识库,文章号 239924:http://support.microsoft.com/default.aspx?scid=kb;en-us;239924。
以下是该 Microsoft 文章中描述的阻止系统清除 ARP 高速缓存的步骤摘要:
当使用 Linux kernel 2.4.x 服务器和分派器的 MAC 转发方法时必须考虑某些事项。如果服务器用 ip address add 命令在回送设备上配置了群集地址,则仅可对一个群集地址进行别名判别。
当对回送设备别名判别多个群集时要使用 ifconfig 命令,例如:
ifconfig lo:num clusterAddress netmask 255.255.255.255 up
此外,配置接口的 ifconfig 方法和配置接口的 ip 方法之间存在不兼容性。最佳实践建议站点选择一个方法并且只用该方法。
当另一个程序正在使用 CBR 使用的端口时,可发生这种问题。 要获取更多信息,请转至检查 CBR 端口号。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
当其中一个管理控制台运行在与防火墙相同的机器上或在通过防火墙的机器上,那么这会导致问题。 例如,当 Load Balancer 在与防火墙所在的同一台机器上运行并且您发出 cbrcontrol 命令时,您可能会看到一些错误,如错误:服务器未响应。
要避免此问题,编辑 cbrserver 脚本文件以设置防火墙(或其它应用程序)的 RMI 使用的端口。 将行 LB_RMISERVERPORT=11199 更改为 LB_RMISERVERPORT=yourPort。其中 yourPort 是另一个端口。
一旦完成,重新启动 cbrserver,并打开端口 11099、10004、11199 和 11100 或将要运行管理控制台的主机地址中所选端口的流量。
高速缓存代理和 CBR 已启动,但未负载均衡请求。如果您启动执行程序之前启动高速缓存代理,则会发生这个错误。如果它发生了,高速缓存代理的 stderr 日志将包含下列错误消息“ndServerInit:无法连接到执行程序”。 要避免此问题,启动高速缓存代理之前启动执行程序。
在 Solaris 上,cbrcontrol executor start 命令返回:“错误:执行程序未启动”。如果您不配置系统的 IPC(进程间通信),以使共享内存段和信号量标识的最大大小大于操作系统的缺省值,则会发生此错误。为了增加共享内存段和信号量标识的大小,您必须编辑 /etc/system 文件。要获取有关如何配置此文件的更多信息,请参阅第 *** 页。
如果 URL 规则不工作,则这可能是语法或配置错误所导致的。要解决此问题,需进行以下检查:
在 Windows 平台上使用 3Com 985B 吉位以太网适配器时,您可能会遇到以下问题:
要避免这些问题,使用另一个公司出品的千兆位以太网适配器。
在 Solaris 本地语言版本上,Load Balancer GUI 的“是”和“否”按钮可能显示为英文。这是一个正在由 Sun Microsystems 处理的已知问题。
在 Windows 平台上,当使用 Matrox AGP 卡时,在 Load Balancer GUI 中会发生意外行为。当单击鼠标时,比鼠标指针稍大的块会被损坏,从而引起突出显示反向或使图像移出屏幕。较旧的 Matrox 卡未显示此行为。在使用 Matrox AGP 卡时,没有已知修正。
如果您在装入一个大配置时,使用 lbadmin 或远程 Web 管理遇到了问题,则您可能需要增加最大 Java 堆大小。缺省情况下,Java 将虚拟机堆限制为 64 MB。某些 Load Balancer 配置程序(lbadmin 和 lbwebaccess)在用于管理很大的配置时,可能需要大于此 64 MB 的限制。 为了解决此问题,最大 Java 堆大小可增加至一个大于 64 MB 的值。要增加此最大堆大小,使用“-Xmx”Java 选项。例如,在 lbadmin 脚本中,修改“javaw”为“javaw -Xmx256m”,以便将最大 Java 堆大小更改为 256 MB。如果您在使用 Web 管理时遇到此问题,按描述修改 lbwebaccess 脚本。
如果您在使用远程 Web 管理配置 Load Balancer,则不要调整(最小化、最大化及还原等)Load Balancr GUI 所在的 Netscape 浏览器窗口大小。因为 Netscape 在每次调整浏览器窗口大小时重新装入一个页面,所以这将导致从主机断开连接。在每次调整窗口大小时,需要重新连接至主机。 如果在 Windows 平台上执行远程 Web 管理,请使用 Internet Explorer。
在 Windows 操作系统上的命令提示符窗口中,某些 Latin-1 系列的本地字符可能显示为乱码。例如,可能将有颚化符号的“a”字母显示为 pi 符号。要修正此问题,您必须更改命令提示符窗口的字体属性。要更改字体,执行下列步骤:
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本以小字体显示。通过编辑 Netscape 浏览器的首选项选项可增加字体大小。
有些 HP-UX 11i 安装预配置为仅允许每个进程有 64 个线程。但是,有些 Load Balancer 配置的要求多于此数量。我们建议对于 HP-UX 把每个进程的线程数至少设置为 256。要增加此值,使用“sam”实用程序设置 max_thread_proc 内核参数。如果预期有大量使用,可能需要把 max_thread_proc 增加到 256 以上。
要增加 max_thread_proc,请参阅第 *** 页上的步骤。
当在网络分派器机器上配置您的适配器时,为了让顾问程序工作,您必须确保以下两个设置正确:
请参阅第 *** 页获取有关配置这些设置的说明。
在 Windows 平台上,当对一个适配器配置了多个 IP 地址时,请在注册表中配置您希望首先与主机名关联的 IP 地址。
因为 Load Balancer 在许多实例(例如 lbkeys create)中从属于 InetAddress.getLocalHost(),所以一个适配器对应多个 IP 地址可能导致问题。为避免此问题,请在注册表中列出您希望主机名首先解析为的 IP 地址。
请参阅第 *** 页获取在注册表中配置首选主机名的步骤。
当另一个应用程序使用站点选择器使用的一个端口时,会发生此问题。 要获取更多信息,请转至检查站点选择器端口号。
症状:站点选择器组件不循环来自 Solaris 客户机的进入请求。
可能的原因:Solaris 系统运行名称服务高速缓存守护程序。如果此守护程序正在运行,则将从此高速缓存回答后继解析器请求,而不是查询站点选择器。
解决方案:关闭 Solaris 机器上的名称服务高速缓存守护程序。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
当其中一个管理控制台运行在与防火墙相同的机器上或在通过防火墙的机器上,那么这会导致问题。 例如,当 Load Balancer 在与防火墙所在的同一台机器上运行并且您发出 sscontrol 命令时,您可能会看到一些错误,如错误:服务器未响应。
要避免此问题,编辑 ssserver 脚本文件以设置防火墙(或其它应用程序)的 RMI 使用的端口。将行 LB_RMISERVERPORT=10199 更改为 LB_RMISERVERPORT= yourPort。其中 yourPort 是另一个端口。
一旦完成,重新启动 ssserver,并打开端口 12099、10004、12199 和 12100 或将要运行管理控制台的主机地址中所选端口的流量。
站点选择器必须可以参与在 DNS 中。配置中涉及的所有机器也应当参与在此系统中。 Windows 并不总要求配置的主机名在 DNS 中。站点选择器要求它的主机名定义在 DNS 中以能正确启动。
验证此主机已定义在 DNS 中。编辑 ssserver.cmd 文件并从“javaw”中除去“w”。这将提供有关错误的更多信息。
站点选择器的名称服务器未绑定到机器上的任何一个地址。 它将对发往机器上任何有效 IP 的请求做出响应。站点选择器依赖操作系统路由返回到客户机的响应。如果站点选择器机器具有多个适配器,并且许多适配器连接到同一子网,则 O/S 可能将从不同于接收地址的地址将响应发送到客户机。 一些客户机应用程序不接受从不是发送地址发送的接收响应。因此,名称解析失败。
在 Windows 平台上使用 3Com 985B 吉位以太网适配器时,您可能会遇到以下问题:
要避免这些问题,使用另一个公司出品的千兆位以太网适配器。
在 Solaris 本地语言版本上,Load Balancer GUI 的“是”和“否”按钮可能显示为英文。这是一个正在由 Sun Microsystems 处理的已知问题。
在 Windows 平台上,当使用 Matrox AGP 卡时,在 Load Balancer GUI 中会发生意外行为。当单击鼠标时,比鼠标指针稍大的块会被损坏,从而引起突出显示反向或使图像移出屏幕。较旧的 Matrox 卡未显示此行为。在使用 Matrox AGP 卡时,没有已知修正。
如果您在装入一个大配置时,使用 lbadmin 或远程 Web 管理遇到了问题,则您可能需要增加最大 Java 堆大小。缺省情况下,Java 将虚拟机堆限制为 64 MB。某些 Load Balancer 配置程序(lbadmin 和 lbwebaccess)在用于管理很大的配置时,可能需要大于此 64 MB 的限制。 为了解决此问题,最大 Java 堆大小可增加至一个大于 64 MB 的值。要增加此最大堆大小,使用“-Xmx”Java 选项。例如,在 lbadmin 脚本中,修改“javaw”为“javaw -Xmx256m”,以便将最大 Java 堆大小更改为 256 MB。如果您在使用 Web 管理时遇到此问题,按描述修改 lbwebaccess 脚本。
如果您在使用远程 Web 管理配置 Load Balancer,则不要调整(最小化、最大化及还原等)Load Balancr GUI 所在的 Netscape 浏览器窗口大小。因为 Netscape 在每次调整浏览器窗口大小时重新装入一个页面,所以这将导致从主机断开连接。在每次调整窗口大小时,需要重新连接至主机。 如果在 Windows 平台上执行远程 Web 管理,请使用 Internet Explorer。
在 Windows 操作系统上的命令提示符窗口中,某些 Latin-1 系列的本地字符可能显示为乱码。例如,可能将有颚化符号的“a”字母显示为 pi 符号。要修正此问题,您必须更改命令提示符窗口的字体属性。要更改字体,执行下列步骤:
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本以小字体显示。通过编辑 Netscape 浏览器的首选项选项可增加字体大小。
有些 HP-UX 11i 安装预配置为仅允许每个进程有 64 个线程。但是,有些 Load Balancer 配置的要求多于此数量。我们建议对于 HP-UX 把每个进程的线程数至少设置为 256。要增加此值,使用“sam”实用程序设置 max_thread_proc 内核参数。如果预期有大量使用,可能需要把 max_thread_proc 增加到 256 以上。
要增加 max_thread_proc,请参阅第 *** 页上的步骤。
当在网络分派器机器上配置您的适配器时,为了让顾问程序工作,您必须确保以下两个设置正确:
请参阅第 *** 页获取有关配置这些设置的说明。
当另一个应用程序正在使用由Cisco CSS 控制器的 ccoserver 使用的一个端口时,会发生此问题。要获取更多的信息,请参阅检查 Cisco CSS 控制器端口号。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
当其中一个管理控制台运行在与防火墙相同的机器上或在通过防火墙的机器上,那么这会导致问题。 例如,当 Load Balancer 在与防火墙所在的同一台机器上运行并且您发出 ccocontrol 命令时,您可能会看到一些错误,如错误:服务器未响应。
要避免此问题,编辑 ccoserver 脚本文件以设置防火墙(或其它应用程序)的 RMI 使用的端口。 将行 CCO_RMISERVERPORT=14199 更改为 CCO_RMISERVERPORT=yourPort。其中 yourPort 是另一个端口。
一旦完成,重新启动 ccoserver,并打开端口 13099、10004、13199 和 13100 或将要运行管理控制台的主机地址中所选端口的流量。
当缺少有效产品许可证时,会发生此问题。当您尝试启动 ccoserver 时,您会接收到以下消息:
您的许可证已到期,请联系您本地 IBM 代表或授权的 IBM 分销商。
要改正此问题:
在 Solaris 本地语言版本上,Load Balancer GUI 的“是”和“否”按钮可能显示为英文。这是一个正在由 Sun Microsystems 处理的已知问题。
在 Windows 平台上,当使用 Matrox AGP 卡时,在 Load Balancer GUI 中会发生意外行为。当单击鼠标时,比鼠标指针稍大的块会被损坏,从而引起突出显示反向或使图像移出屏幕。较旧的 Matrox 卡未显示此行为。在使用 Matrox AGP 卡时,没有已知修正。
在添加咨询器时,您可能会由于不正确的配置设置而遇到连接错误。要修正此问题:
要修正此问题
增加咨询器 loglevel 并重试此命令。如果它再次失败,则搜索 SNMP 超时的日志或其它 SNMP 通信错误。
如果您在装入一个大配置时,使用 lbadmin 或远程 Web 管理遇到了问题,则您可能需要增加最大 Java 堆大小。缺省情况下,Java 将虚拟机堆限制为 64 MB。某些 Load Balancer 配置程序(lbadmin 和 lbwebaccess)在用于管理很大的配置时,可能需要大于此 64 MB 的限制。 为了解决此问题,最大 Java 堆大小可增加至一个大于 64 MB 的值。要增加此最大堆大小,使用“-Xmx”Java 选项。例如,在 lbadmin 脚本中,修改“javaw”为“javaw -Xmx256m”,以便将最大 Java 堆大小更改为 256 MB。如果您在使用 Web 管理时遇到此问题,按描述修改 lbwebaccess 脚本。
如果您在使用远程 Web 管理配置 Load Balancer,则不要调整(最小化、最大化及还原等)Load Balancr GUI 所在的 Netscape 浏览器窗口大小。因为 Netscape 在每次调整浏览器窗口大小时重新装入一个页面,所以这将导致从主机断开连接。在每次调整窗口大小时,需要重新连接至主机。 如果在 Windows 平台上执行远程 Web 管理,请使用 Internet Explorer。
在 Windows 操作系统上的命令提示符窗口中,某些 Latin-1 系列的本地字符可能显示为乱码。例如,可能将有颚化符号的“a”字母显示为 pi 符号。要修正此问题,您必须更改命令提示符窗口的字体属性。要更改字体,执行下列步骤:
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本以小字体显示。通过编辑 Netscape 浏览器的首选项选项可增加字体大小。
有些 HP-UX 11i 安装预配置为仅允许每个进程有 64 个线程。但是,有些 Load Balancer 配置的要求多于此数量。我们建议对于 HP-UX 把每个进程的线程数至少设置为 256。要增加此值,使用“sam”实用程序设置 max_thread_proc 内核参数。如果预期有大量使用,可能需要把 max_thread_proc 增加到 256 以上。
要增加 max_thread_proc,请参阅第 *** 页上的步骤。
当另一个应用程序正在使用由Nortel Alteon 控制器的 nalserver 使用的一个端口时,会发生此问题。要获取更多的信息,请参阅检查 Nortel Alteon 控制器端口号。
EXCLUDE-MODULE java EXCLUDE-MODULE javaw
当其中一个管理控制台运行在与防火墙相同的机器上或在通过防火墙的机器上,那么这会导致问题。 例如,当 Load Balancer 在与防火墙所在的同一台机器上运行并且您发出 nalcontrol 命令时,您可能会看到一些错误,如错误:服务器未响应。
要避免此问题,编辑 nalserver 脚本文件以设置防火墙(或其它应用程序)的 RMI 使用的端口。 将行 NAL_RMISERVERPORT=14199 更改为 NAL_RMISERVERPORT=yourPort。其中 yourPort 是另一个端口。
一旦完成,重新启动 nalserver,并打开端口 14099、10004、14199 和 14100 或将要运行管理控制台的主机地址中所选端口的流量。
当缺少有效产品许可证时,会发生此问题。当您尝试启动 nalserver 时,您会接收到以下消息:
您的许可证已到期,请联系您本地 IBM 代表或授权的 IBM 分销商。
要改正此问题:
在 Windows 平台上,当使用 Matrox AGP 卡时,在 Load Balancer GUI 中会发生意外行为。当单击鼠标时,比鼠标指针稍大的块会被损坏,从而引起突出显示反向或使图像移出屏幕。较旧的 Matrox 卡未显示此行为。在使用 Matrox AGP 卡时,没有已知修正。
如果您在装入一个大配置时,使用 lbadmin 或远程 Web 管理遇到了问题,则您可能需要增加最大 Java 堆大小。缺省情况下,Java 将虚拟机堆限制为 64 MB。某些 Load Balancer 配置程序(lbadmin 和 lbwebaccess)在用于管理很大的配置时,可能需要大于此 64 MB 的限制。 为了解决此问题,最大 Java 堆大小可增加至一个大于 64 MB 的值。要增加此最大堆大小,使用“-Xmx”Java 选项。例如,在 lbadmin 脚本中,修改“javaw”为“javaw -Xmx256m”,以便将最大 Java 堆大小更改为 256 MB。如果您在使用 Web 管理时遇到此问题,按描述修改 lbwebaccess 脚本。
如果您在使用远程 Web 管理配置 Load Balancer,则不要调整(最小化、最大化及还原等)Load Balancr GUI 所在的 Netscape 浏览器窗口大小。因为 Netscape 在每次调整浏览器窗口大小时重新装入一个页面,所以这将导致从主机断开连接。在每次调整窗口大小时,需要重新连接至主机。 如果在 Windows 平台上执行远程 Web 管理,请使用 Internet Explorer。
在添加咨询器时,您可能会由于不正确的配置设置而遇到连接错误。要修正此问题:
要修正此问题
增加咨询器 loglevel 并重试此命令。如果它再次失败,则搜索 SNMP 超时的日志或其它 SNMP 通信错误。
在 Windows 平台操作系统上的命令提示符窗口中,某些 Latin-1 系列的本地字符可能显示为乱码。例如,可能将有颚化符号的“a”字母显示为 pi 符号。要修正此问题,您必须更改命令提示符窗口的字体属性。要更改字体,执行下列步骤:
在基于 UNIX 平台上使用 Netscape 浏览器,信息中心中的联机帮助文本以小字体显示。通过编辑 Netscape 浏览器的首选项选项可增加字体大小。
有些 HP-UX 11i 安装预配置为仅允许每个进程有 64 个线程。但是,有些 Load Balancer 配置的要求多于此数量。我们建议对于 HP-UX 把每个进程的线程数至少设置为 256。要增加此值,使用“sam”实用程序设置 max_thread_proc 内核参数。如果预期有大量使用,可能需要把 max_thread_proc 增加到 256 以上。
要增加 max_thread_proc,请参阅第 *** 页上的步骤。
要在 Windows 平台上运行度量服务器,您必须对用户所写的度量使用完整的度量名。例如,您必须指定 usermetric.bat 而不是 usermetric。名称 usermetric 在命令行上有效,但从运行时环境内执行时它不工作。如果您不使用完整的度量名,您将接收度量服务器 IOException。在 metricserver 命令文件中将 LOG_LEVEL 变量设置一个为 3 的值,然后检查日志输出。 在此示例中,异常表现为:
... java.io.IOException: CreateProcess: usermetric error=2
度量服务器未将负载信息报告给 Load Balancer 的原因可能有几种。要确定原因,执行下列检查:
在密钥文件已传送到服务器上后,度量服务器日志会报告此错误消息。
由于密钥对损坏引起未能用成对密钥授权时,将记录此错误。要改正此错误,尝试下列操作:
当在多处理器 AIX 平台(4.3.3、32-bit 5.1 或 64-bit 5.1)重负载情况下运行度量服务器时,ps -vg 命令的输出可能会损坏。例如:
55742 - A 88:19 42 18014398509449680 6396 32768 22 36 2.8 1.0 java -Xms
ps 命令的 SIZE 和/或 RSS 字段可能显示将使用过多的内存量。
这是一个已知的 AIX 内核问题。Apar IY33804 将改正此问题。请从位于 http://techsupport.services.ibm.com/server/fixes 的 AIX 支持获取修订,或联系您的本地 AIX 支持代表。
在两层 Load Balancer 配置中,如果站点选择器(第一层)跨越一对分派器高可用性伙伴(第二层)进行负载均衡,则您必须完成一些步骤以配置度量服务器组件。您必须配置度量服务器在专供度量服务器使用的新 IP 地址上侦听。在两个高可用性分派器机器上,度量服务器仅在活动的分派器上活动。
要正确配置此设置,完成以下步骤:
例如:
ifconfig en0 delete 9.27.23.61 ifconfig lo0 alias 9.27.23.61 netmask 255.255.255.0 route add 9.27.23.61 127.0.0.1 metricserver stop # Sleep either max 60 seconds or until the metricserver stops let loopcount=0 while [[ "$loopcount" -lt "60" && 'ps -ef |grep AgentStop| grep -c -v gr ep' -eq "1"]] do sleep 1 let loopcount=$loopcount+1 done route delete 9.27.23.61
例如:
call netsh interface ip delete address "Local Area Connection" addr=9.27.23.61 call netsh interface ip add address "Local Area Connection 2" addr=9.27.2.3.61 mask = 255.255.255.0 sleep 3 metricserver stop
此部分提供所有 Load Balancer 组件的命令参考信息。 它包含以下几章:
语法图向您显示了如何指定一个命令,以便使操作系统 能够正确地解释您所输入的内容。应按照水平线(主路径)从左到右,从上到下读语法图。
语法图中使用下列符号:
您必须包含显示在语法图中所有标点符号,如冒号、引号和减号等。
在语法图中使用下列参数类型。
参数分类为关键字或变量。关键字按小写字母显示,并且可以小写输入。例如,命令名是关键字。变量是斜体,并表示您提供的名称或值。
在以下示例中,用户命令是一个关键字。必需变量 是 user_id,可选变量是 password。用您自己的值替换变量。
>>-user--user_id--+----------+--------------------------------->< '-password-'
必需关键字:必需关键字和变量显示在主路径线上。
>>-required_keyword--------------------------------------------><
您必须对必需的关键字和值编码。
从堆栈选择一个必需的项:如果有 多个互斥的必需关键字或变量可以选择,则它们按照字母 顺序垂直堆叠排列。
>>-+-required_parameter_1-+------------------------------------>< '-required_parameter_2-'
可选值:可选关键字和变量显示在主路径线的下面。
>>-+---------+------------------------------------------------->< '-keyword-'
您可以选择不对可选关键字和变量进行编码。
从堆栈中选择一个可选关键字:如果有 多个互斥的可选关键字或变量可以选择,则它们按照字母 顺序在主路径线下垂直堆叠排列。
>>-+-------------+--------------------------------------------->< +-parameter_1-+ '-parameter_2-'
变量:整个为斜体的字为变量。在语法中看到变量,您必须 按照文本中的定义,用它的一个允许名称或值来替换它。
>>-variable----------------------------------------------------><
非字母字符:如果图中显示一个不是字母(如冒号、引号或减号)的字符,您必须将此字符编码为语法的一部分。在此示例中,您必须对 cluster:port 进行编码。
>>-cluster:port------------------------------------------------><
本附录描述如何使用分派器dscontrol 命令。它也是 CBR 的命令参考。CBR 使用分派器命令的子集。请参阅CBR 和分派器之间的配置差异以获取更多信息。
记录:
下面是此附录中的命令列表:
您可以输入 dscontrol 命令参数的最小化版本。仅需输入参数特有的字母。例如,要获取有关文件保存命令的帮助,您可以输入 dscontrol he f 来替代 dscontrol help file。
要启动命令行界面:发出 dscontrol 以接收 dscontrol 命令提示符。
CBR 命令行界面适用于大部分分派器命令行界面的子集。对于 CBR,用 cbrcontrol 命令替换 dscontrol,以配置组件。
下面列出了 CBR 中省略的一些命令。
>>-dscontrol--advisor--+-connecttimeout--name--+-port---------+--timeoutseconds-+->< | '-cluster:port-' | +-interval--name--+-port---------+--seconds--------------+ | '-cluster:port-' | +-list---------------------------------------------------+ +-loglevel--name--+-port---------+--level----------------+ | '-cluster:port-' | +-logsize--name--+-port---------+--+-unlimited---------+-+ | '-cluster:port-' '-number of records-' | +-receivetimeout--name--+-port---------+--timeoutseconds-+ | '-cluster:port-' | +-report--name--+-port---------+-------------------------+ | '-cluster:port-' | +-retries--name--+-port---------+--numretries------------+ | '-cluster:port-' | +-start--name--+-port---------+--+----------+------------+ | '-cluster:port-' '-log file-' | +-status--name--+-port---------+-------------------------+ | '-cluster:port-' | +-stop--name--+-port---------+---------------------------+ | '-cluster:port-' | +-timeout--name--+-port---------+--+-unlimited-+---------+ | '-cluster:port-' '-seconds---' | '-version--name--+-port---------+------------------------' '-cluster:port-'
请参阅顾问程序列表,以获取有关 Load Balancer 提供的顾问程序的更多信息。
定制顾问程序名称的格式为 xxxx,其中 ADV_xxxx 是实现定制顾问程序的类名。请参阅创建定制(可定制的)顾问程序以获取更多信息。
群集是点分十进制格式或符号名的地址。端口是顾问程序监视的端口号。
顾问程序名称 | 协议 | 端口 |
---|---|---|
cachingproxy | HTTP(通过高速缓存代理) | 80 |
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
self | private | 12345 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
ssl2http | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
缺省文件为 advisorname_port.log,例如,http_80.log。要更改日志文件所在的目录,请参阅更改日志文件路径。群集(或站点)特定顾问程序的缺省日志文件是使用群集地址创建的,例如 http_127.40.50.1_80.log。
示例
dscontrol advisor start http 127.40.50.1:80
dscontrol advisor start http 88
dscontrol advisor stop http 127.40.50.1:80
dscontrol advisor connecttimeout http 80 30
dscontrol advisor connecttimeout http 127.40.50.1:80 20
dscontrol advisor interval ftp 21 6
dscontrol advisor list该命令产生类似于下列的输出:
--------------------------------------- | ADVISOR | CLUSTER:PORT | TIMEOUT | --------------------------------------- | http |127.40.50.1:80 | unlimited | | ftp | 21 | unlimited | ---------------------------------------
dscontrol advisor loglevel http 80 0
dscontrol advisor logsize ftp 21 5000
dscontrol advisor receivetimeout http 80 60
dscontrol advisor report ftp 21该命令产生类似于下列的输出:
顾问程序报告: --------------- 顾问程序名称 ............. Ftp 端口号 ................... 21 群集地址 ................. 9.67.131.18 服务器地址 ............... 9.67.129.230 负载 ..................... 8 群集地址 ................. 9.67.131.18 服务器地址 ............... 9.67.131.215 负载 ..................... -1
dscontrol advisor status http 80该命令产生类似于下列的输出:
顾问程序状态: --------------- 间隔(秒)..................... 7 超时(秒)..................... Unlimited 连接超时(秒)..................21 接收超时(秒)..................21 顾问程序日志文件名 ............ Http_80.log 日志级别 ...................... 1 最大日志大小(字节)........... Unlimited 重试数 ........................ 0
dscontrol advisor timeout ftp 21 5
dscontrol advisor version ssl 443该命令产生类似于下列的输出:
Version: 04.00.00.00 - 07/12/2001-10:09:56-EDT
>>-dscontrol--binlog--+-start----------------------+----------->< +-stop-----------------------+ +-set--+-retention--hours--+-+ | '-interval--seconds-' | '-status---------------------'
>>-dscontrol--cluster--+-add--cluster+c2+...--+----------------------------------------+-+->< | +-address--address-----------------------+ | | +-proportions--active--new--port--system-+ | | +-maxports--size-------------------------+ | | +-maxservers--size-----------------------+ | | +-stickytime--time-----------------------+ | | +-weightbound--weight--------------------+ | | +-porttype--type-------------------------+ | | +-primaryhost--address-------------------+ | | +-staletimeout--staletimeout-------------+ | | '-sharedbandwidth--size------------------' | +-set--cluster+c2+...--+-proportions--active--new--port--system-+-+ | +-maxports--size-------------------------+ | | +-maxservers--size-----------------------+ | | +-stickytime--time-----------------------+ | | +-weightbound--weight--------------------+ | | +-porttype--type-------------------------+ | | +-primaryhost--address-------------------+ | | +-staletimeout--staletimeout-------------+ | | '-sharedbandwidth--size------------------' | +-remove--cluster-------------------------------------------------+ +-report--cluster-------------------------------------------------+ '-status--cluster-------------------------------------------------'
除 dscontrol cluster add 命令是例外,您可使用一个冒号(:)作为通配符。例如,下列命令 dscontrol cluster set : weightbound 80,将会设置权值范围 80 给所有群集。
如果已启动主和备份机器并且正在运行相互高可用性时更改群集的 primaryhost,则必须强制新的主主机接管任务。 同时,您需要正确地更新脚本,并手工取消配置和配置此群集。 请参阅相互高可用性以获取更多信息。
示例
dscontrol cluster add 130.40.52.153
dscontrol cluster remove 130.40.52.153
dscontrol cluster set 9.6.54.12 proportions 60 35 5 0
dscontrol cluster add 0.0.0.0
dscontrol cluster set 9.6.54.12 primaryhost 9.65.70.19
dscontrol cluster status 9.67.131.167该命令产生类似于下列的输出:
群集状态: ---------------- 群集 .................................... 9.67.131.167 地址 .................................... 9.67.131.167 目标端口数 .............................. 3 缺省粘性时间 ............................ 0 缺省失效超时 ............................ 30 缺省端口权值范围 ........................ 20 最大端口数目 ............................ 8 缺省端口协议 ............................ tcp/udp 缺省最大服务器数 ........................ 32 给定的活动连接比例 ...................... 0.5 给定的新建连接比例 ...................... 0.5 给定的特定端口比例 ...................... 0 给定的系统度量比例 ...................... 0 共享带宽(千字节) ...................... 0 主主机地址 .............................. 9.67.131.167
>>-dscontrol--executor--+-report-----------------------------------------------------------+->< +-set--+-nfa--IP address------------+------------------------------+ | +-maxclusters--size----------+ | | +-maxports--size-------------+ | | +-fincount--fincount---------+ | | +-fintimeout--fintimeout-----+ | | +-hatimeout--time------------+ | | +-maxservers--size-----------+ | | +-staletimeout--staletimeout-+ | | +-stickytime--time-----------+ | | +-clientgateway--address-----+ | | +-weightbound--weight--------+ | | +-porttype--type-------------+ | | +-wideportnumber--port-------+ | | '-sharedbandwidth--size------' | +-configure--interface_address+i2+...--+-------------------------+-+ | '-interface_name--netmask-' | +-unconfigure--interface_address-----------------------------------+ +-start------------------------------------------------------------+ +-status-----------------------------------------------------------+ '-stop-------------------------------------------------------------'
示例
dscontrol executor status 执行程序状态: --------------- 非转发地址 .......................... 9.67.131.151 客户机网关地址 ...................... 0.0.0.0 Fin 计数 ............................ 4,000 Fin 超时 ............................ 60 广域网端口号 ........................ 0 共享带宽(千字节)................... 0 每个群集的缺省最大端口 .............. 8 最大群集数 .......................... 100 每个端口的缺省最大服务器 ............ 32 缺省旧文件超时 ...................... 300 缺省粘性时间 ........................ 0 缺省权值范围 ........................ 20 缺省端口类型 ........................ tcp/udp
dscontrol executor set nfa 130.40.52.167
dscontrol executor set maxclusters 4096
dscontrol executor start
dscontrol executor stop
>>-dscontrol--file--+-delete--file[.ext]----------+------------>< +-appendload--file[.ext]------+ +-report----------------------+ +-save--file[.ext]--+-------+-+ | '-force-' | '-newload--file[.ext]---------'
文件扩展名(.ext)可以是想用的任何扩展名并可以省略。
示例
dscontrol file delete file3 文件(file3)被删除。
dscontrol file newload file1.sv 文件(file1.sv)装入分派器。
dscontrol file appendload file2.sv 文件(file2.sv)附加到当前配置并装入。
dscontrol file report 文件报告: file1.save file2.sv file3
dscontrol file save file3 配置保存到文件(file3)。
>>-dscontrol--help--+-advisor----------+----------------------->< +-binlog-----------+ +-cluster----------+ +-executor---------+ +-file-------------+ +-help-------------+ +-highavailability-+ +-host-------------+ +-logstatus--------+ +-manager----------+ +-metric-----------+ +-port-------------+ +-rule-------------+ +-server-----------+ +-set--------------+ +-status-----------+ '-subagent---------'
示例
dscontrol help该命令产生类似于下列的输出:
HELP 命令参数: --------------------------------- 用法:help <help option> 示例:help cluster help - 打印完整的帮助文本 advisor - 关于 advisor 命令的帮助 cluster - 关于 cluster 命令的帮助 executor - 关于 executor 命令的帮助 file - 关于 file 命令的帮助 host - 关于 host 命令的帮助 binlog - 关于 binary log 命令的帮助 manager - 关于 manager 命令的帮助 metric - 关于 metric 命令的帮助 port - 关于 port 命令的帮助 rule - 关于 rule 命令的帮助 server - 关于 server 命令的帮助 set - 关于 set 命令的帮助 status - 关于 status 命令的帮助 logstatus - 关于 server log status 的帮助 subagent - 关于 subagent 命令的帮助 highavailability - 关于 high availability 命令的帮助注意在 <> 中的参数是变量。
fintimeout <cluster address>|all <time> -Change FIN timeout (使用‘all’来更改全部群集)
>>-dscontrol--highavailability--+-status--------------------------------------+->< +-backup--+-add--+-primary-+--+-auto---+--p-+-+ | | +-backup--+ '-manual-' | | | | '-both----' | | | '-delete--------------------------' | +-reach--+-add----+--address--mask------------+ | '-delete-' | +-heartbeat--+-add--srcaddress--dstaddress-+--+ | '-delete--address-------------' | '-takeover--+---------+-----------------------' '-address-'
此外,status 关键字返回关于各种 子状态的信息:
记录:
示例
dscontrol highavailability status
输出:
高可用性状态: ------------------------- 角色 ........................ 主 恢复策略 .................... 手工 状态 ........................ 活动 子状态 ...................... 同步 主主机 ...................... 9.67.131.151 端口 .........................12345 首选目标..................... 9.67.134.223 工作频率状态: ----------------- 计数 .......................... 1 源/目的地 .................... 9.67.131.151/9.67.134.223 可达性状态: -------------------- 计数 ................. 1 地址 ................. 9.67.131.1 可到达
dscontrol highavailability backup add primary auto 80
dscontrol highavailability reach add 9.67.125.18
主 - highavailability heartbeat add 9.67.111.3 9.67.186.8 备份 - highavailability heartbeat add 9.67.186.8 9.67.111.3
dscontrol highavailability takeover
>>-dscontrol--host:--remote_host-------------------------------><
dscontrol host:remote_host
在命令提示符下发出此命令后,输入任何一个要向远程 Load Balancer 机器发出的有效 dscontrol 命令。
>>-dscontrol--logstatus----------------------------------------><
示例
要显示 logstatus:
dscontrol logstatus
该命令产生类似于下列的输出:
分派器日志状态: ------------------------------ 日志文件名 ................. C:\PROGRA~1\IBM\edge\lb\servers\logs\dispatcher \server.log 日志级别 ................... 1 最大日志大小(字节)........ 1048576
>>-dscontrol--manager--+-interval--seconds----------------------+->< +-loglevel--level------------------------+ +-logsize--+-unlimited-+-----------------+ | '-bytes-----' | +-metric set--+-loglevel--level--------+-+ | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-quiesce--server--+-----+---------------+ | '-now-' | +-reach set--+-interval--seconds------+--+ | +-loglevel--level--------+ | | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-refresh--refresh cycle-----------------+ +-report--+----------------+-------------+ | '-cluster+c2+...-' | +-restart--message-----------------------+ +-sensitivity--weight--------------------+ +-smoothing--smoothing index-------------+ +-start--+-----------------------+-------+ | '-log file--metric_port-' | +-status---------------------------------+ +-stop-----------------------------------+ +-unquiesce--server----------------------+ '-version--------------------------------'
或,如果您使用服务器分区,使用逻辑服务器的唯一的名称。请参阅服务器分区:配置到一个物理服务器(IP 地址)的逻辑服务器以获取更多信息。
缺省文件将安装在 logs 目录下。请参阅附录 C, 样本配置文件。要更改日志文件所在的目录,请参阅更改日志文件路径。
示例
dscontrol manager interval 5
dscontrol manager loglevel 0
dscontrol manager logsize 1000000
dscontrol manager quiesce 130.40.52.153
dscontrol manager refresh 3
dscontrol manager report该命令产生类似于下列的输出:
-------------------------------------------------------------------- | 服务器 | IP 地址 | 状态 | -------------------------------------------------------------------- | mach14.dmz.com | 10.6.21.14 | 活动 | | mach15.dmz.com | 10.6.21.15 | 活动 | -------------------------------------------------------------------- ----------------------------- | 管理器报告图注 | ----------------------------- | ACTV | 活动连接 | | NEWC | 新连接 | | SYS | 系统度量 | | NOW | 当前权值 | | NEW | 新权值 | | WT | 权值 | | CONN | 连接 | ----------------------------- ------------------------------------------------------------------- | www.dmz.com | | | | | | | 10.6.21.100 | WEIGHT | ACTV | NEWC | PORT | SYS | | PORT: 21 |NOW NEW| 49% | 50% | 1% | 0% | ------------------------------------------------------------------- | mach14.dmz.com | 10 10 | 0 | 0 | -1 | 0 | | mach15.dmz.com | 10 10 | 0 | 0 | -1 | 0 | ------------------------------------------------------------------- ------------------------------------------------------------------- | www.dmz.com | | | | | | | 10.6.21.100 | WEIGHT | ACTV | NEWC | PORT | SYS | | PORT: 80 |NOW NEW| 49% | 50% | 1% | 0% | ------------------------------------------------------------------- | mach14.dmz.com | 10 10 | 0 | 0 | 23 | 0 | | mach15.dmz.com | 9 9 | 0 | 0 | 30 | 0 | ------------------------------------------------------------------- --------------------------------------------------- | ADVISOR | CLUSTER:PORT | TIMEOUT | --------------------------------------------------- | http | 80 | unlimited | | ftp | 21 | unlimited | ---------------------------------------------------
dscontrol manager restart Restarting the manager to update code该命令产生类似于下列的输出:
320-14:04:54 重新启动管理器以更新代码
dscontrol manager sensitivity 10
dscontrol manager smoothing 2.0
dscontrol manager start ndmgr.log
dscontrol manager status该命令产生类似于以下示例的输出。
管理器状态: =============== 度量端口...................................... 10004 管理器日志文件名.............................. manager.log 管理器日志级别................................ 1 最大管理器日志大小(字节).................... unlimited 灵敏度级别.................................... 0.05 平滑指数...................................... 1.5 更新间隔(秒)................................ 2 权值刷新周期.................................. 2 到达日志级别.................................. 1 最大到达日志大小(字节)...................... unlimited 到达更新间隔(秒)............................ 7 度量监视器日志文件名.......................... MetricMonitor.log 度量监视器日志级别............................ 1 最大度量监视器日志大小........................ 1048576
dscontrol manager stop
dscontrol manager quiesce 130.40.52.153 now
dscontrol manager quiesce 130.40.52.153
dscontrol manager unquiesce 130.40.52.153
dscontrol manager version
>>-dscontrol--metric--+-add--cluster+c2+...+cN:metric+metric1+...+metricN--------------+->< +-remove--cluster+c2+...+cN:metric+metric1+...+metricN-----------+ +-proportions--cluster+c2+...+cN proportion1 prop2 prop3...propN-+ '-status--cluster+c2+...+cN:metric+metric1+...+metricN-----------'
示例
dscontrol metric add site1:metric1
dscontrol metric proportions site1 0 100
dscontrol metric status site1:metric1该命令产生类似于下列的输出:
度量状态: ------------ 群集 .......................... 10.10.10.20 度量名称 ...................... metric1 度量比例 ...................... 50 服务器 .................... plm3 度量数据 .................. -1
>>-dscontrol--port--+-add--cluster:port--+----------------------+-+->< | +-crossport--otherport-+ | | +-maxservers--size-----+ | | +-stickymask--value----+ | | +-stickytime--time-----+ | | +-method--type---------+ | | +-staletimeout--value--+ | | +-weightbound--weight--+ | | +-porttype--type-------+ | | +-protocol--type-------+ | | '-reset--value---------' | +-set--cluster:port--+-crossport--otherport-+-+ | +-maxservers--size-----+ | | +-stickymask--value----+ | | +-stickytime--time-----+ | | +-staletimeout--value--+ | | +-weightbound--weight--+ | | +-porttype--type-------+ | | +-maxhalfopen--value---+ | | '-reset--value---------' | +-remove--cluster:port------------------------+ +-report--cluster:port------------------------+ +-status--cluster:port------------------------+ '-halfopenaddressreport--cluster:port---------'
要除去交叉端口功能,请将 crossport 值重新设置为其自己的端口号。 有关交叉端口亲缘性功能的更多信息,请参阅交叉端口亲缘性。
对于分派器主机:
对于 CBR 组件:如果您将端口粘性时间设置为非零值,那么规则的亲缘性类型必须为无(缺省值)。 当设置了端口的粘性时间,那么基于规则亲缘性(被动 cookie,URI,活动 cookie)就无法共存。
记录:
正值表明将进行检查以确定当前半开连接数是否超出阈值。如果当前值在阈值之上,将调用警告脚本。请参阅拒绝服务攻击检测以获取更多信息。
示例
dscontrol port add 130.40.52.153:80+23
dscontrol port set 130.40.52.153:0
dscontrol port set 130.40.52.153:80 weightbound 10
dscontrol port set 130.40.52.153:80+23 stickytime 60
dscontrol port set 130.40.52.153:80 crossport 23
dscontrol port remove 130.40.52.153:23
dscontrol port status 9.67.131.153:80该命令产生类似于下列的输出:
端口状态: ------------ 端口号 ......................... 80 群集 ........................... 9.67.131.153 旧文件超时 ..................... 300 权值范围 ....................... 20 最大服务器数目 ................. 32 粘性时间 ....................... 0 端口类型 ....................... tcp/udp 交叉端口亲缘性 ................. 80 粘性掩码位 ..................... 32 最大半开连接 ................... 0 发送 TCP 请求 .................. no
dscontrol port report 9.62.130.157:80该命令产生类似于下列的输出:
端口报告: ------------ 群集地址 ....................... 9.62.130.157 端口号 ......................... 80 服务器数 ....................... 5 最大服务器权值 ................. 10 总计活动连接数 ................. 55 每秒的连接数 ................... 12 每秒的千字节数 ................. 298 半开数 ......................... 0 发送的 TCP 请求 ................ 0 转发方法 ....................... 基于 MAC 转发
dscontrol port halfopenaddressreport 9.67.127.121:80该命令产生类似于下列的输出:
成功创建半开连接报告: ------------ cluster:port = 9.67.127.121:80 的半开地址报告 报告半开连接的总计地址 ................................ 0 报告的半开连接总计数量 ................................ 0 报告的半开连接的最大数 ................................ 0 报告的半开连接的平均数 ................................ 0 报告的平均半开连接时间(秒) .......................... 0 接收的总计半开连接数 .................................. 0
>>-dscontrol--rule--+-add--cluster:port:rule--type--type--| opts |-+->< +-dropserver--cluster:port:rule--server--------+ +-remove--cluster:port:rule--------------------+ +-report--cluster:port:rule--------------------+ +-set--cluster:port:rule--| opts |-------------+ +-status--cluster:port:rule--------------------+ '-useserver--cluster:port:rule--server+s2+...--' opts: |--+---------------------------------+--------------------------| +-beginrange--low--endrange--high-+ +-priority--level-----------------+ +-pattern--pattern----------------+ +-tos--value----------------------+ +-stickytime--time----------------+ +-affinity--affinity_type---------+ +-cookiename--value---------------+ +-evaluate--level-----------------+ '-sharelevel--level---------------'
请参阅活动 cookie 亲缘性,以获取更多信息。
“activecookie”的亲缘性类型允许将具有亲缘性的 Web 流量负载均衡到基于 Load Balancer 生成的 cookie 的同一台服务器上。
“passivecookie”的亲缘性类型允许用亲缘性负载均衡 Web 流量到基于服务器生成的自标识 cookie 的相同的服务器上。您必须结合被动 cookie 亲缘性使用 cookiename 参数。
“URI”亲缘性类型允许将 Web 流量负载均衡到高速缓存代理服务器,在某种意义上,有效地增加了高速缓存的大小。
请参阅活动 cookie 亲缘性、被动 cookie 亲缘性和URI 亲缘性,以获取更多的信息。
请参阅被动 cookie 亲缘性以获取更多信息。
对于连接类型规则,您还可以指定评估选项 - upserversonrule.通过指定 upserversonrule,您可以确保在服务器集中的某些服务器当机时,不过载规则内的剩余服务器。
或,如果您使用服务器分区,使用逻辑服务器的唯一的名称。请参阅服务器分区:配置到一个物理服务器(IP 地址)的逻辑服务器以获取更多信息。
示例
dscontrol rule add 9.37.67.100:80:trule type true priority 100
dscontrol rule add 9.37.131.153:80:ni type ip b 9.0.0.0 e 9.255.255.255
dscontrol rule add cluster1:80:timerule type time beginrange 11 endrange 14 dscontrol rule useserver cluster1:80:timerule server05
dscontrol rule add 9.67.131.153:80:tosrule type service tos 0xx1001x
dscontrol rule add 9.67.131.153:80:rbwrule type reservedbandwidth beginrange 0 endrange 100 evaluate rule
dscontrol cluster set 9.67.131.153 sharedbandwidth 200 dscontrol rule add 9.67.131.153:80:shbwrule type sharedbandwidth sharelevel cluster
>>-dscontrol--server--+-add--cluster:port:server--+-------------------------+-+->< | +-address--address--------+ | | +-collocated--value-------+ | | +-sticky--value-----------+ | | +-weight--value-----------+ | | +-fixedweight--value------+ | | +-cookievalue--value------+ | | +-mapport--portvalue------+ | | +-router--addr------------+ | | +-returnaddress--addr-----+ | | +-advisorrequest--string--+ | | '-advisorresponse--string-' | +-set--cluster:port:server--+-collocated--value-------+-+ | +-sticky--value-----------+ | | +-weight--value-----------+ | | +-fixedweight--value------+ | | +-cookievalue--value------+ | | +-router--addr------------+ | | +-advisorrequest--string--+ | | '-advisorresponse--string-' | +-down--cluster:port:server-----------------------------+ +-remove--cluster:port:server---------------------------+ +-report--cluster:port:server---------------------------+ +-up--cluster:port:server-------------------------------+ '-status--cluster:port:server---------------------------'
或,如果您使用不解析为 IP 地址的唯一名称,您必须在 dscontrol server add 命令上提供此服务器 address 参数。请参阅服务器分区:配置到一个物理服务器(IP 地址)的逻辑服务器以获取更多信息。
示例
dscontrol server add 130.40.52.153:80:27.65.89.42
dscontrol server set 130.40.52.153:80:27.65.89.42 sticky no
dscontrol server down 130.40.52.153:80:27.65.89.42
dscontrol server remove ::27.65.89.42
dscontrol server set 130.40.52.153:80:27.65.89.42 collocated yes
dscontrol server set 130.40.52.153:80:27.65.89.42 weight 10
dscontrol server up 130.40.52.153:80:27.65.89.42
dscontrol server add 130.40.52.153:80:130.60.70.1 router 130.140.150.0
dscontrol server set 130.40.52.153:80:27.65.89.42 advisorrequest "\"HEAD / HTTP/2.0\""
dscontrol server status 9.67.131.167:80:9.67.143.154该命令产生类似于下列的输出:
服务器状态: -------------- 服务器 ......................... 9.67.143.154 端口号 ......................... 80 群集 ........................... 9.67.131.167 群集地址 ....................... 9.67.131.167 停顿 ........................... N 服务器运行 ..................... Y 权值 ........................... 10 固定权值 ....................... N 规则的粘性 ..................... Y 远程服务器 ..................... N 网络路由器地址 ................. 0.0.0.0 并列配置 ........................... N 顾问程序请求 ................... HEAD / HTTP/1.0 顾问程序响应.................... Cookie 值 ...................... n/a 克隆标识 ....................... n/a
>>-dscontrol--set--+-loglevel--level--------+------------------>< '-logsize--+-unlimited-+-' '-size------'
>>-dscontrol--status-------------------------------------------><
示例
dscontrol status该命令产生类似于下列的输出:
执行程序已经启动。管理器已经启动。 ---------------------------------------- | ADVISOR | CLUSTER:PORT | TIMEOUT | ---------------------------------------- | reach | 0 | unlimited | | http | 80 | unlimited | | ftp | 21 | unlimited | ----------------------------------------
>>-dscontrol--subagent--+-loglevel--level--------------------+->< +-logsize--+-bytes-----+-------------+ | '-unlimited-' | +-report-----------------------------+ +-start--+-------------------------+-+ | '-community_name--logfile-' | +-status-----------------------------+ +-stop-------------------------------+ '-version----------------------------'
对于 Windows 平台:使用操作系统的共用名。
示例
dscontrol subagent start bigguy bigguy.log
本附录描述如何使用下列站点选择器 sscontrol 命令:
您可以输入 sscontrol 命令参数的最小化版本。仅需输入参数特有的字母。例如,要获取关于文件保存命令的帮助,您可以输入 sscontrol he f ,而不是 sscontrol help file。
>>-sscontrol--advisor--+-connecttimeout--name--+-port----------+--seconds-------+->< | '-sitename:port-' | +-interval--name--+-port----------+--seconds-------------+ | '-sitename:port-' | +-list---------------------------------------------------+ +-loglevel--name--+-port----------+--level---------------+ | '-sitename:port-' | +-logsize--name--+-port----------+--+-size | unlimited-+-+ | '-sitename:port-' '-bytes------------' | +-receivetimeout--name--+-port----------+--seconds-------+ | '-sitename:port-' | +-report--name--+-port----------+------------------------+ | '-sitename:port-' | +-retries--name--+-port----------+--numretries-----------+ | '-sitename:port-' | +-start--name--+-port----------+--+----------+-----------+ | '-sitename:port-' '-log file-' | +-status--name--+-port----------+------------------------+ | '-sitename:port-' | +-stop--name--+-port----------+--------------------------+ | '-sitename:port-' | +-timeout--name--+-port----------+-----------------------+ | '-sitename:port-' | '-version--name--+-port----------+--seconds--------------' '-sitename:port-'
.
顾问程序名称 | 协议 | 端口 |
---|---|---|
Connect | n/a | 用户定义的 |
db2 | private | 50000 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
PING | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
缺省文件是 advisorname_port.log,例如,http_80.log。要更改存储日志文件的目录,请参阅更改日志文件路径。
对于每个站点名,您仅可以启动一个顾问程序。
示例
sscontrol advisor connecttimeout http 80 30
sscontrol advisor interval ftp 21 6
sscontrol advisor list该命令产生类似于下列的输出:
--------------------------------------- | ADVISOR | SITENAME:PORT | TIMEOUT | --------------------------------------- | http | 80 | unlimited | | ftp | 21 | unlimited | ---------------------------------------
sscontrol advisor loglevel http mysite:80 0
sscontrol advisor logsize ftp mysite:21 5000
sscontrol advisor receivetimeout http 80 60
sscontrol advisor report ftp 21该命令产生类似于下列的输出:
顾问程序报告: --------------- 顾问程序名称 ............. http 端口号 ................... 80 站点名 ................... mySite 服务器地址 ............... 9.67.129.230 负载 ..................... 8
sscontrol advisor start ftp 21 ftpadv.log
sscontrol advisor status http 80该命令产生类似于下列的输出:
顾问程序状态: --------------- 间隔(秒)..................... 7 超时(秒)..................... Unlimited 连接超时(秒)..................21 接收超时(秒)..................21 顾问程序日志文件名 ............ Http_80.log 日志级别 ...................... 1 最大日志大小(字节)........... Unlimited 重试数 ........................ 0
sscontrol advisor stop http 80
sscontrol advisor timeout ftp 21 5
sscontrol advisor version ssl 443
>>-sscontrol--file--+-delete--filename.ext----------+---------->< +-appendload--filename.ext------+ +-report------------------------+ +-save--filename.ext--+-------+-+ | '-force-' | '-newload--filename.ext---------'
文件扩展名(.ext)可以是任何您想用的名称并且是可选的。
示例
sscontrol file delete file3 文件(file3)被删除。
sscontrol file newload file1.sv 文件(file1.sv)装入分派器。
sscontrol file appendload file2.sv 文件(file2.sv)附加到当前配置并装入。
sscontrol file report 文件报告: file1.save file2.sv file3
sscontrol file save file3 配置保存到文件(file3)。
>>-sscontrol--help--+-advisor----+----------------------------->< +-file-------+ +-help-------+ +-host-------+ +-logstatus--+ +-manager----+ +-metric-----+ +-nameserver-+ +-rule-------+ +-server-----+ +-set--------+ +-sitename---+ '-status-----'
示例
sscontrol help该命令产生类似于下列的输出:
HELP 命令参数: --------------------------------- 用法:help <help option> 示例:help name help - 打印完整的帮助文本 advisor - 关于 advisor 命令的帮助 file - 关于 file 命令的帮助 host - 关于 host 命令的帮助 manager - 关于 manager 命令的帮助 metric - 关于 metric 命令的帮助 sitename - 关于 sitename 命令的帮助 nameserver - 关于 nameserver 命令的帮助 rule - 关于 rule 命令的帮助 server - 关于 server 命令的帮助 set - 关于 set 命令的帮助 status - 关于 status 命令的帮助 logstatus - 关于 logstatus 命令的帮助< > 内的参数是变量。
logsize <number of bytes | unlimited> - 设置记录到日志文件中的最大字节数
>>-sscontrol--logstatus----------------------------------------><
>>-sscontrol--manager--+-interval--seconds----------------------+->< +-loglevel--level------------------------+ +-logsize--+-unlimited-+-----------------+ | '-bytes-----' | +-metric set--+-loglevel--level--------+-+ | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-reach set--+-interval--seconds------+--+ | +-loglevel--level--------+ | | '-logsize--+-unlimited-+-' | | '-bytes-----' | +-report--sitename+sn2+...+snN-----------+ +-restart--message-----------------------+ +-sensitivity--weight--------------------+ +-smoothing--smoothing index-------------+ +-start--+----------------------+--------+ | '-logfile--metric_port-' | +-status---------------------------------+ +-stop-----------------------------------+ '-version--------------------------------'
缺省文件安装在 logs 目录中。请参阅附录 C, 样本配置文件。要更改日志文件所在的目录,请参阅更改日志文件路径。
示例
sscontrol manager interval 5
sscontrol manager loglevel 0
sscontrol manager logsize 1000000
sscontrol manager report该命令产生类似于下列的输出:
---------------------------------- | 服务器 | 状态 | ---------------------------------- | 9.67.129.221| ACTIVE| | 9.67.129.213| ACTIVE| | 9.67.134.223| ACTIVE| ---------------------------------- -------------------------- | 管理器报告图注 | -------------------------- | CPU | CPU 负载 | | MEM | 内存负载 | | SYS | 系统度量 | | NOW | 当前权值 | | NEW | 新权值 | | WT | 权值 | -------------------------- ------------------------------------------------------------------------ | mySite | WEIGHT | CPU 49% | MEM 50% | PORT 1% | SYS 0% | ------------------------------------------------------------------------ | |NOW NEW | WT LOAD | WT LOAD | WT LOAD | WT LOAD | ------------------------------------------------------------------------ | 9.37.56.180 | 10 10 |-99 -1|-99 -1|-99 -1| 0 0| ------------------------------------------------------------------------ | TOTALS:| 10 10 | -1| -1| -1| 0| ------------------------------------------------------------------------ ----------------------------------------- | ADVISOR | SITENAME:PORT | TIMEOUT | ----------------------------------------- | http | 80 | unlimited | -----------------------------------------
sscontrol manager restart Restarting the manager to update code该命令产生类似于下列的输出:
320-14:04:54 重新启动管理器以更新代码
sscontrol manager sensitivity 10
sscontrol manager smoothing 2.0
sscontrol manager start ndmgr.log
sscontrol manager status该命令产生类似于以下示例的输出。
管理器状态: ============= 度量端口...................................... 10004 管理器日志文件名.............................. manager.log 管理器日志级别................................ 1 最大管理器日志大小(字节).................... unlimited 灵敏度级别.................................... 5 平滑指数...................................... 1.5 更新间隔(秒)................................ 2 权值刷新周期.................................. 2 到达日志级别.................................. 1 最大到达日志大小(字节)...................... unlimited 到达更新间隔(秒)............................ 7
sscontrol manager stop
sscontrol manager version
>>-sscontrol--metric--+-add--sitename+sn2+...+snN:metric+metric1+...+metricN--------------+->< +-remove--sitename+sn2+...+snN:metric+metric1+...+metricN-----------+ +-proportions--sitename+sn2+...+snN:proportion1 prop2 prop3...propN-+ '-status--sitename+sn2+...+snN metric+metric1+...+metricN-----------'
示例
sscontrol metric add site1:metric1
sscontrol metric proportions site1 0 100
sscontrol metric status site1:metric1该命令产生类似于下列的输出:
度量状态: ------------ 站点名 ....................... site1 度量名称 ...................... metric1 度量比例 ...................... 50 服务器 ......... 9.37.56.100 度量数据 ....... -1
>>-sscontrol--nameserver--+-start--+----------------------+-+-->< | '-bindaddress--address-' | +-stop----------------------------+ '-status--------------------------'
>>-sscontrol--rule--+-add--sitename+sn2+...+snN:rule+r2+...+rN--type--value--| value |--| opts |-+->< +-dropserver--sitename+sn2+...+snN:rule+r2+...+rN--server+s2+...+snN---------+ +-remove--sitename+sn2+...+snN:rule+r2+...+rN--------------------------------+ +-set--sitename+sn2+...+snN:rule+r2+...+rN--| value |--| opts |--------------+ +-status--sitename+sn2+...+snN:rule+r2+...+rN--------------------------------+ '-useserver--sitename+sn2+...+snN:rule+r2+...+rN--server+s2+...+snN----------' opts: |--+---------------------------------+--------------------------| +-beginrange--low--endrange--high-+ +-priority--value-----------------+ '-metricname--value---------------'
示例
sscontrol rule add sitename:rulename type true priority 100
sscontrol rule add sitename:rulename type ip b 9.0.0.0 e 9.255.255.255
sscontrol rule add sitename:rulename type time beginrange 11 endrange 14 sscontrol rule useserver sitename:rulename server05
>>-sscontrol--server--+-add--sitename+sn2+...+snN:server+s2+...+sN--+------------------------+-+->< | +-metricaddress--address-+ | | '-weight--value----------' | +-down--sitename+sn2+...+snN:server+s2+...+sN----------------------------+ +-remove--sitename+sn2+...+snN:server+s2+...+sN--------------------------+ +-set--sitename+sn2+...+snN:server+s2+...+sN--+------------------------+-+ | +-metricaddress--address-+ | | '-weight--value----------' | +-status--sitename+sn2+...+snN:server+s2+...+sN--------------------------+ '-up--sitename+sn2+...+snN:server+s2+...+sN------------------------------'
示例
sscontrol server add site1:27.65.89.42
sscontrol server down site1:27.65.89.42
sscontrol server remove :27.65.89.42
sscontrol server up site1:27.65.89.42
>>-sscontrol--set--+-loglevel--level--------+------------------>< '-logsize--+-unlimited-+-' '-size------'
>>-sscontrol--sitename--+-add--sitename+sn2+...+snN--+----------------------------------------+-+->< | +-cachelife--value-----------------------+ | | +-networkproximity--yes | no-------------+ | | +-proportions--cpu--memory--port--metric-+ | | +-proximitypercentage--value-------------+ | | +-stickytime--time-----------------------+ | | +-ttl--time------------------------------+ | | +-waitforallresponses--yes | no----------+ | | '-weightbound--weight--------------------' | +-remove--sitename+sn2+...+snN------------------------------------------+ +-set--sitename+sn2+...+snN--+----------------------------------------+-+ | +-cachelife--value-----------------------+ | | +-networkproximity--yes | no-------------+ | | +-proportions--cpu--memory--port--metric-+ | | +-proximitypercentage--value-------------+ | | +-stickytime--time-----------------------+ | | +-ttl--time------------------------------+ | | +-waitforallresponses--yes | no----------+ | | '-weightbound--weight--------------------' | '-status--sitename+sn2+...+snN------------------------------------------'
示例
sscontrol sitename add 130.40.52.153
sscontrol sitename set mySite networkproximity yes
sscontrol sitename set mySite cachelife 1900000
sscontrol sitename set mySite proximitypercentage 45
sscontrol sitename set mySite waitforallresponses no
sscontrol sitename set mySite ttl 7
sscontrol sitename set mySite proportions 50 48 1 1
sscontrol sitename remove 130.40.52.153
sscontrol sitename status mySite该命令产生类似于下列的输出:
站点名状态: --------------- 站点名 ............................. mySite 权值范围 ........................... 20 TTL ................................ 5 粘性时间 ........................... 0 服务器数 ........................... 1 CpuLoad 给定比例 ................... 49 MemLoad 给定比例 ................... 50 端口给定比例 ........................ 1 系统度量给定比例 .................... 0 顾问程序运行端口 .................... 80 使用接近 ............................ N
>>-sscontrol--status-------------------------------------------><
示例
sscontrol status该命令产生类似于下列的输出:
名称服务器已启动。 管理器已启动。 ----------------------------------------- | ADVISOR | SITENAME:PORT | TIMEOUT | ---------------------------------------- | http | 80 | unlimited | -----------------------------------------
本附录描述如何使用 Cisco CSS 控制器的以下 ccocontrol 命令:
您可以通过输入参数特有的字母,以使用 ccocontrol 命令参数的缩写版本。例如,要获取有关文件保存命令的帮助,您可以输入 ccocontrol he f 来替代 ccocontrol help file。
要获取 ccocontrol 命令提示符:输入 ccocontrol。
>>-ccocontrol--consultant--+-add--scID--address--swIPAddr--community--commName-+->< +-binarylog--scID+scID2...--+-report-------------+--+ | +-set--+-interval--+-+ | | | '-retention-' | | | +-start--------------+ | | '-stop---------------' | +-remove--scID+scID2...-----------------------------+ +-report--scID+scID2...-----------------------------+ +-set--+-loglevel--level----------------+-----------+ | +-logsize--+-size------+---------+ | | | '-unlimited-' | | | +-sensitivity--weight percentage-+ | | '-sleeptime--sec-----------------' | +-start--scID+scID2...------------------------------+ '-stop--scID+scID2...-------------------------------'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
示例
ccocontrol consultant add sc1 address 9.37.50.17 community comm2
ccocontrol consultant binarylog sc1 start
ccocontrol consultant report sc1
该命令产生类似于下列的输出:
Consultant sc1 connected to switch at 9.37.50.1:cn1 咨询器已启动 休眠时间 = 7 灵敏度 = 5 日志级别 = 5 日志大小 = 1,048,576 所有者内容: ownerContent oc1
ccocontrol consultant set sc1 sleeptime 10
ccocontrol consultant start sc1
>>-ccocontrol--controller--+-report--------------------------+->< '-set--+------------------------+-' +-loglevel--level--------+ '-logsize--+-size------+-' '-unlimited-'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
示例
ccocontrol controller report
该命令产生类似于下列的输出:
控制器报告: ------------------------ 版本 . . . . . . . . . . .版本:05.00.00.00 - 03/21/2002-09:49:57-EST 日志记录级别. . . . . . . 1 日志大小. . . . . . . . . 1048576 配置文件. . . . . . . . . config1.xml 咨询器: Consultant consult1 -Started
ccocontrol set loglevel 0
ccocontrol controller set logsize 1000000
>>-ccocontrol--file--+-delete--filename----------+------------->< +-load--filename------------+ +-report--------------------+ '-save--filename--+-------+-' '-force-'
安装(缺省)目录:C:\Program Files\ibm\edge\lb\servers\configurations\cco
示例
ccocontrol file delete file1
ccocontrol file load config2
ccocontrol file report
该命令产生类似于下列的输出:
文件报告: ------------ file1.xml file2.xml file3.xml
ccocontrol file save config2
>>-ccocontrol--help--+-controller-------+---------------------->< +-consultant-------+ +-file-------------+ +-help-------------+ +-highavailability-+ +-metriccollector--+ +-ownercontent-----+ '-service----------'
示例
ccocontrol help
该命令产生类似于下列的输出:
以下命令可用: controller - 运行控制器 consultant - 运行交换机咨询器 file - 运行配置文件 help - 运行帮助 highavailability - 运行高可用性 metriccollector - 运行度量收集器 ownerContent - 运行所有者内容 service - 运行服务
>>-ccocontrol--highavailability--+-add--+-address--address---------------+-+->< | +-partneraddress--partneraddress-+ | | +-port--port---------------------+ | | '-role--+-primary---+------------' | | '-secondary-' | +-dropreach--address----------------------+ +-remove----------------------------------+ +-report----------------------------------+ +-set--+-beatinterval--time-----+---------+ | +-takeoverinterval--time-+ | | +-loglevel--level--------+ | | '-logsize--+-size------+-' | | '-unlimited-' | +-start--+-auto---+-----------------------+ | '-manual-' | +-stop------------------------------------+ +-takeover--------------------------------+ '-usereach--address-----------------------'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
ccocontrol highavailability add address 9.37.50.17 role primary port 12345 partneraddress 9.37.50.14
ccocontrol highavailability usereach 9.37.50.9
ccocontrol highavailability dropreach 9.37.50.9
ccocontrol highavailability start manual
ccocontrol highavailability report
该命令产生类似于下列的输出:
高可用性状态: ------------------------- 节点 . . . . . . . . . . . primary 节点地址 . . . . . . . . . 9.37.50.17 端口 . . . . . . . . . . . 12345 伙伴地址 . . . . . . . . . 9.37.50.14 恢复策略 . . . . . . . . . manual 工作频率间隔 . . . . . . . 500 接管间隔 . . . . . . . . . 2000 状态 . . . . . . . . . . . idle 子状态 . . . . . . . . . . unsynchronized 可达性状态:Node/Partner --------------------------------------- 未配置到达目标
>>-ccocontrol--metriccollector--+-report--scID+scID2+...:mN+mN2...--------------------------+->< '-set--scID+scID2+...:mN+mN2...--+-timeoutconnect--sec----+-' +-loglevel--level--------+ +-logsize--+-size------+-+ | '-unlimited-' | +-timeoutreceive--sec----+ '-sleeptime--sec---------'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
示例
ccocontrol metriccollector report sc1:http
该命令产生类似于下列的输出:
MetricCollector sc1:http collected metric(s).... http loglevel............... 5 logSize................ 1048576 sleepTimeSeconds....... 7 timeoutConnectSeconds.. 21 timeoutReceiveSeconds.. 21
ccocontrol metriccollector set sc1:http timeoutconnect 15 logsize unlimited
>>-ccocontrol--ownerContent--+-add--scID:ocN--ownername--oN--contentrule--cN------------------------------+->< +-metrics--scID+scID2...:ocN+ocN2...--mN--importance--mN2--i2----------------+ +-refresh--scID+scID2...:ocN+ocN2...-----------------------------------------+ +-remove--scID+scID2...:ocN+ocN2...------------------------------------------+ +-report--scID+scID2...:ocN+ocN2...------------------------------------------+ '-set--scID+scID2...:ocN+ocN2...----metric--mN--+------------------------+---' +-requeststring--string--+ +-responsestring--string-+ '-retry--numretries------'
以下是有效度量名称及其关联端口的列表。
顾问程序名称 | 协议 | 端口 |
---|---|---|
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
cachingproxy | HTTP(通过高速缓存代理) | 80 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
activeconn | n/a | n/a |
connrate | n/a | n/a |
cpuload | n/a | n/a |
memload | n/a | n/a |
示例
ccocontrol ownerContent add sc1:oc1 ownername owner1 contentrule content1
ccocontrol ownerContent metrics sc1:oc1 activeconn 50 http 50
ccocontrol ownerContent report sc1:oc1
该命令产生类似于下列的输出:
ownerContent sc1:oc1 Weightbound = 10 Metric activeconn has proportion 25 ResponseString... n/a RequestString.... n/a Metric http has proportion 50 ResponseString... n/a RequestString.... n/a Metric connrate has proportion 25 ResponseString... n/a RequestString.... n/a Contains Service t3 Contains Service t2 Contains Service t1
ccocontrol ownerContent set sc1:oc1 metric http requeststring getCookie
>>-ccocontrol--service--+-report--scID+scID2...:ocN+ocN2...:svc+svc2...---------------------------------+->< '---set--scID+scID2...:ocN+ocN2...:svc+svc2...--+---------------------------+---' +-fixedweight--+-integer-+--+ | '-off-----' | +-requestsourceip--IPAd-----+ +-metricserveraddress--IPAd-+ '-metricserverport--portN---'
示例
ccocontrol service report sc1:oc1:t1
该命令产生类似于下列的输出:
服务 sc1:oc1:ta 具有权值 10 固定权值是 off 请求源 IP............. 9.27.24.156 应用程序端口.......... 80 度量服务器地址........ 1.0.0.1 度量服务器端口........ 10004 度量 activeconn 具有值 -99 度量 http 具有值 -99 度量 connrate 具有值 -99
ccocontrol service set sc1:oc1:t2 metricserveraddress 9.37.50.17
本附录描述如何使用 Nortel Alteon 控制器的以下 nalcontrol 命令:
您可以通过输入参数特有的字母,以使用 nalcontrol 命令参数的缩写版本。例如,要获取有关文件保存命令的帮助,您可以输入 nalcontrol he f,而不是 nalcontrol help file。
要获取 nalcontrol 命令提示符:输入 nalcontrol。
>>-nalcontrol--consultant--+-add--scID--address--swIPAddr--+---------------------------+-+->< | +-rcommunity--readCommName--+ | | '-wcommunity--writeCommName-' | +-binarylog--scID+scID2...--+-report------------------------+-+ | +-set--+-interval--interval---+-+ | | | '-retention--retention-' | | | +-start-------------------------+ | | '-stop--------------------------' | +-remove--scID+scID2...---------------------------------------+ +-report--scID+scID2...---------------------------------------+ +-set--+--------------------------------+---------------------+ | +-loglevel--level----------------+ | | +-logsize--+-size------+---------+ | | | '-unlimited-' | | | +-sensitivity--weight percentage-+ | | '-sleeptime--sec-----------------' | +-start--scID+scID2...----------------------------------------+ '-stop--scID+scID2...-----------------------------------------'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
示例
nalcontrol consultant add sc1 address 9.37.50.17
nalcontrol consultant binarylog sc1 start
nalcontrol consultant report sc1
该命令产生类似于下列的输出:
Consultant ID: sc1 Switch IP addr: 9.37.50.1 读共用:public 写共用:private 咨询器已启动 休眠时间 = 7 灵敏度 = 5 日志级别 = 5 日志大小 = 1,048,576 服务: 服务 svc1
nalcontrol consultant set sc1 sleeptime 10
nalcontrol consultant start sc1
>>-nalcontrol--controller--+-report--------------------------+->< '-set--+------------------------+-' +-loglevel--level--------+ '-logsize--+-size------+-' '-unlimited-'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
示例
nalcontrol controller report
该命令产生类似于下列的输出:
控制器报告: ------------------------ 版本 . . . . . . . . . . .版本:05.00.00.00 - 03/21/2002-09:49:57-EST 日志记录级别. . . . . . . 1 日志大小. . . . . . . . . 1048576 配置文件. . . . . . . . . config1.xml 咨询器: Consultant consult1 -Started
nalcontrol set loglevel 0
nalcontrol controller set logsize 1000000
>>-nalcontrol--file--+-delete--filename-+---------------------->< +-load--filename---+ +-report-----------+ '-save--filename---'
公共安装目录路径 - C:\Program Files\ibm\edge\lb\servers\configurations\nal
本机安装目录路径 - C:\Program Files\ibm\lb\servers\configurations\nal
示例
nalcontrol file delete file1
nalcontrol file load config2
nalcontrol file report
该命令产生类似于下列的输出:
文件报告: ------------ file1.xml file2.xml file3.xml
nalcontrol file save config2
>>-nalcontrol--help--+-controller-------+---------------------->< +-consultant-------+ +-file-------------+ +-help-------------+ +-highavailability-+ +-metrinalllector--+ +-ownercontent-----+ '-service----------'
示例
nalcontrol help
该命令产生类似于下列的输出:
以下命令可用: controller - 运行控制器 consultant - 运行交换机咨询器 file - 运行配置文件 help - 运行帮助 highavailability - 运行高可用性 metriccollector - 运行度量收集器 server - 运行服务器 service - 运行服务
>>-nalcontrol--highavailability--+-add--+-address--address---------------+-+->< | +-partneraddress--partneraddress-+ | | +-port--port---------------------+ | | '-role--+-primary---+------------' | | '-secondary-' | +-dropreach--address----------------------+ +-remove----------------------------------+ +-report----------------------------------+ +-set--+-beatinterval--time-----+---------+ | +-takeoverinterval--time-+ | | +-loglevel--level--------+ | | '-logsize--+-size------+-' | | '-unlimited-' | +-start--+-auto---+-----------------------+ | '-manual-' | +-stop------------------------------------+ +-takeover--------------------------------+ '-usereach--address-----------------------'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
nalcontrol highavailability add address 9.37.50.17 role primary port 12345 partneraddress 9.37.50.14
nalcontrol highavailability usereach 9.37.50.9
nalcontrol highavailability dropreach 9.37.50.9
nalcontrol highavailability start manual
nalcontrol highavailability report
该命令产生类似于下列的输出:
高可用性状态: ------------------------- 节点 . . . . . . . . . . . primary 节点地址 . . . . . . . . . 9.37.50.17 端口 . . . . . . . . . . . 12345 伙伴地址 . . . . . . . . . 9.37.50.14 恢复策略 . . . . . . . . . manual 工作频率间隔 . . . . . . . 500 接管间隔 . . . . . . . . . 2000 启动 . . . . . . . . . . . N 状态 . . . . . . . . . . . idle 子状态 . . . . . . . . . . unsynchronized 可达性状态:Node/Partner ---------------------------------------
>>-nalcontrol--metricollector--+-report--scID+scID2+...:mN+mN2...--------------------------+->< '-set--scID+scID2+...:mN+mN2...--+-connecttimeout--sec----+-' +-loglevel--level--------+ +-logsize--+-size------+-+ | '-unlimited-' | +-receivetimeout--sec----+ '-sleeptime--sec---------'
0 = 无
1 = 最小
2 = 基本
3 = 中等
4 = 高级
5 = 详细
示例
nalcontrol metrinalllector report sc1:http
该命令产生类似于下列的输出:
Metrinalllector sc1:http collected metric(s).... http loglevel............... 5 logSize................ 1048576 sleepTimeSeconds....... 7 timeoutConnectSeconds.. 21 timeoutReceiveSeconds.. 21
nalcontrol metrinalllector set sc1:http connecttimeout 15 logsize unlimited
>>-nalcontrol--serer--+-report--scID+scID2...:svcID+svcID2...:serverID+svrID2...-----------------------------------+->< '---set--scID+scID2...:svcID+svcID2...:serverID+svrID2--+--------------------------------+---' +-fixedweight--+-integer-+-------+ | '-off-----' | +-requestsourceip--IPAddress-----+ +-metricserveraddress--IPAddress-+ '-metricserverport--portNumber---'
示例
nalcontrol server report sc1:svc1:1
该命令产生类似于下列的输出:
服务器 sc1:svc1:1 具有权值 -99 固定权值是 off 请求源 Ip.............. 9.27.24.156 应用程序端口........... 99 度量服务器地址......... 9.99.99.98 度量服务器端口......... 10004 度量 activeconn 具有值 -99 度量 connrate 具有值 -99
nalcontrol server set sc1:svc1:2 metricserveraddress 9.37.50.17
>>-nalcontrol--service--+-add--scID+scID2...:serviceID+svcID2...--vsid--virSvrID--vport--virPortNum------+->< +-metrics--scID+scID2...:svcID+svcID2...--mN--importance--mCN2--i2---------------+ +-refresh--scID+scID2...:svcID+svcID2...-----------------------------------------+ +-remove--scID+scID2...:svcID+svcID2...------------------------------------------+ +-report--scID+scID2...:svcID+svcID2...------------------------------------------+ '-set--scID+scID2...:svcID+svcID2...----metric--mN----+-requeststring--string--+-' +-responsestring--string-+ '-retry--numretries------'
以下是有效度量名称及其关联端口的列表。
顾问程序名称 | 协议 | 端口 |
---|---|---|
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
https | SSL | 443 |
cachingproxy | HTTP(通过高速缓存代理) | 80 |
imap | IMAP | 143 |
ldap | LDAP | 389 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
activeconn | n/a | n/a |
connrate | n/a | n/a |
cpuload | n/a | n/a |
memload | n/a | n/a |
示例
nalcontrol service add sc1:svc1 vsid 1 vport 80
nalcontrol service metrics sc1:svc1 activeconn 50 http 50
nalcontrol service report sc1:svc1
此命令产生类似于 :x 的输出:
服务 sc1:svc1 权值范围 = 48 度量 activeconn 具有比例 50 度量 connrate 具有比例 50 包含服务器 4 包含服务器 3 包含服务器 2 包含服务器 1
nalcontrol service set sc1:svc1 metric http requeststring getLastErrorCode
在 Load Balancer 图形用户界面(GUI)中,面板的左端显示一个树结构,其中 Load Balancer 在顶层,而分派器、基于内容路由(CBR)、站点选择器、Cisco CSS 控制器和 Nortel Alteon 控制器作为组件。
有关突出显示每个不同组件的 Load Balancer GUI 的图形示例,请参阅以下内容:
图 42. 显示分派器组件的 GUI 树结构扩展的图形用户界面(GUI)
图 43. 显示 CBR 组件的 GUI 树结构扩展的图形用户界面(GUI)
图 44. 显示站点选择器组件的 GUI 树结构扩展的图形用户界面(GUI)
图 45. 显示 Cisco CSS 控制器组件的 GUI 树结构扩展的图形用户界面(GUI)
图 46. 显示 Nortel Alteon 控制器组件的 GUI 树结构扩展的图形用户界面(GUI)
所有组件都可从 GUI 来配置。您可以通过单击鼠标按键 1(通常是左键)在树结构中选择一个元素,然后通过单击鼠标按键 2(通常是右键)显示弹出菜单。还可从位于面板顶部的菜单栏访问树元素的弹出菜单。
为了从 GUI 执行命令:从 GUI 树突出显示“主机”节点,并从“主机”弹出菜单中选择发送命令....。.在命令输入字段中,输入您要执行的命令,例如:executor report。在当前会话中运行的命令的结果和历史出现在提供的窗口中。
面板右侧显示了当前所选元素的状态指示符选项卡。
要访问帮助,单击 Load Balancer 窗口右上角的问号(?)。
本附录描述了如何使用 CBR 组件的内容规则(模式)语法和分派器组件的 cbr 转发方法,以及它们的使用方案和示例。
仅当您为规则类型选择了“内容”时才适用。
使用以下限制输入您要使用的模式语法
保留的关键字总是后跟等号 『=』。
浏览器目标 http://www.company.com/path/webpage.htm 可能有这样的值:
Method=GET URI=/path/webpage.htm Version=HTTP/1.1 Host=www.company.com Connection=Keep-Alive Referer=http://www.company.com/path/parentwebpage.htm
例如,仅当使用 cbrcontrol>> 提示符时以下命令有效。
rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern client=181.0.153.222&uri=/nipoek/*
使用特殊字符时,对于在操作系统提示符下工作的这个相同命令,模式必须加上双引号(" "),按如下所示:
cbrcontrol rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern "client=181.0.153.222&uri=/nipoek/*"
如果不使用双引号,当规则保存到 CBR 时某些模式可能被截断。注意当使用 cbrcontrol>> 命令提示符时不支持双引号。
下列是可能方案的集合和使用模式语法的示例
方案 1:
设置一个群集名称涉及一组用于标准 HTML 内容的 Web 服务器,另一组 WebSphere Application Server 的用于 servlet 请求的 Web 服务器,以及一组用于 NSF 文件的 Lotus(R) Notes 服务器。访问客户机数据是必需的,这样可以分辨那些请求的页面。还需要发送它 们到适当的服务器。内容模式匹配规则提供了需要的分离以完成这些任务。配置一系列规则,这样必需的请求分离会自动发生。例如,下列命令完成三个提到的分割:
>>rule add cluster1:80:servlets type content pattern uri=*/servlet/*priority 1 >>rule uses cluster1:80:servlets server1+server2
>>rule add cluster1:80:notes type content pattern uri=*.nsf* priority 2 >>rule uses cluster1:80:notes server3+server4
>>rule add cluster1:80:regular type true priority 3 >>rule uses cluster1:80:regular server5+server6
如果 NSF 文件的请求到达 Load Balancer,首先检查 servlet 规则,但是不匹配。然后,notes 规则会检查请求,请求返回匹配。客户机在 server3 和 server4 之间负载均衡。
方案 2
另一个常见的方案是当主 Web 站点控制几个不同的内部组时。例如,www.company.com/software 包含了不同于 www.company.com/hardware 部分的服务器组和内容。因为请求是全部不基于根 www.company.com 群集的,所以需要内容规则来查找 URI 差异并完成负载均衡。方案的规则和类似于下列命令:
>>rule add cluster1:80:div1 type content pattern uri=/software/* priority 1 >>rule uses cluster1:80:div1 server1+server2
>>rule add cluster1:80:div2 type content pattern uri=/hardware/* priority 2 >>rule uses cluster1:80:div2 server3+server4
方案 3
某些组合对搜索规则的顺序是敏感的。例如,方案 2 中,客户机基于它们请求路径的目录分割;然而目标目录可能出现在路径的多个级别上且在不同的位置上意思不同。例如,www.company.com/pcs/fixes/software 和 www.company.com/mainframe/fixes/software 是不同的目标。考虑到这种可能性必须定义规则,且不同时捕捉很多方案。例如,在这种情况下,“uri=*/software/*”测试是很广的通配搜索。在下列方式中,可能结构备用规则:
组合搜索可减少当机:
>>rule add cluster1:80:pcs type content pattern (uri=/pcs/*)&(uri=*/software/*) >>rule uses cluster 1:80:pcs server1
如果没有使用组合,顺序就变得重要了:
>>rule add cluster1:80:pc1 type content pattern uri=/pcs/* >>rule uses cluster1:80:pc1 server2
当“pcs”出现在以后的目录而不是第一个中,第二个规则捕捉。
>>rule add cluster1:80:pc2 type content pattern uri=/*/pcs/* >>rule uses cluster1:80:pc2 server3
大多数情况下,您要用缺省总是为真规则完成规则以捕捉通过其他规则的任何规则。这也可能是一个“对不起,站点当前当机,请稍后再试一次”的服务器,它是所有其它服务器对客户机故障的方案中的服务器。
>>rule add cluster1:80:sorry type true priority 100 >>rule uses cluster1:80:sorry server5
此附录包含Load Balancer的分派器组件的样本配置文件。
样本文件位于 ...ibm/edge/lb/servers/samples/ 目录。
#!/bin/bash
#
# configuration.sample - Sample configuration file for the
Dispatcher component
#
#
# Ensure the root user is the one executing this script.
#
# iam=`whoami`
# if [ "$iam" != "root" ]if [ "$iam" != "root" ]
# then
# echo "You must login as root to run this script"
# exit 2
# fi
#
# First start the server
#
# dsserver start
# sleep 5
#
# Then start the executor
#
# dscontrol executor start
#
# The Dispatcher can be removed at any time using the
# "dscontrol executor stop" and "dsserver stop" commands to
# stop the executor and server respectively prior to removing
# the Dispatcher software.
#
# The next step in configuring the Dispatcher is to set the
# NFA (non-forwarding address) and the cluster address(es).
#
# The NFA is used to remotely access the Dispatcher machine
# for administration or configuration purposes. This
# address is required since the Dispatcher will forward packets
# to the cluster address(es).
#
# The CLUSTER address is the hostname (or IP address) to
# which remote clients will connect.
#
# Anywhere in this file, you may use hostnames and IP
# addresses interchangeably.
#
# NFA=hostname.domain.name
# CLUSTER=www.yourcompany.com
# echo "Loading the non-forwarding address"
# dscontrol executor set nfa $NFA
#
# The next step in configuring the Dispatcher is to create
# a cluster. The Dispatcher will route requests sent to
# the cluster address to the corresponding server machines
# defined to that cluster. You may configure and server
# multiple cluster address using Dispatcher.
# Use a similar configuration for CLUSTER2, CLUSTER3, etc.
#
# echo "Loading first CLUSTER address "
# dscontrol cluster add $CLUSTER
#
# Now we must define the ports this cluster will use. Any
# requests received by the Dispatcher on a defined port will
# be forwared to the corresponding port of one of the server
# machines.
#
# echo "Creating ports for CLUSTER: $CLUSTER"
# dscontrol port add $CLUSTER:20+21+80
#
# The last step is to add each of the server machines to the
# ports in this cluster.
# Again, you can use either the hostname or the IP address
# of the server machines.
#
# SERVER1=server1name.domain.name
# SERVER2=server2name.domain.name
# SERVER3=server3name.domain.name
# echo "Adding server machines"
# dscontrol server add $CLUSTER:20+21+80:
# $SERVER1+$SERVER2+$SERVER3
#
# We will now start the load balancing components of the
# Dispatcher. The main load balancing component is called
# the manager and the second load balancing components are the
# advisors. If the manager and advisors are not running the
# Dispatcher sends requests in a round-robin format. Once the
# manager is started, weighting decisions based on the number
# of new and active connections is employed and incoming
# requests are sent to the best server. The advisors give the
# manager further insight into a servers ability to service
# requests as well as detecting whether a server is up. If
# an advisor detects that a server is down it will be
# marked down (providing the manager proportions have been
# set to include advisor input) and no further requests will be
# routed to the server.
# The last step in setting up the load balancing components
# is to set the manager proportions. The manager updates the
# weight of each of the servers based on four policies:
# 1. The number of active connections on each server.
# 2. The number of new connections to each server.
# 3. Input from the advisors.
# 4. Input from the system level advisor.
# These proportions must add up to 100. As an example, setting
# the manager proportions to
# dscontrol manager proportions 48 48 0 0
# will give active and new connections 48% input into the
# weighting decision, the advisors will contribute 4% and
# the system input will not be considered.
#
# NOTE: By default the manager proportions are set to 50 50 0 0
#
# echo "Starting the manager..."
# dscontrol manager start
# echo "Starting the FTP advisor on port 21 ..."
# dscontrol advisor start ftp 21
# echo "Starting the HTTP advisor on port 80 ..."
# dscontrol advisor start http 80
# echo "Starting the Telnet advisor on port 23 ..."
# dscontrol advisor start telnet 23
# echo "Starting the SMTP advisor on port 25 ..."
# dscontrol advisor start smtp 25
# echo "Starting the POP3 advisor on port 110 ..."
# dscontrol advisor start pop3 110
# echo "Starting the NNTP advisor on port 119 ..."
# dscontrol advisor start nntp 119
# echo "Starting the SSL advisor on port 443 ..."
# dscontrol advisor start ssl 443
#
# echo "Setting the manager proportions..."
# dscontrol manager proportions 58 40 2 0
#
# The final step in setting up the Dispatcher machine is to
# alias the Network Interface Card (NIC).
#
# NOTE: Do NOT use this command in a high availability
# environment. The go* scripts will configure the NIC and
# loopback as necessary.
# dscontrol executor configure $CLUSTER
# If your cluster address is on a different NIC or subnet
from the NFA use the following format for the cluster configure
command.
# dscontrol executor configure $CLUSTER tr0 0xfffff800
# where tr0 is your NIC (tr1 for the second token ring card, en0
# for the first ethernet card) and 0xfffff800 is a valid
# subnet mask for your site.
#
#
# The following commands are set to the default values.
# Use these commands as a guide to change from the defaults.
# dscontrol manager loglevel 1
# dscontrol manager logsize 1048576
# dscontrol manager sensitivity 5.000000
# dscontrol manager interval 2
# dscontrol manager refresh 2
#
# dscontrol advisor interval ftp 21 5
# dscontrol advisor loglevel ftp 21 1
# dscontrol advisor logsize ftp 21 1048576
# dscontrol advisor timeout ftp 21 unlimited
# dscontrol advisor interval telnet 23 5
# dscontrol advisor loglevel telnet 23 1
# dscontrol advisor logsize telnet 23 1048576
# dscontrol advisor timeout telnet 23 unlimited
# dscontrol advisor interval smtp 25 5
# dscontrol advisor loglevel smtp 25 1
# dscontrol advisor logsize smtp 25 1048576
# dscontrol advisor timeout smtp 25 unlimited
# dscontrol advisor interval http 80 5
# dscontrol advisor loglevel http 80 1
# dscontrol advisor logsize http 80 1048576
# dscontrol advisor timeout http 80 unlimited
# dscontrol advisor interval pop3 110 5
# dscontrol advisor loglevel pop3 110 1
# dscontrol advisor logsize pop3 110 1048576
# dscontrol advisor timeout pop3 110 unlimited
# dscontrol advisor interval nntp 119 5
# dscontrol advisor loglevel nntp 119 1
# dscontrol advisor logsize nntp 119 1048576
# dscontrol advisor timeout nntp 119 unlimited
# dscontrol advisor interval ssl 443 5
# dscontrol advisor loglevel ssl 443 1
# dscontrol advisor logsize ssl 443 1048576
# dscontrol advisor timeout ssl 443 unlimited
#
以下是使用 Window 时的样本 Load Balancer 配置文件,称为 configuration.cmd.sample。
@echo off rem configuration.cmd.sample - Sample configuration file for the rem Dispatcher component. rem rem dsserver must be started via Services rem rem rem Then start the executor rem rem call dscontrol executor start rem rem The next step in configuring the Dispatcher is to set the rem NFA (non-forwarding address) and to set the cluster rem address(es). rem rem The NFA is used to remotely access the Dispatcher rem machine for administration configuration purposes. This rem address is required since the Dispatcher will forward rem packets to the cluster address(es). rem rem The CLUSTER address is the hostname (or IP address) to which rem remote clients will connect. rem rem Anywhere in this file, you may use hostnames and IP rem addresses interchangeably. rem NFA=[non-forwarding address] rem CLUSTER=[your clustername] rem rem set NFA=hostname.domain.name rem set CLUSTER=www.yourcompany.com rem echo "Loading the non-forwarding address" rem call dscontrol executor set nfa %NFA% rem rem The following commands are set to the default values. rem Use these commands to change the defaults rem call dscontrol executor set fintimeout 30 rem call dscontrol executor set fincount 4000 rem rem The next step in configuring the Dispatcher is to create rem a cluster. The Dispatcher will route requests sent to rem the cluster address to the corresponding server machines rem defined to that cluster. You may configure and server rem multiple cluster addresses using Dispatcher. rem Use a similar configuration for CLUSTER2, CLUSTER3, etc. rem rem echo "Loading first CLUSTER address " rem call dscontrol cluster add %CLUSTER% rem rem Now we must define the ports this cluster will use. Any rem requests received by the Dispatcher on a defined port rem will be forwarded to the corresponding rem port of one of the server machines. rem rem echo "Creating ports for CLUSTER: %CLUSTER%" rem call dscontrol port add %CLUSTER%:20+21+80 rem rem The last step is to add each of the server machines to rem the ports in this cluster. Again, you can use either the rem hostname or the IP address of the server machines. rem rem set SERVER1=server1name.domain.name rem set SERVER2=server2name.domain.name rem set SERVER3=server3name.domain.name rem echo "Adding server machines" rem call dscontrol server add %CLUSTER%:20+21+80: rem %SERVER1%+%SERVER2%+%SERVER3% rem rem We will now start the load balancing components of the rem Dispatcher. The main load balancing component is called rem the manager and the second load balancing components are the rem advisors. If the manager and advisors are not rem running the Dispatcher sends requests in a round-robin rem format. Once the manager is started, weighting decisions rem based on the number of new and active connections is rem employed and incoming requests are sent to the best rem server. The advisors give the manager further insight rem into a servers ability to service requests as well as rem detecting whether a server is up. If an advisor detects rem that a server is down it will be marked down (providing the rem manager proportions have been set to include advisor rem input) and no further requests will be routed to the server. rem The last step in setting up the load balancing rem components is to set the manager proportions. The rem manager updates the weight of each of the servers based rem on four policies: rem 1. The number of active connections on each server rem 2. The number of new connections for each server rem 3. Input from the advisors. rem 4. Input from the system level advisor. rem rem These proportions must add up to 100. As an example, rem setting the cluster proportions via rem dscontrol cluster set <cluster> proportions 48 48 4 0 rem will give active and new connections 48% input into the rem weighting decision, the advisor will contribute 4% and rem the system input will not be considered. rem rem NOTE: By default the manager proportions are set to rem 50 50 0 0 rem echo "Starting the manager..." rem call dscontrol manager start rem echo "Starting the FTP advisor on port 21 ..." rem call dscontrol advisor start ftp 21 rem echo "Starting the HTTP advisor on port 80 ..." rem call dscontrol advisor start http 80 rem echo "Starting the Telnet advisor on port 23 ..." rem call dscontrol advisor start telnet 23 rem echo "Starting the SMTP advisor on port 25 ..." rem call dscontrol advisor start smtp 25 rem echo "Starting the POP3 advisor on port 110 ..." rem call dscontrol advisor start pop3 110 rem echo "Starting the NNTP advisor on port 119 ..." rem call dscontrol advisor start nntp 119 rem echo "Starting the SSL advisor on port 443 ..." rem call dscontrol advisor start ssl 443 rem rem echo "Setting the cluster proportions..." rem call dscontrol cluster set %CLUSTER% proportions 58 40 2 0 rem rem The final step in setting up the Dispatcher machine is rem to alias the Network Interface Card (NIC). rem rem NOTE: Do NOT use this command in a high availability rem environment. The go* scripts will configure the NIC and rem loopback as necessary. rem rem dscontrol executor configure %CLUSTER% rem If your cluster address is on a different NIC or subnet rem from the NFA use the following format for the cluster rem configure command. rem dscontrol executor configure %CLUSTER% tr0 0xfffff800 rem where tr0 is your NIC (tr1 for the second token ring card, rem en0 for the first ethernet card) and 0xfffff800 is rem a valid subnet mask for your site. rem rem rem The following commands are set to the default values. rem Use these commands to guide to change from the defaults. rem call dscontrol manager loglevel 1 rem call dscontrol manager logsize 1048576 rem call dscontrol manager sensitivity 5.000000 rem call dscontrol manager interval 2 rem call dscontrol manager refresh 2 rem rem call dscontrol advisor interval ftp 21 5 rem call dscontrol advisor loglevel ftp 21 1 rem call dscontrol advisor logsize ftp 21 1048576 rem call dscontrol advisor timeout ftp 21 unlimited rem call dscontrol advisor interval telnet 23 5 rem call dscontrol advisor loglevel telnet 23 1 rem call dscontrol advisor logsize telnet 23 1048576 rem call dscontrol advisor timeout telnet 23 unlimited rem call dscontrol advisor interval smtp 25 5 rem call dscontrol advisor loglevel smtp 25 1 rem call dscontrol advisor logsize smtp 25 1048576 rem call dscontrol advisor timeout smtp 25 unlimited rem call dscontrol advisor interval http 80 5 rem call dscontrol advisor loglevel http 80 1 rem call dscontrol advisor logsize http 80 1048576 rem call dscontrol advisor timeout http 80 unlimited rem call dscontrol advisor interval pop3 110 5 rem call dscontrol advisor loglevel pop3 110 1 rem call dscontrol advisor logsize pop3 110 1048576 rem call dscontrol advisor timeout pop3 110 unlimited rem call dscontrol advisor interval nntp 119 5 rem call dscontrol advisor loglevel nntp 119 1 rem call dscontrol advisor logsize nntp 119 1048576 rem call dscontrol advisor timeout nntp 119 unlimited rem call dscontrol advisor interval ssl 443 5 rem call dscontrol advisor loglevel ssl 443 1 rem call dscontrol advisor logsize ssl 443 1048576 rem call dscontrol advisor timeout ssl 443 unlimited rem
下面是一个样本顾问程序文件,名为 ADV_sample。
/**
* ADV_sample: The Load Balancer HTTP advisor
*
*
* This class defines a sample custom advisor for Load Balancer. Like all
* advisors, this custom advisor extends the function of the advisor base,
* called ADV_Base. It is the advisor base that actually performs most of
* the advisor's functions, such as reporting loads back to the Load Balancer
* for use in the Load Balancer's weight algorithm. The advisor base also
* performs socket connect and close operations and provides send and receive
* methods for use by the advisor. The advisor itself is used only for
* sending and receiving data to and from the port on the server being
* advised. The TCP methods within the advisor base are timed to calculate
* the load. A flag within the constructor in the ADV_base overwrites the
* existing load with the new load returned from the advisor if desired.
*
* Note: Based on a value set in the constructor, the advisor base supplies
* the load to the weight algorithm at specified intervals. If the actual
* advisor has not completed so that it can return a valid load, the advisor
* base uses the previous load.
*
* NAMING
*
* The naming convention is as follows:
*
* - The file must be located in the following Load Balancer directory:
*
* lb/servers/lib/CustomAdvisors/ (lb\servers\lib\CustomAdvisors on Windows)
*
* - The Advisor name must be preceded with "ADV_". The advisor can be
* started with only the name, however; for instance, the "ADV_sample"
* advisor can be started with "sample".
*
* - The advisor name must be in lowercase.
*
* With these rules in mind, therefore, this sample is referred to as:
*
* <base directory>/lib/CustomAdvisors/ADV_sample.class
*
*
* Advisors, as with the rest of Load Balancer, must be compiled with the
* prereq version of Java. To ensure access to Load Balancer classes, make
* sure that the ibmnd.jar file (located in the lib subdirectory of the base
* directory) is included in the system's CLASSPATH.
*
* Methods provided by ADV_Base:
*
* - ADV_Base (Constructor):
*
* - Parms
* - String sName = Name of the advisor
* - String sVersion = Version of the advisor
* - int iDefaultPort = Default port number to advise on
* - int iInterval = Interval on which to advise on the servers
* - String sDefaultName = Unused. Must be passed in as "".
* - boolean replace = True - replace the load value being calculated
* by the advisor base
* False - add to the load value being calculated
* by the advisor base
* - Return
* - Constructors do not have return values.
*
* Because the advisor base is thread based, it has several other methods
* available for use by an advisor. These methods can be referenced using
* the CALLER parameter passed in getLoad().
*
* These methods are as follows:
*
* - send - Send a packet of information on the established socket connection
* to the server on the specified port.
* - Parms
* - String sDataString - The data to be sent in the form of a string
* - Return
* - int RC - Whether the data was sucessfully sent or not: zero indicates
* data was sent; a negative integer indicates an error.
*
* - receive - Receive information from the socket connection.
* - Parms
* - StringBuffer sbDataBuffer - The data received during the receive call
* - Return
* - int RC - Whether the data was successfully received or not; zero
* indicates data was sent; a negative integer indicates
* an error.
*
* If the function provided by the advisor base is not sufficient,
* you can create the appropriate function within the advisor and
* the methods provided by the advisor base will then be ignored.
*
* An important question regarding the load returned is whether to apply
* it to the load being generated within the advisor base,
* or to replace it; there are valid instances of both situations.
*
* This sample is essentially the Load Balancer HTTP advisor. It functions
* very simply: a send request--an http head request--is issued. Once a
* response is received, the getLoad method terminates, flagging the advisor
* base to stop timing the request. The method is then complete. The
* information returned is not parsed; the load is based on the time
* required to perform the send and receive operations.
*/
package CustomAdvisors;
import com.ibm.internet.nd.advisors.*;
public class ADV_sample extends ADV_Base implements ADV_MethodInterface
{
String COPYRIGHT =
"(C) Copyright IBM Corporation 1997, All Rights Reserved.\n";
static final String ADV_NAME = "Sample";
static final int ADV_DEF_ADV_ON_PORT = 80;
static final int ADV_DEF_INTERVAL = 7;
// Note: Most server protocols require a carriage return ("\r") and line
// feed ("\n") at the end of messages. If so, include them in
// your string here.
static final String ADV_SEND_REQUEST =
"HEAD / HTTP/1.0\r\nAccept: */*\r\nUser-Agent: " +
"IBM_Load_Balancer_HTTP_Advisor\r\n\r\n";
/**
* Constructor.
*
* Parms: None; but the constructor for ADV_Base has several parameters
* that must be passed to it.
*
*/
public ADV_sample()
{
super( ADV_NAME,
"2.0.0.0-03.27.98",
ADV_DEF_ADV_ON_PORT,
ADV_DEF_INTERVAL,
"", // not used
false);
super.setAdvisor( this );
}
/**
* ADV_AdvisorInitialize
*
* Any Advisor-specific initialization that must take place after the
* advisor base is started. This method is called only once and is
* typically not used.
*/
public void ADV_AdvisorInitialize()
{
return;
}
/**
* getLoad()
*
* This method is called by the advisor base to complete the advisor's
* operation, based on details specific to the protocol. In this sample
* advisor, only a single send and receive are necessary; if more complex
* logic is necessary, multiple sends and receives can be issued. For
* example, a response might be received and parsed. Based on the
* information learned thereby, another send and receive could be issued.
*
* Parameters:
*
* - iConnectTime - The current load as it refers to the length of time it
* took to complete the connection to the server through
] * the specified port.
*
* - caller - A reference to the advisor base class where the Load
* Balancer-supplied methods are to perform simple TCP requests,
* mainly send and receive.
*
* Results:
*
* - The load - A value, expressed in milliseconds, that can either be added
* to the existing load, or that can replace the existing load, as
* determined by the constructor's "replace" flag.
*
* The larger the load, the longer it took the server to respond;
* therefore, the lower the weight will become within the Load Balancer.
*
* If the value is negative, an error is assumed. An error from an
* advisor indicates that the server the advisor is trying to reach is not
* accessible and has been identified as being down. Load Balancer will
* not attempt to load balance to a server that is down. Load Balancer will
* resume load balancing to the server when a positive value is received.
*
*/
public int getLoad(int iConnectTime, ADV_Thread caller)
{
int iRc;
int iLoad = ADV_HOST_INACCESSIBLE; // -1
// Send tcp request
iRc = caller.send(ADV_SEND_REQUEST);
if (iRc >= 0)
{
// Perform a receive
StringBuffer sbReceiveData = new StringBuffer("");
iRc = caller.receive(sbReceiveData);
/**
* In the normal advisor mode ("replace" flag is false), the load
* returned is either 0 or 1 indicating the server is up or down.
* If the receive is successful, a load of zero is returned
* indicating that the load built within the base advisor is to be used.
*
* Otherwise ("replace" flag is true), return the desired load value.
*/
if (iRc >= 0)
{
iLoad = 0;
}
}
return iLoad;
}
} // End - ADV_sample
本附录描述了如何设置联合两个 Load Balancer 组件(分派器组件和 CBR 组件)能力的 2 层高可用性配置,以与高速缓存代理一起使用。
图 47. 使用分派器、CBR 和高速缓存代理时的 2 层高可用性配置示例
图 47 的服务器设置如下所示:
图 47 显示对多个后端 Web 服务器进行负载均衡的多个服务器(EdgeServer1,EdgeServer2,EdgeServer3)的基本表示法。CBR 组件使用高速缓存代理,以根据 URL 内容将请求转发到后端 Web 服务器。分派器组件用于对 EdgeServer 间的 CBR 组件进行负载均衡。分派器组件的高可用性功能用于确保当主高可用性机器(EdgeServer1)发生故障时,请求能继续转发到后端服务器。
基本配置准则:
Caching ON CacheMemory 128000 K ReversePass /* http://websrvA.company.com/* http://www.company.com/*
样本配置文件:
以下样本配置文件类似于设置 Edge Component 配置时所创建的文件,如图 47 中所示。样本配置文件代表 Load Balancer 的分派器和 CBR 组件的文件。在样本配置中,每台 EdgeServer 机器都使用了单独的以太网适配器,且所有地址都用专用子网表示。 样本配置文件使用了指定机器的下列 IP 地址:
主高可用性 EdgeServer 上的分派器组件的样本配置文件:
dscontrol executor start dscontrol cluster add 192.168.1.11 primaryhost 192.168.1.10 dscontrol port add 192.168.1.11:80 dscontrol server add 192.168.1.11:80:edgeserver1 address 192.168.1.10 dscontrol server add 192.168.1.11:80:edgeserver2 address 192.168.1.20 dscontrol server add 192.168.1.11:80:edgeserver3 address 192.168.1.30 dscontrol manager start manager.log 10004 dscontrol highavailability heartbeat add 192.168.1.10 192.168.1.20 dscontrol highavailability backup add primary auto 4567
EdgeServer 上的 CBR 组件的样本配置文件:
cbrcontrol set loglevel 1 cbrcontrol executor start cbrcontrol cluster add 192.168.1.11 cbrcontrol port add 192.168.1.11:80 cbrcontrol server add 192.168.1.11:80:webserverA address 192.168.1.71 cbrcontrol server add 192.168.1.11:80:webserverB address 192.168.1.72 cbrcontrol server add 192.168.1.11:80:webserverC address 192.168.1.73 cbrcontrol rule add 192.168.1.11:80:webA_rule type content pattern (URI=*WSA*)|(URI=*wsA*) priority 21 cbrcontrol rule useserver 192.168.1.11:80:webA_rule webserverA cbrcontrol rule add 192.168.1.11:80:webB_rule type content pattern (URI=/WS_B*) priority 22 cbrcontrol rule useserver 192.168.1.11:80:webB_rule webserverB cbrcontrol rule add 192.168.1.11:80:webC_rule type content pattern URI=*webC* priority 23 cbrcontrol rule useserver 192.168.1.21:80:webC_rule webserverC
本信息是为在美国提供的产品和服务编写的。
IBM 可能在其它国家或地区不提供本文档中讨论的产品、服务或功能特性。有关您当前所在区域的产品和服务的信息,请向您当地的 IBM 代表咨询。任何对 IBM 产品、程序或服务的引用并非意在明示或暗示只能使用 IBM 的产品、程序或服务。 只要不侵犯 IBM 的知识产权,任何同等功能的产品、程序或服务,都可以代替 IBM 产品、程序或服务。但是,评估和验证任何非 IBM 产品、程序或服务,则由用户自行负责。
IBM 公司可能已拥有或正在申请与本文档内容有关的各项专利。提供本文档并未授予用户使用这些专利的任何许可证。您可以用书面方式将许可证查询寄往:
IBM Director of Licensing
IBM Corporation
500 Columbus Avenue
Thornwood, NY 10594
U.S.A.
有关双字节(DBCS)信息的许可证查询,请与您所在国家或地区的 IBM 知识产权部门联系,或用书面方式将查询寄往:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
本条款不适用英国或任何这样的条款与当地法律不一致的国家或地区:
国际商业机器公司以“按现状”的基础提供本出版物,不附有任何形式的(无论是明示的,还是默示的)保证,包括(但不限于)对非侵权性、适销性和适用于某特定用途的默示保证。某些国家或地区在某些交易中不允许免除明示或默示的保证。因此本条款可能不适用于您。
本信息中可能包含技术方面不够准确的地方或印刷错误。此处的信息将定期更改;这些更改将编入本资料的新版本中。IBM 可以随时对本资料中描述的产品和/或程序进行改进和/或更改,而不另行通知。
本信息中对非 IBM Web 站点的任何引用都只是为了方便起见才提供的,不以任何方式充当对那些 Web 站点的保证。那些 Web 站点中的资料不是 IBM 产品资料的一部分,使用那些 Web 站点带来的风险将由您自行承担。
IBM 可以按它认为适当的任何方式使用或分发您所提供的任何信息而无须对您承担任何责任。
本程序的被许可方如果要了解有关程序的信息以达到如下目的:(i)允许在独立创建的程序和其它程序(包括本程序)之间进行信息交换,以及(ii)允许对已经交换的信息进行相互使用,请与下列地址联系:
IBM Corporation
Attn.: G7IA./503.
P.O. Box 12195
3039 Cornwallis Rd.
Research Triangle Park, N.C. 27709-2195
U.S.A.
只要遵守适当的条件和条款,包括某些情形下的一定数量的付费,都可获得这方面的信息。
本资料中描述的许可程序及其所有可用的许可资料均由 IBM 依据 IBM 国际程序许可证协议或任何同等协议中的条款提供。
此处包含的任何性能数据都是在受控环境中测得的。因此,在其它操作环境中获得的数据可能会有明显的不同。有些测量可能是在开发级的系统上进行的,因此不保证与在一般可用系统上进行的测量结果相同。此外,有些测量是通过推算而估计的,实际结果可能会有差异。本文档的用户应当验证其特定环境的适用数据。
涉及非 IBM 产品的信息可从这些产品的供应商、其出版说明或其它可公开获得的资料中获取。IBM 没有对这些产品进行测试,也无法确认其性能的精确性、兼容性或任何其它关于非 IBM 产品的声明。有关非 IBM 产品性能的问题应当向这些产品的供应商提出。
所有关于 IBM 未来方向或意向的声明都可随时更改或收回,而不另行通知,它们仅仅表示了目标和意愿而已。
本信息包含了在日常业务运作中所使用到的数据和报告的示例。为了尽可能能够完整地对其说明,示例可能包含了个人、公司、商标和产品的名称。所有的这些名称都是虚构的,如有和这些名称及地址相似的真实公司企业,纯属巧合。
如果您查看该信息的软拷贝,则图片和彩色图例可能无法显示。
下列术语是 IBM 公司在美国和/或其它国家或地区的注册商标或商标。
AFS
AIX
DFS
Everyplace(R)
IBM
iSeries(TM)
NetView
OS/2
Redbooks(TM)
RS/6000
SecureWay
ViaVoice
WebSphere
zSeries(R)
Lotus 和 WordPro 是国际商业机器公司和 Lotus Development Corporation 在美国和/或其它国家或地区的商标。
Tivoli 是 Tivoli Systems, Inc. 在美国和/或国家或地区的注册商标。
Java 和所有基于 Java 的商标和徽标是 Sun Microsystems, Inc. 在美国和/或其它国家或地区的商标或注册商标。
Solaris 是 Sun Microsystems, Inc. 在美国和/或其它国家或地区的商标。
Microsoft、Windows 2000 和 Windows Server 2003 是 Microsoft Corporation 在美国和/或其它国家或地区的商标或注册商标。
UNIX 是 The Open Group 在美国和其它国家或地区的注册商标。
其它公司、产品和服务名称可能是其它公司的商标或服务标记。