[openstack-dev] Discussion about where to put database for bare-metal provisioning (review 10726)

Michael J Fork mjfork at us.ibm.com
Wed Aug 15 22:17:21 UTC 2012


I am interested in finding a solution that enables bare-metal and
virtualized requests to be serviced through the same scheduler where the
compute_nodes table has a full view of schedulable resources.  This would
seem to simplify the end-to-end flow while opening up some additional use
cases (e.g. dynamic allocation of a node from bare-metal to hypervisor and
back).

One approach would be to have a proxy running a single nova-compute daemon
fronting the bare-metal nodes .  That nova-compute daemon would report up
many HostState objects (1 per bare-metal node) to become entries in the
compute_nodes table and accessible through the scheduler HostManager
object.  The HostState object would set cpu_info, vcpus, member_mb and
local_gb values to be used for scheduling with the hypervisor_host field
holding the bare-metal machine address (e.g. for IPMI based commands) and
hypervisor_type = NONE.  The bare-metal Flavors are created with an
extra_spec of hypervisor_type= NONE and the corresponding
compute_capabilities_filter would reduce the available hosts to those
bare_metal nodes.  The scheduler would need to understand that
hypervisor_type = NONE means you need an exact fit (or best-fit) host vs
weighting them (perhaps through the multi-scheduler).  The scheduler would
cast out the message to the <topic>.<service-hostname> (code today uses the
HostState hostname), with the compute driver having to understand if it
must be serviced elsewhere (but does not break any existing implementations
since it is 1 to 1).

Does this solution seem workable? Anything I missed?

Michael

-------------------------------------------------
Michael Fork
Cloud Architect, Emerging Solutions
IBM Systems & Technology Group

David Kang <dkang at isi.edu> wrote on 08/15/2012 11:28:34 AM:

> From: David Kang <dkang at isi.edu>
> To: OpenStack Development Mailing List <openstack-
> dev at lists.openstack.org>, "openstack at lists.launchpad.net
> (openstack at lists.launchpad.net)" <openstack at lists.launchpad.net>,
> Cc: mkkang at isi.edu, Ken Ash <50barca at gmail.com>, VTJ NOTSU Arata
> <notsu at virtualtech.jp>
> Date: 08/15/2012 02:08 PM
> Subject: [openstack-dev] Discussion about where to put database for
> bare-metal provisioning (review 10726)
>
>
>
>  Hi,
>
>  This is call for discussion about the code review 10726.
> https://review.openstack.org/#/c/10726/
> Mark asked why we implemented a separata database for bare-metal
provisioning.
> Here we describe our thought.
> We are open to discussion and to the changes that the community
recommends.
> Please give us your thoughts.
>
>  NTT Docomo and USC/ISI have developed bare-metal provisioning.
> We created separate database to describe bare-metal nodes, which
> consists of 5 tables now.
> Our initial implementation assumes the database is not a part of
> nova database.
> In addition to the reasons described in the comments of the code review,
> here is another reason we decided a separate database for baremetal
> provisioning.
>
> Bare-metal database is mainly used by bare-metal nova-compute.
> Since bare-metal nova-compute manages multiple bare-metal machines,
> it needs to keep/update the information of bare-metal machines.
> If the bare-metal database is in the main nova db, accessing nova db
> remotely by
> bare-metal nova-compute is inevitable.
> Once Vish told us that shared db access from nova-compute is not
desirable.
>
> It is possible to make the scheduler do the job of bare-metal
nova-compute.
> However, it would need a big changes in how the scheduler and a
nova-compute
> communicates. For example, currently, the scheduler casts an instance to
a
> nova-compute. But for bare-metal node, the scheduler should cast an
instance
> to a bare-metal machine through bare-metal nova-compute.
> Bare-metal nova-compute should boot the machine, transfer kernel, fs,
etc.
> So, bare-metal nova-compute should know the id of bare-metal node
> and other information
> for booting (PXE ip address, ...) and more.
> That information should be sent to bare-metal nova-compute by the
scheduler.
>
> If frequent access of bare-metal tables in nova db from bare-metal
> nova-compute
> is OK, we are OK to put the bare-metal tables into nova db.
>
>  Please let us know your opinions.
>
>  Thanks,
>  David, Mikyung @ USC/ISI
>
> ----------------------
> Dr. Dong-In "David" Kang
> Computer Scientist
> USC/ISI
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20120815/83410690/attachment-0001.html>


More information about the OpenStack-dev mailing list