Ceph and erasure coding

Can you change the ceph backend from replication to erasure coding right AFTER you have installed openstack? I am using the Openstack-on-lxd instructions to get an environment up and running on a VM and do not want or need replication mode on ceph. In order to reduce the storage footprint in the VM, I want to use erasure coding so that ceph acts more like RAID. I will manage data recovery via VM snapshots.

I am not certain of the proper approach to take as I don't see how to configure erasure coding on ceph as part of any of the openstack install bundles, i.e. openstack-on-lxd, openstack install with conjure-up, openstack install via ansible, etc. I want to make sure I can install openstack, change the ceph config to use erasure coding, reboot the whole thing and not have openstack break.

Do I have to install openstack one service at a time to get this config to work?

1 answer

Erasure coding is a per storage pool configuration. For technical reasons out of scope an erasure coded pool must be paired with a replicated pool to do RBD block devices. The replicated pool holds the metadata for the rbd device while the actual data goes to the erasure coded pool. To the best of my knowledge the rbd driver does not support erasure coding as it does not know how to set a data pool. Erasure coding is set at pool creation so you cannot just change in place from replicated to erasure coding. You will also probably want to run luminous or mimic with bluestore osds so you can turn on allow_ec_overwrites to get acceptable performance.