Introduction to virtual machines (VMs)

Started by amitkedia, Aug 08, 2022, 05:41 AM

Previous topic - Next topic

amitkediaTopic starter

Every enterprise administrator has to deal with configuring virtual machines. You can use virtual machines to produce and test an application, as well as store data. The advantages of virtual machines include flexibility in choosing an operating system and the ability to duplicate the workspace.

The problems when dealing with them are complex because virtual machines use resources differently than physical ones. Virtual machines are subject to various risks and performance issues. Must know for IT professionals to maintain a healthy network infrastructure.

Virtual machines (VMs) are abstract computing instances created by a program running on another machine that do not physically exist, but operate like a real computer. A VM runs on software, not hardware. So to speak, the software creates an "imaginary" computer that behaves like a physical one.
In other words, the user creates a computer inside another computer. Several VMs can run in parallel on the same underlying device separately from each other.

The machine that creates the virtual machine is called the host machine, and the virtual machine is called the "guest". One host machine can have many guest VMs. There can also be many virtual servers running from one physical machine.

Although the virtual machine is created using software, it uses the physical resources of the host machine, such as CPU, RAM, and hard disk storage space. You can create as many virtual machines as you want on your host machine, but you have to share the physical hardware resources among them all.
The number of virtual machines that you can have at the same time is limited only by the resources of the host machine; however, most VMs will be slower than a physical computer, simply because of the extra layers of abstraction they have to go through in order to perform a function.

The features provided by virtual machines are similar to those of physical machines, but VMs do not run directly on the computer's hardware. Instead, there is a "hypervisor" between the hardware and the virtual machine.
That middle layer secures the host machine and also creates and manages the virtual machine. Read more about hypervisors below.

There are many benefits to using virtual servers instead of physical hardware, and every business should consider setting up a virtual server as it grows.
If the user has only one server, virtualization will not pay for itself, but the investment makes sense if there are many servers.

VM can be used to change operating systems. For example, if the guest operating system uses Windows, and the host computer uses Mac OS. You can also test software on that guest operating system that the host machine cannot use, or test software on distant operating systems at the same time to make sure they work the same on each.
Virtual machines can also be used as security buffers and execute malicious code or scan suspicious files without harming other parts of the host system.

VMs save large sums of money. By placing several virtual servers on one physical machine, the user can allocate resources to each of them. That allows you to use only those resources that are needed only at the moment. If one virtual machine uses fewer resources, another virtual machine can use the freed ones.
This allows you to more efficiently and economically manage the resources of the host machine. Also, when fewer physical machines are used, money is saved by decreasing the amount of space needed to store servers.

Virtualization also saves energy. Compared to traditional operating systems, a virtual machine is not as dependent on power consumption because its central hardware does not need to be changed or expanded. Thus, the cost of virtualization is always lower than the purchase and maintenance of additional hardware.
After all, computing power has a price. If the only way for the user to get more resources is to buy new hardware, then this is not the best option. Too often, organizations deploy servers that consume only a fraction of the available resources and do not use their full potential. That leads to the fact that the servers are simply idle.

It would seem obvious things, but when managing virtual machines, it is important to follow a number of basic recommendations:

    Evaluate the virtual environment. If you don't know which virtual devices are on or off, or if your virtual servers are working properly, you won't be able to quickly and efficiently troubleshoot issues when they occur. Troubleshooting slowdowns depends on being able to pinpoint the problem, and if you haven't fully mapped out your environment, you may not even be aware of the slowdown until your users start complaining. Take a regular inventory of your virtual environment to stay on top of everything before it impacts your customers or business.
    Control the growth of virtualization. When there are too many VMs in your environment, it will be hard for you to keep track of them. Because it's easy to create virtual machines (much easier than buying new hardware), it's easy to build more VMs than you need. Ultimately, this may negate some of the consolidation and efficiency gains that virtualization should provide. Make sure you take steps to control virtualization growth and disable or remove any unnecessary virtual machines.
    Manage security risks. Security risks to your virtual environment can come in many forms. If you don't keep an eye on sprawl, there are plenty of points through which an attacker can gain access to your network. Despite the fact that the VMs are isolated from each other, attackers can still get information about the structure or settings of your network.

It is important to ensure that you have the appropriate security and anti-malware tools installed in your virtual environment. Do not underestimate the possibility of internal risks, both malicious and accidental. Uninformed users can change the virtual machine's configuration or access settings, accidentally delete something, or intentionally gain access to data they shouldn't have. Maintain access privileges for your virtual environment just like you would for any physical environment.
    Make timely updates. Not keeping your software or operating systems up to date also leaves potential vulnerabilities open to attackers. Bugs in software, hypervisors, or OS can allow attackers to gain access to your systems, even if those systems are virtual. Make sure that the VM software is always up to date and that the applications and programs installed on your virtual machines are also regularly updated.
    Respond quickly when problems arise. Make sure you have a response plan in place if the VM performance drops drastically, or if you experience problems with your virtual environment.
Responsibilities in the team should be clearly distributed so that you know who will deal with what problems, especially security issues. Having dedicated staff and teams for each potential issue, as well as a clear escalation and resolution plan, will help you if you need to quickly fix something in your virtual environment. And always remember to back up.

Types of virtual machines

There are several types of virtual machines. They work in distant ways, and each of them has its own specific goals. The two main types of virtual machines are system virtual machines and process virtual machines.

A system virtual machine is designed to simulate an entire computer system, involve running a full OS. System VMs are typically used to run programs on an OS that is not present on the host machine, or to run multiple VM instances in order to allocate hardware resources efficiently.
The operating system on the system virtual machine is isolated from the host machine. For example, we can install Windows XP/7/8 or Linux Ubuntu/Kali on Windows 10 operating system using VirtualBox, QEMU or Citrix Xen.

Process virtual machines, unlike system virtual machines, are created specifically to run a single application. When this process is not in use, the virtual machine is also not in use - it is "destroyed" when the process or application terminates.
An example of a process virtual machine is the Java Virtual Machine (JVM), which allows any system to run Java applications as if they were native to the system.

How a virtual machine works

VMs are configured using a hypervisor or similar technology. A hypervisor is a piece of hardware, firmware, or software that creates virtual machines, allocates resources to them, and then manages them.
Simply put, it is a layer between the physical computer and the VM. Hypervisors and the virtual machines they manage are commonly used for data replication, desktop and OS virtualization, server consolidation, and cloud computing.

For example, you might have a PC with 8 GB of RAM and a Windows operating system. If instead you want to run programs that require Linux, you create a Linux virtual machine and then use the hypervisor to manage its resources, for example by giving it 2 GB of RAM. Part of the host machine's resources will run under Windows, and part will be allocated to a virtual machine running Linux.

Hypervisors also provide a layer of security between virtual machines and the host computer's operating system, preventing the host computer from being infected by faulty applications or corrupted files, i.e. problems in the VM will not affect the host machine. For example, if a user uploads a corrupted or infected file to their virtual machine, the hypervisor will prevent the file from reaching the host machine.

There are two main types of hypervisor: hardware and software. Hardware hypervisors are installed directly on the physical hardware, while software hypervisors are installed in the OS.

Hardware hypervisors are usually more efficient and faster than software hypervisors. They don't have to compete with the operating system or other applications running at the same time, which allows them to access the full processing power of the host machine.
That additional capacity can be allocated to virtual machines managed by the hypervisor.

The main advantage of software hypervisors is ease of configuration. You can use them just like any other program in your operating system, and you don't need to know how the hardware works to install it. In most cases, software hypervisors are used to produce or test applications.

VMware, Hyper-V, and KVM are key examples of hypervisors: VMware is owned by Dell, KVM is owned by RedHat, and Hyper-V is owned by Microsoft. VMware software is built for cloud computing and virtualization, and it installs a hypervisor on physical servers to allow VMs to run simultaneously. Hyper-V does the same but also virtualizes servers.
Hyper-V comes preinstalled with Windows 10. KVM is a virtualization tool for Linux on x86 hardware that contains virtualization extensions (Intel VT or AMD-V). All three are hardware hypervisors.

How to set up a virtual machine

Setting up a virtual machine isn't too hard, and for most virtual machine solutions - assuming you're using a software hypervisor - follow these steps:

    Open the virtual machine application and click the button to create a new virtual machine.
    Follow the instructions in the wizard to create the VM, making sure to change the defaults if necessary.
    Make sure your VM name and version are correct.
    If you already have a virtual disk that you want to use, you can skip any steps that require creating a virtual database. If you don't have a virtual disk, create a database using the tool. Select a dynamically allocated disk or a fixed size disk.
    Choose your disk size.
    Click the "Create" button.
    In the main window of the virtual machine application, you should see all the virtual machines you have created; select the one you want to run through the application.

Once you've create a virtual machine (or several), you may need to optimize performance to make sure everything works efficiently or to increase the speed of your network. The following tips will help you optimize virtual machine performance:

    Use fixed disks. They consume fewer resources and allow better and more accurate capacity planning. If you allocate a fixed disk for each VM, you will have a better idea of what resources you have and what resources are already in use. However, in most cases you won't notice much difference between fixed and dynamic placement.
However, when scaling or running a large enterprise infrastructure, small differences can add up. Fixed drives also make more sense if you have limited physical storage. And in production environments, you'll find that dynamic disk allocation degrades performance over time as the VMs take up more space.
    Allocate more memory. Most VMs will run out of memory, so consider allocating more memory than you think they need and let the VM turn off memory based on usage to help maximize efficiency.
    Switch to SSDs. Switching to SSDs is one of the fastest ways to improve performance. Depending on what processors you have, you can use them to improve virtualization. For example, Intel VT-x and AMD-V are specialized processors designed for virtual machines. Plan your workloads ahead of time and make sure your hardware is up and running.
    Reduce the number of background apps. In many cases, simply decreasing background applications and programs, including reducing the frequency of antivirus software scanning VM directories, can help improve VM performance and response time. Basically, treat VMs like physical machines, as many of the same performance concepts apply to them.

VM monitoring

Often, virtual machines used in enterprises are configured in the same way. However, one person may need more RAM for their applications than another, and another may need a VM with distant software installed.
Monitoring the performance and usage of virtual machines is an important part of ensuring that your enterprise's VMs are functioning properly. Monitoring usually helps to identify areas for improvement, as well as opportunities for real-time automation and resource reallocation.

Use the VM performance monitoring tool to collect data and metrics for the network and compare the reports every week or month to make sure the system is running well and there are no growing problems. Once you have data collection in place, you can track trends (such as which VMs are consistently hitting resource limits), be more efficient in capacity planning, and flag any VMs that regularly experience crashes, lags, or application issues.

The data composed by the VM Performance Tool shows how much physical resources the VMs are using and what optimization measures are being applied.

Here are some of the VM monitoring tools:

    Paessler PRTG
    Veeam One
    Quest Foglight
    eG Enterprise
    APTARE IT Analytics
    Ipswitch WhatsUp Gold

Virtual machines are becoming a vital part of both on-premises and cloud computing, attaching themselves to physical devices as part of a corporate framework.
They allow organizations to more securely and efficiently produce and test applications, improve their storage, twin workspaces, and achieve flexibility in the use of operating systems.

Donna D. Phillips

very superficial and full of inaccuracies
VMware is not a hypervisor, but a company that makes a bunch of different products, including:
vmware ESXi, a type 1 hypervisor (what installs directly on the hardware), as well as
vmware player and vmware fusion (for Windows and for macOS), which are already desktop products (class 2 hypervisors), but can also use hardware virtualization
by the way, VMware player and VirtualBox can with built-in hyper-v if it is running


Also about pseudo—virtualization, for instance, user mode Linux (for windows - colinux, it's a pity it's outdated), and they didn't say about containerization, for example lxc/lxd (docker) and sandboxes of different levels, when instead of virtualizing the entire system, only a part of critical calls is substituted, plus the differentiation of rights.
And they didn't say about the main features of virtual machines — this is migration (in every sense, starting with the lack of binding to hardware and ending with literally transferring working virtual machines between physical machines) and the implementation of the fastest possible high availability, fault tolerance, continuous availability and other words, solutions of which can be seen only in expensive products (the same VMware)