vde sendto: Bad file descriptor

Fórumok

Üdv,

Sikerült végre úgy leforgatni a kvm -et, hogy a 64bit -es solaris 10 be is bootoljon. Szeretnék ebbe a guest -be rakni 4db virtuális hálózati kártyát. Ezzel nincs is gond. Mivel nem ez lenne az egyedüli solaris guest, ezért nem szeretnék kis milliónyi tap device -t létrehozni. Találtam a vde2 ügyességet. Ezt fel is raktam szépen debian lenny alól, benne van a disztribúcióban. A következő képpen néz ki a /etc/network/interfaces file megfelelő része:

auto qtap0
iface qtap0 inet static
address 192.168.0.254
netmask 255.255.255.0
pre-up /usr/bin/vde_switch --tap qtap0 --hub --daemon --group vde2-net --mod 777 --mgmt /var/run/vde2/qtap0.mgmt --mgmtmode 770 --pidfile /var/run/vde_switch.pid
pre-up /etc/init.d/dnsmasq restart
up iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
down iptables -t nat -D POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
post-down kill -s HUP `cat /var/run/vde_switch.pid`

Az ifconfig -al szépen látszik is a qtap0, sőt a unixterm -el be is tudok lépni a management portjára. A guest solaris -t úgy állítottam be, hogy a default gw a 192.168.0.254 legyen, IP -je 192.168.0.2/24. Mikor szépen elindítom így a solarist:

vdeq /usr/local/kvm/bin/qemu-system-x86_64 -boot c -hda /home/laszlo/kvm/disks/js_local.img -clock rtc -no-reboot -std-vga -m 1024 -net nic,vlan=1,macaddr=52:54:00:12:01:00,model=e1000 -net nic,vlan=1,macaddr=52:54:00:12:01:01,model=e1000 -net vde,vlan=1,sock=/var/run/vde.ctl/ctl

akkor az os szépen be is bootol, működik rendesen, a hálózati kártyákat is felhúzza szépen, csak a 192.168.0.254 -et nem tudja pingelni. Közben azon a terminálom, ahonnan indítottam a solaris -t, kapom ezt a hibaüzenetet:

sendto: Bad file descriptor

Erősen arra gyanakszom, hogy ez okozza itt a galibát. Találkozott valaki már ezzel a problémával?
A rendszer Debian Lenny, kernel: 2.6.24-1-amd64 (gyári), kvm-64, vde2 meg csomagból, de az is a legfrisebb (nincs frisebb a project honlapján sem).
Kicsit strace -eltem a vde_switch process -t:

4303 poll([{fd=6, events=POLLIN|POLLHUP}, {fd=5, events=POLLIN|POLLHUP}, {fd=3, events=POLLIN|POLLHUP}], 3, -1) = ? ERESTART_RESTARTBLOCK (To be restarted)
4303 --- SIGALRM (Alarm clock) @ 0 (0) ---
4303 rt_sigreturn(0)

Nekem ez nem sokat mond, de lehet másnak igen.

Hozzászólások

A hiba nem mindig jon elo, ugy veszem eszre hibernalas utan fordul elo inkabb (a hoszt gep kernele tuxonice patch-es egyebkent).
En egy win xp guesttel operalok:


$ vdeq kvm -hda /home/kod/qemu/xpsp2.qcow2 -m 512 -localtime

Ezutan elkezd bootolni. Kis ido mulva, kb. amikor a boot odaer hogy a guest elkezdi birizgalni a halozatot (dhcp), akkor a kovetkezot kapom:


sendto: Bad file descriptor

Ezutan a guest fut tovabb halozat nelkul, a vdeq pedig visszater.
Megoldast eddig nem talaltam. Neha segit ha ujrainditom a vde daemont.