...
Puppet Setup
- Locally clone the fcrepo-aws-puppet project
- Follow the README from the fcrepo-aws-puppet project
- There are two configurations to choose from:
- Single node, async-indexing (default)
- Includes YourKit agent for remote profiling
- Clustered
- Single node, async-indexing (default)
...
From
Code Block $repo_config = 'classpath:/config/async-indexing/repository.json', # $repo_config = 'classpath:/config/clustered/repository.json', $etc_default_tomcat = 'tomcat7/default-tomcat7.erb', # $etc_default_tomcat = 'tomcat7/default-tomcat7-clustered.erb',
To
Code Block # $repo_config = 'classpath:/config/async-indexing/repository.json', $repo_config = 'classpath:/config/clustered/repository.json', # $etc_default_tomcat = 'tomcat7/default-tomcat7.erb', $etc_default_tomcat = 'tomcat7/default-tomcat7-clustered.erb',
Note, for the clustered configuration, start as many instances as desired.
- All clustered instances will automatically join the same cluster
Puppet Run
Run
Code Block |
---|
./fcrepo-aws-puppet/cloud-init/create-ec2-instance.sh |
Clustered Options
Fedora 4 can be run in a clustered configuration on AWS. We ran performance benchmarks using these additional java opts:
Code Block |
---|
###
# Clustering
###
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.infinispan.cache_configuration=config/infinispan/clustered/infinispan.xml"
JAVA_OPTS="${JAVA_OPTS} -Djgroups.tcp.address=<aws-private-ip>"
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.ispn.numOwners=2 -Djava.net.PreferIPv4Stack=true"
# The jgroups-ec2.xml file is included in ispn's jars
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.ispn.jgroups.configuration=jgroups-ec2.xml"
# This property overwrites the S3 bucketname variable in jgroups-ec2.xml
JAVA_OPTS="${JAVA_OPTS} -Djgroups.s3.bucket=fcrepo4-cluster-0" |
Most importantly, we used the jgroups-ec2 configuration, which enables auto-discovery of nodes by writing content into an S3 bucket.
JMeter
...coming