XenServer Windows 10 VM is dropping files with write errors in Blue Iris IP Cam Software: How do I eliminate RAID read/write lag to optimize VM for Blue Iris Surveillance Software?
I'm fairly new at this hypervisor stuff, and not particularly experienced at hardcore IT. But my roommate bought a crappy Nest Cam, and I was so moved by the awful experience of the cloud-connected wifi surveillance cam subscription service racket that I built a Dell R710 homelab surveillance server running XenServer 7.6 and Blue Iris in a Windows 10 Pro VM. I realize this all might be easier if I just ran W10 bare metal, but I don't intend to max out this hardware with just cameras, hence why I'm trying to virtualize and leave some headroom for other fun stuff.
XenServer installed on Disks 0 and 1 in RAID-0 (I'm aware there is no redundancy or failover protection with this setup, risk i'm willing to take until i have more spinning disks)
Windows 10 VM and, importantly, the camera footage both stored in the same 4 disk RAID-10 array on Disks 2, 3, 4, and 5
My problem is that every so often I notice that Blue Iris drops a video clip with a write error, specifically with the Blue Iris error code: Clip: write error 80000005, undefined. Not sure if that BI error code will be extraneous info here, but also of note is that it lists a negative value for the size of the storage volume in Blue Iris' Clip Storage tab. I picked a very low size of 24GB for the VM initially, with the intent to increase it's allocation of the logical volume as needed, and, if I'm not mistaken, it is this 24GB size that, when surpassed by the VM due to increasing video clip storage requirements, causes a negative gigabyte value to be displayed within Blue Iris. It's like W10 isn't sure how big any files are, let alone the logical volume on which it resides.
I have a Hikvision 4k 2.8mm H.265+ PoE camera, which is the sole input to my Blue Iris software so far. Pretty heavy duty camera for consumer grade home surveillance server, but the load from one of these things even at full resolution should not be terribly taxing to a RAID 10 array on four 15k RPM SAS drives, I wouldn't think, especially if I've got H.265+ configured properly, which I believe I do. It would surprise me if that one camera is enough to max out the system as I have it configured, but there are obvious RAID issues that I need to work out, and hopefully doing so will fix this issue of dropping video clips.
Number 1 is that my clips are being stored to the same logical volume as my Windows 10 VM. Number 2 is that either my RAID-0 XenServer volume or my 4-disk RAID-10 VM+Clip volume (or both, but probably more so the RAID-10) are insufficient for the level of performance required. I had hoped that with just one VM, and also just one or at least not many cameras, the file I/O of the RAID array would not be an issue. Maybe it shouldn't be. Maybe there is some other aspect that could be better configured, without re-configuring the RAID array, that would fix this write error. I'm very interested to learn of other ways to increase performance without adding spinning disks. But yeah for this first run of testing Blue Iris, my clips were stored directly within the Windows 10 VM's own file system on the 4 spinning disk RAID-10 array. Does the fact that I had issues with this configuration indicate that there is something more subtle going on or that I should just store the VM and clips on separate volumes and use better RAID config?What I mean is, does this sound like it should work ok and I'm maybe missing some other aspect than the RAID config?
I've been debating how to "add more spinning disks" to increase my RAID performance, working from the assumptions that fixing issues 1 and 2 will fix the write errors, and it seems to me that putting the Windows 10 VM on a USB flashdrive in my R710 might be a viable solution without buying any more hardware to add spinning disks. This introduces the question of whether the USB file I/O speeds will slow things down, and that is definitely a concern since it's USB 2.0 only, not 3.0, and even then it might still be a concern. Windows 10 USB VM file I/O is one thing, but the bigger concern seems to be ensuring the RAID array can handle writing the clips without fail. To further improve performance, I am going to change the 4 spinning disk RAID-10 volume to a RAID-0 volume. So both XenServer and my video clips will be stored on RAID-0 volumes with no redundancy or failover protection. I will add a USB drive storage repository to save recent clips/.jpgs as a backup in the event of drive failure. I'll have my VM on a USB, also backed up somewhere, allowing easy redeployment. If a drive fails, I'll have to replace it and either reinstall XenServer or re-initialize the clip storage RAID volume, and I lose all my clips if a drive in the clip storage array fails. Also, the server fails if a drive fails. There's no limp mode here. These are acceptable risks to me, at least while I am learning and testing. Eventually, I will decide how I want to spend my money to add more spinning disks for redundancy and failover protection.
So my solution is: move Windows 10 VM to a USB flashdrive and use 4-disk RAID-0 array for clip storage. Figure out redundancy and failover later. Does this seem like it will correct my write errors?
Also, I used the default options in both of the PERC H700 RAID-0 configurations, namely: Adaptive Read, Write Back, and I left Force WB w/ no battery UNCHECKED. How do the Read/Write policies affect RAID performance for my use case? I am a bit confused about Read/Write policies. I am also unsure of the correct setting for the "Copy host BIOS strings to VM" option that must be checked or unchecked prior to launching a VM for the first time...
And one last thing, I am getting an error when booting up XenServer:
[ some numbers] mce: Unable to init device /dev/mcelog (rc: -16)
[ some numbers] systemd[1]: Failed to insert module 'autofs4'
[FAILED] Failed to start Load Kernel Modules.
see 'systemctl status systemd-modules-load.service' for details.
Starting Apply Kernel Variables...
Question
Xen See
I'm fairly new at this hypervisor stuff, and not particularly experienced at hardcore IT. But my roommate bought a crappy Nest Cam, and I was so moved by the awful experience of the cloud-connected wifi surveillance cam subscription service racket that I built a Dell R710 homelab surveillance server running XenServer 7.6 and Blue Iris in a Windows 10 Pro VM. I realize this all might be easier if I just ran W10 bare metal, but I don't intend to max out this hardware with just cameras, hence why I'm trying to virtualize and leave some headroom for other fun stuff.
Initial Specs:
My problem is that every so often I notice that Blue Iris drops a video clip with a write error, specifically with the Blue Iris error code: Clip: write error 80000005, undefined. Not sure if that BI error code will be extraneous info here, but also of note is that it lists a negative value for the size of the storage volume in Blue Iris' Clip Storage tab. I picked a very low size of 24GB for the VM initially, with the intent to increase it's allocation of the logical volume as needed, and, if I'm not mistaken, it is this 24GB size that, when surpassed by the VM due to increasing video clip storage requirements, causes a negative gigabyte value to be displayed within Blue Iris. It's like W10 isn't sure how big any files are, let alone the logical volume on which it resides.
I have a Hikvision 4k 2.8mm H.265+ PoE camera, which is the sole input to my Blue Iris software so far. Pretty heavy duty camera for consumer grade home surveillance server, but the load from one of these things even at full resolution should not be terribly taxing to a RAID 10 array on four 15k RPM SAS drives, I wouldn't think, especially if I've got H.265+ configured properly, which I believe I do. It would surprise me if that one camera is enough to max out the system as I have it configured, but there are obvious RAID issues that I need to work out, and hopefully doing so will fix this issue of dropping video clips.
Number 1 is that my clips are being stored to the same logical volume as my Windows 10 VM. Number 2 is that either my RAID-0 XenServer volume or my 4-disk RAID-10 VM+Clip volume (or both, but probably more so the RAID-10) are insufficient for the level of performance required. I had hoped that with just one VM, and also just one or at least not many cameras, the file I/O of the RAID array would not be an issue. Maybe it shouldn't be. Maybe there is some other aspect that could be better configured, without re-configuring the RAID array, that would fix this write error. I'm very interested to learn of other ways to increase performance without adding spinning disks. But yeah for this first run of testing Blue Iris, my clips were stored directly within the Windows 10 VM's own file system on the 4 spinning disk RAID-10 array. Does the fact that I had issues with this configuration indicate that there is something more subtle going on or that I should just store the VM and clips on separate volumes and use better RAID config? What I mean is, does this sound like it should work ok and I'm maybe missing some other aspect than the RAID config?
I've been debating how to "add more spinning disks" to increase my RAID performance, working from the assumptions that fixing issues 1 and 2 will fix the write errors, and it seems to me that putting the Windows 10 VM on a USB flashdrive in my R710 might be a viable solution without buying any more hardware to add spinning disks. This introduces the question of whether the USB file I/O speeds will slow things down, and that is definitely a concern since it's USB 2.0 only, not 3.0, and even then it might still be a concern. Windows 10 USB VM file I/O is one thing, but the bigger concern seems to be ensuring the RAID array can handle writing the clips without fail. To further improve performance, I am going to change the 4 spinning disk RAID-10 volume to a RAID-0 volume. So both XenServer and my video clips will be stored on RAID-0 volumes with no redundancy or failover protection. I will add a USB drive storage repository to save recent clips/.jpgs as a backup in the event of drive failure. I'll have my VM on a USB, also backed up somewhere, allowing easy redeployment. If a drive fails, I'll have to replace it and either reinstall XenServer or re-initialize the clip storage RAID volume, and I lose all my clips if a drive in the clip storage array fails. Also, the server fails if a drive fails. There's no limp mode here. These are acceptable risks to me, at least while I am learning and testing. Eventually, I will decide how I want to spend my money to add more spinning disks for redundancy and failover protection.
So my solution is: move Windows 10 VM to a USB flashdrive and use 4-disk RAID-0 array for clip storage. Figure out redundancy and failover later. Does this seem like it will correct my write errors?
Also, I used the default options in both of the PERC H700 RAID-0 configurations, namely: Adaptive Read, Write Back, and I left Force WB w/ no battery UNCHECKED. How do the Read/Write policies affect RAID performance for my use case? I am a bit confused about Read/Write policies. I am also unsure of the correct setting for the "Copy host BIOS strings to VM" option that must be checked or unchecked prior to launching a VM for the first time...
And one last thing, I am getting an error when booting up XenServer:
And then everything proceeds with status: [ OK ]
From this thread, it appears to just be a benign bug though:
https://bugs.xenserver.org/browse/XSO-712
Link to comment
8 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now