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) --deva > * If so, what would this look like? (I'm assuming some Ironic API endpoint > Nova > simply calls for counters - but any specific guidance here would be great.) > I > I appreciate any tips/suggestions, thank you. > > -- > Brad Morgan > > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: [email protected]?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
