Cassandra BOSH Release v3
This release ships a Cassandra daemon through a single cassandra
job, instead of tree separate jobs previously.
The distinction between seeds and non-seeds servers is now done with separate instance groups. The seeds instance group exposes the seeds
BOSH Link that all Cassandra nodes have to consume.
Here is a deployment manifest example that show how this link is exposed, self-consumed by Cassandra seeds, and consumed by other nodes:
instance_groups:
- name: cassandra-seeds
instances: 3
jobs:
- name: cassandra
provides:
seeds: { as: cluster_seeds }
consumes:
seeds: { from: cluster_seeds }
....some properties ...
- name: cassandra-servers
instances: 2
jobs:
- name: cassandra
consumes:
seeds: { from: cluster_seeds }
Breaking changes
The default value of persistent_directory
is now /var/vcap/store/cassandra
instead of /var/vcap/store/cassandra_{seed,server,injector}
previously, depending on which of the 3 jobs you were deploying.
If you're migrating an existing cluster, you'll have tobosh ssh
to each cassandra node, monit stop
Cassandra, modify /var/vcap/jobs/cassandra_*/conf/cassandra.yaml
and update hints_directory
, data_file_directories
, commitlog_directory
, and saved_caches_directory
to the new location, move your data, monit start
cassandra. Once this is done on all cassandra nodes, you can bosh deploy
your cluster with the new v3 of this release.