本章介绍了在 Sun Cluster 服务器上安装和配置 Sun Cluster HA for Apache 的步骤。
本章包含以下过程。
您可以将 Sun Cluster HA for Apache 配置为故障转移数据服务或可伸缩数据服务。 有关故障转移和可伸缩数据服务的概述,请参见《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“规划 Sun Cluster 数据服务”和《Sun Cluster 概念指南(适用于 Solaris OS)》文档。
您可以使用 SunPlex Manager 安装和配置此数据服务。 有关详细信息,请参见 SunPlex Manager 联机帮助。
安装 Sun Cluster HA for Apache 之前,请更新 Apache 配置文件 httpd.conf 中的以下信息。
httpd.conf 文件的位置随安装的不同而异。 系统管理员通常在群集文件系统中安装 httpd.conf 文件。 缺省安装将 httpd.conf 文件放在 /usr/local/apache/conf 目录中。 当安装与 Solaris 一起绑定的 Apache 软件包时,该文件将位于 /etc/apache 目录中。
包含主机名的 ServerName 指令 – 为使 Sun Cluster HA for Apache 获得高可用性,您必须将此指令设置为用于访问服务器的网络地址的名称(逻辑主机名或共享地址)。 在安装群集时,您应该已经设置了逻辑主机名或共享地址。 有关网络资源的详细信息,请参见《Sun Cluster 概念指南(适用于 Solaris OS)》文档。
BindAddress 指令,必须设置为逻辑主机或共享地址 – 您可以将 Apache 配置为绑定到 INADDR_ANY。 但是,每个资源必须绑定到网络资源和端口号的唯一组合。 例如,如果运行多个资源,则在每个资源的端口号不同时可以使用 INADDR_ANY。
ServerType 指令 – 必须将此指令设置为缺省值 standalone。
多个 Apache 实例 – 如果有多个 Apache 实例,必须使用单独的资源管理每个实例。 此外,每个单独的资源必须具有唯一的 Bin_dir 设置。 在指定的用于启动特定 Apache 实例的 Bin_dir 特性下,必须存在一个 apachect1 脚本。
不同的 Apache 资源可以共享同一 httpd 二进制文件,即不同资源的 apachect1 脚本可以指定同一 httpd 二进制文件的路径。 但是,您必须修改每个 apachect1 脚本以针对特定的 Apache 资源使用不同的配置文件。 要执行此操作,请使用 httpd 命令的 -f 选项来指定特定的 httpd.conf 文件。
用于指定文档根目录位置的 DocumentRoot 指令 – 此指令是指向群集文件系统中某个位置的指针,在此位置安装了 HTML 文档。
用于包含 cgi-bin 目录在群集文件系统中位置的 ScriptAlias 指令 – 此指令是指向安装了 cgi-bin 文件的群集文件系统中某个位置的指针。
为 Web 服务器配置 URL 映射时,必须遵循特定的惯例。 例如,在设置 CGI 目录时,在群集文件系统中确定 CGI 目录的位置可以保留可用性。 例如,您可以将 CGI 目录映射到 /global/diskgroup/ServerRoot/cgi-bin,其中 diskgroup 是包含 Apache 软件的磁盘设备组。 在 CGI 程序可以访问“后端”服务器(例如 RDBMS)的情况下,请确保 Sun Cluster 软件可以控制“后端”服务器。 如果服务器是 Sun Cluster 软件支持的 RDBMS,请使用高可用性 RDBMS 软件包之一。 或者,您可以使用《Sun Cluster 数据服务开发者指南(适用于 Solaris OS)》中介绍的 API 将服务器置于 Sun Cluster 的控制下。
锁定文件 – 如果使用锁定文件,请将 httpd.conf 文件中 LockFile 指令的值设置为本地文件。
PidFile 指令 – 将此指令指向本地文件,如下例所示。
PidFile /usr/local/apache/log/httpd.pid |
一个或多个服务器端口可访问的 Port 指令设置 – 在每个节点的 httpd.conf 文件中设置缺省值。 Port_list 资源特性必须包含 httpd.conf 文件指定的所有端口。
Port_list 特性假设 Web 服务器为在 Network_resources_used 特性中定义的网络资源的端口和 IP 地址的所有组合提供服务。
Port_list=”80/tcp,443/tcp,8080/tcp” |
例如,前面的 Port_list 配置将探测以下 IP 端口组合。
主机 |
端口 | 协议 |
node1 |
80 |
tcp |
node1 |
443 |
tcp |
node1 |
8080 |
tcp |
node2 |
80 |
tcp |
node2 |
443 |
tcp |
node2 |
8080 |
tcp |
但是,如果 node1 仅为端口 80 和 443 提供服务,并且 node2 仅为端口 80 和 8080 提供服务,则可以按以下方式为 Apache 配置 Port_list 特性。
Port_list=node1/80/tcp,node1/443/tcp,node2/80/tcp,node2/8080/tcp |
请注意以下规则。
必须为 node1 和 node2 指定主机名或 IP 地址(不是网络资源名称)。
如果 Apache 可以为 Network_resources_used 特性中的每个 nodeN 的 nodeN/port 提供服务,则可以使用一个简捷形式替换 node1/port1、node2/port2 等组合。 请参见以下示例。
示例一
Port_list=”80/tcp,node1/443/tcp,node2/8080/tcp” Network_resources_used=node1,node2 |
主机 |
端口 | 协议 |
node1 |
80 |
tcp |
node1 |
443 |
tcp |
node2 |
80 |
tcp |
node2 |
8080 |
tcp |
示例二
Port_list=”node1/80/tcp,node2/80/tcp” Network_resources_used=net-1,net-2 #net-1 contains node1. #net-2 contains node2 and node3. |
主机 |
端口 | 协议 |
node1 |
80 |
tcp |
node2 |
80 |
tcp |
Port_list 特性指定的所有主机名(IP 地址)不能属于在任何其他可伸缩资源的 Network_resources_used 特性中指定的网络资源。 否则,一旦可伸缩服务检测到另一个可伸缩资源已使用某个 IP 地址,创建 Apache 资源就会失败。
如果运行 Sun Cluster HA for Apache 和另一个 HTTP 服务器,请将 HTTP 服务器配置为在不同端口上进行侦听。 否则,在两个服务器之间会发生端口冲突。
要注册和配置 Sun Cluster HA for Apache,必须考虑或提供有关以下各项的信息。
确定将 Sun Cluster HA for Apache 作为故障转移数据服务还是可伸缩数据服务运行。
确定要安装 Apache Webserver 的安全版本还是不安全版本。
确定要设置哪些故障监视资源特性(例如 Thorough_probe_interval 或 Probe_timeout 特性)。 多数情况下,设置为缺省值即可。 有关这些特性的信息,请参见配置 Sun Cluster HA for Apache 扩展特性。
提供 Sun Cluster HA for Apache 的资源类型的名称。 此名称为 SUNW.apache。
提供将控制数据服务的群集节点的名称。
提供客户机用于访问数据服务的逻辑主机名(故障转移服务)或共享地址(可伸缩服务)。 通常是在安装群集时设置此 IP 地址。 有关网络资源的详细信息,请参见《Sun Cluster 概念指南(适用于 Solaris OS)》文档。
提供应用程序二进制的路径。 您可以在本地磁盘上或群集文件系统中安装二进制。 有关每个位置优缺点的讨论,请参见《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“Sun Cluster 数据服务的配置指导”。
修改每份 apachect1 以使用相应的 httpd.conf 配置文件。
当您更改联机可伸缩服务( Load_balancing_policy 特性已设置为 LB_STICKY 或 LB_STICKY_WILD)的 Load_balancing_weights 特性时,请千万小心。 在该服务处于联机状态时更改这些特性会导致现有的客户机关系被重置,因此另一个节点可能会为随后的客户机请求提供服务,即使其他群集成员先前已经为该客户机提供了服务。
同样,在群集上启动该服务的新实例时,现有的客户机关系可能会被重置。
确定 Port_list 特性的项。 Port_list 特性可以有多个项。 有关详细信息,请参见如何注册和配置 Sun Cluster HA for Apache。
确定是否使用 Monitor_Uri_List 扩展特性。 此扩展特性使您可以监视 URI 的任意列表。 如果您需要 Sun Cluster HA for Apache 代理探测来监视在 Sun Cluster HA for Apache 服务器上部署的任何应用程序 (URI),则监视任意 URI 是很有用的。 Sun Cluster HA for Apache 的安全实例不支持使用 Monitor_Uri_List 扩展特性。 要使用此特性,您必须安装 3.1 10/03 版本的 Sun Cluster HA for Apache。 如果您要从 Sun Cluster HA for Apache 的早期版本进行升级,则必须执行资源类型升级过程以使用新的特性。 有关说明,请参见《用于 Solaris OS 的 Sun Cluster 数据规划和管理指南》中的“升级资源类型”。 有关可选的扩展特性设置和 Monitor_Uri_List 使用示例的详细信息,请参见配置 Sun Cluster HA for Apache 扩展特性。
表 1–1 列举了介绍安装和配置任务的相关章节。
表 1–1 任务对应关系: 安装和配置 Sun Cluster HA for Apache
任务 |
有关说明,请转到 |
---|---|
安装 Apache 软件 | 安装和配置 Apache |
安装 Sun Cluster HA for Apache 软件包 | |
配置和启动 Sun Cluster HA for Apache | |
配置资源扩展特性 | |
查看故障监视器信息 |
可以将 Apache Webserver 安装和设置为不安全的或安全的 Webserver。 本节介绍了两种安装的过程。 要安装 Webserver 的不安全版本,请参见以下过程之一。
要安装 Webserver 的安全版本,请参见以下过程之一。
Sun Cluster HA for Apache 与配置为 Web 服务器或代理服务器的 Apache 软件配合使用。
有关标准安装的说明,请参见 http://www.apache.org 中的 Apache 文档。 有关 Sun Cluster 软件支持的 Apache 版本的完整列表,请与 Sun 的销售代表联系。
本节提供了安装不安全的 Apache Webserver 的过程。 有关安装安全的 Apache Webserver 的过程,请参见安装安全的 Apache Webserver。
此过程用于安装不安全版本的 Apache Webserver。 有关安装安全的 Apache Webserver 的过程,请参见安装安全的 Apache Webserver。
在组成 SUNWCapache 软件包元群集的三个软件包 SUNWapchr、SUNWapchu 和 SUNWapchd 中包含了 Apache 二进制。 您必须先安装 SUNWapchr 软件包,然后再安装 SUNWapchu 软件包。
请将 Web 服务器二进制放在每个群集节点的本地文件系统中或群集文件系统中。
运行 pkginfo(1) 命令以确定是否已经安装了 Apache 软件包 SUNWapchr、SUNWapchu 和 SUNWapchd。
如果未安装,请按以下方式安装。
# pkgadd -d Solaris 8 Product directory SUNWapchr SUNWapchu SUNWapchd ... Installing Apache Web Server (root) as SUNWapchr ... [ verifying class initd ] /etc/rc0.d/K16apache linked pathname /etc/rc1.d/K16apache linked pathname /etc/rc2.d/K16apache linked pathname /etc/rc3.d/S50apache linked pathname /etc/rcS.d/K16apache linked pathname ... |
禁用作为 SUNWapchr 软件包的一部分刚安装的 START 和 STOP 运行控制脚本。
此步骤是必需的,因为在您配置数据服务之后,Sun Cluster HA for Apache 将启动和停止 Apache 应用程序。 请执行以下步骤。
下例将运行控制脚本名称中的首字母从大写更改为小写。 但是,您可以重命名该脚本,使其与您的常规管理惯例一致。
# ls -1 /etc/rc?.d/*apache /etc/rc0.d/K16apache /etc/rc1.d/K16apache /etc/rc2.d/K16apache /etc/rc3.d/S50apache /etc/rcS.d/K16apache # mv /etc/rc0.d/K16apache /etc/rc0.d/k16apache # mv /etc/rc1.d/K16apache /etc/rc1.d/k16apache # mv /etc/rc2.d/K16apache /etc/rc2.d/k16apache # mv /etc/rc3.d/S50apache /etc/rc3.d/s50apache # mv /etc/rcS.d/K16apache /etc/rcS.d/k16apache # ls -1 /etc/rc?.d/*apache /etc/rc0.d/k16apache /etc/rc1.d/k16apache /etc/rc2.d/k16apache /etc/rc3.d/s50apache /etc/rcS.d/k16apache |
此过程用于安装不安全版本的 Apache Webserver。 有关安装安全的 Apache Webserver 的过程,请参见安装安全的 Apache Webserver。
请将 Web 服务器二进制放在每个群集节点的本地文件系统中或群集文件系统中。
成为某个群集成员的超级用户。
使用 Apache 安装文档中的安装过程来安装 Apache 软件。
使用 Apache 软件附带的 Apache 安装文档,或参见 http://www.apache.org 中的安装说明,来安装 Apache 软件。
更新 httpd.conf 配置文件。
设置 ServerName 指令。 (在 Apache 2.0 版本中,ServerName 指令用于指定主机名和端口。)
设置 BindAddress 指令(可选)。 (BindAddress 指令仅存在于 Apache 2.0 之前的版本。对于 Apache 2.0,请参见以下 Listen 指令项目。)
设置 Listen 指令。 Listen 指令必须使用逻辑主机或共享地址的地址。 (Listen 指令仅存在于 Apache 2.0 和更高版本中。 对于 Apache 2.0 之前的 Apache 版本,请参见上面的 BindAddress 指令项目。)
设置 ServerType、ServerRoot、DocumentRoot、ScriptAlias 和 LockFile 指令。
ServerType 指令不存在于 Apache 2.0 中。
设置 Port 指令,使其具有与 Port_list 标准资源特性相同的编号。 有关详细信息,请参见步骤 4。
如果您选择将 Apache 软件作为代理服务器运行,请进行更改以作为代理服务器运行。 有关详细信息,请参见 Apache 文档。 如果要将 Apache 软件作为代理服务器运行,CacheRoot 设置必须指向群集文件系统中的某个位置。
检验 httpd.conf 文件中的一个或多个端口号是否与 Port_list 标准资源特性中的端口号相匹配。
您可以编辑 httpd.conf 配置文件以更改其中的一个或多个端口号,使其与标准 Sun Cluster 资源特性中的缺省值(端口 80)相匹配。 或者,当您配置 Sun Cluster HA for Apache 时,可以将 Port_list 标准特性设置为与 httpd.conf 文件中的设置相匹配。
更新 Apache 启动/停止脚本文件 (Bin_dir/apachectl) 中的路径。
您必须更改路径的 Apache 缺省值,使其与 Apache 目录结构相匹配。 例如,将 BIN_dir/apachectl 脚本中以 HTTPD=/usr/local/apache/bin/httpd 开头的行更改为以下内容。
HTTPD='/usr/local/apache/bin/httpd -f /global/foo/apache/conf/httpd.conf' |
执行以下任务以检验您的配置更改。
本节提供了安装安全的 Apache Webserver 的过程。 有关安装不安全的 Apache Webserver 的过程,请参见安装不安全的 Apache Webserver。
此过程用于安装安全版本的 Apache Webserver。 有关安装不安全的 Apache Webserver 的过程,请参见安装不安全的 Apache Webserver。
成为某个群集成员的超级用户。
安装 Apache 软件,包括 mod_ssl。
要安装 mod_ssl,请参见 Apache 安装文档或 http://www.modssl.org 中的安装说明。
更新 httpd.conf 配置文件。
设置 ServerName 指令。
设置 BindAddress 指令(可选)。
设置 ServerType、ServerRoot、DocumentRoot、ScriptAlias 和 LockFile 指令。
设置 Port 指令,使其具有与 Port_list 标准资源特性相同的编号。 有关详细信息,请参见步骤 4。
如果您选择将 Apache 软件作为代理服务器运行,请进行更改以作为代理服务器运行。 有关详细信息,请参见 Apache 文档。 如果要将 Apache 软件作为代理服务器运行,CacheRoot 设置必须指向群集文件系统中的某个位置。
检验 httpd.conf 文件中的一个或多个端口号是否与 Port_list 标准资源特性中的端口号相匹配。
您可以编辑 httpd.conf 配置文件以更改其中的一个或多个端口号,使其与标准 Sun Cluster 资源特性中的缺省值(端口 80)相匹配。 或者,当您配置 Sun Cluster HA for Apache 时,可以将 Port_list 标准特性设置为与 httpd.conf 文件中的设置相匹配。
安装所有证书和密钥。
在 Bin_dir 目录中,创建一个名为 keypass 的文件。 确保除属主之外其他人均无访问此文件的权限。
# cd Bin_dir # touch keypass # chmod 700 keypass |
如果您使用的是加密专用密钥,请执行以下步骤 a 和步骤 b。
在 httpd.conf 文件中,查找 SSLPassPhraseDialog 指令并按以下内容进行修改。
# SSLPassPhraseDialog exec:/Bin_dir/keypass |
有关 SSLPassPhraseDialog 指令的详细信息,请参见 mod_ssl 文档。
编辑 keypass 文件,以便其针对主机和端口显示加密密钥的口令。
此文件将使用 server:port algorithm 变量调用。 请确保在使用正确的参数调用该文件时,它可以为每个加密密钥显示口令。
随后,当您尝试手动启动 Webserver 时,它就不会提示您输入口令。 例如,对于在端口 8080 和 8888(两个端口均使用 RSA 加密专用密钥)上进行侦听的安全 Webserver,keypass 文件可能如下所示。
# !/bin/ksh host=`echo $1 | cut -d: -f1` port=`echo $1 | cut -d: -f2` algorithm=$2 if [ "$host" = "button-1.eng.sun.com" -a "$algorithm" = "RSA" ]; then case "$port" in 8080) echo passphrase-for-8080;; 8888) echo passphrase-for-8888;; esac fi |
keypass 文件不可以被属主以外的任何人读、写或执行。
在 httpd.conf 文件中,将 SSLLogLevel 设置为每次 Sun Cluster HA for Apache 探测 Webserver 时均会发出警告以避免记录信息。
SSLLogLevel warn |
更新 Apache 启动/停止脚本文件 (Bin_dir/apachect1) 中的路径。
您必须更改路径的 Apache 缺省值,使其与 Apache 目录结构相匹配。
执行以下任务以检验您的配置更改。
此过程用于安装安全版本的 Apache Webserver。 有关安装不安全的 Apache Webserver 的过程,请参见安装不安全的 Apache Webserver。
成为某个群集成员的超级用户。
使用 Apache 安装文档中的安装过程来安装 Apache 软件,包括 apache-ssl。
要安装 apache-ssl,请参见 Apache 安装文档或 http://www.apache-ssl.org 中的安装说明。
更新 httpd.conf 配置文件。
设置 ServerName 指令。
设置 BindAddress 指令(可选)。
设置 ServerType、ServerRoot、DocumentRoot、ScriptAlias 和 LockFile 指令。
设置 Port 指令,使其具有与 Port_list 标准资源特性相同的编号。 有关详细信息,请参见步骤 4。
如果您选择将 Apache 软件作为代理服务器运行,请进行更改以作为代理服务器运行。 有关详细信息,请参见 Apache 文档。 如果要将 Apache 软件作为代理服务器运行,CacheRoot 设置必须指向群集文件系统中的某个位置。
检验 httpd.conf 文件中的一个或多个端口号是否与 Port_list 标准资源特性中的端口号相匹配。
您可以编辑 httpd.conf 配置文件以更改其中的一个或多个端口号,使其与标准 Sun Cluster 资源特性中的缺省值(端口 80)相匹配。 或者,当您配置 Sun Cluster HA for Apache 时,可以将 Port_list 标准特性设置为与 httpd.conf 文件中的设置相匹配。
安装所有证书和密钥。
确保所有专用密钥均为存储时不加密。
随后,当您尝试手动启动 Webserver 时,它就不会提示您输入口令。
更新 Apache 启动/停止脚本文件 (Bin_dir/httpsdct1) 中的路径。
您必须更改路径的 Apache 缺省值,使其与 Apache 目录结构相匹配。
执行以下任务以检验您的配置更改。
如果在初始 Sun Cluster 安装期间您没有安装 Sun Cluster HA for Apache,请转至安装 Sun Cluster HA for Apache 软件包。 否则,请转到注册和配置 Sun Cluster HA for Apache。
如果未在 Sun Cluster 初始安装期间安装 Sun Cluster HA for Apache 软件包,请执行此过程以安装该软件包。 在要安装 Sun Cluster HA for Apache 软件包的每个群集节点上执行此过程。 必需使用 Sun Java Enterprise System Accessory CD Volume 3 才能完成此过程。
如果要同时安装多个数据服务,请执行《Sun Cluster 软件安装指南(适用于 Solaris OS)》的“安装软件”中的过程。
请使用以下安装工具之一来安装 Sun Cluster HA for Apache 软件包:
Web Start 程序
scinstall 公用程序
在早于 Sun Cluster 3.1 数据服务 10/03 的发行版中未提供 Web Start 程序。
您可以使用命令行界面 (CLI) 或图形用户界面 (GUI) 运行 Web Start 程序。 CLI 和 GUI 中指令的内容和顺序类似。 有关 Web Start 程序的详细信息,请参见installer(1M) 手册页。
在要安装 Sun Cluster HA for Apache 软件包的群集节点上成为超级用户。
(可选的) 如果要使用 GUI 运行 Web Start 程序,请确保已设置 DISPLAY
环境变量。
将 Sun Java Enterprise System Accessory CD Volume 3 放入 CD-ROM 驱动器。
如果卷管理守护程序 vold( 1M) 正在运行并被配置为管理 CD-ROM 设备,它将在 /cdrom/cdrom0 目录中自动装载 CD-ROM。
更改到 CD-ROM 的 Sun Cluster HA for Apache 组件目录。
用于 Sun Cluster HA for Apache 数据服务的 Web Start 程序位于此目录中。
# cd /cdrom/cdrom0/\ components/SunCluster_HA_Apache_3.1 |
启动 Web Start 程序。
# ./installer |
按照屏幕上的说明在节点上安装 Sun Cluster HA for Apache 软件包。
完成安装后,Web Start 程序将提供安装摘要。 此摘要使您可以查看 Web Start 程序在安装期间创建的日志。 这些日志位于 /var/sadm/install/logs 目录中。
退出 Web Start 程序。
从 CD-ROM 驱动器中取出 Sun Java Enterprise System Accessory CD Volume 3。
转至注册和配置 Sun Cluster HA for Apache。
必需使用 Sun Java Enterprise System Accessory CD Volume 3 才能完成此过程。 在所有可控制 Sun Cluster HA for Apache 的群集成员上执行此过程。
将 Sun Java Enterprise System Accessory CD Volume 3 放入 CD-ROM 驱动器。
运行 scinstall 公用程序(不使用任何选项)。
此步骤将以交互模式启动 scinstall 公用程序。
选择菜单选项“将新数据服务的支持添加到此群集节点”。
scinstall 公用程序将提示您输入其他信息。
提供 Sun Java Enterprise System Accessory CD Volume 3 的路径。
公用程序将此 CD 称为“数据服务 CD”。
指定要安装的数据服务。
scinstall 公用程序将列出您选定的数据服务,并要求您确认选择。
退出 scinstall 公用程序。
从驱动器中取出 CD。
转至注册和配置 Sun Cluster HA for Apache。
此过程介绍了如何使用 scrgadm(1M) 命令注册和配置 Sun Cluster HA for Apache。
您可以将 Apache 配置为故障转移服务或可伸缩服务,如下所述。
将 Apache 配置为故障转移服务时,应将 Apache 应用程序资源和网络资源放在单个资源组中。
将 Apache 配置为可伸缩服务时,应为 Apache 应用程序资源创建一个可伸缩资源组,并为网络资源创建一个故障转移资源组。
可伸缩资源组依赖于故障转移资源组。 将 Apache 配置为可伸缩服务还需要其他步骤。 在以下过程中,前面带有文本“仅适用于可伸缩服务”的步骤即为这些步骤。 如果未将 Apache 配置为可伸缩服务,请跳过标有“仅适用于可伸缩服务”的步骤。
在任一群集成员上运行此过程。
成为某个群集成员的超级用户。
注册数据服务的资源类型。
# scrgadm -a -t SUNW.apache |
添加数据服务资源类型。
为数据服务指定预定义的资源类型名称。
创建故障转移资源组,以保存网络资源和应用程序资源。
故障转移服务和可伸缩服务均需要此资源组。 对于故障转移服务,此资源组包含网络应用程序资源和故障转移应用程序资源。 对于可伸缩服务,此资源组仅包含网络资源。 在此资源组和包含应用程序资源的资源组之间将创建相关性。
您也可以使用 -h 选项选择可用于运行数据服务的节点集。
# scrgadm -a -g resource-group [-h nodelist] |
添加新配置。
指定要添加的故障转移资源组的名称。 您可以选择此名称,但该名称对于群集中的资源组必须唯一。
一个可选的、用逗号分隔的物理节点名称或 ID 的列表,这些节点名称或 ID 标识潜在的主节点。 此处指定的顺序确定了在故障转移过程中将节点选为主节点的顺序。
使用 -h 可以指定节点列表的顺序。 如果群集中的所有节点都是潜在的主节点,则不必使用 -h 选项。
检验是否已将您使用的所有网络地址都添加到了名称服务数据库中。
在 Sun Cluster 的初始安装过程中应该已经执行了此项检验。 有关详细信息,请参见《Sun Cluster 软件安装指南(适用于 Solaris OS)》中的规划一章。
为避免因名称服务查找而失败,请检验所有网络地址是否都存在于所有群集节点上的 /etc/inet/hosts 文件中。 在访问 NIS、NIS+ 或 DNS 之前,请在服务器上的 /etc/nsswitch.conf 文件中配置名称服务映射以先检查本地文件。
将网络资源(逻辑主机名或共享地址)添加到在步骤 3 中创建的故障转移资源组。
# scrgadm -a {-S | -L} -g resource-group \ -l hostname, … [-j resource] \ [-X auxnodelist] [-n netiflist] |
-S 选项指定共享地址资源。 -L 选项指定逻辑主机名资源。
指定要添加的用逗号分隔的网络资源列表。 可以使用 -j 选项指定资源的名称。 如果您未指定,则网络资源将使用列表中第一个项的名称。
指定在步骤 3 中创建的故障转移资源组的名称。
指定资源名称。 如果未提供您选定的资源名称,则网络资源名称的缺省设置为 -l 选项后指定的第一个名称。
指定用逗号分隔的物理节点名称或节点 ID 的列表,这些名称或 ID 标识可以托管共享地址但在发生故障转移时绝不会作为主节点的群集节点。 这些节点与资源组的 nodelist 中标识的节点(如果已指定)相互排斥。
指定一个可选的、用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理 组。 netiflist 中的每个元素的格式必须为 netif@node。 netif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。 节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1 或 sc_ipmp@phys-schost-1。
Sun Cluster 目前不支持将适配器名称用作 netif。
仅适用于可缩放服务 – 创建要在所有需要的群集节点上运行的可缩放资源组。
如果要将 Sun Cluster HA for Apache 作为故障转移数据服务运行,请前进到步骤 8。
创建一个要保存数据服务应用程序资源的资源组。 您必须指定主节点的最大数目和所需数目。
如果只有节点的子集可以用作此资源组的主节点,则在创建资源组时,必须使用 -h 选项指定这些潜在主节点的名称。
您还必须指定此资源组与在步骤 3 中创建的故障转移资源组之间的相关性。 此相关性可确保在发生故障转移时,如果两个资源组在同一节点上同时联机,Resource Group Manager (RGM) 将先启动网络资源,然后再启动依赖于网络资源的所有数据服务。
# scrgadm -a -g resource-group \ -y Maximum_primaries=m -y Desired_primaries=n \ -y RG_dependencies=resource-group \ [-h nodelist] |
指定要添加的可伸缩服务资源组的名称。
指定此资源组允许的活动主节点的最大数目。 如果未指定此特性的值,则缺省值为 1。
指定此资源组允许的活动主节点的所需数目。 如果未指定此特性的值,则缺省值为 1。
标识包含共享地址资源的资源组,资源组的创建将取决于该共享地址资源,即在步骤 3 中创建的故障转移资源组的名称。
可用作此资源组主节点的节点的可选列表。 如果某些节点不能用作此资源组的主节点,您只需指定此列表。
仅适用于可缩放服务 – 在可缩放资源组中创建应用程序资源。
如果要将 Sun Cluster HA for Apache 作为故障转移数据服务运行,请前进到步骤 8。
# scrgadm -a -j resource -g resource-group \ -t resource-type -y Network_resources_used=network-resource, … \ -y Port_list=port-number/protocol[, …] -y Scalable=True \ -x Bin_dir=bin-directory, ... |
指定要添加的资源名称。
指定要放置资源的可缩放资源组的名称。
指定要添加的资源的类型。
指定用逗号分隔的网络资源名称的列表,这些网络资源名称标识数据服务使用的共享地址。
指定用逗号分隔的、要使用的端口号和协议的列表,例如 80/tcp,81/tcp。
指定可伸缩服务所需的参数。 必须将此参数设置为 True。
指定 Apache 二进制(特别是 apachect1)的安装位置。 Sun Cluster HA for Apache 需要此扩展特性。
另外,您也可以设置那些属于 Apache 数据服务的附加扩展特性,以覆盖其缺省值。 有关扩展特性的列表,请参见表 1–2。
仅适用于故障转移服务 – 在故障转移资源组中创建应用程序资源。
仅当您将 Sun Cluster HA for Apache 作为故障转移数据服务运行时,才执行此步骤。 如果将 Sun Cluster HA for Apache 作为可伸缩数据服务运行,您应该已经执行了步骤 6 和步骤 7,此时应前进到步骤 10。
# scrgadm -a -j resource -g resource-group \ -t resource-type -y Network_resources_used=network-resource, … \ -y Port_list=port-number/protocol[, …] -y Scalable=False \ -x Bin_dir=bin-directory |
指定要添加的资源名称。
指定要放置资源的资源组(在步骤 3 中创建)的名称。
指定要添加的资源的类型。
指定用逗号分隔的网络资源的列表,该列表标识数据服务使用的共享地址。
指定用逗号分隔的、要使用的端口号和协议的列表,例如 80/tcp,81/tcp。
只有可伸缩服务才需要此特性。 该值在此处被设置为 False,也可以忽略该值。
指定 Apache 二进制(特别是 apachect1)的安装位置。 Sun Cluster HA for Apache 需要此扩展特性。
使故障转移资源组联机。
# scswitch -Z -g resource-group |
启用共享地址资源和故障监视,将资源组切换到 MANAGED 状态,并使资源组联机。
指定故障转移资源组的名称。
仅适用于可缩放服务 – 使可缩放资源组联机。
# scswitch -Z -g resource-group |
启用资源和监视器,将资源组转入 MANAGED 状态,并使资源组联机。
指定可缩放资源组的名称。
包含网络资源的故障转移资源组
包含应用程序资源的可伸缩资源组
群集信息 节点名称:phys-schost-1、phys-schost-2 共享地址:schost-1 资源组:resource-group-1(用于共享地址)、 resource-group-2(用于可伸缩 Apache 应用程序 资源) 资源:schost-1(共享地址)、apache-1(Apache 应用程序 资源) (添加故障转移资源组以包含共享地址。) # scrgadm -a -g resource-group-1 (将共享地址资源添加到故障转移资源组。) # scrgadm -a -S -g resource-group-1 -l schost-1 (注册 Apache 资源类型。) # scrgadm -a -t SUNW.apache (添加可伸缩资源组。) # scrgadm -a -g resource-group-2 -y Maximum_primaries=2 \ -y Desired_primaries=2 -y RG_dependencies=resource-group-1 (将 Apache 应用程序资源添加到可伸缩资源组。) # scrgadm -a -j apache-1 -g resource-group-2 \ -t SUNW.apache -y Network_resources_used=schost-1 \ -y Scalable=True -y Port_list=80/tcp \ -x Bin_dir=/opt/apache/bin (使故障转移资源组联机。) # scswitch -Z -g resource-group-1 (使可伸缩资源组在两个节点上联机。) # scswitch -Z -g resource-group-2 |
下例说明了如何在双节点群集上注册故障转移 Apache 服务。
群集信息 节点名称:phys-schost-1、phys-schost-2 逻辑主机名:schost-1 资源组:resource-group-1(用于所有资源) 资源:schost-1(逻辑主机名)、 apache-1(Apache 应用程序资源) (添加故障转移组以包含所有资源。) # scrgadm -a -g resource-group-1 (将逻辑主机名资源添加到故障转移资源组。) # scrgadm -a -L -g resource-group-1 -l schost-1 (注册 Apache 资源类型。) # scrgadm -a -t SUNW.apache (将 Apache 应用程序资源添加到故障转移资源组。) # scrgadm -a -j apache-1 -g resource-group-1 \ -t SUNW.apache -y Network_resources_used=schost-1 \ -y Scalable=False -y Port_list=80/tcp \ -x Bin_dir=/opt/apache/bin (使故障转移资源组联机。) # scswitch -Z -g resource-group-1 |
请使用如何检验数据服务安装和配置中的信息来检验安装。 要设置或修改资源扩展特性,请参见配置 Sun Cluster HA for Apache 扩展特性。
Sun Cluster 3.0 5/02 中引入了 SUNW.HAStoragePlus 资源类型。这个新的资源类型与 SUNW.HAStorage 执行着相同的功能,并可实现 HA 存储和数据服务之间的同步操作。
SUNW.HAStoragePlus 还具备使本地文件系统具有高可用性的附加功能。
有关背景信息,请参见 SUNW.HAStoragePlus(5) 手册页和《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“资源组和磁盘设备组之间的关系”。 有关过程信息,请参见《用于 Solaris OS 的 Sun Cluster 数据规划和管理指南》中的“在资源组和磁盘设备组之间同步启动”。 (如果您使用的是 5/02 以前的 Sun Cluster 3.0 版本,则必须设置 SUNW.HAStorage 而不是 SUNW.HAStoragePlus。 有关过程信息,请参见《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“在资源组和磁盘设备组之间同步启动”。)
配置 Sun Cluster HA for Apache 之后,请检验是否可以利用网络资源(逻辑主机名或共享地址)和端口号从 Web 浏览器上打开 Web 页。 使用 scswitch(1M) 命令执行切换,以检验服务是否可在次节点上继续运行并可被切换回原来的主节点。
创建 Apache 服务器资源时所需的唯一扩展特性是 Bin_dir 特性,该特性的值是包含 apachect1 脚本的目录。
通常,在创建 Apache 服务器资源时使用命令行 scrgadm -x parameter=value 来配置扩展特性。 稍后,您还可以按照《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“管理数据服务资源”中介绍的过程来配置特性。
有关所有 Sun Cluster 特性的详细信息,请参见《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“标准特性”。
您可以动态地更新某些扩展特性。 但是,只能在创建 Apache 服务器资源时更新其他特性。 下表介绍了您可以为 Apache 服务器配置的扩展特性。 “可调”条目说明何时可以更新该特性。
表 1–2 Sun Cluster HA for Apache 扩展特性
名称/数据类型 |
说明 |
---|---|
Bin_dir(字符串) |
Apache 二进制(特别是 apachect1)的路径。 Sun Cluster HA for Apache 需要此扩展特性。 缺省值: 无 范围: 无 可调: 创建时 |
Monitor_retry_count(整数) |
控制故障监视器的重新启动,并表明进程监视器工具 (PMF) 在 Monitor_retry_interval 特性指定的时间窗口期间重新启动故障监视器的次数。 此特性指的是重新启动故障监视器本身(而不是资源)。 系统定义的特性 Retry_interval 和 Retry_count 控制资源的重新启动。 缺省值: 4 范围: 0 – 2,147,483,641 –1 表示重试无限次。 可调: 创建时 |
Monitor_retry_interval(整数) |
记录故障监视器失败次数的时间段(以分钟为单位)。 如果故障监视器的失败次数超过了扩展特性 Monitor_retry_count 在此时间段中指定的值,则 PMF 不会重新启动故障监视器。 缺省值: 2 范围: 0 – 2,147,483,641 –1 表示无限长的重试时间间隔。 可调: 创建时 |
Probe_timeout(整数) |
故障监视器用于探测 Apache 实例的超时值(以秒为单位)。 缺省值: 90 范围: 0 – 2,147,483,641 可调: 创建时 |
Monitor_Uri_List(字符串) |
故障监视器用于探测 Sun Cluster HA for Apache Web 服务器上部署的任何应用程序的单个 URI 或 URI 列表。 通过将特性设置为一个或多个 URI(由在 Sun Cluster HA for Apache Web 服务器上部署的应用程序提供服务),可探测部署的应用程序。 在以下发行版中新增: 3.1 10/03。 缺省值: 空 可调: 任何时候 |
如果您要让 Web 服务器故障监视器探测由 Web 服务器提供服务的应用程序 (URI) 的任意列表,请设置 Monitor_Uri_List 扩展特性。 此扩展特性可提供扩展的探测功能,并且在对 Web 服务器以及其他服务进行分层时十分有用。 安全的 Sun Cluster HA for Apache 实例不支持 Monitor_Uri_List 扩展特性。 如果您未设置 Monitor_Uri_List 扩展特性,则故障监视器将执行基本探测。 有关详细信息,请参见Sun Cluster HA for Apache 故障监视器。 下例说明了如何在将 Sun Cluster HA for Apache 实例添加到配置时设置 Monitor_Uri_List 扩展特性。
(添加具有缺省负载平衡的不安全 Apache 实例。) # scrgadm -a -j apache-insecure-1 -g resource-group-1 \ -t SUNW.apache -y Network_resources_used=schost-1, ... \ -y Scalable=True -y Port_list=8000/tcp -x Bin_dir=/opt/apache/bin \ -x Monitor_Uri_list=http://schost-1:8000/servlet/monitor |
(添加不安全的 Apache 应用程序资源实例。) # scrgadm -a -j apache-insecure-1 -g resource-group-1 \ -t SUNW.apache -y Network_resources_used=schost-1 \ -y Scalable=False -y Port_list=80/tcp \ -x Bin_dir=/opt/apache/bin \ -x Monitor_Uri_list=http://schost-1:80/servlet/monitor |
Sun Cluster HA for Apache 探测向服务器发送请求,以查询 Apache 服务器的运行状况。 在探测实际查询 Apache 服务器之前,探测将检查以确认网络资源已针对此 Apache 资源进行了配置。 如果未配置网络资源,将记录一条错误消息(未找到资源的网络资源),并且探测将以失败结束。
探测将执行以下步骤。
使用资源特性 Probe_timeout 设置的超时值来限制尝试成功探测 Apache 服务器所用的时间。
对于不安全的 Webserver,请连接到 Apache 服务器,并通过发送 HTTP 请求和接收响应来执行 HTTP 1.0 HEAD 检查。 然后,探测将连接到每个 IP 地址/端口组合上的 Apache 服务器。
此查询结果可以是失败,也可以是成功。 如果探测成功接收到 Apache 服务器的回复,探测将返回其无限循环,并继续下一个周期的探测和休眠。
查询会因各种原因而失败,例如网络通信繁忙、系统负载大和配置错误。 如果未将 Apache 服务器配置为在被探测的所有 IP 地址/端口组合上进行侦听,则会发生配置错误。 Apache 服务器应该为针对此资源指定的每个 IP 地址的每个端口提供服务。 如果未在 Probe_timeout 限制(先前在步骤 1 中指定)内收到对查询的回复,探测会将此情况视为 Apache 数据服务的部分失败,并在其历史记录中记录该失败。 Apache 探测失败可以是完全失败,也可以是部分失败。
以下探测失败被认为是完全失败。
无法连接到服务器,如以下错误消息所示(%s 表示主机名,%d 表示端口号)。
无法连接到 %s(端口 %d)%s |
尝试连接到连接器后,运行超时(超过资源特性超时值 Probe_timeout)。
无法将探测字符串成功发送到服务器,如以下错误消息所示(第一个 %s 表示主机名,%d 表示端口号,第二个 %s 表示有关错误的详细信息)。
无法与服务器 %s 端口 %d 进行通信: %s |
当监视器在资源特性间隔 Retry_interval 内累计了两个这样的部分失败时,监视器会将这些失败计为一个完全失败。
以下探测失败被认为是部分失败:
尝试从服务器读取对探测查询的回复时,运行超时(超过资源特性超时值 Probe_timeout)。
由于其他原因无法从服务器读取数据,如以下错误消息所示(第一个 %s 表示主机名,%d 表示端口号, 第二个 %s 表示有关错误的详细信息)。
无法与服务器 %s 端口 %d 进行通信: %s |
如果您在 Monitor_Uri_List 扩展特性中配置了 URI,则探测将连接到 Sun Cluster HA for Apache 服务器,并通过将 HTTP 请求发送到 Monitor_Uri_List 中的每个 URI 和接受响应来执行 HTTP 1.1 GET 检查。 如果 HTTP 服务器返回的代码是 500(内部服务器错误)或者如果连接失败,探测将采取操作。
HTTP 请求的结果可能是失败,也可能是成功。 如果所有请求均成功接收到 Sun Cluster HA for Apache 服务器的回复,探测将返回并继续下一个周期的探测和休眠。
网络通信繁忙、系统负载大和配置错误均会导致 HTTP GET 探测失败。 如果 Monitor_Uri_List 中的某个 URI 包含不正确的端口或主机名,则 Monitor_Uri_List 特性的配置错误会导致故障。 例如,如果 Web 服务器实例正在逻辑主机 schost-1 上进行侦听并且 URI 被指定为 http://schost-2/servlet/monitor,则探测将尝试联系 schost-2 以向 /servlet/monitor 提出请求。
对于安全的 Webserver,请连接到每个 IP 地址和端口组合。 如果此连接尝试成功,探测将断开连接,并以成功状态返回。 不执行进一步检查。
基于故障的历史记录,故障会导致本地重新启动或数据服务的故障转移。 《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》的“Sun Cluster 数据服务故障监视器”中进一步介绍了此操作。
如果以下条件适用,请升级 SUNW.apache 资源类型:
要升级 Sun Cluster HA for Apache 数据服务的早期版本。
需要使用此数据服务的新功能。
有关介绍如何升级资源类型的一般说明,请参见《用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南》中的“升级资源类型”。 在以下各小节中提供了完成 SUNW.apache 资源类型升级所需的信息。
资源类型版本和 Sun Cluster 数据服务的发行版本之间的关系如下表所示。 Sun Cluster 数据服务的发行版表示新增了资源类型版本的发行版。
资源类型版本 |
Sun Cluster 数据服务发行版 |
---|---|
1 |
1.0 |
3.1 |
3.1 5/03 |
4 |
3.1 10/03 |
要确定被注册的资源类型的版本,请使用下表中的命令之一:
scrgadm -p
scrgadm -pv
此资源类型的资源类型注册 (RTR) 文件为 /opt/SUNWscapc/etc/SUNW.apache。
编辑 SUNW.apache 资源类型的每个实例所需的信息如下所示:
您可以随时执行迁移。
如果您需要使用 Sun Cluster HA for Apache 数据服务的新功能,Type_version 特性所需的值为 4。
如果需要监视已部署的应用程序,请将 Monitor_Uri_List 扩展特性设置为单一 URI 或 URI 列表以指定要探测的应用程序的位置。
以下示例显示了用于修改 SUNW.apache 资源类型实例的命令。
# scrgadm -c -j apache-rs -y Type_version=4 \ -x Monitor_Uri_List=http://schost-1/test.html |
此命令可以修改名为 apache-rs 的 SUNW.apache 资源,如下所示:
将此资源的 Type_version 特性设置为 4。
故障监视器探测将监视 URI http://schost-1/test.html。