[openstack-dev] [ironic] [nova] [neutron] get_all_bw_counters in the Ironic virt driver

Ihar Hrachyshka ihrachys at redhat.com
Fri Jul 29 09:50:04 UTC 2016


Devananda van der Veen <devananda.vdv at 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



More information about the OpenStack-dev mailing list