Everything posted by jonp
-
***GUIDE*** Passing Through Network Controllers to unRAID 6 Virtual Machines
Please create a new post and include your xml for the VM.
-
unRAID 6 NerdPack - CLI tools (iftop, iotop, screen, kbd, etc.)
V6 only
-
Passing Ctrl+Alt+Del in QEMU noVNC
Can you find the accessibility option on the login screen? Click on screen keyboard and then you can do a Ctrl alt delete
-
Get Fancy with Docker and CPU Pinning
Glad it helped! I probably need to update this though because the right place to put the --cpuset parameter is now in the extra parameters field, not in the repo name field.
-
Increase vdisk
Also, instead of putting in an absolute size, you can also do this: qemu-img resize vdisk1.img +5G That would simply grow the image from its current size by 5GB.
-
unRAID 6 NerdPack - CLI tools (iftop, iotop, screen, kbd, etc.)
I'm sure we could accommodate that.
-
unRAID 6 NerdPack - CLI tools (iftop, iotop, screen, kbd, etc.)
Probably. Eric is pretty good about adding more and more to this.
-
***GUIDE*** Passing Through Network Controllers to unRAID 6 Virtual Machines
Your welcome! Can I ask your use case? Just curious if its pfsense or something else.
-
***GUIDE*** Passing Through Network Controllers to unRAID 6 Virtual Machines
The logic work is partly done (which is why I have this method documented). We have a few concepts as to how we would want to implement this, but the first question was, what's the use case? If its just pfSense, we could implement a VM template that let's the user specify this just in that template. If there are others, we may wish to implement a management tool for PCI Devices in general, but some PCI devices should never be stubbed such as DRAM controllers, root ports, and other general purpose devices. This would then take time for discovery and filtering. Graphics and sound were logical first choices as unRAID OS didn't need them to operate...ever. But as for other PCI devices, what would be the point? "Just to do it" doesn't put this as a high priority feature. Archedraft found a good use case for NIC assignment with pfsense because of the fact that it doesn't have good support for VirtIO in the guest kernel. But beyond that, are there other viable use cases? For USB, I could see this being valuable, but we are still testing and validating. Need a way to determine which USB controller is in use by the boot device and prevent it from being stubbed. Otherwise you could get in a nasty situation where the boot process would keep crashing until you ejected the flash and manually edited your syslinux.cfg from another device to remove the stub (not ok to let that happen). EDIT: will test with your code provided to see if that gives us consistent results on various setups. Thanks!! For storage, we also would need to understand the use cases for passing through an entire controller to a VM and what impact to other host storage performance that could have. Especially when another method could be to pass through just the block storage devices you want without passing through the entire controller. So I guess my point here is that there are bigger fish to fry to get us to rc1 right now and more thought needs to go into deciding how to deal with the pass through of other PCI devices before we make it a priority to put in the time to code it. That said, if you have ideas you'd like to share, I think its pretty clear we love your input!
-
***GUIDE*** Passing Through Network Controllers to unRAID 6 Virtual Machines
If you use my method, it should not matter which card you use. It will hide the device from being usable by unraid and therefore by default the other device will become unRAID's NIC.
-
***GUIDE*** Passing Through Network Controllers to unRAID 6 Virtual Machines
In a recent reply to a post by another forum member (archedraft), I provided this guide to help him assign one of his NIC devices to a virtual machine, leaving the other for host networking (unRAID OS). I didn't see much point in this because with KVM and VirtIO, we can create virtual network interfaces that offer little to no overhead over a physical NIC, but after testing with pfSense, archedraft confirmed for me that he saw a dramatic performance increase. The reason? In this particular instance, pfSense was acting as a firewall and is based on FreeBSD. The FreeBSD kernel used by pfSense, while having support for VirtIO, appears to be out of date and was not allowing full 1gbps LAN throughput as it does with Linux or Windows VMs. Passing through a physical Ethernet controller to his pfSense VM in this instance resolved his issue. So we have found at least one use case thus far to consider such a method, but in the future, we may find more. And since the question comes up from time to time, I thought it prudent to post this here as an advanced guide for those that want to try it. WARNING: If you do not have multiple NICs in your system, doing this will result in your server losing all network connectivity. IMPORTANT: Regarding VM to Host Networking Performance When VMs utilize VirtIO, their is another distinct advantage in that networking between the host and guest can take place without traversing the copper wire. This allows for much faster throughput than the physical NIC hardware even supports at the port level. As an example, in mounting an SMB share to my SSD-based cache pool from inside my Windows VM, I was able to see IO throughput to the share exceed 250MB/s (that's megabytes, not bits). When a VM is assigned a physical network controller, this advantage disappears as the VM will communicate with the host as if it was a separate physical machine, going out the one NIC, down to your router/switching infrastructure, and then back in. This will limit your network throughput to that of the physical hardware. In my previous Windows VM / SMB example, I would be limited to 1gbps or 125MB/s. Guide 1 - Login to your server via ssh. 2 - Type the following command: lspci You will get a list like this: 00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller (rev 06) 00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06) 00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06) 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04) 00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04) 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 04) 00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4) 00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4) 00:1f.0 ISA bridge: Intel Corporation Z87 Express LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04) 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series] 01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series] 02:00.0 VGA compatible controller: NVIDIA Corporation GK110 [GeForce GTX 780] (rev a1) 02:00.1 Audio device: NVIDIA Corporation GK110 HDMI Audio (rev a1) 04:00.0 Multimedia video controller: Device 1a0a:6202 (rev 01) Identify the Ethernet controller you wish to assign. Note the PCI address for the device (from my list, it would be 00:19.0). From my list, I only have one network card, so I shouldn't do this, but if you have multiple, either one SHOULD be fine to select. 3 - Type the following command: lspci -n 00:00.0 0600: 8086:0c00 (rev 06) 00:01.0 0604: 8086:0c01 (rev 06) 00:01.1 0604: 8086:0c05 (rev 06) 00:02.0 0300: 8086:0412 (rev 06) 00:03.0 0403: 8086:0c0c (rev 06) 00:14.0 0c03: 8086:8c31 (rev 04) 00:16.0 0780: 8086:8c3a (rev 04) 00:19.0 0200: 8086:153b (rev 04) 00:1b.0 0403: 8086:8c20 (rev 04) 00:1c.0 0604: 8086:8c10 (rev d4) 00:1c.3 0604: 8086:8c16 (rev d4) 00:1f.0 0601: 8086:8c44 (rev 04) 00:1f.2 0106: 8086:8c02 (rev 04) 00:1f.3 0c05: 8086:8c22 (rev 04) 01:00.0 0300: 1002:68f9 01:00.1 0403: 1002:aa68 02:00.0 0300: 10de:1004 (rev a1) 02:00.1 0403: 10de:0e1a (rev a1) 04:00.0 0400: 1a0a:6202 (rev 01) 4 - Identify your network card by PCI address (first column of results). 5 - Obtain the vendor/product ID for that device from the last column. 00:19.0 from my example is 8086:153b. 6 - Edit your syslinux.cfg file and add the following after the append but before initrd=/bzroot. pci-stub.ids=8086:153b REPLACE THE VENDOR/PRODUCT ID FROM MY EXAMPLE ABOVE WITH THE ONE YOU OBTAINED IN STEP 5. 7 - Reboot your system. 8 - Edit your VM using the XML editor mode. 9 - Add the following between the <devices> and </devices> tags. <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x00' slot='0x19' function='0x0'/> </source> </hostdev> Modify the address line entering in the two digit bus, slot, and function from your ID. So 00:19.0 translates to what I have above. Save the XML and start your VM. All should be right as rain! NOTE: If you get an error, it could be because your NIC is in an IOMMU group with another in-use PCI device (either assigned to the host or to another VM). In this instance, you can attempt to use the PCIE ACS Override option under the VM Manager settings page, but use of this toggle is considered experimental.
-
Get Fancy with Docker and CPU Pinning
I'll make sure we put it in the announcement post in the release that includes Docker 1.6. Eventually we want to offer options to control this from the webGui outside the "extra parameters" field, so when changes like this happen with Docker, we catch them and apply them for you automatically, but we're just not there yet.
-
Get Fancy with Docker and CPU Pinning
Actually I wish that was what happened, but instead, it starts the containers just fine, just doesn't apply the CPU pinning.
-
Get Fancy with Docker and CPU Pinning
hey everyone, just thought I'd let folks know that Docker is changing the cpuset parameter in 1.6 to --cpuset-cpus. you can use this in 1.5 and I encourage anyone doing this to update their containers to this now, so they don't get frustrated when 1.6 hits and the old method is FULLY deprecated. CORRECTION: This does NOT work in beta 15. My bad... I'll update the OP with this information as well...
-
unRAID 6 NerdPack - CLI tools (iftop, iotop, screen, kbd, etc.)
I like this idea. Great idea. I would also like to see a plugin that could be used for creating archives. @LT, Any thoughts on making this a reality? Creating officially managed plugins from LT is something we are looking to do. Stay tuned for more information on that.
-
Help Add More PCI Device Pass Through to unRAID 6
So far, yup. Might see some variance as more get added. We thought we had video figured out, but there are actually some graphics devices that show up as VGA compatible controller and others that show up as Display controller.
-
Simpler / Easier PCI Device Pass Through for NON-GPUs
So u can toggle pcie ACS overrides under vm settings to get around this, but its use at your owns risk. If you didn't have problems in xen, you should not with kvm, but what xen allowed you to do was technically just as risky pcie acs overrides.
-
Simpler / Easier PCI Device Pass Through for NON-GPUs
Ok, let's try this: 1) Stop all your running VMs 2) Login via SSH or telnet 3) type the following command: nano /etc/libvirt/qemu.conf 4) Hit CTRL+W on your keyboard (this searches in nano). Search for the word "relaxed" 5) Uncomment this line: #relaxed_acs_check = 1 6) Hit CTRL+X on your keyboard to exit, when prompted to save modified buffer, hit "y" for yes 7) Exit SSH/telnet Navigate your browser to Settings -> VM Manager 9) Set "Enable VMs" to No and then to Yes again (restarting libvirt) 10) Try to start your VM again...
-
Help Add More PCI Device Pass Through to unRAID 6
Hey guys, could use your help on something. We'd like to add support for more types of PCI devices and to do that, I need your help. For Ethernet, Storage, and USB controllers, there is some work ahead, but for capture/tuner cards, we could implement something even shorter term to make this possible. To do this, I need to know how Linux identifies your various other PCI devices so that we can build in the appropriate filters. For each device beyond graphics/sound that you'd like to pass through (but NOT including Storage, Ethernet, or USB controllers), please visit the Tools -> System Devices page in the webGui and copy / paste the device identified from the PCI Devices section back here. Here's an example for a capture card I have on my system: What I'm going to be focused on is the part above in bold. In addition, please identify what kind of device it is (make model / type). Mind would be an AverMedia GameBroadcaster HD (for make/model) and it's a video capture card. Thanks everyone!!
-
Simpler / Easier PCI Device Pass Through for NON-GPUs
Ok, go to command line for me and type the following: virsh start MediaServer Copy and paste the output returned here.
-
Simpler / Easier PCI Device Pass Through for NON-GPUs
Thanks, chuffed you approve. I thought about putting it in the wiki? What do you think? Not a bad idea!
-
How to remote desktop into VM
[emoji20]
-
How to remote desktop into VM
Exactly. Give it a whirl and report back how it went for you!!
-
How to remote desktop into VM
Go edit your vm. Don't you see a drop down for graphics? Pick you GPU. End of guide . ;-) When I go to graphics card in the unraid VM manager, all I have is VNC. I am running an AMD A8-3570K processor and no discrete graphics card. See the manual in my signature for hardware requirements. You cannot use on board graphics. You need a discrete card. You also need AMD-Vi support on your CPU/motherboard. See the manuals section about VMs for more information on configuring your BIOS.
-
How to remote desktop into VM
Go edit your vm. Don't you see a drop down for graphics? Pick you GPU. End of guide . ;-)