NetBackup™ Web UI Apache Cassandra Administrator's Guide

Last Published:
Product(s): NetBackup & Alta Data Protection (10.2)

Pre-requisites and best practices

  • Ensure that NetBackup supports the installed Cassandra version. For more information, refer Software Compatibility List.

  • Backup host, Data staging server and Cassandra are supported on RHEL platform only.

  • NetBackup requires the same distribution Apache/DataStax and version on the Data Staging Server (DSS) cluster as the production cluster being protected.

    NetBackup supports yum and tar based deployments for DataStax Cassandra cluster in DSS.

    NetBackup supports tar and yum based deployments for DataStax Cassandra cluster in production. NetBackup supports only yum based deployments for DataStax Cassandra cluster in DSS.

  • NetBackup requires around 20% of the nodes of the data center being protected as DSS.

  • The DSS should be added to the backup environment so that NetBackup can perform the following:

    • Stage the data to the DSS.

    • Deduplicate the data saving to the backup storage.

    • Copy the data to NetBackup media.

  • The DSS should have the same version of Cassandra as the Cassandra production cluster.

  • NetBackup supports SSL, LDAP and DataStax Cassandra with simple authentication. Use database username and password to connect Cassandra and to run commands like cqlsh and nodetool utils. Configure Cassandra in the NetBackup credentials during DSS cluster configuration and Cassandra cluster configuration.

  • Enable SSH on all the Cassandra nodes and DSS nodes.

  • Ensure that the local time of Cassandra nodes, the DSS, and the backup hosts are synchronized with NTP server.

  • Configure a non-root host user account for the data staging server cluster in NetBackup credentials managment.

    Note:

    The non-root host user account can be separate or the same but need to be valid user accounts with home folder and rights to connect to the respective nodes using ssh. Add the host user in the sudoers file on the respective nodes. Database user name and password must be same on DSS and application cluster.

  • Before you run Cassandra backup or restore, ensure that you received a successful ping response from all the data staging servers to Cassandra nodes and the backup host.

  • Check and update the firewall settings so that the backup hosts, data staging servers, and Cassandra nodes can communicate.

  • Ensure that the specified paths in the DSS cluster configuration are existing on all the DSS and Cassandra nodes.

  • Whenever you upgrade Cassandra or make any schema change like delete a keyspace or column family, initiate a full backup before any incremental backup job.

  • Ensure that the specified host user account in credential management being used for the cluster has read and write access to the specified folders in the DSS cluster configuration

  • Ensure that free space and the memory on the DSS is three times larger than the column family in the Cassandra cluster. Maintain similar memory size on all the DSS nodes.

    Note:

    The compaction operation on the DSS needs more memory. Deploying higher RAM on the DSS nodes will result in better backup and restore performance.

  • Maintain a minimum 20% free space on Cassandra nodes during backup operations.

  • Ensure enough free space on target cluster nodes during the restore as per the size of data being restored.

  • Before the restore, ensure that the target Cassandra version has the same version as the version you backed up from.

  • Before the restore ensure that the target cluster and target Data Staging Server cluster are fully configured in NetBackup.

  • Canceling a parent job in a compound restore job does not cancel the child restore jobs. You must manually cancel the child restore jobs.

  • Ensure that Connections per host (cph) value is set to 1 in DSS settings for Datastax cassandra backup.

RBAC permissions for a Cassandra role

  • Ensure to assign both create and update permissions to:

    • Add DSS cluster

    • Add Apache Cassandra cluster

    • Add DSS nodes

    • Edit Apache Cassandra cluster

  • The database credentials of DSS cluster should be the same as Cassandra production cluster.

  • You must disable the requiretty option globally in the sudoers file, by replacing Defaults requiretty with Defaults !requiretty.

    Note:

    This action changes the global sudo configuration.

  • In case of tarball based installation, you must always start Cassandra services from tarball installation bin path location.

  • For database user account, if default_scheme is internal for authentication_options in dse.yaml file, then specify the internal authentication user. If default_scheme is set to ldap, then specify the ldap user account.

  • The database user account configured in NetBackup for the following must have all the required permissions in the cluster:

    • DSS cluster

    • Backup and restore of Cassandra production cluster

    The user must be able to Create, View, Update and Drop any resources in the cluster. On the DSS cluster you can provide specific permissions or assign the super user role to the configured database user account.

  • Ensure that the DSS distribution, working directory and script home directory paths under Cassandra configuration are not the same.

    Note:

    Working directory path cannot be set as /root.

  • Ensure that you update the secure_path list with Java executable path in /etc/sudoers file.

  • Modify the cassandra.yaml file to set the following parameters on all DSS nodes:

    Parameters

    Description/Value

    cluster_name

    Name of the cluster.

    cluster_name: <Provide name of DSS cluster>

    num_tokens

    Set num_tokens as 1.

    num_tokens: 1

    Initial_token

    Calculate and set Initial_token using the following command:

    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

    Disable incremental backups.

    incremental_backups: false

    snapshot_before_compaction

    Disables taking a snapshot before each compaction.

    snapshot_before_compaction: false

    auto_snapshot

    Disable auto snapshot.

    auto_snapshot: false

    compaction_throughput_mb_per_sec

    Disable compaction throttling.

    compaction_throughput_mb_per_sec: 0

    hinted_handoff_enabled

    Disable hinted handoff.

    hinted_handoff_enabled: false

    cdc_enabled

    Disable CDC functionality.

    cdc_enabled: false

    enable_user_defined_functions

    Enable user defined functions.

    enable_user_defined_functions: true

    enable_scripted_user_defined_functions

    Enable scripted user defined functions.

    enable_scripted_user_defined_functions: true