Partitioning

We strongly advise split the filesystem used by grape in a specific way as described here. This should avoid issues with docker or logs influencing grape when storage is getting full.

Grape

The grape application lives in /data/grape - this volume should have some 100GB to store backups of settings files, sentry data etc.

Grape application data is located in /data/grape/data/application This should absolutely be a separate volume with sufficient space to hold all the messages, attachments etc. See requirements for appropriate storage size

Important: This volume should never reach more than 85% capacity. Make sure there are respective alerts in place in your monitoring. At 90% capacity Elasticsearch can switch to a read only mode, in which posting messages becomes impossible.

Docker

All the docker related data lives in /var/lib/docker and docker can consume a lot of space (redundant volumes, old containers etc). This must be a separate volume from grape, otherwise docker could cause grape outages with No space left on device errors.

This volume should have around 100 GB of space and old data can be cleaned on a regular basis using the following two commands:

docker system prune -a
docker volume prune

Logs

All logs grape produces ends up in /data/grape/logs. If you have a logs volume, we advise to mount it in this location. This must be a separate volume from grape, otherwise some often occuring error logs could fill the partition and cause grape outages with No space left on device errors.

This volume should have some 10-50 GB of space and use logrotate.

Volumes overview

The grape VM should have 4 volumes in total:

  • /data/grape - 100 GB (grape install packaages, sentry data, some small files like settings, docker-compose.yml files etc.)

  • /data/grape/data/application - see requirements for sizing (main volume for grape data)

  • /var/lib/docker - 100 GB (docker related data)

  • /data/grape/logs - 10-50 GB (grape logs)