Hi Rafael,

Thanks for your reply.

Here's the output of the command:

root@test-kvm-03:/var/log/cloudstack/agent# ovs-vsctl list-br | sed
'{:q;N;s/\\n/%/g;t q}'
The program 'ovs-vsctl' is currently not installed.  You can install it by
typing:
apt-get install openvswitch-switch

I believe the command is only applicable if we are using OpenVSwitch. We
are using the normal Ubuntu network bridges rather than using OpenVSwitch.
Furthermore, we are trying to roll back to 4.2 and this issue happens when
I want to start the agent after I downgraded the agent to 4.2. Shouldn't we
be checking the 4.2 source code instead?

Looking forward to your reply, thank you.

Cheers.


On Thu, Oct 20, 2016 at 8:38 PM, Rafael Weingärtner <
rafaelweingart...@gmail.com> wrote:

> Hi, Anonymous fellow ;)
> Let’s see if I can help you a little bit. I am checking the ACS 4.9 source
> code.
>
> The error is thrown at line 896 of class
> “com.cloud.hypervisor.kvm.resource.LibvirtComputingResource”.
> The condition that causes the error is “_pifs.get("private") == null”.
> “_pifs” if a map. The key “private” is added to the map at line 1124, if
> condition “_guestBridgeName != null && bridge.equals(_guestBridgeName)” is
> met.
> The variable “_guestBridgeName” is a String that can receive the value of
> “guest.network.device” parameter or “_privBridgeName” variable. This
> process happens at lines 752-755. The process of assigning a value to
> “_privBridgeName” happens at lines 747-750. The default value for
> “_privBridgeName” is “cloudbr1”. The default can be overridden by
> “private.network.device” parameter.
>
> Having detailed the parameter. Let's see how ACS gets the “bridge” value.
> It gets that value from code at line 1113 “cmdout.split("%")”. The variable
> “cmdout” contains the output of the following OS command: “ovs-vsctl
> list-br | sed '{:q;N;s/\\n/%/g;t q}'”.
>
> Can you run the command and check its output?
>
>
> On Thu, Oct 20, 2016 at 8:49 AM, Cloud List <cloud-l...@sg.or.id> wrote:
>
> > Hi,
> >
> > We are using ACS version 4.2 / 4.9 on our test environment. We are using
> > Ubuntu 12.04 as the operating system and KVM as the hypervisor.
> >
> > We are trying to simulate an upgrade from ACS 4.2 to 4.9 and roll-back
> from
> > 4.9 to 4.2 on our test environment. The upgrade went smooth, and the
> > roll-back went well as well except when we need to start the agent after
> > downgrading the agent.
> >
> > After uninstalling cloudstack-agent version 4.9 and installing back
> > cloudstack-agent version 4.2, I am not able to start the agent with below
> > error messages:
> >
> > ====
> > 2016-10-20 17:32:28,187 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > cloud0/bridge
> > 2016-10-20 17:32:28,187 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) Found bridge cloud0
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/lo/bridge
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file
> > /sys/devices/virtual/net/cloudbr1/bridge
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) Found bridge cloudbr1
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet4/bridge
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet5/bridge
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet6/bridge
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet7/bridge
> > 2016-10-20 17:32:28,188 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet8/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet9/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet0/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet1/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet2/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet3/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > virbr0/bridge
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) Found bridge virbr0
> > 2016-10-20 17:32:28,189 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet11/bridge
> > 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet12/bridge
> > 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet13/bridge
> > 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet14/bridge
> > 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet10/bridge
> > 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking for pif for bridge cloud0
> > 2016-10-20 17:32:28,190 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) matchPifFileInDirectory: file name 'vnet1'
> > 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) matchPifFileInDirectory: file name 'vnet2'
> > 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) matchPifFileInDirectory: file name 'vnet5'
> > 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) failing to get physical interface from bridge
> cloud0,
> > did not find an eth*, bond*, vlan*, em*, or p*p* in
> > /sys/devices/virtual/net/cloud0/brif
> > 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking for pif for bridge cloudbr1
> > 2016-10-20 17:32:28,191 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) matchPifFileInDirectory: file name 'eth1'
> > 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking for pif for bridge virbr0
> > 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) failing to get physical interface from bridge
> virbr0,
> > did not find an eth*, bond*, vlan*, em*, or p*p* in
> > /sys/devices/virtual/net/virbr0/brif
> > 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) done looking for pifs, no more bridges
> > 2016-10-20 17:32:28,192 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) Failed to get private nic name
> > 2016-10-20 17:32:28,192 ERROR [cloud.agent.AgentShell] (main:null)
> (logid:)
> > Unable to start agent: Failed to get private nic name
> > ====
> >
> > Below is the result of brctl show and the content of
> > /etc/network/interfaces:
> >
> > ====
> > root@test-kvm-03:/var/log/cloudstack/agent# brctl show
> > bridge name     bridge id               STP enabled     interfaces
> > cloud0          8000.fe00a9fe00f8       no              vnet1
> >                                                         vnet2
> >                                                         vnet5
> > cloudbr1                8000.d067e5ec82c0       no              eth1
> >                                                         vnet0
> >                                                         vnet10
> >                                                         vnet11
> >                                                         vnet12
> >                                                         vnet13
> >                                                         vnet14
> >                                                         vnet3
> >                                                         vnet4
> >                                                         vnet6
> >                                                         vnet7
> >                                                         vnet8
> >                                                         vnet9
> > virbr0          8000.000000000000       yes
> > ====
> >
> > /etc/network/interfaces:
> >
> > ====
> > # The loopback network interface
> > auto lo
> > iface lo inet loopback
> >
> > auto eth1
> > #iface eth1 inet static
> > iface eth1 inet manual
> >
> > auto cloudbr1
> > iface cloudbr1 inet static
> > bridge_ports eth1
> >         address 192.168.0.201
> >         netmask 255.255.255.0
> >         network 192.168.0.0
> >         broadcast 192.168.0.255
> >         gateway 192.168.0.1
> >         dns-nameservers 8.8.8.8 8.8.4.4
> >         dns-search xxxxx.com
> >
> > auto cloudbr1:0
> > iface cloudbr1:0 inet static
> >         address 192.168.3.201
> >         netmask 255.255.255.0
> >         network 192.168.3.0
> >         broadcast 192.168.3.255
> > ====
> >
> > It seems that the error messages are complaining about no physical
> > interface being added into cloud0 and virbr0 bridges. I tried to add
> eth1,
> > cloudbr1 into the bridges but it didn't work. Deleting the cloud0 and
> > virbr0 bridges doesn't help either, agent is still complaining about
> cannot
> > find "pifs":
> >
> > ====
> > 2016-10-20 18:00:48,331 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/lo/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file
> > /sys/devices/virtual/net/cloudbr1/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) Found bridge cloudbr1
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet4/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet5/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet6/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet7/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet8/bridge
> > 2016-10-20 18:00:48,332 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet9/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet0/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet1/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet2/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> vnet3/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet11/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet12/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet13/bridge
> > 2016-10-20 18:00:48,333 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet14/bridge
> > 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking in file /sys/devices/virtual/net/
> > vnet10/bridge
> > 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) looking for pif for bridge cloudbr1
> > 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) matchPifFileInDirectory: file name 'eth1'
> > 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) done looking for pifs, no more bridges
> > 2016-10-20 18:00:48,334 DEBUG [kvm.resource.LibvirtComputingResource]
> > (main:null) (logid:) Failed to get private nic name
> > 2016-10-20 18:00:48,334 ERROR [cloud.agent.AgentShell] (main:null)
> (logid:)
> > Unable to start agent: Failed to get private nic name
> > ====
> >
> > I understand that the required bridge information is supposed to be added
> > by CloudStack during the time when the host is added. Is there a way how
> I
> > can add the bridge information again manually without having to delete
> and
> > re-add the host into CloudStack? The reason is because we want to keep
> the
> > VMs running during the downgrade, deleting and re-adding the host into
> > CloudStack will shutdown the VMs.
> >
> > Any advice is greatly appreciated.
> >
> > Thank you.
> >
> > -ip-
> >
>
>
>
> --
> Rafael Weingärtner
>

Reply via email to