January 17, 201412 yr I've decided it was finally time to update this post with my current setup. With the addition of Docker and KVM my setup has changed drastically over the last couple of years. I started out with the Sempron 145 and zotac itx board, moved up to an i3 cpu and micro atx board, and now using a full ATX mobo and 6 core cpu. Hardware NZXT Source 210 Elite Asrock 970 Extreme 3 R 2.0 AMD FX-6300 XIGMATEK Gaia SD1283 CPU Cooler 16GB Memory (4x4GB) Corsair CS450M PSU PowerCooler HD6450 Sapphire HD5450 PowerCooler HD6450 JMB363 2-Port Sata Controller SuperMicro SAT2-MV8 8-Port SATA Controller Total fans: 6x120mm fan, 1x140mm fan Disk Boot: 16GB Cruzer Fit Cache: Maxtor 500GB Parity: 3TB WD30EZRX Data: 1x3TB WD30EZRX, 2x2TB Hitachi, 1x2TB WD20EARS, 1x2TB Seagate Non-Array: 90GB OCZ Vertex, 240GB Crucial M500 Dockers needo Couchpotato Deluge MariaDB NZBDrone Sabnzbd [*]Others: DUC (digitalman2112) Kodi-Headless (sparklyballs) ownCloud (gfjardim) Plex (binhex) Virtual Machines Windows 8.1 Using peter_sm template in the KVM forum, I was easily able to setup a Windows 8.1 VM with gpu and usb passthrough. <domain type='kvm' id='5' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>windows8_pin</name> <uuid>cc411d70-4463-4db7-bf36-d364c0cdaa9e</uuid> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static'>2</vcpu> <cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='3'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <loader>/usr/share/qemu/bios-256k.bin</loader> <boot dev='cdrom'/> <boot dev='hd'/> <bootmenu enable='yes'/> </os> <features> <acpi/> <apic/> <pae/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> </hyperv> </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='yes'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/disk/vm_disk/Windows.qcow2'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/.virtual_machines/cdroms/virtio-win-0.1-81.iso'/> <backingStore/> <target dev='sdc' bus='sata'/> <readonly/> <alias name='sata0-0-2'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/cache/.virtual_machines/cdroms/Win_Ent_8.1_64bit.iso'/> <backingStore/> <target dev='sdd' bus='sata'/> <readonly/> <alias name='sata0-0-3'/> <address type='drive' controller='0' bus='0' target='0' unit='3'/> </disk> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='sata0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb0'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb0'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb0'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x2'/> </controller> <interface type='bridge'> <mac address='00:42:53:21:52:45'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='5900' autoport='yes' websocket='5701' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/> </memballoon> </devices> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=02:00.1,bus=pcie.0'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=03:00.0,bus=root.1,addr=00.1'/> </qemu:commandline> </domain> OSX 10.10This article got me interested in trying to run OSX in a virtual machine. http://lime-technology.com/forum/index.php?topic=34864.0. What I eventually figured out is the "model fallback" tag didn't pass the vendor 'GenuineIntel' to the virtual machine. After multiple failed attempts for that to work, I decided to look at a hackintosh VM. This went through pretty smooth after modifying the xml listed by archedraft. I used the Yosemite-Zone installer iso with the /amd kernel and the install took off. The only issues I'm currently having is the system clock is extremely fast so I cant get the clock correct and it gives an error about SSSE3 not being supported. I believe installing another kernel may fix this, but havent had much time to play. The xml below has GPU and USB passthrough working. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>OSX-Yosemite-10.10</name> <uuid>0ba39646-7ba1-4d41-9602-e2969a3fc27f</uuid> <metadata> <type>None</type> </metadata> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static'>2</vcpu> <cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='5'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <kernel>/mnt/cache/.virtual_machines/extras/chameleon_svn2510_boot</kernel> <boot dev='cdrom'/> <bootmenu enable='yes'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/mnt/disk/vm2/OSX2.qcow2'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <controller type='usb' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </controller> <controller type='ide' index='0'/> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:00:20:20'/> <source bridge='br0'/> <model type='e1000-82545em'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/> </interface> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='vga' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/> </memballoon> </devices> <seclabel type='none' model='none'/> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,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=01:00.1,bus=pcie.0'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=03:00.0,bus=pcie.0'/> <qemu:arg value='-device'/> <qemu:arg value='usb-kbd'/> <qemu:arg value='-device'/> <qemu:arg value='usb-mouse'/> <qemu:arg value='-device'/> <qemu:arg value='isa-applesmc,osk=o^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^c'/> <qemu:arg value='-smbios'/> <qemu:arg value='type=2'/> <qemu:arg value='-device'/> <qemu:arg value='ide-drive,bus=ide.1,drive=MacDVD'/> <qemu:arg value='-drive'/> <qemu:arg value='id=MacDVD,if=none,snapshot=on,file=/mnt/disk/vm2/Yosemite-Zone.iso'/> </qemu:commandline> </domain> [*]Ubuntu This is mostly used as a TVHeadend Server and playing. No passthrough or GUI. <domain type='kvm'> <name>TVHeadend</name> <uuid>53818887-9ab6-eb24-2d91-9b892378ed16</uuid> <memory unit='KiB'>1572864</memory> <currentMemory unit='KiB'>1572864</currentMemory> <vcpu placement='static'>2</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-2.1'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='yes'/> </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='qcow2'/> <source file='/mnt/cache/.virtual_machines/TvHeadEnd.qcow2'/> <target dev='hda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </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='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <filesystem type='mount' accessmode='passthrough'> <source dir='/mnt/user/xbmc_stuff/recorded'/> <target dir='/recorded'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </filesystem> <interface type='bridge'> <mac address='52:54:00:8b:fd:9f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='5700' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </memballoon> </devices> </domain> XBMCInstalling XBMC on Xen seemed to be a nitemare. After switching to KVM, seemed to have no problem. This VM has GPU passthrough and is controlled through the web interface. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>XBMC-VM</name> <uuid>c43b7542-b40b-495f-90ab-aaa4eec68e8a</uuid> <memory unit='KiB'>1572864</memory> <currentMemory unit='KiB'>1572864</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>2</vcpu> <os> <type arch='x86_64' machine='pc-q35-2.1'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> </features> <cpu mode='host-passthrough'> </cpu> <clock offset='localtime'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none' io='native'/> <source file='/mnt/disk/vm_disk/XBMC-VM.qcow2'/> <target dev='vdc' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x2'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='pci' index='3' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/> </controller> <filesystem type='mount' accessmode='passthrough'> <source dir='/mnt/user/'/> <target dir='/storage'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x04' function='0x0'/> </filesystem> <interface type='bridge'> <mac address='52:94:00:d0:c0:dc'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/> </interface> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/> </memballoon> </devices> <seclabel type='none' model='none'/> <qemu:commandline> <qemu:arg value='-device'/> <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,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=01:00.1,bus=pcie.0'/> </qemu:commandline> </domain> Current Usage (thanks to the DUC docker) Pictures to come.....
January 17, 201412 yr The AOC-SAT2-MV8 is a PCI-x card and while it would work with your Asrock 970 Extreme3 MB it would be operating in PCI mode not PCI-x mode. So expect Slow to Really Slow parity check speeds. Now if you have the AOC-SASLP-MV8 card in your PCIex16 slot then it should work fine.
January 17, 201412 yr splnut- Please as your build progresses let us know how it goes. I am very interested in doing something similar. I too started with the sempron 145 with the zotac board, so right there with you. Please document your process as well as you step through it. I'm sure it will be EXTREMELY helpful both to those of us that are looking to do something similar as well as to those who may be available to help you with troubleshooting.
February 26, 201412 yr Author Finally updating this thread. I have built the computer and currently have 2 virtual machines running great on Unraid 6.0b3. Hardware: NZXT Source 210 Elite Case - $45 Asrock 970 Extreme 3 r2.0 - $80 AMD FX-6300 - $110 Powercooler HD6450 - $10 16GB ram - already had 2 port sata controller - already had 8 HDD's - already had I was able to follow the guides posted by ironicbadger to get the archVM setup and running alongside windows 8.1. Virtual Machines: ArchVM - sab, sick, couch, plex, deluge Windows 8.1 - Full desktop with gpu/usb3.0 passthrough XBMC - soon I need to order another gpu to play around with an xbmc setup, but so far I am extremely happy. I decided to add a disk outside of the Unraid array to run my virtual machines. I followed http://lime-technology.com/forum/index.php?topic=30496.0 to format the drive in ext4 and mount it in samba. Then I followed http://lime-technology.com/forum/index.php?topic=31687.0 to setup the ArchVM. Arch is so easy to work with once you understand pacman and systemctl. For the WindowsVM I used a couple of articles: http://lime-technology.com/forum/index.php?topic=31754.0 http://mediaserver8.blogspot.ie/2014/02/unraid-60-xen-guest-gpu-passthrough.html#more http://blog.ktz.me/?p=219 The only problem I had with this build was originally storing my virtual machines on a "cache only" share. For some reason Unraid decided to move the files to the array and this corrupted the file system on both Windows and Arch. So I just started over with the disk outside of the array.
February 26, 201412 yr I will take a look at your links soon. So your host is actually unraid with the vm's running on that server? And what did your budget end up being if you don't mind my asking?
February 26, 201412 yr The only problem I had with this build was originally storing my virtual machines on a "cache only" share. For some reason Unraid decided to move the files to the array and this corrupted the file system on both Windows and Arch. So I just started over with the disk outside of the array. With earlier versions of unRAID if something was moved off of the cache drive when it wasn't supposed to meant that the share folder wasn't setup as "cache only" in the unRAID GUI even if it looked like it was. I don't have a cache drive on my install of unRAID v6 yet so I cannot confirm it works or doesn't work for me yet. A "cache only" share on 5.0 on a different server definitely DOES work for me because my N54L with VirtualBox in Apps "cache only" share does NOT exist on the array and has been setup for months now. I should be able to find out however within the next couple of weeks about unRAID v6.
February 26, 201412 yr I have a cache only share configured for VMs on UnRAID 6.0 and have had no issues. As Bob mentioned, it's critical to make sure the share is marked as Cache Only in the UnRAID GUI. Also, for your XBMC vm you will want to make sure to get an AMD GPU as there are issues using Nvidia pass-through to XBMC. I picked up a couple of Radeon 6450s for $50 for XBMC (The video pass-through works great, but I am beating my head against the wall with the USB pass-through).
February 28, 201412 yr Author I will take a look at your links soon. So your host is actually unraid with the vm's running on that server? And what did your budget end up being if you don't mind my asking? Edited above post to include prices. Case, CPU, mobo, gpu ran $245. The only problem I had with this build was originally storing my virtual machines on a "cache only" share. For some reason Unraid decided to move the files to the array and this corrupted the file system on both Windows and Arch. So I just started over with the disk outside of the array. With earlier versions of unRAID if something was moved off of the cache drive when it wasn't supposed to meant that the share folder wasn't setup as "cache only" in the unRAID GUI even if it looked like it was. I don't have a cache drive on my install of unRAID v6 yet so I cannot confirm it works or doesn't work for me yet. A "cache only" share on 5.0 on a different server definitely DOES work for me because my N54L with VirtualBox in Apps "cache only" share does NOT exist on the array and has been setup for months now. I should be able to find out however within the next couple of weeks about unRAID v6. I had the cache only share working for a couple days and then it decided to move. I have other cache only shares that seem fine. The share settings still say "Cache only? Yes", indicates the folder is not empty, but shows there are no files on the cache drive. I'm happy with the performance I am getting from the external hdd running the virtual machines. If something happens, I may swap my cache ssd with the external hdd to see what speed improvements are had. I have a cache only share configured for VMs on UnRAID 6.0 and have had no issues. As Bob mentioned, it's critical to make sure the share is marked as Cache Only in the UnRAID GUI. Also, for your XBMC vm you will want to make sure to get an AMD GPU as there are issues using Nvidia pass-through to XBMC. I picked up a couple of Radeon 6450s for $50 for XBMC (The video pass-through works great, but I am beating my head against the wall with the USB pass-through). Yea the 6450 passed through a lot easier than I was expecting. There is currently a deal on NewEgg for a 5450 for $10 after rebate I may throw in it to play with. The USB passthrough on my Windows VM was a breeze. I passed through the onboard USB3.0 ports along with the gpu and BOOM!
Archived
This topic is now archived and is closed to further replies.