如何跨两个 Oracle Solaris 区域设置负载平衡应用

 

如何利用 Oracle Solaris 区域和 Oracle Solaris 11 中的集成负载平衡器 (ILB) 提高应用可用性。


2012 年 6 月发布

本文介绍了如何将内置的集成负载平衡器 (ILB) 与 Oracle Solaris 区域和 Oracle Solaris 11 中的新网络虚拟化功能相结合,在单个系统上设置虚拟服务器。本文首先简要介绍 ILB,之后给出了一个设置虚拟 Apache Tomcat 服务器实例的示例。您需要具备 Oracle Solaris 区域和网络管理方面的基本知识。

OTN 旨在帮助您充分了解 Oracle 技术,以作出明智决策。本网站提供文章、软件下载、文档等。立即加入,获取完成工作所需的技术资源。

集成负载平衡器概述

ILB 为安装在 SPARC 系统和 x86 系统上的 Oracle Solaris 操作系统提供了第 3 层和第 4 层负载平衡功能,也就是说,它在网络层 (IP) 和传输层 (TCP/UDP) 中工作 。ILB 截获客户端传来的请求,根据负载平衡规则判断应由哪个后端服务器处理请求,然后将该请求转发到选定的服务器。ILB 执行可选的运行状况检查,并为负载平衡算法提供数据,以验证选定服务器能否处理传入的请求。

主要特性

  • 支持 IPv4 和 IPv6 的无状态直接服务器返回 (DSR) 和网络地址转换 (NAT) 工作模式。
  • 支持通过命令行界面 (CLI) 执行 ILB 管理
  • 通过运行状况检查提供服务器监视功能。

:使用全 NAT 模式的原因之一就是无需在 ILB 机器以外设置特殊路由。例如,如果部门 A 管理 ILB 机器,而后端服务器和网络由另外一个部门负责,那么部门 A 可以使用全 NAT 模式进行负载平衡。全部请求均首先进入 ILB 机器;ILB 将请求的目标 IP 地址更改为后端服务器拥有的 IP 地址;将请求的源 IP 地址替换为 ILB 拥有的地址,并将请求转发到后端服务器。后端服务器对请求进行处理,就像处理内部系统发出的请求那样。因此无需对后端服务器进行特殊设置,也不需要设置特殊路由。

主要组件

  • ilbadm CLI:您可以使用该界面配置负载平衡规则,执行可选运行状况检查以及查看统计信息。
  • libilb 配置库:ilbadm 和其他第三方应用可以利用 libilb 中实现的功能管理 ILB。
  • ilbd 后台程序:此后台程序执行以下任务:
    • 管理持久性配置
    • 处理配置信息并将其传送到 ILB 内核模块执行,以提供 ILB 内核模块的串行访问
    • 执行运行状况检查,并为 ILB 内核模块提供结果,以便合理调整负载分布

有关 ILB 的其他信息,请查看 Oracle Solaris 管理:IP 服务 指南。

虚拟 Apache Tomcat 服务器示例

该示例使用半 NAT 模式,即请求到达 ILB 时,ILB 将重写真实服务器的目标 IP 地址;保留源 IP 地址。这种模式通常适用于服务器日志记录(如需了解更多信息,请参阅 Oracle Solaris 管理:IP 服务 指南中的“ILB 运行模式”)。

该示例将跨两个运行 Apache Tomcat 服务器的区域,对传入虚拟服务器(IP 地址为 10.0.2.20)的流量进行负载平衡。负载平衡器本身将被配置为多主区域 (ilb-zone),如图 1 所示。ilb-zone (10.0.2.16/24) 的一个接口连接到外部网络。另一个接口 (192.168.1.21/24) 连接到同一系统中托管的虚拟网络。在 ILB 中,地址 10.0.2.20 被称为负载平衡规则的虚拟 IP 地址 (VIP)。

虚拟 Apache Tomcat 服务器示例图

图 1.虚拟 Apache Tomcat 服务器示例图

第 1 步:创建虚拟网络接口 (VNIC)

第一步是为不同的区域创建一系列虚拟网络接口 (VNIC) 和虚拟交换机 (etherstub):

root@solaris:~# dladm create-vnic -l e1000g0 ilb0
root@solaris:~# dladm create-etherstub priv_net0
root@solaris:~# dladm create-vnic -l priv_net0 ilb1
root@solaris:~# dladm create-vnic -l priv_net0 server1
root@solaris:~# dladm create-vnic -l priv_net0 server2

etherstub priv_net0 用作系统内的虚拟网络,连接 ILB 区域和运行 Apache Tomcat 服务器的两个区域。这意味着 Apache Tomcat 服务器仅可通过 ilb-zone 访问。

第 2 步:创建区域

如果您的区域还没有文件系统,请执行以下命令:

root@solaris:~# zfs create -o mountpoint=/zones rpool/zones

然后创建 ILB 区域,如清单 1 所示:

root@solaris:~# zonecfg -z ilb-zone
ilb-zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:ilb-zone> create
zonecfg:ilb-zone> set zonepath=/zones/ilb-zone
zonecfg:ilb-zone> add net
zonecfg:ilb-zone:net> set physical=ilb0
zonecfg:ilb-zone:net> end
zonecfg:ilb-zone> add net
zonecfg:ilb-zone:net> set physical=ilb1
zonecfg:ilb-zone:net> end
zonecfg:ilb-zone> verify
zonecfg:ilb-zone> exit

清单 1.创建 ILB 区域

创建服务器区域 server1-zoneserver2-zone,如清单 2 所示:

root@solaris:~# zonecfg -z server1-zone
server1-zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:server1-zone> create
zonecfg:server1-zone> set zonepath=/zones/server1-zone
zonecfg:server1-zone> add net
zonecfg:server1-zone:net> set physical=server1
zonecfg:server1-zone:net> end
zonecfg:server1-zone> verify
zonecfg:server1-zone> exit
root@solaris:~# zonecfg -z server2-zone
server2-zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:server1-zone> create
zonecfg:server1-zone> set zonepath=/zones/server2-zone
zonecfg:server1-zone> add net
zonecfg:server1-zone:net> set physical=server2
zonecfg:server1-zone:net> end
zonecfg:server1-zone> verify
zonecfg:server1-zone> exit

清单 2.创建服务器区域

第 3 步:安装 ILB 区域 (ilb-zone)

区域的配置至此完成,接下来就需要安装区域了。我们将使用默认的区域系统配置,在初次引导时会交互地问我们一些问题。完成区域的安装之后(本例为 ilb-zone),可在几秒钟内快速克隆区域。

root@solaris:~# zoneadm -z ilb-zone install
A ZFS file system has been created for this zone.
Progress being logged to /var/log/zones/zoneadm.20111107T101755Z.ilb-zone.install
       Image: Preparing at /zones/ilb-zone/root.

 Install Log: /system/volatile/install.9968/install_log
 AI Manifest: /tmp/manifest.xml.QBaGZe
  SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
    Zonename: ilb-zone
Installation: Starting ...

      Creating IPS image
      Installing packages from:
           solaris
              origin: http://pkg.oracle.com/solaris/release
...
...

	      Done: Installation completed in 605.138 seconds.

   Next Steps: Boot the zone, then log into the zone console (zlogin -C) to
               complete the configuration process

Log saved in non-global zone as /zones/ilb-zone/root/var/log/zones/zoneadm.20111107T101755Z.ilb-zone.install

清单 3.安装区域

引导 ilb-zone 并查看已创建区域的状态:

root@solaris:~# zoneadm -z ilb-zone boot
root@solaris:~# zoneadm list -cv
ID NAME         STATUS     PATH                          BRAND      IP
0  global       running    /                             solaris    shared
1  ilb-zone     running    /zones/ilb-zone               solaris    excl
-  server1-zone configured /zones/server1-zone           solaris    excl
-  server2-zone configured /zones/server2-zone           solaris    excl
root@solaris:~# zlogin -C ilb-zone
[Connected to zone 'ilb-zone' console]

登录到该区域之后,首先显示的是系统配置工具。这个交互式工具将引导您完成各种系统配置任务。在本示例中,我们对 ilb-zone 区域使用以下配置:

  • 主机名是 ilb-zone
  • 网络接口 ilb0 的 IP 地址是 10.0.2.16/24,默认路由是 10.0.2.2
  • 网络接口 ilb1 的 IP 地址是 192.168.1.21/24
  • 名称服务配置为使用在全局区域中配置的相同名称服务器的 DNS。

系统配置工具支持仅为一个网络接口提供配置;本例中我们要配置的是 ilb0。应用初始配置后,需要登录此区域来提供 ilb1 的其他配置,如下所示:

root@ilb-zone:~# ipadm create-ip ilb1
root@ilb-zone:~# ipadm create-addr -T static -a local=192.168.1.21/24 ilb1/v4

第 4 步:安装第一个服务器区域 (server1-zone)

我们将通过克隆 ilb-zone 创建第一个服务器区域 server1-zone。克隆区域后,配置 server1-zone,然后通过克隆 server1-zone 创建 server2-zone。需要先关闭 ilb-zone 才能克隆。然后登录新克隆的 server1-zone 完成该区域的最终配置:

root@solaris:~# zoneadm -z ilb-zone shutdown
root@solaris:~# zoneadm -z server1-zone clone ilb-zone
A ZFS file system has been created for this zone.
Progress is being logged to /var/log/zones/zoneadm.20120428T004843Z.server1-zone
Log saved in non-global zone as /zones/server1-zone/var/log/zones/zoneadm.2020428T004843Z.server1-zone
root@solaris:~# zoneadm -z server1-zone boot
root@solaris:~# zlogin -C server1-zone
[Connected to zone 'server1-zone' console]

与前面一样,系统配置工具启动,然后执行 server1-zone 的最终配置:

  • 主机名是 server1-zone
  • 网络接口 server1 的 IP 地址是 192.168.1.50/24,默认路由是 192.168.1.21
  • 名称服务设置为 none

ILB 用作外部网络(通过 ilb0)与专用网络(通过 ilb1)之间流量的转发代理。IP 转发服务是必要的。本例使用 IPv4 地址,因此仅需在 ilb-zone 非全局区域中启用 IPv4 转发(需要引导该区域并登录),如清单 4 所示:

root@ilb-zone:~# routeadm -u -e ipv4-forwarding
root@ilb-zone:~# routeadm
       Configuration     Current            Current
       Option            Configuration      System State
---------------------------------------------------------
       IPv4 routing      disabled           disabled
       IPv6 routing      disabled           disabled
       IPv4 forwarding   enabled            enabled
       IPv6 forwarding   disabled           disabled

     Routing services "route:default ripng:default"

Routing daemons:

       STATE     FMRI
       disabled  svc:/network/routing/legacy-routing:ipv4
       disabled  svc:/network/routing/legacy-routing:ipv6
       disabled  svc:/network/routing/ripng:default
       online    svc:/network/routing/ndp:default
       disabled  svc:/network/routing/route:default
       disabled  svc:/network/routing/rdisc:default

清单 4.启用 IPv4 转发

第 5 步:从 ILB 区域检查互联网访问

测试能否在 ILB 区域 ilb-zone 内 ping 通外界:

root@ilb-zone:~# ping www.oracle.com
www.oracle.com is alive

第 6 步:将 Tomcat 安装到第一个服务器区域 (server1-zone)

我们将对 Apache Tomcat 服务执行负载平衡,所以需要使用程序包管理器 pkg 将其安装到 server1-zone,如清单 5 所示。server1-zone 不需要具备网络连接,这是因为程序包管理器将通过全局区域代理所有连接。如果已将该软件安装到其他区域,则将在本地缓存该软件;否则也可在网络上通过全局区域从配置好的程序包信息库下载该软件。

root@server1-zone:~# pkg install runtime/java tomcat tomcat-examples
   Packages to install:  17
   Create boot environment:  No
   Create backup boot environment:  No
   Services to change:         5

DOWNLOAD         PKGS      FILES       XFER (MB)
Completed        17/17     3381/3381   56.3/56.3 

PHASE            ACTIONS
Install Phase    4269/4269 

PHASE                          ITEMS
Package State Update Phase     17/17
Image State Update Phase       2/2
Loading smf(5) service descriptions: 1/1

清单 5.安装 Apache Tomcat 服务

Apache Tomcat 成功安装后,需要使用以下命令启用 svc:/network/http SMF 服务的 tomcat6 实例。

root@server1-zone:~# svcadm enable http:tomcat6

作为我们当前状态的汇总,我们可以列出全局区域内的区域。

root@solaris:~# zoneadm list -cv
ID NAME         STATUS     PATH                          BRAND      IP
0  global       running    /                             solaris    shared
1  ilb-zone     running    /zones/ilb-zone               solaris    excl
2  server1-zone running    /zones/server1-zone           solaris    excl
-  server2-zone configured /zones/server2-zone           solaris    excl

第 7 步:配置第一个服务器区域 (server1-zone) 的路由进行测试

我们需要能从全局区域到达 server1-zone,以验证其运行是否正常,因此需要添加新路由。使用 route -p 命令执行路由更改(在网络重新启动后保持有效),如下所示:

root@solaris:~# route -p add 192.168.1.0 10.0.2.16
add net 192.168.1.0: gateway 10.0.2.16
add persistent net 192.168.1.0: gateway 10.0.2.16

更改生效之后,即可通过 ilb-zone 从全局区域到达在 server1-zone 内运行的 Apache Tomcat 服务,如图 2 所示。

图 2. Apache Tomcat 欢迎屏幕

图 2.Apache Tomcat 欢迎屏幕

第 8 步:克隆 Apache Tomcat 实例

现在,我们有了一个在 server1-zone 中正常运行的 Apache Tomcat 服务器实例,接下来即可在 server2-zone 中快速创建其他实例。首先,我们要关闭 server1-zone 才能进行克隆,然后引导这两个区域,登录新创建的 server2-zone,如清单 6 所示:

root@solaris:~# zoneadm -z server1-zone shutdown
root@solaris:~# zoneadm -z server2-zone clone server1-zone
root@solaris:~# zoneadm -z server1-zone boot
root@solaris:~# zoneadm -z server2-zone boot
root@solaris:~# zoneadm list -cv
ID NAME         STATUS     PATH                          BRAND      IP
0  global       running    /                             solaris    shared
1  ilb-zone     running    /zones/ilb-zone               solaris    excl
2  server1-zone running    /zones/server1-zone           solaris    excl
3  server2-zone running    /zones/server2-zone           solaris    excl
root@solaris:~# zlogin -C server2-zone
[Connected to zone 'server2-zone' console]

清单 6.克隆其他 Apache Tomcat 实例

再次使用系统配置工具来完成 server2-zone 的配置,具体如下:

  • 主机名是 server2-zone
  • 网络接口 server2 的 IP 地址是 192.168.1.60/24,默认路由是 192.168.1.21ilb-zone 中的接口 ilb1)。
  • 名称服务设置为 none

我们在短短几分钟内就得到了一个新区域,而且 Apache Tomcat 也已启动并正常运行(可在 server2-zone 中使用 svcs 确认):

root@server2-zone:~# svcs http:tomcat6
STATE    STIME    FMRI
online   9:05:44  svc:/network/http:tomcat6

也可从全局区域访问 Apache Tomcat 实例,如图 3 所示。

图 3. 从全局区域访问 Apache Tomcat

图 3.从全局区域访问 Apache Tomcat

可以看到,Oracle Solaris 11 可以迅速有效地完成应用实例的部署,因此是云类型环境的理想选择。

第 9 步:为 Apache Tomcat 服务器配置负载平衡

现在,我们有了两个 Apache Tomcat 实例,它们分别在自己的区域中运行,下面我们设置负载平衡来扩展其间的流量。在 ILB 区域 ilb-zone 中,使用程序包管理器 (pkg) 安装 ILB 程序包,如清单 7 所示。

root@ilb-zone:~# pkg install ilb
           Packages to install: 1
       Create boot environment: No
Create backup boot environment: No
            Services to change: 1

DOWNLOAD            PKGS     FILES      XFER (MB)
Completed           1/1      23/23      02/0.2

PHASE                  ACTIONS
Install Phase          55/55

PHASE                             ITEMS
Package State Update Phase        1/1
Image State Update Phase          2/2
Load smf(5) service descriptions: 1/1

清单 7.安装 ILB 程序包

现在为 server1-zoneserver2-zone 中的两个 Apache Tomcat 实例启用 ILB 服务,并定义服务器组 tomcatgroup

root@ilb-zone:~# svcadm enable ilb
root@ilb-zone:~# ilbadm create-servergroup -s 
servers=192.168.1.50:8080,192.168.1.60:8080 tomcatgroup
root@ilb-zone:~# ilbadm show-servergroup
SGNAME        SERVERID        MINPORT   MAXPORT  IP_ADDRESS
tomcatgroup   _tomcatgroup.0  8080      8080     192.168.1.50
tomcatgroup   _tomcatgroup.1  8080      8080     192.168.1.60

下一步是定义负载平衡。这也往往是整个过程中最复杂的一步。首先,定义一个名为 tomcatrule_rr 的简单规则。此规则启用后,它将使用“循环”负载平衡算法和以 tomcatgroup 服务器组为目标的半 NAT 网络拓扑结构,为虚拟目标 IP 地址和端口号 10.0.2.20:80 持久保留和匹配传入的数据包。

root@ilb-zone:~# ilbadm create-rule -e -p -i vip=10.0.2.20,port=80 -m 
lbalg=rr,type=HALF-NAT,pmask=32 -o servergroup=tomcatgroup tomcatrule_rr
root@ilb-zone:~# ilbadm show-rule 
RULENAME         STATUS  LBALG       TYPE      PROTOCOL  VIP         PORT
tomcatrule_rr    E       roundrobin  HALF-NAT  TCP       10.0.2.20   80

可以使用 -f 选项显示新建规则的更多详细信息,如清单 8 所示。

root@ilb-zone:~# ilbadm show-rule -f
       RULENAME: tomcatrule_rr
         STATUS: E
           PORT: 80
       PROTOCOL: tcp
          LBALG: roundrobin
           TYPE: HALF-NAT
      PROXY-SRC: --
          PMASK: /32
        HC-NAME: --
        HC-PORT: --
     CONN-DRAIN: 0
    NAT-TIMEOUT: 120
PERSIST-TIMEOUT: 0
    SERVERGROUP: tomcatgroup
            VIP: 10.0.2.20
        SERVERS: _tomcatgroup.0,_tomcatgroup.1

清单 8.新规则的详细信息

最后,我们需要通知外界应将哪些以 VIP 地址 10.0.2.20 为目标的数据包发送到我们的网络接口 ilb0。首先,要在 ilb-zone 中找到 ilb0 的 MAC 地址,如下所示:

root@ilb-zone:~# dladm show-vnic ilb0
LINK    OVER   SPEED   MACADDRESS       MACADDRTYPE  VID
ilb0    ?      1000    2:8:20:4e:fa:fd  random       0

找到 MAC 地址后(本例中为 2:8:20:4e:fa:fd),必须使用 arp 应用已发布的永久性“互联网到 MAC”地址转换。

root@ilb-zone:~# arp -s 10.0.2.20 2:8:20:4e:fa:fd pub permanent 

第 10 步:验证负载平衡

我们可以检查一下两个 Apache Tomcat 实例是否已经实现了负载平衡,方法是:通过浏览器访问虚拟 IP 地址 10.0.2.20,看能否进入 Apache Tomcat 欢迎页面,如图 4 所示。

图 4. Apache Tomcat 欢迎页面

图 4.Apache Tomcat 欢迎页面

非常好!但我们怎样才能知道它源自哪个实例呢?只要在 server1-zoneserver2-zone 上迅速更改 Apache Tomcat 文档根目录 /var/tomcat6/webapps/examples/jsp/snp/snoop.jsp 下的一个示例脚本,即可轻松查看结果。添加以下命令行,打印接受请求的 Apache Tomcat 实例的服务器主机名:

<h3>Backend server</h3>
<%@page import="java.net.InetAddress;" %>
<%String ip = "";
InetAddress ina = InetAddress.getLocalHost();
out.println("Server Host Name :: "+ina.getHostName());%>

更改后,可在虚拟 IP 地址 http://10.0.2.20/examples/jsp/snp/snoop.jsp 调用该脚本来查看结果,如图 5 所示。

图 5. 查看服务器主机名

图 5.查看服务器主机名

第 11 步:执行运行状况检查

简单的 ILB 规则不包含任何服务器运行状况检查,而我们绝对不希望负载平衡器向停机的服务器发送请求,因此这种规则的用途极其有限。我们可以利用的运行状况检查选择有很多:ping 探测器、TCP 探测器、UDP 探测器和用户定义的脚本。由于我们关注的是 Apache Tomcat 实例的运行状况,因此下面来编写一个简单的运行状况检查脚本,如清单 9 所示:

root@ilb-zone:~# mkdir /opt/ilb
root@ilb-zone:~# cat > /opt/ilb/hc-tomcat #!/usr/bin/bash result=`curl -s http://$2:8080` if [ "$result" != "" ] && [ ${result:0:5} = "<meta" ]; then     echo 0 else     echo -1 fi
root@ilb-zone:~# chmod +x /opt/ilb/hc-tomcat

清单 9.运行状况检查脚本

此脚本直接 ping 服务器,检查是否返回了 <meta> 标头。另外还要注意,清单 9 中有一个脚本变量 $2。ILB 提供了很多可在脚本中使用的变量:

  • $1 — VIP 地址(IPv4 或 IPv6 字面地址)
  • $2 — 服务器 IP 地址(IPv4 或 IPv6 字面地址)
  • $3 — 协议(UDP 或 TCP)
  • $4 — 负载平衡模式(DSR、NAT、半 NAT)
  • $5 — 数字端口
  • $6 — 在失败返回之前脚本应等待的最长时间(以秒为单位)

我们可以执行快速查看一下脚本是否运行正常。在 server1-zone 上运行脚本,确保成功返回 0 即可,如下所示:

root@ilb-zone:~# /opt/ilb/hc-tomcat 10.0.2.20 192.168.1.50 
0

脚本成功运行后,就可以使用 ilbadm 将脚本与运行状况检查规则相关联,如下所示:

root@ilb-zone:~# ilbadm create-healthcheck -h
hc-test=/opt/ilb/hc-tomcat,hc-timeout=2,hc-count=1,hc-interval=10 hc-tomcat
root@ilb-zone:~# ilbadm show-healthcheck
HCNAME      TIMEOUT  COUNT  INTERVAL  DEF_PING  TEST
hc-tomcat   2        1      10        Y         /opt/ilb/hc-tomcat

在本例中,脚本每隔 10 秒运行一次,等待响应的最长时间为 2 秒。创建此运行状况检查后,需要修改现有 ILB 规则。ILB 目前不支持修改现有规则,因此必须迅速删除现有规则并创建新规则,如清单 10 所示:

root@ilb-zone:~# ilbadm delete-rule tomcatrule_rr
root@ilb-zone:~# ilbadm create-rule -e -p -i vip=10.0.2.20,port=80 -m 
lbalg=rr,type=HALF-NAT,pmask=32 -h hc-name=hc-tomcat -o servergroup=tomcatgroup tomcatrule_rr 
root@ilb-zone:~# ilbadm show-rule -f
       RULENAME: tomcatrule_rr
         STATUS: E
           PORT: 80
       PROTOCOL: tcp
          LBALG: roundrobin
           TYPE: HALF-NAT
      PROXY-SRC: --
          PMASK: /32
        HC-NAME: hc-tomcat
        HC-PORT: ANY
     CONN-DRAIN: 0
    NAT-TIMEOUT: 120
PERSIST-TIMEOUT: 0
    SERVERGROUP: tomcatgroup
            VIP: 10.0.2.20
        SERVERS: _tomcatgroup.0,_tomcatgroup.1

清单 10.创建新 ILB 规则

新规则创建后,运行状况检查将立即生效。我们可以使用 ilbadm show-hc-result,迅速得知运行状况检查的状态,如下所示:

root@ilb-zone:~# ilbadm show-hc-result
RULENAME       HCNAME     SERVERID        STATUS   FAIL   LAST      NEXT      RTT
tomcatrule_rr  hc-tomcat  _tomcatgroup.0  alive    0      11:01:18  11:01:23  739
tomcatrule_rr  hc-tomcat  _tomcatgroup.1  alive    0      11:01:20  11:01:34  1111

可以看到,一切工作正常,两个服务器都能正确响应。但如果其中的某个服务器停机,又会出现怎样的状况?下面我们快速禁用 server1-zone 中的 Apache Tomcat 实例,查看会发生什么情况。

root@server1-zone:~# svcadm disable http:tomcat6

通过 ilb-zone 再次检查状态。

root@ilb-zone:~# ilbadm show-hc-result
RULENAME       HCNAME     SERVERID        STATUS   FAIL   LAST      NEXT      RTT
tomcatrule_rr  hc-tomcat  _tomcatgroup.0  dead     63     11:22:43  11:22:50  941
tomcatrule_rr  hc-tomcat  _tomcatgroup.1  alive    0      11:22:30  11:22:45  952

所有请求都会被定向到 server2-zone 中的 Apache Tomcat 实例。

总结

集成负载平衡器 (ILB) 是 Oracle Solaris 11 的内置特性,为第 3 层和第 4 层提供负载平衡功能。ILB 能截获来自客户端的请求,并根据一组负载平衡规则判断应由哪个后端服务器处理请求,随后将请求转发到选定的服务器,因此能够显著提高应用的弹性。

另请参见

请参见集成负载平衡器产品文档

以下是有关 Oracle Solaris 11 的其他一些资源:

修订版 1.0,2012 年 6 月 4 日

要了解所有 Oracle 技术中与系统管理员相关的内容,请在 FacebookTwitter 上关注 OTN Systems。