Virtio Usage in Win 8.1 VM Kills LAN Connection Entirely


Recommended Posts

I am attempting to setup a Windows 8.1 VM that uses WMC to record shows and serves them to all Kodi clients using ServerWMC.

This method works very well on my local HTPC, however I am trying to move this function to my server.

 

Passing through my tuner seems to work fine, VM seems stable overall, I have recorded 4 HD shows simultaneously to an image that is the D:\ drive in Windows,and it worked flawlessly!

 

However I need to then share that Recorded TV path in ServerWMC to share to the Kodi clients. This ends up being \\Win8VM\Recorded TV.

 

This does not work well at all, transfers are super slow, choppy, and unreliable (I tried to just copy a show from that share to my local computer, it didn't go so well).

If I am able to get LiveTv working on a client it will eventually freeze, my server is then unreachable over the LAN, no main page, no Putty connection...

The console is still working like a champ however, so I run the powerdown script, and everything comes back up.

 

I have thought of others ways to share these recordings, but nothing works very well. I need them to be accessible right away (so no copy to the server, then share) as the live tv buffer requires it. I thought maybe it was the image I pass to Windows as D:\, so I passed in a SATA card, and recorded to an actual HDD, same problem.

 

It seems to me that Virtio doesn't like to have a virtual connection to my VM, and then have the VM share files through its own file sharing.

So when I am accessing my Recorded TV I am directing this towards the VM that shares the files, however this has to go through Virtio and my bridge to share and access...

 

IDK, that's my thoughts anyway.

I tried the stable virtio, and also the newest release .105, same results (actually worse on .105).

 

Anyone else trying to do something crazy like this?

Sure would be nice if it worked!

Link to comment

I have a similar setup with a Windows 7 VM recorting TV shows and have WMC Extenders play back the shows.  What I do is record the shows in the VM and then execute a script to move them to a server share at night.  You can add a script to the VM that will execute once a day or more often as necessary.

 

rem
rem Move the recorded TV shows to the Media Server
rem
move "c:\Users\Public\Recorded TV\*.wtv" "\\MediaServer\Recorded TV\"

 

I do have an issue with the NetKVM driver.  Version 100 works, but any version past that causes the VM to lockup as soon as my Xbox 360 tries to log onto the Media Center VM.

Link to comment

Why not try mapping a share from unraid into the VM as a mapped network drive?  Avoid using windows file sharing within the VM altogether.

 

Windows Media Center doesn't "do" recording to mapped drives... LOL.  I attempted to force it (regedit), it wasn't happy.

Link to comment

I have a similar setup with a Windows 7 VM recorting TV shows and have WMC Extenders play back the shows.  What I do is record the shows in the VM and then execute a script to move them to a server share at night.  You can add a script to the VM that will execute once a day or more often as necessary.

 

rem
rem Move the recorded TV shows to the Media Server
rem
move "c:\Users\Public\Recorded TV\*.wtv" "\\MediaServer\Recorded TV\"

 

I do have an issue with the NetKVM driver.  Version 100 works, but any version past that causes the VM to lockup as soon as my Xbox 360 tries to log onto the Media Center VM.

 

I haven't tried version 100, maybe I'll try that.

Moving them to the server could work for some things, however more often than not I start watching a show in the middle of it, so at that point I need it to stream from the original location.

Link to comment

Why not try mapping a share from unraid into the VM as a mapped network drive?  Avoid using windows file sharing within the VM altogether.

 

Windows Media Center doesn't "do" recording to mapped drives... LOL.  I attempted to force it (regedit), it wasn't happy.

So you could try a dirty little trick in windows. Open a command prompt as admin and do the following:

 

C:\
mklink /D \\tower\sharename\ c:\foldername

 

Then try to specify c:\foldername for your location in the app.

Link to comment

Why not try mapping a share from unraid into the VM as a mapped network drive?  Avoid using windows file sharing within the VM altogether.

 

Windows Media Center doesn't "do" recording to mapped drives... LOL.  I attempted to force it (regedit), it wasn't happy.

 

I have the local Recorded TV and the mapped Recorded TV both set up in Media Center so the Recorded TV programs from both sources are available for playback.

 

C:\
mklink /D \\tower\sharename\ c:\foldername

 

Windows will see a symlink folder as a shared folder and won't use it.  Same thing with a mapped drive.  WMC insists on a local drive for recording.  Usually c:\Recorded TV, d:\Recorded TV, etc.

 

You also might see a performance issue with trying to record to a shared folder.

 

Link to comment

I guess I don't record THAT much, but have always had the ability.

 

Moving it later to a share wouldn't help for my primary watching habits.

I will attempt linking the drive as suggested, however the topic in general has been talked about plenty with WMC over time, and I'm pretty sure a local drive is unfortunately required.

 

I didn't expect this to be as big of a pain as it is!..

 

If I want to stick with WMC then I think the best way to fix this is to pass the VM a physical NIC card, which should fix this issue without any trickery.

Link to comment

Picked up a $10 Intel PCie NIC (eBay), passed to the W8 VM, (maybe a bit premature, however) it does exactly what I wanted it to do, extremely well... Transfers are as fast as bare metal, etc....

 

One question....

Is there a simple way to tell W8 to use the Virtio KVM network by default for everything, and just use the other NIC for my media center/sharing purposes to clients?

It doesn't REALLY matter, but would be nice to say, always use Ethernet 1 unless the request is specifically set to the other NIC's IP address.

Maybe it does this by default?

 

 

Edit:

I found the answer for priority (Windows had it by default the wrong way... my luck!)

http://www.eightforums.com/tutorials/20148-network-connection-priority-change-windows.html

Link to comment

I take most of that back.... Usage in this way still causes br0 to lockup, and no longer be active.

Technically speaking my server is still doing it's thing, however there is no network to reach it (putty, etc... all broken).

 

Hoping to investigate this, I went to the terminal and typed in ifconfig, all looked fine, br0 still shows an IP.

I attempt to run "ifconfig renew br0"  (is this correct for linux?..IDK, that's basically how you do it in Windows) it fails, states "br0: host name lookup failure".

If I just unplug/re-plug the network cable, everything starts to work again!.

 

So for now I removed the virtio bridge br0 section from my VM, will see how it goes with just the physical pass thru NIC for connecting.

Link to comment

I take most of that back.... Usage in this way still causes br0 to lockup, and no longer be active.

Technically speaking my server is still doing it's thing, however there is no network to reach it (putty, etc... all broken).

 

Hoping to investigate this, I went to the terminal and typed in ifconfig, all looked fine, br0 still shows an IP.

I attempt to run "ifconfig renew br0"  (is this correct for linux?..IDK, that's basically how you do it in Windows) it fails, states "br0: host name lookup failure".

If I just unplug/re-plug the network cable, everything starts to work again!.

 

So for now I removed the virtio bridge br0 section from my VM, will see how it goes with just the physical pass thru NIC for connecting.

 

Ok, we need to get a full diagnostic and then I need to know how you do your networking (both physical and logical).  Get me as much info as you can.

Link to comment

I take most of that back.... Usage in this way still causes br0 to lockup, and no longer be active.

Technically speaking my server is still doing it's thing, however there is no network to reach it (putty, etc... all broken).

 

Hoping to investigate this, I went to the terminal and typed in ifconfig, all looked fine, br0 still shows an IP.

I attempt to run "ifconfig renew br0"  (is this correct for linux?..IDK, that's basically how you do it in Windows) it fails, states "br0: host name lookup failure".

If I just unplug/re-plug the network cable, everything starts to work again!.

 

So for now I removed the virtio bridge br0 section from my VM, will see how it goes with just the physical pass thru NIC for connecting.

 

Ok, we need to get a full diagnostic and then I need to know how you do your networking (both physical and logical).  Get me as much info as you can.

 

I'd love the help, can you tell me the commands that would be best to provide the requested information?

 

Edit:

 

I'll just start spit balling here, and you can tell me what's relevant and what I missed...

 

I have a network bridge enabled, br0, under network settings, DHCP enabled, Enable STP-Yes, No bonding.

 

Intel Onboard NIC is the main one (Giga PHY Intel® I218V), used for everything.

Gigabit, Cat5e/6, nothing special here....

 

I had lockup issues prior to the new NIC (identical issues), but now that I have it I will explain.

 

The VM is solid without me trying to access it from other clients/connections (so it doing connecting to the outside world (torrents, RSS) all work without issue).

 

acs downstream enabled (have to), have the new NIC stubbed, and passed to the VM.

 

I originally had the settings for this

<interface type='bridge'>
      <mac address='52:54:00:81:17:c1'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

 

and then with my new NIC I added this

<hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>

 

Nothing too fancy in the VM, virtio netkvm stable, have tried the 105 release (which was the newest), didn't mess with the 100 that was mentioned here.

 

Streaming things from the VM to other clients just has issues, brings down the bridge and connection all together, I used to just restart from the console (using powerdown), however now I can just pull the cable, and it fixes it.

 

Here is what ifconfig shows me right now

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.161  netmask 255.255.255.0  broadcast 192.168.1.255
        ether d0:50:99:28:ee:69  txqueuelen 0  (Ethernet)
        RX packets 1719689  bytes 138009172 (131.6 MiB)
        RX errors 0  dropped 36611  overruns 0  frame 0
        TX packets 808691  bytes 10342825779 (9.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.42.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 26:e7:96:be:9c:3a  txqueuelen 0  (Ethernet)
        RX packets 129235  bytes 460164706 (438.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 204363  bytes 23840332 (22.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        ether d0:50:99:28:ee:69  txqueuelen 1000  (Ethernet)
        RX packets 3082672  bytes 953383491 (909.2 MiB)
        RX errors 0  dropped 42  overruns 0  frame 0
        TX packets 9789739  bytes 12941788609 (12.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xf7100000-f7120000

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 0  (Local Loopback)
        RX packets 6672  bytes 723257 (706.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6672  bytes 723257 (706.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth00b4144: flags=67<UP,BROADCAST,RUNNING>  mtu 1500
        ether d2:bf:e2:5d:d2:53  txqueuelen 0  (Ethernet)
        RX packets 16  bytes 2012 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 212  bytes 25614 (25.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth32be0fc: flags=67<UP,BROADCAST,RUNNING>  mtu 1500
        ether 26:e7:96:be:9c:3a  txqueuelen 0  (Ethernet)
        RX packets 2967  bytes 1566266 (1.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4042  bytes 5358481 (5.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethae38e7a: flags=67<UP,BROADCAST,RUNNING>  mtu 1500
        ether be:ec:9e:2b:6f:1f  txqueuelen 0  (Ethernet)
        RX packets 33  bytes 2715 (2.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 232  bytes 29070 (28.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethd1667ac: flags=67<UP,BROADCAST,RUNNING>  mtu 1500
        ether 66:87:fc:c8:62:e5  txqueuelen 0  (Ethernet)
        RX packets 125516  bytes 459144369 (437.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 199405  bytes 18094943 (17.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:d8:d3:7f  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

I now only have the VM on a physical NIC, watched entire 1 hour program (could never do that before), and it worked very well!

 

What else can I provide?...

Syslog/diagnostics attached.

server-diagnostics-20150611-2240.zip

Link to comment

Thought of one more thing I want to make sure to point out, in case it is causing issues.

 

In the VM for the NIC (virtio in this case) I force the IP in W8 at the adapter (TCP/IPv4 only, I never touch v6) to a static address, define the gateway, and add in DNS (it makes you define the DNS when you force the address) to 8.8.8.8 & [glow=red,2,300]4.4.8.8[/glow] (which I now no is absolutely incorrect, and I have those #'s wrong should be "8.8.4.4", however I wouldn't think the alternate DNS being wrong would cause a major issue).

 

Anyhow, in case this could cause an issue with assignment, etc... thought I'd mention. It does not cause any issues as I explained the use case in the previous post.

 

I think I was just being lazy at the time, so I will set the static address in the router, and set that back to DHCP.

 

 

Link to comment

Your problem sounds a bit like mine here: http://lime-technology.com/forum/index.php?topic=39890.0

 

 

I lose connection to unraid, vm's, cannot ping but console is fine and syslog reports no errors and ifconfig looks fine but network traffic just stops dead....

 

Still ongoing issue for me, I've written a bash script to run ifconfig down and up when it happens to recover.

 

I'm sure this is a KVM related issue.

Link to comment

Ok, we need to get a full diagnostic and then I need to know how you do your networking (both physical and logical).  Get me as much info as you can.

 

Got that (3 posts above), how's it looking?..  ::)

 

 

If you're having problems like this, I highly recommend posting in general support and including diagnostics.  In addition, make sure you're running version 6.0.0.

 

Hi not sure if that reply to my post but I did post in general support as per the link

 

I think he's talking to you (Homer Simpson reference!)..

 

Your problem sounds a bit like mine here: http://lime-technology.com/forum/index.php?topic=39890.0

 

 

I lose connection to unraid, vm's, cannot ping but console is fine and syslog reports no errors and ifconfig looks fine but network traffic just stops dead....

 

Still ongoing issue for me, I've written a bash script to run ifconfig down and up when it happens to recover.

 

I'm sure this is a KVM related issue.

 

Yes and no, however sorry to hear your having the issue also!

The difference is I have an Intel NIC as my main adapter, and had the similar issue to you. I never tried a video with RDP, however it is likely the same kind of traffic/situation that is causing it.

 

However, passing through a physical $10 used Intel NIC has solved this issue for me entirely (also read, not using netkvm whatsoever in this VM).

Now it would be nice to have netkvm have a NIC for transfers to the array, as I am now going through a physical NIC, down the wire, and back into the server for transfers from downloaded torrents, etc...

However, 1Gbps LAN is faster than my image of a HDD that I use for storing/downloading files, so other than it not being the "right way" to do it, it works, and it works well.

So unless I am feeling like dealing with the issues OR there is a fix specific to this, for now I am all set with physically passing a separate NIC to this particular VM.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.