New unRAID PC with 2 Windows VM's freezes.


Recommended Posts

Hi there

 

I'm new to unRAID, so I guess I might have done something wrong. But I was hoping someone could help me.

 

I used some older hardware, but I guess everything should be compatible.

Specs:

Intel i5 3570

Gigabyte H77-DS3H

16 GB DDR3 1300Mhz (6GB per VM)

GTX650 for VM1

GTS250 for VM2

2* 500GB WD Blue (450GB per VM)

1* Samsung 420 SSD (100GB per VM) - cache

1* Seagate 1.5TB (Parity Disk)

Two different wireless keyboards, one from Windows and one HP.

 

What do I want:

Two virtual machines, 2x Windows for a basic gaming PC. Nothing more or less. So no Plex, NAS-features,... are required.

 

Problem:

I don't know what the problem is. It freezes when using the VM's. Somethimes when I start only one, somethimes when I start the second, somethimes when I reboot a VM. So I can't say when it exactly freezes, but it always does. So that's not an easy troubleshoot i'm afraid.

 

Logs:

VM1:

2016-07-20 18:27:03.501+0000: starting up libvirt version: 1.2.18, qemu version: 2.3.0
LC_ALL=C PATH=/bin:/sbin:/usr/bin:/usr/sbin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/qemu-system-x86_64 -name PLAYER1 -S -machine pc-i440fx-2.3,accel=kvm,usb=off,mem-merge=off -cpu host -m 6144 -realtime mlock=on -smp 2,sockets=1,cores=2,threads=1 -uuid 11f23995-8745-eb41-85bc-07790759bed7 -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/PLAYER1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -drive file=/mnt/user/vdisks/PLAYER1/vdisk1.img,if=none,id=drive-virtio-disk2,format=raw,cache=writeback -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=1 -drive file=/mnt/user/ArrayVdisks/PLAYER1/PLAYER1/vdisk2.img,if=none,id=drive-virtio-diskt.1 -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=00:1b.0,bus=root.1,addr=01.0 -msg timestamp=on
Domain id=1 is tainted: high-privileges
Domain id=1 is tainted: custom-argv
Domain id=1 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)

 

VM2:

2016-07-20 18:32:36.305+0000: shutting down
2016-07-20 18:32:46.814+0000: starting up libvirt version: 1.2.18, qemu version: 2.3.0
LC_ALL=C PATH=/bin:/sbin:/usr/bin:/usr/sbin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/qemu-system-x86_64 -name PLAYER2 -S -machine pc-i440fx-2.3,accel=kvm,usb=off,mem-merge=off -cpu host -m 6144 -realtime mlock=on -smp 2,sockets=1,cores=2,threads=1 -uuid a8c4df47-06c5-f7be-6bc5-94f9b449d089 -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/PLAYER2.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -drive file=/mnt/user/vdisks/PLAYER2/vdisk1.img,if=none,id=drive-virtio-disk2,format=raw,cache=writeback -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk2,id=virtio-disk2,bootindex=1 -drive file=/mnt/user/ArrayVdisks/PLAYER2/vdisk2.img,if=none,id=drive-virtio-disk3,formatice vfio-pci,host=06:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on -device vfio-pci,host=06:00.1,bus=root.1,addr=00.1 -msg timestamp=on
Domain id=3 is tainted: high-privileges
Domain id=3 is tainted: custom-argv
Domain id=3 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)

 

Do you guys also need anything else? Like the XML or anything?

 

Thanks in advance!

 

 

 

 

 

Link to comment

First thing that I would think of is how you have your CPU cores allocated. 

 

You need to leave the host with some CPU cores.  You have a 4 core processor and it looks above like you are allocating two to each VM.

 

Would be helpful to post both your XMLs

Link to comment

Thank you

I left one core for the unRAID, however I did change this after the log was taken. I did make the mistake of using all four in first attempt :) But since I changed it, it still froze completely.

And in case this wasn't obvious in the OP, it freezes both the VM's and the unRAID 'server'.

VM1:

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>PLAYER1</name>
  <uuid>11f23995-8745-eb41-85bc-07790759bed7</uuid>
  <description>Player one PC</description>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>6291456</memory>
  <currentMemory unit='KiB'>6291456</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>1</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='1' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/vdisks/PLAYER1/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/ArrayVdisks/PLAYER1/PLAYER1/vdisk2.img'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win10_1511_2_Dutch_x64.iso'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/virtio-win-0.1.118.iso'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:04:43:89'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/PLAYER1.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1b.0,bus=root.1,addr=01.0'/>
  </qemu:commandline>
</domain>

 

VM2:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>PLAYER2</name>
  <uuid>a8c4df47-06c5-f7be-6bc5-94f9b449d089</uuid>
  <description>Player two PC</description>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>6291456</memory>
  <currentMemory unit='KiB'>6291456</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/vdisks/PLAYER2/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/ArrayVdisks/PLAYER2/vdisk2.img'/>
      <target dev='hdd' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win10_1511_2_Dutch_x64.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/virtio-win-0.1.118.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:e4:43:6a'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/PLAYER2.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

Link to comment

You seem to have all your virtual disks on the array and that is protected by parity.  I can't help but wonder if that's causing problems.  It'll certainly slow your machines down a lot.

 

Basically what is happening is:

 

VM writes to virtual disk which is on the array which forces a parity disk operation.

 

Might be worth rethinking this as a setup strategy and not use a parity disk or instead use a cache pool.

Link to comment

You seem to have all your virtual disks on the array and that is protected by parity.  I can't help but wonder if that's causing problems.  It'll certainly slow your machines down a lot.

 

Basically what is happening is:

 

VM writes to virtual disk which is on the array which forces a parity disk operation.

 

Might be worth rethinking this as a setup strategy and not use a parity disk or instead use a cache pool.

 

 

I would highly recommend against putting os images on the array. Especially an os like Windows where it does too much in the background. Certainly not two of them.

 

As chbmb suggested, either put them on an ssd cache pool or on an unassigned ssd

Thanks in advance for helping me, guys!

 

This was indeed what I was thinking as well, I

Well, my vdisks are on the cache-pool. I also use an ArrayVdisks which is a data disk in windows.

Both OS's got 100GB from the vdisk pool, and 450GB from the Array.

I just checked, and the vDisk is use cache only. So I guess they should use the cache-pool?

 

 

Edit: Also, do these lines in the logs mean? I can't seem to find them when I search for it.

Domain id=3 is tainted: high-privileges
Domain id=3 is tainted: custom-argv
Domain id=3 is tainted: host-cpu[/Code]

 

Link to comment

Those lines are harmless despite sounding ominous...

 

Sent from my LG-H815 using Tapatalk

Okay, thanks!

So, any idea what may still be the problem here?

 

Is a cpu actually necessary for the unRAID software? 'cause I read some threads where all cpu's are dividend.

Link to comment

Have you tried running with minimal resources allocated to each VM? 1 core and 2GB each? It would be helpful to know if it crashes with minimal resource allocation.

 

Also, maybe try specifying the disk instead of the fuse path for the disk images i.e. instead of /mnt/user/vdisks/PLAYER1/vdisk1.img try /mnt/cache/vdisks/PLAYER1/vdisk1.img

Link to comment

Have you tried running with minimal resources allocated to each VM? 1 core and 2GB each? It would be helpful to know if it crashes with minimal resource allocation.

 

Also, maybe try specifying the disk instead of the fuse path for the disk images i.e. instead of /mnt/user/vdisks/PLAYER1/vdisk1.img try /mnt/cache/vdisks/PLAYER1/vdisk1.img

 

Just tried booting again after he froze up on one VM. Now that VM is gone. Nowhere to be found in my GUI.

I modified the second VM to 1 core and 2GB, but it froze again on bootscreen (and so did everything else).

Could it help if I just completely install unRAID from scratch? Or maybe try another OS? Give SteamOS a try maybe?

Thanks for trying to help! I really appreciate it :)

 

Edit: Oh yeah, forgot to mention. I tried using the different path you specified, and unfortunately it still freezes.. On the spinning circle on booth screen as usual.

Link to comment

Have you run 24 hours of memtest to rule out bad RAM?

I have run memtest. Not for 24 hours, but just two complete cycles. No problems detected. Have also tried with different ram (2x8GB sticks instead of 4x4) and I have the same problem with those sticks. :(

Link to comment

Today I found out the GPU doesn't seem to reset. One VM is gone, and I used the other one with the GTS250. I unplugged the USB and now it boots.

However, I noticed when I stop the VM, the screens light remains lit. So I guess the GPU doesn't reset correctly.

 

Could this be the problem perhaps?

 

Or could the problem have been in the GTX650 (which I am not using at the moment)?

 

Edit: Had another GTS250 lying around. Decided to take out the GTX650 and put in two GTS250. Still freezes.. :(

I'm starting to regret buying this unRAID key :(

Link to comment

Edit: Had another GTS250 lying around. Decided to take out the GTX650 and put in two GTS250. Still freezes.. :(

I'm starting to regret buying this unRAID key :(

Unraid doesn't control whether a specific hardware combo will work. That's up to the user to vet their own hardware here on the forum before committing to a paid license. The evaluation license that is offered for a month free doesn't have any restrictions on passthrough and VM's.

 

That said, do the VM's work properly headless over VNC or RDP? You may be able to use newer video cards that are more virtualization friendly.

 

Older hardware is definitely hit or miss with virtualization, especially since many of the passthrough features weren't around when the hardware was designed.

Link to comment

Edit: Had another GTS250 lying around. Decided to take out the GTX650 and put in two GTS250. Still freezes.. :(

I'm starting to regret buying this unRAID key :(

Unraid doesn't control whether a specific hardware combo will work. That's up to the user to vet their own hardware here on the forum before committing to a paid license. The evaluation license that is offered for a month free doesn't have any restrictions on passthrough and VM's.

 

That said, do the VM's work properly headless over VNC or RDP? You may be able to use newer video cards that are more virtualization friendly.

 

Older hardware is definitely hit or miss with virtualization, especially since many of the passthrough features weren't around when the hardware was designed.

I know offcourse the hardware compatibility is my responsibility. I meant however I'm starting to regret it since I can't get it all running. I had used the trial and installed one VM, and this seemed to work. So I bought the license to install everything correctly (the 4 disks couldn't run under trial). But now I'm just a bit upset I can't get it to work.

 

I haven't tried headless, since I have no idea how to. I guess the problem will be in the GPU's, so I will try to get my hands on some newer cards and give that a try. 

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.