NetBackup™ for Apache Cassandra 管理指南

Last Published:
Product(s): NetBackup (11.1)

前提条件和最佳做法

  • 确保 NetBackup 支持安装的 Cassandra 版本。有关更多信息,请参考软件兼容性列表

  • 从 NetBackup 版本 10.5 开始,Cassandra 节点所需的最低操作系统版本必须是 RHEL 8.6。

  • 仅 RHEL 平台支持备份主机、数据暂存服务器和 Cassandra。

  • NetBackup 要求数据暂存服务器 (DSS) 群集与受保护的生产群集具有相同的 Apache/DataStax 发行版和版本。

    NetBackup 支持对 DSS 和生产环境中的 DataStax Cassandra 群集进行基于 yumtar 的部署。DSS 群集和生产群集必须具有相同类型的部署。

  • NetBackup 要求数据中心大约 20% 的节点作为 DSS 进行保护。

  • Apache Cassandra 不支持 SSL 身份验证。

  • Apache Cassandra 不支持 Tarball 部署。

  • DSS 应添加到备份环境,以便 NetBackup 可以执行以下操作:

    • 将数据暂存到 DSS。

    • 对保存到备份存储的数据进行重复数据删除。

    • 将数据复制到 NetBackup 介质服务器。

  • DSS 应具有与 Cassandra 生产群集相同的 Cassandra 版本。

  • 对于 NetBackup 10.3 及更高版本,在添加 DSS 和 Cassandra 生产群集之前,必须在 NetBackup 凭据管理控制台中添加 DSS 和 Cassandra 生产凭据。然后,在 DSS 和 Cassandra 生产群集添加工作流程中,我们必须从现有凭据列表中选择所需的凭据。

  • NetBackup 支持 SSL、LDAP 和 DataStax Cassandra 使用简易身份验证。使用数据库用户名和密码连接 Cassandra,并运行类似 cqlshnodetool utils 的命令。在 DSS 群集配置和 Cassandra 群集配置期间,在 NetBackup 凭据中配置 Cassandra。

  • 在所有 Cassandra 节点和 DSS 节点上启用 SSH。

  • 确保 Cassandra 节点、DSS 和备份主机上的本地时间与 NTP 服务器同步。

  • 在 NetBackup 凭据管理中配置数据暂存服务器群集的非 root 主机用户帐户。

    注意:

    非 root 主机用户帐户可以是单独帐户,也可以是相同帐户。它必须是有效帐户,具有主文件夹和使用 ssh 连接到相应节点的权限。在相应节点上的 sudoers 文件中添加主机用户。DSS 和应用程序群集上的数据库用户名和密码必须相同。

  • 运行 Cassandra 备份或还原之前,请确保从所有数据暂存服务器成功收到对 Cassandra 节点和备份主机的 ping 响应。

  • 选择并更新防火墙设置,以便备份主机、数据暂存服务器和 Cassandra 节点能够进行通信。

  • 确保 DSS 群集配置中的指定路径存在于所有 DSS 和 Cassandra 节点上。

  • 每当升级 Cassandra 或对架构进行任何更改(如删除键空间或列族)时,都应先启动完全备份,然后再执行任何增量式备份作业。

  • 确保为群集指定的主机用户帐户对 DSS 群集配置中的指定文件夹具有读写访问权限。

  • 必须根据 IP 首选项完成主机映射。

  • 确保 SStableloader 实用程序在生产节点和数据暂存服务器之间正常工作。

  • 确保 DSS 上的可用空间和内存比 Cassandra 群集中的列族大三倍。在所有 DSS 节点上保持相似的内存大小。

    注意:

    DSS 上的压缩操作需要更多的内存。在 DSS 节点上部署更高的 RAM 会提升备份和还原性能。

  • 备份操作期间,在 Cassandra 节点上至少维持 20% 的可用空间。

  • 根据要还原的数据大小,确保还原过程中目标群集节点上有足够的可用空间。

  • 在还原之前,请确保目标 Cassandra 版本与从中执行备份操作的版本相同。

  • 在还原之前,确保已在 NetBackup 中完全配置目标群集和目标数据暂存服务器群集。

  • 取消复合式还原作业中的父作业不会取消子还原作业。必须手动取消子还原作业。

  • 对于 DataStax Cassandra 备份,确保在 DSS 设置中将“每主机连接数 (cph)”的值设置为 1。

Cassandra 角色的 RBAC 权限:

  • 确保分配创建和更新权限以执行下列操作:

    • 添加 DSS 群集。

    • 添加 Apache Cassandra 群集。

    • 添加 DSS 节点。

    • 编辑 Apache Cassandra 群集。

  • DSS 群集的数据库凭据应与 Cassandra 生产群集相同。

  • 必须通过在 sudoers 文件中将 Defaults requiretty 替换为 Defaults !requiretty 来全局禁用 requiretty 选项。

    注意:

    此操作将更改全局 sudo 配置。

  • 对于基于 tarball 的安装,必须始终从 tarball installation bin 路径位置启动 Cassandra 服务。

  • 对于数据库用户帐户,如果 dse.yaml 文件中 authentication_optionsdefault_scheme“内部”,则指定内部身份验证用户。如果该 default_scheme 设置为 LDAP,则指定 LDAP 用户帐户。

  • 对于从 10.2.1 之前的版本升级的 NetBackup 版本,需要为 DSS 和生产群集手动触发发现操作。

  • 在 NetBackup 中为以下项配置的数据库用户帐户必须在群集中具有所有必需权限:

    • DSS 群集

    • Cassandra 生产群集的备份和还原。

    用户必须能够创建、查看、更新和删除群集中的任何资源。在 DSS 群集上,可以提供特定权限或为配置的数据库用户帐户分配超级用户角色。

  • 确保 Cassandra 配置下的 DSS 分发、工作目录和脚本主目录路径不同。

    注意:

    工作目录路径不能设置为 /root

  • /etc/sudoers 文件中,确保使用 Java 可执行路径更新 secure_path 列表。

  • 如果在列族上启用了数据屏蔽,请更新 DSS Cassandra.yaml 文件,在其中包含 dynamic_data_masking_enabled: true

  • 修改 cassandra.yaml 文件,以在所有 DSS 节点上设置以下参数:

    参数

    描述/值

    cluster_name

    群集名称。

    cluster_name: <提供 DSS 群集的名称>

    num_tokens

    将 num_tokens 设置为 1。

    num_tokens: 1

    initial_token

    使用以下命令计算并设置 initial_token:

    python -c "print [str(((2**64 / number_of_nodes_in_cluster) * i) - 2**63) for i in range(number_of_nodes_in_cluster)]" initial_token: <To be calculated>

    incremental_backups

    禁用 incremental_backups。

    incremental_backups:false

    snapshot_before_compaction

    在每次压缩之前禁用创建快照。

    snapshot_before_compaction: false

    auto_snapshot

    禁用自动快照。

    auto_snapshot: false

    compaction_throughput_mb_per_sec

    禁用压缩限制。

    compaction_throughput_mb_per_sec: 0

    注意:

    对于 Cassandra 4.1 及更高版本,将参数及其值更新为 compaction_throughput: 0MiB/s

    hinted_handoff_enabled

    禁用提示的交接。

    hinted_handoff_enabled: false

    cdc_enabled

    禁用 CDC 功能。

    cdc_enabled: false

    enable_user_defined_functions

    启用用户定义的功能。

    enable_user_defined_functions: true

    注意:

    对于 Cassandra 4.1 及更高版本,将参数及其值更新为 user_defined_functions_enabled: true

    enable_scripted_user_defined_functions

    启用脚本化的用户定义的功能。

    enable_scripted_user_defined_functions: true

    注意:

    对于 Cassandra 4.1,将参数及其值更新为 scripted_user_defined_functions_enabled: true

    但是,对于 Cassandra 5.0 及更高版本,请勿更新该参数。