lvm: add sizing arguments to prepare and create.
This adds options to size to-be-created LVs in the prepare and create
subcommands. Sizing can be done explicitly by passing a sizes or
implicitly by specifying the number of slots per [data|journal|wal|db]
device. The former will try to create a LV of the specified size and use
that to create OSDs if it succeeds. The latter will carve up the device
size into $n slots and use one of those slots for the to-be-created OSD.
If partitions or LVs are passed these options are ignored.
This also creates the foundation to move to byte-based sizing, by moving
VolumeGroup lvm querying and size calculation to bytes as the base unit.
Fixes: https://tracker.ceph.com/issues/43299
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
(cherry picked from commit
8b8913ad3c0b8ceae9f458fd8d3ec292c5ff5eb1)