Storage options

  • Block: A raw block device that a container can use; these will be RWO or ReadWriteOnce, which means only one container can have it mounted read/write at a time.
  • Filesytem: A shared filesystem like NFS; these are RWX or ReadWriteMany, which means that multiple containers can have it mounted read/write.
  • Object: HTTP storage, typeically with an S3-compatible API.

Ceph does block, object, AND filesystem storage.

Block storage #

  • Longhorn is a little easier to get started with, and we did use it originally, but it is less flexible. It uses free disk spaces on an existing filesystem. (Is there a performance penalty for that?)
  • Ceph is more mature, and more featureful. It offers block, object, and filesystem storage. It can use raw storage in various formats; we use raw block devices here. SUPER complicated.
  • OpenEBS: ?
  • SeaweedFS: ?
  • Others?

Object storage #

Minio looks cool, and I have heard it is less complex than Ceph. However, its recommended storage driver directpv cannot be installed via CI/CD.

Ceph doesn’t have this limitation, so we’re using it for now.