Portworx support RWO and RWX volumes. Support snapshots. Snapshots can be stored locally and in S3. Volumes and snapshots creating/deleting are integrated with Kubernetes.
Ceph rbd support RWO volumes and cephfs support RWX volumes. Support snapshots. Snapshots can be exported as a file. Snapshot creating/deleting and RWX volumes are not integrated with kubernetes. These actions must be done natively with ceph/rbd utilities.
Portworx was deployed with Helm by using following doc:
Ceph was deployed with Ansible as a docker on kubernetes hosts:
CSI was not tested. For cephfs it is not ready for production use (https://github.com/ceph/ceph-csi).
Software versions:
In both cases additional manipulations not included in docs above were required: edit helm chart for portworx, install ceph-common on VMs for ceph, add rbd-provisioner, rbac rules and storage class.
Working with CephFS snapshot is not so convenient 'cause it requires to work with mounted file system.
Both systems can be integrated with Prometheus.
Postgresql/pgbench tool was used to test performance of storages. Used service,pod,pvc/pv yamls are here.
All tests were started on external server: 24 threads, 24 GB MEM.
Prometheus was installed on separate VM.
The following pgbench tests were used:
Init db:
time pgbench -h IP -p PORT -U test -i -s 5000 test
Read/Write:
pgbench -h IP -p PORT -U test -c 10 -j 10 -n -T 600 test
Read:
pgbench -h IP -p PORT -U test -c 10 -j 10 -n -S -T 600 test
Portworx is using etcd. To avoid running out of space for writes to the keyspace, the etcd keyspace history must be compacted and quote must be exceeded. Portworx and Ceph required to be recovered manually during numerous VM PowerOff and Shutdown. In this point the both system are similar.
Ceph has following advantages - Open Source licences, widespread use, numerous information in Internet. Working with Cephfs snapshots is not convenient.
Portworx has better performance of RWO volumes. But Portworx RWX volumes performance is very poor and can't be used for load services and applications.
Both system can be monitored by Prometheus.
Profile of the author