mxs kolo
2015-Apr-08 13:38 UTC
[libvirt-users] Centos 7.1.1503 + libvirt 1.2.14 = broken direct network mode
Hi all. I use LXC on Centos 7 x86-64, with libvirt version 1.2.6 and 1.2.12 My container has bridged network: # virsh dumpxml test1 <domain type='lxc'> <name>test1</name> <uuid>518539ab-7491-45ab-bb1d-3d7f11bfb0b1</uuid> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <memtune> <hard_limit unit='KiB'>1048576</hard_limit> <soft_limit unit='KiB'>1048576</soft_limit> <swap_hard_limit unit='KiB'>2097152</swap_hard_limit> </memtune> <vcpu placement='static'>2</vcpu> <os> <type arch='x86_64'>exe</type> <init>/sbin/init</init> </os> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/libvirt_lxc</emulator> <filesystem type='block' accessmode='passthrough'> <source dev='/dev/data/test1'/> <target dir='/'/> </filesystem> <filesystem type='ram' accessmode='passthrough'> <source usage='524288' units='KiB'/> <target dir='/dev/shm'/> </filesystem> <interface type='direct'> <mac address='02:00:00:1a:a9:54'/> <source dev='br0' mode='bridge'/> </interface> <console type='pty'> <target type='lxc' port='0'/> </console> </devices> </domain> And all was fine, before I accidentally upgraded Centos to 7.1.1503 After upgrade LXC can't start with diagnostic: [root@node14 ~]# virsh start test1 error: Failed to start domain test1 error: internal error: guest failed to start: internal error: Child process (ip link set macvlan0 netns 25263) unexpected exit status 2: RTNETLINK answers: Invalid argument I reinstall libvirt 1.2.14, but catch same error. If someone will experience in solving this problem - it will be interesting to hear about. b.r. Maxim Kozin
mxs kolo
2015-Apr-08 14:57 UTC
Re: [libvirt-users] Centos 7.1.1503 + libvirt 1.2.14 = broken direct network mode
> And all was fine, before I accidentally upgraded Centos to 7.1.1503 > After upgrade LXC can't start with diagnostic: > [root@node14 ~]# virsh start test1 > error: Failed to start domain test1 > error: internal error: guest failed to start: internal error: Child > process (ip link set macvlan0 netns 25263) unexpected exit status 2: > RTNETLINK answers: Invalid argument > > I reinstall libvirt 1.2.14, but catch same error. > If someone will experience in solving this problem - it will be > interesting to hear about.If I correct understand libvirt logic, libvirt make next operations with "ip" utility (depend from lxc config): 1) # ip link add link br0 name macvlan0 address 00:11:11:11:11:11 type macvlan mode bridge 2) # ip link set macvlan0 netns 1234 where 1234 - pid of lxc initd process 3) inside lxc - #ip link set dev macvlan0 name eth0 If manualy run this sequence of command, we failed on step 2). And it's work on Centos 7.0.1406> > b.r. > Maxim Kozin >
mxs kolo
2015-Apr-09 10:14 UTC
Re: [libvirt-users] Centos 7.1.1503 + libvirt 1.2.14 = broken direct network mode
Hi all http://bugs.centos.org/view.php?id=8417 In short - it's not Centos bug, it's probably bug of iproute2<->netlink interactions on kernel 3.10.0-229 As workaround you can fallback to prev kernel and command # ip link set macvlanX namens PID would work. b.r. Maxim Kozin
Laine Stump
2015-Apr-09 13:43 UTC
Re: [libvirt-users] Centos 7.1.1503 + libvirt 1.2.14 = broken direct network mode
On 04/08/2015 09:38 AM, mxs kolo wrote:> Hi all. > > I use LXC on Centos 7 x86-64, with libvirt version 1.2.6 and 1.2.12 > My container has bridged network: > # virsh dumpxml test1 > <domain type='lxc'> > <name>test1</name> > <uuid>518539ab-7491-45ab-bb1d-3d7f11bfb0b1</uuid> > <memory unit='KiB'>1048576</memory> > <currentMemory unit='KiB'>1048576</currentMemory> > <memtune> > <hard_limit unit='KiB'>1048576</hard_limit> > <soft_limit unit='KiB'>1048576</soft_limit> > <swap_hard_limit unit='KiB'>2097152</swap_hard_limit> > </memtune> > <vcpu placement='static'>2</vcpu> > <os> > <type arch='x86_64'>exe</type> > <init>/sbin/init</init> > </os> > <clock offset='utc'/> > <on_poweroff>destroy</on_poweroff> > <on_reboot>restart</on_reboot> > <on_crash>restart</on_crash> > <devices> > <emulator>/usr/libexec/libvirt_lxc</emulator> > <filesystem type='block' accessmode='passthrough'> > <source dev='/dev/data/test1'/> > <target dir='/'/> > </filesystem> > <filesystem type='ram' accessmode='passthrough'> > <source usage='524288' units='KiB'/> > <target dir='/dev/shm'/> > </filesystem> > <interface type='direct'> > <mac address='02:00:00:1a:a9:54'/> > <source dev='br0' mode='bridge'/> > </interface>Why are you using macvtap ("type='direct') to connect to a bridge device? You should either use macvtap to connect directly to a physical ethernet (e.g. eth0) *or* you should use a standard tap device ("type='bridge'") to connect to the bridge. Although it might work to connect to a bridge using macvtap, I can't think of any reason you would want to do it that way (and that may be the source of the error you're seeing - since macvtap isn't intended to be used that way, that scenario probably doesn't get much, if any, testing).
mxs kolo
2015-Apr-09 17:27 UTC
Re: [libvirt-users] Centos 7.1.1503 + libvirt 1.2.14 = broken direct network mode
Hi all> Why are you using macvtap ("type='direct') to connect to a bridge > device? You should either use macvtap to connect directly to a physical > ethernet (e.g. eth0) *or* you should use a standard tap device > ("type='bridge'") to connect to the bridge. Although it might work to > connect to a bridge using macvtap, I can't think of any reason you would > want to do it that way (and that may be the source of the error you're > seeing - since macvtap isn't intended to be used that way, that scenario > probably doesn't get much, if any, testing).Yes, You are right. I already think about it and can't remember why started using bridge over iface and macvlan over bridge, may be because used common vlan: enp2s0->enp2s0.2->br2->lxc enp2s0->enp2s0.502->br502->lxc Probably I need test new schema - it's would be fatser and work with new kernel: enp2s0->enp2s0.502->lxc: <interface type='direct'> <mac address='02:00:00:25:a7:56'/> <source dev='enp2s0.2' mode='bridge'/> </interface> thanks for the advice ! b.r. Maxim Kozin
Possibly Parallel Threads
- Re: Centos 7.1.1503 + libvirt 1.2.14 = broken direct network mode
- 1.2.7 and 1.2.8 fail to start container: libvirt_lxc[4904]: segfault at 0 ip ...error 4 in libc-2.17.so[
- cgroups inside LXC containers losts memory limits after some time
- Re: cgroups inside LXC containers losts memory limits after some time
- LXC Memory Limits wont work