Feature #22355
closedceph-volume should handle simple filestore OSD creates
0%
Description
Enhancment request for ceph-volume
For simple setups, I feel that ceph-volume should be as easy to use as ceph-disk. The ceph-disk command
will create an OSD on a wiped raw device for either bluestore or filestore, without any additional
steps. Both these ceph-disk commands will create a working OSD:
/usr/sbin/ceph-disk prepare --filestore -- /dev/sdc
/usr/sbin/ceph-disk prepare --bluestore -- /dev/sdc
The ceph 12.2.2 ceph-volume command will create a bluestore OSD on a wiped raw device without any additional steps:
/usr/sbin/ceph-volume lvm create --bluestore --data /dev/sdc
But trying to create a filestore OSD on a wiped raw device with ceph-volume fails:
/usr/sbin/ceph-volume lvm create --filestore --data /dev/sdc
--> RuntimeError: --journal is required when using --filestore
created osds:
As ceph-volume is a replacement for ceph-disk, I feel that it should be as simple to use.
In the last case, where ceph-volume is called with --filestore and without --journal on a
raw device, it should create a journal lvm the size of osd_journal_size and use the rest
of the device as the data lvm. This would make it more of drop-in replacement for ceph-disk.
Updated by Alfredo Deza over 6 years ago
- Status changed from New to Rejected
- Assignee set to Alfredo Deza
Thank you for raising this. We explicitly require a ``--journal`` flag when using filestore because ceph-volume uses logical volumes behind the scenes for the OSD data and it is significantly difficult to try and (correctly) determine how to go around "carving out" a filestore device from information passed in.
ceph-disk has a few mechanisms to try and be helpful here to carve out partitions from full devices. ceph-volume does not create partitions and will probably not be creating them as that has been a tremendous source of issues for ceph-disk. A real use case scenario will most likely want to provide granular information about filestore devices to use, vs. having ceph-volume apply a blanket/naive default.