Skip to content
Vinh Nguyen edited this page Apr 15, 2016 · 3 revisions

Priam 2.x is written to run with C* 2.0.X and DSE 4.6.X

Setting up properties

PriamConfiguration looks for properties specified in the PriamProperties SimpleDB domain. Similarly, you can set these properties in Priam.properties or command line parameters. To create a property, create an item with the following attributes (the item name is not important, but it may be beneficial to set it to cluster name + property name):

  • appId : Your cluster name
  • property: Name of the property
  • value: Property value

Cluster name is inferred from your ASG name( my_cluster). Multi zone clusters should have ASG suffixed with a zone identifier ‘-{zone}’ ( my_cluster-useast1a), i.e., {clustername}-{zone}.

Example: If you want to change the jmx port to 7200 for your cluster ‘my_cluster’, create the item:

  • Item name : my_clusterpriam.jmx.port
    • appId : my_cluster
    • property: priam.jmx.port
    • value: 7200

Properties used by Priam.

Ports

Property Default Description
priam.jmx.port 7199 JMX port
priam.thrift.port 9160 Thrift port
priam.storage.port 7000 Storage port used by Cassandra
priam.ssl.storage.port 7001 SSL Storage port used by Cassandra

Security

Property Default Description
priam.acl.groupname Security group name for multiregion mode, defaults to priam.clustername

Cassandra

Property Default Description
priam.clustername cass_cluster Name of the Cassandra cluster
priam.endpoint_snitch org.apache.cassandra.locator.Ec2Snitch End point snitch to be used in yaml
priam.multiregion.enable false Enables multi region if true
priam.zones.available First 3 zones in the region Comma separated list of zones where nodes are deployed.
priam.cass.process CassandraDaemon Name of the Running Cassandra Process

JVM

Property Default Description
priam.memory.compaction.limit 128 MB
priam.compaction.throughput 8 MB/sec
priam.heap.size.$INSTANCETYPE 8G Cassandra heap size
priam.heap.newgen.size.$INSTANCETYPE 2G Cassandra New gen size
priam.direct.memory.size.$INSTANCETYPE 50G Cassandra direct mem size

Note: For the last three properties, $INSTANCETYPE should be replaced by the type of the instance you are setting the property for (e.g. m1.small for small instances). The defaults for these properties are tuned to the m1.xlarge instance type. If running on a smaller instance type and the properties are not changed, Cassandra will not be able to start due to lack of memory.

Directories and scripts

Property Default Description
priam.cass.home /etc/cassandra Cassandra home dir
priam.cass.startscript /etc/init.d/cassandra start Cassandra startup script
priam.cass.stopscript /etc/init.d/cassandra stop Cassandra stop script
priam.data.location /var/lib/cassandra/data Data directory
priam.cache.location /var/lib/cassandra/saved_caches Cache directory
priam.commitlog.location /var/lib/cassandra/commitlog Commit log directory

Backup and restore

Property Default Description
priam.backup.threads 2 Number of backup threads
priam.backup.hour 12 Backup hour to run daily snapshot
priam.backup.incremental.enable true Enables incremental backup if true
priam.backup.chunksizemb 10 (MB)Part size when uploading to S3
priam.restore.prefix Defaults to current cluster and backup bucket. Prefix to be used for locating backups.
priam.restore.snapshot Specifies the time range to be searched when restoring. Setting this param will trigger restore.
priam.s3.bucket cassandra-archive S3 bucket used for backups
priam.s3.base_dir backup Specify a base prefix that will be used for all backups
priam.restore.threads 8 Number of restore threads to be used
priam.restore.closesttoken false If specified, a closes token is searched in the backups for restoring
priam.restore.keyspaces Restores the specified keyspace. Do not set this to restore all keyspaces.
priam.upload.throttle defaults to Integer.MAX_VALUE Throttle bytes/sec for uploads

In addition to the aforementioned standard properties, there are (optional) additional properties to leverage the enhanced backup and restore functionalities.

Backup

Priam primary backup to AWS supports encryption:
Currently, primary backup to AWS is unencrypted. This release allows you to specify at a cluster or even instance level, whether the data should be encrypted. The specification is done via boolean property (priam.encrypted.backup.enabled).

Note for backward compatibility, any property mentioned is optional. Specifically, if it does not exist, no harm done.

Priam uses PGP (Pretty Good Privacy):
For this release Priam will use PGP as the encryption / decryption cryptography algorithm. Other algorithm can be implemented via interface IFileCryptography.

Restore feature

Priam restore will handle decryption of cipher text:
As part of the restore, Priam will decrypt the ciphertest to plaintext if property (priam.encrypted.backup.enabled) is set to true.

For this release Priam will use PGP as the encryption / decryption cryptography algorithm. Other algorithm can be implemented via interface IFileCryptography.

Priam restore from AWS bucket using “role assumption”:
The use case is you are trying to restore objects created by different AWS accounts. See AWS documentation for “cross account access using roles” for detail information.

To enable this feature, the following properties need to be set:

Property Default Description
priam.restore.source.type AWSCROSSACCT The storage source type
priam.roleassumption.arn the role arn defined for you shop
priam.encrypted.backup.enabled true or false If true, Priam will decrypt the cipher text
priam.pgp.password.phrase your PGP passphrase

Note this release, the assumption is the data in a non-primary AWS account is encrypted using PGP.
Note Pgp uses a passphrase to encrypt your private key on your node. See http://www.pgpi.org/doc/pgpintro/, section “what is a passphrase” for details.

Priam restore from Google Cloud Storage (GCS):
If you use GCS to store your data, Priam now can restore that data. To enable this feature, the following properties need to be set:

Property Default Description
priam.restore.source.type GOOGLE The storage source type
priam.encrypted.backup.enabled true or false If true, Priam will decrypt the cipher text
priam.pgp.password.phrase your PGP passphrase
priam.gcs.service.acct.id your GCS account This value is provided to you by GCS
priam.gcs.service.acct.private.key.loc the absolute path to the GCS private key file located on node This value is provided to you by GCS

*Note: Pgp uses a passphrase to encrypt your private key on your node. See http://www.pgpi.org/doc/pgpintro/, section “what is a passphrase” for details.

Issues with Cassandra 2.0

There are some yaml obsolete properties. We will update that list here soon. Meanwhile, please consult C* newsgroup if you run into such problem.

Clone this wiki locally