My TrueNAS Scale 25.10.4 is running on an HP ProLiant DL360 Gen10. 2 x Intel Xeon, 24 cores each, 48 core total (ignoring hyperthreading). 256 GiB RAM.
I run 10 VMs, total virtual cores 36, total RAM assigned to VMs is 138 GiB. So this ought to work smoothly I would think.
But I have a problem which I’ve narrowed down to one of the VMs being busy seemingly causing other VMs to fall down.
The VM in question is running FreeBSD 15.1 and using poudriere to build many many packages. It used to be assigned more cores and more RAM, but due to this issue I’ve been reducing it. Now it’s assigned only 2 cores and 64 GiB of RAM, yet still this issue occurs.
When poudriere is busy, it causes other VMs to fail to ping and/or become suspended.
Have you tried installing the QEMU guest agent in all your VMs, so the guests can correctly provide feedback to the host? (In your Windows VMs, this should be the Hyper-V guest tools, and Hyper-V enlightenments should be enabled for these VMs.)
So all my Windows VMs already had the ‘Hyper-V enlightenments’ option enabled. But I didn’t have any guest agent/guest tools installed in the guests themselves. I wonder if that’s an invalid combination that was causing my problems?
So like I said, I installed qemu-ga on some of the Windows VMs, then powered them off, then on. Last night they didn’t become suspended but they did fail to ping many times overnight (as detected by our monitoring). So merely installing that software did not fix it.
But rereading your post, I think maybe you were suggesting to install/enable some Microsoft software related to Hyper V? Were you talking about the ones listed by Get-Service -Displayname “Hyper*”?
Indeed it does seem like not having them shouldn’t cause such severe problems, but hey if it fixes it, that’s fine with me. Remains to be seen of course.
The underlying hypervisor is QEMU. QEMU needs the guest agent to be able to correctly suspend/resume VMs. There’s also an API call to suspend the VM during a snapshot of its zvol which also relies on the guest agent.
So I’ve installed CrystalDiskMark on all my Windows VMs.
Running it also reproduces my problem. That is: after CrystalDiskMark is running for a bit, my RDP connection to my VM will drop, and pings to the VM will fail. Then, after a minute or so, the pings restart and the RDP connection resumes. It seems to always happen during the write tests, not the read tests.
For example see the horrible results below. My connection dropped during those first write tests, where the latency hit the roof:
Yes, you should be using virtio mode. But even without them, should not do this.
Given that this happens whit i/o, I suspect the disconnects will continue even in virtio mode.
I have seen where a VM would disconnect RDP during backups due to the heavy data transfers, but that’s network related, where this seems i/o related. (The dataset has sync enabled??).
Good news is that installing the virtio drivers and/or disabling sync seems to have fixed the issue, though it’s maybe a bit early to say for sure. Bad news is I changed two things at once so don’t know which fixed it. After a few weeks with no problems, I’ll try bringing back sync=standard.
Yes, like I said already, I’ll try that. But I’ll first wait a few weeks to be sure this issue is fully solved. (This is a prod system with several employees relying on it for work.)
Holy cow, production vms with no experience in TN?
I would have gone the sure way with the latest free esxi 8.
Or even virtual box under windows.
Once you had learned, tested TN VMs, move them, as it’s trivial to move other VMs to TN.
One last observation. Ensure you have an UPS, automatic shutdown if power fails, and good VM backups! (Sync disabled can create a non booting VM if not shutdown properly).
Your SSD containing the VMs must not be very fast if sync enabled is the real culprit here?
I do run my VMs in Samsung nvme ssds with sync disabled, but do have daily backups, ups and automatic shutdown etc. Happy, no issues or surprises.
We did lots of testing before moving these VMs from Core to Scale but as the problem only occurred under heavy load it was not detected until later.
As I said, it’s two 2.5" SSDs in a mirror. Not the fasting thing ever, but should not be as slow as I’m seeing. And anyway, like you said, it’s an “if”. We’ll see, I’ll update this thread once I retry.