diff --git a/docs/source/appendices/example-rethinkdb-storage-setups.md b/docs/source/appendices/example-rethinkdb-storage-setups.md index eab35fa1..b12c9df5 100755 --- a/docs/source/appendices/example-rethinkdb-storage-setups.md +++ b/docs/source/appendices/example-rethinkdb-storage-setups.md @@ -2,18 +2,28 @@ ## Example 1: A Partition of an AWS Instance Store -Many [AWS EC2 instance types](https://aws.amazon.com/ec2/instance-types/) comes with an [instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html): temporary storage that disappears when the instance disappears. (Some instance types _don't_ come with an instance store, but you can attach EBS storage.) The size and setup of an instance store depends on the EC2 instance type. +Many [AWS EC2 instance types](https://aws.amazon.com/ec2/instance-types/) comes with an [instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html): temporary storage that disappears when the instance disappears. The size and setup of an instance store depends on the EC2 instance type. -We have some scripts for [deploying a _test_ BigchainDB cluster on AWS](../clusters-feds/deploy-on-aws.html). Those scripts include commands to set up a partition (`/dev/xvdb`) on the [instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) if that partition exists. Those commands can be found in the file `/deploy-cluster-aws/fabfile.py`, under `def install_rethinkdb()` (i.e. the function to install RethinkDB). +We have some scripts for [deploying a _test_ BigchainDB cluster on AWS](../clusters-feds/deploy-on-aws.html). Those scripts include commands to set up a partition (`/dev/xvdb`) on an [instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) for RethinkDB data. Those commands can be found in the file `/deploy-cluster-aws/fabfile.py`, under `def install_rethinkdb()` (i.e. the Fabric function to install RethinkDB). +An AWS instance store is convenient, but it's intended for "buffers, caches, scratch data, and other temporary content." Moreover: -TODO: Discuss if/when one would use the instance store to store RethinkDB data. +* You pay for all the storage, regardless of how much you use. +* You can't increase the size of the instance store. +* If the instance stops, terminates, or reboots, you lose the associated instance store. +* Instance store data isn't replicated, so if the underlying disk drive fails, you lose the data in the instance store. +* "You can't detach an instance store volume from one instance and attach it to a different instance." +The [AWS documentation says](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html), "...do not rely on instance store for valuable, long-term data. Instead, you can build a degree of redundancy (for example, RAID 1/5/6), or use a file system (for example, HDFS and MapR-FS) that supports redundancy and fault tolerance." + +**Even if you don't use an AWS instance store partition to store your node's RethinkDB data, you may find it useful to read the steps in `def install_rethinkdb()`: [see fabfile.py](https://github.com/bigchaindb/bigchaindb/blob/master/deploy-cluster-aws/fabfile.py).** ## Example 2: An Amazon EBS Volume -Amazon EBS volumes are always replicated. +TODO + +Note: Amazon EBS volumes are always replicated. ## Example 3: Using Amazon EFS @@ -21,7 +31,8 @@ Amazon EBS volumes are always replicated. TODO -## Example 4: A RAID Example? +## Other Examples? -Maybe make two EBS volumes look like one? +TODO +Maybe RAID, ZFS, HDFS, MapR-FS, ... (over EBS volumes, i.e. a DIY Amazon EFS)