isle/docs/operator/contributing-storage.md

85 lines
2.6 KiB
Markdown

# Contributing Storage
This document is for you if your host machine can be reliably be online at all
times and has 1GB or more of unused drive space you'd like to contribute to the
network.
## Set Up Your Firewall
The Isle daemon will automatically allow the ports used for your storage
allocations in Isle's builtin firewall. See the doc on
[Firewalls](./firewalls.md), to be sure that your host's firewall is properly
set up for providing storage.
## Configure Isle
See the [Configuring Networks](./configuring-networks.md) document for notes on
how to configure Isle networks. This guide assumes configuration using the CLI.
The `isle storage allocation` sub-commands can be used to inspect and manage the
storage allocations provided by the host.
```bash
isle storage allocations list
# []
isle storage allocation add \
--data-path /mnt/drive/isle/data \
--meta-path /mnt/drive/isle/meta \
--capacity 100
isle storage allocations list
# - index: 0
# data_path: /mnt/drive/isle/data
# meta_path: /mnt/drive/isle/meta
# capacity: 100
# s3_api_port: 3901
# rpc_port: 3900
# admin_port: 3902
```
The above example shows 100GB of storage being added to the network at
`/mnt/drive/isle/data`. It's important to remember that the same data or meta
directory cannot be shared between different allocations or different networks.
The meta directory doesn't store very much data. If possible it's better to
place the meta directory on a fast drive like an SSD, while the data directory
for the same allocation remains on a large spinning-disk drive. This is not a
requirement though, and the network will function fine either way.
## Removing Allocations
If you later decide to no longer provide storage the
`isle storage allocations remove` command can be used to remove it. Each
allocation is identified by its index, as returned by
`isle storage allocations list`.
```bash
isle storage allocations list
# - index: 0
# data_path: /mnt/drive/isle/data
# meta_path: /mnt/drive/isle/meta
# capacity: 100
# s3_api_port: 3901
# rpc_port: 3900
# admin_port: 3902
isle storage allocation remove --index=0
isle storage allocations list
# []
```
Once removed, it is advisable to wait some time before removing storage
allocations from other hosts. This ensures that all data which was previously
on this host has had a chance to fully replicate to multiple other hosts.
## Further Reading
Isle uses the [garage][garage] project for its storage system. See the
[Managing Garage](managing-garage.md) document for more
information on how to interact directly with the garage instance being run by
isle.
[garage]: https://garagehq.deuxfleurs.fr/documentation/quick-start/