Storage

How to use storage in the cluster

We can group storage into a few categories:

  • Block (RW0 PVC)
  • Filesystem (RWX PVC i.e for Wordpress PVC)
  • Object storage (S3)

Block storage

Block storage is i.e how Digitalocean and Hetzner cloud PVC's work. In the bottom they also run rook-ceph, however most likely due to access control restraints they don't have "Filesystem" or RWX PVC's. Some other providers has this such as Azure, Google and AWS.

Block storage makes sense when the applications themselves do replication. Which is normal for databases.

Block storage - Hetzner cloud

Hetzner cloud supports block storage through their CSI. This means all cloud instances can add block storage, the advantage this solution has is that it can scale to 10TB and everything related to redundancy is handled by Hetzner (data is replicated at least 3 times). However the performance leaves a little bit to be desired.

Usage Applications that require less performance but needs high replication. I.e backups, pipeline systems, systems which require less performance but where S3 is too slow, i.e log systems.

Block storage - Local storage provider

Local storage provider is another CSI which can use the filesystem drive which the cloud or root instances run on. This drive is an NVMe drive with very high performance. It's very suitable for databases which replicate on their own, the downside is that the storage is limited and depending on if you run the application on cloud or root servers, it might require at least 3 nodes for HA/enough replication.

The RAID/replication depends on if this provider is used on a cloud instance or root server, cloud instances are configured in RAID10 with 3 disks, meanwhile root servers only have raw disks and require other means of replication.

Usage Databases which require high performance, but stores less data. I.e postgres.