Please read this webpage about Virtual Machines (VMs) to get started.
Why run Nx Witness in a VM?
The Nx Support team often uses virtualization to reproduce customer scenarios, since it is much easier to create multiple virtual machines on a single server, as opposed to needing several physical bare-metal servers for the same task.
Nx Server and Nx Testcamera (IP Camera Emulator) make a powerful combination by facilitating scenarios to be run in a test environment with minimal effort and investment before committing to real-life deployment.
We encourage any support agent or pre-sales engineer to get familiar with virtualization, as it makes life much easier when investigating various cases one may encounter.
Environment
Due to the wide variety of host and guest operating systems, the number of cameras, rules, applications (e.g., 3rd party AI analytics), and the virtualization manager itself, recommended settings are not available. It may be worth considering a headless system to save resources.
The two most common VM operating systems for Nx Witness are Ubuntu and Windows (if needed, here is a 90-day trial version of Windows 10 Enterprise).
To get a feel for the type of performance you can expect, please look at our test results below. We have set up the following system:
- Host OS – Ubuntu 20.04 LTS
Running applications:- VirtualBox 6.1
- Nx Desktop 4.2.0.32658
- Guest OS – Ubuntu 20.04 LTS
Running applications:- Nx Server 4.2.0.32658
- Nx Witness Test Camera 4.2.0.32658
The following resources were allocated for the VM:
- 2 Cores (i7-10510U)
- 8 GB RAM
- 50GB Storage
In our test environment, we had 24 Full HD streams actively recording at 25 fps filming a public road and had them open in the layout with an average CPU utilization of ~22% and 15% RAM load of the VM running the server application.
The video files used in our testing:
It was a stable and smooth experience, although results may vary depending on your hardware. In general, the more resources you allocate to, the VM, the better your results will be.
Cloning
In a virtualization manager, cloning allows you to make identical copies of a VM, making it quick and easy to deploy large environments on a single physical host machine.
Note: Cloning means an identical copy of the source VM and thus identical Hardware IDs (HWID). If more than one VM uses an HWID, it will cause license issues since licenses are bound to a unique HWID.
To prevent that, please take the following steps:
- Build a VM with the guest OS of choice.
- Install the Nx Witness Media Server application in the VM.
-
Change the configuration settings:
For Windows:
1. Open Registry Editor (Windows key → regedit)
2. Navigate toHKEY_LOCAL_MACHINE\SOFTWARE\Network Optix\Network Optix Media Server
3. Find and delete the following attributes:
a. serverGuid
b. guidIsHwid=yes
4. Close Registry Editor.
For Linux:
1. Open Terminal (Ctrl+Alt+T)
2. Change the directory:cd /opt/networkoptix/mediaserver/etc
3. Edit the configuration file:
sudo nano mediaserver.conf
4. Find and delete the following attributes
a. serverGuid
b. guidIsHwid=yes
5. Save and close the configuration file. - Shut down the VM and use it as a source for cloning.
WARNING: Do not start the VM before cloning, otherwise, you’ll have to repeat step 3 before cloning. - When cloning the VM, please make sure you generate new MAC addresses for each clone. This way, each clone that is created will have a unique MAC address and a unique HWID associated with it, which should prevent license conflicts.
NOTE: Since it might be possible that identical MAC addresses are generated, it is good practice to keep a list of MAC addresses and Hardware IDs for each VM to check for duplicates that should be corrected, especially when you deploy numerous VMs.
Nx Desktop
In general, virtual machines do not run GUI-based tasks as well as they are able to host services/daemons due to additional load that is applied to the CPU software rendering.
The performance will vary depending on the virtualization manager, but in general, the experience is not as smooth as it would be on the host OS.
If you want to run Nx Desktop in a VM anyway, make sure that the guest OS is compatible with OpenGL 2.1 or newer, and has 3D acceleration enabled in the VM settings. Please read our support article for running Nx Desktop in a VM (if using VMware: VMware tools will provide better performance than the emulation library in the support article).
Known limitations
- The Nx Server application fails to start and displays log file entries similar to:
2017-06-09 15:12:06.945 704 ERROR: Can't save guid. Run once as administrator. The solution can be found in a related support article. - It might take a lot of time to initialize shared NAS devices. It happens because of delays in OS level calls. The Nx team cannot do anything about it right now from the software side. As an option, it is better to set up a large local drive and use it for recording until the NAS has initialized.
- There is a slight chance that the virtual machine will improperly report the hardware information that the server requires to generate the Hardware ID.
Suitable Virtualization Managers
The following virtualization managers are confirmed to work with Nx Server when installed on and used with a supported Operating System:
People have used the following virtualization managers, but these aren't confirmed:
The following virtualization managers were confirmed to raise some issues and are not recommended for use with Nx Witness:
- Citrix Hypervisor (formerly known as XenServer)
Note: Please be aware that we do not test each virtualization manager for each Nx Witness release or patch, as providing support for virtualization managers and other 3rd party products is outside of Nx Support scope. It is the responsibility of the user to verify the compatibility. |
Comments
0 comments
Article is closed for comments.