Devananda van der Veen <devananda....@gmail.com> wrote:



On 07/28/2016 05:40 PM, Brad Morgan wrote:
I'd like to solicit some advice about potentially implementing
get_all_bw_counters() in the Ironic virt driver.

https://github.com/openstack/nova/blob/master/nova/virt/driver.py#L438
Example Implementation:
https://github.com/openstack/nova/blob/master/nova/virt/xenapi/driver.py#L320

I'm ignoring the obvious question about how this data will actually be
collected/fetched as that's probably it's own topic (involving neutron), but I
have a few questions about the Nova -> Ironic interaction:

Nova
* Is get_all_bw_counters() going to stick around for the foreseeable future? If
not, what (if anything) is the replacement?

Ironic
* I assume Ironic would be responsible for knowing how to fetch bandwidth
counters for a given instance - correct?

The nova.virt.ironic driver would be responsible for implementing that method -- but I don't think that it makes sense to fetch that information from Ironic.

In some cases, it may be possible for the Node's management controller (eg, the
iLO) to collect/measure/expose network traffic counters for each physical
interface on the Node. None of Ironic's in-tree drivers support gathering this data, afaik; Ironic isn't capturing it, and we don't have an API to expose it
today. If we went this route, it would be a vendor-specific thing, and not
supported by the _*ipmitool class of drivers. In other words, I don't think we could have a fully open source production-oriented implementation of this feature.

On the other hand, with the Neutron integration now underway, if one were using Neutron and OVS or OVN to manage the physical switches, then I would think that
Neutron could expose the bandwidth counters on the VIFs associated with the
Instance // with the user-defined Ports. I believe OVS supports this, but I
don't see anything in the Neutron API that actually exposes it... (IANANE, so it
may very well be there and I just didn't find it)

I'll defer to Neutron folks here. If the VIF's bandwidth counters can be fetched from neutron, that would be ideal, as it should work regardless of the server's
management controller.

(I've added [neutron] to the subject line to solicit their input)

The only metering feature I know in neutron is for L3 metering, that measures traffic per router, not per port:

http://docs.openstack.org/admin-guide/networking_adv-features.html#l3-metering

It would take a completely new feature in neutron to expose traffic per port. I don’t think there would be a problem of backends not supporting this feature, but it would take some API design work.

I don’t know of any plans to expose this information through neutron API.

Ihar

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to