-
Notifications
You must be signed in to change notification settings - Fork 1
Priam 2.x is written to run with C* 2.0.X and DSE 4.6.X
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
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 |
Property | Default | Description |
---|---|---|
priam.acl.groupname | Security group name for multiregion mode, defaults to priam.clustername |
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 |
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.
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 |
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 | 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.
There are some yaml obsolete properties. We will update that list here soon. Meanwhile, please consult C* newsgroup if you run into such problem.