Skip to main content
BeeGFS on NetApp with E-Series Storage
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

指定通用文件节点配置

贡献者

使用组变量(group_vars)指定通用文件节点配置。

概述

应连接到所有文件节点的配置在中进行定义 group_vars/ha_cluster.yml。通常包括:

  • 有关如何连接和登录到每个文件节点的详细信息。

  • 通用网络配置。

  • 是否允许自动重新启动。

  • 应如何配置防火墙和SELinux状态。

  • 集群配置、包括警报和隔离。

  • 性能调整。

  • 常见BeeGFS服务配置。

备注 此外、还可以在各个文件节点上定义此文件中设置的选项、例如、如果使用的是混合硬件型号、或者每个节点的密码不同。单个文件节点上的配置将优先于此文件中的配置。

步骤

创建文件 group_vars/ha_cluster.yml 并按如下所示进行填充:

  1. 指示Ansible Control节点应如何向远程主机进行身份验证:

    ansible_ssh_user: root
    ansible_become_password: <PASSWORD>
    警告 尤其是在生产环境中、不要以纯文本格式存储密码。请改用Ansible Vault (请参见 "使用Ansible Vault加密内容")或 --ask-become-pass 运行攻略手册时的选项。如果 ansible_ssh_user 已为root用户、则可以选择省略 ansible_become_password
  2. 如果要在以太网或InfiniBand接口上配置静态IP (例如集群IP)、并且多个接口位于同一IP子网中(例如、ib0使用192.168.1.10/24、ib1使用192.168.1.11/24)、要使多主机支持正常工作、必须设置其他IP路由表和规则。只需按如下所示启用提供的网络接口配置挂钩:

    eseries_ip_default_hook_templates:
      - 99-multihoming.j2
  3. 部署集群时、根据存储协议的不同、可能需要重新启动节点、以便于发现远程块设备(E系列卷)或应用配置的其他方面。默认情况下、节点将在重新启动之前进行提示、但您可以通过指定以下内容来允许节点自动重新启动:

    eseries_common_allow_host_reboot: true
    1. 默认情况下、重新启动后、为确保块设备和其他服务准备就绪、Ansible将等待系统完成 default.target 将在继续部署之前访问。在某些使用NVMe/IB的情况下、此过程可能不够长、无法初始化、发现和连接到远程设备。这可能会导致自动部署过早继续并失败。为避免在使用NVMe/IB时出现这种情况、还应定义以下内容:

      eseries_common_reboot_test_command: "! systemctl status eseries_nvme_ib.service || systemctl --state=exited | grep eseries_nvme_ib.service"
  4. 要使BeeGFS和HA集群服务进行通信、需要使用多个防火墙端口。除非您要手动配置固件(不建议)、否则请指定以下内容以创建所需的防火墙区域并自动打开端口:

    beegfs_ha_firewall_configure: True
  5. 目前不支持SELinux、建议将状态设置为disabled以避免冲突(尤其是在使用RDMA时)。设置以下内容以确保SELinux已禁用:

    eseries_beegfs_ha_disable_selinux: True
    eseries_selinux_state: disabled
  6. 配置身份验证以使文件节点能够进行通信、并根据组织策略根据需要调整默认值:

    beegfs_ha_cluster_name: hacluster                  # BeeGFS HA cluster name.
    beegfs_ha_cluster_username: hacluster              # BeeGFS HA cluster username.
    beegfs_ha_cluster_password: hapassword             # BeeGFS HA cluster username's password.
    beegfs_ha_cluster_password_sha512_salt: randomSalt # BeeGFS HA cluster username's password salt.
  7. 基于 "规划文件系统" 部分指定此文件系统的BeeGFS管理IP:

    beegfs_ha_mgmtd_floating_ip: <IP ADDRESS>
    备注 虽然`冗余、但当您将BeeGFS文件系统扩展到单个HA集群之外时、`beegfs_ha_mgmtd_floating_ip非常重要。部署后续HA集群时无需额外的BeeGFS管理服务、并指向第一个集群提供的管理服务。
  8. 根据需要启用电子邮件警报:

    beegfs_ha_enable_alerts: True
    # E-mail recipient list for notifications when BeeGFS HA resources change or fail.
    beegfs_ha_alert_email_list: ["<EMAIL>"]
    # This dictionary is used to configure postfix service (/etc/postfix/main.cf) which is required to set email alerts.
    beegfs_ha_alert_conf_ha_group_options:
          # This parameter specifies the local internet domain name. This is optional when the cluster nodes have fully qualified hostnames (i.e. host.example.com)
          mydomain: <MY_DOMAIN>
    beegfs_ha_alert_verbosity: 3
    #  1) high-level node activity
    #  3) high-level node activity + fencing action information + resources (filter on X-monitor)
    #  5) high-level node activity + fencing action information + resources
  9. 强烈建议启用隔离、否则、在主节点发生故障时、可能会阻止服务在二级节点上启动。

    1. 通过指定以下内容全局启用隔离:

      beegfs_ha_cluster_crm_config_options:
        stonith-enabled: True
      1. 记下任何受支持的 "集群属性" 如果需要、也可以在此处指定。通常不需要调整这些值、因为BeeGFS HA角色具有许多经过良好测试的功能 "默认值"

    2. 接下来、选择并配置隔离代理:

      1. 选项1:要使用APC配电单元(PDU)启用隔离、请执行以下操作:

        beegfs_ha_fencing_agents:
          fence_apc:
            - ipaddr: <PDU_IP_ADDRESS>
              login: <PDU_USERNAME>
              passwd: <PDU_PASSWORD>
              pcmk_host_map: "<HOSTNAME>:<PDU_PORT>,<PDU_PORT>;<HOSTNAME>:<PDU_PORT>,<PDU_PORT>"
      2. 选项2:要使用联想XCC (及其他BMC)提供的Redffish API启用隔离:

        redfish: &redfish
          username: <BMC_USERNAME>
          password: <BMC_PASSWORD>
          ssl_insecure: 1 # If a valid SSL certificate is not available specify “1”.
        
        beegfs_ha_fencing_agents:
          fence_redfish:
            - pcmk_host_list: <HOSTNAME>
              ip: <BMC_IP>
              <<: *redfish
            - pcmk_host_list: <HOSTNAME>
              ip: <BMC_IP>
              <<: *redfish
      3. 有关配置其他隔离代理的详细信息、请参见 "RedHat文档"

  10. BeeGFS HA角色可以应用多种不同的调整参数来帮助进一步优化性能。其中包括优化内核内存利用率和块设备I/O等参数。角色附带一组合理的 "默认值" 根据使用NetApp E系列块节点进行的测试、但默认情况下、除非您指定以下内容、否则不会应用这些块节点:

    beegfs_ha_enable_performance_tuning: True
    1. 如果需要、还可以在此处指定对默认性能调整所做的任何更改。请参见完整内容 "性能调整参数" 有关其他详细信息、请参见相关文档。

  11. 为了确保用于BeeGFS服务的浮动IP地址(有时称为逻辑接口)可以在文件节点之间进行故障转移、所有网络接口的名称必须一致。默认情况下、网络接口名称由内核生成、即使在安装了相同PCIe插槽中的网络适配器的相同服务器型号上、也不能保证生成一致的名称。在部署设备之前创建清单并知道生成的接口名称时、这一点也很有用。以确保设备名称一致、具体取决于服务器或的方框图 lshw -class network -businfo 输出中、按如下所示指定所需的PCIe地址到逻辑接口映射:

    1. 对于InfiniBand (IPoIB)网络接口:

      eseries_ipoib_udev_rules:
        "<PCIe ADDRESS>": <NAME> # Ex: 0000:41:00.0: i1a
    2. 对于以太网网络接口:

      eseries_ip_udev_rules:
        "<PCIe ADDRESS>": <NAME> # Ex: 0000:41:00.0: e1a
      重要说明 为避免重命名接口时发生冲突(防止重命名接口)、不应使用任何可能的默认名称、例如eth0、ens9f0、ib0或ibs4f0。一种常见的命名约定是、对以太网或InfiniBand使用"e"或"i"、后跟PCIe插槽编号和一个字母以指示端口。例如、插槽3中安装的InfiniBand适配器的第二个端口为:i3b。
    备注 如果您使用的是经验证的文件节点型号、请单击 "此处" PCIe地址到逻辑端口映射示例。
  12. (可选)指定应应用于集群中所有BeeGFS服务的配置。可以找到默认配置值 "此处"、并在其他位置指定每服务配置:

    1. BeeGFS管理服务:

      beegfs_ha_beegfs_mgmtd_conf_ha_group_options:
        <OPTION>: <VALUE>
    2. BeeGFS元数据服务:

      beegfs_ha_beegfs_meta_conf_ha_group_options:
        <OPTION>: <VALUE>
    3. BeeGFS存储服务:

      beegfs_ha_beegfs_storage_conf_ha_group_options:
        <OPTION>: <VALUE>
  13. 截至BeeGFS 7.2.7和7.3.1 "连接身份验证" 必须配置或显式禁用。使用基于Ansible的部署可以通过以下几种方式进行配置:

    1. 默认情况下、部署将自动配置连接身份验证并生成 connauthfile 该文件将分发到所有文件节点、并与BeeGFS服务结合使用。此文件还将放置/维护在位于的Ansible控制节点上 <INVENTORY>/files/beegfs/<sysMgmtdHost>_connAuthFile 应(安全)维护的位置、以便在需要访问此文件系统的客户端中重复使用。

      1. 要生成新密钥、请指定 -e "beegfs_ha_conn_auth_force_new=True 运行Ansible攻略手册时。请注意、如果出现、则会忽略此问题 beegfs_ha_conn_auth_secret 已定义。

      2. 有关高级选项、请参阅随附的默认值完整列表 "BeeGFS HA角色"

    2. 可以通过在中定义以下内容来使用自定义密钥 ha_cluster.yml

      beegfs_ha_conn_auth_secret: <SECRET>
    3. 可以完全禁用连接身份验证(不建议使用):

      beegfs_ha_conn_auth_enabled: false

单击 "此处" 有关表示通用文件节点配置的完整清单文件的示例。

将HDR (200 GB) InfiniBand与NetApp EF600块节点结合使用:

要将HDR (200 GB) InfiniBand与EF600结合使用、子网管理器必须支持虚拟化。如果使用交换机连接文件和块节点、则需要在子网管理器管理器上为整个网络结构启用此功能。

如果块和文件节点使用InfiniBand直接连接、则为的一个实例 opensm 必须在每个文件节点上为直接连接到块节点的每个接口配置。可通过指定来完成此操作 configure: true 时间 "配置文件节点存储接口"

当前的收件箱版本 opensm 随受支持的Linux分发版一起提供、不支持虚拟化。而是需要您安装和配置的版本 opensm 来自Mellanox OpenFabrics Enterprise Distribution (OFED)。尽管仍支持使用Ansible进行部署、但还需要执行一些额外步骤:

  1. 使用curl或所需工具下载中列出的OpenSM版本的软件包 "技术要求" 从Mellanox网站到的部分 <INVENTORY>/packages/ 目录。例如:

    curl -o packages/opensm-libs-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm https://linux.mellanox.com/public/repo/mlnx_ofed/5.4-1.0.3.0/rhel8.4/x86_64/opensm-libs-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm
    
    curl -o packages/opensm-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm https://linux.mellanox.com/public/repo/mlnx_ofed/5.4-1.0.3.0/rhel8.4/x86_64/opensm-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm
  2. group_vars/ha_cluster.yml 定义以下配置:

    ### OpenSM package and configuration information
    eseries_ib_opensm_allow_upgrades: true
    eseries_ib_opensm_skip_package_validation: true
    eseries_ib_opensm_rhel_packages: []
    eseries_ib_opensm_custom_packages:
      install:
        - files:
            add:
              "packages/opensm-libs-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm": "/tmp/"
              "packages/opensm-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm": "/tmp/"
        - packages:
            add:
              - /tmp/opensm-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm
              - /tmp/opensm-libs-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm
      uninstall:
        - packages:
            remove:
              - opensm
              - opensm-libs
          files:
            remove:
              - /tmp/opensm-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm
              - /tmp/opensm-libs-5.9.0.MLNX20210617.c9f2ade-0.1.54103.x86_64.rpm
    
    eseries_ib_opensm_options:
      virt_enabled: "2"