[RFC] Adding a Rados block driver to bhyve
Alan Somers
asomers at freebsd.org
Mon Mar 9 13:46:18 UTC 2020
On Mon, Mar 9, 2020 at 4:32 AM Willem Jan Withagen <wjw at digiware.nl> wrote:
> Hi all,
>
> And sorry for crosspoing three groups, but the answer can/could be a mix
> of things to do in these three areas.
>
> I have a prototype of bhyve running on Rados/Ceph working:
> https://github.com/freebsd/freebsd/pull/426
>
> But there are a few catches on how to get it in the FreeBSd sources...
>
> 1) Easiest would be to just compile it in with the code of the current
> bhyve.
> That will require librados/librbd libraries...
> Ceph of this purpose is LGPL2/3 and could go into contrib.
> In this case bhyve will hold the rbd-driver by default and a user
> does not
> need to do anything by himself
> But I have the feeling that this is the most unwanted scenario
>
> 2) User first installs a Ceph package and FreeBSD sources, and then
> recompiles
> bhyve with the option BHYVE_RBD.
> And then reinstalls this new version as bhyve or bhyve-rbd in
> /usr/sbin
>
> 3) Create a bhyve-rbd port.
> Problem with that is that it will require the FreeBSD source tree
> for the
> bhyve sources, but there is no Ports option for that?
> Or bhyve sources are manually copied into the port. And then
> try to keep these sources up to date.
> Then compile and install a bhyve-rbd into /usr/local/sbin
>
> 4) Create a bhyve-blockrbd port.
> This is much like 3) but instead of building a bhyve-rbd executable,
> it delivers a libblockrbd.so that is dynamically loadable by the
> standaard bhyve that comes with base.
>
> For this bhyve needs to be extended with dynamic loadable driver
> modules.
> This is reasonably doable, but is this acceptable for the bhyve
> maintainers?
>
> For building the port, the bhyve-blockrbd code will only need a
> limited set
> of files from /usr/src/usr.bin/bhyve thus limiting the chance of
> running out
> sequence with the bhyve from base.
>
> Looking over these 4 options, I think that 4 is the most desirable one?
> But 2 would parhaps be workable for users as well, but the project might
> think
> otherwise.
>
> Are there other options?
> And/or is 4 the best way to go, with 2 as a nice intermediate?
>
> Thanx,
> --WjW
>
Great work! I also agree that option 4 sounds like the best. There's
precedent for ports that require the FreeBSD Sources. For example, see
devel/py-libzfs or emulators/virtualbox-ose. You just need to define the
SRC_BASE variable.
More information about the freebsd-hackers
mailing list