This section describes how to create a backup schedule for a Cassandra database for your OpenContrail 4.x cluster.
To create a backup schedule for a Cassandra database:
Log in to the Salt Master node.
Configure the cassandra
server role.
By default, the Cassandra backup server keeps five full backups.
You can change the default settings by specifying the following parameters
in cluster/<cluster_name>/infra/backup/server.yml
:
parameters:
_param:
...
cassandra:
backup:
cron: true
backup_dir: /srv/volumes/backup/cassandra
server:
enabled: true
hours_before_full: 24
full_backups_to_keep: 5
key:
cassandra_pub_key:
enabled: true
key: ${_param:cassandra_backup_public_key}
Enable the scheduler backup process and configure
the cassandra
client role:
Add the following parameters to
cluster/<cluster_name>/opencontrail/control_init.yml
:
parameters:
_param:
...
cassandra:
backup:
cron: true
By default, the Cassandra backup procedure keeps three complete backups
on the cassandra
client node.
The rsync command moves the backup files
to the Cassandra backup server.
Optional. Change the default settings by specifying
the following parameters in
cluster/<cluster_name>/opencontrail/control_init.yml
:
parameters:
_param:
...
cassandra:
backup:
cron: true
client:
enabled: true
cleanup_snaphots: true
full_backups_to_keep: 5
hours_before_full: 24
...
Note
Mirantis recommends setting true
for the cleanup_snaphots
parameter so that
the backup script removes all previous database snapshots
once the current database backup is done.
Verify or add the specified host as the Cassandra backup server in
cluster/<cluster_name>/infra/backup/client_cassandra.yml
:
parameters:
_param:
cassandra_remote_backup_server: ${_param:infra_kvm_node03_address}
The cassandra_remote_backup_server
parameter must contain
the resolvable hostname of the host
on which the cassandra
server is running.
Verify or add other options for the Cassandra client node in
cluster/<cluster_name>/infra/backup/client_cassandra.yml
:
parameters:
...
cassandra:
backup:
cron: true
client:
containers:
- opencontrail_controller_1
enabled: true
full_backups_to_keep: 5
hours_before_full: 24
target:
host: cfg01
backup_dir: /srv/volumes/backup/cassandra/${linux:system:name}
backup_times:
hour: '2'
minute: '0'
If you customized the default parameters, verify that the
hours_before_full
parameter of the cassandra
client in
cluster/<cluster_name>/opencontrail/control_init.yml
matches the same parameter of the cassandra
server
in cluster/<cluster_name>/infra/backup/server.yml
.
Refresh pillars on the target nodes:
salt -C 'I@cassandra:backup' saltutil.refresh_pillar
Apply the salt.minion
state:
salt -C 'I@cassandra:backup:client or I@cassandra:backup:server' state.sls salt.minion
Refresh grains for the cassandra
client node:
salt -C 'I@cassandra:backup:client' saltutil.sync_grains
Update the mine for the cassandra
client node:
salt -C 'I@cassandra:backup:client' mine.flush
salt -C 'I@cassandra:backup:client' mine.update
Apply the following state to add a Cassandra user:
salt -C 'I@cassandra:backup:server' state.apply linux.system.user
Apply the following state on the cassandra
client nodes:
salt -C 'I@cassandra:backup:client' state.apply openssh.client.private_key,cassandra.backup
Apply the following state on the cassandra
server nodes:
salt -C 'I@cassandra:backup:server' state.sls cassandra