Skip to main content

Single Node Installs: Storage and Backup Guidelines

General storage recommentations for single-node instances

  • /mntdata (oris awhere commonthe rootstandalone fordeployment allinstalls <component>_data_pathPostgreSQL variables)data and Element Deployment data. It should be a distinct mount pointpoint.
    • Ideally this would have an independent lifecycle from the server itself
    • Ideally this would be easily snapshot-able, either at a filesystem level or with the backing storage

Adminbot storage:

  • Files stored with uid=10006/gid=10006, sampledefault config uses /mnt/data/element-deployment/adminbot for single-node instances
    • The backing path for single node instances can be changed by setting bot_data_path in the adminbot config directory
    Storage space required is proportional to the number of user devices on the server. 1GB is sufficient for most servers
      The size of the PVC can be changed by setting bot_data_size in the adminbot config directory

      Auditbot storage:

      • Files stored with uid=10006/gid=10006, sample config uses /mnt/data/element-deployment/auditbot for single-node instances
        • The backing path for single node instances can be changed by setting bot_data_path in the auditbot config directory
        Storage space required is proportional to the number of events tracked. 1GB is sufficient with the sample config logfile_size / logfile_keep values
          The size of the PVC can be changed by setting bot_data_size in the auditbot config directory

          Dimension storage :

            Main:
              File stored with uid=10005/gid=1000, sample config uses /mnt/dimension for single-node instances
                The backing path for single node instances can be changed by setting bot_data_path in the dimension config directory Storage space is constant to store a single file. 10M is sufficient for every server
                  The size of the PVC can be changed by setting bot_data_size in the dimension config directory Postgres (in-cluster):
                    Files stored with uid=999/gid=999, sample config does not specify a default path for single-node instances
                      The backing path for single node instances can be changed by setting postgres_data_path in the dimension config directory Storage space is proportional to the number of integration instances. 5GB is sufficient for most servers
                        The size of the PVC can be changed by setting postgres_storage_size in the dimension directory folder

                        Synapse storage:

                        • Media:
                          • File stored with uid=10991/gid=10991, sample config uses /mnt/data/synapse-mediaelement-deployment/synapse for single-node instances
                            • The backing path for single node instances can be changed by setting media_host_data_path in parameters.yml
                          Storage space required grows with the number and size of uploaded media. 50GBFor ismore usedinformation, assee aESS starting point for PoC but can easily be exceeded depending on your use-case
                            The size of the PVC can be changed by setting media_size in parameters.yml
                            Sizing

                            Postgres (in-cluster) storage:

                            • Files stored with uid=999/gid=999, sampledefault config uses /mnt/data/synapse-postgres for single-node instances
                              • The backing path for single node instances can be changed by setting postgres_data_path in parameters.yml
                              Storage space is proportional to the activity on the homeserver. 5GB is used as a starting point for PoC but can easily be exceeded depending on traffic
                                The size of the PVC can be changed by setting postgres_storage_size in parameters.yml

                                Backup Guidance:

                                • Adminbot:
                                  • Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
                                • Auditbot:
                                  • Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
                                  Dimension:
                                  • Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
                                  Synapse Media:
                                  • Backups should be made by taking a snapshot of the PV (ideally) or rsyncing the backing directory to backup storage
                                  Postgres (in-cluster):
                                  • Backups should be made by kubectl -n element-onprem exec -it postgres-synapse-0 -- sh -c 'pg_dump -U $POSTGRES_USER $POSTGRES_DB' > synapse_postgres_backup_$(date +%Y%m%d-%H%M%S).sql
                                  Postgres (external):
                                  • Backup procedures as per your DBA
                                  Configuration:
                                  • Please ensure that your entire configuration directory (that contains at least parameters.yml & secrets.yml but may also include other sub-directories & configuration files) is regularly backed up
                                    • The suggested configuration path in Element's documentation is ~/.element-onpremise-config but could be anything. It is whatever directory you used with the installer.