NetBackup™ Web UI Apache Cassandra Administrator's Guide
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 thesudoers
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 fromtarball installation
bin path location.For database user account, if
default_scheme
is forauthentication_options
indse.yaml
file, then specify the internal authentication user. Ifdefault_scheme
is set to , 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