本节提供了配置 Veritas Cluster Server 或 Sun Cluster 高可用性群集软件以及准备将该软件与 Messaging Server 配合使用所需的信息。假定您已阅读《Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide》中的第 6 章 “Designing for Service Availability”以及相应的 Veritas 或 Sun Cluster Server 文档,并已了解有关详细规划、安装说明、必需的修补程序和其他所需信息。
本章包含以下几个部分:
下表列出了 Messaging Server 当前所支持的 Sun Cluster Server 和 Veritas Cluster Server 版本:
表 3–1 支持的 Sun Cluster Server 和 Veritas Cluster Server 版本
群集 |
支持的版本 |
---|---|
Sun Cluster Server |
Sun Cluster 3.1 |
Veritas Cluster Server |
Veritas Cluster Server 1.3、Veritas Cluster Server 2.0 和 Veritas Cluster Server 3.5 |
群集代理是一种在群集框架下运行的 Messaging Server 程序。
Sun Cluster Messaging Server 代理 (SUNWscims) 是在您通过 Java Enterprise System 安装程序选择 Sun Cluster 3.1 时安装的。可以在 Java Enterprise System CD 的 Messaging Server Product 子目录 (Solaris_sparc/Product/messaging_svr/Packages/SUNWmsgvc) 中找到 Veritas Cluster Messaging Server 代理 (SUNWmsgvc)。(请注意,您必须使用 pkgadd(1M) 命令来安装 VCS 群集代理。)
有关 Messaging Server 和高可用性(适用于 Veritas Cluster 和 Sun Cluster)安装的一些说明项:
需要在安装和配置 Messaging Server 当前版本之前安装群集软件。在 Messaging Server 的 HA 逻辑主机名当前所指的群集节点上运行安装。当系统提示使用任何节点名称时,请使用群集别名。安装 Messaging Server 时,请通知 Administration Server,安装群集软件的节点是群集的逻辑名称(不论涉及的是哪台物理计算机)。
运行 Messaging Server 初始运行时配置(请参见创建初始 Messaging Server 运行时配置)时,请确保指定 Messaging Server 群集的全限定 HA 逻辑主机名。
使用群集主机名来配置 Messaging Server。如果没有按此操作,则需要使用群集主机名再一次重新配置。
useconfig 实用程序使您可以在 HA 环境中的多个节点之间共享单一配置。此实用程序并不升级或更新现有配置。
例如,如果您要升级第一个节点,则可以通过 Java Enterprise System 安装程序安装 Messaging Server,然后对其进行配置。随后,可以故障转移到第二个节点,在该节点上通过 Java Enterprise System 安装程序安装 Messaging Server 软件包,但不必再次运行初始运行时配置程序 (configure)。您也可以使用 useconfig 实用程序。
要启用该实用程序,请运行 useconfig 实用程序,以指向先前的 Messaging Server 配置。
msg_svr_base/sbin/useconfig install/configure_YYYYMMDDHHMMSS |
其中,configure_YYYYMMDDHHMMSS 是先前的配置设置文件。
在一个全新的节点上,您可以在共享磁盘的 msg_svr_base/data/setup 目录中找到 configure_YYYYMMDDHHMMSS。
以下两节Veritas Cluster Server 代理安装和Sun Cluster 代理安装介绍何时可以使用 useconfig 实用程序。
可以使用 Veritas Cluster Server 1.3、2.0 和 3.5 配置 Messaging Server。本节中的说明只涵盖 Veritas Cluster 3.5;有关 Veritas 1.3 和 2.0 的说明,请查阅《Sun Java Enterprise System 2005Q4 Installation Guide for UNIX》。
执行以下步骤之前,请确保查阅 Veritas Cluster Server 文档。
Veritas Volume Manager (VxVM) 的群集功能需要获得单独许可。此功能提供有关共享存储的文件系统全局视图,与 Sun Cluster 3.0 全局文件系统类似。有关更多信息,请参见 Veritas Cluster Server 文档。
FsckOpt 在 3.5 版之前的 Veritas 版本中是可选的。不过,它是配置 Mount 资源所必需的。FsckOpt 必须包括 -y 或 -n,否则资源将无法联机使用。
Veritas Cluster Server 2.0 Explorer 不能用于管理 Veritas Cluster Server 3.5。
通过 Java Enterprise System 安装程序安装 Messaging Server 并配置 HA 之后,请确保查阅在服务器上绑定 IP 地址,以了解与配置 HA 支持相关的其他步骤。
已安装和配置了 Veritas Cluster 软件。
如以下说明(位于VCS 3.5 安装和配置说明)中所述,您将在两个节点上安装 Messaging Server 的软件包和 Messaging Server 软件。
以下说明介绍了如何使用 Veritas Cluster Server 3.5 将 Messaging Server 配置为 HA 服务。
默认的 main.cf 配置文件将设置名为 ClusterService 的资源组,该资源组将启动 VCSweb 应用程序。此资源组包含诸如 csgnic 和 webip 等网络逻辑主机 IP 资源。此外,还会为事件通知创建 ntfr 资源。
从其中的一个节点启动 Cluster Explorer。
请注意,这些 Veritas Cluster Server 说明假设您正在使用图形用户界面以将 Messaging Server 配置为 HA 服务。
要启动 Cluster Explorer,请运行以下命令:
# /opt/VRTSvcs/bin/hagui |
为了使用 GUI,必须安装 VRTScscm 软件包。
添加 DiskGroup 类型的 s1ms_dg 磁盘组资源并启用它。
添加 Mount 类型的 s1ms_mt 安装资源。
在 s1ms_mt 和 s1ms_dg 之间创建一个链接。启用 s1ms_mt 资源。
下图表示依赖性树:
运行 Java Enterprise System 安装程序,选择 Administration Server 和 Messaging Server。
切换至备份节点(例如,Node_B)。
运行 Java Enterprise System 安装程序,以在备份节点 (Node_B) 上安装 Messaging Server。
安装 Messaging Server 之后,您可以使用 useconfig 实用程序,而不必在备份节点 (Node_B) 上创建其他初始运行时配置。useconfig 实用程序使您可以在 HA 环境中的多个节点之间共享单一配置。此实用程序并不升级或更新现有配置。请参见使用 useconfig 实用程序。
至此,已将 Veritas 代理安装在 Node_B 上。
从 Cluster Explorer 的“文件”菜单中选择“导入类型...”,系统将显示文件选择框。
从 /etc/VRTSvcs/conf/config 目录中导入 MsgSrvTypes.cf 类型。导入此类型文件。请注意,您需要在群集节点上才能找到此文件。
现在创建一个 MsgSrv 类型的资源(例如,Mail)。此资源需要设置逻辑主机名属性。
Mail 资源取决于 s1ms_mt 和 webip。如以下依赖性树所示,在资源之间创建链接:
切换至 Node_A 并检查高可用性配置是否正在工作。
将组属性 OnlineRetryLimit 从 3 更改为 0,否则可能会在同一节点上重新启动故障转移服务。
本节介绍了控制 mail 资源行为的 MsgSrv 附加属性。要使用 Veritas Cluster Server 配置 Messaging Server,请参见表 3–2。
表 3–2 Veritas Cluster Server 属性
属性 |
说明 |
---|---|
FaultOnMonitorTimeouts |
如果未设置 (=0),则监视器(探测)超时不会被视为资源故障。建议将此属性值设置为 2。如果监视器超时两次,则将重新启动资源或进行故障转移。 |
ConfInterval |
计数故障/重新启动的时间间隔。如果在此期间服务仍然处于联机状态,则将删除先前的历史记录。建议设为 600 秒。 |
ToleranceLimit |
监视器返回 OFFLINE 以声明资源故障的次数。建议将此值保留为 "0"(默认值)。 |
本节介绍了如何安装 Messaging Server 以及如何将其配置为 Sun Cluster 高可用 (HA) 数据服务。这些安装说明适用于 Sun Cluster 3.1。本节包含以下主题:
另请参见 Sun Cluster 3.1 文档 和
请注意,Sun Cluster 3.1 支持 Veritas 文件系统 (VxFS)。
本节假定以下情况:
在 Solaris 8 或 9 操作系统(具有必需的修补程序)中安装并配置了 Sun Cluster 3.1。
您的系统上安装了 Sun Cluster 代理 SUNWscims。
如果要创建逻辑卷,可使用 Solstice DiskSuite 或 Veritas 卷管理器。
强烈建议您使用 HAStoragePlus 资源类型以使本地安装的文件系统在 Sun Cluster 环境中实现高可用性。位于 Sun Cluster 全局设备组中的任何文件系统均可以与 HAStoragePlus 结合使用。与全局安装的文件系统(例如 HAStorage)不同,HAStoragePlus 只能在任何给定的时间点在一个群集节点上使用。这些本地安装的文件系统只能在故障转移模式和故障转移资源组中使用。与 HAStorage 的 GFS(global file system,全局文件系统)不同,HAStoragePlus 提供 FFS(failover file system,故障转移文件系统)。
HAStoragePlus 具有许多优点:
HAStoragePlus 可以完全避开全局文件服务层。对于磁盘 IO 密集的数据服务,这会显著提高性能。
HAStoragePlus 可以与任何文件系统(例如,UFS、VxFS 等),甚至是那些可能无法与全局文件服务层一同工作的文件系统协同工作。如果 Solaris 操作系统支持某一文件系统,则该文件系统可与 HAStoragePlus 协同工作。
有关 HAStoragePlus 的更多信息,请阅读 http://docs.sun.com 上的 Sun Cluster 3.1 Data Service Planning and Administration Guide。
本节介绍如何通过简单的示例为 Sun Cluster 3.1 配置当前版本的 Messaging Server 的 HA 支持和 HA StoragePlus。
配置 HA 后,请确保查阅在服务器上绑定 IP 地址,以了解与 HA 支持相关的其他步骤。
以下示例假设已使用 HA 逻辑主机名和 IP 地址配置了邮件服务器。假设物理主机名为 mail-1 和 mail-2,HA 逻辑主机名为 budgie。图 3–3 说明了您在配置 Messaging Server HA 支持时要创建的不同 HA 资源的嵌套依赖性。
成为超级用户并打开控制台。
以下所有 Sun Cluster 命令都要求您已使用超级用户身份登录。您还需要有一个控制台或窗口来查看输出到 /dev/console 中的消息。
添加所需的资源类型。
配置 Sun Cluster 以了解要使用的资源类型。这可以使用 scrgadm -a -t 命令来完成:
# scrgadm -a -t SUNW.HAStoragePlus # scrgadm -a -t SUNW.ims |
为 Messaging Server 创建资源组。
如果您尚未执行此操作,请创建一个资源组并使其显示在要运行 Messaging Server 的群集节点上。以下命令将创建名为 MAIL-RG 的资源组,并使其显示在 mail-1 和 mail-2 群集节点上:
# scrgadm -a -g MAIL-RG -h mail-1,mail-2
当然,您可以按照您的意愿对资源组使用任何名称。
创建 HA 逻辑主机名资源并启动资源组。
如果尚未执行此操作,请为 HA 逻辑主机名创建并启用资源,将其置于资源组中。以下命令使用逻辑主机名 budgie 执行此操作。因为忽略了 -j 切换,所以创建的资源名称将仍旧为 budgie。
# scrgadm -a -L -g MAIL-RG -l budgie # scswitch -Z -g MAIL-RG |
创建 HAStoragePlus 资源。
接下来,您需要为 Messaging Server 所依据的文件系统创建 HAStoragePlus 资源类型。以下命令将创建名为 disk-rs 的 HAStoragePlus 资源,并会将文件系统 disk_sys_mount_point 置于其控制之下:
# scrgadm -a -j disk-rs -g MAIL-RG \ -t SUNW.HAStoragePlus \ -x ServicePaths=disk_sys_mount_point-1, disk_sys_mount_point-2 |
以逗号分隔的 ServicePaths 列表是 Messaging Server 所依据的群集文件系统的装入点。在以上示例中,仅指定了两个装入点 disk_sys_mount_point-1 和 disk_sys_mount_point-2。如果某个服务器具有其所依据的附加文件系统,则您可以创建附加的 HA 存储资源并在步骤 10 中指示该附加依赖性。
安装和配置 Administration Server。
请参见 Sun Java Enterprise System 2005Q4 安装指南以了解说明。
在指定全限定域名时,请使用步骤 4 中所创建的 HA 逻辑主机名。
安装和配置 Messaging Server。请参见创建初始 Messaging Server 运行时配置
在初始运行时配置中,您需要在创建初始 Messaging Server 运行时配置中指定配置目录。请确保使用 HAStoragePlus 资源的共享磁盘目录路径。
运行以下命令以启用 Sun Cluster 下的 watcher 进程:
configutil -o local.autorestart -v 1 |
有关 watcher 进程的更多信息,请参阅失败的服务或未响应服务的自动重新启动
运行 ha_ip_config 脚本以设置 service.listenaddr 和 service.http.smtphost 并配置 dispatcher.cnf 和 job_controller.cnf 文件,从而实现高可用性。该脚本可确保为这些参数和文件设置逻辑 IP 地址,而非物理 IP 地址。它还启用 watcher 进程(将 local.watcher.enable 设置为 1)和自动重新启动进程(将 local.auto.restart 设置为 1)。
有关运行该脚本的说明,请参见在服务器上绑定 IP 地址。
只能在具有共享磁盘(用于配置和数据)的计算机上运行一次 ha_ip_config 脚本。
修改 imta.cnf 文件,并用群集的逻辑名称替换所有出现的物理主机名。
创建 HA Messaging Server 资源。
现在应该创建 HA Messaging Server 资源并将其添加到资源组。此资源取决于 HA 逻辑主机名和 HA 磁盘资源。
在创建 HA Messaging Server 资源时,我们需要指示指向 Messaging Server 顶层目录的路径,即 msg_svr_base 路径。如以下命令所示,这些操作可通过使用 IMS_serverroot 扩展属性来完成。
# scrgadm -a -j mail-rs -t SUNW.ims -g MAIL-RG \ -x IMS_serverroot=msg_svr_base \ -y Resource_dependencies=disk-rs,budgie |
以上命令为 Messaging Server(安装在 msg_svr_base 目录的 IMS_serverroot 中)创建名为 mail-rs 的 HA Messaging Server 资源。HA Messaging Server 资源取决于 HA 磁盘资源 disk-rs 和 HA 逻辑主机名 budgie。
如果 Messaging Server 具有附加文件系统依赖性,则您可以为这些文件系统创建附加 HA 存储资源。请确保在以上命令的 Resource_dependencies 选项中包含该附加 HA 存储资源名。
从 /etc/vfstab 文件中删除术语 global。引导时,必须将 /etc/vbstab 设置为 no。有关更多信息,请参阅 Sun Cluster 3.1 文档。
使用 HAStoragePlus 启用 vfstab 文件之前,可能要首先 umount 当前为全局文件系统的文件系统。然后可以使用 HAStoragePlus 来启用 vfstab 文件并重新安装文件系统。
启用 Messaging Server 资源。
现在应该激活 HA Messaging Server 资源,从而使邮件服务器联机。要执行此操作,请使用命令
# scswitch -e -j mail-rs
以上命令将启用 MAIL-RG 资源组的 mail-rs 资源。因为 MAIL-RG 资源先前已联机,所以上述命令也会使 mail-rs 联机。
验证上述操作是否生效。
使用 scstat 命令查看 MAIL-RG 资源组是否已联机。您可能需要查看导向控制台设备的输出,以了解所有诊断信息。另外,还需查看 syslog 文件中的 /var/adm/messages。
将资源组故障转移至其他群集节点,以确保故障转移正常工作。
手动将资源组故障转移至其他群集节点。(请确保您对故障转移到的节点具有超级用户权限。)
使用 scstat 命令查看资源组当前正在哪个节点上运行(“联机”)。例如,如果该资源组在 mail-1 上联机,则使用以下命令将其故障转移至 mail-2:
# scswitch -z -g MAIL-RG -h mail-2
如果您要升级第一个节点,则可以通过 Java Enterprise System 安装程序安装 Messaging Server,然后对其进行配置。随后,您可以故障转移到第二个节点,在该节点上通过 Java Enterprise System 安装程序安装 Messaging Server 软件包,但不必再次运行初始运行时配置程序 (configure)。您也可以使用 useconfig 实用程序。
如果使用的是对称或 N + 1 高可用性模型,则应该在配置期间注意一些附加设置,以便为 Messaging Server 准备 Sun Cluster Server。
在服务器上运行的 Messaging Server 需要有正确的 IP 地址与其绑定。这是在 HA 环境中正确配置邮件服务所必需的。
将 Messaging Server 配置为具有 HA 的部分工作包括配置 Messaging Server 绑定和侦听连接所在的接口地址。默认情况下,服务器将绑定到所有可用的接口地址。但是,在 HA 环境下,您需要将服务器专门绑定到与 HA 逻辑主机名关联的接口地址。
因此,将使用脚本来配置服务器(属于给定的 Messaging Server 实例)所使用的接口地址。请注意,脚本通过 IP 地址标识接口地址,此 IP 地址已经或将要与服务器所使用的 HA 逻辑主机名相关联。
该脚本通过修改或创建以下配置文件来实现配置更改。对于文件
msg_svr_base/config/dispatcher.cnf
该脚本为 SMTP 和 SMTP Submit 服务器添加或更改 INTERFACE_ADDRESS 选项。对于文件
msg_svr_base/config/job_controller.cnf
该脚本为作业控制器添加或更改 INTERFACE_ADDRESS 选项。
最后,它将设置供 POP、IMAP 和 Messenger Express HTTP 服务器使用的 configutil service.listenaddr 和 service.http.smtphost 参数。
请注意,原始配置文件(如果有)将被重命名为 *.pre-ha。
按照以下方式运行该脚本:
成为超级用户。
执行 msg_svr_base/sbin/ha_ip_config
该脚本将显示下述问题。键入 control-d 可以中止正在处理问题的本脚本。这些问题的默认答案将显示在方括号 [ ] 中。要接受默认答案,只需按 RETURN 键。
逻辑 IP 地址:指定已分配给 Messaging Server 将使用的逻辑主机名的 IP 地址。必须将 IP 地址指定为点分十进制数字形式,例如,123.456.78.90。
逻辑 IP 地址是在 configutil 参数 service.http.smtphost 中自动设置的,您可以使用此 IP 地址来查看哪台计算机正在运行群集中的邮件服务系统。例如,如果您使用的是 Messenger Express,则服务器可以确定从哪台邮件主机发送外发邮件。
Messaging Server 基本目录 (msg_svr_base):指定在其中安装 Messaging Server 的顶层目录的绝对路径。
是否希望更改以上任何选项:回答 "no" 将接收您的答案并实现配置更改。如果希望更改答案,则回答 "yes"。
此外,ha_ip_config 脚本将使用以下参数自动启用两个新的进程 watcher 和 msprobe:local.autorestart 和 local.watcher.enable。这两个新的参数将协助监视邮件服务器的运行状况。进程故障和未响应的服务将产生反映特定故障的日志消息。群集代理现在将监视 watcher 进程并在退出时进行故障转移。请注意,为了使 Sun Cluster 正常工作,必须启用这两个参数。
有关 watcher 和 msprobe 进程的更多信息,请参见失败的服务或未响应服务的自动重新启动。
本节介绍如何取消配置高可用性。要卸载高可用性,请按照 Veritas 或 Sun Cluster 文档中的说明进行操作。
根据您要删除 Veritas Cluster Server 还是 Sun Cluster,高可用性取消配置说明会有所不同。
本节包含以下主题:
本节介绍了如何取消配置 Veritas Cluster Server 的高可用性组件:
使 iMS5 服务组脱机并禁用其资源。
删除 mail 资源、logical_IP 资源和 mountshared 资源之间的依赖性。
使 iMS5 服务组返回联机状态,以使 sharedg 资源可用。
删除安装期间创建的所有 Veritas Cluster Server 资源。
停止 Veritas Cluster Server 并删除两个节点上的以下文件:
/etc/VRTSvcs/conf/config/MsgSrvTypes.cf /opt/VRTSvcs/bin/MsgSrv/online /opt/VRTSvcs/bin/MsgSrv/offline /opt/VRTSvcs/bin/MsgSrv/clean /opt/VRTSvcs/bin/MsgSrv/monitor /opt/VRTSvcs/bin/MsgSrv/sub.pl |
从两个节点上的 /etc/VRTSvcs/conf/config/main.cf 文件中删除 Messaging Server 条目。
从两个节点中删除 /opt/VRTSvcs/bin/MsgSrv/ 目录。
本节介绍了如何为 Sun Cluster 撤消 HA 配置。本节假设简单的示例配置(如Sun Cluster 代理安装中所述)(例如,步骤 3)可能会不同,但会遵循相同的逻辑顺序。
成为超级用户。
以下所有 Sun Cluster 命令都要求您以超级用户身份运行。
使资源组脱机。
要关闭资源组中的所有资源,请发布命令
# scswitch -F -g MAIL-RG
这将关闭资源组中的所有资源(例如 Messaging Server 和 HA 逻辑主机名)。
禁用各个资源。
下一步,使用以下命令从资源组逐个删除资源:
# scswitch -n -j mail-rs # scswitch -n -j disk-rs # scswitch -n -j budgie |
从资源组删除各个资源。
禁用资源后,您可以使用以下命令从资源组逐个删除资源:
# scrgadm -r -j mail-rs # scrgadm -r -j disk-rs # scrgadm -r -j budgie |
删除资源组。
从资源组删除所有资源后,可以使用以下命令删除资源组本身:
# scrgadm -r -g MAIL-RG
删除资源类型(可选)。
如果需要从群集中删除资源类型,请发布以下命令:
# scrgadm -r -t SUNW.ims # scrgadm -r -t SUNW.HAStoragePlus |