Since the NAS was going to be a typical tower and in the living room, the overarching goal was to make it also have the functionality of a gaming PC. To get true USB Hot-Plugging will require us to pass through an entire USB controller just like we did the Pascal GPU. We’ve covered the basics of IOMMU groups, and most server / workstation hardware (CPUs, motherboards, and chipsets) would make this pretty easy. However, I put this together out of older hardware I had laying around. Specifically, I have a Zen 1 Ryzen 7 1700 dropped into an X370 motherboard (MSI X370 Gaming Pro). Since all this hardware was made for “consumers”, the designers did not put a lot of thought into how things can be isolated and virtualized. So, the next step I need to take is to map all the IOMMU groups to actual devices on the motherboard.
Read MoreMonth: January 2021
Unraid PCIe and IOMMU Groups
Passing through a GPU on Unraid is usually a pretty easy task. Issues are easily solved as long as it’s in one of the “GPU” / main PCIe slots on most motherboards. There are some issues using it in the primary slot which are easily overcome. I discussed in my unRAID Pascal GPU Passthrough guide. However, for more advanced setups, you’ll need to start passing through other PCIe devices to virtual machines. This starts to get a bit more tricky and the many guides have some shot-gun approaches to solving the problems associated with these advanced setups. In order to maximize system stability, you’ll want to avoid these shot-gun approaches and the pitfalls associated with them. In this post I’ll give you a basic understanding of PCIe and IOMMU groups. Then discuss one of the more commonly touted “solutions” and the pitfalls associated with it.
Read MoreUnraid VM USB Hot Plug
Once you have basic GPU passthrough configured, you can get near bare-metal performance in a VM on Unraid using KVM under the hood. However, one thing that is a little awkward are USB devices. The host, in this case Unraid, owns, initializes, and configures USB devices by default. This gets even more complicated when you consider that Unraid boots off a USB device rather than another drive in the system.
Here we’ll look at how you can get close to hot-plugging USB devices into a VM. In a future post we’ll take it a step further to get near-baremetal functionality just like we did with the GPU.
Read More