Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS - virtualization

Unable to power on VM from foreman.
I could create the VM but it gives me below error when trying to power on. I could see that the VM is created in host.
Failed to start abc.sdnlab.com: Call to virDomainCreateWithFlags failed: unsupported configuration: Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS, and host configuration is setup to load the kvm modules.
I have checked that kvm kernel module is loaded.
Any idea what can be done?

You need to check in BIOS and enable virtualization there ( I think it should be there under Security section).
The, do this to verify kvm module is loaded.
#lsmod | grep kvm
if kvm module is not loaded, you need to do #modprobe kvm
Check whether kvm is properly loaded, using #dmesg.
PS:
You may need to check whether libvirtd daemon is running. (For this you need to start, libvirtd daemon).
I think it is "service libvirtd start"

I got fix for this issue : the details of the issue fix are as follows :
KVM Software tools should be on the controller
patterns-sles-kvm_server - KVM Host Server 12-58.8
patterns-sles-kvm_server-32bit - KVM Host Server
patterns-sles-kvm_tools - KVM Virtualization Host and tools
patterns-sles-kvm_tools-32bit - KVM Virtualization Host and tools
qemu-kvm - Kernel-based Virtual Machine
virt-v2v - Convert a virtual machine to run on KVM
yast2-vm - Configure Hypervisor and Tools for Xen and KVM
check the hardware requirement as mentioned below:
1.1. Hardware Requirements¶
Currently, SUSE only supports KVM full virtualization on x86_64 hosts. KVM is designed around hardware virtualization
features included in AMD (AMD-V) and Intel (VT-x) CPUs. It supports virtualization features of chipsets, and PCI devices,
such as an I/O Memory Mapping Unit (IOMMU) and Single Root I/O Virtualization (SR-IOV)).
You can test whether your CPU supports hardware virtualization with the following command:
egrep '(vmx|svm)' /proc/cpuinfo
If this command returns no output, your processor either does not support hardware virtualization, or this feature has been disabled in the BIOS.
The following Web site identifies processors which support hardware virtualization:
how to enable the vx-t in virtual machine :
https://forum.ivorde.com/kvm-nested-in-vmware-esxi-5-5-enable-guest-hypervisor-vmx-svm-flags-without-vsphere-web-client-
t19773.html
GO to the VMS vmdk folders and edit .vmx file and add the following flag in that file and save it.
vhv.enable = "TRUE"
Follow the commands below to restart the VM and reboot the machine.
/vmfs/volumes/53071ba5-6f9682d4-5898-002590883ef6/SLES 12 VM # vim-cmd vmsvc/getallvms | grep -i sles
15 SLES-82 [datastore1] SLES 1/SLES 1.vmx sles11_64Guest vmx-08
59 SLES 12 VM [datastore1] SLES 12 VM/SLES 12 VM.vmx sles11_64Guest vmx-08
/vmfs/volumes/53071ba5-6f9682d4-5898-002590883ef6/SLES 12 VM # vim-cmd vmsvc/reload 59
/vmfs/volumes/53071ba5-6f9682d4-5898-002590883ef6/SLES 12 VM #
Reboot your machine and try to start your controller it will work.
Thanks
Nagesh

I just came across this issue after a BIOS update - the kvm module was loaded (& could be removed & re-inserted) - libvirtd was crashed with the error 'KVM is not available' - checking /dev/kvm it did not exist which is the clue.
The solution in my case on an AMD system was to enable svm (virtualization) in the BIOS. I had enabled it before & the BIOS rebooted itself a couple of times after the update & must have reset it back to off (the default).

Related

VMWare: Unable to access web server running on guest OS (Oracle Enterprise Linux 6.5) from host (Windows 7)

I am hosting a Oracle Linux 6.5 OS using VMWare on my windows 7 laptop. The VM is configured to use NAT networking configuration, and I am able to ping the guest OS successfully from my windows machine. Also, I am able to access internet from within my guest OS.
However, I am unable to access a web application running on port 8080 on a web server hosted within the guest OS using a browser in my host OS. The application is however accessible when accessed from a browser within the guest OS.
Some observations that may be of some use:
1. Neither my laptop, nor the VM have a static IP address.
2. I am able to ping my guest OS from host, and vice versa
3. Firewalls are disabled on both my laptop as well as the guest OS
Any help would be highly appreciated
The reason for the above issue could be mostly because of firewall settings/rules enabled in guest OS OEL. To check the rules you can type iptables -L -n at bash prompt which will display FILTER rules (CHAIN INPUT/OUTPUT/FORWARD).
Adding filters to allow the host to access guest http protocol would make things work. On the other hand, if this is for developmental purposes you can completely disable the firewall filter by saying
service iptables stop. Keep in mind that this is not a safe approach as it exposes your guest to the world without a firewall especially if you are using a bridged network connection.

Network troubles with installing SecurePlatform on Hyper-V VM

I try to install check point SecurePlatform on my Hyper-V virtual machine.
I have two virtual swithes, External and Internal, and two Ethernet adapters in my VM settings. But I don't see any Ethernet adapters in Device scan list during SecurePlatform installation process.
I have not any idea, why it happens. I think that SecurePlatform doesn't support virtualization, but I can't find any information about it compability with Hyper-V hypervisor
I found solution: I need to create two legacy network adapters for both virtual switches. Now I can ping SecurePlatform machine from my virtual internal network.
Also you need https connection to interact with webui from client machine.

VirtualBox VM guest to pop up a window to the host machine

Question mark
I'm wondering whether it's possible for the VM guest machine to pop up a window to the MS-Windows host machine once a task is done within the VM (not an email). If I'm not dreaming, how to achieve that ?
Why
The VM is a simulator for a production server. Code is written within the host IDE and tested straight into the VM. So files are transferred manually from the IDE to the VM, and then automatically moved, formatted, chmoded, chowned and so on in the VM. This process can take a while, so I want to warn the devleopper once the process is over. The developper have no access to the VM and shall not necessary have one.
Config
Tool: VirtualBox 4.1
host: MS-Windows XP or Windows seven
guest: VM Debian
shared dir: yes
network : bridged connection
If this ability existed, it would be quite a security hole in VirtualBox. Guest VMs gaining access to the host machine's OS is not a good thing! As such, I don't think it's possible to accomplish this in a supported manner.
Instead, think of it as two separate machines. What mechanisms do you have for causing alerts or popups on one machine from another? Is anything like IMs, netsend, etc enabled in your environment?

xen split driver model

iam confused over these two concepts. The xen split driver model and paravirtualization. Are these two the same ? Do you get the split driver model when xen is running in full virtualized mode ?
Paravirtualization is the general concept of making modifications to the kernel of a guest Operating System to make it aware that it is running on virtual, rather than physical, hardware, and so exploit this for greater efficiency or performance or security or whatever. A paravirtualized kernel may not function on physical hardware at all, in a similar fashion to attempting to run an Operating System on incompatible hardware.
The Split Driver model is one technique for creating efficient virtual hardware. One device driver runs inside the guest Virtual Machine (aka domU) and communicates with another corresponding device driver inside the control domain Virtual Machine (aka dom0). This pair of codesigned device drivers function together, and so can be considered to be a single "split" driver.
Examples of split device drivers are Xen's traditional block and network device drivers when running paravirtualized guests.
The situation is blurrier when running HVM guests. When you first install a guest Operating System within a HVM guest, it uses the OS's native device drivers that were designed for use with real physical hardware, and Xen and dom0 emulate those devices for the new guest. However, when you then install paravirtual drivers within the guest (these are the "tools" that you install in the guest on XenServer, or XenClient, and likely also on VMware, etc.) - well, then you're in a different configuration again. What you have there is a HVM guest, running a non-paravirtualized OS, but with paravirtual split device drivers.
So, to answer your question, when you're running in fully virtualized mode, you may or may not be using split device drivers -- it depends on whether or not they are actually installed to be used by the guest OS. Recent Linux kernels already include paravirtual drivers that can be active within a HVM domain.
As I understand it, they're closely related, though not exactly the same. Split drivers means that a driver in domU works by communicating with a corresponding driver in dom0. The communication is done via hypercalls that ask the Xen hypervisor to move data between domains. Paravirtualization means that a guest domain knows it's running under a hypervisor and talks to the hypervisor instead of trying to talk to real hardware, so a split driver is a paravirtualized driver, but paravirtualization is a broader concept.
Split drivers aren't used in an HVM domain because the guest OS uses its own normal drivers, which think they're talking to real hardware.

How can I tell if I'm running in a VMWARE virtual machine (from linux)?

I have a VMWARE ESX server. I have Redhat VMs running on that server. I need a way of programatically testing if I'm running in a VM. Ideally, I'd like to know how to do this from Perl.
See the answer to "Detect virtualized OS from an application?".
You shouldn't 100% depend on any method, as they are undocumented features/bugs - they work on some host OSes and some virtualization solutions, but there is no guarantee that they will continue working; indeed, the whole point of virtualization is to be as undistinguishable from real metal as possible. With this in mind, the blue pill red pill (which is mentioned in the accepted answer to this similar question) seems to work ... for now.
VMWare has a couple of SDK's, including an SDK for Perl.
I think (depending on the version of esx) you can inspect at the MAC address of the NIC. VMs running in VMWare NIC will have a manufacturer string assigned to VMWare, no the physical NIC MAC. (We were trying to spoof the MAC to VM a license server and newer versions won't let you do it.) Also, this won't guarantee you aren't running on a physical box with a NIC spoofed to look like VMWare, but that would be an odd thing to do in most circumstances anyway.
Run the following command:
lspci | grep VMware
It should show something like this:
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)