用于域名服务 (DNS) 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

安装和配置 Sun Cluster HA for Domain Name Service (DNS)

本章介绍了在 Sun Cluster 服务器上安装和配置 Sun Cluster HA for Domain Name Service (DNS) 数据服务的步骤。

本章包含以下过程。

您必须将 Sun Cluster HA for DNS 配置为故障切换数据服务。 有关数据服务、资源组、资源和其它相关主题的一般信息,请参阅 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的 “Planning for Sun Cluster Data Services” 和《Sun Cluster 概念指南(适用于 Solaris OS)》文档。


注意:

您可以使用 SunPlex Manager 来安装和配置此数据服务。 有关详细信息,请参阅 SunPlex Manager 联机帮助。


安装和配置 Sun Cluster HA for DNS

下表列出了说明安装和配置任务的各节。

表 1–1 任务对应关系: 安装和配置 Sun Cluster HA for NFS

任务 

有关说明,请转到…  

安装 DNS  

安装 DNS

安装 Sun Cluster HA for DNS 软件包  

安装 Sun Cluster HA for DNS 软件包

配置和启动 Sun Cluster HA for DNS  

注册和配置 Sun Cluster HA for DNS

配置资源扩展特性  

配置 Sun Cluster HA for DNS 扩展特性

查看故障监视器信息  

Sun Cluster HA for DNS 故障监视器的操作

安装 DNS

本节介绍了安装 DNS 以及使 DNS 作为 Sun Cluster HA for DNS 运行的步骤。

Sun Cluster HA for DNS 使用 Solaris 8 和 Solaris 9 操作环境附带的 Internet 域名服务器 (in.named) 软件。 有关如何设置 DNS 的信息,请参阅 in.named(1M) 手册页。 Sun Cluster 配置包括以下不同之处。

如何安装 DNS

本节介绍如何安装 DNS。

  1. 成为某个群集成员的超级用户。

  2. 确定要提供 DNS 服务的网络资源。

    此名称应为您在安装 Sun Cluster 软件时设置的 IP 地址(逻辑主机名或共享地址)。 有关网络资源的详细信息,请参阅《Sun Cluster 概念指南(适用于 Solaris OS)》文档。

  3. 确保 DNS 可执行文件 (in.named) 位于目录 /usr/sbin 中。

    Solaris 8 和 Solaris 9 操作环境附带 DNS 可执行文件。 在开始安装之前,确保该可执行文件位于 /usr/sbin 目录中。

  4. 在群集文件系统上创建目录结构 /global/dns/named 以保存 DNS 配置文件(位于 /global/dns 级目录)和数据库文件(位于 /global/dns/named 级目录)。

    有关如何设置群集文件系统的信息,请参阅《Sun Cluster 软件安装指南 (适用于 Solaris OS)》。


    # mkdir -p /global/dns/named
    
  5. 将 DNS 的配置文件 named.confnamed.boot 放在 /global/dns 目录下。

    如果您已经安装了 DNS,则可以将现有的 named.confnamed.boot 文件复制到 /global/dns 目录中。 否则,请在此目录中创建 named.conf 文件。 有关 named.confnamed.boot 中要放置的项的类型的信息,请参阅 in.named(1M) 手册页。 named.confnamed.boot 这两个文件必须存在一个。 也可以两个文件都存在。

  6. 将所有 DNS 数据库文件(在 named.conf 文件中列出) 放在 /global/dns/named 目录下。

  7. 在 Sun Cluster HA for DNS 的所有客户机上,在 /etc/resolv.conf 文件中为 DNS 服务的网络资源创建一个项。

    在所有节点上,编辑 /etc/resolv.conf 文件以包含网络资源。 下例说明了逻辑主机名为 schost-1.eng.sun.com 的四节点配置(phys-schost-1phys-schost-2phys-schost-3phys-schost-4)的项。


    domain eng.sun.com
     
    ; schost-1.eng.sun.com
    
    (如果文件已存在,则仅添加项。)
     
    nameserver 192.29.72.90
     
    ; phys-schost-2.eng
    nameserver 129.146.1.151
     
    ; phys-schost-3.eng
    nameserver 129.146.1.152
     
    ; phys-schost-4.eng
    nameserver 129.144.134.19
     
    ; phys-schost-1.eng
    nameserver 129.144.1.57

    使网络资源成为域名之后的第一个项。 DNS 将按照 resolv.conf 文件中列出的地址顺序尝试使用地址来访问服务器。


    注意:

    如果 /etc/resolv.conf 已经存在于节点上,只需添加在上例中显示逻辑主机名的第一个项。 项的顺序确定了 DNS 尝试访问服务器的顺序。


  8. 在所有群集节点上,编辑 /etc/inet/hosts 文件以为 DNS 服务的网络资源创建一个项。

    在下例中,执行这些步骤。

    • IPaddress 变量替换为实际 IP 地址,例如 129.146.87.53

    • logical-hostname 变量替换为实际网络资源(逻辑主机名或共享地址)。


    127.0.0.1						localhost
    IPaddress						logical-hostname
    
  9. 在所有群集节点上,编辑 /etc/nsswitch.conf 文件以将字符串 dns 添加到 hosts 项,位于 clusterfiles 之后。

    示例:


    hosts:		 	cluster files dns
  10. 在所有群集节点上,测试 DNS。

    下例说明了如何测试 DNS。


    # /usr/sbin/in.named -c /global/dns/named.conf
    # nslookup phys-schost-1
    
  11. 在所有群集节点上,停止 DNS。

    请确保先停止 in.named 可执行文件,然后再继续进行操作。


    # pkill -x in.named
    

从此处可转到何处

如果您在 Sun Cluster 安装期间安装了 Sun Cluster HA for DNS 软件包,请转到注册和配置 Sun Cluster HA for DNS。 否则,请转到安装 Sun Cluster HA for DNS 软件包

安装 Sun Cluster HA for DNS 软件包

如果未在 Sun Cluster 初始安装期间安装 Sun Cluster HA for Domain Name Service (DNS) 软件包,请执行此过程以安装该软件包。 在要安装 Sun Cluster HA for Domain Name Service (DNS) 软件包的每个群集节点上执行此过程。 必需使用 Sun Java Enterprise System Accessory CD Volume 3 才能完成此过程。

如果要同时安装多个数据服务,请执行Sun Cluster 软件安装指南(适用于 Solaris OS)》中的“安装软件”中的过程。

请使用以下安装工具之一来安装 Sun Cluster HA for Domain Name Service (DNS) 软件包:


注意:

在早于 Sun Cluster 3.1 数据服务 10/03 的发行版中提供 Web Start 程序。


如何使用 Web Start 程序安装 Sun Cluster HA for DNS 软件包

您可以使用命令行界面 (CLI) 或图形用户界面 (GUI) 运行 Web Start 程序。 CLI 和 GUI 中指令的内容和顺序类似。 有关 Web Start 程序的详细信息,请参阅 installer(1M) 手册页。

  1. 在要安装 Sun Cluster HA for Domain Name Service (DNS) 软件包的群集节点上成为超级用户。

  2. (可选的) 如果要使用 GUI 运行 Web Start 程序,请确保已设置 DISPLAY 环境变量。

  3. 将 Sun Java Enterprise System Accessory CD Volume 3 放入 CD-ROM 驱动器。

    如果卷管理守护程序 vold(1M) 正在运行并配置为管理 CD-ROM 设备,它将自动将 CD-ROM 装载到 /cdrom/cdrom0 目录中。

  4. 更改到 CD-ROM 的 Sun Cluster HA for Domain Name Service (DNS) 组件目录。

    用于 Sun Cluster HA for Domain Name Service (DNS) 数据服务的 Web Start 程序位于此目录中。


    # cd /cdrom/cdrom0/\
    components/SunCluster_HA_DNS_3.1
    
  5. 启动 Web Start 程序。


    # ./installer
    
  6. 系统提示时,选择安装类型。

    • 要仅安装 C 语言环境,请选择“典型”。

    • 要安装其它语言环境,请选择“定制”。

  7. 按照屏幕上的说明在节点上安装 Sun Cluster HA for Domain Name Service (DNS) 软件包。

    完成安装后,Web Start 程序将提供安装摘要。 此摘要使您可以查看 Web Start 程序在安装期间创建的日志。 这些日志位于 /var/sadm/install/logs 目录中。

  8. 退出 Web Start 程序。

  9. 从 CD-ROM 驱动器中取出 Sun Java Enterprise System Accessory CD Volume 3。

    1. 为确保没有在使用 CD-ROM,请将目录更改为 CD-ROM 中的目录。

    2. 弹出 CD-ROM。


      # eject cdrom
      

从此处可转到何处

请参见注册和配置 Sun Cluster HA for DNS以注册 Sun Cluster HA for DNS 并配置数据服务的群集。

如何使用 scinstall 公用程序安装 Sun Cluster HA for DNS 软件包

本节介绍了如何使用 scinstall 公用程序安装 Sun Cluster HA for DNS 软件包。

  1. 将 Sun Java Enterprise System Accessory CD Volume 3 放入 CD-ROM 驱动器。

  2. 运行 scinstall 公用程序(不使用任何选项)。

    此步骤将以交互模式启动 scinstall 公用程序。

  3. 选择菜单选项“将新数据服务的支持添加到此群集节点”。

    scinstall 公用程序将提示您输入其它信息。

  4. 提供 Sun Java Enterprise System Accessory CD Volume 3 的路径。

    公用程序将使用此数据服务“CD”。

  5. 指定要安装的数据服务。

    scinstall 公用程序将列出您选定的数据服务,并要求您确认选择。

  6. 退出 scinstall 公用程序。

  7. 从驱动器中取出 CD。

从此处可转到何处

请参见注册和配置 Sun Cluster HA for DNS以注册 Sun Cluster HA for DNS 并配置数据服务的群集。

注册和配置 Sun Cluster HA for DNS

此过程介绍了如何使用 scrgadm(1M) 命令注册和配置 Sun Cluster HA for DNS。


注意:

通过其它选项也可以注册和配置数据服务。 有关这些选项的详细信息,请参阅 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的 “Tools for Data Service Resource Administration”


如何注册和配置 Sun Cluster HA for DNS

本节介绍了如何注册和配置 Sun Cluster HA for DNS。

要执行此过程,您需要以下配置信息。


注意:

在任一群集成员上执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 注册数据服务的资源类型。


    # scrgadm -a -t SUNW.dns
    
    -a

    添加数据服务资源类型。

    -t SUNW.dns

    为数据服务指定预定义的资源类型名称。

  3. 创建网络和 DNS 资源要使用的资源组。

    您可以使用 -h 选项任意选择可用于运行数据服务的节点集。


    # scrgadm -a -g resource-group [-h nodelist]
    -g resource-group

    指定资源组的名称。 您可以选择此名称,但该名称对于群集中的资源组必须唯一。

    [-h nodelist]

    指定一个可选的、用逗号分隔的物理节点名称或 ID 的列表,这些节点名称或 ID 标识潜在的主节点。 此处的顺序确定了在故障切换过程中将节点选为主节点的顺序。


    注意:

    使用 -h 选项可以指定节点列表的顺序。 如果所有群集节点都是潜在的主节点,则不必使用 -h 选项。


  4. 检验是否已将您要使用的所有网络资源都添加到了名称服务数据库中。

    在 Sun Cluster 的安装过程中应该已经执行了此项检验。 有关详细信息,请参见《Sun Cluster 软件安装指南 (适用于 Solaris OS)》中的规划一章。


    注意:

    为避免因名称服务查找而出现任何故障,请检验所有的网络资源是否都存在于服务器和客户机的 /etc/inet/hosts 文件中。 在服务器的 /etc/nsswitch.conf 文件中配置名称服务映射,以在尝试访问 NIS 或 NIS+ 之前先检查本地文件。


  5. 将网络资源添加到资源组。

    例如,运行以下命令将逻辑主机名添加到资源组。


    # scrgadm -a -L -g resource-group -l logical-hostname [logical-hostname] \
    [-n netiflist]
    -l logical-hostname

    指定一个用逗号分隔的网络资源(逻辑主机名或共享地址)的列表。

    -n netiflist

    指定一个可选的、用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理 组。 netiflist 中的每个元素的格式必须为 netif@nodenetif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。 节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1sc_ipmp@phys-schost-1


    注意:

    Sun Cluster 目前不支持将适配器名称用作 netif


  6. 将 DNS 应用程序资源添加到资源组。


    # scrgadm -a -j [resource] -g resource-group \
    -t SUNW.dns -y Network_resources_used=network-resource, …\
    -y Port_list=port-number/protocol -x DNS_mode=config-file \ 
    -x Confdir_list=config-directory
    
    -j resource

    指定 DNS 应用程序资源名称。

    -t SUNW.dns

    指定此资源所属的资源类型的名称。 此项是必需的。

    -y Network_resources_used =network-resource, …

    指定一个用逗号分隔的、DNS 要使用的网络资源(逻辑主机名或共享地址)的列表。 如果未指定此特性,则缺省值为资源组中包含的所有网络资源。

    -y Port_list =port-number/protocol

    指定要使用的端口号和协议。 如果未指定此特性,则缺省值为 53/udp

    -x DNS_mode =config-file

    指定要使用的配置文件 confnamed.conf 文件)或 bootnamed.boot 文件)。 如果未指定此特性,则缺省值为 conf

    -x Confdir_list =config-directory

    指定 DNS 配置目录,该目录必须位于群集系统文件中。 Sun Cluster HA for DNS 需要此扩展特性。

  7. 运行 scswitch(1M) 命令以完成以下任务。

    • 启用资源和故障监视。

    • 将资源组转入被管理状态。

    • 使资源组联机。


    # scswitch -Z -g resource-group
    
    -Z

    启用资源和监视器,将资源组转入被管理状态,并使资源组联机。

    -g resource-group

    指定资源组的名称。

示例 – 注册故障切换 Sun Cluster HA for DNS

下例说明了如何在双节点群集中注册 Sun Cluster HA for DNS。 请注意,末尾处的 scswitch 命令用于启动 Sun Cluster HA for DNS。


Cluster Information
Node names: phys-schost-1, phys-schost-2
Logical hostname: schost-1
Resource group: resource-group-1 (for all of the resources), 
Resources: schost-1 (logical hostname), dns-1 (DNS application
    resource)

(Register the DNS resource type.)
# scrgadm -a -t SUNW.dns
 
(Add the resource group to contain all of the resources.)
# scrgadm -a -g resource-group-1
 
(Add the logical hostname resource to the resource group.)
# scrgadm -a -L -g resource-group-1 -l schost-1 
 
(Add DNS application resources to the resource group.)
# scrgadm -a -j dns-1 -g resource-group-1 -t SUNW.dns \
-y Network_resources_used=schost-1 -y Port_list=53/udp \
-x DNS_mode=conf -x Confdir_list=/global/dns
 
(Bring the failover resource group online.)
# scswitch -Z -g resource-group-1

如何配置 SUNW.HAStoragePlus 资源类型

SUNW.HAStoragePlus 资源类型是在 Sun Cluster 3.0 5/02 中引入的。这种新的资源类型与 SUNW.HAStorage 的功能相同,并在 HA storage 和 Sun Cluster HA for NFS 之间同步操作。 SUNW.HAStoragePlus 还具备使本地文件系统具有高可用性的附加功能。 Sun Cluster HA for DNS 不是磁盘密集型程序,并且不可伸缩,因此设置 SUNW.HAStoragePlus 资源类型是可选的。

有关背景信息,请参阅 SUNW.HAStoragePlus(5) 手册页和 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》 中的 “Relationship Between Resource Groups and Disk Device Groups”。 有关过程,请参阅 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的 “Synchronizing the Startups Between Resource Groups and Disk Device Groups”。 (如果您使用的是 5/02 之前的 Sun Cluster 3.0 版本,则必须设置 SUNW.HAStorage 而不是 SUNW.HAStoragePlus。 有关过程,请参阅 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的 “Synchronizing the Startups Between Resource Groups and Disk Device Groups”。)

检验数据服务的安装和配置

要检验是否已正确安装并配置了 Sun Cluster HA for DNS,请在如何注册和配置 Sun Cluster HA for DNS过程完成后运行以下命令。


# nslookup logical-hostname logical-hostname

在此例中,logical-hostname 是您已经配置为服务于 DNS 请求的网络资源的名称。例如,上一个注册示例中所示的 schost-1。 输出应该表明您指定的网络资源应答(服务)了查询。

配置 Sun Cluster HA for DNS 扩展特性

创建 DNS 资源唯一必需的扩展特性是 Confdir_list 特性。 通常,在创建 DNS 资源时使用命令行 scrgadm -x parameter=value 来配置扩展特性。 您以后还可以使用 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》 的 “Administering Data Service Resources” 中的过程来配置这些特性。

有关所有 Sun Cluster 特性的详细信息,请参阅 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》 中的 “Standard Properties”

表 1–2 介绍了 Sun Cluster HA for DNS 扩展特性。 您可以动态地更新某些扩展特性。 但是,您只有在创建资源时才可以更新其它特性。 “可调”条目说明何时可以更新该特性。

表 1–2 Sun Cluster HA for DNS 扩展特性

名称/数据类型 

说明 

Confdir_list(字符串数组)

DNS 配置目录,其中包含 DNS 实例的配置文件。 

缺省值:

范围:

可调: 创建时

DNS_mode

要使用的 DNS 配置文件 confnamed.conf 文件)或 bootnamed.boot 文件)。

缺省值: conf

范围:

可调:创建时

Monitor_retry_count(整数)

Monitor_retry_interval 特性指定的时间窗口中进程监视工具 (PMF) 重新启动故障监视器的次数。 此特性指的是重新启动故障监视器本身(而不是资源)。 系统定义的特性 Retry_intervalRetry_count 用于控制资源的重新启动。

缺省值: 4

范围:02,147,483,641

–1 表示重试无限次。

可调:任何时候

Monitor_retry_interval(整数)

记录故障监视器失败次数的时间段(以分钟为单位)。 如果故障监视器的失败次数超过了扩展特性 Monitor_retry_count 在此时间段中指定的值,则 PMF 不会重新启动故障监视器。

缺省值: 2

范围: 02,147,483,641

–1 表示重试时间间隔无限长。

可调:任何时候

Probe_timeout(整数)

故障监视器用于探测 DNS 实例的超时值(以秒为单位)。 

缺省值: 120

范围:02,147,483,641

可调:任何时候

Sun Cluster HA for DNS 故障监视器的操作

探测将使用 nslookup 命令查询 DNS 的运行状况。 在探测实际查询 DNS 服务器之前,需要进行检查以确认已经在与 DNS 数据服务相同的资源组中配置了网络资源。 如果没有配置任何网络资源,系统将记录一条错误消息,并且探测将以失败退出。

探测将执行以下步骤。

  1. 使用资源特性 Probe_timeout 指定的超时值运行 nslookup 命令。

    nslookup 命令的结果可以是失败或成功。 如果 DNS 成功地回复了 nslookup 查询,探测将返回其无限循环,等待下一个探测时间。

    如果 nslookup 失败,探测将视此种情况为 DNS 数据服务的失败,并将其记录在历史记录中。 DNS 探测将每次失败都视为完全失败。

  2. 基于成功/失败的历史记录,失败会导致本地重新启动或数据服务的故障切换。 在 Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》 中的 “Sun Cluster Data Service Fault Monitors” 中进一步介绍了此操作。