Nova multi-nic
Once the hypervisors xenapi/libvirt are prepared to handle multiple nics and prepared to receive network_info from compute instead of looking it up themselves, the nova multi-nic feature can be put in place. Primary changes include:
1) removing mac_address column from the instances table and creating a mac_addresses table. This is for storing which instances own which mac addresses as well as which network each mac is for.
2) generation of mac addresses is moved to the network manager
3) allocation of mac addresses is handled by the network manager
4) network manager provides functionality for generating/storing mac address and IPs, and returning this information
5) compute calls allocation functionality, receives back a list of (network object, IP/mac_addr info dict) tuples
6) compute passes this list to the virt driver as a part of the spawn process.
7) assuming the virt layers are already set up to handle receiving network info and being able to handle multiple networks, mac_addresses and IPs as a apart of the xs_multi_nic and libvirt_multi_nic blueprints
Blueprint information
- Status:
- Complete
- Approver:
- Vish Ishaya
- Priority:
- Essential
- Drafter:
- Trey Morris
- Direction:
- Approved
- Assignee:
- Trey Morris
- Definition:
- Approved
- Series goal:
- Accepted for diablo
- Implementation:
- Implemented
- Milestone target:
- 2011.3
- Started by
- Vish Ishaya
- Completed by
- Thierry Carrez
Whiteboard
First appeared in diablo-3
I'm wondering about the other table being called nics or something along that line. I'm thinking we may want more data on the nic than just a mac address. For example, network_id for the network it needs to plug in to or information for QoS, etc.
Also, is there a wiki page for the spec?
Etherpad: https:/
--Vish
Plan for mac_address table was to have instance_id, mac_address, and network_id in a row. I'm perfectly happy with changing the table name to nics/vnics/vifs or whatever is more descriptive. Any other rows can be added later.
--trey
Work Items
Dependency tree
* Blueprints in grey have been implemented.