StarCluster: Difference between revisions
Terry Gliedt (talk | contribs) No edit summary |
Terry Gliedt (talk | contribs) No edit summary |
||
| Line 36: | Line 36: | ||
<code> | <code> | ||
#################################### | |||
## StarCluster Configuration File ## | |||
#################################### | |||
[global] | |||
DEFAULT_TEMPLATE=xxx | |||
############################################# | |||
## AWS Credentials Settings | |||
############################################# | |||
[aws info] | |||
AWS_ACCESS_KEY_ID = AKImyexample8FHJJF2Q | |||
AWS_SECRET_ACCESS_KEY = fthis_was_my_example_secretMqkMIkJjFCIGf | |||
AWS_USER_ID=199998888709 | |||
AWS_REGION_NAME = us-west-2 # Choose your own region | |||
AWS_REGION_HOST = ec2.us-west-2.amazonaws.com | |||
AWS_S3_HOST = s3-us-west-2.amazonaws.com | |||
########################### | |||
## EC2 Keypairs | |||
########################### | |||
[key east1_starcluster] | |||
KEY_LOCATION = ~/.ssh/AWS/east1_starcluster_key.rsa | |||
[key west1_starcluster] | |||
KEY_LOCATION = ~/.ssh/AWS/west1_starcluster_key.rsa | |||
[key west2_starcluster] | |||
KEY_LOCATION = ~/.ssh/AWS/west2_starcluster_key.rsa | |||
# Configure the default cluster template to use when starting a cluster | |||
# defaults to 'smallcluster' defined below. This template should be usable | |||
# out-of-the-box provided you've configured your keypair correctly | |||
DEFAULT_TEMPLATE=smallcluster | |||
# enable experimental features for this release | |||
#ENABLE_EXPERIMENTAL=True | |||
# number of seconds to wait when polling instances (default: 30s) | |||
#REFRESH_INTERVAL=15 | |||
# specify a web browser to launch when viewing spot history plots | |||
#WEB_BROWSER=chromium | |||
# split the config into multiple files | |||
#INCLUDE=~/.starcluster/aws, ~/.starcluster/keys, ~/.starcluster/vols | |||
############################################# | |||
## AWS Credentials and Connection Settings ## | |||
############################################# | |||
[aws info] | |||
# This is the AWS credentials section (required). | |||
# These settings apply to all clusters | |||
# replace these with your AWS keys | |||
AWS_ACCESS_KEY_ID = #your_aws_access_key_id | |||
AWS_SECRET_ACCESS_KEY = #your_secret_access_key | |||
# replace this with your account number | |||
AWS_USER_ID= #your userid | |||
# Uncomment to specify a different Amazon AWS region (OPTIONAL) | |||
# (defaults to us-east-1 if not specified) | |||
# NOTE: AMIs have to be migrated! | |||
#AWS_REGION_NAME = eu-west-1 | |||
#AWS_REGION_HOST = ec2.eu-west-1.amazonaws.com | |||
# Uncomment these settings when creating an instance-store (S3) AMI (OPTIONAL) | |||
#EC2_CERT = /path/to/your/cert-asdf0as9df092039asdfi02089.pem | |||
#EC2_PRIVATE_KEY = /path/to/your/pk-asdfasd890f200909.pem | |||
# Uncomment these settings to use a proxy host when connecting to AWS | |||
#AWS_PROXY = your.proxyhost.com | |||
#AWS_PROXY_PORT = 8080 | |||
#AWS_PROXY_USER = yourproxyuser | |||
#AWS_PROXY_PASS = yourproxypass | |||
########################### | |||
## Defining EC2 Keypairs ## | |||
########################### | |||
# Sections starting with "key" define your keypairs. See "starcluster createkey | |||
# --help" for instructions on how to create a new keypair. Section name should | |||
# match your key name e.g.: | |||
[key mykey] | |||
KEY_LOCATION=~/.ssh/mykey.rsa | |||
# You can of course have multiple keypair sections | |||
# [key myotherkey] | |||
# KEY_LOCATION=~/.ssh/myotherkey.rsa | |||
################################ | |||
## Defining Cluster Templates ## | |||
################################ | |||
# Sections starting with "cluster" represent a cluster template. These | |||
# "templates" are a collection of settings that define a single cluster | |||
# configuration and are used when creating and configuring a cluster. You can | |||
# change which template to use when creating your cluster using the -c option | |||
# to the start command: | |||
# | |||
# $ starcluster start -c mediumcluster mycluster | |||
# | |||
# If a template is not specified then the template defined by DEFAULT_TEMPLATE | |||
# in the [global] section above is used. Below is the "default" template named | |||
# "smallcluster". You can rename it but dont forget to update the | |||
# DEFAULT_TEMPLATE setting in the [global] section above. See the next section | |||
# on defining multiple templates. | |||
[cluster smallcluster] | |||
# change this to the name of one of the keypair sections defined above | |||
KEYNAME = mykey | |||
# number of ec2 instances to launch | |||
CLUSTER_SIZE = 2 | |||
# create the following user on the cluster | |||
CLUSTER_USER = sgeadmin | |||
# optionally specify shell (defaults to bash) | |||
# (options: tcsh, zsh, csh, bash, ksh) | |||
CLUSTER_SHELL = bash | |||
# AMI to use for cluster nodes. These AMIs are for the us-east-1 region. | |||
# Use the 'listpublic' command to list StarCluster AMIs in other regions | |||
# The base i386 StarCluster AMI is ami-899d49e0 | |||
# The base x86_64 StarCluster AMI is ami-999d49f0 | |||
# The base HVM StarCluster AMI is ami-4583572c | |||
NODE_IMAGE_ID = ami-899d49e0 | |||
# instance type for all cluster nodes | |||
# (options: cg1.4xlarge, c1.xlarge, m1.small, c1.medium, m2.xlarge, t1.micro, cc1.4xlarge, m1.medium, cc2.8xlarge, m1.large, m1.xlarge, m2.4xlarge, m2.2xlarge) | |||
NODE_INSTANCE_TYPE = m1.small | |||
# Uncomment to disable installing/configuring a queueing system on the | |||
# cluster (SGE) | |||
#DISABLE_QUEUE=True | |||
# Uncomment to specify a different instance type for the master node (OPTIONAL) | |||
# (defaults to NODE_INSTANCE_TYPE if not specified) | |||
#MASTER_INSTANCE_TYPE = m1.small | |||
# Uncomment to specify a separate AMI to use for the master node. (OPTIONAL) | |||
# (defaults to NODE_IMAGE_ID if not specified) | |||
#MASTER_IMAGE_ID = ami-899d49e0 (OPTIONAL) | |||
# availability zone to launch the cluster in (OPTIONAL) | |||
# (automatically determined based on volumes (if any) or | |||
# selected by Amazon if not specified) | |||
#AVAILABILITY_ZONE = us-east-1c | |||
# list of volumes to attach to the master node (OPTIONAL) | |||
# these volumes, if any, will be NFS shared to the worker nodes | |||
# see "Configuring EBS Volumes" below on how to define volume sections | |||
#VOLUMES = oceandata, biodata | |||
# list of plugins to load after StarCluster's default setup routines (OPTIONAL) | |||
# see "Configuring StarCluster Plugins" below on how to define plugin sections | |||
#PLUGINS = myplugin, myplugin2 | |||
# list of permissions (or firewall rules) to apply to the cluster's security | |||
# group (OPTIONAL). | |||
#PERMISSIONS = ssh, http | |||
# Uncomment to always create a spot cluster when creating a new cluster from | |||
# this template. The following example will place a $0.50 bid for each spot | |||
# request. | |||
#SPOT_BID = 0.50 | |||
########################################### | |||
## Defining Additional Cluster Templates ## | |||
########################################### | |||
# You can also define multiple cluster templates. You can either supply all | |||
# configuration options as with smallcluster above, or create an | |||
# EXTENDS=<cluster_name> variable in the new cluster section to use all | |||
# settings from <cluster_name> as defaults. Below are example templates that | |||
# use the EXTENDS feature: | |||
# [cluster mediumcluster] | |||
# Declares that this cluster uses smallcluster as defaults | |||
# EXTENDS=smallcluster | |||
# This section is the same as smallcluster except for the following settings: | |||
# KEYNAME=myotherkey | |||
# NODE_INSTANCE_TYPE = c1.xlarge | |||
# CLUSTER_SIZE=8 | |||
# VOLUMES = biodata2 | |||
# [cluster largecluster] | |||
# Declares that this cluster uses mediumcluster as defaults | |||
# EXTENDS=mediumcluster | |||
# This section is the same as mediumcluster except for the following variables: | |||
# CLUSTER_SIZE=16 | |||
############################# | |||
## Configuring EBS Volumes ## | |||
############################# | |||
# StarCluster can attach one or more EBS volumes to the master and then | |||
# NFS_share these volumes to all of the worker nodes. A new [volume] section | |||
# must be created for each EBS volume you wish to use with StarCluser. The | |||
# section name is a tag for your volume. This tag is used in the VOLUMES | |||
# setting of a cluster template to declare that an EBS volume is to be mounted | |||
# and nfs shared on the cluster. (see the commented VOLUMES setting in the | |||
# example 'smallcluster' template above) Below are some examples of defining | |||
# and configuring EBS volumes to be used with StarCluster: | |||
# Sections starting with "volume" define your EBS volumes | |||
# [volume biodata] | |||
# attach vol-c9999999 to /home on master node and NFS-shre to worker nodes | |||
# VOLUME_ID = vol-c999999 | |||
# MOUNT_PATH = /home | |||
# Same volume as above, but mounts to different location | |||
# [volume biodata2] | |||
# VOLUME_ID = vol-c999999 | |||
# MOUNT_PATH = /opt/ | |||
# Another volume example | |||
# [volume oceandata] | |||
# VOLUME_ID = vol-d7777777 | |||
# MOUNT_PATH = /mydata | |||
# By default StarCluster will attempt first to mount the entire volume device, | |||
# failing that it will try the first partition. If you have more than one | |||
# partition you will need to set the PARTITION number, e.g.: | |||
# [volume oceandata] | |||
# VOLUME_ID = vol-d7777777 | |||
# MOUNT_PATH = /mydata | |||
# PARTITION = 2 | |||
############################################ | |||
## Configuring Security Group Permissions ## | |||
############################################ | |||
# Sections starting with "permission" define security group rules to | |||
# automatically apply to newly created clusters. PROTOCOL in the following | |||
# examples can be can be: tcp, udp, or icmp. CIDR_IP defaults to 0.0.0.0/0 or | |||
# "open to the # world" | |||
# open port 80 on the cluster to the world | |||
# [permission http] | |||
# PROTOCOL = tcp | |||
# FROM_PORT = 80 | |||
# TO_PORT = 80 | |||
# open https on the cluster to the world | |||
# [permission https] | |||
# PROTOCOL = tcp | |||
# FROM_PORT = 443 | |||
# TO_PORT = 443 | |||
# open port 80 on the cluster to an ip range using CIDR_IP | |||
# [permission http] | |||
# PROTOCOL = tcp | |||
# FROM_PORT = 80 | |||
# TO_PORT = 80 | |||
# CIDR_IP = 18.0.0.0/8 | |||
# restrict ssh access to a single ip address (<your_ip>) | |||
# [permission ssh] | |||
# PROTOCOL = tcp | |||
# FROM_PORT = 22 | |||
# TO_PORT = 22 | |||
# CIDR_IP = <your_ip>/32 | |||
##################################### | |||
## Configuring StarCluster Plugins ## | |||
##################################### | |||
# Sections starting with "plugin" define a custom python class which perform | |||
# additional configurations to StarCluster's default routines. These plugins | |||
# can be assigned to a cluster template to customize the setup procedure when | |||
# starting a cluster from this template (see the commented PLUGINS setting in | |||
# the 'smallcluster' template above). Below is an example of defining a user | |||
# plugin called 'myplugin': | |||
# [plugin myplugin] | |||
# NOTE: myplugin module must either live in ~/.starcluster/plugins or be | |||
# on your PYTHONPATH | |||
# SETUP_CLASS = myplugin.SetupClass | |||
# extra settings are passed as __init__ arguments to your plugin: | |||
# SOME_PARAM_FOR_MY_PLUGIN = 1 | |||
# SOME_OTHER_PARAM = 2 | |||
###################### | |||
## Built-in Plugins ## | |||
###################### | |||
# The following plugins ship with StarCluster and should work out-of-the-box. | |||
# Uncomment as needed. Don't forget to update your PLUGINS list! | |||
# See http://web.mit.edu/star/cluster/docs/latest/plugins for plugin details. | |||
# | |||
# Use this plugin to install one or more packages on all nodes | |||
# [plugin pkginstaller] | |||
# SETUP_CLASS = starcluster.plugins.pkginstaller.PackageInstaller | |||
# # list of apt-get installable packages | |||
# PACKAGES = mongodb, python-pymongo | |||
# | |||
# Use this plugin to create one or more cluster users and download all user ssh | |||
# keys to $HOME/.starcluster/user_keys/<cluster>-<region>.tar.gz | |||
# [plugin createusers] | |||
# SETUP_CLASS = starcluster.plugins.users.CreateUsers | |||
# NUM_USERS = 30 | |||
# # you can also comment out NUM_USERS and specify exact usernames, e.g. | |||
# # usernames = linus, tux, larry | |||
# DOWNLOAD_KEYS = True | |||
# | |||
# Use this plugin to configure the Condor queueing system | |||
# [plugin condor] | |||
# SETUP_CLASS = starcluster.plugins.condor.CondorPlugin | |||
# | |||
# The SGE plugin is enabled by default and not strictly required. Only use this | |||
# if you want to tweak advanced settings in which case you should also set | |||
# DISABLE_QUEUE=TRUE in your cluster template. See the plugin doc for more | |||
# details. | |||
# [plugin sge] | |||
# SETUP_CLASS = starcluster.plugins.sge.SGEPlugin | |||
# MASTER_IS_EXEC_HOST = False | |||
# | |||
# The IPCluster plugin configures a parallel IPython cluster with optional | |||
# web notebook support. This allows you to run Python code in parallel with low | |||
# latency message passing via ZeroMQ. | |||
# [plugin ipcluster] | |||
# SETUP_CLASS = starcluster.plugins.ipcluster.IPCluster | |||
# ENABLE_NOTEBOOK = True | |||
# #set a password for the notebook for increased security | |||
# NOTEBOOK_PASSWD = a-secret-password | |||
# | |||
# Use this plugin to create a cluster SSH "dashboard" using tmux. The plugin | |||
# creates a tmux session on the master node that automatically connects to all | |||
# the worker nodes over SSH. Attaching to the session shows a separate window | |||
# for each node and each window is logged into the node via SSH. | |||
# [plugin tmux] | |||
# SETUP_CLASS = starcluster.plugins.tmux.TmuxControlCenter | |||
# | |||
# Use this plugin to change the default MPI implementation on the | |||
# cluster from OpenMPI to MPICH2. | |||
# [plugin mpich2] | |||
# SETUP_CLASS = starcluster.plugins.mpich2.MPICH2Setup | |||
# | |||
# Configure a hadoop cluster. (includes dumbo setup) | |||
# [plugin hadoop] | |||
# SETUP_CLASS = starcluster.plugins.hadoop.Hadoop | |||
# | |||
# Configure a distributed MySQL Cluster | |||
# [plugin mysqlcluster] | |||
# SETUP_CLASS = starcluster.plugins.mysql.MysqlCluster | |||
# NUM_REPLICAS = 2 | |||
# DATA_MEMORY = 80M | |||
# INDEX_MEMORY = 18M | |||
# DUMP_FILE = test.sql | |||
# DUMP_INTERVAL = 60 | |||
# DEDICATED_QUERY = True | |||
# NUM_DATA_NODES = 2 | |||
# | |||
# Install and setup an Xvfb server on each cluster node | |||
# [plugin xvfb] | |||
# SETUP_CLASS = starcluster.plugins.xvfb.XvfbSetup | |||
</code> | </code> | ||
Revision as of 10:53, 29 October 2012
Back to the beginning [1]
If you have access to your own cluster, your task will be much simpler. Install the Pipeline software (links at [2]) and run it as descibed on the same pages.
For those who are not so lucky to have access to a cluster, AWS provides an alternative. You may run the pipeline software on a cluster created in AWS. One tool that makes the creation of a cluster of AMIs (Amazon Machine Instances) is StarCluster (see http://star.mit.edu/cluster/).
The following shows an example of how you might use starcluster to create and AWS cluster and set it up to run the Pipeline.
We will use starcluster to launch a set of AWS instances. There are many details setting up starcluster and this is not intended to explain all of the many variations you might choose, but should provide you a working example.
The tasks to be completed are:
- Install and configure starcluster on a machine you use.
- Create an AWS cluster
- Install the Pipeline software on the master node
- Create storage for your sequence data and make it available for the software
- Run the Pipeline software
Installing and configuring starcluster on your machine is described at http://star.mit.edu/cluster/. Only the second step will be covered here, as the others are described at [3].
StarCluster Configuration Example
StarCluster creates a model configuration file in ~/.starcluster/config and you are instructed to edit this and set the correct values for the variables. Here is an example of a config file that we used (with some details changed of course).
- StarCluster Configuration File ##
[global]
DEFAULT_TEMPLATE=xxx
- AWS Credentials Settings
[aws info]
AWS_ACCESS_KEY_ID = AKImyexample8FHJJF2Q
AWS_SECRET_ACCESS_KEY = fthis_was_my_example_secretMqkMIkJjFCIGf
AWS_USER_ID=199998888709
AWS_REGION_NAME = us-west-2 # Choose your own region
AWS_REGION_HOST = ec2.us-west-2.amazonaws.com
AWS_S3_HOST = s3-us-west-2.amazonaws.com
- EC2 Keypairs
[key east1_starcluster]
KEY_LOCATION = ~/.ssh/AWS/east1_starcluster_key.rsa
[key west1_starcluster]
KEY_LOCATION = ~/.ssh/AWS/west1_starcluster_key.rsa
[key west2_starcluster]
KEY_LOCATION = ~/.ssh/AWS/west2_starcluster_key.rsa
- Configure the default cluster template to use when starting a cluster
- defaults to 'smallcluster' defined below. This template should be usable
- out-of-the-box provided you've configured your keypair correctly
DEFAULT_TEMPLATE=smallcluster
- enable experimental features for this release
- ENABLE_EXPERIMENTAL=True
- number of seconds to wait when polling instances (default: 30s)
- REFRESH_INTERVAL=15
- specify a web browser to launch when viewing spot history plots
- WEB_BROWSER=chromium
- split the config into multiple files
- INCLUDE=~/.starcluster/aws, ~/.starcluster/keys, ~/.starcluster/vols
- AWS Credentials and Connection Settings ##
[aws info]
- This is the AWS credentials section (required).
- These settings apply to all clusters
- replace these with your AWS keys
AWS_ACCESS_KEY_ID = #your_aws_access_key_id
AWS_SECRET_ACCESS_KEY = #your_secret_access_key
- replace this with your account number
AWS_USER_ID= #your userid
- Uncomment to specify a different Amazon AWS region (OPTIONAL)
- (defaults to us-east-1 if not specified)
- NOTE: AMIs have to be migrated!
- AWS_REGION_NAME = eu-west-1
- AWS_REGION_HOST = ec2.eu-west-1.amazonaws.com
- Uncomment these settings when creating an instance-store (S3) AMI (OPTIONAL)
- EC2_CERT = /path/to/your/cert-asdf0as9df092039asdfi02089.pem
- EC2_PRIVATE_KEY = /path/to/your/pk-asdfasd890f200909.pem
- Uncomment these settings to use a proxy host when connecting to AWS
- AWS_PROXY = your.proxyhost.com
- AWS_PROXY_PORT = 8080
- AWS_PROXY_USER = yourproxyuser
- AWS_PROXY_PASS = yourproxypass
- Defining EC2 Keypairs ##
- Sections starting with "key" define your keypairs. See "starcluster createkey
- --help" for instructions on how to create a new keypair. Section name should
- match your key name e.g.:
[key mykey]
KEY_LOCATION=~/.ssh/mykey.rsa
- You can of course have multiple keypair sections
- [key myotherkey]
- KEY_LOCATION=~/.ssh/myotherkey.rsa
- Defining Cluster Templates ##
- Sections starting with "cluster" represent a cluster template. These
- "templates" are a collection of settings that define a single cluster
- configuration and are used when creating and configuring a cluster. You can
- change which template to use when creating your cluster using the -c option
- to the start command:
- $ starcluster start -c mediumcluster mycluster
- If a template is not specified then the template defined by DEFAULT_TEMPLATE
- in the [global] section above is used. Below is the "default" template named
- "smallcluster". You can rename it but dont forget to update the
- DEFAULT_TEMPLATE setting in the [global] section above. See the next section
- on defining multiple templates.
[cluster smallcluster]
- change this to the name of one of the keypair sections defined above
KEYNAME = mykey
- number of ec2 instances to launch
CLUSTER_SIZE = 2
- create the following user on the cluster
CLUSTER_USER = sgeadmin
- optionally specify shell (defaults to bash)
- (options: tcsh, zsh, csh, bash, ksh)
CLUSTER_SHELL = bash
- AMI to use for cluster nodes. These AMIs are for the us-east-1 region.
- Use the 'listpublic' command to list StarCluster AMIs in other regions
- The base i386 StarCluster AMI is ami-899d49e0
- The base x86_64 StarCluster AMI is ami-999d49f0
- The base HVM StarCluster AMI is ami-4583572c
NODE_IMAGE_ID = ami-899d49e0
- instance type for all cluster nodes
- (options: cg1.4xlarge, c1.xlarge, m1.small, c1.medium, m2.xlarge, t1.micro, cc1.4xlarge, m1.medium, cc2.8xlarge, m1.large, m1.xlarge, m2.4xlarge, m2.2xlarge)
NODE_INSTANCE_TYPE = m1.small
- Uncomment to disable installing/configuring a queueing system on the
- cluster (SGE)
- DISABLE_QUEUE=True
- Uncomment to specify a different instance type for the master node (OPTIONAL)
- (defaults to NODE_INSTANCE_TYPE if not specified)
- MASTER_INSTANCE_TYPE = m1.small
- Uncomment to specify a separate AMI to use for the master node. (OPTIONAL)
- (defaults to NODE_IMAGE_ID if not specified)
- MASTER_IMAGE_ID = ami-899d49e0 (OPTIONAL)
- availability zone to launch the cluster in (OPTIONAL)
- (automatically determined based on volumes (if any) or
- selected by Amazon if not specified)
- AVAILABILITY_ZONE = us-east-1c
- list of volumes to attach to the master node (OPTIONAL)
- these volumes, if any, will be NFS shared to the worker nodes
- see "Configuring EBS Volumes" below on how to define volume sections
- VOLUMES = oceandata, biodata
- list of plugins to load after StarCluster's default setup routines (OPTIONAL)
- see "Configuring StarCluster Plugins" below on how to define plugin sections
- PLUGINS = myplugin, myplugin2
- list of permissions (or firewall rules) to apply to the cluster's security
- group (OPTIONAL).
- PERMISSIONS = ssh, http
- Uncomment to always create a spot cluster when creating a new cluster from
- this template. The following example will place a $0.50 bid for each spot
- request.
- SPOT_BID = 0.50
- Defining Additional Cluster Templates ##
- You can also define multiple cluster templates. You can either supply all
- configuration options as with smallcluster above, or create an
- EXTENDS=<cluster_name> variable in the new cluster section to use all
- settings from <cluster_name> as defaults. Below are example templates that
- use the EXTENDS feature:
- [cluster mediumcluster]
- Declares that this cluster uses smallcluster as defaults
- EXTENDS=smallcluster
- This section is the same as smallcluster except for the following settings:
- KEYNAME=myotherkey
- NODE_INSTANCE_TYPE = c1.xlarge
- CLUSTER_SIZE=8
- VOLUMES = biodata2
- [cluster largecluster]
- Declares that this cluster uses mediumcluster as defaults
- EXTENDS=mediumcluster
- This section is the same as mediumcluster except for the following variables:
- CLUSTER_SIZE=16
- Configuring EBS Volumes ##
- StarCluster can attach one or more EBS volumes to the master and then
- NFS_share these volumes to all of the worker nodes. A new [volume] section
- must be created for each EBS volume you wish to use with StarCluser. The
- section name is a tag for your volume. This tag is used in the VOLUMES
- setting of a cluster template to declare that an EBS volume is to be mounted
- and nfs shared on the cluster. (see the commented VOLUMES setting in the
- example 'smallcluster' template above) Below are some examples of defining
- and configuring EBS volumes to be used with StarCluster:
- Sections starting with "volume" define your EBS volumes
- [volume biodata]
- attach vol-c9999999 to /home on master node and NFS-shre to worker nodes
- VOLUME_ID = vol-c999999
- MOUNT_PATH = /home
- Same volume as above, but mounts to different location
- [volume biodata2]
- VOLUME_ID = vol-c999999
- MOUNT_PATH = /opt/
- Another volume example
- [volume oceandata]
- VOLUME_ID = vol-d7777777
- MOUNT_PATH = /mydata
- By default StarCluster will attempt first to mount the entire volume device,
- failing that it will try the first partition. If you have more than one
- partition you will need to set the PARTITION number, e.g.:
- [volume oceandata]
- VOLUME_ID = vol-d7777777
- MOUNT_PATH = /mydata
- PARTITION = 2
- Configuring Security Group Permissions ##
- Sections starting with "permission" define security group rules to
- automatically apply to newly created clusters. PROTOCOL in the following
- examples can be can be: tcp, udp, or icmp. CIDR_IP defaults to 0.0.0.0/0 or
- "open to the # world"
- open port 80 on the cluster to the world
- [permission http]
- PROTOCOL = tcp
- FROM_PORT = 80
- TO_PORT = 80
- open https on the cluster to the world
- [permission https]
- PROTOCOL = tcp
- FROM_PORT = 443
- TO_PORT = 443
- open port 80 on the cluster to an ip range using CIDR_IP
- [permission http]
- PROTOCOL = tcp
- FROM_PORT = 80
- TO_PORT = 80
- CIDR_IP = 18.0.0.0/8
- restrict ssh access to a single ip address (<your_ip>)
- [permission ssh]
- PROTOCOL = tcp
- FROM_PORT = 22
- TO_PORT = 22
- CIDR_IP = <your_ip>/32
- Configuring StarCluster Plugins ##
- Sections starting with "plugin" define a custom python class which perform
- additional configurations to StarCluster's default routines. These plugins
- can be assigned to a cluster template to customize the setup procedure when
- starting a cluster from this template (see the commented PLUGINS setting in
- the 'smallcluster' template above). Below is an example of defining a user
- plugin called 'myplugin':
- [plugin myplugin]
- NOTE: myplugin module must either live in ~/.starcluster/plugins or be
- on your PYTHONPATH
- SETUP_CLASS = myplugin.SetupClass
- extra settings are passed as __init__ arguments to your plugin:
- SOME_PARAM_FOR_MY_PLUGIN = 1
- SOME_OTHER_PARAM = 2
- Built-in Plugins ##
- The following plugins ship with StarCluster and should work out-of-the-box.
- Uncomment as needed. Don't forget to update your PLUGINS list!
- See http://web.mit.edu/star/cluster/docs/latest/plugins for plugin details.
- Use this plugin to install one or more packages on all nodes
- [plugin pkginstaller]
- SETUP_CLASS = starcluster.plugins.pkginstaller.PackageInstaller
- # list of apt-get installable packages
- PACKAGES = mongodb, python-pymongo
- Use this plugin to create one or more cluster users and download all user ssh
- keys to $HOME/.starcluster/user_keys/<cluster>-<region>.tar.gz
- [plugin createusers]
- SETUP_CLASS = starcluster.plugins.users.CreateUsers
- NUM_USERS = 30
- # you can also comment out NUM_USERS and specify exact usernames, e.g.
- # usernames = linus, tux, larry
- DOWNLOAD_KEYS = True
- Use this plugin to configure the Condor queueing system
- [plugin condor]
- SETUP_CLASS = starcluster.plugins.condor.CondorPlugin
- The SGE plugin is enabled by default and not strictly required. Only use this
- if you want to tweak advanced settings in which case you should also set
- DISABLE_QUEUE=TRUE in your cluster template. See the plugin doc for more
- details.
- [plugin sge]
- SETUP_CLASS = starcluster.plugins.sge.SGEPlugin
- MASTER_IS_EXEC_HOST = False
- The IPCluster plugin configures a parallel IPython cluster with optional
- web notebook support. This allows you to run Python code in parallel with low
- latency message passing via ZeroMQ.
- [plugin ipcluster]
- SETUP_CLASS = starcluster.plugins.ipcluster.IPCluster
- ENABLE_NOTEBOOK = True
- #set a password for the notebook for increased security
- NOTEBOOK_PASSWD = a-secret-password
- Use this plugin to create a cluster SSH "dashboard" using tmux. The plugin
- creates a tmux session on the master node that automatically connects to all
- the worker nodes over SSH. Attaching to the session shows a separate window
- for each node and each window is logged into the node via SSH.
- [plugin tmux]
- SETUP_CLASS = starcluster.plugins.tmux.TmuxControlCenter
- Use this plugin to change the default MPI implementation on the
- cluster from OpenMPI to MPICH2.
- [plugin mpich2]
- SETUP_CLASS = starcluster.plugins.mpich2.MPICH2Setup
- Configure a hadoop cluster. (includes dumbo setup)
- [plugin hadoop]
- SETUP_CLASS = starcluster.plugins.hadoop.Hadoop
- Configure a distributed MySQL Cluster
- [plugin mysqlcluster]
- SETUP_CLASS = starcluster.plugins.mysql.MysqlCluster
- NUM_REPLICAS = 2
- DATA_MEMORY = 80M
- INDEX_MEMORY = 18M
- DUMP_FILE = test.sql
- DUMP_INTERVAL = 60
- DEDICATED_QUERY = True
- NUM_DATA_NODES = 2
- Install and setup an Xvfb server on each cluster node
- [plugin xvfb]
- SETUP_CLASS = starcluster.plugins.xvfb.XvfbSetup