jiwmware
Contributor
Contributor

vswitch lose physical adapters after reboot

Jump to solution

vswitch lose physical adapters after reboot

I created 4 standard vswitches with five NIC (one is spare).
I dedicated to each vswitch one NIC.

it's working fine until reboot.

After reboot two vswitch lose physical adapters in topology, so they are also not working anymore.
From 4 standard vswitches 2 of them lose NIC's, two of them are still working fine.

Now, from web client - I can't add NIC to this switches and I can't delete vswitch (any vswitch - also not the one that are working fine!)

But I can "manualy" add uplink - NIC to vswitch
via putty it's posibly to add NIC back to topology with command: esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=ORANGE

and then again, after reboot same 2 vswitches lose same NIC's.

It's a fresh instalation of ESXi 6,7:

Client version: 1.25.0

Client build number: 7872652

ESXi version: 6.7.0

ESXi build number: 8169922

Thank you form your help.

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
jiwmware
Contributor
Contributor

I found the solution on website: VMware Labs - Flings

and I'm sharing my solution.

Do you want Persisting USB NIC Bindings ?

They say:
It's a problem that there is currentlya limitation in ESXi where USB NIC bindings are picked up much later in the boot process and to ensure settings are preserved upon a reboot, the following needs to be added to /etc/rc.local.d/local.sh based on your configurations.

my solution/local.sh file is:

#!/bin/sh

# local configuration options

# Note: modify at your own risk!  If you do/use anything in this

# script that is not part of a stable API (relying on files to be in

# specific places, specific tools, specific output, etc) there is a

# possibility you will end up with a broken system after patching or

# upgrading.  Changes are not supported unless under direction of

# VMware support.

# Note: This script will not be run when UEFI secure boot is enabled.

#

# Note: STARTECH USB 3.0 USB-1 vusb0

# -------------------------------------------------

vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')

count=0

while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]] ]

do

    sleep 10

    count=$(( $count + 1 ))

    vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')

done

if [ "${vusb0_status}" = "Up" ]; then

    esxcfg-vswitch -L vusb0 ORANGE

    esxcfg-vswitch -M vusb0 -p "Management Network" ORANGE

    esxcfg-vswitch -M vusb0 -p "VM Network" ORANGE

#

# Note: create portgroups

# -------------------------------------------------

esxcli network vswitch standard portgroup add --portgroup-name=ORANGE-portgrup --vswitch-name=ORANGE

esxcli network vswitch standard portgroup add --portgroup-name=BLUE-portgrup --vswitch-name=BLUE

esxcli network vswitch standard portgroup add --portgroup-name=RED-portgrup --vswitch-name=RED

esxcli network vswitch standard portgroup add --portgroup-name=GREEN-portgroup --vswitch-name=vSwitch0

#

# Note: create vSwitches

# -------------------------------------------------

esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=ORANGE

esxcli network vswitch standard uplink add --uplink-name=vusb1 --vswitch-name=BLUE

esxcli network vswitch standard uplink add --uplink-name=vmnic32 --vswitch-name=RED

fi

#

# Note: STARTECH USB 3.0 USB-2 vusb1

# -------------------------------------------------

vusb1_status=$(esxcli network nic get -n vusb1 | grep 'Link Status' | awk '{print $NF}')

count=0

while [[ $count -lt 20 && "${vusb1_status}" != "Up" ]] ]

do

    sleep 10

    count=$(( $count + 1 ))

    vusb1_status=$(esxcli network nic get -n vusb1 | grep 'Link Status' | awk '{print $NF}')

done

if [ "${vusb1_status}" = "Up" ]; then

    esxcfg-vswitch -L vusb1 BLUE

    esxcfg-vswitch -M vusb1 -p "Management Network" BLUE

    esxcfg-vswitch -M vusb1 -p "VM Network" BLUE

fi

#

# Note: GIGALAN GLAABIT USB 3.0 USB-3 vmnic32

# -------------------------------------------------

vmnic32_status=$(esxcli network nic get -n vmnic32 | grep 'Link Status' | awk '{print $NF}')

count=0

while [[ $count -lt 20 && "${vmnic32_status}" != "Up" ]] ]

do

    sleep 10

    count=$(( $count + 1 ))

    vmnic32_status=$(esxcli network nic get -n vmnic32 | grep 'Link Status' | awk '{print $NF}')

done

if [ "${vmnic32_status}" = "Up" ]; then

    esxcfg-vswitch -L vmnic32 RED

    esxcfg-vswitch -M vmnic32 -p "Management Network" RED

    esxcfg-vswitch -M vmnic32 -p "VM Network" RED

fi

exit 0

View solution in original post

0 Kudos
7 Replies
ThompsG
Virtuoso
Virtuoso

Hi jiwmware and welcome to the community!

When you say “not working” do you mean they are showing as disconnected or that network traffic doesn’t pass over them? Does normal service resume after a period of time of the server being running?

Kind regards.

0 Kudos
jiwmware
Contributor
Contributor

I tried to make backup:

vim-cmd hostsvc/firmware/sync_config

vim-cmd hostsvc/firmware/backup_config

and I find out that result after restore host configuration: 

vim-cmd -d info /hostsvc/firmware/restore_config /tmp/configBundle.tgz force

or

vim-cmd /hostsvc/firmware/restore_config /tmp/configBundle.tgz force

network of the host went to the same state as after reboot,

so

2 vswitches have NIC other two don't have NIC attached to vswitch.

Probably becouse restore command make automatic reboot after restore of the host.

0 Kudos
jiwmware
Contributor
Contributor

not working mean that in topology there is no NIC adapter

and also

that ping not workind throu this NIC

now is "No physical adapters" before reboot there were NIC, whish I assigned it to vswitch

no NIC.JPG

0 Kudos
ThompsG
Virtuoso
Virtuoso

I’m assuming you checked that the backup file timestamps have changed before the restore is run? Sounds like the issue is the configuration is not fully committed before the backup/restore is run.

Kind regards.

0 Kudos
jiwmware
Contributor
Contributor

It looks to me, that something happen with NIC's or vswitch after reboot.

Everything's working fine until reboot.

btw.

I have:
1x Intel NIC

2x usb 3.0 NIC

2x Startech USB 3.0 NIC (Double NIC in one adapter)

0 Kudos
jiwmware
Contributor
Contributor

this is result after reboot - ORANGE and BLUE have no uplinks (no NIC's)

Before reboot ORANGE and BLUE have both assigned NIC's and both woreked (also VM)

Ws.JPG

0 Kudos
jiwmware
Contributor
Contributor

I found the solution on website: VMware Labs - Flings

and I'm sharing my solution.

Do you want Persisting USB NIC Bindings ?

They say:
It's a problem that there is currentlya limitation in ESXi where USB NIC bindings are picked up much later in the boot process and to ensure settings are preserved upon a reboot, the following needs to be added to /etc/rc.local.d/local.sh based on your configurations.

my solution/local.sh file is:

#!/bin/sh

# local configuration options

# Note: modify at your own risk!  If you do/use anything in this

# script that is not part of a stable API (relying on files to be in

# specific places, specific tools, specific output, etc) there is a

# possibility you will end up with a broken system after patching or

# upgrading.  Changes are not supported unless under direction of

# VMware support.

# Note: This script will not be run when UEFI secure boot is enabled.

#

# Note: STARTECH USB 3.0 USB-1 vusb0

# -------------------------------------------------

vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')

count=0

while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]] ]

do

    sleep 10

    count=$(( $count + 1 ))

    vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')

done

if [ "${vusb0_status}" = "Up" ]; then

    esxcfg-vswitch -L vusb0 ORANGE

    esxcfg-vswitch -M vusb0 -p "Management Network" ORANGE

    esxcfg-vswitch -M vusb0 -p "VM Network" ORANGE

#

# Note: create portgroups

# -------------------------------------------------

esxcli network vswitch standard portgroup add --portgroup-name=ORANGE-portgrup --vswitch-name=ORANGE

esxcli network vswitch standard portgroup add --portgroup-name=BLUE-portgrup --vswitch-name=BLUE

esxcli network vswitch standard portgroup add --portgroup-name=RED-portgrup --vswitch-name=RED

esxcli network vswitch standard portgroup add --portgroup-name=GREEN-portgroup --vswitch-name=vSwitch0

#

# Note: create vSwitches

# -------------------------------------------------

esxcli network vswitch standard uplink add --uplink-name=vusb0 --vswitch-name=ORANGE

esxcli network vswitch standard uplink add --uplink-name=vusb1 --vswitch-name=BLUE

esxcli network vswitch standard uplink add --uplink-name=vmnic32 --vswitch-name=RED

fi

#

# Note: STARTECH USB 3.0 USB-2 vusb1

# -------------------------------------------------

vusb1_status=$(esxcli network nic get -n vusb1 | grep 'Link Status' | awk '{print $NF}')

count=0

while [[ $count -lt 20 && "${vusb1_status}" != "Up" ]] ]

do

    sleep 10

    count=$(( $count + 1 ))

    vusb1_status=$(esxcli network nic get -n vusb1 | grep 'Link Status' | awk '{print $NF}')

done

if [ "${vusb1_status}" = "Up" ]; then

    esxcfg-vswitch -L vusb1 BLUE

    esxcfg-vswitch -M vusb1 -p "Management Network" BLUE

    esxcfg-vswitch -M vusb1 -p "VM Network" BLUE

fi

#

# Note: GIGALAN GLAABIT USB 3.0 USB-3 vmnic32

# -------------------------------------------------

vmnic32_status=$(esxcli network nic get -n vmnic32 | grep 'Link Status' | awk '{print $NF}')

count=0

while [[ $count -lt 20 && "${vmnic32_status}" != "Up" ]] ]

do

    sleep 10

    count=$(( $count + 1 ))

    vmnic32_status=$(esxcli network nic get -n vmnic32 | grep 'Link Status' | awk '{print $NF}')

done

if [ "${vmnic32_status}" = "Up" ]; then

    esxcfg-vswitch -L vmnic32 RED

    esxcfg-vswitch -M vmnic32 -p "Management Network" RED

    esxcfg-vswitch -M vmnic32 -p "VM Network" RED

fi

exit 0

View solution in original post

0 Kudos