A.4 安装和配置

本节将提供有关在高可用性环境中安装和配置 Sentinel 的步骤。每个步骤都描述了常规方法,然后引用了演示设置,其中记录了示范群集解决方案的细节。您可以使用本文档中未列出的其他选项或技术,但要受部分 A.2, 可支持性中所述限制的约束。

下图显示了主动-被动高可用性体系结构:

A.4.1 初始设置

按照针对 Sentinel 记录的要求以及本地客户要求,配置计算机硬件、网络硬件、储存硬件、操作系统、用户帐户和其他基本系统资源。测试系统以确保其运行正常且稳定。

  • 作为最佳实践,应该将所有群集节点的时间同步,您可以使用 NTP 或类似的技术实现此目的。

  • 群集将要求提供可靠的主机名解析。作为最佳实践,您可能需要将所有内部群集主机名输入到 /etc/hosts 文件中,以确保在发生 DNS 故障时群集能够持续工作。如果任一群集节点无法按名称解析所有其他节点,则本节中所述的群集配置将会失败。

  • 每个群集节点的 CPU、RAM 和磁盘空间特征必须满足部分 5.0, 满足系统要求中根据预期事件率定义的系统要求。

  • 储存节点的磁盘空间和 I/O 特征必须满足部分 5.0, 满足系统要求中根据本地和/或网络储存的预期事件率和数据保留策略定义的系统要求。

  • 如果您要配置操作系统防火墙以限制对 Sentinel 和群集的访问,请参考部分 7.0, 使用的端口,以了解必须根据本地配置以及要发送事件数据的源提供的端口的细节。

本示范解决方案将使用以下配置:

  • 两个 SUSE Linux 11 SP2 群集节点 VM

    • 操作系统安装不需要安装 X Windows,但如果需要 GUI 配置,则可以安装 X Windows。引导脚本可设置为在不使用 X 的情况下启动(运行级别为 3),这样便可做到只在需要时才启动该脚本。

    • 节点将包含两个 NIC:一个用于外部访问,而另一个用于 iSCSI 通讯。

    • 使用可用于通过 SSH 或类似协议远程访问的 IP 地址配置外部 NIC。在本示例中,我们将使用 172.16.0.1 (node01) 和 172.16.0.2 (node02)。

    • 每个节点都应该为操作系统、Sentinel 二进制文件和配置数据、群集软件、临时空间等提供足够的磁盘空间。请参见 SUSE Linux 和 SLE HAE 系统要求,以及 Sentinel 应用程序要求。

  • 一个将 iSCSI 目标配置为共享储存的 SUSE Linux 11 SP2 VM

    • 操作系统安装不需要安装 X Windows,但如果需要 GUI 配置,则可以安装 X Windows。引导脚本可设置为在不使用 X 的情况下启动(运行级别为 3),这样便可做到只在需要时才启动该脚本。

    • 系统将包含两个 NIC:一个用于外部访问,而另一个用于 iSCSI 通讯。

    • 使用可用于通过 SSH 或类似协议远程访问的 IP 地址配置外部 NIC。在本示例中,我们将使用 172.16.0.3 (storage03)。

    • 系统应该为操作系统和临时空间提供足够的空间,为共享储存提供大量的空间来保存 Sentinel 数据,并为 SBD 分区提供少量的空间。请参见 SUSE Linux 系统要求,以及 Sentinel 事件数据储存要求。在本示范解决方案中,我们会将所有数据(本地、网络、SBD)放置在单个磁盘上;但在生产部署中,可以将它们分配到不同的节点。

注:在生产群集中,您可以在单独的 NIC(也可能是用于实现冗余的一对 NIC)上使用不可路由的内部 IP 进行内部群集通讯。

A.4.2 共享储存设置

设置您的共享储存,并确保能够将它装入每个群集节点。如果您在使用 FibreChannel 和 SAN,这可能会涉及到物理连接和其他配置。共享储存将用于保存 Sentinel 的数据库和事件数据,因此,必须根据预期事件率和数据保留策略,针对客户环境相应调整共享储存的大小。

典型的实现可能会使用通过 FibreChannel 连接到所有群集节点的高速 SAN,并使用一个大型 RAID 阵列储存本地事件数据。可以将单独的 NAS 或 iSCSI 节点用于速度较慢的网络储存。只要群集节点可以像普通的块设备那样装入本地储存,就能供解决方案使用。网络储存也可以作为块设备装入,或者可能是 NFS 或 CIFS 卷。

注:您应该配置共享储存,并在每个群集节点上进行测试性装入,但是,储存的实际装入将由群集配置来处理。

在本示范解决方案中,我们将使用由 SUSE Linux VM 托管的 iSCSI 目标:

本示范解决方案将使用 SUSE Linux VM 上配置的 iSCSI 目标。该 VM 是初始设置中列出的 storage03。iSCSI 设备可使用任何文件或块设备进行创建,但为简单起见,我们这里将使用专为此目的创建的文件。

连接到 storage03 并启动控制台会话。使用 dd 命令为 Sentinel 本地储存创建一个任意所需大小的空文件:

dd if=/dev/zero of=/localdata count=10240000 bs=1024

在本例中,我们创建了一个用零(从 /dev/zero pseudo-device 复制)填充的 10GB 文件。请参见 dd 的信息或手册页,以了解有关命令行选项的细节。例如,您可以创建不同大小的“磁盘”。iSCSI 目标将此文件视为磁盘;当然,如果您愿意的话,可以使用实际的磁盘。

重复此过程为网络储存创建文件:

dd if=/dev/zero of=/networkdata count=10240000 bs=1024

在本示例中,我们使用了两个大小与性能特征相同的文件(“磁盘”)。在生产部署中,您可以将本地储存放置在高速 SAN 上,而将网络储存放置在速度较慢的 iSCSI、NFS 或 CIFS 卷上。

将这些文件配置为 iSCSI 目标:

  1. 从命令行(如果您愿意,可以使用 GUI)运行 YaST:/sbin/yast

  2. 选择 Network Devices(网络设备)> Network Settings(网络设置)。

  3. 确保已选择概述选项卡。

  4. 从显示的列表中选择辅助 NIC,然后按 Tab 切换到“编辑”并按 Enter。

  5. 在地址选项卡上,指派静态 IP 地址 10.0.0.3。这将是内部 iSCSI 通讯 IP。

  6. 单击下一步,然后单击确定。

  7. 在主屏幕上,选择网络服务 > iSCSI 目标。

  8. 出现提示时,请从 SUSE Linux 11 SP2 媒体安装所需的软件 (iscsitarget RPM)。

  9. 单击服务,选择引导时选项,以确保在引导操作系统时启动该服务。

  10. 单击全局,然后选择无鉴定,因为 iSCSI 的当前 OCF 资源代理不支持鉴定。

  11. 单击目标,然后单击添加以添加新目标。

    iSCSI 目标将自动生成 ID,然后显示可用 LUN(驱动器)的空列表。

  12. 单击添加以添加新的 LUN。

  13. 将 LUN 编号保留为 0,然后在路径对话框中浏览(在 Type=fileio 下面),并选择已创建的 /localdata 文件。如果您将专用磁盘用于储存,请指定块设备,例如 /dev/sdc。

  14. 重复步骤 12 至步骤 13,并在这次添加 LUN 1 和 /networkdata。

  15. 将其他选项保留为默认值。单击确定,然后单击下一步。

  16. 再次单击下一步,以选择默认鉴定选项,然后单击完成以退出配置。当系统请求重启动 iSCSI 时接受请求。

  17. 退出 YaST。

以上过程在 IP 地址为 10.0.0.3 的服务器上公开了两个 iSCSI 目标。在每个群集节点上,请确保该节点能够装入本地数据共享储存设备。另外,还必须格式化该设备(一次):

  1. 连接到其中一个群集节点 (node01) 并启动 YaST。

  2. 选择 Network Devices(网络设备)> Network Settings(网络设置)。

  3. 确保已选择概述选项卡。

  4. 从显示的列表中选择辅助 NIC,然后按 Tab 切换到“编辑”并按 Enter。

  5. 单击地址,指派静态 IP 地址 10.0.0.1。这将是内部 iSCSI 通讯 IP。

  6. 选择下一步,然后单击确定。

  7. 单击网络服务 > iSCSI 发起程序。

  8. 出现提示时,请从 SUSE Linux 11 SP2 媒体安装所需的软件 (open-iscsi RPM)。

  9. 单击服务,选择引导时,以确保在引导时启动 iSCSI 服务。

  10. 单击已发现的目标,然后选择发现。

  11. 指定 iSCSI IP 地址 (10.0.0.3),选择无鉴定,然后单击下一步。

  12. 选择 IP 地址为 10.0.0.3 的已发现 iSCSI 目标,然后选择登录。

  13. 切换到启动下拉列表中的“自动”,并选择无鉴定,然后单击下一步。

  14. 切换到已连接的目标选项卡,以确保连接到目标。

  15. 退出配置。此时,iSCSI 目标应该已作为块设备装入群集节点上。

  16. 在 YaST 主菜单中,选择系统 > 分区程序。

  17. 在系统视图中,列表中应该会显示新的硬盘(例如 /dev/sdb 和 /dev/sdc),它们将属于 IET-VIRTUAL-DISK 类型。按 Tab 切换到列表中的第一项(应该是本地储存),并选择该磁盘,然后按 Enter。

  18. 选择添加以将新分区添加到空磁盘。将该磁盘格式化为 ext3 主分区,但不要装入它。确保已选择“不要装入分区”选项。

  19. 选择下一步,然后在查看要做的更改后选择完成。假定您要在此共享 iSCSI LUN 上创建单个大型分区,则最终应生成 /dev/sdb1 或类似的已格式化磁盘(下面称为 /dev/<SHARED1>)。

  20. 返回到分区程序,并针对 /dev/sdc 或与网络储存对应的任意块设备重复分区/格式化过程(步骤 16 至步骤 19)。这应该会生成 /dev/sdc1 分区或类似的已格式化磁盘(下面称为 /dev/<NETWORK1>)。

  21. 退出 YaST。

  22. 最后,根据如下所述创建一个安装点,并对本地分区进行测试性装入(确切的设备名称取决于特定的实现):

    # mkdir /var/opt/novell
    # mount /dev/<SHARED1> /var/opt/novell
    
  23. 应该能够在新分区上创建文件,并在装入该分区的任何位置看到这些文件。

    要卸载,请执行以下操作:

    # umount /var/opt/novell
    

重复上述过程中的步骤 1 至步骤 15,以确保每个群集节点都能够装入本地共享储存。但是,请将步骤 5 中的节点 IP 替换为其他 IP(例如,node02 > 10.0.0.2)。

A.4.3 Sentinel 安装

可以使用两个选项安装 Sentinel:将 Sentinel 的任何部分都安装到共享储存中(使用 --location 选项将 Sentinel 安装重定向到已装入共享储存的任何位置),或者只将可变应用程序数据放置在共享储存中。

在此示范解决方案中,我们将采用后一种方法,将 Sentinel 安装到可以托管 Sentinel 的每个群集节点上。在首次安装 Sentinel 时,我们将会执行完整安装,包括应用程序二进制文件、配置和所有数据储存区。在其他群集节点上执行后续安装时,只会安装应用程序,并假定在以后的某个时间(例如,在装入共享储存后)提供实际的 Sentinel 数据。

示范解决方案:

在此示范解决方案中,我们将 Sentinel 安装到每个群集节点,同时只在共享储存上储存可变应用程序数据。这会将应用程序二进制文件和配置保留在标准位置,使我们能够校验 RPM,并在特定的情况下支持热增补。

在第一个节点上安装

  1. 连接到其中一个群集节点 (node01) 并打开控制台窗口。

  2. 下载 Sentinel 安装程序(tar.gz 文件),并将其储存在群集节点上的 /tmp 中。

  3. 执行以下命令:

    mount /dev/<SHARED1> /var/opt/novell
    
    cd /tmp
    
    tar -xvzf sentinel_server*.tar.gz
    
    cd sentinel_server*
    
    ./install-sentinel --record-unattended=/tmp/install.props
    
  1. 完成整个标准安装,并根据需要配置产品。安装程序将会安装二进制文件、配置和数据库,并设置用户名/口令和网络端口。

  2. 启动 Sentinel 并测试基本功能。您可以使用标准的外部群集节点 IP 访问本产品。

  3. 关闭 Sentinel 并卸下共享储存:

    rcsentinel stop
    
    umount /var/opt/novell
    

    此步骤将去除自动启动脚本,使群集可以管理产品。

    cd /
    
    insserv -r sentinel
    

在后续节点上安装

在其他节点上重复安装:

初始 Sentinel 安装程序将创建一个用户帐户供本产品使用,该用户帐户在安装时使用下一个可用的用户 ID。在无人照管模式下执行后续安装时,将尝试使用相同的用户 ID 创建帐户,但确实存在冲突的可能性(如果群集节点在安装时不相同)。强烈建议执行以下操作之一:

  • 跨群集节点同步用户帐户数据库(通过 LDAP 或类似的程序手动同步),确保在执行后续安装之前进行同步。在此情况下,安装程序将检测用户帐户是否存在,并使用现有的用户帐户。

  • 观察后续无人照管安装的输出 - 如果无法使用相同的用户 ID 创建用户帐户,将会发出警告。

  1. 连接到每个附加的群集节点 (node02) 并打开控制台窗口。

  2. 执行以下命令:

    cd /tmp
    
    scp root@node01:/tmp/sentinel_server*.tar.gz
    
    scp root@node01:/tmp/install.props
    
    tar -xvzf sentinel_server*.tar.gz
    
    ./install-sentinel --no-start --cluster-node --unattended=/tmp/install.props
    
    cd /
    
    insserv -r sentinel
    

在此过程结束时,Sentinel 应已安装在所有节点上,但在同步各个密钥之前(在配置群集资源时会执行这种同步),它有可能无法正常工作。

A.4.4 群集安装

在每个节点上安装群集软件,并使用群集管理器注册每个群集节点。此操作的执行过程因群集实现而异,但在过程结束时,每个群集节点应出现在群集管理控制台中。

在我们的示范解决方案中,我们将设置 SUSE Linux High Availability Extension,并使用 Sentinel 特定的资源代理将它覆盖:

如果您不使用 OCF 资源代理监视 Sentinel,则可能需要为本地群集环境开发一个类似的监视解决方案。Sentinel 的 OCF 资源代理是一个简单的外壳脚本,它可以运行各种检查,以校验 Sentinel 是否正常工作。如果您想要开发自己的解决方案,则应该研究现有的资源代理并以此为例(资源代理储存在 Sentinel 下载包中的 sentinel-ha.rpm 内。)

有许多方法可用于配置 SLE HAE 群集,但我们将选择可以十分简单地完成配置的选项。第一步是安装核心 SLE HAE 软件;SLE HAE 文档中详尽地介绍了相关过程。有关安装 SLES 外接式附件的信息,请参见《部署指南》。

必须在所有群集节点(在我们的示例中为 node01 和 node02)上安装 SLE HAE。外接式附件将安装核心群集管理和通讯软件,以及用于监视群集资源的许多资源代理。

在安装群集软件后,应安装一个附加的 RPM,以提供 Sentinel 特定的附加群集资源代理。该 RPM 可以在安装产品时解压的正常 Sentinel 下载包中储存的 novell-Sentinel-ha-7.1*.rpm 内找到。

在每个群集节点上,将 novell-Sentinel-ha-7.1*.rpm 复制到 /tmp 目录中,然后执行以下命令:

cd /tmp
rpm -i novell-Sentinel-ha-7.1*.rpm

A.4.5 群集配置

您必须配置群集软件,以便将每个群集节点注册为群集的成员。作为此配置的一部分,您还可以设置隔离和 STONITH 资源,以确保群集的一致性。

我们的示范解决方案基本上使用了不包含附加冗余或其他高级功能的最简单配置。我们还使用了单播地址(而不是首选的多播地址),因为它要求的与网络管理员之间的交互更少,并且足以用于实现测试目的。我们还设置了一个基于 SBD 的简单隔离资源。

示范解决方案:

本示范解决方案将使用私用 IP 地址进行内部群集通讯,并使用单播地址最大程度地减少从网络管理员请求多播地址的需要。本解决方案还将使用托管共享储存的同一个 SUSE Linux VM 上配置的 iSCSI 目标,以用作实现隔离目的的 SBD 设备。如前所述,iSCSI 设备可使用任何文件或块设备进行创建,但为简单起见,我们这里将使用专为此目的创建的文件。

以下配置步骤与“共享储存设置”中的步骤非常相似:

SBD 设置

连接到 storage03 并启动控制台会话。使用 dd 命令创建一个任意所需大小的空文件:

dd if=/dev/zero of=/sbd count=1024 bs=1024

在本例中,我们创建了一个用零(从 /dev/zero pseudo-device 复制)填充的 1MB 文件。

将该文件配置为 iSCSI 目标:

  1. 从命令行(如果您愿意,可以使用 GUI)运行 YaST:/sbin/yast

  2. 选择网络服务 > iSCSI 目标。

  3. 单击目标并选择现有目标。

  4. 选择编辑。UI 将显示可用 LUN(驱动器)的列表。

  5. 选择添加以添加新的 LUN。

  6. 将 LUN 编号保留为 2。在路径对话框中浏览,并选择已创建的 /sbd 文件。

  7. 将其他选项保留为默认值,依次选择确定和下一步,然后再次单击下一步,以选择默认的鉴定选项。

  8. 单击完成以退出配置。根据需要重启动服务。退出 YaST。

注:以下步骤要求每个群集节点都能够解析所有其他群集节点的主机名(否则,文件同步服务 csync2 将会失败)。如果 DNS 未设置或不可用,请在列出每个 IP 及其主机名(由 hostname 命令报告)的 /etc/hosts 文件中添加每个主机的项。

此过程应会在 IP 地址为 10.0.0.3 的服务器上公开 SBD 设备的 iSCSI 目标 (storage03)。

节点配置

连接到群集节点 (node01) 并打开控制台:

  1. 运行 YaST.

  2. 打开网络服务 > iSCSI 发起程序。

  3. 选择已连接的目标,然后选择您在前面配置的 iSCSI 目标。

  4. 选择注销选项,并从目标中注销。

  5. 切换到已发现的目标选项卡,选择目标,然后重新登录以刷新设备列表(保留自动启动选项和“无鉴定”)。

  6. 选择确定以退出 iSCSI 发起程序工具。

  7. 打开系统 > 分区程序,然后将 SBD 设备标识为 1MB IET-VIRTUAL-DISK。该设备将以 /dev/sdd 或类似的形式列出 - 请记下具体的标识。

  8. 退出 YaST。

  9. 执行命令 ls -l /dev/disk/by-id/,并记下已链接到您前面找到的设备名称的设备 ID。

  10. 执行命令 sleha-init。

  11. 当系统提示您提供要绑定到的网络地址时,请指定外部 NIC IP (172.16.0.1)。

  12. 接受默认的多播地址和端口。稍后我们将覆盖这些信息。

  13. 输入“y”以启用 SBD,然后指定 /dev/disk/by-id/<设备 ID>,其中,<设备 ID> 是您前面找到的 ID(可以使用 Tab 键自动填写路径)。

  14. 完成向导并确保未报告任何错误。

  15. 启动 YaST。

  16. 选择高可用性 > 群集(在某些系统上只需直接选择“群集”)。

  17. 在左侧的框中,确保已选择通讯通道。

  18. 按 Tab 切换到配置的首行,并将所选的 udp 更改为 udpu(这会禁用多播并选择单播)。

  19. 选择添加成员地址并指定此节点 (172.16.0.1),然后重复此步骤并添加其他群集节点:172.16.0.2。

  20. 选择完成以完成配置。

  21. 退出 YaST。

  22. 运行命令 /etc/rc.d/openais restart,以使用新的同步协议重启动群集服务。

连接到每个附加的群集节点 (node02) 并打开控制台:

  1. 运行以下命令:sleha-join

  2. 输入第一个群集节点的 IP 地址。

在某些情况下,群集通讯无法正常初始化。如果群集无法启动(openais 服务无法启动),请执行以下操作:

  • 手动将 corosync.conf 从 node1 复制到 node02,或者在 node 1 上运行 csync2 -x -v,或者通过 YaST 在 node02 上手动设置群集。

  • 在 node02 上运行 /etc/rc.d/openais start

在某些情况下,xinetd 服务无法正常添加新的 csync2 服务可能会导致脚本失败。为了使其他节点能够将群集配置文件一直同步到此节点,需要此服务。如果显示诸如 csync2 运行失败之类的错误,则表明您可能遇到此问题。要修复此问题,请执行 kill -HUP `cat /var/run/xinetd.init.pid,然后重新运行 sleha-join 脚本。

此时,您应该能够在每个群集节点上运行 crm_mon,并发现群集在正常运行。或者,您可以使用 Web 控制台“hawk”- 默认的登录身份凭证为“hacluster/linux”。

对于此示例,我们需要稍微调整两个附加参数;这些调整是否适用于客户的生产群集将取决于其群集的配置:

  1. 将全局群集选项 no-quorum-policy 设置为 ignore。我们之所以执行此操作,原因在于我们只有一个双节点群集,因此,任何一个节点发生故障都会破坏仲裁,并关闭整个群集:crm configure property no-quorum-policy=ignore

    注:如果您的群集具有两个以上的节点,请不要设置此选项。

  2. 将全局群集选项 default-resource-stickiness 设置为 1。这会促使资源管理器将资源保持为就地运行,而不是将它们移动到其他位置:crm configure property default-resource-stickiness=1。

A.4.6 资源配置

如“群集安装”中所述,此解决方案提供了一个 OCF 资源代理,用于监视 SLE HAE 下的核心服务,您可以根据需要创建替代的资源代理。该软件还依赖于其他多个资源,这些资源的资源代理默认为随 SLE HAE 一起提供。如果您不想要使用 SLE HAE,则需要使用其他某种技术监视这些附加资源:

  • 与该软件所用的共享储存对应的文件系统资源。

  • 与用来访问服务的虚拟 IP 对应的 IP 地址资源。

  • 该软件用来储存配置和事件元数据的 Postgres 数据库软件。

还有其他一些资源,例如用于安全智能的 MongoDB,以及 ActiveMQ 讯息总线;至少目前可将这些资源作为核心服务的一部分进行监视。

示范解决方案

本示范解决方案使用所需资源的简单版本,例如简单的文件系统资源代理。您可以根据需要选择使用更复杂的群集资源,例如 cLVM(文件系统的逻辑卷版本)。

本示范解决方案提供了 crm 脚本,用于帮助完成群集配置。该脚本将从安装 Sentinel 的过程中生成的无人照管安装文件提取相关的配置变量。如果您未生成安装文件,或者想要更改资源的配置,则可以相应地编辑该脚本。

连接到安装了 Sentinel 的原始节点(这必须是您在其上运行完全 Sentinel 安装的节点),然后执行以下操作(<SHARED1> 是您前面创建的共享卷):

mount /dev/<SHARED1> /var/opt/novell
cd /usr/lib/ocf/resource.d/novell
./install-resources.sh

群集中出现的新资源可能有问题;如果遇到此问题,请在 node02 上运行 /etc/rc.d/openais restart。

install-resources.sh 脚本将提示您提供两个值(即您希望用户在访问 Sentinel 时使用的虚拟 IP,以及共享储存的设备名称),然后将自动创建所需的群集资源。请注意,脚本要求已装入共享卷,并要求在安装 Sentinel 的过程中创建的无人照管安装文件 (/tmp/install.props) 存在。您只需要在第一个已安装的节点上运行此脚本;所有相关的配置文件将自动同步到其他节点。

如果客户环境与此示例解决方案不同,您可以编辑 resources.cli 文件(位于同一个目录中),并在该文件中修改基元定义。例如,本示范解决方案使用了简单的文件系统资源;您可能需要使用一个群集感知程度更高的 cLVM 资源。

在运行外壳脚本后,您可以发出 crm satus 命令,其输出应如下所示:

crm status
Last updated: Thu Jul 26 16:34:34 2012
Last change: Thu Jul 26 16:28:52 2012 by hacluster via crmd on node01
Stack: openais
Current DC: node01 - partition with quorum
Version: 1.1.6-b988976485d15cb702c9307df55512d323831a5e
2 Nodes configured, 2 expected votes
5 Resources configured.
Online: [ node01, node02 ]
stonith-sbd    (stonith:external/sbd):    Started node01
 Resource Group: sentinelgrp
     sentinelip    (ocf::heartbeat:IPaddr2):    Started node01
     sentinelfs    (ocf::heartbeat:Filesystem):    Started node01
     sentineldb    (ocf::novell:pgsql):    Started node01
     sentinelserver    (ocf::novell:sentinel):    Started node01

此时,应该已在群集中配置了相关的 Sentinel 资源。您可以在群集管理工具中检查这些资源的配置和分组方式(例如,通过运行 crm status)。

A.4.7 网络储存配置

此过程的最后一步是配置网络储存,使 Sentinel 能够将事件分区迁移到更经济的储存中。这是一个可选操作,事实上,不需要像配置系统的其他部件一样,将网络储存配置为高度可用 - 您可以使用任何目录(无论是否从 SAN 装入),或者 NFS 或 CIFS 卷。

在顶部菜单栏中单击储存,选择配置,然后选择“未配置的网络储存”下的其中一个单选按钮,以完成此设置。

示范解决方案

本示范解决方案将使用简单的 iSCSI 目标作为网络共享储存位置,这在很大程度上与本地储存的配置相同。在生产实现中,有可能会使用不同的储存技术。

使用以下过程配置网络储存以供 Sentinel 使用:

注:由于我们要为此示范解决方案使用 iSCSI 目标,因此将以用作网络储存的目录的形式装入目标。这样,我们需要以类似于配置本地储存文件系统的方式,将装入配置为文件系统资源。由于存在其他可能的差异,因此,在执行资源安装脚本的过程中未自动完成这些设置;我们需要在这里手动进行配置。

  1. 复查前面的步骤,以确定创建了哪个分区以用作网络储存(/dev/<NETWORK1>,或者类似于 /dev/sdc1 的标识)。如果需要,请创建一个可用于装入分区的空目录(例如 /var/opt/netdata)。

  2. 将网络文件系统设置为群集资源:使用 Web GUI 或运行命令:

    crm configure primitive sentinelnetfs ocf:heartbeat:Filesystem params device="/dev/<NETWORK1>" directory="<PATH>" fstype="ext3" op monitor interval=60s
    

    其中,/dev/<NETWORK1> 是在前面“共享储存设置”一节中创建的分区,而 <PATH> 是该分区可以装入到的任何本地目录。

  3. 将新资源添加到受管资源组:

     crm resource stop sentinelgrp
     crm configure delete sentinelgrp
     crm configure group sentinelgrp sentinelip sentinelfs sentinelnetfs sentineldb sentinelserver
     crm resource start sentinelgrp
    
  4. 您可以连接到当前托管资源的节点(使用 crm status 命令或 Hawk),并确保已正确装入网络储存(使用 mount 命令)。

  5. 登录到 Sentinel Web 界面。

  6. 依次选择储存和配置,然后在“未配置的网络储存”下选择 SAN(本地装入)。

  7. 键入网络储存装入到的路径,例如 /var/opt/netdata。

本示范解决方案使用了所需资源的简单版本,例如简单的文件系统资源代理 - 客户可以根据需要选择使用更复杂的群集资源,例如 cLVM(文件系统的逻辑卷版本)。