[Hyper-V] Advanced networking support on Azure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cloud-init |
Fix Released
|
High
|
Unassigned | ||
cloud-init (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Xenial |
Fix Released
|
Medium
|
Unassigned | ||
Yakkety |
Won't Fix
|
Medium
|
Unassigned | ||
Zesty |
Fix Released
|
Medium
|
Unassigned |
Bug Description
=== Begin SRU Template ===
[Impact]
A new feature in Azure allows instances the ability to utilize
SR-IOV networking. Currently, Ubuntu images will fail to boot there.
[Test Case]
Testing this comes in the following parts:
a.) check that no regressions have leaked in outside of Azure.
b.) upgraded instance without SR-IOV device upgrade and reboot.
c.) fresh instance with SR-IOV and updated cloud-init and reboot.
d.) fresh instance without SR-IOV and updated cloud-init and reboot.
The cases above generally verify that users have not been exposed
to unexpected changes in behavior, and that the fix is correctly
applied.
After each boot, the user should collect logs, and generally look around
for evidence of failure. One tool that can be used to collected these
logs is 'save-old-data' at [1]. That checks for many common issues with
systemd boot.
[1] https:/
[Regression Potential]
The majority of the changes have been limited to the Azure code path.
Regressions then are likely limited to Azure users, and would most
likely present themselves as network configuration failures on reboot
or first boot.
[Other Info]
Upstream commit at
https:/
=== End SRU Template ===
We are in the process of rolling out SR-IOV in Azure (available as a preview now, contact me offline and we can work out getting your subscription addedif you want to try it). In general our normal synthetic interface appears as eth0 and the VF comes in as eth1. We intend to bond these interfaces together so that if the VF goes down, or the VM is migrated to where no VF is present, eth0 remains as the valid default interface.
At the moment we are handling the bonding via this script:
https:/
We were looking at ways to either integrate the behavior into cloud-init or invoke the script from cloud-init and do the right thing.
We recently observed after https:/
Is it possible that 1669860 needs to be expanded to cover our case or is there something we should be doing to make sure that change is working properly for SR-IOV in Azure?
Related branches
- Server Team CI bot: Approve (continuous-integration)
- cloud-init Commiters: Pending requested
-
Diff: 1463 lines (+887/-98)11 files modifiedcloudinit/cmd/main.py (+3/-0)
cloudinit/net/__init__.py (+154/-27)
cloudinit/net/eni.py (+2/-0)
cloudinit/net/renderer.py (+3/-1)
cloudinit/net/udev.py (+5/-2)
cloudinit/sources/DataSourceAzure.py (+95/-19)
cloudinit/sources/__init__.py (+14/-1)
cloudinit/stages.py (+5/-0)
tests/unittests/test_datasource/test_azure.py (+142/-32)
tests/unittests/test_datasource/test_common.py (+1/-1)
tests/unittests/test_net.py (+463/-15)
Changed in udev (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
status: | Triaged → Confirmed |
Changed in cloud-init: | |
status: | New → Fix Committed |
Changed in cloud-init (Ubuntu Xenial): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Yakkety): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu Yakkety): | |
importance: | Undecided → Medium |
Changed in cloud-init (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Fix Released |
Changed in cloud-init (Ubuntu Zesty): | |
status: | New → Confirmed |
importance: | Undecided → Medium |
description: | updated |
Changed in cloud-init (Ubuntu Yakkety): | |
status: | Fix Committed → Won't Fix |
Cloud-init is warning because the VF and synthetic (Hyper-V) NIC have the same MAC address. The following patch will suppress that warning in that situation.