Due to the fact that Hypervisors stand between hardware and software, they sometimes disrupt the proper communication between the two causing the software to fail. One such case is when software is locked on specific hardware, for example Microsoft Windows Server ROK.
If you follow the default procedure and install the OS directly on the server then everything runs fine without any issues. But what happens when you want to install the OS as a Virtual Machine on the same server? Well if you are using oVirt as your virtualization solution then you get the following message:
To solve this problem the Virtual machine where the Operating System will be installed must reflect the Host’s Hardware Properties.
oVirt uses the KVM hypervisor (type 1 hypervisor) and many other opensource APIs and projects. Among those projects is the QEMU (type 2 hypervisor) which is responsible for the virtual hardware emulation of the VMs. You can learn more about KVM structure from Wikipedia.
The proposed solution uses an additional package on the hosts, the vdsm-hook-qemucmdline and with the appropriate configuration of the hosted engine, the hypervisor will be able to pass the required Properties to the BIOS and make the Virutal Machine appear as the underlying host.
Step 1 – Install vdsm-hook-qemu-cmdline to the Host(s)
The following actions will install the required package to the host(s), they don’t modify your existing setup other than adding additional functionality. On oVirt Environment HOST(s) run the following commands:
1) Remount your filesystem as read and write:
mount -o remount,rw /
2) Download the latest version of the package
http://yum.oracle.com/repo/OracleLinux/OL7/ovirt43/x86_64/getPackage/vdsm-hook-qemucmdline-4.30.46-1.0.3.el7.noarch.rpm
3) Install the package
rpm -ivh http://yum.oracle.com/repo/OracleLinux/OL7/ovirt43/x86_64/getPackage/vdsm-hook-qemucmdline-4.30.46-1.0.3.el7.noarch.rpm
Step 2 – Configure the Hosted Engine
The following changes will have as a result the availability of the "qemu_cmdline" Property in the VM’s Custom Properties Tab.
1) Connect to the Hosted Engine either through oVirt Console or using SSH and run the following command:
engine-config -s "UserDefinedVMProperties=qemu_cmdline=^.*$"
2) You will be asked to select your oVirt Version. Make your selection and hit Enter.
3) Restart ovirt-engine service using the command:
service ovirt-engine restart
Step 3 – Find your server’s hardware details
By using dmidecode commands on your server you can get a lot of useful information about your server.
dmidecode -t 0
dmidecode -t 1
You have to take a note of :
- Manufacturer
- Product
- Version
- Serial
- Uuid
- Sku
- Family
Step 4 – Configure your VM to reflect host server
1) Make sure that your VM is powered off.
2) From the oVirt environment, select your VM right click and select "Edit".
3) From the popup window, select the "Custom Properties" Tab.
4) Add a new property with type "qemu cmdline", and the following content as additional parameter (Replace appropriate with the values from Step 5):
["-smbios", "type=1,manufacturer=MANUFACTURER,product=PRODUCT,version=VERSION,serial=SERIAL,uuid=UUID,sku=SKU,family=FAMILY"]
That’s it! Boot using your Windows Server ROK CD and complete the installation!