[PLUGIN] Web Virtual Manager (depreciated)


dmacias

Recommended Posts

  • Replies 157
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

That is very slick looking...  And the change you made today fixed my issue.

Thanks. I prefer hostname anyway too.

That's pretty slick!

Thanks I hope to have create, add, delete, vnc done soon. But most everything else works. And it's all php based so it runs natively on emhttp in unraid. No more python, ports and webvirtmgr

 

Link to comment

I got the VM and running the install part, But there is no install disk?

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>windows_8.1</name>
  <uuid>cc411d70-4463-4db7-bf36-d364c0cdaa9d</uuid>
  <memory unit='GB'>4</memory>
  <currentMemory unit='GB'>4</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='q35'>hvm</type>
    <boot dev='cdrom'/>
  </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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/VM/Win81/win81.iso'/>
      <target dev='sdc' bus='sata'/>
      <readonly/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/VM/Win81/virtio-win-0.1-81.iso'/>
      <target dev='sdd' bus='sata'/>
      <readonly/>
    </disk>
    <disk type="file" device="disk">
		<driver name="qemu" type="qcow2" />
		<source file="/mnt/cache/VM/Win81/Win81.qcow2" />
		<target dev="vda" bus="virtio" />
	</disk>
    <controller type='sata' index='0'>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
    </controller>
    <controller type='usb' index='0' model='none'>
    </controller>
    <interface type='bridge'>
      <source bridge='docker0'/>
      <model type='virtio'/>
    </interface>
    
    
        <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    
    <input type='mouse' bus='ps2'/>
    <memballoon model='virtio'/>
  </devices>

</domain>

Link to comment

I got the VM and running the install part, But there is no install disk?

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>windows_8.1</name>
  <uuid>cc411d70-4463-4db7-bf36-d364c0cdaa9d</uuid>
  <memory unit='GB'>4</memory>
  <currentMemory unit='GB'>4</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='q35'>hvm</type>
    <boot dev='cdrom'/>
  </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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/VM/Win81/win81.iso'/>
      <target dev='sdc' bus='sata'/>
      <readonly/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/VM/Win81/virtio-win-0.1-81.iso'/>
      <target dev='sdd' bus='sata'/>
      <readonly/>
    </disk>
    <disk type="file" device="disk">
		<driver name="qemu" type="qcow2" />
		<source file="/mnt/cache/VM/Win81/Win81.qcow2" />
		<target dev="vda" bus="virtio" />
	</disk>
    <controller type='sata' index='0'>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
    </controller>
    <controller type='usb' index='0' model='none'>
    </controller>
    <interface type='bridge'>
      <source bridge='docker0'/>
      <model type='virtio'/>
    </interface>
    
    
        <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    
    <input type='mouse' bus='ps2'/>
    <memballoon model='virtio'/>
  </devices>

</domain>

During install did you install the windows virtio drivers?  If not, that may explain the missing drive and mouse. I haven't installed a windows vm yet.

Link to comment

I got the VM and running the install part, But there is no install disk?

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>windows_8.1</name>
  <uuid>cc411d70-4463-4db7-bf36-d364c0cdaa9d</uuid>
  <memory unit='GB'>4</memory>
  <currentMemory unit='GB'>4</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='q35'>hvm</type>
    <boot dev='cdrom'/>
  </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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/VM/Win81/win81.iso'/>
      <target dev='sdc' bus='sata'/>
      <readonly/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/VM/Win81/virtio-win-0.1-81.iso'/>
      <target dev='sdd' bus='sata'/>
      <readonly/>
    </disk>
    <disk type="file" device="disk">
		<driver name="qemu" type="qcow2" />
		<source file="/mnt/cache/VM/Win81/Win81.qcow2" />
		<target dev="vda" bus="virtio" />
	</disk>
    <controller type='sata' index='0'>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
    </controller>
    <controller type='usb' index='0' model='none'>
    </controller>
    <interface type='bridge'>
      <source bridge='docker0'/>
      <model type='virtio'/>
    </interface>
    
    
        <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    
    <input type='mouse' bus='ps2'/>
    <memballoon model='virtio'/>
  </devices>

</domain>

See here for virtio drivers

http://lime-technology.com/forum/index.php?topic=35609.msg331751.msg#331751

Link to comment

Hi dmacias, i need your help.

 

I am getting this error when I try to passthrough one usb port (00:12.2):

Error while starting domain: internal error: early end of file from monitor: possible problem: 2014-10-21T19:26:52.295122Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: vfio: error, group 6 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver. 2014-10-21T19:26:52.295187Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: vfio: failed to get group 6 2014-10-21T19:26:52.295219Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: Device initialization failed. 2014-10-21T19:26:52.295254Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: Device 'vfio-pci' could not be initialized 

Vmmgr Device Node Information "usb_device" shows:

Device 	Identification 	Driver 	Vendor 	Product 	XML
usb_usb4 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb5 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb2 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID ehci_hcd 	EHCI Host Controller 	
usb_usb6 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb8 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb9 	0x1d6b:0x0003 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb10 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb11 	0x1d6b:0x0003 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb7 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb3 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID ehci_hcd 	EHCI Host Controller 	
usb_3_3 	0x1976:0x6025 	usb 	2.0 	Flash Disk 	
usb_4_1 	0x0603:0x00f2 	usb 	NOVATEK 	USB Keyboard 	
usb_5_1 	0x046d:0xc050 	usb 	Logitech 	USB-PS/2 Optical Mouse

I attach more info:

root@Tower2:~# readlink /sys/bus/pci/devices/0000:00:12.2/iommu_group
../../../kernel/iommu_groups/6

root@Tower2:~# ls /sys/bus/pci/devices/0000:00:12.2/iommu_group/devices/
0000:00:12.0@  0000:00:12.2@

root@Tower2:~# ls /dev/vfio
18  6  vfio

..18 is GPU which was succesfully passed through.

 

And my xml:

   <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=00:12.2,bus=pcie.0'/>
  </qemu:commandline>

 

Rgds.

Link to comment

Hi dmacias, i need your help.

 

I am getting this error when I try to passthrough one usb port (00:12.2):

Error while starting domain: internal error: early end of file from monitor: possible problem: 2014-10-21T19:26:52.295122Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: vfio: error, group 6 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver. 2014-10-21T19:26:52.295187Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: vfio: failed to get group 6 2014-10-21T19:26:52.295219Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: Device initialization failed. 2014-10-21T19:26:52.295254Z qemu-system-x86_64: -device vfio-pci,host=00:12.2,bus=pcie.0: Device 'vfio-pci' could not be initialized 

Vmmgr Device Node Information "usb_device" shows:

Device 	Identification 	Driver 	Vendor 	Product 	XML
usb_usb4 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb5 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb2 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID ehci_hcd 	EHCI Host Controller 	
usb_usb6 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb8 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb9 	0x1d6b:0x0003 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb10 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb11 	0x1d6b:0x0003 	usb 	Linux 3.16.3-unRAID xhci_hcd 	xHCI Host Controller 	
usb_usb7 	0x1d6b:0x0001 	usb 	Linux 3.16.3-unRAID ohci_hcd 	OHCI PCI host controller 	
usb_usb3 	0x1d6b:0x0002 	usb 	Linux 3.16.3-unRAID ehci_hcd 	EHCI Host Controller 	
usb_3_3 	0x1976:0x6025 	usb 	2.0 	Flash Disk 	
usb_4_1 	0x0603:0x00f2 	usb 	NOVATEK 	USB Keyboard 	
usb_5_1 	0x046d:0xc050 	usb 	Logitech 	USB-PS/2 Optical Mouse

I attach more info:

root@Tower2:~# readlink /sys/bus/pci/devices/0000:00:12.2/iommu_group
../../../kernel/iommu_groups/6

root@Tower2:~# ls /sys/bus/pci/devices/0000:00:12.2/iommu_group/devices/
0000:00:12.0@  0000:00:12.2@

root@Tower2:~# ls /dev/vfio
18  6  vfio

..18 is GPU which was succesfully passed through.

 

And my xml:

   <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=00:12.2,bus=pcie.0'/>
  </qemu:commandline>

 

Rgds.

 

You don't pass through a single USB port or device using the qemu:commandline arguments.  You can do that with a host dev.

 

XML code:

 

<hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x####'/>

        <product id='0x####'/>

      </source>

</hostdev>

 

To find vendor/product ID, click on the "system devices" tab of the unRAID web gui.  The first four characters are the vendor ID, then a colon, then the next four characters are the product ID.

 

And that code goes between <devices> and </devices>.

Link to comment

Hi Jon,

Thank you for sharing this little trick to me and also your windows8.xml file.

I tried both with my setup and I can confirm hostdev does the job for usb passthrough. Also, GPU passthrough worked too. Only issue is after I restart windows 8 my vm does not recognize the installed nvidia drivers for my gpu. Is there a way to solve it? It seems as the nvidia drivers are not properly saved.

I attach my devices config before restarting windows (after I already installed the drivers).

Rgds.

Edit: again "vodoo magic" ... your xml looks soo different compared to the one I was working with (Peter´s) :)

devicemgr_1.png.23d266f7b8fa849646e6897b4fb9a3b8.png

Link to comment

Show me the error code your getting after you reboot.  Also, is your current solution to reinstall drivers on each reboot?

 

I will resume the steps done before starting my vm:

1. start array

2. type this in command line:

root@Tower2:/boot# chmod 755 vfio-bind
root@Tower2:/boot# vfio-bind 0000:01:00.0 0000:00:14.2

3. start vm in vmmgr (thx again dmacias .. really a helpfull tool)

 

1st)So today I tried again. I started my vm. I connected to it using VNC till gpu passthrough was activated when loading windows (actually passthrough is activated when login in windows 8 with my user/password). When passthrough enters I lost the VNCsession-screen...I got a black screen in VNC). My vm was up and running in my external monitor. So now passthrough is working.

I am not getting any error code at all!

 

2nd)So I decided to restart my vm...

doing it from windows8. Voodoo magic again...I suddenly had a dual monitor set-up: my gpu was passthroughed and also my VNCsession-screen was recognized as another screen!

 

3)So I decided now to stop my vm from windows and start it again from vmmgr. More voodoo magic. Now only one screen is recognized: my VNCsession-screen...passthrough is not working now. I checked device mgr and nvidia drivers are missing!

 

Any thoughts Jon?

 

Also, why is -in the lower right corner of my windows 8 vm- the gpu showing up as a usb that can be ejected? see pic.

 

I still need to test the previous last step ... but trying to reboot the array or start/stop to see if this changes anything. Anyway, I love this kvm setup...when everything is up and working performance (first impressions) is on par with my other pc.

 

Also Jon, i have 2 gpu´s in unraid server, is it possible to tell unraid which one it should use? Only one of them shows me the boot of unraid. The other one is recognized but won´t show anything.

 

Rgds.

3rd_scenario_800x500.jpg.fcda53ce4a1bbc1e8623061629b5c6fa.jpg

usb_gpu_eject_1_800x226.jpg.08b2192c33189366cf489d30618d057a.jpg

Link to comment

which plugins of yours should I be using to get a windows VM running?

 

This one (https://raw.githubusercontent.com/dmacias72/webvirtmgr/master/webvirtmgr.plg)

 

Or this one (https://raw.githubusercontent.com/dmacias72/vmMan/master/vmMan.plg)

 

and/or this one (https://raw.githubusercontent.com/dmacias72/virtMan/master/virtMan.plg)

 

I currently have webvrtmgr and virtMan installed, and my server dies/becomes totally unresponsive after a few minutes, and I have to hard boot.

 

Also, I changed my syslinux.cfg to add this "pcie_acs_override=downstream" per a suggestion from jonp, like so...

 

default /syslinux/menu.c32
menu title Lime Technology
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot
label unRAID OS Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest
label Xen/unRAID OS
  kernel /syslinux/mboot.c32
  append /xen --- /bzimage --- /bzroot
label Xen/unRAID OS Safe Mode (no plugins)
  kernel /syslinux/mboot.c32
  append /xen --- /bzimage --- /bzroot unraidsafemode

 

Is this necessary with your plugins, or is it maybe causing my issues?

 

this all started after installing the 2 plugins above, so I suspect it's an issue, but am certainly not pointing fingers, or placing blame.  it could be anything.  I'm just trying to find out what is the 'right' way for me to be doing this.

 

thanks in advance.

Link to comment

I currently have webvrtmgr and virtMan installed, and my server dies/becomes totally unresponsive after a few minutes, and I have to hard boot.

If you remove the plugins does your server work fine?

You should have virtMan installed no matter what  and you can choose webvirtmgr or vmMan. I am using vmMan currenlty with virtMan

Link to comment

thanks.  I'm going to remove both plugins and restart the machine again, and see if it keeps running, but last time it took about 2 hours before it died, so I'm not sure when I'll "know" it's working again.

 

I just wondered if there were any known conflicts/issues with running webvirtman with virtman and the extra bit in the syslinux.cfg

 

I'll make the changes now and see what happens.

Link to comment

Virtman doesn't really install anything and it's necessary for both. It just mounts a small 1.5MB  image so your vm's survive reboot and enables libvirt.

 

vmMan is probably the least intrusive in that it's just php/java/html that interacts with libvirt through php-libvirt. There is no program running. It just uses unraid's emhttp.

 

Webvirtmgr is a python based plugin that is running in the background. It does have a few dependencies. So something could go wrong. 

 

Try to get a log or console screenshot when it happens

 

I would use vmMan myself. I have only had it freeze up emhttp once a long while ago. But ssh to server still worked and used powerdown to shut down.  But that was under heavy testing. 

Link to comment

Webvirtmgr is a python based plugin that is running in the background. It does have a few dependencies. So something could go wrong. 

 

Try to get a log or console screenshot when it happens

 

Sadly, I've not been successful in capturing anything when it dies.  I have a defect report filed about it, with details of what I've seen and tried, but LT has not responded, so I'm not sure where I stand with it.

 

I'll make the switch to vmMan and see how that goes.

 

thanks again for all your help and support.

Link to comment

You really needed a console open or monitor with the login screen.  I had lots of success with xen and then switched to kvm. But until I tried some dockers and heavy kvm vm's my memory either went bad or was exposed under those conditions. It would lock up randomly. 

I replaced it with ecc.

It also may be with your passthrough.

 

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.